// Auto-generated by tsbundle - do not edit export const files: { path: string; contentBase64: string }[] = [ { "path": "bundle.js", "contentBase64": "dmFyIFhidD1PYmplY3QuY3JlYXRlLEtidD1PYmplY3QuZnJlZXplLFRmPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgSmJ0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIGcxYT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgYjFhPU9iamVjdC5nZXRQcm90b3R5cGVPZix4MWE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgZXh0PSh0LGUpPT4oZT1TeW1ib2xbdF0pP2U6U3ltYm9sLmZvcigiU3ltYm9sLiIrdCksTGc9dD0+e3Rocm93IFR5cGVFcnJvcih0KX07dmFyIHR4dD0odCxlLHIpPT5lIGluIHQ/VGYodCxlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpyfSk6dFtlXT1yO3ZhciBpPSh0LGUpPT5UZih0LCJuYW1lIix7dmFsdWU6ZSxjb25maWd1cmFibGU6ITB9KSxTYWU9KHQ9PnR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOnR5cGVvZiBQcm94eTwidSI/bmV3IFByb3h5KHQse2dldDooZSxyKT0+KHR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOmUpW3JdfSk6dCkoZnVuY3Rpb24odCl7aWYodHlwZW9mIHJlcXVpcmU8InUiKXJldHVybiByZXF1aXJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aHJvdyBFcnJvcignRHluYW1pYyByZXF1aXJlIG9mICInK3QrJyIgaXMgbm90IHN1cHBvcnRlZCcpfSk7dmFyIHU9KHQsZSk9PigpPT4odCYmKGU9dCh0PTApKSxlKTt2YXIgTnQ9KHQsZSk9PigpPT4oZXx8dCgoZT17ZXhwb3J0czp7fX0pLmV4cG9ydHMsZSksZS5leHBvcnRzKSxWZT0odCxlKT0+e2Zvcih2YXIgciBpbiBlKVRmKHQscix7Z2V0OmVbcl0sZW51bWVyYWJsZTohMH0pfSx2MWE9KHQsZSxyLGEpPT57aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QifHx0eXBlb2YgZT09ImZ1bmN0aW9uIilmb3IobGV0IHMgb2YgZzFhKGUpKSF4MWEuY2FsbCh0LHMpJiZzIT09ciYmVGYodCxzLHtnZXQ6KCk9PmVbc10sZW51bWVyYWJsZTohKGE9SmJ0KGUscykpfHxhLmVudW1lcmFibGV9KTtyZXR1cm4gdH07dmFyIEdhPSh0LGUscik9PihyPXQhPW51bGw/WGJ0KGIxYSh0KSk6e30sdjFhKGV8fCF0fHwhdC5fX2VzTW9kdWxlP1RmKHIsImRlZmF1bHQiLHt2YWx1ZTp0LGVudW1lcmFibGU6ITB9KTpyLHQpKTt2YXIgJGk9dD0+WywsLFhidCh0Py5bZXh0KCJtZXRhZGF0YSIpXT8/bnVsbCldLHJ4dD1bImNsYXNzIiwibWV0aG9kIiwiZ2V0dGVyIiwic2V0dGVyIiwiYWNjZXNzb3IiLCJmaWVsZCIsInZhbHVlIiwiZ2V0Iiwic2V0Il0sbGs9dD0+dCE9PXZvaWQgMCYmdHlwZW9mIHQhPSJmdW5jdGlvbiI/TGcoIkZ1bmN0aW9uIGV4cGVjdGVkIik6dCx5MWE9KHQsZSxyLGEscyk9Pih7a2luZDpyeHRbdF0sbmFtZTplLG1ldGFkYXRhOmEsYWRkSW5pdGlhbGl6ZXI6bj0+ci5fP0xnKCJBbHJlYWR5IGluaXRpYWxpemVkIik6cy5wdXNoKGxrKG58fG51bGwpKX0pLHcxYT0odCxlKT0+dHh0KGUsZXh0KCJtZXRhZGF0YSIpLHRbM10pLFhlPSh0LGUscixhKT0+e2Zvcih2YXIgcz0wLG49dFtlPj4xXSxvPW4mJm4ubGVuZ3RoO3M8bztzKyspZSYxP25bc10uY2FsbChyKTphPW5bc10uY2FsbChyLGEpO3JldHVybiBhfSxEdD0odCxlLHIsYSxzLG4pPT57dmFyIG8sbCxjLGQsZixwPWUmNyxoPSEhKGUmOCksbT0hIShlJjE2KSx2PXA+Mz90Lmxlbmd0aCsxOnA/aD8xOjI6MCxiPXJ4dFtwKzVdLGc9cD4zJiYodFt2LTFdPVtdKSx5PXRbdl18fCh0W3ZdPVtdKSxrPXAmJighbSYmIWgmJihzPXMucHJvdG90eXBlKSxwPDUmJihwPjN8fCFtKSYmSmJ0KHA8ND9zOntnZXRbcl0oKXtyZXR1cm4gWmJ0KHRoaXMsbil9LHNldFtyXShOKXtyZXR1cm4gUWJ0KHRoaXMsbixOKX19LHIpKTtwP20mJnA8NCYmaShuLChwPjI/InNldCAiOnA+MT8iZ2V0ICI6IiIpK3IpOmkocyxyKTtmb3IodmFyIE09YS5sZW5ndGgtMTtNPj0wO00tLSlkPXkxYShwLHIsYz17fSx0WzNdLHkpLHAmJihkLnN0YXRpYz1oLGQucHJpdmF0ZT1tLGY9ZC5hY2Nlc3M9e2hhczptP049PmsxYShzLE4pOk49PnIgaW4gTn0scF4zJiYoZi5nZXQ9bT9OPT4ocF4xP1pidDpTMWEpKE4scyxwXjQ/bjprLmdldCk6Tj0+TltyXSkscD4yJiYoZi5zZXQ9bT8oTixfKT0+UWJ0KE4scyxfLHBeND9uOmsuc2V0KTooTixfKT0+TltyXT1fKSksbD0oMCxhW01dKShwP3A8ND9tP246a1tiXTpwPjQ/dm9pZCAwOntnZXQ6ay5nZXQsc2V0Omsuc2V0fTpzLGQpLGMuXz0xLHBeNHx8bD09PXZvaWQgMD9sayhsKSYmKHA+ND9nLnVuc2hpZnQobCk6cD9tP249bDprW2JdPWw6cz1sKTp0eXBlb2YgbCE9Im9iamVjdCJ8fGw9PT1udWxsP0xnKCJPYmplY3QgZXhwZWN0ZWQiKToobGsobz1sLmdldCkmJihrLmdldD1vKSxsayhvPWwuc2V0KSYmKGsuc2V0PW8pLGxrKG89bC5pbml0KSYmZy51bnNoaWZ0KG8pKTtyZXR1cm4gcHx8dzFhKHQscyksayYmVGYocyxyLGspLG0/cF40P246azpzfSxnaT0odCxlLHIpPT50eHQodCx0eXBlb2YgZSE9InN5bWJvbCI/ZSsiIjplLHIpLCRtZT0odCxlLHIpPT5lLmhhcyh0KXx8TGcoIkNhbm5vdCAiK3IpLGsxYT0odCxlKT0+T2JqZWN0KGUpIT09ZT9MZygnQ2Fubm90IHVzZSB0aGUgImluIiBvcGVyYXRvciBvbiB0aGlzIHZhbHVlJyk6dC5oYXMoZSksWmJ0PSh0LGUscik9PigkbWUodCxlLCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZCIpLHI/ci5jYWxsKHQpOmUuZ2V0KHQpKSx0cj0odCxlLHIpPT5lLmhhcyh0KT9MZygiQ2Fubm90IGFkZCB0aGUgc2FtZSBwcml2YXRlIG1lbWJlciBtb3JlIHRoYW4gb25jZSIpOmUgaW5zdGFuY2VvZiBXZWFrU2V0P2UuYWRkKHQpOmUuc2V0KHQsciksUWJ0PSh0LGUscixhKT0+KCRtZSh0LGUsIndyaXRlIHRvIHByaXZhdGUgZmllbGQiKSxhP2EuY2FsbCh0LHIpOmUuc2V0KHQsciksciksUzFhPSh0LGUscik9PigkbWUodCxlLCJhY2Nlc3MgcHJpdmF0ZSBtZXRob2QiKSxyKTt2YXIgRGc9KHQsZSk9PktidChUZih0LCJyYXciLHt2YWx1ZTpLYnQoZXx8dC5zbGljZSgpKX0pKTt2YXIgTWFlLGNrLEFtZSxheHQsJGcsTmEsJHIsQ2FlLGRrLEVtZT11KCgpPT57TWFlPWdsb2JhbFRoaXMsY2s9TWFlLlNoYWRvd1Jvb3QmJihNYWUuU2hhZHlDU1M9PT12b2lkIDB8fE1hZS5TaGFkeUNTUy5uYXRpdmVTaGFkb3cpJiYiYWRvcHRlZFN0eWxlU2hlZXRzImluIERvY3VtZW50LnByb3RvdHlwZSYmInJlcGxhY2UiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUsQW1lPVN5bWJvbCgpLGF4dD1uZXcgV2Vha01hcCwkZz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJuIil9Y29uc3RydWN0b3IoZSxyLGEpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLGEhPT1BbWUpdGhyb3cgRXJyb3IoIkNTU1Jlc3VsdCBpcyBub3QgY29uc3RydWN0YWJsZS4gVXNlIGB1bnNhZmVDU1NgIG9yIGBjc3NgIGluc3RlYWQuIik7dGhpcy5jc3NUZXh0PWUsdGhpcy50PXJ9Z2V0IHN0eWxlU2hlZXQoKXtsZXQgZT10aGlzLm8scj10aGlzLnQ7aWYoY2smJmU9PT12b2lkIDApe2xldCBhPXIhPT12b2lkIDAmJnIubGVuZ3RoPT09MTthJiYoZT1heHQuZ2V0KHIpKSxlPT09dm9pZCAwJiYoKHRoaXMubz1lPW5ldyBDU1NTdHlsZVNoZWV0KS5yZXBsYWNlU3luYyh0aGlzLmNzc1RleHQpLGEmJmF4dC5zZXQocixlKSl9cmV0dXJuIGV9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5jc3NUZXh0fX0sTmE9aSh0PT5uZXcgJGcodHlwZW9mIHQ9PSJzdHJpbmciP3Q6dCsiIix2b2lkIDAsQW1lKSwiciIpLCRyPWkoKHQsLi4uZSk9PntsZXQgcj10Lmxlbmd0aD09PTE/dFswXTplLnJlZHVjZSgoYSxzLG4pPT5hKyhvPT57aWYoby5fJGNzc1Jlc3VsdCQ9PT0hMClyZXR1cm4gby5jc3NUZXh0O2lmKHR5cGVvZiBvPT0ibnVtYmVyIilyZXR1cm4gbzt0aHJvdyBFcnJvcigiVmFsdWUgcGFzc2VkIHRvICdjc3MnIGZ1bmN0aW9uIG11c3QgYmUgYSAnY3NzJyBmdW5jdGlvbiByZXN1bHQ6ICIrbysiLiBVc2UgJ3Vuc2FmZUNTUycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dCB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuIil9KShzKSt0W24rMV0sdFswXSk7cmV0dXJuIG5ldyAkZyhyLHQsQW1lKX0sImkiKSxDYWU9aSgodCxlKT0+e2lmKGNrKXQuYWRvcHRlZFN0eWxlU2hlZXRzPWUubWFwKHI9PnIgaW5zdGFuY2VvZiBDU1NTdHlsZVNoZWV0P3I6ci5zdHlsZVNoZWV0KTtlbHNlIGZvcihsZXQgciBvZiBlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLHM9TWFlLmxpdE5vbmNlO3MhPT12b2lkIDAmJmEuc2V0QXR0cmlidXRlKCJub25jZSIscyksYS50ZXh0Q29udGVudD1yLmNzc1RleHQsdC5hcHBlbmRDaGlsZChhKX19LCJTIiksZGs9Y2s/dD0+dDp0PT50IGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD8oZT0+e2xldCByPSIiO2ZvcihsZXQgYSBvZiBlLmNzc1J1bGVzKXIrPWEuY3NzVGV4dDtyZXR1cm4gTmEocil9KSh0KTp0fSk7dmFyIE0xYSxDMWEsejFhLF8xYSxUMWEsTDFhLHphZSxpeHQsRDFhLCQxYSx1ayxBZyxwayxzeHQsamMsZms9dSgoKT0+e0VtZSgpO0VtZSgpOyh7aXM6TTFhLGRlZmluZVByb3BlcnR5OkMxYSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ejFhLGdldE93blByb3BlcnR5TmFtZXM6XzFhLGdldE93blByb3BlcnR5U3ltYm9sczpUMWEsZ2V0UHJvdG90eXBlT2Y6TDFhfT1PYmplY3QpLHphZT1nbG9iYWxUaGlzLGl4dD16YWUudHJ1c3RlZFR5cGVzLEQxYT1peHQ/aXh0LmVtcHR5U2NyaXB0OiIiLCQxYT16YWUucmVhY3RpdmVFbGVtZW50UG9seWZpbGxTdXBwb3J0LHVrPWkoKHQsZSk9PnQsImQiKSxBZz17dG9BdHRyaWJ1dGUodCxlKXtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnQ9dD9EMWE6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnQ9dD09bnVsbD90OkpTT04uc3RyaW5naWZ5KHQpfXJldHVybiB0fSxmcm9tQXR0cmlidXRlKHQsZSl7bGV0IHI9dDtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnI9dCE9PW51bGw7YnJlYWs7Y2FzZSBOdW1iZXI6cj10PT09bnVsbD9udWxsOk51bWJlcih0KTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXtyPUpTT04ucGFyc2UodCl9Y2F0Y2h7cj1udWxsfX1yZXR1cm4gcn19LHBrPWkoKHQsZSk9PiFNMWEodCxlKSwiZiIpLHN4dD17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjpBZyxyZWZsZWN0OiExLHVzZURlZmF1bHQ6ITEsaGFzQ2hhbmdlZDpwa307U3ltYm9sLm1ldGFkYXRhPz89U3ltYm9sKCJtZXRhZGF0YSIpLHphZS5saXRQcm9wZXJ0eU1ldGFkYXRhPz89bmV3IFdlYWtNYXA7amM9Y2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudHtzdGF0aWN7aSh0aGlzLCJ5Iil9c3RhdGljIGFkZEluaXRpYWxpemVyKGUpe3RoaXMuXyRFaSgpLCh0aGlzLmw/Pz1bXSkucHVzaChlKX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVybiB0aGlzLmZpbmFsaXplKCksdGhpcy5fJEVoJiZbLi4udGhpcy5fJEVoLmtleXMoKV19c3RhdGljIGNyZWF0ZVByb3BlcnR5KGUscj1zeHQpe2lmKHIuc3RhdGUmJihyLmF0dHJpYnV0ZT0hMSksdGhpcy5fJEVpKCksdGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoZSkmJigocj1PYmplY3QuY3JlYXRlKHIpKS53cmFwcGVkPSEwKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChlLHIpLCFyLm5vQWNjZXNzb3Ipe2xldCBhPVN5bWJvbCgpLHM9dGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IoZSxhLHIpO3MhPT12b2lkIDAmJkMxYSh0aGlzLnByb3RvdHlwZSxlLHMpfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKGUscixhKXtsZXR7Z2V0OnMsc2V0Om59PXoxYSh0aGlzLnByb3RvdHlwZSxlKT8/e2dldCgpe3JldHVybiB0aGlzW3JdfSxzZXQobyl7dGhpc1tyXT1vfX07cmV0dXJue2dldDpzLHNldChvKXtsZXQgbD1zPy5jYWxsKHRoaXMpO24/LmNhbGwodGhpcyxvKSx0aGlzLnJlcXVlc3RVcGRhdGUoZSxsLGEpfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH19c3RhdGljIGdldFByb3BlcnR5T3B0aW9ucyhlKXtyZXR1cm4gdGhpcy5lbGVtZW50UHJvcGVydGllcy5nZXQoZSk/P3N4dH1zdGF0aWMgXyRFaSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkodWsoImVsZW1lbnRQcm9wZXJ0aWVzIikpKXJldHVybjtsZXQgZT1MMWEodGhpcyk7ZS5maW5hbGl6ZSgpLGUubCE9PXZvaWQgMCYmKHRoaXMubD1bLi4uZS5sXSksdGhpcy5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwKGUuZWxlbWVudFByb3BlcnRpZXMpfXN0YXRpYyBmaW5hbGl6ZSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkodWsoImZpbmFsaXplZCIpKSlyZXR1cm47aWYodGhpcy5maW5hbGl6ZWQ9ITAsdGhpcy5fJEVpKCksdGhpcy5oYXNPd25Qcm9wZXJ0eSh1aygicHJvcGVydGllcyIpKSl7bGV0IHI9dGhpcy5wcm9wZXJ0aWVzLGE9Wy4uLl8xYShyKSwuLi5UMWEocildO2ZvcihsZXQgcyBvZiBhKXRoaXMuY3JlYXRlUHJvcGVydHkocyxyW3NdKX1sZXQgZT10aGlzW1N5bWJvbC5tZXRhZGF0YV07aWYoZSE9PW51bGwpe2xldCByPWxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KGUpO2lmKHIhPT12b2lkIDApZm9yKGxldFthLHNdb2Ygcil0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChhLHMpfXRoaXMuXyRFaD1uZXcgTWFwO2ZvcihsZXRbcixhXW9mIHRoaXMuZWxlbWVudFByb3BlcnRpZXMpe2xldCBzPXRoaXMuXyRFdShyLGEpO3MhPT12b2lkIDAmJnRoaXMuXyRFaC5zZXQocyxyKX10aGlzLmVsZW1lbnRTdHlsZXM9dGhpcy5maW5hbGl6ZVN0eWxlcyh0aGlzLnN0eWxlcyl9c3RhdGljIGZpbmFsaXplU3R5bGVzKGUpe2xldCByPVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBhPW5ldyBTZXQoZS5mbGF0KDEvMCkucmV2ZXJzZSgpKTtmb3IobGV0IHMgb2YgYSlyLnVuc2hpZnQoZGsocykpfWVsc2UgZSE9PXZvaWQgMCYmci5wdXNoKGRrKGUpKTtyZXR1cm4gcn1zdGF0aWMgXyRFdShlLHIpe2xldCBhPXIuYXR0cmlidXRlO3JldHVybiBhPT09ITE/dm9pZCAwOnR5cGVvZiBhPT0ic3RyaW5nIj9hOnR5cGVvZiBlPT0ic3RyaW5nIj9lLnRvTG93ZXJDYXNlKCk6dm9pZCAwfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl8kRXA9dm9pZCAwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExLHRoaXMuaGFzVXBkYXRlZD0hMSx0aGlzLl8kRW09bnVsbCx0aGlzLl8kRXYoKX1fJEV2KCl7dGhpcy5fJEVTPW5ldyBQcm9taXNlKGU9PnRoaXMuZW5hYmxlVXBkYXRpbmc9ZSksdGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5fJEVfKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5jb25zdHJ1Y3Rvci5sPy5mb3JFYWNoKGU9PmUodGhpcykpfWFkZENvbnRyb2xsZXIoZSl7KHRoaXMuXyRFTz8/PW5ldyBTZXQpLmFkZChlKSx0aGlzLnJlbmRlclJvb3QhPT12b2lkIDAmJnRoaXMuaXNDb25uZWN0ZWQmJmUuaG9zdENvbm5lY3RlZD8uKCl9cmVtb3ZlQ29udHJvbGxlcihlKXt0aGlzLl8kRU8/LmRlbGV0ZShlKX1fJEVfKCl7bGV0IGU9bmV3IE1hcCxyPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7Zm9yKGxldCBhIG9mIHIua2V5cygpKXRoaXMuaGFzT3duUHJvcGVydHkoYSkmJihlLnNldChhLHRoaXNbYV0pLGRlbGV0ZSB0aGlzW2FdKTtlLnNpemU+MCYmKHRoaXMuXyRFcD1lKX1jcmVhdGVSZW5kZXJSb290KCl7bGV0IGU9dGhpcy5zaGFkb3dSb290Pz90aGlzLmF0dGFjaFNoYWRvdyh0aGlzLmNvbnN0cnVjdG9yLnNoYWRvd1Jvb3RPcHRpb25zKTtyZXR1cm4gQ2FlKGUsdGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50U3R5bGVzKSxlfWNvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5lbmFibGVVcGRhdGluZyghMCksdGhpcy5fJEVPPy5mb3JFYWNoKGU9PmUuaG9zdENvbm5lY3RlZD8uKCkpfWVuYWJsZVVwZGF0aW5nKGUpe31kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuXyRFTz8uZm9yRWFjaChlPT5lLmhvc3REaXNjb25uZWN0ZWQ/LigpKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soZSxyLGEpe3RoaXMuXyRBSyhlLGEpfV8kRVQoZSxyKXtsZXQgYT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChlKSxzPXRoaXMuY29uc3RydWN0b3IuXyRFdShlLGEpO2lmKHMhPT12b2lkIDAmJmEucmVmbGVjdD09PSEwKXtsZXQgbj0oYS5jb252ZXJ0ZXI/LnRvQXR0cmlidXRlIT09dm9pZCAwP2EuY29udmVydGVyOkFnKS50b0F0dHJpYnV0ZShyLGEudHlwZSk7dGhpcy5fJEVtPWUsbj09bnVsbD90aGlzLnJlbW92ZUF0dHJpYnV0ZShzKTp0aGlzLnNldEF0dHJpYnV0ZShzLG4pLHRoaXMuXyRFbT1udWxsfX1fJEFLKGUscil7bGV0IGE9dGhpcy5jb25zdHJ1Y3RvcixzPWEuXyRFaC5nZXQoZSk7aWYocyE9PXZvaWQgMCYmdGhpcy5fJEVtIT09cyl7bGV0IG49YS5nZXRQcm9wZXJ0eU9wdGlvbnMocyksbz10eXBlb2Ygbi5jb252ZXJ0ZXI9PSJmdW5jdGlvbiI/e2Zyb21BdHRyaWJ1dGU6bi5jb252ZXJ0ZXJ9Om4uY29udmVydGVyPy5mcm9tQXR0cmlidXRlIT09dm9pZCAwP24uY29udmVydGVyOkFnO3RoaXMuXyRFbT1zO2xldCBsPW8uZnJvbUF0dHJpYnV0ZShyLG4udHlwZSk7dGhpc1tzXT1sPz90aGlzLl8kRWo/LmdldChzKT8/bCx0aGlzLl8kRW09bnVsbH19cmVxdWVzdFVwZGF0ZShlLHIsYSxzPSExLG4pe2lmKGUhPT12b2lkIDApe2xldCBvPXRoaXMuY29uc3RydWN0b3I7aWYocz09PSExJiYobj10aGlzW2VdKSxhPz89by5nZXRQcm9wZXJ0eU9wdGlvbnMoZSksISgoYS5oYXNDaGFuZ2VkPz9waykobixyKXx8YS51c2VEZWZhdWx0JiZhLnJlZmxlY3QmJm49PT10aGlzLl8kRWo/LmdldChlKSYmIXRoaXMuaGFzQXR0cmlidXRlKG8uXyRFdShlLGEpKSkpcmV0dXJuO3RoaXMuQyhlLHIsYSl9dGhpcy5pc1VwZGF0ZVBlbmRpbmc9PT0hMSYmKHRoaXMuXyRFUz10aGlzLl8kRVAoKSl9QyhlLHIse3VzZURlZmF1bHQ6YSxyZWZsZWN0OnMsd3JhcHBlZDpufSxvKXthJiYhKHRoaXMuXyRFaj8/PW5ldyBNYXApLmhhcyhlKSYmKHRoaXMuXyRFai5zZXQoZSxvPz9yPz90aGlzW2VdKSxuIT09ITB8fG8hPT12b2lkIDApfHwodGhpcy5fJEFMLmhhcyhlKXx8KHRoaXMuaGFzVXBkYXRlZHx8YXx8KHI9dm9pZCAwKSx0aGlzLl8kQUwuc2V0KGUscikpLHM9PT0hMCYmdGhpcy5fJEVtIT09ZSYmKHRoaXMuXyRFcT8/PW5ldyBTZXQpLmFkZChlKSl9YXN5bmMgXyRFUCgpe3RoaXMuaXNVcGRhdGVQZW5kaW5nPSEwO3RyeXthd2FpdCB0aGlzLl8kRVN9Y2F0Y2gocil7UHJvbWlzZS5yZWplY3Qocil9bGV0IGU9dGhpcy5zY2hlZHVsZVVwZGF0ZSgpO3JldHVybiBlIT1udWxsJiZhd2FpdCBlLCF0aGlzLmlzVXBkYXRlUGVuZGluZ31zY2hlZHVsZVVwZGF0ZSgpe3JldHVybiB0aGlzLnBlcmZvcm1VcGRhdGUoKX1wZXJmb3JtVXBkYXRlKCl7aWYoIXRoaXMuaXNVcGRhdGVQZW5kaW5nKXJldHVybjtpZighdGhpcy5oYXNVcGRhdGVkKXtpZih0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLl8kRXApe2ZvcihsZXRbcyxuXW9mIHRoaXMuXyRFcCl0aGlzW3NdPW47dGhpcy5fJEVwPXZvaWQgMH1sZXQgYT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzO2lmKGEuc2l6ZT4wKWZvcihsZXRbcyxuXW9mIGEpe2xldHt3cmFwcGVkOm99PW4sbD10aGlzW3NdO28hPT0hMHx8dGhpcy5fJEFMLmhhcyhzKXx8bD09PXZvaWQgMHx8dGhpcy5DKHMsdm9pZCAwLG4sbCl9fWxldCBlPSExLHI9dGhpcy5fJEFMO3RyeXtlPXRoaXMuc2hvdWxkVXBkYXRlKHIpLGU/KHRoaXMud2lsbFVwZGF0ZShyKSx0aGlzLl8kRU8/LmZvckVhY2goYT0+YS5ob3N0VXBkYXRlPy4oKSksdGhpcy51cGRhdGUocikpOnRoaXMuXyRFTSgpfWNhdGNoKGEpe3Rocm93IGU9ITEsdGhpcy5fJEVNKCksYX1lJiZ0aGlzLl8kQUUocil9d2lsbFVwZGF0ZShlKXt9XyRBRShlKXt0aGlzLl8kRU8/LmZvckVhY2gocj0+ci5ob3N0VXBkYXRlZD8uKCkpLHRoaXMuaGFzVXBkYXRlZHx8KHRoaXMuaGFzVXBkYXRlZD0hMCx0aGlzLmZpcnN0VXBkYXRlZChlKSksdGhpcy51cGRhdGVkKGUpfV8kRU0oKXt0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLmlzVXBkYXRlUGVuZGluZz0hMX1nZXQgdXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5nZXRVcGRhdGVDb21wbGV0ZSgpfWdldFVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuXyRFU31zaG91bGRVcGRhdGUoZSl7cmV0dXJuITB9dXBkYXRlKGUpe3RoaXMuXyRFcSYmPXRoaXMuXyRFcS5mb3JFYWNoKHI9PnRoaXMuXyRFVChyLHRoaXNbcl0pKSx0aGlzLl8kRU0oKX11cGRhdGVkKGUpe31maXJzdFVwZGF0ZWQoZSl7fX07amMuZWxlbWVudFN0eWxlcz1bXSxqYy5zaGFkb3dSb290T3B0aW9ucz17bW9kZToib3BlbiJ9LGpjW3VrKCJlbGVtZW50UHJvcGVydGllcyIpXT1uZXcgTWFwLGpjW3VrKCJmaW5hbGl6ZWQiKV09bmV3IE1hcCwkMWE/Lih7UmVhY3RpdmVFbGVtZW50OmpjfSksKHphZS5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCIyLjEuMiIpfSk7ZnVuY3Rpb24gbXh0KHQsZSl7aWYoIU9tZSh0KXx8IXQuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gb3h0IT09dm9pZCAwP294dC5jcmVhdGVIVE1MKGUpOmV9ZnVuY3Rpb24gQWYodCxlLHI9dCxhKXtpZihlPT09YWkpcmV0dXJuIGU7bGV0IHM9YSE9PXZvaWQgMD9yLl8kQ28/LlthXTpyLl8kQ2wsbj1tayhlKT92b2lkIDA6ZS5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIHM/LmNvbnN0cnVjdG9yIT09biYmKHM/Ll8kQU8/LighMSksbj09PXZvaWQgMD9zPXZvaWQgMDoocz1uZXcgbih0KSxzLl8kQVQodCxyLGEpKSxhIT09dm9pZCAwPyhyLl8kQ28/Pz1bXSlbYV09czpyLl8kQ2w9cykscyE9PXZvaWQgMCYmKGU9QWYodCxzLl8kQVModCxlLnZhbHVlcykscyxhKSksZX12YXIgSW1lLG54dCxfYWUsb3h0LFBtZSwkZCxObWUsQTFhLExmLGhrLG1rLE9tZSxseHQsUm1lLGdrLGN4dCxkeHQsRGYsdXh0LHB4dCxmeHQsRm1lLFFlLEJtZSxIbWUsYWksYmksaHh0LCRmLGd4dCxiayxUYWUsRWcsRWYsTGFlLERhZSwkYWUsQWFlLHFtZSxFMWEseGsseDI9dSgoKT0+e0ltZT1nbG9iYWxUaGlzLG54dD1pKHQ9PnQsImkiKSxfYWU9SW1lLnRydXN0ZWRUeXBlcyxveHQ9X2FlP19hZS5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDppKHQ9PnQsImNyZWF0ZUhUTUwiKX0pOnZvaWQgMCxQbWU9IiRsaXQkIiwkZD1gbGl0JCR7TWF0aC5yYW5kb20oKS50b0ZpeGVkKDkpLnNsaWNlKDIpfSRgLE5tZT0iPyIrJGQsQTFhPWA8JHtObWV9PmAsTGY9ZG9jdW1lbnQsaGs9aSgoKT0+TGYuY3JlYXRlQ29tbWVudCgiIiksImMiKSxtaz1pKHQ9PnQ9PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCImJnR5cGVvZiB0IT0iZnVuY3Rpb24iLCJhIiksT21lPUFycmF5LmlzQXJyYXksbHh0PWkodD0+T21lKHQpfHx0eXBlb2YgdD8uW1N5bWJvbC5pdGVyYXRvcl09PSJmdW5jdGlvbiIsImQiKSxSbWU9YFsgCQpcZlxyXWAsZ2s9LzwoPzooIS0tfFwvW15hLXpBLVpdKXwoXC8/W2EtekEtWl1bXj5cc10qKXwoXC8/JCkpL2csY3h0PS8tLT4vZyxkeHQ9Lz4vZyxEZj1SZWdFeHAoYD58JHtSbWV9KD86KFteXFxzIic+PS9dKykoJHtSbWV9Kj0ke1JtZX0qKD86W14gCQpcZlxyIidcYDw+PV18KCJ8Jyl8KSl8JClgLCJnIiksdXh0PS8nL2cscHh0PS8iL2csZnh0PS9eKD86c2NyaXB0fHN0eWxlfHRleHRhcmVhfHRpdGxlKSQvaSxGbWU9aSh0PT4oZSwuLi5yKT0+KHtfJGxpdFR5cGUkOnQsc3RyaW5nczplLHZhbHVlczpyfSksIngiKSxRZT1GbWUoMSksQm1lPUZtZSgyKSxIbWU9Rm1lKDMpLGFpPVN5bWJvbC5mb3IoImxpdC1ub0NoYW5nZSIpLGJpPVN5bWJvbC5mb3IoImxpdC1ub3RoaW5nIiksaHh0PW5ldyBXZWFrTWFwLCRmPUxmLmNyZWF0ZVRyZWVXYWxrZXIoTGYsMTI5KTtpKG14dCwiViIpO2d4dD1pKCh0LGUpPT57bGV0IHI9dC5sZW5ndGgtMSxhPVtdLHMsbj1lPT09Mj8iPHN2Zz4iOmU9PT0zPyI8bWF0aD4iOiIiLG89Z2s7Zm9yKGxldCBsPTA7bDxyO2wrKyl7bGV0IGM9dFtsXSxkLGYscD0tMSxoPTA7Zm9yKDtoPGMubGVuZ3RoJiYoby5sYXN0SW5kZXg9aCxmPW8uZXhlYyhjKSxmIT09bnVsbCk7KWg9by5sYXN0SW5kZXgsbz09PWdrP2ZbMV09PT0iIS0tIj9vPWN4dDpmWzFdIT09dm9pZCAwP289ZHh0OmZbMl0hPT12b2lkIDA/KGZ4dC50ZXN0KGZbMl0pJiYocz1SZWdFeHAoIjwvIitmWzJdLCJnIikpLG89RGYpOmZbM10hPT12b2lkIDAmJihvPURmKTpvPT09RGY/ZlswXT09PSI+Ij8obz1zPz9nayxwPS0xKTpmWzFdPT09dm9pZCAwP3A9LTI6KHA9by5sYXN0SW5kZXgtZlsyXS5sZW5ndGgsZD1mWzFdLG89ZlszXT09PXZvaWQgMD9EZjpmWzNdPT09JyInP3B4dDp1eHQpOm89PT1weHR8fG89PT11eHQ/bz1EZjpvPT09Y3h0fHxvPT09ZHh0P289Z2s6KG89RGYscz12b2lkIDApO2xldCBtPW89PT1EZiYmdFtsKzFdLnN0YXJ0c1dpdGgoIi8+Iik/IiAiOiIiO24rPW89PT1naz9jK0ExYTpwPj0wPyhhLnB1c2goZCksYy5zbGljZSgwLHApK1BtZStjLnNsaWNlKHApKyRkK20pOmMrJGQrKHA9PT0tMj9sOm0pfXJldHVybltteHQodCxuKyh0W3JdfHwiPD8+IikrKGU9PT0yPyI8L3N2Zz4iOmU9PT0zPyI8L21hdGg+IjoiIikpLGFdfSwiTiIpLGJrPWNsYXNzIHR7c3RhdGlje2kodGhpcywiUyIpfWNvbnN0cnVjdG9yKHtzdHJpbmdzOmUsXyRsaXRUeXBlJDpyfSxhKXtsZXQgczt0aGlzLnBhcnRzPVtdO2xldCBuPTAsbz0wLGw9ZS5sZW5ndGgtMSxjPXRoaXMucGFydHMsW2QsZl09Z3h0KGUscik7aWYodGhpcy5lbD10LmNyZWF0ZUVsZW1lbnQoZCxhKSwkZi5jdXJyZW50Tm9kZT10aGlzLmVsLmNvbnRlbnQscj09PTJ8fHI9PT0zKXtsZXQgcD10aGlzLmVsLmNvbnRlbnQuZmlyc3RDaGlsZDtwLnJlcGxhY2VXaXRoKC4uLnAuY2hpbGROb2Rlcyl9Zm9yKDsocz0kZi5uZXh0Tm9kZSgpKSE9PW51bGwmJmMubGVuZ3RoPGw7KXtpZihzLm5vZGVUeXBlPT09MSl7aWYocy5oYXNBdHRyaWJ1dGVzKCkpZm9yKGxldCBwIG9mIHMuZ2V0QXR0cmlidXRlTmFtZXMoKSlpZihwLmVuZHNXaXRoKFBtZSkpe2xldCBoPWZbbysrXSxtPXMuZ2V0QXR0cmlidXRlKHApLnNwbGl0KCRkKSx2PS8oWy4/QF0pPyguKikvLmV4ZWMoaCk7Yy5wdXNoKHt0eXBlOjEsaW5kZXg6bixuYW1lOnZbMl0sc3RyaW5nczptLGN0b3I6dlsxXT09PSIuIj9MYWU6dlsxXT09PSI/Ij9EYWU6dlsxXT09PSJAIj8kYWU6RWZ9KSxzLnJlbW92ZUF0dHJpYnV0ZShwKX1lbHNlIHAuc3RhcnRzV2l0aCgkZCkmJihjLnB1c2goe3R5cGU6NixpbmRleDpufSkscy5yZW1vdmVBdHRyaWJ1dGUocCkpO2lmKGZ4dC50ZXN0KHMudGFnTmFtZSkpe2xldCBwPXMudGV4dENvbnRlbnQuc3BsaXQoJGQpLGg9cC5sZW5ndGgtMTtpZihoPjApe3MudGV4dENvbnRlbnQ9X2FlP19hZS5lbXB0eVNjcmlwdDoiIjtmb3IobGV0IG09MDttPGg7bSsrKXMuYXBwZW5kKHBbbV0saGsoKSksJGYubmV4dE5vZGUoKSxjLnB1c2goe3R5cGU6MixpbmRleDorK259KTtzLmFwcGVuZChwW2hdLGhrKCkpfX19ZWxzZSBpZihzLm5vZGVUeXBlPT09OClpZihzLmRhdGE9PT1ObWUpYy5wdXNoKHt0eXBlOjIsaW5kZXg6bn0pO2Vsc2V7bGV0IHA9LTE7Zm9yKDsocD1zLmRhdGEuaW5kZXhPZigkZCxwKzEpKSE9PS0xOyljLnB1c2goe3R5cGU6NyxpbmRleDpufSkscCs9JGQubGVuZ3RoLTF9bisrfX1zdGF0aWMgY3JlYXRlRWxlbWVudChlLHIpe2xldCBhPUxmLmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cmV0dXJuIGEuaW5uZXJIVE1MPWUsYX19O2koQWYsIk0iKTtUYWU9Y2xhc3N7c3RhdGlje2kodGhpcywiUiIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5fJEFWPVtdLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFEPWUsdGhpcy5fJEFNPXJ9Z2V0IHBhcmVudE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFNLnBhcmVudE5vZGV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9dShlKXtsZXR7ZWw6e2NvbnRlbnQ6cn0scGFydHM6YX09dGhpcy5fJEFELHM9KGU/LmNyZWF0aW9uU2NvcGU/P0xmKS5pbXBvcnROb2RlKHIsITApOyRmLmN1cnJlbnROb2RlPXM7bGV0IG49JGYubmV4dE5vZGUoKSxvPTAsbD0wLGM9YVswXTtmb3IoO2MhPT12b2lkIDA7KXtpZihvPT09Yy5pbmRleCl7bGV0IGQ7Yy50eXBlPT09Mj9kPW5ldyBFZyhuLG4ubmV4dFNpYmxpbmcsdGhpcyxlKTpjLnR5cGU9PT0xP2Q9bmV3IGMuY3RvcihuLGMubmFtZSxjLnN0cmluZ3MsdGhpcyxlKTpjLnR5cGU9PT02JiYoZD1uZXcgQWFlKG4sdGhpcyxlKSksdGhpcy5fJEFWLnB1c2goZCksYz1hWysrbF19byE9PWM/LmluZGV4JiYobj0kZi5uZXh0Tm9kZSgpLG8rKyl9cmV0dXJuICRmLmN1cnJlbnROb2RlPUxmLHN9cChlKXtsZXQgcj0wO2ZvcihsZXQgYSBvZiB0aGlzLl8kQVYpYSE9PXZvaWQgMCYmKGEuc3RyaW5ncyE9PXZvaWQgMD8oYS5fJEFJKGUsYSxyKSxyKz1hLnN0cmluZ3MubGVuZ3RoLTIpOmEuXyRBSShlW3JdKSkscisrfX0sRWc9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJrIil9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNPy5fJEFVPz90aGlzLl8kQ3Z9Y29uc3RydWN0b3IoZSxyLGEscyl7dGhpcy50eXBlPTIsdGhpcy5fJEFIPWJpLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPWUsdGhpcy5fJEFCPXIsdGhpcy5fJEFNPWEsdGhpcy5vcHRpb25zPXMsdGhpcy5fJEN2PXM/LmlzQ29ubmVjdGVkPz8hMH1nZXQgcGFyZW50Tm9kZSgpe2xldCBlPXRoaXMuXyRBQS5wYXJlbnROb2RlLHI9dGhpcy5fJEFNO3JldHVybiByIT09dm9pZCAwJiZlPy5ub2RlVHlwZT09PTExJiYoZT1yLnBhcmVudE5vZGUpLGV9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFCfV8kQUkoZSxyPXRoaXMpe2U9QWYodGhpcyxlLHIpLG1rKGUpP2U9PT1iaXx8ZT09bnVsbHx8ZT09PSIiPyh0aGlzLl8kQUghPT1iaSYmdGhpcy5fJEFSKCksdGhpcy5fJEFIPWJpKTplIT09dGhpcy5fJEFIJiZlIT09YWkmJnRoaXMuXyhlKTplLl8kbGl0VHlwZSQhPT12b2lkIDA/dGhpcy4kKGUpOmUubm9kZVR5cGUhPT12b2lkIDA/dGhpcy5UKGUpOmx4dChlKT90aGlzLmsoZSk6dGhpcy5fKGUpfU8oZSl7cmV0dXJuIHRoaXMuXyRBQS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMuXyRBQil9VChlKXt0aGlzLl8kQUghPT1lJiYodGhpcy5fJEFSKCksdGhpcy5fJEFIPXRoaXMuTyhlKSl9XyhlKXt0aGlzLl8kQUghPT1iaSYmbWsodGhpcy5fJEFIKT90aGlzLl8kQUEubmV4dFNpYmxpbmcuZGF0YT1lOnRoaXMuVChMZi5jcmVhdGVUZXh0Tm9kZShlKSksdGhpcy5fJEFIPWV9JChlKXtsZXR7dmFsdWVzOnIsXyRsaXRUeXBlJDphfT1lLHM9dHlwZW9mIGE9PSJudW1iZXIiP3RoaXMuXyRBQyhlKTooYS5lbD09PXZvaWQgMCYmKGEuZWw9YmsuY3JlYXRlRWxlbWVudChteHQoYS5oLGEuaFswXSksdGhpcy5vcHRpb25zKSksYSk7aWYodGhpcy5fJEFIPy5fJEFEPT09cyl0aGlzLl8kQUgucChyKTtlbHNle2xldCBuPW5ldyBUYWUocyx0aGlzKSxvPW4udSh0aGlzLm9wdGlvbnMpO24ucChyKSx0aGlzLlQobyksdGhpcy5fJEFIPW59fV8kQUMoZSl7bGV0IHI9aHh0LmdldChlLnN0cmluZ3MpO3JldHVybiByPT09dm9pZCAwJiZoeHQuc2V0KGUuc3RyaW5ncyxyPW5ldyBiayhlKSkscn1rKGUpe09tZSh0aGlzLl8kQUgpfHwodGhpcy5fJEFIPVtdLHRoaXMuXyRBUigpKTtsZXQgcj10aGlzLl8kQUgsYSxzPTA7Zm9yKGxldCBuIG9mIGUpcz09PXIubGVuZ3RoP3IucHVzaChhPW5ldyB0KHRoaXMuTyhoaygpKSx0aGlzLk8oaGsoKSksdGhpcyx0aGlzLm9wdGlvbnMpKTphPXJbc10sYS5fJEFJKG4pLHMrKztzPHIubGVuZ3RoJiYodGhpcy5fJEFSKGEmJmEuXyRBQi5uZXh0U2libGluZyxzKSxyLmxlbmd0aD1zKX1fJEFSKGU9dGhpcy5fJEFBLm5leHRTaWJsaW5nLHIpe2Zvcih0aGlzLl8kQVA/LighMSwhMCxyKTtlIT09dGhpcy5fJEFCOyl7bGV0IGE9bnh0KGUpLm5leHRTaWJsaW5nO254dChlKS5yZW1vdmUoKSxlPWF9fXNldENvbm5lY3RlZChlKXt0aGlzLl8kQU09PT12b2lkIDAmJih0aGlzLl8kQ3Y9ZSx0aGlzLl8kQVA/LihlKSl9fSxFZj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJIIil9Z2V0IHRhZ05hbWUoKXtyZXR1cm4gdGhpcy5lbGVtZW50LnRhZ05hbWV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9Y29uc3RydWN0b3IoZSxyLGEscyxuKXt0aGlzLnR5cGU9MSx0aGlzLl8kQUg9YmksdGhpcy5fJEFOPXZvaWQgMCx0aGlzLmVsZW1lbnQ9ZSx0aGlzLm5hbWU9cix0aGlzLl8kQU09cyx0aGlzLm9wdGlvbnM9bixhLmxlbmd0aD4yfHxhWzBdIT09IiJ8fGFbMV0hPT0iIj8odGhpcy5fJEFIPUFycmF5KGEubGVuZ3RoLTEpLmZpbGwobmV3IFN0cmluZyksdGhpcy5zdHJpbmdzPWEpOnRoaXMuXyRBSD1iaX1fJEFJKGUscj10aGlzLGEscyl7bGV0IG49dGhpcy5zdHJpbmdzLG89ITE7aWYobj09PXZvaWQgMCllPUFmKHRoaXMsZSxyLDApLG89IW1rKGUpfHxlIT09dGhpcy5fJEFIJiZlIT09YWksbyYmKHRoaXMuXyRBSD1lKTtlbHNle2xldCBsPWUsYyxkO2ZvcihlPW5bMF0sYz0wO2M8bi5sZW5ndGgtMTtjKyspZD1BZih0aGlzLGxbYStjXSxyLGMpLGQ9PT1haSYmKGQ9dGhpcy5fJEFIW2NdKSxvfHw9IW1rKGQpfHxkIT09dGhpcy5fJEFIW2NdLGQ9PT1iaT9lPWJpOmUhPT1iaSYmKGUrPShkPz8iIikrbltjKzFdKSx0aGlzLl8kQUhbY109ZH1vJiYhcyYmdGhpcy5qKGUpfWooZSl7ZT09PWJpP3RoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5uYW1lKTp0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMubmFtZSxlPz8iIil9fSxMYWU9Y2xhc3MgZXh0ZW5kcyBFZntzdGF0aWN7aSh0aGlzLCJJIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT0zfWooZSl7dGhpcy5lbGVtZW50W3RoaXMubmFtZV09ZT09PWJpP3ZvaWQgMDplfX0sRGFlPWNsYXNzIGV4dGVuZHMgRWZ7c3RhdGlje2kodGhpcywiTCIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9NH1qKGUpe3RoaXMuZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUodGhpcy5uYW1lLCEhZSYmZSE9PWJpKX19LCRhZT1jbGFzcyBleHRlbmRzIEVme3N0YXRpY3tpKHRoaXMsInoiKX1jb25zdHJ1Y3RvcihlLHIsYSxzLG4pe3N1cGVyKGUscixhLHMsbiksdGhpcy50eXBlPTV9XyRBSShlLHI9dGhpcyl7aWYoKGU9QWYodGhpcyxlLHIsMCk/P2JpKT09PWFpKXJldHVybjtsZXQgYT10aGlzLl8kQUgscz1lPT09YmkmJmEhPT1iaXx8ZS5jYXB0dXJlIT09YS5jYXB0dXJlfHxlLm9uY2UhPT1hLm9uY2V8fGUucGFzc2l2ZSE9PWEucGFzc2l2ZSxuPWUhPT1iaSYmKGE9PT1iaXx8cyk7cyYmdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsYSksbiYmdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsZSksdGhpcy5fJEFIPWV9aGFuZGxlRXZlbnQoZSl7dHlwZW9mIHRoaXMuXyRBSD09ImZ1bmN0aW9uIj90aGlzLl8kQUguY2FsbCh0aGlzLm9wdGlvbnM/Lmhvc3Q/P3RoaXMuZWxlbWVudCxlKTp0aGlzLl8kQUguaGFuZGxlRXZlbnQoZSl9fSxBYWU9Y2xhc3N7c3RhdGlje2kodGhpcywiWiIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLmVsZW1lbnQ9ZSx0aGlzLnR5cGU9Nix0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBTT1yLHRoaXMub3B0aW9ucz1hfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkoZSl7QWYodGhpcyxlKX19LHFtZT17TTpQbWUsUDokZCxBOk5tZSxDOjEsTDpneHQsUjpUYWUsRDpseHQsVjpBZixJOkVnLEg6RWYsTjpEYWUsVTokYWUsQjpMYWUsRjpBYWV9LEUxYT1JbWUubGl0SHRtbFBvbHlmaWxsU3VwcG9ydDtFMWE/LihiayxFZyksKEltZS5saXRIdG1sVmVyc2lvbnM/Pz1bXSkucHVzaCgiMy4zLjIiKTt4az1pKCh0LGUscik9PntsZXQgYT1yPy5yZW5kZXJCZWZvcmU/P2Uscz1hLl8kbGl0UGFydCQ7aWYocz09PXZvaWQgMCl7bGV0IG49cj8ucmVuZGVyQmVmb3JlPz9udWxsO2EuXyRsaXRQYXJ0JD1zPW5ldyBFZyhlLmluc2VydEJlZm9yZShoaygpLG4pLG4sdm9pZCAwLHI/P3t9KX1yZXR1cm4gcy5fJEFJKHQpLHN9LCJEIil9KTt2YXIgVm1lLEFkLEkxYSxQMWEsYnh0PXUoKCk9PntmaygpO2ZrKCk7eDIoKTt4MigpO1ZtZT1nbG9iYWxUaGlzLEFkPWNsYXNzIGV4dGVuZHMgamN7c3RhdGlje2kodGhpcywiaSIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbmRlck9wdGlvbnM9e2hvc3Q6dGhpc30sdGhpcy5fJERvPXZvaWQgMH1jcmVhdGVSZW5kZXJSb290KCl7bGV0IGU9c3VwZXIuY3JlYXRlUmVuZGVyUm9vdCgpO3JldHVybiB0aGlzLnJlbmRlck9wdGlvbnMucmVuZGVyQmVmb3JlPz89ZS5maXJzdENoaWxkLGV9dXBkYXRlKGUpe2xldCByPXRoaXMucmVuZGVyKCk7dGhpcy5oYXNVcGRhdGVkfHwodGhpcy5yZW5kZXJPcHRpb25zLmlzQ29ubmVjdGVkPXRoaXMuaXNDb25uZWN0ZWQpLHN1cGVyLnVwZGF0ZShlKSx0aGlzLl8kRG89eGsocix0aGlzLnJlbmRlclJvb3QsdGhpcy5yZW5kZXJPcHRpb25zKX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fJERvPy5zZXRDb25uZWN0ZWQoITApfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMSl9cmVuZGVyKCl7cmV0dXJuIGFpfX07QWQuXyRsaXRFbGVtZW50JD0hMCxBZC5maW5hbGl6ZWQ9ITAsVm1lLmxpdEVsZW1lbnRIeWRyYXRlU3VwcG9ydD8uKHtMaXRFbGVtZW50OkFkfSk7STFhPVZtZS5saXRFbGVtZW50UG9seWZpbGxTdXBwb3J0O0kxYT8uKHtMaXRFbGVtZW50OkFkfSk7UDFhPXtfJEFLOmkoKHQsZSxyKT0+e3QuXyRBSyhlLHIpfSwiXyRBSyIpLF8kQUw6aSh0PT50Ll8kQUwsIl8kQUwiKX07KFZtZS5saXRFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiNC4yLjIiKX0pO3ZhciBOMWEseHh0PXUoKCk9PntOMWE9ITF9KTt2YXIgeWw9dSgoKT0+e2ZrKCk7eDIoKTtieHQoKTt4eHQoKX0pO3ZhciB2az1OdChFYWU9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEVhZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksRWFlLnVuaT12b2lkIDA7dmFyIE8xYT1pKCh0PSJ1bmkiKT0+YCR7dH1fJHsieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csZT0+e2xldCByPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4oZT09PSJ4Ij9yOnImM3w4KS50b1N0cmluZygxNil9KX1gLCJ1bmkiKTtFYWUudW5pPU8xYX0pO3ZhciBJYWUsUjMsUGFlPXUoKCk9PntJYWU9Y2xhc3N7c3RhdGlje2kodGhpcywiRGVmZXJyZWQiKX1jbGFpbSgpe2lmKHRoaXMuY2xhaW1lZCl0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGFscmVhZHkgY2xhaW1lZCIpO3RoaXMuY2xhaW1lZD0hMH1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkQXQ/dGhpcy5zdG9wcGVkQXQtdGhpcy5zdGFydGVkQXQ6RGF0ZS5ub3coKS10aGlzLnN0YXJ0ZWRBdH1jb25zdHJ1Y3Rvcigpe3RoaXMuY2xhaW1lZD0hMSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKGUscik9Pnt0aGlzLnJlc29sdmU9YT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksZShhKX0sdGhpcy5yZWplY3Q9YT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxyKGEpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfX0sUjM9aSgoKT0+bmV3IElhZSwiZGVmZXIiKX0pO3ZhciBOYWUsUjFhLHZ4dD11KCgpPT57UGFlKCk7TmFlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkN1bXVsYXRpdmVEZWZlcnJlZCIpfWNvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9UjMoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9c3ViRGVmZXIoKXtsZXQgZT1SMygpO3JldHVybiB0aGlzLmFkZFByb21pc2UoZS5wcm9taXNlKSxlfWFkZFByb21pc2UoZSl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnB1c2goZSl9fSxSMWE9aSgoKT0+bmV3IE5hZSwiY3VtdWxhdGl2ZURlZmVyIil9KTt2YXIgeHQ9e307VmUoeHQse0N1bXVsYXRpdmVEZWZlcnJlZDooKT0+TmFlLERlZmVycmVkOigpPT5JYWUsY3VtdWxhdGl2ZURlZmVyOigpPT5SMWEsZGVmZXI6KCk9PlIzLGZyb21DYWxsYmFjazooKT0+ajFhLGdldEZpcnN0VHJ1ZU9yRmFsc2U6KCk9PlYxYSxtYXA6KCk9PkgxYSxyZWplY3RlZFByb21pc2U6KCk9PkIxYSxyZXNvbHZlZFByb21pc2U6KCk9PkYxYSx0aW1lb3V0QW5kQ29udGludWU6KCk9PnExYSx0aW1lb3V0V3JhcDooKT0+eXh0fSk7ZnVuY3Rpb24gRjFhKHQpe3JldHVybiBQcm9taXNlLnJlc29sdmUodCl9dmFyIEIxYSxIMWEseXh0LHExYSxWMWEsajFhLEduPXUoKCk9PntQYWUoKTt2eHQoKTtQYWUoKTtpKEYxYSwicmVzb2x2ZWRQcm9taXNlIik7QjFhPWkodD0+UHJvbWlzZS5yZWplY3QodCksInJlamVjdGVkUHJvbWlzZSIpLEgxYT1pKGFzeW5jKHQsZSk9PlByb21pc2UuYWxsKHQubWFwKGUpKSwibWFwIikseXh0PWkoYXN5bmModCxlLHI9ITApPT5uZXcgUHJvbWlzZSgoYSxzKT0+e3NldFRpbWVvdXQoKCk9PntyP3MobmV3IEVycm9yKCJ0aW1lb3V0IikpOmEobnVsbCl9LGUpLHQudGhlbihhLHMpfSksInRpbWVvdXRXcmFwIikscTFhPWkoYXN5bmModCxlPTZlNCk9Pnl4dCh0LGUsITEpLCJ0aW1lb3V0QW5kQ29udGludWUiKSxWMWE9aShhc3luYyB0PT57bGV0IGU9UjMoKTtmb3IobGV0IHIgb2YgdClyLnRoZW4oYT0+e2E9PT0hMCYmZS5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKCgpPT57ZS5yZXNvbHZlKCExKX0pLGUucHJvbWlzZX0sImdldEZpcnN0VHJ1ZU9yRmFsc2UiKSxqMWE9aSh0PT5uZXcgUHJvbWlzZSgoZSxyKT0+e3QoKGEscyk9PnthP3IoYSk6ZShzKX0pfSksImZyb21DYWxsYmFjayIpfSk7dmFyIE9hZT11KCgpPT57R24oKX0pO2Z1bmN0aW9uIEFyKHQsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7am1lKHQsZSk7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHIsIl9fIiksdC5wcm90b3R5cGU9ZT09PW51bGw/T2JqZWN0LmNyZWF0ZShlKTooci5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IHIpfWZ1bmN0aW9uIFcxYSh0LGUpe3ZhciByPXt9O2Zvcih2YXIgYSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGEpJiZlLmluZGV4T2YoYSk8MCYmKHJbYV09dFthXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBzPTAsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO3M8YS5sZW5ndGg7cysrKWUuaW5kZXhPZihhW3NdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxhW3NdKSYmKHJbYVtzXV09dFthW3NdXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gRzFhKHQsZSxyLGEpe3ZhciBzPWFyZ3VtZW50cy5sZW5ndGgsbj1zPDM/ZTphPT09bnVsbD9hPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKTphLG87aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIiluPVJlZmxlY3QuZGVjb3JhdGUodCxlLHIsYSk7ZWxzZSBmb3IodmFyIGw9dC5sZW5ndGgtMTtsPj0wO2wtLSkobz10W2xdKSYmKG49KHM8Mz9vKG4pOnM+Mz9vKGUscixuKTpvKGUscikpfHxuKTtyZXR1cm4gcz4zJiZuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLG4pLG59ZnVuY3Rpb24gWTFhKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsYSl7ZShyLGEsdCl9fWZ1bmN0aW9uIEsxYSh0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH1mdW5jdGlvbiBaMWEodCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9ZnVuY3Rpb24gUTFhKHQpe3JldHVybiB0eXBlb2YgdD09InN5bWJvbCI/dDoiIi5jb25jYXQodCl9ZnVuY3Rpb24gWDFhKHQsZSxyKXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiJiYoZT1lLmRlc2NyaXB0aW9uPyJbIi5jb25jYXQoZS5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyPyIiLmNvbmNhdChyLCIgIixlKTplfSl9ZnVuY3Rpb24gSjFhKHQsZSl7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09ImZ1bmN0aW9uIilyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YSh0LGUpfWZ1bmN0aW9uIFltZSh0LGUscixhKXtmdW5jdGlvbiBzKG4pe3JldHVybiBuIGluc3RhbmNlb2Ygcj9uOm5ldyByKGZ1bmN0aW9uKG8pe28obil9KX1yZXR1cm4gaShzLCJhZG9wdCIpLG5ldyhyfHwocj1Qcm9taXNlKSkoZnVuY3Rpb24obixvKXtmdW5jdGlvbiBsKGYpe3RyeXtkKGEubmV4dChmKSl9Y2F0Y2gocCl7byhwKX19aShsLCJmdWxmaWxsZWQiKTtmdW5jdGlvbiBjKGYpe3RyeXtkKGEudGhyb3coZikpfWNhdGNoKHApe28ocCl9fWkoYywicmVqZWN0ZWQiKTtmdW5jdGlvbiBkKGYpe2YuZG9uZT9uKGYudmFsdWUpOnMoZi52YWx1ZSkudGhlbihsLGMpfWkoZCwic3RlcCIpLGQoKGE9YS5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIHlrKHQsZSl7dmFyIHI9e2xhYmVsOjAsc2VudDppKGZ1bmN0aW9uKCl7aWYoblswXSYxKXRocm93IG5bMV07cmV0dXJuIG5bMV19LCJzZW50IiksdHJ5czpbXSxvcHM6W119LGEscyxuLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PWwoMCksby50aHJvdz1sKDEpLG8ucmV0dXJuPWwoMiksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBsKGQpe3JldHVybiBmdW5jdGlvbihmKXtyZXR1cm4gYyhbZCxmXSl9fWZ1bmN0aW9uIGMoZCl7aWYoYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtvJiYobz0wLGRbMF0mJihyPTApKSxyOyl0cnl7aWYoYT0xLHMmJihuPWRbMF0mMj9zLnJldHVybjpkWzBdP3MudGhyb3d8fCgobj1zLnJldHVybikmJm4uY2FsbChzKSwwKTpzLm5leHQpJiYhKG49bi5jYWxsKHMsZFsxXSkpLmRvbmUpcmV0dXJuIG47c3dpdGNoKHM9MCxuJiYoZD1bZFswXSYyLG4udmFsdWVdKSxkWzBdKXtjYXNlIDA6Y2FzZSAxOm49ZDticmVhaztjYXNlIDQ6cmV0dXJuIHIubGFiZWwrKyx7dmFsdWU6ZFsxXSxkb25lOiExfTtjYXNlIDU6ci5sYWJlbCsrLHM9ZFsxXSxkPVswXTtjb250aW51ZTtjYXNlIDc6ZD1yLm9wcy5wb3AoKSxyLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihuPXIudHJ5cywhKG49bi5sZW5ndGg+MCYmbltuLmxlbmd0aC0xXSkmJihkWzBdPT09Nnx8ZFswXT09PTIpKXtyPTA7Y29udGludWV9aWYoZFswXT09PTMmJighbnx8ZFsxXT5uWzBdJiZkWzFdPG5bM10pKXtyLmxhYmVsPWRbMV07YnJlYWt9aWYoZFswXT09PTYmJnIubGFiZWw8blsxXSl7ci5sYWJlbD1uWzFdLG49ZDticmVha31pZihuJiZyLmxhYmVsPG5bMl0pe3IubGFiZWw9blsyXSxyLm9wcy5wdXNoKGQpO2JyZWFrfW5bMl0mJnIub3BzLnBvcCgpLHIudHJ5cy5wb3AoKTtjb250aW51ZX1kPWUuY2FsbCh0LHIpfWNhdGNoKGYpe2Q9WzYsZl0scz0wfWZpbmFsbHl7YT1uPTB9aWYoZFswXSY1KXRocm93IGRbMV07cmV0dXJue3ZhbHVlOmRbMF0/ZFsxXTp2b2lkIDAsZG9uZTohMH19fWZ1bmN0aW9uIGVsYSh0LGUpe2Zvcih2YXIgciBpbiB0KXIhPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmV21lKGUsdCxyKX1mdW5jdGlvbiBZbih0KXt2YXIgZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wuaXRlcmF0b3Iscj1lJiZ0W2VdLGE9MDtpZihyKXJldHVybiByLmNhbGwodCk7aWYodCYmdHlwZW9mIHQubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDppKGZ1bmN0aW9uKCl7cmV0dXJuIHQmJmE+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W2ErK10sZG9uZTohdH19LCJuZXh0Iil9O3Rocm93IG5ldyBUeXBlRXJyb3IoZT8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9ZnVuY3Rpb24gQWkodCxlKXt2YXIgcj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIXIpcmV0dXJuIHQ7dmFyIGE9ci5jYWxsKHQpLHMsbj1bXSxvO3RyeXtmb3IoOyhlPT09dm9pZCAwfHxlLS0gPjApJiYhKHM9YS5uZXh0KCkpLmRvbmU7KW4ucHVzaChzLnZhbHVlKX1jYXRjaChsKXtvPXtlcnJvcjpsfX1maW5hbGx5e3RyeXtzJiYhcy5kb25lJiYocj1hLnJldHVybikmJnIuY2FsbChhKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIG59ZnVuY3Rpb24gdGxhKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQ9dC5jb25jYXQoQWkoYXJndW1lbnRzW2VdKSk7cmV0dXJuIHR9ZnVuY3Rpb24gcmxhKCl7Zm9yKHZhciB0PTAsZT0wLHI9YXJndW1lbnRzLmxlbmd0aDtlPHI7ZSsrKXQrPWFyZ3VtZW50c1tlXS5sZW5ndGg7Zm9yKHZhciBhPUFycmF5KHQpLHM9MCxlPTA7ZTxyO2UrKylmb3IodmFyIG49YXJndW1lbnRzW2VdLG89MCxsPW4ubGVuZ3RoO288bDtvKysscysrKWFbc109bltvXTtyZXR1cm4gYX1mdW5jdGlvbiBQcyh0LGUscil7aWYocnx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciBhPTAscz1lLmxlbmd0aCxuO2E8czthKyspKG58fCEoYSBpbiBlKSkmJihufHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsYSkpLG5bYV09ZVthXSk7cmV0dXJuIHQuY29uY2F0KG58fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX1mdW5jdGlvbiBFZCh0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIEVkPyh0aGlzLnY9dCx0aGlzKTpuZXcgRWQodCl9ZnVuY3Rpb24gS21lKHQsZSxyKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGE9ci5hcHBseSh0LGV8fFtdKSxzLG49W107cmV0dXJuIHM9T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3I9PSJmdW5jdGlvbiI/QXN5bmNJdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSksbCgibmV4dCIpLGwoInRocm93IiksbCgicmV0dXJuIixvKSxzW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxzO2Z1bmN0aW9uIG8obSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybiBQcm9taXNlLnJlc29sdmUodikudGhlbihtLHApfX1mdW5jdGlvbiBsKG0sdil7YVttXSYmKHNbbV09ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGcseSl7bi5wdXNoKFttLGIsZyx5XSk+MXx8YyhtLGIpfSl9LHYmJihzW21dPXYoc1ttXSkpKX1mdW5jdGlvbiBjKG0sdil7dHJ5e2QoYVttXSh2KSl9Y2F0Y2goYil7aChuWzBdWzNdLGIpfX1mdW5jdGlvbiBkKG0pe20udmFsdWUgaW5zdGFuY2VvZiBFZD9Qcm9taXNlLnJlc29sdmUobS52YWx1ZS52KS50aGVuKGYscCk6aChuWzBdWzJdLG0pfWZ1bmN0aW9uIGYobSl7YygibmV4dCIsbSl9ZnVuY3Rpb24gcChtKXtjKCJ0aHJvdyIsbSl9ZnVuY3Rpb24gaChtLHYpe20odiksbi5zaGlmdCgpLG4ubGVuZ3RoJiZjKG5bMF1bMF0sblswXVsxXSl9fWZ1bmN0aW9uIGFsYSh0KXt2YXIgZSxyO3JldHVybiBlPXt9LGEoIm5leHQiKSxhKCJ0aHJvdyIsZnVuY3Rpb24ocyl7dGhyb3cgc30pLGEoInJldHVybiIpLGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlO2Z1bmN0aW9uIGEocyxuKXtlW3NdPXRbc10/ZnVuY3Rpb24obyl7cmV0dXJuKHI9IXIpP3t2YWx1ZTpFZCh0W3NdKG8pKSxkb25lOiExfTpuP24obyk6b306bn19ZnVuY3Rpb24gWm1lKHQpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgZT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSxyO3JldHVybiBlP2UuY2FsbCh0KToodD10eXBlb2YgWW49PSJmdW5jdGlvbiI/WW4odCk6dFtTeW1ib2wuaXRlcmF0b3JdKCkscj17fSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyKTtmdW5jdGlvbiBhKG4pe3Jbbl09dFtuXSYmZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsYyl7bz10W25dKG8pLHMobCxjLG8uZG9uZSxvLnZhbHVlKX0pfX1mdW5jdGlvbiBzKG4sbyxsLGMpe1Byb21pc2UucmVzb2x2ZShjKS50aGVuKGZ1bmN0aW9uKGQpe24oe3ZhbHVlOmQsZG9uZTpsfSl9LG8pfX1mdW5jdGlvbiBpbGEodCxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJyYXciLHt2YWx1ZTplfSk6dC5yYXc9ZSx0fWZ1bmN0aW9uIG5sYSh0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIHI9R21lKHQpLGE9MDthPHIubGVuZ3RoO2ErKylyW2FdIT09ImRlZmF1bHQiJiZXbWUoZSx0LHJbYV0pO3JldHVybiBzbGEoZSx0KSxlfWZ1bmN0aW9uIG9sYSh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gbGxhKHQsZSxyLGEpe2lmKHI9PT0iYSImJiFhKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iP3QhPT1lfHwhYTohZS5oYXModCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIHI9PT0ibSI/YTpyPT09ImEiP2EuY2FsbCh0KTphP2EudmFsdWU6ZS5nZXQodCl9ZnVuY3Rpb24gY2xhKHQsZSxyLGEscyl7aWYoYT09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihhPT09ImEiJiYhcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj90IT09ZXx8IXM6IWUuaGFzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGE9PT0iYSI/cy5jYWxsKHQscik6cz9zLnZhbHVlPXI6ZS5zZXQodCxyKSxyfWZ1bmN0aW9uIGRsYSh0LGUpe2lmKGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCImJnR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP2U9PT10OnQuaGFzKGUpfWZ1bmN0aW9uIHVsYSh0LGUscil7aWYoZSE9bnVsbCl7aWYodHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7dmFyIGEscztpZihyKXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2E9ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXX1pZihhPT09dm9pZCAwKXtpZighU3ltYm9sLmRpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7YT1lW1N5bWJvbC5kaXNwb3NlXSxyJiYocz1hKX1pZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuIik7cyYmKGE9aShmdW5jdGlvbigpe3RyeXtzLmNhbGwodGhpcyl9Y2F0Y2gobil7cmV0dXJuIFByb21pc2UucmVqZWN0KG4pfX0sImRpc3Bvc2UiKSksdC5zdGFjay5wdXNoKHt2YWx1ZTplLGRpc3Bvc2U6YSxhc3luYzpyfSl9ZWxzZSByJiZ0LnN0YWNrLnB1c2goe2FzeW5jOiEwfSk7cmV0dXJuIGV9ZnVuY3Rpb24gZmxhKHQpe2Z1bmN0aW9uIGUobil7dC5lcnJvcj10Lmhhc0Vycm9yP25ldyBwbGEobix0LmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6bix0Lmhhc0Vycm9yPSEwfWkoZSwiZmFpbCIpO3ZhciByLGE9MDtmdW5jdGlvbiBzKCl7Zm9yKDtyPXQuc3RhY2sucG9wKCk7KXRyeXtpZighci5hc3luYyYmYT09PTEpcmV0dXJuIGE9MCx0LnN0YWNrLnB1c2gociksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihzKTtpZihyLmRpc3Bvc2Upe3ZhciBuPXIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO2lmKHIuYXN5bmMpcmV0dXJuIGF8PTIsUHJvbWlzZS5yZXNvbHZlKG4pLnRoZW4ocyxmdW5jdGlvbihvKXtyZXR1cm4gZShvKSxzKCl9KX1lbHNlIGF8PTF9Y2F0Y2gobyl7ZShvKX1pZihhPT09MSlyZXR1cm4gdC5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdCh0LmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTtpZih0Lmhhc0Vycm9yKXRocm93IHQuZXJyb3J9cmV0dXJuIGkocywibmV4dCIpLHMoKX1mdW5jdGlvbiBobGEodCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciJiYvXlwuXC4/XC8vLnRlc3QodCk/dC5yZXBsYWNlKC9cLih0c3gpJHwoKD86XC5kKT8pKCg/OlwuW14uL10rPyk/KVwuKFtjbV0/KXRzJC9pLGZ1bmN0aW9uKHIsYSxzLG4sbyl7cmV0dXJuIGE/ZT8iLmpzeCI6Ii5qcyI6cyYmKCFufHwhbyk/cjpzK24rIi4iK28udG9Mb3dlckNhc2UoKSsianMifSk6dH12YXIgam1lLFVtZSxXbWUsc2xhLEdtZSxwbGEsUFZhLF9hPXUoKCk9PntqbWU9aShmdW5jdGlvbih0LGUpe3JldHVybiBqbWU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsYSl7ci5fX3Byb3RvX189YX18fGZ1bmN0aW9uKHIsYSl7Zm9yKHZhciBzIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEscykmJihyW3NdPWFbc10pfSxqbWUodCxlKX0sImV4dGVuZFN0YXRpY3MiKTtpKEFyLCJfX2V4dGVuZHMiKTtVbWU9aShmdW5jdGlvbigpe3JldHVybiBVbWU9T2JqZWN0LmFzc2lnbnx8aShmdW5jdGlvbihlKXtmb3IodmFyIHIsYT0xLHM9YXJndW1lbnRzLmxlbmd0aDthPHM7YSsrKXtyPWFyZ3VtZW50c1thXTtmb3IodmFyIG4gaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmKGVbbl09cltuXSl9cmV0dXJuIGV9LCJfX2Fzc2lnbiIpLFVtZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJfX2Fzc2lnbiIpO2koVzFhLCJfX3Jlc3QiKTtpKEcxYSwiX19kZWNvcmF0ZSIpO2koWTFhLCJfX3BhcmFtIik7aShLMWEsIl9fZXNEZWNvcmF0ZSIpO2koWjFhLCJfX3J1bkluaXRpYWxpemVycyIpO2koUTFhLCJfX3Byb3BLZXkiKTtpKFgxYSwiX19zZXRGdW5jdGlvbk5hbWUiKTtpKEoxYSwiX19tZXRhZGF0YSIpO2koWW1lLCJfX2F3YWl0ZXIiKTtpKHlrLCJfX2dlbmVyYXRvciIpO1dtZT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUscixhKXthPT09dm9pZCAwJiYoYT1yKTt2YXIgcz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscik7KCFzfHwoImdldCJpbiBzPyFlLl9fZXNNb2R1bGU6cy53cml0YWJsZXx8cy5jb25maWd1cmFibGUpKSYmKHM9e2VudW1lcmFibGU6ITAsZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gZVtyXX0sImdldCIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsYSxzKX0pOihmdW5jdGlvbih0LGUscixhKXthPT09dm9pZCAwJiYoYT1yKSx0W2FdPWVbcl19KTtpKGVsYSwiX19leHBvcnRTdGFyIik7aShZbiwiX192YWx1ZXMiKTtpKEFpLCJfX3JlYWQiKTtpKHRsYSwiX19zcHJlYWQiKTtpKHJsYSwiX19zcHJlYWRBcnJheXMiKTtpKFBzLCJfX3NwcmVhZEFycmF5Iik7aShFZCwiX19hd2FpdCIpO2koS21lLCJfX2FzeW5jR2VuZXJhdG9yIik7aShhbGEsIl9fYXN5bmNEZWxlZ2F0b3IiKTtpKFptZSwiX19hc3luY1ZhbHVlcyIpO2koaWxhLCJfX21ha2VUZW1wbGF0ZU9iamVjdCIpO3NsYT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbih0LGUpe3QuZGVmYXVsdD1lfSxHbWU9aShmdW5jdGlvbih0KXtyZXR1cm4gR21lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXt2YXIgcj1bXTtmb3IodmFyIGEgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSYmKHJbci5sZW5ndGhdPWEpO3JldHVybiByfSxHbWUodCl9LCJvd25LZXlzIik7aShubGEsIl9faW1wb3J0U3RhciIpO2kob2xhLCJfX2ltcG9ydERlZmF1bHQiKTtpKGxsYSwiX19jbGFzc1ByaXZhdGVGaWVsZEdldCIpO2koY2xhLCJfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Iik7aShkbGEsIl9fY2xhc3NQcml2YXRlRmllbGRJbiIpO2kodWxhLCJfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSIpO3BsYT10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iP1N1cHByZXNzZWRFcnJvcjpmdW5jdGlvbih0LGUscil7dmFyIGE9bmV3IEVycm9yKHIpO3JldHVybiBhLm5hbWU9IlN1cHByZXNzZWRFcnJvciIsYS5lcnJvcj10LGEuc3VwcHJlc3NlZD1lLGF9O2koZmxhLCJfX2Rpc3Bvc2VSZXNvdXJjZXMiKTtpKGhsYSwiX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24iKTtQVmE9e19fZXh0ZW5kczpBcixfX2Fzc2lnbjpVbWUsX19yZXN0OlcxYSxfX2RlY29yYXRlOkcxYSxfX3BhcmFtOlkxYSxfX2VzRGVjb3JhdGU6SzFhLF9fcnVuSW5pdGlhbGl6ZXJzOloxYSxfX3Byb3BLZXk6UTFhLF9fc2V0RnVuY3Rpb25OYW1lOlgxYSxfX21ldGFkYXRhOkoxYSxfX2F3YWl0ZXI6WW1lLF9fZ2VuZXJhdG9yOnlrLF9fY3JlYXRlQmluZGluZzpXbWUsX19leHBvcnRTdGFyOmVsYSxfX3ZhbHVlczpZbixfX3JlYWQ6QWksX19zcHJlYWQ6dGxhLF9fc3ByZWFkQXJyYXlzOnJsYSxfX3NwcmVhZEFycmF5OlBzLF9fYXdhaXQ6RWQsX19hc3luY0dlbmVyYXRvcjpLbWUsX19hc3luY0RlbGVnYXRvcjphbGEsX19hc3luY1ZhbHVlczpabWUsX19tYWtlVGVtcGxhdGVPYmplY3Q6aWxhLF9faW1wb3J0U3RhcjpubGEsX19pbXBvcnREZWZhdWx0Om9sYSxfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OmxsYSxfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0OmNsYSxfX2NsYXNzUHJpdmF0ZUZpZWxkSW46ZGxhLF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOnVsYSxfX2Rpc3Bvc2VSZXNvdXJjZXM6ZmxhLF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOmhsYX19KTtmdW5jdGlvbiBycih0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiJ9dmFyIG9uPXUoKCk9PntpKHJyLCJpc0Z1bmN0aW9uIil9KTtmdW5jdGlvbiBwMSh0KXt2YXIgZT1pKGZ1bmN0aW9uKGEpe0Vycm9yLmNhbGwoYSksYS5zdGFjaz1uZXcgRXJyb3IoKS5zdGFja30sIl9zdXBlciIpLHI9dChlKTtyZXR1cm4gci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIscn12YXIgRjM9dSgoKT0+e2kocDEsImNyZWF0ZUVycm9yQ2xhc3MiKX0pO3ZhciB3ayxRbWU9dSgoKT0+e0YzKCk7d2s9cDEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7dCh0aGlzKSx0aGlzLm1lc3NhZ2U9cj9yLmxlbmd0aCtgIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246CmArci5tYXAoZnVuY3Rpb24oYSxzKXtyZXR1cm4gcysxKyIpICIrYS50b1N0cmluZygpfSkuam9pbihgCiAgYCk6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1yfSwiVW5zdWJzY3JpcHRpb25FcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24gdjIodCxlKXtpZih0KXt2YXIgcj10LmluZGV4T2YoZSk7MDw9ciYmdC5zcGxpY2UociwxKX19dmFyIElnPXUoKCk9PntpKHYyLCJhcnJSZW1vdmUiKX0pO2Z1bmN0aW9uIFJhZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFFpfHx0JiYiY2xvc2VkImluIHQmJnJyKHQucmVtb3ZlKSYmcnIodC5hZGQpJiZycih0LnVuc3Vic2NyaWJlKX1mdW5jdGlvbiB3eHQodCl7cnIodCk/dCgpOnQudW5zdWJzY3JpYmUoKX12YXIgUWksWG1lLFVjPXUoKCk9PntfYSgpO29uKCk7UW1lKCk7SWcoKTtRaT0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMuaW5pdGlhbFRlYXJkb3duPWUsdGhpcy5jbG9zZWQ9ITEsdGhpcy5fcGFyZW50YWdlPW51bGwsdGhpcy5fZmluYWxpemVycz1udWxsfXJldHVybiBpKHQsIlN1YnNjcmlwdGlvbiIpLHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dmFyIGUscixhLHMsbjtpZighdGhpcy5jbG9zZWQpe3RoaXMuY2xvc2VkPSEwO3ZhciBvPXRoaXMuX3BhcmVudGFnZTtpZihvKWlmKHRoaXMuX3BhcmVudGFnZT1udWxsLEFycmF5LmlzQXJyYXkobykpdHJ5e2Zvcih2YXIgbD1ZbihvKSxjPWwubmV4dCgpOyFjLmRvbmU7Yz1sLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtkLnJlbW92ZSh0aGlzKX19Y2F0Y2goYil7ZT17ZXJyb3I6Yn19ZmluYWxseXt0cnl7YyYmIWMuZG9uZSYmKHI9bC5yZXR1cm4pJiZyLmNhbGwobCl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fWVsc2Ugby5yZW1vdmUodGhpcyk7dmFyIGY9dGhpcy5pbml0aWFsVGVhcmRvd247aWYocnIoZikpdHJ5e2YoKX1jYXRjaChiKXtuPWIgaW5zdGFuY2VvZiB3az9iLmVycm9yczpbYl19dmFyIHA9dGhpcy5fZmluYWxpemVycztpZihwKXt0aGlzLl9maW5hbGl6ZXJzPW51bGw7dHJ5e2Zvcih2YXIgaD1ZbihwKSxtPWgubmV4dCgpOyFtLmRvbmU7bT1oLm5leHQoKSl7dmFyIHY9bS52YWx1ZTt0cnl7d3h0KHYpfWNhdGNoKGIpe249bj8/W10sYiBpbnN0YW5jZW9mIHdrP249UHMoUHMoW10sQWkobikpLEFpKGIuZXJyb3JzKSk6bi5wdXNoKGIpfX19Y2F0Y2goYil7YT17ZXJyb3I6Yn19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKHM9aC5yZXR1cm4pJiZzLmNhbGwoaCl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fX1pZihuKXRocm93IG5ldyB3ayhuKX19LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt2YXIgcjtpZihlJiZlIT09dGhpcylpZih0aGlzLmNsb3NlZCl3eHQoZSk7ZWxzZXtpZihlIGluc3RhbmNlb2YgdCl7aWYoZS5jbG9zZWR8fGUuX2hhc1BhcmVudCh0aGlzKSlyZXR1cm47ZS5fYWRkUGFyZW50KHRoaXMpfSh0aGlzLl9maW5hbGl6ZXJzPShyPXRoaXMuX2ZpbmFsaXplcnMpIT09bnVsbCYmciE9PXZvaWQgMD9yOltdKS5wdXNoKGUpfX0sdC5wcm90b3R5cGUuX2hhc1BhcmVudD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cmV0dXJuIHI9PT1lfHxBcnJheS5pc0FycmF5KHIpJiZyLmluY2x1ZGVzKGUpfSx0LnByb3RvdHlwZS5fYWRkUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX3BhcmVudGFnZTt0aGlzLl9wYXJlbnRhZ2U9QXJyYXkuaXNBcnJheShyKT8oci5wdXNoKGUpLHIpOnI/W3IsZV06ZX0sdC5wcm90b3R5cGUuX3JlbW92ZVBhcmVudD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cj09PWU/dGhpcy5fcGFyZW50YWdlPW51bGw6QXJyYXkuaXNBcnJheShyKSYmdjIocixlKX0sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX2ZpbmFsaXplcnM7ciYmdjIocixlKSxlIGluc3RhbmNlb2YgdCYmZS5fcmVtb3ZlUGFyZW50KHRoaXMpfSx0LkVNUFRZPShmdW5jdGlvbigpe3ZhciBlPW5ldyB0O3JldHVybiBlLmNsb3NlZD0hMCxlfSkoKSx0fSkoKSxYbWU9UWkuRU1QVFk7aShSYWUsImlzU3Vic2NyaXB0aW9uIik7aSh3eHQsImV4ZWNGaW5hbGl6ZXIiKX0pO3ZhciB3bCxQZz11KCgpPT57d2w9e29uVW5oYW5kbGVkRXJyb3I6bnVsbCxvblN0b3BwZWROb3RpZmljYXRpb246bnVsbCxQcm9taXNlOnZvaWQgMCx1c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nOiExLHVzZURlcHJlY2F0ZWROZXh0Q29udGV4dDohMX19KTt2YXIgTmcsSm1lPXUoKCk9PntfYSgpO05nPXtzZXRUaW1lb3V0OmkoZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sYT0yO2E8YXJndW1lbnRzLmxlbmd0aDthKyspclthLTJdPWFyZ3VtZW50c1thXTt2YXIgcz1OZy5kZWxlZ2F0ZTtyZXR1cm4gcz8uc2V0VGltZW91dD9zLnNldFRpbWVvdXQuYXBwbHkocyxQcyhbdCxlXSxBaShyKSkpOnNldFRpbWVvdXQuYXBwbHkodm9pZCAwLFBzKFt0LGVdLEFpKHIpKSl9LCJzZXRUaW1lb3V0IiksY2xlYXJUaW1lb3V0OmkoZnVuY3Rpb24odCl7dmFyIGU9TmcuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFyVGltZW91dHx8Y2xlYXJUaW1lb3V0KSh0KX0sImNsZWFyVGltZW91dCIpLGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBGYWUodCl7Tmcuc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPXdsLm9uVW5oYW5kbGVkRXJyb3I7aWYoZSllKHQpO2Vsc2UgdGhyb3cgdH0pfXZhciBlNWU9dSgoKT0+e1BnKCk7Sm1lKCk7aShGYWUsInJlcG9ydFVuaGFuZGxlZEVycm9yIil9KTtmdW5jdGlvbiBrbCgpe312YXIgSWY9dSgoKT0+e2koa2wsIm5vb3AiKX0pO2Z1bmN0aW9uIFN4dCh0KXtyZXR1cm4gdDVlKCJFIix2b2lkIDAsdCl9ZnVuY3Rpb24gTXh0KHQpe3JldHVybiB0NWUoIk4iLHQsdm9pZCAwKX1mdW5jdGlvbiB0NWUodCxlLHIpe3JldHVybntraW5kOnQsdmFsdWU6ZSxlcnJvcjpyfX12YXIga3h0LEN4dD11KCgpPT57a3h0PShmdW5jdGlvbigpe3JldHVybiB0NWUoIkMiLHZvaWQgMCx2b2lkIDApfSkoKTtpKFN4dCwiZXJyb3JOb3RpZmljYXRpb24iKTtpKE14dCwibmV4dE5vdGlmaWNhdGlvbiIpO2kodDVlLCJjcmVhdGVOb3RpZmljYXRpb24iKX0pO2Z1bmN0aW9uIE9nKHQpe2lmKHdsLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpe3ZhciBlPSFQZjtpZihlJiYoUGY9e2Vycm9yVGhyb3duOiExLGVycm9yOm51bGx9KSx0KCksZSl7dmFyIHI9UGYsYT1yLmVycm9yVGhyb3duLHM9ci5lcnJvcjtpZihQZj1udWxsLGEpdGhyb3cgc319ZWxzZSB0KCl9ZnVuY3Rpb24genh0KHQpe3dsLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJlBmJiYoUGYuZXJyb3JUaHJvd249ITAsUGYuZXJyb3I9dCl9dmFyIFBmLEJhZT11KCgpPT57UGcoKTtQZj1udWxsO2koT2csImVycm9yQ29udGV4dCIpO2koenh0LCJjYXB0dXJlRXJyb3IiKX0pO2Z1bmN0aW9uIHI1ZSh0LGUpe3JldHVybiBtbGEuY2FsbCh0LGUpfWZ1bmN0aW9uIEhhZSh0KXt3bC51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nP3p4dCh0KTpGYWUodCl9ZnVuY3Rpb24gYmxhKHQpe3Rocm93IHR9ZnVuY3Rpb24gYTVlKHQsZSl7dmFyIHI9d2wub25TdG9wcGVkTm90aWZpY2F0aW9uO3ImJk5nLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gcih0LGUpfSl9dmFyIE5mLG1sYSxnbGEsQjMseGxhLGtrPXUoKCk9PntfYSgpO29uKCk7VWMoKTtQZygpO2U1ZSgpO0lmKCk7Q3h0KCk7Sm1lKCk7QmFlKCk7TmY9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyKXt2YXIgYT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGEuaXNTdG9wcGVkPSExLHI/KGEuZGVzdGluYXRpb249cixSYWUocikmJnIuYWRkKGEpKTphLmRlc3RpbmF0aW9uPXhsYSxhfXJldHVybiBpKGUsIlN1YnNjcmliZXIiKSxlLmNyZWF0ZT1mdW5jdGlvbihyLGEscyl7cmV0dXJuIG5ldyBCMyhyLGEscyl9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dGhpcy5pc1N0b3BwZWQ/YTVlKE14dChyKSx0aGlzKTp0aGlzLl9uZXh0KHIpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZD9hNWUoU3h0KHIpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcihyKSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ/YTVlKGt4dCx0aGlzKToodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5fY29tcGxldGUoKSl9LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5jbG9zZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCx0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLHRoaXMuZGVzdGluYXRpb249bnVsbCl9LGUucHJvdG90eXBlLl9uZXh0PWZ1bmN0aW9uKHIpe3RoaXMuZGVzdGluYXRpb24ubmV4dChyKX0sZS5wcm90b3R5cGUuX2Vycm9yPWZ1bmN0aW9uKHIpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHIpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sZS5wcm90b3R5cGUuX2NvbXBsZXRlPWZ1bmN0aW9uKCl7dHJ5e3RoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19LGV9KShRaSksbWxhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO2kocjVlLCJiaW5kIik7Z2xhPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9ZX1yZXR1cm4gaSh0LCJDb25zdW1lck9ic2VydmVyIiksdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihyLm5leHQpdHJ5e3IubmV4dChlKX1jYXRjaChhKXtIYWUoYSl9fSx0LnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihyLmVycm9yKXRyeXtyLmVycm9yKGUpfWNhdGNoKGEpe0hhZShhKX1lbHNlIEhhZShlKX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihlLmNvbXBsZXRlKXRyeXtlLmNvbXBsZXRlKCl9Y2F0Y2gocil7SGFlKHIpfX0sdH0pKCksQjM9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEscyl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzLG87aWYocnIocil8fCFyKW89e25leHQ6cj8/dm9pZCAwLGVycm9yOmE/P3ZvaWQgMCxjb21wbGV0ZTpzPz92b2lkIDB9O2Vsc2V7dmFyIGw7biYmd2wudXNlRGVwcmVjYXRlZE5leHRDb250ZXh0PyhsPU9iamVjdC5jcmVhdGUociksbC51bnN1YnNjcmliZT1mdW5jdGlvbigpe3JldHVybiBuLnVuc3Vic2NyaWJlKCl9LG89e25leHQ6ci5uZXh0JiZyNWUoci5uZXh0LGwpLGVycm9yOnIuZXJyb3ImJnI1ZShyLmVycm9yLGwpLGNvbXBsZXRlOnIuY29tcGxldGUmJnI1ZShyLmNvbXBsZXRlLGwpfSk6bz1yfXJldHVybiBuLmRlc3RpbmF0aW9uPW5ldyBnbGEobyksbn1yZXR1cm4gaShlLCJTYWZlU3Vic2NyaWJlciIpLGV9KShOZik7aShIYWUsImhhbmRsZVVuaGFuZGxlZEVycm9yIik7aShibGEsImRlZmF1bHRFcnJvckhhbmRsZXIiKTtpKGE1ZSwiaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbiIpO3hsYT17Y2xvc2VkOiEwLG5leHQ6a2wsZXJyb3I6YmxhLGNvbXBsZXRlOmtsfX0pO3ZhciBPZixTaz11KCgpPT57T2Y9KGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIn0pKCl9KTtmdW5jdGlvbiBXYyh0KXtyZXR1cm4gdH12YXIgUmc9dSgoKT0+e2koV2MsImlkZW50aXR5Iil9KTtmdW5jdGlvbiB2bGEoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIGk1ZSh0KX1mdW5jdGlvbiBpNWUodCl7cmV0dXJuIHQubGVuZ3RoPT09MD9XYzp0Lmxlbmd0aD09PTE/dFswXTppKGZ1bmN0aW9uKHIpe3JldHVybiB0LnJlZHVjZShmdW5jdGlvbihhLHMpe3JldHVybiBzKGEpfSxyKX0sInBpcGVkIil9dmFyIHM1ZT11KCgpPT57UmcoKTtpKHZsYSwicGlwZSIpO2koaTVlLCJwaXBlRnJvbUFycmF5Iil9KTtmdW5jdGlvbiBfeHQodCl7dmFyIGU7cmV0dXJuKGU9dD8/d2wuUHJvbWlzZSkhPT1udWxsJiZlIT09dm9pZCAwP2U6UHJvbWlzZX1mdW5jdGlvbiB5bGEodCl7cmV0dXJuIHQmJnJyKHQubmV4dCkmJnJyKHQuZXJyb3IpJiZycih0LmNvbXBsZXRlKX1mdW5jdGlvbiB3bGEodCl7cmV0dXJuIHQmJnQgaW5zdGFuY2VvZiBOZnx8eWxhKHQpJiZSYWUodCl9dmFyIG5yLEFvPXUoKCk9PntraygpO1VjKCk7U2soKTtzNWUoKTtQZygpO29uKCk7QmFlKCk7bnI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtlJiYodGhpcy5fc3Vic2NyaWJlPWUpfXJldHVybiBpKHQsIk9ic2VydmFibGUiKSx0LnByb3RvdHlwZS5saWZ0PWZ1bmN0aW9uKGUpe3ZhciByPW5ldyB0O3JldHVybiByLnNvdXJjZT10aGlzLHIub3BlcmF0b3I9ZSxyfSx0LnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSxyLGEpe3ZhciBzPXRoaXMsbj13bGEoZSk/ZTpuZXcgQjMoZSxyLGEpO3JldHVybiBPZyhmdW5jdGlvbigpe3ZhciBvPXMsbD1vLm9wZXJhdG9yLGM9by5zb3VyY2U7bi5hZGQobD9sLmNhbGwobixjKTpjP3MuX3N1YnNjcmliZShuKTpzLl90cnlTdWJzY3JpYmUobikpfSksbn0sdC5wcm90b3R5cGUuX3RyeVN1YnNjcmliZT1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIHRoaXMuX3N1YnNjcmliZShlKX1jYXRjaChyKXtlLmVycm9yKHIpfX0sdC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlLHIpe3ZhciBhPXRoaXM7cmV0dXJuIHI9X3h0KHIpLG5ldyByKGZ1bmN0aW9uKHMsbil7dmFyIG89bmV3IEIzKHtuZXh0OmkoZnVuY3Rpb24obCl7dHJ5e2UobCl9Y2F0Y2goYyl7bihjKSxvLnVuc3Vic2NyaWJlKCl9fSwibmV4dCIpLGVycm9yOm4sY29tcGxldGU6c30pO2Euc3Vic2NyaWJlKG8pfSl9LHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dmFyIHI7cmV0dXJuKHI9dGhpcy5zb3VyY2UpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5zdWJzY3JpYmUoZSl9LHQucHJvdG90eXBlW09mXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWVbcl09YXJndW1lbnRzW3JdO3JldHVybiBpNWUoZSkodGhpcyl9LHQucHJvdG90eXBlLnRvUHJvbWlzZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3JldHVybiBlPV94dChlKSxuZXcgZShmdW5jdGlvbihhLHMpe3ZhciBuO3Iuc3Vic2NyaWJlKGZ1bmN0aW9uKG8pe3JldHVybiBuPW99LGZ1bmN0aW9uKG8pe3JldHVybiBzKG8pfSxmdW5jdGlvbigpe3JldHVybiBhKG4pfSl9KX0sdC5jcmVhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KGUpfSx0fSkoKTtpKF94dCwiZ2V0UHJvbWlzZUN0b3IiKTtpKHlsYSwiaXNPYnNlcnZlciIpO2kod2xhLCJpc1N1YnNjcmliZXIiKX0pO2Z1bmN0aW9uIG41ZSh0KXtyZXR1cm4gcnIodD8ubGlmdCl9ZnVuY3Rpb24gWHIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKG41ZShlKSlyZXR1cm4gZS5saWZ0KGZ1bmN0aW9uKHIpe3RyeXtyZXR1cm4gdChyLHRoaXMpfWNhdGNoKGEpe3RoaXMuZXJyb3IoYSl9fSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZhYmxlIHR5cGUiKX19dmFyIGdzPXUoKCk9PntvbigpO2kobjVlLCJoYXNMaWZ0Iik7aShYciwib3BlcmF0ZSIpfSk7ZnVuY3Rpb24gRXIodCxlLHIsYSxzKXtyZXR1cm4gbmV3IFR4dCh0LGUscixhLHMpfXZhciBUeHQsbG49dSgoKT0+e19hKCk7a2soKTtpKEVyLCJjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIiKTtUeHQ9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEscyxuLG8sbCl7dmFyIGM9dC5jYWxsKHRoaXMscil8fHRoaXM7cmV0dXJuIGMub25GaW5hbGl6ZT1vLGMuc2hvdWxkVW5zdWJzY3JpYmU9bCxjLl9uZXh0PWE/ZnVuY3Rpb24oZCl7dHJ5e2EoZCl9Y2F0Y2goZil7ci5lcnJvcihmKX19OnQucHJvdG90eXBlLl9uZXh0LGMuX2Vycm9yPW4/ZnVuY3Rpb24oZCl7dHJ5e24oZCl9Y2F0Y2goZil7ci5lcnJvcihmKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OnQucHJvdG90eXBlLl9lcnJvcixjLl9jb21wbGV0ZT1zP2Z1bmN0aW9uKCl7dHJ5e3MoKX1jYXRjaChkKXtyLmVycm9yKGQpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06dC5wcm90b3R5cGUuX2NvbXBsZXRlLGN9cmV0dXJuIGkoZSwiT3BlcmF0b3JTdWJzY3JpYmVyIiksZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgcjtpZighdGhpcy5zaG91bGRVbnN1YnNjcmliZXx8dGhpcy5zaG91bGRVbnN1YnNjcmliZSgpKXt2YXIgYT10aGlzLmNsb3NlZDt0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLCFhJiYoKHI9dGhpcy5vbkZpbmFsaXplKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbCh0aGlzKSl9fSxlfSkoTmYpfSk7ZnVuY3Rpb24gcWFlKCl7cmV0dXJuIFhyKGZ1bmN0aW9uKHQsZSl7dmFyIHI9bnVsbDt0Ll9yZWZDb3VudCsrO3ZhciBhPUVyKGUsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtpZighdHx8dC5fcmVmQ291bnQ8PTB8fDA8LS10Ll9yZWZDb3VudCl7cj1udWxsO3JldHVybn12YXIgcz10Ll9jb25uZWN0aW9uLG49cjtyPW51bGwscyYmKCFufHxzPT09bikmJnMudW5zdWJzY3JpYmUoKSxlLnVuc3Vic2NyaWJlKCl9KTt0LnN1YnNjcmliZShhKSxhLmNsb3NlZHx8KHI9dC5jb25uZWN0KCkpfSl9dmFyIFZhZT11KCgpPT57Z3MoKTtsbigpO2kocWFlLCJyZWZDb3VudCIpfSk7dmFyIEx4dCxEeHQ9dSgoKT0+e19hKCk7QW8oKTtVYygpO1ZhZSgpO2xuKCk7Z3MoKTtMeHQ9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gcy5zb3VyY2U9cixzLnN1YmplY3RGYWN0b3J5PWEscy5fc3ViamVjdD1udWxsLHMuX3JlZkNvdW50PTAscy5fY29ubmVjdGlvbj1udWxsLG41ZShyKSYmKHMubGlmdD1yLmxpZnQpLHN9cmV0dXJuIGkoZSwiQ29ubmVjdGFibGVPYnNlcnZhYmxlIiksZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5nZXRTdWJqZWN0KCkuc3Vic2NyaWJlKHIpfSxlLnByb3RvdHlwZS5nZXRTdWJqZWN0PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5fc3ViamVjdDtyZXR1cm4oIXJ8fHIuaXNTdG9wcGVkKSYmKHRoaXMuX3N1YmplY3Q9dGhpcy5zdWJqZWN0RmFjdG9yeSgpKSx0aGlzLl9zdWJqZWN0fSxlLnByb3RvdHlwZS5fdGVhcmRvd249ZnVuY3Rpb24oKXt0aGlzLl9yZWZDb3VudD0wO3ZhciByPXRoaXMuX2Nvbm5lY3Rpb247dGhpcy5fc3ViamVjdD10aGlzLl9jb25uZWN0aW9uPW51bGwscj8udW5zdWJzY3JpYmUoKX0sZS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3ZhciByPXRoaXMsYT10aGlzLl9jb25uZWN0aW9uO2lmKCFhKXthPXRoaXMuX2Nvbm5lY3Rpb249bmV3IFFpO3ZhciBzPXRoaXMuZ2V0U3ViamVjdCgpO2EuYWRkKHRoaXMuc291cmNlLnN1YnNjcmliZShFcihzLHZvaWQgMCxmdW5jdGlvbigpe3IuX3RlYXJkb3duKCkscy5jb21wbGV0ZSgpfSxmdW5jdGlvbihuKXtyLl90ZWFyZG93bigpLHMuZXJyb3Iobil9LGZ1bmN0aW9uKCl7cmV0dXJuIHIuX3RlYXJkb3duKCl9KSkpLGEuY2xvc2VkJiYodGhpcy5fY29ubmVjdGlvbj1udWxsLGE9UWkuRU1QVFkpfXJldHVybiBhfSxlLnByb3RvdHlwZS5yZWZDb3VudD1mdW5jdGlvbigpe3JldHVybiBxYWUoKSh0aGlzKX0sZX0pKG5yKX0pO3ZhciBvNWUsJHh0PXUoKCk9PntvNWU9e25vdzppKGZ1bmN0aW9uKCl7cmV0dXJuKG81ZS5kZWxlZ2F0ZXx8cGVyZm9ybWFuY2UpLm5vdygpfSwibm93IiksZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBJZCxsNWU9dSgoKT0+e19hKCk7VWMoKTtJZD17c2NoZWR1bGU6aShmdW5jdGlvbih0KXt2YXIgZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUscj1jYW5jZWxBbmltYXRpb25GcmFtZSxhPUlkLmRlbGVnYXRlO2EmJihlPWEucmVxdWVzdEFuaW1hdGlvbkZyYW1lLHI9YS5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIHM9ZShmdW5jdGlvbihuKXtyPXZvaWQgMCx0KG4pfSk7cmV0dXJuIG5ldyBRaShmdW5jdGlvbigpe3JldHVybiByPy4ocyl9KX0sInNjaGVkdWxlIikscmVxdWVzdEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9SWQuZGVsZWdhdGU7cmV0dXJuKHI/LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8cmVxdWVzdEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsUHMoW10sQWkodCkpKX0sInJlcXVlc3RBbmltYXRpb25GcmFtZSIpLGNhbmNlbEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9SWQuZGVsZWdhdGU7cmV0dXJuKHI/LmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxjYW5jZWxBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLFBzKFtdLEFpKHQpKSl9LCJjYW5jZWxBbmltYXRpb25GcmFtZSIpLGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBrbGEodCl7cmV0dXJuIHQ/QXh0KHQpOlNsYX1mdW5jdGlvbiBBeHQodCl7cmV0dXJuIG5ldyBucihmdW5jdGlvbihlKXt2YXIgcj10fHxvNWUsYT1yLm5vdygpLHM9MCxuPWkoZnVuY3Rpb24oKXtlLmNsb3NlZHx8KHM9SWQucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKG8pe3M9MDt2YXIgbD1yLm5vdygpO2UubmV4dCh7dGltZXN0YW1wOnQ/bDpvLGVsYXBzZWQ6bC1hfSksbigpfSkpfSwicnVuIik7cmV0dXJuIG4oKSxmdW5jdGlvbigpe3MmJklkLmNhbmNlbEFuaW1hdGlvbkZyYW1lKHMpfX0pfXZhciBTbGEsRXh0PXUoKCk9PntBbygpOyR4dCgpO2w1ZSgpO2koa2xhLCJhbmltYXRpb25GcmFtZXMiKTtpKEF4dCwiYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSIpO1NsYT1BeHQoKX0pO3ZhciBjNWUsZDVlPXUoKCk9PntGMygpO2M1ZT1wMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNzYWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn0sIk9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCIpfSl9KTt2YXIgS24sdTVlLEZnPXUoKCk9PntfYSgpO0FvKCk7VWMoKTtkNWUoKTtJZygpO0JhZSgpO0tuPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgcj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuY2xvc2VkPSExLHIuY3VycmVudE9ic2VydmVycz1udWxsLHIub2JzZXJ2ZXJzPVtdLHIuaXNTdG9wcGVkPSExLHIuaGFzRXJyb3I9ITEsci50aHJvd25FcnJvcj1udWxsLHJ9cmV0dXJuIGkoZSwiU3ViamVjdCIpLGUucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24ocil7dmFyIGE9bmV3IHU1ZSh0aGlzLHRoaXMpO3JldHVybiBhLm9wZXJhdG9yPXIsYX0sZS5wcm90b3R5cGUuX3Rocm93SWZDbG9zZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgYzVlfSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3ZhciBhPXRoaXM7T2coZnVuY3Rpb24oKXt2YXIgcyxuO2lmKGEuX3Rocm93SWZDbG9zZWQoKSwhYS5pc1N0b3BwZWQpe2EuY3VycmVudE9ic2VydmVyc3x8KGEuY3VycmVudE9ic2VydmVycz1BcnJheS5mcm9tKGEub2JzZXJ2ZXJzKSk7dHJ5e2Zvcih2YXIgbz1ZbihhLmN1cnJlbnRPYnNlcnZlcnMpLGw9by5uZXh0KCk7IWwuZG9uZTtsPW8ubmV4dCgpKXt2YXIgYz1sLnZhbHVlO2MubmV4dChyKX19Y2F0Y2goZCl7cz17ZXJyb3I6ZH19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fX19KX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcztPZyhmdW5jdGlvbigpe2lmKGEuX3Rocm93SWZDbG9zZWQoKSwhYS5pc1N0b3BwZWQpe2EuaGFzRXJyb3I9YS5pc1N0b3BwZWQ9ITAsYS50aHJvd25FcnJvcj1yO2Zvcih2YXIgcz1hLm9ic2VydmVycztzLmxlbmd0aDspcy5zaGlmdCgpLmVycm9yKHIpfX0pfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXM7T2coZnVuY3Rpb24oKXtpZihyLl90aHJvd0lmQ2xvc2VkKCksIXIuaXNTdG9wcGVkKXtyLmlzU3RvcHBlZD0hMDtmb3IodmFyIGE9ci5vYnNlcnZlcnM7YS5sZW5ndGg7KWEuc2hpZnQoKS5jb21wbGV0ZSgpfX0pfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuaXNTdG9wcGVkPXRoaXMuY2xvc2VkPSEwLHRoaXMub2JzZXJ2ZXJzPXRoaXMuY3VycmVudE9ic2VydmVycz1udWxsfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9ic2VydmVkIix7Z2V0OmkoZnVuY3Rpb24oKXt2YXIgcjtyZXR1cm4oKHI9dGhpcy5vYnNlcnZlcnMpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5sZW5ndGgpPjB9LCJnZXQiKSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0LnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlLmNhbGwodGhpcyxyKX0sZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMociksdGhpcy5faW5uZXJTdWJzY3JpYmUocil9LGUucHJvdG90eXBlLl9pbm5lclN1YnNjcmliZT1mdW5jdGlvbihyKXt2YXIgYT10aGlzLHM9dGhpcyxuPXMuaGFzRXJyb3Isbz1zLmlzU3RvcHBlZCxsPXMub2JzZXJ2ZXJzO3JldHVybiBufHxvP1htZToodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsbC5wdXNoKHIpLG5ldyBRaShmdW5jdGlvbigpe2EuY3VycmVudE9ic2VydmVycz1udWxsLHYyKGwscil9KSl9LGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHIpe3ZhciBhPXRoaXMscz1hLmhhc0Vycm9yLG49YS50aHJvd25FcnJvcixvPWEuaXNTdG9wcGVkO3M/ci5lcnJvcihuKTpvJiZyLmNvbXBsZXRlKCl9LGUucHJvdG90eXBlLmFzT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciByPW5ldyBucjtyZXR1cm4gci5zb3VyY2U9dGhpcyxyfSxlLmNyZWF0ZT1mdW5jdGlvbihyLGEpe3JldHVybiBuZXcgdTVlKHIsYSl9LGV9KShuciksdTVlPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUocixhKXt2YXIgcz10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHMuZGVzdGluYXRpb249cixzLnNvdXJjZT1hLHN9cmV0dXJuIGkoZSwiQW5vbnltb3VzU3ViamVjdCIpLGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGEsczsocz0oYT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEubmV4dCk9PT1udWxsfHxzPT09dm9pZCAwfHxzLmNhbGwoYSxyKX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGEsczsocz0oYT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuZXJyb3IpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5jYWxsKGEscil9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHIsYTsoYT0ocj10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuY29tcGxldGUpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKHIpfSxlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3ZhciBhLHM7cmV0dXJuKHM9KGE9dGhpcy5zb3VyY2UpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5zdWJzY3JpYmUocikpIT09bnVsbCYmcyE9PXZvaWQgMD9zOlhtZX0sZX0pKEtuKX0pO3ZhciBCZyxJeHQ9dSgoKT0+e19hKCk7RmcoKTtCZz0oZnVuY3Rpb24odCl7QXIoZSx0KTtmdW5jdGlvbiBlKHIpe3ZhciBhPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gYS5fdmFsdWU9cixhfXJldHVybiBpKGUsIkJlaGF2aW9yU3ViamVjdCIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6aShmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFZhbHVlKCl9LCJnZXQiKSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dmFyIGE9dC5wcm90b3R5cGUuX3N1YnNjcmliZS5jYWxsKHRoaXMscik7cmV0dXJuIWEuY2xvc2VkJiZyLm5leHQodGhpcy5fdmFsdWUpLGF9LGUucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxhPXIuaGFzRXJyb3Iscz1yLnRocm93bkVycm9yLG49ci5fdmFsdWU7aWYoYSl0aHJvdyBzO3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksbn0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0aGlzLl92YWx1ZT1yKX0sZX0pKEtuKX0pO3ZhciBNayxwNWU9dSgoKT0+e01rPXtub3c6aShmdW5jdGlvbigpe3JldHVybihNay5kZWxlZ2F0ZXx8RGF0ZSkubm93KCl9LCJub3ciKSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIEhnLGY1ZT11KCgpPT57X2EoKTtGZygpO3A1ZSgpO0hnPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUocixhLHMpe3I9PT12b2lkIDAmJihyPTEvMCksYT09PXZvaWQgMCYmKGE9MS8wKSxzPT09dm9pZCAwJiYocz1Nayk7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9idWZmZXJTaXplPXIsbi5fd2luZG93VGltZT1hLG4uX3RpbWVzdGFtcFByb3ZpZGVyPXMsbi5fYnVmZmVyPVtdLG4uX2luZmluaXRlVGltZVdpbmRvdz0hMCxuLl9pbmZpbml0ZVRpbWVXaW5kb3c9YT09PTEvMCxuLl9idWZmZXJTaXplPU1hdGgubWF4KDEsciksbi5fd2luZG93VGltZT1NYXRoLm1heCgxLGEpLG59cmV0dXJuIGkoZSwiUmVwbGF5U3ViamVjdCIpLGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcyxzPWEuaXNTdG9wcGVkLG49YS5fYnVmZmVyLG89YS5faW5maW5pdGVUaW1lV2luZG93LGw9YS5fdGltZXN0YW1wUHJvdmlkZXIsYz1hLl93aW5kb3dUaW1lO3N8fChuLnB1c2gociksIW8mJm4ucHVzaChsLm5vdygpK2MpKSx0aGlzLl90cmltQnVmZmVyKCksdC5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMscil9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX3RyaW1CdWZmZXIoKTtmb3IodmFyIGE9dGhpcy5faW5uZXJTdWJzY3JpYmUocikscz10aGlzLG49cy5faW5maW5pdGVUaW1lV2luZG93LG89cy5fYnVmZmVyLGw9by5zbGljZSgpLGM9MDtjPGwubGVuZ3RoJiYhci5jbG9zZWQ7Yys9bj8xOjIpci5uZXh0KGxbY10pO3JldHVybiB0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHIpLGF9LGUucHJvdG90eXBlLl90cmltQnVmZmVyPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxhPXIuX2J1ZmZlclNpemUscz1yLl90aW1lc3RhbXBQcm92aWRlcixuPXIuX2J1ZmZlcixvPXIuX2luZmluaXRlVGltZVdpbmRvdyxsPShvPzE6MikqYTtpZihhPDEvMCYmbDxuLmxlbmd0aCYmbi5zcGxpY2UoMCxuLmxlbmd0aC1sKSwhbyl7Zm9yKHZhciBjPXMubm93KCksZD0wLGY9MTtmPG4ubGVuZ3RoJiZuW2ZdPD1jO2YrPTIpZD1mO2QmJm4uc3BsaWNlKDAsZCsxKX19LGV9KShLbil9KTt2YXIgUHh0LE54dD11KCgpPT57X2EoKTtGZygpO1B4dD0oZnVuY3Rpb24odCl7QXIoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIHI9dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiByLl92YWx1ZT1udWxsLHIuX2hhc1ZhbHVlPSExLHIuX2lzQ29tcGxldGU9ITEscn1yZXR1cm4gaShlLCJBc3luY1N1YmplY3QiKSxlLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcz1mdW5jdGlvbihyKXt2YXIgYT10aGlzLHM9YS5oYXNFcnJvcixuPWEuX2hhc1ZhbHVlLG89YS5fdmFsdWUsbD1hLnRocm93bkVycm9yLGM9YS5pc1N0b3BwZWQsZD1hLl9pc0NvbXBsZXRlO3M/ci5lcnJvcihsKTooY3x8ZCkmJihuJiZyLm5leHQobyksci5jb21wbGV0ZSgpKX0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMuX3ZhbHVlPXIsdGhpcy5faGFzVmFsdWU9ITApfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXMsYT1yLl9oYXNWYWx1ZSxzPXIuX3ZhbHVlLG49ci5faXNDb21wbGV0ZTtufHwodGhpcy5faXNDb21wbGV0ZT0hMCxhJiZ0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyxzKSx0LnByb3RvdHlwZS5jb21wbGV0ZS5jYWxsKHRoaXMpKX0sZX0pKEtuKX0pO3ZhciBoNWUsT3h0PXUoKCk9PntfYSgpO1VjKCk7aDVlPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUocixhKXtyZXR1cm4gdC5jYWxsKHRoaXMpfHx0aGlzfXJldHVybiBpKGUsIkFjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLHRoaXN9LGV9KShRaSl9KTt2YXIgQ2ssUnh0PXUoKCk9PntfYSgpO0NrPXtzZXRJbnRlcnZhbDppKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLGE9MjthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKXJbYS0yXT1hcmd1bWVudHNbYV07dmFyIHM9Q2suZGVsZWdhdGU7cmV0dXJuIHM/LnNldEludGVydmFsP3Muc2V0SW50ZXJ2YWwuYXBwbHkocyxQcyhbdCxlXSxBaShyKSkpOnNldEludGVydmFsLmFwcGx5KHZvaWQgMCxQcyhbdCxlXSxBaShyKSkpfSwic2V0SW50ZXJ2YWwiKSxjbGVhckludGVydmFsOmkoZnVuY3Rpb24odCl7dmFyIGU9Q2suZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW50ZXJ2YWx8fGNsZWFySW50ZXJ2YWwpKHQpfSwiY2xlYXJJbnRlcnZhbCIpLGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgeTIscWc9dSgoKT0+e19hKCk7T3h0KCk7Unh0KCk7SWcoKTt5Mj0oZnVuY3Rpb24odCl7QXIoZSx0KTtmdW5jdGlvbiBlKHIsYSl7dmFyIHM9dC5jYWxsKHRoaXMscixhKXx8dGhpcztyZXR1cm4gcy5zY2hlZHVsZXI9cixzLndvcms9YSxzLnBlbmRpbmc9ITEsc31yZXR1cm4gaShlLCJBc3luY0FjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7dmFyIHM7aWYoYT09PXZvaWQgMCYmKGE9MCksdGhpcy5jbG9zZWQpcmV0dXJuIHRoaXM7dGhpcy5zdGF0ZT1yO3ZhciBuPXRoaXMuaWQsbz10aGlzLnNjaGVkdWxlcjtyZXR1cm4gbiE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChvLG4sYSkpLHRoaXMucGVuZGluZz0hMCx0aGlzLmRlbGF5PWEsdGhpcy5pZD0ocz10aGlzLmlkKSE9PW51bGwmJnMhPT12b2lkIDA/czp0aGlzLnJlcXVlc3RBc3luY0lkKG8sdGhpcy5pZCxhKSx0aGlzfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLENrLnNldEludGVydmFsKHIuZmx1c2guYmluZChyLHRoaXMpLHMpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7aWYocz09PXZvaWQgMCYmKHM9MCkscyE9bnVsbCYmdGhpcy5kZWxheT09PXMmJnRoaXMucGVuZGluZz09PSExKXJldHVybiBhO2EhPW51bGwmJkNrLmNsZWFySW50ZXJ2YWwoYSl9LGUucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24ocixhKXtpZih0aGlzLmNsb3NlZClyZXR1cm4gbmV3IEVycm9yKCJleGVjdXRpbmcgYSBjYW5jZWxsZWQgYWN0aW9uIik7dGhpcy5wZW5kaW5nPSExO3ZhciBzPXRoaXMuX2V4ZWN1dGUocixhKTtpZihzKXJldHVybiBzO3RoaXMucGVuZGluZz09PSExJiZ0aGlzLmlkIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLHRoaXMuaWQsbnVsbCkpfSxlLnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihyLGEpe3ZhciBzPSExLG47dHJ5e3RoaXMud29yayhyKX1jYXRjaChvKXtzPSEwLG49b3x8bmV3IEVycm9yKCJTY2hlZHVsZWQgYWN0aW9uIHRocmV3IGZhbHN5IGVycm9yIil9aWYocylyZXR1cm4gdGhpcy51bnN1YnNjcmliZSgpLG59LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY2xvc2VkKXt2YXIgcj10aGlzLGE9ci5pZCxzPXIuc2NoZWR1bGVyLG49cy5hY3Rpb25zO3RoaXMud29yaz10aGlzLnN0YXRlPXRoaXMuc2NoZWR1bGVyPW51bGwsdGhpcy5wZW5kaW5nPSExLHYyKG4sdGhpcyksYSE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChzLGEsbnVsbCkpLHRoaXMuZGVsYXk9bnVsbCx0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfX0sZX0pKGg1ZSl9KTtmdW5jdGlvbiBGeHQodCl7cmV0dXJuIHQgaW4gamFlPyhkZWxldGUgamFlW3RdLCEwKTohMX12YXIgTWxhLG01ZSxqYWUsZzVlLHRXYSxCeHQ9dSgoKT0+e01sYT0xLGphZT17fTtpKEZ4dCwiZmluZEFuZENsZWFySGFuZGxlIik7ZzVlPXtzZXRJbW1lZGlhdGU6aShmdW5jdGlvbih0KXt2YXIgZT1NbGErKztyZXR1cm4gamFlW2VdPSEwLG01ZXx8KG01ZT1Qcm9taXNlLnJlc29sdmUoKSksbTVlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gRnh0KGUpJiZ0KCl9KSxlfSwic2V0SW1tZWRpYXRlIiksY2xlYXJJbW1lZGlhdGU6aShmdW5jdGlvbih0KXtGeHQodCl9LCJjbGVhckltbWVkaWF0ZSIpfSx0V2E9e3BlbmRpbmc6aShmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhqYWUpLmxlbmd0aH0sInBlbmRpbmciKX19KTt2YXIgQ2xhLHpsYSx6ayxIeHQ9dSgoKT0+e19hKCk7Qnh0KCk7Q2xhPWc1ZS5zZXRJbW1lZGlhdGUsemxhPWc1ZS5jbGVhckltbWVkaWF0ZSx6az17c2V0SW1tZWRpYXRlOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9emsuZGVsZWdhdGU7cmV0dXJuKHI/LnNldEltbWVkaWF0ZXx8Q2xhKS5hcHBseSh2b2lkIDAsUHMoW10sQWkodCkpKX0sInNldEltbWVkaWF0ZSIpLGNsZWFySW1tZWRpYXRlOmkoZnVuY3Rpb24odCl7dmFyIGU9emsuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW1tZWRpYXRlfHx6bGEpKHQpfSwiY2xlYXJJbW1lZGlhdGUiKSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIGI1ZSxxeHQ9dSgoKT0+e19hKCk7cWcoKTtIeHQoKTtiNWU9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzLHIsYSl8fHRoaXM7cmV0dXJuIHMuc2NoZWR1bGVyPXIscy53b3JrPWEsc31yZXR1cm4gaShlLCJBc2FwQWN0aW9uIiksZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3JldHVybiBzPT09dm9pZCAwJiYocz0wKSxzIT09bnVsbCYmcz4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGEscyk6KHIuYWN0aW9ucy5wdXNoKHRoaXMpLHIuX3NjaGVkdWxlZHx8KHIuX3NjaGVkdWxlZD16ay5zZXRJbW1lZGlhdGUoci5mbHVzaC5iaW5kKHIsdm9pZCAwKSkpKX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3ZhciBuO2lmKHM9PT12b2lkIDAmJihzPTApLHMhPW51bGw/cz4wOnRoaXMuZGVsYXk+MClyZXR1cm4gdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQuY2FsbCh0aGlzLHIsYSxzKTt2YXIgbz1yLmFjdGlvbnM7YSE9bnVsbCYmKChuPW9bby5sZW5ndGgtMV0pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5pZCkhPT1hJiYoemsuY2xlYXJJbW1lZGlhdGUoYSksci5fc2NoZWR1bGVkPT09YSYmKHIuX3NjaGVkdWxlZD12b2lkIDApKX0sZX0pKHkyKX0pO3ZhciBfayx4NWU9dSgoKT0+e3A1ZSgpO19rPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxyKXtyPT09dm9pZCAwJiYocj10Lm5vdyksdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yPWUsdGhpcy5ub3c9cn1yZXR1cm4gaSh0LCJTY2hlZHVsZXIiKSx0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihlLHIsYSl7cmV0dXJuIHI9PT12b2lkIDAmJihyPTApLG5ldyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IodGhpcyxlKS5zY2hlZHVsZShhLHIpfSx0Lm5vdz1Nay5ub3csdH0pKCl9KTt2YXIgdzIsVmc9dSgoKT0+e19hKCk7eDVlKCk7dzI9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEpe2E9PT12b2lkIDAmJihhPV9rLm5vdyk7dmFyIHM9dC5jYWxsKHRoaXMscixhKXx8dGhpcztyZXR1cm4gcy5hY3Rpb25zPVtdLHMuX2FjdGl2ZT0hMSxzfXJldHVybiBpKGUsIkFzeW5jU2NoZWR1bGVyIiksZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcy5hY3Rpb25zO2lmKHRoaXMuX2FjdGl2ZSl7YS5wdXNoKHIpO3JldHVybn12YXIgczt0aGlzLl9hY3RpdmU9ITA7ZG8gaWYocz1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZShyPWEuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLHMpe2Zvcig7cj1hLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBzfX0sZX0pKF9rKX0pO3ZhciB2NWUsVnh0PXUoKCk9PntfYSgpO1ZnKCk7djVlPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBpKGUsIkFzYXBTY2hlZHVsZXIiKSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihyKXt0aGlzLl9hY3RpdmU9ITA7dmFyIGE9dGhpcy5fc2NoZWR1bGVkO3RoaXMuX3NjaGVkdWxlZD12b2lkIDA7dmFyIHM9dGhpcy5hY3Rpb25zLG47cj1yfHxzLnNoaWZ0KCk7ZG8gaWYobj1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZSgocj1zWzBdKSYmci5pZD09PWEmJnMuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLG4pe2Zvcig7KHI9c1swXSkmJnIuaWQ9PT1hJiZzLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBufX0sZX0pKHcyKX0pO3ZhciBqeHQsX2xhLFV4dD11KCgpPT57cXh0KCk7Vnh0KCk7anh0PW5ldyB2NWUoYjVlKSxfbGE9anh0fSk7dmFyIGYxLHk1ZSxQZD11KCgpPT57cWcoKTtWZygpO2YxPW5ldyB3Mih5MikseTVlPWYxfSk7dmFyIHc1ZSxXeHQ9dSgoKT0+e19hKCk7cWcoKTt3NWU9KGZ1bmN0aW9uKHQpe0FyKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzLHIsYSl8fHRoaXM7cmV0dXJuIHMuc2NoZWR1bGVyPXIscy53b3JrPWEsc31yZXR1cm4gaShlLCJRdWV1ZUFjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLGE+MD90LnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMscixhKToodGhpcy5kZWxheT1hLHRoaXMuc3RhdGU9cix0aGlzLnNjaGVkdWxlci5mbHVzaCh0aGlzKSx0aGlzKX0sZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihyLGEpe3JldHVybiBhPjB8fHRoaXMuY2xvc2VkP3QucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLHIsYSk6dGhpcy5fZXhlY3V0ZShyLGEpfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLHMhPW51bGwmJnM+MHx8cz09bnVsbCYmdGhpcy5kZWxheT4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGEscyk6KHIuZmx1c2godGhpcyksMCl9LGV9KSh5Mil9KTt2YXIgazVlLEd4dD11KCgpPT57X2EoKTtWZygpO2s1ZT0oZnVuY3Rpb24odCl7QXIoZSx0KTtmdW5jdGlvbiBlKCl7cmV0dXJuIHQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gaShlLCJRdWV1ZVNjaGVkdWxlciIpLGV9KSh3Mil9KTt2YXIgWXh0LFRsYSxLeHQ9dSgoKT0+e1d4dCgpO0d4dCgpO1l4dD1uZXcgazVlKHc1ZSksVGxhPVl4dH0pO3ZhciBTNWUsWnh0PXUoKCk9PntfYSgpO3FnKCk7bDVlKCk7UzVlPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUocixhKXt2YXIgcz10LmNhbGwodGhpcyxyLGEpfHx0aGlzO3JldHVybiBzLnNjaGVkdWxlcj1yLHMud29yaz1hLHN9cmV0dXJuIGkoZSwiQW5pbWF0aW9uRnJhbWVBY3Rpb24iKSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLHMhPT1udWxsJiZzPjA/dC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHIsYSxzKTooci5hY3Rpb25zLnB1c2godGhpcyksci5fc2NoZWR1bGVkfHwoci5fc2NoZWR1bGVkPUlkLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JldHVybiByLmZsdXNoKHZvaWQgMCl9KSkpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7dmFyIG47aWYocz09PXZvaWQgMCYmKHM9MCkscyE9bnVsbD9zPjA6dGhpcy5kZWxheT4wKXJldHVybiB0LnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMscixhLHMpO3ZhciBvPXIuYWN0aW9uczthIT1udWxsJiZhPT09ci5fc2NoZWR1bGVkJiYoKG49b1tvLmxlbmd0aC0xXSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmlkKSE9PWEmJihJZC5jYW5jZWxBbmltYXRpb25GcmFtZShhKSxyLl9zY2hlZHVsZWQ9dm9pZCAwKX0sZX0pKHkyKX0pO3ZhciBNNWUsUXh0PXUoKCk9PntfYSgpO1ZnKCk7TTVlPShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBpKGUsIkFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIiksZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dGhpcy5fYWN0aXZlPSEwO3ZhciBhO3I/YT1yLmlkOihhPXRoaXMuX3NjaGVkdWxlZCx0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwKTt2YXIgcz10aGlzLmFjdGlvbnMsbjtyPXJ8fHMuc2hpZnQoKTtkbyBpZihuPXIuZXhlY3V0ZShyLnN0YXRlLHIuZGVsYXkpKWJyZWFrO3doaWxlKChyPXNbMF0pJiZyLmlkPT09YSYmcy5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDsocj1zWzBdKSYmci5pZD09PWEmJnMuc2hpZnQoKTspci51bnN1YnNjcmliZSgpO3Rocm93IG59fSxlfSkodzIpfSk7dmFyIFh4dCxMbGEsSnh0PXUoKCk9PntaeHQoKTtReHQoKTtYeHQ9bmV3IE01ZShTNWUpLExsYT1YeHR9KTt2YXIgZXZ0LEM1ZSx0dnQ9dSgoKT0+e19hKCk7cWcoKTtVYygpO1ZnKCk7ZXZ0PShmdW5jdGlvbih0KXtBcihlLHQpO2Z1bmN0aW9uIGUocixhKXtyPT09dm9pZCAwJiYocj1DNWUpLGE9PT12b2lkIDAmJihhPTEvMCk7dmFyIHM9dC5jYWxsKHRoaXMscixmdW5jdGlvbigpe3JldHVybiBzLmZyYW1lfSl8fHRoaXM7cmV0dXJuIHMubWF4RnJhbWVzPWEscy5mcmFtZT0wLHMuaW5kZXg9LTEsc31yZXR1cm4gaShlLCJWaXJ0dWFsVGltZVNjaGVkdWxlciIpLGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciByPXRoaXMsYT1yLmFjdGlvbnMscz1yLm1heEZyYW1lcyxuLG87KG89YVswXSkmJm8uZGVsYXk8PXMmJihhLnNoaWZ0KCksdGhpcy5mcmFtZT1vLmRlbGF5LCEobj1vLmV4ZWN1dGUoby5zdGF0ZSxvLmRlbGF5KSkpOyk7aWYobil7Zm9yKDtvPWEuc2hpZnQoKTspby51bnN1YnNjcmliZSgpO3Rocm93IG59fSxlLmZyYW1lVGltZUZhY3Rvcj0xMCxlfSkodzIpLEM1ZT0oZnVuY3Rpb24odCl7QXIoZSx0KTtmdW5jdGlvbiBlKHIsYSxzKXtzPT09dm9pZCAwJiYocz1yLmluZGV4Kz0xKTt2YXIgbj10LmNhbGwodGhpcyxyLGEpfHx0aGlzO3JldHVybiBuLnNjaGVkdWxlcj1yLG4ud29yaz1hLG4uaW5kZXg9cyxuLmFjdGl2ZT0hMCxuLmluZGV4PXIuaW5kZXg9cyxufXJldHVybiBpKGUsIlZpcnR1YWxBY3Rpb24iKSxlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihyLGEpe2lmKGE9PT12b2lkIDAmJihhPTApLE51bWJlci5pc0Zpbml0ZShhKSl7aWYoIXRoaXMuaWQpcmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlLmNhbGwodGhpcyxyLGEpO3RoaXMuYWN0aXZlPSExO3ZhciBzPW5ldyBlKHRoaXMuc2NoZWR1bGVyLHRoaXMud29yayk7cmV0dXJuIHRoaXMuYWRkKHMpLHMuc2NoZWR1bGUocixhKX1lbHNlIHJldHVybiBRaS5FTVBUWX0sZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3M9PT12b2lkIDAmJihzPTApLHRoaXMuZGVsYXk9ci5mcmFtZStzO3ZhciBuPXIuYWN0aW9ucztyZXR1cm4gbi5wdXNoKHRoaXMpLG4uc29ydChlLnNvcnRBY3Rpb25zKSwxfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cz09PXZvaWQgMCYmKHM9MCl9LGUucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHIsYSl7aWYodGhpcy5hY3RpdmU9PT0hMClyZXR1cm4gdC5wcm90b3R5cGUuX2V4ZWN1dGUuY2FsbCh0aGlzLHIsYSl9LGUuc29ydEFjdGlvbnM9ZnVuY3Rpb24ocixhKXtyZXR1cm4gci5kZWxheT09PWEuZGVsYXk/ci5pbmRleD09PWEuaW5kZXg/MDpyLmluZGV4PmEuaW5kZXg/MTotMTpyLmRlbGF5PmEuZGVsYXk/MTotMX0sZX0pKHkyKX0pO2Z1bmN0aW9uIERsYSh0KXtyZXR1cm4gdD8kbGEodCk6VWFlfWZ1bmN0aW9uICRsYSh0KXtyZXR1cm4gbmV3IG5yKGZ1bmN0aW9uKGUpe3JldHVybiB0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIGUuY29tcGxldGUoKX0pfSl9dmFyIFVhZSxXYWU9dSgoKT0+e0FvKCk7VWFlPW5ldyBucihmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wbGV0ZSgpfSk7aShEbGEsImVtcHR5Iik7aSgkbGEsImVtcHR5U2NoZWR1bGVkIil9KTtmdW5jdGlvbiBHYWUodCl7cmV0dXJuIHQmJnJyKHQuc2NoZWR1bGUpfXZhciB6NWU9dSgoKT0+e29uKCk7aShHYWUsImlzU2NoZWR1bGVyIil9KTtmdW5jdGlvbiBfNWUodCl7cmV0dXJuIHRbdC5sZW5ndGgtMV19ZnVuY3Rpb24gcnZ0KHQpe3JldHVybiBycihfNWUodCkpP3QucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIEdjKHQpe3JldHVybiBHYWUoXzVlKHQpKT90LnBvcCgpOnZvaWQgMH1mdW5jdGlvbiBmR2EodCxlKXtyZXR1cm4gdHlwZW9mIF81ZSh0KT09Im51bWJlciI/dC5wb3AoKTplfXZhciBqZz11KCgpPT57b24oKTt6NWUoKTtpKF81ZSwibGFzdCIpO2kocnZ0LCJwb3BSZXN1bHRTZWxlY3RvciIpO2koR2MsInBvcFNjaGVkdWxlciIpO2koZkdhLCJwb3BOdW1iZXIiKX0pO3ZhciBVZyxZYWU9dSgoKT0+e1VnPWkoKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIn0pLCJpc0FycmF5TGlrZSIpfSk7ZnVuY3Rpb24gS2FlKHQpe3JldHVybiBycih0Py50aGVuKX12YXIgVDVlPXUoKCk9PntvbigpO2koS2FlLCJpc1Byb21pc2UiKX0pO2Z1bmN0aW9uIFphZSh0KXtyZXR1cm4gcnIodFtPZl0pfXZhciBMNWU9dSgoKT0+e1NrKCk7b24oKTtpKFphZSwiaXNJbnRlcm9wT2JzZXJ2YWJsZSIpfSk7ZnVuY3Rpb24gUWFlKHQpe3JldHVybiBTeW1ib2wuYXN5bmNJdGVyYXRvciYmcnIodD8uW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl9dmFyIEQ1ZT11KCgpPT57b24oKTtpKFFhZSwiaXNBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBYYWUodCl7cmV0dXJuIG5ldyBUeXBlRXJyb3IoIllvdSBwcm92aWRlZCAiKyh0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiPyJhbiBpbnZhbGlkIG9iamVjdCI6IiciK3QrIiciKSsiIHdoZXJlIGEgc3RyZWFtIHdhcyBleHBlY3RlZC4gWW91IGNhbiBwcm92aWRlIGFuIE9ic2VydmFibGUsIFByb21pc2UsIFJlYWRhYmxlU3RyZWFtLCBBcnJheSwgQXN5bmNJdGVyYWJsZSwgb3IgSXRlcmFibGUuIil9dmFyICQ1ZT11KCgpPT57aShYYWUsImNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yIil9KTtmdW5jdGlvbiBBbGEoKXtyZXR1cm4gdHlwZW9mIFN5bWJvbCE9ImZ1bmN0aW9uInx8IVN5bWJvbC5pdGVyYXRvcj8iQEBpdGVyYXRvciI6U3ltYm9sLml0ZXJhdG9yfXZhciBKYWUsQTVlPXUoKCk9PntpKEFsYSwiZ2V0U3ltYm9sSXRlcmF0b3IiKTtKYWU9QWxhKCl9KTtmdW5jdGlvbiBlaWUodCl7cmV0dXJuIHJyKHQ/LltKYWVdKX12YXIgRTVlPXUoKCk9PntBNWUoKTtvbigpO2koZWllLCJpc0l0ZXJhYmxlIil9KTtmdW5jdGlvbiB0aWUodCl7cmV0dXJuIEttZSh0aGlzLGFyZ3VtZW50cyxpKGZ1bmN0aW9uKCl7dmFyIHIsYSxzLG47cmV0dXJuIHlrKHRoaXMsZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpyPXQuZ2V0UmVhZGVyKCksby5sYWJlbD0xO2Nhc2UgMTpvLnRyeXMucHVzaChbMSwsOSwxMF0pLG8ubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzQsRWQoci5yZWFkKCkpXTtjYXNlIDM6cmV0dXJuIGE9by5zZW50KCkscz1hLnZhbHVlLG49YS5kb25lLG4/WzQsRWQodm9pZCAwKV06WzMsNV07Y2FzZSA0OnJldHVyblsyLG8uc2VudCgpXTtjYXNlIDU6cmV0dXJuWzQsRWQocyldO2Nhc2UgNjpyZXR1cm5bNCxvLnNlbnQoKV07Y2FzZSA3OnJldHVybiBvLnNlbnQoKSxbMywyXTtjYXNlIDg6cmV0dXJuWzMsMTBdO2Nhc2UgOTpyZXR1cm4gci5yZWxlYXNlTG9jaygpLFs3XTtjYXNlIDEwOnJldHVyblsyXX19KX0sInJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3JfMSIpKX1mdW5jdGlvbiByaWUodCl7cmV0dXJuIHJyKHQ/LmdldFJlYWRlcil9dmFyIGFpZT11KCgpPT57X2EoKTtvbigpO2kodGllLCJyZWFkYWJsZVN0cmVhbUxpa2VUb0FzeW5jR2VuZXJhdG9yIik7aShyaWUsImlzUmVhZGFibGVTdHJlYW1MaWtlIil9KTtmdW5jdGlvbiBpaSh0KXtpZih0IGluc3RhbmNlb2YgbnIpcmV0dXJuIHQ7aWYodCE9bnVsbCl7aWYoWmFlKHQpKXJldHVybiBFbGEodCk7aWYoVWcodCkpcmV0dXJuIElsYSh0KTtpZihLYWUodCkpcmV0dXJuIFBsYSh0KTtpZihRYWUodCkpcmV0dXJuIGF2dCh0KTtpZihlaWUodCkpcmV0dXJuIE5sYSh0KTtpZihyaWUodCkpcmV0dXJuIE9sYSh0KX10aHJvdyBYYWUodCl9ZnVuY3Rpb24gRWxhKHQpe3JldHVybiBuZXcgbnIoZnVuY3Rpb24oZSl7dmFyIHI9dFtPZl0oKTtpZihycihyLnN1YnNjcmliZSkpcmV0dXJuIHIuc3Vic2NyaWJlKGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIil9KX1mdW5jdGlvbiBJbGEodCl7cmV0dXJuIG5ldyBucihmdW5jdGlvbihlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoJiYhZS5jbG9zZWQ7cisrKWUubmV4dCh0W3JdKTtlLmNvbXBsZXRlKCl9KX1mdW5jdGlvbiBQbGEodCl7cmV0dXJuIG5ldyBucihmdW5jdGlvbihlKXt0LnRoZW4oZnVuY3Rpb24ocil7ZS5jbG9zZWR8fChlLm5leHQociksZS5jb21wbGV0ZSgpKX0sZnVuY3Rpb24ocil7cmV0dXJuIGUuZXJyb3Iocil9KS50aGVuKG51bGwsRmFlKX0pfWZ1bmN0aW9uIE5sYSh0KXtyZXR1cm4gbmV3IG5yKGZ1bmN0aW9uKGUpe3ZhciByLGE7dHJ5e2Zvcih2YXIgcz1Zbih0KSxuPXMubmV4dCgpOyFuLmRvbmU7bj1zLm5leHQoKSl7dmFyIG89bi52YWx1ZTtpZihlLm5leHQobyksZS5jbG9zZWQpcmV0dXJufX1jYXRjaChsKXtyPXtlcnJvcjpsfX1maW5hbGx5e3RyeXtuJiYhbi5kb25lJiYoYT1zLnJldHVybikmJmEuY2FsbChzKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19ZS5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gYXZ0KHQpe3JldHVybiBuZXcgbnIoZnVuY3Rpb24oZSl7UmxhKHQsZSkuY2F0Y2goZnVuY3Rpb24ocil7cmV0dXJuIGUuZXJyb3Iocil9KX0pfWZ1bmN0aW9uIE9sYSh0KXtyZXR1cm4gYXZ0KHRpZSh0KSl9ZnVuY3Rpb24gUmxhKHQsZSl7dmFyIHIsYSxzLG47cmV0dXJuIFltZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbyxsO3JldHVybiB5ayh0aGlzLGZ1bmN0aW9uKGMpe3N3aXRjaChjLmxhYmVsKXtjYXNlIDA6Yy50cnlzLnB1c2goWzAsNSw2LDExXSkscj1abWUodCksYy5sYWJlbD0xO2Nhc2UgMTpyZXR1cm5bNCxyLm5leHQoKV07Y2FzZSAyOmlmKGE9Yy5zZW50KCksISFhLmRvbmUpcmV0dXJuWzMsNF07aWYobz1hLnZhbHVlLGUubmV4dChvKSxlLmNsb3NlZClyZXR1cm5bMl07Yy5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMywxXTtjYXNlIDQ6cmV0dXJuWzMsMTFdO2Nhc2UgNTpyZXR1cm4gbD1jLnNlbnQoKSxzPXtlcnJvcjpsfSxbMywxMV07Y2FzZSA2OnJldHVybiBjLnRyeXMucHVzaChbNiwsOSwxMF0pLGEmJiFhLmRvbmUmJihuPXIucmV0dXJuKT9bNCxuLmNhbGwocildOlszLDhdO2Nhc2UgNzpjLnNlbnQoKSxjLmxhYmVsPTg7Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6aWYocyl0aHJvdyBzLmVycm9yO3JldHVybls3XTtjYXNlIDEwOnJldHVybls3XTtjYXNlIDExOnJldHVybiBlLmNvbXBsZXRlKCksWzJdfX0pfSl9dmFyIFIxPXUoKCk9PntfYSgpO1lhZSgpO1Q1ZSgpO0FvKCk7TDVlKCk7RDVlKCk7JDVlKCk7RTVlKCk7YWllKCk7b24oKTtlNWUoKTtTaygpO2koaWksImlubmVyRnJvbSIpO2koRWxhLCJmcm9tSW50ZXJvcE9ic2VydmFibGUiKTtpKElsYSwiZnJvbUFycmF5TGlrZSIpO2koUGxhLCJmcm9tUHJvbWlzZSIpO2koTmxhLCJmcm9tSXRlcmFibGUiKTtpKGF2dCwiZnJvbUFzeW5jSXRlcmFibGUiKTtpKE9sYSwiZnJvbVJlYWRhYmxlU3RyZWFtTGlrZSIpO2koUmxhLCJwcm9jZXNzIil9KTtmdW5jdGlvbiBOcyh0LGUscixhLHMpe2E9PT12b2lkIDAmJihhPTApLHM9PT12b2lkIDAmJihzPSExKTt2YXIgbj1lLnNjaGVkdWxlKGZ1bmN0aW9uKCl7cigpLHM/dC5hZGQodGhpcy5zY2hlZHVsZShudWxsLGEpKTp0aGlzLnVuc3Vic2NyaWJlKCl9LGEpO2lmKHQuYWRkKG4pLCFzKXJldHVybiBufXZhciBIMz11KCgpPT57aShOcywiZXhlY3V0ZVNjaGVkdWxlIil9KTtmdW5jdGlvbiBXZyh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0wKSxYcihmdW5jdGlvbihyLGEpe3Iuc3Vic2NyaWJlKEVyKGEsZnVuY3Rpb24ocyl7cmV0dXJuIE5zKGEsdCxmdW5jdGlvbigpe3JldHVybiBhLm5leHQocyl9LGUpfSxmdW5jdGlvbigpe3JldHVybiBOcyhhLHQsZnVuY3Rpb24oKXtyZXR1cm4gYS5jb21wbGV0ZSgpfSxlKX0sZnVuY3Rpb24ocyl7cmV0dXJuIE5zKGEsdCxmdW5jdGlvbigpe3JldHVybiBhLmVycm9yKHMpfSxlKX0pKX0pfXZhciBUaz11KCgpPT57SDMoKTtncygpO2xuKCk7aShXZywib2JzZXJ2ZU9uIil9KTtmdW5jdGlvbiBHZyh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0wKSxYcihmdW5jdGlvbihyLGEpe2EuYWRkKHQuc2NoZWR1bGUoZnVuY3Rpb24oKXtyZXR1cm4gci5zdWJzY3JpYmUoYSl9LGUpKX0pfXZhciBMaz11KCgpPT57Z3MoKTtpKEdnLCJzdWJzY3JpYmVPbiIpfSk7ZnVuY3Rpb24gaXZ0KHQsZSl7cmV0dXJuIGlpKHQpLnBpcGUoR2coZSksV2coZSkpfXZhciBzdnQ9dSgoKT0+e1IxKCk7VGsoKTtMaygpO2koaXZ0LCJzY2hlZHVsZU9ic2VydmFibGUiKX0pO2Z1bmN0aW9uIG52dCh0LGUpe3JldHVybiBpaSh0KS5waXBlKEdnKGUpLFdnKGUpKX12YXIgb3Z0PXUoKCk9PntSMSgpO1RrKCk7TGsoKTtpKG52dCwic2NoZWR1bGVQcm9taXNlIil9KTtmdW5jdGlvbiBsdnQodCxlKXtyZXR1cm4gbmV3IG5yKGZ1bmN0aW9uKHIpe3ZhciBhPTA7cmV0dXJuIGUuc2NoZWR1bGUoZnVuY3Rpb24oKXthPT09dC5sZW5ndGg/ci5jb21wbGV0ZSgpOihyLm5leHQodFthKytdKSxyLmNsb3NlZHx8dGhpcy5zY2hlZHVsZSgpKX0pfSl9dmFyIGN2dD11KCgpPT57QW8oKTtpKGx2dCwic2NoZWR1bGVBcnJheSIpfSk7ZnVuY3Rpb24gZHZ0KHQsZSl7cmV0dXJuIG5ldyBucihmdW5jdGlvbihyKXt2YXIgYTtyZXR1cm4gTnMocixlLGZ1bmN0aW9uKCl7YT10W0phZV0oKSxOcyhyLGUsZnVuY3Rpb24oKXt2YXIgcyxuLG87dHJ5e3M9YS5uZXh0KCksbj1zLnZhbHVlLG89cy5kb25lfWNhdGNoKGwpe3IuZXJyb3IobCk7cmV0dXJufW8/ci5jb21wbGV0ZSgpOnIubmV4dChuKX0sMCwhMCl9KSxmdW5jdGlvbigpe3JldHVybiBycihhPy5yZXR1cm4pJiZhLnJldHVybigpfX0pfXZhciB1dnQ9dSgoKT0+e0FvKCk7QTVlKCk7b24oKTtIMygpO2koZHZ0LCJzY2hlZHVsZUl0ZXJhYmxlIil9KTtmdW5jdGlvbiBpaWUodCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhYmxlIGNhbm5vdCBiZSBudWxsIik7cmV0dXJuIG5ldyBucihmdW5jdGlvbihyKXtOcyhyLGUsZnVuY3Rpb24oKXt2YXIgYT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO05zKHIsZSxmdW5jdGlvbigpe2EubmV4dCgpLnRoZW4oZnVuY3Rpb24ocyl7cy5kb25lP3IuY29tcGxldGUoKTpyLm5leHQocy52YWx1ZSl9KX0sMCwhMCl9KX0pfXZhciBJNWU9dSgoKT0+e0FvKCk7SDMoKTtpKGlpZSwic2NoZWR1bGVBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBwdnQodCxlKXtyZXR1cm4gaWllKHRpZSh0KSxlKX12YXIgZnZ0PXUoKCk9PntJNWUoKTthaWUoKTtpKHB2dCwic2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UiKX0pO2Z1bmN0aW9uIFA1ZSh0LGUpe2lmKHQhPW51bGwpe2lmKFphZSh0KSlyZXR1cm4gaXZ0KHQsZSk7aWYoVWcodCkpcmV0dXJuIGx2dCh0LGUpO2lmKEthZSh0KSlyZXR1cm4gbnZ0KHQsZSk7aWYoUWFlKHQpKXJldHVybiBpaWUodCxlKTtpZihlaWUodCkpcmV0dXJuIGR2dCh0LGUpO2lmKHJpZSh0KSlyZXR1cm4gcHZ0KHQsZSl9dGhyb3cgWGFlKHQpfXZhciBONWU9dSgoKT0+e3N2dCgpO292dCgpO2N2dCgpO3V2dCgpO0k1ZSgpO0w1ZSgpO1Q1ZSgpO1lhZSgpO0U1ZSgpO0Q1ZSgpOyQ1ZSgpO2FpZSgpO2Z2dCgpO2koUDVlLCJzY2hlZHVsZWQiKX0pO2Z1bmN0aW9uIFljKHQsZSl7cmV0dXJuIGU/UDVlKHQsZSk6aWkodCl9dmFyIERrPXUoKCk9PntONWUoKTtSMSgpO2koWWMsImZyb20iKX0pO2Z1bmN0aW9uIFJmKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciByPUdjKHQpO3JldHVybiBZYyh0LHIpfXZhciBPNWU9dSgoKT0+e2pnKCk7RGsoKTtpKFJmLCJvZiIpfSk7ZnVuY3Rpb24gUjVlKHQsZSl7dmFyIHI9cnIodCk/dDpmdW5jdGlvbigpe3JldHVybiB0fSxhPWkoZnVuY3Rpb24ocyl7cmV0dXJuIHMuZXJyb3IocigpKX0sImluaXQiKTtyZXR1cm4gbmV3IG5yKGU/ZnVuY3Rpb24ocyl7cmV0dXJuIGUuc2NoZWR1bGUoYSwwLHMpfTphKX12YXIgRjVlPXUoKCk9PntBbygpO29uKCk7aShSNWUsInRocm93RXJyb3IiKX0pO2Z1bmN0aW9uIEZsYSh0LGUpe3ZhciByLGEscyxuPXQsbz1uLmtpbmQsbD1uLnZhbHVlLGM9bi5lcnJvcjtpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBub3RpZmljYXRpb24sIG1pc3NpbmcgImtpbmQiJyk7bz09PSJOIj8ocj1lLm5leHQpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKGUsbCk6bz09PSJFIj8oYT1lLmVycm9yKT09PW51bGx8fGE9PT12b2lkIDB8fGEuY2FsbChlLGMpOihzPWUuY29tcGxldGUpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5jYWxsKGUpfXZhciBCNWUsaHZ0LG12dD11KCgpPT57V2FlKCk7TzVlKCk7RjVlKCk7b24oKTsoZnVuY3Rpb24odCl7dC5ORVhUPSJOIix0LkVSUk9SPSJFIix0LkNPTVBMRVRFPSJDIn0pKEI1ZXx8KEI1ZT17fSkpO2h2dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUscixhKXt0aGlzLmtpbmQ9ZSx0aGlzLnZhbHVlPXIsdGhpcy5lcnJvcj1hLHRoaXMuaGFzVmFsdWU9ZT09PSJOIn1yZXR1cm4gaSh0LCJOb3RpZmljYXRpb24iKSx0LnByb3RvdHlwZS5vYnNlcnZlPWZ1bmN0aW9uKGUpe3JldHVybiBGbGEodGhpcyxlKX0sdC5wcm90b3R5cGUuZG89ZnVuY3Rpb24oZSxyLGEpe3ZhciBzPXRoaXMsbj1zLmtpbmQsbz1zLnZhbHVlLGw9cy5lcnJvcjtyZXR1cm4gbj09PSJOIj9lPy4obyk6bj09PSJFIj9yPy4obCk6YT8uKCl9LHQucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbihlLHIsYSl7dmFyIHM7cmV0dXJuIHJyKChzPWUpPT09bnVsbHx8cz09PXZvaWQgMD92b2lkIDA6cy5uZXh0KT90aGlzLm9ic2VydmUoZSk6dGhpcy5kbyhlLHIsYSl9LHQucHJvdG90eXBlLnRvT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMscj1lLmtpbmQsYT1lLnZhbHVlLHM9ZS5lcnJvcixuPXI9PT0iTiI/UmYoYSk6cj09PSJFIj9SNWUoZnVuY3Rpb24oKXtyZXR1cm4gc30pOnI9PT0iQyI/VWFlOjA7aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCAiK3IpO3JldHVybiBufSx0LmNyZWF0ZU5leHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KCJOIixlKX0sdC5jcmVhdGVFcnJvcj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHQoIkUiLHZvaWQgMCxlKX0sdC5jcmVhdGVDb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiB0LmNvbXBsZXRlTm90aWZpY2F0aW9ufSx0LmNvbXBsZXRlTm90aWZpY2F0aW9uPW5ldyB0KCJDIiksdH0pKCk7aShGbGEsIm9ic2VydmVOb3RpZmljYXRpb24iKX0pO3ZhciBndnQ9dSgoKT0+e30pO3ZhciBCbGEsYnZ0PXUoKCk9PntGMygpO0JsYT1wMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzLm1lc3NhZ2U9Im5vIGVsZW1lbnRzIGluIHNlcXVlbmNlIn0sIkVtcHR5RXJyb3JJbXBsIil9KX0pO3ZhciB4dnQ9dSgoKT0+e30pO3ZhciB2dnQ9dSgoKT0+e30pO3ZhciBIbGEseXZ0PXUoKCk9PntGMygpO0hsYT1wMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJBcmd1bWVudE91dE9mUmFuZ2VFcnJvciIsdGhpcy5tZXNzYWdlPSJhcmd1bWVudCBvdXQgb2YgcmFuZ2UifSwiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JJbXBsIil9KX0pO3ZhciBxbGEsd3Z0PXUoKCk9PntGMygpO3FsYT1wMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbihyKXt0KHRoaXMpLHRoaXMubmFtZT0iTm90Rm91bmRFcnJvciIsdGhpcy5tZXNzYWdlPXJ9LCJOb3RGb3VuZEVycm9ySW1wbCIpfSl9KTt2YXIgVmxhLGt2dD11KCgpPT57RjMoKTtWbGE9cDEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7dCh0aGlzKSx0aGlzLm5hbWU9IlNlcXVlbmNlRXJyb3IiLHRoaXMubWVzc2FnZT1yfSwiU2VxdWVuY2VFcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24gc2llKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKHQpfXZhciBINWU9dSgoKT0+e2koc2llLCJpc1ZhbGlkRGF0ZSIpfSk7ZnVuY3Rpb24gTXZ0KHQsZSl7dmFyIHI9c2llKHQpP3tmaXJzdDp0fTp0eXBlb2YgdD09Im51bWJlciI/e2VhY2g6dH06dCxhPXIuZmlyc3Qscz1yLmVhY2gsbj1yLndpdGgsbz1uPT09dm9pZCAwP2psYTpuLGw9ci5zY2hlZHVsZXIsYz1sPT09dm9pZCAwP2U/P2YxOmwsZD1yLm1ldGEsZj1kPT09dm9pZCAwP251bGw6ZDtpZihhPT1udWxsJiZzPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIHRpbWVvdXQgcHJvdmlkZWQuIik7cmV0dXJuIFhyKGZ1bmN0aW9uKHAsaCl7dmFyIG0sdixiPW51bGwsZz0wLHk9aShmdW5jdGlvbihrKXt2PU5zKGgsYyxmdW5jdGlvbigpe3RyeXttLnVuc3Vic2NyaWJlKCksaWkobyh7bWV0YTpmLGxhc3RWYWx1ZTpiLHNlZW46Z30pKS5zdWJzY3JpYmUoaCl9Y2F0Y2goTSl7aC5lcnJvcihNKX19LGspfSwic3RhcnRUaW1lciIpO209cC5zdWJzY3JpYmUoRXIoaCxmdW5jdGlvbihrKXt2Py51bnN1YnNjcmliZSgpLGcrKyxoLm5leHQoYj1rKSxzPjAmJnkocyl9LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2Py5jbG9zZWR8fHY/LnVuc3Vic2NyaWJlKCksYj1udWxsfSkpLCFnJiZ5KGEhPW51bGw/dHlwZW9mIGE9PSJudW1iZXIiP2E6K2EtYy5ub3coKTpzKX0pfWZ1bmN0aW9uIGpsYSh0KXt0aHJvdyBuZXcgU3Z0KHQpfXZhciBTdnQsbmllPXUoKCk9PntQZCgpO0g1ZSgpO2dzKCk7UjEoKTtGMygpO2xuKCk7SDMoKTtTdnQ9cDEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7cj09PXZvaWQgMCYmKHI9bnVsbCksdCh0aGlzKSx0aGlzLm1lc3NhZ2U9IlRpbWVvdXQgaGFzIG9jY3VycmVkIix0aGlzLm5hbWU9IlRpbWVvdXRFcnJvciIsdGhpcy5pbmZvPXJ9LCJUaW1lb3V0RXJyb3JJbXBsIil9KTtpKE12dCwidGltZW91dCIpO2koamxhLCJ0aW1lb3V0RXJyb3JGYWN0b3J5Iil9KTtmdW5jdGlvbiBLYyh0LGUpe3JldHVybiBYcihmdW5jdGlvbihyLGEpe3ZhciBzPTA7ci5zdWJzY3JpYmUoRXIoYSxmdW5jdGlvbihuKXthLm5leHQodC5jYWxsKGUsbixzKyspKX0pKX0pfXZhciAkaz11KCgpPT57Z3MoKTtsbigpO2koS2MsIm1hcCIpfSk7ZnVuY3Rpb24gV2xhKHQsZSl7cmV0dXJuIFVsYShlKT90LmFwcGx5KHZvaWQgMCxQcyhbXSxBaShlKSkpOnQoZSl9ZnVuY3Rpb24gb2llKHQpe3JldHVybiBLYyhmdW5jdGlvbihlKXtyZXR1cm4gV2xhKHQsZSl9KX12YXIgVWxhLHE1ZT11KCgpPT57X2EoKTskaygpO1VsYT1BcnJheS5pc0FycmF5O2koV2xhLCJjYWxsT3JBcHBseSIpO2kob2llLCJtYXBPbmVPck1hbnlBcmdzIil9KTt2YXIgQ3Z0PXUoKCk9Pnt9KTt2YXIgenZ0PXUoKCk9Pnt9KTtmdW5jdGlvbiBfdnQodCl7aWYodC5sZW5ndGg9PT0xKXt2YXIgZT10WzBdO2lmKEdsYShlKSlyZXR1cm57YXJnczplLGtleXM6bnVsbH07aWYoUWxhKGUpKXt2YXIgcj1abGEoZSk7cmV0dXJue2FyZ3M6ci5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGVbYV19KSxrZXlzOnJ9fX1yZXR1cm57YXJnczp0LGtleXM6bnVsbH19ZnVuY3Rpb24gUWxhKHQpe3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCImJllsYSh0KT09PUtsYX12YXIgR2xhLFlsYSxLbGEsWmxhLFR2dD11KCgpPT57R2xhPUFycmF5LmlzQXJyYXksWWxhPU9iamVjdC5nZXRQcm90b3R5cGVPZixLbGE9T2JqZWN0LnByb3RvdHlwZSxabGE9T2JqZWN0LmtleXM7aShfdnQsImFyZ3NBcmdBcnJheU9yT2JqZWN0Iik7aShRbGEsImlzUE9KTyIpfSk7ZnVuY3Rpb24gTHZ0KHQsZSl7cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKHIsYSxzKXtyZXR1cm4gclthXT1lW3NdLHJ9LHt9KX12YXIgRHZ0PXUoKCk9PntpKEx2dCwiY3JlYXRlT2JqZWN0Iil9KTtmdW5jdGlvbiBWNWUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9R2ModCksYT1ydnQodCkscz1fdnQodCksbj1zLmFyZ3Msbz1zLmtleXM7aWYobi5sZW5ndGg9PT0wKXJldHVybiBZYyhbXSxyKTt2YXIgbD1uZXcgbnIoWGxhKG4scixvP2Z1bmN0aW9uKGMpe3JldHVybiBMdnQobyxjKX06V2MpKTtyZXR1cm4gYT9sLnBpcGUob2llKGEpKTpsfWZ1bmN0aW9uIFhsYSh0LGUscil7cmV0dXJuIHI9PT12b2lkIDAmJihyPVdjKSxmdW5jdGlvbihhKXskdnQoZSxmdW5jdGlvbigpe2Zvcih2YXIgcz10Lmxlbmd0aCxuPW5ldyBBcnJheShzKSxvPXMsbD1zLGM9aShmdW5jdGlvbihmKXskdnQoZSxmdW5jdGlvbigpe3ZhciBwPVljKHRbZl0sZSksaD0hMTtwLnN1YnNjcmliZShFcihhLGZ1bmN0aW9uKG0pe25bZl09bSxofHwoaD0hMCxsLS0pLGx8fGEubmV4dChyKG4uc2xpY2UoKSkpfSxmdW5jdGlvbigpey0tb3x8YS5jb21wbGV0ZSgpfSkpfSxhKX0sIl9sb29wXzEiKSxkPTA7ZDxzO2QrKyljKGQpfSxhKX19ZnVuY3Rpb24gJHZ0KHQsZSxyKXt0P05zKHIsdCxlKTplKCl9dmFyIEF2dD11KCgpPT57QW8oKTtUdnQoKTtEaygpO1JnKCk7cTVlKCk7amcoKTtEdnQoKTtsbigpO0gzKCk7aShWNWUsImNvbWJpbmVMYXRlc3QiKTtpKFhsYSwiY29tYmluZUxhdGVzdEluaXQiKTtpKCR2dCwibWF5YmVTY2hlZHVsZSIpfSk7ZnVuY3Rpb24gRXZ0KHQsZSxyLGEscyxuLG8sbCl7dmFyIGM9W10sZD0wLGY9MCxwPSExLGg9aShmdW5jdGlvbigpe3AmJiFjLmxlbmd0aCYmIWQmJmUuY29tcGxldGUoKX0sImNoZWNrQ29tcGxldGUiKSxtPWkoZnVuY3Rpb24oYil7cmV0dXJuIGQ8YT92KGIpOmMucHVzaChiKX0sIm91dGVyTmV4dCIpLHY9aShmdW5jdGlvbihiKXtuJiZlLm5leHQoYiksZCsrO3ZhciBnPSExO2lpKHIoYixmKyspKS5zdWJzY3JpYmUoRXIoZSxmdW5jdGlvbih5KXtzPy4oeSksbj9tKHkpOmUubmV4dCh5KX0sZnVuY3Rpb24oKXtnPSEwfSx2b2lkIDAsZnVuY3Rpb24oKXtpZihnKXRyeXtkLS07Zm9yKHZhciB5PWkoZnVuY3Rpb24oKXt2YXIgaz1jLnNoaWZ0KCk7bz9OcyhlLG8sZnVuY3Rpb24oKXtyZXR1cm4gdihrKX0pOnYoayl9LCJfbG9vcF8xIik7Yy5sZW5ndGgmJmQ8YTspeSgpO2goKX1jYXRjaChrKXtlLmVycm9yKGspfX0pKX0sImRvSW5uZXJTdWIiKTtyZXR1cm4gdC5zdWJzY3JpYmUoRXIoZSxtLGZ1bmN0aW9uKCl7cD0hMCxoKCl9KSksZnVuY3Rpb24oKXtsPy4oKX19dmFyIEl2dD11KCgpPT57UjEoKTtIMygpO2xuKCk7aShFdnQsIm1lcmdlSW50ZXJuYWxzIil9KTtmdW5jdGlvbiBGZih0LGUscil7cmV0dXJuIHI9PT12b2lkIDAmJihyPTEvMCkscnIoZSk/RmYoZnVuY3Rpb24oYSxzKXtyZXR1cm4gS2MoZnVuY3Rpb24obixvKXtyZXR1cm4gZShhLG4scyxvKX0pKGlpKHQoYSxzKSkpfSxyKToodHlwZW9mIGU9PSJudW1iZXIiJiYocj1lKSxYcihmdW5jdGlvbihhLHMpe3JldHVybiBFdnQoYSxzLHQscil9KSl9dmFyIEFrPXUoKCk9PnskaygpO1IxKCk7Z3MoKTtJdnQoKTtvbigpO2koRmYsIm1lcmdlTWFwIil9KTtmdW5jdGlvbiBsaWUodCl7cmV0dXJuIHQ9PT12b2lkIDAmJih0PTEvMCksRmYoV2MsdCl9dmFyIGNpZT11KCgpPT57QWsoKTtSZygpO2kobGllLCJtZXJnZUFsbCIpfSk7ZnVuY3Rpb24gZGllKCl7cmV0dXJuIGxpZSgxKX12YXIgdWllPXUoKCk9PntjaWUoKTtpKGRpZSwiY29uY2F0QWxsIil9KTtmdW5jdGlvbiBwaWUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIGRpZSgpKFljKHQsR2ModCkpKX12YXIgajVlPXUoKCk9Pnt1aWUoKTtqZygpO0RrKCk7aShwaWUsImNvbmNhdCIpfSk7dmFyIFB2dD11KCgpPT57fSk7dmFyIE52dD11KCgpPT57fSk7dmFyIE92dD11KCgpPT57fSk7ZnVuY3Rpb24gQmYodCxlLHIsYSl7aWYocnIocikmJihhPXIscj12b2lkIDApLGEpcmV0dXJuIEJmKHQsZSxyKS5waXBlKG9pZShhKSk7dmFyIHM9QWkoaTJhKHQpP2UyYS5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiB0W2xdKGUsYyxyKX19KTpyMmEodCk/SmxhLm1hcChSdnQodCxlKSk6YTJhKHQpP3QyYS5tYXAoUnZ0KHQsZSkpOltdLDIpLG49c1swXSxvPXNbMV07aWYoIW4mJlVnKHQpKXJldHVybiBGZihmdW5jdGlvbihsKXtyZXR1cm4gQmYobCxlLHIpfSkoaWkodCkpO2lmKCFuKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyBucihmdW5jdGlvbihsKXt2YXIgYz1pKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPVtdLGY9MDtmPGFyZ3VtZW50cy5sZW5ndGg7ZisrKWRbZl09YXJndW1lbnRzW2ZdO3JldHVybiBsLm5leHQoMTxkLmxlbmd0aD9kOmRbMF0pfSwiaGFuZGxlciIpO3JldHVybiBuKGMpLGZ1bmN0aW9uKCl7cmV0dXJuIG8oYyl9fSl9ZnVuY3Rpb24gUnZ0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gdFtyXShlLGEpfX19ZnVuY3Rpb24gcjJhKHQpe3JldHVybiBycih0LmFkZExpc3RlbmVyKSYmcnIodC5yZW1vdmVMaXN0ZW5lcil9ZnVuY3Rpb24gYTJhKHQpe3JldHVybiBycih0Lm9uKSYmcnIodC5vZmYpfWZ1bmN0aW9uIGkyYSh0KXtyZXR1cm4gcnIodC5hZGRFdmVudExpc3RlbmVyKSYmcnIodC5yZW1vdmVFdmVudExpc3RlbmVyKX12YXIgSmxhLGUyYSx0MmEsRnZ0PXUoKCk9PntfYSgpO1IxKCk7QW8oKTtBaygpO1lhZSgpO29uKCk7cTVlKCk7SmxhPVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLGUyYT1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sdDJhPVsib24iLCJvZmYiXTtpKEJmLCJmcm9tRXZlbnQiKTtpKFJ2dCwidG9Db21tb25IYW5kbGVyUmVnaXN0cnkiKTtpKHIyYSwiaXNOb2RlU3R5bGVFdmVudEVtaXR0ZXIiKTtpKGEyYSwiaXNKUXVlcnlTdHlsZUV2ZW50RW1pdHRlciIpO2koaTJhLCJpc0V2ZW50VGFyZ2V0Iil9KTt2YXIgQnZ0PXUoKCk9Pnt9KTt2YXIgSHZ0PXUoKCk9Pnt9KTt2YXIgcXZ0PXUoKCk9Pnt9KTtmdW5jdGlvbiBFayh0LGUscil7dD09PXZvaWQgMCYmKHQ9MCkscj09PXZvaWQgMCYmKHI9eTVlKTt2YXIgYT0tMTtyZXR1cm4gZSE9bnVsbCYmKEdhZShlKT9yPWU6YT1lKSxuZXcgbnIoZnVuY3Rpb24ocyl7dmFyIG49c2llKHQpPyt0LXIubm93KCk6dDtuPDAmJihuPTApO3ZhciBvPTA7cmV0dXJuIHIuc2NoZWR1bGUoZnVuY3Rpb24oKXtzLmNsb3NlZHx8KHMubmV4dChvKyspLDA8PWE/dGhpcy5zY2hlZHVsZSh2b2lkIDAsYSk6cy5jb21wbGV0ZSgpKX0sbil9KX12YXIgZmllPXUoKCk9PntBbygpO1BkKCk7ejVlKCk7SDVlKCk7aShFaywidGltZXIiKX0pO2Z1bmN0aW9uIFU1ZSh0LGUpe3JldHVybiB0PT09dm9pZCAwJiYodD0wKSxlPT09dm9pZCAwJiYoZT1mMSksdDwwJiYodD0wKSxFayh0LHQsZSl9dmFyIFZ2dD11KCgpPT57UGQoKTtmaWUoKTtpKFU1ZSwiaW50ZXJ2YWwiKX0pO3ZhciBqdnQ9dSgoKT0+e30pO2Z1bmN0aW9uIHMyYSgpe3JldHVybiBVdnR9dmFyIFV2dCxXNWU9dSgoKT0+e0FvKCk7SWYoKTtVdnQ9bmV3IG5yKGtsKTtpKHMyYSwibmV2ZXIiKX0pO3ZhciBXdnQ9dSgoKT0+e30pO3ZhciBHdnQ9dSgoKT0+e30pO2Z1bmN0aW9uIGhpZSh0LGUpe3JldHVybiBYcihmdW5jdGlvbihyLGEpe3ZhciBzPTA7ci5zdWJzY3JpYmUoRXIoYSxmdW5jdGlvbihuKXtyZXR1cm4gdC5jYWxsKGUsbixzKyspJiZhLm5leHQobil9KSl9KX12YXIgRzVlPXUoKCk9PntncygpO2xuKCk7aShoaWUsImZpbHRlciIpfSk7dmFyIFl2dD11KCgpPT57fSk7dmFyIEt2dD11KCgpPT57fSk7dmFyIFp2dD11KCgpPT57fSk7dmFyIFF2dD11KCgpPT57fSk7dmFyIFh2dD11KCgpPT57fSk7dmFyIEp2dD11KCgpPT57fSk7dmFyIFk1ZT11KCgpPT57fSk7dmFyIEs1ZT11KCgpPT57fSk7ZnVuY3Rpb24gbWllKHQpe3JldHVybiBYcihmdW5jdGlvbihlLHIpe3ZhciBhPVtdO3JldHVybiBlLnN1YnNjcmliZShFcihyLGZ1bmN0aW9uKHMpe3JldHVybiBhLnB1c2gocyl9LGZ1bmN0aW9uKCl7ci5uZXh0KGEpLHIuY29tcGxldGUoKX0pKSxpaSh0KS5zdWJzY3JpYmUoRXIocixmdW5jdGlvbigpe3ZhciBzPWE7YT1bXSxyLm5leHQocyl9LGtsKSksZnVuY3Rpb24oKXthPW51bGx9fSl9dmFyIFo1ZT11KCgpPT57Z3MoKTtJZigpO2xuKCk7UjEoKTtpKG1pZSwiYnVmZmVyIil9KTtmdW5jdGlvbiBnaWUodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9bnVsbCksZT1lPz90LFhyKGZ1bmN0aW9uKHIsYSl7dmFyIHM9W10sbj0wO3Iuc3Vic2NyaWJlKEVyKGEsZnVuY3Rpb24obyl7dmFyIGwsYyxkLGYscD1udWxsO24rKyVlPT09MCYmcy5wdXNoKFtdKTt0cnl7Zm9yKHZhciBoPVluKHMpLG09aC5uZXh0KCk7IW0uZG9uZTttPWgubmV4dCgpKXt2YXIgdj1tLnZhbHVlO3YucHVzaChvKSx0PD12Lmxlbmd0aCYmKHA9cD8/W10scC5wdXNoKHYpKX19Y2F0Y2goeSl7bD17ZXJyb3I6eX19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKGM9aC5yZXR1cm4pJiZjLmNhbGwoaCl9ZmluYWxseXtpZihsKXRocm93IGwuZXJyb3J9fWlmKHApdHJ5e2Zvcih2YXIgYj1ZbihwKSxnPWIubmV4dCgpOyFnLmRvbmU7Zz1iLm5leHQoKSl7dmFyIHY9Zy52YWx1ZTt2MihzLHYpLGEubmV4dCh2KX19Y2F0Y2goeSl7ZD17ZXJyb3I6eX19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKGY9Yi5yZXR1cm4pJiZmLmNhbGwoYil9ZmluYWxseXtpZihkKXRocm93IGQuZXJyb3J9fX0sZnVuY3Rpb24oKXt2YXIgbyxsO3RyeXtmb3IodmFyIGM9WW4ocyksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBmPWQudmFsdWU7YS5uZXh0KGYpfX1jYXRjaChwKXtvPXtlcnJvcjpwfX1maW5hbGx5e3RyeXtkJiYhZC5kb25lJiYobD1jLnJldHVybikmJmwuY2FsbChjKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19YS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtzPW51bGx9KSl9KX12YXIgUTVlPXUoKCk9PntfYSgpO2dzKCk7bG4oKTtJZygpO2koZ2llLCJidWZmZXJDb3VudCIpfSk7ZnVuY3Rpb24gYmllKHQpe2Zvcih2YXIgZSxyLGE9W10scz0xO3M8YXJndW1lbnRzLmxlbmd0aDtzKyspYVtzLTFdPWFyZ3VtZW50c1tzXTt2YXIgbj0oZT1HYyhhKSkhPT1udWxsJiZlIT09dm9pZCAwP2U6ZjEsbz0ocj1hWzBdKSE9PW51bGwmJnIhPT12b2lkIDA/cjpudWxsLGw9YVsxXXx8MS8wO3JldHVybiBYcihmdW5jdGlvbihjLGQpe3ZhciBmPVtdLHA9ITEsaD1pKGZ1bmN0aW9uKGIpe3ZhciBnPWIuYnVmZmVyLHk9Yi5zdWJzO3kudW5zdWJzY3JpYmUoKSx2MihmLGIpLGQubmV4dChnKSxwJiZtKCl9LCJlbWl0IiksbT1pKGZ1bmN0aW9uKCl7aWYoZil7dmFyIGI9bmV3IFFpO2QuYWRkKGIpO3ZhciBnPVtdLHk9e2J1ZmZlcjpnLHN1YnM6Yn07Zi5wdXNoKHkpLE5zKGIsbixmdW5jdGlvbigpe3JldHVybiBoKHkpfSx0KX19LCJzdGFydEJ1ZmZlciIpO28hPT1udWxsJiZvPj0wP05zKGQsbixtLG8sITApOnA9ITAsbSgpO3ZhciB2PUVyKGQsZnVuY3Rpb24oYil7dmFyIGcseSxrPWYuc2xpY2UoKTt0cnl7Zm9yKHZhciBNPVluKGspLE49TS5uZXh0KCk7IU4uZG9uZTtOPU0ubmV4dCgpKXt2YXIgXz1OLnZhbHVlLFM9Xy5idWZmZXI7Uy5wdXNoKGIpLGw8PVMubGVuZ3RoJiZoKF8pfX1jYXRjaChPKXtnPXtlcnJvcjpPfX1maW5hbGx5e3RyeXtOJiYhTi5kb25lJiYoeT1NLnJldHVybikmJnkuY2FsbChNKX1maW5hbGx5e2lmKGcpdGhyb3cgZy5lcnJvcn19fSxmdW5jdGlvbigpe2Zvcig7Zj8ubGVuZ3RoOylkLm5leHQoZi5zaGlmdCgpLmJ1ZmZlcik7dj8udW5zdWJzY3JpYmUoKSxkLmNvbXBsZXRlKCksZC51bnN1YnNjcmliZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gZj1udWxsfSk7Yy5zdWJzY3JpYmUodil9KX12YXIgWDVlPXUoKCk9PntfYSgpO1VjKCk7Z3MoKTtsbigpO0lnKCk7UGQoKTtqZygpO0gzKCk7aShiaWUsImJ1ZmZlclRpbWUiKX0pO3ZhciBKNWU9dSgoKT0+e30pO3ZhciBlOGU9dSgoKT0+e30pO3ZhciB0OGU9dSgoKT0+e30pO3ZhciByOGU9dSgoKT0+e30pO3ZhciBhOGU9dSgoKT0+e30pO3ZhciBpOGU9dSgoKT0+e30pO3ZhciBzOGU9dSgoKT0+e30pO3ZhciBleXQ9dSgoKT0+e30pO3ZhciBuOGU9dSgoKT0+e30pO3ZhciBvOGU9dSgoKT0+e30pO3ZhciBsOGU9dSgoKT0+e30pO3ZhciB0eXQ9dSgoKT0+e30pO3ZhciBjOGU9dSgoKT0+e30pO3ZhciBkOGU9dSgoKT0+e30pO3ZhciB1OGU9dSgoKT0+e30pO2Z1bmN0aW9uIHhpZSh0KXtyZXR1cm4gWHIoZnVuY3Rpb24oZSxyKXt2YXIgYT0hMSxzPW51bGwsbj1udWxsLG89aShmdW5jdGlvbigpe2lmKG4/LnVuc3Vic2NyaWJlKCksbj1udWxsLGEpe2E9ITE7dmFyIGw9cztzPW51bGwsci5uZXh0KGwpfX0sImVtaXQiKTtlLnN1YnNjcmliZShFcihyLGZ1bmN0aW9uKGwpe24/LnVuc3Vic2NyaWJlKCksYT0hMCxzPWwsbj1FcihyLG8sa2wpLGlpKHQobCkpLnN1YnNjcmliZShuKX0sZnVuY3Rpb24oKXtvKCksci5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtzPW49bnVsbH0pKX0pfXZhciBwOGU9dSgoKT0+e2dzKCk7SWYoKTtsbigpO1IxKCk7aSh4aWUsImRlYm91bmNlIil9KTtmdW5jdGlvbiB2aWUodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9ZjEpLFhyKGZ1bmN0aW9uKHIsYSl7dmFyIHM9bnVsbCxuPW51bGwsbz1udWxsLGw9aShmdW5jdGlvbigpe2lmKHMpe3MudW5zdWJzY3JpYmUoKSxzPW51bGw7dmFyIGQ9bjtuPW51bGwsYS5uZXh0KGQpfX0sImVtaXQiKTtmdW5jdGlvbiBjKCl7dmFyIGQ9byt0LGY9ZS5ub3coKTtpZihmPGQpe3M9dGhpcy5zY2hlZHVsZSh2b2lkIDAsZC1mKSxhLmFkZChzKTtyZXR1cm59bCgpfWkoYywiZW1pdFdoZW5JZGxlIiksci5zdWJzY3JpYmUoRXIoYSxmdW5jdGlvbihkKXtuPWQsbz1lLm5vdygpLHN8fChzPWUuc2NoZWR1bGUoYyx0KSxhLmFkZChzKSl9LGZ1bmN0aW9uKCl7bCgpLGEuY29tcGxldGUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7bj1zPW51bGx9KSl9KX12YXIgZjhlPXUoKCk9PntQZCgpO2dzKCk7bG4oKTtpKHZpZSwiZGVib3VuY2VUaW1lIil9KTt2YXIgaDhlPXUoKCk9Pnt9KTt2YXIgbThlPXUoKCk9Pnt9KTt2YXIgZzhlPXUoKCk9Pnt9KTt2YXIgYjhlPXUoKCk9Pnt9KTt2YXIgeDhlPXUoKCk9Pnt9KTt2YXIgdjhlPXUoKCk9Pnt9KTt2YXIgeThlPXUoKCk9Pnt9KTt2YXIgdzhlPXUoKCk9Pnt9KTtmdW5jdGlvbiBZZyh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT1XYyksdD10Pz9uMmEsWHIoZnVuY3Rpb24ocixhKXt2YXIgcyxuPSEwO3Iuc3Vic2NyaWJlKEVyKGEsZnVuY3Rpb24obyl7dmFyIGw9ZShvKTsobnx8IXQocyxsKSkmJihuPSExLHM9bCxhLm5leHQobykpfSkpfSl9ZnVuY3Rpb24gbjJhKHQsZSl7cmV0dXJuIHQ9PT1lfXZhciBrOGU9dSgoKT0+e1JnKCk7Z3MoKTtsbigpO2koWWcsImRpc3RpbmN0VW50aWxDaGFuZ2VkIik7aShuMmEsImRlZmF1bHRDb21wYXJlIil9KTt2YXIgUzhlPXUoKCk9Pnt9KTt2YXIgTThlPXUoKCk9Pnt9KTt2YXIgQzhlPXUoKCk9Pnt9KTt2YXIgejhlPXUoKCk9Pnt9KTt2YXIgXzhlPXUoKCk9Pnt9KTt2YXIgVDhlPXUoKCk9Pnt9KTt2YXIgTDhlPXUoKCk9Pnt9KTt2YXIgRDhlPXUoKCk9Pnt9KTt2YXIgJDhlPXUoKCk9Pnt9KTt2YXIgQThlPXUoKCk9Pnt9KTt2YXIgRThlPXUoKCk9Pnt9KTt2YXIgSThlPXUoKCk9Pnt9KTt2YXIgUDhlPXUoKCk9Pnt9KTt2YXIgTjhlPXUoKCk9Pnt9KTt2YXIgTzhlPXUoKCk9Pnt9KTt2YXIgUjhlPXUoKCk9Pnt9KTt2YXIgRjhlPXUoKCk9Pnt9KTt2YXIgQjhlPXUoKCk9Pnt9KTt2YXIgSDhlPXUoKCk9Pnt9KTt2YXIgcThlPXUoKCk9Pnt9KTt2YXIgVjhlPXUoKCk9Pnt9KTt2YXIgajhlPXUoKCk9Pnt9KTt2YXIgcnl0PXUoKCk9Pnt9KTt2YXIgVThlPXUoKCk9Pnt9KTt2YXIgVzhlPXUoKCk9Pnt9KTt2YXIgRzhlPXUoKCk9Pnt9KTt2YXIgWThlPXUoKCk9Pnt9KTt2YXIgSzhlPXUoKCk9Pnt9KTt2YXIgWjhlPXUoKCk9Pnt9KTt2YXIgUThlPXUoKCk9Pnt9KTt2YXIgWDhlPXUoKCk9Pnt9KTt2YXIgSjhlPXUoKCk9Pnt9KTt2YXIgZTdlPXUoKCk9Pnt9KTt2YXIgdDdlPXUoKCk9Pnt9KTt2YXIgcjdlPXUoKCk9Pnt9KTt2YXIgYTdlPXUoKCk9Pnt9KTt2YXIgaTdlPXUoKCk9Pnt9KTt2YXIgczdlPXUoKCk9Pnt9KTt2YXIgbjdlPXUoKCk9Pnt9KTt2YXIgbzdlPXUoKCk9Pnt9KTt2YXIgbDdlPXUoKCk9Pnt9KTt2YXIgYzdlPXUoKCk9Pnt9KTtmdW5jdGlvbiB5aWUodCl7dD09PXZvaWQgMCYmKHQ9e30pO3ZhciBlPXQuY29ubmVjdG9yLHI9ZT09PXZvaWQgMD9mdW5jdGlvbigpe3JldHVybiBuZXcgS259OmUsYT10LnJlc2V0T25FcnJvcixzPWE9PT12b2lkIDA/ITA6YSxuPXQucmVzZXRPbkNvbXBsZXRlLG89bj09PXZvaWQgMD8hMDpuLGw9dC5yZXNldE9uUmVmQ291bnRaZXJvLGM9bD09PXZvaWQgMD8hMDpsO3JldHVybiBmdW5jdGlvbihkKXt2YXIgZixwLGgsbT0wLHY9ITEsYj0hMSxnPWkoZnVuY3Rpb24oKXtwPy51bnN1YnNjcmliZSgpLHA9dm9pZCAwfSwiY2FuY2VsUmVzZXQiKSx5PWkoZnVuY3Rpb24oKXtnKCksZj1oPXZvaWQgMCx2PWI9ITF9LCJyZXNldCIpLGs9aShmdW5jdGlvbigpe3ZhciBNPWY7eSgpLE0/LnVuc3Vic2NyaWJlKCl9LCJyZXNldEFuZFVuc3Vic2NyaWJlIik7cmV0dXJuIFhyKGZ1bmN0aW9uKE0sTil7bSsrLCFiJiYhdiYmZygpO3ZhciBfPWg9aD8/cigpO04uYWRkKGZ1bmN0aW9uKCl7bS0tLG09PT0wJiYhYiYmIXYmJihwPWQ3ZShrLGMpKX0pLF8uc3Vic2NyaWJlKE4pLCFmJiZtPjAmJihmPW5ldyBCMyh7bmV4dDppKGZ1bmN0aW9uKFMpe3JldHVybiBfLm5leHQoUyl9LCJuZXh0IiksZXJyb3I6aShmdW5jdGlvbihTKXtiPSEwLGcoKSxwPWQ3ZSh5LHMsUyksXy5lcnJvcihTKX0sImVycm9yIiksY29tcGxldGU6aShmdW5jdGlvbigpe3Y9ITAsZygpLHA9ZDdlKHksbyksXy5jb21wbGV0ZSgpfSwiY29tcGxldGUiKX0pLGlpKE0pLnN1YnNjcmliZShmKSl9KShkKX19ZnVuY3Rpb24gZDdlKHQsZSl7Zm9yKHZhciByPVtdLGE9MjthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKXJbYS0yXT1hcmd1bWVudHNbYV07aWYoZT09PSEwKXt0KCk7cmV0dXJufWlmKGUhPT0hMSl7dmFyIHM9bmV3IEIzKHtuZXh0OmkoZnVuY3Rpb24oKXtzLnVuc3Vic2NyaWJlKCksdCgpfSwibmV4dCIpfSk7cmV0dXJuIGlpKGUuYXBwbHkodm9pZCAwLFBzKFtdLEFpKHIpKSkpLnN1YnNjcmliZShzKX19dmFyIHdpZT11KCgpPT57X2EoKTtSMSgpO0ZnKCk7a2soKTtncygpO2koeWllLCJzaGFyZSIpO2koZDdlLCJoYW5kbGVSZXNldCIpfSk7ZnVuY3Rpb24ga2llKHQsZSxyKXt2YXIgYSxzLG4sbyxsPSExO3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCI/KGE9dC5idWZmZXJTaXplLG89YT09PXZvaWQgMD8xLzA6YSxzPXQud2luZG93VGltZSxlPXM9PT12b2lkIDA/MS8wOnMsbj10LnJlZkNvdW50LGw9bj09PXZvaWQgMD8hMTpuLHI9dC5zY2hlZHVsZXIpOm89dD8/MS8wLHlpZSh7Y29ubmVjdG9yOmkoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEhnKG8sZSxyKX0sImNvbm5lY3RvciIpLHJlc2V0T25FcnJvcjohMCxyZXNldE9uQ29tcGxldGU6ITEscmVzZXRPblJlZkNvdW50WmVybzpsfSl9dmFyIHU3ZT11KCgpPT57ZjVlKCk7d2llKCk7aShraWUsInNoYXJlUmVwbGF5Iil9KTt2YXIgcDdlPXUoKCk9Pnt9KTt2YXIgZjdlPXUoKCk9Pnt9KTt2YXIgaDdlPXUoKCk9Pnt9KTt2YXIgbTdlPXUoKCk9Pnt9KTt2YXIgZzdlPXUoKCk9Pnt9KTtmdW5jdGlvbiBTaWUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9R2ModCk7cmV0dXJuIFhyKGZ1bmN0aW9uKGEscyl7KHI/cGllKHQsYSxyKTpwaWUodCxhKSkuc3Vic2NyaWJlKHMpfSl9dmFyIGI3ZT11KCgpPT57ajVlKCk7amcoKTtncygpO2koU2llLCJzdGFydFdpdGgiKX0pO3ZhciB4N2U9dSgoKT0+e30pO3ZhciB2N2U9dSgoKT0+e30pO3ZhciB5N2U9dSgoKT0+e30pO3ZhciB3N2U9dSgoKT0+e30pO2Z1bmN0aW9uIEtnKHQpe3JldHVybiBYcihmdW5jdGlvbihlLHIpe2lpKHQpLnN1YnNjcmliZShFcihyLGZ1bmN0aW9uKCl7cmV0dXJuIHIuY29tcGxldGUoKX0sa2wpKSwhci5jbG9zZWQmJmUuc3Vic2NyaWJlKHIpfSl9dmFyIGs3ZT11KCgpPT57Z3MoKTtsbigpO1IxKCk7SWYoKTtpKEtnLCJ0YWtlVW50aWwiKX0pO3ZhciBTN2U9dSgoKT0+e30pO3ZhciBNN2U9dSgoKT0+e30pO2Z1bmN0aW9uIE1pZSh0LGUpe3JldHVybiBYcihmdW5jdGlvbihyLGEpe3ZhciBzPWU/P3t9LG49cy5sZWFkaW5nLG89bj09PXZvaWQgMD8hMDpuLGw9cy50cmFpbGluZyxjPWw9PT12b2lkIDA/ITE6bCxkPSExLGY9bnVsbCxwPW51bGwsaD0hMSxtPWkoZnVuY3Rpb24oKXtwPy51bnN1YnNjcmliZSgpLHA9bnVsbCxjJiYoZygpLGgmJmEuY29tcGxldGUoKSl9LCJlbmRUaHJvdHRsaW5nIiksdj1pKGZ1bmN0aW9uKCl7cD1udWxsLGgmJmEuY29tcGxldGUoKX0sImNsZWFudXBUaHJvdHRsaW5nIiksYj1pKGZ1bmN0aW9uKHkpe3JldHVybiBwPWlpKHQoeSkpLnN1YnNjcmliZShFcihhLG0sdikpfSwic3RhcnRUaHJvdHRsZSIpLGc9aShmdW5jdGlvbigpe2lmKGQpe2Q9ITE7dmFyIHk9ZjtmPW51bGwsYS5uZXh0KHkpLCFoJiZiKHkpfX0sInNlbmQiKTtyLnN1YnNjcmliZShFcihhLGZ1bmN0aW9uKHkpe2Q9ITAsZj15LCEocCYmIXAuY2xvc2VkKSYmKG8/ZygpOmIoeSkpfSxmdW5jdGlvbigpe2g9ITAsIShjJiZkJiZwJiYhcC5jbG9zZWQpJiZhLmNvbXBsZXRlKCl9KSl9KX12YXIgQ2llPXUoKCk9PntncygpO2xuKCk7UjEoKTtpKE1pZSwidGhyb3R0bGUiKX0pO2Z1bmN0aW9uIHppZSh0LGUscil7ZT09PXZvaWQgMCYmKGU9ZjEpO3ZhciBhPUVrKHQsZSk7cmV0dXJuIE1pZShmdW5jdGlvbigpe3JldHVybiBhfSxyKX12YXIgQzdlPXUoKCk9PntQZCgpO0NpZSgpO2ZpZSgpO2koemllLCJ0aHJvdHRsZVRpbWUiKX0pO2Z1bmN0aW9uIGl5dCh0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9ZjEpLFhyKGZ1bmN0aW9uKGUscil7dmFyIGE9dC5ub3coKTtlLnN1YnNjcmliZShFcihyLGZ1bmN0aW9uKHMpe3ZhciBuPXQubm93KCksbz1uLWE7YT1uLHIubmV4dChuZXcgYXl0KHMsbykpfSkpfSl9dmFyIGF5dCx6N2U9dSgoKT0+e1BkKCk7Z3MoKTtsbigpO2koaXl0LCJ0aW1lSW50ZXJ2YWwiKTtheXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHIpe3RoaXMudmFsdWU9ZSx0aGlzLmludGVydmFsPXJ9cmV0dXJuIGkodCwiVGltZUludGVydmFsIiksdH0pKCl9KTt2YXIgXzdlPXUoKCk9Pnt9KTt2YXIgVDdlPXUoKCk9Pnt9KTt2YXIgTDdlPXUoKCk9Pnt9KTt2YXIgRDdlPXUoKCk9Pnt9KTt2YXIgJDdlPXUoKCk9Pnt9KTt2YXIgQTdlPXUoKCk9Pnt9KTt2YXIgRTdlPXUoKCk9Pnt9KTt2YXIgSTdlPXUoKCk9Pnt9KTt2YXIgUDdlPXUoKCk9Pnt9KTt2YXIgc3l0PXUoKCk9Pnt9KTt2YXIgTjdlPXUoKCk9Pnt9KTt2YXIgWmc9dSgoKT0+e0FvKCk7RHh0KCk7U2soKTtFeHQoKTtGZygpO0l4dCgpO2Y1ZSgpO054dCgpO1V4dCgpO1BkKCk7S3h0KCk7Snh0KCk7dHZ0KCk7eDVlKCk7VWMoKTtraygpO212dCgpO3M1ZSgpO0lmKCk7UmcoKTtndnQoKTt4dnQoKTt2dnQoKTt5dnQoKTtidnQoKTt3dnQoKTtkNWUoKTtrdnQoKTtuaWUoKTtRbWUoKTtDdnQoKTt6dnQoKTtBdnQoKTtqNWUoKTtOdnQoKTtQdnQoKTtXYWUoKTtPdnQoKTtEaygpO0Z2dCgpO0J2dCgpO0h2dCgpO3F2dCgpO1Z2dCgpO2p2dCgpO1c1ZSgpO081ZSgpO1d2dCgpO0d2dCgpO1l2dCgpO0t2dCgpO1p2dCgpO0Y1ZSgpO2ZpZSgpO1F2dCgpO1h2dCgpO041ZSgpO1dhZSgpO1c1ZSgpO0p2dCgpO1BnKCk7WTVlKCk7SzVlKCk7WjVlKCk7UTVlKCk7WDVlKCk7SjVlKCk7ZThlKCk7dDhlKCk7czhlKCk7aThlKCk7bjhlKCk7dWllKCk7bzhlKCk7bDhlKCk7YzhlKCk7ZDhlKCk7dThlKCk7cDhlKCk7ZjhlKCk7aDhlKCk7djhlKCk7eDhlKCk7eThlKCk7dzhlKCk7azhlKCk7UzhlKCk7QzhlKCk7ejhlKCk7XzhlKCk7RDhlKCk7TDhlKCk7VDhlKCk7JDhlKCk7RzVlKCk7QThlKCk7RThlKCk7SThlKCk7UDhlKCk7TjhlKCk7ZzhlKCk7TzhlKCk7RjhlKCk7JGsoKTtiOGUoKTtCOGUoKTtIOGUoKTtjaWUoKTtxOGUoKTtBaygpO1Y4ZSgpO2o4ZSgpO1U4ZSgpO1c4ZSgpO0c4ZSgpO1RrKCk7WThlKCk7SzhlKCk7WjhlKCk7UThlKCk7WDhlKCk7SjhlKCk7ZTdlKCk7dDdlKCk7cjhlKCk7cjdlKCk7YTdlKCk7aTdlKCk7czdlKCk7VmFlKCk7bjdlKCk7bzdlKCk7bDdlKCk7YzdlKCk7d2llKCk7dTdlKCk7cDdlKCk7ZjdlKCk7aDdlKCk7bTdlKCk7ZzdlKCk7YjdlKCk7TGsoKTt2N2UoKTt4N2UoKTt5N2UoKTt3N2UoKTttOGUoKTtSOGUoKTtrN2UoKTtTN2UoKTtNN2UoKTtDaWUoKTtDN2UoKTtNOGUoKTt6N2UoKTtuaWUoKTtfN2UoKTtUN2UoKTthOGUoKTtMN2UoKTtEN2UoKTskN2UoKTtBN2UoKTtFN2UoKTtJN2UoKTtQN2UoKTtON2UoKX0pO3ZhciBueXQ9dSgoKT0+e30pO3ZhciBveXQ9dSgoKT0+e30pO3ZhciBseXQ9dSgoKT0+e1k1ZSgpO0s1ZSgpO1o1ZSgpO1E1ZSgpO1g1ZSgpO0o1ZSgpO2U4ZSgpO3Q4ZSgpO3M4ZSgpO2k4ZSgpO2V5dCgpO244ZSgpO3R5dCgpO3VpZSgpO284ZSgpO2w4ZSgpO2M4ZSgpO2Q4ZSgpO3U4ZSgpO3A4ZSgpO2Y4ZSgpO2g4ZSgpO3Y4ZSgpO3g4ZSgpO3k4ZSgpO3c4ZSgpO2s4ZSgpO1M4ZSgpO0M4ZSgpO3o4ZSgpO184ZSgpO0Q4ZSgpO0w4ZSgpO1Q4ZSgpOyQ4ZSgpO0c1ZSgpO0E4ZSgpO0U4ZSgpO0k4ZSgpO1A4ZSgpO044ZSgpO2c4ZSgpO084ZSgpO0Y4ZSgpOyRrKCk7YjhlKCk7QjhlKCk7SDhlKCk7cnl0KCk7Y2llKCk7cThlKCk7QWsoKTtWOGUoKTtqOGUoKTtVOGUoKTtXOGUoKTtHOGUoKTtUaygpO1k4ZSgpO0s4ZSgpO255dCgpO1o4ZSgpO1E4ZSgpO1g4ZSgpO0o4ZSgpO2U3ZSgpO295dCgpO3Q3ZSgpO3I4ZSgpO3I3ZSgpO2E3ZSgpO2k3ZSgpO3M3ZSgpO1ZhZSgpO243ZSgpO283ZSgpO2w3ZSgpO2M3ZSgpO3dpZSgpO3U3ZSgpO3A3ZSgpO2Y3ZSgpO2g3ZSgpO203ZSgpO2c3ZSgpO2I3ZSgpO0xrKCk7djdlKCk7eDdlKCk7eTdlKCk7dzdlKCk7bThlKCk7UjhlKCk7azdlKCk7UzdlKCk7TTdlKCk7Q2llKCk7QzdlKCk7TThlKCk7ejdlKCk7bmllKCk7XzdlKCk7VDdlKCk7YThlKCk7TDdlKCk7RDdlKCk7JDdlKCk7QTdlKCk7RTdlKCk7STdlKCk7c3l0KCk7UDdlKCk7TjdlKCl9KTt2YXIgUWc9e307VmUoUWcse09ic2VydmFibGU6KCk9Pm5yLFJlcGxheVN1YmplY3Q6KCk9PkhnLFN1YmplY3Q6KCk9PktuLFN1YnNjcmlwdGlvbjooKT0+UWksZnJvbTooKT0+WWMsZnJvbUV2ZW50OigpPT5CZixvZjooKT0+UmYsb3BzOigpPT5PY2F9KTt2YXIgT2NhLF9pZT11KCgpPT57WmcoKTtseXQoKTtPY2E9e2J1ZmZlcjptaWUsYnVmZmVyQ291bnQ6Z2llLGJ1ZmZlclRpbWU6YmllLGRlYm91bmNlOnhpZSxkZWJvdW5jZVRpbWU6dmllLGZpbHRlcjpoaWUsbWFwOktjLHN0YXJ0V2l0aDpTaWUsdGFrZVVudGlsOktnLHRocm90dGxlVGltZTp6aWV9fSk7dmFyIE83ZSxjeXQ9dSgoKT0+e09hZSgpO19pZSgpO083ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJPYnNlcnZhYmxlbWFwIil9Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheT1uZXcgQXJyYXksdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheT1uZXcgQXJyYXl9Z2V0U3ViamVjdEZvckVtaXR0ZXJFdmVudChlLHIpe2xldCBhPXRoaXMub2JzZXJ2YWJsZUV2ZW50RW1pdHRlckJ1bmRsZUFycmF5LmZpbmQocz0+cy5ldmVudFJlZj09PWUmJnMuZXZlbnQ9PT1yKTtpZihhKXJldHVybiBhLnN1YmplY3Q7e2xldCBzPUJmKGUsciksbj1uZXcgS247cy5zdWJzY3JpYmUobik7bGV0IG89e3N1YmplY3Q6bixldmVudFJlZjplLGV2ZW50OnJ9O3JldHVybiB0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5wdXNoKG8pLG8uc3ViamVjdH19Z2V0U3ViamVjdEZvckV2ZW50VGFyZ2V0KGUscil7bGV0IGE9dGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5maW5kKHM9PnMuZXZlbnRSZWY9PT1lJiZzLmV2ZW50PT09cik7aWYoYSlyZXR1cm4gYS5zdWJqZWN0O3tsZXQgbj17c3ViamVjdDpuZXcgS24sZXZlbnRSZWY6ZSxldmVudDpyfTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5wdXNoKG4pLG4uc3ViamVjdH19fX0pO3ZhciBSN2UsZHl0PXUoKCk9PntPYWUoKTtfaWUoKTtSN2U9Y2xhc3N7c3RhdGlje2kodGhpcywiT2JzZXJ2YWJsZUludGFrZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zPXtuZXh0OmkoZT0+e30sIm5leHQiKSxjb21wbGV0ZTppKGU9Pnt9LCJjb21wbGV0ZSIpfSx0aGlzLmdlbmVyYXRvcj1udWxsLHRoaXMuYnVmZmVyZWQ9ITEsdGhpcy5wYXlsb2FkQnVmZmVyPVtdLHRoaXMub2JzZXJ2YWJsZT1uZXcgbnIoZT0+e3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5uZXh0PSguLi5yKT0+ZS5uZXh0KHIpLHRoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5jb21wbGV0ZT0oKT0+KHRoaXMuY29tcGxldGVkRGVmZmVyZWQucmVzb2x2ZSgpLGUuY29tcGxldGUoKSl9KSx0aGlzLmNvbXBsZXRlZERlZmZlcmVkPXh0LmRlZmVyKCksdGhpcy5jb21wbGV0ZWQ9dGhpcy5jb21wbGV0ZWREZWZmZXJlZC5wcm9taXNlfXNldE9ic2VydmFibGUoZSl7dGhpcy5vYnNlcnZhYmxlPWV9cHVzaChlKXt0aGlzLmJ1ZmZlcmVkP3RoaXMucGF5bG9hZEJ1ZmZlci5wdXNoKGUpOnRoaXMuaW50ZXJuYWxQdXNoKGUpfXB1c2hNYW55KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMucHVzaChyKX1zZXRHZW5lcmF0b3IoZSl7dGhpcy5nZW5lcmF0b3I9ZX1tYWtlQnVmZmVyZWQoKXt0aGlzLmJ1ZmZlcmVkPSEwfXN1YnNjcmliZSguLi5lKXtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlLnN1YnNjcmliZSguLi5lKX1yZXF1ZXN0KGUpe2lmKGUhPT0wKWZvcihsZXQgcj0wO3IhPT1lO3IrKylpZih0aGlzLnBheWxvYWRCdWZmZXIubGVuZ3RoPjApdGhpcy5pbnRlcm5hbFB1c2godGhpcy5wYXlsb2FkQnVmZmVyLnNoaWZ0KCkpO2Vsc2V7bGV0IGE9dGhpcy5nZW5lcmF0b3IubmV4dCgpO3RoaXMuaW50ZXJuYWxQdXNoKGEudmFsdWUpfX1zaWduYWxDb21wbGV0ZSgpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5jb21wbGV0ZSgpfWludGVybmFsUHVzaChlKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMubmV4dChlKX19fSk7ZnVuY3Rpb24gUmNhKHQpe3JldHVybiBuZXcgbnIoZT0+e2xldCByPWkoKCk9PnQucGF1c2UoKSwicGF1c2VTdHJlYW0iKSxhPWkoKCk9PnByb2Nlc3MubmV4dFRpY2soKCk9PnQucmVzdW1lKCkpLCJyZXN1bWVTdHJlYW0iKSxzPWkobj0+e3IoKSxlLm5leHQobiksYSgpfSwib25EYXRhIik7cmV0dXJuIHQub24oImRhdGEiLHMpLHQub24oImVycm9yIixuPT5lLmVycm9yKG4pKSx0Lm9uKCJlbmQiLCgpPT5lLmNvbXBsZXRlKCkpLHQub24oImNsb3NlIiwoKT0+ZS5jb21wbGV0ZSgpKSwoKT0+e3QucmVtb3ZlTGlzdGVuZXIoImRhdGEiLHMpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixlLmVycm9yKSx0LnJlbW92ZUxpc3RlbmVyKCJlbmQiLGUuY29tcGxldGUpLHQucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixlLmNvbXBsZXRlKX19KX12YXIgdXl0PXUoKCk9PntaZygpO2koUmNhLCJmcm9tU3RyZWFtV2l0aEJhY2twcmVzc3VyZSIpfSk7dmFyIG9hPXt9O1ZlKG9hLHtPYnNlcnZhYmxlSW50YWtlOigpPT5SN2UsT2JzZXJ2YWJsZW1hcDooKT0+TzdlLGZyb21TdHJlYW1XaXRoQmFja3ByZXNzdXJlOigpPT5SY2EscnhqczooKT0+UWd9KTt2YXIgWmM9dSgoKT0+e09hZSgpO2N5dCgpO2R5dCgpO3V5dCgpO19pZSgpfSk7ZnVuY3Rpb24gSGYodCl7cmV0dXJuKGUscik9PnR5cGVvZiByPT0ib2JqZWN0Ij9weXQodCxlLHIpOigoYSxzLG4pPT57bGV0IG89cy5oYXNPd25Qcm9wZXJ0eShuKTtyZXR1cm4gcy5jb25zdHJ1Y3Rvci5jcmVhdGVQcm9wZXJ0eShuLGEpLG8/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLG4pOnZvaWQgMH0pKHQsZSxyKX12YXIgRmNhLHB5dCxUaWU9dSgoKT0+e2ZrKCk7RmNhPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOkFnLHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpwa30scHl0PWkoKHQ9RmNhLGUscik9PntsZXR7a2luZDphLG1ldGFkYXRhOnN9PXIsbj1nbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KHMpO2lmKG49PT12b2lkIDAmJmdsb2JhbFRoaXMubGl0UHJvcGVydHlNZXRhZGF0YS5zZXQocyxuPW5ldyBNYXApLGE9PT0ic2V0dGVyIiYmKCh0PU9iamVjdC5jcmVhdGUodCkpLndyYXBwZWQ9ITApLG4uc2V0KHIubmFtZSx0KSxhPT09ImFjY2Vzc29yIil7bGV0e25hbWU6b309cjtyZXR1cm57c2V0KGwpe2xldCBjPWUuZ2V0LmNhbGwodGhpcyk7ZS5zZXQuY2FsbCh0aGlzLGwpLHRoaXMucmVxdWVzdFVwZGF0ZShvLGMsdCwhMCxsKX0saW5pdChsKXtyZXR1cm4gbCE9PXZvaWQgMCYmdGhpcy5DKG8sdm9pZCAwLHQsbCksbH19fWlmKGE9PT0ic2V0dGVyIil7bGV0e25hbWU6b309cjtyZXR1cm4gZnVuY3Rpb24obCl7bGV0IGM9dGhpc1tvXTtlLmNhbGwodGhpcyxsKSx0aGlzLnJlcXVlc3RVcGRhdGUobyxjLHQsITAsbCl9fXRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICIrYSl9LCJyIik7aShIZiwibiIpfSk7dmFyIGZ5dD11KCgpPT57VGllKCl9KTt2YXIgaHl0PXUoKCk9Pnt9KTt2YXIgS3Q9e307VmUoS3Qse1RpbWVvdXQ6KCk9PkxpZSxkZWxheUZvcjooKT0+bXl0LGRlbGF5Rm9yUmFuZG9tOigpPT5CY2F9KTt2YXIgbXl0LEJjYSxMaWUsTmQ9dSgoKT0+e0duKCk7bXl0PWkoYXN5bmModCxlLHI9ITEpPT4oYXdhaXQgbmV3IExpZSh0LG51bGwscikucHJvbWlzZSxlKSwiZGVsYXlGb3IiKSxCY2E9aShhc3luYyh0LGUscixhPSExKT0+KGF3YWl0IG15dChNYXRoLnJhbmRvbSgpKihlLXQpK3QsbnVsbCxhKSxyKSwiZGVsYXlGb3JSYW5kb20iKSxMaWU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGltZW91dCIpfWNvbnN0cnVjdG9yKGUscixhPSExKXt0aGlzLl9jYW5jZWxsZWQ9ITEsdGhpcy50aW1lb3V0SW5NaWxsaXM9ZSx0aGlzLl9kZWZlcnJlZD1SMygpLHRoaXMucHJvbWlzZT10aGlzLl9kZWZlcnJlZC5wcm9taXNlLHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbmNlbGxlZHx8dGhpcy5fZGVmZXJyZWQucmVzb2x2ZShyKX0sZSksdGhpcy5zdGFydGVkPURhdGUubm93KCksYSYmdGhpcy5tYWtlVW5yZWZlZCgpfW1ha2VVbnJlZmVkKCl7dGhpcy5fdGltZW91dC51bnJlZj8uKCl9Y2FuY2VsKCl7dGhpcy5fY2FuY2VsbGVkPSEwLGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KX1nZXRUaW1lTGVmdCgpe2xldCBlPXRoaXMuc3RhcnRlZCt0aGlzLnRpbWVvdXRJbk1pbGxpcy1EYXRlLm5vdygpO3JldHVybiBlPjA/ZTowfX19KTt2YXIgU2w9e307dmFyIHFmPXUoKCk9Pnt9KTtmdW5jdGlvbiBWZih0KXtpZih0eXBlb2YgdCE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBzdHJpbmciKTtyZXR1cm4gdC5yZXBsYWNlKC9bfFxce30oKVtcXV4kKyo/Ll0vZywiXFwkJiIpLnJlcGxhY2UoLy0vZywiXFx4MmQiKX12YXIgRGllPXUoKCk9PntpKFZmLCJlc2NhcGVTdHJpbmdSZWdleHAiKX0pO3ZhciBJaz17fTtWZShJayx7aXNNYXRjaDooKT0+VmNhLG1hdGNoZXI6KCk9PnFjYX0pO2Z1bmN0aW9uIHFjYSh0LGUscil7cmV0dXJuIGJ5dCh0LGUsciwhMSl9ZnVuY3Rpb24gVmNhKHQsZSxyKXtyZXR1cm4gYnl0KHQsZSxyLCEwKS5sZW5ndGg+MH12YXIgRjdlLGd5dCxIY2EsYnl0LHh5dD11KCgpPT57RGllKCk7RjdlPW5ldyBNYXAsZ3l0PWkoKHQsZSk9PntpZighQXJyYXkuaXNBcnJheSh0KSlzd2l0Y2godHlwZW9mIHQpe2Nhc2Uic3RyaW5nIjp0PVt0XTticmVhaztjYXNlInVuZGVmaW5lZCI6dD1bXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICcke2V9JyB0byBiZSBhIHN0cmluZyBvciBhbiBhcnJheSwgYnV0IGdvdCBhIHR5cGUgb2YgJyR7dHlwZW9mIHR9J2ApfXJldHVybiB0LmZpbHRlcihyPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXtpZih0eXBlb2Ygcj4idSIpcmV0dXJuITE7dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGJlIGFuIGFycmF5IG9mIHN0cmluZ3MsIGJ1dCBmb3VuZCBhIHR5cGUgb2YgJyR7dHlwZW9mIHJ9JyBpbiB0aGUgYXJyYXlgKX1yZXR1cm4hMH0pfSwic2FuaXRpemVBcnJheSIpLEhjYT1pKCh0LGUpPT57ZT17Y2FzZVNlbnNpdGl2ZTohMSwuLi5lfTtsZXQgcj10K0pTT04uc3RyaW5naWZ5KGUpO2lmKEY3ZS5oYXMocikpcmV0dXJuIEY3ZS5nZXQocik7bGV0IGE9dFswXT09PSIhIjthJiYodD10LnNsaWNlKDEpKSx0PVZmKHQpLnJlcGxhY2UoL1xcXCovZywiW1xcc1xcU10qIik7bGV0IHM9bmV3IFJlZ0V4cChgXiR7dH0kYCxlLmNhc2VTZW5zaXRpdmU/IiI6ImkiKTtyZXR1cm4gcy5uZWdhdGVkPWEsRjdlLnNldChyLHMpLHN9LCJtYWtlUmVnZXhwIiksYnl0PWkoKHQsZSxyLGEpPT57aWYodD1neXQodCwiaW5wdXRzIiksZT1neXQoZSwicGF0dGVybnMiKSxlLmxlbmd0aD09PTApcmV0dXJuW107ZT1lLm1hcChvPT5IY2EobyxyKSk7bGV0e2FsbFBhdHRlcm5zOnN9PXJ8fHt9LG49W107Zm9yKGxldCBvIG9mIHQpe2xldCBsLGM9Wy4uLmVdLmZpbGwoITEpO2ZvcihsZXRbZCxmXW9mIGUuZW50cmllcygpKWlmKGYudGVzdChvKSYmKGNbZF09ITAsbD0hZi5uZWdhdGVkLCFsKSlicmVhaztpZighKGw9PT0hMXx8bD09PXZvaWQgMCYmZS5zb21lKGQ9PiFkLm5lZ2F0ZWQpfHxzJiZjLnNvbWUoKGQsZik9PiFkJiYhZVtmXS5uZWdhdGVkKSkmJihuLnB1c2gobyksYSkpYnJlYWt9cmV0dXJuIG59LCJiYXNlTWF0Y2hlciIpO2kocWNhLCJtYXRjaGVyIik7aShWY2EsImlzTWF0Y2giKX0pO3ZhciB2eXQ9dSgoKT0+e3h5dCgpfSk7dmFyIFBrPXt9O1ZlKFBrLHtTbWFydE1hdGNoOigpPT5CN2V9KTt2YXIgQjdlLHl5dD11KCgpPT57dnl0KCk7QjdlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNtYXJ0TWF0Y2giKX1jb25zdHJ1Y3RvcihlKXt0aGlzLndpbGRjYXJkPWV9bWF0Y2goZSl7cmV0dXJuIElrLmlzTWF0Y2goZSx0aGlzLndpbGRjYXJkKX19fSk7dmFyIEZrPXt9O1ZlKEZrLHtDcm9uOigpPT56eXQsQ3JvbkRhdGU6KCk9Pk9zLENyb25QYXR0ZXJuOigpPT4kaWUsc2NoZWR1bGVkSm9iczooKT0+WGd9KTtmdW5jdGlvbiBOayh0KXtyZXR1cm4gRGF0ZS5VVEModC55LHQubS0xLHQuZCx0LmgsdC5pLHQucyl9ZnVuY3Rpb24gSDdlKHQsZSl7cmV0dXJuIHQueT09PWUueSYmdC5tPT09ZS5tJiZ0LmQ9PT1lLmQmJnQuaD09PWUuaCYmdC5pPT09ZS5pJiZ0LnM9PT1lLnN9ZnVuY3Rpb24gVWNhKHQsZSl7bGV0IHI9bmV3IERhdGUoRGF0ZS5wYXJzZSh0KSk7aWYoaXNOYU4ocikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIElTTzg2MDEgcGFzc2VkIHRvIHRpbWV6b25lIHBhcnNlci4iKTtsZXQgYT10LnN1YnN0cmluZyg5KTtyZXR1cm4gYS5pbmNsdWRlcygiWiIpfHxhLmluY2x1ZGVzKCIrIil8fGEuaW5jbHVkZXMoIi0iKT9xN2Uoci5nZXRVVENGdWxsWWVhcigpLHIuZ2V0VVRDTW9udGgoKSsxLHIuZ2V0VVRDRGF0ZSgpLHIuZ2V0VVRDSG91cnMoKSxyLmdldFVUQ01pbnV0ZXMoKSxyLmdldFVUQ1NlY29uZHMoKSwiRXRjL1VUQyIpOnE3ZShyLmdldEZ1bGxZZWFyKCksci5nZXRNb250aCgpKzEsci5nZXREYXRlKCksci5nZXRIb3VycygpLHIuZ2V0TWludXRlcygpLHIuZ2V0U2Vjb25kcygpLGUpfWZ1bmN0aW9uIHd5dCh0LGUscil7cmV0dXJuIGt5dChVY2EodCxlKSxyKX1mdW5jdGlvbiBreXQodCxlKXtsZXQgcj1uZXcgRGF0ZShOayh0KSksYT1PayhyLHQudHopLHM9TmsodCksbj1OayhhKSxvPXMtbixsPW5ldyBEYXRlKHIuZ2V0VGltZSgpK28pLGM9T2sobCx0LnR6KTtpZihIN2UoYyx0KSl7bGV0IHA9bmV3IERhdGUobC5nZXRUaW1lKCktMzZlNSksaD1PayhwLHQudHopO3JldHVybiBIN2UoaCx0KT9wOmx9bGV0IGQ9bmV3IERhdGUobC5nZXRUaW1lKCkrTmsodCktTmsoYykpLGY9T2soZCx0LnR6KTtpZihIN2UoZix0KSlyZXR1cm4gZDtpZihlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBkYXRlIHBhc3NlZCB0byBmcm9tVFooKSIpO3JldHVybiBsLmdldFRpbWUoKT5kLmdldFRpbWUoKT9sOmR9ZnVuY3Rpb24gT2sodCxlKXtsZXQgcixhO3RyeXtyPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIse3RpbWVab25lOmUseWVhcjoibnVtZXJpYyIsbW9udGg6Im51bWVyaWMiLGRheToibnVtZXJpYyIsaG91cjoibnVtZXJpYyIsbWludXRlOiJudW1lcmljIixzZWNvbmQ6Im51bWVyaWMiLGhvdXIxMjohMX0pLGE9ci5mb3JtYXRUb1BhcnRzKHQpfWNhdGNoKG4pe2xldCBvPW4gaW5zdGFuY2VvZiBFcnJvcj9uLm1lc3NhZ2U6U3RyaW5nKG4pO3Rocm93IG5ldyBSYW5nZUVycm9yKGB0b1RaOiBJbnZhbGlkIHRpbWV6b25lICcke2V9JyBvciBkYXRlLiBQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIElBTkEgdGltZXpvbmUgKGUuZy4sICdBbWVyaWNhL05ld19Zb3JrJywgJ0V1cm9wZS9TdG9ja2hvbG0nKS4gT3JpZ2luYWwgZXJyb3I6ICR7b31gKX1sZXQgcz17eWVhcjowLG1vbnRoOjAsZGF5OjAsaG91cjowLG1pbnV0ZTowLHNlY29uZDowfTtmb3IobGV0IG4gb2YgYSkobi50eXBlPT09InllYXIifHxuLnR5cGU9PT0ibW9udGgifHxuLnR5cGU9PT0iZGF5Inx8bi50eXBlPT09ImhvdXIifHxuLnR5cGU9PT0ibWludXRlInx8bi50eXBlPT09InNlY29uZCIpJiYoc1tuLnR5cGVdPXBhcnNlSW50KG4udmFsdWUsMTApKTtpZihpc05hTihzLnllYXIpfHxpc05hTihzLm1vbnRoKXx8aXNOYU4ocy5kYXkpfHxpc05hTihzLmhvdXIpfHxpc05hTihzLm1pbnV0ZSl8fGlzTmFOKHMuc2Vjb25kKSl0aHJvdyBuZXcgRXJyb3IoYHRvVFo6IEZhaWxlZCB0byBwYXJzZSBhbGwgZGF0ZSBjb21wb25lbnRzIGZyb20gdGltZXpvbmUgJyR7ZX0nLiBUaGlzIG1heSBpbmRpY2F0ZSBhbiBpbnZhbGlkIGRhdGUgb3IgdGltZXpvbmUgY29uZmlndXJhdGlvbi4gUGFyc2VkIGNvbXBvbmVudHM6ICR7SlNPTi5zdHJpbmdpZnkocyl9YCk7cmV0dXJuIHMuaG91cj09PTI0JiYocy5ob3VyPTApLHt5OnMueWVhcixtOnMubW9udGgsZDpzLmRheSxoOnMuaG91cixpOnMubWludXRlLHM6cy5zZWNvbmQsdHo6ZX19ZnVuY3Rpb24gcTdlKHQsZSxyLGEscyxuLG8pe3JldHVybnt5OnQsbTplLGQ6cixoOmEsaTpzLHM6bix0ejpvfX1mdW5jdGlvbiBXY2EodCl7aWYodD09PXZvaWQgMCYmKHQ9e30pLGRlbGV0ZSB0Lm5hbWUsdC5sZWdhY3lNb2RlIT09dm9pZCAwJiZ0LmRvbUFuZERvdz09PXZvaWQgMD90LmRvbUFuZERvdz0hdC5sZWdhY3lNb2RlOnQuZG9tQW5kRG93PT09dm9pZCAwJiYodC5kb21BbmREb3c9ITEpLHQubGVnYWN5TW9kZT0hdC5kb21BbmREb3csdC5wYXVzZWQ9dC5wYXVzZWQ9PT12b2lkIDA/ITE6dC5wYXVzZWQsdC5tYXhSdW5zPXQubWF4UnVucz09PXZvaWQgMD8xLzA6dC5tYXhSdW5zLHQuY2F0Y2g9dC5jYXRjaD09PXZvaWQgMD8hMTp0LmNhdGNoLHQuaW50ZXJ2YWw9dC5pbnRlcnZhbD09PXZvaWQgMD8wOnBhcnNlSW50KHQuaW50ZXJ2YWwudG9TdHJpbmcoKSwxMCksdC51dGNPZmZzZXQ9dC51dGNPZmZzZXQ9PT12b2lkIDA/dm9pZCAwOnBhcnNlSW50KHQudXRjT2Zmc2V0LnRvU3RyaW5nKCksMTApLHQuZGF5T2Zmc2V0PXQuZGF5T2Zmc2V0PT09dm9pZCAwPzA6cGFyc2VJbnQodC5kYXlPZmZzZXQudG9TdHJpbmcoKSwxMCksdC51bnJlZj10LnVucmVmPT09dm9pZCAwPyExOnQudW5yZWYsdC5tb2RlPXQubW9kZT09PXZvaWQgMD8iYXV0byI6dC5tb2RlLHQuYWx0ZXJuYXRpdmVXZWVrZGF5cz10LmFsdGVybmF0aXZlV2Vla2RheXM9PT12b2lkIDA/ITE6dC5hbHRlcm5hdGl2ZVdlZWtkYXlzLHQuc2xvcHB5UmFuZ2VzPXQuc2xvcHB5UmFuZ2VzPT09dm9pZCAwPyExOnQuc2xvcHB5UmFuZ2VzLCFbImF1dG8iLCI1LXBhcnQiLCI2LXBhcnQiLCI3LXBhcnQiLCI1LW9yLTYtcGFydHMiLCI2LW9yLTctcGFydHMiXS5pbmNsdWRlcyh0Lm1vZGUpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IG1vZGUgbXVzdCBiZSBvbmUgb2YgJ2F1dG8nLCAnNS1wYXJ0JywgJzYtcGFydCcsICc3LXBhcnQnLCAnNS1vci02LXBhcnRzJywgb3IgJzYtb3ItNy1wYXJ0cycuIik7aWYodC5zdGFydEF0JiYodC5zdGFydEF0PW5ldyBPcyh0LnN0YXJ0QXQsdC50aW1lem9uZSkpLHQuc3RvcEF0JiYodC5zdG9wQXQ9bmV3IE9zKHQuc3RvcEF0LHQudGltZXpvbmUpKSx0LmludGVydmFsIT09bnVsbCl7aWYoaXNOYU4odC5pbnRlcnZhbCkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogU3VwcGxpZWQgdmFsdWUgZm9yIGludGVydmFsIGlzIG5vdCBhIG51bWJlciIpO2lmKHQuaW50ZXJ2YWw8MCl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBTdXBwbGllZCB2YWx1ZSBmb3IgaW50ZXJ2YWwgY2FuIG5vdCBiZSBuZWdhdGl2ZSIpfWlmKHQudXRjT2Zmc2V0IT09dm9pZCAwKXtpZihpc05hTih0LnV0Y09mZnNldCkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogSW52YWxpZCB2YWx1ZSBwYXNzZWQgZm9yIHV0Y09mZnNldCwgc2hvdWxkIGJlIG51bWJlciByZXByZXNlbnRpbmcgbWludXRlcyBvZmZzZXQgZnJvbSBVVEMuIik7aWYodC51dGNPZmZzZXQ8LTg3MHx8dC51dGNPZmZzZXQ+ODcwKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IHV0Y09mZnNldCBvdXQgb2YgYm91bmRzLiIpO2lmKHQudXRjT2Zmc2V0IT09dm9pZCAwJiZ0LnRpbWV6b25lKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IENvbWJpbmluZyAndXRjT2Zmc2V0JyB3aXRoICd0aW1lem9uZScgaXMgbm90IGFsbG93ZWQuIil9aWYodC51bnJlZiE9PSEwJiZ0LnVucmVmIT09ITEpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogVW5yZWYgc2hvdWxkIGJlIGVpdGhlciB0cnVlLCBmYWxzZSBvciB1bmRlZmluZWQoZmFsc2UpLiIpO2lmKHQuZGF5T2Zmc2V0IT09dm9pZCAwJiZ0LmRheU9mZnNldCE9PTAmJmlzTmFOKHQuZGF5T2Zmc2V0KSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCBmb3IgZGF5T2Zmc2V0LCBzaG91bGQgYmUgYSBudW1iZXIgcmVwcmVzZW50aW5nIGRheXMgdG8gb2Zmc2V0LiIpO3JldHVybiB0fWZ1bmN0aW9uIFJrKHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk9PT0iW29iamVjdCBGdW5jdGlvbl0ifHx0eXBlb2YgdD09ImZ1bmN0aW9uInx8dCBpbnN0YW5jZW9mIEZ1bmN0aW9ufWZ1bmN0aW9uIEdjYSh0KXtyZXR1cm4gUmsodCl9ZnVuY3Rpb24gWWNhKHQpe3R5cGVvZiBEZW5vPCJ1IiYmdHlwZW9mIERlbm8udW5yZWZUaW1lcjwidSI/RGVuby51bnJlZlRpbWVyKHQpOnQmJnR5cGVvZiB0LnVucmVmPCJ1IiYmdC51bnJlZigpfXZhciBTeXQsJGllLFY3ZSxzaSxPcyxNeXQsWGcsenl0LF95dD11KCgpPT57aShOaywiVCIpO2koSDdlLCJEIik7aShVY2EsIkEiKTtpKHd5dCwidiIpO2koa3l0LCJrIik7aShPaywiZyIpO2kocTdlLCJiIik7U3l0PVsxLDIsNCw4LDE2XSwkaWU9Y2xhc3N7c3RhdGlje2kodGhpcywiQyIpfXBhdHRlcm47dGltZXpvbmU7bW9kZTthbHRlcm5hdGl2ZVdlZWtkYXlzO3Nsb3BweVJhbmdlcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO2RheU9mV2Vlazt5ZWFyO2xhc3REYXlPZk1vbnRoO2xhc3RXZWVrZGF5O25lYXJlc3RXZWVrZGF5cztzdGFyRE9NO3N0YXJET1c7c3RhclllYXI7dXNlQW5kTG9naWM7Y29uc3RydWN0b3IodCxlLHIpe3RoaXMucGF0dGVybj10LHRoaXMudGltZXpvbmU9ZSx0aGlzLm1vZGU9cj8ubW9kZT8/ImF1dG8iLHRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz1yPy5hbHRlcm5hdGl2ZVdlZWtkYXlzPz8hMSx0aGlzLnNsb3BweVJhbmdlcz1yPy5zbG9wcHlSYW5nZXM/PyExLHRoaXMuc2Vjb25kPUFycmF5KDYwKS5maWxsKDApLHRoaXMubWludXRlPUFycmF5KDYwKS5maWxsKDApLHRoaXMuaG91cj1BcnJheSgyNCkuZmlsbCgwKSx0aGlzLmRheT1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLm1vbnRoPUFycmF5KDEyKS5maWxsKDApLHRoaXMuZGF5T2ZXZWVrPUFycmF5KDcpLmZpbGwoMCksdGhpcy55ZWFyPUFycmF5KDFlNCkuZmlsbCgwKSx0aGlzLmxhc3REYXlPZk1vbnRoPSExLHRoaXMubGFzdFdlZWtkYXk9ITEsdGhpcy5uZWFyZXN0V2Vla2RheXM9QXJyYXkoMzEpLmZpbGwoMCksdGhpcy5zdGFyRE9NPSExLHRoaXMuc3RhckRPVz0hMSx0aGlzLnN0YXJZZWFyPSExLHRoaXMudXNlQW5kTG9naWM9ITEsdGhpcy5wYXJzZSgpfXBhcnNlKCl7aWYoISh0eXBlb2YgdGhpcy5wYXR0ZXJuPT0ic3RyaW5nInx8dGhpcy5wYXR0ZXJuIGluc3RhbmNlb2YgU3RyaW5nKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogUGF0dGVybiBoYXMgdG8gYmUgb2YgdHlwZSBzdHJpbmcuIik7dGhpcy5wYXR0ZXJuLmluZGV4T2YoIkAiKT49MCYmKHRoaXMucGF0dGVybj10aGlzLmhhbmRsZU5pY2tuYW1lcyh0aGlzLnBhdHRlcm4pLnRyaW0oKSk7bGV0IHQ9dGhpcy5wYXR0ZXJuLm1hdGNoKC9cUysvZyl8fFsiIl0sZT10Lmxlbmd0aDtpZih0Lmxlbmd0aDw1fHx0Lmxlbmd0aD43KXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBpbnZhbGlkIGNvbmZpZ3VyYXRpb24gZm9ybWF0ICgnIit0aGlzLnBhdHRlcm4rIicpLCBleGFjdGx5IGZpdmUsIHNpeCwgb3Igc2V2ZW4gc3BhY2Ugc2VwYXJhdGVkIHBhcnRzIGFyZSByZXF1aXJlZC4iKTtpZih0aGlzLm1vZGUhPT0iYXV0byIpe2xldCBhO3N3aXRjaCh0aGlzLm1vZGUpe2Nhc2UiNS1wYXJ0IjphPTU7YnJlYWs7Y2FzZSI2LXBhcnQiOmE9NjticmVhaztjYXNlIjctcGFydCI6YT03O2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjphPVs1LDZdO2JyZWFrO2Nhc2UiNi1vci03LXBhcnRzIjphPVs2LDddO2JyZWFrO2RlZmF1bHQ6YT0wfWlmKCEoQXJyYXkuaXNBcnJheShhKT9hLmluY2x1ZGVzKGUpOmU9PT1hKSl7bGV0IHM9QXJyYXkuaXNBcnJheShhKT9hLmpvaW4oIiBvciAiKTphLnRvU3RyaW5nKCk7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvblBhdHRlcm46IG1vZGUgJyR7dGhpcy5tb2RlfScgcmVxdWlyZXMgZXhhY3RseSAke3N9IHBhcnRzLCBidXQgcGF0dGVybiAnJHt0aGlzLnBhdHRlcm59JyBoYXMgJHtlfSBwYXJ0cy5gKX19aWYodC5sZW5ndGg9PT01JiZ0LnVuc2hpZnQoIjAiKSx0Lmxlbmd0aD09PTYmJnQucHVzaCgiKiIpLHRbM10udG9VcHBlckNhc2UoKT09PSJMVyI/KHRoaXMubGFzdFdlZWtkYXk9ITAsdFszXT0iIik6dFszXS50b1VwcGVyQ2FzZSgpLmluZGV4T2YoIkwiKT49MCYmKHRbM109dFszXS5yZXBsYWNlKC9ML2dpLCIiKSx0aGlzLmxhc3REYXlPZk1vbnRoPSEwKSx0WzNdPT0iKiImJih0aGlzLnN0YXJET009ITApLHRbNl09PSIqIiYmKHRoaXMuc3RhclllYXI9ITApLHRbNF0ubGVuZ3RoPj0zJiYodFs0XT10aGlzLnJlcGxhY2VBbHBoYU1vbnRocyh0WzRdKSksdFs1XS5sZW5ndGg+PTMmJih0WzVdPXRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz90aGlzLnJlcGxhY2VBbHBoYURheXNRdWFydHoodFs1XSk6dGhpcy5yZXBsYWNlQWxwaGFEYXlzKHRbNV0pKSx0WzVdLnN0YXJ0c1dpdGgoIisiKSYmKHRoaXMudXNlQW5kTG9naWM9ITAsdFs1XT10WzVdLnN1YnN0cmluZygxKSx0WzVdPT09IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBEYXktb2Ytd2VlayBmaWVsZCBjYW5ub3QgYmUgZW1wdHkgYWZ0ZXIgJysnIG1vZGlmaWVyLiIpO3N3aXRjaCh0WzVdPT0iKiImJih0aGlzLnN0YXJET1c9ITApLHRoaXMucGF0dGVybi5pbmRleE9mKCI/Iik+PTAmJih0WzBdPXRbMF0ucmVwbGFjZSgvXD8vZywiKiIpLHRbMV09dFsxXS5yZXBsYWNlKC9cPy9nLCIqIiksdFsyXT10WzJdLnJlcGxhY2UoL1w/L2csIioiKSx0WzNdPXRbM10ucmVwbGFjZSgvXD8vZywiKiIpLHRbNF09dFs0XS5yZXBsYWNlKC9cPy9nLCIqIiksdFs1XT10WzVdLnJlcGxhY2UoL1w/L2csIioiKSx0WzZdJiYodFs2XT10WzZdLnJlcGxhY2UoL1w/L2csIioiKSkpLHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOnRbMF09IjAiLHRbNl09IioiO2JyZWFrO2Nhc2UiNi1wYXJ0Ijp0WzZdPSIqIjticmVhaztjYXNlIjUtb3ItNi1wYXJ0cyI6dFs2XT0iKiI7YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmJyZWFrO2Nhc2UiNy1wYXJ0IjpjYXNlImF1dG8iOmJyZWFrfXRoaXMudGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKHQpLHRoaXMucGFydFRvQXJyYXkoInNlY29uZCIsdFswXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoIm1pbnV0ZSIsdFsxXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImhvdXIiLHRbMl0sMCwxKSx0aGlzLnBhcnRUb0FycmF5KCJkYXkiLHRbM10sLTEsMSksdGhpcy5wYXJ0VG9BcnJheSgibW9udGgiLHRbNF0sLTEsMSk7bGV0IHI9dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPy0xOjA7dGhpcy5wYXJ0VG9BcnJheSgiZGF5T2ZXZWVrIix0WzVdLHIsNjMpLHRoaXMucGFydFRvQXJyYXkoInllYXIiLHRbNl0sMCwxKSwhdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzJiZ0aGlzLmRheU9mV2Vla1s3XSYmKHRoaXMuZGF5T2ZXZWVrWzBdPXRoaXMuZGF5T2ZXZWVrWzddKX1wYXJ0VG9BcnJheSh0LGUscixhKXtsZXQgcz10aGlzW3RdLG49dD09PSJkYXkiJiZ0aGlzLmxhc3REYXlPZk1vbnRoLG89dD09PSJkYXkiJiZ0aGlzLmxhc3RXZWVrZGF5O2lmKGU9PT0iIiYmIW4mJiFvKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrdCsiICgiK2UrIikgaXMgZW1wdHksIGNoZWNrIGZvciB0cmFpbGluZyBzcGFjZXMuIik7aWYoZT09PSIqIilyZXR1cm4gcy5maWxsKGEpO2xldCBsPWUuc3BsaXQoIiwiKTtpZihsLmxlbmd0aD4xKWZvcihsZXQgYz0wO2M8bC5sZW5ndGg7YysrKXRoaXMucGFydFRvQXJyYXkodCxsW2NdLHIsYSk7ZWxzZSBlLmluZGV4T2YoIi0iKSE9PS0xJiZlLmluZGV4T2YoIi8iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcoZSx0LHIsYSk6ZS5pbmRleE9mKCItIikhPT0tMT90aGlzLmhhbmRsZVJhbmdlKGUsdCxyLGEpOmUuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVTdGVwcGluZyhlLHQscixhKTplIT09IiImJnRoaXMuaGFuZGxlTnVtYmVyKGUsdCxyLGEpfXRocm93QXRJbGxlZ2FsQ2hhcmFjdGVycyh0KXtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpZigoZT09PTM/L1teLyowLTksXC1Xd0xsXSsvOmU9PT01Py9bXi8qMC05LFwtI0xsXSsvOi9bXi8qMC05LFwtXSsvKS50ZXN0KHRbZV0pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrZSsiICgiK3RbZV0rIikgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLiIpfWhhbmRsZU51bWJlcih0LGUscixhKXtsZXQgcz10aGlzLmV4dHJhY3ROdGgodCxlKSxuPXQudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpO2lmKGUhPT0iZGF5IiYmbil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogTmVhcmVzdCB3ZWVrZGF5IG1vZGlmaWVyIChXKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLW1vbnRoLiIpO24mJihlPSJuZWFyZXN0V2Vla2RheXMiKTtsZXQgbz1wYXJzZUludChzWzBdLDEwKStyO2lmKGlzTmFOKG8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiAiK2UrIiBpcyBub3QgYSBudW1iZXI6ICciK3QrIiciKTt0aGlzLnNldFBhcnQoZSxvLHNbMV18fGEpfXNldFBhcnQodCxlLHIpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcyx0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCBwYXJ0IHNwZWNpZmllZDogIit0KTtpZih0PT09ImRheU9mV2VlayIpe2lmKGU9PT03JiYoZT0wKSxlPDB8fGU+Nil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlazogIitlKTt0aGlzLnNldE50aFdlZWtkYXlPZk1vbnRoKGUscik7cmV0dXJufWlmKHQ9PT0ic2Vjb25kInx8dD09PSJtaW51dGUiKXtpZihlPDB8fGU+PTYwKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIit0KyI6ICIrZSl9ZWxzZSBpZih0PT09ImhvdXIiKXtpZihlPDB8fGU+PTI0KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIit0KyI6ICIrZSl9ZWxzZSBpZih0PT09ImRheSJ8fHQ9PT0ibmVhcmVzdFdlZWtkYXlzIil7aWYoZTwwfHxlPj0zMSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UpfWVsc2UgaWYodD09PSJtb250aCIpe2lmKGU8MHx8ZT49MTIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKX1lbHNlIGlmKHQ9PT0ieWVhciImJihlPDF8fGU+PTFlNCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKyIgKHN1cHBvcnRlZCByYW5nZTogMS05OTk5KSIpO3RoaXNbdF1bZV09cn12YWxpZGF0ZU5vdE5hTih0LGUpe2lmKGlzTmFOKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoZSl9dmFsaWRhdGVSYW5nZSh0LGUscixhLHMpe2lmKHQ+ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogRnJvbSB2YWx1ZSBpcyBsYXJnZXIgdGhhbiB0byB2YWx1ZTogJyIrcysiJyIpO2lmKHIhPT12b2lkIDApe2lmKHI9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6IDAiKTtpZihyPnRoaXNbYV0ubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4aW11bSB2YWx1ZSBvZiBwYXJ0ICgiK3RoaXNbYV0ubGVuZ3RoKyIpIil9fWhhbmRsZVJhbmdlV2l0aFN0ZXBwaW5nKHQsZSxyLGEpe2lmKHQudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gcmFuZ2VzIHdpdGggc3RlcHBpbmcuIik7bGV0IHM9dGhpcy5leHRyYWN0TnRoKHQsZSksbj1zWzBdLm1hdGNoKC9eKFxkKyktKFxkKylcLyhcZCspJC8pO2lmKG49PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2Ugd2l0aCBzdGVwcGluZzogJyIrdCsiJyIpO2xldFssbyxsLGNdPW4sZD1wYXJzZUludChvLDEwKStyLGY9cGFyc2VJbnQobCwxMCkrcixwPXBhcnNlSW50KGMsMTApO3RoaXMudmFsaWRhdGVOb3ROYU4oZCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4oZiwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4ocCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoZCxmLHAsZSx0KTtmb3IobGV0IGg9ZDtoPD1mO2grPXApdGhpcy5zZXRQYXJ0KGUsaCxzWzFdfHxhKX1leHRyYWN0TnRoKHQsZSl7bGV0IHI9dCxhO2lmKHIuaW5jbHVkZXMoIiMiKSl7aWYoZSE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IG50aCAoIykgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkIik7YT1yLnNwbGl0KCIjIilbMV0scj1yLnNwbGl0KCIjIilbMF19ZWxzZSBpZihyLnRvVXBwZXJDYXNlKCkuZW5kc1dpdGgoIkwiKSl7aWYoZSE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IEwgbW9kaWZpZXIgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkICh1c2UgTCBhbG9uZSBmb3IgZGF5LW9mLW1vbnRoKSIpO2E9IkwiLHI9ci5zbGljZSgwLC0xKX1yZXR1cm5bcixhXX1oYW5kbGVSYW5nZSh0LGUscixhKXtpZih0LnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIGEgcmFuZ2UuIik7bGV0IHM9dGhpcy5leHRyYWN0TnRoKHQsZSksbj1zWzBdLnNwbGl0KCItIik7aWYobi5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2U6ICciK3QrIiciKTtsZXQgbz1wYXJzZUludChuWzBdLDEwKStyLGw9cGFyc2VJbnQoblsxXSwxMCkrcjt0aGlzLnZhbGlkYXRlTm90TmFOKG8sIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgbG93ZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlTm90TmFOKGwsIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgdXBwZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UobyxsLHZvaWQgMCxlLHQpO2ZvcihsZXQgYz1vO2M8PWw7YysrKXRoaXMuc2V0UGFydChlLGMsc1sxXXx8YSl9aGFuZGxlU3RlcHBpbmcodCxlLHIsYSl7aWYodC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiBwYXJ0cyB3aXRoIHN0ZXBwaW5nLiIpO2xldCBzPXRoaXMuZXh0cmFjdE50aCh0LGUpLG49c1swXS5zcGxpdCgiLyIpO2lmKG4ubGVuZ3RoIT09Mil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAnIit0KyInIik7aWYodGhpcy5zbG9wcHlSYW5nZXMpblswXT09PSIiJiYoblswXT0iKiIpO2Vsc2V7aWYoblswXT09PSIiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbWlzc2luZyBwcmVmaXggKCciK3QrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKTtpZihuWzBdIT09IioiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbnVtZXJpYyBwcmVmaXggKCciK3QrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKX1sZXQgbz0wO25bMF0hPT0iKiImJihvPXBhcnNlSW50KG5bMF0sMTApK3IpO2xldCBsPXBhcnNlSW50KG5bMV0sMTApO3RoaXMudmFsaWRhdGVOb3ROYU4obCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoMCx0aGlzW2VdLmxlbmd0aC0xLGwsZSx0KTtmb3IobGV0IGM9bztjPHRoaXNbZV0ubGVuZ3RoO2MrPWwpdGhpcy5zZXRQYXJ0KGUsYyxzWzFdfHxhKX1yZXBsYWNlQWxwaGFEYXlzKHQpe3JldHVybiB0LnJlcGxhY2UoLy1zdW4vZ2ksIi03IikucmVwbGFjZSgvc3VuL2dpLCIwIikucmVwbGFjZSgvbW9uL2dpLCIxIikucmVwbGFjZSgvdHVlL2dpLCIyIikucmVwbGFjZSgvd2VkL2dpLCIzIikucmVwbGFjZSgvdGh1L2dpLCI0IikucmVwbGFjZSgvZnJpL2dpLCI1IikucmVwbGFjZSgvc2F0L2dpLCI2Iil9cmVwbGFjZUFscGhhRGF5c1F1YXJ0eih0KXtyZXR1cm4gdC5yZXBsYWNlKC9zdW4vZ2ksIjEiKS5yZXBsYWNlKC9tb24vZ2ksIjIiKS5yZXBsYWNlKC90dWUvZ2ksIjMiKS5yZXBsYWNlKC93ZWQvZ2ksIjQiKS5yZXBsYWNlKC90aHUvZ2ksIjUiKS5yZXBsYWNlKC9mcmkvZ2ksIjYiKS5yZXBsYWNlKC9zYXQvZ2ksIjciKX1yZXBsYWNlQWxwaGFNb250aHModCl7cmV0dXJuIHQucmVwbGFjZSgvamFuL2dpLCIxIikucmVwbGFjZSgvZmViL2dpLCIyIikucmVwbGFjZSgvbWFyL2dpLCIzIikucmVwbGFjZSgvYXByL2dpLCI0IikucmVwbGFjZSgvbWF5L2dpLCI1IikucmVwbGFjZSgvanVuL2dpLCI2IikucmVwbGFjZSgvanVsL2dpLCI3IikucmVwbGFjZSgvYXVnL2dpLCI4IikucmVwbGFjZSgvc2VwL2dpLCI5IikucmVwbGFjZSgvb2N0L2dpLCIxMCIpLnJlcGxhY2UoL25vdi9naSwiMTEiKS5yZXBsYWNlKC9kZWMvZ2ksIjEyIil9aGFuZGxlTmlja25hbWVzKHQpe2xldCBlPXQudHJpbSgpLnRvTG93ZXJDYXNlKCk7aWYoZT09PSJAeWVhcmx5Inx8ZT09PSJAYW5udWFsbHkiKXJldHVybiIwIDAgMSAxICoiO2lmKGU9PT0iQG1vbnRobHkiKXJldHVybiIwIDAgMSAqICoiO2lmKGU9PT0iQHdlZWtseSIpcmV0dXJuIjAgMCAqICogMCI7aWYoZT09PSJAZGFpbHkifHxlPT09IkBtaWRuaWdodCIpcmV0dXJuIjAgMCAqICogKiI7aWYoZT09PSJAaG91cmx5IilyZXR1cm4iMCAqICogKiAqIjtpZihlPT09IkByZWJvb3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBAcmVib290IGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBlbnZpcm9ubWVudC4gVGhpcyBpcyBhbiBldmVudC1iYXNlZCB0cmlnZ2VyIHRoYXQgcmVxdWlyZXMgc3lzdGVtIHN0YXJ0dXAgZGV0ZWN0aW9uLiIpO3JldHVybiB0fXNldE50aFdlZWtkYXlPZk1vbnRoKHQsZSl7aWYodHlwZW9mIGUhPSJudW1iZXIiJiZlLnRvVXBwZXJDYXNlKCk9PT0iTCIpdGhpcy5kYXlPZldlZWtbdF09dGhpcy5kYXlPZldlZWtbdF18MzI7ZWxzZSBpZihlPT09NjMpdGhpcy5kYXlPZldlZWtbdF09NjM7ZWxzZSBpZihlPDYmJmU+MCl0aGlzLmRheU9mV2Vla1t0XT10aGlzLmRheU9mV2Vla1t0XXxTeXRbZS0xXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYENyb25QYXR0ZXJuOiBudGggd2Vla2RheSBvdXQgb2YgcmFuZ2UsIHNob3VsZCBiZSAxLTUgb3IgTC4gVmFsdWU6ICR7ZX0sIFR5cGU6ICR7dHlwZW9mIGV9YCl9fSxWN2U9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxzaT1bWyJtb250aCIsInllYXIiLDBdLFsiZGF5IiwibW9udGgiLC0xXSxbImhvdXIiLCJkYXkiLDBdLFsibWludXRlIiwiaG91ciIsMF0sWyJzZWNvbmQiLCJtaW51dGUiLDBdXSxPcz1jbGFzcyBDeXR7c3RhdGlje2kodGhpcywicyIpfXR6O21zO3NlY29uZDttaW51dGU7aG91cjtkYXk7bW9udGg7eWVhcjtjb25zdHJ1Y3RvcihlLHIpe2lmKHRoaXMudHo9cixlJiZlIGluc3RhbmNlb2YgRGF0ZSlpZighaXNOYU4oZSkpdGhpcy5mcm9tRGF0ZShlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25EYXRlOiBJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIENyb25EYXRlIGNvbnN0cnVjdG9yIik7ZWxzZSBpZihlPT1udWxsKXRoaXMuZnJvbURhdGUobmV3IERhdGUpO2Vsc2UgaWYoZSYmdHlwZW9mIGU9PSJzdHJpbmciKXRoaXMuZnJvbVN0cmluZyhlKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBDeXQpdGhpcy5mcm9tQ3JvbkRhdGUoZSk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uRGF0ZTogSW52YWxpZCB0eXBlICgiK3R5cGVvZiBlKyIpIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvciIpfWdldExhc3REYXlPZk1vbnRoKGUscil7cmV0dXJuIHIhPT0xP1Y3ZVtyXTpuZXcgRGF0ZShEYXRlLlVUQyhlLHIrMSwwKSkuZ2V0VVRDRGF0ZSgpfWdldExhc3RXZWVrZGF5KGUscil7bGV0IGE9dGhpcy5nZXRMYXN0RGF5T2ZNb250aChlLHIpLHM9bmV3IERhdGUoRGF0ZS5VVEMoZSxyLGEpKS5nZXRVVENEYXkoKTtyZXR1cm4gcz09PTA/YS0yOnM9PT02P2EtMTphfWdldE5lYXJlc3RXZWVrZGF5KGUscixhKXtsZXQgcz10aGlzLmdldExhc3REYXlPZk1vbnRoKGUscik7aWYoYT5zKXJldHVybi0xO2xldCBuPW5ldyBEYXRlKERhdGUuVVRDKGUscixhKSkuZ2V0VVRDRGF5KCk7cmV0dXJuIG49PT0wP2E9PT1zP2EtMjphKzE6bj09PTY/YT09PTE/YSsyOmEtMTphfWlzTnRoV2Vla2RheU9mTW9udGgoZSxyLGEscyl7bGV0IG49bmV3IERhdGUoRGF0ZS5VVEMoZSxyLGEpKS5nZXRVVENEYXkoKSxvPTA7Zm9yKGxldCBsPTE7bDw9YTtsKyspbmV3IERhdGUoRGF0ZS5VVEMoZSxyLGwpKS5nZXRVVENEYXkoKT09PW4mJm8rKztpZihzJjYzJiZTeXRbby0xXSZzKXJldHVybiEwO2lmKHMmMzIpe2xldCBsPXRoaXMuZ2V0TGFzdERheU9mTW9udGgoZSxyKTtmb3IobGV0IGM9YSsxO2M8PWw7YysrKWlmKG5ldyBEYXRlKERhdGUuVVRDKGUscixjKSkuZ2V0VVRDRGF5KCk9PT1uKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZyb21EYXRlKGUpe2lmKHRoaXMudHohPT12b2lkIDApaWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXRoaXMubXM9ZS5nZXRVVENNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1lLmdldFVUQ1NlY29uZHMoKSx0aGlzLm1pbnV0ZT1lLmdldFVUQ01pbnV0ZXMoKSt0aGlzLnR6LHRoaXMuaG91cj1lLmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9ZS5nZXRVVENEYXRlKCksdGhpcy5tb250aD1lLmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPWUuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLmFwcGx5KCk7ZWxzZSB0cnl7bGV0IHI9T2soZSx0aGlzLnR6KTt0aGlzLm1zPWUuZ2V0TWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5zLHRoaXMubWludXRlPXIuaSx0aGlzLmhvdXI9ci5oLHRoaXMuZGF5PXIuZCx0aGlzLm1vbnRoPXIubS0xLHRoaXMueWVhcj1yLnl9Y2F0Y2gocil7bGV0IGE9ciBpbnN0YW5jZW9mIEVycm9yP3IubWVzc2FnZTpTdHJpbmcocik7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvbkRhdGU6IEZhaWxlZCB0byBjb252ZXJ0IGRhdGUgdG8gdGltZXpvbmUgJyR7dGhpcy50en0nLiBUaGlzIG1heSBoYXBwZW4gd2l0aCBpbnZhbGlkIHRpbWV6b25lIG5hbWVzIG9yIGRhdGVzLiBPcmlnaW5hbCBlcnJvcjogJHthfWApfWVsc2UgdGhpcy5tcz1lLmdldE1pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0U2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0TWludXRlcygpLHRoaXMuaG91cj1lLmdldEhvdXJzKCksdGhpcy5kYXk9ZS5nZXREYXRlKCksdGhpcy5tb250aD1lLmdldE1vbnRoKCksdGhpcy55ZWFyPWUuZ2V0RnVsbFllYXIoKX1mcm9tQ3JvbkRhdGUoZSl7dGhpcy50ej1lLnR6LHRoaXMueWVhcj1lLnllYXIsdGhpcy5tb250aD1lLm1vbnRoLHRoaXMuZGF5PWUuZGF5LHRoaXMuaG91cj1lLmhvdXIsdGhpcy5taW51dGU9ZS5taW51dGUsdGhpcy5zZWNvbmQ9ZS5zZWNvbmQsdGhpcy5tcz1lLm1zfWFwcGx5KCl7aWYodGhpcy5tb250aD4xMXx8dGhpcy5tb250aDwwfHx0aGlzLmRheT5WN2VbdGhpcy5tb250aF18fHRoaXMuZGF5PDF8fHRoaXMuaG91cj41OXx8dGhpcy5taW51dGU+NTl8fHRoaXMuc2Vjb25kPjU5fHx0aGlzLmhvdXI8MHx8dGhpcy5taW51dGU8MHx8dGhpcy5zZWNvbmQ8MCl7bGV0IGU9bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMubXMpKTtyZXR1cm4gdGhpcy5tcz1lLmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0VVRDTWludXRlcygpLHRoaXMuaG91cj1lLmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9ZS5nZXRVVENEYXRlKCksdGhpcy5tb250aD1lLmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPWUuZ2V0VVRDRnVsbFllYXIoKSwhMH1lbHNlIHJldHVybiExfWZyb21TdHJpbmcoZSl7aWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXtsZXQgcj13eXQoZSk7dGhpcy5tcz1yLmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPXIuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPXIuZ2V0VVRDTWludXRlcygpLHRoaXMuaG91cj1yLmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9ci5nZXRVVENEYXRlKCksdGhpcy5tb250aD1yLmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPXIuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLmFwcGx5KCl9ZWxzZSByZXR1cm4gdGhpcy5mcm9tRGF0ZSh3eXQoZSx0aGlzLnR6KSl9ZmluZE5leHQoZSxyLGEscyl7cmV0dXJuIHRoaXMuX2ZpbmRNYXRjaChlLHIsYSxzLDEpfV9maW5kTWF0Y2goZSxyLGEscyxuKXtsZXQgbz10aGlzW3JdLGw7YS5sYXN0RGF5T2ZNb250aCYmKGw9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCkpO2xldCBjPSFhLnN0YXJET1cmJnI9PSJkYXkiP25ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLDEsMCwwLDAsMCkpLmdldFVUQ0RheSgpOnZvaWQgMCxkPXRoaXNbcl0rcyxmPW49PT0xP3A9PnA8YVtyXS5sZW5ndGg6cD0+cD49MDtmb3IobGV0IHA9ZDtmKHApO3ArPW4pe2xldCBoPWFbcl1bcF07aWYocj09PSJkYXkiJiYhaCl7Zm9yKGxldCBtPTA7bTxhLm5lYXJlc3RXZWVrZGF5cy5sZW5ndGg7bSsrKWlmKGEubmVhcmVzdFdlZWtkYXlzW21dKXtsZXQgdj10aGlzLmdldE5lYXJlc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoLG0tcyk7aWYodj09PS0xKWNvbnRpbnVlO2lmKHY9PT1wLXMpe2g9MTticmVha319fWlmKHI9PT0iZGF5IiYmYS5sYXN0V2Vla2RheSl7bGV0IG09dGhpcy5nZXRMYXN0V2Vla2RheSh0aGlzLnllYXIsdGhpcy5tb250aCk7cC1zPT09bSYmKGg9MSl9aWYocj09PSJkYXkiJiZhLmxhc3REYXlPZk1vbnRoJiZwLXM9PWwmJihoPTEpLHI9PT0iZGF5IiYmIWEuc3RhckRPVyl7bGV0IG09YS5kYXlPZldlZWtbKGMrKHAtcy0xKSklN107aWYobSYmbSY2MyltPXRoaXMuaXNOdGhXZWVrZGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCxwLXMsbSk/MTowO2Vsc2UgaWYobSl0aHJvdyBuZXcgRXJyb3IoYENyb25EYXRlOiBJbnZhbGlkIHZhbHVlIGZvciBkYXlPZldlZWsgZW5jb3VudGVyZWQuICR7bX1gKTthLnVzZUFuZExvZ2ljP2g9aCYmbTohZS5kb21BbmREb3cmJiFhLnN0YXJET00/aD1ofHxtOmg9aCYmbX1pZihoKXJldHVybiB0aGlzW3JdPXAtcyxvIT09dGhpc1tyXT8yOjF9cmV0dXJuIDN9cmVjdXJzZShlLHIsYSl7aWYoYT09PTAmJiFlLnN0YXJZZWFyKXtpZih0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTApe2xldCBuPS0xO2ZvcihsZXQgbz10aGlzLnllYXIrMTtvPGUueWVhci5sZW5ndGgmJm88MWU0O28rKylpZihlLnllYXJbb109PT0xKXtuPW87YnJlYWt9aWYobj09PS0xKXJldHVybiBudWxsO3RoaXMueWVhcj1uLHRoaXMubW9udGg9MCx0aGlzLmRheT0xLHRoaXMuaG91cj0wLHRoaXMubWludXRlPTAsdGhpcy5zZWNvbmQ9MCx0aGlzLm1zPTB9aWYodGhpcy55ZWFyPj0xZTQpcmV0dXJuIG51bGx9bGV0IHM9dGhpcy5maW5kTmV4dChyLHNpW2FdWzBdLGUsc2lbYV1bMl0pO2lmKHM+MSl7bGV0IG49YSsxO2Zvcig7bjxzaS5sZW5ndGg7KXRoaXNbc2lbbl1bMF1dPS1zaVtuXVsyXSxuKys7aWYocz09PTMpe2lmKHRoaXNbc2lbYV1bMV1dKyssdGhpc1tzaVthXVswXV09LXNpW2FdWzJdLHRoaXMuYXBwbHkoKSxhPT09MCYmIWUuc3RhclllYXIpe2Zvcig7dGhpcy55ZWFyPj0wJiZ0aGlzLnllYXI8ZS55ZWFyLmxlbmd0aCYmZS55ZWFyW3RoaXMueWVhcl09PT0wJiZ0aGlzLnllYXI8MWU0Oyl0aGlzLnllYXIrKztpZih0aGlzLnllYXI+PTFlNHx8dGhpcy55ZWFyPj1lLnllYXIubGVuZ3RoKXJldHVybiBudWxsfXJldHVybiB0aGlzLnJlY3Vyc2UoZSxyLDApfWVsc2UgaWYodGhpcy5hcHBseSgpKXJldHVybiB0aGlzLnJlY3Vyc2UoZSxyLGEtMSl9cmV0dXJuIGErPTEsYT49c2kubGVuZ3RoP3RoaXM6KGUuc3RhclllYXI/dGhpcy55ZWFyPj0zZTM6dGhpcy55ZWFyPj0xZTQpP251bGw6dGhpcy5yZWN1cnNlKGUscixhKX1pbmNyZW1lbnQoZSxyLGEpe3JldHVybiB0aGlzLnNlY29uZCs9ci5pbnRlcnZhbCE9PXZvaWQgMCYmci5pbnRlcnZhbD4xJiZhP3IuaW50ZXJ2YWw6MSx0aGlzLm1zPTAsdGhpcy5hcHBseSgpLHRoaXMucmVjdXJzZShlLHIsMCl9ZGVjcmVtZW50KGUscil7cmV0dXJuIHRoaXMuc2Vjb25kLT1yLmludGVydmFsIT09dm9pZCAwJiZyLmludGVydmFsPjE/ci5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlQmFja3dhcmQoZSxyLDAsMCl9cmVjdXJzZUJhY2t3YXJkKGUscixhLHM9MCl7aWYocz4xZTQpcmV0dXJuIG51bGw7aWYoYT09PTAmJiFlLnN0YXJZZWFyKXtpZih0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTApe2xldCBvPS0xO2ZvcihsZXQgbD10aGlzLnllYXItMTtsPj0wO2wtLSlpZihlLnllYXJbbF09PT0xKXtvPWw7YnJlYWt9aWYobz09PS0xKXJldHVybiBudWxsO3RoaXMueWVhcj1vLHRoaXMubW9udGg9MTEsdGhpcy5kYXk9MzEsdGhpcy5ob3VyPTIzLHRoaXMubWludXRlPTU5LHRoaXMuc2Vjb25kPTU5LHRoaXMubXM9MH1pZih0aGlzLnllYXI8MClyZXR1cm4gbnVsbH1sZXQgbj10aGlzLmZpbmRQcmV2aW91cyhyLHNpW2FdWzBdLGUsc2lbYV1bMl0pO2lmKG4+MSl7bGV0IG89YSsxO2Zvcig7bzxzaS5sZW5ndGg7KXtsZXQgbD1zaVtvXVswXSxjPXNpW29dWzJdLGQ9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUobCxlLGMpO3RoaXNbbF09ZCxvKyt9aWYobj09PTMpe2lmKHRoaXNbc2lbYV1bMV1dLS0sYT09PTApe2xldCBmPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO3RoaXMuZGF5PmYmJih0aGlzLmRheT1mKX1pZihhPT09MSlpZih0aGlzLmRheTw9MCl0aGlzLmRheT0xO2Vsc2V7bGV0IGY9dGhpcy55ZWFyLHA9dGhpcy5tb250aDtmb3IoO3A8MDspcCs9MTIsZi0tO2Zvcig7cD4xMTspcC09MTIsZisrO2xldCBoPXAhPT0xP1Y3ZVtwXTpuZXcgRGF0ZShEYXRlLlVUQyhmLHArMSwwKSkuZ2V0VVRDRGF0ZSgpO3RoaXMuZGF5PmgmJih0aGlzLmRheT1oKX10aGlzLmFwcGx5KCk7bGV0IGw9c2lbYV1bMF0sYz1zaVthXVsyXSxkPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKGwsZSxjKTtpZihsPT09ImRheSIpe2xldCBmPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO3RoaXNbbF09TWF0aC5taW4oZCxmKX1lbHNlIHRoaXNbbF09ZDtpZih0aGlzLmFwcGx5KCksYT09PTApe2xldCBmPXNpWzFdWzJdLHA9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoImRheSIsZSxmKSxoPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpLG09TWF0aC5taW4ocCxoKTttIT09dGhpcy5kYXkmJih0aGlzLmRheT1tLHRoaXMuaG91cj10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgiaG91ciIsZSxzaVsyXVsyXSksdGhpcy5taW51dGU9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoIm1pbnV0ZSIsZSxzaVszXVsyXSksdGhpcy5zZWNvbmQ9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoInNlY29uZCIsZSxzaVs0XVsyXSkpfWlmKGE9PT0wJiYhZS5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTA7KXRoaXMueWVhci0tO2lmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfXJldHVybiB0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHIsMCxzKzEpfWVsc2UgaWYodGhpcy5hcHBseSgpKXJldHVybiB0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHIsYS0xLHMrMSl9cmV0dXJuIGErPTEsYT49c2kubGVuZ3RoP3RoaXM6dGhpcy55ZWFyPDA/bnVsbDp0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHIsYSxzKzEpfWdldE1heFBhdHRlcm5WYWx1ZShlLHIsYSl7aWYoZT09PSJkYXkiJiZyLmxhc3REYXlPZk1vbnRoKXJldHVybiB0aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtpZihlPT09ImRheSImJiFyLnN0YXJET1cpcmV0dXJuIHRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO2ZvcihsZXQgcz1yW2VdLmxlbmd0aC0xO3M+PTA7cy0tKWlmKHJbZV1bc10pcmV0dXJuIHMtYTtyZXR1cm4gcltlXS5sZW5ndGgtMS1hfWZpbmRQcmV2aW91cyhlLHIsYSxzKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKGUscixhLHMsLTEpfWdldERhdGUoZSl7cmV0dXJuIGV8fHRoaXMudHo9PT12b2lkIDA/bmV3IERhdGUodGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMubXMpOnR5cGVvZiB0aGlzLnR6PT0ibnVtYmVyIj9uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUtdGhpcy50eix0aGlzLnNlY29uZCx0aGlzLm1zKSk6a3l0KHE3ZSh0aGlzLnllYXIsdGhpcy5tb250aCsxLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLnR6KSwhMSl9Z2V0VGltZSgpe3JldHVybiB0aGlzLmdldERhdGUoITEpLmdldFRpbWUoKX1tYXRjaChlLHIpe2lmKCFlLnN0YXJZZWFyJiYodGhpcy55ZWFyPDB8fHRoaXMueWVhcj49ZS55ZWFyLmxlbmd0aHx8ZS55ZWFyW3RoaXMueWVhcl09PT0wKSlyZXR1cm4hMTtmb3IobGV0IGE9MDthPHNpLmxlbmd0aDthKyspe2xldCBzPXNpW2FdWzBdLG49c2lbYV1bMl0sbz10aGlzW3NdO2lmKG8rbjwwfHxvK24+PWVbc10ubGVuZ3RoKXJldHVybiExO2xldCBsPWVbc11bbytuXTtpZihzPT09ImRheSIpe2lmKCFsKXtmb3IobGV0IGM9MDtjPGUubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDtjKyspaWYoZS5uZWFyZXN0V2Vla2RheXNbY10pe2xldCBkPXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsYy1uKTtpZihkIT09LTEmJmQ9PT1vKXtsPTE7YnJlYWt9fX1pZihlLmxhc3RXZWVrZGF5KXtsZXQgYz10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtvPT09YyYmKGw9MSl9aWYoZS5sYXN0RGF5T2ZNb250aCl7bGV0IGM9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7bz09PWMmJihsPTEpfWlmKCFlLnN0YXJET1cpe2xldCBjPW5ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLDEsMCwwLDAsMCkpLmdldFVUQ0RheSgpLGQ9ZS5kYXlPZldlZWtbKGMrKG8tMSkpJTddO2QmJmQmNjMmJihkPXRoaXMuaXNOdGhXZWVrZGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCxvLGQpPzE6MCksZS51c2VBbmRMb2dpYz9sPWwmJmQ6IXIuZG9tQW5kRG93JiYhZS5zdGFyRE9NP2w9bHx8ZDpsPWwmJmR9fWlmKCFsKXJldHVybiExfXJldHVybiEwfX07aShXY2EsIlIiKTtpKFJrLCJwIik7aShHY2EsIl8iKTtpKFljYSwieCIpO015dD0zMCoxZTMsWGc9W10senl0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkUiKX1uYW1lO29wdGlvbnM7X3N0YXRlcztmbjtnZXRUeigpe3JldHVybiB0aGlzLm9wdGlvbnMudGltZXpvbmV8fHRoaXMub3B0aW9ucy51dGNPZmZzZXR9YXBwbHlEYXlPZmZzZXQodCl7aWYodGhpcy5vcHRpb25zLmRheU9mZnNldCE9PXZvaWQgMCYmdGhpcy5vcHRpb25zLmRheU9mZnNldCE9PTApe2xldCBlPXRoaXMub3B0aW9ucy5kYXlPZmZzZXQqMjQqNjAqNjAqMWUzO3JldHVybiBuZXcgRGF0ZSh0LmdldFRpbWUoKStlKX1yZXR1cm4gdH1jb25zdHJ1Y3Rvcih0LGUscil7bGV0IGEscztpZihSayhlKSlzPWU7ZWxzZSBpZih0eXBlb2YgZT09Im9iamVjdCIpYT1lO2Vsc2UgaWYoZSE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIkNyb246IEludmFsaWQgYXJndW1lbnQgcGFzc2VkIGZvciBvcHRpb25zSW4uIFNob3VsZCBiZSBvbmUgb2YgZnVuY3Rpb24sIG9yIG9iamVjdCAob3B0aW9ucykuIik7aWYoUmsocikpcz1yO2Vsc2UgaWYodHlwZW9mIHI9PSJvYmplY3QiKWE9cjtlbHNlIGlmKHIhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBmb3IgZnVuY0luLiBTaG91bGQgYmUgb25lIG9mIGZ1bmN0aW9uLCBvciBvYmplY3QgKG9wdGlvbnMpLiIpO2lmKHRoaXMubmFtZT1hPy5uYW1lLHRoaXMub3B0aW9ucz1XY2EoYSksdGhpcy5fc3RhdGVzPXtraWxsOiExLGJsb2NraW5nOiExLHByZXZpb3VzUnVuOnZvaWQgMCxjdXJyZW50UnVuOnZvaWQgMCxvbmNlOnZvaWQgMCxjdXJyZW50VGltZW91dDp2b2lkIDAsbWF4UnVuczphP2EubWF4UnVuczp2b2lkIDAscGF1c2VkOmE/YS5wYXVzZWQ6ITEscGF0dGVybjpuZXcgJGllKCIqICogKiAqICoiLHZvaWQgMCx7bW9kZToiYXV0byJ9KX0sdCYmKHQgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2YgdD09InN0cmluZyImJnQuaW5kZXhPZigiOiIpPjApP3RoaXMuX3N0YXRlcy5vbmNlPW5ldyBPcyh0LHRoaXMuZ2V0VHooKSk6dGhpcy5fc3RhdGVzLnBhdHRlcm49bmV3ICRpZSh0LHRoaXMub3B0aW9ucy50aW1lem9uZSx7bW9kZTp0aGlzLm9wdGlvbnMubW9kZSxhbHRlcm5hdGl2ZVdlZWtkYXlzOnRoaXMub3B0aW9ucy5hbHRlcm5hdGl2ZVdlZWtkYXlzLHNsb3BweVJhbmdlczp0aGlzLm9wdGlvbnMuc2xvcHB5UmFuZ2VzfSksdGhpcy5uYW1lKXtpZihYZy5maW5kKG49Pm4ubmFtZT09PXRoaXMubmFtZSkpdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBUcmllZCB0byBpbml0aWFsaXplIG5ldyBuYW1lZCBqb2IgJyIrdGhpcy5uYW1lKyInLCBidXQgbmFtZSBhbHJlYWR5IHRha2VuLiIpO1hnLnB1c2godGhpcyl9cmV0dXJuIHMhPT12b2lkIDAmJkdjYShzKSYmKHRoaXMuZm49cyx0aGlzLnNjaGVkdWxlKCkpLHRoaXN9bmV4dFJ1bih0KXtsZXQgZT10aGlzLl9uZXh0KHQpO3JldHVybiBlP3RoaXMuYXBwbHlEYXlPZmZzZXQoZS5nZXREYXRlKCExKSk6bnVsbH1uZXh0UnVucyh0LGUpe3RoaXMuX3N0YXRlcy5tYXhSdW5zIT09dm9pZCAwJiZ0PnRoaXMuX3N0YXRlcy5tYXhSdW5zJiYodD10aGlzLl9zdGF0ZXMubWF4UnVucyk7bGV0IHI9ZXx8dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW58fHZvaWQgMDtyZXR1cm4gdGhpcy5fZW51bWVyYXRlUnVucyh0LHIsIm5leHQiKX1wcmV2aW91c1J1bnModCxlKXtyZXR1cm4gdGhpcy5fZW51bWVyYXRlUnVucyh0LGV8fHZvaWQgMCwicHJldmlvdXMiKX1fZW51bWVyYXRlUnVucyh0LGUscil7bGV0IGE9W10scz1lP25ldyBPcyhlLHRoaXMuZ2V0VHooKSk6bnVsbCxuPXI9PT0ibmV4dCI/dGhpcy5fbmV4dDp0aGlzLl9wcmV2aW91cztmb3IoO3QtLTspe2xldCBvPW4uY2FsbCh0aGlzLHMpO2lmKCFvKWJyZWFrO2xldCBsPW8uZ2V0RGF0ZSghMSk7YS5wdXNoKHRoaXMuYXBwbHlEYXlPZmZzZXQobCkpLHM9b31yZXR1cm4gYX1tYXRjaCh0KXtpZih0aGlzLl9zdGF0ZXMub25jZSl7bGV0IHI9bmV3IE9zKHQsdGhpcy5nZXRUeigpKTtyLm1zPTA7bGV0IGE9bmV3IE9zKHRoaXMuX3N0YXRlcy5vbmNlLHRoaXMuZ2V0VHooKSk7cmV0dXJuIGEubXM9MCxyLmdldFRpbWUoKT09PWEuZ2V0VGltZSgpfWxldCBlPW5ldyBPcyh0LHRoaXMuZ2V0VHooKSk7cmV0dXJuIGUubXM9MCxlLm1hdGNoKHRoaXMuX3N0YXRlcy5wYXR0ZXJuLHRoaXMub3B0aW9ucyl9Z2V0UGF0dGVybigpe2lmKCF0aGlzLl9zdGF0ZXMub25jZSlyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdHRlcm4/dGhpcy5fc3RhdGVzLnBhdHRlcm4ucGF0dGVybjp2b2lkIDB9Z2V0T25jZSgpe3JldHVybiB0aGlzLl9zdGF0ZXMub25jZT90aGlzLl9zdGF0ZXMub25jZS5nZXREYXRlKCk6bnVsbH1pc1J1bm5pbmcoKXtsZXQgdD10aGlzLm5leHRSdW4odGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pLGU9IXRoaXMuX3N0YXRlcy5wYXVzZWQscj10aGlzLmZuIT09dm9pZCAwLGE9IXRoaXMuX3N0YXRlcy5raWxsO3JldHVybiBlJiZyJiZhJiZ0IT09bnVsbH1pc1N0b3BwZWQoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmtpbGx9aXNCdXN5KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5ibG9ja2luZ31jdXJyZW50UnVuKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuP3RoaXMuX3N0YXRlcy5jdXJyZW50UnVuLmdldERhdGUoKTpudWxsfXByZXZpb3VzUnVuKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wcmV2aW91c1J1bj90aGlzLl9zdGF0ZXMucHJldmlvdXNSdW4uZ2V0RGF0ZSgpOm51bGx9bXNUb05leHQodCl7bGV0IGU9dGhpcy5fbmV4dCh0KTtyZXR1cm4gZT90IGluc3RhbmNlb2YgT3N8fHQgaW5zdGFuY2VvZiBEYXRlP2UuZ2V0VGltZSgpLXQuZ2V0VGltZSgpOmUuZ2V0VGltZSgpLW5ldyBPcyh0KS5nZXRUaW1lKCk6bnVsbH1zdG9wKCl7dGhpcy5fc3RhdGVzLmtpbGw9ITAsdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0KTtsZXQgdD1YZy5pbmRleE9mKHRoaXMpO3Q+PTAmJlhnLnNwbGljZSh0LDEpfXBhdXNlKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wYXVzZWQ9ITAsIXRoaXMuX3N0YXRlcy5raWxsfXJlc3VtZSgpe3JldHVybiB0aGlzLl9zdGF0ZXMucGF1c2VkPSExLCF0aGlzLl9zdGF0ZXMua2lsbH1zY2hlZHVsZSh0KXtpZih0JiZ0aGlzLmZuKXRocm93IG5ldyBFcnJvcigiQ3JvbjogSXQgaXMgbm90IGFsbG93ZWQgdG8gc2NoZWR1bGUgdHdvIGZ1bmN0aW9ucyB1c2luZyB0aGUgc2FtZSBDcm9uZXIgaW5zdGFuY2UuIik7dCYmKHRoaXMuZm49dCk7bGV0IGU9dGhpcy5tc1RvTmV4dCgpLHI9dGhpcy5uZXh0UnVuKHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuKTtyZXR1cm4gZT09bnVsbHx8aXNOYU4oZSl8fHI9PT1udWxsP3RoaXM6KGU+TXl0JiYoZT1NeXQpLHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dD1zZXRUaW1lb3V0KCgpPT50aGlzLl9jaGVja1RyaWdnZXIociksZSksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0JiZ0aGlzLm9wdGlvbnMudW5yZWYmJlljYSh0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQpLHRoaXMpfWFzeW5jIF90cmlnZ2VyKHQpe3RoaXMuX3N0YXRlcy5ibG9ja2luZz0hMCx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bj1uZXcgT3Modm9pZCAwLHRoaXMuZ2V0VHooKSk7dHJ5e2lmKHRoaXMub3B0aW9ucy5jYXRjaCl0cnl7dGhpcy5mbiE9PXZvaWQgMCYmYXdhaXQgdGhpcy5mbih0aGlzLHRoaXMub3B0aW9ucy5jb250ZXh0KX1jYXRjaChlKXtpZihSayh0aGlzLm9wdGlvbnMuY2F0Y2gpKXRyeXt0aGlzLm9wdGlvbnMuY2F0Y2goZSx0aGlzKX1jYXRjaHt9fWVsc2UgdGhpcy5mbiE9PXZvaWQgMCYmYXdhaXQgdGhpcy5mbih0aGlzLHRoaXMub3B0aW9ucy5jb250ZXh0KX1maW5hbGx5e3RoaXMuX3N0YXRlcy5wcmV2aW91c1J1bj1uZXcgT3ModCx0aGlzLmdldFR6KCkpLHRoaXMuX3N0YXRlcy5ibG9ja2luZz0hMX19YXN5bmMgdHJpZ2dlcigpe2F3YWl0IHRoaXMuX3RyaWdnZXIoKX1ydW5zTGVmdCgpe3JldHVybiB0aGlzLl9zdGF0ZXMubWF4UnVuc31fY2hlY2tUcmlnZ2VyKHQpe2xldCBlPW5ldyBEYXRlLHI9IXRoaXMuX3N0YXRlcy5wYXVzZWQmJmUuZ2V0VGltZSgpPj10LmdldFRpbWUoKSxhPXRoaXMuX3N0YXRlcy5ibG9ja2luZyYmdGhpcy5vcHRpb25zLnByb3RlY3Q7ciYmIWE/KHRoaXMuX3N0YXRlcy5tYXhSdW5zIT09dm9pZCAwJiZ0aGlzLl9zdGF0ZXMubWF4UnVucy0tLHRoaXMuX3RyaWdnZXIoKSk6ciYmYSYmUmsodGhpcy5vcHRpb25zLnByb3RlY3QpJiZzZXRUaW1lb3V0KCgpPT50aGlzLm9wdGlvbnMucHJvdGVjdCh0aGlzKSwwKSx0aGlzLnNjaGVkdWxlKCl9X25leHQodCl7bGV0IGU9ISEodHx8dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pLHI9ITE7IXQmJnRoaXMub3B0aW9ucy5zdGFydEF0JiZ0aGlzLm9wdGlvbnMuaW50ZXJ2YWwmJihbdCxlXT10aGlzLl9jYWxjdWxhdGVQcmV2aW91c1J1bih0LGUpLHI9IXQpLHQ9bmV3IE9zKHQsdGhpcy5nZXRUeigpKSx0aGlzLm9wdGlvbnMuc3RhcnRBdCYmdCYmdC5nZXRUaW1lKCk8dGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpJiYodD10aGlzLm9wdGlvbnMuc3RhcnRBdCk7bGV0IGE9dGhpcy5fc3RhdGVzLm9uY2V8fG5ldyBPcyh0LHRoaXMuZ2V0VHooKSk7cmV0dXJuIXImJmEhPT10aGlzLl9zdGF0ZXMub25jZSYmKGE9YS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLGUpKSx0aGlzLl9zdGF0ZXMub25jZSYmdGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPD10LmdldFRpbWUoKXx8YT09PW51bGx8fHRoaXMuX3N0YXRlcy5tYXhSdW5zIT09dm9pZCAwJiZ0aGlzLl9zdGF0ZXMubWF4UnVuczw9MHx8dGhpcy5fc3RhdGVzLmtpbGx8fHRoaXMub3B0aW9ucy5zdG9wQXQmJmEuZ2V0VGltZSgpPj10aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKT9udWxsOmF9X3ByZXZpb3VzKHQpe2xldCBlPW5ldyBPcyh0LHRoaXMuZ2V0VHooKSk7dGhpcy5vcHRpb25zLnN0b3BBdCYmZS5nZXRUaW1lKCk+dGhpcy5vcHRpb25zLnN0b3BBdC5nZXRUaW1lKCkmJihlPXRoaXMub3B0aW9ucy5zdG9wQXQpO2xldCByPW5ldyBPcyhlLHRoaXMuZ2V0VHooKSk7cmV0dXJuIHRoaXMuX3N0YXRlcy5vbmNlP3RoaXMuX3N0YXRlcy5vbmNlLmdldFRpbWUoKTxlLmdldFRpbWUoKT90aGlzLl9zdGF0ZXMub25jZTpudWxsOihyPXIuZGVjcmVtZW50KHRoaXMuX3N0YXRlcy5wYXR0ZXJuLHRoaXMub3B0aW9ucykscj09PW51bGx8fHRoaXMub3B0aW9ucy5zdGFydEF0JiZyLmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCk/bnVsbDpyKX1fY2FsY3VsYXRlUHJldmlvdXNSdW4odCxlKXtsZXQgcj1uZXcgT3Modm9pZCAwLHRoaXMuZ2V0VHooKSksYT10O2lmKHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKTw9ci5nZXRUaW1lKCkpe2E9dGhpcy5vcHRpb25zLnN0YXJ0QXQ7bGV0IHM9YS5nZXRUaW1lKCkrdGhpcy5vcHRpb25zLmludGVydmFsKjFlMztmb3IoO3M8PXIuZ2V0VGltZSgpOylhPW5ldyBPcyhhLHRoaXMuZ2V0VHooKSkuaW5jcmVtZW50KHRoaXMuX3N0YXRlcy5wYXR0ZXJuLHRoaXMub3B0aW9ucywhMCkscz1hLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2U9ITB9cmV0dXJuIGE9PT1udWxsJiYoYT12b2lkIDApLFthLGVdfX19KTt2YXIgRWllLEJrLEtjYSxIMWksUWMsSWllLFpuLEYxLEpnLGo3ZSxxMyxlYixQaWUsTmllLE9pZSxSaWUsamYsdGIsQWllLFR5dCxVN2UsVzdlLEx5dCxHN2Usa3I9dSgoKT0+e0VpZT03LEJrPTM2NS4yNDI1LEtjYT1NYXRoLnBvdygxMCw4KSoyNCo2MCo2MCoxZTMsSDFpPS1LY2EsUWM9NjA0OGU1LElpZT04NjRlNSxabj02ZTQsRjE9MzZlNSxKZz0xZTMsajdlPTUyNTYwMCxxMz00MzIwMCxlYj0xNDQwLFBpZT02MCxOaWU9MyxPaWU9MTIsUmllPTQsamY9MzYwMCx0Yj02MCxBaWU9amYqMjQsVHl0PUFpZSo3LFU3ZT1BaWUqMzY1LjI0MjUsVzdlPVU3ZS8xMixMeXQ9VzdlKjMsRzdlPVN5bWJvbC5mb3IoImNvbnN0cnVjdERhdGVGcm9tIil9KTtmdW5jdGlvbiBVZSh0LGUpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90KGUpOnQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmRzdlIGluIHQ/dFtHN2VdKGUpOnQgaW5zdGFuY2VvZiBEYXRlP25ldyB0LmNvbnN0cnVjdG9yKGUpOm5ldyBEYXRlKGUpfXZhciBqMWksVnQ9dSgoKT0+e2tyKCk7aShVZSwiY29uc3RydWN0RnJvbSIpO2oxaT1VZX0pO2Z1bmN0aW9uIFNlKHQsZSl7cmV0dXJuIFVlKGV8fHQsdCl9dmFyIFkxaSxLZT11KCgpPT57VnQoKTtpKFNlLCJ0b0RhdGUiKTtZMWk9U2V9KTtmdW5jdGlvbiBScyh0LGUscil7bGV0IGE9U2UodCxyPy5pbik7cmV0dXJuIGlzTmFOKGUpP1VlKHI/LmlufHx0LE5hTik6KGUmJmEuc2V0RGF0ZShhLmdldERhdGUoKStlKSxhKX12YXIgSjFpLFhjPXUoKCk9PntWdCgpO0tlKCk7aShScywiYWRkRGF5cyIpO0oxaT1Sc30pO2Z1bmN0aW9uIEpjKHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtpZihpc05hTihlKSlyZXR1cm4gVWUocj8uaW58fHQsTmFOKTtpZighZSlyZXR1cm4gYTtsZXQgcz1hLmdldERhdGUoKSxuPVVlKHI/LmlufHx0LGEuZ2V0VGltZSgpKTtuLnNldE1vbnRoKGEuZ2V0TW9udGgoKStlKzEsMCk7bGV0IG89bi5nZXREYXRlKCk7cmV0dXJuIHM+PW8/bjooYS5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCksbi5nZXRNb250aCgpLHMpLGEpfXZhciBpbGkscmI9dSgoKT0+e1Z0KCk7S2UoKTtpKEpjLCJhZGRNb250aHMiKTtpbGk9SmN9KTtmdW5jdGlvbiBWMyh0LGUscil7bGV0e3llYXJzOmE9MCxtb250aHM6cz0wLHdlZWtzOm49MCxkYXlzOm89MCxob3VyczpsPTAsbWludXRlczpjPTAsc2Vjb25kczpkPTB9PWUsZj1TZSh0LHI/LmluKSxwPXN8fGE/SmMoZixzK2EqMTIpOmYsaD1vfHxuP1JzKHAsbytuKjcpOnAsbT1jK2wqNjAsYj0oZCttKjYwKSoxZTM7cmV0dXJuIFVlKHI/LmlufHx0LCtoK2IpfXZhciB1bGksWTdlPXUoKCk9PntYYygpO3JiKCk7VnQoKTtLZSgpO2koVjMsImFkZCIpO3VsaT1WM30pO2Z1bmN0aW9uIEZpZSh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXREYXkoKT09PTZ9dmFyIG1saSxLN2U9dSgoKT0+e0tlKCk7aShGaWUsImlzU2F0dXJkYXkiKTttbGk9RmllfSk7ZnVuY3Rpb24gQmllKHQsZSl7cmV0dXJuIFNlKHQsZT8uaW4pLmdldERheSgpPT09MH12YXIgdmxpLFo3ZT11KCgpPT57S2UoKTtpKEJpZSwiaXNTdW5kYXkiKTt2bGk9QmllfSk7ZnVuY3Rpb24gZTAodCxlKXtsZXQgcj1TZSh0LGU/LmluKS5nZXREYXkoKTtyZXR1cm4gcj09PTB8fHI9PT02fXZhciBTbGksSGs9dSgoKT0+e0tlKCk7aShlMCwiaXNXZWVrZW5kIik7U2xpPWUwfSk7ZnVuY3Rpb24gSGllKHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKSxzPWUwKGEscik7aWYoaXNOYU4oZSkpcmV0dXJuIFVlKHI/LmluLE5hTik7bGV0IG49YS5nZXRIb3VycygpLG89ZTwwPy0xOjEsbD1NYXRoLnRydW5jKGUvNSk7YS5zZXREYXRlKGEuZ2V0RGF0ZSgpK2wqNyk7bGV0IGM9TWF0aC5hYnMoZSU1KTtmb3IoO2M+MDspYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK28pLGUwKGEscil8fChjLT0xKTtyZXR1cm4gcyYmZTAoYSxyKSYmZSE9PTAmJihGaWUoYSxyKSYmYS5zZXREYXRlKGEuZ2V0RGF0ZSgpKyhvPDA/MjotMSkpLEJpZShhLHIpJiZhLnNldERhdGUoYS5nZXREYXRlKCkrKG88MD8xOi0yKSkpLGEuc2V0SG91cnMobiksYX12YXIgJGxpLFE3ZT11KCgpPT57VnQoKTtLN2UoKTtaN2UoKTtIaygpO0tlKCk7aShIaWUsImFkZEJ1c2luZXNzRGF5cyIpOyRsaT1IaWV9KTtmdW5jdGlvbiBqMyh0LGUscil7cmV0dXJuIFVlKHI/LmlufHx0LCtTZSh0KStlKX12YXIgTmxpLHFrPXUoKCk9PntWdCgpO0tlKCk7aShqMywiYWRkTWlsbGlzZWNvbmRzIik7TmxpPWozfSk7ZnVuY3Rpb24gcWllKHQsZSxyKXtyZXR1cm4gajModCxlKkYxLHIpfXZhciBIbGksWDdlPXUoKCk9PntxaygpO2tyKCk7aShxaWUsImFkZEhvdXJzIik7SGxpPXFpZX0pO2Z1bmN0aW9uIFRhKCl7cmV0dXJuIER5dH1mdW5jdGlvbiAkeXQodCl7RHl0PXR9dmFyIER5dCxRbj11KCgpPT57RHl0PXt9O2koVGEsImdldERlZmF1bHRPcHRpb25zIik7aSgkeXQsInNldERlZmF1bHRPcHRpb25zIil9KTtmdW5jdGlvbiBZYSh0LGUpe2xldCByPVRhKCksYT1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPVNlKHQsZT8uaW4pLG49cy5nZXREYXkoKSxvPShuPGE/NzowKStuLWE7cmV0dXJuIHMuc2V0RGF0ZShzLmdldERhdGUoKS1vKSxzLnNldEhvdXJzKDAsMCwwLDApLHN9dmFyIFlsaSxrMj11KCgpPT57UW4oKTtLZSgpO2koWWEsInN0YXJ0T2ZXZWVrIik7WWxpPVlhfSk7ZnVuY3Rpb24gYnModCxlKXtyZXR1cm4gWWEodCx7Li4uZSx3ZWVrU3RhcnRzT246MX0pfXZhciBYbGksdDA9dSgoKT0+e2syKCk7aShicywic3RhcnRPZklTT1dlZWsiKTtYbGk9YnN9KTtmdW5jdGlvbiBFbyh0LGUpe2xldCByPVNlKHQsZT8uaW4pLGE9ci5nZXRGdWxsWWVhcigpLHM9VWUociwwKTtzLnNldEZ1bGxZZWFyKGErMSwwLDQpLHMuc2V0SG91cnMoMCwwLDAsMCk7bGV0IG49YnMocyksbz1VZShyLDApO28uc2V0RnVsbFllYXIoYSwwLDQpLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IGw9YnMobyk7cmV0dXJuIHIuZ2V0VGltZSgpPj1uLmdldFRpbWUoKT9hKzE6ci5nZXRUaW1lKCk+PWwuZ2V0VGltZSgpP2E6YS0xfXZhciBpMmksVTM9dSgoKT0+e1Z0KCk7dDAoKTtLZSgpO2koRW8sImdldElTT1dlZWtZZWFyIik7aTJpPUVvfSk7ZnVuY3Rpb24gRWkodCl7bGV0IGU9U2UodCkscj1uZXcgRGF0ZShEYXRlLlVUQyhlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpLGUuZ2V0RGF0ZSgpLGUuZ2V0SG91cnMoKSxlLmdldE1pbnV0ZXMoKSxlLmdldFNlY29uZHMoKSxlLmdldE1pbGxpc2Vjb25kcygpKSk7cmV0dXJuIHIuc2V0VVRDRnVsbFllYXIoZS5nZXRGdWxsWWVhcigpKSwrdC0rcn12YXIgT2Q9dSgoKT0+e0tlKCk7aShFaSwiZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyIpfSk7ZnVuY3Rpb24gQnQodCwuLi5lKXtsZXQgcj1VZS5iaW5kKG51bGwsdHx8ZS5maW5kKGE9PnR5cGVvZiBhPT0ib2JqZWN0IikpO3JldHVybiBlLm1hcChyKX12YXIgT2E9dSgoKT0+e1Z0KCk7aShCdCwibm9ybWFsaXplRGF0ZXMiKX0pO2Z1bmN0aW9uIHIwKHQsZSl7bGV0IHI9U2UodCxlPy5pbik7cmV0dXJuIHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgaDJpLFZrPXUoKCk9PntLZSgpO2kocjAsInN0YXJ0T2ZEYXkiKTtoMmk9cjB9KTtmdW5jdGlvbiBjbih0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKSxuPXIwKGEpLG89cjAocyksbD0rbi1FaShuKSxjPStvLUVpKG8pO3JldHVybiBNYXRoLnJvdW5kKChsLWMpL0lpZSl9dmFyIHcyaSxSZD11KCgpPT57T2QoKTtPYSgpO2tyKCk7VmsoKTtpKGNuLCJkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMiKTt3Mmk9Y259KTtmdW5jdGlvbiBCMSh0LGUpe2xldCByPUVvKHQsZSksYT1VZShlPy5pbnx8dCwwKTtyZXR1cm4gYS5zZXRGdWxsWWVhcihyLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKSxicyhhKX12YXIgXzJpLGFiPXUoKCk9PntWdCgpO1UzKCk7dDAoKTtpKEIxLCJzdGFydE9mSVNPV2Vla1llYXIiKTtfMmk9QjF9KTtmdW5jdGlvbiBWaWUodCxlLHIpe2xldCBhPVNlKHQscj8uaW4pLHM9Y24oYSxCMShhLHIpKSxuPVVlKHI/LmlufHx0LDApO3JldHVybiBuLnNldEZ1bGxZZWFyKGUsMCw0KSxuLnNldEhvdXJzKDAsMCwwLDApLGE9QjEobiksYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK3MpLGF9dmFyIEkyaSxKN2U9dSgoKT0+e1Z0KCk7UmQoKTthYigpO0tlKCk7aShWaWUsInNldElTT1dlZWtZZWFyIik7STJpPVZpZX0pO2Z1bmN0aW9uIGppZSh0LGUscil7cmV0dXJuIFZpZSh0LEVvKHQscikrZSxyKX12YXIgRjJpLGU5ZT11KCgpPT57VTMoKTtKN2UoKTtpKGppZSwiYWRkSVNPV2Vla1llYXJzIik7RjJpPWppZX0pO2Z1bmN0aW9uIGliKHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXRUaW1lKGEuZ2V0VGltZSgpK2UqWm4pLGF9dmFyIGoyaSxVaWU9dSgoKT0+e2tyKCk7S2UoKTtpKGliLCJhZGRNaW51dGVzIik7ajJpPWlifSk7ZnVuY3Rpb24gc2IodCxlLHIpe3JldHVybiBKYyh0LGUqMyxyKX12YXIgWTJpLFdpZT11KCgpPT57cmIoKTtpKHNiLCJhZGRRdWFydGVycyIpO1kyaT1zYn0pO2Z1bmN0aW9uIEdpZSh0LGUscil7cmV0dXJuIGozKHQsZSoxZTMscil9dmFyIFgyaSx0OWU9dSgoKT0+e3FrKCk7aShHaWUsImFkZFNlY29uZHMiKTtYMmk9R2llfSk7ZnVuY3Rpb24gVzModCxlLHIpe3JldHVybiBScyh0LGUqNyxyKX12YXIgcmNpLGprPXUoKCk9PntYYygpO2koVzMsImFkZFdlZWtzIik7cmNpPVczfSk7ZnVuY3Rpb24gWWllKHQsZSxyKXtyZXR1cm4gSmModCxlKjEyLHIpfXZhciBuY2kscjllPXUoKCk9PntyYigpO2koWWllLCJhZGRZZWFycyIpO25jaT1ZaWV9KTtmdW5jdGlvbiBBeXQodCxlLHIpe2xldFthLHNdPVsrU2UodC5zdGFydCxyPy5pbiksK1NlKHQuZW5kLHI/LmluKV0uc29ydCgobCxjKT0+bC1jKSxbbixvXT1bK1NlKGUuc3RhcnQscj8uaW4pLCtTZShlLmVuZCxyPy5pbildLnNvcnQoKGwsYyk9PmwtYyk7cmV0dXJuIHI/LmluY2x1c2l2ZT9hPD1vJiZuPD1zOmE8byYmbjxzfXZhciBkY2ksRXl0PXUoKCk9PntLZSgpO2koQXl0LCJhcmVJbnRlcnZhbHNPdmVybGFwcGluZyIpO2RjaT1BeXR9KTtmdW5jdGlvbiBLaWUodCxlKXtsZXQgcixhPWU/LmluO3JldHVybiB0LmZvckVhY2gocz0+eyFhJiZ0eXBlb2Ygcz09Im9iamVjdCImJihhPVVlLmJpbmQobnVsbCxzKSk7bGV0IG49U2UocyxhKTsoIXJ8fHI8bnx8aXNOYU4oK24pKSYmKHI9bil9KSxVZShhLHJ8fE5hTil9dmFyIG1jaSxhOWU9dSgoKT0+e1Z0KCk7S2UoKTtpKEtpZSwibWF4Iik7bWNpPUtpZX0pO2Z1bmN0aW9uIFppZSh0LGUpe2xldCByLGE9ZT8uaW47cmV0dXJuIHQuZm9yRWFjaChzPT57IWEmJnR5cGVvZiBzPT0ib2JqZWN0IiYmKGE9VWUuYmluZChudWxsLHMpKTtsZXQgbj1TZShzLGEpOyghcnx8cj5ufHxpc05hTigrbikpJiYocj1uKX0pLFVlKGEscnx8TmFOKX12YXIgeWNpLGk5ZT11KCgpPT57VnQoKTtLZSgpO2koWmllLCJtaW4iKTt5Y2k9WmllfSk7ZnVuY3Rpb24gSXl0KHQsZSxyKXtsZXRbYSxzLG5dPUJ0KHI/LmluLHQsZS5zdGFydCxlLmVuZCk7cmV0dXJuIFppZShbS2llKFthLHNdLHIpLG5dLHIpfXZhciB6Y2ksUHl0PXUoKCk9PntPYSgpO2E5ZSgpO2k5ZSgpO2koSXl0LCJjbGFtcCIpO3pjaT1JeXR9KTtmdW5jdGlvbiBRaWUodCxlKXtsZXQgcj0rU2UodCk7aWYoaXNOYU4ocikpcmV0dXJuIE5hTjtsZXQgYSxzO3JldHVybiBlLmZvckVhY2goKG4sbyk9PntsZXQgbD1TZShuKTtpZihpc05hTigrbCkpe2E9TmFOLHM9TmFOO3JldHVybn1sZXQgYz1NYXRoLmFicyhyLStsKTsoYT09bnVsbHx8YzxzKSYmKGE9byxzPWMpfSksYX12YXIgRGNpLHM5ZT11KCgpPT57S2UoKTtpKFFpZSwiY2xvc2VzdEluZGV4VG8iKTtEY2k9UWllfSk7ZnVuY3Rpb24gTnl0KHQsZSxyKXtsZXRbYSwuLi5zXT1CdChyPy5pbix0LC4uLmUpLG49UWllKGEscyk7aWYodHlwZW9mIG49PSJudW1iZXIiJiZpc05hTihuKSlyZXR1cm4gVWUoYSxOYU4pO2lmKG4hPT12b2lkIDApcmV0dXJuIHNbbl19dmFyIE5jaSxPeXQ9dSgoKT0+e09hKCk7czllKCk7VnQoKTtpKE55dCwiY2xvc2VzdFRvIik7TmNpPU55dH0pO2Z1bmN0aW9uIFhuKHQsZSl7bGV0IHI9K1NlKHQpLStTZShlKTtyZXR1cm4gcjwwPy0xOnI+MD8xOnJ9dmFyIEJjaSxVZj11KCgpPT57S2UoKTtpKFhuLCJjb21wYXJlQXNjIik7QmNpPVhufSk7ZnVuY3Rpb24gUnl0KHQsZSl7bGV0IHI9K1NlKHQpLStTZShlKTtyZXR1cm4gcj4wPy0xOnI8MD8xOnJ9dmFyIGpjaSxGeXQ9dSgoKT0+e0tlKCk7aShSeXQsImNvbXBhcmVEZXNjIik7amNpPVJ5dH0pO2Z1bmN0aW9uIElyKHQpe3JldHVybiBVZSh0LERhdGUubm93KCkpfXZhciBZY2ksRnM9dSgoKT0+e1Z0KCk7aShJciwiY29uc3RydWN0Tm93Iik7WWNpPUlyfSk7ZnVuY3Rpb24gQnl0KHQpe2xldCBlPU1hdGgudHJ1bmModC83KTtyZXR1cm4gZT09PTA/MDplfXZhciBYY2ksSHl0PXUoKCk9PntrcigpO2koQnl0LCJkYXlzVG9XZWVrcyIpO1hjaT1CeXR9KTtmdW5jdGlvbiBhMCh0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKTtyZXR1cm4rcjAoYSk9PStyMChzKX12YXIgYTBpLG5iPXUoKCk9PntPYSgpO1ZrKCk7aShhMCwiaXNTYW1lRGF5Iik7YTBpPWEwfSk7ZnVuY3Rpb24gWGllKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZXx8dHlwZW9mIHQ9PSJvYmplY3QiJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk9PT0iW29iamVjdCBEYXRlXSJ9dmFyIG4waSxuOWU9dSgoKT0+e2koWGllLCJpc0RhdGUiKTtuMGk9WGllfSk7ZnVuY3Rpb24gX24odCl7cmV0dXJuISghWGllKHQpJiZ0eXBlb2YgdCE9Im51bWJlciJ8fGlzTmFOKCtTZSh0KSkpfXZhciB1MGksRmQ9dSgoKT0+e245ZSgpO0tlKCk7aShfbiwiaXNWYWxpZCIpO3UwaT1fbn0pO2Z1bmN0aW9uIHF5dCh0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKTtpZighX24oYSl8fCFfbihzKSlyZXR1cm4gTmFOO2xldCBuPWNuKGEscyksbz1uPDA/LTE6MSxsPU1hdGgudHJ1bmMobi83KSxjPWwqNSxkPVJzKHMsbCo3KTtmb3IoOyFhMChhLGQpOyljKz1lMChkLHIpPzA6byxkPVJzKGQsbyk7cmV0dXJuIGM9PT0wPzA6Y312YXIgeTBpLFZ5dD11KCgpPT57T2EoKTtYYygpO1JkKCk7bmIoKTtGZCgpO0hrKCk7aShxeXQsImRpZmZlcmVuY2VJbkJ1c2luZXNzRGF5cyIpO3kwaT1xeXR9KTtmdW5jdGlvbiBKaWUodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSk7cmV0dXJuIEVvKGEsciktRW8ocyxyKX12YXIgQzBpLG85ZT11KCgpPT57T2EoKTtVMygpO2koSmllLCJkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFycyIpO0MwaT1KaWV9KTtmdW5jdGlvbiBqeXQodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj1icyhhKSxvPWJzKHMpLGw9K24tRWkobiksYz0rby1FaShvKTtyZXR1cm4gTWF0aC5yb3VuZCgobC1jKS9RYyl9dmFyIEEwaSxVeXQ9dSgoKT0+e09kKCk7T2EoKTtrcigpO3QwKCk7aShqeXQsImRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3MiKTtBMGk9anl0fSk7ZnVuY3Rpb24gV2YodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj1hLmdldEZ1bGxZZWFyKCktcy5nZXRGdWxsWWVhcigpLG89YS5nZXRNb250aCgpLXMuZ2V0TW9udGgoKTtyZXR1cm4gbioxMitvfXZhciBOMGksZXNlPXUoKCk9PntPYSgpO2koV2YsImRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzIik7TjBpPVdmfSk7ZnVuY3Rpb24gVWsodCxlKXtsZXQgcj1TZSh0LGU/LmluKTtyZXR1cm4gTWF0aC50cnVuYyhyLmdldE1vbnRoKCkvMykrMX12YXIgQjBpLGw5ZT11KCgpPT57S2UoKTtpKFVrLCJnZXRRdWFydGVyIik7QjBpPVVrfSk7ZnVuY3Rpb24gb2IodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj1hLmdldEZ1bGxZZWFyKCktcy5nZXRGdWxsWWVhcigpLG89VWsoYSktVWsocyk7cmV0dXJuIG4qNCtvfXZhciBVMGksYzllPXUoKCk9PntPYSgpO2w5ZSgpO2kob2IsImRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnMiKTtVMGk9b2J9KTtmdW5jdGlvbiBHZih0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKSxuPVlhKGEsciksbz1ZYShzLHIpLGw9K24tRWkobiksYz0rby1FaShvKTtyZXR1cm4gTWF0aC5yb3VuZCgobC1jKS9RYyl9dmFyIFgwaSx0c2U9dSgoKT0+e09kKCk7T2EoKTtrcigpO2syKCk7aShHZiwiZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyIpO1gwaT1HZn0pO2Z1bmN0aW9uIEczKHQsZSxyKXtsZXRbYSxzXT1CdChyPy5pbix0LGUpO3JldHVybiBhLmdldEZ1bGxZZWFyKCktcy5nZXRGdWxsWWVhcigpfXZhciByZGkscnNlPXUoKCk9PntPYSgpO2koRzMsImRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnMiKTtyZGk9RzN9KTtmdW5jdGlvbiBsYih0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKSxuPVd5dChhLHMpLG89TWF0aC5hYnMoY24oYSxzKSk7YS5zZXREYXRlKGEuZ2V0RGF0ZSgpLW4qbyk7bGV0IGw9KyhXeXQoYSxzKT09PS1uKSxjPW4qKG8tbCk7cmV0dXJuIGM9PT0wPzA6Y31mdW5jdGlvbiBXeXQodCxlKXtsZXQgcj10LmdldEZ1bGxZZWFyKCktZS5nZXRGdWxsWWVhcigpfHx0LmdldE1vbnRoKCktZS5nZXRNb250aCgpfHx0LmdldERhdGUoKS1lLmdldERhdGUoKXx8dC5nZXRIb3VycygpLWUuZ2V0SG91cnMoKXx8dC5nZXRNaW51dGVzKCktZS5nZXRNaW51dGVzKCl8fHQuZ2V0U2Vjb25kcygpLWUuZ2V0U2Vjb25kcygpfHx0LmdldE1pbGxpc2Vjb25kcygpLWUuZ2V0TWlsbGlzZWNvbmRzKCk7cmV0dXJuIHI8MD8tMTpyPjA/MTpyfXZhciBvZGksYXNlPXUoKCk9PntPYSgpO1JkKCk7aShsYiwiZGlmZmVyZW5jZUluRGF5cyIpO2koV3l0LCJjb21wYXJlTG9jYWxBc2MiKTtvZGk9bGJ9KTtmdW5jdGlvbiBKbih0KXtyZXR1cm4gZT0+e2xldCBhPSh0P01hdGhbdF06TWF0aC50cnVuYykoZSk7cmV0dXJuIGE9PT0wPzA6YX19dmFyIEJkPXUoKCk9PntpKEpuLCJnZXRSb3VuZGluZ01ldGhvZCIpfSk7ZnVuY3Rpb24gWWYodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj0oK2EtK3MpL0YxO3JldHVybiBKbihyPy5yb3VuZGluZ01ldGhvZCkobil9dmFyIG1kaSxpc2U9dSgoKT0+e0JkKCk7T2EoKTtrcigpO2koWWYsImRpZmZlcmVuY2VJbkhvdXJzIik7bWRpPVlmfSk7ZnVuY3Rpb24gc3NlKHQsZSxyKXtyZXR1cm4gamllKHQsLWUscil9dmFyIHZkaSxkOWU9dSgoKT0+e2U5ZSgpO2koc3NlLCJzdWJJU09XZWVrWWVhcnMiKTt2ZGk9c3NlfSk7ZnVuY3Rpb24gR3l0KHQsZSxyKXtsZXRbYSxzXT1CdChyPy5pbix0LGUpLG49WG4oYSxzKSxvPU1hdGguYWJzKEppZShhLHMscikpLGw9c3NlKGEsbipvLHIpLGM9KyhYbihsLHMpPT09LW4pLGQ9biooby1jKTtyZXR1cm4gZD09PTA/MDpkfXZhciB6ZGksWXl0PXUoKCk9PntPYSgpO1VmKCk7bzllKCk7ZDllKCk7aShHeXQsImRpZmZlcmVuY2VJbklTT1dlZWtZZWFycyIpO3pkaT1HeXR9KTtmdW5jdGlvbiBjYih0LGUpe3JldHVybitTZSh0KS0rU2UoZSl9dmFyIERkaSxuc2U9dSgoKT0+e0tlKCk7aShjYiwiZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzIik7RGRpPWNifSk7ZnVuY3Rpb24gS2YodCxlLHIpe2xldCBhPWNiKHQsZSkvWm47cmV0dXJuIEpuKHI/LnJvdW5kaW5nTWV0aG9kKShhKX12YXIgTmRpLG9zZT11KCgpPT57QmQoKTtrcigpO25zZSgpO2koS2YsImRpZmZlcmVuY2VJbk1pbnV0ZXMiKTtOZGk9S2Z9KTtmdW5jdGlvbiBkYih0LGUpe2xldCByPVNlKHQsZT8uaW4pO3JldHVybiByLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgQmRpLGxzZT11KCgpPT57S2UoKTtpKGRiLCJlbmRPZkRheSIpO0JkaT1kYn0pO2Z1bmN0aW9uIHViKHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldE1vbnRoKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoci5nZXRGdWxsWWVhcigpLGErMSwwKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgamRpLGNzZT11KCgpPT57S2UoKTtpKHViLCJlbmRPZk1vbnRoIik7amRpPXVifSk7ZnVuY3Rpb24gZHNlKHQsZSl7bGV0IHI9U2UodCxlPy5pbik7cmV0dXJuK2RiKHIsZSk9PSt1YihyLGUpfXZhciBaZGksdTllPXUoKCk9Pntsc2UoKTtjc2UoKTtLZSgpO2koZHNlLCJpc0xhc3REYXlPZk1vbnRoIik7WmRpPWRzZX0pO2Z1bmN0aW9uIFkzKHQsZSxyKXtsZXRbYSxzLG5dPUJ0KHI/LmluLHQsdCxlKSxvPVhuKHMsbiksbD1NYXRoLmFicyhXZihzLG4pKTtpZihsPDEpcmV0dXJuIDA7cy5nZXRNb250aCgpPT09MSYmcy5nZXREYXRlKCk+MjcmJnMuc2V0RGF0ZSgzMCkscy5zZXRNb250aChzLmdldE1vbnRoKCktbypsKTtsZXQgYz1YbihzLG4pPT09LW87ZHNlKGEpJiZsPT09MSYmWG4oYSxuKT09PTEmJihjPSExKTtsZXQgZD1vKihsLStjKTtyZXR1cm4gZD09PTA/MDpkfXZhciBhNGksV2s9dSgoKT0+e09hKCk7VWYoKTtlc2UoKTt1OWUoKTtpKFkzLCJkaWZmZXJlbmNlSW5Nb250aHMiKTthNGk9WTN9KTtmdW5jdGlvbiBLeXQodCxlLHIpe2xldCBhPVkzKHQsZSxyKS8zO3JldHVybiBKbihyPy5yb3VuZGluZ01ldGhvZCkoYSl9dmFyIGw0aSxaeXQ9dSgoKT0+e0JkKCk7V2soKTtpKEt5dCwiZGlmZmVyZW5jZUluUXVhcnRlcnMiKTtsNGk9S3l0fSk7ZnVuY3Rpb24gaTAodCxlLHIpe2xldCBhPWNiKHQsZSkvMWUzO3JldHVybiBKbihyPy5yb3VuZGluZ01ldGhvZCkoYSl9dmFyIGY0aSxHaz11KCgpPT57QmQoKTtuc2UoKTtpKGkwLCJkaWZmZXJlbmNlSW5TZWNvbmRzIik7ZjRpPWkwfSk7ZnVuY3Rpb24gUXl0KHQsZSxyKXtsZXQgYT1sYih0LGUscikvNztyZXR1cm4gSm4ocj8ucm91bmRpbmdNZXRob2QpKGEpfXZhciB4NGksWHl0PXUoKCk9PntCZCgpO2FzZSgpO2koUXl0LCJkaWZmZXJlbmNlSW5XZWVrcyIpO3g0aT1ReXR9KTtmdW5jdGlvbiB1c2UodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj1YbihhLHMpLG89TWF0aC5hYnMoRzMoYSxzKSk7YS5zZXRGdWxsWWVhcigxNTg0KSxzLnNldEZ1bGxZZWFyKDE1ODQpO2xldCBsPVhuKGEscyk9PT0tbixjPW4qKG8tK2wpO3JldHVybiBjPT09MD8wOmN9dmFyIE00aSxwOWU9dSgoKT0+e09hKCk7VWYoKTtyc2UoKTtpKHVzZSwiZGlmZmVyZW5jZUluWWVhcnMiKTtNNGk9dXNlfSk7ZnVuY3Rpb24gZG4odCxlKXtsZXRbcixhXT1CdCh0LGUuc3RhcnQsZS5lbmQpO3JldHVybntzdGFydDpyLGVuZDphfX12YXIgczA9dSgoKT0+e09hKCk7aShkbiwibm9ybWFsaXplSW50ZXJ2YWwiKX0pO2Z1bmN0aW9uIHBzZSh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz8rcjorYSxvPXM/YTpyO28uc2V0SG91cnMoMCwwLDAsMCk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHM9IXMpO2xldCBjPVtdO2Zvcig7K288PW47KWMucHVzaChVZShyLG8pKSxvLnNldERhdGUoby5nZXREYXRlKCkrbCksby5zZXRIb3VycygwLDAsMCwwKTtyZXR1cm4gcz9jLnJldmVyc2UoKTpjfXZhciBBNGksZjllPXUoKCk9PntzMCgpO1Z0KCk7aShwc2UsImVhY2hEYXlPZkludGVydmFsIik7QTRpPXBzZX0pO2Z1bmN0aW9uIEp5dCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz8rcjorYSxvPXM/YTpyO28uc2V0TWludXRlcygwLDAsMCk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHM9IXMpO2xldCBjPVtdO2Zvcig7K288PW47KWMucHVzaChVZShyLG8pKSxvLnNldEhvdXJzKG8uZ2V0SG91cnMoKStsKTtyZXR1cm4gcz9jLnJldmVyc2UoKTpjfXZhciBPNGksZXd0PXUoKCk9PntzMCgpO1Z0KCk7aShKeXQsImVhY2hIb3VyT2ZJbnRlcnZhbCIpO080aT1KeXR9KTtmdW5jdGlvbiB0d3QodCxlKXtsZXR7c3RhcnQ6cixlbmQ6YX09ZG4oZT8uaW4sdCk7ci5zZXRTZWNvbmRzKDAsMCk7bGV0IHM9K3I+K2Esbj1zPytyOithLG89cz9hOnIsbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwscz0hcyk7bGV0IGM9W107Zm9yKDsrbzw9bjspYy5wdXNoKFVlKHIsbykpLG89aWIobyxsKTtyZXR1cm4gcz9jLnJldmVyc2UoKTpjfXZhciBWNGkscnd0PXUoKCk9PntzMCgpO1VpZSgpO1Z0KCk7aSh0d3QsImVhY2hNaW51dGVPZkludGVydmFsIik7VjRpPXR3dH0pO2Z1bmN0aW9uIGF3dCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz8rcjorYSxvPXM/YTpyO28uc2V0SG91cnMoMCwwLDAsMCksby5zZXREYXRlKDEpO2xldCBsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxzPSFzKTtsZXQgYz1bXTtmb3IoOytvPD1uOyljLnB1c2goVWUocixvKSksby5zZXRNb250aChvLmdldE1vbnRoKCkrbCk7cmV0dXJuIHM/Yy5yZXZlcnNlKCk6Y312YXIgWTRpLGl3dD11KCgpPT57czAoKTtWdCgpO2koYXd0LCJlYWNoTW9udGhPZkludGVydmFsIik7WTRpPWF3dH0pO2Z1bmN0aW9uIG4wKHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldE1vbnRoKCkscz1hLWElMztyZXR1cm4gci5zZXRNb250aChzLDEpLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgWDRpLGZzZT11KCgpPT57S2UoKTtpKG4wLCJzdGFydE9mUXVhcnRlciIpO1g0aT1uMH0pO2Z1bmN0aW9uIHN3dCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz8rbjAocik6K24wKGEpLG89cz9uMChhKTpuMChyKSxsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxzPSFzKTtsZXQgYz1bXTtmb3IoOytvPD1uOyljLnB1c2goVWUocixvKSksbz1zYihvLGwpO3JldHVybiBzP2MucmV2ZXJzZSgpOmN9dmFyIHMzaSxud3Q9dSgoKT0+e3MwKCk7V2llKCk7VnQoKTtmc2UoKTtpKHN3dCwiZWFjaFF1YXJ0ZXJPZkludGVydmFsIik7czNpPXN3dH0pO2Z1bmN0aW9uIG93dCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz9ZYShhLGUpOllhKHIsZSksbz1zP1lhKHIsZSk6WWEoYSxlKTtuLnNldEhvdXJzKDE1KSxvLnNldEhvdXJzKDE1KTtsZXQgbD0rby5nZXRUaW1lKCksYz1uLGQ9ZT8uc3RlcD8/MTtpZighZClyZXR1cm5bXTtkPDAmJihkPS1kLHM9IXMpO2xldCBmPVtdO2Zvcig7K2M8PWw7KWMuc2V0SG91cnMoMCksZi5wdXNoKFVlKHIsYykpLGM9VzMoYyxkKSxjLnNldEhvdXJzKDE1KTtyZXR1cm4gcz9mLnJldmVyc2UoKTpmfXZhciBwM2ksbHd0PXUoKCk9PntzMCgpO2prKCk7VnQoKTtrMigpO2kob3d0LCJlYWNoV2Vla09mSW50ZXJ2YWwiKTtwM2k9b3d0fSk7ZnVuY3Rpb24gcGIodCxlKXtsZXR7c3RhcnQ6cixlbmQ6YX09ZG4oZT8uaW4sdCkscz1wc2Uoe3N0YXJ0OnIsZW5kOmF9LGUpLG49W10sbz0wO2Zvcig7bzxzLmxlbmd0aDspe2xldCBsPXNbbysrXTtlMChsKSYmbi5wdXNoKFVlKHIsbCkpfXJldHVybiBufXZhciB2M2ksaHNlPXUoKCk9PntzMCgpO1Z0KCk7ZjllKCk7SGsoKTtpKHBiLCJlYWNoV2Vla2VuZE9mSW50ZXJ2YWwiKTt2M2k9cGJ9KTtmdW5jdGlvbiBLMyh0LGUpe2xldCByPVNlKHQsZT8uaW4pO3JldHVybiByLnNldERhdGUoMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBTM2ksWWs9dSgoKT0+e0tlKCk7aShLMywic3RhcnRPZk1vbnRoIik7UzNpPUszfSk7ZnVuY3Rpb24gY3d0KHQsZSl7bGV0IHI9SzModCxlKSxhPXViKHQsZSk7cmV0dXJuIHBiKHtzdGFydDpyLGVuZDphfSxlKX12YXIgTDNpLGR3dD11KCgpPT57aHNlKCk7Y3NlKCk7WWsoKTtpKGN3dCwiZWFjaFdlZWtlbmRPZk1vbnRoIik7TDNpPWN3dH0pO2Z1bmN0aW9uIG1zZSh0LGUpe2xldCByPVNlKHQsZT8uaW4pLGE9ci5nZXRGdWxsWWVhcigpO3JldHVybiByLnNldEZ1bGxZZWFyKGErMSwwLDApLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBFM2ksaDllPXUoKCk9PntLZSgpO2kobXNlLCJlbmRPZlllYXIiKTtFM2k9bXNlfSk7ZnVuY3Rpb24gZmIodCxlKXtsZXQgcj1TZSh0LGU/LmluKTtyZXR1cm4gci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCksMCwxKSxyLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIE8zaSxnc2U9dSgoKT0+e0tlKCk7aShmYiwic3RhcnRPZlllYXIiKTtPM2k9ZmJ9KTtmdW5jdGlvbiB1d3QodCxlKXtsZXQgcj1mYih0LGUpLGE9bXNlKHQsZSk7cmV0dXJuIHBiKHtzdGFydDpyLGVuZDphfSxlKX12YXIgVjNpLHB3dD11KCgpPT57aHNlKCk7aDllKCk7Z3NlKCk7aSh1d3QsImVhY2hXZWVrZW5kT2ZZZWFyIik7VjNpPXV3dH0pO2Z1bmN0aW9uIGZ3dCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1kbihlPy5pbix0KSxzPStyPithLG49cz8rcjorYSxvPXM/YTpyO28uc2V0SG91cnMoMCwwLDAsMCksby5zZXRNb250aCgwLDEpO2xldCBsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxzPSFzKTtsZXQgYz1bXTtmb3IoOytvPD1uOyljLnB1c2goVWUocixvKSksby5zZXRGdWxsWWVhcihvLmdldEZ1bGxZZWFyKCkrbCk7cmV0dXJuIHM/Yy5yZXZlcnNlKCk6Y312YXIgWTNpLGh3dD11KCgpPT57czAoKTtWdCgpO2koZnd0LCJlYWNoWWVhck9mSW50ZXJ2YWwiKTtZM2k9Znd0fSk7ZnVuY3Rpb24gbXd0KHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCkscz05K01hdGguZmxvb3IoYS8xMCkqMTA7cmV0dXJuIHIuc2V0RnVsbFllYXIocywxMSwzMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIFgzaSxnd3Q9dSgoKT0+e0tlKCk7aShtd3QsImVuZE9mRGVjYWRlIik7WDNpPW13dH0pO2Z1bmN0aW9uIGJ3dCh0LGUpe2xldCByPVNlKHQsZT8uaW4pO3JldHVybiByLnNldE1pbnV0ZXMoNTksNTksOTk5KSxyfXZhciBydWkseHd0PXUoKCk9PntLZSgpO2koYnd0LCJlbmRPZkhvdXIiKTtydWk9Ynd0fSk7ZnVuY3Rpb24gYnNlKHQsZSl7bGV0IHI9VGEoKSxhPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHM9U2UodCxlPy5pbiksbj1zLmdldERheSgpLG89KG48YT8tNzowKSs2LShuLWEpO3JldHVybiBzLnNldERhdGUocy5nZXREYXRlKCkrbykscy5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHN9dmFyIG91aSxtOWU9dSgoKT0+e1FuKCk7S2UoKTtpKGJzZSwiZW5kT2ZXZWVrIik7b3VpPWJzZX0pO2Z1bmN0aW9uIHZ3dCh0LGUpe3JldHVybiBic2UodCx7Li4uZSx3ZWVrU3RhcnRzT246MX0pfXZhciB1dWkseXd0PXUoKCk9PnttOWUoKTtpKHZ3dCwiZW5kT2ZJU09XZWVrIik7dXVpPXZ3dH0pO2Z1bmN0aW9uIHd3dCh0LGUpe2xldCByPUVvKHQsZSksYT1VZShlPy5pbnx8dCwwKTthLnNldEZ1bGxZZWFyKHIrMSwwLDQpLGEuc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9YnMoYSxlKTtyZXR1cm4gcy5zZXRNaWxsaXNlY29uZHMocy5nZXRNaWxsaXNlY29uZHMoKS0xKSxzfXZhciBidWksa3d0PXUoKCk9PntWdCgpO1UzKCk7dDAoKTtpKHd3dCwiZW5kT2ZJU09XZWVrWWVhciIpO2J1aT13d3R9KTtmdW5jdGlvbiBTd3QodCxlKXtsZXQgcj1TZSh0LGU/LmluKTtyZXR1cm4gci5zZXRTZWNvbmRzKDU5LDk5OSkscn12YXIgd3VpLE13dD11KCgpPT57S2UoKTtpKFN3dCwiZW5kT2ZNaW51dGUiKTt3dWk9U3d0fSk7ZnVuY3Rpb24gQ3d0KHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldE1vbnRoKCkscz1hLWElMyszO3JldHVybiByLnNldE1vbnRoKHMsMCksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEN1aSx6d3Q9dSgoKT0+e0tlKCk7aShDd3QsImVuZE9mUXVhcnRlciIpO0N1aT1Dd3R9KTtmdW5jdGlvbiBfd3QodCxlKXtsZXQgcj1TZSh0LGU/LmluKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoOTk5KSxyfXZhciBMdWksVHd0PXUoKCk9PntLZSgpO2koX3d0LCJlbmRPZlNlY29uZCIpO0x1aT1fd3R9KTtmdW5jdGlvbiBMd3QodCl7cmV0dXJuIGRiKERhdGUubm93KCksdCl9dmFyIEV1aSxEd3Q9dSgoKT0+e2xzZSgpO2koTHd0LCJlbmRPZlRvZGF5Iik7RXVpPUx3dH0pO2Z1bmN0aW9uICR3dCh0KXtsZXQgZT1Jcih0Py5pbikscj1lLmdldEZ1bGxZZWFyKCksYT1lLmdldE1vbnRoKCkscz1lLmdldERhdGUoKSxuPUlyKHQ/LmluKTtyZXR1cm4gbi5zZXRGdWxsWWVhcihyLGEscysxKSxuLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdD8uaW4/dC5pbihuKTpufXZhciBPdWksQXd0PXUoKCk9PntGcygpO2koJHd0LCJlbmRPZlRvbW9ycm93Iik7T3VpPSR3dH0pO2Z1bmN0aW9uIEV3dCh0KXtsZXQgZT1Jcih0Py5pbikscj1VZSh0Py5pbiwwKTtyZXR1cm4gci5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpLGUuZ2V0RGF0ZSgpLTEpLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBxdWksSXd0PXUoKCk9PntWdCgpO0ZzKCk7aShFd3QsImVuZE9mWWVzdGVyZGF5Iik7cXVpPUV3dH0pO3ZhciBaY2EsUHd0LE53dD11KCgpPT57WmNhPXtsZXNzVGhhblhTZWNvbmRzOntvbmU6Imxlc3MgdGhhbiBhIHNlY29uZCIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gc2Vjb25kcyJ9LHhTZWNvbmRzOntvbmU6IjEgc2Vjb25kIixvdGhlcjoie3tjb3VudH19IHNlY29uZHMifSxoYWxmQU1pbnV0ZToiaGFsZiBhIG1pbnV0ZSIsbGVzc1RoYW5YTWludXRlczp7b25lOiJsZXNzIHRoYW4gYSBtaW51dGUiLG90aGVyOiJsZXNzIHRoYW4ge3tjb3VudH19IG1pbnV0ZXMifSx4TWludXRlczp7b25lOiIxIG1pbnV0ZSIsb3RoZXI6Int7Y291bnR9fSBtaW51dGVzIn0sYWJvdXRYSG91cnM6e29uZToiYWJvdXQgMSBob3VyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IGhvdXJzIn0seEhvdXJzOntvbmU6IjEgaG91ciIsb3RoZXI6Int7Y291bnR9fSBob3VycyJ9LHhEYXlzOntvbmU6IjEgZGF5IixvdGhlcjoie3tjb3VudH19IGRheXMifSxhYm91dFhXZWVrczp7b25lOiJhYm91dCAxIHdlZWsiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gd2Vla3MifSx4V2Vla3M6e29uZToiMSB3ZWVrIixvdGhlcjoie3tjb3VudH19IHdlZWtzIn0sYWJvdXRYTW9udGhzOntvbmU6ImFib3V0IDEgbW9udGgiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gbW9udGhzIn0seE1vbnRoczp7b25lOiIxIG1vbnRoIixvdGhlcjoie3tjb3VudH19IG1vbnRocyJ9LGFib3V0WFllYXJzOntvbmU6ImFib3V0IDEgeWVhciIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB5ZWFycyJ9LHhZZWFyczp7b25lOiIxIHllYXIiLG90aGVyOiJ7e2NvdW50fX0geWVhcnMifSxvdmVyWFllYXJzOntvbmU6Im92ZXIgMSB5ZWFyIixvdGhlcjoib3ZlciB7e2NvdW50fX0geWVhcnMifSxhbG1vc3RYWWVhcnM6e29uZToiYWxtb3N0IDEgeWVhciIsb3RoZXI6ImFsbW9zdCB7e2NvdW50fX0geWVhcnMifX0sUHd0PWkoKHQsZSxyKT0+e2xldCBhLHM9WmNhW3RdO3JldHVybiB0eXBlb2Ygcz09InN0cmluZyI/YT1zOmU9PT0xP2E9cy5vbmU6YT1zLm90aGVyLnJlcGxhY2UoInt7Y291bnR9fSIsZS50b1N0cmluZygpKSxyPy5hZGRTdWZmaXg/ci5jb21wYXJpc29uJiZyLmNvbXBhcmlzb24+MD8iaW4gIithOmErIiBhZ28iOmF9LCJmb3JtYXREaXN0YW5jZSIpfSk7ZnVuY3Rpb24geHNlKHQpe3JldHVybihlPXt9KT0+e2xldCByPWUud2lkdGg/U3RyaW5nKGUud2lkdGgpOnQuZGVmYXVsdFdpZHRoO3JldHVybiB0LmZvcm1hdHNbcl18fHQuZm9ybWF0c1t0LmRlZmF1bHRXaWR0aF19fXZhciBPd3Q9dSgoKT0+e2koeHNlLCJidWlsZEZvcm1hdExvbmdGbiIpfSk7dmFyIFFjYSxYY2EsSmNhLFJ3dCxGd3Q9dSgoKT0+e093dCgpO1FjYT17ZnVsbDoiRUVFRSwgTU1NTSBkbywgeSIsbG9uZzoiTU1NTSBkbywgeSIsbWVkaXVtOiJNTU0gZCwgeSIsc2hvcnQ6Ik1NL2RkL3l5eXkifSxYY2E9e2Z1bGw6Img6bW06c3MgYSB6enp6Iixsb25nOiJoOm1tOnNzIGEgeiIsbWVkaXVtOiJoOm1tOnNzIGEiLHNob3J0OiJoOm1tIGEifSxKY2E9e2Z1bGw6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLGxvbmc6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLG1lZGl1bToie3tkYXRlfX0sIHt7dGltZX19IixzaG9ydDoie3tkYXRlfX0sIHt7dGltZX19In0sUnd0PXtkYXRlOnhzZSh7Zm9ybWF0czpRY2EsZGVmYXVsdFdpZHRoOiJmdWxsIn0pLHRpbWU6eHNlKHtmb3JtYXRzOlhjYSxkZWZhdWx0V2lkdGg6ImZ1bGwifSksZGF0ZVRpbWU6eHNlKHtmb3JtYXRzOkpjYSxkZWZhdWx0V2lkdGg6ImZ1bGwifSl9fSk7dmFyIGUwYSxCd3QsSHd0PXUoKCk9PntlMGE9e2xhc3RXZWVrOiInbGFzdCcgZWVlZSAnYXQnIHAiLHllc3RlcmRheToiJ3llc3RlcmRheSBhdCcgcCIsdG9kYXk6Iid0b2RheSBhdCcgcCIsdG9tb3Jyb3c6Iid0b21vcnJvdyBhdCcgcCIsbmV4dFdlZWs6ImVlZWUgJ2F0JyBwIixvdGhlcjoiUCJ9LEJ3dD1pKCh0LGUscixhKT0+ZTBhW3RdLCJmb3JtYXRSZWxhdGl2ZSIpfSk7ZnVuY3Rpb24gaGIodCl7cmV0dXJuKGUscik9PntsZXQgYT1yPy5jb250ZXh0P1N0cmluZyhyLmNvbnRleHQpOiJzdGFuZGFsb25lIixzO2lmKGE9PT0iZm9ybWF0dGluZyImJnQuZm9ybWF0dGluZ1ZhbHVlcyl7bGV0IG89dC5kZWZhdWx0Rm9ybWF0dGluZ1dpZHRofHx0LmRlZmF1bHRXaWR0aCxsPXI/LndpZHRoP1N0cmluZyhyLndpZHRoKTpvO3M9dC5mb3JtYXR0aW5nVmFsdWVzW2xdfHx0LmZvcm1hdHRpbmdWYWx1ZXNbb119ZWxzZXtsZXQgbz10LmRlZmF1bHRXaWR0aCxsPXI/LndpZHRoP1N0cmluZyhyLndpZHRoKTp0LmRlZmF1bHRXaWR0aDtzPXQudmFsdWVzW2xdfHx0LnZhbHVlc1tvXX1sZXQgbj10LmFyZ3VtZW50Q2FsbGJhY2s/dC5hcmd1bWVudENhbGxiYWNrKGUpOmU7cmV0dXJuIHNbbl19fXZhciBxd3Q9dSgoKT0+e2koaGIsImJ1aWxkTG9jYWxpemVGbiIpfSk7dmFyIHQwYSxyMGEsYTBhLGkwYSxzMGEsbjBhLG8wYSxWd3Qsand0PXUoKCk9Pntxd3QoKTt0MGE9e25hcnJvdzpbIkIiLCJBIl0sYWJicmV2aWF0ZWQ6WyJCQyIsIkFEIl0sd2lkZTpbIkJlZm9yZSBDaHJpc3QiLCJBbm5vIERvbWluaSJdfSxyMGE9e25hcnJvdzpbIjEiLCIyIiwiMyIsIjQiXSxhYmJyZXZpYXRlZDpbIlExIiwiUTIiLCJRMyIsIlE0Il0sd2lkZTpbIjFzdCBxdWFydGVyIiwiMm5kIHF1YXJ0ZXIiLCIzcmQgcXVhcnRlciIsIjR0aCBxdWFydGVyIl19LGEwYT17bmFycm93OlsiSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sYWJicmV2aWF0ZWQ6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSx3aWRlOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXX0saTBhPXtuYXJyb3c6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sc2hvcnQ6WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLGFiYnJldmlhdGVkOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sd2lkZTpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LHMwYT17bmFycm93OnthbToiYSIscG06InAiLG1pZG5pZ2h0OiJtaSIsbm9vbjoibiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LGFiYnJldmlhdGVkOnthbToiQU0iLHBtOiJQTSIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sd2lkZTp7YW06ImEubS4iLHBtOiJwLm0uIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifX0sbjBhPXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9fSxvMGE9aSgodCxlKT0+e2xldCByPU51bWJlcih0KSxhPXIlMTAwO2lmKGE+MjB8fGE8MTApc3dpdGNoKGElMTApe2Nhc2UgMTpyZXR1cm4gcisic3QiO2Nhc2UgMjpyZXR1cm4gcisibmQiO2Nhc2UgMzpyZXR1cm4gcisicmQifXJldHVybiByKyJ0aCJ9LCJvcmRpbmFsTnVtYmVyIiksVnd0PXtvcmRpbmFsTnVtYmVyOm8wYSxlcmE6aGIoe3ZhbHVlczp0MGEsZGVmYXVsdFdpZHRoOiJ3aWRlIn0pLHF1YXJ0ZXI6aGIoe3ZhbHVlczpyMGEsZGVmYXVsdFdpZHRoOiJ3aWRlIixhcmd1bWVudENhbGxiYWNrOmkodD0+dC0xLCJhcmd1bWVudENhbGxiYWNrIil9KSxtb250aDpoYih7dmFsdWVzOmEwYSxkZWZhdWx0V2lkdGg6IndpZGUifSksZGF5OmhiKHt2YWx1ZXM6aTBhLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXlQZXJpb2Q6aGIoe3ZhbHVlczpzMGEsZGVmYXVsdFdpZHRoOiJ3aWRlIixmb3JtYXR0aW5nVmFsdWVzOm4wYSxkZWZhdWx0Rm9ybWF0dGluZ1dpZHRoOiJ3aWRlIn0pfX0pO2Z1bmN0aW9uIG1iKHQpe3JldHVybihlLHI9e30pPT57bGV0IGE9ci53aWR0aCxzPWEmJnQubWF0Y2hQYXR0ZXJuc1thXXx8dC5tYXRjaFBhdHRlcm5zW3QuZGVmYXVsdE1hdGNoV2lkdGhdLG49ZS5tYXRjaChzKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz1uWzBdLGw9YSYmdC5wYXJzZVBhdHRlcm5zW2FdfHx0LnBhcnNlUGF0dGVybnNbdC5kZWZhdWx0UGFyc2VXaWR0aF0sYz1BcnJheS5pc0FycmF5KGwpP2MwYShsLHA9PnAudGVzdChvKSk6bDBhKGwscD0+cC50ZXN0KG8pKSxkO2Q9dC52YWx1ZUNhbGxiYWNrP3QudmFsdWVDYWxsYmFjayhjKTpjLGQ9ci52YWx1ZUNhbGxiYWNrP3IudmFsdWVDYWxsYmFjayhkKTpkO2xldCBmPWUuc2xpY2Uoby5sZW5ndGgpO3JldHVybnt2YWx1ZTpkLHJlc3Q6Zn19fWZ1bmN0aW9uIGwwYSh0LGUpe2ZvcihsZXQgciBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlKHRbcl0pKXJldHVybiByfWZ1bmN0aW9uIGMwYSh0LGUpe2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKWlmKGUodFtyXSkpcmV0dXJuIHJ9dmFyIFV3dD11KCgpPT57aShtYiwiYnVpbGRNYXRjaEZuIik7aShsMGEsImZpbmRLZXkiKTtpKGMwYSwiZmluZEluZGV4Iil9KTtmdW5jdGlvbiBXd3QodCl7cmV0dXJuKGUscj17fSk9PntsZXQgYT1lLm1hdGNoKHQubWF0Y2hQYXR0ZXJuKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgcz1hWzBdLG49ZS5tYXRjaCh0LnBhcnNlUGF0dGVybik7aWYoIW4pcmV0dXJuIG51bGw7bGV0IG89dC52YWx1ZUNhbGxiYWNrP3QudmFsdWVDYWxsYmFjayhuWzBdKTpuWzBdO289ci52YWx1ZUNhbGxiYWNrP3IudmFsdWVDYWxsYmFjayhvKTpvO2xldCBsPWUuc2xpY2Uocy5sZW5ndGgpO3JldHVybnt2YWx1ZTpvLHJlc3Q6bH19fXZhciBHd3Q9dSgoKT0+e2koV3d0LCJidWlsZE1hdGNoUGF0dGVybkZuIil9KTt2YXIgZDBhLHUwYSxwMGEsZjBhLGgwYSxtMGEsZzBhLGIwYSx4MGEsdjBhLHkwYSx3MGEsWXd0LEt3dD11KCgpPT57VXd0KCk7R3d0KCk7ZDBhPS9eKFxkKykodGh8c3R8bmR8cmQpPy9pLHUwYT0vXGQrL2kscDBhPXtuYXJyb3c6L14oYnxhKS9pLGFiYnJldmlhdGVkOi9eKGJcLj9ccz9jXC4/fGJcLj9ccz9jXC4/XHM/ZVwuP3xhXC4/XHM/ZFwuP3xjXC4/XHM/ZVwuPykvaSx3aWRlOi9eKGJlZm9yZSBjaHJpc3R8YmVmb3JlIGNvbW1vbiBlcmF8YW5ubyBkb21pbml8Y29tbW9uIGVyYSkvaX0sZjBhPXthbnk6Wy9eYi9pLC9eKGF8YykvaV19LGgwYT17bmFycm93Oi9eWzEyMzRdL2ksYWJicmV2aWF0ZWQ6L15xWzEyMzRdL2ksd2lkZTovXlsxMjM0XSh0aHxzdHxuZHxyZCk/IHF1YXJ0ZXIvaX0sbTBhPXthbnk6Wy8xL2ksLzIvaSwvMy9pLC80L2ldfSxnMGE9e25hcnJvdzovXltqZm1hc29uZF0vaSxhYmJyZXZpYXRlZDovXihqYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYykvaSx3aWRlOi9eKGphbnVhcnl8ZmVicnVhcnl8bWFyY2h8YXByaWx8bWF5fGp1bmV8anVseXxhdWd1c3R8c2VwdGVtYmVyfG9jdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2l9LGIwYT17bmFycm93OlsvXmovaSwvXmYvaSwvXm0vaSwvXmEvaSwvXm0vaSwvXmovaSwvXmovaSwvXmEvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV0sYW55OlsvXmphL2ksL15mL2ksL15tYXIvaSwvXmFwL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hdS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXX0seDBhPXtuYXJyb3c6L15bc210d2ZdL2ksc2hvcnQ6L14oc3V8bW98dHV8d2V8dGh8ZnJ8c2EpL2ksYWJicmV2aWF0ZWQ6L14oc3VufG1vbnx0dWV8d2VkfHRodXxmcml8c2F0KS9pLHdpZGU6L14oc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpL2l9LHYwYT17bmFycm93OlsvXnMvaSwvXm0vaSwvXnQvaSwvXncvaSwvXnQvaSwvXmYvaSwvXnMvaV0sYW55OlsvXnN1L2ksL15tL2ksL150dS9pLC9edy9pLC9edGgvaSwvXmYvaSwvXnNhL2ldfSx5MGE9e25hcnJvdzovXihhfHB8bWl8bnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2ksYW55Oi9eKFthcF1cLj9ccz9tXC4/fG1pZG5pZ2h0fG5vb258KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pfSx3MGE9e2FueTp7YW06L15hL2kscG06L15wL2ksbWlkbmlnaHQ6L15taS9pLG5vb246L15uby9pLG1vcm5pbmc6L21vcm5pbmcvaSxhZnRlcm5vb246L2FmdGVybm9vbi9pLGV2ZW5pbmc6L2V2ZW5pbmcvaSxuaWdodDovbmlnaHQvaX19LFl3dD17b3JkaW5hbE51bWJlcjpXd3Qoe21hdGNoUGF0dGVybjpkMGEscGFyc2VQYXR0ZXJuOnUwYSx2YWx1ZUNhbGxiYWNrOmkodD0+cGFyc2VJbnQodCwxMCksInZhbHVlQ2FsbGJhY2siKX0pLGVyYTptYih7bWF0Y2hQYXR0ZXJuczpwMGEsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6ZjBhLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSkscXVhcnRlcjptYih7bWF0Y2hQYXR0ZXJuczpoMGEsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6bTBhLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkiLHZhbHVlQ2FsbGJhY2s6aSh0PT50KzEsInZhbHVlQ2FsbGJhY2siKX0pLG1vbnRoOm1iKHttYXRjaFBhdHRlcm5zOmcwYSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpiMGEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXk6bWIoe21hdGNoUGF0dGVybnM6eDBhLGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOnYwYSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLGRheVBlcmlvZDptYih7bWF0Y2hQYXR0ZXJuczp5MGEsZGVmYXVsdE1hdGNoV2lkdGg6ImFueSIscGFyc2VQYXR0ZXJuczp3MGEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KX19KTt2YXIgaDEsYnBpLFp3dD11KCgpPT57Tnd0KCk7Rnd0KCk7SHd0KCk7and0KCk7S3d0KCk7aDE9e2NvZGU6ImVuLVVTIixmb3JtYXREaXN0YW5jZTpQd3QsZm9ybWF0TG9uZzpSd3QsZm9ybWF0UmVsYXRpdmU6Qnd0LGxvY2FsaXplOlZ3dCxtYXRjaDpZd3Qsb3B0aW9uczp7d2Vla1N0YXJ0c09uOjAsZmlyc3RXZWVrQ29udGFpbnNEYXRlOjF9fSxicGk9aDF9KTt2YXIgWmY9dSgoKT0+e1p3dCgpfSk7ZnVuY3Rpb24gdnNlKHQsZSl7bGV0IHI9U2UodCxlPy5pbik7cmV0dXJuIGNuKHIsZmIocikpKzF9dmFyIE1waSxnOWU9dSgoKT0+e1JkKCk7Z3NlKCk7S2UoKTtpKHZzZSwiZ2V0RGF5T2ZZZWFyIik7TXBpPXZzZX0pO2Z1bmN0aW9uIGdiKHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT0rYnMociktK0IxKHIpO3JldHVybiBNYXRoLnJvdW5kKGEvUWMpKzF9dmFyICRwaSx5c2U9dSgoKT0+e2tyKCk7dDAoKTthYigpO0tlKCk7aShnYiwiZ2V0SVNPV2VlayIpOyRwaT1nYn0pO2Z1bmN0aW9uIFozKHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCkscz1UYSgpLG49ZT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/cy5maXJzdFdlZWtDb250YWluc0RhdGU/P3MubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1VZShlPy5pbnx8dCwwKTtvLnNldEZ1bGxZZWFyKGErMSwwLG4pLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IGw9WWEobyxlKSxjPVVlKGU/LmlufHx0LDApO2Muc2V0RnVsbFllYXIoYSwwLG4pLGMuc2V0SG91cnMoMCwwLDAsMCk7bGV0IGQ9WWEoYyxlKTtyZXR1cm4rcj49K2w/YSsxOityPj0rZD9hOmEtMX12YXIgUnBpLEtrPXUoKCk9PntRbigpO1Z0KCk7azIoKTtLZSgpO2koWjMsImdldFdlZWtZZWFyIik7UnBpPVozfSk7ZnVuY3Rpb24gUWYodCxlKXtsZXQgcj1UYSgpLGE9ZT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5maXJzdFdlZWtDb250YWluc0RhdGU/P3IubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEscz1aMyh0LGUpLG49VWUoZT8uaW58fHQsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIocywwLGEpLG4uc2V0SG91cnMoMCwwLDAsMCksWWEobixlKX12YXIgVXBpLHdzZT11KCgpPT57UW4oKTtWdCgpO0trKCk7azIoKTtpKFFmLCJzdGFydE9mV2Vla1llYXIiKTtVcGk9UWZ9KTtmdW5jdGlvbiBiYih0LGUpe2xldCByPVNlKHQsZT8uaW4pLGE9K1lhKHIsZSktK1FmKHIsZSk7cmV0dXJuIE1hdGgucm91bmQoYS9RYykrMX12YXIgWHBpLGtzZT11KCgpPT57a3IoKTtrMigpO3dzZSgpO0tlKCk7aShiYiwiZ2V0V2VlayIpO1hwaT1iYn0pO2Z1bmN0aW9uIHp0KHQsZSl7bGV0IHI9dDwwPyItIjoiIixhPU1hdGguYWJzKHQpLnRvU3RyaW5nKCkucGFkU3RhcnQoZSwiMCIpO3JldHVybiByK2F9dmFyIFhmPXUoKCk9PntpKHp0LCJhZGRMZWFkaW5nWmVyb3MiKX0pO3ZhciBIMSxiOWU9dSgoKT0+e1hmKCk7SDE9e3kodCxlKXtsZXQgcj10LmdldEZ1bGxZZWFyKCksYT1yPjA/cjoxLXI7cmV0dXJuIHp0KGU9PT0ieXkiP2ElMTAwOmEsZS5sZW5ndGgpfSxNKHQsZSl7bGV0IHI9dC5nZXRNb250aCgpO3JldHVybiBlPT09Ik0iP1N0cmluZyhyKzEpOnp0KHIrMSwyKX0sZCh0LGUpe3JldHVybiB6dCh0LmdldERhdGUoKSxlLmxlbmd0aCl9LGEodCxlKXtsZXQgcj10LmdldEhvdXJzKCkvMTI+PTE/InBtIjoiYW0iO3N3aXRjaChlKXtjYXNlImEiOmNhc2UiYWEiOnJldHVybiByLnRvVXBwZXJDYXNlKCk7Y2FzZSJhYWEiOnJldHVybiByO2Nhc2UiYWFhYWEiOnJldHVybiByWzBdO2RlZmF1bHQ6cmV0dXJuIHI9PT0iYW0iPyJhLm0uIjoicC5tLiJ9fSxoKHQsZSl7cmV0dXJuIHp0KHQuZ2V0SG91cnMoKSUxMnx8MTIsZS5sZW5ndGgpfSxIKHQsZSl7cmV0dXJuIHp0KHQuZ2V0SG91cnMoKSxlLmxlbmd0aCl9LG0odCxlKXtyZXR1cm4genQodC5nZXRNaW51dGVzKCksZS5sZW5ndGgpfSxzKHQsZSl7cmV0dXJuIHp0KHQuZ2V0U2Vjb25kcygpLGUubGVuZ3RoKX0sUyh0LGUpe2xldCByPWUubGVuZ3RoLGE9dC5nZXRNaWxsaXNlY29uZHMoKSxzPU1hdGgudHJ1bmMoYSpNYXRoLnBvdygxMCxyLTMpKTtyZXR1cm4genQocyxlLmxlbmd0aCl9fX0pO2Z1bmN0aW9uIFF3dCh0LGU9IiIpe2xldCByPXQ+MD8iLSI6IisiLGE9TWF0aC5hYnModCkscz1NYXRoLnRydW5jKGEvNjApLG49YSU2MDtyZXR1cm4gbj09PTA/citTdHJpbmcocyk6citTdHJpbmcocykrZSt6dChuLDIpfWZ1bmN0aW9uIFh3dCh0LGUpe3JldHVybiB0JTYwPT09MD8odD4wPyItIjoiKyIpK3p0KE1hdGguYWJzKHQpLzYwLDIpOkpmKHQsZSl9ZnVuY3Rpb24gSmYodCxlPSIiKXtsZXQgcj10PjA/Ii0iOiIrIixhPU1hdGguYWJzKHQpLHM9enQoTWF0aC50cnVuYyhhLzYwKSwyKSxuPXp0KGElNjAsMik7cmV0dXJuIHIrcytlK259dmFyIHhiLFprLEp3dD11KCgpPT57ZzllKCk7eXNlKCk7VTMoKTtrc2UoKTtLaygpO1hmKCk7YjllKCk7eGI9e2FtOiJhbSIscG06InBtIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSxaaz17RzppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldEZ1bGxZZWFyKCk+MD8xOjA7c3dpdGNoKGUpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiByLmVyYShhLHt3aWR0aDoiYWJicmV2aWF0ZWQifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIHIuZXJhKGEse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gci5lcmEoYSx7d2lkdGg6IndpZGUifSl9fSwiRyIpLHk6aShmdW5jdGlvbih0LGUscil7aWYoZT09PSJ5byIpe2xldCBhPXQuZ2V0RnVsbFllYXIoKSxzPWE+MD9hOjEtYTtyZXR1cm4gci5vcmRpbmFsTnVtYmVyKHMse3VuaXQ6InllYXIifSl9cmV0dXJuIEgxLnkodCxlKX0sInkiKSxZOmkoZnVuY3Rpb24odCxlLHIsYSl7bGV0IHM9WjModCxhKSxuPXM+MD9zOjEtcztpZihlPT09IllZIil7bGV0IG89biUxMDA7cmV0dXJuIHp0KG8sMil9cmV0dXJuIGU9PT0iWW8iP3Iub3JkaW5hbE51bWJlcihuLHt1bml0OiJ5ZWFyIn0pOnp0KG4sZS5sZW5ndGgpfSwiWSIpLFI6aShmdW5jdGlvbih0LGUpe2xldCByPUVvKHQpO3JldHVybiB6dChyLGUubGVuZ3RoKX0sIlIiKSx1OmkoZnVuY3Rpb24odCxlKXtsZXQgcj10LmdldEZ1bGxZZWFyKCk7cmV0dXJuIHp0KHIsZS5sZW5ndGgpfSwidSIpLFE6aShmdW5jdGlvbih0LGUscil7bGV0IGE9TWF0aC5jZWlsKCh0LmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKGUpe2Nhc2UiUSI6cmV0dXJuIFN0cmluZyhhKTtjYXNlIlFRIjpyZXR1cm4genQoYSwyKTtjYXNlIlFvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJRUVEiOnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiUSIpLHE6aShmdW5jdGlvbih0LGUscil7bGV0IGE9TWF0aC5jZWlsKCh0LmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKGUpe2Nhc2UicSI6cmV0dXJuIFN0cmluZyhhKTtjYXNlInFxIjpyZXR1cm4genQoYSwyKTtjYXNlInFvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UicXFxcXEiOnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLnF1YXJ0ZXIoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSwicSIpLE06aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRNb250aCgpO3N3aXRjaChlKXtjYXNlIk0iOmNhc2UiTU0iOnJldHVybiBIMS5NKHQsZSk7Y2FzZSJNbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihhKzEse3VuaXQ6Im1vbnRoIn0pO2Nhc2UiTU1NIjpyZXR1cm4gci5tb250aChhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJNTU1NTSI6cmV0dXJuIHIubW9udGgoYSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLm1vbnRoKGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sIk0iKSxMOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0TW9udGgoKTtzd2l0Y2goZSl7Y2FzZSJMIjpyZXR1cm4gU3RyaW5nKGErMSk7Y2FzZSJMTCI6cmV0dXJuIHp0KGErMSwyKTtjYXNlIkxvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGErMSx7dW5pdDoibW9udGgifSk7Y2FzZSJMTEwiOnJldHVybiByLm1vbnRoKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlIkxMTExMIjpyZXR1cm4gci5tb250aChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHIubW9udGgoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSwiTCIpLHc6aShmdW5jdGlvbih0LGUscixhKXtsZXQgcz1iYih0LGEpO3JldHVybiBlPT09IndvIj9yLm9yZGluYWxOdW1iZXIocyx7dW5pdDoid2VlayJ9KTp6dChzLGUubGVuZ3RoKX0sInciKSxJOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPWdiKHQpO3JldHVybiBlPT09IklvIj9yLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoid2VlayJ9KTp6dChhLGUubGVuZ3RoKX0sIkkiKSxkOmkoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPT09ImRvIj9yLm9yZGluYWxOdW1iZXIodC5nZXREYXRlKCkse3VuaXQ6ImRhdGUifSk6SDEuZCh0LGUpfSwiZCIpLEQ6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dnNlKHQpO3JldHVybiBlPT09IkRvIj9yLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoiZGF5T2ZZZWFyIn0pOnp0KGEsZS5sZW5ndGgpfSwiRCIpLEU6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXREYXkoKTtzd2l0Y2goZSl7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkVFRUVFIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkVFRUVFRSI6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheShhLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJFIiksZTppKGZ1bmN0aW9uKHQsZSxyLGEpe2xldCBzPXQuZ2V0RGF5KCksbj0ocy1hLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaChlKXtjYXNlImUiOnJldHVybiBTdHJpbmcobik7Y2FzZSJlZSI6cmV0dXJuIHp0KG4sMik7Y2FzZSJlbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihuLHt1bml0OiJkYXkifSk7Y2FzZSJlZWUiOnJldHVybiByLmRheShzLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiByLmRheShzLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkocyx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiZSIpLGM6aShmdW5jdGlvbih0LGUscixhKXtsZXQgcz10LmdldERheSgpLG49KHMtYS53ZWVrU3RhcnRzT24rOCklN3x8Nztzd2l0Y2goZSl7Y2FzZSJjIjpyZXR1cm4gU3RyaW5nKG4pO2Nhc2UiY2MiOnJldHVybiB6dChuLGUubGVuZ3RoKTtjYXNlImNvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKG4se3VuaXQ6ImRheSJ9KTtjYXNlImNjYyI6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlImNjY2NjIjpyZXR1cm4gci5kYXkocyx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlImNjY2NjYyI6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLmRheShzLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LCJjIiksaTppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldERheSgpLHM9YT09PTA/NzphO3N3aXRjaChlKXtjYXNlImkiOnJldHVybiBTdHJpbmcocyk7Y2FzZSJpaSI6cmV0dXJuIHp0KHMsZS5sZW5ndGgpO2Nhc2UiaW8iOnJldHVybiByLm9yZGluYWxOdW1iZXIocyx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiaWlpaWkiOnJldHVybiByLmRheShhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiaWlpaWlpIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sImkiKSxhOmkoZnVuY3Rpb24odCxlLHIpe2xldCBzPXQuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKGUpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImFhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYWFhYWEiOnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sImEiKSxiOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0SG91cnMoKSxzO3N3aXRjaChhPT09MTI/cz14Yi5ub29uOmE9PT0wP3M9eGIubWlkbmlnaHQ6cz1hLzEyPj0xPyJwbSI6ImFtIixlKXtjYXNlImIiOmNhc2UiYmIiOnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJiYmIiOnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkudG9Mb3dlckNhc2UoKTtjYXNlImJiYmJiIjpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJiIiksQjppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldEhvdXJzKCkscztzd2l0Y2goYT49MTc/cz14Yi5ldmVuaW5nOmE+PTEyP3M9eGIuYWZ0ZXJub29uOmE+PTQ/cz14Yi5tb3JuaW5nOnM9eGIubmlnaHQsZSl7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkJCQkJCIjpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJCIiksaDppKGZ1bmN0aW9uKHQsZSxyKXtpZihlPT09ImhvIil7bGV0IGE9dC5nZXRIb3VycygpJTEyO3JldHVybiBhPT09MCYmKGE9MTIpLHIub3JkaW5hbE51bWJlcihhLHt1bml0OiJob3VyIn0pfXJldHVybiBIMS5oKHQsZSl9LCJoIiksSDppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZT09PSJIbyI/ci5vcmRpbmFsTnVtYmVyKHQuZ2V0SG91cnMoKSx7dW5pdDoiaG91ciJ9KTpIMS5IKHQsZSl9LCJIIiksSzppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldEhvdXJzKCklMTI7cmV0dXJuIGU9PT0iS28iP3Iub3JkaW5hbE51bWJlcihhLHt1bml0OiJob3VyIn0pOnp0KGEsZS5sZW5ndGgpfSwiSyIpLGs6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRIb3VycygpO3JldHVybiBhPT09MCYmKGE9MjQpLGU9PT0ia28iP3Iub3JkaW5hbE51bWJlcihhLHt1bml0OiJob3VyIn0pOnp0KGEsZS5sZW5ndGgpfSwiayIpLG06aShmdW5jdGlvbih0LGUscil7cmV0dXJuIGU9PT0ibW8iP3Iub3JkaW5hbE51bWJlcih0LmdldE1pbnV0ZXMoKSx7dW5pdDoibWludXRlIn0pOkgxLm0odCxlKX0sIm0iKSxzOmkoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPT09InNvIj9yLm9yZGluYWxOdW1iZXIodC5nZXRTZWNvbmRzKCkse3VuaXQ6InNlY29uZCJ9KTpIMS5zKHQsZSl9LCJzIiksUzppKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEgxLlModCxlKX0sIlMiKSxYOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihhPT09MClyZXR1cm4iWiI7c3dpdGNoKGUpe2Nhc2UiWCI6cmV0dXJuIFh3dChhKTtjYXNlIlhYWFgiOmNhc2UiWFgiOnJldHVybiBKZihhKTtkZWZhdWx0OnJldHVybiBKZihhLCI6Iil9fSwiWCIpLHg6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRUaW1lem9uZU9mZnNldCgpO3N3aXRjaChlKXtjYXNlIngiOnJldHVybiBYd3QoYSk7Y2FzZSJ4eHh4IjpjYXNlInh4IjpyZXR1cm4gSmYoYSk7ZGVmYXVsdDpyZXR1cm4gSmYoYSwiOiIpfX0sIngiKSxPOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6cmV0dXJuIkdNVCIrUXd0KGEsIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK0pmKGEsIjoiKX19LCJPIiksejppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldFRpbWV6b25lT2Zmc2V0KCk7c3dpdGNoKGUpe2Nhc2UieiI6Y2FzZSJ6eiI6Y2FzZSJ6enoiOnJldHVybiJHTVQiK1F3dChhLCI6Iik7ZGVmYXVsdDpyZXR1cm4iR01UIitKZihhLCI6Iil9fSwieiIpLHQ6aShmdW5jdGlvbih0LGUscil7bGV0IGE9TWF0aC50cnVuYygrdC8xZTMpO3JldHVybiB6dChhLGUubGVuZ3RoKX0sInQiKSxUOmkoZnVuY3Rpb24odCxlLHIpe3JldHVybiB6dCgrdCxlLmxlbmd0aCl9LCJUIil9O2koUXd0LCJmb3JtYXRUaW1lem9uZVNob3J0Iik7aShYd3QsImZvcm1hdFRpbWV6b25lV2l0aE9wdGlvbmFsTWludXRlcyIpO2koSmYsImZvcm1hdFRpbWV6b25lIil9KTt2YXIgZWt0LHRrdCxrMGEsUTMseDllPXUoKCk9Pntla3Q9aSgodCxlKT0+e3N3aXRjaCh0KXtjYXNlIlAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJzaG9ydCJ9KTtjYXNlIlBQIjpyZXR1cm4gZS5kYXRlKHt3aWR0aDoibWVkaXVtIn0pO2Nhc2UiUFBQIjpyZXR1cm4gZS5kYXRlKHt3aWR0aDoibG9uZyJ9KTtkZWZhdWx0OnJldHVybiBlLmRhdGUoe3dpZHRoOiJmdWxsIn0pfX0sImRhdGVMb25nRm9ybWF0dGVyIiksdGt0PWkoKHQsZSk9Pntzd2l0Y2godCl7Y2FzZSJwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoic2hvcnQifSk7Y2FzZSJwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6Im1lZGl1bSJ9KTtjYXNlInBwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6ImxvbmcifSk7ZGVmYXVsdDpyZXR1cm4gZS50aW1lKHt3aWR0aDoiZnVsbCJ9KX19LCJ0aW1lTG9uZ0Zvcm1hdHRlciIpLGswYT1pKCh0LGUpPT57bGV0IHI9dC5tYXRjaCgvKFArKShwKyk/Lyl8fFtdLGE9clsxXSxzPXJbMl07aWYoIXMpcmV0dXJuIGVrdCh0LGUpO2xldCBuO3N3aXRjaChhKXtjYXNlIlAiOm49ZS5kYXRlVGltZSh7d2lkdGg6InNob3J0In0pO2JyZWFrO2Nhc2UiUFAiOm49ZS5kYXRlVGltZSh7d2lkdGg6Im1lZGl1bSJ9KTticmVhaztjYXNlIlBQUCI6bj1lLmRhdGVUaW1lKHt3aWR0aDoibG9uZyJ9KTticmVhaztkZWZhdWx0Om49ZS5kYXRlVGltZSh7d2lkdGg6ImZ1bGwifSk7YnJlYWt9cmV0dXJuIG4ucmVwbGFjZSgie3tkYXRlfX0iLGVrdChhLGUpKS5yZXBsYWNlKCJ7e3RpbWV9fSIsdGt0KHMsZSkpfSwiZGF0ZVRpbWVMb25nRm9ybWF0dGVyIiksUTM9e3A6dGt0LFA6azBhfX0pO2Z1bmN0aW9uIFNzZSh0KXtyZXR1cm4gUzBhLnRlc3QodCl9ZnVuY3Rpb24gTXNlKHQpe3JldHVybiBNMGEudGVzdCh0KX1mdW5jdGlvbiBRayh0LGUscil7bGV0IGE9ejBhKHQsZSxyKTtpZihjb25zb2xlLndhcm4oYSksQzBhLmluY2x1ZGVzKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKGEpfWZ1bmN0aW9uIHowYSh0LGUscil7bGV0IGE9dFswXT09PSJZIj8ieWVhcnMiOiJkYXlzIG9mIHRoZSBtb250aCI7cmV0dXJuYFVzZSBcYCR7dC50b0xvd2VyQ2FzZSgpfVxgIGluc3RlYWQgb2YgXGAke3R9XGAgKGluIFxgJHtlfVxgKSBmb3IgZm9ybWF0dGluZyAke2F9IHRvIHRoZSBpbnB1dCBcYCR7cn1cYDsgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kYH12YXIgUzBhLE0wYSxDMGEsdjllPXUoKCk9PntTMGE9L15EKyQvLE0wYT0vXlkrJC8sQzBhPVsiRCIsIkREIiwiWVkiLCJZWVlZIl07aShTc2UsImlzUHJvdGVjdGVkRGF5T2ZZZWFyVG9rZW4iKTtpKE1zZSwiaXNQcm90ZWN0ZWRXZWVrWWVhclRva2VuIik7aShRaywid2Fybk9yVGhyb3dQcm90ZWN0ZWRFcnJvciIpO2koejBhLCJtZXNzYWdlIil9KTtmdW5jdGlvbiBYayh0LGUscil7bGV0IGE9VGEoKSxzPXI/LmxvY2FsZT8/YS5sb2NhbGU/P2gxLG49cj8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5maXJzdFdlZWtDb250YWluc0RhdGU/P2EubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1yPy53ZWVrU3RhcnRzT24/P3I/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9hLndlZWtTdGFydHNPbj8/YS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxsPVNlKHQscj8uaW4pO2lmKCFfbihsKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGM9ZS5tYXRjaChUMGEpLm1hcChmPT57bGV0IHA9ZlswXTtpZihwPT09InAifHxwPT09IlAiKXtsZXQgaD1RM1twXTtyZXR1cm4gaChmLHMuZm9ybWF0TG9uZyl9cmV0dXJuIGZ9KS5qb2luKCIiKS5tYXRjaChfMGEpLm1hcChmPT57aWYoZj09PSInJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6IicifTtsZXQgcD1mWzBdO2lmKHA9PT0iJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6QTBhKGYpfTtpZihaa1twXSlyZXR1cm57aXNUb2tlbjohMCx2YWx1ZTpmfTtpZihwLm1hdGNoKCQwYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitwKyJgIik7cmV0dXJue2lzVG9rZW46ITEsdmFsdWU6Zn19KTtzLmxvY2FsaXplLnByZXByb2Nlc3NvciYmKGM9cy5sb2NhbGl6ZS5wcmVwcm9jZXNzb3IobCxjKSk7bGV0IGQ9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpuLHdlZWtTdGFydHNPbjpvLGxvY2FsZTpzfTtyZXR1cm4gYy5tYXAoZj0+e2lmKCFmLmlzVG9rZW4pcmV0dXJuIGYudmFsdWU7bGV0IHA9Zi52YWx1ZTsoIXI/LnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2VucyYmTXNlKHApfHwhcj8udXNlQWRkaXRpb25hbERheU9mWWVhclRva2VucyYmU3NlKHApKSYmUWsocCxlLFN0cmluZyh0KSk7bGV0IGg9WmtbcFswXV07cmV0dXJuIGgobCxwLHMubG9jYWxpemUsZCl9KS5qb2luKCIiKX1mdW5jdGlvbiBBMGEodCl7bGV0IGU9dC5tYXRjaChMMGEpO3JldHVybiBlP2VbMV0ucmVwbGFjZShEMGEsIiciKTp0fXZhciBfMGEsVDBhLEwwYSxEMGEsJDBhLENmaSx5OWU9dSgoKT0+e1pmKCk7UW4oKTtKd3QoKTt4OWUoKTt2OWUoKTtGZCgpO0tlKCk7XzBhPS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csVDBhPS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLEwwYT0vXicoW15dKj8pJz8kLyxEMGE9LycnL2csJDBhPS9bYS16QS1aXS87aShYaywiZm9ybWF0Iik7aShBMGEsImNsZWFuRXNjYXBlZFN0cmluZyIpO0NmaT1Ya30pO2Z1bmN0aW9uIENzZSh0LGUscil7bGV0IGE9VGEoKSxzPXI/LmxvY2FsZT8/YS5sb2NhbGU/P2gxLG49MjUyMCxvPVhuKHQsZSk7aWYoaXNOYU4obykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBsPU9iamVjdC5hc3NpZ24oe30scix7YWRkU3VmZml4OnI/LmFkZFN1ZmZpeCxjb21wYXJpc29uOm99KSxbYyxkXT1CdChyPy5pbiwuLi5vPjA/W2UsdF06W3QsZV0pLGY9aTAoZCxjKSxwPShFaShkKS1FaShjKSkvMWUzLGg9TWF0aC5yb3VuZCgoZi1wKS82MCksbTtpZihoPDIpcmV0dXJuIHI/LmluY2x1ZGVTZWNvbmRzP2Y8NT9zLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiw1LGwpOmY8MTA/cy5mb3JtYXREaXN0YW5jZSgibGVzc1RoYW5YU2Vjb25kcyIsMTAsbCk6ZjwyMD9zLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwyMCxsKTpmPDQwP3MuZm9ybWF0RGlzdGFuY2UoImhhbGZBTWludXRlIiwwLGwpOmY8NjA/cy5mb3JtYXREaXN0YW5jZSgibGVzc1RoYW5YTWludXRlcyIsMSxsKTpzLmZvcm1hdERpc3RhbmNlKCJ4TWludXRlcyIsMSxsKTpoPT09MD9zLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLGwpOnMuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIixoLGwpO2lmKGg8NDUpcmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIixoLGwpO2lmKGg8OTApcmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoImFib3V0WEhvdXJzIiwxLGwpO2lmKGg8ZWIpe2xldCB2PU1hdGgucm91bmQoaC82MCk7cmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoImFib3V0WEhvdXJzIix2LGwpfWVsc2V7aWYoaDxuKXJldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4RGF5cyIsMSxsKTtpZihoPHEzKXtsZXQgdj1NYXRoLnJvdW5kKGgvZWIpO3JldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4RGF5cyIsdixsKX1lbHNlIGlmKGg8cTMqMilyZXR1cm4gbT1NYXRoLnJvdW5kKGgvcTMpLHMuZm9ybWF0RGlzdGFuY2UoImFib3V0WE1vbnRocyIsbSxsKX1pZihtPVkzKGQsYyksbTwxMil7bGV0IHY9TWF0aC5yb3VuZChoL3EzKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieE1vbnRocyIsdixsKX1lbHNle2xldCB2PW0lMTIsYj1NYXRoLnRydW5jKG0vMTIpO3JldHVybiB2PDM/cy5mb3JtYXREaXN0YW5jZSgiYWJvdXRYWWVhcnMiLGIsbCk6djw5P3MuZm9ybWF0RGlzdGFuY2UoIm92ZXJYWWVhcnMiLGIsbCk6cy5mb3JtYXREaXN0YW5jZSgiYWxtb3N0WFllYXJzIixiKzEsbCl9fXZhciBOZmksdzllPXUoKCk9PntaZigpO1FuKCk7T2QoKTtPYSgpO1VmKCk7a3IoKTtXaygpO0drKCk7aShDc2UsImZvcm1hdERpc3RhbmNlIik7TmZpPUNzZX0pO2Z1bmN0aW9uIHpzZSh0LGUscil7bGV0IGE9VGEoKSxzPXI/LmxvY2FsZT8/YS5sb2NhbGU/P2gxLG49WG4odCxlKTtpZihpc05hTihuKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IG89T2JqZWN0LmFzc2lnbih7fSxyLHthZGRTdWZmaXg6cj8uYWRkU3VmZml4LGNvbXBhcmlzb246bn0pLFtsLGNdPUJ0KHI/LmluLC4uLm4+MD9bZSx0XTpbdCxlXSksZD1KbihyPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIiksZj1jLmdldFRpbWUoKS1sLmdldFRpbWUoKSxwPWYvWm4saD1FaShjKS1FaShsKSxtPShmLWgpL1puLHY9cj8udW5pdCxiO2lmKHY/Yj12OnA8MT9iPSJzZWNvbmQiOnA8NjA/Yj0ibWludXRlIjpwPGViP2I9ImhvdXIiOm08cTM/Yj0iZGF5IjptPGo3ZT9iPSJtb250aCI6Yj0ieWVhciIsYj09PSJzZWNvbmQiKXtsZXQgZz1kKGYvMWUzKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieFNlY29uZHMiLGcsbyl9ZWxzZSBpZihiPT09Im1pbnV0ZSIpe2xldCBnPWQocCk7cmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIixnLG8pfWVsc2UgaWYoYj09PSJob3VyIil7bGV0IGc9ZChwLzYwKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieEhvdXJzIixnLG8pfWVsc2UgaWYoYj09PSJkYXkiKXtsZXQgZz1kKG0vZWIpO3JldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4RGF5cyIsZyxvKX1lbHNlIGlmKGI9PT0ibW9udGgiKXtsZXQgZz1kKG0vcTMpO3JldHVybiBnPT09MTImJnYhPT0ibW9udGgiP3MuZm9ybWF0RGlzdGFuY2UoInhZZWFycyIsMSxvKTpzLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIixnLG8pfWVsc2V7bGV0IGc9ZChtL2o3ZSk7cmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhZZWFycyIsZyxvKX19dmFyIFdmaSxrOWU9dSgoKT0+e1pmKCk7UW4oKTtCZCgpO09kKCk7T2EoKTtVZigpO2tyKCk7aSh6c2UsImZvcm1hdERpc3RhbmNlU3RyaWN0Iik7V2ZpPXpzZX0pO2Z1bmN0aW9uIHJrdCh0LGUpe3JldHVybiBDc2UodCxJcih0KSxlKX12YXIgUWZpLGFrdD11KCgpPT57RnMoKTt3OWUoKTtpKHJrdCwiZm9ybWF0RGlzdGFuY2VUb05vdyIpO1FmaT1ya3R9KTtmdW5jdGlvbiBpa3QodCxlKXtyZXR1cm4genNlKHQsSXIodCksZSl9dmFyIHJoaSxza3Q9dSgoKT0+e0ZzKCk7azllKCk7aShpa3QsImZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3QiKTtyaGk9aWt0fSk7ZnVuY3Rpb24gbmt0KHQsZSl7bGV0IHI9VGEoKSxhPWU/LmxvY2FsZT8/ci5sb2NhbGU/P2gxLHM9ZT8uZm9ybWF0Pz9FMGEsbj1lPy56ZXJvPz8hMSxvPWU/LmRlbGltaXRlcj8/IiAiO3JldHVybiBhLmZvcm1hdERpc3RhbmNlP3MucmVkdWNlKChjLGQpPT57bGV0IGY9YHgke2QucmVwbGFjZSgvKF4uKS8saD0+aC50b1VwcGVyQ2FzZSgpKX1gLHA9dFtkXTtyZXR1cm4gcCE9PXZvaWQgMCYmKG58fHRbZF0pP2MuY29uY2F0KGEuZm9ybWF0RGlzdGFuY2UoZixwKSk6Y30sW10pLmpvaW4obyk6IiJ9dmFyIEUwYSxvaGksb2t0PXUoKCk9PntaZigpO1FuKCk7RTBhPVsieWVhcnMiLCJtb250aHMiLCJ3ZWVrcyIsImRheXMiLCJob3VycyIsIm1pbnV0ZXMiLCJzZWNvbmRzIl07aShua3QsImZvcm1hdER1cmF0aW9uIik7b2hpPW5rdH0pO2Z1bmN0aW9uIGxrdCh0LGUpe2xldCByPVNlKHQsZT8uaW4pO2lmKGlzTmFOKCtyKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGE9ZT8uZm9ybWF0Pz8iZXh0ZW5kZWQiLHM9ZT8ucmVwcmVzZW50YXRpb24/PyJjb21wbGV0ZSIsbj0iIixvPSIiLGw9YT09PSJleHRlbmRlZCI/Ii0iOiIiLGM9YT09PSJleHRlbmRlZCI/IjoiOiIiO2lmKHMhPT0idGltZSIpe2xldCBkPXp0KHIuZ2V0RGF0ZSgpLDIpLGY9enQoci5nZXRNb250aCgpKzEsMik7bj1gJHt6dChyLmdldEZ1bGxZZWFyKCksNCl9JHtsfSR7Zn0ke2x9JHtkfWB9aWYocyE9PSJkYXRlIil7bGV0IGQ9ci5nZXRUaW1lem9uZU9mZnNldCgpO2lmKGQhPT0wKXtsZXQgYj1NYXRoLmFicyhkKSxnPXp0KE1hdGgudHJ1bmMoYi82MCksMikseT16dChiJTYwLDIpO289YCR7ZDwwPyIrIjoiLSJ9JHtnfToke3l9YH1lbHNlIG89IloiO2xldCBmPXp0KHIuZ2V0SG91cnMoKSwyKSxwPXp0KHIuZ2V0TWludXRlcygpLDIpLGg9enQoci5nZXRTZWNvbmRzKCksMiksbT1uPT09IiI/IiI6IlQiLHY9W2YscCxoXS5qb2luKGMpO249YCR7bn0ke219JHt2fSR7b31gfXJldHVybiBufXZhciBwaGksY2t0PXUoKCk9PntYZigpO0tlKCk7aShsa3QsImZvcm1hdElTTyIpO3BoaT1sa3R9KTtmdW5jdGlvbiBka3QodCxlKXtsZXQgcj1TZSh0LGU/LmluKTtpZighX24ocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBhPWU/LmZvcm1hdD8/ImV4dGVuZGVkIixzPWU/LnJlcHJlc2VudGF0aW9uPz8iY29tcGxldGUiLG49IiIsbz1hPT09ImV4dGVuZGVkIj8iLSI6IiIsbD1hPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYocyE9PSJ0aW1lIil7bGV0IGM9enQoci5nZXREYXRlKCksMiksZD16dChyLmdldE1vbnRoKCkrMSwyKTtuPWAke3p0KHIuZ2V0RnVsbFllYXIoKSw0KX0ke299JHtkfSR7b30ke2N9YH1pZihzIT09ImRhdGUiKXtsZXQgYz16dChyLmdldEhvdXJzKCksMiksZD16dChyLmdldE1pbnV0ZXMoKSwyKSxmPXp0KHIuZ2V0U2Vjb25kcygpLDIpO249YCR7bn0ke249PT0iIj8iIjoiICJ9JHtjfSR7bH0ke2R9JHtsfSR7Zn1gfXJldHVybiBufXZhciB4aGksdWt0PXUoKCk9PntYZigpO0ZkKCk7S2UoKTtpKGRrdCwiZm9ybWF0SVNPOTA3NSIpO3hoaT1ka3R9KTtmdW5jdGlvbiBwa3QodCl7bGV0e3llYXJzOmU9MCxtb250aHM6cj0wLGRheXM6YT0wLGhvdXJzOnM9MCxtaW51dGVzOm49MCxzZWNvbmRzOm89MH09dDtyZXR1cm5gUCR7ZX1ZJHtyfU0ke2F9RFQke3N9SCR7bn1NJHtvfVNgfXZhciB3aGksZmt0PXUoKCk9PntpKHBrdCwiZm9ybWF0SVNPRHVyYXRpb24iKTt3aGk9cGt0fSk7ZnVuY3Rpb24gaGt0KHQsZSl7bGV0IHI9U2UodCxlPy5pbik7aWYoIV9uKHIpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYT1lPy5mcmFjdGlvbkRpZ2l0cz8/MCxzPXp0KHIuZ2V0RGF0ZSgpLDIpLG49enQoci5nZXRNb250aCgpKzEsMiksbz1yLmdldEZ1bGxZZWFyKCksbD16dChyLmdldEhvdXJzKCksMiksYz16dChyLmdldE1pbnV0ZXMoKSwyKSxkPXp0KHIuZ2V0U2Vjb25kcygpLDIpLGY9IiI7aWYoYT4wKXtsZXQgbT1yLmdldE1pbGxpc2Vjb25kcygpLHY9TWF0aC50cnVuYyhtKk1hdGgucG93KDEwLGEtMykpO2Y9Ii4iK3p0KHYsYSl9bGV0IHA9IiIsaD1yLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoaCE9PTApe2xldCBtPU1hdGguYWJzKGgpLHY9enQoTWF0aC50cnVuYyhtLzYwKSwyKSxiPXp0KG0lNjAsMik7cD1gJHtoPDA/IisiOiItIn0ke3Z9OiR7Yn1gfWVsc2UgcD0iWiI7cmV0dXJuYCR7b30tJHtufS0ke3N9VCR7bH06JHtjfToke2R9JHtmfSR7cH1gfXZhciBfaGksbWt0PXUoKCk9PntYZigpO0ZkKCk7S2UoKTtpKGhrdCwiZm9ybWF0UkZDMzMzOSIpO19oaT1oa3R9KTtmdW5jdGlvbiBna3QodCl7bGV0IGU9U2UodCk7aWYoIV9uKGUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcj1JMGFbZS5nZXRVVENEYXkoKV0sYT16dChlLmdldFVUQ0RhdGUoKSwyKSxzPVAwYVtlLmdldFVUQ01vbnRoKCldLG49ZS5nZXRVVENGdWxsWWVhcigpLG89enQoZS5nZXRVVENIb3VycygpLDIpLGw9enQoZS5nZXRVVENNaW51dGVzKCksMiksYz16dChlLmdldFVUQ1NlY29uZHMoKSwyKTtyZXR1cm5gJHtyfSwgJHthfSAke3N9ICR7bn0gJHtvfToke2x9OiR7Y30gR01UYH12YXIgSTBhLFAwYSxFaGksYmt0PXUoKCk9PntYZigpO0ZkKCk7S2UoKTtJMGE9WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxQMGE9WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXTtpKGdrdCwiZm9ybWF0UkZDNzIzMSIpO0VoaT1na3R9KTtmdW5jdGlvbiB4a3QodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSksbj1UYSgpLG89cj8ubG9jYWxlPz9uLmxvY2FsZT8/aDEsbD1yPy53ZWVrU3RhcnRzT24/P3I/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9uLndlZWtTdGFydHNPbj8/bi5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxjPWNuKGEscyk7aWYoaXNOYU4oYykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBkO2M8LTY/ZD0ib3RoZXIiOmM8LTE/ZD0ibGFzdFdlZWsiOmM8MD9kPSJ5ZXN0ZXJkYXkiOmM8MT9kPSJ0b2RheSI6YzwyP2Q9InRvbW9ycm93IjpjPDc/ZD0ibmV4dFdlZWsiOmQ9Im90aGVyIjtsZXQgZj1vLmZvcm1hdFJlbGF0aXZlKGQsYSxzLHtsb2NhbGU6byx3ZWVrU3RhcnRzT246bH0pO3JldHVybiBYayhhLGYse2xvY2FsZTpvLHdlZWtTdGFydHNPbjpsfSl9dmFyIEhoaSx2a3Q9dSgoKT0+e1pmKCk7UW4oKTtPYSgpO1JkKCk7eTllKCk7aSh4a3QsImZvcm1hdFJlbGF0aXZlIik7SGhpPXhrdH0pO2Z1bmN0aW9uIHlrdCh0LGUpe3JldHVybiBTZSh0KjFlMyxlPy5pbil9dmFyIFVoaSx3a3Q9dSgoKT0+e0tlKCk7aSh5a3QsImZyb21Vbml4VGltZSIpO1VoaT15a3R9KTtmdW5jdGlvbiBfc2UodCxlKXtyZXR1cm4gU2UodCxlPy5pbikuZ2V0RGF0ZSgpfXZhciBLaGksUzllPXUoKCk9PntLZSgpO2koX3NlLCJnZXREYXRlIik7S2hpPV9zZX0pO2Z1bmN0aW9uIFgzKHQsZSl7cmV0dXJuIFNlKHQsZT8uaW4pLmdldERheSgpfXZhciBKaGksSms9dSgoKT0+e0tlKCk7aShYMywiZ2V0RGF5Iik7SmhpPVgzfSk7ZnVuY3Rpb24gVHNlKHQsZSl7bGV0IHI9U2UodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCkscz1yLmdldE1vbnRoKCksbj1VZShyLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKGEscysxLDApLG4uc2V0SG91cnMoMCwwLDAsMCksbi5nZXREYXRlKCl9dmFyIGk2aSxNOWU9dSgoKT0+e1Z0KCk7S2UoKTtpKFRzZSwiZ2V0RGF5c0luTW9udGgiKTtpNmk9VHNlfSk7ZnVuY3Rpb24gTHNlKHQsZSl7bGV0IGE9U2UodCxlPy5pbikuZ2V0RnVsbFllYXIoKTtyZXR1cm4gYSU0MDA9PT0wfHxhJTQ9PT0wJiZhJTEwMCE9PTB9dmFyIGw2aSxDOWU9dSgoKT0+e0tlKCk7aShMc2UsImlzTGVhcFllYXIiKTtsNmk9THNlfSk7ZnVuY3Rpb24ga2t0KHQsZSl7bGV0IHI9U2UodCxlPy5pbik7cmV0dXJuIE51bWJlci5pc05hTigrcik/TmFOOkxzZShyKT8zNjY6MzY1fXZhciBmNmksU2t0PXUoKCk9PntDOWUoKTtLZSgpO2koa2t0LCJnZXREYXlzSW5ZZWFyIik7ZjZpPWtrdH0pO2Z1bmN0aW9uIE1rdCh0LGUpe2xldCBhPVNlKHQsZT8uaW4pLmdldEZ1bGxZZWFyKCk7cmV0dXJuIE1hdGguZmxvb3IoYS8xMCkqMTB9dmFyIGI2aSxDa3Q9dSgoKT0+e0tlKCk7aShNa3QsImdldERlY2FkZSIpO2I2aT1Na3R9KTtmdW5jdGlvbiBEc2UoKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxUYSgpKX12YXIgdzZpLHo5ZT11KCgpPT57UW4oKTtpKERzZSwiZ2V0RGVmYXVsdE9wdGlvbnMiKTt3Nmk9RHNlfSk7ZnVuY3Rpb24gemt0KHQsZSl7cmV0dXJuIFNlKHQsZT8uaW4pLmdldEhvdXJzKCl9dmFyIEM2aSxfa3Q9dSgoKT0+e0tlKCk7aSh6a3QsImdldEhvdXJzIik7QzZpPXprdH0pO2Z1bmN0aW9uICRzZSh0LGUpe2xldCByPVNlKHQsZT8uaW4pLmdldERheSgpO3JldHVybiByPT09MD83OnJ9dmFyIEw2aSxfOWU9dSgoKT0+e0tlKCk7aSgkc2UsImdldElTT0RheSIpO0w2aT0kc2V9KTtmdW5jdGlvbiBUa3QodCxlKXtsZXQgcj1CMSh0LGUpLHM9K0IxKFczKHIsNjApKS0rcjtyZXR1cm4gTWF0aC5yb3VuZChzL1FjKX12YXIgUDZpLExrdD11KCgpPT57amsoKTtrcigpO2FiKCk7aShUa3QsImdldElTT1dlZWtzSW5ZZWFyIik7UDZpPVRrdH0pO2Z1bmN0aW9uIERrdCh0KXtyZXR1cm4gU2UodCkuZ2V0TWlsbGlzZWNvbmRzKCl9dmFyIEY2aSwka3Q9dSgoKT0+e0tlKCk7aShEa3QsImdldE1pbGxpc2Vjb25kcyIpO0Y2aT1Ea3R9KTtmdW5jdGlvbiBBa3QodCxlKXtyZXR1cm4gU2UodCxlPy5pbikuZ2V0TWludXRlcygpfXZhciBWNmksRWt0PXUoKCk9PntLZSgpO2koQWt0LCJnZXRNaW51dGVzIik7VjZpPUFrdH0pO2Z1bmN0aW9uIElrdCh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXRNb250aCgpfXZhciBHNmksUGt0PXUoKCk9PntLZSgpO2koSWt0LCJnZXRNb250aCIpO0c2aT1Ja3R9KTtmdW5jdGlvbiBOa3QodCxlKXtsZXRbcixhXT1bK1NlKHQuc3RhcnQpLCtTZSh0LmVuZCldLnNvcnQoKHAsaCk9PnAtaCksW3Msbl09WytTZShlLnN0YXJ0KSwrU2UoZS5lbmQpXS5zb3J0KChwLGgpPT5wLWgpO2lmKCEocjxuJiZzPGEpKXJldHVybiAwO2xldCBsPXM8cj9yOnMsYz1sLUVpKGwpLGQ9bj5hP2E6bixmPWQtRWkoZCk7cmV0dXJuIE1hdGguY2VpbCgoZi1jKS9JaWUpfXZhciBKNmksT2t0PXUoKCk9PntPZCgpO2tyKCk7S2UoKTtpKE5rdCwiZ2V0T3ZlcmxhcHBpbmdEYXlzSW5JbnRlcnZhbHMiKTtKNmk9Tmt0fSk7ZnVuY3Rpb24gUmt0KHQpe3JldHVybiBTZSh0KS5nZXRTZWNvbmRzKCl9dmFyIGFtaSxGa3Q9dSgoKT0+e0tlKCk7aShSa3QsImdldFNlY29uZHMiKTthbWk9Umt0fSk7ZnVuY3Rpb24gQmt0KHQpe3JldHVybitTZSh0KX12YXIgb21pLEhrdD11KCgpPT57S2UoKTtpKEJrdCwiZ2V0VGltZSIpO29taT1Ca3R9KTtmdW5jdGlvbiBxa3QodCl7cmV0dXJuIE1hdGgudHJ1bmMoK1NlKHQpLzFlMyl9dmFyIHVtaSxWa3Q9dSgoKT0+e0tlKCk7aShxa3QsImdldFVuaXhUaW1lIik7dW1pPXFrdH0pO2Z1bmN0aW9uIGprdCh0LGUpe2xldCByPVRhKCksYT1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPV9zZShTZSh0LGU/LmluKSk7aWYoaXNOYU4ocykpcmV0dXJuIE5hTjtsZXQgbj1YMyhLMyh0LGUpKSxvPWEtbjtvPD0wJiYobys9Nyk7bGV0IGw9cy1vO3JldHVybiBNYXRoLmNlaWwobC83KSsxfXZhciB2bWksVWt0PXUoKCk9PntRbigpO1M5ZSgpO0prKCk7WWsoKTtLZSgpO2koamt0LCJnZXRXZWVrT2ZNb250aCIpO3ZtaT1qa3R9KTtmdW5jdGlvbiBBc2UodCxlKXtsZXQgcj1TZSh0LGU/LmluKSxhPXIuZ2V0TW9udGgoKTtyZXR1cm4gci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCksYSsxLDApLHIuc2V0SG91cnMoMCwwLDAsMCksU2UocixlPy5pbil9dmFyIFNtaSxUOWU9dSgoKT0+e0tlKCk7aShBc2UsImxhc3REYXlPZk1vbnRoIik7U21pPUFzZX0pO2Z1bmN0aW9uIFdrdCh0LGUpe2xldCByPVNlKHQsZT8uaW4pO3JldHVybiBHZihBc2UocixlKSxLMyhyLGUpLGUpKzF9dmFyIERtaSxHa3Q9dSgoKT0+e3RzZSgpO1Q5ZSgpO1lrKCk7S2UoKTtpKFdrdCwiZ2V0V2Vla3NJbk1vbnRoIik7RG1pPVdrdH0pO2Z1bmN0aW9uIFlrdCh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXRGdWxsWWVhcigpfXZhciBJbWksS2t0PXUoKCk9PntLZSgpO2koWWt0LCJnZXRZZWFyIik7SW1pPVlrdH0pO2Z1bmN0aW9uIFprdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KkYxKX12YXIgUm1pLFFrdD11KCgpPT57a3IoKTtpKFprdCwiaG91cnNUb01pbGxpc2Vjb25kcyIpO1JtaT1aa3R9KTtmdW5jdGlvbiBYa3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCpQaWUpfXZhciBxbWksSmt0PXUoKCk9PntrcigpO2koWGt0LCJob3Vyc1RvTWludXRlcyIpO3FtaT1Ya3R9KTtmdW5jdGlvbiBlU3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCpqZil9dmFyIFdtaSx0U3Q9dSgoKT0+e2tyKCk7aShlU3QsImhvdXJzVG9TZWNvbmRzIik7V21pPWVTdH0pO2Z1bmN0aW9uIHJTdCh0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKTtpZihpc05hTigrYSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3RhcnQgZGF0ZSBpcyBpbnZhbGlkIik7aWYoaXNOYU4oK3MpKXRocm93IG5ldyBUeXBlRXJyb3IoIkVuZCBkYXRlIGlzIGludmFsaWQiKTtpZihyPy5hc3NlcnRQb3NpdGl2ZSYmK2E+K3MpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgbXVzdCBiZSBhZnRlciBzdGFydCBkYXRlIik7cmV0dXJue3N0YXJ0OmEsZW5kOnN9fXZhciBabWksYVN0PXUoKCk9PntPYSgpO2koclN0LCJpbnRlcnZhbCIpO1ptaT1yU3R9KTtmdW5jdGlvbiBpU3QodCxlKXtsZXR7c3RhcnQ6cixlbmQ6YX09ZG4oZT8uaW4sdCkscz17fSxuPXVzZShhLHIpO24mJihzLnllYXJzPW4pO2xldCBvPVYzKHIse3llYXJzOnMueWVhcnN9KSxsPVkzKGEsbyk7bCYmKHMubW9udGhzPWwpO2xldCBjPVYzKG8se21vbnRoczpzLm1vbnRoc30pLGQ9bGIoYSxjKTtkJiYocy5kYXlzPWQpO2xldCBmPVYzKGMse2RheXM6cy5kYXlzfSkscD1ZZihhLGYpO3AmJihzLmhvdXJzPXApO2xldCBoPVYzKGYse2hvdXJzOnMuaG91cnN9KSxtPUtmKGEsaCk7bSYmKHMubWludXRlcz1tKTtsZXQgdj1WMyhoLHttaW51dGVzOnMubWludXRlc30pLGI9aTAoYSx2KTtyZXR1cm4gYiYmKHMuc2Vjb25kcz1iKSxzfXZhciBvNWksc1N0PXUoKCk9PntzMCgpO1k3ZSgpO2FzZSgpO2lzZSgpO29zZSgpO1drKCk7R2soKTtwOWUoKTtpKGlTdCwiaW50ZXJ2YWxUb0R1cmF0aW9uIik7bzVpPWlTdH0pO2Z1bmN0aW9uIG5TdCh0LGUscil7bGV0IGE7cmV0dXJuIE4wYShlKT9hPWU6cj1lLG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHI/LmxvY2FsZSxhKS5mb3JtYXQoU2UodCkpfWZ1bmN0aW9uIE4wYSh0KXtyZXR1cm4gdCE9PXZvaWQgMCYmISgibG9jYWxlImluIHQpfXZhciB1NWksb1N0PXUoKCk9PntLZSgpO2koblN0LCJpbnRsRm9ybWF0Iik7aShOMGEsImlzRm9ybWF0T3B0aW9ucyIpO3U1aT1uU3R9KTtmdW5jdGlvbiBsU3QodCxlLHIpe2xldCBhPTAscyxbbixvXT1CdChyPy5pbix0LGUpO2lmKHI/LnVuaXQpcz1yPy51bml0LHM9PT0ic2Vjb25kIj9hPWkwKG4sbyk6cz09PSJtaW51dGUiP2E9S2YobixvKTpzPT09ImhvdXIiP2E9WWYobixvKTpzPT09ImRheSI/YT1jbihuLG8pOnM9PT0id2VlayI/YT1HZihuLG8pOnM9PT0ibW9udGgiP2E9V2YobixvKTpzPT09InF1YXJ0ZXIiP2E9b2IobixvKTpzPT09InllYXIiJiYoYT1HMyhuLG8pKTtlbHNle2xldCBjPWkwKG4sbyk7TWF0aC5hYnMoYyk8dGI/KGE9aTAobixvKSxzPSJzZWNvbmQiKTpNYXRoLmFicyhjKTxqZj8oYT1LZihuLG8pLHM9Im1pbnV0ZSIpOk1hdGguYWJzKGMpPEFpZSYmTWF0aC5hYnMoY24obixvKSk8MT8oYT1ZZihuLG8pLHM9ImhvdXIiKTpNYXRoLmFicyhjKTxUeXQmJihhPWNuKG4sbykpJiZNYXRoLmFicyhhKTw3P3M9ImRheSI6TWF0aC5hYnMoYyk8VzdlPyhhPUdmKG4sbykscz0id2VlayIpOk1hdGguYWJzKGMpPEx5dD8oYT1XZihuLG8pLHM9Im1vbnRoIik6TWF0aC5hYnMoYyk8VTdlP29iKG4sbyk8ND8oYT1vYihuLG8pLHM9InF1YXJ0ZXIiKTooYT1HMyhuLG8pLHM9InllYXIiKTooYT1HMyhuLG8pLHM9InllYXIiKX1yZXR1cm4gbmV3IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0KHI/LmxvY2FsZSx7bnVtZXJpYzoiYXV0byIsLi4ucn0pLmZvcm1hdChhLHMpfXZhciBNNWksY1N0PXUoKCk9PntPYSgpO2tyKCk7UmQoKTtlc2UoKTtjOWUoKTt0c2UoKTtyc2UoKTtpc2UoKTtvc2UoKTtHaygpO2kobFN0LCJpbnRsRm9ybWF0RGlzdGFuY2UiKTtNNWk9bFN0fSk7ZnVuY3Rpb24gZFN0KHQsZSl7cmV0dXJuK1NlKHQpPitTZShlKX12YXIgVDVpLHVTdD11KCgpPT57S2UoKTtpKGRTdCwiaXNBZnRlciIpO1Q1aT1kU3R9KTtmdW5jdGlvbiBwU3QodCxlKXtyZXR1cm4rU2UodCk8K1NlKGUpfXZhciBBNWksZlN0PXUoKCk9PntLZSgpO2kocFN0LCJpc0JlZm9yZSIpO0E1aT1wU3R9KTtmdW5jdGlvbiBoU3QodCxlKXtyZXR1cm4rU2UodCk9PStTZShlKX12YXIgTjVpLG1TdD11KCgpPT57S2UoKTtpKGhTdCwiaXNFcXVhbCIpO041aT1oU3R9KTtmdW5jdGlvbiBnU3QodCxlLHIpe2xldCBhPW5ldyBEYXRlKHQsZSxyKTtyZXR1cm4gYS5nZXRGdWxsWWVhcigpPT09dCYmYS5nZXRNb250aCgpPT09ZSYmYS5nZXREYXRlKCk9PT1yfXZhciBGNWksYlN0PXUoKCk9PntpKGdTdCwiaXNFeGlzdHMiKTtGNWk9Z1N0fSk7ZnVuY3Rpb24geFN0KHQsZSl7cmV0dXJuIFNlKHQsZT8uaW4pLmdldERhdGUoKT09PTF9dmFyIFY1aSx2U3Q9dSgoKT0+e0tlKCk7aSh4U3QsImlzRmlyc3REYXlPZk1vbnRoIik7VjVpPXhTdH0pO2Z1bmN0aW9uIHlTdCh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXREYXkoKT09PTV9dmFyIEc1aSx3U3Q9dSgoKT0+e0tlKCk7aSh5U3QsImlzRnJpZGF5Iik7RzVpPXlTdH0pO2Z1bmN0aW9uIGtTdCh0KXtyZXR1cm4rU2UodCk+RGF0ZS5ub3coKX12YXIgUTVpLFNTdD11KCgpPT57S2UoKTtpKGtTdCwiaXNGdXR1cmUiKTtRNWk9a1N0fSk7ZnVuY3Rpb24gRXNlKHQsZSl7bGV0IHI9TzBhKGUpP25ldyBlKDApOlVlKGUsMCk7cmV0dXJuIHIuc2V0RnVsbFllYXIodC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSksci5zZXRIb3Vycyh0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCksdC5nZXRNaWxsaXNlY29uZHMoKSkscn1mdW5jdGlvbiBPMGEodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iJiZ0LnByb3RvdHlwZT8uY29uc3RydWN0b3I9PT10fXZhciB0OGksTDllPXUoKCk9PntWdCgpO2koRXNlLCJ0cmFuc3Bvc2UiKTtpKE8wYSwiaXNDb25zdHJ1Y3RvciIpO3Q4aT1Fc2V9KTt2YXIgUjBhLElzZSxQc2UsTnNlLEQ5ZT11KCgpPT57VnQoKTtMOWUoKTtSMGE9MTAsSXNlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNldHRlciIpfXN1YlByaW9yaXR5PTA7dmFsaWRhdGUoZSxyKXtyZXR1cm4hMH19LFBzZT1jbGFzcyBleHRlbmRzIElzZXtzdGF0aWN7aSh0aGlzLCJWYWx1ZVNldHRlciIpfWNvbnN0cnVjdG9yKGUscixhLHMsbil7c3VwZXIoKSx0aGlzLnZhbHVlPWUsdGhpcy52YWxpZGF0ZVZhbHVlPXIsdGhpcy5zZXRWYWx1ZT1hLHRoaXMucHJpb3JpdHk9cyxuJiYodGhpcy5zdWJQcmlvcml0eT1uKX12YWxpZGF0ZShlLHIpe3JldHVybiB0aGlzLnZhbGlkYXRlVmFsdWUoZSx0aGlzLnZhbHVlLHIpfXNldChlLHIsYSl7cmV0dXJuIHRoaXMuc2V0VmFsdWUoZSxyLHRoaXMudmFsdWUsYSl9fSxOc2U9Y2xhc3MgZXh0ZW5kcyBJc2V7c3RhdGlje2kodGhpcywiRGF0ZVRpbWV6b25lU2V0dGVyIil9cHJpb3JpdHk9UjBhO3N1YlByaW9yaXR5PS0xO2NvbnN0cnVjdG9yKGUscil7c3VwZXIoKSx0aGlzLmNvbnRleHQ9ZXx8KGE9PlVlKHIsYSkpfXNldChlLHIpe3JldHVybiByLnRpbWVzdGFtcElzU2V0P2U6VWUoZSxFc2UoZSx0aGlzLmNvbnRleHQpKX19fSk7dmFyIE10LHhhPXUoKCk9PntEOWUoKTtNdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQYXJzZXIiKX1ydW4oZSxyLGEscyl7bGV0IG49dGhpcy5wYXJzZShlLHIsYSxzKTtyZXR1cm4gbj97c2V0dGVyOm5ldyBQc2Uobi52YWx1ZSx0aGlzLnZhbGlkYXRlLHRoaXMuc2V0LHRoaXMucHJpb3JpdHksdGhpcy5zdWJQcmlvcml0eSkscmVzdDpuLnJlc3R9Om51bGx9dmFsaWRhdGUoZSxyLGEpe3JldHVybiEwfX19KTt2YXIgT3NlLE1TdD11KCgpPT57eGEoKTtPc2U9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJFcmFQYXJzZXIiKX1wcmlvcml0eT0xNDA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIkciOmNhc2UiR0ciOmNhc2UiR0dHIjpyZXR1cm4gYS5lcmEoZSx7d2lkdGg6ImFiYnJldmlhdGVkIn0pfHxhLmVyYShlLHt3aWR0aDoibmFycm93In0pO2Nhc2UiR0dHR0ciOnJldHVybiBhLmVyYShlLHt3aWR0aDoibmFycm93In0pO2RlZmF1bHQ6cmV0dXJuIGEuZXJhKGUse3dpZHRoOiJ3aWRlIn0pfHxhLmVyYShlLHt3aWR0aDoiYWJicmV2aWF0ZWQifSl8fGEuZXJhKGUse3dpZHRoOiJuYXJyb3cifSl9fXNldChlLHIsYSl7cmV0dXJuIHIuZXJhPWEsZS5zZXRGdWxsWWVhcihhLDAsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlIiLCJ1IiwidCIsIlQiXX19KTt2YXIgbGEsTWwsZW89dSgoKT0+e2xhPXttb250aDovXigxWzAtMl18MD9cZCkvLGRhdGU6L14oM1swLTFdfFswLTJdP1xkKS8sZGF5T2ZZZWFyOi9eKDM2WzAtNl18M1swLTVdXGR8WzAtMl0/XGQ/XGQpLyx3ZWVrOi9eKDVbMC0zXXxbMC00XT9cZCkvLGhvdXIyM2g6L14oMlswLTNdfFswLTFdP1xkKS8saG91cjI0aDovXigyWzAtNF18WzAtMV0/XGQpLyxob3VyMTFoOi9eKDFbMC0xXXwwP1xkKS8saG91cjEyaDovXigxWzAtMl18MD9cZCkvLG1pbnV0ZTovXlswLTVdP1xkLyxzZWNvbmQ6L15bMC01XT9cZC8sc2luZ2xlRGlnaXQ6L15cZC8sdHdvRGlnaXRzOi9eXGR7MSwyfS8sdGhyZWVEaWdpdHM6L15cZHsxLDN9Lyxmb3VyRGlnaXRzOi9eXGR7MSw0fS8sYW55RGlnaXRzU2lnbmVkOi9eLT9cZCsvLHNpbmdsZURpZ2l0U2lnbmVkOi9eLT9cZC8sdHdvRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDJ9Lyx0aHJlZURpZ2l0c1NpZ25lZDovXi0/XGR7MSwzfS8sZm91ckRpZ2l0c1NpZ25lZDovXi0/XGR7MSw0fS99LE1sPXtiYXNpY09wdGlvbmFsTWludXRlczovXihbKy1dKShcZHsyfSkoXGR7Mn0pP3xaLyxiYXNpYzovXihbKy1dKShcZHsyfSkoXGR7Mn0pfFovLGJhc2ljT3B0aW9uYWxTZWNvbmRzOi9eKFsrLV0pKFxkezJ9KShcZHsyfSkoKFxkezJ9KSk/fFovLGV4dGVuZGVkOi9eKFsrLV0pKFxkezJ9KTooXGR7Mn0pfFovLGV4dGVuZGVkT3B0aW9uYWxTZWNvbmRzOi9eKFsrLV0pKFxkezJ9KTooXGR7Mn0pKDooXGR7Mn0pKT98Wi99fSk7ZnVuY3Rpb24gUmEodCxlKXtyZXR1cm4gdCYme3ZhbHVlOmUodC52YWx1ZSkscmVzdDp0LnJlc3R9fWZ1bmN0aW9uIGFhKHQsZSl7bGV0IHI9ZS5tYXRjaCh0KTtyZXR1cm4gcj97dmFsdWU6cGFyc2VJbnQoclswXSwxMCkscmVzdDplLnNsaWNlKHJbMF0ubGVuZ3RoKX06bnVsbH1mdW5jdGlvbiBDbCh0LGUpe2xldCByPWUubWF0Y2godCk7aWYoIXIpcmV0dXJuIG51bGw7aWYoclswXT09PSJaIilyZXR1cm57dmFsdWU6MCxyZXN0OmUuc2xpY2UoMSl9O2xldCBhPXJbMV09PT0iKyI/MTotMSxzPXJbMl0/cGFyc2VJbnQoclsyXSwxMCk6MCxuPXJbM10/cGFyc2VJbnQoclszXSwxMCk6MCxvPXJbNV0/cGFyc2VJbnQocls1XSwxMCk6MDtyZXR1cm57dmFsdWU6YSoocypGMStuKlpuK28qSmcpLHJlc3Q6ZS5zbGljZShyWzBdLmxlbmd0aCl9fWZ1bmN0aW9uIFJzZSh0KXtyZXR1cm4gYWEobGEuYW55RGlnaXRzU2lnbmVkLHQpfWZ1bmN0aW9uIGJyKHQsZSl7c3dpdGNoKHQpe2Nhc2UgMTpyZXR1cm4gYWEobGEuc2luZ2xlRGlnaXQsZSk7Y2FzZSAyOnJldHVybiBhYShsYS50d29EaWdpdHMsZSk7Y2FzZSAzOnJldHVybiBhYShsYS50aHJlZURpZ2l0cyxlKTtjYXNlIDQ6cmV0dXJuIGFhKGxhLmZvdXJEaWdpdHMsZSk7ZGVmYXVsdDpyZXR1cm4gYWEobmV3IFJlZ0V4cCgiXlxcZHsxLCIrdCsifSIpLGUpfX1mdW5jdGlvbiB2Yih0LGUpe3N3aXRjaCh0KXtjYXNlIDE6cmV0dXJuIGFhKGxhLnNpbmdsZURpZ2l0U2lnbmVkLGUpO2Nhc2UgMjpyZXR1cm4gYWEobGEudHdvRGlnaXRzU2lnbmVkLGUpO2Nhc2UgMzpyZXR1cm4gYWEobGEudGhyZWVEaWdpdHNTaWduZWQsZSk7Y2FzZSA0OnJldHVybiBhYShsYS5mb3VyRGlnaXRzU2lnbmVkLGUpO2RlZmF1bHQ6cmV0dXJuIGFhKG5ldyBSZWdFeHAoIl4tP1xcZHsxLCIrdCsifSIpLGUpfX1mdW5jdGlvbiB5Yih0KXtzd2l0Y2godCl7Y2FzZSJtb3JuaW5nIjpyZXR1cm4gNDtjYXNlImV2ZW5pbmciOnJldHVybiAxNztjYXNlInBtIjpjYXNlIm5vb24iOmNhc2UiYWZ0ZXJub29uIjpyZXR1cm4gMTI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gRnNlKHQsZSl7bGV0IHI9ZT4wLGE9cj9lOjEtZSxzO2lmKGE8PTUwKXM9dHx8MTAwO2Vsc2V7bGV0IG49YSs1MCxvPU1hdGgudHJ1bmMobi8xMDApKjEwMCxsPXQ+PW4lMTAwO3M9dCtvLShsPzEwMDowKX1yZXR1cm4gcj9zOjEtc31mdW5jdGlvbiBCc2UodCl7cmV0dXJuIHQlNDAwPT09MHx8dCU0PT09MCYmdCUxMDAhPT0wfXZhciBMYT11KCgpPT57a3IoKTtlbygpO2koUmEsIm1hcFZhbHVlIik7aShhYSwicGFyc2VOdW1lcmljUGF0dGVybiIpO2koQ2wsInBhcnNlVGltZXpvbmVQYXR0ZXJuIik7aShSc2UsInBhcnNlQW55RGlnaXRzU2lnbmVkIik7aShiciwicGFyc2VORGlnaXRzIik7aSh2YiwicGFyc2VORGlnaXRzU2lnbmVkIik7aSh5YiwiZGF5UGVyaW9kRW51bVRvSG91cnMiKTtpKEZzZSwibm9ybWFsaXplVHdvRGlnaXRZZWFyIik7aShCc2UsImlzTGVhcFllYXJJbmRleCIpfSk7dmFyIEhzZSxDU3Q9dSgoKT0+e3hhKCk7TGEoKTtIc2U9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJZZWFyUGFyc2VyIil9cHJpb3JpdHk9MTMwO2luY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwidSIsInciLCJJIiwiaSIsImUiLCJjIiwidCIsIlQiXTtwYXJzZShlLHIsYSl7bGV0IHM9aShuPT4oe3llYXI6bixpc1R3b0RpZ2l0WWVhcjpyPT09Inl5In0pLCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHIpe2Nhc2UieSI6cmV0dXJuIFJhKGJyKDQsZSkscyk7Y2FzZSJ5byI6cmV0dXJuIFJhKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ5ZWFyIn0pLHMpO2RlZmF1bHQ6cmV0dXJuIFJhKGJyKHIubGVuZ3RoLGUpLHMpfX12YWxpZGF0ZShlLHIpe3JldHVybiByLmlzVHdvRGlnaXRZZWFyfHxyLnllYXI+MH1zZXQoZSxyLGEpe2xldCBzPWUuZ2V0RnVsbFllYXIoKTtpZihhLmlzVHdvRGlnaXRZZWFyKXtsZXQgbz1Gc2UoYS55ZWFyLHMpO3JldHVybiBlLnNldEZ1bGxZZWFyKG8sMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9bGV0IG49ISgiZXJhImluIHIpfHxyLmVyYT09PTE/YS55ZWFyOjEtYS55ZWFyO3JldHVybiBlLnNldEZ1bGxZZWFyKG4sMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9fX0pO3ZhciBxc2UselN0PXUoKCk9PntLaygpO2syKCk7eGEoKTtMYSgpO3FzZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIkxvY2FsV2Vla1llYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7cGFyc2UoZSxyLGEpe2xldCBzPWkobj0+KHt5ZWFyOm4saXNUd29EaWdpdFllYXI6cj09PSJZWSJ9KSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaChyKXtjYXNlIlkiOnJldHVybiBSYShicig0LGUpLHMpO2Nhc2UiWW8iOnJldHVybiBSYShhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoieWVhciJ9KSxzKTtkZWZhdWx0OnJldHVybiBSYShicihyLmxlbmd0aCxlKSxzKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gci5pc1R3b0RpZ2l0WWVhcnx8ci55ZWFyPjB9c2V0KGUscixhLHMpe2xldCBuPVozKGUscyk7aWYoYS5pc1R3b0RpZ2l0WWVhcil7bGV0IGw9RnNlKGEueWVhcixuKTtyZXR1cm4gZS5zZXRGdWxsWWVhcihsLDAscy5maXJzdFdlZWtDb250YWluc0RhdGUpLGUuc2V0SG91cnMoMCwwLDAsMCksWWEoZSxzKX1sZXQgbz0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9hLnllYXI6MS1hLnllYXI7cmV0dXJuIGUuc2V0RnVsbFllYXIobywwLHMuZmlyc3RXZWVrQ29udGFpbnNEYXRlKSxlLnNldEhvdXJzKDAsMCwwLDApLFlhKGUscyl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwiUSIsInEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO3ZhciBWc2UsX1N0PXUoKCk9Pnt0MCgpO1Z0KCk7eGEoKTtMYSgpO1ZzZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIklTT1dlZWtZZWFyUGFyc2VyIil9cHJpb3JpdHk9MTMwO3BhcnNlKGUscil7cmV0dXJuIHI9PT0iUiI/dmIoNCxlKTp2YihyLmxlbmd0aCxlKX1zZXQoZSxyLGEpe2xldCBzPVVlKGUsMCk7cmV0dXJuIHMuc2V0RnVsbFllYXIoYSwwLDQpLHMuc2V0SG91cnMoMCwwLDAsMCksYnMocyl9aW5jb21wYXRpYmxlVG9rZW5zPVsiRyIsInkiLCJZIiwidSIsIlEiLCJxIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIGpzZSxUU3Q9dSgoKT0+e3hhKCk7TGEoKTtqc2U9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJFeHRlbmRlZFllYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7cGFyc2UoZSxyKXtyZXR1cm4gcj09PSJ1Ij92Yig0LGUpOnZiKHIubGVuZ3RoLGUpfXNldChlLHIsYSl7cmV0dXJuIGUuc2V0RnVsbFllYXIoYSwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJSIiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBVc2UsTFN0PXUoKCk9Pnt4YSgpO0xhKCk7VXNlPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiUXVhcnRlclBhcnNlciIpfXByaW9yaXR5PTEyMDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiUSI6Y2FzZSJRUSI6cmV0dXJuIGJyKHIubGVuZ3RoLGUpO2Nhc2UiUW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiBhLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLnF1YXJ0ZXIoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEucXVhcnRlcihlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0xJiZyPD00fXNldChlLHIsYSl7cmV0dXJuIGUuc2V0TW9udGgoKGEtMSkqMywxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgV3NlLERTdD11KCgpPT57eGEoKTtMYSgpO1dzZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIlN0YW5kQWxvbmVRdWFydGVyUGFyc2VyIil9cHJpb3JpdHk9MTIwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJxIjpjYXNlInFxIjpyZXR1cm4gYnIoci5sZW5ndGgsZSk7Y2FzZSJxbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UicXFxIjpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJxcXFxcSI6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTEmJnI8PTR9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRNb250aCgoYS0xKSozLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsIlEiLCJNIiwiTCIsInciLCJJIiwiZCIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBHc2UsJFN0PXUoKCk9PntlbygpO3hhKCk7TGEoKTtHc2U9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJNb250aFBhcnNlciIpfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJMIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXTtwcmlvcml0eT0xMTA7cGFyc2UoZSxyLGEpe2xldCBzPWkobj0+bi0xLCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHIpe2Nhc2UiTSI6cmV0dXJuIFJhKGFhKGxhLm1vbnRoLGUpLHMpO2Nhc2UiTU0iOnJldHVybiBSYShicigyLGUpLHMpO2Nhc2UiTW8iOnJldHVybiBSYShhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoibW9udGgifSkscyk7Y2FzZSJNTU0iOnJldHVybiBhLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiBhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5tb250aChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5tb250aChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9MTF9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRNb250aChhLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyIFlzZSxBU3Q9dSgoKT0+e2VvKCk7eGEoKTtMYSgpO1lzZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIlN0YW5kQWxvbmVNb250aFBhcnNlciIpfXByaW9yaXR5PTExMDtwYXJzZShlLHIsYSl7bGV0IHM9aShuPT5uLTEsInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2gocil7Y2FzZSJMIjpyZXR1cm4gUmEoYWEobGEubW9udGgsZSkscyk7Y2FzZSJMTCI6cmV0dXJuIFJhKGJyKDIsZSkscyk7Y2FzZSJMbyI6cmV0dXJuIFJhKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJtb250aCJ9KSxzKTtjYXNlIkxMTCI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiBhLm1vbnRoKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD0xMX1zZXQoZSxyLGEpe3JldHVybiBlLnNldE1vbnRoKGEsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJNIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiBLc2UodCxlLHIpe2xldCBhPVNlKHQscj8uaW4pLHM9YmIoYSxyKS1lO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktcyo3KSxTZShhLHI/LmluKX12YXIgczdpLCQ5ZT11KCgpPT57a3NlKCk7S2UoKTtpKEtzZSwic2V0V2VlayIpO3M3aT1Lc2V9KTt2YXIgWnNlLEVTdD11KCgpPT57JDllKCk7azIoKTtlbygpO3hhKCk7TGEoKTtac2U9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJMb2NhbFdlZWtQYXJzZXIiKX1wcmlvcml0eT0xMDA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlInciOnJldHVybiBhYShsYS53ZWVrLGUpO2Nhc2Uid28iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoid2VlayJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MSYmcjw9NTN9c2V0KGUscixhLHMpe3JldHVybiBZYShLc2UoZSxhLHMpLHMpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJpIiwidCIsIlQiXX19KTtmdW5jdGlvbiBRc2UodCxlLHIpe2xldCBhPVNlKHQscj8uaW4pLHM9Z2IoYSxyKS1lO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktcyo3KSxhfXZhciBiN2ksQTllPXUoKCk9Pnt5c2UoKTtLZSgpO2koUXNlLCJzZXRJU09XZWVrIik7YjdpPVFzZX0pO3ZhciBYc2UsSVN0PXUoKCk9PntBOWUoKTt0MCgpO2VvKCk7eGEoKTtMYSgpO1hzZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIklTT1dlZWtQYXJzZXIiKX1wcmlvcml0eT0xMDA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIkkiOnJldHVybiBhYShsYS53ZWVrLGUpO2Nhc2UiSW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoid2VlayJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MSYmcjw9NTN9c2V0KGUscixhKXtyZXR1cm4gYnMoUXNlKGUsYSkpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIEYwYSxCMGEsSnNlLFBTdD11KCgpPT57ZW8oKTt4YSgpO0xhKCk7RjBhPVszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sQjBhPVszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sSnNlPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiRGF0ZVBhcnNlciIpfXByaW9yaXR5PTkwO3N1YlByaW9yaXR5PTE7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlImQiOnJldHVybiBhYShsYS5kYXRlLGUpO2Nhc2UiZG8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtsZXQgYT1lLmdldEZ1bGxZZWFyKCkscz1Cc2UoYSksbj1lLmdldE1vbnRoKCk7cmV0dXJuIHM/cj49MSYmcjw9QjBhW25dOnI+PTEmJnI8PUYwYVtuXX1zZXQoZSxyLGEpe3JldHVybiBlLnNldERhdGUoYSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBlbmUsTlN0PXUoKCk9PntlbygpO3hhKCk7TGEoKTtlbmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJEYXlPZlllYXJQYXJzZXIiKX1wcmlvcml0eT05MDtzdWJwcmlvcml0eT0xO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJEIjpjYXNlIkREIjpyZXR1cm4gYWEobGEuZGF5T2ZZZWFyLGUpO2Nhc2UiRG8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtsZXQgYT1lLmdldEZ1bGxZZWFyKCk7cmV0dXJuIEJzZShhKT9yPj0xJiZyPD0zNjY6cj49MSYmcjw9MzY1fXNldChlLHIsYSl7cmV0dXJuIGUuc2V0TW9udGgoMCxhKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRSIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7ZnVuY3Rpb24gSjModCxlLHIpe2xldCBhPVRhKCkscz1yPy53ZWVrU3RhcnRzT24/P3I/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9hLndlZWtTdGFydHNPbj8/YS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxuPVNlKHQscj8uaW4pLG89bi5nZXREYXkoKSxjPShlJTcrNyklNyxkPTctcyxmPWU8MHx8ZT42P2UtKG8rZCklNzooYytkKSU3LShvK2QpJTc7cmV0dXJuIFJzKG4sZixyKX12YXIgQjdpLGVTPXUoKCk9PntRbigpO1hjKCk7S2UoKTtpKEozLCJzZXREYXkiKTtCN2k9SjN9KTt2YXIgdG5lLE9TdD11KCgpPT57ZVMoKTt4YSgpO3RuZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIkRheVBhcnNlciIpfXByaW9yaXR5PTkwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiBhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9Nn1zZXQoZSxyLGEscyl7cmV0dXJuIGU9SjMoZSxhLHMpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgcm5lLFJTdD11KCgpPT57ZVMoKTt4YSgpO0xhKCk7cm5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiTG9jYWxEYXlQYXJzZXIiKX1wcmlvcml0eT05MDtwYXJzZShlLHIsYSxzKXtsZXQgbj1pKG89PntsZXQgbD1NYXRoLmZsb29yKChvLTEpLzcpKjc7cmV0dXJuKG8rcy53ZWVrU3RhcnRzT24rNiklNytsfSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaChyKXtjYXNlImUiOmNhc2UiZWUiOnJldHVybiBSYShicihyLmxlbmd0aCxlKSxuKTtjYXNlImVvIjpyZXR1cm4gUmEoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KSxuKTtjYXNlImVlZSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiZWVlZWUiOnJldHVybiBhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiZWVlZWVlIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9Nn1zZXQoZSxyLGEscyl7cmV0dXJuIGU9SjMoZSxhLHMpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJxIiwiUSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiRSIsImkiLCJjIiwidCIsIlQiXX19KTt2YXIgYW5lLEZTdD11KCgpPT57ZVMoKTt4YSgpO0xhKCk7YW5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiU3RhbmRBbG9uZUxvY2FsRGF5UGFyc2VyIil9cHJpb3JpdHk9OTA7cGFyc2UoZSxyLGEscyl7bGV0IG49aShvPT57bGV0IGw9TWF0aC5mbG9vcigoby0xKS83KSo3O3JldHVybihvK3Mud2Vla1N0YXJ0c09uKzYpJTcrbH0sInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2gocil7Y2FzZSJjIjpjYXNlImNjIjpyZXR1cm4gUmEoYnIoci5sZW5ndGgsZSksbik7Y2FzZSJjbyI6cmV0dXJuIFJhKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXkifSksbik7Y2FzZSJjY2MiOnJldHVybiBhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlImNjY2NjIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlImNjY2NjYyI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiBhLmRheShlLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTAmJnI8PTZ9c2V0KGUscixhLHMpe3JldHVybiBlPUozKGUsYSxzKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsIkUiLCJpIiwiZSIsInQiLCJUIl19fSk7ZnVuY3Rpb24gaW5lKHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKSxzPSRzZShhLHIpLG49ZS1zO3JldHVybiBScyhhLG4scil9dmFyIG45aSxFOWU9dSgoKT0+e1hjKCk7XzllKCk7S2UoKTtpKGluZSwic2V0SVNPRGF5Iik7bjlpPWluZX0pO3ZhciBzbmUsQlN0PXUoKCk9PntFOWUoKTt4YSgpO0xhKCk7c25lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiSVNPRGF5UGFyc2VyIil9cHJpb3JpdHk9OTA7cGFyc2UoZSxyLGEpe2xldCBzPWkobj0+bj09PTA/NzpuLCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHIpe2Nhc2UiaSI6Y2FzZSJpaSI6cmV0dXJuIGJyKHIubGVuZ3RoLGUpO2Nhc2UiaW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gUmEoYS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscyk7Y2FzZSJpaWlpaSI6cmV0dXJuIFJhKGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscyk7Y2FzZSJpaWlpaWkiOnJldHVybiBSYShhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscyk7ZGVmYXVsdDpyZXR1cm4gUmEoYS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLHMpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0xJiZyPD03fXNldChlLHIsYSl7cmV0dXJuIGU9aW5lKGUsYSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJFIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBubmUsSFN0PXUoKCk9Pnt4YSgpO0xhKCk7bm5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiQU1QTVBhcnNlciIpfXByaW9yaXR5PTgwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJhIjpjYXNlImFhIjpjYXNlImFhYSI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImFhYWFhIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX1zZXQoZSxyLGEpe3JldHVybiBlLnNldEhvdXJzKHliKGEpLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImIiLCJCIiwiSCIsImsiLCJ0IiwiVCJdfX0pO3ZhciBvbmUscVN0PXUoKCk9Pnt4YSgpO0xhKCk7b25lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiQU1QTU1pZG5pZ2h0UGFyc2VyIil9cHJpb3JpdHk9ODA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlImIiOmNhc2UiYmIiOmNhc2UiYmJiIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYmJiYmIiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldChlLHIsYSl7cmV0dXJuIGUuc2V0SG91cnMoeWIoYSksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIGxuZSxWU3Q9dSgoKT0+e3hhKCk7TGEoKTtsbmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJEYXlQZXJpb2RQYXJzZXIiKX1wcmlvcml0eT04MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiQiI6Y2FzZSJCQiI6Y2FzZSJCQkIiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJCQkJCQiI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19c2V0KGUscixhKXtyZXR1cm4gZS5zZXRIb3Vycyh5YihhKSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiYiIsInQiLCJUIl19fSk7dmFyIGNuZSxqU3Q9dSgoKT0+e2VvKCk7eGEoKTtMYSgpO2NuZT1jbGFzcyBleHRlbmRzIE10e3N0YXRpY3tpKHRoaXMsIkhvdXIxdG8xMlBhcnNlciIpfXByaW9yaXR5PTcwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJoIjpyZXR1cm4gYWEobGEuaG91cjEyaCxlKTtjYXNlImhvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gYnIoci5sZW5ndGgsZSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTEmJnI8PTEyfXNldChlLHIsYSl7bGV0IHM9ZS5nZXRIb3VycygpPj0xMjtyZXR1cm4gcyYmYTwxMj9lLnNldEhvdXJzKGErMTIsMCwwLDApOiFzJiZhPT09MTI/ZS5zZXRIb3VycygwLDAsMCwwKTplLnNldEhvdXJzKGEsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiSCIsIksiLCJrIiwidCIsIlQiXX19KTt2YXIgZG5lLFVTdD11KCgpPT57ZW8oKTt4YSgpO0xhKCk7ZG5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiSG91cjB0bzIzUGFyc2VyIil9cHJpb3JpdHk9NzA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIkgiOnJldHVybiBhYShsYS5ob3VyMjNoLGUpO2Nhc2UiSG8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9MjN9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRIb3VycyhhLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwiaCIsIksiLCJrIiwidCIsIlQiXX19KTt2YXIgdW5lLFdTdD11KCgpPT57ZW8oKTt4YSgpO0xhKCk7dW5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiSG91cjBUbzExUGFyc2VyIil9cHJpb3JpdHk9NzA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIksiOnJldHVybiBhYShsYS5ob3VyMTFoLGUpO2Nhc2UiS28iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9MTF9c2V0KGUscixhKXtyZXR1cm4gZS5nZXRIb3VycygpPj0xMiYmYTwxMj9lLnNldEhvdXJzKGErMTIsMCwwLDApOmUuc2V0SG91cnMoYSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJoIiwiSCIsImsiLCJ0IiwiVCJdfX0pO3ZhciBwbmUsR1N0PXUoKCk9PntlbygpO3hhKCk7TGEoKTtwbmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJIb3VyMVRvMjRQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiayI6cmV0dXJuIGFhKGxhLmhvdXIyNGgsZSk7Y2FzZSJrbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIGJyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0xJiZyPD0yNH1zZXQoZSxyLGEpe2xldCBzPWE8PTI0P2ElMjQ6YTtyZXR1cm4gZS5zZXRIb3VycyhzLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwiaCIsIkgiLCJLIiwidCIsIlQiXX19KTt2YXIgZm5lLFlTdD11KCgpPT57ZW8oKTt4YSgpO0xhKCk7Zm5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiTWludXRlUGFyc2VyIil9cHJpb3JpdHk9NjA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIm0iOnJldHVybiBhYShsYS5taW51dGUsZSk7Y2FzZSJtbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJtaW51dGUifSk7ZGVmYXVsdDpyZXR1cm4gYnIoci5sZW5ndGgsZSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTAmJnI8PTU5fXNldChlLHIsYSl7cmV0dXJuIGUuc2V0TWludXRlcyhhLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCJdfX0pO3ZhciBobmUsS1N0PXUoKCk9PntlbygpO3hhKCk7TGEoKTtobmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJTZWNvbmRQYXJzZXIiKX1wcmlvcml0eT01MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UicyI6cmV0dXJuIGFhKGxhLnNlY29uZCxlKTtjYXNlInNvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InNlY29uZCJ9KTtkZWZhdWx0OnJldHVybiBicihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9NTl9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRTZWNvbmRzKGEsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCJdfX0pO3ZhciBtbmUsWlN0PXUoKCk9Pnt4YSgpO0xhKCk7bW5lPWNsYXNzIGV4dGVuZHMgTXR7c3RhdGlje2kodGhpcywiRnJhY3Rpb25PZlNlY29uZFBhcnNlciIpfXByaW9yaXR5PTMwO3BhcnNlKGUscil7bGV0IGE9aShzPT5NYXRoLnRydW5jKHMqTWF0aC5wb3coMTAsLXIubGVuZ3RoKzMpKSwidmFsdWVDYWxsYmFjayIpO3JldHVybiBSYShicihyLmxlbmd0aCxlKSxhKX1zZXQoZSxyLGEpe3JldHVybiBlLnNldE1pbGxpc2Vjb25kcyhhKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIGduZSxRU3Q9dSgoKT0+e1Z0KCk7T2QoKTtlbygpO3hhKCk7TGEoKTtnbmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJJU09UaW1lem9uZVdpdGhaUGFyc2VyIil9cHJpb3JpdHk9MTA7cGFyc2UoZSxyKXtzd2l0Y2gocil7Y2FzZSJYIjpyZXR1cm4gQ2woTWwuYmFzaWNPcHRpb25hbE1pbnV0ZXMsZSk7Y2FzZSJYWCI6cmV0dXJuIENsKE1sLmJhc2ljLGUpO2Nhc2UiWFhYWCI6cmV0dXJuIENsKE1sLmJhc2ljT3B0aW9uYWxTZWNvbmRzLGUpO2Nhc2UiWFhYWFgiOnJldHVybiBDbChNbC5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyxlKTtkZWZhdWx0OnJldHVybiBDbChNbC5leHRlbmRlZCxlKX19c2V0KGUscixhKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD9lOlVlKGUsZS5nZXRUaW1lKCktRWkoZSktYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJ4Il19fSk7dmFyIGJuZSxYU3Q9dSgoKT0+e1Z0KCk7T2QoKTtlbygpO3hhKCk7TGEoKTtibmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJJU09UaW1lem9uZVBhcnNlciIpfXByaW9yaXR5PTEwO3BhcnNlKGUscil7c3dpdGNoKHIpe2Nhc2UieCI6cmV0dXJuIENsKE1sLmJhc2ljT3B0aW9uYWxNaW51dGVzLGUpO2Nhc2UieHgiOnJldHVybiBDbChNbC5iYXNpYyxlKTtjYXNlInh4eHgiOnJldHVybiBDbChNbC5iYXNpY09wdGlvbmFsU2Vjb25kcyxlKTtjYXNlInh4eHh4IjpyZXR1cm4gQ2woTWwuZXh0ZW5kZWRPcHRpb25hbFNlY29uZHMsZSk7ZGVmYXVsdDpyZXR1cm4gQ2woTWwuZXh0ZW5kZWQsZSl9fXNldChlLHIsYSl7cmV0dXJuIHIudGltZXN0YW1wSXNTZXQ/ZTpVZShlLGUuZ2V0VGltZSgpLUVpKGUpLWEpfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIiwiWCJdfX0pO3ZhciB4bmUsSlN0PXUoKCk9PntWdCgpO3hhKCk7TGEoKTt4bmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJUaW1lc3RhbXBTZWNvbmRzUGFyc2VyIil9cHJpb3JpdHk9NDA7cGFyc2UoZSl7cmV0dXJuIFJzZShlKX1zZXQoZSxyLGEpe3JldHVybltVZShlLGEqMWUzKSx7dGltZXN0YW1wSXNTZXQ6ITB9XX1pbmNvbXBhdGlibGVUb2tlbnM9IioifX0pO3ZhciB2bmUsZU10PXUoKCk9PntWdCgpO3hhKCk7TGEoKTt2bmU9Y2xhc3MgZXh0ZW5kcyBNdHtzdGF0aWN7aSh0aGlzLCJUaW1lc3RhbXBNaWxsaXNlY29uZHNQYXJzZXIiKX1wcmlvcml0eT0yMDtwYXJzZShlKXtyZXR1cm4gUnNlKGUpfXNldChlLHIsYSl7cmV0dXJuW1VlKGUsYSkse3RpbWVzdGFtcElzU2V0OiEwfV19aW5jb21wYXRpYmxlVG9rZW5zPSIqIn19KTt2YXIgeW5lLHRNdD11KCgpPT57TVN0KCk7Q1N0KCk7elN0KCk7X1N0KCk7VFN0KCk7TFN0KCk7RFN0KCk7JFN0KCk7QVN0KCk7RVN0KCk7SVN0KCk7UFN0KCk7TlN0KCk7T1N0KCk7UlN0KCk7RlN0KCk7QlN0KCk7SFN0KCk7cVN0KCk7VlN0KCk7alN0KCk7VVN0KCk7V1N0KCk7R1N0KCk7WVN0KCk7S1N0KCk7WlN0KCk7UVN0KCk7WFN0KCk7SlN0KCk7ZU10KCk7eW5lPXtHOm5ldyBPc2UseTpuZXcgSHNlLFk6bmV3IHFzZSxSOm5ldyBWc2UsdTpuZXcganNlLFE6bmV3IFVzZSxxOm5ldyBXc2UsTTpuZXcgR3NlLEw6bmV3IFlzZSx3Om5ldyBac2UsSTpuZXcgWHNlLGQ6bmV3IEpzZSxEOm5ldyBlbmUsRTpuZXcgdG5lLGU6bmV3IHJuZSxjOm5ldyBhbmUsaTpuZXcgc25lLGE6bmV3IG5uZSxiOm5ldyBvbmUsQjpuZXcgbG5lLGg6bmV3IGNuZSxIOm5ldyBkbmUsSzpuZXcgdW5lLGs6bmV3IHBuZSxtOm5ldyBmbmUsczpuZXcgaG5lLFM6bmV3IG1uZSxYOm5ldyBnbmUseDpuZXcgYm5lLHQ6bmV3IHhuZSxUOm5ldyB2bmV9fSk7ZnVuY3Rpb24gd25lKHQsZSxyLGEpe2xldCBzPWkoKCk9PlVlKGE/LmlufHxyLE5hTiksImludmFsaWREYXRlIiksbj1Ec2UoKSxvPWE/LmxvY2FsZT8/bi5sb2NhbGU/P2gxLGw9YT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/bi5maXJzdFdlZWtDb250YWluc0RhdGU/P24ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsYz1hPy53ZWVrU3RhcnRzT24/P2E/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9uLndlZWtTdGFydHNPbj8/bi5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MDtpZighZSlyZXR1cm4gdD9zKCk6U2UocixhPy5pbik7bGV0IGQ9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpsLHdlZWtTdGFydHNPbjpjLGxvY2FsZTpvfSxmPVtuZXcgTnNlKGE/LmluLHIpXSxwPWUubWF0Y2gocTBhKS5tYXAoZz0+e2xldCB5PWdbMF07aWYoeSBpbiBRMyl7bGV0IGs9UTNbeV07cmV0dXJuIGsoZyxvLmZvcm1hdExvbmcpfXJldHVybiBnfSkuam9pbigiIikubWF0Y2goSDBhKSxoPVtdO2ZvcihsZXQgZyBvZiBwKXshYT8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiZNc2UoZykmJlFrKGcsZSx0KSwhYT8udXNlQWRkaXRpb25hbERheU9mWWVhclRva2VucyYmU3NlKGcpJiZRayhnLGUsdCk7bGV0IHk9Z1swXSxrPXluZVt5XTtpZihrKXtsZXR7aW5jb21wYXRpYmxlVG9rZW5zOk19PWs7aWYoQXJyYXkuaXNBcnJheShNKSl7bGV0IF89aC5maW5kKFM9Pk0uaW5jbHVkZXMoUy50b2tlbil8fFMudG9rZW49PT15KTtpZihfKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke18uZnVsbFRva2VufVxgIGFuZCBcYCR7Z31cYCBhdCB0aGUgc2FtZSB0aW1lYCl9ZWxzZSBpZihrLmluY29tcGF0aWJsZVRva2Vucz09PSIqIiYmaC5sZW5ndGg+MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVGhlIGZvcm1hdCBzdHJpbmcgbXVzdG4ndCBjb250YWluIFxgJHtnfVxgIGFuZCBhbnkgb3RoZXIgdG9rZW4gYXQgdGhlIHNhbWUgdGltZWApO2gucHVzaCh7dG9rZW46eSxmdWxsVG9rZW46Z30pO2xldCBOPWsucnVuKHQsZyxvLm1hdGNoLGQpO2lmKCFOKXJldHVybiBzKCk7Zi5wdXNoKE4uc2V0dGVyKSx0PU4ucmVzdH1lbHNle2lmKHkubWF0Y2goVzBhKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGAiK3krImAiKTtpZihnPT09IicnIj9nPSInIjp5PT09IiciJiYoZz1HMGEoZykpLHQuaW5kZXhPZihnKT09PTApdD10LnNsaWNlKGcubGVuZ3RoKTtlbHNlIHJldHVybiBzKCl9fWlmKHQubGVuZ3RoPjAmJlUwYS50ZXN0KHQpKXJldHVybiBzKCk7bGV0IG09Zi5tYXAoZz0+Zy5wcmlvcml0eSkuc29ydCgoZyx5KT0+eS1nKS5maWx0ZXIoKGcseSxrKT0+ay5pbmRleE9mKGcpPT09eSkubWFwKGc9PmYuZmlsdGVyKHk9PnkucHJpb3JpdHk9PT1nKS5zb3J0KCh5LGspPT5rLnN1YlByaW9yaXR5LXkuc3ViUHJpb3JpdHkpKS5tYXAoZz0+Z1swXSksdj1TZShyLGE/LmluKTtpZihpc05hTigrdikpcmV0dXJuIHMoKTtsZXQgYj17fTtmb3IobGV0IGcgb2YgbSl7aWYoIWcudmFsaWRhdGUodixkKSlyZXR1cm4gcygpO2xldCB5PWcuc2V0KHYsYixkKTtBcnJheS5pc0FycmF5KHkpPyh2PXlbMF0sT2JqZWN0LmFzc2lnbihiLHlbMV0pKTp2PXl9cmV0dXJuIHZ9ZnVuY3Rpb24gRzBhKHQpe3JldHVybiB0Lm1hdGNoKFYwYSlbMV0ucmVwbGFjZShqMGEsIiciKX12YXIgSDBhLHEwYSxWMGEsajBhLFUwYSxXMGEsZ2JpLEk5ZT11KCgpPT57WmYoKTt4OWUoKTt2OWUoKTtWdCgpO3o5ZSgpO0tlKCk7RDllKCk7dE10KCk7SDBhPS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2cscTBhPS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLFYwYT0vXicoW15dKj8pJz8kLyxqMGE9LycnL2csVTBhPS9cUy8sVzBhPS9bYS16QS1aXS87aSh3bmUsInBhcnNlIik7aShHMGEsImNsZWFuRXNjYXBlZFN0cmluZyIpO2diaT13bmV9KTtmdW5jdGlvbiByTXQodCxlLHIpe3JldHVybiBfbih3bmUodCxlLG5ldyBEYXRlLHIpKX12YXIgd2JpLGFNdD11KCgpPT57RmQoKTtJOWUoKTtpKHJNdCwiaXNNYXRjaCIpO3diaT1yTXR9KTtmdW5jdGlvbiBpTXQodCxlKXtyZXR1cm4gU2UodCxlPy5pbikuZ2V0RGF5KCk9PT0xfXZhciBDYmksc010PXUoKCk9PntLZSgpO2koaU10LCJpc01vbmRheSIpO0NiaT1pTXR9KTtmdW5jdGlvbiBuTXQodCl7cmV0dXJuK1NlKHQpPERhdGUubm93KCl9dmFyIExiaSxvTXQ9dSgoKT0+e0tlKCk7aShuTXQsImlzUGFzdCIpO0xiaT1uTXR9KTtmdW5jdGlvbiB0Uyh0LGUpe2xldCByPVNlKHQsZT8uaW4pO3JldHVybiByLnNldE1pbnV0ZXMoMCwwLDApLHJ9dmFyIEViaSxQOWU9dSgoKT0+e0tlKCk7aSh0Uywic3RhcnRPZkhvdXIiKTtFYmk9dFN9KTtmdW5jdGlvbiBrbmUodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSk7cmV0dXJuK3RTKGEpPT0rdFMocyl9dmFyIFJiaSxOOWU9dSgoKT0+e09hKCk7UDllKCk7aShrbmUsImlzU2FtZUhvdXIiKTtSYmk9a25lfSk7ZnVuY3Rpb24gd2IodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSk7cmV0dXJuK1lhKGEscik9PStZYShzLHIpfXZhciBWYmksU25lPXUoKCk9PntPYSgpO2syKCk7aSh3YiwiaXNTYW1lV2VlayIpO1ZiaT13Yn0pO2Z1bmN0aW9uIE1uZSh0LGUscil7cmV0dXJuIHdiKHQsZSx7Li4ucix3ZWVrU3RhcnRzT246MX0pfXZhciBHYmksTzllPXUoKCk9PntTbmUoKTtpKE1uZSwiaXNTYW1lSVNPV2VlayIpO0diaT1NbmV9KTtmdW5jdGlvbiBsTXQodCxlLHIpe2xldFthLHNdPUJ0KHI/LmluLHQsZSk7cmV0dXJuK0IxKGEpPT0rQjEocyl9dmFyIFhiaSxjTXQ9dSgoKT0+e2FiKCk7T2EoKTtpKGxNdCwiaXNTYW1lSVNPV2Vla1llYXIiKTtYYmk9bE10fSk7ZnVuY3Rpb24gclModCxlKXtsZXQgcj1TZSh0LGU/LmluKTtyZXR1cm4gci5zZXRTZWNvbmRzKDAsMCkscn12YXIgcnhpLFI5ZT11KCgpPT57S2UoKTtpKHJTLCJzdGFydE9mTWludXRlIik7cnhpPXJTfSk7ZnVuY3Rpb24gQ25lKHQsZSl7cmV0dXJuK3JTKHQpPT0rclMoZSl9dmFyIG54aSxGOWU9dSgoKT0+e1I5ZSgpO2koQ25lLCJpc1NhbWVNaW51dGUiKTtueGk9Q25lfSk7ZnVuY3Rpb24gem5lKHQsZSxyKXtsZXRbYSxzXT1CdChyPy5pbix0LGUpO3JldHVybiBhLmdldEZ1bGxZZWFyKCk9PT1zLmdldEZ1bGxZZWFyKCkmJmEuZ2V0TW9udGgoKT09PXMuZ2V0TW9udGgoKX12YXIgZHhpLEI5ZT11KCgpPT57T2EoKTtpKHpuZSwiaXNTYW1lTW9udGgiKTtkeGk9em5lfSk7ZnVuY3Rpb24gX25lKHQsZSxyKXtsZXRbYSxzXT1CdChyPy5pbix0LGUpO3JldHVybituMChhKT09K24wKHMpfXZhciBteGksSDllPXUoKCk9PntPYSgpO2ZzZSgpO2koX25lLCJpc1NhbWVRdWFydGVyIik7bXhpPV9uZX0pO2Z1bmN0aW9uIGFTKHQsZSl7bGV0IHI9U2UodCxlPy5pbik7cmV0dXJuIHIuc2V0TWlsbGlzZWNvbmRzKDApLHJ9dmFyIHZ4aSxxOWU9dSgoKT0+e0tlKCk7aShhUywic3RhcnRPZlNlY29uZCIpO3Z4aT1hU30pO2Z1bmN0aW9uIFRuZSh0LGUpe3JldHVybithUyh0KT09K2FTKGUpfXZhciBTeGksVjllPXUoKCk9PntxOWUoKTtpKFRuZSwiaXNTYW1lU2Vjb25kIik7U3hpPVRuZX0pO2Z1bmN0aW9uIExuZSh0LGUscil7bGV0W2Esc109QnQocj8uaW4sdCxlKTtyZXR1cm4gYS5nZXRGdWxsWWVhcigpPT09cy5nZXRGdWxsWWVhcigpfXZhciBfeGksajllPXUoKCk9PntPYSgpO2koTG5lLCJpc1NhbWVZZWFyIik7X3hpPUxuZX0pO2Z1bmN0aW9uIGRNdCh0LGUpe3JldHVybiBrbmUoU2UodCxlPy5pbiksSXIoZT8uaW58fHQpKX12YXIgRXhpLHVNdD11KCgpPT57RnMoKTtOOWUoKTtLZSgpO2koZE10LCJpc1RoaXNIb3VyIik7RXhpPWRNdH0pO2Z1bmN0aW9uIHBNdCh0LGUpe3JldHVybiBNbmUoVWUoZT8uaW58fHQsdCksSXIoZT8uaW58fHQpKX12YXIgRnhpLGZNdD11KCgpPT57VnQoKTtGcygpO085ZSgpO2kocE10LCJpc1RoaXNJU09XZWVrIik7RnhpPXBNdH0pO2Z1bmN0aW9uIGhNdCh0KXtyZXR1cm4gQ25lKHQsSXIodCkpfXZhciBqeGksbU10PXUoKCk9PntGcygpO0Y5ZSgpO2koaE10LCJpc1RoaXNNaW51dGUiKTtqeGk9aE10fSk7ZnVuY3Rpb24gZ010KHQsZSl7cmV0dXJuIHpuZShVZShlPy5pbnx8dCx0KSxJcihlPy5pbnx8dCkpfXZhciBaeGksYk10PXUoKCk9PntWdCgpO0ZzKCk7QjllKCk7aShnTXQsImlzVGhpc01vbnRoIik7WnhpPWdNdH0pO2Z1bmN0aW9uIHhNdCh0LGUpe3JldHVybiBfbmUoVWUoZT8uaW58fHQsdCksSXIoZT8uaW58fHQpKX12YXIgcnZpLHZNdD11KCgpPT57VnQoKTtGcygpO0g5ZSgpO2koeE10LCJpc1RoaXNRdWFydGVyIik7cnZpPXhNdH0pO2Z1bmN0aW9uIHlNdCh0KXtyZXR1cm4gVG5lKHQsSXIodCkpfXZhciBvdmksd010PXUoKCk9PntGcygpO1Y5ZSgpO2koeU10LCJpc1RoaXNTZWNvbmQiKTtvdmk9eU10fSk7ZnVuY3Rpb24ga010KHQsZSl7cmV0dXJuIHdiKFVlKGU/LmlufHx0LHQpLElyKGU/LmlufHx0KSxlKX12YXIgZnZpLFNNdD11KCgpPT57VnQoKTtGcygpO1NuZSgpO2koa010LCJpc1RoaXNXZWVrIik7ZnZpPWtNdH0pO2Z1bmN0aW9uIE1NdCh0LGUpe3JldHVybiBMbmUoVWUoZT8uaW58fHQsdCksSXIoZT8uaW58fHQpKX12YXIgdnZpLENNdD11KCgpPT57VnQoKTtGcygpO2o5ZSgpO2koTU10LCJpc1RoaXNZZWFyIik7dnZpPU1NdH0pO2Z1bmN0aW9uIHpNdCh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXREYXkoKT09PTR9dmFyIFN2aSxfTXQ9dSgoKT0+e0tlKCk7aSh6TXQsImlzVGh1cnNkYXkiKTtTdmk9ek10fSk7ZnVuY3Rpb24gVE10KHQsZSl7cmV0dXJuIGEwKFVlKGU/LmlufHx0LHQpLElyKGU/LmlufHx0KSl9dmFyIEx2aSxMTXQ9dSgoKT0+e1Z0KCk7RnMoKTtuYigpO2koVE10LCJpc1RvZGF5Iik7THZpPVRNdH0pO2Z1bmN0aW9uIERNdCh0LGUpe3JldHVybiBhMCh0LFJzKElyKGU/LmlufHx0KSwxKSxlKX12YXIgUHZpLCRNdD11KCgpPT57WGMoKTtGcygpO25iKCk7aShETXQsImlzVG9tb3Jyb3ciKTtQdmk9RE10fSk7ZnVuY3Rpb24gQU10KHQsZSl7cmV0dXJuIFNlKHQsZT8uaW4pLmdldERheSgpPT09Mn12YXIgRnZpLEVNdD11KCgpPT57S2UoKTtpKEFNdCwiaXNUdWVzZGF5Iik7RnZpPUFNdH0pO2Z1bmN0aW9uIElNdCh0LGUpe3JldHVybiBTZSh0LGU/LmluKS5nZXREYXkoKT09PTN9dmFyIFZ2aSxQTXQ9dSgoKT0+e0tlKCk7aShJTXQsImlzV2VkbmVzZGF5Iik7VnZpPUlNdH0pO2Z1bmN0aW9uIE5NdCh0LGUscil7bGV0IGE9K1NlKHQscj8uaW4pLFtzLG5dPVsrU2UoZS5zdGFydCxyPy5pbiksK1NlKGUuZW5kLHI/LmluKV0uc29ydCgobyxsKT0+by1sKTtyZXR1cm4gYT49cyYmYTw9bn12YXIgR3ZpLE9NdD11KCgpPT57S2UoKTtpKE5NdCwiaXNXaXRoaW5JbnRlcnZhbCIpO0d2aT1OTXR9KTtmdW5jdGlvbiBldSh0LGUscil7cmV0dXJuIFJzKHQsLWUscil9dmFyIFF2aSxpUz11KCgpPT57WGMoKTtpKGV1LCJzdWJEYXlzIik7UXZpPWV1fSk7ZnVuY3Rpb24gUk10KHQsZSl7cmV0dXJuIGEwKFVlKGU/LmlufHx0LHQpLGV1KElyKGU/LmlufHx0KSwxKSl9dmFyIGl5aSxGTXQ9dSgoKT0+e1Z0KCk7RnMoKTtuYigpO2lTKCk7aShSTXQsImlzWWVzdGVyZGF5Iik7aXlpPVJNdH0pO2Z1bmN0aW9uIEJNdCh0LGUpe2xldCByPVNlKHQsZT8uaW4pLGE9ci5nZXRGdWxsWWVhcigpLHM9OStNYXRoLmZsb29yKGEvMTApKjEwO3JldHVybiByLnNldEZ1bGxZZWFyKHMrMSwwLDApLHIuc2V0SG91cnMoMCwwLDAsMCksU2UocixlPy5pbil9dmFyIGx5aSxITXQ9dSgoKT0+e0tlKCk7aShCTXQsImxhc3REYXlPZkRlY2FkZSIpO2x5aT1CTXR9KTtmdW5jdGlvbiBEbmUodCxlKXtsZXQgcj1UYSgpLGE9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/ci53ZWVrU3RhcnRzT24/P3IubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAscz1TZSh0LGU/LmluKSxuPXMuZ2V0RGF5KCksbz0objxhPy03OjApKzYtKG4tYSk7cmV0dXJuIHMuc2V0SG91cnMoMCwwLDAsMCkscy5zZXREYXRlKHMuZ2V0RGF0ZSgpK28pLHN9dmFyIGZ5aSxVOWU9dSgoKT0+e1FuKCk7S2UoKTtpKERuZSwibGFzdERheU9mV2VlayIpO2Z5aT1EbmV9KTtmdW5jdGlvbiBxTXQodCxlKXtyZXR1cm4gRG5lKHQsey4uLmUsd2Vla1N0YXJ0c09uOjF9KX12YXIgYnlpLFZNdD11KCgpPT57VTllKCk7aShxTXQsImxhc3REYXlPZklTT1dlZWsiKTtieWk9cU10fSk7ZnVuY3Rpb24gak10KHQsZSl7bGV0IHI9RW8odCxlKSxhPVVlKGU/LmlufHx0LDApO2Euc2V0RnVsbFllYXIocisxLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKTtsZXQgcz1icyhhLGUpO3JldHVybiBzLnNldERhdGUocy5nZXREYXRlKCktMSksc312YXIgU3lpLFVNdD11KCgpPT57VnQoKTtVMygpO3QwKCk7aShqTXQsImxhc3REYXlPZklTT1dlZWtZZWFyIik7U3lpPWpNdH0pO2Z1bmN0aW9uIFdNdCh0LGUpe2xldCByPVNlKHQsZT8uaW4pLGE9ci5nZXRNb250aCgpLHM9YS1hJTMrMztyZXR1cm4gci5zZXRNb250aChzLDApLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgX3lpLEdNdD11KCgpPT57S2UoKTtpKFdNdCwibGFzdERheU9mUXVhcnRlciIpO195aT1XTXR9KTtmdW5jdGlvbiBZTXQodCxlKXtsZXQgcj1TZSh0LGU/LmluKSxhPXIuZ2V0RnVsbFllYXIoKTtyZXR1cm4gci5zZXRGdWxsWWVhcihhKzEsMCwwKSxyLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyICR5aSxLTXQ9dSgoKT0+e0tlKCk7aShZTXQsImxhc3REYXlPZlllYXIiKTskeWk9WU10fSk7ZnVuY3Rpb24gWk10KHQsZSl7bGV0IHI9U2UodCk7aWYoIV9uKHIpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYT1lLm1hdGNoKFkwYSk7cmV0dXJuIGE/YS5tYXAobj0+e2lmKG49PT0iJyciKXJldHVybiInIjtsZXQgbz1uWzBdO2lmKG89PT0iJyIpcmV0dXJuIFgwYShuKTtsZXQgbD1IMVtvXTtpZihsKXJldHVybiBsKHIsbik7aWYoby5tYXRjaChRMGEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIrbysiYCIpO3JldHVybiBufSkuam9pbigiIik6IiJ9ZnVuY3Rpb24gWDBhKHQpe2xldCBlPXQubWF0Y2goSzBhKTtyZXR1cm4gZT9lWzFdLnJlcGxhY2UoWjBhLCInIik6dH12YXIgWTBhLEswYSxaMGEsUTBhLE95aSxRTXQ9dSgoKT0+e2I5ZSgpO0ZkKCk7S2UoKTtZMGE9LyhcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csSzBhPS9eJyhbXl0qPyknPyQvLFowYT0vJycvZyxRMGE9L1thLXpBLVpdLztpKFpNdCwibGlnaHRGb3JtYXQiKTtpKFgwYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7T3lpPVpNdH0pO2Z1bmN0aW9uIFhNdCh7eWVhcnM6dCxtb250aHM6ZSx3ZWVrczpyLGRheXM6YSxob3VyczpzLG1pbnV0ZXM6bixzZWNvbmRzOm99KXtsZXQgbD0wO3QmJihsKz10KjM2NS4yNDI1KSxlJiYobCs9ZSooMzY1LjI0MjUvMTIpKSxyJiYobCs9cio3KSxhJiYobCs9YSk7bGV0IGM9bCoyNCo2MCo2MDtyZXR1cm4gcyYmKGMrPXMqNjAqNjApLG4mJihjKz1uKjYwKSxvJiYoYys9byksTWF0aC50cnVuYyhjKjFlMyl9dmFyIEh5aSxKTXQ9dSgoKT0+e2tyKCk7aShYTXQsIm1pbGxpc2Vjb25kcyIpO0h5aT1YTXR9KTtmdW5jdGlvbiBlQ3QodCl7bGV0IGU9dC9GMTtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgVXlpLHRDdD11KCgpPT57a3IoKTtpKGVDdCwibWlsbGlzZWNvbmRzVG9Ib3VycyIpO1V5aT1lQ3R9KTtmdW5jdGlvbiByQ3QodCl7bGV0IGU9dC9abjtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgS3lpLGFDdD11KCgpPT57a3IoKTtpKHJDdCwibWlsbGlzZWNvbmRzVG9NaW51dGVzIik7S3lpPXJDdH0pO2Z1bmN0aW9uIGlDdCh0KXtsZXQgZT10L0pnO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBKeWksc0N0PXUoKCk9PntrcigpO2koaUN0LCJtaWxsaXNlY29uZHNUb1NlY29uZHMiKTtKeWk9aUN0fSk7ZnVuY3Rpb24gbkN0KHQpe2xldCBlPXQvUGllO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBhd2ksb0N0PXUoKCk9PntrcigpO2kobkN0LCJtaW51dGVzVG9Ib3VycyIpO2F3aT1uQ3R9KTtmdW5jdGlvbiBsQ3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCpabil9dmFyIG93aSxjQ3Q9dSgoKT0+e2tyKCk7aShsQ3QsIm1pbnV0ZXNUb01pbGxpc2Vjb25kcyIpO293aT1sQ3R9KTtmdW5jdGlvbiBkQ3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCp0Yil9dmFyIHV3aSx1Q3Q9dSgoKT0+e2tyKCk7aShkQ3QsIm1pbnV0ZXNUb1NlY29uZHMiKTt1d2k9ZEN0fSk7ZnVuY3Rpb24gcEN0KHQpe2xldCBlPXQvTmllO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBtd2ksZkN0PXUoKCk9PntrcigpO2kocEN0LCJtb250aHNUb1F1YXJ0ZXJzIik7bXdpPXBDdH0pO2Z1bmN0aW9uIGhDdCh0KXtsZXQgZT10L09pZTtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgdndpLG1DdD11KCgpPT57a3IoKTtpKGhDdCwibW9udGhzVG9ZZWFycyIpO3Z3aT1oQ3R9KTtmdW5jdGlvbiB0byh0LGUscil7bGV0IGE9ZS1YMyh0LHIpO3JldHVybiBhPD0wJiYoYSs9NyksUnModCxhLHIpfXZhciBNd2ksSGQ9dSgoKT0+e1hjKCk7SmsoKTtpKHRvLCJuZXh0RGF5Iik7TXdpPXRvfSk7ZnVuY3Rpb24gZ0N0KHQsZSl7cmV0dXJuIHRvKHQsNSxlKX12YXIgVHdpLGJDdD11KCgpPT57SGQoKTtpKGdDdCwibmV4dEZyaWRheSIpO1R3aT1nQ3R9KTtmdW5jdGlvbiB4Q3QodCxlKXtyZXR1cm4gdG8odCwxLGUpfXZhciBBd2ksdkN0PXUoKCk9PntIZCgpO2koeEN0LCJuZXh0TW9uZGF5Iik7QXdpPXhDdH0pO2Z1bmN0aW9uIHlDdCh0LGUpe3JldHVybiB0byh0LDYsZSl9dmFyIE53aSx3Q3Q9dSgoKT0+e0hkKCk7aSh5Q3QsIm5leHRTYXR1cmRheSIpO053aT15Q3R9KTtmdW5jdGlvbiBrQ3QodCxlKXtyZXR1cm4gdG8odCwwLGUpfXZhciBCd2ksU0N0PXUoKCk9PntIZCgpO2koa0N0LCJuZXh0U3VuZGF5Iik7QndpPWtDdH0pO2Z1bmN0aW9uIE1DdCh0LGUpe3JldHVybiB0byh0LDQsZSl9dmFyIGp3aSxDQ3Q9dSgoKT0+e0hkKCk7aShNQ3QsIm5leHRUaHVyc2RheSIpO2p3aT1NQ3R9KTtmdW5jdGlvbiB6Q3QodCxlKXtyZXR1cm4gdG8odCwyLGUpfXZhciBZd2ksX0N0PXUoKCk9PntIZCgpO2koekN0LCJuZXh0VHVlc2RheSIpO1l3aT16Q3R9KTtmdW5jdGlvbiBUQ3QodCxlKXtyZXR1cm4gdG8odCwzLGUpfXZhciBYd2ksTEN0PXUoKCk9PntIZCgpO2koVEN0LCJuZXh0V2VkbmVzZGF5Iik7WHdpPVRDdH0pO2Z1bmN0aW9uICRDdCh0LGUpe2xldCByPWkoKCk9PlVlKGU/LmluLE5hTiksImludmFsaWREYXRlIiksYT1lPy5hZGRpdGlvbmFsRGlnaXRzPz8yLHM9cmRhKHQpLG47aWYocy5kYXRlKXtsZXQgZD1hZGEocy5kYXRlLGEpO249aWRhKGQucmVzdERhdGVTdHJpbmcsZC55ZWFyKX1pZighbnx8aXNOYU4oK24pKXJldHVybiByKCk7bGV0IG89K24sbD0wLGM7aWYocy50aW1lJiYobD1zZGEocy50aW1lKSxpc05hTihsKSkpcmV0dXJuIHIoKTtpZihzLnRpbWV6b25lKXtpZihjPW5kYShzLnRpbWV6b25lKSxpc05hTihjKSlyZXR1cm4gcigpfWVsc2V7bGV0IGQ9bmV3IERhdGUobytsKSxmPVNlKDAsZT8uaW4pO3JldHVybiBmLnNldEZ1bGxZZWFyKGQuZ2V0VVRDRnVsbFllYXIoKSxkLmdldFVUQ01vbnRoKCksZC5nZXRVVENEYXRlKCkpLGYuc2V0SG91cnMoZC5nZXRVVENIb3VycygpLGQuZ2V0VVRDTWludXRlcygpLGQuZ2V0VVRDU2Vjb25kcygpLGQuZ2V0VVRDTWlsbGlzZWNvbmRzKCkpLGZ9cmV0dXJuIFNlKG8rbCtjLGU/LmluKX1mdW5jdGlvbiByZGEodCl7bGV0IGU9e30scj10LnNwbGl0KCRuZS5kYXRlVGltZURlbGltaXRlciksYTtpZihyLmxlbmd0aD4yKXJldHVybiBlO2lmKC86Ly50ZXN0KHJbMF0pP2E9clswXTooZS5kYXRlPXJbMF0sYT1yWzFdLCRuZS50aW1lWm9uZURlbGltaXRlci50ZXN0KGUuZGF0ZSkmJihlLmRhdGU9dC5zcGxpdCgkbmUudGltZVpvbmVEZWxpbWl0ZXIpWzBdLGE9dC5zdWJzdHIoZS5kYXRlLmxlbmd0aCx0Lmxlbmd0aCkpKSxhKXtsZXQgcz0kbmUudGltZXpvbmUuZXhlYyhhKTtzPyhlLnRpbWU9YS5yZXBsYWNlKHNbMV0sIiIpLGUudGltZXpvbmU9c1sxXSk6ZS50aW1lPWF9cmV0dXJuIGV9ZnVuY3Rpb24gYWRhKHQsZSl7bGV0IHI9bmV3IFJlZ0V4cCgiXig/OihcXGR7NH18WystXVxcZHsiKyg0K2UpKyJ9KXwoXFxkezJ9fFsrLV1cXGR7IisoMitlKSsifSkkKSIpLGE9dC5tYXRjaChyKTtpZighYSlyZXR1cm57eWVhcjpOYU4scmVzdERhdGVTdHJpbmc6IiJ9O2xldCBzPWFbMV0/cGFyc2VJbnQoYVsxXSk6bnVsbCxuPWFbMl0/cGFyc2VJbnQoYVsyXSk6bnVsbDtyZXR1cm57eWVhcjpuPT09bnVsbD9zOm4qMTAwLHJlc3REYXRlU3RyaW5nOnQuc2xpY2UoKGFbMV18fGFbMl0pLmxlbmd0aCl9fWZ1bmN0aW9uIGlkYSh0LGUpe2lmKGU9PT1udWxsKXJldHVybiBuZXcgRGF0ZShOYU4pO2xldCByPXQubWF0Y2goSjBhKTtpZighcilyZXR1cm4gbmV3IERhdGUoTmFOKTtsZXQgYT0hIXJbNF0scz1zUyhyWzFdKSxuPXNTKHJbMl0pLTEsbz1zUyhyWzNdKSxsPXNTKHJbNF0pLGM9c1Mocls1XSktMTtpZihhKXJldHVybiB1ZGEoZSxsLGMpP29kYShlLGwsYyk6bmV3IERhdGUoTmFOKTt7bGV0IGQ9bmV3IERhdGUoMCk7cmV0dXJuIWNkYShlLG4sbyl8fCFkZGEoZSxzKT9uZXcgRGF0ZShOYU4pOihkLnNldFVUQ0Z1bGxZZWFyKGUsbixNYXRoLm1heChzLG8pKSxkKX19ZnVuY3Rpb24gc1ModCl7cmV0dXJuIHQ/cGFyc2VJbnQodCk6MX1mdW5jdGlvbiBzZGEodCl7bGV0IGU9dC5tYXRjaChlZGEpO2lmKCFlKXJldHVybiBOYU47bGV0IHI9VzllKGVbMV0pLGE9VzllKGVbMl0pLHM9VzllKGVbM10pO3JldHVybiBwZGEocixhLHMpP3IqRjErYSpabitzKjFlMzpOYU59ZnVuY3Rpb24gVzllKHQpe3JldHVybiB0JiZwYXJzZUZsb2F0KHQucmVwbGFjZSgiLCIsIi4iKSl8fDB9ZnVuY3Rpb24gbmRhKHQpe2lmKHQ9PT0iWiIpcmV0dXJuIDA7bGV0IGU9dC5tYXRjaCh0ZGEpO2lmKCFlKXJldHVybiAwO2xldCByPWVbMV09PT0iKyI/LTE6MSxhPXBhcnNlSW50KGVbMl0pLHM9ZVszXSYmcGFyc2VJbnQoZVszXSl8fDA7cmV0dXJuIGZkYShhLHMpP3IqKGEqRjErcypabik6TmFOfWZ1bmN0aW9uIG9kYSh0LGUscil7bGV0IGE9bmV3IERhdGUoMCk7YS5zZXRVVENGdWxsWWVhcih0LDAsNCk7bGV0IHM9YS5nZXRVVENEYXkoKXx8NyxuPShlLTEpKjcrcisxLXM7cmV0dXJuIGEuc2V0VVRDRGF0ZShhLmdldFVUQ0RhdGUoKStuKSxhfWZ1bmN0aW9uIERDdCh0KXtyZXR1cm4gdCU0MDA9PT0wfHx0JTQ9PT0wJiZ0JTEwMCE9PTB9ZnVuY3Rpb24gY2RhKHQsZSxyKXtyZXR1cm4gZT49MCYmZTw9MTEmJnI+PTEmJnI8PShsZGFbZV18fChEQ3QodCk/Mjk6MjgpKX1mdW5jdGlvbiBkZGEodCxlKXtyZXR1cm4gZT49MSYmZTw9KERDdCh0KT8zNjY6MzY1KX1mdW5jdGlvbiB1ZGEodCxlLHIpe3JldHVybiBlPj0xJiZlPD01MyYmcj49MCYmcjw9Nn1mdW5jdGlvbiBwZGEodCxlLHIpe3JldHVybiB0PT09MjQ/ZT09PTAmJnI9PT0wOnI+PTAmJnI8NjAmJmU+PTAmJmU8NjAmJnQ+PTAmJnQ8MjV9ZnVuY3Rpb24gZmRhKHQsZSl7cmV0dXJuIGU+PTAmJmU8PTU5fXZhciAkbmUsSjBhLGVkYSx0ZGEsbGRhLGlraSxBQ3Q9dSgoKT0+e2tyKCk7VnQoKTtLZSgpO2koJEN0LCJwYXJzZUlTTyIpOyRuZT17ZGF0ZVRpbWVEZWxpbWl0ZXI6L1tUIF0vLHRpbWVab25lRGVsaW1pdGVyOi9bWiBdL2ksdGltZXpvbmU6LyhbWistXS4qKSQvfSxKMGE9L14tPyg/OihcZHszfSl8KFxkezJ9KSg/Oi0/KFxkezJ9KSk/fFcoXGR7Mn0pKD86LT8oXGR7MX0pKT98KSQvLGVkYT0vXihcZHsyfSg/OlsuLF1cZCopPykoPzo6PyhcZHsyfSg/OlsuLF1cZCopPykpPyg/Ojo/KFxkezJ9KD86Wy4sXVxkKik/KSk/JC8sdGRhPS9eKFsrLV0pKFxkezJ9KSg/Ojo/KFxkezJ9KSk/JC87aShyZGEsInNwbGl0RGF0ZVN0cmluZyIpO2koYWRhLCJwYXJzZVllYXIiKTtpKGlkYSwicGFyc2VEYXRlIik7aShzUywicGFyc2VEYXRlVW5pdCIpO2koc2RhLCJwYXJzZVRpbWUiKTtpKFc5ZSwicGFyc2VUaW1lVW5pdCIpO2kobmRhLCJwYXJzZVRpbWV6b25lIik7aShvZGEsImRheU9mSVNPV2Vla1llYXIiKTtsZGE9WzMxLG51bGwsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO2koREN0LCJpc0xlYXBZZWFySW5kZXgiKTtpKGNkYSwidmFsaWRhdGVEYXRlIik7aShkZGEsInZhbGlkYXRlRGF5T2ZZZWFyRGF0ZSIpO2kodWRhLCJ2YWxpZGF0ZVdlZWtEYXRlIik7aShwZGEsInZhbGlkYXRlVGltZSIpO2koZmRhLCJ2YWxpZGF0ZVRpbWV6b25lIik7aWtpPSRDdH0pO2Z1bmN0aW9uIEVDdCh0LGUpe2xldCByPXQubWF0Y2goLyhcZHs0fSktKFxkezJ9KS0oXGR7Mn0pW1QgXShcZHsyfSk6KFxkezJ9KTooXGR7Mn0pKD86XC4oXGR7MCw3fSkpPyg/Olp8KC4pKFxkezJ9KTo/KFxkezJ9KT8pPy8pO3JldHVybiByP1NlKERhdGUuVVRDKCtyWzFdLCtyWzJdLTEsK3JbM10sK3JbNF0tKCtyWzldfHwwKSoocls4XT09Ii0iPy0xOjEpLCtyWzVdLSgrclsxMF18fDApKihyWzhdPT0iLSI/LTE6MSksK3JbNl0sKygocls3XXx8IjAiKSsiMDAiKS5zdWJzdHJpbmcoMCwzKSksZT8uaW4pOlNlKE5hTixlPy5pbil9dmFyIGxraSxJQ3Q9dSgoKT0+e0tlKCk7aShFQ3QsInBhcnNlSlNPTiIpO2xraT1FQ3R9KTtmdW5jdGlvbiBybyh0LGUscil7bGV0IGE9WDModCxyKS1lO3JldHVybiBhPD0wJiYoYSs9NyksZXUodCxhLHIpfXZhciBma2kscWQ9dSgoKT0+e0prKCk7aVMoKTtpKHJvLCJwcmV2aW91c0RheSIpO2ZraT1yb30pO2Z1bmN0aW9uIFBDdCh0LGUpe3JldHVybiBybyh0LDUsZSl9dmFyIGJraSxOQ3Q9dSgoKT0+e3FkKCk7aShQQ3QsInByZXZpb3VzRnJpZGF5Iik7YmtpPVBDdH0pO2Z1bmN0aW9uIE9DdCh0LGUpe3JldHVybiBybyh0LDEsZSl9dmFyIHdraSxSQ3Q9dSgoKT0+e3FkKCk7aShPQ3QsInByZXZpb3VzTW9uZGF5Iik7d2tpPU9DdH0pO2Z1bmN0aW9uIEZDdCh0LGUpe3JldHVybiBybyh0LDYsZSl9dmFyIENraSxCQ3Q9dSgoKT0+e3FkKCk7aShGQ3QsInByZXZpb3VzU2F0dXJkYXkiKTtDa2k9RkN0fSk7ZnVuY3Rpb24gSEN0KHQsZSl7cmV0dXJuIHJvKHQsMCxlKX12YXIgTGtpLHFDdD11KCgpPT57cWQoKTtpKEhDdCwicHJldmlvdXNTdW5kYXkiKTtMa2k9SEN0fSk7ZnVuY3Rpb24gVkN0KHQsZSl7cmV0dXJuIHJvKHQsNCxlKX12YXIgRWtpLGpDdD11KCgpPT57cWQoKTtpKFZDdCwicHJldmlvdXNUaHVyc2RheSIpO0VraT1WQ3R9KTtmdW5jdGlvbiBVQ3QodCxlKXtyZXR1cm4gcm8odCwyLGUpfXZhciBPa2ksV0N0PXUoKCk9PntxZCgpO2koVUN0LCJwcmV2aW91c1R1ZXNkYXkiKTtPa2k9VUN0fSk7ZnVuY3Rpb24gR0N0KHQsZSl7cmV0dXJuIHJvKHQsMyxlKX12YXIgSGtpLFlDdD11KCgpPT57cWQoKTtpKEdDdCwicHJldmlvdXNXZWRuZXNkYXkiKTtIa2k9R0N0fSk7ZnVuY3Rpb24gS0N0KHQpe3JldHVybiBNYXRoLnRydW5jKHQqTmllKX12YXIgVWtpLFpDdD11KCgpPT57a3IoKTtpKEtDdCwicXVhcnRlcnNUb01vbnRocyIpO1VraT1LQ3R9KTtmdW5jdGlvbiBRQ3QodCl7bGV0IGU9dC9SaWU7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIEtraSxYQ3Q9dSgoKT0+e2tyKCk7aShRQ3QsInF1YXJ0ZXJzVG9ZZWFycyIpO0traT1RQ3R9KTtmdW5jdGlvbiBKQ3QodCxlKXtsZXQgcj1lPy5uZWFyZXN0VG8/PzE7aWYocjwxfHxyPjEyKXJldHVybiBVZShlPy5pbnx8dCxOYU4pO2xldCBhPVNlKHQsZT8uaW4pLHM9YS5nZXRNaW51dGVzKCkvNjAsbj1hLmdldFNlY29uZHMoKS82MC82MCxvPWEuZ2V0TWlsbGlzZWNvbmRzKCkvMWUzLzYwLzYwLGw9YS5nZXRIb3VycygpK3MrbitvLGM9ZT8ucm91bmRpbmdNZXRob2Q/PyJyb3VuZCIsZj1KbihjKShsL3IpKnI7cmV0dXJuIGEuc2V0SG91cnMoZiwwLDAsMCksYX12YXIgdFNpLGV6dD11KCgpPT57QmQoKTtWdCgpO0tlKCk7aShKQ3QsInJvdW5kVG9OZWFyZXN0SG91cnMiKTt0U2k9SkN0fSk7ZnVuY3Rpb24gdHp0KHQsZSl7bGV0IHI9ZT8ubmVhcmVzdFRvPz8xO2lmKHI8MXx8cj4zMClyZXR1cm4gVWUodCxOYU4pO2xldCBhPVNlKHQsZT8uaW4pLHM9YS5nZXRTZWNvbmRzKCkvNjAsbj1hLmdldE1pbGxpc2Vjb25kcygpLzFlMy82MCxvPWEuZ2V0TWludXRlcygpK3MrbixsPWU/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiLGQ9Sm4obCkoby9yKSpyO3JldHVybiBhLnNldE1pbnV0ZXMoZCwwLDApLGF9dmFyIG9TaSxyenQ9dSgoKT0+e0JkKCk7VnQoKTtLZSgpO2kodHp0LCJyb3VuZFRvTmVhcmVzdE1pbnV0ZXMiKTtvU2k9dHp0fSk7ZnVuY3Rpb24gYXp0KHQpe2xldCBlPXQvamY7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIHVTaSxpenQ9dSgoKT0+e2tyKCk7aShhenQsInNlY29uZHNUb0hvdXJzIik7dVNpPWF6dH0pO2Z1bmN0aW9uIHN6dCh0KXtyZXR1cm4gdCpKZ312YXIgbVNpLG56dD11KCgpPT57a3IoKTtpKHN6dCwic2Vjb25kc1RvTWlsbGlzZWNvbmRzIik7bVNpPXN6dH0pO2Z1bmN0aW9uIG96dCh0KXtsZXQgZT10L3RiO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciB2U2ksbHp0PXUoKCk9PntrcigpO2kob3p0LCJzZWNvbmRzVG9NaW51dGVzIik7dlNpPW96dH0pO2Z1bmN0aW9uIGtiKHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKSxzPWEuZ2V0RnVsbFllYXIoKSxuPWEuZ2V0RGF0ZSgpLG89VWUocj8uaW58fHQsMCk7by5zZXRGdWxsWWVhcihzLGUsMTUpLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IGw9VHNlKG8pO3JldHVybiBhLnNldE1vbnRoKGUsTWF0aC5taW4obixsKSksYX12YXIgQ1NpLEFuZT11KCgpPT57VnQoKTtNOWUoKTtLZSgpO2koa2IsInNldE1vbnRoIik7Q1NpPWtifSk7ZnVuY3Rpb24gY3p0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gaXNOYU4oK2EpP1VlKHI/LmlufHx0LE5hTik6KGUueWVhciE9bnVsbCYmYS5zZXRGdWxsWWVhcihlLnllYXIpLGUubW9udGghPW51bGwmJihhPWtiKGEsZS5tb250aCkpLGUuZGF0ZSE9bnVsbCYmYS5zZXREYXRlKGUuZGF0ZSksZS5ob3VycyE9bnVsbCYmYS5zZXRIb3VycyhlLmhvdXJzKSxlLm1pbnV0ZXMhPW51bGwmJmEuc2V0TWludXRlcyhlLm1pbnV0ZXMpLGUuc2Vjb25kcyE9bnVsbCYmYS5zZXRTZWNvbmRzKGUuc2Vjb25kcyksZS5taWxsaXNlY29uZHMhPW51bGwmJmEuc2V0TWlsbGlzZWNvbmRzKGUubWlsbGlzZWNvbmRzKSxhKX12YXIgJFNpLGR6dD11KCgpPT57VnQoKTtBbmUoKTtLZSgpO2koY3p0LCJzZXQiKTskU2k9Y3p0fSk7ZnVuY3Rpb24gdXp0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXREYXRlKGUpLGF9dmFyIFBTaSxwenQ9dSgoKT0+e0tlKCk7aSh1enQsInNldERhdGUiKTtQU2k9dXp0fSk7ZnVuY3Rpb24gZnp0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXRNb250aCgwKSxhLnNldERhdGUoZSksYX12YXIgRlNpLGh6dD11KCgpPT57S2UoKTtpKGZ6dCwic2V0RGF5T2ZZZWFyIik7RlNpPWZ6dH0pO2Z1bmN0aW9uIG16dCh0KXtsZXQgZT17fSxyPVRhKCk7Zm9yKGxldCBhIGluIHIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsYSkmJihlW2FdPXJbYV0pO2ZvcihsZXQgYSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGEpJiYodFthXT09PXZvaWQgMD9kZWxldGUgZVthXTplW2FdPXRbYV0pOyR5dChlKX12YXIgVlNpLGd6dD11KCgpPT57UW4oKTtpKG16dCwic2V0RGVmYXVsdE9wdGlvbnMiKTtWU2k9bXp0fSk7ZnVuY3Rpb24gYnp0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXRIb3VycyhlKSxhfXZhciBHU2kseHp0PXUoKCk9PntLZSgpO2koYnp0LCJzZXRIb3VycyIpO0dTaT1ienR9KTtmdW5jdGlvbiB2enQodCxlLHIpe2xldCBhPVNlKHQscj8uaW4pO3JldHVybiBhLnNldE1pbGxpc2Vjb25kcyhlKSxhfXZhciBRU2kseXp0PXUoKCk9PntLZSgpO2kodnp0LCJzZXRNaWxsaXNlY29uZHMiKTtRU2k9dnp0fSk7ZnVuY3Rpb24gd3p0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXRNaW51dGVzKGUpLGF9dmFyIHRNaSxrenQ9dSgoKT0+e0tlKCk7aSh3enQsInNldE1pbnV0ZXMiKTt0TWk9d3p0fSk7ZnVuY3Rpb24gU3p0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKSxzPU1hdGgudHJ1bmMoYS5nZXRNb250aCgpLzMpKzEsbj1lLXM7cmV0dXJuIGtiKGEsYS5nZXRNb250aCgpK24qMyl9dmFyIG5NaSxNenQ9dSgoKT0+e0FuZSgpO0tlKCk7aShTenQsInNldFF1YXJ0ZXIiKTtuTWk9U3p0fSk7ZnVuY3Rpb24gQ3p0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gYS5zZXRTZWNvbmRzKGUpLGF9dmFyIGRNaSx6enQ9dSgoKT0+e0tlKCk7aShDenQsInNldFNlY29uZHMiKTtkTWk9Q3p0fSk7ZnVuY3Rpb24gX3p0KHQsZSxyKXtsZXQgYT1UYSgpLHM9cj8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5maXJzdFdlZWtDb250YWluc0RhdGU/P2EubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbj1jbihTZSh0LHI/LmluKSxRZih0LHIpLHIpLG89VWUocj8uaW58fHQsMCk7by5zZXRGdWxsWWVhcihlLDAscyksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1RZihvLHIpO3JldHVybiBsLnNldERhdGUobC5nZXREYXRlKCkrbiksbH12YXIgeE1pLFR6dD11KCgpPT57UW4oKTtWdCgpO1JkKCk7d3NlKCk7S2UoKTtpKF96dCwic2V0V2Vla1llYXIiKTt4TWk9X3p0fSk7ZnVuY3Rpb24gTHp0KHQsZSxyKXtsZXQgYT1TZSh0LHI/LmluKTtyZXR1cm4gaXNOYU4oK2EpP1VlKHI/LmlufHx0LE5hTik6KGEuc2V0RnVsbFllYXIoZSksYSl9dmFyIFNNaSxEenQ9dSgoKT0+e1Z0KCk7S2UoKTtpKEx6dCwic2V0WWVhciIpO1NNaT1MenR9KTtmdW5jdGlvbiAkenQodCxlKXtsZXQgcj1TZSh0LGU/LmluKSxhPXIuZ2V0RnVsbFllYXIoKSxzPU1hdGguZmxvb3IoYS8xMCkqMTA7cmV0dXJuIHIuc2V0RnVsbFllYXIocywwLDEpLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgX01pLEF6dD11KCgpPT57S2UoKTtpKCR6dCwic3RhcnRPZkRlY2FkZSIpO19NaT0kenR9KTtmdW5jdGlvbiBFenQodCl7cmV0dXJuIHIwKERhdGUubm93KCksdCl9dmFyICRNaSxJenQ9dSgoKT0+e1ZrKCk7aShFenQsInN0YXJ0T2ZUb2RheSIpOyRNaT1FenR9KTtmdW5jdGlvbiBQenQodCl7bGV0IGU9SXIodD8uaW4pLHI9ZS5nZXRGdWxsWWVhcigpLGE9ZS5nZXRNb250aCgpLHM9ZS5nZXREYXRlKCksbj1VZSh0Py5pbiwwKTtyZXR1cm4gbi5zZXRGdWxsWWVhcihyLGEscysxKSxuLnNldEhvdXJzKDAsMCwwLDApLG59dmFyIE5NaSxOenQ9dSgoKT0+e1Z0KCk7RnMoKTtpKFB6dCwic3RhcnRPZlRvbW9ycm93Iik7Tk1pPVB6dH0pO2Z1bmN0aW9uIE96dCh0KXtsZXQgZT1Jcih0Py5pbikscj1lLmdldEZ1bGxZZWFyKCksYT1lLmdldE1vbnRoKCkscz1lLmdldERhdGUoKSxuPUlyKHQ/LmluKTtyZXR1cm4gbi5zZXRGdWxsWWVhcihyLGEscy0xKSxuLnNldEhvdXJzKDAsMCwwLDApLG59dmFyIEJNaSxSenQ9dSgoKT0+e0ZzKCk7aShPenQsInN0YXJ0T2ZZZXN0ZXJkYXkiKTtCTWk9T3p0fSk7ZnVuY3Rpb24gRW5lKHQsZSxyKXtyZXR1cm4gSmModCwtZSxyKX12YXIgak1pLEc5ZT11KCgpPT57cmIoKTtpKEVuZSwic3ViTW9udGhzIik7ak1pPUVuZX0pO2Z1bmN0aW9uIEZ6dCh0LGUscil7bGV0e3llYXJzOmE9MCxtb250aHM6cz0wLHdlZWtzOm49MCxkYXlzOm89MCxob3VyczpsPTAsbWludXRlczpjPTAsc2Vjb25kczpkPTB9PWUsZj1FbmUodCxzK2EqMTIscikscD1ldShmLG8rbio3LHIpLGg9YytsKjYwLHY9KGQraCo2MCkqMWUzO3JldHVybiBVZShyPy5pbnx8dCwrcC12KX12YXIgWk1pLEJ6dD11KCgpPT57VnQoKTtpUygpO0c5ZSgpO2koRnp0LCJzdWIiKTtaTWk9Rnp0fSk7ZnVuY3Rpb24gSHp0KHQsZSxyKXtyZXR1cm4gSGllKHQsLWUscil9dmFyIGVDaSxxenQ9dSgoKT0+e1E3ZSgpO2koSHp0LCJzdWJCdXNpbmVzc0RheXMiKTtlQ2k9SHp0fSk7ZnVuY3Rpb24gVnp0KHQsZSxyKXtyZXR1cm4gcWllKHQsLWUscil9dmFyIGlDaSxqenQ9dSgoKT0+e1g3ZSgpO2koVnp0LCJzdWJIb3VycyIpO2lDaT1WenR9KTtmdW5jdGlvbiBVenQodCxlLHIpe3JldHVybiBqMyh0LC1lLHIpfXZhciBsQ2ksV3p0PXUoKCk9PntxaygpO2koVXp0LCJzdWJNaWxsaXNlY29uZHMiKTtsQ2k9VXp0fSk7ZnVuY3Rpb24gR3p0KHQsZSxyKXtyZXR1cm4gaWIodCwtZSxyKX12YXIgcENpLFl6dD11KCgpPT57VWllKCk7aShHenQsInN1Yk1pbnV0ZXMiKTtwQ2k9R3p0fSk7ZnVuY3Rpb24gS3p0KHQsZSxyKXtyZXR1cm4gc2IodCwtZSxyKX12YXIgZ0NpLFp6dD11KCgpPT57V2llKCk7aShLenQsInN1YlF1YXJ0ZXJzIik7Z0NpPUt6dH0pO2Z1bmN0aW9uIFF6dCh0LGUscil7cmV0dXJuIEdpZSh0LC1lLHIpfXZhciB5Q2ksWHp0PXUoKCk9Pnt0OWUoKTtpKFF6dCwic3ViU2Vjb25kcyIpO3lDaT1RenR9KTtmdW5jdGlvbiBKenQodCxlLHIpe3JldHVybiBXMyh0LC1lLHIpfXZhciBNQ2ksZV90PXUoKCk9PntqaygpO2koSnp0LCJzdWJXZWVrcyIpO01DaT1KenR9KTtmdW5jdGlvbiB0X3QodCxlLHIpe3JldHVybiBZaWUodCwtZSxyKX12YXIgVENpLHJfdD11KCgpPT57cjllKCk7aSh0X3QsInN1YlllYXJzIik7VENpPXRfdH0pO2Z1bmN0aW9uIGFfdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KjcpfXZhciBBQ2ksaV90PXUoKCk9PntrcigpO2koYV90LCJ3ZWVrc1RvRGF5cyIpO0FDaT1hX3R9KTtmdW5jdGlvbiBzX3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCozNjUuMjQyNSl9dmFyIE5DaSxuX3Q9dSgoKT0+e2tyKCk7aShzX3QsInllYXJzVG9EYXlzIik7TkNpPXNfdH0pO2Z1bmN0aW9uIG9fdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0Kk9pZSl9dmFyIEJDaSxsX3Q9dSgoKT0+e2tyKCk7aShvX3QsInllYXJzVG9Nb250aHMiKTtCQ2k9b190fSk7ZnVuY3Rpb24gY190KHQpe3JldHVybiBNYXRoLnRydW5jKHQqUmllKX12YXIgakNpLGRfdD11KCgpPT57a3IoKTtpKGNfdCwieWVhcnNUb1F1YXJ0ZXJzIik7akNpPWNfdH0pO3ZhciBuUz17fTtWZShuUyx7YWRkOigpPT5WMyxhZGRCdXNpbmVzc0RheXM6KCk9PkhpZSxhZGREYXlzOigpPT5ScyxhZGRIb3VyczooKT0+cWllLGFkZElTT1dlZWtZZWFyczooKT0+amllLGFkZE1pbGxpc2Vjb25kczooKT0+ajMsYWRkTWludXRlczooKT0+aWIsYWRkTW9udGhzOigpPT5KYyxhZGRRdWFydGVyczooKT0+c2IsYWRkU2Vjb25kczooKT0+R2llLGFkZFdlZWtzOigpPT5XMyxhZGRZZWFyczooKT0+WWllLGFyZUludGVydmFsc092ZXJsYXBwaW5nOigpPT5BeXQsY2xhbXA6KCk9Pkl5dCxjbG9zZXN0SW5kZXhUbzooKT0+UWllLGNsb3Nlc3RUbzooKT0+Tnl0LGNvbXBhcmVBc2M6KCk9PlhuLGNvbXBhcmVEZXNjOigpPT5SeXQsY29uc3RydWN0RnJvbTooKT0+VWUsY29uc3RydWN0Tm93OigpPT5JcixkYXlzVG9XZWVrczooKT0+Qnl0LGRpZmZlcmVuY2VJbkJ1c2luZXNzRGF5czooKT0+cXl0LGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5czooKT0+Y24sZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrWWVhcnM6KCk9PkppZSxkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtzOigpPT5qeXQsZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM6KCk9PldmLGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnM6KCk9Pm9iLGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3M6KCk9PkdmLGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnM6KCk9PkczLGRpZmZlcmVuY2VJbkRheXM6KCk9PmxiLGRpZmZlcmVuY2VJbkhvdXJzOigpPT5ZZixkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnM6KCk9Pkd5dCxkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHM6KCk9PmNiLGRpZmZlcmVuY2VJbk1pbnV0ZXM6KCk9PktmLGRpZmZlcmVuY2VJbk1vbnRoczooKT0+WTMsZGlmZmVyZW5jZUluUXVhcnRlcnM6KCk9Pkt5dCxkaWZmZXJlbmNlSW5TZWNvbmRzOigpPT5pMCxkaWZmZXJlbmNlSW5XZWVrczooKT0+UXl0LGRpZmZlcmVuY2VJblllYXJzOigpPT51c2UsZWFjaERheU9mSW50ZXJ2YWw6KCk9PnBzZSxlYWNoSG91ck9mSW50ZXJ2YWw6KCk9Pkp5dCxlYWNoTWludXRlT2ZJbnRlcnZhbDooKT0+dHd0LGVhY2hNb250aE9mSW50ZXJ2YWw6KCk9PmF3dCxlYWNoUXVhcnRlck9mSW50ZXJ2YWw6KCk9PnN3dCxlYWNoV2Vla09mSW50ZXJ2YWw6KCk9Pm93dCxlYWNoV2Vla2VuZE9mSW50ZXJ2YWw6KCk9PnBiLGVhY2hXZWVrZW5kT2ZNb250aDooKT0+Y3d0LGVhY2hXZWVrZW5kT2ZZZWFyOigpPT51d3QsZWFjaFllYXJPZkludGVydmFsOigpPT5md3QsZW5kT2ZEYXk6KCk9PmRiLGVuZE9mRGVjYWRlOigpPT5td3QsZW5kT2ZIb3VyOigpPT5id3QsZW5kT2ZJU09XZWVrOigpPT52d3QsZW5kT2ZJU09XZWVrWWVhcjooKT0+d3d0LGVuZE9mTWludXRlOigpPT5Td3QsZW5kT2ZNb250aDooKT0+dWIsZW5kT2ZRdWFydGVyOigpPT5Dd3QsZW5kT2ZTZWNvbmQ6KCk9Pl93dCxlbmRPZlRvZGF5OigpPT5Md3QsZW5kT2ZUb21vcnJvdzooKT0+JHd0LGVuZE9mV2VlazooKT0+YnNlLGVuZE9mWWVhcjooKT0+bXNlLGVuZE9mWWVzdGVyZGF5OigpPT5Fd3QsZm9ybWF0OigpPT5Yayxmb3JtYXREYXRlOigpPT5Yayxmb3JtYXREaXN0YW5jZTooKT0+Q3NlLGZvcm1hdERpc3RhbmNlU3RyaWN0OigpPT56c2UsZm9ybWF0RGlzdGFuY2VUb05vdzooKT0+cmt0LGZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3Q6KCk9PmlrdCxmb3JtYXREdXJhdGlvbjooKT0+bmt0LGZvcm1hdElTTzooKT0+bGt0LGZvcm1hdElTTzkwNzU6KCk9PmRrdCxmb3JtYXRJU09EdXJhdGlvbjooKT0+cGt0LGZvcm1hdFJGQzMzMzk6KCk9PmhrdCxmb3JtYXRSRkM3MjMxOigpPT5na3QsZm9ybWF0UmVsYXRpdmU6KCk9PnhrdCxmb3JtYXR0ZXJzOigpPT5aayxmcm9tVW5peFRpbWU6KCk9PnlrdCxnZXREYXRlOigpPT5fc2UsZ2V0RGF5OigpPT5YMyxnZXREYXlPZlllYXI6KCk9PnZzZSxnZXREYXlzSW5Nb250aDooKT0+VHNlLGdldERheXNJblllYXI6KCk9PmtrdCxnZXREZWNhZGU6KCk9Pk1rdCxnZXREZWZhdWx0T3B0aW9uczooKT0+RHNlLGdldEhvdXJzOigpPT56a3QsZ2V0SVNPRGF5OigpPT4kc2UsZ2V0SVNPV2VlazooKT0+Z2IsZ2V0SVNPV2Vla1llYXI6KCk9PkVvLGdldElTT1dlZWtzSW5ZZWFyOigpPT5Ua3QsZ2V0TWlsbGlzZWNvbmRzOigpPT5Ea3QsZ2V0TWludXRlczooKT0+QWt0LGdldE1vbnRoOigpPT5Ja3QsZ2V0T3ZlcmxhcHBpbmdEYXlzSW5JbnRlcnZhbHM6KCk9Pk5rdCxnZXRRdWFydGVyOigpPT5VayxnZXRTZWNvbmRzOigpPT5Sa3QsZ2V0VGltZTooKT0+Qmt0LGdldFVuaXhUaW1lOigpPT5xa3QsZ2V0V2VlazooKT0+YmIsZ2V0V2Vla09mTW9udGg6KCk9PmprdCxnZXRXZWVrWWVhcjooKT0+WjMsZ2V0V2Vla3NJbk1vbnRoOigpPT5Xa3QsZ2V0WWVhcjooKT0+WWt0LGhvdXJzVG9NaWxsaXNlY29uZHM6KCk9PlprdCxob3Vyc1RvTWludXRlczooKT0+WGt0LGhvdXJzVG9TZWNvbmRzOigpPT5lU3QsaW50ZXJ2YWw6KCk9PnJTdCxpbnRlcnZhbFRvRHVyYXRpb246KCk9PmlTdCxpbnRsRm9ybWF0OigpPT5uU3QsaW50bEZvcm1hdERpc3RhbmNlOigpPT5sU3QsaXNBZnRlcjooKT0+ZFN0LGlzQmVmb3JlOigpPT5wU3QsaXNEYXRlOigpPT5YaWUsaXNFcXVhbDooKT0+aFN0LGlzRXhpc3RzOigpPT5nU3QsaXNGaXJzdERheU9mTW9udGg6KCk9PnhTdCxpc0ZyaWRheTooKT0+eVN0LGlzRnV0dXJlOigpPT5rU3QsaXNMYXN0RGF5T2ZNb250aDooKT0+ZHNlLGlzTGVhcFllYXI6KCk9PkxzZSxpc01hdGNoOigpPT5yTXQsaXNNb25kYXk6KCk9PmlNdCxpc1Bhc3Q6KCk9Pm5NdCxpc1NhbWVEYXk6KCk9PmEwLGlzU2FtZUhvdXI6KCk9PmtuZSxpc1NhbWVJU09XZWVrOigpPT5NbmUsaXNTYW1lSVNPV2Vla1llYXI6KCk9PmxNdCxpc1NhbWVNaW51dGU6KCk9PkNuZSxpc1NhbWVNb250aDooKT0+em5lLGlzU2FtZVF1YXJ0ZXI6KCk9Pl9uZSxpc1NhbWVTZWNvbmQ6KCk9PlRuZSxpc1NhbWVXZWVrOigpPT53Yixpc1NhbWVZZWFyOigpPT5MbmUsaXNTYXR1cmRheTooKT0+RmllLGlzU3VuZGF5OigpPT5CaWUsaXNUaGlzSG91cjooKT0+ZE10LGlzVGhpc0lTT1dlZWs6KCk9PnBNdCxpc1RoaXNNaW51dGU6KCk9PmhNdCxpc1RoaXNNb250aDooKT0+Z010LGlzVGhpc1F1YXJ0ZXI6KCk9PnhNdCxpc1RoaXNTZWNvbmQ6KCk9PnlNdCxpc1RoaXNXZWVrOigpPT5rTXQsaXNUaGlzWWVhcjooKT0+TU10LGlzVGh1cnNkYXk6KCk9PnpNdCxpc1RvZGF5OigpPT5UTXQsaXNUb21vcnJvdzooKT0+RE10LGlzVHVlc2RheTooKT0+QU10LGlzVmFsaWQ6KCk9Pl9uLGlzV2VkbmVzZGF5OigpPT5JTXQsaXNXZWVrZW5kOigpPT5lMCxpc1dpdGhpbkludGVydmFsOigpPT5OTXQsaXNZZXN0ZXJkYXk6KCk9PlJNdCxsYXN0RGF5T2ZEZWNhZGU6KCk9PkJNdCxsYXN0RGF5T2ZJU09XZWVrOigpPT5xTXQsbGFzdERheU9mSVNPV2Vla1llYXI6KCk9PmpNdCxsYXN0RGF5T2ZNb250aDooKT0+QXNlLGxhc3REYXlPZlF1YXJ0ZXI6KCk9PldNdCxsYXN0RGF5T2ZXZWVrOigpPT5EbmUsbGFzdERheU9mWWVhcjooKT0+WU10LGxpZ2h0Rm9ybWF0OigpPT5aTXQsbGlnaHRGb3JtYXR0ZXJzOigpPT5IMSxsb25nRm9ybWF0dGVyczooKT0+UTMsbWF4OigpPT5LaWUsbWlsbGlzZWNvbmRzOigpPT5YTXQsbWlsbGlzZWNvbmRzVG9Ib3VyczooKT0+ZUN0LG1pbGxpc2Vjb25kc1RvTWludXRlczooKT0+ckN0LG1pbGxpc2Vjb25kc1RvU2Vjb25kczooKT0+aUN0LG1pbjooKT0+WmllLG1pbnV0ZXNUb0hvdXJzOigpPT5uQ3QsbWludXRlc1RvTWlsbGlzZWNvbmRzOigpPT5sQ3QsbWludXRlc1RvU2Vjb25kczooKT0+ZEN0LG1vbnRoc1RvUXVhcnRlcnM6KCk9PnBDdCxtb250aHNUb1llYXJzOigpPT5oQ3QsbmV4dERheTooKT0+dG8sbmV4dEZyaWRheTooKT0+Z0N0LG5leHRNb25kYXk6KCk9PnhDdCxuZXh0U2F0dXJkYXk6KCk9PnlDdCxuZXh0U3VuZGF5OigpPT5rQ3QsbmV4dFRodXJzZGF5OigpPT5NQ3QsbmV4dFR1ZXNkYXk6KCk9PnpDdCxuZXh0V2VkbmVzZGF5OigpPT5UQ3QscGFyc2U6KCk9PnduZSxwYXJzZUlTTzooKT0+JEN0LHBhcnNlSlNPTjooKT0+RUN0LHBhcnNlcnM6KCk9PnluZSxwcmV2aW91c0RheTooKT0+cm8scHJldmlvdXNGcmlkYXk6KCk9PlBDdCxwcmV2aW91c01vbmRheTooKT0+T0N0LHByZXZpb3VzU2F0dXJkYXk6KCk9PkZDdCxwcmV2aW91c1N1bmRheTooKT0+SEN0LHByZXZpb3VzVGh1cnNkYXk6KCk9PlZDdCxwcmV2aW91c1R1ZXNkYXk6KCk9PlVDdCxwcmV2aW91c1dlZG5lc2RheTooKT0+R0N0LHF1YXJ0ZXJzVG9Nb250aHM6KCk9PktDdCxxdWFydGVyc1RvWWVhcnM6KCk9PlFDdCxyb3VuZFRvTmVhcmVzdEhvdXJzOigpPT5KQ3Qscm91bmRUb05lYXJlc3RNaW51dGVzOigpPT50enQsc2Vjb25kc1RvSG91cnM6KCk9PmF6dCxzZWNvbmRzVG9NaWxsaXNlY29uZHM6KCk9PnN6dCxzZWNvbmRzVG9NaW51dGVzOigpPT5venQsc2V0OigpPT5jenQsc2V0RGF0ZTooKT0+dXp0LHNldERheTooKT0+SjMsc2V0RGF5T2ZZZWFyOigpPT5menQsc2V0RGVmYXVsdE9wdGlvbnM6KCk9Pm16dCxzZXRIb3VyczooKT0+Ynp0LHNldElTT0RheTooKT0+aW5lLHNldElTT1dlZWs6KCk9PlFzZSxzZXRJU09XZWVrWWVhcjooKT0+VmllLHNldE1pbGxpc2Vjb25kczooKT0+dnp0LHNldE1pbnV0ZXM6KCk9Pnd6dCxzZXRNb250aDooKT0+a2Isc2V0UXVhcnRlcjooKT0+U3p0LHNldFNlY29uZHM6KCk9PkN6dCxzZXRXZWVrOigpPT5Lc2Usc2V0V2Vla1llYXI6KCk9Pl96dCxzZXRZZWFyOigpPT5MenQsc3RhcnRPZkRheTooKT0+cjAsc3RhcnRPZkRlY2FkZTooKT0+JHp0LHN0YXJ0T2ZIb3VyOigpPT50UyxzdGFydE9mSVNPV2VlazooKT0+YnMsc3RhcnRPZklTT1dlZWtZZWFyOigpPT5CMSxzdGFydE9mTWludXRlOigpPT5yUyxzdGFydE9mTW9udGg6KCk9PkszLHN0YXJ0T2ZRdWFydGVyOigpPT5uMCxzdGFydE9mU2Vjb25kOigpPT5hUyxzdGFydE9mVG9kYXk6KCk9PkV6dCxzdGFydE9mVG9tb3Jyb3c6KCk9PlB6dCxzdGFydE9mV2VlazooKT0+WWEsc3RhcnRPZldlZWtZZWFyOigpPT5RZixzdGFydE9mWWVhcjooKT0+ZmIsc3RhcnRPZlllc3RlcmRheTooKT0+T3p0LHN1YjooKT0+Rnp0LHN1YkJ1c2luZXNzRGF5czooKT0+SHp0LHN1YkRheXM6KCk9PmV1LHN1YkhvdXJzOigpPT5WenQsc3ViSVNPV2Vla1llYXJzOigpPT5zc2Usc3ViTWlsbGlzZWNvbmRzOigpPT5VenQsc3ViTWludXRlczooKT0+R3p0LHN1Yk1vbnRoczooKT0+RW5lLHN1YlF1YXJ0ZXJzOigpPT5LenQsc3ViU2Vjb25kczooKT0+UXp0LHN1YldlZWtzOigpPT5KenQsc3ViWWVhcnM6KCk9PnRfdCx0b0RhdGU6KCk9PlNlLHRyYW5zcG9zZTooKT0+RXNlLHdlZWtzVG9EYXlzOigpPT5hX3QseWVhcnNUb0RheXM6KCk9PnNfdCx5ZWFyc1RvTW9udGhzOigpPT5vX3QseWVhcnNUb1F1YXJ0ZXJzOigpPT5jX3R9KTt2YXIgdV90PXUoKCk9PntZN2UoKTtRN2UoKTtYYygpO1g3ZSgpO2U5ZSgpO3FrKCk7VWllKCk7cmIoKTtXaWUoKTt0OWUoKTtqaygpO3I5ZSgpO0V5dCgpO1B5dCgpO3M5ZSgpO095dCgpO1VmKCk7Rnl0KCk7VnQoKTtGcygpO0h5dCgpO1Z5dCgpO1JkKCk7bzllKCk7VXl0KCk7ZXNlKCk7YzllKCk7dHNlKCk7cnNlKCk7YXNlKCk7aXNlKCk7WXl0KCk7bnNlKCk7b3NlKCk7V2soKTtaeXQoKTtHaygpO1h5dCgpO3A5ZSgpO2Y5ZSgpO2V3dCgpO3J3dCgpO2l3dCgpO253dCgpO2x3dCgpO2hzZSgpO2R3dCgpO3B3dCgpO2h3dCgpO2xzZSgpO2d3dCgpO3h3dCgpO3l3dCgpO2t3dCgpO013dCgpO2NzZSgpO3p3dCgpO1R3dCgpO0R3dCgpO0F3dCgpO205ZSgpO2g5ZSgpO0l3dCgpO3k5ZSgpO3c5ZSgpO2s5ZSgpO2FrdCgpO3NrdCgpO29rdCgpO2NrdCgpO3VrdCgpO2ZrdCgpO21rdCgpO2JrdCgpO3ZrdCgpO3drdCgpO1M5ZSgpO0prKCk7ZzllKCk7TTllKCk7U2t0KCk7Q2t0KCk7ejllKCk7X2t0KCk7XzllKCk7eXNlKCk7VTMoKTtMa3QoKTska3QoKTtFa3QoKTtQa3QoKTtPa3QoKTtsOWUoKTtGa3QoKTtIa3QoKTtWa3QoKTtrc2UoKTtVa3QoKTtLaygpO0drdCgpO0trdCgpO1FrdCgpO0prdCgpO3RTdCgpO2FTdCgpO3NTdCgpO29TdCgpO2NTdCgpO3VTdCgpO2ZTdCgpO245ZSgpO21TdCgpO2JTdCgpO3ZTdCgpO3dTdCgpO1NTdCgpO3U5ZSgpO0M5ZSgpO2FNdCgpO3NNdCgpO29NdCgpO25iKCk7TjllKCk7TzllKCk7Y010KCk7RjllKCk7QjllKCk7SDllKCk7VjllKCk7U25lKCk7ajllKCk7SzdlKCk7WjdlKCk7dU10KCk7Zk10KCk7bU10KCk7Yk10KCk7dk10KCk7d010KCk7U010KCk7Q010KCk7X010KCk7TE10KCk7JE10KCk7RU10KCk7RmQoKTtQTXQoKTtIaygpO09NdCgpO0ZNdCgpO0hNdCgpO1ZNdCgpO1VNdCgpO1Q5ZSgpO0dNdCgpO1U5ZSgpO0tNdCgpO1FNdCgpO2E5ZSgpO0pNdCgpO3RDdCgpO2FDdCgpO3NDdCgpO2k5ZSgpO29DdCgpO2NDdCgpO3VDdCgpO2ZDdCgpO21DdCgpO0hkKCk7YkN0KCk7dkN0KCk7d0N0KCk7U0N0KCk7Q0N0KCk7X0N0KCk7TEN0KCk7STllKCk7QUN0KCk7SUN0KCk7cWQoKTtOQ3QoKTtSQ3QoKTtCQ3QoKTtxQ3QoKTtqQ3QoKTtXQ3QoKTtZQ3QoKTtaQ3QoKTtYQ3QoKTtlenQoKTtyenQoKTtpenQoKTtuenQoKTtsenQoKTtkenQoKTtwenQoKTtlUygpO2h6dCgpO2d6dCgpO3h6dCgpO0U5ZSgpO0E5ZSgpO0o3ZSgpO3l6dCgpO2t6dCgpO0FuZSgpO016dCgpO3p6dCgpOyQ5ZSgpO1R6dCgpO0R6dCgpO1ZrKCk7QXp0KCk7UDllKCk7dDAoKTthYigpO1I5ZSgpO1lrKCk7ZnNlKCk7cTllKCk7SXp0KCk7Tnp0KCk7azIoKTt3c2UoKTtnc2UoKTtSenQoKTtCenQoKTtxenQoKTtpUygpO2p6dCgpO2Q5ZSgpO1d6dCgpO1l6dCgpO0c5ZSgpO1p6dCgpO1h6dCgpO2VfdCgpO3JfdCgpO0tlKCk7TDllKCk7aV90KCk7bl90KCk7bF90KCk7ZF90KCl9KTt2YXIgcF90PU50KChZOWUsSzllKT0+eyhmdW5jdGlvbih0LGUpe3R5cGVvZiBZOWU9PSJvYmplY3QiJiZ0eXBlb2YgSzllPCJ1Ij9LOWUuZXhwb3J0cz1lKCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KHQ9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHx8c2VsZikuZGF5anM9ZSgpfSkoWTllLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD0xZTMsZT02ZTQscj0zNmU1LGE9Im1pbGxpc2Vjb25kIixzPSJzZWNvbmQiLG49Im1pbnV0ZSIsbz0iaG91ciIsbD0iZGF5IixjPSJ3ZWVrIixkPSJtb250aCIsZj0icXVhcnRlciIscD0ieWVhciIsaD0iZGF0ZSIsbT0iSW52YWxpZCBEYXRlIix2PS9eKFxkezR9KVstL10/KFxkezEsMn0pP1stL10/KFxkezAsMn0pW1R0XHNdKihcZHsxLDJ9KT86PyhcZHsxLDJ9KT86PyhcZHsxLDJ9KT9bLjpdPyhcZCspPyQvLGI9L1xbKFteXF1dKyldfFl7MSw0fXxNezEsNH18RHsxLDJ9fGR7MSw0fXxIezEsMn18aHsxLDJ9fGF8QXxtezEsMn18c3sxLDJ9fFp7MSwyfXxTU1MvZyxnPXtuYW1lOiJlbiIsd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLG1vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxvcmRpbmFsOmkoZnVuY3Rpb24oeil7dmFyIEE9WyJ0aCIsInN0IiwibmQiLCJyZCJdLCQ9eiUxMDA7cmV0dXJuIlsiK3orKEFbKCQtMjApJTEwXXx8QVskXXx8QVswXSkrIl0ifSwib3JkaW5hbCIpfSx5PWkoZnVuY3Rpb24oeixBLCQpe3ZhciBGPVN0cmluZyh6KTtyZXR1cm4hRnx8Ri5sZW5ndGg+PUE/ejoiIitBcnJheShBKzEtRi5sZW5ndGgpLmpvaW4oJCkren0sIm0iKSxrPXtzOnksejppKGZ1bmN0aW9uKHope3ZhciBBPS16LnV0Y09mZnNldCgpLCQ9TWF0aC5hYnMoQSksRj1NYXRoLmZsb29yKCQvNjApLFk9JCU2MDtyZXR1cm4oQTw9MD8iKyI6Ii0iKSt5KEYsMiwiMCIpKyI6Iit5KFksMiwiMCIpfSwieiIpLG06aShmdW5jdGlvbiB6KEEsJCl7aWYoQS5kYXRlKCk8JC5kYXRlKCkpcmV0dXJuLXooJCxBKTt2YXIgRj0xMiooJC55ZWFyKCktQS55ZWFyKCkpKygkLm1vbnRoKCktQS5tb250aCgpKSxZPUEuY2xvbmUoKS5hZGQoRixkKSxHPSQtWTwwLFo9QS5jbG9uZSgpLmFkZChGKyhHPy0xOjEpLGQpO3JldHVybisoLShGKygkLVkpLyhHP1ktWjpaLVkpKXx8MCl9LCJ0IiksYTppKGZ1bmN0aW9uKHope3JldHVybiB6PDA/TWF0aC5jZWlsKHopfHwwOk1hdGguZmxvb3Ioeil9LCJhIikscDppKGZ1bmN0aW9uKHope3JldHVybntNOmQseTpwLHc6YyxkOmwsRDpoLGg6byxtOm4scyxtczphLFE6Zn1bel18fFN0cmluZyh6fHwiIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9zJC8sIiIpfSwicCIpLHU6aShmdW5jdGlvbih6KXtyZXR1cm4gej09PXZvaWQgMH0sInUiKX0sTT0iZW4iLE49e307TltNXT1nO3ZhciBfPSIkaXNEYXlqc09iamVjdCIsUz1pKGZ1bmN0aW9uKHope3JldHVybiB6IGluc3RhbmNlb2YgQnx8ISghenx8IXpbX10pfSwiUyIpLE89aShmdW5jdGlvbiB6KEEsJCxGKXt2YXIgWTtpZighQSlyZXR1cm4gTTtpZih0eXBlb2YgQT09InN0cmluZyIpe3ZhciBHPUEudG9Mb3dlckNhc2UoKTtOW0ddJiYoWT1HKSwkJiYoTltHXT0kLFk9Ryk7dmFyIFo9QS5zcGxpdCgiLSIpO2lmKCFZJiZaLmxlbmd0aD4xKXJldHVybiB6KFpbMF0pfWVsc2V7dmFyIGRlPUEubmFtZTtOW2RlXT1BLFk9ZGV9cmV0dXJuIUYmJlkmJihNPVkpLFl8fCFGJiZNfSwidCIpLEw9aShmdW5jdGlvbih6LEEpe2lmKFMoeikpcmV0dXJuIHouY2xvbmUoKTt2YXIgJD10eXBlb2YgQT09Im9iamVjdCI/QTp7fTtyZXR1cm4gJC5kYXRlPXosJC5hcmdzPWFyZ3VtZW50cyxuZXcgQigkKX0sIk8iKSxFPWs7RS5sPU8sRS5pPVMsRS53PWZ1bmN0aW9uKHosQSl7cmV0dXJuIEwoeix7bG9jYWxlOkEuJEwsdXRjOkEuJHUseDpBLiR4LCRvZmZzZXQ6QS4kb2Zmc2V0fSl9O3ZhciBCPShmdW5jdGlvbigpe2Z1bmN0aW9uIHooJCl7dGhpcy4kTD1PKCQubG9jYWxlLG51bGwsITApLHRoaXMucGFyc2UoJCksdGhpcy4keD10aGlzLiR4fHwkLnh8fHt9LHRoaXNbX109ITB9aSh6LCJNIik7dmFyIEE9ei5wcm90b3R5cGU7cmV0dXJuIEEucGFyc2U9ZnVuY3Rpb24oJCl7dGhpcy4kZD0oZnVuY3Rpb24oRil7dmFyIFk9Ri5kYXRlLEc9Ri51dGM7aWYoWT09PW51bGwpcmV0dXJuIG5ldyBEYXRlKE5hTik7aWYoRS51KFkpKXJldHVybiBuZXcgRGF0ZTtpZihZIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gbmV3IERhdGUoWSk7aWYodHlwZW9mIFk9PSJzdHJpbmciJiYhL1okL2kudGVzdChZKSl7dmFyIFo9WS5tYXRjaCh2KTtpZihaKXt2YXIgZGU9WlsyXS0xfHwwLEQ9KFpbN118fCIwIikuc3Vic3RyaW5nKDAsMyk7cmV0dXJuIEc/bmV3IERhdGUoRGF0ZS5VVEMoWlsxXSxkZSxaWzNdfHwxLFpbNF18fDAsWls1XXx8MCxaWzZdfHwwLEQpKTpuZXcgRGF0ZShaWzFdLGRlLFpbM118fDEsWls0XXx8MCxaWzVdfHwwLFpbNl18fDAsRCl9fXJldHVybiBuZXcgRGF0ZShZKX0pKCQpLHRoaXMuaW5pdCgpfSxBLmluaXQ9ZnVuY3Rpb24oKXt2YXIgJD10aGlzLiRkO3RoaXMuJHk9JC5nZXRGdWxsWWVhcigpLHRoaXMuJE09JC5nZXRNb250aCgpLHRoaXMuJEQ9JC5nZXREYXRlKCksdGhpcy4kVz0kLmdldERheSgpLHRoaXMuJEg9JC5nZXRIb3VycygpLHRoaXMuJG09JC5nZXRNaW51dGVzKCksdGhpcy4kcz0kLmdldFNlY29uZHMoKSx0aGlzLiRtcz0kLmdldE1pbGxpc2Vjb25kcygpfSxBLiR1dGlscz1mdW5jdGlvbigpe3JldHVybiBFfSxBLmlzVmFsaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1N0cmluZygpIT09bX0sQS5pc1NhbWU9ZnVuY3Rpb24oJCxGKXt2YXIgWT1MKCQpO3JldHVybiB0aGlzLnN0YXJ0T2YoRik8PVkmJlk8PXRoaXMuZW5kT2YoRil9LEEuaXNBZnRlcj1mdW5jdGlvbigkLEYpe3JldHVybiBMKCQpPHRoaXMuc3RhcnRPZihGKX0sQS5pc0JlZm9yZT1mdW5jdGlvbigkLEYpe3JldHVybiB0aGlzLmVuZE9mKEYpPEwoJCl9LEEuJGc9ZnVuY3Rpb24oJCxGLFkpe3JldHVybiBFLnUoJCk/dGhpc1tGXTp0aGlzLnNldChZLCQpfSxBLnVuaXg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKS8xZTMpfSxBLnZhbHVlT2Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC5nZXRUaW1lKCl9LEEuc3RhcnRPZj1mdW5jdGlvbigkLEYpe3ZhciBZPXRoaXMsRz0hIUUudShGKXx8RixaPUUucCgkKSxkZT1pKGZ1bmN0aW9uKHEsSCl7dmFyIFU9RS53KFkuJHU/RGF0ZS5VVEMoWS4keSxILHEpOm5ldyBEYXRlKFkuJHksSCxxKSxZKTtyZXR1cm4gRz9VOlUuZW5kT2YobCl9LCJsIiksRD1pKGZ1bmN0aW9uKHEsSCl7cmV0dXJuIEUudyhZLnRvRGF0ZSgpW3FdLmFwcGx5KFkudG9EYXRlKCJzIiksKEc/WzAsMCwwLDBdOlsyMyw1OSw1OSw5OTldKS5zbGljZShIKSksWSl9LCIkIiksUT10aGlzLiRXLGZlPXRoaXMuJE0sVD10aGlzLiRELFc9InNldCIrKHRoaXMuJHU/IlVUQyI6IiIpO3N3aXRjaChaKXtjYXNlIHA6cmV0dXJuIEc/ZGUoMSwwKTpkZSgzMSwxMSk7Y2FzZSBkOnJldHVybiBHP2RlKDEsZmUpOmRlKDAsZmUrMSk7Y2FzZSBjOnZhciBwZT10aGlzLiRsb2NhbGUoKS53ZWVrU3RhcnR8fDAsbWU9KFE8cGU/USs3OlEpLXBlO3JldHVybiBkZShHP1QtbWU6VCsoNi1tZSksZmUpO2Nhc2UgbDpjYXNlIGg6cmV0dXJuIEQoVysiSG91cnMiLDApO2Nhc2UgbzpyZXR1cm4gRChXKyJNaW51dGVzIiwxKTtjYXNlIG46cmV0dXJuIEQoVysiU2Vjb25kcyIsMik7Y2FzZSBzOnJldHVybiBEKFcrIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sQS5lbmRPZj1mdW5jdGlvbigkKXtyZXR1cm4gdGhpcy5zdGFydE9mKCQsITEpfSxBLiRzZXQ9ZnVuY3Rpb24oJCxGKXt2YXIgWSxHPUUucCgkKSxaPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKSxkZT0oWT17fSxZW2xdPVorIkRhdGUiLFlbaF09WisiRGF0ZSIsWVtkXT1aKyJNb250aCIsWVtwXT1aKyJGdWxsWWVhciIsWVtvXT1aKyJIb3VycyIsWVtuXT1aKyJNaW51dGVzIixZW3NdPVorIlNlY29uZHMiLFlbYV09WisiTWlsbGlzZWNvbmRzIixZKVtHXSxEPUc9PT1sP3RoaXMuJEQrKEYtdGhpcy4kVyk6RjtpZihHPT09ZHx8Rz09PXApe3ZhciBRPXRoaXMuY2xvbmUoKS5zZXQoaCwxKTtRLiRkW2RlXShEKSxRLmluaXQoKSx0aGlzLiRkPVEuc2V0KGgsTWF0aC5taW4odGhpcy4kRCxRLmRheXNJbk1vbnRoKCkpKS4kZH1lbHNlIGRlJiZ0aGlzLiRkW2RlXShEKTtyZXR1cm4gdGhpcy5pbml0KCksdGhpc30sQS5zZXQ9ZnVuY3Rpb24oJCxGKXtyZXR1cm4gdGhpcy5jbG9uZSgpLiRzZXQoJCxGKX0sQS5nZXQ9ZnVuY3Rpb24oJCl7cmV0dXJuIHRoaXNbRS5wKCQpXSgpfSxBLmFkZD1mdW5jdGlvbigkLEYpe3ZhciBZLEc9dGhpczskPU51bWJlcigkKTt2YXIgWj1FLnAoRiksZGU9aShmdW5jdGlvbihmZSl7dmFyIFQ9TChHKTtyZXR1cm4gRS53KFQuZGF0ZShULmRhdGUoKStNYXRoLnJvdW5kKGZlKiQpKSxHKX0sInkiKTtpZihaPT09ZClyZXR1cm4gdGhpcy5zZXQoZCx0aGlzLiRNKyQpO2lmKFo9PT1wKXJldHVybiB0aGlzLnNldChwLHRoaXMuJHkrJCk7aWYoWj09PWwpcmV0dXJuIGRlKDEpO2lmKFo9PT1jKXJldHVybiBkZSg3KTt2YXIgRD0oWT17fSxZW25dPWUsWVtvXT1yLFlbc109dCxZKVtaXXx8MSxRPXRoaXMuJGQuZ2V0VGltZSgpKyQqRDtyZXR1cm4gRS53KFEsdGhpcyl9LEEuc3VidHJhY3Q9ZnVuY3Rpb24oJCxGKXtyZXR1cm4gdGhpcy5hZGQoLTEqJCxGKX0sQS5mb3JtYXQ9ZnVuY3Rpb24oJCl7dmFyIEY9dGhpcyxZPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gWS5pbnZhbGlkRGF0ZXx8bTt2YXIgRz0kfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLFo9RS56KHRoaXMpLGRlPXRoaXMuJEgsRD10aGlzLiRtLFE9dGhpcy4kTSxmZT1ZLndlZWtkYXlzLFQ9WS5tb250aHMsVz1ZLm1lcmlkaWVtLHBlPWkoZnVuY3Rpb24oSCxVLGosYWUpe3JldHVybiBIJiYoSFtVXXx8SChGLEcpKXx8altVXS5zbGljZSgwLGFlKX0sImgiKSxtZT1pKGZ1bmN0aW9uKEgpe3JldHVybiBFLnMoZGUlMTJ8fDEyLEgsIjAiKX0sImQiKSxxPVd8fGZ1bmN0aW9uKEgsVSxqKXt2YXIgYWU9SDwxMj8iQU0iOiJQTSI7cmV0dXJuIGo/YWUudG9Mb3dlckNhc2UoKTphZX07cmV0dXJuIEcucmVwbGFjZShiLChmdW5jdGlvbihILFUpe3JldHVybiBVfHwoZnVuY3Rpb24oail7c3dpdGNoKGope2Nhc2UiWVkiOnJldHVybiBTdHJpbmcoRi4keSkuc2xpY2UoLTIpO2Nhc2UiWVlZWSI6cmV0dXJuIEUucyhGLiR5LDQsIjAiKTtjYXNlIk0iOnJldHVybiBRKzE7Y2FzZSJNTSI6cmV0dXJuIEUucyhRKzEsMiwiMCIpO2Nhc2UiTU1NIjpyZXR1cm4gcGUoWS5tb250aHNTaG9ydCxRLFQsMyk7Y2FzZSJNTU1NIjpyZXR1cm4gcGUoVCxRKTtjYXNlIkQiOnJldHVybiBGLiREO2Nhc2UiREQiOnJldHVybiBFLnMoRi4kRCwyLCIwIik7Y2FzZSJkIjpyZXR1cm4gU3RyaW5nKEYuJFcpO2Nhc2UiZGQiOnJldHVybiBwZShZLndlZWtkYXlzTWluLEYuJFcsZmUsMik7Y2FzZSJkZGQiOnJldHVybiBwZShZLndlZWtkYXlzU2hvcnQsRi4kVyxmZSwzKTtjYXNlImRkZGQiOnJldHVybiBmZVtGLiRXXTtjYXNlIkgiOnJldHVybiBTdHJpbmcoZGUpO2Nhc2UiSEgiOnJldHVybiBFLnMoZGUsMiwiMCIpO2Nhc2UiaCI6cmV0dXJuIG1lKDEpO2Nhc2UiaGgiOnJldHVybiBtZSgyKTtjYXNlImEiOnJldHVybiBxKGRlLEQsITApO2Nhc2UiQSI6cmV0dXJuIHEoZGUsRCwhMSk7Y2FzZSJtIjpyZXR1cm4gU3RyaW5nKEQpO2Nhc2UibW0iOnJldHVybiBFLnMoRCwyLCIwIik7Y2FzZSJzIjpyZXR1cm4gU3RyaW5nKEYuJHMpO2Nhc2Uic3MiOnJldHVybiBFLnMoRi4kcywyLCIwIik7Y2FzZSJTU1MiOnJldHVybiBFLnMoRi4kbXMsMywiMCIpO2Nhc2UiWiI6cmV0dXJuIFp9cmV0dXJuIG51bGx9KShIKXx8Wi5yZXBsYWNlKCI6IiwiIil9KSl9LEEudXRjT2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDE1Ki1NYXRoLnJvdW5kKHRoaXMuJGQuZ2V0VGltZXpvbmVPZmZzZXQoKS8xNSl9LEEuZGlmZj1mdW5jdGlvbigkLEYsWSl7dmFyIEcsWj10aGlzLGRlPUUucChGKSxEPUwoJCksUT0oRC51dGNPZmZzZXQoKS10aGlzLnV0Y09mZnNldCgpKSplLGZlPXRoaXMtRCxUPWkoZnVuY3Rpb24oKXtyZXR1cm4gRS5tKFosRCl9LCJEIik7c3dpdGNoKGRlKXtjYXNlIHA6Rz1UKCkvMTI7YnJlYWs7Y2FzZSBkOkc9VCgpO2JyZWFrO2Nhc2UgZjpHPVQoKS8zO2JyZWFrO2Nhc2UgYzpHPShmZS1RKS82MDQ4ZTU7YnJlYWs7Y2FzZSBsOkc9KGZlLVEpLzg2NGU1O2JyZWFrO2Nhc2UgbzpHPWZlL3I7YnJlYWs7Y2FzZSBuOkc9ZmUvZTticmVhaztjYXNlIHM6Rz1mZS90O2JyZWFrO2RlZmF1bHQ6Rz1mZX1yZXR1cm4gWT9HOkUuYShHKX0sQS5kYXlzSW5Nb250aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVuZE9mKGQpLiREfSxBLiRsb2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gTlt0aGlzLiRMXX0sQS5sb2NhbGU9ZnVuY3Rpb24oJCxGKXtpZighJClyZXR1cm4gdGhpcy4kTDt2YXIgWT10aGlzLmNsb25lKCksRz1PKCQsRiwhMCk7cmV0dXJuIEcmJihZLiRMPUcpLFl9LEEuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gRS53KHRoaXMuJGQsdGhpcyl9LEEudG9EYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEYXRlKHRoaXMudmFsdWVPZigpKX0sQS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1ZhbGlkKCk/dGhpcy50b0lTT1N0cmluZygpOm51bGx9LEEudG9JU09TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b0lTT1N0cmluZygpfSxBLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQudG9VVENTdHJpbmcoKX0sen0pKCksQz1CLnByb3RvdHlwZTtyZXR1cm4gTC5wcm90b3R5cGU9QyxbWyIkbXMiLGFdLFsiJHMiLHNdLFsiJG0iLG5dLFsiJEgiLG9dLFsiJFciLGxdLFsiJE0iLGRdLFsiJHkiLHBdLFsiJEQiLGhdXS5mb3JFYWNoKChmdW5jdGlvbih6KXtDW3pbMV1dPWZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLiRnKEEselswXSx6WzFdKX19KSksTC5leHRlbmQ9ZnVuY3Rpb24oeixBKXtyZXR1cm4gei4kaXx8KHooQSxCLEwpLHouJGk9ITApLEx9LEwubG9jYWxlPU8sTC5pc0RheWpzPVMsTC51bml4PWZ1bmN0aW9uKHope3JldHVybiBMKDFlMyp6KX0sTC5lbj1OW01dLEwuTHM9TixMLnA9e30sTH0pKX0pO3ZhciBmX3Q9TnQoKFo5ZSxROWUpPT57KGZ1bmN0aW9uKHQsZSl7dHlwZW9mIFo5ZT09Im9iamVjdCImJnR5cGVvZiBROWU8InUiP1E5ZS5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShlKToodD10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0fHxzZWxmKS5kYXlqc19wbHVnaW5faXNUb2RheT1lKCl9KShaOWUsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3JldHVybiBmdW5jdGlvbih0LGUscil7ZS5wcm90b3R5cGUuaXNUb2RheT1mdW5jdGlvbigpe3ZhciBhPSJZWVlZLU1NLUREIixzPXIoKTtyZXR1cm4gdGhpcy5mb3JtYXQoYSk9PT1zLmZvcm1hdChhKX19fSkpfSk7ZnVuY3Rpb24gaGRhKHQpe3JldHVybntkYXlzOk1hdGgudHJ1bmModC84NjRlNSksaG91cnM6TWF0aC50cnVuYyh0LzM2ZTUlMjQpLG1pbnV0ZXM6TWF0aC50cnVuYyh0LzZlNCU2MCksc2Vjb25kczpNYXRoLnRydW5jKHQvMWUzJTYwKSxtaWxsaXNlY29uZHM6TWF0aC50cnVuYyh0JTFlMyksbWljcm9zZWNvbmRzOk1hdGgudHJ1bmMoaF90KHQqMWUzKSUxZTMpLG5hbm9zZWNvbmRzOk1hdGgudHJ1bmMoaF90KHQqMWU2KSUxZTMpfX1mdW5jdGlvbiBtZGEodCl7cmV0dXJue2RheXM6dC84NjQwMDAwMG4saG91cnM6dC8zNjAwMDAwbiUyNG4sbWludXRlczp0LzYwMDAwbiU2MG4sc2Vjb25kczp0LzEwMDBuJTYwbixtaWxsaXNlY29uZHM6dCUxMDAwbixtaWNyb3NlY29uZHM6MG4sbmFub3NlY29uZHM6MG59fWZ1bmN0aW9uIFg5ZSh0KXtzd2l0Y2godHlwZW9mIHQpe2Nhc2UibnVtYmVyIjp7aWYoTnVtYmVyLmlzRmluaXRlKHQpKXJldHVybiBoZGEodCk7YnJlYWt9Y2FzZSJiaWdpbnQiOnJldHVybiBtZGEodCl9dGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmaW5pdGUgbnVtYmVyIG9yIGJpZ2ludCIpfXZhciBoX3QsbV90PXUoKCk9PntoX3Q9aSh0PT5OdW1iZXIuaXNGaW5pdGUodCk/dDowLCJ0b1plcm9JZkluZmluaXR5Iik7aShoZGEsInBhcnNlTnVtYmVyIik7aShtZGEsInBhcnNlQmlnaW50Iik7aShYOWUsInBhcnNlTWlsbGlzZWNvbmRzIil9KTtmdW5jdGlvbiBvUyh0LGUpe2xldCByPXR5cGVvZiB0PT0iYmlnaW50IjtpZighciYmIU51bWJlci5pc0Zpbml0ZSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZpbml0ZSBudW1iZXIgb3IgYmlnaW50Iik7ZT17Li4uZX07bGV0IGE9dDwwPyItIjoiIjt0PXQ8MD8tdDp0LGUuY29sb25Ob3RhdGlvbiYmKGUuY29tcGFjdD0hMSxlLmZvcm1hdFN1Yk1pbGxpc2Vjb25kcz0hMSxlLnNlcGFyYXRlTWlsbGlzZWNvbmRzPSExLGUudmVyYm9zZT0hMSksZS5jb21wYWN0JiYoZS51bml0Q291bnQ9MSxlLnNlY29uZHNEZWNpbWFsRGlnaXRzPTAsZS5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzPTApO2xldCBzPVtdLG49aSgoZixwKT0+e2xldCBoPU1hdGguZmxvb3IoZioxMCoqcCt4ZGEpO3JldHVybihNYXRoLnJvdW5kKGgpLzEwKipwKS50b0ZpeGVkKHApfSwiZmxvb3JEZWNpbWFscyIpLG89aSgoZixwLGgsbSk9PntpZighKChzLmxlbmd0aD09PTB8fCFlLmNvbG9uTm90YXRpb24pJiZnZGEoZikmJiEoZS5jb2xvbk5vdGF0aW9uJiZoPT09Im0iKSkpe2lmKG0/Pz1TdHJpbmcoZiksZS5jb2xvbk5vdGF0aW9uKXtsZXQgdj1tLmluY2x1ZGVzKCIuIik/bS5zcGxpdCgiLiIpWzBdLmxlbmd0aDptLmxlbmd0aCxiPXMubGVuZ3RoPjA/MjoxO209IjAiLnJlcGVhdChNYXRoLm1heCgwLGItdikpK219ZWxzZSBtKz1lLnZlcmJvc2U/IiAiK2JkYShwLGYpOmg7cy5wdXNoKG0pfX0sImFkZCIpLGw9WDllKHQpLGM9QmlnSW50KGwuZGF5cyk7aWYoZS5oaWRlWWVhckFuZERheXM/byhCaWdJbnQoYykqMjRuK0JpZ0ludChsLmhvdXJzKSwiaG91ciIsImgiKTooZS5oaWRlWWVhcj9vKGMsImRheSIsImQiKToobyhjLzM2NW4sInllYXIiLCJ5IiksbyhjJTM2NW4sImRheSIsImQiKSksbyhOdW1iZXIobC5ob3VycyksImhvdXIiLCJoIikpLG8oTnVtYmVyKGwubWludXRlcyksIm1pbnV0ZSIsIm0iKSwhZS5oaWRlU2Vjb25kcylpZihlLnNlcGFyYXRlTWlsbGlzZWNvbmRzfHxlLmZvcm1hdFN1Yk1pbGxpc2Vjb25kc3x8IWUuY29sb25Ob3RhdGlvbiYmdDwxZTMmJiFlLnN1YlNlY29uZHNBc0RlY2ltYWxzKXtsZXQgZj1OdW1iZXIobC5zZWNvbmRzKSxwPU51bWJlcihsLm1pbGxpc2Vjb25kcyksaD1OdW1iZXIobC5taWNyb3NlY29uZHMpLG09TnVtYmVyKGwubmFub3NlY29uZHMpO2lmKG8oZiwic2Vjb25kIiwicyIpLGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzKW8ocCwibWlsbGlzZWNvbmQiLCJtcyIpLG8oaCwibWljcm9zZWNvbmQiLCJceEI1cyIpLG8obSwibmFub3NlY29uZCIsIm5zIik7ZWxzZXtsZXQgdj1wK2gvMWUzK20vMWU2LGI9dHlwZW9mIGUubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0cz09Im51bWJlciI/ZS5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzOjAsZz12Pj0xP01hdGgucm91bmQodik6TWF0aC5jZWlsKHYpLHk9Yj92LnRvRml4ZWQoYik6ZztvKE51bWJlci5wYXJzZUZsb2F0KHkpLCJtaWxsaXNlY29uZCIsIm1zIix5KX19ZWxzZXtsZXQgZj0ocj9OdW1iZXIodCV2ZGEpOnQpLzFlMyU2MCxwPXR5cGVvZiBlLnNlY29uZHNEZWNpbWFsRGlnaXRzPT0ibnVtYmVyIj9lLnNlY29uZHNEZWNpbWFsRGlnaXRzOjEsaD1uKGYscCksbT1lLmtlZXBEZWNpbWFsc09uV2hvbGVTZWNvbmRzP2g6aC5yZXBsYWNlKC9cLjArJC8sIiIpO28oTnVtYmVyLnBhcnNlRmxvYXQobSksInNlY29uZCIsInMiLG0pfWlmKHMubGVuZ3RoPT09MClyZXR1cm4gYSsiMCIrKGUudmVyYm9zZT8iIG1pbGxpc2Vjb25kcyI6Im1zIik7bGV0IGQ9ZS5jb2xvbk5vdGF0aW9uPyI6IjoiICI7cmV0dXJuIHR5cGVvZiBlLnVuaXRDb3VudD09Im51bWJlciImJihzPXMuc2xpY2UoMCxNYXRoLm1heChlLnVuaXRDb3VudCwxKSkpLGErcy5qb2luKGQpfXZhciBnZGEsYmRhLHhkYSx2ZGEsZ190PXUoKCk9PnttX3QoKTtnZGE9aSh0PT50PT09MHx8dD09PTBuLCJpc1plcm8iKSxiZGE9aSgodCxlKT0+ZT09PTF8fGU9PT0xbj90OmAke3R9c2AsInBsdXJhbGl6ZSIpLHhkYT0xZS03LHZkYT0yNG4qNjBuKjYwbioxMDAwbjtpKG9TLCJwcmV0dHlNaWxsaXNlY29uZHMiKX0pO3ZhciBlaCxiX3QsdHU9dSgoKT0+e01iKCk7TmQoKTtHbigpO195dCgpO3VfdCgpO2VoPUdhKHBfdCgpLDEpLGJfdD1HYShmX3QoKSwxKTtnX3QoKTtlaC5kZWZhdWx0LmV4dGVuZChiX3QuZGVmYXVsdCl9KTt2YXIgbFMsSjllPXUoKCk9Pnt0dSgpO2VnZSgpO2xTPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNyb25Kb2IiKX1jb25zdHJ1Y3RvcihlLHIsYSl7dGhpcy5zdGF0dXM9ImluaXRpYWwiLHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9MCx0aGlzLmNyb25FeHByZXNzaW9uPXIsdGhpcy5qb2JGdW5jdGlvbj1hLHRoaXMuY3JvblBhcnNlcj1uZXcgRmsuQ3JvbihyKX1jaGVja0V4ZWN1dGlvbigpe2lmKHRoaXMuc3RhdHVzPT09InN0b3BwZWQiKXJldHVybiB0aGlzLm5leHRFeGVjdXRpb25Vbml4O2lmKHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9PT0wJiZ0aGlzLmdldE5leHRFeGVjdXRpb25UaW1lKCksRGF0ZS5ub3coKT50aGlzLm5leHRFeGVjdXRpb25Vbml4KXtsZXQgZT10aGlzLmpvYkZ1bmN0aW9uKHRoaXMubmV4dEV4ZWN1dGlvblVuaXgpO2UgaW5zdGFuY2VvZiBQcm9taXNlJiZlLmNhdGNoKHI9PmNvbnNvbGUubG9nKHIpKSx0aGlzLm5leHRFeGVjdXRpb25Vbml4PXRoaXMuZ2V0TmV4dEV4ZWN1dGlvblRpbWUoKX1yZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peH1nZXROZXh0RXhlY3V0aW9uVGltZSgpe3JldHVybiB0aGlzLm5leHRFeGVjdXRpb25Vbml4PURhdGUubm93KCkrdGhpcy5nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCl9Z2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpe3JldHVybiB0aGlzLmNyb25QYXJzZXIubXNUb05leHQoKX1zdGFydCgpe3RoaXMuc3RhdHVzPSJzdGFydGVkIn1zdG9wKCl7dGhpcy5zdGF0dXM9InN0b3BwZWQifX19KTt2YXIgdGdlLGVnZT11KCgpPT57dHUoKTtKOWUoKTt0Z2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQ3Jvbk1hbmFnZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLmNyb25qb2JzPW5ldyBGYS5PYmplY3RNYXAsdGhpcy5jeWNsZVdha2VEZWZlcnJlZD1udWxsfXdha2VDeWNsZSgpe3RoaXMuY3ljbGVXYWtlRGVmZXJyZWQmJnRoaXMuY3ljbGVXYWtlRGVmZXJyZWQuc3RhdHVzPT09InBlbmRpbmciJiZ0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnJlc29sdmUoKX1hZGRDcm9uam9iKGUscil7bGV0IGE9bmV3IGxTKHRoaXMsZSxyKTtyZXR1cm4gdGhpcy5jcm9uam9icy5hZGQoYSksdGhpcy5zdGF0dXM9PT0ic3RhcnRlZCImJihhLnN0YXJ0KCksdGhpcy53YWtlQ3ljbGUoKSksYX1yZW1vdmVDcm9uam9iKGUpe2Uuc3RvcCgpLHRoaXMuY3JvbmpvYnMucmVtb3ZlKGUpLHRoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiZ0aGlzLndha2VDeWNsZSgpfXN0YXJ0KCl7aWYodGhpcy5zdGF0dXMhPT0ic3RhcnRlZCIpe3RoaXMuc3RhdHVzPSJzdGFydGVkIjtmb3IobGV0IGUgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKWUuc3RhcnQoKTt0aGlzLnJ1bkNyb25DeWNsZSgpfX1hc3luYyBydW5Dcm9uQ3ljbGUoKXtmb3IoO3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiOyl7dGhpcy5jeWNsZVdha2VEZWZlcnJlZD1uZXcgeHQuRGVmZXJyZWQ7bGV0IGU9MS8wO2ZvcihsZXQgciBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpe3IuY2hlY2tFeGVjdXRpb24oKTtsZXQgYT1yLmdldFRpbWVUb05leHRFeGVjdXRpb24oKTthPGUmJihlPWEpfWlmKGU8MS8wJiZlPjApdGhpcy5leGVjdXRpb25UaW1lb3V0PW5ldyBLdC5UaW1lb3V0KGUpLGF3YWl0IFByb21pc2UucmFjZShbdGhpcy5leGVjdXRpb25UaW1lb3V0LnByb21pc2UsdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5wcm9taXNlXSksdGhpcy5leGVjdXRpb25UaW1lb3V0LmNhbmNlbCgpO2Vsc2V7aWYoZTw9MCljb250aW51ZTthd2FpdCB0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnByb21pc2V9fXRoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bnVsbH1zdG9wKCl7dGhpcy5zdGF0dXM9PT0ic3RhcnRlZCImJih0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5leGVjdXRpb25UaW1lb3V0JiZ0aGlzLmV4ZWN1dGlvblRpbWVvdXQuY2FuY2VsKCksdGhpcy53YWtlQ3ljbGUoKSk7Zm9yKGxldCBlIG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSllLnN0b3AoKX19fSk7dmFyIHJ1LHJnZSx5ZGEsd2RhLGFnZT11KCgpPT57dHUoKTtydT17eWVhcnM6aSgodD0xKT0+dCozMTU0ZTcsInllYXJzIiksbW9udGhzOmkoKHQ9MSk9PnQqMjYyOGU2LCJtb250aHMiKSx3ZWVrczppKCh0PTEpPT50KjYwNDhlNSwid2Vla3MiKSxkYXlzOmkoKHQ9MSk9PnQqODY0ZTUsImRheXMiKSxob3VyczppKCh0PTEpPT50KjM2ZTUsImhvdXJzIiksbWludXRlczppKCh0PTEpPT50KjZlNCwibWludXRlcyIpLHNlY29uZHM6aSgodD0xKT0+dCoxZTMsInNlY29uZHMiKX0scmdlPWkodD0+e2xldCBlPTAscj1pKGE9PntlPWUrYX0sImFkZE1pbGxpU2Vjb25kcyIpO3JldHVybiB0LnllYXJzJiZyKHJ1LnllYXJzKHQueWVhcnMpKSx0Lm1vbnRocyYmcihydS5tb250aHModC5tb250aHMpKSx0LndlZWtzJiZyKHJ1LndlZWtzKHQud2Vla3MpKSx0LmRheXMmJnIocnUuZGF5cyh0LmRheXMpKSx0LmhvdXJzJiZyKHJ1LmhvdXJzKHQuaG91cnMpKSx0Lm1pbnV0ZXMmJnIocnUubWludXRlcyh0Lm1pbnV0ZXMpKSx0LnNlY29uZHMmJnIocnUuc2Vjb25kcyh0LnNlY29uZHMpKSxlfSwiZ2V0TWlsbGlTZWNvbmRzRnJvbVVuaXRzIikseWRhPWkodD0+b1ModCksImdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZVN0cmluZyIpLHdkYT1pKHQ9Pm5TLmZvcm1hdERpc3RhbmNlVG9Ob3cobmV3IERhdGUodCkpLCJnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVBZ29UaW1lIil9KTt2YXIgaWdlLHhfdD11KCgpPT57dHUoKTthZ2UoKTtpZ2U9Y2xhc3MgdCBleHRlbmRzIERhdGV7c3RhdGlje2kodGhpcywiRXh0ZW5kZWREYXRlIil9c3RhdGljIGZyb21NaWxsaXMoZSl7cmV0dXJuIG5ldyB0KGUpfXN0YXRpYyBmcm9tRGF0ZShlKXtyZXR1cm4gbmV3IHQoZS5nZXRUaW1lKCkpfXN0YXRpYyBmcm9tRXVyb3BlYW5EYXRlKGUpe2xldCByPS8oLiopXC4oLiopXC4oLiopLy5leGVjKGUpLHM9bmV3IERhdGUocGFyc2VGbG9hdChyWzNdKSxwYXJzZUZsb2F0KHJbMl0pLTEscGFyc2VGbG9hdChyWzFdKSkuZ2V0VGltZSgpO3JldHVybiBuZXcgdChzKX1zdGF0aWMgZnJvbUh5cGhlZERhdGUoZSl7bGV0IHI9bmV3IERhdGUoZSkuZ2V0VGltZSgpO3JldHVybiBuZXcgdChyKX1zdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZUFuZFRpbWUoZSxyPSIxMjowMDowMCIsYT0iRXVyb3BlL0JlcmxpbiIpe2xldCBzPS8oLiopXC4oLiopXC4oLiopLy5leGVjKGUpLG49aShkPT5gMCR7ZH1gLnNsaWNlKC0yKSwic2xpY2VEYXRlIiksbz1gJHtzWzNdfS0ke24oc1syXSl9LSR7bihzWzFdKX1UJHtyfWAsYz1laC5kZWZhdWx0KG8pLnRvRGF0ZSgpLmdldFRpbWUoKTtyZXR1cm4gbmV3IHQoYyl9Y29uc3RydWN0b3IoZT1EYXRlLm5vdygpKXtzdXBlcihlKX1leHBvcnRUb0V1cm9wZWFuRGF0ZSgpe2xldCBlPXRoaXMuZXhwb3J0VG9Vbml0cygpO3JldHVybmAke2UuZGF5U3RyaW5nfS4ke2UubW9udGhTdHJpbmd9LiR7ZS55ZWFyU3RyaW5nfWB9ZXhwb3J0VG9IeXBoZWRTb3J0YWJsZURhdGUoKXtsZXQgZT10aGlzLmV4cG9ydFRvVW5pdHMoKTtyZXR1cm5gJHtlLnllYXJTdHJpbmd9LSR7ZS5tb250aFN0cmluZ30tJHtlLmRheVN0cmluZ31gfWV4cG9ydFRvVW5pdHMoKXtsZXQgZT1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0scj1bIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5IiwiU3VuZGF5Il07cmV0dXJue3llYXI6dGhpcy5nZXRGdWxsWWVhcigpLHllYXJTdHJpbmc6YCR7dGhpcy5nZXRGdWxsWWVhcigpfWAsbW9udGg6dGhpcy5nZXRNb250aCgpKzEsbW9udGhTdHJpbmc6KCIwIisodGhpcy5nZXRNb250aCgpKzEpKS5zbGljZSgtMiksbW9udGhOYW1lOmVbdGhpcy5nZXRNb250aCgpXSxkYXk6dGhpcy5nZXREYXRlKCksZGF5U3RyaW5nOigiMCIrdGhpcy5nZXREYXRlKCkpLnNsaWNlKC0yKSxkYXlPZlRoZVdlZWs6dGhpcy5nZXREYXkoKSxkYXlPZlRoZVdlZWtOYW1lOnJbdGhpcy5nZXREYXkoKV19fWZvcm1hdChlKXtyZXR1cm4gZWguZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuZm9ybWF0KGUpfWlzVG9kYXkoKXtyZXR1cm4gZWguZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuaXNUb2RheSgpfWxlc3NUaW1lUGFzc2VkVG9Ob3coZSl7bGV0IHI9cmdlKGUpO3JldHVybiBEYXRlLm5vdygpLXRoaXMuZ2V0VGltZSgpPHJ9bW9yZVRpbWVQYXNzZWRUb05vdyhlKXtyZXR1cm4hdGhpcy5sZXNzVGltZVBhc3NlZFRvTm93KGUpfX19KTt2YXIgc2dlLHZfdD11KCgpPT57c2dlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkhydE1lYXN1cmVtZW50Iil9Y29uc3RydWN0b3IoKXt0aGlzLm5hbm9TZWNvbmRzPW51bGwsdGhpcy5taWxsaVNlY29uZHM9bnVsbCx0aGlzLl9taWxsaVN0YXJ0PW51bGwsdGhpcy5fbWlsbGlEaWZmPW51bGwsdGhpcy5fc3RhcnRlZD0hMX1zdGFydCgpe3RoaXMuX3N0YXJ0ZWQ9ITAsdGhpcy5fbWlsbGlTdGFydD1EYXRlLm5vdygpfXN0b3AoKXtpZih0aGlzLl9zdGFydGVkPT09ITEpe2NvbnNvbGUubG9nKCJIYXNuJ3Qgc3RhcnRlZCB5ZXQiKTtyZXR1cm59cmV0dXJuIHRoaXMuX21pbGxpRGlmZj1EYXRlLm5vdygpLXRoaXMuX21pbGxpU3RhcnQsdGhpcy5uYW5vU2Vjb25kcz10aGlzLl9taWxsaURpZmYqMWUzLHRoaXMubWlsbGlTZWNvbmRzPXRoaXMuX21pbGxpRGlmZix0aGlzfXJlc2V0KCl7dGhpcy5uYW5vU2Vjb25kcz1udWxsLHRoaXMubWlsbGlTZWNvbmRzPW51bGwsdGhpcy5fbWlsbGlTdGFydD1udWxsLHRoaXMuX21pbGxpRGlmZj1udWxsLHRoaXMuX3N0YXJ0ZWQ9ITF9fX0pO3ZhciBuZ2UseV90PXUoKCk9Pnt0dSgpO25nZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJbnRlcnZhbCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbCx0aGlzLmludGVydmFsSm9icz1bXSx0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzPWV9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7bGV0IGU9bmV3IERhdGU7dGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPWUsaShhc3luYygpPT57Zm9yKDt0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPT09ZTspYXdhaXQgS3QuZGVsYXlGb3IodGhpcy5pbnRlcnZhbE1pbGxpc2Vjb25kcyksdGhpcy5leGVjdXRlSW50ZXJ2YWxKb2JzKCl9LCJydW5JbnRlcnZhbCIpKCl9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbH1hZGRJbnRlcnZhbEpvYihlKXt0aGlzLmludGVydmFsSm9icy5wdXNoKGUpfWV4ZWN1dGVJbnRlcnZhbEpvYnMoKXtmb3IobGV0IGUgb2YgdGhpcy5pbnRlcnZhbEpvYnMpZSgpfX19KTt2YXIgQ2Isb2dlPXUoKCk9Pnt0dSgpO0NiPWNsYXNzIHR7c3RhdGlje2kodGhpcywiVGltZVN0YW1wIil9c3RhdGljIGZyb21NaWxsaVNlY29uZHMoZSl7cmV0dXJuIG5ldyB0KGUpfXN0YXRpYyBmcm9tVGltZVN0YW1wKGUpe2xldCByPW5ldyB0O3JldHVybiByLmNoYW5nZT1yLm1pbGxpU2Vjb25kcy1lLm1pbGxpU2Vjb25kcyxyfWNvbnN0cnVjdG9yKGUpe3RoaXMuY2hhbmdlPW51bGwsZT90eXBlb2YgZT09Im51bWJlciImJih0aGlzLmRhdGU9bmV3IERhdGUoZSkpOnRoaXMuZGF0ZT1uZXcgRGF0ZSx0aGlzLm1pbGxpU2Vjb25kcz10aGlzLmRhdGUuZ2V0VGltZSgpLHRoaXMuZXBvY2h0aW1lPU1hdGguZmxvb3IodGhpcy5taWxsaVNlY29uZHMvMWUzKX1pc09sZGVyVGhhbk90aGVyVGltZVN0YW1wKGUscj0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHM8ZS5taWxsaVNlY29uZHMtcn1pc09sZGVyVGhhbihlLHI9MCl7cmV0dXJuIHRoaXMubWlsbGlTZWNvbmRzK3I8ZS5taWxsaVNlY29uZHN9aXNZb3VuZ2VyVGhhbk90aGVyVGltZVN0YW1wKGUscj0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHM+ZS5taWxsaVNlY29uZHMrcn1pc1lvdW5nZXJUaGFuTWlsbGlTZWNvbmRzKGUpe2xldCBhPW5ldyB0KCkuZXBvY2h0aW1lLWUscz1uZXcgdChhKTtyZXR1cm4gdGhpcy5pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAocyl9fX0pO3ZhciBsZ2Usd190PXUoKCk9Pnt0dSgpO29nZSgpO2xnZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaW1lciIpfWdldCB0aW1lTGVmdCgpe3JldHVybiB0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcy10aGlzLnBhdXNlZEF0LmNoYW5nZX1jb25zdHJ1Y3RvcihlKXt0aGlzLnN0YXRlPSJpbml0aWF0ZWQiLHRoaXMuY29tcGxldGVkRGVmZXJyZWQ9eHQuZGVmZXIoKSx0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcz1lLHRoaXMuY29tcGxldGVkPXRoaXMuY29tcGxldGVkRGVmZXJyZWQucHJvbWlzZX1zdGFydCgpe2lmKCF0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lSW5NaWxsaXNlY29uZHMpLHRoaXMuc3RhcnRlZEF0PW5ldyBDYjtlbHNlIHRocm93IG5ldyBFcnJvcigidGltZXIgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUuIFBsZWFzZSB1c2UgcmVzdW1lIGluc3RlYWQiKX1wYXVzZSgpe3RoaXMuc3RhcnRlZEF0JiYoY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudFRpbWVvdXQpLHRoaXMuY3VycmVudFRpbWVvdXQ9bnVsbCx0aGlzLnBhdXNlZEF0PUNiLmZyb21UaW1lU3RhbXAodGhpcy5zdGFydGVkQXQpKX1yZXN1bWUoKXtpZih0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lTGVmdCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRpbWVyIGhhcyBOT1QgYmVlbiBzdGFydGVkIGJlZm9yZS4gUGxlYXNlIHVzZSAuc3RhcnQoKSBpbnN0ZWFkIil9cmVzZXQoKXt0aGlzLnBhdXNlKCksdGhpcy5zdGFydGVkQXQ9bnVsbCx0aGlzLnBhdXNlZEF0PW51bGx9fX0pO3ZhciB0aD17fTtWZSh0aCx7Q3JvbkpvYjooKT0+bFMsQ3Jvbk1hbmFnZXI6KCk9PnRnZSxFeHRlbmRlZERhdGU6KCk9PmlnZSxIcnRNZWFzdXJlbWVudDooKT0+c2dlLEludGVydmFsOigpPT5uZ2UsVGltZVN0YW1wOigpPT5DYixUaW1lcjooKT0+bGdlLGdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZUFnb1RpbWU6KCk9PndkYSxnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVTdHJpbmc6KCk9PnlkYSxnZXRNaWxsaVNlY29uZHNGcm9tVW5pdHM6KCk9PnJnZSx1bml0czooKT0+cnV9KTt2YXIga190PXUoKCk9PntlZ2UoKTtKOWUoKTt4X3QoKTt2X3QoKTt5X3QoKTt3X3QoKTtvZ2UoKTthZ2UoKX0pO3ZhciBNX3Q9TnQoKGkkaSxTX3QpPT57InVzZSBzdHJpY3QiO1NfdC5leHBvcnRzPWNsYXNze3N0YXRpY3tpKHRoaXMsIlN5bWJvbFRyZWVOb2RlIil9Y29uc3RydWN0b3IoKXt0aGlzLnBhcmVudD1udWxsLHRoaXMucHJldmlvdXNTaWJsaW5nPW51bGwsdGhpcy5uZXh0U2libGluZz1udWxsLHRoaXMuZmlyc3RDaGlsZD1udWxsLHRoaXMubGFzdENoaWxkPW51bGwsdGhpcy5jaGlsZHJlblZlcnNpb249MCx0aGlzLmNoaWxkSW5kZXhDYWNoZWRVcFRvPW51bGwsdGhpcy5jYWNoZWRJbmRleD0tMSx0aGlzLmNhY2hlZEluZGV4VmVyc2lvbj1OYU59Z2V0IGlzQXR0YWNoZWQoKXtyZXR1cm4hISh0aGlzLnBhcmVudHx8dGhpcy5wcmV2aW91c1NpYmxpbmd8fHRoaXMubmV4dFNpYmxpbmcpfWdldCBoYXNDaGlsZHJlbigpe3JldHVybiEhdGhpcy5maXJzdENoaWxkfWNoaWxkcmVuQ2hhbmdlZCgpe3RoaXMuY2hpbGRyZW5WZXJzaW9uPXRoaXMuY2hpbGRyZW5WZXJzaW9uKzEmNDI5NDk2NzI5NSx0aGlzLmNoaWxkSW5kZXhDYWNoZWRVcFRvPW51bGx9Z2V0Q2FjaGVkSW5kZXgoZSl7cmV0dXJuIHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uIT09ZS5jaGlsZHJlblZlcnNpb24/KHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTiwtMSk6dGhpcy5jYWNoZWRJbmRleH1zZXRDYWNoZWRJbmRleChlLHIpe3RoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPWUuY2hpbGRyZW5WZXJzaW9uLHRoaXMuY2FjaGVkSW5kZXg9cn19fSk7dmFyIHpfdD1OdCgobiRpLENfdCk9PnsidXNlIHN0cmljdCI7Q190LmV4cG9ydHM9T2JqZWN0LmZyZWV6ZSh7RElTQ09OTkVDVEVEOjEsUFJFQ0VESU5HOjIsRk9MTE9XSU5HOjQsQ09OVEFJTlM6OCxDT05UQUlORURfQlk6MTZ9KX0pO3ZhciAkX3Q9TnQoKG8kaSxEX3QpPT57InVzZSBzdHJpY3QiO3ZhciBfX3Q9U3ltYm9sKCksVF90PVN5bWJvbCgpLGF1PVN5bWJvbCgpLExfdD1TeW1ib2woKSxTMj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUcmVlSXRlcmF0b3IiKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXt0aGlzW19fdF09ZSx0aGlzW1RfdF09cix0aGlzW2F1XT1hLHRoaXNbTF90XT1zfW5leHQoKXtsZXQgZT10aGlzW19fdF0scj10aGlzW0xfdF0sYT10aGlzW1RfdF07aWYoIXRoaXNbYXVdKXJldHVybntkb25lOiEwLHZhbHVlOmF9O2xldCBzPXRoaXNbYXVdO3JldHVybiByPT09MT90aGlzW2F1XT1lLl9ub2RlKHMpLnByZXZpb3VzU2libGluZzpyPT09Mj90aGlzW2F1XT1lLl9ub2RlKHMpLm5leHRTaWJsaW5nOnI9PT0zP3RoaXNbYXVdPWUuX25vZGUocykucGFyZW50OnI9PT00P3RoaXNbYXVdPWUucHJlY2VkaW5nKHMse3Jvb3Q6YX0pOnRoaXNbYXVdPWUuZm9sbG93aW5nKHMse3Jvb3Q6YX0pLHtkb25lOiExLHZhbHVlOnN9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFMyLnByb3RvdHlwZSxTeW1ib2wuaXRlcmF0b3Ise3ZhbHVlOmkoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sInZhbHVlIiksd3JpdGFibGU6ITF9KSxTMi5QUkVWPTEsUzIuTkVYVD0yLFMyLlBBUkVOVD0zLFMyLlBSRUNFRElORz00LFMyLkZPTExPV0lORz01LE9iamVjdC5mcmVlemUoUzIpLE9iamVjdC5mcmVlemUoUzIucHJvdG90eXBlKSxEX3QuZXhwb3J0cz1TMn0pO3ZhciBFX3Q9TnQoKGMkaSxBX3QpPT57InVzZSBzdHJpY3QiO3ZhciBTZGE9TV90KCksaXU9el90KCksemw9JF90KCk7ZnVuY3Rpb24gY2dlKCl7cmV0dXJuITB9aShjZ2UsInJldHVyblRydWUiKTtmdW5jdGlvbiB6Yih0LGUpe3JldHVybiB0W3QubGVuZ3RoLTEtZV19aSh6YiwicmV2ZXJzZUFycmF5SW5kZXgiKTt2YXIgSW5lPWNsYXNze3N0YXRpY3tpKHRoaXMsIlN5bWJvbFRyZWUiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnN5bWJvbD1TeW1ib2woZXx8IlN5bWJvbFRyZWUgZGF0YSIpfWluaXRpYWxpemUoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSksZX1fbm9kZShlKXtpZighZSlyZXR1cm4gbnVsbDtsZXQgcj1lW3RoaXMuc3ltYm9sXTtyZXR1cm4gcnx8KGVbdGhpcy5zeW1ib2xdPW5ldyBTZGEpfWhhc0NoaWxkcmVuKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLmhhc0NoaWxkcmVufWZpcnN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkuZmlyc3RDaGlsZH1sYXN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkubGFzdENoaWxkfXByZXZpb3VzU2libGluZyhlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5wcmV2aW91c1NpYmxpbmd9bmV4dFNpYmxpbmcoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkubmV4dFNpYmxpbmd9cGFyZW50KGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLnBhcmVudH1sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKXtsZXQgcixhPWU7Zm9yKDtyPXRoaXMuX25vZGUoYSkubGFzdENoaWxkOylhPXI7cmV0dXJuIGF9cHJlY2VkaW5nKGUscil7bGV0IGE9ciYmci5yb290O2lmKGU9PT1hKXJldHVybiBudWxsO2xldCBzPXRoaXMuX25vZGUoZSkucHJldmlvdXNTaWJsaW5nO3JldHVybiBzP3RoaXMubGFzdEluY2x1c2l2ZURlc2NlbmRhbnQocyk6dGhpcy5fbm9kZShlKS5wYXJlbnR9Zm9sbG93aW5nKGUscil7bGV0IGE9ciYmci5yb290LG49IShyJiZyLnNraXBDaGlsZHJlbikmJnRoaXMuX25vZGUoZSkuZmlyc3RDaGlsZDtpZihuKXJldHVybiBuO2xldCBvPWU7ZG97aWYobz09PWEpcmV0dXJuIG51bGw7bGV0IGw9dGhpcy5fbm9kZShvKS5uZXh0U2libGluZztpZihsKXJldHVybiBsO289dGhpcy5fbm9kZShvKS5wYXJlbnR9d2hpbGUobyk7cmV0dXJuIG51bGx9Y2hpbGRyZW5Ub0FycmF5KGUscil7bGV0IGE9ciYmci5hcnJheXx8W10scz1yJiZyLmZpbHRlcnx8Y2dlLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz10aGlzLl9ub2RlKGUpLGw9by5maXJzdENoaWxkLGM9MDtmb3IoO2w7KXtsZXQgZD10aGlzLl9ub2RlKGwpO2Quc2V0Q2FjaGVkSW5kZXgobyxjKSxzLmNhbGwobixsKSYmYS5wdXNoKGwpLGw9ZC5uZXh0U2libGluZywrK2N9cmV0dXJuIGF9YW5jZXN0b3JzVG9BcnJheShlLHIpe2xldCBhPXImJnIuYXJyYXl8fFtdLHM9ciYmci5maWx0ZXJ8fGNnZSxuPXImJnIudGhpc0FyZ3x8dm9pZCAwLG89ZTtmb3IoO287KXMuY2FsbChuLG8pJiZhLnB1c2gobyksbz10aGlzLl9ub2RlKG8pLnBhcmVudDtyZXR1cm4gYX10cmVlVG9BcnJheShlLHIpe2xldCBhPXImJnIuYXJyYXl8fFtdLHM9ciYmci5maWx0ZXJ8fGNnZSxuPXImJnIudGhpc0FyZ3x8dm9pZCAwLG89ZTtmb3IoO287KXMuY2FsbChuLG8pJiZhLnB1c2gobyksbz10aGlzLmZvbGxvd2luZyhvLHtyb290OmV9KTtyZXR1cm4gYX1jaGlsZHJlbkl0ZXJhdG9yKGUscil7bGV0IGE9ciYmci5yZXZlcnNlLHM9dGhpcy5fbm9kZShlKTtyZXR1cm4gbmV3IHpsKHRoaXMsZSxhP3MubGFzdENoaWxkOnMuZmlyc3RDaGlsZCxhP3psLlBSRVY6emwuTkVYVCl9cHJldmlvdXNTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiBuZXcgemwodGhpcyxlLHRoaXMuX25vZGUoZSkucHJldmlvdXNTaWJsaW5nLHpsLlBSRVYpfW5leHRTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiBuZXcgemwodGhpcyxlLHRoaXMuX25vZGUoZSkubmV4dFNpYmxpbmcsemwuTkVYVCl9YW5jZXN0b3JzSXRlcmF0b3IoZSl7cmV0dXJuIG5ldyB6bCh0aGlzLGUsZSx6bC5QQVJFTlQpfXRyZWVJdGVyYXRvcihlLHIpe2xldCBhPXImJnIucmV2ZXJzZTtyZXR1cm4gbmV3IHpsKHRoaXMsZSxhP3RoaXMubGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSk6ZSxhP3psLlBSRUNFRElORzp6bC5GT0xMT1dJTkcpfWluZGV4KGUpe2xldCByPXRoaXMuX25vZGUoZSksYT10aGlzLl9ub2RlKHIucGFyZW50KTtpZighYSlyZXR1cm4tMTtsZXQgcz1yLmdldENhY2hlZEluZGV4KGEpO2lmKHM+PTApcmV0dXJuIHM7cz0wO2xldCBuPWEuZmlyc3RDaGlsZDtpZihhLmNoaWxkSW5kZXhDYWNoZWRVcFRvKXtsZXQgbz10aGlzLl9ub2RlKGEuY2hpbGRJbmRleENhY2hlZFVwVG8pO249by5uZXh0U2libGluZyxzPW8uZ2V0Q2FjaGVkSW5kZXgoYSkrMX1mb3IoO247KXtsZXQgbz10aGlzLl9ub2RlKG4pO2lmKG8uc2V0Q2FjaGVkSW5kZXgoYSxzKSxuPT09ZSlicmVhazsrK3Msbj1vLm5leHRTaWJsaW5nfXJldHVybiBhLmNoaWxkSW5kZXhDYWNoZWRVcFRvPWUsc31jaGlsZHJlbkNvdW50KGUpe2xldCByPXRoaXMuX25vZGUoZSk7cmV0dXJuIHIubGFzdENoaWxkP3RoaXMuaW5kZXgoci5sYXN0Q2hpbGQpKzE6MH1jb21wYXJlVHJlZVBvc2l0aW9uKGUscil7aWYoZT09PXIpcmV0dXJuIDA7bGV0IGE9W107e2xldCBmPWU7Zm9yKDtmOyl7aWYoZj09PXIpcmV0dXJuIGl1LkNPTlRBSU5TfGl1LlBSRUNFRElORzthLnB1c2goZiksZj10aGlzLnBhcmVudChmKX19bGV0IHM9W107e2xldCBmPXI7Zm9yKDtmOyl7aWYoZj09PWUpcmV0dXJuIGl1LkNPTlRBSU5FRF9CWXxpdS5GT0xMT1dJTkc7cy5wdXNoKGYpLGY9dGhpcy5wYXJlbnQoZil9fWxldCBuPXpiKGEsMCk7aWYoIW58fG4hPT16YihzLDApKXJldHVybiBpdS5ESVNDT05ORUNURUQ7bGV0IG89MCxsPU1hdGgubWluKGEubGVuZ3RoLHMubGVuZ3RoKTtmb3IobGV0IGY9MDtmPGw7KytmKXtsZXQgcD16YihhLGYpLGg9emIocyxmKTtpZihwIT09aClicmVhaztvPWZ9bGV0IGM9dGhpcy5pbmRleCh6YihhLG8rMSkpO3JldHVybiB0aGlzLmluZGV4KHpiKHMsbysxKSk8Yz9pdS5QUkVDRURJTkc6aXUuRk9MTE9XSU5HfXJlbW92ZShlKXtsZXQgcj10aGlzLl9ub2RlKGUpLGE9dGhpcy5fbm9kZShyLnBhcmVudCkscz10aGlzLl9ub2RlKHIucHJldmlvdXNTaWJsaW5nKSxuPXRoaXMuX25vZGUoci5uZXh0U2libGluZyk7cmV0dXJuIGEmJihhLmZpcnN0Q2hpbGQ9PT1lJiYoYS5maXJzdENoaWxkPXIubmV4dFNpYmxpbmcpLGEubGFzdENoaWxkPT09ZSYmKGEubGFzdENoaWxkPXIucHJldmlvdXNTaWJsaW5nKSkscyYmKHMubmV4dFNpYmxpbmc9ci5uZXh0U2libGluZyksbiYmKG4ucHJldmlvdXNTaWJsaW5nPXIucHJldmlvdXNTaWJsaW5nKSxyLnBhcmVudD1udWxsLHIucHJldmlvdXNTaWJsaW5nPW51bGwsci5uZXh0U2libGluZz1udWxsLHIuY2FjaGVkSW5kZXg9LTEsci5jYWNoZWRJbmRleFZlcnNpb249TmFOLGEmJmEuY2hpbGRyZW5DaGFuZ2VkKCksZX1pbnNlcnRCZWZvcmUoZSxyKXtsZXQgYT10aGlzLl9ub2RlKGUpLHM9dGhpcy5fbm9kZShhLnByZXZpb3VzU2libGluZyksbj10aGlzLl9ub2RlKHIpLG89dGhpcy5fbm9kZShhLnBhcmVudCk7aWYobi5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIG4ucGFyZW50PWEucGFyZW50LG4ucHJldmlvdXNTaWJsaW5nPWEucHJldmlvdXNTaWJsaW5nLG4ubmV4dFNpYmxpbmc9ZSxhLnByZXZpb3VzU2libGluZz1yLHMmJihzLm5leHRTaWJsaW5nPXIpLG8mJm8uZmlyc3RDaGlsZD09PWUmJihvLmZpcnN0Q2hpbGQ9ciksbyYmby5jaGlsZHJlbkNoYW5nZWQoKSxyfWluc2VydEFmdGVyKGUscil7bGV0IGE9dGhpcy5fbm9kZShlKSxzPXRoaXMuX25vZGUoYS5uZXh0U2libGluZyksbj10aGlzLl9ub2RlKHIpLG89dGhpcy5fbm9kZShhLnBhcmVudCk7aWYobi5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIG4ucGFyZW50PWEucGFyZW50LG4ucHJldmlvdXNTaWJsaW5nPWUsbi5uZXh0U2libGluZz1hLm5leHRTaWJsaW5nLGEubmV4dFNpYmxpbmc9cixzJiYocy5wcmV2aW91c1NpYmxpbmc9ciksbyYmby5sYXN0Q2hpbGQ9PT1lJiYoby5sYXN0Q2hpbGQ9ciksbyYmby5jaGlsZHJlbkNoYW5nZWQoKSxyfXByZXBlbmRDaGlsZChlLHIpe2xldCBhPXRoaXMuX25vZGUoZSkscz10aGlzLl9ub2RlKHIpO2lmKHMuaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBhLmhhc0NoaWxkcmVuP3RoaXMuaW5zZXJ0QmVmb3JlKGEuZmlyc3RDaGlsZCxyKToocy5wYXJlbnQ9ZSxhLmZpcnN0Q2hpbGQ9cixhLmxhc3RDaGlsZD1yLGEuY2hpbGRyZW5DaGFuZ2VkKCkpLHJ9YXBwZW5kQ2hpbGQoZSxyKXtsZXQgYT10aGlzLl9ub2RlKGUpLHM9dGhpcy5fbm9kZShyKTtpZihzLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gYS5oYXNDaGlsZHJlbj90aGlzLmluc2VydEFmdGVyKGEubGFzdENoaWxkLHIpOihzLnBhcmVudD1lLGEuZmlyc3RDaGlsZD1yLGEubGFzdENoaWxkPXIsYS5jaGlsZHJlbkNoYW5nZWQoKSkscn19O0FfdC5leHBvcnRzPUluZSxJbmUuVHJlZVBvc2l0aW9uPWl1fSk7dmFyIFBuZSxfbD11KCgpPT57TmQoKTt5eXQoKTtHbigpO1pjKCk7a190KCk7UG5lPUdhKEVfdCgpLDEpfSk7dmFyIGRnZSxJX3Q9dSgoKT0+e19sKCk7ZGdlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkFzeW5jRXhlY3V0aW9uU3RhY2siKX1leGVjdXRpb25TbG90cz1bXTtpc1Byb2Nlc3Npbmc9ITE7bm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k9MS8wO25vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudD0wO25vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZT1bXTthc3luYyBnZXRFeGNsdXNpdmVFeGVjdXRpb25TbG90KGUscil7bGV0IGE9eHQuZGVmZXIoKSxzPXtmdW5jVG9FeGVjdXRlOmUsZXhlY3V0aW9uRGVmZXJyZWQ6YSx0aW1lb3V0OnIsbW9kZToiZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChzKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGEucHJvbWlzZX1hc3luYyBnZXROb25FeGNsdXNpdmVFeGVjdXRpb25TbG90KGUscil7bGV0IGE9eHQuZGVmZXIoKSxzPXtmdW5jVG9FeGVjdXRlOmUsZXhlY3V0aW9uRGVmZXJyZWQ6YSx0aW1lb3V0OnIsbW9kZToibm9uZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChzKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGEucHJvbWlzZX1zZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeShlKXtpZighTnVtYmVyLmlzRmluaXRlKGUpfHxlPDEpdGhyb3cgbmV3IEVycm9yKCJub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSBtdXN0IGJlIGEgZmluaXRlIG51bWJlciA+PSAxIik7dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT1lfWdldE5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3l9Z2V0QWN0aXZlTm9uRXhjbHVzaXZlQ291bnQoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnR9Z2V0UGVuZGluZ05vbkV4Y2x1c2l2ZUNvdW50KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLmxlbmd0aH1hc3luYyBwcm9jZXNzRXhlY3V0aW9uU2xvdHMoKXtpZighdGhpcy5pc1Byb2Nlc3Npbmcpe2Zvcih0aGlzLmlzUHJvY2Vzc2luZz0hMDt0aGlzLmV4ZWN1dGlvblNsb3RzLmxlbmd0aD4wOyl7bGV0IGU9dGhpcy5leGVjdXRpb25TbG90c1swXTtpZihlLm1vZGU9PT0iZXhjbHVzaXZlIilhd2FpdCB0aGlzLmV4ZWN1dGVFeGNsdXNpdmVTbG90KGUpLHRoaXMuZXhlY3V0aW9uU2xvdHMuc2hpZnQoKTtlbHNle2xldCByPVtdO2Zvcig7dGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGg+MCYmdGhpcy5leGVjdXRpb25TbG90c1swXS5tb2RlPT09Im5vbmV4Y2x1c2l2ZSI7KXIucHVzaCh0aGlzLmV4ZWN1dGlvblNsb3RzLnNoaWZ0KCkpO2F3YWl0IHRoaXMuZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKHIpfX10aGlzLmlzUHJvY2Vzc2luZz0hMX19YXN5bmMgZXhlY3V0ZUV4Y2x1c2l2ZVNsb3QoZSl7dHJ5e2lmKGUudGltZW91dCl7bGV0IHI9bmV3IEt0LlRpbWVvdXQoZS50aW1lb3V0KTt0cnl7bGV0IGE9YXdhaXQgUHJvbWlzZS5yYWNlKFtlLmZ1bmNUb0V4ZWN1dGUoKSxyLnByb21pc2UudGhlbigoKT0+e3Rocm93IG5ldyBFcnJvcigiVGltZW91dCByZWFjaGVkIil9KV0pO3IuY2FuY2VsKCksZS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKGEpfWNhdGNoKGEpe3Rocm93IHIuY2FuY2VsKCksYX19ZWxzZXtsZXQgcj1hd2FpdCBlLmZ1bmNUb0V4ZWN1dGUoKTtlLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9fWNhdGNoKHIpe2UuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KHIpfX1hc3luYyBleGVjdXRlTm9uRXhjbHVzaXZlU2xvdHMoZSl7bGV0IHI9ZS5tYXAoYXN5bmMgYT0+e2F3YWl0IHRoaXMud2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKTt0cnl7aWYoYS50aW1lb3V0KXtsZXQgcz1uZXcgS3QuVGltZW91dChhLnRpbWVvdXQpO3RyeXtsZXQgbj1hd2FpdCBQcm9taXNlLnJhY2UoW2EuZnVuY1RvRXhlY3V0ZSgpLHMucHJvbWlzZS50aGVuKCgpPT57dGhyb3cgbmV3IEVycm9yKCJUaW1lb3V0IHJlYWNoZWQiKX0pXSk7cy5jYW5jZWwoKSxhLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUobil9Y2F0Y2gobil7dGhyb3cgcy5jYW5jZWwoKSxufX1lbHNle2xldCBzPWF3YWl0IGEuZnVuY1RvRXhlY3V0ZSgpO2EuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShzKX19Y2F0Y2gocyl7YS5leGVjdXRpb25EZWZlcnJlZC5yZWplY3Qocyl9ZmluYWxseXt0aGlzLnJlbGVhc2VOb25FeGNsdXNpdmVTbG90KCl9fSk7YXdhaXQgUHJvbWlzZS5hbGwocil9d2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ8dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT8odGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQrKyxQcm9taXNlLnJlc29sdmUoKSk6bmV3IFByb21pc2UoZT0+e3RoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnB1c2goKCk9Pnt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrLGUoKX0pfSl9cmVsZWFzZU5vbkV4Y2x1c2l2ZVNsb3QoKXt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudC0tO2xldCBlPXRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnNoaWZ0KCk7ZSYmZSgpfX19KTt2YXIgdWdlLFBfdD11KCgpPT57X2woKTt1Z2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQmFja3ByZXNzdXJlZEFycmF5Iil9ZGF0YTtoaWdoV2F0ZXJNYXJrO2hhc1NwYWNlPW5ldyBvYS5yeGpzLlN1YmplY3Q7aXRlbXNBdmFpbGFibGU9bmV3IG9hLnJ4anMuU3ViamVjdDtpc0Rlc3Ryb3llZD0hMTtjb25zdHJ1Y3RvcihlPTE2KXt0aGlzLmRhdGE9W10sdGhpcy5oaWdoV2F0ZXJNYXJrPWV9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RofXB1c2goZSl7dGhpcy5kYXRhLnB1c2goZSksdGhpcy5pdGVtc0F2YWlsYWJsZS5uZXh0KCJpdGVtc0F2YWlsYWJsZSIpO2xldCByPXRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpO3JldHVybiByJiZ0aGlzLmhhc1NwYWNlLm5leHQoImhhc1NwYWNlIikscn1wdXNoTWFueShlKXtmb3IobGV0IHIgb2YgZSl0aGlzLnB1c2gocik7cmV0dXJuIHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfXNoaWZ0KCl7bGV0IGU9dGhpcy5kYXRhLnNoaWZ0KCk7cmV0dXJuIHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpJiZ0aGlzLmhhc1NwYWNlLm5leHQoImhhc1NwYWNlIiksZX1wZWVrKCl7cmV0dXJuIHRoaXMuZGF0YVswXX1jaGVja1NwYWNlQXZhaWxhYmxlKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg8dGhpcy5oaWdoV2F0ZXJNYXJrfWNoZWNrSGFzSXRlbXMoKXtyZXR1cm4gdGhpcy5kYXRhLmxlbmd0aD4wfXdhaXRGb3JTcGFjZSgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57aWYodGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCl8fHRoaXMuaXNEZXN0cm95ZWQpZSgpO2Vsc2V7bGV0IHI9dGhpcy5oYXNTcGFjZS5zdWJzY3JpYmUoe25leHQ6aSgoKT0+e3IudW5zdWJzY3JpYmUoKSxlKCl9LCJuZXh0IiksY29tcGxldGU6aSgoKT0+e2UoKX0sImNvbXBsZXRlIil9KX19KX13YWl0Rm9ySXRlbXMoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2lmKHRoaXMuZGF0YS5sZW5ndGg+MHx8dGhpcy5pc0Rlc3Ryb3llZCllKCk7ZWxzZXtsZXQgcj10aGlzLml0ZW1zQXZhaWxhYmxlLnN1YnNjcmliZSh7bmV4dDppKCgpPT57ci51bnN1YnNjcmliZSgpLGUoKX0sIm5leHQiKSxjb21wbGV0ZTppKCgpPT57ZSgpfSwiY29tcGxldGUiKX0pfX0pfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuZGF0YVtTeW1ib2wuaXRlcmF0b3JdKCl9ZGVzdHJveSgpe3RoaXMuaXNEZXN0cm95ZWQ9ITAsdGhpcy5oYXNTcGFjZS5jb21wbGV0ZSgpLHRoaXMuaXRlbXNBdmFpbGFibGUuY29tcGxldGUoKX19fSk7dmFyIHJoLE5uZT11KCgpPT57X2woKTtyaD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkZhc3RNYXAiKX1tYXBPYmplY3Q9bmV3IE1hcDtpc1VuaXF1ZUtleShlKXtyZXR1cm4hdGhpcy5tYXBPYmplY3QuaGFzKGUpfWhhcyhlKXtyZXR1cm4gdGhpcy5tYXBPYmplY3QuaGFzKGUpfWdldCBzaXplKCl7cmV0dXJuIHRoaXMubWFwT2JqZWN0LnNpemV9YWRkVG9NYXAoZSxyLGEpe3JldHVybiB0aGlzLmlzVW5pcXVlS2V5KGUpfHxhJiZhLmZvcmNlPyh0aGlzLm1hcE9iamVjdC5zZXQoZSxyKSwhMCk6ITF9Z2V0QnlLZXkoZSl7cmV0dXJuIHRoaXMubWFwT2JqZWN0LmdldChlKX1yZW1vdmVGcm9tTWFwKGUpe2xldCByPXRoaXMubWFwT2JqZWN0LmdldChlKTtyZXR1cm4gdGhpcy5tYXBPYmplY3QuZGVsZXRlKGUpLHJ9Z2V0S2V5cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMubWFwT2JqZWN0LmtleXMoKSl9dmFsdWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5tYXBPYmplY3QudmFsdWVzKCkpfWVudHJpZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLm1hcE9iamVjdC5lbnRyaWVzKCkpfWNsZWFuKCl7dGhpcy5tYXBPYmplY3QuY2xlYXIoKX1jb25jYXQoZSl7bGV0IHI9bmV3IHQ7Zm9yKGxldCBhIG9mIHRoaXMuZ2V0S2V5cygpKXIuYWRkVG9NYXAoYSx0aGlzLmdldEJ5S2V5KGEpKTtmb3IobGV0IGEgb2YgZS5nZXRLZXlzKCkpci5hZGRUb01hcChhLGUuZ2V0QnlLZXkoYSkse2ZvcmNlOiEwfSk7cmV0dXJuIHJ9YWRkQWxsRnJvbU90aGVyKGUpe2ZvcihsZXQgciBvZiBlLmdldEtleXMoKSl0aGlzLmFkZFRvTWFwKHIsZS5nZXRCeUtleShyKSx7Zm9yY2U6ITB9KX1hc3luYyBmaW5kKGUpe2ZvcihsZXQgciBvZiB0aGlzLmdldEtleXMoKSl7bGV0IGE9dGhpcy5nZXRCeUtleShyKTtpZihhd2FpdCBlKGEpKXJldHVybiBhfX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLm1hcE9iamVjdC5lbnRyaWVzKCl9fX0pO3ZhciBOX3QsVmQsY1M9dSgoKT0+e19sKCk7Tm5lKCk7Tl90PWkoKHQ9InVuaSIpPT5gJHt0fXh4eHh4eHh4eHh4YC5yZXBsYWNlKC9beHldL2csZT0+e2xldCByPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4oZT09PSJ4Ij9yOnImM3w4KS50b1N0cmluZygxNil9KSwidW5pIiksVmQ9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJPYmplY3RNYXAiKX1mYXN0TWFwPW5ldyByaDtyZXZlcnNlTWFwPW5ldyBNYXA7ZXZlbnRTdWJqZWN0PW5ldyBvYS5yeGpzLlN1YmplY3Q7Y29uc3RydWN0b3IoKXt9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmZhc3RNYXAuc2l6ZX1hZGRNYXBwZWRVbmlxdWUoZSxyKXt0aGlzLmZhc3RNYXAuYWRkVG9NYXAoZSxyKSx0aGlzLnJldmVyc2VNYXAuc2V0KHIsZSl9Z2V0TWFwcGVkVW5pcXVlKGUpe3JldHVybiB0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoZSl9cmVtb3ZlTWFwcGVkVW5pcXVlKGUpe2xldCByPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKGUpO3JldHVybiByIT09dm9pZCAwJiYodGhpcy5yZXZlcnNlTWFwLmRlbGV0ZShyKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDpyfSkpLHJ9YWRkKGUpe2xldCByPXRoaXMucmV2ZXJzZU1hcC5nZXQoZSk7aWYociE9PXZvaWQgMClyZXR1cm4gcjtsZXQgYT1OX3QoImtleSIpO3JldHVybiB0aGlzLmFkZE1hcHBlZFVuaXF1ZShhLGUpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoiYWRkIixwYXlsb2FkOmV9KSxhfWFkZEFycmF5KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMuYWRkKHIpfWNoZWNrRm9yT2JqZWN0KGUpe3JldHVybiB0aGlzLnJldmVyc2VNYXAuaGFzKGUpfWdldEtleUZvck9iamVjdChlKXtyZXR1cm4gdGhpcy5yZXZlcnNlTWFwLmdldChlKT8/bnVsbH1hc3luYyBmaW5kKGUpe3JldHVybiB0aGlzLmZhc3RNYXAuZmluZChlKX1maW5kU3luYyhlKXtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZihlKHRoaXMuZmFzdE1hcC5nZXRCeUtleShyKSkpcmV0dXJuIHRoaXMuZ2V0TWFwcGVkVW5pcXVlKHIpfWFzeW5jIGZpbmRPbmVBbmRSZW1vdmUoZSl7bGV0IHI9YXdhaXQgdGhpcy5maW5kKGUpO3JldHVybiByJiZ0aGlzLnJlbW92ZShyKSxyfWZpbmRPbmVBbmRSZW1vdmVTeW5jKGUpe2xldCByPXRoaXMuZmluZFN5bmMoZSk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9YXN5bmMgZm9yRWFjaChlKXtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlhd2FpdCBlKHRoaXMuZmFzdE1hcC5nZXRCeUtleShyKSl9Z2V0T25lQW5kUmVtb3ZlKCl7bGV0IGU9dGhpcy5mYXN0TWFwLmdldEtleXMoKTtpZihlLmxlbmd0aD09PTApcmV0dXJuIG51bGw7e2xldCByPWVbMF0sYT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTtyZXR1cm4gdGhpcy5yZXZlcnNlTWFwLmRlbGV0ZShhKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDphfSksYX19Z2V0QXJyYXkoKXtyZXR1cm4gdGhpcy5mYXN0TWFwLnZhbHVlcygpfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5mYXN0TWFwLnNpemU9PT0wfXJlbW92ZShlKXtsZXQgcj10aGlzLnJldmVyc2VNYXAuZ2V0KGUpO2lmKHIhPT12b2lkIDApe2xldCBhPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3JldHVybiB0aGlzLnJldmVyc2VNYXAuZGVsZXRlKGEpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOmF9KSxhfXJldHVybiBudWxsfXdpcGUoKXtsZXQgZT10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2ZvcihsZXQgciBvZiBlKXtsZXQgYT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTt0aGlzLnJldmVyc2VNYXAuZGVsZXRlKGEpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOmF9KX19Y29uY2F0KGUpe2xldCByPW5ldyB0O3IuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodGhpcy5mYXN0TWFwKSxyLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKGUuZmFzdE1hcCk7Zm9yKGxldCBhIG9mIHIuZmFzdE1hcC5nZXRLZXlzKCkpci5yZXZlcnNlTWFwLnNldChyLmZhc3RNYXAuZ2V0QnlLZXkoYSksYSk7cmV0dXJuIHJ9YWRkQWxsRnJvbU90aGVyKGUpe3RoaXMuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIoZS5mYXN0TWFwKTtmb3IobGV0IHIgb2YgZS5mYXN0TWFwLmdldEtleXMoKSl0aGlzLnJldmVyc2VNYXAuc2V0KGUuZmFzdE1hcC5nZXRCeUtleShyKSxyKX1tYXAoZSl7cmV0dXJuIHRoaXMuZ2V0QXJyYXkoKS5tYXAoZSl9ZmlsdGVyKGUpe3JldHVybiB0aGlzLmdldEFycmF5KCkuZmlsdGVyKGUpfXJlZHVjZShlLHIpe3JldHVybiB0aGlzLmdldEFycmF5KCkucmVkdWNlKGUscil9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5nZXRBcnJheSgpW1N5bWJvbC5pdGVyYXRvcl0oKX1kZXN0cm95KCl7dGhpcy53aXBlKCksdGhpcy5yZXZlcnNlTWFwLmNsZWFyKCksdGhpcy5ldmVudFN1YmplY3QuY29tcGxldGUoKX19fSk7dmFyIGRTLHBnZT11KCgpPT57X2woKTtmZ2UoKTtkUz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJbnRlcmVzdCIpfW9wdGlvbnM7aW50ZXJlc3RNYXBSZWY7b3JpZ2luYWxJbnRlcmVzdDtjb21wYXJpc29uRnVuYztkZXN0cnVjdGlvblRpbWVyPW5ldyB0aC5UaW1lcigxZTQpO2lzRnVsbGZpbGxlZD0hMTtpc0Rlc3Ryb3llZD0hMTtmdWxsZmlsbG1lbnRTdG9yZT1bXTttYXJrTG9zdFRpbWVvdXQ9bnVsbDtnZXQgY29tcGFyaXNvblN0cmluZygpe3JldHVybiB0aGlzLmNvbXBhcmlzb25GdW5jKHRoaXMub3JpZ2luYWxJbnRlcmVzdCl9aW50ZXJlc3REZWZlcnJlZD1uZXcgeHQuRGVmZXJyZWQ7aW50ZXJlc3RGdWxsZmlsbGVkPXRoaXMuaW50ZXJlc3REZWZlcnJlZC5wcm9taXNlO2Z1bGxmaWxsSW50ZXJlc3QoZSl7dGhpcy5pc0Z1bGxmaWxsZWQ9ITAsdGhpcy5mdWxsZmlsbG1lbnRTdG9yZT1bXSx0aGlzLmludGVyZXN0RGVmZXJyZWQucmVzb2x2ZShlKSx0aGlzLmRlc3Ryb3koKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXt0aGlzLmludGVyZXN0TWFwUmVmPWUsdGhpcy5vcmlnaW5hbEludGVyZXN0PXIsdGhpcy5jb21wYXJpc29uRnVuYz1hLHRoaXMub3B0aW9ucz1zLHRoaXMuZGVzdHJ1Y3Rpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e3RoaXMuaXNEZXN0cm95ZWR8fHRoaXMuZGVzdHJveSgpfSksdGhpcy5vcHRpb25zPy5tYXJrTG9zdEFmdGVyRGVmYXVsdCYmKHRoaXMubWFya0xvc3RUaW1lb3V0PW5ldyBLdC5UaW1lb3V0KHRoaXMub3B0aW9ucy5tYXJrTG9zdEFmdGVyRGVmYXVsdCksdGhpcy5tYXJrTG9zdFRpbWVvdXQucHJvbWlzZS50aGVuKCgpPT57dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5tYXJrTG9zdCgpfSkpfWRlc3Ryb3koKXt0aGlzLmlzRGVzdHJveWVkfHwodGhpcy5pc0Rlc3Ryb3llZD0hMCx0aGlzLmRlc3RydWN0aW9uVGltZXIucmVzZXQoKSx0aGlzLm1hcmtMb3N0VGltZW91dCYmKHRoaXMubWFya0xvc3RUaW1lb3V0LmNhbmNlbCgpLHRoaXMubWFya0xvc3RUaW1lb3V0PW51bGwpLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdE1hcFJlZi5yZW1vdmVJbnRlcmVzdCh0aGlzKSwhdGhpcy5pc0Z1bGxmaWxsZWQmJnRoaXMub3B0aW9ucz8uZGVmYXVsdEZ1bGxmaWxsbWVudCYmKHRoaXMuaXNGdWxsZmlsbGVkPSEwLHRoaXMuaW50ZXJlc3REZWZlcnJlZC5yZXNvbHZlKHRoaXMub3B0aW9ucy5kZWZhdWx0RnVsbGZpbGxtZW50KSkpfW1hcmtMb3N0KCl7dGhpcy5kZXN0cnVjdGlvblRpbWVyLnN0YXJ0KCl9cmVuZXcoKXt0aGlzLmRlc3RydWN0aW9uVGltZXIucmVzZXQoKX19fSk7dmFyIGhnZSxmZ2U9dSgoKT0+e19sKCk7Y1MoKTtwZ2UoKTtoZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiSW50ZXJlc3RNYXAiKX1vcHRpb25zO2ludGVyZXN0T2JqZWN0TWFwPW5ldyBWZDtpbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmc9bmV3IE1hcDtjb21wYXJpc29uRnVuYztjb25zdHJ1Y3RvcihlLHI9e30pe3RoaXMuY29tcGFyaXNvbkZ1bmM9ZSx0aGlzLm9wdGlvbnM9cn1hc3luYyBhZGRJbnRlcmVzdChlLHIpe2xldCBhPXRoaXMuY29tcGFyaXNvbkZ1bmMoZSkscyxuPXRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmdldChhKTtyZXR1cm4gbj8ocz1uLHMucmVuZXcoKSk6KHM9bmV3IGRTKHRoaXMsZSx0aGlzLmNvbXBhcmlzb25GdW5jLHttYXJrTG9zdEFmdGVyRGVmYXVsdDp0aGlzLm9wdGlvbnMubWFya0xvc3RBZnRlckRlZmF1bHQsZGVmYXVsdEZ1bGxmaWxsbWVudDpyfSksdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5hZGQocyksdGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuc2V0KGEscykpLHRoaXMuaW50ZXJlc3RPYnNlcnZhYmxlLnB1c2gocyksc31pbnRlcmVzdE9ic2VydmFibGU9bmV3IG9hLk9ic2VydmFibGVJbnRha2U7cmVtb3ZlSW50ZXJlc3QoZSl7dGhpcy5pbnRlcmVzdE9iamVjdE1hcC5maW5kT25lQW5kUmVtb3ZlU3luYyhyPT5lLmNvbXBhcmlzb25TdHJpbmc9PT1yLmNvbXBhcmlzb25TdHJpbmcpLHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmRlbGV0ZShlLmNvbXBhcmlzb25TdHJpbmcpfWNoZWNrSW50ZXJlc3QoZSl7bGV0IHI9dGhpcy5jb21wYXJpc29uRnVuYyhlKTtyZXR1cm4gdGhpcy5jaGVja0ludGVyZXN0QnlTdHJpbmcocil9Y2hlY2tJbnRlcmVzdEJ5U3RyaW5nKGUpe3JldHVybiB0aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5oYXMoZSl9aW5mb3JtTG9zdEludGVyZXN0KGUpe2xldCByPXRoaXMuZmluZEludGVyZXN0KGUpO3ImJnIubWFya0xvc3QoKX1maW5kSW50ZXJlc3QoZSl7bGV0IHI9dGhpcy5jb21wYXJpc29uRnVuYyhlKTtyZXR1cm4gdGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuZ2V0KHIpPz9udWxsfWRlc3Ryb3koKXtsZXQgZT10aGlzLmludGVyZXN0T2JqZWN0TWFwLmdldEFycmF5KCk7Zm9yKGxldCByIG9mIGUpci5kZXN0cm95KCk7dGhpcy5pbnRlcmVzdE9iamVjdE1hcC53aXBlKCksdGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuY2xlYXIoKSx0aGlzLmludGVyZXN0T2JzZXJ2YWJsZS5zaWduYWxDb21wbGV0ZSgpfX19KTt2YXIgbWdlLE9fdD11KCgpPT57X2woKTttZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiTGltaXRlZEFycmF5Iil9YXJyYXk9W107YXJyYXlMaW1pdDtjb25zdHJ1Y3RvcihlKXt0aGlzLmFycmF5TGltaXQ9ZX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuYXJyYXkubGVuZ3RofWFkZE9uZShlKXt0aGlzLmFycmF5LnVuc2hpZnQoZSksdGhpcy5hcnJheS5sZW5ndGg+dGhpcy5hcnJheUxpbWl0JiYodGhpcy5hcnJheS5sZW5ndGg9dGhpcy5hcnJheUxpbWl0KX1hZGRNYW55KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMuYWRkT25lKHIpfXNldExpbWl0KGUpe3RoaXMuYXJyYXlMaW1pdD1lLHRoaXMuYXJyYXkubGVuZ3RoPnRoaXMuYXJyYXlMaW1pdCYmKHRoaXMuYXJyYXkubGVuZ3RoPXRoaXMuYXJyYXlMaW1pdCl9Z2V0QXZlcmFnZSgpe2lmKHRoaXMuYXJyYXkubGVuZ3RoPT09MClyZXR1cm4gMDtpZih0eXBlb2YgdGhpcy5hcnJheVswXT09Im51bWJlciIpe2xldCBlPTA7Zm9yKGxldCByIG9mIHRoaXMuYXJyYXkpZT1lK3I7cmV0dXJuIGUvdGhpcy5hcnJheS5sZW5ndGh9ZWxzZSByZXR1cm4gbnVsbH1yZW1vdmUoZSl7bGV0IHI9dGhpcy5hcnJheS5pbmRleE9mKGUpO3JldHVybiByIT09LTE/KHRoaXMuYXJyYXkuc3BsaWNlKHIsMSksITApOiExfWNsZWFyKCl7dGhpcy5hcnJheS5sZW5ndGg9MH1nZXRBcnJheSgpe3JldHVyblsuLi50aGlzLmFycmF5XX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLmFycmF5W1N5bWJvbC5pdGVyYXRvcl0oKX19fSk7dmFyIGdnZSxSX3Q9dSgoKT0+e19sKCk7Y1MoKTtnZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiTG9vcFRyYWNrZXIiKX1yZWZlcmVuY2VPYmplY3RNYXA9bmV3IFZkO2NvbnN0cnVjdG9yKCl7fWNoZWNrQW5kVHJhY2soZSl7cmV0dXJuIHRoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmNoZWNrRm9yT2JqZWN0KGUpPyExOih0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5hZGQoZSksITApfXJlc2V0KCl7dGhpcy5yZWZlcmVuY2VPYmplY3RNYXAud2lwZSgpfWRlc3Ryb3koKXt0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5kZXN0cm95KCl9fX0pO3ZhciB1UyxiZ2U9dSgoKT0+e19sKCk7dVM9Y2xhc3N7c3RhdGlje2kodGhpcywiU3RyaW5nbWFwIil9X3N0cmluZ0FycmF5PVtdO190cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1bXTtjb25zdHJ1Y3Rvcigpe31hZGRTdHJpbmcoZSl7dGhpcy5fc3RyaW5nQXJyYXkucHVzaChlKSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1hZGRTdHJpbmdBcnJheShlKXtmb3IobGV0IHIgb2YgZSl0aGlzLmFkZFN0cmluZyhyKX1yZW1vdmVTdHJpbmcoZSl7dGhpcy5fc3RyaW5nQXJyYXk9dGhpcy5fc3RyaW5nQXJyYXkuZmlsdGVyKHI9PnIhPT1lKSx0aGlzLm5vdGlmeVRyaWdnZXIoKX13aXBlKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5ub3RpZnlUcmlnZ2VyKCl9Y2hlY2tTdHJpbmcoZSl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5LmluZGV4T2YoZSkhPT0tMX1jaGVja01pbmltYXRjaChlKXtsZXQgcj1uZXcgUGsuU21hcnRNYXRjaChlKSxhPSExO2ZvcihsZXQgcyBvZiB0aGlzLl9zdHJpbmdBcnJheSlyLm1hdGNoKHMpJiYoYT0hMCk7cmV0dXJuIGF9Y2hlY2tJc0VtcHR5KCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5Lmxlbmd0aD09PTB9Z2V0U3RyaW5nQXJyYXkoKXtsZXQgZT1bXTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpZS5wdXNoKHIpO3JldHVybiBlfXJlZ2lzdGVyVW50aWxUcnVlKGUscil7bGV0IGE9eHQuZGVmZXIoKTtyZXR1cm4gdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkucHVzaCgoKT0+e2xldCBzPWUodGhpcy5nZXRTdHJpbmdBcnJheSgpKTtyZXR1cm4gcz09PSEwJiYociYmcigpLGEucmVzb2x2ZSgpKSxzfSksdGhpcy5ub3RpZnlUcmlnZ2VyKCksYS5wcm9taXNlfW5vdGlmeVRyaWdnZXIoKXtsZXQgZT10aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5maWx0ZXIocj0+IXIoKSk7dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9ZX1kZXN0cm95KCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9W119fX0pO3ZhciBwUyx4Z2U9dSgoKT0+e19sKCk7cFM9Y2xhc3N7c3RhdGlje2kodGhpcywiVGltZWRBZ2dyZWd0b3IiKX1vcHRpb25zO3N0b3JhZ2VBcnJheT1bXTtpc1N0b3BwZWQ9ITE7Y29uc3RydWN0b3IoZSl7dGhpcy5vcHRpb25zPWV9YWdncmVnYXRpb25UaW1lcjtjaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCl7aWYodGhpcy5pc1N0b3BwZWQpcmV0dXJuO2xldCBlPWkoKCk9Pnt0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bmV3IHRoLlRpbWVyKHRoaXMub3B0aW9ucy5hZ2dyZWdhdGlvbkludGVydmFsSW5NaWxsaXMpLHRoaXMuYWdncmVnYXRpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e2lmKHRoaXMuaXNTdG9wcGVkKXt0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bnVsbDtyZXR1cm59bGV0IHI9dGhpcy5zdG9yYWdlQXJyYXk7aWYoci5sZW5ndGg9PT0wKXt0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bnVsbDtyZXR1cm59dGhpcy5zdG9yYWdlQXJyYXk9W10sZSgpLHRoaXMub3B0aW9ucy5mdW5jdGlvbkZvckFnZ3JlZ2F0aW9uKHIpfSksdGhpcy5hZ2dyZWdhdGlvblRpbWVyLnN0YXJ0KCl9LCJhZGRBZ2dyZWdhdGlvblRpbWVyIik7dGhpcy5hZ2dyZWdhdGlvblRpbWVyfHxlKCl9YWRkKGUpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5zdG9yYWdlQXJyYXkucHVzaChlKSx0aGlzLmNoZWNrQWdncmVnYXRpb25TdGF0dXMoKSl9c3RvcChlPSExKXtpZih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLmFnZ3JlZ2F0aW9uVGltZXImJih0aGlzLmFnZ3JlZ2F0aW9uVGltZXIucmVzZXQoKSx0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bnVsbCksZSYmdGhpcy5zdG9yYWdlQXJyYXkubGVuZ3RoPjApe2xldCByPXRoaXMuc3RvcmFnZUFycmF5O3RoaXMuc3RvcmFnZUFycmF5PVtdLHRoaXMub3B0aW9ucy5mdW5jdGlvbkZvckFnZ3JlZ2F0aW9uKHIpfWVsc2UgdGhpcy5zdG9yYWdlQXJyYXk9W119cmVzdGFydCgpe3RoaXMuaXNTdG9wcGVkPSExfX19KTt2YXIgdmdlLEZfdD11KCgpPT57X2woKTt2Z2U9Y2xhc3N7c3RhdGlje2kodGhpcywiVHJlZSIpfXN5bWJvbFRyZWU7Y29uc3RydWN0b3IoKXt0aGlzLnN5bWJvbFRyZWU9bmV3IFBuZS5kZWZhdWx0fWluaXRpYWxpemUoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbml0aWFsaXplKGUpfWhhc0NoaWxkcmVuKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaGFzQ2hpbGRyZW4oZSl9Zmlyc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmZpcnN0Q2hpbGQoZSl9bGFzdENoaWxkKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubGFzdENoaWxkKGUpfXByZXZpb3VzU2libGluZyhlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXZpb3VzU2libGluZyhlKX1uZXh0U2libGluZyhlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLm5leHRTaWJsaW5nKGUpfXBhcmVudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnBhcmVudChlKX1sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpfXByZWNlZGluZyhlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlY2VkaW5nKGUscil9Zm9sbG93aW5nKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5mb2xsb3dpbmcoZSxyKX1jaGlsZHJlblRvQXJyYXkoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuVG9BcnJheShlLHIpfWFuY2VzdG9yc1RvQXJyYXkoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFuY2VzdG9yc1RvQXJyYXkoZSxyKX10cmVlVG9BcnJheShlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUudHJlZVRvQXJyYXkoZSxyKX1jaGlsZHJlbkl0ZXJhdG9yKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlbkl0ZXJhdG9yKGUscil9cHJldmlvdXNTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJldmlvdXNTaWJsaW5nc0l0ZXJhdG9yKGUpfW5leHRTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubmV4dFNpYmxpbmdzSXRlcmF0b3IoZSl9YW5jZXN0b3JzSXRlcmF0b3IoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNJdGVyYXRvcihlKX10cmVlSXRlcmF0b3IoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnRyZWVJdGVyYXRvcihlLHIpfWluZGV4KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5kZXgoZSl9Y2hpbGRyZW5Db3VudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuQ291bnQoZSl9Y29tcGFyZVRyZWVQb3NpdGlvbihlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY29tcGFyZVRyZWVQb3NpdGlvbihlLHIpfXJlbW92ZShlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnJlbW92ZShlKX1pbnNlcnRCZWZvcmUoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluc2VydEJlZm9yZShlLHIpfWluc2VydEFmdGVyKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbnNlcnRBZnRlcihlLHIpfXByZXBlbmRDaGlsZChlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlcGVuZENoaWxkKGUscil9YXBwZW5kQ2hpbGQoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFwcGVuZENoaWxkKGUscil9dG9Kc29uV2l0aEhpZXJhY2h5KGUpe2xldCByPWkoYT0+e2xldCBzPVtdO2lmKHRoaXMuaGFzQ2hpbGRyZW4oYSkpe2xldCBuPXRoaXMuY2hpbGRyZW5Ub0FycmF5KGEse30pO2ZvcihsZXQgbyBvZiBuKXMucHVzaChyKG8pKX1yZXR1cm57ZGF0YTphLGNoaWxkcmVuOnN9fSwiYnVpbGROb2RlIik7cmV0dXJuIHIoZSl9ZnJvbUpzb25XaXRoSGllcmFjaHkoZSxyKXtsZXQgYT1pKChzLG4pPT57bGV0IG89cj9yKHMuZGF0YSk6cy5kYXRhO3RoaXMuaW5pdGlhbGl6ZShvKSxuJiZ0aGlzLmFwcGVuZENoaWxkKG4sbyk7Zm9yKGxldCBsIG9mIHMuY2hpbGRyZW4pYShsLG8pO3JldHVybiBvfSwiYnVpbGRUcmVlIik7cmV0dXJuIGEoZSl9fX0pO3ZhciBGYT17fTtWZShGYSx7QXN5bmNFeGVjdXRpb25TdGFjazooKT0+ZGdlLEJhY2twcmVzc3VyZWRBcnJheTooKT0+dWdlLEZhc3RNYXA6KCk9PnJoLEludGVyZXN0OigpPT5kUyxJbnRlcmVzdE1hcDooKT0+aGdlLExpbWl0ZWRBcnJheTooKT0+bWdlLExvb3BUcmFja2VyOigpPT5nZ2UsT2JqZWN0TWFwOigpPT5WZCxTdHJpbmdtYXA6KCk9PnVTLFRpbWVkQWdncmVnYXRvcjooKT0+cFMsVGltZWRBZ2dyZWd0b3I6KCk9PnBTLFRyZWU6KCk9PnZnZSx1bmk6KCk9Pk5fdH0pO3ZhciBNYj11KCgpPT57SV90KCk7UF90KCk7Tm5lKCk7ZmdlKCk7cGdlKCk7T190KCk7Ul90KCk7Y1MoKTtiZ2UoKTt4Z2UoKTt4Z2UoKTtGX3QoKX0pO3ZhciBvdT17fTtWZShvdSx7YXJlVWludDhBcnJheXNFcXVhbDooKT0+JGRhLGFzc2VydFVpbnQ4QXJyYXk6KCk9Pm51LGFzc2VydFVpbnQ4QXJyYXlPckFycmF5QnVmZmVyOigpPT5qX3QsYmFzZTY0VG9TdHJpbmc6KCk9Pk9kYSxiYXNlNjRUb1VpbnQ4QXJyYXk6KCk9PllfdCxjb21wYXJlVWludDhBcnJheXM6KCk9PkFkYSxjb25jYXRVaW50OEFycmF5czooKT0+RGRhLGdldFVpbnRCRTooKT0+SGRhLGhleFRvVWludDhBcnJheTooKT0+QmRhLGluY2x1ZGVzOigpPT5xZGEsaW5kZXhPZjooKT0+S190LGlzVWludDhBcnJheTooKT0+eWdlLHN0cmluZ1RvQmFzZTY0OigpPT5OZGEsc3RyaW5nVG9VaW50OEFycmF5OigpPT5XX3QsdG9VaW50OEFycmF5OigpPT5MZGEsdWludDhBcnJheVRvQmFzZTY0OigpPT5HX3QsdWludDhBcnJheVRvSGV4OigpPT5GZGEsdWludDhBcnJheVRvU3RyaW5nOigpPT5VX3R9KTtmdW5jdGlvbiBCX3QodCxlLHIpe3JldHVybiB0P3QuY29uc3RydWN0b3I9PT1lPyEwOk1kYS5jYWxsKHQpPT09cjohMX1mdW5jdGlvbiB5Z2UodCl7cmV0dXJuIEJfdCh0LFVpbnQ4QXJyYXksQ2RhKX1mdW5jdGlvbiBfZGEodCl7cmV0dXJuIEJfdCh0LEFycmF5QnVmZmVyLHpkYSl9ZnVuY3Rpb24gVGRhKHQpe3JldHVybiB5Z2UodCl8fF9kYSh0KX1mdW5jdGlvbiBudSh0KXtpZigheWdlKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgVWludDhBcnJheVxgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24gal90KHQpe2lmKCFUZGEodCkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBVaW50OEFycmF5XGAgb3IgXGBBcnJheUJ1ZmZlclxgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24gTGRhKHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodCk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpKXJldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSwgZ290IFxgJHt0eXBlb2YgdH1cYC5gKX1mdW5jdGlvbiBEZGEodCxlKXtpZih0Lmxlbmd0aD09PTApcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2U/Pz10LnJlZHVjZSgocyxuKT0+cytuLmxlbmd0aCwwKTtsZXQgcj1uZXcgVWludDhBcnJheShlKSxhPTA7Zm9yKGxldCBzIG9mIHQpbnUocyksci5zZXQocyxhKSxhKz1zLmxlbmd0aDtyZXR1cm4gcn1mdW5jdGlvbiAkZGEodCxlKXtpZihudSh0KSxudShlKSx0PT09ZSlyZXR1cm4hMDtpZih0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKWlmKHRbcl0hPT1lW3JdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEFkYSh0LGUpe251KHQpLG51KGUpO2xldCByPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKTtmb3IobGV0IGE9MDthPHI7YSsrKXtsZXQgcz10W2FdLWVbYV07aWYocyE9PTApcmV0dXJuIE1hdGguc2lnbihzKX1yZXR1cm4gTWF0aC5zaWduKHQubGVuZ3RoLWUubGVuZ3RoKX1mdW5jdGlvbiBVX3QodCxlPSJ1dGY4Iil7cmV0dXJuIGpfdCh0KSxIX3RbZV0/Pz1uZXcgZ2xvYmFsVGhpcy5UZXh0RGVjb2RlcihlKSxIX3RbZV0uZGVjb2RlKHQpfWZ1bmN0aW9uIGZTKHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYHN0cmluZ1xgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24gV190KHQpe3JldHVybiBmUyh0KSxFZGEuZW5jb2RlKHQpfWZ1bmN0aW9uIElkYSh0KXtyZXR1cm4gdC5yZXBsYWNlQWxsKCIrIiwiLSIpLnJlcGxhY2VBbGwoIi8iLCJfIikucmVwbGFjZSgvPSskLywiIil9ZnVuY3Rpb24gUGRhKHQpe2xldCBlPXQucmVwbGFjZUFsbCgiLSIsIisiKS5yZXBsYWNlQWxsKCJfIiwiLyIpLHI9KDQtZS5sZW5ndGglNCklNDtyZXR1cm4gZSsiPSIucmVwZWF0KHIpfWZ1bmN0aW9uIEdfdCh0LHt1cmxTYWZlOmU9ITF9PXt9KXtudSh0KTtsZXQgcj0iIjtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErPXFfdCl7bGV0IHM9dC5zdWJhcnJheShhLGErcV90KTtyKz1nbG9iYWxUaGlzLmJ0b2EoU3RyaW5nLmZyb21Db2RlUG9pbnQuYXBwbHkodm9pZCAwLHMpKX1yZXR1cm4gZT9JZGEocik6cn1mdW5jdGlvbiBZX3QodCl7cmV0dXJuIGZTKHQpLFVpbnQ4QXJyYXkuZnJvbShnbG9iYWxUaGlzLmF0b2IoUGRhKHQpKSxlPT5lLmNvZGVQb2ludEF0KDApKX1mdW5jdGlvbiBOZGEodCx7dXJsU2FmZTplPSExfT17fSl7cmV0dXJuIGZTKHQpLEdfdChXX3QodCkse3VybFNhZmU6ZX0pfWZ1bmN0aW9uIE9kYSh0KXtyZXR1cm4gZlModCksVV90KFlfdCh0KSl9ZnVuY3Rpb24gRmRhKHQpe251KHQpO2xldCBlPSIiO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKWUrPVJkYVt0W3JdXTtyZXR1cm4gZX1mdW5jdGlvbiBCZGEodCl7aWYoZlModCksdC5sZW5ndGglMiE9PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIEhleCBzdHJpbmcgbGVuZ3RoLiIpO2xldCBlPXQubGVuZ3RoLzIscj1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IGE9MDthPGU7YSsrKXtsZXQgcz1WX3RbdFthKjJdXSxuPVZfdFt0W2EqMisxXV07aWYocz09PXZvaWQgMHx8bj09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSGV4IGNoYXJhY3RlciBlbmNvdW50ZXJlZCBhdCBwb3NpdGlvbiAke2EqMn1gKTtyW2FdPXM8PDR8bn1yZXR1cm4gcn1mdW5jdGlvbiBIZGEodCl7bGV0e2J5dGVMZW5ndGg6ZX09dDtpZihlPT09NilyZXR1cm4gdC5nZXRVaW50MTYoMCkqMioqMzIrdC5nZXRVaW50MzIoMik7aWYoZT09PTUpcmV0dXJuIHQuZ2V0VWludDgoMCkqMioqMzIrdC5nZXRVaW50MzIoMSk7aWYoZT09PTQpcmV0dXJuIHQuZ2V0VWludDMyKDApO2lmKGU9PT0zKXJldHVybiB0LmdldFVpbnQ4KDApKjIqKjE2K3QuZ2V0VWludDE2KDEpO2lmKGU9PT0yKXJldHVybiB0LmdldFVpbnQxNigwKTtpZihlPT09MSlyZXR1cm4gdC5nZXRVaW50OCgwKX1mdW5jdGlvbiBLX3QodCxlKXtsZXQgcj10Lmxlbmd0aCxhPWUubGVuZ3RoO2lmKGE9PT0wfHxhPnIpcmV0dXJuLTE7bGV0IHM9ci1hO2ZvcihsZXQgbj0wO248PXM7bisrKXtsZXQgbz0hMDtmb3IobGV0IGw9MDtsPGE7bCsrKWlmKHRbbitsXSE9PWVbbF0pe289ITE7YnJlYWt9aWYobylyZXR1cm4gbn1yZXR1cm4tMX1mdW5jdGlvbiBxZGEodCxlKXtyZXR1cm4gS190KHQsZSkhPT0tMX12YXIgTWRhLENkYSx6ZGEsSF90LEVkYSxxX3QsUmRhLFZfdCxaX3Q9dSgoKT0+e01kYT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLENkYT0iW29iamVjdCBVaW50OEFycmF5XSIsemRhPSJbb2JqZWN0IEFycmF5QnVmZmVyXSI7aShCX3QsImlzVHlwZSIpO2koeWdlLCJpc1VpbnQ4QXJyYXkiKTtpKF9kYSwiaXNBcnJheUJ1ZmZlciIpO2koVGRhLCJpc1VpbnQ4QXJyYXlPckFycmF5QnVmZmVyIik7aShudSwiYXNzZXJ0VWludDhBcnJheSIpO2koal90LCJhc3NlcnRVaW50OEFycmF5T3JBcnJheUJ1ZmZlciIpO2koTGRhLCJ0b1VpbnQ4QXJyYXkiKTtpKERkYSwiY29uY2F0VWludDhBcnJheXMiKTtpKCRkYSwiYXJlVWludDhBcnJheXNFcXVhbCIpO2koQWRhLCJjb21wYXJlVWludDhBcnJheXMiKTtIX3Q9e3V0Zjg6bmV3IGdsb2JhbFRoaXMuVGV4dERlY29kZXIoInV0ZjgiKX07aShVX3QsInVpbnQ4QXJyYXlUb1N0cmluZyIpO2koZlMsImFzc2VydFN0cmluZyIpO0VkYT1uZXcgZ2xvYmFsVGhpcy5UZXh0RW5jb2RlcjtpKFdfdCwic3RyaW5nVG9VaW50OEFycmF5Iik7aShJZGEsImJhc2U2NFRvQmFzZTY0VXJsIik7aShQZGEsImJhc2U2NFVybFRvQmFzZTY0Iik7cV90PTY1NTM1O2koR190LCJ1aW50OEFycmF5VG9CYXNlNjQiKTtpKFlfdCwiYmFzZTY0VG9VaW50OEFycmF5Iik7aShOZGEsInN0cmluZ1RvQmFzZTY0Iik7aShPZGEsImJhc2U2NFRvU3RyaW5nIik7UmRhPUFycmF5LmZyb20oe2xlbmd0aDoyNTZ9LCh0LGUpPT5lLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikpO2koRmRhLCJ1aW50OEFycmF5VG9IZXgiKTtWX3Q9ezA6MCwxOjEsMjoyLDM6Myw0OjQsNTo1LDY6Niw3OjcsODo4LDk6OSxhOjEwLGI6MTEsYzoxMixkOjEzLGU6MTQsZjoxNSxBOjEwLEI6MTEsQzoxMixEOjEzLEU6MTQsRjoxNX07aShCZGEsImhleFRvVWludDhBcnJheSIpO2koSGRhLCJnZXRVaW50QkUiKTtpKEtfdCwiaW5kZXhPZiIpO2kocWRhLCJpbmNsdWRlcyIpfSk7dmFyIFFfdD11KCgpPT57Wl90KCl9KTt2YXIgTTI9e307VmUoTTIse2Jhc2U2NFRvVWludDhBcnJheTooKT0+V2RhLGVuc3VyZVB1cmVVaW50OEFycmF5OigpPT5LZGEsaXNCdWZmZXJMaWtlOigpPT5ZZGEsaXNVaW50OEFycmF5OigpPT5HZGEsdUludDhBcnJheUV4dHJhczooKT0+amRhLHVJbnQ4QXJyYXlUb0Jhc2U2NDooKT0+VWRhfSk7ZnVuY3Rpb24gVWRhKHQpe3JldHVybiBvdS51aW50OEFycmF5VG9CYXNlNjQodCl9ZnVuY3Rpb24gV2RhKHQpe3JldHVybiBvdS5iYXNlNjRUb1VpbnQ4QXJyYXkodCl9ZnVuY3Rpb24gWWRhKHQpe3JldHVybiB0JiZ0eXBlb2YgdC5ieXRlTGVuZ3RoPT0ibnVtYmVyIj8hMDp0eXBlb2YgQnVmZmVyPCJ1IiYmQnVmZmVyLmlzQnVmZmVyP0J1ZmZlci5pc0J1ZmZlcih0KTohMX1mdW5jdGlvbiBLZGEodCl7bGV0IGU9bmV3IFVpbnQ4QXJyYXkodC5sZW5ndGgpO3JldHVybiBlLnNldCh0KSxlfXZhciBqZGEsR2RhLHdnZT11KCgpPT57UV90KCk7amRhPW91O2koVWRhLCJ1SW50OEFycmF5VG9CYXNlNjQiKTtpKFdkYSwiYmFzZTY0VG9VaW50OEFycmF5Iik7R2RhPWkodD0+b3UuaXNVaW50OEFycmF5KHQpLCJpc1VpbnQ4QXJyYXkiKTtpKFlkYSwiaXNCdWZmZXJMaWtlIik7aShLZGEsImVuc3VyZVB1cmVVaW50OEFycmF5Iil9KTt2YXIgaFM9dSgoKT0+e0duKCl9KTt2YXIgbVMsT25lPXUoKCk9PntoUygpO21TPWNsYXNze3N0YXRpY3tpKHRoaXMsIkd1YXJkIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLmd1YXJkRnVuY3Rpb249ZSx0aGlzLm9wdGlvbnM9cn1hc3luYyBleGVjKGUpe3JldHVybiBhd2FpdCB0aGlzLmd1YXJkRnVuY3Rpb24oZSl9YXN5bmMgZ2V0RmFpbGVkSGludChlKXtyZXR1cm4gYXdhaXQgdGhpcy5leGVjKGUpP251bGw6dGhpcy5vcHRpb25zLmZhaWxlZEhpbnR9fX0pO3ZhciBnUyxrZ2U9dSgoKT0+e2hTKCk7Z1M9Y2xhc3MgZXh0ZW5kcyBFcnJvcntzdGF0aWN7aSh0aGlzLCJHdWFyZEVycm9yIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5uYW1lPSJHdWFyZEVycm9yIn19fSk7dmFyIGJTLFNnZT11KCgpPT57aFMoKTtPbmUoKTtiUz1jbGFzcyBleHRlbmRzIG1Te3N0YXRpY3tpKHRoaXMsIkd1YXJkU2V0Iil9Y29uc3RydWN0b3IoZT1bXSl7c3VwZXIoYXN5bmMgcj0+dGhpcy5hbGxHdWFyZHNQYXNzKHIpKSx0aGlzLmd1YXJkcz1lfWFzeW5jIGV4ZWNBbGxXaXRoRGF0YShlLHI9e21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSl7bGV0IGE9W107Zm9yKGxldCBuIG9mIHRoaXMuZ3VhcmRzKXtsZXQgbz1uLmV4ZWMoZSk7aWYoci5tb2RlPT09InNlcmlhbCImJmF3YWl0IG8sYS5wdXNoKG8pLHIuc3RvcE9uRmFpbCYmIWF3YWl0IG8pcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGEpfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChhKX1hc3luYyBhbGxHdWFyZHNQYXNzKGUscj17bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEoZSxyKSkuZXZlcnkocz0+cyl9YXN5bmMgYW55R3VhcmRzUGFzcyhlKXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEoZSx7bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KSkuc29tZShhPT5hKX1nZXRGYWlsZWRIaW50KGUpe2ZvcihsZXQgciBvZiB0aGlzLmd1YXJkcyl7bGV0IGE9ci5nZXRGYWlsZWRIaW50KGUpO2lmKGEpcmV0dXJuIGF9fX19KTt2YXIgamQ9e307VmUoamQse0d1YXJkOigpPT5tUyxHdWFyZEVycm9yOigpPT5nUyxHdWFyZFNldDooKT0+YlMscGFzc0d1YXJkc09yUmVqZWN0OigpPT5aZGF9KTt2YXIgWmRhLE1nZT11KCgpPT57aFMoKTtPbmUoKTtrZ2UoKTtPbmUoKTtTZ2UoKTtTZ2UoKTtrZ2UoKTtaZGE9aShhc3luYyh0LGUpPT57bGV0IHI9bmV3IGJTKGUpO2lmKCFhd2FpdCByLmFsbEd1YXJkc1Bhc3ModCkpe2xldCBzPWF3YWl0IHIuZ2V0RmFpbGVkSGludCh0KTt0aHJvdyBuZXcgZ1MoYEd1YXJkcyBmYWlsZWQ6CiR7c30KICAgIGApfX0sInBhc3NHdWFyZHNPclJlamVjdCIpfSk7dmFyIF9iLENnZT11KCgpPT57X2I9Y2xhc3N7c3RhdGlje2kodGhpcywiSW50ZXJjZXB0b3JNYW5hZ2VyIil9Y29uc3RydWN0b3IoKXt0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnM9W10sdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycz1bXSx0aGlzLmVycm9ySW50ZXJjZXB0b3JzPVtdfWFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKXt0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMucHVzaChlKX1hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpe3RoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMucHVzaChlKX1hZGRFcnJvckludGVyY2VwdG9yKGUpe3RoaXMuZXJyb3JJbnRlcmNlcHRvcnMucHVzaChlKX1yZW1vdmVSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7bGV0IHI9dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLmluZGV4T2YoZSk7cj4tMSYmdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLnNwbGljZShyLDEpfXJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7bGV0IHI9dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5pbmRleE9mKGUpO3I+LTEmJnRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMuc3BsaWNlKHIsMSl9cmVtb3ZlRXJyb3JJbnRlcmNlcHRvcihlKXtsZXQgcj10aGlzLmVycm9ySW50ZXJjZXB0b3JzLmluZGV4T2YoZSk7cj4tMSYmdGhpcy5lcnJvckludGVyY2VwdG9ycy5zcGxpY2UociwxKX1jbGVhckFsbCgpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycz1bXSx0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzPVtdLHRoaXMuZXJyb3JJbnRlcmNlcHRvcnM9W119YXN5bmMgcHJvY2Vzc1JlcXVlc3QoZSl7bGV0IHI9ZTtmb3IobGV0IGEgb2YgdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzKXRyeXtyPWF3YWl0IGEocil9Y2F0Y2gocyl7dGhyb3cgYXdhaXQgdGhpcy5wcm9jZXNzRXJyb3IocyBpbnN0YW5jZW9mIEVycm9yP3M6bmV3IEVycm9yKFN0cmluZyhzKSkpfXJldHVybiByfWFzeW5jIHByb2Nlc3NSZXNwb25zZShlKXtsZXQgcj1lO2ZvcihsZXQgYSBvZiB0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzKXRyeXtyPWF3YWl0IGEocil9Y2F0Y2gocyl7dGhyb3cgYXdhaXQgdGhpcy5wcm9jZXNzRXJyb3IocyBpbnN0YW5jZW9mIEVycm9yP3M6bmV3IEVycm9yKFN0cmluZyhzKSkpfXJldHVybiByfWFzeW5jIHByb2Nlc3NFcnJvcihlKXtsZXQgcj1lO2ZvcihsZXQgYSBvZiB0aGlzLmVycm9ySW50ZXJjZXB0b3JzKXRyeXtyPWF3YWl0IGEocil9Y2F0Y2gocyl7cj1zIGluc3RhbmNlb2YgRXJyb3I/czpuZXcgRXJyb3IoU3RyaW5nKHMpKX1yZXR1cm4gcn1nZXRJbnRlcmNlcHRvckNvdW50cygpe3JldHVybntyZXF1ZXN0OnRoaXMucmVxdWVzdEludGVyY2VwdG9ycy5sZW5ndGgscmVzcG9uc2U6dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5sZW5ndGgsZXJyb3I6dGhpcy5lcnJvckludGVyY2VwdG9ycy5sZW5ndGh9fX19KTt2YXIgWF90PXUoKCk9PntHbigpfSk7dmFyIEpfdD11KCgpPT57fSk7dmFyIHpnZSxlVHQ9dSgoKT0+e1hfdCgpO0pfdCgpO3pnZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTbWFydGVudiIpfWNvbnN0cnVjdG9yKCl7dGhpcy5sb2FkZWRTY3JpcHRzPVtdfWFzeW5jIGdldEVudkF3YXJlTW9kdWxlKGUpe2lmKHRoaXMuaXNOb2RlKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKGUubm9kZU1vZHVsZU5hbWUpO2lmKHRoaXMuaXNCcm93c2VyKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVXZWJNb2R1bGUoZS53ZWJVcmxBcmcsZS5nZXRGdW5jdGlvbik7Y29uc29sZS5lcnJvcigicGxhdGZvcm0gZm9yIGxvYWRpbmcgbm90IHN1cHBvcnRlZCBieSBzbWFydGVudiIpfWFzeW5jIGdldFNhZmVOb2RlTW9kdWxlKGUscil7aWYoIXRoaXMuaXNOb2RlJiYhdGhpcy5pc0Rlbm8mJiF0aGlzLmlzQnVuKXtjb25zb2xlLmVycm9yKGBZb3UgdHJpZWQgdG8gbG9hZCBhIHNlcnZlciBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0OiAke2V9LiBUaGlzIGRvZXMgbm90IHRocm93LmApO3JldHVybn1sZXQgYT1hd2FpdCBuZXcgRnVuY3Rpb24oYHJldHVybiBpbXBvcnQoJyR7ZX0nKWApKCk7cmV0dXJuIHImJmF3YWl0IHIoYSksYX1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKGUscil7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyhlKSlyZXR1cm4gcigpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKGUpO2xldCBhPXh0LmRlZmVyKCkscz1nbG9iYWxUaGlzO2lmKHMuaW1wb3J0U2NyaXB0cylzLmltcG9ydFNjcmlwdHMoZSksYS5yZXNvbHZlKCk7ZWxzZXtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtuLm9ubG9hZD0oKT0+e2EucmVzb2x2ZSgpfSxuLnNyYz1lLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobil9cmV0dXJuIGF3YWl0IGEucHJvbWlzZSxyKCl9Z2V0IHJ1bnRpbWVFbnYoKXtsZXQgZT1nbG9iYWxUaGlzO3JldHVybiB0eXBlb2YgZS5EZW5vPCJ1IiYmdHlwZW9mIGUuRGVuby52ZXJzaW9uPCJ1Ij8iZGVubyI6dHlwZW9mIGUuQnVuPCJ1IiYmdHlwZW9mIGUuQnVuLnZlcnNpb248InUiPyJidW4iOnR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3M8InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPy52ZXJzaW9ucz8ubm9kZTwidSI/Im5vZGUiOih0eXBlb2YgZ2xvYmFsVGhpcy53aW5kb3c8InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5kb2N1bWVudDwidSIsImJyb3dzZXIiKX1nZXQgaXNCcm93c2VyKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJicm93c2VyIn1nZXQgaXNOb2RlKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJub2RlIn1nZXQgaXNEZW5vKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJkZW5vIn1nZXQgaXNCdW4oKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09ImJ1biJ9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBub2RlVmVyc2lvbigpe3JldHVybiB0aGlzLmlzTm9kZT9wcm9jZXNzLnZlcnNpb246InVuZGVmaW5lZCJ9Z2V0IGRlbm9WZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNEZW5vP2dsb2JhbFRoaXMuRGVubz8udmVyc2lvbj8uZGVubz8/InVuZGVmaW5lZCI6InVuZGVmaW5lZCJ9Z2V0IGJ1blZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc0J1bj9nbG9iYWxUaGlzLkJ1bj8udmVyc2lvbj8/InVuZGVmaW5lZCI6InVuZGVmaW5lZCJ9YXN5bmMgZ2V0U2FmZU1vZHVsZUZvcihlLHIsYSl7bGV0IHM7aWYoQXJyYXkuaXNBcnJheShlKT9zPWUuZmxhdE1hcChuPT5uPT09InNlcnZlciI/WyJub2RlIiwiZGVubyIsImJ1biJdOltuXSk6ZT09PSJzZXJ2ZXIiP3M9WyJub2RlIiwiZGVubyIsImJ1biJdOnM9W2VdLCFzLmluY2x1ZGVzKHRoaXMucnVudGltZUVudikpe2NvbnNvbGUud2FybihgTW9kdWxlICIke3J9IiByZXF1ZXN0ZWQgZm9yIHJ1bnRpbWUocykgWyR7cy5qb2luKCIsICIpfV0gYnV0IGN1cnJlbnQgcnVudGltZSBpcyAiJHt0aGlzLnJ1bnRpbWVFbnZ9Ii4gU2tpcHBpbmcgbG9hZC5gKTtyZXR1cm59aWYodGhpcy5pc05vZGV8fHRoaXMuaXNEZW5vfHx0aGlzLmlzQnVuKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKHIpO2lmKHRoaXMuaXNCcm93c2VyKXtpZighYSl7Y29uc29sZS5lcnJvcihgQnJvd3NlciBtb2R1bGUgbG9hZCByZXF1aXJlcyBnZXRGdW5jdGlvbiBwYXJhbWV0ZXIgZm9yICIke3J9ImApO3JldHVybn1yZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKHIsYSl9fWdldCBpc0NJKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyEhcHJvY2Vzcy5lbnYuQ0k6ITF9YXN5bmMgaXNNYWNBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZXx8dGhpcy5pc0Rlbm98fHRoaXMuaXNCdW4/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUodGhpcy5pc0Rlbm8/Im5vZGU6b3MiOiJvcyIpKT8ucGxhdGZvcm0oKT09PSJkYXJ3aW4iOiExfWFzeW5jIGlzV2luZG93c0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlfHx0aGlzLmlzRGVub3x8dGhpcy5pc0J1bj8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0aGlzLmlzRGVubz8ibm9kZTpvcyI6Im9zIikpPy5wbGF0Zm9ybSgpPT09IndpbjMyIjohMX1hc3luYyBpc0xpbnV4QXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGV8fHRoaXMuaXNEZW5vfHx0aGlzLmlzQnVuPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKHRoaXMuaXNEZW5vPyJub2RlOm9zIjoib3MiKSk/LnBsYXRmb3JtKCk9PT0ibGludXgiOiExfWFzeW5jIHByaW50RW52KCl7dGhpcy5pc05vZGU/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIE5PREUiKSxjb25zb2xlLmxvZygibm9kZSB2ZXJzaW9uIGlzICIrdGhpcy5ub2RlVmVyc2lvbikpOnRoaXMuaXNEZW5vPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBERU5PIiksY29uc29sZS5sb2coImRlbm8gdmVyc2lvbiBpcyAiK3RoaXMuZGVub1ZlcnNpb24pKTp0aGlzLmlzQnVuPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBCVU4iKSxjb25zb2xlLmxvZygiYnVuIHZlcnNpb24gaXMgIit0aGlzLmJ1blZlcnNpb24pKTooY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlJPV1NFUiIpLGNvbnNvbGUubG9nKCJicm93c2VyIGlzICIrdGhpcy51c2VyQWdlbnQpKX19fSk7dmFyIEMyPXt9O1ZlKEMyLHtTbWFydGVudjooKT0+emdlfSk7dmFyIHhTPXUoKCk9PntlVHQoKX0pO3ZhciBfZ2UsdlM9dSgoKT0+e19nZT1HYSh2aygpLDEpfSk7dmFyIFJuZT17fTtWZShSbmUse2NyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZzooKT0+cjRhLGNyZWF0ZVJhbmRvbVN0cmluZzooKT0+dDRhfSk7dmFyIEpkYSxlNGEsdDRhLHI0YSx0VHQ9dSgoKT0+e3ZTKCk7SmRhPWkoKHQsZSk9PntpZih0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuY3J5cHRvJiZnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2xldCByPWUtdCxhPW5ldyBVaW50MzJBcnJheSgxKTtyZXR1cm4gZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGEpLHQrYVswXSVyfWVsc2UgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KSkrdH0sImdldFJhbmRvbUludCIpLGU0YT1pKCh0LGUscik9PntsZXQgYT17QToiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLGE6ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwwOiIwMTIzNDU2Nzg5IiwiISI6IiFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/IiwiKiI6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IUAjJCVeJiooKV8rLT1bXXt9fDs6LC48Pj8ifSxzPXQ7ZSYmZT50Lmxlbmd0aD9zPXQucmVwZWF0KE1hdGguY2VpbChlL3QubGVuZ3RoKSkuc2xpY2UoMCxlKTplJiYocz10LnNsaWNlKDAsZSkpO2xldCBuPSIiO2ZvcihsZXQgbyBvZiBzKWlmKGFbb10pe2xldCBsPWFbb10sYz1KZGEoMCxsLmxlbmd0aCk7bis9bFtjXX1lbHNlIG4rPW87cmV0dXJuIG59LCJjdXN0b21SYW5kb21hdGljIiksdDRhPWkoKHQsZSxyKT0+ZTRhKHQsZSxyKSwiY3JlYXRlUmFuZG9tU3RyaW5nIikscjRhPWkoKCk9Pl9nZS51bmkoKSwiY3JlYXRlQ3J5cHRvUmFuZG9tU3RyaW5nIil9KTt2YXIgRm5lPXt9O1ZlKEZuZSx7bWFrZUVudk9iamVjdDooKT0+YTRhfSk7dmFyIGE0YSxyVHQ9dSgoKT0+e3ZTKCk7YTRhPWkoZnVuY3Rpb24odCl7bGV0IGU9e30scj0vKC4qKT0oLiopLztpZih0eXBlb2YgdDwidSIpZm9yKGxldCBhIG9mIHQpe2xldCBzPXIuZXhlYyhhKTtzJiYoZVtzWzFdXT1zWzJdKX1yZXR1cm4gZX0sIm1ha2VFbnZPYmplY3QiKX0pO3ZhciBCbmU9e307VmUoQm5lLHtpbmRlbnQ6KCk9PnM0YSxpbmRlbnRXaXRoUHJlZml4OigpPT5uNGEsbm9ybWFsaXplOigpPT5vNGF9KTt2YXIgVGdlLExnZSxpNGEsczRhLG40YSxvNGEsYVR0PXUoKCk9Pnt2UygpO1RnZT1pKHQ9PntsZXQgZT10LnNwbGl0KGAKYCk7cmV0dXJuIGk0YShlKX0sInNwbGl0U3RyaW5nQXRMaW5lQnJlYWsiKSxMZ2U9aSh0PT57bGV0IGU9IiI7Zm9yKGxldCByIG9mIHQpZT1lK3IrYApgO3JldHVybiBlfSwiam9pblN0cmluZ1dpdGhMaW5lQnJlYWtzIiksaTRhPWkodD0+e2xldCBlPS9eW1xzXSokLztyZXR1cm4gZS50ZXN0KHRbMF0pJiZ0LnNoaWZ0KCksZS50ZXN0KHRbdC5sZW5ndGgtMV0pJiZ0LnBvcCgpLHR9LCJjbGVhblN0cmluZ0FycmF5IiksczRhPWkoKHQsZSk9PntsZXQgcj1UZ2UodCk7Zm9yKGxldCBzIG9mIHIpcz0iICIucmVwZWF0KGUpK3M7cmV0dXJuIExnZShyKX0sImluZGVudCIpLG40YT1pKCh0LGUpPT57bGV0IHIsYT1UZ2UodCkscz1bXTtmb3IobGV0IG4gb2YgYSlzLnB1c2goZStuKTtyZXR1cm4gcj1MZ2Uocykscn0sImluZGVudFdpdGhQcmVmaXgiKSxvNGE9aSh0PT57bGV0IGUscj1UZ2UodCksYSxzPS9eKFxzKikvLG49L14oXHMqKSQvO2ZvcihsZXQgYyBvZiByKXtsZXQgZD1zLmV4ZWMoYyksZj1kP2RbMV06IiI7KHR5cGVvZiBhPiJ1Inx8Zi5sZW5ndGg8YSkmJiFuLnRlc3QoYykmJihhPWYubGVuZ3RoKX1sZXQgbz1bXSxsPWF8fDA7Zm9yKGxldCBjIG9mIHIpby5wdXNoKGMuc3Vic3RyKGwpKTtyZXR1cm4gZT1MZ2UobyksZX0sIm5vcm1hbGl6ZSIpfSk7dmFyIEhuZT17fTtWZShIbmUse3JlcGxhY2VBbGw6KCk9PmlUdCxzdGFuZGFyZDooKT0+YzRhfSk7dmFyIGlUdCxsNGEsYzRhLHNUdD11KCgpPT57aVR0PWkoKHQsZSxyKT0+dC5yZXBsYWNlKG5ldyBSZWdFeHAoZSwiZyIpLHIpLCJyZXBsYWNlQWxsIiksbDRhPWkodD0+e2xldCBlPXQuc3BsaXQoYApgKSxyPTEvMDtmb3IobGV0IGEgb2YgZSlpZihhLnRyaW0oKS5sZW5ndGg+MCl7bGV0IHM9YS5tYXRjaCgvXihccyopLyk7cyYmKHI9TWF0aC5taW4ocixzWzFdLmxlbmd0aCkpfXJldHVybiByPT09MS8wfHxyPT09MD90OmUubWFwKGE9PmEubGVuZ3RoPj1yP2Euc2xpY2Uocik6YSkuam9pbihgCmApfSwic3RyaXBJbmRlbnQiKSxjNGE9aSgodCxlKT0+e2xldCByPXQ7cmV0dXJuKCFlfHxlLnN0cmlwSW5kZW50KSYmKHI9bDRhKHIpKSwoIWV8fGUubm9ybWFsaXplTmV3bGluZSkmJihyPXIucmVwbGFjZSgvXHJcbi9nLGAKYCkpLCghZXx8ZS5yZXBsYWNlVGFicykmJihyPWlUdChyLCIJLyIsIiAiKSksKCFlfHxlLnN0cmlwTGVhZGluZ1RyYWlsaW5nRW1wdHlMaW5lcykmJihyPXIucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikucmVwbGFjZSgvXHMqW1xyXG5dJC9nbSwiIikpLCghZXx8ZS5zdHJpcEFsbEVtcHR5TGluZXMpJiYocj1yLnJlcGxhY2UoL15ccypbXHJcbl0vZ20sIiIpKSxyfSwic3RhbmRhcmQiKX0pO3ZhciBEZ2UscW5lLFRiLCRnZT11KCgpPT57RGdlPXtlbmNvZGU6aSh0PT57aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKHQsInV0ZjgiKS50b1N0cmluZygiYmFzZTY0Iik7aWYodHlwZW9mIGJ0b2E8InUiKXtsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCkscj1BcnJheS5mcm9tKGUsYT0+U3RyaW5nLmZyb21DaGFyQ29kZShhKSkuam9pbigiIik7cmV0dXJuIGJ0b2Eocil9ZWxzZXtsZXQgZT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIscj1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCksYT0iIixzPTA7Zm9yKDtzPHIubGVuZ3RoOyl7bGV0IG49cltzKytdLG89czxyLmxlbmd0aD9yW3MrK106MCxsPXM8ci5sZW5ndGg/cltzKytdOjAsYz1uPDwxNnxvPDw4fGw7YSs9ZS5jaGFyQXQoYz4+MTgmNjMpLGErPWUuY2hhckF0KGM+PjEyJjYzKSxhKz1zLTI8ci5sZW5ndGg/ZS5jaGFyQXQoYz4+NiY2Myk6Ij0iLGErPXMtMTxyLmxlbmd0aD9lLmNoYXJBdChjJjYzKToiPSJ9cmV0dXJuIGF9fSwiZW5jb2RlIiksZGVjb2RlOmkodD0+e2xldCBlPXQucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikucGFkRW5kKHQubGVuZ3RoKyg0LXQubGVuZ3RoJTQpJTQsIj0iKTtpZih0eXBlb2YgQnVmZmVyPCJ1IilyZXR1cm4gQnVmZmVyLmZyb20oZSwiYmFzZTY0IikudG9TdHJpbmcoInV0ZjgiKTtpZih0eXBlb2YgYXRvYjwidSIpe2xldCByPWF0b2IoZSksYT1uZXcgVWludDhBcnJheShyLmxlbmd0aCk7Zm9yKGxldCBzPTA7czxyLmxlbmd0aDtzKyspYVtzXT1yLmNoYXJDb2RlQXQocyk7cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShhKX1lbHNle2xldCByPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixhPVtdLHM9MDtmb3IoO3M8ZS5sZW5ndGg7KXtsZXQgbj1yLmluZGV4T2YoZS5jaGFyQXQocysrKSksbz1yLmluZGV4T2YoZS5jaGFyQXQocysrKSksbD1yLmluZGV4T2YoZS5jaGFyQXQocysrKSksYz1yLmluZGV4T2YoZS5jaGFyQXQocysrKSksZD1uPDwxOHxvPDwxMnxsPDw2fGM7YS5wdXNoKGQ+PjE2JjI1NSksbCE9PTY0JiZhLnB1c2goZD4+OCYyNTUpLGMhPT02NCYmYS5wdXNoKGQmMjU1KX1yZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBVaW50OEFycmF5KGEpKX19LCJkZWNvZGUiKX0scW5lPWNsYXNze3N0YXRpY3tpKHRoaXMsIkJhc2U2NCIpfWNvbnN0cnVjdG9yKGUscil7c3dpdGNoKHIpe2Nhc2Uic3RyaW5nIjp0aGlzLnJlZlN0cmluZz1lO2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnJlZlN0cmluZz1UYi5kZWNvZGUoZSk7YnJlYWs7Y2FzZSJiYXNlNjR1cmkiOnRoaXMucmVmU3RyaW5nPVRiLmRlY29kZShlKX19Z2V0IHNpbXBsZVN0cmluZygpe3JldHVybiB0aGlzLnJlZlN0cmluZ31nZXQgYmFzZTY0U3RyaW5nKCl7cmV0dXJuIFRiLmVuY29kZSh0aGlzLnJlZlN0cmluZyl9Z2V0IGJhc2U2NFVyaVN0cmluZygpe3JldHVybiBUYi5lbmNvZGVVcmkodGhpcy5yZWZTdHJpbmcpfX0sVGI9e2VuY29kZTppKHQ9PkRnZS5lbmNvZGUodCksImVuY29kZSIpLGVuY29kZVVyaTppKHQ9PkRnZS5lbmNvZGUodCkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89L2csIiIpLCJlbmNvZGVVcmkiKSxkZWNvZGU6aSh0PT5EZ2UuZGVjb2RlKHQpLCJkZWNvZGUiKSxpc0Jhc2U2NDppKHQ9Pi9eKFtBLVphLXowLTkrL117NH0pKihbQS1aYS16MC05Ky9dezN9PXxbQS1aYS16MC05Ky9dezJ9PT0pPyQvLnRlc3QodCksImlzQmFzZTY0Iil9fSk7dmFyIFZuZT17fTtWZShWbmUse2lzQmFzZTY0OigpPT51NGEsaXNVdGY4OigpPT5kNGF9KTt2YXIgZDRhLHU0YSxuVHQ9dSgoKT0+e3ZTKCk7JGdlKCk7ZDRhPWkodD0+e2xldCByPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0KSxhPTA7Zm9yKDthPHIubGVuZ3RoOyl7aWYoclthXT09PTl8fHJbYV09PT0xMHx8clthXT09PTEzfHwzMjw9clthXSYmclthXTw9MTI2KXthKz0xO2NvbnRpbnVlfWlmKDE5NDw9clthXSYmclthXTw9MjIzJiYxMjg8PXJbYSsxXSYmclthKzFdPD0xOTEpe2ErPTI7Y29udGludWV9aWYoclthXT09PTIyNCYmMTYwPD1yW2ErMV0mJnJbYSsxXTw9MTkxJiYxMjg8PXJbYSsyXSYmclthKzJdPD0xOTF8fCgyMjU8PXJbYV0mJnJbYV08PTIzNnx8clthXT09PTIzOHx8clthXT09PTIzOSkmJjEyODw9clthKzFdJiZyW2ErMV08PTE5MSYmMTI4PD1yW2ErMl0mJnJbYSsyXTw9MTkxfHxyW2FdPT09MjM3JiYxMjg8PXJbYSsxXSYmclthKzFdPD0xNTkmJjEyODw9clthKzJdJiZyW2ErMl08PTE5MSl7YSs9Mztjb250aW51ZX1pZihyW2FdPT09MjQwJiYxNDQ8PXJbYSsxXSYmclthKzFdPD0xOTEmJjEyODw9clthKzJdJiZyW2ErMl08PTE5MSYmMTI4PD1yW2ErM10mJnJbYSszXTw9MTkxfHwyNDE8PXJbYV0mJnJbYV08PTI0MyYmMTI4PD1yW2ErMV0mJnJbYSsxXTw9MTkxJiYxMjg8PXJbYSsyXSYmclthKzJdPD0xOTEmJjEyODw9clthKzNdJiZyW2ErM108PTE5MXx8clthXT09PTI0NCYmMTI4PD1yW2ErMV0mJnJbYSsxXTw9MTQzJiYxMjg8PXJbYSsyXSYmclthKzJdPD0xOTEmJjEyODw9clthKzNdJiZyW2ErM108PTE5MSl7YSs9NDtjb250aW51ZX1yZXR1cm4hMX1yZXR1cm4hMH0sImlzVXRmOCIpLHU0YT1pKHQ9PntsZXQgZT0vW15BLVowLTkrXC89XS9pLHI9dC5sZW5ndGg7aWYoIXJ8fHIlNCE9PTB8fGUudGVzdCh0KSlyZXR1cm4hMTtsZXQgYT10LmluZGV4T2YoIj0iKTtyZXR1cm4gYT09PS0xfHxhPT09ci0xfHxhPT09ci0yJiZ0W3ItMV09PT0iPSJ9LCJpc0Jhc2U2NCIpfSk7dmFyIGpuZSxvVHQ9dSgoKT0+e2puZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJEb21haW4iKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnByb3RvY29sPXRoaXMuX3Byb3RvY29sUmVnZXgoZSksdGhpcy5wcm90b2NvbHx8KGU9YGh0dHBzOi8vJHtlfWApLHRoaXMubm9kZVBhcnNlZFVybD1uZXcgVVJMKGUpLHRoaXMucG9ydD10aGlzLm5vZGVQYXJzZWRVcmwucG9ydDtsZXQgcj10aGlzLl9kb21haW5SZWdleChlLnJlcGxhY2UodGhpcy5ub2RlUGFyc2VkVXJsLnBhdGhuYW1lLCIiKSk7W3RoaXMubGV2ZWwxLHRoaXMubGV2ZWwyLHRoaXMubGV2ZWwzLHRoaXMubGV2ZWw0LHRoaXMubGV2ZWw1XT1yLHRoaXMuZnVsbE5hbWU9IiI7Zm9yKGxldCBhIG9mIHIpdGhpcy5mdWxsTmFtZT09PSIiP3RoaXMuZnVsbE5hbWU9YTp0aGlzLmZ1bGxOYW1lPWErIi4iK3RoaXMuZnVsbE5hbWU7dGhpcy56b25lTmFtZT1bdGhpcy5sZXZlbDIsdGhpcy5sZXZlbDFdLmZpbHRlcihCb29sZWFuKS5qb2luKCIuIiksdGhpcy50b3BMZXZlbD10aGlzLmxldmVsMSx0aGlzLmRvbWFpbk5hbWU9dGhpcy5sZXZlbDIsdGhpcy5zdWJEb21haW49dGhpcy5sZXZlbDN9X2RvbWFpblJlZ2V4KGUpe2xldCBhPS8oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfSQvLmV4ZWMoZSk7aWYoIWEpcmV0dXJuW107bGV0IHM9Wy4uLmFdLnJldmVyc2UoKTtyZXR1cm4gcy5wb3AoKSxzLmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4gbyE9PSIifSl9X3Byb3RvY29sUmVnZXgoZSl7bGV0IGE9L14oW2EtekEtWjAtOV0qKTpcL1wvLy5leGVjKGUpO2lmKGEpcmV0dXJuIGFbMV19X3BvcnRSZWdleChlKXtsZXQgYT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWMoZSk7aWYoYSlyZXR1cm4gYVsxXX19fSk7dmFyIFVuZSxwNGEsbFR0LGNUdD11KCgpPT57VW5lPWNsYXNze3N0YXRpY3tpKHRoaXMsIkdpdFJlcG8iKX1jb25zdHJ1Y3RvcihlLHIpe2xldCBhPXA0YShlKTtpZighYSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZ2l0IHJlcG9zaXRvcnkgVVJMOiAke2V9YCk7dGhpcy5ob3N0PWFbMV0sdGhpcy51c2VyPWFbMl0sdGhpcy5yZXBvPWFbM10sdGhpcy5hY2Nlc3NUb2tlbj1yLHRoaXMuc3NoVXJsPWxUdCh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJzc2giKSx0aGlzLmh0dHBzVXJsPWxUdCh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJodHRwcyIpfX0scDRhPWkoZnVuY3Rpb24odCl7cmV0dXJuLyhbYS16QS1aMC05XC1fXC5dKikoPzpcL3xcOikoW2EtekEtWjAtOVwtX1wuXSopKD86XC8pKFthLXpBLVowLTlcLV9cLl0qKSg/OlwuZ2l0KS8uZXhlYyh0KX0sImdpdFJlZ2V4IiksbFR0PWkoZnVuY3Rpb24odCxlLHIsYT0iIixzKXtzd2l0Y2goYSE9PSIiJiYoYT1hKyJAIikscyl7Y2FzZSJodHRwcyI6cmV0dXJuImh0dHBzOi8vIithK3QrIi8iK2UrIi8iK3IrIi5naXQiO2Nhc2Uic3NoIjpyZXR1cm4iZ2l0QCIrdCsiOiIrZSsiLyIrcisiLmdpdCJ9fSwiZ2l0TGluayIpfSk7dmFyIEJzPXt9O1ZlKEJzLHtCYXNlNjQ6KCk9PnFuZSxEb21haW46KCk9PmpuZSxHaXRSZXBvOigpPT5VbmUsYmFzZTY0OigpPT5UYixjcmVhdGU6KCk9PlJuZSxkb2NrZXI6KCk9PkZuZSxpbmRlbnQ6KCk9PkJuZSxub3JtYWxpemU6KCk9PkhuZSx0eXBlOigpPT5WbmV9KTt2YXIgeVM9dSgoKT0+e3RUdCgpO3JUdCgpO2FUdCgpO3NUdCgpO25UdCgpOyRnZSgpO29UdCgpO2NUdCgpfSk7dmFyIEFnZT1OdCgoR0FpLGRUdCk9PnsidXNlIHN0cmljdCI7ZFR0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlfHwoZT17fSksdHlwZW9mIGU9PSJmdW5jdGlvbiImJihlPXtjbXA6ZX0pO3ZhciByPXR5cGVvZiBlLmN5Y2xlcz09ImJvb2xlYW4iP2UuY3ljbGVzOiExLGE9ZS5jbXAmJihmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIGZ1bmN0aW9uKGwsYyl7dmFyIGQ9e2tleTpsLHZhbHVlOm9bbF19LGY9e2tleTpjLHZhbHVlOm9bY119O3JldHVybiBuKGQsZil9fX0pKGUuY21wKSxzPVtdO3JldHVybiBpKChmdW5jdGlvbiBuKG8pe2lmKG8mJm8udG9KU09OJiZ0eXBlb2Ygby50b0pTT049PSJmdW5jdGlvbiImJihvPW8udG9KU09OKCkpLG8hPT12b2lkIDApe2lmKHR5cGVvZiBvPT0ibnVtYmVyIilyZXR1cm4gaXNGaW5pdGUobyk/IiIrbzoibnVsbCI7aWYodHlwZW9mIG8hPSJvYmplY3QiKXJldHVybiBKU09OLnN0cmluZ2lmeShvKTt2YXIgbCxjO2lmKEFycmF5LmlzQXJyYXkobykpe2ZvcihjPSJbIixsPTA7bDxvLmxlbmd0aDtsKyspbCYmKGMrPSIsIiksYys9bihvW2xdKXx8Im51bGwiO3JldHVybiBjKyJdIn1pZihvPT09bnVsbClyZXR1cm4ibnVsbCI7aWYocy5pbmRleE9mKG8pIT09LTEpe2lmKHIpcmV0dXJuIEpTT04uc3RyaW5naWZ5KCJfX2N5Y2xlX18iKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09OIil9dmFyIGQ9cy5wdXNoKG8pLTEsZj1PYmplY3Qua2V5cyhvKS5zb3J0KGEmJmEobykpO2ZvcihjPSIiLGw9MDtsPGYubGVuZ3RoO2wrKyl7dmFyIHA9ZltsXSxoPW4ob1twXSk7aCYmKGMmJihjKz0iLCIpLGMrPUpTT04uc3RyaW5naWZ5KHApKyI6IitoKX1yZXR1cm4gcy5zcGxpY2UoZCwxKSwieyIrYysifSJ9fSksInN0cmluZ2lmeSIpKHQpfX0pO3ZhciB1VHQsV25lLEVnZT11KCgpPT57eFMoKTt5UygpO3VUdD1HYShBZ2UoKSwxKSxXbmU9dVR0LmRlZmF1bHR9KTtmdW5jdGlvbiBoNGEodCl7bGV0IGU9cFR0KCk7cmV0dXJuIGU/ZS5mcm9tKHQpLnRvU3RyaW5nKCJiYXNlNjQiKTpidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4udCkpfWZ1bmN0aW9uIG00YSh0KXtsZXQgZT1wVHQoKTtpZihlKXtsZXQgcj1lLmZyb20odCwiYmFzZTY0Iik7cmV0dXJuIG5ldyBVaW50OEFycmF5KHIuYnVmZmVyLHIuYnl0ZU9mZnNldCxyLmJ5dGVMZW5ndGgpfXJldHVybiBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGF0b2IodCkpLm1hcChyPT5yLmNoYXJDb2RlQXQoMCkpKX1mdW5jdGlvbiBQZ2UodCxlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCxHbmUsZSl9ZnVuY3Rpb24gTmdlKHQpe3JldHVybiBKU09OLnBhcnNlKHQsZlR0KX1mdW5jdGlvbiBnNGEodCl7cmV0dXJuIG1UdCh0KSYmdC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZJZ2UodC5kYXRhKX1mdW5jdGlvbiBiNGEodCl7cmV0dXJuIG1UdCh0KSYmdC50eXBlPT09IkJ1ZmZlciImJihoVHQodC5kYXRhKXx8SWdlKHQuZGF0YSkpfHx0IGluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBoVHQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gSWdlKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ9ZnVuY3Rpb24gbVR0KHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsfXZhciBwVHQsR25lLGZUdCxnVHQ9dSgoKT0+e0VnZSgpO3BUdD1pKCgpPT5nbG9iYWxUaGlzLkJ1ZmZlciwiZ2V0Tm9kZUJ1ZmZlciIpO2koaDRhLCJiYXNlNjRFbmNvZGUiKTtpKG00YSwiYmFzZTY0RGVjb2RlIik7aShQZ2UsInN0cmluZ2lmeSIpO2koTmdlLCJwYXJzZSIpO0duZT1pKCh0LGUpPT57aWYoYjRhKGUpKXtsZXQgcjtpZigiZGF0YSJpbiBlJiZoVHQoZS5kYXRhKSlyPW5ldyBVaW50OEFycmF5KGUuZGF0YSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgVWludDhBcnJheSlyPWU7ZWxzZSByZXR1cm4gZTtyZXR1cm57dHlwZToiRW5jb2RlZEJ1ZmZlciIsZGF0YToiYmFzZTY0OiIraDRhKHIpfX1yZXR1cm4gZX0sInJlcGxhY2VyIiksZlR0PWkoKHQsZSk9PntpZihnNGEoZSkmJklnZShlLmRhdGEpJiZlLmRhdGEuc3RhcnRzV2l0aCgiYmFzZTY0OiIpKXtsZXQgcj1lLmRhdGEuc2xpY2UoNyk7cmV0dXJuIG00YShyKX1yZXR1cm4gZX0sInJldml2ZXIiKTtpKGc0YSwiaXNFbmNvZGVkQnVmZmVyIik7aShiNGEsImlzQnVmZmVyTGlrZSIpO2koaFR0LCJpc0FycmF5Iik7aShJZ2UsImlzU3RyaW5nIik7aShtVHQsImlzT2JqZWN0Iil9KTt2YXIgSHM9e307VmUoSHMse1NtYXJ0anNvbjooKT0+UmdlLGRlZXBFcXVhbEpzb25MU3RyaW5nczooKT0+QzRhLGRlZXBFcXVhbE9iamVjdHM6KCk9PmJUdCxmb2xkRGVjOigpPT5NNGEscGFyc2U6KCk9PlluZSxwYXJzZUJhc2U2NDooKT0+UzRhLHBhcnNlSnNvbkw6KCk9Pk9nZSxzdGFibGVPbmVXYXlTdHJpbmdpZnk6KCk9Pnk0YSxzdHJpbmdpZnk6KCk9PmFoLHN0cmluZ2lmeUJhc2U2NDooKT0+azRhLHN0cmluZ2lmeUpzb25MOigpPT52NGEsc3RyaW5naWZ5UHJldHR5OigpPT53NGF9KTt2YXIgWW5lLE9nZSx2NGEseTRhLGFoLHc0YSxrNGEsUzRhLFJnZSxNNGEsYlR0LEM0YSxMYj11KCgpPT57RWdlKCk7Z1R0KCk7WW5lPU5nZSxPZ2U9aSh0PT50LnNwbGl0KGAKYCkucmVkdWNlKChhLHMpPT57bGV0IG49cy50cmltKCk7cmV0dXJuIG4ubGVuZ3RoPjAmJmEucHVzaChZbmUobikpLGF9LFtdKSwicGFyc2VKc29uTCIpLHY0YT1pKHQ9PnQubWFwKGU9PmFoKGUpKS5qb2luKGAKYCksInN0cmluZ2lmeUpzb25MIikseTRhPWkoKHQsZSxyPXt9KT0+e2xldCBhPW5ldyBXZWFrU2V0LHM9aShsPT57aWYobD09PW51bGx8fHR5cGVvZiBsIT0ib2JqZWN0IilyZXR1cm4gbDtsZXQgYz1HbmUoIiIsbCk7aWYoYyYmYy50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgYy5kYXRhPT0ic3RyaW5nIilyZXR1cm4gYztpZihhLmhhcyhsKSlyZXR1cm4iX19jeWNsZV9fIjtpZihhLmFkZChsKSxBcnJheS5pc0FycmF5KGwpKXJldHVybiBsLm1hcChmPT5zKGYpKTtsZXQgZD17fTtmb3IobGV0IGYgb2YgT2JqZWN0LmtleXMobCkpdHJ5e2RbZl09cyhsW2ZdKX1jYXRjaHtkW2ZdPSJfX3Vuc2VyaWFsaXphYmxlX18ifXJldHVybiBkfSwic2FuaXRpemUiKSxuPXModCksbz17Li4ucixjeWNsZXM6ITB9O2lmKGUmJiFvLmNtcCl7bGV0IGw9bmV3IE1hcDtlLmZvckVhY2goKGMsZCk9Pmwuc2V0KGMsZCkpLG8uY21wPShjLGQpPT57bGV0IGY9bC5oYXMoYy5rZXkpP2wuZ2V0KGMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscD1sLmhhcyhkLmtleSk/bC5nZXQoZC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gZiE9PXA/Zi1wOmMua2V5PGQua2V5Py0xOmMua2V5PmQua2V5PzE6MH19cmV0dXJuIFduZShuLG8pfSwic3RhYmxlT25lV2F5U3RyaW5naWZ5IiksYWg9aSgodCxlLHI9e30pPT57bGV0IGE9UGdlKHQpO3Q9SlNPTi5wYXJzZShhKTtsZXQgcz17Li4ucn07aWYoZSYmIXMuY21wKXtsZXQgbz1uZXcgTWFwO2UuZm9yRWFjaCgobCxjKT0+by5zZXQobCxjKSkscy5jbXA9KGwsYyk9PntsZXQgZD1vLmhhcyhsLmtleSk/by5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxmPW8uaGFzKGMua2V5KT9vLmdldChjLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiBkIT09Zj9kLWY6bC5rZXk8Yy5rZXk/LTE6bC5rZXk+Yy5rZXk/MTowfX1yZXR1cm4gV25lKHQscyl9LCJzdHJpbmdpZnkiKSx3NGE9aSh0PT57bGV0IGU9YWgodCkscj1KU09OLnBhcnNlKGUpO3JldHVybiBKU09OLnN0cmluZ2lmeShyLG51bGwsMil9LCJzdHJpbmdpZnlQcmV0dHkiKSxrNGE9aSgoLi4udCk9PntsZXQgZT1haCguLi50KTtyZXR1cm4gQnMuYmFzZTY0LmVuY29kZVVyaShlKX0sInN0cmluZ2lmeUJhc2U2NCIpLFM0YT1pKHQ9PntsZXQgZT1Ccy5iYXNlNjQsYT0oZS5kZWNvZGVVcml8fGUuZGVjb2RlKSh0KTtyZXR1cm4gWW5lKGEpfSwicGFyc2VCYXNlNjQiKSxSZ2U9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTbWFydGpzb24iKX1zdGF0aWMgZW5mb2xkRnJvbU9iamVjdChlKXtsZXQgcj1uZXcgdGhpcyxhPXIuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IHMgaW4gZSlhLmluZGV4T2YocykhPT0tMSYmKHJbc109ZVtzXSk7cmV0dXJuIHJ9c3RhdGljIGVuZm9sZEZyb21Kc29uKGUpe2xldCByPVluZShlKTtyZXR1cm4gdGhpcy5lbmZvbGRGcm9tT2JqZWN0KHIpfXNhdmVhYmxlUHJvcGVydGllcz1bXTtmb2xkVG9PYmplY3QoKXtsZXQgZT1uZXcgU2V0O3JldHVybiBlLmFkZCh0aGlzKSx0aGlzLmZvbGRUb09iamVjdEludGVybmFsKGUpfWZvbGRUb09iamVjdEludGVybmFsKGUpe2xldCByPXt9LGE9aShuPT57aWYobiBpbnN0YW5jZW9mIHQpe2lmKGUuaGFzKG4pKXRocm93IG5ldyBFcnJvcigiY3ljbGUgZGV0ZWN0ZWQiKTtyZXR1cm4gZS5hZGQobiksbi5mb2xkVG9PYmplY3RJbnRlcm5hbChlKX1yZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uLm1hcChvPT5hKG8pKTpzdHJ1Y3R1cmVkQ2xvbmUobil9LCJmb2xkVmFsdWUiKSxzPXRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IG4gb2Ygcyl7bGV0IG89dGhpc1tuXTtyW25dPWEobyl9cmV0dXJuIHJ9Zm9sZFRvSnNvbigpe2xldCBlPXRoaXMuZm9sZFRvT2JqZWN0KCk7cmV0dXJuIGFoKGUpfX0sTTRhPWkoKCk9Pih0LGUpPT57bGV0IHI9U3RyaW5nKGUubmFtZSk7ZS5hZGRJbml0aWFsaXplcihmdW5jdGlvbigpe3RoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHwodGhpcy5zYXZlYWJsZVByb3BlcnRpZXM9W10pLHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzLmluY2x1ZGVzKHIpfHx0aGlzLnNhdmVhYmxlUHJvcGVydGllcy5wdXNoKHIpfSl9LCJmb2xkRGVjIiksYlR0PWkoKHQsZSk9PntsZXQgcj1haCh0KSxhPWFoKGUpO3JldHVybiByPT09YX0sImRlZXBFcXVhbE9iamVjdHMiKSxDNGE9aSgodCxlKT0+e2xldCByPU9nZSh0KSxhPU9nZShlKTtyZXR1cm4gYlR0KHIsYSl9LCJkZWVwRXF1YWxKc29uTFN0cmluZ3MiKX0pO3ZhciBrUz17fTtWZShrUyx7ZGVsZXRlREI6KCk9PnpUdCxvcGVuREI6KCk9PkNUdCx1bndyYXA6KCk9PndTLHdyYXA6KCk9Pm8wfSk7ZnVuY3Rpb24gejRhKCl7cmV0dXJuIHhUdHx8KHhUdD1bSURCRGF0YWJhc2UsSURCT2JqZWN0U3RvcmUsSURCSW5kZXgsSURCQ3Vyc29yLElEQlRyYW5zYWN0aW9uXSl9ZnVuY3Rpb24gXzRhKCl7cmV0dXJuIHZUdHx8KHZUdD1bSURCQ3Vyc29yLnByb3RvdHlwZS5hZHZhbmNlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWUsSURCQ3Vyc29yLnByb3RvdHlwZS5jb250aW51ZVByaW1hcnlLZXldKX1mdW5jdGlvbiBUNGEodCl7bGV0IGU9bmV3IFByb21pc2UoKHIsYSk9PntsZXQgcz1pKCgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJzdWNjZXNzIixuKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixvKX0sInVubGlzdGVuIiksbj1pKCgpPT57cihvMCh0LnJlc3VsdCkpLHMoKX0sInN1Y2Nlc3MiKSxvPWkoKCk9PnthKHQuZXJyb3IpLHMoKX0sImVycm9yIik7dC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIixuKSx0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixvKX0pO3JldHVybiBLbmUuc2V0KGUsdCksZX1mdW5jdGlvbiBMNGEodCl7aWYoQmdlLmhhcyh0KSlyZXR1cm47bGV0IGU9bmV3IFByb21pc2UoKHIsYSk9PntsZXQgcz1pKCgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsbiksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsbyksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9LCJ1bmxpc3RlbiIpLG49aSgoKT0+e3IoKSxzKCl9LCJjb21wbGV0ZSIpLG89aSgoKT0+e2EodC5lcnJvcnx8bmV3IERPTUV4Y2VwdGlvbigiQWJvcnRFcnJvciIsIkFib3J0RXJyb3IiKSkscygpfSwiZXJyb3IiKTt0LmFkZEV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIixuKSx0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixvKSx0LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0pO0JnZS5zZXQodCxlKX1mdW5jdGlvbiB5VHQodCl7cWdlPXQocWdlKX1mdW5jdGlvbiBENGEodCl7cmV0dXJuIF80YSgpLmluY2x1ZGVzKHQpP2Z1bmN0aW9uKC4uLmUpe3JldHVybiB0LmFwcGx5KHdTKHRoaXMpLGUpLG8wKHRoaXMucmVxdWVzdCl9OmZ1bmN0aW9uKC4uLmUpe3JldHVybiBvMCh0LmFwcGx5KHdTKHRoaXMpLGUpKX19ZnVuY3Rpb24gJDRhKHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj9ENGEodCk6KHQgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmTDRhKHQpLEZnZSh0LHo0YSgpKT9uZXcgUHJveHkodCxxZ2UpOnQpfWZ1bmN0aW9uIG8wKHQpe2lmKHQgaW5zdGFuY2VvZiBJREJSZXF1ZXN0KXJldHVybiBUNGEodCk7aWYoSGdlLmhhcyh0KSlyZXR1cm4gSGdlLmdldCh0KTtsZXQgZT0kNGEodCk7cmV0dXJuIGUhPT10JiYoSGdlLnNldCh0LGUpLEtuZS5zZXQoZSx0KSksZX1mdW5jdGlvbiBDVHQodCxlLHtibG9ja2VkOnIsdXBncmFkZTphLGJsb2NraW5nOnMsdGVybWluYXRlZDpufT17fSl7bGV0IG89aW5kZXhlZERCLm9wZW4odCxlKSxsPW8wKG8pO3JldHVybiBhJiZvLmFkZEV2ZW50TGlzdGVuZXIoInVwZ3JhZGVuZWVkZWQiLGM9PnthKG8wKG8ucmVzdWx0KSxjLm9sZFZlcnNpb24sYy5uZXdWZXJzaW9uLG8wKG8udHJhbnNhY3Rpb24pLGMpfSksciYmby5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIixjPT5yKGMub2xkVmVyc2lvbixjLm5ld1ZlcnNpb24sYykpLGwudGhlbihjPT57biYmYy5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9Pm4oKSkscyYmYy5hZGRFdmVudExpc3RlbmVyKCJ2ZXJzaW9uY2hhbmdlIixkPT5zKGQub2xkVmVyc2lvbixkLm5ld1ZlcnNpb24sZCkpfSkuY2F0Y2goKCk9Pnt9KSxsfWZ1bmN0aW9uIHpUdCh0LHtibG9ja2VkOmV9PXt9KXtsZXQgcj1pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UodCk7cmV0dXJuIGUmJnIuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsYT0+ZShhLm9sZFZlcnNpb24sYSkpLG8wKHIpLnRoZW4oKCk9Pnt9KX1mdW5jdGlvbiB3VHQodCxlKXtpZighKHQgaW5zdGFuY2VvZiBJREJEYXRhYmFzZSYmIShlIGluIHQpJiZ0eXBlb2YgZT09InN0cmluZyIpKXJldHVybjtpZihWZ2UuZ2V0KGUpKXJldHVybiBWZ2UuZ2V0KGUpO2xldCByPWUucmVwbGFjZSgvRnJvbUluZGV4JC8sIiIpLGE9ZSE9PXIscz1FNGEuaW5jbHVkZXMocik7aWYoIShyIGluKGE/SURCSW5kZXg6SURCT2JqZWN0U3RvcmUpLnByb3RvdHlwZSl8fCEoc3x8QTRhLmluY2x1ZGVzKHIpKSlyZXR1cm47bGV0IG49aShhc3luYyBmdW5jdGlvbihvLC4uLmwpe2xldCBjPXRoaXMudHJhbnNhY3Rpb24obyxzPyJyZWFkd3JpdGUiOiJyZWFkb25seSIpLGQ9Yy5zdG9yZTtyZXR1cm4gYSYmKGQ9ZC5pbmRleChsLnNoaWZ0KCkpKSwoYXdhaXQgUHJvbWlzZS5hbGwoW2Rbcl0oLi4ubCkscyYmYy5kb25lXSkpWzBdfSwibWV0aG9kIik7cmV0dXJuIFZnZS5zZXQoZSxuKSxufWFzeW5jIGZ1bmN0aW9uKk40YSguLi50KXtsZXQgZT10aGlzO2lmKGUgaW5zdGFuY2VvZiBJREJDdXJzb3J8fChlPWF3YWl0IGUub3BlbkN1cnNvciguLi50KSksIWUpcmV0dXJuO2U9ZTtsZXQgcj1uZXcgUHJveHkoZSxQNGEpO2ZvcihTVHQuc2V0KHIsZSksS25lLnNldChyLHdTKGUpKTtlOyl5aWVsZCByLGU9YXdhaXQoamdlLmdldChyKXx8ZS5jb250aW51ZSgpKSxqZ2UuZGVsZXRlKHIpfWZ1bmN0aW9uIE1UdCh0LGUpe3JldHVybiBlPT09U3ltYm9sLmFzeW5jSXRlcmF0b3ImJkZnZSh0LFtJREJJbmRleCxJREJPYmplY3RTdG9yZSxJREJDdXJzb3JdKXx8ZT09PSJpdGVyYXRlIiYmRmdlKHQsW0lEQkluZGV4LElEQk9iamVjdFN0b3JlXSl9dmFyIEZnZSx4VHQsdlR0LEJnZSxIZ2UsS25lLHFnZSx3UyxBNGEsRTRhLFZnZSxJNGEsa1R0LGpnZSxTVHQsUDRhLF9UdD11KCgpPT57RmdlPWkoKHQsZSk9PmUuc29tZShyPT50IGluc3RhbmNlb2YgciksImluc3RhbmNlT2ZBbnkiKTtpKHo0YSwiZ2V0SWRiUHJveHlhYmxlVHlwZXMiKTtpKF80YSwiZ2V0Q3Vyc29yQWR2YW5jZU1ldGhvZHMiKTtCZ2U9bmV3IFdlYWtNYXAsSGdlPW5ldyBXZWFrTWFwLEtuZT1uZXcgV2Vha01hcDtpKFQ0YSwicHJvbWlzaWZ5UmVxdWVzdCIpO2koTDRhLCJjYWNoZURvbmVQcm9taXNlRm9yVHJhbnNhY3Rpb24iKTtxZ2U9e2dldCh0LGUscil7aWYodCBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uKXtpZihlPT09ImRvbmUiKXJldHVybiBCZ2UuZ2V0KHQpO2lmKGU9PT0ic3RvcmUiKXJldHVybiByLm9iamVjdFN0b3JlTmFtZXNbMV0/dm9pZCAwOnIub2JqZWN0U3RvcmUoci5vYmplY3RTdG9yZU5hbWVzWzBdKX1yZXR1cm4gbzAodFtlXSl9LHNldCh0LGUscil7cmV0dXJuIHRbZV09ciwhMH0saGFzKHQsZSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmKGU9PT0iZG9uZSJ8fGU9PT0ic3RvcmUiKT8hMDplIGluIHR9fTtpKHlUdCwicmVwbGFjZVRyYXBzIik7aShENGEsIndyYXBGdW5jdGlvbiIpO2koJDRhLCJ0cmFuc2Zvcm1DYWNoYWJsZVZhbHVlIik7aShvMCwid3JhcCIpO3dTPWkodD0+S25lLmdldCh0KSwidW53cmFwIik7aShDVHQsIm9wZW5EQiIpO2koelR0LCJkZWxldGVEQiIpO0E0YT1bImdldCIsImdldEtleSIsImdldEFsbCIsImdldEFsbEtleXMiLCJjb3VudCJdLEU0YT1bInB1dCIsImFkZCIsImRlbGV0ZSIsImNsZWFyIl0sVmdlPW5ldyBNYXA7aSh3VHQsImdldE1ldGhvZCIpLHlUdCh0PT4oey4uLnQsZ2V0OmkoKGUscixhKT0+d1R0KGUscil8fHQuZ2V0KGUscixhKSwiZ2V0IiksaGFzOmkoKGUscik9PiEhd1R0KGUscil8fHQuaGFzKGUsciksImhhcyIpfSkpO0k0YT1bImNvbnRpbnVlIiwiY29udGludWVQcmltYXJ5S2V5IiwiYWR2YW5jZSJdLGtUdD17fSxqZ2U9bmV3IFdlYWtNYXAsU1R0PW5ldyBXZWFrTWFwLFA0YT17Z2V0KHQsZSl7aWYoIUk0YS5pbmNsdWRlcyhlKSlyZXR1cm4gdFtlXTtsZXQgcj1rVHRbZV07cmV0dXJuIHJ8fChyPWtUdFtlXT1mdW5jdGlvbiguLi5hKXtqZ2Uuc2V0KHRoaXMsU1R0LmdldCh0aGlzKVtlXSguLi5hKSl9KSxyfX07aShONGEsIml0ZXJhdGUiKTtpKE1UdCwiaXNJdGVyYXRvclByb3AiKSx5VHQodD0+KHsuLi50LGdldChlLHIsYSl7cmV0dXJuIE1UdChlLHIpP040YTp0LmdldChlLHIsYSl9LGhhcyhlLHIpe3JldHVybiBNVHQoZSxyKXx8dC5oYXMoZSxyKX19KSl9KTt2YXIgVWdlPXUoKCk9PntNYigpO3hTKCk7TGIoKTtHbigpO1pjKCk7cWYoKTtfVHQoKX0pO3ZhciBTUyxXZ2U9dSgoKT0+e1VnZSgpO1NTPWNsYXNze3N0YXRpY3tpKHRoaXMsIldlYlN0b3JlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5pbml0Q2FsbGVkPSExLHRoaXMucmVhZHlEZWZlcnJlZD14dC5kZWZlcigpLHRoaXMub3B0aW9ucz1lfWFzeW5jIGluaXQoKXtpZih0aGlzLmluaXRDYWxsZWQpe2F3YWl0IHRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlO3JldHVybn10aGlzLmluaXRDYWxsZWQ9ITA7bGV0IGU9bmV3IEMyLlNtYXJ0ZW52O2lmKCFlLmlzQnJvd3NlciYmIWdsb2JhbFRoaXMuaW5kZXhlZERCJiYoY29uc29sZS5sb2coImhleSIpLGNvbnNvbGUubG9nKGdsb2JhbFRoaXMuaW5kZXhlZERCKSxhd2FpdCBlLmdldFNhZmVOb2RlTW9kdWxlKCJmYWtlLWluZGV4ZWRkYi9hdXRvIiksIWdsb2JhbFRoaXMuaW5kZXhlZERCKSl7bGV0IHI9YXdhaXQgZS5nZXRTYWZlTm9kZU1vZHVsZSgiZmFrZS1pbmRleGVkZGIiKTtnbG9iYWxUaGlzLmluZGV4ZWREQj1uZXcgci5JREJGYWN0b3J5fXRoaXMuZGI9YXdhaXQga1Mub3BlbkRCKHRoaXMub3B0aW9ucy5kYk5hbWUsMSx7dXBncmFkZTppKHI9PntyLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfSwidXBncmFkZSIpfSksdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1hc3luYyBnZXQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZ2V0KHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsZSl9YXN5bmMgY2hlY2soZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLCEhYXdhaXQgdGhpcy5nZXQoZSl9YXN5bmMgc2V0KGUscil7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIucHV0KHRoaXMub3B0aW9ucy5zdG9yZU5hbWUscixlKX1hc3luYyBkZWxldGUoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZGVsZXRlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsZSl9YXN5bmMgY2xlYXIoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5jbGVhcih0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX1hc3luYyBrZXlzKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZ2V0QWxsS2V5cyh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX19fSk7dmFyIEdnZSxMVHQ9dSgoKT0+e1dnZSgpO1VnZSgpO0dnZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZHJlcXVlc3RDYWNoZSIpfWNvbnN0cnVjdG9yKGU9ImRlZmF1bHQiKXt0aGlzLndlYnN0b3JlPW5ldyBTUyh7ZGJOYW1lOiJ0clN0b3JlIixzdG9yZU5hbWU6YHRyU3RvcmUtJHtlfWB9KX1idWlsZEtleShlKXtyZXR1cm4gSHMuc3RyaW5naWZ5KHttZXRob2Q6ZS5tZXRob2QscmVxdWVzdDplLnJlcXVlc3R9KX1hc3luYyBzZXRCeVJlcXVlc3QoZSl7aWYoIWUucmVzcG9uc2UpdGhyb3cgbmV3IEVycm9yKCJZb3UgY2Fubm90IHN0b3JlIHJlcXVlc3RzIHdpdGhvdXQgYSByZXNwb25zZSBwcmVzZW50Iik7YXdhaXQgdGhpcy53ZWJzdG9yZS5zZXQodGhpcy5idWlsZEtleShlKSxlKX1hc3luYyBnZXRCeVJlcXVlc3QoZSl7cmV0dXJuIGF3YWl0IHRoaXMud2Vic3RvcmUuZ2V0KHRoaXMuYnVpbGRLZXkoZSkpfX19KTt2YXIgejI9e307VmUoejIse1R5cGVkcmVxdWVzdENhY2hlOigpPT5HZ2UsV2ViU3RvcmU6KCk9PlNTfSk7dmFyIFpuZT11KCgpPT57TFR0KCk7V2dlKCl9KTt2YXIgTVM9dSgoKT0+e05kKCk7eFMoKTtMYigpO0duKCk7Wm5lKCl9KTt2YXIgRGIsWG5lPXUoKCk9PntNUygpO0RiPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhY2hlU3RvcmUiKX1jb25zdHJ1Y3RvcihlPSJ3ZWJyZXF1ZXN0LXY0IixyPSJjYWNoZSIpe3RoaXMud2Vic3RvcmU9bmV3IHoyLldlYlN0b3JlKHtkYk5hbWU6ZSxzdG9yZU5hbWU6cn0pLHRoaXMuaW5pdFByb21pc2U9dGhpcy5pbml0KCl9YXN5bmMgaW5pdCgpe31nZW5lcmF0ZUNhY2hlS2V5KGUpe2xldCByPWUudXJsLGE9ZS5tZXRob2Q7cmV0dXJuIGE9PT0iR0VUIj9yOmAke2F9OiR7cn1gfWFzeW5jIHNldChlLHIpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5zZXQoZSxyKX1hc3luYyBnZXQoZSl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZTt0cnl7cmV0dXJuIGF3YWl0IHRoaXMud2Vic3RvcmUuZ2V0KGUpfHxudWxsfWNhdGNoe3JldHVybiBudWxsfX1hc3luYyBoYXMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5jaGVjayhlKX1hc3luYyBkZWxldGUoZSl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLmRlbGV0ZShlKX1hc3luYyBjbGVhcigpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5jbGVhcigpfXJlc3BvbnNlRnJvbUNhY2hlRW50cnkoZSl7bGV0IHI9bmV3IEhlYWRlcnMoZS5oZWFkZXJzKTtyZXR1cm4gbmV3IFJlc3BvbnNlKGUucmVzcG9uc2Use3N0YXR1czplLnN0YXR1cyxzdGF0dXNUZXh0OmUuc3RhdHVzVGV4dCxoZWFkZXJzOnJ9KX1hc3luYyBjYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUscixhKXtsZXQgcz1yLmNsb25lKCksbj1hd2FpdCBzLmFycmF5QnVmZmVyKCksbz17fTtyZXR1cm4gcy5oZWFkZXJzLmZvckVhY2goKGwsYyk9PntvW2NdPWx9KSx7cmVzcG9uc2U6bixoZWFkZXJzOm8sdGltZXN0YW1wOkRhdGUubm93KCksZXRhZzphPy5ldGFnfHxzLmhlYWRlcnMuZ2V0KCJldGFnIil8fHZvaWQgMCxsYXN0TW9kaWZpZWQ6YT8ubGFzdE1vZGlmaWVkfHxzLmhlYWRlcnMuZ2V0KCJsYXN0LW1vZGlmaWVkIil8fHZvaWQgMCxtYXhBZ2U6YT8ubWF4QWdlLHVybDplLHN0YXR1czpzLnN0YXR1cyxzdGF0dXNUZXh0OnMuc3RhdHVzVGV4dH19YXN5bmMgcHJ1bmVFeHBpcmVkKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdFByb21pc2UsMH19fSk7ZnVuY3Rpb24gTzRhKHQpe2xldCBlPXttYXhBZ2U6MCxpbW11dGFibGU6ITEsbm9DYWNoZTohMSxub1N0b3JlOiExLG11c3RSZXZhbGlkYXRlOiExfTtpZighdClyZXR1cm4gZTtsZXQgcj10LnRvTG93ZXJDYXNlKCkuc3BsaXQoIiwiKS5tYXAoYT0+YS50cmltKCkpO2ZvcihsZXQgYSBvZiByKWlmKGE9PT0ibm8tY2FjaGUiKWUubm9DYWNoZT0hMDtlbHNlIGlmKGE9PT0ibm8tc3RvcmUiKWUubm9TdG9yZT0hMDtlbHNlIGlmKGE9PT0iaW1tdXRhYmxlIillLmltbXV0YWJsZT0hMDtlbHNlIGlmKGE9PT0ibXVzdC1yZXZhbGlkYXRlIillLm11c3RSZXZhbGlkYXRlPSEwO2Vsc2UgaWYoYS5zdGFydHNXaXRoKCJtYXgtYWdlPSIpKXtsZXQgcz1wYXJzZUludChhLnNwbGl0KCI9IilbMV0sMTApO2lzTmFOKHMpfHwoZS5tYXhBZ2U9cyoxZTMpfXJldHVybiBlfWZ1bmN0aW9uIFI0YSh0KXtpZih0KXRyeXtyZXR1cm4gbmV3IERhdGUodCkuZ2V0VGltZSgpfWNhdGNoe3JldHVybn19ZnVuY3Rpb24gbDAodCl7bGV0IGU9dC5nZXQoImNhY2hlLWNvbnRyb2wiKSxyPXQuZ2V0KCJleHBpcmVzIiksYT10LmdldCgiZXRhZyIpLHM9dC5nZXQoImxhc3QtbW9kaWZpZWQiKSxuPU80YShlKTtpZihuLm1heEFnZT09PTAmJnIpe2xldCBvPVI0YShyKTtvJiYobi5tYXhBZ2U9TWF0aC5tYXgoMCxvLURhdGUubm93KCkpKX1yZXR1cm57bWF4QWdlOm4ubWF4QWdlfHwwLGV0YWc6YXx8dm9pZCAwLGxhc3RNb2RpZmllZDpzfHx2b2lkIDAsaW1tdXRhYmxlOm4uaW1tdXRhYmxlfHwhMSxub0NhY2hlOm4ubm9DYWNoZXx8ITEsbm9TdG9yZTpuLm5vU3RvcmV8fCExLG11c3RSZXZhbGlkYXRlOm4ubXVzdFJldmFsaWRhdGV8fCExfX1mdW5jdGlvbiBDUyh0LGUpe2lmKGUubm9TdG9yZSlyZXR1cm4hMTtpZihlLmltbXV0YWJsZSlyZXR1cm4hMDtsZXQgcj1EYXRlLm5vdygpLXQudGltZXN0YW1wLGE9dC5tYXhBZ2V8fGUubWF4QWdlfHwwO3JldHVybiBhPT09MD8hMTpyPGF9ZnVuY3Rpb24gelModCl7cmV0dXJuIHQubm9DYWNoZXx8dC5tdXN0UmV2YWxpZGF0ZX1mdW5jdGlvbiBKbmUodCl7bGV0IGU9e307cmV0dXJuIHQuZXRhZyYmKGVbImlmLW5vbmUtbWF0Y2giXT10LmV0YWcpLHQubGFzdE1vZGlmaWVkJiYoZVsiaWYtbW9kaWZpZWQtc2luY2UiXT10Lmxhc3RNb2RpZmllZCksZX1mdW5jdGlvbiBlb2UodCl7bGV0IGU9e307cmV0dXJuIHQuZm9yRWFjaCgocixhKT0+e2VbYV09cn0pLGV9ZnVuY3Rpb24gRFR0KHQpe2xldCBlPW5ldyBIZWFkZXJzO3JldHVybiBPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKChbcixhXSk9PntlLnNldChyLGEpfSksZX12YXIgdG9lPXUoKCk9PntpKE80YSwicGFyc2VDYWNoZUNvbnRyb2wiKTtpKFI0YSwicGFyc2VFeHBpcmVzIik7aShsMCwiZXh0cmFjdENhY2hlTWV0YWRhdGEiKTtpKENTLCJpc0ZyZXNoIik7aSh6UywicmVxdWlyZXNSZXZhbGlkYXRpb24iKTtpKEpuZSwiY3JlYXRlQ29uZGl0aW9uYWxIZWFkZXJzIik7aShlb2UsImhlYWRlcnNUb09iamVjdCIpO2koRFR0LCJvYmplY3RUb0hlYWRlcnMiKX0pO2Z1bmN0aW9uICRUdCh0KXtzd2l0Y2godCl7Y2FzZSJuZXR3b3JrLWZpcnN0IjpyZXR1cm4gbmV3IHJvZTtjYXNlImNhY2hlLWZpcnN0IjpyZXR1cm4gbmV3IFlnZTtjYXNlInN0YWxlLXdoaWxlLXJldmFsaWRhdGUiOnJldHVybiBuZXcgS2dlO2Nhc2UibmV0d29yay1vbmx5IjpyZXR1cm4gbmV3IFpnZTtjYXNlImNhY2hlLW9ubHkiOnJldHVybiBuZXcgUWdlO2RlZmF1bHQ6cmV0dXJuIG5ldyByb2V9fXZhciByb2UsWWdlLEtnZSxaZ2UsUWdlLEFUdD11KCgpPT57WG5lKCk7dG9lKCk7cm9lPWNsYXNze3N0YXRpY3tpKHRoaXMsIk5ldHdvcmtGaXJzdFN0cmF0ZWd5Iil9YXN5bmMgZXhlY3V0ZShlKXt0cnl7bGV0IHI9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCk7cmV0dXJuIHIub2smJmF3YWl0IHRoaXMuY2FjaGVSZXNwb25zZShlLHIpLHtyZXNwb25zZTpyLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19Y2F0Y2gocil7ZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIE5ldHdvcmsgZmFpbGVkLCB0cnlpbmcgY2FjaGU6IixyKTtsZXQgYT1hd2FpdCBlLmNhY2hlU3RvcmUuZ2V0KGUuY2FjaGVLZXkpO2lmKGEpcmV0dXJue3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KGEpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX07dGhyb3cgcn19YXN5bmMgY2FjaGVSZXNwb25zZShlLHIpe2xldCBhPWwwKHIuaGVhZGVycyk7aWYoYS5ub1N0b3JlKXJldHVybjtsZXQgcz1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLHIsYSk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LHMpfX0sWWdlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhY2hlRmlyc3RTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7bGV0IHI9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihyKXtsZXQgbj1sMChuZXcgSGVhZGVycyhyLmhlYWRlcnMpKTtpZihDUyhyLG4pKXJldHVybiBlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgaGl0IChmcmVzaCk6IixlLnJlcXVlc3QudXJsKSx7cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfTtpZih6UyhuKSYmKHIuZXRhZ3x8ci5sYXN0TW9kaWZpZWQpKXJldHVybiBhd2FpdCB0aGlzLnJldmFsaWRhdGUoZSxyKX1lLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgbWlzcywgZmV0Y2hpbmc6IixlLnJlcXVlc3QudXJsKTtsZXQgYT1hd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxzPWwwKGEuaGVhZGVycyk7aWYoIXMubm9TdG9yZSl7bGV0IG49YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxhLHMpO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxuKX1yZXR1cm57cmVzcG9uc2U6YSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGUoZSxyKXtsZXQgYT1KbmUocikscz1uZXcgUmVxdWVzdChlLnJlcXVlc3QudXJsLHttZXRob2Q6ZS5yZXF1ZXN0Lm1ldGhvZCxoZWFkZXJzOnsuLi5lb2UoZS5yZXF1ZXN0LmhlYWRlcnMpLC4uLmF9fSk7dHJ5e2xldCBuPWF3YWl0IGUuZmV0Y2hGbihzKTtpZihuLnN0YXR1cz09PTMwNClyZXR1cm4gZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIHJldmFsaWRhdGVkICgzMDQpOiIsZS5yZXF1ZXN0LnVybCksci50aW1lc3RhbXA9RGF0ZS5ub3coKSxhd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXkscikse3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMH07aWYobi5vayl7bGV0IG89bDAobi5oZWFkZXJzKTtpZighby5ub1N0b3JlKXtsZXQgbD1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLG4sbyk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LGwpfX1yZXR1cm57cmVzcG9uc2U6bixmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITB9fWNhdGNoKG4pe3JldHVybiBlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gUmV2YWxpZGF0aW9uIGZhaWxlZCwgdXNpbmcgY2FjaGU6IixuKSx7cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfX19fSxLZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiU3RhbGVXaGlsZVJldmFsaWRhdGVTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7bGV0IHI9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihyKXtsZXQgbj1lLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShyKTtyZXR1cm4gdGhpcy5yZXZhbGlkYXRlSW5CYWNrZ3JvdW5kKGUscikuY2F0Y2gobz0+e2UubG9nZ2luZyYmY29uc29sZS53YXJuKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gZmFpbGVkOiIsbyl9KSx7cmVzcG9uc2U6bixmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fWxldCBhPWF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpLHM9bDAoYS5oZWFkZXJzKTtpZighcy5ub1N0b3JlJiZhLm9rKXtsZXQgbj1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLGEscyk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LG4pfXJldHVybntyZXNwb25zZTphLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19YXN5bmMgcmV2YWxpZGF0ZUluQmFja2dyb3VuZChlLHIpe2xldCBhPWwwKG5ldyBIZWFkZXJzKHIuaGVhZGVycykpO2lmKCEoQ1MocixhKSYmIXpTKGEpKSl0cnl7bGV0IHM9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCk7aWYocy5vayl7bGV0IG49bDAocy5oZWFkZXJzKTtpZighbi5ub1N0b3JlKXtsZXQgbz1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLHMsbik7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LG8pLGUubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBjb21wbGV0ZToiLGUucmVxdWVzdC51cmwpfX19Y2F0Y2gocyl7ZS5sb2dnaW5nJiZjb25zb2xlLndhcm4oIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBmYWlsZWQ6IixzKX19fSxaZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiTmV0d29ya09ubHlTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7cmV0dXJue3Jlc3BvbnNlOmF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19fSxRZ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQ2FjaGVPbmx5U3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe2xldCByPWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBDYWNoZSBtaXNzIGZvciAke2UucmVxdWVzdC51cmx9IChjYWNoZS1vbmx5IG1vZGUpYCk7cmV0dXJue3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fTtpKCRUdCwiZ2V0U3RyYXRlZ3lIYW5kbGVyIil9KTt2YXIgJGIsWGdlPXUoKCk9PntYbmUoKTtBVHQoKTt0b2UoKTskYj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDYWNoZU1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuY2FjaGVTdG9yZT1uZXcgRGIoZSxyKX1hc3luYyBleGVjdXRlKGUscixhKXtsZXQgcz10aGlzLmRldGVybWluZVN0cmF0ZWd5KGUscik7aWYocz09PSJuZXR3b3JrLW9ubHkiKXJldHVybntyZXNwb25zZTphd2FpdCBhKGUpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX07bGV0IG49dGhpcy5nZW5lcmF0ZUNhY2hlS2V5KGUsciksbz0kVHQocyksbD17cmVxdWVzdDplLGNhY2hlS2V5Om4sY2FjaGVTdG9yZTp0aGlzLmNhY2hlU3RvcmUsZmV0Y2hGbjphLGxvZ2dpbmc6ci5sb2dnaW5nfTtyZXR1cm4gYXdhaXQgby5leGVjdXRlKGwpfWRldGVybWluZVN0cmF0ZWd5KGUscil7cmV0dXJuIHIuY2FjaGVTdHJhdGVneT9yLmNhY2hlU3RyYXRlZ3k6ci5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koci5jYWNoZSk6ZS5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZS5jYWNoZSk6Im5ldHdvcmstZmlyc3QifW1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZSl7c3dpdGNoKGUpe2Nhc2UiZGVmYXVsdCI6cmV0dXJuIm5ldHdvcmstZmlyc3QiO2Nhc2Uibm8tc3RvcmUiOmNhc2UicmVsb2FkIjpyZXR1cm4ibmV0d29yay1vbmx5IjtjYXNlIm5vLWNhY2hlIjpyZXR1cm4ibmV0d29yay1maXJzdCI7Y2FzZSJmb3JjZS1jYWNoZSI6cmV0dXJuImNhY2hlLWZpcnN0IjtjYXNlIm9ubHktaWYtY2FjaGVkIjpyZXR1cm4iY2FjaGUtb25seSI7ZGVmYXVsdDpyZXR1cm4ibmV0d29yay1maXJzdCJ9fWdlbmVyYXRlQ2FjaGVLZXkoZSxyKXtyZXR1cm4gci5jYWNoZUtleT90eXBlb2Ygci5jYWNoZUtleT09ImZ1bmN0aW9uIj9yLmNhY2hlS2V5KGUpOnIuY2FjaGVLZXk6dGhpcy5jYWNoZVN0b3JlLmdlbmVyYXRlQ2FjaGVLZXkoZSl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmNhY2hlU3RvcmUuY2xlYXIoKX1hc3luYyBkZWxldGUoZSl7YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmRlbGV0ZShlKX1hc3luYyBoYXMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVTdG9yZS5oYXMoZSl9Z2V0U3RvcmUoKXtyZXR1cm4gdGhpcy5jYWNoZVN0b3JlfX19KTtmdW5jdGlvbiBFVHQodCl7c3dpdGNoKHQpe2Nhc2UiZXhwb25lbnRpYWwiOnJldHVybiBuZXcgYW9lO2Nhc2UibGluZWFyIjpyZXR1cm4gbmV3IEpnZTtjYXNlImNvbnN0YW50IjpyZXR1cm4gbmV3IGViZTtkZWZhdWx0OnJldHVybiBuZXcgYW9lfX1mdW5jdGlvbiBJVHQodCxlPS4xKXtsZXQgcj10KmUqTWF0aC5yYW5kb20oKTtyZXR1cm4gdCtyfXZhciBhb2UsSmdlLGViZSxQVHQ9dSgoKT0+e2FvZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFeHBvbmVudGlhbEJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe2xldCBzPXIqTWF0aC5wb3coMixlLTEpO3JldHVybiBNYXRoLm1pbihzLGEpfX0sSmdlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkxpbmVhckJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe2xldCBzPXIqZTtyZXR1cm4gTWF0aC5taW4ocyxhKX19LGViZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDb25zdGFudEJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe3JldHVybiBNYXRoLm1pbihyLGEpfX07aShFVHQsImdldEJhY2tvZmZDYWxjdWxhdG9yIik7aShJVHQsImFkZEppdHRlciIpfSk7dmFyIEFiLHRiZT11KCgpPT57TVMoKTtQVHQoKTtBYj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJSZXRyeU1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlPXt9KXt0aGlzLm9wdGlvbnM9e21heEF0dGVtcHRzOmUubWF4QXR0ZW1wdHM/PzMsYmFja29mZjplLmJhY2tvZmY/PyJleHBvbmVudGlhbCIsaW5pdGlhbERlbGF5OmUuaW5pdGlhbERlbGF5Pz8xZTMsbWF4RGVsYXk6ZS5tYXhEZWxheT8/M2U0LHJldHJ5T246ZS5yZXRyeU9uPz9bNDA4LDQyOSw1MDAsNTAyLDUwMyw1MDRdLG9uUmV0cnk6ZS5vblJldHJ5Pz8oKCk9Pnt9KX19YXN5bmMgZXhlY3V0ZShlLHIpe2xldCBhLHM7Zm9yKGxldCBuPTE7bjw9dGhpcy5vcHRpb25zLm1heEF0dGVtcHRzO24rKyl0cnl7bGV0IG89YXdhaXQgZSgpO2lmKG8gaW5zdGFuY2VvZiBSZXNwb25zZSYmdGhpcy5zaG91bGRSZXRyeVJlc3BvbnNlKG8pKXtpZihzPW8sbj09PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0cylyZXR1cm4gbztsZXQgbD10aGlzLmNhbGN1bGF0ZURlbGF5KG4pO3RoaXMub3B0aW9ucy5vblJldHJ5KG4sbmV3IEVycm9yKGBIVFRQICR7by5zdGF0dXN9YCksbCksYXdhaXQgdGhpcy5kZWxheShsKTtjb250aW51ZX1yZXR1cm4gb31jYXRjaChvKXthPW8gaW5zdGFuY2VvZiBFcnJvcj9vOm5ldyBFcnJvcihTdHJpbmcobykpO2xldCBsPXI/cihvLG4pOnRoaXMuc2hvdWxkUmV0cnlFcnJvcihvKTtpZihuPT09dGhpcy5vcHRpb25zLm1heEF0dGVtcHRzfHwhbCl0aHJvdyBhO2xldCBjPXRoaXMuY2FsY3VsYXRlRGVsYXkobik7dGhpcy5vcHRpb25zLm9uUmV0cnkobixhLGMpLGF3YWl0IHRoaXMuZGVsYXkoYyl9dGhyb3cgYXx8bmV3IEVycm9yKCJNYXggcmV0cnkgYXR0ZW1wdHMgcmVhY2hlZCIpfWFzeW5jIGV4ZWN1dGVXaXRoRmFsbGJhY2tzKGUscixhKXtpZihlLmxlbmd0aD09PTApdGhyb3cgbmV3IEVycm9yKCJObyBVUkxzIHByb3ZpZGVkIGZvciBmYWxsYmFjayBleGVjdXRpb24iKTtsZXQgcyxuPVtdO2ZvcihsZXQgbyBvZiBlKXRyeXtsZXQgbD1hd2FpdCB0aGlzLmV4ZWN1dGUoYXN5bmMoKT0+YXdhaXQgYShvLHIpKTtpZihsLnN0YXR1czw0MDB8fGwuc3RhdHVzPj00MDAmJmwuc3RhdHVzPDUwMCYmbC5zdGF0dXMhPT00MDgpcmV0dXJuIGw7bi5wdXNoKG8pLHM9bmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAke2wuc3RhdHVzfWApfWNhdGNoKGwpe24ucHVzaChvKSxzPWwgaW5zdGFuY2VvZiBFcnJvcj9sOm5ldyBFcnJvcihTdHJpbmcobCkpfXRocm93IG5ldyBFcnJvcihgQWxsIFVSTHMgZmFpbGVkOiAke24uam9pbigiLCAiKX0uIExhc3QgZXJyb3I6ICR7cz8ubWVzc2FnZXx8IlVua25vd24gZXJyb3IifWApfXNob3VsZFJldHJ5UmVzcG9uc2UoZSl7bGV0IHI9dGhpcy5vcHRpb25zLnJldHJ5T247cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3IoZSk6QXJyYXkuaXNBcnJheShyKT9yLmluY2x1ZGVzKGUuc3RhdHVzKTohMX1zaG91bGRSZXRyeUVycm9yKGUpe2lmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3ImJmUubWVzc2FnZS5pbmNsdWRlcygiZmV0Y2giKXx8ZS5uYW1lPT09IkFib3J0RXJyb3IifHxlLm1lc3NhZ2UuaW5jbHVkZXMoInRpbWVvdXQiKSlyZXR1cm4hMDtsZXQgcj10aGlzLm9wdGlvbnMucmV0cnlPbjtyZXR1cm4gdHlwZW9mIHI9PSJmdW5jdGlvbiI/cih2b2lkIDAsZSk6ITF9Y2FsY3VsYXRlRGVsYXkoZSl7bGV0IGE9RVR0KHRoaXMub3B0aW9ucy5iYWNrb2ZmKS5jYWxjdWxhdGUoZSx0aGlzLm9wdGlvbnMuaW5pdGlhbERlbGF5LHRoaXMub3B0aW9ucy5tYXhEZWxheSk7cmV0dXJuIElUdChhKX1hc3luYyBkZWxheShlKXthd2FpdCBLdC5kZWxheUZvcihlKX19fSk7dmFyIEViLHJiZT11KCgpPT57TVMoKTtFYj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJSZXF1ZXN0RGVkdXBsaWNhdG9yIil9Y29uc3RydWN0b3IoKXt0aGlzLmluRmxpZ2h0UmVxdWVzdHM9bmV3IE1hcH1nZW5lcmF0ZUtleShlKXtsZXQgcj1lLnVybCxhPWUubWV0aG9kO3JldHVybiBhPT09IkdFVCJ8fGE9PT0iSEVBRCI/YCR7YX06JHtyfWA6YCR7YX06JHtyfToke0RhdGUubm93KCl9YH1hc3luYyBleGVjdXRlKGUscil7bGV0IGE9dGhpcy5pbkZsaWdodFJlcXVlc3RzLmdldChlKTtpZihhKXJldHVybntyZXNwb25zZTooYXdhaXQgYS5wcm9taXNlKS5jbG9uZSgpLHdhc0RlZHVwbGljYXRlZDohMH07bGV0IHM9eHQuZGVmZXIoKTt0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2V0KGUscyk7dHJ5e2xldCBuPWF3YWl0IHIoKTtyZXR1cm4gcy5yZXNvbHZlKG4pLHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5kZWxldGUoZSkse3Jlc3BvbnNlOm4sd2FzRGVkdXBsaWNhdGVkOiExfX1jYXRjaChuKXt0aHJvdyBzLnJlamVjdChuKSx0aGlzLmluRmxpZ2h0UmVxdWVzdHMuZGVsZXRlKGUpLG59fWlzSW5GbGlnaHQoZSl7cmV0dXJuIHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5oYXMoZSl9Z2V0SW5GbGlnaHRDb3VudCgpe3JldHVybiB0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2l6ZX1jbGVhcigpe3RoaXMuaW5GbGlnaHRSZXF1ZXN0cy5jbGVhcigpfX19KTtmdW5jdGlvbiBGNGEodCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcixyPW5ldyBLdC5UaW1lb3V0KHQsbnVsbCk7cmV0dXJuIHIucHJvbWlzZS50aGVuKCgpPT57ZS5hYm9ydCgpfSkse2NvbnRyb2xsZXI6ZSxjbGVhbnVwOmkoKCk9PntyLmNhbmNlbCgpfSwiY2xlYW51cCIpfX1hc3luYyBmdW5jdGlvbiBhYmUodCxlLHIpe2xldHtjb250cm9sbGVyOmEsY2xlYW51cDpzfT1GNGEocik7dHJ5e2xldCBuPWF3YWl0IGZldGNoKHQsey4uLmUsc2lnbmFsOmEuc2lnbmFsfSk7cmV0dXJuIHMoKSxufWNhdGNoKG4pe3Rocm93IHMoKSxuIGluc3RhbmNlb2YgRXJyb3ImJm4ubmFtZT09PSJBYm9ydEVycm9yIj9uZXcgRXJyb3IoYFJlcXVlc3QgdGltZW91dCBhZnRlciAke3J9bXM6ICR7dH1gKTpufX12YXIgTlR0PXUoKCk9PntNUygpO2koRjRhLCJjcmVhdGVUaW1lb3V0Q29udHJvbGxlciIpO2koYWJlLCJmZXRjaFdpdGhUaW1lb3V0Iil9KTt2YXIgaWgsaWJlPXUoKCk9PntDZ2UoKTtYZ2UoKTt0YmUoKTtyYmUoKTtOVHQoKTtpaD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXZWJyZXF1ZXN0Q2xpZW50Iil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy5kZWZhdWx0T3B0aW9ucz1lLHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyPW5ldyBfYix0aGlzLmNhY2hlTWFuYWdlcj1uZXcgJGIsdGhpcy5kZWR1cGxpY2F0b3I9bmV3IEVifWFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5hZGRSZXF1ZXN0SW50ZXJjZXB0b3IoZSl9YWRkUmVzcG9uc2VJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpfWFkZEVycm9ySW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkRXJyb3JJbnRlcmNlcHRvcihlKX1yZW1vdmVSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKGUpfXJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcihlKX1yZW1vdmVFcnJvckludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZUVycm9ySW50ZXJjZXB0b3IoZSl9Y2xlYXJJbnRlcmNlcHRvcnMoKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5jbGVhckFsbCgpfWFzeW5jIGNsZWFyQ2FjaGUoKXthd2FpdCB0aGlzLmNhY2hlTWFuYWdlci5jbGVhcigpfWFzeW5jIHJlcXVlc3QoZSxyPXt9KXtsZXQgYT17Li4udGhpcy5kZWZhdWx0T3B0aW9ucywuLi5yfSxzO2lmKHR5cGVvZiBlPT0ic3RyaW5nIj9zPW5ldyBSZXF1ZXN0KGUsYSk6cz1lLHM9YXdhaXQgdGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucHJvY2Vzc1JlcXVlc3QocyksYS5pbnRlcmNlcHRvcnM/LnJlcXVlc3QpZm9yKGxldCBvIG9mIGEuaW50ZXJjZXB0b3JzLnJlcXVlc3Qpcz1hd2FpdCBvKHMpO2lmKGEuZGVkdXBsaWNhdGU/PyExKXtsZXQgbz10aGlzLmRlZHVwbGljYXRvci5nZW5lcmF0ZUtleShzKTtyZXR1cm4oYXdhaXQgdGhpcy5kZWR1cGxpY2F0b3IuZXhlY3V0ZShvLGFzeW5jKCk9PmF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QocyxhKSkpLnJlc3BvbnNlfXJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KHMsYSl9YXN5bmMgZXhlY3V0ZVJlcXVlc3QoZSxyKXt0cnl7bGV0IGE9dHlwZW9mIHIucmV0cnk9PSJvYmplY3QiP3IucmV0cnk6ci5yZXRyeT97fTp2b2lkIDAscz1pKGFzeW5jIGw9PntsZXQgYz1yLnRpbWVvdXQ/PzZlNDtyZXR1cm4gYXdhaXQgYWJlKGwudXJsLHttZXRob2Q6bC5tZXRob2QsaGVhZGVyczpsLmhlYWRlcnMsYm9keTpsLmJvZHksLi4ucn0sYyl9LCJmZXRjaEZuRm9yUmVxdWVzdCIpLG49aShhc3luYyhsLGMpPT57bGV0IGQ9ci50aW1lb3V0Pz82ZTQ7cmV0dXJuIGF3YWl0IGFiZShsLGMsZCl9LCJmZXRjaEZuRm9yRmFsbGJhY2tzIiksbztpZihhKXtsZXQgbD1uZXcgQWIoYSk7aWYoci5mYWxsYmFja1VybHMmJnIuZmFsbGJhY2tVcmxzLmxlbmd0aD4wKXtsZXQgYz1bZS51cmwsLi4uci5mYWxsYmFja1VybHNdO289YXdhaXQgbC5leGVjdXRlV2l0aEZhbGxiYWNrcyhjLHttZXRob2Q6ZS5tZXRob2QsaGVhZGVyczplLmhlYWRlcnMsYm9keTplLmJvZHksLi4ucn0sbil9ZWxzZSBvPWF3YWl0IGwuZXhlY3V0ZShhc3luYygpPT4oYXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuZXhlY3V0ZShlLHIscykpLnJlc3BvbnNlKX1lbHNlIG89KGF3YWl0IHRoaXMuY2FjaGVNYW5hZ2VyLmV4ZWN1dGUoZSxyLHMpKS5yZXNwb25zZTtpZihvPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXNwb25zZShvKSxyLmludGVyY2VwdG9ycz8ucmVzcG9uc2UpZm9yKGxldCBsIG9mIHIuaW50ZXJjZXB0b3JzLnJlc3BvbnNlKW89YXdhaXQgbChvKTtyZXR1cm4gb31jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLmludGVyY2VwdG9yTWFuYWdlci5wcm9jZXNzRXJyb3IoYSBpbnN0YW5jZW9mIEVycm9yP2E6bmV3IEVycm9yKFN0cmluZyhhKSkpfX1hc3luYyBnZXRKc29uKGUscj17fSl7bGV0IGE9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLnIsbWV0aG9kOiJHRVQiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX19KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX1hc3luYyBwb3N0SnNvbihlLHIsYT17fSl7bGV0IHM9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5hLmhlYWRlcnN8fHt9fSxib2R5OkpTT04uc3RyaW5naWZ5KHIpfSk7aWYoIXMub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7cy5zdGF0dXN9OiAke3Muc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgcy5qc29uKCl9YXN5bmMgcHV0SnNvbihlLHIsYT17fSl7bGV0IHM9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLmEuaGVhZGVyc3x8e319LGJvZHk6SlNPTi5zdHJpbmdpZnkocil9KTtpZighcy5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtzLnN0YXR1c306ICR7cy5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBzLmpzb24oKX1hc3luYyBkZWxldGVKc29uKGUscj17fSl7bGV0IGE9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLnIsbWV0aG9kOiJERUxFVEUiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX19KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX19fSk7YXN5bmMgZnVuY3Rpb24gcTEodCxlKXtsZXQgcj10IGluc3RhbmNlb2YgUmVxdWVzdD90LnVybDpTdHJpbmcodCksYT10IGluc3RhbmNlb2YgUmVxdWVzdD90Om5ldyBSZXF1ZXN0KHIsZSk7cmV0dXJuIGF3YWl0IF8yLnJlcXVlc3QoYSxlKX12YXIgXzIsT1R0PXUoKCk9PntpYmUoKTtfMj1uZXcgaWg7aShxMSwid2VicmVxdWVzdCIpLHExLmdldEpzb249YXN5bmMgZnVuY3Rpb24odCxlKXtyZXR1cm4gYXdhaXQgXzIuZ2V0SnNvbih0LGUpfSxxMS5wb3N0SnNvbj1hc3luYyBmdW5jdGlvbih0LGUscil7cmV0dXJuIGF3YWl0IF8yLnBvc3RKc29uKHQsZSxyKX0scTEucHV0SnNvbj1hc3luYyBmdW5jdGlvbih0LGUscil7cmV0dXJuIGF3YWl0IF8yLnB1dEpzb24odCxlLHIpfSxxMS5kZWxldGVKc29uPWFzeW5jIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGF3YWl0IF8yLmRlbGV0ZUpzb24odCxlKX0scTEuYWRkUmVxdWVzdEludGVyY2VwdG9yPWZ1bmN0aW9uKHQpe18yLmFkZFJlcXVlc3RJbnRlcmNlcHRvcih0KX0scTEuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcj1mdW5jdGlvbih0KXtfMi5hZGRSZXNwb25zZUludGVyY2VwdG9yKHQpfSxxMS5hZGRFcnJvckludGVyY2VwdG9yPWZ1bmN0aW9uKHQpe18yLmFkZEVycm9ySW50ZXJjZXB0b3IodCl9LHExLmNsZWFySW50ZXJjZXB0b3JzPWZ1bmN0aW9uKCl7XzIuY2xlYXJJbnRlcmNlcHRvcnMoKX0scTEuY2xlYXJDYWNoZT1hc3luYyBmdW5jdGlvbigpe2F3YWl0IF8yLmNsZWFyQ2FjaGUoKX0scTEuY3JlYXRlQ2xpZW50PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaWgodCl9LHExLmdldERlZmF1bHRDbGllbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gXzJ9fSk7dmFyIFQyPXt9O1ZlKFQyLHtDYWNoZU1hbmFnZXI6KCk9PiRiLENhY2hlU3RvcmU6KCk9PkRiLEludGVyY2VwdG9yTWFuYWdlcjooKT0+X2IsUmVxdWVzdERlZHVwbGljYXRvcjooKT0+RWIsUmV0cnlNYW5hZ2VyOigpPT5BYixXZWJyZXF1ZXN0Q2xpZW50OigpPT5paCxjcmVhdGVDb25kaXRpb25hbEhlYWRlcnM6KCk9PkpuZSxleHRyYWN0Q2FjaGVNZXRhZGF0YTooKT0+bDAsaGVhZGVyc1RvT2JqZWN0OigpPT5lb2UsaXNGcmVzaDooKT0+Q1Msb2JqZWN0VG9IZWFkZXJzOigpPT5EVHQscmVxdWlyZXNSZXZhbGlkYXRpb246KCk9PnpTLHdlYnJlcXVlc3Q6KCk9PnExfSk7dmFyIGlvZT11KCgpPT57T1R0KCk7aWJlKCk7WGdlKCk7WG5lKCk7dGJlKCk7Q2dlKCk7cmJlKCk7dG9lKCl9KTt2YXIgbHUsY3U9dSgoKT0+e3FmKCk7bHU9R2EodmsoKSwxKTtNYigpO3dnZSgpO05kKCk7TWdlKCk7R24oKTtpb2UoKX0pO3ZhciBMMixJYj11KCgpPT57Y3UoKTtMMj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJlc3BvbnNlRXJyb3IiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuZXJyb3JUZXh0PWUsdGhpcy5lcnJvckRhdGE9cn19fSk7dmFyIG5vZSxSVHQ9dSgoKT0+e0liKCk7Y3UoKTtub2U9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRUb29scyIpfWNvbnN0cnVjdG9yKCl7dGhpcy5sb2NhbERhdGE9e319YXN5bmMgcGFzc0d1YXJkcyhlLHIpe2xldCBhPW5ldyBqZC5HdWFyZFNldChlKTtpZighYXdhaXQgYS5hbGxHdWFyZHNQYXNzKHIpKXtsZXQgbj1hd2FpdCBhLmdldEZhaWxlZEhpbnQocik7dGhyb3cgbmV3IEwyKGBndWFyZCBmYWlsZWQ6ICR7bn1gLHtmYWlsZWRIaW50Om59KX19fX0pO3ZhciBzYmUsbmJlPXUoKCk9PntjdSgpO0liKCk7UlR0KCk7c2JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkSGFuZGxlciIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5tZXRob2Q9ZSx0aGlzLmhhbmRsZXJGdW5jdGlvbj1yfWFzeW5jIGFkZFJlc3BvbnNlKGUpe2lmKGUubWV0aG9kIT09dGhpcy5tZXRob2QpdGhyb3cgbmV3IEVycm9yKCJ0aGlzIGhhbmRsZXIgaGFzIGJlZW4gZ2l2ZW4gYSB3cm9uZyBtZXRob2QgdG8gYW5zd2VyIHRvLiBQbGVhc2UgdXNlIGEgVHlwZWRSb3V0ZXIgdG8gZmlsdGVyIHJlcXVlc3RzIik7bGV0IHIsYT1uZXcgbm9lO2UubG9jYWxEYXRhJiYoYS5sb2NhbERhdGE9ZS5sb2NhbERhdGEpO2xldCBzPWF3YWl0IHRoaXMuaGFuZGxlckZ1bmN0aW9uKGUucmVxdWVzdCxhKS5jYXRjaChuPT57biBpbnN0YW5jZW9mIEwyP3I9bjpjb25zb2xlLmxvZyhuKX0pO3JldHVybiByJiYoZS5lcnJvcj17dGV4dDpyLmVycm9yVGV4dCxkYXRhOnIuZXJyb3JEYXRhfSkscyYmKGUucmVzcG9uc2U9cyksZT8uY29ycmVsYXRpb24/LnBoYXNlJiYoZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiKSxlfX19KTt2YXIgc2gsX1M9dSgoKT0+e2N1KCk7b29lKCk7bmJlKCk7b2JlKCk7SWIoKTtzaD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIlR5cGVkUm91dGVyIil9Y29uc3RydWN0b3IoKXt0aGlzLmhvb2tzPXt9LHRoaXMucm91dGVyTWFwPW5ldyBGYS5PYmplY3RNYXAsdGhpcy5oYW5kbGVyTWFwPW5ldyBGYS5PYmplY3RNYXAsdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXM9bmV3IEZhLk9iamVjdE1hcCx0aGlzLm1pZGRsZXdhcmVzPVtdLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXA9bmV3IEZhLkludGVyZXN0TWFwKGU9PmUpfXN0YXRpYyBnZXQgZ2xvYmFsSG9va3MoKXtyZXR1cm4gZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N8fChnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fSksZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N9c3RhdGljIHNldCBnbG9iYWxIb29rcyhlKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz1lfXN0YXRpYyBzZXRHbG9iYWxIb29rcyhlKXtsZXQgcj10Lmdsb2JhbEhvb2tzO3QuZ2xvYmFsSG9va3M9ey4uLnIsLi4uZX19c3RhdGljIGNsZWFyR2xvYmFsSG9va3MoKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fX1zZXRIb29rcyhlKXt0aGlzLmhvb2tzPXsuLi50aGlzLmhvb2tzLC4uLmV9fWNhbGxIb29rKGUscil7dHJ5e3QuZ2xvYmFsSG9va3NbZV0/LihyKSx0aGlzLmhvb2tzW2VdPy4ocil9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihgVHlwZWRSb3V0ZXIgaG9vayBlcnJvciAoJHtlfSk6YCxhKX19YWRkTWlkZGxld2FyZShlKXt0aGlzLm1pZGRsZXdhcmVzLnB1c2goZSl9YWRkVHlwZWRIYW5kbGVyKGUpe2lmKHRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUubWV0aG9kKSl0aHJvdyBuZXcgRXJyb3IoYGEgVHlwZWRIYW5kbGVyIGZvciAke2UubWV0aG9kfSBhbHJlZHkgZXhpc3RzISBDYW4ndCBhZGQgYW5vdGhlciBvbmUuYCk7dGhpcy5oYW5kbGVyTWFwLmFkZChlKX1hZGRUeXBlZFJvdXRlcihlKXt0aGlzLnJvdXRlck1hcC5maW5kU3luYyhhPT5hPT09ZSl8fCh0aGlzLnJvdXRlck1hcC5hZGQoZSksZS5hZGRUeXBlZFJvdXRlcih0aGlzKSl9Y2hlY2tGb3JUeXBlZEhhbmRsZXIoZSl7cmV0dXJuISF0aGlzLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlKX1nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSxyPVtdKXtyLnB1c2godGhpcyk7bGV0IGE7cmV0dXJuIGE9dGhpcy5oYW5kbGVyTWFwLmZpbmRTeW5jKHM9PnMubWV0aG9kPT09ZSksYXx8dGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKS5mb3JFYWNoKHM9PnshYSYmIXIuaW5jbHVkZXMocykmJihhPXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUscikpfSksYX1nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZSxyPVtdKXtyLnB1c2godGhpcyk7bGV0IGE9dGhpcy5oYW5kbGVyTWFwLmZpbmRTeW5jKHM9PnMubWV0aG9kPT09ZSk7aWYoYSlyZXR1cm57aGFuZGxlcjphLHJvdXRlcjp0aGlzfTtmb3IobGV0IHMgb2YgdGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKSlpZighci5pbmNsdWRlcyhzKSl7bGV0IG49cy5nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZSxyKTtpZihuKXJldHVybiBufXJldHVybiBudWxsfXN0YXRpY3t0aGlzLmRlZmF1bHRSb3V0ZU9wdGlvbnM9e2xvY2FsUmVxdWVzdDohMSxza2lwSG9va3M6ITF9fWFzeW5jIHJvdXRlQW5kQWRkUmVzcG9uc2UoZSxyPXt9KXtsZXQgYT17Li4udC5kZWZhdWx0Um91dGVPcHRpb25zLC4uLnJ9O2lmKGU9RDIuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxlLmxvY2FsRGF0YT1lLmxvY2FsRGF0YXx8e30sZS5sb2NhbERhdGEuZmlyc3RUeXBlZHJvdXRlcj10aGlzLGUubWV0aG9kPT09IiMjVmlydHVhbFN0cmVhbSMjIil7bGV0IHM9YXdhaXQgdGhpcy5oYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QoZSk7cmV0dXJuIHMubG9jYWxEYXRhPW51bGwsc31pZihlPy5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVxdWVzdCJ8fGEubG9jYWxSZXF1ZXN0KXtsZXQgcz1EYXRlLm5vdygpO2Euc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDpzLHBheWxvYWQ6ZS5yZXF1ZXN0fSk7bGV0IG49dGhpcy5nZXRUeXBlZEhhbmRsZXJBbmRSb3V0ZXIoZS5tZXRob2QpO2lmKCFuKXJldHVybiBjb25zb2xlLmxvZyhgQ2Fubm90IGZpbmQgaGFuZGxlciBmb3IgbWV0aG9kbmFtZSAke2UubWV0aG9kfWApLGUuZXJyb3I9e3RleHQ6IlRoZXJlIGlzIG5vIGF2YWlsYWJsZSBtZXRob2QgZm9yIHRoaXMgY2FsbCBvbiB0aGUgc2VydmVyIHNpZGUiLGRhdGE6e319LGUuY29ycmVsYXRpb24ucGhhc2U9InJlc3BvbnNlIixlLmxvY2FsRGF0YT1udWxsLGU9RDIuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXMscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlO2xldHtoYW5kbGVyOm8scm91dGVyOmx9PW47aWYobC5taWRkbGV3YXJlcy5sZW5ndGg+MCl0cnl7Zm9yKGxldCBjIG9mIGwubWlkZGxld2FyZXMpYXdhaXQgYyhlKX1jYXRjaChjKXtyZXR1cm4gYyBpbnN0YW5jZW9mIEwyP2UuZXJyb3I9e3RleHQ6Yy5lcnJvclRleHQsZGF0YTpjLmVycm9yRGF0YXx8e319OmUuZXJyb3I9e3RleHQ6Yy5tZXNzYWdlfHwiTWlkZGxld2FyZSBlcnJvciIsZGF0YTp7fX0sZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLGUubG9jYWxEYXRhPW51bGwsZT1EMi5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcyxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGV9cmV0dXJuIGU9YXdhaXQgby5hZGRSZXNwb25zZShlKSxlLmxvY2FsRGF0YT1udWxsLGU9RDIuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXMscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlfWVsc2UgcmV0dXJuIGU/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXNwb25zZSI/KGEuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCkscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSx0aGlzLmZpcmVFdmVudEludGVyZXN0TWFwLmZpbmRJbnRlcmVzdChlLmNvcnJlbGF0aW9uLmlkKT8uZnVsbGZpbGxJbnRlcmVzdChlKSxudWxsKTooY29uc29sZS5sb2coInJlY2VpdmVkIHdlaXJkbHkgc2hhcGVkIHJlcXVlc3QiKSxjb25zb2xlLmxvZyhlKSxudWxsKX1hc3luYyBoYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QoZSl7bGV0IHI9YXdhaXQgdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZmluZChhc3luYyBzPT5zLnN0cmVhbUlkPT09ZS5yZXF1ZXN0LnN0cmVhbUlkKTtpZihyKWNvbnNvbGUubG9nKGBzdWNjZXNzOiBmb3VuZCByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSB3aXRoIGlkICR7ZS5yZXF1ZXN0LnN0cmVhbUlkfWApO2Vsc2UgcmV0dXJuIGNvbnNvbGUubG9nKGBubyByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSBmb3VuZCBmb3Igc3RyZWFtIHdpdGggaWQgJHtlLnJlcXVlc3Quc3RyZWFtSWR9YCksY29uc29sZS5sb2codGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZ2V0QXJyYXkoKSksZTtyZXR1cm4gYXdhaXQgci5oYW5kbGVTdHJlYW1UcihlKX19fSk7dmFyIEZUdCxEMixvb2U9dSgoKT0+e2N1KCk7X1MoKTtGVHQ9IiMjIyMjIyMjIyMjIyNDTE9TSU5HIEJJVCMjIyMjIyMjIyMjIyMiLEQyPWNsYXNzIHR7c3RhdGlje2kodGhpcywiVmlydHVhbFN0cmVhbSIpfXN0YXRpYyBlbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHIsYSxzPVtdKXtyZXR1cm4hZXx8TTIuaXNCdWZmZXJMaWtlKGUpP2U6ZSBpbnN0YW5jZW9mIHQ/KCFlLnNpZGUmJnIuc2VuZE1ldGhvZCYmKGUuc2lkZT0icmVxdWVzdGluZyIsZS5zZW5kTWV0aG9kPXIuc2VuZE1ldGhvZCksIWUuc2lkZSYmci50eXBlZHJvdXRlciYmKGUuc2lkZT0icmVzcG9uZGluZyIsZS50eXBlZHJvdXRlcj1yLnR5cGVkcm91dGVyLHIudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChlKSksIWEucmVzcG9uc2V8fHMuaW5jbHVkZXMoInJlc3BvbnNlIik/KGUuc3RhcnRLZWVwQWxpdmVMb29wKCkse19pc1ZpcnR1YWxTdHJlYW06ITAsc3RyZWFtSWQ6ZS5zdHJlYW1JZH0pOntfT0JNSVRURURfVklSVFVBTF9TVFJFQU06ITAscmVhc29uOiJwYXRoIGlzIHVuZGVyIC5yZXF1ZXN0OiBvYm1pdHRlZCBmb3IgZGVkdXBsaWNhdGlvbiByZWFzb25zIGluIHJlc3BvbnNlIGN5Y2xlLiJ9KTpBcnJheS5pc0FycmF5KGUpP2UubWFwKChuLG8pPT50LmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKG4scixhfHxlLHMuY29uY2F0KFN0cmluZyhvKSkpKTplIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiP09iamVjdC5lbnRyaWVzKGUpLnJlZHVjZSgobixbbyxsXSk9PntsZXQgYz1zLmNvbmNhdChvKTtyZXR1cm4gbltvXT10LmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGwscixhfHxlLGMpLG59LHt9KTplfXN0YXRpYyBkZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZSxyKXtpZihNMi5pc0J1ZmZlckxpa2UoZSl8fGUgaW5zdGFuY2VvZiBzaClyZXR1cm4gZTtpZihlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiKXtpZihlIGluc3RhbmNlb2YgU2V0fHxlIGluc3RhbmNlb2YgTWFwfHxlIGluc3RhbmNlb2YgRGF0ZXx8ZSBpbnN0YW5jZW9mIFJlZ0V4cHx8ZSBpbnN0YW5jZW9mIEVycm9yfHxlIGluc3RhbmNlb2YgUHJvbWlzZXx8dHlwZW9mIGUudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gZTtpZihlLl9pc1ZpcnR1YWxTdHJlYW0pe2xldCBhPW5ldyB0O3JldHVybiBhLnN0cmVhbUlkPWUuc3RyZWFtSWQsIWEuc2lkZSYmci5zZW5kTWV0aG9kJiYoYS5zaWRlPSJyZXF1ZXN0aW5nIixhLnNlbmRNZXRob2Q9ci5zZW5kTWV0aG9kKSwhYS5zaWRlJiZyLnR5cGVkcm91dGVyJiYoYS5zaWRlPSJyZXNwb25kaW5nIixhLnR5cGVkcm91dGVyPXIudHlwZWRyb3V0ZXIsci50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuYWRkKGEpKSxhLnN0YXJ0S2VlcEFsaXZlTG9vcCgpLGF9ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgYT1bXTtmb3IobGV0IHMgb2YgZSlhLnB1c2godC5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsocyxyKSk7cmV0dXJuIGF9ZWxzZSByZXR1cm4gT2JqZWN0LmtleXMoZSkucmVkdWNlKChhLHMpPT4oYVtzXT10LmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlW3NdLHIpLGEpLHt9KX1lbHNlIHJldHVybiBlfWNvbnN0cnVjdG9yKCl7dGhpcy5zdHJlYW1JZD1sdS51bmkoKSx0aGlzLmtlZXBBbGl2ZT0hMCx0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXk9bmV3IEZhLkJhY2twcmVzc3VyZWRBcnJheSgxNiksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5PW5ldyBGYS5CYWNrcHJlc3N1cmVkQXJyYXkoMTYpfXN0YXRpYyByZWNvbnN0aXR1dGVCaW5hcnlEYXRhKGUpe2lmKGU9PW51bGx8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx0eXBlb2YgQnVmZmVyPCJ1IiYmQnVmZmVyLmlzQnVmZmVyKGUpKXJldHVybiBlO2lmKHR5cGVvZiBlPT0ib2JqZWN0Iil7aWYoZS50eXBlPT09IkJ1ZmZlciImJkFycmF5LmlzQXJyYXkoZS5kYXRhKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtsZXQgcj1PYmplY3Qua2V5cyhlKTtpZihyLmxlbmd0aD4wJiZyLmV2ZXJ5KGE9Pi9eXGQrJC8udGVzdChhKSkpe2xldCBhPW5ldyBBcnJheShyLmxlbmd0aCk7Zm9yKGxldCBzIG9mIHIpYVtOdW1iZXIocyldPWVbc107aWYoYS5ldmVyeShzPT50eXBlb2Ygcz09Im51bWJlciIpKXJldHVybiBuZXcgVWludDhBcnJheShhKX19cmV0dXJuIGV9YXN5bmMgd29ya09uUXVldWUoKXtpZih0aGlzLndvcmtpbmdEZWZlcnJlZClyZXR1cm4gdGhpcy53b3JraW5nRGVmZXJyZWQucHJvbWlzZTtpZih0aGlzLndvcmtpbmdEZWZlcnJlZD14dC5kZWZlcigpLHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7bGV0IGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCkscj0hMSxhPSExLHM9aShhc3luYygpPT57bGV0IG49YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6bHUudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e2NvbnNvbGUubG9nKCJzdHJlYW0gZW5kZWQgaW1tYXR1cmVseSIpLHRoaXMua2VlcEFsaXZlPSExfSk7biYmbi5yZXNwb25zZSYmKGE9bi5yZXNwb25zZS5iYWNrcHJlc3N1cmUscj1uLnJlc3BvbnNlLm5leHQpfSwiZ2V0RmVlZGJhY2siKTtmb3IoYXdhaXQgcygpO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wfHxyOyl7aWYoYSlmb3IoO2E7KWNvbnNvbGUubG9nKCJ3YWl0aW5nIGZvciBmZWVkYmFjayBiZWNhdXNlIG9mIGJhY2twcmVzc3VyZS4uLiIpLGF3YWl0IEt0LmRlbGF5Rm9yKDUwKSxhd2FpdCBzKCk7bGV0IG47dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJihuPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpKTtsZXQgbztvPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmx1LnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZTpuPyJjaHVuayI6InJlYWQiLGJhY2twcmVzc3VyZTplLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsLi4ubj97Y2h1bmtEYXRhOm59Ont9fSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pihjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMSxudWxsKSksbyYmby5yZXNwb25zZSYmby5yZXNwb25zZS5jaHVua0RhdGEmJnRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKHQucmVjb25zdGl0dXRlQmluYXJ5RGF0YShvLnJlc3BvbnNlLmNodW5rRGF0YSkpLGE9byYmby5yZXNwb25zZSYmby5yZXNwb25zZS5iYWNrcHJlc3N1cmUsZT0hdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxyPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UubmV4dH19dGhpcy53b3JraW5nRGVmZXJyZWQucmVzb2x2ZSgpLHRoaXMud29ya2luZ0RlZmVycmVkPW51bGx9YXN5bmMgaGFuZGxlU3RyZWFtVHIoZSl7aWYoZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSEwJiZ0aGlzLmtlZXBBbGl2ZT09PSEwP3RoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PURhdGUubm93KCk6ZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSExJiYodGhpcy5rZWVwQWxpdmU9ITEpLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJrZWVwQWxpdmUiJiYoZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImtlZXBBbGl2ZSIsa2VlcEFsaXZlOnRoaXMua2VlcEFsaXZlLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImZlZWRiYWNrIiYmKGUucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9KSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0iY2h1bmsiKXtpZih0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaCh0LnJlY29uc3RpdHV0ZUJpbmFyeURhdGEoZS5yZXF1ZXN0LmNodW5rRGF0YSkpLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiZlLnJlc3BvbnNlLmJhY2twcmVzc3VyZT09PSExKXtsZXQgcj10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKTtlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiY2h1bmsiLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjEsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGNodW5rRGF0YTp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX19ZWxzZSBlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfTtlLnJlcXVlc3Q9bnVsbH1yZXR1cm4gZX1hc3luYyBjbGVhbnVwKCl7dGhpcy50eXBlZHJvdXRlciYmdGhpcy50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMucmVtb3ZlKHRoaXMpfWFzeW5jIHN0YXJ0S2VlcEFsaXZlTG9vcCgpe2lmKHRoaXMuc2lkZT09PSJyZXNwb25kaW5nIilyZXR1cm47YXdhaXQgS3QuZGVsYXlGb3IoMCksY29uc29sZS5sb2coYHN0YXJ0aW5nIGtlZXBhbGl2ZSBsb29wIG9uIHNpZGUgJHt0aGlzLnNpZGV9YCk7bGV0IGU9MDtmb3IoO3RoaXMua2VlcEFsaXZlOylhd2FpdCB0aGlzLnRyaWdnZXJLZWVwQWxpdmUoKSxhd2FpdCBLdC5kZWxheUZvcigxZTMpO2F3YWl0IEt0LmRlbGF5Rm9yKDFlMyksYXdhaXQgdGhpcy5jbGVhbnVwKCksY29uc29sZS5sb2coYGNsZWFuZWQgdXAgZm9yIHN0cmVhbSAke3RoaXMuc3RyZWFtSWR9YCl9YXN5bmMgdHJpZ2dlcktlZXBBbGl2ZSgpe2lmKHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7Y29uc29sZS5sb2coImtlZXBhbGl2ZSBzZW50LiIpO2xldCBlPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmx1LnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmV9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e3RoaXMua2VlcEFsaXZlPSExfSk7ZSYmZS5yZXNwb25zZSYmZS5yZXNwb25zZS5rZWVwQWxpdmU9PT0hMT90aGlzLmtlZXBBbGl2ZT0hMTp0aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpLGUmJmUucmVzcG9uc2UmJmUucmVzcG9uc2UubmV4dCYmdGhpcy53b3JrT25RdWV1ZSgpfURhdGUubm93KCktdGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ+MWU0JiYoY29uc29sZS5sb2coYGNsb3Npbmcgc3RyZWFtIGZvciAke3RoaXMuc3RyZWFtSWR9YCksdGhpcy5rZWVwQWxpdmU9ITEpfWFzeW5jIHNlbmREYXRhKGUpe3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUpLHRoaXMud29ya09uUXVldWUoKSxhd2FpdCB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvclNwYWNlKCl9YXN5bmMgZmV0Y2hEYXRhKCl7cmV0dXJuIHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5oYXNTcGFjZSxhd2FpdCB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvckl0ZW1zKCksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9YXN5bmMgcmVhZEZyb21XZWJzdHJlYW0oZSxyPSEwKXtsZXQgYT1lLmdldFJlYWRlcigpLHM9ITE7Zm9yKDshczspe2xldHt2YWx1ZTpuLGRvbmU6b309YXdhaXQgYS5yZWFkKCk7biYmYXdhaXQgdGhpcy5zZW5kRGF0YShuKSxzPW99ciYmYXdhaXQgdGhpcy5jbG9zZSghMCl9YXN5bmMgd3JpdGVUb1dlYnN0cmVhbShlKXtsZXQgcj1lLmdldFdyaXRlcigpO2Zvcig7dGhpcy5rZWVwQWxpdmV8fHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja0hhc0l0ZW1zKCk7KXtsZXQgYT1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO2lmKGE9PT1GVHQpe3IucmVsZWFzZUxvY2soKSxhd2FpdCBlLmNsb3NlKCk7YnJlYWt9YXdhaXQgci53cml0ZShhKX19YXN5bmMgY2xvc2UoZT0hMSl7ZSYmdGhpcy5zZW5kRGF0YShGVHQpLHRoaXMua2VlcEFsaXZlPSExfX19KTt2YXIgbGJlLGNiZT11KCgpPT57X1MoKTtjdSgpO2xiZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFRhcmdldCIpfWNvbnN0cnVjdG9yKGUpe2lmKGUucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlciYmIWUudHlwZWRSb3V0ZXJSZWYpdGhyb3cgbmV3IEVycm9yKCJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgdHlwZWRyb3V0ZXIgd2hlbiB1c2luZyBwb3N0bWV0aG9kIHdpdGggdHlwZWRyb3V0ZXIiKTt0aGlzLm9wdGlvbnM9ZX1hc3luYyBwb3N0KGUpe2xldCByO3RoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZiYmKHI9YXdhaXQgdGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmLmZpcmVFdmVudEludGVyZXN0TWFwLmFkZEludGVyZXN0KGUuY29ycmVsYXRpb24uaWQsZSkpO2xldCBzPWF3YWl0KHRoaXMub3B0aW9ucy5wb3N0TWV0aG9kfHx0aGlzLm9wdGlvbnMucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcikoZSksbjtyZXR1cm4gcj9uPWF3YWl0IHIuaW50ZXJlc3RGdWxsZmlsbGVkOnM/bj1zOm49ZSxufX19KTtmdW5jdGlvbiBCVHQodCxlKXt0cnl7c2guZ2xvYmFsSG9va3NbdF0/LihlKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBUeXBlZFJlcXVlc3QgaG9vayBlcnJvciAoJHt0fSk6YCxyKX19dmFyIEI0YSxkYmUsb2JlPXUoKCk9PntjdSgpO29vZSgpO0liKCk7X1MoKTtjYmUoKTtCNGE9bmV3IFQyLldlYnJlcXVlc3RDbGllbnQ7aShCVHQsImNhbGxHbG9iYWxIb29rIik7ZGJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkUmVxdWVzdCIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5za2lwSG9va3M9ITEsdHlwZW9mIGU9PSJzdHJpbmciP3RoaXMudXJsRW5kUG9pbnQ9ZTp0aGlzLnR5cGVkVGFyZ2V0PWUsdGhpcy5tZXRob2Q9cn1hc3luYyBmaXJlKGUscj0hMSl7bGV0IGE9RGF0ZS5ub3coKSxzPXttZXRob2Q6dGhpcy5tZXRob2QscmVxdWVzdDplLHJlc3BvbnNlOm51bGwsY29ycmVsYXRpb246e2lkOmx1LnVuaSgpLHBoYXNlOiJyZXF1ZXN0In19O3M9RDIuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsocyx7c2VuZE1ldGhvZDppKG89PnRoaXMucG9zdFRyT2JqZWN0KG8pLCJzZW5kTWV0aG9kIil9KSx0aGlzLnNraXBIb29rc3x8QlR0KCJvbk91dGdvaW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6cy5jb3JyZWxhdGlvbi5pZCxtZXRob2Q6dGhpcy5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDphLHBheWxvYWQ6ZX0pO2xldCBuO3JldHVybiBuPWF3YWl0IHRoaXMucG9zdFRyT2JqZWN0KHMsciksbj1EMi5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsobix7c2VuZE1ldGhvZDppKG89PnRoaXMucG9zdFRyT2JqZWN0KG8pLCJzZW5kTWV0aG9kIil9KSx0aGlzLnNraXBIb29rc3x8QlR0KCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOnMuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLWEscGF5bG9hZDpuPy5yZXNwb25zZSxlcnJvcjpuPy5lcnJvcj8udGV4dH0pLG4ucmVzcG9uc2V9YXN5bmMgcG9zdFRyT2JqZWN0KGUscj0hMSl7bGV0IGE7aWYodGhpcy51cmxFbmRQb2ludD9hPWF3YWl0IEI0YS5wb3N0SnNvbih0aGlzLnVybEVuZFBvaW50LGUscj97Y2FjaGVTdHJhdGVneToiY2FjaGUtZmlyc3QifTp7fSk6YT1hd2FpdCB0aGlzLnR5cGVkVGFyZ2V0LnBvc3QoZSksYS5lcnJvcil7aWYoY29uc29sZS5lcnJvcihgbWV0aG9kOiA+PiR7dGhpcy5tZXRob2R9PDwgZ290IGFuIEVSUk9SOiAiJHthLmVycm9yLnRleHR9IiB3aXRoIGRhdGEgJHtKU09OLnN0cmluZ2lmeShhLmVycm9yLmRhdGEsbnVsbCwyKX1gKSwhYS5yZXRyeSl0aHJvdyBuZXcgTDIoYS5lcnJvci50ZXh0LGEuZXJyb3IuZGF0YSk7cmV0dXJuIG51bGx9cmV0dXJuIGEucmV0cnkmJihjb25zb2xlLmxvZyhgc2VydmVyIHJlcXVlc3RlZCByZXRyeSBmb3IgdGhlIGZvbGxvd2luZyByZWFzb246ICR7YS5yZXRyeS5yZWFzb259YCksYXdhaXQgS3QuZGVsYXlGb3IoYS5yZXRyeS53YWl0Rm9yTXMpLGE9YXdhaXQgdGhpcy5wb3N0VHJPYmplY3QoZSxyKSksYX19fSk7dmFyIGR1PXt9O1ZlKGR1LHtUeXBlZEhhbmRsZXI6KCk9PnNiZSxUeXBlZFJlcXVlc3Q6KCk9PmRiZSxUeXBlZFJlc3BvbnNlRXJyb3I6KCk9PkwyLFR5cGVkUm91dGVyOigpPT5zaCxUeXBlZFRhcmdldDooKT0+bGJlLFZpcnR1YWxTdHJlYW06KCk9PkQyfSk7dmFyIEhUdD11KCgpPT57b2JlKCk7bmJlKCk7X1MoKTtJYigpO2NiZSgpO29vZSgpfSk7ZnVuY3Rpb24gcVR0KHQpe3JldHVybiB0JiZ0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIGMwKHQsZSl7cmV0dXJuIHR8fCh0PTApLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHIoZSl9LHQpfSl9ZnVuY3Rpb24gVVR0KHQsZSl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KzEpK3QpfWZ1bmN0aW9uIFVkKCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKX1mdW5jdGlvbiBXZCgpe3ZhciB0PURhdGUubm93KCkqMWUzO3JldHVybiB0PD11YmUmJih0PXViZSsxKSx1YmU9dCx0fWZ1bmN0aW9uIFdUdCgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmdHlwZW9mIG5hdmlnYXRvci5sb2NrczwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3MucmVxdWVzdD09ImZ1bmN0aW9uIn12YXIgVlR0LGpUdCxWMSx1YmUsdXU9dSgoKT0+e2kocVR0LCJpc1Byb21pc2UiKTtWVHQ9UHJvbWlzZS5yZXNvbHZlKCExKSxqVHQ9UHJvbWlzZS5yZXNvbHZlKCEwKSxWMT1Qcm9taXNlLnJlc29sdmUoKTtpKGMwLCJzbGVlcCIpO2koVVR0LCJyYW5kb21JbnQiKTtpKFVkLCJyYW5kb21Ub2tlbiIpO3ViZT0wO2koV2QsIm1pY3JvU2Vjb25kcyIpO2koV1R0LCJzdXBwb3J0c1dlYkxvY2tBUEkiKX0pO2Z1bmN0aW9uIFY0YSh0KXt2YXIgZT17dGltZTpXZCgpLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxiYzpuZXcgQnJvYWRjYXN0Q2hhbm5lbCh0KSxzdWJGbnM6W119O3JldHVybiBlLmJjLm9ubWVzc2FnZT1mdW5jdGlvbihyKXtlLm1lc3NhZ2VzQ2FsbGJhY2smJmUubWVzc2FnZXNDYWxsYmFjayhyLmRhdGEpfSxlfWZ1bmN0aW9uIGo0YSh0KXt0LmJjLmNsb3NlKCksdC5zdWJGbnM9W119ZnVuY3Rpb24gVTRhKHQsZSl7dHJ5e3JldHVybiB0LmJjLnBvc3RNZXNzYWdlKGUsITEpLFYxfWNhdGNoKHIpe3JldHVybiBQcm9taXNlLnJlamVjdChyKX19ZnVuY3Rpb24gVzRhKHQsZSl7dC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gRzRhKCl7aWYodHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzLkRlbm8mJmdsb2JhbFRoaXMuRGVuby5hcmdzKXJldHVybiEwO2lmKCh0eXBlb2Ygd2luZG93PCJ1Inx8dHlwZW9mIHNlbGY8InUiKSYmdHlwZW9mIEJyb2FkY2FzdENoYW5uZWw9PSJmdW5jdGlvbiIpe2lmKEJyb2FkY2FzdENoYW5uZWwuX3B1YmtleSl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWw6IERvIG5vdCBvdmVyd3JpdGUgd2luZG93LkJyb2FkY2FzdENoYW5uZWwgd2l0aCB0aGlzIG1vZHVsZSwgdGhpcyBpcyBub3QgYSBwb2x5ZmlsbCIpO3JldHVybiEwfWVsc2UgcmV0dXJuITF9ZnVuY3Rpb24gWTRhKCl7cmV0dXJuIDE1MH12YXIgSDRhLHE0YSxHVHQsWVR0PXUoKCk9Pnt1dSgpO0g0YT1XZCxxNGE9Im5hdGl2ZSI7aShWNGEsImNyZWF0ZSIpO2koajRhLCJjbG9zZSIpO2koVTRhLCJwb3N0TWVzc2FnZSIpO2koVzRhLCJvbk1lc3NhZ2UiKTtpKEc0YSwiY2FuQmVVc2VkIik7aShZNGEsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtHVHQ9e2NyZWF0ZTpWNGEsY2xvc2U6ajRhLG9uTWVzc2FnZTpXNGEscG9zdE1lc3NhZ2U6VTRhLGNhbkJlVXNlZDpHNGEsdHlwZTpxNGEsYXZlcmFnZVJlc3BvbnNlVGltZTpZNGEsbWljcm9TZWNvbmRzOkg0YX19KTtmdW5jdGlvbiBLNGEodCl7bGV0IGU9cGJlKCktdC50dGwscj10Lm1hcFtTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKDs7KXtsZXQgYT1yLm5leHQoKS52YWx1ZTtpZighYSlicmVhaztsZXQgcz1hWzBdO2lmKGFbMV08ZSl0Lm1hcC5kZWxldGUocyk7ZWxzZSBicmVha319ZnVuY3Rpb24gcGJlKCl7cmV0dXJuIERhdGUubm93KCl9dmFyIFBiLGZiZT11KCgpPT57UGI9Y2xhc3N7c3RhdGlje2kodGhpcywiT2JsaXZpb3VzU2V0Iil9dHRsO21hcD1uZXcgTWFwO190bz0hMTtjb25zdHJ1Y3RvcihlKXt0aGlzLnR0bD1lfWhhcyhlKXtsZXQgcj10aGlzLm1hcC5nZXQoZSk7cmV0dXJuIHR5cGVvZiByPiJ1Ij8hMTpyPHBiZSgpLXRoaXMudHRsPyh0aGlzLm1hcC5kZWxldGUoZSksITEpOiEwfWFkZChlKXt0aGlzLm1hcC5kZWxldGUoZSksdGhpcy5tYXAuc2V0KGUscGJlKCkpLHRoaXMuX3RvfHwodGhpcy5fdG89ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuX3RvPSExLEs0YSh0aGlzKX0sMCkpfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19O2koSzRhLCJyZW1vdmVUb29PbGRWYWx1ZXMiKTtpKHBiZSwibm93Iil9KTtmdW5jdGlvbiBuaCgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxlPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpO3JldHVybiB0eXBlb2YgZS53ZWJXb3JrZXJTdXBwb3J0PiJ1IiYmKGUud2ViV29ya2VyU3VwcG9ydD0hMCksZS5pZGJ8fChlLmlkYj17fSksZS5pZGIudHRsfHwoZS5pZGIudHRsPTFlMyo0NSksZS5pZGIuZmFsbGJhY2tJbnRlcnZhbHx8KGUuaWRiLmZhbGxiYWNrSW50ZXJ2YWw9MTUwKSx0LmlkYiYmdHlwZW9mIHQuaWRiLm9uY2xvc2U9PSJmdW5jdGlvbiImJihlLmlkYi5vbmNsb3NlPXQuaWRiLm9uY2xvc2UpLGUubG9jYWxzdG9yYWdlfHwoZS5sb2NhbHN0b3JhZ2U9e30pLGUubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXR8fChlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0PTFlMyo2MCksdC5tZXRob2RzJiYoZS5tZXRob2RzPXQubWV0aG9kcyksZS5ub2RlfHwoZS5ub2RlPXt9KSxlLm5vZGUudHRsfHwoZS5ub2RlLnR0bD0xZTMqNjAqMiksZS5ub2RlLm1heFBhcmFsbGVsV3JpdGVzfHwoZS5ub2RlLm1heFBhcmFsbGVsV3JpdGVzPTIwNDgpLHR5cGVvZiBlLm5vZGUudXNlRmFzdFBhdGg+InUiJiYoZS5ub2RlLnVzZUZhc3RQYXRoPSEwKSxlfXZhciBsb2U9dSgoKT0+e2kobmgsImZpbGxPcHRpb25zV2l0aERlZmF1bHRzIil9KTtmdW5jdGlvbiBLVHQoKXtpZih0eXBlb2YgaW5kZXhlZERCPCJ1IilyZXR1cm4gaW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3c8InUiKXtpZih0eXBlb2Ygd2luZG93Lm1vekluZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy5tb3pJbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdy53ZWJraXRJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cud2Via2l0SW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3cubXNJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cubXNJbmRleGVkREJ9cmV0dXJuITF9ZnVuY3Rpb24gY29lKHQpe3QuY29tbWl0JiZ0LmNvbW1pdCgpfWZ1bmN0aW9uIEo0YSh0KXt2YXIgZT1LVHQoKSxyPVE0YSt0LGE9ZS5vcGVuKHIpO3JldHVybiBhLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbihzKXt2YXIgbj1zLnRhcmdldC5yZXN1bHQ7bi5jcmVhdGVPYmplY3RTdG9yZSgkMix7a2V5UGF0aDoiaWQiLGF1dG9JbmNyZW1lbnQ6ITB9KX0sbmV3IFByb21pc2UoZnVuY3Rpb24ocyxuKXthLm9uZXJyb3I9ZnVuY3Rpb24obyl7cmV0dXJuIG4obyl9LGEub25zdWNjZXNzPWZ1bmN0aW9uKCl7cyhhLnJlc3VsdCl9fSl9ZnVuY3Rpb24gZTNhKHQsZSxyKXt2YXIgYT1EYXRlLm5vdygpLHM9e3V1aWQ6ZSx0aW1lOmEsZGF0YTpyfSxuPXQudHJhbnNhY3Rpb24oWyQyXSwicmVhZHdyaXRlIixUUyk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8sbCl7bi5vbmNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG8oKX0sbi5vbmVycm9yPWZ1bmN0aW9uKGQpe3JldHVybiBsKGQpfTt2YXIgYz1uLm9iamVjdFN0b3JlKCQyKTtjLmFkZChzKSxjb2Uobil9KX1mdW5jdGlvbiBXSWkodCl7dmFyIGU9dC50cmFuc2FjdGlvbigkMiwicmVhZG9ubHkiLFRTKSxyPWUub2JqZWN0U3RvcmUoJDIpLGE9W107cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMpe3Iub3BlbkN1cnNvcigpLm9uc3VjY2Vzcz1mdW5jdGlvbihuKXt2YXIgbz1uLnRhcmdldC5yZXN1bHQ7bz8oYS5wdXNoKG8udmFsdWUpLG8uY29udGludWUoKSk6KGNvZShlKSxzKGEpKX19KX1mdW5jdGlvbiB0M2EodCxlKXt2YXIgcj10LnRyYW5zYWN0aW9uKCQyLCJyZWFkb25seSIsVFMpLGE9ci5vYmplY3RTdG9yZSgkMikscz1bXSxuPUlEQktleVJhbmdlLmJvdW5kKGUrMSwxLzApO2lmKGEuZ2V0QWxsKXt2YXIgbz1hLmdldEFsbChuKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXtvLm9uZXJyb3I9ZnVuY3Rpb24oZil7cmV0dXJuIGQoZil9LG8ub25zdWNjZXNzPWZ1bmN0aW9uKGYpe2MoZi50YXJnZXQucmVzdWx0KX19KX1mdW5jdGlvbiBsKCl7dHJ5e3JldHVybiBuPUlEQktleVJhbmdlLmJvdW5kKGUrMSwxLzApLGEub3BlbkN1cnNvcihuKX1jYXRjaHtyZXR1cm4gYS5vcGVuQ3Vyc29yKCl9fXJldHVybiBpKGwsIm9wZW5DdXJzb3IiKSxuZXcgUHJvbWlzZShmdW5jdGlvbihjLGQpe3ZhciBmPWwoKTtmLm9uZXJyb3I9ZnVuY3Rpb24ocCl7cmV0dXJuIGQocCl9LGYub25zdWNjZXNzPWZ1bmN0aW9uKHApe3ZhciBoPXAudGFyZ2V0LnJlc3VsdDtoP2gudmFsdWUuaWQ8ZSsxP2guY29udGludWUoZSsxKToocy5wdXNoKGgudmFsdWUpLGguY29udGludWUoKSk6KGNvZShyKSxjKHMpKX19KX1mdW5jdGlvbiByM2EodCxlKXtpZih0LmNsb3NlZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgcj10LmRiLnRyYW5zYWN0aW9uKCQyLCJyZWFkd3JpdGUiLFRTKSxhPXIub2JqZWN0U3RvcmUoJDIpO3JldHVybiBQcm9taXNlLmFsbChlLm1hcChmdW5jdGlvbihzKXt2YXIgbj1hLmRlbGV0ZShzKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyl7bi5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbygpfX0pfSkpfWZ1bmN0aW9uIGEzYSh0LGUpe3ZhciByPURhdGUubm93KCktZSxhPXQudHJhbnNhY3Rpb24oJDIsInJlYWRvbmx5IixUUykscz1hLm9iamVjdFN0b3JlKCQyKSxuPVtdO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvKXtzLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3M9ZnVuY3Rpb24obCl7dmFyIGM9bC50YXJnZXQucmVzdWx0O2lmKGMpe3ZhciBkPWMudmFsdWU7ZC50aW1lPHI/KG4ucHVzaChkKSxjLmNvbnRpbnVlKCkpOihjb2UoYSksbyhuKSl9ZWxzZSBvKG4pfX0pfWZ1bmN0aW9uIGkzYSh0KXtyZXR1cm4gYTNhKHQuZGIsdC5vcHRpb25zLmlkYi50dGwpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHIzYSh0LGUubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLmlkfSkpfSl9ZnVuY3Rpb24gczNhKHQsZSl7cmV0dXJuIGU9bmgoZSksSjRhKHQpLnRoZW4oZnVuY3Rpb24ocil7dmFyIGE9e2Nsb3NlZDohMSxsYXN0Q3Vyc29ySWQ6MCxjaGFubmVsTmFtZTp0LG9wdGlvbnM6ZSx1dWlkOlVkKCksZU1JczpuZXcgUGIoZS5pZGIudHRsKjIpLHdyaXRlQmxvY2tQcm9taXNlOlYxLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxyZWFkUXVldWVQcm9taXNlczpbXSxkYjpyfTtyZXR1cm4gci5vbmNsb3NlPWZ1bmN0aW9uKCl7YS5jbG9zZWQ9ITAsZS5pZGIub25jbG9zZSYmZS5pZGIub25jbG9zZSgpfSxaVHQoYSksYX0pfWZ1bmN0aW9uIFpUdCh0KXt0LmNsb3NlZHx8UVR0KHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYzAodC5vcHRpb25zLmlkYi5mYWxsYmFja0ludGVydmFsKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gWlR0KHQpfSl9ZnVuY3Rpb24gbjNhKHQsZSl7cmV0dXJuISh0LnV1aWQ9PT1lLnV1aWR8fGUuZU1Jcy5oYXModC5pZCl8fHQuZGF0YS50aW1lPGUubWVzc2FnZXNDYWxsYmFja1RpbWUpfWZ1bmN0aW9uIFFUdCh0KXtyZXR1cm4gdC5jbG9zZWQ/VjE6dC5tZXNzYWdlc0NhbGxiYWNrP3QzYSh0LmRiLHQubGFzdEN1cnNvcklkKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciByPWUuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiEhYX0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD50Lmxhc3RDdXJzb3JJZCYmKHQubGFzdEN1cnNvcklkPWEuaWQpLGF9KS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIG4zYShhLHQpfSkuc29ydChmdW5jdGlvbihhLHMpe3JldHVybiBhLnRpbWUtcy50aW1lfSk7cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihhKXt0Lm1lc3NhZ2VzQ2FsbGJhY2smJih0LmVNSXMuYWRkKGEuaWQpLHQubWVzc2FnZXNDYWxsYmFjayhhLmRhdGEpKX0pLFYxfSk6VjF9ZnVuY3Rpb24gbzNhKHQpe3QuY2xvc2VkPSEwLHQuZGIuY2xvc2UoKX1mdW5jdGlvbiBsM2EodCxlKXtyZXR1cm4gdC53cml0ZUJsb2NrUHJvbWlzZT10LndyaXRlQmxvY2tQcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZTNhKHQuZGIsdC51dWlkLGUpfSkudGhlbihmdW5jdGlvbigpe1VUdCgwLDEwKT09PTAmJmkzYSh0KX0pLHQud3JpdGVCbG9ja1Byb21pc2V9ZnVuY3Rpb24gYzNhKHQsZSxyKXt0Lm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsdC5tZXNzYWdlc0NhbGxiYWNrPWUsUVR0KHQpfWZ1bmN0aW9uIGQzYSgpe3JldHVybiEhS1R0KCl9ZnVuY3Rpb24gdTNhKHQpe3JldHVybiB0LmlkYi5mYWxsYmFja0ludGVydmFsKjJ9dmFyIFo0YSxRNGEsJDIsVFMsWDRhLFhUdCxKVHQ9dSgoKT0+e3V1KCk7ZmJlKCk7bG9lKCk7WjRhPVdkLFE0YT0icHVia2V5LmJyb2FkY2FzdC1jaGFubmVsLTAtIiwkMj0ibWVzc2FnZXMiLFRTPXtkdXJhYmlsaXR5OiJyZWxheGVkIn0sWDRhPSJpZGIiO2koS1R0LCJnZXRJZGIiKTtpKGNvZSwiY29tbWl0SW5kZXhlZERCVHJhbnNhY3Rpb24iKTtpKEo0YSwiY3JlYXRlRGF0YWJhc2UiKTtpKGUzYSwid3JpdGVNZXNzYWdlIik7aShXSWksImdldEFsbE1lc3NhZ2VzIik7aSh0M2EsImdldE1lc3NhZ2VzSGlnaGVyVGhhbiIpO2kocjNhLCJyZW1vdmVNZXNzYWdlc0J5SWQiKTtpKGEzYSwiZ2V0T2xkTWVzc2FnZXMiKTtpKGkzYSwiY2xlYW5PbGRNZXNzYWdlcyIpO2koczNhLCJjcmVhdGUiKTtpKFpUdCwiX3JlYWRMb29wIik7aShuM2EsIl9maWx0ZXJNZXNzYWdlIik7aShRVHQsInJlYWROZXdNZXNzYWdlcyIpO2kobzNhLCJjbG9zZSIpO2kobDNhLCJwb3N0TWVzc2FnZSIpO2koYzNhLCJvbk1lc3NhZ2UiKTtpKGQzYSwiY2FuQmVVc2VkIik7aSh1M2EsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtYVHQ9e2NyZWF0ZTpzM2EsY2xvc2U6bzNhLG9uTWVzc2FnZTpjM2EscG9zdE1lc3NhZ2U6bDNhLGNhbkJlVXNlZDpkM2EsdHlwZTpYNGEsYXZlcmFnZVJlc3BvbnNlVGltZTp1M2EsbWljcm9TZWNvbmRzOlo0YX19KTtmdW5jdGlvbiBlTHQoKXt2YXIgdDtpZih0eXBlb2Ygd2luZG93PiJ1IilyZXR1cm4gbnVsbDt0cnl7dD13aW5kb3cubG9jYWxTdG9yYWdlLHQ9d2luZG93WyJpZTgtZXZlbnRsaXN0ZW5lci9zdG9yYWdlIl18fHdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2h7fXJldHVybiB0fWZ1bmN0aW9uIHRMdCh0KXtyZXR1cm4gZjNhK3R9ZnVuY3Rpb24gbTNhKHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe2MwKCkudGhlbihmdW5jdGlvbigpe3ZhciBhPXRMdCh0LmNoYW5uZWxOYW1lKSxzPXt0b2tlbjpVZCgpLHRpbWU6RGF0ZS5ub3coKSxkYXRhOmUsdXVpZDp0LnV1aWR9LG49SlNPTi5zdHJpbmdpZnkocyk7ZUx0KCkuc2V0SXRlbShhLG4pO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO28uaW5pdEV2ZW50KCJzdG9yYWdlIiwhMCwhMCksby5rZXk9YSxvLm5ld1ZhbHVlPW4sd2luZG93LmRpc3BhdGNoRXZlbnQobykscigpfSl9KX1mdW5jdGlvbiBnM2EodCxlKXt2YXIgcj10THQodCksYT1pKGZ1bmN0aW9uKG4pe24ua2V5PT09ciYmZShKU09OLnBhcnNlKG4ubmV3VmFsdWUpKX0sImxpc3RlbmVyIik7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIixhKSxhfWZ1bmN0aW9uIGIzYSh0KXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsdCl9ZnVuY3Rpb24geDNhKHQsZSl7aWYoZT1uaChlKSwhckx0KCkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBsb2NhbHN0b3JhZ2UgY2Fubm90IGJlIHVzZWQiKTt2YXIgcj1VZCgpLGE9bmV3IFBiKGUubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXQpLHM9e2NoYW5uZWxOYW1lOnQsdXVpZDpyLGVNSXM6YX07cmV0dXJuIHMubGlzdGVuZXI9ZzNhKHQsZnVuY3Rpb24obil7cy5tZXNzYWdlc0NhbGxiYWNrJiZuLnV1aWQhPT1yJiYoIW4udG9rZW58fGEuaGFzKG4udG9rZW4pfHxuLmRhdGEudGltZSYmbi5kYXRhLnRpbWU8cy5tZXNzYWdlc0NhbGxiYWNrVGltZXx8KGEuYWRkKG4udG9rZW4pLHMubWVzc2FnZXNDYWxsYmFjayhuLmRhdGEpKSl9KSxzfWZ1bmN0aW9uIHYzYSh0KXtiM2EodC5saXN0ZW5lcil9ZnVuY3Rpb24geTNhKHQsZSxyKXt0Lm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsdC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gckx0KCl7dmFyIHQ9ZUx0KCk7aWYoIXQpcmV0dXJuITE7dHJ5e3ZhciBlPSJfX2Jyb2FkY2FzdGNoYW5uZWxfY2hlY2siO3Quc2V0SXRlbShlLCJ3b3JrcyIpLHQucmVtb3ZlSXRlbShlKX1jYXRjaHtyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiB3M2EoKXt2YXIgdD0xMjAsZT1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7cmV0dXJuIGUuaW5jbHVkZXMoInNhZmFyaSIpJiYhZS5pbmNsdWRlcygiY2hyb21lIik/dCoyOnR9dmFyIHAzYSxmM2EsaDNhLGFMdCxpTHQ9dSgoKT0+e2ZiZSgpO2xvZSgpO3V1KCk7cDNhPVdkLGYzYT0icHVia2V5LmJyb2FkY2FzdENoYW5uZWwtIixoM2E9ImxvY2Fsc3RvcmFnZSI7aShlTHQsImdldExvY2FsU3RvcmFnZSIpO2kodEx0LCJzdG9yYWdlS2V5Iik7aShtM2EsInBvc3RNZXNzYWdlIik7aShnM2EsImFkZFN0b3JhZ2VFdmVudExpc3RlbmVyIik7aShiM2EsInJlbW92ZVN0b3JhZ2VFdmVudExpc3RlbmVyIik7aSh4M2EsImNyZWF0ZSIpO2kodjNhLCJjbG9zZSIpO2koeTNhLCJvbk1lc3NhZ2UiKTtpKHJMdCwiY2FuQmVVc2VkIik7aSh3M2EsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTthTHQ9e2NyZWF0ZTp4M2EsY2xvc2U6djNhLG9uTWVzc2FnZTp5M2EscG9zdE1lc3NhZ2U6bTNhLGNhbkJlVXNlZDpyTHQsdHlwZTpoM2EsYXZlcmFnZVJlc3BvbnNlVGltZTp3M2EsbWljcm9TZWNvbmRzOnAzYX19KTtmdW5jdGlvbiBTM2EodCl7dmFyIGU9e3RpbWU6c0x0KCksbmFtZTp0LG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbH07cmV0dXJuIGhiZS5hZGQoZSksZX1mdW5jdGlvbiBNM2EodCl7aGJlLmRlbGV0ZSh0KX1mdW5jdGlvbiBDM2EodCxlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocil7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYT1BcnJheS5mcm9tKGhiZSk7YS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3MubmFtZT09PXQubmFtZSYmcyE9PXQmJnMubWVzc2FnZXNDYWxsYmFjayYmcy50aW1lPGUudGltZSYmcy5tZXNzYWdlc0NhbGxiYWNrKGUpfSkscigpfSxuTHQpfSl9ZnVuY3Rpb24gejNhKHQsZSl7dC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gXzNhKCl7cmV0dXJuITB9ZnVuY3Rpb24gVDNhKCl7cmV0dXJuIG5MdH12YXIgc0x0LGszYSxoYmUsbkx0LG9MdCxsTHQ9dSgoKT0+e3V1KCk7c0x0PVdkLGszYT0ic2ltdWxhdGUiLGhiZT1uZXcgU2V0O2koUzNhLCJjcmVhdGUiKTtpKE0zYSwiY2xvc2UiKTtuTHQ9NTtpKEMzYSwicG9zdE1lc3NhZ2UiKTtpKHozYSwib25NZXNzYWdlIik7aShfM2EsImNhbkJlVXNlZCIpO2koVDNhLCJhdmVyYWdlUmVzcG9uc2VUaW1lIik7b0x0PXtjcmVhdGU6UzNhLGNsb3NlOk0zYSxvbk1lc3NhZ2U6ejNhLHBvc3RNZXNzYWdlOkMzYSxjYW5CZVVzZWQ6XzNhLHR5cGU6azNhLGF2ZXJhZ2VSZXNwb25zZVRpbWU6VDNhLG1pY3JvU2Vjb25kczpzTHR9fSk7ZnVuY3Rpb24gbWJlKHQpe3ZhciBlPVtdLmNvbmNhdCh0Lm1ldGhvZHMsY0x0KS5maWx0ZXIoQm9vbGVhbik7aWYodC50eXBlKXtpZih0LnR5cGU9PT0ic2ltdWxhdGUiKXJldHVybiBvTHQ7dmFyIHI9ZS5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLnR5cGU9PT10LnR5cGV9KTtpZihyKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigibWV0aG9kLXR5cGUgIit0LnR5cGUrIiBub3QgZm91bmQiKX10LndlYldvcmtlclN1cHBvcnR8fChlPWUuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiBzLnR5cGUhPT0iaWRiIn0pKTt2YXIgYT1lLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuY2FuQmVVc2VkKCl9KTtpZihhKXJldHVybiBhO3Rocm93IG5ldyBFcnJvcigiTm8gdXNhYmxlIG1ldGhvZCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KGNMdC5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMudHlwZX0pKSl9dmFyIGNMdCxkTHQ9dSgoKT0+e1lUdCgpO0pUdCgpO2lMdCgpO2xMdCgpO2NMdD1bR1R0LFhUdCxhTHRdO2kobWJlLCJjaG9vc2VNZXRob2QiKX0pO2Z1bmN0aW9uIEQzYSh0KXt0PW5oKHQpO3ZhciBlPW1iZSh0KTtyZXR1cm4gZS50eXBlPT09Im5vZGUiP2UuY2xlYXJOb2RlRm9sZGVyKCkudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSk6VlR0fWZ1bmN0aW9uICQzYSh0KXtnYmU9dH1mdW5jdGlvbiB1THQodCxlLHIpe3ZhciBhPXQubWV0aG9kLm1pY3JvU2Vjb25kcygpLHM9e3RpbWU6YSx0eXBlOmUsZGF0YTpyfSxuPXQuX3ByZXBQP3QuX3ByZXBQOlYxO3JldHVybiBuLnRoZW4oZnVuY3Rpb24oKXt2YXIgbz10Lm1ldGhvZC5wb3N0TWVzc2FnZSh0Ll9zdGF0ZSxzKTtyZXR1cm4gdC5fdU1QLmFkZChvKSxvLmNhdGNoKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0Ll91TVAuZGVsZXRlKG8pfSksb30pfWZ1bmN0aW9uIEEzYSh0KXt2YXIgZT10Lm1ldGhvZC5jcmVhdGUodC5uYW1lLHQub3B0aW9ucyk7cVR0KGUpPyh0Ll9wcmVwUD1lLGUudGhlbihmdW5jdGlvbihyKXt0Ll9zdGF0ZT1yfSkpOnQuX3N0YXRlPWV9ZnVuY3Rpb24gcEx0KHQpe3JldHVybiB0Ll9hZGRFTC5tZXNzYWdlLmxlbmd0aD4wfHx0Ll9hZGRFTC5pbnRlcm5hbC5sZW5ndGg+MH1mdW5jdGlvbiBmTHQodCxlLHIpe3QuX2FkZEVMW2VdLnB1c2gociksRTNhKHQpfWZ1bmN0aW9uIGhMdCh0LGUscil7dC5fYWRkRUxbZV09dC5fYWRkRUxbZV0uZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhIT09cn0pLEkzYSh0KX1mdW5jdGlvbiBFM2EodCl7aWYoIXQuX2lMJiZwTHQodCkpe3ZhciBlPWkoZnVuY3Rpb24ocyl7dC5fYWRkRUxbcy50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3MudGltZT49bi50aW1lJiZuLmZuKHMuZGF0YSl9KX0sImxpc3RlbmVyRm4iKSxyPXQubWV0aG9kLm1pY3JvU2Vjb25kcygpO3QuX3ByZXBQP3QuX3ByZXBQLnRoZW4oZnVuY3Rpb24oKXt0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxyKX0pOih0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxyKSl9fWZ1bmN0aW9uIEkzYSh0KXtpZih0Ll9pTCYmIXBMdCh0KSl7dC5faUw9ITE7dmFyIGU9dC5tZXRob2QubWljcm9TZWNvbmRzKCk7dC5tZXRob2Qub25NZXNzYWdlKHQuX3N0YXRlLG51bGwsZSl9fXZhciBiYmUsTDNhLG9oLGdiZSxtTHQ9dSgoKT0+e3V1KCk7ZEx0KCk7bG9lKCk7YmJlPW5ldyBTZXQsTDNhPTAsb2g9aShmdW5jdGlvbihlLHIpe3RoaXMuaWQ9TDNhKyssYmJlLmFkZCh0aGlzKSx0aGlzLm5hbWU9ZSxnYmUmJihyPWdiZSksdGhpcy5vcHRpb25zPW5oKHIpLHRoaXMubWV0aG9kPW1iZSh0aGlzLm9wdGlvbnMpLHRoaXMuX2lMPSExLHRoaXMuX29uTUw9bnVsbCx0aGlzLl9hZGRFTD17bWVzc2FnZTpbXSxpbnRlcm5hbDpbXX0sdGhpcy5fdU1QPW5ldyBTZXQsdGhpcy5fYmVmQz1bXSx0aGlzLl9wcmVwUD1udWxsLEEzYSh0aGlzKX0sIkJyb2FkY2FzdENoYW5uZWwiKTtvaC5fcHVia2V5PSEwO2koRDNhLCJjbGVhck5vZGVGb2xkZXIiKTtpKCQzYSwiZW5mb3JjZU9wdGlvbnMiKSxvaC5wcm90b3R5cGU9e3Bvc3RNZXNzYWdlOmkoZnVuY3Rpb24oZSl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKCk6IENhbm5vdCBwb3N0IG1lc3NhZ2UgYWZ0ZXIgY2hhbm5lbCBoYXMgY2xvc2VkICIrSlNPTi5zdHJpbmdpZnkoZSkpO3JldHVybiB1THQodGhpcywibWVzc2FnZSIsZSl9LCJwb3N0TWVzc2FnZSIpLHBvc3RJbnRlcm5hbDppKGZ1bmN0aW9uKGUpe3JldHVybiB1THQodGhpcywiaW50ZXJuYWwiLGUpfSwicG9zdEludGVybmFsIiksc2V0IG9ubWVzc2FnZSh0KXt2YXIgZT10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmUsZm46dH07aEx0KHRoaXMsIm1lc3NhZ2UiLHRoaXMuX29uTUwpLHQmJnR5cGVvZiB0PT0iZnVuY3Rpb24iPyh0aGlzLl9vbk1MPXIsZkx0KHRoaXMsIm1lc3NhZ2UiLHIpKTp0aGlzLl9vbk1MPW51bGx9LGFkZEV2ZW50TGlzdGVuZXI6aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLHM9e3RpbWU6YSxmbjpyfTtmTHQodGhpcyxlLHMpfSwiYWRkRXZlbnRMaXN0ZW5lciIpLHJlbW92ZUV2ZW50TGlzdGVuZXI6aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXMuX2FkZEVMW2VdLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuZm49PT1yfSk7aEx0KHRoaXMsZSxhKX0sInJlbW92ZUV2ZW50TGlzdGVuZXIiKSxjbG9zZTppKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZighdGhpcy5jbG9zZWQpe2JiZS5kZWxldGUodGhpcyksdGhpcy5jbG9zZWQ9ITA7dmFyIHI9dGhpcy5fcHJlcFA/dGhpcy5fcHJlcFA6VjE7cmV0dXJuIHRoaXMuX29uTUw9bnVsbCx0aGlzLl9hZGRFTC5tZXNzYWdlPVtdLHIudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChBcnJheS5mcm9tKGUuX3VNUCkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChlLl9iZWZDLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYSgpfSkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLm1ldGhvZC5jbG9zZShlLl9zdGF0ZSl9KX19LCJjbG9zZSIpLGdldCB0eXBlKCl7cmV0dXJuIHRoaXMubWV0aG9kLnR5cGV9LGdldCBpc0Nsb3NlZCgpe3JldHVybiB0aGlzLmNsb3NlZH19O2kodUx0LCJfcG9zdCIpO2koQTNhLCJfcHJlcGFyZUNoYW5uZWwiKTtpKHBMdCwiX2hhc01lc3NhZ2VMaXN0ZW5lcnMiKTtpKGZMdCwiX2FkZExpc3RlbmVyT2JqZWN0Iik7aShoTHQsIl9yZW1vdmVMaXN0ZW5lck9iamVjdCIpO2koRTNhLCJfc3RhcnRMaXN0ZW5pbmciKTtpKEkzYSwiX3N0b3BMaXN0ZW5pbmciKX0pO2Z1bmN0aW9uIGdMdCh0KXtpZih0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU9PSJmdW5jdGlvbiImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSl7dmFyIGU9c2VsZi5jbG9zZS5iaW5kKHNlbGYpO3NlbGYuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLGUoKX19ZWxzZXtpZih0eXBlb2Ygd2luZG93LmFkZEV2ZW50TGlzdGVuZXIhPSJmdW5jdGlvbiIpcmV0dXJuO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLGZ1bmN0aW9uKCl7dCgpfSwhMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZnVuY3Rpb24oKXt0KCl9LCEwKX19dmFyIGJMdD11KCgpPT57aShnTHQsImFkZEJyb3dzZXIiKX0pO2Z1bmN0aW9uIHhMdCh0KXtwcm9jZXNzLm9uKCJleGl0IixmdW5jdGlvbigpe3JldHVybiB0KCl9KSxwcm9jZXNzLm9uKCJiZWZvcmVFeGl0IixmdW5jdGlvbigpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe3JldHVybiBwcm9jZXNzLmV4aXQoKX0pfSkscHJvY2Vzcy5vbigiU0lHSU5UIixmdW5jdGlvbigpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe3JldHVybiBwcm9jZXNzLmV4aXQoKX0pfSkscHJvY2Vzcy5vbigidW5jYXVnaHRFeGNlcHRpb24iLGZ1bmN0aW9uKGUpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe2NvbnNvbGUudHJhY2UoZSkscHJvY2Vzcy5leGl0KDEwMSl9KX0pfXZhciB2THQ9dSgoKT0+e2koeEx0LCJhZGROb2RlIil9KTtmdW5jdGlvbiBPM2EoKXt5THR8fCh5THQ9ITAsTjNhKFIzYSkpfWZ1bmN0aW9uIHdMdCh0KXtpZihPM2EoKSx0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoIkxpc3RlbmVyIGlzIG5vIGZ1bmN0aW9uIik7bGguYWRkKHQpO3ZhciBlPXtyZW1vdmU6aShmdW5jdGlvbigpe3JldHVybiBsaC5kZWxldGUodCl9LCJyZW1vdmUiKSxydW46aShmdW5jdGlvbigpe3JldHVybiBsaC5kZWxldGUodCksdCgpfSwicnVuIil9O3JldHVybiBlfWZ1bmN0aW9uIFIzYSgpe3ZhciB0PVtdO3JldHVybiBsaC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QucHVzaChlKCkpLGxoLmRlbGV0ZShlKX0pLFByb21pc2UuYWxsKHQpfWZ1bmN0aW9uIHlQaSgpe2xoLmNsZWFyKCl9ZnVuY3Rpb24gd1BpKCl7cmV0dXJuIGxoLnNpemV9dmFyIFAzYSxOM2EsbGgseUx0LGtMdD11KCgpPT57Ykx0KCk7dkx0KCk7UDNhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0eXBlb2YgcHJvY2VzczwidSI/cHJvY2VzczowKT09PSJbb2JqZWN0IHByb2Nlc3NdIixOM2E9UDNhP3hMdDpnTHQsbGg9bmV3IFNldCx5THQ9ITE7aShPM2EsInN0YXJ0TGlzdGVuaW5nIik7aSh3THQsImFkZCIpO2koUjNhLCJydW5BbGwiKTtpKHlQaSwicmVtb3ZlQWxsIik7aSh3UGksImdldFNpemUiKX0pO2Z1bmN0aW9uIEdkKHQsZSl7dmFyIHI9e2NvbnRleHQ6ImxlYWRlciIsYWN0aW9uOmUsdG9rZW46dC50b2tlbn07cmV0dXJuIHQuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0SW50ZXJuYWwocil9ZnVuY3Rpb24gTFModCl7dC5pc0xlYWRlcj0hMCx0Ll9oYXNMZWFkZXI9ITA7dmFyIGU9d0x0KGZ1bmN0aW9uKCl7cmV0dXJuIHQuZGllKCl9KTt0Ll91bmwucHVzaChlKTt2YXIgcj1pKGZ1bmN0aW9uKHMpe3MuY29udGV4dD09PSJsZWFkZXIiJiZzLmFjdGlvbj09PSJhcHBseSImJkdkKHQsInRlbGwiKSxzLmNvbnRleHQ9PT0ibGVhZGVyIiYmcy5hY3Rpb249PT0idGVsbCImJiF0Ll9kcExDJiYodC5fZHBMQz0hMCx0Ll9kcEwoKSxHZCh0LCJ0ZWxsIikpfSwiaXNMZWFkZXJMaXN0ZW5lciIpO3JldHVybiB0LmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHIpLHQuX2xzdG5zLnB1c2gociksR2QodCwidGVsbCIpfXZhciBkb2U9dSgoKT0+e2tMdCgpO2koR2QsInNlbmRMZWFkZXJNZXNzYWdlIik7aShMUywiYmVMZWFkZXIiKX0pO3ZhciB4YmUsU0x0LE1MdD11KCgpPT57dXUoKTtkb2UoKTt4YmU9aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXM7dGhpcy5icm9hZGNhc3RDaGFubmVsPWUsZS5fYmVmQy5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGEuZGllKCl9KSx0aGlzLl9vcHRpb25zPXIsdGhpcy5pc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPVVkKCksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sPVtdLHRoaXMuX2RwTD1mdW5jdGlvbigpe30sdGhpcy5fZHBMQz0hMSx0aGlzLl93S01DPXt9LHRoaXMubE49InB1YmtleS1iY3x8IitlLm1ldGhvZC50eXBlKyJ8fCIrZS5uYW1lfSwiTGVhZGVyRWxlY3Rpb25XZWJMb2NrIiksU0x0PSJMZWFkZXJFbGVjdGlvbldlYkxvY2suZGllKCkgY2FsbGVkIjt4YmUucHJvdG90eXBlPXtoYXNMZWFkZXI6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIG5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oZnVuY3Rpb24ocil7dmFyIGE9ci5oZWxkP3IuaGVsZC5maWx0ZXIoZnVuY3Rpb24ocyl7cmV0dXJuIHMubmFtZT09PWUubE59KTpbXTtyZXR1cm4hIShhJiZhLmxlbmd0aD4wKX0pfSwiaGFzTGVhZGVyIiksYXdhaXRMZWFkZXJzaGlwOmkoZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCF0aGlzLl93TE1QKXt0aGlzLl93S01DLmM9bmV3IEFib3J0Q29udHJvbGxlcjt2YXIgcj1uZXcgUHJvbWlzZShmdW5jdGlvbihhLHMpe2UuX3dLTUMucmVzPWEsZS5fd0tNQy5yZWo9c30pO3RoaXMuX3dMTVA9bmV3IFByb21pc2UoZnVuY3Rpb24oYSxzKXtuYXZpZ2F0b3IubG9ja3MucmVxdWVzdChlLmxOLHtzaWduYWw6ZS5fd0tNQy5jLnNpZ25hbH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5fd0tNQy5jPXZvaWQgMCxMUyhlKSxhKCkscn0pLmNhdGNoKGZ1bmN0aW9uKG4pe24ubWVzc2FnZSYmbi5tZXNzYWdlPT09U0x0fHwoZS5fd0tNQy5yZWomJmUuX3dLTUMucmVqKG4pLHMobikpfSl9KX1yZXR1cm4gdGhpcy5fd0xNUH0sImF3YWl0TGVhZGVyc2hpcCIpLHNldCBvbmR1cGxpY2F0ZSh0KXt9LGRpZTppKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5fbHN0bnMuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gZS5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixyKX0pLHRoaXMuX2xzdG5zPVtdLHRoaXMuX3VubC5mb3JFYWNoKGZ1bmN0aW9uKHIpe3JldHVybiByLnJlbW92ZSgpfSksdGhpcy5fdW5sPVtdLHRoaXMuaXNMZWFkZXImJih0aGlzLmlzTGVhZGVyPSExKSx0aGlzLmlzRGVhZD0hMCx0aGlzLl93S01DLnJlcyYmdGhpcy5fd0tNQy5yZXMoKSx0aGlzLl93S01DLmMmJnRoaXMuX3dLTUMuYy5hYm9ydChuZXcgRXJyb3IoU0x0KSksR2QodGhpcywiZGVhdGgiKX0sImRpZSIpfX0pO2Z1bmN0aW9uIEYzYSh0KXtyZXR1cm4gdC5pc0xlYWRlcj9WMTpuZXcgUHJvbWlzZShmdW5jdGlvbihlKXt2YXIgcj0hMTtmdW5jdGlvbiBhKCl7cnx8KHI9ITAsdC5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixuKSxlKCEwKSl9aShhLCJmaW5pc2giKSx0LmFwcGx5T25jZSgpLnRoZW4oZnVuY3Rpb24oKXt0LmlzTGVhZGVyJiZhKCl9KTt2YXIgcz1pKGZ1bmN0aW9uKCl7cmV0dXJuIGMwKHQuX29wdGlvbnMuZmFsbGJhY2tJbnRlcnZhbCkudGhlbihmdW5jdGlvbigpe2lmKCEodC5pc0RlYWR8fHIpKWlmKHQuaXNMZWFkZXIpYSgpO2Vsc2UgcmV0dXJuIHQuYXBwbHlPbmNlKCEwKS50aGVuKGZ1bmN0aW9uKCl7dC5pc0xlYWRlcj9hKCk6cygpfSl9KX0sInRyeU9uRmFsbEJhY2siKTtzKCk7dmFyIG49aShmdW5jdGlvbihsKXtsLmNvbnRleHQ9PT0ibGVhZGVyIiYmbC5hY3Rpb249PT0iZGVhdGgiJiYodC5faGFzTGVhZGVyPSExLHQuYXBwbHlPbmNlKCkudGhlbihmdW5jdGlvbigpe3QuaXNMZWFkZXImJmEoKX0pKX0sIndoZW5EZWF0aExpc3RlbmVyIik7dC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixuKSx0Ll9sc3Rucy5wdXNoKG4pfSl9ZnVuY3Rpb24gQjNhKHQsZSl7cmV0dXJuIHR8fCh0PXt9KSx0PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLHQuZmFsbGJhY2tJbnRlcnZhbHx8KHQuZmFsbGJhY2tJbnRlcnZhbD0zZTMpLHQucmVzcG9uc2VUaW1lfHwodC5yZXNwb25zZVRpbWU9ZS5tZXRob2QuYXZlcmFnZVJlc3BvbnNlVGltZShlLm9wdGlvbnMpKSx0fWZ1bmN0aW9uIEgzYSh0LGUpe2lmKHQuX2xlYWRlckVsZWN0b3IpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsIGFscmVhZHkgaGFzIGEgbGVhZGVyLWVsZWN0b3IiKTtlPUIzYShlLHQpO3ZhciByPVdUdCgpP25ldyB4YmUodCxlKTpuZXcgQ0x0KHQsZSk7cmV0dXJuIHQuX2JlZkMucHVzaChmdW5jdGlvbigpe3JldHVybiByLmRpZSgpfSksdC5fbGVhZGVyRWxlY3Rvcj1yLHJ9dmFyIENMdCx6THQ9dSgoKT0+e3V1KCk7ZG9lKCk7TUx0KCk7Q0x0PWkoZnVuY3Rpb24oZSxyKXt2YXIgYT10aGlzO3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD1lLHRoaXMuX29wdGlvbnM9cix0aGlzLmlzTGVhZGVyPSExLHRoaXMuX2hhc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPVVkKCksdGhpcy5fYXBsUT1WMSx0aGlzLl9hcGxRQz0wLHRoaXMuX3VubD1bXSx0aGlzLl9sc3Rucz1bXSx0aGlzLl9kcEw9ZnVuY3Rpb24oKXt9LHRoaXMuX2RwTEM9ITE7dmFyIHM9aShmdW5jdGlvbihvKXtvLmNvbnRleHQ9PT0ibGVhZGVyIiYmKG8uYWN0aW9uPT09ImRlYXRoIiYmKGEuX2hhc0xlYWRlcj0hMSksby5hY3Rpb249PT0idGVsbCImJihhLl9oYXNMZWFkZXI9ITApKX0sImhhc0xlYWRlckxpc3RlbmVyIik7dGhpcy5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixzKSx0aGlzLl9sc3Rucy5wdXNoKHMpfSwiTGVhZGVyRWxlY3Rpb24iKTtDTHQucHJvdG90eXBlPXtoYXNMZWFkZXI6aShmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5faGFzTGVhZGVyKX0sImhhc0xlYWRlciIpLGFwcGx5T25jZTppKGZ1bmN0aW9uKGUpe3ZhciByPXRoaXM7aWYodGhpcy5pc0xlYWRlcilyZXR1cm4gYzAoMCwhMCk7aWYodGhpcy5pc0RlYWQpcmV0dXJuIGMwKDAsITEpO2lmKHRoaXMuX2FwbFFDPjEpcmV0dXJuIHRoaXMuX2FwbFE7dmFyIGE9aShmdW5jdGlvbigpe2lmKHIuaXNMZWFkZXIpcmV0dXJuIGpUdDt2YXIgbj0hMSxvLGw9bmV3IFByb21pc2UoZnVuY3Rpb24oZil7bz1pKGZ1bmN0aW9uKCl7bj0hMCxmKCl9LCJzdG9wQ3JpdGVyaWFQcm9taXNlUmVzb2x2ZSIpfSksYz1pKGZ1bmN0aW9uKHApe3AuY29udGV4dD09PSJsZWFkZXIiJiZwLnRva2VuIT1yLnRva2VuJiYocC5hY3Rpb249PT0iYXBwbHkiJiZwLnRva2VuPnIudG9rZW4mJm8oKSxwLmFjdGlvbj09PSJ0ZWxsIiYmKG8oKSxyLl9oYXNMZWFkZXI9ITApKX0sImhhbmRsZU1lc3NhZ2UiKTtyLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGMpO3ZhciBkPWU/ci5fb3B0aW9ucy5yZXNwb25zZVRpbWUqNDpyLl9vcHRpb25zLnJlc3BvbnNlVGltZTtyZXR1cm4gR2QociwiYXBwbHkiKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmFjZShbYzAoZCksbC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcil9KV0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBHZChyLCJhcHBseSIpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJhY2UoW2MwKGQpLGwudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IpfSldKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkudGhlbihmdW5jdGlvbigpe3JldHVybiByLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGMpLG4/ITE6TFMocikudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSl9KX0sImFwcGx5UnVuIik7cmV0dXJuIHRoaXMuX2FwbFFDPXRoaXMuX2FwbFFDKzEsdGhpcy5fYXBsUT10aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYSgpfSkudGhlbihmdW5jdGlvbigpe3IuX2FwbFFDPXIuX2FwbFFDLTF9KSx0aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gci5pc0xlYWRlcn0pfSwiYXBwbHlPbmNlIiksYXdhaXRMZWFkZXJzaGlwOmkoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYUxQfHwodGhpcy5fYUxQPUYzYSh0aGlzKSksdGhpcy5fYUxQfSwiYXdhaXRMZWFkZXJzaGlwIiksc2V0IG9uZHVwbGljYXRlKHQpe3RoaXMuX2RwTD10fSxkaWU6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuX2xzdG5zLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIGUuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIscil9KSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmwuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gci5yZW1vdmUoKX0pLHRoaXMuX3VubD1bXSx0aGlzLmlzTGVhZGVyJiYodGhpcy5faGFzTGVhZGVyPSExLHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLEdkKHRoaXMsImRlYXRoIil9LCJkaWUiKX07aShGM2EsIl9hd2FpdExlYWRlcnNoaXBPbmNlIik7aShCM2EsImZpbGxPcHRpb25zV2l0aERlZmF1bHRzIik7aShIM2EsImNyZWF0ZUxlYWRlckVsZWN0aW9uIil9KTt2YXIgX0x0PXUoKCk9PnttTHQoKTt6THQoKTtkb2UoKX0pO3ZhciBUTHQ9dSgoKT0+e05kKCk7cWYoKTtIVHQoKTtfTHQoKX0pO3ZhciB2YmUseWJlLExMdD11KCgpPT57VEx0KCk7dmJlPWdsb2JhbFRoaXMuQnJvYWRjYXN0Q2hhbm5lbDt2YmV8fCh2YmU9b2gpO3liZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJEZWVzQ29tbXMiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD1uZXcgdmJlKCJkZWVzLWNvbW1zIiksdGhpcy50eXBlZHJvdXRlcj1uZXcgZHUuVHlwZWRSb3V0ZXIsdGhpcy50eXBlZHRhcmdldD1uZXcgZHUuVHlwZWRUYXJnZXQoe3Bvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXI6aShhc3luYyBlPT57dGhpcy5wb3N0TWVzc2FnZShlKX0sInBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXIiKSx0eXBlZFJvdXRlclJlZjp0aGlzLnR5cGVkcm91dGVyfSksdGhpcy5icm9hZGNhc3RDaGFubmVsLm9ubWVzc2FnZT1hc3luYyBlPT57bGV0IHI9ZS5tZXRob2Q/ZTplLmRhdGE7Y29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocikpO2xldCBhPWF3YWl0IHRoaXMudHlwZWRyb3V0ZXIucm91dGVBbmRBZGRSZXNwb25zZShyLHtza2lwSG9va3M6ITB9KTthJiYhYS5lcnJvciYmdGhpcy5wb3N0TWVzc2FnZShhKX19Y3JlYXRlVHlwZWRSZXF1ZXN0KGUpe3JldHVybiBuZXcgZHUuVHlwZWRSZXF1ZXN0KHRoaXMudHlwZWR0YXJnZXQsZSl9YXN5bmMgcG9zdE1lc3NhZ2UoZSl7dGhpcy5icm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKGUpfWFzeW5jIGNyZWF0ZVR5cGVkSGFuZGxlcihlLHIpe3RoaXMudHlwZWRyb3V0ZXIuYWRkVHlwZWRIYW5kbGVyKG5ldyBkdS5UeXBlZEhhbmRsZXIoZSxyKSl9fX0pO3ZhciBEUz17fTtWZShEUyx7RGVlc0NvbW1zOigpPT55YmV9KTt2YXIgREx0PXUoKCk9PntMTHQoKX0pO3ZhciBwdSxmdT11KCgpPT57cWYoKTtwdT1HYSh2aygpLDEpO01iKCk7d2dlKCk7TmQoKTtNZ2UoKTtHbigpO2lvZSgpfSk7dmFyIEEyLE5iPXUoKCk9PntmdSgpO0EyPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkUmVzcG9uc2VFcnJvciIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5lcnJvclRleHQ9ZSx0aGlzLmVycm9yRGF0YT1yfX19KTt2YXIgcG9lLCRMdD11KCgpPT57TmIoKTtmdSgpO3BvZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFRvb2xzIil9Y29uc3RydWN0b3IoKXt0aGlzLmxvY2FsRGF0YT17fX1hc3luYyBwYXNzR3VhcmRzKGUscil7bGV0IGE9bmV3IGpkLkd1YXJkU2V0KGUpO2lmKCFhd2FpdCBhLmFsbEd1YXJkc1Bhc3Mocikpe2xldCBuPWF3YWl0IGEuZ2V0RmFpbGVkSGludChyKTt0aHJvdyBuZXcgQTIoYGd1YXJkIGZhaWxlZDogJHtufWAse2ZhaWxlZEhpbnQ6bn0pfX19fSk7dmFyIHdiZSxrYmU9dSgoKT0+e2Z1KCk7TmIoKTskTHQoKTt3YmU9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRIYW5kbGVyIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLm1ldGhvZD1lLHRoaXMuaGFuZGxlckZ1bmN0aW9uPXJ9YXN5bmMgYWRkUmVzcG9uc2UoZSl7aWYoZS5tZXRob2QhPT10aGlzLm1ldGhvZCl0aHJvdyBuZXcgRXJyb3IoInRoaXMgaGFuZGxlciBoYXMgYmVlbiBnaXZlbiBhIHdyb25nIG1ldGhvZCB0byBhbnN3ZXIgdG8uIFBsZWFzZSB1c2UgYSBUeXBlZFJvdXRlciB0byBmaWx0ZXIgcmVxdWVzdHMiKTtsZXQgcixhPW5ldyBwb2U7ZS5sb2NhbERhdGEmJihhLmxvY2FsRGF0YT1lLmxvY2FsRGF0YSk7bGV0IHM9YXdhaXQgdGhpcy5oYW5kbGVyRnVuY3Rpb24oZS5yZXF1ZXN0LGEpLmNhdGNoKG49PntuIGluc3RhbmNlb2YgQTI/cj1uOmNvbnNvbGUubG9nKG4pfSk7cmV0dXJuIHImJihlLmVycm9yPXt0ZXh0OnIuZXJyb3JUZXh0LGRhdGE6ci5lcnJvckRhdGF9KSxzJiYoZS5yZXNwb25zZT1zKSxlPy5jb3JyZWxhdGlvbj8ucGhhc2UmJihlLmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIpLGV9fX0pO3ZhciBjaCwkUz11KCgpPT57ZnUoKTtmb2UoKTtrYmUoKTtTYmUoKTtOYigpO2NoPWNsYXNzIHR7c3RhdGlje2kodGhpcywiVHlwZWRSb3V0ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuaG9va3M9e30sdGhpcy5yb3V0ZXJNYXA9bmV3IEZhLk9iamVjdE1hcCx0aGlzLmhhbmRsZXJNYXA9bmV3IEZhLk9iamVjdE1hcCx0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcz1uZXcgRmEuT2JqZWN0TWFwLHRoaXMubWlkZGxld2FyZXM9W10sdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcD1uZXcgRmEuSW50ZXJlc3RNYXAoZT0+ZSl9c3RhdGljIGdldCBnbG9iYWxIb29rcygpe3JldHVybiBnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc3x8KGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9KSxnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc31zdGF0aWMgc2V0IGdsb2JhbEhvb2tzKGUpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPWV9c3RhdGljIHNldEdsb2JhbEhvb2tzKGUpe2xldCByPXQuZ2xvYmFsSG9va3M7dC5nbG9iYWxIb29rcz17Li4uciwuLi5lfX1zdGF0aWMgY2xlYXJHbG9iYWxIb29rcygpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9fXNldEhvb2tzKGUpe3RoaXMuaG9va3M9ey4uLnRoaXMuaG9va3MsLi4uZX19Y2FsbEhvb2soZSxyKXt0cnl7dC5nbG9iYWxIb29rc1tlXT8uKHIpLHRoaXMuaG9va3NbZV0/LihyKX1jYXRjaChhKXtjb25zb2xlLmVycm9yKGBUeXBlZFJvdXRlciBob29rIGVycm9yICgke2V9KTpgLGEpfX1hZGRNaWRkbGV3YXJlKGUpe3RoaXMubWlkZGxld2FyZXMucHVzaChlKX1hZGRUeXBlZEhhbmRsZXIoZSl7aWYodGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZS5tZXRob2QpKXRocm93IG5ldyBFcnJvcihgYSBUeXBlZEhhbmRsZXIgZm9yICR7ZS5tZXRob2R9IGFscmVkeSBleGlzdHMhIENhbid0IGFkZCBhbm90aGVyIG9uZS5gKTt0aGlzLmhhbmRsZXJNYXAuYWRkKGUpfWFkZFR5cGVkUm91dGVyKGUpe3RoaXMucm91dGVyTWFwLmZpbmRTeW5jKGE9PmE9PT1lKXx8KHRoaXMucm91dGVyTWFwLmFkZChlKSxlLmFkZFR5cGVkUm91dGVyKHRoaXMpKX1jaGVja0ZvclR5cGVkSGFuZGxlcihlKXtyZXR1cm4hIXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUpfWdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlLHI9W10pe3IucHVzaCh0aGlzKTtsZXQgYTtyZXR1cm4gYT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMocz0+cy5tZXRob2Q9PT1lKSxhfHx0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpLmZvckVhY2gocz0+eyFhJiYhci5pbmNsdWRlcyhzKSYmKGE9cy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSxyKSl9KSxhfWdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLHI9W10pe3IucHVzaCh0aGlzKTtsZXQgYT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMocz0+cy5tZXRob2Q9PT1lKTtpZihhKXJldHVybntoYW5kbGVyOmEscm91dGVyOnRoaXN9O2ZvcihsZXQgcyBvZiB0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpKWlmKCFyLmluY2x1ZGVzKHMpKXtsZXQgbj1zLmdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLHIpO2lmKG4pcmV0dXJuIG59cmV0dXJuIG51bGx9c3RhdGlje3RoaXMuZGVmYXVsdFJvdXRlT3B0aW9ucz17bG9jYWxSZXF1ZXN0OiExLHNraXBIb29rczohMX19YXN5bmMgcm91dGVBbmRBZGRSZXNwb25zZShlLHI9e30pe2xldCBhPXsuLi50LmRlZmF1bHRSb3V0ZU9wdGlvbnMsLi4ucn07aWYoZT1FMi5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGUubG9jYWxEYXRhPWUubG9jYWxEYXRhfHx7fSxlLmxvY2FsRGF0YS5maXJzdFR5cGVkcm91dGVyPXRoaXMsZS5tZXRob2Q9PT0iIyNWaXJ0dWFsU3RyZWFtIyMiKXtsZXQgcz1hd2FpdCB0aGlzLmhhbmRsZVN0cmVhbVR5cGVkUmVxdWVzdChlKTtyZXR1cm4gcy5sb2NhbERhdGE9bnVsbCxzfWlmKGU/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXF1ZXN0Inx8YS5sb2NhbFJlcXVlc3Qpe2xldCBzPURhdGUubm93KCk7YS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uSW5jb21pbmdSZXF1ZXN0Iix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVxdWVzdCIsdGltZXN0YW1wOnMscGF5bG9hZDplLnJlcXVlc3R9KTtsZXQgbj10aGlzLmdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLm1ldGhvZCk7aWYoIW4pcmV0dXJuIGNvbnNvbGUubG9nKGBDYW5ub3QgZmluZCBoYW5kbGVyIGZvciBtZXRob2RuYW1lICR7ZS5tZXRob2R9YCksZS5lcnJvcj17dGV4dDoiVGhlcmUgaXMgbm8gYXZhaWxhYmxlIG1ldGhvZCBmb3IgdGhpcyBjYWxsIG9uIHRoZSBzZXJ2ZXIgc2lkZSIsZGF0YTp7fX0sZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLGUubG9jYWxEYXRhPW51bGwsZT1FMi5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcyxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGU7bGV0e2hhbmRsZXI6byxyb3V0ZXI6bH09bjtpZihsLm1pZGRsZXdhcmVzLmxlbmd0aD4wKXRyeXtmb3IobGV0IGMgb2YgbC5taWRkbGV3YXJlcylhd2FpdCBjKGUpfWNhdGNoKGMpe3JldHVybiBjIGluc3RhbmNlb2YgQTI/ZS5lcnJvcj17dGV4dDpjLmVycm9yVGV4dCxkYXRhOmMuZXJyb3JEYXRhfHx7fX06ZS5lcnJvcj17dGV4dDpjLm1lc3NhZ2V8fCJNaWRkbGV3YXJlIGVycm9yIixkYXRhOnt9fSxlLmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIsZS5sb2NhbERhdGE9bnVsbCxlPUUyLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxhLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1zLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksZX1yZXR1cm4gZT1hd2FpdCBvLmFkZFJlc3BvbnNlKGUpLGUubG9jYWxEYXRhPW51bGwsZT1FMi5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcyxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGV9ZWxzZSByZXR1cm4gZT8uY29ycmVsYXRpb24/LnBoYXNlPT09InJlc3BvbnNlIj8oYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uSW5jb21pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXAuZmluZEludGVyZXN0KGUuY29ycmVsYXRpb24uaWQpPy5mdWxsZmlsbEludGVyZXN0KGUpLG51bGwpOihjb25zb2xlLmxvZygicmVjZWl2ZWQgd2VpcmRseSBzaGFwZWQgcmVxdWVzdCIpLGNvbnNvbGUubG9nKGUpLG51bGwpfWFzeW5jIGhhbmRsZVN0cmVhbVR5cGVkUmVxdWVzdChlKXtsZXQgcj1hd2FpdCB0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5maW5kKGFzeW5jIHM9PnMuc3RyZWFtSWQ9PT1lLnJlcXVlc3Quc3RyZWFtSWQpO2lmKHIpY29uc29sZS5sb2coYHN1Y2Nlc3M6IGZvdW5kIHJlbGV2YW50IHZpcnR1YWwgc3RyZWFtIHdpdGggaWQgJHtlLnJlcXVlc3Quc3RyZWFtSWR9YCk7ZWxzZSByZXR1cm4gY29uc29sZS5sb2coYG5vIHJlbGV2YW50IHZpcnR1YWwgc3RyZWFtIGZvdW5kIGZvciBzdHJlYW0gd2l0aCBpZCAke2UucmVxdWVzdC5zdHJlYW1JZH1gKSxjb25zb2xlLmxvZyh0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5nZXRBcnJheSgpKSxlO3JldHVybiBhd2FpdCByLmhhbmRsZVN0cmVhbVRyKGUpfX19KTt2YXIgQUx0LEUyLGZvZT11KCgpPT57ZnUoKTskUygpO0FMdD0iIyMjIyMjIyMjIyMjI0NMT1NJTkcgQklUIyMjIyMjIyMjIyMjIyIsRTI9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJWaXJ0dWFsU3RyZWFtIil9c3RhdGljIGVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUscixhLHM9W10pe3JldHVybiFlfHxNMi5pc0J1ZmZlckxpa2UoZSk/ZTplIGluc3RhbmNlb2YgdD8oIWUuc2lkZSYmci5zZW5kTWV0aG9kJiYoZS5zaWRlPSJyZXF1ZXN0aW5nIixlLnNlbmRNZXRob2Q9ci5zZW5kTWV0aG9kKSwhZS5zaWRlJiZyLnR5cGVkcm91dGVyJiYoZS5zaWRlPSJyZXNwb25kaW5nIixlLnR5cGVkcm91dGVyPXIudHlwZWRyb3V0ZXIsci50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuYWRkKGUpKSwhYS5yZXNwb25zZXx8cy5pbmNsdWRlcygicmVzcG9uc2UiKT8oZS5zdGFydEtlZXBBbGl2ZUxvb3AoKSx7X2lzVmlydHVhbFN0cmVhbTohMCxzdHJlYW1JZDplLnN0cmVhbUlkfSk6e19PQk1JVFRFRF9WSVJUVUFMX1NUUkVBTTohMCxyZWFzb246InBhdGggaXMgdW5kZXIgLnJlcXVlc3Q6IG9ibWl0dGVkIGZvciBkZWR1cGxpY2F0aW9uIHJlYXNvbnMgaW4gcmVzcG9uc2UgY3ljbGUuIn0pOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoKG4sbyk9PnQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobixyLGF8fGUscy5jb25jYXQoU3RyaW5nKG8pKSkpOmUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCI/T2JqZWN0LmVudHJpZXMoZSkucmVkdWNlKChuLFtvLGxdKT0+e2xldCBjPXMuY29uY2F0KG8pO3JldHVybiBuW29dPXQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobCxyLGF8fGUsYyksbn0se30pOmV9c3RhdGljIGRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLHIpe2lmKE0yLmlzQnVmZmVyTGlrZShlKXx8ZSBpbnN0YW5jZW9mIGNoKXJldHVybiBlO2lmKGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCIpe2lmKGUgaW5zdGFuY2VvZiBTZXR8fGUgaW5zdGFuY2VvZiBNYXB8fGUgaW5zdGFuY2VvZiBEYXRlfHxlIGluc3RhbmNlb2YgUmVnRXhwfHxlIGluc3RhbmNlb2YgRXJyb3J8fGUgaW5zdGFuY2VvZiBQcm9taXNlfHx0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBlO2lmKGUuX2lzVmlydHVhbFN0cmVhbSl7bGV0IGE9bmV3IHQ7cmV0dXJuIGEuc3RyZWFtSWQ9ZS5zdHJlYW1JZCwhYS5zaWRlJiZyLnNlbmRNZXRob2QmJihhLnNpZGU9InJlcXVlc3RpbmciLGEuc2VuZE1ldGhvZD1yLnNlbmRNZXRob2QpLCFhLnNpZGUmJnIudHlwZWRyb3V0ZXImJihhLnNpZGU9InJlc3BvbmRpbmciLGEudHlwZWRyb3V0ZXI9ci50eXBlZHJvdXRlcixyLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQoYSkpLGEuc3RhcnRLZWVwQWxpdmVMb29wKCksYX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBhPVtdO2ZvcihsZXQgcyBvZiBlKWEucHVzaCh0LmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhzLHIpKTtyZXR1cm4gYX1lbHNlIHJldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKGEscyk9PihhW3NdPXQuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGVbc10sciksYSkse30pfWVsc2UgcmV0dXJuIGV9Y29uc3RydWN0b3IoKXt0aGlzLnN0cmVhbUlkPXB1LnVuaSgpLHRoaXMua2VlcEFsaXZlPSEwLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheT1uZXcgRmEuQmFja3ByZXNzdXJlZEFycmF5KDE2KSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXk9bmV3IEZhLkJhY2twcmVzc3VyZWRBcnJheSgxNil9c3RhdGljIHJlY29uc3RpdHV0ZUJpbmFyeURhdGEoZSl7aWYoZT09bnVsbHx8ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHR5cGVvZiBCdWZmZXI8InUiJiZCdWZmZXIuaXNCdWZmZXIoZSkpcmV0dXJuIGU7aWYodHlwZW9mIGU9PSJvYmplY3QiKXtpZihlLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJnR5cGVvZiBlLmRhdGE9PSJzdHJpbmciJiZlLmRhdGEuc3RhcnRzV2l0aCgiYmFzZTY0OiIpKXtsZXQgYT1lLmRhdGEuc2xpY2UoNyk7aWYodHlwZW9mIEJ1ZmZlcjwidSIpe2xldCBzPUJ1ZmZlci5mcm9tKGEsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheShzLmJ1ZmZlcixzLmJ5dGVPZmZzZXQscy5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKGEpKS5tYXAocz0+cy5jaGFyQ29kZUF0KDApKSl9aWYoZS50eXBlPT09IkJ1ZmZlciImJkFycmF5LmlzQXJyYXkoZS5kYXRhKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtsZXQgcj1PYmplY3Qua2V5cyhlKTtpZihyLmxlbmd0aD4wJiZyLmV2ZXJ5KGE9Pi9eXGQrJC8udGVzdChhKSkpe2xldCBhPW5ldyBBcnJheShyLmxlbmd0aCk7Zm9yKGxldCBzIG9mIHIpYVtOdW1iZXIocyldPWVbc107aWYoYS5ldmVyeShzPT50eXBlb2Ygcz09Im51bWJlciIpKXJldHVybiBuZXcgVWludDhBcnJheShhKX19cmV0dXJuIGV9YXN5bmMgd29ya09uUXVldWUoKXtpZih0aGlzLndvcmtpbmdEZWZlcnJlZClyZXR1cm4gdGhpcy53b3JraW5nRGVmZXJyZWQucHJvbWlzZTtpZih0aGlzLndvcmtpbmdEZWZlcnJlZD14dC5kZWZlcigpLHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7bGV0IGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCkscj0hMSxhPSExLHM9aShhc3luYygpPT57bGV0IG49YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6cHUudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e2NvbnNvbGUubG9nKCJzdHJlYW0gZW5kZWQgaW1tYXR1cmVseSIpLHRoaXMua2VlcEFsaXZlPSExfSk7biYmbi5yZXNwb25zZSYmKGE9bi5yZXNwb25zZS5iYWNrcHJlc3N1cmUscj1uLnJlc3BvbnNlLm5leHQpfSwiZ2V0RmVlZGJhY2siKTtmb3IoYXdhaXQgcygpO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wfHxyOyl7aWYoYSlmb3IoO2E7KWNvbnNvbGUubG9nKCJ3YWl0aW5nIGZvciBmZWVkYmFjayBiZWNhdXNlIG9mIGJhY2twcmVzc3VyZS4uLiIpLGF3YWl0IEt0LmRlbGF5Rm9yKDUwKSxhd2FpdCBzKCk7bGV0IG47dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJihuPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpKTtsZXQgbztvPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOnB1LnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZTpuPyJjaHVuayI6InJlYWQiLGJhY2twcmVzc3VyZTplLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsLi4ubj97Y2h1bmtEYXRhOm59Ont9fSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pihjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMSxudWxsKSksbyYmby5yZXNwb25zZSYmby5yZXNwb25zZS5jaHVua0RhdGEmJnRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKHQucmVjb25zdGl0dXRlQmluYXJ5RGF0YShvLnJlc3BvbnNlLmNodW5rRGF0YSkpLGE9byYmby5yZXNwb25zZSYmby5yZXNwb25zZS5iYWNrcHJlc3N1cmUsZT0hdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxyPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UubmV4dH19dGhpcy53b3JraW5nRGVmZXJyZWQucmVzb2x2ZSgpLHRoaXMud29ya2luZ0RlZmVycmVkPW51bGx9YXN5bmMgaGFuZGxlU3RyZWFtVHIoZSl7aWYoZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSEwJiZ0aGlzLmtlZXBBbGl2ZT09PSEwP3RoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PURhdGUubm93KCk6ZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSExJiYodGhpcy5rZWVwQWxpdmU9ITEpLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJrZWVwQWxpdmUiJiYoZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImtlZXBBbGl2ZSIsa2VlcEFsaXZlOnRoaXMua2VlcEFsaXZlLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImZlZWRiYWNrIiYmKGUucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9KSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0iY2h1bmsiKXtpZih0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaCh0LnJlY29uc3RpdHV0ZUJpbmFyeURhdGEoZS5yZXF1ZXN0LmNodW5rRGF0YSkpLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiZlLnJlc3BvbnNlLmJhY2twcmVzc3VyZT09PSExKXtsZXQgcj10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKTtlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiY2h1bmsiLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjEsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGNodW5rRGF0YTp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX19ZWxzZSBlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfTtlLnJlcXVlc3Q9bnVsbH1yZXR1cm4gZX1hc3luYyBjbGVhbnVwKCl7dGhpcy50eXBlZHJvdXRlciYmdGhpcy50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMucmVtb3ZlKHRoaXMpfWFzeW5jIHN0YXJ0S2VlcEFsaXZlTG9vcCgpe2lmKHRoaXMuc2lkZT09PSJyZXNwb25kaW5nIilyZXR1cm47YXdhaXQgS3QuZGVsYXlGb3IoMCksY29uc29sZS5sb2coYHN0YXJ0aW5nIGtlZXBhbGl2ZSBsb29wIG9uIHNpZGUgJHt0aGlzLnNpZGV9YCk7bGV0IGU9MDtmb3IoO3RoaXMua2VlcEFsaXZlOylhd2FpdCB0aGlzLnRyaWdnZXJLZWVwQWxpdmUoKSxhd2FpdCBLdC5kZWxheUZvcigxZTMpO2F3YWl0IEt0LmRlbGF5Rm9yKDFlMyksYXdhaXQgdGhpcy5jbGVhbnVwKCksY29uc29sZS5sb2coYGNsZWFuZWQgdXAgZm9yIHN0cmVhbSAke3RoaXMuc3RyZWFtSWR9YCl9YXN5bmMgdHJpZ2dlcktlZXBBbGl2ZSgpe2lmKHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7Y29uc29sZS5sb2coImtlZXBhbGl2ZSBzZW50LiIpO2xldCBlPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOnB1LnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmV9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e3RoaXMua2VlcEFsaXZlPSExfSk7ZSYmZS5yZXNwb25zZSYmZS5yZXNwb25zZS5rZWVwQWxpdmU9PT0hMT90aGlzLmtlZXBBbGl2ZT0hMTp0aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpLGUmJmUucmVzcG9uc2UmJmUucmVzcG9uc2UubmV4dCYmdGhpcy53b3JrT25RdWV1ZSgpfURhdGUubm93KCktdGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ+MWU0JiYoY29uc29sZS5sb2coYGNsb3Npbmcgc3RyZWFtIGZvciAke3RoaXMuc3RyZWFtSWR9YCksdGhpcy5rZWVwQWxpdmU9ITEpfWFzeW5jIHNlbmREYXRhKGUpe3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUpLHRoaXMud29ya09uUXVldWUoKSxhd2FpdCB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvclNwYWNlKCl9YXN5bmMgZmV0Y2hEYXRhKCl7cmV0dXJuIHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5oYXNTcGFjZSxhd2FpdCB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvckl0ZW1zKCksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9YXN5bmMgcmVhZEZyb21XZWJzdHJlYW0oZSxyPSEwKXtsZXQgYT1lLmdldFJlYWRlcigpLHM9ITE7Zm9yKDshczspe2xldHt2YWx1ZTpuLGRvbmU6b309YXdhaXQgYS5yZWFkKCk7biYmYXdhaXQgdGhpcy5zZW5kRGF0YShuKSxzPW99ciYmYXdhaXQgdGhpcy5jbG9zZSghMCl9YXN5bmMgd3JpdGVUb1dlYnN0cmVhbShlKXtsZXQgcj1lLmdldFdyaXRlcigpO2Zvcig7dGhpcy5rZWVwQWxpdmV8fHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja0hhc0l0ZW1zKCk7KXtsZXQgYT1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO2lmKGE9PT1BTHQpe3IucmVsZWFzZUxvY2soKSxhd2FpdCBlLmNsb3NlKCk7YnJlYWt9YXdhaXQgci53cml0ZShhKX19YXN5bmMgY2xvc2UoZT0hMSl7ZSYmdGhpcy5zZW5kRGF0YShBTHQpLHRoaXMua2VlcEFsaXZlPSExfX19KTt2YXIgTWJlLENiZT11KCgpPT57JFMoKTtmdSgpO01iZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFRhcmdldCIpfWNvbnN0cnVjdG9yKGUpe2lmKGUucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlciYmIWUudHlwZWRSb3V0ZXJSZWYpdGhyb3cgbmV3IEVycm9yKCJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgdHlwZWRyb3V0ZXIgd2hlbiB1c2luZyBwb3N0bWV0aG9kIHdpdGggdHlwZWRyb3V0ZXIiKTt0aGlzLm9wdGlvbnM9ZX1hc3luYyBwb3N0KGUpe2xldCByO3RoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZiYmKHI9YXdhaXQgdGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmLmZpcmVFdmVudEludGVyZXN0TWFwLmFkZEludGVyZXN0KGUuY29ycmVsYXRpb24uaWQsZSkpO2xldCBzPWF3YWl0KHRoaXMub3B0aW9ucy5wb3N0TWV0aG9kfHx0aGlzLm9wdGlvbnMucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcikoZSksbjtyZXR1cm4gcj9uPWF3YWl0IHIuaW50ZXJlc3RGdWxsZmlsbGVkOnM/bj1zOm49ZSxufX19KTtmdW5jdGlvbiBFTHQodCxlKXt0cnl7Y2guZ2xvYmFsSG9va3NbdF0/LihlKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBUeXBlZFJlcXVlc3QgaG9vayBlcnJvciAoJHt0fSk6YCxyKX19dmFyIFYzYSxBUyxTYmU9dSgoKT0+e2Z1KCk7Zm9lKCk7TmIoKTskUygpO0NiZSgpO1YzYT1uZXcgVDIuV2VicmVxdWVzdENsaWVudDtpKEVMdCwiY2FsbEdsb2JhbEhvb2siKTtBUz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJlcXVlc3QiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc2tpcEhvb2tzPSExLHR5cGVvZiBlPT0ic3RyaW5nIj90aGlzLnVybEVuZFBvaW50PWU6dGhpcy50eXBlZFRhcmdldD1lLHRoaXMubWV0aG9kPXJ9YXN5bmMgZmlyZShlLHI9ITEpe2xldCBhPURhdGUubm93KCkscz17bWV0aG9kOnRoaXMubWV0aG9kLHJlcXVlc3Q6ZSxyZXNwb25zZTpudWxsLGNvcnJlbGF0aW9uOntpZDpwdS51bmkoKSxwaGFzZToicmVxdWVzdCJ9fTtzPUUyLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKHMse3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fEVMdCgib25PdXRnb2luZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOnMuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6YSxwYXlsb2FkOmV9KTtsZXQgbjtyZXR1cm4gbj1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChzLHIpLG49RTIuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKG4se3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fEVMdCgib25JbmNvbWluZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDpzLmNvcnJlbGF0aW9uLmlkLG1ldGhvZDp0aGlzLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1hLHBheWxvYWQ6bj8ucmVzcG9uc2UsZXJyb3I6bj8uZXJyb3I/LnRleHR9KSxuLnJlc3BvbnNlfWFzeW5jIHBvc3RUck9iamVjdChlLHI9ITEpe2xldCBhO2lmKHRoaXMudXJsRW5kUG9pbnQ/YT1hd2FpdCBWM2EucG9zdEpzb24odGhpcy51cmxFbmRQb2ludCxlLHI/e2NhY2hlU3RyYXRlZ3k6ImNhY2hlLWZpcnN0In06e30pOmE9YXdhaXQgdGhpcy50eXBlZFRhcmdldC5wb3N0KGUpLGEuZXJyb3Ipe2lmKGNvbnNvbGUuZXJyb3IoYG1ldGhvZDogPj4ke3RoaXMubWV0aG9kfTw8IGdvdCBhbiBFUlJPUjogIiR7YS5lcnJvci50ZXh0fSIgd2l0aCBkYXRhICR7SlNPTi5zdHJpbmdpZnkoYS5lcnJvci5kYXRhLG51bGwsMil9YCksIWEucmV0cnkpdGhyb3cgbmV3IEEyKGEuZXJyb3IudGV4dCxhLmVycm9yLmRhdGEpO3JldHVybiBudWxsfXJldHVybiBhLnJldHJ5JiYoY29uc29sZS5sb2coYHNlcnZlciByZXF1ZXN0ZWQgcmV0cnkgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uOiAke2EucmV0cnkucmVhc29ufWApLGF3YWl0IEt0LmRlbGF5Rm9yKGEucmV0cnkud2FpdEZvck1zKSxhPWF3YWl0IHRoaXMucG9zdFRyT2JqZWN0KGUscikpLGF9fX0pO3ZhciBtMT17fTtWZShtMSx7VHlwZWRIYW5kbGVyOigpPT53YmUsVHlwZWRSZXF1ZXN0OigpPT5BUyxUeXBlZFJlc3BvbnNlRXJyb3I6KCk9PkEyLFR5cGVkUm91dGVyOigpPT5jaCxUeXBlZFRhcmdldDooKT0+TWJlLFZpcnR1YWxTdHJlYW06KCk9PkUyfSk7dmFyIGhvZT11KCgpPT57U2JlKCk7a2JlKCk7JFMoKTtOYigpO0NiZSgpO2ZvZSgpfSk7ZnVuY3Rpb24gY2EodCl7aWYodCYmdHlwZW9mIHQ9PSJvYmplY3QiKXN3aXRjaCh0W2FvXSl7Y2FzZSBUbDpjYXNlIGQwOnJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIFByKHQpe2lmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Iilzd2l0Y2godFthb10pe2Nhc2UgRVM6Y2FzZSBUbDpjYXNlIGcxOmNhc2UgZDA6cmV0dXJuITB9cmV0dXJuITF9dmFyIEVTLElTLFRsLG1vZSxnMSxkMCxhbyxiMSx4MSx2MSxfcix1cix5MSxQUyxkYT11KCgpPT57RVM9U3ltYm9sLmZvcigieWFtbC5hbGlhcyIpLElTPVN5bWJvbC5mb3IoInlhbWwuZG9jdW1lbnQiKSxUbD1TeW1ib2wuZm9yKCJ5YW1sLm1hcCIpLG1vZT1TeW1ib2wuZm9yKCJ5YW1sLnBhaXIiKSxnMT1TeW1ib2wuZm9yKCJ5YW1sLnNjYWxhciIpLGQwPVN5bWJvbC5mb3IoInlhbWwuc2VxIiksYW89U3ltYm9sLmZvcigieWFtbC5ub2RlLnR5cGUiKSxiMT1pKHQ9PiEhdCYmdHlwZW9mIHQ9PSJvYmplY3QiJiZ0W2FvXT09PUVTLCJpc0FsaWFzIikseDE9aSh0PT4hIXQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdFthb109PT1JUywiaXNEb2N1bWVudCIpLHYxPWkodD0+ISF0JiZ0eXBlb2YgdD09Im9iamVjdCImJnRbYW9dPT09VGwsImlzTWFwIiksX3I9aSh0PT4hIXQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdFthb109PT1tb2UsImlzUGFpciIpLHVyPWkodD0+ISF0JiZ0eXBlb2YgdD09Im9iamVjdCImJnRbYW9dPT09ZzEsImlzU2NhbGFyIikseTE9aSh0PT4hIXQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdFthb109PT1kMCwiaXNTZXEiKTtpKGNhLCJpc0NvbGxlY3Rpb24iKTtpKFByLCJpc05vZGUiKTtQUz1pKHQ9Pih1cih0KXx8Y2EodCkpJiYhIXQuYW5jaG9yLCJoYXNBbmNob3IiKX0pO2Z1bmN0aW9uIGoxKHQsZSl7bGV0IHI9UEx0KGUpO3gxKHQpP09iKG51bGwsdC5jb250ZW50cyxyLE9iamVjdC5mcmVlemUoW3RdKSk9PT11MCYmKHQuY29udGVudHM9bnVsbCk6T2IobnVsbCx0LHIsT2JqZWN0LmZyZWV6ZShbXSkpfWZ1bmN0aW9uIE9iKHQsZSxyLGEpe2xldCBzPU5MdCh0LGUscixhKTtpZihQcihzKXx8X3IocykpcmV0dXJuIE9MdCh0LGEscyksT2IodCxzLHIsYSk7aWYodHlwZW9mIHMhPSJzeW1ib2wiKXtpZihjYShlKSl7YT1PYmplY3QuZnJlZXplKGEuY29uY2F0KGUpKTtmb3IobGV0IG49MDtuPGUuaXRlbXMubGVuZ3RoOysrbil7bGV0IG89T2IobixlLml0ZW1zW25dLHIsYSk7aWYodHlwZW9mIG89PSJudW1iZXIiKW49by0xO2Vsc2V7aWYobz09PXcxKXJldHVybiB3MTtvPT09dTAmJihlLml0ZW1zLnNwbGljZShuLDEpLG4tPTEpfX19ZWxzZSBpZihfcihlKSl7YT1PYmplY3QuZnJlZXplKGEuY29uY2F0KGUpKTtsZXQgbj1PYigia2V5IixlLmtleSxyLGEpO2lmKG49PT13MSlyZXR1cm4gdzE7bj09PXUwJiYoZS5rZXk9bnVsbCk7bGV0IG89T2IoInZhbHVlIixlLnZhbHVlLHIsYSk7aWYobz09PXcxKXJldHVybiB3MTtvPT09dTAmJihlLnZhbHVlPW51bGwpfX1yZXR1cm4gc31hc3luYyBmdW5jdGlvbiBkaCh0LGUpe2xldCByPVBMdChlKTt4MSh0KT9hd2FpdCBSYihudWxsLHQuY29udGVudHMscixPYmplY3QuZnJlZXplKFt0XSkpPT09dTAmJih0LmNvbnRlbnRzPW51bGwpOmF3YWl0IFJiKG51bGwsdCxyLE9iamVjdC5mcmVlemUoW10pKX1hc3luYyBmdW5jdGlvbiBSYih0LGUscixhKXtsZXQgcz1hd2FpdCBOTHQodCxlLHIsYSk7aWYoUHIocyl8fF9yKHMpKXJldHVybiBPTHQodCxhLHMpLFJiKHQscyxyLGEpO2lmKHR5cGVvZiBzIT0ic3ltYm9sIil7aWYoY2EoZSkpe2E9T2JqZWN0LmZyZWV6ZShhLmNvbmNhdChlKSk7Zm9yKGxldCBuPTA7bjxlLml0ZW1zLmxlbmd0aDsrK24pe2xldCBvPWF3YWl0IFJiKG4sZS5pdGVtc1tuXSxyLGEpO2lmKHR5cGVvZiBvPT0ibnVtYmVyIiluPW8tMTtlbHNle2lmKG89PT13MSlyZXR1cm4gdzE7bz09PXUwJiYoZS5pdGVtcy5zcGxpY2UobiwxKSxuLT0xKX19fWVsc2UgaWYoX3IoZSkpe2E9T2JqZWN0LmZyZWV6ZShhLmNvbmNhdChlKSk7bGV0IG49YXdhaXQgUmIoImtleSIsZS5rZXkscixhKTtpZihuPT09dzEpcmV0dXJuIHcxO249PT11MCYmKGUua2V5PW51bGwpO2xldCBvPWF3YWl0IFJiKCJ2YWx1ZSIsZS52YWx1ZSxyLGEpO2lmKG89PT13MSlyZXR1cm4gdzE7bz09PXUwJiYoZS52YWx1ZT1udWxsKX19cmV0dXJuIHN9ZnVuY3Rpb24gUEx0KHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCImJih0LkNvbGxlY3Rpb258fHQuTm9kZXx8dC5WYWx1ZSk/T2JqZWN0LmFzc2lnbih7QWxpYXM6dC5Ob2RlLE1hcDp0Lk5vZGUsU2NhbGFyOnQuTm9kZSxTZXE6dC5Ob2RlfSx0LlZhbHVlJiZ7TWFwOnQuVmFsdWUsU2NhbGFyOnQuVmFsdWUsU2VxOnQuVmFsdWV9LHQuQ29sbGVjdGlvbiYme01hcDp0LkNvbGxlY3Rpb24sU2VxOnQuQ29sbGVjdGlvbn0sdCk6dH1mdW5jdGlvbiBOTHQodCxlLHIsYSl7aWYodHlwZW9mIHI9PSJmdW5jdGlvbiIpcmV0dXJuIHIodCxlLGEpO2lmKHYxKGUpKXJldHVybiByLk1hcD8uKHQsZSxhKTtpZih5MShlKSlyZXR1cm4gci5TZXE/Lih0LGUsYSk7aWYoX3IoZSkpcmV0dXJuIHIuUGFpcj8uKHQsZSxhKTtpZih1cihlKSlyZXR1cm4gci5TY2FsYXI/Lih0LGUsYSk7aWYoYjEoZSkpcmV0dXJuIHIuQWxpYXM/Lih0LGUsYSl9ZnVuY3Rpb24gT0x0KHQsZSxyKXtsZXQgYT1lW2UubGVuZ3RoLTFdO2lmKGNhKGEpKWEuaXRlbXNbdF09cjtlbHNlIGlmKF9yKGEpKXQ9PT0ia2V5Ij9hLmtleT1yOmEudmFsdWU9cjtlbHNlIGlmKHgxKGEpKWEuY29udGVudHM9cjtlbHNle2xldCBzPWIxKGEpPyJhbGlhcyI6InNjYWxhciI7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVwbGFjZSBub2RlIHdpdGggJHtzfSBwYXJlbnRgKX19dmFyIHcxLElMdCx1MCxOUz11KCgpPT57ZGEoKTt3MT1TeW1ib2woImJyZWFrIHZpc2l0IiksSUx0PVN5bWJvbCgic2tpcCBjaGlsZHJlbiIpLHUwPVN5bWJvbCgicmVtb3ZlIG5vZGUiKTtpKGoxLCJ2aXNpdCIpLGoxLkJSRUFLPXcxLGoxLlNLSVA9SUx0LGoxLlJFTU9WRT11MDtpKE9iLCJ2aXNpdF8iKTtpKGRoLCJ2aXNpdEFzeW5jIiksZGguQlJFQUs9dzEsZGguU0tJUD1JTHQsZGguUkVNT1ZFPXUwO2koUmIsInZpc2l0QXN5bmNfIik7aShQTHQsImluaXRWaXNpdG9yIik7aShOTHQsImNhbGxWaXNpdG9yIik7aShPTHQsInJlcGxhY2VOb2RlIil9KTt2YXIgajNhLFUzYSxJMix6YmU9dSgoKT0+e2RhKCk7TlMoKTtqM2E9eyIhIjoiJTIxIiwiLCI6IiUyQyIsIlsiOiIlNUIiLCJdIjoiJTVEIiwieyI6IiU3QiIsIn0iOiIlN0QifSxVM2E9aSh0PT50LnJlcGxhY2UoL1shLFtcXXt9XS9nLGU9PmozYVtlXSksImVzY2FwZVRhZ05hbWUiKSxJMj1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkRpcmVjdGl2ZXMiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuZG9jU3RhcnQ9bnVsbCx0aGlzLmRvY0VuZD0hMSx0aGlzLnlhbWw9T2JqZWN0LmFzc2lnbih7fSx0LmRlZmF1bHRZYW1sLGUpLHRoaXMudGFncz1PYmplY3QuYXNzaWduKHt9LHQuZGVmYXVsdFRhZ3Mscil9Y2xvbmUoKXtsZXQgZT1uZXcgdCh0aGlzLnlhbWwsdGhpcy50YWdzKTtyZXR1cm4gZS5kb2NTdGFydD10aGlzLmRvY1N0YXJ0LGV9YXREb2N1bWVudCgpe2xldCBlPW5ldyB0KHRoaXMueWFtbCx0aGlzLnRhZ3MpO3N3aXRjaCh0aGlzLnlhbWwudmVyc2lvbil7Y2FzZSIxLjEiOnRoaXMuYXROZXh0RG9jdW1lbnQ9ITA7YnJlYWs7Y2FzZSIxLjIiOnRoaXMuYXROZXh0RG9jdW1lbnQ9ITEsdGhpcy55YW1sPXtleHBsaWNpdDp0LmRlZmF1bHRZYW1sLmV4cGxpY2l0LHZlcnNpb246IjEuMiJ9LHRoaXMudGFncz1PYmplY3QuYXNzaWduKHt9LHQuZGVmYXVsdFRhZ3MpO2JyZWFrfXJldHVybiBlfWFkZChlLHIpe3RoaXMuYXROZXh0RG9jdW1lbnQmJih0aGlzLnlhbWw9e2V4cGxpY2l0OnQuZGVmYXVsdFlhbWwuZXhwbGljaXQsdmVyc2lvbjoiMS4xIn0sdGhpcy50YWdzPU9iamVjdC5hc3NpZ24oe30sdC5kZWZhdWx0VGFncyksdGhpcy5hdE5leHREb2N1bWVudD0hMSk7bGV0IGE9ZS50cmltKCkuc3BsaXQoL1sgXHRdKy8pLHM9YS5zaGlmdCgpO3N3aXRjaChzKXtjYXNlIiVUQUciOntpZihhLmxlbmd0aCE9PTImJihyKDAsIiVUQUcgZGlyZWN0aXZlIHNob3VsZCBjb250YWluIGV4YWN0bHkgdHdvIHBhcnRzIiksYS5sZW5ndGg8MikpcmV0dXJuITE7bGV0W24sb109YTtyZXR1cm4gdGhpcy50YWdzW25dPW8sITB9Y2FzZSIlWUFNTCI6e2lmKHRoaXMueWFtbC5leHBsaWNpdD0hMCxhLmxlbmd0aCE9PTEpcmV0dXJuIHIoMCwiJVlBTUwgZGlyZWN0aXZlIHNob3VsZCBjb250YWluIGV4YWN0bHkgb25lIHBhcnQiKSwhMTtsZXRbbl09YTtpZihuPT09IjEuMSJ8fG49PT0iMS4yIilyZXR1cm4gdGhpcy55YW1sLnZlcnNpb249biwhMDt7bGV0IG89L15cZCtcLlxkKyQvLnRlc3Qobik7cmV0dXJuIHIoNixgVW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uICR7bn1gLG8pLCExfX1kZWZhdWx0OnJldHVybiByKDAsYFVua25vd24gZGlyZWN0aXZlICR7c31gLCEwKSwhMX19dGFnTmFtZShlLHIpe2lmKGU9PT0iISIpcmV0dXJuIiEiO2lmKGVbMF0hPT0iISIpcmV0dXJuIHIoYE5vdCBhIHZhbGlkIHRhZzogJHtlfWApLG51bGw7aWYoZVsxXT09PSI8Iil7bGV0IG89ZS5zbGljZSgyLC0xKTtyZXR1cm4gbz09PSIhInx8bz09PSIhISI/KHIoYFZlcmJhdGltIHRhZ3MgYXJlbid0IHJlc29sdmVkLCBzbyAke2V9IGlzIGludmFsaWQuYCksbnVsbCk6KGVbZS5sZW5ndGgtMV0hPT0iPiImJnIoIlZlcmJhdGltIHRhZ3MgbXVzdCBlbmQgd2l0aCBhID4iKSxvKX1sZXRbLGEsc109ZS5tYXRjaCgvXiguKiEpKFteIV0qKSQvcyk7c3x8cihgVGhlICR7ZX0gdGFnIGhhcyBubyBzdWZmaXhgKTtsZXQgbj10aGlzLnRhZ3NbYV07aWYobil0cnl7cmV0dXJuIG4rZGVjb2RlVVJJQ29tcG9uZW50KHMpfWNhdGNoKG8pe3JldHVybiByKFN0cmluZyhvKSksbnVsbH1yZXR1cm4gYT09PSIhIj9lOihyKGBDb3VsZCBub3QgcmVzb2x2ZSB0YWc6ICR7ZX1gKSxudWxsKX10YWdTdHJpbmcoZSl7Zm9yKGxldFtyLGFdb2YgT2JqZWN0LmVudHJpZXModGhpcy50YWdzKSlpZihlLnN0YXJ0c1dpdGgoYSkpcmV0dXJuIHIrVTNhKGUuc3Vic3RyaW5nKGEubGVuZ3RoKSk7cmV0dXJuIGVbMF09PT0iISI/ZTpgITwke2V9PmB9dG9TdHJpbmcoZSl7bGV0IHI9dGhpcy55YW1sLmV4cGxpY2l0P1tgJVlBTUwgJHt0aGlzLnlhbWwudmVyc2lvbnx8IjEuMiJ9YF06W10sYT1PYmplY3QuZW50cmllcyh0aGlzLnRhZ3MpLHM7aWYoZSYmYS5sZW5ndGg+MCYmUHIoZS5jb250ZW50cykpe2xldCBuPXt9O2oxKGUuY29udGVudHMsKG8sbCk9PntQcihsKSYmbC50YWcmJihuW2wudGFnXT0hMCl9KSxzPU9iamVjdC5rZXlzKG4pfWVsc2Ugcz1bXTtmb3IobGV0W24sb11vZiBhKW49PT0iISEiJiZvPT09InRhZzp5YW1sLm9yZywyMDAyOiJ8fCghZXx8cy5zb21lKGw9Pmwuc3RhcnRzV2l0aChvKSkpJiZyLnB1c2goYCVUQUcgJHtufSAke299YCk7cmV0dXJuIHIuam9pbihgCmApfX07STIuZGVmYXVsdFlhbWw9e2V4cGxpY2l0OiExLHZlcnNpb246IjEuMiJ9LEkyLmRlZmF1bHRUYWdzPXsiISEiOiJ0YWc6eWFtbC5vcmcsMjAwMjoifX0pO2Z1bmN0aW9uIE9TKHQpe2lmKC9bXHgwMC1ceDE5XHMsW1xde31dLy50ZXN0KHQpKXtsZXQgcj1gQW5jaG9yIG11c3Qgbm90IGNvbnRhaW4gd2hpdGVzcGFjZSBvciBjb250cm9sIGNoYXJhY3RlcnM6ICR7SlNPTi5zdHJpbmdpZnkodCl9YDt0aHJvdyBuZXcgRXJyb3Iocil9cmV0dXJuITB9ZnVuY3Rpb24gZ29lKHQpe2xldCBlPW5ldyBTZXQ7cmV0dXJuIGoxKHQse1ZhbHVlKHIsYSl7YS5hbmNob3ImJmUuYWRkKGEuYW5jaG9yKX19KSxlfWZ1bmN0aW9uIGJvZSh0LGUpe2ZvcihsZXQgcj0xOzsrK3Ipe2xldCBhPWAke3R9JHtyfWA7aWYoIWUuaGFzKGEpKXJldHVybiBhfX1mdW5jdGlvbiBfYmUodCxlKXtsZXQgcj1bXSxhPW5ldyBNYXAscz1udWxsO3JldHVybntvbkFuY2hvcjppKG49PntyLnB1c2gobikscz8/KHM9Z29lKHQpKTtsZXQgbz1ib2UoZSxzKTtyZXR1cm4gcy5hZGQobyksb30sIm9uQW5jaG9yIiksc2V0QW5jaG9yczppKCgpPT57Zm9yKGxldCBuIG9mIHIpe2xldCBvPWEuZ2V0KG4pO2lmKHR5cGVvZiBvPT0ib2JqZWN0IiYmby5hbmNob3ImJih1cihvLm5vZGUpfHxjYShvLm5vZGUpKSlvLm5vZGUuYW5jaG9yPW8uYW5jaG9yO2Vsc2V7bGV0IGw9bmV3IEVycm9yKCJGYWlsZWQgdG8gcmVzb2x2ZSByZXBlYXRlZCBvYmplY3QgKHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4pIik7dGhyb3cgbC5zb3VyY2U9bixsfX19LCJzZXRBbmNob3JzIiksc291cmNlT2JqZWN0czphfX12YXIgeG9lPXUoKCk9PntkYSgpO05TKCk7aShPUywiYW5jaG9ySXNWYWxpZCIpO2koZ29lLCJhbmNob3JOYW1lcyIpO2koYm9lLCJmaW5kTmV3QW5jaG9yIik7aShfYmUsImNyZWF0ZU5vZGVBbmNob3JzIil9KTtmdW5jdGlvbiBZZCh0LGUscixhKXtpZihhJiZ0eXBlb2YgYT09Im9iamVjdCIpaWYoQXJyYXkuaXNBcnJheShhKSlmb3IobGV0IHM9MCxuPWEubGVuZ3RoO3M8bjsrK3Mpe2xldCBvPWFbc10sbD1ZZCh0LGEsU3RyaW5nKHMpLG8pO2w9PT12b2lkIDA/ZGVsZXRlIGFbc106bCE9PW8mJihhW3NdPWwpfWVsc2UgaWYoYSBpbnN0YW5jZW9mIE1hcClmb3IobGV0IHMgb2YgQXJyYXkuZnJvbShhLmtleXMoKSkpe2xldCBuPWEuZ2V0KHMpLG89WWQodCxhLHMsbik7bz09PXZvaWQgMD9hLmRlbGV0ZShzKTpvIT09biYmYS5zZXQocyxvKX1lbHNlIGlmKGEgaW5zdGFuY2VvZiBTZXQpZm9yKGxldCBzIG9mIEFycmF5LmZyb20oYSkpe2xldCBuPVlkKHQsYSxzLHMpO249PT12b2lkIDA/YS5kZWxldGUocyk6biE9PXMmJihhLmRlbGV0ZShzKSxhLmFkZChuKSl9ZWxzZSBmb3IobGV0W3Msbl1vZiBPYmplY3QuZW50cmllcyhhKSl7bGV0IG89WWQodCxhLHMsbik7bz09PXZvaWQgMD9kZWxldGUgYVtzXTpvIT09biYmKGFbc109byl9cmV0dXJuIHQuY2FsbChlLHIsYSl9dmFyIFRiZT11KCgpPT57aShZZCwiYXBwbHlSZXZpdmVyIil9KTtmdW5jdGlvbiB4cyh0LGUscil7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5tYXAoKGEscyk9PnhzKGEsU3RyaW5nKHMpLHIpKTtpZih0JiZ0eXBlb2YgdC50b0pTT049PSJmdW5jdGlvbiIpe2lmKCFyfHwhUFModCkpcmV0dXJuIHQudG9KU09OKGUscik7bGV0IGE9e2FsaWFzQ291bnQ6MCxjb3VudDoxLHJlczp2b2lkIDB9O3IuYW5jaG9ycy5zZXQodCxhKSxyLm9uQ3JlYXRlPW49PnthLnJlcz1uLGRlbGV0ZSByLm9uQ3JlYXRlfTtsZXQgcz10LnRvSlNPTihlLHIpO3JldHVybiByLm9uQ3JlYXRlJiZyLm9uQ3JlYXRlKHMpLHN9cmV0dXJuIHR5cGVvZiB0PT0iYmlnaW50IiYmIXI/LmtlZXA/TnVtYmVyKHQpOnR9dmFyIGh1PXUoKCk9PntkYSgpO2koeHMsInRvSlMiKX0pO3ZhciBLZCx2b2U9dSgoKT0+e1RiZSgpO2RhKCk7aHUoKTtLZD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJOb2RlQmFzZSIpfWNvbnN0cnVjdG9yKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGFvLHt2YWx1ZTplfSl9Y2xvbmUoKXtsZXQgZT1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0aGlzKSk7cmV0dXJuIHRoaXMucmFuZ2UmJihlLnJhbmdlPXRoaXMucmFuZ2Uuc2xpY2UoKSksZX10b0pTKGUse21hcEFzTWFwOnIsbWF4QWxpYXNDb3VudDphLG9uQW5jaG9yOnMscmV2aXZlcjpufT17fSl7aWYoIXgxKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkEgZG9jdW1lbnQgYXJndW1lbnQgaXMgcmVxdWlyZWQiKTtsZXQgbz17YW5jaG9yczpuZXcgTWFwLGRvYzplLGtlZXA6ITAsbWFwQXNNYXA6cj09PSEwLG1hcEtleVdhcm5lZDohMSxtYXhBbGlhc0NvdW50OnR5cGVvZiBhPT0ibnVtYmVyIj9hOjEwMH0sbD14cyh0aGlzLCIiLG8pO2lmKHR5cGVvZiBzPT0iZnVuY3Rpb24iKWZvcihsZXR7Y291bnQ6YyxyZXM6ZH1vZiBvLmFuY2hvcnMudmFsdWVzKCkpcyhkLGMpO3JldHVybiB0eXBlb2Ygbj09ImZ1bmN0aW9uIj9ZZChuLHsiIjpsfSwiIixsKTpsfX19KTtmdW5jdGlvbiB5b2UodCxlLHIpe2lmKGIxKGUpKXtsZXQgYT1lLnJlc29sdmUodCkscz1yJiZhJiZyLmdldChhKTtyZXR1cm4gcz9zLmNvdW50KnMuYWxpYXNDb3VudDowfWVsc2UgaWYoY2EoZSkpe2xldCBhPTA7Zm9yKGxldCBzIG9mIGUuaXRlbXMpe2xldCBuPXlvZSh0LHMscik7bj5hJiYoYT1uKX1yZXR1cm4gYX1lbHNlIGlmKF9yKGUpKXtsZXQgYT15b2UodCxlLmtleSxyKSxzPXlvZSh0LGUudmFsdWUscik7cmV0dXJuIE1hdGgubWF4KGEscyl9cmV0dXJuIDF9dmFyIExsLFJTPXUoKCk9Pnt4b2UoKTtOUygpO2RhKCk7dm9lKCk7aHUoKTtMbD1jbGFzcyBleHRlbmRzIEtke3N0YXRpY3tpKHRoaXMsIkFsaWFzIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoRVMpLHRoaXMuc291cmNlPWUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInRhZyIse3NldCgpe3Rocm93IG5ldyBFcnJvcigiQWxpYXMgbm9kZXMgY2Fubm90IGhhdmUgdGFncyIpfX0pfXJlc29sdmUoZSxyKXtpZihyPy5tYXhBbGlhc0NvdW50PT09MCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoIkFsaWFzIHJlc29sdXRpb24gaXMgZGlzYWJsZWQiKTtsZXQgYTtyPy5hbGlhc1Jlc29sdmVDYWNoZT9hPXIuYWxpYXNSZXNvbHZlQ2FjaGU6KGE9W10sajEoZSx7Tm9kZTppKChuLG8pPT57KGIxKG8pfHxQUyhvKSkmJmEucHVzaChvKX0sIk5vZGUiKX0pLHImJihyLmFsaWFzUmVzb2x2ZUNhY2hlPWEpKTtsZXQgcztmb3IobGV0IG4gb2YgYSl7aWYobj09PXRoaXMpYnJlYWs7bi5hbmNob3I9PT10aGlzLnNvdXJjZSYmKHM9bil9cmV0dXJuIHN9dG9KU09OKGUscil7aWYoIXIpcmV0dXJue3NvdXJjZTp0aGlzLnNvdXJjZX07bGV0e2FuY2hvcnM6YSxkb2M6cyxtYXhBbGlhc0NvdW50Om59PXIsbz10aGlzLnJlc29sdmUocyxyKTtpZighbyl7bGV0IGM9YFVucmVzb2x2ZWQgYWxpYXMgKHRoZSBhbmNob3IgbXVzdCBiZSBzZXQgYmVmb3JlIHRoZSBhbGlhcyk6ICR7dGhpcy5zb3VyY2V9YDt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoYyl9bGV0IGw9YS5nZXQobyk7aWYobHx8KHhzKG8sbnVsbCxyKSxsPWEuZ2V0KG8pKSxsPy5yZXM9PT12b2lkIDApe2xldCBjPSJUaGlzIHNob3VsZCBub3QgaGFwcGVuOiBBbGlhcyBhbmNob3Igd2FzIG5vdCByZXNvbHZlZD8iO3Rocm93IG5ldyBSZWZlcmVuY2VFcnJvcihjKX1pZihuPj0wJiYobC5jb3VudCs9MSxsLmFsaWFzQ291bnQ9PT0wJiYobC5hbGlhc0NvdW50PXlvZShzLG8sYSkpLGwuY291bnQqbC5hbGlhc0NvdW50Pm4pKXtsZXQgYz0iRXhjZXNzaXZlIGFsaWFzIGNvdW50IGluZGljYXRlcyBhIHJlc291cmNlIGV4aGF1c3Rpb24gYXR0YWNrIjt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoYyl9cmV0dXJuIGwucmVzfXRvU3RyaW5nKGUscixhKXtsZXQgcz1gKiR7dGhpcy5zb3VyY2V9YDtpZihlKXtpZihPUyh0aGlzLnNvdXJjZSksZS5vcHRpb25zLnZlcmlmeUFsaWFzT3JkZXImJiFlLmFuY2hvcnMuaGFzKHRoaXMuc291cmNlKSl7bGV0IG49YFVucmVzb2x2ZWQgYWxpYXMgKHRoZSBhbmNob3IgbXVzdCBiZSBzZXQgYmVmb3JlIHRoZSBhbGlhcyk6ICR7dGhpcy5zb3VyY2V9YDt0aHJvdyBuZXcgRXJyb3Iobil9aWYoZS5pbXBsaWNpdEtleSlyZXR1cm5gJHtzfSBgfXJldHVybiBzfX07aSh5b2UsImdldEFsaWFzQ291bnQiKX0pO3ZhciBGUyxTdCx2cz11KCgpPT57ZGEoKTt2b2UoKTtodSgpO0ZTPWkodD0+IXR8fHR5cGVvZiB0IT0iZnVuY3Rpb24iJiZ0eXBlb2YgdCE9Im9iamVjdCIsImlzU2NhbGFyVmFsdWUiKSxTdD1jbGFzcyBleHRlbmRzIEtke3N0YXRpY3tpKHRoaXMsIlNjYWxhciIpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKGcxKSx0aGlzLnZhbHVlPWV9dG9KU09OKGUscil7cmV0dXJuIHI/LmtlZXA/dGhpcy52YWx1ZTp4cyh0aGlzLnZhbHVlLGUscil9dG9TdHJpbmcoKXtyZXR1cm4gU3RyaW5nKHRoaXMudmFsdWUpfX07U3QuQkxPQ0tfRk9MREVEPSJCTE9DS19GT0xERUQiLFN0LkJMT0NLX0xJVEVSQUw9IkJMT0NLX0xJVEVSQUwiLFN0LlBMQUlOPSJQTEFJTiIsU3QuUVVPVEVfRE9VQkxFPSJRVU9URV9ET1VCTEUiLFN0LlFVT1RFX1NJTkdMRT0iUVVPVEVfU0lOR0xFIn0pO2Z1bmN0aW9uIEczYSh0LGUscil7aWYoZSl7bGV0IGE9ci5maWx0ZXIobj0+bi50YWc9PT1lKSxzPWEuZmluZChuPT4hbi5mb3JtYXQpPz9hWzBdO2lmKCFzKXRocm93IG5ldyBFcnJvcihgVGFnICR7ZX0gbm90IGZvdW5kYCk7cmV0dXJuIHN9cmV0dXJuIHIuZmluZChhPT5hLmlkZW50aWZ5Py4odCkmJiFhLmZvcm1hdCl9ZnVuY3Rpb24gcDAodCxlLHIpe2lmKHgxKHQpJiYodD10LmNvbnRlbnRzKSxQcih0KSlyZXR1cm4gdDtpZihfcih0KSl7bGV0IHA9ci5zY2hlbWFbVGxdLmNyZWF0ZU5vZGU/LihyLnNjaGVtYSxudWxsLHIpO3JldHVybiBwLml0ZW1zLnB1c2godCkscH0odCBpbnN0YW5jZW9mIFN0cmluZ3x8dCBpbnN0YW5jZW9mIE51bWJlcnx8dCBpbnN0YW5jZW9mIEJvb2xlYW58fHR5cGVvZiBCaWdJbnQ8InUiJiZ0IGluc3RhbmNlb2YgQmlnSW50KSYmKHQ9dC52YWx1ZU9mKCkpO2xldHthbGlhc0R1cGxpY2F0ZU9iamVjdHM6YSxvbkFuY2hvcjpzLG9uVGFnT2JqOm4sc2NoZW1hOm8sc291cmNlT2JqZWN0czpsfT1yLGM7aWYoYSYmdCYmdHlwZW9mIHQ9PSJvYmplY3QiKXtpZihjPWwuZ2V0KHQpLGMpcmV0dXJuIGMuYW5jaG9yPz8oYy5hbmNob3I9cyh0KSksbmV3IExsKGMuYW5jaG9yKTtjPXthbmNob3I6bnVsbCxub2RlOm51bGx9LGwuc2V0KHQsYyl9ZT8uc3RhcnRzV2l0aCgiISEiKSYmKGU9VzNhK2Uuc2xpY2UoMikpO2xldCBkPUczYSh0LGUsby50YWdzKTtpZighZCl7aWYodCYmdHlwZW9mIHQudG9KU09OPT0iZnVuY3Rpb24iJiYodD10LnRvSlNPTigpKSwhdHx8dHlwZW9mIHQhPSJvYmplY3QiKXtsZXQgcD1uZXcgU3QodCk7cmV0dXJuIGMmJihjLm5vZGU9cCkscH1kPXQgaW5zdGFuY2VvZiBNYXA/b1tUbF06U3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdCh0KT9vW2QwXTpvW1RsXX1uJiYobihkKSxkZWxldGUgci5vblRhZ09iaik7bGV0IGY9ZD8uY3JlYXRlTm9kZT9kLmNyZWF0ZU5vZGUoci5zY2hlbWEsdCxyKTp0eXBlb2YgZD8ubm9kZUNsYXNzPy5mcm9tPT0iZnVuY3Rpb24iP2Qubm9kZUNsYXNzLmZyb20oci5zY2hlbWEsdCxyKTpuZXcgU3QodCk7cmV0dXJuIGU/Zi50YWc9ZTpkLmRlZmF1bHR8fChmLnRhZz1kLnRhZyksYyYmKGMubm9kZT1mKSxmfXZhciBXM2EsQlM9dSgoKT0+e1JTKCk7ZGEoKTt2cygpO1czYT0idGFnOnlhbWwub3JnLDIwMDI6IjtpKEczYSwiZmluZFRhZ09iamVjdCIpO2kocDAsImNyZWF0ZU5vZGUiKX0pO2Z1bmN0aW9uIEZiKHQsZSxyKXtsZXQgYT1yO2ZvcihsZXQgcz1lLmxlbmd0aC0xO3M+PTA7LS1zKXtsZXQgbj1lW3NdO2lmKHR5cGVvZiBuPT0ibnVtYmVyIiYmTnVtYmVyLmlzSW50ZWdlcihuKSYmbj49MCl7bGV0IG89W107b1tuXT1hLGE9b31lbHNlIGE9bmV3IE1hcChbW24sYV1dKX1yZXR1cm4gcDAoYSx2b2lkIDAse2FsaWFzRHVwbGljYXRlT2JqZWN0czohMSxrZWVwVW5kZWZpbmVkOiExLG9uQW5jaG9yOmkoKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRoaXMgc2hvdWxkIG5vdCBoYXBwZW4sIHBsZWFzZSByZXBvcnQgYSBidWcuIil9LCJvbkFuY2hvciIpLHNjaGVtYTp0LHNvdXJjZU9iamVjdHM6bmV3IE1hcH0pfXZhciBwaCx1aCx3b2U9dSgoKT0+e0JTKCk7ZGEoKTt2b2UoKTtpKEZiLCJjb2xsZWN0aW9uRnJvbVBhdGgiKTtwaD1pKHQ9PnQ9PW51bGx8fHR5cGVvZiB0PT0ib2JqZWN0IiYmISF0W1N5bWJvbC5pdGVyYXRvcl0oKS5uZXh0KCkuZG9uZSwiaXNFbXB0eVBhdGgiKSx1aD1jbGFzcyBleHRlbmRzIEtke3N0YXRpY3tpKHRoaXMsIkNvbGxlY3Rpb24iKX1jb25zdHJ1Y3RvcihlLHIpe3N1cGVyKGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJzY2hlbWEiLHt2YWx1ZTpyLGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwfSl9Y2xvbmUoZSl7bGV0IHI9T2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiBlJiYoci5zY2hlbWE9ZSksci5pdGVtcz1yLml0ZW1zLm1hcChhPT5QcihhKXx8X3IoYSk/YS5jbG9uZShlKTphKSx0aGlzLnJhbmdlJiYoci5yYW5nZT10aGlzLnJhbmdlLnNsaWNlKCkpLHJ9YWRkSW4oZSxyKXtpZihwaChlKSl0aGlzLmFkZChyKTtlbHNle2xldFthLC4uLnNdPWUsbj10aGlzLmdldChhLCEwKTtpZihjYShuKSluLmFkZEluKHMscik7ZWxzZSBpZihuPT09dm9pZCAwJiZ0aGlzLnNjaGVtYSl0aGlzLnNldChhLEZiKHRoaXMuc2NoZW1hLHMscikpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZQU1MIGNvbGxlY3Rpb24gYXQgJHthfS4gUmVtYWluaW5nIHBhdGg6ICR7c31gKX19ZGVsZXRlSW4oZSl7bGV0W3IsLi4uYV09ZTtpZihhLmxlbmd0aD09PTApcmV0dXJuIHRoaXMuZGVsZXRlKHIpO2xldCBzPXRoaXMuZ2V0KHIsITApO2lmKGNhKHMpKXJldHVybiBzLmRlbGV0ZUluKGEpO3Rocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgWUFNTCBjb2xsZWN0aW9uIGF0ICR7cn0uIFJlbWFpbmluZyBwYXRoOiAke2F9YCl9Z2V0SW4oZSxyKXtsZXRbYSwuLi5zXT1lLG49dGhpcy5nZXQoYSwhMCk7cmV0dXJuIHMubGVuZ3RoPT09MD8hciYmdXIobik/bi52YWx1ZTpuOmNhKG4pP24uZ2V0SW4ocyxyKTp2b2lkIDB9aGFzQWxsTnVsbFZhbHVlcyhlKXtyZXR1cm4gdGhpcy5pdGVtcy5ldmVyeShyPT57aWYoIV9yKHIpKXJldHVybiExO2xldCBhPXIudmFsdWU7cmV0dXJuIGE9PW51bGx8fGUmJnVyKGEpJiZhLnZhbHVlPT1udWxsJiYhYS5jb21tZW50QmVmb3JlJiYhYS5jb21tZW50JiYhYS50YWd9KX1oYXNJbihlKXtsZXRbciwuLi5hXT1lO2lmKGEubGVuZ3RoPT09MClyZXR1cm4gdGhpcy5oYXMocik7bGV0IHM9dGhpcy5nZXQociwhMCk7cmV0dXJuIGNhKHMpP3MuaGFzSW4oYSk6ITF9c2V0SW4oZSxyKXtsZXRbYSwuLi5zXT1lO2lmKHMubGVuZ3RoPT09MCl0aGlzLnNldChhLHIpO2Vsc2V7bGV0IG49dGhpcy5nZXQoYSwhMCk7aWYoY2Eobikpbi5zZXRJbihzLHIpO2Vsc2UgaWYobj09PXZvaWQgMCYmdGhpcy5zY2hlbWEpdGhpcy5zZXQoYSxGYih0aGlzLnNjaGVtYSxzLHIpKTtlbHNlIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgWUFNTCBjb2xsZWN0aW9uIGF0ICR7YX0uIFJlbWFpbmluZyBwYXRoOiAke3N9YCl9fX19KTtmdW5jdGlvbiBVMSh0LGUpe3JldHVybi9eXG4rJC8udGVzdCh0KT90LnN1YnN0cmluZygxKTplP3QucmVwbGFjZSgvXig/ISAqJCkvZ20sZSk6dH12YXIgTGJlLFAyLEhTPXUoKCk9PntMYmU9aSh0PT50LnJlcGxhY2UoL14oPyEkKSg/OiAkKT8vZ20sIiMiKSwic3RyaW5naWZ5Q29tbWVudCIpO2koVTEsImluZGVudENvbW1lbnQiKTtQMj1pKCh0LGUscik9PnQuZW5kc1dpdGgoYApgKT9VMShyLGUpOnIuaW5jbHVkZXMoYApgKT9gCmArVTEocixlKToodC5lbmRzV2l0aCgiICIpPyIiOiIgIikrciwibGluZUNvbW1lbnQiKX0pO2Z1bmN0aW9uIEhiKHQsZSxyPSJmbG93Iix7aW5kZW50QXRTdGFydDphLGxpbmVXaWR0aDpzPTgwLG1pbkNvbnRlbnRXaWR0aDpuPTIwLG9uRm9sZDpvLG9uT3ZlcmZsb3c6bH09e30pe2lmKCFzfHxzPDApcmV0dXJuIHQ7czxuJiYobj0wKTtsZXQgYz1NYXRoLm1heCgxK24sMStzLWUubGVuZ3RoKTtpZih0Lmxlbmd0aDw9YylyZXR1cm4gdDtsZXQgZD1bXSxmPXt9LHA9cy1lLmxlbmd0aDt0eXBlb2YgYT09Im51bWJlciImJihhPnMtTWF0aC5tYXgoMixuKT9kLnB1c2goMCk6cD1zLWEpO2xldCBoLG0sdj0hMSxiPS0xLGc9LTEseT0tMTtyPT09cVMmJihiPVJMdCh0LGIsZS5sZW5ndGgpLGIhPT0tMSYmKHA9YitjKSk7Zm9yKGxldCBNO009dFtiKz0xXTspe2lmKHI9PT1CYiYmTT09PSJcXCIpe3N3aXRjaChnPWIsdFtiKzFdKXtjYXNlIngiOmIrPTM7YnJlYWs7Y2FzZSJ1IjpiKz01O2JyZWFrO2Nhc2UiVSI6Yis9OTticmVhaztkZWZhdWx0OmIrPTF9eT1ifWlmKE09PT1gCmApcj09PXFTJiYoYj1STHQodCxiLGUubGVuZ3RoKSkscD1iK2UubGVuZ3RoK2MsaD12b2lkIDA7ZWxzZXtpZihNPT09IiAiJiZtJiZtIT09IiAiJiZtIT09YApgJiZtIT09IgkiKXtsZXQgTj10W2IrMV07TiYmTiE9PSIgIiYmTiE9PWAKYCYmTiE9PSIJIiYmKGg9Yil9aWYoYj49cClpZihoKWQucHVzaChoKSxwPWgrYyxoPXZvaWQgMDtlbHNlIGlmKHI9PT1CYil7Zm9yKDttPT09IiAifHxtPT09IgkiOyltPU0sTT10W2IrPTFdLHY9ITA7bGV0IE49Yj55KzE/Yi0yOmctMTtpZihmW05dKXJldHVybiB0O2QucHVzaChOKSxmW05dPSEwLHA9TitjLGg9dm9pZCAwfWVsc2Ugdj0hMH1tPU19aWYodiYmbCYmbCgpLGQubGVuZ3RoPT09MClyZXR1cm4gdDtvJiZvKCk7bGV0IGs9dC5zbGljZSgwLGRbMF0pO2ZvcihsZXQgTT0wO008ZC5sZW5ndGg7KytNKXtsZXQgTj1kW01dLF89ZFtNKzFdfHx0Lmxlbmd0aDtOPT09MD9rPWAKJHtlfSR7dC5zbGljZSgwLF8pfWA6KHI9PT1CYiYmZltOXSYmKGsrPWAke3RbTl19XFxgKSxrKz1gCiR7ZX0ke3Quc2xpY2UoTisxLF8pfWApfXJldHVybiBrfWZ1bmN0aW9uIFJMdCh0LGUscil7bGV0IGE9ZSxzPWUrMSxuPXRbc107Zm9yKDtuPT09IiAifHxuPT09IgkiOylpZihlPHMrciluPXRbKytlXTtlbHNle2RvIG49dFsrK2VdO3doaWxlKG4mJm4hPT1gCmApO2E9ZSxzPWUrMSxuPXRbc119cmV0dXJuIGF9dmFyIGtvZSxxUyxCYixGTHQ9dSgoKT0+e2tvZT0iZmxvdyIscVM9ImJsb2NrIixCYj0icXVvdGVkIjtpKEhiLCJmb2xkRmxvd0xpbmVzIik7aShSTHQsImNvbnN1bWVNb3JlSW5kZW50ZWRMaW5lcyIpfSk7ZnVuY3Rpb24gWTNhKHQsZSxyKXtpZighZXx8ZTwwKXJldHVybiExO2xldCBhPWUtcixzPXQubGVuZ3RoO2lmKHM8PWEpcmV0dXJuITE7Zm9yKGxldCBuPTAsbz0wO248czsrK24paWYodFtuXT09PWAKYCl7aWYobi1vPmEpcmV0dXJuITA7aWYobz1uKzEscy1vPD1hKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIFZTKHQsZSl7bGV0IHI9SlNPTi5zdHJpbmdpZnkodCk7aWYoZS5vcHRpb25zLmRvdWJsZVF1b3RlZEFzSlNPTilyZXR1cm4gcjtsZXR7aW1wbGljaXRLZXk6YX09ZSxzPWUub3B0aW9ucy5kb3VibGVRdW90ZWRNaW5NdWx0aUxpbmVMZW5ndGgsbj1lLmluZGVudHx8KE1vZSh0KT8iICAiOiIiKSxvPSIiLGw9MDtmb3IobGV0IGM9MCxkPXJbY107ZDtkPXJbKytjXSlpZihkPT09IiAiJiZyW2MrMV09PT0iXFwiJiZyW2MrMl09PT0ibiImJihvKz1yLnNsaWNlKGwsYykrIlxcICIsYys9MSxsPWMsZD0iXFwiKSxkPT09IlxcIilzd2l0Y2gocltjKzFdKXtjYXNlInUiOntvKz1yLnNsaWNlKGwsYyk7bGV0IGY9ci5zdWJzdHIoYysyLDQpO3N3aXRjaChmKXtjYXNlIjAwMDAiOm8rPSJcXDAiO2JyZWFrO2Nhc2UiMDAwNyI6bys9IlxcYSI7YnJlYWs7Y2FzZSIwMDBiIjpvKz0iXFx2IjticmVhaztjYXNlIjAwMWIiOm8rPSJcXGUiO2JyZWFrO2Nhc2UiMDA4NSI6bys9IlxcTiI7YnJlYWs7Y2FzZSIwMGEwIjpvKz0iXFxfIjticmVhaztjYXNlIjIwMjgiOm8rPSJcXEwiO2JyZWFrO2Nhc2UiMjAyOSI6bys9IlxcUCI7YnJlYWs7ZGVmYXVsdDpmLnN1YnN0cigwLDIpPT09IjAwIj9vKz0iXFx4IitmLnN1YnN0cigyKTpvKz1yLnN1YnN0cihjLDYpfWMrPTUsbD1jKzF9YnJlYWs7Y2FzZSJuIjppZihhfHxyW2MrMl09PT0nIid8fHIubGVuZ3RoPHMpYys9MTtlbHNle2ZvcihvKz1yLnNsaWNlKGwsYykrYAoKYDtyW2MrMl09PT0iXFwiJiZyW2MrM109PT0ibiImJnJbYys0XSE9PSciJzspbys9YApgLGMrPTI7bys9bixyW2MrMl09PT0iICImJihvKz0iXFwiKSxjKz0xLGw9YysxfWJyZWFrO2RlZmF1bHQ6Yys9MX1yZXR1cm4gbz1sP28rci5zbGljZShsKTpyLGE/bzpIYihvLG4sQmIsU29lKGUsITEpKX1mdW5jdGlvbiBEYmUodCxlKXtpZihlLm9wdGlvbnMuc2luZ2xlUXVvdGU9PT0hMXx8ZS5pbXBsaWNpdEtleSYmdC5pbmNsdWRlcyhgCmApfHwvWyBcdF1cbnxcblsgXHRdLy50ZXN0KHQpKXJldHVybiBWUyh0LGUpO2xldCByPWUuaW5kZW50fHwoTW9lKHQpPyIgICI6IiIpLGE9IiciK3QucmVwbGFjZSgvJy9nLCInJyIpLnJlcGxhY2UoL1xuKy9nLGAkJgoke3J9YCkrIiciO3JldHVybiBlLmltcGxpY2l0S2V5P2E6SGIoYSxyLGtvZSxTb2UoZSwhMSkpfWZ1bmN0aW9uIHFiKHQsZSl7bGV0e3NpbmdsZVF1b3RlOnJ9PWUub3B0aW9ucyxhO2lmKHI9PT0hMSlhPVZTO2Vsc2V7bGV0IHM9dC5pbmNsdWRlcygnIicpLG49dC5pbmNsdWRlcygiJyIpO3MmJiFuP2E9RGJlOm4mJiFzP2E9VlM6YT1yP0RiZTpWU31yZXR1cm4gYSh0LGUpfWZ1bmN0aW9uIENvZSh7Y29tbWVudDp0LHR5cGU6ZSx2YWx1ZTpyfSxhLHMsbil7bGV0e2Jsb2NrUXVvdGU6byxjb21tZW50U3RyaW5nOmwsbGluZVdpZHRoOmN9PWEub3B0aW9ucztpZighb3x8L1xuW1x0IF0rJC8udGVzdChyKSlyZXR1cm4gcWIocixhKTtsZXQgZD1hLmluZGVudHx8KGEuZm9yY2VCbG9ja0luZGVudHx8TW9lKHIpPyIgICI6IiIpLGY9bz09PSJsaXRlcmFsIj8hMDpvPT09ImZvbGRlZCJ8fGU9PT1TdC5CTE9DS19GT0xERUQ/ITE6ZT09PVN0LkJMT0NLX0xJVEVSQUw/ITA6IVkzYShyLGMsZC5sZW5ndGgpO2lmKCFyKXJldHVybiBmP2B8CmA6YD4KYDtsZXQgcCxoO2ZvcihoPXIubGVuZ3RoO2g+MDstLWgpe2xldCBfPXJbaC0xXTtpZihfIT09YApgJiZfIT09IgkiJiZfIT09IiAiKWJyZWFrfWxldCBtPXIuc3Vic3RyaW5nKGgpLHY9bS5pbmRleE9mKGAKYCk7dj09PS0xP3A9Ii0iOnI9PT1tfHx2IT09bS5sZW5ndGgtMT8ocD0iKyIsbiYmbigpKTpwPSIiLG0mJihyPXIuc2xpY2UoMCwtbS5sZW5ndGgpLG1bbS5sZW5ndGgtMV09PT1gCmAmJihtPW0uc2xpY2UoMCwtMSkpLG09bS5yZXBsYWNlKCRiZSxgJCYke2R9YCkpO2xldCBiPSExLGcseT0tMTtmb3IoZz0wO2c8ci5sZW5ndGg7KytnKXtsZXQgXz1yW2ddO2lmKF89PT0iICIpYj0hMDtlbHNlIGlmKF89PT1gCmApeT1nO2Vsc2UgYnJlYWt9bGV0IGs9ci5zdWJzdHJpbmcoMCx5PGc/eSsxOmcpO2smJihyPXIuc3Vic3RyaW5nKGsubGVuZ3RoKSxrPWsucmVwbGFjZSgvXG4rL2csYCQmJHtkfWApKTtsZXQgTj0oYj9kPyIyIjoiMSI6IiIpK3A7aWYodCYmKE4rPSIgIitsKHQucmVwbGFjZSgvID9bXHJcbl0rL2csIiAiKSkscyYmcygpKSwhZil7bGV0IF89ci5yZXBsYWNlKC9cbisvZyxgCiQmYCkucmVwbGFjZSgvKD86XnxcbikoW1x0IF0uKikoPzooW1xuXHQgXSopXG4oPyFbXG5cdCBdKSk/L2csIiQxJDIiKS5yZXBsYWNlKC9cbisvZyxgJCYke2R9YCksUz0hMSxPPVNvZShhLCEwKTtvIT09ImZvbGRlZCImJmUhPT1TdC5CTE9DS19GT0xERUQmJihPLm9uT3ZlcmZsb3c9KCk9PntTPSEwfSk7bGV0IEw9SGIoYCR7a30ke199JHttfWAsZCxxUyxPKTtpZighUylyZXR1cm5gPiR7Tn0KJHtkfSR7TH1gfXJldHVybiByPXIucmVwbGFjZSgvXG4rL2csYCQmJHtkfWApLGB8JHtOfQoke2R9JHtrfSR7cn0ke219YH1mdW5jdGlvbiBLM2EodCxlLHIsYSl7bGV0e3R5cGU6cyx2YWx1ZTpufT10LHthY3R1YWxTdHJpbmc6byxpbXBsaWNpdEtleTpsLGluZGVudDpjLGluZGVudFN0ZXA6ZCxpbkZsb3c6Zn09ZTtpZihsJiZuLmluY2x1ZGVzKGAKYCl8fGYmJi9bW1xde30sXS8udGVzdChuKSlyZXR1cm4gcWIobixlKTtpZigvXltcblx0ICxbXF17fSMmKiF8PiciJUBgXXxeWz8tXSR8Xls/LV1bIFx0XXxbXG46XVsgXHRdfFsgXHRdXG58W1xuXHQgXSN8W1xuXHQgOl0kLy50ZXN0KG4pKXJldHVybiBsfHxmfHwhbi5pbmNsdWRlcyhgCmApP3FiKG4sZSk6Q29lKHQsZSxyLGEpO2lmKCFsJiYhZiYmcyE9PVN0LlBMQUlOJiZuLmluY2x1ZGVzKGAKYCkpcmV0dXJuIENvZSh0LGUscixhKTtpZihNb2Uobikpe2lmKGM9PT0iIilyZXR1cm4gZS5mb3JjZUJsb2NrSW5kZW50PSEwLENvZSh0LGUscixhKTtpZihsJiZjPT09ZClyZXR1cm4gcWIobixlKX1sZXQgcD1uLnJlcGxhY2UoL1xuKy9nLGAkJgoke2N9YCk7aWYobyl7bGV0IGg9aShiPT5iLmRlZmF1bHQmJmIudGFnIT09InRhZzp5YW1sLm9yZywyMDAyOnN0ciImJmIudGVzdD8udGVzdChwKSwidGVzdCIpLHtjb21wYXQ6bSx0YWdzOnZ9PWUuZG9jLnNjaGVtYTtpZih2LnNvbWUoaCl8fG0/LnNvbWUoaCkpcmV0dXJuIHFiKG4sZSl9cmV0dXJuIGw/cDpIYihwLGMsa29lLFNvZShlLCExKSl9ZnVuY3Rpb24gZjAodCxlLHIsYSl7bGV0e2ltcGxpY2l0S2V5OnMsaW5GbG93Om59PWUsbz10eXBlb2YgdC52YWx1ZT09InN0cmluZyI/dDpPYmplY3QuYXNzaWduKHt9LHQse3ZhbHVlOlN0cmluZyh0LnZhbHVlKX0pLHt0eXBlOmx9PXQ7bCE9PVN0LlFVT1RFX0RPVUJMRSYmL1tceDAwLVx4MDhceDBiLVx4MWZceDdmLVx4OWZcdXtEODAwfS1cdXtERkZGfV0vdS50ZXN0KG8udmFsdWUpJiYobD1TdC5RVU9URV9ET1VCTEUpO2xldCBjPWkoZj0+e3N3aXRjaChmKXtjYXNlIFN0LkJMT0NLX0ZPTERFRDpjYXNlIFN0LkJMT0NLX0xJVEVSQUw6cmV0dXJuIHN8fG4/cWIoby52YWx1ZSxlKTpDb2UobyxlLHIsYSk7Y2FzZSBTdC5RVU9URV9ET1VCTEU6cmV0dXJuIFZTKG8udmFsdWUsZSk7Y2FzZSBTdC5RVU9URV9TSU5HTEU6cmV0dXJuIERiZShvLnZhbHVlLGUpO2Nhc2UgU3QuUExBSU46cmV0dXJuIEszYShvLGUscixhKTtkZWZhdWx0OnJldHVybiBudWxsfX0sIl9zdHJpbmdpZnkiKSxkPWMobCk7aWYoZD09PW51bGwpe2xldHtkZWZhdWx0S2V5VHlwZTpmLGRlZmF1bHRTdHJpbmdUeXBlOnB9PWUub3B0aW9ucyxoPXMmJmZ8fHA7aWYoZD1jKGgpLGQ9PT1udWxsKXRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZGVmYXVsdCBzdHJpbmcgdHlwZSAke2h9YCl9cmV0dXJuIGR9dmFyIFNvZSxNb2UsJGJlLGpTPXUoKCk9Pnt2cygpO0ZMdCgpO1NvZT1pKCh0LGUpPT4oe2luZGVudEF0U3RhcnQ6ZT90LmluZGVudC5sZW5ndGg6dC5pbmRlbnRBdFN0YXJ0LGxpbmVXaWR0aDp0Lm9wdGlvbnMubGluZVdpZHRoLG1pbkNvbnRlbnRXaWR0aDp0Lm9wdGlvbnMubWluQ29udGVudFdpZHRofSksImdldEZvbGRPcHRpb25zIiksTW9lPWkodD0+L14oJXwtLS18XC5cLlwuKS9tLnRlc3QodCksImNvbnRhaW5zRG9jdW1lbnRNYXJrZXIiKTtpKFkzYSwibGluZUxlbmd0aE92ZXJMaW1pdCIpO2koVlMsImRvdWJsZVF1b3RlZFN0cmluZyIpO2koRGJlLCJzaW5nbGVRdW90ZWRTdHJpbmciKTtpKHFiLCJxdW90ZWRTdHJpbmciKTt0cnl7JGJlPW5ldyBSZWdFeHAoYChefCg/PCEKKSkKKyg/IQp8JClgLCJnIil9Y2F0Y2h7JGJlPS9cbisoPyFcbnwkKS9nfWkoQ29lLCJibG9ja1N0cmluZyIpO2koSzNhLCJwbGFpblN0cmluZyIpO2koZjAsInN0cmluZ2lmeVN0cmluZyIpfSk7ZnVuY3Rpb24gVVModCxlKXtsZXQgcj1PYmplY3QuYXNzaWduKHtibG9ja1F1b3RlOiEwLGNvbW1lbnRTdHJpbmc6TGJlLGRlZmF1bHRLZXlUeXBlOm51bGwsZGVmYXVsdFN0cmluZ1R5cGU6IlBMQUlOIixkaXJlY3RpdmVzOm51bGwsZG91YmxlUXVvdGVkQXNKU09OOiExLGRvdWJsZVF1b3RlZE1pbk11bHRpTGluZUxlbmd0aDo0MCxmYWxzZVN0cjoiZmFsc2UiLGZsb3dDb2xsZWN0aW9uUGFkZGluZzohMCxpbmRlbnRTZXE6ITAsbGluZVdpZHRoOjgwLG1pbkNvbnRlbnRXaWR0aDoyMCxudWxsU3RyOiJudWxsIixzaW1wbGVLZXlzOiExLHNpbmdsZVF1b3RlOm51bGwsdHJhaWxpbmdDb21tYTohMSx0cnVlU3RyOiJ0cnVlIix2ZXJpZnlBbGlhc09yZGVyOiEwfSx0LnNjaGVtYS50b1N0cmluZ09wdGlvbnMsZSksYTtzd2l0Y2goci5jb2xsZWN0aW9uU3R5bGUpe2Nhc2UiYmxvY2siOmE9ITE7YnJlYWs7Y2FzZSJmbG93IjphPSEwO2JyZWFrO2RlZmF1bHQ6YT1udWxsfXJldHVybnthbmNob3JzOm5ldyBTZXQsZG9jOnQsZmxvd0NvbGxlY3Rpb25QYWRkaW5nOnIuZmxvd0NvbGxlY3Rpb25QYWRkaW5nPyIgIjoiIixpbmRlbnQ6IiIsaW5kZW50U3RlcDp0eXBlb2Ygci5pbmRlbnQ9PSJudW1iZXIiPyIgIi5yZXBlYXQoci5pbmRlbnQpOiIgICIsaW5GbG93OmEsb3B0aW9uczpyfX1mdW5jdGlvbiBaM2EodCxlKXtpZihlLnRhZyl7bGV0IHM9dC5maWx0ZXIobj0+bi50YWc9PT1lLnRhZyk7aWYocy5sZW5ndGg+MClyZXR1cm4gcy5maW5kKG49Pm4uZm9ybWF0PT09ZS5mb3JtYXQpPz9zWzBdfWxldCByLGE7aWYodXIoZSkpe2E9ZS52YWx1ZTtsZXQgcz10LmZpbHRlcihuPT5uLmlkZW50aWZ5Py4oYSkpO2lmKHMubGVuZ3RoPjEpe2xldCBuPXMuZmlsdGVyKG89Pm8udGVzdCk7bi5sZW5ndGg+MCYmKHM9bil9cj1zLmZpbmQobj0+bi5mb3JtYXQ9PT1lLmZvcm1hdCk/P3MuZmluZChuPT4hbi5mb3JtYXQpfWVsc2UgYT1lLHI9dC5maW5kKHM9PnMubm9kZUNsYXNzJiZhIGluc3RhbmNlb2Ygcy5ub2RlQ2xhc3MpO2lmKCFyKXtsZXQgcz1hPy5jb25zdHJ1Y3Rvcj8ubmFtZT8/KGE9PT1udWxsPyJudWxsIjp0eXBlb2YgYSk7dGhyb3cgbmV3IEVycm9yKGBUYWcgbm90IHJlc29sdmVkIGZvciAke3N9IHZhbHVlYCl9cmV0dXJuIHJ9ZnVuY3Rpb24gUTNhKHQsZSx7YW5jaG9yczpyLGRvYzphfSl7aWYoIWEuZGlyZWN0aXZlcylyZXR1cm4iIjtsZXQgcz1bXSxuPSh1cih0KXx8Y2EodCkpJiZ0LmFuY2hvcjtuJiZPUyhuKSYmKHIuYWRkKG4pLHMucHVzaChgJiR7bn1gKSk7bGV0IG89dC50YWc/PyhlLmRlZmF1bHQ/bnVsbDplLnRhZyk7cmV0dXJuIG8mJnMucHVzaChhLmRpcmVjdGl2ZXMudGFnU3RyaW5nKG8pKSxzLmpvaW4oIiAiKX1mdW5jdGlvbiBoMCh0LGUscixhKXtpZihfcih0KSlyZXR1cm4gdC50b1N0cmluZyhlLHIsYSk7aWYoYjEodCkpe2lmKGUuZG9jLmRpcmVjdGl2ZXMpcmV0dXJuIHQudG9TdHJpbmcoZSk7aWYoZS5yZXNvbHZlZEFsaWFzZXM/Lmhhcyh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3Qgc3RyaW5naWZ5IGNpcmN1bGFyIHN0cnVjdHVyZSB3aXRob3V0IGFsaWFzIG5vZGVzIik7ZS5yZXNvbHZlZEFsaWFzZXM/ZS5yZXNvbHZlZEFsaWFzZXMuYWRkKHQpOmUucmVzb2x2ZWRBbGlhc2VzPW5ldyBTZXQoW3RdKSx0PXQucmVzb2x2ZShlLmRvYyl9bGV0IHMsbj1Qcih0KT90OmUuZG9jLmNyZWF0ZU5vZGUodCx7b25UYWdPYmo6aShjPT5zPWMsIm9uVGFnT2JqIil9KTtzPz8ocz1aM2EoZS5kb2Muc2NoZW1hLnRhZ3MsbikpO2xldCBvPVEzYShuLHMsZSk7by5sZW5ndGg+MCYmKGUuaW5kZW50QXRTdGFydD0oZS5pbmRlbnRBdFN0YXJ0Pz8wKStvLmxlbmd0aCsxKTtsZXQgbD10eXBlb2Ygcy5zdHJpbmdpZnk9PSJmdW5jdGlvbiI/cy5zdHJpbmdpZnkobixlLHIsYSk6dXIobik/ZjAobixlLHIsYSk6bi50b1N0cmluZyhlLHIsYSk7cmV0dXJuIG8/dXIobil8fGxbMF09PT0ieyJ8fGxbMF09PT0iWyI/YCR7b30gJHtsfWA6YCR7b30KJHtlLmluZGVudH0ke2x9YDpsfXZhciBXUz11KCgpPT57eG9lKCk7ZGEoKTtIUygpO2pTKCk7aShVUywiY3JlYXRlU3RyaW5naWZ5Q29udGV4dCIpO2koWjNhLCJnZXRUYWdPYmplY3QiKTtpKFEzYSwic3RyaW5naWZ5UHJvcHMiKTtpKGgwLCJzdHJpbmdpZnkiKX0pO2Z1bmN0aW9uIEFiZSh7a2V5OnQsdmFsdWU6ZX0scixhLHMpe2xldHthbGxOdWxsVmFsdWVzOm4sZG9jOm8saW5kZW50OmwsaW5kZW50U3RlcDpjLG9wdGlvbnM6e2NvbW1lbnRTdHJpbmc6ZCxpbmRlbnRTZXE6ZixzaW1wbGVLZXlzOnB9fT1yLGg9UHIodCkmJnQuY29tbWVudHx8bnVsbDtpZihwKXtpZihoKXRocm93IG5ldyBFcnJvcigiV2l0aCBzaW1wbGUga2V5cywga2V5IG5vZGVzIGNhbm5vdCBoYXZlIGNvbW1lbnRzIik7aWYoY2EodCl8fCFQcih0KSYmdHlwZW9mIHQ9PSJvYmplY3QiKXtsZXQgTz0iV2l0aCBzaW1wbGUga2V5cywgY29sbGVjdGlvbiBjYW5ub3QgYmUgdXNlZCBhcyBhIGtleSB2YWx1ZSI7dGhyb3cgbmV3IEVycm9yKE8pfX1sZXQgbT0hcCYmKCF0fHxoJiZlPT1udWxsJiYhci5pbkZsb3d8fGNhKHQpfHwodXIodCk/dC50eXBlPT09U3QuQkxPQ0tfRk9MREVEfHx0LnR5cGU9PT1TdC5CTE9DS19MSVRFUkFMOnR5cGVvZiB0PT0ib2JqZWN0IikpO3I9T2JqZWN0LmFzc2lnbih7fSxyLHthbGxOdWxsVmFsdWVzOiExLGltcGxpY2l0S2V5OiFtJiYocHx8IW4pLGluZGVudDpsK2N9KTtsZXQgdj0hMSxiPSExLGc9aDAodCxyLCgpPT52PSEwLCgpPT5iPSEwKTtpZighbSYmIXIuaW5GbG93JiZnLmxlbmd0aD4xMDI0KXtpZihwKXRocm93IG5ldyBFcnJvcigiV2l0aCBzaW1wbGUga2V5cywgc2luZ2xlIGxpbmUgc2NhbGFyIG11c3Qgbm90IHNwYW4gbW9yZSB0aGFuIDEwMjQgY2hhcmFjdGVycyIpO209ITB9aWYoci5pbkZsb3cpe2lmKG58fGU9PW51bGwpcmV0dXJuIHYmJmEmJmEoKSxnPT09IiI/Ij8iOm0/YD8gJHtnfWA6Z31lbHNlIGlmKG4mJiFwfHxlPT1udWxsJiZtKXJldHVybiBnPWA/ICR7Z31gLGgmJiF2P2crPVAyKGcsci5pbmRlbnQsZChoKSk6YiYmcyYmcygpLGc7diYmKGg9bnVsbCksbT8oaCYmKGcrPVAyKGcsci5pbmRlbnQsZChoKSkpLGc9YD8gJHtnfQoke2x9OmApOihnPWAke2d9OmAsaCYmKGcrPVAyKGcsci5pbmRlbnQsZChoKSkpKTtsZXQgeSxrLE07UHIoZSk/KHk9ISFlLnNwYWNlQmVmb3JlLGs9ZS5jb21tZW50QmVmb3JlLE09ZS5jb21tZW50KTooeT0hMSxrPW51bGwsTT1udWxsLGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKGU9by5jcmVhdGVOb2RlKGUpKSksci5pbXBsaWNpdEtleT0hMSwhbSYmIWgmJnVyKGUpJiYoci5pbmRlbnRBdFN0YXJ0PWcubGVuZ3RoKzEpLGI9ITEsIWYmJmMubGVuZ3RoPj0yJiYhci5pbkZsb3cmJiFtJiZ5MShlKSYmIWUuZmxvdyYmIWUudGFnJiYhZS5hbmNob3ImJihyLmluZGVudD1yLmluZGVudC5zdWJzdHJpbmcoMikpO2xldCBOPSExLF89aDAoZSxyLCgpPT5OPSEwLCgpPT5iPSEwKSxTPSIgIjtpZihofHx5fHxrKXtpZihTPXk/YApgOiIiLGspe2xldCBPPWQoayk7Uys9YAoke1UxKE8sci5pbmRlbnQpfWB9Xz09PSIiJiYhci5pbkZsb3c/Uz09PWAKYCYmTSYmKFM9YAoKYCk6Uys9YAoke3IuaW5kZW50fWB9ZWxzZSBpZighbSYmY2EoZSkpe2xldCBPPV9bMF0sTD1fLmluZGV4T2YoYApgKSxFPUwhPT0tMSxCPXIuaW5GbG93Pz9lLmZsb3c/P2UuaXRlbXMubGVuZ3RoPT09MDtpZihFfHwhQil7bGV0IEM9ITE7aWYoRSYmKE89PT0iJiJ8fE89PT0iISIpKXtsZXQgej1fLmluZGV4T2YoIiAiKTtPPT09IiYiJiZ6IT09LTEmJno8TCYmX1t6KzFdPT09IiEiJiYoej1fLmluZGV4T2YoIiAiLHorMSkpLCh6PT09LTF8fEw8eikmJihDPSEwKX1DfHwoUz1gCiR7ci5pbmRlbnR9YCl9fWVsc2UoXz09PSIifHxfWzBdPT09YApgKSYmKFM9IiIpO3JldHVybiBnKz1TK18sci5pbkZsb3c/TiYmYSYmYSgpOk0mJiFOP2crPVAyKGcsci5pbmRlbnQsZChNKSk6YiYmcyYmcygpLGd9dmFyIEJMdD11KCgpPT57ZGEoKTt2cygpO1dTKCk7SFMoKTtpKEFiZSwic3RyaW5naWZ5UGFpciIpfSk7ZnVuY3Rpb24gWDNhKHQsLi4uZSl7dD09PSJkZWJ1ZyImJmNvbnNvbGUubG9nKC4uLmUpfWZ1bmN0aW9uIEdTKHQsZSl7KHQ9PT0iZGVidWcifHx0PT09Indhcm4iKSYmY29uc29sZS53YXJuKGUpfXZhciBFYmU9dSgoKT0+e2koWDNhLCJkZWJ1ZyIpO2koR1MsIndhcm4iKX0pO2Z1bmN0aW9uIF9vZSh0LGUscil7bGV0IGE9SEx0KHQscik7aWYoeTEoYSkpZm9yKGxldCBzIG9mIGEuaXRlbXMpSWJlKHQsZSxzKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoYSkpZm9yKGxldCBzIG9mIGEpSWJlKHQsZSxzKTtlbHNlIEliZSh0LGUsYSl9ZnVuY3Rpb24gSWJlKHQsZSxyKXtsZXQgYT1ITHQodCxyKTtpZighdjEoYSkpdGhyb3cgbmV3IEVycm9yKCJNZXJnZSBzb3VyY2VzIG11c3QgYmUgbWFwcyBvciBtYXAgYWxpYXNlcyIpO2xldCBzPWEudG9KU09OKG51bGwsdCxNYXApO2ZvcihsZXRbbixvXW9mIHMpZSBpbnN0YW5jZW9mIE1hcD9lLmhhcyhuKXx8ZS5zZXQobixvKTplIGluc3RhbmNlb2YgU2V0P2UuYWRkKG4pOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTpvLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk7cmV0dXJuIGV9ZnVuY3Rpb24gSEx0KHQsZSl7cmV0dXJuIHQmJmIxKGUpP2UucmVzb2x2ZSh0LmRvYyx0KTplfXZhciB6b2UsRGwsUGJlLFRvZT11KCgpPT57ZGEoKTt2cygpO3pvZT0iPDwiLERsPXtpZGVudGlmeTppKHQ9PnQ9PT16b2V8fHR5cGVvZiB0PT0ic3ltYm9sIiYmdC5kZXNjcmlwdGlvbj09PXpvZSwiaWRlbnRpZnkiKSxkZWZhdWx0OiJrZXkiLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiLHRlc3Q6L148PCQvLHJlc29sdmU6aSgoKT0+T2JqZWN0LmFzc2lnbihuZXcgU3QoU3ltYm9sKHpvZSkpLHthZGRUb0pTTWFwOl9vZX0pLCJyZXNvbHZlIiksc3RyaW5naWZ5OmkoKCk9PnpvZSwic3RyaW5naWZ5Iil9LFBiZT1pKCh0LGUpPT4oRGwuaWRlbnRpZnkoZSl8fHVyKGUpJiYoIWUudHlwZXx8ZS50eXBlPT09U3QuUExBSU4pJiZEbC5pZGVudGlmeShlLnZhbHVlKSkmJnQ/LmRvYy5zY2hlbWEudGFncy5zb21lKHI9PnIudGFnPT09RGwudGFnJiZyLmRlZmF1bHQpLCJpc01lcmdlS2V5Iik7aShfb2UsImFkZE1lcmdlVG9KU01hcCIpO2koSWJlLCJtZXJnZVZhbHVlIik7aShITHQsInJlc29sdmVBbGlhc1ZhbHVlIil9KTtmdW5jdGlvbiBZUyh0LGUse2tleTpyLHZhbHVlOmF9KXtpZihQcihyKSYmci5hZGRUb0pTTWFwKXIuYWRkVG9KU01hcCh0LGUsYSk7ZWxzZSBpZihQYmUodCxyKSlfb2UodCxlLGEpO2Vsc2V7bGV0IHM9eHMociwiIix0KTtpZihlIGluc3RhbmNlb2YgTWFwKWUuc2V0KHMseHMoYSxzLHQpKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBTZXQpZS5hZGQocyk7ZWxzZXtsZXQgbj1KM2EocixzLHQpLG89eHMoYSxuLHQpO24gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTpvLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk6ZVtuXT1vfX1yZXR1cm4gZX1mdW5jdGlvbiBKM2EodCxlLHIpe2lmKGU9PT1udWxsKXJldHVybiIiO2lmKHR5cGVvZiBlIT0ib2JqZWN0IilyZXR1cm4gU3RyaW5nKGUpO2lmKFByKHQpJiZyPy5kb2Mpe2xldCBhPVVTKHIuZG9jLHt9KTthLmFuY2hvcnM9bmV3IFNldDtmb3IobGV0IG4gb2Ygci5hbmNob3JzLmtleXMoKSlhLmFuY2hvcnMuYWRkKG4uYW5jaG9yKTthLmluRmxvdz0hMCxhLmluU3RyaW5naWZ5S2V5PSEwO2xldCBzPXQudG9TdHJpbmcoYSk7aWYoIXIubWFwS2V5V2FybmVkKXtsZXQgbj1KU09OLnN0cmluZ2lmeShzKTtuLmxlbmd0aD40MCYmKG49bi5zdWJzdHJpbmcoMCwzNikrJy4uLiInKSxHUyhyLmRvYy5vcHRpb25zLmxvZ0xldmVsLGBLZXlzIHdpdGggY29sbGVjdGlvbiB2YWx1ZXMgd2lsbCBiZSBzdHJpbmdpZmllZCBkdWUgdG8gSlMgT2JqZWN0IHJlc3RyaWN0aW9uczogJHtufS4gU2V0IG1hcEFzTWFwOiB0cnVlIHRvIHVzZSBvYmplY3Qga2V5cy5gKSxyLm1hcEtleVdhcm5lZD0hMH1yZXR1cm4gc31yZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9dmFyIE5iZT11KCgpPT57RWJlKCk7VG9lKCk7V1MoKTtkYSgpO2h1KCk7aShZUywiYWRkUGFpclRvSlNNYXAiKTtpKEozYSwic3RyaW5naWZ5S2V5Iil9KTtmdW5jdGlvbiBmaCh0LGUscil7bGV0IGE9cDAodCx2b2lkIDAscikscz1wMChlLHZvaWQgMCxyKTtyZXR1cm4gbmV3IG5pKGEscyl9dmFyIG5pLG11PXUoKCk9PntCUygpO0JMdCgpO05iZSgpO2RhKCk7aShmaCwiY3JlYXRlUGFpciIpO25pPWNsYXNzIHR7c3RhdGlje2kodGhpcywiUGFpciIpfWNvbnN0cnVjdG9yKGUscj1udWxsKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxhbyx7dmFsdWU6bW9lfSksdGhpcy5rZXk9ZSx0aGlzLnZhbHVlPXJ9Y2xvbmUoZSl7bGV0e2tleTpyLHZhbHVlOmF9PXRoaXM7cmV0dXJuIFByKHIpJiYocj1yLmNsb25lKGUpKSxQcihhKSYmKGE9YS5jbG9uZShlKSksbmV3IHQocixhKX10b0pTT04oZSxyKXtsZXQgYT1yPy5tYXBBc01hcD9uZXcgTWFwOnt9O3JldHVybiBZUyhyLGEsdGhpcyl9dG9TdHJpbmcoZSxyLGEpe3JldHVybiBlPy5kb2M/QWJlKHRoaXMsZSxyLGEpOkpTT04uc3RyaW5naWZ5KHRoaXMpfX19KTtmdW5jdGlvbiBLUyh0LGUscil7cmV0dXJuKGUuaW5GbG93Pz90LmZsb3c/dHVhOmV1YSkodCxlLHIpfWZ1bmN0aW9uIGV1YSh7Y29tbWVudDp0LGl0ZW1zOmV9LHIse2Jsb2NrSXRlbVByZWZpeDphLGZsb3dDaGFyczpzLGl0ZW1JbmRlbnQ6bixvbkNob21wS2VlcDpvLG9uQ29tbWVudDpsfSl7bGV0e2luZGVudDpjLG9wdGlvbnM6e2NvbW1lbnRTdHJpbmc6ZH19PXIsZj1PYmplY3QuYXNzaWduKHt9LHIse2luZGVudDpuLHR5cGU6bnVsbH0pLHA9ITEsaD1bXTtmb3IobGV0IHY9MDt2PGUubGVuZ3RoOysrdil7bGV0IGI9ZVt2XSxnPW51bGw7aWYoUHIoYikpIXAmJmIuc3BhY2VCZWZvcmUmJmgucHVzaCgiIiksTG9lKHIsaCxiLmNvbW1lbnRCZWZvcmUscCksYi5jb21tZW50JiYoZz1iLmNvbW1lbnQpO2Vsc2UgaWYoX3IoYikpe2xldCBrPVByKGIua2V5KT9iLmtleTpudWxsO2smJighcCYmay5zcGFjZUJlZm9yZSYmaC5wdXNoKCIiKSxMb2UocixoLGsuY29tbWVudEJlZm9yZSxwKSl9cD0hMTtsZXQgeT1oMChiLGYsKCk9Pmc9bnVsbCwoKT0+cD0hMCk7ZyYmKHkrPVAyKHksbixkKGcpKSkscCYmZyYmKHA9ITEpLGgucHVzaChhK3kpfWxldCBtO2lmKGgubGVuZ3RoPT09MCltPXMuc3RhcnQrcy5lbmQ7ZWxzZXttPWhbMF07Zm9yKGxldCB2PTE7djxoLmxlbmd0aDsrK3Ype2xldCBiPWhbdl07bSs9Yj9gCiR7Y30ke2J9YDpgCmB9fXJldHVybiB0PyhtKz1gCmArVTEoZCh0KSxjKSxsJiZsKCkpOnAmJm8mJm8oKSxtfWZ1bmN0aW9uIHR1YSh7aXRlbXM6dH0sZSx7Zmxvd0NoYXJzOnIsaXRlbUluZGVudDphfSl7bGV0e2luZGVudDpzLGluZGVudFN0ZXA6bixmbG93Q29sbGVjdGlvblBhZGRpbmc6byxvcHRpb25zOntjb21tZW50U3RyaW5nOmx9fT1lO2ErPW47bGV0IGM9T2JqZWN0LmFzc2lnbih7fSxlLHtpbmRlbnQ6YSxpbkZsb3c6ITAsdHlwZTpudWxsfSksZD0hMSxmPTAscD1bXTtmb3IobGV0IHY9MDt2PHQubGVuZ3RoOysrdil7bGV0IGI9dFt2XSxnPW51bGw7aWYoUHIoYikpYi5zcGFjZUJlZm9yZSYmcC5wdXNoKCIiKSxMb2UoZSxwLGIuY29tbWVudEJlZm9yZSwhMSksYi5jb21tZW50JiYoZz1iLmNvbW1lbnQpO2Vsc2UgaWYoX3IoYikpe2xldCBrPVByKGIua2V5KT9iLmtleTpudWxsO2smJihrLnNwYWNlQmVmb3JlJiZwLnB1c2goIiIpLExvZShlLHAsay5jb21tZW50QmVmb3JlLCExKSxrLmNvbW1lbnQmJihkPSEwKSk7bGV0IE09UHIoYi52YWx1ZSk/Yi52YWx1ZTpudWxsO00/KE0uY29tbWVudCYmKGc9TS5jb21tZW50KSxNLmNvbW1lbnRCZWZvcmUmJihkPSEwKSk6Yi52YWx1ZT09bnVsbCYmaz8uY29tbWVudCYmKGc9ay5jb21tZW50KX1nJiYoZD0hMCk7bGV0IHk9aDAoYixjLCgpPT5nPW51bGwpO2R8fChkPXAubGVuZ3RoPmZ8fHkuaW5jbHVkZXMoYApgKSksdjx0Lmxlbmd0aC0xP3krPSIsIjplLm9wdGlvbnMudHJhaWxpbmdDb21tYSYmKGUub3B0aW9ucy5saW5lV2lkdGg+MCYmKGR8fChkPXAucmVkdWNlKChrLE0pPT5rK00ubGVuZ3RoKzIsMikrKHkubGVuZ3RoKzIpPmUub3B0aW9ucy5saW5lV2lkdGgpKSxkJiYoeSs9IiwiKSksZyYmKHkrPVAyKHksYSxsKGcpKSkscC5wdXNoKHkpLGY9cC5sZW5ndGh9bGV0e3N0YXJ0OmgsZW5kOm19PXI7aWYocC5sZW5ndGg9PT0wKXJldHVybiBoK207aWYoIWQpe2xldCB2PXAucmVkdWNlKChiLGcpPT5iK2cubGVuZ3RoKzIsMik7ZD1lLm9wdGlvbnMubGluZVdpZHRoPjAmJnY+ZS5vcHRpb25zLmxpbmVXaWR0aH1pZihkKXtsZXQgdj1oO2ZvcihsZXQgYiBvZiBwKXYrPWI/YAoke259JHtzfSR7Yn1gOmAKYDtyZXR1cm5gJHt2fQoke3N9JHttfWB9ZWxzZSByZXR1cm5gJHtofSR7b30ke3Auam9pbigiICIpfSR7b30ke219YH1mdW5jdGlvbiBMb2Uoe2luZGVudDp0LG9wdGlvbnM6e2NvbW1lbnRTdHJpbmc6ZX19LHIsYSxzKXtpZihhJiZzJiYoYT1hLnJlcGxhY2UoL15cbisvLCIiKSksYSl7bGV0IG49VTEoZShhKSx0KTtyLnB1c2gobi50cmltU3RhcnQoKSl9fXZhciBPYmU9dSgoKT0+e2RhKCk7V1MoKTtIUygpO2koS1MsInN0cmluZ2lmeUNvbGxlY3Rpb24iKTtpKGV1YSwic3RyaW5naWZ5QmxvY2tDb2xsZWN0aW9uIik7aSh0dWEsInN0cmluZ2lmeUZsb3dDb2xsZWN0aW9uIik7aShMb2UsImFkZENvbW1lbnRCZWZvcmUiKX0pO2Z1bmN0aW9uIFpkKHQsZSl7bGV0IHI9dXIoZSk/ZS52YWx1ZTplO2ZvcihsZXQgYSBvZiB0KWlmKF9yKGEpJiYoYS5rZXk9PT1lfHxhLmtleT09PXJ8fHVyKGEua2V5KSYmYS5rZXkudmFsdWU9PT1yKSlyZXR1cm4gYX12YXIgeGksZ3U9dSgoKT0+e09iZSgpO05iZSgpO3dvZSgpO2RhKCk7bXUoKTt2cygpO2koWmQsImZpbmRQYWlyIik7eGk9Y2xhc3MgZXh0ZW5kcyB1aHtzdGF0aWN7aSh0aGlzLCJZQU1MTWFwIil9c3RhdGljIGdldCB0YWdOYW1lKCl7cmV0dXJuInRhZzp5YW1sLm9yZywyMDAyOm1hcCJ9Y29uc3RydWN0b3IoZSl7c3VwZXIoVGwsZSksdGhpcy5pdGVtcz1bXX1zdGF0aWMgZnJvbShlLHIsYSl7bGV0e2tlZXBVbmRlZmluZWQ6cyxyZXBsYWNlcjpufT1hLG89bmV3IHRoaXMoZSksbD1pKChjLGQpPT57aWYodHlwZW9mIG49PSJmdW5jdGlvbiIpZD1uLmNhbGwocixjLGQpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShuKSYmIW4uaW5jbHVkZXMoYykpcmV0dXJuOyhkIT09dm9pZCAwfHxzKSYmby5pdGVtcy5wdXNoKGZoKGMsZCxhKSl9LCJhZGQiKTtpZihyIGluc3RhbmNlb2YgTWFwKWZvcihsZXRbYyxkXW9mIHIpbChjLGQpO2Vsc2UgaWYociYmdHlwZW9mIHI9PSJvYmplY3QiKWZvcihsZXQgYyBvZiBPYmplY3Qua2V5cyhyKSlsKGMscltjXSk7cmV0dXJuIHR5cGVvZiBlLnNvcnRNYXBFbnRyaWVzPT0iZnVuY3Rpb24iJiZvLml0ZW1zLnNvcnQoZS5zb3J0TWFwRW50cmllcyksb31hZGQoZSxyKXtsZXQgYTtfcihlKT9hPWU6IWV8fHR5cGVvZiBlIT0ib2JqZWN0Inx8ISgia2V5ImluIGUpP2E9bmV3IG5pKGUsZT8udmFsdWUpOmE9bmV3IG5pKGUua2V5LGUudmFsdWUpO2xldCBzPVpkKHRoaXMuaXRlbXMsYS5rZXkpLG49dGhpcy5zY2hlbWE/LnNvcnRNYXBFbnRyaWVzO2lmKHMpe2lmKCFyKXRocm93IG5ldyBFcnJvcihgS2V5ICR7YS5rZXl9IGFscmVhZHkgc2V0YCk7dXIocy52YWx1ZSkmJkZTKGEudmFsdWUpP3MudmFsdWUudmFsdWU9YS52YWx1ZTpzLnZhbHVlPWEudmFsdWV9ZWxzZSBpZihuKXtsZXQgbz10aGlzLml0ZW1zLmZpbmRJbmRleChsPT5uKGEsbCk8MCk7bz09PS0xP3RoaXMuaXRlbXMucHVzaChhKTp0aGlzLml0ZW1zLnNwbGljZShvLDAsYSl9ZWxzZSB0aGlzLml0ZW1zLnB1c2goYSl9ZGVsZXRlKGUpe2xldCByPVpkKHRoaXMuaXRlbXMsZSk7cmV0dXJuIHI/dGhpcy5pdGVtcy5zcGxpY2UodGhpcy5pdGVtcy5pbmRleE9mKHIpLDEpLmxlbmd0aD4wOiExfWdldChlLHIpe2xldCBzPVpkKHRoaXMuaXRlbXMsZSk/LnZhbHVlO3JldHVybighciYmdXIocyk/cy52YWx1ZTpzKT8/dm9pZCAwfWhhcyhlKXtyZXR1cm4hIVpkKHRoaXMuaXRlbXMsZSl9c2V0KGUscil7dGhpcy5hZGQobmV3IG5pKGUsciksITApfXRvSlNPTihlLHIsYSl7bGV0IHM9YT9uZXcgYTpyPy5tYXBBc01hcD9uZXcgTWFwOnt9O3I/Lm9uQ3JlYXRlJiZyLm9uQ3JlYXRlKHMpO2ZvcihsZXQgbiBvZiB0aGlzLml0ZW1zKVlTKHIscyxuKTtyZXR1cm4gc310b1N0cmluZyhlLHIsYSl7aWYoIWUpcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpO2ZvcihsZXQgcyBvZiB0aGlzLml0ZW1zKWlmKCFfcihzKSl0aHJvdyBuZXcgRXJyb3IoYE1hcCBpdGVtcyBtdXN0IGFsbCBiZSBwYWlyczsgZm91bmQgJHtKU09OLnN0cmluZ2lmeShzKX0gaW5zdGVhZGApO3JldHVybiFlLmFsbE51bGxWYWx1ZXMmJnRoaXMuaGFzQWxsTnVsbFZhbHVlcyghMSkmJihlPU9iamVjdC5hc3NpZ24oe30sZSx7YWxsTnVsbFZhbHVlczohMH0pKSxLUyh0aGlzLGUse2Jsb2NrSXRlbVByZWZpeDoiIixmbG93Q2hhcnM6e3N0YXJ0OiJ7IixlbmQ6In0ifSxpdGVtSW5kZW50OmUuaW5kZW50fHwiIixvbkNob21wS2VlcDphLG9uQ29tbWVudDpyfSl9fX0pO3ZhciAkbCxWYj11KCgpPT57ZGEoKTtndSgpOyRsPXtjb2xsZWN0aW9uOiJtYXAiLGRlZmF1bHQ6ITAsbm9kZUNsYXNzOnhpLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6bWFwIixyZXNvbHZlKHQsZSl7cmV0dXJuIHYxKHQpfHxlKCJFeHBlY3RlZCBhIG1hcHBpbmcgZm9yIHRoaXMgdGFnIiksdH0sY3JlYXRlTm9kZTppKCh0LGUscik9PnhpLmZyb20odCxlLHIpLCJjcmVhdGVOb2RlIil9fSk7ZnVuY3Rpb24gRG9lKHQpe2xldCBlPXVyKHQpP3QudmFsdWU6dDtyZXR1cm4gZSYmdHlwZW9mIGU9PSJzdHJpbmciJiYoZT1OdW1iZXIoZSkpLHR5cGVvZiBlPT0ibnVtYmVyIiYmTnVtYmVyLmlzSW50ZWdlcihlKSYmZT49MD9lOm51bGx9dmFyIHFzLGJ1PXUoKCk9PntCUygpO09iZSgpO3dvZSgpO2RhKCk7dnMoKTtodSgpO3FzPWNsYXNzIGV4dGVuZHMgdWh7c3RhdGlje2kodGhpcywiWUFNTFNlcSIpfXN0YXRpYyBnZXQgdGFnTmFtZSgpe3JldHVybiJ0YWc6eWFtbC5vcmcsMjAwMjpzZXEifWNvbnN0cnVjdG9yKGUpe3N1cGVyKGQwLGUpLHRoaXMuaXRlbXM9W119YWRkKGUpe3RoaXMuaXRlbXMucHVzaChlKX1kZWxldGUoZSl7bGV0IHI9RG9lKGUpO3JldHVybiB0eXBlb2YgciE9Im51bWJlciI/ITE6dGhpcy5pdGVtcy5zcGxpY2UociwxKS5sZW5ndGg+MH1nZXQoZSxyKXtsZXQgYT1Eb2UoZSk7aWYodHlwZW9mIGEhPSJudW1iZXIiKXJldHVybjtsZXQgcz10aGlzLml0ZW1zW2FdO3JldHVybiFyJiZ1cihzKT9zLnZhbHVlOnN9aGFzKGUpe2xldCByPURvZShlKTtyZXR1cm4gdHlwZW9mIHI9PSJudW1iZXIiJiZyPHRoaXMuaXRlbXMubGVuZ3RofXNldChlLHIpe2xldCBhPURvZShlKTtpZih0eXBlb2YgYSE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhIHZhbGlkIGluZGV4LCBub3QgJHtlfS5gKTtsZXQgcz10aGlzLml0ZW1zW2FdO3VyKHMpJiZGUyhyKT9zLnZhbHVlPXI6dGhpcy5pdGVtc1thXT1yfXRvSlNPTihlLHIpe2xldCBhPVtdO3I/Lm9uQ3JlYXRlJiZyLm9uQ3JlYXRlKGEpO2xldCBzPTA7Zm9yKGxldCBuIG9mIHRoaXMuaXRlbXMpYS5wdXNoKHhzKG4sU3RyaW5nKHMrKykscikpO3JldHVybiBhfXRvU3RyaW5nKGUscixhKXtyZXR1cm4gZT9LUyh0aGlzLGUse2Jsb2NrSXRlbVByZWZpeDoiLSAiLGZsb3dDaGFyczp7c3RhcnQ6IlsiLGVuZDoiXSJ9LGl0ZW1JbmRlbnQ6KGUuaW5kZW50fHwiIikrIiAgIixvbkNob21wS2VlcDphLG9uQ29tbWVudDpyfSk6SlNPTi5zdHJpbmdpZnkodGhpcyl9c3RhdGljIGZyb20oZSxyLGEpe2xldHtyZXBsYWNlcjpzfT1hLG49bmV3IHRoaXMoZSk7aWYociYmU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChyKSl7bGV0IG89MDtmb3IobGV0IGwgb2Ygcil7aWYodHlwZW9mIHM9PSJmdW5jdGlvbiIpe2xldCBjPXIgaW5zdGFuY2VvZiBTZXQ/bDpTdHJpbmcobysrKTtsPXMuY2FsbChyLGMsbCl9bi5pdGVtcy5wdXNoKHAwKGwsdm9pZCAwLGEpKX19cmV0dXJuIG59fTtpKERvZSwiYXNJdGVtSW5kZXgiKX0pO3ZhciBBbCxqYj11KCgpPT57ZGEoKTtidSgpO0FsPXtjb2xsZWN0aW9uOiJzZXEiLGRlZmF1bHQ6ITAsbm9kZUNsYXNzOnFzLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6c2VxIixyZXNvbHZlKHQsZSl7cmV0dXJuIHkxKHQpfHxlKCJFeHBlY3RlZCBhIHNlcXVlbmNlIGZvciB0aGlzIHRhZyIpLHR9LGNyZWF0ZU5vZGU6aSgodCxlLHIpPT5xcy5mcm9tKHQsZSxyKSwiY3JlYXRlTm9kZSIpfX0pO3ZhciBRZCxaUz11KCgpPT57alMoKTtRZD17aWRlbnRpZnk6aSh0PT50eXBlb2YgdD09InN0cmluZyIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOnN0ciIscmVzb2x2ZTppKHQ9PnQsInJlc29sdmUiKSxzdHJpbmdpZnkodCxlLHIsYSl7cmV0dXJuIGU9T2JqZWN0LmFzc2lnbih7YWN0dWFsU3RyaW5nOiEwfSxlKSxmMCh0LGUscixhKX19fSk7dmFyIHh1LCRvZT11KCgpPT57dnMoKTt4dT17aWRlbnRpZnk6aSh0PT50PT1udWxsLCJpZGVudGlmeSIpLGNyZWF0ZU5vZGU6aSgoKT0+bmV3IFN0KG51bGwpLCJjcmVhdGVOb2RlIiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOm51bGwiLHRlc3Q6L14oPzp+fFtObl11bGx8TlVMTCk/JC8scmVzb2x2ZTppKCgpPT5uZXcgU3QobnVsbCksInJlc29sdmUiKSxzdHJpbmdpZnk6aSgoe3NvdXJjZTp0fSxlKT0+dHlwZW9mIHQ9PSJzdHJpbmciJiZ4dS50ZXN0LnRlc3QodCk/dDplLm9wdGlvbnMubnVsbFN0ciwic3RyaW5naWZ5Iil9fSk7dmFyIFViLFJiZT11KCgpPT57dnMoKTtVYj17aWRlbnRpZnk6aSh0PT50eXBlb2YgdD09ImJvb2xlYW4iLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIix0ZXN0Oi9eKD86W1R0XXJ1ZXxUUlVFfFtGZl1hbHNlfEZBTFNFKSQvLHJlc29sdmU6aSh0PT5uZXcgU3QodFswXT09PSJ0Inx8dFswXT09PSJUIiksInJlc29sdmUiKSxzdHJpbmdpZnkoe3NvdXJjZTp0LHZhbHVlOmV9LHIpe2lmKHQmJlViLnRlc3QudGVzdCh0KSl7bGV0IGE9dFswXT09PSJ0Inx8dFswXT09PSJUIjtpZihlPT09YSlyZXR1cm4gdH1yZXR1cm4gZT9yLm9wdGlvbnMudHJ1ZVN0cjpyLm9wdGlvbnMuZmFsc2VTdHJ9fX0pO2Z1bmN0aW9uIFRuKHtmb3JtYXQ6dCxtaW5GcmFjdGlvbkRpZ2l0czplLHRhZzpyLHZhbHVlOmF9KXtpZih0eXBlb2YgYT09ImJpZ2ludCIpcmV0dXJuIFN0cmluZyhhKTtsZXQgcz10eXBlb2YgYT09Im51bWJlciI/YTpOdW1iZXIoYSk7aWYoIWlzRmluaXRlKHMpKXJldHVybiBpc05hTihzKT8iLm5hbiI6czwwPyItLmluZiI6Ii5pbmYiO2xldCBuPU9iamVjdC5pcyhhLC0wKT8iLTAiOkpTT04uc3RyaW5naWZ5KGEpO2lmKCF0JiZlJiYoIXJ8fHI9PT0idGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiKSYmL14tP1xkLy50ZXN0KG4pJiYhbi5pbmNsdWRlcygiZSIpKXtsZXQgbz1uLmluZGV4T2YoIi4iKTtvPDAmJihvPW4ubGVuZ3RoLG4rPSIuIik7bGV0IGw9ZS0obi5sZW5ndGgtby0xKTtmb3IoO2wtLSA+MDspbis9IjAifXJldHVybiBufXZhciBXYj11KCgpPT57aShUbiwic3RyaW5naWZ5TnVtYmVyIil9KTt2YXIgUVMsWFMsSlMsRmJlPXUoKCk9Pnt2cygpO1diKCk7UVM9e2lkZW50aWZ5OmkodD0+dHlwZW9mIHQ9PSJudW1iZXIiLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIsdGVzdDovXig/OlstK10/XC4oPzppbmZ8SW5mfElORil8XC5uYW58XC5OYU58XC5OQU4pJC8scmVzb2x2ZTppKHQ9PnQuc2xpY2UoLTMpLnRvTG93ZXJDYXNlKCk9PT0ibmFuIj9OYU46dFswXT09PSItIj9OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLCJyZXNvbHZlIiksc3RyaW5naWZ5OlRufSxYUz17aWRlbnRpZnk6aSh0PT50eXBlb2YgdD09Im51bWJlciIsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iixmb3JtYXQ6IkVYUCIsdGVzdDovXlstK10/KD86XC5bMC05XSt8WzAtOV0rKD86XC5bMC05XSopPylbZUVdWy0rXT9bMC05XSskLyxyZXNvbHZlOmkodD0+cGFyc2VGbG9hdCh0KSwicmVzb2x2ZSIpLHN0cmluZ2lmeSh0KXtsZXQgZT1OdW1iZXIodC52YWx1ZSk7cmV0dXJuIGlzRmluaXRlKGUpP2UudG9FeHBvbmVudGlhbCgpOlRuKHQpfX0sSlM9e2lkZW50aWZ5OmkodD0+dHlwZW9mIHQ9PSJudW1iZXIiLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIsdGVzdDovXlstK10/KD86XC5bMC05XSt8WzAtOV0rXC5bMC05XSopJC8scmVzb2x2ZSh0KXtsZXQgZT1uZXcgU3QocGFyc2VGbG9hdCh0KSkscj10LmluZGV4T2YoIi4iKTtyZXR1cm4gciE9PS0xJiZ0W3QubGVuZ3RoLTFdPT09IjAiJiYoZS5taW5GcmFjdGlvbkRpZ2l0cz10Lmxlbmd0aC1yLTEpLGV9LHN0cmluZ2lmeTpUbn19KTtmdW5jdGlvbiBxTHQodCxlLHIpe2xldHt2YWx1ZTphfT10O3JldHVybiBBb2UoYSkmJmE+PTA/cithLnRvU3RyaW5nKGUpOlRuKHQpfXZhciBBb2UsQmJlLGVNLHRNLHJNLEhiZT11KCgpPT57V2IoKTtBb2U9aSh0PT50eXBlb2YgdD09ImJpZ2ludCJ8fE51bWJlci5pc0ludGVnZXIodCksImludElkZW50aWZ5IiksQmJlPWkoKHQsZSxyLHtpbnRBc0JpZ0ludDphfSk9PmE/QmlnSW50KHQpOnBhcnNlSW50KHQuc3Vic3RyaW5nKGUpLHIpLCJpbnRSZXNvbHZlIik7aShxTHQsImludFN0cmluZ2lmeSIpO2VNPXtpZGVudGlmeTppKHQ9PkFvZSh0KSYmdD49MCwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iixmb3JtYXQ6Ik9DVCIsdGVzdDovXjBvWzAtN10rJC8scmVzb2x2ZTppKCh0LGUscik9PkJiZSh0LDIsOCxyKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTppKHQ9PnFMdCh0LDgsIjBvIiksInN0cmluZ2lmeSIpfSx0TT17aWRlbnRpZnk6QW9lLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLHRlc3Q6L15bLStdP1swLTldKyQvLHJlc29sdmU6aSgodCxlLHIpPT5CYmUodCwwLDEwLHIpLCJyZXNvbHZlIiksc3RyaW5naWZ5OlRufSxyTT17aWRlbnRpZnk6aSh0PT5Bb2UodCkmJnQ+PTAsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJIRVgiLHRlc3Q6L14weFswLTlhLWZBLUZdKyQvLHJlc29sdmU6aSgodCxlLHIpPT5CYmUodCwyLDE2LHIpLCJyZXNvbHZlIiksc3RyaW5naWZ5OmkodD0+cUx0KHQsMTYsIjB4IiksInN0cmluZ2lmeSIpfX0pO3ZhciBxYmUsVkx0PXUoKCk9PntWYigpOyRvZSgpO2piKCk7WlMoKTtSYmUoKTtGYmUoKTtIYmUoKTtxYmU9WyRsLEFsLFFkLHh1LFViLGVNLHRNLHJNLFFTLFhTLEpTXX0pO2Z1bmN0aW9uIGpMdCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJiaWdpbnQifHxOdW1iZXIuaXNJbnRlZ2VyKHQpfXZhciBFb2UscnVhLGF1YSxWYmUsVUx0PXUoKCk9Pnt2cygpO1ZiKCk7amIoKTtpKGpMdCwiaW50SWRlbnRpZnkiKTtFb2U9aSgoe3ZhbHVlOnR9KT0+SlNPTi5zdHJpbmdpZnkodCksInN0cmluZ2lmeUpTT04iKSxydWE9W3tpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ic3RyaW5nIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6c3RyIixyZXNvbHZlOmkodD0+dCwicmVzb2x2ZSIpLHN0cmluZ2lmeTpFb2V9LHtpZGVudGlmeTppKHQ9PnQ9PW51bGwsImlkZW50aWZ5IiksY3JlYXRlTm9kZTppKCgpPT5uZXcgU3QobnVsbCksImNyZWF0ZU5vZGUiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6bnVsbCIsdGVzdDovXm51bGwkLyxyZXNvbHZlOmkoKCk9Pm51bGwsInJlc29sdmUiKSxzdHJpbmdpZnk6RW9lfSx7aWRlbnRpZnk6aSh0PT50eXBlb2YgdD09ImJvb2xlYW4iLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIix0ZXN0Oi9edHJ1ZSR8XmZhbHNlJC8scmVzb2x2ZTppKHQ9PnQ9PT0idHJ1ZSIsInJlc29sdmUiKSxzdHJpbmdpZnk6RW9lfSx7aWRlbnRpZnk6akx0LGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLHRlc3Q6L14tPyg/OjB8WzEtOV1bMC05XSopJC8scmVzb2x2ZTppKCh0LGUse2ludEFzQmlnSW50OnJ9KT0+cj9CaWdJbnQodCk6cGFyc2VJbnQodCwxMCksInJlc29sdmUiKSxzdHJpbmdpZnk6aSgoe3ZhbHVlOnR9KT0+akx0KHQpP3QudG9TdHJpbmcoKTpKU09OLnN0cmluZ2lmeSh0KSwic3RyaW5naWZ5Iil9LHtpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L14tPyg/OjB8WzEtOV1bMC05XSopKD86XC5bMC05XSopPyg/OltlRV1bLStdP1swLTldKyk/JC8scmVzb2x2ZTppKHQ9PnBhcnNlRmxvYXQodCksInJlc29sdmUiKSxzdHJpbmdpZnk6RW9lfV0sYXVhPXtkZWZhdWx0OiEwLHRhZzoiIix0ZXN0Oi9eLyxyZXNvbHZlKHQsZSl7cmV0dXJuIGUoYFVucmVzb2x2ZWQgcGxhaW4gc2NhbGFyICR7SlNPTi5zdHJpbmdpZnkodCl9YCksdH19LFZiZT1bJGwsQWxdLmNvbmNhdChydWEsYXVhKX0pO3ZhciBHYixqYmU9dSgoKT0+e3ZzKCk7alMoKTtHYj17aWRlbnRpZnk6aSh0PT50IGluc3RhbmNlb2YgVWludDhBcnJheSwiaWRlbnRpZnkiKSxkZWZhdWx0OiExLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5IixyZXNvbHZlKHQsZSl7aWYodHlwZW9mIGF0b2I9PSJmdW5jdGlvbiIpe2xldCByPWF0b2IodC5yZXBsYWNlKC9bXG5ccl0vZywiIikpLGE9bmV3IFVpbnQ4QXJyYXkoci5sZW5ndGgpO2ZvcihsZXQgcz0wO3M8ci5sZW5ndGg7KytzKWFbc109ci5jaGFyQ29kZUF0KHMpO3JldHVybiBhfWVsc2UgcmV0dXJuIGUoIlRoaXMgZW52aXJvbm1lbnQgZG9lcyBub3Qgc3VwcG9ydCByZWFkaW5nIGJpbmFyeSB0YWdzOyBlaXRoZXIgQnVmZmVyIG9yIGF0b2IgaXMgcmVxdWlyZWQiKSx0fSxzdHJpbmdpZnkoe2NvbW1lbnQ6dCx0eXBlOmUsdmFsdWU6cn0sYSxzLG4pe2lmKCFyKXJldHVybiIiO2xldCBvPXIsbDtpZih0eXBlb2YgYnRvYT09ImZ1bmN0aW9uIil7bGV0IGM9IiI7Zm9yKGxldCBkPTA7ZDxvLmxlbmd0aDsrK2QpYys9U3RyaW5nLmZyb21DaGFyQ29kZShvW2RdKTtsPWJ0b2EoYyl9ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlRoaXMgZW52aXJvbm1lbnQgZG9lcyBub3Qgc3VwcG9ydCB3cml0aW5nIGJpbmFyeSB0YWdzOyBlaXRoZXIgQnVmZmVyIG9yIGJ0b2EgaXMgcmVxdWlyZWQiKTtpZihlPz8oZT1TdC5CTE9DS19MSVRFUkFMKSxlIT09U3QuUVVPVEVfRE9VQkxFKXtsZXQgYz1NYXRoLm1heChhLm9wdGlvbnMubGluZVdpZHRoLWEuaW5kZW50Lmxlbmd0aCxhLm9wdGlvbnMubWluQ29udGVudFdpZHRoKSxkPU1hdGguY2VpbChsLmxlbmd0aC9jKSxmPW5ldyBBcnJheShkKTtmb3IobGV0IHA9MCxoPTA7cDxkOysrcCxoKz1jKWZbcF09bC5zdWJzdHIoaCxjKTtsPWYuam9pbihlPT09U3QuQkxPQ0tfTElURVJBTD9gCmA6IiAiKX1yZXR1cm4gZjAoe2NvbW1lbnQ6dCx0eXBlOmUsdmFsdWU6bH0sYSxzLG4pfX19KTtmdW5jdGlvbiBJb2UodCxlKXtpZih5MSh0KSlmb3IobGV0IHI9MDtyPHQuaXRlbXMubGVuZ3RoOysrcil7bGV0IGE9dC5pdGVtc1tyXTtpZighX3IoYSkpe2lmKHYxKGEpKXthLml0ZW1zLmxlbmd0aD4xJiZlKCJFYWNoIHBhaXIgbXVzdCBoYXZlIGl0cyBvd24gc2VxdWVuY2UgaW5kaWNhdG9yIik7bGV0IHM9YS5pdGVtc1swXXx8bmV3IG5pKG5ldyBTdChudWxsKSk7aWYoYS5jb21tZW50QmVmb3JlJiYocy5rZXkuY29tbWVudEJlZm9yZT1zLmtleS5jb21tZW50QmVmb3JlP2Ake2EuY29tbWVudEJlZm9yZX0KJHtzLmtleS5jb21tZW50QmVmb3JlfWA6YS5jb21tZW50QmVmb3JlKSxhLmNvbW1lbnQpe2xldCBuPXMudmFsdWU/P3Mua2V5O24uY29tbWVudD1uLmNvbW1lbnQ/YCR7YS5jb21tZW50fQoke24uY29tbWVudH1gOmEuY29tbWVudH1hPXN9dC5pdGVtc1tyXT1fcihhKT9hOm5ldyBuaShhKX19ZWxzZSBlKCJFeHBlY3RlZCBhIHNlcXVlbmNlIGZvciB0aGlzIHRhZyIpO3JldHVybiB0fWZ1bmN0aW9uIFBvZSh0LGUscil7bGV0e3JlcGxhY2VyOmF9PXIscz1uZXcgcXModCk7cy50YWc9InRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIjtsZXQgbj0wO2lmKGUmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpZm9yKGxldCBvIG9mIGUpe3R5cGVvZiBhPT0iZnVuY3Rpb24iJiYobz1hLmNhbGwoZSxTdHJpbmcobisrKSxvKSk7bGV0IGwsYztpZihBcnJheS5pc0FycmF5KG8pKWlmKG8ubGVuZ3RoPT09MilsPW9bMF0sYz1vWzFdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgW2tleSwgdmFsdWVdIHR1cGxlOiAke299YCk7ZWxzZSBpZihvJiZvIGluc3RhbmNlb2YgT2JqZWN0KXtsZXQgZD1PYmplY3Qua2V5cyhvKTtpZihkLmxlbmd0aD09PTEpbD1kWzBdLGM9b1tsXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIHR1cGxlIHdpdGggb25lIGtleSwgbm90ICR7ZC5sZW5ndGh9IGtleXNgKX1lbHNlIGw9bztzLml0ZW1zLnB1c2goZmgobCxjLHIpKX1yZXR1cm4gc312YXIgWWIsTm9lPXUoKCk9PntkYSgpO211KCk7dnMoKTtidSgpO2koSW9lLCJyZXNvbHZlUGFpcnMiKTtpKFBvZSwiY3JlYXRlUGFpcnMiKTtZYj17Y29sbGVjdGlvbjoic2VxIixkZWZhdWx0OiExLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6cGFpcnMiLHJlc29sdmU6SW9lLGNyZWF0ZU5vZGU6UG9lfX0pO3ZhciBoaCxLYixVYmU9dSgoKT0+e2RhKCk7aHUoKTtndSgpO2J1KCk7Tm9lKCk7aGg9Y2xhc3MgdCBleHRlbmRzIHFze3N0YXRpY3tpKHRoaXMsIllBTUxPTWFwIil9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuYWRkPXhpLnByb3RvdHlwZS5hZGQuYmluZCh0aGlzKSx0aGlzLmRlbGV0ZT14aS5wcm90b3R5cGUuZGVsZXRlLmJpbmQodGhpcyksdGhpcy5nZXQ9eGkucHJvdG90eXBlLmdldC5iaW5kKHRoaXMpLHRoaXMuaGFzPXhpLnByb3RvdHlwZS5oYXMuYmluZCh0aGlzKSx0aGlzLnNldD14aS5wcm90b3R5cGUuc2V0LmJpbmQodGhpcyksdGhpcy50YWc9dC50YWd9dG9KU09OKGUscil7aWYoIXIpcmV0dXJuIHN1cGVyLnRvSlNPTihlKTtsZXQgYT1uZXcgTWFwO3I/Lm9uQ3JlYXRlJiZyLm9uQ3JlYXRlKGEpO2ZvcihsZXQgcyBvZiB0aGlzLml0ZW1zKXtsZXQgbixvO2lmKF9yKHMpPyhuPXhzKHMua2V5LCIiLHIpLG89eHMocy52YWx1ZSxuLHIpKTpuPXhzKHMsIiIsciksYS5oYXMobikpdGhyb3cgbmV3IEVycm9yKCJPcmRlcmVkIG1hcHMgbXVzdCBub3QgaW5jbHVkZSBkdXBsaWNhdGUga2V5cyIpO2Euc2V0KG4sbyl9cmV0dXJuIGF9c3RhdGljIGZyb20oZSxyLGEpe2xldCBzPVBvZShlLHIsYSksbj1uZXcgdGhpcztyZXR1cm4gbi5pdGVtcz1zLml0ZW1zLG59fTtoaC50YWc9InRhZzp5YW1sLm9yZywyMDAyOm9tYXAiO0tiPXtjb2xsZWN0aW9uOiJzZXEiLGlkZW50aWZ5OmkodD0+dCBpbnN0YW5jZW9mIE1hcCwiaWRlbnRpZnkiKSxub2RlQ2xhc3M6aGgsZGVmYXVsdDohMSx0YWc6InRhZzp5YW1sLm9yZywyMDAyOm9tYXAiLHJlc29sdmUodCxlKXtsZXQgcj1Jb2UodCxlKSxhPVtdO2ZvcihsZXR7a2V5OnN9b2Ygci5pdGVtcyl1cihzKSYmKGEuaW5jbHVkZXMocy52YWx1ZSk/ZShgT3JkZXJlZCBtYXBzIG11c3Qgbm90IGluY2x1ZGUgZHVwbGljYXRlIGtleXM6ICR7cy52YWx1ZX1gKTphLnB1c2gocy52YWx1ZSkpO3JldHVybiBPYmplY3QuYXNzaWduKG5ldyBoaCxyKX0sY3JlYXRlTm9kZTppKCh0LGUscik9PmhoLmZyb20odCxlLHIpLCJjcmVhdGVOb2RlIil9fSk7ZnVuY3Rpb24gV0x0KHt2YWx1ZTp0LHNvdXJjZTplfSxyKXtyZXR1cm4gZSYmKHQ/T29lOlJvZSkudGVzdC50ZXN0KGUpP2U6dD9yLm9wdGlvbnMudHJ1ZVN0cjpyLm9wdGlvbnMuZmFsc2VTdHJ9dmFyIE9vZSxSb2UsR0x0PXUoKCk9Pnt2cygpO2koV0x0LCJib29sU3RyaW5naWZ5Iik7T29lPXtpZGVudGlmeTppKHQ9PnQ9PT0hMCwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIsdGVzdDovXig/Oll8eXxbWXldZXN8WUVTfFtUdF1ydWV8VFJVRXxbT29dbnxPTikkLyxyZXNvbHZlOmkoKCk9Pm5ldyBTdCghMCksInJlc29sdmUiKSxzdHJpbmdpZnk6V0x0fSxSb2U9e2lkZW50aWZ5OmkodD0+dD09PSExLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIix0ZXN0Oi9eKD86TnxufFtObl1vfE5PfFtGZl1hbHNlfEZBTFNFfFtPb11mZnxPRkYpJC8scmVzb2x2ZTppKCgpPT5uZXcgU3QoITEpLCJyZXNvbHZlIiksc3RyaW5naWZ5OldMdH19KTt2YXIgV2JlLEdiZSxZYmUsWUx0PXUoKCk9Pnt2cygpO1diKCk7V2JlPXtpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L14oPzpbLStdP1wuKD86aW5mfEluZnxJTkYpfFwubmFufFwuTmFOfFwuTkFOKSQvLHJlc29sdmU6aSh0PT50LnNsaWNlKC0zKS50b0xvd2VyQ2FzZSgpPT09Im5hbiI/TmFOOnRbMF09PT0iLSI/TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpUbn0sR2JlPXtpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLGZvcm1hdDoiRVhQIix0ZXN0Oi9eWy0rXT8oPzpbMC05XVswLTlfXSopPyg/OlwuWzAtOV9dKik/W2VFXVstK10/WzAtOV0rJC8scmVzb2x2ZTppKHQ9PnBhcnNlRmxvYXQodC5yZXBsYWNlKC9fL2csIiIpKSwicmVzb2x2ZSIpLHN0cmluZ2lmeSh0KXtsZXQgZT1OdW1iZXIodC52YWx1ZSk7cmV0dXJuIGlzRmluaXRlKGUpP2UudG9FeHBvbmVudGlhbCgpOlRuKHQpfX0sWWJlPXtpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHRlc3Q6L15bLStdPyg/OlswLTldWzAtOV9dKik/XC5bMC05X10qJC8scmVzb2x2ZSh0KXtsZXQgZT1uZXcgU3QocGFyc2VGbG9hdCh0LnJlcGxhY2UoL18vZywiIikpKSxyPXQuaW5kZXhPZigiLiIpO2lmKHIhPT0tMSl7bGV0IGE9dC5zdWJzdHJpbmcocisxKS5yZXBsYWNlKC9fL2csIiIpO2FbYS5sZW5ndGgtMV09PT0iMCImJihlLm1pbkZyYWN0aW9uRGlnaXRzPWEubGVuZ3RoKX1yZXR1cm4gZX0sc3RyaW5naWZ5OlRufX0pO2Z1bmN0aW9uIEZvZSh0LGUscix7aW50QXNCaWdJbnQ6YX0pe2xldCBzPXRbMF07aWYoKHM9PT0iLSJ8fHM9PT0iKyIpJiYoZSs9MSksdD10LnN1YnN0cmluZyhlKS5yZXBsYWNlKC9fL2csIiIpLGEpe3N3aXRjaChyKXtjYXNlIDI6dD1gMGIke3R9YDticmVhaztjYXNlIDg6dD1gMG8ke3R9YDticmVhaztjYXNlIDE2OnQ9YDB4JHt0fWA7YnJlYWt9bGV0IG89QmlnSW50KHQpO3JldHVybiBzPT09Ii0iP0JpZ0ludCgtMSkqbzpvfWxldCBuPXBhcnNlSW50KHQscik7cmV0dXJuIHM9PT0iLSI/LTEqbjpufWZ1bmN0aW9uIEtiZSh0LGUscil7bGV0e3ZhbHVlOmF9PXQ7aWYoYU0oYSkpe2xldCBzPWEudG9TdHJpbmcoZSk7cmV0dXJuIGE8MD8iLSIrcitzLnN1YnN0cigxKTpyK3N9cmV0dXJuIFRuKHQpfXZhciBhTSxaYmUsUWJlLFhiZSxKYmUsS0x0PXUoKCk9PntXYigpO2FNPWkodD0+dHlwZW9mIHQ9PSJiaWdpbnQifHxOdW1iZXIuaXNJbnRlZ2VyKHQpLCJpbnRJZGVudGlmeSIpO2koRm9lLCJpbnRSZXNvbHZlIik7aShLYmUsImludFN0cmluZ2lmeSIpO1piZT17aWRlbnRpZnk6YU0sZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOmludCIsZm9ybWF0OiJCSU4iLHRlc3Q6L15bLStdPzBiWzAtMV9dKyQvLHJlc29sdmU6aSgodCxlLHIpPT5Gb2UodCwyLDIsciksInJlc29sdmUiKSxzdHJpbmdpZnk6aSh0PT5LYmUodCwyLCIwYiIpLCJzdHJpbmdpZnkiKX0sUWJlPXtpZGVudGlmeTphTSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iixmb3JtYXQ6Ik9DVCIsdGVzdDovXlstK10/MFswLTdfXSskLyxyZXNvbHZlOmkoKHQsZSxyKT0+Rm9lKHQsMSw4LHIpLCJyZXNvbHZlIiksc3RyaW5naWZ5OmkodD0+S2JlKHQsOCwiMCIpLCJzdHJpbmdpZnkiKX0sWGJlPXtpZGVudGlmeTphTSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iix0ZXN0Oi9eWy0rXT9bMC05XVswLTlfXSokLyxyZXNvbHZlOmkoKHQsZSxyKT0+Rm9lKHQsMCwxMCxyKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpUbn0sSmJlPXtpZGVudGlmeTphTSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6aW50Iixmb3JtYXQ6IkhFWCIsdGVzdDovXlstK10/MHhbMC05YS1mQS1GX10rJC8scmVzb2x2ZTppKCh0LGUscik9PkZvZSh0LDIsMTYsciksInJlc29sdmUiKSxzdHJpbmdpZnk6aSh0PT5LYmUodCwxNiwiMHgiKSwic3RyaW5naWZ5Iil9fSk7dmFyIG1oLFpiLGV4ZT11KCgpPT57ZGEoKTttdSgpO2d1KCk7bWg9Y2xhc3MgdCBleHRlbmRzIHhpe3N0YXRpY3tpKHRoaXMsIllBTUxTZXQiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnRhZz10LnRhZ31hZGQoZSl7bGV0IHI7X3IoZSk/cj1lOmUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmImtleSJpbiBlJiYidmFsdWUiaW4gZSYmZS52YWx1ZT09PW51bGw/cj1uZXcgbmkoZS5rZXksbnVsbCk6cj1uZXcgbmkoZSxudWxsKSxaZCh0aGlzLml0ZW1zLHIua2V5KXx8dGhpcy5pdGVtcy5wdXNoKHIpfWdldChlLHIpe2xldCBhPVpkKHRoaXMuaXRlbXMsZSk7cmV0dXJuIXImJl9yKGEpP3VyKGEua2V5KT9hLmtleS52YWx1ZTphLmtleTphfXNldChlLHIpe2lmKHR5cGVvZiByIT0iYm9vbGVhbiIpdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBib29sZWFuIHZhbHVlIGZvciBzZXQoa2V5LCB2YWx1ZSkgaW4gYSBZQU1MIHNldCwgbm90ICR7dHlwZW9mIHJ9YCk7bGV0IGE9WmQodGhpcy5pdGVtcyxlKTthJiYhcj90aGlzLml0ZW1zLnNwbGljZSh0aGlzLml0ZW1zLmluZGV4T2YoYSksMSk6IWEmJnImJnRoaXMuaXRlbXMucHVzaChuZXcgbmkoZSkpfXRvSlNPTihlLHIpe3JldHVybiBzdXBlci50b0pTT04oZSxyLFNldCl9dG9TdHJpbmcoZSxyLGEpe2lmKCFlKXJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzKTtpZih0aGlzLmhhc0FsbE51bGxWYWx1ZXMoITApKXJldHVybiBzdXBlci50b1N0cmluZyhPYmplY3QuYXNzaWduKHt9LGUse2FsbE51bGxWYWx1ZXM6ITB9KSxyLGEpO3Rocm93IG5ldyBFcnJvcigiU2V0IGl0ZW1zIG11c3QgYWxsIGhhdmUgbnVsbCB2YWx1ZXMiKX1zdGF0aWMgZnJvbShlLHIsYSl7bGV0e3JlcGxhY2VyOnN9PWEsbj1uZXcgdGhpcyhlKTtpZihyJiZTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KHIpKWZvcihsZXQgbyBvZiByKXR5cGVvZiBzPT0iZnVuY3Rpb24iJiYobz1zLmNhbGwocixvLG8pKSxuLml0ZW1zLnB1c2goZmgobyxudWxsLGEpKTtyZXR1cm4gbn19O21oLnRhZz0idGFnOnlhbWwub3JnLDIwMDI6c2V0IjtaYj17Y29sbGVjdGlvbjoibWFwIixpZGVudGlmeTppKHQ9PnQgaW5zdGFuY2VvZiBTZXQsImlkZW50aWZ5Iiksbm9kZUNsYXNzOm1oLGRlZmF1bHQ6ITEsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjpzZXQiLGNyZWF0ZU5vZGU6aSgodCxlLHIpPT5taC5mcm9tKHQsZSxyKSwiY3JlYXRlTm9kZSIpLHJlc29sdmUodCxlKXtpZih2MSh0KSl7aWYodC5oYXNBbGxOdWxsVmFsdWVzKCEwKSlyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgbWgsdCk7ZSgiU2V0IGl0ZW1zIG11c3QgYWxsIGhhdmUgbnVsbCB2YWx1ZXMiKX1lbHNlIGUoIkV4cGVjdGVkIGEgbWFwcGluZyBmb3IgdGhpcyB0YWciKTtyZXR1cm4gdH19fSk7ZnVuY3Rpb24gdHhlKHQsZSl7bGV0IHI9dFswXSxhPXI9PT0iLSJ8fHI9PT0iKyI/dC5zdWJzdHJpbmcoMSk6dCxzPWkobz0+ZT9CaWdJbnQobyk6TnVtYmVyKG8pLCJudW0iKSxuPWEucmVwbGFjZSgvXy9nLCIiKS5zcGxpdCgiOiIpLnJlZHVjZSgobyxsKT0+bypzKDYwKStzKGwpLHMoMCkpO3JldHVybiByPT09Ii0iP3MoLTEpKm46bn1mdW5jdGlvbiBaTHQodCl7bGV0e3ZhbHVlOmV9PXQscj1pKG89Pm8sIm51bSIpO2lmKHR5cGVvZiBlPT0iYmlnaW50IilyPWkobz0+QmlnSW50KG8pLCJudW0iKTtlbHNlIGlmKGlzTmFOKGUpfHwhaXNGaW5pdGUoZSkpcmV0dXJuIFRuKHQpO2xldCBhPSIiO2U8MCYmKGE9Ii0iLGUqPXIoLTEpKTtsZXQgcz1yKDYwKSxuPVtlJXNdO3JldHVybiBlPDYwP24udW5zaGlmdCgwKTooZT0oZS1uWzBdKS9zLG4udW5zaGlmdChlJXMpLGU+PTYwJiYoZT0oZS1uWzBdKS9zLG4udW5zaGlmdChlKSkpLGErbi5tYXAobz0+U3RyaW5nKG8pLnBhZFN0YXJ0KDIsIjAiKSkuam9pbigiOiIpLnJlcGxhY2UoLzAwMDAwMFxkKiQvLCIiKX12YXIgaU0sc00sZ2gscnhlPXUoKCk9PntXYigpO2kodHhlLCJwYXJzZVNleGFnZXNpbWFsIik7aShaTHQsInN0cmluZ2lmeVNleGFnZXNpbWFsIik7aU09e2lkZW50aWZ5OmkodD0+dHlwZW9mIHQ9PSJiaWdpbnQifHxOdW1iZXIuaXNJbnRlZ2VyKHQpLCJpZGVudGlmeSIpLGRlZmF1bHQ6ITAsdGFnOiJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLGZvcm1hdDoiVElNRSIsdGVzdDovXlstK10/WzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKSskLyxyZXNvbHZlOmkoKHQsZSx7aW50QXNCaWdJbnQ6cn0pPT50eGUodCxyKSwicmVzb2x2ZSIpLHN0cmluZ2lmeTpaTHR9LHNNPXtpZGVudGlmeTppKHQ9PnR5cGVvZiB0PT0ibnVtYmVyIiwiaWRlbnRpZnkiKSxkZWZhdWx0OiEwLHRhZzoidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLGZvcm1hdDoiVElNRSIsdGVzdDovXlstK10/WzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKStcLlswLTlfXSokLyxyZXNvbHZlOmkodD0+dHhlKHQsITEpLCJyZXNvbHZlIiksc3RyaW5naWZ5OlpMdH0sZ2g9e2lkZW50aWZ5OmkodD0+dCBpbnN0YW5jZW9mIERhdGUsImlkZW50aWZ5IiksZGVmYXVsdDohMCx0YWc6InRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcCIsdGVzdDpSZWdFeHAoIl4oWzAtOV17NH0pLShbMC05XXsxLDJ9KS0oWzAtOV17MSwyfSkoPzooPzp0fFR8WyBcXHRdKykoWzAtOV17MSwyfSk6KFswLTldezEsMn0pOihbMC05XXsxLDJ9KFxcLlswLTldKyk/KSg/OlsgXFx0XSooWnxbLStdWzAxMl0/WzAtOV0oPzo6WzAtOV17Mn0pPykpPyk/JCIpLHJlc29sdmUodCl7bGV0IGU9dC5tYXRjaChnaC50ZXN0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIiEhdGltZXN0YW1wIGV4cGVjdHMgYSBkYXRlLCBzdGFydGluZyB3aXRoIHl5eXktbW0tZGQiKTtsZXRbLHIsYSxzLG4sbyxsXT1lLm1hcChOdW1iZXIpLGM9ZVs3XT9OdW1iZXIoKGVbN10rIjAwIikuc3Vic3RyKDEsMykpOjAsZD1EYXRlLlVUQyhyLGEtMSxzLG58fDAsb3x8MCxsfHwwLGMpLGY9ZVs4XTtpZihmJiZmIT09IloiKXtsZXQgcD10eGUoZiwhMSk7TWF0aC5hYnMocCk8MzAmJihwKj02MCksZC09NmU0KnB9cmV0dXJuIG5ldyBEYXRlKGQpfSxzdHJpbmdpZnk6aSgoe3ZhbHVlOnR9KT0+dD8udG9JU09TdHJpbmcoKS5yZXBsYWNlKC8oVDAwOjAwOjAwKT9cLjAwMFokLywiIik/PyIiLCJzdHJpbmdpZnkiKX19KTt2YXIgQm9lLFFMdD11KCgpPT57VmIoKTskb2UoKTtqYigpO1pTKCk7amJlKCk7R0x0KCk7WUx0KCk7S0x0KCk7VG9lKCk7VWJlKCk7Tm9lKCk7ZXhlKCk7cnhlKCk7Qm9lPVskbCxBbCxRZCx4dSxPb2UsUm9lLFpiZSxRYmUsWGJlLEpiZSxXYmUsR2JlLFliZSxHYixEbCxLYixZYixaYixpTSxzTSxnaF19KTtmdW5jdGlvbiBuTSh0LGUscil7bGV0IGE9WEx0LmdldChlKTtpZihhJiYhdClyZXR1cm4gciYmIWEuaW5jbHVkZXMoRGwpP2EuY29uY2F0KERsKTphLnNsaWNlKCk7bGV0IHM9YTtpZighcylpZihBcnJheS5pc0FycmF5KHQpKXM9W107ZWxzZXtsZXQgbj1BcnJheS5mcm9tKFhMdC5rZXlzKCkpLmZpbHRlcihvPT5vIT09InlhbWwxMSIpLm1hcChvPT5KU09OLnN0cmluZ2lmeShvKSkuam9pbigiLCAiKTt0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2NoZW1hICIke2V9IjsgdXNlIG9uZSBvZiAke259IG9yIGRlZmluZSBjdXN0b21UYWdzIGFycmF5YCl9aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IG4gb2YgdClzPXMuY29uY2F0KG4pO2Vsc2UgdHlwZW9mIHQ9PSJmdW5jdGlvbiImJihzPXQocy5zbGljZSgpKSk7cmV0dXJuIHImJihzPXMuY29uY2F0KERsKSkscy5yZWR1Y2UoKG4sbyk9PntsZXQgbD10eXBlb2Ygbz09InN0cmluZyI/Skx0W29dOm87aWYoIWwpe2xldCBjPUpTT04uc3RyaW5naWZ5KG8pLGQ9T2JqZWN0LmtleXMoSkx0KS5tYXAoZj0+SlNPTi5zdHJpbmdpZnkoZikpLmpvaW4oIiwgIik7dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGN1c3RvbSB0YWcgJHtjfTsgdXNlIG9uZSBvZiAke2R9YCl9cmV0dXJuIG4uaW5jbHVkZXMobCl8fG4ucHVzaChsKSxufSxbXSl9dmFyIFhMdCxKTHQsYXhlLGVEdD11KCgpPT57VmIoKTskb2UoKTtqYigpO1pTKCk7UmJlKCk7RmJlKCk7SGJlKCk7Vkx0KCk7VUx0KCk7amJlKCk7VG9lKCk7VWJlKCk7Tm9lKCk7UUx0KCk7ZXhlKCk7cnhlKCk7WEx0PW5ldyBNYXAoW1siY29yZSIscWJlXSxbImZhaWxzYWZlIixbJGwsQWwsUWRdXSxbImpzb24iLFZiZV0sWyJ5YW1sMTEiLEJvZV0sWyJ5YW1sLTEuMSIsQm9lXV0pLEpMdD17YmluYXJ5OkdiLGJvb2w6VWIsZmxvYXQ6SlMsZmxvYXRFeHA6WFMsZmxvYXROYU46UVMsZmxvYXRUaW1lOnNNLGludDp0TSxpbnRIZXg6ck0saW50T2N0OmVNLGludFRpbWU6aU0sbWFwOiRsLG1lcmdlOkRsLG51bGw6eHUsb21hcDpLYixwYWlyczpZYixzZXE6QWwsc2V0OlpiLHRpbWVzdGFtcDpnaH0sYXhlPXsidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5IjpHYiwidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiOkRsLCJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIjpLYiwidGFnOnlhbWwub3JnLDIwMDI6cGFpcnMiOlliLCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXQiOlpiLCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiOmdofTtpKG5NLCJnZXRUYWdzIil9KTt2YXIgaXVhLHZ1LGl4ZT11KCgpPT57ZGEoKTtWYigpO2piKCk7WlMoKTtlRHQoKTtpdWE9aSgodCxlKT0+dC5rZXk8ZS5rZXk/LTE6dC5rZXk+ZS5rZXk/MTowLCJzb3J0TWFwRW50cmllc0J5S2V5IiksdnU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTY2hlbWEiKX1jb25zdHJ1Y3Rvcih7Y29tcGF0OmUsY3VzdG9tVGFnczpyLG1lcmdlOmEscmVzb2x2ZUtub3duVGFnczpzLHNjaGVtYTpuLHNvcnRNYXBFbnRyaWVzOm8sdG9TdHJpbmdEZWZhdWx0czpsfSl7dGhpcy5jb21wYXQ9QXJyYXkuaXNBcnJheShlKT9uTShlLCJjb21wYXQiKTplP25NKG51bGwsZSk6bnVsbCx0aGlzLm5hbWU9dHlwZW9mIG49PSJzdHJpbmciJiZufHwiY29yZSIsdGhpcy5rbm93blRhZ3M9cz9heGU6e30sdGhpcy50YWdzPW5NKHIsdGhpcy5uYW1lLGEpLHRoaXMudG9TdHJpbmdPcHRpb25zPWw/P251bGwsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsVGwse3ZhbHVlOiRsfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsZzEse3ZhbHVlOlFkfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsZDAse3ZhbHVlOkFsfSksdGhpcy5zb3J0TWFwRW50cmllcz10eXBlb2Ygbz09ImZ1bmN0aW9uIj9vOm89PT0hMD9pdWE6bnVsbH1jbG9uZSgpe2xldCBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModGhpcykpO3JldHVybiBlLnRhZ3M9dGhpcy50YWdzLnNsaWNlKCksZX19fSk7ZnVuY3Rpb24gc3hlKHQsZSl7bGV0IHI9W10sYT1lLmRpcmVjdGl2ZXM9PT0hMDtpZihlLmRpcmVjdGl2ZXMhPT0hMSYmdC5kaXJlY3RpdmVzKXtsZXQgYz10LmRpcmVjdGl2ZXMudG9TdHJpbmcodCk7Yz8oci5wdXNoKGMpLGE9ITApOnQuZGlyZWN0aXZlcy5kb2NTdGFydCYmKGE9ITApfWEmJnIucHVzaCgiLS0tIik7bGV0IHM9VVModCxlKSx7Y29tbWVudFN0cmluZzpufT1zLm9wdGlvbnM7aWYodC5jb21tZW50QmVmb3JlKXtyLmxlbmd0aCE9PTEmJnIudW5zaGlmdCgiIik7bGV0IGM9bih0LmNvbW1lbnRCZWZvcmUpO3IudW5zaGlmdChVMShjLCIiKSl9bGV0IG89ITEsbD1udWxsO2lmKHQuY29udGVudHMpe2lmKFByKHQuY29udGVudHMpKXtpZih0LmNvbnRlbnRzLnNwYWNlQmVmb3JlJiZhJiZyLnB1c2goIiIpLHQuY29udGVudHMuY29tbWVudEJlZm9yZSl7bGV0IGY9bih0LmNvbnRlbnRzLmNvbW1lbnRCZWZvcmUpO3IucHVzaChVMShmLCIiKSl9cy5mb3JjZUJsb2NrSW5kZW50PSEhdC5jb21tZW50LGw9dC5jb250ZW50cy5jb21tZW50fWxldCBjPWw/dm9pZCAwOigpPT5vPSEwLGQ9aDAodC5jb250ZW50cyxzLCgpPT5sPW51bGwsYyk7bCYmKGQrPVAyKGQsIiIsbihsKSkpLChkWzBdPT09InwifHxkWzBdPT09Ij4iKSYmcltyLmxlbmd0aC0xXT09PSItLS0iP3Jbci5sZW5ndGgtMV09YC0tLSAke2R9YDpyLnB1c2goZCl9ZWxzZSByLnB1c2goaDAodC5jb250ZW50cyxzKSk7aWYodC5kaXJlY3RpdmVzPy5kb2NFbmQpaWYodC5jb21tZW50KXtsZXQgYz1uKHQuY29tbWVudCk7Yy5pbmNsdWRlcyhgCmApPyhyLnB1c2goIi4uLiIpLHIucHVzaChVMShjLCIiKSkpOnIucHVzaChgLi4uICR7Y31gKX1lbHNlIHIucHVzaCgiLi4uIik7ZWxzZXtsZXQgYz10LmNvbW1lbnQ7YyYmbyYmKGM9Yy5yZXBsYWNlKC9eXG4rLywiIikpLGMmJigoIW98fGwpJiZyW3IubGVuZ3RoLTFdIT09IiImJnIucHVzaCgiIiksci5wdXNoKFUxKG4oYyksIiIpKSl9cmV0dXJuIHIuam9pbihgCmApK2AKYH12YXIgdER0PXUoKCk9PntkYSgpO1dTKCk7SFMoKTtpKHN4ZSwic3RyaW5naWZ5RG9jdW1lbnQiKX0pO2Z1bmN0aW9uIFFiKHQpe2lmKGNhKHQpKXJldHVybiEwO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYSBZQU1MIGNvbGxlY3Rpb24gYXMgZG9jdW1lbnQgY29udGVudHMiKX12YXIgRWwsb009dSgoKT0+e1JTKCk7d29lKCk7ZGEoKTttdSgpO2h1KCk7aXhlKCk7dER0KCk7eG9lKCk7VGJlKCk7QlMoKTt6YmUoKTtFbD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkRvY3VtZW50Iil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuY29tbWVudEJlZm9yZT1udWxsLHRoaXMuY29tbWVudD1udWxsLHRoaXMuZXJyb3JzPVtdLHRoaXMud2FybmluZ3M9W10sT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsYW8se3ZhbHVlOklTfSk7bGV0IHM9bnVsbDt0eXBlb2Ygcj09ImZ1bmN0aW9uInx8QXJyYXkuaXNBcnJheShyKT9zPXI6YT09PXZvaWQgMCYmciYmKGE9cixyPXZvaWQgMCk7bGV0IG49T2JqZWN0LmFzc2lnbih7aW50QXNCaWdJbnQ6ITEsa2VlcFNvdXJjZVRva2VuczohMSxsb2dMZXZlbDoid2FybiIscHJldHR5RXJyb3JzOiEwLHN0cmljdDohMCxzdHJpbmdLZXlzOiExLHVuaXF1ZUtleXM6ITAsdmVyc2lvbjoiMS4yIn0sYSk7dGhpcy5vcHRpb25zPW47bGV0e3ZlcnNpb246b309bjthPy5fZGlyZWN0aXZlcz8odGhpcy5kaXJlY3RpdmVzPWEuX2RpcmVjdGl2ZXMuYXREb2N1bWVudCgpLHRoaXMuZGlyZWN0aXZlcy55YW1sLmV4cGxpY2l0JiYobz10aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uKSk6dGhpcy5kaXJlY3RpdmVzPW5ldyBJMih7dmVyc2lvbjpvfSksdGhpcy5zZXRTY2hlbWEobyxhKSx0aGlzLmNvbnRlbnRzPWU9PT12b2lkIDA/bnVsbDp0aGlzLmNyZWF0ZU5vZGUoZSxzLGEpfWNsb25lKCl7bGV0IGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSx7W2FvXTp7dmFsdWU6SVN9fSk7cmV0dXJuIGUuY29tbWVudEJlZm9yZT10aGlzLmNvbW1lbnRCZWZvcmUsZS5jb21tZW50PXRoaXMuY29tbWVudCxlLmVycm9ycz10aGlzLmVycm9ycy5zbGljZSgpLGUud2FybmluZ3M9dGhpcy53YXJuaW5ncy5zbGljZSgpLGUub3B0aW9ucz1PYmplY3QuYXNzaWduKHt9LHRoaXMub3B0aW9ucyksdGhpcy5kaXJlY3RpdmVzJiYoZS5kaXJlY3RpdmVzPXRoaXMuZGlyZWN0aXZlcy5jbG9uZSgpKSxlLnNjaGVtYT10aGlzLnNjaGVtYS5jbG9uZSgpLGUuY29udGVudHM9UHIodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5jbG9uZShlLnNjaGVtYSk6dGhpcy5jb250ZW50cyx0aGlzLnJhbmdlJiYoZS5yYW5nZT10aGlzLnJhbmdlLnNsaWNlKCkpLGV9YWRkKGUpe1FiKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLmFkZChlKX1hZGRJbihlLHIpe1FiKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLmFkZEluKGUscil9Y3JlYXRlQWxpYXMoZSxyKXtpZighZS5hbmNob3Ipe2xldCBhPWdvZSh0aGlzKTtlLmFuY2hvcj0hcnx8YS5oYXMocik/Ym9lKHJ8fCJhIixhKTpyfXJldHVybiBuZXcgTGwoZS5hbmNob3IpfWNyZWF0ZU5vZGUoZSxyLGEpe2xldCBzO2lmKHR5cGVvZiByPT0iZnVuY3Rpb24iKWU9ci5jYWxsKHsiIjplfSwiIixlKSxzPXI7ZWxzZSBpZihBcnJheS5pc0FycmF5KHIpKXtsZXQgZz1pKGs9PnR5cGVvZiBrPT0ibnVtYmVyInx8ayBpbnN0YW5jZW9mIFN0cmluZ3x8ayBpbnN0YW5jZW9mIE51bWJlciwia2V5VG9TdHIiKSx5PXIuZmlsdGVyKGcpLm1hcChTdHJpbmcpO3kubGVuZ3RoPjAmJihyPXIuY29uY2F0KHkpKSxzPXJ9ZWxzZSBhPT09dm9pZCAwJiZyJiYoYT1yLHI9dm9pZCAwKTtsZXR7YWxpYXNEdXBsaWNhdGVPYmplY3RzOm4sYW5jaG9yUHJlZml4Om8sZmxvdzpsLGtlZXBVbmRlZmluZWQ6YyxvblRhZ09iajpkLHRhZzpmfT1hPz97fSx7b25BbmNob3I6cCxzZXRBbmNob3JzOmgsc291cmNlT2JqZWN0czptfT1fYmUodGhpcyxvfHwiYSIpLHY9e2FsaWFzRHVwbGljYXRlT2JqZWN0czpuPz8hMCxrZWVwVW5kZWZpbmVkOmM/PyExLG9uQW5jaG9yOnAsb25UYWdPYmo6ZCxyZXBsYWNlcjpzLHNjaGVtYTp0aGlzLnNjaGVtYSxzb3VyY2VPYmplY3RzOm19LGI9cDAoZSxmLHYpO3JldHVybiBsJiZjYShiKSYmKGIuZmxvdz0hMCksaCgpLGJ9Y3JlYXRlUGFpcihlLHIsYT17fSl7bGV0IHM9dGhpcy5jcmVhdGVOb2RlKGUsbnVsbCxhKSxuPXRoaXMuY3JlYXRlTm9kZShyLG51bGwsYSk7cmV0dXJuIG5ldyBuaShzLG4pfWRlbGV0ZShlKXtyZXR1cm4gUWIodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5kZWxldGUoZSk6ITF9ZGVsZXRlSW4oZSl7cmV0dXJuIHBoKGUpP3RoaXMuY29udGVudHM9PW51bGw/ITE6KHRoaXMuY29udGVudHM9bnVsbCwhMCk6UWIodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5kZWxldGVJbihlKTohMX1nZXQoZSxyKXtyZXR1cm4gY2EodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5nZXQoZSxyKTp2b2lkIDB9Z2V0SW4oZSxyKXtyZXR1cm4gcGgoZSk/IXImJnVyKHRoaXMuY29udGVudHMpP3RoaXMuY29udGVudHMudmFsdWU6dGhpcy5jb250ZW50czpjYSh0aGlzLmNvbnRlbnRzKT90aGlzLmNvbnRlbnRzLmdldEluKGUscik6dm9pZCAwfWhhcyhlKXtyZXR1cm4gY2EodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5oYXMoZSk6ITF9aGFzSW4oZSl7cmV0dXJuIHBoKGUpP3RoaXMuY29udGVudHMhPT12b2lkIDA6Y2EodGhpcy5jb250ZW50cyk/dGhpcy5jb250ZW50cy5oYXNJbihlKTohMX1zZXQoZSxyKXt0aGlzLmNvbnRlbnRzPT1udWxsP3RoaXMuY29udGVudHM9RmIodGhpcy5zY2hlbWEsW2VdLHIpOlFiKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLnNldChlLHIpfXNldEluKGUscil7cGgoZSk/dGhpcy5jb250ZW50cz1yOnRoaXMuY29udGVudHM9PW51bGw/dGhpcy5jb250ZW50cz1GYih0aGlzLnNjaGVtYSxBcnJheS5mcm9tKGUpLHIpOlFiKHRoaXMuY29udGVudHMpJiZ0aGlzLmNvbnRlbnRzLnNldEluKGUscil9c2V0U2NoZW1hKGUscj17fSl7dHlwZW9mIGU9PSJudW1iZXIiJiYoZT1TdHJpbmcoZSkpO2xldCBhO3N3aXRjaChlKXtjYXNlIjEuMSI6dGhpcy5kaXJlY3RpdmVzP3RoaXMuZGlyZWN0aXZlcy55YW1sLnZlcnNpb249IjEuMSI6dGhpcy5kaXJlY3RpdmVzPW5ldyBJMih7dmVyc2lvbjoiMS4xIn0pLGE9e3Jlc29sdmVLbm93blRhZ3M6ITEsc2NoZW1hOiJ5YW1sLTEuMSJ9O2JyZWFrO2Nhc2UiMS4yIjpjYXNlIm5leHQiOnRoaXMuZGlyZWN0aXZlcz90aGlzLmRpcmVjdGl2ZXMueWFtbC52ZXJzaW9uPWU6dGhpcy5kaXJlY3RpdmVzPW5ldyBJMih7dmVyc2lvbjplfSksYT17cmVzb2x2ZUtub3duVGFnczohMCxzY2hlbWE6ImNvcmUifTticmVhaztjYXNlIG51bGw6dGhpcy5kaXJlY3RpdmVzJiZkZWxldGUgdGhpcy5kaXJlY3RpdmVzLGE9bnVsbDticmVhaztkZWZhdWx0OntsZXQgcz1KU09OLnN0cmluZ2lmeShlKTt0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICcxLjEnLCAnMS4yJyBvciBudWxsIGFzIGZpcnN0IGFyZ3VtZW50LCBidXQgZm91bmQ6ICR7c31gKX19aWYoci5zY2hlbWEgaW5zdGFuY2VvZiBPYmplY3QpdGhpcy5zY2hlbWE9ci5zY2hlbWE7ZWxzZSBpZihhKXRoaXMuc2NoZW1hPW5ldyB2dShPYmplY3QuYXNzaWduKGEscikpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJXaXRoIGEgbnVsbCBZQU1MIHZlcnNpb24sIHRoZSB7IHNjaGVtYTogU2NoZW1hIH0gb3B0aW9uIGlzIHJlcXVpcmVkIil9dG9KUyh7anNvbjplLGpzb25Bcmc6cixtYXBBc01hcDphLG1heEFsaWFzQ291bnQ6cyxvbkFuY2hvcjpuLHJldml2ZXI6b309e30pe2xldCBsPXthbmNob3JzOm5ldyBNYXAsZG9jOnRoaXMsa2VlcDohZSxtYXBBc01hcDphPT09ITAsbWFwS2V5V2FybmVkOiExLG1heEFsaWFzQ291bnQ6dHlwZW9mIHM9PSJudW1iZXIiP3M6MTAwfSxjPXhzKHRoaXMuY29udGVudHMscj8/IiIsbCk7aWYodHlwZW9mIG49PSJmdW5jdGlvbiIpZm9yKGxldHtjb3VudDpkLHJlczpmfW9mIGwuYW5jaG9ycy52YWx1ZXMoKSluKGYsZCk7cmV0dXJuIHR5cGVvZiBvPT0iZnVuY3Rpb24iP1lkKG8seyIiOmN9LCIiLGMpOmN9dG9KU09OKGUscil7cmV0dXJuIHRoaXMudG9KUyh7anNvbjohMCxqc29uQXJnOmUsbWFwQXNNYXA6ITEsb25BbmNob3I6cn0pfXRvU3RyaW5nKGU9e30pe2lmKHRoaXMuZXJyb3JzLmxlbmd0aD4wKXRocm93IG5ldyBFcnJvcigiRG9jdW1lbnQgd2l0aCBlcnJvcnMgY2Fubm90IGJlIHN0cmluZ2lmaWVkIik7aWYoImluZGVudCJpbiBlJiYoIU51bWJlci5pc0ludGVnZXIoZS5pbmRlbnQpfHxOdW1iZXIoZS5pbmRlbnQpPD0wKSl7bGV0IHI9SlNPTi5zdHJpbmdpZnkoZS5pbmRlbnQpO3Rocm93IG5ldyBFcnJvcihgImluZGVudCIgb3B0aW9uIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBub3QgJHtyfWApfXJldHVybiBzeGUodGhpcyxlKX19O2koUWIsImFzc2VydENvbGxlY3Rpb24iKX0pO3ZhciB5dSxJbyx3dSxYYixsTT11KCgpPT57eXU9Y2xhc3MgZXh0ZW5kcyBFcnJvcntzdGF0aWN7aSh0aGlzLCJZQU1MRXJyb3IiKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXtzdXBlcigpLHRoaXMubmFtZT1lLHRoaXMuY29kZT1hLHRoaXMubWVzc2FnZT1zLHRoaXMucG9zPXJ9fSxJbz1jbGFzcyBleHRlbmRzIHl1e3N0YXRpY3tpKHRoaXMsIllBTUxQYXJzZUVycm9yIil9Y29uc3RydWN0b3IoZSxyLGEpe3N1cGVyKCJZQU1MUGFyc2VFcnJvciIsZSxyLGEpfX0sd3U9Y2xhc3MgZXh0ZW5kcyB5dXtzdGF0aWN7aSh0aGlzLCJZQU1MV2FybmluZyIpfWNvbnN0cnVjdG9yKGUscixhKXtzdXBlcigiWUFNTFdhcm5pbmciLGUscixhKX19LFhiPWkoKHQsZSk9PnI9PntpZihyLnBvc1swXT09PS0xKXJldHVybjtyLmxpbmVQb3M9ci5wb3MubWFwKGw9PmUubGluZVBvcyhsKSk7bGV0e2xpbmU6YSxjb2w6c309ci5saW5lUG9zWzBdO3IubWVzc2FnZSs9YCBhdCBsaW5lICR7YX0sIGNvbHVtbiAke3N9YDtsZXQgbj1zLTEsbz10LnN1YnN0cmluZyhlLmxpbmVTdGFydHNbYS0xXSxlLmxpbmVTdGFydHNbYV0pLnJlcGxhY2UoL1tcblxyXSskLywiIik7aWYobj49NjAmJm8ubGVuZ3RoPjgwKXtsZXQgbD1NYXRoLm1pbihuLTM5LG8ubGVuZ3RoLTc5KTtvPSJcdTIwMjYiK28uc3Vic3RyaW5nKGwpLG4tPWwtMX1pZihvLmxlbmd0aD44MCYmKG89by5zdWJzdHJpbmcoMCw3OSkrIlx1MjAyNiIpLGE+MSYmL14gKiQvLnRlc3Qoby5zdWJzdHJpbmcoMCxuKSkpe2xldCBsPXQuc3Vic3RyaW5nKGUubGluZVN0YXJ0c1thLTJdLGUubGluZVN0YXJ0c1thLTFdKTtsLmxlbmd0aD44MCYmKGw9bC5zdWJzdHJpbmcoMCw3OSkrYFx1MjAyNgpgKSxvPWwrb31pZigvW14gXS8udGVzdChvKSl7bGV0IGw9MSxjPXIubGluZVBvc1sxXTtjPy5saW5lPT09YSYmYy5jb2w+cyYmKGw9TWF0aC5tYXgoMSxNYXRoLm1pbihjLmNvbC1zLDgwLW4pKSk7bGV0IGQ9IiAiLnJlcGVhdChuKSsiXiIucmVwZWF0KGwpO3IubWVzc2FnZSs9YDoKCiR7b30KJHtkfQpgfX0sInByZXR0aWZ5RXJyb3IiKX0pO2Z1bmN0aW9uIE4yKHQse2Zsb3c6ZSxpbmRpY2F0b3I6cixuZXh0OmEsb2Zmc2V0OnMsb25FcnJvcjpuLHBhcmVudEluZGVudDpvLHN0YXJ0T25OZXdsaW5lOmx9KXtsZXQgYz0hMSxkPWwsZj1sLHA9IiIsaD0iIixtPSExLHY9ITEsYj1udWxsLGc9bnVsbCx5PW51bGwsaz1udWxsLE09bnVsbCxOPW51bGwsXz1udWxsO2ZvcihsZXQgTCBvZiB0KXN3aXRjaCh2JiYoTC50eXBlIT09InNwYWNlIiYmTC50eXBlIT09Im5ld2xpbmUiJiZMLnR5cGUhPT0iY29tbWEiJiZuKEwub2Zmc2V0LCJNSVNTSU5HX0NIQVIiLCJUYWdzIGFuZCBhbmNob3JzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gdGhlIG5leHQgdG9rZW4gYnkgd2hpdGUgc3BhY2UiKSx2PSExKSxiJiYoZCYmTC50eXBlIT09ImNvbW1lbnQiJiZMLnR5cGUhPT0ibmV3bGluZSImJm4oYiwiVEFCX0FTX0lOREVOVCIsIlRhYnMgYXJlIG5vdCBhbGxvd2VkIGFzIGluZGVudGF0aW9uIiksYj1udWxsKSxMLnR5cGUpe2Nhc2Uic3BhY2UiOiFlJiYociE9PSJkb2Mtc3RhcnQifHxhPy50eXBlIT09ImZsb3ctY29sbGVjdGlvbiIpJiZMLnNvdXJjZS5pbmNsdWRlcygiCSIpJiYoYj1MKSxmPSEwO2JyZWFrO2Nhc2UiY29tbWVudCI6e2Z8fG4oTCwiTUlTU0lOR19DSEFSIiwiQ29tbWVudHMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSBvdGhlciB0b2tlbnMgYnkgd2hpdGUgc3BhY2UgY2hhcmFjdGVycyIpO2xldCBFPUwuc291cmNlLnN1YnN0cmluZygxKXx8IiAiO3A/cCs9aCtFOnA9RSxoPSIiLGQ9ITE7YnJlYWt9Y2FzZSJuZXdsaW5lIjpkP3A/cCs9TC5zb3VyY2U6KCFOfHxyIT09InNlcS1pdGVtLWluZCIpJiYoYz0hMCk6aCs9TC5zb3VyY2UsZD0hMCxtPSEwLChnfHx5KSYmKGs9TCksZj0hMDticmVhaztjYXNlImFuY2hvciI6ZyYmbihMLCJNVUxUSVBMRV9BTkNIT1JTIiwiQSBub2RlIGNhbiBoYXZlIGF0IG1vc3Qgb25lIGFuY2hvciIpLEwuc291cmNlLmVuZHNXaXRoKCI6IikmJm4oTC5vZmZzZXQrTC5zb3VyY2UubGVuZ3RoLTEsIkJBRF9BTElBUyIsIkFuY2hvciBlbmRpbmcgaW4gOiBpcyBhbWJpZ3VvdXMiLCEwKSxnPUwsXz8/KF89TC5vZmZzZXQpLGQ9ITEsZj0hMSx2PSEwO2JyZWFrO2Nhc2UidGFnIjp7eSYmbihMLCJNVUxUSVBMRV9UQUdTIiwiQSBub2RlIGNhbiBoYXZlIGF0IG1vc3Qgb25lIHRhZyIpLHk9TCxfPz8oXz1MLm9mZnNldCksZD0hMSxmPSExLHY9ITA7YnJlYWt9Y2FzZSByOihnfHx5KSYmbihMLCJCQURfUFJPUF9PUkRFUiIsYEFuY2hvcnMgYW5kIHRhZ3MgbXVzdCBiZSBhZnRlciB0aGUgJHtMLnNvdXJjZX0gaW5kaWNhdG9yYCksTiYmbihMLCJVTkVYUEVDVEVEX1RPS0VOIixgVW5leHBlY3RlZCAke0wuc291cmNlfSBpbiAke2U/PyJjb2xsZWN0aW9uIn1gKSxOPUwsZD1yPT09InNlcS1pdGVtLWluZCJ8fHI9PT0iZXhwbGljaXQta2V5LWluZCIsZj0hMTticmVhaztjYXNlImNvbW1hIjppZihlKXtNJiZuKEwsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkICwgaW4gJHtlfWApLE09TCxkPSExLGY9ITE7YnJlYWt9ZGVmYXVsdDpuKEwsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkICR7TC50eXBlfSB0b2tlbmApLGQ9ITEsZj0hMX1sZXQgUz10W3QubGVuZ3RoLTFdLE89Uz9TLm9mZnNldCtTLnNvdXJjZS5sZW5ndGg6cztyZXR1cm4gdiYmYSYmYS50eXBlIT09InNwYWNlIiYmYS50eXBlIT09Im5ld2xpbmUiJiZhLnR5cGUhPT0iY29tbWEiJiYoYS50eXBlIT09InNjYWxhciJ8fGEuc291cmNlIT09IiIpJiZuKGEub2Zmc2V0LCJNSVNTSU5HX0NIQVIiLCJUYWdzIGFuZCBhbmNob3JzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gdGhlIG5leHQgdG9rZW4gYnkgd2hpdGUgc3BhY2UiKSxiJiYoZCYmYi5pbmRlbnQ8PW98fGE/LnR5cGU9PT0iYmxvY2stbWFwInx8YT8udHlwZT09PSJibG9jay1zZXEiKSYmbihiLCJUQUJfQVNfSU5ERU5UIiwiVGFicyBhcmUgbm90IGFsbG93ZWQgYXMgaW5kZW50YXRpb24iKSx7Y29tbWE6TSxmb3VuZDpOLHNwYWNlQmVmb3JlOmMsY29tbWVudDpwLGhhc05ld2xpbmU6bSxhbmNob3I6Zyx0YWc6eSxuZXdsaW5lQWZ0ZXJQcm9wOmssZW5kOk8sc3RhcnQ6Xz8/T319dmFyIGNNPXUoKCk9PntpKE4yLCJyZXNvbHZlUHJvcHMiKX0pO2Z1bmN0aW9uIFhkKHQpe2lmKCF0KXJldHVybiBudWxsO3N3aXRjaCh0LnR5cGUpe2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjppZih0LnNvdXJjZS5pbmNsdWRlcyhgCmApKXJldHVybiEwO2lmKHQuZW5kKXtmb3IobGV0IGUgb2YgdC5lbmQpaWYoZS50eXBlPT09Im5ld2xpbmUiKXJldHVybiEwfXJldHVybiExO2Nhc2UiZmxvdy1jb2xsZWN0aW9uIjpmb3IobGV0IGUgb2YgdC5pdGVtcyl7Zm9yKGxldCByIG9mIGUuc3RhcnQpaWYoci50eXBlPT09Im5ld2xpbmUiKXJldHVybiEwO2lmKGUuc2VwKXtmb3IobGV0IHIgb2YgZS5zZXApaWYoci50eXBlPT09Im5ld2xpbmUiKXJldHVybiEwfWlmKFhkKGUua2V5KXx8WGQoZS52YWx1ZSkpcmV0dXJuITB9cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19dmFyIEhvZT11KCgpPT57aShYZCwiY29udGFpbnNOZXdsaW5lIil9KTtmdW5jdGlvbiBKYih0LGUscil7aWYoZT8udHlwZT09PSJmbG93LWNvbGxlY3Rpb24iKXtsZXQgYT1lLmVuZFswXTthLmluZGVudD09PXQmJihhLnNvdXJjZT09PSJdInx8YS5zb3VyY2U9PT0ifSIpJiZYZChlKSYmcihhLCJCQURfSU5ERU5UIiwiRmxvdyBlbmQgaW5kaWNhdG9yIHNob3VsZCBiZSBtb3JlIGluZGVudGVkIHRoYW4gcGFyZW50IiwhMCl9fXZhciBueGU9dSgoKT0+e0hvZSgpO2koSmIsImZsb3dJbmRlbnRDaGVjayIpfSk7ZnVuY3Rpb24gZE0odCxlLHIpe2xldHt1bmlxdWVLZXlzOmF9PXQub3B0aW9ucztpZihhPT09ITEpcmV0dXJuITE7bGV0IHM9dHlwZW9mIGE9PSJmdW5jdGlvbiI/YToobixvKT0+bj09PW98fHVyKG4pJiZ1cihvKSYmbi52YWx1ZT09PW8udmFsdWU7cmV0dXJuIGUuc29tZShuPT5zKG4ua2V5LHIpKX12YXIgb3hlPXUoKCk9PntkYSgpO2koZE0sIm1hcEluY2x1ZGVzIil9KTtmdW5jdGlvbiBseGUoe2NvbXBvc2VOb2RlOnQsY29tcG9zZUVtcHR5Tm9kZTplfSxyLGEscyxuKXtsZXQgbz1uPy5ub2RlQ2xhc3M/P3hpLGw9bmV3IG8oci5zY2hlbWEpO3IuYXRSb290JiYoci5hdFJvb3Q9ITEpO2xldCBjPWEub2Zmc2V0LGQ9bnVsbDtmb3IobGV0IGYgb2YgYS5pdGVtcyl7bGV0e3N0YXJ0OnAsa2V5Omgsc2VwOm0sdmFsdWU6dn09ZixiPU4yKHAse2luZGljYXRvcjoiZXhwbGljaXQta2V5LWluZCIsbmV4dDpoPz9tPy5bMF0sb2Zmc2V0OmMsb25FcnJvcjpzLHBhcmVudEluZGVudDphLmluZGVudCxzdGFydE9uTmV3bGluZTohMH0pLGc9IWIuZm91bmQ7aWYoZyl7aWYoaCYmKGgudHlwZT09PSJibG9jay1zZXEiP3MoYywiQkxPQ0tfQVNfSU1QTElDSVRfS0VZIiwiQSBibG9jayBzZXF1ZW5jZSBtYXkgbm90IGJlIHVzZWQgYXMgYW4gaW1wbGljaXQgbWFwIGtleSIpOiJpbmRlbnQiaW4gaCYmaC5pbmRlbnQhPT1hLmluZGVudCYmcyhjLCJCQURfSU5ERU5UIixyRHQpKSwhYi5hbmNob3ImJiFiLnRhZyYmIW0pe2Q9Yi5lbmQsYi5jb21tZW50JiYobC5jb21tZW50P2wuY29tbWVudCs9YApgK2IuY29tbWVudDpsLmNvbW1lbnQ9Yi5jb21tZW50KTtjb250aW51ZX0oYi5uZXdsaW5lQWZ0ZXJQcm9wfHxYZChoKSkmJnMoaD8/cFtwLmxlbmd0aC0xXSwiTVVMVElMSU5FX0lNUExJQ0lUX0tFWSIsIkltcGxpY2l0IGtleXMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lIil9ZWxzZSBiLmZvdW5kPy5pbmRlbnQhPT1hLmluZGVudCYmcyhjLCJCQURfSU5ERU5UIixyRHQpO3IuYXRLZXk9ITA7bGV0IHk9Yi5lbmQsaz1oP3QocixoLGIscyk6ZShyLHkscCxudWxsLGIscyk7ci5zY2hlbWEuY29tcGF0JiZKYihhLmluZGVudCxoLHMpLHIuYXRLZXk9ITEsZE0ocixsLml0ZW1zLGspJiZzKHksIkRVUExJQ0FURV9LRVkiLCJNYXAga2V5cyBtdXN0IGJlIHVuaXF1ZSIpO2xldCBNPU4yKG0/P1tdLHtpbmRpY2F0b3I6Im1hcC12YWx1ZS1pbmQiLG5leHQ6dixvZmZzZXQ6ay5yYW5nZVsyXSxvbkVycm9yOnMscGFyZW50SW5kZW50OmEuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiFofHxoLnR5cGU9PT0iYmxvY2stc2NhbGFyIn0pO2lmKGM9TS5lbmQsTS5mb3VuZCl7ZyYmKHY/LnR5cGU9PT0iYmxvY2stbWFwIiYmIU0uaGFzTmV3bGluZSYmcyhjLCJCTE9DS19BU19JTVBMSUNJVF9LRVkiLCJOZXN0ZWQgbWFwcGluZ3MgYXJlIG5vdCBhbGxvd2VkIGluIGNvbXBhY3QgbWFwcGluZ3MiKSxyLm9wdGlvbnMuc3RyaWN0JiZiLnN0YXJ0PE0uZm91bmQub2Zmc2V0LTEwMjQmJnMoay5yYW5nZSwiS0VZX09WRVJfMTAyNF9DSEFSUyIsIlRoZSA6IGluZGljYXRvciBtdXN0IGJlIGF0IG1vc3QgMTAyNCBjaGFycyBhZnRlciB0aGUgc3RhcnQgb2YgYW4gaW1wbGljaXQgYmxvY2sgbWFwcGluZyBrZXkiKSk7bGV0IE49dj90KHIsdixNLHMpOmUocixjLG0sbnVsbCxNLHMpO3Iuc2NoZW1hLmNvbXBhdCYmSmIoYS5pbmRlbnQsdixzKSxjPU4ucmFuZ2VbMl07bGV0IF89bmV3IG5pKGssTik7ci5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJihfLnNyY1Rva2VuPWYpLGwuaXRlbXMucHVzaChfKX1lbHNle2cmJnMoay5yYW5nZSwiTUlTU0lOR19DSEFSIiwiSW1wbGljaXQgbWFwIGtleXMgbmVlZCB0byBiZSBmb2xsb3dlZCBieSBtYXAgdmFsdWVzIiksTS5jb21tZW50JiYoay5jb21tZW50P2suY29tbWVudCs9YApgK00uY29tbWVudDprLmNvbW1lbnQ9TS5jb21tZW50KTtsZXQgTj1uZXcgbmkoayk7ci5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJihOLnNyY1Rva2VuPWYpLGwuaXRlbXMucHVzaChOKX19cmV0dXJuIGQmJmQ8YyYmcyhkLCJJTVBPU1NJQkxFIiwiTWFwIGNvbW1lbnQgd2l0aCB0cmFpbGluZyBjb250ZW50IiksbC5yYW5nZT1bYS5vZmZzZXQsYyxkPz9jXSxsfXZhciByRHQsYUR0PXUoKCk9PnttdSgpO2d1KCk7Y00oKTtIb2UoKTtueGUoKTtveGUoKTtyRHQ9IkFsbCBtYXBwaW5nIGl0ZW1zIG11c3Qgc3RhcnQgYXQgdGhlIHNhbWUgY29sdW1uIjtpKGx4ZSwicmVzb2x2ZUJsb2NrTWFwIil9KTtmdW5jdGlvbiBjeGUoe2NvbXBvc2VOb2RlOnQsY29tcG9zZUVtcHR5Tm9kZTplfSxyLGEscyxuKXtsZXQgbz1uPy5ub2RlQ2xhc3M/P3FzLGw9bmV3IG8oci5zY2hlbWEpO3IuYXRSb290JiYoci5hdFJvb3Q9ITEpLHIuYXRLZXkmJihyLmF0S2V5PSExKTtsZXQgYz1hLm9mZnNldCxkPW51bGw7Zm9yKGxldHtzdGFydDpmLHZhbHVlOnB9b2YgYS5pdGVtcyl7bGV0IGg9TjIoZix7aW5kaWNhdG9yOiJzZXEtaXRlbS1pbmQiLG5leHQ6cCxvZmZzZXQ6YyxvbkVycm9yOnMscGFyZW50SW5kZW50OmEuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiEwfSk7aWYoIWguZm91bmQpaWYoaC5hbmNob3J8fGgudGFnfHxwKXA/LnR5cGU9PT0iYmxvY2stc2VxIj9zKGguZW5kLCJCQURfSU5ERU5UIiwiQWxsIHNlcXVlbmNlIGl0ZW1zIG11c3Qgc3RhcnQgYXQgdGhlIHNhbWUgY29sdW1uIik6cyhjLCJNSVNTSU5HX0NIQVIiLCJTZXF1ZW5jZSBpdGVtIHdpdGhvdXQgLSBpbmRpY2F0b3IiKTtlbHNle2Q9aC5lbmQsaC5jb21tZW50JiYobC5jb21tZW50PWguY29tbWVudCk7Y29udGludWV9bGV0IG09cD90KHIscCxoLHMpOmUocixoLmVuZCxmLG51bGwsaCxzKTtyLnNjaGVtYS5jb21wYXQmJkpiKGEuaW5kZW50LHAscyksYz1tLnJhbmdlWzJdLGwuaXRlbXMucHVzaChtKX1yZXR1cm4gbC5yYW5nZT1bYS5vZmZzZXQsYyxkPz9jXSxsfXZhciBpRHQ9dSgoKT0+e2J1KCk7Y00oKTtueGUoKTtpKGN4ZSwicmVzb2x2ZUJsb2NrU2VxIil9KTtmdW5jdGlvbiBPMih0LGUscixhKXtsZXQgcz0iIjtpZih0KXtsZXQgbj0hMSxvPSIiO2ZvcihsZXQgbCBvZiB0KXtsZXR7c291cmNlOmMsdHlwZTpkfT1sO3N3aXRjaChkKXtjYXNlInNwYWNlIjpuPSEwO2JyZWFrO2Nhc2UiY29tbWVudCI6e3ImJiFuJiZhKGwsIk1JU1NJTkdfQ0hBUiIsIkNvbW1lbnRzIG11c3QgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgdG9rZW5zIGJ5IHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMiKTtsZXQgZj1jLnN1YnN0cmluZygxKXx8IiAiO3M/cys9bytmOnM9ZixvPSIiO2JyZWFrfWNhc2UibmV3bGluZSI6cyYmKG8rPWMpLG49ITA7YnJlYWs7ZGVmYXVsdDphKGwsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkICR7ZH0gYXQgbm9kZSBlbmRgKX1lKz1jLmxlbmd0aH19cmV0dXJue2NvbW1lbnQ6cyxvZmZzZXQ6ZX19dmFyIGV4PXUoKCk9PntpKE8yLCJyZXNvbHZlRW5kIil9KTtmdW5jdGlvbiBweGUoe2NvbXBvc2VOb2RlOnQsY29tcG9zZUVtcHR5Tm9kZTplfSxyLGEscyxuKXtsZXQgbz1hLnN0YXJ0LnNvdXJjZT09PSJ7IixsPW8/ImZsb3cgbWFwIjoiZmxvdyBzZXF1ZW5jZSIsYz1uPy5ub2RlQ2xhc3M/PyhvP3hpOnFzKSxkPW5ldyBjKHIuc2NoZW1hKTtkLmZsb3c9ITA7bGV0IGY9ci5hdFJvb3Q7ZiYmKHIuYXRSb290PSExKSxyLmF0S2V5JiYoci5hdEtleT0hMSk7bGV0IHA9YS5vZmZzZXQrYS5zdGFydC5zb3VyY2UubGVuZ3RoO2ZvcihsZXQgZz0wO2c8YS5pdGVtcy5sZW5ndGg7KytnKXtsZXQgeT1hLml0ZW1zW2ddLHtzdGFydDprLGtleTpNLHNlcDpOLHZhbHVlOl99PXksUz1OMihrLHtmbG93OmwsaW5kaWNhdG9yOiJleHBsaWNpdC1rZXktaW5kIixuZXh0Ok0/P04/LlswXSxvZmZzZXQ6cCxvbkVycm9yOnMscGFyZW50SW5kZW50OmEuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiExfSk7aWYoIVMuZm91bmQpe2lmKCFTLmFuY2hvciYmIVMudGFnJiYhTiYmIV8pe2c9PT0wJiZTLmNvbW1hP3MoUy5jb21tYSwiVU5FWFBFQ1RFRF9UT0tFTiIsYFVuZXhwZWN0ZWQgLCBpbiAke2x9YCk6ZzxhLml0ZW1zLmxlbmd0aC0xJiZzKFMuc3RhcnQsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkIGVtcHR5IGl0ZW0gaW4gJHtsfWApLFMuY29tbWVudCYmKGQuY29tbWVudD9kLmNvbW1lbnQrPWAKYCtTLmNvbW1lbnQ6ZC5jb21tZW50PVMuY29tbWVudCkscD1TLmVuZDtjb250aW51ZX0hbyYmci5vcHRpb25zLnN0cmljdCYmWGQoTSkmJnMoTSwiTVVMVElMSU5FX0lNUExJQ0lUX0tFWSIsIkltcGxpY2l0IGtleXMgb2YgZmxvdyBzZXF1ZW5jZSBwYWlycyBuZWVkIHRvIGJlIG9uIGEgc2luZ2xlIGxpbmUiKX1pZihnPT09MClTLmNvbW1hJiZzKFMuY29tbWEsIlVORVhQRUNURURfVE9LRU4iLGBVbmV4cGVjdGVkICwgaW4gJHtsfWApO2Vsc2UgaWYoUy5jb21tYXx8cyhTLnN0YXJ0LCJNSVNTSU5HX0NIQVIiLGBNaXNzaW5nICwgYmV0d2VlbiAke2x9IGl0ZW1zYCksUy5jb21tZW50KXtsZXQgTz0iIjtlOmZvcihsZXQgTCBvZiBrKXN3aXRjaChMLnR5cGUpe2Nhc2UiY29tbWEiOmNhc2Uic3BhY2UiOmJyZWFrO2Nhc2UiY29tbWVudCI6Tz1MLnNvdXJjZS5zdWJzdHJpbmcoMSk7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9aWYoTyl7bGV0IEw9ZC5pdGVtc1tkLml0ZW1zLmxlbmd0aC0xXTtfcihMKSYmKEw9TC52YWx1ZT8/TC5rZXkpLEwuY29tbWVudD9MLmNvbW1lbnQrPWAKYCtPOkwuY29tbWVudD1PLFMuY29tbWVudD1TLmNvbW1lbnQuc3Vic3RyaW5nKE8ubGVuZ3RoKzEpfX1pZighbyYmIU4mJiFTLmZvdW5kKXtsZXQgTz1fP3QocixfLFMscyk6ZShyLFMuZW5kLE4sbnVsbCxTLHMpO2QuaXRlbXMucHVzaChPKSxwPU8ucmFuZ2VbMl0sdXhlKF8pJiZzKE8ucmFuZ2UsIkJMT0NLX0lOX0ZMT1ciLGR4ZSl9ZWxzZXtyLmF0S2V5PSEwO2xldCBPPVMuZW5kLEw9TT90KHIsTSxTLHMpOmUocixPLGssbnVsbCxTLHMpO3V4ZShNKSYmcyhMLnJhbmdlLCJCTE9DS19JTl9GTE9XIixkeGUpLHIuYXRLZXk9ITE7bGV0IEU9TjIoTj8/W10se2Zsb3c6bCxpbmRpY2F0b3I6Im1hcC12YWx1ZS1pbmQiLG5leHQ6XyxvZmZzZXQ6TC5yYW5nZVsyXSxvbkVycm9yOnMscGFyZW50SW5kZW50OmEuaW5kZW50LHN0YXJ0T25OZXdsaW5lOiExfSk7aWYoRS5mb3VuZCl7aWYoIW8mJiFTLmZvdW5kJiZyLm9wdGlvbnMuc3RyaWN0KXtpZihOKWZvcihsZXQgeiBvZiBOKXtpZih6PT09RS5mb3VuZClicmVhaztpZih6LnR5cGU9PT0ibmV3bGluZSIpe3MoeiwiTVVMVElMSU5FX0lNUExJQ0lUX0tFWSIsIkltcGxpY2l0IGtleXMgb2YgZmxvdyBzZXF1ZW5jZSBwYWlycyBuZWVkIHRvIGJlIG9uIGEgc2luZ2xlIGxpbmUiKTticmVha319Uy5zdGFydDxFLmZvdW5kLm9mZnNldC0xMDI0JiZzKEUuZm91bmQsIktFWV9PVkVSXzEwMjRfQ0hBUlMiLCJUaGUgOiBpbmRpY2F0b3IgbXVzdCBiZSBhdCBtb3N0IDEwMjQgY2hhcnMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIGFuIGltcGxpY2l0IGZsb3cgc2VxdWVuY2Uga2V5Iil9fWVsc2UgXyYmKCJzb3VyY2UiaW4gXyYmXy5zb3VyY2U/LlswXT09PSI6Ij9zKF8sIk1JU1NJTkdfQ0hBUiIsYE1pc3Npbmcgc3BhY2UgYWZ0ZXIgOiBpbiAke2x9YCk6cyhFLnN0YXJ0LCJNSVNTSU5HX0NIQVIiLGBNaXNzaW5nICwgb3IgOiBiZXR3ZWVuICR7bH0gaXRlbXNgKSk7bGV0IEI9Xz90KHIsXyxFLHMpOkUuZm91bmQ/ZShyLEUuZW5kLE4sbnVsbCxFLHMpOm51bGw7Qj91eGUoXykmJnMoQi5yYW5nZSwiQkxPQ0tfSU5fRkxPVyIsZHhlKTpFLmNvbW1lbnQmJihMLmNvbW1lbnQ/TC5jb21tZW50Kz1gCmArRS5jb21tZW50OkwuY29tbWVudD1FLmNvbW1lbnQpO2xldCBDPW5ldyBuaShMLEIpO2lmKHIub3B0aW9ucy5rZWVwU291cmNlVG9rZW5zJiYoQy5zcmNUb2tlbj15KSxvKXtsZXQgej1kO2RNKHIsei5pdGVtcyxMKSYmcyhPLCJEVVBMSUNBVEVfS0VZIiwiTWFwIGtleXMgbXVzdCBiZSB1bmlxdWUiKSx6Lml0ZW1zLnB1c2goQyl9ZWxzZXtsZXQgej1uZXcgeGkoci5zY2hlbWEpO3ouZmxvdz0hMCx6Lml0ZW1zLnB1c2goQyk7bGV0IEE9KEI/P0wpLnJhbmdlO3oucmFuZ2U9W0wucmFuZ2VbMF0sQVsxXSxBWzJdXSxkLml0ZW1zLnB1c2goeil9cD1CP0IucmFuZ2VbMl06RS5lbmR9fWxldCBoPW8/In0iOiJdIixbbSwuLi52XT1hLmVuZCxiPXA7aWYobT8uc291cmNlPT09aCliPW0ub2Zmc2V0K20uc291cmNlLmxlbmd0aDtlbHNle2xldCBnPWxbMF0udG9VcHBlckNhc2UoKStsLnN1YnN0cmluZygxKSx5PWY/YCR7Z30gbXVzdCBlbmQgd2l0aCBhICR7aH1gOmAke2d9IGluIGJsb2NrIGNvbGxlY3Rpb24gbXVzdCBiZSBzdWZmaWNpZW50bHkgaW5kZW50ZWQgYW5kIGVuZCB3aXRoIGEgJHtofWA7cyhwLGY/Ik1JU1NJTkdfQ0hBUiI6IkJBRF9JTkRFTlQiLHkpLG0mJm0uc291cmNlLmxlbmd0aCE9PTEmJnYudW5zaGlmdChtKX1pZih2Lmxlbmd0aD4wKXtsZXQgZz1PMih2LGIsci5vcHRpb25zLnN0cmljdCxzKTtnLmNvbW1lbnQmJihkLmNvbW1lbnQ/ZC5jb21tZW50Kz1gCmArZy5jb21tZW50OmQuY29tbWVudD1nLmNvbW1lbnQpLGQucmFuZ2U9W2Eub2Zmc2V0LGIsZy5vZmZzZXRdfWVsc2UgZC5yYW5nZT1bYS5vZmZzZXQsYixiXTtyZXR1cm4gZH12YXIgZHhlLHV4ZSxzRHQ9dSgoKT0+e2RhKCk7bXUoKTtndSgpO2J1KCk7ZXgoKTtjTSgpO0hvZSgpO294ZSgpO2R4ZT0iQmxvY2sgY29sbGVjdGlvbnMgYXJlIG5vdCBhbGxvd2VkIHdpdGhpbiBmbG93IGNvbGxlY3Rpb25zIix1eGU9aSh0PT50JiYodC50eXBlPT09ImJsb2NrLW1hcCJ8fHQudHlwZT09PSJibG9jay1zZXEiKSwiaXNCbG9jayIpO2kocHhlLCJyZXNvbHZlRmxvd0NvbGxlY3Rpb24iKX0pO2Z1bmN0aW9uIGZ4ZSh0LGUscixhLHMsbil7bGV0IG89ci50eXBlPT09ImJsb2NrLW1hcCI/bHhlKHQsZSxyLGEsbik6ci50eXBlPT09ImJsb2NrLXNlcSI/Y3hlKHQsZSxyLGEsbik6cHhlKHQsZSxyLGEsbiksbD1vLmNvbnN0cnVjdG9yO3JldHVybiBzPT09IiEifHxzPT09bC50YWdOYW1lPyhvLnRhZz1sLnRhZ05hbWUsbyk6KHMmJihvLnRhZz1zKSxvKX1mdW5jdGlvbiBoeGUodCxlLHIsYSxzKXtsZXQgbj1hLnRhZyxvPW4/ZS5kaXJlY3RpdmVzLnRhZ05hbWUobi5zb3VyY2UsaD0+cyhuLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGgpKTpudWxsO2lmKHIudHlwZT09PSJibG9jay1zZXEiKXtsZXR7YW5jaG9yOmgsbmV3bGluZUFmdGVyUHJvcDptfT1hLHY9aCYmbj9oLm9mZnNldD5uLm9mZnNldD9oOm46aD8/bjt2JiYoIW18fG0ub2Zmc2V0PHYub2Zmc2V0KSYmcyh2LCJNSVNTSU5HX0NIQVIiLCJNaXNzaW5nIG5ld2xpbmUgYWZ0ZXIgYmxvY2sgc2VxdWVuY2UgcHJvcHMiKX1sZXQgbD1yLnR5cGU9PT0iYmxvY2stbWFwIj8ibWFwIjpyLnR5cGU9PT0iYmxvY2stc2VxIj8ic2VxIjpyLnN0YXJ0LnNvdXJjZT09PSJ7Ij8ibWFwIjoic2VxIjtpZighbnx8IW98fG89PT0iISJ8fG89PT14aS50YWdOYW1lJiZsPT09Im1hcCJ8fG89PT1xcy50YWdOYW1lJiZsPT09InNlcSIpcmV0dXJuIGZ4ZSh0LGUscixzLG8pO2xldCBjPWUuc2NoZW1hLnRhZ3MuZmluZChoPT5oLnRhZz09PW8mJmguY29sbGVjdGlvbj09PWwpO2lmKCFjKXtsZXQgaD1lLnNjaGVtYS5rbm93blRhZ3Nbb107aWYoaD8uY29sbGVjdGlvbj09PWwpZS5zY2hlbWEudGFncy5wdXNoKE9iamVjdC5hc3NpZ24oe30saCx7ZGVmYXVsdDohMX0pKSxjPWg7ZWxzZSByZXR1cm4gaD9zKG4sIkJBRF9DT0xMRUNUSU9OX1RZUEUiLGAke2gudGFnfSB1c2VkIGZvciAke2x9IGNvbGxlY3Rpb24sIGJ1dCBleHBlY3RzICR7aC5jb2xsZWN0aW9uPz8ic2NhbGFyIn1gLCEwKTpzKG4sIlRBR19SRVNPTFZFX0ZBSUxFRCIsYFVucmVzb2x2ZWQgdGFnOiAke299YCwhMCksZnhlKHQsZSxyLHMsbyl9bGV0IGQ9ZnhlKHQsZSxyLHMsbyxjKSxmPWMucmVzb2x2ZT8uKGQsaD0+cyhuLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGgpLGUub3B0aW9ucyk/P2QscD1QcihmKT9mOm5ldyBTdChmKTtyZXR1cm4gcC5yYW5nZT1kLnJhbmdlLHAudGFnPW8sYz8uZm9ybWF0JiYocC5mb3JtYXQ9Yy5mb3JtYXQpLHB9dmFyIG5EdD11KCgpPT57ZGEoKTt2cygpO2d1KCk7YnUoKTthRHQoKTtpRHQoKTtzRHQoKTtpKGZ4ZSwicmVzb2x2ZUNvbGxlY3Rpb24iKTtpKGh4ZSwiY29tcG9zZUNvbGxlY3Rpb24iKX0pO2Z1bmN0aW9uIHVNKHQsZSxyKXtsZXQgYT1lLm9mZnNldCxzPXN1YShlLHQub3B0aW9ucy5zdHJpY3Qscik7aWYoIXMpcmV0dXJue3ZhbHVlOiIiLHR5cGU6bnVsbCxjb21tZW50OiIiLHJhbmdlOlthLGEsYV19O2xldCBuPXMubW9kZT09PSI+Ij9TdC5CTE9DS19GT0xERUQ6U3QuQkxPQ0tfTElURVJBTCxvPWUuc291cmNlP251YShlLnNvdXJjZSk6W10sbD1vLmxlbmd0aDtmb3IobGV0IGI9by5sZW5ndGgtMTtiPj0wOy0tYil7bGV0IGc9b1tiXVsxXTtpZihnPT09IiJ8fGc9PT0iXHIiKWw9YjtlbHNlIGJyZWFrfWlmKGw9PT0wKXtsZXQgYj1zLmNob21wPT09IisiJiZvLmxlbmd0aD4wP2AKYC5yZXBlYXQoTWF0aC5tYXgoMSxvLmxlbmd0aC0xKSk6IiIsZz1hK3MubGVuZ3RoO3JldHVybiBlLnNvdXJjZSYmKGcrPWUuc291cmNlLmxlbmd0aCkse3ZhbHVlOmIsdHlwZTpuLGNvbW1lbnQ6cy5jb21tZW50LHJhbmdlOlthLGcsZ119fWxldCBjPWUuaW5kZW50K3MuaW5kZW50LGQ9ZS5vZmZzZXQrcy5sZW5ndGgsZj0wO2ZvcihsZXQgYj0wO2I8bDsrK2Ipe2xldFtnLHldPW9bYl07aWYoeT09PSIifHx5PT09IlxyIilzLmluZGVudD09PTAmJmcubGVuZ3RoPmMmJihjPWcubGVuZ3RoKTtlbHNle2cubGVuZ3RoPGMmJnIoZCtnLmxlbmd0aCwiTUlTU0lOR19DSEFSIiwiQmxvY2sgc2NhbGFycyB3aXRoIG1vcmUtaW5kZW50ZWQgbGVhZGluZyBlbXB0eSBsaW5lcyBtdXN0IHVzZSBhbiBleHBsaWNpdCBpbmRlbnRhdGlvbiBpbmRpY2F0b3IiKSxzLmluZGVudD09PTAmJihjPWcubGVuZ3RoKSxmPWIsYz09PTAmJiF0LmF0Um9vdCYmcihkLCJCQURfSU5ERU5UIiwiQmxvY2sgc2NhbGFyIHZhbHVlcyBpbiBjb2xsZWN0aW9ucyBtdXN0IGJlIGluZGVudGVkIik7YnJlYWt9ZCs9Zy5sZW5ndGgreS5sZW5ndGgrMX1mb3IobGV0IGI9by5sZW5ndGgtMTtiPj1sOy0tYilvW2JdWzBdLmxlbmd0aD5jJiYobD1iKzEpO2xldCBwPSIiLGg9IiIsbT0hMTtmb3IobGV0IGI9MDtiPGY7KytiKXArPW9bYl1bMF0uc2xpY2UoYykrYApgO2ZvcihsZXQgYj1mO2I8bDsrK2Ipe2xldFtnLHldPW9bYl07ZCs9Zy5sZW5ndGgreS5sZW5ndGgrMTtsZXQgaz15W3kubGVuZ3RoLTFdPT09IlxyIjtpZihrJiYoeT15LnNsaWNlKDAsLTEpKSx5JiZnLmxlbmd0aDxjKXtsZXQgTj1gQmxvY2sgc2NhbGFyIGxpbmVzIG11c3Qgbm90IGJlIGxlc3MgaW5kZW50ZWQgdGhhbiB0aGVpciAke3MuaW5kZW50PyJleHBsaWNpdCBpbmRlbnRhdGlvbiBpbmRpY2F0b3IiOiJmaXJzdCBsaW5lIn1gO3IoZC15Lmxlbmd0aC0oaz8yOjEpLCJCQURfSU5ERU5UIixOKSxnPSIifW49PT1TdC5CTE9DS19MSVRFUkFMPyhwKz1oK2cuc2xpY2UoYykreSxoPWAKYCk6Zy5sZW5ndGg+Y3x8eVswXT09PSIJIj8oaD09PSIgIj9oPWAKYDohbSYmaD09PWAKYCYmKGg9YAoKYCkscCs9aCtnLnNsaWNlKGMpK3ksaD1gCmAsbT0hMCk6eT09PSIiP2g9PT1gCmA/cCs9YApgOmg9YApgOihwKz1oK3ksaD0iICIsbT0hMSl9c3dpdGNoKHMuY2hvbXApe2Nhc2UiLSI6YnJlYWs7Y2FzZSIrIjpmb3IobGV0IGI9bDtiPG8ubGVuZ3RoOysrYilwKz1gCmArb1tiXVswXS5zbGljZShjKTtwW3AubGVuZ3RoLTFdIT09YApgJiYocCs9YApgKTticmVhaztkZWZhdWx0OnArPWAKYH1sZXQgdj1hK3MubGVuZ3RoK2Uuc291cmNlLmxlbmd0aDtyZXR1cm57dmFsdWU6cCx0eXBlOm4sY29tbWVudDpzLmNvbW1lbnQscmFuZ2U6W2Esdix2XX19ZnVuY3Rpb24gc3VhKHtvZmZzZXQ6dCxwcm9wczplfSxyLGEpe2lmKGVbMF0udHlwZSE9PSJibG9jay1zY2FsYXItaGVhZGVyIilyZXR1cm4gYShlWzBdLCJJTVBPU1NJQkxFIiwiQmxvY2sgc2NhbGFyIGhlYWRlciBub3QgZm91bmQiKSxudWxsO2xldHtzb3VyY2U6c309ZVswXSxuPXNbMF0sbz0wLGw9IiIsYz0tMTtmb3IobGV0IGg9MTtoPHMubGVuZ3RoOysraCl7bGV0IG09c1toXTtpZighbCYmKG09PT0iLSJ8fG09PT0iKyIpKWw9bTtlbHNle2xldCB2PU51bWJlcihtKTshbyYmdj9vPXY6Yz09PS0xJiYoYz10K2gpfX1jIT09LTEmJmEoYywiVU5FWFBFQ1RFRF9UT0tFTiIsYEJsb2NrIHNjYWxhciBoZWFkZXIgaW5jbHVkZXMgZXh0cmEgY2hhcmFjdGVyczogJHtzfWApO2xldCBkPSExLGY9IiIscD1zLmxlbmd0aDtmb3IobGV0IGg9MTtoPGUubGVuZ3RoOysraCl7bGV0IG09ZVtoXTtzd2l0Y2gobS50eXBlKXtjYXNlInNwYWNlIjpkPSEwO2Nhc2UibmV3bGluZSI6cCs9bS5zb3VyY2UubGVuZ3RoO2JyZWFrO2Nhc2UiY29tbWVudCI6ciYmIWQmJmEobSwiTUlTU0lOR19DSEFSIiwiQ29tbWVudHMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSBvdGhlciB0b2tlbnMgYnkgd2hpdGUgc3BhY2UgY2hhcmFjdGVycyIpLHArPW0uc291cmNlLmxlbmd0aCxmPW0uc291cmNlLnN1YnN0cmluZygxKTticmVhaztjYXNlImVycm9yIjphKG0sIlVORVhQRUNURURfVE9LRU4iLG0ubWVzc2FnZSkscCs9bS5zb3VyY2UubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6e2xldCB2PWBVbmV4cGVjdGVkIHRva2VuIGluIGJsb2NrIHNjYWxhciBoZWFkZXI6ICR7bS50eXBlfWA7YShtLCJVTkVYUEVDVEVEX1RPS0VOIix2KTtsZXQgYj1tLnNvdXJjZTtiJiZ0eXBlb2YgYj09InN0cmluZyImJihwKz1iLmxlbmd0aCl9fX1yZXR1cm57bW9kZTpuLGluZGVudDpvLGNob21wOmwsY29tbWVudDpmLGxlbmd0aDpwfX1mdW5jdGlvbiBudWEodCl7bGV0IGU9dC5zcGxpdCgvXG4oICopLykscj1lWzBdLGE9ci5tYXRjaCgvXiggKikvKSxuPVthPy5bMV0/W2FbMV0sci5zbGljZShhWzFdLmxlbmd0aCldOlsiIixyXV07Zm9yKGxldCBvPTE7bzxlLmxlbmd0aDtvKz0yKW4ucHVzaChbZVtvXSxlW28rMV1dKTtyZXR1cm4gbn12YXIgbXhlPXUoKCk9Pnt2cygpO2kodU0sInJlc29sdmVCbG9ja1NjYWxhciIpO2koc3VhLCJwYXJzZUJsb2NrU2NhbGFySGVhZGVyIik7aShudWEsInNwbGl0TGluZXMiKX0pO2Z1bmN0aW9uIHBNKHQsZSxyKXtsZXR7b2Zmc2V0OmEsdHlwZTpzLHNvdXJjZTpuLGVuZDpvfT10LGwsYyxkPWkoKGgsbSx2KT0+cihhK2gsbSx2KSwiX29uRXJyb3IiKTtzd2l0Y2gocyl7Y2FzZSJzY2FsYXIiOmw9U3QuUExBSU4sYz1vdWEobixkKTticmVhaztjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpsPVN0LlFVT1RFX1NJTkdMRSxjPWx1YShuLGQpO2JyZWFrO2Nhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOmw9U3QuUVVPVEVfRE9VQkxFLGM9Y3VhKG4sZCk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gcih0LCJVTkVYUEVDVEVEX1RPS0VOIixgRXhwZWN0ZWQgYSBmbG93IHNjYWxhciB2YWx1ZSwgYnV0IGZvdW5kOiAke3N9YCkse3ZhbHVlOiIiLHR5cGU6bnVsbCxjb21tZW50OiIiLHJhbmdlOlthLGErbi5sZW5ndGgsYStuLmxlbmd0aF19fWxldCBmPWErbi5sZW5ndGgscD1PMihvLGYsZSxyKTtyZXR1cm57dmFsdWU6Yyx0eXBlOmwsY29tbWVudDpwLmNvbW1lbnQscmFuZ2U6W2EsZixwLm9mZnNldF19fWZ1bmN0aW9uIG91YSh0LGUpe2xldCByPSIiO3N3aXRjaCh0WzBdKXtjYXNlIgkiOnI9ImEgdGFiIGNoYXJhY3RlciI7YnJlYWs7Y2FzZSIsIjpyPSJmbG93IGluZGljYXRvciBjaGFyYWN0ZXIgLCI7YnJlYWs7Y2FzZSIlIjpyPSJkaXJlY3RpdmUgaW5kaWNhdG9yIGNoYXJhY3RlciAlIjticmVhaztjYXNlInwiOmNhc2UiPiI6e3I9YGJsb2NrIHNjYWxhciBpbmRpY2F0b3IgJHt0WzBdfWA7YnJlYWt9Y2FzZSJAIjpjYXNlImAiOntyPWByZXNlcnZlZCBjaGFyYWN0ZXIgJHt0WzBdfWA7YnJlYWt9fXJldHVybiByJiZlKDAsIkJBRF9TQ0FMQVJfU1RBUlQiLGBQbGFpbiB2YWx1ZSBjYW5ub3Qgc3RhcnQgd2l0aCAke3J9YCksb0R0KHQpfWZ1bmN0aW9uIGx1YSh0LGUpe3JldHVybih0W3QubGVuZ3RoLTFdIT09IicifHx0Lmxlbmd0aD09PTEpJiZlKHQubGVuZ3RoLCJNSVNTSU5HX0NIQVIiLCJNaXNzaW5nIGNsb3NpbmcgJ3F1b3RlIiksb0R0KHQuc2xpY2UoMSwtMSkpLnJlcGxhY2UoLycnL2csIiciKX1mdW5jdGlvbiBvRHQodCl7bGV0IGUscjt0cnl7ZT1uZXcgUmVnRXhwKGAoLio/KSg/PCFbIAldKVsgCV0qXHI/CmAsInN5Iikscj1uZXcgUmVnRXhwKGBbIAldKiguKj8pKD86KD88IVsgCV0pWyAJXSopP1xyPwpgLCJzeSIpfWNhdGNoe2U9LyguKj8pWyBcdF0qXHI/XG4vc3kscj0vWyBcdF0qKC4qPylbIFx0XSpccj9cbi9zeX1sZXQgYT1lLmV4ZWModCk7aWYoIWEpcmV0dXJuIHQ7bGV0IHM9YVsxXSxuPSIgIixvPWUubGFzdEluZGV4O2ZvcihyLmxhc3RJbmRleD1vO2E9ci5leGVjKHQpOylhWzFdPT09IiI/bj09PWAKYD9zKz1uOm49YApgOihzKz1uK2FbMV0sbj0iICIpLG89ci5sYXN0SW5kZXg7bGV0IGw9L1sgXHRdKiguKikvc3k7cmV0dXJuIGwubGFzdEluZGV4PW8sYT1sLmV4ZWModCkscytuKyhhPy5bMV0/PyIiKX1mdW5jdGlvbiBjdWEodCxlKXtsZXQgcj0iIjtmb3IobGV0IGE9MTthPHQubGVuZ3RoLTE7KythKXtsZXQgcz10W2FdO2lmKCEocz09PSJcciImJnRbYSsxXT09PWAKYCkpaWYocz09PWAKYCl7bGV0e2ZvbGQ6bixvZmZzZXQ6b309ZHVhKHQsYSk7cis9bixhPW99ZWxzZSBpZihzPT09IlxcIil7bGV0IG49dFsrK2FdLG89dXVhW25dO2lmKG8pcis9bztlbHNlIGlmKG49PT1gCmApZm9yKG49dFthKzFdO249PT0iICJ8fG49PT0iCSI7KW49dFsrK2ErMV07ZWxzZSBpZihuPT09IlxyIiYmdFthKzFdPT09YApgKWZvcihuPXRbKythKzFdO249PT0iICJ8fG49PT0iCSI7KW49dFsrK2ErMV07ZWxzZSBpZihuPT09IngifHxuPT09InUifHxuPT09IlUiKXtsZXQgbD1uPT09IngiPzI6bj09PSJ1Ij80Ojg7cis9cHVhKHQsYSsxLGwsZSksYSs9bH1lbHNle2xldCBsPXQuc3Vic3RyKGEtMSwyKTtlKGEtMSwiQkFEX0RRX0VTQ0FQRSIsYEludmFsaWQgZXNjYXBlIHNlcXVlbmNlICR7bH1gKSxyKz1sfX1lbHNlIGlmKHM9PT0iICJ8fHM9PT0iCSIpe2xldCBuPWEsbz10W2ErMV07Zm9yKDtvPT09IiAifHxvPT09IgkiOylvPXRbKythKzFdO28hPT1gCmAmJiEobz09PSJcciImJnRbYSsyXT09PWAKYCkmJihyKz1hPm4/dC5zbGljZShuLGErMSk6cyl9ZWxzZSByKz1zfXJldHVybih0W3QubGVuZ3RoLTFdIT09JyInfHx0Lmxlbmd0aD09PTEpJiZlKHQubGVuZ3RoLCJNSVNTSU5HX0NIQVIiLCdNaXNzaW5nIGNsb3NpbmcgInF1b3RlJykscn1mdW5jdGlvbiBkdWEodCxlKXtsZXQgcj0iIixhPXRbZSsxXTtmb3IoOyhhPT09IiAifHxhPT09IgkifHxhPT09YApgfHxhPT09IlxyIikmJiEoYT09PSJcciImJnRbZSsyXSE9PWAKYCk7KWE9PT1gCmAmJihyKz1gCmApLGUrPTEsYT10W2UrMV07cmV0dXJuIHJ8fChyPSIgIikse2ZvbGQ6cixvZmZzZXQ6ZX19ZnVuY3Rpb24gcHVhKHQsZSxyLGEpe2xldCBzPXQuc3Vic3RyKGUsciksbz1zLmxlbmd0aD09PXImJi9eWzAtOWEtZkEtRl0rJC8udGVzdChzKT9wYXJzZUludChzLDE2KTpOYU47dHJ5e3JldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChvKX1jYXRjaHtsZXQgbD10LnN1YnN0cihlLTIscisyKTtyZXR1cm4gYShlLTIsIkJBRF9EUV9FU0NBUEUiLGBJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSAke2x9YCksbH19dmFyIHV1YSxneGU9dSgoKT0+e3ZzKCk7ZXgoKTtpKHBNLCJyZXNvbHZlRmxvd1NjYWxhciIpO2kob3VhLCJwbGFpblZhbHVlIik7aShsdWEsInNpbmdsZVF1b3RlZFZhbHVlIik7aShvRHQsImZvbGRMaW5lcyIpO2koY3VhLCJkb3VibGVRdW90ZWRWYWx1ZSIpO2koZHVhLCJmb2xkTmV3bGluZSIpO3V1YT17MDoiXDAiLGE6Ilx4MDciLGI6IlxiIixlOiJceDFCIixmOiJcZiIsbjpgCmAscjoiXHIiLHQ6IgkiLHY6Ilx2IixOOiJceDg1IixfOiJceEEwIixMOiJcdTIwMjgiLFA6Ilx1MjAyOSIsIiAiOiIgIiwnIic6JyInLCIvIjoiLyIsIlxcIjoiXFwiLCIJIjoiCSJ9O2kocHVhLCJwYXJzZUNoYXJDb2RlIil9KTtmdW5jdGlvbiBxb2UodCxlLHIsYSl7bGV0e3ZhbHVlOnMsdHlwZTpuLGNvbW1lbnQ6byxyYW5nZTpsfT1lLnR5cGU9PT0iYmxvY2stc2NhbGFyIj91TSh0LGUsYSk6cE0oZSx0Lm9wdGlvbnMuc3RyaWN0LGEpLGM9cj90LmRpcmVjdGl2ZXMudGFnTmFtZShyLnNvdXJjZSxwPT5hKHIsIlRBR19SRVNPTFZFX0ZBSUxFRCIscCkpOm51bGwsZDt0Lm9wdGlvbnMuc3RyaW5nS2V5cyYmdC5hdEtleT9kPXQuc2NoZW1hW2cxXTpjP2Q9ZnVhKHQuc2NoZW1hLHMsYyxyLGEpOmUudHlwZT09PSJzY2FsYXIiP2Q9aHVhKHQscyxlLGEpOmQ9dC5zY2hlbWFbZzFdO2xldCBmO3RyeXtsZXQgcD1kLnJlc29sdmUocyxoPT5hKHI/P2UsIlRBR19SRVNPTFZFX0ZBSUxFRCIsaCksdC5vcHRpb25zKTtmPXVyKHApP3A6bmV3IFN0KHApfWNhdGNoKHApe2xldCBoPXAgaW5zdGFuY2VvZiBFcnJvcj9wLm1lc3NhZ2U6U3RyaW5nKHApO2Eocj8/ZSwiVEFHX1JFU09MVkVfRkFJTEVEIixoKSxmPW5ldyBTdChzKX1yZXR1cm4gZi5yYW5nZT1sLGYuc291cmNlPXMsbiYmKGYudHlwZT1uKSxjJiYoZi50YWc9YyksZC5mb3JtYXQmJihmLmZvcm1hdD1kLmZvcm1hdCksbyYmKGYuY29tbWVudD1vKSxmfWZ1bmN0aW9uIGZ1YSh0LGUscixhLHMpe2lmKHI9PT0iISIpcmV0dXJuIHRbZzFdO2xldCBuPVtdO2ZvcihsZXQgbCBvZiB0LnRhZ3MpaWYoIWwuY29sbGVjdGlvbiYmbC50YWc9PT1yKWlmKGwuZGVmYXVsdCYmbC50ZXN0KW4ucHVzaChsKTtlbHNlIHJldHVybiBsO2ZvcihsZXQgbCBvZiBuKWlmKGwudGVzdD8udGVzdChlKSlyZXR1cm4gbDtsZXQgbz10Lmtub3duVGFnc1tyXTtyZXR1cm4gbyYmIW8uY29sbGVjdGlvbj8odC50YWdzLnB1c2goT2JqZWN0LmFzc2lnbih7fSxvLHtkZWZhdWx0OiExLHRlc3Q6dm9pZCAwfSkpLG8pOihzKGEsIlRBR19SRVNPTFZFX0ZBSUxFRCIsYFVucmVzb2x2ZWQgdGFnOiAke3J9YCxyIT09InRhZzp5YW1sLm9yZywyMDAyOnN0ciIpLHRbZzFdKX1mdW5jdGlvbiBodWEoe2F0S2V5OnQsZGlyZWN0aXZlczplLHNjaGVtYTpyfSxhLHMsbil7bGV0IG89ci50YWdzLmZpbmQobD0+KGwuZGVmYXVsdD09PSEwfHx0JiZsLmRlZmF1bHQ9PT0ia2V5IikmJmwudGVzdD8udGVzdChhKSl8fHJbZzFdO2lmKHIuY29tcGF0KXtsZXQgbD1yLmNvbXBhdC5maW5kKGM9PmMuZGVmYXVsdCYmYy50ZXN0Py50ZXN0KGEpKT8/cltnMV07aWYoby50YWchPT1sLnRhZyl7bGV0IGM9ZS50YWdTdHJpbmcoby50YWcpLGQ9ZS50YWdTdHJpbmcobC50YWcpLGY9YFZhbHVlIG1heSBiZSBwYXJzZWQgYXMgZWl0aGVyICR7Y30gb3IgJHtkfWA7bihzLCJUQUdfUkVTT0xWRV9GQUlMRUQiLGYsITApfX1yZXR1cm4gb312YXIgbER0PXUoKCk9PntkYSgpO3ZzKCk7bXhlKCk7Z3hlKCk7aShxb2UsImNvbXBvc2VTY2FsYXIiKTtpKGZ1YSwiZmluZFNjYWxhclRhZ0J5TmFtZSIpO2koaHVhLCJmaW5kU2NhbGFyVGFnQnlUZXN0Iil9KTtmdW5jdGlvbiBieGUodCxlLHIpe2lmKGUpe3I/PyhyPWUubGVuZ3RoKTtmb3IobGV0IGE9ci0xO2E+PTA7LS1hKXtsZXQgcz1lW2FdO3N3aXRjaChzLnR5cGUpe2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjp0LT1zLnNvdXJjZS5sZW5ndGg7Y29udGludWV9Zm9yKHM9ZVsrK2FdO3M/LnR5cGU9PT0ic3BhY2UiOyl0Kz1zLnNvdXJjZS5sZW5ndGgscz1lWysrYV07YnJlYWt9fXJldHVybiB0fXZhciBjRHQ9dSgoKT0+e2koYnhlLCJlbXB0eVNjYWxhclBvc2l0aW9uIil9KTtmdW5jdGlvbiBWb2UodCxlLHIsYSl7bGV0IHM9dC5hdEtleSx7c3BhY2VCZWZvcmU6bixjb21tZW50Om8sYW5jaG9yOmwsdGFnOmN9PXIsZCxmPSEwO3N3aXRjaChlLnR5cGUpe2Nhc2UiYWxpYXMiOmQ9Z3VhKHQsZSxhKSwobHx8YykmJmEoZSwiQUxJQVNfUFJPUFMiLCJBbiBhbGlhcyBub2RlIG11c3Qgbm90IHNwZWNpZnkgYW55IHByb3BlcnRpZXMiKTticmVhaztjYXNlInNjYWxhciI6Y2FzZSJzaW5nbGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJkb3VibGUtcXVvdGVkLXNjYWxhciI6Y2FzZSJibG9jay1zY2FsYXIiOmQ9cW9lKHQsZSxjLGEpLGwmJihkLmFuY2hvcj1sLnNvdXJjZS5zdWJzdHJpbmcoMSkpO2JyZWFrO2Nhc2UiYmxvY2stbWFwIjpjYXNlImJsb2NrLXNlcSI6Y2FzZSJmbG93LWNvbGxlY3Rpb24iOnRyeXtkPWh4ZShtdWEsdCxlLHIsYSksbCYmKGQuYW5jaG9yPWwuc291cmNlLnN1YnN0cmluZygxKSl9Y2F0Y2gocCl7bGV0IGg9cCBpbnN0YW5jZW9mIEVycm9yP3AubWVzc2FnZTpTdHJpbmcocCk7YShlLCJSRVNPVVJDRV9FWEhBVVNUSU9OIixoKX1icmVhaztkZWZhdWx0OntsZXQgcD1lLnR5cGU9PT0iZXJyb3IiP2UubWVzc2FnZTpgVW5zdXBwb3J0ZWQgdG9rZW4gKHR5cGU6ICR7ZS50eXBlfSlgO2EoZSwiVU5FWFBFQ1RFRF9UT0tFTiIscCksZj0hMX19cmV0dXJuIGQ/PyhkPWZNKHQsZS5vZmZzZXQsdm9pZCAwLG51bGwscixhKSksbCYmZC5hbmNob3I9PT0iIiYmYShsLCJCQURfQUxJQVMiLCJBbmNob3IgY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZyIpLHMmJnQub3B0aW9ucy5zdHJpbmdLZXlzJiYoIXVyKGQpfHx0eXBlb2YgZC52YWx1ZSE9InN0cmluZyJ8fGQudGFnJiZkLnRhZyE9PSJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiKSYmYShjPz9lLCJOT05fU1RSSU5HX0tFWSIsIldpdGggc3RyaW5nS2V5cywgYWxsIGtleXMgbXVzdCBiZSBzdHJpbmdzIiksbiYmKGQuc3BhY2VCZWZvcmU9ITApLG8mJihlLnR5cGU9PT0ic2NhbGFyIiYmZS5zb3VyY2U9PT0iIj9kLmNvbW1lbnQ9bzpkLmNvbW1lbnRCZWZvcmU9byksdC5vcHRpb25zLmtlZXBTb3VyY2VUb2tlbnMmJmYmJihkLnNyY1Rva2VuPWUpLGR9ZnVuY3Rpb24gZk0odCxlLHIsYSx7c3BhY2VCZWZvcmU6cyxjb21tZW50Om4sYW5jaG9yOm8sdGFnOmwsZW5kOmN9LGQpe2xldCBmPXt0eXBlOiJzY2FsYXIiLG9mZnNldDpieGUoZSxyLGEpLGluZGVudDotMSxzb3VyY2U6IiJ9LHA9cW9lKHQsZixsLGQpO3JldHVybiBvJiYocC5hbmNob3I9by5zb3VyY2Uuc3Vic3RyaW5nKDEpLHAuYW5jaG9yPT09IiImJmQobywiQkFEX0FMSUFTIiwiQW5jaG9yIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmciKSkscyYmKHAuc3BhY2VCZWZvcmU9ITApLG4mJihwLmNvbW1lbnQ9bixwLnJhbmdlWzJdPWMpLHB9ZnVuY3Rpb24gZ3VhKHtvcHRpb25zOnR9LHtvZmZzZXQ6ZSxzb3VyY2U6cixlbmQ6YX0scyl7bGV0IG49bmV3IExsKHIuc3Vic3RyaW5nKDEpKTtuLnNvdXJjZT09PSIiJiZzKGUsIkJBRF9BTElBUyIsIkFsaWFzIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmciKSxuLnNvdXJjZS5lbmRzV2l0aCgiOiIpJiZzKGUrci5sZW5ndGgtMSwiQkFEX0FMSUFTIiwiQWxpYXMgZW5kaW5nIGluIDogaXMgYW1iaWd1b3VzIiwhMCk7bGV0IG89ZStyLmxlbmd0aCxsPU8yKGEsbyx0LnN0cmljdCxzKTtyZXR1cm4gbi5yYW5nZT1bZSxvLGwub2Zmc2V0XSxsLmNvbW1lbnQmJihuLmNvbW1lbnQ9bC5jb21tZW50KSxufXZhciBtdWEsZER0PXUoKCk9PntSUygpO2RhKCk7bkR0KCk7bER0KCk7ZXgoKTtjRHQoKTttdWE9e2NvbXBvc2VOb2RlOlZvZSxjb21wb3NlRW1wdHlOb2RlOmZNfTtpKFZvZSwiY29tcG9zZU5vZGUiKTtpKGZNLCJjb21wb3NlRW1wdHlOb2RlIik7aShndWEsImNvbXBvc2VBbGlhcyIpfSk7ZnVuY3Rpb24geHhlKHQsZSx7b2Zmc2V0OnIsc3RhcnQ6YSx2YWx1ZTpzLGVuZDpufSxvKXtsZXQgbD1PYmplY3QuYXNzaWduKHtfZGlyZWN0aXZlczplfSx0KSxjPW5ldyBFbCh2b2lkIDAsbCksZD17YXRLZXk6ITEsYXRSb290OiEwLGRpcmVjdGl2ZXM6Yy5kaXJlY3RpdmVzLG9wdGlvbnM6Yy5vcHRpb25zLHNjaGVtYTpjLnNjaGVtYX0sZj1OMihhLHtpbmRpY2F0b3I6ImRvYy1zdGFydCIsbmV4dDpzPz9uPy5bMF0sb2Zmc2V0OnIsb25FcnJvcjpvLHBhcmVudEluZGVudDowLHN0YXJ0T25OZXdsaW5lOiEwfSk7Zi5mb3VuZCYmKGMuZGlyZWN0aXZlcy5kb2NTdGFydD0hMCxzJiYocy50eXBlPT09ImJsb2NrLW1hcCJ8fHMudHlwZT09PSJibG9jay1zZXEiKSYmIWYuaGFzTmV3bGluZSYmbyhmLmVuZCwiTUlTU0lOR19DSEFSIiwiQmxvY2sgY29sbGVjdGlvbiBjYW5ub3Qgc3RhcnQgb24gc2FtZSBsaW5lIHdpdGggZGlyZWN0aXZlcy1lbmQgbWFya2VyIikpLGMuY29udGVudHM9cz9Wb2UoZCxzLGYsbyk6Zk0oZCxmLmVuZCxhLG51bGwsZixvKTtsZXQgcD1jLmNvbnRlbnRzLnJhbmdlWzJdLGg9TzIobixwLCExLG8pO3JldHVybiBoLmNvbW1lbnQmJihjLmNvbW1lbnQ9aC5jb21tZW50KSxjLnJhbmdlPVtyLHAsaC5vZmZzZXRdLGN9dmFyIHVEdD11KCgpPT57b00oKTtkRHQoKTtleCgpO2NNKCk7aSh4eGUsImNvbXBvc2VEb2MiKX0pO2Z1bmN0aW9uIGhNKHQpe2lmKHR5cGVvZiB0PT0ibnVtYmVyIilyZXR1cm5bdCx0KzFdO2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQubGVuZ3RoPT09Mj90Olt0WzBdLHRbMV1dO2xldHtvZmZzZXQ6ZSxzb3VyY2U6cn09dDtyZXR1cm5bZSxlKyh0eXBlb2Ygcj09InN0cmluZyI/ci5sZW5ndGg6MSldfWZ1bmN0aW9uIHBEdCh0KXtsZXQgZT0iIixyPSExLGE9ITE7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDsrK3Mpe2xldCBuPXRbc107c3dpdGNoKG5bMF0pe2Nhc2UiIyI6ZSs9KGU9PT0iIj8iIjphP2AKCmA6YApgKSsobi5zdWJzdHJpbmcoMSl8fCIgIikscj0hMCxhPSExO2JyZWFrO2Nhc2UiJSI6dFtzKzFdPy5bMF0hPT0iIyImJihzKz0xKSxyPSExO2JyZWFrO2RlZmF1bHQ6cnx8KGE9ITApLHI9ITF9fXJldHVybntjb21tZW50OmUsYWZ0ZXJFbXB0eUxpbmU6YX19dmFyIEpkLHZ4ZT11KCgpPT57emJlKCk7b00oKTtsTSgpO2RhKCk7dUR0KCk7ZXgoKTtpKGhNLCJnZXRFcnJvclBvcyIpO2kocER0LCJwYXJzZVByZWx1ZGUiKTtKZD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDb21wb3NlciIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMuZG9jPW51bGwsdGhpcy5hdERpcmVjdGl2ZXM9ITEsdGhpcy5wcmVsdWRlPVtdLHRoaXMuZXJyb3JzPVtdLHRoaXMud2FybmluZ3M9W10sdGhpcy5vbkVycm9yPShyLGEscyxuKT0+e2xldCBvPWhNKHIpO24/dGhpcy53YXJuaW5ncy5wdXNoKG5ldyB3dShvLGEscykpOnRoaXMuZXJyb3JzLnB1c2gobmV3IElvKG8sYSxzKSl9LHRoaXMuZGlyZWN0aXZlcz1uZXcgSTIoe3ZlcnNpb246ZS52ZXJzaW9ufHwiMS4yIn0pLHRoaXMub3B0aW9ucz1lfWRlY29yYXRlKGUscil7bGV0e2NvbW1lbnQ6YSxhZnRlckVtcHR5TGluZTpzfT1wRHQodGhpcy5wcmVsdWRlKTtpZihhKXtsZXQgbj1lLmNvbnRlbnRzO2lmKHIpZS5jb21tZW50PWUuY29tbWVudD9gJHtlLmNvbW1lbnR9CiR7YX1gOmE7ZWxzZSBpZihzfHxlLmRpcmVjdGl2ZXMuZG9jU3RhcnR8fCFuKWUuY29tbWVudEJlZm9yZT1hO2Vsc2UgaWYoY2EobikmJiFuLmZsb3cmJm4uaXRlbXMubGVuZ3RoPjApe2xldCBvPW4uaXRlbXNbMF07X3IobykmJihvPW8ua2V5KTtsZXQgbD1vLmNvbW1lbnRCZWZvcmU7by5jb21tZW50QmVmb3JlPWw/YCR7YX0KJHtsfWA6YX1lbHNle2xldCBvPW4uY29tbWVudEJlZm9yZTtuLmNvbW1lbnRCZWZvcmU9bz9gJHthfQoke299YDphfX1yPyhBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShlLmVycm9ycyx0aGlzLmVycm9ycyksQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZS53YXJuaW5ncyx0aGlzLndhcm5pbmdzKSk6KGUuZXJyb3JzPXRoaXMuZXJyb3JzLGUud2FybmluZ3M9dGhpcy53YXJuaW5ncyksdGhpcy5wcmVsdWRlPVtdLHRoaXMuZXJyb3JzPVtdLHRoaXMud2FybmluZ3M9W119c3RyZWFtSW5mbygpe3JldHVybntjb21tZW50OnBEdCh0aGlzLnByZWx1ZGUpLmNvbW1lbnQsZGlyZWN0aXZlczp0aGlzLmRpcmVjdGl2ZXMsZXJyb3JzOnRoaXMuZXJyb3JzLHdhcm5pbmdzOnRoaXMud2FybmluZ3N9fSpjb21wb3NlKGUscj0hMSxhPS0xKXtmb3IobGV0IHMgb2YgZSl5aWVsZCp0aGlzLm5leHQocyk7eWllbGQqdGhpcy5lbmQocixhKX0qbmV4dChlKXtzd2l0Y2goZS50eXBlKXtjYXNlImRpcmVjdGl2ZSI6dGhpcy5kaXJlY3RpdmVzLmFkZChlLnNvdXJjZSwocixhLHMpPT57bGV0IG49aE0oZSk7blswXSs9cix0aGlzLm9uRXJyb3IobiwiQkFEX0RJUkVDVElWRSIsYSxzKX0pLHRoaXMucHJlbHVkZS5wdXNoKGUuc291cmNlKSx0aGlzLmF0RGlyZWN0aXZlcz0hMDticmVhaztjYXNlImRvY3VtZW50Ijp7bGV0IHI9eHhlKHRoaXMub3B0aW9ucyx0aGlzLmRpcmVjdGl2ZXMsZSx0aGlzLm9uRXJyb3IpO3RoaXMuYXREaXJlY3RpdmVzJiYhci5kaXJlY3RpdmVzLmRvY1N0YXJ0JiZ0aGlzLm9uRXJyb3IoZSwiTUlTU0lOR19DSEFSIiwiTWlzc2luZyBkaXJlY3RpdmVzLWVuZC9kb2Mtc3RhcnQgaW5kaWNhdG9yIGxpbmUiKSx0aGlzLmRlY29yYXRlKHIsITEpLHRoaXMuZG9jJiYoeWllbGQgdGhpcy5kb2MpLHRoaXMuZG9jPXIsdGhpcy5hdERpcmVjdGl2ZXM9ITE7YnJlYWt9Y2FzZSJieXRlLW9yZGVyLW1hcmsiOmNhc2Uic3BhY2UiOmJyZWFrO2Nhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjp0aGlzLnByZWx1ZGUucHVzaChlLnNvdXJjZSk7YnJlYWs7Y2FzZSJlcnJvciI6e2xldCByPWUuc291cmNlP2Ake2UubWVzc2FnZX06ICR7SlNPTi5zdHJpbmdpZnkoZS5zb3VyY2UpfWA6ZS5tZXNzYWdlLGE9bmV3IElvKGhNKGUpLCJVTkVYUEVDVEVEX1RPS0VOIixyKTt0aGlzLmF0RGlyZWN0aXZlc3x8IXRoaXMuZG9jP3RoaXMuZXJyb3JzLnB1c2goYSk6dGhpcy5kb2MuZXJyb3JzLnB1c2goYSk7YnJlYWt9Y2FzZSJkb2MtZW5kIjp7aWYoIXRoaXMuZG9jKXtsZXQgYT0iVW5leHBlY3RlZCBkb2MtZW5kIHdpdGhvdXQgcHJlY2VkaW5nIGRvY3VtZW50Ijt0aGlzLmVycm9ycy5wdXNoKG5ldyBJbyhoTShlKSwiVU5FWFBFQ1RFRF9UT0tFTiIsYSkpO2JyZWFrfXRoaXMuZG9jLmRpcmVjdGl2ZXMuZG9jRW5kPSEwO2xldCByPU8yKGUuZW5kLGUub2Zmc2V0K2Uuc291cmNlLmxlbmd0aCx0aGlzLmRvYy5vcHRpb25zLnN0cmljdCx0aGlzLm9uRXJyb3IpO2lmKHRoaXMuZGVjb3JhdGUodGhpcy5kb2MsITApLHIuY29tbWVudCl7bGV0IGE9dGhpcy5kb2MuY29tbWVudDt0aGlzLmRvYy5jb21tZW50PWE/YCR7YX0KJHtyLmNvbW1lbnR9YDpyLmNvbW1lbnR9dGhpcy5kb2MucmFuZ2VbMl09ci5vZmZzZXQ7YnJlYWt9ZGVmYXVsdDp0aGlzLmVycm9ycy5wdXNoKG5ldyBJbyhoTShlKSwiVU5FWFBFQ1RFRF9UT0tFTiIsYFVuc3VwcG9ydGVkIHRva2VuICR7ZS50eXBlfWApKX19KmVuZChlPSExLHI9LTEpe2lmKHRoaXMuZG9jKXRoaXMuZGVjb3JhdGUodGhpcy5kb2MsITApLHlpZWxkIHRoaXMuZG9jLHRoaXMuZG9jPW51bGw7ZWxzZSBpZihlKXtsZXQgYT1PYmplY3QuYXNzaWduKHtfZGlyZWN0aXZlczp0aGlzLmRpcmVjdGl2ZXN9LHRoaXMub3B0aW9ucykscz1uZXcgRWwodm9pZCAwLGEpO3RoaXMuYXREaXJlY3RpdmVzJiZ0aGlzLm9uRXJyb3IociwiTUlTU0lOR19DSEFSIiwiTWlzc2luZyBkaXJlY3RpdmVzLWVuZCBpbmRpY2F0b3IgbGluZSIpLHMucmFuZ2U9WzAscixyXSx0aGlzLmRlY29yYXRlKHMsITEpLHlpZWxkIHN9fX19KTtmdW5jdGlvbiB3eGUodCxlPSEwLHIpe2lmKHQpe2xldCBhPWkoKHMsbixvKT0+e2xldCBsPXR5cGVvZiBzPT0ibnVtYmVyIj9zOkFycmF5LmlzQXJyYXkocyk/c1swXTpzLm9mZnNldDtpZihyKXIobCxuLG8pO2Vsc2UgdGhyb3cgbmV3IElvKFtsLGwrMV0sbixvKX0sIl9vbkVycm9yIik7c3dpdGNoKHQudHlwZSl7Y2FzZSJzY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOnJldHVybiBwTSh0LGUsYSk7Y2FzZSJibG9jay1zY2FsYXIiOnJldHVybiB1TSh7b3B0aW9uczp7c3RyaWN0OmV9fSx0LGEpfX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBreGUodCxlKXtsZXR7aW1wbGljaXRLZXk6cj0hMSxpbmRlbnQ6YSxpbkZsb3c6cz0hMSxvZmZzZXQ6bj0tMSx0eXBlOm89IlBMQUlOIn09ZSxsPWYwKHt0eXBlOm8sdmFsdWU6dH0se2ltcGxpY2l0S2V5OnIsaW5kZW50OmE+MD8iICIucmVwZWF0KGEpOiIiLGluRmxvdzpzLG9wdGlvbnM6e2Jsb2NrUXVvdGU6ITAsbGluZVdpZHRoOi0xfX0pLGM9ZS5lbmQ/P1t7dHlwZToibmV3bGluZSIsb2Zmc2V0Oi0xLGluZGVudDphLHNvdXJjZTpgCmB9XTtzd2l0Y2gobFswXSl7Y2FzZSJ8IjpjYXNlIj4iOntsZXQgZD1sLmluZGV4T2YoYApgKSxmPWwuc3Vic3RyaW5nKDAsZCkscD1sLnN1YnN0cmluZyhkKzEpK2AKYCxoPVt7dHlwZToiYmxvY2stc2NhbGFyLWhlYWRlciIsb2Zmc2V0Om4saW5kZW50OmEsc291cmNlOmZ9XTtyZXR1cm4gZkR0KGgsYyl8fGgucHVzaCh7dHlwZToibmV3bGluZSIsb2Zmc2V0Oi0xLGluZGVudDphLHNvdXJjZTpgCmB9KSx7dHlwZToiYmxvY2stc2NhbGFyIixvZmZzZXQ6bixpbmRlbnQ6YSxwcm9wczpoLHNvdXJjZTpwfX1jYXNlJyInOnJldHVybnt0eXBlOiJkb3VibGUtcXVvdGVkLXNjYWxhciIsb2Zmc2V0Om4saW5kZW50OmEsc291cmNlOmwsZW5kOmN9O2Nhc2UiJyI6cmV0dXJue3R5cGU6InNpbmdsZS1xdW90ZWQtc2NhbGFyIixvZmZzZXQ6bixpbmRlbnQ6YSxzb3VyY2U6bCxlbmQ6Y307ZGVmYXVsdDpyZXR1cm57dHlwZToic2NhbGFyIixvZmZzZXQ6bixpbmRlbnQ6YSxzb3VyY2U6bCxlbmQ6Y319fWZ1bmN0aW9uIFN4ZSh0LGUscj17fSl7bGV0e2FmdGVyS2V5OmE9ITEsaW1wbGljaXRLZXk6cz0hMSxpbkZsb3c6bj0hMSx0eXBlOm99PXIsbD0iaW5kZW50ImluIHQ/dC5pbmRlbnQ6bnVsbDtpZihhJiZ0eXBlb2YgbD09Im51bWJlciImJihsKz0yKSwhbylzd2l0Y2godC50eXBlKXtjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpvPSJRVU9URV9TSU5HTEUiO2JyZWFrO2Nhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOm89IlFVT1RFX0RPVUJMRSI7YnJlYWs7Y2FzZSJibG9jay1zY2FsYXIiOntsZXQgZD10LnByb3BzWzBdO2lmKGQudHlwZSE9PSJibG9jay1zY2FsYXItaGVhZGVyIil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYmxvY2sgc2NhbGFyIGhlYWRlciIpO289ZC5zb3VyY2VbMF09PT0iPiI/IkJMT0NLX0ZPTERFRCI6IkJMT0NLX0xJVEVSQUwiO2JyZWFrfWRlZmF1bHQ6bz0iUExBSU4ifWxldCBjPWYwKHt0eXBlOm8sdmFsdWU6ZX0se2ltcGxpY2l0S2V5OnN8fGw9PT1udWxsLGluZGVudDpsIT09bnVsbCYmbD4wPyIgIi5yZXBlYXQobCk6IiIsaW5GbG93Om4sb3B0aW9uczp7YmxvY2tRdW90ZTohMCxsaW5lV2lkdGg6LTF9fSk7c3dpdGNoKGNbMF0pe2Nhc2UifCI6Y2FzZSI+IjpidWEodCxjKTticmVhaztjYXNlJyInOnl4ZSh0LGMsImRvdWJsZS1xdW90ZWQtc2NhbGFyIik7YnJlYWs7Y2FzZSInIjp5eGUodCxjLCJzaW5nbGUtcXVvdGVkLXNjYWxhciIpO2JyZWFrO2RlZmF1bHQ6eXhlKHQsYywic2NhbGFyIil9fWZ1bmN0aW9uIGJ1YSh0LGUpe2xldCByPWUuaW5kZXhPZihgCmApLGE9ZS5zdWJzdHJpbmcoMCxyKSxzPWUuc3Vic3RyaW5nKHIrMSkrYApgO2lmKHQudHlwZT09PSJibG9jay1zY2FsYXIiKXtsZXQgbj10LnByb3BzWzBdO2lmKG4udHlwZSE9PSJibG9jay1zY2FsYXItaGVhZGVyIil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYmxvY2sgc2NhbGFyIGhlYWRlciIpO24uc291cmNlPWEsdC5zb3VyY2U9c31lbHNle2xldHtvZmZzZXQ6bn09dCxvPSJpbmRlbnQiaW4gdD90LmluZGVudDotMSxsPVt7dHlwZToiYmxvY2stc2NhbGFyLWhlYWRlciIsb2Zmc2V0Om4saW5kZW50Om8sc291cmNlOmF9XTtmRHQobCwiZW5kImluIHQ/dC5lbmQ6dm9pZCAwKXx8bC5wdXNoKHt0eXBlOiJuZXdsaW5lIixvZmZzZXQ6LTEsaW5kZW50Om8sc291cmNlOmAKYH0pO2ZvcihsZXQgYyBvZiBPYmplY3Qua2V5cyh0KSljIT09InR5cGUiJiZjIT09Im9mZnNldCImJmRlbGV0ZSB0W2NdO09iamVjdC5hc3NpZ24odCx7dHlwZToiYmxvY2stc2NhbGFyIixpbmRlbnQ6byxwcm9wczpsLHNvdXJjZTpzfSl9fWZ1bmN0aW9uIGZEdCh0LGUpe2lmKGUpZm9yKGxldCByIG9mIGUpc3dpdGNoKHIudHlwZSl7Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50Ijp0LnB1c2gocik7YnJlYWs7Y2FzZSJuZXdsaW5lIjpyZXR1cm4gdC5wdXNoKHIpLCEwfXJldHVybiExfWZ1bmN0aW9uIHl4ZSh0LGUscil7c3dpdGNoKHQudHlwZSl7Y2FzZSJzY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOnQudHlwZT1yLHQuc291cmNlPWU7YnJlYWs7Y2FzZSJibG9jay1zY2FsYXIiOntsZXQgYT10LnByb3BzLnNsaWNlKDEpLHM9ZS5sZW5ndGg7dC5wcm9wc1swXS50eXBlPT09ImJsb2NrLXNjYWxhci1oZWFkZXIiJiYocy09dC5wcm9wc1swXS5zb3VyY2UubGVuZ3RoKTtmb3IobGV0IG4gb2YgYSluLm9mZnNldCs9cztkZWxldGUgdC5wcm9wcyxPYmplY3QuYXNzaWduKHQse3R5cGU6cixzb3VyY2U6ZSxlbmQ6YX0pO2JyZWFrfWNhc2UiYmxvY2stbWFwIjpjYXNlImJsb2NrLXNlcSI6e2xldCBzPXt0eXBlOiJuZXdsaW5lIixvZmZzZXQ6dC5vZmZzZXQrZS5sZW5ndGgsaW5kZW50OnQuaW5kZW50LHNvdXJjZTpgCmB9O2RlbGV0ZSB0Lml0ZW1zLE9iamVjdC5hc3NpZ24odCx7dHlwZTpyLHNvdXJjZTplLGVuZDpbc119KTticmVha31kZWZhdWx0OntsZXQgYT0iaW5kZW50ImluIHQ/dC5pbmRlbnQ6LTEscz0iZW5kImluIHQmJkFycmF5LmlzQXJyYXkodC5lbmQpP3QuZW5kLmZpbHRlcihuPT5uLnR5cGU9PT0ic3BhY2UifHxuLnR5cGU9PT0iY29tbWVudCJ8fG4udHlwZT09PSJuZXdsaW5lIik6W107Zm9yKGxldCBuIG9mIE9iamVjdC5rZXlzKHQpKW4hPT0idHlwZSImJm4hPT0ib2Zmc2V0IiYmZGVsZXRlIHRbbl07T2JqZWN0LmFzc2lnbih0LHt0eXBlOnIsaW5kZW50OmEsc291cmNlOmUsZW5kOnN9KX19fXZhciBoRHQ9dSgoKT0+e214ZSgpO2d4ZSgpO2xNKCk7alMoKTtpKHd4ZSwicmVzb2x2ZUFzU2NhbGFyIik7aShreGUsImNyZWF0ZVNjYWxhclRva2VuIik7aShTeGUsInNldFNjYWxhclZhbHVlIik7aShidWEsInNldEJsb2NrU2NhbGFyVmFsdWUiKTtpKGZEdCwiYWRkRW5kdG9CbG9ja1Byb3BzIik7aSh5eGUsInNldEZsb3dTY2FsYXJWYWx1ZSIpfSk7ZnVuY3Rpb24gam9lKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UiYmxvY2stc2NhbGFyIjp7bGV0IGU9IiI7Zm9yKGxldCByIG9mIHQucHJvcHMpZSs9am9lKHIpO3JldHVybiBlK3Quc291cmNlfWNhc2UiYmxvY2stbWFwIjpjYXNlImJsb2NrLXNlcSI6e2xldCBlPSIiO2ZvcihsZXQgciBvZiB0Lml0ZW1zKWUrPVVvZShyKTtyZXR1cm4gZX1jYXNlImZsb3ctY29sbGVjdGlvbiI6e2xldCBlPXQuc3RhcnQuc291cmNlO2ZvcihsZXQgciBvZiB0Lml0ZW1zKWUrPVVvZShyKTtmb3IobGV0IHIgb2YgdC5lbmQpZSs9ci5zb3VyY2U7cmV0dXJuIGV9Y2FzZSJkb2N1bWVudCI6e2xldCBlPVVvZSh0KTtpZih0LmVuZClmb3IobGV0IHIgb2YgdC5lbmQpZSs9ci5zb3VyY2U7cmV0dXJuIGV9ZGVmYXVsdDp7bGV0IGU9dC5zb3VyY2U7aWYoImVuZCJpbiB0JiZ0LmVuZClmb3IobGV0IHIgb2YgdC5lbmQpZSs9ci5zb3VyY2U7cmV0dXJuIGV9fX1mdW5jdGlvbiBVb2Uoe3N0YXJ0OnQsa2V5OmUsc2VwOnIsdmFsdWU6YX0pe2xldCBzPSIiO2ZvcihsZXQgbiBvZiB0KXMrPW4uc291cmNlO2lmKGUmJihzKz1qb2UoZSkpLHIpZm9yKGxldCBuIG9mIHIpcys9bi5zb3VyY2U7cmV0dXJuIGEmJihzKz1qb2UoYSkpLHN9dmFyIE14ZSxtRHQ9dSgoKT0+e014ZT1pKHQ9PiJ0eXBlImluIHQ/am9lKHQpOlVvZSh0KSwic3RyaW5naWZ5Iik7aShqb2UsInN0cmluZ2lmeVRva2VuIik7aShVb2UsInN0cmluZ2lmeUl0ZW0iKX0pO2Z1bmN0aW9uIGU0KHQsZSl7InR5cGUiaW4gdCYmdC50eXBlPT09ImRvY3VtZW50IiYmKHQ9e3N0YXJ0OnQuc3RhcnQsdmFsdWU6dC52YWx1ZX0pLGJEdChPYmplY3QuZnJlZXplKFtdKSx0LGUpfWZ1bmN0aW9uIGJEdCh0LGUscil7bGV0IGE9cihlLHQpO2lmKHR5cGVvZiBhPT0ic3ltYm9sIilyZXR1cm4gYTtmb3IobGV0IHMgb2ZbImtleSIsInZhbHVlIl0pe2xldCBuPWVbc107aWYobiYmIml0ZW1zImluIG4pe2ZvcihsZXQgbz0wO288bi5pdGVtcy5sZW5ndGg7KytvKXtsZXQgbD1iRHQoT2JqZWN0LmZyZWV6ZSh0LmNvbmNhdChbW3Msb11dKSksbi5pdGVtc1tvXSxyKTtpZih0eXBlb2YgbD09Im51bWJlciIpbz1sLTE7ZWxzZXtpZihsPT09Q3hlKXJldHVybiBDeGU7bD09PWdEdCYmKG4uaXRlbXMuc3BsaWNlKG8sMSksby09MSl9fXR5cGVvZiBhPT0iZnVuY3Rpb24iJiZzPT09ImtleSImJihhPWEoZSx0KSl9fXJldHVybiB0eXBlb2YgYT09ImZ1bmN0aW9uIj9hKGUsdCk6YX12YXIgQ3hlLHh1YSxnRHQseER0PXUoKCk9PntDeGU9U3ltYm9sKCJicmVhayB2aXNpdCIpLHh1YT1TeW1ib2woInNraXAgY2hpbGRyZW4iKSxnRHQ9U3ltYm9sKCJyZW1vdmUgaXRlbSIpO2koZTQsInZpc2l0IiksZTQuQlJFQUs9Q3hlLGU0LlNLSVA9eHVhLGU0LlJFTU9WRT1nRHQsZTQuaXRlbUF0UGF0aD0odCxlKT0+e2xldCByPXQ7Zm9yKGxldFthLHNdb2YgZSl7bGV0IG49cj8uW2FdO2lmKG4mJiJpdGVtcyJpbiBuKXI9bi5pdGVtc1tzXTtlbHNlIHJldHVybn1yZXR1cm4gcn0sZTQucGFyZW50Q29sbGVjdGlvbj0odCxlKT0+e2xldCByPWU0Lml0ZW1BdFBhdGgodCxlLnNsaWNlKDAsLTEpKSxhPWVbZS5sZW5ndGgtMV1bMF0scz1yPy5bYV07aWYocyYmIml0ZW1zImluIHMpcmV0dXJuIHM7dGhyb3cgbmV3IEVycm9yKCJQYXJlbnQgY29sbGVjdGlvbiBub3QgZm91bmQiKX07aShiRHQsIl92aXNpdCIpfSk7dmFyIG1NPXt9O1ZlKG1NLHtCT006KCk9PnR4LERPQ1VNRU5UOigpPT5yeCxGTE9XX0VORDooKT0+YXgsU0NBTEFSOigpPT5iaCxjcmVhdGVTY2FsYXJUb2tlbjooKT0+a3hlLGlzQ29sbGVjdGlvbjooKT0+dkR0LGlzU2NhbGFyOigpPT55RHQscHJldHR5VG9rZW46KCk9PndEdCxyZXNvbHZlQXNTY2FsYXI6KCk9Pnd4ZSxzZXRTY2FsYXJWYWx1ZTooKT0+U3hlLHN0cmluZ2lmeTooKT0+TXhlLHRva2VuVHlwZTooKT0+V29lLHZpc2l0OigpPT5lNH0pO2Z1bmN0aW9uIHdEdCh0KXtzd2l0Y2godCl7Y2FzZSB0eDpyZXR1cm4iPEJPTT4iO2Nhc2Ugcng6cmV0dXJuIjxET0M+IjtjYXNlIGF4OnJldHVybiI8RkxPV19FTkQ+IjtjYXNlIGJoOnJldHVybiI8U0NBTEFSPiI7ZGVmYXVsdDpyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9fWZ1bmN0aW9uIFdvZSh0KXtzd2l0Y2godCl7Y2FzZSB0eDpyZXR1cm4iYnl0ZS1vcmRlci1tYXJrIjtjYXNlIHJ4OnJldHVybiJkb2MtbW9kZSI7Y2FzZSBheDpyZXR1cm4iZmxvdy1lcnJvci1lbmQiO2Nhc2UgYmg6cmV0dXJuInNjYWxhciI7Y2FzZSItLS0iOnJldHVybiJkb2Mtc3RhcnQiO2Nhc2UiLi4uIjpyZXR1cm4iZG9jLWVuZCI7Y2FzZSIiOmNhc2VgCmA6Y2FzZWBccgpgOnJldHVybiJuZXdsaW5lIjtjYXNlIi0iOnJldHVybiJzZXEtaXRlbS1pbmQiO2Nhc2UiPyI6cmV0dXJuImV4cGxpY2l0LWtleS1pbmQiO2Nhc2UiOiI6cmV0dXJuIm1hcC12YWx1ZS1pbmQiO2Nhc2UieyI6cmV0dXJuImZsb3ctbWFwLXN0YXJ0IjtjYXNlIn0iOnJldHVybiJmbG93LW1hcC1lbmQiO2Nhc2UiWyI6cmV0dXJuImZsb3ctc2VxLXN0YXJ0IjtjYXNlIl0iOnJldHVybiJmbG93LXNlcS1lbmQiO2Nhc2UiLCI6cmV0dXJuImNvbW1hIn1zd2l0Y2godFswXSl7Y2FzZSIgIjpjYXNlIgkiOnJldHVybiJzcGFjZSI7Y2FzZSIjIjpyZXR1cm4iY29tbWVudCI7Y2FzZSIlIjpyZXR1cm4iZGlyZWN0aXZlLWxpbmUiO2Nhc2UiKiI6cmV0dXJuImFsaWFzIjtjYXNlIiYiOnJldHVybiJhbmNob3IiO2Nhc2UiISI6cmV0dXJuInRhZyI7Y2FzZSInIjpyZXR1cm4ic2luZ2xlLXF1b3RlZC1zY2FsYXIiO2Nhc2UnIic6cmV0dXJuImRvdWJsZS1xdW90ZWQtc2NhbGFyIjtjYXNlInwiOmNhc2UiPiI6cmV0dXJuImJsb2NrLXNjYWxhci1oZWFkZXIifXJldHVybiBudWxsfXZhciB0eCxyeCxheCxiaCx2RHQseUR0LEdvZT11KCgpPT57aER0KCk7bUR0KCk7eER0KCk7dHg9Ilx1RkVGRiIscng9IgIiLGF4PSIYIixiaD0iHyIsdkR0PWkodD0+ISF0JiYiaXRlbXMiaW4gdCwiaXNDb2xsZWN0aW9uIikseUR0PWkodD0+ISF0JiYodC50eXBlPT09InNjYWxhciJ8fHQudHlwZT09PSJzaW5nbGUtcXVvdGVkLXNjYWxhciJ8fHQudHlwZT09PSJkb3VibGUtcXVvdGVkLXNjYWxhciJ8fHQudHlwZT09PSJibG9jay1zY2FsYXIiKSwiaXNTY2FsYXIiKTtpKHdEdCwicHJldHR5VG9rZW4iKTtpKFdvZSwidG9rZW5UeXBlIil9KTtmdW5jdGlvbiBSMih0KXtzd2l0Y2godCl7Y2FzZSB2b2lkIDA6Y2FzZSIgIjpjYXNlYApgOmNhc2UiXHIiOmNhc2UiCSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19dmFyIGtEdCx2dWEsWW9lLHl1YSx6eGUsa3UsX3hlPXUoKCk9PntHb2UoKTtpKFIyLCJpc0VtcHR5Iik7a0R0PW5ldyBTZXQoIjAxMjM0NTY3ODlBQkNERUZhYmNkZWYiKSx2dWE9bmV3IFNldCgiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXotIzsvPzpAJj0rJF8uIX4qJygpIiksWW9lPW5ldyBTZXQoIixbXXt9IikseXVhPW5ldyBTZXQoYCAsW117fQpccglgKSx6eGU9aSh0PT4hdHx8eXVhLmhhcyh0KSwiaXNOb3RBbmNob3JDaGFyIiksa3U9Y2xhc3N7c3RhdGlje2kodGhpcywiTGV4ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuYXRFbmQ9ITEsdGhpcy5ibG9ja1NjYWxhckluZGVudD0tMSx0aGlzLmJsb2NrU2NhbGFyS2VlcD0hMSx0aGlzLmJ1ZmZlcj0iIix0aGlzLmZsb3dLZXk9ITEsdGhpcy5mbG93TGV2ZWw9MCx0aGlzLmluZGVudE5leHQ9MCx0aGlzLmluZGVudFZhbHVlPTAsdGhpcy5saW5lRW5kUG9zPW51bGwsdGhpcy5uZXh0PW51bGwsdGhpcy5wb3M9MH0qbGV4KGUscj0hMSl7aWYoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IFR5cGVFcnJvcigic291cmNlIGlzIG5vdCBhIHN0cmluZyIpO3RoaXMuYnVmZmVyPXRoaXMuYnVmZmVyP3RoaXMuYnVmZmVyK2U6ZSx0aGlzLmxpbmVFbmRQb3M9bnVsbH10aGlzLmF0RW5kPSFyO2xldCBhPXRoaXMubmV4dD8/InN0cmVhbSI7Zm9yKDthJiYocnx8dGhpcy5oYXNDaGFycygxKSk7KWE9eWllbGQqdGhpcy5wYXJzZU5leHQoYSl9YXRMaW5lRW5kKCl7bGV0IGU9dGhpcy5wb3Mscj10aGlzLmJ1ZmZlcltlXTtmb3IoO3I9PT0iICJ8fHI9PT0iCSI7KXI9dGhpcy5idWZmZXJbKytlXTtyZXR1cm4hcnx8cj09PSIjInx8cj09PWAKYD8hMDpyPT09IlxyIj90aGlzLmJ1ZmZlcltlKzFdPT09YApgOiExfWNoYXJBdChlKXtyZXR1cm4gdGhpcy5idWZmZXJbdGhpcy5wb3MrZV19Y29udGludWVTY2FsYXIoZSl7bGV0IHI9dGhpcy5idWZmZXJbZV07aWYodGhpcy5pbmRlbnROZXh0PjApe2xldCBhPTA7Zm9yKDtyPT09IiAiOylyPXRoaXMuYnVmZmVyWysrYStlXTtpZihyPT09IlxyIil7bGV0IHM9dGhpcy5idWZmZXJbYStlKzFdO2lmKHM9PT1gCmB8fCFzJiYhdGhpcy5hdEVuZClyZXR1cm4gZSthKzF9cmV0dXJuIHI9PT1gCmB8fGE+PXRoaXMuaW5kZW50TmV4dHx8IXImJiF0aGlzLmF0RW5kP2UrYTotMX1pZihyPT09Ii0ifHxyPT09Ii4iKXtsZXQgYT10aGlzLmJ1ZmZlci5zdWJzdHIoZSwzKTtpZigoYT09PSItLS0ifHxhPT09Ii4uLiIpJiZSMih0aGlzLmJ1ZmZlcltlKzNdKSlyZXR1cm4tMX1yZXR1cm4gZX1nZXRMaW5lKCl7bGV0IGU9dGhpcy5saW5lRW5kUG9zO3JldHVybih0eXBlb2YgZSE9Im51bWJlciJ8fGUhPT0tMSYmZTx0aGlzLnBvcykmJihlPXRoaXMuYnVmZmVyLmluZGV4T2YoYApgLHRoaXMucG9zKSx0aGlzLmxpbmVFbmRQb3M9ZSksZT09PS0xP3RoaXMuYXRFbmQ/dGhpcy5idWZmZXIuc3Vic3RyaW5nKHRoaXMucG9zKTpudWxsOih0aGlzLmJ1ZmZlcltlLTFdPT09IlxyIiYmKGUtPTEpLHRoaXMuYnVmZmVyLnN1YnN0cmluZyh0aGlzLnBvcyxlKSl9aGFzQ2hhcnMoZSl7cmV0dXJuIHRoaXMucG9zK2U8PXRoaXMuYnVmZmVyLmxlbmd0aH1zZXROZXh0KGUpe3JldHVybiB0aGlzLmJ1ZmZlcj10aGlzLmJ1ZmZlci5zdWJzdHJpbmcodGhpcy5wb3MpLHRoaXMucG9zPTAsdGhpcy5saW5lRW5kUG9zPW51bGwsdGhpcy5uZXh0PWUsbnVsbH1wZWVrKGUpe3JldHVybiB0aGlzLmJ1ZmZlci5zdWJzdHIodGhpcy5wb3MsZSl9KnBhcnNlTmV4dChlKXtzd2l0Y2goZSl7Y2FzZSJzdHJlYW0iOnJldHVybiB5aWVsZCp0aGlzLnBhcnNlU3RyZWFtKCk7Y2FzZSJsaW5lLXN0YXJ0IjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpO2Nhc2UiYmxvY2stc3RhcnQiOnJldHVybiB5aWVsZCp0aGlzLnBhcnNlQmxvY2tTdGFydCgpO2Nhc2UiZG9jIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZURvY3VtZW50KCk7Y2FzZSJmbG93IjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZUZsb3dDb2xsZWN0aW9uKCk7Y2FzZSJxdW90ZWQtc2NhbGFyIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpO2Nhc2UiYmxvY2stc2NhbGFyIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZUJsb2NrU2NhbGFyKCk7Y2FzZSJwbGFpbi1zY2FsYXIiOnJldHVybiB5aWVsZCp0aGlzLnBhcnNlUGxhaW5TY2FsYXIoKX19KnBhcnNlU3RyZWFtKCl7bGV0IGU9dGhpcy5nZXRMaW5lKCk7aWYoZT09PW51bGwpcmV0dXJuIHRoaXMuc2V0TmV4dCgic3RyZWFtIik7aWYoZVswXT09PXR4JiYoeWllbGQqdGhpcy5wdXNoQ291bnQoMSksZT1lLnN1YnN0cmluZygxKSksZVswXT09PSIlIil7bGV0IHI9ZS5sZW5ndGgsYT1lLmluZGV4T2YoIiMiKTtmb3IoO2EhPT0tMTspe2xldCBuPWVbYS0xXTtpZihuPT09IiAifHxuPT09IgkiKXtyPWEtMTticmVha31lbHNlIGE9ZS5pbmRleE9mKCIjIixhKzEpfWZvcig7Oyl7bGV0IG49ZVtyLTFdO2lmKG49PT0iICJ8fG49PT0iCSIpci09MTtlbHNlIGJyZWFrfWxldCBzPSh5aWVsZCp0aGlzLnB1c2hDb3VudChyKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpO3JldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudChlLmxlbmd0aC1zKSx0aGlzLnB1c2hOZXdsaW5lKCksInN0cmVhbSJ9aWYodGhpcy5hdExpbmVFbmQoKSl7bGV0IHI9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKTtyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtcikseWllbGQqdGhpcy5wdXNoTmV3bGluZSgpLCJzdHJlYW0ifXJldHVybiB5aWVsZCByeCx5aWVsZCp0aGlzLnBhcnNlTGluZVN0YXJ0KCl9KnBhcnNlTGluZVN0YXJ0KCl7bGV0IGU9dGhpcy5jaGFyQXQoMCk7aWYoIWUmJiF0aGlzLmF0RW5kKXJldHVybiB0aGlzLnNldE5leHQoImxpbmUtc3RhcnQiKTtpZihlPT09Ii0ifHxlPT09Ii4iKXtpZighdGhpcy5hdEVuZCYmIXRoaXMuaGFzQ2hhcnMoNCkpcmV0dXJuIHRoaXMuc2V0TmV4dCgibGluZS1zdGFydCIpO2xldCByPXRoaXMucGVlaygzKTtpZigocj09PSItLS0ifHxyPT09Ii4uLiIpJiZSMih0aGlzLmNoYXJBdCgzKSkpcmV0dXJuIHlpZWxkKnRoaXMucHVzaENvdW50KDMpLHRoaXMuaW5kZW50VmFsdWU9MCx0aGlzLmluZGVudE5leHQ9MCxyPT09Ii0tLSI/ImRvYyI6InN0cmVhbSJ9cmV0dXJuIHRoaXMuaW5kZW50VmFsdWU9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCExKSx0aGlzLmluZGVudE5leHQ+dGhpcy5pbmRlbnRWYWx1ZSYmIVIyKHRoaXMuY2hhckF0KDEpKSYmKHRoaXMuaW5kZW50TmV4dD10aGlzLmluZGVudFZhbHVlKSx5aWVsZCp0aGlzLnBhcnNlQmxvY2tTdGFydCgpfSpwYXJzZUJsb2NrU3RhcnQoKXtsZXRbZSxyXT10aGlzLnBlZWsoMik7aWYoIXImJiF0aGlzLmF0RW5kKXJldHVybiB0aGlzLnNldE5leHQoImJsb2NrLXN0YXJ0Iik7aWYoKGU9PT0iLSJ8fGU9PT0iPyJ8fGU9PT0iOiIpJiZSMihyKSl7bGV0IGE9KHlpZWxkKnRoaXMucHVzaENvdW50KDEpKSsoeWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKSk7cmV0dXJuIHRoaXMuaW5kZW50TmV4dD10aGlzLmluZGVudFZhbHVlKzEsdGhpcy5pbmRlbnRWYWx1ZSs9YSx5aWVsZCp0aGlzLnBhcnNlQmxvY2tTdGFydCgpfXJldHVybiJkb2MifSpwYXJzZURvY3VtZW50KCl7eWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKTtsZXQgZT10aGlzLmdldExpbmUoKTtpZihlPT09bnVsbClyZXR1cm4gdGhpcy5zZXROZXh0KCJkb2MiKTtsZXQgcj15aWVsZCp0aGlzLnB1c2hJbmRpY2F0b3JzKCk7c3dpdGNoKGVbcl0pe2Nhc2UiIyI6eWllbGQqdGhpcy5wdXNoQ291bnQoZS5sZW5ndGgtcik7Y2FzZSB2b2lkIDA6cmV0dXJuIHlpZWxkKnRoaXMucHVzaE5ld2xpbmUoKSx5aWVsZCp0aGlzLnBhcnNlTGluZVN0YXJ0KCk7Y2FzZSJ7IjpjYXNlIlsiOnJldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSx0aGlzLmZsb3dLZXk9ITEsdGhpcy5mbG93TGV2ZWw9MSwiZmxvdyI7Y2FzZSJ9IjpjYXNlIl0iOnJldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSwiZG9jIjtjYXNlIioiOnJldHVybiB5aWVsZCp0aGlzLnB1c2hVbnRpbCh6eGUpLCJkb2MiO2Nhc2UnIic6Y2FzZSInIjpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVF1b3RlZFNjYWxhcigpO2Nhc2UifCI6Y2FzZSI+IjpyZXR1cm4gcis9eWllbGQqdGhpcy5wYXJzZUJsb2NrU2NhbGFySGVhZGVyKCkscis9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKSx5aWVsZCp0aGlzLnB1c2hDb3VudChlLmxlbmd0aC1yKSx5aWVsZCp0aGlzLnB1c2hOZXdsaW5lKCkseWllbGQqdGhpcy5wYXJzZUJsb2NrU2NhbGFyKCk7ZGVmYXVsdDpyZXR1cm4geWllbGQqdGhpcy5wYXJzZVBsYWluU2NhbGFyKCl9fSpwYXJzZUZsb3dDb2xsZWN0aW9uKCl7bGV0IGUscixhPS0xO2RvIGU9eWllbGQqdGhpcy5wdXNoTmV3bGluZSgpLGU+MD8ocj15aWVsZCp0aGlzLnB1c2hTcGFjZXMoITEpLHRoaXMuaW5kZW50VmFsdWU9YT1yKTpyPTAscis9eWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKTt3aGlsZShlK3I+MCk7bGV0IHM9dGhpcy5nZXRMaW5lKCk7aWYocz09PW51bGwpcmV0dXJuIHRoaXMuc2V0TmV4dCgiZmxvdyIpO2lmKChhIT09LTEmJmE8dGhpcy5pbmRlbnROZXh0JiZzWzBdIT09IiMifHxhPT09MCYmKHMuc3RhcnRzV2l0aCgiLS0tIil8fHMuc3RhcnRzV2l0aCgiLi4uIikpJiZSMihzWzNdKSkmJiEoYT09PXRoaXMuaW5kZW50TmV4dC0xJiZ0aGlzLmZsb3dMZXZlbD09PTEmJihzWzBdPT09Il0ifHxzWzBdPT09In0iKSkpcmV0dXJuIHRoaXMuZmxvd0xldmVsPTAseWllbGQgYXgseWllbGQqdGhpcy5wYXJzZUxpbmVTdGFydCgpO2xldCBuPTA7Zm9yKDtzW25dPT09IiwiOyluKz15aWVsZCp0aGlzLnB1c2hDb3VudCgxKSxuKz15aWVsZCp0aGlzLnB1c2hTcGFjZXMoITApLHRoaXMuZmxvd0tleT0hMTtzd2l0Y2gobis9eWllbGQqdGhpcy5wdXNoSW5kaWNhdG9ycygpLHNbbl0pe2Nhc2Ugdm9pZCAwOnJldHVybiJmbG93IjtjYXNlIiMiOnJldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudChzLmxlbmd0aC1uKSwiZmxvdyI7Y2FzZSJ7IjpjYXNlIlsiOnJldHVybiB5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSx0aGlzLmZsb3dLZXk9ITEsdGhpcy5mbG93TGV2ZWwrPTEsImZsb3ciO2Nhc2UifSI6Y2FzZSJdIjpyZXR1cm4geWllbGQqdGhpcy5wdXNoQ291bnQoMSksdGhpcy5mbG93S2V5PSEwLHRoaXMuZmxvd0xldmVsLT0xLHRoaXMuZmxvd0xldmVsPyJmbG93IjoiZG9jIjtjYXNlIioiOnJldHVybiB5aWVsZCp0aGlzLnB1c2hVbnRpbCh6eGUpLCJmbG93IjtjYXNlJyInOmNhc2UiJyI6cmV0dXJuIHRoaXMuZmxvd0tleT0hMCx5aWVsZCp0aGlzLnBhcnNlUXVvdGVkU2NhbGFyKCk7Y2FzZSI6Ijp7bGV0IG89dGhpcy5jaGFyQXQoMSk7aWYodGhpcy5mbG93S2V5fHxSMihvKXx8bz09PSIsIilyZXR1cm4gdGhpcy5mbG93S2V5PSExLHlpZWxkKnRoaXMucHVzaENvdW50KDEpLHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCksImZsb3cifWRlZmF1bHQ6cmV0dXJuIHRoaXMuZmxvd0tleT0hMSx5aWVsZCp0aGlzLnBhcnNlUGxhaW5TY2FsYXIoKX19KnBhcnNlUXVvdGVkU2NhbGFyKCl7bGV0IGU9dGhpcy5jaGFyQXQoMCkscj10aGlzLmJ1ZmZlci5pbmRleE9mKGUsdGhpcy5wb3MrMSk7aWYoZT09PSInIilmb3IoO3IhPT0tMSYmdGhpcy5idWZmZXJbcisxXT09PSInIjspcj10aGlzLmJ1ZmZlci5pbmRleE9mKCInIixyKzIpO2Vsc2UgZm9yKDtyIT09LTE7KXtsZXQgbj0wO2Zvcig7dGhpcy5idWZmZXJbci0xLW5dPT09IlxcIjspbis9MTtpZihuJTI9PT0wKWJyZWFrO3I9dGhpcy5idWZmZXIuaW5kZXhPZignIicscisxKX1sZXQgYT10aGlzLmJ1ZmZlci5zdWJzdHJpbmcoMCxyKSxzPWEuaW5kZXhPZihgCmAsdGhpcy5wb3MpO2lmKHMhPT0tMSl7Zm9yKDtzIT09LTE7KXtsZXQgbj10aGlzLmNvbnRpbnVlU2NhbGFyKHMrMSk7aWYobj09PS0xKWJyZWFrO3M9YS5pbmRleE9mKGAKYCxuKX1zIT09LTEmJihyPXMtKGFbcy0xXT09PSJcciI/MjoxKSl9aWYocj09PS0xKXtpZighdGhpcy5hdEVuZClyZXR1cm4gdGhpcy5zZXROZXh0KCJxdW90ZWQtc2NhbGFyIik7cj10aGlzLmJ1ZmZlci5sZW5ndGh9cmV0dXJuIHlpZWxkKnRoaXMucHVzaFRvSW5kZXgocisxLCExKSx0aGlzLmZsb3dMZXZlbD8iZmxvdyI6ImRvYyJ9KnBhcnNlQmxvY2tTY2FsYXJIZWFkZXIoKXt0aGlzLmJsb2NrU2NhbGFySW5kZW50PS0xLHRoaXMuYmxvY2tTY2FsYXJLZWVwPSExO2xldCBlPXRoaXMucG9zO2Zvcig7Oyl7bGV0IHI9dGhpcy5idWZmZXJbKytlXTtpZihyPT09IisiKXRoaXMuYmxvY2tTY2FsYXJLZWVwPSEwO2Vsc2UgaWYocj4iMCImJnI8PSI5Iil0aGlzLmJsb2NrU2NhbGFySW5kZW50PU51bWJlcihyKS0xO2Vsc2UgaWYociE9PSItIilicmVha31yZXR1cm4geWllbGQqdGhpcy5wdXNoVW50aWwocj0+UjIocil8fHI9PT0iIyIpfSpwYXJzZUJsb2NrU2NhbGFyKCl7bGV0IGU9dGhpcy5wb3MtMSxyPTAsYTtlOmZvcihsZXQgbj10aGlzLnBvczthPXRoaXMuYnVmZmVyW25dOysrbilzd2l0Y2goYSl7Y2FzZSIgIjpyKz0xO2JyZWFrO2Nhc2VgCmA6ZT1uLHI9MDticmVhaztjYXNlIlxyIjp7bGV0IG89dGhpcy5idWZmZXJbbisxXTtpZighbyYmIXRoaXMuYXRFbmQpcmV0dXJuIHRoaXMuc2V0TmV4dCgiYmxvY2stc2NhbGFyIik7aWYobz09PWAKYClicmVha31kZWZhdWx0OmJyZWFrIGV9aWYoIWEmJiF0aGlzLmF0RW5kKXJldHVybiB0aGlzLnNldE5leHQoImJsb2NrLXNjYWxhciIpO2lmKHI+PXRoaXMuaW5kZW50TmV4dCl7dGhpcy5ibG9ja1NjYWxhckluZGVudD09PS0xP3RoaXMuaW5kZW50TmV4dD1yOnRoaXMuaW5kZW50TmV4dD10aGlzLmJsb2NrU2NhbGFySW5kZW50Kyh0aGlzLmluZGVudE5leHQ9PT0wPzE6dGhpcy5pbmRlbnROZXh0KTtkb3tsZXQgbj10aGlzLmNvbnRpbnVlU2NhbGFyKGUrMSk7aWYobj09PS0xKWJyZWFrO2U9dGhpcy5idWZmZXIuaW5kZXhPZihgCmAsbil9d2hpbGUoZSE9PS0xKTtpZihlPT09LTEpe2lmKCF0aGlzLmF0RW5kKXJldHVybiB0aGlzLnNldE5leHQoImJsb2NrLXNjYWxhciIpO2U9dGhpcy5idWZmZXIubGVuZ3RofX1sZXQgcz1lKzE7Zm9yKGE9dGhpcy5idWZmZXJbc107YT09PSIgIjspYT10aGlzLmJ1ZmZlclsrK3NdO2lmKGE9PT0iCSIpe2Zvcig7YT09PSIJInx8YT09PSIgInx8YT09PSJcciJ8fGE9PT1gCmA7KWE9dGhpcy5idWZmZXJbKytzXTtlPXMtMX1lbHNlIGlmKCF0aGlzLmJsb2NrU2NhbGFyS2VlcClkb3tsZXQgbj1lLTEsbz10aGlzLmJ1ZmZlcltuXTtvPT09IlxyIiYmKG89dGhpcy5idWZmZXJbLS1uXSk7bGV0IGw9bjtmb3IoO289PT0iICI7KW89dGhpcy5idWZmZXJbLS1uXTtpZihvPT09YApgJiZuPj10aGlzLnBvcyYmbisxK3I+bCllPW47ZWxzZSBicmVha313aGlsZSghMCk7cmV0dXJuIHlpZWxkIGJoLHlpZWxkKnRoaXMucHVzaFRvSW5kZXgoZSsxLCEwKSx5aWVsZCp0aGlzLnBhcnNlTGluZVN0YXJ0KCl9KnBhcnNlUGxhaW5TY2FsYXIoKXtsZXQgZT10aGlzLmZsb3dMZXZlbD4wLHI9dGhpcy5wb3MtMSxhPXRoaXMucG9zLTEscztmb3IoO3M9dGhpcy5idWZmZXJbKythXTspaWYocz09PSI6Iil7bGV0IG49dGhpcy5idWZmZXJbYSsxXTtpZihSMihuKXx8ZSYmWW9lLmhhcyhuKSlicmVhaztyPWF9ZWxzZSBpZihSMihzKSl7bGV0IG49dGhpcy5idWZmZXJbYSsxXTtpZihzPT09IlxyIiYmKG49PT1gCmA/KGErPTEscz1gCmAsbj10aGlzLmJ1ZmZlclthKzFdKTpyPWEpLG49PT0iIyJ8fGUmJllvZS5oYXMobikpYnJlYWs7aWYocz09PWAKYCl7bGV0IG89dGhpcy5jb250aW51ZVNjYWxhcihhKzEpO2lmKG89PT0tMSlicmVhazthPU1hdGgubWF4KGEsby0yKX19ZWxzZXtpZihlJiZZb2UuaGFzKHMpKWJyZWFrO3I9YX1yZXR1cm4hcyYmIXRoaXMuYXRFbmQ/dGhpcy5zZXROZXh0KCJwbGFpbi1zY2FsYXIiKTooeWllbGQgYmgseWllbGQqdGhpcy5wdXNoVG9JbmRleChyKzEsITApLGU/ImZsb3ciOiJkb2MiKX0qcHVzaENvdW50KGUpe3JldHVybiBlPjA/KHlpZWxkIHRoaXMuYnVmZmVyLnN1YnN0cih0aGlzLnBvcyxlKSx0aGlzLnBvcys9ZSxlKTowfSpwdXNoVG9JbmRleChlLHIpe2xldCBhPXRoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zLGUpO3JldHVybiBhPyh5aWVsZCBhLHRoaXMucG9zKz1hLmxlbmd0aCxhLmxlbmd0aCk6KHImJih5aWVsZCIiKSwwKX0qcHVzaEluZGljYXRvcnMoKXtzd2l0Y2godGhpcy5jaGFyQXQoMCkpe2Nhc2UiISI6cmV0dXJuKHlpZWxkKnRoaXMucHVzaFRhZygpKSsoeWllbGQqdGhpcy5wdXNoU3BhY2VzKCEwKSkrKHlpZWxkKnRoaXMucHVzaEluZGljYXRvcnMoKSk7Y2FzZSImIjpyZXR1cm4oeWllbGQqdGhpcy5wdXNoVW50aWwoenhlKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpKyh5aWVsZCp0aGlzLnB1c2hJbmRpY2F0b3JzKCkpO2Nhc2UiLSI6Y2FzZSI/IjpjYXNlIjoiOntsZXQgZT10aGlzLmZsb3dMZXZlbD4wLHI9dGhpcy5jaGFyQXQoMSk7aWYoUjIocil8fGUmJllvZS5oYXMocikpcmV0dXJuIGU/dGhpcy5mbG93S2V5JiYodGhpcy5mbG93S2V5PSExKTp0aGlzLmluZGVudE5leHQ9dGhpcy5pbmRlbnRWYWx1ZSsxLCh5aWVsZCp0aGlzLnB1c2hDb3VudCgxKSkrKHlpZWxkKnRoaXMucHVzaFNwYWNlcyghMCkpKyh5aWVsZCp0aGlzLnB1c2hJbmRpY2F0b3JzKCkpfX1yZXR1cm4gMH0qcHVzaFRhZygpe2lmKHRoaXMuY2hhckF0KDEpPT09IjwiKXtsZXQgZT10aGlzLnBvcysyLHI9dGhpcy5idWZmZXJbZV07Zm9yKDshUjIocikmJnIhPT0iPiI7KXI9dGhpcy5idWZmZXJbKytlXTtyZXR1cm4geWllbGQqdGhpcy5wdXNoVG9JbmRleChyPT09Ij4iP2UrMTplLCExKX1lbHNle2xldCBlPXRoaXMucG9zKzEscj10aGlzLmJ1ZmZlcltlXTtmb3IoO3I7KWlmKHZ1YS5oYXMocikpcj10aGlzLmJ1ZmZlclsrK2VdO2Vsc2UgaWYocj09PSIlIiYma0R0Lmhhcyh0aGlzLmJ1ZmZlcltlKzFdKSYma0R0Lmhhcyh0aGlzLmJ1ZmZlcltlKzJdKSlyPXRoaXMuYnVmZmVyW2UrPTNdO2Vsc2UgYnJlYWs7cmV0dXJuIHlpZWxkKnRoaXMucHVzaFRvSW5kZXgoZSwhMSl9fSpwdXNoTmV3bGluZSgpe2xldCBlPXRoaXMuYnVmZmVyW3RoaXMucG9zXTtyZXR1cm4gZT09PWAKYD95aWVsZCp0aGlzLnB1c2hDb3VudCgxKTplPT09IlxyIiYmdGhpcy5jaGFyQXQoMSk9PT1gCmA/eWllbGQqdGhpcy5wdXNoQ291bnQoMik6MH0qcHVzaFNwYWNlcyhlKXtsZXQgcj10aGlzLnBvcy0xLGE7ZG8gYT10aGlzLmJ1ZmZlclsrK3JdO3doaWxlKGE9PT0iICJ8fGUmJmE9PT0iCSIpO2xldCBzPXItdGhpcy5wb3M7cmV0dXJuIHM+MCYmKHlpZWxkIHRoaXMuYnVmZmVyLnN1YnN0cih0aGlzLnBvcyxzKSx0aGlzLnBvcz1yKSxzfSpwdXNoVW50aWwoZSl7bGV0IHI9dGhpcy5wb3MsYT10aGlzLmJ1ZmZlcltyXTtmb3IoOyFlKGEpOylhPXRoaXMuYnVmZmVyWysrcl07cmV0dXJuIHlpZWxkKnRoaXMucHVzaFRvSW5kZXgociwhMSl9fX0pO3ZhciBTdSxUeGU9dSgoKT0+e1N1PWNsYXNze3N0YXRpY3tpKHRoaXMsIkxpbmVDb3VudGVyIil9Y29uc3RydWN0b3IoKXt0aGlzLmxpbmVTdGFydHM9W10sdGhpcy5hZGROZXdMaW5lPWU9PnRoaXMubGluZVN0YXJ0cy5wdXNoKGUpLHRoaXMubGluZVBvcz1lPT57bGV0IHI9MCxhPXRoaXMubGluZVN0YXJ0cy5sZW5ndGg7Zm9yKDtyPGE7KXtsZXQgbj1yK2E+PjE7dGhpcy5saW5lU3RhcnRzW25dPGU/cj1uKzE6YT1ufWlmKHRoaXMubGluZVN0YXJ0c1tyXT09PWUpcmV0dXJue2xpbmU6cisxLGNvbDoxfTtpZihyPT09MClyZXR1cm57bGluZTowLGNvbDplfTtsZXQgcz10aGlzLmxpbmVTdGFydHNbci0xXTtyZXR1cm57bGluZTpyLGNvbDplLXMrMX19fX19KTtmdW5jdGlvbiBNdSh0LGUpe2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7KytyKWlmKHRbcl0udHlwZT09PWUpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gU0R0KHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7KytlKXN3aXRjaCh0W2VdLnR5cGUpe2Nhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjpicmVhaztkZWZhdWx0OnJldHVybiBlfXJldHVybi0xfWZ1bmN0aW9uIE1EdCh0KXtzd2l0Y2godD8udHlwZSl7Y2FzZSJhbGlhcyI6Y2FzZSJzY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZmxvdy1jb2xsZWN0aW9uIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBLb2UodCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJkb2N1bWVudCI6cmV0dXJuIHQuc3RhcnQ7Y2FzZSJibG9jay1tYXAiOntsZXQgZT10Lml0ZW1zW3QuaXRlbXMubGVuZ3RoLTFdO3JldHVybiBlLnNlcD8/ZS5zdGFydH1jYXNlImJsb2NrLXNlcSI6cmV0dXJuIHQuaXRlbXNbdC5pdGVtcy5sZW5ndGgtMV0uc3RhcnQ7ZGVmYXVsdDpyZXR1cm5bXX19ZnVuY3Rpb24gaXgodCl7aWYodC5sZW5ndGg9PT0wKXJldHVybltdO2xldCBlPXQubGVuZ3RoO2U6Zm9yKDstLWU+PTA7KXN3aXRjaCh0W2VdLnR5cGUpe2Nhc2UiZG9jLXN0YXJ0IjpjYXNlImV4cGxpY2l0LWtleS1pbmQiOmNhc2UibWFwLXZhbHVlLWluZCI6Y2FzZSJzZXEtaXRlbS1pbmQiOmNhc2UibmV3bGluZSI6YnJlYWsgZX1mb3IoO3RbKytlXT8udHlwZT09PSJzcGFjZSI7KTtyZXR1cm4gdC5zcGxpY2UoZSx0Lmxlbmd0aCl9ZnVuY3Rpb24gQ0R0KHQpe2lmKHQuc3RhcnQudHlwZT09PSJmbG93LXNlcS1zdGFydCIpZm9yKGxldCBlIG9mIHQuaXRlbXMpZS5zZXAmJiFlLnZhbHVlJiYhTXUoZS5zdGFydCwiZXhwbGljaXQta2V5LWluZCIpJiYhTXUoZS5zZXAsIm1hcC12YWx1ZS1pbmQiKSYmKGUua2V5JiYoZS52YWx1ZT1lLmtleSksZGVsZXRlIGUua2V5LE1EdChlLnZhbHVlKT9lLnZhbHVlLmVuZD9BcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShlLnZhbHVlLmVuZCxlLnNlcCk6ZS52YWx1ZS5lbmQ9ZS5zZXA6QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZS5zdGFydCxlLnNlcCksZGVsZXRlIGUuc2VwKX12YXIgdDQsTHhlPXUoKCk9PntHb2UoKTtfeGUoKTtpKE11LCJpbmNsdWRlc1Rva2VuIik7aShTRHQsImZpbmROb25FbXB0eUluZGV4Iik7aShNRHQsImlzRmxvd1Rva2VuIik7aShLb2UsImdldFByZXZQcm9wcyIpO2koaXgsImdldEZpcnN0S2V5U3RhcnRQcm9wcyIpO2koQ0R0LCJmaXhGbG93U2VxSXRlbXMiKTt0ND1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQYXJzZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmF0TmV3TGluZT0hMCx0aGlzLmF0U2NhbGFyPSExLHRoaXMuaW5kZW50PTAsdGhpcy5vZmZzZXQ9MCx0aGlzLm9uS2V5TGluZT0hMSx0aGlzLnN0YWNrPVtdLHRoaXMuc291cmNlPSIiLHRoaXMudHlwZT0iIix0aGlzLmxleGVyPW5ldyBrdSx0aGlzLm9uTmV3TGluZT1lfSpwYXJzZShlLHI9ITEpe3RoaXMub25OZXdMaW5lJiZ0aGlzLm9mZnNldD09PTAmJnRoaXMub25OZXdMaW5lKDApO2ZvcihsZXQgYSBvZiB0aGlzLmxleGVyLmxleChlLHIpKXlpZWxkKnRoaXMubmV4dChhKTtyfHwoeWllbGQqdGhpcy5lbmQoKSl9Km5leHQoZSl7aWYodGhpcy5zb3VyY2U9ZSx0aGlzLmF0U2NhbGFyKXt0aGlzLmF0U2NhbGFyPSExLHlpZWxkKnRoaXMuc3RlcCgpLHRoaXMub2Zmc2V0Kz1lLmxlbmd0aDtyZXR1cm59bGV0IHI9V29lKGUpO2lmKHIpaWYocj09PSJzY2FsYXIiKXRoaXMuYXROZXdMaW5lPSExLHRoaXMuYXRTY2FsYXI9ITAsdGhpcy50eXBlPSJzY2FsYXIiO2Vsc2V7c3dpdGNoKHRoaXMudHlwZT1yLHlpZWxkKnRoaXMuc3RlcCgpLHIpe2Nhc2UibmV3bGluZSI6dGhpcy5hdE5ld0xpbmU9ITAsdGhpcy5pbmRlbnQ9MCx0aGlzLm9uTmV3TGluZSYmdGhpcy5vbk5ld0xpbmUodGhpcy5vZmZzZXQrZS5sZW5ndGgpO2JyZWFrO2Nhc2Uic3BhY2UiOnRoaXMuYXROZXdMaW5lJiZlWzBdPT09IiAiJiYodGhpcy5pbmRlbnQrPWUubGVuZ3RoKTticmVhaztjYXNlImV4cGxpY2l0LWtleS1pbmQiOmNhc2UibWFwLXZhbHVlLWluZCI6Y2FzZSJzZXEtaXRlbS1pbmQiOnRoaXMuYXROZXdMaW5lJiYodGhpcy5pbmRlbnQrPWUubGVuZ3RoKTticmVhaztjYXNlImRvYy1tb2RlIjpjYXNlImZsb3ctZXJyb3ItZW5kIjpyZXR1cm47ZGVmYXVsdDp0aGlzLmF0TmV3TGluZT0hMX10aGlzLm9mZnNldCs9ZS5sZW5ndGh9ZWxzZXtsZXQgYT1gTm90IGEgWUFNTCB0b2tlbjogJHtlfWA7eWllbGQqdGhpcy5wb3Aoe3R5cGU6ImVycm9yIixvZmZzZXQ6dGhpcy5vZmZzZXQsbWVzc2FnZTphLHNvdXJjZTplfSksdGhpcy5vZmZzZXQrPWUubGVuZ3RofX0qZW5kKCl7Zm9yKDt0aGlzLnN0YWNrLmxlbmd0aD4wOyl5aWVsZCp0aGlzLnBvcCgpfWdldCBzb3VyY2VUb2tlbigpe3JldHVybnt0eXBlOnRoaXMudHlwZSxvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LHNvdXJjZTp0aGlzLnNvdXJjZX19KnN0ZXAoKXtsZXQgZT10aGlzLnBlZWsoMSk7aWYodGhpcy50eXBlPT09ImRvYy1lbmQiJiZlPy50eXBlIT09ImRvYy1lbmQiKXtmb3IoO3RoaXMuc3RhY2subGVuZ3RoPjA7KXlpZWxkKnRoaXMucG9wKCk7dGhpcy5zdGFjay5wdXNoKHt0eXBlOiJkb2MtZW5kIixvZmZzZXQ6dGhpcy5vZmZzZXQsc291cmNlOnRoaXMuc291cmNlfSk7cmV0dXJufWlmKCFlKXJldHVybiB5aWVsZCp0aGlzLnN0cmVhbSgpO3N3aXRjaChlLnR5cGUpe2Nhc2UiZG9jdW1lbnQiOnJldHVybiB5aWVsZCp0aGlzLmRvY3VtZW50KGUpO2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpyZXR1cm4geWllbGQqdGhpcy5zY2FsYXIoZSk7Y2FzZSJibG9jay1zY2FsYXIiOnJldHVybiB5aWVsZCp0aGlzLmJsb2NrU2NhbGFyKGUpO2Nhc2UiYmxvY2stbWFwIjpyZXR1cm4geWllbGQqdGhpcy5ibG9ja01hcChlKTtjYXNlImJsb2NrLXNlcSI6cmV0dXJuIHlpZWxkKnRoaXMuYmxvY2tTZXF1ZW5jZShlKTtjYXNlImZsb3ctY29sbGVjdGlvbiI6cmV0dXJuIHlpZWxkKnRoaXMuZmxvd0NvbGxlY3Rpb24oZSk7Y2FzZSJkb2MtZW5kIjpyZXR1cm4geWllbGQqdGhpcy5kb2N1bWVudEVuZChlKX15aWVsZCp0aGlzLnBvcCgpfXBlZWsoZSl7cmV0dXJuIHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtZV19KnBvcChlKXtsZXQgcj1lPz90aGlzLnN0YWNrLnBvcCgpO2lmKCFyKXlpZWxke3R5cGU6ImVycm9yIixvZmZzZXQ6dGhpcy5vZmZzZXQsc291cmNlOiIiLG1lc3NhZ2U6IlRyaWVkIHRvIHBvcCBhbiBlbXB0eSBzdGFjayJ9O2Vsc2UgaWYodGhpcy5zdGFjay5sZW5ndGg9PT0wKXlpZWxkIHI7ZWxzZXtsZXQgYT10aGlzLnBlZWsoMSk7c3dpdGNoKHIudHlwZT09PSJibG9jay1zY2FsYXIiP3IuaW5kZW50PSJpbmRlbnQiaW4gYT9hLmluZGVudDowOnIudHlwZT09PSJmbG93LWNvbGxlY3Rpb24iJiZhLnR5cGU9PT0iZG9jdW1lbnQiJiYoci5pbmRlbnQ9MCksci50eXBlPT09ImZsb3ctY29sbGVjdGlvbiImJkNEdChyKSxhLnR5cGUpe2Nhc2UiZG9jdW1lbnQiOmEudmFsdWU9cjticmVhaztjYXNlImJsb2NrLXNjYWxhciI6YS5wcm9wcy5wdXNoKHIpO2JyZWFrO2Nhc2UiYmxvY2stbWFwIjp7bGV0IHM9YS5pdGVtc1thLml0ZW1zLmxlbmd0aC0xXTtpZihzLnZhbHVlKXthLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTpyLHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSEwO3JldHVybn1lbHNlIGlmKHMuc2VwKXMudmFsdWU9cjtlbHNle09iamVjdC5hc3NpZ24ocyx7a2V5OnIsc2VwOltdfSksdGhpcy5vbktleUxpbmU9IXMuZXhwbGljaXRLZXk7cmV0dXJufWJyZWFrfWNhc2UiYmxvY2stc2VxIjp7bGV0IHM9YS5pdGVtc1thLml0ZW1zLmxlbmd0aC0xXTtzLnZhbHVlP2EuaXRlbXMucHVzaCh7c3RhcnQ6W10sdmFsdWU6cn0pOnMudmFsdWU9cjticmVha31jYXNlImZsb3ctY29sbGVjdGlvbiI6e2xldCBzPWEuaXRlbXNbYS5pdGVtcy5sZW5ndGgtMV07IXN8fHMudmFsdWU/YS5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6cixzZXA6W119KTpzLnNlcD9zLnZhbHVlPXI6T2JqZWN0LmFzc2lnbihzLHtrZXk6cixzZXA6W119KTtyZXR1cm59ZGVmYXVsdDp5aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMucG9wKHIpfWlmKChhLnR5cGU9PT0iZG9jdW1lbnQifHxhLnR5cGU9PT0iYmxvY2stbWFwInx8YS50eXBlPT09ImJsb2NrLXNlcSIpJiYoci50eXBlPT09ImJsb2NrLW1hcCJ8fHIudHlwZT09PSJibG9jay1zZXEiKSl7bGV0IHM9ci5pdGVtc1tyLml0ZW1zLmxlbmd0aC0xXTtzJiYhcy5zZXAmJiFzLnZhbHVlJiZzLnN0YXJ0Lmxlbmd0aD4wJiZTRHQocy5zdGFydCk9PT0tMSYmKHIuaW5kZW50PT09MHx8cy5zdGFydC5ldmVyeShuPT5uLnR5cGUhPT0iY29tbWVudCJ8fG4uaW5kZW50PHIuaW5kZW50KSkmJihhLnR5cGU9PT0iZG9jdW1lbnQiP2EuZW5kPXMuc3RhcnQ6YS5pdGVtcy5wdXNoKHtzdGFydDpzLnN0YXJ0fSksci5pdGVtcy5zcGxpY2UoLTEsMSkpfX19KnN0cmVhbSgpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiZGlyZWN0aXZlLWxpbmUiOnlpZWxke3R5cGU6ImRpcmVjdGl2ZSIsb2Zmc2V0OnRoaXMub2Zmc2V0LHNvdXJjZTp0aGlzLnNvdXJjZX07cmV0dXJuO2Nhc2UiYnl0ZS1vcmRlci1tYXJrIjpjYXNlInNwYWNlIjpjYXNlImNvbW1lbnQiOmNhc2UibmV3bGluZSI6eWllbGQgdGhpcy5zb3VyY2VUb2tlbjtyZXR1cm47Y2FzZSJkb2MtbW9kZSI6Y2FzZSJkb2Mtc3RhcnQiOntsZXQgZT17dHlwZToiZG9jdW1lbnQiLG9mZnNldDp0aGlzLm9mZnNldCxzdGFydDpbXX07dGhpcy50eXBlPT09ImRvYy1zdGFydCImJmUuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKSx0aGlzLnN0YWNrLnB1c2goZSk7cmV0dXJufX15aWVsZHt0eXBlOiJlcnJvciIsb2Zmc2V0OnRoaXMub2Zmc2V0LG1lc3NhZ2U6YFVuZXhwZWN0ZWQgJHt0aGlzLnR5cGV9IHRva2VuIGluIFlBTUwgc3RyZWFtYCxzb3VyY2U6dGhpcy5zb3VyY2V9fSpkb2N1bWVudChlKXtpZihlLnZhbHVlKXJldHVybiB5aWVsZCp0aGlzLmxpbmVFbmQoZSk7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJkb2Mtc3RhcnQiOntTRHQoZS5zdGFydCkhPT0tMT8oeWllbGQqdGhpcy5wb3AoKSx5aWVsZCp0aGlzLnN0ZXAoKSk6ZS5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybn1jYXNlImFuY2hvciI6Y2FzZSJ0YWciOmNhc2Uic3BhY2UiOmNhc2UiY29tbWVudCI6Y2FzZSJuZXdsaW5lIjplLnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWxldCByPXRoaXMuc3RhcnRCbG9ja1ZhbHVlKGUpO3I/dGhpcy5zdGFjay5wdXNoKHIpOnlpZWxke3R5cGU6ImVycm9yIixvZmZzZXQ6dGhpcy5vZmZzZXQsbWVzc2FnZTpgVW5leHBlY3RlZCAke3RoaXMudHlwZX0gdG9rZW4gaW4gWUFNTCBkb2N1bWVudGAsc291cmNlOnRoaXMuc291cmNlfX0qc2NhbGFyKGUpe2lmKHRoaXMudHlwZT09PSJtYXAtdmFsdWUtaW5kIil7bGV0IHI9S29lKHRoaXMucGVlaygyKSksYT1peChyKSxzO2UuZW5kPyhzPWUuZW5kLHMucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxkZWxldGUgZS5lbmQpOnM9W3RoaXMuc291cmNlVG9rZW5dO2xldCBuPXt0eXBlOiJibG9jay1tYXAiLG9mZnNldDplLm9mZnNldCxpbmRlbnQ6ZS5pbmRlbnQsaXRlbXM6W3tzdGFydDphLGtleTplLHNlcDpzfV19O3RoaXMub25LZXlMaW5lPSEwLHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV09bn1lbHNlIHlpZWxkKnRoaXMubGluZUVuZChlKX0qYmxvY2tTY2FsYXIoZSl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjpjYXNlIm5ld2xpbmUiOmUucHJvcHMucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJzY2FsYXIiOmlmKGUuc291cmNlPXRoaXMuc291cmNlLHRoaXMuYXROZXdMaW5lPSEwLHRoaXMuaW5kZW50PTAsdGhpcy5vbk5ld0xpbmUpe2xldCByPXRoaXMuc291cmNlLmluZGV4T2YoYApgKSsxO2Zvcig7ciE9PTA7KXRoaXMub25OZXdMaW5lKHRoaXMub2Zmc2V0K3IpLHI9dGhpcy5zb3VyY2UuaW5kZXhPZihgCmAscikrMX15aWVsZCp0aGlzLnBvcCgpO2JyZWFrO2RlZmF1bHQ6eWllbGQqdGhpcy5wb3AoKSx5aWVsZCp0aGlzLnN0ZXAoKX19KmJsb2NrTWFwKGUpe2xldCByPWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMV07c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJuZXdsaW5lIjppZih0aGlzLm9uS2V5TGluZT0hMSxyLnZhbHVlKXtsZXQgYT0iZW5kImluIHIudmFsdWU/ci52YWx1ZS5lbmQ6dm9pZCAwOyhBcnJheS5pc0FycmF5KGEpP2FbYS5sZW5ndGgtMV06dm9pZCAwKT8udHlwZT09PSJjb21tZW50Ij9hPy5wdXNoKHRoaXMuc291cmNlVG9rZW4pOmUuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSl9ZWxzZSByLnNlcD9yLnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOnIuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjppZihyLnZhbHVlKWUuaXRlbXMucHVzaCh7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfSk7ZWxzZSBpZihyLnNlcClyLnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO2Vsc2V7aWYodGhpcy5hdEluZGVudGVkQ29tbWVudChyLnN0YXJ0LGUuaW5kZW50KSl7bGV0IHM9ZS5pdGVtc1tlLml0ZW1zLmxlbmd0aC0yXT8udmFsdWU/LmVuZDtpZihBcnJheS5pc0FycmF5KHMpKXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShzLHIuc3RhcnQpLHMucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxlLml0ZW1zLnBvcCgpO3JldHVybn19ci5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pfXJldHVybn1pZih0aGlzLmluZGVudD49ZS5pbmRlbnQpe2xldCBhPSF0aGlzLm9uS2V5TGluZSYmdGhpcy5pbmRlbnQ9PT1lLmluZGVudCxzPWEmJihyLnNlcHx8ci5leHBsaWNpdEtleSkmJnRoaXMudHlwZSE9PSJzZXEtaXRlbS1pbmQiLG49W107aWYocyYmci5zZXAmJiFyLnZhbHVlKXtsZXQgbz1bXTtmb3IobGV0IGw9MDtsPHIuc2VwLmxlbmd0aDsrK2wpe2xldCBjPXIuc2VwW2xdO3N3aXRjaChjLnR5cGUpe2Nhc2UibmV3bGluZSI6by5wdXNoKGwpO2JyZWFrO2Nhc2Uic3BhY2UiOmJyZWFrO2Nhc2UiY29tbWVudCI6Yy5pbmRlbnQ+ZS5pbmRlbnQmJihvLmxlbmd0aD0wKTticmVhaztkZWZhdWx0Om8ubGVuZ3RoPTB9fW8ubGVuZ3RoPj0yJiYobj1yLnNlcC5zcGxpY2Uob1sxXSkpfXN3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiYW5jaG9yIjpjYXNlInRhZyI6c3x8ci52YWx1ZT8obi5wdXNoKHRoaXMuc291cmNlVG9rZW4pLGUuaXRlbXMucHVzaCh7c3RhcnQ6bn0pLHRoaXMub25LZXlMaW5lPSEwKTpyLnNlcD9yLnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOnIuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJleHBsaWNpdC1rZXktaW5kIjohci5zZXAmJiFyLmV4cGxpY2l0S2V5PyhyLnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbiksci5leHBsaWNpdEtleT0hMCk6c3x8ci52YWx1ZT8obi5wdXNoKHRoaXMuc291cmNlVG9rZW4pLGUuaXRlbXMucHVzaCh7c3RhcnQ6bixleHBsaWNpdEtleTohMH0pKTp0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXSxleHBsaWNpdEtleTohMH1dfSksdGhpcy5vbktleUxpbmU9ITA7cmV0dXJuO2Nhc2UibWFwLXZhbHVlLWluZCI6aWYoci5leHBsaWNpdEtleSlpZihyLnNlcClpZihyLnZhbHVlKWUuaXRlbXMucHVzaCh7c3RhcnQ6W10sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX0pO2Vsc2UgaWYoTXUoci5zZXAsIm1hcC12YWx1ZS1pbmQiKSl0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0Om4sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX1dfSk7ZWxzZSBpZihNRHQoci5rZXkpJiYhTXUoci5zZXAsIm5ld2xpbmUiKSl7bGV0IG89aXgoci5zdGFydCksbD1yLmtleSxjPXIuc2VwO2MucHVzaCh0aGlzLnNvdXJjZVRva2VuKSxkZWxldGUgci5rZXksZGVsZXRlIHIuc2VwLHRoaXMuc3RhY2sucHVzaCh7dHlwZToiYmxvY2stbWFwIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6byxrZXk6bCxzZXA6Y31dfSl9ZWxzZSBuLmxlbmd0aD4wP3Iuc2VwPXIuc2VwLmNvbmNhdChuLHRoaXMuc291cmNlVG9rZW4pOnIuc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik7ZWxzZSBpZihNdShyLnN0YXJ0LCJuZXdsaW5lIikpT2JqZWN0LmFzc2lnbihyLHtrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk7ZWxzZXtsZXQgbz1peChyLnN0YXJ0KTt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0Om8sa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX1dfSl9ZWxzZSByLnNlcD9yLnZhbHVlfHxzP2UuaXRlbXMucHVzaCh7c3RhcnQ6bixrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk6TXUoci5zZXAsIm1hcC12YWx1ZS1pbmQiKT90aGlzLnN0YWNrLnB1c2goe3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OltdLGtleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19XX0pOnIuc2VwLnB1c2godGhpcy5zb3VyY2VUb2tlbik6T2JqZWN0LmFzc2lnbihyLHtrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk7dGhpcy5vbktleUxpbmU9ITA7cmV0dXJuO2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjp7bGV0IG89dGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7c3x8ci52YWx1ZT8oZS5pdGVtcy5wdXNoKHtzdGFydDpuLGtleTpvLHNlcDpbXX0pLHRoaXMub25LZXlMaW5lPSEwKTpyLnNlcD90aGlzLnN0YWNrLnB1c2gobyk6KE9iamVjdC5hc3NpZ24ocix7a2V5Om8sc2VwOltdfSksdGhpcy5vbktleUxpbmU9ITApO3JldHVybn1kZWZhdWx0OntsZXQgbz10aGlzLnN0YXJ0QmxvY2tWYWx1ZShlKTtpZihvKXtpZihvLnR5cGU9PT0iYmxvY2stc2VxIil7aWYoIXIuZXhwbGljaXRLZXkmJnIuc2VwJiYhTXUoci5zZXAsIm5ld2xpbmUiKSl7eWllbGQqdGhpcy5wb3Aoe3R5cGU6ImVycm9yIixvZmZzZXQ6dGhpcy5vZmZzZXQsbWVzc2FnZToiVW5leHBlY3RlZCBibG9jay1zZXEtaW5kIG9uIHNhbWUgbGluZSB3aXRoIGtleSIsc291cmNlOnRoaXMuc291cmNlfSk7cmV0dXJufX1lbHNlIGEmJmUuaXRlbXMucHVzaCh7c3RhcnQ6bn0pO3RoaXMuc3RhY2sucHVzaChvKTtyZXR1cm59fX19eWllbGQqdGhpcy5wb3AoKSx5aWVsZCp0aGlzLnN0ZXAoKX0qYmxvY2tTZXF1ZW5jZShlKXtsZXQgcj1lLml0ZW1zW2UuaXRlbXMubGVuZ3RoLTFdO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UibmV3bGluZSI6aWYoci52YWx1ZSl7bGV0IGE9ImVuZCJpbiByLnZhbHVlP3IudmFsdWUuZW5kOnZvaWQgMDsoQXJyYXkuaXNBcnJheShhKT9hW2EubGVuZ3RoLTFdOnZvaWQgMCk/LnR5cGU9PT0iY29tbWVudCI/YT8ucHVzaCh0aGlzLnNvdXJjZVRva2VuKTplLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pfWVsc2Ugci5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybjtjYXNlInNwYWNlIjpjYXNlImNvbW1lbnQiOmlmKHIudmFsdWUpZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTtlbHNle2lmKHRoaXMuYXRJbmRlbnRlZENvbW1lbnQoci5zdGFydCxlLmluZGVudCkpe2xldCBzPWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMl0/LnZhbHVlPy5lbmQ7aWYoQXJyYXkuaXNBcnJheShzKSl7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkocyxyLnN0YXJ0KSxzLnB1c2godGhpcy5zb3VyY2VUb2tlbiksZS5pdGVtcy5wb3AoKTtyZXR1cm59fXIuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKX1yZXR1cm47Y2FzZSJhbmNob3IiOmNhc2UidGFnIjppZihyLnZhbHVlfHx0aGlzLmluZGVudDw9ZS5pbmRlbnQpYnJlYWs7ci5zdGFydC5wdXNoKHRoaXMuc291cmNlVG9rZW4pO3JldHVybjtjYXNlInNlcS1pdGVtLWluZCI6aWYodGhpcy5pbmRlbnQhPT1lLmluZGVudClicmVhaztyLnZhbHVlfHxNdShyLnN0YXJ0LCJzZXEtaXRlbS1pbmQiKT9lLml0ZW1zLnB1c2goe3N0YXJ0Olt0aGlzLnNvdXJjZVRva2VuXX0pOnIuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm59aWYodGhpcy5pbmRlbnQ+ZS5pbmRlbnQpe2xldCBhPXRoaXMuc3RhcnRCbG9ja1ZhbHVlKGUpO2lmKGEpe3RoaXMuc3RhY2sucHVzaChhKTtyZXR1cm59fXlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCl9KmZsb3dDb2xsZWN0aW9uKGUpe2xldCByPWUuaXRlbXNbZS5pdGVtcy5sZW5ndGgtMV07aWYodGhpcy50eXBlPT09ImZsb3ctZXJyb3ItZW5kIil7bGV0IGE7ZG8geWllbGQqdGhpcy5wb3AoKSxhPXRoaXMucGVlaygxKTt3aGlsZShhPy50eXBlPT09ImZsb3ctY29sbGVjdGlvbiIpfWVsc2UgaWYoZS5lbmQubGVuZ3RoPT09MCl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJjb21tYSI6Y2FzZSJleHBsaWNpdC1rZXktaW5kIjohcnx8ci5zZXA/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTpyLnN0YXJ0LnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJuO2Nhc2UibWFwLXZhbHVlLWluZCI6IXJ8fHIudmFsdWU/ZS5pdGVtcy5wdXNoKHtzdGFydDpbXSxrZXk6bnVsbCxzZXA6W3RoaXMuc291cmNlVG9rZW5dfSk6ci5zZXA/ci5zZXAucHVzaCh0aGlzLnNvdXJjZVRva2VuKTpPYmplY3QuYXNzaWduKHIse2tleTpudWxsLHNlcDpbdGhpcy5zb3VyY2VUb2tlbl19KTtyZXR1cm47Y2FzZSJzcGFjZSI6Y2FzZSJjb21tZW50IjpjYXNlIm5ld2xpbmUiOmNhc2UiYW5jaG9yIjpjYXNlInRhZyI6IXJ8fHIudmFsdWU/ZS5pdGVtcy5wdXNoKHtzdGFydDpbdGhpcy5zb3VyY2VUb2tlbl19KTpyLnNlcD9yLnNlcC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOnIuc3RhcnQucHVzaCh0aGlzLnNvdXJjZVRva2VuKTtyZXR1cm47Y2FzZSJhbGlhcyI6Y2FzZSJzY2FsYXIiOmNhc2Uic2luZ2xlLXF1b3RlZC1zY2FsYXIiOmNhc2UiZG91YmxlLXF1b3RlZC1zY2FsYXIiOntsZXQgcz10aGlzLmZsb3dTY2FsYXIodGhpcy50eXBlKTshcnx8ci52YWx1ZT9lLml0ZW1zLnB1c2goe3N0YXJ0OltdLGtleTpzLHNlcDpbXX0pOnIuc2VwP3RoaXMuc3RhY2sucHVzaChzKTpPYmplY3QuYXNzaWduKHIse2tleTpzLHNlcDpbXX0pO3JldHVybn1jYXNlImZsb3ctbWFwLWVuZCI6Y2FzZSJmbG93LXNlcS1lbmQiOmUuZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik7cmV0dXJufWxldCBhPXRoaXMuc3RhcnRCbG9ja1ZhbHVlKGUpO2E/dGhpcy5zdGFjay5wdXNoKGEpOih5aWVsZCp0aGlzLnBvcCgpLHlpZWxkKnRoaXMuc3RlcCgpKX1lbHNle2xldCBhPXRoaXMucGVlaygyKTtpZihhLnR5cGU9PT0iYmxvY2stbWFwIiYmKHRoaXMudHlwZT09PSJtYXAtdmFsdWUtaW5kIiYmYS5pbmRlbnQ9PT1lLmluZGVudHx8dGhpcy50eXBlPT09Im5ld2xpbmUiJiYhYS5pdGVtc1thLml0ZW1zLmxlbmd0aC0xXS5zZXApKXlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCk7ZWxzZSBpZih0aGlzLnR5cGU9PT0ibWFwLXZhbHVlLWluZCImJmEudHlwZSE9PSJmbG93LWNvbGxlY3Rpb24iKXtsZXQgcz1Lb2UoYSksbj1peChzKTtDRHQoZSk7bGV0IG89ZS5lbmQuc3BsaWNlKDEsZS5lbmQubGVuZ3RoKTtvLnB1c2godGhpcy5zb3VyY2VUb2tlbik7bGV0IGw9e3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OmUub2Zmc2V0LGluZGVudDplLmluZGVudCxpdGVtczpbe3N0YXJ0Om4sa2V5OmUsc2VwOm99XX07dGhpcy5vbktleUxpbmU9ITAsdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXT1sfWVsc2UgeWllbGQqdGhpcy5saW5lRW5kKGUpfX1mbG93U2NhbGFyKGUpe2lmKHRoaXMub25OZXdMaW5lKXtsZXQgcj10aGlzLnNvdXJjZS5pbmRleE9mKGAKYCkrMTtmb3IoO3IhPT0wOyl0aGlzLm9uTmV3TGluZSh0aGlzLm9mZnNldCtyKSxyPXRoaXMuc291cmNlLmluZGV4T2YoYApgLHIpKzF9cmV0dXJue3R5cGU6ZSxvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LHNvdXJjZTp0aGlzLnNvdXJjZX19c3RhcnRCbG9ja1ZhbHVlKGUpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiYWxpYXMiOmNhc2Uic2NhbGFyIjpjYXNlInNpbmdsZS1xdW90ZWQtc2NhbGFyIjpjYXNlImRvdWJsZS1xdW90ZWQtc2NhbGFyIjpyZXR1cm4gdGhpcy5mbG93U2NhbGFyKHRoaXMudHlwZSk7Y2FzZSJibG9jay1zY2FsYXItaGVhZGVyIjpyZXR1cm57dHlwZToiYmxvY2stc2NhbGFyIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LHByb3BzOlt0aGlzLnNvdXJjZVRva2VuXSxzb3VyY2U6IiJ9O2Nhc2UiZmxvdy1tYXAtc3RhcnQiOmNhc2UiZmxvdy1zZXEtc3RhcnQiOnJldHVybnt0eXBlOiJmbG93LWNvbGxlY3Rpb24iLG9mZnNldDp0aGlzLm9mZnNldCxpbmRlbnQ6dGhpcy5pbmRlbnQsc3RhcnQ6dGhpcy5zb3VyY2VUb2tlbixpdGVtczpbXSxlbmQ6W119O2Nhc2Uic2VxLWl0ZW0taW5kIjpyZXR1cm57dHlwZToiYmxvY2stc2VxIixvZmZzZXQ6dGhpcy5vZmZzZXQsaW5kZW50OnRoaXMuaW5kZW50LGl0ZW1zOlt7c3RhcnQ6W3RoaXMuc291cmNlVG9rZW5dfV19O2Nhc2UiZXhwbGljaXQta2V5LWluZCI6e3RoaXMub25LZXlMaW5lPSEwO2xldCByPUtvZShlKSxhPWl4KHIpO3JldHVybiBhLnB1c2godGhpcy5zb3VyY2VUb2tlbikse3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OmEsZXhwbGljaXRLZXk6ITB9XX19Y2FzZSJtYXAtdmFsdWUtaW5kIjp7dGhpcy5vbktleUxpbmU9ITA7bGV0IHI9S29lKGUpLGE9aXgocik7cmV0dXJue3R5cGU6ImJsb2NrLW1hcCIsb2Zmc2V0OnRoaXMub2Zmc2V0LGluZGVudDp0aGlzLmluZGVudCxpdGVtczpbe3N0YXJ0OmEsa2V5Om51bGwsc2VwOlt0aGlzLnNvdXJjZVRva2VuXX1dfX19cmV0dXJuIG51bGx9YXRJbmRlbnRlZENvbW1lbnQoZSxyKXtyZXR1cm4gdGhpcy50eXBlIT09ImNvbW1lbnQifHx0aGlzLmluZGVudDw9cj8hMTplLmV2ZXJ5KGE9PmEudHlwZT09PSJuZXdsaW5lInx8YS50eXBlPT09InNwYWNlIil9KmRvY3VtZW50RW5kKGUpe3RoaXMudHlwZSE9PSJkb2MtbW9kZSImJihlLmVuZD9lLmVuZC5wdXNoKHRoaXMuc291cmNlVG9rZW4pOmUuZW5kPVt0aGlzLnNvdXJjZVRva2VuXSx0aGlzLnR5cGU9PT0ibmV3bGluZSImJih5aWVsZCp0aGlzLnBvcCgpKSl9KmxpbmVFbmQoZSl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSJjb21tYSI6Y2FzZSJkb2Mtc3RhcnQiOmNhc2UiZG9jLWVuZCI6Y2FzZSJmbG93LXNlcS1lbmQiOmNhc2UiZmxvdy1tYXAtZW5kIjpjYXNlIm1hcC12YWx1ZS1pbmQiOnlpZWxkKnRoaXMucG9wKCkseWllbGQqdGhpcy5zdGVwKCk7YnJlYWs7Y2FzZSJuZXdsaW5lIjp0aGlzLm9uS2V5TGluZT0hMTtkZWZhdWx0OmUuZW5kP2UuZW5kLnB1c2godGhpcy5zb3VyY2VUb2tlbik6ZS5lbmQ9W3RoaXMuc291cmNlVG9rZW5dLHRoaXMudHlwZT09PSJuZXdsaW5lIiYmKHlpZWxkKnRoaXMucG9wKCkpfX19fSk7ZnVuY3Rpb24gekR0KHQpe2xldCBlPXQucHJldHR5RXJyb3JzIT09ITE7cmV0dXJue2xpbmVDb3VudGVyOnQubGluZUNvdW50ZXJ8fGUmJm5ldyBTdXx8bnVsbCxwcmV0dHlFcnJvcnM6ZX19ZnVuY3Rpb24gWm9lKHQsZT17fSl7bGV0e2xpbmVDb3VudGVyOnIscHJldHR5RXJyb3JzOmF9PXpEdChlKSxzPW5ldyB0NChyPy5hZGROZXdMaW5lKSxuPW5ldyBKZChlKSxvPUFycmF5LmZyb20obi5jb21wb3NlKHMucGFyc2UodCkpKTtpZihhJiZyKWZvcihsZXQgbCBvZiBvKWwuZXJyb3JzLmZvckVhY2goWGIodCxyKSksbC53YXJuaW5ncy5mb3JFYWNoKFhiKHQscikpO3JldHVybiBvLmxlbmd0aD4wP286T2JqZWN0LmFzc2lnbihbXSx7ZW1wdHk6ITB9LG4uc3RyZWFtSW5mbygpKX1mdW5jdGlvbiBnTSh0LGU9e30pe2xldHtsaW5lQ291bnRlcjpyLHByZXR0eUVycm9yczphfT16RHQoZSkscz1uZXcgdDQocj8uYWRkTmV3TGluZSksbj1uZXcgSmQoZSksbz1udWxsO2ZvcihsZXQgbCBvZiBuLmNvbXBvc2Uocy5wYXJzZSh0KSwhMCx0Lmxlbmd0aCkpaWYoIW8pbz1sO2Vsc2UgaWYoby5vcHRpb25zLmxvZ0xldmVsIT09InNpbGVudCIpe28uZXJyb3JzLnB1c2gobmV3IElvKGwucmFuZ2Uuc2xpY2UoMCwyKSwiTVVMVElQTEVfRE9DUyIsIlNvdXJjZSBjb250YWlucyBtdWx0aXBsZSBkb2N1bWVudHM7IHBsZWFzZSB1c2UgWUFNTC5wYXJzZUFsbERvY3VtZW50cygpIikpO2JyZWFrfXJldHVybiBhJiZyJiYoby5lcnJvcnMuZm9yRWFjaChYYih0LHIpKSxvLndhcm5pbmdzLmZvckVhY2goWGIodCxyKSkpLG99ZnVuY3Rpb24gUW9lKHQsZSxyKXtsZXQgYTt0eXBlb2YgZT09ImZ1bmN0aW9uIj9hPWU6cj09PXZvaWQgMCYmZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYocj1lKTtsZXQgcz1nTSh0LHIpO2lmKCFzKXJldHVybiBudWxsO2lmKHMud2FybmluZ3MuZm9yRWFjaChuPT5HUyhzLm9wdGlvbnMubG9nTGV2ZWwsbikpLHMuZXJyb3JzLmxlbmd0aD4wKXtpZihzLm9wdGlvbnMubG9nTGV2ZWwhPT0ic2lsZW50Iil0aHJvdyBzLmVycm9yc1swXTtzLmVycm9ycz1bXX1yZXR1cm4gcy50b0pTKE9iamVjdC5hc3NpZ24oe3Jldml2ZXI6YX0scikpfWZ1bmN0aW9uIFhvZSh0LGUscil7bGV0IGE9bnVsbDtpZih0eXBlb2YgZT09ImZ1bmN0aW9uInx8QXJyYXkuaXNBcnJheShlKT9hPWU6cj09PXZvaWQgMCYmZSYmKHI9ZSksdHlwZW9mIHI9PSJzdHJpbmciJiYocj1yLmxlbmd0aCksdHlwZW9mIHI9PSJudW1iZXIiKXtsZXQgcz1NYXRoLnJvdW5kKHIpO3I9czwxP3ZvaWQgMDpzPjg/e2luZGVudDo4fTp7aW5kZW50OnN9fWlmKHQ9PT12b2lkIDApe2xldHtrZWVwVW5kZWZpbmVkOnN9PXI/P2U/P3t9O2lmKCFzKXJldHVybn1yZXR1cm4geDEodCkmJiFhP3QudG9TdHJpbmcocik6bmV3IEVsKHQsYSxyKS50b1N0cmluZyhyKX12YXIgX0R0PXUoKCk9Pnt2eGUoKTtvTSgpO2xNKCk7RWJlKCk7ZGEoKTtUeGUoKTtMeGUoKTtpKHpEdCwicGFyc2VPcHRpb25zIik7aShab2UsInBhcnNlQWxsRG9jdW1lbnRzIik7aShnTSwicGFyc2VEb2N1bWVudCIpO2koUW9lLCJwYXJzZSIpO2koWG9lLCJzdHJpbmdpZnkiKX0pO3ZhciBEeGU9e307VmUoRHhlLHtBbGlhczooKT0+TGwsQ1NUOigpPT5tTSxDb21wb3NlcjooKT0+SmQsRG9jdW1lbnQ6KCk9PkVsLExleGVyOigpPT5rdSxMaW5lQ291bnRlcjooKT0+U3UsUGFpcjooKT0+bmksUGFyc2VyOigpPT50NCxTY2FsYXI6KCk9PlN0LFNjaGVtYTooKT0+dnUsWUFNTEVycm9yOigpPT55dSxZQU1MTWFwOigpPT54aSxZQU1MUGFyc2VFcnJvcjooKT0+SW8sWUFNTFNlcTooKT0+cXMsWUFNTFdhcm5pbmc6KCk9Pnd1LGlzQWxpYXM6KCk9PmIxLGlzQ29sbGVjdGlvbjooKT0+Y2EsaXNEb2N1bWVudDooKT0+eDEsaXNNYXA6KCk9PnYxLGlzTm9kZTooKT0+UHIsaXNQYWlyOigpPT5fcixpc1NjYWxhcjooKT0+dXIsaXNTZXE6KCk9PnkxLHBhcnNlOigpPT5Rb2UscGFyc2VBbGxEb2N1bWVudHM6KCk9PlpvZSxwYXJzZURvY3VtZW50OigpPT5nTSxzdHJpbmdpZnk6KCk9PlhvZSx2aXNpdDooKT0+ajEsdmlzaXRBc3luYzooKT0+ZGh9KTt2YXIgJHhlPXUoKCk9Pnt2eGUoKTtvTSgpO2l4ZSgpO2xNKCk7UlMoKTtkYSgpO211KCk7dnMoKTtndSgpO2J1KCk7R29lKCk7X3hlKCk7VHhlKCk7THhlKCk7X0R0KCk7TlMoKX0pO3ZhciB4aD17fTtWZSh4aCx7QWxpYXM6KCk9PkxsLENTVDooKT0+bU0sQ29tcG9zZXI6KCk9PkpkLERvY3VtZW50OigpPT5FbCxMZXhlcjooKT0+a3UsTGluZUNvdW50ZXI6KCk9PlN1LFBhaXI6KCk9Pm5pLFBhcnNlcjooKT0+dDQsU2NhbGFyOigpPT5TdCxTY2hlbWE6KCk9PnZ1LFlBTUxFcnJvcjooKT0+eXUsWUFNTE1hcDooKT0+eGksWUFNTFBhcnNlRXJyb3I6KCk9PklvLFlBTUxTZXE6KCk9PnFzLFlBTUxXYXJuaW5nOigpPT53dSxkZWZhdWx0OigpPT53dWEsaXNBbGlhczooKT0+YjEsaXNDb2xsZWN0aW9uOigpPT5jYSxpc0RvY3VtZW50OigpPT54MSxpc01hcDooKT0+djEsaXNOb2RlOigpPT5Qcixpc1BhaXI6KCk9Pl9yLGlzU2NhbGFyOigpPT51cixpc1NlcTooKT0+eTEscGFyc2U6KCk9PlFvZSxwYXJzZUFsbERvY3VtZW50czooKT0+Wm9lLHBhcnNlRG9jdW1lbnQ6KCk9PmdNLHN0cmluZ2lmeTooKT0+WG9lLHZpc2l0OigpPT5qMSx2aXNpdEFzeW5jOigpPT5kaH0pO3ZhciB3dWEsVER0PXUoKCk9PnskeGUoKTskeGUoKTt3dWE9RHhlfSk7dmFyIExEdD11KCgpPT57VER0KCl9KTt2YXIgYk09e307VmUoYk0se2dldFlhbWxEb2NGcm9tU3RyaW5nOigpPT5DdWEsb2JqZWN0VG9ZYW1sU3RyaW5nOigpPT5NdWEseWFtbFN0cmluZ1RvT2JqZWN0OigpPT5TdWF9KTt2YXIgU3VhLE11YSxDdWEsRER0PXUoKCk9PntMRHQoKTtTdWE9aShhc3luYyB0PT54aC5wYXJzZSh0KSwieWFtbFN0cmluZ1RvT2JqZWN0IiksTXVhPWkoYXN5bmMgdD0+eGguc3RyaW5naWZ5KHQpLCJvYmplY3RUb1lhbWxTdHJpbmciKSxDdWE9aShhc3luYyB0PT54aC5wYXJzZURvY3VtZW50KHQpLCJnZXRZYW1sRG9jRnJvbVN0cmluZyIpfSk7ZnVuY3Rpb24gQXhlKHQpe2lmKHQpdGhyb3cgdH12YXIgJER0PXUoKCk9PntpKEF4ZSwiYmFpbCIpfSk7dmFyIEJEdD1OdCgoa1ZpLEZEdCk9PnsidXNlIHN0cmljdCI7dmFyIEpvZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEFEdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLEVEdD1PYmplY3QuZGVmaW5lUHJvcGVydHksSUR0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsUER0PWkoZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBBcnJheS5pc0FycmF5PT0iZnVuY3Rpb24iP0FycmF5LmlzQXJyYXkoZSk6QUR0LmNhbGwoZSk9PT0iW29iamVjdCBBcnJheV0ifSwiaXNBcnJheSIpLE5EdD1pKGZ1bmN0aW9uKGUpe2lmKCFlfHxBRHQuY2FsbChlKSE9PSJbb2JqZWN0IE9iamVjdF0iKXJldHVybiExO3ZhciByPUpvZS5jYWxsKGUsImNvbnN0cnVjdG9yIiksYT1lLmNvbnN0cnVjdG9yJiZlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSYmSm9lLmNhbGwoZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKTtpZihlLmNvbnN0cnVjdG9yJiYhciYmIWEpcmV0dXJuITE7dmFyIHM7Zm9yKHMgaW4gZSk7cmV0dXJuIHR5cGVvZiBzPiJ1Inx8Sm9lLmNhbGwoZSxzKX0sImlzUGxhaW5PYmplY3QiKSxPRHQ9aShmdW5jdGlvbihlLHIpe0VEdCYmci5uYW1lPT09Il9fcHJvdG9fXyI/RUR0KGUsci5uYW1lLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyLm5ld1ZhbHVlLHdyaXRhYmxlOiEwfSk6ZVtyLm5hbWVdPXIubmV3VmFsdWV9LCJzZXRQcm9wZXJ0eSIpLFJEdD1pKGZ1bmN0aW9uKGUscil7aWYocj09PSJfX3Byb3RvX18iKWlmKEpvZS5jYWxsKGUscikpe2lmKElEdClyZXR1cm4gSUR0KGUscikudmFsdWV9ZWxzZSByZXR1cm47cmV0dXJuIGVbcl19LCJnZXRQcm9wZXJ0eSIpO0ZEdC5leHBvcnRzPWkoZnVuY3Rpb24gdCgpe3ZhciBlLHIsYSxzLG4sbyxsPWFyZ3VtZW50c1swXSxjPTEsZD1hcmd1bWVudHMubGVuZ3RoLGY9ITE7Zm9yKHR5cGVvZiBsPT0iYm9vbGVhbiImJihmPWwsbD1hcmd1bWVudHNbMV18fHt9LGM9MiksKGw9PW51bGx8fHR5cGVvZiBsIT0ib2JqZWN0IiYmdHlwZW9mIGwhPSJmdW5jdGlvbiIpJiYobD17fSk7YzxkOysrYylpZihlPWFyZ3VtZW50c1tjXSxlIT1udWxsKWZvcihyIGluIGUpYT1SRHQobCxyKSxzPVJEdChlLHIpLGwhPT1zJiYoZiYmcyYmKE5EdChzKXx8KG49UER0KHMpKSk/KG4/KG49ITEsbz1hJiZQRHQoYSk/YTpbXSk6bz1hJiZORHQoYSk/YTp7fSxPRHQobCx7bmFtZTpyLG5ld1ZhbHVlOnQoZixvLHMpfSkpOnR5cGVvZiBzPCJ1IiYmT0R0KGwse25hbWU6cixuZXdWYWx1ZTpzfSkpO3JldHVybiBsfSwiZXh0ZW5kIil9KTt2YXIgQ3U9dSgoKT0+e30pO2Z1bmN0aW9uIHhNKHQpe2lmKHR5cGVvZiB0IT0ib2JqZWN0Inx8dD09PW51bGwpcmV0dXJuITE7bGV0IGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO3JldHVybihlPT09bnVsbHx8ZT09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiB0KSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gdCl9dmFyIEhEdD11KCgpPT57aSh4TSwiaXNQbGFpbk9iamVjdCIpfSk7ZnVuY3Rpb24gRXhlKCl7bGV0IHQ9W10sZT17cnVuOnIsdXNlOmF9O3JldHVybiBlO2Z1bmN0aW9uIHIoLi4ucyl7bGV0IG49LTEsbz1zLnBvcCgpO2lmKHR5cGVvZiBvIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uIGFzIGxhc3QgYXJndW1lbnQsIG5vdCAiK28pO2wobnVsbCwuLi5zKTtmdW5jdGlvbiBsKGMsLi4uZCl7bGV0IGY9dFsrK25dLHA9LTE7aWYoYyl7byhjKTtyZXR1cm59Zm9yKDsrK3A8cy5sZW5ndGg7KShkW3BdPT09bnVsbHx8ZFtwXT09PXZvaWQgMCkmJihkW3BdPXNbcF0pO3M9ZCxmP3FEdChmLGwpKC4uLmQpOm8obnVsbCwuLi5kKX1pKGwsIm5leHQiKX1mdW5jdGlvbiBhKHMpe2lmKHR5cGVvZiBzIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGBtaWRkZWx3YXJlYCB0byBiZSBhIGZ1bmN0aW9uLCBub3QgIitzKTtyZXR1cm4gdC5wdXNoKHMpLGV9fWZ1bmN0aW9uIHFEdCh0LGUpe2xldCByO3JldHVybiBhO2Z1bmN0aW9uIGEoLi4ubyl7bGV0IGw9dC5sZW5ndGg+by5sZW5ndGgsYztsJiZvLnB1c2gocyk7dHJ5e2M9dC5hcHBseSh0aGlzLG8pfWNhdGNoKGQpe2xldCBmPWQ7aWYobCYmcil0aHJvdyBmO3JldHVybiBzKGYpfWx8fChjJiZjLnRoZW4mJnR5cGVvZiBjLnRoZW49PSJmdW5jdGlvbiI/Yy50aGVuKG4scyk6YyBpbnN0YW5jZW9mIEVycm9yP3MoYyk6bihjKSl9ZnVuY3Rpb24gcyhvLC4uLmwpe3J8fChyPSEwLGUobywuLi5sKSl9ZnVuY3Rpb24gbihvKXtzKG51bGwsbyl9fXZhciBWRHQ9dSgoKT0+e2koRXhlLCJ0cm91Z2giKTtpKHFEdCwid3JhcCIpfSk7dmFyIGpEdD11KCgpPT57VkR0KCl9KTtmdW5jdGlvbiB6dSh0KXtyZXR1cm4hdHx8dHlwZW9mIHQhPSJvYmplY3QiPyIiOiJwb3NpdGlvbiJpbiB0fHwidHlwZSJpbiB0P1VEdCh0LnBvc2l0aW9uKToic3RhcnQiaW4gdHx8ImVuZCJpbiB0P1VEdCh0KToibGluZSJpbiB0fHwiY29sdW1uImluIHQ/SXhlKHQpOiIifWZ1bmN0aW9uIEl4ZSh0KXtyZXR1cm4gV0R0KHQmJnQubGluZSkrIjoiK1dEdCh0JiZ0LmNvbHVtbil9ZnVuY3Rpb24gVUR0KHQpe3JldHVybiBJeGUodCYmdC5zdGFydCkrIi0iK0l4ZSh0JiZ0LmVuZCl9ZnVuY3Rpb24gV0R0KHQpe3JldHVybiB0JiZ0eXBlb2YgdD09Im51bWJlciI/dDoxfXZhciBHRHQ9dSgoKT0+e2koenUsInN0cmluZ2lmeVBvc2l0aW9uIik7aShJeGUsInBvaW50Iik7aShVRHQsInBvc2l0aW9uIik7aShXRHQsImluZGV4Iil9KTt2YXIgUHhlPXUoKCk9PntHRHQoKX0pO3ZhciB1bixZRHQ9dSgoKT0+e1B4ZSgpO3VuPWNsYXNzIGV4dGVuZHMgRXJyb3J7c3RhdGlje2kodGhpcywiVkZpbGVNZXNzYWdlIil9Y29uc3RydWN0b3IoZSxyLGEpe3N1cGVyKCksdHlwZW9mIHI9PSJzdHJpbmciJiYoYT1yLHI9dm9pZCAwKTtsZXQgcz0iIixuPXt9LG89ITE7aWYociYmKCJsaW5lImluIHImJiJjb2x1bW4iaW4gcj9uPXtwbGFjZTpyfToic3RhcnQiaW4gciYmImVuZCJpbiByP249e3BsYWNlOnJ9OiJ0eXBlImluIHI/bj17YW5jZXN0b3JzOltyXSxwbGFjZTpyLnBvc2l0aW9ufTpuPXsuLi5yfSksdHlwZW9mIGU9PSJzdHJpbmciP3M9ZTohbi5jYXVzZSYmZSYmKG89ITAscz1lLm1lc3NhZ2Usbi5jYXVzZT1lKSwhbi5ydWxlSWQmJiFuLnNvdXJjZSYmdHlwZW9mIGE9PSJzdHJpbmciKXtsZXQgYz1hLmluZGV4T2YoIjoiKTtjPT09LTE/bi5ydWxlSWQ9YToobi5zb3VyY2U9YS5zbGljZSgwLGMpLG4ucnVsZUlkPWEuc2xpY2UoYysxKSl9aWYoIW4ucGxhY2UmJm4uYW5jZXN0b3JzJiZuLmFuY2VzdG9ycyl7bGV0IGM9bi5hbmNlc3RvcnNbbi5hbmNlc3RvcnMubGVuZ3RoLTFdO2MmJihuLnBsYWNlPWMucG9zaXRpb24pfWxldCBsPW4ucGxhY2UmJiJzdGFydCJpbiBuLnBsYWNlP24ucGxhY2Uuc3RhcnQ6bi5wbGFjZTt0aGlzLmFuY2VzdG9ycz1uLmFuY2VzdG9yc3x8dm9pZCAwLHRoaXMuY2F1c2U9bi5jYXVzZXx8dm9pZCAwLHRoaXMuY29sdW1uPWw/bC5jb2x1bW46dm9pZCAwLHRoaXMuZmF0YWw9dm9pZCAwLHRoaXMuZmlsZT0iIix0aGlzLm1lc3NhZ2U9cyx0aGlzLmxpbmU9bD9sLmxpbmU6dm9pZCAwLHRoaXMubmFtZT16dShuLnBsYWNlKXx8IjE6MSIsdGhpcy5wbGFjZT1uLnBsYWNlfHx2b2lkIDAsdGhpcy5yZWFzb249dGhpcy5tZXNzYWdlLHRoaXMucnVsZUlkPW4ucnVsZUlkfHx2b2lkIDAsdGhpcy5zb3VyY2U9bi5zb3VyY2V8fHZvaWQgMCx0aGlzLnN0YWNrPW8mJm4uY2F1c2UmJnR5cGVvZiBuLmNhdXNlLnN0YWNrPT0ic3RyaW5nIj9uLmNhdXNlLnN0YWNrOiIiLHRoaXMuYWN0dWFsPXZvaWQgMCx0aGlzLmV4cGVjdGVkPXZvaWQgMCx0aGlzLm5vdGU9dm9pZCAwLHRoaXMudXJsPXZvaWQgMH19O3VuLnByb3RvdHlwZS5maWxlPSIiLHVuLnByb3RvdHlwZS5uYW1lPSIiLHVuLnByb3RvdHlwZS5yZWFzb249IiIsdW4ucHJvdG90eXBlLm1lc3NhZ2U9IiIsdW4ucHJvdG90eXBlLnN0YWNrPSIiLHVuLnByb3RvdHlwZS5jb2x1bW49dm9pZCAwLHVuLnByb3RvdHlwZS5saW5lPXZvaWQgMCx1bi5wcm90b3R5cGUuYW5jZXN0b3JzPXZvaWQgMCx1bi5wcm90b3R5cGUuY2F1c2U9dm9pZCAwLHVuLnByb3RvdHlwZS5mYXRhbD12b2lkIDAsdW4ucHJvdG90eXBlLnBsYWNlPXZvaWQgMCx1bi5wcm90b3R5cGUucnVsZUlkPXZvaWQgMCx1bi5wcm90b3R5cGUuc291cmNlPXZvaWQgMH0pO3ZhciBLRHQ9dSgoKT0+e1lEdCgpfSk7ZnVuY3Rpb24genVhKHQsZSl7aWYoZSE9PXZvaWQgMCYmdHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoJyJleHQiIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKTt2TSh0KTtsZXQgcj0wLGE9LTEscz10Lmxlbmd0aCxuO2lmKGU9PT12b2lkIDB8fGUubGVuZ3RoPT09MHx8ZS5sZW5ndGg+dC5sZW5ndGgpe2Zvcig7cy0tOylpZih0LmNvZGVQb2ludEF0KHMpPT09NDcpe2lmKG4pe3I9cysxO2JyZWFrfX1lbHNlIGE8MCYmKG49ITAsYT1zKzEpO3JldHVybiBhPDA/IiI6dC5zbGljZShyLGEpfWlmKGU9PT10KXJldHVybiIiO2xldCBvPS0xLGw9ZS5sZW5ndGgtMTtmb3IoO3MtLTspaWYodC5jb2RlUG9pbnRBdChzKT09PTQ3KXtpZihuKXtyPXMrMTticmVha319ZWxzZSBvPDAmJihuPSEwLG89cysxKSxsPi0xJiYodC5jb2RlUG9pbnRBdChzKT09PWUuY29kZVBvaW50QXQobC0tKT9sPDAmJihhPXMpOihsPS0xLGE9bykpO3JldHVybiByPT09YT9hPW86YTwwJiYoYT10Lmxlbmd0aCksdC5zbGljZShyLGEpfWZ1bmN0aW9uIF91YSh0KXtpZih2TSh0KSx0Lmxlbmd0aD09PTApcmV0dXJuIi4iO2xldCBlPS0xLHI9dC5sZW5ndGgsYTtmb3IoOy0tcjspaWYodC5jb2RlUG9pbnRBdChyKT09PTQ3KXtpZihhKXtlPXI7YnJlYWt9fWVsc2UgYXx8KGE9ITApO3JldHVybiBlPDA/dC5jb2RlUG9pbnRBdCgwKT09PTQ3PyIvIjoiLiI6ZT09PTEmJnQuY29kZVBvaW50QXQoMCk9PT00Nz8iLy8iOnQuc2xpY2UoMCxlKX1mdW5jdGlvbiBUdWEodCl7dk0odCk7bGV0IGU9dC5sZW5ndGgscj0tMSxhPTAscz0tMSxuPTAsbztmb3IoO2UtLTspe2xldCBsPXQuY29kZVBvaW50QXQoZSk7aWYobD09PTQ3KXtpZihvKXthPWUrMTticmVha31jb250aW51ZX1yPDAmJihvPSEwLHI9ZSsxKSxsPT09NDY/czwwP3M9ZTpuIT09MSYmKG49MSk6cz4tMSYmKG49LTEpfXJldHVybiBzPDB8fHI8MHx8bj09PTB8fG49PT0xJiZzPT09ci0xJiZzPT09YSsxPyIiOnQuc2xpY2UocyxyKX1mdW5jdGlvbiBMdWEoLi4udCl7bGV0IGU9LTEscjtmb3IoOysrZTx0Lmxlbmd0aDspdk0odFtlXSksdFtlXSYmKHI9cj09PXZvaWQgMD90W2VdOnIrIi8iK3RbZV0pO3JldHVybiByPT09dm9pZCAwPyIuIjpEdWEocil9ZnVuY3Rpb24gRHVhKHQpe3ZNKHQpO2xldCBlPXQuY29kZVBvaW50QXQoMCk9PT00NyxyPSR1YSh0LCFlKTtyZXR1cm4gci5sZW5ndGg9PT0wJiYhZSYmKHI9Ii4iKSxyLmxlbmd0aD4wJiZ0LmNvZGVQb2ludEF0KHQubGVuZ3RoLTEpPT09NDcmJihyKz0iLyIpLGU/Ii8iK3I6cn1mdW5jdGlvbiAkdWEodCxlKXtsZXQgcj0iIixhPTAscz0tMSxuPTAsbz0tMSxsLGM7Zm9yKDsrK288PXQubGVuZ3RoOyl7aWYobzx0Lmxlbmd0aClsPXQuY29kZVBvaW50QXQobyk7ZWxzZXtpZihsPT09NDcpYnJlYWs7bD00N31pZihsPT09NDcpe2lmKCEocz09PW8tMXx8bj09PTEpKWlmKHMhPT1vLTEmJm49PT0yKXtpZihyLmxlbmd0aDwyfHxhIT09Mnx8ci5jb2RlUG9pbnRBdChyLmxlbmd0aC0xKSE9PTQ2fHxyLmNvZGVQb2ludEF0KHIubGVuZ3RoLTIpIT09NDYpe2lmKHIubGVuZ3RoPjIpe2lmKGM9ci5sYXN0SW5kZXhPZigiLyIpLGMhPT1yLmxlbmd0aC0xKXtjPDA/KHI9IiIsYT0wKToocj1yLnNsaWNlKDAsYyksYT1yLmxlbmd0aC0xLXIubGFzdEluZGV4T2YoIi8iKSkscz1vLG49MDtjb250aW51ZX19ZWxzZSBpZihyLmxlbmd0aD4wKXtyPSIiLGE9MCxzPW8sbj0wO2NvbnRpbnVlfX1lJiYocj1yLmxlbmd0aD4wP3IrIi8uLiI6Ii4uIixhPTIpfWVsc2Ugci5sZW5ndGg+MD9yKz0iLyIrdC5zbGljZShzKzEsbyk6cj10LnNsaWNlKHMrMSxvKSxhPW8tcy0xO3M9byxuPTB9ZWxzZSBsPT09NDYmJm4+LTE/bisrOm49LTF9cmV0dXJuIHJ9ZnVuY3Rpb24gdk0odCl7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhdGggbXVzdCBiZSBhIHN0cmluZy4gUmVjZWl2ZWQgIitKU09OLnN0cmluZ2lmeSh0KSl9dmFyIEYyLFpEdD11KCgpPT57RjI9e2Jhc2VuYW1lOnp1YSxkaXJuYW1lOl91YSxleHRuYW1lOlR1YSxqb2luOkx1YSxzZXA6Ii8ifTtpKHp1YSwiYmFzZW5hbWUiKTtpKF91YSwiZGlybmFtZSIpO2koVHVhLCJleHRuYW1lIik7aShMdWEsImpvaW4iKTtpKER1YSwibm9ybWFsaXplIik7aSgkdWEsIm5vcm1hbGl6ZVN0cmluZyIpO2kodk0sImFzc2VydFBhdGgiKX0pO2Z1bmN0aW9uIEF1YSgpe3JldHVybiIvIn12YXIgUUR0LFhEdD11KCgpPT57UUR0PXtjd2Q6QXVhfTtpKEF1YSwiY3dkIil9KTtmdW5jdGlvbiBzeCh0KXtyZXR1cm4hISh0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYiaHJlZiJpbiB0JiZ0LmhyZWYmJiJwcm90b2NvbCJpbiB0JiZ0LnByb3RvY29sJiZ0LmF1dGg9PT12b2lkIDApfXZhciBOeGU9dSgoKT0+e2koc3gsImlzVXJsIil9KTtmdW5jdGlvbiBKRHQodCl7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXQ9bmV3IFVSTCh0KTtlbHNlIGlmKCFzeCh0KSl7bGV0IGU9bmV3IFR5cGVFcnJvcignVGhlICJwYXRoIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIGFuIGluc3RhbmNlIG9mIFVSTC4gUmVjZWl2ZWQgYCcrdCsiYCIpO3Rocm93IGUuY29kZT0iRVJSX0lOVkFMSURfQVJHX1RZUEUiLGV9aWYodC5wcm90b2NvbCE9PSJmaWxlOiIpe2xldCBlPW5ldyBUeXBlRXJyb3IoIlRoZSBVUkwgbXVzdCBiZSBvZiBzY2hlbWUgZmlsZSIpO3Rocm93IGUuY29kZT0iRVJSX0lOVkFMSURfVVJMX1NDSEVNRSIsZX1yZXR1cm4gRXVhKHQpfWZ1bmN0aW9uIEV1YSh0KXtpZih0Lmhvc3RuYW1lIT09IiIpe2xldCBhPW5ldyBUeXBlRXJyb3IoJ0ZpbGUgVVJMIGhvc3QgbXVzdCBiZSAibG9jYWxob3N0IiBvciBlbXB0eSBvbiBkYXJ3aW4nKTt0aHJvdyBhLmNvZGU9IkVSUl9JTlZBTElEX0ZJTEVfVVJMX0hPU1QiLGF9bGV0IGU9dC5wYXRobmFtZSxyPS0xO2Zvcig7KytyPGUubGVuZ3RoOylpZihlLmNvZGVQb2ludEF0KHIpPT09MzcmJmUuY29kZVBvaW50QXQocisxKT09PTUwKXtsZXQgYT1lLmNvZGVQb2ludEF0KHIrMik7aWYoYT09PTcwfHxhPT09MTAyKXtsZXQgcz1uZXcgVHlwZUVycm9yKCJGaWxlIFVSTCBwYXRoIG11c3Qgbm90IGluY2x1ZGUgZW5jb2RlZCAvIGNoYXJhY3RlcnMiKTt0aHJvdyBzLmNvZGU9IkVSUl9JTlZBTElEX0ZJTEVfVVJMX1BBVEgiLHN9fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoZSl9dmFyIGUkdD11KCgpPT57TnhlKCk7TnhlKCk7aShKRHQsInVybFRvUGF0aCIpO2koRXVhLCJnZXRQYXRoRnJvbVVSTFBvc2l4Iil9KTtmdW5jdGlvbiBSeGUodCxlKXtpZih0JiZ0LmluY2x1ZGVzKEYyLnNlcCkpdGhyb3cgbmV3IEVycm9yKCJgIitlKyJgIGNhbm5vdCBiZSBhIHBhdGg6IGRpZCBub3QgZXhwZWN0IGAiK0YyLnNlcCsiYCIpfWZ1bmN0aW9uIEZ4ZSh0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiYCIrZSsiYCBjYW5ub3QgYmUgZW1wdHkiKX1mdW5jdGlvbiB0JHQodCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIlNldHRpbmcgYCIrZSsiYCByZXF1aXJlcyBgcGF0aGAgdG8gYmUgc2V0IHRvbyIpfWZ1bmN0aW9uIEl1YSh0KXtyZXR1cm4hISh0JiZ0eXBlb2YgdD09Im9iamVjdCImJiJieXRlTGVuZ3RoImluIHQmJiJieXRlT2Zmc2V0ImluIHQpfXZhciBPeGUseU0sciR0PXUoKCk9PntLRHQoKTtaRHQoKTtYRHQoKTtlJHQoKTtPeGU9WyJoaXN0b3J5IiwicGF0aCIsImJhc2VuYW1lIiwic3RlbSIsImV4dG5hbWUiLCJkaXJuYW1lIl0seU09Y2xhc3N7c3RhdGlje2kodGhpcywiVkZpbGUiKX1jb25zdHJ1Y3RvcihlKXtsZXQgcjtlP3N4KGUpP3I9e3BhdGg6ZX06dHlwZW9mIGU9PSJzdHJpbmcifHxJdWEoZSk/cj17dmFsdWU6ZX06cj1lOnI9e30sdGhpcy5jd2Q9ImN3ZCJpbiByPyIiOlFEdC5jd2QoKSx0aGlzLmRhdGE9e30sdGhpcy5oaXN0b3J5PVtdLHRoaXMubWVzc2FnZXM9W10sdGhpcy52YWx1ZSx0aGlzLm1hcCx0aGlzLnJlc3VsdCx0aGlzLnN0b3JlZDtsZXQgYT0tMTtmb3IoOysrYTxPeGUubGVuZ3RoOyl7bGV0IG49T3hlW2FdO24gaW4gciYmcltuXSE9PXZvaWQgMCYmcltuXSE9PW51bGwmJih0aGlzW25dPW49PT0iaGlzdG9yeSI/Wy4uLnJbbl1dOnJbbl0pfWxldCBzO2ZvcihzIGluIHIpT3hlLmluY2x1ZGVzKHMpfHwodGhpc1tzXT1yW3NdKX1nZXQgYmFzZW5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/RjIuYmFzZW5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGJhc2VuYW1lKGUpe0Z4ZShlLCJiYXNlbmFtZSIpLFJ4ZShlLCJiYXNlbmFtZSIpLHRoaXMucGF0aD1GMi5qb2luKHRoaXMuZGlybmFtZXx8IiIsZSl9Z2V0IGRpcm5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/RjIuZGlybmFtZSh0aGlzLnBhdGgpOnZvaWQgMH1zZXQgZGlybmFtZShlKXt0JHQodGhpcy5iYXNlbmFtZSwiZGlybmFtZSIpLHRoaXMucGF0aD1GMi5qb2luKGV8fCIiLHRoaXMuYmFzZW5hbWUpfWdldCBleHRuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP0YyLmV4dG5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGV4dG5hbWUoZSl7aWYoUnhlKGUsImV4dG5hbWUiKSx0JHQodGhpcy5kaXJuYW1lLCJleHRuYW1lIiksZSl7aWYoZS5jb2RlUG9pbnRBdCgwKSE9PTQ2KXRocm93IG5ldyBFcnJvcigiYGV4dG5hbWVgIG11c3Qgc3RhcnQgd2l0aCBgLmAiKTtpZihlLmluY2x1ZGVzKCIuIiwxKSl0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzIil9dGhpcy5wYXRoPUYyLmpvaW4odGhpcy5kaXJuYW1lLHRoaXMuc3RlbSsoZXx8IiIpKX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aC0xXX1zZXQgcGF0aChlKXtzeChlKSYmKGU9SkR0KGUpKSxGeGUoZSwicGF0aCIpLHRoaXMucGF0aCE9PWUmJnRoaXMuaGlzdG9yeS5wdXNoKGUpfWdldCBzdGVtKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP0YyLmJhc2VuYW1lKHRoaXMucGF0aCx0aGlzLmV4dG5hbWUpOnZvaWQgMH1zZXQgc3RlbShlKXtGeGUoZSwic3RlbSIpLFJ4ZShlLCJzdGVtIiksdGhpcy5wYXRoPUYyLmpvaW4odGhpcy5kaXJuYW1lfHwiIixlKyh0aGlzLmV4dG5hbWV8fCIiKSl9ZmFpbChlLHIsYSl7bGV0IHM9dGhpcy5tZXNzYWdlKGUscixhKTt0aHJvdyBzLmZhdGFsPSEwLHN9aW5mbyhlLHIsYSl7bGV0IHM9dGhpcy5tZXNzYWdlKGUscixhKTtyZXR1cm4gcy5mYXRhbD12b2lkIDAsc31tZXNzYWdlKGUscixhKXtsZXQgcz1uZXcgdW4oZSxyLGEpO3JldHVybiB0aGlzLnBhdGgmJihzLm5hbWU9dGhpcy5wYXRoKyI6IitzLm5hbWUscy5maWxlPXRoaXMucGF0aCkscy5mYXRhbD0hMSx0aGlzLm1lc3NhZ2VzLnB1c2gocyksc310b1N0cmluZyhlKXtyZXR1cm4gdGhpcy52YWx1ZT09PXZvaWQgMD8iIjp0eXBlb2YgdGhpcy52YWx1ZT09InN0cmluZyI/dGhpcy52YWx1ZTpuZXcgVGV4dERlY29kZXIoZXx8dm9pZCAwKS5kZWNvZGUodGhpcy52YWx1ZSl9fTtpKFJ4ZSwiYXNzZXJ0UGFydCIpO2koRnhlLCJhc3NlcnROb25FbXB0eSIpO2kodCR0LCJhc3NlcnRQYXRoIik7aShJdWEsImlzVWludDhBcnJheSIpfSk7dmFyIGEkdD11KCgpPT57ciR0KCl9KTt2YXIgaSR0LHMkdD11KCgpPT57aSR0PWkoKGZ1bmN0aW9uKHQpe2xldCBhPXRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlLHM9YVt0XSxuPWkoZnVuY3Rpb24oKXtyZXR1cm4gcy5hcHBseShuLGFyZ3VtZW50cyl9LCJhcHBseSIpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YobixhKSxufSksIkNhbGxhYmxlSW5zdGFuY2UiKX0pO2Z1bmN0aW9uIEh4ZSh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBgIit0KyJgIHdpdGhvdXQgYHBhcnNlcmAiKX1mdW5jdGlvbiBxeGUodCxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrdCsiYCB3aXRob3V0IGBjb21waWxlcmAiKX1mdW5jdGlvbiBWeGUodCxlKXtpZihlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNhbGwgYCIrdCsiYCBvbiBhIGZyb3plbiBwcm9jZXNzb3IuXG5DcmVhdGUgYSBuZXcgcHJvY2Vzc29yIGZpcnN0LCBieSBjYWxsaW5nIGl0OiB1c2UgYHByb2Nlc3NvcigpYCBpbnN0ZWFkIG9mIGBwcm9jZXNzb3JgLiIpfWZ1bmN0aW9uIG4kdCh0KXtpZigheE0odCl8fHR5cGVvZiB0LnR5cGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIG5vZGUsIGdvdCBgIit0KyJgIil9ZnVuY3Rpb24gbyR0KHQsZSxyKXtpZighcil0aHJvdyBuZXcgRXJyb3IoImAiK3QrImAgZmluaXNoZWQgYXN5bmMuIFVzZSBgIitlKyJgIGluc3RlYWQiKX1mdW5jdGlvbiBlMWUodCl7cmV0dXJuIE51YSh0KT90Om5ldyB5TSh0KX1mdW5jdGlvbiBOdWEodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYibWVzc2FnZSJpbiB0JiYibWVzc2FnZXMiaW4gdCl9ZnVuY3Rpb24gT3VhKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ8fFJ1YSh0KX1mdW5jdGlvbiBSdWEodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiB0JiYiYnl0ZU9mZnNldCJpbiB0KX12YXIgdDFlLFB1YSxCeGUsd00sbCR0PXUoKCk9PnskRHQoKTt0MWU9R2EoQkR0KCksMSk7Q3UoKTtIRHQoKTtqRHQoKTthJHQoKTtzJHQoKTtQdWE9e30uaGFzT3duUHJvcGVydHksQnhlPWNsYXNzIHQgZXh0ZW5kcyBpJHR7c3RhdGlje2kodGhpcywiUHJvY2Vzc29yIil9Y29uc3RydWN0b3IoKXtzdXBlcigiY29weSIpLHRoaXMuQ29tcGlsZXI9dm9pZCAwLHRoaXMuUGFyc2VyPXZvaWQgMCx0aGlzLmF0dGFjaGVycz1bXSx0aGlzLmNvbXBpbGVyPXZvaWQgMCx0aGlzLmZyZWV6ZUluZGV4PS0xLHRoaXMuZnJvemVuPXZvaWQgMCx0aGlzLm5hbWVzcGFjZT17fSx0aGlzLnBhcnNlcj12b2lkIDAsdGhpcy50cmFuc2Zvcm1lcnM9RXhlKCl9Y29weSgpe2xldCBlPW5ldyB0LHI9LTE7Zm9yKDsrK3I8dGhpcy5hdHRhY2hlcnMubGVuZ3RoOyl7bGV0IGE9dGhpcy5hdHRhY2hlcnNbcl07ZS51c2UoLi4uYSl9cmV0dXJuIGUuZGF0YSgoMCx0MWUuZGVmYXVsdCkoITAse30sdGhpcy5uYW1lc3BhY2UpKSxlfWRhdGEoZSxyKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP2FyZ3VtZW50cy5sZW5ndGg9PT0yPyhWeGUoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZVtlXT1yLHRoaXMpOlB1YS5jYWxsKHRoaXMubmFtZXNwYWNlLGUpJiZ0aGlzLm5hbWVzcGFjZVtlXXx8dm9pZCAwOmU/KFZ4ZSgiZGF0YSIsdGhpcy5mcm96ZW4pLHRoaXMubmFtZXNwYWNlPWUsdGhpcyk6dGhpcy5uYW1lc3BhY2V9ZnJlZXplKCl7aWYodGhpcy5mcm96ZW4pcmV0dXJuIHRoaXM7bGV0IGU9dGhpcztmb3IoOysrdGhpcy5mcmVlemVJbmRleDx0aGlzLmF0dGFjaGVycy5sZW5ndGg7KXtsZXRbciwuLi5hXT10aGlzLmF0dGFjaGVyc1t0aGlzLmZyZWV6ZUluZGV4XTtpZihhWzBdPT09ITEpY29udGludWU7YVswXT09PSEwJiYoYVswXT12b2lkIDApO2xldCBzPXIuY2FsbChlLC4uLmEpO3R5cGVvZiBzPT0iZnVuY3Rpb24iJiZ0aGlzLnRyYW5zZm9ybWVycy51c2Uocyl9cmV0dXJuIHRoaXMuZnJvemVuPSEwLHRoaXMuZnJlZXplSW5kZXg9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHRoaXN9cGFyc2UoZSl7dGhpcy5mcmVlemUoKTtsZXQgcj1lMWUoZSksYT10aGlzLnBhcnNlcnx8dGhpcy5QYXJzZXI7cmV0dXJuIEh4ZSgicGFyc2UiLGEpLGEoU3RyaW5nKHIpLHIpfXByb2Nlc3MoZSxyKXtsZXQgYT10aGlzO3JldHVybiB0aGlzLmZyZWV6ZSgpLEh4ZSgicHJvY2VzcyIsdGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyKSxxeGUoInByb2Nlc3MiLHRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXIpLHI/cyh2b2lkIDAscik6bmV3IFByb21pc2Uocyk7ZnVuY3Rpb24gcyhuLG8pe2xldCBsPWUxZShlKSxjPWEucGFyc2UobCk7YS5ydW4oYyxsLGZ1bmN0aW9uKGYscCxoKXtpZihmfHwhcHx8IWgpcmV0dXJuIGQoZik7bGV0IG09cCx2PWEuc3RyaW5naWZ5KG0saCk7T3VhKHYpP2gudmFsdWU9djpoLnJlc3VsdD12LGQoZixoKX0pO2Z1bmN0aW9uIGQoZixwKXtmfHwhcD9vKGYpOm4/bihwKTpyKHZvaWQgMCxwKX1pKGQsInJlYWxEb25lIil9aShzLCJleGVjdXRvciIpfXByb2Nlc3NTeW5jKGUpe2xldCByPSExLGE7cmV0dXJuIHRoaXMuZnJlZXplKCksSHhlKCJwcm9jZXNzU3luYyIsdGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyKSxxeGUoInByb2Nlc3NTeW5jIix0aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyKSx0aGlzLnByb2Nlc3MoZSxzKSxvJHQoInByb2Nlc3NTeW5jIiwicHJvY2VzcyIsciksYTtmdW5jdGlvbiBzKG4sbyl7cj0hMCxBeGUobiksYT1vfWkocywicmVhbERvbmUiKX1ydW4oZSxyLGEpe24kdChlKSx0aGlzLmZyZWV6ZSgpO2xldCBzPXRoaXMudHJhbnNmb3JtZXJzO3JldHVybiFhJiZ0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmKGE9cixyPXZvaWQgMCksYT9uKHZvaWQgMCxhKTpuZXcgUHJvbWlzZShuKTtmdW5jdGlvbiBuKG8sbCl7bGV0IGM9ZTFlKHIpO3MucnVuKGUsYyxkKTtmdW5jdGlvbiBkKGYscCxoKXtsZXQgbT1wfHxlO2Y/bChmKTpvP28obSk6YSh2b2lkIDAsbSxoKX1pKGQsInJlYWxEb25lIil9aShuLCJleGVjdXRvciIpfXJ1blN5bmMoZSxyKXtsZXQgYT0hMSxzO3JldHVybiB0aGlzLnJ1bihlLHIsbiksbyR0KCJydW5TeW5jIiwicnVuIixhKSxzO2Z1bmN0aW9uIG4obyxsKXtBeGUobykscz1sLGE9ITB9aShuLCJyZWFsRG9uZSIpfXN0cmluZ2lmeShlLHIpe3RoaXMuZnJlZXplKCk7bGV0IGE9ZTFlKHIpLHM9dGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlcjtyZXR1cm4gcXhlKCJzdHJpbmdpZnkiLHMpLG4kdChlKSxzKGUsYSl9dXNlKGUsLi4ucil7bGV0IGE9dGhpcy5hdHRhY2hlcnMscz10aGlzLm5hbWVzcGFjZTtpZihWeGUoInVzZSIsdGhpcy5mcm96ZW4pLGUhPW51bGwpaWYodHlwZW9mIGU9PSJmdW5jdGlvbiIpYyhlLHIpO2Vsc2UgaWYodHlwZW9mIGU9PSJvYmplY3QiKUFycmF5LmlzQXJyYXkoZSk/bChlKTpvKGUpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCIrZSsiYCIpO3JldHVybiB0aGlzO2Z1bmN0aW9uIG4oZCl7aWYodHlwZW9mIGQ9PSJmdW5jdGlvbiIpYyhkLFtdKTtlbHNlIGlmKHR5cGVvZiBkPT0ib2JqZWN0IilpZihBcnJheS5pc0FycmF5KGQpKXtsZXRbZiwuLi5wXT1kO2MoZixwKX1lbHNlIG8oZCk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgIitkKyJgIil9ZnVuY3Rpb24gbyhkKXtpZighKCJwbHVnaW5zImluIGQpJiYhKCJzZXR0aW5ncyJpbiBkKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSBidXQgcmVjZWl2ZWQgYW4gZW1wdHkgcHJlc2V0LCB3aGljaCBpcyBwcm9iYWJseSBhIG1pc3Rha2U6IHByZXNldHMgdHlwaWNhbGx5IGNvbWUgd2l0aCBgcGx1Z2luc2AgYW5kIHNvbWV0aW1lcyB3aXRoIGBzZXR0aW5nc2AsIGJ1dCB0aGlzIGhhcyBuZWl0aGVyIik7bChkLnBsdWdpbnMpLGQuc2V0dGluZ3MmJihzLnNldHRpbmdzPSgwLHQxZS5kZWZhdWx0KSghMCxzLnNldHRpbmdzLGQuc2V0dGluZ3MpKX1mdW5jdGlvbiBsKGQpe2xldCBmPS0xO2lmKGQhPW51bGwpaWYoQXJyYXkuaXNBcnJheShkKSlmb3IoOysrZjxkLmxlbmd0aDspe2xldCBwPWRbZl07bihwKX1lbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgbGlzdCBvZiBwbHVnaW5zLCBub3QgYCIrZCsiYCIpfWZ1bmN0aW9uIGMoZCxmKXtsZXQgcD0tMSxoPS0xO2Zvcig7KytwPGEubGVuZ3RoOylpZihhW3BdWzBdPT09ZCl7aD1wO2JyZWFrfWlmKGg9PT0tMSlhLnB1c2goW2QsLi4uZl0pO2Vsc2UgaWYoZi5sZW5ndGg+MCl7bGV0W20sLi4udl09ZixiPWFbaF1bMV07eE0oYikmJnhNKG0pJiYobT0oMCx0MWUuZGVmYXVsdCkoITAsYixtKSksYVtoXT1bZCxtLC4uLnZdfX19fSx3TT1uZXcgQnhlKCkuZnJlZXplKCk7aShIeGUsImFzc2VydFBhcnNlciIpO2kocXhlLCJhc3NlcnRDb21waWxlciIpO2koVnhlLCJhc3NlcnRVbmZyb3plbiIpO2kobiR0LCJhc3NlcnROb2RlIik7aShvJHQsImFzc2VydERvbmUiKTtpKGUxZSwidmZpbGUiKTtpKE51YSwibG9va3NMaWtlQVZGaWxlIik7aShPdWEsImxvb2tzTGlrZUFWYWx1ZSIpO2koUnVhLCJpc1VpbnQ4QXJyYXkiKX0pO3ZhciBjJHQ9dSgoKT0+e2wkdCgpfSk7ZnVuY3Rpb24gb3godCxlKXtsZXQgcj1TdHJpbmcodCk7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGNoYXJhY3RlciIpO2xldCBhPTAscz1yLmluZGV4T2YoZSk7Zm9yKDtzIT09LTE7KWErKyxzPXIuaW5kZXhPZihlLHMrZS5sZW5ndGgpO3JldHVybiBhfXZhciBqeGU9dSgoKT0+e2kob3gsImNjb3VudCIpfSk7ZnVuY3Rpb24gdmgodCl7cmV0dXJuIHQhPT1udWxsJiYodDwzMnx8dD09PTEyNyl9ZnVuY3Rpb24gZHQodCl7cmV0dXJuIHQhPT1udWxsJiZ0PC0yfWZ1bmN0aW9uIE5yKHQpe3JldHVybiB0IT09bnVsbCYmKHQ8MHx8dD09PTMyKX1mdW5jdGlvbiBPdCh0KXtyZXR1cm4gdD09PS0yfHx0PT09LTF8fHQ9PT0zMn1mdW5jdGlvbiBfdSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKHIpe3JldHVybiByIT09bnVsbCYmcj4tMSYmdC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUocikpfX12YXIgVnMsSWksZCR0LGtNLHUkdCxwJHQseWgsbTAsV3I9dSgoKT0+e1ZzPV91KC9bQS1aYS16XS8pLElpPV91KC9bXGRBLVphLXpdLyksZCR0PV91KC9bIy0nKitcLS05PT9BLVpeLX5dLyk7aSh2aCwiYXNjaWlDb250cm9sIik7a009X3UoL1xkLyksdSR0PV91KC9bXGRBLUZhLWZdLykscCR0PV91KC9bIS0vOi1AWy1gey1+XS8pO2koZHQsIm1hcmtkb3duTGluZUVuZGluZyIpO2koTnIsIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiKTtpKE90LCJtYXJrZG93blNwYWNlIik7eWg9X3UoL1xwe1B9fFxwe1N9L3UpLG0wPV91KC9ccy8pO2koX3UsInJlZ2V4Q2hlY2siKX0pO2Z1bmN0aW9uIEZ1YSh0KXtsZXQgZT1bXSxyPS0xO2Zvcig7KytyPHQubGVuZ3RoOyllW3JdPXI0KHRbcl0pO3JldHVybiByMWUoYSk7ZnVuY3Rpb24gYSguLi5zKXtsZXQgbj0tMTtmb3IoOysrbjxlLmxlbmd0aDspaWYoZVtuXS5hcHBseSh0aGlzLHMpKXJldHVybiEwO3JldHVybiExfX1mdW5jdGlvbiBCdWEodCl7bGV0IGU9dDtyZXR1cm4gcjFlKHIpO2Z1bmN0aW9uIHIoYSl7bGV0IHM9YSxuO2ZvcihuIGluIHQpaWYoc1tuXSE9PWVbbl0pcmV0dXJuITE7cmV0dXJuITB9fWZ1bmN0aW9uIEh1YSh0KXtyZXR1cm4gcjFlKGUpO2Z1bmN0aW9uIGUocil7cmV0dXJuIHImJnIudHlwZT09PXR9fWZ1bmN0aW9uIHIxZSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKHIsYSxzKXtyZXR1cm4hIShmJHQocikmJnQuY2FsbCh0aGlzLHIsdHlwZW9mIGE9PSJudW1iZXIiP2E6dm9pZCAwLHN8fHZvaWQgMCkpfX1mdW5jdGlvbiBxdWEoKXtyZXR1cm4hMH1mdW5jdGlvbiBmJHQodCl7cmV0dXJuIHQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCImJiJ0eXBlImluIHR9dmFyIGgkdCxyNCxtJHQ9dSgoKT0+e2gkdD1pKChmdW5jdGlvbih0LGUscixhLHMpe2xldCBuPXI0KGUpO2lmKHIhPW51bGwmJih0eXBlb2YgciE9Im51bWJlciJ8fHI8MHx8cj09PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBwb3NpdGl2ZSBmaW5pdGUgaW5kZXgiKTtpZihhIT1udWxsJiYoIWgkdChhKXx8IWEuY2hpbGRyZW4pKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcGFyZW50IG5vZGUiKTtpZihhPT1udWxsIT0ocj09bnVsbCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBib3RoIHBhcmVudCBhbmQgaW5kZXgiKTtyZXR1cm4gZiR0KHQpP24uY2FsbChzLHQscixhKTohMX0pLCJpcyIpLHI0PWkoKGZ1bmN0aW9uKHQpe2lmKHQ9PW51bGwpcmV0dXJuIHF1YTtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIilyZXR1cm4gcjFlKHQpO2lmKHR5cGVvZiB0PT0ib2JqZWN0IilyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT9GdWEodCk6QnVhKHQpO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gSHVhKHQpO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgZnVuY3Rpb24sIHN0cmluZywgb3Igb2JqZWN0IGFzIHRlc3QiKX0pLCJjb252ZXJ0Iik7aShGdWEsImFueUZhY3RvcnkiKTtpKEJ1YSwicHJvcGVydGllc0ZhY3RvcnkiKTtpKEh1YSwidHlwZUZhY3RvcnkiKTtpKHIxZSwiY2FzdEZhY3RvcnkiKTtpKHF1YSwib2siKTtpKGYkdCwibG9va3NMaWtlQU5vZGUiKX0pO3ZhciBhMWU9dSgoKT0+e20kdCgpfSk7dmFyIGckdD11KCgpPT57fSk7ZnVuY3Rpb24gU00odCxlLHIsYSl7bGV0IHM7dHlwZW9mIGU9PSJmdW5jdGlvbiImJnR5cGVvZiByIT0iZnVuY3Rpb24iPyhhPXIscj1lKTpzPWU7bGV0IG49cjQocyksbz1hPy0xOjE7bCh0LHZvaWQgMCxbXSkoKTtmdW5jdGlvbiBsKGMsZCxmKXtsZXQgcD1jJiZ0eXBlb2YgYz09Im9iamVjdCI/Yzp7fTtpZih0eXBlb2YgcC50eXBlPT0ic3RyaW5nIil7bGV0IG09dHlwZW9mIHAudGFnTmFtZT09InN0cmluZyI/cC50YWdOYW1lOnR5cGVvZiBwLm5hbWU9PSJzdHJpbmciP3AubmFtZTp2b2lkIDA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGgsIm5hbWUiLHt2YWx1ZToibm9kZSAoIisoYy50eXBlKyhtPyI8IittKyI+IjoiIikpKyIpIn0pfXJldHVybiBoO2Z1bmN0aW9uIGgoKXtsZXQgbT1iJHQsdixiLGc7aWYoKCFlfHxuKGMsZCxmW2YubGVuZ3RoLTFdfHx2b2lkIDApKSYmKG09VnVhKHIoYyxmKSksbVswXT09PXdoKSlyZXR1cm4gbTtpZigiY2hpbGRyZW4iaW4gYyYmYy5jaGlsZHJlbil7bGV0IHk9YztpZih5LmNoaWxkcmVuJiZtWzBdIT09czFlKWZvcihiPShhP3kuY2hpbGRyZW4ubGVuZ3RoOi0xKStvLGc9Zi5jb25jYXQoeSk7Yj4tMSYmYjx5LmNoaWxkcmVuLmxlbmd0aDspe2xldCBrPXkuY2hpbGRyZW5bYl07aWYodj1sKGssYixnKSgpLHZbMF09PT13aClyZXR1cm4gdjtiPXR5cGVvZiB2WzFdPT0ibnVtYmVyIj92WzFdOmIrb319cmV0dXJuIG19fWkobCwiZmFjdG9yeSIpfWZ1bmN0aW9uIFZ1YSh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OnR5cGVvZiB0PT0ibnVtYmVyIj9baTFlLHRdOnQ9PW51bGw/YiR0Olt0XX12YXIgYiR0LGkxZSx3aCxzMWUseCR0PXUoKCk9PnthMWUoKTtnJHQoKTtiJHQ9W10saTFlPSEwLHdoPSExLHMxZT0ic2tpcCI7aShTTSwidmlzaXRQYXJlbnRzIik7aShWdWEsInRvUmVzdWx0Iil9KTt2YXIgbjFlPXUoKCk9Pnt4JHQoKX0pO2Z1bmN0aW9uIFV4ZSh0LGUscil7bGV0IHM9cjQoKHJ8fHt9KS5pZ25vcmV8fFtdKSxuPWp1YShlKSxvPS0xO2Zvcig7KytvPG4ubGVuZ3RoOylTTSh0LCJ0ZXh0IixsKTtmdW5jdGlvbiBsKGQsZil7bGV0IHA9LTEsaDtmb3IoOysrcDxmLmxlbmd0aDspe2xldCBtPWZbcF0sdj1oP2guY2hpbGRyZW46dm9pZCAwO2lmKHMobSx2P3YuaW5kZXhPZihtKTp2b2lkIDAsaCkpcmV0dXJuO2g9bX1pZihoKXJldHVybiBjKGQsZil9aShsLCJ2aXNpdG9yIik7ZnVuY3Rpb24gYyhkLGYpe2xldCBwPWZbZi5sZW5ndGgtMV0saD1uW29dWzBdLG09bltvXVsxXSx2PTAsZz1wLmNoaWxkcmVuLmluZGV4T2YoZCkseT0hMSxrPVtdO2gubGFzdEluZGV4PTA7bGV0IE09aC5leGVjKGQudmFsdWUpO2Zvcig7TTspe2xldCBOPU0uaW5kZXgsXz17aW5kZXg6TS5pbmRleCxpbnB1dDpNLmlucHV0LHN0YWNrOlsuLi5mLGRdfSxTPW0oLi4uTSxfKTtpZih0eXBlb2YgUz09InN0cmluZyImJihTPVMubGVuZ3RoPjA/e3R5cGU6InRleHQiLHZhbHVlOlN9OnZvaWQgMCksUz09PSExP2gubGFzdEluZGV4PU4rMToodiE9PU4mJmsucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6ZC52YWx1ZS5zbGljZSh2LE4pfSksQXJyYXkuaXNBcnJheShTKT9rLnB1c2goLi4uUyk6UyYmay5wdXNoKFMpLHY9TitNWzBdLmxlbmd0aCx5PSEwKSwhaC5nbG9iYWwpYnJlYWs7TT1oLmV4ZWMoZC52YWx1ZSl9cmV0dXJuIHk/KHY8ZC52YWx1ZS5sZW5ndGgmJmsucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6ZC52YWx1ZS5zbGljZSh2KX0pLHAuY2hpbGRyZW4uc3BsaWNlKGcsMSwuLi5rKSk6az1bZF0sZytrLmxlbmd0aH1pKGMsImhhbmRsZXIiKX1mdW5jdGlvbiBqdWEodCl7bGV0IGU9W107aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgZmluZCBhbmQgcmVwbGFjZSB0dXBsZSBvciBsaXN0IG9mIHR1cGxlcyIpO2xldCByPSF0WzBdfHxBcnJheS5pc0FycmF5KHRbMF0pP3Q6W3RdLGE9LTE7Zm9yKDsrK2E8ci5sZW5ndGg7KXtsZXQgcz1yW2FdO2UucHVzaChbVXVhKHNbMF0pLFd1YShzWzFdKV0pfXJldHVybiBlfWZ1bmN0aW9uIFV1YSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP25ldyBSZWdFeHAoVmYodCksImciKTp0fWZ1bmN0aW9uIFd1YSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpmdW5jdGlvbigpe3JldHVybiB0fX12YXIgdiR0PXUoKCk9PntEaWUoKTtuMWUoKTthMWUoKTtpKFV4ZSwiZmluZEFuZFJlcGxhY2UiKTtpKGp1YSwidG9QYWlycyIpO2koVXVhLCJ0b0V4cHJlc3Npb24iKTtpKFd1YSwidG9GdW5jdGlvbiIpfSk7dmFyIHkkdD11KCgpPT57diR0KCl9KTtmdW5jdGlvbiBLeGUoKXtyZXR1cm57dHJhbnNmb3JtczpbWHVhXSxlbnRlcjp7bGl0ZXJhbEF1dG9saW5rOkd1YSxsaXRlcmFsQXV0b2xpbmtFbWFpbDpZeGUsbGl0ZXJhbEF1dG9saW5rSHR0cDpZeGUsbGl0ZXJhbEF1dG9saW5rV3d3Oll4ZX0sZXhpdDp7bGl0ZXJhbEF1dG9saW5rOlF1YSxsaXRlcmFsQXV0b2xpbmtFbWFpbDpadWEsbGl0ZXJhbEF1dG9saW5rSHR0cDpZdWEsbGl0ZXJhbEF1dG9saW5rV3d3Okt1YX19fWZ1bmN0aW9uIFp4ZSgpe3JldHVybnt1bnNhZmU6W3tjaGFyYWN0ZXI6IkAiLGJlZm9yZToiWytcXC0uXFx3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6V3hlLG5vdEluQ29uc3RydWN0Okd4ZX0se2NoYXJhY3RlcjoiLiIsYmVmb3JlOiJbV3ddIixhZnRlcjoiW1xcLS5cXHddIixpbkNvbnN0cnVjdDpXeGUsbm90SW5Db25zdHJ1Y3Q6R3hlfSx7Y2hhcmFjdGVyOiI6IixiZWZvcmU6Iltwc10iLGFmdGVyOiJcXC8iLGluQ29uc3RydWN0Old4ZSxub3RJbkNvbnN0cnVjdDpHeGV9XX19ZnVuY3Rpb24gR3VhKHQpe3RoaXMuZW50ZXIoe3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOiIiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBZeGUodCl7dGhpcy5jb25maWcuZW50ZXIuYXV0b2xpbmtQcm90b2NvbC5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gWXVhKHQpe3RoaXMuY29uZmlnLmV4aXQuYXV0b2xpbmtQcm90b2NvbC5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gS3VhKHQpe3RoaXMuY29uZmlnLmV4aXQuZGF0YS5jYWxsKHRoaXMsdCk7bGV0IGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtlLnR5cGUsZS51cmw9Imh0dHA6Ly8iK3RoaXMuc2xpY2VTZXJpYWxpemUodCl9ZnVuY3Rpb24gWnVhKHQpe3RoaXMuY29uZmlnLmV4aXQuYXV0b2xpbmtFbWFpbC5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gUXVhKHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBYdWEodCl7VXhlKHQsW1svKGh0dHBzPzpcL1wvfHd3dyg/PVwuKSkoWy0uXHddKykoW14gXHRcclxuXSopL2dpLEp1YV0sWy8oPzw9Xnxcc3xccHtQfXxccHtTfSkoWy0uXHcrXSspQChbLVx3XSsoPzpcLlstXHddKykrKS9ndSxlcGFdXSx7aWdub3JlOlsibGluayIsImxpbmtSZWZlcmVuY2UiXX0pfWZ1bmN0aW9uIEp1YSh0LGUscixhLHMpe2xldCBuPSIiO2lmKCF3JHQocyl8fCgvXncvaS50ZXN0KGUpJiYocj1lK3IsZT0iIixuPSJodHRwOi8vIiksIXRwYShyKSkpcmV0dXJuITE7bGV0IG89cnBhKHIrYSk7aWYoIW9bMF0pcmV0dXJuITE7bGV0IGw9e3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOm4rZStvWzBdLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6ZStvWzBdfV19O3JldHVybiBvWzFdP1tsLHt0eXBlOiJ0ZXh0Iix2YWx1ZTpvWzFdfV06bH1mdW5jdGlvbiBlcGEodCxlLHIsYSl7cmV0dXJuIXckdChhLCEwKXx8L1stXGRfXSQvLnRlc3Qocik/ITE6e3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOiJtYWlsdG86IitlKyJAIityLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6ZSsiQCIrcn1dfX1mdW5jdGlvbiB0cGEodCl7bGV0IGU9dC5zcGxpdCgiLiIpO3JldHVybiEoZS5sZW5ndGg8Mnx8ZVtlLmxlbmd0aC0xXSYmKC9fLy50ZXN0KGVbZS5sZW5ndGgtMV0pfHwhL1thLXpBLVpcZF0vLnRlc3QoZVtlLmxlbmd0aC0xXSkpfHxlW2UubGVuZ3RoLTJdJiYoL18vLnRlc3QoZVtlLmxlbmd0aC0yXSl8fCEvW2EtekEtWlxkXS8udGVzdChlW2UubGVuZ3RoLTJdKSkpfWZ1bmN0aW9uIHJwYSh0KXtsZXQgZT0vWyEiJicpLC46Ozw+P1xdfV0rJC8uZXhlYyh0KTtpZighZSlyZXR1cm5bdCx2b2lkIDBdO3Q9dC5zbGljZSgwLGUuaW5kZXgpO2xldCByPWVbMF0sYT1yLmluZGV4T2YoIikiKSxzPW94KHQsIigiKSxuPW94KHQsIikiKTtmb3IoO2EhPT0tMSYmcz5uOyl0Kz1yLnNsaWNlKDAsYSsxKSxyPXIuc2xpY2UoYSsxKSxhPXIuaW5kZXhPZigiKSIpLG4rKztyZXR1cm5bdCxyXX1mdW5jdGlvbiB3JHQodCxlKXtsZXQgcj10LmlucHV0LmNoYXJDb2RlQXQodC5pbmRleC0xKTtyZXR1cm4odC5pbmRleD09PTB8fG0wKHIpfHx5aChyKSkmJighZXx8ciE9PTQ3KX12YXIgV3hlLEd4ZSxrJHQ9dSgoKT0+e2p4ZSgpO0N1KCk7V3IoKTt5JHQoKTtXeGU9InBocmFzaW5nIixHeGU9WyJhdXRvbGluayIsImxpbmsiLCJpbWFnZSIsImxhYmVsIl07aShLeGUsImdmbUF1dG9saW5rTGl0ZXJhbEZyb21NYXJrZG93biIpO2koWnhlLCJnZm1BdXRvbGlua0xpdGVyYWxUb01hcmtkb3duIik7aShHdWEsImVudGVyTGl0ZXJhbEF1dG9saW5rIik7aShZeGUsImVudGVyTGl0ZXJhbEF1dG9saW5rVmFsdWUiKTtpKFl1YSwiZXhpdExpdGVyYWxBdXRvbGlua0h0dHAiKTtpKEt1YSwiZXhpdExpdGVyYWxBdXRvbGlua1d3dyIpO2koWnVhLCJleGl0TGl0ZXJhbEF1dG9saW5rRW1haWwiKTtpKFF1YSwiZXhpdExpdGVyYWxBdXRvbGluayIpO2koWHVhLCJ0cmFuc2Zvcm1HZm1BdXRvbGlua0xpdGVyYWxzIik7aShKdWEsImZpbmRVcmwiKTtpKGVwYSwiZmluZEVtYWlsIik7aSh0cGEsImlzQ29ycmVjdERvbWFpbiIpO2kocnBhLCJzcGxpdFVybCIpO2kodyR0LCJwcmV2aW91cyIpfSk7dmFyIFMkdD11KCgpPT57ayR0KCl9KTtmdW5jdGlvbiBQaSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bXHRcblxyIF0rL2csIiAiKS5yZXBsYWNlKC9eIHwgJC9nLCIiKS50b0xvd2VyQ2FzZSgpLnRvVXBwZXJDYXNlKCl9dmFyIFR1PXUoKCk9PntpKFBpLCJub3JtYWxpemVJZGVudGlmaWVyIil9KTtmdW5jdGlvbiBhcGEoKXt0aGlzLmJ1ZmZlcigpfWZ1bmN0aW9uIGlwYSh0KXt0aGlzLmVudGVyKHt0eXBlOiJmb290bm90ZVJlZmVyZW5jZSIsaWRlbnRpZmllcjoiIixsYWJlbDoiIn0sdCl9ZnVuY3Rpb24gc3BhKCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBucGEodCl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVEZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOiIiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBvcGEodCl7bGV0IGU9dGhpcy5yZXN1bWUoKSxyPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIuaWRlbnRpZmllcj1QaSh0aGlzLnNsaWNlU2VyaWFsaXplKHQpKS50b0xvd2VyQ2FzZSgpLHIubGFiZWw9ZX1mdW5jdGlvbiBscGEodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIGNwYSh0KXtsZXQgZT10aGlzLnJlc3VtZSgpLHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyLnR5cGUsci5pZGVudGlmaWVyPVBpKHRoaXMuc2xpY2VTZXJpYWxpemUodCkpLnRvTG93ZXJDYXNlKCksci5sYWJlbD1lfWZ1bmN0aW9uIGRwYSh0KXt0aGlzLmV4aXQodCl9ZnVuY3Rpb24gdXBhKCl7cmV0dXJuIlsifWZ1bmN0aW9uIE0kdCh0LGUscixhKXtsZXQgcz1yLmNyZWF0ZVRyYWNrZXIoYSksbj1zLm1vdmUoIlteIiksbz1yLmVudGVyKCJmb290bm90ZVJlZmVyZW5jZSIpLGw9ci5lbnRlcigicmVmZXJlbmNlIik7cmV0dXJuIG4rPXMubW92ZShyLnNhZmUoci5hc3NvY2lhdGlvbklkKHQpLHthZnRlcjoiXSIsYmVmb3JlOm59KSksbCgpLG8oKSxuKz1zLm1vdmUoIl0iKSxufWZ1bmN0aW9uIFF4ZSgpe3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOmFwYSxnZm1Gb290bm90ZUNhbGw6aXBhLGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOnNwYSxnZm1Gb290bm90ZURlZmluaXRpb246bnBhfSxleGl0OntnZm1Gb290bm90ZUNhbGxTdHJpbmc6b3BhLGdmbUZvb3Rub3RlQ2FsbDpscGEsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmc6Y3BhLGdmbUZvb3Rub3RlRGVmaW5pdGlvbjpkcGF9fX1mdW5jdGlvbiBYeGUodCl7bGV0IGU9ITE7cmV0dXJuIHQmJnQuZmlyc3RMaW5lQmxhbmsmJihlPSEwKSx7aGFuZGxlcnM6e2Zvb3Rub3RlRGVmaW5pdGlvbjpyLGZvb3Rub3RlUmVmZXJlbmNlOk0kdH0sdW5zYWZlOlt7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicGhyYXNpbmciLCJyZWZlcmVuY2UiXX1dfTtmdW5jdGlvbiByKGEscyxuLG8pe2xldCBsPW4uY3JlYXRlVHJhY2tlcihvKSxjPWwubW92ZSgiW14iKSxkPW4uZW50ZXIoImZvb3Rub3RlRGVmaW5pdGlvbiIpLGY9bi5lbnRlcigibGFiZWwiKTtyZXR1cm4gYys9bC5tb3ZlKG4uc2FmZShuLmFzc29jaWF0aW9uSWQoYSkse2JlZm9yZTpjLGFmdGVyOiJdIn0pKSxmKCksYys9bC5tb3ZlKCJdOiIpLGEuY2hpbGRyZW4mJmEuY2hpbGRyZW4ubGVuZ3RoPjAmJihsLnNoaWZ0KDQpLGMrPWwubW92ZSgoZT9gCmA6IiAiKStuLmluZGVudExpbmVzKG4uY29udGFpbmVyRmxvdyhhLGwuY3VycmVudCgpKSxlP0MkdDpwcGEpKSksZCgpLGN9aShyLCJmb290bm90ZURlZmluaXRpb24iKX1mdW5jdGlvbiBwcGEodCxlLHIpe3JldHVybiBlPT09MD90OkMkdCh0LGUscil9ZnVuY3Rpb24gQyR0KHQsZSxyKXtyZXR1cm4ocj8iIjoiICAgICIpK3R9dmFyIHokdD11KCgpPT57Q3UoKTtUdSgpO00kdC5wZWVrPXVwYTtpKGFwYSwiZW50ZXJGb290bm90ZUNhbGxTdHJpbmciKTtpKGlwYSwiZW50ZXJGb290bm90ZUNhbGwiKTtpKHNwYSwiZW50ZXJGb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpO2kobnBhLCJlbnRlckZvb3Rub3RlRGVmaW5pdGlvbiIpO2kob3BhLCJleGl0Rm9vdG5vdGVDYWxsU3RyaW5nIik7aShscGEsImV4aXRGb290bm90ZUNhbGwiKTtpKGNwYSwiZXhpdEZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIik7aShkcGEsImV4aXRGb290bm90ZURlZmluaXRpb24iKTtpKHVwYSwiZm9vdG5vdGVSZWZlcmVuY2VQZWVrIik7aShNJHQsImZvb3Rub3RlUmVmZXJlbmNlIik7aShReGUsImdmbUZvb3Rub3RlRnJvbU1hcmtkb3duIik7aShYeGUsImdmbUZvb3Rub3RlVG9NYXJrZG93biIpO2kocHBhLCJtYXBFeGNlcHRGaXJzdCIpO2koQyR0LCJtYXBBbGwiKX0pO3ZhciBfJHQ9dSgoKT0+e3okdCgpfSk7ZnVuY3Rpb24gSnhlKCl7cmV0dXJue2NhbkNvbnRhaW5Fb2xzOlsiZGVsZXRlIl0sZW50ZXI6e3N0cmlrZXRocm91Z2g6aHBhfSxleGl0OntzdHJpa2V0aHJvdWdoOm1wYX19fWZ1bmN0aW9uIGV2ZSgpe3JldHVybnt1bnNhZmU6W3tjaGFyYWN0ZXI6In4iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6ZnBhfV0saGFuZGxlcnM6e2RlbGV0ZTpUJHR9fX1mdW5jdGlvbiBocGEodCl7dGhpcy5lbnRlcih7dHlwZToiZGVsZXRlIixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gbXBhKHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBUJHQodCxlLHIsYSl7bGV0IHM9ci5jcmVhdGVUcmFja2VyKGEpLG49ci5lbnRlcigic3RyaWtldGhyb3VnaCIpLG89cy5tb3ZlKCJ+fiIpO3JldHVybiBvKz1yLmNvbnRhaW5lclBocmFzaW5nKHQsey4uLnMuY3VycmVudCgpLGJlZm9yZTpvLGFmdGVyOiJ+In0pLG8rPXMubW92ZSgifn4iKSxuKCksb31mdW5jdGlvbiBncGEoKXtyZXR1cm4ifiJ9dmFyIGZwYSxMJHQ9dSgoKT0+e2ZwYT1bImF1dG9saW5rIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiZGVzdGluYXRpb25SYXciLCJyZWZlcmVuY2UiLCJ0aXRsZVF1b3RlIiwidGl0bGVBcG9zdHJvcGhlIl07VCR0LnBlZWs9Z3BhO2koSnhlLCJnZm1TdHJpa2V0aHJvdWdoRnJvbU1hcmtkb3duIik7aShldmUsImdmbVN0cmlrZXRocm91Z2hUb01hcmtkb3duIik7aShocGEsImVudGVyU3RyaWtldGhyb3VnaCIpO2kobXBhLCJleGl0U3RyaWtldGhyb3VnaCIpO2koVCR0LCJoYW5kbGVEZWxldGUiKTtpKGdwYSwicGVla0RlbGV0ZSIpfSk7dmFyIEQkdD11KCgpPT57TCR0KCl9KTtmdW5jdGlvbiBicGEodCl7cmV0dXJuIHQubGVuZ3RofWZ1bmN0aW9uIEEkdCh0LGUpe2xldCByPWV8fHt9LGE9KHIuYWxpZ258fFtdKS5jb25jYXQoKSxzPXIuc3RyaW5nTGVuZ3RofHxicGEsbj1bXSxvPVtdLGw9W10sYz1bXSxkPTAsZj0tMTtmb3IoOysrZjx0Lmxlbmd0aDspe2xldCBiPVtdLGc9W10seT0tMTtmb3IodFtmXS5sZW5ndGg+ZCYmKGQ9dFtmXS5sZW5ndGgpOysreTx0W2ZdLmxlbmd0aDspe2xldCBrPXhwYSh0W2ZdW3ldKTtpZihyLmFsaWduRGVsaW1pdGVycyE9PSExKXtsZXQgTT1zKGspO2dbeV09TSwoY1t5XT09PXZvaWQgMHx8TT5jW3ldKSYmKGNbeV09TSl9Yi5wdXNoKGspfW9bZl09YixsW2ZdPWd9bGV0IHA9LTE7aWYodHlwZW9mIGE9PSJvYmplY3QiJiYibGVuZ3RoImluIGEpZm9yKDsrK3A8ZDspbltwXT0kJHQoYVtwXSk7ZWxzZXtsZXQgYj0kJHQoYSk7Zm9yKDsrK3A8ZDspbltwXT1ifXA9LTE7bGV0IGg9W10sbT1bXTtmb3IoOysrcDxkOyl7bGV0IGI9bltwXSxnPSIiLHk9IiI7Yj09PTk5PyhnPSI6Iix5PSI6Iik6Yj09PTEwOD9nPSI6IjpiPT09MTE0JiYoeT0iOiIpO2xldCBrPXIuYWxpZ25EZWxpbWl0ZXJzPT09ITE/MTpNYXRoLm1heCgxLGNbcF0tZy5sZW5ndGgteS5sZW5ndGgpLE09ZysiLSIucmVwZWF0KGspK3k7ci5hbGlnbkRlbGltaXRlcnMhPT0hMSYmKGs9Zy5sZW5ndGgrayt5Lmxlbmd0aCxrPmNbcF0mJihjW3BdPWspLG1bcF09ayksaFtwXT1NfW8uc3BsaWNlKDEsMCxoKSxsLnNwbGljZSgxLDAsbSksZj0tMTtsZXQgdj1bXTtmb3IoOysrZjxvLmxlbmd0aDspe2xldCBiPW9bZl0sZz1sW2ZdO3A9LTE7bGV0IHk9W107Zm9yKDsrK3A8ZDspe2xldCBrPWJbcF18fCIiLE09IiIsTj0iIjtpZihyLmFsaWduRGVsaW1pdGVycyE9PSExKXtsZXQgXz1jW3BdLShnW3BdfHwwKSxTPW5bcF07Uz09PTExND9NPSIgIi5yZXBlYXQoXyk6Uz09PTk5P18lMj8oTT0iICIucmVwZWF0KF8vMisuNSksTj0iICIucmVwZWF0KF8vMi0uNSkpOihNPSIgIi5yZXBlYXQoXy8yKSxOPU0pOk49IiAiLnJlcGVhdChfKX1yLmRlbGltaXRlclN0YXJ0IT09ITEmJiFwJiZ5LnB1c2goInwiKSxyLnBhZGRpbmchPT0hMSYmIShyLmFsaWduRGVsaW1pdGVycz09PSExJiZrPT09IiIpJiYoci5kZWxpbWl0ZXJTdGFydCE9PSExfHxwKSYmeS5wdXNoKCIgIiksci5hbGlnbkRlbGltaXRlcnMhPT0hMSYmeS5wdXNoKE0pLHkucHVzaChrKSxyLmFsaWduRGVsaW1pdGVycyE9PSExJiZ5LnB1c2goTiksci5wYWRkaW5nIT09ITEmJnkucHVzaCgiICIpLChyLmRlbGltaXRlckVuZCE9PSExfHxwIT09ZC0xKSYmeS5wdXNoKCJ8Iil9di5wdXNoKHIuZGVsaW1pdGVyRW5kPT09ITE/eS5qb2luKCIiKS5yZXBsYWNlKC8gKyQvLCIiKTp5LmpvaW4oIiIpKX1yZXR1cm4gdi5qb2luKGAKYCl9ZnVuY3Rpb24geHBhKHQpe3JldHVybiB0PT1udWxsPyIiOlN0cmluZyh0KX1mdW5jdGlvbiAkJHQodCl7bGV0IGU9dHlwZW9mIHQ9PSJzdHJpbmciP3QuY29kZVBvaW50QXQoMCk6MDtyZXR1cm4gZT09PTY3fHxlPT09OTk/OTk6ZT09PTc2fHxlPT09MTA4PzEwODplPT09ODJ8fGU9PT0xMTQ/MTE0OjB9dmFyIEUkdD11KCgpPT57aShicGEsImRlZmF1bHRTdHJpbmdMZW5ndGgiKTtpKEEkdCwibWFya2Rvd25UYWJsZSIpO2koeHBhLCJzZXJpYWxpemUiKTtpKCQkdCwidG9BbGlnbm1lbnQiKX0pO2Z1bmN0aW9uIG8xZSh0LGUpe2xldCByPWV8fHt9O2Z1bmN0aW9uIGEocywuLi5uKXtsZXQgbz1hLmludmFsaWQsbD1hLmhhbmRsZXJzO2lmKHMmJkkkdC5jYWxsKHMsdCkpe2xldCBjPVN0cmluZyhzW3RdKTtvPUkkdC5jYWxsKGwsYyk/bFtjXTphLnVua25vd259aWYobylyZXR1cm4gby5jYWxsKHRoaXMscywuLi5uKX1yZXR1cm4gaShhLCJvbmUiKSxhLmhhbmRsZXJzPXIuaGFuZGxlcnN8fHt9LGEuaW52YWxpZD1yLmludmFsaWQsYS51bmtub3duPXIudW5rbm93bixhfXZhciBJJHQsdHZlPXUoKCk9PntJJHQ9e30uaGFzT3duUHJvcGVydHk7aShvMWUsInp3aXRjaCIpfSk7ZnVuY3Rpb24gcnZlKHQsZSl7bGV0IHI9LTEsYTtpZihlLmV4dGVuc2lvbnMpZm9yKDsrK3I8ZS5leHRlbnNpb25zLmxlbmd0aDspcnZlKHQsZS5leHRlbnNpb25zW3JdKTtmb3IoYSBpbiBlKWlmKHZwYS5jYWxsKGUsYSkpc3dpdGNoKGEpe2Nhc2UiZXh0ZW5zaW9ucyI6YnJlYWs7Y2FzZSJ1bnNhZmUiOntQJHQodFthXSxlW2FdKTticmVha31jYXNlImpvaW4iOntQJHQodFthXSxlW2FdKTticmVha31jYXNlImhhbmRsZXJzIjp7eXBhKHRbYV0sZVthXSk7YnJlYWt9ZGVmYXVsdDp0Lm9wdGlvbnNbYV09ZVthXX1yZXR1cm4gdH1mdW5jdGlvbiBQJHQodCxlKXtlJiZ0LnB1c2goLi4uZSl9ZnVuY3Rpb24geXBhKHQsZSl7ZSYmT2JqZWN0LmFzc2lnbih0LGUpfXZhciB2cGEsTiR0PXUoKCk9Pnt2cGE9e30uaGFzT3duUHJvcGVydHk7aShydmUsImNvbmZpZ3VyZSIpO2koUCR0LCJsaXN0Iik7aSh5cGEsIm1hcCIpfSk7ZnVuY3Rpb24gTyR0KHQsZSxyLGEpe2xldCBzPXIuZW50ZXIoImJsb2NrcXVvdGUiKSxuPXIuY3JlYXRlVHJhY2tlcihhKTtuLm1vdmUoIj4gIiksbi5zaGlmdCgyKTtsZXQgbz1yLmluZGVudExpbmVzKHIuY29udGFpbmVyRmxvdyh0LG4uY3VycmVudCgpKSx3cGEpO3JldHVybiBzKCksb31mdW5jdGlvbiB3cGEodCxlLHIpe3JldHVybiI+Iisocj8iIjoiICIpK3R9dmFyIFIkdD11KCgpPT57aShPJHQsImJsb2NrcXVvdGUiKTtpKHdwYSwibWFwIil9KTtmdW5jdGlvbiBsMWUodCxlKXtyZXR1cm4gRiR0KHQsZS5pbkNvbnN0cnVjdCwhMCkmJiFGJHQodCxlLm5vdEluQ29uc3RydWN0LCExKX1mdW5jdGlvbiBGJHQodCxlLHIpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIiYmKGU9W2VdKSwhZXx8ZS5sZW5ndGg9PT0wKXJldHVybiByO2xldCBhPS0xO2Zvcig7KythPGUubGVuZ3RoOylpZih0LmluY2x1ZGVzKGVbYV0pKXJldHVybiEwO3JldHVybiExfXZhciBhdmU9dSgoKT0+e2kobDFlLCJwYXR0ZXJuSW5TY29wZSIpO2koRiR0LCJsaXN0SW5TY29wZSIpfSk7ZnVuY3Rpb24gaXZlKHQsZSxyLGEpe2xldCBzPS0xO2Zvcig7KytzPHIudW5zYWZlLmxlbmd0aDspaWYoci51bnNhZmVbc10uY2hhcmFjdGVyPT09YApgJiZsMWUoci5zdGFjayxyLnVuc2FmZVtzXSkpcmV0dXJuL1sgXHRdLy50ZXN0KGEuYmVmb3JlKT8iIjoiICI7cmV0dXJuYFxcCmB9dmFyIEIkdD11KCgpPT57YXZlKCk7aShpdmUsImhhcmRCcmVhayIpfSk7ZnVuY3Rpb24gSCR0KHQsZSl7bGV0IHI9U3RyaW5nKHQpLGE9ci5pbmRleE9mKGUpLHM9YSxuPTAsbz0wO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBzdWJzdHJpbmciKTtmb3IoO2EhPT0tMTspYT09PXM/KytuPm8mJihvPW4pOm49MSxzPWErZS5sZW5ndGgsYT1yLmluZGV4T2YoZSxzKTtyZXR1cm4gb312YXIgcSR0PXUoKCk9PntpKEgkdCwibG9uZ2VzdFN0cmVhayIpfSk7ZnVuY3Rpb24gTU0odCxlKXtyZXR1cm4hIShlLm9wdGlvbnMuZmVuY2VzPT09ITEmJnQudmFsdWUmJiF0LmxhbmcmJi9bXiBcclxuXS8udGVzdCh0LnZhbHVlKSYmIS9eW1x0IF0qKD86W1xyXG5dfCQpfCg/Ol58W1xyXG5dKVtcdCBdKiQvLnRlc3QodC52YWx1ZSkpfXZhciBzdmU9dSgoKT0+e2koTU0sImZvcm1hdENvZGVBc0luZGVudGVkIil9KTtmdW5jdGlvbiBWJHQodCl7bGV0IGU9dC5vcHRpb25zLmZlbmNlfHwiYCI7aWYoZSE9PSJgIiYmZSE9PSJ+Iil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgY29kZSB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmZlbmNlYCwgZXhwZWN0ZWQgYGAgYCBgYCBvciBgfmAiKTtyZXR1cm4gZX12YXIgaiR0PXUoKCk9PntpKFYkdCwiY2hlY2tGZW5jZSIpfSk7ZnVuY3Rpb24gVSR0KHQsZSxyLGEpe2xldCBzPVYkdChyKSxuPXQudmFsdWV8fCIiLG89cz09PSJgIj8iR3JhdmVBY2NlbnQiOiJUaWxkZSI7aWYoTU0odCxyKSl7bGV0IHA9ci5lbnRlcigiY29kZUluZGVudGVkIiksaD1yLmluZGVudExpbmVzKG4sa3BhKTtyZXR1cm4gcCgpLGh9bGV0IGw9ci5jcmVhdGVUcmFja2VyKGEpLGM9cy5yZXBlYXQoTWF0aC5tYXgoSCR0KG4scykrMSwzKSksZD1yLmVudGVyKCJjb2RlRmVuY2VkIiksZj1sLm1vdmUoYyk7aWYodC5sYW5nKXtsZXQgcD1yLmVudGVyKGBjb2RlRmVuY2VkTGFuZyR7b31gKTtmKz1sLm1vdmUoci5zYWZlKHQubGFuZyx7YmVmb3JlOmYsYWZ0ZXI6IiAiLGVuY29kZTpbImAiXSwuLi5sLmN1cnJlbnQoKX0pKSxwKCl9aWYodC5sYW5nJiZ0Lm1ldGEpe2xldCBwPXIuZW50ZXIoYGNvZGVGZW5jZWRNZXRhJHtvfWApO2YrPWwubW92ZSgiICIpLGYrPWwubW92ZShyLnNhZmUodC5tZXRhLHtiZWZvcmU6ZixhZnRlcjpgCmAsZW5jb2RlOlsiYCJdLC4uLmwuY3VycmVudCgpfSkpLHAoKX1yZXR1cm4gZis9bC5tb3ZlKGAKYCksbiYmKGYrPWwubW92ZShuK2AKYCkpLGYrPWwubW92ZShjKSxkKCksZn1mdW5jdGlvbiBrcGEodCxlLHIpe3JldHVybihyPyIiOiIgICAgIikrdH12YXIgVyR0PXUoKCk9PntxJHQoKTtzdmUoKTtqJHQoKTtpKFUkdCwiY29kZSIpO2koa3BhLCJtYXAiKX0pO2Z1bmN0aW9uIGx4KHQpe2xldCBlPXQub3B0aW9ucy5xdW90ZXx8JyInO2lmKGUhPT0nIicmJmUhPT0iJyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHRpdGxlIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMucXVvdGVgLCBleHBlY3RlZCBgXCJgLCBvciBgJ2AiKTtyZXR1cm4gZX12YXIgYzFlPXUoKCk9PntpKGx4LCJjaGVja1F1b3RlIil9KTtmdW5jdGlvbiBHJHQodCxlLHIsYSl7bGV0IHM9bHgociksbj1zPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89ci5lbnRlcigiZGVmaW5pdGlvbiIpLGw9ci5lbnRlcigibGFiZWwiKSxjPXIuY3JlYXRlVHJhY2tlcihhKSxkPWMubW92ZSgiWyIpO3JldHVybiBkKz1jLm1vdmUoci5zYWZlKHIuYXNzb2NpYXRpb25JZCh0KSx7YmVmb3JlOmQsYWZ0ZXI6Il0iLC4uLmMuY3VycmVudCgpfSkpLGQrPWMubW92ZSgiXTogIiksbCgpLCF0LnVybHx8L1tcMC0gXHUwMDdGXS8udGVzdCh0LnVybCk/KGw9ci5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksZCs9Yy5tb3ZlKCI8IiksZCs9Yy5tb3ZlKHIuc2FmZSh0LnVybCx7YmVmb3JlOmQsYWZ0ZXI6Ij4iLC4uLmMuY3VycmVudCgpfSkpLGQrPWMubW92ZSgiPiIpKToobD1yLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGQrPWMubW92ZShyLnNhZmUodC51cmwse2JlZm9yZTpkLGFmdGVyOnQudGl0bGU/IiAiOmAKYCwuLi5jLmN1cnJlbnQoKX0pKSksbCgpLHQudGl0bGUmJihsPXIuZW50ZXIoYHRpdGxlJHtufWApLGQrPWMubW92ZSgiICIrcyksZCs9Yy5tb3ZlKHIuc2FmZSh0LnRpdGxlLHtiZWZvcmU6ZCxhZnRlcjpzLC4uLmMuY3VycmVudCgpfSkpLGQrPWMubW92ZShzKSxsKCkpLG8oKSxkfXZhciBZJHQ9dSgoKT0+e2MxZSgpO2koRyR0LCJkZWZpbml0aW9uIil9KTtmdW5jdGlvbiBLJHQodCl7bGV0IGU9dC5vcHRpb25zLmVtcGhhc2lzfHwiKiI7aWYoZSE9PSIqIiYmZSE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgZW1waGFzaXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5lbXBoYXNpc2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIGV9dmFyIFokdD11KCgpPT57aShLJHQsImNoZWNrRW1waGFzaXMiKX0pO2Z1bmN0aW9uIFcxKHQpe3JldHVybiImI3giK3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrIjsifXZhciBjeD11KCgpPT57aShXMSwiZW5jb2RlQ2hhcmFjdGVyUmVmZXJlbmNlIil9KTtmdW5jdGlvbiBhNCh0KXtpZih0PT09bnVsbHx8TnIodCl8fG0wKHQpKXJldHVybiAxO2lmKHloKHQpKXJldHVybiAyfXZhciBkMWU9dSgoKT0+e1dyKCk7aShhNCwiY2xhc3NpZnlDaGFyYWN0ZXIiKX0pO2Z1bmN0aW9uIGR4KHQsZSxyKXtsZXQgYT1hNCh0KSxzPWE0KGUpO3JldHVybiBhPT09dm9pZCAwP3M9PT12b2lkIDA/cj09PSJfIj97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06cz09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITB9OmE9PT0xP3M9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTpzPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06cz09PXZvaWQgMD97aW5zaWRlOiExLG91dHNpZGU6ITF9OnM9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMX06e2luc2lkZTohMSxvdXRzaWRlOiExfX12YXIgbnZlPXUoKCk9PntkMWUoKTtpKGR4LCJlbmNvZGVJbmZvIil9KTtmdW5jdGlvbiBvdmUodCxlLHIsYSl7bGV0IHM9SyR0KHIpLG49ci5lbnRlcigiZW1waGFzaXMiKSxvPXIuY3JlYXRlVHJhY2tlcihhKSxsPW8ubW92ZShzKSxjPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKHQse2FmdGVyOnMsYmVmb3JlOmwsLi4uby5jdXJyZW50KCl9KSksZD1jLmNoYXJDb2RlQXQoMCksZj1keChhLmJlZm9yZS5jaGFyQ29kZUF0KGEuYmVmb3JlLmxlbmd0aC0xKSxkLHMpO2YuaW5zaWRlJiYoYz1XMShkKStjLnNsaWNlKDEpKTtsZXQgcD1jLmNoYXJDb2RlQXQoYy5sZW5ndGgtMSksaD1keChhLmFmdGVyLmNoYXJDb2RlQXQoMCkscCxzKTtoLmluc2lkZSYmKGM9Yy5zbGljZSgwLC0xKStXMShwKSk7bGV0IG09by5tb3ZlKHMpO3JldHVybiBuKCksci5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89e2FmdGVyOmgub3V0c2lkZSxiZWZvcmU6Zi5vdXRzaWRlfSxsK2MrbX1mdW5jdGlvbiBTcGEodCxlLHIpe3JldHVybiByLm9wdGlvbnMuZW1waGFzaXN8fCIqIn12YXIgUSR0PXUoKCk9PntaJHQoKTtjeCgpO252ZSgpO292ZS5wZWVrPVNwYTtpKG92ZSwiZW1waGFzaXMiKTtpKFNwYSwiZW1waGFzaXNQZWVrIil9KTtmdW5jdGlvbiBDTSh0LGUscixhKXtsZXQgcyxuLG87dHlwZW9mIGU9PSJmdW5jdGlvbiImJnR5cGVvZiByIT0iZnVuY3Rpb24iPyhuPXZvaWQgMCxvPWUscz1yKToobj1lLG89cixzPWEpLFNNKHQsbixsLHMpO2Z1bmN0aW9uIGwoYyxkKXtsZXQgZj1kW2QubGVuZ3RoLTFdLHA9Zj9mLmNoaWxkcmVuLmluZGV4T2YoYyk6dm9pZCAwO3JldHVybiBvKGMscCxmKX1pKGwsIm92ZXJsb2FkIil9dmFyIFgkdD11KCgpPT57bjFlKCk7bjFlKCk7aShDTSwidmlzaXQiKX0pO3ZhciBsdmU9dSgoKT0+e1gkdCgpfSk7ZnVuY3Rpb24ga2godCxlKXtsZXQgcj1lfHxNcGEsYT10eXBlb2Ygci5pbmNsdWRlSW1hZ2VBbHQ9PSJib29sZWFuIj9yLmluY2x1ZGVJbWFnZUFsdDohMCxzPXR5cGVvZiByLmluY2x1ZGVIdG1sPT0iYm9vbGVhbiI/ci5pbmNsdWRlSHRtbDohMDtyZXR1cm4gSiR0KHQsYSxzKX1mdW5jdGlvbiBKJHQodCxlLHIpe2lmKENwYSh0KSl7aWYoInZhbHVlImluIHQpcmV0dXJuIHQudHlwZT09PSJodG1sIiYmIXI/IiI6dC52YWx1ZTtpZihlJiYiYWx0ImluIHQmJnQuYWx0KXJldHVybiB0LmFsdDtpZigiY2hpbGRyZW4iaW4gdClyZXR1cm4gZUF0KHQuY2hpbGRyZW4sZSxyKX1yZXR1cm4gQXJyYXkuaXNBcnJheSh0KT9lQXQodCxlLHIpOiIifWZ1bmN0aW9uIGVBdCh0LGUscil7bGV0IGE9W10scz0tMTtmb3IoOysrczx0Lmxlbmd0aDspYVtzXT1KJHQodFtzXSxlLHIpO3JldHVybiBhLmpvaW4oIiIpfWZ1bmN0aW9uIENwYSh0KXtyZXR1cm4hISh0JiZ0eXBlb2YgdD09Im9iamVjdCIpfXZhciBNcGEsdEF0PXUoKCk9PntNcGE9e307aShraCwidG9TdHJpbmciKTtpKEokdCwib25lIik7aShlQXQsImFsbCIpO2koQ3BhLCJub2RlIil9KTt2YXIgdTFlPXUoKCk9Pnt0QXQoKX0pO2Z1bmN0aW9uIHAxZSh0LGUpe2xldCByPSExO3JldHVybiBDTSh0LGZ1bmN0aW9uKGEpe2lmKCJ2YWx1ZSJpbiBhJiYvXHI/XG58XHIvLnRlc3QoYS52YWx1ZSl8fGEudHlwZT09PSJicmVhayIpcmV0dXJuIHI9ITAsd2h9KSwhISgoIXQuZGVwdGh8fHQuZGVwdGg8MykmJmtoKHQpJiYoZS5vcHRpb25zLnNldGV4dHx8cikpfXZhciBjdmU9dSgoKT0+e2x2ZSgpO3UxZSgpO2kocDFlLCJmb3JtYXRIZWFkaW5nQXNTZXRleHQiKX0pO2Z1bmN0aW9uIHJBdCh0LGUscixhKXtsZXQgcz1NYXRoLm1heChNYXRoLm1pbig2LHQuZGVwdGh8fDEpLDEpLG49ci5jcmVhdGVUcmFja2VyKGEpO2lmKHAxZSh0LHIpKXtsZXQgZj1yLmVudGVyKCJoZWFkaW5nU2V0ZXh0IikscD1yLmVudGVyKCJwaHJhc2luZyIpLGg9ci5jb250YWluZXJQaHJhc2luZyh0LHsuLi5uLmN1cnJlbnQoKSxiZWZvcmU6YApgLGFmdGVyOmAKYH0pO3JldHVybiBwKCksZigpLGgrYApgKyhzPT09MT8iPSI6Ii0iKS5yZXBlYXQoaC5sZW5ndGgtKE1hdGgubWF4KGgubGFzdEluZGV4T2YoIlxyIiksaC5sYXN0SW5kZXhPZihgCmApKSsxKSl9bGV0IG89IiMiLnJlcGVhdChzKSxsPXIuZW50ZXIoImhlYWRpbmdBdHgiKSxjPXIuZW50ZXIoInBocmFzaW5nIik7bi5tb3ZlKG8rIiAiKTtsZXQgZD1yLmNvbnRhaW5lclBocmFzaW5nKHQse2JlZm9yZToiIyAiLGFmdGVyOmAKYCwuLi5uLmN1cnJlbnQoKX0pO3JldHVybi9eW1x0IF0vLnRlc3QoZCkmJihkPVcxKGQuY2hhckNvZGVBdCgwKSkrZC5zbGljZSgxKSksZD1kP28rIiAiK2Q6byxyLm9wdGlvbnMuY2xvc2VBdHgmJihkKz0iICIrbyksYygpLGwoKSxkfXZhciBhQXQ9dSgoKT0+e2N4KCk7Y3ZlKCk7aShyQXQsImhlYWRpbmciKX0pO2Z1bmN0aW9uIGR2ZSh0KXtyZXR1cm4gdC52YWx1ZXx8IiJ9ZnVuY3Rpb24genBhKCl7cmV0dXJuIjwifXZhciBpQXQ9dSgoKT0+e2R2ZS5wZWVrPXpwYTtpKGR2ZSwiaHRtbCIpO2koenBhLCJodG1sUGVlayIpfSk7ZnVuY3Rpb24gdXZlKHQsZSxyLGEpe2xldCBzPWx4KHIpLG49cz09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXIuZW50ZXIoImltYWdlIiksbD1yLmVudGVyKCJsYWJlbCIpLGM9ci5jcmVhdGVUcmFja2VyKGEpLGQ9Yy5tb3ZlKCIhWyIpO3JldHVybiBkKz1jLm1vdmUoci5zYWZlKHQuYWx0LHtiZWZvcmU6ZCxhZnRlcjoiXSIsLi4uYy5jdXJyZW50KCl9KSksZCs9Yy5tb3ZlKCJdKCIpLGwoKSwhdC51cmwmJnQudGl0bGV8fC9bXDAtIFx1MDA3Rl0vLnRlc3QodC51cmwpPyhsPXIuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGQrPWMubW92ZSgiPCIpLGQrPWMubW92ZShyLnNhZmUodC51cmwse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5jLmN1cnJlbnQoKX0pKSxkKz1jLm1vdmUoIj4iKSk6KGw9ci5lbnRlcigiZGVzdGluYXRpb25SYXciKSxkKz1jLm1vdmUoci5zYWZlKHQudXJsLHtiZWZvcmU6ZCxhZnRlcjp0LnRpdGxlPyIgIjoiKSIsLi4uYy5jdXJyZW50KCl9KSkpLGwoKSx0LnRpdGxlJiYobD1yLmVudGVyKGB0aXRsZSR7bn1gKSxkKz1jLm1vdmUoIiAiK3MpLGQrPWMubW92ZShyLnNhZmUodC50aXRsZSx7YmVmb3JlOmQsYWZ0ZXI6cywuLi5jLmN1cnJlbnQoKX0pKSxkKz1jLm1vdmUocyksbCgpKSxkKz1jLm1vdmUoIikiKSxvKCksZH1mdW5jdGlvbiBfcGEoKXtyZXR1cm4iISJ9dmFyIHNBdD11KCgpPT57YzFlKCk7dXZlLnBlZWs9X3BhO2kodXZlLCJpbWFnZSIpO2koX3BhLCJpbWFnZVBlZWsiKX0pO2Z1bmN0aW9uIHB2ZSh0LGUscixhKXtsZXQgcz10LnJlZmVyZW5jZVR5cGUsbj1yLmVudGVyKCJpbWFnZVJlZmVyZW5jZSIpLG89ci5lbnRlcigibGFiZWwiKSxsPXIuY3JlYXRlVHJhY2tlcihhKSxjPWwubW92ZSgiIVsiKSxkPXIuc2FmZSh0LmFsdCx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSk7Yys9bC5tb3ZlKGQrIl1bIiksbygpO2xldCBmPXIuc3RhY2s7ci5zdGFjaz1bXSxvPXIuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBwPXIuc2FmZShyLmFzc29jaWF0aW9uSWQodCkse2JlZm9yZTpjLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBvKCksci5zdGFjaz1mLG4oKSxzPT09ImZ1bGwifHwhZHx8ZCE9PXA/Yys9bC5tb3ZlKHArIl0iKTpzPT09InNob3J0Y3V0Ij9jPWMuc2xpY2UoMCwtMSk6Yys9bC5tb3ZlKCJdIiksY31mdW5jdGlvbiBUcGEoKXtyZXR1cm4iISJ9dmFyIG5BdD11KCgpPT57cHZlLnBlZWs9VHBhO2kocHZlLCJpbWFnZVJlZmVyZW5jZSIpO2koVHBhLCJpbWFnZVJlZmVyZW5jZVBlZWsiKX0pO2Z1bmN0aW9uIGZ2ZSh0LGUscil7bGV0IGE9dC52YWx1ZXx8IiIscz0iYCIsbj0tMTtmb3IoO25ldyBSZWdFeHAoIihefFteYF0pIitzKyIoW15gXXwkKSIpLnRlc3QoYSk7KXMrPSJgIjtmb3IoL1teIFxyXG5dLy50ZXN0KGEpJiYoL15bIFxyXG5dLy50ZXN0KGEpJiYvWyBcclxuXSQvLnRlc3QoYSl8fC9eYHxgJC8udGVzdChhKSkmJihhPSIgIithKyIgIik7KytuPHIudW5zYWZlLmxlbmd0aDspe2xldCBvPXIudW5zYWZlW25dLGw9ci5jb21waWxlUGF0dGVybihvKSxjO2lmKG8uYXRCcmVhaylmb3IoO2M9bC5leGVjKGEpOyl7bGV0IGQ9Yy5pbmRleDthLmNoYXJDb2RlQXQoZCk9PT0xMCYmYS5jaGFyQ29kZUF0KGQtMSk9PT0xMyYmZC0tLGE9YS5zbGljZSgwLGQpKyIgIithLnNsaWNlKGMuaW5kZXgrMSl9fXJldHVybiBzK2Erc31mdW5jdGlvbiBMcGEoKXtyZXR1cm4iYCJ9dmFyIG9BdD11KCgpPT57ZnZlLnBlZWs9THBhO2koZnZlLCJpbmxpbmVDb2RlIik7aShMcGEsImlubGluZUNvZGVQZWVrIil9KTtmdW5jdGlvbiBodmUodCxlKXtsZXQgcj1raCh0KTtyZXR1cm4hISghZS5vcHRpb25zLnJlc291cmNlTGluayYmdC51cmwmJiF0LnRpdGxlJiZ0LmNoaWxkcmVuJiZ0LmNoaWxkcmVuLmxlbmd0aD09PTEmJnQuY2hpbGRyZW5bMF0udHlwZT09PSJ0ZXh0IiYmKHI9PT10LnVybHx8Im1haWx0bzoiK3I9PT10LnVybCkmJi9eW2Etel1bYS16Ky4tXSs6L2kudGVzdCh0LnVybCkmJiEvW1wwLSA8Plx1MDA3Rl0vLnRlc3QodC51cmwpKX12YXIgbEF0PXUoKCk9Pnt1MWUoKTtpKGh2ZSwiZm9ybWF0TGlua0FzQXV0b2xpbmsiKX0pO2Z1bmN0aW9uIG12ZSh0LGUscixhKXtsZXQgcz1seChyKSxuPXM9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbz1yLmNyZWF0ZVRyYWNrZXIoYSksbCxjO2lmKGh2ZSh0LHIpKXtsZXQgZj1yLnN0YWNrO3Iuc3RhY2s9W10sbD1yLmVudGVyKCJhdXRvbGluayIpO2xldCBwPW8ubW92ZSgiPCIpO3JldHVybiBwKz1vLm1vdmUoci5jb250YWluZXJQaHJhc2luZyh0LHtiZWZvcmU6cCxhZnRlcjoiPiIsLi4uby5jdXJyZW50KCl9KSkscCs9by5tb3ZlKCI+IiksbCgpLHIuc3RhY2s9ZixwfWw9ci5lbnRlcigibGluayIpLGM9ci5lbnRlcigibGFiZWwiKTtsZXQgZD1vLm1vdmUoIlsiKTtyZXR1cm4gZCs9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcodCx7YmVmb3JlOmQsYWZ0ZXI6Il0oIiwuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUoIl0oIiksYygpLCF0LnVybCYmdC50aXRsZXx8L1tcMC0gXHUwMDdGXS8udGVzdCh0LnVybCk/KGM9ci5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksZCs9by5tb3ZlKCI8IiksZCs9by5tb3ZlKHIuc2FmZSh0LnVybCx7YmVmb3JlOmQsYWZ0ZXI6Ij4iLC4uLm8uY3VycmVudCgpfSkpLGQrPW8ubW92ZSgiPiIpKTooYz1yLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGQrPW8ubW92ZShyLnNhZmUodC51cmwse2JlZm9yZTpkLGFmdGVyOnQudGl0bGU/IiAiOiIpIiwuLi5vLmN1cnJlbnQoKX0pKSksYygpLHQudGl0bGUmJihjPXIuZW50ZXIoYHRpdGxlJHtufWApLGQrPW8ubW92ZSgiICIrcyksZCs9by5tb3ZlKHIuc2FmZSh0LnRpdGxlLHtiZWZvcmU6ZCxhZnRlcjpzLC4uLm8uY3VycmVudCgpfSkpLGQrPW8ubW92ZShzKSxjKCkpLGQrPW8ubW92ZSgiKSIpLGwoKSxkfWZ1bmN0aW9uIERwYSh0LGUscil7cmV0dXJuIGh2ZSh0LHIpPyI8IjoiWyJ9dmFyIGNBdD11KCgpPT57YzFlKCk7bEF0KCk7bXZlLnBlZWs9RHBhO2kobXZlLCJsaW5rIik7aShEcGEsImxpbmtQZWVrIil9KTtmdW5jdGlvbiBndmUodCxlLHIsYSl7bGV0IHM9dC5yZWZlcmVuY2VUeXBlLG49ci5lbnRlcigibGlua1JlZmVyZW5jZSIpLG89ci5lbnRlcigibGFiZWwiKSxsPXIuY3JlYXRlVHJhY2tlcihhKSxjPWwubW92ZSgiWyIpLGQ9ci5jb250YWluZXJQaHJhc2luZyh0LHtiZWZvcmU6YyxhZnRlcjoiXSIsLi4ubC5jdXJyZW50KCl9KTtjKz1sLm1vdmUoZCsiXVsiKSxvKCk7bGV0IGY9ci5zdGFjaztyLnN0YWNrPVtdLG89ci5lbnRlcigicmVmZXJlbmNlIik7bGV0IHA9ci5zYWZlKHIuYXNzb2NpYXRpb25JZCh0KSx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSk7cmV0dXJuIG8oKSxyLnN0YWNrPWYsbigpLHM9PT0iZnVsbCJ8fCFkfHxkIT09cD9jKz1sLm1vdmUocCsiXSIpOnM9PT0ic2hvcnRjdXQiP2M9Yy5zbGljZSgwLC0xKTpjKz1sLm1vdmUoIl0iKSxjfWZ1bmN0aW9uICRwYSgpe3JldHVybiJbIn12YXIgZEF0PXUoKCk9PntndmUucGVlaz0kcGE7aShndmUsImxpbmtSZWZlcmVuY2UiKTtpKCRwYSwibGlua1JlZmVyZW5jZVBlZWsiKX0pO2Z1bmN0aW9uIHV4KHQpe2xldCBlPXQub3B0aW9ucy5idWxsZXR8fCIqIjtpZihlIT09IioiJiZlIT09IisiJiZlIT09Ii0iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmJ1bGxldGAsIGV4cGVjdGVkIGAqYCwgYCtgLCBvciBgLWAiKTtyZXR1cm4gZX12YXIgZjFlPXUoKCk9PntpKHV4LCJjaGVja0J1bGxldCIpfSk7ZnVuY3Rpb24gdUF0KHQpe2xldCBlPXV4KHQpLHI9dC5vcHRpb25zLmJ1bGxldE90aGVyO2lmKCFyKXJldHVybiBlPT09IioiPyItIjoiKiI7aWYociE9PSIqIiYmciE9PSIrIiYmciE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIityKyJgIGZvciBgb3B0aW9ucy5idWxsZXRPdGhlcmAsIGV4cGVjdGVkIGAqYCwgYCtgLCBvciBgLWAiKTtpZihyPT09ZSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGBidWxsZXRgIChgIitlKyJgKSBhbmQgYGJ1bGxldE90aGVyYCAoYCIrcisiYCkgdG8gYmUgZGlmZmVyZW50Iik7cmV0dXJuIHJ9dmFyIHBBdD11KCgpPT57ZjFlKCk7aSh1QXQsImNoZWNrQnVsbGV0T3RoZXIiKX0pO2Z1bmN0aW9uIGZBdCh0KXtsZXQgZT10Lm9wdGlvbnMuYnVsbGV0T3JkZXJlZHx8Ii4iO2lmKGUhPT0iLiImJmUhPT0iKSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3JkZXJlZGAsIGV4cGVjdGVkIGAuYCBvciBgKWAiKTtyZXR1cm4gZX12YXIgaEF0PXUoKCk9PntpKGZBdCwiY2hlY2tCdWxsZXRPcmRlcmVkIil9KTtmdW5jdGlvbiBoMWUodCl7bGV0IGU9dC5vcHRpb25zLnJ1bGV8fCIqIjtpZihlIT09IioiJiZlIT09Ii0iJiZlIT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLnJ1bGVgLCBleHBlY3RlZCBgKmAsIGAtYCwgb3IgYF9gIik7cmV0dXJuIGV9dmFyIGJ2ZT11KCgpPT57aShoMWUsImNoZWNrUnVsZSIpfSk7ZnVuY3Rpb24gbUF0KHQsZSxyLGEpe2xldCBzPXIuZW50ZXIoImxpc3QiKSxuPXIuYnVsbGV0Q3VycmVudCxvPXQub3JkZXJlZD9mQXQocik6dXgociksbD10Lm9yZGVyZWQ/bz09PSIuIj8iKSI6Ii4iOnVBdChyKSxjPWUmJnIuYnVsbGV0TGFzdFVzZWQ/bz09PXIuYnVsbGV0TGFzdFVzZWQ6ITE7aWYoIXQub3JkZXJlZCl7bGV0IGY9dC5jaGlsZHJlbj90LmNoaWxkcmVuWzBdOnZvaWQgMDtpZigobz09PSIqInx8bz09PSItIikmJmYmJighZi5jaGlsZHJlbnx8IWYuY2hpbGRyZW5bMF0pJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTFdPT09Imxpc3QiJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTJdPT09Imxpc3RJdGVtIiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC0zXT09PSJsaXN0IiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC00XT09PSJsaXN0SXRlbSImJnIuaW5kZXhTdGFja1tyLmluZGV4U3RhY2subGVuZ3RoLTFdPT09MCYmci5pbmRleFN0YWNrW3IuaW5kZXhTdGFjay5sZW5ndGgtMl09PT0wJiZyLmluZGV4U3RhY2tbci5pbmRleFN0YWNrLmxlbmd0aC0zXT09PTAmJihjPSEwKSxoMWUocik9PT1vJiZmKXtsZXQgcD0tMTtmb3IoOysrcDx0LmNoaWxkcmVuLmxlbmd0aDspe2xldCBoPXQuY2hpbGRyZW5bcF07aWYoaCYmaC50eXBlPT09Imxpc3RJdGVtIiYmaC5jaGlsZHJlbiYmaC5jaGlsZHJlblswXSYmaC5jaGlsZHJlblswXS50eXBlPT09InRoZW1hdGljQnJlYWsiKXtjPSEwO2JyZWFrfX19fWMmJihvPWwpLHIuYnVsbGV0Q3VycmVudD1vO2xldCBkPXIuY29udGFpbmVyRmxvdyh0LGEpO3JldHVybiByLmJ1bGxldExhc3RVc2VkPW8sci5idWxsZXRDdXJyZW50PW4scygpLGR9dmFyIGdBdD11KCgpPT57ZjFlKCk7cEF0KCk7aEF0KCk7YnZlKCk7aShtQXQsImxpc3QiKX0pO2Z1bmN0aW9uIGJBdCh0KXtsZXQgZT10Lm9wdGlvbnMubGlzdEl0ZW1JbmRlbnR8fCJvbmUiO2lmKGUhPT0idGFiIiYmZSE9PSJvbmUiJiZlIT09Im1peGVkIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5saXN0SXRlbUluZGVudGAsIGV4cGVjdGVkIGB0YWJgLCBgb25lYCwgb3IgYG1peGVkYCIpO3JldHVybiBlfXZhciB4QXQ9dSgoKT0+e2koYkF0LCJjaGVja0xpc3RJdGVtSW5kZW50Iil9KTtmdW5jdGlvbiB2QXQodCxlLHIsYSl7bGV0IHM9YkF0KHIpLG49ci5idWxsZXRDdXJyZW50fHx1eChyKTtlJiZlLnR5cGU9PT0ibGlzdCImJmUub3JkZXJlZCYmKG49KHR5cGVvZiBlLnN0YXJ0PT0ibnVtYmVyIiYmZS5zdGFydD4tMT9lLnN0YXJ0OjEpKyhyLm9wdGlvbnMuaW5jcmVtZW50TGlzdE1hcmtlcj09PSExPzA6ZS5jaGlsZHJlbi5pbmRleE9mKHQpKStuKTtsZXQgbz1uLmxlbmd0aCsxOyhzPT09InRhYiJ8fHM9PT0ibWl4ZWQiJiYoZSYmZS50eXBlPT09Imxpc3QiJiZlLnNwcmVhZHx8dC5zcHJlYWQpKSYmKG89TWF0aC5jZWlsKG8vNCkqNCk7bGV0IGw9ci5jcmVhdGVUcmFja2VyKGEpO2wubW92ZShuKyIgIi5yZXBlYXQoby1uLmxlbmd0aCkpLGwuc2hpZnQobyk7bGV0IGM9ci5lbnRlcigibGlzdEl0ZW0iKSxkPXIuaW5kZW50TGluZXMoci5jb250YWluZXJGbG93KHQsbC5jdXJyZW50KCkpLGYpO3JldHVybiBjKCksZDtmdW5jdGlvbiBmKHAsaCxtKXtyZXR1cm4gaD8obT8iIjoiICIucmVwZWF0KG8pKStwOihtP246bisiICIucmVwZWF0KG8tbi5sZW5ndGgpKStwfWkoZiwibWFwIil9dmFyIHlBdD11KCgpPT57ZjFlKCk7eEF0KCk7aSh2QXQsImxpc3RJdGVtIil9KTtmdW5jdGlvbiB3QXQodCxlLHIsYSl7bGV0IHM9ci5lbnRlcigicGFyYWdyYXBoIiksbj1yLmVudGVyKCJwaHJhc2luZyIpLG89ci5jb250YWluZXJQaHJhc2luZyh0LGEpO3JldHVybiBuKCkscygpLG99dmFyIGtBdD11KCgpPT57aSh3QXQsInBhcmFncmFwaCIpfSk7dmFyIHh2ZSxTQXQ9dSgoKT0+e2ExZSgpO3h2ZT1yNChbImJyZWFrIiwiZGVsZXRlIiwiZW1waGFzaXMiLCJmb290bm90ZSIsImZvb3Rub3RlUmVmZXJlbmNlIiwiaW1hZ2UiLCJpbWFnZVJlZmVyZW5jZSIsImlubGluZUNvZGUiLCJpbmxpbmVNYXRoIiwibGluayIsImxpbmtSZWZlcmVuY2UiLCJtZHhKc3hUZXh0RWxlbWVudCIsIm1keFRleHRFeHByZXNzaW9uIiwic3Ryb25nIiwidGV4dCIsInRleHREaXJlY3RpdmUiXSl9KTt2YXIgTUF0PXUoKCk9PntTQXQoKX0pO2Z1bmN0aW9uIENBdCh0LGUscixhKXtyZXR1cm4odC5jaGlsZHJlbi5zb21lKGZ1bmN0aW9uKG8pe3JldHVybiB4dmUobyl9KT9yLmNvbnRhaW5lclBocmFzaW5nOnIuY29udGFpbmVyRmxvdykuY2FsbChyLHQsYSl9dmFyIHpBdD11KCgpPT57TUF0KCk7aShDQXQsInJvb3QiKX0pO2Z1bmN0aW9uIF9BdCh0KXtsZXQgZT10Lm9wdGlvbnMuc3Ryb25nfHwiKiI7aWYoZSE9PSIqIiYmZSE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgc3Ryb25nIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuc3Ryb25nYCwgZXhwZWN0ZWQgYCpgLCBvciBgX2AiKTtyZXR1cm4gZX12YXIgVEF0PXUoKCk9PntpKF9BdCwiY2hlY2tTdHJvbmciKX0pO2Z1bmN0aW9uIHZ2ZSh0LGUscixhKXtsZXQgcz1fQXQociksbj1yLmVudGVyKCJzdHJvbmciKSxvPXIuY3JlYXRlVHJhY2tlcihhKSxsPW8ubW92ZShzK3MpLGM9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcodCx7YWZ0ZXI6cyxiZWZvcmU6bCwuLi5vLmN1cnJlbnQoKX0pKSxkPWMuY2hhckNvZGVBdCgwKSxmPWR4KGEuYmVmb3JlLmNoYXJDb2RlQXQoYS5iZWZvcmUubGVuZ3RoLTEpLGQscyk7Zi5pbnNpZGUmJihjPVcxKGQpK2Muc2xpY2UoMSkpO2xldCBwPWMuY2hhckNvZGVBdChjLmxlbmd0aC0xKSxoPWR4KGEuYWZ0ZXIuY2hhckNvZGVBdCgwKSxwLHMpO2guaW5zaWRlJiYoYz1jLnNsaWNlKDAsLTEpK1cxKHApKTtsZXQgbT1vLm1vdmUocytzKTtyZXR1cm4gbigpLHIuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpoLm91dHNpZGUsYmVmb3JlOmYub3V0c2lkZX0sbCtjK219ZnVuY3Rpb24gQXBhKHQsZSxyKXtyZXR1cm4gci5vcHRpb25zLnN0cm9uZ3x8IioifXZhciBMQXQ9dSgoKT0+e1RBdCgpO2N4KCk7bnZlKCk7dnZlLnBlZWs9QXBhO2kodnZlLCJzdHJvbmciKTtpKEFwYSwic3Ryb25nUGVlayIpfSk7ZnVuY3Rpb24gREF0KHQsZSxyLGEpe3JldHVybiByLnNhZmUodC52YWx1ZSxhKX12YXIgJEF0PXUoKCk9PntpKERBdCwidGV4dCIpfSk7ZnVuY3Rpb24gQUF0KHQpe2xldCBlPXQub3B0aW9ucy5ydWxlUmVwZXRpdGlvbnx8MztpZihlPDMpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHJ1bGVzIHdpdGggcmVwZXRpdGlvbiBgIitlKyJgIGZvciBgb3B0aW9ucy5ydWxlUmVwZXRpdGlvbmAsIGV4cGVjdGVkIGAzYCBvciBtb3JlIik7cmV0dXJuIGV9dmFyIEVBdD11KCgpPT57aShBQXQsImNoZWNrUnVsZVJlcGV0aXRpb24iKX0pO2Z1bmN0aW9uIElBdCh0LGUscil7bGV0IGE9KGgxZShyKSsoci5vcHRpb25zLnJ1bGVTcGFjZXM/IiAiOiIiKSkucmVwZWF0KEFBdChyKSk7cmV0dXJuIHIub3B0aW9ucy5ydWxlU3BhY2VzP2Euc2xpY2UoMCwtMSk6YX12YXIgUEF0PXUoKCk9PntFQXQoKTtidmUoKTtpKElBdCwidGhlbWF0aWNCcmVhayIpfSk7dmFyIFNoLHl2ZT11KCgpPT57UiR0KCk7QiR0KCk7VyR0KCk7WSR0KCk7USR0KCk7YUF0KCk7aUF0KCk7c0F0KCk7bkF0KCk7b0F0KCk7Y0F0KCk7ZEF0KCk7Z0F0KCk7eUF0KCk7a0F0KCk7ekF0KCk7TEF0KCk7JEF0KCk7UEF0KCk7U2g9e2Jsb2NrcXVvdGU6TyR0LGJyZWFrOml2ZSxjb2RlOlUkdCxkZWZpbml0aW9uOkckdCxlbXBoYXNpczpvdmUsaGFyZEJyZWFrOml2ZSxoZWFkaW5nOnJBdCxodG1sOmR2ZSxpbWFnZTp1dmUsaW1hZ2VSZWZlcmVuY2U6cHZlLGlubGluZUNvZGU6ZnZlLGxpbms6bXZlLGxpbmtSZWZlcmVuY2U6Z3ZlLGxpc3Q6bUF0LGxpc3RJdGVtOnZBdCxwYXJhZ3JhcGg6d0F0LHJvb3Q6Q0F0LHN0cm9uZzp2dmUsdGV4dDpEQXQsdGhlbWF0aWNCcmVhazpJQXR9fSk7ZnVuY3Rpb24gRXBhKHQsZSxyLGEpe2lmKGUudHlwZT09PSJjb2RlIiYmTU0oZSxhKSYmKHQudHlwZT09PSJsaXN0Inx8dC50eXBlPT09ZS50eXBlJiZNTSh0LGEpKSlyZXR1cm4hMTtpZigic3ByZWFkImluIHImJnR5cGVvZiByLnNwcmVhZD09ImJvb2xlYW4iKXJldHVybiB0LnR5cGU9PT0icGFyYWdyYXBoIiYmKHQudHlwZT09PWUudHlwZXx8ZS50eXBlPT09ImRlZmluaXRpb24ifHxlLnR5cGU9PT0iaGVhZGluZyImJnAxZShlLGEpKT92b2lkIDA6ci5zcHJlYWQ/MTowfXZhciBOQXQsT0F0PXUoKCk9PntzdmUoKTtjdmUoKTtOQXQ9W0VwYV07aShFcGEsImpvaW5EZWZhdWx0cyIpfSk7dmFyIE1oLFJBdCxGQXQ9dSgoKT0+e01oPVsiYXV0b2xpbmsiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJkZXN0aW5hdGlvblJhdyIsInJlZmVyZW5jZSIsInRpdGxlUXVvdGUiLCJ0aXRsZUFwb3N0cm9waGUiXSxSQXQ9W3tjaGFyYWN0ZXI6IgkiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiCSIsYmVmb3JlOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiCSIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSJdfSx7Y2hhcmFjdGVyOiJcciIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YVRpbGRlIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiaGVhZGluZ0F0eCJdfSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhVGlsZGUiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJoZWFkaW5nQXR4Il19LHtjaGFyYWN0ZXI6IiAiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiICIsYmVmb3JlOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiICIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSJdfSx7Y2hhcmFjdGVyOiIhIixhZnRlcjoiXFxbIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0Ok1ofSx7Y2hhcmFjdGVyOiciJyxpbkNvbnN0cnVjdDoidGl0bGVRdW90ZSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiIyJ9LHtjaGFyYWN0ZXI6IiMiLGluQ29uc3RydWN0OiJoZWFkaW5nQXR4IixhZnRlcjpgKD86W1xyCl18JClgfSx7Y2hhcmFjdGVyOiImIixhZnRlcjoiWyNBLVphLXpdIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiInIixpbkNvbnN0cnVjdDoidGl0bGVBcG9zdHJvcGhlIn0se2NoYXJhY3RlcjoiKCIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uUmF3In0se2JlZm9yZToiXFxdIixjaGFyYWN0ZXI6IigiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6TWh9LHthdEJyZWFrOiEwLGJlZm9yZToiXFxkKyIsY2hhcmFjdGVyOiIpIn0se2NoYXJhY3RlcjoiKSIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uUmF3In0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIqIixhZnRlcjpgKD86WyAJXHIKKl0pYH0se2NoYXJhY3RlcjoiKiIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpNaH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIrIixhZnRlcjpgKD86WyAJXHIKXSlgfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOmAoPzpbIAlccgotXSlgfSx7YXRCcmVhazohMCxiZWZvcmU6IlxcZCsiLGNoYXJhY3RlcjoiLiIsYWZ0ZXI6YCg/OlsgCVxyCl18JClgfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IjwiLGFmdGVyOiJbIS8/QS1aYS16XSJ9LHtjaGFyYWN0ZXI6IjwiLGFmdGVyOiJbIS8/QS1aYS16XSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpNaH0se2NoYXJhY3RlcjoiPCIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uTGl0ZXJhbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPiJ9LHtjaGFyYWN0ZXI6Ij4iLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvbkxpdGVyYWwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IlsifSx7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0Ok1ofSx7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicmVmZXJlbmNlIl19LHtjaGFyYWN0ZXI6IlxcIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6Il0iLGluQ29uc3RydWN0OlsibGFiZWwiLCJyZWZlcmVuY2UiXX0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJfIn0se2NoYXJhY3RlcjoiXyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpNaH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJgIn0se2NoYXJhY3RlcjoiYCIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCJdfSx7Y2hhcmFjdGVyOiJgIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0Ok1ofSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6In4ifV19KTtmdW5jdGlvbiBMdSh0KXtsZXQgZT0iJiIrdCsiOyI7QkF0LmlubmVySFRNTD1lO2xldCByPUJBdC50ZXh0Q29udGVudDtyZXR1cm4gci5jaGFyQ29kZUF0KHIubGVuZ3RoLTEpPT09NTkmJnQhPT0ic2VtaSJ8fHI9PT1lPyExOnJ9dmFyIEJBdCx6TT11KCgpPT57QkF0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtpKEx1LCJkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gcHgodCxlKXtsZXQgcj1OdW1iZXIucGFyc2VJbnQodCxlKTtyZXR1cm4gcjw5fHxyPT09MTF8fHI+MTMmJnI8MzJ8fHI+MTI2JiZyPDE2MHx8cj41NTI5NSYmcjw1NzM0NHx8cj42NDk3NSYmcjw2NTAwOHx8KHImNjU1MzUpPT09NjU1MzV8fChyJjY1NTM1KT09PTY1NTM0fHxyPjExMTQxMTE/Ilx1RkZGRCI6U3RyaW5nLmZyb21Db2RlUG9pbnQocil9dmFyIG0xZT11KCgpPT57aShweCwiZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gZzFlKHQpe3JldHVybiB0LnJlcGxhY2UoSXBhLFBwYSl9ZnVuY3Rpb24gUHBhKHQsZSxyKXtpZihlKXJldHVybiBlO2lmKHIuY2hhckNvZGVBdCgwKT09PTM1KXtsZXQgcz1yLmNoYXJDb2RlQXQoMSksbj1zPT09MTIwfHxzPT09ODg7cmV0dXJuIHB4KHIuc2xpY2Uobj8yOjEpLG4/MTY6MTApfXJldHVybiBMdShyKXx8dH12YXIgSXBhLHd2ZT11KCgpPT57ek0oKTttMWUoKTtJcGE9L1xcKFshLS86LUBbLWB7LX5dKXwmKCMoPzpcZHsxLDd9fHhbXGRhLWZdezEsNn0pfFtcZGEtel17MSwzMX0pOy9naTtpKGcxZSwiZGVjb2RlU3RyaW5nIik7aShQcGEsImRlY29kZSIpfSk7ZnVuY3Rpb24gSEF0KHQpe3JldHVybiB0LmxhYmVsfHwhdC5pZGVudGlmaWVyP3QubGFiZWx8fCIiOmcxZSh0LmlkZW50aWZpZXIpfXZhciBxQXQ9dSgoKT0+e3d2ZSgpO2koSEF0LCJhc3NvY2lhdGlvbiIpfSk7ZnVuY3Rpb24gVkF0KHQpe2lmKCF0Ll9jb21waWxlZCl7bGV0IGU9KHQuYXRCcmVhaz8iW1xcclxcbl1bXFx0IF0qIjoiIikrKHQuYmVmb3JlPyIoPzoiK3QuYmVmb3JlKyIpIjoiIik7dC5fY29tcGlsZWQ9bmV3IFJlZ0V4cCgoZT8iKCIrZSsiKSI6IiIpKygvW3xcXHt9KClbXF1eJCsqPy4tXS8udGVzdCh0LmNoYXJhY3Rlcik/IlxcIjoiIikrdC5jaGFyYWN0ZXIrKHQuYWZ0ZXI/Iig/OiIrdC5hZnRlcisiKSI6IiIpLCJnIil9cmV0dXJuIHQuX2NvbXBpbGVkfXZhciBqQXQ9dSgoKT0+e2koVkF0LCJjb21waWxlUGF0dGVybiIpfSk7ZnVuY3Rpb24gVUF0KHQsZSxyKXtsZXQgYT1lLmluZGV4U3RhY2sscz10LmNoaWxkcmVufHxbXSxuPVtdLG89LTEsbD1yLmJlZm9yZSxjO2EucHVzaCgtMSk7bGV0IGQ9ZS5jcmVhdGVUcmFja2VyKHIpO2Zvcig7KytvPHMubGVuZ3RoOyl7bGV0IGY9c1tvXSxwO2lmKGFbYS5sZW5ndGgtMV09byxvKzE8cy5sZW5ndGgpe2xldCB2PWUuaGFuZGxlLmhhbmRsZXJzW3NbbysxXS50eXBlXTt2JiZ2LnBlZWsmJih2PXYucGVlaykscD12P3Yoc1tvKzFdLHQsZSx7YmVmb3JlOiIiLGFmdGVyOiIiLC4uLmQuY3VycmVudCgpfSkuY2hhckF0KDApOiIifWVsc2UgcD1yLmFmdGVyO24ubGVuZ3RoPjAmJihsPT09IlxyInx8bD09PWAKYCkmJmYudHlwZT09PSJodG1sIiYmKG5bbi5sZW5ndGgtMV09bltuLmxlbmd0aC0xXS5yZXBsYWNlKC8oXHI/XG58XHIpJC8sIiAiKSxsPSIgIixkPWUuY3JlYXRlVHJhY2tlcihyKSxkLm1vdmUobi5qb2luKCIiKSkpO2xldCBoPWUuaGFuZGxlKGYsdCxlLHsuLi5kLmN1cnJlbnQoKSxhZnRlcjpwLGJlZm9yZTpsfSk7YyYmYz09PWguc2xpY2UoMCwxKSYmKGg9VzEoYy5jaGFyQ29kZUF0KDApKStoLnNsaWNlKDEpKTtsZXQgbT1lLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbztlLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz12b2lkIDAsYz12b2lkIDAsbSYmKG4ubGVuZ3RoPjAmJm0uYmVmb3JlJiZsPT09bltuLmxlbmd0aC0xXS5zbGljZSgtMSkmJihuW24ubGVuZ3RoLTFdPW5bbi5sZW5ndGgtMV0uc2xpY2UoMCwtMSkrVzEobC5jaGFyQ29kZUF0KDApKSksbS5hZnRlciYmKGM9cCkpLGQubW92ZShoKSxuLnB1c2goaCksbD1oLnNsaWNlKC0xKX1yZXR1cm4gYS5wb3AoKSxuLmpvaW4oIiIpfXZhciBXQXQ9dSgoKT0+e2N4KCk7aShVQXQsImNvbnRhaW5lclBocmFzaW5nIil9KTtmdW5jdGlvbiBHQXQodCxlLHIpe2xldCBhPWUuaW5kZXhTdGFjayxzPXQuY2hpbGRyZW58fFtdLG49ZS5jcmVhdGVUcmFja2VyKHIpLG89W10sbD0tMTtmb3IoYS5wdXNoKC0xKTsrK2w8cy5sZW5ndGg7KXtsZXQgYz1zW2xdO2FbYS5sZW5ndGgtMV09bCxvLnB1c2gobi5tb3ZlKGUuaGFuZGxlKGMsdCxlLHtiZWZvcmU6YApgLGFmdGVyOmAKYCwuLi5uLmN1cnJlbnQoKX0pKSksYy50eXBlIT09Imxpc3QiJiYoZS5idWxsZXRMYXN0VXNlZD12b2lkIDApLGw8cy5sZW5ndGgtMSYmby5wdXNoKG4ubW92ZShOcGEoYyxzW2wrMV0sdCxlKSkpfXJldHVybiBhLnBvcCgpLG8uam9pbigiIil9ZnVuY3Rpb24gTnBhKHQsZSxyLGEpe2xldCBzPWEuam9pbi5sZW5ndGg7Zm9yKDtzLS07KXtsZXQgbj1hLmpvaW5bc10odCxlLHIsYSk7aWYobj09PSEwfHxuPT09MSlicmVhaztpZih0eXBlb2Ygbj09Im51bWJlciIpcmV0dXJuYApgLnJlcGVhdCgxK24pO2lmKG49PT0hMSlyZXR1cm5gCgo8IS0tLS0+CgpgfXJldHVybmAKCmB9dmFyIFlBdD11KCgpPT57aShHQXQsImNvbnRhaW5lckZsb3ciKTtpKE5wYSwiYmV0d2VlbiIpfSk7ZnVuY3Rpb24gS0F0KHQsZSl7bGV0IHI9W10sYT0wLHM9MCxuO2Zvcig7bj1PcGEuZXhlYyh0KTspbyh0LnNsaWNlKGEsbi5pbmRleCkpLHIucHVzaChuWzBdKSxhPW4uaW5kZXgrblswXS5sZW5ndGgscysrO3JldHVybiBvKHQuc2xpY2UoYSkpLHIuam9pbigiIik7ZnVuY3Rpb24gbyhsKXtyLnB1c2goZShsLHMsIWwpKX1pKG8sIm9uZSIpfXZhciBPcGEsWkF0PXUoKCk9PntPcGE9L1xyP1xufFxyL2c7aShLQXQsImluZGVudExpbmVzIil9KTtmdW5jdGlvbiBYQXQodCxlLHIpe2xldCBhPShyLmJlZm9yZXx8IiIpKyhlfHwiIikrKHIuYWZ0ZXJ8fCIiKSxzPVtdLG49W10sbz17fSxsPS0xO2Zvcig7KytsPHQudW5zYWZlLmxlbmd0aDspe2xldCBmPXQudW5zYWZlW2xdO2lmKCFsMWUodC5zdGFjayxmKSljb250aW51ZTtsZXQgcD10LmNvbXBpbGVQYXR0ZXJuKGYpLGg7Zm9yKDtoPXAuZXhlYyhhKTspe2xldCBtPSJiZWZvcmUiaW4gZnx8ISFmLmF0QnJlYWssdj0iYWZ0ZXIiaW4gZixiPWguaW5kZXgrKG0/aFsxXS5sZW5ndGg6MCk7cy5pbmNsdWRlcyhiKT8ob1tiXS5iZWZvcmUmJiFtJiYob1tiXS5iZWZvcmU9ITEpLG9bYl0uYWZ0ZXImJiF2JiYob1tiXS5hZnRlcj0hMSkpOihzLnB1c2goYiksb1tiXT17YmVmb3JlOm0sYWZ0ZXI6dn0pfX1zLnNvcnQoUnBhKTtsZXQgYz1yLmJlZm9yZT9yLmJlZm9yZS5sZW5ndGg6MCxkPWEubGVuZ3RoLShyLmFmdGVyP3IuYWZ0ZXIubGVuZ3RoOjApO2ZvcihsPS0xOysrbDxzLmxlbmd0aDspe2xldCBmPXNbbF07ZjxjfHxmPj1kfHxmKzE8ZCYmc1tsKzFdPT09ZisxJiZvW2ZdLmFmdGVyJiYhb1tmKzFdLmJlZm9yZSYmIW9bZisxXS5hZnRlcnx8c1tsLTFdPT09Zi0xJiZvW2ZdLmJlZm9yZSYmIW9bZi0xXS5iZWZvcmUmJiFvW2YtMV0uYWZ0ZXJ8fChjIT09ZiYmbi5wdXNoKFFBdChhLnNsaWNlKGMsZiksIlxcIikpLGM9ZiwvWyEtLzotQFstYHstfl0vLnRlc3QoYS5jaGFyQXQoZikpJiYoIXIuZW5jb2RlfHwhci5lbmNvZGUuaW5jbHVkZXMoYS5jaGFyQXQoZikpKT9uLnB1c2goIlxcIik6KG4ucHVzaChXMShhLmNoYXJDb2RlQXQoZikpKSxjKyspKX1yZXR1cm4gbi5wdXNoKFFBdChhLnNsaWNlKGMsZCksci5hZnRlcikpLG4uam9pbigiIil9ZnVuY3Rpb24gUnBhKHQsZSl7cmV0dXJuIHQtZX1mdW5jdGlvbiBRQXQodCxlKXtsZXQgcj0vXFwoPz1bIS0vOi1AWy1gey1+XSkvZyxhPVtdLHM9W10sbj10K2Usbz0tMSxsPTAsYztmb3IoO2M9ci5leGVjKG4pOylhLnB1c2goYy5pbmRleCk7Zm9yKDsrK288YS5sZW5ndGg7KWwhPT1hW29dJiZzLnB1c2godC5zbGljZShsLGFbb10pKSxzLnB1c2goIlxcIiksbD1hW29dO3JldHVybiBzLnB1c2godC5zbGljZShsKSkscy5qb2luKCIiKX12YXIgSkF0PXUoKCk9PntjeCgpO2F2ZSgpO2koWEF0LCJzYWZlIik7aShScGEsIm51bWVyaWNhbCIpO2koUUF0LCJlc2NhcGVCYWNrc2xhc2hlcyIpfSk7ZnVuY3Rpb24gZUV0KHQpe2xldCBlPXR8fHt9LHI9ZS5ub3d8fHt9LGE9ZS5saW5lU2hpZnR8fDAscz1yLmxpbmV8fDEsbj1yLmNvbHVtbnx8MTtyZXR1cm57bW92ZTpjLGN1cnJlbnQ6byxzaGlmdDpsfTtmdW5jdGlvbiBvKCl7cmV0dXJue25vdzp7bGluZTpzLGNvbHVtbjpufSxsaW5lU2hpZnQ6YX19ZnVuY3Rpb24gbChkKXthKz1kfWZ1bmN0aW9uIGMoZCl7bGV0IGY9ZHx8IiIscD1mLnNwbGl0KC9ccj9cbnxcci9nKSxoPXBbcC5sZW5ndGgtMV07cmV0dXJuIHMrPXAubGVuZ3RoLTEsbj1wLmxlbmd0aD09PTE/bitoLmxlbmd0aDoxK2gubGVuZ3RoK2EsZn19dmFyIHRFdD11KCgpPT57aShlRXQsInRyYWNrIil9KTtmdW5jdGlvbiBrdmUodCxlKXtsZXQgcj1lfHx7fSxhPXthc3NvY2lhdGlvbklkOkhBdCxjb250YWluZXJQaHJhc2luZzpxcGEsY29udGFpbmVyRmxvdzpWcGEsY3JlYXRlVHJhY2tlcjplRXQsY29tcGlsZVBhdHRlcm46VkF0LGVudGVyOm4saGFuZGxlcnM6ey4uLlNofSxoYW5kbGU6dm9pZCAwLGluZGVudExpbmVzOktBdCxpbmRleFN0YWNrOltdLGpvaW46Wy4uLk5BdF0sb3B0aW9uczp7fSxzYWZlOmpwYSxzdGFjazpbXSx1bnNhZmU6Wy4uLlJBdF19O3J2ZShhLHIpLGEub3B0aW9ucy50aWdodERlZmluaXRpb25zJiZhLmpvaW4ucHVzaChIcGEpLGEuaGFuZGxlPW8xZSgidHlwZSIse2ludmFsaWQ6RnBhLHVua25vd246QnBhLGhhbmRsZXJzOmEuaGFuZGxlcnN9KTtsZXQgcz1hLmhhbmRsZSh0LHZvaWQgMCxhLHtiZWZvcmU6YApgLGFmdGVyOmAKYCxub3c6e2xpbmU6MSxjb2x1bW46MX0sbGluZVNoaWZ0OjB9KTtyZXR1cm4gcyYmcy5jaGFyQ29kZUF0KHMubGVuZ3RoLTEpIT09MTAmJnMuY2hhckNvZGVBdChzLmxlbmd0aC0xKSE9PTEzJiYocys9YApgKSxzO2Z1bmN0aW9uIG4obyl7cmV0dXJuIGEuc3RhY2sucHVzaChvKSxsO2Z1bmN0aW9uIGwoKXthLnN0YWNrLnBvcCgpfWkobCwiZXhpdCIpfWkobiwiZW50ZXIiKX1mdW5jdGlvbiBGcGEodCl7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaGFuZGxlIHZhbHVlIGAiK3QrImAsIGV4cGVjdGVkIG5vZGUiKX1mdW5jdGlvbiBCcGEodCl7bGV0IGU9dDt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBoYW5kbGUgdW5rbm93biBub2RlIGAiK2UudHlwZSsiYCIpfWZ1bmN0aW9uIEhwYSh0LGUpe2lmKHQudHlwZT09PSJkZWZpbml0aW9uIiYmdC50eXBlPT09ZS50eXBlKXJldHVybiAwfWZ1bmN0aW9uIHFwYSh0LGUpe3JldHVybiBVQXQodCx0aGlzLGUpfWZ1bmN0aW9uIFZwYSh0LGUpe3JldHVybiBHQXQodCx0aGlzLGUpfWZ1bmN0aW9uIGpwYSh0LGUpe3JldHVybiBYQXQodGhpcyx0LGUpfXZhciByRXQ9dSgoKT0+e3R2ZSgpO04kdCgpO3l2ZSgpO09BdCgpO0ZBdCgpO3FBdCgpO2pBdCgpO1dBdCgpO1lBdCgpO1pBdCgpO0pBdCgpO3RFdCgpO2koa3ZlLCJ0b01hcmtkb3duIik7aShGcGEsImludmFsaWQiKTtpKEJwYSwidW5rbm93biIpO2koSHBhLCJqb2luRGVmaW5pdGlvbiIpO2kocXBhLCJjb250YWluZXJQaHJhc2luZ0JvdW5kIik7aShWcGEsImNvbnRhaW5lckZsb3dCb3VuZCIpO2koanBhLCJzYWZlQm91bmQiKX0pO3ZhciBiMWU9dSgoKT0+e3JFdCgpO3l2ZSgpfSk7ZnVuY3Rpb24gTXZlKCl7cmV0dXJue2VudGVyOnt0YWJsZTpVcGEsdGFibGVEYXRhOmFFdCx0YWJsZUhlYWRlcjphRXQsdGFibGVSb3c6R3BhfSxleGl0Ontjb2RlVGV4dDpZcGEsdGFibGU6V3BhLHRhYmxlRGF0YTpTdmUsdGFibGVIZWFkZXI6U3ZlLHRhYmxlUm93OlN2ZX19fWZ1bmN0aW9uIFVwYSh0KXtsZXQgZT10Ll9hbGlnbjt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZSIsYWxpZ246ZS5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHI9PT0ibm9uZSI/bnVsbDpyfSksY2hpbGRyZW46W119LHQpLHRoaXMuZGF0YS5pblRhYmxlPSEwfWZ1bmN0aW9uIFdwYSh0KXt0aGlzLmV4aXQodCksdGhpcy5kYXRhLmluVGFibGU9dm9pZCAwfWZ1bmN0aW9uIEdwYSh0KXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZVJvdyIsY2hpbGRyZW46W119LHQpfWZ1bmN0aW9uIFN2ZSh0KXt0aGlzLmV4aXQodCl9ZnVuY3Rpb24gYUV0KHQpe3RoaXMuZW50ZXIoe3R5cGU6InRhYmxlQ2VsbCIsY2hpbGRyZW46W119LHQpfWZ1bmN0aW9uIFlwYSh0KXtsZXQgZT10aGlzLnJlc3VtZSgpO3RoaXMuZGF0YS5pblRhYmxlJiYoZT1lLnJlcGxhY2UoL1xcKFtcXHxdKS9nLEtwYSkpO2xldCByPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIudmFsdWU9ZSx0aGlzLmV4aXQodCl9ZnVuY3Rpb24gS3BhKHQsZSl7cmV0dXJuIGU9PT0ifCI/ZTp0fWZ1bmN0aW9uIEN2ZSh0KXtsZXQgZT10fHx7fSxyPWUudGFibGVDZWxsUGFkZGluZyxhPWUudGFibGVQaXBlQWxpZ24scz1lLnN0cmluZ0xlbmd0aCxuPXI/IiAiOiJ8IjtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJcciIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHtjaGFyYWN0ZXI6YApgLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6InwiLGFmdGVyOiJbCSA6LV0ifSx7Y2hhcmFjdGVyOiJ8IixpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI6IixhZnRlcjoiLSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6Ils6fC1dIn1dLGhhbmRsZXJzOntpbmxpbmVDb2RlOmgsdGFibGU6byx0YWJsZUNlbGw6Yyx0YWJsZVJvdzpsfX07ZnVuY3Rpb24gbyhtLHYsYixnKXtyZXR1cm4gZChmKG0sYixnKSxtLmFsaWduKX1mdW5jdGlvbiBsKG0sdixiLGcpe2xldCB5PXAobSxiLGcpLGs9ZChbeV0pO3JldHVybiBrLnNsaWNlKDAsay5pbmRleE9mKGAKYCkpfWZ1bmN0aW9uIGMobSx2LGIsZyl7bGV0IHk9Yi5lbnRlcigidGFibGVDZWxsIiksaz1iLmVudGVyKCJwaHJhc2luZyIpLE09Yi5jb250YWluZXJQaHJhc2luZyhtLHsuLi5nLGJlZm9yZTpuLGFmdGVyOm59KTtyZXR1cm4gaygpLHkoKSxNfWZ1bmN0aW9uIGQobSx2KXtyZXR1cm4gQSR0KG0se2FsaWduOnYsYWxpZ25EZWxpbWl0ZXJzOmEscGFkZGluZzpyLHN0cmluZ0xlbmd0aDpzfSl9ZnVuY3Rpb24gZihtLHYsYil7bGV0IGc9bS5jaGlsZHJlbix5PS0xLGs9W10sTT12LmVudGVyKCJ0YWJsZSIpO2Zvcig7Kyt5PGcubGVuZ3RoOylrW3ldPXAoZ1t5XSx2LGIpO3JldHVybiBNKCksa31mdW5jdGlvbiBwKG0sdixiKXtsZXQgZz1tLmNoaWxkcmVuLHk9LTEsaz1bXSxNPXYuZW50ZXIoInRhYmxlUm93Iik7Zm9yKDsrK3k8Zy5sZW5ndGg7KWtbeV09YyhnW3ldLG0sdixiKTtyZXR1cm4gTSgpLGt9ZnVuY3Rpb24gaChtLHYsYil7bGV0IGc9U2guaW5saW5lQ29kZShtLHYsYik7cmV0dXJuIGIuc3RhY2suaW5jbHVkZXMoInRhYmxlQ2VsbCIpJiYoZz1nLnJlcGxhY2UoL1x8L2csIlxcJCYiKSksZ319dmFyIGlFdD11KCgpPT57Q3UoKTtFJHQoKTtiMWUoKTtpKE12ZSwiZ2ZtVGFibGVGcm9tTWFya2Rvd24iKTtpKFVwYSwiZW50ZXJUYWJsZSIpO2koV3BhLCJleGl0VGFibGUiKTtpKEdwYSwiZW50ZXJSb3ciKTtpKFN2ZSwiZXhpdCIpO2koYUV0LCJlbnRlckNlbGwiKTtpKFlwYSwiZXhpdENvZGVUZXh0Iik7aShLcGEsInJlcGxhY2UiKTtpKEN2ZSwiZ2ZtVGFibGVUb01hcmtkb3duIil9KTt2YXIgc0V0PXUoKCk9PntpRXQoKX0pO2Z1bmN0aW9uIHp2ZSgpe3JldHVybntleGl0Ont0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkOm5FdCx0YXNrTGlzdENoZWNrVmFsdWVVbmNoZWNrZWQ6bkV0LHBhcmFncmFwaDpacGF9fX1mdW5jdGlvbiBfdmUoKXtyZXR1cm57dW5zYWZlOlt7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7bGlzdEl0ZW06UXBhfX19ZnVuY3Rpb24gbkV0KHQpe2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07ZS50eXBlLGUuY2hlY2tlZD10LnR5cGU9PT0idGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCJ9ZnVuY3Rpb24gWnBhKHQpe2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07aWYoZSYmZS50eXBlPT09Imxpc3RJdGVtIiYmdHlwZW9mIGUuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgcj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3IudHlwZTtsZXQgYT1yLmNoaWxkcmVuWzBdO2lmKGEmJmEudHlwZT09PSJ0ZXh0Iil7bGV0IHM9ZS5jaGlsZHJlbixuPS0xLG87Zm9yKDsrK248cy5sZW5ndGg7KXtsZXQgbD1zW25dO2lmKGwudHlwZT09PSJwYXJhZ3JhcGgiKXtvPWw7YnJlYWt9fW89PT1yJiYoYS52YWx1ZT1hLnZhbHVlLnNsaWNlKDEpLGEudmFsdWUubGVuZ3RoPT09MD9yLmNoaWxkcmVuLnNoaWZ0KCk6ci5wb3NpdGlvbiYmYS5wb3NpdGlvbiYmdHlwZW9mIGEucG9zaXRpb24uc3RhcnQub2Zmc2V0PT0ibnVtYmVyIiYmKGEucG9zaXRpb24uc3RhcnQuY29sdW1uKyssYS5wb3NpdGlvbi5zdGFydC5vZmZzZXQrKyxyLnBvc2l0aW9uLnN0YXJ0PU9iamVjdC5hc3NpZ24oe30sYS5wb3NpdGlvbi5zdGFydCkpKX19dGhpcy5leGl0KHQpfWZ1bmN0aW9uIFFwYSh0LGUscixhKXtsZXQgcz10LmNoaWxkcmVuWzBdLG49dHlwZW9mIHQuY2hlY2tlZD09ImJvb2xlYW4iJiZzJiZzLnR5cGU9PT0icGFyYWdyYXBoIixvPSJbIisodC5jaGVja2VkPyJ4IjoiICIpKyJdICIsbD1yLmNyZWF0ZVRyYWNrZXIoYSk7biYmbC5tb3ZlKG8pO2xldCBjPVNoLmxpc3RJdGVtKHQsZSxyLHsuLi5hLC4uLmwuY3VycmVudCgpfSk7cmV0dXJuIG4mJihjPWMucmVwbGFjZSgvXig/OlsqKy1dfFxkK1wuKShbXHJcbl18IHsxLDN9KS8sZCkpLGM7ZnVuY3Rpb24gZChmKXtyZXR1cm4gZitvfWkoZCwiY2hlY2siKX12YXIgb0V0PXUoKCk9PntDdSgpO2IxZSgpO2koenZlLCJnZm1UYXNrTGlzdEl0ZW1Gcm9tTWFya2Rvd24iKTtpKF92ZSwiZ2ZtVGFza0xpc3RJdGVtVG9NYXJrZG93biIpO2kobkV0LCJleGl0Q2hlY2siKTtpKFpwYSwiZXhpdFBhcmFncmFwaFdpdGhUYXNrTGlzdEl0ZW0iKTtpKFFwYSwibGlzdEl0ZW1XaXRoVGFza0xpc3RJdGVtIil9KTt2YXIgbEV0PXUoKCk9PntvRXQoKX0pO2Z1bmN0aW9uIFR2ZSgpe3JldHVybltLeGUoKSxReGUoKSxKeGUoKSxNdmUoKSx6dmUoKV19ZnVuY3Rpb24gTHZlKHQpe3JldHVybntleHRlbnNpb25zOltaeGUoKSxYeGUodCksZXZlKCksQ3ZlKHQpLF92ZSgpXX19dmFyIGNFdD11KCgpPT57UyR0KCk7XyR0KCk7RCR0KCk7c0V0KCk7bEV0KCk7aShUdmUsImdmbUZyb21NYXJrZG93biIpO2koTHZlLCJnZm1Ub01hcmtkb3duIil9KTt2YXIgZEV0PXUoKCk9PntjRXQoKX0pO2Z1bmN0aW9uIFhpKHQsZSxyLGEpe2xldCBzPXQubGVuZ3RoLG49MCxvO2lmKGU8MD9lPS1lPnM/MDpzK2U6ZT1lPnM/czplLHI9cj4wP3I6MCxhLmxlbmd0aDwxZTQpbz1BcnJheS5mcm9tKGEpLG8udW5zaGlmdChlLHIpLHQuc3BsaWNlKC4uLm8pO2Vsc2UgZm9yKHImJnQuc3BsaWNlKGUscik7bjxhLmxlbmd0aDspbz1hLnNsaWNlKG4sbisxZTQpLG8udW5zaGlmdChlLDApLHQuc3BsaWNlKC4uLm8pLG4rPTFlNCxlKz0xZTR9ZnVuY3Rpb24geXModCxlKXtyZXR1cm4gdC5sZW5ndGg+MD8oWGkodCx0Lmxlbmd0aCwwLGUpLHQpOmV9dmFyIGcwPXUoKCk9PntpKFhpLCJzcGxpY2UiKTtpKHlzLCJwdXNoIil9KTtmdW5jdGlvbiB4MWUodCl7bGV0IGU9e30scj0tMTtmb3IoOysrcjx0Lmxlbmd0aDspWHBhKGUsdFtyXSk7cmV0dXJuIGV9ZnVuY3Rpb24gWHBhKHQsZSl7bGV0IHI7Zm9yKHIgaW4gZSl7bGV0IHM9KER2ZS5jYWxsKHQscik/dFtyXTp2b2lkIDApfHwodFtyXT17fSksbj1lW3JdLG87aWYobilmb3IobyBpbiBuKXtEdmUuY2FsbChzLG8pfHwoc1tvXT1bXSk7bGV0IGw9bltvXTtKcGEoc1tvXSxBcnJheS5pc0FycmF5KGwpP2w6bD9bbF06W10pfX19ZnVuY3Rpb24gSnBhKHQsZSl7bGV0IHI9LTEsYT1bXTtmb3IoOysrcjxlLmxlbmd0aDspKGVbcl0uYWRkPT09ImFmdGVyIj90OmEpLnB1c2goZVtyXSk7WGkodCwwLDAsYSl9ZnVuY3Rpb24gdjFlKHQpe2xldCBlPXt9LHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KWVmYShlLHRbcl0pO3JldHVybiBlfWZ1bmN0aW9uIGVmYSh0LGUpe2xldCByO2ZvcihyIGluIGUpe2xldCBzPShEdmUuY2FsbCh0LHIpP3Rbcl06dm9pZCAwKXx8KHRbcl09e30pLG49ZVtyXSxvO2lmKG4pZm9yKG8gaW4gbilzW29dPW5bb119fXZhciBEdmUseTFlPXUoKCk9PntnMCgpO0R2ZT17fS5oYXNPd25Qcm9wZXJ0eTtpKHgxZSwiY29tYmluZUV4dGVuc2lvbnMiKTtpKFhwYSwic3ludGF4RXh0ZW5zaW9uIik7aShKcGEsImNvbnN0cnVjdHMiKTtpKHYxZSwiY29tYmluZUh0bWxFeHRlbnNpb25zIik7aShlZmEsImh0bWxFeHRlbnNpb24iKX0pO2Z1bmN0aW9uIEV2ZSgpe3JldHVybnt0ZXh0OmIwfX1mdW5jdGlvbiBhZmEodCxlLHIpe2xldCBhPXRoaXMscyxuO3JldHVybiBvO2Z1bmN0aW9uIG8ocCl7cmV0dXJuISR2ZShwKXx8IXhFdC5jYWxsKGEsYS5wcmV2aW91cyl8fEF2ZShhLmV2ZW50cyk/cihwKToodC5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksdC5lbnRlcigibGl0ZXJhbEF1dG9saW5rRW1haWwiKSxsKHApKX1mdW5jdGlvbiBsKHApe3JldHVybiAkdmUocCk/KHQuY29uc3VtZShwKSxsKTpwPT09NjQ/KHQuY29uc3VtZShwKSxjKTpyKHApfWZ1bmN0aW9uIGMocCl7cmV0dXJuIHA9PT00Nj90LmNoZWNrKHJmYSxmLGQpKHApOnA9PT00NXx8cD09PTk1fHxJaShwKT8obj0hMCx0LmNvbnN1bWUocCksYyk6ZihwKX1mdW5jdGlvbiBkKHApe3JldHVybiB0LmNvbnN1bWUocCkscz0hMCxjfWZ1bmN0aW9uIGYocCl7cmV0dXJuIG4mJnMmJlZzKGEucHJldmlvdXMpPyh0LmV4aXQoImxpdGVyYWxBdXRvbGlua0VtYWlsIiksdC5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKHApKTpyKHApfX1mdW5jdGlvbiBpZmEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gbyE9PTg3JiZvIT09MTE5fHwhZ0V0LmNhbGwoYSxhLnByZXZpb3VzKXx8QXZlKGEuZXZlbnRzKT9yKG8pOih0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSx0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmtXd3ciKSx0LmNoZWNrKHRmYSx0LmF0dGVtcHQodUV0LHQuYXR0ZW1wdChwRXQsbikscikscikobykpfWZ1bmN0aW9uIG4obyl7cmV0dXJuIHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rV3d3IiksdC5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKG8pfX1mdW5jdGlvbiBzZmEodCxlLHIpe2xldCBhPXRoaXMscz0iIixuPSExO3JldHVybiBvO2Z1bmN0aW9uIG8ocCl7cmV0dXJuKHA9PT03Mnx8cD09PTEwNCkmJmJFdC5jYWxsKGEsYS5wcmV2aW91cykmJiFBdmUoYS5ldmVudHMpPyh0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSx0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmtIdHRwIikscys9U3RyaW5nLmZyb21Db2RlUG9pbnQocCksdC5jb25zdW1lKHApLGwpOnIocCl9ZnVuY3Rpb24gbChwKXtpZihWcyhwKSYmcy5sZW5ndGg8NSlyZXR1cm4gcys9U3RyaW5nLmZyb21Db2RlUG9pbnQocCksdC5jb25zdW1lKHApLGw7aWYocD09PTU4KXtsZXQgaD1zLnRvTG93ZXJDYXNlKCk7aWYoaD09PSJodHRwInx8aD09PSJodHRwcyIpcmV0dXJuIHQuY29uc3VtZShwKSxjfXJldHVybiByKHApfWZ1bmN0aW9uIGMocCl7cmV0dXJuIHA9PT00Nz8odC5jb25zdW1lKHApLG4/ZDoobj0hMCxjKSk6cihwKX1mdW5jdGlvbiBkKHApe3JldHVybiBwPT09bnVsbHx8dmgocCl8fE5yKHApfHxtMChwKXx8eWgocCk/cihwKTp0LmF0dGVtcHQodUV0LHQuYXR0ZW1wdChwRXQsZikscikocCl9ZnVuY3Rpb24gZihwKXtyZXR1cm4gdC5leGl0KCJsaXRlcmFsQXV0b2xpbmtIdHRwIiksdC5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKHApfX1mdW5jdGlvbiBuZmEodCxlLHIpe2xldCBhPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4obz09PTg3fHxvPT09MTE5KSYmYTwzPyhhKyssdC5jb25zdW1lKG8pLHMpOm89PT00NiYmYT09PTM/KHQuY29uc3VtZShvKSxuKTpyKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT1udWxsP3Iobyk6ZShvKX19ZnVuY3Rpb24gb2ZhKHQsZSxyKXtsZXQgYSxzLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhkKXtyZXR1cm4gZD09PTQ2fHxkPT09OTU/dC5jaGVjayhmRXQsYyxsKShkKTpkPT09bnVsbHx8TnIoZCl8fG0wKGQpfHxkIT09NDUmJnloKGQpP2MoZCk6KG49ITAsdC5jb25zdW1lKGQpLG8pfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGQ9PT05NT9hPSEwOihzPWEsYT12b2lkIDApLHQuY29uc3VtZShkKSxvfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIHN8fGF8fCFuP3IoZCk6ZShkKX19ZnVuY3Rpb24gbGZhKHQsZSl7bGV0IHI9MCxhPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gbz09PTQwPyhyKyssdC5jb25zdW1lKG8pLHMpOm89PT00MSYmYTxyP24obyk6bz09PTMzfHxvPT09MzR8fG89PT0zOHx8bz09PTM5fHxvPT09NDF8fG89PT00Mnx8bz09PTQ0fHxvPT09NDZ8fG89PT01OHx8bz09PTU5fHxvPT09NjB8fG89PT02M3x8bz09PTkzfHxvPT09OTV8fG89PT0xMjY/dC5jaGVjayhmRXQsZSxuKShvKTpvPT09bnVsbHx8TnIobyl8fG0wKG8pP2Uobyk6KHQuY29uc3VtZShvKSxzKX1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09NDEmJmErKyx0LmNvbnN1bWUobyksc319ZnVuY3Rpb24gY2ZhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKGwpe3JldHVybiBsPT09MzN8fGw9PT0zNHx8bD09PTM5fHxsPT09NDF8fGw9PT00Mnx8bD09PTQ0fHxsPT09NDZ8fGw9PT01OHx8bD09PTU5fHxsPT09NjN8fGw9PT05NXx8bD09PTEyNj8odC5jb25zdW1lKGwpLGEpOmw9PT0zOD8odC5jb25zdW1lKGwpLG4pOmw9PT05Mz8odC5jb25zdW1lKGwpLHMpOmw9PT02MHx8bD09PW51bGx8fE5yKGwpfHxtMChsKT9lKGwpOnIobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gbD09PW51bGx8fGw9PT00MHx8bD09PTkxfHxOcihsKXx8bTAobCk/ZShsKTphKGwpfWZ1bmN0aW9uIG4obCl7cmV0dXJuIFZzKGwpP28obCk6cihsKX1mdW5jdGlvbiBvKGwpe3JldHVybiBsPT09NTk/KHQuY29uc3VtZShsKSxhKTpWcyhsKT8odC5jb25zdW1lKGwpLG8pOnIobCl9fWZ1bmN0aW9uIGRmYSh0LGUscil7cmV0dXJuIGE7ZnVuY3Rpb24gYShuKXtyZXR1cm4gdC5jb25zdW1lKG4pLHN9ZnVuY3Rpb24gcyhuKXtyZXR1cm4gSWkobik/cihuKTplKG4pfX1mdW5jdGlvbiBnRXQodCl7cmV0dXJuIHQ9PT1udWxsfHx0PT09NDB8fHQ9PT00Mnx8dD09PTk1fHx0PT09OTF8fHQ9PT05M3x8dD09PTEyNnx8TnIodCl9ZnVuY3Rpb24gYkV0KHQpe3JldHVybiFWcyh0KX1mdW5jdGlvbiB4RXQodCl7cmV0dXJuISh0PT09NDd8fCR2ZSh0KSl9ZnVuY3Rpb24gJHZlKHQpe3JldHVybiB0PT09NDN8fHQ9PT00NXx8dD09PTQ2fHx0PT09OTV8fElpKHQpfWZ1bmN0aW9uIEF2ZSh0KXtsZXQgZT10Lmxlbmd0aCxyPSExO2Zvcig7ZS0tOyl7bGV0IGE9dFtlXVsxXTtpZigoYS50eXBlPT09ImxhYmVsTGluayJ8fGEudHlwZT09PSJsYWJlbEltYWdlIikmJiFhLl9iYWxhbmNlZCl7cj0hMDticmVha31pZihhLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvKXtyPSExO2JyZWFrfX1yZXR1cm4gdC5sZW5ndGg+MCYmIXImJih0W3QubGVuZ3RoLTFdWzFdLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvPSEwKSxyfXZhciB0ZmEsdUV0LHBFdCxmRXQscmZhLGhFdCxtRXQsaTQsYjAsdkV0PXUoKCk9PntXcigpO3RmYT17dG9rZW5pemU6bmZhLHBhcnRpYWw6ITB9LHVFdD17dG9rZW5pemU6b2ZhLHBhcnRpYWw6ITB9LHBFdD17dG9rZW5pemU6bGZhLHBhcnRpYWw6ITB9LGZFdD17dG9rZW5pemU6Y2ZhLHBhcnRpYWw6ITB9LHJmYT17dG9rZW5pemU6ZGZhLHBhcnRpYWw6ITB9LGhFdD17bmFtZToid3d3QXV0b2xpbmsiLHRva2VuaXplOmlmYSxwcmV2aW91czpnRXR9LG1FdD17bmFtZToicHJvdG9jb2xBdXRvbGluayIsdG9rZW5pemU6c2ZhLHByZXZpb3VzOmJFdH0saTQ9e25hbWU6ImVtYWlsQXV0b2xpbmsiLHRva2VuaXplOmFmYSxwcmV2aW91czp4RXR9LGIwPXt9O2koRXZlLCJnZm1BdXRvbGlua0xpdGVyYWwiKTtmb3IodmFyIENoPTQ4O0NoPDEyMzspYjBbQ2hdPWk0LENoKyssQ2g9PT01OD9DaD02NTpDaD09PTkxJiYoQ2g9OTcpO2IwWzQzXT1pNCxiMFs0NV09aTQsYjBbNDZdPWk0LGIwWzk1XT1pNCxiMFs3Ml09W2k0LG1FdF0sYjBbMTA0XT1baTQsbUV0XSxiMFs4N109W2k0LGhFdF0sYjBbMTE5XT1baTQsaEV0XTtpKGFmYSwidG9rZW5pemVFbWFpbEF1dG9saW5rIik7aShpZmEsInRva2VuaXplV3d3QXV0b2xpbmsiKTtpKHNmYSwidG9rZW5pemVQcm90b2NvbEF1dG9saW5rIik7aShuZmEsInRva2VuaXplV3d3UHJlZml4Iik7aShvZmEsInRva2VuaXplRG9tYWluIik7aShsZmEsInRva2VuaXplUGF0aCIpO2koY2ZhLCJ0b2tlbml6ZVRyYWlsIik7aShkZmEsInRva2VuaXplRW1haWxEb21haW5Eb3RUcmFpbCIpO2koZ0V0LCJwcmV2aW91c1d3dyIpO2koYkV0LCJwcmV2aW91c1Byb3RvY29sIik7aSh4RXQsInByZXZpb3VzRW1haWwiKTtpKCR2ZSwiZ2ZtQXRleHQiKTtpKEF2ZSwicHJldmlvdXNVbmJhbGFuY2VkIil9KTtmdW5jdGlvbiB3MWUodCl7cmV0dXJuIHQucmVwbGFjZSgvWyImPD5dL2csZSk7ZnVuY3Rpb24gZShyKXtyZXR1cm4iJiIrdWZhW3JdKyI7In19dmFyIHVmYSxJdmU9dSgoKT0+e3VmYT17JyInOiJxdW90IiwiJiI6ImFtcCIsIjwiOiJsdCIsIj4iOiJndCJ9O2kodzFlLCJlbmNvZGUiKX0pO2Z1bmN0aW9uIHgwKHQsZSl7bGV0IHI9dzFlKEcxKHR8fCIiKSk7aWYoIWUpcmV0dXJuIHI7bGV0IGE9ci5pbmRleE9mKCI6Iikscz1yLmluZGV4T2YoIj8iKSxuPXIuaW5kZXhPZigiIyIpLG89ci5pbmRleE9mKCIvIik7cmV0dXJuIGE8MHx8bz4tMSYmYT5vfHxzPi0xJiZhPnN8fG4+LTEmJmE+bnx8ZS50ZXN0KHIuc2xpY2UoMCxhKSk/cjoiIn1mdW5jdGlvbiBHMSh0KXtsZXQgZT1bXSxyPS0xLGE9MCxzPTA7Zm9yKDsrK3I8dC5sZW5ndGg7KXtsZXQgbj10LmNoYXJDb2RlQXQociksbz0iIjtpZihuPT09MzcmJklpKHQuY2hhckNvZGVBdChyKzEpKSYmSWkodC5jaGFyQ29kZUF0KHIrMikpKXM9MjtlbHNlIGlmKG48MTI4KS9bISMkJi07PT8tWl9hLXp+XS8udGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKG4pKXx8KG89U3RyaW5nLmZyb21DaGFyQ29kZShuKSk7ZWxzZSBpZihuPjU1Mjk1JiZuPDU3MzQ0KXtsZXQgbD10LmNoYXJDb2RlQXQocisxKTtuPDU2MzIwJiZsPjU2MzE5JiZsPDU3MzQ0PyhvPVN0cmluZy5mcm9tQ2hhckNvZGUobixsKSxzPTEpOm89Ilx1RkZGRCJ9ZWxzZSBvPVN0cmluZy5mcm9tQ2hhckNvZGUobik7byYmKGUucHVzaCh0LnNsaWNlKGEsciksZW5jb2RlVVJJQ29tcG9uZW50KG8pKSxhPXIrcysxLG89IiIpLHMmJihyKz1zLHM9MCl9cmV0dXJuIGUuam9pbigiIikrdC5zbGljZShhKX12YXIgdjA9dSgoKT0+e1dyKCk7SXZlKCk7aSh4MCwic2FuaXRpemVVcmkiKTtpKEcxLCJub3JtYWxpemVVcmkiKX0pO2Z1bmN0aW9uIE52ZSgpe3JldHVybntleGl0OntsaXRlcmFsQXV0b2xpbmtFbWFpbDpmZmEsbGl0ZXJhbEF1dG9saW5rSHR0cDpoZmEsbGl0ZXJhbEF1dG9saW5rV3d3OnBmYX19fWZ1bmN0aW9uIHBmYSh0KXtQdmUuY2FsbCh0aGlzLHQsImh0dHA6Ly8iKX1mdW5jdGlvbiBmZmEodCl7UHZlLmNhbGwodGhpcyx0LCJtYWlsdG86Iil9ZnVuY3Rpb24gaGZhKHQpe1B2ZS5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gUHZlKHQsZSl7bGV0IHI9dGhpcy5zbGljZVNlcmlhbGl6ZSh0KTt0aGlzLnRhZygnPGEgaHJlZj0iJyt4MCgoZXx8IiIpK3IpKyciPicpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHIpKSx0aGlzLnRhZygiPC9hPiIpfXZhciB5RXQ9dSgoKT0+e3YwKCk7aShOdmUsImdmbUF1dG9saW5rTGl0ZXJhbEh0bWwiKTtpKHBmYSwibGl0ZXJhbEF1dG9saW5rV3d3Iik7aShmZmEsImxpdGVyYWxBdXRvbGlua0VtYWlsIik7aShoZmEsImxpdGVyYWxBdXRvbGlua0h0dHAiKTtpKFB2ZSwiYW5jaG9yRnJvbVRva2VuIil9KTt2YXIgd0V0PXUoKCk9Pnt2RXQoKTt5RXQoKX0pO2Z1bmN0aW9uIER1KHQsZSxyKXtsZXQgYT1bXSxzPS0xO2Zvcig7KytzPHQubGVuZ3RoOyl7bGV0IG49dFtzXS5yZXNvbHZlQWxsO24mJiFhLmluY2x1ZGVzKG4pJiYoZT1uKGUsciksYS5wdXNoKG4pKX1yZXR1cm4gZX12YXIgX009dSgoKT0+e2koRHUsInJlc29sdmVBbGwiKX0pO2Z1bmN0aW9uIG1mYSh0LGUpe2xldCByPS0xLGEscyxuLG8sbCxjLGQsZjtmb3IoOysrcjx0Lmxlbmd0aDspaWYodFtyXVswXT09PSJlbnRlciImJnRbcl1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJnRbcl1bMV0uX2Nsb3NlKXtmb3IoYT1yO2EtLTspaWYodFthXVswXT09PSJleGl0IiYmdFthXVsxXS50eXBlPT09ImF0dGVudGlvblNlcXVlbmNlIiYmdFthXVsxXS5fb3BlbiYmZS5zbGljZVNlcmlhbGl6ZSh0W2FdWzFdKS5jaGFyQ29kZUF0KDApPT09ZS5zbGljZVNlcmlhbGl6ZSh0W3JdWzFdKS5jaGFyQ29kZUF0KDApKXtpZigodFthXVsxXS5fY2xvc2V8fHRbcl1bMV0uX29wZW4pJiYodFtyXVsxXS5lbmQub2Zmc2V0LXRbcl1bMV0uc3RhcnQub2Zmc2V0KSUzJiYhKCh0W2FdWzFdLmVuZC5vZmZzZXQtdFthXVsxXS5zdGFydC5vZmZzZXQrdFtyXVsxXS5lbmQub2Zmc2V0LXRbcl1bMV0uc3RhcnQub2Zmc2V0KSUzKSljb250aW51ZTtjPXRbYV1bMV0uZW5kLm9mZnNldC10W2FdWzFdLnN0YXJ0Lm9mZnNldD4xJiZ0W3JdWzFdLmVuZC5vZmZzZXQtdFtyXVsxXS5zdGFydC5vZmZzZXQ+MT8yOjE7bGV0IHA9ey4uLnRbYV1bMV0uZW5kfSxoPXsuLi50W3JdWzFdLnN0YXJ0fTtrRXQocCwtYyksa0V0KGgsYyksbz17dHlwZTpjPjE/InN0cm9uZ1NlcXVlbmNlIjoiZW1waGFzaXNTZXF1ZW5jZSIsc3RhcnQ6cCxlbmQ6ey4uLnRbYV1bMV0uZW5kfX0sbD17dHlwZTpjPjE/InN0cm9uZ1NlcXVlbmNlIjoiZW1waGFzaXNTZXF1ZW5jZSIsc3RhcnQ6ey4uLnRbcl1bMV0uc3RhcnR9LGVuZDpofSxuPXt0eXBlOmM+MT8ic3Ryb25nVGV4dCI6ImVtcGhhc2lzVGV4dCIsc3RhcnQ6ey4uLnRbYV1bMV0uZW5kfSxlbmQ6ey4uLnRbcl1bMV0uc3RhcnR9fSxzPXt0eXBlOmM+MT8ic3Ryb25nIjoiZW1waGFzaXMiLHN0YXJ0OnsuLi5vLnN0YXJ0fSxlbmQ6ey4uLmwuZW5kfX0sdFthXVsxXS5lbmQ9ey4uLm8uc3RhcnR9LHRbcl1bMV0uc3RhcnQ9ey4uLmwuZW5kfSxkPVtdLHRbYV1bMV0uZW5kLm9mZnNldC10W2FdWzFdLnN0YXJ0Lm9mZnNldCYmKGQ9eXMoZCxbWyJlbnRlciIsdFthXVsxXSxlXSxbImV4aXQiLHRbYV1bMV0sZV1dKSksZD15cyhkLFtbImVudGVyIixzLGVdLFsiZW50ZXIiLG8sZV0sWyJleGl0IixvLGVdLFsiZW50ZXIiLG4sZV1dKSxkPXlzKGQsRHUoZS5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsdC5zbGljZShhKzEsciksZSkpLGQ9eXMoZCxbWyJleGl0IixuLGVdLFsiZW50ZXIiLGwsZV0sWyJleGl0IixsLGVdLFsiZXhpdCIscyxlXV0pLHRbcl1bMV0uZW5kLm9mZnNldC10W3JdWzFdLnN0YXJ0Lm9mZnNldD8oZj0yLGQ9eXMoZCxbWyJlbnRlciIsdFtyXVsxXSxlXSxbImV4aXQiLHRbcl1bMV0sZV1dKSk6Zj0wLFhpKHQsYS0xLHItYSszLGQpLHI9YStkLmxlbmd0aC1mLTI7YnJlYWt9fWZvcihyPS0xOysrcjx0Lmxlbmd0aDspdFtyXVsxXS50eXBlPT09ImF0dGVudGlvblNlcXVlbmNlIiYmKHRbcl1bMV0udHlwZT0iZGF0YSIpO3JldHVybiB0fWZ1bmN0aW9uIGdmYSh0LGUpe2xldCByPXRoaXMucGFyc2VyLmNvbnN0cnVjdHMuYXR0ZW50aW9uTWFya2Vycy5udWxsLGE9dGhpcy5wcmV2aW91cyxzPWE0KGEpLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhjKXtyZXR1cm4gbj1jLHQuZW50ZXIoImF0dGVudGlvblNlcXVlbmNlIiksbChjKX1mdW5jdGlvbiBsKGMpe2lmKGM9PT1uKXJldHVybiB0LmNvbnN1bWUoYyksbDtsZXQgZD10LmV4aXQoImF0dGVudGlvblNlcXVlbmNlIiksZj1hNChjKSxwPSFmfHxmPT09MiYmc3x8ci5pbmNsdWRlcyhjKSxoPSFzfHxzPT09MiYmZnx8ci5pbmNsdWRlcyhhKTtyZXR1cm4gZC5fb3Blbj0hIShuPT09NDI/cDpwJiYoc3x8IWgpKSxkLl9jbG9zZT0hIShuPT09NDI/aDpoJiYoZnx8IXApKSxlKGMpfX1mdW5jdGlvbiBrRXQodCxlKXt0LmNvbHVtbis9ZSx0Lm9mZnNldCs9ZSx0Ll9idWZmZXJJbmRleCs9ZX12YXIgVE0sU0V0PXUoKCk9PntnMCgpO2QxZSgpO19NKCk7VE09e25hbWU6ImF0dGVudGlvbiIscmVzb2x2ZUFsbDptZmEsdG9rZW5pemU6Z2ZhfTtpKG1mYSwicmVzb2x2ZUFsbEF0dGVudGlvbiIpO2koZ2ZhLCJ0b2tlbml6ZUF0dGVudGlvbiIpO2koa0V0LCJtb3ZlUG9pbnQiKX0pO2Z1bmN0aW9uIGJmYSh0LGUscil7bGV0IGE9MDtyZXR1cm4gcztmdW5jdGlvbiBzKG0pe3JldHVybiB0LmVudGVyKCJhdXRvbGluayIpLHQuZW50ZXIoImF1dG9saW5rTWFya2VyIiksdC5jb25zdW1lKG0pLHQuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSx0LmVudGVyKCJhdXRvbGlua1Byb3RvY29sIiksbn1mdW5jdGlvbiBuKG0pe3JldHVybiBWcyhtKT8odC5jb25zdW1lKG0pLG8pOm09PT02ND9yKG0pOmQobSl9ZnVuY3Rpb24gbyhtKXtyZXR1cm4gbT09PTQzfHxtPT09NDV8fG09PT00Nnx8SWkobSk/KGE9MSxsKG0pKTpkKG0pfWZ1bmN0aW9uIGwobSl7cmV0dXJuIG09PT01OD8odC5jb25zdW1lKG0pLGE9MCxjKToobT09PTQzfHxtPT09NDV8fG09PT00Nnx8SWkobSkpJiZhKys8MzI/KHQuY29uc3VtZShtKSxsKTooYT0wLGQobSkpfWZ1bmN0aW9uIGMobSl7cmV0dXJuIG09PT02Mj8odC5leGl0KCJhdXRvbGlua1Byb3RvY29sIiksdC5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSx0LmNvbnN1bWUobSksdC5leGl0KCJhdXRvbGlua01hcmtlciIpLHQuZXhpdCgiYXV0b2xpbmsiKSxlKTptPT09bnVsbHx8bT09PTMyfHxtPT09NjB8fHZoKG0pP3IobSk6KHQuY29uc3VtZShtKSxjKX1mdW5jdGlvbiBkKG0pe3JldHVybiBtPT09NjQ/KHQuY29uc3VtZShtKSxmKTpkJHQobSk/KHQuY29uc3VtZShtKSxkKTpyKG0pfWZ1bmN0aW9uIGYobSl7cmV0dXJuIElpKG0pP3AobSk6cihtKX1mdW5jdGlvbiBwKG0pe3JldHVybiBtPT09NDY/KHQuY29uc3VtZShtKSxhPTAsZik6bT09PTYyPyh0LmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKS50eXBlPSJhdXRvbGlua0VtYWlsIix0LmVudGVyKCJhdXRvbGlua01hcmtlciIpLHQuY29uc3VtZShtKSx0LmV4aXQoImF1dG9saW5rTWFya2VyIiksdC5leGl0KCJhdXRvbGluayIpLGUpOmgobSl9ZnVuY3Rpb24gaChtKXtpZigobT09PTQ1fHxJaShtKSkmJmErKzw2Myl7bGV0IHY9bT09PTQ1P2g6cDtyZXR1cm4gdC5jb25zdW1lKG0pLHZ9cmV0dXJuIHIobSl9fXZhciBPdmUsTUV0PXUoKCk9PntXcigpO092ZT17bmFtZToiYXV0b2xpbmsiLHRva2VuaXplOmJmYX07aShiZmEsInRva2VuaXplQXV0b2xpbmsiKX0pO2Z1bmN0aW9uIGp0KHQsZSxyLGEpe2xldCBzPWE/YS0xOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxuPTA7cmV0dXJuIG87ZnVuY3Rpb24gbyhjKXtyZXR1cm4gT3QoYyk/KHQuZW50ZXIociksbChjKSk6ZShjKX1mdW5jdGlvbiBsKGMpe3JldHVybiBPdChjKSYmbisrPHM/KHQuY29uc3VtZShjKSxsKToodC5leGl0KHIpLGUoYykpfX12YXIgSmk9dSgoKT0+e1dyKCk7aShqdCwiZmFjdG9yeVNwYWNlIil9KTtmdW5jdGlvbiB4ZmEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEobil7cmV0dXJuIE90KG4pP2p0KHQscywibGluZVByZWZpeCIpKG4pOnMobil9ZnVuY3Rpb24gcyhuKXtyZXR1cm4gbj09PW51bGx8fGR0KG4pP2Uobik6cihuKX19dmFyIHkwLGsxZT11KCgpPT57SmkoKTtXcigpO3kwPXtwYXJ0aWFsOiEwLHRva2VuaXplOnhmYX07aSh4ZmEsInRva2VuaXplQmxhbmtMaW5lIil9KTtmdW5jdGlvbiB2ZmEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtpZihvPT09NjIpe2xldCBsPWEuY29udGFpbmVyU3RhdGU7cmV0dXJuIGwub3Blbnx8KHQuZW50ZXIoImJsb2NrUXVvdGUiLHtfY29udGFpbmVyOiEwfSksbC5vcGVuPSEwKSx0LmVudGVyKCJibG9ja1F1b3RlUHJlZml4IiksdC5lbnRlcigiYmxvY2tRdW90ZU1hcmtlciIpLHQuY29uc3VtZShvKSx0LmV4aXQoImJsb2NrUXVvdGVNYXJrZXIiKSxufXJldHVybiByKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIE90KG8pPyh0LmVudGVyKCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLHQuY29uc3VtZShvKSx0LmV4aXQoImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiksdC5leGl0KCJibG9ja1F1b3RlUHJlZml4IiksZSk6KHQuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLGUobykpfX1mdW5jdGlvbiB5ZmEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gT3Qobyk/anQodCxuLCJsaW5lUHJlZml4IixhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKG8pOm4obyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gdC5hdHRlbXB0KFMxZSxlLHIpKG8pfX1mdW5jdGlvbiB3ZmEodCl7dC5leGl0KCJibG9ja1F1b3RlIil9dmFyIFMxZSxDRXQ9dSgoKT0+e0ppKCk7V3IoKTtTMWU9e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6eWZhfSxleGl0OndmYSxuYW1lOiJibG9ja1F1b3RlIix0b2tlbml6ZTp2ZmF9O2kodmZhLCJ0b2tlbml6ZUJsb2NrUXVvdGVTdGFydCIpO2koeWZhLCJ0b2tlbml6ZUJsb2NrUXVvdGVDb250aW51YXRpb24iKTtpKHdmYSwiZXhpdCIpfSk7ZnVuY3Rpb24ga2ZhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiB0LmVudGVyKCJjaGFyYWN0ZXJFc2NhcGUiKSx0LmVudGVyKCJlc2NhcGVNYXJrZXIiKSx0LmNvbnN1bWUobiksdC5leGl0KCJlc2NhcGVNYXJrZXIiKSxzfWZ1bmN0aW9uIHMobil7cmV0dXJuIHAkdChuKT8odC5lbnRlcigiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSx0LmNvbnN1bWUobiksdC5leGl0KCJjaGFyYWN0ZXJFc2NhcGVWYWx1ZSIpLHQuZXhpdCgiY2hhcmFjdGVyRXNjYXBlIiksZSk6cihuKX19dmFyIE0xZSx6RXQ9dSgoKT0+e1dyKCk7TTFlPXtuYW1lOiJjaGFyYWN0ZXJFc2NhcGUiLHRva2VuaXplOmtmYX07aShrZmEsInRva2VuaXplQ2hhcmFjdGVyRXNjYXBlIil9KTtmdW5jdGlvbiBTZmEodCxlLHIpe2xldCBhPXRoaXMscz0wLG4sbztyZXR1cm4gbDtmdW5jdGlvbiBsKHApe3JldHVybiB0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2UiKSx0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSx0LmNvbnN1bWUocCksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSxjfWZ1bmN0aW9uIGMocCl7cmV0dXJuIHA9PT0zNT8odC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyIpLHQuY29uc3VtZShwKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSxkKToodC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKSxuPTMxLG89SWksZihwKSl9ZnVuY3Rpb24gZChwKXtyZXR1cm4gcD09PTg4fHxwPT09MTIwPyh0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLHQuY29uc3VtZShwKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsIiksdC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKSxuPTYsbz11JHQsZik6KHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj03LG89a00sZihwKSl9ZnVuY3Rpb24gZihwKXtpZihwPT09NTkmJnMpe2xldCBoPXQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKTtyZXR1cm4gbz09PUlpJiYhTHUoYS5zbGljZVNlcmlhbGl6ZShoKSk/cihwKToodC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksdC5jb25zdW1lKHApLHQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2UiKSxlKX1yZXR1cm4gbyhwKSYmcysrPG4/KHQuY29uc3VtZShwKSxmKTpyKHApfX12YXIgQzFlLF9FdD11KCgpPT57ek0oKTtXcigpO0MxZT17bmFtZToiY2hhcmFjdGVyUmVmZXJlbmNlIix0b2tlbml6ZTpTZmF9O2koU2ZhLCJ0b2tlbml6ZUNoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gTWZhKHQsZSxyKXtsZXQgYT10aGlzLHM9e3BhcnRpYWw6ITAsdG9rZW5pemU6X30sbj0wLG89MCxsO3JldHVybiBjO2Z1bmN0aW9uIGMoUyl7cmV0dXJuIGQoUyl9ZnVuY3Rpb24gZChTKXtsZXQgTz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG49TyYmT1sxXS50eXBlPT09ImxpbmVQcmVmaXgiP09bMl0uc2xpY2VTZXJpYWxpemUoT1sxXSwhMCkubGVuZ3RoOjAsbD1TLHQuZW50ZXIoImNvZGVGZW5jZWQiKSx0LmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSx0LmVudGVyKCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLGYoUyl9ZnVuY3Rpb24gZihTKXtyZXR1cm4gUz09PWw/KG8rKyx0LmNvbnN1bWUoUyksZik6bzwzP3IoUyk6KHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxPdChTKT9qdCh0LHAsIndoaXRlc3BhY2UiKShTKTpwKFMpKX1mdW5jdGlvbiBwKFMpe3JldHVybiBTPT09bnVsbHx8ZHQoUyk/KHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksYS5pbnRlcnJ1cHQ/ZShTKTp0LmNoZWNrKFRFdCxiLE4pKFMpKToodC5lbnRlcigiY29kZUZlbmNlZEZlbmNlSW5mbyIpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxoKFMpKX1mdW5jdGlvbiBoKFMpe3JldHVybiBTPT09bnVsbHx8ZHQoUyk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxwKFMpKTpPdChTKT8odC5leGl0KCJjaHVua1N0cmluZyIpLHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGp0KHQsbSwid2hpdGVzcGFjZSIpKFMpKTpTPT09OTYmJlM9PT1sP3IoUyk6KHQuY29uc3VtZShTKSxoKX1mdW5jdGlvbiBtKFMpe3JldHVybiBTPT09bnVsbHx8ZHQoUyk/cChTKToodC5lbnRlcigiY29kZUZlbmNlZEZlbmNlTWV0YSIpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx2KFMpKX1mdW5jdGlvbiB2KFMpe3JldHVybiBTPT09bnVsbHx8ZHQoUyk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSxwKFMpKTpTPT09OTYmJlM9PT1sP3IoUyk6KHQuY29uc3VtZShTKSx2KX1mdW5jdGlvbiBiKFMpe3JldHVybiB0LmF0dGVtcHQocyxOLGcpKFMpfWZ1bmN0aW9uIGcoUyl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoUyksdC5leGl0KCJsaW5lRW5kaW5nIikseX1mdW5jdGlvbiB5KFMpe3JldHVybiBuPjAmJk90KFMpP2p0KHQsaywibGluZVByZWZpeCIsbisxKShTKTprKFMpfWZ1bmN0aW9uIGsoUyl7cmV0dXJuIFM9PT1udWxsfHxkdChTKT90LmNoZWNrKFRFdCxiLE4pKFMpOih0LmVudGVyKCJjb2RlRmxvd1ZhbHVlIiksTShTKSl9ZnVuY3Rpb24gTShTKXtyZXR1cm4gUz09PW51bGx8fGR0KFMpPyh0LmV4aXQoImNvZGVGbG93VmFsdWUiKSxrKFMpKToodC5jb25zdW1lKFMpLE0pfWZ1bmN0aW9uIE4oUyl7cmV0dXJuIHQuZXhpdCgiY29kZUZlbmNlZCIpLGUoUyl9ZnVuY3Rpb24gXyhTLE8sTCl7bGV0IEU9MDtyZXR1cm4gQjtmdW5jdGlvbiBCKEYpe3JldHVybiBTLmVudGVyKCJsaW5lRW5kaW5nIiksUy5jb25zdW1lKEYpLFMuZXhpdCgibGluZUVuZGluZyIpLEN9ZnVuY3Rpb24gQyhGKXtyZXR1cm4gUy5lbnRlcigiY29kZUZlbmNlZEZlbmNlIiksT3QoRik/anQoUyx6LCJsaW5lUHJlZml4IixhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKEYpOnooRil9ZnVuY3Rpb24geihGKXtyZXR1cm4gRj09PWw/KFMuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksQShGKSk6TChGKX1mdW5jdGlvbiBBKEYpe3JldHVybiBGPT09bD8oRSsrLFMuY29uc3VtZShGKSxBKTpFPj1vPyhTLmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksT3QoRik/anQoUywkLCJ3aGl0ZXNwYWNlIikoRik6JChGKSk6TChGKX1mdW5jdGlvbiAkKEYpe3JldHVybiBGPT09bnVsbHx8ZHQoRik/KFMuZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksTyhGKSk6TChGKX19fWZ1bmN0aW9uIENmYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKG8pe3JldHVybiBvPT09bnVsbD9yKG8pOih0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG8pLHQuZXhpdCgibGluZUVuZGluZyIpLG4pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGEucGFyc2VyLmxhenlbYS5ub3coKS5saW5lXT9yKG8pOmUobyl9fXZhciBURXQsejFlLExFdD11KCgpPT57SmkoKTtXcigpO1RFdD17cGFydGlhbDohMCx0b2tlbml6ZTpDZmF9LHoxZT17Y29uY3JldGU6ITAsbmFtZToiY29kZUZlbmNlZCIsdG9rZW5pemU6TWZhfTtpKE1mYSwidG9rZW5pemVDb2RlRmVuY2VkIik7aShDZmEsInRva2VuaXplTm9uTGF6eUNvbnRpbnVhdGlvbiIpfSk7ZnVuY3Rpb24gX2ZhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMoZCl7cmV0dXJuIHQuZW50ZXIoImNvZGVJbmRlbnRlZCIpLGp0KHQsbiwibGluZVByZWZpeCIsNSkoZCl9ZnVuY3Rpb24gbihkKXtsZXQgZj1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIGYmJmZbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmZlsyXS5zbGljZVNlcmlhbGl6ZShmWzFdLCEwKS5sZW5ndGg+PTQ/byhkKTpyKGQpfWZ1bmN0aW9uIG8oZCl7cmV0dXJuIGQ9PT1udWxsP2MoZCk6ZHQoZCk/dC5hdHRlbXB0KHpmYSxvLGMpKGQpOih0LmVudGVyKCJjb2RlRmxvd1ZhbHVlIiksbChkKSl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PW51bGx8fGR0KGQpPyh0LmV4aXQoImNvZGVGbG93VmFsdWUiKSxvKGQpKToodC5jb25zdW1lKGQpLGwpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIHQuZXhpdCgiY29kZUluZGVudGVkIiksZShkKX19ZnVuY3Rpb24gVGZhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIGEucGFyc2VyLmxhenlbYS5ub3coKS5saW5lXT9yKG8pOmR0KG8pPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG8pLHQuZXhpdCgibGluZUVuZGluZyIpLHMpOmp0KHQsbiwibGluZVByZWZpeCIsNSkobyl9ZnVuY3Rpb24gbihvKXtsZXQgbD1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIGwmJmxbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmbFsyXS5zbGljZVNlcmlhbGl6ZShsWzFdLCEwKS5sZW5ndGg+PTQ/ZShvKTpkdChvKT9zKG8pOnIobyl9fXZhciBMTSx6ZmEsREV0PXUoKCk9PntKaSgpO1dyKCk7TE09e25hbWU6ImNvZGVJbmRlbnRlZCIsdG9rZW5pemU6X2ZhfSx6ZmE9e3BhcnRpYWw6ITAsdG9rZW5pemU6VGZhfTtpKF9mYSwidG9rZW5pemVDb2RlSW5kZW50ZWQiKTtpKFRmYSwidG9rZW5pemVGdXJ0aGVyU3RhcnQiKX0pO2Z1bmN0aW9uIExmYSh0KXtsZXQgZT10Lmxlbmd0aC00LHI9MyxhLHM7aWYoKHRbcl1bMV0udHlwZT09PSJsaW5lRW5kaW5nInx8dFtyXVsxXS50eXBlPT09InNwYWNlIikmJih0W2VdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fHRbZV1bMV0udHlwZT09PSJzcGFjZSIpKXtmb3IoYT1yOysrYTxlOylpZih0W2FdWzFdLnR5cGU9PT0iY29kZVRleHREYXRhIil7dFtyXVsxXS50eXBlPSJjb2RlVGV4dFBhZGRpbmciLHRbZV1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixyKz0yLGUtPTI7YnJlYWt9fWZvcihhPXItMSxlKys7KythPD1lOylzPT09dm9pZCAwP2EhPT1lJiZ0W2FdWzFdLnR5cGUhPT0ibGluZUVuZGluZyImJihzPWEpOihhPT09ZXx8dFthXVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmKHRbc11bMV0udHlwZT0iY29kZVRleHREYXRhIixhIT09cysyJiYodFtzXVsxXS5lbmQ9dFthLTFdWzFdLmVuZCx0LnNwbGljZShzKzIsYS1zLTIpLGUtPWEtcy0yLGE9cysyKSxzPXZvaWQgMCk7cmV0dXJuIHR9ZnVuY3Rpb24gRGZhKHQpe3JldHVybiB0IT09OTZ8fHRoaXMuZXZlbnRzW3RoaXMuZXZlbnRzLmxlbmd0aC0xXVsxXS50eXBlPT09ImNoYXJhY3RlckVzY2FwZSJ9ZnVuY3Rpb24gJGZhKHQsZSxyKXtsZXQgYT10aGlzLHM9MCxuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChoKXtyZXR1cm4gdC5lbnRlcigiY29kZVRleHQiKSx0LmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksYyhoKX1mdW5jdGlvbiBjKGgpe3JldHVybiBoPT09OTY/KHQuY29uc3VtZShoKSxzKyssYyk6KHQuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLGQoaCkpfWZ1bmN0aW9uIGQoaCl7cmV0dXJuIGg9PT1udWxsP3IoaCk6aD09PTMyPyh0LmVudGVyKCJzcGFjZSIpLHQuY29uc3VtZShoKSx0LmV4aXQoInNwYWNlIiksZCk6aD09PTk2PyhvPXQuZW50ZXIoImNvZGVUZXh0U2VxdWVuY2UiKSxuPTAscChoKSk6ZHQoaCk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoaCksdC5leGl0KCJsaW5lRW5kaW5nIiksZCk6KHQuZW50ZXIoImNvZGVUZXh0RGF0YSIpLGYoaCkpfWZ1bmN0aW9uIGYoaCl7cmV0dXJuIGg9PT1udWxsfHxoPT09MzJ8fGg9PT05Nnx8ZHQoaCk/KHQuZXhpdCgiY29kZVRleHREYXRhIiksZChoKSk6KHQuY29uc3VtZShoKSxmKX1mdW5jdGlvbiBwKGgpe3JldHVybiBoPT09OTY/KHQuY29uc3VtZShoKSxuKysscCk6bj09PXM/KHQuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLHQuZXhpdCgiY29kZVRleHQiKSxlKGgpKTooby50eXBlPSJjb2RlVGV4dERhdGEiLGYoaCkpfX12YXIgUnZlLCRFdD11KCgpPT57V3IoKTtSdmU9e25hbWU6ImNvZGVUZXh0IixwcmV2aW91czpEZmEscmVzb2x2ZTpMZmEsdG9rZW5pemU6JGZhfTtpKExmYSwicmVzb2x2ZUNvZGVUZXh0Iik7aShEZmEsInByZXZpb3VzIik7aSgkZmEsInRva2VuaXplQ29kZVRleHQiKX0pO2Z1bmN0aW9uIERNKHQsZSl7bGV0IHI9MDtpZihlLmxlbmd0aDwxZTQpdC5wdXNoKC4uLmUpO2Vsc2UgZm9yKDtyPGUubGVuZ3RoOyl0LnB1c2goLi4uZS5zbGljZShyLHIrMWU0KSkscis9MWU0fXZhciAkTSxGdmU9dSgoKT0+eyRNPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNwbGljZUJ1ZmZlciIpfWNvbnN0cnVjdG9yKGUpe3RoaXMubGVmdD1lP1suLi5lXTpbXSx0aGlzLnJpZ2h0PVtdfWdldChlKXtpZihlPDB8fGU+PXRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNhbm5vdCBhY2Nlc3MgaW5kZXggYCIrZSsiYCBpbiBhIHNwbGljZSBidWZmZXIgb2Ygc2l6ZSBgIisodGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aCkrImAiKTtyZXR1cm4gZTx0aGlzLmxlZnQubGVuZ3RoP3RoaXMubGVmdFtlXTp0aGlzLnJpZ2h0W3RoaXMucmlnaHQubGVuZ3RoLWUrdGhpcy5sZWZ0Lmxlbmd0aC0xXX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGh9c2hpZnQoKXtyZXR1cm4gdGhpcy5zZXRDdXJzb3IoMCksdGhpcy5yaWdodC5wb3AoKX1zbGljZShlLHIpe2xldCBhPXI/P051bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gYTx0aGlzLmxlZnQubGVuZ3RoP3RoaXMubGVmdC5zbGljZShlLGEpOmU+dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLWErdGhpcy5sZWZ0Lmxlbmd0aCx0aGlzLnJpZ2h0Lmxlbmd0aC1lK3RoaXMubGVmdC5sZW5ndGgpLnJldmVyc2UoKTp0aGlzLmxlZnQuc2xpY2UoZSkuY29uY2F0KHRoaXMucmlnaHQuc2xpY2UodGhpcy5yaWdodC5sZW5ndGgtYSt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCkpfXNwbGljZShlLHIsYSl7bGV0IHM9cnx8MDt0aGlzLnNldEN1cnNvcihNYXRoLnRydW5jKGUpKTtsZXQgbj10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1zLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7cmV0dXJuIGEmJkRNKHRoaXMubGVmdCxhKSxuLnJldmVyc2UoKX1wb3AoKXtyZXR1cm4gdGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucG9wKCl9cHVzaChlKXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHRoaXMubGVmdC5wdXNoKGUpfXB1c2hNYW55KGUpe3RoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksRE0odGhpcy5sZWZ0LGUpfXVuc2hpZnQoZSl7dGhpcy5zZXRDdXJzb3IoMCksdGhpcy5yaWdodC5wdXNoKGUpfXVuc2hpZnRNYW55KGUpe3RoaXMuc2V0Q3Vyc29yKDApLERNKHRoaXMucmlnaHQsZS5yZXZlcnNlKCkpfXNldEN1cnNvcihlKXtpZighKGU9PT10aGlzLmxlZnQubGVuZ3RofHxlPnRoaXMubGVmdC5sZW5ndGgmJnRoaXMucmlnaHQubGVuZ3RoPT09MHx8ZTwwJiZ0aGlzLmxlZnQubGVuZ3RoPT09MCkpaWYoZTx0aGlzLmxlZnQubGVuZ3RoKXtsZXQgcj10aGlzLmxlZnQuc3BsaWNlKGUsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtETSh0aGlzLnJpZ2h0LHIucmV2ZXJzZSgpKX1lbHNle2xldCByPXRoaXMucmlnaHQuc3BsaWNlKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgtZSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO0RNKHRoaXMubGVmdCxyLnJldmVyc2UoKSl9fX07aShETSwiY2h1bmtlZFB1c2giKX0pO2Z1bmN0aW9uIF8xZSh0KXtsZXQgZT17fSxyPS0xLGEscyxuLG8sbCxjLGQsZj1uZXcgJE0odCk7Zm9yKDsrK3I8Zi5sZW5ndGg7KXtmb3IoO3IgaW4gZTspcj1lW3JdO2lmKGE9Zi5nZXQociksciYmYVsxXS50eXBlPT09ImNodW5rRmxvdyImJmYuZ2V0KHItMSlbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCImJihjPWFbMV0uX3Rva2VuaXplci5ldmVudHMsbj0wLG48Yy5sZW5ndGgmJmNbbl1bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiJiYobis9MiksbjxjLmxlbmd0aCYmY1tuXVsxXS50eXBlPT09ImNvbnRlbnQiKSlmb3IoOysrbjxjLmxlbmd0aCYmY1tuXVsxXS50eXBlIT09ImNvbnRlbnQiOyljW25dWzFdLnR5cGU9PT0iY2h1bmtUZXh0IiYmKGNbbl1bMV0uX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtPSEwLG4rKyk7aWYoYVswXT09PSJlbnRlciIpYVsxXS5jb250ZW50VHlwZSYmKE9iamVjdC5hc3NpZ24oZSxBZmEoZixyKSkscj1lW3JdLGQ9ITApO2Vsc2UgaWYoYVsxXS5fY29udGFpbmVyKXtmb3Iobj1yLHM9dm9pZCAwO24tLTspaWYobz1mLmdldChuKSxvWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fG9bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKW9bMF09PT0iZW50ZXIiJiYocyYmKGYuZ2V0KHMpWzFdLnR5cGU9ImxpbmVFbmRpbmdCbGFuayIpLG9bMV0udHlwZT0ibGluZUVuZGluZyIscz1uKTtlbHNlIGlmKCEob1sxXS50eXBlPT09ImxpbmVQcmVmaXgifHxvWzFdLnR5cGU9PT0ibGlzdEl0ZW1JbmRlbnQiKSlicmVhaztzJiYoYVsxXS5lbmQ9ey4uLmYuZ2V0KHMpWzFdLnN0YXJ0fSxsPWYuc2xpY2UocyxyKSxsLnVuc2hpZnQoYSksZi5zcGxpY2UocyxyLXMrMSxsKSl9fXJldHVybiBYaSh0LDAsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGYuc2xpY2UoMCkpLCFkfWZ1bmN0aW9uIEFmYSh0LGUpe2xldCByPXQuZ2V0KGUpWzFdLGE9dC5nZXQoZSlbMl0scz1lLTEsbj1bXSxvPXIuX3Rva2VuaXplcjtvfHwobz1hLnBhcnNlcltyLmNvbnRlbnRUeXBlXShyLnN0YXJ0KSxyLl9jb250ZW50VHlwZVRleHRUcmFpbGluZyYmKG8uX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nPSEwKSk7bGV0IGw9by5ldmVudHMsYz1bXSxkPXt9LGYscCxoPS0xLG09cix2PTAsYj0wLGc9W2JdO2Zvcig7bTspe2Zvcig7dC5nZXQoKytzKVsxXSE9PW07KTtuLnB1c2gocyksbS5fdG9rZW5pemVyfHwoZj1hLnNsaWNlU3RyZWFtKG0pLG0ubmV4dHx8Zi5wdXNoKG51bGwpLHAmJm8uZGVmaW5lU2tpcChtLnN0YXJ0KSxtLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSYmKG8uX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCksby53cml0ZShmKSxtLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSYmKG8uX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT12b2lkIDApKSxwPW0sbT1tLm5leHR9Zm9yKG09cjsrK2g8bC5sZW5ndGg7KWxbaF1bMF09PT0iZXhpdCImJmxbaC0xXVswXT09PSJlbnRlciImJmxbaF1bMV0udHlwZT09PWxbaC0xXVsxXS50eXBlJiZsW2hdWzFdLnN0YXJ0LmxpbmUhPT1sW2hdWzFdLmVuZC5saW5lJiYoYj1oKzEsZy5wdXNoKGIpLG0uX3Rva2VuaXplcj12b2lkIDAsbS5wcmV2aW91cz12b2lkIDAsbT1tLm5leHQpO2ZvcihvLmV2ZW50cz1bXSxtPyhtLl90b2tlbml6ZXI9dm9pZCAwLG0ucHJldmlvdXM9dm9pZCAwKTpnLnBvcCgpLGg9Zy5sZW5ndGg7aC0tOyl7bGV0IHk9bC5zbGljZShnW2hdLGdbaCsxXSksaz1uLnBvcCgpO2MucHVzaChbayxrK3kubGVuZ3RoLTFdKSx0LnNwbGljZShrLDIseSl9Zm9yKGMucmV2ZXJzZSgpLGg9LTE7KytoPGMubGVuZ3RoOylkW3YrY1toXVswXV09ditjW2hdWzFdLHYrPWNbaF1bMV0tY1toXVswXS0xO3JldHVybiBkfXZhciBCdmU9dSgoKT0+e2cwKCk7RnZlKCk7RnZlKCk7aShfMWUsInN1YnRva2VuaXplIik7aShBZmEsInN1YmNvbnRlbnQiKX0pO2Z1bmN0aW9uIElmYSh0KXtyZXR1cm4gXzFlKHQpLHR9ZnVuY3Rpb24gUGZhKHQsZSl7bGV0IHI7cmV0dXJuIGE7ZnVuY3Rpb24gYShsKXtyZXR1cm4gdC5lbnRlcigiY29udGVudCIpLHI9dC5lbnRlcigiY2h1bmtDb250ZW50Iix7Y29udGVudFR5cGU6ImNvbnRlbnQifSkscyhsKX1mdW5jdGlvbiBzKGwpe3JldHVybiBsPT09bnVsbD9uKGwpOmR0KGwpP3QuY2hlY2soRWZhLG8sbikobCk6KHQuY29uc3VtZShsKSxzKX1mdW5jdGlvbiBuKGwpe3JldHVybiB0LmV4aXQoImNodW5rQ29udGVudCIpLHQuZXhpdCgiY29udGVudCIpLGUobCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gdC5jb25zdW1lKGwpLHQuZXhpdCgiY2h1bmtDb250ZW50Iiksci5uZXh0PXQuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50IixwcmV2aW91czpyfSkscj1yLm5leHQsc319ZnVuY3Rpb24gTmZhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIHQuZXhpdCgiY2h1bmtDb250ZW50IiksdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShvKSx0LmV4aXQoImxpbmVFbmRpbmciKSxqdCh0LG4sImxpbmVQcmVmaXgiKX1mdW5jdGlvbiBuKG8pe2lmKG89PT1udWxsfHxkdChvKSlyZXR1cm4gcihvKTtsZXQgbD1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIWEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKSYmbCYmbFsxXS50eXBlPT09ImxpbmVQcmVmaXgiJiZsWzJdLnNsaWNlU2VyaWFsaXplKGxbMV0sITApLmxlbmd0aD49ND9lKG8pOnQuaW50ZXJydXB0KGEucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxyLGUpKG8pfX12YXIgSHZlLEVmYSxBRXQ9dSgoKT0+e0ppKCk7V3IoKTtCdmUoKTtIdmU9e3Jlc29sdmU6SWZhLHRva2VuaXplOlBmYX0sRWZhPXtwYXJ0aWFsOiEwLHRva2VuaXplOk5mYX07aShJZmEsInJlc29sdmVDb250ZW50Iik7aShQZmEsInRva2VuaXplQ29udGVudCIpO2koTmZhLCJ0b2tlbml6ZUNvbnRpbnVhdGlvbiIpfSk7ZnVuY3Rpb24gVDFlKHQsZSxyLGEscyxuLG8sbCxjKXtsZXQgZD1jfHxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksZj0wO3JldHVybiBwO2Z1bmN0aW9uIHAoeSl7cmV0dXJuIHk9PT02MD8odC5lbnRlcihhKSx0LmVudGVyKHMpLHQuZW50ZXIobiksdC5jb25zdW1lKHkpLHQuZXhpdChuKSxoKTp5PT09bnVsbHx8eT09PTMyfHx5PT09NDF8fHZoKHkpP3IoeSk6KHQuZW50ZXIoYSksdC5lbnRlcihvKSx0LmVudGVyKGwpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxiKHkpKX1mdW5jdGlvbiBoKHkpe3JldHVybiB5PT09NjI/KHQuZW50ZXIobiksdC5jb25zdW1lKHkpLHQuZXhpdChuKSx0LmV4aXQocyksdC5leGl0KGEpLGUpOih0LmVudGVyKGwpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxtKHkpKX1mdW5jdGlvbiBtKHkpe3JldHVybiB5PT09NjI/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQobCksaCh5KSk6eT09PW51bGx8fHk9PT02MHx8ZHQoeSk/cih5KToodC5jb25zdW1lKHkpLHk9PT05Mj92Om0pfWZ1bmN0aW9uIHYoeSl7cmV0dXJuIHk9PT02MHx8eT09PTYyfHx5PT09OTI/KHQuY29uc3VtZSh5KSxtKTptKHkpfWZ1bmN0aW9uIGIoeSl7cmV0dXJuIWYmJih5PT09bnVsbHx8eT09PTQxfHxOcih5KSk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQobCksdC5leGl0KG8pLHQuZXhpdChhKSxlKHkpKTpmPGQmJnk9PT00MD8odC5jb25zdW1lKHkpLGYrKyxiKTp5PT09NDE/KHQuY29uc3VtZSh5KSxmLS0sYik6eT09PW51bGx8fHk9PT0zMnx8eT09PTQwfHx2aCh5KT9yKHkpOih0LmNvbnN1bWUoeSkseT09PTkyP2c6Yil9ZnVuY3Rpb24gZyh5KXtyZXR1cm4geT09PTQwfHx5PT09NDF8fHk9PT05Mj8odC5jb25zdW1lKHkpLGIpOmIoeSl9fXZhciBxdmU9dSgoKT0+e1dyKCk7aShUMWUsImZhY3RvcnlEZXN0aW5hdGlvbiIpfSk7ZnVuY3Rpb24gTDFlKHQsZSxyLGEscyxuKXtsZXQgbz10aGlzLGw9MCxjO3JldHVybiBkO2Z1bmN0aW9uIGQobSl7cmV0dXJuIHQuZW50ZXIoYSksdC5lbnRlcihzKSx0LmNvbnN1bWUobSksdC5leGl0KHMpLHQuZW50ZXIobiksZn1mdW5jdGlvbiBmKG0pe3JldHVybiBsPjk5OXx8bT09PW51bGx8fG09PT05MXx8bT09PTkzJiYhY3x8bT09PTk0JiYhbCYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gby5wYXJzZXIuY29uc3RydWN0cz9yKG0pOm09PT05Mz8odC5leGl0KG4pLHQuZW50ZXIocyksdC5jb25zdW1lKG0pLHQuZXhpdChzKSx0LmV4aXQoYSksZSk6ZHQobSk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUobSksdC5leGl0KCJsaW5lRW5kaW5nIiksZik6KHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxwKG0pKX1mdW5jdGlvbiBwKG0pe3JldHVybiBtPT09bnVsbHx8bT09PTkxfHxtPT09OTN8fGR0KG0pfHxsKys+OTk5Pyh0LmV4aXQoImNodW5rU3RyaW5nIiksZihtKSk6KHQuY29uc3VtZShtKSxjfHwoYz0hT3QobSkpLG09PT05Mj9oOnApfWZ1bmN0aW9uIGgobSl7cmV0dXJuIG09PT05MXx8bT09PTkyfHxtPT09OTM/KHQuY29uc3VtZShtKSxsKysscCk6cChtKX19dmFyIFZ2ZT11KCgpPT57V3IoKTtpKEwxZSwiZmFjdG9yeUxhYmVsIil9KTtmdW5jdGlvbiBEMWUodCxlLHIsYSxzLG4pe2xldCBvO3JldHVybiBsO2Z1bmN0aW9uIGwoaCl7cmV0dXJuIGg9PT0zNHx8aD09PTM5fHxoPT09NDA/KHQuZW50ZXIoYSksdC5lbnRlcihzKSx0LmNvbnN1bWUoaCksdC5leGl0KHMpLG89aD09PTQwPzQxOmgsYyk6cihoKX1mdW5jdGlvbiBjKGgpe3JldHVybiBoPT09bz8odC5lbnRlcihzKSx0LmNvbnN1bWUoaCksdC5leGl0KHMpLHQuZXhpdChhKSxlKToodC5lbnRlcihuKSxkKGgpKX1mdW5jdGlvbiBkKGgpe3JldHVybiBoPT09bz8odC5leGl0KG4pLGMobykpOmg9PT1udWxsP3IoaCk6ZHQoaCk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoaCksdC5leGl0KCJsaW5lRW5kaW5nIiksanQodCxkLCJsaW5lUHJlZml4IikpOih0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksZihoKSl9ZnVuY3Rpb24gZihoKXtyZXR1cm4gaD09PW98fGg9PT1udWxsfHxkdChoKT8odC5leGl0KCJjaHVua1N0cmluZyIpLGQoaCkpOih0LmNvbnN1bWUoaCksaD09PTkyP3A6Zil9ZnVuY3Rpb24gcChoKXtyZXR1cm4gaD09PW98fGg9PT05Mj8odC5jb25zdW1lKGgpLGYpOmYoaCl9fXZhciBqdmU9dSgoKT0+e0ppKCk7V3IoKTtpKEQxZSwiZmFjdG9yeVRpdGxlIil9KTtmdW5jdGlvbiB6aCh0LGUpe2xldCByO3JldHVybiBhO2Z1bmN0aW9uIGEocyl7cmV0dXJuIGR0KHMpPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKHMpLHQuZXhpdCgibGluZUVuZGluZyIpLHI9ITAsYSk6T3Qocyk/anQodCxhLHI/ImxpbmVQcmVmaXgiOiJsaW5lU3VmZml4Iikocyk6ZShzKX19dmFyIFV2ZT11KCgpPT57SmkoKTtXcigpO2koemgsImZhY3RvcnlXaGl0ZXNwYWNlIil9KTtmdW5jdGlvbiBSZmEodCxlLHIpe2xldCBhPXRoaXMscztyZXR1cm4gbjtmdW5jdGlvbiBuKG0pe3JldHVybiB0LmVudGVyKCJkZWZpbml0aW9uIiksbyhtKX1mdW5jdGlvbiBvKG0pe3JldHVybiBMMWUuY2FsbChhLHQsbCxyLCJkZWZpbml0aW9uTGFiZWwiLCJkZWZpbml0aW9uTGFiZWxNYXJrZXIiLCJkZWZpbml0aW9uTGFiZWxTdHJpbmciKShtKX1mdW5jdGlvbiBsKG0pe3JldHVybiBzPVBpKGEuc2xpY2VTZXJpYWxpemUoYS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSksbT09PTU4Pyh0LmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksdC5jb25zdW1lKG0pLHQuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLGMpOnIobSl9ZnVuY3Rpb24gYyhtKXtyZXR1cm4gTnIobSk/emgodCxkKShtKTpkKG0pfWZ1bmN0aW9uIGQobSl7cmV0dXJuIFQxZSh0LGYsciwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXIiLCJkZWZpbml0aW9uRGVzdGluYXRpb25SYXciLCJkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmciKShtKX1mdW5jdGlvbiBmKG0pe3JldHVybiB0LmF0dGVtcHQoT2ZhLHAscCkobSl9ZnVuY3Rpb24gcChtKXtyZXR1cm4gT3QobSk/anQodCxoLCJ3aGl0ZXNwYWNlIikobSk6aChtKX1mdW5jdGlvbiBoKG0pe3JldHVybiBtPT09bnVsbHx8ZHQobSk/KHQuZXhpdCgiZGVmaW5pdGlvbiIpLGEucGFyc2VyLmRlZmluZWQucHVzaChzKSxlKG0pKTpyKG0pfX1mdW5jdGlvbiBGZmEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEobCl7cmV0dXJuIE5yKGwpP3poKHQscykobCk6cihsKX1mdW5jdGlvbiBzKGwpe3JldHVybiBEMWUodCxuLHIsImRlZmluaXRpb25UaXRsZSIsImRlZmluaXRpb25UaXRsZU1hcmtlciIsImRlZmluaXRpb25UaXRsZVN0cmluZyIpKGwpfWZ1bmN0aW9uIG4obCl7cmV0dXJuIE90KGwpP2p0KHQsbywid2hpdGVzcGFjZSIpKGwpOm8obCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gbD09PW51bGx8fGR0KGwpP2UobCk6cihsKX19dmFyIFd2ZSxPZmEsRUV0PXUoKCk9PntxdmUoKTtWdmUoKTtKaSgpO2p2ZSgpO1V2ZSgpO1dyKCk7VHUoKTtXdmU9e25hbWU6ImRlZmluaXRpb24iLHRva2VuaXplOlJmYX0sT2ZhPXtwYXJ0aWFsOiEwLHRva2VuaXplOkZmYX07aShSZmEsInRva2VuaXplRGVmaW5pdGlvbiIpO2koRmZhLCJ0b2tlbml6ZVRpdGxlQmVmb3JlIil9KTtmdW5jdGlvbiBCZmEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEobil7cmV0dXJuIHQuZW50ZXIoImhhcmRCcmVha0VzY2FwZSIpLHQuY29uc3VtZShuKSxzfWZ1bmN0aW9uIHMobil7cmV0dXJuIGR0KG4pPyh0LmV4aXQoImhhcmRCcmVha0VzY2FwZSIpLGUobikpOnIobil9fXZhciBHdmUsSUV0PXUoKCk9PntXcigpO0d2ZT17bmFtZToiaGFyZEJyZWFrRXNjYXBlIix0b2tlbml6ZTpCZmF9O2koQmZhLCJ0b2tlbml6ZUhhcmRCcmVha0VzY2FwZSIpfSk7ZnVuY3Rpb24gSGZhKHQsZSl7bGV0IHI9dC5sZW5ndGgtMixhPTMscyxuO3JldHVybiB0W2FdWzFdLnR5cGU9PT0id2hpdGVzcGFjZSImJihhKz0yKSxyLTI+YSYmdFtyXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoci09MiksdFtyXVsxXS50eXBlPT09ImF0eEhlYWRpbmdTZXF1ZW5jZSImJihhPT09ci0xfHxyLTQ+YSYmdFtyLTJdWzFdLnR5cGU9PT0id2hpdGVzcGFjZSIpJiYoci09YSsxPT09cj8yOjQpLHI+YSYmKHM9e3R5cGU6ImF0eEhlYWRpbmdUZXh0IixzdGFydDp0W2FdWzFdLnN0YXJ0LGVuZDp0W3JdWzFdLmVuZH0sbj17dHlwZToiY2h1bmtUZXh0IixzdGFydDp0W2FdWzFdLnN0YXJ0LGVuZDp0W3JdWzFdLmVuZCxjb250ZW50VHlwZToidGV4dCJ9LFhpKHQsYSxyLWErMSxbWyJlbnRlciIscyxlXSxbImVudGVyIixuLGVdLFsiZXhpdCIsbixlXSxbImV4aXQiLHMsZV1dKSksdH1mdW5jdGlvbiBxZmEodCxlLHIpe2xldCBhPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhmKXtyZXR1cm4gdC5lbnRlcigiYXR4SGVhZGluZyIpLG4oZil9ZnVuY3Rpb24gbihmKXtyZXR1cm4gdC5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIiksbyhmKX1mdW5jdGlvbiBvKGYpe3JldHVybiBmPT09MzUmJmErKzw2Pyh0LmNvbnN1bWUoZiksbyk6Zj09PW51bGx8fE5yKGYpPyh0LmV4aXQoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLGwoZikpOnIoZil9ZnVuY3Rpb24gbChmKXtyZXR1cm4gZj09PTM1Pyh0LmVudGVyKCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxjKGYpKTpmPT09bnVsbHx8ZHQoZik/KHQuZXhpdCgiYXR4SGVhZGluZyIpLGUoZikpOk90KGYpP2p0KHQsbCwid2hpdGVzcGFjZSIpKGYpOih0LmVudGVyKCJhdHhIZWFkaW5nVGV4dCIpLGQoZikpfWZ1bmN0aW9uIGMoZil7cmV0dXJuIGY9PT0zNT8odC5jb25zdW1lKGYpLGMpOih0LmV4aXQoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLGwoZikpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGY9PT1udWxsfHxmPT09MzV8fE5yKGYpPyh0LmV4aXQoImF0eEhlYWRpbmdUZXh0IiksbChmKSk6KHQuY29uc3VtZShmKSxkKX19dmFyIFl2ZSxQRXQ9dSgoKT0+e0ppKCk7V3IoKTtnMCgpO1l2ZT17bmFtZToiaGVhZGluZ0F0eCIscmVzb2x2ZTpIZmEsdG9rZW5pemU6cWZhfTtpKEhmYSwicmVzb2x2ZUhlYWRpbmdBdHgiKTtpKHFmYSwidG9rZW5pemVIZWFkaW5nQXR4Iil9KTt2YXIgTkV0LEt2ZSxPRXQ9dSgoKT0+e05FdD1bImFkZHJlc3MiLCJhcnRpY2xlIiwiYXNpZGUiLCJiYXNlIiwiYmFzZWZvbnQiLCJibG9ja3F1b3RlIiwiYm9keSIsImNhcHRpb24iLCJjZW50ZXIiLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGV0YWlscyIsImRpYWxvZyIsImRpciIsImRpdiIsImRsIiwiZHQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiZnJhbWUiLCJmcmFtZXNldCIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJoZWFkZXIiLCJociIsImh0bWwiLCJpZnJhbWUiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtYWluIiwibWVudSIsIm1lbnVpdGVtIiwibmF2Iiwibm9mcmFtZXMiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwicCIsInBhcmFtIiwic2VhcmNoIiwic2VjdGlvbiIsInN1bW1hcnkiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidHJhY2siLCJ1bCJdLEt2ZT1bInByZSIsInNjcmlwdCIsInN0eWxlIiwidGV4dGFyZWEiXX0pO2Z1bmN0aW9uIFVmYSh0KXtsZXQgZT10Lmxlbmd0aDtmb3IoO2UtLSYmISh0W2VdWzBdPT09ImVudGVyIiYmdFtlXVsxXS50eXBlPT09Imh0bWxGbG93Iik7KTtyZXR1cm4gZT4xJiZ0W2UtMl1bMV0udHlwZT09PSJsaW5lUHJlZml4IiYmKHRbZV1bMV0uc3RhcnQ9dFtlLTJdWzFdLnN0YXJ0LHRbZSsxXVsxXS5zdGFydD10W2UtMl1bMV0uc3RhcnQsdC5zcGxpY2UoZS0yLDIpKSx0fWZ1bmN0aW9uIFdmYSh0LGUscil7bGV0IGE9dGhpcyxzLG4sbyxsLGM7cmV0dXJuIGQ7ZnVuY3Rpb24gZChUKXtyZXR1cm4gZihUKX1mdW5jdGlvbiBmKFQpe3JldHVybiB0LmVudGVyKCJodG1sRmxvdyIpLHQuZW50ZXIoImh0bWxGbG93RGF0YSIpLHQuY29uc3VtZShUKSxwfWZ1bmN0aW9uIHAoVCl7cmV0dXJuIFQ9PT0zMz8odC5jb25zdW1lKFQpLGgpOlQ9PT00Nz8odC5jb25zdW1lKFQpLG49ITAsYik6VD09PTYzPyh0LmNvbnN1bWUoVCkscz0zLGEuaW50ZXJydXB0P2U6RCk6VnMoVCk/KHQuY29uc3VtZShUKSxvPVN0cmluZy5mcm9tQ2hhckNvZGUoVCksZyk6cihUKX1mdW5jdGlvbiBoKFQpe3JldHVybiBUPT09NDU/KHQuY29uc3VtZShUKSxzPTIsbSk6VD09PTkxPyh0LmNvbnN1bWUoVCkscz01LGw9MCx2KTpWcyhUKT8odC5jb25zdW1lKFQpLHM9NCxhLmludGVycnVwdD9lOkQpOnIoVCl9ZnVuY3Rpb24gbShUKXtyZXR1cm4gVD09PTQ1Pyh0LmNvbnN1bWUoVCksYS5pbnRlcnJ1cHQ/ZTpEKTpyKFQpfWZ1bmN0aW9uIHYoVCl7bGV0IFc9IkNEQVRBWyI7cmV0dXJuIFQ9PT1XLmNoYXJDb2RlQXQobCsrKT8odC5jb25zdW1lKFQpLGw9PT1XLmxlbmd0aD9hLmludGVycnVwdD9lOno6dik6cihUKX1mdW5jdGlvbiBiKFQpe3JldHVybiBWcyhUKT8odC5jb25zdW1lKFQpLG89U3RyaW5nLmZyb21DaGFyQ29kZShUKSxnKTpyKFQpfWZ1bmN0aW9uIGcoVCl7aWYoVD09PW51bGx8fFQ9PT00N3x8VD09PTYyfHxOcihUKSl7bGV0IFc9VD09PTQ3LHBlPW8udG9Mb3dlckNhc2UoKTtyZXR1cm4hVyYmIW4mJkt2ZS5pbmNsdWRlcyhwZSk/KHM9MSxhLmludGVycnVwdD9lKFQpOnooVCkpOk5FdC5pbmNsdWRlcyhvLnRvTG93ZXJDYXNlKCkpPyhzPTYsVz8odC5jb25zdW1lKFQpLHkpOmEuaW50ZXJydXB0P2UoVCk6eihUKSk6KHM9NyxhLmludGVycnVwdCYmIWEucGFyc2VyLmxhenlbYS5ub3coKS5saW5lXT9yKFQpOm4/ayhUKTpNKFQpKX1yZXR1cm4gVD09PTQ1fHxJaShUKT8odC5jb25zdW1lKFQpLG8rPVN0cmluZy5mcm9tQ2hhckNvZGUoVCksZyk6cihUKX1mdW5jdGlvbiB5KFQpe3JldHVybiBUPT09NjI/KHQuY29uc3VtZShUKSxhLmludGVycnVwdD9lOnopOnIoVCl9ZnVuY3Rpb24gayhUKXtyZXR1cm4gT3QoVCk/KHQuY29uc3VtZShUKSxrKTpCKFQpfWZ1bmN0aW9uIE0oVCl7cmV0dXJuIFQ9PT00Nz8odC5jb25zdW1lKFQpLEIpOlQ9PT01OHx8VD09PTk1fHxWcyhUKT8odC5jb25zdW1lKFQpLE4pOk90KFQpPyh0LmNvbnN1bWUoVCksTSk6QihUKX1mdW5jdGlvbiBOKFQpe3JldHVybiBUPT09NDV8fFQ9PT00Nnx8VD09PTU4fHxUPT09OTV8fElpKFQpPyh0LmNvbnN1bWUoVCksTik6XyhUKX1mdW5jdGlvbiBfKFQpe3JldHVybiBUPT09NjE/KHQuY29uc3VtZShUKSxTKTpPdChUKT8odC5jb25zdW1lKFQpLF8pOk0oVCl9ZnVuY3Rpb24gUyhUKXtyZXR1cm4gVD09PW51bGx8fFQ9PT02MHx8VD09PTYxfHxUPT09NjJ8fFQ9PT05Nj9yKFQpOlQ9PT0zNHx8VD09PTM5Pyh0LmNvbnN1bWUoVCksYz1ULE8pOk90KFQpPyh0LmNvbnN1bWUoVCksUyk6TChUKX1mdW5jdGlvbiBPKFQpe3JldHVybiBUPT09Yz8odC5jb25zdW1lKFQpLGM9bnVsbCxFKTpUPT09bnVsbHx8ZHQoVCk/cihUKToodC5jb25zdW1lKFQpLE8pfWZ1bmN0aW9uIEwoVCl7cmV0dXJuIFQ9PT1udWxsfHxUPT09MzR8fFQ9PT0zOXx8VD09PTQ3fHxUPT09NjB8fFQ9PT02MXx8VD09PTYyfHxUPT09OTZ8fE5yKFQpP18oVCk6KHQuY29uc3VtZShUKSxMKX1mdW5jdGlvbiBFKFQpe3JldHVybiBUPT09NDd8fFQ9PT02Mnx8T3QoVCk/TShUKTpyKFQpfWZ1bmN0aW9uIEIoVCl7cmV0dXJuIFQ9PT02Mj8odC5jb25zdW1lKFQpLEMpOnIoVCl9ZnVuY3Rpb24gQyhUKXtyZXR1cm4gVD09PW51bGx8fGR0KFQpP3ooVCk6T3QoVCk/KHQuY29uc3VtZShUKSxDKTpyKFQpfWZ1bmN0aW9uIHooVCl7cmV0dXJuIFQ9PT00NSYmcz09PTI/KHQuY29uc3VtZShUKSxZKTpUPT09NjAmJnM9PT0xPyh0LmNvbnN1bWUoVCksRyk6VD09PTYyJiZzPT09ND8odC5jb25zdW1lKFQpLFEpOlQ9PT02MyYmcz09PTM/KHQuY29uc3VtZShUKSxEKTpUPT09OTMmJnM9PT01Pyh0LmNvbnN1bWUoVCksZGUpOmR0KFQpJiYocz09PTZ8fHM9PT03KT8odC5leGl0KCJodG1sRmxvd0RhdGEiKSx0LmNoZWNrKFZmYSxmZSxBKShUKSk6VD09PW51bGx8fGR0KFQpPyh0LmV4aXQoImh0bWxGbG93RGF0YSIpLEEoVCkpOih0LmNvbnN1bWUoVCkseil9ZnVuY3Rpb24gQShUKXtyZXR1cm4gdC5jaGVjayhqZmEsJCxmZSkoVCl9ZnVuY3Rpb24gJChUKXtyZXR1cm4gdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShUKSx0LmV4aXQoImxpbmVFbmRpbmciKSxGfWZ1bmN0aW9uIEYoVCl7cmV0dXJuIFQ9PT1udWxsfHxkdChUKT9BKFQpOih0LmVudGVyKCJodG1sRmxvd0RhdGEiKSx6KFQpKX1mdW5jdGlvbiBZKFQpe3JldHVybiBUPT09NDU/KHQuY29uc3VtZShUKSxEKTp6KFQpfWZ1bmN0aW9uIEcoVCl7cmV0dXJuIFQ9PT00Nz8odC5jb25zdW1lKFQpLG89IiIsWik6eihUKX1mdW5jdGlvbiBaKFQpe2lmKFQ9PT02Mil7bGV0IFc9by50b0xvd2VyQ2FzZSgpO3JldHVybiBLdmUuaW5jbHVkZXMoVyk/KHQuY29uc3VtZShUKSxRKTp6KFQpfXJldHVybiBWcyhUKSYmby5sZW5ndGg8OD8odC5jb25zdW1lKFQpLG8rPVN0cmluZy5mcm9tQ2hhckNvZGUoVCksWik6eihUKX1mdW5jdGlvbiBkZShUKXtyZXR1cm4gVD09PTkzPyh0LmNvbnN1bWUoVCksRCk6eihUKX1mdW5jdGlvbiBEKFQpe3JldHVybiBUPT09NjI/KHQuY29uc3VtZShUKSxRKTpUPT09NDUmJnM9PT0yPyh0LmNvbnN1bWUoVCksRCk6eihUKX1mdW5jdGlvbiBRKFQpe3JldHVybiBUPT09bnVsbHx8ZHQoVCk/KHQuZXhpdCgiaHRtbEZsb3dEYXRhIiksZmUoVCkpOih0LmNvbnN1bWUoVCksUSl9ZnVuY3Rpb24gZmUoVCl7cmV0dXJuIHQuZXhpdCgiaHRtbEZsb3ciKSxlKFQpfX1mdW5jdGlvbiBHZmEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gZHQobyk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUobyksdC5leGl0KCJsaW5lRW5kaW5nIiksbik6cihvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihvKTplKG8pfX1mdW5jdGlvbiBZZmEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEocyl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUocyksdC5leGl0KCJsaW5lRW5kaW5nIiksdC5hdHRlbXB0KHkwLGUscil9fXZhciBadmUsVmZhLGpmYSxSRXQ9dSgoKT0+e1dyKCk7T0V0KCk7azFlKCk7WnZlPXtjb25jcmV0ZTohMCxuYW1lOiJodG1sRmxvdyIscmVzb2x2ZVRvOlVmYSx0b2tlbml6ZTpXZmF9LFZmYT17cGFydGlhbDohMCx0b2tlbml6ZTpZZmF9LGpmYT17cGFydGlhbDohMCx0b2tlbml6ZTpHZmF9O2koVWZhLCJyZXNvbHZlVG9IdG1sRmxvdyIpO2koV2ZhLCJ0b2tlbml6ZUh0bWxGbG93Iik7aShHZmEsInRva2VuaXplTm9uTGF6eUNvbnRpbnVhdGlvblN0YXJ0Iik7aShZZmEsInRva2VuaXplQmxhbmtMaW5lQmVmb3JlIil9KTtmdW5jdGlvbiBLZmEodCxlLHIpe2xldCBhPXRoaXMscyxuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChEKXtyZXR1cm4gdC5lbnRlcigiaHRtbFRleHQiKSx0LmVudGVyKCJodG1sVGV4dERhdGEiKSx0LmNvbnN1bWUoRCksY31mdW5jdGlvbiBjKEQpe3JldHVybiBEPT09MzM/KHQuY29uc3VtZShEKSxkKTpEPT09NDc/KHQuY29uc3VtZShEKSxfKTpEPT09NjM/KHQuY29uc3VtZShEKSxNKTpWcyhEKT8odC5jb25zdW1lKEQpLEwpOnIoRCl9ZnVuY3Rpb24gZChEKXtyZXR1cm4gRD09PTQ1Pyh0LmNvbnN1bWUoRCksZik6RD09PTkxPyh0LmNvbnN1bWUoRCksbj0wLHYpOlZzKEQpPyh0LmNvbnN1bWUoRCksayk6cihEKX1mdW5jdGlvbiBmKEQpe3JldHVybiBEPT09NDU/KHQuY29uc3VtZShEKSxtKTpyKEQpfWZ1bmN0aW9uIHAoRCl7cmV0dXJuIEQ9PT1udWxsP3IoRCk6RD09PTQ1Pyh0LmNvbnN1bWUoRCksaCk6ZHQoRCk/KG89cCxHKEQpKToodC5jb25zdW1lKEQpLHApfWZ1bmN0aW9uIGgoRCl7cmV0dXJuIEQ9PT00NT8odC5jb25zdW1lKEQpLG0pOnAoRCl9ZnVuY3Rpb24gbShEKXtyZXR1cm4gRD09PTYyP1koRCk6RD09PTQ1P2goRCk6cChEKX1mdW5jdGlvbiB2KEQpe2xldCBRPSJDREFUQVsiO3JldHVybiBEPT09US5jaGFyQ29kZUF0KG4rKyk/KHQuY29uc3VtZShEKSxuPT09US5sZW5ndGg/Yjp2KTpyKEQpfWZ1bmN0aW9uIGIoRCl7cmV0dXJuIEQ9PT1udWxsP3IoRCk6RD09PTkzPyh0LmNvbnN1bWUoRCksZyk6ZHQoRCk/KG89YixHKEQpKToodC5jb25zdW1lKEQpLGIpfWZ1bmN0aW9uIGcoRCl7cmV0dXJuIEQ9PT05Mz8odC5jb25zdW1lKEQpLHkpOmIoRCl9ZnVuY3Rpb24geShEKXtyZXR1cm4gRD09PTYyP1koRCk6RD09PTkzPyh0LmNvbnN1bWUoRCkseSk6YihEKX1mdW5jdGlvbiBrKEQpe3JldHVybiBEPT09bnVsbHx8RD09PTYyP1koRCk6ZHQoRCk/KG89ayxHKEQpKToodC5jb25zdW1lKEQpLGspfWZ1bmN0aW9uIE0oRCl7cmV0dXJuIEQ9PT1udWxsP3IoRCk6RD09PTYzPyh0LmNvbnN1bWUoRCksTik6ZHQoRCk/KG89TSxHKEQpKToodC5jb25zdW1lKEQpLE0pfWZ1bmN0aW9uIE4oRCl7cmV0dXJuIEQ9PT02Mj9ZKEQpOk0oRCl9ZnVuY3Rpb24gXyhEKXtyZXR1cm4gVnMoRCk/KHQuY29uc3VtZShEKSxTKTpyKEQpfWZ1bmN0aW9uIFMoRCl7cmV0dXJuIEQ9PT00NXx8SWkoRCk/KHQuY29uc3VtZShEKSxTKTpPKEQpfWZ1bmN0aW9uIE8oRCl7cmV0dXJuIGR0KEQpPyhvPU8sRyhEKSk6T3QoRCk/KHQuY29uc3VtZShEKSxPKTpZKEQpfWZ1bmN0aW9uIEwoRCl7cmV0dXJuIEQ9PT00NXx8SWkoRCk/KHQuY29uc3VtZShEKSxMKTpEPT09NDd8fEQ9PT02Mnx8TnIoRCk/RShEKTpyKEQpfWZ1bmN0aW9uIEUoRCl7cmV0dXJuIEQ9PT00Nz8odC5jb25zdW1lKEQpLFkpOkQ9PT01OHx8RD09PTk1fHxWcyhEKT8odC5jb25zdW1lKEQpLEIpOmR0KEQpPyhvPUUsRyhEKSk6T3QoRCk/KHQuY29uc3VtZShEKSxFKTpZKEQpfWZ1bmN0aW9uIEIoRCl7cmV0dXJuIEQ9PT00NXx8RD09PTQ2fHxEPT09NTh8fEQ9PT05NXx8SWkoRCk/KHQuY29uc3VtZShEKSxCKTpDKEQpfWZ1bmN0aW9uIEMoRCl7cmV0dXJuIEQ9PT02MT8odC5jb25zdW1lKEQpLHopOmR0KEQpPyhvPUMsRyhEKSk6T3QoRCk/KHQuY29uc3VtZShEKSxDKTpFKEQpfWZ1bmN0aW9uIHooRCl7cmV0dXJuIEQ9PT1udWxsfHxEPT09NjB8fEQ9PT02MXx8RD09PTYyfHxEPT09OTY/cihEKTpEPT09MzR8fEQ9PT0zOT8odC5jb25zdW1lKEQpLHM9RCxBKTpkdChEKT8obz16LEcoRCkpOk90KEQpPyh0LmNvbnN1bWUoRCkseik6KHQuY29uc3VtZShEKSwkKX1mdW5jdGlvbiBBKEQpe3JldHVybiBEPT09cz8odC5jb25zdW1lKEQpLHM9dm9pZCAwLEYpOkQ9PT1udWxsP3IoRCk6ZHQoRCk/KG89QSxHKEQpKToodC5jb25zdW1lKEQpLEEpfWZ1bmN0aW9uICQoRCl7cmV0dXJuIEQ9PT1udWxsfHxEPT09MzR8fEQ9PT0zOXx8RD09PTYwfHxEPT09NjF8fEQ9PT05Nj9yKEQpOkQ9PT00N3x8RD09PTYyfHxOcihEKT9FKEQpOih0LmNvbnN1bWUoRCksJCl9ZnVuY3Rpb24gRihEKXtyZXR1cm4gRD09PTQ3fHxEPT09NjJ8fE5yKEQpP0UoRCk6cihEKX1mdW5jdGlvbiBZKEQpe3JldHVybiBEPT09NjI/KHQuY29uc3VtZShEKSx0LmV4aXQoImh0bWxUZXh0RGF0YSIpLHQuZXhpdCgiaHRtbFRleHQiKSxlKTpyKEQpfWZ1bmN0aW9uIEcoRCl7cmV0dXJuIHQuZXhpdCgiaHRtbFRleHREYXRhIiksdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShEKSx0LmV4aXQoImxpbmVFbmRpbmciKSxafWZ1bmN0aW9uIFooRCl7cmV0dXJuIE90KEQpP2p0KHQsZGUsImxpbmVQcmVmaXgiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoRCk6ZGUoRCl9ZnVuY3Rpb24gZGUoRCl7cmV0dXJuIHQuZW50ZXIoImh0bWxUZXh0RGF0YSIpLG8oRCl9fXZhciBRdmUsRkV0PXUoKCk9PntKaSgpO1dyKCk7UXZlPXtuYW1lOiJodG1sVGV4dCIsdG9rZW5pemU6S2ZhfTtpKEtmYSwidG9rZW5pemVIdG1sVGV4dCIpfSk7ZnVuY3Rpb24gSmZhKHQpe2xldCBlPS0xLHI9W107Zm9yKDsrK2U8dC5sZW5ndGg7KXtsZXQgYT10W2VdWzFdO2lmKHIucHVzaCh0W2VdKSxhLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fGEudHlwZT09PSJsYWJlbExpbmsifHxhLnR5cGU9PT0ibGFiZWxFbmQiKXtsZXQgcz1hLnR5cGU9PT0ibGFiZWxJbWFnZSI/NDoyO2EudHlwZT0iZGF0YSIsZSs9c319cmV0dXJuIHQubGVuZ3RoIT09ci5sZW5ndGgmJlhpKHQsMCx0Lmxlbmd0aCxyKSx0fWZ1bmN0aW9uIGVoYSh0LGUpe2xldCByPXQubGVuZ3RoLGE9MCxzLG4sbyxsO2Zvcig7ci0tOylpZihzPXRbcl1bMV0sbil7aWYocy50eXBlPT09ImxpbmsifHxzLnR5cGU9PT0ibGFiZWxMaW5rIiYmcy5faW5hY3RpdmUpYnJlYWs7dFtyXVswXT09PSJlbnRlciImJnMudHlwZT09PSJsYWJlbExpbmsiJiYocy5faW5hY3RpdmU9ITApfWVsc2UgaWYobyl7aWYodFtyXVswXT09PSJlbnRlciImJihzLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fHMudHlwZT09PSJsYWJlbExpbmsiKSYmIXMuX2JhbGFuY2VkJiYobj1yLHMudHlwZSE9PSJsYWJlbExpbmsiKSl7YT0yO2JyZWFrfX1lbHNlIHMudHlwZT09PSJsYWJlbEVuZCImJihvPXIpO2xldCBjPXt0eXBlOnRbbl1bMV0udHlwZT09PSJsYWJlbExpbmsiPyJsaW5rIjoiaW1hZ2UiLHN0YXJ0OnsuLi50W25dWzFdLnN0YXJ0fSxlbmQ6ey4uLnRbdC5sZW5ndGgtMV1bMV0uZW5kfX0sZD17dHlwZToibGFiZWwiLHN0YXJ0OnsuLi50W25dWzFdLnN0YXJ0fSxlbmQ6ey4uLnRbb11bMV0uZW5kfX0sZj17dHlwZToibGFiZWxUZXh0IixzdGFydDp7Li4udFtuK2ErMl1bMV0uZW5kfSxlbmQ6ey4uLnRbby0yXVsxXS5zdGFydH19O3JldHVybiBsPVtbImVudGVyIixjLGVdLFsiZW50ZXIiLGQsZV1dLGw9eXMobCx0LnNsaWNlKG4rMSxuK2ErMykpLGw9eXMobCxbWyJlbnRlciIsZixlXV0pLGw9eXMobCxEdShlLnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCx0LnNsaWNlKG4rYSs0LG8tMyksZSkpLGw9eXMobCxbWyJleGl0IixmLGVdLHRbby0yXSx0W28tMV0sWyJleGl0IixkLGVdXSksbD15cyhsLHQuc2xpY2UobysxKSksbD15cyhsLFtbImV4aXQiLGMsZV1dKSxYaSh0LG4sdC5sZW5ndGgsbCksdH1mdW5jdGlvbiB0aGEodCxlLHIpe2xldCBhPXRoaXMscz1hLmV2ZW50cy5sZW5ndGgsbixvO2Zvcig7cy0tOylpZigoYS5ldmVudHNbc11bMV0udHlwZT09PSJsYWJlbEltYWdlInx8YS5ldmVudHNbc11bMV0udHlwZT09PSJsYWJlbExpbmsiKSYmIWEuZXZlbnRzW3NdWzFdLl9iYWxhbmNlZCl7bj1hLmV2ZW50c1tzXVsxXTticmVha31yZXR1cm4gbDtmdW5jdGlvbiBsKGgpe3JldHVybiBuP24uX2luYWN0aXZlP3AoaCk6KG89YS5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhQaShhLnNsaWNlU2VyaWFsaXplKHtzdGFydDpuLmVuZCxlbmQ6YS5ub3coKX0pKSksdC5lbnRlcigibGFiZWxFbmQiKSx0LmVudGVyKCJsYWJlbE1hcmtlciIpLHQuY29uc3VtZShoKSx0LmV4aXQoImxhYmVsTWFya2VyIiksdC5leGl0KCJsYWJlbEVuZCIpLGMpOnIoaCl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gaD09PTQwP3QuYXR0ZW1wdChaZmEsZixvP2Y6cCkoaCk6aD09PTkxP3QuYXR0ZW1wdChRZmEsZixvP2Q6cCkoaCk6bz9mKGgpOnAoaCl9ZnVuY3Rpb24gZChoKXtyZXR1cm4gdC5hdHRlbXB0KFhmYSxmLHApKGgpfWZ1bmN0aW9uIGYoaCl7cmV0dXJuIGUoaCl9ZnVuY3Rpb24gcChoKXtyZXR1cm4gbi5fYmFsYW5jZWQ9ITAscihoKX19ZnVuY3Rpb24gcmhhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKHApe3JldHVybiB0LmVudGVyKCJyZXNvdXJjZSIpLHQuZW50ZXIoInJlc291cmNlTWFya2VyIiksdC5jb25zdW1lKHApLHQuZXhpdCgicmVzb3VyY2VNYXJrZXIiKSxzfWZ1bmN0aW9uIHMocCl7cmV0dXJuIE5yKHApP3poKHQsbikocCk6bihwKX1mdW5jdGlvbiBuKHApe3JldHVybiBwPT09NDE/ZihwKTpUMWUodCxvLGwsInJlc291cmNlRGVzdGluYXRpb24iLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbCIsInJlc291cmNlRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwicmVzb3VyY2VEZXN0aW5hdGlvblJhdyIsInJlc291cmNlRGVzdGluYXRpb25TdHJpbmciLDMyKShwKX1mdW5jdGlvbiBvKHApe3JldHVybiBOcihwKT96aCh0LGMpKHApOmYocCl9ZnVuY3Rpb24gbChwKXtyZXR1cm4gcihwKX1mdW5jdGlvbiBjKHApe3JldHVybiBwPT09MzR8fHA9PT0zOXx8cD09PTQwP0QxZSh0LGQsciwicmVzb3VyY2VUaXRsZSIsInJlc291cmNlVGl0bGVNYXJrZXIiLCJyZXNvdXJjZVRpdGxlU3RyaW5nIikocCk6ZihwKX1mdW5jdGlvbiBkKHApe3JldHVybiBOcihwKT96aCh0LGYpKHApOmYocCl9ZnVuY3Rpb24gZihwKXtyZXR1cm4gcD09PTQxPyh0LmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLHQuY29uc3VtZShwKSx0LmV4aXQoInJlc291cmNlTWFya2VyIiksdC5leGl0KCJyZXNvdXJjZSIpLGUpOnIocCl9fWZ1bmN0aW9uIGFoYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKGwpe3JldHVybiBMMWUuY2FsbChhLHQsbixvLCJyZWZlcmVuY2UiLCJyZWZlcmVuY2VNYXJrZXIiLCJyZWZlcmVuY2VTdHJpbmciKShsKX1mdW5jdGlvbiBuKGwpe3JldHVybiBhLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKFBpKGEuc2xpY2VTZXJpYWxpemUoYS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSkpP2UobCk6cihsKX1mdW5jdGlvbiBvKGwpe3JldHVybiByKGwpfX1mdW5jdGlvbiBpaGEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEobil7cmV0dXJuIHQuZW50ZXIoInJlZmVyZW5jZSIpLHQuZW50ZXIoInJlZmVyZW5jZU1hcmtlciIpLHQuY29uc3VtZShuKSx0LmV4aXQoInJlZmVyZW5jZU1hcmtlciIpLHN9ZnVuY3Rpb24gcyhuKXtyZXR1cm4gbj09PTkzPyh0LmVudGVyKCJyZWZlcmVuY2VNYXJrZXIiKSx0LmNvbnN1bWUobiksdC5leGl0KCJyZWZlcmVuY2VNYXJrZXIiKSx0LmV4aXQoInJlZmVyZW5jZSIpLGUpOnIobil9fXZhciBfaCxaZmEsUWZhLFhmYSwkMWU9dSgoKT0+e3F2ZSgpO1Z2ZSgpO2p2ZSgpO1V2ZSgpO1dyKCk7ZzAoKTtUdSgpO19NKCk7X2g9e25hbWU6ImxhYmVsRW5kIixyZXNvbHZlQWxsOkpmYSxyZXNvbHZlVG86ZWhhLHRva2VuaXplOnRoYX0sWmZhPXt0b2tlbml6ZTpyaGF9LFFmYT17dG9rZW5pemU6YWhhfSxYZmE9e3Rva2VuaXplOmloYX07aShKZmEsInJlc29sdmVBbGxMYWJlbEVuZCIpO2koZWhhLCJyZXNvbHZlVG9MYWJlbEVuZCIpO2kodGhhLCJ0b2tlbml6ZUxhYmVsRW5kIik7aShyaGEsInRva2VuaXplUmVzb3VyY2UiKTtpKGFoYSwidG9rZW5pemVSZWZlcmVuY2VGdWxsIik7aShpaGEsInRva2VuaXplUmVmZXJlbmNlQ29sbGFwc2VkIil9KTtmdW5jdGlvbiBzaGEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhsKXtyZXR1cm4gdC5lbnRlcigibGFiZWxJbWFnZSIpLHQuZW50ZXIoImxhYmVsSW1hZ2VNYXJrZXIiKSx0LmNvbnN1bWUobCksdC5leGl0KCJsYWJlbEltYWdlTWFya2VyIiksbn1mdW5jdGlvbiBuKGwpe3JldHVybiBsPT09OTE/KHQuZW50ZXIoImxhYmVsTWFya2VyIiksdC5jb25zdW1lKGwpLHQuZXhpdCgibGFiZWxNYXJrZXIiKSx0LmV4aXQoImxhYmVsSW1hZ2UiKSxvKTpyKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIGw9PT05NCYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gYS5wYXJzZXIuY29uc3RydWN0cz9yKGwpOmUobCl9fXZhciBYdmUsQkV0PXUoKCk9PnskMWUoKTtYdmU9e25hbWU6ImxhYmVsU3RhcnRJbWFnZSIscmVzb2x2ZUFsbDpfaC5yZXNvbHZlQWxsLHRva2VuaXplOnNoYX07aShzaGEsInRva2VuaXplTGFiZWxTdGFydEltYWdlIil9KTtmdW5jdGlvbiBuaGEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gdC5lbnRlcigibGFiZWxMaW5rIiksdC5lbnRlcigibGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUobyksdC5leGl0KCJsYWJlbE1hcmtlciIpLHQuZXhpdCgibGFiZWxMaW5rIiksbn1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGEucGFyc2VyLmNvbnN0cnVjdHM/cihvKTplKG8pfX12YXIgSnZlLEhFdD11KCgpPT57JDFlKCk7SnZlPXtuYW1lOiJsYWJlbFN0YXJ0TGluayIscmVzb2x2ZUFsbDpfaC5yZXNvbHZlQWxsLHRva2VuaXplOm5oYX07aShuaGEsInRva2VuaXplTGFiZWxTdGFydExpbmsiKX0pO2Z1bmN0aW9uIG9oYSh0LGUpe3JldHVybiByO2Z1bmN0aW9uIHIoYSl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoYSksdC5leGl0KCJsaW5lRW5kaW5nIiksanQodCxlLCJsaW5lUHJlZml4Iil9fXZhciBBTSxxRXQ9dSgoKT0+e0ppKCk7V3IoKTtBTT17bmFtZToibGluZUVuZGluZyIsdG9rZW5pemU6b2hhfTtpKG9oYSwidG9rZW5pemVMaW5lRW5kaW5nIil9KTtmdW5jdGlvbiBsaGEodCxlLHIpe2xldCBhPTAscztyZXR1cm4gbjtmdW5jdGlvbiBuKGQpe3JldHVybiB0LmVudGVyKCJ0aGVtYXRpY0JyZWFrIiksbyhkKX1mdW5jdGlvbiBvKGQpe3JldHVybiBzPWQsbChkKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09cz8odC5lbnRlcigidGhlbWF0aWNCcmVha1NlcXVlbmNlIiksYyhkKSk6YT49MyYmKGQ9PT1udWxsfHxkdChkKSk/KHQuZXhpdCgidGhlbWF0aWNCcmVhayIpLGUoZCkpOnIoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gZD09PXM/KHQuY29uc3VtZShkKSxhKyssYyk6KHQuZXhpdCgidGhlbWF0aWNCcmVha1NlcXVlbmNlIiksT3QoZCk/anQodCxsLCJ3aGl0ZXNwYWNlIikoZCk6bChkKSl9fXZhciBUaCxleWU9dSgoKT0+e0ppKCk7V3IoKTtUaD17bmFtZToidGhlbWF0aWNCcmVhayIsdG9rZW5pemU6bGhhfTtpKGxoYSwidG9rZW5pemVUaGVtYXRpY0JyZWFrIil9KTtmdW5jdGlvbiB1aGEodCxlLHIpe2xldCBhPXRoaXMscz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV0sbj1zJiZzWzFdLnR5cGU9PT0ibGluZVByZWZpeCI/c1syXS5zbGljZVNlcmlhbGl6ZShzWzFdLCEwKS5sZW5ndGg6MCxvPTA7cmV0dXJuIGw7ZnVuY3Rpb24gbChtKXtsZXQgdj1hLmNvbnRhaW5lclN0YXRlLnR5cGV8fChtPT09NDJ8fG09PT00M3x8bT09PTQ1PyJsaXN0VW5vcmRlcmVkIjoibGlzdE9yZGVyZWQiKTtpZih2PT09Imxpc3RVbm9yZGVyZWQiPyFhLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8bT09PWEuY29udGFpbmVyU3RhdGUubWFya2VyOmtNKG0pKXtpZihhLmNvbnRhaW5lclN0YXRlLnR5cGV8fChhLmNvbnRhaW5lclN0YXRlLnR5cGU9dix0LmVudGVyKHYse19jb250YWluZXI6ITB9KSksdj09PSJsaXN0VW5vcmRlcmVkIilyZXR1cm4gdC5lbnRlcigibGlzdEl0ZW1QcmVmaXgiKSxtPT09NDJ8fG09PT00NT90LmNoZWNrKFRoLHIsZCkobSk6ZChtKTtpZighYS5pbnRlcnJ1cHR8fG09PT00OSlyZXR1cm4gdC5lbnRlcigibGlzdEl0ZW1QcmVmaXgiKSx0LmVudGVyKCJsaXN0SXRlbVZhbHVlIiksYyhtKX1yZXR1cm4gcihtKX1mdW5jdGlvbiBjKG0pe3JldHVybiBrTShtKSYmKytvPDEwPyh0LmNvbnN1bWUobSksYyk6KCFhLmludGVycnVwdHx8bzwyKSYmKGEuY29udGFpbmVyU3RhdGUubWFya2VyP209PT1hLmNvbnRhaW5lclN0YXRlLm1hcmtlcjptPT09NDF8fG09PT00Nik/KHQuZXhpdCgibGlzdEl0ZW1WYWx1ZSIpLGQobSkpOnIobSl9ZnVuY3Rpb24gZChtKXtyZXR1cm4gdC5lbnRlcigibGlzdEl0ZW1NYXJrZXIiKSx0LmNvbnN1bWUobSksdC5leGl0KCJsaXN0SXRlbU1hcmtlciIpLGEuY29udGFpbmVyU3RhdGUubWFya2VyPWEuY29udGFpbmVyU3RhdGUubWFya2VyfHxtLHQuY2hlY2soeTAsYS5pbnRlcnJ1cHQ/cjpmLHQuYXR0ZW1wdChjaGEsaCxwKSl9ZnVuY3Rpb24gZihtKXtyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPSEwLG4rKyxoKG0pfWZ1bmN0aW9uIHAobSl7cmV0dXJuIE90KG0pPyh0LmVudGVyKCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSx0LmNvbnN1bWUobSksdC5leGl0KCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSxoKTpyKG0pfWZ1bmN0aW9uIGgobSl7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuc2l6ZT1uK2Euc2xpY2VTZXJpYWxpemUodC5leGl0KCJsaXN0SXRlbVByZWZpeCIpLCEwKS5sZW5ndGgsZShtKX19ZnVuY3Rpb24gcGhhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBhLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLHQuY2hlY2soeTAscyxuKTtmdW5jdGlvbiBzKGwpe3JldHVybiBhLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPWEuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fGEuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSxqdCh0LGUsImxpc3RJdGVtSW5kZW50IixhLmNvbnRhaW5lclN0YXRlLnNpemUrMSkobCl9aShzLCJvbkJsYW5rIik7ZnVuY3Rpb24gbihsKXtyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lc3x8IU90KGwpPyhhLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxhLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLG8obCkpOihhLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxhLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLHQuYXR0ZW1wdChkaGEsZSxvKShsKSl9aShuLCJub3RCbGFuayIpO2Z1bmN0aW9uIG8obCl7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz0hMCxhLmludGVycnVwdD12b2lkIDAsanQodCx0LmF0dGVtcHQoaW8sZSxyKSwibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShsKX1pKG8sIm5vdEluQ3VycmVudEl0ZW0iKX1mdW5jdGlvbiBmaGEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIGp0KHQscywibGlzdEl0ZW1JbmRlbnQiLGEuY29udGFpbmVyU3RhdGUuc2l6ZSsxKTtmdW5jdGlvbiBzKG4pe2xldCBvPWEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IiYmb1syXS5zbGljZVNlcmlhbGl6ZShvWzFdLCEwKS5sZW5ndGg9PT1hLmNvbnRhaW5lclN0YXRlLnNpemU/ZShuKTpyKG4pfX1mdW5jdGlvbiBoaGEodCl7dC5leGl0KHRoaXMuY29udGFpbmVyU3RhdGUudHlwZSl9ZnVuY3Rpb24gbWhhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBqdCh0LHMsImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo1KTtmdW5jdGlvbiBzKG4pe2xldCBvPWEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4hT3QobikmJm8mJm9bMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiP2Uobik6cihuKX19dmFyIGlvLGNoYSxkaGEsVkV0PXUoKCk9PntKaSgpO1dyKCk7azFlKCk7ZXllKCk7aW89e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6cGhhfSxleGl0OmhoYSxuYW1lOiJsaXN0Iix0b2tlbml6ZTp1aGF9LGNoYT17cGFydGlhbDohMCx0b2tlbml6ZTptaGF9LGRoYT17cGFydGlhbDohMCx0b2tlbml6ZTpmaGF9O2kodWhhLCJ0b2tlbml6ZUxpc3RTdGFydCIpO2kocGhhLCJ0b2tlbml6ZUxpc3RDb250aW51YXRpb24iKTtpKGZoYSwidG9rZW5pemVJbmRlbnQiKTtpKGhoYSwidG9rZW5pemVMaXN0RW5kIik7aShtaGEsInRva2VuaXplTGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIil9KTtmdW5jdGlvbiBnaGEodCxlKXtsZXQgcj10Lmxlbmd0aCxhLHMsbjtmb3IoO3ItLTspaWYodFtyXVswXT09PSJlbnRlciIpe2lmKHRbcl1bMV0udHlwZT09PSJjb250ZW50Iil7YT1yO2JyZWFrfXRbcl1bMV0udHlwZT09PSJwYXJhZ3JhcGgiJiYocz1yKX1lbHNlIHRbcl1bMV0udHlwZT09PSJjb250ZW50IiYmdC5zcGxpY2UociwxKSwhbiYmdFtyXVsxXS50eXBlPT09ImRlZmluaXRpb24iJiYobj1yKTtsZXQgbz17dHlwZToic2V0ZXh0SGVhZGluZyIsc3RhcnQ6ey4uLnRbYV1bMV0uc3RhcnR9LGVuZDp7Li4udFt0Lmxlbmd0aC0xXVsxXS5lbmR9fTtyZXR1cm4gdFtzXVsxXS50eXBlPSJzZXRleHRIZWFkaW5nVGV4dCIsbj8odC5zcGxpY2UocywwLFsiZW50ZXIiLG8sZV0pLHQuc3BsaWNlKG4rMSwwLFsiZXhpdCIsdFthXVsxXSxlXSksdFthXVsxXS5lbmQ9ey4uLnRbbl1bMV0uZW5kfSk6dFthXVsxXT1vLHQucHVzaChbImV4aXQiLG8sZV0pLHR9ZnVuY3Rpb24gYmhhKHQsZSxyKXtsZXQgYT10aGlzLHM7cmV0dXJuIG47ZnVuY3Rpb24gbihkKXtsZXQgZj1hLmV2ZW50cy5sZW5ndGgscDtmb3IoO2YtLTspaWYoYS5ldmVudHNbZl1bMV0udHlwZSE9PSJsaW5lRW5kaW5nIiYmYS5ldmVudHNbZl1bMV0udHlwZSE9PSJsaW5lUHJlZml4IiYmYS5ldmVudHNbZl1bMV0udHlwZSE9PSJjb250ZW50Iil7cD1hLmV2ZW50c1tmXVsxXS50eXBlPT09InBhcmFncmFwaCI7YnJlYWt9cmV0dXJuIWEucGFyc2VyLmxhenlbYS5ub3coKS5saW5lXSYmKGEuaW50ZXJydXB0fHxwKT8odC5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmUiKSxzPWQsbyhkKSk6cihkKX1mdW5jdGlvbiBvKGQpe3JldHVybiB0LmVudGVyKCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksbChkKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09cz8odC5jb25zdW1lKGQpLGwpOih0LmV4aXQoInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiKSxPdChkKT9qdCh0LGMsImxpbmVTdWZmaXgiKShkKTpjKGQpKX1mdW5jdGlvbiBjKGQpe3JldHVybiBkPT09bnVsbHx8ZHQoZCk/KHQuZXhpdCgic2V0ZXh0SGVhZGluZ0xpbmUiKSxlKGQpKTpyKGQpfX12YXIgQTFlLGpFdD11KCgpPT57SmkoKTtXcigpO0ExZT17bmFtZToic2V0ZXh0VW5kZXJsaW5lIixyZXNvbHZlVG86Z2hhLHRva2VuaXplOmJoYX07aShnaGEsInJlc29sdmVUb1NldGV4dFVuZGVybGluZSIpO2koYmhhLCJ0b2tlbml6ZVNldGV4dFVuZGVybGluZSIpfSk7dmFyIEUxZT11KCgpPT57U0V0KCk7TUV0KCk7azFlKCk7Q0V0KCk7ekV0KCk7X0V0KCk7TEV0KCk7REV0KCk7JEV0KCk7QUV0KCk7RUV0KCk7SUV0KCk7UEV0KCk7UkV0KCk7RkV0KCk7JDFlKCk7QkV0KCk7SEV0KCk7cUV0KCk7VkV0KCk7akV0KCk7ZXllKCl9KTtmdW5jdGlvbiB0eWUoKXtyZXR1cm57ZG9jdW1lbnQ6ezkxOntuYW1lOiJnZm1Gb290bm90ZURlZmluaXRpb24iLHRva2VuaXplOmtoYSxjb250aW51YXRpb246e3Rva2VuaXplOlNoYX0sZXhpdDpNaGF9fSx0ZXh0Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVDYWxsIix0b2tlbml6ZTp3aGF9LDkzOntuYW1lOiJnZm1Qb3RlbnRpYWxGb290bm90ZUNhbGwiLGFkZDoiYWZ0ZXIiLHRva2VuaXplOnZoYSxyZXNvbHZlVG86eWhhfX19fWZ1bmN0aW9uIHZoYSh0LGUscil7bGV0IGE9dGhpcyxzPWEuZXZlbnRzLmxlbmd0aCxuPWEucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGEucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbztmb3IoO3MtLTspe2xldCBjPWEuZXZlbnRzW3NdWzFdO2lmKGMudHlwZT09PSJsYWJlbEltYWdlIil7bz1jO2JyZWFrfWlmKGMudHlwZT09PSJnZm1Gb290bm90ZUNhbGwifHxjLnR5cGU9PT0ibGFiZWxMaW5rInx8Yy50eXBlPT09ImxhYmVsInx8Yy50eXBlPT09ImltYWdlInx8Yy50eXBlPT09ImxpbmsiKWJyZWFrfXJldHVybiBsO2Z1bmN0aW9uIGwoYyl7aWYoIW98fCFvLl9iYWxhbmNlZClyZXR1cm4gcihjKTtsZXQgZD1QaShhLnNsaWNlU2VyaWFsaXplKHtzdGFydDpvLmVuZCxlbmQ6YS5ub3coKX0pKTtyZXR1cm4gZC5jb2RlUG9pbnRBdCgwKSE9PTk0fHwhbi5pbmNsdWRlcyhkLnNsaWNlKDEpKT9yKGMpOih0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHQuY29uc3VtZShjKSx0LmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksZShjKSl9fWZ1bmN0aW9uIHloYSh0LGUpe2xldCByPXQubGVuZ3RoLGE7Zm9yKDtyLS07KWlmKHRbcl1bMV0udHlwZT09PSJsYWJlbEltYWdlIiYmdFtyXVswXT09PSJlbnRlciIpe2E9dFtyXVsxXTticmVha310W3IrMV1bMV0udHlwZT0iZGF0YSIsdFtyKzNdWzFdLnR5cGU9ImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIjtsZXQgcz17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHRbciszXVsxXS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sdFt0Lmxlbmd0aC0xXVsxXS5lbmQpfSxuPXt0eXBlOiJnZm1Gb290bm90ZUNhbGxNYXJrZXIiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sdFtyKzNdWzFdLmVuZCksZW5kOk9iamVjdC5hc3NpZ24oe30sdFtyKzNdWzFdLmVuZCl9O24uZW5kLmNvbHVtbisrLG4uZW5kLm9mZnNldCsrLG4uZW5kLl9idWZmZXJJbmRleCsrO2xldCBvPXt0eXBlOiJnZm1Gb290bm90ZUNhbGxTdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sbi5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHRbdC5sZW5ndGgtMV1bMV0uc3RhcnQpfSxsPXt0eXBlOiJjaHVua1N0cmluZyIsY29udGVudFR5cGU6InN0cmluZyIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxvLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvLmVuZCl9LGM9W3RbcisxXSx0W3IrMl0sWyJlbnRlciIscyxlXSx0W3IrM10sdFtyKzRdLFsiZW50ZXIiLG4sZV0sWyJleGl0IixuLGVdLFsiZW50ZXIiLG8sZV0sWyJlbnRlciIsbCxlXSxbImV4aXQiLGwsZV0sWyJleGl0IixvLGVdLHRbdC5sZW5ndGgtMl0sdFt0Lmxlbmd0aC0xXSxbImV4aXQiLHMsZV1dO3JldHVybiB0LnNwbGljZShyLHQubGVuZ3RoLXIrMSwuLi5jKSx0fWZ1bmN0aW9uIHdoYSh0LGUscil7bGV0IGE9dGhpcyxzPWEucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGEucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbj0wLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChwKXtyZXR1cm4gdC5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsIiksdC5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUocCksdC5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGN9ZnVuY3Rpb24gYyhwKXtyZXR1cm4gcCE9PTk0P3IocCk6KHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLHQuY29uc3VtZShwKSx0LmV4aXQoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbFN0cmluZyIpLHQuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsZCl9ZnVuY3Rpb24gZChwKXtpZihuPjk5OXx8cD09PTkzJiYhb3x8cD09PW51bGx8fHA9PT05MXx8TnIocCkpcmV0dXJuIHIocCk7aWYocD09PTkzKXt0LmV4aXQoImNodW5rU3RyaW5nIik7bGV0IGg9dC5leGl0KCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKTtyZXR1cm4gcy5pbmNsdWRlcyhQaShhLnNsaWNlU2VyaWFsaXplKGgpKSk/KHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdC5jb25zdW1lKHApLHQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSx0LmV4aXQoImdmbUZvb3Rub3RlQ2FsbCIpLGUpOnIocCl9cmV0dXJuIE5yKHApfHwobz0hMCksbisrLHQuY29uc3VtZShwKSxwPT09OTI/ZjpkfWZ1bmN0aW9uIGYocCl7cmV0dXJuIHA9PT05MXx8cD09PTkyfHxwPT09OTM/KHQuY29uc3VtZShwKSxuKyssZCk6ZChwKX19ZnVuY3Rpb24ga2hhKHQsZSxyKXtsZXQgYT10aGlzLHM9YS5wYXJzZXIuZ2ZtRm9vdG5vdGVzfHwoYS5wYXJzZXIuZ2ZtRm9vdG5vdGVzPVtdKSxuLG89MCxsO3JldHVybiBjO2Z1bmN0aW9uIGModil7cmV0dXJuIHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIpLl9jb250YWluZXI9ITAsdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSx0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLHQuY29uc3VtZSh2KSx0LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksZH1mdW5jdGlvbiBkKHYpe3JldHVybiB2PT09OTQ/KHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlciIpLHQuY29uc3VtZSh2KSx0LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlciIpLHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIiksdC5lbnRlcigiY2h1bmtTdHJpbmciKS5jb250ZW50VHlwZT0ic3RyaW5nIixmKTpyKHYpfWZ1bmN0aW9uIGYodil7aWYobz45OTl8fHY9PT05MyYmIWx8fHY9PT1udWxsfHx2PT09OTF8fE5yKHYpKXJldHVybiByKHYpO2lmKHY9PT05Myl7dC5leGl0KCJjaHVua1N0cmluZyIpO2xldCBiPXQuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKTtyZXR1cm4gbj1QaShhLnNsaWNlU2VyaWFsaXplKGIpKSx0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLHQuY29uc3VtZSh2KSx0LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbCIpLGh9cmV0dXJuIE5yKHYpfHwobD0hMCksbysrLHQuY29uc3VtZSh2KSx2PT09OTI/cDpmfWZ1bmN0aW9uIHAodil7cmV0dXJuIHY9PT05MXx8dj09PTkyfHx2PT09OTM/KHQuY29uc3VtZSh2KSxvKyssZik6Zih2KX1mdW5jdGlvbiBoKHYpe3JldHVybiB2PT09NTg/KHQuZW50ZXIoImRlZmluaXRpb25NYXJrZXIiKSx0LmNvbnN1bWUodiksdC5leGl0KCJkZWZpbml0aW9uTWFya2VyIikscy5pbmNsdWRlcyhuKXx8cy5wdXNoKG4pLGp0KHQsbSwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uV2hpdGVzcGFjZSIpKTpyKHYpfWZ1bmN0aW9uIG0odil7cmV0dXJuIGUodil9fWZ1bmN0aW9uIFNoYSh0LGUscil7cmV0dXJuIHQuY2hlY2soeTAsZSx0LmF0dGVtcHQoeGhhLGUscikpfWZ1bmN0aW9uIE1oYSh0KXt0LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIpfWZ1bmN0aW9uIENoYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4ganQodCxzLCJnZm1Gb290bm90ZURlZmluaXRpb25JbmRlbnQiLDUpO2Z1bmN0aW9uIHMobil7bGV0IG89YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBvJiZvWzFdLnR5cGU9PT0iZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50IiYmb1syXS5zbGljZVNlcmlhbGl6ZShvWzFdLCEwKS5sZW5ndGg9PT00P2Uobik6cihuKX19dmFyIHhoYSxVRXQ9dSgoKT0+e0UxZSgpO0ppKCk7V3IoKTtUdSgpO3hoYT17dG9rZW5pemU6Q2hhLHBhcnRpYWw6ITB9O2kodHllLCJnZm1Gb290bm90ZSIpO2kodmhhLCJ0b2tlbml6ZVBvdGVudGlhbEdmbUZvb3Rub3RlQ2FsbCIpO2koeWhhLCJyZXNvbHZlVG9Qb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwiKTtpKHdoYSwidG9rZW5pemVHZm1Gb290bm90ZUNhbGwiKTtpKGtoYSwidG9rZW5pemVEZWZpbml0aW9uU3RhcnQiKTtpKFNoYSwidG9rZW5pemVEZWZpbml0aW9uQ29udGludWF0aW9uIik7aShNaGEsImdmbUZvb3Rub3RlRGVmaW5pdGlvbkVuZCIpO2koQ2hhLCJ0b2tlbml6ZUluZGVudCIpfSk7ZnVuY3Rpb24gV0V0KHQsZSl7cmV0dXJuIkJhY2sgdG8gcmVmZXJlbmNlICIrKHQrMSkrKGU+MT8iLSIrZToiIil9ZnVuY3Rpb24gcnllKHQpe2xldCBlPXR8fF9oYSxyPWUubGFiZWx8fCJGb290bm90ZXMiLGE9ZS5sYWJlbFRhZ05hbWV8fCJoMiIscz1lLmxhYmVsQXR0cmlidXRlcz09PW51bGx8fGUubGFiZWxBdHRyaWJ1dGVzPT09dm9pZCAwPydjbGFzcz0ic3Itb25seSInOmUubGFiZWxBdHRyaWJ1dGVzLG49ZS5iYWNrTGFiZWx8fFdFdCxvPWUuY2xvYmJlclByZWZpeD09PW51bGx8fGUuY2xvYmJlclByZWZpeD09PXZvaWQgMD8idXNlci1jb250ZW50LSI6ZS5jbG9iYmVyUHJlZml4O3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVEZWZpbml0aW9uKCl7dGhpcy5nZXREYXRhKCJ0aWdodFN0YWNrIikucHVzaCghMSl9LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKCl7dGhpcy5idWZmZXIoKX0sZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKCl7dGhpcy5idWZmZXIoKX19LGV4aXQ6e2dmbUZvb3Rub3RlRGVmaW5pdGlvbigpe2xldCBsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIpLGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIpLGQ9dGhpcy5nZXREYXRhKCJ0aWdodFN0YWNrIiksZj1jLnBvcCgpLHA9dGhpcy5yZXN1bWUoKTtsfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiLGw9e30pLHpoYS5jYWxsKGwsZil8fChsW2ZdPXApLGQucG9wKCksdGhpcy5zZXREYXRhKCJzbHVycE9uZUxpbmVFbmRpbmciLCEwKSx0aGlzLnNldERhdGEoImxhc3RXYXNUYWciKX0sZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcobCl7bGV0IGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIpO2N8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siLGM9W10pLGMucHVzaChQaSh0aGlzLnNsaWNlU2VyaWFsaXplKGwpKSksdGhpcy5yZXN1bWUoKSx0aGlzLmJ1ZmZlcigpfSxnZm1Gb290bm90ZUNhbGxTdHJpbmcobCl7bGV0IGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIpLGQ9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiKSxmPVBpKHRoaXMuc2xpY2VTZXJpYWxpemUobCkpLHA7dGhpcy5yZXN1bWUoKSxjfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlQ2FsbE9yZGVyIixjPVtdKSxkfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIsZD17fSk7bGV0IGg9Yy5pbmRleE9mKGYpLG09eDAoZi50b0xvd2VyQ2FzZSgpKTtoPT09LTE/KGMucHVzaChmKSxkW2ZdPTEscD1jLmxlbmd0aCk6KGRbZl0rKyxwPWgrMSk7bGV0IHY9ZFtmXTt0aGlzLnRhZygnPHN1cD48YSBocmVmPSIjJytvKyJmbi0iK20rJyIgaWQ9IicrbysiZm5yZWYtIittKyh2PjE/Ii0iK3Y6IiIpKyciIGRhdGEtZm9vdG5vdGUtcmVmPSIiIGFyaWEtZGVzY3JpYmVkYnk9ImZvb3Rub3RlLWxhYmVsIj4nK1N0cmluZyhwKSsiPC9hPjwvc3VwPiIpfSxudWxsKCl7bGV0IGw9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIpfHxbXSxjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIil8fHt9LGQ9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIil8fHt9LGY9LTE7Zm9yKGwubGVuZ3RoPjAmJih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCc8c2VjdGlvbiBkYXRhLWZvb3Rub3Rlcz0iIiBjbGFzcz0iZm9vdG5vdGVzIj48JythKycgaWQ9ImZvb3Rub3RlLWxhYmVsIicrKHM/IiAiK3M6IiIpKyI+IiksdGhpcy5yYXcodGhpcy5lbmNvZGUocikpLHRoaXMudGFnKCI8LyIrYSsiPiIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjxvbD4iKSk7KytmPGwubGVuZ3RoOyl7bGV0IHA9bFtmXSxoPXgwKHAudG9Mb3dlckNhc2UoKSksbT0wLHY9W107Zm9yKDsrK208PWNbcF07KXYucHVzaCgnPGEgaHJlZj0iIycrbysiZm5yZWYtIitoKyhtPjE/Ii0iK206IiIpKyciIGRhdGEtZm9vdG5vdGUtYmFja3JlZj0iIiBhcmlhLWxhYmVsPSInK3RoaXMuZW5jb2RlKHR5cGVvZiBuPT0ic3RyaW5nIj9uOm4oZixtKSkrJyIgY2xhc3M9ImRhdGEtZm9vdG5vdGUtYmFja3JlZiI+XHUyMUE5JysobT4xPyI8c3VwPiIrbSsiPC9zdXA+IjoiIikrIjwvYT4iKTtsZXQgYj12LmpvaW4oIiAiKSxnPSExO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoJzxsaSBpZD0iJytvKyJmbi0iK2grJyI+JyksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZyhkW3BdLnJlcGxhY2UoLzxcL3A+KD86XHI/XG58XHIpPyQvLGZ1bmN0aW9uKHkpe3JldHVybiBnPSEwLCIgIitiK3l9KSksZ3x8KHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoYikpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvbGk+Iil9bC5sZW5ndGg+MCYmKHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvb2w+IiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC9zZWN0aW9uPiIpKX19fX12YXIgemhhLF9oYSxHRXQ9dSgoKT0+e1R1KCk7djAoKTt6aGE9e30uaGFzT3duUHJvcGVydHksX2hhPXt9O2koV0V0LCJkZWZhdWx0QmFja0xhYmVsIik7aShyeWUsImdmbUZvb3Rub3RlSHRtbCIpfSk7dmFyIFlFdD11KCgpPT57VUV0KCk7R0V0KCl9KTtmdW5jdGlvbiBheWUoKXtyZXR1cm57ZW50ZXI6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPGRlbD4iKX19LGV4aXQ6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPC9kZWw+Iil9fX19dmFyIEtFdD11KCgpPT57aShheWUsImdmbVN0cmlrZXRocm91Z2hIdG1sIil9KTtmdW5jdGlvbiBpeWUodCl7bGV0IHI9KHR8fHt9KS5zaW5nbGVUaWxkZSxhPXtuYW1lOiJzdHJpa2V0aHJvdWdoIix0b2tlbml6ZTpuLHJlc29sdmVBbGw6c307cmV0dXJuIHI9PW51bGwmJihyPSEwKSx7dGV4dDp7MTI2OmF9LGluc2lkZVNwYW46e251bGw6W2FdfSxhdHRlbnRpb25NYXJrZXJzOntudWxsOlsxMjZdfX07ZnVuY3Rpb24gcyhvLGwpe2xldCBjPS0xO2Zvcig7KytjPG8ubGVuZ3RoOylpZihvW2NdWzBdPT09ImVudGVyIiYmb1tjXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm9bY11bMV0uX2Nsb3NlKXtsZXQgZD1jO2Zvcig7ZC0tOylpZihvW2RdWzBdPT09ImV4aXQiJiZvW2RdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmb1tkXVsxXS5fb3BlbiYmb1tjXVsxXS5lbmQub2Zmc2V0LW9bY11bMV0uc3RhcnQub2Zmc2V0PT09b1tkXVsxXS5lbmQub2Zmc2V0LW9bZF1bMV0uc3RhcnQub2Zmc2V0KXtvW2NdWzFdLnR5cGU9InN0cmlrZXRocm91Z2hTZXF1ZW5jZSIsb1tkXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiO2xldCBmPXt0eXBlOiJzdHJpa2V0aHJvdWdoIixzdGFydDpPYmplY3QuYXNzaWduKHt9LG9bZF1bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LG9bY11bMV0uZW5kKX0scD17dHlwZToic3RyaWtldGhyb3VnaFRleHQiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sb1tkXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LG9bY11bMV0uc3RhcnQpfSxoPVtbImVudGVyIixmLGxdLFsiZW50ZXIiLG9bZF1bMV0sbF0sWyJleGl0IixvW2RdWzFdLGxdLFsiZW50ZXIiLHAsbF1dLG09bC5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGw7bSYmWGkoaCxoLmxlbmd0aCwwLER1KG0sby5zbGljZShkKzEsYyksbCkpLFhpKGgsaC5sZW5ndGgsMCxbWyJleGl0IixwLGxdLFsiZW50ZXIiLG9bY11bMV0sbF0sWyJleGl0IixvW2NdWzFdLGxdLFsiZXhpdCIsZixsXV0pLFhpKG8sZC0xLGMtZCszLGgpLGM9ZCtoLmxlbmd0aC0yO2JyZWFrfX1mb3IoYz0tMTsrK2M8by5sZW5ndGg7KW9bY11bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiYob1tjXVsxXS50eXBlPSJkYXRhIik7cmV0dXJuIG99aShzLCJyZXNvbHZlQWxsU3RyaWtldGhyb3VnaCIpO2Z1bmN0aW9uIG4obyxsLGMpe2xldCBkPXRoaXMucHJldmlvdXMsZj10aGlzLmV2ZW50cyxwPTA7cmV0dXJuIGg7ZnVuY3Rpb24gaCh2KXtyZXR1cm4gZD09PTEyNiYmZltmLmxlbmd0aC0xXVsxXS50eXBlIT09ImNoYXJhY3RlckVzY2FwZSI/Yyh2KTooby5lbnRlcigic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiksbSh2KSl9ZnVuY3Rpb24gbSh2KXtsZXQgYj1hNChkKTtpZih2PT09MTI2KXJldHVybiBwPjE/Yyh2KTooby5jb25zdW1lKHYpLHArKyxtKTtpZihwPDImJiFyKXJldHVybiBjKHYpO2xldCBnPW8uZXhpdCgic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IikseT1hNCh2KTtyZXR1cm4gZy5fb3Blbj0heXx8eT09PTImJiEhYixnLl9jbG9zZT0hYnx8Yj09PTImJiEheSxsKHYpfX1pKG4sInRva2VuaXplU3RyaWtldGhyb3VnaCIpfXZhciBaRXQ9dSgoKT0+e2cwKCk7ZDFlKCk7X00oKTtpKGl5ZSwiZ2ZtU3RyaWtldGhyb3VnaCIpfSk7dmFyIFFFdD11KCgpPT57S0V0KCk7WkV0KCl9KTtmdW5jdGlvbiBueWUoKXtyZXR1cm57ZW50ZXI6e3RhYmxlKHQpe2xldCBlPXQuX2FsaWduO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0YWJsZT4iKSx0aGlzLnNldERhdGEoInRhYmxlQWxpZ24iLGUpfSx0YWJsZUJvZHkoKXt0aGlzLnRhZygiPHRib2R5PiIpfSx0YWJsZURhdGEoKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKSxyPXN5ZVt0W2VdXTtyPT09dm9pZCAwP3RoaXMuYnVmZmVyKCk6KHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0ZCIrcisiPiIpKX0sdGFibGVIZWFkKCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRoZWFkPiIpfSx0YWJsZUhlYWRlcigpe2xldCB0PXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpLHI9c3llW3RbZV1dO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0aCIrcisiPiIpfSx0YWJsZVJvdygpe3RoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLDApLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0cj4iKX19LGV4aXQ6e2NvZGVUZXh0RGF0YSh0KXtsZXQgZT10aGlzLnNsaWNlU2VyaWFsaXplKHQpO3RoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpJiYoZT1lLnJlcGxhY2UoL1xcKFtcXHxdKS9nLFRoYSkpLHRoaXMucmF3KHRoaXMuZW5jb2RlKGUpKX0sdGFibGUoKXt0aGlzLnNldERhdGEoInRhYmxlQWxpZ24iKSx0aGlzLnNldERhdGEoInNsdXJwQWxsTGluZUVuZGluZ3MiKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RhYmxlPiIpfSx0YWJsZUJvZHkoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3Rib2R5PiIpfSx0YWJsZURhdGEoKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTtlIGluIHQ/KHRoaXMudGFnKCI8L3RkPiIpLHRoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLGUrMSkpOnRoaXMucmVzdW1lKCl9LHRhYmxlSGVhZCgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdGhlYWQ+Iil9LHRhYmxlSGVhZGVyKCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO3RoaXMudGFnKCI8L3RoPiIpLHRoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLHQrMSl9LHRhYmxlUm93KCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7Zm9yKDtlPHQubGVuZ3RoOyl0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGQiK3N5ZVt0W2VdXSsiPjwvdGQ+IiksZSsrO3RoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLGUpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdHI+Iil9fX19ZnVuY3Rpb24gVGhhKHQsZSl7cmV0dXJuIGU9PT0ifCI/ZTp0fXZhciBzeWUsWEV0PXUoKCk9PntzeWU9e25vbmU6IiIsbGVmdDonIGFsaWduPSJsZWZ0IicscmlnaHQ6JyBhbGlnbj0icmlnaHQiJyxjZW50ZXI6JyBhbGlnbj0iY2VudGVyIid9O2kobnllLCJnZm1UYWJsZUh0bWwiKTtpKFRoYSwicmVwbGFjZSIpfSk7ZnVuY3Rpb24gTGhhKHQsZSxyLGEpe2xldCBzPTA7aWYoIShyPT09MCYmYS5sZW5ndGg9PT0wKSl7Zm9yKDtzPHQubWFwLmxlbmd0aDspe2lmKHQubWFwW3NdWzBdPT09ZSl7dC5tYXBbc11bMV0rPXIsdC5tYXBbc11bMl0ucHVzaCguLi5hKTtyZXR1cm59cys9MX10Lm1hcC5wdXNoKFtlLHIsYV0pfX12YXIgSTFlLEpFdD11KCgpPT57STFlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkVkaXRNYXAiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubWFwPVtdfWFkZChlLHIsYSl7TGhhKHRoaXMsZSxyLGEpfWNvbnN1bWUoZSl7aWYodGhpcy5tYXAuc29ydChmdW5jdGlvbihuLG8pe3JldHVybiBuWzBdLW9bMF19KSx0aGlzLm1hcC5sZW5ndGg9PT0wKXJldHVybjtsZXQgcj10aGlzLm1hcC5sZW5ndGgsYT1bXTtmb3IoO3I+MDspci09MSxhLnB1c2goZS5zbGljZSh0aGlzLm1hcFtyXVswXSt0aGlzLm1hcFtyXVsxXSksdGhpcy5tYXBbcl1bMl0pLGUubGVuZ3RoPXRoaXMubWFwW3JdWzBdO2EucHVzaChlLnNsaWNlKCkpLGUubGVuZ3RoPTA7bGV0IHM9YS5wb3AoKTtmb3IoO3M7KXtmb3IobGV0IG4gb2YgcyllLnB1c2gobik7cz1hLnBvcCgpfXRoaXMubWFwLmxlbmd0aD0wfX07aShMaGEsImFkZEltcGxlbWVudGF0aW9uIil9KTtmdW5jdGlvbiBlSXQodCxlKXtsZXQgcj0hMSxhPVtdO2Zvcig7ZTx0Lmxlbmd0aDspe2xldCBzPXRbZV07aWYocil7aWYoc1swXT09PSJlbnRlciIpc1sxXS50eXBlPT09InRhYmxlQ29udGVudCImJmEucHVzaCh0W2UrMV1bMV0udHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciI/ImxlZnQiOiJub25lIik7ZWxzZSBpZihzWzFdLnR5cGU9PT0idGFibGVDb250ZW50Iil7aWYodFtlLTFdWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIiKXtsZXQgbj1hLmxlbmd0aC0xO2Fbbl09YVtuXT09PSJsZWZ0Ij8iY2VudGVyIjoicmlnaHQifX1lbHNlIGlmKHNbMV0udHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyIpYnJlYWt9ZWxzZSBzWzBdPT09ImVudGVyIiYmc1sxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93IiYmKHI9ITApO2UrPTF9cmV0dXJuIGF9dmFyIHRJdD11KCgpPT57aShlSXQsImdmbVRhYmxlQWxpZ24iKX0pO2Z1bmN0aW9uIG95ZSgpe3JldHVybntmbG93OntudWxsOntuYW1lOiJ0YWJsZSIsdG9rZW5pemU6RGhhLHJlc29sdmVBbGw6JGhhfX19fWZ1bmN0aW9uIERoYSh0LGUscil7bGV0IGE9dGhpcyxzPTAsbj0wLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChCKXtsZXQgQz1hLmV2ZW50cy5sZW5ndGgtMTtmb3IoO0M+LTE7KXtsZXQgJD1hLmV2ZW50c1tDXVsxXS50eXBlO2lmKCQ9PT0ibGluZUVuZGluZyJ8fCQ9PT0ibGluZVByZWZpeCIpQy0tO2Vsc2UgYnJlYWt9bGV0IHo9Qz4tMT9hLmV2ZW50c1tDXVsxXS50eXBlOm51bGwsQT16PT09InRhYmxlSGVhZCJ8fHo9PT0idGFibGVSb3ciP1M6YztyZXR1cm4gQT09PVMmJmEucGFyc2VyLmxhenlbYS5ub3coKS5saW5lXT9yKEIpOkEoQil9ZnVuY3Rpb24gYyhCKXtyZXR1cm4gdC5lbnRlcigidGFibGVIZWFkIiksdC5lbnRlcigidGFibGVSb3ciKSxkKEIpfWZ1bmN0aW9uIGQoQil7cmV0dXJuIEI9PT0xMjR8fChvPSEwLG4rPTEpLGYoQil9ZnVuY3Rpb24gZihCKXtyZXR1cm4gQj09PW51bGw/cihCKTpkdChCKT9uPjE/KG49MCxhLmludGVycnVwdD0hMCx0LmV4aXQoInRhYmxlUm93IiksdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShCKSx0LmV4aXQoImxpbmVFbmRpbmciKSxtKTpyKEIpOk90KEIpP2p0KHQsZiwid2hpdGVzcGFjZSIpKEIpOihuKz0xLG8mJihvPSExLHMrPTEpLEI9PT0xMjQ/KHQuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSx0LmNvbnN1bWUoQiksdC5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksbz0hMCxmKToodC5lbnRlcigiZGF0YSIpLHAoQikpKX1mdW5jdGlvbiBwKEIpe3JldHVybiBCPT09bnVsbHx8Qj09PTEyNHx8TnIoQik/KHQuZXhpdCgiZGF0YSIpLGYoQikpOih0LmNvbnN1bWUoQiksQj09PTkyP2g6cCl9ZnVuY3Rpb24gaChCKXtyZXR1cm4gQj09PTkyfHxCPT09MTI0Pyh0LmNvbnN1bWUoQikscCk6cChCKX1mdW5jdGlvbiBtKEIpe3JldHVybiBhLmludGVycnVwdD0hMSxhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihCKToodC5lbnRlcigidGFibGVEZWxpbWl0ZXJSb3ciKSxvPSExLE90KEIpP2p0KHQsdiwibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShCKTp2KEIpKX1mdW5jdGlvbiB2KEIpe3JldHVybiBCPT09NDV8fEI9PT01OD9nKEIpOkI9PT0xMjQ/KG89ITAsdC5lbnRlcigidGFibGVDZWxsRGl2aWRlciIpLHQuY29uc3VtZShCKSx0LmV4aXQoInRhYmxlQ2VsbERpdmlkZXIiKSxiKTpfKEIpfWZ1bmN0aW9uIGIoQil7cmV0dXJuIE90KEIpP2p0KHQsZywid2hpdGVzcGFjZSIpKEIpOmcoQil9ZnVuY3Rpb24gZyhCKXtyZXR1cm4gQj09PTU4PyhuKz0xLG89ITAsdC5lbnRlcigidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx0LmNvbnN1bWUoQiksdC5leGl0KCJ0YWJsZURlbGltaXRlck1hcmtlciIpLHkpOkI9PT00NT8obis9MSx5KEIpKTpCPT09bnVsbHx8ZHQoQik/TihCKTpfKEIpfWZ1bmN0aW9uIHkoQil7cmV0dXJuIEI9PT00NT8odC5lbnRlcigidGFibGVEZWxpbWl0ZXJGaWxsZXIiKSxrKEIpKTpfKEIpfWZ1bmN0aW9uIGsoQil7cmV0dXJuIEI9PT00NT8odC5jb25zdW1lKEIpLGspOkI9PT01OD8obz0hMCx0LmV4aXQoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksdC5lbnRlcigidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx0LmNvbnN1bWUoQiksdC5leGl0KCJ0YWJsZURlbGltaXRlck1hcmtlciIpLE0pOih0LmV4aXQoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksTShCKSl9ZnVuY3Rpb24gTShCKXtyZXR1cm4gT3QoQik/anQodCxOLCJ3aGl0ZXNwYWNlIikoQik6TihCKX1mdW5jdGlvbiBOKEIpe3JldHVybiBCPT09MTI0P3YoQik6Qj09PW51bGx8fGR0KEIpPyFvfHxzIT09bj9fKEIpOih0LmV4aXQoInRhYmxlRGVsaW1pdGVyUm93IiksdC5leGl0KCJ0YWJsZUhlYWQiKSxlKEIpKTpfKEIpfWZ1bmN0aW9uIF8oQil7cmV0dXJuIHIoQil9ZnVuY3Rpb24gUyhCKXtyZXR1cm4gdC5lbnRlcigidGFibGVSb3ciKSxPKEIpfWZ1bmN0aW9uIE8oQil7cmV0dXJuIEI9PT0xMjQ/KHQuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSx0LmNvbnN1bWUoQiksdC5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksTyk6Qj09PW51bGx8fGR0KEIpPyh0LmV4aXQoInRhYmxlUm93IiksZShCKSk6T3QoQik/anQodCxPLCJ3aGl0ZXNwYWNlIikoQik6KHQuZW50ZXIoImRhdGEiKSxMKEIpKX1mdW5jdGlvbiBMKEIpe3JldHVybiBCPT09bnVsbHx8Qj09PTEyNHx8TnIoQik/KHQuZXhpdCgiZGF0YSIpLE8oQikpOih0LmNvbnN1bWUoQiksQj09PTkyP0U6TCl9ZnVuY3Rpb24gRShCKXtyZXR1cm4gQj09PTkyfHxCPT09MTI0Pyh0LmNvbnN1bWUoQiksTCk6TChCKX19ZnVuY3Rpb24gJGhhKHQsZSl7bGV0IHI9LTEsYT0hMCxzPTAsbj1bMCwwLDAsMF0sbz1bMCwwLDAsMF0sbD0hMSxjPTAsZCxmLHAsaD1uZXcgSTFlO2Zvcig7KytyPHQubGVuZ3RoOyl7bGV0IG09dFtyXSx2PW1bMV07bVswXT09PSJlbnRlciI/di50eXBlPT09InRhYmxlSGVhZCI/KGw9ITEsYyE9PTAmJihySXQoaCxlLGMsZCxmKSxmPXZvaWQgMCxjPTApLGQ9e3R5cGU6InRhYmxlIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHYuc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHYuZW5kKX0saC5hZGQociwwLFtbImVudGVyIixkLGVdXSkpOnYudHlwZT09PSJ0YWJsZVJvdyJ8fHYudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KGE9ITAscD12b2lkIDAsbj1bMCwwLDAsMF0sbz1bMCxyKzEsMCwwXSxsJiYobD0hMSxmPXt0eXBlOiJ0YWJsZUJvZHkiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sdi5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sdi5lbmQpfSxoLmFkZChyLDAsW1siZW50ZXIiLGYsZV1dKSkscz12LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPzI6Zj8zOjEpOnMmJih2LnR5cGU9PT0iZGF0YSJ8fHYudHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciJ8fHYudHlwZT09PSJ0YWJsZURlbGltaXRlckZpbGxlciIpPyhhPSExLG9bMl09PT0wJiYoblsxXSE9PTAmJihvWzBdPW9bMV0scD1QMWUoaCxlLG4scyx2b2lkIDAscCksbj1bMCwwLDAsMF0pLG9bMl09cikpOnYudHlwZT09PSJ0YWJsZUNlbGxEaXZpZGVyIiYmKGE/YT0hMTooblsxXSE9PTAmJihvWzBdPW9bMV0scD1QMWUoaCxlLG4scyx2b2lkIDAscCkpLG49byxvPVtuWzFdLHIsMCwwXSkpOnYudHlwZT09PSJ0YWJsZUhlYWQiPyhsPSEwLGM9cik6di50eXBlPT09InRhYmxlUm93Inx8di50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8oYz1yLG5bMV0hPT0wPyhvWzBdPW9bMV0scD1QMWUoaCxlLG4scyxyLHApKTpvWzFdIT09MCYmKHA9UDFlKGgsZSxvLHMscixwKSkscz0wKTpzJiYodi50eXBlPT09ImRhdGEifHx2LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx2LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKSYmKG9bM109cil9Zm9yKGMhPT0wJiZySXQoaCxlLGMsZCxmKSxoLmNvbnN1bWUoZS5ldmVudHMpLHI9LTE7KytyPGUuZXZlbnRzLmxlbmd0aDspe2xldCBtPWUuZXZlbnRzW3JdO21bMF09PT0iZW50ZXIiJiZtWzFdLnR5cGU9PT0idGFibGUiJiYobVsxXS5fYWxpZ249ZUl0KGUuZXZlbnRzLHIpKX1yZXR1cm4gdH1mdW5jdGlvbiBQMWUodCxlLHIsYSxzLG4pe2xldCBvPWE9PT0xPyJ0YWJsZUhlYWRlciI6YT09PTI/InRhYmxlRGVsaW1pdGVyIjoidGFibGVEYXRhIixsPSJ0YWJsZUNvbnRlbnQiO3JbMF0hPT0wJiYobi5lbmQ9T2JqZWN0LmFzc2lnbih7fSxmeChlLmV2ZW50cyxyWzBdKSksdC5hZGQoclswXSwwLFtbImV4aXQiLG4sZV1dKSk7bGV0IGM9ZngoZS5ldmVudHMsclsxXSk7aWYobj17dHlwZTpvLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sYyksZW5kOk9iamVjdC5hc3NpZ24oe30sYyl9LHQuYWRkKHJbMV0sMCxbWyJlbnRlciIsbixlXV0pLHJbMl0hPT0wKXtsZXQgZD1meChlLmV2ZW50cyxyWzJdKSxmPWZ4KGUuZXZlbnRzLHJbM10pLHA9e3R5cGU6bCxzdGFydDpPYmplY3QuYXNzaWduKHt9LGQpLGVuZDpPYmplY3QuYXNzaWduKHt9LGYpfTtpZih0LmFkZChyWzJdLDAsW1siZW50ZXIiLHAsZV1dKSxhIT09Mil7bGV0IGg9ZS5ldmVudHNbclsyXV0sbT1lLmV2ZW50c1tyWzNdXTtpZihoWzFdLmVuZD1PYmplY3QuYXNzaWduKHt9LG1bMV0uZW5kKSxoWzFdLnR5cGU9ImNodW5rVGV4dCIsaFsxXS5jb250ZW50VHlwZT0idGV4dCIsclszXT5yWzJdKzEpe2xldCB2PXJbMl0rMSxiPXJbM10tclsyXS0xO3QuYWRkKHYsYixbXSl9fXQuYWRkKHJbM10rMSwwLFtbImV4aXQiLHAsZV1dKX1yZXR1cm4gcyE9PXZvaWQgMCYmKG4uZW5kPU9iamVjdC5hc3NpZ24oe30sZngoZS5ldmVudHMscykpLHQuYWRkKHMsMCxbWyJleGl0IixuLGVdXSksbj12b2lkIDApLG59ZnVuY3Rpb24gckl0KHQsZSxyLGEscyl7bGV0IG49W10sbz1meChlLmV2ZW50cyxyKTtzJiYocy5lbmQ9T2JqZWN0LmFzc2lnbih7fSxvKSxuLnB1c2goWyJleGl0IixzLGVdKSksYS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxvKSxuLnB1c2goWyJleGl0IixhLGVdKSx0LmFkZChyKzEsMCxuKX1mdW5jdGlvbiBmeCh0LGUpe2xldCByPXRbZV0sYT1yWzBdPT09ImVudGVyIj8ic3RhcnQiOiJlbmQiO3JldHVybiByWzFdW2FdfXZhciBhSXQ9dSgoKT0+e0ppKCk7V3IoKTtKRXQoKTt0SXQoKTtpKG95ZSwiZ2ZtVGFibGUiKTtpKERoYSwidG9rZW5pemVUYWJsZSIpO2koJGhhLCJyZXNvbHZlVGFibGUiKTtpKFAxZSwiZmx1c2hDZWxsIik7aShySXQsImZsdXNoVGFibGVFbmQiKTtpKGZ4LCJnZXRQb2ludCIpfSk7dmFyIGlJdD11KCgpPT57WEV0KCk7YUl0KCl9KTtmdW5jdGlvbiBseWUoKXtyZXR1cm57ZXhpdDp7aHRtbEZsb3dEYXRhKHQpe25JdC5jYWxsKHRoaXMsdCxzSXQpfSxodG1sVGV4dERhdGEodCl7bkl0LmNhbGwodGhpcyx0LEFoYSl9fX19ZnVuY3Rpb24gbkl0KHQsZSl7bGV0IHI9dGhpcy5zbGljZVNlcmlhbGl6ZSh0KTt0aGlzLm9wdGlvbnMuYWxsb3dEYW5nZXJvdXNIdG1sJiYocj1yLnJlcGxhY2UoZSwiJmx0OyQxJDIiKSksdGhpcy5yYXcodGhpcy5lbmNvZGUocikpfXZhciBzSXQsQWhhLG9JdD11KCgpPT57c0l0PS88KFwvPykoaWZyYW1lfG5vZW1iZWR8bm9mcmFtZXN8cGxhaW50ZXh0fHNjcmlwdHxzdHlsZXx0aXRsZXx0ZXh0YXJlYXx4bXApKD89W1x0XG5cZlxyIC8+XSkvZ2ksQWhhPW5ldyBSZWdFeHAoIl4iK3NJdC5zb3VyY2UsImkiKTtpKGx5ZSwiZ2ZtVGFnZmlsdGVySHRtbCIpO2kobkl0LCJleGl0SHRtbERhdGEiKX0pO3ZhciBsSXQ9dSgoKT0+e29JdCgpfSk7ZnVuY3Rpb24gY3llKCl7cmV0dXJue2VudGVyOnt0YXNrTGlzdENoZWNrKCl7dGhpcy50YWcoJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGlzYWJsZWQ9IiIgJyl9fSxleGl0Ont0YXNrTGlzdENoZWNrKCl7dGhpcy50YWcoIi8+Iil9LHRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQoKXt0aGlzLnRhZygnY2hlY2tlZD0iIiAnKX19fX12YXIgY0l0PXUoKCk9PntpKGN5ZSwiZ2ZtVGFza0xpc3RJdGVtSHRtbCIpfSk7ZnVuY3Rpb24gZHllKCl7cmV0dXJue3RleHQ6ezkxOkVoYX19fWZ1bmN0aW9uIEloYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKGMpe3JldHVybiBhLnByZXZpb3VzIT09bnVsbHx8IWEuX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT9yKGMpOih0LmVudGVyKCJ0YXNrTGlzdENoZWNrIiksdC5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLHQuY29uc3VtZShjKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxuKX1mdW5jdGlvbiBuKGMpe3JldHVybiBOcihjKT8odC5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkIiksdC5jb25zdW1lKGMpLHQuZXhpdCgidGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkIiksbyk6Yz09PTg4fHxjPT09MTIwPyh0LmVudGVyKCJ0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkIiksdC5jb25zdW1lKGMpLHQuZXhpdCgidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLG8pOnIoYyl9ZnVuY3Rpb24gbyhjKXtyZXR1cm4gYz09PTkzPyh0LmVudGVyKCJ0YXNrTGlzdENoZWNrTWFya2VyIiksdC5jb25zdW1lKGMpLHQuZXhpdCgidGFza0xpc3RDaGVja01hcmtlciIpLHQuZXhpdCgidGFza0xpc3RDaGVjayIpLGwpOnIoYyl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gZHQoYyk/ZShjKTpPdChjKT90LmNoZWNrKHt0b2tlbml6ZTpQaGF9LGUscikoYyk6cihjKX19ZnVuY3Rpb24gUGhhKHQsZSxyKXtyZXR1cm4ganQodCxhLCJ3aGl0ZXNwYWNlIik7ZnVuY3Rpb24gYShzKXtyZXR1cm4gcz09PW51bGw/cihzKTplKHMpfX12YXIgRWhhLGRJdD11KCgpPT57SmkoKTtXcigpO0VoYT17bmFtZToidGFza2xpc3RDaGVjayIsdG9rZW5pemU6SWhhfTtpKGR5ZSwiZ2ZtVGFza0xpc3RJdGVtIik7aShJaGEsInRva2VuaXplVGFza2xpc3RDaGVjayIpO2koUGhhLCJzcGFjZVRoZW5Ob25TcGFjZSIpfSk7dmFyIHVJdD11KCgpPT57Y0l0KCk7ZEl0KCl9KTtmdW5jdGlvbiBwSXQodCl7cmV0dXJuIHgxZShbRXZlKCksdHllKCksaXllKHQpLG95ZSgpLGR5ZSgpXSl9ZnVuY3Rpb24gdkppKHQpe3JldHVybiB2MWUoW052ZSgpLHJ5ZSh0KSxheWUoKSxueWUoKSxseWUoKSxjeWUoKV0pfXZhciBmSXQ9dSgoKT0+e3kxZSgpO3dFdCgpO1lFdCgpO1FFdCgpO2lJdCgpO2xJdCgpO3VJdCgpO2kocEl0LCJnZm0iKTtpKHZKaSwiZ2ZtSHRtbCIpfSk7ZnVuY3Rpb24gaHgodCl7bGV0IGU9dGhpcyxyPXR8fE5oYSxhPWUuZGF0YSgpLHM9YS5taWNyb21hcmtFeHRlbnNpb25zfHwoYS5taWNyb21hcmtFeHRlbnNpb25zPVtdKSxuPWEuZnJvbU1hcmtkb3duRXh0ZW5zaW9uc3x8KGEuZnJvbU1hcmtkb3duRXh0ZW5zaW9ucz1bXSksbz1hLnRvTWFya2Rvd25FeHRlbnNpb25zfHwoYS50b01hcmtkb3duRXh0ZW5zaW9ucz1bXSk7cy5wdXNoKHBJdChyKSksbi5wdXNoKFR2ZSgpKSxvLnB1c2goTHZlKHIpKX12YXIgTmhhLGhJdD11KCgpPT57ZEV0KCk7Zkl0KCk7TmhhPXt9O2koaHgsInJlbWFya0dmbSIpfSk7dmFyIG1JdD11KCgpPT57aEl0KCl9KTtmdW5jdGlvbiB1eWUodCl7bGV0IGU9dHx8e30scj0hMCxhPXt9LHM9W1tdXSxuPVtdLG89W10sYz12MWUoW3tlbnRlcjp7YmxvY2tRdW90ZTpGLGNvZGVGZW5jZWQ6ZGUsY29kZUZlbmNlZEZlbmNlSW5mbzpnLGNvZGVGZW5jZWRGZW5jZU1ldGE6Zyxjb2RlSW5kZW50ZWQ6ZmUsY29kZVRleHQ6Z2UsY29udGVudDp6ZSxkZWZpbml0aW9uOnhlLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpWLGRlZmluaXRpb25MYWJlbFN0cmluZzpnLGRlZmluaXRpb25UaXRsZVN0cmluZzpnLGVtcGhhc2lzOndlLGh0bWxGbG93Om50LGh0bWxUZXh0OkxlLGltYWdlOlcsbGFiZWw6ZyxsaW5rOnBlLGxpc3RJdGVtTWFya2VyOkMsbGlzdEl0ZW1WYWx1ZTpCLGxpc3RPcmRlcmVkOkwsbGlzdFVub3JkZXJlZDpFLHBhcmFncmFwaDpHLHJlZmVyZW5jZTpnLHJlc291cmNlOlUscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpqLHJlc291cmNlVGl0bGVTdHJpbmc6ZyxzZXRleHRIZWFkaW5nOkdlLHN0cm9uZzpPZX0sZXhpdDp7YXR4SGVhZGluZzpEZSxhdHhIZWFkaW5nU2VxdWVuY2U6SGUsYXV0b2xpbmtFbWFpbDpZaSxhdXRvbGlua1Byb3RvY29sOlBhLGJsb2NrUXVvdGU6WSxjaGFyYWN0ZXJFc2NhcGVWYWx1ZTpzZSxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpZdCxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOll0LGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOnphLGNvZGVGZW5jZWQ6VCxjb2RlRmVuY2VkRmVuY2U6USxjb2RlRmVuY2VkRmVuY2VJbmZvOkQsY29kZUZlbmNlZEZlbmNlTWV0YTpPLGNvZGVGbG93VmFsdWU6VGUsY29kZUluZGVudGVkOlQsY29kZVRleHQ6YmUsY29kZVRleHREYXRhOnNlLGRhdGE6c2UsZGVmaW5pdGlvbjplZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6bGUsZGVmaW5pdGlvbkxhYmVsU3RyaW5nOkssZGVmaW5pdGlvblRpdGxlU3RyaW5nOm5lLGVtcGhhc2lzOkllLGhhcmRCcmVha0VzY2FwZTpxZSxoYXJkQnJlYWtUcmFpbGluZzpxZSxodG1sRmxvdzp2dCxodG1sRmxvd0RhdGE6c2UsaHRtbFRleHQ6dnQsaHRtbFRleHREYXRhOnNlLGltYWdlOkosbGFiZWw6cSxsYWJlbFRleHQ6bWUsbGluZUVuZGluZzpjZSxsaW5rOkosbGlzdE9yZGVyZWQ6eixsaXN0VW5vcmRlcmVkOkEscGFyYWdyYXBoOloscmVmZXJlbmNlOk8scmVmZXJlbmNlU3RyaW5nOkgscmVzb3VyY2U6TyxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOmFlLHJlc291cmNlVGl0bGVTdHJpbmc6WCxzZXRleHRIZWFkaW5nOm9lLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6X2Usc2V0ZXh0SGVhZGluZ1RleHQ6b3Qsc3Ryb25nOnl0LHRoZW1hdGljQnJlYWs6d3R9fSwuLi5lLmh0bWxFeHRlbnNpb25zfHxbXV0pLGQ9e2RlZmluaXRpb25zOmEsdGlnaHRTdGFjazpvfSxmPXtidWZmZXI6ZyxlbmNvZGU6UyxnZXREYXRhOmIsbGluZUVuZGluZ0lmTmVlZGVkOl8sb3B0aW9uczplLHJhdzpNLHJlc3VtZTp5LHNldERhdGE6dix0YWc6a30scD1lLmRlZmF1bHRMaW5lRW5kaW5nO3JldHVybiBoO2Z1bmN0aW9uIGgoRWUpe2xldCBqZT0tMSxzcj0wLHJhPVtdLHBhPVtdLHlhPVtdO2Zvcig7KytqZTxFZS5sZW5ndGg7KSFwJiYoRWVbamVdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fEVlW2plXVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpJiYocD1FZVtqZV1bMl0uc2xpY2VTZXJpYWxpemUoRWVbamVdWzFdKSksKEVlW2plXVsxXS50eXBlPT09Imxpc3RPcmRlcmVkInx8RWVbamVdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpJiYoRWVbamVdWzBdPT09ImVudGVyIj9yYS5wdXNoKGplKTptKEVlLnNsaWNlKHJhLnBvcCgpLGplKSkpLEVlW2plXVsxXS50eXBlPT09ImRlZmluaXRpb24iJiYoRWVbamVdWzBdPT09ImVudGVyIj8oeWE9eXMoeWEsRWUuc2xpY2Uoc3IsamUpKSxzcj1qZSk6KHBhPXlzKHBhLEVlLnNsaWNlKHNyLGplKzEpKSxzcj1qZSsxKSk7cGE9eXMocGEseWEpLHBhPXlzKHBhLEVlLnNsaWNlKHNyKSksamU9LTE7bGV0IGZhPXBhO2ZvcihjLmVudGVyLm51bGwmJmMuZW50ZXIubnVsbC5jYWxsKGYpOysramU8RWUubGVuZ3RoOyl7bGV0IENuPWNbZmFbamVdWzBdXSx6bj1mYVtqZV1bMV0udHlwZSxBZT1Dblt6bl07Z0l0LmNhbGwoQ24sem4pJiZBZSYmQWUuY2FsbCh7c2xpY2VTZXJpYWxpemU6ZmFbamVdWzJdLnNsaWNlU2VyaWFsaXplLC4uLmZ9LGZhW2plXVsxXSl9cmV0dXJuIGMuZXhpdC5udWxsJiZjLmV4aXQubnVsbC5jYWxsKGYpLHNbMF0uam9pbigiIil9ZnVuY3Rpb24gbShFZSl7bGV0IGplPUVlLmxlbmd0aCxzcj0wLHJhPTAscGE9ITEseWE7Zm9yKDsrK3NyPGplOyl7bGV0IGZhPUVlW3NyXTtpZihmYVsxXS5fY29udGFpbmVyKXlhPXZvaWQgMCxmYVswXT09PSJlbnRlciI/cmErKzpyYS0tO2Vsc2Ugc3dpdGNoKGZhWzFdLnR5cGUpe2Nhc2UibGlzdEl0ZW1QcmVmaXgiOntmYVswXT09PSJleGl0IiYmKHlhPSEwKTticmVha31jYXNlImxpbmVQcmVmaXgiOmJyZWFrO2Nhc2UibGluZUVuZGluZ0JsYW5rIjp7ZmFbMF09PT0iZW50ZXIiJiYhcmEmJih5YT95YT12b2lkIDA6cGE9ITApO2JyZWFrfWRlZmF1bHQ6eWE9dm9pZCAwfX1FZVswXVsxXS5fbG9vc2U9cGF9ZnVuY3Rpb24gdihFZSxqZSl7ZFtFZV09amV9ZnVuY3Rpb24gYihFZSl7cmV0dXJuIGRbRWVdfWZ1bmN0aW9uIGcoKXtzLnB1c2goW10pfWZ1bmN0aW9uIHkoKXtyZXR1cm4gcy5wb3AoKS5qb2luKCIiKX1mdW5jdGlvbiBrKEVlKXtyJiYodigibGFzdFdhc1RhZyIsITApLHNbcy5sZW5ndGgtMV0ucHVzaChFZSkpfWZ1bmN0aW9uIE0oRWUpe3YoImxhc3RXYXNUYWciKSxzW3MubGVuZ3RoLTFdLnB1c2goRWUpfWZ1bmN0aW9uIE4oKXtNKHB8fGAKYCl9ZnVuY3Rpb24gXygpe2xldCBFZT1zW3MubGVuZ3RoLTFdLGplPUVlW0VlLmxlbmd0aC0xXSxzcj1qZT9qZS5jaGFyQ29kZUF0KGplLmxlbmd0aC0xKTpudWxsO3NyPT09MTB8fHNyPT09MTN8fHNyPT09bnVsbHx8TigpfWZ1bmN0aW9uIFMoRWUpe3JldHVybiBiKCJpZ25vcmVFbmNvZGUiKT9FZTp3MWUoRWUpfWZ1bmN0aW9uIE8oKXt5KCl9ZnVuY3Rpb24gTChFZSl7by5wdXNoKCFFZS5fbG9vc2UpLF8oKSxrKCI8b2wiKSx2KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX1mdW5jdGlvbiBFKEVlKXtvLnB1c2goIUVlLl9sb29zZSksXygpLGsoIjx1bCIpLHYoImV4cGVjdEZpcnN0SXRlbSIsITApfWZ1bmN0aW9uIEIoRWUpe2lmKGIoImV4cGVjdEZpcnN0SXRlbSIpKXtsZXQgamU9TnVtYmVyLnBhcnNlSW50KHRoaXMuc2xpY2VTZXJpYWxpemUoRWUpLDEwKTtqZSE9PTEmJmsoJyBzdGFydD0iJytTKFN0cmluZyhqZSkpKyciJyl9fWZ1bmN0aW9uIEMoKXtiKCJleHBlY3RGaXJzdEl0ZW0iKT9rKCI+Iik6JCgpLF8oKSxrKCI8bGk+IiksdigiZXhwZWN0Rmlyc3RJdGVtIiksdigibGFzdFdhc1RhZyIpfWZ1bmN0aW9uIHooKXskKCksby5wb3AoKSxOKCksaygiPC9vbD4iKX1mdW5jdGlvbiBBKCl7JCgpLG8ucG9wKCksTigpLGsoIjwvdWw+Iil9ZnVuY3Rpb24gJCgpe2IoImxhc3RXYXNUYWciKSYmIWIoInNsdXJwQWxsTGluZUVuZGluZ3MiKSYmXygpLGsoIjwvbGk+Iiksdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIEYoKXtvLnB1c2goITEpLF8oKSxrKCI8YmxvY2txdW90ZT4iKX1mdW5jdGlvbiBZKCl7by5wb3AoKSxfKCksaygiPC9ibG9ja3F1b3RlPiIpLHYoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBHKCl7b1tvLmxlbmd0aC0xXXx8KF8oKSxrKCI8cD4iKSksdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIFooKXtvW28ubGVuZ3RoLTFdP3YoInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKTprKCI8L3A+Iil9ZnVuY3Rpb24gZGUoKXtfKCksaygiPHByZT48Y29kZSIpLHYoImZlbmNlc0NvdW50IiwwKX1mdW5jdGlvbiBEKCl7bGV0IEVlPXkoKTtrKCcgY2xhc3M9Imxhbmd1YWdlLScrRWUrJyInKX1mdW5jdGlvbiBRKCl7bGV0IEVlPWIoImZlbmNlc0NvdW50Iil8fDA7RWV8fChrKCI+Iiksdigic2x1cnBPbmVMaW5lRW5kaW5nIiwhMCkpLHYoImZlbmNlc0NvdW50IixFZSsxKX1mdW5jdGlvbiBmZSgpe18oKSxrKCI8cHJlPjxjb2RlPiIpfWZ1bmN0aW9uIFQoKXtsZXQgRWU9YigiZmVuY2VzQ291bnQiKTtFZSE9PXZvaWQgMCYmRWU8MiYmZC50aWdodFN0YWNrLmxlbmd0aD4wJiYhYigibGFzdFdhc1RhZyIpJiZOKCksYigiZmxvd0NvZGVTZWVuRGF0YSIpJiZfKCksaygiPC9jb2RlPjwvcHJlPiIpLEVlIT09dm9pZCAwJiZFZTwyJiZfKCksdigiZmxvd0NvZGVTZWVuRGF0YSIpLHYoImZlbmNlc0NvdW50Iiksdigic2x1cnBPbmVMaW5lRW5kaW5nIil9ZnVuY3Rpb24gVygpe24ucHVzaCh7aW1hZ2U6ITB9KSxyPXZvaWQgMH1mdW5jdGlvbiBwZSgpe24ucHVzaCh7fSl9ZnVuY3Rpb24gbWUoRWUpe25bbi5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKEVlKX1mdW5jdGlvbiBxKCl7bltuLmxlbmd0aC0xXS5sYWJlbD15KCl9ZnVuY3Rpb24gSChFZSl7bltuLmxlbmd0aC0xXS5yZWZlcmVuY2VJZD10aGlzLnNsaWNlU2VyaWFsaXplKEVlKX1mdW5jdGlvbiBVKCl7ZygpLG5bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249IiJ9ZnVuY3Rpb24gaigpe2coKSx2KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBhZSgpe25bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249eSgpLHYoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIFgoKXtuW24ubGVuZ3RoLTFdLnRpdGxlPXkoKX1mdW5jdGlvbiBKKCl7bGV0IEVlPW4ubGVuZ3RoLTEsamU9bltFZV0sc3I9amUucmVmZXJlbmNlSWR8fGplLmxhYmVsSWQscmE9amUuZGVzdGluYXRpb249PT12b2lkIDA/YVtQaShzcildOmplO2ZvcihyPSEwO0VlLS07KWlmKG5bRWVdLmltYWdlKXtyPXZvaWQgMDticmVha31qZS5pbWFnZT8oaygnPGltZyBzcmM9IicreDAocmEuZGVzdGluYXRpb24sZS5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDpPaGEpKyciIGFsdD0iJyksTShqZS5sYWJlbCksaygnIicpKTprKCc8YSBocmVmPSInK3gwKHJhLmRlc3RpbmF0aW9uLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6Ykl0KSsnIicpLGsocmEudGl0bGU/JyB0aXRsZT0iJytyYS50aXRsZSsnIic6IiIpLGplLmltYWdlP2soIiAvPiIpOihrKCI+IiksTShqZS5sYWJlbCksaygiPC9hPiIpKSxuLnBvcCgpfWZ1bmN0aW9uIHhlKCl7ZygpLG4ucHVzaCh7fSl9ZnVuY3Rpb24gSyhFZSl7eSgpLG5bbi5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKEVlKX1mdW5jdGlvbiBWKCl7ZygpLHYoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIGxlKCl7bltuLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj15KCksdigiaWdub3JlRW5jb2RlIil9ZnVuY3Rpb24gbmUoKXtuW24ubGVuZ3RoLTFdLnRpdGxlPXkoKX1mdW5jdGlvbiBlZSgpe2xldCBFZT1uW24ubGVuZ3RoLTFdLGplPVBpKEVlLmxhYmVsSWQpO3koKSxnSXQuY2FsbChhLGplKXx8KGFbamVdPW5bbi5sZW5ndGgtMV0pLG4ucG9wKCl9ZnVuY3Rpb24gemUoKXt2KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCl9ZnVuY3Rpb24gSGUoRWUpe2IoImhlYWRpbmdSYW5rIil8fCh2KCJoZWFkaW5nUmFuayIsdGhpcy5zbGljZVNlcmlhbGl6ZShFZSkubGVuZ3RoKSxfKCksaygiPGgiK2IoImhlYWRpbmdSYW5rIikrIj4iKSl9ZnVuY3Rpb24gR2UoKXtnKCksdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIG90KCl7digic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIERlKCl7aygiPC9oIitiKCJoZWFkaW5nUmFuayIpKyI+IiksdigiaGVhZGluZ1JhbmsiKX1mdW5jdGlvbiBfZShFZSl7digiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoRWUpLmNoYXJDb2RlQXQoMCk9PT02MT8xOjIpfWZ1bmN0aW9uIG9lKCl7bGV0IEVlPXkoKTtfKCksaygiPGgiK2IoImhlYWRpbmdSYW5rIikrIj4iKSxNKEVlKSxrKCI8L2giK2IoImhlYWRpbmdSYW5rIikrIj4iKSx2KCJzbHVycEFsbExpbmVFbmRpbmdzIiksdigiaGVhZGluZ1JhbmsiKX1mdW5jdGlvbiBzZShFZSl7TShTKHRoaXMuc2xpY2VTZXJpYWxpemUoRWUpKSl9ZnVuY3Rpb24gY2UoRWUpe2lmKCFiKCJzbHVycEFsbExpbmVFbmRpbmdzIikpe2lmKGIoInNsdXJwT25lTGluZUVuZGluZyIpKXt2KCJzbHVycE9uZUxpbmVFbmRpbmciKTtyZXR1cm59aWYoYigiaW5Db2RlVGV4dCIpKXtNKCIgIik7cmV0dXJufU0oUyh0aGlzLnNsaWNlU2VyaWFsaXplKEVlKSkpfX1mdW5jdGlvbiBUZShFZSl7TShTKHRoaXMuc2xpY2VTZXJpYWxpemUoRWUpKSksdigiZmxvd0NvZGVTZWVuRGF0YSIsITApfWZ1bmN0aW9uIHFlKCl7aygiPGJyIC8+Iil9ZnVuY3Rpb24gbnQoKXtfKCksTGUoKX1mdW5jdGlvbiB2dCgpe3YoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIExlKCl7ZS5hbGxvd0Rhbmdlcm91c0h0bWwmJnYoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIHdlKCl7aygiPGVtPiIpfWZ1bmN0aW9uIE9lKCl7aygiPHN0cm9uZz4iKX1mdW5jdGlvbiBnZSgpe3YoImluQ29kZVRleHQiLCEwKSxrKCI8Y29kZT4iKX1mdW5jdGlvbiBiZSgpe3YoImluQ29kZVRleHQiKSxrKCI8L2NvZGU+Iil9ZnVuY3Rpb24gSWUoKXtrKCI8L2VtPiIpfWZ1bmN0aW9uIHl0KCl7aygiPC9zdHJvbmc+Iil9ZnVuY3Rpb24gd3QoKXtfKCksaygiPGhyIC8+Iil9ZnVuY3Rpb24gWXQoRWUpe3YoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiLEVlLnR5cGUpfWZ1bmN0aW9uIHphKEVlKXtsZXQgamU9dGhpcy5zbGljZVNlcmlhbGl6ZShFZSksc3I9YigiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpP3B4KGplLGIoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT09PSJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIj8xMDoxNik6THUoamUpO00oUyhzcikpLHYoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKX1mdW5jdGlvbiBQYShFZSl7bGV0IGplPXRoaXMuc2xpY2VTZXJpYWxpemUoRWUpO2soJzxhIGhyZWY9IicreDAoamUsZS5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDpiSXQpKyciPicpLE0oUyhqZSkpLGsoIjwvYT4iKX1mdW5jdGlvbiBZaShFZSl7bGV0IGplPXRoaXMuc2xpY2VTZXJpYWxpemUoRWUpO2soJzxhIGhyZWY9IicreDAoIm1haWx0bzoiK2plKSsnIj4nKSxNKFMoamUpKSxrKCI8L2E+Iil9fXZhciBnSXQsYkl0LE9oYSxweWU9dSgoKT0+e3pNKCk7ZzAoKTt5MWUoKTttMWUoKTtJdmUoKTtUdSgpO3YwKCk7Z0l0PXt9Lmhhc093blByb3BlcnR5LGJJdD0vXihodHRwcz98aXJjcz98bWFpbHRvfHhtcHApJC9pLE9oYT0vXmh0dHBzPyQvaTtpKHV5ZSwiY29tcGlsZSIpfSk7ZnVuY3Rpb24gUmhhKHQpe2xldCBlPXQuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmNvbnRlbnRJbml0aWFsLGEscykscjtyZXR1cm4gZTtmdW5jdGlvbiBhKGwpe2lmKGw9PT1udWxsKXt0LmNvbnN1bWUobCk7cmV0dXJufXJldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGwpLHQuZXhpdCgibGluZUVuZGluZyIpLGp0KHQsZSwibGluZVByZWZpeCIpfWZ1bmN0aW9uIHMobCl7cmV0dXJuIHQuZW50ZXIoInBhcmFncmFwaCIpLG4obCl9ZnVuY3Rpb24gbihsKXtsZXQgYz10LmVudGVyKCJjaHVua1RleHQiLHtjb250ZW50VHlwZToidGV4dCIscHJldmlvdXM6cn0pO3JldHVybiByJiYoci5uZXh0PWMpLHI9YyxvKGwpfWZ1bmN0aW9uIG8obCl7aWYobD09PW51bGwpe3QuZXhpdCgiY2h1bmtUZXh0IiksdC5leGl0KCJwYXJhZ3JhcGgiKSx0LmNvbnN1bWUobCk7cmV0dXJufXJldHVybiBkdChsKT8odC5jb25zdW1lKGwpLHQuZXhpdCgiY2h1bmtUZXh0Iiksbik6KHQuY29uc3VtZShsKSxvKX19dmFyIHhJdCx2SXQ9dSgoKT0+e0ppKCk7V3IoKTt4SXQ9e3Rva2VuaXplOlJoYX07aShSaGEsImluaXRpYWxpemVDb250ZW50Iil9KTtmdW5jdGlvbiBGaGEodCl7bGV0IGU9dGhpcyxyPVtdLGE9MCxzLG4sbztyZXR1cm4gbDtmdW5jdGlvbiBsKE0pe2lmKGE8ci5sZW5ndGgpe2xldCBOPXJbYV07cmV0dXJuIGUuY29udGFpbmVyU3RhdGU9TlsxXSx0LmF0dGVtcHQoTlswXS5jb250aW51YXRpb24sYyxkKShNKX1yZXR1cm4gZChNKX1mdW5jdGlvbiBjKE0pe2lmKGErKyxlLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3cpe2UuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDAscyYmaygpO2xldCBOPWUuZXZlbnRzLmxlbmd0aCxfPU4sUztmb3IoO18tLTspaWYoZS5ldmVudHNbX11bMF09PT0iZXhpdCImJmUuZXZlbnRzW19dWzFdLnR5cGU9PT0iY2h1bmtGbG93Iil7Uz1lLmV2ZW50c1tfXVsxXS5lbmQ7YnJlYWt9eShhKTtsZXQgTz1OO2Zvcig7TzxlLmV2ZW50cy5sZW5ndGg7KWUuZXZlbnRzW09dWzFdLmVuZD17Li4uU30sTysrO3JldHVybiBYaShlLmV2ZW50cyxfKzEsMCxlLmV2ZW50cy5zbGljZShOKSksZS5ldmVudHMubGVuZ3RoPU8sZChNKX1yZXR1cm4gbChNKX1mdW5jdGlvbiBkKE0pe2lmKGE9PT1yLmxlbmd0aCl7aWYoIXMpcmV0dXJuIGgoTSk7aWYocy5jdXJyZW50Q29uc3RydWN0JiZzLmN1cnJlbnRDb25zdHJ1Y3QuY29uY3JldGUpcmV0dXJuIHYoTSk7ZS5pbnRlcnJ1cHQ9ISEocy5jdXJyZW50Q29uc3RydWN0JiYhcy5fZ2ZtVGFibGVEeW5hbWljSW50ZXJydXB0SGFjayl9cmV0dXJuIGUuY29udGFpbmVyU3RhdGU9e30sdC5jaGVjayh5SXQsZixwKShNKX1mdW5jdGlvbiBmKE0pe3JldHVybiBzJiZrKCkseShhKSxoKE0pfWZ1bmN0aW9uIHAoTSl7cmV0dXJuIGUucGFyc2VyLmxhenlbZS5ub3coKS5saW5lXT1hIT09ci5sZW5ndGgsbz1lLm5vdygpLm9mZnNldCx2KE0pfWZ1bmN0aW9uIGgoTSl7cmV0dXJuIGUuY29udGFpbmVyU3RhdGU9e30sdC5hdHRlbXB0KHlJdCxtLHYpKE0pfWZ1bmN0aW9uIG0oTSl7cmV0dXJuIGErKyxyLnB1c2goW2UuY3VycmVudENvbnN0cnVjdCxlLmNvbnRhaW5lclN0YXRlXSksaChNKX1mdW5jdGlvbiB2KE0pe2lmKE09PT1udWxsKXtzJiZrKCkseSgwKSx0LmNvbnN1bWUoTSk7cmV0dXJufXJldHVybiBzPXN8fGUucGFyc2VyLmZsb3coZS5ub3coKSksdC5lbnRlcigiY2h1bmtGbG93Iix7X3Rva2VuaXplcjpzLGNvbnRlbnRUeXBlOiJmbG93IixwcmV2aW91czpufSksYihNKX1mdW5jdGlvbiBiKE0pe2lmKE09PT1udWxsKXtnKHQuZXhpdCgiY2h1bmtGbG93IiksITApLHkoMCksdC5jb25zdW1lKE0pO3JldHVybn1yZXR1cm4gZHQoTSk/KHQuY29uc3VtZShNKSxnKHQuZXhpdCgiY2h1bmtGbG93IikpLGE9MCxlLmludGVycnVwdD12b2lkIDAsbCk6KHQuY29uc3VtZShNKSxiKX1mdW5jdGlvbiBnKE0sTil7bGV0IF89ZS5zbGljZVN0cmVhbShNKTtpZihOJiZfLnB1c2gobnVsbCksTS5wcmV2aW91cz1uLG4mJihuLm5leHQ9TSksbj1NLHMuZGVmaW5lU2tpcChNLnN0YXJ0KSxzLndyaXRlKF8pLGUucGFyc2VyLmxhenlbTS5zdGFydC5saW5lXSl7bGV0IFM9cy5ldmVudHMubGVuZ3RoO2Zvcig7Uy0tOylpZihzLmV2ZW50c1tTXVsxXS5zdGFydC5vZmZzZXQ8byYmKCFzLmV2ZW50c1tTXVsxXS5lbmR8fHMuZXZlbnRzW1NdWzFdLmVuZC5vZmZzZXQ+bykpcmV0dXJuO2xldCBPPWUuZXZlbnRzLmxlbmd0aCxMPU8sRSxCO2Zvcig7TC0tOylpZihlLmV2ZW50c1tMXVswXT09PSJleGl0IiYmZS5ldmVudHNbTF1bMV0udHlwZT09PSJjaHVua0Zsb3ciKXtpZihFKXtCPWUuZXZlbnRzW0xdWzFdLmVuZDticmVha31FPSEwfWZvcih5KGEpLFM9TztTPGUuZXZlbnRzLmxlbmd0aDspZS5ldmVudHNbU11bMV0uZW5kPXsuLi5CfSxTKys7WGkoZS5ldmVudHMsTCsxLDAsZS5ldmVudHMuc2xpY2UoTykpLGUuZXZlbnRzLmxlbmd0aD1TfX1mdW5jdGlvbiB5KE0pe2xldCBOPXIubGVuZ3RoO2Zvcig7Ti0tID5NOyl7bGV0IF89cltOXTtlLmNvbnRhaW5lclN0YXRlPV9bMV0sX1swXS5leGl0LmNhbGwoZSx0KX1yLmxlbmd0aD1NfWZ1bmN0aW9uIGsoKXtzLndyaXRlKFtudWxsXSksbj12b2lkIDAscz12b2lkIDAsZS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMH19ZnVuY3Rpb24gQmhhKHQsZSxyKXtyZXR1cm4ganQodCx0LmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5kb2N1bWVudCxlLHIpLCJsaW5lUHJlZml4Iix0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpfXZhciB3SXQseUl0LGtJdD11KCgpPT57SmkoKTtXcigpO2cwKCk7d0l0PXt0b2tlbml6ZTpGaGF9LHlJdD17dG9rZW5pemU6QmhhfTtpKEZoYSwiaW5pdGlhbGl6ZURvY3VtZW50Iik7aShCaGEsInRva2VuaXplQ29udGFpbmVyIil9KTtmdW5jdGlvbiBIaGEodCl7bGV0IGU9dGhpcyxyPXQuYXR0ZW1wdCh5MCxhLHQuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3dJbml0aWFsLHMsanQodCx0LmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93LHMsdC5hdHRlbXB0KEh2ZSxzKSksImxpbmVQcmVmaXgiKSkpO3JldHVybiByO2Z1bmN0aW9uIGEobil7aWYobj09PW51bGwpe3QuY29uc3VtZShuKTtyZXR1cm59cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmdCbGFuayIpLHQuY29uc3VtZShuKSx0LmV4aXQoImxpbmVFbmRpbmdCbGFuayIpLGUuY3VycmVudENvbnN0cnVjdD12b2lkIDAscn1mdW5jdGlvbiBzKG4pe2lmKG49PT1udWxsKXt0LmNvbnN1bWUobik7cmV0dXJufXJldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG4pLHQuZXhpdCgibGluZUVuZGluZyIpLGUuY3VycmVudENvbnN0cnVjdD12b2lkIDAscn19dmFyIFNJdCxNSXQ9dSgoKT0+e0UxZSgpO0ppKCk7V3IoKTtTSXQ9e3Rva2VuaXplOkhoYX07aShIaGEsImluaXRpYWxpemVGbG93Iil9KTtmdW5jdGlvbiBDSXQodCl7cmV0dXJue3Jlc29sdmVBbGw6ekl0KHQ9PT0idGV4dCI/cWhhOnZvaWQgMCksdG9rZW5pemU6ZX07ZnVuY3Rpb24gZShyKXtsZXQgYT10aGlzLHM9dGhpcy5wYXJzZXIuY29uc3RydWN0c1t0XSxuPXIuYXR0ZW1wdChzLG8sbCk7cmV0dXJuIG87ZnVuY3Rpb24gbyhmKXtyZXR1cm4gZChmKT9uKGYpOmwoZil9ZnVuY3Rpb24gbChmKXtpZihmPT09bnVsbCl7ci5jb25zdW1lKGYpO3JldHVybn1yZXR1cm4gci5lbnRlcigiZGF0YSIpLHIuY29uc3VtZShmKSxjfWZ1bmN0aW9uIGMoZil7cmV0dXJuIGQoZik/KHIuZXhpdCgiZGF0YSIpLG4oZikpOihyLmNvbnN1bWUoZiksYyl9ZnVuY3Rpb24gZChmKXtpZihmPT09bnVsbClyZXR1cm4hMDtsZXQgcD1zW2ZdLGg9LTE7aWYocClmb3IoOysraDxwLmxlbmd0aDspe2xldCBtPXBbaF07aWYoIW0ucHJldmlvdXN8fG0ucHJldmlvdXMuY2FsbChhLGEucHJldmlvdXMpKXJldHVybiEwfXJldHVybiExfX19ZnVuY3Rpb24gekl0KHQpe3JldHVybiBlO2Z1bmN0aW9uIGUocixhKXtsZXQgcz0tMSxuO2Zvcig7KytzPD1yLmxlbmd0aDspbj09PXZvaWQgMD9yW3NdJiZyW3NdWzFdLnR5cGU9PT0iZGF0YSImJihuPXMscysrKTooIXJbc118fHJbc11bMV0udHlwZSE9PSJkYXRhIikmJihzIT09bisyJiYocltuXVsxXS5lbmQ9cltzLTFdWzFdLmVuZCxyLnNwbGljZShuKzIscy1uLTIpLHM9bisyKSxuPXZvaWQgMCk7cmV0dXJuIHQ/dChyLGEpOnJ9fWZ1bmN0aW9uIHFoYSh0LGUpe2xldCByPTA7Zm9yKDsrK3I8PXQubGVuZ3RoOylpZigocj09PXQubGVuZ3RofHx0W3JdWzFdLnR5cGU9PT0ibGluZUVuZGluZyIpJiZ0W3ItMV1bMV0udHlwZT09PSJkYXRhIil7bGV0IGE9dFtyLTFdWzFdLHM9ZS5zbGljZVN0cmVhbShhKSxuPXMubGVuZ3RoLG89LTEsbD0wLGM7Zm9yKDtuLS07KXtsZXQgZD1zW25dO2lmKHR5cGVvZiBkPT0ic3RyaW5nIil7Zm9yKG89ZC5sZW5ndGg7ZC5jaGFyQ29kZUF0KG8tMSk9PT0zMjspbCsrLG8tLTtpZihvKWJyZWFrO289LTF9ZWxzZSBpZihkPT09LTIpYz0hMCxsKys7ZWxzZSBpZihkIT09LTEpe24rKzticmVha319aWYoZS5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJnI9PT10Lmxlbmd0aCYmKGw9MCksbCl7bGV0IGQ9e3R5cGU6cj09PXQubGVuZ3RofHxjfHxsPDI/ImxpbmVTdWZmaXgiOiJoYXJkQnJlYWtUcmFpbGluZyIsc3RhcnQ6e19idWZmZXJJbmRleDpuP286YS5zdGFydC5fYnVmZmVySW5kZXgrbyxfaW5kZXg6YS5zdGFydC5faW5kZXgrbixsaW5lOmEuZW5kLmxpbmUsY29sdW1uOmEuZW5kLmNvbHVtbi1sLG9mZnNldDphLmVuZC5vZmZzZXQtbH0sZW5kOnsuLi5hLmVuZH19O2EuZW5kPXsuLi5kLnN0YXJ0fSxhLnN0YXJ0Lm9mZnNldD09PWEuZW5kLm9mZnNldD9PYmplY3QuYXNzaWduKGEsZCk6KHQuc3BsaWNlKHIsMCxbImVudGVyIixkLGVdLFsiZXhpdCIsZCxlXSkscis9Mil9cisrfXJldHVybiB0fXZhciBfSXQsVEl0LExJdCxmeWU9dSgoKT0+e19JdD17cmVzb2x2ZUFsbDp6SXQoKX0sVEl0PUNJdCgic3RyaW5nIiksTEl0PUNJdCgidGV4dCIpO2koQ0l0LCJpbml0aWFsaXplRmFjdG9yeSIpO2koekl0LCJjcmVhdGVSZXNvbHZlciIpO2kocWhhLCJyZXNvbHZlQWxsTGluZVN1ZmZpeGVzIil9KTt2YXIgaHllPXt9O1ZlKGh5ZSx7YXR0ZW50aW9uTWFya2VyczooKT0+WmhhLGNvbnRlbnRJbml0aWFsOigpPT5qaGEsZGlzYWJsZTooKT0+UWhhLGRvY3VtZW50OigpPT5WaGEsZmxvdzooKT0+V2hhLGZsb3dJbml0aWFsOigpPT5VaGEsaW5zaWRlU3BhbjooKT0+S2hhLHN0cmluZzooKT0+R2hhLHRleHQ6KCk9PlloYX0pO3ZhciBWaGEsamhhLFVoYSxXaGEsR2hhLFloYSxLaGEsWmhhLFFoYSxESXQ9dSgoKT0+e0UxZSgpO2Z5ZSgpO1ZoYT17NDI6aW8sNDM6aW8sNDU6aW8sNDg6aW8sNDk6aW8sNTA6aW8sNTE6aW8sNTI6aW8sNTM6aW8sNTQ6aW8sNTU6aW8sNTY6aW8sNTc6aW8sNjI6UzFlfSxqaGE9ezkxOld2ZX0sVWhhPXtbLTJdOkxNLFstMV06TE0sMzI6TE19LFdoYT17MzU6WXZlLDQyOlRoLDQ1OltBMWUsVGhdLDYwOlp2ZSw2MTpBMWUsOTU6VGgsOTY6ejFlLDEyNjp6MWV9LEdoYT17Mzg6QzFlLDkyOk0xZX0sWWhhPXtbLTVdOkFNLFstNF06QU0sWy0zXTpBTSwzMzpYdmUsMzg6QzFlLDQyOlRNLDYwOltPdmUsUXZlXSw5MTpKdmUsOTI6W0d2ZSxNMWVdLDkzOl9oLDk1OlRNLDk2OlJ2ZX0sS2hhPXtudWxsOltUTSxfSXRdfSxaaGE9e251bGw6WzQyLDk1XX0sUWhhPXtudWxsOltdfX0pO2Z1bmN0aW9uICRJdCh0LGUscil7bGV0IGE9e19idWZmZXJJbmRleDotMSxfaW5kZXg6MCxsaW5lOnImJnIubGluZXx8MSxjb2x1bW46ciYmci5jb2x1bW58fDEsb2Zmc2V0OnImJnIub2Zmc2V0fHwwfSxzPXt9LG49W10sbz1bXSxsPVtdLGM9ITAsZD17YXR0ZW1wdDpFKE8pLGNoZWNrOkUoTCksY29uc3VtZTpOLGVudGVyOl8sZXhpdDpTLGludGVycnVwdDpFKEwse2ludGVycnVwdDohMH0pfSxmPXtjb2RlOm51bGwsY29udGFpbmVyU3RhdGU6e30sZGVmaW5lU2tpcDp5LGV2ZW50czpbXSxub3c6ZyxwYXJzZXI6dCxwcmV2aW91czpudWxsLHNsaWNlU2VyaWFsaXplOnYsc2xpY2VTdHJlYW06Yix3cml0ZTptfSxwPWUudG9rZW5pemUuY2FsbChmLGQpLGg7cmV0dXJuIGUucmVzb2x2ZUFsbCYmbi5wdXNoKGUpLGY7ZnVuY3Rpb24gbShBKXtyZXR1cm4gbz15cyhvLEEpLGsoKSxvW28ubGVuZ3RoLTFdIT09bnVsbD9bXTooQihlLDApLGYuZXZlbnRzPUR1KG4sZi5ldmVudHMsZiksZi5ldmVudHMpfWkobSwid3JpdGUiKTtmdW5jdGlvbiB2KEEsJCl7cmV0dXJuIEpoYShiKEEpLCQpfWkodiwic2xpY2VTZXJpYWxpemUiKTtmdW5jdGlvbiBiKEEpe3JldHVybiBYaGEobyxBKX1pKGIsInNsaWNlU3RyZWFtIik7ZnVuY3Rpb24gZygpe2xldHtfYnVmZmVySW5kZXg6QSxfaW5kZXg6JCxsaW5lOkYsY29sdW1uOlksb2Zmc2V0Okd9PWE7cmV0dXJue19idWZmZXJJbmRleDpBLF9pbmRleDokLGxpbmU6Rixjb2x1bW46WSxvZmZzZXQ6R319aShnLCJub3ciKTtmdW5jdGlvbiB5KEEpe3NbQS5saW5lXT1BLmNvbHVtbix6KCl9aSh5LCJkZWZpbmVTa2lwIik7ZnVuY3Rpb24gaygpe2xldCBBO2Zvcig7YS5faW5kZXg8by5sZW5ndGg7KXtsZXQgJD1vW2EuX2luZGV4XTtpZih0eXBlb2YgJD09InN0cmluZyIpZm9yKEE9YS5faW5kZXgsYS5fYnVmZmVySW5kZXg8MCYmKGEuX2J1ZmZlckluZGV4PTApO2EuX2luZGV4PT09QSYmYS5fYnVmZmVySW5kZXg8JC5sZW5ndGg7KU0oJC5jaGFyQ29kZUF0KGEuX2J1ZmZlckluZGV4KSk7ZWxzZSBNKCQpfX1pKGssIm1haW4iKTtmdW5jdGlvbiBNKEEpe2M9dm9pZCAwLGg9QSxwPXAoQSl9aShNLCJnbyIpO2Z1bmN0aW9uIE4oQSl7ZHQoQSk/KGEubGluZSsrLGEuY29sdW1uPTEsYS5vZmZzZXQrPUE9PT0tMz8yOjEseigpKTpBIT09LTEmJihhLmNvbHVtbisrLGEub2Zmc2V0KyspLGEuX2J1ZmZlckluZGV4PDA/YS5faW5kZXgrKzooYS5fYnVmZmVySW5kZXgrKyxhLl9idWZmZXJJbmRleD09PW9bYS5faW5kZXhdLmxlbmd0aCYmKGEuX2J1ZmZlckluZGV4PS0xLGEuX2luZGV4KyspKSxmLnByZXZpb3VzPUEsYz0hMH1pKE4sImNvbnN1bWUiKTtmdW5jdGlvbiBfKEEsJCl7bGV0IEY9JHx8e307cmV0dXJuIEYudHlwZT1BLEYuc3RhcnQ9ZygpLGYuZXZlbnRzLnB1c2goWyJlbnRlciIsRixmXSksbC5wdXNoKEYpLEZ9aShfLCJlbnRlciIpO2Z1bmN0aW9uIFMoQSl7bGV0ICQ9bC5wb3AoKTtyZXR1cm4gJC5lbmQ9ZygpLGYuZXZlbnRzLnB1c2goWyJleGl0IiwkLGZdKSwkfWkoUywiZXhpdCIpO2Z1bmN0aW9uIE8oQSwkKXtCKEEsJC5mcm9tKX1pKE8sIm9uc3VjY2Vzc2Z1bGNvbnN0cnVjdCIpO2Z1bmN0aW9uIEwoQSwkKXskLnJlc3RvcmUoKX1pKEwsIm9uc3VjY2Vzc2Z1bGNoZWNrIik7ZnVuY3Rpb24gRShBLCQpe3JldHVybiBGO2Z1bmN0aW9uIEYoWSxHLFope2xldCBkZSxELFEsZmU7cmV0dXJuIEFycmF5LmlzQXJyYXkoWSk/VyhZKToidG9rZW5pemUiaW4gWT9XKFtZXSk6VChZKTtmdW5jdGlvbiBUKEgpe3JldHVybiBVO2Z1bmN0aW9uIFUoail7bGV0IGFlPWohPT1udWxsJiZIW2pdLFg9aiE9PW51bGwmJkgubnVsbCxKPVsuLi5BcnJheS5pc0FycmF5KGFlKT9hZTphZT9bYWVdOltdLC4uLkFycmF5LmlzQXJyYXkoWCk/WDpYP1tYXTpbXV07cmV0dXJuIFcoSikoail9fWZ1bmN0aW9uIFcoSCl7cmV0dXJuIGRlPUgsRD0wLEgubGVuZ3RoPT09MD9aOnBlKEhbRF0pfWZ1bmN0aW9uIHBlKEgpe3JldHVybiBVO2Z1bmN0aW9uIFUoail7cmV0dXJuIGZlPUMoKSxRPUgsSC5wYXJ0aWFsfHwoZi5jdXJyZW50Q29uc3RydWN0PUgpLEgubmFtZSYmZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoSC5uYW1lKT9xKGopOkgudG9rZW5pemUuY2FsbCgkP09iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShmKSwkKTpmLGQsbWUscSkoail9fWZ1bmN0aW9uIG1lKEgpe3JldHVybiBjPSEwLEEoUSxmZSksR31mdW5jdGlvbiBxKEgpe3JldHVybiBjPSEwLGZlLnJlc3RvcmUoKSwrK0Q8ZGUubGVuZ3RoP3BlKGRlW0RdKTpafX19aShFLCJjb25zdHJ1Y3RGYWN0b3J5Iik7ZnVuY3Rpb24gQihBLCQpe0EucmVzb2x2ZUFsbCYmIW4uaW5jbHVkZXMoQSkmJm4ucHVzaChBKSxBLnJlc29sdmUmJlhpKGYuZXZlbnRzLCQsZi5ldmVudHMubGVuZ3RoLSQsQS5yZXNvbHZlKGYuZXZlbnRzLnNsaWNlKCQpLGYpKSxBLnJlc29sdmVUbyYmKGYuZXZlbnRzPUEucmVzb2x2ZVRvKGYuZXZlbnRzLGYpKX1pKEIsImFkZFJlc3VsdCIpO2Z1bmN0aW9uIEMoKXtsZXQgQT1nKCksJD1mLnByZXZpb3VzLEY9Zi5jdXJyZW50Q29uc3RydWN0LFk9Zi5ldmVudHMubGVuZ3RoLEc9QXJyYXkuZnJvbShsKTtyZXR1cm57ZnJvbTpZLHJlc3RvcmU6Wn07ZnVuY3Rpb24gWigpe2E9QSxmLnByZXZpb3VzPSQsZi5jdXJyZW50Q29uc3RydWN0PUYsZi5ldmVudHMubGVuZ3RoPVksbD1HLHooKX19aShDLCJzdG9yZSIpO2Z1bmN0aW9uIHooKXthLmxpbmUgaW4gcyYmYS5jb2x1bW48MiYmKGEuY29sdW1uPXNbYS5saW5lXSxhLm9mZnNldCs9c1thLmxpbmVdLTEpfWkoeiwiYWNjb3VudEZvclBvdGVudGlhbFNraXAiKX1mdW5jdGlvbiBYaGEodCxlKXtsZXQgcj1lLnN0YXJ0Ll9pbmRleCxhPWUuc3RhcnQuX2J1ZmZlckluZGV4LHM9ZS5lbmQuX2luZGV4LG49ZS5lbmQuX2J1ZmZlckluZGV4LG87aWYocj09PXMpbz1bdFtyXS5zbGljZShhLG4pXTtlbHNle2lmKG89dC5zbGljZShyLHMpLGE+LTEpe2xldCBsPW9bMF07dHlwZW9mIGw9PSJzdHJpbmciP29bMF09bC5zbGljZShhKTpvLnNoaWZ0KCl9bj4wJiZvLnB1c2godFtzXS5zbGljZSgwLG4pKX1yZXR1cm4gb31mdW5jdGlvbiBKaGEodCxlKXtsZXQgcj0tMSxhPVtdLHM7Zm9yKDsrK3I8dC5sZW5ndGg7KXtsZXQgbj10W3JdLG87aWYodHlwZW9mIG49PSJzdHJpbmciKW89bjtlbHNlIHN3aXRjaChuKXtjYXNlLTU6e289IlxyIjticmVha31jYXNlLTQ6e289YApgO2JyZWFrfWNhc2UtMzp7bz1gXHIKYDticmVha31jYXNlLTI6e289ZT8iICI6IgkiO2JyZWFrfWNhc2UtMTp7aWYoIWUmJnMpY29udGludWU7bz0iICI7YnJlYWt9ZGVmYXVsdDpvPVN0cmluZy5mcm9tQ2hhckNvZGUobil9cz1uPT09LTIsYS5wdXNoKG8pfXJldHVybiBhLmpvaW4oIiIpfXZhciBBSXQ9dSgoKT0+e1dyKCk7ZzAoKTtfTSgpO2koJEl0LCJjcmVhdGVUb2tlbml6ZXIiKTtpKFhoYSwic2xpY2VDaHVua3MiKTtpKEpoYSwic2VyaWFsaXplQ2h1bmtzIil9KTtmdW5jdGlvbiBFTSh0KXtsZXQgYT17Y29uc3RydWN0czp4MWUoW2h5ZSwuLi4odHx8e30pLmV4dGVuc2lvbnN8fFtdXSksY29udGVudDpzKHhJdCksZGVmaW5lZDpbXSxkb2N1bWVudDpzKHdJdCksZmxvdzpzKFNJdCksbGF6eTp7fSxzdHJpbmc6cyhUSXQpLHRleHQ6cyhMSXQpfTtyZXR1cm4gYTtmdW5jdGlvbiBzKG4pe3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuICRJdChhLG4sbCl9fX12YXIgbXllPXUoKCk9Pnt5MWUoKTt2SXQoKTtrSXQoKTtNSXQoKTtmeWUoKTtESXQoKTtBSXQoKTtpKEVNLCJwYXJzZSIpfSk7ZnVuY3Rpb24gSU0odCl7Zm9yKDshXzFlKHQpOyk7cmV0dXJuIHR9dmFyIGd5ZT11KCgpPT57QnZlKCk7aShJTSwicG9zdHByb2Nlc3MiKX0pO2Z1bmN0aW9uIFBNKCl7bGV0IHQ9MSxlPSIiLHI9ITAsYTtyZXR1cm4gcztmdW5jdGlvbiBzKG4sbyxsKXtsZXQgYz1bXSxkLGYscCxoLG07Zm9yKG49ZSsodHlwZW9mIG49PSJzdHJpbmciP24udG9TdHJpbmcoKTpuZXcgVGV4dERlY29kZXIob3x8dm9pZCAwKS5kZWNvZGUobikpLHA9MCxlPSIiLHImJihuLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmcCsrLHI9dm9pZCAwKTtwPG4ubGVuZ3RoOyl7aWYoRUl0Lmxhc3RJbmRleD1wLGQ9RUl0LmV4ZWMobiksaD1kJiZkLmluZGV4IT09dm9pZCAwP2QuaW5kZXg6bi5sZW5ndGgsbT1uLmNoYXJDb2RlQXQoaCksIWQpe2U9bi5zbGljZShwKTticmVha31pZihtPT09MTAmJnA9PT1oJiZhKWMucHVzaCgtMyksYT12b2lkIDA7ZWxzZSBzd2l0Y2goYSYmKGMucHVzaCgtNSksYT12b2lkIDApLHA8aCYmKGMucHVzaChuLnNsaWNlKHAsaCkpLHQrPWgtcCksbSl7Y2FzZSAwOntjLnB1c2goNjU1MzMpLHQrKzticmVha31jYXNlIDk6e2ZvcihmPU1hdGguY2VpbCh0LzQpKjQsYy5wdXNoKC0yKTt0Kys8ZjspYy5wdXNoKC0xKTticmVha31jYXNlIDEwOntjLnB1c2goLTQpLHQ9MTticmVha31kZWZhdWx0OmE9ITAsdD0xfXA9aCsxfXJldHVybiBsJiYoYSYmYy5wdXNoKC01KSxlJiZjLnB1c2goZSksYy5wdXNoKG51bGwpKSxjfX12YXIgRUl0LGJ5ZT11KCgpPT57RUl0PS9bXDBcdFxuXHJdL2c7aShQTSwicHJlcHJvY2VzcyIpfSk7ZnVuY3Rpb24gTWVzKHQsZSxyKXtyZXR1cm4gdHlwZW9mIGUhPSJzdHJpbmciJiYocj1lLGU9dm9pZCAwKSx1eWUocikoSU0oRU0ocikuZG9jdW1lbnQoKS53cml0ZShQTSgpKHQsZSwhMCkpKSl9dmFyIElJdD11KCgpPT57cHllKCk7bXllKCk7Z3llKCk7YnllKCk7cHllKCk7bXllKCk7Z3llKCk7YnllKCk7aShNZXMsIm1pY3JvbWFyayIpfSk7ZnVuY3Rpb24geHllKHQsZSxyKXtyZXR1cm4gZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYocj1lLGU9dm9pZCAwKSxlNmEocikoSU0oRU0ocikuZG9jdW1lbnQoKS53cml0ZShQTSgpKHQsZSwhMCkpKSl9ZnVuY3Rpb24gZTZhKHQpe2xldCBlPXt0cmFuc2Zvcm1zOltdLGNhbkNvbnRhaW5Fb2xzOlsiZW1waGFzaXMiLCJmcmFnbWVudCIsImhlYWRpbmciLCJwYXJhZ3JhcGgiLCJzdHJvbmciXSxlbnRlcjp7YXV0b2xpbms6bihlZSksYXV0b2xpbmtQcm90b2NvbDpFLGF1dG9saW5rRW1haWw6RSxhdHhIZWFkaW5nOm4oSyksYmxvY2tRdW90ZTpuKGopLGNoYXJhY3RlckVzY2FwZTpFLGNoYXJhY3RlclJlZmVyZW5jZTpFLGNvZGVGZW5jZWQ6bihhZSksY29kZUZlbmNlZEZlbmNlSW5mbzpvLGNvZGVGZW5jZWRGZW5jZU1ldGE6byxjb2RlSW5kZW50ZWQ6bihhZSxvKSxjb2RlVGV4dDpuKFgsbyksY29kZVRleHREYXRhOkUsZGF0YTpFLGNvZGVGbG93VmFsdWU6RSxkZWZpbml0aW9uOm4oSiksZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOm8sZGVmaW5pdGlvbkxhYmVsU3RyaW5nOm8sZGVmaW5pdGlvblRpdGxlU3RyaW5nOm8sZW1waGFzaXM6bih4ZSksaGFyZEJyZWFrRXNjYXBlOm4oViksaGFyZEJyZWFrVHJhaWxpbmc6bihWKSxodG1sRmxvdzpuKGxlLG8pLGh0bWxGbG93RGF0YTpFLGh0bWxUZXh0Om4obGUsbyksaHRtbFRleHREYXRhOkUsaW1hZ2U6bihuZSksbGFiZWw6byxsaW5rOm4oZWUpLGxpc3RJdGVtOm4oSGUpLGxpc3RJdGVtVmFsdWU6aCxsaXN0T3JkZXJlZDpuKHplLHApLGxpc3RVbm9yZGVyZWQ6bih6ZSkscGFyYWdyYXBoOm4oR2UpLHJlZmVyZW5jZTpULHJlZmVyZW5jZVN0cmluZzpvLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6byxyZXNvdXJjZVRpdGxlU3RyaW5nOm8sc2V0ZXh0SGVhZGluZzpuKEspLHN0cm9uZzpuKG90KSx0aGVtYXRpY0JyZWFrOm4oX2UpfSxleGl0OnthdHhIZWFkaW5nOmMoKSxhdHhIZWFkaW5nU2VxdWVuY2U6XyxhdXRvbGluazpjKCksYXV0b2xpbmtFbWFpbDpVLGF1dG9saW5rUHJvdG9jb2w6SCxibG9ja1F1b3RlOmMoKSxjaGFyYWN0ZXJFc2NhcGVWYWx1ZTpCLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsOnBlLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6cGUsY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWU6bWUsY2hhcmFjdGVyUmVmZXJlbmNlOnEsY29kZUZlbmNlZDpjKGcpLGNvZGVGZW5jZWRGZW5jZTpiLGNvZGVGZW5jZWRGZW5jZUluZm86bSxjb2RlRmVuY2VkRmVuY2VNZXRhOnYsY29kZUZsb3dWYWx1ZTpCLGNvZGVJbmRlbnRlZDpjKHkpLGNvZGVUZXh0OmMoRiksY29kZVRleHREYXRhOkIsZGF0YTpCLGRlZmluaXRpb246YygpLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpOLGRlZmluaXRpb25MYWJlbFN0cmluZzprLGRlZmluaXRpb25UaXRsZVN0cmluZzpNLGVtcGhhc2lzOmMoKSxoYXJkQnJlYWtFc2NhcGU6Yyh6KSxoYXJkQnJlYWtUcmFpbGluZzpjKHopLGh0bWxGbG93OmMoQSksaHRtbEZsb3dEYXRhOkIsaHRtbFRleHQ6YygkKSxodG1sVGV4dERhdGE6QixpbWFnZTpjKEcpLGxhYmVsOmRlLGxhYmVsVGV4dDpaLGxpbmVFbmRpbmc6QyxsaW5rOmMoWSksbGlzdEl0ZW06YygpLGxpc3RPcmRlcmVkOmMoKSxsaXN0VW5vcmRlcmVkOmMoKSxwYXJhZ3JhcGg6YygpLHJlZmVyZW5jZVN0cmluZzpXLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6RCxyZXNvdXJjZVRpdGxlU3RyaW5nOlEscmVzb3VyY2U6ZmUsc2V0ZXh0SGVhZGluZzpjKEwpLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6TyxzZXRleHRIZWFkaW5nVGV4dDpTLHN0cm9uZzpjKCksdGhlbWF0aWNCcmVhazpjKCl9fTtOSXQoZSwodHx8e30pLm1kYXN0RXh0ZW5zaW9uc3x8W10pO2xldCByPXt9O3JldHVybiBhO2Z1bmN0aW9uIGEob2Upe2xldCBzZT17dHlwZToicm9vdCIsY2hpbGRyZW46W119LGNlPXtzdGFjazpbc2VdLHRva2VuU3RhY2s6W10sY29uZmlnOmUsZW50ZXI6bCxleGl0OmQsYnVmZmVyOm8scmVzdW1lOmYsZGF0YTpyfSxUZT1bXSxxZT0tMTtmb3IoOysrcWU8b2UubGVuZ3RoOylpZihvZVtxZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fG9lW3FlXVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQiKWlmKG9lW3FlXVswXT09PSJlbnRlciIpVGUucHVzaChxZSk7ZWxzZXtsZXQgbnQ9VGUucG9wKCk7cWU9cyhvZSxudCxxZSl9Zm9yKHFlPS0xOysrcWU8b2UubGVuZ3RoOyl7bGV0IG50PWVbb2VbcWVdWzBdXTtQSXQuY2FsbChudCxvZVtxZV1bMV0udHlwZSkmJm50W29lW3FlXVsxXS50eXBlXS5jYWxsKE9iamVjdC5hc3NpZ24oe3NsaWNlU2VyaWFsaXplOm9lW3FlXVsyXS5zbGljZVNlcmlhbGl6ZX0sY2UpLG9lW3FlXVsxXSl9aWYoY2UudG9rZW5TdGFjay5sZW5ndGg+MCl7bGV0IG50PWNlLnRva2VuU3RhY2tbY2UudG9rZW5TdGFjay5sZW5ndGgtMV07KG50WzFdfHxPSXQpLmNhbGwoY2Usdm9pZCAwLG50WzBdKX1mb3Ioc2UucG9zaXRpb249e3N0YXJ0OiR1KG9lLmxlbmd0aD4wP29lWzBdWzFdLnN0YXJ0OntsaW5lOjEsY29sdW1uOjEsb2Zmc2V0OjB9KSxlbmQ6JHUob2UubGVuZ3RoPjA/b2Vbb2UubGVuZ3RoLTJdWzFdLmVuZDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSl9LHFlPS0xOysrcWU8ZS50cmFuc2Zvcm1zLmxlbmd0aDspc2U9ZS50cmFuc2Zvcm1zW3FlXShzZSl8fHNlO3JldHVybiBzZX1mdW5jdGlvbiBzKG9lLHNlLGNlKXtsZXQgVGU9c2UtMSxxZT0tMSxudD0hMSx2dCxMZSx3ZSxPZTtmb3IoOysrVGU8PWNlOyl7bGV0IGdlPW9lW1RlXTtzd2l0Y2goZ2VbMV0udHlwZSl7Y2FzZSJsaXN0VW5vcmRlcmVkIjpjYXNlImxpc3RPcmRlcmVkIjpjYXNlImJsb2NrUXVvdGUiOntnZVswXT09PSJlbnRlciI/cWUrKzpxZS0tLE9lPXZvaWQgMDticmVha31jYXNlImxpbmVFbmRpbmdCbGFuayI6e2dlWzBdPT09ImVudGVyIiYmKHZ0JiYhT2UmJiFxZSYmIXdlJiYod2U9VGUpLE9lPXZvaWQgMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpjYXNlImxpc3RJdGVtVmFsdWUiOmNhc2UibGlzdEl0ZW1NYXJrZXIiOmNhc2UibGlzdEl0ZW1QcmVmaXgiOmNhc2UibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIjpicmVhaztkZWZhdWx0Ok9lPXZvaWQgMH1pZighcWUmJmdlWzBdPT09ImVudGVyIiYmZ2VbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCJ8fHFlPT09LTEmJmdlWzBdPT09ImV4aXQiJiYoZ2VbMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkInx8Z2VbMV0udHlwZT09PSJsaXN0T3JkZXJlZCIpKXtpZih2dCl7bGV0IGJlPVRlO2ZvcihMZT12b2lkIDA7YmUtLTspe2xldCBJZT1vZVtiZV07aWYoSWVbMV0udHlwZT09PSJsaW5lRW5kaW5nInx8SWVbMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKXtpZihJZVswXT09PSJleGl0Iiljb250aW51ZTtMZSYmKG9lW0xlXVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiLG50PSEwKSxJZVsxXS50eXBlPSJsaW5lRW5kaW5nIixMZT1iZX1lbHNlIGlmKCEoSWVbMV0udHlwZT09PSJsaW5lUHJlZml4Inx8SWVbMV0udHlwZT09PSJibG9ja1F1b3RlUHJlZml4Inx8SWVbMV0udHlwZT09PSJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSJ8fEllWzFdLnR5cGU9PT0iYmxvY2tRdW90ZU1hcmtlciJ8fEllWzFdLnR5cGU9PT0ibGlzdEl0ZW1JbmRlbnQiKSlicmVha313ZSYmKCFMZXx8d2U8TGUpJiYodnQuX3NwcmVhZD0hMCksdnQuZW5kPU9iamVjdC5hc3NpZ24oe30sTGU/b2VbTGVdWzFdLnN0YXJ0OmdlWzFdLmVuZCksb2Uuc3BsaWNlKExlfHxUZSwwLFsiZXhpdCIsdnQsZ2VbMl1dKSxUZSsrLGNlKyt9aWYoZ2VbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCIpe2xldCBiZT17dHlwZToibGlzdEl0ZW0iLF9zcHJlYWQ6ITEsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxnZVsxXS5zdGFydCksZW5kOnZvaWQgMH07dnQ9YmUsb2Uuc3BsaWNlKFRlLDAsWyJlbnRlciIsYmUsZ2VbMl1dKSxUZSsrLGNlKyssd2U9dm9pZCAwLE9lPSEwfX19cmV0dXJuIG9lW3NlXVsxXS5fc3ByZWFkPW50LGNlfWZ1bmN0aW9uIG4ob2Usc2Upe3JldHVybiBjZTtmdW5jdGlvbiBjZShUZSl7bC5jYWxsKHRoaXMsb2UoVGUpLFRlKSxzZSYmc2UuY2FsbCh0aGlzLFRlKX19ZnVuY3Rpb24gbygpe3RoaXMuc3RhY2sucHVzaCh7dHlwZToiZnJhZ21lbnQiLGNoaWxkcmVuOltdfSl9ZnVuY3Rpb24gbChvZSxzZSxjZSl7dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXS5jaGlsZHJlbi5wdXNoKG9lKSx0aGlzLnN0YWNrLnB1c2gob2UpLHRoaXMudG9rZW5TdGFjay5wdXNoKFtzZSxjZXx8dm9pZCAwXSksb2UucG9zaXRpb249e3N0YXJ0OiR1KHNlLnN0YXJ0KSxlbmQ6dm9pZCAwfX1mdW5jdGlvbiBjKG9lKXtyZXR1cm4gc2U7ZnVuY3Rpb24gc2UoY2Upe29lJiZvZS5jYWxsKHRoaXMsY2UpLGQuY2FsbCh0aGlzLGNlKX19ZnVuY3Rpb24gZChvZSxzZSl7bGV0IGNlPXRoaXMuc3RhY2sucG9wKCksVGU9dGhpcy50b2tlblN0YWNrLnBvcCgpO2lmKFRlKVRlWzBdLnR5cGUhPT1vZS50eXBlJiYoc2U/c2UuY2FsbCh0aGlzLG9lLFRlWzBdKTooVGVbMV18fE9JdCkuY2FsbCh0aGlzLG9lLFRlWzBdKSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitvZS50eXBlKyJgICgiK3p1KHtzdGFydDpvZS5zdGFydCxlbmQ6b2UuZW5kfSkrIik6IGl0XHUyMDE5cyBub3Qgb3BlbiIpO2NlLnBvc2l0aW9uLmVuZD0kdShvZS5lbmQpfWZ1bmN0aW9uIGYoKXtyZXR1cm4ga2godGhpcy5zdGFjay5wb3AoKSl9ZnVuY3Rpb24gcCgpe3RoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWU9ITB9ZnVuY3Rpb24gaChvZSl7aWYodGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZSl7bGV0IHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07c2Uuc3RhcnQ9TnVtYmVyLnBhcnNlSW50KHRoaXMuc2xpY2VTZXJpYWxpemUob2UpLDEwKSx0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPXZvaWQgMH19ZnVuY3Rpb24gbSgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UubGFuZz1vZX1mdW5jdGlvbiB2KCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS5tZXRhPW9lfWZ1bmN0aW9uIGIoKXt0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGV8fCh0aGlzLmJ1ZmZlcigpLHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZT0hMCl9ZnVuY3Rpb24gZygpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudmFsdWU9b2UucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIiksdGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlPXZvaWQgMH1mdW5jdGlvbiB5KCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS52YWx1ZT1vZS5yZXBsYWNlKC8oXHI/XG58XHIpJC9nLCIiKX1mdW5jdGlvbiBrKG9lKXtsZXQgc2U9dGhpcy5yZXN1bWUoKSxjZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2NlLmxhYmVsPXNlLGNlLmlkZW50aWZpZXI9UGkodGhpcy5zbGljZVNlcmlhbGl6ZShvZSkpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gTSgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudGl0bGU9b2V9ZnVuY3Rpb24gTigpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudXJsPW9lfWZ1bmN0aW9uIF8ob2Upe2xldCBzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKCFzZS5kZXB0aCl7bGV0IGNlPXRoaXMuc2xpY2VTZXJpYWxpemUob2UpLmxlbmd0aDtzZS5kZXB0aD1jZX19ZnVuY3Rpb24gUygpe3RoaXMuZGF0YS5zZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nPSEwfWZ1bmN0aW9uIE8ob2Upe2xldCBzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLmRlcHRoPXRoaXMuc2xpY2VTZXJpYWxpemUob2UpLmNvZGVQb2ludEF0KDApPT09NjE/MToyfWZ1bmN0aW9uIEwoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz12b2lkIDB9ZnVuY3Rpb24gRShvZSl7bGV0IGNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4sVGU9Y2VbY2UubGVuZ3RoLTFdOyghVGV8fFRlLnR5cGUhPT0idGV4dCIpJiYoVGU9RGUoKSxUZS5wb3NpdGlvbj17c3RhcnQ6JHUob2Uuc3RhcnQpLGVuZDp2b2lkIDB9LGNlLnB1c2goVGUpKSx0aGlzLnN0YWNrLnB1c2goVGUpfWZ1bmN0aW9uIEIob2Upe2xldCBzZT10aGlzLnN0YWNrLnBvcCgpO3NlLnZhbHVlKz10aGlzLnNsaWNlU2VyaWFsaXplKG9lKSxzZS5wb3NpdGlvbi5lbmQ9JHUob2UuZW5kKX1mdW5jdGlvbiBDKG9lKXtsZXQgc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuYXRIYXJkQnJlYWspe2xldCBjZT1zZS5jaGlsZHJlbltzZS5jaGlsZHJlbi5sZW5ndGgtMV07Y2UucG9zaXRpb24uZW5kPSR1KG9lLmVuZCksdGhpcy5kYXRhLmF0SGFyZEJyZWFrPXZvaWQgMDtyZXR1cm59IXRoaXMuZGF0YS5zZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nJiZlLmNhbkNvbnRhaW5Fb2xzLmluY2x1ZGVzKHNlLnR5cGUpJiYoRS5jYWxsKHRoaXMsb2UpLEIuY2FsbCh0aGlzLG9lKSl9ZnVuY3Rpb24geigpe3RoaXMuZGF0YS5hdEhhcmRCcmVhaz0hMH1mdW5jdGlvbiBBKCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS52YWx1ZT1vZX1mdW5jdGlvbiAkKCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS52YWx1ZT1vZX1mdW5jdGlvbiBGKCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS52YWx1ZT1vZX1mdW5jdGlvbiBZKCl7bGV0IG9lPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmluUmVmZXJlbmNlKXtsZXQgc2U9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7b2UudHlwZSs9IlJlZmVyZW5jZSIsb2UucmVmZXJlbmNlVHlwZT1zZSxkZWxldGUgb2UudXJsLGRlbGV0ZSBvZS50aXRsZX1lbHNlIGRlbGV0ZSBvZS5pZGVudGlmaWVyLGRlbGV0ZSBvZS5sYWJlbDt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT12b2lkIDB9ZnVuY3Rpb24gRygpe2xldCBvZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IHNlPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO29lLnR5cGUrPSJSZWZlcmVuY2UiLG9lLnJlZmVyZW5jZVR5cGU9c2UsZGVsZXRlIG9lLnVybCxkZWxldGUgb2UudGl0bGV9ZWxzZSBkZWxldGUgb2UuaWRlbnRpZmllcixkZWxldGUgb2UubGFiZWw7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9dm9pZCAwfWZ1bmN0aW9uIFoob2Upe2xldCBzZT10aGlzLnNsaWNlU2VyaWFsaXplKG9lKSxjZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2NlLmxhYmVsPWcxZShzZSksY2UuaWRlbnRpZmllcj1QaShzZSkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBkZSgpe2xldCBvZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLHNlPXRoaXMucmVzdW1lKCksY2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2U9ITAsY2UudHlwZT09PSJsaW5rIil7bGV0IFRlPW9lLmNoaWxkcmVuO2NlLmNoaWxkcmVuPVRlfWVsc2UgY2UuYWx0PXNlfWZ1bmN0aW9uIEQoKXtsZXQgb2U9dGhpcy5yZXN1bWUoKSxzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLnVybD1vZX1mdW5jdGlvbiBRKCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS50aXRsZT1vZX1mdW5jdGlvbiBmZSgpe3RoaXMuZGF0YS5pblJlZmVyZW5jZT12b2lkIDB9ZnVuY3Rpb24gVCgpe3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJjb2xsYXBzZWQifWZ1bmN0aW9uIFcob2Upe2xldCBzZT10aGlzLnJlc3VtZSgpLGNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Y2UubGFiZWw9c2UsY2UuaWRlbnRpZmllcj1QaSh0aGlzLnNsaWNlU2VyaWFsaXplKG9lKSkudG9Mb3dlckNhc2UoKSx0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT0iZnVsbCJ9ZnVuY3Rpb24gcGUob2Upe3RoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlPW9lLnR5cGV9ZnVuY3Rpb24gbWUob2Upe2xldCBzZT10aGlzLnNsaWNlU2VyaWFsaXplKG9lKSxjZT10aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSxUZTtjZT8oVGU9cHgoc2UsY2U9PT0iY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyI/MTA6MTYpLHRoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlPXZvaWQgMCk6VGU9THUoc2UpO2xldCBxZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3FlLnZhbHVlKz1UZX1mdW5jdGlvbiBxKG9lKXtsZXQgc2U9dGhpcy5zdGFjay5wb3AoKTtzZS5wb3NpdGlvbi5lbmQ9JHUob2UuZW5kKX1mdW5jdGlvbiBIKG9lKXtCLmNhbGwodGhpcyxvZSk7bGV0IHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudXJsPXRoaXMuc2xpY2VTZXJpYWxpemUob2UpfWZ1bmN0aW9uIFUob2Upe0IuY2FsbCh0aGlzLG9lKTtsZXQgc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS51cmw9Im1haWx0bzoiK3RoaXMuc2xpY2VTZXJpYWxpemUob2UpfWZ1bmN0aW9uIGooKXtyZXR1cm57dHlwZToiYmxvY2txdW90ZSIsY2hpbGRyZW46W119fWZ1bmN0aW9uIGFlKCl7cmV0dXJue3R5cGU6ImNvZGUiLGxhbmc6bnVsbCxtZXRhOm51bGwsdmFsdWU6IiJ9fWZ1bmN0aW9uIFgoKXtyZXR1cm57dHlwZToiaW5saW5lQ29kZSIsdmFsdWU6IiJ9fWZ1bmN0aW9uIEooKXtyZXR1cm57dHlwZToiZGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDpudWxsLHRpdGxlOm51bGwsdXJsOiIifX1mdW5jdGlvbiB4ZSgpe3JldHVybnt0eXBlOiJlbXBoYXNpcyIsY2hpbGRyZW46W119fWZ1bmN0aW9uIEsoKXtyZXR1cm57dHlwZToiaGVhZGluZyIsZGVwdGg6MCxjaGlsZHJlbjpbXX19ZnVuY3Rpb24gVigpe3JldHVybnt0eXBlOiJicmVhayJ9fWZ1bmN0aW9uIGxlKCl7cmV0dXJue3R5cGU6Imh0bWwiLHZhbHVlOiIifX1mdW5jdGlvbiBuZSgpe3JldHVybnt0eXBlOiJpbWFnZSIsdGl0bGU6bnVsbCx1cmw6IiIsYWx0Om51bGx9fWZ1bmN0aW9uIGVlKCl7cmV0dXJue3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOiIiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiB6ZShvZSl7cmV0dXJue3R5cGU6Imxpc3QiLG9yZGVyZWQ6b2UudHlwZT09PSJsaXN0T3JkZXJlZCIsc3RhcnQ6bnVsbCxzcHJlYWQ6b2UuX3NwcmVhZCxjaGlsZHJlbjpbXX19ZnVuY3Rpb24gSGUob2Upe3JldHVybnt0eXBlOiJsaXN0SXRlbSIsc3ByZWFkOm9lLl9zcHJlYWQsY2hlY2tlZDpudWxsLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBHZSgpe3JldHVybnt0eXBlOiJwYXJhZ3JhcGgiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBvdCgpe3JldHVybnt0eXBlOiJzdHJvbmciLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBEZSgpe3JldHVybnt0eXBlOiJ0ZXh0Iix2YWx1ZToiIn19ZnVuY3Rpb24gX2UoKXtyZXR1cm57dHlwZToidGhlbWF0aWNCcmVhayJ9fX1mdW5jdGlvbiAkdSh0KXtyZXR1cm57bGluZTp0LmxpbmUsY29sdW1uOnQuY29sdW1uLG9mZnNldDp0Lm9mZnNldH19ZnVuY3Rpb24gTkl0KHQsZSl7bGV0IHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KXtsZXQgYT1lW3JdO0FycmF5LmlzQXJyYXkoYSk/Tkl0KHQsYSk6dDZhKHQsYSl9fWZ1bmN0aW9uIHQ2YSh0LGUpe2xldCByO2ZvcihyIGluIGUpaWYoUEl0LmNhbGwoZSxyKSlzd2l0Y2gocil7Y2FzZSJjYW5Db250YWluRW9scyI6e2xldCBhPWVbcl07YSYmdFtyXS5wdXNoKC4uLmEpO2JyZWFrfWNhc2UidHJhbnNmb3JtcyI6e2xldCBhPWVbcl07YSYmdFtyXS5wdXNoKC4uLmEpO2JyZWFrfWNhc2UiZW50ZXIiOmNhc2UiZXhpdCI6e2xldCBhPWVbcl07YSYmT2JqZWN0LmFzc2lnbih0W3JdLGEpO2JyZWFrfX19ZnVuY3Rpb24gT0l0KHQsZSl7dGhyb3cgdD9uZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIit0LnR5cGUrImAgKCIrenUoe3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSkrIik6IGEgZGlmZmVyZW50IHRva2VuIChgIitlLnR5cGUrImAsICIrenUoe3N0YXJ0OmUuc3RhcnQsZW5kOmUuZW5kfSkrIikgaXMgb3BlbiIpOm5ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGRvY3VtZW50LCBhIHRva2VuIChgIitlLnR5cGUrImAsICIrenUoe3N0YXJ0OmUuc3RhcnQsZW5kOmUuZW5kfSkrIikgaXMgc3RpbGwgb3BlbiIpfXZhciBQSXQsUkl0PXUoKCk9Pnt1MWUoKTtJSXQoKTttMWUoKTt3dmUoKTtUdSgpO3pNKCk7UHhlKCk7UEl0PXt9Lmhhc093blByb3BlcnR5O2koeHllLCJmcm9tTWFya2Rvd24iKTtpKGU2YSwiY29tcGlsZXIiKTtpKCR1LCJwb2ludCIpO2koTkl0LCJjb25maWd1cmUiKTtpKHQ2YSwiZXh0ZW5zaW9uIik7aShPSXQsImRlZmF1bHRPbkVycm9yIil9KTt2YXIgRkl0PXUoKCk9PntSSXQoKX0pO2Z1bmN0aW9uIG14KHQpe2xldCBlPXRoaXM7ZS5wYXJzZXI9cjtmdW5jdGlvbiByKGEpe3JldHVybiB4eWUoYSx7Li4uZS5kYXRhKCJzZXR0aW5ncyIpLC4uLnQsZXh0ZW5zaW9uczplLmRhdGEoIm1pY3JvbWFya0V4dGVuc2lvbnMiKXx8W10sbWRhc3RFeHRlbnNpb25zOmUuZGF0YSgiZnJvbU1hcmtkb3duRXh0ZW5zaW9ucyIpfHxbXX0pfWkociwicGFyc2VyIil9dmFyIEJJdD11KCgpPT57Rkl0KCk7aShteCwicmVtYXJrUGFyc2UiKX0pO3ZhciBISXQ9dSgoKT0+e0JJdCgpfSk7dmFyIHFJdD1OdCgoR2VzLHZ5ZSk9PnsoZnVuY3Rpb24oKXt2YXIgdDt0eXBlb2YgdnllPCJ1Ij90PXZ5ZS5leHBvcnRzPWE6dD0oZnVuY3Rpb24oKXtyZXR1cm4gdGhpc3x8KDAsZXZhbCkoInRoaXMiKX0pKCksdC5mb3JtYXQ9YSx0LnZzcHJpbnRmPXIsdHlwZW9mIGNvbnNvbGU8InUiJiZ0eXBlb2YgY29uc29sZS5sb2c9PSJmdW5jdGlvbiImJih0LnByaW50Zj1lKTtmdW5jdGlvbiBlKCl7Y29uc29sZS5sb2coYS5hcHBseShudWxsLGFyZ3VtZW50cykpfWkoZSwicHJpbnRmIik7ZnVuY3Rpb24gcihzLG4pe3JldHVybiBhLmFwcGx5KG51bGwsW3NdLmNvbmNhdChuKSl9aShyLCJ2c3ByaW50ZiIpO2Z1bmN0aW9uIGEocyl7Zm9yKHZhciBuPTEsbz1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyksbD0wLGM9cy5sZW5ndGgsZD0iIixmLHA9ITEsaCxtLHY9ITEsYixnPWkoZnVuY3Rpb24oKXtyZXR1cm4gb1tuKytdfSwibmV4dEFyZyIpLHk9aShmdW5jdGlvbigpe2Zvcih2YXIgaz0iIjsvXGQvLnRlc3Qoc1tsXSk7KWsrPXNbbCsrXSxmPXNbbF07cmV0dXJuIGsubGVuZ3RoPjA/cGFyc2VJbnQoayk6bnVsbH0sInNsdXJwTnVtYmVyIik7bDxjOysrbClpZihmPXNbbF0scClzd2l0Y2gocD0hMSxmPT0iLiI/KHY9ITEsZj1zWysrbF0pOmY9PSIwIiYmc1tsKzFdPT0iLiI/KHY9ITAsbCs9MixmPXNbbF0pOnY9ITAsYj15KCksZil7Y2FzZSJiIjpkKz1wYXJzZUludChnKCksMTApLnRvU3RyaW5nKDIpO2JyZWFrO2Nhc2UiYyI6aD1nKCksdHlwZW9mIGg9PSJzdHJpbmcifHxoIGluc3RhbmNlb2YgU3RyaW5nP2QrPWg6ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChoLDEwKSk7YnJlYWs7Y2FzZSJkIjpkKz1wYXJzZUludChnKCksMTApO2JyZWFrO2Nhc2UiZiI6bT1TdHJpbmcocGFyc2VGbG9hdChnKCkpLnRvRml4ZWQoYnx8NikpLGQrPXY/bTptLnJlcGxhY2UoL14wLywiIik7YnJlYWs7Y2FzZSJqIjpkKz1KU09OLnN0cmluZ2lmeShnKCkpO2JyZWFrO2Nhc2UibyI6ZCs9IjAiK3BhcnNlSW50KGcoKSwxMCkudG9TdHJpbmcoOCk7YnJlYWs7Y2FzZSJzIjpkKz1nKCk7YnJlYWs7Y2FzZSJ4IjpkKz0iMHgiK3BhcnNlSW50KGcoKSwxMCkudG9TdHJpbmcoMTYpO2JyZWFrO2Nhc2UiWCI6ZCs9IjB4IitwYXJzZUludChnKCksMTApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO2JyZWFrO2RlZmF1bHQ6ZCs9ZjticmVha31lbHNlIGY9PT0iJSI/cD0hMDpkKz1mO3JldHVybiBkfWkoYSwiZm9ybWF0Iil9KSgpfSk7ZnVuY3Rpb24gTGgodCl7cmV0dXJuIGUuZGlzcGxheU5hbWU9dC5kaXNwbGF5TmFtZXx8dC5uYW1lLGU7ZnVuY3Rpb24gZShyLC4uLmEpe2xldCBzPXImJigwLFZJdC5kZWZhdWx0KShyLC4uLmEpO3JldHVybiBuZXcgdChzKX1pKGUsIkZvcm1hdHRlZEVycm9yIil9dmFyIFZJdCxOTSxqSXQ9dSgoKT0+e1ZJdD1HYShxSXQoKSwxKSxOTT1PYmplY3QuYXNzaWduKExoKEVycm9yKSx7ZXZhbDpMaChFdmFsRXJyb3IpLHJhbmdlOkxoKFJhbmdlRXJyb3IpLHJlZmVyZW5jZTpMaChSZWZlcmVuY2VFcnJvciksc3ludGF4OkxoKFN5bnRheEVycm9yKSx0eXBlOkxoKFR5cGVFcnJvciksdXJpOkxoKFVSSUVycm9yKX0pO2koTGgsImNyZWF0ZSIpfSk7ZnVuY3Rpb24gZ3godCl7bGV0IGU9W10scj0tMSxhPUFycmF5LmlzQXJyYXkodCk/dDp0P1t0XTpbInlhbWwiXTtmb3IoOysrcjxhLmxlbmd0aDspZVtyXT1yNmEoYVtyXSk7cmV0dXJuIGV9ZnVuY3Rpb24gcjZhKHQpe2xldCBlPXQ7aWYodHlwZW9mIGU9PSJzdHJpbmciKXtpZighTjFlLmNhbGwoVUl0LGUpKXRocm93IE5NKCJNaXNzaW5nIG1hdHRlciBkZWZpbml0aW9uIGZvciBgJXNgIixlKTtlPXt0eXBlOmUsbWFya2VyOlVJdFtlXX19ZWxzZSBpZih0eXBlb2YgZSE9Im9iamVjdCIpdGhyb3cgTk0oIkV4cGVjdGVkIG1hdHRlciB0byBiZSBhbiBvYmplY3QsIG5vdCBgJWpgIixlKTtpZighTjFlLmNhbGwoZSwidHlwZSIpKXRocm93IE5NKCJNaXNzaW5nIGB0eXBlYCBpbiBtYXR0ZXIgYCVqYCIsZSk7aWYoIU4xZS5jYWxsKGUsImZlbmNlIikmJiFOMWUuY2FsbChlLCJtYXJrZXIiKSl0aHJvdyBOTSgiTWlzc2luZyBgbWFya2VyYCBvciBgZmVuY2VgIGluIG1hdHRlciBgJWpgIixlKTtyZXR1cm4gZX12YXIgTjFlLFVJdCx5eWU9dSgoKT0+e2pJdCgpO04xZT17fS5oYXNPd25Qcm9wZXJ0eSxVSXQ9e3lhbWw6Ii0iLHRvbWw6IisifTtpKGd4LCJ0b01hdHRlcnMiKTtpKHI2YSwibWF0dGVyIil9KTtmdW5jdGlvbiBreWUodCl7bGV0IGU9Z3godCkscj17fSxhPS0xO2Zvcig7KythPGUubGVuZ3RoOyl7bGV0IHM9ZVthXSxuPXd5ZShzLCJvcGVuIikuY2hhckNvZGVBdCgwKSxvPWE2YShzKSxsPXJbbl07QXJyYXkuaXNBcnJheShsKT9sLnB1c2gobyk6cltuXT1bb119cmV0dXJue2Zsb3c6cn19ZnVuY3Rpb24gYTZhKHQpe2xldCBlPXQuYW55d2hlcmUscj10LnR5cGUsYT1yKyJGZW5jZSIscz1hKyJTZXF1ZW5jZSIsbj1yKyJWYWx1ZSIsbz17dG9rZW5pemU6ZixwYXJ0aWFsOiEwfSxsLGM9MDtyZXR1cm57dG9rZW5pemU6ZCxjb25jcmV0ZTohMH07ZnVuY3Rpb24gZChwLGgsbSl7bGV0IHY9dGhpcztyZXR1cm4gYjtmdW5jdGlvbiBiKE8pe2xldCBMPXYubm93KCk7cmV0dXJuIEwuY29sdW1uPT09MSYmKEwubGluZT09PTF8fGUpJiYobD13eWUodCwib3BlbiIpLGM9MCxPPT09bC5jaGFyQ29kZUF0KGMpKT8ocC5lbnRlcihyKSxwLmVudGVyKGEpLHAuZW50ZXIocyksZyhPKSk6bShPKX1mdW5jdGlvbiBnKE8pe3JldHVybiBjPT09bC5sZW5ndGg/KHAuZXhpdChzKSxPdChPKT8ocC5lbnRlcigid2hpdGVzcGFjZSIpLHkoTykpOmsoTykpOk89PT1sLmNoYXJDb2RlQXQoYysrKT8ocC5jb25zdW1lKE8pLGcpOm0oTyl9ZnVuY3Rpb24geShPKXtyZXR1cm4gT3QoTyk/KHAuY29uc3VtZShPKSx5KToocC5leGl0KCJ3aGl0ZXNwYWNlIiksayhPKSl9ZnVuY3Rpb24gayhPKXtyZXR1cm4gZHQoTyk/KHAuZXhpdChhKSxwLmVudGVyKCJsaW5lRW5kaW5nIikscC5jb25zdW1lKE8pLHAuZXhpdCgibGluZUVuZGluZyIpLGw9d3llKHQsImNsb3NlIiksYz0wLHAuYXR0ZW1wdChvLFMsTSkpOm0oTyl9ZnVuY3Rpb24gTShPKXtyZXR1cm4gTz09PW51bGx8fGR0KE8pP18oTyk6KHAuZW50ZXIobiksTihPKSl9ZnVuY3Rpb24gTihPKXtyZXR1cm4gTz09PW51bGx8fGR0KE8pPyhwLmV4aXQobiksXyhPKSk6KHAuY29uc3VtZShPKSxOKX1mdW5jdGlvbiBfKE8pe3JldHVybiBPPT09bnVsbD9tKE8pOihwLmVudGVyKCJsaW5lRW5kaW5nIikscC5jb25zdW1lKE8pLHAuZXhpdCgibGluZUVuZGluZyIpLHAuYXR0ZW1wdChvLFMsTSkpfWZ1bmN0aW9uIFMoTyl7cmV0dXJuIHAuZXhpdChyKSxoKE8pfX1mdW5jdGlvbiBmKHAsaCxtKXtsZXQgdj0wO3JldHVybiBiO2Z1bmN0aW9uIGIoTSl7cmV0dXJuIE09PT1sLmNoYXJDb2RlQXQodik/KHAuZW50ZXIoYSkscC5lbnRlcihzKSxnKE0pKTptKE0pfWZ1bmN0aW9uIGcoTSl7cmV0dXJuIHY9PT1sLmxlbmd0aD8ocC5leGl0KHMpLE90KE0pPyhwLmVudGVyKCJ3aGl0ZXNwYWNlIikseShNKSk6ayhNKSk6TT09PWwuY2hhckNvZGVBdCh2KyspPyhwLmNvbnN1bWUoTSksZyk6bShNKX1mdW5jdGlvbiB5KE0pe3JldHVybiBPdChNKT8ocC5jb25zdW1lKE0pLHkpOihwLmV4aXQoIndoaXRlc3BhY2UiKSxrKE0pKX1mdW5jdGlvbiBrKE0pe3JldHVybiBNPT09bnVsbHx8ZHQoTSk/KHAuZXhpdChhKSxoKE0pKTptKE0pfX19ZnVuY3Rpb24gd3llKHQsZSl7cmV0dXJuIHQubWFya2VyP1dJdCh0Lm1hcmtlcixlKS5yZXBlYXQoMyk6V0l0KHQuZmVuY2UsZSl9ZnVuY3Rpb24gV0l0KHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIj90OnRbZV19dmFyIEdJdD11KCgpPT57V3IoKTt5eWUoKTtpKGt5ZSwiZnJvbnRtYXR0ZXIiKTtpKGE2YSwiY3JlYXRlQ29uc3RydWN0Iik7aSh3eWUsImZlbmNlIik7aShXSXQsInBpY2siKX0pO3ZhciBZSXQ9dSgoKT0+e30pO3ZhciBTeWU9dSgoKT0+e0dJdCgpO1lJdCgpO3l5ZSgpfSk7ZnVuY3Rpb24gQ3llKHQpe2xldCBlPWd4KHQpLHI9e30sYT17fSxzPS0xO2Zvcig7KytzPGUubGVuZ3RoOyl7bGV0IG49ZVtzXTtyW24udHlwZV09aTZhKG4pLGFbbi50eXBlXT1zNmEsYVtuLnR5cGUrIlZhbHVlIl09bjZhfXJldHVybntlbnRlcjpyLGV4aXQ6YX19ZnVuY3Rpb24gaTZhKHQpe3JldHVybiBlO2Z1bmN0aW9uIGUocil7dGhpcy5lbnRlcih7dHlwZTp0LnR5cGUsdmFsdWU6IiJ9LHIpLHRoaXMuYnVmZmVyKCl9fWZ1bmN0aW9uIHM2YSh0KXtsZXQgZT10aGlzLnJlc3VtZSgpLHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTsidmFsdWUiaW4gcix0aGlzLmV4aXQodCksci52YWx1ZT1lLnJlcGxhY2UoL14oXHI/XG58XHIpfChccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIG42YSh0KXt0aGlzLmNvbmZpZy5lbnRlci5kYXRhLmNhbGwodGhpcyx0KSx0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLHQpfWZ1bmN0aW9uIHp5ZSh0KXtsZXQgZT1bXSxyPXt9LGE9Z3godCkscz0tMTtmb3IoOysrczxhLmxlbmd0aDspe2xldCBuPWFbc107cltuLnR5cGVdPW82YShuKTtsZXQgbz1NeWUobiwib3BlbiIpO2UucHVzaCh7YXRCcmVhazohMCxjaGFyYWN0ZXI6by5jaGFyQXQoMCksYWZ0ZXI6VmYoby5jaGFyQXQoMSkpfSl9cmV0dXJue3Vuc2FmZTplLGhhbmRsZXJzOnJ9fWZ1bmN0aW9uIG82YSh0KXtsZXQgZT1NeWUodCwib3BlbiIpLHI9TXllKHQsImNsb3NlIik7cmV0dXJuIGE7ZnVuY3Rpb24gYShzKXtyZXR1cm4gZSsocy52YWx1ZT9gCmArcy52YWx1ZToiIikrYApgK3J9fWZ1bmN0aW9uIE15ZSh0LGUpe3JldHVybiB0Lm1hcmtlcj9LSXQodC5tYXJrZXIsZSkucmVwZWF0KDMpOktJdCh0LmZlbmNlLGUpfWZ1bmN0aW9uIEtJdCh0LGUpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/dDp0W2VdfXZhciBaSXQ9dSgoKT0+e0N1KCk7U3llKCk7RGllKCk7aShDeWUsImZyb250bWF0dGVyRnJvbU1hcmtkb3duIik7aShpNmEsIm9wZW5lciIpO2koczZhLCJjbG9zZSIpO2kobjZhLCJ2YWx1ZSIpO2koenllLCJmcm9udG1hdHRlclRvTWFya2Rvd24iKTtpKG82YSwiaGFuZGxlciIpO2koTXllLCJmZW5jZSIpO2koS0l0LCJwaWNrIil9KTt2YXIgUUl0PXUoKCk9PntaSXQoKX0pO2Z1bmN0aW9uIGJ4KHQpe2xldCBlPXRoaXMscj10fHxsNmEsYT1lLmRhdGEoKSxzPWEubWljcm9tYXJrRXh0ZW5zaW9uc3x8KGEubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSksbj1hLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChhLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLG89YS50b01hcmtkb3duRXh0ZW5zaW9uc3x8KGEudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO3MucHVzaChreWUocikpLG4ucHVzaChDeWUocikpLG8ucHVzaCh6eWUocikpfXZhciBsNmEsWEl0PXUoKCk9PntRSXQoKTtTeWUoKTtsNmE9InlhbWwiO2koYngsInJlbWFya0Zyb250bWF0dGVyIil9KTt2YXIgSkl0PXUoKCk9PntYSXQoKX0pO3ZhciBfeWU9dSgoKT0+e30pO3ZhciBjNmEsZVB0LGQ2YSxIMWUsdFB0PXUoKCk9PntfeWUoKTtjNmE9dHlwZW9mIHNlbGY9PSJvYmplY3QiP3NlbGY6Z2xvYmFsVGhpcyxlUHQ9aSgodCxlKT0+e3N3aXRjaCh0KXtjYXNlIkZ1bmN0aW9uIjpjYXNlIlNoYXJlZFdvcmtlciI6Y2FzZSJXb3JrZXIiOmNhc2UiZXZhbCI6Y2FzZSJzZXRJbnRlcnZhbCI6Y2FzZSJzZXRUaW1lb3V0Ijp0aHJvdyBuZXcgVHlwZUVycm9yKCJ1bmFibGUgdG8gZGVzZXJpYWxpemUgIit0KX1yZXR1cm4gbmV3IGM2YVt0XShlKX0sImd1YXJkIiksZDZhPWkoKHQsZSk9PntsZXQgcj1pKChzLG4pPT4odC5zZXQobixzKSxzKSwiYXMiKSxhPWkocz0+e2lmKHQuaGFzKHMpKXJldHVybiB0LmdldChzKTtsZXRbbixvXT1lW3NdO3N3aXRjaChuKXtjYXNlIDA6Y2FzZS0xOnJldHVybiByKG8scyk7Y2FzZSAxOntsZXQgbD1yKFtdLHMpO2ZvcihsZXQgYyBvZiBvKWwucHVzaChhKGMpKTtyZXR1cm4gbH1jYXNlIDI6e2xldCBsPXIoe30scyk7Zm9yKGxldFtjLGRdb2YgbylsW2EoYyldPWEoZCk7cmV0dXJuIGx9Y2FzZSAzOnJldHVybiByKG5ldyBEYXRlKG8pLHMpO2Nhc2UgNDp7bGV0e3NvdXJjZTpsLGZsYWdzOmN9PW87cmV0dXJuIHIobmV3IFJlZ0V4cChsLGMpLHMpfWNhc2UgNTp7bGV0IGw9cihuZXcgTWFwLHMpO2ZvcihsZXRbYyxkXW9mIG8pbC5zZXQoYShjKSxhKGQpKTtyZXR1cm4gbH1jYXNlIDY6e2xldCBsPXIobmV3IFNldCxzKTtmb3IobGV0IGMgb2YgbylsLmFkZChhKGMpKTtyZXR1cm4gbH1jYXNlIDc6e2xldHtuYW1lOmwsbWVzc2FnZTpjfT1vO3JldHVybiByKGVQdChsLGMpLHMpfWNhc2UgODpyZXR1cm4gcihCaWdJbnQobykscyk7Y2FzZSJCaWdJbnQiOnJldHVybiByKE9iamVjdChCaWdJbnQobykpLHMpO2Nhc2UiQXJyYXlCdWZmZXIiOnJldHVybiByKG5ldyBVaW50OEFycmF5KG8pLmJ1ZmZlcixvKTtjYXNlIkRhdGFWaWV3Ijp7bGV0e2J1ZmZlcjpsfT1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gcihuZXcgRGF0YVZpZXcobCksbyl9fXJldHVybiByKGVQdChuLG8pLHMpfSwidW5wYWlyIik7cmV0dXJuIGF9LCJkZXNlcmlhbGl6ZXIiKSxIMWU9aSh0PT5kNmEobmV3IE1hcCx0KSgwKSwiZGVzZXJpYWxpemUiKX0pO3ZhciB2eCx1NmEscDZhLEZNLHExZSxmNmEsVjFlLHJQdD11KCgpPT57X3llKCk7dng9IiIse3RvU3RyaW5nOnU2YX09e30se2tleXM6cDZhfT1PYmplY3QsRk09aSh0PT57bGV0IGU9dHlwZW9mIHQ7aWYoZSE9PSJvYmplY3QifHwhdClyZXR1cm5bMCxlXTtsZXQgcj11NmEuY2FsbCh0KS5zbGljZSg4LC0xKTtzd2l0Y2gocil7Y2FzZSJBcnJheSI6cmV0dXJuWzEsdnhdO2Nhc2UiT2JqZWN0IjpyZXR1cm5bMix2eF07Y2FzZSJEYXRlIjpyZXR1cm5bMyx2eF07Y2FzZSJSZWdFeHAiOnJldHVybls0LHZ4XTtjYXNlIk1hcCI6cmV0dXJuWzUsdnhdO2Nhc2UiU2V0IjpyZXR1cm5bNix2eF07Y2FzZSJEYXRhVmlldyI6cmV0dXJuWzEscl19cmV0dXJuIHIuaW5jbHVkZXMoIkFycmF5Iik/WzEscl06ci5pbmNsdWRlcygiRXJyb3IiKT9bNyxyXTpbMixyXX0sInR5cGVPZiIpLHExZT1pKChbdCxlXSk9PnQ9PT0wJiYoZT09PSJmdW5jdGlvbiJ8fGU9PT0ic3ltYm9sIiksInNob3VsZFNraXAiKSxmNmE9aSgodCxlLHIsYSk9PntsZXQgcz1pKChvLGwpPT57bGV0IGM9YS5wdXNoKG8pLTE7cmV0dXJuIHIuc2V0KGwsYyksY30sImFzIiksbj1pKG89PntpZihyLmhhcyhvKSlyZXR1cm4gci5nZXQobyk7bGV0W2wsY109Rk0obyk7c3dpdGNoKGwpe2Nhc2UgMDp7bGV0IGY9bztzd2l0Y2goYyl7Y2FzZSJiaWdpbnQiOmw9OCxmPW8udG9TdHJpbmcoKTticmVhaztjYXNlImZ1bmN0aW9uIjpjYXNlInN5bWJvbCI6aWYodCl0aHJvdyBuZXcgVHlwZUVycm9yKCJ1bmFibGUgdG8gc2VyaWFsaXplICIrYyk7Zj1udWxsO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4gcyhbLTFdLG8pfXJldHVybiBzKFtsLGZdLG8pfWNhc2UgMTp7aWYoYyl7bGV0IGg9bztyZXR1cm4gYz09PSJEYXRhVmlldyI/aD1uZXcgVWludDhBcnJheShvLmJ1ZmZlcik6Yz09PSJBcnJheUJ1ZmZlciImJihoPW5ldyBVaW50OEFycmF5KG8pKSxzKFtjLFsuLi5oXV0sbyl9bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXQgaCBvZiBvKWYucHVzaChuKGgpKTtyZXR1cm4gcH1jYXNlIDI6e2lmKGMpc3dpdGNoKGMpe2Nhc2UiQmlnSW50IjpyZXR1cm4gcyhbYyxvLnRvU3RyaW5nKCldLG8pO2Nhc2UiQm9vbGVhbiI6Y2FzZSJOdW1iZXIiOmNhc2UiU3RyaW5nIjpyZXR1cm4gcyhbYyxvLnZhbHVlT2YoKV0sbyl9aWYoZSYmInRvSlNPTiJpbiBvKXJldHVybiBuKG8udG9KU09OKCkpO2xldCBmPVtdLHA9cyhbbCxmXSxvKTtmb3IobGV0IGggb2YgcDZhKG8pKSh0fHwhcTFlKEZNKG9baF0pKSkmJmYucHVzaChbbihoKSxuKG9baF0pXSk7cmV0dXJuIHB9Y2FzZSAzOnJldHVybiBzKFtsLG8udG9JU09TdHJpbmcoKV0sbyk7Y2FzZSA0OntsZXR7c291cmNlOmYsZmxhZ3M6cH09bztyZXR1cm4gcyhbbCx7c291cmNlOmYsZmxhZ3M6cH1dLG8pfWNhc2UgNTp7bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXRbaCxtXW9mIG8pKHR8fCEocTFlKEZNKGgpKXx8cTFlKEZNKG0pKSkpJiZmLnB1c2goW24oaCksbihtKV0pO3JldHVybiBwfWNhc2UgNjp7bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXQgaCBvZiBvKSh0fHwhcTFlKEZNKGgpKSkmJmYucHVzaChuKGgpKTtyZXR1cm4gcH19bGV0e21lc3NhZ2U6ZH09bztyZXR1cm4gcyhbbCx7bmFtZTpjLG1lc3NhZ2U6ZH1dLG8pfSwicGFpciIpO3JldHVybiBufSwic2VyaWFsaXplciIpLFYxZT1pKCh0LHtqc29uOmUsbG9zc3k6cn09e30pPT57bGV0IGE9W107cmV0dXJuIGY2YSghKGV8fHIpLCEhZSxuZXcgTWFwLGEpKHQpLGF9LCJzZXJpYWxpemUiKX0pO3ZhciBBdSxqMWU9dSgoKT0+e3RQdCgpO3JQdCgpO0F1PXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiI/KHQsZSk9PmUmJigianNvbiJpbiBlfHwibG9zc3kiaW4gZSk/SDFlKFYxZSh0LGUpKTpzdHJ1Y3R1cmVkQ2xvbmUodCk6KHQsZSk9PkgxZShWMWUodCxlKSl9KTtmdW5jdGlvbiBhUHQodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyKXtsZXQgYT1yJiZyLnBvc2l0aW9uJiZyLnBvc2l0aW9uW3RdfHx7fTtpZih0eXBlb2YgYS5saW5lPT0ibnVtYmVyIiYmYS5saW5lPjAmJnR5cGVvZiBhLmNvbHVtbj09Im51bWJlciImJmEuY29sdW1uPjApcmV0dXJue2xpbmU6YS5saW5lLGNvbHVtbjphLmNvbHVtbixvZmZzZXQ6dHlwZW9mIGEub2Zmc2V0PT0ibnVtYmVyIiYmYS5vZmZzZXQ+LTE/YS5vZmZzZXQ6dm9pZCAwfX19ZnVuY3Rpb24gQk0odCl7bGV0IGU9VzFlKHQpLHI9VTFlKHQpO2lmKGUmJnIpcmV0dXJue3N0YXJ0OmUsZW5kOnJ9fXZhciBVMWUsVzFlLGlQdD11KCgpPT57VTFlPWFQdCgiZW5kIiksVzFlPWFQdCgic3RhcnQiKTtpKGFQdCwicG9pbnQiKTtpKEJNLCJwb3NpdGlvbiIpfSk7dmFyIEcxZT11KCgpPT57aVB0KCl9KTt2YXIgRGgsWTFlLCR5ZT11KCgpPT57RGg9WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSJdLFkxZT17YW5jZXN0b3JzOnt0Ym9keTpbInRhYmxlIl0sdGQ6WyJ0YWJsZSJdLHRoOlsidGFibGUiXSx0aGVhZDpbInRhYmxlIl0sdGZvb3Q6WyJ0YWJsZSJdLHRyOlsidGFibGUiXX0sYXR0cmlidXRlczp7YTpbLi4uRGgsImRhdGFGb290bm90ZUJhY2tyZWYiLCJkYXRhRm9vdG5vdGVSZWYiLFsiY2xhc3NOYW1lIiwiZGF0YS1mb290bm90ZS1iYWNrcmVmIl0sImhyZWYiXSxibG9ja3F1b3RlOlsiY2l0ZSJdLGNvZGU6W1siY2xhc3NOYW1lIiwvXmxhbmd1YWdlLS4vXV0sZGVsOlsiY2l0ZSJdLGRpdjpbIml0ZW1TY29wZSIsIml0ZW1UeXBlIl0sZGw6Wy4uLkRoXSxoMjpbWyJjbGFzc05hbWUiLCJzci1vbmx5Il1dLGltZzpbLi4uRGgsImxvbmdEZXNjIiwic3JjIl0saW5wdXQ6W1siZGlzYWJsZWQiLCEwXSxbInR5cGUiLCJjaGVja2JveCJdXSxpbnM6WyJjaXRlIl0sbGk6W1siY2xhc3NOYW1lIiwidGFzay1saXN0LWl0ZW0iXV0sb2w6Wy4uLkRoLFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLHE6WyJjaXRlIl0sc2VjdGlvbjpbImRhdGFGb290bm90ZXMiLFsiY2xhc3NOYW1lIiwiZm9vdG5vdGVzIl1dLHNvdXJjZTpbInNyY1NldCJdLHN1bW1hcnk6Wy4uLkRoXSx0YWJsZTpbLi4uRGhdLHVsOlsuLi5EaCxbImNsYXNzTmFtZSIsImNvbnRhaW5zLXRhc2stbGlzdCJdXSwiKiI6WyJhYmJyIiwiYWNjZXB0IiwiYWNjZXB0Q2hhcnNldCIsImFjY2Vzc0tleSIsImFjdGlvbiIsImFsaWduIiwiYWx0IiwiYXhpcyIsImJvcmRlciIsImNlbGxQYWRkaW5nIiwiY2VsbFNwYWNpbmciLCJjaGFyIiwiY2hhck9mZiIsImNoYXJTZXQiLCJjaGVja2VkIiwiY2xlYXIiLCJjb2xTcGFuIiwiY29sb3IiLCJjb2xzIiwiY29tcGFjdCIsImNvb3JkcyIsImRhdGVUaW1lIiwiZGlyIiwiZW5jVHlwZSIsImZyYW1lIiwiaFNwYWNlIiwiaGVhZGVycyIsImhlaWdodCIsImhyZWZMYW5nIiwiaHRtbEZvciIsImlkIiwiaXNNYXAiLCJpdGVtUHJvcCIsImxhYmVsIiwibGFuZyIsIm1heExlbmd0aCIsIm1lZGlhIiwibWV0aG9kIiwibXVsdGlwbGUiLCJuYW1lIiwibm9IcmVmIiwibm9TaGFkZSIsIm5vV3JhcCIsIm9wZW4iLCJwcm9tcHQiLCJyZWFkT25seSIsInJldiIsInJvd1NwYW4iLCJyb3dzIiwicnVsZXMiLCJzY29wZSIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic3BhbiIsInN0YXJ0Iiwic3VtbWFyeSIsInRhYkluZGV4IiwidGl0bGUiLCJ1c2VNYXAiLCJ2QWxpZ24iLCJ2YWx1ZSIsIndpZHRoIl19LGNsb2JiZXI6WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWxsZWRCeSIsImlkIiwibmFtZSJdLGNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLHByb3RvY29sczp7Y2l0ZTpbImh0dHAiLCJodHRwcyJdLGhyZWY6WyJodHRwIiwiaHR0cHMiLCJpcmMiLCJpcmNzIiwibWFpbHRvIiwieG1wcCJdLGxvbmdEZXNjOlsiaHR0cCIsImh0dHBzIl0sc3JjOlsiaHR0cCIsImh0dHBzIl19LHJlcXVpcmVkOntpbnB1dDp7ZGlzYWJsZWQ6ITAsdHlwZToiY2hlY2tib3gifX0sc3RyaXA6WyJzY3JpcHQiXSx0YWdOYW1lczpbImEiLCJiIiwiYmxvY2txdW90ZSIsImJyIiwiY29kZSIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRpdiIsImRsIiwiZHQiLCJlbSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhyIiwiaSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGkiLCJvbCIsInAiLCJwaWN0dXJlIiwicHJlIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNhbXAiLCJzZWN0aW9uIiwic291cmNlIiwic3BhbiIsInN0cmlrZSIsInN0cm9uZyIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0ciIsInR0IiwidWwiLCJ2YXIiXX19KTtmdW5jdGlvbiBBeWUodCxlKXtsZXQgcj17dHlwZToicm9vdCIsY2hpbGRyZW46W119LGE9e3NjaGVtYTplP3suLi5ZMWUsLi4uZX06WTFlLHN0YWNrOltdfSxzPXNQdChhLHQpO3JldHVybiBzJiYoQXJyYXkuaXNBcnJheShzKT9zLmxlbmd0aD09PTE/cj1zWzBdOnIuY2hpbGRyZW49czpyPXMpLHJ9ZnVuY3Rpb24gc1B0KHQsZSl7aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QiKXtsZXQgcj1lO3N3aXRjaCh0eXBlb2Ygci50eXBlPT0ic3RyaW5nIj9yLnR5cGU6IiIpe2Nhc2UiY29tbWVudCI6cmV0dXJuIGg2YSh0LHIpO2Nhc2UiZG9jdHlwZSI6cmV0dXJuIG02YSh0LHIpO2Nhc2UiZWxlbWVudCI6cmV0dXJuIGc2YSh0LHIpO2Nhc2Uicm9vdCI6cmV0dXJuIGI2YSh0LHIpO2Nhc2UidGV4dCI6cmV0dXJuIHg2YSh0LHIpO2RlZmF1bHQ6fX19ZnVuY3Rpb24gaDZhKHQsZSl7aWYodC5zY2hlbWEuYWxsb3dDb21tZW50cyl7bGV0IHI9dHlwZW9mIGUudmFsdWU9PSJzdHJpbmciP2UudmFsdWU6IiIsYT1yLmluZGV4T2YoIi0tPiIpLG49e3R5cGU6ImNvbW1lbnQiLHZhbHVlOmE8MD9yOnIuc2xpY2UoMCxhKX07cmV0dXJuIEhNKG4sZSksbn19ZnVuY3Rpb24gbTZhKHQsZSl7aWYodC5zY2hlbWEuYWxsb3dEb2N0eXBlcyl7bGV0IHI9e3R5cGU6ImRvY3R5cGUifTtyZXR1cm4gSE0ocixlKSxyfX1mdW5jdGlvbiBnNmEodCxlKXtsZXQgcj10eXBlb2YgZS50YWdOYW1lPT0ic3RyaW5nIj9lLnRhZ05hbWU6IiI7dC5zdGFjay5wdXNoKHIpO2xldCBhPW5QdCh0LGUuY2hpbGRyZW4pLHM9djZhKHQsZS5wcm9wZXJ0aWVzKTt0LnN0YWNrLnBvcCgpO2xldCBuPSExO2lmKHImJnIhPT0iKiImJighdC5zY2hlbWEudGFnTmFtZXN8fHQuc2NoZW1hLnRhZ05hbWVzLmluY2x1ZGVzKHIpKSYmKG49ITAsdC5zY2hlbWEuYW5jZXN0b3JzJiZFdS5jYWxsKHQuc2NoZW1hLmFuY2VzdG9ycyxyKSkpe2xldCBsPXQuc2NoZW1hLmFuY2VzdG9yc1tyXSxjPS0xO2ZvcihuPSExOysrYzxsLmxlbmd0aDspdC5zdGFjay5pbmNsdWRlcyhsW2NdKSYmKG49ITApfWlmKCFuKXJldHVybiB0LnNjaGVtYS5zdHJpcCYmIXQuc2NoZW1hLnN0cmlwLmluY2x1ZGVzKHIpP2E6dm9pZCAwO2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOnIscHJvcGVydGllczpzLGNoaWxkcmVuOmF9O3JldHVybiBITShvLGUpLG99ZnVuY3Rpb24gYjZhKHQsZSl7bGV0IGE9e3R5cGU6InJvb3QiLGNoaWxkcmVuOm5QdCh0LGUuY2hpbGRyZW4pfTtyZXR1cm4gSE0oYSxlKSxhfWZ1bmN0aW9uIHg2YSh0LGUpe2xldCBhPXt0eXBlOiJ0ZXh0Iix2YWx1ZTp0eXBlb2YgZS52YWx1ZT09InN0cmluZyI/ZS52YWx1ZToiIn07cmV0dXJuIEhNKGEsZSksYX1mdW5jdGlvbiBuUHQodCxlKXtsZXQgcj1bXTtpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgYT1lLHM9LTE7Zm9yKDsrK3M8YS5sZW5ndGg7KXtsZXQgbj1zUHQodCxhW3NdKTtuJiYoQXJyYXkuaXNBcnJheShuKT9yLnB1c2goLi4ubik6ci5wdXNoKG4pKX19cmV0dXJuIHJ9ZnVuY3Rpb24gdjZhKHQsZSl7bGV0IHI9dC5zdGFja1t0LnN0YWNrLmxlbmd0aC0xXSxhPXQuc2NoZW1hLmF0dHJpYnV0ZXMscz10LnNjaGVtYS5yZXF1aXJlZCxuPWEmJkV1LmNhbGwoYSxyKT9hW3JdOnZvaWQgMCxvPWEmJkV1LmNhbGwoYSwiKiIpP2FbIioiXTp2b2lkIDAsbD1lJiZ0eXBlb2YgZT09Im9iamVjdCI/ZTp7fSxjPXt9LGQ7Zm9yKGQgaW4gbClpZihFdS5jYWxsKGwsZCkpe2xldCBmPWxbZF0scD1vUHQodCxjUHQobixkKSxkLGYpO3A9PW51bGwmJihwPW9QdCh0LGNQdChvLGQpLGQsZikpLHAhPW51bGwmJihjW2RdPXApfWlmKHMmJkV1LmNhbGwocyxyKSl7bGV0IGY9c1tyXTtmb3IoZCBpbiBmKUV1LmNhbGwoZixkKSYmIUV1LmNhbGwoYyxkKSYmKGNbZF09ZltkXSl9cmV0dXJuIGN9ZnVuY3Rpb24gb1B0KHQsZSxyLGEpe3JldHVybiBlP0FycmF5LmlzQXJyYXkoYSk/eTZhKHQsZSxyLGEpOmxQdCh0LGUscixhKTp2b2lkIDB9ZnVuY3Rpb24geTZhKHQsZSxyLGEpe2xldCBzPS0xLG49W107Zm9yKDsrK3M8YS5sZW5ndGg7KXtsZXQgbz1sUHQodCxlLHIsYVtzXSk7KHR5cGVvZiBvPT0ibnVtYmVyInx8dHlwZW9mIG89PSJzdHJpbmciKSYmbi5wdXNoKG8pfXJldHVybiBufWZ1bmN0aW9uIGxQdCh0LGUscixhKXtpZighKHR5cGVvZiBhIT0iYm9vbGVhbiImJnR5cGVvZiBhIT0ibnVtYmVyIiYmdHlwZW9mIGEhPSJzdHJpbmciKSYmdzZhKHQscixhKSl7aWYodHlwZW9mIGU9PSJvYmplY3QiJiZlLmxlbmd0aD4xKXtsZXQgcz0hMSxuPTA7Zm9yKDsrK248ZS5sZW5ndGg7KXtsZXQgbz1lW25dO2lmKG8mJnR5cGVvZiBvPT0ib2JqZWN0IiYmImZsYWdzImluIG8pe2lmKG8udGVzdChTdHJpbmcoYSkpKXtzPSEwO2JyZWFrfX1lbHNlIGlmKG89PT1hKXtzPSEwO2JyZWFrfX1pZighcylyZXR1cm59cmV0dXJuIHQuc2NoZW1hLmNsb2JiZXImJnQuc2NoZW1hLmNsb2JiZXJQcmVmaXgmJnQuc2NoZW1hLmNsb2JiZXIuaW5jbHVkZXMocik/dC5zY2hlbWEuY2xvYmJlclByZWZpeCthOmF9fWZ1bmN0aW9uIHc2YSh0LGUscil7bGV0IGE9dC5zY2hlbWEucHJvdG9jb2xzJiZFdS5jYWxsKHQuc2NoZW1hLnByb3RvY29scyxlKT90LnNjaGVtYS5wcm90b2NvbHNbZV06dm9pZCAwO2lmKCFhfHxhLmxlbmd0aD09PTApcmV0dXJuITA7bGV0IHM9U3RyaW5nKHIpLG49cy5pbmRleE9mKCI6Iiksbz1zLmluZGV4T2YoIj8iKSxsPXMuaW5kZXhPZigiIyIpLGM9cy5pbmRleE9mKCIvIik7aWYobjwwfHxjPi0xJiZuPmN8fG8+LTEmJm4+b3x8bD4tMSYmbj5sKXJldHVybiEwO2xldCBkPS0xO2Zvcig7KytkPGEubGVuZ3RoOyl7bGV0IGY9YVtkXTtpZihuPT09Zi5sZW5ndGgmJnMuc2xpY2UoMCxmLmxlbmd0aCk9PT1mKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIEhNKHQsZSl7bGV0IHI9Qk0oZSk7ZS5kYXRhJiYodC5kYXRhPUF1KGUuZGF0YSkpLHImJih0LnBvc2l0aW9uPXIpfWZ1bmN0aW9uIGNQdCh0LGUpe2xldCByLGE9LTE7aWYodClmb3IoOysrYTx0Lmxlbmd0aDspe2xldCBzPXRbYV0sbj10eXBlb2Ygcz09InN0cmluZyI/czpzWzBdO2lmKG49PT1lKXJldHVybiBzO249PT0iZGF0YSoiJiYocj1zKX1pZihlLmxlbmd0aD40JiZlLnNsaWNlKDAsNCkudG9Mb3dlckNhc2UoKT09PSJkYXRhIilyZXR1cm4gcn12YXIgRXUsZFB0PXUoKCk9PntqMWUoKTtHMWUoKTskeWUoKTtFdT17fS5oYXNPd25Qcm9wZXJ0eTtpKEF5ZSwic2FuaXRpemUiKTtpKHNQdCwidHJhbnNmb3JtIik7aShoNmEsImNvbW1lbnQiKTtpKG02YSwiZG9jdHlwZSIpO2koZzZhLCJlbGVtZW50Iik7aShiNmEsInJvb3QiKTtpKHg2YSwidGV4dCIpO2koblB0LCJjaGlsZHJlbiIpO2kodjZhLCJwcm9wZXJ0aWVzIik7aShvUHQsInByb3BlcnR5VmFsdWUiKTtpKHk2YSwicHJvcGVydHlWYWx1ZU1hbnkiKTtpKGxQdCwicHJvcGVydHlWYWx1ZVByaW1pdGl2ZSIpO2kodzZhLCJzYWZlUHJvdG9jb2wiKTtpKEhNLCJwYXRjaCIpO2koY1B0LCJmaW5kRGVmaW5pdGlvbiIpfSk7dmFyIHVQdD11KCgpPT57ZFB0KCk7JHllKCl9KTtmdW5jdGlvbiBwUHQodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYmxvY2txdW90ZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAodC5hbGwoZSksITApfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIGZQdD11KCgpPT57aShwUHQsImJsb2NrcXVvdGUiKX0pO2Z1bmN0aW9uIGhQdCh0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJiciIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIHQucGF0Y2goZSxyKSxbdC5hcHBseURhdGEoZSxyKSx7dHlwZToidGV4dCIsdmFsdWU6YApgfV19dmFyIG1QdD11KCgpPT57aShoUHQsImhhcmRCcmVhayIpfSk7ZnVuY3Rpb24gZ1B0KHQsZSl7bGV0IHI9ZS52YWx1ZT9lLnZhbHVlK2AKYDoiIixhPXt9LHM9ZS5sYW5nP2UubGFuZy5zcGxpdCgvXHMrLyk6W107cy5sZW5ndGg+MCYmKGEuY2xhc3NOYW1lPVsibGFuZ3VhZ2UtIitzWzBdXSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6YSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOnJ9XX07cmV0dXJuIGUubWV0YSYmKG4uZGF0YT17bWV0YTplLm1ldGF9KSx0LnBhdGNoKGUsbiksbj10LmFwcGx5RGF0YShlLG4pLG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InByZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbbl19LHQucGF0Y2goZSxuKSxufXZhciBiUHQ9dSgoKT0+e2koZ1B0LCJjb2RlIil9KTtmdW5jdGlvbiB4UHQodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGVsIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIHZQdD11KCgpPT57aSh4UHQsInN0cmlrZXRocm91Z2giKX0pO2Z1bmN0aW9uIHlQdCh0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJlbSIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciB3UHQ9dSgoKT0+e2koeVB0LCJlbXBoYXNpcyIpfSk7ZnVuY3Rpb24ga1B0KHQsZSl7bGV0IHI9dHlwZW9mIHQub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj90Lm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIsYT1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLHM9RzEoYS50b0xvd2VyQ2FzZSgpKSxuPXQuZm9vdG5vdGVPcmRlci5pbmRleE9mKGEpLG8sbD10LmZvb3Rub3RlQ291bnRzLmdldChhKTtsPT09dm9pZCAwPyhsPTAsdC5mb290bm90ZU9yZGVyLnB1c2goYSksbz10LmZvb3Rub3RlT3JkZXIubGVuZ3RoKTpvPW4rMSxsKz0xLHQuZm9vdG5vdGVDb3VudHMuc2V0KGEsbCk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK3IrImZuLSIrcyxpZDpyKyJmbnJlZi0iK3MrKGw+MT8iLSIrbDoiIiksZGF0YUZvb3Rub3RlUmVmOiEwLGFyaWFEZXNjcmliZWRCeTpbImZvb3Rub3RlLWxhYmVsIl19LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKG8pfV19O3QucGF0Y2goZSxjKTtsZXQgZD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltjXX07cmV0dXJuIHQucGF0Y2goZSxkKSx0LmFwcGx5RGF0YShlLGQpfXZhciBTUHQ9dSgoKT0+e3YwKCk7aShrUHQsImZvb3Rub3RlUmVmZXJlbmNlIil9KTtmdW5jdGlvbiBNUHQodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaCIrZS5kZXB0aCxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIENQdD11KCgpPT57aShNUHQsImhlYWRpbmciKX0pO2Z1bmN0aW9uIHpQdCh0LGUpe2lmKHQub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpe2xldCByPXt0eXBlOiJyYXciLHZhbHVlOmUudmFsdWV9O3JldHVybiB0LnBhdGNoKGUsciksdC5hcHBseURhdGEoZSxyKX19dmFyIF9QdD11KCgpPT57aSh6UHQsImh0bWwiKX0pO2Z1bmN0aW9uIEsxZSh0LGUpe2xldCByPWUucmVmZXJlbmNlVHlwZSxhPSJdIjtpZihyPT09ImNvbGxhcHNlZCI/YSs9IltdIjpyPT09ImZ1bGwiJiYoYSs9IlsiKyhlLmxhYmVsfHxlLmlkZW50aWZpZXIpKyJdIiksZS50eXBlPT09ImltYWdlUmVmZXJlbmNlIilyZXR1cm5be3R5cGU6InRleHQiLHZhbHVlOiIhWyIrZS5hbHQrYX1dO2xldCBzPXQuYWxsKGUpLG49c1swXTtuJiZuLnR5cGU9PT0idGV4dCI/bi52YWx1ZT0iWyIrbi52YWx1ZTpzLnVuc2hpZnQoe3R5cGU6InRleHQiLHZhbHVlOiJbIn0pO2xldCBvPXNbcy5sZW5ndGgtMV07cmV0dXJuIG8mJm8udHlwZT09PSJ0ZXh0Ij9vLnZhbHVlKz1hOnMucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YX0pLHN9dmFyIEV5ZT11KCgpPT57aShLMWUsInJldmVydCIpfSk7ZnVuY3Rpb24gVFB0KHQsZSl7bGV0IHI9U3RyaW5nKGUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxhPXQuZGVmaW5pdGlvbkJ5SWQuZ2V0KHIpO2lmKCFhKXJldHVybiBLMWUodCxlKTtsZXQgcz17c3JjOkcxKGEudXJsfHwiIiksYWx0OmUuYWx0fTthLnRpdGxlIT09bnVsbCYmYS50aXRsZSE9PXZvaWQgMCYmKHMudGl0bGU9YS50aXRsZSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImltZyIscHJvcGVydGllczpzLGNoaWxkcmVuOltdfTtyZXR1cm4gdC5wYXRjaChlLG4pLHQuYXBwbHlEYXRhKGUsbil9dmFyIExQdD11KCgpPT57djAoKTtFeWUoKTtpKFRQdCwiaW1hZ2VSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIERQdCh0LGUpe2xldCByPXtzcmM6RzEoZS51cmwpfTtlLmFsdCE9PW51bGwmJmUuYWx0IT09dm9pZCAwJiYoci5hbHQ9ZS5hbHQpLGUudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1lLnRpdGxlKTtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46W119O3JldHVybiB0LnBhdGNoKGUsYSksdC5hcHBseURhdGEoZSxhKX12YXIgJFB0PXUoKCk9Pnt2MCgpO2koRFB0LCJpbWFnZSIpfSk7ZnVuY3Rpb24gQVB0KHQsZSl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOmUudmFsdWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpfTt0LnBhdGNoKGUscik7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3JdfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIEVQdD11KCgpPT57aShBUHQsImlubGluZUNvZGUiKX0pO2Z1bmN0aW9uIElQdCh0LGUpe2xldCByPVN0cmluZyhlLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksYT10LmRlZmluaXRpb25CeUlkLmdldChyKTtpZighYSlyZXR1cm4gSzFlKHQsZSk7bGV0IHM9e2hyZWY6RzEoYS51cmx8fCIiKX07YS50aXRsZSE9PW51bGwmJmEudGl0bGUhPT12b2lkIDAmJihzLnRpdGxlPWEudGl0bGUpO2xldCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOnMsY2hpbGRyZW46dC5hbGwoZSl9O3JldHVybiB0LnBhdGNoKGUsbiksdC5hcHBseURhdGEoZSxuKX12YXIgUFB0PXUoKCk9Pnt2MCgpO0V5ZSgpO2koSVB0LCJsaW5rUmVmZXJlbmNlIil9KTtmdW5jdGlvbiBOUHQodCxlKXtsZXQgcj17aHJlZjpHMShlLnVybCl9O2UudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1lLnRpdGxlKTtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczpyLGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIE9QdD11KCgpPT57djAoKTtpKE5QdCwibGluayIpfSk7ZnVuY3Rpb24gRlB0KHQsZSxyKXtsZXQgYT10LmFsbChlKSxzPXI/azZhKHIpOlJQdChlKSxuPXt9LG89W107aWYodHlwZW9mIGUuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgZj1hWzBdLHA7ZiYmZi50eXBlPT09ImVsZW1lbnQiJiZmLnRhZ05hbWU9PT0icCI/cD1mOihwPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfSxhLnVuc2hpZnQocCkpLHAuY2hpbGRyZW4ubGVuZ3RoPjAmJnAuY2hpbGRyZW4udW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSkscC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbnB1dCIscHJvcGVydGllczp7dHlwZToiY2hlY2tib3giLGNoZWNrZWQ6ZS5jaGVja2VkLGRpc2FibGVkOiEwfSxjaGlsZHJlbjpbXX0pLG4uY2xhc3NOYW1lPVsidGFzay1saXN0LWl0ZW0iXX1sZXQgbD0tMTtmb3IoOysrbDxhLmxlbmd0aDspe2xldCBmPWFbbF07KHN8fGwhPT0wfHxmLnR5cGUhPT0iZWxlbWVudCJ8fGYudGFnTmFtZSE9PSJwIikmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksZi50eXBlPT09ImVsZW1lbnQiJiZmLnRhZ05hbWU9PT0icCImJiFzP28ucHVzaCguLi5mLmNoaWxkcmVuKTpvLnB1c2goZil9bGV0IGM9YVthLmxlbmd0aC0xXTtjJiYoc3x8Yy50eXBlIT09ImVsZW1lbnQifHxjLnRhZ05hbWUhPT0icCIpJiZvLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pO2xldCBkPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczpuLGNoaWxkcmVuOm99O3JldHVybiB0LnBhdGNoKGUsZCksdC5hcHBseURhdGEoZSxkKX1mdW5jdGlvbiBrNmEodCl7bGV0IGU9ITE7aWYodC50eXBlPT09Imxpc3QiKXtlPXQuc3ByZWFkfHwhMTtsZXQgcj10LmNoaWxkcmVuLGE9LTE7Zm9yKDshZSYmKythPHIubGVuZ3RoOyllPVJQdChyW2FdKX1yZXR1cm4gZX1mdW5jdGlvbiBSUHQodCl7bGV0IGU9dC5zcHJlYWQ7cmV0dXJuIGU/P3QuY2hpbGRyZW4ubGVuZ3RoPjF9dmFyIEJQdD11KCgpPT57aShGUHQsImxpc3RJdGVtIik7aShrNmEsImxpc3RMb29zZSIpO2koUlB0LCJsaXN0SXRlbUxvb3NlIil9KTtmdW5jdGlvbiBIUHQodCxlKXtsZXQgcj17fSxhPXQuYWxsKGUpLHM9LTE7Zm9yKHR5cGVvZiBlLnN0YXJ0PT0ibnVtYmVyIiYmZS5zdGFydCE9PTEmJihyLnN0YXJ0PWUuc3RhcnQpOysrczxhLmxlbmd0aDspe2xldCBvPWFbc107aWYoby50eXBlPT09ImVsZW1lbnQiJiZvLnRhZ05hbWU9PT0ibGkiJiZvLnByb3BlcnRpZXMmJkFycmF5LmlzQXJyYXkoby5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkmJm8ucHJvcGVydGllcy5jbGFzc05hbWUuaW5jbHVkZXMoInRhc2stbGlzdC1pdGVtIikpe3IuY2xhc3NOYW1lPVsiY29udGFpbnMtdGFzay1saXN0Il07YnJlYWt9fWxldCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOmUub3JkZXJlZD8ib2wiOiJ1bCIscHJvcGVydGllczpyLGNoaWxkcmVuOnQud3JhcChhLCEwKX07cmV0dXJuIHQucGF0Y2goZSxuKSx0LmFwcGx5RGF0YShlLG4pfXZhciBxUHQ9dSgoKT0+e2koSFB0LCJsaXN0Iil9KTtmdW5jdGlvbiBWUHQodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBqUHQ9dSgoKT0+e2koVlB0LCJwYXJhZ3JhcGgiKX0pO2Z1bmN0aW9uIFVQdCh0LGUpe2xldCByPXt0eXBlOiJyb290IixjaGlsZHJlbjp0LndyYXAodC5hbGwoZSkpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIFdQdD11KCgpPT57aShVUHQsInJvb3QiKX0pO2Z1bmN0aW9uIEdQdCh0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdHJvbmciLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC5hbGwoZSl9O3JldHVybiB0LnBhdGNoKGUsciksdC5hcHBseURhdGEoZSxyKX12YXIgWVB0PXUoKCk9PntpKEdQdCwic3Ryb25nIil9KTtmdW5jdGlvbiBLUHQodCxlKXtsZXQgcj10LmFsbChlKSxhPXIuc2hpZnQoKSxzPVtdO2lmKGEpe2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0aGVhZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAoW2FdLCEwKX07dC5wYXRjaChlLmNoaWxkcmVuWzBdLG8pLHMucHVzaChvKX1pZihyLmxlbmd0aD4wKXtsZXQgbz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGJvZHkiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKHIsITApfSxsPVcxZShlLmNoaWxkcmVuWzFdKSxjPVUxZShlLmNoaWxkcmVuW2UuY2hpbGRyZW4ubGVuZ3RoLTFdKTtsJiZjJiYoby5wb3NpdGlvbj17c3RhcnQ6bCxlbmQ6Y30pLHMucHVzaChvKX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGFibGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKHMsITApfTtyZXR1cm4gdC5wYXRjaChlLG4pLHQuYXBwbHlEYXRhKGUsbil9dmFyIFpQdD11KCgpPT57RzFlKCk7aShLUHQsInRhYmxlIil9KTtmdW5jdGlvbiBRUHQodCxlLHIpe2xldCBhPXI/ci5jaGlsZHJlbjp2b2lkIDAsbj0oYT9hLmluZGV4T2YoZSk6MSk9PT0wPyJ0aCI6InRkIixvPXImJnIudHlwZT09PSJ0YWJsZSI/ci5hbGlnbjp2b2lkIDAsbD1vP28ubGVuZ3RoOmUuY2hpbGRyZW4ubGVuZ3RoLGM9LTEsZD1bXTtmb3IoOysrYzxsOyl7bGV0IHA9ZS5jaGlsZHJlbltjXSxoPXt9LG09bz9vW2NdOnZvaWQgMDttJiYoaC5hbGlnbj1tKTtsZXQgdj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTpuLHByb3BlcnRpZXM6aCxjaGlsZHJlbjpbXX07cCYmKHYuY2hpbGRyZW49dC5hbGwocCksdC5wYXRjaChwLHYpLHY9dC5hcHBseURhdGEocCx2KSksZC5wdXNoKHYpfWxldCBmPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ciIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAoZCwhMCl9O3JldHVybiB0LnBhdGNoKGUsZiksdC5hcHBseURhdGEoZSxmKX12YXIgWFB0PXUoKCk9PntpKFFQdCwidGFibGVSb3ciKX0pO2Z1bmN0aW9uIEpQdCh0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBlTnQ9dSgoKT0+e2koSlB0LCJ0YWJsZUNlbGwiKX0pO2Z1bmN0aW9uIHJOdCh0KXtsZXQgZT1TdHJpbmcodCkscj0vXHI/XG58XHIvZyxhPXIuZXhlYyhlKSxzPTAsbj1bXTtmb3IoO2E7KW4ucHVzaCh0TnQoZS5zbGljZShzLGEuaW5kZXgpLHM+MCwhMCksYVswXSkscz1hLmluZGV4K2FbMF0ubGVuZ3RoLGE9ci5leGVjKGUpO3JldHVybiBuLnB1c2godE50KGUuc2xpY2Uocykscz4wLCExKSksbi5qb2luKCIiKX1mdW5jdGlvbiB0TnQodCxlLHIpe2xldCBhPTAscz10Lmxlbmd0aDtpZihlKXtsZXQgbj10LmNvZGVQb2ludEF0KGEpO2Zvcig7bj09PTl8fG49PT0zMjspYSsrLG49dC5jb2RlUG9pbnRBdChhKX1pZihyKXtsZXQgbj10LmNvZGVQb2ludEF0KHMtMSk7Zm9yKDtuPT09OXx8bj09PTMyOylzLS0sbj10LmNvZGVQb2ludEF0KHMtMSl9cmV0dXJuIHM+YT90LnNsaWNlKGEscyk6IiJ9dmFyIFVycyxXcnMsYU50PXUoKCk9PntVcnM9OSxXcnM9MzI7aShyTnQsInRyaW1MaW5lcyIpO2kodE50LCJ0cmltTGluZSIpfSk7ZnVuY3Rpb24gaU50KHQsZSl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOnJOdChTdHJpbmcoZS52YWx1ZSkpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIHNOdD11KCgpPT57YU50KCk7aShpTnQsInRleHQiKX0pO2Z1bmN0aW9uIG5OdCh0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJociIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBvTnQ9dSgoKT0+e2kobk50LCJ0aGVtYXRpY0JyZWFrIil9KTtmdW5jdGlvbiBaMWUoKXt9dmFyIEl5ZSxQeWU9dSgoKT0+e2ZQdCgpO21QdCgpO2JQdCgpO3ZQdCgpO3dQdCgpO1NQdCgpO0NQdCgpO19QdCgpO0xQdCgpOyRQdCgpO0VQdCgpO1BQdCgpO09QdCgpO0JQdCgpO3FQdCgpO2pQdCgpO1dQdCgpO1lQdCgpO1pQdCgpO1hQdCgpO2VOdCgpO3NOdCgpO29OdCgpO0l5ZT17YmxvY2txdW90ZTpwUHQsYnJlYWs6aFB0LGNvZGU6Z1B0LGRlbGV0ZTp4UHQsZW1waGFzaXM6eVB0LGZvb3Rub3RlUmVmZXJlbmNlOmtQdCxoZWFkaW5nOk1QdCxodG1sOnpQdCxpbWFnZVJlZmVyZW5jZTpUUHQsaW1hZ2U6RFB0LGlubGluZUNvZGU6QVB0LGxpbmtSZWZlcmVuY2U6SVB0LGxpbms6TlB0LGxpc3RJdGVtOkZQdCxsaXN0OkhQdCxwYXJhZ3JhcGg6VlB0LHJvb3Q6VVB0LHN0cm9uZzpHUHQsdGFibGU6S1B0LHRhYmxlQ2VsbDpKUHQsdGFibGVSb3c6UVB0LHRleHQ6aU50LHRoZW1hdGljQnJlYWs6bk50LHRvbWw6WjFlLHlhbWw6WjFlLGRlZmluaXRpb246WjFlLGZvb3Rub3RlRGVmaW5pdGlvbjpaMWV9O2koWjFlLCJpZ25vcmUiKX0pO2Z1bmN0aW9uIGxOdCh0LGUpe2xldCByPVt7dHlwZToidGV4dCIsdmFsdWU6Ilx1MjFBOSJ9XTtyZXR1cm4gZT4xJiZyLnB1c2goe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN1cCIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOlN0cmluZyhlKX1dfSkscn1mdW5jdGlvbiBjTnQodCxlKXtyZXR1cm4iQmFjayB0byByZWZlcmVuY2UgIisodCsxKSsoZT4xPyItIitlOiIiKX1mdW5jdGlvbiBkTnQodCl7bGV0IGU9dHlwZW9mIHQub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj90Lm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIscj10Lm9wdGlvbnMuZm9vdG5vdGVCYWNrQ29udGVudHx8bE50LGE9dC5vcHRpb25zLmZvb3Rub3RlQmFja0xhYmVsfHxjTnQscz10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbHx8IkZvb3Rub3RlcyIsbj10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbFRhZ05hbWV8fCJoMiIsbz10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbFByb3BlcnRpZXN8fHtjbGFzc05hbWU6WyJzci1vbmx5Il19LGw9W10sYz0tMTtmb3IoOysrYzx0LmZvb3Rub3RlT3JkZXIubGVuZ3RoOyl7bGV0IGQ9dC5mb290bm90ZUJ5SWQuZ2V0KHQuZm9vdG5vdGVPcmRlcltjXSk7aWYoIWQpY29udGludWU7bGV0IGY9dC5hbGwoZCkscD1TdHJpbmcoZC5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGg9RzEocC50b0xvd2VyQ2FzZSgpKSxtPTAsdj1bXSxiPXQuZm9vdG5vdGVDb3VudHMuZ2V0KHApO2Zvcig7YiE9PXZvaWQgMCYmKyttPD1iOyl7di5sZW5ndGg+MCYmdi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KTtsZXQgaz10eXBlb2Ygcj09InN0cmluZyI/cjpyKGMsbSk7dHlwZW9mIGs9PSJzdHJpbmciJiYoaz17dHlwZToidGV4dCIsdmFsdWU6a30pLHYucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczp7aHJlZjoiIyIrZSsiZm5yZWYtIitoKyhtPjE/Ii0iK206IiIpLGRhdGFGb290bm90ZUJhY2tyZWY6IiIsYXJpYUxhYmVsOnR5cGVvZiBhPT0ic3RyaW5nIj9hOmEoYyxtKSxjbGFzc05hbWU6WyJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiXX0sY2hpbGRyZW46QXJyYXkuaXNBcnJheShrKT9rOltrXX0pfWxldCBnPWZbZi5sZW5ndGgtMV07aWYoZyYmZy50eXBlPT09ImVsZW1lbnQiJiZnLnRhZ05hbWU9PT0icCIpe2xldCBrPWcuY2hpbGRyZW5bZy5jaGlsZHJlbi5sZW5ndGgtMV07ayYmay50eXBlPT09InRleHQiP2sudmFsdWUrPSIgIjpnLmNoaWxkcmVuLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pLGcuY2hpbGRyZW4ucHVzaCguLi52KX1lbHNlIGYucHVzaCguLi52KTtsZXQgeT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToibGkiLHByb3BlcnRpZXM6e2lkOmUrImZuLSIraH0sY2hpbGRyZW46dC53cmFwKGYsITApfTt0LnBhdGNoKGQseSksbC5wdXNoKHkpfWlmKGwubGVuZ3RoIT09MClyZXR1cm57dHlwZToiZWxlbWVudCIsdGFnTmFtZToic2VjdGlvbiIscHJvcGVydGllczp7ZGF0YUZvb3Rub3RlczohMCxjbGFzc05hbWU6WyJmb290bm90ZXMiXX0sY2hpbGRyZW46W3t0eXBlOiJlbGVtZW50Iix0YWdOYW1lOm4scHJvcGVydGllczp7Li4uQXUobyksaWQ6ImZvb3Rub3RlLWxhYmVsIn0sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpzfV19LHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9LHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJvbCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAobCwhMCl9LHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9XX19dmFyIE55ZT11KCgpPT57ajFlKCk7djAoKTtpKGxOdCwiZGVmYXVsdEZvb3Rub3RlQmFja0NvbnRlbnQiKTtpKGNOdCwiZGVmYXVsdEZvb3Rub3RlQmFja0xhYmVsIik7aShkTnQsImZvb3RlciIpfSk7ZnVuY3Rpb24gcE50KHQsZSl7bGV0IHI9ZXx8UzZhLGE9bmV3IE1hcCxzPW5ldyBNYXAsbj1uZXcgTWFwLG89ey4uLkl5ZSwuLi5yLmhhbmRsZXJzfSxsPXthbGw6ZCxhcHBseURhdGE6QzZhLGRlZmluaXRpb25CeUlkOmEsZm9vdG5vdGVCeUlkOnMsZm9vdG5vdGVDb3VudHM6bixmb290bm90ZU9yZGVyOltdLGhhbmRsZXJzOm8sb25lOmMsb3B0aW9uczpyLHBhdGNoOk02YSx3cmFwOl82YX07cmV0dXJuIENNKHQsZnVuY3Rpb24oZil7aWYoZi50eXBlPT09ImRlZmluaXRpb24ifHxmLnR5cGU9PT0iZm9vdG5vdGVEZWZpbml0aW9uIil7bGV0IHA9Zi50eXBlPT09ImRlZmluaXRpb24iP2E6cyxoPVN0cmluZyhmLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCk7cC5oYXMoaCl8fHAuc2V0KGgsZil9fSksbDtmdW5jdGlvbiBjKGYscCl7bGV0IGg9Zi50eXBlLG09bC5oYW5kbGVyc1toXTtpZihPeWUuY2FsbChsLmhhbmRsZXJzLGgpJiZtKXJldHVybiBtKGwsZixwKTtpZihsLm9wdGlvbnMucGFzc1Rocm91Z2gmJmwub3B0aW9ucy5wYXNzVGhyb3VnaC5pbmNsdWRlcyhoKSl7aWYoImNoaWxkcmVuImluIGYpe2xldHtjaGlsZHJlbjpiLC4uLmd9PWYseT1BdShnKTtyZXR1cm4geS5jaGlsZHJlbj1sLmFsbChmKSx5fXJldHVybiBBdShmKX1yZXR1cm4obC5vcHRpb25zLnVua25vd25IYW5kbGVyfHx6NmEpKGwsZixwKX1pKGMsIm9uZSIpO2Z1bmN0aW9uIGQoZil7bGV0IHA9W107aWYoImNoaWxkcmVuImluIGYpe2xldCBoPWYuY2hpbGRyZW4sbT0tMTtmb3IoOysrbTxoLmxlbmd0aDspe2xldCB2PWwub25lKGhbbV0sZik7aWYodil7aWYobSYmaFttLTFdLnR5cGU9PT0iYnJlYWsiJiYoIUFycmF5LmlzQXJyYXkodikmJnYudHlwZT09PSJ0ZXh0IiYmKHYudmFsdWU9dU50KHYudmFsdWUpKSwhQXJyYXkuaXNBcnJheSh2KSYmdi50eXBlPT09ImVsZW1lbnQiKSl7bGV0IGI9di5jaGlsZHJlblswXTtiJiZiLnR5cGU9PT0idGV4dCImJihiLnZhbHVlPXVOdChiLnZhbHVlKSl9QXJyYXkuaXNBcnJheSh2KT9wLnB1c2goLi4udik6cC5wdXNoKHYpfX19cmV0dXJuIHB9aShkLCJhbGwiKX1mdW5jdGlvbiBNNmEodCxlKXt0LnBvc2l0aW9uJiYoZS5wb3NpdGlvbj1CTSh0KSl9ZnVuY3Rpb24gQzZhKHQsZSl7bGV0IHI9ZTtpZih0JiZ0LmRhdGEpe2xldCBhPXQuZGF0YS5oTmFtZSxzPXQuZGF0YS5oQ2hpbGRyZW4sbj10LmRhdGEuaFByb3BlcnRpZXM7aWYodHlwZW9mIGE9PSJzdHJpbmciKWlmKHIudHlwZT09PSJlbGVtZW50IilyLnRhZ05hbWU9YTtlbHNle2xldCBvPSJjaGlsZHJlbiJpbiByP3IuY2hpbGRyZW46W3JdO3I9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6YSxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOm99fXIudHlwZT09PSJlbGVtZW50IiYmbiYmT2JqZWN0LmFzc2lnbihyLnByb3BlcnRpZXMsQXUobikpLCJjaGlsZHJlbiJpbiByJiZyLmNoaWxkcmVuJiZzIT09bnVsbCYmcyE9PXZvaWQgMCYmKHIuY2hpbGRyZW49cyl9cmV0dXJuIHJ9ZnVuY3Rpb24gejZhKHQsZSl7bGV0IHI9ZS5kYXRhfHx7fSxhPSJ2YWx1ZSJpbiBlJiYhKE95ZS5jYWxsKHIsImhQcm9wZXJ0aWVzIil8fE95ZS5jYWxsKHIsImhDaGlsZHJlbiIpKT97dHlwZToidGV4dCIsdmFsdWU6ZS52YWx1ZX06e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImRpdiIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxhKSx0LmFwcGx5RGF0YShlLGEpfWZ1bmN0aW9uIF82YSh0LGUpe2xldCByPVtdLGE9LTE7Zm9yKGUmJnIucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7KythPHQubGVuZ3RoOylhJiZyLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLHIucHVzaCh0W2FdKTtyZXR1cm4gZSYmdC5sZW5ndGg+MCYmci5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxyfWZ1bmN0aW9uIHVOdCh0KXtsZXQgZT0wLHI9dC5jaGFyQ29kZUF0KGUpO2Zvcig7cj09PTl8fHI9PT0zMjspZSsrLHI9dC5jaGFyQ29kZUF0KGUpO3JldHVybiB0LnNsaWNlKGUpfXZhciBPeWUsUzZhLGZOdD11KCgpPT57ajFlKCk7bHZlKCk7RzFlKCk7UHllKCk7T3llPXt9Lmhhc093blByb3BlcnR5LFM2YT17fTtpKHBOdCwiY3JlYXRlU3RhdGUiKTtpKE02YSwicGF0Y2giKTtpKEM2YSwiYXBwbHlEYXRhIik7aSh6NmEsImRlZmF1bHRVbmtub3duSGFuZGxlciIpO2koXzZhLCJ3cmFwIik7aSh1TnQsInRyaW1NYXJrZG93blNwYWNlU3RhcnQiKX0pO2Z1bmN0aW9uIFJ5ZSh0LGUpe2xldCByPXBOdCh0LGUpLGE9ci5vbmUodCx2b2lkIDApLHM9ZE50KHIpLG49QXJyYXkuaXNBcnJheShhKT97dHlwZToicm9vdCIsY2hpbGRyZW46YX06YXx8e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfTtyZXR1cm4gcyYmKCJjaGlsZHJlbiJpbiBuLG4uY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSxzKSksbn12YXIgaE50PXUoKCk9PntDdSgpO055ZSgpO2ZOdCgpO2koUnllLCJ0b0hhc3QiKX0pO3ZhciBtTnQ9dSgoKT0+e1B5ZSgpO2hOdCgpO055ZSgpfSk7dmFyIGdOdCxiTnQ9dSgoKT0+e2dOdD1bImFyZWEiLCJiYXNlIiwiYmFzZWZvbnQiLCJiZ3NvdW5kIiwiYnIiLCJjb2wiLCJjb21tYW5kIiwiZW1iZWQiLCJmcmFtZSIsImhyIiwiaW1hZ2UiLCJpbWciLCJpbnB1dCIsImtleWdlbiIsImxpbmsiLCJtZXRhIiwicGFyYW0iLCJzb3VyY2UiLCJ0cmFjayIsIndiciJdfSk7dmFyIHM0LEZ5ZT11KCgpPT57czQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU2NoZW1hIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMubm9ybWFsPXIsdGhpcy5wcm9wZXJ0eT1lLGEmJih0aGlzLnNwYWNlPWEpfX07czQucHJvdG90eXBlLm5vcm1hbD17fSxzNC5wcm90b3R5cGUucHJvcGVydHk9e30sczQucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO2Z1bmN0aW9uIEJ5ZSh0LGUpe2xldCByPXt9LGE9e307Zm9yKGxldCBzIG9mIHQpT2JqZWN0LmFzc2lnbihyLHMucHJvcGVydHkpLE9iamVjdC5hc3NpZ24oYSxzLm5vcm1hbCk7cmV0dXJuIG5ldyBzNChyLGEsZSl9dmFyIHhOdD11KCgpPT57RnllKCk7aShCeWUsIm1lcmdlIil9KTtmdW5jdGlvbiB5eCh0KXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfXZhciBRMWU9dSgoKT0+e2koeXgsIm5vcm1hbGl6ZSIpfSk7dmFyIHBuLEh5ZT11KCgpPT57cG49Y2xhc3N7c3RhdGlje2kodGhpcywiSW5mbyIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5hdHRyaWJ1dGU9cix0aGlzLnByb3BlcnR5PWV9fTtwbi5wcm90b3R5cGUuYXR0cmlidXRlPSIiLHBuLnByb3RvdHlwZS5ib29sZWFuaXNoPSExLHBuLnByb3RvdHlwZS5ib29sZWFuPSExLHBuLnByb3RvdHlwZS5jb21tYU9yU3BhY2VTZXBhcmF0ZWQ9ITEscG4ucHJvdG90eXBlLmNvbW1hU2VwYXJhdGVkPSExLHBuLnByb3RvdHlwZS5kZWZpbmVkPSExLHBuLnByb3RvdHlwZS5tdXN0VXNlUHJvcGVydHk9ITEscG4ucHJvdG90eXBlLm51bWJlcj0hMSxwbi5wcm90b3R5cGUub3ZlcmxvYWRlZEJvb2xlYW49ITEscG4ucHJvdG90eXBlLnByb3BlcnR5PSIiLHBuLnByb3RvdHlwZS5zcGFjZVNlcGFyYXRlZD0hMSxwbi5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7dmFyIHFNPXt9O1ZlKHFNLHtib29sZWFuOigpPT5mcixib29sZWFuaXNoOigpPT5OaSxjb21tYU9yU3BhY2VTZXBhcmF0ZWQ6KCk9PmsxLGNvbW1hU2VwYXJhdGVkOigpPT5JdSxudW1iZXI6KCk9PnJ0LG92ZXJsb2FkZWRCb29sZWFuOigpPT5YMWUsc3BhY2VTZXBhcmF0ZWQ6KCk9PkJhfSk7ZnVuY3Rpb24gJGgoKXtyZXR1cm4gMioqKytUNmF9dmFyIFQ2YSxmcixOaSxYMWUscnQsQmEsSXUsazEsVk09dSgoKT0+e1Q2YT0wLGZyPSRoKCksTmk9JGgoKSxYMWU9JGgoKSxydD0kaCgpLEJhPSRoKCksSXU9JGgoKSxrMT0kaCgpO2koJGgsImluY3JlbWVudCIpfSk7ZnVuY3Rpb24gdk50KHQsZSxyKXtyJiYodFtlXT1yKX12YXIgcXllLEFoLFZ5ZT11KCgpPT57SHllKCk7Vk0oKTtxeWU9T2JqZWN0LmtleXMocU0pLEFoPWNsYXNzIGV4dGVuZHMgcG57c3RhdGlje2kodGhpcywiRGVmaW5lZEluZm8iKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXtsZXQgbj0tMTtpZihzdXBlcihlLHIpLHZOdCh0aGlzLCJzcGFjZSIscyksdHlwZW9mIGE9PSJudW1iZXIiKWZvcig7KytuPHF5ZS5sZW5ndGg7KXtsZXQgbz1xeWVbbl07dk50KHRoaXMscXllW25dLChhJnFNW29dKT09PXFNW29dKX19fTtBaC5wcm90b3R5cGUuZGVmaW5lZD0hMDtpKHZOdCwibWFyayIpfSk7ZnVuY3Rpb24gSWwodCl7bGV0IGU9e30scj17fTtmb3IobGV0W2Esc11vZiBPYmplY3QuZW50cmllcyh0LnByb3BlcnRpZXMpKXtsZXQgbj1uZXcgQWgoYSx0LnRyYW5zZm9ybSh0LmF0dHJpYnV0ZXN8fHt9LGEpLHMsdC5zcGFjZSk7dC5tdXN0VXNlUHJvcGVydHkmJnQubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKGEpJiYobi5tdXN0VXNlUHJvcGVydHk9ITApLGVbYV09bixyW3l4KGEpXT1hLHJbeXgobi5hdHRyaWJ1dGUpXT1hfXJldHVybiBuZXcgczQoZSxyLHQuc3BhY2UpfXZhciBFaD11KCgpPT57UTFlKCk7VnllKCk7RnllKCk7aShJbCwiY3JlYXRlIil9KTt2YXIganllLHlOdD11KCgpPT57RWgoKTtWTSgpO2p5ZT1JbCh7cHJvcGVydGllczp7YXJpYUFjdGl2ZURlc2NlbmRhbnQ6bnVsbCxhcmlhQXRvbWljOk5pLGFyaWFBdXRvQ29tcGxldGU6bnVsbCxhcmlhQnVzeTpOaSxhcmlhQ2hlY2tlZDpOaSxhcmlhQ29sQ291bnQ6cnQsYXJpYUNvbEluZGV4OnJ0LGFyaWFDb2xTcGFuOnJ0LGFyaWFDb250cm9sczpCYSxhcmlhQ3VycmVudDpudWxsLGFyaWFEZXNjcmliZWRCeTpCYSxhcmlhRGV0YWlsczpudWxsLGFyaWFEaXNhYmxlZDpOaSxhcmlhRHJvcEVmZmVjdDpCYSxhcmlhRXJyb3JNZXNzYWdlOm51bGwsYXJpYUV4cGFuZGVkOk5pLGFyaWFGbG93VG86QmEsYXJpYUdyYWJiZWQ6TmksYXJpYUhhc1BvcHVwOm51bGwsYXJpYUhpZGRlbjpOaSxhcmlhSW52YWxpZDpudWxsLGFyaWFLZXlTaG9ydGN1dHM6bnVsbCxhcmlhTGFiZWw6bnVsbCxhcmlhTGFiZWxsZWRCeTpCYSxhcmlhTGV2ZWw6cnQsYXJpYUxpdmU6bnVsbCxhcmlhTW9kYWw6TmksYXJpYU11bHRpTGluZTpOaSxhcmlhTXVsdGlTZWxlY3RhYmxlOk5pLGFyaWFPcmllbnRhdGlvbjpudWxsLGFyaWFPd25zOkJhLGFyaWFQbGFjZWhvbGRlcjpudWxsLGFyaWFQb3NJblNldDpydCxhcmlhUHJlc3NlZDpOaSxhcmlhUmVhZE9ubHk6TmksYXJpYVJlbGV2YW50Om51bGwsYXJpYVJlcXVpcmVkOk5pLGFyaWFSb2xlRGVzY3JpcHRpb246QmEsYXJpYVJvd0NvdW50OnJ0LGFyaWFSb3dJbmRleDpydCxhcmlhUm93U3BhbjpydCxhcmlhU2VsZWN0ZWQ6TmksYXJpYVNldFNpemU6cnQsYXJpYVNvcnQ6bnVsbCxhcmlhVmFsdWVNYXg6cnQsYXJpYVZhbHVlTWluOnJ0LGFyaWFWYWx1ZU5vdzpydCxhcmlhVmFsdWVUZXh0Om51bGwscm9sZTpudWxsfSx0cmFuc2Zvcm0odCxlKXtyZXR1cm4gZT09PSJyb2xlIj9lOiJhcmlhLSIrZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpfX0pfSk7ZnVuY3Rpb24gSjFlKHQsZSl7cmV0dXJuIGUgaW4gdD90W2VdOmV9dmFyIFV5ZT11KCgpPT57aShKMWUsImNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0iKX0pO2Z1bmN0aW9uIGVsZSh0LGUpe3JldHVybiBKMWUodCxlLnRvTG93ZXJDYXNlKCkpfXZhciBXeWU9dSgoKT0+e1V5ZSgpO2koZWxlLCJjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0iKX0pO3ZhciB3TnQsa050PXUoKCk9PntXeWUoKTtFaCgpO1ZNKCk7d050PUlsKHthdHRyaWJ1dGVzOnthY2NlcHRjaGFyc2V0OiJhY2NlcHQtY2hhcnNldCIsY2xhc3NuYW1lOiJjbGFzcyIsaHRtbGZvcjoiZm9yIixodHRwZXF1aXY6Imh0dHAtZXF1aXYifSxtdXN0VXNlUHJvcGVydHk6WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0scHJvcGVydGllczp7YWJicjpudWxsLGFjY2VwdDpJdSxhY2NlcHRDaGFyc2V0OkJhLGFjY2Vzc0tleTpCYSxhY3Rpb246bnVsbCxhbGxvdzpudWxsLGFsbG93RnVsbFNjcmVlbjpmcixhbGxvd1BheW1lbnRSZXF1ZXN0OmZyLGFsbG93VXNlck1lZGlhOmZyLGFsdDpudWxsLGFzOm51bGwsYXN5bmM6ZnIsYXV0b0NhcGl0YWxpemU6bnVsbCxhdXRvQ29tcGxldGU6QmEsYXV0b0ZvY3VzOmZyLGF1dG9QbGF5OmZyLGJsb2NraW5nOkJhLGNhcHR1cmU6bnVsbCxjaGFyU2V0Om51bGwsY2hlY2tlZDpmcixjaXRlOm51bGwsY2xhc3NOYW1lOkJhLGNvbHM6cnQsY29sU3BhbjpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50RWRpdGFibGU6TmksY29udHJvbHM6ZnIsY29udHJvbHNMaXN0OkJhLGNvb3JkczpydHxJdSxjcm9zc09yaWdpbjpudWxsLGRhdGE6bnVsbCxkYXRlVGltZTpudWxsLGRlY29kaW5nOm51bGwsZGVmYXVsdDpmcixkZWZlcjpmcixkaXI6bnVsbCxkaXJOYW1lOm51bGwsZGlzYWJsZWQ6ZnIsZG93bmxvYWQ6WDFlLGRyYWdnYWJsZTpOaSxlbmNUeXBlOm51bGwsZW50ZXJLZXlIaW50Om51bGwsZmV0Y2hQcmlvcml0eTpudWxsLGZvcm06bnVsbCxmb3JtQWN0aW9uOm51bGwsZm9ybUVuY1R5cGU6bnVsbCxmb3JtTWV0aG9kOm51bGwsZm9ybU5vVmFsaWRhdGU6ZnIsZm9ybVRhcmdldDpudWxsLGhlYWRlcnM6QmEsaGVpZ2h0OnJ0LGhpZGRlbjpYMWUsaGlnaDpydCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxodG1sRm9yOkJhLGh0dHBFcXVpdjpCYSxpZDpudWxsLGltYWdlU2l6ZXM6bnVsbCxpbWFnZVNyY1NldDpudWxsLGluZXJ0OmZyLGlucHV0TW9kZTpudWxsLGludGVncml0eTpudWxsLGlzOm51bGwsaXNNYXA6ZnIsaXRlbUlkOm51bGwsaXRlbVByb3A6QmEsaXRlbVJlZjpCYSxpdGVtU2NvcGU6ZnIsaXRlbVR5cGU6QmEsa2luZDpudWxsLGxhYmVsOm51bGwsbGFuZzpudWxsLGxhbmd1YWdlOm51bGwsbGlzdDpudWxsLGxvYWRpbmc6bnVsbCxsb29wOmZyLGxvdzpydCxtYW5pZmVzdDpudWxsLG1heDpudWxsLG1heExlbmd0aDpydCxtZWRpYTpudWxsLG1ldGhvZDpudWxsLG1pbjpudWxsLG1pbkxlbmd0aDpydCxtdWx0aXBsZTpmcixtdXRlZDpmcixuYW1lOm51bGwsbm9uY2U6bnVsbCxub01vZHVsZTpmcixub1ZhbGlkYXRlOmZyLG9uQWJvcnQ6bnVsbCxvbkFmdGVyUHJpbnQ6bnVsbCxvbkF1eENsaWNrOm51bGwsb25CZWZvcmVNYXRjaDpudWxsLG9uQmVmb3JlUHJpbnQ6bnVsbCxvbkJlZm9yZVRvZ2dsZTpudWxsLG9uQmVmb3JlVW5sb2FkOm51bGwsb25CbHVyOm51bGwsb25DYW5jZWw6bnVsbCxvbkNhblBsYXk6bnVsbCxvbkNhblBsYXlUaHJvdWdoOm51bGwsb25DaGFuZ2U6bnVsbCxvbkNsaWNrOm51bGwsb25DbG9zZTpudWxsLG9uQ29udGV4dExvc3Q6bnVsbCxvbkNvbnRleHRNZW51Om51bGwsb25Db250ZXh0UmVzdG9yZWQ6bnVsbCxvbkNvcHk6bnVsbCxvbkN1ZUNoYW5nZTpudWxsLG9uQ3V0Om51bGwsb25EYmxDbGljazpudWxsLG9uRHJhZzpudWxsLG9uRHJhZ0VuZDpudWxsLG9uRHJhZ0VudGVyOm51bGwsb25EcmFnRXhpdDpudWxsLG9uRHJhZ0xlYXZlOm51bGwsb25EcmFnT3ZlcjpudWxsLG9uRHJhZ1N0YXJ0Om51bGwsb25Ecm9wOm51bGwsb25EdXJhdGlvbkNoYW5nZTpudWxsLG9uRW1wdGllZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9ybURhdGE6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxhbmd1YWdlQ2hhbmdlOm51bGwsb25Mb2FkOm51bGwsb25Mb2FkZWREYXRhOm51bGwsb25Mb2FkZWRNZXRhZGF0YTpudWxsLG9uTG9hZEVuZDpudWxsLG9uTG9hZFN0YXJ0Om51bGwsb25NZXNzYWdlOm51bGwsb25NZXNzYWdlRXJyb3I6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlamVjdGlvbkhhbmRsZWQ6bnVsbCxvblJlc2V0Om51bGwsb25SZXNpemU6bnVsbCxvblNjcm9sbDpudWxsLG9uU2Nyb2xsRW5kOm51bGwsb25TZWN1cml0eVBvbGljeVZpb2xhdGlvbjpudWxsLG9uU2Vla2VkOm51bGwsb25TZWVraW5nOm51bGwsb25TZWxlY3Q6bnVsbCxvblNsb3RDaGFuZ2U6bnVsbCxvblN0YWxsZWQ6bnVsbCxvblN0b3JhZ2U6bnVsbCxvblN1Ym1pdDpudWxsLG9uU3VzcGVuZDpudWxsLG9uVGltZVVwZGF0ZTpudWxsLG9uVG9nZ2xlOm51bGwsb25VbmhhbmRsZWRSZWplY3Rpb246bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25XaGVlbDpudWxsLG9wZW46ZnIsb3B0aW11bTpydCxwYXR0ZXJuOm51bGwscGluZzpCYSxwbGFjZWhvbGRlcjpudWxsLHBsYXlzSW5saW5lOmZyLHBvcG92ZXI6bnVsbCxwb3BvdmVyVGFyZ2V0Om51bGwscG9wb3ZlclRhcmdldEFjdGlvbjpudWxsLHBvc3RlcjpudWxsLHByZWxvYWQ6bnVsbCxyZWFkT25seTpmcixyZWZlcnJlclBvbGljeTpudWxsLHJlbDpCYSxyZXF1aXJlZDpmcixyZXZlcnNlZDpmcixyb3dzOnJ0LHJvd1NwYW46cnQsc2FuZGJveDpCYSxzY29wZTpudWxsLHNjb3BlZDpmcixzZWFtbGVzczpmcixzZWxlY3RlZDpmcixzaGFkb3dSb290Q2xvbmFibGU6ZnIsc2hhZG93Um9vdERlbGVnYXRlc0ZvY3VzOmZyLHNoYWRvd1Jvb3RNb2RlOm51bGwsc2hhcGU6bnVsbCxzaXplOnJ0LHNpemVzOm51bGwsc2xvdDpudWxsLHNwYW46cnQsc3BlbGxDaGVjazpOaSxzcmM6bnVsbCxzcmNEb2M6bnVsbCxzcmNMYW5nOm51bGwsc3JjU2V0Om51bGwsc3RhcnQ6cnQsc3RlcDpudWxsLHN0eWxlOm51bGwsdGFiSW5kZXg6cnQsdGFyZ2V0Om51bGwsdGl0bGU6bnVsbCx0cmFuc2xhdGU6bnVsbCx0eXBlOm51bGwsdHlwZU11c3RNYXRjaDpmcix1c2VNYXA6bnVsbCx2YWx1ZTpOaSx3aWR0aDpydCx3cmFwOm51bGwsd3JpdGluZ1N1Z2dlc3Rpb25zOm51bGwsYWxpZ246bnVsbCxhTGluazpudWxsLGFyY2hpdmU6QmEsYXhpczpudWxsLGJhY2tncm91bmQ6bnVsbCxiZ0NvbG9yOm51bGwsYm9yZGVyOnJ0LGJvcmRlckNvbG9yOm51bGwsYm90dG9tTWFyZ2luOnJ0LGNlbGxQYWRkaW5nOm51bGwsY2VsbFNwYWNpbmc6bnVsbCxjaGFyOm51bGwsY2hhck9mZjpudWxsLGNsYXNzSWQ6bnVsbCxjbGVhcjpudWxsLGNvZGU6bnVsbCxjb2RlQmFzZTpudWxsLGNvZGVUeXBlOm51bGwsY29sb3I6bnVsbCxjb21wYWN0OmZyLGRlY2xhcmU6ZnIsZXZlbnQ6bnVsbCxmYWNlOm51bGwsZnJhbWU6bnVsbCxmcmFtZUJvcmRlcjpudWxsLGhTcGFjZTpydCxsZWZ0TWFyZ2luOnJ0LGxpbms6bnVsbCxsb25nRGVzYzpudWxsLGxvd1NyYzpudWxsLG1hcmdpbkhlaWdodDpydCxtYXJnaW5XaWR0aDpydCxub1Jlc2l6ZTpmcixub0hyZWY6ZnIsbm9TaGFkZTpmcixub1dyYXA6ZnIsb2JqZWN0Om51bGwscHJvZmlsZTpudWxsLHByb21wdDpudWxsLHJldjpudWxsLHJpZ2h0TWFyZ2luOnJ0LHJ1bGVzOm51bGwsc2NoZW1lOm51bGwsc2Nyb2xsaW5nOk5pLHN0YW5kYnk6bnVsbCxzdW1tYXJ5Om51bGwsdGV4dDpudWxsLHRvcE1hcmdpbjpydCx2YWx1ZVR5cGU6bnVsbCx2ZXJzaW9uOm51bGwsdkFsaWduOm51bGwsdkxpbms6bnVsbCx2U3BhY2U6cnQsYWxsb3dUcmFuc3BhcmVuY3k6bnVsbCxhdXRvQ29ycmVjdDpudWxsLGF1dG9TYXZlOm51bGwsZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6ZnIsZGlzYWJsZVJlbW90ZVBsYXliYWNrOmZyLHByZWZpeDpudWxsLHByb3BlcnR5Om51bGwscmVzdWx0czpydCxzZWN1cml0eTpudWxsLHVuc2VsZWN0YWJsZTpudWxsfSxzcGFjZToiaHRtbCIsdHJhbnNmb3JtOmVsZX0pfSk7dmFyIFNOdCxNTnQ9dSgoKT0+e1V5ZSgpO0VoKCk7Vk0oKTtTTnQ9SWwoe2F0dHJpYnV0ZXM6e2FjY2VudEhlaWdodDoiYWNjZW50LWhlaWdodCIsYWxpZ25tZW50QmFzZWxpbmU6ImFsaWdubWVudC1iYXNlbGluZSIsYXJhYmljRm9ybToiYXJhYmljLWZvcm0iLGJhc2VsaW5lU2hpZnQ6ImJhc2VsaW5lLXNoaWZ0IixjYXBIZWlnaHQ6ImNhcC1oZWlnaHQiLGNsYXNzTmFtZToiY2xhc3MiLGNsaXBQYXRoOiJjbGlwLXBhdGgiLGNsaXBSdWxlOiJjbGlwLXJ1bGUiLGNvbG9ySW50ZXJwb2xhdGlvbjoiY29sb3ItaW50ZXJwb2xhdGlvbiIsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczoiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIixjb2xvclByb2ZpbGU6ImNvbG9yLXByb2ZpbGUiLGNvbG9yUmVuZGVyaW5nOiJjb2xvci1yZW5kZXJpbmciLGNyb3NzT3JpZ2luOiJjcm9zc29yaWdpbiIsZGF0YVR5cGU6ImRhdGF0eXBlIixkb21pbmFudEJhc2VsaW5lOiJkb21pbmFudC1iYXNlbGluZSIsZW5hYmxlQmFja2dyb3VuZDoiZW5hYmxlLWJhY2tncm91bmQiLGZpbGxPcGFjaXR5OiJmaWxsLW9wYWNpdHkiLGZpbGxSdWxlOiJmaWxsLXJ1bGUiLGZsb29kQ29sb3I6ImZsb29kLWNvbG9yIixmbG9vZE9wYWNpdHk6ImZsb29kLW9wYWNpdHkiLGZvbnRGYW1pbHk6ImZvbnQtZmFtaWx5Iixmb250U2l6ZToiZm9udC1zaXplIixmb250U2l6ZUFkanVzdDoiZm9udC1zaXplLWFkanVzdCIsZm9udFN0cmV0Y2g6ImZvbnQtc3RyZXRjaCIsZm9udFN0eWxlOiJmb250LXN0eWxlIixmb250VmFyaWFudDoiZm9udC12YXJpYW50Iixmb250V2VpZ2h0OiJmb250LXdlaWdodCIsZ2x5cGhOYW1lOiJnbHlwaC1uYW1lIixnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDoiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsaHJlZkxhbmc6ImhyZWZsYW5nIixob3JpekFkdlg6Imhvcml6LWFkdi14Iixob3Jpek9yaWdpblg6Imhvcml6LW9yaWdpbi14Iixob3Jpek9yaWdpblk6Imhvcml6LW9yaWdpbi15IixpbWFnZVJlbmRlcmluZzoiaW1hZ2UtcmVuZGVyaW5nIixsZXR0ZXJTcGFjaW5nOiJsZXR0ZXItc3BhY2luZyIsbGlnaHRpbmdDb2xvcjoibGlnaHRpbmctY29sb3IiLG1hcmtlckVuZDoibWFya2VyLWVuZCIsbWFya2VyTWlkOiJtYXJrZXItbWlkIixtYXJrZXJTdGFydDoibWFya2VyLXN0YXJ0IixuYXZEb3duOiJuYXYtZG93biIsbmF2RG93bkxlZnQ6Im5hdi1kb3duLWxlZnQiLG5hdkRvd25SaWdodDoibmF2LWRvd24tcmlnaHQiLG5hdkxlZnQ6Im5hdi1sZWZ0IixuYXZOZXh0OiJuYXYtbmV4dCIsbmF2UHJldjoibmF2LXByZXYiLG5hdlJpZ2h0OiJuYXYtcmlnaHQiLG5hdlVwOiJuYXYtdXAiLG5hdlVwTGVmdDoibmF2LXVwLWxlZnQiLG5hdlVwUmlnaHQ6Im5hdi11cC1yaWdodCIsb25BYm9ydDoib25hYm9ydCIsb25BY3RpdmF0ZToib25hY3RpdmF0ZSIsb25BZnRlclByaW50OiJvbmFmdGVycHJpbnQiLG9uQmVmb3JlUHJpbnQ6Im9uYmVmb3JlcHJpbnQiLG9uQmVnaW46Im9uYmVnaW4iLG9uQ2FuY2VsOiJvbmNhbmNlbCIsb25DYW5QbGF5OiJvbmNhbnBsYXkiLG9uQ2FuUGxheVRocm91Z2g6Im9uY2FucGxheXRocm91Z2giLG9uQ2hhbmdlOiJvbmNoYW5nZSIsb25DbGljazoib25jbGljayIsb25DbG9zZToib25jbG9zZSIsb25Db3B5OiJvbmNvcHkiLG9uQ3VlQ2hhbmdlOiJvbmN1ZWNoYW5nZSIsb25DdXQ6Im9uY3V0IixvbkRibENsaWNrOiJvbmRibGNsaWNrIixvbkRyYWc6Im9uZHJhZyIsb25EcmFnRW5kOiJvbmRyYWdlbmQiLG9uRHJhZ0VudGVyOiJvbmRyYWdlbnRlciIsb25EcmFnRXhpdDoib25kcmFnZXhpdCIsb25EcmFnTGVhdmU6Im9uZHJhZ2xlYXZlIixvbkRyYWdPdmVyOiJvbmRyYWdvdmVyIixvbkRyYWdTdGFydDoib25kcmFnc3RhcnQiLG9uRHJvcDoib25kcm9wIixvbkR1cmF0aW9uQ2hhbmdlOiJvbmR1cmF0aW9uY2hhbmdlIixvbkVtcHRpZWQ6Im9uZW1wdGllZCIsb25FbmQ6Im9uZW5kIixvbkVuZGVkOiJvbmVuZGVkIixvbkVycm9yOiJvbmVycm9yIixvbkZvY3VzOiJvbmZvY3VzIixvbkZvY3VzSW46Im9uZm9jdXNpbiIsb25Gb2N1c091dDoib25mb2N1c291dCIsb25IYXNoQ2hhbmdlOiJvbmhhc2hjaGFuZ2UiLG9uSW5wdXQ6Im9uaW5wdXQiLG9uSW52YWxpZDoib25pbnZhbGlkIixvbktleURvd246Im9ua2V5ZG93biIsb25LZXlQcmVzczoib25rZXlwcmVzcyIsb25LZXlVcDoib25rZXl1cCIsb25Mb2FkOiJvbmxvYWQiLG9uTG9hZGVkRGF0YToib25sb2FkZWRkYXRhIixvbkxvYWRlZE1ldGFkYXRhOiJvbmxvYWRlZG1ldGFkYXRhIixvbkxvYWRTdGFydDoib25sb2Fkc3RhcnQiLG9uTWVzc2FnZToib25tZXNzYWdlIixvbk1vdXNlRG93bjoib25tb3VzZWRvd24iLG9uTW91c2VFbnRlcjoib25tb3VzZWVudGVyIixvbk1vdXNlTGVhdmU6Im9ubW91c2VsZWF2ZSIsb25Nb3VzZU1vdmU6Im9ubW91c2Vtb3ZlIixvbk1vdXNlT3V0OiJvbm1vdXNlb3V0Iixvbk1vdXNlT3Zlcjoib25tb3VzZW92ZXIiLG9uTW91c2VVcDoib25tb3VzZXVwIixvbk1vdXNlV2hlZWw6Im9ubW91c2V3aGVlbCIsb25PZmZsaW5lOiJvbm9mZmxpbmUiLG9uT25saW5lOiJvbm9ubGluZSIsb25QYWdlSGlkZToib25wYWdlaGlkZSIsb25QYWdlU2hvdzoib25wYWdlc2hvdyIsb25QYXN0ZToib25wYXN0ZSIsb25QYXVzZToib25wYXVzZSIsb25QbGF5OiJvbnBsYXkiLG9uUGxheWluZzoib25wbGF5aW5nIixvblBvcFN0YXRlOiJvbnBvcHN0YXRlIixvblByb2dyZXNzOiJvbnByb2dyZXNzIixvblJhdGVDaGFuZ2U6Im9ucmF0ZWNoYW5nZSIsb25SZXBlYXQ6Im9ucmVwZWF0IixvblJlc2V0OiJvbnJlc2V0IixvblJlc2l6ZToib25yZXNpemUiLG9uU2Nyb2xsOiJvbnNjcm9sbCIsb25TZWVrZWQ6Im9uc2Vla2VkIixvblNlZWtpbmc6Im9uc2Vla2luZyIsb25TZWxlY3Q6Im9uc2VsZWN0IixvblNob3c6Im9uc2hvdyIsb25TdGFsbGVkOiJvbnN0YWxsZWQiLG9uU3RvcmFnZToib25zdG9yYWdlIixvblN1Ym1pdDoib25zdWJtaXQiLG9uU3VzcGVuZDoib25zdXNwZW5kIixvblRpbWVVcGRhdGU6Im9udGltZXVwZGF0ZSIsb25Ub2dnbGU6Im9udG9nZ2xlIixvblVubG9hZDoib251bmxvYWQiLG9uVm9sdW1lQ2hhbmdlOiJvbnZvbHVtZWNoYW5nZSIsb25XYWl0aW5nOiJvbndhaXRpbmciLG9uWm9vbToib256b29tIixvdmVybGluZVBvc2l0aW9uOiJvdmVybGluZS1wb3NpdGlvbiIsb3ZlcmxpbmVUaGlja25lc3M6Im92ZXJsaW5lLXRoaWNrbmVzcyIscGFpbnRPcmRlcjoicGFpbnQtb3JkZXIiLHBhbm9zZTE6InBhbm9zZS0xIixwb2ludGVyRXZlbnRzOiJwb2ludGVyLWV2ZW50cyIscmVmZXJyZXJQb2xpY3k6InJlZmVycmVycG9saWN5IixyZW5kZXJpbmdJbnRlbnQ6InJlbmRlcmluZy1pbnRlbnQiLHNoYXBlUmVuZGVyaW5nOiJzaGFwZS1yZW5kZXJpbmciLHN0b3BDb2xvcjoic3RvcC1jb2xvciIsc3RvcE9wYWNpdHk6InN0b3Atb3BhY2l0eSIsc3RyaWtldGhyb3VnaFBvc2l0aW9uOiJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIixzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyIsc3Ryb2tlRGFzaEFycmF5OiJzdHJva2UtZGFzaGFycmF5IixzdHJva2VEYXNoT2Zmc2V0OiJzdHJva2UtZGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlLWxpbmVjYXAiLHN0cm9rZUxpbmVKb2luOiJzdHJva2UtbGluZWpvaW4iLHN0cm9rZU1pdGVyTGltaXQ6InN0cm9rZS1taXRlcmxpbWl0IixzdHJva2VPcGFjaXR5OiJzdHJva2Utb3BhY2l0eSIsc3Ryb2tlV2lkdGg6InN0cm9rZS13aWR0aCIsdGFiSW5kZXg6InRhYmluZGV4Iix0ZXh0QW5jaG9yOiJ0ZXh0LWFuY2hvciIsdGV4dERlY29yYXRpb246InRleHQtZGVjb3JhdGlvbiIsdGV4dFJlbmRlcmluZzoidGV4dC1yZW5kZXJpbmciLHRyYW5zZm9ybU9yaWdpbjoidHJhbnNmb3JtLW9yaWdpbiIsdHlwZU9mOiJ0eXBlb2YiLHVuZGVybGluZVBvc2l0aW9uOiJ1bmRlcmxpbmUtcG9zaXRpb24iLHVuZGVybGluZVRoaWNrbmVzczoidW5kZXJsaW5lLXRoaWNrbmVzcyIsdW5pY29kZUJpZGk6InVuaWNvZGUtYmlkaSIsdW5pY29kZVJhbmdlOiJ1bmljb2RlLXJhbmdlIix1bml0c1BlckVtOiJ1bml0cy1wZXItZW0iLHZBbHBoYWJldGljOiJ2LWFscGhhYmV0aWMiLHZIYW5naW5nOiJ2LWhhbmdpbmciLHZJZGVvZ3JhcGhpYzoidi1pZGVvZ3JhcGhpYyIsdk1hdGhlbWF0aWNhbDoidi1tYXRoZW1hdGljYWwiLHZlY3RvckVmZmVjdDoidmVjdG9yLWVmZmVjdCIsdmVydEFkdlk6InZlcnQtYWR2LXkiLHZlcnRPcmlnaW5YOiJ2ZXJ0LW9yaWdpbi14Iix2ZXJ0T3JpZ2luWToidmVydC1vcmlnaW4teSIsd29yZFNwYWNpbmc6IndvcmQtc3BhY2luZyIsd3JpdGluZ01vZGU6IndyaXRpbmctbW9kZSIseEhlaWdodDoieC1oZWlnaHQiLHBsYXliYWNrT3JkZXI6InBsYXliYWNrb3JkZXIiLHRpbWVsaW5lQmVnaW46InRpbWVsaW5lYmVnaW4ifSxwcm9wZXJ0aWVzOnthYm91dDprMSxhY2NlbnRIZWlnaHQ6cnQsYWNjdW11bGF0ZTpudWxsLGFkZGl0aXZlOm51bGwsYWxpZ25tZW50QmFzZWxpbmU6bnVsbCxhbHBoYWJldGljOnJ0LGFtcGxpdHVkZTpydCxhcmFiaWNGb3JtOm51bGwsYXNjZW50OnJ0LGF0dHJpYnV0ZU5hbWU6bnVsbCxhdHRyaWJ1dGVUeXBlOm51bGwsYXppbXV0aDpydCxiYW5kd2lkdGg6bnVsbCxiYXNlbGluZVNoaWZ0Om51bGwsYmFzZUZyZXF1ZW5jeTpudWxsLGJhc2VQcm9maWxlOm51bGwsYmJveDpudWxsLGJlZ2luOm51bGwsYmlhczpydCxieTpudWxsLGNhbGNNb2RlOm51bGwsY2FwSGVpZ2h0OnJ0LGNsYXNzTmFtZTpCYSxjbGlwOm51bGwsY2xpcFBhdGg6bnVsbCxjbGlwUGF0aFVuaXRzOm51bGwsY2xpcFJ1bGU6bnVsbCxjb2xvcjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6bnVsbCxjb2xvclByb2ZpbGU6bnVsbCxjb2xvclJlbmRlcmluZzpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50U2NyaXB0VHlwZTpudWxsLGNvbnRlbnRTdHlsZVR5cGU6bnVsbCxjcm9zc09yaWdpbjpudWxsLGN1cnNvcjpudWxsLGN4Om51bGwsY3k6bnVsbCxkOm51bGwsZGF0YVR5cGU6bnVsbCxkZWZhdWx0QWN0aW9uOm51bGwsZGVzY2VudDpydCxkaWZmdXNlQ29uc3RhbnQ6cnQsZGlyZWN0aW9uOm51bGwsZGlzcGxheTpudWxsLGR1cjpudWxsLGRpdmlzb3I6cnQsZG9taW5hbnRCYXNlbGluZTpudWxsLGRvd25sb2FkOmZyLGR4Om51bGwsZHk6bnVsbCxlZGdlTW9kZTpudWxsLGVkaXRhYmxlOm51bGwsZWxldmF0aW9uOnJ0LGVuYWJsZUJhY2tncm91bmQ6bnVsbCxlbmQ6bnVsbCxldmVudDpudWxsLGV4cG9uZW50OnJ0LGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6bnVsbCxmaWxsOm51bGwsZmlsbE9wYWNpdHk6cnQsZmlsbFJ1bGU6bnVsbCxmaWx0ZXI6bnVsbCxmaWx0ZXJSZXM6bnVsbCxmaWx0ZXJVbml0czpudWxsLGZsb29kQ29sb3I6bnVsbCxmbG9vZE9wYWNpdHk6bnVsbCxmb2N1c2FibGU6bnVsbCxmb2N1c0hpZ2hsaWdodDpudWxsLGZvbnRGYW1pbHk6bnVsbCxmb250U2l6ZTpudWxsLGZvbnRTaXplQWRqdXN0Om51bGwsZm9udFN0cmV0Y2g6bnVsbCxmb250U3R5bGU6bnVsbCxmb250VmFyaWFudDpudWxsLGZvbnRXZWlnaHQ6bnVsbCxmb3JtYXQ6bnVsbCxmcjpudWxsLGZyb206bnVsbCxmeDpudWxsLGZ5Om51bGwsZzE6SXUsZzI6SXUsZ2x5cGhOYW1lOkl1LGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOm51bGwsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOm51bGwsZ2x5cGhSZWY6bnVsbCxncmFkaWVudFRyYW5zZm9ybTpudWxsLGdyYWRpZW50VW5pdHM6bnVsbCxoYW5kbGVyOm51bGwsaGFuZ2luZzpydCxoYXRjaENvbnRlbnRVbml0czpudWxsLGhhdGNoVW5pdHM6bnVsbCxoZWlnaHQ6bnVsbCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxob3JpekFkdlg6cnQsaG9yaXpPcmlnaW5YOnJ0LGhvcml6T3JpZ2luWTpydCxpZDpudWxsLGlkZW9ncmFwaGljOnJ0LGltYWdlUmVuZGVyaW5nOm51bGwsaW5pdGlhbFZpc2liaWxpdHk6bnVsbCxpbjpudWxsLGluMjpudWxsLGludGVyY2VwdDpydCxrOnJ0LGsxOnJ0LGsyOnJ0LGszOnJ0LGs0OnJ0LGtlcm5lbE1hdHJpeDprMSxrZXJuZWxVbml0TGVuZ3RoOm51bGwsa2V5UG9pbnRzOm51bGwsa2V5U3BsaW5lczpudWxsLGtleVRpbWVzOm51bGwsa2VybmluZzpudWxsLGxhbmc6bnVsbCxsZW5ndGhBZGp1c3Q6bnVsbCxsZXR0ZXJTcGFjaW5nOm51bGwsbGlnaHRpbmdDb2xvcjpudWxsLGxpbWl0aW5nQ29uZUFuZ2xlOnJ0LGxvY2FsOm51bGwsbWFya2VyRW5kOm51bGwsbWFya2VyTWlkOm51bGwsbWFya2VyU3RhcnQ6bnVsbCxtYXJrZXJIZWlnaHQ6bnVsbCxtYXJrZXJVbml0czpudWxsLG1hcmtlcldpZHRoOm51bGwsbWFzazpudWxsLG1hc2tDb250ZW50VW5pdHM6bnVsbCxtYXNrVW5pdHM6bnVsbCxtYXRoZW1hdGljYWw6bnVsbCxtYXg6bnVsbCxtZWRpYTpudWxsLG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6bnVsbCxtZWRpYUNvbnRlbnRFbmNvZGluZ3M6bnVsbCxtZWRpYVNpemU6cnQsbWVkaWFUaW1lOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbW9kZTpudWxsLG5hbWU6bnVsbCxuYXZEb3duOm51bGwsbmF2RG93bkxlZnQ6bnVsbCxuYXZEb3duUmlnaHQ6bnVsbCxuYXZMZWZ0Om51bGwsbmF2TmV4dDpudWxsLG5hdlByZXY6bnVsbCxuYXZSaWdodDpudWxsLG5hdlVwOm51bGwsbmF2VXBMZWZ0Om51bGwsbmF2VXBSaWdodDpudWxsLG51bU9jdGF2ZXM6bnVsbCxvYnNlcnZlcjpudWxsLG9mZnNldDpudWxsLG9uQWJvcnQ6bnVsbCxvbkFjdGl2YXRlOm51bGwsb25BZnRlclByaW50Om51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVnaW46bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9jdXNJbjpudWxsLG9uRm9jdXNPdXQ6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25Nb3VzZVdoZWVsOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlcGVhdDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2hvdzpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25ab29tOm51bGwsb3BhY2l0eTpudWxsLG9wZXJhdG9yOm51bGwsb3JkZXI6bnVsbCxvcmllbnQ6bnVsbCxvcmllbnRhdGlvbjpudWxsLG9yaWdpbjpudWxsLG92ZXJmbG93Om51bGwsb3ZlcmxheTpudWxsLG92ZXJsaW5lUG9zaXRpb246cnQsb3ZlcmxpbmVUaGlja25lc3M6cnQscGFpbnRPcmRlcjpudWxsLHBhbm9zZTE6bnVsbCxwYXRoOm51bGwscGF0aExlbmd0aDpydCxwYXR0ZXJuQ29udGVudFVuaXRzOm51bGwscGF0dGVyblRyYW5zZm9ybTpudWxsLHBhdHRlcm5Vbml0czpudWxsLHBoYXNlOm51bGwscGluZzpCYSxwaXRjaDpudWxsLHBsYXliYWNrT3JkZXI6bnVsbCxwb2ludGVyRXZlbnRzOm51bGwscG9pbnRzOm51bGwscG9pbnRzQXRYOnJ0LHBvaW50c0F0WTpydCxwb2ludHNBdFo6cnQscHJlc2VydmVBbHBoYTpudWxsLHByZXNlcnZlQXNwZWN0UmF0aW86bnVsbCxwcmltaXRpdmVVbml0czpudWxsLHByb3BhZ2F0ZTpudWxsLHByb3BlcnR5OmsxLHI6bnVsbCxyYWRpdXM6bnVsbCxyZWZlcnJlclBvbGljeTpudWxsLHJlZlg6bnVsbCxyZWZZOm51bGwscmVsOmsxLHJldjprMSxyZW5kZXJpbmdJbnRlbnQ6bnVsbCxyZXBlYXRDb3VudDpudWxsLHJlcGVhdER1cjpudWxsLHJlcXVpcmVkRXh0ZW5zaW9uczprMSxyZXF1aXJlZEZlYXR1cmVzOmsxLHJlcXVpcmVkRm9udHM6azEscmVxdWlyZWRGb3JtYXRzOmsxLHJlc291cmNlOm51bGwscmVzdGFydDpudWxsLHJlc3VsdDpudWxsLHJvdGF0ZTpudWxsLHJ4Om51bGwscnk6bnVsbCxzY2FsZTpudWxsLHNlZWQ6bnVsbCxzaGFwZVJlbmRlcmluZzpudWxsLHNpZGU6bnVsbCxzbG9wZTpudWxsLHNuYXBzaG90VGltZTpudWxsLHNwZWN1bGFyQ29uc3RhbnQ6cnQsc3BlY3VsYXJFeHBvbmVudDpydCxzcHJlYWRNZXRob2Q6bnVsbCxzcGFjaW5nOm51bGwsc3RhcnRPZmZzZXQ6bnVsbCxzdGREZXZpYXRpb246bnVsbCxzdGVtaDpudWxsLHN0ZW12Om51bGwsc3RpdGNoVGlsZXM6bnVsbCxzdG9wQ29sb3I6bnVsbCxzdG9wT3BhY2l0eTpudWxsLHN0cmlrZXRocm91Z2hQb3NpdGlvbjpydCxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOnJ0LHN0cmluZzpudWxsLHN0cm9rZTpudWxsLHN0cm9rZURhc2hBcnJheTprMSxzdHJva2VEYXNoT2Zmc2V0Om51bGwsc3Ryb2tlTGluZUNhcDpudWxsLHN0cm9rZUxpbmVKb2luOm51bGwsc3Ryb2tlTWl0ZXJMaW1pdDpydCxzdHJva2VPcGFjaXR5OnJ0LHN0cm9rZVdpZHRoOm51bGwsc3R5bGU6bnVsbCxzdXJmYWNlU2NhbGU6cnQsc3luY0JlaGF2aW9yOm51bGwsc3luY0JlaGF2aW9yRGVmYXVsdDpudWxsLHN5bmNNYXN0ZXI6bnVsbCxzeW5jVG9sZXJhbmNlOm51bGwsc3luY1RvbGVyYW5jZURlZmF1bHQ6bnVsbCxzeXN0ZW1MYW5ndWFnZTprMSx0YWJJbmRleDpydCx0YWJsZVZhbHVlczpudWxsLHRhcmdldDpudWxsLHRhcmdldFg6cnQsdGFyZ2V0WTpydCx0ZXh0QW5jaG9yOm51bGwsdGV4dERlY29yYXRpb246bnVsbCx0ZXh0UmVuZGVyaW5nOm51bGwsdGV4dExlbmd0aDpudWxsLHRpbWVsaW5lQmVnaW46bnVsbCx0aXRsZTpudWxsLHRyYW5zZm9ybUJlaGF2aW9yOm51bGwsdHlwZTpudWxsLHR5cGVPZjprMSx0bzpudWxsLHRyYW5zZm9ybTpudWxsLHRyYW5zZm9ybU9yaWdpbjpudWxsLHUxOm51bGwsdTI6bnVsbCx1bmRlcmxpbmVQb3NpdGlvbjpydCx1bmRlcmxpbmVUaGlja25lc3M6cnQsdW5pY29kZTpudWxsLHVuaWNvZGVCaWRpOm51bGwsdW5pY29kZVJhbmdlOm51bGwsdW5pdHNQZXJFbTpydCx2YWx1ZXM6bnVsbCx2QWxwaGFiZXRpYzpydCx2TWF0aGVtYXRpY2FsOnJ0LHZlY3RvckVmZmVjdDpudWxsLHZIYW5naW5nOnJ0LHZJZGVvZ3JhcGhpYzpydCx2ZXJzaW9uOm51bGwsdmVydEFkdlk6cnQsdmVydE9yaWdpblg6cnQsdmVydE9yaWdpblk6cnQsdmlld0JveDpudWxsLHZpZXdUYXJnZXQ6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCx3aWR0aHM6bnVsbCx3b3JkU3BhY2luZzpudWxsLHdyaXRpbmdNb2RlOm51bGwseDpudWxsLHgxOm51bGwseDI6bnVsbCx4Q2hhbm5lbFNlbGVjdG9yOm51bGwseEhlaWdodDpydCx5Om51bGwseTE6bnVsbCx5MjpudWxsLHlDaGFubmVsU2VsZWN0b3I6bnVsbCx6Om51bGwsem9vbUFuZFBhbjpudWxsfSxzcGFjZToic3ZnIix0cmFuc2Zvcm06SjFlfSl9KTt2YXIgR3llLENOdD11KCgpPT57RWgoKTtHeWU9SWwoe3Byb3BlcnRpZXM6e3hMaW5rQWN0dWF0ZTpudWxsLHhMaW5rQXJjUm9sZTpudWxsLHhMaW5rSHJlZjpudWxsLHhMaW5rUm9sZTpudWxsLHhMaW5rU2hvdzpudWxsLHhMaW5rVGl0bGU6bnVsbCx4TGlua1R5cGU6bnVsbH0sc3BhY2U6InhsaW5rIix0cmFuc2Zvcm0odCxlKXtyZXR1cm4ieGxpbms6IitlLnNsaWNlKDUpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgWXllLHpOdD11KCgpPT57RWgoKTtXeWUoKTtZeWU9SWwoe2F0dHJpYnV0ZXM6e3htbG5zeGxpbms6InhtbG5zOnhsaW5rIn0scHJvcGVydGllczp7eG1sbnNYTGluazpudWxsLHhtbG5zOm51bGx9LHNwYWNlOiJ4bWxucyIsdHJhbnNmb3JtOmVsZX0pfSk7dmFyIEt5ZSxfTnQ9dSgoKT0+e0VoKCk7S3llPUlsKHtwcm9wZXJ0aWVzOnt4bWxCYXNlOm51bGwseG1sTGFuZzpudWxsLHhtbFNwYWNlOm51bGx9LHNwYWNlOiJ4bWwiLHRyYW5zZm9ybSh0LGUpe3JldHVybiJ4bWw6IitlLnNsaWNlKDMpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgVE50PXUoKCk9Pnt9KTtmdW5jdGlvbiBaeWUodCxlKXtsZXQgcj15eChlKSxhPWUscz1wbjtpZihyIGluIHQubm9ybWFsKXJldHVybiB0LnByb3BlcnR5W3Qubm9ybWFsW3JdXTtpZihyLmxlbmd0aD40JiZyLnNsaWNlKDAsNCk9PT0iZGF0YSImJkQ2YS50ZXN0KGUpKXtpZihlLmNoYXJBdCg0KT09PSItIil7bGV0IG49ZS5zbGljZSg1KS5yZXBsYWNlKExOdCxBNmEpO2E9ImRhdGEiK24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrbi5zbGljZSgxKX1lbHNle2xldCBuPWUuc2xpY2UoNCk7aWYoIUxOdC50ZXN0KG4pKXtsZXQgbz1uLnJlcGxhY2UoTDZhLCQ2YSk7by5jaGFyQXQoMCkhPT0iLSImJihvPSItIitvKSxlPSJkYXRhIitvfX1zPUFofXJldHVybiBuZXcgcyhhLGUpfWZ1bmN0aW9uICQ2YSh0KXtyZXR1cm4iLSIrdC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEE2YSh0KXtyZXR1cm4gdC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKX12YXIgTDZhLExOdCxENmEsRE50PXUoKCk9PntWeWUoKTtIeWUoKTtRMWUoKTtMNmE9L1tBLVpdL2csTE50PS8tW2Etel0vZyxENmE9L15kYXRhWy1cdy46XSskL2k7aShaeWUsImZpbmQiKTtpKCQ2YSwia2ViYWIiKTtpKEE2YSwiY2FtZWxjYXNlIil9KTt2YXIgJE50LHRsZSxReWU9dSgoKT0+e3hOdCgpO3lOdCgpO2tOdCgpO01OdCgpO0NOdCgpO3pOdCgpO19OdCgpO1ROdCgpO0ROdCgpO1ExZSgpOyROdD1CeWUoW2p5ZSx3TnQsR3llLFl5ZSxLeWVdLCJodG1sIiksdGxlPUJ5ZShbanllLFNOdCxHeWUsWXllLEt5ZV0sInN2ZyIpfSk7ZnVuY3Rpb24gWHllKHQsZSl7aWYodD10LnJlcGxhY2UoZS5zdWJzZXQ/TzZhKGUuc3Vic2V0KTpFNmEsYSksZS5zdWJzZXR8fGUuZXNjYXBlT25seSlyZXR1cm4gdDtyZXR1cm4gdC5yZXBsYWNlKEk2YSxyKS5yZXBsYWNlKFA2YSxhKTtmdW5jdGlvbiByKHMsbixvKXtyZXR1cm4gZS5mb3JtYXQoKHMuY2hhckNvZGVBdCgwKS01NTI5NikqMTAyNCtzLmNoYXJDb2RlQXQoMSktNTYzMjArNjU1MzYsby5jaGFyQ29kZUF0KG4rMiksZSl9ZnVuY3Rpb24gYShzLG4sbyl7cmV0dXJuIGUuZm9ybWF0KHMuY2hhckNvZGVBdCgwKSxvLmNoYXJDb2RlQXQobisxKSxlKX19ZnVuY3Rpb24gTzZhKHQpe2xldCBlPUFOdC5nZXQodCk7cmV0dXJuIGV8fChlPVI2YSh0KSxBTnQuc2V0KHQsZSkpLGV9ZnVuY3Rpb24gUjZhKHQpe2xldCBlPVtdLHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KWUucHVzaCh0W3JdLnJlcGxhY2UoTjZhLCJcXCQmIikpO3JldHVybiBuZXcgUmVnRXhwKCIoPzoiK2Uuam9pbigifCIpKyIpIiwiZyIpfXZhciBFNmEsSTZhLFA2YSxONmEsQU50LEVOdD11KCgpPT57RTZhPS9bIiYnPD5gXS9nLEk2YT0vW1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csUDZhPS9bXHgwMS1cdFx2XGZceDBFLVx4MUZceDdGXHg4MVx4OERceDhGXHg5MFx4OURceEEwLVx1RkZGRl0vZyxONmE9L1t8XFx7fSgpW1xdXiQrKj8uXS9nLEFOdD1uZXcgV2Vha01hcDtpKFh5ZSwiY29yZSIpO2koTzZhLCJjaGFyYWN0ZXJzVG9FeHByZXNzaW9uQ2FjaGVkIik7aShSNmEsImNoYXJhY3RlcnNUb0V4cHJlc3Npb24iKX0pO2Z1bmN0aW9uIElOdCh0LGUscil7bGV0IGE9IiYjeCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gciYmZSYmIUY2YS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpP2E6YSsiOyJ9dmFyIEY2YSxQTnQ9dSgoKT0+e0Y2YT0vW1xkQS1GYS1mXS87aShJTnQsInRvSGV4YWRlY2ltYWwiKX0pO2Z1bmN0aW9uIE5OdCh0LGUscil7bGV0IGE9IiYjIitTdHJpbmcodCk7cmV0dXJuIHImJmUmJiFCNmEudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKT9hOmErIjsifXZhciBCNmEsT050PXUoKCk9PntCNmE9L1xkLztpKE5OdCwidG9EZWNpbWFsIil9KTt2YXIgUk50LEZOdD11KCgpPT57Uk50PVsiQUVsaWciLCJBTVAiLCJBYWN1dGUiLCJBY2lyYyIsIkFncmF2ZSIsIkFyaW5nIiwiQXRpbGRlIiwiQXVtbCIsIkNPUFkiLCJDY2VkaWwiLCJFVEgiLCJFYWN1dGUiLCJFY2lyYyIsIkVncmF2ZSIsIkV1bWwiLCJHVCIsIklhY3V0ZSIsIkljaXJjIiwiSWdyYXZlIiwiSXVtbCIsIkxUIiwiTnRpbGRlIiwiT2FjdXRlIiwiT2NpcmMiLCJPZ3JhdmUiLCJPc2xhc2giLCJPdGlsZGUiLCJPdW1sIiwiUVVPVCIsIlJFRyIsIlRIT1JOIiwiVWFjdXRlIiwiVWNpcmMiLCJVZ3JhdmUiLCJVdW1sIiwiWWFjdXRlIiwiYWFjdXRlIiwiYWNpcmMiLCJhY3V0ZSIsImFlbGlnIiwiYWdyYXZlIiwiYW1wIiwiYXJpbmciLCJhdGlsZGUiLCJhdW1sIiwiYnJ2YmFyIiwiY2NlZGlsIiwiY2VkaWwiLCJjZW50IiwiY29weSIsImN1cnJlbiIsImRlZyIsImRpdmlkZSIsImVhY3V0ZSIsImVjaXJjIiwiZWdyYXZlIiwiZXRoIiwiZXVtbCIsImZyYWMxMiIsImZyYWMxNCIsImZyYWMzNCIsImd0IiwiaWFjdXRlIiwiaWNpcmMiLCJpZXhjbCIsImlncmF2ZSIsImlxdWVzdCIsIml1bWwiLCJsYXF1byIsImx0IiwibWFjciIsIm1pY3JvIiwibWlkZG90IiwibmJzcCIsIm5vdCIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjIiwib2dyYXZlIiwib3JkZiIsIm9yZG0iLCJvc2xhc2giLCJvdGlsZGUiLCJvdW1sIiwicGFyYSIsInBsdXNtbiIsInBvdW5kIiwicXVvdCIsInJhcXVvIiwicmVnIiwic2VjdCIsInNoeSIsInN1cDEiLCJzdXAyIiwic3VwMyIsInN6bGlnIiwidGhvcm4iLCJ0aW1lcyIsInVhY3V0ZSIsInVjaXJjIiwidWdyYXZlIiwidW1sIiwidXVtbCIsInlhY3V0ZSIsInllbiIsInl1bWwiXX0pO3ZhciBybGUsQk50PXUoKCk9PntybGU9e25ic3A6Ilx4QTAiLGlleGNsOiJceEExIixjZW50OiJceEEyIixwb3VuZDoiXHhBMyIsY3VycmVuOiJceEE0Iix5ZW46Ilx4QTUiLGJydmJhcjoiXHhBNiIsc2VjdDoiXHhBNyIsdW1sOiJceEE4Iixjb3B5OiJceEE5IixvcmRmOiJceEFBIixsYXF1bzoiXHhBQiIsbm90OiJceEFDIixzaHk6Ilx4QUQiLHJlZzoiXHhBRSIsbWFjcjoiXHhBRiIsZGVnOiJceEIwIixwbHVzbW46Ilx4QjEiLHN1cDI6Ilx4QjIiLHN1cDM6Ilx4QjMiLGFjdXRlOiJceEI0IixtaWNybzoiXHhCNSIscGFyYToiXHhCNiIsbWlkZG90OiJceEI3IixjZWRpbDoiXHhCOCIsc3VwMToiXHhCOSIsb3JkbToiXHhCQSIscmFxdW86Ilx4QkIiLGZyYWMxNDoiXHhCQyIsZnJhYzEyOiJceEJEIixmcmFjMzQ6Ilx4QkUiLGlxdWVzdDoiXHhCRiIsQWdyYXZlOiJceEMwIixBYWN1dGU6Ilx4QzEiLEFjaXJjOiJceEMyIixBdGlsZGU6Ilx4QzMiLEF1bWw6Ilx4QzQiLEFyaW5nOiJceEM1IixBRWxpZzoiXHhDNiIsQ2NlZGlsOiJceEM3IixFZ3JhdmU6Ilx4QzgiLEVhY3V0ZToiXHhDOSIsRWNpcmM6Ilx4Q0EiLEV1bWw6Ilx4Q0IiLElncmF2ZToiXHhDQyIsSWFjdXRlOiJceENEIixJY2lyYzoiXHhDRSIsSXVtbDoiXHhDRiIsRVRIOiJceEQwIixOdGlsZGU6Ilx4RDEiLE9ncmF2ZToiXHhEMiIsT2FjdXRlOiJceEQzIixPY2lyYzoiXHhENCIsT3RpbGRlOiJceEQ1IixPdW1sOiJceEQ2Iix0aW1lczoiXHhENyIsT3NsYXNoOiJceEQ4IixVZ3JhdmU6Ilx4RDkiLFVhY3V0ZToiXHhEQSIsVWNpcmM6Ilx4REIiLFV1bWw6Ilx4REMiLFlhY3V0ZToiXHhERCIsVEhPUk46Ilx4REUiLHN6bGlnOiJceERGIixhZ3JhdmU6Ilx4RTAiLGFhY3V0ZToiXHhFMSIsYWNpcmM6Ilx4RTIiLGF0aWxkZToiXHhFMyIsYXVtbDoiXHhFNCIsYXJpbmc6Ilx4RTUiLGFlbGlnOiJceEU2IixjY2VkaWw6Ilx4RTciLGVncmF2ZToiXHhFOCIsZWFjdXRlOiJceEU5IixlY2lyYzoiXHhFQSIsZXVtbDoiXHhFQiIsaWdyYXZlOiJceEVDIixpYWN1dGU6Ilx4RUQiLGljaXJjOiJceEVFIixpdW1sOiJceEVGIixldGg6Ilx4RjAiLG50aWxkZToiXHhGMSIsb2dyYXZlOiJceEYyIixvYWN1dGU6Ilx4RjMiLG9jaXJjOiJceEY0IixvdGlsZGU6Ilx4RjUiLG91bWw6Ilx4RjYiLGRpdmlkZToiXHhGNyIsb3NsYXNoOiJceEY4Iix1Z3JhdmU6Ilx4RjkiLHVhY3V0ZToiXHhGQSIsdWNpcmM6Ilx4RkIiLHV1bWw6Ilx4RkMiLHlhY3V0ZToiXHhGRCIsdGhvcm46Ilx4RkUiLHl1bWw6Ilx4RkYiLGZub2Y6Ilx1MDE5MiIsQWxwaGE6Ilx1MDM5MSIsQmV0YToiXHUwMzkyIixHYW1tYToiXHUwMzkzIixEZWx0YToiXHUwMzk0IixFcHNpbG9uOiJcdTAzOTUiLFpldGE6Ilx1MDM5NiIsRXRhOiJcdTAzOTciLFRoZXRhOiJcdTAzOTgiLElvdGE6Ilx1MDM5OSIsS2FwcGE6Ilx1MDM5QSIsTGFtYmRhOiJcdTAzOUIiLE11OiJcdTAzOUMiLE51OiJcdTAzOUQiLFhpOiJcdTAzOUUiLE9taWNyb246Ilx1MDM5RiIsUGk6Ilx1MDNBMCIsUmhvOiJcdTAzQTEiLFNpZ21hOiJcdTAzQTMiLFRhdToiXHUwM0E0IixVcHNpbG9uOiJcdTAzQTUiLFBoaToiXHUwM0E2IixDaGk6Ilx1MDNBNyIsUHNpOiJcdTAzQTgiLE9tZWdhOiJcdTAzQTkiLGFscGhhOiJcdTAzQjEiLGJldGE6Ilx1MDNCMiIsZ2FtbWE6Ilx1MDNCMyIsZGVsdGE6Ilx1MDNCNCIsZXBzaWxvbjoiXHUwM0I1Iix6ZXRhOiJcdTAzQjYiLGV0YToiXHUwM0I3Iix0aGV0YToiXHUwM0I4Iixpb3RhOiJcdTAzQjkiLGthcHBhOiJcdTAzQkEiLGxhbWJkYToiXHUwM0JCIixtdToiXHUwM0JDIixudToiXHUwM0JEIix4aToiXHUwM0JFIixvbWljcm9uOiJcdTAzQkYiLHBpOiJcdTAzQzAiLHJobzoiXHUwM0MxIixzaWdtYWY6Ilx1MDNDMiIsc2lnbWE6Ilx1MDNDMyIsdGF1OiJcdTAzQzQiLHVwc2lsb246Ilx1MDNDNSIscGhpOiJcdTAzQzYiLGNoaToiXHUwM0M3Iixwc2k6Ilx1MDNDOCIsb21lZ2E6Ilx1MDNDOSIsdGhldGFzeW06Ilx1MDNEMSIsdXBzaWg6Ilx1MDNEMiIscGl2OiJcdTAzRDYiLGJ1bGw6Ilx1MjAyMiIsaGVsbGlwOiJcdTIwMjYiLHByaW1lOiJcdTIwMzIiLFByaW1lOiJcdTIwMzMiLG9saW5lOiJcdTIwM0UiLGZyYXNsOiJcdTIwNDQiLHdlaWVycDoiXHUyMTE4IixpbWFnZToiXHUyMTExIixyZWFsOiJcdTIxMUMiLHRyYWRlOiJcdTIxMjIiLGFsZWZzeW06Ilx1MjEzNSIsbGFycjoiXHUyMTkwIix1YXJyOiJcdTIxOTEiLHJhcnI6Ilx1MjE5MiIsZGFycjoiXHUyMTkzIixoYXJyOiJcdTIxOTQiLGNyYXJyOiJcdTIxQjUiLGxBcnI6Ilx1MjFEMCIsdUFycjoiXHUyMUQxIixyQXJyOiJcdTIxRDIiLGRBcnI6Ilx1MjFEMyIsaEFycjoiXHUyMUQ0Iixmb3JhbGw6Ilx1MjIwMCIscGFydDoiXHUyMjAyIixleGlzdDoiXHUyMjAzIixlbXB0eToiXHUyMjA1IixuYWJsYToiXHUyMjA3Iixpc2luOiJcdTIyMDgiLG5vdGluOiJcdTIyMDkiLG5pOiJcdTIyMEIiLHByb2Q6Ilx1MjIwRiIsc3VtOiJcdTIyMTEiLG1pbnVzOiJcdTIyMTIiLGxvd2FzdDoiXHUyMjE3IixyYWRpYzoiXHUyMjFBIixwcm9wOiJcdTIyMUQiLGluZmluOiJcdTIyMUUiLGFuZzoiXHUyMjIwIixhbmQ6Ilx1MjIyNyIsb3I6Ilx1MjIyOCIsY2FwOiJcdTIyMjkiLGN1cDoiXHUyMjJBIixpbnQ6Ilx1MjIyQiIsdGhlcmU0OiJcdTIyMzQiLHNpbToiXHUyMjNDIixjb25nOiJcdTIyNDUiLGFzeW1wOiJcdTIyNDgiLG5lOiJcdTIyNjAiLGVxdWl2OiJcdTIyNjEiLGxlOiJcdTIyNjQiLGdlOiJcdTIyNjUiLHN1YjoiXHUyMjgyIixzdXA6Ilx1MjI4MyIsbnN1YjoiXHUyMjg0IixzdWJlOiJcdTIyODYiLHN1cGU6Ilx1MjI4NyIsb3BsdXM6Ilx1MjI5NSIsb3RpbWVzOiJcdTIyOTciLHBlcnA6Ilx1MjJBNSIsc2RvdDoiXHUyMkM1IixsY2VpbDoiXHUyMzA4IixyY2VpbDoiXHUyMzA5IixsZmxvb3I6Ilx1MjMwQSIscmZsb29yOiJcdTIzMEIiLGxhbmc6Ilx1MjMyOSIscmFuZzoiXHUyMzJBIixsb3o6Ilx1MjVDQSIsc3BhZGVzOiJcdTI2NjAiLGNsdWJzOiJcdTI2NjMiLGhlYXJ0czoiXHUyNjY1IixkaWFtczoiXHUyNjY2IixxdW90OiciJyxhbXA6IiYiLGx0OiI8IixndDoiPiIsT0VsaWc6Ilx1MDE1MiIsb2VsaWc6Ilx1MDE1MyIsU2Nhcm9uOiJcdTAxNjAiLHNjYXJvbjoiXHUwMTYxIixZdW1sOiJcdTAxNzgiLGNpcmM6Ilx1MDJDNiIsdGlsZGU6Ilx1MDJEQyIsZW5zcDoiXHUyMDAyIixlbXNwOiJcdTIwMDMiLHRoaW5zcDoiXHUyMDA5Iix6d25qOiJcdTIwMEMiLHp3ajoiXHUyMDBEIixscm06Ilx1MjAwRSIscmxtOiJcdTIwMEYiLG5kYXNoOiJcdTIwMTMiLG1kYXNoOiJcdTIwMTQiLGxzcXVvOiJcdTIwMTgiLHJzcXVvOiJcdTIwMTkiLHNicXVvOiJcdTIwMUEiLGxkcXVvOiJcdTIwMUMiLHJkcXVvOiJcdTIwMUQiLGJkcXVvOiJcdTIwMUUiLGRhZ2dlcjoiXHUyMDIwIixEYWdnZXI6Ilx1MjAyMSIscGVybWlsOiJcdTIwMzAiLGxzYXF1bzoiXHUyMDM5Iixyc2FxdW86Ilx1MjAzQSIsZXVybzoiXHUyMEFDIn19KTt2YXIgSE50LHFOdD11KCgpPT57SE50PVsiY2VudCIsImNvcHkiLCJkaXZpZGUiLCJndCIsImx0Iiwibm90IiwicGFyYSIsInRpbWVzIl19KTtmdW5jdGlvbiBqTnQodCxlLHIsYSl7bGV0IHM9U3RyaW5nLmZyb21DaGFyQ29kZSh0KTtpZihWTnQuY2FsbChKeWUscykpe2xldCBuPUp5ZVtzXSxvPSImIituO3JldHVybiByJiZSTnQuaW5jbHVkZXMobikmJiFITnQuaW5jbHVkZXMobikmJighYXx8ZSYmZSE9PTYxJiZINmEudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSk/bzpvKyI7In1yZXR1cm4iIn12YXIgVk50LEp5ZSxhbGUsSDZhLFVOdD11KCgpPT57Rk50KCk7Qk50KCk7cU50KCk7Vk50PXt9Lmhhc093blByb3BlcnR5LEp5ZT17fTtmb3IoYWxlIGluIHJsZSlWTnQuY2FsbChybGUsYWxlKSYmKEp5ZVtybGVbYWxlXV09YWxlKTtINmE9L1teXGRBLVphLXpdLztpKGpOdCwidG9OYW1lZCIpfSk7ZnVuY3Rpb24gV050KHQsZSxyKXtsZXQgYT1JTnQodCxlLHIub21pdE9wdGlvbmFsU2VtaWNvbG9ucykscztpZigoci51c2VOYW1lZFJlZmVyZW5jZXN8fHIudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSYmKHM9ak50KHQsZSxyLm9taXRPcHRpb25hbFNlbWljb2xvbnMsci5hdHRyaWJ1dGUpKSwoci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fCFzKSYmci51c2VTaG9ydGVzdFJlZmVyZW5jZXMpe2xldCBuPU5OdCh0LGUsci5vbWl0T3B0aW9uYWxTZW1pY29sb25zKTtuLmxlbmd0aDxhLmxlbmd0aCYmKGE9bil9cmV0dXJuIHMmJighci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fHMubGVuZ3RoPGEubGVuZ3RoKT9zOmF9dmFyIEdOdD11KCgpPT57UE50KCk7T050KCk7VU50KCk7aShXTnQsImZvcm1hdFNtYXJ0Iil9KTtmdW5jdGlvbiBZTnQodCl7cmV0dXJuIiYjeCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIEtOdD11KCgpPT57aShZTnQsImZvcm1hdEJhc2ljIil9KTtmdW5jdGlvbiBuNCh0LGUpe3JldHVybiBYeWUodCxPYmplY3QuYXNzaWduKHtmb3JtYXQ6V050fSxlKSl9ZnVuY3Rpb24geXNzKHQsZSl7cmV0dXJuIFh5ZSh0LE9iamVjdC5hc3NpZ24oe2Zvcm1hdDpZTnR9LGUpKX12YXIgWk50PXUoKCk9PntFTnQoKTtHTnQoKTtLTnQoKTtpKG40LCJzdHJpbmdpZnlFbnRpdGllcyIpO2koeXNzLCJzdHJpbmdpZnlFbnRpdGllc0xpZ2h0Iil9KTt2YXIgaWxlPXUoKCk9PntaTnQoKX0pO2Z1bmN0aW9uIFFOdCh0LGUscixhKXtyZXR1cm4gYS5zZXR0aW5ncy5ib2d1c0NvbW1lbnRzPyI8PyIrbjQodC52YWx1ZSxPYmplY3QuYXNzaWduKHt9LGEuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OlY2YX0pKSsiPiI6IjwhLS0iK3QudmFsdWUucmVwbGFjZShxNmEscykrIi0tPiI7ZnVuY3Rpb24gcyhuKXtyZXR1cm4gbjQobixPYmplY3QuYXNzaWduKHt9LGEuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0Omo2YX0pKX19dmFyIHE2YSxWNmEsajZhLFhOdD11KCgpPT57aWxlKCk7cTZhPS9ePnxeLT58PCEtLXwtLT58LS0hPnw8IS0kL2csVjZhPVsiPiJdLGo2YT1bIjwiLCI+Il07aShRTnQsImNvbW1lbnQiKX0pO2Z1bmN0aW9uIEpOdCh0LGUscixhKXtyZXR1cm4iPCEiKyhhLnNldHRpbmdzLnVwcGVyRG9jdHlwZT8iRE9DVFlQRSI6ImRvY3R5cGUiKSsoYS5zZXR0aW5ncy50aWdodERvY3R5cGU/IiI6IiAiKSsiaHRtbD4ifXZhciBlT3Q9dSgoKT0+e2koSk50LCJkb2N0eXBlIil9KTtmdW5jdGlvbiBEc3ModCl7bGV0IGU9W10scj1TdHJpbmcodHx8IiIpLGE9ci5pbmRleE9mKCIsIikscz0wLG49ITE7Zm9yKDshbjspe2E9PT0tMSYmKGE9ci5sZW5ndGgsbj0hMCk7bGV0IG89ci5zbGljZShzLGEpLnRyaW0oKTsob3x8IW4pJiZlLnB1c2gobykscz1hKzEsYT1yLmluZGV4T2YoIiwiLHMpfXJldHVybiBlfWZ1bmN0aW9uIHRPdCh0LGUpe2xldCByPWV8fHt9O3JldHVybih0W3QubGVuZ3RoLTFdPT09IiI/Wy4uLnQsIiJdOnQpLmpvaW4oKHIucGFkUmlnaHQ/IiAiOiIiKSsiLCIrKHIucGFkTGVmdD09PSExPyIiOiIgIikpLnRyaW0oKX12YXIgck90PXUoKCk9PntpKERzcywicGFyc2UiKTtpKHRPdCwic3RyaW5naWZ5Iil9KTtmdW5jdGlvbiBFc3ModCl7bGV0IGU9U3RyaW5nKHR8fCIiKS50cmltKCk7cmV0dXJuIGU/ZS5zcGxpdCgvWyBcdFxuXHJcZl0rL2cpOltdfWZ1bmN0aW9uIGFPdCh0KXtyZXR1cm4gdC5qb2luKCIgIikudHJpbSgpfXZhciBpT3Q9dSgoKT0+e2koRXNzLCJwYXJzZSIpO2koYU90LCJzdHJpbmdpZnkiKX0pO2Z1bmN0aW9uIEloKHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCI/dC50eXBlPT09InRleHQiP3NPdCh0LnZhbHVlKTohMTpzT3QodCl9ZnVuY3Rpb24gc090KHQpe3JldHVybiB0LnJlcGxhY2UoVTZhLCIiKT09PSIifXZhciBVNmEsbk90PXUoKCk9PntVNmE9L1sgXHRcblxmXHJdL2c7aShJaCwid2hpdGVzcGFjZSIpO2koc090LCJlbXB0eSIpfSk7dmFyIHNsZT11KCgpPT57bk90KCl9KTtmdW5jdGlvbiBvT3QodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyLGEscyl7bGV0IG49cj9yLmNoaWxkcmVuOlc2YSxvPShhfHwwKSt0LGw9bltvXTtpZighcylmb3IoO2wmJkloKGwpOylvKz10LGw9bltvXTtyZXR1cm4gbH19dmFyIGVzLGV3ZSxXNmEsdHdlPXUoKCk9PntzbGUoKTtlcz1vT3QoMSksZXdlPW9PdCgtMSksVzZhPVtdO2kob090LCJzaWJsaW5ncyIpfSk7ZnVuY3Rpb24gbmxlKHQpe3JldHVybiBlO2Z1bmN0aW9uIGUocixhLHMpe3JldHVybiBHNmEuY2FsbCh0LHIudGFnTmFtZSkmJnRbci50YWdOYW1lXShyLGEscyl9fXZhciBHNmEscndlPXUoKCk9PntHNmE9e30uaGFzT3duUHJvcGVydHk7aShubGUsIm9taXNzaW9uIil9KTtmdW5jdGlvbiBhd2UodCxlLHIpe2xldCBhPWVzKHIsZSwhMCk7cmV0dXJuIWF8fGEudHlwZSE9PSJjb21tZW50IiYmIShhLnR5cGU9PT0idGV4dCImJkloKGEudmFsdWUuY2hhckF0KDApKSl9ZnVuY3Rpb24gWTZhKHQsZSxyKXtsZXQgYT1lcyhyLGUpO3JldHVybiFhfHxhLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gSzZhKHQsZSxyKXtsZXQgYT1lcyhyLGUpO3JldHVybiFhfHxhLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gWjZhKHQsZSxyKXtsZXQgYT1lcyhyLGUpO3JldHVybiBhP2EudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJhZGRyZXNzInx8YS50YWdOYW1lPT09ImFydGljbGUifHxhLnRhZ05hbWU9PT0iYXNpZGUifHxhLnRhZ05hbWU9PT0iYmxvY2txdW90ZSJ8fGEudGFnTmFtZT09PSJkZXRhaWxzInx8YS50YWdOYW1lPT09ImRpdiJ8fGEudGFnTmFtZT09PSJkbCJ8fGEudGFnTmFtZT09PSJmaWVsZHNldCJ8fGEudGFnTmFtZT09PSJmaWdjYXB0aW9uInx8YS50YWdOYW1lPT09ImZpZ3VyZSJ8fGEudGFnTmFtZT09PSJmb290ZXIifHxhLnRhZ05hbWU9PT0iZm9ybSJ8fGEudGFnTmFtZT09PSJoMSJ8fGEudGFnTmFtZT09PSJoMiJ8fGEudGFnTmFtZT09PSJoMyJ8fGEudGFnTmFtZT09PSJoNCJ8fGEudGFnTmFtZT09PSJoNSJ8fGEudGFnTmFtZT09PSJoNiJ8fGEudGFnTmFtZT09PSJoZWFkZXIifHxhLnRhZ05hbWU9PT0iaGdyb3VwInx8YS50YWdOYW1lPT09ImhyInx8YS50YWdOYW1lPT09Im1haW4ifHxhLnRhZ05hbWU9PT0ibWVudSJ8fGEudGFnTmFtZT09PSJuYXYifHxhLnRhZ05hbWU9PT0ib2wifHxhLnRhZ05hbWU9PT0icCJ8fGEudGFnTmFtZT09PSJwcmUifHxhLnRhZ05hbWU9PT0ic2VjdGlvbiJ8fGEudGFnTmFtZT09PSJ0YWJsZSJ8fGEudGFnTmFtZT09PSJ1bCIpOiFyfHwhKHIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJhInx8ci50YWdOYW1lPT09ImF1ZGlvInx8ci50YWdOYW1lPT09ImRlbCJ8fHIudGFnTmFtZT09PSJpbnMifHxyLnRhZ05hbWU9PT0ibWFwInx8ci50YWdOYW1lPT09Im5vc2NyaXB0Inx8ci50YWdOYW1lPT09InZpZGVvIikpfWZ1bmN0aW9uIFE2YSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0ibGkifWZ1bmN0aW9uIFg2YSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0iZHQifHxhLnRhZ05hbWU9PT0iZGQiKSl9ZnVuY3Rpb24gSjZhKHQsZSxyKXtsZXQgYT1lcyhyLGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0iZHQifHxhLnRhZ05hbWU9PT0iZGQiKX1mdW5jdGlvbiBsT3QodCxlLHIpe2xldCBhPWVzKHIsZSk7cmV0dXJuIWF8fGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJycCJ8fGEudGFnTmFtZT09PSJydCIpfWZ1bmN0aW9uIGVtYSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0ib3B0Z3JvdXAifWZ1bmN0aW9uIHRtYSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09Im9wdGlvbiJ8fGEudGFnTmFtZT09PSJvcHRncm91cCIpfWZ1bmN0aW9uIHJtYSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0idGJvZHkifHxhLnRhZ05hbWU9PT0idGZvb3QiKSl9ZnVuY3Rpb24gYW1hKHQsZSxyKXtsZXQgYT1lcyhyLGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0idGJvZHkifHxhLnRhZ05hbWU9PT0idGZvb3QiKX1mdW5jdGlvbiBpbWEodCxlLHIpe3JldHVybiFlcyhyLGUpfWZ1bmN0aW9uIHNtYSh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0idHIifWZ1bmN0aW9uIGNPdCh0LGUscil7bGV0IGE9ZXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09InRkInx8YS50YWdOYW1lPT09InRoIil9dmFyIGpNLGl3ZT11KCgpPT57c2xlKCk7dHdlKCk7cndlKCk7ak09bmxlKHtib2R5Oks2YSxjYXB0aW9uOmF3ZSxjb2xncm91cDphd2UsZGQ6SjZhLGR0Olg2YSxoZWFkOmF3ZSxodG1sOlk2YSxsaTpRNmEsb3B0Z3JvdXA6ZW1hLG9wdGlvbjp0bWEscDpaNmEscnA6bE90LHJ0OmxPdCx0Ym9keTphbWEsdGQ6Y090LHRmb290OmltYSx0aDpjT3QsdGhlYWQ6cm1hLHRyOnNtYX0pO2koYXdlLCJoZWFkT3JDb2xncm91cE9yQ2FwdGlvbiIpO2koWTZhLCJodG1sIik7aShLNmEsImJvZHkiKTtpKFo2YSwicCIpO2koUTZhLCJsaSIpO2koWDZhLCJkdCIpO2koSjZhLCJkZCIpO2kobE90LCJydWJ5RWxlbWVudCIpO2koZW1hLCJvcHRncm91cCIpO2kodG1hLCJvcHRpb24iKTtpKHJtYSwidGhlYWQiKTtpKGFtYSwidGJvZHkiKTtpKGltYSwidGZvb3QiKTtpKHNtYSwidHIiKTtpKGNPdCwiY2VsbHMiKX0pO2Z1bmN0aW9uIG5tYSh0KXtsZXQgZT1lcyh0LC0xKTtyZXR1cm4hZXx8ZS50eXBlIT09ImNvbW1lbnQifWZ1bmN0aW9uIG9tYSh0KXtsZXQgZT1uZXcgU2V0O2ZvcihsZXQgYSBvZiB0LmNoaWxkcmVuKWlmKGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJiYXNlInx8YS50YWdOYW1lPT09InRpdGxlIikpe2lmKGUuaGFzKGEudGFnTmFtZSkpcmV0dXJuITE7ZS5hZGQoYS50YWdOYW1lKX1sZXQgcj10LmNoaWxkcmVuWzBdO3JldHVybiFyfHxyLnR5cGU9PT0iZWxlbWVudCJ9ZnVuY3Rpb24gbG1hKHQpe2xldCBlPWVzKHQsLTEsITApO3JldHVybiFlfHxlLnR5cGUhPT0iY29tbWVudCImJiEoZS50eXBlPT09InRleHQiJiZJaChlLnZhbHVlLmNoYXJBdCgwKSkpJiYhKGUudHlwZT09PSJlbGVtZW50IiYmKGUudGFnTmFtZT09PSJtZXRhInx8ZS50YWdOYW1lPT09ImxpbmsifHxlLnRhZ05hbWU9PT0ic2NyaXB0Inx8ZS50YWdOYW1lPT09InN0eWxlInx8ZS50YWdOYW1lPT09InRlbXBsYXRlIikpfWZ1bmN0aW9uIGNtYSh0LGUscil7bGV0IGE9ZXdlKHIsZSkscz1lcyh0LC0xLCEwKTtyZXR1cm4gciYmYSYmYS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0iY29sZ3JvdXAiJiZqTShhLHIuY2hpbGRyZW4uaW5kZXhPZihhKSxyKT8hMTohIShzJiZzLnR5cGU9PT0iZWxlbWVudCImJnMudGFnTmFtZT09PSJjb2wiKX1mdW5jdGlvbiBkbWEodCxlLHIpe2xldCBhPWV3ZShyLGUpLHM9ZXModCwtMSk7cmV0dXJuIHImJmEmJmEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJ0aGVhZCJ8fGEudGFnTmFtZT09PSJ0Ym9keSIpJiZqTShhLHIuY2hpbGRyZW4uaW5kZXhPZihhKSxyKT8hMTohIShzJiZzLnR5cGU9PT0iZWxlbWVudCImJnMudGFnTmFtZT09PSJ0ciIpfXZhciBkT3QsdU90PXUoKCk9PntzbGUoKTt0d2UoKTtpd2UoKTtyd2UoKTtkT3Q9bmxlKHtib2R5OmxtYSxjb2xncm91cDpjbWEsaGVhZDpvbWEsaHRtbDpubWEsdGJvZHk6ZG1hfSk7aShubWEsImh0bWwiKTtpKG9tYSwiaGVhZCIpO2kobG1hLCJib2R5Iik7aShjbWEsImNvbGdyb3VwIik7aShkbWEsInRib2R5Iil9KTtmdW5jdGlvbiBwT3QodCxlLHIsYSl7bGV0IHM9YS5zY2hlbWEsbj1zLnNwYWNlPT09InN2ZyI/ITE6YS5zZXR0aW5ncy5vbWl0T3B0aW9uYWxUYWdzLG89cy5zcGFjZT09PSJzdmciP2Euc2V0dGluZ3MuY2xvc2VFbXB0eUVsZW1lbnRzOmEuc2V0dGluZ3Mudm9pZHMuaW5jbHVkZXModC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpLGw9W10sYztzLnNwYWNlPT09Imh0bWwiJiZ0LnRhZ05hbWU9PT0ic3ZnIiYmKGEuc2NoZW1hPXRsZSk7bGV0IGQ9dW1hKGEsdC5wcm9wZXJ0aWVzKSxmPWEuYWxsKHMuc3BhY2U9PT0iaHRtbCImJnQudGFnTmFtZT09PSJ0ZW1wbGF0ZSI/dC5jb250ZW50OnQpO3JldHVybiBhLnNjaGVtYT1zLGYmJihvPSExKSwoZHx8IW58fCFkT3QodCxlLHIpKSYmKGwucHVzaCgiPCIsdC50YWdOYW1lLGQ/IiAiK2Q6IiIpLG8mJihzLnNwYWNlPT09InN2ZyJ8fGEuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZykmJihjPWQuY2hhckF0KGQubGVuZ3RoLTEpLCghYS5zZXR0aW5ncy50aWdodFNlbGZDbG9zaW5nfHxjPT09Ii8ifHxjJiZjIT09JyInJiZjIT09IiciKSYmbC5wdXNoKCIgIiksbC5wdXNoKCIvIikpLGwucHVzaCgiPiIpKSxsLnB1c2goZiksIW8mJighbnx8IWpNKHQsZSxyKSkmJmwucHVzaCgiPC8iK3QudGFnTmFtZSsiPiIpLGwuam9pbigiIil9ZnVuY3Rpb24gdW1hKHQsZSl7bGV0IHI9W10sYT0tMSxzO2lmKGUpe2ZvcihzIGluIGUpaWYoZVtzXSE9PW51bGwmJmVbc10hPT12b2lkIDApe2xldCBuPXBtYSh0LHMsZVtzXSk7biYmci5wdXNoKG4pfX1mb3IoOysrYTxyLmxlbmd0aDspe2xldCBuPXQuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzP3JbYV0uY2hhckF0KHJbYV0ubGVuZ3RoLTEpOnZvaWQgMDthIT09ci5sZW5ndGgtMSYmbiE9PSciJyYmbiE9PSInIiYmKHJbYV0rPSIgIil9cmV0dXJuIHIuam9pbigiIil9ZnVuY3Rpb24gcG1hKHQsZSxyKXtsZXQgYT1aeWUodC5zY2hlbWEsZSkscz10LnNldHRpbmdzLmFsbG93UGFyc2VFcnJvcnMmJnQuc2NoZW1hLnNwYWNlPT09Imh0bWwiPzA6MSxuPXQuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzPzA6MSxvPXQucXVvdGUsbDtpZihhLm92ZXJsb2FkZWRCb29sZWFuJiYocj09PWEuYXR0cmlidXRlfHxyPT09IiIpP3I9ITA6KGEuYm9vbGVhbnx8YS5vdmVybG9hZGVkQm9vbGVhbikmJih0eXBlb2YgciE9InN0cmluZyJ8fHI9PT1hLmF0dHJpYnV0ZXx8cj09PSIiKSYmKHI9ISFyKSxyPT1udWxsfHxyPT09ITF8fHR5cGVvZiByPT0ibnVtYmVyIiYmTnVtYmVyLmlzTmFOKHIpKXJldHVybiIiO2xldCBjPW40KGEuYXR0cmlidXRlLE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6b2xlLm5hbWVbc11bbl19KSk7cmV0dXJuIHI9PT0hMHx8KHI9QXJyYXkuaXNBcnJheShyKT8oYS5jb21tYVNlcGFyYXRlZD90T3Q6YU90KShyLHtwYWRMZWZ0OiF0LnNldHRpbmdzLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c30pOlN0cmluZyhyKSx0LnNldHRpbmdzLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzJiYhcik/YzoodC5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCYmKGw9bjQocixPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7YXR0cmlidXRlOiEwLHN1YnNldDpvbGUudW5xdW90ZWRbc11bbl19KSkpLGwhPT1yJiYodC5zZXR0aW5ncy5xdW90ZVNtYXJ0JiZveChyLG8pPm94KHIsdC5hbHRlcm5hdGl2ZSkmJihvPXQuYWx0ZXJuYXRpdmUpLGw9bytuNChyLE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6KG89PT0iJyI/b2xlLnNpbmdsZTpvbGUuZG91YmxlKVtzXVtuXSxhdHRyaWJ1dGU6ITB9KSkrbyksYysobCYmIj0iK2wpKX12YXIgb2xlLGZPdD11KCgpPT57anhlKCk7ck90KCk7UXllKCk7aU90KCk7aWxlKCk7aXdlKCk7dU90KCk7b2xlPXtuYW1lOltbYAkKXGZcciAmLz0+YC5zcGxpdCgiIiksYAkKXGZcciAiJicvPT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJy88PT5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnLzw9PlxgYC5zcGxpdCgiIildXSx1bnF1b3RlZDpbW2AJClxmXHIgJj5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKV0sW2BcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXV0sc2luZ2xlOltbIiYnIi5zcGxpdCgiIiksIlwiJidgIi5zcGxpdCgiIildLFsiXDAmJyIuc3BsaXQoIiIpLCJcMFwiJidgIi5zcGxpdCgiIildXSxkb3VibGU6W1snIiYnLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWydcMCImJy5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dfTtpKHBPdCwiZWxlbWVudCIpO2kodW1hLCJzZXJpYWxpemVBdHRyaWJ1dGVzIik7aShwbWEsInNlcmlhbGl6ZUF0dHJpYnV0ZSIpfSk7ZnVuY3Rpb24gbGxlKHQsZSxyLGEpe3JldHVybiByJiZyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0ic2NyaXB0Inx8ci50YWdOYW1lPT09InN0eWxlIik/dC52YWx1ZTpuNCh0LnZhbHVlLE9iamVjdC5hc3NpZ24oe30sYS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6Zm1hfSkpfXZhciBmbWEsc3dlPXUoKCk9PntpbGUoKTtmbWE9WyI8IiwiJiJdO2kobGxlLCJ0ZXh0Iil9KTtmdW5jdGlvbiBoT3QodCxlLHIsYSl7cmV0dXJuIGEuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNIdG1sP3QudmFsdWU6bGxlKHQsZSxyLGEpfXZhciBtT3Q9dSgoKT0+e3N3ZSgpO2koaE90LCJyYXciKX0pO2Z1bmN0aW9uIGdPdCh0LGUscixhKXtyZXR1cm4gYS5hbGwodCl9dmFyIGJPdD11KCgpPT57aShnT3QsInJvb3QiKX0pO2Z1bmN0aW9uIGhtYSh0KXt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIG5vZGUsIG5vdCBgIit0KyJgIil9ZnVuY3Rpb24gbW1hKHQpe2xldCBlPXQ7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY29tcGlsZSB1bmtub3duIG5vZGUgYCIrZS50eXBlKyJgIil9dmFyIHhPdCx2T3Q9dSgoKT0+e3R2ZSgpO1hOdCgpO2VPdCgpO2ZPdCgpO21PdCgpO2JPdCgpO3N3ZSgpO3hPdD1vMWUoInR5cGUiLHtpbnZhbGlkOmhtYSx1bmtub3duOm1tYSxoYW5kbGVyczp7Y29tbWVudDpRTnQsZG9jdHlwZTpKTnQsZWxlbWVudDpwT3QscmF3OmhPdCxyb290OmdPdCx0ZXh0OmxsZX19KTtpKGhtYSwiaW52YWxpZCIpO2kobW1hLCJ1bmtub3duIil9KTtmdW5jdGlvbiBud2UodCxlKXtsZXQgcj1lfHxnbWEsYT1yLnF1b3RlfHwnIicscz1hPT09JyInPyInIjonIic7aWYoYSE9PSciJyYmYSE9PSInIil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcXVvdGUgYCIrYSsiYCwgZXhwZWN0ZWQgYCdgIG9yIGBcImAiKTtyZXR1cm57b25lOnZtYSxhbGw6eW1hLHNldHRpbmdzOntvbWl0T3B0aW9uYWxUYWdzOnIub21pdE9wdGlvbmFsVGFnc3x8ITEsYWxsb3dQYXJzZUVycm9yczpyLmFsbG93UGFyc2VFcnJvcnN8fCExLGFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyczpyLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyc3x8ITEscXVvdGVTbWFydDpyLnF1b3RlU21hcnR8fCExLHByZWZlclVucXVvdGVkOnIucHJlZmVyVW5xdW90ZWR8fCExLHRpZ2h0QXR0cmlidXRlczpyLnRpZ2h0QXR0cmlidXRlc3x8ITEsdXBwZXJEb2N0eXBlOnIudXBwZXJEb2N0eXBlfHwhMSx0aWdodERvY3R5cGU6ci50aWdodERvY3R5cGV8fCExLGJvZ3VzQ29tbWVudHM6ci5ib2d1c0NvbW1lbnRzfHwhMSx0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM6ci50aWdodENvbW1hU2VwYXJhdGVkTGlzdHN8fCExLHRpZ2h0U2VsZkNsb3Npbmc6ci50aWdodFNlbGZDbG9zaW5nfHwhMSxjb2xsYXBzZUVtcHR5QXR0cmlidXRlczpyLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzfHwhMSxhbGxvd0Rhbmdlcm91c0h0bWw6ci5hbGxvd0Rhbmdlcm91c0h0bWx8fCExLHZvaWRzOnIudm9pZHN8fGdOdCxjaGFyYWN0ZXJSZWZlcmVuY2VzOnIuY2hhcmFjdGVyUmVmZXJlbmNlc3x8Ym1hLGNsb3NlU2VsZkNsb3Npbmc6ci5jbG9zZVNlbGZDbG9zaW5nfHwhMSxjbG9zZUVtcHR5RWxlbWVudHM6ci5jbG9zZUVtcHR5RWxlbWVudHN8fCExfSxzY2hlbWE6ci5zcGFjZT09PSJzdmciP3RsZTokTnQscXVvdGU6YSxhbHRlcm5hdGl2ZTpzfS5vbmUoQXJyYXkuaXNBcnJheSh0KT97dHlwZToicm9vdCIsY2hpbGRyZW46dH06dCx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiB2bWEodCxlLHIpe3JldHVybiB4T3QodCxlLHIsdGhpcyl9ZnVuY3Rpb24geW1hKHQpe2xldCBlPVtdLHI9dCYmdC5jaGlsZHJlbnx8eG1hLGE9LTE7Zm9yKDsrK2E8ci5sZW5ndGg7KWVbYV09dGhpcy5vbmUoclthXSxhLHQpO3JldHVybiBlLmpvaW4oIiIpfXZhciBnbWEsYm1hLHhtYSx5T3Q9dSgoKT0+e2JOdCgpO1F5ZSgpO3ZPdCgpO2dtYT17fSxibWE9e30seG1hPVtdO2kobndlLCJ0b0h0bWwiKTtpKHZtYSwib25lIik7aSh5bWEsImFsbCIpfSk7dmFyIHdPdD11KCgpPT57eU90KCl9KTtmdW5jdGlvbiB3eCh0KXtsZXQgZT10aGlzLHtoYW5kbGVyczpyLHNhbml0aXplOmEsLi4uc309dHx8d21hLG49ITEsbzt0eXBlb2YgYT09ImJvb2xlYW4iP249IWE6YSYmKG89YSksZS5jb21waWxlcj1sO2Z1bmN0aW9uIGwoYyxkKXtsZXQgZj1SeWUoYyx7aGFuZGxlcnM6cixhbGxvd0Rhbmdlcm91c0h0bWw6bn0pLHA9bj9mOkF5ZShmLG8pLGg9bndlKHAsey4uLnMsYWxsb3dEYW5nZXJvdXNIdG1sOm59KTtyZXR1cm4gZC5leHRuYW1lJiYoZC5leHRuYW1lPSIuaHRtbCIpLGMmJmMudHlwZT09PSJyb290IiYmaCYmL1teXHJcbl0vLnRlc3QoaC5jaGFyQXQoaC5sZW5ndGgtMSkpP2grYApgOmh9aShsLCJjb21waWxlciIpfXZhciB3bWEsa090PXUoKCk9Pnt1UHQoKTttTnQoKTt3T3QoKTt3bWE9e307aSh3eCwicmVtYXJrSHRtbCIpfSk7dmFyIFNPdD11KCgpPT57a090KCl9KTtmdW5jdGlvbiBreCh0KXtsZXQgZT10aGlzO2UuY29tcGlsZXI9cjtmdW5jdGlvbiByKGEpe3JldHVybiBrdmUoYSx7Li4uZS5kYXRhKCJzZXR0aW5ncyIpLC4uLnQsZXh0ZW5zaW9uczplLmRhdGEoInRvTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9aShyLCJjb21waWxlciIpfXZhciBNT3Q9dSgoKT0+e2IxZSgpO2koa3gsInJlbWFya1N0cmluZ2lmeSIpfSk7dmFyIENPdD11KCgpPT57TU90KCl9KTtmdW5jdGlvbiBrbWEodCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIHI9YXJndW1lbnRzW2VdO2Zvcih2YXIgYSBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGEpJiYodFthXT1yW2FdKX1yZXR1cm4gdH1mdW5jdGlvbiBvd2UodCxlKXtyZXR1cm4gQXJyYXkoZSsxKS5qb2luKHQpfWZ1bmN0aW9uIHpPdCh0KXtyZXR1cm4gdC5yZXBsYWNlKC9eXG4qLywiIil9ZnVuY3Rpb24gX090KHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlPjAmJnRbZS0xXT09PWAKYDspZS0tO3JldHVybiB0LnN1YnN0cmluZygwLGUpfWZ1bmN0aW9uIFRPdCh0KXtyZXR1cm4gX090KHpPdCh0KSl9ZnVuY3Rpb24gbHdlKHQpe3JldHVybiBjd2UodCxTbWEpfWZ1bmN0aW9uIERPdCh0KXtyZXR1cm4gY3dlKHQsTE90KX1mdW5jdGlvbiBNbWEodCl7cmV0dXJuIEFPdCh0LExPdCl9ZnVuY3Rpb24gQ21hKHQpe3JldHVybiBjd2UodCwkT3QpfWZ1bmN0aW9uIHptYSh0KXtyZXR1cm4gQU90KHQsJE90KX1mdW5jdGlvbiBjd2UodCxlKXtyZXR1cm4gZS5pbmRleE9mKHQubm9kZU5hbWUpPj0wfWZ1bmN0aW9uIEFPdCh0LGUpe3JldHVybiB0LmdldEVsZW1lbnRzQnlUYWdOYW1lJiZlLnNvbWUoZnVuY3Rpb24ocil7cmV0dXJuIHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocikubGVuZ3RofSl9ZnVuY3Rpb24gRU90KHQpe3JldHVybiBfbWEucmVkdWNlKGZ1bmN0aW9uKGUscil7cmV0dXJuIGUucmVwbGFjZShyWzBdLHJbMV0pfSx0KX1mdW5jdGlvbiBjbGUodCl7cmV0dXJuIHQ/dC5yZXBsYWNlKC8oXG4rXHMqKSsvZyxgCmApOiIifWZ1bmN0aW9uIGR3ZSh0KXt2YXIgZT10LnJlcGxhY2UoLyhbPD4oKV0pL2csIlxcJDEiKTtyZXR1cm4gZS5pbmRleE9mKCIgIik+PTA/IjwiK2UrIj4iOmV9ZnVuY3Rpb24gdXdlKHQpe3JldHVybiB0LnJlcGxhY2UoLyIvZywnXFwiJyl9ZnVuY3Rpb24gSU90KHQpe3RoaXMub3B0aW9ucz10LHRoaXMuX2tlZXA9W10sdGhpcy5fcmVtb3ZlPVtdLHRoaXMuYmxhbmtSdWxlPXtyZXBsYWNlbWVudDp0LmJsYW5rUmVwbGFjZW1lbnR9LHRoaXMua2VlcFJlcGxhY2VtZW50PXQua2VlcFJlcGxhY2VtZW50LHRoaXMuZGVmYXVsdFJ1bGU9e3JlcGxhY2VtZW50OnQuZGVmYXVsdFJlcGxhY2VtZW50fSx0aGlzLmFycmF5PVtdO2Zvcih2YXIgZSBpbiB0LnJ1bGVzKXRoaXMuYXJyYXkucHVzaCh0LnJ1bGVzW2VdKX1mdW5jdGlvbiBwd2UodCxlLHIpe2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgcz10W2FdO2lmKFRtYShzLGUscikpcmV0dXJuIHN9fWZ1bmN0aW9uIFRtYSh0LGUscil7dmFyIGE9dC5maWx0ZXI7aWYodHlwZW9mIGE9PSJzdHJpbmciKXtpZihhPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiEwfWVsc2UgaWYoQXJyYXkuaXNBcnJheShhKSl7aWYoYS5pbmRleE9mKGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSk+LTEpcmV0dXJuITB9ZWxzZSBpZih0eXBlb2YgYT09ImZ1bmN0aW9uIil7aWYoYS5jYWxsKHQsZSxyKSlyZXR1cm4hMH1lbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoImBmaWx0ZXJgIG5lZWRzIHRvIGJlIGEgc3RyaW5nLCBhcnJheSwgb3IgZnVuY3Rpb24iKX1mdW5jdGlvbiBMbWEodCl7dmFyIGU9dC5lbGVtZW50LHI9dC5pc0Jsb2NrLGE9dC5pc1ZvaWQscz10LmlzUHJlfHxmdW5jdGlvbihwKXtyZXR1cm4gcC5ub2RlTmFtZT09PSJQUkUifTtpZighKCFlLmZpcnN0Q2hpbGR8fHMoZSkpKXtmb3IodmFyIG49bnVsbCxvPSExLGw9bnVsbCxjPVBPdChsLGUscyk7YyE9PWU7KXtpZihjLm5vZGVUeXBlPT09M3x8Yy5ub2RlVHlwZT09PTQpe3ZhciBkPWMuZGF0YS5yZXBsYWNlKC9bIFxyXG5cdF0rL2csIiAiKTtpZigoIW58fC8gJC8udGVzdChuLmRhdGEpKSYmIW8mJmRbMF09PT0iICImJihkPWQuc3Vic3RyKDEpKSwhZCl7Yz1md2UoYyk7Y29udGludWV9Yy5kYXRhPWQsbj1jfWVsc2UgaWYoYy5ub2RlVHlwZT09PTEpcihjKXx8Yy5ub2RlTmFtZT09PSJCUiI/KG4mJihuLmRhdGE9bi5kYXRhLnJlcGxhY2UoLyAkLywiIikpLG49bnVsbCxvPSExKTphKGMpfHxzKGMpPyhuPW51bGwsbz0hMCk6biYmKG89ITEpO2Vsc2V7Yz1md2UoYyk7Y29udGludWV9dmFyIGY9UE90KGwsYyxzKTtsPWMsYz1mfW4mJihuLmRhdGE9bi5kYXRhLnJlcGxhY2UoLyAkLywiIiksbi5kYXRhfHxmd2UobikpfX1mdW5jdGlvbiBmd2UodCl7dmFyIGU9dC5uZXh0U2libGluZ3x8dC5wYXJlbnROb2RlO3JldHVybiB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCksZX1mdW5jdGlvbiBQT3QodCxlLHIpe3JldHVybiB0JiZ0LnBhcmVudE5vZGU9PT1lfHxyKGUpP2UubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZTplLmZpcnN0Q2hpbGR8fGUubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZX1mdW5jdGlvbiBEbWEoKXt2YXIgdD1od2UuRE9NUGFyc2VyLGU9ITE7dHJ5e25ldyB0KCkucGFyc2VGcm9tU3RyaW5nKCIiLCJ0ZXh0L2h0bWwiKSYmKGU9ITApfWNhdGNoe31yZXR1cm4gZX1mdW5jdGlvbiAkbWEoKXt2YXIgdD1pKGZ1bmN0aW9uKCl7fSwiUGFyc2VyIik7cmV0dXJuIEFtYSgpP3QucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZz1mdW5jdGlvbihlKXt2YXIgcj1uZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIik7cmV0dXJuIHIuZGVzaWduTW9kZT0ib24iLHIub3BlbigpLHIud3JpdGUoZSksci5jbG9zZSgpLHJ9OnQucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZz1mdW5jdGlvbihlKXt2YXIgcj1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpO3JldHVybiByLm9wZW4oKSxyLndyaXRlKGUpLHIuY2xvc2UoKSxyfSx0fWZ1bmN0aW9uIEFtYSgpe3ZhciB0PSExO3RyeXtkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLm9wZW4oKX1jYXRjaHtod2UuQWN0aXZlWE9iamVjdCYmKHQ9ITApfXJldHVybiB0fWZ1bmN0aW9uIEltYSh0LGUpe3ZhciByO2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7dmFyIGE9UG1hKCkucGFyc2VGcm9tU3RyaW5nKCc8eC10dXJuZG93biBpZD0idHVybmRvd24tcm9vdCI+Jyt0KyI8L3gtdHVybmRvd24+IiwidGV4dC9odG1sIik7cj1hLmdldEVsZW1lbnRCeUlkKCJ0dXJuZG93bi1yb290Iil9ZWxzZSByPXQuY2xvbmVOb2RlKCEwKTtyZXR1cm4gTG1hKHtlbGVtZW50OnIsaXNCbG9jazpsd2UsaXNWb2lkOkRPdCxpc1ByZTplLnByZWZvcm1hdHRlZENvZGU/Tm1hOm51bGx9KSxyfWZ1bmN0aW9uIFBtYSgpe3JldHVybiBtd2U9bXdlfHxuZXcgRW1hLG13ZX1mdW5jdGlvbiBObWEodCl7cmV0dXJuIHQubm9kZU5hbWU9PT0iUFJFInx8dC5ub2RlTmFtZT09PSJDT0RFIn1mdW5jdGlvbiBPbWEodCxlKXtyZXR1cm4gdC5pc0Jsb2NrPWx3ZSh0KSx0LmlzQ29kZT10Lm5vZGVOYW1lPT09IkNPREUifHx0LnBhcmVudE5vZGUuaXNDb2RlLHQuaXNCbGFuaz1SbWEodCksdC5mbGFua2luZ1doaXRlc3BhY2U9Rm1hKHQsZSksdH1mdW5jdGlvbiBSbWEodCl7cmV0dXJuIURPdCh0KSYmIUNtYSh0KSYmL15ccyokL2kudGVzdCh0LnRleHRDb250ZW50KSYmIU1tYSh0KSYmIXptYSh0KX1mdW5jdGlvbiBGbWEodCxlKXtpZih0LmlzQmxvY2t8fGUucHJlZm9ybWF0dGVkQ29kZSYmdC5pc0NvZGUpcmV0dXJue2xlYWRpbmc6IiIsdHJhaWxpbmc6IiJ9O3ZhciByPUJtYSh0LnRleHRDb250ZW50KTtyZXR1cm4gci5sZWFkaW5nQXNjaWkmJk5PdCgibGVmdCIsdCxlKSYmKHIubGVhZGluZz1yLmxlYWRpbmdOb25Bc2NpaSksci50cmFpbGluZ0FzY2lpJiZOT3QoInJpZ2h0Iix0LGUpJiYoci50cmFpbGluZz1yLnRyYWlsaW5nTm9uQXNjaWkpLHtsZWFkaW5nOnIubGVhZGluZyx0cmFpbGluZzpyLnRyYWlsaW5nfX1mdW5jdGlvbiBCbWEodCl7dmFyIGU9dC5tYXRjaCgvXigoWyBcdFxyXG5dKikoXHMqKSkoPzooPz1cUylbXHNcU10qXFMpPygoXHMqPykoWyBcdFxyXG5dKikpJC8pO3JldHVybntsZWFkaW5nOmVbMV0sbGVhZGluZ0FzY2lpOmVbMl0sbGVhZGluZ05vbkFzY2lpOmVbM10sdHJhaWxpbmc6ZVs0XSx0cmFpbGluZ05vbkFzY2lpOmVbNV0sdHJhaWxpbmdBc2NpaTplWzZdfX1mdW5jdGlvbiBOT3QodCxlLHIpe3ZhciBhLHMsbjtyZXR1cm4gdD09PSJsZWZ0Ij8oYT1lLnByZXZpb3VzU2libGluZyxzPS8gJC8pOihhPWUubmV4dFNpYmxpbmcscz0vXiAvKSxhJiYoYS5ub2RlVHlwZT09PTM/bj1zLnRlc3QoYS5ub2RlVmFsdWUpOnIucHJlZm9ybWF0dGVkQ29kZSYmYS5ub2RlTmFtZT09PSJDT0RFIj9uPSExOmEubm9kZVR5cGU9PT0xJiYhbHdlKGEpJiYobj1zLnRlc3QoYS50ZXh0Q29udGVudCkpKSxufWZ1bmN0aW9uIFB1KHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFB1KSlyZXR1cm4gbmV3IFB1KHQpO3ZhciBlPXtydWxlczpzbyxoZWFkaW5nU3R5bGU6InNldGV4dCIsaHI6IiogKiAqIixidWxsZXRMaXN0TWFya2VyOiIqIixjb2RlQmxvY2tTdHlsZToiaW5kZW50ZWQiLGZlbmNlOiJgYGAiLGVtRGVsaW1pdGVyOiJfIixzdHJvbmdEZWxpbWl0ZXI6IioqIixsaW5rU3R5bGU6ImlubGluZWQiLGxpbmtSZWZlcmVuY2VTdHlsZToiZnVsbCIsYnI6IiAgIixwcmVmb3JtYXR0ZWRDb2RlOiExLGJsYW5rUmVwbGFjZW1lbnQ6aShmdW5jdGlvbihyLGEpe3JldHVybiBhLmlzQmxvY2s/YAoKYDoiIn0sImJsYW5rUmVwbGFjZW1lbnQiKSxrZWVwUmVwbGFjZW1lbnQ6aShmdW5jdGlvbihyLGEpe3JldHVybiBhLmlzQmxvY2s/YAoKYCthLm91dGVySFRNTCtgCgpgOmEub3V0ZXJIVE1MfSwia2VlcFJlcGxhY2VtZW50IiksZGVmYXVsdFJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocixhKXtyZXR1cm4gYS5pc0Jsb2NrP2AKCmArcitgCgpgOnJ9LCJkZWZhdWx0UmVwbGFjZW1lbnQiKX07dGhpcy5vcHRpb25zPWttYSh7fSxlLHQpLHRoaXMucnVsZXM9bmV3IElPdCh0aGlzLm9wdGlvbnMpfWZ1bmN0aW9uIE9PdCh0KXt2YXIgZT10aGlzO3JldHVybiBIbWEuY2FsbCh0LmNoaWxkTm9kZXMsZnVuY3Rpb24ocixhKXthPW5ldyBPbWEoYSxlLm9wdGlvbnMpO3ZhciBzPSIiO3JldHVybiBhLm5vZGVUeXBlPT09Mz9zPWEuaXNDb2RlP2Eubm9kZVZhbHVlOmUuZXNjYXBlKGEubm9kZVZhbHVlKTphLm5vZGVUeXBlPT09MSYmKHM9Vm1hLmNhbGwoZSxhKSksUk90KHIscyl9LCIiKX1mdW5jdGlvbiBxbWEodCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5ydWxlcy5mb3JFYWNoKGZ1bmN0aW9uKHIpe3R5cGVvZiByLmFwcGVuZD09ImZ1bmN0aW9uIiYmKHQ9Uk90KHQsci5hcHBlbmQoZS5vcHRpb25zKSkpfSksdC5yZXBsYWNlKC9eW1x0XHJcbl0rLywiIikucmVwbGFjZSgvW1x0XHJcblxzXSskLywiIil9ZnVuY3Rpb24gVm1hKHQpe3ZhciBlPXRoaXMucnVsZXMuZm9yTm9kZSh0KSxyPU9PdC5jYWxsKHRoaXMsdCksYT10LmZsYW5raW5nV2hpdGVzcGFjZTtyZXR1cm4oYS5sZWFkaW5nfHxhLnRyYWlsaW5nKSYmKHI9ci50cmltKCkpLGEubGVhZGluZytlLnJlcGxhY2VtZW50KHIsdCx0aGlzLm9wdGlvbnMpK2EudHJhaWxpbmd9ZnVuY3Rpb24gUk90KHQsZSl7dmFyIHI9X090KHQpLGE9ek90KGUpLHM9TWF0aC5tYXgodC5sZW5ndGgtci5sZW5ndGgsZS5sZW5ndGgtYS5sZW5ndGgpLG49YAoKYC5zdWJzdHJpbmcoMCxzKTtyZXR1cm4gcituK2F9ZnVuY3Rpb24gam1hKHQpe3JldHVybiB0IT1udWxsJiYodHlwZW9mIHQ9PSJzdHJpbmcifHx0Lm5vZGVUeXBlJiYodC5ub2RlVHlwZT09PTF8fHQubm9kZVR5cGU9PT05fHx0Lm5vZGVUeXBlPT09MTEpKX12YXIgU21hLExPdCwkT3QsX21hLHNvLGh3ZSxFbWEsbXdlLEhtYSxGT3Q9dSgoKT0+e2koa21hLCJleHRlbmQiKTtpKG93ZSwicmVwZWF0Iik7aSh6T3QsInRyaW1MZWFkaW5nTmV3bGluZXMiKTtpKF9PdCwidHJpbVRyYWlsaW5nTmV3bGluZXMiKTtpKFRPdCwidHJpbU5ld2xpbmVzIik7U21hPVsiQUREUkVTUyIsIkFSVElDTEUiLCJBU0lERSIsIkFVRElPIiwiQkxPQ0tRVU9URSIsIkJPRFkiLCJDQU5WQVMiLCJDRU5URVIiLCJERCIsIkRJUiIsIkRJViIsIkRMIiwiRFQiLCJGSUVMRFNFVCIsIkZJR0NBUFRJT04iLCJGSUdVUkUiLCJGT09URVIiLCJGT1JNIiwiRlJBTUVTRVQiLCJIMSIsIkgyIiwiSDMiLCJINCIsIkg1IiwiSDYiLCJIRUFERVIiLCJIR1JPVVAiLCJIUiIsIkhUTUwiLCJJU0lOREVYIiwiTEkiLCJNQUlOIiwiTUVOVSIsIk5BViIsIk5PRlJBTUVTIiwiTk9TQ1JJUFQiLCJPTCIsIk9VVFBVVCIsIlAiLCJQUkUiLCJTRUNUSU9OIiwiVEFCTEUiLCJUQk9EWSIsIlREIiwiVEZPT1QiLCJUSCIsIlRIRUFEIiwiVFIiLCJVTCJdO2kobHdlLCJpc0Jsb2NrIik7TE90PVsiQVJFQSIsIkJBU0UiLCJCUiIsIkNPTCIsIkNPTU1BTkQiLCJFTUJFRCIsIkhSIiwiSU1HIiwiSU5QVVQiLCJLRVlHRU4iLCJMSU5LIiwiTUVUQSIsIlBBUkFNIiwiU09VUkNFIiwiVFJBQ0siLCJXQlIiXTtpKERPdCwiaXNWb2lkIik7aShNbWEsImhhc1ZvaWQiKTskT3Q9WyJBIiwiVEFCTEUiLCJUSEVBRCIsIlRCT0RZIiwiVEZPT1QiLCJUSCIsIlREIiwiSUZSQU1FIiwiU0NSSVBUIiwiQVVESU8iLCJWSURFTyJdO2koQ21hLCJpc01lYW5pbmdmdWxXaGVuQmxhbmsiKTtpKHptYSwiaGFzTWVhbmluZ2Z1bFdoZW5CbGFuayIpO2koY3dlLCJpcyIpO2koQU90LCJoYXMiKTtfbWE9W1svXFwvZywiXFxcXCJdLFsvXCovZywiXFwqIl0sWy9eLS9nLCJcXC0iXSxbL15cKyAvZywiXFwrICJdLFsvXig9KykvZywiXFwkMSJdLFsvXigjezEsNn0pIC9nLCJcXCQxICJdLFsvYC9nLCJcXGAiXSxbL15+fn4vZywiXFx+fn4iXSxbL1xbL2csIlxcWyJdLFsvXF0vZywiXFxdIl0sWy9ePi9nLCJcXD4iXSxbL18vZywiXFxfIl0sWy9eKFxkKylcLiAvZywiJDFcXC4gIl1dO2koRU90LCJlc2NhcGVNYXJrZG93biIpO3NvPXt9O3NvLnBhcmFncmFwaD17ZmlsdGVyOiJwIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQpe3JldHVybmAKCmArdCtgCgpgfSwicmVwbGFjZW1lbnQiKX0sc28ubGluZUJyZWFrPXtmaWx0ZXI6ImJyIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gci5icitgCmB9LCJyZXBsYWNlbWVudCIpfSxzby5oZWFkaW5nPXtmaWx0ZXI6WyJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1OdW1iZXIoZS5ub2RlTmFtZS5jaGFyQXQoMSkpO2lmKHIuaGVhZGluZ1N0eWxlPT09InNldGV4dCImJmE8Myl7dmFyIHM9b3dlKGE9PT0xPyI9IjoiLSIsdC5sZW5ndGgpO3JldHVybmAKCmArdCtgCmArcytgCgpgfWVsc2UgcmV0dXJuYAoKYCtvd2UoIiMiLGEpKyIgIit0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5ibG9ja3F1b3RlPXtmaWx0ZXI6ImJsb2NrcXVvdGUiLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ9VE90KHQpLnJlcGxhY2UoL14vZ20sIj4gIiksYAoKYCt0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5saXN0PXtmaWx0ZXI6WyJ1bCIsIm9sIl0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUpe3ZhciByPWUucGFyZW50Tm9kZTtyZXR1cm4gci5ub2RlTmFtZT09PSJMSSImJnIubGFzdEVsZW1lbnRDaGlsZD09PWU/YApgK3Q6YAoKYCt0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5saXN0SXRlbT17ZmlsdGVyOiJsaSIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7dmFyIGE9ci5idWxsZXRMaXN0TWFya2VyKyIgICAiLHM9ZS5wYXJlbnROb2RlO2lmKHMubm9kZU5hbWU9PT0iT0wiKXt2YXIgbj1zLmdldEF0dHJpYnV0ZSgic3RhcnQiKSxvPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwocy5jaGlsZHJlbixlKTthPShuP051bWJlcihuKStvOm8rMSkrIi4gICJ9dmFyIGw9L1xuJC8udGVzdCh0KTtyZXR1cm4gdD1UT3QodCkrKGw/YApgOiIiKSx0PXQucmVwbGFjZSgvXG4vZ20sYApgKyIgIi5yZXBlYXQoYS5sZW5ndGgpKSxhK3QrKGUubmV4dFNpYmxpbmc/YApgOiIiKX0sInJlcGxhY2VtZW50Iil9LHNvLmluZGVudGVkQ29kZUJsb2NrPXtmaWx0ZXI6aShmdW5jdGlvbih0LGUpe3JldHVybiBlLmNvZGVCbG9ja1N0eWxlPT09ImluZGVudGVkIiYmdC5ub2RlTmFtZT09PSJQUkUiJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlLHIpe3JldHVybmAKCiAgICBgK2UuZmlyc3RDaGlsZC50ZXh0Q29udGVudC5yZXBsYWNlKC9cbi9nLGAKICAgIGApK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5mZW5jZWRDb2RlQmxvY2s9e2ZpbHRlcjppKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuY29kZUJsb2NrU3R5bGU9PT0iZmVuY2VkIiYmdC5ub2RlTmFtZT09PSJQUkUiJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIixzPShhLm1hdGNoKC9sYW5ndWFnZS0oXFMrKS8pfHxbbnVsbCwiIl0pWzFdLG49ZS5maXJzdENoaWxkLnRleHRDb250ZW50LG89ci5mZW5jZS5jaGFyQXQoMCksbD0zLGM9bmV3IFJlZ0V4cCgiXiIrbysiezMsfSIsImdtIiksZDtkPWMuZXhlYyhuKTspZFswXS5sZW5ndGg+PWwmJihsPWRbMF0ubGVuZ3RoKzEpO3ZhciBmPW93ZShvLGwpO3JldHVybmAKCmArZitzK2AKYCtuLnJlcGxhY2UoL1xuJC8sIiIpK2AKYCtmK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5ob3Jpem9udGFsUnVsZT17ZmlsdGVyOiJociIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuYAoKYCtyLmhyK2AKCmB9LCJyZXBsYWNlbWVudCIpfSxzby5pbmxpbmVMaW5rPXtmaWx0ZXI6aShmdW5jdGlvbih0LGUpe3JldHVybiBlLmxpbmtTdHlsZT09PSJpbmxpbmVkIiYmdC5ub2RlTmFtZT09PSJBIiYmdC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlKXt2YXIgcj1kd2UoZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSksYT11d2UoY2xlKGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKSkscz1hPycgIicrYSsnIic6IiI7cmV0dXJuIlsiK3QrIl0oIityK3MrIikifSwicmVwbGFjZW1lbnQiKX0sc28ucmVmZXJlbmNlTGluaz17ZmlsdGVyOmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5saW5rU3R5bGU9PT0icmVmZXJlbmNlZCImJnQubm9kZU5hbWU9PT0iQSImJnQuZ2V0QXR0cmlidXRlKCJocmVmIil9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1kd2UoZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSkscz1jbGUoZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpO3MmJihzPScgIicrdXdlKHMpKyciJyk7dmFyIG4sbztzd2l0Y2goci5saW5rUmVmZXJlbmNlU3R5bGUpe2Nhc2UiY29sbGFwc2VkIjpuPSJbIit0KyJdW10iLG89IlsiK3QrIl06ICIrYStzO2JyZWFrO2Nhc2Uic2hvcnRjdXQiOm49IlsiK3QrIl0iLG89IlsiK3QrIl06ICIrYStzO2JyZWFrO2RlZmF1bHQ6dmFyIGw9dGhpcy5yZWZlcmVuY2VzLmxlbmd0aCsxO249IlsiK3QrIl1bIitsKyJdIixvPSJbIitsKyJdOiAiK2Erc31yZXR1cm4gdGhpcy5yZWZlcmVuY2VzLnB1c2gobyksbn0sInJlcGxhY2VtZW50IikscmVmZXJlbmNlczpbXSxhcHBlbmQ6aShmdW5jdGlvbih0KXt2YXIgZT0iIjtyZXR1cm4gdGhpcy5yZWZlcmVuY2VzLmxlbmd0aCYmKGU9YAoKYCt0aGlzLnJlZmVyZW5jZXMuam9pbihgCmApK2AKCmAsdGhpcy5yZWZlcmVuY2VzPVtdKSxlfSwiYXBwZW5kIil9LHNvLmVtcGhhc2lzPXtmaWx0ZXI6WyJlbSIsImkiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdC50cmltKCk/ci5lbURlbGltaXRlcit0K3IuZW1EZWxpbWl0ZXI6IiJ9LCJyZXBsYWNlbWVudCIpfSxzby5zdHJvbmc9e2ZpbHRlcjpbInN0cm9uZyIsImIiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdC50cmltKCk/ci5zdHJvbmdEZWxpbWl0ZXIrdCtyLnN0cm9uZ0RlbGltaXRlcjoiIn0sInJlcGxhY2VtZW50Iil9LHNvLmNvZGU9e2ZpbHRlcjppKGZ1bmN0aW9uKHQpe3ZhciBlPXQucHJldmlvdXNTaWJsaW5nfHx0Lm5leHRTaWJsaW5nLHI9dC5wYXJlbnROb2RlLm5vZGVOYW1lPT09IlBSRSImJiFlO3JldHVybiB0Lm5vZGVOYW1lPT09IkNPREUiJiYhcn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIiI7dD10LnJlcGxhY2UoL1xyP1xufFxyL2csIiAiKTtmb3IodmFyIGU9L15gfF4gLio/W14gXS4qICR8YCQvLnRlc3QodCk/IiAiOiIiLHI9ImAiLGE9dC5tYXRjaCgvYCsvZ20pfHxbXTthLmluZGV4T2YocikhPT0tMTspcj1yKyJgIjtyZXR1cm4gcitlK3QrZStyfSwicmVwbGFjZW1lbnQiKX0sc28uaW1hZ2U9e2ZpbHRlcjoiaW1nIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSl7dmFyIHI9RU90KGNsZShlLmdldEF0dHJpYnV0ZSgiYWx0IikpKSxhPWR3ZShlLmdldEF0dHJpYnV0ZSgic3JjIil8fCIiKSxzPWNsZShlLmdldEF0dHJpYnV0ZSgidGl0bGUiKSksbj1zPycgIicrdXdlKHMpKyciJzoiIjtyZXR1cm4gYT8iIVsiK3IrIl0oIithK24rIikiOiIifSwicmVwbGFjZW1lbnQiKX07aShjbGUsImNsZWFuQXR0cmlidXRlIik7aShkd2UsImVzY2FwZUxpbmtEZXN0aW5hdGlvbiIpO2kodXdlLCJlc2NhcGVMaW5rVGl0bGUiKTtpKElPdCwiUnVsZXMiKSxJT3QucHJvdG90eXBlPXthZGQ6aShmdW5jdGlvbih0LGUpe3RoaXMuYXJyYXkudW5zaGlmdChlKX0sImFkZCIpLGtlZXA6aShmdW5jdGlvbih0KXt0aGlzLl9rZWVwLnVuc2hpZnQoe2ZpbHRlcjp0LHJlcGxhY2VtZW50OnRoaXMua2VlcFJlcGxhY2VtZW50fSl9LCJrZWVwIikscmVtb3ZlOmkoZnVuY3Rpb24odCl7dGhpcy5fcmVtb3ZlLnVuc2hpZnQoe2ZpbHRlcjp0LHJlcGxhY2VtZW50OmkoZnVuY3Rpb24oKXtyZXR1cm4iIn0sInJlcGxhY2VtZW50Iil9KX0sInJlbW92ZSIpLGZvck5vZGU6aShmdW5jdGlvbih0KXtpZih0LmlzQmxhbmspcmV0dXJuIHRoaXMuYmxhbmtSdWxlO3ZhciBlO3JldHVybihlPXB3ZSh0aGlzLmFycmF5LHQsdGhpcy5vcHRpb25zKSl8fChlPXB3ZSh0aGlzLl9rZWVwLHQsdGhpcy5vcHRpb25zKSl8fChlPXB3ZSh0aGlzLl9yZW1vdmUsdCx0aGlzLm9wdGlvbnMpKT9lOnRoaXMuZGVmYXVsdFJ1bGV9LCJmb3JOb2RlIiksZm9yRWFjaDppKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dGhpcy5hcnJheS5sZW5ndGg7ZSsrKXQodGhpcy5hcnJheVtlXSxlKX0sImZvckVhY2giKX07aShwd2UsImZpbmRSdWxlIik7aShUbWEsImZpbHRlclZhbHVlIik7aShMbWEsImNvbGxhcHNlV2hpdGVzcGFjZSIpO2koZndlLCJyZW1vdmUiKTtpKFBPdCwibmV4dCIpO2h3ZT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e307aShEbWEsImNhblBhcnNlSFRNTE5hdGl2ZWx5Iik7aSgkbWEsImNyZWF0ZUhUTUxQYXJzZXIiKTtpKEFtYSwic2hvdWxkVXNlQWN0aXZlWCIpO0VtYT1EbWEoKT9od2UuRE9NUGFyc2VyOiRtYSgpO2koSW1hLCJSb290Tm9kZSIpO2koUG1hLCJodG1sUGFyc2VyIik7aShObWEsImlzUHJlT3JDb2RlIik7aShPbWEsIk5vZGUiKTtpKFJtYSwiaXNCbGFuayIpO2koRm1hLCJmbGFua2luZ1doaXRlc3BhY2UiKTtpKEJtYSwiZWRnZVdoaXRlc3BhY2UiKTtpKE5PdCwiaXNGbGFua2VkQnlXaGl0ZXNwYWNlIik7SG1hPUFycmF5LnByb3RvdHlwZS5yZWR1Y2U7aShQdSwiVHVybmRvd25TZXJ2aWNlIiksUHUucHJvdG90eXBlPXt0dXJuZG93bjppKGZ1bmN0aW9uKHQpe2lmKCFqbWEodCkpdGhyb3cgbmV3IFR5cGVFcnJvcih0KyIgaXMgbm90IGEgc3RyaW5nLCBvciBhbiBlbGVtZW50L2RvY3VtZW50L2ZyYWdtZW50IG5vZGUuIik7aWYodD09PSIiKXJldHVybiIiO3ZhciBlPU9PdC5jYWxsKHRoaXMsbmV3IEltYSh0LHRoaXMub3B0aW9ucykpO3JldHVybiBxbWEuY2FsbCh0aGlzLGUpfSwidHVybmRvd24iKSx1c2U6aShmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMudXNlKHRbZV0pO2Vsc2UgaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpdCh0aGlzKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoInBsdWdpbiBtdXN0IGJlIGEgRnVuY3Rpb24gb3IgYW4gQXJyYXkgb2YgRnVuY3Rpb25zIik7cmV0dXJuIHRoaXN9LCJ1c2UiKSxhZGRSdWxlOmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5ydWxlcy5hZGQodCxlKSx0aGlzfSwiYWRkUnVsZSIpLGtlZXA6aShmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ydWxlcy5rZWVwKHQpLHRoaXN9LCJrZWVwIikscmVtb3ZlOmkoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucnVsZXMucmVtb3ZlKHQpLHRoaXN9LCJyZW1vdmUiKSxlc2NhcGU6aShmdW5jdGlvbih0KXtyZXR1cm4gRU90KHQpfSwiZXNjYXBlIil9O2koT090LCJwcm9jZXNzIik7aShxbWEsInBvc3RQcm9jZXNzIik7aShWbWEsInJlcGxhY2VtZW50Rm9yTm9kZSIpO2koUk90LCJqb2luIik7aShqbWEsImNhbkNvbnZlcnQiKX0pO3ZhciB3d2U9e307VmUod3dlLHtnZm06KCk9PnFPdCxoaWdobGlnaHRlZENvZGVCbG9jazooKT0+YndlLHN0cmlrZXRocm91Z2g6KCk9Pnh3ZSx0YWJsZXM6KCk9PnZ3ZSx0YXNrTGlzdEl0ZW1zOigpPT55d2V9KTtmdW5jdGlvbiBid2UodCl7dC5hZGRSdWxlKCJoaWdobGlnaHRlZENvZGVCbG9jayIse2ZpbHRlcjppKGZ1bmN0aW9uKGUpe3ZhciByPWUuZmlyc3RDaGlsZDtyZXR1cm4gZS5ub2RlTmFtZT09PSJESVYiJiZCT3QudGVzdChlLmNsYXNzTmFtZSkmJnImJnIubm9kZU5hbWU9PT0iUFJFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24oZSxyLGEpe3ZhciBzPXIuY2xhc3NOYW1lfHwiIixuPShzLm1hdGNoKEJPdCl8fFtudWxsLCIiXSlbMV07cmV0dXJuYAoKYCthLmZlbmNlK24rYApgK3IuZmlyc3RDaGlsZC50ZXh0Q29udGVudCtgCmArYS5mZW5jZStgCgpgfSwicmVwbGFjZW1lbnQiKX0pfWZ1bmN0aW9uIHh3ZSh0KXt0LmFkZFJ1bGUoInN0cmlrZXRocm91Z2giLHtmaWx0ZXI6WyJkZWwiLCJzIiwic3RyaWtlIl0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbihlKXtyZXR1cm4ifiIrZSsifiJ9LCJyZXBsYWNlbWVudCIpfSl9ZnVuY3Rpb24gZ3dlKHQpe3ZhciBlPXQucGFyZW50Tm9kZTtyZXR1cm4gZS5ub2RlTmFtZT09PSJUSEVBRCJ8fGUuZmlyc3RDaGlsZD09PXQmJihlLm5vZGVOYW1lPT09IlRBQkxFInx8R21hKGUpKSYmV21hLmNhbGwodC5jaGlsZE5vZGVzLGZ1bmN0aW9uKHIpe3JldHVybiByLm5vZGVOYW1lPT09IlRIIn0pfWZ1bmN0aW9uIEdtYSh0KXt2YXIgZT10LnByZXZpb3VzU2libGluZztyZXR1cm4gdC5ub2RlTmFtZT09PSJUQk9EWSImJighZXx8ZS5ub2RlTmFtZT09PSJUSEVBRCImJi9eXHMqJC9pLnRlc3QoZS50ZXh0Q29udGVudCkpfWZ1bmN0aW9uIEhPdCh0LGUpe3ZhciByPVVtYS5jYWxsKGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLGUpLGE9IiAiO3JldHVybiByPT09MCYmKGE9InwgIiksYSt0KyIgfCJ9ZnVuY3Rpb24gdndlKHQpe3Qua2VlcChmdW5jdGlvbihyKXtyZXR1cm4gci5ub2RlTmFtZT09PSJUQUJMRSImJiFnd2Uoci5yb3dzWzBdKX0pO2Zvcih2YXIgZSBpbiBTeCl0LmFkZFJ1bGUoZSxTeFtlXSl9ZnVuY3Rpb24geXdlKHQpe3QuYWRkUnVsZSgidGFza0xpc3RJdGVtcyIse2ZpbHRlcjppKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT0iY2hlY2tib3giJiZlLnBhcmVudE5vZGUubm9kZU5hbWU9PT0iTEkifSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihlLHIpe3JldHVybihyLmNoZWNrZWQ/Ilt4XSI6IlsgXSIpKyIgIn0sInJlcGxhY2VtZW50Iil9KX1mdW5jdGlvbiBxT3QodCl7dC51c2UoW2J3ZSx4d2UsdndlLHl3ZV0pfXZhciBCT3QsVW1hLFdtYSxTeCxWT3Q9dSgoKT0+e0JPdD0vaGlnaGxpZ2h0LSg/OnRleHR8c291cmNlKS0oW2EtejAtOV0rKS87aShid2UsImhpZ2hsaWdodGVkQ29kZUJsb2NrIik7aSh4d2UsInN0cmlrZXRocm91Z2giKTtVbWE9QXJyYXkucHJvdG90eXBlLmluZGV4T2YsV21hPUFycmF5LnByb3RvdHlwZS5ldmVyeSxTeD17fTtTeC50YWJsZUNlbGw9e2ZpbHRlcjpbInRoIiwidGQiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEhPdCh0LGUpfSwicmVwbGFjZW1lbnQiKX0sU3gudGFibGVSb3c9e2ZpbHRlcjoidHIiLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlKXt2YXIgcj0iIixhPXtsZWZ0OiI6LS0iLHJpZ2h0OiItLToiLGNlbnRlcjoiOi06In07aWYoZ3dlKGUpKWZvcih2YXIgcz0wO3M8ZS5jaGlsZE5vZGVzLmxlbmd0aDtzKyspe3ZhciBuPSItLS0iLG89KGUuY2hpbGROb2Rlc1tzXS5nZXRBdHRyaWJ1dGUoImFsaWduIil8fCIiKS50b0xvd2VyQ2FzZSgpO28mJihuPWFbb118fG4pLHIrPUhPdChuLGUuY2hpbGROb2Rlc1tzXSl9cmV0dXJuYApgK3QrKHI/YApgK3I6IiIpfSwicmVwbGFjZW1lbnQiKX0sU3gudGFibGU9e2ZpbHRlcjppKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVOYW1lPT09IlRBQkxFIiYmZ3dlKHQucm93c1swXSl9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQpe3JldHVybiB0PXQucmVwbGFjZShgCgpgLGAKYCksYAoKYCt0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSxTeC50YWJsZVNlY3Rpb249e2ZpbHRlcjpbInRoZWFkIiwidGJvZHkiLCJ0Zm9vdCJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCl7cmV0dXJuIHR9LCJyZXBsYWNlbWVudCIpfTtpKGd3ZSwiaXNIZWFkaW5nUm93Iik7aShHbWEsImlzRmlyc3RUYm9keSIpO2koSE90LCJjZWxsIik7aSh2d2UsInRhYmxlcyIpO2koeXdlLCJ0YXNrTGlzdEl0ZW1zIik7aShxT3QsImdmbSIpfSk7dmFyIGt3ZSxTd2U9dSgoKT0+e0REdCgpO2MkdCgpO21JdCgpO0hJdCgpO0pJdCgpO1NPdCgpO0NPdCgpO0ZPdCgpO1ZPdCgpO2t3ZT13d2V9KTt2YXIgWW1hLGRsZSxVT3Q9dSgoKT0+e1N3ZSgpO1ltYT1pKHQ9PnQudHlwZT09PSJ5YW1sIiYmInZhbHVlImluIHQmJnR5cGVvZiB0LnZhbHVlPT0ic3RyaW5nIiwiaXNZYW1sTm9kZSIpLGRsZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIk1kUGFyc2VkUmVzdWx0Iil9Y29uc3RydWN0b3IoKXt0aGlzLm9yaWdpbmFsU3RyaW5nPSIiLHRoaXMudGl0bGU9IiIsdGhpcy5odG1sPSIiLHRoaXMuZnJvbnRtYXR0ZXJEYXRhPXt9fXN0YXRpYyBhc3luYyBjcmVhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl7bGV0IHI9bmV3IHQ7cmV0dXJuIGF3YWl0IHIudXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKGUpLHJ9YXN5bmMgdXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKGUpe3RoaXMub3JpZ2luYWxTdHJpbmc9ZTtsZXQgcixhPWF3YWl0IHdNKCkudXNlKG14KS51c2UoaHgpLnVzZShieCxbInlhbWwiLCJ0b21sIl0pLnVzZShreCkudXNlKHd4KS51c2UoKCk9PnM9PntsZXQgbj1zLmNoaWxkcmVuLmZpbmQoWW1hKTtuJiYocj1uLnZhbHVlKX0pLnByb2Nlc3MoZSk7dGhpcy5odG1sPWEudG9TdHJpbmcoKSxyP3RoaXMuZnJvbnRtYXR0ZXJEYXRhPWF3YWl0IGJNLnlhbWxTdHJpbmdUb09iamVjdChyKTp0aGlzLmZyb250bWF0dGVyRGF0YT17fX19fSk7dmFyIFVNPXt9O1ZlKFVNLHtTbWFydE1hcmtkb3duOigpPT5Nd2V9KTt2YXIgTXdlLFdPdD11KCgpPT57U3dlKCk7VU90KCk7TXdlPWNsYXNzIHR7c3RhdGlje2kodGhpcywiU21hcnRNYXJrZG93biIpfXN0YXRpYyBhc3luYyBlYXN5TWFya2Rvd25Ub0h0bWwoZSl7cmV0dXJuKGF3YWl0IG5ldyB0KCkuZ2V0TWRQYXJzZWRSZXN1bHRGcm9tTWFya2Rvd24oZSkpLmh0bWx9Y29uc3RydWN0b3IoKXt9YXN5bmMgZ2V0TWRQYXJzZWRSZXN1bHRGcm9tTWFya2Rvd24oZSl7cmV0dXJuIGF3YWl0IGRsZS5jcmVhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl9aHRtbFRvTWFya2Rvd24oZSl7bGV0IHI9bmV3IFB1KHtoZWFkaW5nU3R5bGU6ImF0eCIsY29kZUJsb2NrU3R5bGU6ImZlbmNlZCJ9KTtyZXR1cm4gci51c2Uoa3dlLmdmbSksci50dXJuZG93bihlKX19fSk7dmFyIFhPdD1OdChCMj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoQjIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEIyLlBhdGhFcnJvcj1CMi5Ub2tlbkRhdGE9dm9pZCAwLEIyLnBhcnNlPV93ZSxCMi5jb21waWxlPVhtYSxCMi5tYXRjaD1lNWEsQjIucGF0aFRvUmVnZXhwPUtPdCxCMi5zdHJpbmdpZnk9cjVhO3ZhciBDd2U9Ii8iLHp3ZT1pKHQ9PnQsIk5PT1BfVkFMVUUiKSxLbWE9L15bJF9ccHtJRF9TdGFydH1dJC91LEdPdD0vXlskXHUyMDBjXHUyMDBkXHB7SURfQ29udGludWV9XSQvdSxabWE9L15bJF9ccHtJRF9TdGFydH1dWyRcdTIwMGNcdTIwMGRccHtJRF9Db250aW51ZX1dKiQvdTtmdW5jdGlvbiBRbWEodCl7cmV0dXJuIHQucmVwbGFjZSgvW3t9KClcW1xdKz8hOipcXF0vZywiXFwkJiIpfWkoUW1hLCJlc2NhcGVUZXh0Iik7ZnVuY3Rpb24gbzQodCl7cmV0dXJuIHQucmVwbGFjZSgvWy4rKj9eJHt9KClbXF18L1xcXS9nLCJcXCQmIil9aShvNCwiZXNjYXBlIik7dmFyIHVsZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUb2tlbkRhdGEiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMudG9rZW5zPWUsdGhpcy5vcmlnaW5hbFBhdGg9cn19O0IyLlRva2VuRGF0YT11bGU7dmFyIHcwPWNsYXNzIGV4dGVuZHMgVHlwZUVycm9ye3N0YXRpY3tpKHRoaXMsIlBhdGhFcnJvciIpfWNvbnN0cnVjdG9yKGUscil7bGV0IGE9ZTtyJiYoYSs9YDogJHtyfWApLGErPSI7IHZpc2l0IGh0dHBzOi8vZ2l0Lm5ldy9wYXRoVG9SZWdleHBFcnJvciBmb3IgaW5mbyIsc3VwZXIoYSksdGhpcy5vcmlnaW5hbFBhdGg9cn19O0IyLlBhdGhFcnJvcj13MDtmdW5jdGlvbiBfd2UodCxlPXt9KXtsZXR7ZW5jb2RlUGF0aDpyPXp3ZX09ZSxhPVsuLi50XSxzPTA7ZnVuY3Rpb24gbihvKXtsZXQgbD1bXSxjPSIiO2Z1bmN0aW9uIGQoKXtjJiYobC5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpyKGMpfSksYz0iIil9Zm9yKGkoZCwid3JpdGVQYXRoIik7czxhLmxlbmd0aDspe2xldCBmPWFbcysrXTtpZihmPT09bylyZXR1cm4gZCgpLGw7aWYoZj09PSJcXCIpe2lmKHM9PT1hLmxlbmd0aCl0aHJvdyBuZXcgdzAoYFVuZXhwZWN0ZWQgZW5kIGFmdGVyIFxcIGF0IGluZGV4ICR7c31gLHQpO2MrPWFbcysrXTtjb250aW51ZX1pZihmPT09IjoifHxmPT09IioiKXtsZXQgcD1mPT09IjoiPyJwYXJhbSI6IndpbGRjYXJkIixoPSIiO2lmKEttYS50ZXN0KGFbc10pKWRvIGgrPWFbcysrXTt3aGlsZShHT3QudGVzdChhW3NdKSk7ZWxzZSBpZihhW3NdPT09JyInKXtsZXQgbT1zO2Zvcig7czxhLmxlbmd0aDspe2lmKGFbKytzXT09PSciJyl7cysrLG09MDticmVha31hW3NdPT09IlxcIiYmcysrLGgrPWFbc119aWYobSl0aHJvdyBuZXcgdzAoYFVudGVybWluYXRlZCBxdW90ZSBhdCBpbmRleCAke219YCx0KX1pZighaCl0aHJvdyBuZXcgdzAoYE1pc3NpbmcgcGFyYW1ldGVyIG5hbWUgYXQgaW5kZXggJHtzfWAsdCk7ZCgpLGwucHVzaCh7dHlwZTpwLG5hbWU6aH0pO2NvbnRpbnVlfWlmKGY9PT0ieyIpe2QoKSxsLnB1c2goe3R5cGU6Imdyb3VwIix0b2tlbnM6bigifSIpfSk7Y29udGludWV9aWYoZj09PSJ9Inx8Zj09PSIoInx8Zj09PSIpInx8Zj09PSJbInx8Zj09PSJdInx8Zj09PSIrInx8Zj09PSI/Inx8Zj09PSIhIil0aHJvdyBuZXcgdzAoYFVuZXhwZWN0ZWQgJHtmfSBhdCBpbmRleCAke3MtMX1gLHQpO2MrPWZ9aWYobyl0aHJvdyBuZXcgdzAoYFVuZXhwZWN0ZWQgZW5kIGF0IGluZGV4ICR7c30sIGV4cGVjdGVkICR7b31gLHQpO3JldHVybiBkKCksbH1yZXR1cm4gaShuLCJjb25zdW1lVW50aWwiKSxuZXcgdWxlKG4oIiIpLHQpfWkoX3dlLCJwYXJzZSIpO2Z1bmN0aW9uIFhtYSh0LGU9e30pe2xldHtlbmNvZGU6cj1lbmNvZGVVUklDb21wb25lbnQsZGVsaW1pdGVyOmE9Q3dlfT1lLHM9dHlwZW9mIHQ9PSJvYmplY3QiP3Q6X3dlKHQsZSksbj1ZT3Qocy50b2tlbnMsYSxyKTtyZXR1cm4gaShmdW5jdGlvbihsPXt9KXtsZXQgYz1bXSxkPW4obCxjKTtpZihjLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKGBNaXNzaW5nIHBhcmFtZXRlcnM6ICR7Yy5qb2luKCIsICIpfWApO3JldHVybiBkfSwicGF0aCIpfWkoWG1hLCJjb21waWxlIik7ZnVuY3Rpb24gWU90KHQsZSxyKXtsZXQgYT10Lm1hcChzPT5KbWEocyxlLHIpKTtyZXR1cm4ocyxuKT0+e2xldCBvPSIiO2ZvcihsZXQgbCBvZiBhKW8rPWwocyxuKTtyZXR1cm4gb319aShZT3QsInRva2Vuc1RvRnVuY3Rpb24iKTtmdW5jdGlvbiBKbWEodCxlLHIpe2lmKHQudHlwZT09PSJ0ZXh0IilyZXR1cm4oKT0+dC52YWx1ZTtpZih0LnR5cGU9PT0iZ3JvdXAiKXtsZXQgcz1ZT3QodC50b2tlbnMsZSxyKTtyZXR1cm4obixvKT0+e2xldCBsPW8ubGVuZ3RoLGM9cyhuLG8pO3JldHVybiBvLmxlbmd0aD09PWw/Yzooby5sZW5ndGg9bCwiIil9fWxldCBhPXJ8fHp3ZTtyZXR1cm4gdC50eXBlPT09IndpbGRjYXJkIiYmciE9PSExPyhzLG4pPT57bGV0IG89c1t0Lm5hbWVdO2lmKG89PW51bGwpcmV0dXJuIG4ucHVzaCh0Lm5hbWUpLCIiO2lmKCFBcnJheS5pc0FycmF5KG8pfHxvLmxlbmd0aD09PTApdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7dC5uYW1lfSIgdG8gYmUgYSBub24tZW1wdHkgYXJyYXlgKTtsZXQgbD0iIjtmb3IobGV0IGM9MDtjPG8ubGVuZ3RoO2MrKyl7aWYodHlwZW9mIG9bY10hPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICIke3QubmFtZX0vJHtjfSIgdG8gYmUgYSBzdHJpbmdgKTtjPjAmJihsKz1lKSxsKz1hKG9bY10pfXJldHVybiBsfToocyxuKT0+e2xldCBvPXNbdC5uYW1lXTtpZihvPT1udWxsKXJldHVybiBuLnB1c2godC5uYW1lKSwiIjtpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7dC5uYW1lfSIgdG8gYmUgYSBzdHJpbmdgKTtyZXR1cm4gYShvKX19aShKbWEsInRva2VuVG9GdW5jdGlvbiIpO2Z1bmN0aW9uIGU1YSh0LGU9e30pe2xldHtkZWNvZGU6cj1kZWNvZGVVUklDb21wb25lbnQsZGVsaW1pdGVyOmE9Q3dlfT1lLHtyZWdleHA6cyxrZXlzOm59PUtPdCh0LGUpLG89bi5tYXAobD0+cj09PSExP3p3ZTpsLnR5cGU9PT0icGFyYW0iP3I6Yz0+Yy5zcGxpdChhKS5tYXAocikpO3JldHVybiBpKGZ1bmN0aW9uKGMpe2xldCBkPXMuZXhlYyhjKTtpZighZClyZXR1cm4hMTtsZXQgZj1kWzBdLHA9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGg9MTtoPGQubGVuZ3RoO2grKyl7aWYoZFtoXT09PXZvaWQgMCljb250aW51ZTtsZXQgbT1uW2gtMV0sdj1vW2gtMV07cFttLm5hbWVdPXYoZFtoXSl9cmV0dXJue3BhdGg6ZixwYXJhbXM6cH19LCJtYXRjaCIpfWkoZTVhLCJtYXRjaCIpO2Z1bmN0aW9uIEtPdCh0LGU9e30pe2xldHtkZWxpbWl0ZXI6cj1Dd2UsZW5kOmE9ITAsc2Vuc2l0aXZlOnM9ITEsdHJhaWxpbmc6bj0hMH09ZSxvPVtdLGw9IiIsYz0wO2Z1bmN0aW9uIGQocCl7aWYoQXJyYXkuaXNBcnJheShwKSl7Zm9yKGxldCBtIG9mIHApZChtKTtyZXR1cm59bGV0IGg9dHlwZW9mIHA9PSJvYmplY3QiP3A6X3dlKHAsZSk7VHdlKGgudG9rZW5zLDAsW10sbT0+e2lmKGM+PTI1Nil0aHJvdyBuZXcgdzAoIlRvbyBtYW55IHBhdGggY29tYmluYXRpb25zIixoLm9yaWdpbmFsUGF0aCk7Yz4wJiYobCs9InwiKSxsKz10NWEobSxyLG8saC5vcmlnaW5hbFBhdGgpLGMrK30pfWkoZCwicHJvY2VzcyIpLGQodCk7bGV0IGY9YF4oPzoke2x9KWA7cmV0dXJuIG4mJihmKz0iKD86IitvNChyKSsiJCk/IiksZis9YT8iJCI6Iig/PSIrbzQocikrInwkKSIse3JlZ2V4cDpuZXcgUmVnRXhwKGYscz8iIjoiaSIpLGtleXM6b319aShLT3QsInBhdGhUb1JlZ2V4cCIpO2Z1bmN0aW9uIFR3ZSh0LGUscixhKXtmb3IoO2U8dC5sZW5ndGg7KXtsZXQgcz10W2UrK107aWYocy50eXBlPT09Imdyb3VwIil7bGV0IG49ci5sZW5ndGg7VHdlKHMudG9rZW5zLDAscixvPT5Ud2UodCxlLG8sYSkpLHIubGVuZ3RoPW47Y29udGludWV9ci5wdXNoKHMpfWEocil9aShUd2UsImZsYXR0ZW4iKTtmdW5jdGlvbiB0NWEodCxlLHIsYSl7bGV0IHM9IiIsbj0iIixvPSIiLGw9MCxjPTAsZD0wO2Z1bmN0aW9uIGYoaCxtKXtmb3IoO2g8dC5sZW5ndGg7KXtsZXQgdj10W2grK107aWYodi50eXBlPT09bSlyZXR1cm4hMDtpZih2LnR5cGU9PT0idGV4dCImJnYudmFsdWUuaW5jbHVkZXMoZSkpYnJlYWt9cmV0dXJuITF9aShmLCJoYXNJblNlZ21lbnQiKTtmdW5jdGlvbiBwKGgpe2xldCBtPSIiO2Zvcig7aDx0Lmxlbmd0aDspe2xldCB2PXRbaCsrXTtpZih2LnR5cGUhPT0idGV4dCIpYnJlYWs7bSs9di52YWx1ZX1yZXR1cm4gbX1mb3IoaShwLCJwZWVrVGV4dCIpO2Q8dC5sZW5ndGg7KXtsZXQgaD10W2QrK107aWYoaC50eXBlPT09InRleHQiKXtzKz1vNChoLnZhbHVlKSxuKz1oLnZhbHVlLGw9PT0yJiYobys9aC52YWx1ZSksaC52YWx1ZS5pbmNsdWRlcyhlKSYmKGM9MCk7Y29udGludWV9aWYoaC50eXBlPT09InBhcmFtInx8aC50eXBlPT09IndpbGRjYXJkIil7aWYobCYmIW4pdGhyb3cgbmV3IHcwKGBNaXNzaW5nIHRleHQgYmVmb3JlICIke2gubmFtZX0iICR7aC50eXBlfWAsYSk7aC50eXBlPT09InBhcmFtIj8ocys9YyYyP2AoJHtOdShlLG4pfSspYDpmKGQsIndpbGRjYXJkIik/YCgke051KGUscChkKSl9KylgOmMmMT9gKCR7TnUoZSxuKX0rfCR7bzQobil9KWA6YCgke051KGUsIiIpfSspYCxjfD1sPTEpOihzKz1jJjI/YCgke051KG4sIiIpfSspYDpvP2AoJHtOdShvLCIiKX0rfCR7TnUoZSwiIil9KylgOiIoW15dKykiLG89IiIsY3w9bD0yKSxyLnB1c2goaCksbj0iIjtjb250aW51ZX10aHJvdyBuZXcgVHlwZUVycm9yKGBVbmtub3duIHRva2VuIHR5cGU6ICR7aC50eXBlfWApfXJldHVybiBzfWkodDVhLCJ0b1JlZ0V4cFNvdXJjZSIpO2Z1bmN0aW9uIE51KHQsZSl7cmV0dXJuIGUubGVuZ3RoPnQubGVuZ3RoP051KGUsdCk6KHQ9PT1lJiYoZT0iIiksZS5sZW5ndGg+MT9gKD86KD8hJHtvNCh0KX18JHtvNChlKX0pW15dKWA6dC5sZW5ndGg+MT9gKD86KD8hJHtvNCh0KX0pW14ke280KGUpfV0pYDpgW14ke280KHQrZSl9XWApfWkoTnUsIm5lZ2F0ZSIpO2Z1bmN0aW9uIFpPdCh0LGUpe2xldCByPSIiO2Zvcig7ZTx0Lmxlbmd0aDspe2xldCBhPXRbZSsrXTtpZihhLnR5cGU9PT0idGV4dCIpe3IrPVFtYShhLnZhbHVlKTtjb250aW51ZX1pZihhLnR5cGU9PT0iZ3JvdXAiKXtyKz0ieyIrWk90KGEudG9rZW5zLDApKyJ9Ijtjb250aW51ZX1pZihhLnR5cGU9PT0icGFyYW0iKXtyKz0iOiIrUU90KGEubmFtZSx0W2VdKTtjb250aW51ZX1pZihhLnR5cGU9PT0id2lsZGNhcmQiKXtyKz0iKiIrUU90KGEubmFtZSx0W2VdKTtjb250aW51ZX10aHJvdyBuZXcgVHlwZUVycm9yKGBVbmtub3duIHRva2VuIHR5cGU6ICR7YS50eXBlfWApfXJldHVybiByfWkoWk90LCJzdHJpbmdpZnlUb2tlbnMiKTtmdW5jdGlvbiByNWEodCl7cmV0dXJuIFpPdCh0LnRva2VucywwKX1pKHI1YSwic3RyaW5naWZ5Iik7ZnVuY3Rpb24gUU90KHQsZSl7cmV0dXJuIVptYS50ZXN0KHQpfHxlPy50eXBlPT09InRleHQiJiZHT3QudGVzdChlLnZhbHVlWzBdKT9KU09OLnN0cmluZ2lmeSh0KTp0fWkoUU90LCJzdHJpbmdpZnlOYW1lIil9KTt2YXIgTHdlLER3ZT11KCgpPT57TWIoKTtaYygpO0x3ZT1HYShYT3QoKSwxKX0pO3ZhciBwbGUsSk90PXUoKCk9PntEd2UoKTtwbGU9Y2xhc3N7c3RhdGlje2kodGhpcywiUXVlcnlQYXJhbXMiKX1jb25zdHJ1Y3Rvcigpe31nZXRBbGxBc09iamVjdCgpe2xldCBlPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhlLmVudHJpZXMoKSl9c2V0UXVlcnlQYXJhbShlLHIsYT0icmVwbGFjZSIpe3ZhciBzPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7cy5zZXQoZSxyKSxhPT09InB1c2giP2hpc3RvcnkucHVzaFN0YXRlKG51bGwsbnVsbCwiPyIrcy50b1N0cmluZygpKTpoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLG51bGwsIj8iK3MudG9TdHJpbmcoKSl9ZGVsZXRlUXVlcnlQYXJhbShlLHI9InJlcGxhY2UiKXt2YXIgYT1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2EuZGVsZXRlKGUpLHI9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IithLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIrYS50b1N0cmluZygpKX1nZXRRdWVyeVBhcmFtKGUpe3JldHVybiB0aGlzLmdldEFsbEFzT2JqZWN0KClbZV19fX0pO3ZhciBmb3MsJHdlLGVSdD11KCgpPT57RHdlKCk7Sk90KCk7Zm9zPWkodD0+e2NvbnNvbGUubG9nKGAlY1tSb3V0ZXJdJWMgJHt0fWAsImNvbG9yOiByZ2IoMjU1LCAxMDUsIDEwMCk7IiwiY29sb3I6IGluaGVyaXQiKX0sInJvdXRlTG9nIiksJHdlPWNsYXNzIHR7c3RhdGlje2kodGhpcywiU21hcnRSb3V0ZXIiKX1jb25zdHJ1Y3RvcihlLHI9IiIpe3RoaXMub3B0aW9ucz17ZGVidWc6ITF9LHRoaXMucXVlcnlQYXJhbXM9bmV3IHBsZSx0aGlzLnJvdXRlcz1bXSx0aGlzLm9wdGlvbnM9ey4uLnRoaXMub3B0aW9ucywuLi5lfSx0aGlzLmJhc2VQYXRoPXIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyPWE9PnthLnByZXZlbnREZWZhdWx0KCksdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMucG9wc3RhdGVMaXN0ZW5lcil9Y3JlYXRlU3ViUm91dGVyKGUscil7bGV0IGE9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YDtyZXR1cm4gbmV3IHQoey4uLnRoaXMub3B0aW9ucywuLi5yfSxhKX1hc3luYyBwdXNoVXJsKGU9Ii8iLHI9e30pe2xldCBhPWAke3RoaXMuYmFzZVBhdGh9JHtlfWA7YSE9PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZT93aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUocix3aW5kb3cuZG9jdW1lbnQudGl0bGUsYSk6d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHIsd2luZG93LmRvY3VtZW50LnRpdGxlLGEpLGF3YWl0IHRoaXMuX2hhbmRsZVJvdXRlU3RhdGUoKX1vbihlLHIpe2xldCBhPWAke3RoaXMuYmFzZVBhdGh9JHtlfWAscz17bWF0Y2hGdW5jdGlvbjpMd2UubWF0Y2goYSksaGFuZGxlcjpyfTtyZXR1cm4gdGhpcy5yb3V0ZXMucHVzaChzKSxpKCgpPT57dGhpcy5yb3V0ZXMuc3BsaWNlKHRoaXMucm91dGVzLmluZGV4T2YocyksMSl9LCJyZW1vdmVGdW5jdGlvbiIpfWFzeW5jIF9oYW5kbGVSb3V0ZVN0YXRlKCl7bGV0IGU9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLHI9dGhpcy5yb3V0ZXMuZmlsdGVyKGE9PiEhYS5tYXRjaEZ1bmN0aW9uKGUpKTtmb3IobGV0IGEgb2Ygcil7bGV0IHM9YS5tYXRjaEZ1bmN0aW9uKGUpO2EuaGFuZGxlcih7Li4ucy52YWx1ZU9mKCkscXVlcnlQYXJhbXM6dGhpcy5xdWVyeVBhcmFtcy5nZXRBbGxBc09iamVjdCgpfSl9fWRlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMucG9wc3RhdGVMaXN0ZW5lciksdGhpcy5yb3V0ZXM9W119fX0pO3ZhciBQaD17fTtWZShQaCx7U21hcnRSb3V0ZXI6KCk9PiR3ZX0pO3ZhciB0UnQ9dSgoKT0+e2VSdCgpfSk7dmFyIHJSdD11KCgpPT57eFMoKTtMYigpfSk7ZnVuY3Rpb24gazAodCxlKXtyZXR1cm4gdD4+PmV8dDw8MzItZX1mdW5jdGlvbiBvNWEodCxlKXtsZXQgcj1lWzBdLGE9ZVsxXSxzPWVbMl0sbj1lWzNdLG89ZVs0XSxsPWVbNV0sYz1lWzZdLGQ9ZVs3XTtmb3IobGV0IGY9MDtmPDY0O2YrKyl7aWYoZj49MTYpe2xldCB5PWswKHRbZi0xNV0sNyleazAodFtmLTE1XSwxOCledFtmLTE1XT4+PjMsaz1rMCh0W2YtMl0sMTcpXmswKHRbZi0yXSwxOSledFtmLTJdPj4+MTA7dFtmXT10W2YtMTZdK3krdFtmLTddK2s+Pj4wfWxldCBwPWswKG8sNileazAobywxMSleazAobywyNSksaD1vJmxefm8mYyxtPWQrcCtoK3M1YVtmXSt0W2ZdPj4+MCx2PWswKHIsMileazAociwxMyleazAociwyMiksYj1yJmFeciZzXmEmcyxnPXYrYj4+PjA7ZD1jLGM9bCxsPW8sbz1uK20+Pj4wLG49cyxzPWEsYT1yLHI9bStnPj4+MH1lWzBdPWVbMF0rcj4+PjAsZVsxXT1lWzFdK2E+Pj4wLGVbMl09ZVsyXStzPj4+MCxlWzNdPWVbM10rbj4+PjAsZVs0XT1lWzRdK28+Pj4wLGVbNV09ZVs1XStsPj4+MCxlWzZdPWVbNl0rYz4+PjAsZVs3XT1lWzddK2Q+Pj4wfWZ1bmN0aW9uIEF3ZSh0KXtsZXQgZT1bLi4ubjVhXSxyPXQubGVuZ3RoLGE9cio4LHM9ciU2NDw1Nj81Ni1yJTY0OjEyMC1yJTY0LG49bmV3IFVpbnQ4QXJyYXkocitzKzgpO24uc2V0KHQpLG5bcl09MTI4O2xldCBvPW5ldyBEYXRhVmlldyhuLmJ1ZmZlcik7by5zZXRVaW50MzIobi5sZW5ndGgtOCwwLCExKSxvLnNldFVpbnQzMihuLmxlbmd0aC00LGE+Pj4wLCExKTtmb3IobGV0IGM9MDtjPG4ubGVuZ3RoO2MrPTY0KXtsZXQgZD1uZXcgQXJyYXkoNjQpO2ZvcihsZXQgZj0wO2Y8MTY7ZisrKWRbZl09by5nZXRVaW50MzIoYytmKjQsITEpO281YShkLGUpfWxldCBsPSIiO2ZvcihsZXQgYz0wO2M8ODtjKyspbCs9ZVtjXS50b1N0cmluZygxNikucGFkU3RhcnQoOCwiMCIpO3JldHVybiBsfXZhciBzNWEsbjVhLGFSdD11KCgpPT57czVhPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLG41YT1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdO2koazAsInJvdHIiKTtpKG81YSwic2hhMjU2VHJhbnNmb3JtIik7aShBd2UsInNoYTI1NkZhbGxiYWNrIil9KTt2YXIgV009e307VmUoV00se21kNUZyb21TdHJpbmc6KCk9PmY1YSxzaGEyNTZGcm9tQnVmZmVyOigpPT5jNWEsc2hhMjU2RnJvbUZpbGU6KCk9PnA1YSxzaGEyNTZGcm9tU3RyZWFtOigpPT51NWEsc2hhMjU2RnJvbVN0cmluZzooKT0+blJ0LHNoYTI1NkZyb21TdHJpbmdTeW5jOigpPT5sNWEsc2hhMjY1RnJvbU9iamVjdDooKT0+ZDVhfSk7dmFyIGlSdCxzUnQsblJ0LGw1YSxjNWEsZDVhLHU1YSxwNWEsZjVhLG9SdD11KCgpPT57clJ0KCk7YVJ0KCk7aVJ0PWkodD0+e2xldCBlPVtdLHI9bmV3IERhdGFWaWV3KHQpO2ZvcihsZXQgYT0wO2E8ci5ieXRlTGVuZ3RoO2ErPTQpe2xldCBuPXIuZ2V0VWludDMyKGEpLnRvU3RyaW5nKDE2KSxvPSIwMDAwMDAwMCIsbD0obytuKS5zbGljZSgtby5sZW5ndGgpO2UucHVzaChsKX1yZXR1cm4gZS5qb2luKCIiKX0sImhleCIpLHNSdD1pKCgpPT50eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnN1YnRsZSE9PXZvaWQgMCwiaXNDcnlwdG9TdWJ0bGVBdmFpbGFibGUiKSxuUnQ9aShhc3luYyB0PT57bGV0IGU9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHQpO2lmKHNSdCgpKXtsZXQgcj1hd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZSk7cmV0dXJuIGlSdChyKX1lbHNlIHJldHVybiBBd2UoZSl9LCJzaGEyNTZGcm9tU3RyaW5nIiksbDVhPWkodD0+e3Rocm93IGNvbnNvbGUud2Fybigic2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHRydWx5IHN5bmNocm9ub3VzIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKSxuZXcgRXJyb3IoInNoYTI1NkZyb21TdHJpbmdTeW5jIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudC4gVXNlIHNoYTI1NkZyb21TdHJpbmcgaW5zdGVhZC4iKX0sInNoYTI1NkZyb21TdHJpbmdTeW5jIiksYzVhPWkoYXN5bmMgdD0+e2lmKHNSdCgpKXtsZXQgZTtpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSl7bGV0IHM9dDtlPXMuYnVmZmVyLnNsaWNlKHMuYnl0ZU9mZnNldCxzLmJ5dGVPZmZzZXQrcy5ieXRlTGVuZ3RoKX1lbHNlIGU9dDtsZXQgcj1hd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZSk7cmV0dXJuIGlSdChyKX1lbHNle2xldCBlPXQgaW5zdGFuY2VvZiBVaW50OEFycmF5P3Q6bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIEF3ZShlKX19LCJzaGEyNTZGcm9tQnVmZmVyIiksZDVhPWkoYXN5bmMgdD0+e2xldCBlPUhzLnN0cmluZ2lmeSh0KTtyZXR1cm4gYXdhaXQgblJ0KGUpfSwic2hhMjY1RnJvbU9iamVjdCIpLHU1YT1pKHQ9Pnt0aHJvdyBuZXcgRXJyb3IoInNoYTI1NkZyb21TdHJlYW0gaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50Iil9LCJzaGEyNTZGcm9tU3RyZWFtIikscDVhPWkoYXN5bmMgdD0+e3Rocm93IG5ldyBFcnJvcigic2hhMjU2RnJvbUZpbGUgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50Iil9LCJzaGEyNTZGcm9tRmlsZSIpLGY1YT1pKGFzeW5jIHQ9Pnt0aHJvdyBuZXcgRXJyb3IoIm1kNUZyb21TdHJpbmcgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50LiBXZWIgQ3J5cHRvIEFQSSBkb2VzIG5vdCBzdXBwb3J0IE1ENS4iKX0sIm1kNUZyb21TdHJpbmciKX0pO3ZhciBmbGU9dSgoKT0+e29SdCgpO0xiKCk7R24oKTtaYygpO1puZSgpfSk7dmFyIEdNLEV3ZT11KCgpPT57aGxlKCk7R009Y2xhc3N7c3RhdGlje2kodGhpcywiU3RhdGVBY3Rpb24iKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc3RhdGVQYXJ0UmVmPWUsdGhpcy5hY3Rpb25EZWY9cn10cmlnZ2VyKGUpe3JldHVybiB0aGlzLnN0YXRlUGFydFJlZi5kaXNwYXRjaEFjdGlvbih0aGlzLGUpfX19KTtmdW5jdGlvbiBtNWEoKXtyZXR1cm4gdHlwZW9mIGRvY3VtZW50PiJ1Ij9SZighMCk6bmV3IG5yKHQ9Pnt0Lm5leHQoIWRvY3VtZW50LmhpZGRlbik7bGV0IGU9aSgoKT0+dC5uZXh0KCFkb2N1bWVudC5oaWRkZW4pLCJoYW5kbGVyIik7cmV0dXJuIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGUpLCgpPT5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixlKX0pfXZhciBNeCxJd2U9dSgoKT0+e1pnKCk7aShtNWEsImNyZWF0ZVZpc2liaWxpdHlPYnNlcnZhYmxlIik7TXg9Y2xhc3N7c3RhdGlje2kodGhpcywiU3RhdGVQcm9jZXNzIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLnN0YXR1c1N1YmplY3Q9bmV3IEJnKCJpZGxlIiksdGhpcy5wcm9kdWNlclN1YnNjcmlwdGlvbj1udWxsLHRoaXMuYXV0b1BhdXNlU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5wcm9jZXNzaW5nUXVldWU9UHJvbWlzZS5yZXNvbHZlKCksdGhpcy5zdGF0ZVBhcnRSZWY9ZSx0aGlzLnByb2R1Y2VyRm49ci5wcm9kdWNlcix0aGlzLnJlZHVjZXI9ci5yZWR1Y2VyLHRoaXMuc2lkZUVmZmVjdD1yLnNpZGVFZmZlY3QsdGhpcy5hdXRvUGF1c2VPcHRpb249ci5hdXRvUGF1c2U/PyExfWdldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy5zdGF0dXNTdWJqZWN0LmdldFZhbHVlKCl9Z2V0IHN0YXR1cyQoKXtyZXR1cm4gdGhpcy5zdGF0dXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpfXN0YXJ0KCl7aWYodGhpcy5zdGF0dXM9PT0iZGlzcG9zZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHN0YXJ0IGEgZGlzcG9zZWQgcHJvY2VzcyIpO3RoaXMuc3RhdHVzIT09InJ1bm5pbmciJiYodGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoInJ1bm5pbmciKSx0aGlzLnN1YnNjcmliZVByb2R1Y2VyKCksdGhpcy5zZXR1cEF1dG9QYXVzZSgpKX1wYXVzZSgpe2lmKHRoaXMuc3RhdHVzPT09ImRpc3Bvc2VkIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBwYXVzZSBhIGRpc3Bvc2VkIHByb2Nlc3MiKTt0aGlzLnN0YXR1cz09PSJydW5uaW5nIiYmKHRoaXMuc3RhdHVzU3ViamVjdC5uZXh0KCJwYXVzZWQiKSx0aGlzLnVuc3Vic2NyaWJlUHJvZHVjZXIoKSl9cmVzdW1lKCl7aWYodGhpcy5zdGF0dXM9PT0iZGlzcG9zZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJlc3VtZSBhIGRpc3Bvc2VkIHByb2Nlc3MiKTt0aGlzLnN0YXR1cz09PSJwYXVzZWQiJiYodGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoInJ1bm5pbmciKSx0aGlzLnN1YnNjcmliZVByb2R1Y2VyKCkpfWRpc3Bvc2UoKXt0aGlzLnN0YXR1cyE9PSJkaXNwb3NlZCImJih0aGlzLnVuc3Vic2NyaWJlUHJvZHVjZXIoKSx0aGlzLnRlYXJkb3duQXV0b1BhdXNlKCksdGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoImRpc3Bvc2VkIiksdGhpcy5zdGF0dXNTdWJqZWN0LmNvbXBsZXRlKCksdGhpcy5zdGF0ZVBhcnRSZWYuX3JlbW92ZVByb2Nlc3ModGhpcykpfXN1YnNjcmliZVByb2R1Y2VyKCl7dGhpcy51bnN1YnNjcmliZVByb2R1Y2VyKCk7bGV0IGU9dGhpcy5wcm9kdWNlckZuKCk7dGhpcy5wcm9kdWNlclN1YnNjcmlwdGlvbj1lLnN1YnNjcmliZSh7bmV4dDppKHI9Pnt0aGlzLnByb2Nlc3NpbmdRdWV1ZT10aGlzLnByb2Nlc3NpbmdRdWV1ZS50aGVuKGFzeW5jKCk9Pnt0cnl7aWYodGhpcy5zaWRlRWZmZWN0KWF3YWl0IHRoaXMuc2lkZUVmZmVjdChyKTtlbHNlIGlmKHRoaXMucmVkdWNlcil7bGV0IGE9dGhpcy5zdGF0ZVBhcnRSZWYuZ2V0U3RhdGUoKTthIT09dm9pZCAwJiZhd2FpdCB0aGlzLnN0YXRlUGFydFJlZi5zZXRTdGF0ZSh0aGlzLnJlZHVjZXIoYSxyKSl9fWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoIlN0YXRlUHJvY2VzcyB2YWx1ZSBoYW5kbGluZyBlcnJvcjoiLGEpfX0pfSwibmV4dCIpLGVycm9yOmkocj0+e2NvbnNvbGUuZXJyb3IoIlN0YXRlUHJvY2VzcyBwcm9kdWNlciBlcnJvcjoiLHIpLHRoaXMuc3RhdHVzPT09InJ1bm5pbmciJiYodGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoInBhdXNlZCIpLHRoaXMudW5zdWJzY3JpYmVQcm9kdWNlcigpKX0sImVycm9yIil9KX11bnN1YnNjcmliZVByb2R1Y2VyKCl7dGhpcy5wcm9kdWNlclN1YnNjcmlwdGlvbiYmKHRoaXMucHJvZHVjZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uPW51bGwpfXNldHVwQXV0b1BhdXNlKCl7aWYodGhpcy50ZWFyZG93bkF1dG9QYXVzZSgpLCF0aGlzLmF1dG9QYXVzZU9wdGlvbilyZXR1cm47bGV0IGU9dGhpcy5hdXRvUGF1c2VPcHRpb249PT0idmlzaWJpbGl0eSI/bTVhKCk6dGhpcy5hdXRvUGF1c2VPcHRpb247dGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb249ZS5zdWJzY3JpYmUocj0+eyFyJiZ0aGlzLnN0YXR1cz09PSJydW5uaW5nIj90aGlzLnBhdXNlKCk6ciYmdGhpcy5zdGF0dXM9PT0icGF1c2VkIiYmdGhpcy5yZXN1bWUoKX0pfXRlYXJkb3duQXV0b1BhdXNlKCl7dGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb24mJih0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuYXV0b1BhdXNlU3Vic2NyaXB0aW9uPW51bGwpfX19KTtmdW5jdGlvbiBnNWEodCl7cmV0dXJuIG5ldyBucihlPT57aWYodC5hYm9ydGVkKXtlLm5leHQoKSxlLmNvbXBsZXRlKCk7cmV0dXJufWxldCByPWkoKCk9PntlLm5leHQoKSxlLmNvbXBsZXRlKCl9LCJoYW5kbGVyIik7cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHIpLCgpPT50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixyKX0pfXZhciBZTSxobGU9dSgoKT0+e2ZsZSgpO1pnKCk7RXdlKCk7SXdlKCk7aShnNWEsImZyb21BYm9ydFNpZ25hbCIpO1lNPWNsYXNzIHR7c3RhdGlje2kodGhpcywiU3RhdGVQYXJ0Iil9c3RhdGlje3RoaXMuTUFYX05FU1RFRF9ESVNQQVRDSF9ERVBUSD0xMH1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc3RhdGU9bmV3IEJnKHZvaWQgMCksdGhpcy5kaXNwb3NlZD0hMSx0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZD14dC5jdW11bGF0aXZlRGVmZXIoKSx0aGlzLm11dGF0aW9uUXVldWU9UHJvbWlzZS5yZXNvbHZlKCksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1udWxsLHRoaXMud2ViU3RvcmU9bnVsbCx0aGlzLm1pZGRsZXdhcmVzPVtdLHRoaXMucHJvY2Vzc2VzPVtdLHRoaXMuc2VsZWN0b3JDYWNoZT1uZXcgV2Vha01hcCx0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlPW51bGwsdGhpcy5uYW1lPWUsciYmKHRoaXMud2ViU3RvcmVPcHRpb25zPXIpfWFzeW5jIGluaXQoKXtpZih0aGlzLndlYlN0b3JlT3B0aW9ucyl7dGhpcy53ZWJTdG9yZT1uZXcgejIuV2ViU3RvcmUodGhpcy53ZWJTdG9yZU9wdGlvbnMpLGF3YWl0IHRoaXMud2ViU3RvcmUuaW5pdCgpO2xldCBlPWF3YWl0IHRoaXMud2ViU3RvcmUuZ2V0KFN0cmluZyh0aGlzLm5hbWUpKTtlJiZ0aGlzLnZhbGlkYXRlU3RhdGUoZSkmJih0aGlzLnN0YXRlU3RvcmU9ZSxhd2FpdCB0aGlzLm5vdGlmeUNoYW5nZSgpKX19Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5zdGF0ZVN0b3JlfWFkZE1pZGRsZXdhcmUoZSl7cmV0dXJuIHRoaXMubWlkZGxld2FyZXMucHVzaChlKSwoKT0+e2xldCByPXRoaXMubWlkZGxld2FyZXMuaW5kZXhPZihlKTtyIT09LTEmJnRoaXMubWlkZGxld2FyZXMuc3BsaWNlKHIsMSl9fWFzeW5jIHNldFN0YXRlKGUpe2lmKHRoaXMuZGlzcG9zZWQpdGhyb3cgbmV3IEVycm9yKGBTdGF0ZVBhcnQgJyR7dGhpcy5uYW1lfScgaGFzIGJlZW4gZGlzcG9zZWRgKTtyZXR1cm4gdGhpcy5tdXRhdGlvblF1ZXVlPXRoaXMubXV0YXRpb25RdWV1ZS50aGVuKCgpPT50aGlzLmFwcGx5U3RhdGUoZSksKCk9PnRoaXMuYXBwbHlTdGF0ZShlKSl9YXN5bmMgYXBwbHlTdGF0ZShlKXtsZXQgcj1lO2ZvcihsZXQgYSBvZiB0aGlzLm1pZGRsZXdhcmVzKXI9YXdhaXQgYShyLHRoaXMuc3RhdGVTdG9yZSk7aWYoIXRoaXMudmFsaWRhdGVTdGF0ZShyKSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc3RhdGUgc3RydWN0dXJlIGZvciBzdGF0ZSBwYXJ0ICcke3RoaXMubmFtZX0nYCk7cmV0dXJuIHRoaXMud2ViU3RvcmUmJmF3YWl0IHRoaXMud2ViU3RvcmUuc2V0KFN0cmluZyh0aGlzLm5hbWUpLHIpLHRoaXMuc3RhdGVTdG9yZT1yLGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCksdGhpcy5zdGF0ZVN0b3JlfXZhbGlkYXRlU3RhdGUoZSl7cmV0dXJuIGUhPW51bGx9YXN5bmMgbm90aWZ5Q2hhbmdlKCl7bGV0IGU9dGhpcy5zdGF0ZVN0b3JlO2lmKGU9PT12b2lkIDApcmV0dXJuO2lmKHRoaXMuc21hcnRzdGF0ZVJlZj8uaXNCYXRjaGluZyl7dGhpcy5zbWFydHN0YXRlUmVmLnJlZ2lzdGVyUGVuZGluZ05vdGlmaWNhdGlvbih0aGlzKTtyZXR1cm59bGV0IHI9aShhc3luYyBhPT5hd2FpdCBXTS5zaGEyNTZGcm9tU3RyaW5nKEhzLnN0YWJsZU9uZVdheVN0cmluZ2lmeShhKSksImNyZWF0ZVN0YXRlSGFzaCIpO3RyeXtsZXQgYT1hd2FpdCByKGUpO2lmKHRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2gmJmE9PT10aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNoKXJldHVybjt0aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNoPWF9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihgU3RhdGUgaGFzaCBjb21wdXRhdGlvbiBmYWlsZWQgZm9yICcke3RoaXMubmFtZX0nOmAsYSl9dGhpcy5zdGF0ZS5uZXh0KGUpfW5vdGlmeUNoYW5nZUN1bXVsYXRpdmUoKXt0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uJiZjbGVhclRpbWVvdXQodGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1zZXRUaW1lb3V0KCgpPT57dGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1udWxsLHRoaXMuc3RhdGVTdG9yZSE9PXZvaWQgMCYmdGhpcy5ub3RpZnlDaGFuZ2UoKS5jYXRjaChlPT57Y29uc29sZS5lcnJvcihgbm90aWZ5Q2hhbmdlQ3VtdWxhdGl2ZSBmYWlsZWQgZm9yICcke3RoaXMubmFtZX0nOmAsZSl9KX0sMCl9c2VsZWN0KGUscil7bGV0IGE9cj8uc2lnbmFsIT1udWxsO2lmKCFhKXtpZihlKXtpZih0aGlzLnNlbGVjdG9yQ2FjaGUuaGFzKGUpKXJldHVybiB0aGlzLnNlbGVjdG9yQ2FjaGUuZ2V0KGUpfWVsc2UgaWYodGhpcy5kZWZhdWx0U2VsZWN0T2JzZXJ2YWJsZSlyZXR1cm4gdGhpcy5kZWZhdWx0U2VsZWN0T2JzZXJ2YWJsZX1sZXQgcz1lfHwoYz0+Yyksbj1TeW1ib2woInNlbGVjdG9yLWVycm9yIiksbz10aGlzLnN0YXRlLnBpcGUob2Eucnhqcy5vcHMuZmlsdGVyKGM9PmMhPT12b2lkIDApLG9hLnJ4anMub3BzLm1hcChjPT57dHJ5e3JldHVybiBzKGMpfWNhdGNoKGQpe3JldHVybiBjb25zb2xlLmVycm9yKGBTZWxlY3RvciBlcnJvciBpbiBzdGF0ZSBwYXJ0ICcke3RoaXMubmFtZX0nOmAsZCksbn19KSxvYS5yeGpzLm9wcy5maWx0ZXIoYz0+YyE9PW4pLFlnKChjLGQpPT5KU09OLnN0cmluZ2lmeShjKT09PUpTT04uc3RyaW5naWZ5KGQpKSk7aWYoYSlyZXR1cm4gbz1vLnBpcGUoS2coZzVhKHIuc2lnbmFsKSkpLG87bGV0IGw9by5waXBlKGtpZSh7YnVmZmVyU2l6ZToxLHJlZkNvdW50OiEwfSkpO3JldHVybiBlP3RoaXMuc2VsZWN0b3JDYWNoZS5zZXQoZSxsKTp0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlPWwsbH1jcmVhdGVBY3Rpb24oZSl7cmV0dXJuIG5ldyBHTSh0aGlzLGUpfWNyZWF0ZUFjdGlvbkNvbnRleHQoZSl7bGV0IHI9dGhpcztyZXR1cm57ZGlzcGF0Y2g6aShhc3luYyhhLHMpPT57aWYoZT49dC5NQVhfTkVTVEVEX0RJU1BBVENIX0RFUFRIKXRocm93IG5ldyBFcnJvcihgTWF4aW11bSBuZXN0ZWQgYWN0aW9uIGRpc3BhdGNoIGRlcHRoICgke3QuTUFYX05FU1RFRF9ESVNQQVRDSF9ERVBUSH0pIGV4Y2VlZGVkLiBDaGVjayBmb3IgY2lyY3VsYXIgYWN0aW9uIGRpc3BhdGNoZXMuYCk7bGV0IG49ci5jcmVhdGVBY3Rpb25Db250ZXh0KGUrMSksbz1hd2FpdCBhLmFjdGlvbkRlZihyLHMsbik7cmV0dXJuIHIuYXBwbHlTdGF0ZShvKX0sImRpc3BhdGNoIil9fWFzeW5jIGRpc3BhdGNoQWN0aW9uKGUscil7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO2F3YWl0IHRoaXMuY3VtdWxhdGl2ZURlZmVycmVkLnByb21pc2U7bGV0IGE9aShhc3luYygpPT57bGV0IHM9dGhpcy5jcmVhdGVBY3Rpb25Db250ZXh0KDApLG49YXdhaXQgZS5hY3Rpb25EZWYodGhpcyxyLHMpO3JldHVybiB0aGlzLmFwcGx5U3RhdGUobil9LCJleGVjdXRlIik7cmV0dXJuIHRoaXMubXV0YXRpb25RdWV1ZT10aGlzLm11dGF0aW9uUXVldWUudGhlbihhLGEpfWFzeW5jIHdhaXRVbnRpbFByZXNlbnQoZSxyKXtsZXQgYSxzO3R5cGVvZiByPT0ibnVtYmVyIj9hPXI6ciYmKGE9ci50aW1lb3V0TXMscz1yLnNpZ25hbCk7bGV0IG49eHQuZGVmZXIoKSxvPXRoaXMuc2VsZWN0KGUpLGw9ITE7aWYocz8uYWJvcnRlZCl0aHJvdyBuZXcgRXJyb3IoIkFib3J0ZWQiKTtsZXQgYz1vLnN1YnNjcmliZShwPT57cCE9bnVsbCYmIWwmJihsPSEwLG4ucmVzb2x2ZShwKSl9KSxkO2EmJihkPXNldFRpbWVvdXQoKCk9PntsfHwobD0hMCxjLnVuc3Vic2NyaWJlKCksbi5yZWplY3QobmV3IEVycm9yKGB3YWl0VW50aWxQcmVzZW50IHRpbWVkIG91dCBhZnRlciAke2F9bXNgKSkpfSxhKSk7bGV0IGY9cz8oKT0+e2x8fChsPSEwLGMudW5zdWJzY3JpYmUoKSxkJiZjbGVhclRpbWVvdXQoZCksbi5yZWplY3QobmV3IEVycm9yKCJBYm9ydGVkIikpKX06dm9pZCAwO3MmJmYmJnMuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGYpO3RyeXtyZXR1cm4gYXdhaXQgbi5wcm9taXNlfWZpbmFsbHl7Yy51bnN1YnNjcmliZSgpLGQmJmNsZWFyVGltZW91dChkKSxzJiZmJiZzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixmKX19YXN5bmMgc3RhdGVTZXR1cChlKXtsZXQgcj1lKHRoaXMpO3RoaXMuY3VtdWxhdGl2ZURlZmVycmVkLmFkZFByb21pc2UociksYXdhaXQgdGhpcy5zZXRTdGF0ZShhd2FpdCByKX1jcmVhdGVQcm9jZXNzKGUpe2lmKHRoaXMuZGlzcG9zZWQpdGhyb3cgbmV3IEVycm9yKGBTdGF0ZVBhcnQgJyR7dGhpcy5uYW1lfScgaGFzIGJlZW4gZGlzcG9zZWRgKTtsZXQgcj1uZXcgTXgodGhpcyxlKTtyZXR1cm4gdGhpcy5wcm9jZXNzZXMucHVzaChyKSxlLmF1dG9TdGFydCYmci5zdGFydCgpLHJ9Y3JlYXRlU2NoZWR1bGVkQWN0aW9uKGUpe2lmKHRoaXMuZGlzcG9zZWQpdGhyb3cgbmV3IEVycm9yKGBTdGF0ZVBhcnQgJyR7dGhpcy5uYW1lfScgaGFzIGJlZW4gZGlzcG9zZWRgKTtsZXQgcj1uZXcgTXgodGhpcyx7cHJvZHVjZXI6aSgoKT0+VTVlKGUuaW50ZXJ2YWxNcyksInByb2R1Y2VyIiksc2lkZUVmZmVjdDppKGFzeW5jKCk9Pnthd2FpdCBlLmFjdGlvbi50cmlnZ2VyKGUucGF5bG9hZCl9LCJzaWRlRWZmZWN0IiksYXV0b1BhdXNlOmUuYXV0b1BhdXNlPz8hMX0pO3JldHVybiB0aGlzLnByb2Nlc3Nlcy5wdXNoKHIpLHIuc3RhcnQoKSxyfV9yZW1vdmVQcm9jZXNzKGUpe2xldCByPXRoaXMucHJvY2Vzc2VzLmluZGV4T2YoZSk7ciE9PS0xJiZ0aGlzLnByb2Nlc3Nlcy5zcGxpY2UociwxKX1kaXNwb3NlKCl7aWYoIXRoaXMuZGlzcG9zZWQpe3RoaXMuZGlzcG9zZWQ9ITA7Zm9yKGxldCBlIG9mWy4uLnRoaXMucHJvY2Vzc2VzXSllLmRpc3Bvc2UoKTt0aGlzLnByb2Nlc3Nlcy5sZW5ndGg9MCx0aGlzLnN0YXRlLmNvbXBsZXRlKCksdGhpcy5tdXRhdGlvblF1ZXVlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24mJihjbGVhclRpbWVvdXQodGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1udWxsKSx0aGlzLm1pZGRsZXdhcmVzLmxlbmd0aD0wLHRoaXMuc2VsZWN0b3JDYWNoZT1uZXcgV2Vha01hcCx0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlPW51bGwsdGhpcy53ZWJTdG9yZT1udWxsLHRoaXMuc21hcnRzdGF0ZVJlZj12b2lkIDAsdGhpcy5zdGF0ZVN0b3JlPXZvaWQgMH19fX0pO2Z1bmN0aW9uIFB3ZSh0LGUpe3JldHVybiBWNWUodC5tYXAocj0+ci5zZWxlY3QoKSkpLnBpcGUoS2Mocj0+ZSguLi5yKSksWWcoKHIsYSk9PkpTT04uc3RyaW5naWZ5KHIpPT09SlNPTi5zdHJpbmdpZnkoYSkpKX12YXIgTndlPXUoKCk9PntmbGUoKTtaZygpO2koUHdlLCJjb21wdXRlZCIpfSk7dmFyIE93ZSxsUnQ9dSgoKT0+e2ZsZSgpO2hsZSgpO053ZSgpO093ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTbWFydHN0YXRlIil9Y29uc3RydWN0b3IoKXt0aGlzLnN0YXRlUGFydE1hcD17fSx0aGlzLnBlbmRpbmdTdGF0ZVBhcnRDcmVhdGlvbj1uZXcgTWFwLHRoaXMuYmF0Y2hEZXB0aD0wLHRoaXMuaXNGbHVzaGluZz0hMSx0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zPW5ldyBTZXR9Z2V0IGlzQmF0Y2hpbmcoKXtyZXR1cm4gdGhpcy5iYXRjaERlcHRoPjB9cmVnaXN0ZXJQZW5kaW5nTm90aWZpY2F0aW9uKGUpe3RoaXMucGVuZGluZ05vdGlmaWNhdGlvbnMuYWRkKGUpfWFzeW5jIGJhdGNoKGUpe3RoaXMuYmF0Y2hEZXB0aCsrO3RyeXthd2FpdCBlKCl9ZmluYWxseXtpZih0aGlzLmJhdGNoRGVwdGgtLSx0aGlzLmJhdGNoRGVwdGg9PT0wJiYhdGhpcy5pc0ZsdXNoaW5nKXt0aGlzLmlzRmx1c2hpbmc9ITA7dHJ5e2Zvcig7dGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucy5zaXplPjA7KXtsZXQgcj1bLi4udGhpcy5wZW5kaW5nTm90aWZpY2F0aW9uc107dGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucy5jbGVhcigpO2ZvcihsZXQgYSBvZiByKXRyeXthd2FpdCBhLm5vdGlmeUNoYW5nZSgpfWNhdGNoKHMpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGZsdXNoaW5nIG5vdGlmaWNhdGlvbiBmb3Igc3RhdGUgcGFydDoiLHMpfX19ZmluYWxseXt0aGlzLmlzRmx1c2hpbmc9ITF9fX19Y29tcHV0ZWQoZSxyKXtyZXR1cm4gUHdlKGUscil9ZGlzcG9zZSgpe2ZvcihsZXQgZSBvZiBPYmplY3Qua2V5cyh0aGlzLnN0YXRlUGFydE1hcCkpe2xldCByPXRoaXMuc3RhdGVQYXJ0TWFwW2VdO3ImJnIuZGlzcG9zZSgpfXRoaXMuc3RhdGVQYXJ0TWFwPXt9LHRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLmNsZWFyKCksdGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucy5jbGVhcigpfWFzeW5jIGdldFN0YXRlUGFydChlLHIsYT0ic29mdCIpe2xldCBzPXRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLmdldChlKTtpZihzKXJldHVybiBzO2xldCBuPXRoaXMuc3RhdGVQYXJ0TWFwW2VdO2lmKG4pc3dpdGNoKGEpe2Nhc2UibWFuZGF0b3J5Ijp0aHJvdyBuZXcgRXJyb3IoYFN0YXRlIHBhcnQgJyR7ZX0nIGFscmVhZHkgZXhpc3RzLCBidXQgaW5pdE1vZGUgaXMgJ21hbmRhdG9yeSdgKTtjYXNlImZvcmNlIjpuLmRpc3Bvc2UoKTticmVhaztkZWZhdWx0OnJldHVybiBufWVsc2UgaWYocj09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlIHBhcnQgJyR7ZX0nIGRvZXMgbm90IGV4aXN0IGFuZCBubyBpbml0aWFsIHN0YXRlIHByb3ZpZGVkYCk7bGV0IG89dGhpcy5jcmVhdGVTdGF0ZVBhcnQoZSxyLGEpO3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLnNldChlLG8pO3RyeXtyZXR1cm4gYXdhaXQgb31maW5hbGx5e3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLmRlbGV0ZShlKX19YXN5bmMgY3JlYXRlU3RhdGVQYXJ0KGUscixhPSJzb2Z0Iil7bGV0IHM9bmV3IFlNKGUsYT09PSJwZXJzaXN0ZW50Ij97ZGJOYW1lOiJzbWFydHN0YXRlIixzdG9yZU5hbWU6ZX06dm9pZCAwKTtzLnNtYXJ0c3RhdGVSZWY9dGhpcyxhd2FpdCBzLmluaXQoKTtsZXQgbj1zLmdldFN0YXRlKCk7cmV0dXJuIGE9PT0icGVyc2lzdGVudCImJm4hPT12b2lkIDA/YXdhaXQgcy5zZXRTdGF0ZSh7Li4uciwuLi5ufSk6YXdhaXQgcy5zZXRTdGF0ZShyKSx0aGlzLnN0YXRlUGFydE1hcFtlXT1zLHN9fX0pO2Z1bmN0aW9uIGI1YSh0LGUpe2xldHtjb250ZXh0OnIsc3RhdGVQYXJ0OmEsc2VsZWN0b3JGbjpzfT1lLG49bmV3IFNldCxvPWEuc2VsZWN0KHMpLnN1YnNjcmliZShkPT57Zm9yKGxldCBmIG9mIG4pZihkKX0pLGw9aSgoKT0+e2xldCBkPWEuZ2V0U3RhdGUoKTtpZihkIT09dm9pZCAwKXJldHVybiBzP3MoZCk6ZH0sImdldFZhbHVlIiksYz1pKGQ9PntsZXQgZj1kLHA9Zi5kZXRhaWw7aWYoISghcHx8cC5jb250ZXh0IT09cikpaWYoZi5zdG9wUHJvcGFnYXRpb24oKSxwLnN1YnNjcmliZSl7bGV0IGg9cC5jYWxsYmFjaztuLmFkZChoKTtsZXQgbT1pKCgpPT5uLmRlbGV0ZShoKSwidW5zdWJzY3JpYmUiKTtoKGwoKSxtKX1lbHNlIHAuY2FsbGJhY2sobCgpKX0sImhhbmRsZXIiKTtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0LXJlcXVlc3QiLGMpLCgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0LXJlcXVlc3QiLGMpLG8udW5zdWJzY3JpYmUoKSxuLmNsZWFyKCl9fXZhciBjUnQ9dSgoKT0+e2koYjVhLCJhdHRhY2hDb250ZXh0UHJvdmlkZXIiKX0pO3ZhciBOaD17fTtWZShOaCx7U21hcnRzdGF0ZTooKT0+T3dlLFN0YXRlQWN0aW9uOigpPT5HTSxTdGF0ZVBhcnQ6KCk9PllNLFN0YXRlUHJvY2VzczooKT0+TXgsYXR0YWNoQ29udGV4dFByb3ZpZGVyOigpPT5iNWEsY29tcHV0ZWQ6KCk9PlB3ZX0pO3ZhciBkUnQ9dSgoKT0+e2xSdCgpO2hsZSgpO0V3ZSgpO053ZSgpO2NSdCgpO0l3ZSgpfSk7dmFyIHVSdD11KCgpPT57fSk7dmFyIFJ3ZSxwUnQ9dSgoKT0+e3VSdCgpO1J3ZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIlNtYXJ0dXJsIil9c3RhdGljIGNyZWF0ZUZyb21VcmwoZSxyKXtsZXQgYT1uZXcgVVJMKGUpLHM9e30sbj1bXTthLnNlYXJjaCYmYS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLnNwbGl0KCImIikubWFwKGQ9PntuLnB1c2goe2tleTpkLnNwbGl0KCI9IilbMF0sdmFsdWU6ZC5zcGxpdCgiPSIpWzFdfSl9KTtmb3IobGV0IGQgb2YgbilzW2Qua2V5XT1kLnZhbHVlO2lmKHI/LnNlYXJjaFBhcmFtcylmb3IobGV0IGQgb2YgT2JqZWN0LmtleXMoci5zZWFyY2hQYXJhbXMpKXNbZF09ci5zZWFyY2hQYXJhbXNbZF07bGV0IG89YS5wYXRobmFtZXx8IiI7aWYoT2JqZWN0LmtleXMocykubGVuZ3RoPjApe28rPSI/IjtsZXQgZD0hMDtmb3IobGV0IGYgb2YgT2JqZWN0LmtleXMocykpZD9kPSExOm8rPSImIixvKz1gJHtmfT0ke3NbZl19YH1sZXQgbD17Li4uYSxocmVmOmEuaHJlZixvcmlnaW46YS5vcmlnaW4scHJvdG9jb2w6YS5wcm90b2NvbCx1c2VybmFtZTphLnVzZXJuYW1lLHBhc3N3b3JkOmEucGFzc3dvcmQsaG9zdDphLmhvc3QsaG9zdG5hbWU6YS5ob3N0bmFtZSxwb3J0OmEucG9ydCxwYXRoOm8scGF0aG5hbWU6YS5wYXRobmFtZSxzZWFyY2g6YS5zZWFyY2gsc2VhcmNoUGFyYW1zOnMsaGFzaDphLmhhc2h9OyFsLnBvcnQmJmwucHJvdG9jb2w9PT0iaHR0cHM6IiYmKGwucG9ydD0iNDQzIiksIWwucG9ydCYmbC5wcm90b2NvbD09PSJodHRwOiImJihsLnBvcnQ9IjgwIik7bGV0IGM9bmV3IHQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oYyxsKSxjfXN0YXRpYyBjcmVhdGVGcm9tUGFyc2VkVXJsKGUpe2xldCByPW5ldyB0O3JldHVybiBPYmplY3QuYXNzaWduKHIsZSkscn1jb25zdHJ1Y3Rvcigpe3RoaXMuc2VhcmNoUGFyYW1zPXt9fWNsb25lKCl7bGV0IGU9bmV3IHQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oZSx0aGlzKSxlLnNlYXJjaFBhcmFtcz17Li4udGhpcy5zZWFyY2hQYXJhbXN9LGV9c2V0KGUscil7cmV0dXJuIHRoaXNbZV09cix0aGlzfXRvU3RyaW5nKCl7bGV0IGU9IiI7cmV0dXJuIHRoaXMudXNlcm5hbWUmJiF0aGlzLnBhc3N3b3JkJiYoZT1gJHt0aGlzLnVzZXJuYW1lfUBgKSx0aGlzLnVzZXJuYW1lJiZ0aGlzLnBhc3N3b3JkJiYoZT1gJHt0aGlzLnVzZXJuYW1lfToke3RoaXMucGFzc3dvcmR9QGApLGAke3RoaXMucHJvdG9jb2x9Ly8ke2V9JHt0aGlzLmhvc3RuYW1lfToke3RoaXMucG9ydH0ke3RoaXMucGF0aH1gfX19KTt2YXIgSDI9e307VmUoSDIse1NtYXJ0dXJsOigpPT5Sd2V9KTt2YXIgRndlPXUoKCk9PntwUnQoKX0pO3ZhciBmUnQ9dSgoKT0+e30pO3ZhciBCd2U9dSgoKT0+e2w0KCk7bDQoKX0pO3ZhciBoUnQ9dSgoKT0+e30pO3ZhciBtUnQ9dSgoKT0+e30pO3ZhciBnUnQ9dSgoKT0+e30pO3ZhciBiUnQ9dSgoKT0+e30pO3ZhciBId2U9e307dmFyIHF3ZT11KCgpPT57aFJ0KCk7bVJ0KCk7Z1J0KCk7YlJ0KCl9KTt2YXIgeFJ0PXUoKCk9Pntxd2UoKTttbGUoKX0pO3ZhciB2UnQ9dSgoKT0+e2w0KCl9KTt2YXIgeVJ0PXUoKCk9Pnt9KTt2YXIgd1J0PXUoKCk9PntsNCgpfSk7dmFyIGtSdD11KCgpPT57bDQoKX0pO3ZhciBTUnQ9dSgoKT0+e30pO3ZhciBNUnQ9dSgoKT0+e30pO3ZhciBDUnQ9dSgoKT0+e30pO3ZhciBWd2U9e307dmFyIGdsZT11KCgpPT57dlJ0KCk7eVJ0KCk7d1J0KCk7a1J0KCk7U1J0KCk7TVJ0KCk7Q1J0KCl9KTt2YXIgelJ0PXUoKCk9PntnbGUoKTtCd2UoKX0pO3ZhciBfUnQ9dSgoKT0+e21sZSgpO2dsZSgpfSk7dmFyIFRSdD11KCgpPT57fSk7dmFyIExSdD11KCgpPT57fSk7dmFyIGp3ZT17fTt2YXIgbWxlPXUoKCk9PntmUnQoKTtCd2UoKTt4UnQoKTt6UnQoKTtfUnQoKTtUUnQoKTtMUnQoKX0pO3ZhciBEUnQ9dSgoKT0+e30pO3ZhciAkUnQ9dSgoKT0+e30pO3ZhciBVd2U9e307dmFyIEFSdD11KCgpPT57RFJ0KCk7JFJ0KCl9KTt2YXIgRVJ0PXUoKCk9Pnt9KTt2YXIgSVJ0PXUoKCk9Pnt9KTt2YXIgV3dlPXt9O3ZhciBQUnQ9dSgoKT0+e0VSdCgpO0lSdCgpfSk7dmFyIEd3ZT17fTt2YXIgTlJ0PXUoKCk9Pnt9KTt2YXIgWXdlPXUoKCk9PntsNCgpfSk7dmFyIE9SdD11KCgpPT57bDQoKX0pO3ZhciBSUnQ9dSgoKT0+e1l3ZSgpfSk7dmFyIEt3ZT17fTt2YXIgRlJ0PXUoKCk9PntZd2UoKTtPUnQoKTtSUnQoKX0pO3ZhciBCUnQ9dSgoKT0+e30pO3ZhciBIUnQ9dSgoKT0+e30pO3ZhciBad2U9e307dmFyIHFSdD11KCgpPT57QlJ0KCk7SFJ0KCl9KTt2YXIgUXdlPXUoKCk9Pnt9KTt2YXIgWHdlLFZSdD11KCgpPT57UXdlKCk7WHdlPWNsYXNze3N0YXRpY3tpKHRoaXMsIklDbmFtZURlc2NyaXB0b3IiKX19fSk7dmFyIGpSdD11KCgpPT57fSk7dmFyIFVSdD11KCgpPT57fSk7dmFyIFdSdD11KCgpPT57fSk7dmFyIEdSdD11KCgpPT57fSk7dmFyIFlSdD11KCgpPT57fSk7dmFyIEtSdD11KCgpPT57fSk7dmFyIFpSdD11KCgpPT57fSk7dmFyIFFSdD11KCgpPT57fSk7dmFyIFhSdD11KCgpPT57fSk7dmFyIEpSdD11KCgpPT57fSk7dmFyIGJsZT17fTtWZShibGUse0lDbmFtZURlc2NyaXB0b3I6KCk9Plh3ZX0pO3ZhciBlRnQ9dSgoKT0+e1F3ZSgpO1ZSdCgpO2pSdCgpO1VSdCgpO1dSdCgpO0dSdCgpO1lSdCgpO0tSdCgpO1pSdCgpO1FSdCgpO1hSdCgpO0pSdCgpfSk7dmFyIEp3ZT11KCgpPT57fSk7dmFyIHRGdD11KCgpPT57SndlKCl9KTt2YXIgZWtlPXt9O3ZhciByRnQ9dSgoKT0+e3RGdCgpO0p3ZSgpfSk7dmFyIHRrZT17fTt2YXIgYUZ0PXUoKCk9Pnt9KTt2YXIgaUZ0PXUoKCk9Pnt9KTt2YXIgc0Z0PXUoKCk9Pnt9KTt2YXIgbkZ0PXUoKCk9Pnt9KTt2YXIgcmtlPXt9O3ZhciBvRnQ9dSgoKT0+e2lGdCgpO3NGdCgpO25GdCgpfSk7dmFyIGxGdD11KCgpPT57fSk7dmFyIGFrZT17fTtWZShha2Use2J1c2luZXNzOigpPT5qd2UsY29kZTooKT0+VXdlLGNvbnRhaW5lcjooKT0+V3dlLGNvbnRlbnQ6KCk9Pkt3ZSxkYXRhYmFzZTooKT0+SHdlLGRlc2NyaXB0b3JzOigpPT5Hd2UsZmluYW5jZTooKT0+VndlLGdlbmVyYWw6KCk9Plp3ZSxuZXR3b3JrOigpPT5ibGUsc2FhczooKT0+ZWtlLHN0b3JhZ2U6KCk9PnRrZSx3ZWJzaXRlOigpPT5ya2V9KTt2YXIgbDQ9dSgoKT0+e21sZSgpO0FSdCgpO1BSdCgpO3F3ZSgpO05SdCgpO2dsZSgpO0ZSdCgpO3FSdCgpO2VGdCgpO3JGdCgpO2FGdCgpO29GdCgpO2xGdCgpfSk7dmFyIGM0PXUoKCk9PntHbigpO2w0KCl9KTt2YXIgeGxlPXUoKCk9PntjNCgpfSk7dmFyIE91LEtNPXUoKCk9PntjNCgpO091PWNsYXNze3N0YXRpY3tpKHRoaXMsIlRhZyIpfWNvbnN0cnVjdG9yKCl7dGhpcy50YWdMZXZlbD0ibGV2ZWxib3VuZCJ9YXBwZW5kVG9Eb20oKXshdGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQmJiF0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZSYmZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfXJlbW92ZUZyb21Eb20oKXt0aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudD90aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpOnRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlJiZ0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfX19KTt2YXIgT2gsdmxlPXUoKCk9PntjNCgpO3hsZSgpO0tNKCk7T2g9Y2xhc3MgdCBleHRlbmRzIE91e3N0YXRpY3tpKHRoaXMsIkpzb25MZFRhZyIpfXN0YXRpYyBjcmVhdGVDb21wYW55SnNvbkxkKGUpe2xldCByPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IkNvcnBvcmF0aW9uIixuYW1lOmUubmFtZSxhbHRlcm5hdGVOYW1lOmUubmFtZS5yZXBsYWNlKCIgR21iSCIsIiIpLHVybDplLndlYnNpdGUsbG9nbzplLmxvZ29VcmwsY29udGFjdFBvaW50OnsiQHR5cGUiOiJDb250YWN0UG9pbnQiLHRlbGVwaG9uZTplLnBob25lLGNvbnRhY3RUeXBlOiJjdXN0b21lciBzZXJ2aWNlIixhcmVhU2VydmVkOiJERSIsYXZhaWxhYmxlTGFuZ3VhZ2U6WyJlbiIsIkdlcm1hbiJdfSxzYW1lQXM6W119LGE9ZS5zb2NpYWxzPy5maW5kKG89Pm8udHlwZT09PSJmYWNlYm9vayIpPy51cmw7YSYmci5zYW1lQXMucHVzaChhKTtsZXQgcz1lLnNvY2lhbHM/LmZpbmQobz0+by50eXBlPT09InR3aXR0ZXIiKT8udXJsO3JldHVybiBzJiZyLnNhbWVBcy5wdXNoKHMpLG5ldyB0KHIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZUpzb25MZChlKXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJOZXdzQXJ0aWNsZSIsbWFpbkVudGl0eU9mUGFnZTp7IkB0eXBlIjoiV2ViUGFnZSIsIkBpZCI6d2luZG93LmxvY2F0aW9uLmhyZWZ9LGhlYWRsaW5lOiJBcnRpY2xlIGhlYWRsaW5lIixpbWFnZTpbZS5mZWF0dXJlZEltYWdlVXJsXSxkYXRlUHVibGlzaGVkOm5ldyBEYXRlKGUudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGRhdGVNb2RpZmllZDpuZXcgRGF0ZShlLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxhdXRob3I6eyJAdHlwZSI6IlBlcnNvbiIsbmFtZTpgJHtlLmF1dGhvci5maXJzdE5hbWV9ICR7ZS5hdXRob3Iuc3VyTmFtZX1gfSxwdWJsaXNoZXI6eyJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsbmFtZTplLmF1dGhvci5zdXJOYW1lLGxvZ286eyJAdHlwZSI6IkltYWdlT2JqZWN0Iix1cmw6ZS5hdXRob3Iuc3VyTmFtZX19LGRlc2NyaXB0aW9uOmUuYXV0aG9yLmZpcnN0TmFtZX07cmV0dXJuIG5ldyB0KHIpfXN0YXRpYyBjcmVhdGVQcm9kdWN0SnNvbkxkKGUscil7bGV0IGE9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiU29mdHdhcmVBcHBsaWNhdGlvbiIsbmFtZTplLm5hbWUsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbixvcGVyYXRpbmdTeXN0ZW06ZS5vcyxhcHBsaWNhdGlvbkNhdGVnb3J5OmUuY2F0ZWdvcnksb2ZmZXJzOnsiQHR5cGUiOiJPZmZlciIsbmFtZToiVXNlci1iYXNlZCBQbGFuIixwcmljZVNwZWNpZmljYXRpb246eyJAdHlwZSI6IlByb3BlcnR5VmFsdWVTcGVjaWZpY2F0aW9uIix2YWx1ZU5hbWU6Ik51bWJlciBvZiBVc2VycyIsdmFsdWVSZXF1aXJlZDohMCxwcmljZToiNC45OSIscHJpY2VDdXJyZW5jeToiRVVSIn19LHB1Ymxpc2hlcjpyP3RoaXMuY3JlYXRlQ29tcGFueUpzb25MZChyKS5lbGVtZW50UmVmLnRleHRDb250ZW50OnZvaWQgMCxzY3JlZW5zaG90OiJodHRwczovL3d3dy5zb2NpYWwuaW8vc2NyZWVuc2hvdC5wbmciLHVybDoiaHR0cHM6Ly93d3cuc29jaWFsLmlvLyJ9O3JldHVybiBuZXcgdChhKX1jb25zdHJ1Y3RvcihlKXtzdXBlcigpO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3IudHlwZT0iYXBwbGljYXRpb24vbGQranNvbiIsci50ZXh0PUpTT04uc3RyaW5naWZ5KGUpLHRoaXMuZWxlbWVudFJlZj1yfX19KTt2YXIgUG8seWxlPXUoKCk9PntjNCgpO0tNKCk7UG89Y2xhc3MgdCBleHRlbmRzIE91e3N0YXRpY3tpKHRoaXMsIk9wZW5ncmFwaFRhZyIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyhlKXtsZXQgcj1bXTtyZXR1cm4gci5wdXNoKG5ldyB0KCJvZzp1cmwiLGUudXJsPz9nbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSxyLnB1c2gobmV3IHQoIm9nOnRpdGxlIixlLnRpdGxlKSksci5wdXNoKG5ldyB0KCJvZzpkZXNjcmlwdGlvbiIsZS5jb250ZW50KSksci5wdXNoKG5ldyB0KCJvZzppbWFnZSIsZS5mZWF0dXJlZEltYWdlVXJsPz8iIikpLHJ9c3RhdGljIGNyZWF0ZVByb2R1Y3RPZ1RhZ3MoZSl7bGV0IHI9W107cmV0dXJuIHIucHVzaChuZXcgdCgib2c6dHlwZSIsInByb2R1Y3QiKSksci5wdXNoKG5ldyB0KCJvZzp1cmwiLGdsb2JhbFRoaXMubG9jYXRpb24uaHJlZikpLHIucHVzaChuZXcgdCgib2c6dGl0bGUiLGAke2UubmFtZX0gLSAke2Uuc2xvZ2FufWApKSxyLnB1c2gobmV3IHQoIm9nOnNpdGVfbmFtZSIsZS5uYW1lKSksci5wdXNoKG5ldyB0KCJvZzpkZXNjcmlwdGlvbiIsZS5kZXNjcmlwdGlvbikpLHIucHVzaChuZXcgdCgib2c6aW1hZ2UiLGUubG9nb0xpbmspKSxyfXN0YXRpYyBjcmVhdGVDb21wYW55T2dUYWdzKGUpe2xldCByPVtdO3JldHVybiByLnB1c2gobmV3IHQoIm9nOnR5cGUiLCJjb21wYW55IikpLHIucHVzaChuZXcgdCgib2c6dXJsIixnbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSxyLnB1c2gobmV3IHQoIm9nOnRpdGxlIixlLm5hbWUpKSxyLnB1c2gobmV3IHQoIm9nOnNpdGVfbmFtZSIsZS5uYW1lKSksci5wdXNoKG5ldyB0KCJvZzpkZXNjcmlwdGlvbiIsZS5kZXNjcmlwdGlvbikpLHIucHVzaChuZXcgdCgib2c6aW1hZ2UiLGUubG9nb1VybD8/IiIpKSxyfWNvbnN0cnVjdG9yKGUscil7c3VwZXIoKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7YS5zZXRBdHRyaWJ1dGUoInByb3BlcnR5IixlKSxhLmNvbnRlbnQ9cix0aGlzLmVsZW1lbnRSZWY9YX19fSk7dmFyIEN4LGlrZT11KCgpPT57S00oKTt2bGUoKTt5bGUoKTtza2UoKTtjNCgpO0N4PWNsYXNze3N0YXRpY3tpKHRoaXMsIlRhZ0xldmVsIil9c2V0IHRpdGxlKGUpe3RoaXMudGl0bGVTdG9yZT1lLHRoaXMuc3RhdGU9PT0iZW5hYmxlZCImJihkb2N1bWVudC50aXRsZT10aGlzLnRpdGxlU3RvcmUpfWdldCB0aXRsZSgpe3JldHVybiB0aGlzLnRpdGxlU3RvcmV9Y29uc3RydWN0b3IoZSxyKXt0aGlzLnRhZ3M9W10sdGhpcy5zdGF0ZT0iZGlzYWJsZWQiLHRoaXMudGFnTWFuYWdlclJlZj1lLHRoaXMudHlwZT1yfWFkZFRhZyhlKXtpZihlIGluc3RhbmNlb2YgQXJyYXkpZm9yKGxldCByIG9mIGUpdGhpcy5hZGRUYWcocik7ZWxzZSB0aGlzLnRhZ3MucHVzaChlKSx0aGlzLnN0YXRlPT09ImVuYWJsZWQiJiZlLmFwcGVuZFRvRG9tKCl9YXN5bmMgYWRkQ29tcGFueUluZm8oZSl7dGhpcy5hZGRUYWcoT2guY3JlYXRlQ29tcGFueUpzb25MZChlKSksdGhpcy5hZGRUYWcobmV3IFBvKCJvZzp0eXBlIiwiYnVzaW5lc3MuYnVzaW5lc3MiKSksdGhpcy5hZGRUYWcobmV3IFBvKCJvZzp0aXRsZSIsZS5uYW1lKSksdGhpcy5hZGRUYWcobmV3IFBvKCJvZzp1cmwiLGUud2Vic2l0ZT8/IiIpKSx0aGlzLmFkZFRhZyhuZXcgUG8oIm9nOmltYWdlIixlLmxvZ29Vcmw/PyIiKSksdGhpcy5hZGRUYWcobmV3IFBvKCJidXNpbmVzczpjb250YWN0X2RhdGE6c3RyZWV0X2FkZHJlc3MiLGAke2UuYWRkcmVzcy5zdHJlZXROYW1lfSAke2UuYWRkcmVzcy5ob3VzZU51bWJlcn1gKSksdGhpcy5hZGRUYWcobmV3IFBvKCJidXNpbmVzczpjb250YWN0X2RhdGE6bG9jYWxpdHkiLGUuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IFBvKCJidXNpbmVzczpjb250YWN0X2RhdGE6cmVnaW9uIixlLmFkZHJlc3MuY2l0eSkpLHRoaXMuYWRkVGFnKG5ldyBQbygiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnBvc3RhbF9jb2RlIixlLmFkZHJlc3MucG9zdGFsQ29kZSkpLHRoaXMuYWRkVGFnKG5ldyBQbygiYnVzaW5lc3M6Y29udGFjdF9kYXRhOmNvdW50cnlfbmFtZSIsZS5hZGRyZXNzLmNvdW50cnkpKX1hZGROZXdzQXJ0aWNsZUluZm8oZSl7dGhpcy5hZGRUYWcoT2guY3JlYXRlTmV3c0FydGljbGVKc29uTGQoZSkpLHRoaXMuYWRkVGFnKFBvLmNyZWF0ZU5ld3NBcnRpY2xlT2dUYWdzKGUpKX1hZGRQcm9kdWN0SW5mbyhlLHIpe3RoaXMuYWRkVGFnKE9oLmNyZWF0ZVByb2R1Y3RKc29uTGQoZSxyKSksdGhpcy5hZGRUYWcoUG8uY3JlYXRlUHJvZHVjdE9nVGFncyhlKSl9YXN5bmMgZW5hYmxlKCl7dGhpcy50aXRsZSYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGUpO2ZvcihsZXQgZSBvZiB0aGlzLnRhZ3MpZS5hcHBlbmRUb0RvbSgpO3RoaXMuc3RhdGU9ImVuYWJsZWQifWFzeW5jIGRpc2FibGUoKXtmb3IobGV0IGUgb2YgdGhpcy50YWdzKWUucmVtb3ZlRnJvbURvbSgpO3RoaXMuc3RhdGU9ImRpc2FibGVkIn19fSk7dmFyIFBsLG5rZT11KCgpPT57S00oKTtQbD1jbGFzcyBleHRlbmRzIE91e3N0YXRpY3tpKHRoaXMsIk1ldGFUYWciKX1jb25zdHJ1Y3RvcihlLHIpe3N1cGVyKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2EubmFtZT1lLGEuY29udGVudD1yLHRoaXMuZWxlbWVudFJlZj1hfX19KTt2YXIgd2xlLHNrZT11KCgpPT57aWtlKCk7YzQoKTt4bGUoKTtua2UoKTt2bGUoKTt5bGUoKTt3bGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGFnTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5nbG9iYWxMZXZlbD1uZXcgQ3godGhpcywiZ2xvYmFsIiksdGhpcy5iYXNlTGV2ZWw9bmV3IEN4KHRoaXMsImJhc2UiKX1hc3luYyBzZXR1cChlKXtzd2l0Y2godGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IFBsKCJnb29nbGUiLCJub3RyYW5zbGF0ZSIpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgUGwoInJldmlzaXQtYWZ0ZXIiLCIxIGRheXMiKSksZS50d2l0dGVySGFuZGxlJiYodGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IFBsKCJ0d2l0dGVyOmNhcmQiLCJzdW1tYXJ5X2xhcmdlX2ltYWdlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBQbCgidHdpdHRlcjpzaXRlIixlLnR3aXR0ZXJIYW5kbGUpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgUGwoInR3aXR0ZXI6Y3JlYXRvciIsZS50d2l0dGVySGFuZGxlKSkpLHRoaXMuYmFzZUxldmVsLnRpdGxlPWUudGl0bGUsZS5kZXNjcmlwdGlvbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBQbCgiZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxlLmNhbm9uaWNhbERvbWFpbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBQbCgiY2Fub25pY2FsIixlLmNhbm9uaWNhbERvbWFpbikpLCEwKXtjYXNlKGUubGRDb21wYW55JiYhZS5sZFByb2R1Y3QpOnRoaXMuYmFzZUxldmVsLmFkZENvbXBhbnlJbmZvKGUubGRDb21wYW55KTticmVhaztjYXNlISFlLmxkUHJvZHVjdDp0aGlzLmJhc2VMZXZlbC5hZGRQcm9kdWN0SW5mbyhlLmxkUHJvZHVjdCxlLmxkQ29tcGFueSk7YnJlYWt9YXdhaXQgdGhpcy5nbG9iYWxMZXZlbC5lbmFibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXRoaXMuYmFzZUxldmVsLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCl9YXN5bmMgc2V0U3ViUGFnZUxldmVsKGUpe2xldCByPW5ldyBDeCh0aGlzLCJzdWJwYWdlIik7cmV0dXJuIHIudGl0bGU9ZS50aXRsZSxlLmRlc2NyaXB0aW9uJiZyLmFkZFRhZyhuZXcgUGwoImRlc2NyaXB0aW9uIixlLmRlc2NyaXB0aW9uKSksYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD1yLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCkscn1hc3luYyByZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMuYWN0aXZlTGV2ZWwhPT10aGlzLmJhc2VMZXZlbCYmKGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSl9fX0pO3ZhciBaTSxjRnQ9dSgoKT0+e2M0KCk7eGxlKCk7c2tlKCk7aWtlKCk7Wk09Y2xhc3N7c3RhdGlje2kodGhpcywiV2ViU2V0dXAiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnRhZ01hbmFnZXI9bmV3IHdsZSx0aGlzLnJlYWR5RGVmZXJyZWQ9eHQuZGVmZXIoKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZD14dC5kZWZlcigpLHRoaXMucmVhZHlQcm9taXNlPXRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlLHRoaXMucmVhZHlGb3JTbWFydHNzclByb21pc2U9dGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucHJvbWlzZSx0aGlzLm9wdGlvbnM9ZSx0aGlzLnNldHVwKCkudGhlbigoKT0+e3RoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCksdGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9KX1hc3luYyBzZXR1cChlKXtlJiYodGhpcy5vcHRpb25zPWUpLGF3YWl0IHRoaXMudGFnTWFuYWdlci5zZXR1cCh0aGlzLm9wdGlvbnMubWV0YU9iamVjdCl9cmV2ZXJ0VG9CYXNlTGV2ZWwoKXt0aGlzLnRhZ01hbmFnZXIucmV2ZXJ0VG9CYXNlTGV2ZWwoKX1hc3luYyBzZXRTdWJMZXZlbChlKXtyZXR1cm4gYXdhaXQgdGhpcy50YWdNYW5hZ2VyLnNldFN1YlBhZ2VMZXZlbChlKX1mbGFzaFRpdGxlKGUpe31pbmZvcm1SZWFkeUZvclNtYXJ0c3NyKCl7dGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHxjb25zb2xlLmVycm9yKCJZb3UgaGF2ZSBub3QgaW5kaWNhdGVkIHRoYXQgeW91IGluZm9ybSBzbWFydHNzciBieSBhIGRlZGljYXRlZCBzaWduYWwhIFBsZWFzZSBjb25zaWRlciBkb2luZyBzbyEiKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9fX0pO3ZhciBva2UsZEZ0PXUoKCk9PntjNCgpO29rZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaXRsZSIpfX19KTt2YXIgbGtlPXt9O1ZlKGxrZSx7SnNvbkxkVGFnOigpPT5PaCxNZXRhVGFnOigpPT5QbCxPcGVuZ3JhcGhUYWc6KCk9PlBvLFRpdGxlOigpPT5va2UsV2ViU2V0dXA6KCk9PlpNfSk7dmFyIGtsZT11KCgpPT57Y0Z0KCk7bmtlKCk7eWxlKCk7dmxlKCk7ZEZ0KCl9KTtmdW5jdGlvbiB1RnQodCxlLHIpe3JldHVybiBNYXRoLm1heCh0LE1hdGgubWluKGUscikpfWZ1bmN0aW9uIHk1YSh0LGUscil7cmV0dXJuKDEtcikqdCtyKmV9ZnVuY3Rpb24gdzVhKHQsZSxyLGEpe3JldHVybiB5NWEodCxlLDEtTWF0aC5leHAoLXIqYSkpfWZ1bmN0aW9uIGs1YSh0LGUpe3JldHVybih0JWUrZSklZX1mdW5jdGlvbiBNNWEodCxlKXtsZXQgcjtyZXR1cm4gZnVuY3Rpb24oLi4uYSl7bGV0IHM9dGhpcztjbGVhclRpbWVvdXQocikscj1zZXRUaW1lb3V0KCgpPT57cj12b2lkIDAsdC5hcHBseShzLGEpfSxlKX19dmFyIHY1YSxTNWEsQzVhLHBGdCxmRnQsUnUsejVhLGhGdCxRTSxtRnQ9dSgoKT0+e3Y1YT0iMS4zLjE3IjtpKHVGdCwiY2xhbXAiKTtpKHk1YSwibGVycCIpO2kodzVhLCJkYW1wIik7aShrNWEsIm1vZHVsbyIpO1M1YT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJBbmltYXRlIil9aXNSdW5uaW5nPSExO3ZhbHVlPTA7ZnJvbT0wO3RvPTA7Y3VycmVudFRpbWU9MDtsZXJwO2R1cmF0aW9uO2Vhc2luZztvblVwZGF0ZTthZHZhbmNlKHQpe2lmKCF0aGlzLmlzUnVubmluZylyZXR1cm47bGV0IGU9ITE7aWYodGhpcy5kdXJhdGlvbiYmdGhpcy5lYXNpbmcpe3RoaXMuY3VycmVudFRpbWUrPXQ7bGV0IHI9dUZ0KDAsdGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uLDEpO2U9cj49MTtsZXQgYT1lPzE6dGhpcy5lYXNpbmcocik7dGhpcy52YWx1ZT10aGlzLmZyb20rKHRoaXMudG8tdGhpcy5mcm9tKSphfWVsc2UgdGhpcy5sZXJwPyh0aGlzLnZhbHVlPXc1YSh0aGlzLnZhbHVlLHRoaXMudG8sdGhpcy5sZXJwKjYwLHQpLE1hdGgucm91bmQodGhpcy52YWx1ZSk9PT10aGlzLnRvJiYodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApKToodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApO2UmJnRoaXMuc3RvcCgpLHRoaXMub25VcGRhdGU/Lih0aGlzLnZhbHVlLGUpfXN0b3AoKXt0aGlzLmlzUnVubmluZz0hMX1mcm9tVG8odCxlLHtsZXJwOnIsZHVyYXRpb246YSxlYXNpbmc6cyxvblN0YXJ0Om4sb25VcGRhdGU6b30pe3RoaXMuZnJvbT10aGlzLnZhbHVlPXQsdGhpcy50bz1lLHRoaXMubGVycD1yLHRoaXMuZHVyYXRpb249YSx0aGlzLmVhc2luZz1zLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmlzUnVubmluZz0hMCxuPy4oKSx0aGlzLm9uVXBkYXRlPW99fTtpKE01YSwiZGVib3VuY2UiKTtDNWE9Y2xhc3N7c3RhdGlje2kodGhpcywiRGltZW5zaW9ucyIpfWNvbnN0cnVjdG9yKHQsZSx7YXV0b1Jlc2l6ZTpyPSEwLGRlYm91bmNlOmE9MjUwfT17fSl7dGhpcy53cmFwcGVyPXQsdGhpcy5jb250ZW50PWUsciYmKHRoaXMuZGVib3VuY2VkUmVzaXplPU01YSh0aGlzLnJlc2l6ZSxhKSx0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpOih0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy53cmFwcGVyKSksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuZGVib3VuY2VkUmVzaXplKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY29udGVudCkpLHRoaXMucmVzaXplKCl9d2lkdGg9MDtoZWlnaHQ9MDtzY3JvbGxIZWlnaHQ9MDtzY3JvbGxXaWR0aD0wO2RlYm91bmNlZFJlc2l6ZTt3cmFwcGVyUmVzaXplT2JzZXJ2ZXI7Y29udGVudFJlc2l6ZU9ic2VydmVyO2Rlc3Ryb3koKXt0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy53cmFwcGVyPT09d2luZG93JiZ0aGlzLmRlYm91bmNlZFJlc2l6ZSYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpfXJlc2l6ZT1pKCgpPT57dGhpcy5vbldyYXBwZXJSZXNpemUoKSx0aGlzLm9uQ29udGVudFJlc2l6ZSgpfSwicmVzaXplIik7b25XcmFwcGVyUmVzaXplPWkoKCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMud2lkdGg9d2luZG93LmlubmVyV2lkdGgsdGhpcy5oZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0KToodGhpcy53aWR0aD10aGlzLndyYXBwZXIuY2xpZW50V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy53cmFwcGVyLmNsaWVudEhlaWdodCl9LCJvbldyYXBwZXJSZXNpemUiKTtvbkNvbnRlbnRSZXNpemU9aSgoKT0+e3RoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz8odGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5jb250ZW50LnNjcm9sbEhlaWdodCx0aGlzLnNjcm9sbFdpZHRoPXRoaXMuY29udGVudC5zY3JvbGxXaWR0aCk6KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMud3JhcHBlci5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLndyYXBwZXIuc2Nyb2xsV2lkdGgpfSwib25Db250ZW50UmVzaXplIik7Z2V0IGxpbWl0KCl7cmV0dXJue3g6dGhpcy5zY3JvbGxXaWR0aC10aGlzLndpZHRoLHk6dGhpcy5zY3JvbGxIZWlnaHQtdGhpcy5oZWlnaHR9fX0scEZ0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkVtaXR0ZXIiKX1ldmVudHM9e307ZW1pdCh0LC4uLmUpe2xldCByPXRoaXMuZXZlbnRzW3RdfHxbXTtmb3IobGV0IGE9MCxzPXIubGVuZ3RoO2E8czthKyspclthXT8uKC4uLmUpfW9uKHQsZSl7cmV0dXJuIHRoaXMuZXZlbnRzW3RdPy5wdXNoKGUpfHwodGhpcy5ldmVudHNbdF09W2VdKSwoKT0+e3RoaXMuZXZlbnRzW3RdPXRoaXMuZXZlbnRzW3RdPy5maWx0ZXIocj0+ZSE9PXIpfX1vZmYodCxlKXt0aGlzLmV2ZW50c1t0XT10aGlzLmV2ZW50c1t0XT8uZmlsdGVyKHI9PmUhPT1yKX1kZXN0cm95KCl7dGhpcy5ldmVudHM9e319fSxmRnQ9MTAwLzYsUnU9e3Bhc3NpdmU6ITF9LHo1YT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaXJ0dWFsU2Nyb2xsIil9Y29uc3RydWN0b3IodCxlPXt3aGVlbE11bHRpcGxpZXI6MSx0b3VjaE11bHRpcGxpZXI6MX0pe3RoaXMuZWxlbWVudD10LHRoaXMub3B0aW9ucz1lLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMub25XaW5kb3dSZXNpemUsITEpLHRoaXMub25XaW5kb3dSZXNpemUoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxSdSksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LFJ1KSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLFJ1KSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxSdSl9dG91Y2hTdGFydD17eDowLHk6MH07bGFzdERlbHRhPXt4OjAseTowfTt3aW5kb3c9e3dpZHRoOjAsaGVpZ2h0OjB9O2VtaXR0ZXI9bmV3IHBGdDtvbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1kZXN0cm95KCl7dGhpcy5lbWl0dGVyLmRlc3Ryb3koKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxSdSksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LFJ1KSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLFJ1KSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxSdSl9b25Ub3VjaFN0YXJ0PWkodD0+e2xldHtjbGllbnRYOmUsY2xpZW50WTpyfT10LnRhcmdldFRvdWNoZXM/dC50YXJnZXRUb3VjaGVzWzBdOnQ7dGhpcy50b3VjaFN0YXJ0Lng9ZSx0aGlzLnRvdWNoU3RhcnQueT1yLHRoaXMubGFzdERlbHRhPXt4OjAseTowfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOjAsZGVsdGFZOjAsZXZlbnQ6dH0pfSwib25Ub3VjaFN0YXJ0Iik7b25Ub3VjaE1vdmU9aSh0PT57bGV0e2NsaWVudFg6ZSxjbGllbnRZOnJ9PXQudGFyZ2V0VG91Y2hlcz90LnRhcmdldFRvdWNoZXNbMF06dCxhPS0oZS10aGlzLnRvdWNoU3RhcnQueCkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcixzPS0oci10aGlzLnRvdWNoU3RhcnQueSkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcjt0aGlzLnRvdWNoU3RhcnQueD1lLHRoaXMudG91Y2hTdGFydC55PXIsdGhpcy5sYXN0RGVsdGE9e3g6YSx5OnN9LHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6YSxkZWx0YVk6cyxldmVudDp0fSl9LCJvblRvdWNoTW92ZSIpO29uVG91Y2hFbmQ9aSh0PT57dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDp0aGlzLmxhc3REZWx0YS54LGRlbHRhWTp0aGlzLmxhc3REZWx0YS55LGV2ZW50OnR9KX0sIm9uVG91Y2hFbmQiKTtvbldoZWVsPWkodD0+e2xldHtkZWx0YVg6ZSxkZWx0YVk6cixkZWx0YU1vZGU6YX09dCxzPWE9PT0xP2ZGdDphPT09Mj90aGlzLndpbmRvdy53aWR0aDoxLG49YT09PTE/ZkZ0OmE9PT0yP3RoaXMud2luZG93LmhlaWdodDoxO2UqPXMscio9bixlKj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLHIqPXRoaXMub3B0aW9ucy53aGVlbE11bHRpcGxpZXIsdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTpyLGV2ZW50OnR9KX0sIm9uV2hlZWwiKTtvbldpbmRvd1Jlc2l6ZT1pKCgpPT57dGhpcy53aW5kb3c9e3dpZHRoOndpbmRvdy5pbm5lcldpZHRoLGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHR9fSwib25XaW5kb3dSZXNpemUiKX0saEZ0PWkodD0+TWF0aC5taW4oMSwxLjAwMS1NYXRoLnBvdygyLC0xMCp0KSksImRlZmF1bHRFYXNpbmciKSxRTT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMZW5pcyIpfV9pc1Njcm9sbGluZz0hMTtfaXNTdG9wcGVkPSExO19pc0xvY2tlZD0hMTtfcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtfcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbDtfcmFmSWQ9bnVsbDtpc1RvdWNoaW5nO3RpbWU9MDt1c2VyRGF0YT17fTtsYXN0VmVsb2NpdHk9MDt2ZWxvY2l0eT0wO2RpcmVjdGlvbj0wO29wdGlvbnM7dGFyZ2V0U2Nyb2xsO2FuaW1hdGVkU2Nyb2xsO2FuaW1hdGU9bmV3IFM1YTtlbWl0dGVyPW5ldyBwRnQ7ZGltZW5zaW9uczt2aXJ0dWFsU2Nyb2xsO2NvbnN0cnVjdG9yKHt3cmFwcGVyOnQ9d2luZG93LGNvbnRlbnQ6ZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZXZlbnRzVGFyZ2V0OnI9dCxzbW9vdGhXaGVlbDphPSEwLHN5bmNUb3VjaDpzPSExLHN5bmNUb3VjaExlcnA6bj0uMDc1LHRvdWNoSW5lcnRpYUV4cG9uZW50Om89MS43LGR1cmF0aW9uOmwsZWFzaW5nOmMsbGVycDpkPS4xLGluZmluaXRlOmY9ITEsb3JpZW50YXRpb246cD0idmVydGljYWwiLGdlc3R1cmVPcmllbnRhdGlvbjpoPXA9PT0iaG9yaXpvbnRhbCI/ImJvdGgiOiJ2ZXJ0aWNhbCIsdG91Y2hNdWx0aXBsaWVyOm09MSx3aGVlbE11bHRpcGxpZXI6dj0xLGF1dG9SZXNpemU6Yj0hMCxwcmV2ZW50OmcsdmlydHVhbFNjcm9sbDp5LG92ZXJzY3JvbGw6az0hMCxhdXRvUmFmOk09ITEsYW5jaG9yczpOPSExLGF1dG9Ub2dnbGU6Xz0hMSxhbGxvd05lc3RlZFNjcm9sbDpTPSExLF9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnM6Tz0hMSxuYWl2ZURpbWVuc2lvbnM6TD1PLHN0b3BJbmVydGlhT25OYXZpZ2F0ZTpFPSExfT17fSl7d2luZG93LmxlbmlzVmVyc2lvbj12NWEsKCF0fHx0PT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmKHQ9d2luZG93KSx0eXBlb2YgbD09Im51bWJlciImJnR5cGVvZiBjIT0iZnVuY3Rpb24iP2M9aEZ0OnR5cGVvZiBjPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbCE9Im51bWJlciImJihsPTEpLHRoaXMub3B0aW9ucz17d3JhcHBlcjp0LGNvbnRlbnQ6ZSxldmVudHNUYXJnZXQ6cixzbW9vdGhXaGVlbDphLHN5bmNUb3VjaDpzLHN5bmNUb3VjaExlcnA6bix0b3VjaEluZXJ0aWFFeHBvbmVudDpvLGR1cmF0aW9uOmwsZWFzaW5nOmMsbGVycDpkLGluZmluaXRlOmYsZ2VzdHVyZU9yaWVudGF0aW9uOmgsb3JpZW50YXRpb246cCx0b3VjaE11bHRpcGxpZXI6bSx3aGVlbE11bHRpcGxpZXI6dixhdXRvUmVzaXplOmIscHJldmVudDpnLHZpcnR1YWxTY3JvbGw6eSxvdmVyc2Nyb2xsOmssYXV0b1JhZjpNLGFuY2hvcnM6TixhdXRvVG9nZ2xlOl8sYWxsb3dOZXN0ZWRTY3JvbGw6UyxuYWl2ZURpbWVuc2lvbnM6TCxzdG9wSW5lcnRpYU9uTmF2aWdhdGU6RX0sdGhpcy5kaW1lbnNpb25zPW5ldyBDNWEodCxlLHthdXRvUmVzaXplOmJ9KSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpLHRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSx0aGlzLnZpcnR1YWxTY3JvbGw9bmV3IHo1YShyLHt0b3VjaE11bHRpcGxpZXI6bSx3aGVlbE11bHRpcGxpZXI6dn0pLHRoaXMudmlydHVhbFNjcm9sbC5vbigic2Nyb2xsIix0aGlzLm9uVmlydHVhbFNjcm9sbCksdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0aGlzLmNoZWNrT3ZlcmZsb3coKSx0aGlzLnJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uRW5kLHtwYXNzaXZlOiEwfSkpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLnZpcnR1YWxTY3JvbGwuZGVzdHJveSgpLHRoaXMuZGltZW5zaW9ucy5kZXN0cm95KCksdGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5fcmFmSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZklkKX1vbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1vZmYodCxlKXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9mZih0LGUpfW9uU2Nyb2xsRW5kPWkodD0+e3QgaW5zdGFuY2VvZiBDdXN0b21FdmVudHx8KHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoInx8dGhpcy5pc1Njcm9sbGluZz09PSExKSYmdC5zdG9wUHJvcGFnYXRpb24oKX0sIm9uU2Nyb2xsRW5kIik7ZGlzcGF0Y2hTY3JvbGxlbmRFdmVudD1pKCgpPT57dGhpcy5vcHRpb25zLndyYXBwZXIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNjcm9sbGVuZCIse2J1YmJsZXM6dGhpcy5vcHRpb25zLndyYXBwZXI9PT13aW5kb3csZGV0YWlsOntsZW5pc1Njcm9sbEVuZDohMH19KSl9LCJkaXNwYXRjaFNjcm9sbGVuZEV2ZW50Iik7Z2V0IG92ZXJmbG93KCl7bGV0IHQ9dGhpcy5pc0hvcml6b250YWw/Im92ZXJmbG93LXgiOiJvdmVyZmxvdy15IjtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJvb3RFbGVtZW50KVt0XX1jaGVja092ZXJmbG93KCl7WyJoaWRkZW4iLCJjbGlwIl0uaW5jbHVkZXModGhpcy5vdmVyZmxvdyk/dGhpcy5pbnRlcm5hbFN0b3AoKTp0aGlzLmludGVybmFsU3RhcnQoKX1vblRyYW5zaXRpb25FbmQ9aSh0PT57dC5wcm9wZXJ0eU5hbWUuaW5jbHVkZXMoIm92ZXJmbG93IikmJnRoaXMuY2hlY2tPdmVyZmxvdygpfSwib25UcmFuc2l0aW9uRW5kIik7c2V0U2Nyb2xsKHQpe3RoaXMuaXNIb3Jpem9udGFsP3RoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHtsZWZ0OnQsYmVoYXZpb3I6Imluc3RhbnQifSk6dGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oe3RvcDp0LGJlaGF2aW9yOiJpbnN0YW50In0pfW9uQ2xpY2s9aSh0PT57bGV0IHI9dC5jb21wb3NlZFBhdGgoKS5maWx0ZXIoYT0+YSBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50JiZhLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTtpZih0aGlzLm9wdGlvbnMuYW5jaG9ycyl7bGV0IGE9ci5maW5kKHM9PnMuZ2V0QXR0cmlidXRlKCJocmVmIik/LmluY2x1ZGVzKCIjIikpO2lmKGEpe2xldCBzPWEuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYocyl7bGV0IG49dHlwZW9mIHRoaXMub3B0aW9ucy5hbmNob3JzPT0ib2JqZWN0IiYmdGhpcy5vcHRpb25zLmFuY2hvcnM/dGhpcy5vcHRpb25zLmFuY2hvcnM6dm9pZCAwLG89YCMke3Muc3BsaXQoIiMiKVsxXX1gO3RoaXMuc2Nyb2xsVG8obyxuKX19fXRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUmJnIuZmluZChzPT5zLmhvc3Q9PT13aW5kb3cubG9jYXRpb24uaG9zdCkmJnRoaXMucmVzZXQoKX0sIm9uQ2xpY2siKTtvblBvaW50ZXJEb3duPWkodD0+e3QuYnV0dG9uPT09MSYmdGhpcy5yZXNldCgpfSwib25Qb2ludGVyRG93biIpO29uVmlydHVhbFNjcm9sbD1pKHQ9PntpZih0eXBlb2YgdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGw9PSJmdW5jdGlvbiImJnRoaXMub3B0aW9ucy52aXJ0dWFsU2Nyb2xsKHQpPT09ITEpcmV0dXJuO2xldHtkZWx0YVg6ZSxkZWx0YVk6cixldmVudDphfT10O2lmKHRoaXMuZW1pdHRlci5lbWl0KCJ2aXJ0dWFsLXNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTpyLGV2ZW50OmF9KSxhLmN0cmxLZXl8fGEubGVuaXNTdG9wUHJvcGFnYXRpb24pcmV0dXJuO2xldCBzPWEudHlwZS5pbmNsdWRlcygidG91Y2giKSxuPWEudHlwZS5pbmNsdWRlcygid2hlZWwiKTt0aGlzLmlzVG91Y2hpbmc9YS50eXBlPT09InRvdWNoc3RhcnQifHxhLnR5cGU9PT0idG91Y2htb3ZlIjtsZXQgbz1lPT09MCYmcj09PTA7aWYodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmcyYmYS50eXBlPT09InRvdWNoc3RhcnQiJiZvJiYhdGhpcy5pc1N0b3BwZWQmJiF0aGlzLmlzTG9ja2VkKXt0aGlzLnJlc2V0KCk7cmV0dXJufWxldCBjPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0idmVydGljYWwiJiZyPT09MHx8dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJob3Jpem9udGFsIiYmZT09PTA7aWYob3x8YylyZXR1cm47bGV0IGQ9YS5jb21wb3NlZFBhdGgoKTtkPWQuc2xpY2UoMCxkLmluZGV4T2YodGhpcy5yb290RWxlbWVudCkpO2xldCBmPXRoaXMub3B0aW9ucy5wcmV2ZW50O2lmKGQuZmluZChnPT5nIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJih0eXBlb2YgZj09ImZ1bmN0aW9uIiYmZj8uKGcpfHxnLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQiKXx8cyYmZy5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXRvdWNoIil8fG4mJmcuaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudC13aGVlbCIpfHx0aGlzLm9wdGlvbnMuYWxsb3dOZXN0ZWRTY3JvbGwmJnRoaXMuY2hlY2tOZXN0ZWRTY3JvbGwoZyx7ZGVsdGFYOmUsZGVsdGFZOnJ9KSkpKXJldHVybjtpZih0aGlzLmlzU3RvcHBlZHx8dGhpcy5pc0xvY2tlZCl7YS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCEodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmc3x8dGhpcy5vcHRpb25zLnNtb290aFdoZWVsJiZuKSl7dGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIix0aGlzLmFuaW1hdGUuc3RvcCgpLGEubGVuaXNTdG9wUHJvcGFnYXRpb249ITA7cmV0dXJufWxldCBoPXI7dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJib3RoIj9oPU1hdGguYWJzKHIpPk1hdGguYWJzKGUpP3I6ZTp0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiYoaD1lKSwoIXRoaXMub3B0aW9ucy5vdmVyc2Nyb2xsfHx0aGlzLm9wdGlvbnMuaW5maW5pdGV8fHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93JiZ0aGlzLmxpbWl0PjAmJih0aGlzLmFuaW1hdGVkU2Nyb2xsPjAmJnRoaXMuYW5pbWF0ZWRTY3JvbGw8dGhpcy5saW1pdHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PTAmJnI+MHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PXRoaXMubGltaXQmJnI8MCkpJiYoYS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMCksYS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7bGV0IG09cyYmdGhpcy5vcHRpb25zLnN5bmNUb3VjaCxiPXMmJmEudHlwZT09PSJ0b3VjaGVuZCI7YiYmKGg9TWF0aC5zaWduKHRoaXMudmVsb2NpdHkpKk1hdGgucG93KE1hdGguYWJzKHRoaXMudmVsb2NpdHkpLHRoaXMub3B0aW9ucy50b3VjaEluZXJ0aWFFeHBvbmVudCkpLHRoaXMuc2Nyb2xsVG8odGhpcy50YXJnZXRTY3JvbGwraCx7cHJvZ3JhbW1hdGljOiExLC4uLm0/e2xlcnA6Yj90aGlzLm9wdGlvbnMuc3luY1RvdWNoTGVycDoxfTp7bGVycDp0aGlzLm9wdGlvbnMubGVycCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuZHVyYXRpb24sZWFzaW5nOnRoaXMub3B0aW9ucy5lYXNpbmd9fSl9LCJvblZpcnR1YWxTY3JvbGwiKTtyZXNpemUoKXt0aGlzLmRpbWVuc2lvbnMucmVzaXplKCksdGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmVtaXQoKX1lbWl0KCl7dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIsdGhpcyl9b25OYXRpdmVTY3JvbGw9aSgoKT0+e2lmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0IT09bnVsbCYmKGNsZWFyVGltZW91dCh0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dCksdGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbCksdGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCl7dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtyZXR1cm59aWYodGhpcy5pc1Njcm9sbGluZz09PSExfHx0aGlzLmlzU2Nyb2xsaW5nPT09Im5hdGl2ZSIpe2xldCB0PXRoaXMuYW5pbWF0ZWRTY3JvbGw7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9dGhpcy5hbmltYXRlZFNjcm9sbC10LHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLmFuaW1hdGVkU2Nyb2xsLXQpLHRoaXMuaXNTdG9wcGVkfHwodGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIiksdGhpcy5lbWl0KCksdGhpcy52ZWxvY2l0eSE9PTAmJih0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PTAsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmVtaXQoKX0sNDAwKSl9fSwib25OYXRpdmVTY3JvbGwiKTtyZXNldCgpe3RoaXMuaXNMb2NrZWQ9ITEsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHk9MCx0aGlzLmFuaW1hdGUuc3RvcCgpfXN0YXJ0KCl7aWYodGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJvdmVyZmxvdyIpO3JldHVybn10aGlzLmludGVybmFsU3RhcnQoKX19aW50ZXJuYWxTdGFydCgpe3RoaXMuaXNTdG9wcGVkJiYodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSExLHRoaXMuZW1pdCgpKX1zdG9wKCl7aWYoIXRoaXMuaXNTdG9wcGVkKXtpZih0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSl7dGhpcy5yb290RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgib3ZlcmZsb3ciLCJjbGlwIik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdG9wKCl9fWludGVybmFsU3RvcCgpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuZW1pdCgpKX1yYWY9aSh0PT57bGV0IGU9dC0odGhpcy50aW1lfHx0KTt0aGlzLnRpbWU9dCx0aGlzLmFuaW1hdGUuYWR2YW5jZShlKi4wMDEpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9LCJyYWYiKTtzY3JvbGxUbyh0LHtvZmZzZXQ6ZT0wLGltbWVkaWF0ZTpyPSExLGxvY2s6YT0hMSxwcm9ncmFtbWF0aWM6cz0hMCxsZXJwOm49cz90aGlzLm9wdGlvbnMubGVycDp2b2lkIDAsZHVyYXRpb246bz1zP3RoaXMub3B0aW9ucy5kdXJhdGlvbjp2b2lkIDAsZWFzaW5nOmw9cz90aGlzLm9wdGlvbnMuZWFzaW5nOnZvaWQgMCxvblN0YXJ0OmMsb25Db21wbGV0ZTpkLGZvcmNlOmY9ITEsdXNlckRhdGE6cH09e30pe2lmKCEoKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKSYmIWYpKXtpZih0eXBlb2YgdD09InN0cmluZyImJlsidG9wIiwibGVmdCIsInN0YXJ0IiwiIyJdLmluY2x1ZGVzKHQpKXQ9MDtlbHNlIGlmKHR5cGVvZiB0PT0ic3RyaW5nIiYmWyJib3R0b20iLCJyaWdodCIsImVuZCJdLmluY2x1ZGVzKHQpKXQ9dGhpcy5saW1pdDtlbHNle2xldCBoO2lmKHR5cGVvZiB0PT0ic3RyaW5nIj8oaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpLGh8fCh0PT09IiN0b3AiP3Q9MDpjb25zb2xlLndhcm4oIkxlbmlzOiBUYXJnZXQgbm90IGZvdW5kIix0KSkpOnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdD8ubm9kZVR5cGUmJihoPXQpLGgpe2lmKHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93KXtsZXQgdj10aGlzLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2UtPXRoaXMuaXNIb3Jpem9udGFsP3YubGVmdDp2LnRvcH1sZXQgbT1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3Q9KHRoaXMuaXNIb3Jpem9udGFsP20ubGVmdDptLnRvcCkrdGhpcy5hbmltYXRlZFNjcm9sbH19aWYodHlwZW9mIHQ9PSJudW1iZXIiKXtpZih0Kz1lLHQ9TWF0aC5yb3VuZCh0KSx0aGlzLm9wdGlvbnMuaW5maW5pdGUpe2lmKHMpe3RoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5zY3JvbGw7bGV0IGg9dC10aGlzLmFuaW1hdGVkU2Nyb2xsO2g+dGhpcy5saW1pdC8yP3Q9dC10aGlzLmxpbWl0Omg8LXRoaXMubGltaXQvMiYmKHQ9dCt0aGlzLmxpbWl0KX19ZWxzZSB0PXVGdCgwLHQsdGhpcy5saW1pdCk7aWYodD09PXRoaXMudGFyZ2V0U2Nyb2xsKXtjPy4odGhpcyksZD8uKHRoaXMpO3JldHVybn1pZih0aGlzLnVzZXJEYXRhPXA/P3t9LHIpe3RoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dCx0aGlzLnNldFNjcm9sbCh0aGlzLnNjcm9sbCksdGhpcy5yZXNldCgpLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpLHRoaXMuZW1pdCgpLGQ/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSk7cmV0dXJufXN8fCh0aGlzLnRhcmdldFNjcm9sbD10KSx0eXBlb2Ygbz09Im51bWJlciImJnR5cGVvZiBsIT0iZnVuY3Rpb24iP2w9aEZ0OnR5cGVvZiBsPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9Im51bWJlciImJihvPTEpLHRoaXMuYW5pbWF0ZS5mcm9tVG8odGhpcy5hbmltYXRlZFNjcm9sbCx0LHtkdXJhdGlvbjpvLGVhc2luZzpsLGxlcnA6bixvblN0YXJ0OmkoKCk9PnthJiYodGhpcy5pc0xvY2tlZD0hMCksdGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIixjPy4odGhpcyl9LCJvblN0YXJ0Iiksb25VcGRhdGU6aSgoaCxtKT0+e3RoaXMuaXNTY3JvbGxpbmc9InNtb290aCIsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PWgtdGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmRpcmVjdGlvbj1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSksdGhpcy5hbmltYXRlZFNjcm9sbD1oLHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSxzJiYodGhpcy50YXJnZXRTY3JvbGw9aCksbXx8dGhpcy5lbWl0KCksbSYmKHRoaXMucmVzZXQoKSx0aGlzLmVtaXQoKSxkPy4odGhpcyksdGhpcy51c2VyRGF0YT17fSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKX0pLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpKX0sIm9uVXBkYXRlIil9KX19fXByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITF9KX1jaGVja05lc3RlZFNjcm9sbCh0LHtkZWx0YVg6ZSxkZWx0YVk6cn0pe2xldCBhPURhdGUubm93KCkscz10Ll9sZW5pcz8/PXt9LG4sbyxsLGMsZCxmLHAsaCxtPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb247aWYoYS0ocy50aW1lPz8wKT4yZTMpe3MudGltZT1EYXRlLm5vdygpO2xldCBfPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpO3MuY29tcHV0ZWRTdHlsZT1fO2xldCBTPV8ub3ZlcmZsb3dYLE89Xy5vdmVyZmxvd1k7aWYobj1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoUyksbz1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoTykscy5oYXNPdmVyZmxvd1g9bixzLmhhc092ZXJmbG93WT1vLCFuJiYhb3x8bT09PSJ2ZXJ0aWNhbCImJiFvfHxtPT09Imhvcml6b250YWwiJiYhbilyZXR1cm4hMTtkPXQuc2Nyb2xsV2lkdGgsZj10LnNjcm9sbEhlaWdodCxwPXQuY2xpZW50V2lkdGgsaD10LmNsaWVudEhlaWdodCxsPWQ+cCxjPWY+aCxzLmlzU2Nyb2xsYWJsZVg9bCxzLmlzU2Nyb2xsYWJsZVk9YyxzLnNjcm9sbFdpZHRoPWQscy5zY3JvbGxIZWlnaHQ9ZixzLmNsaWVudFdpZHRoPXAscy5jbGllbnRIZWlnaHQ9aH1lbHNlIGw9cy5pc1Njcm9sbGFibGVYLGM9cy5pc1Njcm9sbGFibGVZLG49cy5oYXNPdmVyZmxvd1gsbz1zLmhhc092ZXJmbG93WSxkPXMuc2Nyb2xsV2lkdGgsZj1zLnNjcm9sbEhlaWdodCxwPXMuY2xpZW50V2lkdGgsaD1zLmNsaWVudEhlaWdodDtpZighbiYmIW98fCFsJiYhY3x8bT09PSJ2ZXJ0aWNhbCImJighb3x8IWMpfHxtPT09Imhvcml6b250YWwiJiYoIW58fCFsKSlyZXR1cm4hMTtsZXQgdjtpZihtPT09Imhvcml6b250YWwiKXY9IngiO2Vsc2UgaWYobT09PSJ2ZXJ0aWNhbCIpdj0ieSI7ZWxzZXtsZXQgXz1lIT09MCxTPXIhPT0wO18mJm4mJmwmJih2PSJ4IiksUyYmbyYmYyYmKHY9InkiKX1pZighdilyZXR1cm4hMTtsZXQgYixnLHksayxNO2lmKHY9PT0ieCIpYj10LnNjcm9sbExlZnQsZz1kLXAseT1lLGs9bixNPWw7ZWxzZSBpZih2PT09InkiKWI9dC5zY3JvbGxUb3AsZz1mLWgseT1yLGs9byxNPWM7ZWxzZSByZXR1cm4hMTtyZXR1cm4oeT4wP2I8ZzpiPjApJiZrJiZNfWdldCByb290RWxlbWVudCgpe3JldHVybiB0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdz9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6dGhpcy5vcHRpb25zLndyYXBwZXJ9Z2V0IGxpbWl0KCl7cmV0dXJuIHRoaXMub3B0aW9ucy5uYWl2ZURpbWVuc2lvbnM/dGhpcy5pc0hvcml6b250YWw/dGhpcy5yb290RWxlbWVudC5zY3JvbGxXaWR0aC10aGlzLnJvb3RFbGVtZW50LmNsaWVudFdpZHRoOnRoaXMucm9vdEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMucm9vdEVsZW1lbnQuY2xpZW50SGVpZ2h0OnRoaXMuZGltZW5zaW9ucy5saW1pdFt0aGlzLmlzSG9yaXpvbnRhbD8ieCI6InkiXX1nZXQgaXNIb3Jpem9udGFsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIn1nZXQgYWN0dWFsU2Nyb2xsKCl7bGV0IHQ9dGhpcy5vcHRpb25zLndyYXBwZXI7cmV0dXJuIHRoaXMuaXNIb3Jpem9udGFsP3Quc2Nyb2xsWD8/dC5zY3JvbGxMZWZ0OnQuc2Nyb2xsWT8/dC5zY3JvbGxUb3B9Z2V0IHNjcm9sbCgpe3JldHVybiB0aGlzLm9wdGlvbnMuaW5maW5pdGU/azVhKHRoaXMuYW5pbWF0ZWRTY3JvbGwsdGhpcy5saW1pdCk6dGhpcy5hbmltYXRlZFNjcm9sbH1nZXQgcHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy5saW1pdD09PTA/MTp0aGlzLnNjcm9sbC90aGlzLmxpbWl0fWdldCBpc1Njcm9sbGluZygpe3JldHVybiB0aGlzLl9pc1Njcm9sbGluZ31zZXQgaXNTY3JvbGxpbmcodCl7dGhpcy5faXNTY3JvbGxpbmchPT10JiYodGhpcy5faXNTY3JvbGxpbmc9dCx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RvcHBlZH1zZXQgaXNTdG9wcGVkKHQpe3RoaXMuX2lzU3RvcHBlZCE9PXQmJih0aGlzLl9pc1N0b3BwZWQ9dCx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNMb2NrZWQoKXtyZXR1cm4gdGhpcy5faXNMb2NrZWR9c2V0IGlzTG9ja2VkKHQpe3RoaXMuX2lzTG9ja2VkIT09dCYmKHRoaXMuX2lzTG9ja2VkPXQsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzU21vb3RoKCl7cmV0dXJuIHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIn1nZXQgY2xhc3NOYW1lKCl7bGV0IHQ9ImxlbmlzIjtyZXR1cm4gdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0Kz0iIGxlbmlzLWF1dG9Ub2dnbGUiKSx0aGlzLmlzU3RvcHBlZCYmKHQrPSIgbGVuaXMtc3RvcHBlZCIpLHRoaXMuaXNMb2NrZWQmJih0Kz0iIGxlbmlzLWxvY2tlZCIpLHRoaXMuaXNTY3JvbGxpbmcmJih0Kz0iIGxlbmlzLXNjcm9sbGluZyIpLHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIiYmKHQrPSIgbGVuaXMtc21vb3RoIiksdH11cGRhdGVDbGFzc05hbWUoKXt0aGlzLmNsZWFuVXBDbGFzc05hbWUoKSx0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT1gJHt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZX0gJHt0aGlzLmNsYXNzTmFtZX1gLnRyaW0oKX1jbGVhblVwQ2xhc3NOYW1lKCl7dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWU9dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWUucmVwbGFjZSgvbGVuaXMoLVx3Kyk/L2csIiIpLnRyaW0oKX19fSk7dmFyIGdGdD1OdCgoY2tlLGRrZSk9PnsoZnVuY3Rpb24odCxlKXt0eXBlb2YgY2tlPT0ib2JqZWN0IiYmdHlwZW9mIGRrZTwidSI/ZGtlLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOih0PXR8fHNlbGYsdC5Td2VldFNjcm9sbD1lKCkpfSkoY2tlLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PWkoZnVuY3Rpb24oKXtyZXR1cm4gdD1PYmplY3QuYXNzaWdufHxpKGZ1bmN0aW9uKEgpe2Zvcih2YXIgVSxqPTEsYWU9YXJndW1lbnRzLmxlbmd0aDtqPGFlO2orKyl7VT1hcmd1bWVudHNbal07Zm9yKHZhciBYIGluIFUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsWCkmJihIW1hdPVVbWF0pfXJldHVybiBIfSwiX19hc3NpZ24iKSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sIl9fYXNzaWduIiksZT0hISh0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCkscj1lP3dpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5JiZ3aW5kb3cubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToiOiExLGE9KGZ1bmN0aW9uKCl7dmFyIHE9ITE7aWYoIWUpcmV0dXJuIHE7dHJ5e3ZhciBIPXdpbmRvdyxVPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDppKGZ1bmN0aW9uKCl7cT0hMH0sImdldCIpfSk7SC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLFUpLEgucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxVKX1jYXRjaHt9cmV0dXJuIHF9KSgpLHM9aShmdW5jdGlvbihxKXtyZXR1cm4gdHlwZW9mIHE9PSJzdHJpbmcifSwiaXNTdHJpbmciKSxuPWkoZnVuY3Rpb24ocSl7cmV0dXJuIHR5cGVvZiBxPT0iZnVuY3Rpb24ifSwiaXNGdW5jdGlvbiIpLG89aShmdW5jdGlvbihxKXtyZXR1cm4gQXJyYXkuaXNBcnJheShxKX0sImlzQXJyYXkiKSxsPWkoZnVuY3Rpb24ocSl7cmV0dXJuIW8ocSkmJnEtcGFyc2VGbG9hdChxKSsxPj0wfSwiaXNOdW1lcmljIiksYz1pKGZ1bmN0aW9uKHEsSCl7cmV0dXJuIHEmJnEuaGFzT3duUHJvcGVydHkoSCl9LCJoYXNQcm9wIiksZD1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOm51bGwsZj1lP3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6bnVsbCxwPU1hdGguY29zLGg9TWF0aC5zaW4sbT1NYXRoLnBvdyx2PU1hdGguc3FydCxiPU1hdGguUEksZz17bGluZWFyOmkoZnVuY3Rpb24ocSl7cmV0dXJuIHF9LCJsaW5lYXIiKSxlYXNlSW5RdWFkOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqKEgvPWFlKSpIK1V9LCJlYXNlSW5RdWFkIiksZWFzZU91dFF1YWQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taiooSC89YWUpKihILTIpK1V9LCJlYXNlT3V0UXVhZCIpLGVhc2VJbk91dFF1YWQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4oSC89YWUvMik8MT9qLzIqSCpIK1U6LWovMiooLS1IKihILTIpLTEpK1V9LCJlYXNlSW5PdXRRdWFkIiksZWFzZUluQ3ViaWM6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooSC89YWUpKkgqSCtVfSwiZWFzZUluQ3ViaWMiKSxlYXNlT3V0Q3ViaWM6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooKEg9SC9hZS0xKSpIKkgrMSkrVX0sImVhc2VPdXRDdWJpYyIpLGVhc2VJbk91dEN1YmljOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuKEgvPWFlLzIpPDE/ai8yKkgqSCpIK1U6ai8yKigoSC09MikqSCpIKzIpK1V9LCJlYXNlSW5PdXRDdWJpYyIpLGVhc2VJblF1YXJ0OmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqKEgvPWFlKSpIKkgqSCtVfSwiZWFzZUluUXVhcnQiKSxlYXNlT3V0UXVhcnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taiooKEg9SC9hZS0xKSpIKkgqSC0xKStVfSwiZWFzZU91dFF1YXJ0IiksZWFzZUluT3V0UXVhcnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4oSC89YWUvMik8MT9qLzIqSCpIKkgqSCtVOi1qLzIqKChILT0yKSpIKkgqSC0yKStVfSwiZWFzZUluT3V0UXVhcnQiKSxlYXNlSW5RdWludDppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBqKihILz1hZSkqSCpIKkgqSCtVfSwiZWFzZUluUXVpbnQiKSxlYXNlT3V0UXVpbnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooKEg9SC9hZS0xKSpIKkgqSCpIKzEpK1V9LCJlYXNlT3V0UXVpbnQiKSxlYXNlSW5PdXRRdWludDppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybihILz1hZS8yKTwxP2ovMipIKkgqSCpIKkgrVTpqLzIqKChILT0yKSpIKkgqSCpIKzIpK1V9LCJlYXNlSW5PdXRRdWludCIpLGVhc2VJblNpbmU6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taipwKEgvYWUqKGIvMikpK2orVX0sImVhc2VJblNpbmUiKSxlYXNlT3V0U2luZTppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBqKmgoSC9hZSooYi8yKSkrVX0sImVhc2VPdXRTaW5lIiksZWFzZUluT3V0U2luZTppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybi1qLzIqKHAoYipIL2FlKS0xKStVfSwiZWFzZUluT3V0U2luZSIpLGVhc2VJbkV4cG86aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gSD09PTA/VTpqKm0oMiwxMCooSC9hZS0xKSkrVX0sImVhc2VJbkV4cG8iKSxlYXNlT3V0RXhwbzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBIPT09YWU/VStqOmoqKC1tKDIsLTEwKkgvYWUpKzEpK1V9LCJlYXNlT3V0RXhwbyIpLGVhc2VJbk91dEV4cG86aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gSD09PTA/VTpIPT09YWU/VStqOihILz1hZS8yKTwxP2ovMiptKDIsMTAqKEgtMSkpK1U6ai8yKigtbSgyLC0xMCotLUgpKzIpK1V9LCJlYXNlSW5PdXRFeHBvIiksZWFzZUluQ2lyYzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybi1qKih2KDEtKEgvPWFlKSpIKS0xKStVfSwiZWFzZUluQ2lyYyIpLGVhc2VPdXRDaXJjOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqdigxLShIPUgvYWUtMSkqSCkrVX0sImVhc2VPdXRDaXJjIiksZWFzZUluT3V0Q2lyYzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybihILz1hZS8yKTwxPy1qLzIqKHYoMS1IKkgpLTEpK1U6ai8yKih2KDEtKEgtPTIpKkgpKzEpK1V9LCJlYXNlSW5PdXRDaXJjIil9LHk9aShmdW5jdGlvbihxKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHEpOltdKX0sIiQkIiksaz1pKGZ1bmN0aW9uKHEpe3JldHVybiB5KHEpLnNoaWZ0KCl8fG51bGx9LCIkIiksTT1pKGZ1bmN0aW9uKHEpe3JldHVybiBxIGluc3RhbmNlb2YgRWxlbWVudH0sImlzRWxlbWVudCIpLE49aShmdW5jdGlvbihxKXtyZXR1cm4gcT09PXdpbmRvd30sImlzV2luZG93IiksXz1pKGZ1bmN0aW9uKHEpe3JldHVybiBxPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxxPT09ZG9jdW1lbnQuYm9keX0sImlzUm9vdENvbnRhaW5lciIpLFM9aShmdW5jdGlvbihxLEgpe2lmKE0oSCkpcmV0dXJuIHE9PT1IO2Zvcih2YXIgVT15KEgpLGo9VS5sZW5ndGg7LS1qPj0wJiZVW2pdIT09cTspO3JldHVybiBqPi0xfSwibWF0Y2hlcyIpLE89aShmdW5jdGlvbihxKXtyZXR1cm4gTWF0aC5tYXgocS5zY3JvbGxIZWlnaHQscS5jbGllbnRIZWlnaHQscS5vZmZzZXRIZWlnaHQpfSwiZ2V0SGVpZ2h0IiksTD1pKGZ1bmN0aW9uKHEpe3JldHVybiBNYXRoLm1heChxLnNjcm9sbFdpZHRoLHEuY2xpZW50V2lkdGgscS5vZmZzZXRXaWR0aCl9LCJnZXRXaWR0aCIpLEU9aShmdW5jdGlvbihxKXtyZXR1cm57d2lkdGg6TChxKSxoZWlnaHQ6TyhxKX19LCJnZXRTaXplIiksQj1pKGZ1bmN0aW9uKHEpe3ZhciBIPU4ocSl8fF8ocSk7cmV0dXJue3ZpZXdwb3J0Ont3aWR0aDpIP01hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCk6cS5jbGllbnRXaWR0aCxoZWlnaHQ6SD93aW5kb3cuaW5uZXJIZWlnaHQ6cS5jbGllbnRIZWlnaHR9LHNpemU6SD97d2lkdGg6TWF0aC5tYXgoTChkb2N1bWVudC5ib2R5KSxMKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpLGhlaWdodDpNYXRoLm1heChPKGRvY3VtZW50LmJvZHkpLE8oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSl9OkUocSl9fSwiZ2V0Vmlld3BvcnRBbmRFbGVtZW50U2l6ZXMiKSxDPXt5OiJzY3JvbGxUb3AiLHg6InNjcm9sbExlZnQifSx6PXt5OiJwYWdlWU9mZnNldCIseDoicGFnZVhPZmZzZXQifSxBPWkoZnVuY3Rpb24ocSxIKXtyZXR1cm4gTihxKT9xW3pbSF1dOnFbQ1tIXV19LCJnZXRTY3JvbGwiKSwkPWkoZnVuY3Rpb24ocSxILFUpe2lmKE4ocSkpe3ZhciBqPVU9PT0ieSI7cS5zY3JvbGxUbyhqP3EucGFnZVhPZmZzZXQ6SCxqP0g6cS5wYWdlWU9mZnNldCl9ZWxzZSBxW0NbVV1dPUh9LCJzZXRTY3JvbGwiKSxGPWkoZnVuY3Rpb24ocSxIKXt2YXIgVT1xLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFUud2lkdGh8fFUuaGVpZ2h0KXt2YXIgaj17dG9wOjAsbGVmdDowfSxhZT12b2lkIDA7aWYoTihIKXx8XyhIKSlhZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsai50b3A9d2luZG93W3oueV0sai5sZWZ0PXdpbmRvd1t6LnhdO2Vsc2V7YWU9SDt2YXIgWD1hZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtqLnRvcD1YLnRvcCotMSthZVtDLnldLGoubGVmdD1YLmxlZnQqLTErYWVbQy54XX1yZXR1cm57dG9wOlUudG9wK2oudG9wLWFlLmNsaWVudFRvcCxsZWZ0OlUubGVmdCtqLmxlZnQtYWUuY2xpZW50TGVmdH19cmV0dXJuIFV9LCJnZXRPZmZzZXQiKSxZPShmdW5jdGlvbigpe3JldHVybiBlPyJvbndoZWVsImluIGRvY3VtZW50PyJ3aGVlbCI6Im1vdXNld2hlZWwiOiJ3aGVlbCJ9KSgpLEc9aShmdW5jdGlvbihxKXtyZXR1cm4gcT09PSJ3aGVlbCI/WTpxfSwiZXZlbnROYW1lIiksWj1pKGZ1bmN0aW9uKHEsSCxVLGosYWUpe1Uuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKFgpe3FbSF0oRyhYKSxqLGE/e3Bhc3NpdmU6YWV9OiExKX0pfSwiYXBwbHkiKSxkZT1pKGZ1bmN0aW9uKHEsSCxVLGope3JldHVybiBaKHEsImFkZEV2ZW50TGlzdGVuZXIiLEgsVSxqKX0sImFkZEV2ZW50IiksRD1pKGZ1bmN0aW9uKHEsSCxVLGope3JldHVybiBaKHEsInJlbW92ZUV2ZW50TGlzdGVuZXIiLEgsVSxqKX0sInJlbW92ZUV2ZW50IiksUT0vXihcK3wtKT0oXGQrKD86XC5cZCspPykkLyxmZT1pKGZ1bmN0aW9uKHEsSCl7dmFyIFU9e3RvcDowLGxlZnQ6MCxyZWxhdGl2ZTohMX07aWYoYyhxLCJ0b3AiKXx8YyhxLCJsZWZ0IikpVT10KHt9LFUscSk7ZWxzZSBpZihvKHEpKWlmKHEubGVuZ3RoPjEpVS50b3A9cVswXSxVLmxlZnQ9cVsxXTtlbHNlIGlmKHEubGVuZ3RoPT09MSlVLnRvcD1IP3FbMF06MCxVLmxlZnQ9SD8wOnFbMF07ZWxzZSByZXR1cm4gbnVsbDtlbHNlIGlmKGwocSkpSD9VLnRvcD1xOlUubGVmdD1xO2Vsc2UgaWYocyhxKSl7dmFyIGo9cS50cmltKCkubWF0Y2goUSk7aWYoIWopcmV0dXJuIG51bGw7dmFyIGFlPWpbMV0sWD1wYXJzZUludChqWzJdLDEwKTthZT09PSIrIj8oVS50b3A9SD9YOjAsVS5sZWZ0PUg/MDpYKTooVS50b3A9SD8tWDowLFUubGVmdD1IPzA6LVgpLFUucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gVX0sInBhcnNlQ29vcmRpbmF0ZSIpLFQ9e3RyaWdnZXI6IltkYXRhLXNjcm9sbF0iLGhlYWRlcjoiW2RhdGEtc2Nyb2xsLWhlYWRlcl0iLGR1cmF0aW9uOjFlMyxlYXNpbmc6ImVhc2VPdXRRdWludCIsb2Zmc2V0OjAsdmVydGljYWw6ITAsaG9yaXpvbnRhbDohMSxjYW5jZWxsYWJsZTohMCx1cGRhdGVVUkw6ITEscHJldmVudERlZmF1bHQ6ITAsc3RvcFByb3BhZ2F0aW9uOiEwLGJlZm9yZTpudWxsLGFmdGVyOm51bGwsY2FuY2VsOm51bGwsY29tcGxldGU6bnVsbCxzdGVwOm51bGx9LFc9ImNsaWNrIixwZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLG1lPShmdW5jdGlvbigpe2Z1bmN0aW9uIHEoSCxVKXt2YXIgaj10aGlzO3RoaXMuJGVsPW51bGwsdGhpcy5jdHg9eyR0cmlnZ2VyOm51bGwsb3B0czpudWxsLHByb2dyZXNzOiExLHBvczpudWxsLHN0YXJ0UG9zOm51bGwsZWFzaW5nOm51bGwsc3RhcnQ6MCxpZDowLGNhbmNlbDohMSxoYXNoOm51bGx9LHRoaXMubG9vcD1mdW5jdGlvbihYKXt2YXIgSj1qLHhlPUouJGVsLEs9Si5jdHg7aWYoSy5zdGFydHx8KEsuc3RhcnQ9WCksIUsucHJvZ3Jlc3N8fCF4ZSl7ai5zdG9wKCk7cmV0dXJufXZhciBWPUsub3B0cyxsZT1LLnBvcyxuZT1LLnN0YXJ0LGVlPUsuc3RhcnRQb3MsemU9Sy5lYXNpbmcsSGU9Vi5kdXJhdGlvbixHZT17dG9wOiJ5IixsZWZ0OiJ4In0sb3Q9WC1uZSxEZT1NYXRoLm1pbigxLE1hdGgubWF4KG90L0hlLDApKTtPYmplY3Qua2V5cyhsZSkuZm9yRWFjaChmdW5jdGlvbihfZSl7dmFyIG9lPWxlW19lXSxzZT1lZVtfZV0sY2U9b2Utc2U7aWYoY2UhPT0wKXt2YXIgVGU9emUoRGUsSGUqRGUsMCwxLEhlKTskKHhlLE1hdGgucm91bmQoc2UrY2UqVGUpLEdlW19lXSl9fSksb3Q8PUhlPyhqLmhvb2soViwic3RlcCIsRGUpLEsuaWQ9cS5yYWYoai5sb29wKSk6ai5zdG9wKCEwKX0sdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihYKXtmb3IodmFyIEo9ai5vcHRzLHhlPVgudGFyZ2V0O3hlJiZ4ZSE9PWRvY3VtZW50O3hlPXhlLnBhcmVudE5vZGUpaWYoUyh4ZSxKLnRyaWdnZXIpKXt2YXIgSz1KU09OLnBhcnNlKHhlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwtb3B0aW9ucyIpfHwie30iKSxWPXhlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwiKSxsZT1WfHx4ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxuZT10KHt9LEosSyksZWU9bmUucHJldmVudERlZmF1bHQsemU9bmUuc3RvcFByb3BhZ2F0aW9uLEhlPW5lLnZlcnRpY2FsLEdlPW5lLmhvcml6b250YWw7ZWUmJlgucHJldmVudERlZmF1bHQoKSx6ZSYmWC5zdG9wUHJvcGFnYXRpb24oKSxqLmN0eC4kdHJpZ2dlcj14ZSxHZSYmSGU/ai50byhsZSxuZSk6SGU/ai50b1RvcChsZSxuZSk6R2UmJmoudG9MZWZ0KGxlLG5lKTticmVha319LHRoaXMuaGFuZGxlU3RvcD1mdW5jdGlvbihYKXt2YXIgSj1qLmN0eCx4ZT1KLm9wdHM7eGUmJnhlLmNhbmNlbGxhYmxlPyhKLmNhbmNlbD0hMCxqLnN0b3AoKSk6WC5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLm9wdHM9dCh7fSxULEh8fHt9KTt2YXIgYWU9bnVsbDtlJiYodHlwZW9mIFU9PSJzdHJpbmciP2FlPWsoVSk6VSE9bnVsbD9hZT1VOmFlPXdpbmRvdyksdGhpcy4kZWw9YWUsYWUmJnRoaXMuYmluZCghMCwhMSl9cmV0dXJuIGkocSwiU3dlZXRTY3JvbGwiKSxxLmNyZWF0ZT1mdW5jdGlvbihILFUpe3JldHVybiBuZXcgcShILFUpfSxxLnByb3RvdHlwZS50bz1mdW5jdGlvbihILFUpe2lmKGUpe3ZhciBqPXRoaXMsYWU9ai4kZWwsWD1qLmN0eCxKPWoub3B0cyx4ZT1YLiR0cmlnZ2VyLEs9dCh7fSxKLFV8fHt9KSxWPUsub2Zmc2V0LGxlPUsudmVydGljYWwsbmU9Sy5ob3Jpem9udGFsLGVlPU0oSy5oZWFkZXIpP0suaGVhZGVyOmsoSy5oZWFkZXIpLHplPS9eIy8sSGU9cyhIKSYmemUudGVzdChIKT9IOm51bGw7aWYoWC5vcHRzPUssWC5jYW5jZWw9ITEsWC5oYXNoPUhlLHRoaXMuc3RvcCgpLCEhYWUpe3ZhciBHZT1mZShWLGxlKSxvdD1mZShILGxlKSxEZT17dG9wOjAsbGVmdDowfTtpZihvdClpZihvdC5yZWxhdGl2ZSl7dmFyIF9lPUEoYWUsbGU/InkiOiJ4Iik7RGUudG9wPWxlP19lK290LnRvcDpvdC50b3AsRGUubGVmdD1sZT9vdC5sZWZ0Ol9lK290LmxlZnR9ZWxzZSBEZT1vdDtlbHNlIGlmKHMoSCkmJkghPT0iIyIpe3ZhciBvZT1rKEgpO2lmKCFvZSlyZXR1cm47RGU9RihvZSxhZSl9R2UmJihEZS50b3ArPUdlLnRvcCxEZS5sZWZ0Kz1HZS5sZWZ0KSxlZSYmKERlLnRvcD1NYXRoLm1heCgwLERlLnRvcC1FKGVlKS5oZWlnaHQpKTt2YXIgc2U9QihhZSksY2U9c2Uudmlld3BvcnQsVGU9c2Uuc2l6ZTtpZihEZS50b3A9bGU/TWF0aC5tYXgoMCxNYXRoLm1pbihUZS5oZWlnaHQtY2UuaGVpZ2h0LERlLnRvcCkpOkEoYWUsInkiKSxEZS5sZWZ0PW5lP01hdGgubWF4KDAsTWF0aC5taW4oVGUud2lkdGgtY2Uud2lkdGgsRGUubGVmdCkpOkEoYWUsIngiKSx0aGlzLmhvb2soSywiYmVmb3JlIixEZSx4ZSk9PT0hMSl7WC5vcHRzPW51bGw7cmV0dXJufVgucG9zPURlLHRoaXMuc3RhcnQoSyksdGhpcy5iaW5kKCExLCEwKX19fSxxLnByb3RvdHlwZS50b1RvcD1mdW5jdGlvbihILFUpe3RoaXMudG8oSCx0KHt9LFV8fHt9LHt2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExfSkpfSxxLnByb3RvdHlwZS50b0xlZnQ9ZnVuY3Rpb24oSCxVKXt0aGlzLnRvKEgsdCh7fSxVfHx7fSx7dmVydGljYWw6ITEsaG9yaXpvbnRhbDohMH0pKX0scS5wcm90b3R5cGUudG9FbGVtZW50PWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcy4kZWw7IWV8fCFqfHx0aGlzLnRvKEYoSCxqKSxVfHx7fSl9LHEucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oSCl7SD09PXZvaWQgMCYmKEg9ITEpO3ZhciBVPXRoaXMsaj1VLiRlbCxhZT1VLmN0eCxYPWFlLnBvczshanx8IWFlLnByb2dyZXNzfHwocS5jYWYoYWUuaWQpLGFlLnByb2dyZXNzPSExLGFlLnN0YXJ0PTAsYWUuaWQ9MCxIJiZYJiYoJChqLFgubGVmdCwieCIpLCQoaixYLnRvcCwieSIpKSx0aGlzLmNvbXBsZXRlKCkpfSxxLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oSCl7aWYodGhpcy4kZWwpe3ZhciBVPXQoe30sdGhpcy5vcHRzLEgpO3RoaXMuc3RvcCgpLHRoaXMudW5iaW5kKCEwLCEwKSx0aGlzLm9wdHM9VSx0aGlzLmJpbmQoITAsITEpfX0scS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuJGVsJiYodGhpcy5zdG9wKCksdGhpcy51bmJpbmQoITAsITApLHRoaXMuJGVsPW51bGwpfSxxLnByb3RvdHlwZS5vbkJlZm9yZT1mdW5jdGlvbihILFUpe3JldHVybiEwfSxxLnByb3RvdHlwZS5vblN0ZXA9ZnVuY3Rpb24oSCl7fSxxLnByb3RvdHlwZS5vbkFmdGVyPWZ1bmN0aW9uKEgsVSl7fSxxLnByb3RvdHlwZS5vbkNhbmNlbD1mdW5jdGlvbigpe30scS5wcm90b3R5cGUub25Db21wbGV0ZT1mdW5jdGlvbihIKXt9LHEucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKEgpe3ZhciBVPXRoaXMuY3R4O1Uub3B0cz1ILFUucHJvZ3Jlc3M9ITAsVS5lYXNpbmc9bihILmVhc2luZyk/SC5lYXNpbmc6Z1tILmVhc2luZ107dmFyIGo9dGhpcy4kZWwsYWU9e3RvcDpBKGosInkiKSxsZWZ0OkEoaiwieCIpfTtVLnN0YXJ0UG9zPWFlLFUuaWQ9cS5yYWYodGhpcy5sb29wKX0scS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgSD10aGlzLFU9SC4kZWwsaj1ILmN0eCxhZT1qLmhhc2gsWD1qLmNhbmNlbCxKPWoub3B0cyx4ZT1qLnBvcyxLPWouJHRyaWdnZXI7aWYoISghVXx8IUopKXtpZihhZSE9bnVsbCYmYWUhPT13aW5kb3cubG9jYXRpb24uaGFzaCl7dmFyIFY9Si51cGRhdGVVUkw7ZSYmciYmViE9PSExJiZ3aW5kb3cuaGlzdG9yeVtWPT09InJlcGxhY2UiPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXShudWxsLCIiLGFlKX10aGlzLnVuYmluZCghMSwhMCksai5vcHRzPW51bGwsai4kdHJpZ2dlcj1udWxsLFg/dGhpcy5ob29rKEosImNhbmNlbCIpOnRoaXMuaG9vayhKLCJhZnRlciIseGUsSyksdGhpcy5ob29rKEosImNvbXBsZXRlIixYKX19LHEucHJvdG90eXBlLmhvb2s9ZnVuY3Rpb24oSCxVKXtmb3IodmFyIGo9W10sYWU9MjthZTxhcmd1bWVudHMubGVuZ3RoO2FlKyspalthZS0yXT1hcmd1bWVudHNbYWVdO3ZhciBYLEo9SFtVXSx4ZSxLO3JldHVybiBuKEopJiYoeGU9Si5hcHBseSh0aGlzLGouY29uY2F0KFt0aGlzXSkpKSxLPShYPXRoaXMpWyJvbiIrKFVbMF0udG9VcHBlckNhc2UoKStVLnNsaWNlKDEpKV0uYXBwbHkoWCxqKSx4ZSE9PXZvaWQgMD94ZTpLfSxxLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcyxhZT1qLiRlbCxYPWouY3R4Lm9wdHM7YWUmJihIJiZkZShhZSxXLHRoaXMuaGFuZGxlQ2xpY2ssITEpLFUmJmRlKGFlLHBlLHRoaXMuaGFuZGxlU3RvcCxYP1guY2FuY2VsbGFibGU6ITApKX0scS5wcm90b3R5cGUudW5iaW5kPWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcyxhZT1qLiRlbCxYPWouY3R4Lm9wdHM7YWUmJihIJiZEKGFlLFcsdGhpcy5oYW5kbGVDbGljaywhMSksVSYmRChhZSxwZSx0aGlzLmhhbmRsZVN0b3AsWD9YLmNhbmNlbGxhYmxlOiEwKSl9LHEucmFmPWQscS5jYWY9ZixxfSkoKTtyZXR1cm4gbWV9KX0pO3ZhciB6eCxfNWEsX3g9dSgoKT0+e0RMdCgpO2hvZSgpO05kKCk7TGIoKTtXT3QoKTtHbigpO3RSdCgpO1pjKCk7ZFJ0KCk7eVMoKTtGd2UoKTtpb2UoKTtrbGUoKTtabmUoKTtjUygpO2JnZSgpO05uZSgpO21GdCgpO3p4PUdhKGdGdCgpLDEpLF81YT17T2JqZWN0TWFwOlZkLFN0cmluZ21hcDp1UyxGYXN0TWFwOnJofX0pO3ZhciBTaT17fTtWZShTaSx7Y29udGFpbmVyQ29udGV4dFN0eWxlczooKT0+RDVhLGNzc0ZvckNvbnN0cmFpbnQ6KCk9PlQ1YSxjc3NGb3JDb25zdHJhaW50Q29udGFpbmVyOigpPT5MNWEsY3NzRm9yQ29udGFpbmVyOigpPT5TRnQsY3NzRm9yRGVza3RvcDooKT0+JDVhLGNzc0Zvck5vdGVib29rOigpPT5BNWEsY3NzRm9yUGhhYmxldDooKT0+STVhLGNzc0ZvclBob25lOigpPT5QNWEsY3NzRm9yVGFibGV0OigpPT5FNWEsY3NzRm9yVmlld3BvcnQ6KCk9PlJoLGRlc2t0b3A6KCk9PnhGdCxub3RlYm9vazooKT0+dkZ0LHBoYWJsZXQ6KCk9PndGdCxwaG9uZTooKT0+a0Z0LHRhYmxldDooKT0+eUZ0fSk7dmFyIHhGdCx2RnQseUZ0LHdGdCxrRnQsYkZ0LFJoLFNGdCxUNWEsTDVhLEQ1YSwkNWEsQTVhLEU1YSxJNWEsUDVhLHVrZT11KCgpPT57VHgoKTt5bCgpO3hGdD0xNjAwLHZGdD0xMjQwLHlGdD0xMDI0LHdGdD02MDAsa0Z0PTQwMCxiRnQ9aSh0PT57bGV0IGU9W107cmV0dXJuIHQubWluV2lkdGgmJmUucHVzaChgKG1pbi13aWR0aDogJHt0Lm1pbldpZHRofXB4KWApLHQubWF4V2lkdGgmJmUucHVzaChgKG1heC13aWR0aDogJHt0Lm1heFdpZHRofXB4KWApLGUuam9pbigiIGFuZCAiKX0sImJ1aWxkQ29uZGl0aW9uIiksUmg9aSgodCxlKT0+TmEoYAogICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0ICR7ZX0gewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAke2V9IHsKICAgICAgJHt0LmNzc1RleHR9CiAgICB9CiAgYCksImNzc0ZvclZpZXdwb3J0IiksU0Z0PWkoKHQsZSxyKT0+TmEoYAogICAgQGNvbnRhaW5lciAke3J9ICR7ZX0gewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICBgKSwiY3NzRm9yQ29udGFpbmVyIiksVDVhPWkodD0+ZT0+UmgoZSxiRnQodCkpLCJjc3NGb3JDb25zdHJhaW50IiksTDVhPWkoKHQsZSk9PnI9PlNGdChyLGJGdCh0KSxlKSwiY3NzRm9yQ29uc3RyYWludENvbnRhaW5lciIpLEQ1YT1pKHQ9PiRyYAogIDpob3N0IHsKICAgIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTsKICAgIGNvbnRhaW5lci1uYW1lOiAke05hKHQpfTsKICB9CmAsImNvbnRhaW5lckNvbnRleHRTdHlsZXMiKSwkNWE9aSh0PT5SaCh0LGAobWluLXdpZHRoOiAke3hGdH1weClgKSwiY3NzRm9yRGVza3RvcCIpLEE1YT1pKHQ9PlJoKHQsYChtYXgtd2lkdGg6ICR7dkZ0fXB4KWApLCJjc3NGb3JOb3RlYm9vayIpLEU1YT1pKHQ9PlJoKHQsYChtYXgtd2lkdGg6ICR7eUZ0fXB4KWApLCJjc3NGb3JUYWJsZXQiKSxJNWE9aSh0PT5SaCh0LGAobWF4LXdpZHRoOiAke3dGdH1weClgKSwiY3NzRm9yUGhhYmxldCIpLFA1YT1pKHQ9PlJoKHQsYChtYXgtd2lkdGg6ICR7a0Z0fXB4KWApLCJjc3NGb3JQaG9uZSIpfSk7dmFyIE1sZSxNRnQ9dSgoKT0+e194KCk7TWxlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNjcm9sbGVyIil9ZG9tdG9vbHNJbnN0YW5jZTtkaXNwb3NlZD0hMTtzY3JvbGxDYWxsYmFja3M9W107bGVuaXNJbnN0YW5jZT1udWxsO2xlbmlzU2Nyb2xsVW5zdWJzY3JpYmU9bnVsbDtuYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkPSExO2hhbmRsZU5hdGl2ZVNjcm9sbD1pKGU9Pnt0aGlzLmV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKX0sImhhbmRsZU5hdGl2ZVNjcm9sbCIpO2hhbmRsZUxlbmlzU2Nyb2xsPWkoZT0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfSwiaGFuZGxlTGVuaXNTY3JvbGwiKTtjb25zdHJ1Y3RvcihlKXt0aGlzLmRvbXRvb2xzSW5zdGFuY2U9ZSx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl9c3dlZXRTY3JvbGxlcj1uZXcgenguZGVmYXVsdCh7fSk7YXN5bmMgdG9FbGVtZW50KGUscil7dGhpcy5zd2VldFNjcm9sbGVyLnRvRWxlbWVudChlLHIpLHI/LmR1cmF0aW9uJiZhd2FpdCBLdC5kZWxheUZvcihyLmR1cmF0aW9uKX1hc3luYyBkZXRlY3ROYXRpdmVTbW9vdGhTY3JvbGwoKXtsZXQgZT1nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuc2Nyb2xsQmVoYXZpb3Iscj1kb2N1bWVudC5ib2R5P2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuc2Nyb2xsQmVoYXZpb3I6ImF1dG8iO2lmKGU9PT0ic21vb3RoInx8cj09PSJzbW9vdGgiKXJldHVybiEwO2xldCBhPXh0LmRlZmVyKCkscz0xMixuPTMsbz0uNzUsbD0xMjAwLGM9W10sZD1pKG09Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLGYpLHdpbmRvdy5jbGVhclRpbWVvdXQoaCksYS5yZXNvbHZlKG0pfSwiZmluYWxpemUiKTtmdW5jdGlvbiBmKG0pe2MucHVzaChtLmRlbHRhWSksYy5sZW5ndGg+PXMmJnAoKX1pKGYsIm9uV2hlZWwiKTtmdW5jdGlvbiBwKCl7aWYoYy5sZW5ndGg8Mil7ZCghMSk7cmV0dXJufWxldCBtPWMubGVuZ3RoLTEsdj0wO2ZvcihsZXQgZz0wO2c8bTtnKyspTWF0aC5hYnMoY1tnKzFdLWNbZ10pPD1uJiZ2Kys7bGV0IGI9di9tO2QoYj49byl9aShwLCJhbmFseXplRXZlbnRzIik7bGV0IGg9d2luZG93LnNldFRpbWVvdXQoKCk9PntwKCl9LGwpO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLGYse3Bhc3NpdmU6ITB9KSxhLnByb21pc2V9YXN5bmMgZW5hYmxlTGVuaXNTY3JvbGwoZSl7aWYodGhpcy5kaXNwb3NlZClyZXR1cm47dGhpcy5sZW5pc0luc3RhbmNlJiZ0aGlzLmRpc2FibGVMZW5pc1Njcm9sbCgpO2xldCByPW5ldyBRTSh7YXV0b1JhZjohMH0pO2lmKGU/LmRpc2FibGVPbk5hdGl2ZVNtb290aFNjcm9sbCYmYXdhaXQgdGhpcy5kZXRlY3ROYXRpdmVTbW9vdGhTY3JvbGwoKSl7ci5kZXN0cm95KCk7cmV0dXJufXRoaXMubGVuaXNJbnN0YW5jZT1yLHRoaXMuZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmF0dGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKX1kaXNhYmxlTGVuaXNTY3JvbGwoKXt0aGlzLmxlbmlzSW5zdGFuY2UmJih0aGlzLmRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmxlbmlzSW5zdGFuY2UuZGVzdHJveSgpLHRoaXMubGVuaXNJbnN0YW5jZT1udWxsLHRoaXMuYXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKSl9b25TY3JvbGwoZSl7cmV0dXJuIHRoaXMuc2Nyb2xsQ2FsbGJhY2tzLnB1c2goZSksKCk9Pnt0aGlzLnNjcm9sbENhbGxiYWNrcz10aGlzLnNjcm9sbENhbGxiYWNrcy5maWx0ZXIocj0+ciE9PWUpfX1leGVjdXRlU2Nyb2xsQ2FsbGJhY2tzKCl7dGhpcy5zY3JvbGxDYWxsYmFja3MuZm9yRWFjaChlPT57dHJ5e2UoKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKCJFcnJvciBpbiBzY3JvbGwgY2FsbGJhY2s6IixyKX19KX1hdHRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpe3RoaXMubmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZHx8dGhpcy5kaXNwb3NlZHx8KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlTmF0aXZlU2Nyb2xsKSx0aGlzLm5hdGl2ZVNjcm9sbExpc3RlbmVyQXR0YWNoZWQ9ITApfWRldGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl7dGhpcy5uYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVOYXRpdmVTY3JvbGwpLHRoaXMubmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZD0hMSl9YXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNJbnN0YW5jZSYmIXRoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZSYmKHRoaXMubGVuaXNTY3JvbGxVbnN1YnNjcmliZT10aGlzLmxlbmlzSW5zdGFuY2Uub24oInNjcm9sbCIsdGhpcy5oYW5kbGVMZW5pc1Njcm9sbCkpfWRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmUmJih0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmUoKSx0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmU9bnVsbCl9ZGlzcG9zZSgpe3RoaXMuZGlzcG9zZWR8fCh0aGlzLmRpc3Bvc2VkPSEwLHRoaXMuZGV0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpLHRoaXMubGVuaXNJbnN0YW5jZT8uZGVzdHJveSgpLHRoaXMubGVuaXNJbnN0YW5jZT1udWxsLHRoaXMuZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLnNjcm9sbENhbGxiYWNrcz1bXSx0aGlzLnN3ZWV0U2Nyb2xsZXIuZGVzdHJveSgpKX19fSk7dmFyIENsZSxDRnQ9dSgoKT0+e1R4KCk7X3goKTtDbGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGhlbWVNYW5hZ2VyIil9ZG9tdG9vbHNSZWY7Z29CcmlnaHRCb29sZWFuPSExO3ByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaD13aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkiKTt0aGVtZU9ic2VydmFibGU9bmV3IG9hLnJ4anMuUmVwbGF5U3ViamVjdCgxKTthdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbj1udWxsO3ByZWZlcnJlZENvbG9yU2NoZW1lQ2hhbmdlSGFuZGxlcj1pKGU9Pnt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj1lLm1hdGNoZXMsdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfSwicHJlZmVycmVkQ29sb3JTY2hlbWVDaGFuZ2VIYW5kbGVyIik7Y29uc3RydWN0b3IoZSl7dGhpcy5kb210b29sc1JlZj1lLHRoaXMuZ29CcmlnaHRCb29sZWFuPXRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLm1hdGNoZXMsdGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2guYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lQ2hhbmdlSGFuZGxlciksdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfWFzeW5jIGVuYWJsZUF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlKCl7YXdhaXQgdGhpcy5kb210b29sc1JlZi5kb21SZWFkeS5wcm9taXNlLHRoaXMuYXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2VTdWJzY3JpcHRpb258fCh0aGlzLmF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9uPXRoaXMudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSh7bmV4dDppKGU9Pntkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmQ9ZT8iI2ZmZiI6IiMwMDAifSwibmV4dCIpfSkpfXVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl7dGhpcy5kb210b29sc1JlZi5kaXNwb3NlZHx8dGhpcy50aGVtZU9ic2VydmFibGUubmV4dCh0aGlzLmdvQnJpZ2h0Qm9vbGVhbil9Z29CcmlnaHQoKXt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj0hMCx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9Z29EYXJrKCl7dGhpcy5nb0JyaWdodEJvb2xlYW49ITEsdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfXRvZ2dsZURhcmtCcmlnaHQoKXt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj0hdGhpcy5nb0JyaWdodEJvb2xlYW4sdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfWRpc3Bvc2UoKXt0aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVDaGFuZ2VIYW5kbGVyKSx0aGlzLmF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpLHRoaXMuYXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2VTdWJzY3JpcHRpb249bnVsbCx0aGlzLnRoZW1lT2JzZXJ2YWJsZS5jb21wbGV0ZSgpfX19KTt2YXIgRmUsemxlLHpGdD11KCgpPT57X3goKTsoZnVuY3Rpb24odCl7dFt0LkJhY2tzcGFjZT04XT0iQmFja3NwYWNlIix0W3QuVGFiPTldPSJUYWIiLHRbdC5FbnRlcj0xM109IkVudGVyIix0W3QuU2hpZnQ9MTZdPSJTaGlmdCIsdFt0LkN0cmw9MTddPSJDdHJsIix0W3QuQWx0PTE4XT0iQWx0Iix0W3QuUGF1c2VCcmVhaz0xOV09IlBhdXNlQnJlYWsiLHRbdC5DYXBzTG9jaz0yMF09IkNhcHNMb2NrIix0W3QuRXNjYXBlPTI3XT0iRXNjYXBlIix0W3QuU3BhY2U9MzJdPSJTcGFjZSIsdFt0LlBhZ2VVcD0zM109IlBhZ2VVcCIsdFt0LlBhZ2VEb3duPTM0XT0iUGFnZURvd24iLHRbdC5FbmQ9MzVdPSJFbmQiLHRbdC5Ib21lPTM2XT0iSG9tZSIsdFt0LkxlZnRBcnJvdz0zN109IkxlZnRBcnJvdyIsdFt0LlVwQXJyb3c9MzhdPSJVcEFycm93Iix0W3QuUmlnaHRBcnJvdz0zOV09IlJpZ2h0QXJyb3ciLHRbdC5Eb3duQXJyb3c9NDBdPSJEb3duQXJyb3ciLHRbdC5JbnNlcnQ9NDVdPSJJbnNlcnQiLHRbdC5EZWxldGU9NDZdPSJEZWxldGUiLHRbdC5aZXJvPTQ4XT0iWmVybyIsdFt0LkNsb3NlZFBhcmVuPTQ4XT0iQ2xvc2VkUGFyZW4iLHRbdC5PbmU9NDldPSJPbmUiLHRbdC5FeGNsYW1hdGlvbk1hcms9NDldPSJFeGNsYW1hdGlvbk1hcmsiLHRbdC5Ud289NTBdPSJUd28iLHRbdC5BdFNpZ249NTBdPSJBdFNpZ24iLHRbdC5UaHJlZT01MV09IlRocmVlIix0W3QuUG91bmRTaWduPTUxXT0iUG91bmRTaWduIix0W3QuSGFzaD01MV09Ikhhc2giLHRbdC5Gb3VyPTUyXT0iRm91ciIsdFt0LkRvbGxhclNpZ249NTJdPSJEb2xsYXJTaWduIix0W3QuRml2ZT01M109IkZpdmUiLHRbdC5QZXJjZW50U2lnbj01M109IlBlcmNlbnRTaWduIix0W3QuU2l4PTU0XT0iU2l4Iix0W3QuQ2FyZXQ9NTRdPSJDYXJldCIsdFt0LkhhdD01NF09IkhhdCIsdFt0LlNldmVuPTU1XT0iU2V2ZW4iLHRbdC5BbXBlcnNhbmQ9NTVdPSJBbXBlcnNhbmQiLHRbdC5FaWdodD01Nl09IkVpZ2h0Iix0W3QuU3Rhcj01Nl09IlN0YXIiLHRbdC5Bc3RlcmlrPTU2XT0iQXN0ZXJpayIsdFt0Lk5pbmU9NTddPSJOaW5lIix0W3QuT3BlblBhcmVuPTU3XT0iT3BlblBhcmVuIix0W3QuQT02NV09IkEiLHRbdC5CPTY2XT0iQiIsdFt0LkM9NjddPSJDIix0W3QuRD02OF09IkQiLHRbdC5FPTY5XT0iRSIsdFt0LkY9NzBdPSJGIix0W3QuRz03MV09IkciLHRbdC5IPTcyXT0iSCIsdFt0Lkk9NzNdPSJJIix0W3QuSj03NF09IkoiLHRbdC5LPTc1XT0iSyIsdFt0Lkw9NzZdPSJMIix0W3QuTT03N109Ik0iLHRbdC5OPTc4XT0iTiIsdFt0Lk89NzldPSJPIix0W3QuUD04MF09IlAiLHRbdC5RPTgxXT0iUSIsdFt0LlI9ODJdPSJSIix0W3QuUz04M109IlMiLHRbdC5UPTg0XT0iVCIsdFt0LlU9ODVdPSJVIix0W3QuVj04Nl09IlYiLHRbdC5XPTg3XT0iVyIsdFt0Llg9ODhdPSJYIix0W3QuWT04OV09IlkiLHRbdC5aPTkwXT0iWiIsdFt0LkxlZnRXaW5kb3dLZXk9OTFdPSJMZWZ0V2luZG93S2V5Iix0W3QuUmlnaHRXaW5kb3dLZXk9OTJdPSJSaWdodFdpbmRvd0tleSIsdFt0LlNlbGVjdEtleT05M109IlNlbGVjdEtleSIsdFt0Lk51bXBhZDA9OTZdPSJOdW1wYWQwIix0W3QuTnVtcGFkMT05N109Ik51bXBhZDEiLHRbdC5OdW1wYWQyPTk4XT0iTnVtcGFkMiIsdFt0Lk51bXBhZDM9OTldPSJOdW1wYWQzIix0W3QuTnVtcGFkND0xMDBdPSJOdW1wYWQ0Iix0W3QuTnVtcGFkNT0xMDFdPSJOdW1wYWQ1Iix0W3QuTnVtcGFkNj0xMDJdPSJOdW1wYWQ2Iix0W3QuTnVtcGFkNz0xMDNdPSJOdW1wYWQ3Iix0W3QuTnVtcGFkOD0xMDRdPSJOdW1wYWQ4Iix0W3QuTnVtcGFkOT0xMDVdPSJOdW1wYWQ5Iix0W3QuTXVsdGlwbHk9MTA2XT0iTXVsdGlwbHkiLHRbdC5BZGQ9MTA3XT0iQWRkIix0W3QuU3VidHJhY3Q9MTA5XT0iU3VidHJhY3QiLHRbdC5EZWNpbWFsUG9pbnQ9MTEwXT0iRGVjaW1hbFBvaW50Iix0W3QuRGl2aWRlPTExMV09IkRpdmlkZSIsdFt0LkYxPTExMl09IkYxIix0W3QuRjI9MTEzXT0iRjIiLHRbdC5GMz0xMTRdPSJGMyIsdFt0LkY0PTExNV09IkY0Iix0W3QuRjU9MTE2XT0iRjUiLHRbdC5GNj0xMTddPSJGNiIsdFt0LkY3PTExOF09IkY3Iix0W3QuRjg9MTE5XT0iRjgiLHRbdC5GOT0xMjBdPSJGOSIsdFt0LkYxMD0xMjFdPSJGMTAiLHRbdC5GMTE9MTIyXT0iRjExIix0W3QuRjEyPTEyM109IkYxMiIsdFt0Lk51bUxvY2s9MTQ0XT0iTnVtTG9jayIsdFt0LlNjcm9sbExvY2s9MTQ1XT0iU2Nyb2xsTG9jayIsdFt0LlNlbWlDb2xvbj0xODZdPSJTZW1pQ29sb24iLHRbdC5FcXVhbHM9MTg3XT0iRXF1YWxzIix0W3QuQ29tbWE9MTg4XT0iQ29tbWEiLHRbdC5EYXNoPTE4OV09IkRhc2giLHRbdC5QZXJpb2Q9MTkwXT0iUGVyaW9kIix0W3QuVW5kZXJTY29yZT0xODldPSJVbmRlclNjb3JlIix0W3QuUGx1c1NpZ249MTg3XT0iUGx1c1NpZ24iLHRbdC5Gb3J3YXJkU2xhc2g9MTkxXT0iRm9yd2FyZFNsYXNoIix0W3QuVGlsZGU9MTkyXT0iVGlsZGUiLHRbdC5HcmF2ZUFjY2VudD0xOTJdPSJHcmF2ZUFjY2VudCIsdFt0Lk9wZW5CcmFja2V0PTIxOV09Ik9wZW5CcmFja2V0Iix0W3QuQ2xvc2VkQnJhY2tldD0yMjFdPSJDbG9zZWRCcmFja2V0Iix0W3QuUXVvdGU9MjIyXT0iUXVvdGUifSkoRmV8fChGZT17fSkpO3psZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJLZXlib2FyZCIpfWRvbU5vZGU7bWFwQ29tYm9zVG9IYW5kbGVycz1uZXcgTWFwO3ByZXNzZWRLZXlzPW5ldyBTZXQ7bGlzdGVuaW5nPSExO2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tTm9kZT1lLHRoaXMuc3RhcnRMaXN0ZW5pbmcoKX1rZXlFbnVtPUZlO29uKGUpe2xldCByPW5ldyBvYS5yeGpzLlN1YmplY3Q7cmV0dXJuIHRoaXMucmVnaXN0ZXJLZXlzKGUscikscn10cmlnZ2VyS2V5UHJlc3MoZSl7bGV0IHI9dGhpcy5ub3JtYWxpemVLZXlzKGUpO2ZvcihsZXQgYSBvZiByKXRoaXMucHJlc3NlZEtleXMuYWRkKGEpO3RoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHModGhpcy5jcmVhdGVLZXlib2FyZEV2ZW50KHIpKTtmb3IobGV0IGEgb2Ygcil0aGlzLnByZXNzZWRLZXlzLmRlbGV0ZShhKX1zdGFydExpc3RlbmluZygpe3RoaXMubGlzdGVuaW5nfHwodGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKSx0aGlzLmxpc3RlbmluZz0hMCl9c3RvcExpc3RlbmluZygpe3RoaXMubGlzdGVuaW5nJiYodGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKSx0aGlzLmxpc3RlbmluZz0hMSl9Y2xlYXIoKXt0aGlzLnN0b3BMaXN0ZW5pbmcoKTtmb3IobGV0IGUgb2YgdGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLnZhbHVlcygpKWZvcihsZXQgciBvZiBlLnN1YmplY3RzKXIuY29tcGxldGUoKTt0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuY2xlYXIoKSx0aGlzLnByZXNzZWRLZXlzLmNsZWFyKCl9ZGlzcG9zZSgpe3RoaXMuY2xlYXIoKX1oYW5kbGVLZXlEb3duPWkoZT0+e2xldCByPXRoaXMucmVzb2x2ZUtleShlKTtyIT09bnVsbCYmKHRoaXMucHJlc3NlZEtleXMuYWRkKHIpLHRoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHMoZSkpfSwiaGFuZGxlS2V5RG93biIpO2NoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKGUpe3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5mb3JFYWNoKHI9PntpZih0aGlzLmFyZUFsbEtleXNQcmVzc2VkKHIua2V5cykpZm9yKGxldCBhIG9mIHIuc3ViamVjdHMpYS5uZXh0KGUpfSl9aGFuZGxlS2V5VXA9aShlPT57bGV0IHI9dGhpcy5yZXNvbHZlS2V5KGUpO3IhPT1udWxsJiZ0aGlzLnByZXNzZWRLZXlzLmRlbGV0ZShyKX0sImhhbmRsZUtleVVwIik7YXJlQWxsS2V5c1ByZXNzZWQoZSl7bGV0IHI9ITA7cmV0dXJuIGUuZm9yRWFjaChhPT57dGhpcy5wcmVzc2VkS2V5cy5oYXMoYSl8fChyPSExKX0pLHJ9cmVnaXN0ZXJLZXlzKGUscil7bGV0IGE9dGhpcy5ub3JtYWxpemVLZXlzKGUpLHM9YS5qb2luKCIrIiksbj10aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuZ2V0KHMpO2lmKCFuKXt0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuc2V0KHMse2tleXM6YSxzdWJqZWN0czpbcl19KTtyZXR1cm59bi5zdWJqZWN0cy5wdXNoKHIpfW5vcm1hbGl6ZUtleXMoZSl7cmV0dXJuWy4uLm5ldyBTZXQoZSldLnNvcnQoKHIsYSk9PnItYSl9cmVzb2x2ZUtleShlKXtyZXR1cm4gdGhpcy5yZXNvbHZlS2V5RnJvbUNvZGUoZS5jb2RlKT8/dGhpcy5yZXNvbHZlS2V5RnJvbUtleShlLmtleSk/P3RoaXMucmVzb2x2ZUtleUZyb21LZXlDb2RlKGUua2V5Q29kZSl9cmVzb2x2ZUtleUZyb21Db2RlKGUpe2lmKCFlKXJldHVybiBudWxsO2lmKGUuc3RhcnRzV2l0aCgiS2V5IikmJmUubGVuZ3RoPT09NClyZXR1cm4gRmVbZS5zbGljZSgzKV0/P251bGw7aWYoZS5zdGFydHNXaXRoKCJEaWdpdCIpJiZlLmxlbmd0aD09PTYpcmV0dXJuIHRoaXMucmVzb2x2ZUtleUZyb21LZXkoZS5zbGljZSg1KSk7c3dpdGNoKGUpe2Nhc2UiQmFja3NwYWNlIjpyZXR1cm4gRmUuQmFja3NwYWNlO2Nhc2UiVGFiIjpyZXR1cm4gRmUuVGFiO2Nhc2UiRW50ZXIiOmNhc2UiTnVtcGFkRW50ZXIiOnJldHVybiBGZS5FbnRlcjtjYXNlIlNoaWZ0TGVmdCI6Y2FzZSJTaGlmdFJpZ2h0IjpyZXR1cm4gRmUuU2hpZnQ7Y2FzZSJDb250cm9sTGVmdCI6Y2FzZSJDb250cm9sUmlnaHQiOnJldHVybiBGZS5DdHJsO2Nhc2UiQWx0TGVmdCI6Y2FzZSJBbHRSaWdodCI6cmV0dXJuIEZlLkFsdDtjYXNlIlBhdXNlIjpyZXR1cm4gRmUuUGF1c2VCcmVhaztjYXNlIkNhcHNMb2NrIjpyZXR1cm4gRmUuQ2Fwc0xvY2s7Y2FzZSJFc2NhcGUiOnJldHVybiBGZS5Fc2NhcGU7Y2FzZSJTcGFjZSI6cmV0dXJuIEZlLlNwYWNlO2Nhc2UiUGFnZVVwIjpyZXR1cm4gRmUuUGFnZVVwO2Nhc2UiUGFnZURvd24iOnJldHVybiBGZS5QYWdlRG93bjtjYXNlIkVuZCI6cmV0dXJuIEZlLkVuZDtjYXNlIkhvbWUiOnJldHVybiBGZS5Ib21lO2Nhc2UiQXJyb3dMZWZ0IjpyZXR1cm4gRmUuTGVmdEFycm93O2Nhc2UiQXJyb3dVcCI6cmV0dXJuIEZlLlVwQXJyb3c7Y2FzZSJBcnJvd1JpZ2h0IjpyZXR1cm4gRmUuUmlnaHRBcnJvdztjYXNlIkFycm93RG93biI6cmV0dXJuIEZlLkRvd25BcnJvdztjYXNlIkluc2VydCI6cmV0dXJuIEZlLkluc2VydDtjYXNlIkRlbGV0ZSI6cmV0dXJuIEZlLkRlbGV0ZTtjYXNlIk1ldGFMZWZ0IjpyZXR1cm4gRmUuTGVmdFdpbmRvd0tleTtjYXNlIk1ldGFSaWdodCI6cmV0dXJuIEZlLlJpZ2h0V2luZG93S2V5O2Nhc2UiQ29udGV4dE1lbnUiOnJldHVybiBGZS5TZWxlY3RLZXk7Y2FzZSJOdW1wYWQwIjpyZXR1cm4gRmUuTnVtcGFkMDtjYXNlIk51bXBhZDEiOnJldHVybiBGZS5OdW1wYWQxO2Nhc2UiTnVtcGFkMiI6cmV0dXJuIEZlLk51bXBhZDI7Y2FzZSJOdW1wYWQzIjpyZXR1cm4gRmUuTnVtcGFkMztjYXNlIk51bXBhZDQiOnJldHVybiBGZS5OdW1wYWQ0O2Nhc2UiTnVtcGFkNSI6cmV0dXJuIEZlLk51bXBhZDU7Y2FzZSJOdW1wYWQ2IjpyZXR1cm4gRmUuTnVtcGFkNjtjYXNlIk51bXBhZDciOnJldHVybiBGZS5OdW1wYWQ3O2Nhc2UiTnVtcGFkOCI6cmV0dXJuIEZlLk51bXBhZDg7Y2FzZSJOdW1wYWQ5IjpyZXR1cm4gRmUuTnVtcGFkOTtjYXNlIk51bXBhZE11bHRpcGx5IjpyZXR1cm4gRmUuTXVsdGlwbHk7Y2FzZSJOdW1wYWRBZGQiOnJldHVybiBGZS5BZGQ7Y2FzZSJOdW1wYWRTdWJ0cmFjdCI6cmV0dXJuIEZlLlN1YnRyYWN0O2Nhc2UiTnVtcGFkRGVjaW1hbCI6cmV0dXJuIEZlLkRlY2ltYWxQb2ludDtjYXNlIk51bXBhZERpdmlkZSI6cmV0dXJuIEZlLkRpdmlkZTtjYXNlIkYxIjpyZXR1cm4gRmUuRjE7Y2FzZSJGMiI6cmV0dXJuIEZlLkYyO2Nhc2UiRjMiOnJldHVybiBGZS5GMztjYXNlIkY0IjpyZXR1cm4gRmUuRjQ7Y2FzZSJGNSI6cmV0dXJuIEZlLkY1O2Nhc2UiRjYiOnJldHVybiBGZS5GNjtjYXNlIkY3IjpyZXR1cm4gRmUuRjc7Y2FzZSJGOCI6cmV0dXJuIEZlLkY4O2Nhc2UiRjkiOnJldHVybiBGZS5GOTtjYXNlIkYxMCI6cmV0dXJuIEZlLkYxMDtjYXNlIkYxMSI6cmV0dXJuIEZlLkYxMTtjYXNlIkYxMiI6cmV0dXJuIEZlLkYxMjtjYXNlIk51bUxvY2siOnJldHVybiBGZS5OdW1Mb2NrO2Nhc2UiU2Nyb2xsTG9jayI6cmV0dXJuIEZlLlNjcm9sbExvY2s7Y2FzZSJTZW1pY29sb24iOnJldHVybiBGZS5TZW1pQ29sb247Y2FzZSJFcXVhbCI6cmV0dXJuIEZlLkVxdWFscztjYXNlIkNvbW1hIjpyZXR1cm4gRmUuQ29tbWE7Y2FzZSJNaW51cyI6cmV0dXJuIEZlLkRhc2g7Y2FzZSJQZXJpb2QiOnJldHVybiBGZS5QZXJpb2Q7Y2FzZSJTbGFzaCI6cmV0dXJuIEZlLkZvcndhcmRTbGFzaDtjYXNlIkJhY2txdW90ZSI6cmV0dXJuIEZlLlRpbGRlO2Nhc2UiQnJhY2tldExlZnQiOnJldHVybiBGZS5PcGVuQnJhY2tldDtjYXNlIkJyYWNrZXRSaWdodCI6cmV0dXJuIEZlLkNsb3NlZEJyYWNrZXQ7Y2FzZSJRdW90ZSI6cmV0dXJuIEZlLlF1b3RlO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXJlc29sdmVLZXlGcm9tS2V5KGUpe2lmKCFlKXJldHVybiBudWxsO2lmKGUubGVuZ3RoPT09MSl7bGV0IHI9ZS50b1VwcGVyQ2FzZSgpO2lmKHI+PSJBIiYmcjw9IloiKXJldHVybiBGZVtyXT8/bnVsbDtzd2l0Y2goZSl7Y2FzZSIwIjpyZXR1cm4gRmUuWmVybztjYXNlIjEiOnJldHVybiBGZS5PbmU7Y2FzZSIyIjpyZXR1cm4gRmUuVHdvO2Nhc2UiMyI6cmV0dXJuIEZlLlRocmVlO2Nhc2UiNCI6cmV0dXJuIEZlLkZvdXI7Y2FzZSI1IjpyZXR1cm4gRmUuRml2ZTtjYXNlIjYiOnJldHVybiBGZS5TaXg7Y2FzZSI3IjpyZXR1cm4gRmUuU2V2ZW47Y2FzZSI4IjpyZXR1cm4gRmUuRWlnaHQ7Y2FzZSI5IjpyZXR1cm4gRmUuTmluZTtjYXNlIiAiOnJldHVybiBGZS5TcGFjZTtjYXNlIjsiOnJldHVybiBGZS5TZW1pQ29sb247Y2FzZSI9IjpyZXR1cm4gRmUuRXF1YWxzO2Nhc2UiLCI6cmV0dXJuIEZlLkNvbW1hO2Nhc2UiLSI6cmV0dXJuIEZlLkRhc2g7Y2FzZSIuIjpyZXR1cm4gRmUuUGVyaW9kO2Nhc2UiLyI6cmV0dXJuIEZlLkZvcndhcmRTbGFzaDtjYXNlImAiOnJldHVybiBGZS5UaWxkZTtjYXNlIlsiOnJldHVybiBGZS5PcGVuQnJhY2tldDtjYXNlIl0iOnJldHVybiBGZS5DbG9zZWRCcmFja2V0O2Nhc2UiJyI6cmV0dXJuIEZlLlF1b3RlO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXN3aXRjaChlKXtjYXNlIkJhY2tzcGFjZSI6cmV0dXJuIEZlLkJhY2tzcGFjZTtjYXNlIlRhYiI6cmV0dXJuIEZlLlRhYjtjYXNlIkVudGVyIjpyZXR1cm4gRmUuRW50ZXI7Y2FzZSJTaGlmdCI6cmV0dXJuIEZlLlNoaWZ0O2Nhc2UiQ29udHJvbCI6cmV0dXJuIEZlLkN0cmw7Y2FzZSJBbHQiOnJldHVybiBGZS5BbHQ7Y2FzZSJQYXVzZSI6cmV0dXJuIEZlLlBhdXNlQnJlYWs7Y2FzZSJDYXBzTG9jayI6cmV0dXJuIEZlLkNhcHNMb2NrO2Nhc2UiRXNjYXBlIjpyZXR1cm4gRmUuRXNjYXBlO2Nhc2UiUGFnZVVwIjpyZXR1cm4gRmUuUGFnZVVwO2Nhc2UiUGFnZURvd24iOnJldHVybiBGZS5QYWdlRG93bjtjYXNlIkVuZCI6cmV0dXJuIEZlLkVuZDtjYXNlIkhvbWUiOnJldHVybiBGZS5Ib21lO2Nhc2UiQXJyb3dMZWZ0IjpyZXR1cm4gRmUuTGVmdEFycm93O2Nhc2UiQXJyb3dVcCI6cmV0dXJuIEZlLlVwQXJyb3c7Y2FzZSJBcnJvd1JpZ2h0IjpyZXR1cm4gRmUuUmlnaHRBcnJvdztjYXNlIkFycm93RG93biI6cmV0dXJuIEZlLkRvd25BcnJvdztjYXNlIkluc2VydCI6cmV0dXJuIEZlLkluc2VydDtjYXNlIkRlbGV0ZSI6cmV0dXJuIEZlLkRlbGV0ZTtjYXNlIk1ldGEiOnJldHVybiBGZS5MZWZ0V2luZG93S2V5O2Nhc2UiQ29udGV4dE1lbnUiOnJldHVybiBGZS5TZWxlY3RLZXk7Y2FzZSJOdW1Mb2NrIjpyZXR1cm4gRmUuTnVtTG9jaztjYXNlIlNjcm9sbExvY2siOnJldHVybiBGZS5TY3JvbGxMb2NrO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXJlc29sdmVLZXlGcm9tS2V5Q29kZShlKXtyZXR1cm4gdHlwZW9mIGUhPSJudW1iZXIiP251bGw6dHlwZW9mIEZlW2VdPCJ1Ij9lOm51bGx9Y3JlYXRlS2V5Ym9hcmRFdmVudChlKXtsZXQgcj1lW2UubGVuZ3RoLTFdPz9GZS5FbnRlcixhPXRoaXMuZ2V0S2V5RGVzY3JpcHRvcihyKTtyZXR1cm4gbmV3IEtleWJvYXJkRXZlbnQoImtleWRvd24iLHtrZXk6YS5rZXksY29kZTphLmNvZGUsY3RybEtleTplLmluY2x1ZGVzKEZlLkN0cmwpLHNoaWZ0S2V5OmUuaW5jbHVkZXMoRmUuU2hpZnQpLGFsdEtleTplLmluY2x1ZGVzKEZlLkFsdCksbWV0YUtleTplLmluY2x1ZGVzKEZlLkxlZnRXaW5kb3dLZXkpfHxlLmluY2x1ZGVzKEZlLlJpZ2h0V2luZG93S2V5KX0pfWdldEtleURlc2NyaXB0b3IoZSl7c3dpdGNoKGUpe2Nhc2UgRmUuQ3RybDpyZXR1cm57a2V5OiJDb250cm9sIixjb2RlOiJDb250cm9sTGVmdCJ9O2Nhc2UgRmUuU2hpZnQ6cmV0dXJue2tleToiU2hpZnQiLGNvZGU6IlNoaWZ0TGVmdCJ9O2Nhc2UgRmUuQWx0OnJldHVybntrZXk6IkFsdCIsY29kZToiQWx0TGVmdCJ9O2Nhc2UgRmUuRW50ZXI6cmV0dXJue2tleToiRW50ZXIiLGNvZGU6IkVudGVyIn07Y2FzZSBGZS5TcGFjZTpyZXR1cm57a2V5OiIgIixjb2RlOiJTcGFjZSJ9O2RlZmF1bHQ6e2xldCByPUZlW2VdO2lmKHImJnIubGVuZ3RoPT09MSYmcj49IkEiJiZyPD0iWiIpcmV0dXJue2tleTpyLnRvTG93ZXJDYXNlKCksY29kZTpgS2V5JHtyfWB9O2lmKGU+PUZlLlplcm8mJmU8PUZlLk5pbmUpe2xldCBhPVN0cmluZyhlLUZlLlplcm8pO3JldHVybntrZXk6YSxjb2RlOmBEaWdpdCR7YX1gfX1yZXR1cm57a2V5OnI/PyJVbmlkZW50aWZpZWQiLGNvZGU6IlVuaWRlbnRpZmllZCJ9fX19fX0pO3ZhciBTMCxUeD11KCgpPT57X3goKTt1a2UoKTtNRnQoKTtrbGUoKTtDRnQoKTt6RnQoKTtTMD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkRvbVRvb2xzIil9c3RhdGljIGluaXRpYWxpemF0aW9uUHJvbWlzZT1udWxsO3N0YXRpYyBhc3luYyBzZXR1cERvbVRvb2xzKGU9e30pe2lmKGUuaWdub3JlR2xvYmFsKXtsZXQgcj1uZXcgdChlKTtyZXR1cm4gYXdhaXQgci5pbml0aWFsaXphdGlvblByb21pc2Uscn1pZihnbG9iYWxUaGlzLmRlZXNEb21Ub29scyYmIWdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzLmRpc3Bvc2VkKXJldHVybiBhd2FpdCBnbG9iYWxUaGlzLmRlZXNEb21Ub29scy5pbml0aWFsaXphdGlvblByb21pc2UsZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM7aWYoIXQuaW5pdGlhbGl6YXRpb25Qcm9taXNlKXtsZXQgcj1uZXcgdChlKTtnbG9iYWxUaGlzLmRlZXNEb21Ub29scz1yLHQuaW5pdGlhbGl6YXRpb25Qcm9taXNlPXIuaW5pdGlhbGl6YXRpb25Qcm9taXNlLnRoZW4oKCk9PnIpLmNhdGNoKGE9Pnt0aHJvdyBnbG9iYWxUaGlzLmRlZXNEb21Ub29scz09PXImJihnbG9iYWxUaGlzLmRlZXNEb21Ub29scz12b2lkIDApLHQuaW5pdGlhbGl6YXRpb25Qcm9taXNlPW51bGwsYX0pfXJldHVybiBhd2FpdCB0LmluaXRpYWxpemF0aW9uUHJvbWlzZX1zdGF0aWMgZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCl7bGV0IGU9Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM7aWYoIWV8fGUuZGlzcG9zZWQpdGhyb3cgbmV3IEVycm9yKCJZb3UgdHJpZWQgdG8gYWNjZXNzIGRvbXRvb2xzIHN5bmNocm9ub3VzbHkgdG9vIGVhcmx5Iik7cmV0dXJuIGV9ZWxlbWVudHM9e2hlYWRFbGVtZW50Om51bGwsYm9keUVsZW1lbnQ6bnVsbH07d2Vic2V0dXA9bmV3IFpNKHttZXRhT2JqZWN0Ont0aXRsZToiIn19KTtzbWFydHN0YXRlPW5ldyBOaC5TbWFydHN0YXRlO2RvbVRvb2xzU3RhdGVQYXJ0PXRoaXMuc21hcnRzdGF0ZS5nZXRTdGF0ZVBhcnQoImRvbXRvb2xzIix7dmlydHVhbFZpZXdwb3J0OiJuYXRpdmUiLGp3dDoiIn0pO3JvdXRlcj1uZXcgUGguU21hcnRSb3V0ZXIoe2RlYnVnOiExfSk7Y29udmVuaWVuY2U9e3R5cGVkcmVxdWVzdDptMSxzbWFydGRlbGF5Okt0LHNtYXJ0anNvbjpIcyxzbWFydHVybDpIMn07ZGVlc0NvbW1zPW5ldyBEUy5EZWVzQ29tbXM7c2Nyb2xsZXI9bmV3IE1sZSh0aGlzKTt0aGVtZU1hbmFnZXI9bmV3IENsZSh0aGlzKTtrZXlib2FyZD1udWxsO2Rpc3Bvc2VkPSExO2RvbVRvb2xzUmVhZHk9eHQuZGVmZXIoKTtkb21SZWFkeT14dC5kZWZlcigpO2dsb2JhbFN0eWxlc1JlYWR5PXh0LmRlZmVyKCk7aW5pdGlhbGl6YXRpb25Qcm9taXNlO21hbmFnZWREb21Ob2Rlcz1bXTtyZWFkeVN0YXRlQ2hhbmdlZEZ1bmM9aSgoKT0+e3RoaXMudHJ5TWFya0RvbVJlYWR5KCl9LCJyZWFkeVN0YXRlQ2hhbmdlZEZ1bmMiKTtjb25zdHJ1Y3RvcihlKXt0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZT10aGlzLmluaXRpYWxpemUoKX1ydW5PbmNlUHJvbWlzZU1hcD1uZXcgTWFwO2FzeW5jIGluaXRpYWxpemUoKXt0aGlzLnRyeU1hcmtEb21SZWFkeSgpLHRoaXMuZG9tUmVhZHkuc3RhdHVzPT09InBlbmRpbmciJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIix0aGlzLnJlYWR5U3RhdGVDaGFuZ2VkRnVuYyksdGhpcy5kb21Ub29sc1JlYWR5LnN0YXR1cz09PSJwZW5kaW5nIiYmdGhpcy5kb21Ub29sc1JlYWR5LnJlc29sdmUoKX10cnlNYXJrRG9tUmVhZHkoKXt0aGlzLmRpc3Bvc2VkfHx0aGlzLmRvbVJlYWR5LnN0YXR1cyE9PSJwZW5kaW5nInx8ZG9jdW1lbnQucmVhZHlTdGF0ZSE9PSJpbnRlcmFjdGl2ZSImJmRvY3VtZW50LnJlYWR5U3RhdGUhPT0iY29tcGxldGUifHwhZG9jdW1lbnQuaGVhZHx8IWRvY3VtZW50LmJvZHl8fCh0aGlzLmVsZW1lbnRzLmhlYWRFbGVtZW50PWRvY3VtZW50LmhlYWQsdGhpcy5lbGVtZW50cy5ib2R5RWxlbWVudD1kb2N1bWVudC5ib2R5LHRoaXMua2V5Ym9hcmR8fCh0aGlzLmtleWJvYXJkPW5ldyB6bGUoZG9jdW1lbnQuYm9keSkpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHRoaXMucmVhZHlTdGF0ZUNoYW5nZWRGdW5jKSx0aGlzLmRvbVJlYWR5LnJlc29sdmUoKSl9dHJhY2tNYW5hZ2VkRG9tTm9kZShlKXtyZXR1cm4gdGhpcy5tYW5hZ2VkRG9tTm9kZXMucHVzaChlKSxlfWdldEhlYWRPckJvZHlFbGVtZW50KCl7bGV0IGU9dGhpcy5lbGVtZW50cy5oZWFkRWxlbWVudHx8ZG9jdW1lbnQuaGVhZHx8dGhpcy5lbGVtZW50cy5ib2R5RWxlbWVudHx8ZG9jdW1lbnQuYm9keTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkRvbVRvb2xzIGNvdWxkIG5vdCBmaW5kIGEgRE9NIHRhcmdldCBlbGVtZW50IHRvIGF0dGFjaCByZXNvdXJjZXMgdG8iKTtyZXR1cm4gZX1hc3luYyBydW5PbmNlKGUscil7bGV0IGE9dGhpcy5ydW5PbmNlUHJvbWlzZU1hcC5nZXQoZSk7cmV0dXJuIGF8fChhPVByb21pc2UucmVzb2x2ZSgpLnRoZW4oYXN5bmMoKT0+YXdhaXQgcigpKSx0aGlzLnJ1bk9uY2VQcm9taXNlTWFwLnNldChlLGEpKSxhd2FpdCBhfWFzeW5jIHNldEdsb2JhbFN0eWxlcyhlKXthd2FpdCB0aGlzLmRvbVJlYWR5LnByb21pc2U7bGV0IHI9dGhpcy50cmFja01hbmFnZWREb21Ob2RlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIikpO3IudHlwZT0idGV4dC9jc3MiLHIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSkpLHRoaXMuZ2V0SGVhZE9yQm9keUVsZW1lbnQoKS5hcHBlbmRDaGlsZChyKX1hc3luYyBzZXRFeHRlcm5hbFNjcmlwdChlKXthd2FpdCB0aGlzLmRvbVJlYWR5LnByb21pc2U7bGV0IHI9eHQuZGVmZXIoKSxhPXRoaXMudHJhY2tNYW5hZ2VkRG9tTm9kZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSk7YS5zcmM9ZSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57ci5yZXNvbHZlKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e3IucmVqZWN0KG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgc2NyaXB0OiAke2V9YCkpfSksdGhpcy5nZXRIZWFkT3JCb2R5RWxlbWVudCgpLmFwcGVuZChhKSxhd2FpdCByLnByb21pc2V9YXN5bmMgc2V0RXh0ZXJuYWxDc3MoZSl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCByPXh0LmRlZmVyKCksYT10aGlzLnRyYWNrTWFuYWdlZERvbU5vZGUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpKTthLnJlbD0ic3R5bGVzaGVldCIsYS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixhLmhyZWY9ZSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57ci5yZXNvbHZlKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e3IucmVqZWN0KG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgc3R5bGVzaGVldDogJHtlfWApKX0pLHRoaXMuZ2V0SGVhZE9yQm9keUVsZW1lbnQoKS5hcHBlbmQoYSksYXdhaXQgci5wcm9taXNlfWFzeW5jIHNldFdlYnNpdGVJbmZvKGUpe2F3YWl0IHRoaXMud2Vic2V0dXAuc2V0dXAoZSksYXdhaXQgdGhpcy53ZWJzZXR1cC5yZWFkeVByb21pc2V9ZGlzcG9zZSgpe2lmKCF0aGlzLmRpc3Bvc2VkKXt0aGlzLmRpc3Bvc2VkPSEwLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHRoaXMucmVhZHlTdGF0ZUNoYW5nZWRGdW5jKSx0aGlzLmtleWJvYXJkPy5kaXNwb3NlKCksdGhpcy5rZXlib2FyZD1udWxsLHRoaXMuc2Nyb2xsZXIuZGlzcG9zZSgpLHRoaXMudGhlbWVNYW5hZ2VyLmRpc3Bvc2UoKTtmb3IobGV0IGUgb2YgdGhpcy5tYW5hZ2VkRG9tTm9kZXMpZS5yZW1vdmUoKTt0aGlzLm1hbmFnZWREb21Ob2Rlcy5sZW5ndGg9MCxnbG9iYWxUaGlzLmRlZXNEb21Ub29scz09PXRoaXMmJihnbG9iYWxUaGlzLmRlZXNEb21Ub29scz12b2lkIDAsdC5pbml0aWFsaXphdGlvblByb21pc2U9bnVsbCl9fX19KTt2YXIgX2xlLF9GdCxURnQ9dSgoKT0+e1R4KCk7eWwoKTtfbGU9KCgpPT57bGV0IHQ9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNYWMgT1MgWCIpPT09LTE/JHJgYC5jc3NUZXh0OiIiO3JldHVybiAkcmAKICAgIC8qIHdpZHRoICovCiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgd2lkdGg6IDBweDsKICAgIH0KICAgIGJvZHkgewogICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7CiAgICB9CiAgYC5jc3NUZXh0fSkoKSxfRnQ9JHJgCiAgLyoKICBAZm9udC1mYWNlIHsKICAgIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnOwogICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tYXRlcmlhbGljb25zL3Y0Mi9mbFVoUnE2dHpaY2xRRUotVmRnLUl1aWFEc05jSWhROHRRLndvZmYyKQogICAgICBmb3JtYXQoJ3dvZmYyJyk7CiAgfSAqLwoKICAvKiBnbG9iYWwgYm9keSBzdHlsZXMgKi8KICBib2R5IHsKICAgIG1hcmdpbjogMHB4OwogICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgc2Fucy1zZXJpZjsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQoKICAvKiBzY3JvbGwgYmFyIHN0eWxlcyAqLwogICR7TmEoX2xlKX0KYC5jc3NUZXh0fSk7dmFyIEx4PXt9O1ZlKEx4LHtzZXR1cDooKT0+UjVhLHN0YXRpY1N0eWxlczooKT0+TjVhLHN0eWxlczooKT0+TzVhfSk7dmFyIE41YSxPNWEsUjVhLExGdD11KCgpPT57VHgoKTtURnQoKTt5bCgpO041YT0kcmAKICAqIHsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQoKICA6aG9zdCB7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgc2Fucy1zZXJpZjsKICB9CgogICR7TmEoX2xlKX0KYCxPNWE9UWVgCiAgPHN0eWxlPgogICAgKiB7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KCiAgICA6aG9zdCB7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICB9CgogICAgJHtfbGV9CiAgPC9zdHlsZT4KYCxSNWE9aShhc3luYyh0LGU9e30pPT57bGV0IHI9YXdhaXQgUzAuc2V0dXBEb21Ub29scyhlKTtyZXR1cm4gYXdhaXQgci5ydW5PbmNlKCJlbGVtZW50QmFzaWNTZXR1cCIsYXN5bmMoKT0+e2F3YWl0IHIuc2V0R2xvYmFsU3R5bGVzKF9GdCl9KSxyLmdsb2JhbFN0eWxlc1JlYWR5LnN0YXR1cz09PSJwZW5kaW5nIiYmci5nbG9iYWxTdHlsZXNSZWFkeS5yZXNvbHZlKCksYXdhaXQgci5nbG9iYWxTdHlsZXNSZWFkeS5wcm9taXNlLHJ9LCJzZXR1cCIpfSk7dmFyIFRsZT17fTtWZShUbGUse2Nzc0dyaWRDb2x1bW5zOigpPT5GNWF9KTt2YXIgRjVhLERGdD11KCgpPT57RjVhPWkoKHQsZSk9PntsZXQgcj0iIjtmb3IobGV0IGE9MDthPHQ7YSsrKXIrPWAgY2FsYygoMTAwJS8ke3R9KSAtICgke2UqKHQtMSl9cHgvJHt0fSkpYDtyZXR1cm4gcn0sImNzc0dyaWRDb2x1bW5zIil9KTt2YXIgTGxlPXt9O1ZlKExsZSx7U3dlZXRTY3JvbGw6KCk9Pnp4LmRlZmF1bHQsc21hcnRkZWxheTooKT0+S3Qsc21hcnRtYXJrZG93bjooKT0+VU0sc21hcnRwcm9taXNlOigpPT54dCxzbWFydHJvdXRlcjooKT0+UGgsc21hcnRyeDooKT0+b2Esc21hcnRzdGF0ZTooKT0+Tmgsc21hcnRzdHJpbmc6KCk9PkJzLHNtYXJ0dXJsOigpPT5IMix0eXBlZHJlcXVlc3Q6KCk9Pm0xfSk7dmFyICRGdD11KCgpPT57X3goKX0pO3ZhciBTMT17fTtWZShTMSx7RG9tVG9vbHM6KCk9PlMwLFR5cGVkUmVxdWVzdDooKT0+QVMsYnJlYWtwb2ludHM6KCk9PlNpLGNzczooKT0+VGxlLGVsZW1lbnRCYXNpYzooKT0+THgscGx1Z2luczooKT0+TGxlfSk7dmFyIFhNPXUoKCk9PntoeXQoKTtMRnQoKTt1a2UoKTtERnQoKTtUeCgpO2hvZSgpO2tsZSgpOyRGdCgpfSk7dmFyIHBrZSxGdSxma2U9dSgoKT0+e3BrZT1HYSh2aygpLDEpO1pjKCk7eWwoKTtmeXQoKTtYTSgpO0Z1PXtjc3M6JHIsdW5zYWZlQ1NTOk5hLExpdEVsZW1lbnQ6QWQscHJvcGVydHk6SGZ9fSk7dmFyIERsZSxFRnQ9dSgoKT0+e3lsKCk7ZmtlKCk7WE0oKTtEbGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJDc3NNYW5hZ2VyIil9c3RhdGljIGluc3RhbmNlPW51bGw7c3RhdGljIGdldFNpbmdsZXRvbigpe3JldHVybiB0Lmluc3RhbmNlfHwodC5pbnN0YW5jZT1uZXcgdCksdC5pbnN0YW5jZX1kb210b29sc1Byb21pc2U9UzAuc2V0dXBEb21Ub29scygpO2dvQnJpZ2h0PSExO2JkVmFyVHJpcGxldFN0b3JlPVtdO2NvbnN0cnVjdG9yKCl7dGhpcy5kb210b29sc1Byb21pc2UudGhlbihhc3luYyBlPT57ZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShhc3luYyByPT57dGhpcy5nb0JyaWdodD1yLGF3YWl0IGUuZG9tUmVhZHkucHJvbWlzZTtmb3IobGV0IGEgb2YgdGhpcy5iZFZhclRyaXBsZXRTdG9yZSlkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KGEuY3NzVmFyTmFtZSx0aGlzLmdvQnJpZ2h0P2EuYnJpZ2h0VmFsdWU6YS5kYXJrVmFsdWUpfSl9KX1nZXQgZGVmYXVsdFN0eWxlcygpe3JldHVybiBMeC5zdGF0aWNTdHlsZXN9Z2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhlKXtyZXR1cm4gZS5pc3x8ZS5uYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX1jc3NGb3JEZXNrdG9wKGUscil7cmV0dXJuIHI/TmEoU2kuY3NzRm9yQ29udGFpbmVyKGUsYChtaW4td2lkdGg6ICR7U2kuZGVza3RvcH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhyKSkpOk5hKFNpLmNzc0ZvckRlc2t0b3AoZSkpfWNzc0Zvck5vdGVib29rKGUscil7cmV0dXJuIHI/TmEoU2kuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7U2kubm90ZWJvb2t9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3MocikpKTpOYShTaS5jc3NGb3JOb3RlYm9vayhlKSl9Y3NzRm9yVGFibGV0KGUscil7cmV0dXJuIHI/TmEoU2kuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7U2kudGFibGV0fXB4KWAsdGhpcy5nZXRDb250YWluZXJOYW1lRnJvbUNsYXNzKHIpKSk6TmEoU2kuY3NzRm9yVGFibGV0KGUpKX1jc3NGb3JQaGFibGV0KGUscil7cmV0dXJuIHI/TmEoU2kuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7U2kucGhhYmxldH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhyKSkpOk5hKFNpLmNzc0ZvclBoYWJsZXQoZSkpfWNzc0ZvclBob25lKGUscil7cmV0dXJuIHI/TmEoU2kuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7U2kucGhvbmV9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3MocikpKTpOYShTaS5jc3NGb3JQaG9uZShlKSl9Y3NzRm9yQ29uc3RyYWludChlKXtyZXR1cm4gcj0+TmEoU2kuY3NzRm9yQ29uc3RyYWludChlKShyKSl9YmRUaGVtZShlLHIpe2xldCBhLHM7UzAuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCk/cz1TMC5nZXRHbG9iYWxEb21Ub29sc1N5bmMoKS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuP2U6cjpzPXI7bGV0IG49dGhpcy5iZFZhclRyaXBsZXRTdG9yZS5maW5kKG89Pm8uZGFya1ZhbHVlPT09ciYmby5icmlnaHRWYWx1ZT09PWUpO2lmKG4pYT1uLmNzc1Zhck5hbWU7ZWxzZXtsZXQgbz17Y3NzVmFyTmFtZTpgLS0ke3BrZS51bmkoKX1gLGJyaWdodFZhbHVlOmUsZGFya1ZhbHVlOnJ9O3RoaXMuYmRWYXJUcmlwbGV0U3RvcmUucHVzaChvKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIGw9Pnthd2FpdCBsLmRvbVJlYWR5LnByb21pc2UsZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShvLmNzc1Zhck5hbWUscyl9KSxhPW8uY3NzVmFyTmFtZX1yZXR1cm4gRnUudW5zYWZlQ1NTKGB2YXIoJHthfSwgJHtzfSlgKX1jc3NHcmlkQ29sdW1ucz1pKChlLHIpPT57bGV0IGE9IiI7Zm9yKGxldCBzPTA7czxlO3MrKylhKz1gIGNhbGMoKDEwMCUvJHtlfSkgLSAoJHtyKihlLTEpfXB4LyR7ZX0pKWA7cmV0dXJuIEZ1LnVuc2FmZUNTUyhhKX0sImNzc0dyaWRDb2x1bW5zIil9fSk7dmFyIGhrZSxCNWEsbWtlLEg1YSxJRnQsJGxlLGdrZSxxNWEsVjVhLFBGdD11KCgpPT57eDIoKTtoa2U9U3ltYm9sLmZvcigiIiksQjVhPWkodD0+e2lmKHQ/LnI9PT1oa2UpcmV0dXJuIHQ/Ll8kbGl0U3RhdGljJH0sIm8iKSxta2U9aSh0PT4oe18kbGl0U3RhdGljJDp0LHI6aGtlfSksInMiKSxINWE9aSgodCwuLi5lKT0+KHtfJGxpdFN0YXRpYyQ6ZS5yZWR1Y2UoKHIsYSxzKT0+cisobj0+e2lmKG4uXyRsaXRTdGF0aWMkIT09dm9pZCAwKXJldHVybiBuLl8kbGl0U3RhdGljJDt0aHJvdyBFcnJvcihgVmFsdWUgcGFzc2VkIHRvICdsaXRlcmFsJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2xpdGVyYWwnIHJlc3VsdDogJHtufS4gVXNlICd1bnNhZmVTdGF0aWMnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQKICAgICAgICAgICAgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LmApfSkoYSkrdFtzKzFdLHRbMF0pLHI6aGtlfSksImkiKSxJRnQ9bmV3IE1hcCwkbGU9aSh0PT4oZSwuLi5yKT0+e2xldCBhPXIubGVuZ3RoLHMsbixvPVtdLGw9W10sYyxkPTAsZj0hMTtmb3IoO2Q8YTspe2ZvcihjPWVbZF07ZDxhJiYobj1yW2RdLChzPUI1YShuKSkhPT12b2lkIDApOyljKz1zK2VbKytkXSxmPSEwO2QhPT1hJiZsLnB1c2gobiksby5wdXNoKGMpLGQrK31pZihkPT09YSYmby5wdXNoKGVbYV0pLGYpe2xldCBwPW8uam9pbigiJCRsaXQkJCIpOyhlPUlGdC5nZXQocCkpPT09dm9pZCAwJiYoby5yYXc9byxJRnQuc2V0KHAsZT1vKSkscj1sfXJldHVybiB0KGUsLi4ucil9LCJuIiksZ2tlPSRsZShRZSkscTVhPSRsZShCbWUpLFY1YT0kbGUoSG1lKX0pO3ZhciBORnQ9dSgoKT0+e1BGdCgpfSk7dmFyIE0wLHdzLE5sLGQ0PXUoKCk9PntNMD17QVRUUklCVVRFOjEsQ0hJTEQ6MixQUk9QRVJUWTozLEJPT0xFQU5fQVRUUklCVVRFOjQsRVZFTlQ6NSxFTEVNRU5UOjZ9LHdzPWkodD0+KC4uLmUpPT4oe18kbGl0RGlyZWN0aXZlJDp0LHZhbHVlczplfSksImUiKSxObD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoZSl7fWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQVQoZSxyLGEpe3RoaXMuXyRDdD1lLHRoaXMuXyRBTT1yLHRoaXMuXyRDaT1hfV8kQVMoZSxyKXtyZXR1cm4gdGhpcy51cGRhdGUoZSxyKX11cGRhdGUoZSxyKXtyZXR1cm4gdGhpcy5yZW5kZXIoLi4ucil9fX0pO3ZhciBEeCxia2UsT0Z0PXUoKCk9Pnt4MigpO2Q0KCk7RHg9Y2xhc3MgZXh0ZW5kcyBObHtzdGF0aWN7aSh0aGlzLCJlIil9Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksdGhpcy5pdD1iaSxlLnR5cGUhPT1NMC5DSElMRCl0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgYmluZGluZ3MiKX1yZW5kZXIoZSl7aWYoZT09PWJpfHxlPT1udWxsKXJldHVybiB0aGlzLl90PXZvaWQgMCx0aGlzLml0PWU7aWYoZT09PWFpKXJldHVybiBlO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbGxlZCB3aXRoIGEgbm9uLXN0cmluZyB2YWx1ZSIpO2lmKGU9PT10aGlzLml0KXJldHVybiB0aGlzLl90O3RoaXMuaXQ9ZTtsZXQgcj1bZV07cmV0dXJuIHIucmF3PXIsdGhpcy5fdD17XyRsaXRUeXBlJDp0aGlzLmNvbnN0cnVjdG9yLnJlc3VsdFR5cGUsc3RyaW5nczpyLHZhbHVlczpbXX19fTtEeC5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVIVE1MIixEeC5yZXN1bHRUeXBlPTE7YmtlPXdzKER4KX0pO3ZhciBSRnQ9dSgoKT0+e09GdCgpfSk7dmFyIHhrZSx2a2U9dSgoKT0+e3hrZT1pKHQ9PihlLHIpPT57ciE9PXZvaWQgMD9yLmFkZEluaXRpYWxpemVyKCgpPT57Y3VzdG9tRWxlbWVudHMuZGVmaW5lKHQsZSl9KTpjdXN0b21FbGVtZW50cy5kZWZpbmUodCxlKX0sInQiKX0pO3ZhciBGRnQ9dSgoKT0+e3ZrZSgpfSk7ZnVuY3Rpb24gdmkodCl7cmV0dXJuKGUscik9PntpZihlLmlzPXQsZS5uYW1lKXtsZXQgYT1qNWEoZS5uYW1lKTthIT09dCYmY29uc29sZS53YXJuKGBbZGVlcy1lbGVtZW50XSBDbGFzcyAiJHtlLm5hbWV9IiBrZWJhYi1jYXNlcyB0byAiJHthfSIgYnV0IHRhZyBpcyAiJHt0fSIuIENvbnRhaW5lciBxdWVyaWVzIHVzZSAuaXMgKCIke3R9IikuYCl9cmV0dXJuIHhrZSh0KShlLHIpfX12YXIgajVhLEJGdD11KCgpPT57RkZ0KCk7ajVhPWkodD0+dC5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksImNhbWVsVG9LZWJhYiIpO2kodmksImN1c3RvbUVsZW1lbnQiKX0pO2Z1bmN0aW9uIFp0KHQpe3JldHVybiBIZih7Li4udCxzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX12YXIgSEZ0PXUoKCk9PntUaWUoKTtpKFp0LCJyIil9KTtmdW5jdGlvbiBVNWEodCl7cmV0dXJuKGUscik9PntsZXQgYT10eXBlb2YgZT09ImZ1bmN0aW9uIj9lOmVbcl07T2JqZWN0LmFzc2lnbihhLHQpfX12YXIgcUZ0PXUoKCk9PntpKFU1YSwidCIpfSk7dmFyIE9sLCR4PXUoKCk9PntPbD1pKCh0LGUscik9PihyLmNvbmZpZ3VyYWJsZT0hMCxyLmVudW1lcmFibGU9ITAsUmVmbGVjdC5kZWNvcmF0ZSYmdHlwZW9mIGUhPSJvYmplY3QiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHIpLHIpLCJlIil9KTtmdW5jdGlvbiB5a2UodCxlKXtyZXR1cm4ocixhLHMpPT57bGV0IG49aShvPT5vLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IodCk/P251bGwsIm8iKTtpZihlKXtsZXR7Z2V0Om8sc2V0Omx9PXR5cGVvZiBhPT0ib2JqZWN0Ij9yOnM/PygoKT0+e2xldCBjPVN5bWJvbCgpO3JldHVybntnZXQoKXtyZXR1cm4gdGhpc1tjXX0sc2V0KGQpe3RoaXNbY109ZH19fSkoKTtyZXR1cm4gT2wocixhLHtnZXQoKXtsZXQgYz1vLmNhbGwodGhpcyk7cmV0dXJuIGM9PT12b2lkIDAmJihjPW4odGhpcyksKGMhPT1udWxsfHx0aGlzLmhhc1VwZGF0ZWQpJiZsLmNhbGwodGhpcyxjKSksY319KX1yZXR1cm4gT2wocixhLHtnZXQoKXtyZXR1cm4gbih0aGlzKX19KX19dmFyIFZGdD11KCgpPT57JHgoKTtpKHlrZSwiZSIpfSk7ZnVuY3Rpb24gd2tlKHQpe3JldHVybihlLHIpPT5PbChlLHIse2dldCgpe3JldHVybih0aGlzLnJlbmRlclJvb3Q/PyhXNWE/Pz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpKS5xdWVyeVNlbGVjdG9yQWxsKHQpfX0pfXZhciBXNWEsakZ0PXUoKCk9PnskeCgpO2kod2tlLCJyIil9KTtmdW5jdGlvbiBra2UodCl7cmV0dXJuKGUscik9Pk9sKGUscix7YXN5bmMgZ2V0KCl7cmV0dXJuIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKHQpPz9udWxsfX0pfXZhciBVRnQ9dSgoKT0+eyR4KCk7aShra2UsInIiKX0pO2Z1bmN0aW9uIEc1YSh0KXtyZXR1cm4oZSxyKT0+e2xldHtzbG90OmEsc2VsZWN0b3I6c309dD8/e30sbj0ic2xvdCIrKGE/YFtuYW1lPSR7YX1dYDoiOm5vdChbbmFtZV0pIik7cmV0dXJuIE9sKGUscix7Z2V0KCl7bGV0IG89dGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKG4pLGw9bz8uYXNzaWduZWRFbGVtZW50cyh0KT8/W107cmV0dXJuIHM9PT12b2lkIDA/bDpsLmZpbHRlcihjPT5jLm1hdGNoZXMocykpfX0pfX12YXIgV0Z0PXUoKCk9PnskeCgpO2koRzVhLCJvIil9KTtmdW5jdGlvbiBZNWEodCl7cmV0dXJuKGUscik9PntsZXR7c2xvdDphfT10Pz97fSxzPSJzbG90IisoYT9gW25hbWU9JHthfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gT2woZSxyLHtnZXQoKXtyZXR1cm4gdGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKHMpPy5hc3NpZ25lZE5vZGVzKHQpPz9bXX19KX19dmFyIEdGdD11KCgpPT57JHgoKTtpKFk1YSwibiIpfSk7dmFyIFlGdD11KCgpPT57dmtlKCk7VGllKCk7SEZ0KCk7cUZ0KCk7VkZ0KCk7akZ0KCk7VUZ0KCk7V0Z0KCk7R0Z0KCl9KTt2YXIgS0Z0LEFsZSx5aSxaRnQ9dSgoKT0+e2ZrZSgpO3lsKCk7S0Z0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxBbGU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHlpPSgoKT0+e2xldCB0PUZ1LkxpdEVsZW1lbnQsZSxyPVtdLGE9W10scyxuPVtdLG89W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtzdGF0aWN7aSh0aGlzLCJEZWVzRWxlbWVudCIpfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZSh0W1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtGdS5wcm9wZXJ0eSh7dHlwZTpCb29sZWFufSldLHM9W0Z1LnByb3BlcnR5KCldLEtGdCh0aGlzLG51bGwsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdvQnJpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGQ9PiJnb0JyaWdodCJpbiBkLCJoYXMiKSxnZXQ6aShkPT5kLmdvQnJpZ2h0LCJnZXQiKSxzZXQ6aSgoZCxmKT0+e2QuZ29CcmlnaHQ9Zn0sInNldCIpfSxtZXRhZGF0YTpjfSxyLGEpLEtGdCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRvbXRvb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGQ9PiJkb210b29scyJpbiBkLCJoYXMiKSxnZXQ6aShkPT5kLmRvbXRvb2xzLCJnZXQiKSxzZXQ6aSgoZCxmKT0+e2QuZG9tdG9vbHM9Zn0sInNldCIpfSxtZXRhZGF0YTpjfSxuLG8pLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBnZXRDb250YWluZXJOYW1lKCl7cmV0dXJuIHRoaXMuaXN8fHRoaXMubmFtZS5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCl9c3RhdGljIGNzc0ZvckNvbnN0cmFpbnQoYyl7cmV0dXJuIGQ9PlMxLmJyZWFrcG9pbnRzLmNzc0ZvckNvbnN0cmFpbnRDb250YWluZXIoYyx0aGlzLmdldENvbnRhaW5lck5hbWUoKSkoZCl9I2U9QWxlKHRoaXMsciwhMSk7Z2V0IGdvQnJpZ2h0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGdvQnJpZ2h0KGMpe3RoaXMuI2U9Y31kb210b29sc1Byb21pc2U9QWxlKHRoaXMsYSk7I3Q9QWxlKHRoaXMsbix2b2lkIDApO2dldCBkb210b29scygpe3JldHVybiB0aGlzLiN0fXNldCBkb210b29scyhjKXt0aGlzLiN0PWN9cnhTdWJzY3JpcHRpb25zPShBbGUodGhpcyxvKSxbXSk7dGhlbWVTdWJzY3JpcHRpb247ZWxlbWVudERvbVJlYWR5RGVmZXJyZWQ9UzEucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtlbGVtZW50RG9tUmVhZHk9dGhpcy5lbGVtZW50RG9tUmVhZHlEZWZlcnJlZC5wcm9taXNlO2NvbnN0cnVjdG9yKGM9e30pe3N1cGVyKCksdGhpcy5kb210b29sc1Byb21pc2U9UzEuZWxlbWVudEJhc2ljLnNldHVwKHRoaXMsYyksdGhpcy5kb210b29sc1Byb21pc2UudGhlbihkPT57dGhpcy5kb210b29scz1kfSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO2xldCBjPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMudGhlbWVTdWJzY3JpcHRpb249Yy50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShkPT57dGhpcy5nb0JyaWdodD1kLHRoaXMudGhlbWVDaGFuZ2VkJiZ0aGlzLnRoZW1lQ2hhbmdlZChkKX0pLHRoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godGhpcy50aGVtZVN1YnNjcmlwdGlvbik7Zm9yKGxldCBkIG9mIHRoaXMuc3RhcnR1cEZ1bmN0aW9ucylhd2FpdCBkKCk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVlc0VsZW1lbnRDb25uZWN0ZWQiKSl9Zmlyc3RVcGRhdGVkKGMpe3N1cGVyLmZpcnN0VXBkYXRlZChjKSx0aGlzLmVsZW1lbnREb21SZWFkeURlZmVycmVkLnJlc29sdmUoKX1zdGFydHVwRnVuY3Rpb25zPVtdO3JlZ2lzdGVyU3RhcnR1cEZ1bmN0aW9uKGMpe3RoaXMuc3RhcnR1cEZ1bmN0aW9ucy5wdXNoKGMpfWdhcmJhZ2VGdW5jdGlvbnM9W107cmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oYyl7dGhpcy5nYXJiYWdlRnVuY3Rpb25zLnB1c2goYyl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO2ZvcihsZXQgYyBvZiB0aGlzLnJ4U3Vic2NyaXB0aW9ucyljLnVuc3Vic2NyaWJlKCk7Zm9yKGxldCBjIG9mIHRoaXMuZ2FyYmFnZUZ1bmN0aW9ucylhd2FpdCBjKCk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVlc0VsZW1lbnREaXNjb25uZWN0ZWQiKSl9fX0pKCl9KTtmdW5jdGlvbiBRRnQoKXtyZXR1cm4gZnVuY3Rpb24odCl7bGV0IGU9dC5pc3x8dC5uYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKSxyPXQubmFtZT9LNWEodC5uYW1lKTpudWxsO2lmKHImJnIhPT1lKXtsZXQgbj1pKGw9PmwmJmwuY3NzVGV4dCYmbC5jc3NUZXh0LmluY2x1ZGVzKGBAY29udGFpbmVyICR7cn1gKT9OYShsLmNzc1RleHQucmVwbGFjZUFsbChgQGNvbnRhaW5lciAke3J9YCxgQGNvbnRhaW5lciAke2V9YCkpOmwsImZpeFN0eWxlIiksbz10LnN0eWxlcztBcnJheS5pc0FycmF5KG8pP3Quc3R5bGVzPW8ubWFwKG4pOm8mJih0LnN0eWxlcz1uKG8pKX1sZXQgYT1TaS5jb250YWluZXJDb250ZXh0U3R5bGVzKGUpLHM9dC5zdHlsZXM7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/dC5zdHlsZXM9Wy4uLnMsYV06cz90LnN0eWxlcz1bcyxhXTp0LnN0eWxlcz1bYV0sdH19dmFyIEs1YSxYRnQ9dSgoKT0+e3lsKCk7WE0oKTtLNWE9aSh0PT50LnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKSwiY2FtZWxUb0tlYmFiIik7aShRRnQsImNvbnRhaW5lclJlc3BvbnNpdmUiKX0pO3ZhciBaNWEsSkZ0LFNrZSxRNWEsWDVhLEo1YSxlOGEsdDhhLE1rZSxlQnQsdTQscTIscjhhLEpNLENrZSxlQyx6a2UsQXg9dSgoKT0+e3gyKCk7KHtJOlo1YX09cW1lKSxKRnQ9aSh0PT50LCJpIiksU2tlPWkodD0+dD09PW51bGx8fHR5cGVvZiB0IT0ib2JqZWN0IiYmdHlwZW9mIHQhPSJmdW5jdGlvbiIsIm4iKSxRNWE9e0hUTUw6MSxTVkc6MixNQVRITUw6M30sWDVhPWkoKHQsZSk9PmU9PT12b2lkIDA/dD8uXyRsaXRUeXBlJCE9PXZvaWQgMDp0Py5fJGxpdFR5cGUkPT09ZSwibCIpLEo1YT1pKHQ9PnQ/Ll8kbGl0VHlwZSQ/LmghPW51bGwsImQiKSxlOGE9aSh0PT50Py5fJGxpdERpcmVjdGl2ZSQhPT12b2lkIDAsImMiKSx0OGE9aSh0PT50Py5fJGxpdERpcmVjdGl2ZSQsImYiKSxNa2U9aSh0PT50LnN0cmluZ3M9PT12b2lkIDAsInIiKSxlQnQ9aSgoKT0+ZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIiksInMiKSx1ND1pKCh0LGUscik9PntsZXQgYT10Ll8kQUEucGFyZW50Tm9kZSxzPWU9PT12b2lkIDA/dC5fJEFCOmUuXyRBQTtpZihyPT09dm9pZCAwKXtsZXQgbj1hLmluc2VydEJlZm9yZShlQnQoKSxzKSxvPWEuaW5zZXJ0QmVmb3JlKGVCdCgpLHMpO3I9bmV3IFo1YShuLG8sdCx0Lm9wdGlvbnMpfWVsc2V7bGV0IG49ci5fJEFCLm5leHRTaWJsaW5nLG89ci5fJEFNLGw9byE9PXQ7aWYobCl7bGV0IGM7ci5fJEFRPy4odCksci5fJEFNPXQsci5fJEFQIT09dm9pZCAwJiYoYz10Ll8kQVUpIT09by5fJEFVJiZyLl8kQVAoYyl9aWYobiE9PXN8fGwpe2xldCBjPXIuXyRBQTtmb3IoO2MhPT1uOyl7bGV0IGQ9SkZ0KGMpLm5leHRTaWJsaW5nO0pGdChhKS5pbnNlcnRCZWZvcmUoYyxzKSxjPWR9fX1yZXR1cm4gcn0sInYiKSxxMj1pKCh0LGUscj10KT0+KHQuXyRBSShlLHIpLHQpLCJ1IikscjhhPXt9LEpNPWkoKHQsZT1yOGEpPT50Ll8kQUg9ZSwicCIpLENrZT1pKHQ9PnQuXyRBSCwiTSIpLGVDPWkodD0+e3QuXyRBUigpLHQuXyRBQS5yZW1vdmUoKX0sImgiKSx6a2U9aSh0PT57dC5fJEFSKCl9LCJqIil9KTtmdW5jdGlvbiBhOGEodCl7dGhpcy5fJEFOIT09dm9pZCAwPyhFbGUodGhpcyksdGhpcy5fJEFNPXQsdEJ0KHRoaXMpKTp0aGlzLl8kQU09dH1mdW5jdGlvbiBpOGEodCxlPSExLHI9MCl7bGV0IGE9dGhpcy5fJEFILHM9dGhpcy5fJEFOO2lmKHMhPT12b2lkIDAmJnMuc2l6ZSE9PTApaWYoZSlpZihBcnJheS5pc0FycmF5KGEpKWZvcihsZXQgbj1yO248YS5sZW5ndGg7bisrKXRDKGFbbl0sITEpLEVsZShhW25dKTtlbHNlIGEhPW51bGwmJih0QyhhLCExKSxFbGUoYSkpO2Vsc2UgdEModGhpcyx0KX12YXIgdEMsRWxlLHRCdCxzOGEsWTEsSWxlPXUoKCk9PntBeCgpO2Q0KCk7ZDQoKTt0Qz1pKCh0LGUpPT57bGV0IHI9dC5fJEFOO2lmKHI9PT12b2lkIDApcmV0dXJuITE7Zm9yKGxldCBhIG9mIHIpYS5fJEFPPy4oZSwhMSksdEMoYSxlKTtyZXR1cm4hMH0sInMiKSxFbGU9aSh0PT57bGV0IGUscjtkb3tpZigoZT10Ll8kQU0pPT09dm9pZCAwKWJyZWFrO3I9ZS5fJEFOLHIuZGVsZXRlKHQpLHQ9ZX13aGlsZShyPy5zaXplPT09MCl9LCJvIiksdEJ0PWkodD0+e2ZvcihsZXQgZTtlPXQuXyRBTTt0PWUpe2xldCByPWUuXyRBTjtpZihyPT09dm9pZCAwKWUuXyRBTj1yPW5ldyBTZXQ7ZWxzZSBpZihyLmhhcyh0KSlicmVhaztyLmFkZCh0KSxzOGEoZSl9fSwiciIpO2koYThhLCJoIik7aShpOGEsIm4iKTtzOGE9aSh0PT57dC50eXBlPT1NMC5DSElMRCYmKHQuXyRBUD8/PWk4YSx0Ll8kQVE/Pz1hOGEpfSwiYyIpLFkxPWNsYXNzIGV4dGVuZHMgTmx7c3RhdGlje2kodGhpcywiZiIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQoZSxyLGEpe3N1cGVyLl8kQVQoZSxyLGEpLHRCdCh0aGlzKSx0aGlzLmlzQ29ubmVjdGVkPWUuXyRBVX1fJEFPKGUscj0hMCl7ZSE9PXRoaXMuaXNDb25uZWN0ZWQmJih0aGlzLmlzQ29ubmVjdGVkPWUsZT90aGlzLnJlY29ubmVjdGVkPy4oKTp0aGlzLmRpc2Nvbm5lY3RlZD8uKCkpLHImJih0Qyh0aGlzLGUpLEVsZSh0aGlzKSl9c2V0VmFsdWUoZSl7aWYoTWtlKHRoaXMuXyRDdCkpdGhpcy5fJEN0Ll8kQUkoZSx0aGlzKTtlbHNle2xldCByPVsuLi50aGlzLl8kQ3QuXyRBSF07clt0aGlzLl8kQ2ldPWUsdGhpcy5fJEN0Ll8kQUkocix0aGlzLDApfX1kaXNjb25uZWN0ZWQoKXt9cmVjb25uZWN0ZWQoKXt9fX0pO3ZhciBQbGU9dSgoKT0+e0lsZSgpfSk7dmFyIF9rZSxyQnQsbjhhLGFCdD11KCgpPT57eWwoKTtQbGUoKTtfa2U9Y2xhc3MgZXh0ZW5kcyBZMXtzdGF0aWN7aSh0aGlzLCJSZXNvbHZlRGlyZWN0aXZlIil9cHJvbWlzZTtoYXNQcm9taXNlU2V0dGxlZD0hMTtyZW5kZXIoZSl7cmV0dXJuIHRoaXMucHJvbWlzZSE9PWUmJih0aGlzLnByb21pc2U9ZSx0aGlzLmlzQ29ubmVjdGVkJiZ0aGlzLmhhbmRsZVByb21pc2UoZSkpLGFpfWhhbmRsZVByb21pc2UoZSl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMSxlLnRoZW4ocj0+e3RoaXMucHJvbWlzZT09PWUmJiF0aGlzLmhhc1Byb21pc2VTZXR0bGVkJiYodGhpcy5zZXRWYWx1ZShyKSx0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwKX0pLmNhdGNoKHI9Pnt0aGlzLnByb21pc2U9PT1lJiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUociksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwfXJlY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZHx8dGhpcy5oYW5kbGVQcm9taXNlKHRoaXMucHJvbWlzZSl9fSxyQnQ9d3MoX2tlKSxuOGE9aSh0PT5yQnQodCgpKSwicmVzb2x2ZUV4ZWMiKX0pO3ZhciBUa2UsbzhhLGlCdD11KCgpPT57eWwoKTtQbGUoKTtaYygpO1RrZT1jbGFzcyBleHRlbmRzIFkxe3N0YXRpY3tpKHRoaXMsIlN1YnNjcmliZURpcmVjdGl2ZSIpfW9ic2VydmFibGU7c3ViPW51bGw7cmVuZGVyKGUpe3JldHVybiB0aGlzLm9ic2VydmFibGUhPT1lJiYodGhpcy5zdWI/LnVuc3Vic2NyaWJlKCksdGhpcy5vYnNlcnZhYmxlPWUsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5zdWJzY3JpYmUoZSkpLGFpfXN1YnNjcmliZShlKXt0aGlzLnN1Yj1lLnN1YnNjcmliZShyPT57dGhpcy5zZXRWYWx1ZShyKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdWJzY3JpYmUodGhpcy5vYnNlcnZhYmxlKX19LG84YT13cyhUa2UpfSk7dmFyIExrZSxzQnQsbkJ0PXUoKCk9Pnt5bCgpO1BsZSgpO1pjKCk7TGtlPWNsYXNzIGV4dGVuZHMgWTF7c3RhdGlje2kodGhpcywiU3Vic2NyaWJlV2l0aFRlbXBsYXRlRGlyZWN0aXZlIil9b2JzZXJ2YWJsZTt0ZW1wbGF0ZUZuO3N1Yj1udWxsO3JlbmRlcihlLHIpe3JldHVybih0aGlzLm9ic2VydmFibGUhPT1lfHx0aGlzLnRlbXBsYXRlRm4hPT1yKSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT1lLHRoaXMudGVtcGxhdGVGbj1yLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3RhcnRTdWJzY3JpcHRpb24oKSksYWl9c3RhcnRTdWJzY3JpcHRpb24oKXt0aGlzLnN1Yj10aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKGU9PntsZXQgcj10aGlzLnRlbXBsYXRlRm4oZSk7dGhpcy5zZXRWYWx1ZShyKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdGFydFN1YnNjcmlwdGlvbigpfX0sc0J0PXdzKExrZSl9KTt2YXIgRGtlLEZoLEJoLCRrZT11KCgpPT57RGtlPWkoYXN5bmModCxlKT0+e2ZvciBhd2FpdChsZXQgciBvZiB0KWlmKGF3YWl0IGUocik9PT0hMSlyZXR1cm59LCJ0IiksRmg9Y2xhc3N7c3RhdGlje2kodGhpcywicyIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuRz1lfWRpc2Nvbm5lY3QoKXt0aGlzLkc9dm9pZCAwfXJlY29ubmVjdChlKXt0aGlzLkc9ZX1kZXJlZigpe3JldHVybiB0aGlzLkd9fSxCaD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoKXt0aGlzLlk9dm9pZCAwLHRoaXMuWj12b2lkIDB9Z2V0KCl7cmV0dXJuIHRoaXMuWX1wYXVzZSgpe3RoaXMuWT8/PW5ldyBQcm9taXNlKGU9PnRoaXMuWj1lKX1yZXN1bWUoKXt0aGlzLlo/LigpLHRoaXMuWT10aGlzLlo9dm9pZCAwfX19KTt2YXIgb0J0LGxCdCxObGUsQWtlLGNCdD11KCgpPT57eDIoKTtBeCgpO0lsZSgpOyRrZSgpO2Q0KCk7b0J0PWkodD0+IVNrZSh0KSYmdHlwZW9mIHQudGhlbj09ImZ1bmN0aW9uIiwibiIpLGxCdD0xMDczNzQxODIzLE5sZT1jbGFzcyBleHRlbmRzIFkxe3N0YXRpY3tpKHRoaXMsImMiKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJEN3dD1sQnQsdGhpcy5fJENidD1bXSx0aGlzLl8kQ0s9bmV3IEZoKHRoaXMpLHRoaXMuXyRDWD1uZXcgQmh9cmVuZGVyKC4uLmUpe3JldHVybiBlLmZpbmQocj0+IW9CdChyKSk/P2FpfXVwZGF0ZShlLHIpe2xldCBhPXRoaXMuXyRDYnQscz1hLmxlbmd0aDt0aGlzLl8kQ2J0PXI7bGV0IG49dGhpcy5fJENLLG89dGhpcy5fJENYO3RoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCk7Zm9yKGxldCBsPTA7bDxyLmxlbmd0aCYmIShsPnRoaXMuXyRDd3QpO2wrKyl7bGV0IGM9cltsXTtpZighb0J0KGMpKXJldHVybiB0aGlzLl8kQ3d0PWwsYztsPHMmJmM9PT1hW2xdfHwodGhpcy5fJEN3dD1sQnQscz0wLFByb21pc2UucmVzb2x2ZShjKS50aGVuKGFzeW5jIGQ9Pntmb3IoO28uZ2V0KCk7KWF3YWl0IG8uZ2V0KCk7bGV0IGY9bi5kZXJlZigpO2lmKGYhPT12b2lkIDApe2xldCBwPWYuXyRDYnQuaW5kZXhPZihjKTtwPi0xJiZwPGYuXyRDd3QmJihmLl8kQ3d0PXAsZi5zZXRWYWx1ZShkKSl9fSkpfXJldHVybiBhaX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxBa2U9d3MoTmxlKX0pO3ZhciBkQnQ9dSgoKT0+e2NCdCgpfSk7dmFyIEV4LGw4YSx1QnQ9dSgoKT0+e3gyKCk7SWxlKCk7JGtlKCk7ZDQoKTtFeD1jbGFzcyBleHRlbmRzIFkxe3N0YXRpY3tpKHRoaXMsIm8iKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJENLPW5ldyBGaCh0aGlzKSx0aGlzLl8kQ1g9bmV3IEJofXJlbmRlcihlLHIpe3JldHVybiBhaX11cGRhdGUoZSxbcixhXSl7aWYodGhpcy5pc0Nvbm5lY3RlZHx8dGhpcy5kaXNjb25uZWN0ZWQoKSxyPT09dGhpcy5fJENKKXJldHVybiBhaTt0aGlzLl8kQ0o9cjtsZXQgcz0wLHtfJENLOm4sXyRDWDpvfT10aGlzO3JldHVybiBEa2Uocixhc3luYyBsPT57Zm9yKDtvLmdldCgpOylhd2FpdCBvLmdldCgpO2xldCBjPW4uZGVyZWYoKTtpZihjIT09dm9pZCAwKXtpZihjLl8kQ0ohPT1yKXJldHVybiExO2EhPT12b2lkIDAmJihsPWEobCxzKSksYy5jb21taXRWYWx1ZShsLHMpLHMrK31yZXR1cm4hMH0pLGFpfWNvbW1pdFZhbHVlKGUscil7dGhpcy5zZXRWYWx1ZShlKX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxsOGE9d3MoRXgpfSk7dmFyIEVrZSxwQnQ9dSgoKT0+e2Q0KCk7dUJ0KCk7QXgoKTtFa2U9d3MoY2xhc3MgZXh0ZW5kcyBFeHtjb25zdHJ1Y3Rvcih0KXtpZihzdXBlcih0KSx0LnR5cGUhPT1NMC5DSElMRCl0aHJvdyBFcnJvcigiYXN5bmNBcHBlbmQgY2FuIG9ubHkgYmUgdXNlZCBpbiBjaGlsZCBleHByZXNzaW9ucyIpfXVwZGF0ZSh0LGUpe3JldHVybiB0aGlzLl8kQ3R0PXQsc3VwZXIudXBkYXRlKHQsZSl9Y29tbWl0VmFsdWUodCxlKXtlPT09MCYmemtlKHRoaXMuXyRDdHQpO2xldCByPXU0KHRoaXMuXyRDdHQpO3EyKHIsdCl9fSl9KTt2YXIgZkJ0PXUoKCk9PntwQnQoKX0pO3ZhciBJa2UsaEJ0PXUoKCk9Pnt4MigpO2Q0KCk7QXgoKTtJa2U9d3MoY2xhc3MgZXh0ZW5kcyBObHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5rZXk9Yml9cmVuZGVyKHQsZSl7cmV0dXJuIHRoaXMua2V5PXQsZX11cGRhdGUodCxbZSxyXSl7cmV0dXJuIGUhPT10aGlzLmtleSYmKEpNKHQpLHRoaXMua2V5PWUpLHJ9fSl9KTt2YXIgbUJ0PXUoKCk9PntoQnQoKX0pO3ZhciBnQnQsUGtlLGJCdD11KCgpPT57eDIoKTtkNCgpO0F4KCk7Z0J0PWkoKHQsZSxyKT0+e2xldCBhPW5ldyBNYXA7Zm9yKGxldCBzPWU7czw9cjtzKyspYS5zZXQodFtzXSxzKTtyZXR1cm4gYX0sInUiKSxQa2U9d3MoY2xhc3MgZXh0ZW5kcyBObHtjb25zdHJ1Y3Rvcih0KXtpZihzdXBlcih0KSx0LnR5cGUhPT1NMC5DSElMRCl0aHJvdyBFcnJvcigicmVwZWF0KCkgY2FuIG9ubHkgYmUgdXNlZCBpbiB0ZXh0IGV4cHJlc3Npb25zIil9ZHQodCxlLHIpe2xldCBhO3I9PT12b2lkIDA/cj1lOmUhPT12b2lkIDAmJihhPWUpO2xldCBzPVtdLG49W10sbz0wO2ZvcihsZXQgbCBvZiB0KXNbb109YT9hKGwsbyk6byxuW29dPXIobCxvKSxvKys7cmV0dXJue3ZhbHVlczpuLGtleXM6c319cmVuZGVyKHQsZSxyKXtyZXR1cm4gdGhpcy5kdCh0LGUscikudmFsdWVzfXVwZGF0ZSh0LFtlLHIsYV0pe2xldCBzPUNrZSh0KSx7dmFsdWVzOm4sa2V5czpvfT10aGlzLmR0KGUscixhKTtpZighQXJyYXkuaXNBcnJheShzKSlyZXR1cm4gdGhpcy51dD1vLG47bGV0IGw9dGhpcy51dD8/PVtdLGM9W10sZCxmLHA9MCxoPXMubGVuZ3RoLTEsbT0wLHY9bi5sZW5ndGgtMTtmb3IoO3A8PWgmJm08PXY7KWlmKHNbcF09PT1udWxsKXArKztlbHNlIGlmKHNbaF09PT1udWxsKWgtLTtlbHNlIGlmKGxbcF09PT1vW21dKWNbbV09cTIoc1twXSxuW21dKSxwKyssbSsrO2Vsc2UgaWYobFtoXT09PW9bdl0pY1t2XT1xMihzW2hdLG5bdl0pLGgtLSx2LS07ZWxzZSBpZihsW3BdPT09b1t2XSljW3ZdPXEyKHNbcF0sblt2XSksdTQodCxjW3YrMV0sc1twXSkscCsrLHYtLTtlbHNlIGlmKGxbaF09PT1vW21dKWNbbV09cTIoc1toXSxuW21dKSx1NCh0LHNbcF0sc1toXSksaC0tLG0rKztlbHNlIGlmKGQ9PT12b2lkIDAmJihkPWdCdChvLG0sdiksZj1nQnQobCxwLGgpKSxkLmhhcyhsW3BdKSlpZihkLmhhcyhsW2hdKSl7bGV0IGI9Zi5nZXQob1ttXSksZz1iIT09dm9pZCAwP3NbYl06bnVsbDtpZihnPT09bnVsbCl7bGV0IHk9dTQodCxzW3BdKTtxMih5LG5bbV0pLGNbbV09eX1lbHNlIGNbbV09cTIoZyxuW21dKSx1NCh0LHNbcF0sZyksc1tiXT1udWxsO20rK31lbHNlIGVDKHNbaF0pLGgtLTtlbHNlIGVDKHNbcF0pLHArKztmb3IoO208PXY7KXtsZXQgYj11NCh0LGNbdisxXSk7cTIoYixuW21dKSxjW20rK109Yn1mb3IoO3A8PWg7KXtsZXQgYj1zW3ArK107YiE9PW51bGwmJmVDKGIpfXJldHVybiB0aGlzLnV0PW8sSk0odCxjKSxhaX19KX0pO3ZhciB4QnQ9dSgoKT0+e2JCdCgpfSk7dmFyIE9sZT17fTtWZShPbGUse2FzeW5jQXBwZW5kOigpPT5Fa2Usa2V5ZWQ6KCk9PklrZSxyZXBlYXQ6KCk9PlBrZSxyZXNvbHZlOigpPT5yQnQscmVzb2x2ZUV4ZWM6KCk9Pm44YSxzdWJzY3JpYmU6KCk9Pm84YSxzdWJzY3JpYmVXaXRoVGVtcGxhdGU6KCk9PnNCdCx1bnRpbDooKT0+QWtlfSk7dmFyIHZCdD11KCgpPT57YUJ0KCk7aUJ0KCk7bkJ0KCk7ZEJ0KCk7ZkJ0KCk7bUJ0KCk7eEJ0KCl9KTt2YXIgSGg9e307VmUoSGgse0RlZXNFbGVtZW50OigpPT55aSxjb250YWluZXJSZXNwb25zaXZlOigpPT5RRnQsY3NzOigpPT4kcixjc3NNYW5hZ2VyOigpPT5vcixjdXN0b21FbGVtZW50OigpPT52aSxkaXJlY3RpdmVzOigpPT5PbGUsZG9tdG9vbHM6KCk9PlMxLGh0bWw6KCk9PlFlLHByb3BlcnR5OigpPT5IZixxdWVyeTooKT0+eWtlLHF1ZXJ5QWxsOigpPT53a2UscXVlcnlBc3luYzooKT0+a2tlLHJlbmRlcjooKT0+eGssc3RhdGU6KCk9Plp0LHN0YXRpYzooKT0+Z2tlLHVuc2FmZUNTUzooKT0+TmEsdW5zYWZlSFRNTDooKT0+YmtlLHVuc2FmZVN0YXRpYzooKT0+bWtlfSk7dmFyIG9yLE5vPXUoKCk9PntFRnQoKTt5bCgpO05GdCgpO1JGdCgpO0JGdCgpO1lGdCgpO1hNKCk7WkZ0KCk7WEZ0KCk7dkJ0KCk7b3I9RGxlLmdldFNpbmdsZXRvbigpfSk7ZnVuY3Rpb24gYzhhKHQsZSl7bGV0IHI9anNbdF07cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0IiYmZT9yW2VdfHwiYXV0byI6dHlwZW9mIHI9PSJudW1iZXIiP3I6ImF1dG8ifXZhciBqcyxkOGEsUmxlLHlyLE9vPXUoKCk9Pntqcz17YmFzZTp7Y29udGVudDoiYXV0byIsaW5wdXRFbGVtZW50czoxfSxmaXhlZDp7YXBwQmFyOjEwLHNpZGVNZW51OjEwLG1vYmlsZU5hdjoyNTB9LGJhY2tkcm9wOntkcm9wZG93bjoxOTk5LG1vZGFsOjI5OTksY29udGV4dE1lbnU6Mzk5OX0sb3ZlcmxheTp7ZHJvcGRvd246MmUzLG1vZGFsOjNlMyxjb250ZXh0TWVudTo0ZTMsdG9hc3Q6NWUzfSxtb2RhbERyb3Bkb3duOjM1MDAsd3lzaXd5Z01lbnVzOjQ1MDB9O2koYzhhLCJnZXRaSW5kZXgiKTtkOGE9eyJkZWVzLW1vZGFsIjpqcy5vdmVybGF5Lm1vZGFsLCJkZWVzLXdpbmRvd2xheWVyIjpqcy5vdmVybGF5LmRyb3Bkb3duLCJkZWVzLWNvbnRleHRtZW51Ijpqcy5vdmVybGF5LmNvbnRleHRNZW51LCJkZWVzLXRvYXN0Ijpqcy5vdmVybGF5LnRvYXN0LCJkZWVzLWFwcHVpLW1haW5tZW51Ijpqcy5maXhlZC5hcHBCYXIsImRlZXMtbW9iaWxlbmF2aWdhdGlvbiI6anMuZml4ZWQubW9iaWxlTmF2LCJkZWVzLXNsYXNoLW1lbnUiOmpzLnd5c2l3eWdNZW51cywiZGVlcy1mb3JtYXR0aW5nLW1lbnUiOmpzLnd5c2l3eWdNZW51c30sUmxlPWNsYXNzIHR7c3RhdGlje2kodGhpcywiWkluZGV4UmVnaXN0cnkiKX1zdGF0aWMgaW5zdGFuY2U7YWN0aXZlRWxlbWVudHM9bmV3IFNldDtlbGVtZW50WkluZGV4TWFwPW5ldyBXZWFrTWFwO2N1cnJlbnRaSW5kZXg9MWUzO2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB0Lmluc3RhbmNlfHwodC5pbnN0YW5jZT1uZXcgdCksdC5pbnN0YW5jZX1nZXROZXh0WkluZGV4KCl7cmV0dXJuIHRoaXMuY3VycmVudFpJbmRleCs9MTAsdGhpcy5jdXJyZW50WkluZGV4fXJlZ2lzdGVyKGUscil7dGhpcy5hY3RpdmVFbGVtZW50cy5hZGQoZSksdGhpcy5lbGVtZW50WkluZGV4TWFwLnNldChlLHIpfXVucmVnaXN0ZXIoZSl7dGhpcy5hY3RpdmVFbGVtZW50cy5kZWxldGUoZSksdGhpcy5lbGVtZW50WkluZGV4TWFwLmRlbGV0ZShlKSx0aGlzLmFjdGl2ZUVsZW1lbnRzLnNpemU9PT0wJiYodGhpcy5jdXJyZW50WkluZGV4PTFlMyl9Z2V0RWxlbWVudFpJbmRleChlKXtyZXR1cm4gdGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChlKX1nZXRBY3RpdmVDb3VudCgpe3JldHVybiB0aGlzLmFjdGl2ZUVsZW1lbnRzLnNpemV9Z2V0Q3VycmVudFpJbmRleCgpe3JldHVybiB0aGlzLmN1cnJlbnRaSW5kZXh9Y2xlYXIoKXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmNsZWFyKCksdGhpcy5lbGVtZW50WkluZGV4TWFwPW5ldyBXZWFrTWFwLHRoaXMuY3VycmVudFpJbmRleD0xZTN9Z2V0QWN0aXZlRWxlbWVudHNJbk9yZGVyKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5hY3RpdmVFbGVtZW50cykuc29ydCgoZSxyKT0+e2xldCBhPXRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQoZSl8fDAscz10aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KHIpfHwwO3JldHVybiBhLXN9KX19LHlyPVJsZS5nZXRJbnN0YW5jZSgpfSk7dmFyIEZsZSxyQyxOa2UseUJ0LEl4LEdyLHJlLEJsZSxhQyxPa2U9dSgoKT0+e0ZsZT1nbG9iYWxUaGlzLHJDPUZsZS5TaGFkb3dSb290JiYoRmxlLlNoYWR5Q1NTPT09dm9pZCAwfHxGbGUuU2hhZHlDU1MubmF0aXZlU2hhZG93KSYmImFkb3B0ZWRTdHlsZVNoZWV0cyJpbiBEb2N1bWVudC5wcm90b3R5cGUmJiJyZXBsYWNlImluIENTU1N0eWxlU2hlZXQucHJvdG90eXBlLE5rZT1TeW1ib2woKSx5QnQ9bmV3IFdlYWtNYXAsSXg9Y2xhc3N7c3RhdGlje2kodGhpcywibiIpfWNvbnN0cnVjdG9yKGUscixhKXtpZih0aGlzLl8kY3NzUmVzdWx0JD0hMCxhIT09TmtlKXRocm93IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD1lLHRoaXMudD1yfWdldCBzdHlsZVNoZWV0KCl7bGV0IGU9dGhpcy5vLHI9dGhpcy50O2lmKHJDJiZlPT09dm9pZCAwKXtsZXQgYT1yIT09dm9pZCAwJiZyLmxlbmd0aD09PTE7YSYmKGU9eUJ0LmdldChyKSksZT09PXZvaWQgMCYmKCh0aGlzLm89ZT1uZXcgQ1NTU3R5bGVTaGVldCkucmVwbGFjZVN5bmModGhpcy5jc3NUZXh0KSxhJiZ5QnQuc2V0KHIsZSkpfXJldHVybiBlfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzVGV4dH19LEdyPWkodD0+bmV3IEl4KHR5cGVvZiB0PT0ic3RyaW5nIj90OnQrIiIsdm9pZCAwLE5rZSksInIiKSxyZT1pKCh0LC4uLmUpPT57bGV0IHI9dC5sZW5ndGg9PT0xP3RbMF06ZS5yZWR1Y2UoKGEscyxuKT0+YSsobz0+e2lmKG8uXyRjc3NSZXN1bHQkPT09ITApcmV0dXJuIG8uY3NzVGV4dDtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIG87dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK28rIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkocykrdFtuKzFdLHRbMF0pO3JldHVybiBuZXcgSXgocix0LE5rZSl9LCJpIiksQmxlPWkoKHQsZSk9PntpZihyQyl0LmFkb3B0ZWRTdHlsZVNoZWV0cz1lLm1hcChyPT5yIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD9yOnIuc3R5bGVTaGVldCk7ZWxzZSBmb3IobGV0IHIgb2YgZSl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxzPUZsZS5saXROb25jZTtzIT09dm9pZCAwJiZhLnNldEF0dHJpYnV0ZSgibm9uY2UiLHMpLGEudGV4dENvbnRlbnQ9ci5jc3NUZXh0LHQuYXBwZW5kQ2hpbGQoYSl9fSwiUyIpLGFDPXJDP3Q9PnQ6dD0+dCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGU9PntsZXQgcj0iIjtmb3IobGV0IGEgb2YgZS5jc3NSdWxlcylyKz1hLmNzc1RleHQ7cmV0dXJuIEdyKHIpfSkodCk6dH0pO3ZhciB1OGEscDhhLGY4YSxoOGEsbThhLGc4YSxIbGUsd0J0LGI4YSx4OGEsaUMsUHgsc0Msa0J0LEMwLG5DPXUoKCk9PntPa2UoKTtPa2UoKTsoe2lzOnU4YSxkZWZpbmVQcm9wZXJ0eTpwOGEsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOmY4YSxnZXRPd25Qcm9wZXJ0eU5hbWVzOmg4YSxnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6bThhLGdldFByb3RvdHlwZU9mOmc4YX09T2JqZWN0KSxIbGU9Z2xvYmFsVGhpcyx3QnQ9SGxlLnRydXN0ZWRUeXBlcyxiOGE9d0J0P3dCdC5lbXB0eVNjcmlwdDoiIix4OGE9SGxlLnJlYWN0aXZlRWxlbWVudFBvbHlmaWxsU3VwcG9ydCxpQz1pKCh0LGUpPT50LCJkIiksUHg9e3RvQXR0cmlidXRlKHQsZSl7c3dpdGNoKGUpe2Nhc2UgQm9vbGVhbjp0PXQ/YjhhOm51bGw7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0PXQ9PW51bGw/dDpKU09OLnN0cmluZ2lmeSh0KX1yZXR1cm4gdH0sZnJvbUF0dHJpYnV0ZSh0LGUpe2xldCByPXQ7c3dpdGNoKGUpe2Nhc2UgQm9vbGVhbjpyPXQhPT1udWxsO2JyZWFrO2Nhc2UgTnVtYmVyOnI9dD09PW51bGw/bnVsbDpOdW1iZXIodCk7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0cnl7cj1KU09OLnBhcnNlKHQpfWNhdGNoe3I9bnVsbH19cmV0dXJuIHJ9fSxzQz1pKCh0LGUpPT4hdThhKHQsZSksImYiKSxrQnQ9e2F0dHJpYnV0ZTohMCx0eXBlOlN0cmluZyxjb252ZXJ0ZXI6UHgscmVmbGVjdDohMSx1c2VEZWZhdWx0OiExLGhhc0NoYW5nZWQ6c0N9O1N5bWJvbC5tZXRhZGF0YT8/PVN5bWJvbCgibWV0YWRhdGEiKSxIbGUubGl0UHJvcGVydHlNZXRhZGF0YT8/PW5ldyBXZWFrTWFwO0MwPWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7c3RhdGlje2kodGhpcywieSIpfXN0YXRpYyBhZGRJbml0aWFsaXplcihlKXt0aGlzLl8kRWkoKSwodGhpcy5sPz89W10pLnB1c2goZSl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm4gdGhpcy5maW5hbGl6ZSgpLHRoaXMuXyRFaCYmWy4uLnRoaXMuXyRFaC5rZXlzKCldfXN0YXRpYyBjcmVhdGVQcm9wZXJ0eShlLHI9a0J0KXtpZihyLnN0YXRlJiYoci5hdHRyaWJ1dGU9ITEpLHRoaXMuXyRFaSgpLHRoaXMucHJvdG90eXBlLmhhc093blByb3BlcnR5KGUpJiYoKHI9T2JqZWN0LmNyZWF0ZShyKSkud3JhcHBlZD0hMCksdGhpcy5lbGVtZW50UHJvcGVydGllcy5zZXQoZSxyKSwhci5ub0FjY2Vzc29yKXtsZXQgYT1TeW1ib2woKSxzPXRoaXMuZ2V0UHJvcGVydHlEZXNjcmlwdG9yKGUsYSxyKTtzIT09dm9pZCAwJiZwOGEodGhpcy5wcm90b3R5cGUsZSxzKX19c3RhdGljIGdldFByb3BlcnR5RGVzY3JpcHRvcihlLHIsYSl7bGV0e2dldDpzLHNldDpufT1mOGEodGhpcy5wcm90b3R5cGUsZSk/P3tnZXQoKXtyZXR1cm4gdGhpc1tyXX0sc2V0KG8pe3RoaXNbcl09b319O3JldHVybntnZXQ6cyxzZXQobyl7bGV0IGw9cz8uY2FsbCh0aGlzKTtuPy5jYWxsKHRoaXMsbyksdGhpcy5yZXF1ZXN0VXBkYXRlKGUsbCxhKX0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9fXN0YXRpYyBnZXRQcm9wZXJ0eU9wdGlvbnMoZSl7cmV0dXJuIHRoaXMuZWxlbWVudFByb3BlcnRpZXMuZ2V0KGUpPz9rQnR9c3RhdGljIF8kRWkoKXtpZih0aGlzLmhhc093blByb3BlcnR5KGlDKCJlbGVtZW50UHJvcGVydGllcyIpKSlyZXR1cm47bGV0IGU9ZzhhKHRoaXMpO2UuZmluYWxpemUoKSxlLmwhPT12b2lkIDAmJih0aGlzLmw9Wy4uLmUubF0pLHRoaXMuZWxlbWVudFByb3BlcnRpZXM9bmV3IE1hcChlLmVsZW1lbnRQcm9wZXJ0aWVzKX1zdGF0aWMgZmluYWxpemUoKXtpZih0aGlzLmhhc093blByb3BlcnR5KGlDKCJmaW5hbGl6ZWQiKSkpcmV0dXJuO2lmKHRoaXMuZmluYWxpemVkPSEwLHRoaXMuXyRFaSgpLHRoaXMuaGFzT3duUHJvcGVydHkoaUMoInByb3BlcnRpZXMiKSkpe2xldCByPXRoaXMucHJvcGVydGllcyxhPVsuLi5oOGEociksLi4ubThhKHIpXTtmb3IobGV0IHMgb2YgYSl0aGlzLmNyZWF0ZVByb3BlcnR5KHMscltzXSl9bGV0IGU9dGhpc1tTeW1ib2wubWV0YWRhdGFdO2lmKGUhPT1udWxsKXtsZXQgcj1saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChlKTtpZihyIT09dm9pZCAwKWZvcihsZXRbYSxzXW9mIHIpdGhpcy5lbGVtZW50UHJvcGVydGllcy5zZXQoYSxzKX10aGlzLl8kRWg9bmV3IE1hcDtmb3IobGV0W3IsYV1vZiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzKXtsZXQgcz10aGlzLl8kRXUocixhKTtzIT09dm9pZCAwJiZ0aGlzLl8kRWguc2V0KHMscil9dGhpcy5lbGVtZW50U3R5bGVzPXRoaXMuZmluYWxpemVTdHlsZXModGhpcy5zdHlsZXMpfXN0YXRpYyBmaW5hbGl6ZVN0eWxlcyhlKXtsZXQgcj1bXTtpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgYT1uZXcgU2V0KGUuZmxhdCgxLzApLnJldmVyc2UoKSk7Zm9yKGxldCBzIG9mIGEpci51bnNoaWZ0KGFDKHMpKX1lbHNlIGUhPT12b2lkIDAmJnIucHVzaChhQyhlKSk7cmV0dXJuIHJ9c3RhdGljIF8kRXUoZSxyKXtsZXQgYT1yLmF0dHJpYnV0ZTtyZXR1cm4gYT09PSExP3ZvaWQgMDp0eXBlb2YgYT09InN0cmluZyI/YTp0eXBlb2YgZT09InN0cmluZyI/ZS50b0xvd2VyQ2FzZSgpOnZvaWQgMH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fJEVwPXZvaWQgMCx0aGlzLmlzVXBkYXRlUGVuZGluZz0hMSx0aGlzLmhhc1VwZGF0ZWQ9ITEsdGhpcy5fJEVtPW51bGwsdGhpcy5fJEV2KCl9XyRFdigpe3RoaXMuXyRFUz1uZXcgUHJvbWlzZShlPT50aGlzLmVuYWJsZVVwZGF0aW5nPWUpLHRoaXMuXyRBTD1uZXcgTWFwLHRoaXMuXyRFXygpLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuY29uc3RydWN0b3IubD8uZm9yRWFjaChlPT5lKHRoaXMpKX1hZGRDb250cm9sbGVyKGUpeyh0aGlzLl8kRU8/Pz1uZXcgU2V0KS5hZGQoZSksdGhpcy5yZW5kZXJSb290IT09dm9pZCAwJiZ0aGlzLmlzQ29ubmVjdGVkJiZlLmhvc3RDb25uZWN0ZWQ/LigpfXJlbW92ZUNvbnRyb2xsZXIoZSl7dGhpcy5fJEVPPy5kZWxldGUoZSl9XyRFXygpe2xldCBlPW5ldyBNYXAscj10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzO2ZvcihsZXQgYSBvZiByLmtleXMoKSl0aGlzLmhhc093blByb3BlcnR5KGEpJiYoZS5zZXQoYSx0aGlzW2FdKSxkZWxldGUgdGhpc1thXSk7ZS5zaXplPjAmJih0aGlzLl8kRXA9ZSl9Y3JlYXRlUmVuZGVyUm9vdCgpe2xldCBlPXRoaXMuc2hhZG93Um9vdD8/dGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25zdHJ1Y3Rvci5zaGFkb3dSb290T3B0aW9ucyk7cmV0dXJuIEJsZShlLHRoaXMuY29uc3RydWN0b3IuZWxlbWVudFN0eWxlcyksZX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVuZGVyUm9vdD8/PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpLHRoaXMuZW5hYmxlVXBkYXRpbmcoITApLHRoaXMuXyRFTz8uZm9yRWFjaChlPT5lLmhvc3RDb25uZWN0ZWQ/LigpKX1lbmFibGVVcGRhdGluZyhlKXt9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLl8kRU8/LmZvckVhY2goZT0+ZS5ob3N0RGlzY29ubmVjdGVkPy4oKSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGUscixhKXt0aGlzLl8kQUsoZSxhKX1fJEVUKGUscil7bGV0IGE9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcy5nZXQoZSkscz10aGlzLmNvbnN0cnVjdG9yLl8kRXUoZSxhKTtpZihzIT09dm9pZCAwJiZhLnJlZmxlY3Q9PT0hMCl7bGV0IG49KGEuY29udmVydGVyPy50b0F0dHJpYnV0ZSE9PXZvaWQgMD9hLmNvbnZlcnRlcjpQeCkudG9BdHRyaWJ1dGUocixhLnR5cGUpO3RoaXMuXyRFbT1lLG49PW51bGw/dGhpcy5yZW1vdmVBdHRyaWJ1dGUocyk6dGhpcy5zZXRBdHRyaWJ1dGUocyxuKSx0aGlzLl8kRW09bnVsbH19XyRBSyhlLHIpe2xldCBhPXRoaXMuY29uc3RydWN0b3Iscz1hLl8kRWguZ2V0KGUpO2lmKHMhPT12b2lkIDAmJnRoaXMuXyRFbSE9PXMpe2xldCBuPWEuZ2V0UHJvcGVydHlPcHRpb25zKHMpLG89dHlwZW9mIG4uY29udmVydGVyPT0iZnVuY3Rpb24iP3tmcm9tQXR0cmlidXRlOm4uY29udmVydGVyfTpuLmNvbnZlcnRlcj8uZnJvbUF0dHJpYnV0ZSE9PXZvaWQgMD9uLmNvbnZlcnRlcjpQeDt0aGlzLl8kRW09cztsZXQgbD1vLmZyb21BdHRyaWJ1dGUocixuLnR5cGUpO3RoaXNbc109bD8/dGhpcy5fJEVqPy5nZXQocyk/P2wsdGhpcy5fJEVtPW51bGx9fXJlcXVlc3RVcGRhdGUoZSxyLGEscz0hMSxuKXtpZihlIT09dm9pZCAwKXtsZXQgbz10aGlzLmNvbnN0cnVjdG9yO2lmKHM9PT0hMSYmKG49dGhpc1tlXSksYT8/PW8uZ2V0UHJvcGVydHlPcHRpb25zKGUpLCEoKGEuaGFzQ2hhbmdlZD8/c0MpKG4scil8fGEudXNlRGVmYXVsdCYmYS5yZWZsZWN0JiZuPT09dGhpcy5fJEVqPy5nZXQoZSkmJiF0aGlzLmhhc0F0dHJpYnV0ZShvLl8kRXUoZSxhKSkpKXJldHVybjt0aGlzLkMoZSxyLGEpfXRoaXMuaXNVcGRhdGVQZW5kaW5nPT09ITEmJih0aGlzLl8kRVM9dGhpcy5fJEVQKCkpfUMoZSxyLHt1c2VEZWZhdWx0OmEscmVmbGVjdDpzLHdyYXBwZWQ6bn0sbyl7YSYmISh0aGlzLl8kRWo/Pz1uZXcgTWFwKS5oYXMoZSkmJih0aGlzLl8kRWouc2V0KGUsbz8/cj8/dGhpc1tlXSksbiE9PSEwfHxvIT09dm9pZCAwKXx8KHRoaXMuXyRBTC5oYXMoZSl8fCh0aGlzLmhhc1VwZGF0ZWR8fGF8fChyPXZvaWQgMCksdGhpcy5fJEFMLnNldChlLHIpKSxzPT09ITAmJnRoaXMuXyRFbSE9PWUmJih0aGlzLl8kRXE/Pz1uZXcgU2V0KS5hZGQoZSkpfWFzeW5jIF8kRVAoKXt0aGlzLmlzVXBkYXRlUGVuZGluZz0hMDt0cnl7YXdhaXQgdGhpcy5fJEVTfWNhdGNoKHIpe1Byb21pc2UucmVqZWN0KHIpfWxldCBlPXRoaXMuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gZSE9bnVsbCYmYXdhaXQgZSwhdGhpcy5pc1VwZGF0ZVBlbmRpbmd9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhpcy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47aWYoIXRoaXMuaGFzVXBkYXRlZCl7aWYodGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5fJEVwKXtmb3IobGV0W3Msbl1vZiB0aGlzLl8kRXApdGhpc1tzXT1uO3RoaXMuXyRFcD12b2lkIDB9bGV0IGE9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcztpZihhLnNpemU+MClmb3IobGV0W3Msbl1vZiBhKXtsZXR7d3JhcHBlZDpvfT1uLGw9dGhpc1tzXTtvIT09ITB8fHRoaXMuXyRBTC5oYXMocyl8fGw9PT12b2lkIDB8fHRoaXMuQyhzLHZvaWQgMCxuLGwpfX1sZXQgZT0hMSxyPXRoaXMuXyRBTDt0cnl7ZT10aGlzLnNob3VsZFVwZGF0ZShyKSxlPyh0aGlzLndpbGxVcGRhdGUociksdGhpcy5fJEVPPy5mb3JFYWNoKGE9PmEuaG9zdFVwZGF0ZT8uKCkpLHRoaXMudXBkYXRlKHIpKTp0aGlzLl8kRU0oKX1jYXRjaChhKXt0aHJvdyBlPSExLHRoaXMuXyRFTSgpLGF9ZSYmdGhpcy5fJEFFKHIpfXdpbGxVcGRhdGUoZSl7fV8kQUUoZSl7dGhpcy5fJEVPPy5mb3JFYWNoKHI9PnIuaG9zdFVwZGF0ZWQ/LigpKSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhpcy5maXJzdFVwZGF0ZWQoZSkpLHRoaXMudXBkYXRlZChlKX1fJEVNKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl8kRVN9c2hvdWxkVXBkYXRlKGUpe3JldHVybiEwfXVwZGF0ZShlKXt0aGlzLl8kRXEmJj10aGlzLl8kRXEuZm9yRWFjaChyPT50aGlzLl8kRVQocix0aGlzW3JdKSksdGhpcy5fJEVNKCl9dXBkYXRlZChlKXt9Zmlyc3RVcGRhdGVkKGUpe319O0MwLmVsZW1lbnRTdHlsZXM9W10sQzAuc2hhZG93Um9vdE9wdGlvbnM9e21vZGU6Im9wZW4ifSxDMFtpQygiZWxlbWVudFByb3BlcnRpZXMiKV09bmV3IE1hcCxDMFtpQygiZmluYWxpemVkIildPW5ldyBNYXAseDhhPy4oe1JlYWN0aXZlRWxlbWVudDpDMH0pLChIbGUucmVhY3RpdmVFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiMi4xLjIiKX0pO2Z1bmN0aW9uIEFCdCh0LGUpe2lmKCFIa2UodCl8fCF0Lmhhc093blByb3BlcnR5KCJyYXciKSl0aHJvdyBFcnJvcigiaW52YWxpZCB0ZW1wbGF0ZSBzdHJpbmdzIGFycmF5Iik7cmV0dXJuIE1CdCE9PXZvaWQgMD9NQnQuY3JlYXRlSFRNTChlKTplfWZ1bmN0aW9uIFVoKHQsZSxyPXQsYSl7aWYoZT09PW9pKXJldHVybiBlO2xldCBzPWEhPT12b2lkIDA/ci5fJENvPy5bYV06ci5fJENsLG49bEMoZSk/dm9pZCAwOmUuXyRsaXREaXJlY3RpdmUkO3JldHVybiBzPy5jb25zdHJ1Y3RvciE9PW4mJihzPy5fJEFPPy4oITEpLG49PT12b2lkIDA/cz12b2lkIDA6KHM9bmV3IG4odCkscy5fJEFUKHQscixhKSksYSE9PXZvaWQgMD8oci5fJENvPz89W10pW2FdPXM6ci5fJENsPXMpLHMhPT12b2lkIDAmJihlPVVoKHQscy5fJEFTKHQsZS52YWx1ZXMpLHMsYSkpLGV9dmFyIFJrZSxTQnQscWxlLE1CdCxGa2UscDQsQmtlLHY4YSxxaCxvQyxsQyxIa2UsQ0J0LHFrZSxjQyx6QnQsX0J0LFZoLFRCdCxMQnQsREJ0LFZrZSx3LGprZSxVa2Usb2ksd2ksJEJ0LGpoLEVCdCxkQyxWbGUsTngsV2gsamxlLFVsZSxXbGUsR2xlLFdrZSx5OGEsR2gsVjI9dSgoKT0+e1JrZT1nbG9iYWxUaGlzLFNCdD1pKHQ9PnQsImkiKSxxbGU9UmtlLnRydXN0ZWRUeXBlcyxNQnQ9cWxlP3FsZS5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDppKHQ9PnQsImNyZWF0ZUhUTUwiKX0pOnZvaWQgMCxGa2U9IiRsaXQkIixwND1gbGl0JCR7TWF0aC5yYW5kb20oKS50b0ZpeGVkKDkpLnNsaWNlKDIpfSRgLEJrZT0iPyIrcDQsdjhhPWA8JHtCa2V9PmAscWg9ZG9jdW1lbnQsb0M9aSgoKT0+cWguY3JlYXRlQ29tbWVudCgiIiksImMiKSxsQz1pKHQ9PnQ9PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCImJnR5cGVvZiB0IT0iZnVuY3Rpb24iLCJhIiksSGtlPUFycmF5LmlzQXJyYXksQ0J0PWkodD0+SGtlKHQpfHx0eXBlb2YgdD8uW1N5bWJvbC5pdGVyYXRvcl09PSJmdW5jdGlvbiIsImQiKSxxa2U9YFsgCQpcZlxyXWAsY0M9LzwoPzooIS0tfFwvW15hLXpBLVpdKXwoXC8/W2EtekEtWl1bXj5cc10qKXwoXC8/JCkpL2csekJ0PS8tLT4vZyxfQnQ9Lz4vZyxWaD1SZWdFeHAoYD58JHtxa2V9KD86KFteXFxzIic+PS9dKykoJHtxa2V9Kj0ke3FrZX0qKD86W14gCQpcZlxyIidcYDw+PV18KCJ8Jyl8KSl8JClgLCJnIiksVEJ0PS8nL2csTEJ0PS8iL2csREJ0PS9eKD86c2NyaXB0fHN0eWxlfHRleHRhcmVhfHRpdGxlKSQvaSxWa2U9aSh0PT4oZSwuLi5yKT0+KHtfJGxpdFR5cGUkOnQsc3RyaW5nczplLHZhbHVlczpyfSksIngiKSx3PVZrZSgxKSxqa2U9VmtlKDIpLFVrZT1Wa2UoMyksb2k9U3ltYm9sLmZvcigibGl0LW5vQ2hhbmdlIiksd2k9U3ltYm9sLmZvcigibGl0LW5vdGhpbmciKSwkQnQ9bmV3IFdlYWtNYXAsamg9cWguY3JlYXRlVHJlZVdhbGtlcihxaCwxMjkpO2koQUJ0LCJWIik7RUJ0PWkoKHQsZSk9PntsZXQgcj10Lmxlbmd0aC0xLGE9W10scyxuPWU9PT0yPyI8c3ZnPiI6ZT09PTM/IjxtYXRoPiI6IiIsbz1jQztmb3IobGV0IGw9MDtsPHI7bCsrKXtsZXQgYz10W2xdLGQsZixwPS0xLGg9MDtmb3IoO2g8Yy5sZW5ndGgmJihvLmxhc3RJbmRleD1oLGY9by5leGVjKGMpLGYhPT1udWxsKTspaD1vLmxhc3RJbmRleCxvPT09Y0M/ZlsxXT09PSIhLS0iP289ekJ0OmZbMV0hPT12b2lkIDA/bz1fQnQ6ZlsyXSE9PXZvaWQgMD8oREJ0LnRlc3QoZlsyXSkmJihzPVJlZ0V4cCgiPC8iK2ZbMl0sImciKSksbz1WaCk6ZlszXSE9PXZvaWQgMCYmKG89VmgpOm89PT1WaD9mWzBdPT09Ij4iPyhvPXM/P2NDLHA9LTEpOmZbMV09PT12b2lkIDA/cD0tMjoocD1vLmxhc3RJbmRleC1mWzJdLmxlbmd0aCxkPWZbMV0sbz1mWzNdPT09dm9pZCAwP1ZoOmZbM109PT0nIic/TEJ0OlRCdCk6bz09PUxCdHx8bz09PVRCdD9vPVZoOm89PT16QnR8fG89PT1fQnQ/bz1jQzoobz1WaCxzPXZvaWQgMCk7bGV0IG09bz09PVZoJiZ0W2wrMV0uc3RhcnRzV2l0aCgiLz4iKT8iICI6IiI7bis9bz09PWNDP2MrdjhhOnA+PTA/KGEucHVzaChkKSxjLnNsaWNlKDAscCkrRmtlK2Muc2xpY2UocCkrcDQrbSk6YytwNCsocD09PS0yP2w6bSl9cmV0dXJuW0FCdCh0LG4rKHRbcl18fCI8Pz4iKSsoZT09PTI/Ijwvc3ZnPiI6ZT09PTM/IjwvbWF0aD4iOiIiKSksYV19LCJOIiksZEM9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTIil9Y29uc3RydWN0b3Ioe3N0cmluZ3M6ZSxfJGxpdFR5cGUkOnJ9LGEpe2xldCBzO3RoaXMucGFydHM9W107bGV0IG49MCxvPTAsbD1lLmxlbmd0aC0xLGM9dGhpcy5wYXJ0cyxbZCxmXT1FQnQoZSxyKTtpZih0aGlzLmVsPXQuY3JlYXRlRWxlbWVudChkLGEpLGpoLmN1cnJlbnROb2RlPXRoaXMuZWwuY29udGVudCxyPT09Mnx8cj09PTMpe2xldCBwPXRoaXMuZWwuY29udGVudC5maXJzdENoaWxkO3AucmVwbGFjZVdpdGgoLi4ucC5jaGlsZE5vZGVzKX1mb3IoOyhzPWpoLm5leHROb2RlKCkpIT09bnVsbCYmYy5sZW5ndGg8bDspe2lmKHMubm9kZVR5cGU9PT0xKXtpZihzLmhhc0F0dHJpYnV0ZXMoKSlmb3IobGV0IHAgb2Ygcy5nZXRBdHRyaWJ1dGVOYW1lcygpKWlmKHAuZW5kc1dpdGgoRmtlKSl7bGV0IGg9ZltvKytdLG09cy5nZXRBdHRyaWJ1dGUocCkuc3BsaXQocDQpLHY9LyhbLj9AXSk/KC4qKS8uZXhlYyhoKTtjLnB1c2goe3R5cGU6MSxpbmRleDpuLG5hbWU6dlsyXSxzdHJpbmdzOm0sY3Rvcjp2WzFdPT09Ii4iP2psZTp2WzFdPT09Ij8iP1VsZTp2WzFdPT09IkAiP1dsZTpXaH0pLHMucmVtb3ZlQXR0cmlidXRlKHApfWVsc2UgcC5zdGFydHNXaXRoKHA0KSYmKGMucHVzaCh7dHlwZTo2LGluZGV4Om59KSxzLnJlbW92ZUF0dHJpYnV0ZShwKSk7aWYoREJ0LnRlc3Qocy50YWdOYW1lKSl7bGV0IHA9cy50ZXh0Q29udGVudC5zcGxpdChwNCksaD1wLmxlbmd0aC0xO2lmKGg+MCl7cy50ZXh0Q29udGVudD1xbGU/cWxlLmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgbT0wO208aDttKyspcy5hcHBlbmQocFttXSxvQygpKSxqaC5uZXh0Tm9kZSgpLGMucHVzaCh7dHlwZToyLGluZGV4Oisrbn0pO3MuYXBwZW5kKHBbaF0sb0MoKSl9fX1lbHNlIGlmKHMubm9kZVR5cGU9PT04KWlmKHMuZGF0YT09PUJrZSljLnB1c2goe3R5cGU6MixpbmRleDpufSk7ZWxzZXtsZXQgcD0tMTtmb3IoOyhwPXMuZGF0YS5pbmRleE9mKHA0LHArMSkpIT09LTE7KWMucHVzaCh7dHlwZTo3LGluZGV4Om59KSxwKz1wNC5sZW5ndGgtMX1uKyt9fXN0YXRpYyBjcmVhdGVFbGVtZW50KGUscil7bGV0IGE9cWguY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gYS5pbm5lckhUTUw9ZSxhfX07aShVaCwiTSIpO1ZsZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJSIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLl8kQVY9W10sdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUQ9ZSx0aGlzLl8kQU09cn1nZXQgcGFyZW50Tm9kZSgpe3JldHVybiB0aGlzLl8kQU0ucGFyZW50Tm9kZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX11KGUpe2xldHtlbDp7Y29udGVudDpyfSxwYXJ0czphfT10aGlzLl8kQUQscz0oZT8uY3JlYXRpb25TY29wZT8/cWgpLmltcG9ydE5vZGUociwhMCk7amguY3VycmVudE5vZGU9cztsZXQgbj1qaC5uZXh0Tm9kZSgpLG89MCxsPTAsYz1hWzBdO2Zvcig7YyE9PXZvaWQgMDspe2lmKG89PT1jLmluZGV4KXtsZXQgZDtjLnR5cGU9PT0yP2Q9bmV3IE54KG4sbi5uZXh0U2libGluZyx0aGlzLGUpOmMudHlwZT09PTE/ZD1uZXcgYy5jdG9yKG4sYy5uYW1lLGMuc3RyaW5ncyx0aGlzLGUpOmMudHlwZT09PTYmJihkPW5ldyBHbGUobix0aGlzLGUpKSx0aGlzLl8kQVYucHVzaChkKSxjPWFbKytsXX1vIT09Yz8uaW5kZXgmJihuPWpoLm5leHROb2RlKCksbysrKX1yZXR1cm4gamguY3VycmVudE5vZGU9cWgsc31wKGUpe2xldCByPTA7Zm9yKGxldCBhIG9mIHRoaXMuXyRBVilhIT09dm9pZCAwJiYoYS5zdHJpbmdzIT09dm9pZCAwPyhhLl8kQUkoZSxhLHIpLHIrPWEuc3RyaW5ncy5sZW5ndGgtMik6YS5fJEFJKGVbcl0pKSxyKyt9fSxOeD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsImsiKX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0/Ll8kQVU/P3RoaXMuXyRDdn1jb25zdHJ1Y3RvcihlLHIsYSxzKXt0aGlzLnR5cGU9Mix0aGlzLl8kQUg9d2ksdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUE9ZSx0aGlzLl8kQUI9cix0aGlzLl8kQU09YSx0aGlzLm9wdGlvbnM9cyx0aGlzLl8kQ3Y9cz8uaXNDb25uZWN0ZWQ/PyEwfWdldCBwYXJlbnROb2RlKCl7bGV0IGU9dGhpcy5fJEFBLnBhcmVudE5vZGUscj10aGlzLl8kQU07cmV0dXJuIHIhPT12b2lkIDAmJmU/Lm5vZGVUeXBlPT09MTEmJihlPXIucGFyZW50Tm9kZSksZX1nZXQgc3RhcnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQX1nZXQgZW5kTm9kZSgpe3JldHVybiB0aGlzLl8kQUJ9XyRBSShlLHI9dGhpcyl7ZT1VaCh0aGlzLGUsciksbEMoZSk/ZT09PXdpfHxlPT1udWxsfHxlPT09IiI/KHRoaXMuXyRBSCE9PXdpJiZ0aGlzLl8kQVIoKSx0aGlzLl8kQUg9d2kpOmUhPT10aGlzLl8kQUgmJmUhPT1vaSYmdGhpcy5fKGUpOmUuXyRsaXRUeXBlJCE9PXZvaWQgMD90aGlzLiQoZSk6ZS5ub2RlVHlwZSE9PXZvaWQgMD90aGlzLlQoZSk6Q0J0KGUpP3RoaXMuayhlKTp0aGlzLl8oZSl9TyhlKXtyZXR1cm4gdGhpcy5fJEFBLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdGhpcy5fJEFCKX1UKGUpe3RoaXMuXyRBSCE9PWUmJih0aGlzLl8kQVIoKSx0aGlzLl8kQUg9dGhpcy5PKGUpKX1fKGUpe3RoaXMuXyRBSCE9PXdpJiZsQyh0aGlzLl8kQUgpP3RoaXMuXyRBQS5uZXh0U2libGluZy5kYXRhPWU6dGhpcy5UKHFoLmNyZWF0ZVRleHROb2RlKGUpKSx0aGlzLl8kQUg9ZX0kKGUpe2xldHt2YWx1ZXM6cixfJGxpdFR5cGUkOmF9PWUscz10eXBlb2YgYT09Im51bWJlciI/dGhpcy5fJEFDKGUpOihhLmVsPT09dm9pZCAwJiYoYS5lbD1kQy5jcmVhdGVFbGVtZW50KEFCdChhLmgsYS5oWzBdKSx0aGlzLm9wdGlvbnMpKSxhKTtpZih0aGlzLl8kQUg/Ll8kQUQ9PT1zKXRoaXMuXyRBSC5wKHIpO2Vsc2V7bGV0IG49bmV3IFZsZShzLHRoaXMpLG89bi51KHRoaXMub3B0aW9ucyk7bi5wKHIpLHRoaXMuVChvKSx0aGlzLl8kQUg9bn19XyRBQyhlKXtsZXQgcj0kQnQuZ2V0KGUuc3RyaW5ncyk7cmV0dXJuIHI9PT12b2lkIDAmJiRCdC5zZXQoZS5zdHJpbmdzLHI9bmV3IGRDKGUpKSxyfWsoZSl7SGtlKHRoaXMuXyRBSCl8fCh0aGlzLl8kQUg9W10sdGhpcy5fJEFSKCkpO2xldCByPXRoaXMuXyRBSCxhLHM9MDtmb3IobGV0IG4gb2YgZSlzPT09ci5sZW5ndGg/ci5wdXNoKGE9bmV3IHQodGhpcy5PKG9DKCkpLHRoaXMuTyhvQygpKSx0aGlzLHRoaXMub3B0aW9ucykpOmE9cltzXSxhLl8kQUkobikscysrO3M8ci5sZW5ndGgmJih0aGlzLl8kQVIoYSYmYS5fJEFCLm5leHRTaWJsaW5nLHMpLHIubGVuZ3RoPXMpfV8kQVIoZT10aGlzLl8kQUEubmV4dFNpYmxpbmcscil7Zm9yKHRoaXMuXyRBUD8uKCExLCEwLHIpO2UhPT10aGlzLl8kQUI7KXtsZXQgYT1TQnQoZSkubmV4dFNpYmxpbmc7U0J0KGUpLnJlbW92ZSgpLGU9YX19c2V0Q29ubmVjdGVkKGUpe3RoaXMuXyRBTT09PXZvaWQgMCYmKHRoaXMuXyRDdj1lLHRoaXMuXyRBUD8uKGUpKX19LFdoPWNsYXNze3N0YXRpY3tpKHRoaXMsIkgiKX1nZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3RvcihlLHIsYSxzLG4pe3RoaXMudHlwZT0xLHRoaXMuXyRBSD13aSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD1lLHRoaXMubmFtZT1yLHRoaXMuXyRBTT1zLHRoaXMub3B0aW9ucz1uLGEubGVuZ3RoPjJ8fGFbMF0hPT0iInx8YVsxXSE9PSIiPyh0aGlzLl8kQUg9QXJyYXkoYS5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9YSk6dGhpcy5fJEFIPXdpfV8kQUkoZSxyPXRoaXMsYSxzKXtsZXQgbj10aGlzLnN0cmluZ3Msbz0hMTtpZihuPT09dm9pZCAwKWU9VWgodGhpcyxlLHIsMCksbz0hbEMoZSl8fGUhPT10aGlzLl8kQUgmJmUhPT1vaSxvJiYodGhpcy5fJEFIPWUpO2Vsc2V7bGV0IGw9ZSxjLGQ7Zm9yKGU9blswXSxjPTA7YzxuLmxlbmd0aC0xO2MrKylkPVVoKHRoaXMsbFthK2NdLHIsYyksZD09PW9pJiYoZD10aGlzLl8kQUhbY10pLG98fD0hbEMoZCl8fGQhPT10aGlzLl8kQUhbY10sZD09PXdpP2U9d2k6ZSE9PXdpJiYoZSs9KGQ/PyIiKStuW2MrMV0pLHRoaXMuXyRBSFtjXT1kfW8mJiFzJiZ0aGlzLmooZSl9aihlKXtlPT09d2k/dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLGU/PyIiKX19LGpsZT1jbGFzcyBleHRlbmRzIFdoe3N0YXRpY3tpKHRoaXMsIkkiKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTN9aihlKXt0aGlzLmVsZW1lbnRbdGhpcy5uYW1lXT1lPT09d2k/dm9pZCAwOmV9fSxVbGU9Y2xhc3MgZXh0ZW5kcyBXaHtzdGF0aWN7aSh0aGlzLCJMIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT00fWooZSl7dGhpcy5lbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSh0aGlzLm5hbWUsISFlJiZlIT09d2kpfX0sV2xlPWNsYXNzIGV4dGVuZHMgV2h7c3RhdGlje2kodGhpcywieiIpfWNvbnN0cnVjdG9yKGUscixhLHMsbil7c3VwZXIoZSxyLGEscyxuKSx0aGlzLnR5cGU9NX1fJEFJKGUscj10aGlzKXtpZigoZT1VaCh0aGlzLGUsciwwKT8/d2kpPT09b2kpcmV0dXJuO2xldCBhPXRoaXMuXyRBSCxzPWU9PT13aSYmYSE9PXdpfHxlLmNhcHR1cmUhPT1hLmNhcHR1cmV8fGUub25jZSE9PWEub25jZXx8ZS5wYXNzaXZlIT09YS5wYXNzaXZlLG49ZSE9PXdpJiYoYT09PXdpfHxzKTtzJiZ0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxhKSxuJiZ0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxlKSx0aGlzLl8kQUg9ZX1oYW5kbGVFdmVudChlKXt0eXBlb2YgdGhpcy5fJEFIPT0iZnVuY3Rpb24iP3RoaXMuXyRBSC5jYWxsKHRoaXMub3B0aW9ucz8uaG9zdD8/dGhpcy5lbGVtZW50LGUpOnRoaXMuXyRBSC5oYW5kbGVFdmVudChlKX19LEdsZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJaIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuZWxlbWVudD1lLHRoaXMudHlwZT02LHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFNPXIsdGhpcy5vcHRpb25zPWF9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9XyRBSShlKXtVaCh0aGlzLGUpfX0sV2tlPXtNOkZrZSxQOnA0LEE6QmtlLEM6MSxMOkVCdCxSOlZsZSxEOkNCdCxWOlVoLEk6TngsSDpXaCxOOlVsZSxVOldsZSxCOmpsZSxGOkdsZX0seThhPVJrZS5saXRIdG1sUG9seWZpbGxTdXBwb3J0O3k4YT8uKGRDLE54KSwoUmtlLmxpdEh0bWxWZXJzaW9ucz8/PVtdKS5wdXNoKCIzLjMuMiIpO0doPWkoKHQsZSxyKT0+e2xldCBhPXI/LnJlbmRlckJlZm9yZT8/ZSxzPWEuXyRsaXRQYXJ0JDtpZihzPT09dm9pZCAwKXtsZXQgbj1yPy5yZW5kZXJCZWZvcmU/P251bGw7YS5fJGxpdFBhcnQkPXM9bmV3IE54KGUuaW5zZXJ0QmVmb3JlKG9DKCksbiksbix2b2lkIDAscj8/e30pfXJldHVybiBzLl8kQUkodCksc30sIkQiKX0pO3ZhciBHa2UsZjQsdzhhLGs4YSxJQnQ9dSgoKT0+e25DKCk7bkMoKTtWMigpO1YyKCk7R2tlPWdsb2JhbFRoaXMsZjQ9Y2xhc3MgZXh0ZW5kcyBDMHtzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVuZGVyT3B0aW9ucz17aG9zdDp0aGlzfSx0aGlzLl8kRG89dm9pZCAwfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgZT1zdXBlci5jcmVhdGVSZW5kZXJSb290KCk7cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucy5yZW5kZXJCZWZvcmU/Pz1lLmZpcnN0Q2hpbGQsZX11cGRhdGUoZSl7bGV0IHI9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKGUpLHRoaXMuXyREbz1HaChyLHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4gb2l9fTtmNC5fJGxpdEVsZW1lbnQkPSEwLGY0LmZpbmFsaXplZD0hMCxHa2UubGl0RWxlbWVudEh5ZHJhdGVTdXBwb3J0Py4oe0xpdEVsZW1lbnQ6ZjR9KTt3OGE9R2tlLmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7dzhhPy4oe0xpdEVsZW1lbnQ6ZjR9KTtrOGE9e18kQUs6aSgodCxlLHIpPT57dC5fJEFLKGUscil9LCJfJEFLIiksXyRBTDppKHQ9PnQuXyRBTCwiXyRBTCIpfTsoR2tlLmxpdEVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCI0LjIuMiIpfSk7dmFyIFM4YSxQQnQ9dSgoKT0+e1M4YT0hMX0pO3ZhciBSbD11KCgpPT57bkMoKTtWMigpO0lCdCgpO1BCdCgpfSk7dmFyIEtsZT1OdChZbGU9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFlsZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksWWxlLnVuaT12b2lkIDA7dmFyIE04YT1pKCh0PSJ1bmkiKT0+YCR7dH1fJHsieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csZT0+e2xldCByPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4oZT09PSJ4Ij9yOnImM3w4KS50b1N0cmluZygxNil9KX1gLCJ1bmkiKTtZbGUudW5pPU04YX0pO3ZhciBabGUsQnUsUWxlPXUoKCk9PntabGU9Y2xhc3N7c3RhdGlje2kodGhpcywiRGVmZXJyZWQiKX1jbGFpbSgpe2lmKHRoaXMuY2xhaW1lZCl0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGFscmVhZHkgY2xhaW1lZCIpO3RoaXMuY2xhaW1lZD0hMH1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkQXQ/dGhpcy5zdG9wcGVkQXQtdGhpcy5zdGFydGVkQXQ6RGF0ZS5ub3coKS10aGlzLnN0YXJ0ZWRBdH1jb25zdHJ1Y3Rvcigpe3RoaXMuY2xhaW1lZD0hMSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKGUscik9Pnt0aGlzLnJlc29sdmU9YT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksZShhKX0sdGhpcy5yZWplY3Q9YT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxyKGEpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfX0sQnU9aSgoKT0+bmV3IFpsZSwiZGVmZXIiKX0pO3ZhciBYbGUsQzhhLE5CdD11KCgpPT57UWxlKCk7WGxlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkN1bXVsYXRpdmVEZWZlcnJlZCIpfWNvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9QnUoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9c3ViRGVmZXIoKXtsZXQgZT1CdSgpO3JldHVybiB0aGlzLmFkZFByb21pc2UoZS5wcm9taXNlKSxlfWFkZFByb21pc2UoZSl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnB1c2goZSl9fSxDOGE9aSgoKT0+bmV3IFhsZSwiY3VtdWxhdGl2ZURlZmVyIil9KTt2YXIgJHQ9e307VmUoJHQse0N1bXVsYXRpdmVEZWZlcnJlZDooKT0+WGxlLERlZmVycmVkOigpPT5abGUsY3VtdWxhdGl2ZURlZmVyOigpPT5DOGEsZGVmZXI6KCk9PkJ1LGZyb21DYWxsYmFjazooKT0+JDhhLGdldEZpcnN0VHJ1ZU9yRmFsc2U6KCk9PkQ4YSxtYXA6KCk9PlQ4YSxyZWplY3RlZFByb21pc2U6KCk9Pl84YSxyZXNvbHZlZFByb21pc2U6KCk9Pno4YSx0aW1lb3V0QW5kQ29udGludWU6KCk9Pkw4YSx0aW1lb3V0V3JhcDooKT0+T0J0fSk7ZnVuY3Rpb24gejhhKHQpe3JldHVybiBQcm9taXNlLnJlc29sdmUodCl9dmFyIF84YSxUOGEsT0J0LEw4YSxEOGEsJDhhLEsxPXUoKCk9PntRbGUoKTtOQnQoKTtRbGUoKTtpKHo4YSwicmVzb2x2ZWRQcm9taXNlIik7XzhhPWkodD0+UHJvbWlzZS5yZWplY3QodCksInJlamVjdGVkUHJvbWlzZSIpLFQ4YT1pKGFzeW5jKHQsZSk9PlByb21pc2UuYWxsKHQubWFwKGUpKSwibWFwIiksT0J0PWkoYXN5bmModCxlLHI9ITApPT5uZXcgUHJvbWlzZSgoYSxzKT0+e3NldFRpbWVvdXQoKCk9PntyP3MobmV3IEVycm9yKCJ0aW1lb3V0IikpOmEobnVsbCl9LGUpLHQudGhlbihhLHMpfSksInRpbWVvdXRXcmFwIiksTDhhPWkoYXN5bmModCxlPTZlNCk9Pk9CdCh0LGUsITEpLCJ0aW1lb3V0QW5kQ29udGludWUiKSxEOGE9aShhc3luYyB0PT57bGV0IGU9QnUoKTtmb3IobGV0IHIgb2YgdClyLnRoZW4oYT0+e2E9PT0hMCYmZS5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKCgpPT57ZS5yZXNvbHZlKCExKX0pLGUucHJvbWlzZX0sImdldEZpcnN0VHJ1ZU9yRmFsc2UiKSwkOGE9aSh0PT5uZXcgUHJvbWlzZSgoZSxyKT0+e3QoKGEscyk9PnthP3IoYSk6ZShzKX0pfSksImZyb21DYWxsYmFjayIpfSk7dmFyIEpsZT11KCgpPT57SzEoKX0pO2Z1bmN0aW9uIE9yKHQsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7WWtlKHQsZSk7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHIsIl9fIiksdC5wcm90b3R5cGU9ZT09PW51bGw/T2JqZWN0LmNyZWF0ZShlKTooci5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IHIpfWZ1bmN0aW9uIEU4YSh0LGUpe3ZhciByPXt9O2Zvcih2YXIgYSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGEpJiZlLmluZGV4T2YoYSk8MCYmKHJbYV09dFthXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBzPTAsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO3M8YS5sZW5ndGg7cysrKWUuaW5kZXhPZihhW3NdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxhW3NdKSYmKHJbYVtzXV09dFthW3NdXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gSThhKHQsZSxyLGEpe3ZhciBzPWFyZ3VtZW50cy5sZW5ndGgsbj1zPDM/ZTphPT09bnVsbD9hPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKTphLG87aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIiluPVJlZmxlY3QuZGVjb3JhdGUodCxlLHIsYSk7ZWxzZSBmb3IodmFyIGw9dC5sZW5ndGgtMTtsPj0wO2wtLSkobz10W2xdKSYmKG49KHM8Mz9vKG4pOnM+Mz9vKGUscixuKTpvKGUscikpfHxuKTtyZXR1cm4gcz4zJiZuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLG4pLG59ZnVuY3Rpb24gUDhhKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsYSl7ZShyLGEsdCl9fWZ1bmN0aW9uIE44YSh0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH1mdW5jdGlvbiBPOGEodCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9ZnVuY3Rpb24gUjhhKHQpe3JldHVybiB0eXBlb2YgdD09InN5bWJvbCI/dDoiIi5jb25jYXQodCl9ZnVuY3Rpb24gRjhhKHQsZSxyKXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiJiYoZT1lLmRlc2NyaXB0aW9uPyJbIi5jb25jYXQoZS5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyPyIiLmNvbmNhdChyLCIgIixlKTplfSl9ZnVuY3Rpb24gQjhhKHQsZSl7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09ImZ1bmN0aW9uIilyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YSh0LGUpfWZ1bmN0aW9uIFhrZSh0LGUscixhKXtmdW5jdGlvbiBzKG4pe3JldHVybiBuIGluc3RhbmNlb2Ygcj9uOm5ldyByKGZ1bmN0aW9uKG8pe28obil9KX1yZXR1cm4gaShzLCJhZG9wdCIpLG5ldyhyfHwocj1Qcm9taXNlKSkoZnVuY3Rpb24obixvKXtmdW5jdGlvbiBsKGYpe3RyeXtkKGEubmV4dChmKSl9Y2F0Y2gocCl7byhwKX19aShsLCJmdWxmaWxsZWQiKTtmdW5jdGlvbiBjKGYpe3RyeXtkKGEudGhyb3coZikpfWNhdGNoKHApe28ocCl9fWkoYywicmVqZWN0ZWQiKTtmdW5jdGlvbiBkKGYpe2YuZG9uZT9uKGYudmFsdWUpOnMoZi52YWx1ZSkudGhlbihsLGMpfWkoZCwic3RlcCIpLGQoKGE9YS5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIHVDKHQsZSl7dmFyIHI9e2xhYmVsOjAsc2VudDppKGZ1bmN0aW9uKCl7aWYoblswXSYxKXRocm93IG5bMV07cmV0dXJuIG5bMV19LCJzZW50IiksdHJ5czpbXSxvcHM6W119LGEscyxuLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PWwoMCksby50aHJvdz1sKDEpLG8ucmV0dXJuPWwoMiksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBsKGQpe3JldHVybiBmdW5jdGlvbihmKXtyZXR1cm4gYyhbZCxmXSl9fWZ1bmN0aW9uIGMoZCl7aWYoYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtvJiYobz0wLGRbMF0mJihyPTApKSxyOyl0cnl7aWYoYT0xLHMmJihuPWRbMF0mMj9zLnJldHVybjpkWzBdP3MudGhyb3d8fCgobj1zLnJldHVybikmJm4uY2FsbChzKSwwKTpzLm5leHQpJiYhKG49bi5jYWxsKHMsZFsxXSkpLmRvbmUpcmV0dXJuIG47c3dpdGNoKHM9MCxuJiYoZD1bZFswXSYyLG4udmFsdWVdKSxkWzBdKXtjYXNlIDA6Y2FzZSAxOm49ZDticmVhaztjYXNlIDQ6cmV0dXJuIHIubGFiZWwrKyx7dmFsdWU6ZFsxXSxkb25lOiExfTtjYXNlIDU6ci5sYWJlbCsrLHM9ZFsxXSxkPVswXTtjb250aW51ZTtjYXNlIDc6ZD1yLm9wcy5wb3AoKSxyLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihuPXIudHJ5cywhKG49bi5sZW5ndGg+MCYmbltuLmxlbmd0aC0xXSkmJihkWzBdPT09Nnx8ZFswXT09PTIpKXtyPTA7Y29udGludWV9aWYoZFswXT09PTMmJighbnx8ZFsxXT5uWzBdJiZkWzFdPG5bM10pKXtyLmxhYmVsPWRbMV07YnJlYWt9aWYoZFswXT09PTYmJnIubGFiZWw8blsxXSl7ci5sYWJlbD1uWzFdLG49ZDticmVha31pZihuJiZyLmxhYmVsPG5bMl0pe3IubGFiZWw9blsyXSxyLm9wcy5wdXNoKGQpO2JyZWFrfW5bMl0mJnIub3BzLnBvcCgpLHIudHJ5cy5wb3AoKTtjb250aW51ZX1kPWUuY2FsbCh0LHIpfWNhdGNoKGYpe2Q9WzYsZl0scz0wfWZpbmFsbHl7YT1uPTB9aWYoZFswXSY1KXRocm93IGRbMV07cmV0dXJue3ZhbHVlOmRbMF0/ZFsxXTp2b2lkIDAsZG9uZTohMH19fWZ1bmN0aW9uIEg4YSh0LGUpe2Zvcih2YXIgciBpbiB0KXIhPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmWmtlKGUsdCxyKX1mdW5jdGlvbiBubyh0KXt2YXIgZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wuaXRlcmF0b3Iscj1lJiZ0W2VdLGE9MDtpZihyKXJldHVybiByLmNhbGwodCk7aWYodCYmdHlwZW9mIHQubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDppKGZ1bmN0aW9uKCl7cmV0dXJuIHQmJmE+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W2ErK10sZG9uZTohdH19LCJuZXh0Iil9O3Rocm93IG5ldyBUeXBlRXJyb3IoZT8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9ZnVuY3Rpb24gT2kodCxlKXt2YXIgcj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIXIpcmV0dXJuIHQ7dmFyIGE9ci5jYWxsKHQpLHMsbj1bXSxvO3RyeXtmb3IoOyhlPT09dm9pZCAwfHxlLS0gPjApJiYhKHM9YS5uZXh0KCkpLmRvbmU7KW4ucHVzaChzLnZhbHVlKX1jYXRjaChsKXtvPXtlcnJvcjpsfX1maW5hbGx5e3RyeXtzJiYhcy5kb25lJiYocj1hLnJldHVybikmJnIuY2FsbChhKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIG59ZnVuY3Rpb24gcThhKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQ9dC5jb25jYXQoT2koYXJndW1lbnRzW2VdKSk7cmV0dXJuIHR9ZnVuY3Rpb24gVjhhKCl7Zm9yKHZhciB0PTAsZT0wLHI9YXJndW1lbnRzLmxlbmd0aDtlPHI7ZSsrKXQrPWFyZ3VtZW50c1tlXS5sZW5ndGg7Zm9yKHZhciBhPUFycmF5KHQpLHM9MCxlPTA7ZTxyO2UrKylmb3IodmFyIG49YXJndW1lbnRzW2VdLG89MCxsPW4ubGVuZ3RoO288bDtvKysscysrKWFbc109bltvXTtyZXR1cm4gYX1mdW5jdGlvbiBVcyh0LGUscil7aWYocnx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciBhPTAscz1lLmxlbmd0aCxuO2E8czthKyspKG58fCEoYSBpbiBlKSkmJihufHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsYSkpLG5bYV09ZVthXSk7cmV0dXJuIHQuY29uY2F0KG58fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX1mdW5jdGlvbiBoNCh0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGg0Pyh0aGlzLnY9dCx0aGlzKTpuZXcgaDQodCl9ZnVuY3Rpb24gSmtlKHQsZSxyKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGE9ci5hcHBseSh0LGV8fFtdKSxzLG49W107cmV0dXJuIHM9T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3I9PSJmdW5jdGlvbiI/QXN5bmNJdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSksbCgibmV4dCIpLGwoInRocm93IiksbCgicmV0dXJuIixvKSxzW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxzO2Z1bmN0aW9uIG8obSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybiBQcm9taXNlLnJlc29sdmUodikudGhlbihtLHApfX1mdW5jdGlvbiBsKG0sdil7YVttXSYmKHNbbV09ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGcseSl7bi5wdXNoKFttLGIsZyx5XSk+MXx8YyhtLGIpfSl9LHYmJihzW21dPXYoc1ttXSkpKX1mdW5jdGlvbiBjKG0sdil7dHJ5e2QoYVttXSh2KSl9Y2F0Y2goYil7aChuWzBdWzNdLGIpfX1mdW5jdGlvbiBkKG0pe20udmFsdWUgaW5zdGFuY2VvZiBoND9Qcm9taXNlLnJlc29sdmUobS52YWx1ZS52KS50aGVuKGYscCk6aChuWzBdWzJdLG0pfWZ1bmN0aW9uIGYobSl7YygibmV4dCIsbSl9ZnVuY3Rpb24gcChtKXtjKCJ0aHJvdyIsbSl9ZnVuY3Rpb24gaChtLHYpe20odiksbi5zaGlmdCgpLG4ubGVuZ3RoJiZjKG5bMF1bMF0sblswXVsxXSl9fWZ1bmN0aW9uIGo4YSh0KXt2YXIgZSxyO3JldHVybiBlPXt9LGEoIm5leHQiKSxhKCJ0aHJvdyIsZnVuY3Rpb24ocyl7dGhyb3cgc30pLGEoInJldHVybiIpLGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlO2Z1bmN0aW9uIGEocyxuKXtlW3NdPXRbc10/ZnVuY3Rpb24obyl7cmV0dXJuKHI9IXIpP3t2YWx1ZTpoNCh0W3NdKG8pKSxkb25lOiExfTpuP24obyk6b306bn19ZnVuY3Rpb24gZVNlKHQpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgZT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSxyO3JldHVybiBlP2UuY2FsbCh0KToodD10eXBlb2Ygbm89PSJmdW5jdGlvbiI/bm8odCk6dFtTeW1ib2wuaXRlcmF0b3JdKCkscj17fSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyKTtmdW5jdGlvbiBhKG4pe3Jbbl09dFtuXSYmZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsYyl7bz10W25dKG8pLHMobCxjLG8uZG9uZSxvLnZhbHVlKX0pfX1mdW5jdGlvbiBzKG4sbyxsLGMpe1Byb21pc2UucmVzb2x2ZShjKS50aGVuKGZ1bmN0aW9uKGQpe24oe3ZhbHVlOmQsZG9uZTpsfSl9LG8pfX1mdW5jdGlvbiBVOGEodCxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJyYXciLHt2YWx1ZTplfSk6dC5yYXc9ZSx0fWZ1bmN0aW9uIEc4YSh0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIHI9UWtlKHQpLGE9MDthPHIubGVuZ3RoO2ErKylyW2FdIT09ImRlZmF1bHQiJiZaa2UoZSx0LHJbYV0pO3JldHVybiBXOGEoZSx0KSxlfWZ1bmN0aW9uIFk4YSh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gSzhhKHQsZSxyLGEpe2lmKHI9PT0iYSImJiFhKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iP3QhPT1lfHwhYTohZS5oYXModCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIHI9PT0ibSI/YTpyPT09ImEiP2EuY2FsbCh0KTphP2EudmFsdWU6ZS5nZXQodCl9ZnVuY3Rpb24gWjhhKHQsZSxyLGEscyl7aWYoYT09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihhPT09ImEiJiYhcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj90IT09ZXx8IXM6IWUuaGFzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGE9PT0iYSI/cy5jYWxsKHQscik6cz9zLnZhbHVlPXI6ZS5zZXQodCxyKSxyfWZ1bmN0aW9uIFE4YSh0LGUpe2lmKGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCImJnR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP2U9PT10OnQuaGFzKGUpfWZ1bmN0aW9uIFg4YSh0LGUscil7aWYoZSE9bnVsbCl7aWYodHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7dmFyIGEscztpZihyKXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2E9ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXX1pZihhPT09dm9pZCAwKXtpZighU3ltYm9sLmRpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7YT1lW1N5bWJvbC5kaXNwb3NlXSxyJiYocz1hKX1pZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuIik7cyYmKGE9aShmdW5jdGlvbigpe3RyeXtzLmNhbGwodGhpcyl9Y2F0Y2gobil7cmV0dXJuIFByb21pc2UucmVqZWN0KG4pfX0sImRpc3Bvc2UiKSksdC5zdGFjay5wdXNoKHt2YWx1ZTplLGRpc3Bvc2U6YSxhc3luYzpyfSl9ZWxzZSByJiZ0LnN0YWNrLnB1c2goe2FzeW5jOiEwfSk7cmV0dXJuIGV9ZnVuY3Rpb24gZTdhKHQpe2Z1bmN0aW9uIGUobil7dC5lcnJvcj10Lmhhc0Vycm9yP25ldyBKOGEobix0LmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6bix0Lmhhc0Vycm9yPSEwfWkoZSwiZmFpbCIpO3ZhciByLGE9MDtmdW5jdGlvbiBzKCl7Zm9yKDtyPXQuc3RhY2sucG9wKCk7KXRyeXtpZighci5hc3luYyYmYT09PTEpcmV0dXJuIGE9MCx0LnN0YWNrLnB1c2gociksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihzKTtpZihyLmRpc3Bvc2Upe3ZhciBuPXIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO2lmKHIuYXN5bmMpcmV0dXJuIGF8PTIsUHJvbWlzZS5yZXNvbHZlKG4pLnRoZW4ocyxmdW5jdGlvbihvKXtyZXR1cm4gZShvKSxzKCl9KX1lbHNlIGF8PTF9Y2F0Y2gobyl7ZShvKX1pZihhPT09MSlyZXR1cm4gdC5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdCh0LmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTtpZih0Lmhhc0Vycm9yKXRocm93IHQuZXJyb3J9cmV0dXJuIGkocywibmV4dCIpLHMoKX1mdW5jdGlvbiB0N2EodCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciJiYvXlwuXC4/XC8vLnRlc3QodCk/dC5yZXBsYWNlKC9cLih0c3gpJHwoKD86XC5kKT8pKCg/OlwuW14uL10rPyk/KVwuKFtjbV0/KXRzJC9pLGZ1bmN0aW9uKHIsYSxzLG4sbyl7cmV0dXJuIGE/ZT8iLmpzeCI6Ii5qcyI6cyYmKCFufHwhbyk/cjpzK24rIi4iK28udG9Mb3dlckNhc2UoKSsianMifSk6dH12YXIgWWtlLEtrZSxaa2UsVzhhLFFrZSxKOGEsTTRzLERhPXUoKCk9PntZa2U9aShmdW5jdGlvbih0LGUpe3JldHVybiBZa2U9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsYSl7ci5fX3Byb3RvX189YX18fGZ1bmN0aW9uKHIsYSl7Zm9yKHZhciBzIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEscykmJihyW3NdPWFbc10pfSxZa2UodCxlKX0sImV4dGVuZFN0YXRpY3MiKTtpKE9yLCJfX2V4dGVuZHMiKTtLa2U9aShmdW5jdGlvbigpe3JldHVybiBLa2U9T2JqZWN0LmFzc2lnbnx8aShmdW5jdGlvbihlKXtmb3IodmFyIHIsYT0xLHM9YXJndW1lbnRzLmxlbmd0aDthPHM7YSsrKXtyPWFyZ3VtZW50c1thXTtmb3IodmFyIG4gaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmKGVbbl09cltuXSl9cmV0dXJuIGV9LCJfX2Fzc2lnbiIpLEtrZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJfX2Fzc2lnbiIpO2koRThhLCJfX3Jlc3QiKTtpKEk4YSwiX19kZWNvcmF0ZSIpO2koUDhhLCJfX3BhcmFtIik7aShOOGEsIl9fZXNEZWNvcmF0ZSIpO2koTzhhLCJfX3J1bkluaXRpYWxpemVycyIpO2koUjhhLCJfX3Byb3BLZXkiKTtpKEY4YSwiX19zZXRGdW5jdGlvbk5hbWUiKTtpKEI4YSwiX19tZXRhZGF0YSIpO2koWGtlLCJfX2F3YWl0ZXIiKTtpKHVDLCJfX2dlbmVyYXRvciIpO1prZT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUscixhKXthPT09dm9pZCAwJiYoYT1yKTt2YXIgcz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscik7KCFzfHwoImdldCJpbiBzPyFlLl9fZXNNb2R1bGU6cy53cml0YWJsZXx8cy5jb25maWd1cmFibGUpKSYmKHM9e2VudW1lcmFibGU6ITAsZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gZVtyXX0sImdldCIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsYSxzKX0pOihmdW5jdGlvbih0LGUscixhKXthPT09dm9pZCAwJiYoYT1yKSx0W2FdPWVbcl19KTtpKEg4YSwiX19leHBvcnRTdGFyIik7aShubywiX192YWx1ZXMiKTtpKE9pLCJfX3JlYWQiKTtpKHE4YSwiX19zcHJlYWQiKTtpKFY4YSwiX19zcHJlYWRBcnJheXMiKTtpKFVzLCJfX3NwcmVhZEFycmF5Iik7aShoNCwiX19hd2FpdCIpO2koSmtlLCJfX2FzeW5jR2VuZXJhdG9yIik7aShqOGEsIl9fYXN5bmNEZWxlZ2F0b3IiKTtpKGVTZSwiX19hc3luY1ZhbHVlcyIpO2koVThhLCJfX21ha2VUZW1wbGF0ZU9iamVjdCIpO1c4YT1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbih0LGUpe3QuZGVmYXVsdD1lfSxRa2U9aShmdW5jdGlvbih0KXtyZXR1cm4gUWtlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXt2YXIgcj1bXTtmb3IodmFyIGEgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSYmKHJbci5sZW5ndGhdPWEpO3JldHVybiByfSxRa2UodCl9LCJvd25LZXlzIik7aShHOGEsIl9faW1wb3J0U3RhciIpO2koWThhLCJfX2ltcG9ydERlZmF1bHQiKTtpKEs4YSwiX19jbGFzc1ByaXZhdGVGaWVsZEdldCIpO2koWjhhLCJfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Iik7aShROGEsIl9fY2xhc3NQcml2YXRlRmllbGRJbiIpO2koWDhhLCJfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSIpO0o4YT10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iP1N1cHByZXNzZWRFcnJvcjpmdW5jdGlvbih0LGUscil7dmFyIGE9bmV3IEVycm9yKHIpO3JldHVybiBhLm5hbWU9IlN1cHByZXNzZWRFcnJvciIsYS5lcnJvcj10LGEuc3VwcHJlc3NlZD1lLGF9O2koZTdhLCJfX2Rpc3Bvc2VSZXNvdXJjZXMiKTtpKHQ3YSwiX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24iKTtNNHM9e19fZXh0ZW5kczpPcixfX2Fzc2lnbjpLa2UsX19yZXN0OkU4YSxfX2RlY29yYXRlOkk4YSxfX3BhcmFtOlA4YSxfX2VzRGVjb3JhdGU6TjhhLF9fcnVuSW5pdGlhbGl6ZXJzOk84YSxfX3Byb3BLZXk6UjhhLF9fc2V0RnVuY3Rpb25OYW1lOkY4YSxfX21ldGFkYXRhOkI4YSxfX2F3YWl0ZXI6WGtlLF9fZ2VuZXJhdG9yOnVDLF9fY3JlYXRlQmluZGluZzpaa2UsX19leHBvcnRTdGFyOkg4YSxfX3ZhbHVlczpubyxfX3JlYWQ6T2ksX19zcHJlYWQ6cThhLF9fc3ByZWFkQXJyYXlzOlY4YSxfX3NwcmVhZEFycmF5OlVzLF9fYXdhaXQ6aDQsX19hc3luY0dlbmVyYXRvcjpKa2UsX19hc3luY0RlbGVnYXRvcjpqOGEsX19hc3luY1ZhbHVlczplU2UsX19tYWtlVGVtcGxhdGVPYmplY3Q6VThhLF9faW1wb3J0U3RhcjpHOGEsX19pbXBvcnREZWZhdWx0Olk4YSxfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0Oks4YSxfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Olo4YSxfX2NsYXNzUHJpdmF0ZUZpZWxkSW46UThhLF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOlg4YSxfX2Rpc3Bvc2VSZXNvdXJjZXM6ZTdhLF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOnQ3YX19KTtmdW5jdGlvbiBhcih0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiJ9dmFyIGZuPXUoKCk9PntpKGFyLCJpc0Z1bmN0aW9uIil9KTtmdW5jdGlvbiBNMSh0KXt2YXIgZT1pKGZ1bmN0aW9uKGEpe0Vycm9yLmNhbGwoYSksYS5zdGFjaz1uZXcgRXJyb3IoKS5zdGFja30sIl9zdXBlciIpLHI9dChlKTtyZXR1cm4gci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIscn12YXIgSHU9dSgoKT0+e2koTTEsImNyZWF0ZUVycm9yQ2xhc3MiKX0pO3ZhciBwQyx0U2U9dSgoKT0+e0h1KCk7cEM9TTEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7dCh0aGlzKSx0aGlzLm1lc3NhZ2U9cj9yLmxlbmd0aCtgIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246CmArci5tYXAoZnVuY3Rpb24oYSxzKXtyZXR1cm4gcysxKyIpICIrYS50b1N0cmluZygpfSkuam9pbihgCiAgYCk6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1yfSwiVW5zdWJzY3JpcHRpb25FcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24gajIodCxlKXtpZih0KXt2YXIgcj10LmluZGV4T2YoZSk7MDw9ciYmdC5zcGxpY2UociwxKX19dmFyIE94PXUoKCk9PntpKGoyLCJhcnJSZW1vdmUiKX0pO2Z1bmN0aW9uIGUyZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRzfHx0JiYiY2xvc2VkImluIHQmJmFyKHQucmVtb3ZlKSYmYXIodC5hZGQpJiZhcih0LnVuc3Vic2NyaWJlKX1mdW5jdGlvbiBSQnQodCl7YXIodCk/dCgpOnQudW5zdWJzY3JpYmUoKX12YXIgdHMsclNlLHowPXUoKCk9PntEYSgpO2ZuKCk7dFNlKCk7T3goKTt0cz0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMuaW5pdGlhbFRlYXJkb3duPWUsdGhpcy5jbG9zZWQ9ITEsdGhpcy5fcGFyZW50YWdlPW51bGwsdGhpcy5fZmluYWxpemVycz1udWxsfXJldHVybiBpKHQsIlN1YnNjcmlwdGlvbiIpLHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dmFyIGUscixhLHMsbjtpZighdGhpcy5jbG9zZWQpe3RoaXMuY2xvc2VkPSEwO3ZhciBvPXRoaXMuX3BhcmVudGFnZTtpZihvKWlmKHRoaXMuX3BhcmVudGFnZT1udWxsLEFycmF5LmlzQXJyYXkobykpdHJ5e2Zvcih2YXIgbD1ubyhvKSxjPWwubmV4dCgpOyFjLmRvbmU7Yz1sLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtkLnJlbW92ZSh0aGlzKX19Y2F0Y2goYil7ZT17ZXJyb3I6Yn19ZmluYWxseXt0cnl7YyYmIWMuZG9uZSYmKHI9bC5yZXR1cm4pJiZyLmNhbGwobCl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fWVsc2Ugby5yZW1vdmUodGhpcyk7dmFyIGY9dGhpcy5pbml0aWFsVGVhcmRvd247aWYoYXIoZikpdHJ5e2YoKX1jYXRjaChiKXtuPWIgaW5zdGFuY2VvZiBwQz9iLmVycm9yczpbYl19dmFyIHA9dGhpcy5fZmluYWxpemVycztpZihwKXt0aGlzLl9maW5hbGl6ZXJzPW51bGw7dHJ5e2Zvcih2YXIgaD1ubyhwKSxtPWgubmV4dCgpOyFtLmRvbmU7bT1oLm5leHQoKSl7dmFyIHY9bS52YWx1ZTt0cnl7UkJ0KHYpfWNhdGNoKGIpe249bj8/W10sYiBpbnN0YW5jZW9mIHBDP249VXMoVXMoW10sT2kobikpLE9pKGIuZXJyb3JzKSk6bi5wdXNoKGIpfX19Y2F0Y2goYil7YT17ZXJyb3I6Yn19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKHM9aC5yZXR1cm4pJiZzLmNhbGwoaCl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fX1pZihuKXRocm93IG5ldyBwQyhuKX19LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt2YXIgcjtpZihlJiZlIT09dGhpcylpZih0aGlzLmNsb3NlZClSQnQoZSk7ZWxzZXtpZihlIGluc3RhbmNlb2YgdCl7aWYoZS5jbG9zZWR8fGUuX2hhc1BhcmVudCh0aGlzKSlyZXR1cm47ZS5fYWRkUGFyZW50KHRoaXMpfSh0aGlzLl9maW5hbGl6ZXJzPShyPXRoaXMuX2ZpbmFsaXplcnMpIT09bnVsbCYmciE9PXZvaWQgMD9yOltdKS5wdXNoKGUpfX0sdC5wcm90b3R5cGUuX2hhc1BhcmVudD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cmV0dXJuIHI9PT1lfHxBcnJheS5pc0FycmF5KHIpJiZyLmluY2x1ZGVzKGUpfSx0LnByb3RvdHlwZS5fYWRkUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX3BhcmVudGFnZTt0aGlzLl9wYXJlbnRhZ2U9QXJyYXkuaXNBcnJheShyKT8oci5wdXNoKGUpLHIpOnI/W3IsZV06ZX0sdC5wcm90b3R5cGUuX3JlbW92ZVBhcmVudD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cj09PWU/dGhpcy5fcGFyZW50YWdlPW51bGw6QXJyYXkuaXNBcnJheShyKSYmajIocixlKX0sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX2ZpbmFsaXplcnM7ciYmajIocixlKSxlIGluc3RhbmNlb2YgdCYmZS5fcmVtb3ZlUGFyZW50KHRoaXMpfSx0LkVNUFRZPShmdW5jdGlvbigpe3ZhciBlPW5ldyB0O3JldHVybiBlLmNsb3NlZD0hMCxlfSkoKSx0fSkoKSxyU2U9dHMuRU1QVFk7aShlMmUsImlzU3Vic2NyaXB0aW9uIik7aShSQnQsImV4ZWNGaW5hbGl6ZXIiKX0pO3ZhciBGbCxSeD11KCgpPT57Rmw9e29uVW5oYW5kbGVkRXJyb3I6bnVsbCxvblN0b3BwZWROb3RpZmljYXRpb246bnVsbCxQcm9taXNlOnZvaWQgMCx1c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nOiExLHVzZURlcHJlY2F0ZWROZXh0Q29udGV4dDohMX19KTt2YXIgRngsYVNlPXUoKCk9PntEYSgpO0Z4PXtzZXRUaW1lb3V0OmkoZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sYT0yO2E8YXJndW1lbnRzLmxlbmd0aDthKyspclthLTJdPWFyZ3VtZW50c1thXTt2YXIgcz1GeC5kZWxlZ2F0ZTtyZXR1cm4gcz8uc2V0VGltZW91dD9zLnNldFRpbWVvdXQuYXBwbHkocyxVcyhbdCxlXSxPaShyKSkpOnNldFRpbWVvdXQuYXBwbHkodm9pZCAwLFVzKFt0LGVdLE9pKHIpKSl9LCJzZXRUaW1lb3V0IiksY2xlYXJUaW1lb3V0OmkoZnVuY3Rpb24odCl7dmFyIGU9RnguZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFyVGltZW91dHx8Y2xlYXJUaW1lb3V0KSh0KX0sImNsZWFyVGltZW91dCIpLGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiB0MmUodCl7Rnguc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPUZsLm9uVW5oYW5kbGVkRXJyb3I7aWYoZSllKHQpO2Vsc2UgdGhyb3cgdH0pfXZhciBpU2U9dSgoKT0+e1J4KCk7YVNlKCk7aSh0MmUsInJlcG9ydFVuaGFuZGxlZEVycm9yIil9KTtmdW5jdGlvbiBCbCgpe312YXIgWWg9dSgoKT0+e2koQmwsIm5vb3AiKX0pO2Z1bmN0aW9uIEJCdCh0KXtyZXR1cm4gc1NlKCJFIix2b2lkIDAsdCl9ZnVuY3Rpb24gSEJ0KHQpe3JldHVybiBzU2UoIk4iLHQsdm9pZCAwKX1mdW5jdGlvbiBzU2UodCxlLHIpe3JldHVybntraW5kOnQsdmFsdWU6ZSxlcnJvcjpyfX12YXIgRkJ0LHFCdD11KCgpPT57RkJ0PShmdW5jdGlvbigpe3JldHVybiBzU2UoIkMiLHZvaWQgMCx2b2lkIDApfSkoKTtpKEJCdCwiZXJyb3JOb3RpZmljYXRpb24iKTtpKEhCdCwibmV4dE5vdGlmaWNhdGlvbiIpO2koc1NlLCJjcmVhdGVOb3RpZmljYXRpb24iKX0pO2Z1bmN0aW9uIEJ4KHQpe2lmKEZsLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpe3ZhciBlPSFLaDtpZihlJiYoS2g9e2Vycm9yVGhyb3duOiExLGVycm9yOm51bGx9KSx0KCksZSl7dmFyIHI9S2gsYT1yLmVycm9yVGhyb3duLHM9ci5lcnJvcjtpZihLaD1udWxsLGEpdGhyb3cgc319ZWxzZSB0KCl9ZnVuY3Rpb24gVkJ0KHQpe0ZsLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJktoJiYoS2guZXJyb3JUaHJvd249ITAsS2guZXJyb3I9dCl9dmFyIEtoLHIyZT11KCgpPT57UngoKTtLaD1udWxsO2koQngsImVycm9yQ29udGV4dCIpO2koVkJ0LCJjYXB0dXJlRXJyb3IiKX0pO2Z1bmN0aW9uIG5TZSh0LGUpe3JldHVybiByN2EuY2FsbCh0LGUpfWZ1bmN0aW9uIGEyZSh0KXtGbC51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nP1ZCdCh0KTp0MmUodCl9ZnVuY3Rpb24gaTdhKHQpe3Rocm93IHR9ZnVuY3Rpb24gb1NlKHQsZSl7dmFyIHI9Rmwub25TdG9wcGVkTm90aWZpY2F0aW9uO3ImJkZ4LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gcih0LGUpfSl9dmFyIFpoLHI3YSxhN2EscXUsczdhLGZDPXUoKCk9PntEYSgpO2ZuKCk7ejAoKTtSeCgpO2lTZSgpO1loKCk7cUJ0KCk7YVNlKCk7cjJlKCk7Wmg9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyKXt2YXIgYT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGEuaXNTdG9wcGVkPSExLHI/KGEuZGVzdGluYXRpb249cixlMmUocikmJnIuYWRkKGEpKTphLmRlc3RpbmF0aW9uPXM3YSxhfXJldHVybiBpKGUsIlN1YnNjcmliZXIiKSxlLmNyZWF0ZT1mdW5jdGlvbihyLGEscyl7cmV0dXJuIG5ldyBxdShyLGEscyl9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dGhpcy5pc1N0b3BwZWQ/b1NlKEhCdChyKSx0aGlzKTp0aGlzLl9uZXh0KHIpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZD9vU2UoQkJ0KHIpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcihyKSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ/b1NlKEZCdCx0aGlzKToodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5fY29tcGxldGUoKSl9LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dGhpcy5jbG9zZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCx0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLHRoaXMuZGVzdGluYXRpb249bnVsbCl9LGUucHJvdG90eXBlLl9uZXh0PWZ1bmN0aW9uKHIpe3RoaXMuZGVzdGluYXRpb24ubmV4dChyKX0sZS5wcm90b3R5cGUuX2Vycm9yPWZ1bmN0aW9uKHIpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHIpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sZS5wcm90b3R5cGUuX2NvbXBsZXRlPWZ1bmN0aW9uKCl7dHJ5e3RoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19LGV9KSh0cykscjdhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO2koblNlLCJiaW5kIik7YTdhPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9ZX1yZXR1cm4gaSh0LCJDb25zdW1lck9ic2VydmVyIiksdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihyLm5leHQpdHJ5e3IubmV4dChlKX1jYXRjaChhKXthMmUoYSl9fSx0LnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihyLmVycm9yKXRyeXtyLmVycm9yKGUpfWNhdGNoKGEpe2EyZShhKX1lbHNlIGEyZShlKX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihlLmNvbXBsZXRlKXRyeXtlLmNvbXBsZXRlKCl9Y2F0Y2gocil7YTJlKHIpfX0sdH0pKCkscXU9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEscyl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzLG87aWYoYXIocil8fCFyKW89e25leHQ6cj8/dm9pZCAwLGVycm9yOmE/P3ZvaWQgMCxjb21wbGV0ZTpzPz92b2lkIDB9O2Vsc2V7dmFyIGw7biYmRmwudXNlRGVwcmVjYXRlZE5leHRDb250ZXh0PyhsPU9iamVjdC5jcmVhdGUociksbC51bnN1YnNjcmliZT1mdW5jdGlvbigpe3JldHVybiBuLnVuc3Vic2NyaWJlKCl9LG89e25leHQ6ci5uZXh0JiZuU2Uoci5uZXh0LGwpLGVycm9yOnIuZXJyb3ImJm5TZShyLmVycm9yLGwpLGNvbXBsZXRlOnIuY29tcGxldGUmJm5TZShyLmNvbXBsZXRlLGwpfSk6bz1yfXJldHVybiBuLmRlc3RpbmF0aW9uPW5ldyBhN2Eobyksbn1yZXR1cm4gaShlLCJTYWZlU3Vic2NyaWJlciIpLGV9KShaaCk7aShhMmUsImhhbmRsZVVuaGFuZGxlZEVycm9yIik7aShpN2EsImRlZmF1bHRFcnJvckhhbmRsZXIiKTtpKG9TZSwiaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbiIpO3M3YT17Y2xvc2VkOiEwLG5leHQ6QmwsZXJyb3I6aTdhLGNvbXBsZXRlOkJsfX0pO3ZhciBRaCxoQz11KCgpPT57UWg9KGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIn0pKCl9KTtmdW5jdGlvbiBfMCh0KXtyZXR1cm4gdH12YXIgSHg9dSgoKT0+e2koXzAsImlkZW50aXR5Iil9KTtmdW5jdGlvbiBuN2EoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIGxTZSh0KX1mdW5jdGlvbiBsU2UodCl7cmV0dXJuIHQubGVuZ3RoPT09MD9fMDp0Lmxlbmd0aD09PTE/dFswXTppKGZ1bmN0aW9uKHIpe3JldHVybiB0LnJlZHVjZShmdW5jdGlvbihhLHMpe3JldHVybiBzKGEpfSxyKX0sInBpcGVkIil9dmFyIGNTZT11KCgpPT57SHgoKTtpKG43YSwicGlwZSIpO2kobFNlLCJwaXBlRnJvbUFycmF5Iil9KTtmdW5jdGlvbiBqQnQodCl7dmFyIGU7cmV0dXJuKGU9dD8/RmwuUHJvbWlzZSkhPT1udWxsJiZlIT09dm9pZCAwP2U6UHJvbWlzZX1mdW5jdGlvbiBvN2EodCl7cmV0dXJuIHQmJmFyKHQubmV4dCkmJmFyKHQuZXJyb3IpJiZhcih0LmNvbXBsZXRlKX1mdW5jdGlvbiBsN2EodCl7cmV0dXJuIHQmJnQgaW5zdGFuY2VvZiBaaHx8bzdhKHQpJiZlMmUodCl9dmFyIGxyLFJvPXUoKCk9PntmQygpO3owKCk7aEMoKTtjU2UoKTtSeCgpO2ZuKCk7cjJlKCk7bHI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtlJiYodGhpcy5fc3Vic2NyaWJlPWUpfXJldHVybiBpKHQsIk9ic2VydmFibGUiKSx0LnByb3RvdHlwZS5saWZ0PWZ1bmN0aW9uKGUpe3ZhciByPW5ldyB0O3JldHVybiByLnNvdXJjZT10aGlzLHIub3BlcmF0b3I9ZSxyfSx0LnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSxyLGEpe3ZhciBzPXRoaXMsbj1sN2EoZSk/ZTpuZXcgcXUoZSxyLGEpO3JldHVybiBCeChmdW5jdGlvbigpe3ZhciBvPXMsbD1vLm9wZXJhdG9yLGM9by5zb3VyY2U7bi5hZGQobD9sLmNhbGwobixjKTpjP3MuX3N1YnNjcmliZShuKTpzLl90cnlTdWJzY3JpYmUobikpfSksbn0sdC5wcm90b3R5cGUuX3RyeVN1YnNjcmliZT1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIHRoaXMuX3N1YnNjcmliZShlKX1jYXRjaChyKXtlLmVycm9yKHIpfX0sdC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlLHIpe3ZhciBhPXRoaXM7cmV0dXJuIHI9akJ0KHIpLG5ldyByKGZ1bmN0aW9uKHMsbil7dmFyIG89bmV3IHF1KHtuZXh0OmkoZnVuY3Rpb24obCl7dHJ5e2UobCl9Y2F0Y2goYyl7bihjKSxvLnVuc3Vic2NyaWJlKCl9fSwibmV4dCIpLGVycm9yOm4sY29tcGxldGU6c30pO2Euc3Vic2NyaWJlKG8pfSl9LHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dmFyIHI7cmV0dXJuKHI9dGhpcy5zb3VyY2UpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5zdWJzY3JpYmUoZSl9LHQucHJvdG90eXBlW1FoXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWVbcl09YXJndW1lbnRzW3JdO3JldHVybiBsU2UoZSkodGhpcyl9LHQucHJvdG90eXBlLnRvUHJvbWlzZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3JldHVybiBlPWpCdChlKSxuZXcgZShmdW5jdGlvbihhLHMpe3ZhciBuO3Iuc3Vic2NyaWJlKGZ1bmN0aW9uKG8pe3JldHVybiBuPW99LGZ1bmN0aW9uKG8pe3JldHVybiBzKG8pfSxmdW5jdGlvbigpe3JldHVybiBhKG4pfSl9KX0sdC5jcmVhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KGUpfSx0fSkoKTtpKGpCdCwiZ2V0UHJvbWlzZUN0b3IiKTtpKG83YSwiaXNPYnNlcnZlciIpO2kobDdhLCJpc1N1YnNjcmliZXIiKX0pO2Z1bmN0aW9uIGRTZSh0KXtyZXR1cm4gYXIodD8ubGlmdCl9ZnVuY3Rpb24gSnIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKGRTZShlKSlyZXR1cm4gZS5saWZ0KGZ1bmN0aW9uKHIpe3RyeXtyZXR1cm4gdChyLHRoaXMpfWNhdGNoKGEpe3RoaXMuZXJyb3IoYSl9fSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZhYmxlIHR5cGUiKX19dmFyIGtzPXUoKCk9PntmbigpO2koZFNlLCJoYXNMaWZ0Iik7aShKciwib3BlcmF0ZSIpfSk7ZnVuY3Rpb24gUnIodCxlLHIsYSxzKXtyZXR1cm4gbmV3IFVCdCh0LGUscixhLHMpfXZhciBVQnQsaG49dSgoKT0+e0RhKCk7ZkMoKTtpKFJyLCJjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIiKTtVQnQ9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEscyxuLG8sbCl7dmFyIGM9dC5jYWxsKHRoaXMscil8fHRoaXM7cmV0dXJuIGMub25GaW5hbGl6ZT1vLGMuc2hvdWxkVW5zdWJzY3JpYmU9bCxjLl9uZXh0PWE/ZnVuY3Rpb24oZCl7dHJ5e2EoZCl9Y2F0Y2goZil7ci5lcnJvcihmKX19OnQucHJvdG90eXBlLl9uZXh0LGMuX2Vycm9yPW4/ZnVuY3Rpb24oZCl7dHJ5e24oZCl9Y2F0Y2goZil7ci5lcnJvcihmKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OnQucHJvdG90eXBlLl9lcnJvcixjLl9jb21wbGV0ZT1zP2Z1bmN0aW9uKCl7dHJ5e3MoKX1jYXRjaChkKXtyLmVycm9yKGQpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06dC5wcm90b3R5cGUuX2NvbXBsZXRlLGN9cmV0dXJuIGkoZSwiT3BlcmF0b3JTdWJzY3JpYmVyIiksZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgcjtpZighdGhpcy5zaG91bGRVbnN1YnNjcmliZXx8dGhpcy5zaG91bGRVbnN1YnNjcmliZSgpKXt2YXIgYT10aGlzLmNsb3NlZDt0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpLCFhJiYoKHI9dGhpcy5vbkZpbmFsaXplKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbCh0aGlzKSl9fSxlfSkoWmgpfSk7ZnVuY3Rpb24gaTJlKCl7cmV0dXJuIEpyKGZ1bmN0aW9uKHQsZSl7dmFyIHI9bnVsbDt0Ll9yZWZDb3VudCsrO3ZhciBhPVJyKGUsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtpZighdHx8dC5fcmVmQ291bnQ8PTB8fDA8LS10Ll9yZWZDb3VudCl7cj1udWxsO3JldHVybn12YXIgcz10Ll9jb25uZWN0aW9uLG49cjtyPW51bGwscyYmKCFufHxzPT09bikmJnMudW5zdWJzY3JpYmUoKSxlLnVuc3Vic2NyaWJlKCl9KTt0LnN1YnNjcmliZShhKSxhLmNsb3NlZHx8KHI9dC5jb25uZWN0KCkpfSl9dmFyIHMyZT11KCgpPT57a3MoKTtobigpO2koaTJlLCJyZWZDb3VudCIpfSk7dmFyIFdCdCxHQnQ9dSgoKT0+e0RhKCk7Um8oKTt6MCgpO3MyZSgpO2huKCk7a3MoKTtXQnQ9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gcy5zb3VyY2U9cixzLnN1YmplY3RGYWN0b3J5PWEscy5fc3ViamVjdD1udWxsLHMuX3JlZkNvdW50PTAscy5fY29ubmVjdGlvbj1udWxsLGRTZShyKSYmKHMubGlmdD1yLmxpZnQpLHN9cmV0dXJuIGkoZSwiQ29ubmVjdGFibGVPYnNlcnZhYmxlIiksZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5nZXRTdWJqZWN0KCkuc3Vic2NyaWJlKHIpfSxlLnByb3RvdHlwZS5nZXRTdWJqZWN0PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5fc3ViamVjdDtyZXR1cm4oIXJ8fHIuaXNTdG9wcGVkKSYmKHRoaXMuX3N1YmplY3Q9dGhpcy5zdWJqZWN0RmFjdG9yeSgpKSx0aGlzLl9zdWJqZWN0fSxlLnByb3RvdHlwZS5fdGVhcmRvd249ZnVuY3Rpb24oKXt0aGlzLl9yZWZDb3VudD0wO3ZhciByPXRoaXMuX2Nvbm5lY3Rpb247dGhpcy5fc3ViamVjdD10aGlzLl9jb25uZWN0aW9uPW51bGwscj8udW5zdWJzY3JpYmUoKX0sZS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3ZhciByPXRoaXMsYT10aGlzLl9jb25uZWN0aW9uO2lmKCFhKXthPXRoaXMuX2Nvbm5lY3Rpb249bmV3IHRzO3ZhciBzPXRoaXMuZ2V0U3ViamVjdCgpO2EuYWRkKHRoaXMuc291cmNlLnN1YnNjcmliZShScihzLHZvaWQgMCxmdW5jdGlvbigpe3IuX3RlYXJkb3duKCkscy5jb21wbGV0ZSgpfSxmdW5jdGlvbihuKXtyLl90ZWFyZG93bigpLHMuZXJyb3Iobil9LGZ1bmN0aW9uKCl7cmV0dXJuIHIuX3RlYXJkb3duKCl9KSkpLGEuY2xvc2VkJiYodGhpcy5fY29ubmVjdGlvbj1udWxsLGE9dHMuRU1QVFkpfXJldHVybiBhfSxlLnByb3RvdHlwZS5yZWZDb3VudD1mdW5jdGlvbigpe3JldHVybiBpMmUoKSh0aGlzKX0sZX0pKGxyKX0pO3ZhciB1U2UsWUJ0PXUoKCk9Pnt1U2U9e25vdzppKGZ1bmN0aW9uKCl7cmV0dXJuKHVTZS5kZWxlZ2F0ZXx8cGVyZm9ybWFuY2UpLm5vdygpfSwibm93IiksZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBtNCxwU2U9dSgoKT0+e0RhKCk7ejAoKTttND17c2NoZWR1bGU6aShmdW5jdGlvbih0KXt2YXIgZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUscj1jYW5jZWxBbmltYXRpb25GcmFtZSxhPW00LmRlbGVnYXRlO2EmJihlPWEucmVxdWVzdEFuaW1hdGlvbkZyYW1lLHI9YS5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIHM9ZShmdW5jdGlvbihuKXtyPXZvaWQgMCx0KG4pfSk7cmV0dXJuIG5ldyB0cyhmdW5jdGlvbigpe3JldHVybiByPy4ocyl9KX0sInNjaGVkdWxlIikscmVxdWVzdEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9bTQuZGVsZWdhdGU7cmV0dXJuKHI/LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8cmVxdWVzdEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsVXMoW10sT2kodCkpKX0sInJlcXVlc3RBbmltYXRpb25GcmFtZSIpLGNhbmNlbEFuaW1hdGlvbkZyYW1lOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9bTQuZGVsZWdhdGU7cmV0dXJuKHI/LmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxjYW5jZWxBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLFVzKFtdLE9pKHQpKSl9LCJjYW5jZWxBbmltYXRpb25GcmFtZSIpLGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBjN2EodCl7cmV0dXJuIHQ/S0J0KHQpOmQ3YX1mdW5jdGlvbiBLQnQodCl7cmV0dXJuIG5ldyBscihmdW5jdGlvbihlKXt2YXIgcj10fHx1U2UsYT1yLm5vdygpLHM9MCxuPWkoZnVuY3Rpb24oKXtlLmNsb3NlZHx8KHM9bTQucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKG8pe3M9MDt2YXIgbD1yLm5vdygpO2UubmV4dCh7dGltZXN0YW1wOnQ/bDpvLGVsYXBzZWQ6bC1hfSksbigpfSkpfSwicnVuIik7cmV0dXJuIG4oKSxmdW5jdGlvbigpe3MmJm00LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHMpfX0pfXZhciBkN2EsWkJ0PXUoKCk9PntSbygpO1lCdCgpO3BTZSgpO2koYzdhLCJhbmltYXRpb25GcmFtZXMiKTtpKEtCdCwiYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSIpO2Q3YT1LQnQoKX0pO3ZhciBmU2UsaFNlPXUoKCk9PntIdSgpO2ZTZT1NMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNzYWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn0sIk9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCIpfSl9KTt2YXIgb28sbVNlLHF4PXUoKCk9PntEYSgpO1JvKCk7ejAoKTtoU2UoKTtPeCgpO3IyZSgpO29vPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgcj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuY2xvc2VkPSExLHIuY3VycmVudE9ic2VydmVycz1udWxsLHIub2JzZXJ2ZXJzPVtdLHIuaXNTdG9wcGVkPSExLHIuaGFzRXJyb3I9ITEsci50aHJvd25FcnJvcj1udWxsLHJ9cmV0dXJuIGkoZSwiU3ViamVjdCIpLGUucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24ocil7dmFyIGE9bmV3IG1TZSh0aGlzLHRoaXMpO3JldHVybiBhLm9wZXJhdG9yPXIsYX0sZS5wcm90b3R5cGUuX3Rocm93SWZDbG9zZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgZlNlfSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3ZhciBhPXRoaXM7QngoZnVuY3Rpb24oKXt2YXIgcyxuO2lmKGEuX3Rocm93SWZDbG9zZWQoKSwhYS5pc1N0b3BwZWQpe2EuY3VycmVudE9ic2VydmVyc3x8KGEuY3VycmVudE9ic2VydmVycz1BcnJheS5mcm9tKGEub2JzZXJ2ZXJzKSk7dHJ5e2Zvcih2YXIgbz1ubyhhLmN1cnJlbnRPYnNlcnZlcnMpLGw9by5uZXh0KCk7IWwuZG9uZTtsPW8ubmV4dCgpKXt2YXIgYz1sLnZhbHVlO2MubmV4dChyKX19Y2F0Y2goZCl7cz17ZXJyb3I6ZH19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fX19KX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcztCeChmdW5jdGlvbigpe2lmKGEuX3Rocm93SWZDbG9zZWQoKSwhYS5pc1N0b3BwZWQpe2EuaGFzRXJyb3I9YS5pc1N0b3BwZWQ9ITAsYS50aHJvd25FcnJvcj1yO2Zvcih2YXIgcz1hLm9ic2VydmVycztzLmxlbmd0aDspcy5zaGlmdCgpLmVycm9yKHIpfX0pfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXM7QngoZnVuY3Rpb24oKXtpZihyLl90aHJvd0lmQ2xvc2VkKCksIXIuaXNTdG9wcGVkKXtyLmlzU3RvcHBlZD0hMDtmb3IodmFyIGE9ci5vYnNlcnZlcnM7YS5sZW5ndGg7KWEuc2hpZnQoKS5jb21wbGV0ZSgpfX0pfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuaXNTdG9wcGVkPXRoaXMuY2xvc2VkPSEwLHRoaXMub2JzZXJ2ZXJzPXRoaXMuY3VycmVudE9ic2VydmVycz1udWxsfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9ic2VydmVkIix7Z2V0OmkoZnVuY3Rpb24oKXt2YXIgcjtyZXR1cm4oKHI9dGhpcy5vYnNlcnZlcnMpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5sZW5ndGgpPjB9LCJnZXQiKSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0LnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlLmNhbGwodGhpcyxyKX0sZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMociksdGhpcy5faW5uZXJTdWJzY3JpYmUocil9LGUucHJvdG90eXBlLl9pbm5lclN1YnNjcmliZT1mdW5jdGlvbihyKXt2YXIgYT10aGlzLHM9dGhpcyxuPXMuaGFzRXJyb3Isbz1zLmlzU3RvcHBlZCxsPXMub2JzZXJ2ZXJzO3JldHVybiBufHxvP3JTZToodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsbC5wdXNoKHIpLG5ldyB0cyhmdW5jdGlvbigpe2EuY3VycmVudE9ic2VydmVycz1udWxsLGoyKGwscil9KSl9LGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHIpe3ZhciBhPXRoaXMscz1hLmhhc0Vycm9yLG49YS50aHJvd25FcnJvcixvPWEuaXNTdG9wcGVkO3M/ci5lcnJvcihuKTpvJiZyLmNvbXBsZXRlKCl9LGUucHJvdG90eXBlLmFzT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciByPW5ldyBscjtyZXR1cm4gci5zb3VyY2U9dGhpcyxyfSxlLmNyZWF0ZT1mdW5jdGlvbihyLGEpe3JldHVybiBuZXcgbVNlKHIsYSl9LGV9KShsciksbVNlPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUocixhKXt2YXIgcz10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHMuZGVzdGluYXRpb249cixzLnNvdXJjZT1hLHN9cmV0dXJuIGkoZSwiQW5vbnltb3VzU3ViamVjdCIpLGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGEsczsocz0oYT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEubmV4dCk9PT1udWxsfHxzPT09dm9pZCAwfHxzLmNhbGwoYSxyKX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGEsczsocz0oYT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuZXJyb3IpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5jYWxsKGEscil9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHIsYTsoYT0ocj10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuY29tcGxldGUpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKHIpfSxlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3ZhciBhLHM7cmV0dXJuKHM9KGE9dGhpcy5zb3VyY2UpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5zdWJzY3JpYmUocikpIT09bnVsbCYmcyE9PXZvaWQgMD9zOnJTZX0sZX0pKG9vKX0pO3ZhciBWeCxRQnQ9dSgoKT0+e0RhKCk7cXgoKTtWeD0oZnVuY3Rpb24odCl7T3IoZSx0KTtmdW5jdGlvbiBlKHIpe3ZhciBhPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gYS5fdmFsdWU9cixhfXJldHVybiBpKGUsIkJlaGF2aW9yU3ViamVjdCIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6aShmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFZhbHVlKCl9LCJnZXQiKSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dmFyIGE9dC5wcm90b3R5cGUuX3N1YnNjcmliZS5jYWxsKHRoaXMscik7cmV0dXJuIWEuY2xvc2VkJiZyLm5leHQodGhpcy5fdmFsdWUpLGF9LGUucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxhPXIuaGFzRXJyb3Iscz1yLnRocm93bkVycm9yLG49ci5fdmFsdWU7aWYoYSl0aHJvdyBzO3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksbn0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0aGlzLl92YWx1ZT1yKX0sZX0pKG9vKX0pO3ZhciBtQyxnU2U9dSgoKT0+e21DPXtub3c6aShmdW5jdGlvbigpe3JldHVybihtQy5kZWxlZ2F0ZXx8RGF0ZSkubm93KCl9LCJub3ciKSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIGp4LGJTZT11KCgpPT57RGEoKTtxeCgpO2dTZSgpO2p4PShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUocixhLHMpe3I9PT12b2lkIDAmJihyPTEvMCksYT09PXZvaWQgMCYmKGE9MS8wKSxzPT09dm9pZCAwJiYocz1tQyk7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9idWZmZXJTaXplPXIsbi5fd2luZG93VGltZT1hLG4uX3RpbWVzdGFtcFByb3ZpZGVyPXMsbi5fYnVmZmVyPVtdLG4uX2luZmluaXRlVGltZVdpbmRvdz0hMCxuLl9pbmZpbml0ZVRpbWVXaW5kb3c9YT09PTEvMCxuLl9idWZmZXJTaXplPU1hdGgubWF4KDEsciksbi5fd2luZG93VGltZT1NYXRoLm1heCgxLGEpLG59cmV0dXJuIGkoZSwiUmVwbGF5U3ViamVjdCIpLGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcyxzPWEuaXNTdG9wcGVkLG49YS5fYnVmZmVyLG89YS5faW5maW5pdGVUaW1lV2luZG93LGw9YS5fdGltZXN0YW1wUHJvdmlkZXIsYz1hLl93aW5kb3dUaW1lO3N8fChuLnB1c2gociksIW8mJm4ucHVzaChsLm5vdygpK2MpKSx0aGlzLl90cmltQnVmZmVyKCksdC5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMscil9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX3RyaW1CdWZmZXIoKTtmb3IodmFyIGE9dGhpcy5faW5uZXJTdWJzY3JpYmUocikscz10aGlzLG49cy5faW5maW5pdGVUaW1lV2luZG93LG89cy5fYnVmZmVyLGw9by5zbGljZSgpLGM9MDtjPGwubGVuZ3RoJiYhci5jbG9zZWQ7Yys9bj8xOjIpci5uZXh0KGxbY10pO3JldHVybiB0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHIpLGF9LGUucHJvdG90eXBlLl90cmltQnVmZmVyPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxhPXIuX2J1ZmZlclNpemUscz1yLl90aW1lc3RhbXBQcm92aWRlcixuPXIuX2J1ZmZlcixvPXIuX2luZmluaXRlVGltZVdpbmRvdyxsPShvPzE6MikqYTtpZihhPDEvMCYmbDxuLmxlbmd0aCYmbi5zcGxpY2UoMCxuLmxlbmd0aC1sKSwhbyl7Zm9yKHZhciBjPXMubm93KCksZD0wLGY9MTtmPG4ubGVuZ3RoJiZuW2ZdPD1jO2YrPTIpZD1mO2QmJm4uc3BsaWNlKDAsZCsxKX19LGV9KShvbyl9KTt2YXIgWEJ0LEpCdD11KCgpPT57RGEoKTtxeCgpO1hCdD0oZnVuY3Rpb24odCl7T3IoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIHI9dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiByLl92YWx1ZT1udWxsLHIuX2hhc1ZhbHVlPSExLHIuX2lzQ29tcGxldGU9ITEscn1yZXR1cm4gaShlLCJBc3luY1N1YmplY3QiKSxlLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcz1mdW5jdGlvbihyKXt2YXIgYT10aGlzLHM9YS5oYXNFcnJvcixuPWEuX2hhc1ZhbHVlLG89YS5fdmFsdWUsbD1hLnRocm93bkVycm9yLGM9YS5pc1N0b3BwZWQsZD1hLl9pc0NvbXBsZXRlO3M/ci5lcnJvcihsKTooY3x8ZCkmJihuJiZyLm5leHQobyksci5jb21wbGV0ZSgpKX0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMuX3ZhbHVlPXIsdGhpcy5faGFzVmFsdWU9ITApfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXMsYT1yLl9oYXNWYWx1ZSxzPXIuX3ZhbHVlLG49ci5faXNDb21wbGV0ZTtufHwodGhpcy5faXNDb21wbGV0ZT0hMCxhJiZ0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyxzKSx0LnByb3RvdHlwZS5jb21wbGV0ZS5jYWxsKHRoaXMpKX0sZX0pKG9vKX0pO3ZhciB4U2UsZUh0PXUoKCk9PntEYSgpO3owKCk7eFNlPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUocixhKXtyZXR1cm4gdC5jYWxsKHRoaXMpfHx0aGlzfXJldHVybiBpKGUsIkFjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLHRoaXN9LGV9KSh0cyl9KTt2YXIgZ0MsdEh0PXUoKCk9PntEYSgpO2dDPXtzZXRJbnRlcnZhbDppKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLGE9MjthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKXJbYS0yXT1hcmd1bWVudHNbYV07dmFyIHM9Z0MuZGVsZWdhdGU7cmV0dXJuIHM/LnNldEludGVydmFsP3Muc2V0SW50ZXJ2YWwuYXBwbHkocyxVcyhbdCxlXSxPaShyKSkpOnNldEludGVydmFsLmFwcGx5KHZvaWQgMCxVcyhbdCxlXSxPaShyKSkpfSwic2V0SW50ZXJ2YWwiKSxjbGVhckludGVydmFsOmkoZnVuY3Rpb24odCl7dmFyIGU9Z0MuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW50ZXJ2YWx8fGNsZWFySW50ZXJ2YWwpKHQpfSwiY2xlYXJJbnRlcnZhbCIpLGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgVTIsVXg9dSgoKT0+e0RhKCk7ZUh0KCk7dEh0KCk7T3goKTtVMj0oZnVuY3Rpb24odCl7T3IoZSx0KTtmdW5jdGlvbiBlKHIsYSl7dmFyIHM9dC5jYWxsKHRoaXMscixhKXx8dGhpcztyZXR1cm4gcy5zY2hlZHVsZXI9cixzLndvcms9YSxzLnBlbmRpbmc9ITEsc31yZXR1cm4gaShlLCJBc3luY0FjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7dmFyIHM7aWYoYT09PXZvaWQgMCYmKGE9MCksdGhpcy5jbG9zZWQpcmV0dXJuIHRoaXM7dGhpcy5zdGF0ZT1yO3ZhciBuPXRoaXMuaWQsbz10aGlzLnNjaGVkdWxlcjtyZXR1cm4gbiE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChvLG4sYSkpLHRoaXMucGVuZGluZz0hMCx0aGlzLmRlbGF5PWEsdGhpcy5pZD0ocz10aGlzLmlkKSE9PW51bGwmJnMhPT12b2lkIDA/czp0aGlzLnJlcXVlc3RBc3luY0lkKG8sdGhpcy5pZCxhKSx0aGlzfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLGdDLnNldEludGVydmFsKHIuZmx1c2guYmluZChyLHRoaXMpLHMpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7aWYocz09PXZvaWQgMCYmKHM9MCkscyE9bnVsbCYmdGhpcy5kZWxheT09PXMmJnRoaXMucGVuZGluZz09PSExKXJldHVybiBhO2EhPW51bGwmJmdDLmNsZWFySW50ZXJ2YWwoYSl9LGUucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24ocixhKXtpZih0aGlzLmNsb3NlZClyZXR1cm4gbmV3IEVycm9yKCJleGVjdXRpbmcgYSBjYW5jZWxsZWQgYWN0aW9uIik7dGhpcy5wZW5kaW5nPSExO3ZhciBzPXRoaXMuX2V4ZWN1dGUocixhKTtpZihzKXJldHVybiBzO3RoaXMucGVuZGluZz09PSExJiZ0aGlzLmlkIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLHRoaXMuaWQsbnVsbCkpfSxlLnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihyLGEpe3ZhciBzPSExLG47dHJ5e3RoaXMud29yayhyKX1jYXRjaChvKXtzPSEwLG49b3x8bmV3IEVycm9yKCJTY2hlZHVsZWQgYWN0aW9uIHRocmV3IGZhbHN5IGVycm9yIil9aWYocylyZXR1cm4gdGhpcy51bnN1YnNjcmliZSgpLG59LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY2xvc2VkKXt2YXIgcj10aGlzLGE9ci5pZCxzPXIuc2NoZWR1bGVyLG49cy5hY3Rpb25zO3RoaXMud29yaz10aGlzLnN0YXRlPXRoaXMuc2NoZWR1bGVyPW51bGwsdGhpcy5wZW5kaW5nPSExLGoyKG4sdGhpcyksYSE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChzLGEsbnVsbCkpLHRoaXMuZGVsYXk9bnVsbCx0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfX0sZX0pKHhTZSl9KTtmdW5jdGlvbiBySHQodCl7cmV0dXJuIHQgaW4gbjJlPyhkZWxldGUgbjJlW3RdLCEwKTohMX12YXIgdTdhLHZTZSxuMmUseVNlLGp1cyxhSHQ9dSgoKT0+e3U3YT0xLG4yZT17fTtpKHJIdCwiZmluZEFuZENsZWFySGFuZGxlIik7eVNlPXtzZXRJbW1lZGlhdGU6aShmdW5jdGlvbih0KXt2YXIgZT11N2ErKztyZXR1cm4gbjJlW2VdPSEwLHZTZXx8KHZTZT1Qcm9taXNlLnJlc29sdmUoKSksdlNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gckh0KGUpJiZ0KCl9KSxlfSwic2V0SW1tZWRpYXRlIiksY2xlYXJJbW1lZGlhdGU6aShmdW5jdGlvbih0KXtySHQodCl9LCJjbGVhckltbWVkaWF0ZSIpfSxqdXM9e3BlbmRpbmc6aShmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhuMmUpLmxlbmd0aH0sInBlbmRpbmciKX19KTt2YXIgcDdhLGY3YSxiQyxpSHQ9dSgoKT0+e0RhKCk7YUh0KCk7cDdhPXlTZS5zZXRJbW1lZGlhdGUsZjdhPXlTZS5jbGVhckltbWVkaWF0ZSxiQz17c2V0SW1tZWRpYXRlOmkoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9YkMuZGVsZWdhdGU7cmV0dXJuKHI/LnNldEltbWVkaWF0ZXx8cDdhKS5hcHBseSh2b2lkIDAsVXMoW10sT2kodCkpKX0sInNldEltbWVkaWF0ZSIpLGNsZWFySW1tZWRpYXRlOmkoZnVuY3Rpb24odCl7dmFyIGU9YkMuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW1tZWRpYXRlfHxmN2EpKHQpfSwiY2xlYXJJbW1lZGlhdGUiKSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIHdTZSxzSHQ9dSgoKT0+e0RhKCk7VXgoKTtpSHQoKTt3U2U9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzLHIsYSl8fHRoaXM7cmV0dXJuIHMuc2NoZWR1bGVyPXIscy53b3JrPWEsc31yZXR1cm4gaShlLCJBc2FwQWN0aW9uIiksZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3JldHVybiBzPT09dm9pZCAwJiYocz0wKSxzIT09bnVsbCYmcz4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGEscyk6KHIuYWN0aW9ucy5wdXNoKHRoaXMpLHIuX3NjaGVkdWxlZHx8KHIuX3NjaGVkdWxlZD1iQy5zZXRJbW1lZGlhdGUoci5mbHVzaC5iaW5kKHIsdm9pZCAwKSkpKX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3ZhciBuO2lmKHM9PT12b2lkIDAmJihzPTApLHMhPW51bGw/cz4wOnRoaXMuZGVsYXk+MClyZXR1cm4gdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQuY2FsbCh0aGlzLHIsYSxzKTt2YXIgbz1yLmFjdGlvbnM7YSE9bnVsbCYmKChuPW9bby5sZW5ndGgtMV0pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5pZCkhPT1hJiYoYkMuY2xlYXJJbW1lZGlhdGUoYSksci5fc2NoZWR1bGVkPT09YSYmKHIuX3NjaGVkdWxlZD12b2lkIDApKX0sZX0pKFUyKX0pO3ZhciB4QyxrU2U9dSgoKT0+e2dTZSgpO3hDPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxyKXtyPT09dm9pZCAwJiYocj10Lm5vdyksdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yPWUsdGhpcy5ub3c9cn1yZXR1cm4gaSh0LCJTY2hlZHVsZXIiKSx0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihlLHIsYSl7cmV0dXJuIHI9PT12b2lkIDAmJihyPTApLG5ldyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IodGhpcyxlKS5zY2hlZHVsZShhLHIpfSx0Lm5vdz1tQy5ub3csdH0pKCl9KTt2YXIgVzIsV3g9dSgoKT0+e0RhKCk7a1NlKCk7VzI9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEpe2E9PT12b2lkIDAmJihhPXhDLm5vdyk7dmFyIHM9dC5jYWxsKHRoaXMscixhKXx8dGhpcztyZXR1cm4gcy5hY3Rpb25zPVtdLHMuX2FjdGl2ZT0hMSxzfXJldHVybiBpKGUsIkFzeW5jU2NoZWR1bGVyIiksZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dmFyIGE9dGhpcy5hY3Rpb25zO2lmKHRoaXMuX2FjdGl2ZSl7YS5wdXNoKHIpO3JldHVybn12YXIgczt0aGlzLl9hY3RpdmU9ITA7ZG8gaWYocz1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZShyPWEuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLHMpe2Zvcig7cj1hLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBzfX0sZX0pKHhDKX0pO3ZhciBTU2Usbkh0PXUoKCk9PntEYSgpO1d4KCk7U1NlPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBpKGUsIkFzYXBTY2hlZHVsZXIiKSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihyKXt0aGlzLl9hY3RpdmU9ITA7dmFyIGE9dGhpcy5fc2NoZWR1bGVkO3RoaXMuX3NjaGVkdWxlZD12b2lkIDA7dmFyIHM9dGhpcy5hY3Rpb25zLG47cj1yfHxzLnNoaWZ0KCk7ZG8gaWYobj1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZSgocj1zWzBdKSYmci5pZD09PWEmJnMuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLG4pe2Zvcig7KHI9c1swXSkmJnIuaWQ9PT1hJiZzLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBufX0sZX0pKFcyKX0pO3ZhciBvSHQsaDdhLGxIdD11KCgpPT57c0h0KCk7bkh0KCk7b0h0PW5ldyBTU2Uod1NlKSxoN2E9b0h0fSk7dmFyIEMxLE1TZSxnND11KCgpPT57VXgoKTtXeCgpO0MxPW5ldyBXMihVMiksTVNlPUMxfSk7dmFyIENTZSxjSHQ9dSgoKT0+e0RhKCk7VXgoKTtDU2U9KGZ1bmN0aW9uKHQpe09yKGUsdCk7ZnVuY3Rpb24gZShyLGEpe3ZhciBzPXQuY2FsbCh0aGlzLHIsYSl8fHRoaXM7cmV0dXJuIHMuc2NoZWR1bGVyPXIscy53b3JrPWEsc31yZXR1cm4gaShlLCJRdWV1ZUFjdGlvbiIpLGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLGE+MD90LnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMscixhKToodGhpcy5kZWxheT1hLHRoaXMuc3RhdGU9cix0aGlzLnNjaGVkdWxlci5mbHVzaCh0aGlzKSx0aGlzKX0sZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihyLGEpe3JldHVybiBhPjB8fHRoaXMuY2xvc2VkP3QucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLHIsYSk6dGhpcy5fZXhlY3V0ZShyLGEpfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLHMhPW51bGwmJnM+MHx8cz09bnVsbCYmdGhpcy5kZWxheT4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGEscyk6KHIuZmx1c2godGhpcyksMCl9LGV9KShVMil9KTt2YXIgelNlLGRIdD11KCgpPT57RGEoKTtXeCgpO3pTZT0oZnVuY3Rpb24odCl7T3IoZSx0KTtmdW5jdGlvbiBlKCl7cmV0dXJuIHQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gaShlLCJRdWV1ZVNjaGVkdWxlciIpLGV9KShXMil9KTt2YXIgdUh0LG03YSxwSHQ9dSgoKT0+e2NIdCgpO2RIdCgpO3VIdD1uZXcgelNlKENTZSksbTdhPXVIdH0pO3ZhciBfU2UsZkh0PXUoKCk9PntEYSgpO1V4KCk7cFNlKCk7X1NlPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUocixhKXt2YXIgcz10LmNhbGwodGhpcyxyLGEpfHx0aGlzO3JldHVybiBzLnNjaGVkdWxlcj1yLHMud29yaz1hLHN9cmV0dXJuIGkoZSwiQW5pbWF0aW9uRnJhbWVBY3Rpb24iKSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cmV0dXJuIHM9PT12b2lkIDAmJihzPTApLHMhPT1udWxsJiZzPjA/dC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHIsYSxzKTooci5hY3Rpb25zLnB1c2godGhpcyksci5fc2NoZWR1bGVkfHwoci5fc2NoZWR1bGVkPW00LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JldHVybiByLmZsdXNoKHZvaWQgMCl9KSkpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7dmFyIG47aWYocz09PXZvaWQgMCYmKHM9MCkscyE9bnVsbD9zPjA6dGhpcy5kZWxheT4wKXJldHVybiB0LnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMscixhLHMpO3ZhciBvPXIuYWN0aW9uczthIT1udWxsJiZhPT09ci5fc2NoZWR1bGVkJiYoKG49b1tvLmxlbmd0aC0xXSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmlkKSE9PWEmJihtNC5jYW5jZWxBbmltYXRpb25GcmFtZShhKSxyLl9zY2hlZHVsZWQ9dm9pZCAwKX0sZX0pKFUyKX0pO3ZhciBUU2UsaEh0PXUoKCk9PntEYSgpO1d4KCk7VFNlPShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBpKGUsIkFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIiksZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dGhpcy5fYWN0aXZlPSEwO3ZhciBhO3I/YT1yLmlkOihhPXRoaXMuX3NjaGVkdWxlZCx0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwKTt2YXIgcz10aGlzLmFjdGlvbnMsbjtyPXJ8fHMuc2hpZnQoKTtkbyBpZihuPXIuZXhlY3V0ZShyLnN0YXRlLHIuZGVsYXkpKWJyZWFrO3doaWxlKChyPXNbMF0pJiZyLmlkPT09YSYmcy5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDsocj1zWzBdKSYmci5pZD09PWEmJnMuc2hpZnQoKTspci51bnN1YnNjcmliZSgpO3Rocm93IG59fSxlfSkoVzIpfSk7dmFyIG1IdCxnN2EsZ0h0PXUoKCk9PntmSHQoKTtoSHQoKTttSHQ9bmV3IFRTZShfU2UpLGc3YT1tSHR9KTt2YXIgYkh0LExTZSx4SHQ9dSgoKT0+e0RhKCk7VXgoKTt6MCgpO1d4KCk7Ykh0PShmdW5jdGlvbih0KXtPcihlLHQpO2Z1bmN0aW9uIGUocixhKXtyPT09dm9pZCAwJiYocj1MU2UpLGE9PT12b2lkIDAmJihhPTEvMCk7dmFyIHM9dC5jYWxsKHRoaXMscixmdW5jdGlvbigpe3JldHVybiBzLmZyYW1lfSl8fHRoaXM7cmV0dXJuIHMubWF4RnJhbWVzPWEscy5mcmFtZT0wLHMuaW5kZXg9LTEsc31yZXR1cm4gaShlLCJWaXJ0dWFsVGltZVNjaGVkdWxlciIpLGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciByPXRoaXMsYT1yLmFjdGlvbnMscz1yLm1heEZyYW1lcyxuLG87KG89YVswXSkmJm8uZGVsYXk8PXMmJihhLnNoaWZ0KCksdGhpcy5mcmFtZT1vLmRlbGF5LCEobj1vLmV4ZWN1dGUoby5zdGF0ZSxvLmRlbGF5KSkpOyk7aWYobil7Zm9yKDtvPWEuc2hpZnQoKTspby51bnN1YnNjcmliZSgpO3Rocm93IG59fSxlLmZyYW1lVGltZUZhY3Rvcj0xMCxlfSkoVzIpLExTZT0oZnVuY3Rpb24odCl7T3IoZSx0KTtmdW5jdGlvbiBlKHIsYSxzKXtzPT09dm9pZCAwJiYocz1yLmluZGV4Kz0xKTt2YXIgbj10LmNhbGwodGhpcyxyLGEpfHx0aGlzO3JldHVybiBuLnNjaGVkdWxlcj1yLG4ud29yaz1hLG4uaW5kZXg9cyxuLmFjdGl2ZT0hMCxuLmluZGV4PXIuaW5kZXg9cyxufXJldHVybiBpKGUsIlZpcnR1YWxBY3Rpb24iKSxlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihyLGEpe2lmKGE9PT12b2lkIDAmJihhPTApLE51bWJlci5pc0Zpbml0ZShhKSl7aWYoIXRoaXMuaWQpcmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlLmNhbGwodGhpcyxyLGEpO3RoaXMuYWN0aXZlPSExO3ZhciBzPW5ldyBlKHRoaXMuc2NoZWR1bGVyLHRoaXMud29yayk7cmV0dXJuIHRoaXMuYWRkKHMpLHMuc2NoZWR1bGUocixhKX1lbHNlIHJldHVybiB0cy5FTVBUWX0sZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixhLHMpe3M9PT12b2lkIDAmJihzPTApLHRoaXMuZGVsYXk9ci5mcmFtZStzO3ZhciBuPXIuYWN0aW9ucztyZXR1cm4gbi5wdXNoKHRoaXMpLG4uc29ydChlLnNvcnRBY3Rpb25zKSwxfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGEscyl7cz09PXZvaWQgMCYmKHM9MCl9LGUucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHIsYSl7aWYodGhpcy5hY3RpdmU9PT0hMClyZXR1cm4gdC5wcm90b3R5cGUuX2V4ZWN1dGUuY2FsbCh0aGlzLHIsYSl9LGUuc29ydEFjdGlvbnM9ZnVuY3Rpb24ocixhKXtyZXR1cm4gci5kZWxheT09PWEuZGVsYXk/ci5pbmRleD09PWEuaW5kZXg/MDpyLmluZGV4PmEuaW5kZXg/MTotMTpyLmRlbGF5PmEuZGVsYXk/MTotMX0sZX0pKFUyKX0pO2Z1bmN0aW9uIGI3YSh0KXtyZXR1cm4gdD94N2EodCk6bzJlfWZ1bmN0aW9uIHg3YSh0KXtyZXR1cm4gbmV3IGxyKGZ1bmN0aW9uKGUpe3JldHVybiB0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIGUuY29tcGxldGUoKX0pfSl9dmFyIG8yZSxsMmU9dSgoKT0+e1JvKCk7bzJlPW5ldyBscihmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wbGV0ZSgpfSk7aShiN2EsImVtcHR5Iik7aSh4N2EsImVtcHR5U2NoZWR1bGVkIil9KTtmdW5jdGlvbiBjMmUodCl7cmV0dXJuIHQmJmFyKHQuc2NoZWR1bGUpfXZhciBEU2U9dSgoKT0+e2ZuKCk7aShjMmUsImlzU2NoZWR1bGVyIil9KTtmdW5jdGlvbiAkU2UodCl7cmV0dXJuIHRbdC5sZW5ndGgtMV19ZnVuY3Rpb24gdkh0KHQpe3JldHVybiBhcigkU2UodCkpP3QucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIFQwKHQpe3JldHVybiBjMmUoJFNlKHQpKT90LnBvcCgpOnZvaWQgMH1mdW5jdGlvbiByZnModCxlKXtyZXR1cm4gdHlwZW9mICRTZSh0KT09Im51bWJlciI/dC5wb3AoKTplfXZhciBHeD11KCgpPT57Zm4oKTtEU2UoKTtpKCRTZSwibGFzdCIpO2kodkh0LCJwb3BSZXN1bHRTZWxlY3RvciIpO2koVDAsInBvcFNjaGVkdWxlciIpO2kocmZzLCJwb3BOdW1iZXIiKX0pO3ZhciBZeCxkMmU9dSgoKT0+e1l4PWkoKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIn0pLCJpc0FycmF5TGlrZSIpfSk7ZnVuY3Rpb24gdTJlKHQpe3JldHVybiBhcih0Py50aGVuKX12YXIgQVNlPXUoKCk9PntmbigpO2kodTJlLCJpc1Byb21pc2UiKX0pO2Z1bmN0aW9uIHAyZSh0KXtyZXR1cm4gYXIodFtRaF0pfXZhciBFU2U9dSgoKT0+e2hDKCk7Zm4oKTtpKHAyZSwiaXNJbnRlcm9wT2JzZXJ2YWJsZSIpfSk7ZnVuY3Rpb24gZjJlKHQpe3JldHVybiBTeW1ib2wuYXN5bmNJdGVyYXRvciYmYXIodD8uW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl9dmFyIElTZT11KCgpPT57Zm4oKTtpKGYyZSwiaXNBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBoMmUodCl7cmV0dXJuIG5ldyBUeXBlRXJyb3IoIllvdSBwcm92aWRlZCAiKyh0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiPyJhbiBpbnZhbGlkIG9iamVjdCI6IiciK3QrIiciKSsiIHdoZXJlIGEgc3RyZWFtIHdhcyBleHBlY3RlZC4gWW91IGNhbiBwcm92aWRlIGFuIE9ic2VydmFibGUsIFByb21pc2UsIFJlYWRhYmxlU3RyZWFtLCBBcnJheSwgQXN5bmNJdGVyYWJsZSwgb3IgSXRlcmFibGUuIil9dmFyIFBTZT11KCgpPT57aShoMmUsImNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yIil9KTtmdW5jdGlvbiB2N2EoKXtyZXR1cm4gdHlwZW9mIFN5bWJvbCE9ImZ1bmN0aW9uInx8IVN5bWJvbC5pdGVyYXRvcj8iQEBpdGVyYXRvciI6U3ltYm9sLml0ZXJhdG9yfXZhciBtMmUsTlNlPXUoKCk9PntpKHY3YSwiZ2V0U3ltYm9sSXRlcmF0b3IiKTttMmU9djdhKCl9KTtmdW5jdGlvbiBnMmUodCl7cmV0dXJuIGFyKHQ/LlttMmVdKX12YXIgT1NlPXUoKCk9PntOU2UoKTtmbigpO2koZzJlLCJpc0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBiMmUodCl7cmV0dXJuIEprZSh0aGlzLGFyZ3VtZW50cyxpKGZ1bmN0aW9uKCl7dmFyIHIsYSxzLG47cmV0dXJuIHVDKHRoaXMsZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpyPXQuZ2V0UmVhZGVyKCksby5sYWJlbD0xO2Nhc2UgMTpvLnRyeXMucHVzaChbMSwsOSwxMF0pLG8ubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzQsaDQoci5yZWFkKCkpXTtjYXNlIDM6cmV0dXJuIGE9by5zZW50KCkscz1hLnZhbHVlLG49YS5kb25lLG4/WzQsaDQodm9pZCAwKV06WzMsNV07Y2FzZSA0OnJldHVyblsyLG8uc2VudCgpXTtjYXNlIDU6cmV0dXJuWzQsaDQocyldO2Nhc2UgNjpyZXR1cm5bNCxvLnNlbnQoKV07Y2FzZSA3OnJldHVybiBvLnNlbnQoKSxbMywyXTtjYXNlIDg6cmV0dXJuWzMsMTBdO2Nhc2UgOTpyZXR1cm4gci5yZWxlYXNlTG9jaygpLFs3XTtjYXNlIDEwOnJldHVyblsyXX19KX0sInJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3JfMSIpKX1mdW5jdGlvbiB4MmUodCl7cmV0dXJuIGFyKHQ/LmdldFJlYWRlcil9dmFyIHYyZT11KCgpPT57RGEoKTtmbigpO2koYjJlLCJyZWFkYWJsZVN0cmVhbUxpa2VUb0FzeW5jR2VuZXJhdG9yIik7aSh4MmUsImlzUmVhZGFibGVTdHJlYW1MaWtlIil9KTtmdW5jdGlvbiBsaSh0KXtpZih0IGluc3RhbmNlb2YgbHIpcmV0dXJuIHQ7aWYodCE9bnVsbCl7aWYocDJlKHQpKXJldHVybiB5N2EodCk7aWYoWXgodCkpcmV0dXJuIHc3YSh0KTtpZih1MmUodCkpcmV0dXJuIGs3YSh0KTtpZihmMmUodCkpcmV0dXJuIHlIdCh0KTtpZihnMmUodCkpcmV0dXJuIFM3YSh0KTtpZih4MmUodCkpcmV0dXJuIE03YSh0KX10aHJvdyBoMmUodCl9ZnVuY3Rpb24geTdhKHQpe3JldHVybiBuZXcgbHIoZnVuY3Rpb24oZSl7dmFyIHI9dFtRaF0oKTtpZihhcihyLnN1YnNjcmliZSkpcmV0dXJuIHIuc3Vic2NyaWJlKGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIil9KX1mdW5jdGlvbiB3N2EodCl7cmV0dXJuIG5ldyBscihmdW5jdGlvbihlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoJiYhZS5jbG9zZWQ7cisrKWUubmV4dCh0W3JdKTtlLmNvbXBsZXRlKCl9KX1mdW5jdGlvbiBrN2EodCl7cmV0dXJuIG5ldyBscihmdW5jdGlvbihlKXt0LnRoZW4oZnVuY3Rpb24ocil7ZS5jbG9zZWR8fChlLm5leHQociksZS5jb21wbGV0ZSgpKX0sZnVuY3Rpb24ocil7cmV0dXJuIGUuZXJyb3Iocil9KS50aGVuKG51bGwsdDJlKX0pfWZ1bmN0aW9uIFM3YSh0KXtyZXR1cm4gbmV3IGxyKGZ1bmN0aW9uKGUpe3ZhciByLGE7dHJ5e2Zvcih2YXIgcz1ubyh0KSxuPXMubmV4dCgpOyFuLmRvbmU7bj1zLm5leHQoKSl7dmFyIG89bi52YWx1ZTtpZihlLm5leHQobyksZS5jbG9zZWQpcmV0dXJufX1jYXRjaChsKXtyPXtlcnJvcjpsfX1maW5hbGx5e3RyeXtuJiYhbi5kb25lJiYoYT1zLnJldHVybikmJmEuY2FsbChzKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19ZS5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24geUh0KHQpe3JldHVybiBuZXcgbHIoZnVuY3Rpb24oZSl7QzdhKHQsZSkuY2F0Y2goZnVuY3Rpb24ocil7cmV0dXJuIGUuZXJyb3Iocil9KX0pfWZ1bmN0aW9uIE03YSh0KXtyZXR1cm4geUh0KGIyZSh0KSl9ZnVuY3Rpb24gQzdhKHQsZSl7dmFyIHIsYSxzLG47cmV0dXJuIFhrZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbyxsO3JldHVybiB1Qyh0aGlzLGZ1bmN0aW9uKGMpe3N3aXRjaChjLmxhYmVsKXtjYXNlIDA6Yy50cnlzLnB1c2goWzAsNSw2LDExXSkscj1lU2UodCksYy5sYWJlbD0xO2Nhc2UgMTpyZXR1cm5bNCxyLm5leHQoKV07Y2FzZSAyOmlmKGE9Yy5zZW50KCksISFhLmRvbmUpcmV0dXJuWzMsNF07aWYobz1hLnZhbHVlLGUubmV4dChvKSxlLmNsb3NlZClyZXR1cm5bMl07Yy5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMywxXTtjYXNlIDQ6cmV0dXJuWzMsMTFdO2Nhc2UgNTpyZXR1cm4gbD1jLnNlbnQoKSxzPXtlcnJvcjpsfSxbMywxMV07Y2FzZSA2OnJldHVybiBjLnRyeXMucHVzaChbNiwsOSwxMF0pLGEmJiFhLmRvbmUmJihuPXIucmV0dXJuKT9bNCxuLmNhbGwocildOlszLDhdO2Nhc2UgNzpjLnNlbnQoKSxjLmxhYmVsPTg7Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6aWYocyl0aHJvdyBzLmVycm9yO3JldHVybls3XTtjYXNlIDEwOnJldHVybls3XTtjYXNlIDExOnJldHVybiBlLmNvbXBsZXRlKCksWzJdfX0pfSl9dmFyIFoxPXUoKCk9PntEYSgpO2QyZSgpO0FTZSgpO1JvKCk7RVNlKCk7SVNlKCk7UFNlKCk7T1NlKCk7djJlKCk7Zm4oKTtpU2UoKTtoQygpO2kobGksImlubmVyRnJvbSIpO2koeTdhLCJmcm9tSW50ZXJvcE9ic2VydmFibGUiKTtpKHc3YSwiZnJvbUFycmF5TGlrZSIpO2koazdhLCJmcm9tUHJvbWlzZSIpO2koUzdhLCJmcm9tSXRlcmFibGUiKTtpKHlIdCwiZnJvbUFzeW5jSXRlcmFibGUiKTtpKE03YSwiZnJvbVJlYWRhYmxlU3RyZWFtTGlrZSIpO2koQzdhLCJwcm9jZXNzIil9KTtmdW5jdGlvbiBXcyh0LGUscixhLHMpe2E9PT12b2lkIDAmJihhPTApLHM9PT12b2lkIDAmJihzPSExKTt2YXIgbj1lLnNjaGVkdWxlKGZ1bmN0aW9uKCl7cigpLHM/dC5hZGQodGhpcy5zY2hlZHVsZShudWxsLGEpKTp0aGlzLnVuc3Vic2NyaWJlKCl9LGEpO2lmKHQuYWRkKG4pLCFzKXJldHVybiBufXZhciBWdT11KCgpPT57aShXcywiZXhlY3V0ZVNjaGVkdWxlIil9KTtmdW5jdGlvbiBLeCh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0wKSxKcihmdW5jdGlvbihyLGEpe3Iuc3Vic2NyaWJlKFJyKGEsZnVuY3Rpb24ocyl7cmV0dXJuIFdzKGEsdCxmdW5jdGlvbigpe3JldHVybiBhLm5leHQocyl9LGUpfSxmdW5jdGlvbigpe3JldHVybiBXcyhhLHQsZnVuY3Rpb24oKXtyZXR1cm4gYS5jb21wbGV0ZSgpfSxlKX0sZnVuY3Rpb24ocyl7cmV0dXJuIFdzKGEsdCxmdW5jdGlvbigpe3JldHVybiBhLmVycm9yKHMpfSxlKX0pKX0pfXZhciB2Qz11KCgpPT57VnUoKTtrcygpO2huKCk7aShLeCwib2JzZXJ2ZU9uIil9KTtmdW5jdGlvbiBaeCh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0wKSxKcihmdW5jdGlvbihyLGEpe2EuYWRkKHQuc2NoZWR1bGUoZnVuY3Rpb24oKXtyZXR1cm4gci5zdWJzY3JpYmUoYSl9LGUpKX0pfXZhciB5Qz11KCgpPT57a3MoKTtpKFp4LCJzdWJzY3JpYmVPbiIpfSk7ZnVuY3Rpb24gd0h0KHQsZSl7cmV0dXJuIGxpKHQpLnBpcGUoWngoZSksS3goZSkpfXZhciBrSHQ9dSgoKT0+e1oxKCk7dkMoKTt5QygpO2kod0h0LCJzY2hlZHVsZU9ic2VydmFibGUiKX0pO2Z1bmN0aW9uIFNIdCh0LGUpe3JldHVybiBsaSh0KS5waXBlKFp4KGUpLEt4KGUpKX12YXIgTUh0PXUoKCk9PntaMSgpO3ZDKCk7eUMoKTtpKFNIdCwic2NoZWR1bGVQcm9taXNlIil9KTtmdW5jdGlvbiBDSHQodCxlKXtyZXR1cm4gbmV3IGxyKGZ1bmN0aW9uKHIpe3ZhciBhPTA7cmV0dXJuIGUuc2NoZWR1bGUoZnVuY3Rpb24oKXthPT09dC5sZW5ndGg/ci5jb21wbGV0ZSgpOihyLm5leHQodFthKytdKSxyLmNsb3NlZHx8dGhpcy5zY2hlZHVsZSgpKX0pfSl9dmFyIHpIdD11KCgpPT57Um8oKTtpKENIdCwic2NoZWR1bGVBcnJheSIpfSk7ZnVuY3Rpb24gX0h0KHQsZSl7cmV0dXJuIG5ldyBscihmdW5jdGlvbihyKXt2YXIgYTtyZXR1cm4gV3MocixlLGZ1bmN0aW9uKCl7YT10W20yZV0oKSxXcyhyLGUsZnVuY3Rpb24oKXt2YXIgcyxuLG87dHJ5e3M9YS5uZXh0KCksbj1zLnZhbHVlLG89cy5kb25lfWNhdGNoKGwpe3IuZXJyb3IobCk7cmV0dXJufW8/ci5jb21wbGV0ZSgpOnIubmV4dChuKX0sMCwhMCl9KSxmdW5jdGlvbigpe3JldHVybiBhcihhPy5yZXR1cm4pJiZhLnJldHVybigpfX0pfXZhciBUSHQ9dSgoKT0+e1JvKCk7TlNlKCk7Zm4oKTtWdSgpO2koX0h0LCJzY2hlZHVsZUl0ZXJhYmxlIil9KTtmdW5jdGlvbiB5MmUodCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhYmxlIGNhbm5vdCBiZSBudWxsIik7cmV0dXJuIG5ldyBscihmdW5jdGlvbihyKXtXcyhyLGUsZnVuY3Rpb24oKXt2YXIgYT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO1dzKHIsZSxmdW5jdGlvbigpe2EubmV4dCgpLnRoZW4oZnVuY3Rpb24ocyl7cy5kb25lP3IuY29tcGxldGUoKTpyLm5leHQocy52YWx1ZSl9KX0sMCwhMCl9KX0pfXZhciBSU2U9dSgoKT0+e1JvKCk7VnUoKTtpKHkyZSwic2NoZWR1bGVBc3luY0l0ZXJhYmxlIil9KTtmdW5jdGlvbiBMSHQodCxlKXtyZXR1cm4geTJlKGIyZSh0KSxlKX12YXIgREh0PXUoKCk9PntSU2UoKTt2MmUoKTtpKExIdCwic2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UiKX0pO2Z1bmN0aW9uIEZTZSh0LGUpe2lmKHQhPW51bGwpe2lmKHAyZSh0KSlyZXR1cm4gd0h0KHQsZSk7aWYoWXgodCkpcmV0dXJuIENIdCh0LGUpO2lmKHUyZSh0KSlyZXR1cm4gU0h0KHQsZSk7aWYoZjJlKHQpKXJldHVybiB5MmUodCxlKTtpZihnMmUodCkpcmV0dXJuIF9IdCh0LGUpO2lmKHgyZSh0KSlyZXR1cm4gTEh0KHQsZSl9dGhyb3cgaDJlKHQpfXZhciBCU2U9dSgoKT0+e2tIdCgpO01IdCgpO3pIdCgpO1RIdCgpO1JTZSgpO0VTZSgpO0FTZSgpO2QyZSgpO09TZSgpO0lTZSgpO1BTZSgpO3YyZSgpO0RIdCgpO2koRlNlLCJzY2hlZHVsZWQiKX0pO2Z1bmN0aW9uIEwwKHQsZSl7cmV0dXJuIGU/RlNlKHQsZSk6bGkodCl9dmFyIHdDPXUoKCk9PntCU2UoKTtaMSgpO2koTDAsImZyb20iKX0pO2Z1bmN0aW9uIFhoKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciByPVQwKHQpO3JldHVybiBMMCh0LHIpfXZhciBIU2U9dSgoKT0+e0d4KCk7d0MoKTtpKFhoLCJvZiIpfSk7ZnVuY3Rpb24gcVNlKHQsZSl7dmFyIHI9YXIodCk/dDpmdW5jdGlvbigpe3JldHVybiB0fSxhPWkoZnVuY3Rpb24ocyl7cmV0dXJuIHMuZXJyb3IocigpKX0sImluaXQiKTtyZXR1cm4gbmV3IGxyKGU/ZnVuY3Rpb24ocyl7cmV0dXJuIGUuc2NoZWR1bGUoYSwwLHMpfTphKX12YXIgVlNlPXUoKCk9PntSbygpO2ZuKCk7aShxU2UsInRocm93RXJyb3IiKX0pO2Z1bmN0aW9uIHo3YSh0LGUpe3ZhciByLGEscyxuPXQsbz1uLmtpbmQsbD1uLnZhbHVlLGM9bi5lcnJvcjtpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBub3RpZmljYXRpb24sIG1pc3NpbmcgImtpbmQiJyk7bz09PSJOIj8ocj1lLm5leHQpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKGUsbCk6bz09PSJFIj8oYT1lLmVycm9yKT09PW51bGx8fGE9PT12b2lkIDB8fGEuY2FsbChlLGMpOihzPWUuY29tcGxldGUpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5jYWxsKGUpfXZhciBqU2UsJEh0LEFIdD11KCgpPT57bDJlKCk7SFNlKCk7VlNlKCk7Zm4oKTsoZnVuY3Rpb24odCl7dC5ORVhUPSJOIix0LkVSUk9SPSJFIix0LkNPTVBMRVRFPSJDIn0pKGpTZXx8KGpTZT17fSkpOyRIdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUscixhKXt0aGlzLmtpbmQ9ZSx0aGlzLnZhbHVlPXIsdGhpcy5lcnJvcj1hLHRoaXMuaGFzVmFsdWU9ZT09PSJOIn1yZXR1cm4gaSh0LCJOb3RpZmljYXRpb24iKSx0LnByb3RvdHlwZS5vYnNlcnZlPWZ1bmN0aW9uKGUpe3JldHVybiB6N2EodGhpcyxlKX0sdC5wcm90b3R5cGUuZG89ZnVuY3Rpb24oZSxyLGEpe3ZhciBzPXRoaXMsbj1zLmtpbmQsbz1zLnZhbHVlLGw9cy5lcnJvcjtyZXR1cm4gbj09PSJOIj9lPy4obyk6bj09PSJFIj9yPy4obCk6YT8uKCl9LHQucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbihlLHIsYSl7dmFyIHM7cmV0dXJuIGFyKChzPWUpPT09bnVsbHx8cz09PXZvaWQgMD92b2lkIDA6cy5uZXh0KT90aGlzLm9ic2VydmUoZSk6dGhpcy5kbyhlLHIsYSl9LHQucHJvdG90eXBlLnRvT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMscj1lLmtpbmQsYT1lLnZhbHVlLHM9ZS5lcnJvcixuPXI9PT0iTiI/WGgoYSk6cj09PSJFIj9xU2UoZnVuY3Rpb24oKXtyZXR1cm4gc30pOnI9PT0iQyI/bzJlOjA7aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCAiK3IpO3JldHVybiBufSx0LmNyZWF0ZU5leHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KCJOIixlKX0sdC5jcmVhdGVFcnJvcj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHQoIkUiLHZvaWQgMCxlKX0sdC5jcmVhdGVDb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiB0LmNvbXBsZXRlTm90aWZpY2F0aW9ufSx0LmNvbXBsZXRlTm90aWZpY2F0aW9uPW5ldyB0KCJDIiksdH0pKCk7aSh6N2EsIm9ic2VydmVOb3RpZmljYXRpb24iKX0pO3ZhciBFSHQ9dSgoKT0+e30pO3ZhciBfN2EsSUh0PXUoKCk9PntIdSgpO183YT1NMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzLm1lc3NhZ2U9Im5vIGVsZW1lbnRzIGluIHNlcXVlbmNlIn0sIkVtcHR5RXJyb3JJbXBsIil9KX0pO3ZhciBQSHQ9dSgoKT0+e30pO3ZhciBOSHQ9dSgoKT0+e30pO3ZhciBUN2EsT0h0PXUoKCk9PntIdSgpO1Q3YT1NMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJBcmd1bWVudE91dE9mUmFuZ2VFcnJvciIsdGhpcy5tZXNzYWdlPSJhcmd1bWVudCBvdXQgb2YgcmFuZ2UifSwiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JJbXBsIil9KX0pO3ZhciBMN2EsUkh0PXUoKCk9PntIdSgpO0w3YT1NMShmdW5jdGlvbih0KXtyZXR1cm4gaShmdW5jdGlvbihyKXt0KHRoaXMpLHRoaXMubmFtZT0iTm90Rm91bmRFcnJvciIsdGhpcy5tZXNzYWdlPXJ9LCJOb3RGb3VuZEVycm9ySW1wbCIpfSl9KTt2YXIgRDdhLEZIdD11KCgpPT57SHUoKTtEN2E9TTEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7dCh0aGlzKSx0aGlzLm5hbWU9IlNlcXVlbmNlRXJyb3IiLHRoaXMubWVzc2FnZT1yfSwiU2VxdWVuY2VFcnJvckltcGwiKX0pfSk7ZnVuY3Rpb24gdzJlKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKHQpfXZhciBVU2U9dSgoKT0+e2kodzJlLCJpc1ZhbGlkRGF0ZSIpfSk7ZnVuY3Rpb24gSEh0KHQsZSl7dmFyIHI9dzJlKHQpP3tmaXJzdDp0fTp0eXBlb2YgdD09Im51bWJlciI/e2VhY2g6dH06dCxhPXIuZmlyc3Qscz1yLmVhY2gsbj1yLndpdGgsbz1uPT09dm9pZCAwPyQ3YTpuLGw9ci5zY2hlZHVsZXIsYz1sPT09dm9pZCAwP2U/P0MxOmwsZD1yLm1ldGEsZj1kPT09dm9pZCAwP251bGw6ZDtpZihhPT1udWxsJiZzPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIHRpbWVvdXQgcHJvdmlkZWQuIik7cmV0dXJuIEpyKGZ1bmN0aW9uKHAsaCl7dmFyIG0sdixiPW51bGwsZz0wLHk9aShmdW5jdGlvbihrKXt2PVdzKGgsYyxmdW5jdGlvbigpe3RyeXttLnVuc3Vic2NyaWJlKCksbGkobyh7bWV0YTpmLGxhc3RWYWx1ZTpiLHNlZW46Z30pKS5zdWJzY3JpYmUoaCl9Y2F0Y2goTSl7aC5lcnJvcihNKX19LGspfSwic3RhcnRUaW1lciIpO209cC5zdWJzY3JpYmUoUnIoaCxmdW5jdGlvbihrKXt2Py51bnN1YnNjcmliZSgpLGcrKyxoLm5leHQoYj1rKSxzPjAmJnkocyl9LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2Py5jbG9zZWR8fHY/LnVuc3Vic2NyaWJlKCksYj1udWxsfSkpLCFnJiZ5KGEhPW51bGw/dHlwZW9mIGE9PSJudW1iZXIiP2E6K2EtYy5ub3coKTpzKX0pfWZ1bmN0aW9uICQ3YSh0KXt0aHJvdyBuZXcgQkh0KHQpfXZhciBCSHQsazJlPXUoKCk9PntnNCgpO1VTZSgpO2tzKCk7WjEoKTtIdSgpO2huKCk7VnUoKTtCSHQ9TTEoZnVuY3Rpb24odCl7cmV0dXJuIGkoZnVuY3Rpb24ocil7cj09PXZvaWQgMCYmKHI9bnVsbCksdCh0aGlzKSx0aGlzLm1lc3NhZ2U9IlRpbWVvdXQgaGFzIG9jY3VycmVkIix0aGlzLm5hbWU9IlRpbWVvdXRFcnJvciIsdGhpcy5pbmZvPXJ9LCJUaW1lb3V0RXJyb3JJbXBsIil9KTtpKEhIdCwidGltZW91dCIpO2koJDdhLCJ0aW1lb3V0RXJyb3JGYWN0b3J5Iil9KTtmdW5jdGlvbiBEMCh0LGUpe3JldHVybiBKcihmdW5jdGlvbihyLGEpe3ZhciBzPTA7ci5zdWJzY3JpYmUoUnIoYSxmdW5jdGlvbihuKXthLm5leHQodC5jYWxsKGUsbixzKyspKX0pKX0pfXZhciBrQz11KCgpPT57a3MoKTtobigpO2koRDAsIm1hcCIpfSk7ZnVuY3Rpb24gRTdhKHQsZSl7cmV0dXJuIEE3YShlKT90LmFwcGx5KHZvaWQgMCxVcyhbXSxPaShlKSkpOnQoZSl9ZnVuY3Rpb24gUzJlKHQpe3JldHVybiBEMChmdW5jdGlvbihlKXtyZXR1cm4gRTdhKHQsZSl9KX12YXIgQTdhLFdTZT11KCgpPT57RGEoKTtrQygpO0E3YT1BcnJheS5pc0FycmF5O2koRTdhLCJjYWxsT3JBcHBseSIpO2koUzJlLCJtYXBPbmVPck1hbnlBcmdzIil9KTt2YXIgcUh0PXUoKCk9Pnt9KTt2YXIgVkh0PXUoKCk9Pnt9KTtmdW5jdGlvbiBqSHQodCl7aWYodC5sZW5ndGg9PT0xKXt2YXIgZT10WzBdO2lmKEk3YShlKSlyZXR1cm57YXJnczplLGtleXM6bnVsbH07aWYoUjdhKGUpKXt2YXIgcj1PN2EoZSk7cmV0dXJue2FyZ3M6ci5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGVbYV19KSxrZXlzOnJ9fX1yZXR1cm57YXJnczp0LGtleXM6bnVsbH19ZnVuY3Rpb24gUjdhKHQpe3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCImJlA3YSh0KT09PU43YX12YXIgSTdhLFA3YSxON2EsTzdhLFVIdD11KCgpPT57STdhPUFycmF5LmlzQXJyYXksUDdhPU9iamVjdC5nZXRQcm90b3R5cGVPZixON2E9T2JqZWN0LnByb3RvdHlwZSxPN2E9T2JqZWN0LmtleXM7aShqSHQsImFyZ3NBcmdBcnJheU9yT2JqZWN0Iik7aShSN2EsImlzUE9KTyIpfSk7ZnVuY3Rpb24gV0h0KHQsZSl7cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKHIsYSxzKXtyZXR1cm4gclthXT1lW3NdLHJ9LHt9KX12YXIgR0h0PXUoKCk9PntpKFdIdCwiY3JlYXRlT2JqZWN0Iil9KTtmdW5jdGlvbiBHU2UoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9VDAodCksYT12SHQodCkscz1qSHQodCksbj1zLmFyZ3Msbz1zLmtleXM7aWYobi5sZW5ndGg9PT0wKXJldHVybiBMMChbXSxyKTt2YXIgbD1uZXcgbHIoRjdhKG4scixvP2Z1bmN0aW9uKGMpe3JldHVybiBXSHQobyxjKX06XzApKTtyZXR1cm4gYT9sLnBpcGUoUzJlKGEpKTpsfWZ1bmN0aW9uIEY3YSh0LGUscil7cmV0dXJuIHI9PT12b2lkIDAmJihyPV8wKSxmdW5jdGlvbihhKXtZSHQoZSxmdW5jdGlvbigpe2Zvcih2YXIgcz10Lmxlbmd0aCxuPW5ldyBBcnJheShzKSxvPXMsbD1zLGM9aShmdW5jdGlvbihmKXtZSHQoZSxmdW5jdGlvbigpe3ZhciBwPUwwKHRbZl0sZSksaD0hMTtwLnN1YnNjcmliZShScihhLGZ1bmN0aW9uKG0pe25bZl09bSxofHwoaD0hMCxsLS0pLGx8fGEubmV4dChyKG4uc2xpY2UoKSkpfSxmdW5jdGlvbigpey0tb3x8YS5jb21wbGV0ZSgpfSkpfSxhKX0sIl9sb29wXzEiKSxkPTA7ZDxzO2QrKyljKGQpfSxhKX19ZnVuY3Rpb24gWUh0KHQsZSxyKXt0P1dzKHIsdCxlKTplKCl9dmFyIEtIdD11KCgpPT57Um8oKTtVSHQoKTt3QygpO0h4KCk7V1NlKCk7R3goKTtHSHQoKTtobigpO1Z1KCk7aShHU2UsImNvbWJpbmVMYXRlc3QiKTtpKEY3YSwiY29tYmluZUxhdGVzdEluaXQiKTtpKFlIdCwibWF5YmVTY2hlZHVsZSIpfSk7ZnVuY3Rpb24gWkh0KHQsZSxyLGEscyxuLG8sbCl7dmFyIGM9W10sZD0wLGY9MCxwPSExLGg9aShmdW5jdGlvbigpe3AmJiFjLmxlbmd0aCYmIWQmJmUuY29tcGxldGUoKX0sImNoZWNrQ29tcGxldGUiKSxtPWkoZnVuY3Rpb24oYil7cmV0dXJuIGQ8YT92KGIpOmMucHVzaChiKX0sIm91dGVyTmV4dCIpLHY9aShmdW5jdGlvbihiKXtuJiZlLm5leHQoYiksZCsrO3ZhciBnPSExO2xpKHIoYixmKyspKS5zdWJzY3JpYmUoUnIoZSxmdW5jdGlvbih5KXtzPy4oeSksbj9tKHkpOmUubmV4dCh5KX0sZnVuY3Rpb24oKXtnPSEwfSx2b2lkIDAsZnVuY3Rpb24oKXtpZihnKXRyeXtkLS07Zm9yKHZhciB5PWkoZnVuY3Rpb24oKXt2YXIgaz1jLnNoaWZ0KCk7bz9XcyhlLG8sZnVuY3Rpb24oKXtyZXR1cm4gdihrKX0pOnYoayl9LCJfbG9vcF8xIik7Yy5sZW5ndGgmJmQ8YTspeSgpO2goKX1jYXRjaChrKXtlLmVycm9yKGspfX0pKX0sImRvSW5uZXJTdWIiKTtyZXR1cm4gdC5zdWJzY3JpYmUoUnIoZSxtLGZ1bmN0aW9uKCl7cD0hMCxoKCl9KSksZnVuY3Rpb24oKXtsPy4oKX19dmFyIFFIdD11KCgpPT57WjEoKTtWdSgpO2huKCk7aShaSHQsIm1lcmdlSW50ZXJuYWxzIil9KTtmdW5jdGlvbiBKaCh0LGUscil7cmV0dXJuIHI9PT12b2lkIDAmJihyPTEvMCksYXIoZSk/SmgoZnVuY3Rpb24oYSxzKXtyZXR1cm4gRDAoZnVuY3Rpb24obixvKXtyZXR1cm4gZShhLG4scyxvKX0pKGxpKHQoYSxzKSkpfSxyKToodHlwZW9mIGU9PSJudW1iZXIiJiYocj1lKSxKcihmdW5jdGlvbihhLHMpe3JldHVybiBaSHQoYSxzLHQscil9KSl9dmFyIFNDPXUoKCk9PntrQygpO1oxKCk7a3MoKTtRSHQoKTtmbigpO2koSmgsIm1lcmdlTWFwIil9KTtmdW5jdGlvbiBNMmUodCl7cmV0dXJuIHQ9PT12b2lkIDAmJih0PTEvMCksSmgoXzAsdCl9dmFyIEMyZT11KCgpPT57U0MoKTtIeCgpO2koTTJlLCJtZXJnZUFsbCIpfSk7ZnVuY3Rpb24gejJlKCl7cmV0dXJuIE0yZSgxKX12YXIgXzJlPXUoKCk9PntDMmUoKTtpKHoyZSwiY29uY2F0QWxsIil9KTtmdW5jdGlvbiBUMmUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIHoyZSgpKEwwKHQsVDAodCkpKX12YXIgWVNlPXUoKCk9PntfMmUoKTtHeCgpO3dDKCk7aShUMmUsImNvbmNhdCIpfSk7dmFyIFhIdD11KCgpPT57fSk7dmFyIEpIdD11KCgpPT57fSk7dmFyIGVxdD11KCgpPT57fSk7ZnVuY3Rpb24gZTYodCxlLHIsYSl7aWYoYXIocikmJihhPXIscj12b2lkIDApLGEpcmV0dXJuIGU2KHQsZSxyKS5waXBlKFMyZShhKSk7dmFyIHM9T2koVTdhKHQpP0g3YS5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiB0W2xdKGUsYyxyKX19KTpWN2EodCk/QjdhLm1hcCh0cXQodCxlKSk6ajdhKHQpP3E3YS5tYXAodHF0KHQsZSkpOltdLDIpLG49c1swXSxvPXNbMV07aWYoIW4mJll4KHQpKXJldHVybiBKaChmdW5jdGlvbihsKXtyZXR1cm4gZTYobCxlLHIpfSkobGkodCkpO2lmKCFuKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyBscihmdW5jdGlvbihsKXt2YXIgYz1pKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPVtdLGY9MDtmPGFyZ3VtZW50cy5sZW5ndGg7ZisrKWRbZl09YXJndW1lbnRzW2ZdO3JldHVybiBsLm5leHQoMTxkLmxlbmd0aD9kOmRbMF0pfSwiaGFuZGxlciIpO3JldHVybiBuKGMpLGZ1bmN0aW9uKCl7cmV0dXJuIG8oYyl9fSl9ZnVuY3Rpb24gdHF0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gdFtyXShlLGEpfX19ZnVuY3Rpb24gVjdhKHQpe3JldHVybiBhcih0LmFkZExpc3RlbmVyKSYmYXIodC5yZW1vdmVMaXN0ZW5lcil9ZnVuY3Rpb24gajdhKHQpe3JldHVybiBhcih0Lm9uKSYmYXIodC5vZmYpfWZ1bmN0aW9uIFU3YSh0KXtyZXR1cm4gYXIodC5hZGRFdmVudExpc3RlbmVyKSYmYXIodC5yZW1vdmVFdmVudExpc3RlbmVyKX12YXIgQjdhLEg3YSxxN2EscnF0PXUoKCk9PntEYSgpO1oxKCk7Um8oKTtTQygpO2QyZSgpO2ZuKCk7V1NlKCk7QjdhPVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLEg3YT1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0scTdhPVsib24iLCJvZmYiXTtpKGU2LCJmcm9tRXZlbnQiKTtpKHRxdCwidG9Db21tb25IYW5kbGVyUmVnaXN0cnkiKTtpKFY3YSwiaXNOb2RlU3R5bGVFdmVudEVtaXR0ZXIiKTtpKGo3YSwiaXNKUXVlcnlTdHlsZUV2ZW50RW1pdHRlciIpO2koVTdhLCJpc0V2ZW50VGFyZ2V0Iil9KTt2YXIgYXF0PXUoKCk9Pnt9KTt2YXIgaXF0PXUoKCk9Pnt9KTt2YXIgc3F0PXUoKCk9Pnt9KTtmdW5jdGlvbiBNQyh0LGUscil7dD09PXZvaWQgMCYmKHQ9MCkscj09PXZvaWQgMCYmKHI9TVNlKTt2YXIgYT0tMTtyZXR1cm4gZSE9bnVsbCYmKGMyZShlKT9yPWU6YT1lKSxuZXcgbHIoZnVuY3Rpb24ocyl7dmFyIG49dzJlKHQpPyt0LXIubm93KCk6dDtuPDAmJihuPTApO3ZhciBvPTA7cmV0dXJuIHIuc2NoZWR1bGUoZnVuY3Rpb24oKXtzLmNsb3NlZHx8KHMubmV4dChvKyspLDA8PWE/dGhpcy5zY2hlZHVsZSh2b2lkIDAsYSk6cy5jb21wbGV0ZSgpKX0sbil9KX12YXIgTDJlPXUoKCk9PntSbygpO2c0KCk7RFNlKCk7VVNlKCk7aShNQywidGltZXIiKX0pO2Z1bmN0aW9uIEtTZSh0LGUpe3JldHVybiB0PT09dm9pZCAwJiYodD0wKSxlPT09dm9pZCAwJiYoZT1DMSksdDwwJiYodD0wKSxNQyh0LHQsZSl9dmFyIG5xdD11KCgpPT57ZzQoKTtMMmUoKTtpKEtTZSwiaW50ZXJ2YWwiKX0pO3ZhciBvcXQ9dSgoKT0+e30pO2Z1bmN0aW9uIFc3YSgpe3JldHVybiBscXR9dmFyIGxxdCxaU2U9dSgoKT0+e1JvKCk7WWgoKTtscXQ9bmV3IGxyKEJsKTtpKFc3YSwibmV2ZXIiKX0pO3ZhciBjcXQ9dSgoKT0+e30pO3ZhciBkcXQ9dSgoKT0+e30pO2Z1bmN0aW9uIEQyZSh0LGUpe3JldHVybiBKcihmdW5jdGlvbihyLGEpe3ZhciBzPTA7ci5zdWJzY3JpYmUoUnIoYSxmdW5jdGlvbihuKXtyZXR1cm4gdC5jYWxsKGUsbixzKyspJiZhLm5leHQobil9KSl9KX12YXIgUVNlPXUoKCk9PntrcygpO2huKCk7aShEMmUsImZpbHRlciIpfSk7dmFyIHVxdD11KCgpPT57fSk7dmFyIHBxdD11KCgpPT57fSk7dmFyIGZxdD11KCgpPT57fSk7dmFyIGhxdD11KCgpPT57fSk7dmFyIG1xdD11KCgpPT57fSk7dmFyIGdxdD11KCgpPT57fSk7dmFyIFhTZT11KCgpPT57fSk7dmFyIEpTZT11KCgpPT57fSk7ZnVuY3Rpb24gJDJlKHQpe3JldHVybiBKcihmdW5jdGlvbihlLHIpe3ZhciBhPVtdO3JldHVybiBlLnN1YnNjcmliZShScihyLGZ1bmN0aW9uKHMpe3JldHVybiBhLnB1c2gocyl9LGZ1bmN0aW9uKCl7ci5uZXh0KGEpLHIuY29tcGxldGUoKX0pKSxsaSh0KS5zdWJzY3JpYmUoUnIocixmdW5jdGlvbigpe3ZhciBzPWE7YT1bXSxyLm5leHQocyl9LEJsKSksZnVuY3Rpb24oKXthPW51bGx9fSl9dmFyIGVNZT11KCgpPT57a3MoKTtZaCgpO2huKCk7WjEoKTtpKCQyZSwiYnVmZmVyIil9KTtmdW5jdGlvbiBBMmUodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9bnVsbCksZT1lPz90LEpyKGZ1bmN0aW9uKHIsYSl7dmFyIHM9W10sbj0wO3Iuc3Vic2NyaWJlKFJyKGEsZnVuY3Rpb24obyl7dmFyIGwsYyxkLGYscD1udWxsO24rKyVlPT09MCYmcy5wdXNoKFtdKTt0cnl7Zm9yKHZhciBoPW5vKHMpLG09aC5uZXh0KCk7IW0uZG9uZTttPWgubmV4dCgpKXt2YXIgdj1tLnZhbHVlO3YucHVzaChvKSx0PD12Lmxlbmd0aCYmKHA9cD8/W10scC5wdXNoKHYpKX19Y2F0Y2goeSl7bD17ZXJyb3I6eX19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKGM9aC5yZXR1cm4pJiZjLmNhbGwoaCl9ZmluYWxseXtpZihsKXRocm93IGwuZXJyb3J9fWlmKHApdHJ5e2Zvcih2YXIgYj1ubyhwKSxnPWIubmV4dCgpOyFnLmRvbmU7Zz1iLm5leHQoKSl7dmFyIHY9Zy52YWx1ZTtqMihzLHYpLGEubmV4dCh2KX19Y2F0Y2goeSl7ZD17ZXJyb3I6eX19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKGY9Yi5yZXR1cm4pJiZmLmNhbGwoYil9ZmluYWxseXtpZihkKXRocm93IGQuZXJyb3J9fX0sZnVuY3Rpb24oKXt2YXIgbyxsO3RyeXtmb3IodmFyIGM9bm8ocyksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBmPWQudmFsdWU7YS5uZXh0KGYpfX1jYXRjaChwKXtvPXtlcnJvcjpwfX1maW5hbGx5e3RyeXtkJiYhZC5kb25lJiYobD1jLnJldHVybikmJmwuY2FsbChjKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19YS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtzPW51bGx9KSl9KX12YXIgdE1lPXUoKCk9PntEYSgpO2tzKCk7aG4oKTtPeCgpO2koQTJlLCJidWZmZXJDb3VudCIpfSk7ZnVuY3Rpb24gRTJlKHQpe2Zvcih2YXIgZSxyLGE9W10scz0xO3M8YXJndW1lbnRzLmxlbmd0aDtzKyspYVtzLTFdPWFyZ3VtZW50c1tzXTt2YXIgbj0oZT1UMChhKSkhPT1udWxsJiZlIT09dm9pZCAwP2U6QzEsbz0ocj1hWzBdKSE9PW51bGwmJnIhPT12b2lkIDA/cjpudWxsLGw9YVsxXXx8MS8wO3JldHVybiBKcihmdW5jdGlvbihjLGQpe3ZhciBmPVtdLHA9ITEsaD1pKGZ1bmN0aW9uKGIpe3ZhciBnPWIuYnVmZmVyLHk9Yi5zdWJzO3kudW5zdWJzY3JpYmUoKSxqMihmLGIpLGQubmV4dChnKSxwJiZtKCl9LCJlbWl0IiksbT1pKGZ1bmN0aW9uKCl7aWYoZil7dmFyIGI9bmV3IHRzO2QuYWRkKGIpO3ZhciBnPVtdLHk9e2J1ZmZlcjpnLHN1YnM6Yn07Zi5wdXNoKHkpLFdzKGIsbixmdW5jdGlvbigpe3JldHVybiBoKHkpfSx0KX19LCJzdGFydEJ1ZmZlciIpO28hPT1udWxsJiZvPj0wP1dzKGQsbixtLG8sITApOnA9ITAsbSgpO3ZhciB2PVJyKGQsZnVuY3Rpb24oYil7dmFyIGcseSxrPWYuc2xpY2UoKTt0cnl7Zm9yKHZhciBNPW5vKGspLE49TS5uZXh0KCk7IU4uZG9uZTtOPU0ubmV4dCgpKXt2YXIgXz1OLnZhbHVlLFM9Xy5idWZmZXI7Uy5wdXNoKGIpLGw8PVMubGVuZ3RoJiZoKF8pfX1jYXRjaChPKXtnPXtlcnJvcjpPfX1maW5hbGx5e3RyeXtOJiYhTi5kb25lJiYoeT1NLnJldHVybikmJnkuY2FsbChNKX1maW5hbGx5e2lmKGcpdGhyb3cgZy5lcnJvcn19fSxmdW5jdGlvbigpe2Zvcig7Zj8ubGVuZ3RoOylkLm5leHQoZi5zaGlmdCgpLmJ1ZmZlcik7dj8udW5zdWJzY3JpYmUoKSxkLmNvbXBsZXRlKCksZC51bnN1YnNjcmliZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gZj1udWxsfSk7Yy5zdWJzY3JpYmUodil9KX12YXIgck1lPXUoKCk9PntEYSgpO3owKCk7a3MoKTtobigpO094KCk7ZzQoKTtHeCgpO1Z1KCk7aShFMmUsImJ1ZmZlclRpbWUiKX0pO3ZhciBhTWU9dSgoKT0+e30pO3ZhciBpTWU9dSgoKT0+e30pO3ZhciBzTWU9dSgoKT0+e30pO3ZhciBuTWU9dSgoKT0+e30pO3ZhciBvTWU9dSgoKT0+e30pO3ZhciBsTWU9dSgoKT0+e30pO3ZhciBjTWU9dSgoKT0+e30pO3ZhciBicXQ9dSgoKT0+e30pO3ZhciBkTWU9dSgoKT0+e30pO3ZhciB1TWU9dSgoKT0+e30pO3ZhciBwTWU9dSgoKT0+e30pO3ZhciB4cXQ9dSgoKT0+e30pO3ZhciBmTWU9dSgoKT0+e30pO3ZhciBoTWU9dSgoKT0+e30pO3ZhciBtTWU9dSgoKT0+e30pO2Z1bmN0aW9uIEkyZSh0KXtyZXR1cm4gSnIoZnVuY3Rpb24oZSxyKXt2YXIgYT0hMSxzPW51bGwsbj1udWxsLG89aShmdW5jdGlvbigpe2lmKG4/LnVuc3Vic2NyaWJlKCksbj1udWxsLGEpe2E9ITE7dmFyIGw9cztzPW51bGwsci5uZXh0KGwpfX0sImVtaXQiKTtlLnN1YnNjcmliZShScihyLGZ1bmN0aW9uKGwpe24/LnVuc3Vic2NyaWJlKCksYT0hMCxzPWwsbj1ScihyLG8sQmwpLGxpKHQobCkpLnN1YnNjcmliZShuKX0sZnVuY3Rpb24oKXtvKCksci5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtzPW49bnVsbH0pKX0pfXZhciBnTWU9dSgoKT0+e2tzKCk7WWgoKTtobigpO1oxKCk7aShJMmUsImRlYm91bmNlIil9KTtmdW5jdGlvbiBQMmUodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9QzEpLEpyKGZ1bmN0aW9uKHIsYSl7dmFyIHM9bnVsbCxuPW51bGwsbz1udWxsLGw9aShmdW5jdGlvbigpe2lmKHMpe3MudW5zdWJzY3JpYmUoKSxzPW51bGw7dmFyIGQ9bjtuPW51bGwsYS5uZXh0KGQpfX0sImVtaXQiKTtmdW5jdGlvbiBjKCl7dmFyIGQ9byt0LGY9ZS5ub3coKTtpZihmPGQpe3M9dGhpcy5zY2hlZHVsZSh2b2lkIDAsZC1mKSxhLmFkZChzKTtyZXR1cm59bCgpfWkoYywiZW1pdFdoZW5JZGxlIiksci5zdWJzY3JpYmUoUnIoYSxmdW5jdGlvbihkKXtuPWQsbz1lLm5vdygpLHN8fChzPWUuc2NoZWR1bGUoYyx0KSxhLmFkZChzKSl9LGZ1bmN0aW9uKCl7bCgpLGEuY29tcGxldGUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7bj1zPW51bGx9KSl9KX12YXIgYk1lPXUoKCk9PntnNCgpO2tzKCk7aG4oKTtpKFAyZSwiZGVib3VuY2VUaW1lIil9KTt2YXIgeE1lPXUoKCk9Pnt9KTt2YXIgdk1lPXUoKCk9Pnt9KTt2YXIgeU1lPXUoKCk9Pnt9KTt2YXIgd01lPXUoKCk9Pnt9KTt2YXIga01lPXUoKCk9Pnt9KTt2YXIgU01lPXUoKCk9Pnt9KTt2YXIgTU1lPXUoKCk9Pnt9KTt2YXIgQ01lPXUoKCk9Pnt9KTtmdW5jdGlvbiBReCh0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT1fMCksdD10Pz9HN2EsSnIoZnVuY3Rpb24ocixhKXt2YXIgcyxuPSEwO3Iuc3Vic2NyaWJlKFJyKGEsZnVuY3Rpb24obyl7dmFyIGw9ZShvKTsobnx8IXQocyxsKSkmJihuPSExLHM9bCxhLm5leHQobykpfSkpfSl9ZnVuY3Rpb24gRzdhKHQsZSl7cmV0dXJuIHQ9PT1lfXZhciB6TWU9dSgoKT0+e0h4KCk7a3MoKTtobigpO2koUXgsImRpc3RpbmN0VW50aWxDaGFuZ2VkIik7aShHN2EsImRlZmF1bHRDb21wYXJlIil9KTt2YXIgX01lPXUoKCk9Pnt9KTt2YXIgVE1lPXUoKCk9Pnt9KTt2YXIgTE1lPXUoKCk9Pnt9KTt2YXIgRE1lPXUoKCk9Pnt9KTt2YXIgJE1lPXUoKCk9Pnt9KTt2YXIgQU1lPXUoKCk9Pnt9KTt2YXIgRU1lPXUoKCk9Pnt9KTt2YXIgSU1lPXUoKCk9Pnt9KTt2YXIgUE1lPXUoKCk9Pnt9KTt2YXIgTk1lPXUoKCk9Pnt9KTt2YXIgT01lPXUoKCk9Pnt9KTt2YXIgUk1lPXUoKCk9Pnt9KTt2YXIgRk1lPXUoKCk9Pnt9KTt2YXIgQk1lPXUoKCk9Pnt9KTt2YXIgSE1lPXUoKCk9Pnt9KTt2YXIgcU1lPXUoKCk9Pnt9KTt2YXIgVk1lPXUoKCk9Pnt9KTt2YXIgak1lPXUoKCk9Pnt9KTt2YXIgVU1lPXUoKCk9Pnt9KTt2YXIgV01lPXUoKCk9Pnt9KTt2YXIgR01lPXUoKCk9Pnt9KTt2YXIgWU1lPXUoKCk9Pnt9KTt2YXIgdnF0PXUoKCk9Pnt9KTt2YXIgS01lPXUoKCk9Pnt9KTt2YXIgWk1lPXUoKCk9Pnt9KTt2YXIgUU1lPXUoKCk9Pnt9KTt2YXIgWE1lPXUoKCk9Pnt9KTt2YXIgSk1lPXUoKCk9Pnt9KTt2YXIgZUNlPXUoKCk9Pnt9KTt2YXIgdENlPXUoKCk9Pnt9KTt2YXIgckNlPXUoKCk9Pnt9KTt2YXIgYUNlPXUoKCk9Pnt9KTt2YXIgaUNlPXUoKCk9Pnt9KTt2YXIgc0NlPXUoKCk9Pnt9KTt2YXIgbkNlPXUoKCk9Pnt9KTt2YXIgb0NlPXUoKCk9Pnt9KTt2YXIgbENlPXUoKCk9Pnt9KTt2YXIgY0NlPXUoKCk9Pnt9KTt2YXIgZENlPXUoKCk9Pnt9KTt2YXIgdUNlPXUoKCk9Pnt9KTt2YXIgcENlPXUoKCk9Pnt9KTt2YXIgZkNlPXUoKCk9Pnt9KTtmdW5jdGlvbiBOMmUodCl7dD09PXZvaWQgMCYmKHQ9e30pO3ZhciBlPXQuY29ubmVjdG9yLHI9ZT09PXZvaWQgMD9mdW5jdGlvbigpe3JldHVybiBuZXcgb299OmUsYT10LnJlc2V0T25FcnJvcixzPWE9PT12b2lkIDA/ITA6YSxuPXQucmVzZXRPbkNvbXBsZXRlLG89bj09PXZvaWQgMD8hMDpuLGw9dC5yZXNldE9uUmVmQ291bnRaZXJvLGM9bD09PXZvaWQgMD8hMDpsO3JldHVybiBmdW5jdGlvbihkKXt2YXIgZixwLGgsbT0wLHY9ITEsYj0hMSxnPWkoZnVuY3Rpb24oKXtwPy51bnN1YnNjcmliZSgpLHA9dm9pZCAwfSwiY2FuY2VsUmVzZXQiKSx5PWkoZnVuY3Rpb24oKXtnKCksZj1oPXZvaWQgMCx2PWI9ITF9LCJyZXNldCIpLGs9aShmdW5jdGlvbigpe3ZhciBNPWY7eSgpLE0/LnVuc3Vic2NyaWJlKCl9LCJyZXNldEFuZFVuc3Vic2NyaWJlIik7cmV0dXJuIEpyKGZ1bmN0aW9uKE0sTil7bSsrLCFiJiYhdiYmZygpO3ZhciBfPWg9aD8/cigpO04uYWRkKGZ1bmN0aW9uKCl7bS0tLG09PT0wJiYhYiYmIXYmJihwPWhDZShrLGMpKX0pLF8uc3Vic2NyaWJlKE4pLCFmJiZtPjAmJihmPW5ldyBxdSh7bmV4dDppKGZ1bmN0aW9uKFMpe3JldHVybiBfLm5leHQoUyl9LCJuZXh0IiksZXJyb3I6aShmdW5jdGlvbihTKXtiPSEwLGcoKSxwPWhDZSh5LHMsUyksXy5lcnJvcihTKX0sImVycm9yIiksY29tcGxldGU6aShmdW5jdGlvbigpe3Y9ITAsZygpLHA9aENlKHksbyksXy5jb21wbGV0ZSgpfSwiY29tcGxldGUiKX0pLGxpKE0pLnN1YnNjcmliZShmKSl9KShkKX19ZnVuY3Rpb24gaENlKHQsZSl7Zm9yKHZhciByPVtdLGE9MjthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKXJbYS0yXT1hcmd1bWVudHNbYV07aWYoZT09PSEwKXt0KCk7cmV0dXJufWlmKGUhPT0hMSl7dmFyIHM9bmV3IHF1KHtuZXh0OmkoZnVuY3Rpb24oKXtzLnVuc3Vic2NyaWJlKCksdCgpfSwibmV4dCIpfSk7cmV0dXJuIGxpKGUuYXBwbHkodm9pZCAwLFVzKFtdLE9pKHIpKSkpLnN1YnNjcmliZShzKX19dmFyIE8yZT11KCgpPT57RGEoKTtaMSgpO3F4KCk7ZkMoKTtrcygpO2koTjJlLCJzaGFyZSIpO2koaENlLCJoYW5kbGVSZXNldCIpfSk7ZnVuY3Rpb24gUjJlKHQsZSxyKXt2YXIgYSxzLG4sbyxsPSExO3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCI/KGE9dC5idWZmZXJTaXplLG89YT09PXZvaWQgMD8xLzA6YSxzPXQud2luZG93VGltZSxlPXM9PT12b2lkIDA/MS8wOnMsbj10LnJlZkNvdW50LGw9bj09PXZvaWQgMD8hMTpuLHI9dC5zY2hlZHVsZXIpOm89dD8/MS8wLE4yZSh7Y29ubmVjdG9yOmkoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGp4KG8sZSxyKX0sImNvbm5lY3RvciIpLHJlc2V0T25FcnJvcjohMCxyZXNldE9uQ29tcGxldGU6ITEscmVzZXRPblJlZkNvdW50WmVybzpsfSl9dmFyIG1DZT11KCgpPT57YlNlKCk7TzJlKCk7aShSMmUsInNoYXJlUmVwbGF5Iil9KTt2YXIgZ0NlPXUoKCk9Pnt9KTt2YXIgYkNlPXUoKCk9Pnt9KTt2YXIgeENlPXUoKCk9Pnt9KTt2YXIgdkNlPXUoKCk9Pnt9KTt2YXIgeUNlPXUoKCk9Pnt9KTtmdW5jdGlvbiBGMmUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIHI9VDAodCk7cmV0dXJuIEpyKGZ1bmN0aW9uKGEscyl7KHI/VDJlKHQsYSxyKTpUMmUodCxhKSkuc3Vic2NyaWJlKHMpfSl9dmFyIHdDZT11KCgpPT57WVNlKCk7R3goKTtrcygpO2koRjJlLCJzdGFydFdpdGgiKX0pO3ZhciBrQ2U9dSgoKT0+e30pO3ZhciBTQ2U9dSgoKT0+e30pO3ZhciBNQ2U9dSgoKT0+e30pO3ZhciBDQ2U9dSgoKT0+e30pO2Z1bmN0aW9uIFh4KHQpe3JldHVybiBKcihmdW5jdGlvbihlLHIpe2xpKHQpLnN1YnNjcmliZShScihyLGZ1bmN0aW9uKCl7cmV0dXJuIHIuY29tcGxldGUoKX0sQmwpKSwhci5jbG9zZWQmJmUuc3Vic2NyaWJlKHIpfSl9dmFyIHpDZT11KCgpPT57a3MoKTtobigpO1oxKCk7WWgoKTtpKFh4LCJ0YWtlVW50aWwiKX0pO3ZhciBfQ2U9dSgoKT0+e30pO3ZhciBUQ2U9dSgoKT0+e30pO2Z1bmN0aW9uIEIyZSh0LGUpe3JldHVybiBKcihmdW5jdGlvbihyLGEpe3ZhciBzPWU/P3t9LG49cy5sZWFkaW5nLG89bj09PXZvaWQgMD8hMDpuLGw9cy50cmFpbGluZyxjPWw9PT12b2lkIDA/ITE6bCxkPSExLGY9bnVsbCxwPW51bGwsaD0hMSxtPWkoZnVuY3Rpb24oKXtwPy51bnN1YnNjcmliZSgpLHA9bnVsbCxjJiYoZygpLGgmJmEuY29tcGxldGUoKSl9LCJlbmRUaHJvdHRsaW5nIiksdj1pKGZ1bmN0aW9uKCl7cD1udWxsLGgmJmEuY29tcGxldGUoKX0sImNsZWFudXBUaHJvdHRsaW5nIiksYj1pKGZ1bmN0aW9uKHkpe3JldHVybiBwPWxpKHQoeSkpLnN1YnNjcmliZShScihhLG0sdikpfSwic3RhcnRUaHJvdHRsZSIpLGc9aShmdW5jdGlvbigpe2lmKGQpe2Q9ITE7dmFyIHk9ZjtmPW51bGwsYS5uZXh0KHkpLCFoJiZiKHkpfX0sInNlbmQiKTtyLnN1YnNjcmliZShScihhLGZ1bmN0aW9uKHkpe2Q9ITAsZj15LCEocCYmIXAuY2xvc2VkKSYmKG8/ZygpOmIoeSkpfSxmdW5jdGlvbigpe2g9ITAsIShjJiZkJiZwJiYhcC5jbG9zZWQpJiZhLmNvbXBsZXRlKCl9KSl9KX12YXIgSDJlPXUoKCk9PntrcygpO2huKCk7WjEoKTtpKEIyZSwidGhyb3R0bGUiKX0pO2Z1bmN0aW9uIHEyZSh0LGUscil7ZT09PXZvaWQgMCYmKGU9QzEpO3ZhciBhPU1DKHQsZSk7cmV0dXJuIEIyZShmdW5jdGlvbigpe3JldHVybiBhfSxyKX12YXIgTENlPXUoKCk9PntnNCgpO0gyZSgpO0wyZSgpO2kocTJlLCJ0aHJvdHRsZVRpbWUiKX0pO2Z1bmN0aW9uIHdxdCh0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9QzEpLEpyKGZ1bmN0aW9uKGUscil7dmFyIGE9dC5ub3coKTtlLnN1YnNjcmliZShScihyLGZ1bmN0aW9uKHMpe3ZhciBuPXQubm93KCksbz1uLWE7YT1uLHIubmV4dChuZXcgeXF0KHMsbykpfSkpfSl9dmFyIHlxdCxEQ2U9dSgoKT0+e2c0KCk7a3MoKTtobigpO2kod3F0LCJ0aW1lSW50ZXJ2YWwiKTt5cXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHIpe3RoaXMudmFsdWU9ZSx0aGlzLmludGVydmFsPXJ9cmV0dXJuIGkodCwiVGltZUludGVydmFsIiksdH0pKCl9KTt2YXIgJENlPXUoKCk9Pnt9KTt2YXIgQUNlPXUoKCk9Pnt9KTt2YXIgRUNlPXUoKCk9Pnt9KTt2YXIgSUNlPXUoKCk9Pnt9KTt2YXIgUENlPXUoKCk9Pnt9KTt2YXIgTkNlPXUoKCk9Pnt9KTt2YXIgT0NlPXUoKCk9Pnt9KTt2YXIgUkNlPXUoKCk9Pnt9KTt2YXIgRkNlPXUoKCk9Pnt9KTt2YXIga3F0PXUoKCk9Pnt9KTt2YXIgQkNlPXUoKCk9Pnt9KTt2YXIgSng9dSgoKT0+e1JvKCk7R0J0KCk7aEMoKTtaQnQoKTtxeCgpO1FCdCgpO2JTZSgpO0pCdCgpO2xIdCgpO2c0KCk7cEh0KCk7Z0h0KCk7eEh0KCk7a1NlKCk7ejAoKTtmQygpO0FIdCgpO2NTZSgpO1loKCk7SHgoKTtFSHQoKTtQSHQoKTtOSHQoKTtPSHQoKTtJSHQoKTtSSHQoKTtoU2UoKTtGSHQoKTtrMmUoKTt0U2UoKTtxSHQoKTtWSHQoKTtLSHQoKTtZU2UoKTtKSHQoKTtYSHQoKTtsMmUoKTtlcXQoKTt3QygpO3JxdCgpO2FxdCgpO2lxdCgpO3NxdCgpO25xdCgpO29xdCgpO1pTZSgpO0hTZSgpO2NxdCgpO2RxdCgpO3VxdCgpO3BxdCgpO2ZxdCgpO1ZTZSgpO0wyZSgpO2hxdCgpO21xdCgpO0JTZSgpO2wyZSgpO1pTZSgpO2dxdCgpO1J4KCk7WFNlKCk7SlNlKCk7ZU1lKCk7dE1lKCk7ck1lKCk7YU1lKCk7aU1lKCk7c01lKCk7Y01lKCk7bE1lKCk7ZE1lKCk7XzJlKCk7dU1lKCk7cE1lKCk7Zk1lKCk7aE1lKCk7bU1lKCk7Z01lKCk7Yk1lKCk7eE1lKCk7U01lKCk7a01lKCk7TU1lKCk7Q01lKCk7ek1lKCk7X01lKCk7TE1lKCk7RE1lKCk7JE1lKCk7SU1lKCk7RU1lKCk7QU1lKCk7UE1lKCk7UVNlKCk7Tk1lKCk7T01lKCk7Uk1lKCk7Rk1lKCk7Qk1lKCk7eU1lKCk7SE1lKCk7Vk1lKCk7a0MoKTt3TWUoKTtqTWUoKTtVTWUoKTtDMmUoKTtXTWUoKTtTQygpO0dNZSgpO1lNZSgpO0tNZSgpO1pNZSgpO1FNZSgpO3ZDKCk7WE1lKCk7Sk1lKCk7ZUNlKCk7dENlKCk7ckNlKCk7YUNlKCk7aUNlKCk7c0NlKCk7bk1lKCk7bkNlKCk7b0NlKCk7bENlKCk7Y0NlKCk7czJlKCk7ZENlKCk7dUNlKCk7cENlKCk7ZkNlKCk7TzJlKCk7bUNlKCk7Z0NlKCk7YkNlKCk7eENlKCk7dkNlKCk7eUNlKCk7d0NlKCk7eUMoKTtTQ2UoKTtrQ2UoKTtNQ2UoKTtDQ2UoKTt2TWUoKTtxTWUoKTt6Q2UoKTtfQ2UoKTtUQ2UoKTtIMmUoKTtMQ2UoKTtUTWUoKTtEQ2UoKTtrMmUoKTskQ2UoKTtBQ2UoKTtvTWUoKTtFQ2UoKTtJQ2UoKTtQQ2UoKTtOQ2UoKTtPQ2UoKTtSQ2UoKTtGQ2UoKTtCQ2UoKX0pO3ZhciBTcXQ9dSgoKT0+e30pO3ZhciBNcXQ9dSgoKT0+e30pO3ZhciBDcXQ9dSgoKT0+e1hTZSgpO0pTZSgpO2VNZSgpO3RNZSgpO3JNZSgpO2FNZSgpO2lNZSgpO3NNZSgpO2NNZSgpO2xNZSgpO2JxdCgpO2RNZSgpO3hxdCgpO18yZSgpO3VNZSgpO3BNZSgpO2ZNZSgpO2hNZSgpO21NZSgpO2dNZSgpO2JNZSgpO3hNZSgpO1NNZSgpO2tNZSgpO01NZSgpO0NNZSgpO3pNZSgpO19NZSgpO0xNZSgpO0RNZSgpOyRNZSgpO0lNZSgpO0VNZSgpO0FNZSgpO1BNZSgpO1FTZSgpO05NZSgpO09NZSgpO1JNZSgpO0ZNZSgpO0JNZSgpO3lNZSgpO0hNZSgpO1ZNZSgpO2tDKCk7d01lKCk7ak1lKCk7VU1lKCk7dnF0KCk7QzJlKCk7V01lKCk7U0MoKTtHTWUoKTtZTWUoKTtLTWUoKTtaTWUoKTtRTWUoKTt2QygpO1hNZSgpO0pNZSgpO1NxdCgpO2VDZSgpO3RDZSgpO3JDZSgpO2FDZSgpO2lDZSgpO01xdCgpO3NDZSgpO25NZSgpO25DZSgpO29DZSgpO2xDZSgpO2NDZSgpO3MyZSgpO2RDZSgpO3VDZSgpO3BDZSgpO2ZDZSgpO08yZSgpO21DZSgpO2dDZSgpO2JDZSgpO3hDZSgpO3ZDZSgpO3lDZSgpO3dDZSgpO3lDKCk7U0NlKCk7a0NlKCk7TUNlKCk7Q0NlKCk7dk1lKCk7cU1lKCk7ekNlKCk7X0NlKCk7VENlKCk7SDJlKCk7TENlKCk7VE1lKCk7RENlKCk7azJlKCk7JENlKCk7QUNlKCk7b01lKCk7RUNlKCk7SUNlKCk7UENlKCk7TkNlKCk7T0NlKCk7UkNlKCk7a3F0KCk7RkNlKCk7QkNlKCl9KTt2YXIgZXY9e307VmUoZXYse09ic2VydmFibGU6KCk9PmxyLFJlcGxheVN1YmplY3Q6KCk9Pmp4LFN1YmplY3Q6KCk9Pm9vLFN1YnNjcmlwdGlvbjooKT0+dHMsZnJvbTooKT0+TDAsZnJvbUV2ZW50OigpPT5lNixvZjooKT0+WGgsb3BzOigpPT5NZ2F9KTt2YXIgTWdhLFYyZT11KCgpPT57SngoKTtDcXQoKTtNZ2E9e2J1ZmZlcjokMmUsYnVmZmVyQ291bnQ6QTJlLGJ1ZmZlclRpbWU6RTJlLGRlYm91bmNlOkkyZSxkZWJvdW5jZVRpbWU6UDJlLGZpbHRlcjpEMmUsbWFwOkQwLHN0YXJ0V2l0aDpGMmUsdGFrZVVudGlsOlh4LHRocm90dGxlVGltZTpxMmV9fSk7dmFyIEhDZSx6cXQ9dSgoKT0+e0psZSgpO1YyZSgpO0hDZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJPYnNlcnZhYmxlbWFwIil9Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheT1uZXcgQXJyYXksdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheT1uZXcgQXJyYXl9Z2V0U3ViamVjdEZvckVtaXR0ZXJFdmVudChlLHIpe2xldCBhPXRoaXMub2JzZXJ2YWJsZUV2ZW50RW1pdHRlckJ1bmRsZUFycmF5LmZpbmQocz0+cy5ldmVudFJlZj09PWUmJnMuZXZlbnQ9PT1yKTtpZihhKXJldHVybiBhLnN1YmplY3Q7e2xldCBzPWU2KGUsciksbj1uZXcgb287cy5zdWJzY3JpYmUobik7bGV0IG89e3N1YmplY3Q6bixldmVudFJlZjplLGV2ZW50OnJ9O3JldHVybiB0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5wdXNoKG8pLG8uc3ViamVjdH19Z2V0U3ViamVjdEZvckV2ZW50VGFyZ2V0KGUscil7bGV0IGE9dGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5maW5kKHM9PnMuZXZlbnRSZWY9PT1lJiZzLmV2ZW50PT09cik7aWYoYSlyZXR1cm4gYS5zdWJqZWN0O3tsZXQgbj17c3ViamVjdDpuZXcgb28sZXZlbnRSZWY6ZSxldmVudDpyfTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5wdXNoKG4pLG4uc3ViamVjdH19fX0pO3ZhciBxQ2UsX3F0PXUoKCk9PntKbGUoKTtWMmUoKTtxQ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiT2JzZXJ2YWJsZUludGFrZSIpfWNvbnN0cnVjdG9yKCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zPXtuZXh0OmkoZT0+e30sIm5leHQiKSxjb21wbGV0ZTppKGU9Pnt9LCJjb21wbGV0ZSIpfSx0aGlzLmdlbmVyYXRvcj1udWxsLHRoaXMuYnVmZmVyZWQ9ITEsdGhpcy5wYXlsb2FkQnVmZmVyPVtdLHRoaXMub2JzZXJ2YWJsZT1uZXcgbHIoZT0+e3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5uZXh0PSguLi5yKT0+ZS5uZXh0KHIpLHRoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5jb21wbGV0ZT0oKT0+KHRoaXMuY29tcGxldGVkRGVmZmVyZWQucmVzb2x2ZSgpLGUuY29tcGxldGUoKSl9KSx0aGlzLmNvbXBsZXRlZERlZmZlcmVkPSR0LmRlZmVyKCksdGhpcy5jb21wbGV0ZWQ9dGhpcy5jb21wbGV0ZWREZWZmZXJlZC5wcm9taXNlfXNldE9ic2VydmFibGUoZSl7dGhpcy5vYnNlcnZhYmxlPWV9cHVzaChlKXt0aGlzLmJ1ZmZlcmVkP3RoaXMucGF5bG9hZEJ1ZmZlci5wdXNoKGUpOnRoaXMuaW50ZXJuYWxQdXNoKGUpfXB1c2hNYW55KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMucHVzaChyKX1zZXRHZW5lcmF0b3IoZSl7dGhpcy5nZW5lcmF0b3I9ZX1tYWtlQnVmZmVyZWQoKXt0aGlzLmJ1ZmZlcmVkPSEwfXN1YnNjcmliZSguLi5lKXtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlLnN1YnNjcmliZSguLi5lKX1yZXF1ZXN0KGUpe2lmKGUhPT0wKWZvcihsZXQgcj0wO3IhPT1lO3IrKylpZih0aGlzLnBheWxvYWRCdWZmZXIubGVuZ3RoPjApdGhpcy5pbnRlcm5hbFB1c2godGhpcy5wYXlsb2FkQnVmZmVyLnNoaWZ0KCkpO2Vsc2V7bGV0IGE9dGhpcy5nZW5lcmF0b3IubmV4dCgpO3RoaXMuaW50ZXJuYWxQdXNoKGEudmFsdWUpfX1zaWduYWxDb21wbGV0ZSgpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5jb21wbGV0ZSgpfWludGVybmFsUHVzaChlKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMubmV4dChlKX19fSk7ZnVuY3Rpb24gQ2dhKHQpe3JldHVybiBuZXcgbHIoZT0+e2xldCByPWkoKCk9PnQucGF1c2UoKSwicGF1c2VTdHJlYW0iKSxhPWkoKCk9PnByb2Nlc3MubmV4dFRpY2soKCk9PnQucmVzdW1lKCkpLCJyZXN1bWVTdHJlYW0iKSxzPWkobj0+e3IoKSxlLm5leHQobiksYSgpfSwib25EYXRhIik7cmV0dXJuIHQub24oImRhdGEiLHMpLHQub24oImVycm9yIixuPT5lLmVycm9yKG4pKSx0Lm9uKCJlbmQiLCgpPT5lLmNvbXBsZXRlKCkpLHQub24oImNsb3NlIiwoKT0+ZS5jb21wbGV0ZSgpKSwoKT0+e3QucmVtb3ZlTGlzdGVuZXIoImRhdGEiLHMpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixlLmVycm9yKSx0LnJlbW92ZUxpc3RlbmVyKCJlbmQiLGUuY29tcGxldGUpLHQucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixlLmNvbXBsZXRlKX19KX12YXIgVHF0PXUoKCk9PntKeCgpO2koQ2dhLCJmcm9tU3RyZWFtV2l0aEJhY2twcmVzc3VyZSIpfSk7dmFyICRhPXt9O1ZlKCRhLHtPYnNlcnZhYmxlSW50YWtlOigpPT5xQ2UsT2JzZXJ2YWJsZW1hcDooKT0+SENlLGZyb21TdHJlYW1XaXRoQmFja3ByZXNzdXJlOigpPT5DZ2EscnhqczooKT0+ZXZ9KTt2YXIgYjQ9dSgoKT0+e0psZSgpO3pxdCgpO19xdCgpO1RxdCgpO1YyZSgpfSk7ZnVuY3Rpb24gUCh0KXtyZXR1cm4oZSxyKT0+dHlwZW9mIHI9PSJvYmplY3QiP0xxdCh0LGUscik6KChhLHMsbik9PntsZXQgbz1zLmhhc093blByb3BlcnR5KG4pO3JldHVybiBzLmNvbnN0cnVjdG9yLmNyZWF0ZVByb3BlcnR5KG4sYSksbz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsbik6dm9pZCAwfSkodCxlLHIpfXZhciB6Z2EsTHF0LGoyZT11KCgpPT57bkMoKTt6Z2E9e2F0dHJpYnV0ZTohMCx0eXBlOlN0cmluZyxjb252ZXJ0ZXI6UHgscmVmbGVjdDohMSxoYXNDaGFuZ2VkOnNDfSxMcXQ9aSgodD16Z2EsZSxyKT0+e2xldHtraW5kOmEsbWV0YWRhdGE6c309cixuPWdsb2JhbFRoaXMubGl0UHJvcGVydHlNZXRhZGF0YS5nZXQocyk7aWYobj09PXZvaWQgMCYmZ2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLnNldChzLG49bmV3IE1hcCksYT09PSJzZXR0ZXIiJiYoKHQ9T2JqZWN0LmNyZWF0ZSh0KSkud3JhcHBlZD0hMCksbi5zZXQoci5uYW1lLHQpLGE9PT0iYWNjZXNzb3IiKXtsZXR7bmFtZTpvfT1yO3JldHVybntzZXQobCl7bGV0IGM9ZS5nZXQuY2FsbCh0aGlzKTtlLnNldC5jYWxsKHRoaXMsbCksdGhpcy5yZXF1ZXN0VXBkYXRlKG8sYyx0LCEwLGwpfSxpbml0KGwpe3JldHVybiBsIT09dm9pZCAwJiZ0aGlzLkMobyx2b2lkIDAsdCxsKSxsfX19aWYoYT09PSJzZXR0ZXIiKXtsZXR7bmFtZTpvfT1yO3JldHVybiBmdW5jdGlvbihsKXtsZXQgYz10aGlzW29dO2UuY2FsbCh0aGlzLGwpLHRoaXMucmVxdWVzdFVwZGF0ZShvLGMsdCwhMCxsKX19dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGRlY29yYXRvciBsb2NhdGlvbjogIithKX0sInIiKTtpKFAsIm4iKX0pO3ZhciBEcXQ9dSgoKT0+e2oyZSgpfSk7dmFyICRxdD11KCgpPT57fSk7dmFyIFRyPXt9O1ZlKFRyLHtUaW1lb3V0OigpPT5VMmUsZGVsYXlGb3I6KCk9PkFxdCxkZWxheUZvclJhbmRvbTooKT0+X2dhfSk7dmFyIEFxdCxfZ2EsVTJlLHQ2PXUoKCk9PntLMSgpO0FxdD1pKGFzeW5jKHQsZSxyPSExKT0+KGF3YWl0IG5ldyBVMmUodCxudWxsLHIpLnByb21pc2UsZSksImRlbGF5Rm9yIiksX2dhPWkoYXN5bmModCxlLHIsYT0hMSk9Pihhd2FpdCBBcXQoTWF0aC5yYW5kb20oKSooZS10KSt0LG51bGwsYSksciksImRlbGF5Rm9yUmFuZG9tIiksVTJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRpbWVvdXQiKX1jb25zdHJ1Y3RvcihlLHIsYT0hMSl7dGhpcy5fY2FuY2VsbGVkPSExLHRoaXMudGltZW91dEluTWlsbGlzPWUsdGhpcy5fZGVmZXJyZWQ9QnUoKSx0aGlzLnByb21pc2U9dGhpcy5fZGVmZXJyZWQucHJvbWlzZSx0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9jYW5jZWxsZWR8fHRoaXMuX2RlZmVycmVkLnJlc29sdmUocil9LGUpLHRoaXMuc3RhcnRlZD1EYXRlLm5vdygpLGEmJnRoaXMubWFrZVVucmVmZWQoKX1tYWtlVW5yZWZlZCgpe3RoaXMuX3RpbWVvdXQudW5yZWY/LigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgZT10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gZT4wP2U6MH19fSk7dmFyIHR2PXt9O3ZhciBXMmU9dSgoKT0+e30pO2Z1bmN0aW9uIHI2KHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIHN0cmluZyIpO3JldHVybiB0LnJlcGxhY2UoL1t8XFx7fSgpW1xdXiQrKj8uXS9nLCJcXCQmIikucmVwbGFjZSgvLS9nLCJcXHgyZCIpfXZhciBHMmU9dSgoKT0+e2kocjYsImVzY2FwZVN0cmluZ1JlZ2V4cCIpfSk7dmFyIENDPXt9O1ZlKENDLHtpc01hdGNoOigpPT5EZ2EsbWF0Y2hlcjooKT0+TGdhfSk7ZnVuY3Rpb24gTGdhKHQsZSxyKXtyZXR1cm4gSXF0KHQsZSxyLCExKX1mdW5jdGlvbiBEZ2EodCxlLHIpe3JldHVybiBJcXQodCxlLHIsITApLmxlbmd0aD4wfXZhciBWQ2UsRXF0LFRnYSxJcXQsUHF0PXUoKCk9PntHMmUoKTtWQ2U9bmV3IE1hcCxFcXQ9aSgodCxlKT0+e2lmKCFBcnJheS5pc0FycmF5KHQpKXN3aXRjaCh0eXBlb2YgdCl7Y2FzZSJzdHJpbmciOnQ9W3RdO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjp0PVtdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5LCBidXQgZ290IGEgdHlwZSBvZiAnJHt0eXBlb2YgdH0nYCl9cmV0dXJuIHQuZmlsdGVyKHI9PntpZih0eXBlb2YgciE9InN0cmluZyIpe2lmKHR5cGVvZiByPiJ1IilyZXR1cm4hMTt0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAnJHtlfScgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncywgYnV0IGZvdW5kIGEgdHlwZSBvZiAnJHt0eXBlb2Ygcn0nIGluIHRoZSBhcnJheWApfXJldHVybiEwfSl9LCJzYW5pdGl6ZUFycmF5IiksVGdhPWkoKHQsZSk9PntlPXtjYXNlU2Vuc2l0aXZlOiExLC4uLmV9O2xldCByPXQrSlNPTi5zdHJpbmdpZnkoZSk7aWYoVkNlLmhhcyhyKSlyZXR1cm4gVkNlLmdldChyKTtsZXQgYT10WzBdPT09IiEiO2EmJih0PXQuc2xpY2UoMSkpLHQ9cjYodCkucmVwbGFjZSgvXFxcKi9nLCJbXFxzXFxTXSoiKTtsZXQgcz1uZXcgUmVnRXhwKGBeJHt0fSRgLGUuY2FzZVNlbnNpdGl2ZT8iIjoiaSIpO3JldHVybiBzLm5lZ2F0ZWQ9YSxWQ2Uuc2V0KHIscyksc30sIm1ha2VSZWdleHAiKSxJcXQ9aSgodCxlLHIsYSk9PntpZih0PUVxdCh0LCJpbnB1dHMiKSxlPUVxdChlLCJwYXR0ZXJucyIpLGUubGVuZ3RoPT09MClyZXR1cm5bXTtlPWUubWFwKG89PlRnYShvLHIpKTtsZXR7YWxsUGF0dGVybnM6c309cnx8e30sbj1bXTtmb3IobGV0IG8gb2YgdCl7bGV0IGwsYz1bLi4uZV0uZmlsbCghMSk7Zm9yKGxldFtkLGZdb2YgZS5lbnRyaWVzKCkpaWYoZi50ZXN0KG8pJiYoY1tkXT0hMCxsPSFmLm5lZ2F0ZWQsIWwpKWJyZWFrO2lmKCEobD09PSExfHxsPT09dm9pZCAwJiZlLnNvbWUoZD0+IWQubmVnYXRlZCl8fHMmJmMuc29tZSgoZCxmKT0+IWQmJiFlW2ZdLm5lZ2F0ZWQpKSYmKG4ucHVzaChvKSxhKSlicmVha31yZXR1cm4gbn0sImJhc2VNYXRjaGVyIik7aShMZ2EsIm1hdGNoZXIiKTtpKERnYSwiaXNNYXRjaCIpfSk7dmFyIE5xdD11KCgpPT57UHF0KCl9KTt2YXIgekM9e307VmUoekMse1NtYXJ0TWF0Y2g6KCk9PmpDZX0pO3ZhciBqQ2UsT3F0PXUoKCk9PntOcXQoKTtqQ2U9Y2xhc3N7c3RhdGlje2kodGhpcywiU21hcnRNYXRjaCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMud2lsZGNhcmQ9ZX1tYXRjaChlKXtyZXR1cm4gQ0MuaXNNYXRjaChlLHRoaXMud2lsZGNhcmQpfX19KTt2YXIgREM9e307VmUoREMse0Nyb246KCk9PlZxdCxDcm9uRGF0ZTooKT0+R3MsQ3JvblBhdHRlcm46KCk9PlkyZSxzY2hlZHVsZWRKb2JzOigpPT5ydn0pO2Z1bmN0aW9uIF9DKHQpe3JldHVybiBEYXRlLlVUQyh0LnksdC5tLTEsdC5kLHQuaCx0LmksdC5zKX1mdW5jdGlvbiBVQ2UodCxlKXtyZXR1cm4gdC55PT09ZS55JiZ0Lm09PT1lLm0mJnQuZD09PWUuZCYmdC5oPT09ZS5oJiZ0Lmk9PT1lLmkmJnQucz09PWUuc31mdW5jdGlvbiBBZ2EodCxlKXtsZXQgcj1uZXcgRGF0ZShEYXRlLnBhcnNlKHQpKTtpZihpc05hTihyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSVNPODYwMSBwYXNzZWQgdG8gdGltZXpvbmUgcGFyc2VyLiIpO2xldCBhPXQuc3Vic3RyaW5nKDkpO3JldHVybiBhLmluY2x1ZGVzKCJaIil8fGEuaW5jbHVkZXMoIisiKXx8YS5pbmNsdWRlcygiLSIpP1dDZShyLmdldFVUQ0Z1bGxZZWFyKCksci5nZXRVVENNb250aCgpKzEsci5nZXRVVENEYXRlKCksci5nZXRVVENIb3VycygpLHIuZ2V0VVRDTWludXRlcygpLHIuZ2V0VVRDU2Vjb25kcygpLCJFdGMvVVRDIik6V0NlKHIuZ2V0RnVsbFllYXIoKSxyLmdldE1vbnRoKCkrMSxyLmdldERhdGUoKSxyLmdldEhvdXJzKCksci5nZXRNaW51dGVzKCksci5nZXRTZWNvbmRzKCksZSl9ZnVuY3Rpb24gUnF0KHQsZSxyKXtyZXR1cm4gRnF0KEFnYSh0LGUpLHIpfWZ1bmN0aW9uIEZxdCh0LGUpe2xldCByPW5ldyBEYXRlKF9DKHQpKSxhPVRDKHIsdC50eikscz1fQyh0KSxuPV9DKGEpLG89cy1uLGw9bmV3IERhdGUoci5nZXRUaW1lKCkrbyksYz1UQyhsLHQudHopO2lmKFVDZShjLHQpKXtsZXQgcD1uZXcgRGF0ZShsLmdldFRpbWUoKS0zNmU1KSxoPVRDKHAsdC50eik7cmV0dXJuIFVDZShoLHQpP3A6bH1sZXQgZD1uZXcgRGF0ZShsLmdldFRpbWUoKStfQyh0KS1fQyhjKSksZj1UQyhkLHQudHopO2lmKFVDZShmLHQpKXJldHVybiBkO2lmKGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpIik7cmV0dXJuIGwuZ2V0VGltZSgpPmQuZ2V0VGltZSgpP2w6ZH1mdW5jdGlvbiBUQyh0LGUpe2xldCByLGE7dHJ5e3I9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmU6ZSx5ZWFyOiJudW1lcmljIixtb250aDoibnVtZXJpYyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsaG91cjEyOiExfSksYT1yLmZvcm1hdFRvUGFydHModCl9Y2F0Y2gobil7bGV0IG89biBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpTdHJpbmcobik7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYHRvVFo6IEludmFsaWQgdGltZXpvbmUgJyR7ZX0nIG9yIGRhdGUuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgSUFOQSB0aW1lem9uZSAoZS5nLiwgJ0FtZXJpY2EvTmV3X1lvcmsnLCAnRXVyb3BlL1N0b2NraG9sbScpLiBPcmlnaW5hbCBlcnJvcjogJHtvfWApfWxldCBzPXt5ZWFyOjAsbW9udGg6MCxkYXk6MCxob3VyOjAsbWludXRlOjAsc2Vjb25kOjB9O2ZvcihsZXQgbiBvZiBhKShuLnR5cGU9PT0ieWVhciJ8fG4udHlwZT09PSJtb250aCJ8fG4udHlwZT09PSJkYXkifHxuLnR5cGU9PT0iaG91ciJ8fG4udHlwZT09PSJtaW51dGUifHxuLnR5cGU9PT0ic2Vjb25kIikmJihzW24udHlwZV09cGFyc2VJbnQobi52YWx1ZSwxMCkpO2lmKGlzTmFOKHMueWVhcil8fGlzTmFOKHMubW9udGgpfHxpc05hTihzLmRheSl8fGlzTmFOKHMuaG91cil8fGlzTmFOKHMubWludXRlKXx8aXNOYU4ocy5zZWNvbmQpKXRocm93IG5ldyBFcnJvcihgdG9UWjogRmFpbGVkIHRvIHBhcnNlIGFsbCBkYXRlIGNvbXBvbmVudHMgZnJvbSB0aW1lem9uZSAnJHtlfScuIFRoaXMgbWF5IGluZGljYXRlIGFuIGludmFsaWQgZGF0ZSBvciB0aW1lem9uZSBjb25maWd1cmF0aW9uLiBQYXJzZWQgY29tcG9uZW50czogJHtKU09OLnN0cmluZ2lmeShzKX1gKTtyZXR1cm4gcy5ob3VyPT09MjQmJihzLmhvdXI9MCkse3k6cy55ZWFyLG06cy5tb250aCxkOnMuZGF5LGg6cy5ob3VyLGk6cy5taW51dGUsczpzLnNlY29uZCx0ejplfX1mdW5jdGlvbiBXQ2UodCxlLHIsYSxzLG4sbyl7cmV0dXJue3k6dCxtOmUsZDpyLGg6YSxpOnMsczpuLHR6Om99fWZ1bmN0aW9uIEVnYSh0KXtpZih0PT09dm9pZCAwJiYodD17fSksZGVsZXRlIHQubmFtZSx0LmxlZ2FjeU1vZGUhPT12b2lkIDAmJnQuZG9tQW5kRG93PT09dm9pZCAwP3QuZG9tQW5kRG93PSF0LmxlZ2FjeU1vZGU6dC5kb21BbmREb3c9PT12b2lkIDAmJih0LmRvbUFuZERvdz0hMSksdC5sZWdhY3lNb2RlPSF0LmRvbUFuZERvdyx0LnBhdXNlZD10LnBhdXNlZD09PXZvaWQgMD8hMTp0LnBhdXNlZCx0Lm1heFJ1bnM9dC5tYXhSdW5zPT09dm9pZCAwPzEvMDp0Lm1heFJ1bnMsdC5jYXRjaD10LmNhdGNoPT09dm9pZCAwPyExOnQuY2F0Y2gsdC5pbnRlcnZhbD10LmludGVydmFsPT09dm9pZCAwPzA6cGFyc2VJbnQodC5pbnRlcnZhbC50b1N0cmluZygpLDEwKSx0LnV0Y09mZnNldD10LnV0Y09mZnNldD09PXZvaWQgMD92b2lkIDA6cGFyc2VJbnQodC51dGNPZmZzZXQudG9TdHJpbmcoKSwxMCksdC5kYXlPZmZzZXQ9dC5kYXlPZmZzZXQ9PT12b2lkIDA/MDpwYXJzZUludCh0LmRheU9mZnNldC50b1N0cmluZygpLDEwKSx0LnVucmVmPXQudW5yZWY9PT12b2lkIDA/ITE6dC51bnJlZix0Lm1vZGU9dC5tb2RlPT09dm9pZCAwPyJhdXRvIjp0Lm1vZGUsdC5hbHRlcm5hdGl2ZVdlZWtkYXlzPXQuYWx0ZXJuYXRpdmVXZWVrZGF5cz09PXZvaWQgMD8hMTp0LmFsdGVybmF0aXZlV2Vla2RheXMsdC5zbG9wcHlSYW5nZXM9dC5zbG9wcHlSYW5nZXM9PT12b2lkIDA/ITE6dC5zbG9wcHlSYW5nZXMsIVsiYXV0byIsIjUtcGFydCIsIjYtcGFydCIsIjctcGFydCIsIjUtb3ItNi1wYXJ0cyIsIjYtb3ItNy1wYXJ0cyJdLmluY2x1ZGVzKHQubW9kZSkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogbW9kZSBtdXN0IGJlIG9uZSBvZiAnYXV0bycsICc1LXBhcnQnLCAnNi1wYXJ0JywgJzctcGFydCcsICc1LW9yLTYtcGFydHMnLCBvciAnNi1vci03LXBhcnRzJy4iKTtpZih0LnN0YXJ0QXQmJih0LnN0YXJ0QXQ9bmV3IEdzKHQuc3RhcnRBdCx0LnRpbWV6b25lKSksdC5zdG9wQXQmJih0LnN0b3BBdD1uZXcgR3ModC5zdG9wQXQsdC50aW1lem9uZSkpLHQuaW50ZXJ2YWwhPT1udWxsKXtpZihpc05hTih0LmludGVydmFsKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBTdXBwbGllZCB2YWx1ZSBmb3IgaW50ZXJ2YWwgaXMgbm90IGEgbnVtYmVyIik7aWYodC5pbnRlcnZhbDwwKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBjYW4gbm90IGJlIG5lZ2F0aXZlIil9aWYodC51dGNPZmZzZXQhPT12b2lkIDApe2lmKGlzTmFOKHQudXRjT2Zmc2V0KSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCBmb3IgdXRjT2Zmc2V0LCBzaG91bGQgYmUgbnVtYmVyIHJlcHJlc2VudGluZyBtaW51dGVzIG9mZnNldCBmcm9tIFVUQy4iKTtpZih0LnV0Y09mZnNldDwtODcwfHx0LnV0Y09mZnNldD44NzApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogdXRjT2Zmc2V0IG91dCBvZiBib3VuZHMuIik7aWYodC51dGNPZmZzZXQhPT12b2lkIDAmJnQudGltZXpvbmUpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogQ29tYmluaW5nICd1dGNPZmZzZXQnIHdpdGggJ3RpbWV6b25lJyBpcyBub3QgYWxsb3dlZC4iKX1pZih0LnVucmVmIT09ITAmJnQudW5yZWYhPT0hMSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBVbnJlZiBzaG91bGQgYmUgZWl0aGVyIHRydWUsIGZhbHNlIG9yIHVuZGVmaW5lZChmYWxzZSkuIik7aWYodC5kYXlPZmZzZXQhPT12b2lkIDAmJnQuZGF5T2Zmc2V0IT09MCYmaXNOYU4odC5kYXlPZmZzZXQpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciBkYXlPZmZzZXQsIHNob3VsZCBiZSBhIG51bWJlciByZXByZXNlbnRpbmcgZGF5cyB0byBvZmZzZXQuIik7cmV0dXJuIHR9ZnVuY3Rpb24gTEModCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiB0PT0iZnVuY3Rpb24ifHx0IGluc3RhbmNlb2YgRnVuY3Rpb259ZnVuY3Rpb24gSWdhKHQpe3JldHVybiBMQyh0KX1mdW5jdGlvbiBQZ2EodCl7dHlwZW9mIERlbm88InUiJiZ0eXBlb2YgRGVuby51bnJlZlRpbWVyPCJ1Ij9EZW5vLnVucmVmVGltZXIodCk6dCYmdHlwZW9mIHQudW5yZWY8InUiJiZ0LnVucmVmKCl9dmFyIEJxdCxZMmUsR0NlLGNpLEdzLEhxdCxydixWcXQsanF0PXUoKCk9PntpKF9DLCJUIik7aShVQ2UsIkQiKTtpKEFnYSwiQSIpO2koUnF0LCJ2Iik7aShGcXQsImsiKTtpKFRDLCJnIik7aShXQ2UsImIiKTtCcXQ9WzEsMiw0LDgsMTZdLFkyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDIil9cGF0dGVybjt0aW1lem9uZTttb2RlO2FsdGVybmF0aXZlV2Vla2RheXM7c2xvcHB5UmFuZ2VzO3NlY29uZDttaW51dGU7aG91cjtkYXk7bW9udGg7ZGF5T2ZXZWVrO3llYXI7bGFzdERheU9mTW9udGg7bGFzdFdlZWtkYXk7bmVhcmVzdFdlZWtkYXlzO3N0YXJET007c3RhckRPVztzdGFyWWVhcjt1c2VBbmRMb2dpYztjb25zdHJ1Y3Rvcih0LGUscil7dGhpcy5wYXR0ZXJuPXQsdGhpcy50aW1lem9uZT1lLHRoaXMubW9kZT1yPy5tb2RlPz8iYXV0byIsdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPXI/LmFsdGVybmF0aXZlV2Vla2RheXM/PyExLHRoaXMuc2xvcHB5UmFuZ2VzPXI/LnNsb3BweVJhbmdlcz8/ITEsdGhpcy5zZWNvbmQ9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5taW51dGU9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5ob3VyPUFycmF5KDI0KS5maWxsKDApLHRoaXMuZGF5PUFycmF5KDMxKS5maWxsKDApLHRoaXMubW9udGg9QXJyYXkoMTIpLmZpbGwoMCksdGhpcy5kYXlPZldlZWs9QXJyYXkoNykuZmlsbCgwKSx0aGlzLnllYXI9QXJyYXkoMWU0KS5maWxsKDApLHRoaXMubGFzdERheU9mTW9udGg9ITEsdGhpcy5sYXN0V2Vla2RheT0hMSx0aGlzLm5lYXJlc3RXZWVrZGF5cz1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLnN0YXJET009ITEsdGhpcy5zdGFyRE9XPSExLHRoaXMuc3RhclllYXI9ITEsdGhpcy51c2VBbmRMb2dpYz0hMSx0aGlzLnBhcnNlKCl9cGFyc2UoKXtpZighKHR5cGVvZiB0aGlzLnBhdHRlcm49PSJzdHJpbmcifHx0aGlzLnBhdHRlcm4gaW5zdGFuY2VvZiBTdHJpbmcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBQYXR0ZXJuIGhhcyB0byBiZSBvZiB0eXBlIHN0cmluZy4iKTt0aGlzLnBhdHRlcm4uaW5kZXhPZigiQCIpPj0wJiYodGhpcy5wYXR0ZXJuPXRoaXMuaGFuZGxlTmlja25hbWVzKHRoaXMucGF0dGVybikudHJpbSgpKTtsZXQgdD10aGlzLnBhdHRlcm4ubWF0Y2goL1xTKy9nKXx8WyIiXSxlPXQubGVuZ3RoO2lmKHQubGVuZ3RoPDV8fHQubGVuZ3RoPjcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGludmFsaWQgY29uZmlndXJhdGlvbiBmb3JtYXQgKCciK3RoaXMucGF0dGVybisiJyksIGV4YWN0bHkgZml2ZSwgc2l4LCBvciBzZXZlbiBzcGFjZSBzZXBhcmF0ZWQgcGFydHMgYXJlIHJlcXVpcmVkLiIpO2lmKHRoaXMubW9kZSE9PSJhdXRvIil7bGV0IGE7c3dpdGNoKHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOmE9NTticmVhaztjYXNlIjYtcGFydCI6YT02O2JyZWFrO2Nhc2UiNy1wYXJ0IjphPTc7YnJlYWs7Y2FzZSI1LW9yLTYtcGFydHMiOmE9WzUsNl07YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmE9WzYsN107YnJlYWs7ZGVmYXVsdDphPTB9aWYoIShBcnJheS5pc0FycmF5KGEpP2EuaW5jbHVkZXMoZSk6ZT09PWEpKXtsZXQgcz1BcnJheS5pc0FycmF5KGEpP2Euam9pbigiIG9yICIpOmEudG9TdHJpbmcoKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uUGF0dGVybjogbW9kZSAnJHt0aGlzLm1vZGV9JyByZXF1aXJlcyBleGFjdGx5ICR7c30gcGFydHMsIGJ1dCBwYXR0ZXJuICcke3RoaXMucGF0dGVybn0nIGhhcyAke2V9IHBhcnRzLmApfX1pZih0Lmxlbmd0aD09PTUmJnQudW5zaGlmdCgiMCIpLHQubGVuZ3RoPT09NiYmdC5wdXNoKCIqIiksdFszXS50b1VwcGVyQ2FzZSgpPT09IkxXIj8odGhpcy5sYXN0V2Vla2RheT0hMCx0WzNdPSIiKTp0WzNdLnRvVXBwZXJDYXNlKCkuaW5kZXhPZigiTCIpPj0wJiYodFszXT10WzNdLnJlcGxhY2UoL0wvZ2ksIiIpLHRoaXMubGFzdERheU9mTW9udGg9ITApLHRbM109PSIqIiYmKHRoaXMuc3RhckRPTT0hMCksdFs2XT09IioiJiYodGhpcy5zdGFyWWVhcj0hMCksdFs0XS5sZW5ndGg+PTMmJih0WzRdPXRoaXMucmVwbGFjZUFscGhhTW9udGhzKHRbNF0pKSx0WzVdLmxlbmd0aD49MyYmKHRbNV09dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzP3RoaXMucmVwbGFjZUFscGhhRGF5c1F1YXJ0eih0WzVdKTp0aGlzLnJlcGxhY2VBbHBoYURheXModFs1XSkpLHRbNV0uc3RhcnRzV2l0aCgiKyIpJiYodGhpcy51c2VBbmRMb2dpYz0hMCx0WzVdPXRbNV0uc3Vic3RyaW5nKDEpLHRbNV09PT0iIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IERheS1vZi13ZWVrIGZpZWxkIGNhbm5vdCBiZSBlbXB0eSBhZnRlciAnKycgbW9kaWZpZXIuIik7c3dpdGNoKHRbNV09PSIqIiYmKHRoaXMuc3RhckRPVz0hMCksdGhpcy5wYXR0ZXJuLmluZGV4T2YoIj8iKT49MCYmKHRbMF09dFswXS5yZXBsYWNlKC9cPy9nLCIqIiksdFsxXT10WzFdLnJlcGxhY2UoL1w/L2csIioiKSx0WzJdPXRbMl0ucmVwbGFjZSgvXD8vZywiKiIpLHRbM109dFszXS5yZXBsYWNlKC9cPy9nLCIqIiksdFs0XT10WzRdLnJlcGxhY2UoL1w/L2csIioiKSx0WzVdPXRbNV0ucmVwbGFjZSgvXD8vZywiKiIpLHRbNl0mJih0WzZdPXRbNl0ucmVwbGFjZSgvXD8vZywiKiIpKSksdGhpcy5tb2RlKXtjYXNlIjUtcGFydCI6dFswXT0iMCIsdFs2XT0iKiI7YnJlYWs7Y2FzZSI2LXBhcnQiOnRbNl09IioiO2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjp0WzZdPSIqIjticmVhaztjYXNlIjYtb3ItNy1wYXJ0cyI6YnJlYWs7Y2FzZSI3LXBhcnQiOmNhc2UiYXV0byI6YnJlYWt9dGhpcy50aHJvd0F0SWxsZWdhbENoYXJhY3RlcnModCksdGhpcy5wYXJ0VG9BcnJheSgic2Vjb25kIix0WzBdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgibWludXRlIix0WzFdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgiaG91ciIsdFsyXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImRheSIsdFszXSwtMSwxKSx0aGlzLnBhcnRUb0FycmF5KCJtb250aCIsdFs0XSwtMSwxKTtsZXQgcj10aGlzLmFsdGVybmF0aXZlV2Vla2RheXM/LTE6MDt0aGlzLnBhcnRUb0FycmF5KCJkYXlPZldlZWsiLHRbNV0sciw2MyksdGhpcy5wYXJ0VG9BcnJheSgieWVhciIsdFs2XSwwLDEpLCF0aGlzLmFsdGVybmF0aXZlV2Vla2RheXMmJnRoaXMuZGF5T2ZXZWVrWzddJiYodGhpcy5kYXlPZldlZWtbMF09dGhpcy5kYXlPZldlZWtbN10pfXBhcnRUb0FycmF5KHQsZSxyLGEpe2xldCBzPXRoaXNbdF0sbj10PT09ImRheSImJnRoaXMubGFzdERheU9mTW9udGgsbz10PT09ImRheSImJnRoaXMubGFzdFdlZWtkYXk7aWYoZT09PSIiJiYhbiYmIW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIit0KyIgKCIrZSsiKSBpcyBlbXB0eSwgY2hlY2sgZm9yIHRyYWlsaW5nIHNwYWNlcy4iKTtpZihlPT09IioiKXJldHVybiBzLmZpbGwoYSk7bGV0IGw9ZS5zcGxpdCgiLCIpO2lmKGwubGVuZ3RoPjEpZm9yKGxldCBjPTA7YzxsLmxlbmd0aDtjKyspdGhpcy5wYXJ0VG9BcnJheSh0LGxbY10scixhKTtlbHNlIGUuaW5kZXhPZigiLSIpIT09LTEmJmUuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVSYW5nZVdpdGhTdGVwcGluZyhlLHQscixhKTplLmluZGV4T2YoIi0iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2UoZSx0LHIsYSk6ZS5pbmRleE9mKCIvIikhPT0tMT90aGlzLmhhbmRsZVN0ZXBwaW5nKGUsdCxyLGEpOmUhPT0iIiYmdGhpcy5oYW5kbGVOdW1iZXIoZSx0LHIsYSl9dGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKChlPT09Mz8vW14vKjAtOSxcLVd3TGxdKy86ZT09PTU/L1teLyowLTksXC0jTGxdKy86L1teLyowLTksXC1dKy8pLnRlc3QodFtlXSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIitlKyIgKCIrdFtlXSsiKSBjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlcnMuIil9aGFuZGxlTnVtYmVyKHQsZSxyLGEpe2xldCBzPXRoaXMuZXh0cmFjdE50aCh0LGUpLG49dC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIik7aWYoZSE9PSJkYXkiJiZuKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBOZWFyZXN0IHdlZWtkYXkgbW9kaWZpZXIgKFcpIG9ubHkgYWxsb3dlZCBpbiBkYXktb2YtbW9udGguIik7biYmKGU9Im5lYXJlc3RXZWVrZGF5cyIpO2xldCBvPXBhcnNlSW50KHNbMF0sMTApK3I7aWYoaXNOYU4obykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46ICIrZSsiIGlzIG5vdCBhIG51bWJlcjogJyIrdCsiJyIpO3RoaXMuc2V0UGFydChlLG8sc1sxXXx8YSl9c2V0UGFydCh0LGUscil7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHBhcnQgc3BlY2lmaWVkOiAiK3QpO2lmKHQ9PT0iZGF5T2ZXZWVrIil7aWYoZT09PTcmJihlPTApLGU8MHx8ZT42KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgZGF5T2ZXZWVrOiAiK2UpO3RoaXMuc2V0TnRoV2Vla2RheU9mTW9udGgoZSxyKTtyZXR1cm59aWYodD09PSJzZWNvbmQifHx0PT09Im1pbnV0ZSIpe2lmKGU8MHx8ZT49NjApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKX1lbHNlIGlmKHQ9PT0iaG91ciIpe2lmKGU8MHx8ZT49MjQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKX1lbHNlIGlmKHQ9PT0iZGF5Inx8dD09PSJuZWFyZXN0V2Vla2RheXMiKXtpZihlPDB8fGU+PTMxKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIit0KyI6ICIrZSl9ZWxzZSBpZih0PT09Im1vbnRoIil7aWYoZTwwfHxlPj0xMil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UpfWVsc2UgaWYodD09PSJ5ZWFyIiYmKGU8MXx8ZT49MWU0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UrIiAoc3VwcG9ydGVkIHJhbmdlOiAxLTk5OTkpIik7dGhpc1t0XVtlXT1yfXZhbGlkYXRlTm90TmFOKHQsZSl7aWYoaXNOYU4odCkpdGhyb3cgbmV3IFR5cGVFcnJvcihlKX12YWxpZGF0ZVJhbmdlKHQsZSxyLGEscyl7aWYodD5lKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBGcm9tIHZhbHVlIGlzIGxhcmdlciB0aGFuIHRvIHZhbHVlOiAnIitzKyInIik7aWYociE9PXZvaWQgMCl7aWYocj09PTApdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogMCIpO2lmKHI+dGhpc1thXS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHMgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHZhbHVlIG9mIHBhcnQgKCIrdGhpc1thXS5sZW5ndGgrIikiKX19aGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcodCxlLHIsYSl7aWYodC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiByYW5nZXMgd2l0aCBzdGVwcGluZy4iKTtsZXQgcz10aGlzLmV4dHJhY3ROdGgodCxlKSxuPXNbMF0ubWF0Y2goL14oXGQrKS0oXGQrKVwvKFxkKykkLyk7aWYobj09PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZSB3aXRoIHN0ZXBwaW5nOiAnIit0KyInIik7bGV0WyxvLGwsY109bixkPXBhcnNlSW50KG8sMTApK3IsZj1wYXJzZUludChsLDEwKStyLHA9cGFyc2VJbnQoYywxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihkLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIGxvd2VyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTihmLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHVwcGVyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTihwLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShkLGYscCxlLHQpO2ZvcihsZXQgaD1kO2g8PWY7aCs9cCl0aGlzLnNldFBhcnQoZSxoLHNbMV18fGEpfWV4dHJhY3ROdGgodCxlKXtsZXQgcj10LGE7aWYoci5pbmNsdWRlcygiIyIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogbnRoICgjKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQiKTthPXIuc3BsaXQoIiMiKVsxXSxyPXIuc3BsaXQoIiMiKVswXX1lbHNlIGlmKHIudG9VcHBlckNhc2UoKS5lbmRzV2l0aCgiTCIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogTCBtb2RpZmllciBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQgKHVzZSBMIGFsb25lIGZvciBkYXktb2YtbW9udGgpIik7YT0iTCIscj1yLnNsaWNlKDAsLTEpfXJldHVybltyLGFdfWhhbmRsZVJhbmdlKHQsZSxyLGEpe2lmKHQudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gYSByYW5nZS4iKTtsZXQgcz10aGlzLmV4dHJhY3ROdGgodCxlKSxuPXNbMF0uc3BsaXQoIi0iKTtpZihuLmxlbmd0aCE9PTIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZTogJyIrdCsiJyIpO2xldCBvPXBhcnNlSW50KG5bMF0sMTApK3IsbD1wYXJzZUludChuWzFdLDEwKStyO3RoaXMudmFsaWRhdGVOb3ROYU4obywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4obCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShvLGwsdm9pZCAwLGUsdCk7Zm9yKGxldCBjPW87Yzw9bDtjKyspdGhpcy5zZXRQYXJ0KGUsYyxzWzFdfHxhKX1oYW5kbGVTdGVwcGluZyh0LGUscixhKXtpZih0LnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIHBhcnRzIHdpdGggc3RlcHBpbmcuIik7bGV0IHM9dGhpcy5leHRyYWN0TnRoKHQsZSksbj1zWzBdLnNwbGl0KCIvIik7aWYobi5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6ICciK3QrIiciKTtpZih0aGlzLnNsb3BweVJhbmdlcyluWzBdPT09IiImJihuWzBdPSIqIik7ZWxzZXtpZihuWzBdPT09IiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBtaXNzaW5nIHByZWZpeCAoJyIrdCsiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpO2lmKG5bMF0hPT0iKiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBudW1lcmljIHByZWZpeCAoJyIrdCsiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpfWxldCBvPTA7blswXSE9PSIqIiYmKG89cGFyc2VJbnQoblswXSwxMCkrcik7bGV0IGw9cGFyc2VJbnQoblsxXSwxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihsLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZSgwLHRoaXNbZV0ubGVuZ3RoLTEsbCxlLHQpO2ZvcihsZXQgYz1vO2M8dGhpc1tlXS5sZW5ndGg7Yys9bCl0aGlzLnNldFBhcnQoZSxjLHNbMV18fGEpfXJlcGxhY2VBbHBoYURheXModCl7cmV0dXJuIHQucmVwbGFjZSgvLXN1bi9naSwiLTciKS5yZXBsYWNlKC9zdW4vZ2ksIjAiKS5yZXBsYWNlKC9tb24vZ2ksIjEiKS5yZXBsYWNlKC90dWUvZ2ksIjIiKS5yZXBsYWNlKC93ZWQvZ2ksIjMiKS5yZXBsYWNlKC90aHUvZ2ksIjQiKS5yZXBsYWNlKC9mcmkvZ2ksIjUiKS5yZXBsYWNlKC9zYXQvZ2ksIjYiKX1yZXBsYWNlQWxwaGFEYXlzUXVhcnR6KHQpe3JldHVybiB0LnJlcGxhY2UoL3N1bi9naSwiMSIpLnJlcGxhY2UoL21vbi9naSwiMiIpLnJlcGxhY2UoL3R1ZS9naSwiMyIpLnJlcGxhY2UoL3dlZC9naSwiNCIpLnJlcGxhY2UoL3RodS9naSwiNSIpLnJlcGxhY2UoL2ZyaS9naSwiNiIpLnJlcGxhY2UoL3NhdC9naSwiNyIpfXJlcGxhY2VBbHBoYU1vbnRocyh0KXtyZXR1cm4gdC5yZXBsYWNlKC9qYW4vZ2ksIjEiKS5yZXBsYWNlKC9mZWIvZ2ksIjIiKS5yZXBsYWNlKC9tYXIvZ2ksIjMiKS5yZXBsYWNlKC9hcHIvZ2ksIjQiKS5yZXBsYWNlKC9tYXkvZ2ksIjUiKS5yZXBsYWNlKC9qdW4vZ2ksIjYiKS5yZXBsYWNlKC9qdWwvZ2ksIjciKS5yZXBsYWNlKC9hdWcvZ2ksIjgiKS5yZXBsYWNlKC9zZXAvZ2ksIjkiKS5yZXBsYWNlKC9vY3QvZ2ksIjEwIikucmVwbGFjZSgvbm92L2dpLCIxMSIpLnJlcGxhY2UoL2RlYy9naSwiMTIiKX1oYW5kbGVOaWNrbmFtZXModCl7bGV0IGU9dC50cmltKCkudG9Mb3dlckNhc2UoKTtpZihlPT09IkB5ZWFybHkifHxlPT09IkBhbm51YWxseSIpcmV0dXJuIjAgMCAxIDEgKiI7aWYoZT09PSJAbW9udGhseSIpcmV0dXJuIjAgMCAxICogKiI7aWYoZT09PSJAd2Vla2x5IilyZXR1cm4iMCAwICogKiAwIjtpZihlPT09IkBkYWlseSJ8fGU9PT0iQG1pZG5pZ2h0IilyZXR1cm4iMCAwICogKiAqIjtpZihlPT09IkBob3VybHkiKXJldHVybiIwICogKiAqICoiO2lmKGU9PT0iQHJlYm9vdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IEByZWJvb3QgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGFuIGV2ZW50LWJhc2VkIHRyaWdnZXIgdGhhdCByZXF1aXJlcyBzeXN0ZW0gc3RhcnR1cCBkZXRlY3Rpb24uIik7cmV0dXJuIHR9c2V0TnRoV2Vla2RheU9mTW9udGgodCxlKXtpZih0eXBlb2YgZSE9Im51bWJlciImJmUudG9VcHBlckNhc2UoKT09PSJMIil0aGlzLmRheU9mV2Vla1t0XT10aGlzLmRheU9mV2Vla1t0XXwzMjtlbHNlIGlmKGU9PT02Myl0aGlzLmRheU9mV2Vla1t0XT02MztlbHNlIGlmKGU8NiYmZT4wKXRoaXMuZGF5T2ZXZWVrW3RdPXRoaXMuZGF5T2ZXZWVrW3RdfEJxdFtlLTFdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvblBhdHRlcm46IG50aCB3ZWVrZGF5IG91dCBvZiByYW5nZSwgc2hvdWxkIGJlIDEtNSBvciBMLiBWYWx1ZTogJHtlfSwgVHlwZTogJHt0eXBlb2YgZX1gKX19LEdDZT1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGNpPVtbIm1vbnRoIiwieWVhciIsMF0sWyJkYXkiLCJtb250aCIsLTFdLFsiaG91ciIsImRheSIsMF0sWyJtaW51dGUiLCJob3VyIiwwXSxbInNlY29uZCIsIm1pbnV0ZSIsMF1dLEdzPWNsYXNzIHFxdHtzdGF0aWN7aSh0aGlzLCJzIil9dHo7bXM7c2Vjb25kO21pbnV0ZTtob3VyO2RheTttb250aDt5ZWFyO2NvbnN0cnVjdG9yKGUscil7aWYodGhpcy50ej1yLGUmJmUgaW5zdGFuY2VvZiBEYXRlKWlmKCFpc05hTihlKSl0aGlzLmZyb21EYXRlKGUpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvbkRhdGU6IEludmFsaWQgZGF0ZSBwYXNzZWQgdG8gQ3JvbkRhdGUgY29uc3RydWN0b3IiKTtlbHNlIGlmKGU9PW51bGwpdGhpcy5mcm9tRGF0ZShuZXcgRGF0ZSk7ZWxzZSBpZihlJiZ0eXBlb2YgZT09InN0cmluZyIpdGhpcy5mcm9tU3RyaW5nKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIHFxdCl0aGlzLmZyb21Dcm9uRGF0ZShlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25EYXRlOiBJbnZhbGlkIHR5cGUgKCIrdHlwZW9mIGUrIikgcGFzc2VkIHRvIENyb25EYXRlIGNvbnN0cnVjdG9yIil9Z2V0TGFzdERheU9mTW9udGgoZSxyKXtyZXR1cm4gciE9PTE/R0NlW3JdOm5ldyBEYXRlKERhdGUuVVRDKGUscisxLDApKS5nZXRVVENEYXRlKCl9Z2V0TGFzdFdlZWtkYXkoZSxyKXtsZXQgYT10aGlzLmdldExhc3REYXlPZk1vbnRoKGUscikscz1uZXcgRGF0ZShEYXRlLlVUQyhlLHIsYSkpLmdldFVUQ0RheSgpO3JldHVybiBzPT09MD9hLTI6cz09PTY/YS0xOmF9Z2V0TmVhcmVzdFdlZWtkYXkoZSxyLGEpe2xldCBzPXRoaXMuZ2V0TGFzdERheU9mTW9udGgoZSxyKTtpZihhPnMpcmV0dXJuLTE7bGV0IG49bmV3IERhdGUoRGF0ZS5VVEMoZSxyLGEpKS5nZXRVVENEYXkoKTtyZXR1cm4gbj09PTA/YT09PXM/YS0yOmErMTpuPT09Nj9hPT09MT9hKzI6YS0xOmF9aXNOdGhXZWVrZGF5T2ZNb250aChlLHIsYSxzKXtsZXQgbj1uZXcgRGF0ZShEYXRlLlVUQyhlLHIsYSkpLmdldFVUQ0RheSgpLG89MDtmb3IobGV0IGw9MTtsPD1hO2wrKyluZXcgRGF0ZShEYXRlLlVUQyhlLHIsbCkpLmdldFVUQ0RheSgpPT09biYmbysrO2lmKHMmNjMmJkJxdFtvLTFdJnMpcmV0dXJuITA7aWYocyYzMil7bGV0IGw9dGhpcy5nZXRMYXN0RGF5T2ZNb250aChlLHIpO2ZvcihsZXQgYz1hKzE7Yzw9bDtjKyspaWYobmV3IERhdGUoRGF0ZS5VVEMoZSxyLGMpKS5nZXRVVENEYXkoKT09PW4pcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9ZnJvbURhdGUoZSl7aWYodGhpcy50eiE9PXZvaWQgMClpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpdGhpcy5tcz1lLmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0VVRDTWludXRlcygpK3RoaXMudHosdGhpcy5ob3VyPWUuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1lLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ZS5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKTtlbHNlIHRyeXtsZXQgcj1UQyhlLHRoaXMudHopO3RoaXMubXM9ZS5nZXRNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1yLnMsdGhpcy5taW51dGU9ci5pLHRoaXMuaG91cj1yLmgsdGhpcy5kYXk9ci5kLHRoaXMubW9udGg9ci5tLTEsdGhpcy55ZWFyPXIueX1jYXRjaChyKXtsZXQgYT1yIGluc3RhbmNlb2YgRXJyb3I/ci5tZXNzYWdlOlN0cmluZyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uRGF0ZTogRmFpbGVkIHRvIGNvbnZlcnQgZGF0ZSB0byB0aW1lem9uZSAnJHt0aGlzLnR6fScuIFRoaXMgbWF5IGhhcHBlbiB3aXRoIGludmFsaWQgdGltZXpvbmUgbmFtZXMgb3IgZGF0ZXMuIE9yaWdpbmFsIGVycm9yOiAke2F9YCl9ZWxzZSB0aGlzLm1zPWUuZ2V0TWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ZS5nZXRTZWNvbmRzKCksdGhpcy5taW51dGU9ZS5nZXRNaW51dGVzKCksdGhpcy5ob3VyPWUuZ2V0SG91cnMoKSx0aGlzLmRheT1lLmdldERhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0TW9udGgoKSx0aGlzLnllYXI9ZS5nZXRGdWxsWWVhcigpfWZyb21Dcm9uRGF0ZShlKXt0aGlzLnR6PWUudHosdGhpcy55ZWFyPWUueWVhcix0aGlzLm1vbnRoPWUubW9udGgsdGhpcy5kYXk9ZS5kYXksdGhpcy5ob3VyPWUuaG91cix0aGlzLm1pbnV0ZT1lLm1pbnV0ZSx0aGlzLnNlY29uZD1lLnNlY29uZCx0aGlzLm1zPWUubXN9YXBwbHkoKXtpZih0aGlzLm1vbnRoPjExfHx0aGlzLm1vbnRoPDB8fHRoaXMuZGF5PkdDZVt0aGlzLm1vbnRoXXx8dGhpcy5kYXk8MXx8dGhpcy5ob3VyPjU5fHx0aGlzLm1pbnV0ZT41OXx8dGhpcy5zZWNvbmQ+NTl8fHRoaXMuaG91cjwwfHx0aGlzLm1pbnV0ZTwwfHx0aGlzLnNlY29uZDwwKXtsZXQgZT1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcykpO3JldHVybiB0aGlzLm1zPWUuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ZS5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ZS5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPWUuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1lLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPWUuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ZS5nZXRVVENGdWxsWWVhcigpLCEwfWVsc2UgcmV0dXJuITF9ZnJvbVN0cmluZyhlKXtpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpe2xldCByPVJxdChlKTt0aGlzLm1zPXIuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ci5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXIuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1yLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXIuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ci5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKX1lbHNlIHJldHVybiB0aGlzLmZyb21EYXRlKFJxdChlLHRoaXMudHopKX1maW5kTmV4dChlLHIsYSxzKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKGUscixhLHMsMSl9X2ZpbmRNYXRjaChlLHIsYSxzLG4pe2xldCBvPXRoaXNbcl0sbDthLmxhc3REYXlPZk1vbnRoJiYobD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSk7bGV0IGM9IWEuc3RhckRPVyYmcj09ImRheSI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCk6dm9pZCAwLGQ9dGhpc1tyXStzLGY9bj09PTE/cD0+cDxhW3JdLmxlbmd0aDpwPT5wPj0wO2ZvcihsZXQgcD1kO2YocCk7cCs9bil7bGV0IGg9YVtyXVtwXTtpZihyPT09ImRheSImJiFoKXtmb3IobGV0IG09MDttPGEubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDttKyspaWYoYS5uZWFyZXN0V2Vla2RheXNbbV0pe2xldCB2PXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsbS1zKTtpZih2PT09LTEpY29udGludWU7aWYodj09PXAtcyl7aD0xO2JyZWFrfX19aWYocj09PSJkYXkiJiZhLmxhc3RXZWVrZGF5KXtsZXQgbT10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtwLXM9PT1tJiYoaD0xKX1pZihyPT09ImRheSImJmEubGFzdERheU9mTW9udGgmJnAtcz09bCYmKGg9MSkscj09PSJkYXkiJiYhYS5zdGFyRE9XKXtsZXQgbT1hLmRheU9mV2Vla1soYysocC1zLTEpKSU3XTtpZihtJiZtJjYzKW09dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLHAtcyxtKT8xOjA7ZWxzZSBpZihtKXRocm93IG5ldyBFcnJvcihgQ3JvbkRhdGU6IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlayBlbmNvdW50ZXJlZC4gJHttfWApO2EudXNlQW5kTG9naWM/aD1oJiZtOiFlLmRvbUFuZERvdyYmIWEuc3RhckRPTT9oPWh8fG06aD1oJiZtfWlmKGgpcmV0dXJuIHRoaXNbcl09cC1zLG8hPT10aGlzW3JdPzI6MX1yZXR1cm4gM31yZWN1cnNlKGUscixhKXtpZihhPT09MCYmIWUuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG49LTE7Zm9yKGxldCBvPXRoaXMueWVhcisxO288ZS55ZWFyLmxlbmd0aCYmbzwxZTQ7bysrKWlmKGUueWVhcltvXT09PTEpe249bzticmVha31pZihuPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW4sdGhpcy5tb250aD0wLHRoaXMuZGF5PTEsdGhpcy5ob3VyPTAsdGhpcy5taW51dGU9MCx0aGlzLnNlY29uZD0wLHRoaXMubXM9MH1pZih0aGlzLnllYXI+PTFlNClyZXR1cm4gbnVsbH1sZXQgcz10aGlzLmZpbmROZXh0KHIsY2lbYV1bMF0sZSxjaVthXVsyXSk7aWYocz4xKXtsZXQgbj1hKzE7Zm9yKDtuPGNpLmxlbmd0aDspdGhpc1tjaVtuXVswXV09LWNpW25dWzJdLG4rKztpZihzPT09Myl7aWYodGhpc1tjaVthXVsxXV0rKyx0aGlzW2NpW2FdWzBdXT0tY2lbYV1bMl0sdGhpcy5hcHBseSgpLGE9PT0wJiYhZS5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTAmJnRoaXMueWVhcjwxZTQ7KXRoaXMueWVhcisrO2lmKHRoaXMueWVhcj49MWU0fHx0aGlzLnllYXI+PWUueWVhci5sZW5ndGgpcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZShlLHIsMCl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZShlLHIsYS0xKX1yZXR1cm4gYSs9MSxhPj1jaS5sZW5ndGg/dGhpczooZS5zdGFyWWVhcj90aGlzLnllYXI+PTNlMzp0aGlzLnllYXI+PTFlNCk/bnVsbDp0aGlzLnJlY3Vyc2UoZSxyLGEpfWluY3JlbWVudChlLHIsYSl7cmV0dXJuIHRoaXMuc2Vjb25kKz1yLmludGVydmFsIT09dm9pZCAwJiZyLmludGVydmFsPjEmJmE/ci5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlKGUsciwwKX1kZWNyZW1lbnQoZSxyKXtyZXR1cm4gdGhpcy5zZWNvbmQtPXIuaW50ZXJ2YWwhPT12b2lkIDAmJnIuaW50ZXJ2YWw+MT9yLmludGVydmFsOjEsdGhpcy5tcz0wLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLHIsMCwwKX1yZWN1cnNlQmFja3dhcmQoZSxyLGEscz0wKXtpZihzPjFlNClyZXR1cm4gbnVsbDtpZihhPT09MCYmIWUuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG89LTE7Zm9yKGxldCBsPXRoaXMueWVhci0xO2w+PTA7bC0tKWlmKGUueWVhcltsXT09PTEpe289bDticmVha31pZihvPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW8sdGhpcy5tb250aD0xMSx0aGlzLmRheT0zMSx0aGlzLmhvdXI9MjMsdGhpcy5taW51dGU9NTksdGhpcy5zZWNvbmQ9NTksdGhpcy5tcz0wfWlmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfWxldCBuPXRoaXMuZmluZFByZXZpb3VzKHIsY2lbYV1bMF0sZSxjaVthXVsyXSk7aWYobj4xKXtsZXQgbz1hKzE7Zm9yKDtvPGNpLmxlbmd0aDspe2xldCBsPWNpW29dWzBdLGM9Y2lbb11bMl0sZD10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShsLGUsYyk7dGhpc1tsXT1kLG8rK31pZihuPT09Myl7aWYodGhpc1tjaVthXVsxXV0tLSxhPT09MCl7bGV0IGY9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpcy5kYXk+ZiYmKHRoaXMuZGF5PWYpfWlmKGE9PT0xKWlmKHRoaXMuZGF5PD0wKXRoaXMuZGF5PTE7ZWxzZXtsZXQgZj10aGlzLnllYXIscD10aGlzLm1vbnRoO2Zvcig7cDwwOylwKz0xMixmLS07Zm9yKDtwPjExOylwLT0xMixmKys7bGV0IGg9cCE9PTE/R0NlW3BdOm5ldyBEYXRlKERhdGUuVVRDKGYscCsxLDApKS5nZXRVVENEYXRlKCk7dGhpcy5kYXk+aCYmKHRoaXMuZGF5PWgpfXRoaXMuYXBwbHkoKTtsZXQgbD1jaVthXVswXSxjPWNpW2FdWzJdLGQ9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUobCxlLGMpO2lmKGw9PT0iZGF5Iil7bGV0IGY9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpc1tsXT1NYXRoLm1pbihkLGYpfWVsc2UgdGhpc1tsXT1kO2lmKHRoaXMuYXBwbHkoKSxhPT09MCl7bGV0IGY9Y2lbMV1bMl0scD10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgiZGF5IixlLGYpLGg9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCksbT1NYXRoLm1pbihwLGgpO20hPT10aGlzLmRheSYmKHRoaXMuZGF5PW0sdGhpcy5ob3VyPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJob3VyIixlLGNpWzJdWzJdKSx0aGlzLm1pbnV0ZT10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgibWludXRlIixlLGNpWzNdWzJdKSx0aGlzLnNlY29uZD10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgic2Vjb25kIixlLGNpWzRdWzJdKSl9aWYoYT09PTAmJiFlLnN0YXJZZWFyKXtmb3IoO3RoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MDspdGhpcy55ZWFyLS07aWYodGhpcy55ZWFyPDApcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZUJhY2t3YXJkKGUsciwwLHMrMSl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZUJhY2t3YXJkKGUscixhLTEscysxKX1yZXR1cm4gYSs9MSxhPj1jaS5sZW5ndGg/dGhpczp0aGlzLnllYXI8MD9udWxsOnRoaXMucmVjdXJzZUJhY2t3YXJkKGUscixhLHMrMSl9Z2V0TWF4UGF0dGVyblZhbHVlKGUscixhKXtpZihlPT09ImRheSImJnIubGFzdERheU9mTW9udGgpcmV0dXJuIHRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO2lmKGU9PT0iZGF5IiYmIXIuc3RhckRPVylyZXR1cm4gdGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7Zm9yKGxldCBzPXJbZV0ubGVuZ3RoLTE7cz49MDtzLS0paWYocltlXVtzXSlyZXR1cm4gcy1hO3JldHVybiByW2VdLmxlbmd0aC0xLWF9ZmluZFByZXZpb3VzKGUscixhLHMpe3JldHVybiB0aGlzLl9maW5kTWF0Y2goZSxyLGEscywtMSl9Z2V0RGF0ZShlKXtyZXR1cm4gZXx8dGhpcy50ej09PXZvaWQgMD9uZXcgRGF0ZSh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcyk6dHlwZW9mIHRoaXMudHo9PSJudW1iZXIiP25ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZS10aGlzLnR6LHRoaXMuc2Vjb25kLHRoaXMubXMpKTpGcXQoV0NlKHRoaXMueWVhcix0aGlzLm1vbnRoKzEsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMudHopLCExKX1nZXRUaW1lKCl7cmV0dXJuIHRoaXMuZ2V0RGF0ZSghMSkuZ2V0VGltZSgpfW1hdGNoKGUscil7aWYoIWUuc3RhclllYXImJih0aGlzLnllYXI8MHx8dGhpcy55ZWFyPj1lLnllYXIubGVuZ3RofHxlLnllYXJbdGhpcy55ZWFyXT09PTApKXJldHVybiExO2ZvcihsZXQgYT0wO2E8Y2kubGVuZ3RoO2ErKyl7bGV0IHM9Y2lbYV1bMF0sbj1jaVthXVsyXSxvPXRoaXNbc107aWYobytuPDB8fG8rbj49ZVtzXS5sZW5ndGgpcmV0dXJuITE7bGV0IGw9ZVtzXVtvK25dO2lmKHM9PT0iZGF5Iil7aWYoIWwpe2ZvcihsZXQgYz0wO2M8ZS5uZWFyZXN0V2Vla2RheXMubGVuZ3RoO2MrKylpZihlLm5lYXJlc3RXZWVrZGF5c1tjXSl7bGV0IGQ9dGhpcy5nZXROZWFyZXN0V2Vla2RheSh0aGlzLnllYXIsdGhpcy5tb250aCxjLW4pO2lmKGQhPT0tMSYmZD09PW8pe2w9MTticmVha319fWlmKGUubGFzdFdlZWtkYXkpe2xldCBjPXRoaXMuZ2V0TGFzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgpO289PT1jJiYobD0xKX1pZihlLmxhc3REYXlPZk1vbnRoKXtsZXQgYz10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtvPT09YyYmKGw9MSl9aWYoIWUuc3RhckRPVyl7bGV0IGM9bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCksZD1lLmRheU9mV2Vla1soYysoby0xKSklN107ZCYmZCY2MyYmKGQ9dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLG8sZCk/MTowKSxlLnVzZUFuZExvZ2ljP2w9bCYmZDohci5kb21BbmREb3cmJiFlLnN0YXJET00/bD1sfHxkOmw9bCYmZH19aWYoIWwpcmV0dXJuITF9cmV0dXJuITB9fTtpKEVnYSwiUiIpO2koTEMsInAiKTtpKElnYSwiXyIpO2koUGdhLCJ4Iik7SHF0PTMwKjFlMyxydj1bXSxWcXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiRSIpfW5hbWU7b3B0aW9ucztfc3RhdGVzO2ZuO2dldFR6KCl7cmV0dXJuIHRoaXMub3B0aW9ucy50aW1lem9uZXx8dGhpcy5vcHRpb25zLnV0Y09mZnNldH1hcHBseURheU9mZnNldCh0KXtpZih0aGlzLm9wdGlvbnMuZGF5T2Zmc2V0IT09dm9pZCAwJiZ0aGlzLm9wdGlvbnMuZGF5T2Zmc2V0IT09MCl7bGV0IGU9dGhpcy5vcHRpb25zLmRheU9mZnNldCoyNCo2MCo2MCoxZTM7cmV0dXJuIG5ldyBEYXRlKHQuZ2V0VGltZSgpK2UpfXJldHVybiB0fWNvbnN0cnVjdG9yKHQsZSxyKXtsZXQgYSxzO2lmKExDKGUpKXM9ZTtlbHNlIGlmKHR5cGVvZiBlPT0ib2JqZWN0IilhPWU7ZWxzZSBpZihlIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiQ3JvbjogSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgZm9yIG9wdGlvbnNJbi4gU2hvdWxkIGJlIG9uZSBvZiBmdW5jdGlvbiwgb3Igb2JqZWN0IChvcHRpb25zKS4iKTtpZihMQyhyKSlzPXI7ZWxzZSBpZih0eXBlb2Ygcj09Im9iamVjdCIpYT1yO2Vsc2UgaWYociE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIkNyb246IEludmFsaWQgYXJndW1lbnQgcGFzc2VkIGZvciBmdW5jSW4uIFNob3VsZCBiZSBvbmUgb2YgZnVuY3Rpb24sIG9yIG9iamVjdCAob3B0aW9ucykuIik7aWYodGhpcy5uYW1lPWE/Lm5hbWUsdGhpcy5vcHRpb25zPUVnYShhKSx0aGlzLl9zdGF0ZXM9e2tpbGw6ITEsYmxvY2tpbmc6ITEscHJldmlvdXNSdW46dm9pZCAwLGN1cnJlbnRSdW46dm9pZCAwLG9uY2U6dm9pZCAwLGN1cnJlbnRUaW1lb3V0OnZvaWQgMCxtYXhSdW5zOmE/YS5tYXhSdW5zOnZvaWQgMCxwYXVzZWQ6YT9hLnBhdXNlZDohMSxwYXR0ZXJuOm5ldyBZMmUoIiogKiAqICogKiIsdm9pZCAwLHttb2RlOiJhdXRvIn0pfSx0JiYodCBpbnN0YW5jZW9mIERhdGV8fHR5cGVvZiB0PT0ic3RyaW5nIiYmdC5pbmRleE9mKCI6Iik+MCk/dGhpcy5fc3RhdGVzLm9uY2U9bmV3IEdzKHQsdGhpcy5nZXRUeigpKTp0aGlzLl9zdGF0ZXMucGF0dGVybj1uZXcgWTJlKHQsdGhpcy5vcHRpb25zLnRpbWV6b25lLHttb2RlOnRoaXMub3B0aW9ucy5tb2RlLGFsdGVybmF0aXZlV2Vla2RheXM6dGhpcy5vcHRpb25zLmFsdGVybmF0aXZlV2Vla2RheXMsc2xvcHB5UmFuZ2VzOnRoaXMub3B0aW9ucy5zbG9wcHlSYW5nZXN9KSx0aGlzLm5hbWUpe2lmKHJ2LmZpbmQobj0+bi5uYW1lPT09dGhpcy5uYW1lKSl0aHJvdyBuZXcgRXJyb3IoIkNyb246IFRyaWVkIHRvIGluaXRpYWxpemUgbmV3IG5hbWVkIGpvYiAnIit0aGlzLm5hbWUrIicsIGJ1dCBuYW1lIGFscmVhZHkgdGFrZW4uIik7cnYucHVzaCh0aGlzKX1yZXR1cm4gcyE9PXZvaWQgMCYmSWdhKHMpJiYodGhpcy5mbj1zLHRoaXMuc2NoZWR1bGUoKSksdGhpc31uZXh0UnVuKHQpe2xldCBlPXRoaXMuX25leHQodCk7cmV0dXJuIGU/dGhpcy5hcHBseURheU9mZnNldChlLmdldERhdGUoITEpKTpudWxsfW5leHRSdW5zKHQsZSl7dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnQ+dGhpcy5fc3RhdGVzLm1heFJ1bnMmJih0PXRoaXMuX3N0YXRlcy5tYXhSdW5zKTtsZXQgcj1lfHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bnx8dm9pZCAwO3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKHQsciwibmV4dCIpfXByZXZpb3VzUnVucyh0LGUpe3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKHQsZXx8dm9pZCAwLCJwcmV2aW91cyIpfV9lbnVtZXJhdGVSdW5zKHQsZSxyKXtsZXQgYT1bXSxzPWU/bmV3IEdzKGUsdGhpcy5nZXRUeigpKTpudWxsLG49cj09PSJuZXh0Ij90aGlzLl9uZXh0OnRoaXMuX3ByZXZpb3VzO2Zvcig7dC0tOyl7bGV0IG89bi5jYWxsKHRoaXMscyk7aWYoIW8pYnJlYWs7bGV0IGw9by5nZXREYXRlKCExKTthLnB1c2godGhpcy5hcHBseURheU9mZnNldChsKSkscz1vfXJldHVybiBhfW1hdGNoKHQpe2lmKHRoaXMuX3N0YXRlcy5vbmNlKXtsZXQgcj1uZXcgR3ModCx0aGlzLmdldFR6KCkpO3IubXM9MDtsZXQgYT1uZXcgR3ModGhpcy5fc3RhdGVzLm9uY2UsdGhpcy5nZXRUeigpKTtyZXR1cm4gYS5tcz0wLHIuZ2V0VGltZSgpPT09YS5nZXRUaW1lKCl9bGV0IGU9bmV3IEdzKHQsdGhpcy5nZXRUeigpKTtyZXR1cm4gZS5tcz0wLGUubWF0Y2godGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKX1nZXRQYXR0ZXJuKCl7aWYoIXRoaXMuX3N0YXRlcy5vbmNlKXJldHVybiB0aGlzLl9zdGF0ZXMucGF0dGVybj90aGlzLl9zdGF0ZXMucGF0dGVybi5wYXR0ZXJuOnZvaWQgMH1nZXRPbmNlKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5vbmNlP3RoaXMuX3N0YXRlcy5vbmNlLmdldERhdGUoKTpudWxsfWlzUnVubmluZygpe2xldCB0PXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksZT0hdGhpcy5fc3RhdGVzLnBhdXNlZCxyPXRoaXMuZm4hPT12b2lkIDAsYT0hdGhpcy5fc3RhdGVzLmtpbGw7cmV0dXJuIGUmJnImJmEmJnQhPT1udWxsfWlzU3RvcHBlZCgpe3JldHVybiB0aGlzLl9zdGF0ZXMua2lsbH1pc0J1c3koKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmJsb2NraW5nfWN1cnJlbnRSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4/dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4uZ2V0RGF0ZSgpOm51bGx9cHJldmlvdXNSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuP3RoaXMuX3N0YXRlcy5wcmV2aW91c1J1bi5nZXREYXRlKCk6bnVsbH1tc1RvTmV4dCh0KXtsZXQgZT10aGlzLl9uZXh0KHQpO3JldHVybiBlP3QgaW5zdGFuY2VvZiBHc3x8dCBpbnN0YW5jZW9mIERhdGU/ZS5nZXRUaW1lKCktdC5nZXRUaW1lKCk6ZS5nZXRUaW1lKCktbmV3IEdzKHQpLmdldFRpbWUoKTpudWxsfXN0b3AoKXt0aGlzLl9zdGF0ZXMua2lsbD0hMCx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQpO2xldCB0PXJ2LmluZGV4T2YodGhpcyk7dD49MCYmcnYuc3BsaWNlKHQsMSl9cGF1c2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMCwhdGhpcy5fc3RhdGVzLmtpbGx9cmVzdW1lKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wYXVzZWQ9ITEsIXRoaXMuX3N0YXRlcy5raWxsfXNjaGVkdWxlKHQpe2lmKHQmJnRoaXMuZm4pdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJdCBpcyBub3QgYWxsb3dlZCB0byBzY2hlZHVsZSB0d28gZnVuY3Rpb25zIHVzaW5nIHRoZSBzYW1lIENyb25lciBpbnN0YW5jZS4iKTt0JiYodGhpcy5mbj10KTtsZXQgZT10aGlzLm1zVG9OZXh0KCkscj10aGlzLm5leHRSdW4odGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pO3JldHVybiBlPT1udWxsfHxpc05hTihlKXx8cj09PW51bGw/dGhpczooZT5IcXQmJihlPUhxdCksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuX2NoZWNrVHJpZ2dlcihyKSxlKSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJnRoaXMub3B0aW9ucy51bnJlZiYmUGdhKHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCksdGhpcyl9YXN5bmMgX3RyaWdnZXIodCl7dGhpcy5fc3RhdGVzLmJsb2NraW5nPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuPW5ldyBHcyh2b2lkIDAsdGhpcy5nZXRUeigpKTt0cnl7aWYodGhpcy5vcHRpb25zLmNhdGNoKXRyeXt0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWNhdGNoKGUpe2lmKExDKHRoaXMub3B0aW9ucy5jYXRjaCkpdHJ5e3RoaXMub3B0aW9ucy5jYXRjaChlLHRoaXMpfWNhdGNoe319ZWxzZSB0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWZpbmFsbHl7dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuPW5ldyBHcyh0LHRoaXMuZ2V0VHooKSksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfX1hc3luYyB0cmlnZ2VyKCl7YXdhaXQgdGhpcy5fdHJpZ2dlcigpfXJ1bnNMZWZ0KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5tYXhSdW5zfV9jaGVja1RyaWdnZXIodCl7bGV0IGU9bmV3IERhdGUscj0hdGhpcy5fc3RhdGVzLnBhdXNlZCYmZS5nZXRUaW1lKCk+PXQuZ2V0VGltZSgpLGE9dGhpcy5fc3RhdGVzLmJsb2NraW5nJiZ0aGlzLm9wdGlvbnMucHJvdGVjdDtyJiYhYT8odGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zLS0sdGhpcy5fdHJpZ2dlcigpKTpyJiZhJiZMQyh0aGlzLm9wdGlvbnMucHJvdGVjdCkmJnNldFRpbWVvdXQoKCk9PnRoaXMub3B0aW9ucy5wcm90ZWN0KHRoaXMpLDApLHRoaXMuc2NoZWR1bGUoKX1fbmV4dCh0KXtsZXQgZT0hISh0fHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bikscj0hMTshdCYmdGhpcy5vcHRpb25zLnN0YXJ0QXQmJnRoaXMub3B0aW9ucy5pbnRlcnZhbCYmKFt0LGVdPXRoaXMuX2NhbGN1bGF0ZVByZXZpb3VzUnVuKHQsZSkscj0hdCksdD1uZXcgR3ModCx0aGlzLmdldFR6KCkpLHRoaXMub3B0aW9ucy5zdGFydEF0JiZ0JiZ0LmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCkmJih0PXRoaXMub3B0aW9ucy5zdGFydEF0KTtsZXQgYT10aGlzLl9zdGF0ZXMub25jZXx8bmV3IEdzKHQsdGhpcy5nZXRUeigpKTtyZXR1cm4hciYmYSE9PXRoaXMuX3N0YXRlcy5vbmNlJiYoYT1hLmluY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMsZSkpLHRoaXMuX3N0YXRlcy5vbmNlJiZ0aGlzLl9zdGF0ZXMub25jZS5nZXRUaW1lKCk8PXQuZ2V0VGltZSgpfHxhPT09bnVsbHx8dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zPD0wfHx0aGlzLl9zdGF0ZXMua2lsbHx8dGhpcy5vcHRpb25zLnN0b3BBdCYmYS5nZXRUaW1lKCk+PXRoaXMub3B0aW9ucy5zdG9wQXQuZ2V0VGltZSgpP251bGw6YX1fcHJldmlvdXModCl7bGV0IGU9bmV3IEdzKHQsdGhpcy5nZXRUeigpKTt0aGlzLm9wdGlvbnMuc3RvcEF0JiZlLmdldFRpbWUoKT50aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKSYmKGU9dGhpcy5vcHRpb25zLnN0b3BBdCk7bGV0IHI9bmV3IEdzKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPGUuZ2V0VGltZSgpP3RoaXMuX3N0YXRlcy5vbmNlOm51bGw6KHI9ci5kZWNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKSxyPT09bnVsbHx8dGhpcy5vcHRpb25zLnN0YXJ0QXQmJnIuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKT9udWxsOnIpfV9jYWxjdWxhdGVQcmV2aW91c1J1bih0LGUpe2xldCByPW5ldyBHcyh2b2lkIDAsdGhpcy5nZXRUeigpKSxhPXQ7aWYodGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpPD1yLmdldFRpbWUoKSl7YT10aGlzLm9wdGlvbnMuc3RhcnRBdDtsZXQgcz1hLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2Zvcig7czw9ci5nZXRUaW1lKCk7KWE9bmV3IEdzKGEsdGhpcy5nZXRUeigpKS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLCEwKSxzPWEuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7ZT0hMH1yZXR1cm4gYT09PW51bGwmJihhPXZvaWQgMCksW2EsZV19fX0pO3ZhciBaMmUsJEMsTmdhLERTcywkMCxRMmUsbG8sUTEsYXYsWUNlLGp1LGl2LFgyZSxKMmUsZWNlLHRjZSxhNixzdixLMmUsVXF0LEtDZSxaQ2UsV3F0LFFDZSxTcj11KCgpPT57WjJlPTcsJEM9MzY1LjI0MjUsTmdhPU1hdGgucG93KDEwLDgpKjI0KjYwKjYwKjFlMyxEU3M9LU5nYSwkMD02MDQ4ZTUsUTJlPTg2NGU1LGxvPTZlNCxRMT0zNmU1LGF2PTFlMyxZQ2U9NTI1NjAwLGp1PTQzMjAwLGl2PTE0NDAsWDJlPTYwLEoyZT0zLGVjZT0xMix0Y2U9NCxhNj0zNjAwLHN2PTYwLEsyZT1hNioyNCxVcXQ9SzJlKjcsS0NlPUsyZSozNjUuMjQyNSxaQ2U9S0NlLzEyLFdxdD1aQ2UqMyxRQ2U9U3ltYm9sLmZvcigiY29uc3RydWN0RGF0ZUZyb20iKX0pO2Z1bmN0aW9uIFdlKHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3QoZSk6dCYmdHlwZW9mIHQ9PSJvYmplY3QiJiZRQ2UgaW4gdD90W1FDZV0oZSk6dCBpbnN0YW5jZW9mIERhdGU/bmV3IHQuY29uc3RydWN0b3IoZSk6bmV3IERhdGUoZSl9dmFyIEVTcyxVdD11KCgpPT57U3IoKTtpKFdlLCJjb25zdHJ1Y3RGcm9tIik7RVNzPVdlfSk7ZnVuY3Rpb24gTWUodCxlKXtyZXR1cm4gV2UoZXx8dCx0KX12YXIgT1NzLFplPXUoKCk9PntVdCgpO2koTWUsInRvRGF0ZSIpO09Tcz1NZX0pO2Z1bmN0aW9uIFlzKHQsZSxyKXtsZXQgYT1NZSh0LHI/LmluKTtyZXR1cm4gaXNOYU4oZSk/V2Uocj8uaW58fHQsTmFOKTooZSYmYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK2UpLGEpfXZhciBxU3MsQTA9dSgoKT0+e1V0KCk7WmUoKTtpKFlzLCJhZGREYXlzIik7cVNzPVlzfSk7ZnVuY3Rpb24gRTAodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO2lmKGlzTmFOKGUpKXJldHVybiBXZShyPy5pbnx8dCxOYU4pO2lmKCFlKXJldHVybiBhO2xldCBzPWEuZ2V0RGF0ZSgpLG49V2Uocj8uaW58fHQsYS5nZXRUaW1lKCkpO24uc2V0TW9udGgoYS5nZXRNb250aCgpK2UrMSwwKTtsZXQgbz1uLmdldERhdGUoKTtyZXR1cm4gcz49bz9uOihhLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCkscyksYSl9dmFyIEdTcyxudj11KCgpPT57VXQoKTtaZSgpO2koRTAsImFkZE1vbnRocyIpO0dTcz1FMH0pO2Z1bmN0aW9uIFV1KHQsZSxyKXtsZXR7eWVhcnM6YT0wLG1vbnRoczpzPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOmw9MCxtaW51dGVzOmM9MCxzZWNvbmRzOmQ9MH09ZSxmPU1lKHQscj8uaW4pLHA9c3x8YT9FMChmLHMrYSoxMik6ZixoPW98fG4/WXMocCxvK24qNyk6cCxtPWMrbCo2MCxiPShkK20qNjApKjFlMztyZXR1cm4gV2Uocj8uaW58fHQsK2grYil9dmFyIGVNcyxYQ2U9dSgoKT0+e0EwKCk7bnYoKTtVdCgpO1plKCk7aShVdSwiYWRkIik7ZU1zPVV1fSk7ZnVuY3Rpb24gcmNlKHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldERheSgpPT09Nn12YXIgaU1zLEpDZT11KCgpPT57WmUoKTtpKHJjZSwiaXNTYXR1cmRheSIpO2lNcz1yY2V9KTtmdW5jdGlvbiBhY2UodCxlKXtyZXR1cm4gTWUodCxlPy5pbikuZ2V0RGF5KCk9PT0wfXZhciBsTXMsZXplPXUoKCk9PntaZSgpO2koYWNlLCJpc1N1bmRheSIpO2xNcz1hY2V9KTtmdW5jdGlvbiBJMCh0LGUpe2xldCByPU1lKHQsZT8uaW4pLmdldERheSgpO3JldHVybiByPT09MHx8cj09PTZ9dmFyIHBNcyxBQz11KCgpPT57WmUoKTtpKEkwLCJpc1dlZWtlbmQiKTtwTXM9STB9KTtmdW5jdGlvbiBpY2UodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pLHM9STAoYSxyKTtpZihpc05hTihlKSlyZXR1cm4gV2Uocj8uaW4sTmFOKTtsZXQgbj1hLmdldEhvdXJzKCksbz1lPDA/LTE6MSxsPU1hdGgudHJ1bmMoZS81KTthLnNldERhdGUoYS5nZXREYXRlKCkrbCo3KTtsZXQgYz1NYXRoLmFicyhlJTUpO2Zvcig7Yz4wOylhLnNldERhdGUoYS5nZXREYXRlKCkrbyksSTAoYSxyKXx8KGMtPTEpO3JldHVybiBzJiZJMChhLHIpJiZlIT09MCYmKHJjZShhLHIpJiZhLnNldERhdGUoYS5nZXREYXRlKCkrKG88MD8yOi0xKSksYWNlKGEscikmJmEuc2V0RGF0ZShhLmdldERhdGUoKSsobzwwPzE6LTIpKSksYS5zZXRIb3VycyhuKSxhfXZhciB5TXMsdHplPXUoKCk9PntVdCgpO0pDZSgpO2V6ZSgpO0FDKCk7WmUoKTtpKGljZSwiYWRkQnVzaW5lc3NEYXlzIik7eU1zPWljZX0pO2Z1bmN0aW9uIFd1KHQsZSxyKXtyZXR1cm4gV2Uocj8uaW58fHQsK01lKHQpK2UpfXZhciBDTXMsRUM9dSgoKT0+e1V0KCk7WmUoKTtpKFd1LCJhZGRNaWxsaXNlY29uZHMiKTtDTXM9V3V9KTtmdW5jdGlvbiBzY2UodCxlLHIpe3JldHVybiBXdSh0LGUqUTEscil9dmFyIERNcyxyemU9dSgoKT0+e0VDKCk7U3IoKTtpKHNjZSwiYWRkSG91cnMiKTtETXM9c2NlfSk7ZnVuY3Rpb24gQWEoKXtyZXR1cm4gR3F0fWZ1bmN0aW9uIFlxdCh0KXtHcXQ9dH12YXIgR3F0LGNvPXUoKCk9PntHcXQ9e307aShBYSwiZ2V0RGVmYXVsdE9wdGlvbnMiKTtpKFlxdCwic2V0RGVmYXVsdE9wdGlvbnMiKX0pO2Z1bmN0aW9uIEthKHQsZSl7bGV0IHI9QWEoKSxhPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHM9TWUodCxlPy5pbiksbj1zLmdldERheSgpLG89KG48YT83OjApK24tYTtyZXR1cm4gcy5zZXREYXRlKHMuZ2V0RGF0ZSgpLW8pLHMuc2V0SG91cnMoMCwwLDAsMCksc312YXIgT01zLEcyPXUoKCk9PntjbygpO1plKCk7aShLYSwic3RhcnRPZldlZWsiKTtPTXM9S2F9KTtmdW5jdGlvbiBTcyh0LGUpe3JldHVybiBLYSh0LHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIEhNcyxQMD11KCgpPT57RzIoKTtpKFNzLCJzdGFydE9mSVNPV2VlayIpO0hNcz1Tc30pO2Z1bmN0aW9uIEZvKHQsZSl7bGV0IHI9TWUodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCkscz1XZShyLDApO3Muc2V0RnVsbFllYXIoYSsxLDAsNCkscy5zZXRIb3VycygwLDAsMCwwKTtsZXQgbj1TcyhzKSxvPVdlKHIsMCk7by5zZXRGdWxsWWVhcihhLDAsNCksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1TcyhvKTtyZXR1cm4gci5nZXRUaW1lKCk+PW4uZ2V0VGltZSgpP2ErMTpyLmdldFRpbWUoKT49bC5nZXRUaW1lKCk/YTphLTF9dmFyIEdNcyxHdT11KCgpPT57VXQoKTtQMCgpO1plKCk7aShGbywiZ2V0SVNPV2Vla1llYXIiKTtHTXM9Rm99KTtmdW5jdGlvbiBSaSh0KXtsZXQgZT1NZSh0KSxyPW5ldyBEYXRlKERhdGUuVVRDKGUuZ2V0RnVsbFllYXIoKSxlLmdldE1vbnRoKCksZS5nZXREYXRlKCksZS5nZXRIb3VycygpLGUuZ2V0TWludXRlcygpLGUuZ2V0U2Vjb25kcygpLGUuZ2V0TWlsbGlzZWNvbmRzKCkpKTtyZXR1cm4gci5zZXRVVENGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkpLCt0LStyfXZhciB4ND11KCgpPT57WmUoKTtpKFJpLCJnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIil9KTtmdW5jdGlvbiBIdCh0LC4uLmUpe2xldCByPVdlLmJpbmQobnVsbCx0fHxlLmZpbmQoYT0+dHlwZW9mIGE9PSJvYmplY3QiKSk7cmV0dXJuIGUubWFwKHIpfXZhciBIYT11KCgpPT57VXQoKTtpKEh0LCJub3JtYWxpemVEYXRlcyIpfSk7ZnVuY3Rpb24gTjAodCxlKXtsZXQgcj1NZSh0LGU/LmluKTtyZXR1cm4gci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBhQ3MsSUM9dSgoKT0+e1plKCk7aShOMCwic3RhcnRPZkRheSIpO2FDcz1OMH0pO2Z1bmN0aW9uIG1uKHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpLG49TjAoYSksbz1OMChzKSxsPStuLVJpKG4pLGM9K28tUmkobyk7cmV0dXJuIE1hdGgucm91bmQoKGwtYykvUTJlKX12YXIgZENzLHY0PXUoKCk9Pnt4NCgpO0hhKCk7U3IoKTtJQygpO2kobW4sImRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyIpO2RDcz1tbn0pO2Z1bmN0aW9uIFgxKHQsZSl7bGV0IHI9Rm8odCxlKSxhPVdlKGU/LmlufHx0LDApO3JldHVybiBhLnNldEZ1bGxZZWFyKHIsMCw0KSxhLnNldEhvdXJzKDAsMCwwLDApLFNzKGEpfXZhciBnQ3Msb3Y9dSgoKT0+e1V0KCk7R3UoKTtQMCgpO2koWDEsInN0YXJ0T2ZJU09XZWVrWWVhciIpO2dDcz1YMX0pO2Z1bmN0aW9uIG5jZSh0LGUscil7bGV0IGE9TWUodCxyPy5pbikscz1tbihhLFgxKGEscikpLG49V2Uocj8uaW58fHQsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoZSwwLDQpLG4uc2V0SG91cnMoMCwwLDAsMCksYT1YMShuKSxhLnNldERhdGUoYS5nZXREYXRlKCkrcyksYX12YXIgU0NzLGF6ZT11KCgpPT57VXQoKTt2NCgpO292KCk7WmUoKTtpKG5jZSwic2V0SVNPV2Vla1llYXIiKTtTQ3M9bmNlfSk7ZnVuY3Rpb24gb2NlKHQsZSxyKXtyZXR1cm4gbmNlKHQsRm8odCxyKStlLHIpfXZhciBUQ3MsaXplPXUoKCk9PntHdSgpO2F6ZSgpO2kob2NlLCJhZGRJU09XZWVrWWVhcnMiKTtUQ3M9b2NlfSk7ZnVuY3Rpb24gbHYodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldFRpbWUoYS5nZXRUaW1lKCkrZSpsbyksYX12YXIgRUNzLGxjZT11KCgpPT57U3IoKTtaZSgpO2kobHYsImFkZE1pbnV0ZXMiKTtFQ3M9bHZ9KTtmdW5jdGlvbiBjdih0LGUscil7cmV0dXJuIEUwKHQsZSozLHIpfXZhciBPQ3MsY2NlPXUoKCk9PntudigpO2koY3YsImFkZFF1YXJ0ZXJzIik7T0NzPWN2fSk7ZnVuY3Rpb24gZGNlKHQsZSxyKXtyZXR1cm4gV3UodCxlKjFlMyxyKX12YXIgSENzLHN6ZT11KCgpPT57RUMoKTtpKGRjZSwiYWRkU2Vjb25kcyIpO0hDcz1kY2V9KTtmdW5jdGlvbiBZdSh0LGUscil7cmV0dXJuIFlzKHQsZSo3LHIpfXZhciBVQ3MsUEM9dSgoKT0+e0EwKCk7aShZdSwiYWRkV2Vla3MiKTtVQ3M9WXV9KTtmdW5jdGlvbiB1Y2UodCxlLHIpe3JldHVybiBFMCh0LGUqMTIscil9dmFyIEtDcyxuemU9dSgoKT0+e252KCk7aSh1Y2UsImFkZFllYXJzIik7S0NzPXVjZX0pO2Z1bmN0aW9uIEtxdCh0LGUscil7bGV0W2Esc109WytNZSh0LnN0YXJ0LHI/LmluKSwrTWUodC5lbmQscj8uaW4pXS5zb3J0KChsLGMpPT5sLWMpLFtuLG9dPVsrTWUoZS5zdGFydCxyPy5pbiksK01lKGUuZW5kLHI/LmluKV0uc29ydCgobCxjKT0+bC1jKTtyZXR1cm4gcj8uaW5jbHVzaXZlP2E8PW8mJm48PXM6YTxvJiZuPHN9dmFyIEpDcyxacXQ9dSgoKT0+e1plKCk7aShLcXQsImFyZUludGVydmFsc092ZXJsYXBwaW5nIik7SkNzPUtxdH0pO2Z1bmN0aW9uIHBjZSh0LGUpe2xldCByLGE9ZT8uaW47cmV0dXJuIHQuZm9yRWFjaChzPT57IWEmJnR5cGVvZiBzPT0ib2JqZWN0IiYmKGE9V2UuYmluZChudWxsLHMpKTtsZXQgbj1NZShzLGEpOyghcnx8cjxufHxpc05hTigrbikpJiYocj1uKX0pLFdlKGEscnx8TmFOKX12YXIgaXpzLG96ZT11KCgpPT57VXQoKTtaZSgpO2kocGNlLCJtYXgiKTtpenM9cGNlfSk7ZnVuY3Rpb24gZmNlKHQsZSl7bGV0IHIsYT1lPy5pbjtyZXR1cm4gdC5mb3JFYWNoKHM9PnshYSYmdHlwZW9mIHM9PSJvYmplY3QiJiYoYT1XZS5iaW5kKG51bGwscykpO2xldCBuPU1lKHMsYSk7KCFyfHxyPm58fGlzTmFOKCtuKSkmJihyPW4pfSksV2UoYSxyfHxOYU4pfXZhciBjenMsbHplPXUoKCk9PntVdCgpO1plKCk7aShmY2UsIm1pbiIpO2N6cz1mY2V9KTtmdW5jdGlvbiBRcXQodCxlLHIpe2xldFthLHMsbl09SHQocj8uaW4sdCxlLnN0YXJ0LGUuZW5kKTtyZXR1cm4gZmNlKFtwY2UoW2Esc10sciksbl0scil9dmFyIG16cyxYcXQ9dSgoKT0+e0hhKCk7b3plKCk7bHplKCk7aShRcXQsImNsYW1wIik7bXpzPVFxdH0pO2Z1bmN0aW9uIGhjZSh0LGUpe2xldCByPStNZSh0KTtpZihpc05hTihyKSlyZXR1cm4gTmFOO2xldCBhLHM7cmV0dXJuIGUuZm9yRWFjaCgobixvKT0+e2xldCBsPU1lKG4pO2lmKGlzTmFOKCtsKSl7YT1OYU4scz1OYU47cmV0dXJufWxldCBjPU1hdGguYWJzKHItK2wpOyhhPT1udWxsfHxjPHMpJiYoYT1vLHM9Yyl9KSxhfXZhciB2enMsY3plPXUoKCk9PntaZSgpO2koaGNlLCJjbG9zZXN0SW5kZXhUbyIpO3Z6cz1oY2V9KTtmdW5jdGlvbiBKcXQodCxlLHIpe2xldFthLC4uLnNdPUh0KHI/LmluLHQsLi4uZSksbj1oY2UoYSxzKTtpZih0eXBlb2Ygbj09Im51bWJlciImJmlzTmFOKG4pKXJldHVybiBXZShhLE5hTik7aWYobiE9PXZvaWQgMClyZXR1cm4gc1tuXX12YXIgQ3pzLGVWdD11KCgpPT57SGEoKTtjemUoKTtVdCgpO2koSnF0LCJjbG9zZXN0VG8iKTtDenM9SnF0fSk7ZnVuY3Rpb24gdW8odCxlKXtsZXQgcj0rTWUodCktK01lKGUpO3JldHVybiByPDA/LTE6cj4wPzE6cn12YXIgTHpzLGk2PXUoKCk9PntaZSgpO2kodW8sImNvbXBhcmVBc2MiKTtMenM9dW99KTtmdW5jdGlvbiB0VnQodCxlKXtsZXQgcj0rTWUodCktK01lKGUpO3JldHVybiByPjA/LTE6cjwwPzE6cn12YXIgRXpzLHJWdD11KCgpPT57WmUoKTtpKHRWdCwiY29tcGFyZURlc2MiKTtFenM9dFZ0fSk7ZnVuY3Rpb24gRnIodCl7cmV0dXJuIFdlKHQsRGF0ZS5ub3coKSl9dmFyIE96cyxLcz11KCgpPT57VXQoKTtpKEZyLCJjb25zdHJ1Y3ROb3ciKTtPenM9RnJ9KTtmdW5jdGlvbiBhVnQodCl7bGV0IGU9TWF0aC50cnVuYyh0LzcpO3JldHVybiBlPT09MD8wOmV9dmFyIEh6cyxpVnQ9dSgoKT0+e1NyKCk7aShhVnQsImRheXNUb1dlZWtzIik7SHpzPWFWdH0pO2Z1bmN0aW9uIE8wKHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpO3JldHVybitOMChhKT09K04wKHMpfXZhciBXenMsZHY9dSgoKT0+e0hhKCk7SUMoKTtpKE8wLCJpc1NhbWVEYXkiKTtXenM9TzB9KTtmdW5jdGlvbiBtY2UodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2YgdD09Im9iamVjdCImJk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IERhdGVdIn12YXIgS3pzLGR6ZT11KCgpPT57aShtY2UsImlzRGF0ZSIpO0t6cz1tY2V9KTtmdW5jdGlvbiBMbih0KXtyZXR1cm4hKCFtY2UodCkmJnR5cGVvZiB0IT0ibnVtYmVyInx8aXNOYU4oK01lKHQpKSl9dmFyIGVfcyx5ND11KCgpPT57ZHplKCk7WmUoKTtpKExuLCJpc1ZhbGlkIik7ZV9zPUxufSk7ZnVuY3Rpb24gc1Z0KHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpO2lmKCFMbihhKXx8IUxuKHMpKXJldHVybiBOYU47bGV0IG49bW4oYSxzKSxvPW48MD8tMToxLGw9TWF0aC50cnVuYyhuLzcpLGM9bCo1LGQ9WXMocyxsKjcpO2Zvcig7IU8wKGEsZCk7KWMrPUkwKGQscik/MDpvLGQ9WXMoZCxvKTtyZXR1cm4gYz09PTA/MDpjfXZhciBjX3MsblZ0PXUoKCk9PntIYSgpO0EwKCk7djQoKTtkdigpO3k0KCk7QUMoKTtpKHNWdCwiZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzIik7Y19zPXNWdH0pO2Z1bmN0aW9uIGdjZSh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKTtyZXR1cm4gRm8oYSxyKS1GbyhzLHIpfXZhciBoX3MsdXplPXUoKCk9PntIYSgpO0d1KCk7aShnY2UsImRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzIik7aF9zPWdjZX0pO2Z1bmN0aW9uIG9WdCh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPVNzKGEpLG89U3MocyksbD0rbi1SaShuKSxjPStvLVJpKG8pO3JldHVybiBNYXRoLnJvdW5kKChsLWMpLyQwKX12YXIgd19zLGxWdD11KCgpPT57eDQoKTtIYSgpO1NyKCk7UDAoKTtpKG9WdCwiZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrcyIpO3dfcz1vVnR9KTtmdW5jdGlvbiBzNih0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPWEuZ2V0RnVsbFllYXIoKS1zLmdldEZ1bGxZZWFyKCksbz1hLmdldE1vbnRoKCktcy5nZXRNb250aCgpO3JldHVybiBuKjEyK299dmFyIENfcyxiY2U9dSgoKT0+e0hhKCk7aShzNiwiZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMiKTtDX3M9czZ9KTtmdW5jdGlvbiBOQyh0LGUpe2xldCByPU1lKHQsZT8uaW4pO3JldHVybiBNYXRoLnRydW5jKHIuZ2V0TW9udGgoKS8zKSsxfXZhciBMX3MscHplPXUoKCk9PntaZSgpO2koTkMsImdldFF1YXJ0ZXIiKTtMX3M9TkN9KTtmdW5jdGlvbiB1dih0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPWEuZ2V0RnVsbFllYXIoKS1zLmdldEZ1bGxZZWFyKCksbz1OQyhhKS1OQyhzKTtyZXR1cm4gbio0K299dmFyIElfcyxmemU9dSgoKT0+e0hhKCk7cHplKCk7aSh1diwiZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyIpO0lfcz11dn0pO2Z1bmN0aW9uIG42KHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpLG49S2EoYSxyKSxvPUthKHMsciksbD0rbi1SaShuKSxjPStvLVJpKG8pO3JldHVybiBNYXRoLnJvdW5kKChsLWMpLyQwKX12YXIgSF9zLHhjZT11KCgpPT57eDQoKTtIYSgpO1NyKCk7RzIoKTtpKG42LCJkaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzIik7SF9zPW42fSk7ZnVuY3Rpb24gS3UodCxlLHIpe2xldFthLHNdPUh0KHI/LmluLHQsZSk7cmV0dXJuIGEuZ2V0RnVsbFllYXIoKS1zLmdldEZ1bGxZZWFyKCl9dmFyIFVfcyx2Y2U9dSgoKT0+e0hhKCk7aShLdSwiZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyIpO1Vfcz1LdX0pO2Z1bmN0aW9uIHB2KHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpLG49Y1Z0KGEscyksbz1NYXRoLmFicyhtbihhLHMpKTthLnNldERhdGUoYS5nZXREYXRlKCktbipvKTtsZXQgbD0rKGNWdChhLHMpPT09LW4pLGM9biooby1sKTtyZXR1cm4gYz09PTA/MDpjfWZ1bmN0aW9uIGNWdCh0LGUpe2xldCByPXQuZ2V0RnVsbFllYXIoKS1lLmdldEZ1bGxZZWFyKCl8fHQuZ2V0TW9udGgoKS1lLmdldE1vbnRoKCl8fHQuZ2V0RGF0ZSgpLWUuZ2V0RGF0ZSgpfHx0LmdldEhvdXJzKCktZS5nZXRIb3VycygpfHx0LmdldE1pbnV0ZXMoKS1lLmdldE1pbnV0ZXMoKXx8dC5nZXRTZWNvbmRzKCktZS5nZXRTZWNvbmRzKCl8fHQuZ2V0TWlsbGlzZWNvbmRzKCktZS5nZXRNaWxsaXNlY29uZHMoKTtyZXR1cm4gcjwwPy0xOnI+MD8xOnJ9dmFyIFpfcyx5Y2U9dSgoKT0+e0hhKCk7djQoKTtpKHB2LCJkaWZmZXJlbmNlSW5EYXlzIik7aShjVnQsImNvbXBhcmVMb2NhbEFzYyIpO1pfcz1wdn0pO2Z1bmN0aW9uIHBvKHQpe3JldHVybiBlPT57bGV0IGE9KHQ/TWF0aFt0XTpNYXRoLnRydW5jKShlKTtyZXR1cm4gYT09PTA/MDphfX12YXIgdzQ9dSgoKT0+e2kocG8sImdldFJvdW5kaW5nTWV0aG9kIil9KTtmdW5jdGlvbiBvNih0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPSgrYS0rcykvUTE7cmV0dXJuIHBvKHI/LnJvdW5kaW5nTWV0aG9kKShuKX12YXIgaVRzLHdjZT11KCgpPT57dzQoKTtIYSgpO1NyKCk7aShvNiwiZGlmZmVyZW5jZUluSG91cnMiKTtpVHM9bzZ9KTtmdW5jdGlvbiBrY2UodCxlLHIpe3JldHVybiBvY2UodCwtZSxyKX12YXIgbFRzLGh6ZT11KCgpPT57aXplKCk7aShrY2UsInN1YklTT1dlZWtZZWFycyIpO2xUcz1rY2V9KTtmdW5jdGlvbiBkVnQodCxlLHIpe2xldFthLHNdPUh0KHI/LmluLHQsZSksbj11byhhLHMpLG89TWF0aC5hYnMoZ2NlKGEscyxyKSksbD1rY2UoYSxuKm8sciksYz0rKHVvKGwscyk9PT0tbiksZD1uKihvLWMpO3JldHVybiBkPT09MD8wOmR9dmFyIG1Ucyx1VnQ9dSgoKT0+e0hhKCk7aTYoKTt1emUoKTtoemUoKTtpKGRWdCwiZGlmZmVyZW5jZUluSVNPV2Vla1llYXJzIik7bVRzPWRWdH0pO2Z1bmN0aW9uIGZ2KHQsZSl7cmV0dXJuK01lKHQpLStNZShlKX12YXIgdlRzLFNjZT11KCgpPT57WmUoKTtpKGZ2LCJkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMiKTt2VHM9ZnZ9KTtmdW5jdGlvbiBsNih0LGUscil7bGV0IGE9ZnYodCxlKS9sbztyZXR1cm4gcG8ocj8ucm91bmRpbmdNZXRob2QpKGEpfXZhciBDVHMsTWNlPXUoKCk9Pnt3NCgpO1NyKCk7U2NlKCk7aShsNiwiZGlmZmVyZW5jZUluTWludXRlcyIpO0NUcz1sNn0pO2Z1bmN0aW9uIGh2KHQsZSl7bGV0IHI9TWUodCxlPy5pbik7cmV0dXJuIHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBMVHMsQ2NlPXUoKCk9PntaZSgpO2koaHYsImVuZE9mRGF5Iik7TFRzPWh2fSk7ZnVuY3Rpb24gbXYodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0TW9udGgoKTtyZXR1cm4gci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCksYSsxLDApLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBFVHMsemNlPXUoKCk9PntaZSgpO2kobXYsImVuZE9mTW9udGgiKTtFVHM9bXZ9KTtmdW5jdGlvbiBfY2UodCxlKXtsZXQgcj1NZSh0LGU/LmluKTtyZXR1cm4raHYocixlKT09K212KHIsZSl9dmFyIEZUcyxtemU9dSgoKT0+e0NjZSgpO3pjZSgpO1plKCk7aShfY2UsImlzTGFzdERheU9mTW9udGgiKTtGVHM9X2NlfSk7ZnVuY3Rpb24gWnUodCxlLHIpe2xldFthLHMsbl09SHQocj8uaW4sdCx0LGUpLG89dW8ocyxuKSxsPU1hdGguYWJzKHM2KHMsbikpO2lmKGw8MSlyZXR1cm4gMDtzLmdldE1vbnRoKCk9PT0xJiZzLmdldERhdGUoKT4yNyYmcy5zZXREYXRlKDMwKSxzLnNldE1vbnRoKHMuZ2V0TW9udGgoKS1vKmwpO2xldCBjPXVvKHMsbik9PT0tbztfY2UoYSkmJmw9PT0xJiZ1byhhLG4pPT09MSYmKGM9ITEpO2xldCBkPW8qKGwtK2MpO3JldHVybiBkPT09MD8wOmR9dmFyIFdUcyxPQz11KCgpPT57SGEoKTtpNigpO2JjZSgpO216ZSgpO2koWnUsImRpZmZlcmVuY2VJbk1vbnRocyIpO1dUcz1adX0pO2Z1bmN0aW9uIHBWdCh0LGUscil7bGV0IGE9WnUodCxlLHIpLzM7cmV0dXJuIHBvKHI/LnJvdW5kaW5nTWV0aG9kKShhKX12YXIgUVRzLGZWdD11KCgpPT57dzQoKTtPQygpO2kocFZ0LCJkaWZmZXJlbmNlSW5RdWFydGVycyIpO1FUcz1wVnR9KTtmdW5jdGlvbiBSMCh0LGUscil7bGV0IGE9ZnYodCxlKS8xZTM7cmV0dXJuIHBvKHI/LnJvdW5kaW5nTWV0aG9kKShhKX12YXIgckxzLFJDPXUoKCk9Pnt3NCgpO1NjZSgpO2koUjAsImRpZmZlcmVuY2VJblNlY29uZHMiKTtyTHM9UjB9KTtmdW5jdGlvbiBoVnQodCxlLHIpe2xldCBhPXB2KHQsZSxyKS83O3JldHVybiBwbyhyPy5yb3VuZGluZ01ldGhvZCkoYSl9dmFyIG9McyxtVnQ9dSgoKT0+e3c0KCk7eWNlKCk7aShoVnQsImRpZmZlcmVuY2VJbldlZWtzIik7b0xzPWhWdH0pO2Z1bmN0aW9uIFRjZSh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPXVvKGEscyksbz1NYXRoLmFicyhLdShhLHMpKTthLnNldEZ1bGxZZWFyKDE1ODQpLHMuc2V0RnVsbFllYXIoMTU4NCk7bGV0IGw9dW8oYSxzKT09PS1uLGM9biooby0rbCk7cmV0dXJuIGM9PT0wPzA6Y312YXIgZkxzLGd6ZT11KCgpPT57SGEoKTtpNigpO3ZjZSgpO2koVGNlLCJkaWZmZXJlbmNlSW5ZZWFycyIpO2ZMcz1UY2V9KTtmdW5jdGlvbiBnbih0LGUpe2xldFtyLGFdPUh0KHQsZS5zdGFydCxlLmVuZCk7cmV0dXJue3N0YXJ0OnIsZW5kOmF9fXZhciBGMD11KCgpPT57SGEoKTtpKGduLCJub3JtYWxpemVJbnRlcnZhbCIpfSk7ZnVuY3Rpb24gTGNlKHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zPytyOithLG89cz9hOnI7by5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwscz0hcyk7bGV0IGM9W107Zm9yKDsrbzw9bjspYy5wdXNoKFdlKHIsbykpLG8uc2V0RGF0ZShvLmdldERhdGUoKStsKSxvLnNldEhvdXJzKDAsMCwwLDApO3JldHVybiBzP2MucmV2ZXJzZSgpOmN9dmFyIHdMcyxiemU9dSgoKT0+e0YwKCk7VXQoKTtpKExjZSwiZWFjaERheU9mSW50ZXJ2YWwiKTt3THM9TGNlfSk7ZnVuY3Rpb24gZ1Z0KHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zPytyOithLG89cz9hOnI7by5zZXRNaW51dGVzKDAsMCwwKTtsZXQgbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwscz0hcyk7bGV0IGM9W107Zm9yKDsrbzw9bjspYy5wdXNoKFdlKHIsbykpLG8uc2V0SG91cnMoby5nZXRIb3VycygpK2wpO3JldHVybiBzP2MucmV2ZXJzZSgpOmN9dmFyIHpMcyxiVnQ9dSgoKT0+e0YwKCk7VXQoKTtpKGdWdCwiZWFjaEhvdXJPZkludGVydmFsIik7ekxzPWdWdH0pO2Z1bmN0aW9uIHhWdCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1nbihlPy5pbix0KTtyLnNldFNlY29uZHMoMCwwKTtsZXQgcz0rcj4rYSxuPXM/K3I6K2Esbz1zP2E6cixsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxzPSFzKTtsZXQgYz1bXTtmb3IoOytvPD1uOyljLnB1c2goV2UocixvKSksbz1sdihvLGwpO3JldHVybiBzP2MucmV2ZXJzZSgpOmN9dmFyIEFMcyx2VnQ9dSgoKT0+e0YwKCk7bGNlKCk7VXQoKTtpKHhWdCwiZWFjaE1pbnV0ZU9mSW50ZXJ2YWwiKTtBTHM9eFZ0fSk7ZnVuY3Rpb24geVZ0KHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zPytyOithLG89cz9hOnI7by5zZXRIb3VycygwLDAsMCwwKSxvLnNldERhdGUoMSk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHM9IXMpO2xldCBjPVtdO2Zvcig7K288PW47KWMucHVzaChXZShyLG8pKSxvLnNldE1vbnRoKG8uZ2V0TW9udGgoKStsKTtyZXR1cm4gcz9jLnJldmVyc2UoKTpjfXZhciBPTHMsd1Z0PXUoKCk9PntGMCgpO1V0KCk7aSh5VnQsImVhY2hNb250aE9mSW50ZXJ2YWwiKTtPTHM9eVZ0fSk7ZnVuY3Rpb24gQjAodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0TW9udGgoKSxzPWEtYSUzO3JldHVybiByLnNldE1vbnRoKHMsMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBITHMsRGNlPXUoKCk9PntaZSgpO2koQjAsInN0YXJ0T2ZRdWFydGVyIik7SExzPUIwfSk7ZnVuY3Rpb24ga1Z0KHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zPytCMChyKTorQjAoYSksbz1zP0IwKGEpOkIwKHIpLGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHM9IXMpO2xldCBjPVtdO2Zvcig7K288PW47KWMucHVzaChXZShyLG8pKSxvPWN2KG8sbCk7cmV0dXJuIHM/Yy5yZXZlcnNlKCk6Y312YXIgWUxzLFNWdD11KCgpPT57RjAoKTtjY2UoKTtVdCgpO0RjZSgpO2koa1Z0LCJlYWNoUXVhcnRlck9mSW50ZXJ2YWwiKTtZTHM9a1Z0fSk7ZnVuY3Rpb24gTVZ0KHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zP0thKGEsZSk6S2EocixlKSxvPXM/S2EocixlKTpLYShhLGUpO24uc2V0SG91cnMoMTUpLG8uc2V0SG91cnMoMTUpO2xldCBsPStvLmdldFRpbWUoKSxjPW4sZD1lPy5zdGVwPz8xO2lmKCFkKXJldHVybltdO2Q8MCYmKGQ9LWQscz0hcyk7bGV0IGY9W107Zm9yKDsrYzw9bDspYy5zZXRIb3VycygwKSxmLnB1c2goV2UocixjKSksYz1ZdShjLGQpLGMuc2V0SG91cnMoMTUpO3JldHVybiBzP2YucmV2ZXJzZSgpOmZ9dmFyIHREcyxDVnQ9dSgoKT0+e0YwKCk7UEMoKTtVdCgpO0cyKCk7aShNVnQsImVhY2hXZWVrT2ZJbnRlcnZhbCIpO3REcz1NVnR9KTtmdW5jdGlvbiBndih0LGUpe2xldHtzdGFydDpyLGVuZDphfT1nbihlPy5pbix0KSxzPUxjZSh7c3RhcnQ6cixlbmQ6YX0sZSksbj1bXSxvPTA7Zm9yKDtvPHMubGVuZ3RoOyl7bGV0IGw9c1tvKytdO0kwKGwpJiZuLnB1c2goV2UocixsKSl9cmV0dXJuIG59dmFyIGxEcywkY2U9dSgoKT0+e0YwKCk7VXQoKTtiemUoKTtBQygpO2koZ3YsImVhY2hXZWVrZW5kT2ZJbnRlcnZhbCIpO2xEcz1ndn0pO2Z1bmN0aW9uIFF1KHQsZSl7bGV0IHI9TWUodCxlPy5pbik7cmV0dXJuIHIuc2V0RGF0ZSgxKSxyLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIHBEcyxGQz11KCgpPT57WmUoKTtpKFF1LCJzdGFydE9mTW9udGgiKTtwRHM9UXV9KTtmdW5jdGlvbiB6VnQodCxlKXtsZXQgcj1RdSh0LGUpLGE9bXYodCxlKTtyZXR1cm4gZ3Yoe3N0YXJ0OnIsZW5kOmF9LGUpfXZhciB4RHMsX1Z0PXUoKCk9PnskY2UoKTt6Y2UoKTtGQygpO2koelZ0LCJlYWNoV2Vla2VuZE9mTW9udGgiKTt4RHM9elZ0fSk7ZnVuY3Rpb24gQWNlKHQsZSl7bGV0IHI9TWUodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoYSsxLDAsMCksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIGtEcyx4emU9dSgoKT0+e1plKCk7aShBY2UsImVuZE9mWWVhciIpO2tEcz1BY2V9KTtmdW5jdGlvbiBidih0LGUpe2xldCByPU1lKHQsZT8uaW4pO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSwwLDEpLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgekRzLEVjZT11KCgpPT57WmUoKTtpKGJ2LCJzdGFydE9mWWVhciIpO3pEcz1idn0pO2Z1bmN0aW9uIFRWdCh0LGUpe2xldCByPWJ2KHQsZSksYT1BY2UodCxlKTtyZXR1cm4gZ3Yoe3N0YXJ0OnIsZW5kOmF9LGUpfXZhciBBRHMsTFZ0PXUoKCk9PnskY2UoKTt4emUoKTtFY2UoKTtpKFRWdCwiZWFjaFdlZWtlbmRPZlllYXIiKTtBRHM9VFZ0fSk7ZnVuY3Rpb24gRFZ0KHQsZSl7bGV0e3N0YXJ0OnIsZW5kOmF9PWduKGU/LmluLHQpLHM9K3I+K2Esbj1zPytyOithLG89cz9hOnI7by5zZXRIb3VycygwLDAsMCwwKSxvLnNldE1vbnRoKDAsMSk7bGV0IGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLHM9IXMpO2xldCBjPVtdO2Zvcig7K288PW47KWMucHVzaChXZShyLG8pKSxvLnNldEZ1bGxZZWFyKG8uZ2V0RnVsbFllYXIoKStsKTtyZXR1cm4gcz9jLnJldmVyc2UoKTpjfXZhciBPRHMsJFZ0PXUoKCk9PntGMCgpO1V0KCk7aShEVnQsImVhY2hZZWFyT2ZJbnRlcnZhbCIpO09Ecz1EVnR9KTtmdW5jdGlvbiBBVnQodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0RnVsbFllYXIoKSxzPTkrTWF0aC5mbG9vcihhLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihzLDExLDMxKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgSERzLEVWdD11KCgpPT57WmUoKTtpKEFWdCwiZW5kT2ZEZWNhZGUiKTtIRHM9QVZ0fSk7ZnVuY3Rpb24gSVZ0KHQsZSl7bGV0IHI9TWUodCxlPy5pbik7cmV0dXJuIHIuc2V0TWludXRlcyg1OSw1OSw5OTkpLHJ9dmFyIFVEcyxQVnQ9dSgoKT0+e1plKCk7aShJVnQsImVuZE9mSG91ciIpO1VEcz1JVnR9KTtmdW5jdGlvbiBJY2UodCxlKXtsZXQgcj1BYSgpLGE9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/ci53ZWVrU3RhcnRzT24/P3IubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAscz1NZSh0LGU/LmluKSxuPXMuZ2V0RGF5KCksbz0objxhPy03OjApKzYtKG4tYSk7cmV0dXJuIHMuc2V0RGF0ZShzLmdldERhdGUoKStvKSxzLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksc312YXIgWkRzLHZ6ZT11KCgpPT57Y28oKTtaZSgpO2koSWNlLCJlbmRPZldlZWsiKTtaRHM9SWNlfSk7ZnVuY3Rpb24gTlZ0KHQsZSl7cmV0dXJuIEljZSh0LHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIGUkcyxPVnQ9dSgoKT0+e3Z6ZSgpO2koTlZ0LCJlbmRPZklTT1dlZWsiKTtlJHM9TlZ0fSk7ZnVuY3Rpb24gUlZ0KHQsZSl7bGV0IHI9Rm8odCxlKSxhPVdlKGU/LmlufHx0LDApO2Euc2V0RnVsbFllYXIocisxLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKTtsZXQgcz1TcyhhLGUpO3JldHVybiBzLnNldE1pbGxpc2Vjb25kcyhzLmdldE1pbGxpc2Vjb25kcygpLTEpLHN9dmFyIG4kcyxGVnQ9dSgoKT0+e1V0KCk7R3UoKTtQMCgpO2koUlZ0LCJlbmRPZklTT1dlZWtZZWFyIik7biRzPVJWdH0pO2Z1bmN0aW9uIEJWdCh0LGUpe2xldCByPU1lKHQsZT8uaW4pO3JldHVybiByLnNldFNlY29uZHMoNTksOTk5KSxyfXZhciBkJHMsSFZ0PXUoKCk9PntaZSgpO2koQlZ0LCJlbmRPZk1pbnV0ZSIpO2Qkcz1CVnR9KTtmdW5jdGlvbiBxVnQodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0TW9udGgoKSxzPWEtYSUzKzM7cmV0dXJuIHIuc2V0TW9udGgocywwKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgaCRzLFZWdD11KCgpPT57WmUoKTtpKHFWdCwiZW5kT2ZRdWFydGVyIik7aCRzPXFWdH0pO2Z1bmN0aW9uIGpWdCh0LGUpe2xldCByPU1lKHQsZT8uaW4pO3JldHVybiByLnNldE1pbGxpc2Vjb25kcyg5OTkpLHJ9dmFyIHgkcyxVVnQ9dSgoKT0+e1plKCk7aShqVnQsImVuZE9mU2Vjb25kIik7eCRzPWpWdH0pO2Z1bmN0aW9uIFdWdCh0KXtyZXR1cm4gaHYoRGF0ZS5ub3coKSx0KX12YXIgayRzLEdWdD11KCgpPT57Q2NlKCk7aShXVnQsImVuZE9mVG9kYXkiKTtrJHM9V1Z0fSk7ZnVuY3Rpb24gWVZ0KHQpe2xldCBlPUZyKHQ/LmluKSxyPWUuZ2V0RnVsbFllYXIoKSxhPWUuZ2V0TW9udGgoKSxzPWUuZ2V0RGF0ZSgpLG49RnIodD8uaW4pO3JldHVybiBuLnNldEZ1bGxZZWFyKHIsYSxzKzEpLG4uc2V0SG91cnMoMjMsNTksNTksOTk5KSx0Py5pbj90LmluKG4pOm59dmFyIHokcyxLVnQ9dSgoKT0+e0tzKCk7aShZVnQsImVuZE9mVG9tb3Jyb3ciKTt6JHM9WVZ0fSk7ZnVuY3Rpb24gWlZ0KHQpe2xldCBlPUZyKHQ/LmluKSxyPVdlKHQ/LmluLDApO3JldHVybiByLnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSxlLmdldE1vbnRoKCksZS5nZXREYXRlKCktMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyICQkcyxRVnQ9dSgoKT0+e1V0KCk7S3MoKTtpKFpWdCwiZW5kT2ZZZXN0ZXJkYXkiKTskJHM9WlZ0fSk7dmFyIE9nYSxYVnQsSlZ0PXUoKCk9PntPZ2E9e2xlc3NUaGFuWFNlY29uZHM6e29uZToibGVzcyB0aGFuIGEgc2Vjb25kIixvdGhlcjoibGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzIn0seFNlY29uZHM6e29uZToiMSBzZWNvbmQiLG90aGVyOiJ7e2NvdW50fX0gc2Vjb25kcyJ9LGhhbGZBTWludXRlOiJoYWxmIGEgbWludXRlIixsZXNzVGhhblhNaW51dGVzOntvbmU6Imxlc3MgdGhhbiBhIG1pbnV0ZSIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlcyJ9LHhNaW51dGVzOntvbmU6IjEgbWludXRlIixvdGhlcjoie3tjb3VudH19IG1pbnV0ZXMifSxhYm91dFhIb3Vyczp7b25lOiJhYm91dCAxIGhvdXIiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gaG91cnMifSx4SG91cnM6e29uZToiMSBob3VyIixvdGhlcjoie3tjb3VudH19IGhvdXJzIn0seERheXM6e29uZToiMSBkYXkiLG90aGVyOiJ7e2NvdW50fX0gZGF5cyJ9LGFib3V0WFdlZWtzOntvbmU6ImFib3V0IDEgd2VlayIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB3ZWVrcyJ9LHhXZWVrczp7b25lOiIxIHdlZWsiLG90aGVyOiJ7e2NvdW50fX0gd2Vla3MifSxhYm91dFhNb250aHM6e29uZToiYWJvdXQgMSBtb250aCIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSBtb250aHMifSx4TW9udGhzOntvbmU6IjEgbW9udGgiLG90aGVyOiJ7e2NvdW50fX0gbW9udGhzIn0sYWJvdXRYWWVhcnM6e29uZToiYWJvdXQgMSB5ZWFyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IHllYXJzIn0seFllYXJzOntvbmU6IjEgeWVhciIsb3RoZXI6Int7Y291bnR9fSB5ZWFycyJ9LG92ZXJYWWVhcnM6e29uZToib3ZlciAxIHllYXIiLG90aGVyOiJvdmVyIHt7Y291bnR9fSB5ZWFycyJ9LGFsbW9zdFhZZWFyczp7b25lOiJhbG1vc3QgMSB5ZWFyIixvdGhlcjoiYWxtb3N0IHt7Y291bnR9fSB5ZWFycyJ9fSxYVnQ9aSgodCxlLHIpPT57bGV0IGEscz1PZ2FbdF07cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIj9hPXM6ZT09PTE/YT1zLm9uZTphPXMub3RoZXIucmVwbGFjZSgie3tjb3VudH19IixlLnRvU3RyaW5nKCkpLHI/LmFkZFN1ZmZpeD9yLmNvbXBhcmlzb24mJnIuY29tcGFyaXNvbj4wPyJpbiAiK2E6YSsiIGFnbyI6YX0sImZvcm1hdERpc3RhbmNlIil9KTtmdW5jdGlvbiBQY2UodCl7cmV0dXJuKGU9e30pPT57bGV0IHI9ZS53aWR0aD9TdHJpbmcoZS53aWR0aCk6dC5kZWZhdWx0V2lkdGg7cmV0dXJuIHQuZm9ybWF0c1tyXXx8dC5mb3JtYXRzW3QuZGVmYXVsdFdpZHRoXX19dmFyIGVqdD11KCgpPT57aShQY2UsImJ1aWxkRm9ybWF0TG9uZ0ZuIil9KTt2YXIgUmdhLEZnYSxCZ2EsdGp0LHJqdD11KCgpPT57ZWp0KCk7UmdhPXtmdWxsOiJFRUVFLCBNTU1NIGRvLCB5Iixsb25nOiJNTU1NIGRvLCB5IixtZWRpdW06Ik1NTSBkLCB5IixzaG9ydDoiTU0vZGQveXl5eSJ9LEZnYT17ZnVsbDoiaDptbTpzcyBhIHp6enoiLGxvbmc6Img6bW06c3MgYSB6IixtZWRpdW06Img6bW06c3MgYSIsc2hvcnQ6Img6bW0gYSJ9LEJnYT17ZnVsbDoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbG9uZzoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbWVkaXVtOiJ7e2RhdGV9fSwge3t0aW1lfX0iLHNob3J0OiJ7e2RhdGV9fSwge3t0aW1lfX0ifSx0anQ9e2RhdGU6UGNlKHtmb3JtYXRzOlJnYSxkZWZhdWx0V2lkdGg6ImZ1bGwifSksdGltZTpQY2Uoe2Zvcm1hdHM6RmdhLGRlZmF1bHRXaWR0aDoiZnVsbCJ9KSxkYXRlVGltZTpQY2Uoe2Zvcm1hdHM6QmdhLGRlZmF1bHRXaWR0aDoiZnVsbCJ9KX19KTt2YXIgSGdhLGFqdCxpanQ9dSgoKT0+e0hnYT17bGFzdFdlZWs6IidsYXN0JyBlZWVlICdhdCcgcCIseWVzdGVyZGF5OiIneWVzdGVyZGF5IGF0JyBwIix0b2RheToiJ3RvZGF5IGF0JyBwIix0b21vcnJvdzoiJ3RvbW9ycm93IGF0JyBwIixuZXh0V2VlazoiZWVlZSAnYXQnIHAiLG90aGVyOiJQIn0sYWp0PWkoKHQsZSxyLGEpPT5IZ2FbdF0sImZvcm1hdFJlbGF0aXZlIil9KTtmdW5jdGlvbiB4dih0KXtyZXR1cm4oZSxyKT0+e2xldCBhPXI/LmNvbnRleHQ/U3RyaW5nKHIuY29udGV4dCk6InN0YW5kYWxvbmUiLHM7aWYoYT09PSJmb3JtYXR0aW5nIiYmdC5mb3JtYXR0aW5nVmFsdWVzKXtsZXQgbz10LmRlZmF1bHRGb3JtYXR0aW5nV2lkdGh8fHQuZGVmYXVsdFdpZHRoLGw9cj8ud2lkdGg/U3RyaW5nKHIud2lkdGgpOm87cz10LmZvcm1hdHRpbmdWYWx1ZXNbbF18fHQuZm9ybWF0dGluZ1ZhbHVlc1tvXX1lbHNle2xldCBvPXQuZGVmYXVsdFdpZHRoLGw9cj8ud2lkdGg/U3RyaW5nKHIud2lkdGgpOnQuZGVmYXVsdFdpZHRoO3M9dC52YWx1ZXNbbF18fHQudmFsdWVzW29dfWxldCBuPXQuYXJndW1lbnRDYWxsYmFjaz90LmFyZ3VtZW50Q2FsbGJhY2soZSk6ZTtyZXR1cm4gc1tuXX19dmFyIHNqdD11KCgpPT57aSh4diwiYnVpbGRMb2NhbGl6ZUZuIil9KTt2YXIgcWdhLFZnYSxqZ2EsVWdhLFdnYSxHZ2EsWWdhLG5qdCxvanQ9dSgoKT0+e3NqdCgpO3FnYT17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LFZnYT17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0samdhPXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxVZ2E9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sV2dhPXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSxHZ2E9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LFlnYT1pKCh0LGUpPT57bGV0IHI9TnVtYmVyKHQpLGE9ciUxMDA7aWYoYT4yMHx8YTwxMClzd2l0Y2goYSUxMCl7Y2FzZSAxOnJldHVybiByKyJzdCI7Y2FzZSAyOnJldHVybiByKyJuZCI7Y2FzZSAzOnJldHVybiByKyJyZCJ9cmV0dXJuIHIrInRoIn0sIm9yZGluYWxOdW1iZXIiKSxuanQ9e29yZGluYWxOdW1iZXI6WWdhLGVyYTp4dih7dmFsdWVzOnFnYSxkZWZhdWx0V2lkdGg6IndpZGUifSkscXVhcnRlcjp4dih7dmFsdWVzOlZnYSxkZWZhdWx0V2lkdGg6IndpZGUiLGFyZ3VtZW50Q2FsbGJhY2s6aSh0PT50LTEsImFyZ3VtZW50Q2FsbGJhY2siKX0pLG1vbnRoOnh2KHt2YWx1ZXM6amdhLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXk6eHYoe3ZhbHVlczpVZ2EsZGVmYXVsdFdpZHRoOiJ3aWRlIn0pLGRheVBlcmlvZDp4dih7dmFsdWVzOldnYSxkZWZhdWx0V2lkdGg6IndpZGUiLGZvcm1hdHRpbmdWYWx1ZXM6R2dhLGRlZmF1bHRGb3JtYXR0aW5nV2lkdGg6IndpZGUifSl9fSk7ZnVuY3Rpb24gdnYodCl7cmV0dXJuKGUscj17fSk9PntsZXQgYT1yLndpZHRoLHM9YSYmdC5tYXRjaFBhdHRlcm5zW2FdfHx0Lm1hdGNoUGF0dGVybnNbdC5kZWZhdWx0TWF0Y2hXaWR0aF0sbj1lLm1hdGNoKHMpO2lmKCFuKXJldHVybiBudWxsO2xldCBvPW5bMF0sbD1hJiZ0LnBhcnNlUGF0dGVybnNbYV18fHQucGFyc2VQYXR0ZXJuc1t0LmRlZmF1bHRQYXJzZVdpZHRoXSxjPUFycmF5LmlzQXJyYXkobCk/WmdhKGwscD0+cC50ZXN0KG8pKTpLZ2EobCxwPT5wLnRlc3QobykpLGQ7ZD10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKGMpOmMsZD1yLnZhbHVlQ2FsbGJhY2s/ci52YWx1ZUNhbGxiYWNrKGQpOmQ7bGV0IGY9ZS5zbGljZShvLmxlbmd0aCk7cmV0dXJue3ZhbHVlOmQscmVzdDpmfX19ZnVuY3Rpb24gS2dhKHQsZSl7Zm9yKGxldCByIGluIHQpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUodFtyXSkpcmV0dXJuIHJ9ZnVuY3Rpb24gWmdhKHQsZSl7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspaWYoZSh0W3JdKSlyZXR1cm4gcn12YXIgbGp0PXUoKCk9PntpKHZ2LCJidWlsZE1hdGNoRm4iKTtpKEtnYSwiZmluZEtleSIpO2koWmdhLCJmaW5kSW5kZXgiKX0pO2Z1bmN0aW9uIGNqdCh0KXtyZXR1cm4oZSxyPXt9KT0+e2xldCBhPWUubWF0Y2godC5tYXRjaFBhdHRlcm4pO2lmKCFhKXJldHVybiBudWxsO2xldCBzPWFbMF0sbj1lLm1hdGNoKHQucGFyc2VQYXR0ZXJuKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKG5bMF0pOm5bMF07bz1yLnZhbHVlQ2FsbGJhY2s/ci52YWx1ZUNhbGxiYWNrKG8pOm87bGV0IGw9ZS5zbGljZShzLmxlbmd0aCk7cmV0dXJue3ZhbHVlOm8scmVzdDpsfX19dmFyIGRqdD11KCgpPT57aShjanQsImJ1aWxkTWF0Y2hQYXR0ZXJuRm4iKX0pO3ZhciBRZ2EsWGdhLEpnYSxlYmEsdGJhLHJiYSxhYmEsaWJhLHNiYSxuYmEsb2JhLGxiYSx1anQscGp0PXUoKCk9PntsanQoKTtkanQoKTtRZ2E9L14oXGQrKSh0aHxzdHxuZHxyZCk/L2ksWGdhPS9cZCsvaSxKZ2E9e25hcnJvdzovXihifGEpL2ksYWJicmV2aWF0ZWQ6L14oYlwuP1xzP2NcLj98YlwuP1xzP2NcLj9ccz9lXC4/fGFcLj9ccz9kXC4/fGNcLj9ccz9lXC4/KS9pLHdpZGU6L14oYmVmb3JlIGNocmlzdHxiZWZvcmUgY29tbW9uIGVyYXxhbm5vIGRvbWluaXxjb21tb24gZXJhKS9pfSxlYmE9e2FueTpbL15iL2ksL14oYXxjKS9pXX0sdGJhPXtuYXJyb3c6L15bMTIzNF0vaSxhYmJyZXZpYXRlZDovXnFbMTIzNF0vaSx3aWRlOi9eWzEyMzRdKHRofHN0fG5kfHJkKT8gcXVhcnRlci9pfSxyYmE9e2FueTpbLzEvaSwvMi9pLC8zL2ksLzQvaV19LGFiYT17bmFycm93Oi9eW2pmbWFzb25kXS9pLGFiYnJldmlhdGVkOi9eKGphbnxmZWJ8bWFyfGFwcnxtYXl8anVufGp1bHxhdWd8c2VwfG9jdHxub3Z8ZGVjKS9pLHdpZGU6L14oamFudWFyeXxmZWJydWFyeXxtYXJjaHxhcHJpbHxtYXl8anVuZXxqdWx5fGF1Z3VzdHxzZXB0ZW1iZXJ8b2N0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaX0saWJhPXtuYXJyb3c6Wy9eai9pLC9eZi9pLC9ebS9pLC9eYS9pLC9ebS9pLC9eai9pLC9eai9pLC9eYS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXSxhbnk6Wy9eamEvaSwvXmYvaSwvXm1hci9pLC9eYXAvaSwvXm1heS9pLC9eanVuL2ksL15qdWwvaSwvXmF1L2ksL15zL2ksL15vL2ksL15uL2ksL15kL2ldfSxzYmE9e25hcnJvdzovXltzbXR3Zl0vaSxzaG9ydDovXihzdXxtb3x0dXx3ZXx0aHxmcnxzYSkvaSxhYmJyZXZpYXRlZDovXihzdW58bW9ufHR1ZXx3ZWR8dGh1fGZyaXxzYXQpL2ksd2lkZTovXihzdW5kYXl8bW9uZGF5fHR1ZXNkYXl8d2VkbmVzZGF5fHRodXJzZGF5fGZyaWRheXxzYXR1cmRheSkvaX0sbmJhPXtuYXJyb3c6Wy9ecy9pLC9ebS9pLC9edC9pLC9edy9pLC9edC9pLC9eZi9pLC9ecy9pXSxhbnk6Wy9ec3UvaSwvXm0vaSwvXnR1L2ksL153L2ksL150aC9pLC9eZi9pLC9ec2EvaV19LG9iYT17bmFycm93Oi9eKGF8cHxtaXxufChpbiB0aGV8YXQpIChtb3JuaW5nfGFmdGVybm9vbnxldmVuaW5nfG5pZ2h0KSkvaSxhbnk6L14oW2FwXVwuP1xzP21cLj98bWlkbmlnaHR8bm9vbnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2l9LGxiYT17YW55OnthbTovXmEvaSxwbTovXnAvaSxtaWRuaWdodDovXm1pL2ksbm9vbjovXm5vL2ksbW9ybmluZzovbW9ybmluZy9pLGFmdGVybm9vbjovYWZ0ZXJub29uL2ksZXZlbmluZzovZXZlbmluZy9pLG5pZ2h0Oi9uaWdodC9pfX0sdWp0PXtvcmRpbmFsTnVtYmVyOmNqdCh7bWF0Y2hQYXR0ZXJuOlFnYSxwYXJzZVBhdHRlcm46WGdhLHZhbHVlQ2FsbGJhY2s6aSh0PT5wYXJzZUludCh0LDEwKSwidmFsdWVDYWxsYmFjayIpfSksZXJhOnZ2KHttYXRjaFBhdHRlcm5zOkpnYSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczplYmEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxxdWFydGVyOnZ2KHttYXRjaFBhdHRlcm5zOnRiYSxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpyYmEsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSIsdmFsdWVDYWxsYmFjazppKHQ9PnQrMSwidmFsdWVDYWxsYmFjayIpfSksbW9udGg6dnYoe21hdGNoUGF0dGVybnM6YWJhLGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOmliYSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLGRheTp2dih7bWF0Y2hQYXR0ZXJuczpzYmEsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6bmJhLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSksZGF5UGVyaW9kOnZ2KHttYXRjaFBhdHRlcm5zOm9iYSxkZWZhdWx0TWF0Y2hXaWR0aDoiYW55IixwYXJzZVBhdHRlcm5zOmxiYSxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pfX0pO3ZhciB6MSxuQXMsZmp0PXUoKCk9PntKVnQoKTtyanQoKTtpanQoKTtvanQoKTtwanQoKTt6MT17Y29kZToiZW4tVVMiLGZvcm1hdERpc3RhbmNlOlhWdCxmb3JtYXRMb25nOnRqdCxmb3JtYXRSZWxhdGl2ZTphanQsbG9jYWxpemU6bmp0LG1hdGNoOnVqdCxvcHRpb25zOnt3ZWVrU3RhcnRzT246MCxmaXJzdFdlZWtDb250YWluc0RhdGU6MX19LG5Bcz16MX0pO3ZhciBjNj11KCgpPT57Zmp0KCl9KTtmdW5jdGlvbiBOY2UodCxlKXtsZXQgcj1NZSh0LGU/LmluKTtyZXR1cm4gbW4ocixidihyKSkrMX12YXIgZkFzLHl6ZT11KCgpPT57djQoKTtFY2UoKTtaZSgpO2koTmNlLCJnZXREYXlPZlllYXIiKTtmQXM9TmNlfSk7ZnVuY3Rpb24geXYodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPStTcyhyKS0rWDEocik7cmV0dXJuIE1hdGgucm91bmQoYS8kMCkrMX12YXIgeUFzLE9jZT11KCgpPT57U3IoKTtQMCgpO292KCk7WmUoKTtpKHl2LCJnZXRJU09XZWVrIik7eUFzPXl2fSk7ZnVuY3Rpb24gWHUodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0RnVsbFllYXIoKSxzPUFhKCksbj1lPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2U/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/cy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxvPVdlKGU/LmlufHx0LDApO28uc2V0RnVsbFllYXIoYSsxLDAsbiksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1LYShvLGUpLGM9V2UoZT8uaW58fHQsMCk7Yy5zZXRGdWxsWWVhcihhLDAsbiksYy5zZXRIb3VycygwLDAsMCwwKTtsZXQgZD1LYShjLGUpO3JldHVybityPj0rbD9hKzE6K3I+PStkP2E6YS0xfXZhciBfQXMsQkM9dSgoKT0+e2NvKCk7VXQoKTtHMigpO1plKCk7aShYdSwiZ2V0V2Vla1llYXIiKTtfQXM9WHV9KTtmdW5jdGlvbiBkNih0LGUpe2xldCByPUFhKCksYT1lPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2U/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxzPVh1KHQsZSksbj1XZShlPy5pbnx8dCwwKTtyZXR1cm4gbi5zZXRGdWxsWWVhcihzLDAsYSksbi5zZXRIb3VycygwLDAsMCwwKSxLYShuLGUpfXZhciBJQXMsUmNlPXUoKCk9PntjbygpO1V0KCk7QkMoKTtHMigpO2koZDYsInN0YXJ0T2ZXZWVrWWVhciIpO0lBcz1kNn0pO2Z1bmN0aW9uIHd2KHQsZSl7bGV0IHI9TWUodCxlPy5pbiksYT0rS2EocixlKS0rZDYocixlKTtyZXR1cm4gTWF0aC5yb3VuZChhLyQwKSsxfXZhciBIQXMsRmNlPXUoKCk9PntTcigpO0cyKCk7UmNlKCk7WmUoKTtpKHd2LCJnZXRXZWVrIik7SEFzPXd2fSk7ZnVuY3Rpb24gX3QodCxlKXtsZXQgcj10PDA/Ii0iOiIiLGE9TWF0aC5hYnModCkudG9TdHJpbmcoKS5wYWRTdGFydChlLCIwIik7cmV0dXJuIHIrYX12YXIgdTY9dSgoKT0+e2koX3QsImFkZExlYWRpbmdaZXJvcyIpfSk7dmFyIEoxLHd6ZT11KCgpPT57dTYoKTtKMT17eSh0LGUpe2xldCByPXQuZ2V0RnVsbFllYXIoKSxhPXI+MD9yOjEtcjtyZXR1cm4gX3QoZT09PSJ5eSI/YSUxMDA6YSxlLmxlbmd0aCl9LE0odCxlKXtsZXQgcj10LmdldE1vbnRoKCk7cmV0dXJuIGU9PT0iTSI/U3RyaW5nKHIrMSk6X3QocisxLDIpfSxkKHQsZSl7cmV0dXJuIF90KHQuZ2V0RGF0ZSgpLGUubGVuZ3RoKX0sYSh0LGUpe2xldCByPXQuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKGUpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIHIudG9VcHBlckNhc2UoKTtjYXNlImFhYSI6cmV0dXJuIHI7Y2FzZSJhYWFhYSI6cmV0dXJuIHJbMF07ZGVmYXVsdDpyZXR1cm4gcj09PSJhbSI/ImEubS4iOiJwLm0uIn19LGgodCxlKXtyZXR1cm4gX3QodC5nZXRIb3VycygpJTEyfHwxMixlLmxlbmd0aCl9LEgodCxlKXtyZXR1cm4gX3QodC5nZXRIb3VycygpLGUubGVuZ3RoKX0sbSh0LGUpe3JldHVybiBfdCh0LmdldE1pbnV0ZXMoKSxlLmxlbmd0aCl9LHModCxlKXtyZXR1cm4gX3QodC5nZXRTZWNvbmRzKCksZS5sZW5ndGgpfSxTKHQsZSl7bGV0IHI9ZS5sZW5ndGgsYT10LmdldE1pbGxpc2Vjb25kcygpLHM9TWF0aC50cnVuYyhhKk1hdGgucG93KDEwLHItMykpO3JldHVybiBfdChzLGUubGVuZ3RoKX19fSk7ZnVuY3Rpb24gaGp0KHQsZT0iIil7bGV0IHI9dD4wPyItIjoiKyIsYT1NYXRoLmFicyh0KSxzPU1hdGgudHJ1bmMoYS82MCksbj1hJTYwO3JldHVybiBuPT09MD9yK1N0cmluZyhzKTpyK1N0cmluZyhzKStlK190KG4sMil9ZnVuY3Rpb24gbWp0KHQsZSl7cmV0dXJuIHQlNjA9PT0wPyh0PjA/Ii0iOiIrIikrX3QoTWF0aC5hYnModCkvNjAsMik6cDYodCxlKX1mdW5jdGlvbiBwNih0LGU9IiIpe2xldCByPXQ+MD8iLSI6IisiLGE9TWF0aC5hYnModCkscz1fdChNYXRoLnRydW5jKGEvNjApLDIpLG49X3QoYSU2MCwyKTtyZXR1cm4gcitzK2Urbn12YXIga3YsSEMsZ2p0PXUoKCk9Pnt5emUoKTtPY2UoKTtHdSgpO0ZjZSgpO0JDKCk7dTYoKTt3emUoKTtrdj17YW06ImFtIixwbToicG0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LEhDPXtHOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0RnVsbFllYXIoKT4wPzE6MDtzd2l0Y2goZSl7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6cmV0dXJuIHIuZXJhKGEse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KTtjYXNlIkdHR0dHIjpyZXR1cm4gci5lcmEoYSx7d2lkdGg6Im5hcnJvdyJ9KTtkZWZhdWx0OnJldHVybiByLmVyYShhLHt3aWR0aDoid2lkZSJ9KX19LCJHIikseTppKGZ1bmN0aW9uKHQsZSxyKXtpZihlPT09InlvIil7bGV0IGE9dC5nZXRGdWxsWWVhcigpLHM9YT4wP2E6MS1hO3JldHVybiByLm9yZGluYWxOdW1iZXIocyx7dW5pdDoieWVhciJ9KX1yZXR1cm4gSjEueSh0LGUpfSwieSIpLFk6aShmdW5jdGlvbih0LGUscixhKXtsZXQgcz1YdSh0LGEpLG49cz4wP3M6MS1zO2lmKGU9PT0iWVkiKXtsZXQgbz1uJTEwMDtyZXR1cm4gX3QobywyKX1yZXR1cm4gZT09PSJZbyI/ci5vcmRpbmFsTnVtYmVyKG4se3VuaXQ6InllYXIifSk6X3QobixlLmxlbmd0aCl9LCJZIiksUjppKGZ1bmN0aW9uKHQsZSl7bGV0IHI9Rm8odCk7cmV0dXJuIF90KHIsZS5sZW5ndGgpfSwiUiIpLHU6aShmdW5jdGlvbih0LGUpe2xldCByPXQuZ2V0RnVsbFllYXIoKTtyZXR1cm4gX3QocixlLmxlbmd0aCl9LCJ1IiksUTppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT1NYXRoLmNlaWwoKHQuZ2V0TW9udGgoKSsxKS8zKTtzd2l0Y2goZSl7Y2FzZSJRIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UiUVEiOnJldHVybiBfdChhLDIpO2Nhc2UiUW8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJRUVFRUSI6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJRIikscTppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT1NYXRoLmNlaWwoKHQuZ2V0TW9udGgoKSsxKS8zKTtzd2l0Y2goZSl7Y2FzZSJxIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UicXEiOnJldHVybiBfdChhLDIpO2Nhc2UicW8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlInFxcSI6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJxcXFxcSI6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHIucXVhcnRlcihhLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LCJxIiksTTppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldE1vbnRoKCk7c3dpdGNoKGUpe2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIEoxLk0odCxlKTtjYXNlIk1vIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGErMSx7dW5pdDoibW9udGgifSk7Y2FzZSJNTU0iOnJldHVybiByLm1vbnRoKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIk1NTU1NIjpyZXR1cm4gci5tb250aChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIubW9udGgoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiTSIpLEw6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRNb250aCgpO3N3aXRjaChlKXtjYXNlIkwiOnJldHVybiBTdHJpbmcoYSsxKTtjYXNlIkxMIjpyZXR1cm4gX3QoYSsxLDIpO2Nhc2UiTG8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoYSsxLHt1bml0OiJtb250aCJ9KTtjYXNlIkxMTCI6cmV0dXJuIHIubW9udGgoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiTExMTEwiOnJldHVybiByLm1vbnRoKGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gci5tb250aChhLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LCJMIiksdzppKGZ1bmN0aW9uKHQsZSxyLGEpe2xldCBzPXd2KHQsYSk7cmV0dXJuIGU9PT0id28iP3Iub3JkaW5hbE51bWJlcihzLHt1bml0OiJ3ZWVrIn0pOl90KHMsZS5sZW5ndGgpfSwidyIpLEk6aShmdW5jdGlvbih0LGUscil7bGV0IGE9eXYodCk7cmV0dXJuIGU9PT0iSW8iP3Iub3JkaW5hbE51bWJlcihhLHt1bml0OiJ3ZWVrIn0pOl90KGEsZS5sZW5ndGgpfSwiSSIpLGQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuIGU9PT0iZG8iP3Iub3JkaW5hbE51bWJlcih0LmdldERhdGUoKSx7dW5pdDoiZGF0ZSJ9KTpKMS5kKHQsZSl9LCJkIiksRDppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT1OY2UodCk7cmV0dXJuIGU9PT0iRG8iP3Iub3JkaW5hbE51bWJlcihhLHt1bml0OiJkYXlPZlllYXIifSk6X3QoYSxlLmxlbmd0aCl9LCJEIiksRTppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldERheSgpO3N3aXRjaChlKXtjYXNlIkUiOmNhc2UiRUUiOmNhc2UiRUVFIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiByLmRheShhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sIkUiKSxlOmkoZnVuY3Rpb24odCxlLHIsYSl7bGV0IHM9dC5nZXREYXkoKSxuPShzLWEud2Vla1N0YXJ0c09uKzgpJTd8fDc7c3dpdGNoKGUpe2Nhc2UiZSI6cmV0dXJuIFN0cmluZyhuKTtjYXNlImVlIjpyZXR1cm4gX3QobiwyKTtjYXNlImVvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKG4se3VuaXQ6ImRheSJ9KTtjYXNlImVlZSI6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlIjpyZXR1cm4gci5kYXkocyx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlZSI6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheShzLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LCJlIiksYzppKGZ1bmN0aW9uKHQsZSxyLGEpe2xldCBzPXQuZ2V0RGF5KCksbj0ocy1hLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaChlKXtjYXNlImMiOnJldHVybiBTdHJpbmcobik7Y2FzZSJjYyI6cmV0dXJuIF90KG4sZS5sZW5ndGgpO2Nhc2UiY28iOnJldHVybiByLm9yZGluYWxOdW1iZXIobix7dW5pdDoiZGF5In0pO2Nhc2UiY2NjIjpyZXR1cm4gci5kYXkocyx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiByLmRheShzLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gci5kYXkocyx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KHMse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sImMiKSxpOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0RGF5KCkscz1hPT09MD83OmE7c3dpdGNoKGUpe2Nhc2UiaSI6cmV0dXJuIFN0cmluZyhzKTtjYXNlImlpIjpyZXR1cm4gX3QocyxlLmxlbmd0aCk7Y2FzZSJpbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihzLHt1bml0OiJkYXkifSk7Y2FzZSJpaWkiOnJldHVybiByLmRheShhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJpaWlpaSI6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJpaWlpaWkiOnJldHVybiByLmRheShhLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiaSIpLGE6aShmdW5jdGlvbih0LGUscil7bGV0IHM9dC5nZXRIb3VycygpLzEyPj0xPyJwbSI6ImFtIjtzd2l0Y2goZSl7Y2FzZSJhIjpjYXNlImFhIjpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhIjpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLnRvTG93ZXJDYXNlKCk7Y2FzZSJhYWFhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSwiYSIpLGI6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRIb3VycygpLHM7c3dpdGNoKGE9PT0xMj9zPWt2Lm5vb246YT09PTA/cz1rdi5taWRuaWdodDpzPWEvMTI+PTE/InBtIjoiYW0iLGUpe2Nhc2UiYiI6Y2FzZSJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYmJiYmIiOnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sImIiKSxCOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0SG91cnMoKSxzO3N3aXRjaChhPj0xNz9zPWt2LmV2ZW5pbmc6YT49MTI/cz1rdi5hZnRlcm5vb246YT49ND9zPWt2Lm1vcm5pbmc6cz1rdi5uaWdodCxlKXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gci5kYXlQZXJpb2Qocyx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiByLmRheVBlcmlvZChzLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKHMse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sIkIiKSxoOmkoZnVuY3Rpb24odCxlLHIpe2lmKGU9PT0iaG8iKXtsZXQgYT10LmdldEhvdXJzKCklMTI7cmV0dXJuIGE9PT0wJiYoYT0xMiksci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSl9cmV0dXJuIEoxLmgodCxlKX0sImgiKSxIOmkoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPT09IkhvIj9yLm9yZGluYWxOdW1iZXIodC5nZXRIb3VycygpLHt1bml0OiJob3VyIn0pOkoxLkgodCxlKX0sIkgiKSxLOmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0SG91cnMoKSUxMjtyZXR1cm4gZT09PSJLbyI/ci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSk6X3QoYSxlLmxlbmd0aCl9LCJLIiksazppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldEhvdXJzKCk7cmV0dXJuIGE9PT0wJiYoYT0yNCksZT09PSJrbyI/ci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImhvdXIifSk6X3QoYSxlLmxlbmd0aCl9LCJrIiksbTppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZT09PSJtbyI/ci5vcmRpbmFsTnVtYmVyKHQuZ2V0TWludXRlcygpLHt1bml0OiJtaW51dGUifSk6SjEubSh0LGUpfSwibSIpLHM6aShmdW5jdGlvbih0LGUscil7cmV0dXJuIGU9PT0ic28iP3Iub3JkaW5hbE51bWJlcih0LmdldFNlY29uZHMoKSx7dW5pdDoic2Vjb25kIn0pOkoxLnModCxlKX0sInMiKSxTOmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gSjEuUyh0LGUpfSwiUyIpLFg6aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRUaW1lem9uZU9mZnNldCgpO2lmKGE9PT0wKXJldHVybiJaIjtzd2l0Y2goZSl7Y2FzZSJYIjpyZXR1cm4gbWp0KGEpO2Nhc2UiWFhYWCI6Y2FzZSJYWCI6cmV0dXJuIHA2KGEpO2RlZmF1bHQ6cmV0dXJuIHA2KGEsIjoiKX19LCJYIikseDppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT10LmdldFRpbWV6b25lT2Zmc2V0KCk7c3dpdGNoKGUpe2Nhc2UieCI6cmV0dXJuIG1qdChhKTtjYXNlInh4eHgiOmNhc2UieHgiOnJldHVybiBwNihhKTtkZWZhdWx0OnJldHVybiBwNihhLCI6Iil9fSwieCIpLE86aShmdW5jdGlvbih0LGUscil7bGV0IGE9dC5nZXRUaW1lem9uZU9mZnNldCgpO3N3aXRjaChlKXtjYXNlIk8iOmNhc2UiT08iOmNhc2UiT09PIjpyZXR1cm4iR01UIitoanQoYSwiOiIpO2RlZmF1bHQ6cmV0dXJuIkdNVCIrcDYoYSwiOiIpfX0sIk8iKSx6OmkoZnVuY3Rpb24odCxlLHIpe2xldCBhPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6cmV0dXJuIkdNVCIraGp0KGEsIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK3A2KGEsIjoiKX19LCJ6IiksdDppKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT1NYXRoLnRydW5jKCt0LzFlMyk7cmV0dXJuIF90KGEsZS5sZW5ndGgpfSwidCIpLFQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuIF90KCt0LGUubGVuZ3RoKX0sIlQiKX07aShoanQsImZvcm1hdFRpbWV6b25lU2hvcnQiKTtpKG1qdCwiZm9ybWF0VGltZXpvbmVXaXRoT3B0aW9uYWxNaW51dGVzIik7aShwNiwiZm9ybWF0VGltZXpvbmUiKX0pO3ZhciBianQseGp0LGNiYSxKdSxremU9dSgoKT0+e2JqdD1pKCh0LGUpPT57c3dpdGNoKHQpe2Nhc2UiUCI6cmV0dXJuIGUuZGF0ZSh7d2lkdGg6InNob3J0In0pO2Nhc2UiUFAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJtZWRpdW0ifSk7Y2FzZSJQUFAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJsb25nIn0pO2RlZmF1bHQ6cmV0dXJuIGUuZGF0ZSh7d2lkdGg6ImZ1bGwifSl9fSwiZGF0ZUxvbmdGb3JtYXR0ZXIiKSx4anQ9aSgodCxlKT0+e3N3aXRjaCh0KXtjYXNlInAiOnJldHVybiBlLnRpbWUoe3dpZHRoOiJzaG9ydCJ9KTtjYXNlInBwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoibWVkaXVtIn0pO2Nhc2UicHBwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoibG9uZyJ9KTtkZWZhdWx0OnJldHVybiBlLnRpbWUoe3dpZHRoOiJmdWxsIn0pfX0sInRpbWVMb25nRm9ybWF0dGVyIiksY2JhPWkoKHQsZSk9PntsZXQgcj10Lm1hdGNoKC8oUCspKHArKT8vKXx8W10sYT1yWzFdLHM9clsyXTtpZighcylyZXR1cm4gYmp0KHQsZSk7bGV0IG47c3dpdGNoKGEpe2Nhc2UiUCI6bj1lLmRhdGVUaW1lKHt3aWR0aDoic2hvcnQifSk7YnJlYWs7Y2FzZSJQUCI6bj1lLmRhdGVUaW1lKHt3aWR0aDoibWVkaXVtIn0pO2JyZWFrO2Nhc2UiUFBQIjpuPWUuZGF0ZVRpbWUoe3dpZHRoOiJsb25nIn0pO2JyZWFrO2RlZmF1bHQ6bj1lLmRhdGVUaW1lKHt3aWR0aDoiZnVsbCJ9KTticmVha31yZXR1cm4gbi5yZXBsYWNlKCJ7e2RhdGV9fSIsYmp0KGEsZSkpLnJlcGxhY2UoInt7dGltZX19Iix4anQocyxlKSl9LCJkYXRlVGltZUxvbmdGb3JtYXR0ZXIiKSxKdT17cDp4anQsUDpjYmF9fSk7ZnVuY3Rpb24gQmNlKHQpe3JldHVybiBkYmEudGVzdCh0KX1mdW5jdGlvbiBIY2UodCl7cmV0dXJuIHViYS50ZXN0KHQpfWZ1bmN0aW9uIHFDKHQsZSxyKXtsZXQgYT1mYmEodCxlLHIpO2lmKGNvbnNvbGUud2FybihhKSxwYmEuaW5jbHVkZXModCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYSl9ZnVuY3Rpb24gZmJhKHQsZSxyKXtsZXQgYT10WzBdPT09IlkiPyJ5ZWFycyI6ImRheXMgb2YgdGhlIG1vbnRoIjtyZXR1cm5gVXNlIFxgJHt0LnRvTG93ZXJDYXNlKCl9XGAgaW5zdGVhZCBvZiBcYCR7dH1cYCAoaW4gXGAke2V9XGApIGZvciBmb3JtYXR0aW5nICR7YX0gdG8gdGhlIGlucHV0IFxgJHtyfVxgOyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRgfXZhciBkYmEsdWJhLHBiYSxTemU9dSgoKT0+e2RiYT0vXkQrJC8sdWJhPS9eWSskLyxwYmE9WyJEIiwiREQiLCJZWSIsIllZWVkiXTtpKEJjZSwiaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbiIpO2koSGNlLCJpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4iKTtpKHFDLCJ3YXJuT3JUaHJvd1Byb3RlY3RlZEVycm9yIik7aShmYmEsIm1lc3NhZ2UiKX0pO2Z1bmN0aW9uIFZDKHQsZSxyKXtsZXQgYT1BYSgpLHM9cj8ubG9jYWxlPz9hLmxvY2FsZT8/ejEsbj1yPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3I/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxvPXI/LndlZWtTdGFydHNPbj8/cj8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2Eud2Vla1N0YXJ0c09uPz9hLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGw9TWUodCxyPy5pbik7aWYoIUxuKGwpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYz1lLm1hdGNoKG1iYSkubWFwKGY9PntsZXQgcD1mWzBdO2lmKHA9PT0icCJ8fHA9PT0iUCIpe2xldCBoPUp1W3BdO3JldHVybiBoKGYscy5mb3JtYXRMb25nKX1yZXR1cm4gZn0pLmpvaW4oIiIpLm1hdGNoKGhiYSkubWFwKGY9PntpZihmPT09IicnIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZToiJyJ9O2xldCBwPWZbMF07aWYocD09PSInIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTp2YmEoZil9O2lmKEhDW3BdKXJldHVybntpc1Rva2VuOiEwLHZhbHVlOmZ9O2lmKHAubWF0Y2goeGJhKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGAiK3ArImAiKTtyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTpmfX0pO3MubG9jYWxpemUucHJlcHJvY2Vzc29yJiYoYz1zLmxvY2FsaXplLnByZXByb2Nlc3NvcihsLGMpKTtsZXQgZD17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOm4sd2Vla1N0YXJ0c09uOm8sbG9jYWxlOnN9O3JldHVybiBjLm1hcChmPT57aWYoIWYuaXNUb2tlbilyZXR1cm4gZi52YWx1ZTtsZXQgcD1mLnZhbHVlOyghcj8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiZIY2UocCl8fCFyPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZCY2UocCkpJiZxQyhwLGUsU3RyaW5nKHQpKTtsZXQgaD1IQ1twWzBdXTtyZXR1cm4gaChsLHAscy5sb2NhbGl6ZSxkKX0pLmpvaW4oIiIpfWZ1bmN0aW9uIHZiYSh0KXtsZXQgZT10Lm1hdGNoKGdiYSk7cmV0dXJuIGU/ZVsxXS5yZXBsYWNlKGJiYSwiJyIpOnR9dmFyIGhiYSxtYmEsZ2JhLGJiYSx4YmEsaEVzLE16ZT11KCgpPT57YzYoKTtjbygpO2dqdCgpO2t6ZSgpO1N6ZSgpO3k0KCk7WmUoKTtoYmE9L1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxtYmE9L1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csZ2JhPS9eJyhbXl0qPyknPyQvLGJiYT0vJycvZyx4YmE9L1thLXpBLVpdLztpKFZDLCJmb3JtYXQiKTtpKHZiYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7aEVzPVZDfSk7ZnVuY3Rpb24gcWNlKHQsZSxyKXtsZXQgYT1BYSgpLHM9cj8ubG9jYWxlPz9hLmxvY2FsZT8/ejEsbj0yNTIwLG89dW8odCxlKTtpZihpc05hTihvKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGw9T2JqZWN0LmFzc2lnbih7fSxyLHthZGRTdWZmaXg6cj8uYWRkU3VmZml4LGNvbXBhcmlzb246b30pLFtjLGRdPUh0KHI/LmluLC4uLm8+MD9bZSx0XTpbdCxlXSksZj1SMChkLGMpLHA9KFJpKGQpLVJpKGMpKS8xZTMsaD1NYXRoLnJvdW5kKChmLXApLzYwKSxtO2lmKGg8MilyZXR1cm4gcj8uaW5jbHVkZVNlY29uZHM/Zjw1P3MuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDUsbCk6ZjwxMD9zLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwxMCxsKTpmPDIwP3MuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDIwLGwpOmY8NDA/cy5mb3JtYXREaXN0YW5jZSgiaGFsZkFNaW51dGUiLDAsbCk6Zjw2MD9zLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLGwpOnMuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIiwxLGwpOmg9PT0wP3MuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWE1pbnV0ZXMiLDEsbCk6cy5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgsbCk7aWYoaDw0NSlyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgsbCk7aWYoaDw5MClyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLDEsbCk7aWYoaDxpdil7bGV0IHY9TWF0aC5yb3VuZChoLzYwKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLHYsbCl9ZWxzZXtpZihoPG4pcmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhEYXlzIiwxLGwpO2lmKGg8anUpe2xldCB2PU1hdGgucm91bmQoaC9pdik7cmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhEYXlzIix2LGwpfWVsc2UgaWYoaDxqdSoyKXJldHVybiBtPU1hdGgucm91bmQoaC9qdSkscy5mb3JtYXREaXN0YW5jZSgiYWJvdXRYTW9udGhzIixtLGwpfWlmKG09WnUoZCxjKSxtPDEyKXtsZXQgdj1NYXRoLnJvdW5kKGgvanUpO3JldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIix2LGwpfWVsc2V7bGV0IHY9bSUxMixiPU1hdGgudHJ1bmMobS8xMik7cmV0dXJuIHY8Mz9zLmZvcm1hdERpc3RhbmNlKCJhYm91dFhZZWFycyIsYixsKTp2PDk/cy5mb3JtYXREaXN0YW5jZSgib3ZlclhZZWFycyIsYixsKTpzLmZvcm1hdERpc3RhbmNlKCJhbG1vc3RYWWVhcnMiLGIrMSxsKX19dmFyIENFcyxDemU9dSgoKT0+e2M2KCk7Y28oKTt4NCgpO0hhKCk7aTYoKTtTcigpO09DKCk7UkMoKTtpKHFjZSwiZm9ybWF0RGlzdGFuY2UiKTtDRXM9cWNlfSk7ZnVuY3Rpb24gVmNlKHQsZSxyKXtsZXQgYT1BYSgpLHM9cj8ubG9jYWxlPz9hLmxvY2FsZT8/ejEsbj11byh0LGUpO2lmKGlzTmFOKG4pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgbz1PYmplY3QuYXNzaWduKHt9LHIse2FkZFN1ZmZpeDpyPy5hZGRTdWZmaXgsY29tcGFyaXNvbjpufSksW2wsY109SHQocj8uaW4sLi4ubj4wP1tlLHRdOlt0LGVdKSxkPXBvKHI/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiKSxmPWMuZ2V0VGltZSgpLWwuZ2V0VGltZSgpLHA9Zi9sbyxoPVJpKGMpLVJpKGwpLG09KGYtaCkvbG8sdj1yPy51bml0LGI7aWYodj9iPXY6cDwxP2I9InNlY29uZCI6cDw2MD9iPSJtaW51dGUiOnA8aXY/Yj0iaG91ciI6bTxqdT9iPSJkYXkiOm08WUNlP2I9Im1vbnRoIjpiPSJ5ZWFyIixiPT09InNlY29uZCIpe2xldCBnPWQoZi8xZTMpO3JldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4U2Vjb25kcyIsZyxvKX1lbHNlIGlmKGI9PT0ibWludXRlIil7bGV0IGc9ZChwKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGcsbyl9ZWxzZSBpZihiPT09ImhvdXIiKXtsZXQgZz1kKHAvNjApO3JldHVybiBzLmZvcm1hdERpc3RhbmNlKCJ4SG91cnMiLGcsbyl9ZWxzZSBpZihiPT09ImRheSIpe2xldCBnPWQobS9pdik7cmV0dXJuIHMuZm9ybWF0RGlzdGFuY2UoInhEYXlzIixnLG8pfWVsc2UgaWYoYj09PSJtb250aCIpe2xldCBnPWQobS9qdSk7cmV0dXJuIGc9PT0xMiYmdiE9PSJtb250aCI/cy5mb3JtYXREaXN0YW5jZSgieFllYXJzIiwxLG8pOnMuZm9ybWF0RGlzdGFuY2UoInhNb250aHMiLGcsbyl9ZWxzZXtsZXQgZz1kKG0vWUNlKTtyZXR1cm4gcy5mb3JtYXREaXN0YW5jZSgieFllYXJzIixnLG8pfX12YXIgUEVzLHp6ZT11KCgpPT57YzYoKTtjbygpO3c0KCk7eDQoKTtIYSgpO2k2KCk7U3IoKTtpKFZjZSwiZm9ybWF0RGlzdGFuY2VTdHJpY3QiKTtQRXM9VmNlfSk7ZnVuY3Rpb24gdmp0KHQsZSl7cmV0dXJuIHFjZSh0LEZyKHQpLGUpfXZhciBCRXMseWp0PXUoKCk9PntLcygpO0N6ZSgpO2kodmp0LCJmb3JtYXREaXN0YW5jZVRvTm93Iik7QkVzPXZqdH0pO2Z1bmN0aW9uIHdqdCh0LGUpe3JldHVybiBWY2UodCxGcih0KSxlKX12YXIgVUVzLGtqdD11KCgpPT57S3MoKTt6emUoKTtpKHdqdCwiZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdCIpO1VFcz13anR9KTtmdW5jdGlvbiBTanQodCxlKXtsZXQgcj1BYSgpLGE9ZT8ubG9jYWxlPz9yLmxvY2FsZT8/ejEscz1lPy5mb3JtYXQ/P3liYSxuPWU/Lnplcm8/PyExLG89ZT8uZGVsaW1pdGVyPz8iICI7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2U/cy5yZWR1Y2UoKGMsZCk9PntsZXQgZj1geCR7ZC5yZXBsYWNlKC8oXi4pLyxoPT5oLnRvVXBwZXJDYXNlKCkpfWAscD10W2RdO3JldHVybiBwIT09dm9pZCAwJiYobnx8dFtkXSk/Yy5jb25jYXQoYS5mb3JtYXREaXN0YW5jZShmLHApKTpjfSxbXSkuam9pbihvKToiIn12YXIgeWJhLFpFcyxNanQ9dSgoKT0+e2M2KCk7Y28oKTt5YmE9WyJ5ZWFycyIsIm1vbnRocyIsIndlZWtzIiwiZGF5cyIsImhvdXJzIiwibWludXRlcyIsInNlY29uZHMiXTtpKFNqdCwiZm9ybWF0RHVyYXRpb24iKTtaRXM9U2p0fSk7ZnVuY3Rpb24gQ2p0KHQsZSl7bGV0IHI9TWUodCxlPy5pbik7aWYoaXNOYU4oK3IpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYT1lPy5mb3JtYXQ/PyJleHRlbmRlZCIscz1lPy5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89IiIsbD1hPT09ImV4dGVuZGVkIj8iLSI6IiIsYz1hPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYocyE9PSJ0aW1lIil7bGV0IGQ9X3Qoci5nZXREYXRlKCksMiksZj1fdChyLmdldE1vbnRoKCkrMSwyKTtuPWAke190KHIuZ2V0RnVsbFllYXIoKSw0KX0ke2x9JHtmfSR7bH0ke2R9YH1pZihzIT09ImRhdGUiKXtsZXQgZD1yLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoZCE9PTApe2xldCBiPU1hdGguYWJzKGQpLGc9X3QoTWF0aC50cnVuYyhiLzYwKSwyKSx5PV90KGIlNjAsMik7bz1gJHtkPDA/IisiOiItIn0ke2d9OiR7eX1gfWVsc2Ugbz0iWiI7bGV0IGY9X3Qoci5nZXRIb3VycygpLDIpLHA9X3Qoci5nZXRNaW51dGVzKCksMiksaD1fdChyLmdldFNlY29uZHMoKSwyKSxtPW49PT0iIj8iIjoiVCIsdj1bZixwLGhdLmpvaW4oYyk7bj1gJHtufSR7bX0ke3Z9JHtvfWB9cmV0dXJuIG59dmFyIHRJcyx6anQ9dSgoKT0+e3U2KCk7WmUoKTtpKENqdCwiZm9ybWF0SVNPIik7dElzPUNqdH0pO2Z1bmN0aW9uIF9qdCh0LGUpe2xldCByPU1lKHQsZT8uaW4pO2lmKCFMbihyKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGE9ZT8uZm9ybWF0Pz8iZXh0ZW5kZWQiLHM9ZT8ucmVwcmVzZW50YXRpb24/PyJjb21wbGV0ZSIsbj0iIixvPWE9PT0iZXh0ZW5kZWQiPyItIjoiIixsPWE9PT0iZXh0ZW5kZWQiPyI6IjoiIjtpZihzIT09InRpbWUiKXtsZXQgYz1fdChyLmdldERhdGUoKSwyKSxkPV90KHIuZ2V0TW9udGgoKSsxLDIpO249YCR7X3Qoci5nZXRGdWxsWWVhcigpLDQpfSR7b30ke2R9JHtvfSR7Y31gfWlmKHMhPT0iZGF0ZSIpe2xldCBjPV90KHIuZ2V0SG91cnMoKSwyKSxkPV90KHIuZ2V0TWludXRlcygpLDIpLGY9X3Qoci5nZXRTZWNvbmRzKCksMik7bj1gJHtufSR7bj09PSIiPyIiOiIgIn0ke2N9JHtsfSR7ZH0ke2x9JHtmfWB9cmV0dXJuIG59dmFyIG9JcyxUanQ9dSgoKT0+e3U2KCk7eTQoKTtaZSgpO2koX2p0LCJmb3JtYXRJU085MDc1Iik7b0lzPV9qdH0pO2Z1bmN0aW9uIExqdCh0KXtsZXR7eWVhcnM6ZT0wLG1vbnRoczpyPTAsZGF5czphPTAsaG91cnM6cz0wLG1pbnV0ZXM6bj0wLHNlY29uZHM6bz0wfT10O3JldHVybmBQJHtlfVkke3J9TSR7YX1EVCR7c31IJHtufU0ke299U2B9dmFyIGRJcyxEanQ9dSgoKT0+e2koTGp0LCJmb3JtYXRJU09EdXJhdGlvbiIpO2RJcz1ManR9KTtmdW5jdGlvbiAkanQodCxlKXtsZXQgcj1NZSh0LGU/LmluKTtpZighTG4ocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBhPWU/LmZyYWN0aW9uRGlnaXRzPz8wLHM9X3Qoci5nZXREYXRlKCksMiksbj1fdChyLmdldE1vbnRoKCkrMSwyKSxvPXIuZ2V0RnVsbFllYXIoKSxsPV90KHIuZ2V0SG91cnMoKSwyKSxjPV90KHIuZ2V0TWludXRlcygpLDIpLGQ9X3Qoci5nZXRTZWNvbmRzKCksMiksZj0iIjtpZihhPjApe2xldCBtPXIuZ2V0TWlsbGlzZWNvbmRzKCksdj1NYXRoLnRydW5jKG0qTWF0aC5wb3coMTAsYS0zKSk7Zj0iLiIrX3QodixhKX1sZXQgcD0iIixoPXIuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihoIT09MCl7bGV0IG09TWF0aC5hYnMoaCksdj1fdChNYXRoLnRydW5jKG0vNjApLDIpLGI9X3QobSU2MCwyKTtwPWAke2g8MD8iKyI6Ii0ifSR7dn06JHtifWB9ZWxzZSBwPSJaIjtyZXR1cm5gJHtvfS0ke259LSR7c31UJHtsfToke2N9OiR7ZH0ke2Z9JHtwfWB9dmFyIGdJcyxBanQ9dSgoKT0+e3U2KCk7eTQoKTtaZSgpO2koJGp0LCJmb3JtYXRSRkMzMzM5Iik7Z0lzPSRqdH0pO2Z1bmN0aW9uIEVqdCh0KXtsZXQgZT1NZSh0KTtpZighTG4oZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCByPXdiYVtlLmdldFVUQ0RheSgpXSxhPV90KGUuZ2V0VVRDRGF0ZSgpLDIpLHM9a2JhW2UuZ2V0VVRDTW9udGgoKV0sbj1lLmdldFVUQ0Z1bGxZZWFyKCksbz1fdChlLmdldFVUQ0hvdXJzKCksMiksbD1fdChlLmdldFVUQ01pbnV0ZXMoKSwyKSxjPV90KGUuZ2V0VVRDU2Vjb25kcygpLDIpO3JldHVybmAke3J9LCAke2F9ICR7c30gJHtufSAke299OiR7bH06JHtjfSBHTVRgfXZhciB3YmEsa2JhLGtJcyxJanQ9dSgoKT0+e3U2KCk7eTQoKTtaZSgpO3diYT1bIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLGtiYT1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdO2koRWp0LCJmb3JtYXRSRkM3MjMxIik7a0lzPUVqdH0pO2Z1bmN0aW9uIFBqdCh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKSxuPUFhKCksbz1yPy5sb2NhbGU/P24ubG9jYWxlPz96MSxsPXI/LndlZWtTdGFydHNPbj8/cj8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P24ud2Vla1N0YXJ0c09uPz9uLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGM9bW4oYSxzKTtpZihpc05hTihjKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGQ7YzwtNj9kPSJvdGhlciI6YzwtMT9kPSJsYXN0V2VlayI6YzwwP2Q9Inllc3RlcmRheSI6YzwxP2Q9InRvZGF5IjpjPDI/ZD0idG9tb3Jyb3ciOmM8Nz9kPSJuZXh0V2VlayI6ZD0ib3RoZXIiO2xldCBmPW8uZm9ybWF0UmVsYXRpdmUoZCxhLHMse2xvY2FsZTpvLHdlZWtTdGFydHNPbjpsfSk7cmV0dXJuIFZDKGEsZix7bG9jYWxlOm8sd2Vla1N0YXJ0c09uOmx9KX12YXIgRElzLE5qdD11KCgpPT57YzYoKTtjbygpO0hhKCk7djQoKTtNemUoKTtpKFBqdCwiZm9ybWF0UmVsYXRpdmUiKTtESXM9UGp0fSk7ZnVuY3Rpb24gT2p0KHQsZSl7cmV0dXJuIE1lKHQqMWUzLGU/LmluKX12YXIgSUlzLFJqdD11KCgpPT57WmUoKTtpKE9qdCwiZnJvbVVuaXhUaW1lIik7SUlzPU9qdH0pO2Z1bmN0aW9uIGpjZSh0LGUpe3JldHVybiBNZSh0LGU/LmluKS5nZXREYXRlKCl9dmFyIFJJcyxfemU9dSgoKT0+e1plKCk7aShqY2UsImdldERhdGUiKTtSSXM9amNlfSk7ZnVuY3Rpb24gZXAodCxlKXtyZXR1cm4gTWUodCxlPy5pbikuZ2V0RGF5KCl9dmFyIHFJcyxqQz11KCgpPT57WmUoKTtpKGVwLCJnZXREYXkiKTtxSXM9ZXB9KTtmdW5jdGlvbiBVY2UodCxlKXtsZXQgcj1NZSh0LGU/LmluKSxhPXIuZ2V0RnVsbFllYXIoKSxzPXIuZ2V0TW9udGgoKSxuPVdlKHIsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoYSxzKzEsMCksbi5zZXRIb3VycygwLDAsMCwwKSxuLmdldERhdGUoKX12YXIgR0lzLFR6ZT11KCgpPT57VXQoKTtaZSgpO2koVWNlLCJnZXREYXlzSW5Nb250aCIpO0dJcz1VY2V9KTtmdW5jdGlvbiBXY2UodCxlKXtsZXQgYT1NZSh0LGU/LmluKS5nZXRGdWxsWWVhcigpO3JldHVybiBhJTQwMD09PTB8fGElND09PTAmJmElMTAwIT09MH12YXIgUUlzLEx6ZT11KCgpPT57WmUoKTtpKFdjZSwiaXNMZWFwWWVhciIpO1FJcz1XY2V9KTtmdW5jdGlvbiBGanQodCxlKXtsZXQgcj1NZSh0LGU/LmluKTtyZXR1cm4gTnVtYmVyLmlzTmFOKCtyKT9OYU46V2NlKHIpPzM2NjozNjV9dmFyIHJQcyxCanQ9dSgoKT0+e0x6ZSgpO1plKCk7aShGanQsImdldERheXNJblllYXIiKTtyUHM9Rmp0fSk7ZnVuY3Rpb24gSGp0KHQsZSl7bGV0IGE9TWUodCxlPy5pbikuZ2V0RnVsbFllYXIoKTtyZXR1cm4gTWF0aC5mbG9vcihhLzEwKSoxMH12YXIgblBzLHFqdD11KCgpPT57WmUoKTtpKEhqdCwiZ2V0RGVjYWRlIik7blBzPUhqdH0pO2Z1bmN0aW9uIEdjZSgpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LEFhKCkpfXZhciBkUHMsRHplPXUoKCk9PntjbygpO2koR2NlLCJnZXREZWZhdWx0T3B0aW9ucyIpO2RQcz1HY2V9KTtmdW5jdGlvbiBWanQodCxlKXtyZXR1cm4gTWUodCxlPy5pbikuZ2V0SG91cnMoKX12YXIgaFBzLGpqdD11KCgpPT57WmUoKTtpKFZqdCwiZ2V0SG91cnMiKTtoUHM9Vmp0fSk7ZnVuY3Rpb24gWWNlKHQsZSl7bGV0IHI9TWUodCxlPy5pbikuZ2V0RGF5KCk7cmV0dXJuIHI9PT0wPzc6cn12YXIgeFBzLCR6ZT11KCgpPT57WmUoKTtpKFljZSwiZ2V0SVNPRGF5Iik7eFBzPVljZX0pO2Z1bmN0aW9uIFVqdCh0LGUpe2xldCByPVgxKHQsZSkscz0rWDEoWXUociw2MCkpLStyO3JldHVybiBNYXRoLnJvdW5kKHMvJDApfXZhciBNUHMsV2p0PXUoKCk9PntQQygpO1NyKCk7b3YoKTtpKFVqdCwiZ2V0SVNPV2Vla3NJblllYXIiKTtNUHM9VWp0fSk7ZnVuY3Rpb24gR2p0KHQpe3JldHVybiBNZSh0KS5nZXRNaWxsaXNlY29uZHMoKX12YXIgVFBzLFlqdD11KCgpPT57WmUoKTtpKEdqdCwiZ2V0TWlsbGlzZWNvbmRzIik7VFBzPUdqdH0pO2Z1bmN0aW9uIEtqdCh0LGUpe3JldHVybiBNZSh0LGU/LmluKS5nZXRNaW51dGVzKCl9dmFyIEFQcyxaanQ9dSgoKT0+e1plKCk7aShLanQsImdldE1pbnV0ZXMiKTtBUHM9S2p0fSk7ZnVuY3Rpb24gUWp0KHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldE1vbnRoKCl9dmFyIE5QcyxYanQ9dSgoKT0+e1plKCk7aShRanQsImdldE1vbnRoIik7TlBzPVFqdH0pO2Z1bmN0aW9uIEpqdCh0LGUpe2xldFtyLGFdPVsrTWUodC5zdGFydCksK01lKHQuZW5kKV0uc29ydCgocCxoKT0+cC1oKSxbcyxuXT1bK01lKGUuc3RhcnQpLCtNZShlLmVuZCldLnNvcnQoKHAsaCk9PnAtaCk7aWYoIShyPG4mJnM8YSkpcmV0dXJuIDA7bGV0IGw9czxyP3I6cyxjPWwtUmkobCksZD1uPmE/YTpuLGY9ZC1SaShkKTtyZXR1cm4gTWF0aC5jZWlsKChmLWMpL1EyZSl9dmFyIHFQcyxlVXQ9dSgoKT0+e3g0KCk7U3IoKTtaZSgpO2koSmp0LCJnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFscyIpO3FQcz1KanR9KTtmdW5jdGlvbiB0VXQodCl7cmV0dXJuIE1lKHQpLmdldFNlY29uZHMoKX12YXIgV1BzLHJVdD11KCgpPT57WmUoKTtpKHRVdCwiZ2V0U2Vjb25kcyIpO1dQcz10VXR9KTtmdW5jdGlvbiBhVXQodCl7cmV0dXJuK01lKHQpfXZhciBaUHMsaVV0PXUoKCk9PntaZSgpO2koYVV0LCJnZXRUaW1lIik7WlBzPWFVdH0pO2Z1bmN0aW9uIHNVdCh0KXtyZXR1cm4gTWF0aC50cnVuYygrTWUodCkvMWUzKX12YXIgZU5zLG5VdD11KCgpPT57WmUoKTtpKHNVdCwiZ2V0VW5peFRpbWUiKTtlTnM9c1V0fSk7ZnVuY3Rpb24gb1V0KHQsZSl7bGV0IHI9QWEoKSxhPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHM9amNlKE1lKHQsZT8uaW4pKTtpZihpc05hTihzKSlyZXR1cm4gTmFOO2xldCBuPWVwKFF1KHQsZSkpLG89YS1uO288PTAmJihvKz03KTtsZXQgbD1zLW87cmV0dXJuIE1hdGguY2VpbChsLzcpKzF9dmFyIGxOcyxsVXQ9dSgoKT0+e2NvKCk7X3plKCk7akMoKTtGQygpO1plKCk7aShvVXQsImdldFdlZWtPZk1vbnRoIik7bE5zPW9VdH0pO2Z1bmN0aW9uIEtjZSh0LGUpe2xldCByPU1lKHQsZT8uaW4pLGE9ci5nZXRNb250aCgpO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSxhKzEsMCksci5zZXRIb3VycygwLDAsMCwwKSxNZShyLGU/LmluKX12YXIgcE5zLEF6ZT11KCgpPT57WmUoKTtpKEtjZSwibGFzdERheU9mTW9udGgiKTtwTnM9S2NlfSk7ZnVuY3Rpb24gY1V0KHQsZSl7bGV0IHI9TWUodCxlPy5pbik7cmV0dXJuIG42KEtjZShyLGUpLFF1KHIsZSksZSkrMX12YXIgdk5zLGRVdD11KCgpPT57eGNlKCk7QXplKCk7RkMoKTtaZSgpO2koY1V0LCJnZXRXZWVrc0luTW9udGgiKTt2TnM9Y1V0fSk7ZnVuY3Rpb24gdVV0KHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIFNOcyxwVXQ9dSgoKT0+e1plKCk7aSh1VXQsImdldFllYXIiKTtTTnM9dVV0fSk7ZnVuY3Rpb24gZlV0KHQpe3JldHVybiBNYXRoLnRydW5jKHQqUTEpfXZhciBfTnMsaFV0PXUoKCk9PntTcigpO2koZlV0LCJob3Vyc1RvTWlsbGlzZWNvbmRzIik7X05zPWZVdH0pO2Z1bmN0aW9uIG1VdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KlgyZSl9dmFyICROcyxnVXQ9dSgoKT0+e1NyKCk7aShtVXQsImhvdXJzVG9NaW51dGVzIik7JE5zPW1VdH0pO2Z1bmN0aW9uIGJVdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KmE2KX12YXIgUE5zLHhVdD11KCgpPT57U3IoKTtpKGJVdCwiaG91cnNUb1NlY29uZHMiKTtQTnM9YlV0fSk7ZnVuY3Rpb24gdlV0KHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpO2lmKGlzTmFOKCthKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdGFydCBkYXRlIGlzIGludmFsaWQiKTtpZihpc05hTigrcykpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgaXMgaW52YWxpZCIpO2lmKHI/LmFzc2VydFBvc2l0aXZlJiYrYT4rcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJFbmQgZGF0ZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IGRhdGUiKTtyZXR1cm57c3RhcnQ6YSxlbmQ6c319dmFyIEZOcyx5VXQ9dSgoKT0+e0hhKCk7aSh2VXQsImludGVydmFsIik7Rk5zPXZVdH0pO2Z1bmN0aW9uIHdVdCh0LGUpe2xldHtzdGFydDpyLGVuZDphfT1nbihlPy5pbix0KSxzPXt9LG49VGNlKGEscik7biYmKHMueWVhcnM9bik7bGV0IG89VXUocix7eWVhcnM6cy55ZWFyc30pLGw9WnUoYSxvKTtsJiYocy5tb250aHM9bCk7bGV0IGM9VXUobyx7bW9udGhzOnMubW9udGhzfSksZD1wdihhLGMpO2QmJihzLmRheXM9ZCk7bGV0IGY9VXUoYyx7ZGF5czpzLmRheXN9KSxwPW82KGEsZik7cCYmKHMuaG91cnM9cCk7bGV0IGg9VXUoZix7aG91cnM6cy5ob3Vyc30pLG09bDYoYSxoKTttJiYocy5taW51dGVzPW0pO2xldCB2PVV1KGgse21pbnV0ZXM6cy5taW51dGVzfSksYj1SMChhLHYpO3JldHVybiBiJiYocy5zZWNvbmRzPWIpLHN9dmFyIFpOcyxrVXQ9dSgoKT0+e0YwKCk7WENlKCk7eWNlKCk7d2NlKCk7TWNlKCk7T0MoKTtSQygpO2d6ZSgpO2kod1V0LCJpbnRlcnZhbFRvRHVyYXRpb24iKTtaTnM9d1V0fSk7ZnVuY3Rpb24gU1V0KHQsZSxyKXtsZXQgYTtyZXR1cm4gU2JhKGUpP2E9ZTpyPWUsbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQocj8ubG9jYWxlLGEpLmZvcm1hdChNZSh0KSl9ZnVuY3Rpb24gU2JhKHQpe3JldHVybiB0IT09dm9pZCAwJiYhKCJsb2NhbGUiaW4gdCl9dmFyIGVPcyxNVXQ9dSgoKT0+e1plKCk7aShTVXQsImludGxGb3JtYXQiKTtpKFNiYSwiaXNGb3JtYXRPcHRpb25zIik7ZU9zPVNVdH0pO2Z1bmN0aW9uIENVdCh0LGUscil7bGV0IGE9MCxzLFtuLG9dPUh0KHI/LmluLHQsZSk7aWYocj8udW5pdClzPXI/LnVuaXQscz09PSJzZWNvbmQiP2E9UjAobixvKTpzPT09Im1pbnV0ZSI/YT1sNihuLG8pOnM9PT0iaG91ciI/YT1vNihuLG8pOnM9PT0iZGF5Ij9hPW1uKG4sbyk6cz09PSJ3ZWVrIj9hPW42KG4sbyk6cz09PSJtb250aCI/YT1zNihuLG8pOnM9PT0icXVhcnRlciI/YT11dihuLG8pOnM9PT0ieWVhciImJihhPUt1KG4sbykpO2Vsc2V7bGV0IGM9UjAobixvKTtNYXRoLmFicyhjKTxzdj8oYT1SMChuLG8pLHM9InNlY29uZCIpOk1hdGguYWJzKGMpPGE2PyhhPWw2KG4sbykscz0ibWludXRlIik6TWF0aC5hYnMoYyk8SzJlJiZNYXRoLmFicyhtbihuLG8pKTwxPyhhPW82KG4sbykscz0iaG91ciIpOk1hdGguYWJzKGMpPFVxdCYmKGE9bW4obixvKSkmJk1hdGguYWJzKGEpPDc/cz0iZGF5IjpNYXRoLmFicyhjKTxaQ2U/KGE9bjYobixvKSxzPSJ3ZWVrIik6TWF0aC5hYnMoYyk8V3F0PyhhPXM2KG4sbykscz0ibW9udGgiKTpNYXRoLmFicyhjKTxLQ2U/dXYobixvKTw0PyhhPXV2KG4sbykscz0icXVhcnRlciIpOihhPUt1KG4sbykscz0ieWVhciIpOihhPUt1KG4sbykscz0ieWVhciIpfXJldHVybiBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQocj8ubG9jYWxlLHtudW1lcmljOiJhdXRvIiwuLi5yfSkuZm9ybWF0KGEscyl9dmFyIGZPcyx6VXQ9dSgoKT0+e0hhKCk7U3IoKTt2NCgpO2JjZSgpO2Z6ZSgpO3hjZSgpO3ZjZSgpO3djZSgpO01jZSgpO1JDKCk7aShDVXQsImludGxGb3JtYXREaXN0YW5jZSIpO2ZPcz1DVXR9KTtmdW5jdGlvbiBfVXQodCxlKXtyZXR1cm4rTWUodCk+K01lKGUpfXZhciBiT3MsVFV0PXUoKCk9PntaZSgpO2koX1V0LCJpc0FmdGVyIik7Yk9zPV9VdH0pO2Z1bmN0aW9uIExVdCh0LGUpe3JldHVybitNZSh0KTwrTWUoZSl9dmFyIHdPcyxEVXQ9dSgoKT0+e1plKCk7aShMVXQsImlzQmVmb3JlIik7d09zPUxVdH0pO2Z1bmN0aW9uICRVdCh0LGUpe3JldHVybitNZSh0KT09K01lKGUpfXZhciBDT3MsQVV0PXUoKCk9PntaZSgpO2koJFV0LCJpc0VxdWFsIik7Q09zPSRVdH0pO2Z1bmN0aW9uIEVVdCh0LGUscil7bGV0IGE9bmV3IERhdGUodCxlLHIpO3JldHVybiBhLmdldEZ1bGxZZWFyKCk9PT10JiZhLmdldE1vbnRoKCk9PT1lJiZhLmdldERhdGUoKT09PXJ9dmFyIFRPcyxJVXQ9dSgoKT0+e2koRVV0LCJpc0V4aXN0cyIpO1RPcz1FVXR9KTtmdW5jdGlvbiBQVXQodCxlKXtyZXR1cm4gTWUodCxlPy5pbikuZ2V0RGF0ZSgpPT09MX12YXIgQU9zLE5VdD11KCgpPT57WmUoKTtpKFBVdCwiaXNGaXJzdERheU9mTW9udGgiKTtBT3M9UFV0fSk7ZnVuY3Rpb24gT1V0KHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldERheSgpPT09NX12YXIgTk9zLFJVdD11KCgpPT57WmUoKTtpKE9VdCwiaXNGcmlkYXkiKTtOT3M9T1V0fSk7ZnVuY3Rpb24gRlV0KHQpe3JldHVybitNZSh0KT5EYXRlLm5vdygpfXZhciBCT3MsQlV0PXUoKCk9PntaZSgpO2koRlV0LCJpc0Z1dHVyZSIpO0JPcz1GVXR9KTtmdW5jdGlvbiBaY2UodCxlKXtsZXQgcj1NYmEoZSk/bmV3IGUoMCk6V2UoZSwwKTtyZXR1cm4gci5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpLHQuZ2V0RGF0ZSgpKSxyLnNldEhvdXJzKHQuZ2V0SG91cnMoKSx0LmdldE1pbnV0ZXMoKSx0LmdldFNlY29uZHMoKSx0LmdldE1pbGxpc2Vjb25kcygpKSxyfWZ1bmN0aW9uIE1iYSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiImJnQucHJvdG90eXBlPy5jb25zdHJ1Y3Rvcj09PXR9dmFyIGpPcyxFemU9dSgoKT0+e1V0KCk7aShaY2UsInRyYW5zcG9zZSIpO2koTWJhLCJpc0NvbnN0cnVjdG9yIik7ak9zPVpjZX0pO3ZhciBDYmEsUWNlLFhjZSxKY2UsSXplPXUoKCk9PntVdCgpO0V6ZSgpO0NiYT0xMCxRY2U9Y2xhc3N7c3RhdGlje2kodGhpcywiU2V0dGVyIil9c3ViUHJpb3JpdHk9MDt2YWxpZGF0ZShlLHIpe3JldHVybiEwfX0sWGNlPWNsYXNzIGV4dGVuZHMgUWNle3N0YXRpY3tpKHRoaXMsIlZhbHVlU2V0dGVyIil9Y29uc3RydWN0b3IoZSxyLGEscyxuKXtzdXBlcigpLHRoaXMudmFsdWU9ZSx0aGlzLnZhbGlkYXRlVmFsdWU9cix0aGlzLnNldFZhbHVlPWEsdGhpcy5wcmlvcml0eT1zLG4mJih0aGlzLnN1YlByaW9yaXR5PW4pfXZhbGlkYXRlKGUscil7cmV0dXJuIHRoaXMudmFsaWRhdGVWYWx1ZShlLHRoaXMudmFsdWUscil9c2V0KGUscixhKXtyZXR1cm4gdGhpcy5zZXRWYWx1ZShlLHIsdGhpcy52YWx1ZSxhKX19LEpjZT1jbGFzcyBleHRlbmRzIFFjZXtzdGF0aWN7aSh0aGlzLCJEYXRlVGltZXpvbmVTZXR0ZXIiKX1wcmlvcml0eT1DYmE7c3ViUHJpb3JpdHk9LTE7Y29uc3RydWN0b3IoZSxyKXtzdXBlcigpLHRoaXMuY29udGV4dD1lfHwoYT0+V2UocixhKSl9c2V0KGUscil7cmV0dXJuIHIudGltZXN0YW1wSXNTZXQ/ZTpXZShlLFpjZShlLHRoaXMuY29udGV4dCkpfX19KTt2YXIgQ3QsdmE9dSgoKT0+e0l6ZSgpO0N0PWNsYXNze3N0YXRpY3tpKHRoaXMsIlBhcnNlciIpfXJ1bihlLHIsYSxzKXtsZXQgbj10aGlzLnBhcnNlKGUscixhLHMpO3JldHVybiBuP3tzZXR0ZXI6bmV3IFhjZShuLnZhbHVlLHRoaXMudmFsaWRhdGUsdGhpcy5zZXQsdGhpcy5wcmlvcml0eSx0aGlzLnN1YlByaW9yaXR5KSxyZXN0Om4ucmVzdH06bnVsbH12YWxpZGF0ZShlLHIsYSl7cmV0dXJuITB9fX0pO3ZhciBlMGUsSFV0PXUoKCk9Pnt2YSgpO2UwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkVyYVBhcnNlciIpfXByaW9yaXR5PTE0MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiBhLmVyYShlLHt3aWR0aDoiYWJicmV2aWF0ZWQifSl8fGEuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIGEuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gYS5lcmEoZSx7d2lkdGg6IndpZGUifSl8fGEuZXJhKGUse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KXx8YS5lcmEoZSx7d2lkdGg6Im5hcnJvdyJ9KX19c2V0KGUscixhKXtyZXR1cm4gci5lcmE9YSxlLnNldEZ1bGxZZWFyKGEsMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiUiIsInUiLCJ0IiwiVCJdfX0pO3ZhciB1YSxIbCxmbz11KCgpPT57dWE9e21vbnRoOi9eKDFbMC0yXXwwP1xkKS8sZGF0ZTovXigzWzAtMV18WzAtMl0/XGQpLyxkYXlPZlllYXI6L14oMzZbMC02XXwzWzAtNV1cZHxbMC0yXT9cZD9cZCkvLHdlZWs6L14oNVswLTNdfFswLTRdP1xkKS8saG91cjIzaDovXigyWzAtM118WzAtMV0/XGQpLyxob3VyMjRoOi9eKDJbMC00XXxbMC0xXT9cZCkvLGhvdXIxMWg6L14oMVswLTFdfDA/XGQpLyxob3VyMTJoOi9eKDFbMC0yXXwwP1xkKS8sbWludXRlOi9eWzAtNV0/XGQvLHNlY29uZDovXlswLTVdP1xkLyxzaW5nbGVEaWdpdDovXlxkLyx0d29EaWdpdHM6L15cZHsxLDJ9Lyx0aHJlZURpZ2l0czovXlxkezEsM30vLGZvdXJEaWdpdHM6L15cZHsxLDR9LyxhbnlEaWdpdHNTaWduZWQ6L14tP1xkKy8sc2luZ2xlRGlnaXRTaWduZWQ6L14tP1xkLyx0d29EaWdpdHNTaWduZWQ6L14tP1xkezEsMn0vLHRocmVlRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDN9Lyxmb3VyRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDR9L30sSGw9e2Jhc2ljT3B0aW9uYWxNaW51dGVzOi9eKFsrLV0pKFxkezJ9KShcZHsyfSk/fFovLGJhc2ljOi9eKFsrLV0pKFxkezJ9KShcZHsyfSl8Wi8sYmFzaWNPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pKFxkezJ9KSgoXGR7Mn0pKT98Wi8sZXh0ZW5kZWQ6L14oWystXSkoXGR7Mn0pOihcZHsyfSl8Wi8sZXh0ZW5kZWRPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pOihcZHsyfSkoOihcZHsyfSkpP3xaL319KTtmdW5jdGlvbiBxYSh0LGUpe3JldHVybiB0JiZ7dmFsdWU6ZSh0LnZhbHVlKSxyZXN0OnQucmVzdH19ZnVuY3Rpb24gaWEodCxlKXtsZXQgcj1lLm1hdGNoKHQpO3JldHVybiByP3t2YWx1ZTpwYXJzZUludChyWzBdLDEwKSxyZXN0OmUuc2xpY2UoclswXS5sZW5ndGgpfTpudWxsfWZ1bmN0aW9uIHFsKHQsZSl7bGV0IHI9ZS5tYXRjaCh0KTtpZighcilyZXR1cm4gbnVsbDtpZihyWzBdPT09IloiKXJldHVybnt2YWx1ZTowLHJlc3Q6ZS5zbGljZSgxKX07bGV0IGE9clsxXT09PSIrIj8xOi0xLHM9clsyXT9wYXJzZUludChyWzJdLDEwKTowLG49clszXT9wYXJzZUludChyWzNdLDEwKTowLG89cls1XT9wYXJzZUludChyWzVdLDEwKTowO3JldHVybnt2YWx1ZTphKihzKlExK24qbG8rbyphdikscmVzdDplLnNsaWNlKHJbMF0ubGVuZ3RoKX19ZnVuY3Rpb24gdDBlKHQpe3JldHVybiBpYSh1YS5hbnlEaWdpdHNTaWduZWQsdCl9ZnVuY3Rpb24geHIodCxlKXtzd2l0Y2godCl7Y2FzZSAxOnJldHVybiBpYSh1YS5zaW5nbGVEaWdpdCxlKTtjYXNlIDI6cmV0dXJuIGlhKHVhLnR3b0RpZ2l0cyxlKTtjYXNlIDM6cmV0dXJuIGlhKHVhLnRocmVlRGlnaXRzLGUpO2Nhc2UgNDpyZXR1cm4gaWEodWEuZm91ckRpZ2l0cyxlKTtkZWZhdWx0OnJldHVybiBpYShuZXcgUmVnRXhwKCJeXFxkezEsIit0KyJ9IiksZSl9fWZ1bmN0aW9uIFN2KHQsZSl7c3dpdGNoKHQpe2Nhc2UgMTpyZXR1cm4gaWEodWEuc2luZ2xlRGlnaXRTaWduZWQsZSk7Y2FzZSAyOnJldHVybiBpYSh1YS50d29EaWdpdHNTaWduZWQsZSk7Y2FzZSAzOnJldHVybiBpYSh1YS50aHJlZURpZ2l0c1NpZ25lZCxlKTtjYXNlIDQ6cmV0dXJuIGlhKHVhLmZvdXJEaWdpdHNTaWduZWQsZSk7ZGVmYXVsdDpyZXR1cm4gaWEobmV3IFJlZ0V4cCgiXi0/XFxkezEsIit0KyJ9IiksZSl9fWZ1bmN0aW9uIE12KHQpe3N3aXRjaCh0KXtjYXNlIm1vcm5pbmciOnJldHVybiA0O2Nhc2UiZXZlbmluZyI6cmV0dXJuIDE3O2Nhc2UicG0iOmNhc2Uibm9vbiI6Y2FzZSJhZnRlcm5vb24iOnJldHVybiAxMjtkZWZhdWx0OnJldHVybiAwfX1mdW5jdGlvbiByMGUodCxlKXtsZXQgcj1lPjAsYT1yP2U6MS1lLHM7aWYoYTw9NTApcz10fHwxMDA7ZWxzZXtsZXQgbj1hKzUwLG89TWF0aC50cnVuYyhuLzEwMCkqMTAwLGw9dD49biUxMDA7cz10K28tKGw/MTAwOjApfXJldHVybiByP3M6MS1zfWZ1bmN0aW9uIGEwZSh0KXtyZXR1cm4gdCU0MDA9PT0wfHx0JTQ9PT0wJiZ0JTEwMCE9PTB9dmFyIEVhPXUoKCk9PntTcigpO2ZvKCk7aShxYSwibWFwVmFsdWUiKTtpKGlhLCJwYXJzZU51bWVyaWNQYXR0ZXJuIik7aShxbCwicGFyc2VUaW1lem9uZVBhdHRlcm4iKTtpKHQwZSwicGFyc2VBbnlEaWdpdHNTaWduZWQiKTtpKHhyLCJwYXJzZU5EaWdpdHMiKTtpKFN2LCJwYXJzZU5EaWdpdHNTaWduZWQiKTtpKE12LCJkYXlQZXJpb2RFbnVtVG9Ib3VycyIpO2kocjBlLCJub3JtYWxpemVUd29EaWdpdFllYXIiKTtpKGEwZSwiaXNMZWFwWWVhckluZGV4Iil9KTt2YXIgaTBlLHFVdD11KCgpPT57dmEoKTtFYSgpO2kwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIlllYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJ1IiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdO3BhcnNlKGUscixhKXtsZXQgcz1pKG49Pih7eWVhcjpuLGlzVHdvRGlnaXRZZWFyOnI9PT0ieXkifSksInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2gocil7Y2FzZSJ5IjpyZXR1cm4gcWEoeHIoNCxlKSxzKTtjYXNlInlvIjpyZXR1cm4gcWEoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InllYXIifSkscyk7ZGVmYXVsdDpyZXR1cm4gcWEoeHIoci5sZW5ndGgsZSkscyl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHIuaXNUd29EaWdpdFllYXJ8fHIueWVhcj4wfXNldChlLHIsYSl7bGV0IHM9ZS5nZXRGdWxsWWVhcigpO2lmKGEuaXNUd29EaWdpdFllYXIpe2xldCBvPXIwZShhLnllYXIscyk7cmV0dXJuIGUuc2V0RnVsbFllYXIobywwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1sZXQgbj0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9hLnllYXI6MS1hLnllYXI7cmV0dXJuIGUuc2V0RnVsbFllYXIobiwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyIHMwZSxWVXQ9dSgoKT0+e0JDKCk7RzIoKTt2YSgpO0VhKCk7czBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiTG9jYWxXZWVrWWVhclBhcnNlciIpfXByaW9yaXR5PTEzMDtwYXJzZShlLHIsYSl7bGV0IHM9aShuPT4oe3llYXI6bixpc1R3b0RpZ2l0WWVhcjpyPT09IllZIn0pLCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHIpe2Nhc2UiWSI6cmV0dXJuIHFhKHhyKDQsZSkscyk7Y2FzZSJZbyI6cmV0dXJuIHFhKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ5ZWFyIn0pLHMpO2RlZmF1bHQ6cmV0dXJuIHFhKHhyKHIubGVuZ3RoLGUpLHMpfX12YWxpZGF0ZShlLHIpe3JldHVybiByLmlzVHdvRGlnaXRZZWFyfHxyLnllYXI+MH1zZXQoZSxyLGEscyl7bGV0IG49WHUoZSxzKTtpZihhLmlzVHdvRGlnaXRZZWFyKXtsZXQgbD1yMGUoYS55ZWFyLG4pO3JldHVybiBlLnNldEZ1bGxZZWFyKGwsMCxzLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSksZS5zZXRIb3VycygwLDAsMCwwKSxLYShlLHMpfWxldCBvPSEoImVyYSJpbiByKXx8ci5lcmE9PT0xP2EueWVhcjoxLWEueWVhcjtyZXR1cm4gZS5zZXRGdWxsWWVhcihvLDAscy5maXJzdFdlZWtDb250YWluc0RhdGUpLGUuc2V0SG91cnMoMCwwLDAsMCksS2EoZSxzKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJRIiwicSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiaSIsInQiLCJUIl19fSk7dmFyIG4wZSxqVXQ9dSgoKT0+e1AwKCk7VXQoKTt2YSgpO0VhKCk7bjBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiSVNPV2Vla1llYXJQYXJzZXIiKX1wcmlvcml0eT0xMzA7cGFyc2UoZSxyKXtyZXR1cm4gcj09PSJSIj9Tdig0LGUpOlN2KHIubGVuZ3RoLGUpfXNldChlLHIsYSl7bGV0IHM9V2UoZSwwKTtyZXR1cm4gcy5zZXRGdWxsWWVhcihhLDAsNCkscy5zZXRIb3VycygwLDAsMCwwKSxTcyhzKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJ1IiwiUSIsInEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgbzBlLFVVdD11KCgpPT57dmEoKTtFYSgpO28wZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkV4dGVuZGVkWWVhclBhcnNlciIpfXByaW9yaXR5PTEzMDtwYXJzZShlLHIpe3JldHVybiByPT09InUiP1N2KDQsZSk6U3Yoci5sZW5ndGgsZSl9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRGdWxsWWVhcihhLDAsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkciLCJ5IiwiWSIsIlIiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIGwwZSxXVXQ9dSgoKT0+e3ZhKCk7RWEoKTtsMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJRdWFydGVyUGFyc2VyIil9cHJpb3JpdHk9MTIwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJRIjpjYXNlIlFRIjpyZXR1cm4geHIoci5sZW5ndGgsZSk7Y2FzZSJRbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJRUVFRUSI6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEucXVhcnRlcihlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTEmJnI8PTR9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRNb250aCgoYS0xKSozLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJNIiwiTCIsInciLCJJIiwiZCIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBjMGUsR1V0PXUoKCk9Pnt2YSgpO0VhKCk7YzBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiU3RhbmRBbG9uZVF1YXJ0ZXJQYXJzZXIiKX1wcmlvcml0eT0xMjA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlInEiOmNhc2UicXEiOnJldHVybiB4cihyLmxlbmd0aCxlKTtjYXNlInFvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiBhLnF1YXJ0ZXIoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlInFxcXFxIjpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gYS5xdWFydGVyKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MSYmcjw9NH1zZXQoZSxyLGEpe3JldHVybiBlLnNldE1vbnRoKChhLTEpKjMsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIGQwZSxZVXQ9dSgoKT0+e2ZvKCk7dmEoKTtFYSgpO2QwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIk1vbnRoUGFyc2VyIil9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIkwiLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdO3ByaW9yaXR5PTExMDtwYXJzZShlLHIsYSl7bGV0IHM9aShuPT5uLTEsInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2gocil7Y2FzZSJNIjpyZXR1cm4gcWEoaWEodWEubW9udGgsZSkscyk7Y2FzZSJNTSI6cmV0dXJuIHFhKHhyKDIsZSkscyk7Y2FzZSJNbyI6cmV0dXJuIHFhKGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJtb250aCJ9KSxzKTtjYXNlIk1NTSI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJNTU1NTSI6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLm1vbnRoKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD0xMX1zZXQoZSxyLGEpe3JldHVybiBlLnNldE1vbnRoKGEsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfX19KTt2YXIgdTBlLEtVdD11KCgpPT57Zm8oKTt2YSgpO0VhKCk7dTBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiU3RhbmRBbG9uZU1vbnRoUGFyc2VyIil9cHJpb3JpdHk9MTEwO3BhcnNlKGUscixhKXtsZXQgcz1pKG49Pm4tMSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaChyKXtjYXNlIkwiOnJldHVybiBxYShpYSh1YS5tb250aCxlKSxzKTtjYXNlIkxMIjpyZXR1cm4gcWEoeHIoMixlKSxzKTtjYXNlIkxvIjpyZXR1cm4gcWEoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6Im1vbnRoIn0pLHMpO2Nhc2UiTExMIjpyZXR1cm4gYS5tb250aChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlIkxMTExMIjpyZXR1cm4gYS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEubW9udGgoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTAmJnI8PTExfXNldChlLHIsYSl7cmV0dXJuIGUuc2V0TW9udGgoYSwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIk0iLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIHAwZSh0LGUscil7bGV0IGE9TWUodCxyPy5pbikscz13dihhLHIpLWU7cmV0dXJuIGEuc2V0RGF0ZShhLmdldERhdGUoKS1zKjcpLE1lKGEscj8uaW4pfXZhciBZUnMsUHplPXUoKCk9PntGY2UoKTtaZSgpO2kocDBlLCJzZXRXZWVrIik7WVJzPXAwZX0pO3ZhciBmMGUsWlV0PXUoKCk9PntQemUoKTtHMigpO2ZvKCk7dmEoKTtFYSgpO2YwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkxvY2FsV2Vla1BhcnNlciIpfXByaW9yaXR5PTEwMDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UidyI6cmV0dXJuIGlhKHVhLndlZWssZSk7Y2FzZSJ3byI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ3ZWVrIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0xJiZyPD01M31zZXQoZSxyLGEscyl7cmV0dXJuIEthKHAwZShlLGEscykscyl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIGgwZSh0LGUscil7bGV0IGE9TWUodCxyPy5pbikscz15dihhLHIpLWU7cmV0dXJuIGEuc2V0RGF0ZShhLmdldERhdGUoKS1zKjcpLGF9dmFyIG5GcyxOemU9dSgoKT0+e09jZSgpO1plKCk7aShoMGUsInNldElTT1dlZWsiKTtuRnM9aDBlfSk7dmFyIG0wZSxRVXQ9dSgoKT0+e056ZSgpO1AwKCk7Zm8oKTt2YSgpO0VhKCk7bTBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiSVNPV2Vla1BhcnNlciIpfXByaW9yaXR5PTEwMDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiSSI6cmV0dXJuIGlhKHVhLndlZWssZSk7Y2FzZSJJbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJ3ZWVrIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0xJiZyPD01M31zZXQoZSxyLGEpe3JldHVybiBTcyhoMGUoZSxhKSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgemJhLF9iYSxnMGUsWFV0PXUoKCk9PntmbygpO3ZhKCk7RWEoKTt6YmE9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxfYmE9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxnMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJEYXRlUGFyc2VyIil9cHJpb3JpdHk9OTA7c3ViUHJpb3JpdHk9MTtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiZCI6cmV0dXJuIGlhKHVhLmRhdGUsZSk7Y2FzZSJkbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe2xldCBhPWUuZ2V0RnVsbFllYXIoKSxzPWEwZShhKSxuPWUuZ2V0TW9udGgoKTtyZXR1cm4gcz9yPj0xJiZyPD1fYmFbbl06cj49MSYmcjw9emJhW25dfXNldChlLHIsYSl7cmV0dXJuIGUuc2V0RGF0ZShhKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIGIwZSxKVXQ9dSgoKT0+e2ZvKCk7dmEoKTtFYSgpO2IwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkRheU9mWWVhclBhcnNlciIpfXByaW9yaXR5PTkwO3N1YnByaW9yaXR5PTE7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIkQiOmNhc2UiREQiOnJldHVybiBpYSh1YS5kYXlPZlllYXIsZSk7Y2FzZSJEbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe2xldCBhPWUuZ2V0RnVsbFllYXIoKTtyZXR1cm4gYTBlKGEpP3I+PTEmJnI8PTM2NjpyPj0xJiZyPD0zNjV9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRNb250aCgwLGEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJFIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiB0cCh0LGUscil7bGV0IGE9QWEoKSxzPXI/LndlZWtTdGFydHNPbj8/cj8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2Eud2Vla1N0YXJ0c09uPz9hLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG49TWUodCxyPy5pbiksbz1uLmdldERheSgpLGM9KGUlNys3KSU3LGQ9Ny1zLGY9ZTwwfHxlPjY/ZS0obytkKSU3OihjK2QpJTctKG8rZCklNztyZXR1cm4gWXMobixmLHIpfXZhciBMRnMsVUM9dSgoKT0+e2NvKCk7QTAoKTtaZSgpO2kodHAsInNldERheSIpO0xGcz10cH0pO3ZhciB4MGUsZVd0PXUoKCk9PntVQygpO3ZhKCk7eDBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiRGF5UGFyc2VyIil9cHJpb3JpdHk9OTA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlIkUiOmNhc2UiRUUiOmNhc2UiRUVFIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRUUiOnJldHVybiBhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD02fXNldChlLHIsYSxzKXtyZXR1cm4gZT10cChlLGEscyksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciB2MGUsdFd0PXUoKCk9PntVQygpO3ZhKCk7RWEoKTt2MGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJMb2NhbERheVBhcnNlciIpfXByaW9yaXR5PTkwO3BhcnNlKGUscixhLHMpe2xldCBuPWkobz0+e2xldCBsPU1hdGguZmxvb3IoKG8tMSkvNykqNztyZXR1cm4obytzLndlZWtTdGFydHNPbis2KSU3K2x9LCJ2YWx1ZUNhbGxiYWNrIik7c3dpdGNoKHIpe2Nhc2UiZSI6Y2FzZSJlZSI6cmV0dXJuIHFhKHhyKHIubGVuZ3RoLGUpLG4pO2Nhc2UiZW8iOnJldHVybiBxYShhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF5In0pLG4pO2Nhc2UiZWVlIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiBhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD02fXNldChlLHIsYSxzKXtyZXR1cm4gZT10cChlLGEscyksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJFIiwiaSIsImMiLCJ0IiwiVCJdfX0pO3ZhciB5MGUscld0PXUoKCk9PntVQygpO3ZhKCk7RWEoKTt5MGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJTdGFuZEFsb25lTG9jYWxEYXlQYXJzZXIiKX1wcmlvcml0eT05MDtwYXJzZShlLHIsYSxzKXtsZXQgbj1pKG89PntsZXQgbD1NYXRoLmZsb29yKChvLTEpLzcpKjc7cmV0dXJuKG8rcy53ZWVrU3RhcnRzT24rNiklNytsfSwidmFsdWVDYWxsYmFjayIpO3N3aXRjaChyKXtjYXNlImMiOmNhc2UiY2MiOnJldHVybiBxYSh4cihyLmxlbmd0aCxlKSxuKTtjYXNlImNvIjpyZXR1cm4gcWEoYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KSxuKTtjYXNlImNjYyI6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiBhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gYS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9Nn1zZXQoZSxyLGEscyl7cmV0dXJuIGU9dHAoZSxhLHMpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJxIiwiUSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiRSIsImkiLCJlIiwidCIsIlQiXX19KTtmdW5jdGlvbiB3MGUodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pLHM9WWNlKGEsciksbj1lLXM7cmV0dXJuIFlzKGEsbixyKX12YXIgS0ZzLE96ZT11KCgpPT57QTAoKTskemUoKTtaZSgpO2kodzBlLCJzZXRJU09EYXkiKTtLRnM9dzBlfSk7dmFyIGswZSxhV3Q9dSgoKT0+e096ZSgpO3ZhKCk7RWEoKTtrMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJJU09EYXlQYXJzZXIiKX1wcmlvcml0eT05MDtwYXJzZShlLHIsYSl7bGV0IHM9aShuPT5uPT09MD83Om4sInZhbHVlQ2FsbGJhY2siKTtzd2l0Y2gocil7Y2FzZSJpIjpjYXNlImlpIjpyZXR1cm4geHIoci5sZW5ndGgsZSk7Y2FzZSJpbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXkifSk7Y2FzZSJpaWkiOnJldHVybiBxYShhLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxzKTtjYXNlImlpaWlpIjpyZXR1cm4gcWEoYS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxzKTtjYXNlImlpaWlpaSI6cmV0dXJuIHFhKGEuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KSxzKTtkZWZhdWx0OnJldHVybiBxYShhLmRheShlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscyl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTEmJnI8PTd9c2V0KGUscixhKXtyZXR1cm4gZT13MGUoZSxhKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsIkUiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFMwZSxpV3Q9dSgoKT0+e3ZhKCk7RWEoKTtTMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJBTVBNUGFyc2VyIil9cHJpb3JpdHk9ODA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhYWEiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldChlLHIsYSl7cmV0dXJuIGUuc2V0SG91cnMoTXYoYSksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYiIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIE0wZSxzV3Q9dSgoKT0+e3ZhKCk7RWEoKTtNMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJBTVBNTWlkbmlnaHRQYXJzZXIiKX1wcmlvcml0eT04MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiYiI6Y2FzZSJiYiI6Y2FzZSJiYmIiOnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJiYmJiYiI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19c2V0KGUscixhKXtyZXR1cm4gZS5zZXRIb3VycyhNdihhKSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiQiIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgQzBlLG5XdD11KCgpPT57dmEoKTtFYSgpO0MwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkRheVBlcmlvZFBhcnNlciIpfXByaW9yaXR5PTgwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6cmV0dXJuIGEuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkJCQkJCIjpyZXR1cm4gYS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheVBlcmlvZChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8YS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxhLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX1zZXQoZSxyLGEpe3JldHVybiBlLnNldEhvdXJzKE12KGEpLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwidCIsIlQiXX19KTt2YXIgejBlLG9XdD11KCgpPT57Zm8oKTt2YSgpO0VhKCk7ejBlPWNsYXNzIGV4dGVuZHMgQ3R7c3RhdGlje2kodGhpcywiSG91cjF0bzEyUGFyc2VyIil9cHJpb3JpdHk9NzA7cGFyc2UoZSxyLGEpe3N3aXRjaChyKXtjYXNlImgiOnJldHVybiBpYSh1YS5ob3VyMTJoLGUpO2Nhc2UiaG8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiB4cihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MSYmcjw9MTJ9c2V0KGUscixhKXtsZXQgcz1lLmdldEhvdXJzKCk+PTEyO3JldHVybiBzJiZhPDEyP2Uuc2V0SG91cnMoYSsxMiwwLDAsMCk6IXMmJmE9PT0xMj9lLnNldEhvdXJzKDAsMCwwLDApOmUuc2V0SG91cnMoYSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJIIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBfMGUsbFd0PXUoKCk9PntmbygpO3ZhKCk7RWEoKTtfMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJIb3VyMHRvMjNQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiSCI6cmV0dXJuIGlhKHVhLmhvdXIyM2gsZSk7Y2FzZSJIbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD0yM31zZXQoZSxyLGEpe3JldHVybiBlLnNldEhvdXJzKGEsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBUMGUsY1d0PXUoKCk9PntmbygpO3ZhKCk7RWEoKTtUMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJIb3VyMFRvMTFQYXJzZXIiKX1wcmlvcml0eT03MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UiSyI6cmV0dXJuIGlhKHVhLmhvdXIxMWgsZSk7Y2FzZSJLbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD0xMX1zZXQoZSxyLGEpe3JldHVybiBlLmdldEhvdXJzKCk+PTEyJiZhPDEyP2Uuc2V0SG91cnMoYSsxMiwwLDAsMCk6ZS5zZXRIb3VycyhhLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImgiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIEwwZSxkV3Q9dSgoKT0+e2ZvKCk7dmEoKTtFYSgpO0wwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIkhvdXIxVG8yNFBhcnNlciIpfXByaW9yaXR5PTcwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJrIjpyZXR1cm4gaWEodWEuaG91cjI0aCxlKTtjYXNlImtvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4geHIoci5sZW5ndGgsZSl9fXZhbGlkYXRlKGUscil7cmV0dXJuIHI+PTEmJnI8PTI0fXNldChlLHIsYSl7bGV0IHM9YTw9MjQ/YSUyNDphO3JldHVybiBlLnNldEhvdXJzKHMsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSCIsIksiLCJ0IiwiVCJdfX0pO3ZhciBEMGUsdVd0PXUoKCk9PntmbygpO3ZhKCk7RWEoKTtEMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJNaW51dGVQYXJzZXIiKX1wcmlvcml0eT02MDtwYXJzZShlLHIsYSl7c3dpdGNoKHIpe2Nhc2UibSI6cmV0dXJuIGlhKHVhLm1pbnV0ZSxlKTtjYXNlIm1vIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6Im1pbnV0ZSJ9KTtkZWZhdWx0OnJldHVybiB4cihyLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxyKXtyZXR1cm4gcj49MCYmcjw9NTl9c2V0KGUscixhKXtyZXR1cm4gZS5zZXRNaW51dGVzKGEsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyICQwZSxwV3Q9dSgoKT0+e2ZvKCk7dmEoKTtFYSgpOyQwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIlNlY29uZFBhcnNlciIpfXByaW9yaXR5PTUwO3BhcnNlKGUscixhKXtzd2l0Y2gocil7Y2FzZSJzIjpyZXR1cm4gaWEodWEuc2Vjb25kLGUpO2Nhc2Uic28iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoic2Vjb25kIn0pO2RlZmF1bHQ6cmV0dXJuIHhyKHIubGVuZ3RoLGUpfX12YWxpZGF0ZShlLHIpe3JldHVybiByPj0wJiZyPD01OX1zZXQoZSxyLGEpe3JldHVybiBlLnNldFNlY29uZHMoYSwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIEEwZSxmV3Q9dSgoKT0+e3ZhKCk7RWEoKTtBMGU9Y2xhc3MgZXh0ZW5kcyBDdHtzdGF0aWN7aSh0aGlzLCJGcmFjdGlvbk9mU2Vjb25kUGFyc2VyIil9cHJpb3JpdHk9MzA7cGFyc2UoZSxyKXtsZXQgYT1pKHM9Pk1hdGgudHJ1bmMocypNYXRoLnBvdygxMCwtci5sZW5ndGgrMykpLCJ2YWx1ZUNhbGxiYWNrIik7cmV0dXJuIHFhKHhyKHIubGVuZ3RoLGUpLGEpfXNldChlLHIsYSl7cmV0dXJuIGUuc2V0TWlsbGlzZWNvbmRzKGEpLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgRTBlLGhXdD11KCgpPT57VXQoKTt4NCgpO2ZvKCk7dmEoKTtFYSgpO0UwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIklTT1RpbWV6b25lV2l0aFpQYXJzZXIiKX1wcmlvcml0eT0xMDtwYXJzZShlLHIpe3N3aXRjaChyKXtjYXNlIlgiOnJldHVybiBxbChIbC5iYXNpY09wdGlvbmFsTWludXRlcyxlKTtjYXNlIlhYIjpyZXR1cm4gcWwoSGwuYmFzaWMsZSk7Y2FzZSJYWFhYIjpyZXR1cm4gcWwoSGwuYmFzaWNPcHRpb25hbFNlY29uZHMsZSk7Y2FzZSJYWFhYWCI6cmV0dXJuIHFsKEhsLmV4dGVuZGVkT3B0aW9uYWxTZWNvbmRzLGUpO2RlZmF1bHQ6cmV0dXJuIHFsKEhsLmV4dGVuZGVkLGUpfX1zZXQoZSxyLGEpe3JldHVybiByLnRpbWVzdGFtcElzU2V0P2U6V2UoZSxlLmdldFRpbWUoKS1SaShlKS1hKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCIsIngiXX19KTt2YXIgSTBlLG1XdD11KCgpPT57VXQoKTt4NCgpO2ZvKCk7dmEoKTtFYSgpO0kwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIklTT1RpbWV6b25lUGFyc2VyIil9cHJpb3JpdHk9MTA7cGFyc2UoZSxyKXtzd2l0Y2gocil7Y2FzZSJ4IjpyZXR1cm4gcWwoSGwuYmFzaWNPcHRpb25hbE1pbnV0ZXMsZSk7Y2FzZSJ4eCI6cmV0dXJuIHFsKEhsLmJhc2ljLGUpO2Nhc2UieHh4eCI6cmV0dXJuIHFsKEhsLmJhc2ljT3B0aW9uYWxTZWNvbmRzLGUpO2Nhc2UieHh4eHgiOnJldHVybiBxbChIbC5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyxlKTtkZWZhdWx0OnJldHVybiBxbChIbC5leHRlbmRlZCxlKX19c2V0KGUscixhKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD9lOldlKGUsZS5nZXRUaW1lKCktUmkoZSktYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJYIl19fSk7dmFyIFAwZSxnV3Q9dSgoKT0+e1V0KCk7dmEoKTtFYSgpO1AwZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIlRpbWVzdGFtcFNlY29uZHNQYXJzZXIiKX1wcmlvcml0eT00MDtwYXJzZShlKXtyZXR1cm4gdDBlKGUpfXNldChlLHIsYSl7cmV0dXJuW1dlKGUsYSoxZTMpLHt0aW1lc3RhbXBJc1NldDohMH1dfWluY29tcGF0aWJsZVRva2Vucz0iKiJ9fSk7dmFyIE4wZSxiV3Q9dSgoKT0+e1V0KCk7dmEoKTtFYSgpO04wZT1jbGFzcyBleHRlbmRzIEN0e3N0YXRpY3tpKHRoaXMsIlRpbWVzdGFtcE1pbGxpc2Vjb25kc1BhcnNlciIpfXByaW9yaXR5PTIwO3BhcnNlKGUpe3JldHVybiB0MGUoZSl9c2V0KGUscixhKXtyZXR1cm5bV2UoZSxhKSx7dGltZXN0YW1wSXNTZXQ6ITB9XX1pbmNvbXBhdGlibGVUb2tlbnM9IioifX0pO3ZhciBPMGUseFd0PXUoKCk9PntIVXQoKTtxVXQoKTtWVXQoKTtqVXQoKTtVVXQoKTtXVXQoKTtHVXQoKTtZVXQoKTtLVXQoKTtaVXQoKTtRVXQoKTtYVXQoKTtKVXQoKTtlV3QoKTt0V3QoKTtyV3QoKTthV3QoKTtpV3QoKTtzV3QoKTtuV3QoKTtvV3QoKTtsV3QoKTtjV3QoKTtkV3QoKTt1V3QoKTtwV3QoKTtmV3QoKTtoV3QoKTttV3QoKTtnV3QoKTtiV3QoKTtPMGU9e0c6bmV3IGUwZSx5Om5ldyBpMGUsWTpuZXcgczBlLFI6bmV3IG4wZSx1Om5ldyBvMGUsUTpuZXcgbDBlLHE6bmV3IGMwZSxNOm5ldyBkMGUsTDpuZXcgdTBlLHc6bmV3IGYwZSxJOm5ldyBtMGUsZDpuZXcgZzBlLEQ6bmV3IGIwZSxFOm5ldyB4MGUsZTpuZXcgdjBlLGM6bmV3IHkwZSxpOm5ldyBrMGUsYTpuZXcgUzBlLGI6bmV3IE0wZSxCOm5ldyBDMGUsaDpuZXcgejBlLEg6bmV3IF8wZSxLOm5ldyBUMGUsazpuZXcgTDBlLG06bmV3IEQwZSxzOm5ldyAkMGUsUzpuZXcgQTBlLFg6bmV3IEUwZSx4Om5ldyBJMGUsdDpuZXcgUDBlLFQ6bmV3IE4wZX19KTtmdW5jdGlvbiBSMGUodCxlLHIsYSl7bGV0IHM9aSgoKT0+V2UoYT8uaW58fHIsTmFOKSwiaW52YWxpZERhdGUiKSxuPUdjZSgpLG89YT8ubG9jYWxlPz9uLmxvY2FsZT8/ejEsbD1hPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2E/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9uLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/bi5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxjPWE/LndlZWtTdGFydHNPbj8/YT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P24ud2Vla1N0YXJ0c09uPz9uLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wO2lmKCFlKXJldHVybiB0P3MoKTpNZShyLGE/LmluKTtsZXQgZD17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOmwsd2Vla1N0YXJ0c09uOmMsbG9jYWxlOm99LGY9W25ldyBKY2UoYT8uaW4scildLHA9ZS5tYXRjaChMYmEpLm1hcChnPT57bGV0IHk9Z1swXTtpZih5IGluIEp1KXtsZXQgaz1KdVt5XTtyZXR1cm4gayhnLG8uZm9ybWF0TG9uZyl9cmV0dXJuIGd9KS5qb2luKCIiKS5tYXRjaChUYmEpLGg9W107Zm9yKGxldCBnIG9mIHApeyFhPy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnMmJkhjZShnKSYmcUMoZyxlLHQpLCFhPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZCY2UoZykmJnFDKGcsZSx0KTtsZXQgeT1nWzBdLGs9TzBlW3ldO2lmKGspe2xldHtpbmNvbXBhdGlibGVUb2tlbnM6TX09aztpZihBcnJheS5pc0FycmF5KE0pKXtsZXQgXz1oLmZpbmQoUz0+TS5pbmNsdWRlcyhTLnRva2VuKXx8Uy50b2tlbj09PXkpO2lmKF8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcYCR7Xy5mdWxsVG9rZW59XGAgYW5kIFxgJHtnfVxgIGF0IHRoZSBzYW1lIHRpbWVgKX1lbHNlIGlmKGsuaW5jb21wYXRpYmxlVG9rZW5zPT09IioiJiZoLmxlbmd0aD4wKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke2d9XGAgYW5kIGFueSBvdGhlciB0b2tlbiBhdCB0aGUgc2FtZSB0aW1lYCk7aC5wdXNoKHt0b2tlbjp5LGZ1bGxUb2tlbjpnfSk7bGV0IE49ay5ydW4odCxnLG8ubWF0Y2gsZCk7aWYoIU4pcmV0dXJuIHMoKTtmLnB1c2goTi5zZXR0ZXIpLHQ9Ti5yZXN0fWVsc2V7aWYoeS5tYXRjaChFYmEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIreSsiYCIpO2lmKGc9PT0iJyciP2c9IiciOnk9PT0iJyImJihnPUliYShnKSksdC5pbmRleE9mKGcpPT09MCl0PXQuc2xpY2UoZy5sZW5ndGgpO2Vsc2UgcmV0dXJuIHMoKX19aWYodC5sZW5ndGg+MCYmQWJhLnRlc3QodCkpcmV0dXJuIHMoKTtsZXQgbT1mLm1hcChnPT5nLnByaW9yaXR5KS5zb3J0KChnLHkpPT55LWcpLmZpbHRlcigoZyx5LGspPT5rLmluZGV4T2YoZyk9PT15KS5tYXAoZz0+Zi5maWx0ZXIoeT0+eS5wcmlvcml0eT09PWcpLnNvcnQoKHksayk9Pmsuc3ViUHJpb3JpdHkteS5zdWJQcmlvcml0eSkpLm1hcChnPT5nWzBdKSx2PU1lKHIsYT8uaW4pO2lmKGlzTmFOKCt2KSlyZXR1cm4gcygpO2xldCBiPXt9O2ZvcihsZXQgZyBvZiBtKXtpZighZy52YWxpZGF0ZSh2LGQpKXJldHVybiBzKCk7bGV0IHk9Zy5zZXQodixiLGQpO0FycmF5LmlzQXJyYXkoeSk/KHY9eVswXSxPYmplY3QuYXNzaWduKGIseVsxXSkpOnY9eX1yZXR1cm4gdn1mdW5jdGlvbiBJYmEodCl7cmV0dXJuIHQubWF0Y2goRGJhKVsxXS5yZXBsYWNlKCRiYSwiJyIpfXZhciBUYmEsTGJhLERiYSwkYmEsQWJhLEViYSxzcXMsUnplPXUoKCk9PntjNigpO2t6ZSgpO1N6ZSgpO1V0KCk7RHplKCk7WmUoKTtJemUoKTt4V3QoKTtUYmE9L1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxMYmE9L1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csRGJhPS9eJyhbXl0qPyknPyQvLCRiYT0vJycvZyxBYmE9L1xTLyxFYmE9L1thLXpBLVpdLztpKFIwZSwicGFyc2UiKTtpKEliYSwiY2xlYW5Fc2NhcGVkU3RyaW5nIik7c3FzPVIwZX0pO2Z1bmN0aW9uIHZXdCh0LGUscil7cmV0dXJuIExuKFIwZSh0LGUsbmV3IERhdGUscikpfXZhciBkcXMseVd0PXUoKCk9Pnt5NCgpO1J6ZSgpO2kodld0LCJpc01hdGNoIik7ZHFzPXZXdH0pO2Z1bmN0aW9uIHdXdCh0LGUpe3JldHVybiBNZSh0LGU/LmluKS5nZXREYXkoKT09PTF9dmFyIGhxcyxrV3Q9dSgoKT0+e1plKCk7aSh3V3QsImlzTW9uZGF5Iik7aHFzPXdXdH0pO2Z1bmN0aW9uIFNXdCh0KXtyZXR1cm4rTWUodCk8RGF0ZS5ub3coKX12YXIgeHFzLE1XdD11KCgpPT57WmUoKTtpKFNXdCwiaXNQYXN0Iik7eHFzPVNXdH0pO2Z1bmN0aW9uIFdDKHQsZSl7bGV0IHI9TWUodCxlPy5pbik7cmV0dXJuIHIuc2V0TWludXRlcygwLDAsMCkscn12YXIga3FzLEZ6ZT11KCgpPT57WmUoKTtpKFdDLCJzdGFydE9mSG91ciIpO2txcz1XQ30pO2Z1bmN0aW9uIEYwZSh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKTtyZXR1cm4rV0MoYSk9PStXQyhzKX12YXIgX3FzLEJ6ZT11KCgpPT57SGEoKTtGemUoKTtpKEYwZSwiaXNTYW1lSG91ciIpO19xcz1GMGV9KTtmdW5jdGlvbiBDdih0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKTtyZXR1cm4rS2EoYSxyKT09K0thKHMscil9dmFyIEFxcyxCMGU9dSgoKT0+e0hhKCk7RzIoKTtpKEN2LCJpc1NhbWVXZWVrIik7QXFzPUN2fSk7ZnVuY3Rpb24gSDBlKHQsZSxyKXtyZXR1cm4gQ3YodCxlLHsuLi5yLHdlZWtTdGFydHNPbjoxfSl9dmFyIE5xcyxIemU9dSgoKT0+e0IwZSgpO2koSDBlLCJpc1NhbWVJU09XZWVrIik7TnFzPUgwZX0pO2Z1bmN0aW9uIENXdCh0LGUscil7bGV0W2Esc109SHQocj8uaW4sdCxlKTtyZXR1cm4rWDEoYSk9PStYMShzKX12YXIgSHFzLHpXdD11KCgpPT57b3YoKTtIYSgpO2koQ1d0LCJpc1NhbWVJU09XZWVrWWVhciIpO0hxcz1DV3R9KTtmdW5jdGlvbiBHQyh0LGUpe2xldCByPU1lKHQsZT8uaW4pO3JldHVybiByLnNldFNlY29uZHMoMCwwKSxyfXZhciBVcXMscXplPXUoKCk9PntaZSgpO2koR0MsInN0YXJ0T2ZNaW51dGUiKTtVcXM9R0N9KTtmdW5jdGlvbiBxMGUodCxlKXtyZXR1cm4rR0ModCk9PStHQyhlKX12YXIgS3FzLFZ6ZT11KCgpPT57cXplKCk7aShxMGUsImlzU2FtZU1pbnV0ZSIpO0txcz1xMGV9KTtmdW5jdGlvbiBWMGUodCxlLHIpe2xldFthLHNdPUh0KHI/LmluLHQsZSk7cmV0dXJuIGEuZ2V0RnVsbFllYXIoKT09PXMuZ2V0RnVsbFllYXIoKSYmYS5nZXRNb250aCgpPT09cy5nZXRNb250aCgpfXZhciBKcXMsanplPXUoKCk9PntIYSgpO2koVjBlLCJpc1NhbWVNb250aCIpO0pxcz1WMGV9KTtmdW5jdGlvbiBqMGUodCxlLHIpe2xldFthLHNdPUh0KHI/LmluLHQsZSk7cmV0dXJuK0IwKGEpPT0rQjAocyl9dmFyIGlWcyxVemU9dSgoKT0+e0hhKCk7RGNlKCk7aShqMGUsImlzU2FtZVF1YXJ0ZXIiKTtpVnM9ajBlfSk7ZnVuY3Rpb24gWUModCxlKXtsZXQgcj1NZSh0LGU/LmluKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoMCkscn12YXIgbFZzLFd6ZT11KCgpPT57WmUoKTtpKFlDLCJzdGFydE9mU2Vjb25kIik7bFZzPVlDfSk7ZnVuY3Rpb24gVTBlKHQsZSl7cmV0dXJuK1lDKHQpPT0rWUMoZSl9dmFyIHBWcyxHemU9dSgoKT0+e1d6ZSgpO2koVTBlLCJpc1NhbWVTZWNvbmQiKTtwVnM9VTBlfSk7ZnVuY3Rpb24gVzBlKHQsZSxyKXtsZXRbYSxzXT1IdChyPy5pbix0LGUpO3JldHVybiBhLmdldEZ1bGxZZWFyKCk9PT1zLmdldEZ1bGxZZWFyKCl9dmFyIGdWcyxZemU9dSgoKT0+e0hhKCk7aShXMGUsImlzU2FtZVllYXIiKTtnVnM9VzBlfSk7ZnVuY3Rpb24gX1d0KHQsZSl7cmV0dXJuIEYwZShNZSh0LGU/LmluKSxGcihlPy5pbnx8dCkpfXZhciBrVnMsVFd0PXUoKCk9PntLcygpO0J6ZSgpO1plKCk7aShfV3QsImlzVGhpc0hvdXIiKTtrVnM9X1d0fSk7ZnVuY3Rpb24gTFd0KHQsZSl7cmV0dXJuIEgwZShXZShlPy5pbnx8dCx0KSxGcihlPy5pbnx8dCkpfXZhciBUVnMsRFd0PXUoKCk9PntVdCgpO0tzKCk7SHplKCk7aShMV3QsImlzVGhpc0lTT1dlZWsiKTtUVnM9TFd0fSk7ZnVuY3Rpb24gJFd0KHQpe3JldHVybiBxMGUodCxGcih0KSl9dmFyIEVWcyxBV3Q9dSgoKT0+e0tzKCk7VnplKCk7aSgkV3QsImlzVGhpc01pbnV0ZSIpO0VWcz0kV3R9KTtmdW5jdGlvbiBFV3QodCxlKXtyZXR1cm4gVjBlKFdlKGU/LmlufHx0LHQpLEZyKGU/LmlufHx0KSl9dmFyIEZWcyxJV3Q9dSgoKT0+e1V0KCk7S3MoKTtqemUoKTtpKEVXdCwiaXNUaGlzTW9udGgiKTtGVnM9RVd0fSk7ZnVuY3Rpb24gUFd0KHQsZSl7cmV0dXJuIGowZShXZShlPy5pbnx8dCx0KSxGcihlPy5pbnx8dCkpfXZhciBVVnMsTld0PXUoKCk9PntVdCgpO0tzKCk7VXplKCk7aShQV3QsImlzVGhpc1F1YXJ0ZXIiKTtVVnM9UFd0fSk7ZnVuY3Rpb24gT1d0KHQpe3JldHVybiBVMGUodCxGcih0KSl9dmFyIFpWcyxSV3Q9dSgoKT0+e0tzKCk7R3plKCk7aShPV3QsImlzVGhpc1NlY29uZCIpO1pWcz1PV3R9KTtmdW5jdGlvbiBGV3QodCxlKXtyZXR1cm4gQ3YoV2UoZT8uaW58fHQsdCksRnIoZT8uaW58fHQpLGUpfXZhciByanMsQld0PXUoKCk9PntVdCgpO0tzKCk7QjBlKCk7aShGV3QsImlzVGhpc1dlZWsiKTtyanM9Rld0fSk7ZnVuY3Rpb24gSFd0KHQsZSl7cmV0dXJuIFcwZShXZShlPy5pbnx8dCx0KSxGcihlPy5pbnx8dCkpfXZhciBsanMscVd0PXUoKCk9PntVdCgpO0tzKCk7WXplKCk7aShIV3QsImlzVGhpc1llYXIiKTtsanM9SFd0fSk7ZnVuY3Rpb24gVld0KHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldERheSgpPT09NH12YXIgcGpzLGpXdD11KCgpPT57WmUoKTtpKFZXdCwiaXNUaHVyc2RheSIpO3Bqcz1WV3R9KTtmdW5jdGlvbiBVV3QodCxlKXtyZXR1cm4gTzAoV2UoZT8uaW58fHQsdCksRnIoZT8uaW58fHQpKX12YXIgeGpzLFdXdD11KCgpPT57VXQoKTtLcygpO2R2KCk7aShVV3QsImlzVG9kYXkiKTt4anM9VVd0fSk7ZnVuY3Rpb24gR1d0KHQsZSl7cmV0dXJuIE8wKHQsWXMoRnIoZT8uaW58fHQpLDEpLGUpfXZhciBNanMsWVd0PXUoKCk9PntBMCgpO0tzKCk7ZHYoKTtpKEdXdCwiaXNUb21vcnJvdyIpO01qcz1HV3R9KTtmdW5jdGlvbiBLV3QodCxlKXtyZXR1cm4gTWUodCxlPy5pbikuZ2V0RGF5KCk9PT0yfXZhciBUanMsWld0PXUoKCk9PntaZSgpO2koS1d0LCJpc1R1ZXNkYXkiKTtUanM9S1d0fSk7ZnVuY3Rpb24gUVd0KHQsZSl7cmV0dXJuIE1lKHQsZT8uaW4pLmdldERheSgpPT09M312YXIgQWpzLFhXdD11KCgpPT57WmUoKTtpKFFXdCwiaXNXZWRuZXNkYXkiKTtBanM9UVd0fSk7ZnVuY3Rpb24gSld0KHQsZSxyKXtsZXQgYT0rTWUodCxyPy5pbiksW3Msbl09WytNZShlLnN0YXJ0LHI/LmluKSwrTWUoZS5lbmQscj8uaW4pXS5zb3J0KChvLGwpPT5vLWwpO3JldHVybiBhPj1zJiZhPD1ufXZhciBOanMsZUd0PXUoKCk9PntaZSgpO2koSld0LCJpc1dpdGhpbkludGVydmFsIik7TmpzPUpXdH0pO2Z1bmN0aW9uIHJwKHQsZSxyKXtyZXR1cm4gWXModCwtZSxyKX12YXIgQmpzLEtDPXUoKCk9PntBMCgpO2kocnAsInN1YkRheXMiKTtCanM9cnB9KTtmdW5jdGlvbiB0R3QodCxlKXtyZXR1cm4gTzAoV2UoZT8uaW58fHQsdCkscnAoRnIoZT8uaW58fHQpLDEpKX12YXIgR2pzLHJHdD11KCgpPT57VXQoKTtLcygpO2R2KCk7S0MoKTtpKHRHdCwiaXNZZXN0ZXJkYXkiKTtHanM9dEd0fSk7ZnVuY3Rpb24gYUd0KHQsZSl7bGV0IHI9TWUodCxlPy5pbiksYT1yLmdldEZ1bGxZZWFyKCkscz05K01hdGguZmxvb3IoYS8xMCkqMTA7cmV0dXJuIHIuc2V0RnVsbFllYXIocysxLDAsMCksci5zZXRIb3VycygwLDAsMCwwKSxNZShyLGU/LmluKX12YXIgUWpzLGlHdD11KCgpPT57WmUoKTtpKGFHdCwibGFzdERheU9mRGVjYWRlIik7UWpzPWFHdH0pO2Z1bmN0aW9uIEcwZSh0LGUpe2xldCByPUFhKCksYT1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPU1lKHQsZT8uaW4pLG49cy5nZXREYXkoKSxvPShuPGE/LTc6MCkrNi0obi1hKTtyZXR1cm4gcy5zZXRIb3VycygwLDAsMCwwKSxzLnNldERhdGUocy5nZXREYXRlKCkrbyksc312YXIgclVzLEt6ZT11KCgpPT57Y28oKTtaZSgpO2koRzBlLCJsYXN0RGF5T2ZXZWVrIik7clVzPUcwZX0pO2Z1bmN0aW9uIHNHdCh0LGUpe3JldHVybiBHMGUodCx7Li4uZSx3ZWVrU3RhcnRzT246MX0pfXZhciBuVXMsbkd0PXUoKCk9PntLemUoKTtpKHNHdCwibGFzdERheU9mSVNPV2VlayIpO25Vcz1zR3R9KTtmdW5jdGlvbiBvR3QodCxlKXtsZXQgcj1Gbyh0LGUpLGE9V2UoZT8uaW58fHQsMCk7YS5zZXRGdWxsWWVhcihyKzEsMCw0KSxhLnNldEhvdXJzKDAsMCwwLDApO2xldCBzPVNzKGEsZSk7cmV0dXJuIHMuc2V0RGF0ZShzLmdldERhdGUoKS0xKSxzfXZhciBwVXMsbEd0PXUoKCk9PntVdCgpO0d1KCk7UDAoKTtpKG9HdCwibGFzdERheU9mSVNPV2Vla1llYXIiKTtwVXM9b0d0fSk7ZnVuY3Rpb24gY0d0KHQsZSl7bGV0IHI9TWUodCxlPy5pbiksYT1yLmdldE1vbnRoKCkscz1hLWElMyszO3JldHVybiByLnNldE1vbnRoKHMsMCksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBnVXMsZEd0PXUoKCk9PntaZSgpO2koY0d0LCJsYXN0RGF5T2ZRdWFydGVyIik7Z1VzPWNHdH0pO2Z1bmN0aW9uIHVHdCh0LGUpe2xldCByPU1lKHQsZT8uaW4pLGE9ci5nZXRGdWxsWWVhcigpO3JldHVybiByLnNldEZ1bGxZZWFyKGErMSwwLDApLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgeVVzLHBHdD11KCgpPT57WmUoKTtpKHVHdCwibGFzdERheU9mWWVhciIpO3lVcz11R3R9KTtmdW5jdGlvbiBmR3QodCxlKXtsZXQgcj1NZSh0KTtpZighTG4ocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBhPWUubWF0Y2goUGJhKTtyZXR1cm4gYT9hLm1hcChuPT57aWYobj09PSInJyIpcmV0dXJuIiciO2xldCBvPW5bMF07aWYobz09PSInIilyZXR1cm4gRmJhKG4pO2xldCBsPUoxW29dO2lmKGwpcmV0dXJuIGwocixuKTtpZihvLm1hdGNoKFJiYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitvKyJgIik7cmV0dXJuIG59KS5qb2luKCIiKToiIn1mdW5jdGlvbiBGYmEodCl7bGV0IGU9dC5tYXRjaChOYmEpO3JldHVybiBlP2VbMV0ucmVwbGFjZShPYmEsIiciKTp0fXZhciBQYmEsTmJhLE9iYSxSYmEselVzLGhHdD11KCgpPT57d3plKCk7eTQoKTtaZSgpO1BiYT0vKFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxOYmE9L14nKFteXSo/KSc/JC8sT2JhPS8nJy9nLFJiYT0vW2EtekEtWl0vO2koZkd0LCJsaWdodEZvcm1hdCIpO2koRmJhLCJjbGVhbkVzY2FwZWRTdHJpbmciKTt6VXM9Zkd0fSk7ZnVuY3Rpb24gbUd0KHt5ZWFyczp0LG1vbnRoczplLHdlZWtzOnIsZGF5czphLGhvdXJzOnMsbWludXRlczpuLHNlY29uZHM6b30pe2xldCBsPTA7dCYmKGwrPXQqMzY1LjI0MjUpLGUmJihsKz1lKigzNjUuMjQyNS8xMikpLHImJihsKz1yKjcpLGEmJihsKz1hKTtsZXQgYz1sKjI0KjYwKjYwO3JldHVybiBzJiYoYys9cyo2MCo2MCksbiYmKGMrPW4qNjApLG8mJihjKz1vKSxNYXRoLnRydW5jKGMqMWUzKX12YXIgRFVzLGdHdD11KCgpPT57U3IoKTtpKG1HdCwibWlsbGlzZWNvbmRzIik7RFVzPW1HdH0pO2Z1bmN0aW9uIGJHdCh0KXtsZXQgZT10L1ExO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBJVXMseEd0PXUoKCk9PntTcigpO2koYkd0LCJtaWxsaXNlY29uZHNUb0hvdXJzIik7SVVzPWJHdH0pO2Z1bmN0aW9uIHZHdCh0KXtsZXQgZT10L2xvO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBSVXMseUd0PXUoKCk9PntTcigpO2kodkd0LCJtaWxsaXNlY29uZHNUb01pbnV0ZXMiKTtSVXM9dkd0fSk7ZnVuY3Rpb24gd0d0KHQpe2xldCBlPXQvYXY7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIHFVcyxrR3Q9dSgoKT0+e1NyKCk7aSh3R3QsIm1pbGxpc2Vjb25kc1RvU2Vjb25kcyIpO3FVcz13R3R9KTtmdW5jdGlvbiBTR3QodCl7bGV0IGU9dC9YMmU7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIFdVcyxNR3Q9dSgoKT0+e1NyKCk7aShTR3QsIm1pbnV0ZXNUb0hvdXJzIik7V1VzPVNHdH0pO2Z1bmN0aW9uIENHdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KmxvKX12YXIgWlVzLHpHdD11KCgpPT57U3IoKTtpKENHdCwibWludXRlc1RvTWlsbGlzZWNvbmRzIik7WlVzPUNHdH0pO2Z1bmN0aW9uIF9HdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KnN2KX12YXIgZVdzLFRHdD11KCgpPT57U3IoKTtpKF9HdCwibWludXRlc1RvU2Vjb25kcyIpO2VXcz1fR3R9KTtmdW5jdGlvbiBMR3QodCl7bGV0IGU9dC9KMmU7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIGlXcyxER3Q9dSgoKT0+e1NyKCk7aShMR3QsIm1vbnRoc1RvUXVhcnRlcnMiKTtpV3M9TEd0fSk7ZnVuY3Rpb24gJEd0KHQpe2xldCBlPXQvZWNlO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBsV3MsQUd0PXUoKCk9PntTcigpO2koJEd0LCJtb250aHNUb1llYXJzIik7bFdzPSRHdH0pO2Z1bmN0aW9uIGhvKHQsZSxyKXtsZXQgYT1lLWVwKHQscik7cmV0dXJuIGE8PTAmJihhKz03KSxZcyh0LGEscil9dmFyIGZXcyxrND11KCgpPT57QTAoKTtqQygpO2koaG8sIm5leHREYXkiKTtmV3M9aG99KTtmdW5jdGlvbiBFR3QodCxlKXtyZXR1cm4gaG8odCw1LGUpfXZhciBiV3MsSUd0PXUoKCk9PntrNCgpO2koRUd0LCJuZXh0RnJpZGF5Iik7YldzPUVHdH0pO2Z1bmN0aW9uIFBHdCh0LGUpe3JldHVybiBobyh0LDEsZSl9dmFyIHdXcyxOR3Q9dSgoKT0+e2s0KCk7aShQR3QsIm5leHRNb25kYXkiKTt3V3M9UEd0fSk7ZnVuY3Rpb24gT0d0KHQsZSl7cmV0dXJuIGhvKHQsNixlKX12YXIgQ1dzLFJHdD11KCgpPT57azQoKTtpKE9HdCwibmV4dFNhdHVyZGF5Iik7Q1dzPU9HdH0pO2Z1bmN0aW9uIEZHdCh0LGUpe3JldHVybiBobyh0LDAsZSl9dmFyIExXcyxCR3Q9dSgoKT0+e2s0KCk7aShGR3QsIm5leHRTdW5kYXkiKTtMV3M9Rkd0fSk7ZnVuY3Rpb24gSEd0KHQsZSl7cmV0dXJuIGhvKHQsNCxlKX12YXIgRVdzLHFHdD11KCgpPT57azQoKTtpKEhHdCwibmV4dFRodXJzZGF5Iik7RVdzPUhHdH0pO2Z1bmN0aW9uIFZHdCh0LGUpe3JldHVybiBobyh0LDIsZSl9dmFyIE9XcyxqR3Q9dSgoKT0+e2s0KCk7aShWR3QsIm5leHRUdWVzZGF5Iik7T1dzPVZHdH0pO2Z1bmN0aW9uIFVHdCh0LGUpe3JldHVybiBobyh0LDMsZSl9dmFyIEhXcyxXR3Q9dSgoKT0+e2s0KCk7aShVR3QsIm5leHRXZWRuZXNkYXkiKTtIV3M9VUd0fSk7ZnVuY3Rpb24gWUd0KHQsZSl7bGV0IHI9aSgoKT0+V2UoZT8uaW4sTmFOKSwiaW52YWxpZERhdGUiKSxhPWU/LmFkZGl0aW9uYWxEaWdpdHM/PzIscz1WYmEodCksbjtpZihzLmRhdGUpe2xldCBkPWpiYShzLmRhdGUsYSk7bj1VYmEoZC5yZXN0RGF0ZVN0cmluZyxkLnllYXIpfWlmKCFufHxpc05hTigrbikpcmV0dXJuIHIoKTtsZXQgbz0rbixsPTAsYztpZihzLnRpbWUmJihsPVdiYShzLnRpbWUpLGlzTmFOKGwpKSlyZXR1cm4gcigpO2lmKHMudGltZXpvbmUpe2lmKGM9R2JhKHMudGltZXpvbmUpLGlzTmFOKGMpKXJldHVybiByKCl9ZWxzZXtsZXQgZD1uZXcgRGF0ZShvK2wpLGY9TWUoMCxlPy5pbik7cmV0dXJuIGYuc2V0RnVsbFllYXIoZC5nZXRVVENGdWxsWWVhcigpLGQuZ2V0VVRDTW9udGgoKSxkLmdldFVUQ0RhdGUoKSksZi5zZXRIb3VycyhkLmdldFVUQ0hvdXJzKCksZC5nZXRVVENNaW51dGVzKCksZC5nZXRVVENTZWNvbmRzKCksZC5nZXRVVENNaWxsaXNlY29uZHMoKSksZn1yZXR1cm4gTWUobytsK2MsZT8uaW4pfWZ1bmN0aW9uIFZiYSh0KXtsZXQgZT17fSxyPXQuc3BsaXQoWTBlLmRhdGVUaW1lRGVsaW1pdGVyKSxhO2lmKHIubGVuZ3RoPjIpcmV0dXJuIGU7aWYoLzovLnRlc3QoclswXSk/YT1yWzBdOihlLmRhdGU9clswXSxhPXJbMV0sWTBlLnRpbWVab25lRGVsaW1pdGVyLnRlc3QoZS5kYXRlKSYmKGUuZGF0ZT10LnNwbGl0KFkwZS50aW1lWm9uZURlbGltaXRlcilbMF0sYT10LnN1YnN0cihlLmRhdGUubGVuZ3RoLHQubGVuZ3RoKSkpLGEpe2xldCBzPVkwZS50aW1lem9uZS5leGVjKGEpO3M/KGUudGltZT1hLnJlcGxhY2Uoc1sxXSwiIiksZS50aW1lem9uZT1zWzFdKTplLnRpbWU9YX1yZXR1cm4gZX1mdW5jdGlvbiBqYmEodCxlKXtsZXQgcj1uZXcgUmVnRXhwKCJeKD86KFxcZHs0fXxbKy1dXFxkeyIrKDQrZSkrIn0pfChcXGR7Mn18WystXVxcZHsiKygyK2UpKyJ9KSQpIiksYT10Lm1hdGNoKHIpO2lmKCFhKXJldHVybnt5ZWFyOk5hTixyZXN0RGF0ZVN0cmluZzoiIn07bGV0IHM9YVsxXT9wYXJzZUludChhWzFdKTpudWxsLG49YVsyXT9wYXJzZUludChhWzJdKTpudWxsO3JldHVybnt5ZWFyOm49PT1udWxsP3M6bioxMDAscmVzdERhdGVTdHJpbmc6dC5zbGljZSgoYVsxXXx8YVsyXSkubGVuZ3RoKX19ZnVuY3Rpb24gVWJhKHQsZSl7aWYoZT09PW51bGwpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IHI9dC5tYXRjaChCYmEpO2lmKCFyKXJldHVybiBuZXcgRGF0ZShOYU4pO2xldCBhPSEhcls0XSxzPVpDKHJbMV0pLG49WkMoclsyXSktMSxvPVpDKHJbM10pLGw9WkMocls0XSksYz1aQyhyWzVdKS0xO2lmKGEpcmV0dXJuIFhiYShlLGwsYyk/WWJhKGUsbCxjKTpuZXcgRGF0ZShOYU4pO3tsZXQgZD1uZXcgRGF0ZSgwKTtyZXR1cm4hWmJhKGUsbixvKXx8IVFiYShlLHMpP25ldyBEYXRlKE5hTik6KGQuc2V0VVRDRnVsbFllYXIoZSxuLE1hdGgubWF4KHMsbykpLGQpfX1mdW5jdGlvbiBaQyh0KXtyZXR1cm4gdD9wYXJzZUludCh0KToxfWZ1bmN0aW9uIFdiYSh0KXtsZXQgZT10Lm1hdGNoKEhiYSk7aWYoIWUpcmV0dXJuIE5hTjtsZXQgcj1aemUoZVsxXSksYT1aemUoZVsyXSkscz1aemUoZVszXSk7cmV0dXJuIEpiYShyLGEscyk/cipRMSthKmxvK3MqMWUzOk5hTn1mdW5jdGlvbiBaemUodCl7cmV0dXJuIHQmJnBhcnNlRmxvYXQodC5yZXBsYWNlKCIsIiwiLiIpKXx8MH1mdW5jdGlvbiBHYmEodCl7aWYodD09PSJaIilyZXR1cm4gMDtsZXQgZT10Lm1hdGNoKHFiYSk7aWYoIWUpcmV0dXJuIDA7bGV0IHI9ZVsxXT09PSIrIj8tMToxLGE9cGFyc2VJbnQoZVsyXSkscz1lWzNdJiZwYXJzZUludChlWzNdKXx8MDtyZXR1cm4gZXhhKGEscyk/ciooYSpRMStzKmxvKTpOYU59ZnVuY3Rpb24gWWJhKHQsZSxyKXtsZXQgYT1uZXcgRGF0ZSgwKTthLnNldFVUQ0Z1bGxZZWFyKHQsMCw0KTtsZXQgcz1hLmdldFVUQ0RheSgpfHw3LG49KGUtMSkqNytyKzEtcztyZXR1cm4gYS5zZXRVVENEYXRlKGEuZ2V0VVRDRGF0ZSgpK24pLGF9ZnVuY3Rpb24gR0d0KHQpe3JldHVybiB0JTQwMD09PTB8fHQlND09PTAmJnQlMTAwIT09MH1mdW5jdGlvbiBaYmEodCxlLHIpe3JldHVybiBlPj0wJiZlPD0xMSYmcj49MSYmcjw9KEtiYVtlXXx8KEdHdCh0KT8yOToyOCkpfWZ1bmN0aW9uIFFiYSh0LGUpe3JldHVybiBlPj0xJiZlPD0oR0d0KHQpPzM2NjozNjUpfWZ1bmN0aW9uIFhiYSh0LGUscil7cmV0dXJuIGU+PTEmJmU8PTUzJiZyPj0wJiZyPD02fWZ1bmN0aW9uIEpiYSh0LGUscil7cmV0dXJuIHQ9PT0yND9lPT09MCYmcj09PTA6cj49MCYmcjw2MCYmZT49MCYmZTw2MCYmdD49MCYmdDwyNX1mdW5jdGlvbiBleGEodCxlKXtyZXR1cm4gZT49MCYmZTw9NTl9dmFyIFkwZSxCYmEsSGJhLHFiYSxLYmEsR1dzLEtHdD11KCgpPT57U3IoKTtVdCgpO1plKCk7aShZR3QsInBhcnNlSVNPIik7WTBlPXtkYXRlVGltZURlbGltaXRlcjovW1QgXS8sdGltZVpvbmVEZWxpbWl0ZXI6L1taIF0vaSx0aW1lem9uZTovKFtaKy1dLiopJC99LEJiYT0vXi0/KD86KFxkezN9KXwoXGR7Mn0pKD86LT8oXGR7Mn0pKT98VyhcZHsyfSkoPzotPyhcZHsxfSkpP3wpJC8sSGJhPS9eKFxkezJ9KD86Wy4sXVxkKik/KSg/Ojo/KFxkezJ9KD86Wy4sXVxkKik/KSk/KD86Oj8oXGR7Mn0oPzpbLixdXGQqKT8pKT8kLyxxYmE9L14oWystXSkoXGR7Mn0pKD86Oj8oXGR7Mn0pKT8kLztpKFZiYSwic3BsaXREYXRlU3RyaW5nIik7aShqYmEsInBhcnNlWWVhciIpO2koVWJhLCJwYXJzZURhdGUiKTtpKFpDLCJwYXJzZURhdGVVbml0Iik7aShXYmEsInBhcnNlVGltZSIpO2koWnplLCJwYXJzZVRpbWVVbml0Iik7aShHYmEsInBhcnNlVGltZXpvbmUiKTtpKFliYSwiZGF5T2ZJU09XZWVrWWVhciIpO0tiYT1bMzEsbnVsbCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07aShHR3QsImlzTGVhcFllYXJJbmRleCIpO2koWmJhLCJ2YWxpZGF0ZURhdGUiKTtpKFFiYSwidmFsaWRhdGVEYXlPZlllYXJEYXRlIik7aShYYmEsInZhbGlkYXRlV2Vla0RhdGUiKTtpKEpiYSwidmFsaWRhdGVUaW1lIik7aShleGEsInZhbGlkYXRlVGltZXpvbmUiKTtHV3M9WUd0fSk7ZnVuY3Rpb24gWkd0KHQsZSl7bGV0IHI9dC5tYXRjaCgvKFxkezR9KS0oXGR7Mn0pLShcZHsyfSlbVCBdKFxkezJ9KTooXGR7Mn0pOihcZHsyfSkoPzpcLihcZHswLDd9KSk/KD86WnwoLikoXGR7Mn0pOj8oXGR7Mn0pPyk/Lyk7cmV0dXJuIHI/TWUoRGF0ZS5VVEMoK3JbMV0sK3JbMl0tMSwrclszXSwrcls0XS0oK3JbOV18fDApKihyWzhdPT0iLSI/LTE6MSksK3JbNV0tKCtyWzEwXXx8MCkqKHJbOF09PSItIj8tMToxKSwrcls2XSwrKChyWzddfHwiMCIpKyIwMCIpLnN1YnN0cmluZygwLDMpKSxlPy5pbik6TWUoTmFOLGU/LmluKX12YXIgUVdzLFFHdD11KCgpPT57WmUoKTtpKFpHdCwicGFyc2VKU09OIik7UVdzPVpHdH0pO2Z1bmN0aW9uIG1vKHQsZSxyKXtsZXQgYT1lcCh0LHIpLWU7cmV0dXJuIGE8PTAmJihhKz03KSxycCh0LGEscil9dmFyIHJHcyxTND11KCgpPT57akMoKTtLQygpO2kobW8sInByZXZpb3VzRGF5Iik7ckdzPW1vfSk7ZnVuY3Rpb24gWEd0KHQsZSl7cmV0dXJuIG1vKHQsNSxlKX12YXIgbkdzLEpHdD11KCgpPT57UzQoKTtpKFhHdCwicHJldmlvdXNGcmlkYXkiKTtuR3M9WEd0fSk7ZnVuY3Rpb24gZVl0KHQsZSl7cmV0dXJuIG1vKHQsMSxlKX12YXIgZEdzLHRZdD11KCgpPT57UzQoKTtpKGVZdCwicHJldmlvdXNNb25kYXkiKTtkR3M9ZVl0fSk7ZnVuY3Rpb24gcll0KHQsZSl7cmV0dXJuIG1vKHQsNixlKX12YXIgaEdzLGFZdD11KCgpPT57UzQoKTtpKHJZdCwicHJldmlvdXNTYXR1cmRheSIpO2hHcz1yWXR9KTtmdW5jdGlvbiBpWXQodCxlKXtyZXR1cm4gbW8odCwwLGUpfXZhciB4R3Msc1l0PXUoKCk9PntTNCgpO2koaVl0LCJwcmV2aW91c1N1bmRheSIpO3hHcz1pWXR9KTtmdW5jdGlvbiBuWXQodCxlKXtyZXR1cm4gbW8odCw0LGUpfXZhciBrR3Msb1l0PXUoKCk9PntTNCgpO2kobll0LCJwcmV2aW91c1RodXJzZGF5Iik7a0dzPW5ZdH0pO2Z1bmN0aW9uIGxZdCh0LGUpe3JldHVybiBtbyh0LDIsZSl9dmFyIHpHcyxjWXQ9dSgoKT0+e1M0KCk7aShsWXQsInByZXZpb3VzVHVlc2RheSIpO3pHcz1sWXR9KTtmdW5jdGlvbiBkWXQodCxlKXtyZXR1cm4gbW8odCwzLGUpfXZhciBER3MsdVl0PXUoKCk9PntTNCgpO2koZFl0LCJwcmV2aW91c1dlZG5lc2RheSIpO0RHcz1kWXR9KTtmdW5jdGlvbiBwWXQodCl7cmV0dXJuIE1hdGgudHJ1bmModCpKMmUpfXZhciBJR3MsZll0PXUoKCk9PntTcigpO2kocFl0LCJxdWFydGVyc1RvTW9udGhzIik7SUdzPXBZdH0pO2Z1bmN0aW9uIGhZdCh0KXtsZXQgZT10L3RjZTtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgUkdzLG1ZdD11KCgpPT57U3IoKTtpKGhZdCwicXVhcnRlcnNUb1llYXJzIik7UkdzPWhZdH0pO2Z1bmN0aW9uIGdZdCh0LGUpe2xldCByPWU/Lm5lYXJlc3RUbz8/MTtpZihyPDF8fHI+MTIpcmV0dXJuIFdlKGU/LmlufHx0LE5hTik7bGV0IGE9TWUodCxlPy5pbikscz1hLmdldE1pbnV0ZXMoKS82MCxuPWEuZ2V0U2Vjb25kcygpLzYwLzYwLG89YS5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAvNjAsbD1hLmdldEhvdXJzKCkrcytuK28sYz1lPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIixmPXBvKGMpKGwvcikqcjtyZXR1cm4gYS5zZXRIb3VycyhmLDAsMCwwKSxhfXZhciBqR3MsYll0PXUoKCk9Pnt3NCgpO1V0KCk7WmUoKTtpKGdZdCwicm91bmRUb05lYXJlc3RIb3VycyIpO2pHcz1nWXR9KTtmdW5jdGlvbiB4WXQodCxlKXtsZXQgcj1lPy5uZWFyZXN0VG8/PzE7aWYocjwxfHxyPjMwKXJldHVybiBXZSh0LE5hTik7bGV0IGE9TWUodCxlPy5pbikscz1hLmdldFNlY29uZHMoKS82MCxuPWEuZ2V0TWlsbGlzZWNvbmRzKCkvMWUzLzYwLG89YS5nZXRNaW51dGVzKCkrcytuLGw9ZT8ucm91bmRpbmdNZXRob2Q/PyJyb3VuZCIsZD1wbyhsKShvL3IpKnI7cmV0dXJuIGEuc2V0TWludXRlcyhkLDAsMCksYX12YXIgWkdzLHZZdD11KCgpPT57dzQoKTtVdCgpO1plKCk7aSh4WXQsInJvdW5kVG9OZWFyZXN0TWludXRlcyIpO1pHcz14WXR9KTtmdW5jdGlvbiB5WXQodCl7bGV0IGU9dC9hNjtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgZVlzLHdZdD11KCgpPT57U3IoKTtpKHlZdCwic2Vjb25kc1RvSG91cnMiKTtlWXM9eVl0fSk7ZnVuY3Rpb24ga1l0KHQpe3JldHVybiB0KmF2fXZhciBpWXMsU1l0PXUoKCk9PntTcigpO2koa1l0LCJzZWNvbmRzVG9NaWxsaXNlY29uZHMiKTtpWXM9a1l0fSk7ZnVuY3Rpb24gTVl0KHQpe2xldCBlPXQvc3Y7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIGxZcyxDWXQ9dSgoKT0+e1NyKCk7aShNWXQsInNlY29uZHNUb01pbnV0ZXMiKTtsWXM9TVl0fSk7ZnVuY3Rpb24genYodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pLHM9YS5nZXRGdWxsWWVhcigpLG49YS5nZXREYXRlKCksbz1XZShyPy5pbnx8dCwwKTtvLnNldEZ1bGxZZWFyKHMsZSwxNSksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1VY2Uobyk7cmV0dXJuIGEuc2V0TW9udGgoZSxNYXRoLm1pbihuLGwpKSxhfXZhciBoWXMsSzBlPXUoKCk9PntVdCgpO1R6ZSgpO1plKCk7aSh6diwic2V0TW9udGgiKTtoWXM9enZ9KTtmdW5jdGlvbiB6WXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBpc05hTigrYSk/V2Uocj8uaW58fHQsTmFOKTooZS55ZWFyIT1udWxsJiZhLnNldEZ1bGxZZWFyKGUueWVhciksZS5tb250aCE9bnVsbCYmKGE9enYoYSxlLm1vbnRoKSksZS5kYXRlIT1udWxsJiZhLnNldERhdGUoZS5kYXRlKSxlLmhvdXJzIT1udWxsJiZhLnNldEhvdXJzKGUuaG91cnMpLGUubWludXRlcyE9bnVsbCYmYS5zZXRNaW51dGVzKGUubWludXRlcyksZS5zZWNvbmRzIT1udWxsJiZhLnNldFNlY29uZHMoZS5zZWNvbmRzKSxlLm1pbGxpc2Vjb25kcyE9bnVsbCYmYS5zZXRNaWxsaXNlY29uZHMoZS5taWxsaXNlY29uZHMpLGEpfXZhciB5WXMsX1l0PXUoKCk9PntVdCgpO0swZSgpO1plKCk7aSh6WXQsInNldCIpO3lZcz16WXR9KTtmdW5jdGlvbiBUWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldERhdGUoZSksYX12YXIgTVlzLExZdD11KCgpPT57WmUoKTtpKFRZdCwic2V0RGF0ZSIpO01Zcz1UWXR9KTtmdW5jdGlvbiBEWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldE1vbnRoKDApLGEuc2V0RGF0ZShlKSxhfXZhciBUWXMsJFl0PXUoKCk9PntaZSgpO2koRFl0LCJzZXREYXlPZlllYXIiKTtUWXM9RFl0fSk7ZnVuY3Rpb24gQVl0KHQpe2xldCBlPXt9LHI9QWEoKTtmb3IobGV0IGEgaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixhKSYmKGVbYV09clthXSk7Zm9yKGxldCBhIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsYSkmJih0W2FdPT09dm9pZCAwP2RlbGV0ZSBlW2FdOmVbYV09dFthXSk7WXF0KGUpfXZhciBBWXMsRVl0PXUoKCk9PntjbygpO2koQVl0LCJzZXREZWZhdWx0T3B0aW9ucyIpO0FZcz1BWXR9KTtmdW5jdGlvbiBJWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldEhvdXJzKGUpLGF9dmFyIE5ZcyxQWXQ9dSgoKT0+e1plKCk7aShJWXQsInNldEhvdXJzIik7TllzPUlZdH0pO2Z1bmN0aW9uIE5ZdCh0LGUscil7bGV0IGE9TWUodCxyPy5pbik7cmV0dXJuIGEuc2V0TWlsbGlzZWNvbmRzKGUpLGF9dmFyIEJZcyxPWXQ9dSgoKT0+e1plKCk7aShOWXQsInNldE1pbGxpc2Vjb25kcyIpO0JZcz1OWXR9KTtmdW5jdGlvbiBSWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldE1pbnV0ZXMoZSksYX12YXIgallzLEZZdD11KCgpPT57WmUoKTtpKFJZdCwic2V0TWludXRlcyIpO2pZcz1SWXR9KTtmdW5jdGlvbiBCWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pLHM9TWF0aC50cnVuYyhhLmdldE1vbnRoKCkvMykrMSxuPWUtcztyZXR1cm4genYoYSxhLmdldE1vbnRoKCkrbiozKX12YXIgS1lzLEhZdD11KCgpPT57SzBlKCk7WmUoKTtpKEJZdCwic2V0UXVhcnRlciIpO0tZcz1CWXR9KTtmdW5jdGlvbiBxWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBhLnNldFNlY29uZHMoZSksYX12YXIgSllzLFZZdD11KCgpPT57WmUoKTtpKHFZdCwic2V0U2Vjb25kcyIpO0pZcz1xWXR9KTtmdW5jdGlvbiBqWXQodCxlLHIpe2xldCBhPUFhKCkscz1yPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3I/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPW1uKE1lKHQscj8uaW4pLGQ2KHQsciksciksbz1XZShyPy5pbnx8dCwwKTtvLnNldEZ1bGxZZWFyKGUsMCxzKSxvLnNldEhvdXJzKDAsMCwwLDApO2xldCBsPWQ2KG8scik7cmV0dXJuIGwuc2V0RGF0ZShsLmdldERhdGUoKStuKSxsfXZhciBvS3MsVVl0PXUoKCk9PntjbygpO1V0KCk7djQoKTtSY2UoKTtaZSgpO2koall0LCJzZXRXZWVrWWVhciIpO29Lcz1qWXR9KTtmdW5jdGlvbiBXWXQodCxlLHIpe2xldCBhPU1lKHQscj8uaW4pO3JldHVybiBpc05hTigrYSk/V2Uocj8uaW58fHQsTmFOKTooYS5zZXRGdWxsWWVhcihlKSxhKX12YXIgcEtzLEdZdD11KCgpPT57VXQoKTtaZSgpO2koV1l0LCJzZXRZZWFyIik7cEtzPVdZdH0pO2Z1bmN0aW9uIFlZdCh0LGUpe2xldCByPU1lKHQsZT8uaW4pLGE9ci5nZXRGdWxsWWVhcigpLHM9TWF0aC5mbG9vcihhLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihzLDAsMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBnS3MsS1l0PXUoKCk9PntaZSgpO2koWVl0LCJzdGFydE9mRGVjYWRlIik7Z0tzPVlZdH0pO2Z1bmN0aW9uIFpZdCh0KXtyZXR1cm4gTjAoRGF0ZS5ub3coKSx0KX12YXIgeUtzLFFZdD11KCgpPT57SUMoKTtpKFpZdCwic3RhcnRPZlRvZGF5Iik7eUtzPVpZdH0pO2Z1bmN0aW9uIFhZdCh0KXtsZXQgZT1Gcih0Py5pbikscj1lLmdldEZ1bGxZZWFyKCksYT1lLmdldE1vbnRoKCkscz1lLmdldERhdGUoKSxuPVdlKHQ/LmluLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKHIsYSxzKzEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgQ0tzLEpZdD11KCgpPT57VXQoKTtLcygpO2koWFl0LCJzdGFydE9mVG9tb3Jyb3ciKTtDS3M9WFl0fSk7ZnVuY3Rpb24gZUt0KHQpe2xldCBlPUZyKHQ/LmluKSxyPWUuZ2V0RnVsbFllYXIoKSxhPWUuZ2V0TW9udGgoKSxzPWUuZ2V0RGF0ZSgpLG49RnIodD8uaW4pO3JldHVybiBuLnNldEZ1bGxZZWFyKHIsYSxzLTEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgTEtzLHRLdD11KCgpPT57S3MoKTtpKGVLdCwic3RhcnRPZlllc3RlcmRheSIpO0xLcz1lS3R9KTtmdW5jdGlvbiBaMGUodCxlLHIpe3JldHVybiBFMCh0LC1lLHIpfXZhciBFS3MsUXplPXUoKCk9PntudigpO2koWjBlLCJzdWJNb250aHMiKTtFS3M9WjBlfSk7ZnVuY3Rpb24gckt0KHQsZSxyKXtsZXR7eWVhcnM6YT0wLG1vbnRoczpzPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOmw9MCxtaW51dGVzOmM9MCxzZWNvbmRzOmQ9MH09ZSxmPVowZSh0LHMrYSoxMixyKSxwPXJwKGYsbytuKjcsciksaD1jK2wqNjAsdj0oZCtoKjYwKSoxZTM7cmV0dXJuIFdlKHI/LmlufHx0LCtwLXYpfXZhciBGS3MsYUt0PXUoKCk9PntVdCgpO0tDKCk7UXplKCk7aShyS3QsInN1YiIpO0ZLcz1yS3R9KTtmdW5jdGlvbiBpS3QodCxlLHIpe3JldHVybiBpY2UodCwtZSxyKX12YXIgVktzLHNLdD11KCgpPT57dHplKCk7aShpS3QsInN1YkJ1c2luZXNzRGF5cyIpO1ZLcz1pS3R9KTtmdW5jdGlvbiBuS3QodCxlLHIpe3JldHVybiBzY2UodCwtZSxyKX12YXIgR0tzLG9LdD11KCgpPT57cnplKCk7aShuS3QsInN1YkhvdXJzIik7R0tzPW5LdH0pO2Z1bmN0aW9uIGxLdCh0LGUscil7cmV0dXJuIFd1KHQsLWUscil9dmFyIFFLcyxjS3Q9dSgoKT0+e0VDKCk7aShsS3QsInN1Yk1pbGxpc2Vjb25kcyIpO1FLcz1sS3R9KTtmdW5jdGlvbiBkS3QodCxlLHIpe3JldHVybiBsdih0LC1lLHIpfXZhciB0WnMsdUt0PXUoKCk9PntsY2UoKTtpKGRLdCwic3ViTWludXRlcyIpO3Racz1kS3R9KTtmdW5jdGlvbiBwS3QodCxlLHIpe3JldHVybiBjdih0LC1lLHIpfXZhciBzWnMsZkt0PXUoKCk9PntjY2UoKTtpKHBLdCwic3ViUXVhcnRlcnMiKTtzWnM9cEt0fSk7ZnVuY3Rpb24gaEt0KHQsZSxyKXtyZXR1cm4gZGNlKHQsLWUscil9dmFyIGNacyxtS3Q9dSgoKT0+e3N6ZSgpO2koaEt0LCJzdWJTZWNvbmRzIik7Y1pzPWhLdH0pO2Z1bmN0aW9uIGdLdCh0LGUscil7cmV0dXJuIFl1KHQsLWUscil9dmFyIGZacyxiS3Q9dSgoKT0+e1BDKCk7aShnS3QsInN1YldlZWtzIik7ZlpzPWdLdH0pO2Z1bmN0aW9uIHhLdCh0LGUscil7cmV0dXJuIHVjZSh0LC1lLHIpfXZhciBiWnMsdkt0PXUoKCk9PntuemUoKTtpKHhLdCwic3ViWWVhcnMiKTtiWnM9eEt0fSk7ZnVuY3Rpb24geUt0KHQpe3JldHVybiBNYXRoLnRydW5jKHQqNyl9dmFyIHdacyx3S3Q9dSgoKT0+e1NyKCk7aSh5S3QsIndlZWtzVG9EYXlzIik7d1pzPXlLdH0pO2Z1bmN0aW9uIGtLdCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KjM2NS4yNDI1KX12YXIgQ1pzLFNLdD11KCgpPT57U3IoKTtpKGtLdCwieWVhcnNUb0RheXMiKTtDWnM9a0t0fSk7ZnVuY3Rpb24gTUt0KHQpe3JldHVybiBNYXRoLnRydW5jKHQqZWNlKX12YXIgTFpzLENLdD11KCgpPT57U3IoKTtpKE1LdCwieWVhcnNUb01vbnRocyIpO0xacz1NS3R9KTtmdW5jdGlvbiB6S3QodCl7cmV0dXJuIE1hdGgudHJ1bmModCp0Y2UpfXZhciBFWnMsX0t0PXUoKCk9PntTcigpO2koekt0LCJ5ZWFyc1RvUXVhcnRlcnMiKTtFWnM9ekt0fSk7dmFyIFFDPXt9O1ZlKFFDLHthZGQ6KCk9PlV1LGFkZEJ1c2luZXNzRGF5czooKT0+aWNlLGFkZERheXM6KCk9PllzLGFkZEhvdXJzOigpPT5zY2UsYWRkSVNPV2Vla1llYXJzOigpPT5vY2UsYWRkTWlsbGlzZWNvbmRzOigpPT5XdSxhZGRNaW51dGVzOigpPT5sdixhZGRNb250aHM6KCk9PkUwLGFkZFF1YXJ0ZXJzOigpPT5jdixhZGRTZWNvbmRzOigpPT5kY2UsYWRkV2Vla3M6KCk9Pll1LGFkZFllYXJzOigpPT51Y2UsYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmc6KCk9PktxdCxjbGFtcDooKT0+UXF0LGNsb3Nlc3RJbmRleFRvOigpPT5oY2UsY2xvc2VzdFRvOigpPT5KcXQsY29tcGFyZUFzYzooKT0+dW8sY29tcGFyZURlc2M6KCk9PnRWdCxjb25zdHJ1Y3RGcm9tOigpPT5XZSxjb25zdHJ1Y3ROb3c6KCk9PkZyLGRheXNUb1dlZWtzOigpPT5hVnQsZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzOigpPT5zVnQsZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzOigpPT5tbixkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFyczooKT0+Z2NlLGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3M6KCk9Pm9WdCxkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRoczooKT0+czYsZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVyczooKT0+dXYsZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrczooKT0+bjYsZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFyczooKT0+S3UsZGlmZmVyZW5jZUluRGF5czooKT0+cHYsZGlmZmVyZW5jZUluSG91cnM6KCk9Pm82LGRpZmZlcmVuY2VJbklTT1dlZWtZZWFyczooKT0+ZFZ0LGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kczooKT0+ZnYsZGlmZmVyZW5jZUluTWludXRlczooKT0+bDYsZGlmZmVyZW5jZUluTW9udGhzOigpPT5adSxkaWZmZXJlbmNlSW5RdWFydGVyczooKT0+cFZ0LGRpZmZlcmVuY2VJblNlY29uZHM6KCk9PlIwLGRpZmZlcmVuY2VJbldlZWtzOigpPT5oVnQsZGlmZmVyZW5jZUluWWVhcnM6KCk9PlRjZSxlYWNoRGF5T2ZJbnRlcnZhbDooKT0+TGNlLGVhY2hIb3VyT2ZJbnRlcnZhbDooKT0+Z1Z0LGVhY2hNaW51dGVPZkludGVydmFsOigpPT54VnQsZWFjaE1vbnRoT2ZJbnRlcnZhbDooKT0+eVZ0LGVhY2hRdWFydGVyT2ZJbnRlcnZhbDooKT0+a1Z0LGVhY2hXZWVrT2ZJbnRlcnZhbDooKT0+TVZ0LGVhY2hXZWVrZW5kT2ZJbnRlcnZhbDooKT0+Z3YsZWFjaFdlZWtlbmRPZk1vbnRoOigpPT56VnQsZWFjaFdlZWtlbmRPZlllYXI6KCk9PlRWdCxlYWNoWWVhck9mSW50ZXJ2YWw6KCk9PkRWdCxlbmRPZkRheTooKT0+aHYsZW5kT2ZEZWNhZGU6KCk9PkFWdCxlbmRPZkhvdXI6KCk9PklWdCxlbmRPZklTT1dlZWs6KCk9Pk5WdCxlbmRPZklTT1dlZWtZZWFyOigpPT5SVnQsZW5kT2ZNaW51dGU6KCk9PkJWdCxlbmRPZk1vbnRoOigpPT5tdixlbmRPZlF1YXJ0ZXI6KCk9PnFWdCxlbmRPZlNlY29uZDooKT0+alZ0LGVuZE9mVG9kYXk6KCk9PldWdCxlbmRPZlRvbW9ycm93OigpPT5ZVnQsZW5kT2ZXZWVrOigpPT5JY2UsZW5kT2ZZZWFyOigpPT5BY2UsZW5kT2ZZZXN0ZXJkYXk6KCk9PlpWdCxmb3JtYXQ6KCk9PlZDLGZvcm1hdERhdGU6KCk9PlZDLGZvcm1hdERpc3RhbmNlOigpPT5xY2UsZm9ybWF0RGlzdGFuY2VTdHJpY3Q6KCk9PlZjZSxmb3JtYXREaXN0YW5jZVRvTm93OigpPT52anQsZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdDooKT0+d2p0LGZvcm1hdER1cmF0aW9uOigpPT5TanQsZm9ybWF0SVNPOigpPT5DanQsZm9ybWF0SVNPOTA3NTooKT0+X2p0LGZvcm1hdElTT0R1cmF0aW9uOigpPT5ManQsZm9ybWF0UkZDMzMzOTooKT0+JGp0LGZvcm1hdFJGQzcyMzE6KCk9PkVqdCxmb3JtYXRSZWxhdGl2ZTooKT0+UGp0LGZvcm1hdHRlcnM6KCk9PkhDLGZyb21Vbml4VGltZTooKT0+T2p0LGdldERhdGU6KCk9PmpjZSxnZXREYXk6KCk9PmVwLGdldERheU9mWWVhcjooKT0+TmNlLGdldERheXNJbk1vbnRoOigpPT5VY2UsZ2V0RGF5c0luWWVhcjooKT0+Rmp0LGdldERlY2FkZTooKT0+SGp0LGdldERlZmF1bHRPcHRpb25zOigpPT5HY2UsZ2V0SG91cnM6KCk9PlZqdCxnZXRJU09EYXk6KCk9PlljZSxnZXRJU09XZWVrOigpPT55dixnZXRJU09XZWVrWWVhcjooKT0+Rm8sZ2V0SVNPV2Vla3NJblllYXI6KCk9PlVqdCxnZXRNaWxsaXNlY29uZHM6KCk9PkdqdCxnZXRNaW51dGVzOigpPT5LanQsZ2V0TW9udGg6KCk9PlFqdCxnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFsczooKT0+Smp0LGdldFF1YXJ0ZXI6KCk9Pk5DLGdldFNlY29uZHM6KCk9PnRVdCxnZXRUaW1lOigpPT5hVXQsZ2V0VW5peFRpbWU6KCk9PnNVdCxnZXRXZWVrOigpPT53dixnZXRXZWVrT2ZNb250aDooKT0+b1V0LGdldFdlZWtZZWFyOigpPT5YdSxnZXRXZWVrc0luTW9udGg6KCk9PmNVdCxnZXRZZWFyOigpPT51VXQsaG91cnNUb01pbGxpc2Vjb25kczooKT0+ZlV0LGhvdXJzVG9NaW51dGVzOigpPT5tVXQsaG91cnNUb1NlY29uZHM6KCk9PmJVdCxpbnRlcnZhbDooKT0+dlV0LGludGVydmFsVG9EdXJhdGlvbjooKT0+d1V0LGludGxGb3JtYXQ6KCk9PlNVdCxpbnRsRm9ybWF0RGlzdGFuY2U6KCk9PkNVdCxpc0FmdGVyOigpPT5fVXQsaXNCZWZvcmU6KCk9PkxVdCxpc0RhdGU6KCk9Pm1jZSxpc0VxdWFsOigpPT4kVXQsaXNFeGlzdHM6KCk9PkVVdCxpc0ZpcnN0RGF5T2ZNb250aDooKT0+UFV0LGlzRnJpZGF5OigpPT5PVXQsaXNGdXR1cmU6KCk9PkZVdCxpc0xhc3REYXlPZk1vbnRoOigpPT5fY2UsaXNMZWFwWWVhcjooKT0+V2NlLGlzTWF0Y2g6KCk9PnZXdCxpc01vbmRheTooKT0+d1d0LGlzUGFzdDooKT0+U1d0LGlzU2FtZURheTooKT0+TzAsaXNTYW1lSG91cjooKT0+RjBlLGlzU2FtZUlTT1dlZWs6KCk9PkgwZSxpc1NhbWVJU09XZWVrWWVhcjooKT0+Q1d0LGlzU2FtZU1pbnV0ZTooKT0+cTBlLGlzU2FtZU1vbnRoOigpPT5WMGUsaXNTYW1lUXVhcnRlcjooKT0+ajBlLGlzU2FtZVNlY29uZDooKT0+VTBlLGlzU2FtZVdlZWs6KCk9PkN2LGlzU2FtZVllYXI6KCk9PlcwZSxpc1NhdHVyZGF5OigpPT5yY2UsaXNTdW5kYXk6KCk9PmFjZSxpc1RoaXNIb3VyOigpPT5fV3QsaXNUaGlzSVNPV2VlazooKT0+TFd0LGlzVGhpc01pbnV0ZTooKT0+JFd0LGlzVGhpc01vbnRoOigpPT5FV3QsaXNUaGlzUXVhcnRlcjooKT0+UFd0LGlzVGhpc1NlY29uZDooKT0+T1d0LGlzVGhpc1dlZWs6KCk9PkZXdCxpc1RoaXNZZWFyOigpPT5IV3QsaXNUaHVyc2RheTooKT0+Vld0LGlzVG9kYXk6KCk9PlVXdCxpc1RvbW9ycm93OigpPT5HV3QsaXNUdWVzZGF5OigpPT5LV3QsaXNWYWxpZDooKT0+TG4saXNXZWRuZXNkYXk6KCk9PlFXdCxpc1dlZWtlbmQ6KCk9PkkwLGlzV2l0aGluSW50ZXJ2YWw6KCk9PkpXdCxpc1llc3RlcmRheTooKT0+dEd0LGxhc3REYXlPZkRlY2FkZTooKT0+YUd0LGxhc3REYXlPZklTT1dlZWs6KCk9PnNHdCxsYXN0RGF5T2ZJU09XZWVrWWVhcjooKT0+b0d0LGxhc3REYXlPZk1vbnRoOigpPT5LY2UsbGFzdERheU9mUXVhcnRlcjooKT0+Y0d0LGxhc3REYXlPZldlZWs6KCk9PkcwZSxsYXN0RGF5T2ZZZWFyOigpPT51R3QsbGlnaHRGb3JtYXQ6KCk9PmZHdCxsaWdodEZvcm1hdHRlcnM6KCk9PkoxLGxvbmdGb3JtYXR0ZXJzOigpPT5KdSxtYXg6KCk9PnBjZSxtaWxsaXNlY29uZHM6KCk9Pm1HdCxtaWxsaXNlY29uZHNUb0hvdXJzOigpPT5iR3QsbWlsbGlzZWNvbmRzVG9NaW51dGVzOigpPT52R3QsbWlsbGlzZWNvbmRzVG9TZWNvbmRzOigpPT53R3QsbWluOigpPT5mY2UsbWludXRlc1RvSG91cnM6KCk9PlNHdCxtaW51dGVzVG9NaWxsaXNlY29uZHM6KCk9PkNHdCxtaW51dGVzVG9TZWNvbmRzOigpPT5fR3QsbW9udGhzVG9RdWFydGVyczooKT0+TEd0LG1vbnRoc1RvWWVhcnM6KCk9PiRHdCxuZXh0RGF5OigpPT5obyxuZXh0RnJpZGF5OigpPT5FR3QsbmV4dE1vbmRheTooKT0+UEd0LG5leHRTYXR1cmRheTooKT0+T0d0LG5leHRTdW5kYXk6KCk9PkZHdCxuZXh0VGh1cnNkYXk6KCk9PkhHdCxuZXh0VHVlc2RheTooKT0+Vkd0LG5leHRXZWRuZXNkYXk6KCk9PlVHdCxwYXJzZTooKT0+UjBlLHBhcnNlSVNPOigpPT5ZR3QscGFyc2VKU09OOigpPT5aR3QscGFyc2VyczooKT0+TzBlLHByZXZpb3VzRGF5OigpPT5tbyxwcmV2aW91c0ZyaWRheTooKT0+WEd0LHByZXZpb3VzTW9uZGF5OigpPT5lWXQscHJldmlvdXNTYXR1cmRheTooKT0+cll0LHByZXZpb3VzU3VuZGF5OigpPT5pWXQscHJldmlvdXNUaHVyc2RheTooKT0+bll0LHByZXZpb3VzVHVlc2RheTooKT0+bFl0LHByZXZpb3VzV2VkbmVzZGF5OigpPT5kWXQscXVhcnRlcnNUb01vbnRoczooKT0+cFl0LHF1YXJ0ZXJzVG9ZZWFyczooKT0+aFl0LHJvdW5kVG9OZWFyZXN0SG91cnM6KCk9PmdZdCxyb3VuZFRvTmVhcmVzdE1pbnV0ZXM6KCk9PnhZdCxzZWNvbmRzVG9Ib3VyczooKT0+eVl0LHNlY29uZHNUb01pbGxpc2Vjb25kczooKT0+a1l0LHNlY29uZHNUb01pbnV0ZXM6KCk9Pk1ZdCxzZXQ6KCk9PnpZdCxzZXREYXRlOigpPT5UWXQsc2V0RGF5OigpPT50cCxzZXREYXlPZlllYXI6KCk9PkRZdCxzZXREZWZhdWx0T3B0aW9uczooKT0+QVl0LHNldEhvdXJzOigpPT5JWXQsc2V0SVNPRGF5OigpPT53MGUsc2V0SVNPV2VlazooKT0+aDBlLHNldElTT1dlZWtZZWFyOigpPT5uY2Usc2V0TWlsbGlzZWNvbmRzOigpPT5OWXQsc2V0TWludXRlczooKT0+Ull0LHNldE1vbnRoOigpPT56dixzZXRRdWFydGVyOigpPT5CWXQsc2V0U2Vjb25kczooKT0+cVl0LHNldFdlZWs6KCk9PnAwZSxzZXRXZWVrWWVhcjooKT0+all0LHNldFllYXI6KCk9PldZdCxzdGFydE9mRGF5OigpPT5OMCxzdGFydE9mRGVjYWRlOigpPT5ZWXQsc3RhcnRPZkhvdXI6KCk9PldDLHN0YXJ0T2ZJU09XZWVrOigpPT5TcyxzdGFydE9mSVNPV2Vla1llYXI6KCk9PlgxLHN0YXJ0T2ZNaW51dGU6KCk9PkdDLHN0YXJ0T2ZNb250aDooKT0+UXUsc3RhcnRPZlF1YXJ0ZXI6KCk9PkIwLHN0YXJ0T2ZTZWNvbmQ6KCk9PllDLHN0YXJ0T2ZUb2RheTooKT0+Wll0LHN0YXJ0T2ZUb21vcnJvdzooKT0+WFl0LHN0YXJ0T2ZXZWVrOigpPT5LYSxzdGFydE9mV2Vla1llYXI6KCk9PmQ2LHN0YXJ0T2ZZZWFyOigpPT5idixzdGFydE9mWWVzdGVyZGF5OigpPT5lS3Qsc3ViOigpPT5yS3Qsc3ViQnVzaW5lc3NEYXlzOigpPT5pS3Qsc3ViRGF5czooKT0+cnAsc3ViSG91cnM6KCk9Pm5LdCxzdWJJU09XZWVrWWVhcnM6KCk9PmtjZSxzdWJNaWxsaXNlY29uZHM6KCk9PmxLdCxzdWJNaW51dGVzOigpPT5kS3Qsc3ViTW9udGhzOigpPT5aMGUsc3ViUXVhcnRlcnM6KCk9PnBLdCxzdWJTZWNvbmRzOigpPT5oS3Qsc3ViV2Vla3M6KCk9PmdLdCxzdWJZZWFyczooKT0+eEt0LHRvRGF0ZTooKT0+TWUsdHJhbnNwb3NlOigpPT5aY2Usd2Vla3NUb0RheXM6KCk9PnlLdCx5ZWFyc1RvRGF5czooKT0+a0t0LHllYXJzVG9Nb250aHM6KCk9Pk1LdCx5ZWFyc1RvUXVhcnRlcnM6KCk9PnpLdH0pO3ZhciBUS3Q9dSgoKT0+e1hDZSgpO3R6ZSgpO0EwKCk7cnplKCk7aXplKCk7RUMoKTtsY2UoKTtudigpO2NjZSgpO3N6ZSgpO1BDKCk7bnplKCk7WnF0KCk7WHF0KCk7Y3plKCk7ZVZ0KCk7aTYoKTtyVnQoKTtVdCgpO0tzKCk7aVZ0KCk7blZ0KCk7djQoKTt1emUoKTtsVnQoKTtiY2UoKTtmemUoKTt4Y2UoKTt2Y2UoKTt5Y2UoKTt3Y2UoKTt1VnQoKTtTY2UoKTtNY2UoKTtPQygpO2ZWdCgpO1JDKCk7bVZ0KCk7Z3plKCk7YnplKCk7YlZ0KCk7dlZ0KCk7d1Z0KCk7U1Z0KCk7Q1Z0KCk7JGNlKCk7X1Z0KCk7TFZ0KCk7JFZ0KCk7Q2NlKCk7RVZ0KCk7UFZ0KCk7T1Z0KCk7RlZ0KCk7SFZ0KCk7emNlKCk7VlZ0KCk7VVZ0KCk7R1Z0KCk7S1Z0KCk7dnplKCk7eHplKCk7UVZ0KCk7TXplKCk7Q3plKCk7enplKCk7eWp0KCk7a2p0KCk7TWp0KCk7emp0KCk7VGp0KCk7RGp0KCk7QWp0KCk7SWp0KCk7Tmp0KCk7Ump0KCk7X3plKCk7akMoKTt5emUoKTtUemUoKTtCanQoKTtxanQoKTtEemUoKTtqanQoKTskemUoKTtPY2UoKTtHdSgpO1dqdCgpO1lqdCgpO1pqdCgpO1hqdCgpO2VVdCgpO3B6ZSgpO3JVdCgpO2lVdCgpO25VdCgpO0ZjZSgpO2xVdCgpO0JDKCk7ZFV0KCk7cFV0KCk7aFV0KCk7Z1V0KCk7eFV0KCk7eVV0KCk7a1V0KCk7TVV0KCk7elV0KCk7VFV0KCk7RFV0KCk7ZHplKCk7QVV0KCk7SVV0KCk7TlV0KCk7UlV0KCk7QlV0KCk7bXplKCk7THplKCk7eVd0KCk7a1d0KCk7TVd0KCk7ZHYoKTtCemUoKTtIemUoKTt6V3QoKTtWemUoKTtqemUoKTtVemUoKTtHemUoKTtCMGUoKTtZemUoKTtKQ2UoKTtlemUoKTtUV3QoKTtEV3QoKTtBV3QoKTtJV3QoKTtOV3QoKTtSV3QoKTtCV3QoKTtxV3QoKTtqV3QoKTtXV3QoKTtZV3QoKTtaV3QoKTt5NCgpO1hXdCgpO0FDKCk7ZUd0KCk7ckd0KCk7aUd0KCk7bkd0KCk7bEd0KCk7QXplKCk7ZEd0KCk7S3plKCk7cEd0KCk7aEd0KCk7b3plKCk7Z0d0KCk7eEd0KCk7eUd0KCk7a0d0KCk7bHplKCk7TUd0KCk7ekd0KCk7VEd0KCk7REd0KCk7QUd0KCk7azQoKTtJR3QoKTtOR3QoKTtSR3QoKTtCR3QoKTtxR3QoKTtqR3QoKTtXR3QoKTtSemUoKTtLR3QoKTtRR3QoKTtTNCgpO0pHdCgpO3RZdCgpO2FZdCgpO3NZdCgpO29ZdCgpO2NZdCgpO3VZdCgpO2ZZdCgpO21ZdCgpO2JZdCgpO3ZZdCgpO3dZdCgpO1NZdCgpO0NZdCgpO19ZdCgpO0xZdCgpO1VDKCk7JFl0KCk7RVl0KCk7UFl0KCk7T3plKCk7TnplKCk7YXplKCk7T1l0KCk7Rll0KCk7SzBlKCk7SFl0KCk7Vll0KCk7UHplKCk7VVl0KCk7R1l0KCk7SUMoKTtLWXQoKTtGemUoKTtQMCgpO292KCk7cXplKCk7RkMoKTtEY2UoKTtXemUoKTtRWXQoKTtKWXQoKTtHMigpO1JjZSgpO0VjZSgpO3RLdCgpO2FLdCgpO3NLdCgpO0tDKCk7b0t0KCk7aHplKCk7Y0t0KCk7dUt0KCk7UXplKCk7Zkt0KCk7bUt0KCk7Ykt0KCk7dkt0KCk7WmUoKTtFemUoKTt3S3QoKTtTS3QoKTtDS3QoKTtfS3QoKX0pO3ZhciBMS3Q9TnQoKFh6ZSxKemUpPT57KGZ1bmN0aW9uKHQsZSl7dHlwZW9mIFh6ZT09Im9iamVjdCImJnR5cGVvZiBKemU8InUiP0p6ZS5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShlKToodD10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0fHxzZWxmKS5kYXlqcz1lKCl9KShYemUsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PTFlMyxlPTZlNCxyPTM2ZTUsYT0ibWlsbGlzZWNvbmQiLHM9InNlY29uZCIsbj0ibWludXRlIixvPSJob3VyIixsPSJkYXkiLGM9IndlZWsiLGQ9Im1vbnRoIixmPSJxdWFydGVyIixwPSJ5ZWFyIixoPSJkYXRlIixtPSJJbnZhbGlkIERhdGUiLHY9L14oXGR7NH0pWy0vXT8oXGR7MSwyfSk/Wy0vXT8oXGR7MCwyfSlbVHRcc10qKFxkezEsMn0pPzo/KFxkezEsMn0pPzo/KFxkezEsMn0pP1suOl0/KFxkKyk/JC8sYj0vXFsoW15cXV0rKV18WXsxLDR9fE17MSw0fXxEezEsMn18ZHsxLDR9fEh7MSwyfXxoezEsMn18YXxBfG17MSwyfXxzezEsMn18WnsxLDJ9fFNTUy9nLGc9e25hbWU6ImVuIix3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksbW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG9yZGluYWw6aShmdW5jdGlvbih6KXt2YXIgQT1bInRoIiwic3QiLCJuZCIsInJkIl0sJD16JTEwMDtyZXR1cm4iWyIreisoQVsoJC0yMCklMTBdfHxBWyRdfHxBWzBdKSsiXSJ9LCJvcmRpbmFsIil9LHk9aShmdW5jdGlvbih6LEEsJCl7dmFyIEY9U3RyaW5nKHopO3JldHVybiFGfHxGLmxlbmd0aD49QT96OiIiK0FycmF5KEErMS1GLmxlbmd0aCkuam9pbigkKSt6fSwibSIpLGs9e3M6eSx6OmkoZnVuY3Rpb24oeil7dmFyIEE9LXoudXRjT2Zmc2V0KCksJD1NYXRoLmFicyhBKSxGPU1hdGguZmxvb3IoJC82MCksWT0kJTYwO3JldHVybihBPD0wPyIrIjoiLSIpK3koRiwyLCIwIikrIjoiK3koWSwyLCIwIil9LCJ6IiksbTppKGZ1bmN0aW9uIHooQSwkKXtpZihBLmRhdGUoKTwkLmRhdGUoKSlyZXR1cm4teigkLEEpO3ZhciBGPTEyKigkLnllYXIoKS1BLnllYXIoKSkrKCQubW9udGgoKS1BLm1vbnRoKCkpLFk9QS5jbG9uZSgpLmFkZChGLGQpLEc9JC1ZPDAsWj1BLmNsb25lKCkuYWRkKEYrKEc/LTE6MSksZCk7cmV0dXJuKygtKEYrKCQtWSkvKEc/WS1aOlotWSkpfHwwKX0sInQiKSxhOmkoZnVuY3Rpb24oeil7cmV0dXJuIHo8MD9NYXRoLmNlaWwoeil8fDA6TWF0aC5mbG9vcih6KX0sImEiKSxwOmkoZnVuY3Rpb24oeil7cmV0dXJue006ZCx5OnAsdzpjLGQ6bCxEOmgsaDpvLG06bixzLG1zOmEsUTpmfVt6XXx8U3RyaW5nKHp8fCIiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLywiIil9LCJwIiksdTppKGZ1bmN0aW9uKHope3JldHVybiB6PT09dm9pZCAwfSwidSIpfSxNPSJlbiIsTj17fTtOW01dPWc7dmFyIF89IiRpc0RheWpzT2JqZWN0IixTPWkoZnVuY3Rpb24oeil7cmV0dXJuIHogaW5zdGFuY2VvZiBCfHwhKCF6fHwheltfXSl9LCJTIiksTz1pKGZ1bmN0aW9uIHooQSwkLEYpe3ZhciBZO2lmKCFBKXJldHVybiBNO2lmKHR5cGVvZiBBPT0ic3RyaW5nIil7dmFyIEc9QS50b0xvd2VyQ2FzZSgpO05bR10mJihZPUcpLCQmJihOW0ddPSQsWT1HKTt2YXIgWj1BLnNwbGl0KCItIik7aWYoIVkmJloubGVuZ3RoPjEpcmV0dXJuIHooWlswXSl9ZWxzZXt2YXIgZGU9QS5uYW1lO05bZGVdPUEsWT1kZX1yZXR1cm4hRiYmWSYmKE09WSksWXx8IUYmJk19LCJ0IiksTD1pKGZ1bmN0aW9uKHosQSl7aWYoUyh6KSlyZXR1cm4gei5jbG9uZSgpO3ZhciAkPXR5cGVvZiBBPT0ib2JqZWN0Ij9BOnt9O3JldHVybiAkLmRhdGU9eiwkLmFyZ3M9YXJndW1lbnRzLG5ldyBCKCQpfSwiTyIpLEU9aztFLmw9TyxFLmk9UyxFLnc9ZnVuY3Rpb24oeixBKXtyZXR1cm4gTCh6LHtsb2NhbGU6QS4kTCx1dGM6QS4kdSx4OkEuJHgsJG9mZnNldDpBLiRvZmZzZXR9KX07dmFyIEI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24geigkKXt0aGlzLiRMPU8oJC5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZSgkKSx0aGlzLiR4PXRoaXMuJHh8fCQueHx8e30sdGhpc1tfXT0hMH1pKHosIk0iKTt2YXIgQT16LnByb3RvdHlwZTtyZXR1cm4gQS5wYXJzZT1mdW5jdGlvbigkKXt0aGlzLiRkPShmdW5jdGlvbihGKXt2YXIgWT1GLmRhdGUsRz1GLnV0YztpZihZPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtpZihFLnUoWSkpcmV0dXJuIG5ldyBEYXRlO2lmKFkgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShZKTtpZih0eXBlb2YgWT09InN0cmluZyImJiEvWiQvaS50ZXN0KFkpKXt2YXIgWj1ZLm1hdGNoKHYpO2lmKFope3ZhciBkZT1aWzJdLTF8fDAsRD0oWls3XXx8IjAiKS5zdWJzdHJpbmcoMCwzKTtyZXR1cm4gRz9uZXcgRGF0ZShEYXRlLlVUQyhaWzFdLGRlLFpbM118fDEsWls0XXx8MCxaWzVdfHwwLFpbNl18fDAsRCkpOm5ldyBEYXRlKFpbMV0sZGUsWlszXXx8MSxaWzRdfHwwLFpbNV18fDAsWls2XXx8MCxEKX19cmV0dXJuIG5ldyBEYXRlKFkpfSkoJCksdGhpcy5pbml0KCl9LEEuaW5pdD1mdW5jdGlvbigpe3ZhciAkPXRoaXMuJGQ7dGhpcy4keT0kLmdldEZ1bGxZZWFyKCksdGhpcy4kTT0kLmdldE1vbnRoKCksdGhpcy4kRD0kLmdldERhdGUoKSx0aGlzLiRXPSQuZ2V0RGF5KCksdGhpcy4kSD0kLmdldEhvdXJzKCksdGhpcy4kbT0kLmdldE1pbnV0ZXMoKSx0aGlzLiRzPSQuZ2V0U2Vjb25kcygpLHRoaXMuJG1zPSQuZ2V0TWlsbGlzZWNvbmRzKCl9LEEuJHV0aWxzPWZ1bmN0aW9uKCl7cmV0dXJuIEV9LEEuaXNWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvU3RyaW5nKCkhPT1tfSxBLmlzU2FtZT1mdW5jdGlvbigkLEYpe3ZhciBZPUwoJCk7cmV0dXJuIHRoaXMuc3RhcnRPZihGKTw9WSYmWTw9dGhpcy5lbmRPZihGKX0sQS5pc0FmdGVyPWZ1bmN0aW9uKCQsRil7cmV0dXJuIEwoJCk8dGhpcy5zdGFydE9mKEYpfSxBLmlzQmVmb3JlPWZ1bmN0aW9uKCQsRil7cmV0dXJuIHRoaXMuZW5kT2YoRik8TCgkKX0sQS4kZz1mdW5jdGlvbigkLEYsWSl7cmV0dXJuIEUudSgkKT90aGlzW0ZdOnRoaXMuc2V0KFksJCl9LEEudW5peD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LEEudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLmdldFRpbWUoKX0sQS5zdGFydE9mPWZ1bmN0aW9uKCQsRil7dmFyIFk9dGhpcyxHPSEhRS51KEYpfHxGLFo9RS5wKCQpLGRlPWkoZnVuY3Rpb24ocSxIKXt2YXIgVT1FLncoWS4kdT9EYXRlLlVUQyhZLiR5LEgscSk6bmV3IERhdGUoWS4keSxILHEpLFkpO3JldHVybiBHP1U6VS5lbmRPZihsKX0sImwiKSxEPWkoZnVuY3Rpb24ocSxIKXtyZXR1cm4gRS53KFkudG9EYXRlKClbcV0uYXBwbHkoWS50b0RhdGUoInMiKSwoRz9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKEgpKSxZKX0sIiQiKSxRPXRoaXMuJFcsZmU9dGhpcy4kTSxUPXRoaXMuJEQsVz0ic2V0IisodGhpcy4kdT8iVVRDIjoiIik7c3dpdGNoKFope2Nhc2UgcDpyZXR1cm4gRz9kZSgxLDApOmRlKDMxLDExKTtjYXNlIGQ6cmV0dXJuIEc/ZGUoMSxmZSk6ZGUoMCxmZSsxKTtjYXNlIGM6dmFyIHBlPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCxtZT0oUTxwZT9RKzc6USktcGU7cmV0dXJuIGRlKEc/VC1tZTpUKyg2LW1lKSxmZSk7Y2FzZSBsOmNhc2UgaDpyZXR1cm4gRChXKyJIb3VycyIsMCk7Y2FzZSBvOnJldHVybiBEKFcrIk1pbnV0ZXMiLDEpO2Nhc2UgbjpyZXR1cm4gRChXKyJTZWNvbmRzIiwyKTtjYXNlIHM6cmV0dXJuIEQoVysiTWlsbGlzZWNvbmRzIiwzKTtkZWZhdWx0OnJldHVybiB0aGlzLmNsb25lKCl9fSxBLmVuZE9mPWZ1bmN0aW9uKCQpe3JldHVybiB0aGlzLnN0YXJ0T2YoJCwhMSl9LEEuJHNldD1mdW5jdGlvbigkLEYpe3ZhciBZLEc9RS5wKCQpLFo9InNldCIrKHRoaXMuJHU/IlVUQyI6IiIpLGRlPShZPXt9LFlbbF09WisiRGF0ZSIsWVtoXT1aKyJEYXRlIixZW2RdPVorIk1vbnRoIixZW3BdPVorIkZ1bGxZZWFyIixZW29dPVorIkhvdXJzIixZW25dPVorIk1pbnV0ZXMiLFlbc109WisiU2Vjb25kcyIsWVthXT1aKyJNaWxsaXNlY29uZHMiLFkpW0ddLEQ9Rz09PWw/dGhpcy4kRCsoRi10aGlzLiRXKTpGO2lmKEc9PT1kfHxHPT09cCl7dmFyIFE9dGhpcy5jbG9uZSgpLnNldChoLDEpO1EuJGRbZGVdKEQpLFEuaW5pdCgpLHRoaXMuJGQ9US5zZXQoaCxNYXRoLm1pbih0aGlzLiRELFEuZGF5c0luTW9udGgoKSkpLiRkfWVsc2UgZGUmJnRoaXMuJGRbZGVdKEQpO3JldHVybiB0aGlzLmluaXQoKSx0aGlzfSxBLnNldD1mdW5jdGlvbigkLEYpe3JldHVybiB0aGlzLmNsb25lKCkuJHNldCgkLEYpfSxBLmdldD1mdW5jdGlvbigkKXtyZXR1cm4gdGhpc1tFLnAoJCldKCl9LEEuYWRkPWZ1bmN0aW9uKCQsRil7dmFyIFksRz10aGlzOyQ9TnVtYmVyKCQpO3ZhciBaPUUucChGKSxkZT1pKGZ1bmN0aW9uKGZlKXt2YXIgVD1MKEcpO3JldHVybiBFLncoVC5kYXRlKFQuZGF0ZSgpK01hdGgucm91bmQoZmUqJCkpLEcpfSwieSIpO2lmKFo9PT1kKXJldHVybiB0aGlzLnNldChkLHRoaXMuJE0rJCk7aWYoWj09PXApcmV0dXJuIHRoaXMuc2V0KHAsdGhpcy4keSskKTtpZihaPT09bClyZXR1cm4gZGUoMSk7aWYoWj09PWMpcmV0dXJuIGRlKDcpO3ZhciBEPShZPXt9LFlbbl09ZSxZW29dPXIsWVtzXT10LFkpW1pdfHwxLFE9dGhpcy4kZC5nZXRUaW1lKCkrJCpEO3JldHVybiBFLncoUSx0aGlzKX0sQS5zdWJ0cmFjdD1mdW5jdGlvbigkLEYpe3JldHVybiB0aGlzLmFkZCgtMSokLEYpfSxBLmZvcm1hdD1mdW5jdGlvbigkKXt2YXIgRj10aGlzLFk9dGhpcy4kbG9jYWxlKCk7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBZLmludmFsaWREYXRlfHxtO3ZhciBHPSR8fCJZWVlZLU1NLUREVEhIOm1tOnNzWiIsWj1FLnoodGhpcyksZGU9dGhpcy4kSCxEPXRoaXMuJG0sUT10aGlzLiRNLGZlPVkud2Vla2RheXMsVD1ZLm1vbnRocyxXPVkubWVyaWRpZW0scGU9aShmdW5jdGlvbihILFUsaixhZSl7cmV0dXJuIEgmJihIW1VdfHxIKEYsRykpfHxqW1VdLnNsaWNlKDAsYWUpfSwiaCIpLG1lPWkoZnVuY3Rpb24oSCl7cmV0dXJuIEUucyhkZSUxMnx8MTIsSCwiMCIpfSwiZCIpLHE9V3x8ZnVuY3Rpb24oSCxVLGope3ZhciBhZT1IPDEyPyJBTSI6IlBNIjtyZXR1cm4gaj9hZS50b0xvd2VyQ2FzZSgpOmFlfTtyZXR1cm4gRy5yZXBsYWNlKGIsKGZ1bmN0aW9uKEgsVSl7cmV0dXJuIFV8fChmdW5jdGlvbihqKXtzd2l0Y2goail7Y2FzZSJZWSI6cmV0dXJuIFN0cmluZyhGLiR5KS5zbGljZSgtMik7Y2FzZSJZWVlZIjpyZXR1cm4gRS5zKEYuJHksNCwiMCIpO2Nhc2UiTSI6cmV0dXJuIFErMTtjYXNlIk1NIjpyZXR1cm4gRS5zKFErMSwyLCIwIik7Y2FzZSJNTU0iOnJldHVybiBwZShZLm1vbnRoc1Nob3J0LFEsVCwzKTtjYXNlIk1NTU0iOnJldHVybiBwZShULFEpO2Nhc2UiRCI6cmV0dXJuIEYuJEQ7Y2FzZSJERCI6cmV0dXJuIEUucyhGLiRELDIsIjAiKTtjYXNlImQiOnJldHVybiBTdHJpbmcoRi4kVyk7Y2FzZSJkZCI6cmV0dXJuIHBlKFkud2Vla2RheXNNaW4sRi4kVyxmZSwyKTtjYXNlImRkZCI6cmV0dXJuIHBlKFkud2Vla2RheXNTaG9ydCxGLiRXLGZlLDMpO2Nhc2UiZGRkZCI6cmV0dXJuIGZlW0YuJFddO2Nhc2UiSCI6cmV0dXJuIFN0cmluZyhkZSk7Y2FzZSJISCI6cmV0dXJuIEUucyhkZSwyLCIwIik7Y2FzZSJoIjpyZXR1cm4gbWUoMSk7Y2FzZSJoaCI6cmV0dXJuIG1lKDIpO2Nhc2UiYSI6cmV0dXJuIHEoZGUsRCwhMCk7Y2FzZSJBIjpyZXR1cm4gcShkZSxELCExKTtjYXNlIm0iOnJldHVybiBTdHJpbmcoRCk7Y2FzZSJtbSI6cmV0dXJuIEUucyhELDIsIjAiKTtjYXNlInMiOnJldHVybiBTdHJpbmcoRi4kcyk7Y2FzZSJzcyI6cmV0dXJuIEUucyhGLiRzLDIsIjAiKTtjYXNlIlNTUyI6cmV0dXJuIEUucyhGLiRtcywzLCIwIik7Y2FzZSJaIjpyZXR1cm4gWn1yZXR1cm4gbnVsbH0pKEgpfHxaLnJlcGxhY2UoIjoiLCIiKX0pKX0sQS51dGNPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gMTUqLU1hdGgucm91bmQodGhpcy4kZC5nZXRUaW1lem9uZU9mZnNldCgpLzE1KX0sQS5kaWZmPWZ1bmN0aW9uKCQsRixZKXt2YXIgRyxaPXRoaXMsZGU9RS5wKEYpLEQ9TCgkKSxRPShELnV0Y09mZnNldCgpLXRoaXMudXRjT2Zmc2V0KCkpKmUsZmU9dGhpcy1ELFQ9aShmdW5jdGlvbigpe3JldHVybiBFLm0oWixEKX0sIkQiKTtzd2l0Y2goZGUpe2Nhc2UgcDpHPVQoKS8xMjticmVhaztjYXNlIGQ6Rz1UKCk7YnJlYWs7Y2FzZSBmOkc9VCgpLzM7YnJlYWs7Y2FzZSBjOkc9KGZlLVEpLzYwNDhlNTticmVhaztjYXNlIGw6Rz0oZmUtUSkvODY0ZTU7YnJlYWs7Y2FzZSBvOkc9ZmUvcjticmVhaztjYXNlIG46Rz1mZS9lO2JyZWFrO2Nhc2UgczpHPWZlL3Q7YnJlYWs7ZGVmYXVsdDpHPWZlfXJldHVybiBZP0c6RS5hKEcpfSxBLmRheXNJbk1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kT2YoZCkuJER9LEEuJGxvY2FsZT1mdW5jdGlvbigpe3JldHVybiBOW3RoaXMuJExdfSxBLmxvY2FsZT1mdW5jdGlvbigkLEYpe2lmKCEkKXJldHVybiB0aGlzLiRMO3ZhciBZPXRoaXMuY2xvbmUoKSxHPU8oJCxGLCEwKTtyZXR1cm4gRyYmKFkuJEw9RyksWX0sQS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBFLncodGhpcy4kZCx0aGlzKX0sQS50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpfSxBLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sQS50b0lTT1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvSVNPU3RyaW5nKCl9LEEudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1VUQ1N0cmluZygpfSx6fSkoKSxDPUIucHJvdG90eXBlO3JldHVybiBMLnByb3RvdHlwZT1DLFtbIiRtcyIsYV0sWyIkcyIsc10sWyIkbSIsbl0sWyIkSCIsb10sWyIkVyIsbF0sWyIkTSIsZF0sWyIkeSIscF0sWyIkRCIsaF1dLmZvckVhY2goKGZ1bmN0aW9uKHope0NbelsxXV09ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuJGcoQSx6WzBdLHpbMV0pfX0pKSxMLmV4dGVuZD1mdW5jdGlvbih6LEEpe3JldHVybiB6LiRpfHwoeihBLEIsTCksei4kaT0hMCksTH0sTC5sb2NhbGU9TyxMLmlzRGF5anM9UyxMLnVuaXg9ZnVuY3Rpb24oeil7cmV0dXJuIEwoMWUzKnopfSxMLmVuPU5bTV0sTC5Mcz1OLEwucD17fSxMfSkpfSk7dmFyIERLdD1OdCgoZV9lLHRfZSk9PnsoZnVuY3Rpb24odCxlKXt0eXBlb2YgZV9lPT0ib2JqZWN0IiYmdHlwZW9mIHRfZTwidSI/dF9lLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOih0PXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR8fHNlbGYpLmRheWpzX3BsdWdpbl9pc1RvZGF5PWUoKX0pKGVfZSwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyKXtlLnByb3RvdHlwZS5pc1RvZGF5PWZ1bmN0aW9uKCl7dmFyIGE9IllZWVktTU0tREQiLHM9cigpO3JldHVybiB0aGlzLmZvcm1hdChhKT09PXMuZm9ybWF0KGEpfX19KSl9KTtmdW5jdGlvbiB0eGEodCl7cmV0dXJue2RheXM6TWF0aC50cnVuYyh0Lzg2NGU1KSxob3VyczpNYXRoLnRydW5jKHQvMzZlNSUyNCksbWludXRlczpNYXRoLnRydW5jKHQvNmU0JTYwKSxzZWNvbmRzOk1hdGgudHJ1bmModC8xZTMlNjApLG1pbGxpc2Vjb25kczpNYXRoLnRydW5jKHQlMWUzKSxtaWNyb3NlY29uZHM6TWF0aC50cnVuYygkS3QodCoxZTMpJTFlMyksbmFub3NlY29uZHM6TWF0aC50cnVuYygkS3QodCoxZTYpJTFlMyl9fWZ1bmN0aW9uIHJ4YSh0KXtyZXR1cm57ZGF5czp0Lzg2NDAwMDAwbixob3Vyczp0LzM2MDAwMDBuJTI0bixtaW51dGVzOnQvNjAwMDBuJTYwbixzZWNvbmRzOnQvMTAwMG4lNjBuLG1pbGxpc2Vjb25kczp0JTEwMDBuLG1pY3Jvc2Vjb25kczowbixuYW5vc2Vjb25kczowbn19ZnVuY3Rpb24gcl9lKHQpe3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJudW1iZXIiOntpZihOdW1iZXIuaXNGaW5pdGUodCkpcmV0dXJuIHR4YSh0KTticmVha31jYXNlImJpZ2ludCI6cmV0dXJuIHJ4YSh0KX10aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZpbml0ZSBudW1iZXIgb3IgYmlnaW50Iil9dmFyICRLdCxBS3Q9dSgoKT0+eyRLdD1pKHQ9Pk51bWJlci5pc0Zpbml0ZSh0KT90OjAsInRvWmVyb0lmSW5maW5pdHkiKTtpKHR4YSwicGFyc2VOdW1iZXIiKTtpKHJ4YSwicGFyc2VCaWdpbnQiKTtpKHJfZSwicGFyc2VNaWxsaXNlY29uZHMiKX0pO2Z1bmN0aW9uIFhDKHQsZSl7bGV0IHI9dHlwZW9mIHQ9PSJiaWdpbnQiO2lmKCFyJiYhTnVtYmVyLmlzRmluaXRlKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKTtlPXsuLi5lfTtsZXQgYT10PDA/Ii0iOiIiO3Q9dDwwPy10OnQsZS5jb2xvbk5vdGF0aW9uJiYoZS5jb21wYWN0PSExLGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzPSExLGUuc2VwYXJhdGVNaWxsaXNlY29uZHM9ITEsZS52ZXJib3NlPSExKSxlLmNvbXBhY3QmJihlLnVuaXRDb3VudD0xLGUuc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCxlLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCk7bGV0IHM9W10sbj1pKChmLHApPT57bGV0IGg9TWF0aC5mbG9vcihmKjEwKipwK3N4YSk7cmV0dXJuKE1hdGgucm91bmQoaCkvMTAqKnApLnRvRml4ZWQocCl9LCJmbG9vckRlY2ltYWxzIiksbz1pKChmLHAsaCxtKT0+e2lmKCEoKHMubGVuZ3RoPT09MHx8IWUuY29sb25Ob3RhdGlvbikmJmF4YShmKSYmIShlLmNvbG9uTm90YXRpb24mJmg9PT0ibSIpKSl7aWYobT8/PVN0cmluZyhmKSxlLmNvbG9uTm90YXRpb24pe2xldCB2PW0uaW5jbHVkZXMoIi4iKT9tLnNwbGl0KCIuIilbMF0ubGVuZ3RoOm0ubGVuZ3RoLGI9cy5sZW5ndGg+MD8yOjE7bT0iMCIucmVwZWF0KE1hdGgubWF4KDAsYi12KSkrbX1lbHNlIG0rPWUudmVyYm9zZT8iICIraXhhKHAsZik6aDtzLnB1c2gobSl9fSwiYWRkIiksbD1yX2UodCksYz1CaWdJbnQobC5kYXlzKTtpZihlLmhpZGVZZWFyQW5kRGF5cz9vKEJpZ0ludChjKSoyNG4rQmlnSW50KGwuaG91cnMpLCJob3VyIiwiaCIpOihlLmhpZGVZZWFyP28oYywiZGF5IiwiZCIpOihvKGMvMzY1biwieWVhciIsInkiKSxvKGMlMzY1biwiZGF5IiwiZCIpKSxvKE51bWJlcihsLmhvdXJzKSwiaG91ciIsImgiKSksbyhOdW1iZXIobC5taW51dGVzKSwibWludXRlIiwibSIpLCFlLmhpZGVTZWNvbmRzKWlmKGUuc2VwYXJhdGVNaWxsaXNlY29uZHN8fGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzfHwhZS5jb2xvbk5vdGF0aW9uJiZ0PDFlMyYmIWUuc3ViU2Vjb25kc0FzRGVjaW1hbHMpe2xldCBmPU51bWJlcihsLnNlY29uZHMpLHA9TnVtYmVyKGwubWlsbGlzZWNvbmRzKSxoPU51bWJlcihsLm1pY3Jvc2Vjb25kcyksbT1OdW1iZXIobC5uYW5vc2Vjb25kcyk7aWYobyhmLCJzZWNvbmQiLCJzIiksZS5mb3JtYXRTdWJNaWxsaXNlY29uZHMpbyhwLCJtaWxsaXNlY29uZCIsIm1zIiksbyhoLCJtaWNyb3NlY29uZCIsIlx4QjVzIiksbyhtLCJuYW5vc2Vjb25kIiwibnMiKTtlbHNle2xldCB2PXAraC8xZTMrbS8xZTYsYj10eXBlb2YgZS5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzPT0ibnVtYmVyIj9lLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM6MCxnPXY+PTE/TWF0aC5yb3VuZCh2KTpNYXRoLmNlaWwodikseT1iP3YudG9GaXhlZChiKTpnO28oTnVtYmVyLnBhcnNlRmxvYXQoeSksIm1pbGxpc2Vjb25kIiwibXMiLHkpfX1lbHNle2xldCBmPShyP051bWJlcih0JW54YSk6dCkvMWUzJTYwLHA9dHlwZW9mIGUuc2Vjb25kc0RlY2ltYWxEaWdpdHM9PSJudW1iZXIiP2Uuc2Vjb25kc0RlY2ltYWxEaWdpdHM6MSxoPW4oZixwKSxtPWUua2VlcERlY2ltYWxzT25XaG9sZVNlY29uZHM/aDpoLnJlcGxhY2UoL1wuMCskLywiIik7byhOdW1iZXIucGFyc2VGbG9hdChtKSwic2Vjb25kIiwicyIsbSl9aWYocy5sZW5ndGg9PT0wKXJldHVybiBhKyIwIisoZS52ZXJib3NlPyIgbWlsbGlzZWNvbmRzIjoibXMiKTtsZXQgZD1lLmNvbG9uTm90YXRpb24/IjoiOiIgIjtyZXR1cm4gdHlwZW9mIGUudW5pdENvdW50PT0ibnVtYmVyIiYmKHM9cy5zbGljZSgwLE1hdGgubWF4KGUudW5pdENvdW50LDEpKSksYStzLmpvaW4oZCl9dmFyIGF4YSxpeGEsc3hhLG54YSxFS3Q9dSgoKT0+e0FLdCgpO2F4YT1pKHQ9PnQ9PT0wfHx0PT09MG4sImlzWmVybyIpLGl4YT1pKCh0LGUpPT5lPT09MXx8ZT09PTFuP3Q6YCR7dH1zYCwicGx1cmFsaXplIiksc3hhPTFlLTcsbnhhPTI0bio2MG4qNjBuKjEwMDBuO2koWEMsInByZXR0eU1pbGxpc2Vjb25kcyIpfSk7dmFyIGY2LElLdCxhcD11KCgpPT57SkMoKTt0NigpO0sxKCk7anF0KCk7VEt0KCk7ZjY9R2EoTEt0KCksMSksSUt0PUdhKERLdCgpLDEpO0VLdCgpO2Y2LmRlZmF1bHQuZXh0ZW5kKElLdC5kZWZhdWx0KX0pO3ZhciBleixhX2U9dSgoKT0+e2FwKCk7aV9lKCk7ZXo9Y2xhc3N7c3RhdGlje2kodGhpcywiQ3JvbkpvYiIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLnN0YXR1cz0iaW5pdGlhbCIsdGhpcy5uZXh0RXhlY3V0aW9uVW5peD0wLHRoaXMuY3JvbkV4cHJlc3Npb249cix0aGlzLmpvYkZ1bmN0aW9uPWEsdGhpcy5jcm9uUGFyc2VyPW5ldyBEQy5Dcm9uKHIpfWNoZWNrRXhlY3V0aW9uKCl7aWYodGhpcy5zdGF0dXM9PT0ic3RvcHBlZCIpcmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXg7aWYodGhpcy5uZXh0RXhlY3V0aW9uVW5peD09PTAmJnRoaXMuZ2V0TmV4dEV4ZWN1dGlvblRpbWUoKSxEYXRlLm5vdygpPnRoaXMubmV4dEV4ZWN1dGlvblVuaXgpe2xldCBlPXRoaXMuam9iRnVuY3Rpb24odGhpcy5uZXh0RXhlY3V0aW9uVW5peCk7ZSBpbnN0YW5jZW9mIFByb21pc2UmJmUuY2F0Y2gocj0+Y29uc29sZS5sb2cocikpLHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9dGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpfXJldHVybiB0aGlzLm5leHRFeGVjdXRpb25Vbml4fWdldE5leHRFeGVjdXRpb25UaW1lKCl7cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9RGF0ZS5ub3coKSt0aGlzLmdldFRpbWVUb05leHRFeGVjdXRpb24oKX1nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCl7cmV0dXJuIHRoaXMuY3JvblBhcnNlci5tc1RvTmV4dCgpfXN0YXJ0KCl7dGhpcy5zdGF0dXM9InN0YXJ0ZWQifXN0b3AoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCJ9fX0pO3ZhciBzX2UsaV9lPXUoKCk9PnthcCgpO2FfZSgpO3NfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDcm9uTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuY3JvbmpvYnM9bmV3IFpzLk9iamVjdE1hcCx0aGlzLmN5Y2xlV2FrZURlZmVycmVkPW51bGx9d2FrZUN5Y2xlKCl7dGhpcy5jeWNsZVdha2VEZWZlcnJlZCYmdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5zdGF0dXM9PT0icGVuZGluZyImJnRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucmVzb2x2ZSgpfWFkZENyb25qb2IoZSxyKXtsZXQgYT1uZXcgZXoodGhpcyxlLHIpO3JldHVybiB0aGlzLmNyb25qb2JzLmFkZChhKSx0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmKGEuc3RhcnQoKSx0aGlzLndha2VDeWNsZSgpKSxhfXJlbW92ZUNyb25qb2IoZSl7ZS5zdG9wKCksdGhpcy5jcm9uam9icy5yZW1vdmUoZSksdGhpcy5zdGF0dXM9PT0ic3RhcnRlZCImJnRoaXMud2FrZUN5Y2xlKCl9c3RhcnQoKXtpZih0aGlzLnN0YXR1cyE9PSJzdGFydGVkIil7dGhpcy5zdGF0dXM9InN0YXJ0ZWQiO2ZvcihsZXQgZSBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpZS5zdGFydCgpO3RoaXMucnVuQ3JvbkN5Y2xlKCl9fWFzeW5jIHJ1bkNyb25DeWNsZSgpe2Zvcig7dGhpcy5zdGF0dXM9PT0ic3RhcnRlZCI7KXt0aGlzLmN5Y2xlV2FrZURlZmVycmVkPW5ldyAkdC5EZWZlcnJlZDtsZXQgZT0xLzA7Zm9yKGxldCByIG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSl7ci5jaGVja0V4ZWN1dGlvbigpO2xldCBhPXIuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpO2E8ZSYmKGU9YSl9aWYoZTwxLzAmJmU+MCl0aGlzLmV4ZWN1dGlvblRpbWVvdXQ9bmV3IFRyLlRpbWVvdXQoZSksYXdhaXQgUHJvbWlzZS5yYWNlKFt0aGlzLmV4ZWN1dGlvblRpbWVvdXQucHJvbWlzZSx0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnByb21pc2VdKSx0aGlzLmV4ZWN1dGlvblRpbWVvdXQuY2FuY2VsKCk7ZWxzZXtpZihlPD0wKWNvbnRpbnVlO2F3YWl0IHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucHJvbWlzZX19dGhpcy5jeWNsZVdha2VEZWZlcnJlZD1udWxsfXN0b3AoKXt0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmKHRoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLmV4ZWN1dGlvblRpbWVvdXQmJnRoaXMuZXhlY3V0aW9uVGltZW91dC5jYW5jZWwoKSx0aGlzLndha2VDeWNsZSgpKTtmb3IobGV0IGUgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKWUuc3RvcCgpfX19KTt2YXIgaXAsbl9lLG94YSxseGEsb19lPXUoKCk9PnthcCgpO2lwPXt5ZWFyczppKCh0PTEpPT50KjMxNTRlNywieWVhcnMiKSxtb250aHM6aSgodD0xKT0+dCoyNjI4ZTYsIm1vbnRocyIpLHdlZWtzOmkoKHQ9MSk9PnQqNjA0OGU1LCJ3ZWVrcyIpLGRheXM6aSgodD0xKT0+dCo4NjRlNSwiZGF5cyIpLGhvdXJzOmkoKHQ9MSk9PnQqMzZlNSwiaG91cnMiKSxtaW51dGVzOmkoKHQ9MSk9PnQqNmU0LCJtaW51dGVzIiksc2Vjb25kczppKCh0PTEpPT50KjFlMywic2Vjb25kcyIpfSxuX2U9aSh0PT57bGV0IGU9MCxyPWkoYT0+e2U9ZSthfSwiYWRkTWlsbGlTZWNvbmRzIik7cmV0dXJuIHQueWVhcnMmJnIoaXAueWVhcnModC55ZWFycykpLHQubW9udGhzJiZyKGlwLm1vbnRocyh0Lm1vbnRocykpLHQud2Vla3MmJnIoaXAud2Vla3ModC53ZWVrcykpLHQuZGF5cyYmcihpcC5kYXlzKHQuZGF5cykpLHQuaG91cnMmJnIoaXAuaG91cnModC5ob3VycykpLHQubWludXRlcyYmcihpcC5taW51dGVzKHQubWludXRlcykpLHQuc2Vjb25kcyYmcihpcC5zZWNvbmRzKHQuc2Vjb25kcykpLGV9LCJnZXRNaWxsaVNlY29uZHNGcm9tVW5pdHMiKSxveGE9aSh0PT5YQyh0KSwiZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nIiksbHhhPWkodD0+UUMuZm9ybWF0RGlzdGFuY2VUb05vdyhuZXcgRGF0ZSh0KSksImdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZUFnb1RpbWUiKX0pO3ZhciBsX2UsUEt0PXUoKCk9PnthcCgpO29fZSgpO2xfZT1jbGFzcyB0IGV4dGVuZHMgRGF0ZXtzdGF0aWN7aSh0aGlzLCJFeHRlbmRlZERhdGUiKX1zdGF0aWMgZnJvbU1pbGxpcyhlKXtyZXR1cm4gbmV3IHQoZSl9c3RhdGljIGZyb21EYXRlKGUpe3JldHVybiBuZXcgdChlLmdldFRpbWUoKSl9c3RhdGljIGZyb21FdXJvcGVhbkRhdGUoZSl7bGV0IHI9LyguKilcLiguKilcLiguKikvLmV4ZWMoZSkscz1uZXcgRGF0ZShwYXJzZUZsb2F0KHJbM10pLHBhcnNlRmxvYXQoclsyXSktMSxwYXJzZUZsb2F0KHJbMV0pKS5nZXRUaW1lKCk7cmV0dXJuIG5ldyB0KHMpfXN0YXRpYyBmcm9tSHlwaGVkRGF0ZShlKXtsZXQgcj1uZXcgRGF0ZShlKS5nZXRUaW1lKCk7cmV0dXJuIG5ldyB0KHIpfXN0YXRpYyBmcm9tRXVyb3BlYW5EYXRlQW5kVGltZShlLHI9IjEyOjAwOjAwIixhPSJFdXJvcGUvQmVybGluIil7bGV0IHM9LyguKilcLiguKilcLiguKikvLmV4ZWMoZSksbj1pKGQ9PmAwJHtkfWAuc2xpY2UoLTIpLCJzbGljZURhdGUiKSxvPWAke3NbM119LSR7bihzWzJdKX0tJHtuKHNbMV0pfVQke3J9YCxjPWY2LmRlZmF1bHQobykudG9EYXRlKCkuZ2V0VGltZSgpO3JldHVybiBuZXcgdChjKX1jb25zdHJ1Y3RvcihlPURhdGUubm93KCkpe3N1cGVyKGUpfWV4cG9ydFRvRXVyb3BlYW5EYXRlKCl7bGV0IGU9dGhpcy5leHBvcnRUb1VuaXRzKCk7cmV0dXJuYCR7ZS5kYXlTdHJpbmd9LiR7ZS5tb250aFN0cmluZ30uJHtlLnllYXJTdHJpbmd9YH1leHBvcnRUb0h5cGhlZFNvcnRhYmxlRGF0ZSgpe2xldCBlPXRoaXMuZXhwb3J0VG9Vbml0cygpO3JldHVybmAke2UueWVhclN0cmluZ30tJHtlLm1vbnRoU3RyaW5nfS0ke2UuZGF5U3RyaW5nfWB9ZXhwb3J0VG9Vbml0cygpe2xldCBlPVsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxyPVsiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiLCJTdW5kYXkiXTtyZXR1cm57eWVhcjp0aGlzLmdldEZ1bGxZZWFyKCkseWVhclN0cmluZzpgJHt0aGlzLmdldEZ1bGxZZWFyKCl9YCxtb250aDp0aGlzLmdldE1vbnRoKCkrMSxtb250aFN0cmluZzooIjAiKyh0aGlzLmdldE1vbnRoKCkrMSkpLnNsaWNlKC0yKSxtb250aE5hbWU6ZVt0aGlzLmdldE1vbnRoKCldLGRheTp0aGlzLmdldERhdGUoKSxkYXlTdHJpbmc6KCIwIit0aGlzLmdldERhdGUoKSkuc2xpY2UoLTIpLGRheU9mVGhlV2Vlazp0aGlzLmdldERheSgpLGRheU9mVGhlV2Vla05hbWU6clt0aGlzLmdldERheSgpXX19Zm9ybWF0KGUpe3JldHVybiBmNi5kZWZhdWx0KHRoaXMuZ2V0VGltZSgpKS5mb3JtYXQoZSl9aXNUb2RheSgpe3JldHVybiBmNi5kZWZhdWx0KHRoaXMuZ2V0VGltZSgpKS5pc1RvZGF5KCl9bGVzc1RpbWVQYXNzZWRUb05vdyhlKXtsZXQgcj1uX2UoZSk7cmV0dXJuIERhdGUubm93KCktdGhpcy5nZXRUaW1lKCk8cn1tb3JlVGltZVBhc3NlZFRvTm93KGUpe3JldHVybiF0aGlzLmxlc3NUaW1lUGFzc2VkVG9Ob3coZSl9fX0pO3ZhciBjX2UsTkt0PXUoKCk9PntjX2U9Y2xhc3N7c3RhdGlje2kodGhpcywiSHJ0TWVhc3VyZW1lbnQiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfXN0YXJ0KCl7dGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9taWxsaVN0YXJ0PURhdGUubm93KCl9c3RvcCgpe2lmKHRoaXMuX3N0YXJ0ZWQ9PT0hMSl7Y29uc29sZS5sb2coIkhhc24ndCBzdGFydGVkIHlldCIpO3JldHVybn1yZXR1cm4gdGhpcy5fbWlsbGlEaWZmPURhdGUubm93KCktdGhpcy5fbWlsbGlTdGFydCx0aGlzLm5hbm9TZWNvbmRzPXRoaXMuX21pbGxpRGlmZioxZTMsdGhpcy5taWxsaVNlY29uZHM9dGhpcy5fbWlsbGlEaWZmLHRoaXN9cmVzZXQoKXt0aGlzLm5hbm9TZWNvbmRzPW51bGwsdGhpcy5taWxsaVNlY29uZHM9bnVsbCx0aGlzLl9taWxsaVN0YXJ0PW51bGwsdGhpcy5fbWlsbGlEaWZmPW51bGwsdGhpcy5fc3RhcnRlZD0hMX19fSk7dmFyIGRfZSxPS3Q9dSgoKT0+e2FwKCk7ZF9lPWNsYXNze3N0YXRpY3tpKHRoaXMsIkludGVydmFsIil9Y29uc3RydWN0b3IoZSl7dGhpcy5zdGF0dXM9ImluaXRpYWwiLHRoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj1udWxsLHRoaXMuaW50ZXJ2YWxKb2JzPVtdLHRoaXMuaW50ZXJ2YWxNaWxsaXNlY29uZHM9ZX1zdGFydCgpe3RoaXMuc3RhdHVzPSJzdGFydGVkIjtsZXQgZT1uZXcgRGF0ZTt0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249ZSxpKGFzeW5jKCk9Pntmb3IoO3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiZ0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249PT1lOylhd2FpdCBUci5kZWxheUZvcih0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzKSx0aGlzLmV4ZWN1dGVJbnRlcnZhbEpvYnMoKX0sInJ1bkludGVydmFsIikoKX1zdG9wKCl7dGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj1udWxsfWFkZEludGVydmFsSm9iKGUpe3RoaXMuaW50ZXJ2YWxKb2JzLnB1c2goZSl9ZXhlY3V0ZUludGVydmFsSm9icygpe2ZvcihsZXQgZSBvZiB0aGlzLmludGVydmFsSm9icyllKCl9fX0pO3ZhciBUdix1X2U9dSgoKT0+e2FwKCk7VHY9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJUaW1lU3RhbXAiKX1zdGF0aWMgZnJvbU1pbGxpU2Vjb25kcyhlKXtyZXR1cm4gbmV3IHQoZSl9c3RhdGljIGZyb21UaW1lU3RhbXAoZSl7bGV0IHI9bmV3IHQ7cmV0dXJuIHIuY2hhbmdlPXIubWlsbGlTZWNvbmRzLWUubWlsbGlTZWNvbmRzLHJ9Y29uc3RydWN0b3IoZSl7dGhpcy5jaGFuZ2U9bnVsbCxlP3R5cGVvZiBlPT0ibnVtYmVyIiYmKHRoaXMuZGF0ZT1uZXcgRGF0ZShlKSk6dGhpcy5kYXRlPW5ldyBEYXRlLHRoaXMubWlsbGlTZWNvbmRzPXRoaXMuZGF0ZS5nZXRUaW1lKCksdGhpcy5lcG9jaHRpbWU9TWF0aC5mbG9vcih0aGlzLm1pbGxpU2Vjb25kcy8xZTMpfWlzT2xkZXJUaGFuT3RoZXJUaW1lU3RhbXAoZSxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kczxlLm1pbGxpU2Vjb25kcy1yfWlzT2xkZXJUaGFuKGUscj0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHMrcjxlLm1pbGxpU2Vjb25kc31pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAoZSxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kcz5lLm1pbGxpU2Vjb25kcytyfWlzWW91bmdlclRoYW5NaWxsaVNlY29uZHMoZSl7bGV0IGE9bmV3IHQoKS5lcG9jaHRpbWUtZSxzPW5ldyB0KGEpO3JldHVybiB0aGlzLmlzWW91bmdlclRoYW5PdGhlclRpbWVTdGFtcChzKX19fSk7dmFyIHBfZSxSS3Q9dSgoKT0+e2FwKCk7dV9lKCk7cF9lPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRpbWVyIil9Z2V0IHRpbWVMZWZ0KCl7cmV0dXJuIHRoaXMudGltZUluTWlsbGlzZWNvbmRzLXRoaXMucGF1c2VkQXQuY2hhbmdlfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3RhdGU9ImluaXRpYXRlZCIsdGhpcy5jb21wbGV0ZWREZWZlcnJlZD0kdC5kZWZlcigpLHRoaXMudGltZUluTWlsbGlzZWNvbmRzPWUsdGhpcy5jb21wbGV0ZWQ9dGhpcy5jb21wbGV0ZWREZWZlcnJlZC5wcm9taXNlfXN0YXJ0KCl7aWYoIXRoaXMuc3RhcnRlZEF0KXRoaXMuY3VycmVudFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuY29tcGxldGVkRGVmZXJyZWQucmVzb2x2ZSgpfSx0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcyksdGhpcy5zdGFydGVkQXQ9bmV3IFR2O2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJ0aW1lciBoYXMgYmVlbiBzdGFydGVkIGJlZm9yZS4gUGxlYXNlIHVzZSByZXN1bWUgaW5zdGVhZCIpfXBhdXNlKCl7dGhpcy5zdGFydGVkQXQmJihjbGVhclRpbWVvdXQodGhpcy5jdXJyZW50VGltZW91dCksdGhpcy5jdXJyZW50VGltZW91dD1udWxsLHRoaXMucGF1c2VkQXQ9VHYuZnJvbVRpbWVTdGFtcCh0aGlzLnN0YXJ0ZWRBdCkpfXJlc3VtZSgpe2lmKHRoaXMuc3RhcnRlZEF0KXRoaXMuY3VycmVudFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuY29tcGxldGVkRGVmZXJyZWQucmVzb2x2ZSgpfSx0aGlzLnRpbWVMZWZ0KTtlbHNlIHRocm93IG5ldyBFcnJvcigidGltZXIgaGFzIE5PVCBiZWVuIHN0YXJ0ZWQgYmVmb3JlLiBQbGVhc2UgdXNlIC5zdGFydCgpIGluc3RlYWQiKX1yZXNldCgpe3RoaXMucGF1c2UoKSx0aGlzLnN0YXJ0ZWRBdD1udWxsLHRoaXMucGF1c2VkQXQ9bnVsbH19fSk7dmFyIGg2PXt9O1ZlKGg2LHtDcm9uSm9iOigpPT5leixDcm9uTWFuYWdlcjooKT0+c19lLEV4dGVuZGVkRGF0ZTooKT0+bF9lLEhydE1lYXN1cmVtZW50OigpPT5jX2UsSW50ZXJ2YWw6KCk9PmRfZSxUaW1lU3RhbXA6KCk9PlR2LFRpbWVyOigpPT5wX2UsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlQWdvVGltZTooKT0+bHhhLGdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZVN0cmluZzooKT0+b3hhLGdldE1pbGxpU2Vjb25kc0Zyb21Vbml0czooKT0+bl9lLHVuaXRzOigpPT5pcH0pO3ZhciBGS3Q9dSgoKT0+e2lfZSgpO2FfZSgpO1BLdCgpO05LdCgpO09LdCgpO1JLdCgpO3VfZSgpO29fZSgpfSk7dmFyIEhLdD1OdCgoR3RuLEJLdCk9PnsidXNlIHN0cmljdCI7Qkt0LmV4cG9ydHM9Y2xhc3N7c3RhdGlje2kodGhpcywiU3ltYm9sVHJlZU5vZGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMucGFyZW50PW51bGwsdGhpcy5wcmV2aW91c1NpYmxpbmc9bnVsbCx0aGlzLm5leHRTaWJsaW5nPW51bGwsdGhpcy5maXJzdENoaWxkPW51bGwsdGhpcy5sYXN0Q2hpbGQ9bnVsbCx0aGlzLmNoaWxkcmVuVmVyc2lvbj0wLHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbCx0aGlzLmNhY2hlZEluZGV4PS0xLHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTn1nZXQgaXNBdHRhY2hlZCgpe3JldHVybiEhKHRoaXMucGFyZW50fHx0aGlzLnByZXZpb3VzU2libGluZ3x8dGhpcy5uZXh0U2libGluZyl9Z2V0IGhhc0NoaWxkcmVuKCl7cmV0dXJuISF0aGlzLmZpcnN0Q2hpbGR9Y2hpbGRyZW5DaGFuZ2VkKCl7dGhpcy5jaGlsZHJlblZlcnNpb249dGhpcy5jaGlsZHJlblZlcnNpb24rMSY0Mjk0OTY3Mjk1LHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbH1nZXRDYWNoZWRJbmRleChlKXtyZXR1cm4gdGhpcy5jYWNoZWRJbmRleFZlcnNpb24hPT1lLmNoaWxkcmVuVmVyc2lvbj8odGhpcy5jYWNoZWRJbmRleFZlcnNpb249TmFOLC0xKTp0aGlzLmNhY2hlZEluZGV4fXNldENhY2hlZEluZGV4KGUscil7dGhpcy5jYWNoZWRJbmRleFZlcnNpb249ZS5jaGlsZHJlblZlcnNpb24sdGhpcy5jYWNoZWRJbmRleD1yfX19KTt2YXIgVkt0PU50KChLdG4scUt0KT0+eyJ1c2Ugc3RyaWN0IjtxS3QuZXhwb3J0cz1PYmplY3QuZnJlZXplKHtESVNDT05ORUNURUQ6MSxQUkVDRURJTkc6MixGT0xMT1dJTkc6NCxDT05UQUlOUzo4LENPTlRBSU5FRF9CWToxNn0pfSk7dmFyIFlLdD1OdCgoWnRuLEdLdCk9PnsidXNlIHN0cmljdCI7dmFyIGpLdD1TeW1ib2woKSxVS3Q9U3ltYm9sKCksc3A9U3ltYm9sKCksV0t0PVN5bWJvbCgpLFkyPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRyZWVJdGVyYXRvciIpfWNvbnN0cnVjdG9yKGUscixhLHMpe3RoaXNbakt0XT1lLHRoaXNbVUt0XT1yLHRoaXNbc3BdPWEsdGhpc1tXS3RdPXN9bmV4dCgpe2xldCBlPXRoaXNbakt0XSxyPXRoaXNbV0t0XSxhPXRoaXNbVUt0XTtpZighdGhpc1tzcF0pcmV0dXJue2RvbmU6ITAsdmFsdWU6YX07bGV0IHM9dGhpc1tzcF07cmV0dXJuIHI9PT0xP3RoaXNbc3BdPWUuX25vZGUocykucHJldmlvdXNTaWJsaW5nOnI9PT0yP3RoaXNbc3BdPWUuX25vZGUocykubmV4dFNpYmxpbmc6cj09PTM/dGhpc1tzcF09ZS5fbm9kZShzKS5wYXJlbnQ6cj09PTQ/dGhpc1tzcF09ZS5wcmVjZWRpbmcocyx7cm9vdDphfSk6dGhpc1tzcF09ZS5mb2xsb3dpbmcocyx7cm9vdDphfSkse2RvbmU6ITEsdmFsdWU6c319fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoWTIucHJvdG90eXBlLFN5bWJvbC5pdGVyYXRvcix7dmFsdWU6aShmdW5jdGlvbigpe3JldHVybiB0aGlzfSwidmFsdWUiKSx3cml0YWJsZTohMX0pLFkyLlBSRVY9MSxZMi5ORVhUPTIsWTIuUEFSRU5UPTMsWTIuUFJFQ0VESU5HPTQsWTIuRk9MTE9XSU5HPTUsT2JqZWN0LmZyZWV6ZShZMiksT2JqZWN0LmZyZWV6ZShZMi5wcm90b3R5cGUpLEdLdC5leHBvcnRzPVkyfSk7dmFyIFpLdD1OdCgoWHRuLEtLdCk9PnsidXNlIHN0cmljdCI7dmFyIGR4YT1IS3QoKSxucD1WS3QoKSxWbD1ZS3QoKTtmdW5jdGlvbiBmX2UoKXtyZXR1cm4hMH1pKGZfZSwicmV0dXJuVHJ1ZSIpO2Z1bmN0aW9uIEx2KHQsZSl7cmV0dXJuIHRbdC5sZW5ndGgtMS1lXX1pKEx2LCJyZXZlcnNlQXJyYXlJbmRleCIpO3ZhciBRMGU9Y2xhc3N7c3RhdGlje2kodGhpcywiU3ltYm9sVHJlZSIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3ltYm9sPVN5bWJvbChlfHwiU3ltYm9sVHJlZSBkYXRhIil9aW5pdGlhbGl6ZShlKXtyZXR1cm4gdGhpcy5fbm9kZShlKSxlfV9ub2RlKGUpe2lmKCFlKXJldHVybiBudWxsO2xldCByPWVbdGhpcy5zeW1ib2xdO3JldHVybiByfHwoZVt0aGlzLnN5bWJvbF09bmV3IGR4YSl9aGFzQ2hpbGRyZW4oZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkuaGFzQ2hpbGRyZW59Zmlyc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5maXJzdENoaWxkfWxhc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5sYXN0Q2hpbGR9cHJldmlvdXNTaWJsaW5nKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLnByZXZpb3VzU2libGluZ31uZXh0U2libGluZyhlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5uZXh0U2libGluZ31wYXJlbnQoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkucGFyZW50fWxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpe2xldCByLGE9ZTtmb3IoO3I9dGhpcy5fbm9kZShhKS5sYXN0Q2hpbGQ7KWE9cjtyZXR1cm4gYX1wcmVjZWRpbmcoZSxyKXtsZXQgYT1yJiZyLnJvb3Q7aWYoZT09PWEpcmV0dXJuIG51bGw7bGV0IHM9dGhpcy5fbm9kZShlKS5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIHM/dGhpcy5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChzKTp0aGlzLl9ub2RlKGUpLnBhcmVudH1mb2xsb3dpbmcoZSxyKXtsZXQgYT1yJiZyLnJvb3Qsbj0hKHImJnIuc2tpcENoaWxkcmVuKSYmdGhpcy5fbm9kZShlKS5maXJzdENoaWxkO2lmKG4pcmV0dXJuIG47bGV0IG89ZTtkb3tpZihvPT09YSlyZXR1cm4gbnVsbDtsZXQgbD10aGlzLl9ub2RlKG8pLm5leHRTaWJsaW5nO2lmKGwpcmV0dXJuIGw7bz10aGlzLl9ub2RlKG8pLnBhcmVudH13aGlsZShvKTtyZXR1cm4gbnVsbH1jaGlsZHJlblRvQXJyYXkoZSxyKXtsZXQgYT1yJiZyLmFycmF5fHxbXSxzPXImJnIuZmlsdGVyfHxmX2Usbj1yJiZyLnRoaXNBcmd8fHZvaWQgMCxvPXRoaXMuX25vZGUoZSksbD1vLmZpcnN0Q2hpbGQsYz0wO2Zvcig7bDspe2xldCBkPXRoaXMuX25vZGUobCk7ZC5zZXRDYWNoZWRJbmRleChvLGMpLHMuY2FsbChuLGwpJiZhLnB1c2gobCksbD1kLm5leHRTaWJsaW5nLCsrY31yZXR1cm4gYX1hbmNlc3RvcnNUb0FycmF5KGUscil7bGV0IGE9ciYmci5hcnJheXx8W10scz1yJiZyLmZpbHRlcnx8Zl9lLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz1lO2Zvcig7bzspcy5jYWxsKG4sbykmJmEucHVzaChvKSxvPXRoaXMuX25vZGUobykucGFyZW50O3JldHVybiBhfXRyZWVUb0FycmF5KGUscil7bGV0IGE9ciYmci5hcnJheXx8W10scz1yJiZyLmZpbHRlcnx8Zl9lLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz1lO2Zvcig7bzspcy5jYWxsKG4sbykmJmEucHVzaChvKSxvPXRoaXMuZm9sbG93aW5nKG8se3Jvb3Q6ZX0pO3JldHVybiBhfWNoaWxkcmVuSXRlcmF0b3IoZSxyKXtsZXQgYT1yJiZyLnJldmVyc2Uscz10aGlzLl9ub2RlKGUpO3JldHVybiBuZXcgVmwodGhpcyxlLGE/cy5sYXN0Q2hpbGQ6cy5maXJzdENoaWxkLGE/VmwuUFJFVjpWbC5ORVhUKX1wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIG5ldyBWbCh0aGlzLGUsdGhpcy5fbm9kZShlKS5wcmV2aW91c1NpYmxpbmcsVmwuUFJFVil9bmV4dFNpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIG5ldyBWbCh0aGlzLGUsdGhpcy5fbm9kZShlKS5uZXh0U2libGluZyxWbC5ORVhUKX1hbmNlc3RvcnNJdGVyYXRvcihlKXtyZXR1cm4gbmV3IFZsKHRoaXMsZSxlLFZsLlBBUkVOVCl9dHJlZUl0ZXJhdG9yKGUscil7bGV0IGE9ciYmci5yZXZlcnNlO3JldHVybiBuZXcgVmwodGhpcyxlLGE/dGhpcy5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKTplLGE/VmwuUFJFQ0VESU5HOlZsLkZPTExPV0lORyl9aW5kZXgoZSl7bGV0IHI9dGhpcy5fbm9kZShlKSxhPXRoaXMuX25vZGUoci5wYXJlbnQpO2lmKCFhKXJldHVybi0xO2xldCBzPXIuZ2V0Q2FjaGVkSW5kZXgoYSk7aWYocz49MClyZXR1cm4gcztzPTA7bGV0IG49YS5maXJzdENoaWxkO2lmKGEuY2hpbGRJbmRleENhY2hlZFVwVG8pe2xldCBvPXRoaXMuX25vZGUoYS5jaGlsZEluZGV4Q2FjaGVkVXBUbyk7bj1vLm5leHRTaWJsaW5nLHM9by5nZXRDYWNoZWRJbmRleChhKSsxfWZvcig7bjspe2xldCBvPXRoaXMuX25vZGUobik7aWYoby5zZXRDYWNoZWRJbmRleChhLHMpLG49PT1lKWJyZWFrOysrcyxuPW8ubmV4dFNpYmxpbmd9cmV0dXJuIGEuY2hpbGRJbmRleENhY2hlZFVwVG89ZSxzfWNoaWxkcmVuQ291bnQoZSl7bGV0IHI9dGhpcy5fbm9kZShlKTtyZXR1cm4gci5sYXN0Q2hpbGQ/dGhpcy5pbmRleChyLmxhc3RDaGlsZCkrMTowfWNvbXBhcmVUcmVlUG9zaXRpb24oZSxyKXtpZihlPT09cilyZXR1cm4gMDtsZXQgYT1bXTt7bGV0IGY9ZTtmb3IoO2Y7KXtpZihmPT09cilyZXR1cm4gbnAuQ09OVEFJTlN8bnAuUFJFQ0VESU5HO2EucHVzaChmKSxmPXRoaXMucGFyZW50KGYpfX1sZXQgcz1bXTt7bGV0IGY9cjtmb3IoO2Y7KXtpZihmPT09ZSlyZXR1cm4gbnAuQ09OVEFJTkVEX0JZfG5wLkZPTExPV0lORztzLnB1c2goZiksZj10aGlzLnBhcmVudChmKX19bGV0IG49THYoYSwwKTtpZighbnx8biE9PUx2KHMsMCkpcmV0dXJuIG5wLkRJU0NPTk5FQ1RFRDtsZXQgbz0wLGw9TWF0aC5taW4oYS5sZW5ndGgscy5sZW5ndGgpO2ZvcihsZXQgZj0wO2Y8bDsrK2Ype2xldCBwPUx2KGEsZiksaD1MdihzLGYpO2lmKHAhPT1oKWJyZWFrO289Zn1sZXQgYz10aGlzLmluZGV4KEx2KGEsbysxKSk7cmV0dXJuIHRoaXMuaW5kZXgoTHYocyxvKzEpKTxjP25wLlBSRUNFRElORzpucC5GT0xMT1dJTkd9cmVtb3ZlKGUpe2xldCByPXRoaXMuX25vZGUoZSksYT10aGlzLl9ub2RlKHIucGFyZW50KSxzPXRoaXMuX25vZGUoci5wcmV2aW91c1NpYmxpbmcpLG49dGhpcy5fbm9kZShyLm5leHRTaWJsaW5nKTtyZXR1cm4gYSYmKGEuZmlyc3RDaGlsZD09PWUmJihhLmZpcnN0Q2hpbGQ9ci5uZXh0U2libGluZyksYS5sYXN0Q2hpbGQ9PT1lJiYoYS5sYXN0Q2hpbGQ9ci5wcmV2aW91c1NpYmxpbmcpKSxzJiYocy5uZXh0U2libGluZz1yLm5leHRTaWJsaW5nKSxuJiYobi5wcmV2aW91c1NpYmxpbmc9ci5wcmV2aW91c1NpYmxpbmcpLHIucGFyZW50PW51bGwsci5wcmV2aW91c1NpYmxpbmc9bnVsbCxyLm5leHRTaWJsaW5nPW51bGwsci5jYWNoZWRJbmRleD0tMSxyLmNhY2hlZEluZGV4VmVyc2lvbj1OYU4sYSYmYS5jaGlsZHJlbkNoYW5nZWQoKSxlfWluc2VydEJlZm9yZShlLHIpe2xldCBhPXRoaXMuX25vZGUoZSkscz10aGlzLl9ub2RlKGEucHJldmlvdXNTaWJsaW5nKSxuPXRoaXMuX25vZGUociksbz10aGlzLl9ub2RlKGEucGFyZW50KTtpZihuLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gbi5wYXJlbnQ9YS5wYXJlbnQsbi5wcmV2aW91c1NpYmxpbmc9YS5wcmV2aW91c1NpYmxpbmcsbi5uZXh0U2libGluZz1lLGEucHJldmlvdXNTaWJsaW5nPXIscyYmKHMubmV4dFNpYmxpbmc9ciksbyYmby5maXJzdENoaWxkPT09ZSYmKG8uZmlyc3RDaGlsZD1yKSxvJiZvLmNoaWxkcmVuQ2hhbmdlZCgpLHJ9aW5zZXJ0QWZ0ZXIoZSxyKXtsZXQgYT10aGlzLl9ub2RlKGUpLHM9dGhpcy5fbm9kZShhLm5leHRTaWJsaW5nKSxuPXRoaXMuX25vZGUociksbz10aGlzLl9ub2RlKGEucGFyZW50KTtpZihuLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gbi5wYXJlbnQ9YS5wYXJlbnQsbi5wcmV2aW91c1NpYmxpbmc9ZSxuLm5leHRTaWJsaW5nPWEubmV4dFNpYmxpbmcsYS5uZXh0U2libGluZz1yLHMmJihzLnByZXZpb3VzU2libGluZz1yKSxvJiZvLmxhc3RDaGlsZD09PWUmJihvLmxhc3RDaGlsZD1yKSxvJiZvLmNoaWxkcmVuQ2hhbmdlZCgpLHJ9cHJlcGVuZENoaWxkKGUscil7bGV0IGE9dGhpcy5fbm9kZShlKSxzPXRoaXMuX25vZGUocik7aWYocy5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIGEuaGFzQ2hpbGRyZW4/dGhpcy5pbnNlcnRCZWZvcmUoYS5maXJzdENoaWxkLHIpOihzLnBhcmVudD1lLGEuZmlyc3RDaGlsZD1yLGEubGFzdENoaWxkPXIsYS5jaGlsZHJlbkNoYW5nZWQoKSkscn1hcHBlbmRDaGlsZChlLHIpe2xldCBhPXRoaXMuX25vZGUoZSkscz10aGlzLl9ub2RlKHIpO2lmKHMuaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBhLmhhc0NoaWxkcmVuP3RoaXMuaW5zZXJ0QWZ0ZXIoYS5sYXN0Q2hpbGQscik6KHMucGFyZW50PWUsYS5maXJzdENoaWxkPXIsYS5sYXN0Q2hpbGQ9cixhLmNoaWxkcmVuQ2hhbmdlZCgpKSxyfX07S0t0LmV4cG9ydHM9UTBlLFEwZS5UcmVlUG9zaXRpb249bnB9KTt2YXIgWDBlLGpsPXUoKCk9Pnt0NigpO09xdCgpO0sxKCk7YjQoKTtGS3QoKTtYMGU9R2EoWkt0KCksMSl9KTt2YXIgaF9lLFFLdD11KCgpPT57amwoKTtoX2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQXN5bmNFeGVjdXRpb25TdGFjayIpfWV4ZWN1dGlvblNsb3RzPVtdO2lzUHJvY2Vzc2luZz0hMTtub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT0xLzA7bm9uRXhjbHVzaXZlQ3VycmVudENvdW50PTA7bm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlPVtdO2FzeW5jIGdldEV4Y2x1c2l2ZUV4ZWN1dGlvblNsb3QoZSxyKXtsZXQgYT0kdC5kZWZlcigpLHM9e2Z1bmNUb0V4ZWN1dGU6ZSxleGVjdXRpb25EZWZlcnJlZDphLHRpbWVvdXQ6cixtb2RlOiJleGNsdXNpdmUifTtyZXR1cm4gdGhpcy5leGVjdXRpb25TbG90cy5wdXNoKHMpLHRoaXMucHJvY2Vzc0V4ZWN1dGlvblNsb3RzKCksYS5wcm9taXNlfWFzeW5jIGdldE5vbkV4Y2x1c2l2ZUV4ZWN1dGlvblNsb3QoZSxyKXtsZXQgYT0kdC5kZWZlcigpLHM9e2Z1bmNUb0V4ZWN1dGU6ZSxleGVjdXRpb25EZWZlcnJlZDphLHRpbWVvdXQ6cixtb2RlOiJub25leGNsdXNpdmUifTtyZXR1cm4gdGhpcy5leGVjdXRpb25TbG90cy5wdXNoKHMpLHRoaXMucHJvY2Vzc0V4ZWN1dGlvblNsb3RzKCksYS5wcm9taXNlfXNldE5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KGUpe2lmKCFOdW1iZXIuaXNGaW5pdGUoZSl8fGU8MSl0aHJvdyBuZXcgRXJyb3IoIm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5IG11c3QgYmUgYSBmaW5pdGUgbnVtYmVyID49IDEiKTt0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5PWV9Z2V0Tm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3koKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeX1nZXRBY3RpdmVOb25FeGNsdXNpdmVDb3VudCgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudH1nZXRQZW5kaW5nTm9uRXhjbHVzaXZlQ291bnQoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWUubGVuZ3RofWFzeW5jIHByb2Nlc3NFeGVjdXRpb25TbG90cygpe2lmKCF0aGlzLmlzUHJvY2Vzc2luZyl7Zm9yKHRoaXMuaXNQcm9jZXNzaW5nPSEwO3RoaXMuZXhlY3V0aW9uU2xvdHMubGVuZ3RoPjA7KXtsZXQgZT10aGlzLmV4ZWN1dGlvblNsb3RzWzBdO2lmKGUubW9kZT09PSJleGNsdXNpdmUiKWF3YWl0IHRoaXMuZXhlY3V0ZUV4Y2x1c2l2ZVNsb3QoZSksdGhpcy5leGVjdXRpb25TbG90cy5zaGlmdCgpO2Vsc2V7bGV0IHI9W107Zm9yKDt0aGlzLmV4ZWN1dGlvblNsb3RzLmxlbmd0aD4wJiZ0aGlzLmV4ZWN1dGlvblNsb3RzWzBdLm1vZGU9PT0ibm9uZXhjbHVzaXZlIjspci5wdXNoKHRoaXMuZXhlY3V0aW9uU2xvdHMuc2hpZnQoKSk7YXdhaXQgdGhpcy5leGVjdXRlTm9uRXhjbHVzaXZlU2xvdHMocil9fXRoaXMuaXNQcm9jZXNzaW5nPSExfX1hc3luYyBleGVjdXRlRXhjbHVzaXZlU2xvdChlKXt0cnl7aWYoZS50aW1lb3V0KXtsZXQgcj1uZXcgVHIuVGltZW91dChlLnRpbWVvdXQpO3RyeXtsZXQgYT1hd2FpdCBQcm9taXNlLnJhY2UoW2UuZnVuY1RvRXhlY3V0ZSgpLHIucHJvbWlzZS50aGVuKCgpPT57dGhyb3cgbmV3IEVycm9yKCJUaW1lb3V0IHJlYWNoZWQiKX0pXSk7ci5jYW5jZWwoKSxlLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUoYSl9Y2F0Y2goYSl7dGhyb3cgci5jYW5jZWwoKSxhfX1lbHNle2xldCByPWF3YWl0IGUuZnVuY1RvRXhlY3V0ZSgpO2UuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShyKX19Y2F0Y2gocil7ZS5leGVjdXRpb25EZWZlcnJlZC5yZWplY3Qocil9fWFzeW5jIGV4ZWN1dGVOb25FeGNsdXNpdmVTbG90cyhlKXtsZXQgcj1lLm1hcChhc3luYyBhPT57YXdhaXQgdGhpcy53YWl0Rm9yTm9uRXhjbHVzaXZlU2xvdCgpO3RyeXtpZihhLnRpbWVvdXQpe2xldCBzPW5ldyBUci5UaW1lb3V0KGEudGltZW91dCk7dHJ5e2xldCBuPWF3YWl0IFByb21pc2UucmFjZShbYS5mdW5jVG9FeGVjdXRlKCkscy5wcm9taXNlLnRoZW4oKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRpbWVvdXQgcmVhY2hlZCIpfSldKTtzLmNhbmNlbCgpLGEuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShuKX1jYXRjaChuKXt0aHJvdyBzLmNhbmNlbCgpLG59fWVsc2V7bGV0IHM9YXdhaXQgYS5mdW5jVG9FeGVjdXRlKCk7YS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKHMpfX1jYXRjaChzKXthLmV4ZWN1dGlvbkRlZmVycmVkLnJlamVjdChzKX1maW5hbGx5e3RoaXMucmVsZWFzZU5vbkV4Y2x1c2l2ZVNsb3QoKX19KTthd2FpdCBQcm9taXNlLmFsbChyKX13YWl0Rm9yTm9uRXhjbHVzaXZlU2xvdCgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudDx0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5Pyh0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrLFByb21pc2UucmVzb2x2ZSgpKTpuZXcgUHJvbWlzZShlPT57dGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWUucHVzaCgoKT0+e3RoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50KyssZSgpfSl9KX1yZWxlYXNlTm9uRXhjbHVzaXZlU2xvdCgpe3RoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50LS07bGV0IGU9dGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWUuc2hpZnQoKTtlJiZlKCl9fX0pO3ZhciBtX2UsWEt0PXUoKCk9PntqbCgpO21fZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJCYWNrcHJlc3N1cmVkQXJyYXkiKX1kYXRhO2hpZ2hXYXRlck1hcms7aGFzU3BhY2U9bmV3ICRhLnJ4anMuU3ViamVjdDtpdGVtc0F2YWlsYWJsZT1uZXcgJGEucnhqcy5TdWJqZWN0O2lzRGVzdHJveWVkPSExO2NvbnN0cnVjdG9yKGU9MTYpe3RoaXMuZGF0YT1bXSx0aGlzLmhpZ2hXYXRlck1hcms9ZX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGh9cHVzaChlKXt0aGlzLmRhdGEucHVzaChlKSx0aGlzLml0ZW1zQXZhaWxhYmxlLm5leHQoIml0ZW1zQXZhaWxhYmxlIik7bGV0IHI9dGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCk7cmV0dXJuIHImJnRoaXMuaGFzU3BhY2UubmV4dCgiaGFzU3BhY2UiKSxyfXB1c2hNYW55KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMucHVzaChyKTtyZXR1cm4gdGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCl9c2hpZnQoKXtsZXQgZT10aGlzLmRhdGEuc2hpZnQoKTtyZXR1cm4gdGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCkmJnRoaXMuaGFzU3BhY2UubmV4dCgiaGFzU3BhY2UiKSxlfXBlZWsoKXtyZXR1cm4gdGhpcy5kYXRhWzBdfWNoZWNrU3BhY2VBdmFpbGFibGUoKXtyZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDx0aGlzLmhpZ2hXYXRlck1hcmt9Y2hlY2tIYXNJdGVtcygpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RoPjB9d2FpdEZvclNwYWNlKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntpZih0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKXx8dGhpcy5pc0Rlc3Ryb3llZCllKCk7ZWxzZXtsZXQgcj10aGlzLmhhc1NwYWNlLnN1YnNjcmliZSh7bmV4dDppKCgpPT57ci51bnN1YnNjcmliZSgpLGUoKX0sIm5leHQiKSxjb21wbGV0ZTppKCgpPT57ZSgpfSwiY29tcGxldGUiKX0pfX0pfXdhaXRGb3JJdGVtcygpe3JldHVybiBuZXcgUHJvbWlzZShlPT57aWYodGhpcy5kYXRhLmxlbmd0aD4wfHx0aGlzLmlzRGVzdHJveWVkKWUoKTtlbHNle2xldCByPXRoaXMuaXRlbXNBdmFpbGFibGUuc3Vic2NyaWJlKHtuZXh0OmkoKCk9PntyLnVuc3Vic2NyaWJlKCksZSgpfSwibmV4dCIpLGNvbXBsZXRlOmkoKCk9PntlKCl9LCJjb21wbGV0ZSIpfSl9fSl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5kYXRhW1N5bWJvbC5pdGVyYXRvcl0oKX1kZXN0cm95KCl7dGhpcy5pc0Rlc3Ryb3llZD0hMCx0aGlzLmhhc1NwYWNlLmNvbXBsZXRlKCksdGhpcy5pdGVtc0F2YWlsYWJsZS5jb21wbGV0ZSgpfX19KTt2YXIgbTYsSjBlPXUoKCk9PntqbCgpO202PWNsYXNzIHR7c3RhdGlje2kodGhpcywiRmFzdE1hcCIpfW1hcE9iamVjdD1uZXcgTWFwO2lzVW5pcXVlS2V5KGUpe3JldHVybiF0aGlzLm1hcE9iamVjdC5oYXMoZSl9aGFzKGUpe3JldHVybiB0aGlzLm1hcE9iamVjdC5oYXMoZSl9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5tYXBPYmplY3Quc2l6ZX1hZGRUb01hcChlLHIsYSl7cmV0dXJuIHRoaXMuaXNVbmlxdWVLZXkoZSl8fGEmJmEuZm9yY2U/KHRoaXMubWFwT2JqZWN0LnNldChlLHIpLCEwKTohMX1nZXRCeUtleShlKXtyZXR1cm4gdGhpcy5tYXBPYmplY3QuZ2V0KGUpfXJlbW92ZUZyb21NYXAoZSl7bGV0IHI9dGhpcy5tYXBPYmplY3QuZ2V0KGUpO3JldHVybiB0aGlzLm1hcE9iamVjdC5kZWxldGUoZSkscn1nZXRLZXlzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5tYXBPYmplY3Qua2V5cygpKX12YWx1ZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLm1hcE9iamVjdC52YWx1ZXMoKSl9ZW50cmllcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMubWFwT2JqZWN0LmVudHJpZXMoKSl9Y2xlYW4oKXt0aGlzLm1hcE9iamVjdC5jbGVhcigpfWNvbmNhdChlKXtsZXQgcj1uZXcgdDtmb3IobGV0IGEgb2YgdGhpcy5nZXRLZXlzKCkpci5hZGRUb01hcChhLHRoaXMuZ2V0QnlLZXkoYSkpO2ZvcihsZXQgYSBvZiBlLmdldEtleXMoKSlyLmFkZFRvTWFwKGEsZS5nZXRCeUtleShhKSx7Zm9yY2U6ITB9KTtyZXR1cm4gcn1hZGRBbGxGcm9tT3RoZXIoZSl7Zm9yKGxldCByIG9mIGUuZ2V0S2V5cygpKXRoaXMuYWRkVG9NYXAocixlLmdldEJ5S2V5KHIpLHtmb3JjZTohMH0pfWFzeW5jIGZpbmQoZSl7Zm9yKGxldCByIG9mIHRoaXMuZ2V0S2V5cygpKXtsZXQgYT10aGlzLmdldEJ5S2V5KHIpO2lmKGF3YWl0IGUoYSkpcmV0dXJuIGF9fVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMubWFwT2JqZWN0LmVudHJpZXMoKX19fSk7dmFyIEpLdCxNNCx0ej11KCgpPT57amwoKTtKMGUoKTtKS3Q9aSgodD0idW5pIik9PmAke3R9eHh4eHh4eHh4eHhgLnJlcGxhY2UoL1t4eV0vZyxlPT57bGV0IHI9TWF0aC5yYW5kb20oKSoxNnwwO3JldHVybihlPT09IngiP3I6ciYzfDgpLnRvU3RyaW5nKDE2KX0pLCJ1bmkiKSxNND1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIk9iamVjdE1hcCIpfWZhc3RNYXA9bmV3IG02O3JldmVyc2VNYXA9bmV3IE1hcDtldmVudFN1YmplY3Q9bmV3ICRhLnJ4anMuU3ViamVjdDtjb25zdHJ1Y3Rvcigpe31nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5zaXplfWFkZE1hcHBlZFVuaXF1ZShlLHIpe3RoaXMuZmFzdE1hcC5hZGRUb01hcChlLHIpLHRoaXMucmV2ZXJzZU1hcC5zZXQocixlKX1nZXRNYXBwZWRVbmlxdWUoZSl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRCeUtleShlKX1yZW1vdmVNYXBwZWRVbmlxdWUoZSl7bGV0IHI9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAoZSk7cmV0dXJuIHIhPT12b2lkIDAmJih0aGlzLnJldmVyc2VNYXAuZGVsZXRlKHIpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOnJ9KSkscn1hZGQoZSl7bGV0IHI9dGhpcy5yZXZlcnNlTWFwLmdldChlKTtpZihyIT09dm9pZCAwKXJldHVybiByO2xldCBhPUpLdCgia2V5Iik7cmV0dXJuIHRoaXMuYWRkTWFwcGVkVW5pcXVlKGEsZSksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJhZGQiLHBheWxvYWQ6ZX0pLGF9YWRkQXJyYXkoZSl7Zm9yKGxldCByIG9mIGUpdGhpcy5hZGQocil9Y2hlY2tGb3JPYmplY3QoZSl7cmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5oYXMoZSl9Z2V0S2V5Rm9yT2JqZWN0KGUpe3JldHVybiB0aGlzLnJldmVyc2VNYXAuZ2V0KGUpPz9udWxsfWFzeW5jIGZpbmQoZSl7cmV0dXJuIHRoaXMuZmFzdE1hcC5maW5kKGUpfWZpbmRTeW5jKGUpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKGUodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKSlyZXR1cm4gdGhpcy5nZXRNYXBwZWRVbmlxdWUocil9YXN5bmMgZmluZE9uZUFuZFJlbW92ZShlKXtsZXQgcj1hd2FpdCB0aGlzLmZpbmQoZSk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9ZmluZE9uZUFuZFJlbW92ZVN5bmMoZSl7bGV0IHI9dGhpcy5maW5kU3luYyhlKTtyZXR1cm4gciYmdGhpcy5yZW1vdmUocikscn1hc3luYyBmb3JFYWNoKGUpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWF3YWl0IGUodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKX1nZXRPbmVBbmRSZW1vdmUoKXtsZXQgZT10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt7bGV0IHI9ZVswXSxhPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3JldHVybiB0aGlzLnJldmVyc2VNYXAuZGVsZXRlKGEpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOmF9KSxhfX1nZXRBcnJheSgpe3JldHVybiB0aGlzLmZhc3RNYXAudmFsdWVzKCl9aXNFbXB0eSgpe3JldHVybiB0aGlzLmZhc3RNYXAuc2l6ZT09PTB9cmVtb3ZlKGUpe2xldCByPXRoaXMucmV2ZXJzZU1hcC5nZXQoZSk7aWYociE9PXZvaWQgMCl7bGV0IGE9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAocik7cmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5kZWxldGUoYSksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6YX0pLGF9cmV0dXJuIG51bGx9d2lwZSgpe2xldCBlPXRoaXMuZmFzdE1hcC5nZXRLZXlzKCk7Zm9yKGxldCByIG9mIGUpe2xldCBhPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3RoaXMucmV2ZXJzZU1hcC5kZWxldGUoYSksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6YX0pfX1jb25jYXQoZSl7bGV0IHI9bmV3IHQ7ci5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0aGlzLmZhc3RNYXApLHIuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIoZS5mYXN0TWFwKTtmb3IobGV0IGEgb2Ygci5mYXN0TWFwLmdldEtleXMoKSlyLnJldmVyc2VNYXAuc2V0KHIuZmFzdE1hcC5nZXRCeUtleShhKSxhKTtyZXR1cm4gcn1hZGRBbGxGcm9tT3RoZXIoZSl7dGhpcy5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcihlLmZhc3RNYXApO2ZvcihsZXQgciBvZiBlLmZhc3RNYXAuZ2V0S2V5cygpKXRoaXMucmV2ZXJzZU1hcC5zZXQoZS5mYXN0TWFwLmdldEJ5S2V5KHIpLHIpfW1hcChlKXtyZXR1cm4gdGhpcy5nZXRBcnJheSgpLm1hcChlKX1maWx0ZXIoZSl7cmV0dXJuIHRoaXMuZ2V0QXJyYXkoKS5maWx0ZXIoZSl9cmVkdWNlKGUscil7cmV0dXJuIHRoaXMuZ2V0QXJyYXkoKS5yZWR1Y2UoZSxyKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLmdldEFycmF5KClbU3ltYm9sLml0ZXJhdG9yXSgpfWRlc3Ryb3koKXt0aGlzLndpcGUoKSx0aGlzLnJldmVyc2VNYXAuY2xlYXIoKSx0aGlzLmV2ZW50U3ViamVjdC5jb21wbGV0ZSgpfX19KTt2YXIgcnosZ19lPXUoKCk9PntqbCgpO2JfZSgpO3J6PWNsYXNze3N0YXRpY3tpKHRoaXMsIkludGVyZXN0Iil9b3B0aW9ucztpbnRlcmVzdE1hcFJlZjtvcmlnaW5hbEludGVyZXN0O2NvbXBhcmlzb25GdW5jO2Rlc3RydWN0aW9uVGltZXI9bmV3IGg2LlRpbWVyKDFlNCk7aXNGdWxsZmlsbGVkPSExO2lzRGVzdHJveWVkPSExO2Z1bGxmaWxsbWVudFN0b3JlPVtdO21hcmtMb3N0VGltZW91dD1udWxsO2dldCBjb21wYXJpc29uU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29tcGFyaXNvbkZ1bmModGhpcy5vcmlnaW5hbEludGVyZXN0KX1pbnRlcmVzdERlZmVycmVkPW5ldyAkdC5EZWZlcnJlZDtpbnRlcmVzdEZ1bGxmaWxsZWQ9dGhpcy5pbnRlcmVzdERlZmVycmVkLnByb21pc2U7ZnVsbGZpbGxJbnRlcmVzdChlKXt0aGlzLmlzRnVsbGZpbGxlZD0hMCx0aGlzLmZ1bGxmaWxsbWVudFN0b3JlPVtdLHRoaXMuaW50ZXJlc3REZWZlcnJlZC5yZXNvbHZlKGUpLHRoaXMuZGVzdHJveSgpfWNvbnN0cnVjdG9yKGUscixhLHMpe3RoaXMuaW50ZXJlc3RNYXBSZWY9ZSx0aGlzLm9yaWdpbmFsSW50ZXJlc3Q9cix0aGlzLmNvbXBhcmlzb25GdW5jPWEsdGhpcy5vcHRpb25zPXMsdGhpcy5kZXN0cnVjdGlvblRpbWVyLmNvbXBsZXRlZC50aGVuKCgpPT57dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5kZXN0cm95KCl9KSx0aGlzLm9wdGlvbnM/Lm1hcmtMb3N0QWZ0ZXJEZWZhdWx0JiYodGhpcy5tYXJrTG9zdFRpbWVvdXQ9bmV3IFRyLlRpbWVvdXQodGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0KSx0aGlzLm1hcmtMb3N0VGltZW91dC5wcm9taXNlLnRoZW4oKCk9Pnt0aGlzLmlzRGVzdHJveWVkfHx0aGlzLm1hcmtMb3N0KCl9KSl9ZGVzdHJveSgpe3RoaXMuaXNEZXN0cm95ZWR8fCh0aGlzLmlzRGVzdHJveWVkPSEwLHRoaXMuZGVzdHJ1Y3Rpb25UaW1lci5yZXNldCgpLHRoaXMubWFya0xvc3RUaW1lb3V0JiYodGhpcy5tYXJrTG9zdFRpbWVvdXQuY2FuY2VsKCksdGhpcy5tYXJrTG9zdFRpbWVvdXQ9bnVsbCksdGhpcy5mdWxsZmlsbG1lbnRTdG9yZT1bXSx0aGlzLmludGVyZXN0TWFwUmVmLnJlbW92ZUludGVyZXN0KHRoaXMpLCF0aGlzLmlzRnVsbGZpbGxlZCYmdGhpcy5vcHRpb25zPy5kZWZhdWx0RnVsbGZpbGxtZW50JiYodGhpcy5pc0Z1bGxmaWxsZWQ9ITAsdGhpcy5pbnRlcmVzdERlZmVycmVkLnJlc29sdmUodGhpcy5vcHRpb25zLmRlZmF1bHRGdWxsZmlsbG1lbnQpKSl9bWFya0xvc3QoKXt0aGlzLmRlc3RydWN0aW9uVGltZXIuc3RhcnQoKX1yZW5ldygpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lci5yZXNldCgpfX19KTt2YXIgeF9lLGJfZT11KCgpPT57amwoKTt0eigpO2dfZSgpO3hfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJbnRlcmVzdE1hcCIpfW9wdGlvbnM7aW50ZXJlc3RPYmplY3RNYXA9bmV3IE00O2ludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZz1uZXcgTWFwO2NvbXBhcmlzb25GdW5jO2NvbnN0cnVjdG9yKGUscj17fSl7dGhpcy5jb21wYXJpc29uRnVuYz1lLHRoaXMub3B0aW9ucz1yfWFzeW5jIGFkZEludGVyZXN0KGUscil7bGV0IGE9dGhpcy5jb21wYXJpc29uRnVuYyhlKSxzLG49dGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuZ2V0KGEpO3JldHVybiBuPyhzPW4scy5yZW5ldygpKToocz1uZXcgcnoodGhpcyxlLHRoaXMuY29tcGFyaXNvbkZ1bmMse21hcmtMb3N0QWZ0ZXJEZWZhdWx0OnRoaXMub3B0aW9ucy5tYXJrTG9zdEFmdGVyRGVmYXVsdCxkZWZhdWx0RnVsbGZpbGxtZW50OnJ9KSx0aGlzLmludGVyZXN0T2JqZWN0TWFwLmFkZChzKSx0aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5zZXQoYSxzKSksdGhpcy5pbnRlcmVzdE9ic2VydmFibGUucHVzaChzKSxzfWludGVyZXN0T2JzZXJ2YWJsZT1uZXcgJGEuT2JzZXJ2YWJsZUludGFrZTtyZW1vdmVJbnRlcmVzdChlKXt0aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRPbmVBbmRSZW1vdmVTeW5jKHI9PmUuY29tcGFyaXNvblN0cmluZz09PXIuY29tcGFyaXNvblN0cmluZyksdGhpcy5pbnRlcmVzdHNCeUNvbXBhcmlzb25TdHJpbmcuZGVsZXRlKGUuY29tcGFyaXNvblN0cmluZyl9Y2hlY2tJbnRlcmVzdChlKXtsZXQgcj10aGlzLmNvbXBhcmlzb25GdW5jKGUpO3JldHVybiB0aGlzLmNoZWNrSW50ZXJlc3RCeVN0cmluZyhyKX1jaGVja0ludGVyZXN0QnlTdHJpbmcoZSl7cmV0dXJuIHRoaXMuaW50ZXJlc3RzQnlDb21wYXJpc29uU3RyaW5nLmhhcyhlKX1pbmZvcm1Mb3N0SW50ZXJlc3QoZSl7bGV0IHI9dGhpcy5maW5kSW50ZXJlc3QoZSk7ciYmci5tYXJrTG9zdCgpfWZpbmRJbnRlcmVzdChlKXtsZXQgcj10aGlzLmNvbXBhcmlzb25GdW5jKGUpO3JldHVybiB0aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5nZXQocik/P251bGx9ZGVzdHJveSgpe2xldCBlPXRoaXMuaW50ZXJlc3RPYmplY3RNYXAuZ2V0QXJyYXkoKTtmb3IobGV0IHIgb2YgZSlyLmRlc3Ryb3koKTt0aGlzLmludGVyZXN0T2JqZWN0TWFwLndpcGUoKSx0aGlzLmludGVyZXN0c0J5Q29tcGFyaXNvblN0cmluZy5jbGVhcigpLHRoaXMuaW50ZXJlc3RPYnNlcnZhYmxlLnNpZ25hbENvbXBsZXRlKCl9fX0pO3ZhciB2X2UsZVp0PXUoKCk9PntqbCgpO3ZfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMaW1pdGVkQXJyYXkiKX1hcnJheT1bXTthcnJheUxpbWl0O2NvbnN0cnVjdG9yKGUpe3RoaXMuYXJyYXlMaW1pdD1lfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5hcnJheS5sZW5ndGh9YWRkT25lKGUpe3RoaXMuYXJyYXkudW5zaGlmdChlKSx0aGlzLmFycmF5Lmxlbmd0aD50aGlzLmFycmF5TGltaXQmJih0aGlzLmFycmF5Lmxlbmd0aD10aGlzLmFycmF5TGltaXQpfWFkZE1hbnkoZSl7Zm9yKGxldCByIG9mIGUpdGhpcy5hZGRPbmUocil9c2V0TGltaXQoZSl7dGhpcy5hcnJheUxpbWl0PWUsdGhpcy5hcnJheS5sZW5ndGg+dGhpcy5hcnJheUxpbWl0JiYodGhpcy5hcnJheS5sZW5ndGg9dGhpcy5hcnJheUxpbWl0KX1nZXRBdmVyYWdlKCl7aWYodGhpcy5hcnJheS5sZW5ndGg9PT0wKXJldHVybiAwO2lmKHR5cGVvZiB0aGlzLmFycmF5WzBdPT0ibnVtYmVyIil7bGV0IGU9MDtmb3IobGV0IHIgb2YgdGhpcy5hcnJheSllPWUrcjtyZXR1cm4gZS90aGlzLmFycmF5Lmxlbmd0aH1lbHNlIHJldHVybiBudWxsfXJlbW92ZShlKXtsZXQgcj10aGlzLmFycmF5LmluZGV4T2YoZSk7cmV0dXJuIHIhPT0tMT8odGhpcy5hcnJheS5zcGxpY2UociwxKSwhMCk6ITF9Y2xlYXIoKXt0aGlzLmFycmF5Lmxlbmd0aD0wfWdldEFycmF5KCl7cmV0dXJuWy4uLnRoaXMuYXJyYXldfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuYXJyYXlbU3ltYm9sLml0ZXJhdG9yXSgpfX19KTt2YXIgeV9lLHRadD11KCgpPT57amwoKTt0eigpO3lfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMb29wVHJhY2tlciIpfXJlZmVyZW5jZU9iamVjdE1hcD1uZXcgTTQ7Y29uc3RydWN0b3IoKXt9Y2hlY2tBbmRUcmFjayhlKXtyZXR1cm4gdGhpcy5yZWZlcmVuY2VPYmplY3RNYXAuY2hlY2tGb3JPYmplY3QoZSk/ITE6KHRoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmFkZChlKSwhMCl9cmVzZXQoKXt0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC53aXBlKCl9ZGVzdHJveSgpe3RoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmRlc3Ryb3koKX19fSk7dmFyIGF6LHdfZT11KCgpPT57amwoKTthej1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTdHJpbmdtYXAiKX1fc3RyaW5nQXJyYXk9W107X3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PVtdO2NvbnN0cnVjdG9yKCl7fWFkZFN0cmluZyhlKXt0aGlzLl9zdHJpbmdBcnJheS5wdXNoKGUpLHRoaXMubm90aWZ5VHJpZ2dlcigpfWFkZFN0cmluZ0FycmF5KGUpe2ZvcihsZXQgciBvZiBlKXRoaXMuYWRkU3RyaW5nKHIpfXJlbW92ZVN0cmluZyhlKXt0aGlzLl9zdHJpbmdBcnJheT10aGlzLl9zdHJpbmdBcnJheS5maWx0ZXIocj0+ciE9PWUpLHRoaXMubm90aWZ5VHJpZ2dlcigpfXdpcGUoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1jaGVja1N0cmluZyhlKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkuaW5kZXhPZihlKSE9PS0xfWNoZWNrTWluaW1hdGNoKGUpe2xldCByPW5ldyB6Qy5TbWFydE1hdGNoKGUpLGE9ITE7Zm9yKGxldCBzIG9mIHRoaXMuX3N0cmluZ0FycmF5KXIubWF0Y2gocykmJihhPSEwKTtyZXR1cm4gYX1jaGVja0lzRW1wdHkoKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkubGVuZ3RoPT09MH1nZXRTdHJpbmdBcnJheSgpe2xldCBlPVtdO2ZvcihsZXQgciBvZiB0aGlzLl9zdHJpbmdBcnJheSllLnB1c2gocik7cmV0dXJuIGV9cmVnaXN0ZXJVbnRpbFRydWUoZSxyKXtsZXQgYT0kdC5kZWZlcigpO3JldHVybiB0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5wdXNoKCgpPT57bGV0IHM9ZSh0aGlzLmdldFN0cmluZ0FycmF5KCkpO3JldHVybiBzPT09ITAmJihyJiZyKCksYS5yZXNvbHZlKCkpLHN9KSx0aGlzLm5vdGlmeVRyaWdnZXIoKSxhLnByb21pc2V9bm90aWZ5VHJpZ2dlcigpe2xldCBlPXRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LmZpbHRlcihyPT4hcigpKTt0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1lfWRlc3Ryb3koKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1bXX19fSk7dmFyIGl6LGtfZT11KCgpPT57amwoKTtpej1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaW1lZEFnZ3JlZ3RvciIpfW9wdGlvbnM7c3RvcmFnZUFycmF5PVtdO2lzU3RvcHBlZD0hMTtjb25zdHJ1Y3RvcihlKXt0aGlzLm9wdGlvbnM9ZX1hZ2dyZWdhdGlvblRpbWVyO2NoZWNrQWdncmVnYXRpb25TdGF0dXMoKXtpZih0aGlzLmlzU3RvcHBlZClyZXR1cm47bGV0IGU9aSgoKT0+e3RoaXMuYWdncmVnYXRpb25UaW1lcj1uZXcgaDYuVGltZXIodGhpcy5vcHRpb25zLmFnZ3JlZ2F0aW9uSW50ZXJ2YWxJbk1pbGxpcyksdGhpcy5hZ2dyZWdhdGlvblRpbWVyLmNvbXBsZXRlZC50aGVuKCgpPT57aWYodGhpcy5pc1N0b3BwZWQpe3RoaXMuYWdncmVnYXRpb25UaW1lcj1udWxsO3JldHVybn1sZXQgcj10aGlzLnN0b3JhZ2VBcnJheTtpZihyLmxlbmd0aD09PTApe3RoaXMuYWdncmVnYXRpb25UaW1lcj1udWxsO3JldHVybn10aGlzLnN0b3JhZ2VBcnJheT1bXSxlKCksdGhpcy5vcHRpb25zLmZ1bmN0aW9uRm9yQWdncmVnYXRpb24ocil9KSx0aGlzLmFnZ3JlZ2F0aW9uVGltZXIuc3RhcnQoKX0sImFkZEFnZ3JlZ2F0aW9uVGltZXIiKTt0aGlzLmFnZ3JlZ2F0aW9uVGltZXJ8fGUoKX1hZGQoZSl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLnN0b3JhZ2VBcnJheS5wdXNoKGUpLHRoaXMuY2hlY2tBZ2dyZWdhdGlvblN0YXR1cygpKX1zdG9wKGU9ITEpe2lmKHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuYWdncmVnYXRpb25UaW1lciYmKHRoaXMuYWdncmVnYXRpb25UaW1lci5yZXNldCgpLHRoaXMuYWdncmVnYXRpb25UaW1lcj1udWxsKSxlJiZ0aGlzLnN0b3JhZ2VBcnJheS5sZW5ndGg+MCl7bGV0IHI9dGhpcy5zdG9yYWdlQXJyYXk7dGhpcy5zdG9yYWdlQXJyYXk9W10sdGhpcy5vcHRpb25zLmZ1bmN0aW9uRm9yQWdncmVnYXRpb24ocil9ZWxzZSB0aGlzLnN0b3JhZ2VBcnJheT1bXX1yZXN0YXJ0KCl7dGhpcy5pc1N0b3BwZWQ9ITF9fX0pO3ZhciBTX2Usclp0PXUoKCk9PntqbCgpO1NfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUcmVlIil9c3ltYm9sVHJlZTtjb25zdHJ1Y3Rvcigpe3RoaXMuc3ltYm9sVHJlZT1uZXcgWDBlLmRlZmF1bHR9aW5pdGlhbGl6ZShlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluaXRpYWxpemUoZSl9aGFzQ2hpbGRyZW4oZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5oYXNDaGlsZHJlbihlKX1maXJzdENoaWxkKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuZmlyc3RDaGlsZChlKX1sYXN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5sYXN0Q2hpbGQoZSl9cHJldmlvdXNTaWJsaW5nKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJldmlvdXNTaWJsaW5nKGUpfW5leHRTaWJsaW5nKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubmV4dFNpYmxpbmcoZSl9cGFyZW50KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucGFyZW50KGUpfWxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSl9cHJlY2VkaW5nKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmVjZWRpbmcoZSxyKX1mb2xsb3dpbmcoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmZvbGxvd2luZyhlLHIpfWNoaWxkcmVuVG9BcnJheShlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5Ub0FycmF5KGUscil9YW5jZXN0b3JzVG9BcnJheShlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuYW5jZXN0b3JzVG9BcnJheShlLHIpfXRyZWVUb0FycmF5KGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS50cmVlVG9BcnJheShlLHIpfWNoaWxkcmVuSXRlcmF0b3IoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuSXRlcmF0b3IoZSxyKX1wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl9bmV4dFNpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5uZXh0U2libGluZ3NJdGVyYXRvcihlKX1hbmNlc3RvcnNJdGVyYXRvcihlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFuY2VzdG9yc0l0ZXJhdG9yKGUpfXRyZWVJdGVyYXRvcihlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUudHJlZUl0ZXJhdG9yKGUscil9aW5kZXgoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbmRleChlKX1jaGlsZHJlbkNvdW50KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5Db3VudChlKX1jb21wYXJlVHJlZVBvc2l0aW9uKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jb21wYXJlVHJlZVBvc2l0aW9uKGUscil9cmVtb3ZlKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucmVtb3ZlKGUpfWluc2VydEJlZm9yZShlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5zZXJ0QmVmb3JlKGUscil9aW5zZXJ0QWZ0ZXIoZSxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluc2VydEFmdGVyKGUscil9cHJlcGVuZENoaWxkKGUscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmVwZW5kQ2hpbGQoZSxyKX1hcHBlbmRDaGlsZChlLHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuYXBwZW5kQ2hpbGQoZSxyKX10b0pzb25XaXRoSGllcmFjaHkoZSl7bGV0IHI9aShhPT57bGV0IHM9W107aWYodGhpcy5oYXNDaGlsZHJlbihhKSl7bGV0IG49dGhpcy5jaGlsZHJlblRvQXJyYXkoYSx7fSk7Zm9yKGxldCBvIG9mIG4pcy5wdXNoKHIobykpfXJldHVybntkYXRhOmEsY2hpbGRyZW46c319LCJidWlsZE5vZGUiKTtyZXR1cm4gcihlKX1mcm9tSnNvbldpdGhIaWVyYWNoeShlLHIpe2xldCBhPWkoKHMsbik9PntsZXQgbz1yP3Iocy5kYXRhKTpzLmRhdGE7dGhpcy5pbml0aWFsaXplKG8pLG4mJnRoaXMuYXBwZW5kQ2hpbGQobixvKTtmb3IobGV0IGwgb2Ygcy5jaGlsZHJlbilhKGwsbyk7cmV0dXJuIG99LCJidWlsZFRyZWUiKTtyZXR1cm4gYShlKX19fSk7dmFyIFpzPXt9O1ZlKFpzLHtBc3luY0V4ZWN1dGlvblN0YWNrOigpPT5oX2UsQmFja3ByZXNzdXJlZEFycmF5OigpPT5tX2UsRmFzdE1hcDooKT0+bTYsSW50ZXJlc3Q6KCk9PnJ6LEludGVyZXN0TWFwOigpPT54X2UsTGltaXRlZEFycmF5OigpPT52X2UsTG9vcFRyYWNrZXI6KCk9PnlfZSxPYmplY3RNYXA6KCk9Pk00LFN0cmluZ21hcDooKT0+YXosVGltZWRBZ2dyZWdhdG9yOigpPT5peixUaW1lZEFnZ3JlZ3RvcjooKT0+aXosVHJlZTooKT0+U19lLHVuaTooKT0+Skt0fSk7dmFyIEpDPXUoKCk9PntRS3QoKTtYS3QoKTtKMGUoKTtiX2UoKTtnX2UoKTtlWnQoKTt0WnQoKTt0eigpO3dfZSgpO2tfZSgpO2tfZSgpO3JadCgpfSk7dmFyIGNwPXt9O1ZlKGNwLHthcmVVaW50OEFycmF5c0VxdWFsOigpPT54eGEsYXNzZXJ0VWludDhBcnJheTooKT0+bHAsYXNzZXJ0VWludDhBcnJheU9yQXJyYXlCdWZmZXI6KCk9Pm9adCxiYXNlNjRUb1N0cmluZzooKT0+TXhhLGJhc2U2NFRvVWludDhBcnJheTooKT0+dVp0LGNvbXBhcmVVaW50OEFycmF5czooKT0+dnhhLGNvbmNhdFVpbnQ4QXJyYXlzOigpPT5ieGEsZ2V0VWludEJFOigpPT5UeGEsaGV4VG9VaW50OEFycmF5OigpPT5feGEsaW5jbHVkZXM6KCk9Pkx4YSxpbmRleE9mOigpPT5wWnQsaXNVaW50OEFycmF5OigpPT5NX2Usc3RyaW5nVG9CYXNlNjQ6KCk9PlN4YSxzdHJpbmdUb1VpbnQ4QXJyYXk6KCk9PmNadCx0b1VpbnQ4QXJyYXk6KCk9Pmd4YSx1aW50OEFycmF5VG9CYXNlNjQ6KCk9PmRadCx1aW50OEFycmF5VG9IZXg6KCk9Pnp4YSx1aW50OEFycmF5VG9TdHJpbmc6KCk9PmxadH0pO2Z1bmN0aW9uIGFadCh0LGUscil7cmV0dXJuIHQ/dC5jb25zdHJ1Y3Rvcj09PWU/ITA6dXhhLmNhbGwodCk9PT1yOiExfWZ1bmN0aW9uIE1fZSh0KXtyZXR1cm4gYVp0KHQsVWludDhBcnJheSxweGEpfWZ1bmN0aW9uIGh4YSh0KXtyZXR1cm4gYVp0KHQsQXJyYXlCdWZmZXIsZnhhKX1mdW5jdGlvbiBteGEodCl7cmV0dXJuIE1fZSh0KXx8aHhhKHQpfWZ1bmN0aW9uIGxwKHQpe2lmKCFNX2UodCkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBVaW50OEFycmF5XGAsIGdvdCBcYCR7dHlwZW9mIHR9XGBgKX1mdW5jdGlvbiBvWnQodCl7aWYoIW14YSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYFVpbnQ4QXJyYXlcYCBvciBcYEFycmF5QnVmZmVyXGAsIGdvdCBcYCR7dHlwZW9mIHR9XGBgKX1mdW5jdGlvbiBneGEodCl7aWYodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBuZXcgVWludDhBcnJheSh0KTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcodCkpcmV0dXJuIG5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpO3Rocm93IG5ldyBUeXBlRXJyb3IoYFVuc3VwcG9ydGVkIHZhbHVlLCBnb3QgXGAke3R5cGVvZiB0fVxgLmApfWZ1bmN0aW9uIGJ4YSh0LGUpe2lmKHQubGVuZ3RoPT09MClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7ZT8/PXQucmVkdWNlKChzLG4pPT5zK24ubGVuZ3RoLDApO2xldCByPW5ldyBVaW50OEFycmF5KGUpLGE9MDtmb3IobGV0IHMgb2YgdClscChzKSxyLnNldChzLGEpLGErPXMubGVuZ3RoO3JldHVybiByfWZ1bmN0aW9uIHh4YSh0LGUpe2lmKGxwKHQpLGxwKGUpLHQ9PT1lKXJldHVybiEwO2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspaWYodFtyXSE9PWVbcl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gdnhhKHQsZSl7bHAodCksbHAoZSk7bGV0IHI9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpO2ZvcihsZXQgYT0wO2E8cjthKyspe2xldCBzPXRbYV0tZVthXTtpZihzIT09MClyZXR1cm4gTWF0aC5zaWduKHMpfXJldHVybiBNYXRoLnNpZ24odC5sZW5ndGgtZS5sZW5ndGgpfWZ1bmN0aW9uIGxadCh0LGU9InV0ZjgiKXtyZXR1cm4gb1p0KHQpLGladFtlXT8/PW5ldyBnbG9iYWxUaGlzLlRleHREZWNvZGVyKGUpLGladFtlXS5kZWNvZGUodCl9ZnVuY3Rpb24gc3oodCl7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgc3RyaW5nXGAsIGdvdCBcYCR7dHlwZW9mIHR9XGBgKX1mdW5jdGlvbiBjWnQodCl7cmV0dXJuIHN6KHQpLHl4YS5lbmNvZGUodCl9ZnVuY3Rpb24gd3hhKHQpe3JldHVybiB0LnJlcGxhY2VBbGwoIisiLCItIikucmVwbGFjZUFsbCgiLyIsIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBreGEodCl7bGV0IGU9dC5yZXBsYWNlQWxsKCItIiwiKyIpLnJlcGxhY2VBbGwoIl8iLCIvIikscj0oNC1lLmxlbmd0aCU0KSU0O3JldHVybiBlKyI9Ii5yZXBlYXQocil9ZnVuY3Rpb24gZFp0KHQse3VybFNhZmU6ZT0hMX09e30pe2xwKHQpO2xldCByPSIiO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSs9c1p0KXtsZXQgcz10LnN1YmFycmF5KGEsYStzWnQpO3IrPWdsb2JhbFRoaXMuYnRvYShTdHJpbmcuZnJvbUNvZGVQb2ludC5hcHBseSh2b2lkIDAscykpfXJldHVybiBlP3d4YShyKTpyfWZ1bmN0aW9uIHVadCh0KXtyZXR1cm4gc3oodCksVWludDhBcnJheS5mcm9tKGdsb2JhbFRoaXMuYXRvYihreGEodCkpLGU9PmUuY29kZVBvaW50QXQoMCkpfWZ1bmN0aW9uIFN4YSh0LHt1cmxTYWZlOmU9ITF9PXt9KXtyZXR1cm4gc3oodCksZFp0KGNadCh0KSx7dXJsU2FmZTplfSl9ZnVuY3Rpb24gTXhhKHQpe3JldHVybiBzeih0KSxsWnQodVp0KHQpKX1mdW5jdGlvbiB6eGEodCl7bHAodCk7bGV0IGU9IiI7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspZSs9Q3hhW3Rbcl1dO3JldHVybiBlfWZ1bmN0aW9uIF94YSh0KXtpZihzeih0KSx0Lmxlbmd0aCUyIT09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSGV4IHN0cmluZyBsZW5ndGguIik7bGV0IGU9dC5sZW5ndGgvMixyPW5ldyBVaW50OEFycmF5KGUpO2ZvcihsZXQgYT0wO2E8ZTthKyspe2xldCBzPW5adFt0W2EqMl1dLG49blp0W3RbYSoyKzFdXTtpZihzPT09dm9pZCAwfHxuPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBIZXggY2hhcmFjdGVyIGVuY291bnRlcmVkIGF0IHBvc2l0aW9uICR7YSoyfWApO3JbYV09czw8NHxufXJldHVybiByfWZ1bmN0aW9uIFR4YSh0KXtsZXR7Ynl0ZUxlbmd0aDplfT10O2lmKGU9PT02KXJldHVybiB0LmdldFVpbnQxNigwKSoyKiozMit0LmdldFVpbnQzMigyKTtpZihlPT09NSlyZXR1cm4gdC5nZXRVaW50OCgwKSoyKiozMit0LmdldFVpbnQzMigxKTtpZihlPT09NClyZXR1cm4gdC5nZXRVaW50MzIoMCk7aWYoZT09PTMpcmV0dXJuIHQuZ2V0VWludDgoMCkqMioqMTYrdC5nZXRVaW50MTYoMSk7aWYoZT09PTIpcmV0dXJuIHQuZ2V0VWludDE2KDApO2lmKGU9PT0xKXJldHVybiB0LmdldFVpbnQ4KDApfWZ1bmN0aW9uIHBadCh0LGUpe2xldCByPXQubGVuZ3RoLGE9ZS5sZW5ndGg7aWYoYT09PTB8fGE+cilyZXR1cm4tMTtsZXQgcz1yLWE7Zm9yKGxldCBuPTA7bjw9cztuKyspe2xldCBvPSEwO2ZvcihsZXQgbD0wO2w8YTtsKyspaWYodFtuK2xdIT09ZVtsXSl7bz0hMTticmVha31pZihvKXJldHVybiBufXJldHVybi0xfWZ1bmN0aW9uIEx4YSh0LGUpe3JldHVybiBwWnQodCxlKSE9PS0xfXZhciB1eGEscHhhLGZ4YSxpWnQseXhhLHNadCxDeGEsblp0LGZadD11KCgpPT57dXhhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcscHhhPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixmeGE9IltvYmplY3QgQXJyYXlCdWZmZXJdIjtpKGFadCwiaXNUeXBlIik7aShNX2UsImlzVWludDhBcnJheSIpO2koaHhhLCJpc0FycmF5QnVmZmVyIik7aShteGEsImlzVWludDhBcnJheU9yQXJyYXlCdWZmZXIiKTtpKGxwLCJhc3NlcnRVaW50OEFycmF5Iik7aShvWnQsImFzc2VydFVpbnQ4QXJyYXlPckFycmF5QnVmZmVyIik7aShneGEsInRvVWludDhBcnJheSIpO2koYnhhLCJjb25jYXRVaW50OEFycmF5cyIpO2koeHhhLCJhcmVVaW50OEFycmF5c0VxdWFsIik7aSh2eGEsImNvbXBhcmVVaW50OEFycmF5cyIpO2ladD17dXRmODpuZXcgZ2xvYmFsVGhpcy5UZXh0RGVjb2RlcigidXRmOCIpfTtpKGxadCwidWludDhBcnJheVRvU3RyaW5nIik7aShzeiwiYXNzZXJ0U3RyaW5nIik7eXhhPW5ldyBnbG9iYWxUaGlzLlRleHRFbmNvZGVyO2koY1p0LCJzdHJpbmdUb1VpbnQ4QXJyYXkiKTtpKHd4YSwiYmFzZTY0VG9CYXNlNjRVcmwiKTtpKGt4YSwiYmFzZTY0VXJsVG9CYXNlNjQiKTtzWnQ9NjU1MzU7aShkWnQsInVpbnQ4QXJyYXlUb0Jhc2U2NCIpO2kodVp0LCJiYXNlNjRUb1VpbnQ4QXJyYXkiKTtpKFN4YSwic3RyaW5nVG9CYXNlNjQiKTtpKE14YSwiYmFzZTY0VG9TdHJpbmciKTtDeGE9QXJyYXkuZnJvbSh7bGVuZ3RoOjI1Nn0sKHQsZSk9PmUudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSk7aSh6eGEsInVpbnQ4QXJyYXlUb0hleCIpO25adD17MDowLDE6MSwyOjIsMzozLDQ6NCw1OjUsNjo2LDc6Nyw4OjgsOTo5LGE6MTAsYjoxMSxjOjEyLGQ6MTMsZToxNCxmOjE1LEE6MTAsQjoxMSxDOjEyLEQ6MTMsRToxNCxGOjE1fTtpKF94YSwiaGV4VG9VaW50OEFycmF5Iik7aShUeGEsImdldFVpbnRCRSIpO2kocFp0LCJpbmRleE9mIik7aShMeGEsImluY2x1ZGVzIil9KTt2YXIgaFp0PXUoKCk9PntmWnQoKX0pO3ZhciBEdj17fTtWZShEdix7YmFzZTY0VG9VaW50OEFycmF5OigpPT5FeGEsZW5zdXJlUHVyZVVpbnQ4QXJyYXk6KCk9Pk54YSxpc0J1ZmZlckxpa2U6KCk9PlB4YSxpc1VpbnQ4QXJyYXk6KCk9Pkl4YSx1SW50OEFycmF5RXh0cmFzOigpPT4keGEsdUludDhBcnJheVRvQmFzZTY0OigpPT5BeGF9KTtmdW5jdGlvbiBBeGEodCl7cmV0dXJuIGNwLnVpbnQ4QXJyYXlUb0Jhc2U2NCh0KX1mdW5jdGlvbiBFeGEodCl7cmV0dXJuIGNwLmJhc2U2NFRvVWludDhBcnJheSh0KX1mdW5jdGlvbiBQeGEodCl7cmV0dXJuIHQmJnR5cGVvZiB0LmJ5dGVMZW5ndGg9PSJudW1iZXIiPyEwOnR5cGVvZiBCdWZmZXI8InUiJiZCdWZmZXIuaXNCdWZmZXI/QnVmZmVyLmlzQnVmZmVyKHQpOiExfWZ1bmN0aW9uIE54YSh0KXtsZXQgZT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aCk7cmV0dXJuIGUuc2V0KHQpLGV9dmFyICR4YSxJeGEsbVp0PXUoKCk9PntoWnQoKTskeGE9Y3A7aShBeGEsInVJbnQ4QXJyYXlUb0Jhc2U2NCIpO2koRXhhLCJiYXNlNjRUb1VpbnQ4QXJyYXkiKTtJeGE9aSh0PT5jcC5pc1VpbnQ4QXJyYXkodCksImlzVWludDhBcnJheSIpO2koUHhhLCJpc0J1ZmZlckxpa2UiKTtpKE54YSwiZW5zdXJlUHVyZVVpbnQ4QXJyYXkiKX0pO3ZhciBuej11KCgpPT57SzEoKX0pO3ZhciBveixlZGU9dSgoKT0+e256KCk7b3o9Y2xhc3N7c3RhdGlje2kodGhpcywiR3VhcmQiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuZ3VhcmRGdW5jdGlvbj1lLHRoaXMub3B0aW9ucz1yfWFzeW5jIGV4ZWMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuZ3VhcmRGdW5jdGlvbihlKX1hc3luYyBnZXRGYWlsZWRIaW50KGUpe3JldHVybiBhd2FpdCB0aGlzLmV4ZWMoZSk/bnVsbDp0aGlzLm9wdGlvbnMuZmFpbGVkSGludH19fSk7dmFyIGx6LENfZT11KCgpPT57bnooKTtsej1jbGFzcyBleHRlbmRzIEVycm9ye3N0YXRpY3tpKHRoaXMsIkd1YXJkRXJyb3IiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9Ikd1YXJkRXJyb3IifX19KTt2YXIgY3osel9lPXUoKCk9PntueigpO2VkZSgpO2N6PWNsYXNzIGV4dGVuZHMgb3p7c3RhdGlje2kodGhpcywiR3VhcmRTZXQiKX1jb25zdHJ1Y3RvcihlPVtdKXtzdXBlcihhc3luYyByPT50aGlzLmFsbEd1YXJkc1Bhc3MocikpLHRoaXMuZ3VhcmRzPWV9YXN5bmMgZXhlY0FsbFdpdGhEYXRhKGUscj17bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KXtsZXQgYT1bXTtmb3IobGV0IG4gb2YgdGhpcy5ndWFyZHMpe2xldCBvPW4uZXhlYyhlKTtpZihyLm1vZGU9PT0ic2VyaWFsIiYmYXdhaXQgbyxhLnB1c2gobyksci5zdG9wT25GYWlsJiYhYXdhaXQgbylyZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoYSl9cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGEpfWFzeW5jIGFsbEd1YXJkc1Bhc3MoZSxyPXttb2RlOiJwYXJhbGxlbCIsc3RvcE9uRmFpbDohMX0pe3JldHVybihhd2FpdCB0aGlzLmV4ZWNBbGxXaXRoRGF0YShlLHIpKS5ldmVyeShzPT5zKX1hc3luYyBhbnlHdWFyZHNQYXNzKGUpe3JldHVybihhd2FpdCB0aGlzLmV4ZWNBbGxXaXRoRGF0YShlLHttb2RlOiJwYXJhbGxlbCIsc3RvcE9uRmFpbDohMX0pKS5zb21lKGE9PmEpfWdldEZhaWxlZEhpbnQoZSl7Zm9yKGxldCByIG9mIHRoaXMuZ3VhcmRzKXtsZXQgYT1yLmdldEZhaWxlZEhpbnQoZSk7aWYoYSlyZXR1cm4gYX19fX0pO3ZhciBkej17fTtWZShkeix7R3VhcmQ6KCk9Pm96LEd1YXJkRXJyb3I6KCk9Pmx6LEd1YXJkU2V0OigpPT5jeixwYXNzR3VhcmRzT3JSZWplY3Q6KCk9Pk94YX0pO3ZhciBPeGEsZ1p0PXUoKCk9PntueigpO2VkZSgpO0NfZSgpO2VkZSgpO3pfZSgpO3pfZSgpO0NfZSgpO094YT1pKGFzeW5jKHQsZSk9PntsZXQgcj1uZXcgY3ooZSk7aWYoIWF3YWl0IHIuYWxsR3VhcmRzUGFzcyh0KSl7bGV0IHM9YXdhaXQgci5nZXRGYWlsZWRIaW50KHQpO3Rocm93IG5ldyBseihgR3VhcmRzIGZhaWxlZDoKJHtzfQogICAgYCl9fSwicGFzc0d1YXJkc09yUmVqZWN0Iil9KTt2YXIgJHYsX19lPXUoKCk9Pnskdj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJbnRlcmNlcHRvck1hbmFnZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycz1bXSx0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzPVtdLHRoaXMuZXJyb3JJbnRlcmNlcHRvcnM9W119YWRkUmVxdWVzdEludGVyY2VwdG9yKGUpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycy5wdXNoKGUpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5wdXNoKGUpfWFkZEVycm9ySW50ZXJjZXB0b3IoZSl7dGhpcy5lcnJvckludGVyY2VwdG9ycy5wdXNoKGUpfXJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcihlKXtsZXQgcj10aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuaW5kZXhPZihlKTtyPi0xJiZ0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuc3BsaWNlKHIsMSl9cmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcihlKXtsZXQgcj10aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmluZGV4T2YoZSk7cj4tMSYmdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5zcGxpY2UociwxKX1yZW1vdmVFcnJvckludGVyY2VwdG9yKGUpe2xldCByPXRoaXMuZXJyb3JJbnRlcmNlcHRvcnMuaW5kZXhPZihlKTtyPi0xJiZ0aGlzLmVycm9ySW50ZXJjZXB0b3JzLnNwbGljZShyLDEpfWNsZWFyQWxsKCl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzPVtdLHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnM9W10sdGhpcy5lcnJvckludGVyY2VwdG9ycz1bXX1hc3luYyBwcm9jZXNzUmVxdWVzdChlKXtsZXQgcj1lO2ZvcihsZXQgYSBvZiB0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgYShyKX1jYXRjaChzKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihzIGluc3RhbmNlb2YgRXJyb3I/czpuZXcgRXJyb3IoU3RyaW5nKHMpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc1Jlc3BvbnNlKGUpe2xldCByPWU7Zm9yKGxldCBhIG9mIHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgYShyKX1jYXRjaChzKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihzIGluc3RhbmNlb2YgRXJyb3I/czpuZXcgRXJyb3IoU3RyaW5nKHMpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc0Vycm9yKGUpe2xldCByPWU7Zm9yKGxldCBhIG9mIHRoaXMuZXJyb3JJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgYShyKX1jYXRjaChzKXtyPXMgaW5zdGFuY2VvZiBFcnJvcj9zOm5ldyBFcnJvcihTdHJpbmcocykpfXJldHVybiByfWdldEludGVyY2VwdG9yQ291bnRzKCl7cmV0dXJue3JlcXVlc3Q6dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLmxlbmd0aCxyZXNwb25zZTp0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmxlbmd0aCxlcnJvcjp0aGlzLmVycm9ySW50ZXJjZXB0b3JzLmxlbmd0aH19fX0pO3ZhciBiWnQ9dSgoKT0+e0sxKCl9KTt2YXIgeFp0PXUoKCk9Pnt9KTt2YXIgVF9lLHZadD11KCgpPT57Ylp0KCk7eFp0KCk7VF9lPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNtYXJ0ZW52Iil9Y29uc3RydWN0b3IoKXt0aGlzLmxvYWRlZFNjcmlwdHM9W119YXN5bmMgZ2V0RW52QXdhcmVNb2R1bGUoZSl7aWYodGhpcy5pc05vZGUpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoZS5ub2RlTW9kdWxlTmFtZSk7aWYodGhpcy5pc0Jyb3dzZXIpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZShlLndlYlVybEFyZyxlLmdldEZ1bmN0aW9uKTtjb25zb2xlLmVycm9yKCJwbGF0Zm9ybSBmb3IgbG9hZGluZyBub3Qgc3VwcG9ydGVkIGJ5IHNtYXJ0ZW52Iil9YXN5bmMgZ2V0U2FmZU5vZGVNb2R1bGUoZSxyKXtpZighdGhpcy5pc05vZGUmJiF0aGlzLmlzRGVubyYmIXRoaXMuaXNCdW4pe2NvbnNvbGUuZXJyb3IoYFlvdSB0cmllZCB0byBsb2FkIGEgc2VydmVyIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7ZX0uIFRoaXMgZG9lcyBub3QgdGhyb3cuYCk7cmV0dXJufWxldCBhPWF3YWl0IG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHtlfScpYCkoKTtyZXR1cm4gciYmYXdhaXQgcihhKSxhfWFzeW5jIGdldFNhZmVXZWJNb2R1bGUoZSxyKXtpZighdGhpcy5pc0Jyb3dzZXIpe2NvbnNvbGUuZXJyb3IoIllvdSB0cmllZCB0byBsb2FkIGEgd2ViIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQiKTtyZXR1cm59aWYodGhpcy5sb2FkZWRTY3JpcHRzLmluY2x1ZGVzKGUpKXJldHVybiByKCk7dGhpcy5sb2FkZWRTY3JpcHRzLnB1c2goZSk7bGV0IGE9JHQuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKGUpLGEucmVzb2x2ZSgpO2Vsc2V7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7cy5vbmxvYWQ9KCk9PnthLnJlc29sdmUoKX0scy5zcmM9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpfXJldHVybiBhd2FpdCBhLnByb21pc2UscigpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBnbG9iYWxUaGlzLkRlbm88InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5EZW5vPy52ZXJzaW9uPCJ1Ij8iZGVubyI6dHlwZW9mIGdsb2JhbFRoaXMuQnVuPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuQnVuPy52ZXJzaW9uPCJ1Ij8iYnVuIjp0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/Lm5vZGU8InUiPyJub2RlIjoodHlwZW9mIGdsb2JhbFRoaXMud2luZG93PCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuZG9jdW1lbnQ8InUiLCJicm93c2VyIil9Z2V0IGlzQnJvd3Nlcigpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iYnJvd3NlciJ9Z2V0IGlzTm9kZSgpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0ibm9kZSJ9Z2V0IGlzRGVubygpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iZGVubyJ9Z2V0IGlzQnVuKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJidW4ifWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc05vZGU/cHJvY2Vzcy52ZXJzaW9uOiJ1bmRlZmluZWQifWdldCBkZW5vVmVyc2lvbigpe3JldHVybiB0aGlzLmlzRGVubz9nbG9iYWxUaGlzLkRlbm8udmVyc2lvbi5kZW5vOiJ1bmRlZmluZWQifWdldCBidW5WZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNCdW4/Z2xvYmFsVGhpcy5CdW4udmVyc2lvbjoidW5kZWZpbmVkIn1hc3luYyBnZXRTYWZlTW9kdWxlRm9yKGUscixhKXtsZXQgcztpZihBcnJheS5pc0FycmF5KGUpP3M9ZS5mbGF0TWFwKG49Pm49PT0ic2VydmVyIj9bIm5vZGUiLCJkZW5vIiwiYnVuIl06W25dKTplPT09InNlcnZlciI/cz1bIm5vZGUiLCJkZW5vIiwiYnVuIl06cz1bZV0sIXMuaW5jbHVkZXModGhpcy5ydW50aW1lRW52KSl7Y29uc29sZS53YXJuKGBNb2R1bGUgIiR7cn0iIHJlcXVlc3RlZCBmb3IgcnVudGltZShzKSBbJHtzLmpvaW4oIiwgIil9XSBidXQgY3VycmVudCBydW50aW1lIGlzICIke3RoaXMucnVudGltZUVudn0iLiBTa2lwcGluZyBsb2FkLmApO3JldHVybn1pZih0aGlzLmlzTm9kZXx8dGhpcy5pc0Rlbm98fHRoaXMuaXNCdW4pcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUocik7aWYodGhpcy5pc0Jyb3dzZXIpe2lmKCFhKXtjb25zb2xlLmVycm9yKGBCcm93c2VyIG1vZHVsZSBsb2FkIHJlcXVpcmVzIGdldEZ1bmN0aW9uIHBhcmFtZXRlciBmb3IgIiR7cn0iYCk7cmV0dXJufXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVXZWJNb2R1bGUocixhKX19Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6dGhpcy5pc0Rlbm8/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIERFTk8iKSxjb25zb2xlLmxvZygiZGVubyB2ZXJzaW9uIGlzICIrdGhpcy5kZW5vVmVyc2lvbikpOnRoaXMuaXNCdW4/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJVTiIpLGNvbnNvbGUubG9nKCJidW4gdmVyc2lvbiBpcyAiK3RoaXMuYnVuVmVyc2lvbikpOihjb25zb2xlLmxvZygicnVubmluZyBvbiBCUk9XU0VSIiksY29uc29sZS5sb2coImJyb3dzZXIgaXMgIit0aGlzLnVzZXJBZ2VudCkpfX19KTt2YXIgSzI9e307VmUoSzIse1NtYXJ0ZW52OigpPT5UX2V9KTt2YXIgdXo9dSgoKT0+e3ZadCgpfSk7dmFyIExfZSxBdj11KCgpPT57TF9lPUdhKEtsZSgpLDEpfSk7dmFyIHRkZT17fTtWZSh0ZGUse2NyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZzooKT0+VnhhLGNyZWF0ZVJhbmRvbVN0cmluZzooKT0+cXhhfSk7dmFyIEJ4YSxIeGEscXhhLFZ4YSx5WnQ9dSgoKT0+e0F2KCk7QnhhPWkoKHQsZSk9PntpZih0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuY3J5cHRvJiZnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2xldCByPWUtdCxhPW5ldyBVaW50MzJBcnJheSgxKTtyZXR1cm4gZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGEpLHQrYVswXSVyfWVsc2UgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KSkrdH0sImdldFJhbmRvbUludCIpLEh4YT1pKCh0LGUscik9PntsZXQgYT17QToiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLGE6ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwwOiIwMTIzNDU2Nzg5IiwiISI6IiFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/IiwiKiI6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IUAjJCVeJiooKV8rLT1bXXt9fDs6LC48Pj8ifSxzPXQ7ZSYmZT50Lmxlbmd0aD9zPXQucmVwZWF0KE1hdGguY2VpbChlL3QubGVuZ3RoKSkuc2xpY2UoMCxlKTplJiYocz10LnNsaWNlKDAsZSkpO2xldCBuPSIiO2ZvcihsZXQgbyBvZiBzKWlmKGFbb10pe2xldCBsPWFbb10sYz1CeGEoMCxsLmxlbmd0aCk7bis9bFtjXX1lbHNlIG4rPW87cmV0dXJuIG59LCJjdXN0b21SYW5kb21hdGljIikscXhhPWkoKHQsZSxyKT0+SHhhKHQsZSxyKSwiY3JlYXRlUmFuZG9tU3RyaW5nIiksVnhhPWkoKCk9PkxfZS51bmkoKSwiY3JlYXRlQ3J5cHRvUmFuZG9tU3RyaW5nIil9KTt2YXIgcmRlPXt9O1ZlKHJkZSx7bWFrZUVudk9iamVjdDooKT0+anhhfSk7dmFyIGp4YSx3WnQ9dSgoKT0+e0F2KCk7anhhPWkoZnVuY3Rpb24odCl7bGV0IGU9e30scj0vKC4qKT0oLiopLztpZih0eXBlb2YgdDwidSIpZm9yKGxldCBhIGluIHQpe2xldCBzPXIuZXhlYyh0W2FdKTtlW3NbMV1dPXNbMl19cmV0dXJuIGV9LCJtYWtlRW52T2JqZWN0Iil9KTt2YXIgZzY9e307VmUoZzYse2luZGVudDooKT0+V3hhLGluZGVudFdpdGhQcmVmaXg6KCk9Pkd4YSxub3JtYWxpemU6KCk9Pll4YX0pO3ZhciBEX2UsJF9lLFV4YSxXeGEsR3hhLFl4YSxrWnQ9dSgoKT0+e0F2KCk7RF9lPWkodD0+e2xldCBlPXQuc3BsaXQoYApgKTtyZXR1cm4gVXhhKGUpfSwic3BsaXRTdHJpbmdBdExpbmVCcmVhayIpLCRfZT1pKHQ9PntsZXQgZT0iIjtmb3IobGV0IHIgb2YgdCllPWUrcitgCmA7cmV0dXJuIGV9LCJqb2luU3RyaW5nV2l0aExpbmVCcmVha3MiKSxVeGE9aSh0PT57bGV0IGU9L15bXHNdKiQvO3JldHVybiBlLnRlc3QodFswXSkmJnQuc2hpZnQoKSxlLnRlc3QodFt0Lmxlbmd0aC0xXSkmJnQucG9wKCksdH0sImNsZWFuU3RyaW5nQXJyYXkiKSxXeGE9aSgodCxlKT0+e2xldCByPURfZSh0KTtmb3IobGV0IHMgb2YgcilzPSIgIi5yZXBlYXQoZSkrcztyZXR1cm4gJF9lKHIpfSwiaW5kZW50IiksR3hhPWkoKHQsZSk9PntsZXQgcixhPURfZSh0KSxzPVtdO2ZvcihsZXQgbiBvZiBhKXMucHVzaChlK24pO3JldHVybiByPSRfZShzKSxyfSwiaW5kZW50V2l0aFByZWZpeCIpLFl4YT1pKHQ9PntsZXQgZSxyPURfZSh0KSxhLHM9L14oXHMqKS8sbj0vXihccyopJC87Zm9yKGxldCBsIG9mIHIpe2xldCBjPXMuZXhlYyhsKVsxXTsodHlwZW9mIGE+InUifHxjLmxlbmd0aDxhKSYmIW4udGVzdChsKSYmKGE9Yy5sZW5ndGgpfWxldCBvPVtdO2ZvcihsZXQgbCBvZiByKW8ucHVzaChsLnN1YnN0cihhKSk7cmV0dXJuIGU9JF9lKG8pLGV9LCJub3JtYWxpemUiKX0pO3ZhciBhZGU9e307VmUoYWRlLHtyZXBsYWNlQWxsOigpPT5TWnQsc3RhbmRhcmQ6KCk9Plp4YX0pO3ZhciBTWnQsS3hhLFp4YSxNWnQ9dSgoKT0+e1NadD1pKCh0LGUscik9PnQucmVwbGFjZShuZXcgUmVnRXhwKGUsImciKSxyKSwicmVwbGFjZUFsbCIpLEt4YT1pKHQ9PntsZXQgZT10LnNwbGl0KGAKYCkscj0xLzA7Zm9yKGxldCBhIG9mIGUpaWYoYS50cmltKCkubGVuZ3RoPjApe2xldCBzPWEubWF0Y2goL14oXHMqKS8pO3MmJihyPU1hdGgubWluKHIsc1sxXS5sZW5ndGgpKX1yZXR1cm4gcj09PTEvMHx8cj09PTA/dDplLm1hcChhPT5hLmxlbmd0aD49cj9hLnNsaWNlKHIpOmEpLmpvaW4oYApgKX0sInN0cmlwSW5kZW50IiksWnhhPWkoKHQsZSk9PntsZXQgcj10O3JldHVybighZXx8ZS5zdHJpcEluZGVudCkmJihyPUt4YShyKSksKCFlfHxlLm5vcm1hbGl6ZU5ld2xpbmUpJiYocj1yLnJlcGxhY2UoL1xyXG4vZyxgCmApKSwoIWV8fGUucmVwbGFjZVRhYnMpJiYocj1TWnQociwiCS8iLCIgIikpLCghZXx8ZS5zdHJpcExlYWRpbmdUcmFpbGluZ0VtcHR5TGluZXMpJiYocj1yLnJlcGxhY2UoL15ccypbXHJcbl0vZ20sIiIpLnJlcGxhY2UoL1xzKltcclxuXSQvZ20sIiIpKSwoIWV8fGUuc3RyaXBBbGxFbXB0eUxpbmVzKSYmKHI9ci5yZXBsYWNlKC9eXHMqW1xyXG5dL2dtLCIiKSkscn0sInN0YW5kYXJkIil9KTt2YXIgQV9lLGlkZSxFdixFX2U9dSgoKT0+e0FfZT17ZW5jb2RlOmkodD0+e2lmKHR5cGVvZiBCdWZmZXI8InUiKXJldHVybiBCdWZmZXIuZnJvbSh0LCJ1dGY4IikudG9TdHJpbmcoImJhc2U2NCIpO2lmKHR5cGVvZiBidG9hPCJ1Iil7bGV0IGU9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHQpLHI9QXJyYXkuZnJvbShlLGE9PlN0cmluZy5mcm9tQ2hhckNvZGUoYSkpLmpvaW4oIiIpO3JldHVybiBidG9hKHIpfWVsc2V7bGV0IGU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLHI9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHQpLGE9IiIscz0wO2Zvcig7czxyLmxlbmd0aDspe2xldCBuPXJbcysrXSxvPXM8ci5sZW5ndGg/cltzKytdOjAsbD1zPHIubGVuZ3RoP3JbcysrXTowLGM9bjw8MTZ8bzw8OHxsO2ErPWUuY2hhckF0KGM+PjE4JjYzKSxhKz1lLmNoYXJBdChjPj4xMiY2MyksYSs9cy0yPHIubGVuZ3RoP2UuY2hhckF0KGM+PjYmNjMpOiI9IixhKz1zLTE8ci5sZW5ndGg/ZS5jaGFyQXQoYyY2Myk6Ij0ifXJldHVybiBhfX0sImVuY29kZSIpLGRlY29kZTppKHQ9PntsZXQgZT10LnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpLnBhZEVuZCh0Lmxlbmd0aCsoNC10Lmxlbmd0aCU0KSU0LCI9Iik7aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKGUsImJhc2U2NCIpLnRvU3RyaW5nKCJ1dGY4Iik7aWYodHlwZW9mIGF0b2I8InUiKXtsZXQgcj1hdG9iKGUpLGE9bmV3IFVpbnQ4QXJyYXkoci5sZW5ndGgpO2ZvcihsZXQgcz0wO3M8ci5sZW5ndGg7cysrKWFbc109ci5jaGFyQ29kZUF0KHMpO3JldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoYSl9ZWxzZXtsZXQgcj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsYT1bXSxzPTA7Zm9yKDtzPGUubGVuZ3RoOyl7bGV0IG49ci5pbmRleE9mKGUuY2hhckF0KHMrKykpLG89ci5pbmRleE9mKGUuY2hhckF0KHMrKykpLGw9ci5pbmRleE9mKGUuY2hhckF0KHMrKykpLGM9ci5pbmRleE9mKGUuY2hhckF0KHMrKykpLGQ9bjw8MTh8bzw8MTJ8bDw8NnxjO2EucHVzaChkPj4xNiYyNTUpLGwhPT02NCYmYS5wdXNoKGQ+PjgmMjU1KSxjIT09NjQmJmEucHVzaChkJjI1NSl9cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShuZXcgVWludDhBcnJheShhKSl9fSwiZGVjb2RlIil9LGlkZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJCYXNlNjQiKX1jb25zdHJ1Y3RvcihlLHIpe3N3aXRjaChyKXtjYXNlInN0cmluZyI6dGhpcy5yZWZTdHJpbmc9ZTticmVhaztjYXNlImJhc2U2NCI6dGhpcy5yZWZTdHJpbmc9RXYuZGVjb2RlKGUpO2JyZWFrO2Nhc2UiYmFzZTY0dXJpIjp0aGlzLnJlZlN0cmluZz1Fdi5kZWNvZGUoZSl9fWdldCBzaW1wbGVTdHJpbmcoKXtyZXR1cm4gdGhpcy5yZWZTdHJpbmd9Z2V0IGJhc2U2NFN0cmluZygpe3JldHVybiBFdi5lbmNvZGUodGhpcy5yZWZTdHJpbmcpfWdldCBiYXNlNjRVcmlTdHJpbmcoKXtyZXR1cm4gRXYuZW5jb2RlVXJpKHRoaXMucmVmU3RyaW5nKX19LEV2PXtlbmNvZGU6aSh0PT5BX2UuZW5jb2RlKHQpLCJlbmNvZGUiKSxlbmNvZGVVcmk6aSh0PT5BX2UuZW5jb2RlKHQpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPS9nLCIiKSwiZW5jb2RlVXJpIiksZGVjb2RlOmkodD0+QV9lLmRlY29kZSh0KSwiZGVjb2RlIiksaXNCYXNlNjQ6aSh0PT4vXihbQS1aYS16MC05Ky9dezR9KSooW0EtWmEtejAtOSsvXXszfT18W0EtWmEtejAtOSsvXXsyfT09KT8kLy50ZXN0KHQpLCJpc0Jhc2U2NCIpfX0pO3ZhciBzZGU9e307VmUoc2RlLHtpc0Jhc2U2NDooKT0+WHhhLGlzVXRmODooKT0+UXhhfSk7dmFyIFF4YSxYeGEsQ1p0PXUoKCk9PntBdigpO0VfZSgpO1F4YT1pKHQ9PntsZXQgcj1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCksYT0wO2Zvcig7YTxyLmxlbmd0aDspe2lmKHJbYV09PT05fHxyW2FdPT09MTB8fHJbYV09PT0xM3x8MzI8PXJbYV0mJnJbYV08PTEyNil7YSs9MTtjb250aW51ZX1pZigxOTQ8PXJbYV0mJnJbYV08PTIyMyYmMTI4PD1yW2ErMV0mJnJbYSsxXTw9MTkxKXthKz0yO2NvbnRpbnVlfWlmKHJbYV09PT0yMjQmJjE2MDw9clthKzFdJiZyW2ErMV08PTE5MSYmMTI4PD1yW2ErMl0mJnJbYSsyXTw9MTkxfHwoMjI1PD1yW2FdJiZyW2FdPD0yMzZ8fHJbYV09PT0yMzh8fHJbYV09PT0yMzkpJiYxMjg8PXJbYSsxXSYmclthKzFdPD0xOTEmJjEyODw9clthKzJdJiZyW2ErMl08PTE5MXx8clthXT09PTIzNyYmMTI4PD1yW2ErMV0mJnJbYSsxXTw9MTU5JiYxMjg8PXJbYSsyXSYmclthKzJdPD0xOTEpe2ErPTM7Y29udGludWV9aWYoclthXT09PTI0MCYmMTQ0PD1yW2ErMV0mJnJbYSsxXTw9MTkxJiYxMjg8PXJbYSsyXSYmclthKzJdPD0xOTEmJjEyODw9clthKzNdJiZyW2ErM108PTE5MXx8MjQxPD1yW2FdJiZyW2FdPD0yNDMmJjEyODw9clthKzFdJiZyW2ErMV08PTE5MSYmMTI4PD1yW2ErMl0mJnJbYSsyXTw9MTkxJiYxMjg8PXJbYSszXSYmclthKzNdPD0xOTF8fHJbYV09PT0yNDQmJjEyODw9clthKzFdJiZyW2ErMV08PTE0MyYmMTI4PD1yW2ErMl0mJnJbYSsyXTw9MTkxJiYxMjg8PXJbYSszXSYmclthKzNdPD0xOTEpe2ErPTQ7Y29udGludWV9cmV0dXJuITF9cmV0dXJuITB9LCJpc1V0ZjgiKSxYeGE9aSh0PT57bGV0IGU9L1teQS1aMC05K1wvPV0vaSxyPXQubGVuZ3RoO2lmKCFyfHxyJTQhPT0wfHxlLnRlc3QodCkpcmV0dXJuITE7bGV0IGE9dC5pbmRleE9mKCI9Iik7cmV0dXJuIGE9PT0tMXx8YT09PXItMXx8YT09PXItMiYmdFtyLTFdPT09Ij0ifSwiaXNCYXNlNjQiKX0pO3ZhciBuZGUselp0PXUoKCk9PntuZGU9Y2xhc3N7c3RhdGlje2kodGhpcywiRG9tYWluIil9Y29uc3RydWN0b3IoZSl7dGhpcy5wcm90b2NvbD10aGlzLl9wcm90b2NvbFJlZ2V4KGUpLHRoaXMucHJvdG9jb2x8fChlPWBodHRwczovLyR7ZX1gKSx0aGlzLm5vZGVQYXJzZWRVcmw9bmV3IFVSTChlKSx0aGlzLnBvcnQ9dGhpcy5ub2RlUGFyc2VkVXJsLnBvcnQ7bGV0IHI9dGhpcy5fZG9tYWluUmVnZXgoZS5yZXBsYWNlKHRoaXMubm9kZVBhcnNlZFVybC5wYXRobmFtZSwiIikpO3RoaXMuZnVsbE5hbWU9IiI7Zm9yKGxldCBhPTE7YTw9NTthKyspaWYoclthLTFdKXtsZXQgcz1yW2EtMV07dGhpc1sibGV2ZWwiK2EudG9TdHJpbmcoKV09cyx0aGlzLmZ1bGxOYW1lPT09IiI/dGhpcy5mdWxsTmFtZT1zOnRoaXMuZnVsbE5hbWU9cysiLiIrdGhpcy5mdWxsTmFtZX1lbHNlIHRoaXNbImxldmVsIithLnRvU3RyaW5nKCldPXZvaWQgMDt0aGlzLnpvbmVOYW1lPXRoaXMubGV2ZWwyKyIuIit0aGlzLmxldmVsMSx0aGlzLnRvcExldmVsPXRoaXMubGV2ZWwxLHRoaXMuZG9tYWluTmFtZT10aGlzLmxldmVsMix0aGlzLnN1YkRvbWFpbj10aGlzLmxldmVsM31fZG9tYWluUmVnZXgoZSl7bGV0IGE9LyhbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9JC8uZXhlYyhlKTtyZXR1cm4gYS5yZXZlcnNlKCksYS5wb3AoKSxhLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbiE9PSIifSl9X3Byb3RvY29sUmVnZXgoZSl7bGV0IGE9L14oW2EtekEtWjAtOV0qKTpcL1wvLy5leGVjKGUpO2lmKGEpcmV0dXJuIGFbMV19X3BvcnRSZWdleChlKXtsZXQgYT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWMoZSk7aWYoYSlyZXR1cm4gYVsxXX19fSk7dmFyIG9kZSxKeGEsX1p0LFRadD11KCgpPT57QXYoKTtvZGU9Y2xhc3N7c3RhdGlje2kodGhpcywiR2l0UmVwbyIpfWNvbnN0cnVjdG9yKGUscil7bGV0IGE9SnhhKGUpO3RoaXMuaG9zdD1hWzFdLHRoaXMudXNlcj1hWzJdLHRoaXMucmVwbz1hWzNdLHRoaXMuYWNjZXNzVG9rZW49cix0aGlzLnNzaFVybD1fWnQodGhpcy5ob3N0LHRoaXMudXNlcix0aGlzLnJlcG8sdGhpcy5hY2Nlc3NUb2tlbiwic3NoIiksdGhpcy5odHRwc1VybD1fWnQodGhpcy5ob3N0LHRoaXMudXNlcix0aGlzLnJlcG8sdGhpcy5hY2Nlc3NUb2tlbiwiaHR0cHMiKX19LEp4YT1pKGZ1bmN0aW9uKHQpe3JldHVybi8oW2EtekEtWjAtOVwtX1wuXSopKD86XC98XDopKFthLXpBLVowLTlcLV9cLl0qKSg/OlwvKShbYS16QS1aMC05XC1fXC5dKikoPzpcLmdpdCkvLmV4ZWModCl9LCJnaXRSZWdleCIpLF9adD1pKGZ1bmN0aW9uKHQsZSxyLGE9IiIscyl7bGV0IG47c3dpdGNoKGEhPT0iIiYmKGE9YSsiQCIpLHMpe2Nhc2UiaHR0cHMiOm49Imh0dHBzOi8vIithK3QrIi8iK2UrIi8iK3IrIi5naXQiO2JyZWFrO2Nhc2Uic3NoIjpuPSJnaXRAIit0KyI6IitlKyIvIityKyIuZ2l0IjticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIkxpbmsgVHlwZSAiK3MrIiBub3Qga25vd24iKTticmVha31yZXR1cm4gbn0sImdpdExpbmsiKX0pO3ZhciBaMj17fTtWZShaMix7QmFzZTY0OigpPT5pZGUsRG9tYWluOigpPT5uZGUsR2l0UmVwbzooKT0+b2RlLGJhc2U2NDooKT0+RXYsY3JlYXRlOigpPT50ZGUsZG9ja2VyOigpPT5yZGUsaW5kZW50OigpPT5nNixub3JtYWxpemU6KCk9PmFkZSx0eXBlOigpPT5zZGV9KTt2YXIgbGRlPXUoKCk9Pnt5WnQoKTt3WnQoKTtrWnQoKTtNWnQoKTtDWnQoKTtFX2UoKTt6WnQoKTtUWnQoKX0pO3ZhciBEWnQ9TnQoKE9hbixMWnQpPT57InVzZSBzdHJpY3QiO0xadC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZXx8KGU9e30pLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT17Y21wOmV9KTt2YXIgcj10eXBlb2YgZS5jeWNsZXM9PSJib29sZWFuIj9lLmN5Y2xlczohMSxhPWUuY21wJiYoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihsLGMpe3ZhciBkPXtrZXk6bCx2YWx1ZTpvW2xdfSxmPXtrZXk6Yyx2YWx1ZTpvW2NdfTtyZXR1cm4gbihkLGYpfX19KShlLmNtcCkscz1bXTtyZXR1cm4gaSgoZnVuY3Rpb24gbihvKXtpZihvJiZvLnRvSlNPTiYmdHlwZW9mIG8udG9KU09OPT0iZnVuY3Rpb24iJiYobz1vLnRvSlNPTigpKSxvIT09dm9pZCAwKXtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIGlzRmluaXRlKG8pPyIiK286Im51bGwiO2lmKHR5cGVvZiBvIT0ib2JqZWN0IilyZXR1cm4gSlNPTi5zdHJpbmdpZnkobyk7dmFyIGwsYztpZihBcnJheS5pc0FycmF5KG8pKXtmb3IoYz0iWyIsbD0wO2w8by5sZW5ndGg7bCsrKWwmJihjKz0iLCIpLGMrPW4ob1tsXSl8fCJudWxsIjtyZXR1cm4gYysiXSJ9aWYobz09PW51bGwpcmV0dXJuIm51bGwiO2lmKHMuaW5kZXhPZihvKSE9PS0xKXtpZihyKXJldHVybiBKU09OLnN0cmluZ2lmeSgiX19jeWNsZV9fIik7dGhyb3cgbmV3IFR5cGVFcnJvcigiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTiIpfXZhciBkPXMucHVzaChvKS0xLGY9T2JqZWN0LmtleXMobykuc29ydChhJiZhKG8pKTtmb3IoYz0iIixsPTA7bDxmLmxlbmd0aDtsKyspe3ZhciBwPWZbbF0saD1uKG9bcF0pO2gmJihjJiYoYys9IiwiKSxjKz1KU09OLnN0cmluZ2lmeShwKSsiOiIraCl9cmV0dXJuIHMuc3BsaWNlKGQsMSksInsiK2MrIn0ifX0pLCJzdHJpbmdpZnkiKSh0KX19KTt2YXIgJFp0LGNkZSxJX2U9dSgoKT0+e3V6KCk7bGRlKCk7JFp0PUdhKERadCgpLDEpLGNkZT0kWnQuZGVmYXVsdH0pO2Z1bmN0aW9uIHR2YSh0KXtsZXQgZT1BWnQoKTtyZXR1cm4gZT9lLmZyb20odCkudG9TdHJpbmcoImJhc2U2NCIpOmJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi50KSl9ZnVuY3Rpb24gcnZhKHQpe2xldCBlPUFadCgpO2lmKGUpe2xldCByPWUuZnJvbSh0LCJiYXNlNjQiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoci5idWZmZXIsci5ieXRlT2Zmc2V0LHIuYnl0ZUxlbmd0aCl9cmV0dXJuIG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oYXRvYih0KSkubWFwKHI9PnIuY2hhckNvZGVBdCgwKSkpfWZ1bmN0aW9uIE5fZSh0LGUpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0LGRkZSxlKX1mdW5jdGlvbiBPX2UodCl7cmV0dXJuIEpTT04ucGFyc2UodCxFWnQpfWZ1bmN0aW9uIGF2YSh0KXtyZXR1cm4gUFp0KHQpJiZ0LnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJlBfZSh0LmRhdGEpfWZ1bmN0aW9uIGl2YSh0KXtyZXR1cm4gUFp0KHQpJiZ0LnR5cGU9PT0iQnVmZmVyIiYmKEladCh0LmRhdGEpfHxQX2UodC5kYXRhKSl8fHQgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIEladCh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KX1mdW5jdGlvbiBQX2UodCl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIn1mdW5jdGlvbiBQWnQodCl7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGx9dmFyIEFadCxkZGUsRVp0LE5adD11KCgpPT57SV9lKCk7QVp0PWkoKCk9Pmdsb2JhbFRoaXMuQnVmZmVyLCJnZXROb2RlQnVmZmVyIik7aSh0dmEsImJhc2U2NEVuY29kZSIpO2kocnZhLCJiYXNlNjREZWNvZGUiKTtpKE5fZSwic3RyaW5naWZ5Iik7aShPX2UsInBhcnNlIik7ZGRlPWkoKHQsZSk9PntpZihpdmEoZSkpe2xldCByO2lmKCJkYXRhImluIGUmJkladChlLmRhdGEpKXI9bmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KXI9ZTtlbHNlIHJldHVybiBlO3JldHVybnt0eXBlOiJFbmNvZGVkQnVmZmVyIixkYXRhOiJiYXNlNjQ6Iit0dmEocil9fXJldHVybiBlfSwicmVwbGFjZXIiKSxFWnQ9aSgodCxlKT0+e2lmKGF2YShlKSYmUF9lKGUuZGF0YSkmJmUuZGF0YS5zdGFydHNXaXRoKCJiYXNlNjQ6Iikpe2xldCByPWUuZGF0YS5zbGljZSg3KTtyZXR1cm4gcnZhKHIpfXJldHVybiBlfSwicmV2aXZlciIpO2koYXZhLCJpc0VuY29kZWRCdWZmZXIiKTtpKGl2YSwiaXNCdWZmZXJMaWtlIik7aShJWnQsImlzQXJyYXkiKTtpKFBfZSwiaXNTdHJpbmciKTtpKFBadCwiaXNPYmplY3QiKX0pO3ZhciBRcz17fTtWZShRcyx7U21hcnRqc29uOigpPT5GX2UsZGVlcEVxdWFsSnNvbkxTdHJpbmdzOigpPT5wdmEsZGVlcEVxdWFsT2JqZWN0czooKT0+T1p0LGZvbGREZWM6KCk9PnV2YSxwYXJzZTooKT0+dWRlLHBhcnNlQmFzZTY0OigpPT5kdmEscGFyc2VKc29uTDooKT0+Ul9lLHN0YWJsZU9uZVdheVN0cmluZ2lmeTooKT0+b3ZhLHN0cmluZ2lmeTooKT0+YjYsc3RyaW5naWZ5QmFzZTY0OigpPT5jdmEsc3RyaW5naWZ5SnNvbkw6KCk9Pm52YSxzdHJpbmdpZnlQcmV0dHk6KCk9Pmx2YX0pO3ZhciB1ZGUsUl9lLG52YSxvdmEsYjYsbHZhLGN2YSxkdmEsRl9lLHV2YSxPWnQscHZhLEl2PXUoKCk9PntJX2UoKTtOWnQoKTt1ZGU9T19lLFJfZT1pKHQ9PnQuc3BsaXQoYApgKS5yZWR1Y2UoKGEscyk9PntsZXQgbj1zLnRyaW0oKTtyZXR1cm4gbi5sZW5ndGg+MCYmYS5wdXNoKHVkZShuKSksYX0sW10pLCJwYXJzZUpzb25MIiksbnZhPWkodD0+dC5tYXAoZT0+YjYoZSkpLmpvaW4oYApgKSwic3RyaW5naWZ5SnNvbkwiKSxvdmE9aSgodCxlLHI9e30pPT57bGV0IGE9bmV3IFdlYWtTZXQscz1pKGw9PntpZihsPT09bnVsbHx8dHlwZW9mIGwhPSJvYmplY3QiKXJldHVybiBsO2xldCBjPWRkZSgiIixsKTtpZihjJiZjLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJnR5cGVvZiBjLmRhdGE9PSJzdHJpbmciKXJldHVybiBjO2lmKGEuaGFzKGwpKXJldHVybiJfX2N5Y2xlX18iO2lmKGEuYWRkKGwpLEFycmF5LmlzQXJyYXkobCkpcmV0dXJuIGwubWFwKGY9PnMoZikpO2xldCBkPXt9O2ZvcihsZXQgZiBvZiBPYmplY3Qua2V5cyhsKSl0cnl7ZFtmXT1zKGxbZl0pfWNhdGNoe2RbZl09Il9fdW5zZXJpYWxpemFibGVfXyJ9cmV0dXJuIGR9LCJzYW5pdGl6ZSIpLG49cyh0KSxvPXsuLi5yLGN5Y2xlczohMH07aWYoZSYmIW8uY21wKXtsZXQgbD1uZXcgTWFwO2UuZm9yRWFjaCgoYyxkKT0+bC5zZXQoYyxkKSksby5jbXA9KGMsZCk9PntsZXQgZj1sLmhhcyhjLmtleSk/bC5nZXQoYy5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxwPWwuaGFzKGQua2V5KT9sLmdldChkLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiBmIT09cD9mLXA6Yy5rZXk8ZC5rZXk/LTE6Yy5rZXk+ZC5rZXk/MTowfX1yZXR1cm4gY2RlKG4sbyl9LCJzdGFibGVPbmVXYXlTdHJpbmdpZnkiKSxiNj1pKCh0LGUscj17fSk9PntsZXQgYT1OX2UodCk7dD1KU09OLnBhcnNlKGEpO2xldCBzPXsuLi5yfTtpZihlJiYhcy5jbXApe2xldCBvPW5ldyBNYXA7ZS5mb3JFYWNoKChsLGMpPT5vLnNldChsLGMpKSxzLmNtcD0obCxjKT0+e2xldCBkPW8uaGFzKGwua2V5KT9vLmdldChsLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGY9by5oYXMoYy5rZXkpP28uZ2V0KGMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGQhPT1mP2QtZjpsLmtleTxjLmtleT8tMTpsLmtleT5jLmtleT8xOjB9fXJldHVybiBjZGUodCxzKX0sInN0cmluZ2lmeSIpLGx2YT1pKHQ9PntsZXQgZT1iNih0KSxyPUpTT04ucGFyc2UoZSk7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHIsbnVsbCwyKX0sInN0cmluZ2lmeVByZXR0eSIpLGN2YT1pKCguLi50KT0+e2xldCBlPWI2KC4uLnQpO3JldHVybiBaMi5iYXNlNjQuZW5jb2RlVXJpKGUpfSwic3RyaW5naWZ5QmFzZTY0IiksZHZhPWkodD0+e2xldCBlPVoyLmJhc2U2NCxhPShlLmRlY29kZVVyaXx8ZS5kZWNvZGUpKHQpO3JldHVybiB1ZGUoYSl9LCJwYXJzZUJhc2U2NCIpLEZfZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIlNtYXJ0anNvbiIpfXN0YXRpYyBlbmZvbGRGcm9tT2JqZWN0KGUpe2xldCByPW5ldyB0aGlzLGE9ci5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgcyBpbiBlKWEuaW5kZXhPZihzKSE9PS0xJiYocltzXT1lW3NdKTtyZXR1cm4gcn1zdGF0aWMgZW5mb2xkRnJvbUpzb24oZSl7bGV0IHI9dWRlKGUpO3JldHVybiB0aGlzLmVuZm9sZEZyb21PYmplY3Qocil9c2F2ZWFibGVQcm9wZXJ0aWVzPVtdO2ZvbGRUb09iamVjdCgpe2xldCBlPW5ldyBTZXQ7cmV0dXJuIGUuYWRkKHRoaXMpLHRoaXMuZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9Zm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl7bGV0IHI9e30sYT1pKG49PntpZihuIGluc3RhbmNlb2YgdCl7aWYoZS5oYXMobikpdGhyb3cgbmV3IEVycm9yKCJjeWNsZSBkZXRlY3RlZCIpO3JldHVybiBlLmFkZChuKSxuLmZvbGRUb09iamVjdEludGVybmFsKGUpfXJldHVybiBBcnJheS5pc0FycmF5KG4pP24ubWFwKG89PmEobykpOnN0cnVjdHVyZWRDbG9uZShuKX0sImZvbGRWYWx1ZSIpLHM9dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgbiBvZiBzKXtsZXQgbz10aGlzW25dO3Jbbl09YShvKX1yZXR1cm4gcn1mb2xkVG9Kc29uKCl7bGV0IGU9dGhpcy5mb2xkVG9PYmplY3QoKTtyZXR1cm4gYjYoZSl9fSx1dmE9aSgoKT0+KHQsZSk9PntsZXQgcj1TdHJpbmcoZS5uYW1lKTtlLmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uKCl7dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fCh0aGlzLnNhdmVhYmxlUHJvcGVydGllcz1bXSksdGhpcy5zYXZlYWJsZVByb3BlcnRpZXMuaW5jbHVkZXMocil8fHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzLnB1c2gocil9KX0sImZvbGREZWMiKSxPWnQ9aSgodCxlKT0+e2xldCByPWI2KHQpLGE9YjYoZSk7cmV0dXJuIHI9PT1hfSwiZGVlcEVxdWFsT2JqZWN0cyIpLHB2YT1pKCh0LGUpPT57bGV0IHI9Ul9lKHQpLGE9Ul9lKGUpO3JldHVybiBPWnQocixhKX0sImRlZXBFcXVhbEpzb25MU3RyaW5ncyIpfSk7dmFyIGZ6PXt9O1ZlKGZ6LHtkZWxldGVEQjooKT0+V1p0LG9wZW5EQjooKT0+VVp0LHVud3JhcDooKT0+cHosd3JhcDooKT0+SDB9KTtmdW5jdGlvbiBmdmEoKXtyZXR1cm4gUlp0fHwoUlp0PVtJREJEYXRhYmFzZSxJREJPYmplY3RTdG9yZSxJREJJbmRleCxJREJDdXJzb3IsSURCVHJhbnNhY3Rpb25dKX1mdW5jdGlvbiBodmEoKXtyZXR1cm4gRlp0fHwoRlp0PVtJREJDdXJzb3IucHJvdG90eXBlLmFkdmFuY2UsSURCQ3Vyc29yLnByb3RvdHlwZS5jb250aW51ZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlUHJpbWFyeUtleV0pfWZ1bmN0aW9uIG12YSh0KXtsZXQgZT1uZXcgUHJvbWlzZSgocixhKT0+e2xldCBzPWkoKCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSwidW5saXN0ZW4iKSxuPWkoKCk9PntyKEgwKHQucmVzdWx0KSkscygpfSwic3VjY2VzcyIpLG89aSgoKT0+e2EodC5lcnJvcikscygpfSwiZXJyb3IiKTt0LmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLHQuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSk7cmV0dXJuIHBkZS5zZXQoZSx0KSxlfWZ1bmN0aW9uIGd2YSh0KXtpZihIX2UuaGFzKHQpKXJldHVybjtsZXQgZT1uZXcgUHJvbWlzZSgocixhKT0+e2xldCBzPWkoKCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIixuKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixvKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0sInVubGlzdGVuIiksbj1pKCgpPT57cigpLHMoKX0sImNvbXBsZXRlIiksbz1pKCgpPT57YSh0LmVycm9yfHxuZXcgRE9NRXhjZXB0aW9uKCJBYm9ydEVycm9yIiwiQWJvcnRFcnJvciIpKSxzKCl9LCJlcnJvciIpO3QuYWRkRXZlbnRMaXN0ZW5lcigiY29tcGxldGUiLG4pLHQuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pLHQuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSk7SF9lLnNldCh0LGUpfWZ1bmN0aW9uIEJadCh0KXtWX2U9dChWX2UpfWZ1bmN0aW9uIGJ2YSh0KXtyZXR1cm4gaHZhKCkuaW5jbHVkZXModCk/ZnVuY3Rpb24oLi4uZSl7cmV0dXJuIHQuYXBwbHkocHoodGhpcyksZSksSDAodGhpcy5yZXF1ZXN0KX06ZnVuY3Rpb24oLi4uZSl7cmV0dXJuIEgwKHQuYXBwbHkocHoodGhpcyksZSkpfX1mdW5jdGlvbiB4dmEodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP2J2YSh0KToodCBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiZndmEodCksQl9lKHQsZnZhKCkpP25ldyBQcm94eSh0LFZfZSk6dCl9ZnVuY3Rpb24gSDAodCl7aWYodCBpbnN0YW5jZW9mIElEQlJlcXVlc3QpcmV0dXJuIG12YSh0KTtpZihxX2UuaGFzKHQpKXJldHVybiBxX2UuZ2V0KHQpO2xldCBlPXh2YSh0KTtyZXR1cm4gZSE9PXQmJihxX2Uuc2V0KHQsZSkscGRlLnNldChlLHQpKSxlfWZ1bmN0aW9uIFVadCh0LGUse2Jsb2NrZWQ6cix1cGdyYWRlOmEsYmxvY2tpbmc6cyx0ZXJtaW5hdGVkOm59PXt9KXtsZXQgbz1pbmRleGVkREIub3Blbih0LGUpLGw9SDAobyk7cmV0dXJuIGEmJm8uYWRkRXZlbnRMaXN0ZW5lcigidXBncmFkZW5lZWRlZCIsYz0+e2EoSDAoby5yZXN1bHQpLGMub2xkVmVyc2lvbixjLm5ld1ZlcnNpb24sSDAoby50cmFuc2FjdGlvbiksYyl9KSxyJiZvLmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrZWQiLGM9PnIoYy5vbGRWZXJzaW9uLGMubmV3VmVyc2lvbixjKSksbC50aGVuKGM9PntuJiZjLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwoKT0+bigpKSxzJiZjLmFkZEV2ZW50TGlzdGVuZXIoInZlcnNpb25jaGFuZ2UiLGQ9PnMoZC5vbGRWZXJzaW9uLGQubmV3VmVyc2lvbixkKSl9KS5jYXRjaCgoKT0+e30pLGx9ZnVuY3Rpb24gV1p0KHQse2Jsb2NrZWQ6ZX09e30pe2xldCByPWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSh0KTtyZXR1cm4gZSYmci5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIixhPT5lKGEub2xkVmVyc2lvbixhKSksSDAocikudGhlbigoKT0+e30pfWZ1bmN0aW9uIEhadCh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIElEQkRhdGFiYXNlJiYhKGUgaW4gdCkmJnR5cGVvZiBlPT0ic3RyaW5nIikpcmV0dXJuO2lmKGpfZS5nZXQoZSkpcmV0dXJuIGpfZS5nZXQoZSk7bGV0IHI9ZS5yZXBsYWNlKC9Gcm9tSW5kZXgkLywiIiksYT1lIT09cixzPXl2YS5pbmNsdWRlcyhyKTtpZighKHIgaW4oYT9JREJJbmRleDpJREJPYmplY3RTdG9yZSkucHJvdG90eXBlKXx8IShzfHx2dmEuaW5jbHVkZXMocikpKXJldHVybjtsZXQgbj1pKGFzeW5jIGZ1bmN0aW9uKG8sLi4ubCl7bGV0IGM9dGhpcy50cmFuc2FjdGlvbihvLHM/InJlYWR3cml0ZSI6InJlYWRvbmx5IiksZD1jLnN0b3JlO3JldHVybiBhJiYoZD1kLmluZGV4KGwuc2hpZnQoKSkpLChhd2FpdCBQcm9taXNlLmFsbChbZFtyXSguLi5sKSxzJiZjLmRvbmVdKSlbMF19LCJtZXRob2QiKTtyZXR1cm4gal9lLnNldChlLG4pLG59YXN5bmMgZnVuY3Rpb24qU3ZhKC4uLnQpe2xldCBlPXRoaXM7aWYoZSBpbnN0YW5jZW9mIElEQkN1cnNvcnx8KGU9YXdhaXQgZS5vcGVuQ3Vyc29yKC4uLnQpKSwhZSlyZXR1cm47ZT1lO2xldCByPW5ldyBQcm94eShlLGt2YSk7Zm9yKFZadC5zZXQocixlKSxwZGUuc2V0KHIscHooZSkpO2U7KXlpZWxkIHIsZT1hd2FpdChVX2UuZ2V0KHIpfHxlLmNvbnRpbnVlKCkpLFVfZS5kZWxldGUocil9ZnVuY3Rpb24galp0KHQsZSl7cmV0dXJuIGU9PT1TeW1ib2wuYXN5bmNJdGVyYXRvciYmQl9lKHQsW0lEQkluZGV4LElEQk9iamVjdFN0b3JlLElEQkN1cnNvcl0pfHxlPT09Iml0ZXJhdGUiJiZCX2UodCxbSURCSW5kZXgsSURCT2JqZWN0U3RvcmVdKX12YXIgQl9lLFJadCxGWnQsSF9lLHFfZSxwZGUsVl9lLHB6LHZ2YSx5dmEsal9lLHd2YSxxWnQsVV9lLFZadCxrdmEsR1p0PXUoKCk9PntCX2U9aSgodCxlKT0+ZS5zb21lKHI9PnQgaW5zdGFuY2VvZiByKSwiaW5zdGFuY2VPZkFueSIpO2koZnZhLCJnZXRJZGJQcm94eWFibGVUeXBlcyIpO2koaHZhLCJnZXRDdXJzb3JBZHZhbmNlTWV0aG9kcyIpO0hfZT1uZXcgV2Vha01hcCxxX2U9bmV3IFdlYWtNYXAscGRlPW5ldyBXZWFrTWFwO2kobXZhLCJwcm9taXNpZnlSZXF1ZXN0Iik7aShndmEsImNhY2hlRG9uZVByb21pc2VGb3JUcmFuc2FjdGlvbiIpO1ZfZT17Z2V0KHQsZSxyKXtpZih0IGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24pe2lmKGU9PT0iZG9uZSIpcmV0dXJuIEhfZS5nZXQodCk7aWYoZT09PSJzdG9yZSIpcmV0dXJuIHIub2JqZWN0U3RvcmVOYW1lc1sxXT92b2lkIDA6ci5vYmplY3RTdG9yZShyLm9iamVjdFN0b3JlTmFtZXNbMF0pfXJldHVybiBIMCh0W2VdKX0sc2V0KHQsZSxyKXtyZXR1cm4gdFtlXT1yLCEwfSxoYXModCxlKXtyZXR1cm4gdCBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiYoZT09PSJkb25lInx8ZT09PSJzdG9yZSIpPyEwOmUgaW4gdH19O2koQlp0LCJyZXBsYWNlVHJhcHMiKTtpKGJ2YSwid3JhcEZ1bmN0aW9uIik7aSh4dmEsInRyYW5zZm9ybUNhY2hhYmxlVmFsdWUiKTtpKEgwLCJ3cmFwIik7cHo9aSh0PT5wZGUuZ2V0KHQpLCJ1bndyYXAiKTtpKFVadCwib3BlbkRCIik7aShXWnQsImRlbGV0ZURCIik7dnZhPVsiZ2V0IiwiZ2V0S2V5IiwiZ2V0QWxsIiwiZ2V0QWxsS2V5cyIsImNvdW50Il0seXZhPVsicHV0IiwiYWRkIiwiZGVsZXRlIiwiY2xlYXIiXSxqX2U9bmV3IE1hcDtpKEhadCwiZ2V0TWV0aG9kIiksQlp0KHQ9Pih7Li4udCxnZXQ6aSgoZSxyLGEpPT5IWnQoZSxyKXx8dC5nZXQoZSxyLGEpLCJnZXQiKSxoYXM6aSgoZSxyKT0+ISFIWnQoZSxyKXx8dC5oYXMoZSxyKSwiaGFzIil9KSk7d3ZhPVsiY29udGludWUiLCJjb250aW51ZVByaW1hcnlLZXkiLCJhZHZhbmNlIl0scVp0PXt9LFVfZT1uZXcgV2Vha01hcCxWWnQ9bmV3IFdlYWtNYXAsa3ZhPXtnZXQodCxlKXtpZighd3ZhLmluY2x1ZGVzKGUpKXJldHVybiB0W2VdO2xldCByPXFadFtlXTtyZXR1cm4gcnx8KHI9cVp0W2VdPWZ1bmN0aW9uKC4uLmEpe1VfZS5zZXQodGhpcyxWWnQuZ2V0KHRoaXMpW2VdKC4uLmEpKX0pLHJ9fTtpKFN2YSwiaXRlcmF0ZSIpO2koalp0LCJpc0l0ZXJhdG9yUHJvcCIpLEJadCh0PT4oey4uLnQsZ2V0KGUscixhKXtyZXR1cm4galp0KGUscik/U3ZhOnQuZ2V0KGUscixhKX0saGFzKGUscil7cmV0dXJuIGpadChlLHIpfHx0LmhhcyhlLHIpfX0pKX0pO3ZhciBXX2U9dSgoKT0+e0pDKCk7dXooKTtJdigpO0sxKCk7YjQoKTtXMmUoKTtHWnQoKX0pO3ZhciBoeixHX2U9dSgoKT0+e1dfZSgpO2h6PWNsYXNze3N0YXRpY3tpKHRoaXMsIldlYlN0b3JlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5pbml0Q2FsbGVkPSExLHRoaXMucmVhZHlEZWZlcnJlZD0kdC5kZWZlcigpLHRoaXMub3B0aW9ucz1lfWFzeW5jIGluaXQoKXtpZih0aGlzLmluaXRDYWxsZWQpe2F3YWl0IHRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlO3JldHVybn10aGlzLmluaXRDYWxsZWQ9ITA7bGV0IGU9bmV3IEsyLlNtYXJ0ZW52O2lmKCFlLmlzQnJvd3NlciYmIWdsb2JhbFRoaXMuaW5kZXhlZERCJiYoY29uc29sZS5sb2coImhleSIpLGNvbnNvbGUubG9nKGdsb2JhbFRoaXMuaW5kZXhlZERCKSxhd2FpdCBlLmdldFNhZmVOb2RlTW9kdWxlKCJmYWtlLWluZGV4ZWRkYi9hdXRvIiksIWdsb2JhbFRoaXMuaW5kZXhlZERCKSl7bGV0IHI9YXdhaXQgZS5nZXRTYWZlTm9kZU1vZHVsZSgiZmFrZS1pbmRleGVkZGIiKTtnbG9iYWxUaGlzLmluZGV4ZWREQj1uZXcgci5JREJGYWN0b3J5fXRoaXMuZGI9YXdhaXQgZnoub3BlbkRCKHRoaXMub3B0aW9ucy5kYk5hbWUsMSx7dXBncmFkZTppKHI9PntyLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfSwidXBncmFkZSIpfSksdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1hc3luYyBnZXQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZ2V0KHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsZSl9YXN5bmMgY2hlY2soZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLCEhYXdhaXQgdGhpcy5nZXQoZSl9YXN5bmMgc2V0KGUscil7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIucHV0KHRoaXMub3B0aW9ucy5zdG9yZU5hbWUscixlKX1hc3luYyBkZWxldGUoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZGVsZXRlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsZSl9YXN5bmMgY2xlYXIoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5jbGVhcih0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX1hc3luYyBrZXlzKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZ2V0QWxsS2V5cyh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX19fSk7dmFyIFlfZSxLWnQ9dSgoKT0+e0dfZSgpO1dfZSgpO1lfZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZHJlcXVlc3RDYWNoZSIpfWNvbnN0cnVjdG9yKGU9ImRlZmF1bHQiKXt0aGlzLndlYnN0b3JlPW5ldyBoeih7ZGJOYW1lOiJ0clN0b3JlIixzdG9yZU5hbWU6YHRyU3RvcmUtJHtlfWB9KX1idWlsZEtleShlKXtyZXR1cm4gUXMuc3RyaW5naWZ5KHttZXRob2Q6ZS5tZXRob2QscmVxdWVzdDplLnJlcXVlc3R9KX1hc3luYyBzZXRCeVJlcXVlc3QoZSl7aWYoIWUucmVzcG9uc2UpdGhyb3cgbmV3IEVycm9yKCJZb3UgY2Fubm90IHN0b3JlIHJlcXVlc3RzIHdpdGhvdXQgYSByZXNwb25zZSBwcmVzZW50Iik7YXdhaXQgdGhpcy53ZWJzdG9yZS5zZXQodGhpcy5idWlsZEtleShlKSxlKX1hc3luYyBnZXRCeVJlcXVlc3QoZSl7cmV0dXJuIGF3YWl0IHRoaXMud2Vic3RvcmUuZ2V0KHRoaXMuYnVpbGRLZXkoZSkpfX19KTt2YXIgUTI9e307VmUoUTIse1R5cGVkcmVxdWVzdENhY2hlOigpPT5ZX2UsV2ViU3RvcmU6KCk9Pmh6fSk7dmFyIGZkZT11KCgpPT57S1p0KCk7R19lKCl9KTt2YXIgbXo9dSgoKT0+e3Q2KCk7dXooKTtJdigpO0sxKCk7ZmRlKCl9KTt2YXIgUHYsbWRlPXUoKCk9PntteigpO1B2PWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhY2hlU3RvcmUiKX1jb25zdHJ1Y3RvcihlPSJ3ZWJyZXF1ZXN0LXY0IixyPSJjYWNoZSIpe3RoaXMud2Vic3RvcmU9bmV3IFEyLldlYlN0b3JlKHtkYk5hbWU6ZSxzdG9yZU5hbWU6cn0pLHRoaXMuaW5pdFByb21pc2U9dGhpcy5pbml0KCl9YXN5bmMgaW5pdCgpe31nZW5lcmF0ZUNhY2hlS2V5KGUpe2xldCByPWUudXJsLGE9ZS5tZXRob2Q7cmV0dXJuIGE9PT0iR0VUIj9yOmAke2F9OiR7cn1gfWFzeW5jIHNldChlLHIpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5zZXQoZSxyKX1hc3luYyBnZXQoZSl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZTt0cnl7cmV0dXJuIGF3YWl0IHRoaXMud2Vic3RvcmUuZ2V0KGUpfHxudWxsfWNhdGNoe3JldHVybiBudWxsfX1hc3luYyBoYXMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5jaGVjayhlKX1hc3luYyBkZWxldGUoZSl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLmRlbGV0ZShlKX1hc3luYyBjbGVhcigpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5jbGVhcigpfXJlc3BvbnNlRnJvbUNhY2hlRW50cnkoZSl7bGV0IHI9bmV3IEhlYWRlcnMoZS5oZWFkZXJzKTtyZXR1cm4gbmV3IFJlc3BvbnNlKGUucmVzcG9uc2Use3N0YXR1czplLnN0YXR1cyxzdGF0dXNUZXh0OmUuc3RhdHVzVGV4dCxoZWFkZXJzOnJ9KX1hc3luYyBjYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUscixhKXtsZXQgcz1yLmNsb25lKCksbj1hd2FpdCBzLmFycmF5QnVmZmVyKCksbz17fTtyZXR1cm4gcy5oZWFkZXJzLmZvckVhY2goKGwsYyk9PntvW2NdPWx9KSx7cmVzcG9uc2U6bixoZWFkZXJzOm8sdGltZXN0YW1wOkRhdGUubm93KCksZXRhZzphPy5ldGFnfHxzLmhlYWRlcnMuZ2V0KCJldGFnIil8fHZvaWQgMCxsYXN0TW9kaWZpZWQ6YT8ubGFzdE1vZGlmaWVkfHxzLmhlYWRlcnMuZ2V0KCJsYXN0LW1vZGlmaWVkIil8fHZvaWQgMCxtYXhBZ2U6YT8ubWF4QWdlLHVybDplLHN0YXR1czpzLnN0YXR1cyxzdGF0dXNUZXh0OnMuc3RhdHVzVGV4dH19YXN5bmMgcHJ1bmVFeHBpcmVkKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdFByb21pc2UsMH19fSk7ZnVuY3Rpb24gTXZhKHQpe2xldCBlPXttYXhBZ2U6MCxpbW11dGFibGU6ITEsbm9DYWNoZTohMSxub1N0b3JlOiExLG11c3RSZXZhbGlkYXRlOiExfTtpZighdClyZXR1cm4gZTtsZXQgcj10LnRvTG93ZXJDYXNlKCkuc3BsaXQoIiwiKS5tYXAoYT0+YS50cmltKCkpO2ZvcihsZXQgYSBvZiByKWlmKGE9PT0ibm8tY2FjaGUiKWUubm9DYWNoZT0hMDtlbHNlIGlmKGE9PT0ibm8tc3RvcmUiKWUubm9TdG9yZT0hMDtlbHNlIGlmKGE9PT0iaW1tdXRhYmxlIillLmltbXV0YWJsZT0hMDtlbHNlIGlmKGE9PT0ibXVzdC1yZXZhbGlkYXRlIillLm11c3RSZXZhbGlkYXRlPSEwO2Vsc2UgaWYoYS5zdGFydHNXaXRoKCJtYXgtYWdlPSIpKXtsZXQgcz1wYXJzZUludChhLnNwbGl0KCI9IilbMV0sMTApO2lzTmFOKHMpfHwoZS5tYXhBZ2U9cyoxZTMpfXJldHVybiBlfWZ1bmN0aW9uIEN2YSh0KXtpZih0KXRyeXtyZXR1cm4gbmV3IERhdGUodCkuZ2V0VGltZSgpfWNhdGNoe3JldHVybn19ZnVuY3Rpb24gcTAodCl7bGV0IGU9dC5nZXQoImNhY2hlLWNvbnRyb2wiKSxyPXQuZ2V0KCJleHBpcmVzIiksYT10LmdldCgiZXRhZyIpLHM9dC5nZXQoImxhc3QtbW9kaWZpZWQiKSxuPU12YShlKTtpZihuLm1heEFnZT09PTAmJnIpe2xldCBvPUN2YShyKTtvJiYobi5tYXhBZ2U9TWF0aC5tYXgoMCxvLURhdGUubm93KCkpKX1yZXR1cm57bWF4QWdlOm4ubWF4QWdlfHwwLGV0YWc6YXx8dm9pZCAwLGxhc3RNb2RpZmllZDpzfHx2b2lkIDAsaW1tdXRhYmxlOm4uaW1tdXRhYmxlfHwhMSxub0NhY2hlOm4ubm9DYWNoZXx8ITEsbm9TdG9yZTpuLm5vU3RvcmV8fCExLG11c3RSZXZhbGlkYXRlOm4ubXVzdFJldmFsaWRhdGV8fCExfX1mdW5jdGlvbiBneih0LGUpe2lmKGUubm9TdG9yZSlyZXR1cm4hMTtpZihlLmltbXV0YWJsZSlyZXR1cm4hMDtsZXQgcj1EYXRlLm5vdygpLXQudGltZXN0YW1wLGE9dC5tYXhBZ2V8fGUubWF4QWdlfHwwO3JldHVybiBhPT09MD8hMTpyPGF9ZnVuY3Rpb24gYnoodCl7cmV0dXJuIHQubm9DYWNoZXx8dC5tdXN0UmV2YWxpZGF0ZX1mdW5jdGlvbiBnZGUodCl7bGV0IGU9e307cmV0dXJuIHQuZXRhZyYmKGVbImlmLW5vbmUtbWF0Y2giXT10LmV0YWcpLHQubGFzdE1vZGlmaWVkJiYoZVsiaWYtbW9kaWZpZWQtc2luY2UiXT10Lmxhc3RNb2RpZmllZCksZX1mdW5jdGlvbiBiZGUodCl7bGV0IGU9e307cmV0dXJuIHQuZm9yRWFjaCgocixhKT0+e2VbYV09cn0pLGV9ZnVuY3Rpb24gWlp0KHQpe2xldCBlPW5ldyBIZWFkZXJzO3JldHVybiBPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKChbcixhXSk9PntlLnNldChyLGEpfSksZX12YXIgeGRlPXUoKCk9PntpKE12YSwicGFyc2VDYWNoZUNvbnRyb2wiKTtpKEN2YSwicGFyc2VFeHBpcmVzIik7aShxMCwiZXh0cmFjdENhY2hlTWV0YWRhdGEiKTtpKGd6LCJpc0ZyZXNoIik7aShieiwicmVxdWlyZXNSZXZhbGlkYXRpb24iKTtpKGdkZSwiY3JlYXRlQ29uZGl0aW9uYWxIZWFkZXJzIik7aShiZGUsImhlYWRlcnNUb09iamVjdCIpO2koWlp0LCJvYmplY3RUb0hlYWRlcnMiKX0pO2Z1bmN0aW9uIFFadCh0KXtzd2l0Y2godCl7Y2FzZSJuZXR3b3JrLWZpcnN0IjpyZXR1cm4gbmV3IHZkZTtjYXNlImNhY2hlLWZpcnN0IjpyZXR1cm4gbmV3IEtfZTtjYXNlInN0YWxlLXdoaWxlLXJldmFsaWRhdGUiOnJldHVybiBuZXcgWl9lO2Nhc2UibmV0d29yay1vbmx5IjpyZXR1cm4gbmV3IFFfZTtjYXNlImNhY2hlLW9ubHkiOnJldHVybiBuZXcgWF9lO2RlZmF1bHQ6cmV0dXJuIG5ldyB2ZGV9fXZhciB2ZGUsS19lLFpfZSxRX2UsWF9lLFhadD11KCgpPT57bWRlKCk7eGRlKCk7dmRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIk5ldHdvcmtGaXJzdFN0cmF0ZWd5Iil9YXN5bmMgZXhlY3V0ZShlKXt0cnl7bGV0IHI9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCk7cmV0dXJuIHIub2smJmF3YWl0IHRoaXMuY2FjaGVSZXNwb25zZShlLHIpLHtyZXNwb25zZTpyLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19Y2F0Y2gocil7ZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIE5ldHdvcmsgZmFpbGVkLCB0cnlpbmcgY2FjaGU6IixyKTtsZXQgYT1hd2FpdCBlLmNhY2hlU3RvcmUuZ2V0KGUuY2FjaGVLZXkpO2lmKGEpcmV0dXJue3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KGEpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX07dGhyb3cgcn19YXN5bmMgY2FjaGVSZXNwb25zZShlLHIpe2xldCBhPXEwKHIuaGVhZGVycyk7aWYoYS5ub1N0b3JlKXJldHVybjtsZXQgcz1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLHIsYSk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LHMpfX0sS19lPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNhY2hlRmlyc3RTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7bGV0IHI9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihyKXtsZXQgbj1xMChuZXcgSGVhZGVycyhyLmhlYWRlcnMpKTtpZihneihyLG4pKXJldHVybiBlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgaGl0IChmcmVzaCk6IixlLnJlcXVlc3QudXJsKSx7cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfTtpZihieihuKSYmKHIuZXRhZ3x8ci5sYXN0TW9kaWZpZWQpKXJldHVybiBhd2FpdCB0aGlzLnJldmFsaWRhdGUoZSxyKX1lLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgbWlzcywgZmV0Y2hpbmc6IixlLnJlcXVlc3QudXJsKTtsZXQgYT1hd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxzPXEwKGEuaGVhZGVycyk7aWYoIXMubm9TdG9yZSl7bGV0IG49YXdhaXQgZS5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZS5yZXF1ZXN0LnVybCxhLHMpO2F3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxuKX1yZXR1cm57cmVzcG9uc2U6YSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGUoZSxyKXtsZXQgYT1nZGUocikscz1uZXcgUmVxdWVzdChlLnJlcXVlc3QudXJsLHttZXRob2Q6ZS5yZXF1ZXN0Lm1ldGhvZCxoZWFkZXJzOnsuLi5iZGUoZS5yZXF1ZXN0LmhlYWRlcnMpLC4uLmF9fSk7dHJ5e2xldCBuPWF3YWl0IGUuZmV0Y2hGbihzKTtpZihuLnN0YXR1cz09PTMwNClyZXR1cm4gZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIHJldmFsaWRhdGVkICgzMDQpOiIsZS5yZXF1ZXN0LnVybCksci50aW1lc3RhbXA9RGF0ZS5ub3coKSxhd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXkscikse3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMH07aWYobi5vayl7bGV0IG89cTAobi5oZWFkZXJzKTtpZighby5ub1N0b3JlKXtsZXQgbD1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLG4sbyk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LGwpfX1yZXR1cm57cmVzcG9uc2U6bixmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITB9fWNhdGNoKG4pe3JldHVybiBlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gUmV2YWxpZGF0aW9uIGZhaWxlZCwgdXNpbmcgY2FjaGU6IixuKSx7cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfX19fSxaX2U9Y2xhc3N7c3RhdGlje2kodGhpcywiU3RhbGVXaGlsZVJldmFsaWRhdGVTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7bGV0IHI9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihyKXtsZXQgbj1lLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShyKTtyZXR1cm4gdGhpcy5yZXZhbGlkYXRlSW5CYWNrZ3JvdW5kKGUscikuY2F0Y2gobz0+e2UubG9nZ2luZyYmY29uc29sZS53YXJuKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gZmFpbGVkOiIsbyl9KSx7cmVzcG9uc2U6bixmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fWxldCBhPWF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpLHM9cTAoYS5oZWFkZXJzKTtpZighcy5ub1N0b3JlJiZhLm9rKXtsZXQgbj1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLGEscyk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LG4pfXJldHVybntyZXNwb25zZTphLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19YXN5bmMgcmV2YWxpZGF0ZUluQmFja2dyb3VuZChlLHIpe2xldCBhPXEwKG5ldyBIZWFkZXJzKHIuaGVhZGVycykpO2lmKCEoZ3oocixhKSYmIWJ6KGEpKSl0cnl7bGV0IHM9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCk7aWYocy5vayl7bGV0IG49cTAocy5oZWFkZXJzKTtpZighbi5ub1N0b3JlKXtsZXQgbz1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLHMsbik7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LG8pLGUubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBjb21wbGV0ZToiLGUucmVxdWVzdC51cmwpfX19Y2F0Y2gocyl7ZS5sb2dnaW5nJiZjb25zb2xlLndhcm4oIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBmYWlsZWQ6IixzKX19fSxRX2U9Y2xhc3N7c3RhdGlje2kodGhpcywiTmV0d29ya09ubHlTdHJhdGVneSIpfWFzeW5jIGV4ZWN1dGUoZSl7cmV0dXJue3Jlc3BvbnNlOmF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19fSxYX2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQ2FjaGVPbmx5U3RyYXRlZ3kiKX1hc3luYyBleGVjdXRlKGUpe2xldCByPWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBDYWNoZSBtaXNzIGZvciAke2UucmVxdWVzdC51cmx9IChjYWNoZS1vbmx5IG1vZGUpYCk7cmV0dXJue3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fTtpKFFadCwiZ2V0U3RyYXRlZ3lIYW5kbGVyIil9KTt2YXIgTnYsSl9lPXUoKCk9PnttZGUoKTtYWnQoKTt4ZGUoKTtOdj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDYWNoZU1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuY2FjaGVTdG9yZT1uZXcgUHYoZSxyKX1hc3luYyBleGVjdXRlKGUscixhKXtsZXQgcz10aGlzLmRldGVybWluZVN0cmF0ZWd5KGUscik7aWYocz09PSJuZXR3b3JrLW9ubHkiKXJldHVybntyZXNwb25zZTphd2FpdCBhKGUpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX07bGV0IG49dGhpcy5nZW5lcmF0ZUNhY2hlS2V5KGUsciksbz1RWnQocyksbD17cmVxdWVzdDplLGNhY2hlS2V5Om4sY2FjaGVTdG9yZTp0aGlzLmNhY2hlU3RvcmUsZmV0Y2hGbjphLGxvZ2dpbmc6ci5sb2dnaW5nfTtyZXR1cm4gYXdhaXQgby5leGVjdXRlKGwpfWRldGVybWluZVN0cmF0ZWd5KGUscil7cmV0dXJuIHIuY2FjaGVTdHJhdGVneT9yLmNhY2hlU3RyYXRlZ3k6ci5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koci5jYWNoZSk6ZS5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZS5jYWNoZSk6Im5ldHdvcmstZmlyc3QifW1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZSl7c3dpdGNoKGUpe2Nhc2UiZGVmYXVsdCI6cmV0dXJuIm5ldHdvcmstZmlyc3QiO2Nhc2Uibm8tc3RvcmUiOmNhc2UicmVsb2FkIjpyZXR1cm4ibmV0d29yay1vbmx5IjtjYXNlIm5vLWNhY2hlIjpyZXR1cm4ibmV0d29yay1maXJzdCI7Y2FzZSJmb3JjZS1jYWNoZSI6cmV0dXJuImNhY2hlLWZpcnN0IjtjYXNlIm9ubHktaWYtY2FjaGVkIjpyZXR1cm4iY2FjaGUtb25seSI7ZGVmYXVsdDpyZXR1cm4ibmV0d29yay1maXJzdCJ9fWdlbmVyYXRlQ2FjaGVLZXkoZSxyKXtyZXR1cm4gci5jYWNoZUtleT90eXBlb2Ygci5jYWNoZUtleT09ImZ1bmN0aW9uIj9yLmNhY2hlS2V5KGUpOnIuY2FjaGVLZXk6dGhpcy5jYWNoZVN0b3JlLmdlbmVyYXRlQ2FjaGVLZXkoZSl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmNhY2hlU3RvcmUuY2xlYXIoKX1hc3luYyBkZWxldGUoZSl7YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmRlbGV0ZShlKX1hc3luYyBoYXMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVTdG9yZS5oYXMoZSl9Z2V0U3RvcmUoKXtyZXR1cm4gdGhpcy5jYWNoZVN0b3JlfX19KTtmdW5jdGlvbiBKWnQodCl7c3dpdGNoKHQpe2Nhc2UiZXhwb25lbnRpYWwiOnJldHVybiBuZXcgeWRlO2Nhc2UibGluZWFyIjpyZXR1cm4gbmV3IGVUZTtjYXNlImNvbnN0YW50IjpyZXR1cm4gbmV3IHRUZTtkZWZhdWx0OnJldHVybiBuZXcgeWRlfX1mdW5jdGlvbiBlUXQodCxlPS4xKXtsZXQgcj10KmUqTWF0aC5yYW5kb20oKTtyZXR1cm4gdCtyfXZhciB5ZGUsZVRlLHRUZSx0UXQ9dSgoKT0+e3lkZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFeHBvbmVudGlhbEJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe2xldCBzPXIqTWF0aC5wb3coMixlLTEpO3JldHVybiBNYXRoLm1pbihzLGEpfX0sZVRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkxpbmVhckJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe2xldCBzPXIqZTtyZXR1cm4gTWF0aC5taW4ocyxhKX19LHRUZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDb25zdGFudEJhY2tvZmYiKX1jYWxjdWxhdGUoZSxyLGEpe3JldHVybiBNYXRoLm1pbihyLGEpfX07aShKWnQsImdldEJhY2tvZmZDYWxjdWxhdG9yIik7aShlUXQsImFkZEppdHRlciIpfSk7dmFyIE92LHJUZT11KCgpPT57bXooKTt0UXQoKTtPdj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJSZXRyeU1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlPXt9KXt0aGlzLm9wdGlvbnM9e21heEF0dGVtcHRzOmUubWF4QXR0ZW1wdHM/PzMsYmFja29mZjplLmJhY2tvZmY/PyJleHBvbmVudGlhbCIsaW5pdGlhbERlbGF5OmUuaW5pdGlhbERlbGF5Pz8xZTMsbWF4RGVsYXk6ZS5tYXhEZWxheT8/M2U0LHJldHJ5T246ZS5yZXRyeU9uPz9bNDA4LDQyOSw1MDAsNTAyLDUwMyw1MDRdLG9uUmV0cnk6ZS5vblJldHJ5Pz8oKCk9Pnt9KX19YXN5bmMgZXhlY3V0ZShlLHIpe2xldCBhLHM7Zm9yKGxldCBuPTE7bjw9dGhpcy5vcHRpb25zLm1heEF0dGVtcHRzO24rKyl0cnl7bGV0IG89YXdhaXQgZSgpO2lmKG8gaW5zdGFuY2VvZiBSZXNwb25zZSYmdGhpcy5zaG91bGRSZXRyeVJlc3BvbnNlKG8pKXtpZihzPW8sbj09PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0cylyZXR1cm4gbztsZXQgbD10aGlzLmNhbGN1bGF0ZURlbGF5KG4pO3RoaXMub3B0aW9ucy5vblJldHJ5KG4sbmV3IEVycm9yKGBIVFRQICR7by5zdGF0dXN9YCksbCksYXdhaXQgdGhpcy5kZWxheShsKTtjb250aW51ZX1yZXR1cm4gb31jYXRjaChvKXthPW8gaW5zdGFuY2VvZiBFcnJvcj9vOm5ldyBFcnJvcihTdHJpbmcobykpO2xldCBsPXI/cihvLG4pOnRoaXMuc2hvdWxkUmV0cnlFcnJvcihvKTtpZihuPT09dGhpcy5vcHRpb25zLm1heEF0dGVtcHRzfHwhbCl0aHJvdyBhO2xldCBjPXRoaXMuY2FsY3VsYXRlRGVsYXkobik7dGhpcy5vcHRpb25zLm9uUmV0cnkobixhLGMpLGF3YWl0IHRoaXMuZGVsYXkoYyl9dGhyb3cgYXx8bmV3IEVycm9yKCJNYXggcmV0cnkgYXR0ZW1wdHMgcmVhY2hlZCIpfWFzeW5jIGV4ZWN1dGVXaXRoRmFsbGJhY2tzKGUscixhKXtpZihlLmxlbmd0aD09PTApdGhyb3cgbmV3IEVycm9yKCJObyBVUkxzIHByb3ZpZGVkIGZvciBmYWxsYmFjayBleGVjdXRpb24iKTtsZXQgcyxuPVtdO2ZvcihsZXQgbyBvZiBlKXRyeXtsZXQgbD1hd2FpdCB0aGlzLmV4ZWN1dGUoYXN5bmMoKT0+YXdhaXQgYShvLHIpKTtpZihsLnN0YXR1czw0MDB8fGwuc3RhdHVzPj00MDAmJmwuc3RhdHVzPDUwMCYmbC5zdGF0dXMhPT00MDgpcmV0dXJuIGw7bi5wdXNoKG8pLHM9bmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAke2wuc3RhdHVzfWApfWNhdGNoKGwpe24ucHVzaChvKSxzPWwgaW5zdGFuY2VvZiBFcnJvcj9sOm5ldyBFcnJvcihTdHJpbmcobCkpfXRocm93IG5ldyBFcnJvcihgQWxsIFVSTHMgZmFpbGVkOiAke24uam9pbigiLCAiKX0uIExhc3QgZXJyb3I6ICR7cz8ubWVzc2FnZXx8IlVua25vd24gZXJyb3IifWApfXNob3VsZFJldHJ5UmVzcG9uc2UoZSl7bGV0IHI9dGhpcy5vcHRpb25zLnJldHJ5T247cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3IoZSk6QXJyYXkuaXNBcnJheShyKT9yLmluY2x1ZGVzKGUuc3RhdHVzKTohMX1zaG91bGRSZXRyeUVycm9yKGUpe2lmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3ImJmUubWVzc2FnZS5pbmNsdWRlcygiZmV0Y2giKXx8ZS5uYW1lPT09IkFib3J0RXJyb3IifHxlLm1lc3NhZ2UuaW5jbHVkZXMoInRpbWVvdXQiKSlyZXR1cm4hMDtsZXQgcj10aGlzLm9wdGlvbnMucmV0cnlPbjtyZXR1cm4gdHlwZW9mIHI9PSJmdW5jdGlvbiI/cih2b2lkIDAsZSk6ITF9Y2FsY3VsYXRlRGVsYXkoZSl7bGV0IGE9Slp0KHRoaXMub3B0aW9ucy5iYWNrb2ZmKS5jYWxjdWxhdGUoZSx0aGlzLm9wdGlvbnMuaW5pdGlhbERlbGF5LHRoaXMub3B0aW9ucy5tYXhEZWxheSk7cmV0dXJuIGVRdChhKX1hc3luYyBkZWxheShlKXthd2FpdCBUci5kZWxheUZvcihlKX19fSk7dmFyIFJ2LGFUZT11KCgpPT57bXooKTtSdj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJSZXF1ZXN0RGVkdXBsaWNhdG9yIil9Y29uc3RydWN0b3IoKXt0aGlzLmluRmxpZ2h0UmVxdWVzdHM9bmV3IE1hcH1nZW5lcmF0ZUtleShlKXtsZXQgcj1lLnVybCxhPWUubWV0aG9kO3JldHVybiBhPT09IkdFVCJ8fGE9PT0iSEVBRCI/YCR7YX06JHtyfWA6YCR7YX06JHtyfToke0RhdGUubm93KCl9YH1hc3luYyBleGVjdXRlKGUscil7bGV0IGE9dGhpcy5pbkZsaWdodFJlcXVlc3RzLmdldChlKTtpZihhKXJldHVybntyZXNwb25zZTooYXdhaXQgYS5wcm9taXNlKS5jbG9uZSgpLHdhc0RlZHVwbGljYXRlZDohMH07bGV0IHM9JHQuZGVmZXIoKTt0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2V0KGUscyk7dHJ5e2xldCBuPWF3YWl0IHIoKTtyZXR1cm4gcy5yZXNvbHZlKG4pLHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5kZWxldGUoZSkse3Jlc3BvbnNlOm4sd2FzRGVkdXBsaWNhdGVkOiExfX1jYXRjaChuKXt0aHJvdyBzLnJlamVjdChuKSx0aGlzLmluRmxpZ2h0UmVxdWVzdHMuZGVsZXRlKGUpLG59fWlzSW5GbGlnaHQoZSl7cmV0dXJuIHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5oYXMoZSl9Z2V0SW5GbGlnaHRDb3VudCgpe3JldHVybiB0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2l6ZX1jbGVhcigpe3RoaXMuaW5GbGlnaHRSZXF1ZXN0cy5jbGVhcigpfX19KTtmdW5jdGlvbiB6dmEodCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcixyPW5ldyBUci5UaW1lb3V0KHQsbnVsbCk7cmV0dXJuIHIucHJvbWlzZS50aGVuKCgpPT57ZS5hYm9ydCgpfSkse2NvbnRyb2xsZXI6ZSxjbGVhbnVwOmkoKCk9PntyLmNhbmNlbCgpfSwiY2xlYW51cCIpfX1hc3luYyBmdW5jdGlvbiBpVGUodCxlLHIpe2xldHtjb250cm9sbGVyOmEsY2xlYW51cDpzfT16dmEocik7dHJ5e2xldCBuPWF3YWl0IGZldGNoKHQsey4uLmUsc2lnbmFsOmEuc2lnbmFsfSk7cmV0dXJuIHMoKSxufWNhdGNoKG4pe3Rocm93IHMoKSxuIGluc3RhbmNlb2YgRXJyb3ImJm4ubmFtZT09PSJBYm9ydEVycm9yIj9uZXcgRXJyb3IoYFJlcXVlc3QgdGltZW91dCBhZnRlciAke3J9bXM6ICR7dH1gKTpufX12YXIgclF0PXUoKCk9PntteigpO2koenZhLCJjcmVhdGVUaW1lb3V0Q29udHJvbGxlciIpO2koaVRlLCJmZXRjaFdpdGhUaW1lb3V0Iil9KTt2YXIgeDYsc1RlPXUoKCk9PntfX2UoKTtKX2UoKTtyVGUoKTthVGUoKTtyUXQoKTt4Nj1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXZWJyZXF1ZXN0Q2xpZW50Iil9Y29uc3RydWN0b3IoZT17fSl7dGhpcy5kZWZhdWx0T3B0aW9ucz1lLHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyPW5ldyAkdix0aGlzLmNhY2hlTWFuYWdlcj1uZXcgTnYsdGhpcy5kZWR1cGxpY2F0b3I9bmV3IFJ2fWFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5hZGRSZXF1ZXN0SW50ZXJjZXB0b3IoZSl9YWRkUmVzcG9uc2VJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpfWFkZEVycm9ySW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkRXJyb3JJbnRlcmNlcHRvcihlKX1yZW1vdmVSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKGUpfXJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcihlKX1yZW1vdmVFcnJvckludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZUVycm9ySW50ZXJjZXB0b3IoZSl9Y2xlYXJJbnRlcmNlcHRvcnMoKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5jbGVhckFsbCgpfWFzeW5jIGNsZWFyQ2FjaGUoKXthd2FpdCB0aGlzLmNhY2hlTWFuYWdlci5jbGVhcigpfWFzeW5jIHJlcXVlc3QoZSxyPXt9KXtsZXQgYT17Li4udGhpcy5kZWZhdWx0T3B0aW9ucywuLi5yfSxzO2lmKHR5cGVvZiBlPT0ic3RyaW5nIj9zPW5ldyBSZXF1ZXN0KGUsYSk6cz1lLHM9YXdhaXQgdGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucHJvY2Vzc1JlcXVlc3QocyksYS5pbnRlcmNlcHRvcnM/LnJlcXVlc3QpZm9yKGxldCBvIG9mIGEuaW50ZXJjZXB0b3JzLnJlcXVlc3Qpcz1hd2FpdCBvKHMpO2lmKGEuZGVkdXBsaWNhdGU/PyExKXtsZXQgbz10aGlzLmRlZHVwbGljYXRvci5nZW5lcmF0ZUtleShzKTtyZXR1cm4oYXdhaXQgdGhpcy5kZWR1cGxpY2F0b3IuZXhlY3V0ZShvLGFzeW5jKCk9PmF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QocyxhKSkpLnJlc3BvbnNlfXJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KHMsYSl9YXN5bmMgZXhlY3V0ZVJlcXVlc3QoZSxyKXt0cnl7bGV0IGE9dHlwZW9mIHIucmV0cnk9PSJvYmplY3QiP3IucmV0cnk6ci5yZXRyeT97fTp2b2lkIDAscz1pKGFzeW5jIGw9PntsZXQgYz1yLnRpbWVvdXQ/PzZlNDtyZXR1cm4gYXdhaXQgaVRlKGwudXJsLHttZXRob2Q6bC5tZXRob2QsaGVhZGVyczpsLmhlYWRlcnMsYm9keTpsLmJvZHksLi4ucn0sYyl9LCJmZXRjaEZuRm9yUmVxdWVzdCIpLG49aShhc3luYyhsLGMpPT57bGV0IGQ9ci50aW1lb3V0Pz82ZTQ7cmV0dXJuIGF3YWl0IGlUZShsLGMsZCl9LCJmZXRjaEZuRm9yRmFsbGJhY2tzIiksbztpZihhKXtsZXQgbD1uZXcgT3YoYSk7aWYoci5mYWxsYmFja1VybHMmJnIuZmFsbGJhY2tVcmxzLmxlbmd0aD4wKXtsZXQgYz1bZS51cmwsLi4uci5mYWxsYmFja1VybHNdO289YXdhaXQgbC5leGVjdXRlV2l0aEZhbGxiYWNrcyhjLHttZXRob2Q6ZS5tZXRob2QsaGVhZGVyczplLmhlYWRlcnMsYm9keTplLmJvZHksLi4ucn0sbil9ZWxzZSBvPWF3YWl0IGwuZXhlY3V0ZShhc3luYygpPT4oYXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuZXhlY3V0ZShlLHIscykpLnJlc3BvbnNlKX1lbHNlIG89KGF3YWl0IHRoaXMuY2FjaGVNYW5hZ2VyLmV4ZWN1dGUoZSxyLHMpKS5yZXNwb25zZTtpZihvPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXNwb25zZShvKSxyLmludGVyY2VwdG9ycz8ucmVzcG9uc2UpZm9yKGxldCBsIG9mIHIuaW50ZXJjZXB0b3JzLnJlc3BvbnNlKW89YXdhaXQgbChvKTtyZXR1cm4gb31jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLmludGVyY2VwdG9yTWFuYWdlci5wcm9jZXNzRXJyb3IoYSBpbnN0YW5jZW9mIEVycm9yP2E6bmV3IEVycm9yKFN0cmluZyhhKSkpfX1hc3luYyBnZXRKc29uKGUscj17fSl7bGV0IGE9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLnIsbWV0aG9kOiJHRVQiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX19KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX1hc3luYyBwb3N0SnNvbihlLHIsYT17fSl7bGV0IHM9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5hLmhlYWRlcnN8fHt9fSxib2R5OkpTT04uc3RyaW5naWZ5KHIpfSk7aWYoIXMub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7cy5zdGF0dXN9OiAke3Muc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgcy5qc29uKCl9YXN5bmMgcHV0SnNvbihlLHIsYT17fSl7bGV0IHM9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLmEuaGVhZGVyc3x8e319LGJvZHk6SlNPTi5zdHJpbmdpZnkocil9KTtpZighcy5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtzLnN0YXR1c306ICR7cy5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBzLmpzb24oKX1hc3luYyBkZWxldGVKc29uKGUscj17fSl7bGV0IGE9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLnIsbWV0aG9kOiJERUxFVEUiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX19KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX19fSk7YXN5bmMgZnVuY3Rpb24gZWwodCxlKXtsZXQgcj10IGluc3RhbmNlb2YgUmVxdWVzdD90LnVybDpTdHJpbmcodCksYT10IGluc3RhbmNlb2YgUmVxdWVzdD90Om5ldyBSZXF1ZXN0KHIsZSk7cmV0dXJuIGF3YWl0IFgyLnJlcXVlc3QoYSxlKX12YXIgWDIsYVF0PXUoKCk9PntzVGUoKTtYMj1uZXcgeDY7aShlbCwid2VicmVxdWVzdCIpLGVsLmdldEpzb249YXN5bmMgZnVuY3Rpb24odCxlKXtyZXR1cm4gYXdhaXQgWDIuZ2V0SnNvbih0LGUpfSxlbC5wb3N0SnNvbj1hc3luYyBmdW5jdGlvbih0LGUscil7cmV0dXJuIGF3YWl0IFgyLnBvc3RKc29uKHQsZSxyKX0sZWwucHV0SnNvbj1hc3luYyBmdW5jdGlvbih0LGUscil7cmV0dXJuIGF3YWl0IFgyLnB1dEpzb24odCxlLHIpfSxlbC5kZWxldGVKc29uPWFzeW5jIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGF3YWl0IFgyLmRlbGV0ZUpzb24odCxlKX0sZWwuYWRkUmVxdWVzdEludGVyY2VwdG9yPWZ1bmN0aW9uKHQpe1gyLmFkZFJlcXVlc3RJbnRlcmNlcHRvcih0KX0sZWwuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcj1mdW5jdGlvbih0KXtYMi5hZGRSZXNwb25zZUludGVyY2VwdG9yKHQpfSxlbC5hZGRFcnJvckludGVyY2VwdG9yPWZ1bmN0aW9uKHQpe1gyLmFkZEVycm9ySW50ZXJjZXB0b3IodCl9LGVsLmNsZWFySW50ZXJjZXB0b3JzPWZ1bmN0aW9uKCl7WDIuY2xlYXJJbnRlcmNlcHRvcnMoKX0sZWwuY2xlYXJDYWNoZT1hc3luYyBmdW5jdGlvbigpe2F3YWl0IFgyLmNsZWFyQ2FjaGUoKX0sZWwuY3JlYXRlQ2xpZW50PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgeDYodCl9LGVsLmdldERlZmF1bHRDbGllbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWDJ9fSk7dmFyIHY2PXt9O1ZlKHY2LHtDYWNoZU1hbmFnZXI6KCk9Pk52LENhY2hlU3RvcmU6KCk9PlB2LEludGVyY2VwdG9yTWFuYWdlcjooKT0+JHYsUmVxdWVzdERlZHVwbGljYXRvcjooKT0+UnYsUmV0cnlNYW5hZ2VyOigpPT5PdixXZWJyZXF1ZXN0Q2xpZW50OigpPT54NixjcmVhdGVDb25kaXRpb25hbEhlYWRlcnM6KCk9PmdkZSxleHRyYWN0Q2FjaGVNZXRhZGF0YTooKT0+cTAsaGVhZGVyc1RvT2JqZWN0OigpPT5iZGUsaXNGcmVzaDooKT0+Z3osb2JqZWN0VG9IZWFkZXJzOigpPT5aWnQscmVxdWlyZXNSZXZhbGlkYXRpb246KCk9PmJ6LHdlYnJlcXVlc3Q6KCk9PmVsfSk7dmFyIG5UZT11KCgpPT57YVF0KCk7c1RlKCk7Sl9lKCk7bWRlKCk7clRlKCk7X19lKCk7YVRlKCk7eGRlKCl9KTt2YXIgZHAsdXA9dSgoKT0+e1cyZSgpO2RwPUdhKEtsZSgpLDEpO0pDKCk7bVp0KCk7dDYoKTtnWnQoKTtLMSgpO25UZSgpfSk7dmFyIEoyLEZ2PXUoKCk9Pnt1cCgpO0oyPWNsYXNze3N0YXRpY3tpKHRoaXMsIlR5cGVkUmVzcG9uc2VFcnJvciIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5lcnJvclRleHQ9ZSx0aGlzLmVycm9yRGF0YT1yfX19KTt2YXIga2RlLGlRdD11KCgpPT57RnYoKTt1cCgpO2tkZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFRvb2xzIil9Y29uc3RydWN0b3IoKXt0aGlzLmxvY2FsRGF0YT17fX1hc3luYyBwYXNzR3VhcmRzKGUscil7bGV0IGE9bmV3IGR6Lkd1YXJkU2V0KGUpO2lmKCFhd2FpdCBhLmFsbEd1YXJkc1Bhc3Mocikpe2xldCBuPWF3YWl0IGEuZ2V0RmFpbGVkSGludChyKTt0aHJvdyBuZXcgSjIoYGd1YXJkIGZhaWxlZDogJHtufWAse2ZhaWxlZEhpbnQ6bn0pfX19fSk7dmFyIG9UZSxsVGU9dSgoKT0+e3VwKCk7RnYoKTtpUXQoKTtvVGU9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRIYW5kbGVyIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLm1ldGhvZD1lLHRoaXMuaGFuZGxlckZ1bmN0aW9uPXJ9YXN5bmMgYWRkUmVzcG9uc2UoZSl7aWYoZS5tZXRob2QhPT10aGlzLm1ldGhvZCl0aHJvdyBuZXcgRXJyb3IoInRoaXMgaGFuZGxlciBoYXMgYmVlbiBnaXZlbiBhIHdyb25nIG1ldGhvZCB0byBhbnN3ZXIgdG8uIFBsZWFzZSB1c2UgYSBUeXBlZFJvdXRlciB0byBmaWx0ZXIgcmVxdWVzdHMiKTtsZXQgcixhPW5ldyBrZGU7ZS5sb2NhbERhdGEmJihhLmxvY2FsRGF0YT1lLmxvY2FsRGF0YSk7bGV0IHM9YXdhaXQgdGhpcy5oYW5kbGVyRnVuY3Rpb24oZS5yZXF1ZXN0LGEpLmNhdGNoKG49PntuIGluc3RhbmNlb2YgSjI/cj1uOmNvbnNvbGUubG9nKG4pfSk7cmV0dXJuIHImJihlLmVycm9yPXt0ZXh0OnIuZXJyb3JUZXh0LGRhdGE6ci5lcnJvckRhdGF9KSxzJiYoZS5yZXNwb25zZT1zKSxlPy5jb3JyZWxhdGlvbj8ucGhhc2UmJihlLmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIpLGV9fX0pO3ZhciB5Nix4ej11KCgpPT57dXAoKTtTZGUoKTtsVGUoKTtjVGUoKTtGdigpO3k2PWNsYXNzIHR7c3RhdGlje2kodGhpcywiVHlwZWRSb3V0ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuaG9va3M9e30sdGhpcy5yb3V0ZXJNYXA9bmV3IFpzLk9iamVjdE1hcCx0aGlzLmhhbmRsZXJNYXA9bmV3IFpzLk9iamVjdE1hcCx0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcz1uZXcgWnMuT2JqZWN0TWFwLHRoaXMubWlkZGxld2FyZXM9W10sdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcD1uZXcgWnMuSW50ZXJlc3RNYXAoZT0+ZSl9c3RhdGljIGdldCBnbG9iYWxIb29rcygpe3JldHVybiBnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc3x8KGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9KSxnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc31zdGF0aWMgc2V0IGdsb2JhbEhvb2tzKGUpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPWV9c3RhdGljIHNldEdsb2JhbEhvb2tzKGUpe2xldCByPXQuZ2xvYmFsSG9va3M7dC5nbG9iYWxIb29rcz17Li4uciwuLi5lfX1zdGF0aWMgY2xlYXJHbG9iYWxIb29rcygpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9fXNldEhvb2tzKGUpe3RoaXMuaG9va3M9ey4uLnRoaXMuaG9va3MsLi4uZX19Y2FsbEhvb2soZSxyKXt0cnl7dC5nbG9iYWxIb29rc1tlXT8uKHIpLHRoaXMuaG9va3NbZV0/LihyKX1jYXRjaChhKXtjb25zb2xlLmVycm9yKGBUeXBlZFJvdXRlciBob29rIGVycm9yICgke2V9KTpgLGEpfX1hZGRNaWRkbGV3YXJlKGUpe3RoaXMubWlkZGxld2FyZXMucHVzaChlKX1hZGRUeXBlZEhhbmRsZXIoZSl7aWYodGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZS5tZXRob2QpKXRocm93IG5ldyBFcnJvcihgYSBUeXBlZEhhbmRsZXIgZm9yICR7ZS5tZXRob2R9IGFscmVkeSBleGlzdHMhIENhbid0IGFkZCBhbm90aGVyIG9uZS5gKTt0aGlzLmhhbmRsZXJNYXAuYWRkKGUpfWFkZFR5cGVkUm91dGVyKGUpe3RoaXMucm91dGVyTWFwLmZpbmRTeW5jKGE9PmE9PT1lKXx8KHRoaXMucm91dGVyTWFwLmFkZChlKSxlLmFkZFR5cGVkUm91dGVyKHRoaXMpKX1jaGVja0ZvclR5cGVkSGFuZGxlcihlKXtyZXR1cm4hIXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUpfWdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlLHI9W10pe3IucHVzaCh0aGlzKTtsZXQgYTtyZXR1cm4gYT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMocz0+cy5tZXRob2Q9PT1lKSxhfHx0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpLmZvckVhY2gocz0+eyFhJiYhci5pbmNsdWRlcyhzKSYmKGE9cy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSxyKSl9KSxhfWdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLHI9W10pe3IucHVzaCh0aGlzKTtsZXQgYT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMocz0+cy5tZXRob2Q9PT1lKTtpZihhKXJldHVybntoYW5kbGVyOmEscm91dGVyOnRoaXN9O2ZvcihsZXQgcyBvZiB0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpKWlmKCFyLmluY2x1ZGVzKHMpKXtsZXQgbj1zLmdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLHIpO2lmKG4pcmV0dXJuIG59cmV0dXJuIG51bGx9c3RhdGlje3RoaXMuZGVmYXVsdFJvdXRlT3B0aW9ucz17bG9jYWxSZXF1ZXN0OiExLHNraXBIb29rczohMX19YXN5bmMgcm91dGVBbmRBZGRSZXNwb25zZShlLHI9e30pe2xldCBhPXsuLi50LmRlZmF1bHRSb3V0ZU9wdGlvbnMsLi4ucn07aWYoZT1lYy5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGUubG9jYWxEYXRhPWUubG9jYWxEYXRhfHx7fSxlLmxvY2FsRGF0YS5maXJzdFR5cGVkcm91dGVyPXRoaXMsZS5tZXRob2Q9PT0iIyNWaXJ0dWFsU3RyZWFtIyMiKXtsZXQgcz1hd2FpdCB0aGlzLmhhbmRsZVN0cmVhbVR5cGVkUmVxdWVzdChlKTtyZXR1cm4gcy5sb2NhbERhdGE9bnVsbCxzfWlmKGU/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXF1ZXN0Inx8YS5sb2NhbFJlcXVlc3Qpe2xldCBzPURhdGUubm93KCk7YS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uSW5jb21pbmdSZXF1ZXN0Iix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVxdWVzdCIsdGltZXN0YW1wOnMscGF5bG9hZDplLnJlcXVlc3R9KTtsZXQgbj10aGlzLmdldFR5cGVkSGFuZGxlckFuZFJvdXRlcihlLm1ldGhvZCk7aWYoIW4pcmV0dXJuIGNvbnNvbGUubG9nKGBDYW5ub3QgZmluZCBoYW5kbGVyIGZvciBtZXRob2RuYW1lICR7ZS5tZXRob2R9YCksZS5lcnJvcj17dGV4dDoiVGhlcmUgaXMgbm8gYXZhaWxhYmxlIG1ldGhvZCBmb3IgdGhpcyBjYWxsIG9uIHRoZSBzZXJ2ZXIgc2lkZSIsZGF0YTp7fX0sZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLGUubG9jYWxEYXRhPW51bGwsZT1lYy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcyxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGU7bGV0e2hhbmRsZXI6byxyb3V0ZXI6bH09bjtpZihsLm1pZGRsZXdhcmVzLmxlbmd0aD4wKXRyeXtmb3IobGV0IGMgb2YgbC5taWRkbGV3YXJlcylhd2FpdCBjKGUpfWNhdGNoKGMpe3JldHVybiBjIGluc3RhbmNlb2YgSjI/ZS5lcnJvcj17dGV4dDpjLmVycm9yVGV4dCxkYXRhOmMuZXJyb3JEYXRhfHx7fX06ZS5lcnJvcj17dGV4dDpjLm1lc3NhZ2V8fCJNaWRkbGV3YXJlIGVycm9yIixkYXRhOnt9fSxlLmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIsZS5sb2NhbERhdGE9bnVsbCxlPWVjLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUse3R5cGVkcm91dGVyOnRoaXN9KSxhLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1zLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksZX1yZXR1cm4gZT1hd2FpdCBvLmFkZFJlc3BvbnNlKGUpLGUubG9jYWxEYXRhPW51bGwsZT1lYy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcyxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGV9ZWxzZSByZXR1cm4gZT8uY29ycmVsYXRpb24/LnBoYXNlPT09InJlc3BvbnNlIj8oYS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uSW5jb21pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXAuZmluZEludGVyZXN0KGUuY29ycmVsYXRpb24uaWQpPy5mdWxsZmlsbEludGVyZXN0KGUpLG51bGwpOihjb25zb2xlLmxvZygicmVjZWl2ZWQgd2VpcmRseSBzaGFwZWQgcmVxdWVzdCIpLGNvbnNvbGUubG9nKGUpLG51bGwpfWFzeW5jIGhhbmRsZVN0cmVhbVR5cGVkUmVxdWVzdChlKXtsZXQgcj1hd2FpdCB0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5maW5kKGFzeW5jIHM9PnMuc3RyZWFtSWQ9PT1lLnJlcXVlc3Quc3RyZWFtSWQpO2lmKHIpY29uc29sZS5sb2coYHN1Y2Nlc3M6IGZvdW5kIHJlbGV2YW50IHZpcnR1YWwgc3RyZWFtIHdpdGggaWQgJHtlLnJlcXVlc3Quc3RyZWFtSWR9YCk7ZWxzZSByZXR1cm4gY29uc29sZS5sb2coYG5vIHJlbGV2YW50IHZpcnR1YWwgc3RyZWFtIGZvdW5kIGZvciBzdHJlYW0gd2l0aCBpZCAke2UucmVxdWVzdC5zdHJlYW1JZH1gKSxjb25zb2xlLmxvZyh0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5nZXRBcnJheSgpKSxlO3JldHVybiBhd2FpdCByLmhhbmRsZVN0cmVhbVRyKGUpfX19KTt2YXIgc1F0LGVjLFNkZT11KCgpPT57dXAoKTt4eigpO3NRdD0iIyMjIyMjIyMjIyMjI0NMT1NJTkcgQklUIyMjIyMjIyMjIyMjIyIsZWM9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJWaXJ0dWFsU3RyZWFtIil9c3RhdGljIGVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUscixhLHM9W10pe3JldHVybiFlfHxEdi5pc0J1ZmZlckxpa2UoZSk/ZTplIGluc3RhbmNlb2YgdD8oIWUuc2lkZSYmci5zZW5kTWV0aG9kJiYoZS5zaWRlPSJyZXF1ZXN0aW5nIixlLnNlbmRNZXRob2Q9ci5zZW5kTWV0aG9kKSwhZS5zaWRlJiZyLnR5cGVkcm91dGVyJiYoZS5zaWRlPSJyZXNwb25kaW5nIixlLnR5cGVkcm91dGVyPXIudHlwZWRyb3V0ZXIsci50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuYWRkKGUpKSwhYS5yZXNwb25zZXx8cy5pbmNsdWRlcygicmVzcG9uc2UiKT8oZS5zdGFydEtlZXBBbGl2ZUxvb3AoKSx7X2lzVmlydHVhbFN0cmVhbTohMCxzdHJlYW1JZDplLnN0cmVhbUlkfSk6e19PQk1JVFRFRF9WSVJUVUFMX1NUUkVBTTohMCxyZWFzb246InBhdGggaXMgdW5kZXIgLnJlcXVlc3Q6IG9ibWl0dGVkIGZvciBkZWR1cGxpY2F0aW9uIHJlYXNvbnMgaW4gcmVzcG9uc2UgY3ljbGUuIn0pOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoKG4sbyk9PnQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobixyLGF8fGUscy5jb25jYXQoU3RyaW5nKG8pKSkpOmUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCI/T2JqZWN0LmVudHJpZXMoZSkucmVkdWNlKChuLFtvLGxdKT0+e2xldCBjPXMuY29uY2F0KG8pO3JldHVybiBuW29dPXQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobCxyLGF8fGUsYyksbn0se30pOmV9c3RhdGljIGRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLHIpe2lmKER2LmlzQnVmZmVyTGlrZShlKXx8ZSBpbnN0YW5jZW9mIHk2KXJldHVybiBlO2lmKGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCIpe2lmKGUgaW5zdGFuY2VvZiBTZXR8fGUgaW5zdGFuY2VvZiBNYXB8fGUgaW5zdGFuY2VvZiBEYXRlfHxlIGluc3RhbmNlb2YgUmVnRXhwfHxlIGluc3RhbmNlb2YgRXJyb3J8fGUgaW5zdGFuY2VvZiBQcm9taXNlfHx0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBlO2lmKGUuX2lzVmlydHVhbFN0cmVhbSl7bGV0IGE9bmV3IHQ7cmV0dXJuIGEuc3RyZWFtSWQ9ZS5zdHJlYW1JZCwhYS5zaWRlJiZyLnNlbmRNZXRob2QmJihhLnNpZGU9InJlcXVlc3RpbmciLGEuc2VuZE1ldGhvZD1yLnNlbmRNZXRob2QpLCFhLnNpZGUmJnIudHlwZWRyb3V0ZXImJihhLnNpZGU9InJlc3BvbmRpbmciLGEudHlwZWRyb3V0ZXI9ci50eXBlZHJvdXRlcixyLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQoYSkpLGEuc3RhcnRLZWVwQWxpdmVMb29wKCksYX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBhPVtdO2ZvcihsZXQgcyBvZiBlKWEucHVzaCh0LmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhzLHIpKTtyZXR1cm4gYX1lbHNlIHJldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKGEscyk9PihhW3NdPXQuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGVbc10sciksYSkse30pfWVsc2UgcmV0dXJuIGV9Y29uc3RydWN0b3IoKXt0aGlzLnN0cmVhbUlkPWRwLnVuaSgpLHRoaXMua2VlcEFsaXZlPSEwLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheT1uZXcgWnMuQmFja3ByZXNzdXJlZEFycmF5KDE2KSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXk9bmV3IFpzLkJhY2twcmVzc3VyZWRBcnJheSgxNil9c3RhdGljIHJlY29uc3RpdHV0ZUJpbmFyeURhdGEoZSl7aWYoZT09bnVsbHx8ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHR5cGVvZiBCdWZmZXI8InUiJiZCdWZmZXIuaXNCdWZmZXIoZSkpcmV0dXJuIGU7aWYodHlwZW9mIGU9PSJvYmplY3QiKXtpZihlLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJnR5cGVvZiBlLmRhdGE9PSJzdHJpbmciJiZlLmRhdGEuc3RhcnRzV2l0aCgiYmFzZTY0OiIpKXtsZXQgYT1lLmRhdGEuc2xpY2UoNyk7aWYodHlwZW9mIEJ1ZmZlcjwidSIpe2xldCBzPUJ1ZmZlci5mcm9tKGEsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheShzLmJ1ZmZlcixzLmJ5dGVPZmZzZXQscy5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKGEpKS5tYXAocz0+cy5jaGFyQ29kZUF0KDApKSl9aWYoZS50eXBlPT09IkJ1ZmZlciImJkFycmF5LmlzQXJyYXkoZS5kYXRhKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtsZXQgcj1PYmplY3Qua2V5cyhlKTtpZihyLmxlbmd0aD4wJiZyLmV2ZXJ5KGE9Pi9eXGQrJC8udGVzdChhKSkpe2xldCBhPW5ldyBBcnJheShyLmxlbmd0aCk7Zm9yKGxldCBzIG9mIHIpYVtOdW1iZXIocyldPWVbc107aWYoYS5ldmVyeShzPT50eXBlb2Ygcz09Im51bWJlciIpKXJldHVybiBuZXcgVWludDhBcnJheShhKX19cmV0dXJuIGV9YXN5bmMgd29ya09uUXVldWUoKXtpZih0aGlzLndvcmtpbmdEZWZlcnJlZClyZXR1cm4gdGhpcy53b3JraW5nRGVmZXJyZWQucHJvbWlzZTtpZih0aGlzLndvcmtpbmdEZWZlcnJlZD0kdC5kZWZlcigpLHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7bGV0IGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCkscj0hMSxhPSExLHM9aShhc3luYygpPT57bGV0IG49YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZHAudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e2NvbnNvbGUubG9nKCJzdHJlYW0gZW5kZWQgaW1tYXR1cmVseSIpLHRoaXMua2VlcEFsaXZlPSExfSk7biYmbi5yZXNwb25zZSYmKGE9bi5yZXNwb25zZS5iYWNrcHJlc3N1cmUscj1uLnJlc3BvbnNlLm5leHQpfSwiZ2V0RmVlZGJhY2siKTtmb3IoYXdhaXQgcygpO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wfHxyOyl7aWYoYSlmb3IoO2E7KWNvbnNvbGUubG9nKCJ3YWl0aW5nIGZvciBmZWVkYmFjayBiZWNhdXNlIG9mIGJhY2twcmVzc3VyZS4uLiIpLGF3YWl0IFRyLmRlbGF5Rm9yKDUwKSxhd2FpdCBzKCk7bGV0IG47dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJihuPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpKTtsZXQgbztvPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmRwLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZTpuPyJjaHVuayI6InJlYWQiLGJhY2twcmVzc3VyZTplLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsLi4ubj97Y2h1bmtEYXRhOm59Ont9fSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pihjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMSxudWxsKSksbyYmby5yZXNwb25zZSYmby5yZXNwb25zZS5jaHVua0RhdGEmJnRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKHQucmVjb25zdGl0dXRlQmluYXJ5RGF0YShvLnJlc3BvbnNlLmNodW5rRGF0YSkpLGE9byYmby5yZXNwb25zZSYmby5yZXNwb25zZS5iYWNrcHJlc3N1cmUsZT0hdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxyPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UubmV4dH19dGhpcy53b3JraW5nRGVmZXJyZWQucmVzb2x2ZSgpLHRoaXMud29ya2luZ0RlZmVycmVkPW51bGx9YXN5bmMgaGFuZGxlU3RyZWFtVHIoZSl7aWYoZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSEwJiZ0aGlzLmtlZXBBbGl2ZT09PSEwP3RoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PURhdGUubm93KCk6ZS5yZXF1ZXN0LmtlZXBBbGl2ZT09PSExJiYodGhpcy5rZWVwQWxpdmU9ITEpLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJrZWVwQWxpdmUiJiYoZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImtlZXBBbGl2ZSIsa2VlcEFsaXZlOnRoaXMua2VlcEFsaXZlLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImZlZWRiYWNrIiYmKGUucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDplLnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9KSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0iY2h1bmsiKXtpZih0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaCh0LnJlY29uc3RpdHV0ZUJpbmFyeURhdGEoZS5yZXF1ZXN0LmNodW5rRGF0YSkpLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiZlLnJlc3BvbnNlLmJhY2twcmVzc3VyZT09PSExKXtsZXQgcj10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKTtlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiY2h1bmsiLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjEsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGNodW5rRGF0YTp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX19ZWxzZSBlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfTtlLnJlcXVlc3Q9bnVsbH1yZXR1cm4gZX1hc3luYyBjbGVhbnVwKCl7dGhpcy50eXBlZHJvdXRlciYmdGhpcy50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMucmVtb3ZlKHRoaXMpfWFzeW5jIHN0YXJ0S2VlcEFsaXZlTG9vcCgpe2lmKHRoaXMuc2lkZT09PSJyZXNwb25kaW5nIilyZXR1cm47YXdhaXQgVHIuZGVsYXlGb3IoMCksY29uc29sZS5sb2coYHN0YXJ0aW5nIGtlZXBhbGl2ZSBsb29wIG9uIHNpZGUgJHt0aGlzLnNpZGV9YCk7bGV0IGU9MDtmb3IoO3RoaXMua2VlcEFsaXZlOylhd2FpdCB0aGlzLnRyaWdnZXJLZWVwQWxpdmUoKSxhd2FpdCBUci5kZWxheUZvcigxZTMpO2F3YWl0IFRyLmRlbGF5Rm9yKDFlMyksYXdhaXQgdGhpcy5jbGVhbnVwKCksY29uc29sZS5sb2coYGNsZWFuZWQgdXAgZm9yIHN0cmVhbSAke3RoaXMuc3RyZWFtSWR9YCl9YXN5bmMgdHJpZ2dlcktlZXBBbGl2ZSgpe2lmKHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7Y29uc29sZS5sb2coImtlZXBhbGl2ZSBzZW50LiIpO2xldCBlPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmRwLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmV9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e3RoaXMua2VlcEFsaXZlPSExfSk7ZSYmZS5yZXNwb25zZSYmZS5yZXNwb25zZS5rZWVwQWxpdmU9PT0hMT90aGlzLmtlZXBBbGl2ZT0hMTp0aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpLGUmJmUucmVzcG9uc2UmJmUucmVzcG9uc2UubmV4dCYmdGhpcy53b3JrT25RdWV1ZSgpfURhdGUubm93KCktdGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ+MWU0JiYoY29uc29sZS5sb2coYGNsb3Npbmcgc3RyZWFtIGZvciAke3RoaXMuc3RyZWFtSWR9YCksdGhpcy5rZWVwQWxpdmU9ITEpfWFzeW5jIHNlbmREYXRhKGUpe3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUpLHRoaXMud29ya09uUXVldWUoKSxhd2FpdCB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvclNwYWNlKCl9YXN5bmMgZmV0Y2hEYXRhKCl7cmV0dXJuIHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5oYXNTcGFjZSxhd2FpdCB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvckl0ZW1zKCksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9YXN5bmMgcmVhZEZyb21XZWJzdHJlYW0oZSxyPSEwKXtsZXQgYT1lLmdldFJlYWRlcigpLHM9ITE7Zm9yKDshczspe2xldHt2YWx1ZTpuLGRvbmU6b309YXdhaXQgYS5yZWFkKCk7biYmYXdhaXQgdGhpcy5zZW5kRGF0YShuKSxzPW99ciYmYXdhaXQgdGhpcy5jbG9zZSghMCl9YXN5bmMgd3JpdGVUb1dlYnN0cmVhbShlKXtsZXQgcj1lLmdldFdyaXRlcigpO2Zvcig7dGhpcy5rZWVwQWxpdmV8fHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja0hhc0l0ZW1zKCk7KXtsZXQgYT1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO2lmKGE9PT1zUXQpe3IucmVsZWFzZUxvY2soKSxhd2FpdCBlLmNsb3NlKCk7YnJlYWt9YXdhaXQgci53cml0ZShhKX19YXN5bmMgY2xvc2UoZT0hMSl7ZSYmdGhpcy5zZW5kRGF0YShzUXQpLHRoaXMua2VlcEFsaXZlPSExfX19KTt2YXIgZFRlLHVUZT11KCgpPT57eHooKTt1cCgpO2RUZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFRhcmdldCIpfWNvbnN0cnVjdG9yKGUpe2lmKGUucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlciYmIWUudHlwZWRSb3V0ZXJSZWYpdGhyb3cgbmV3IEVycm9yKCJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgdHlwZWRyb3V0ZXIgd2hlbiB1c2luZyBwb3N0bWV0aG9kIHdpdGggdHlwZWRyb3V0ZXIiKTt0aGlzLm9wdGlvbnM9ZX1hc3luYyBwb3N0KGUpe2xldCByO3RoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZiYmKHI9YXdhaXQgdGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmLmZpcmVFdmVudEludGVyZXN0TWFwLmFkZEludGVyZXN0KGUuY29ycmVsYXRpb24uaWQsZSkpO2xldCBzPWF3YWl0KHRoaXMub3B0aW9ucy5wb3N0TWV0aG9kfHx0aGlzLm9wdGlvbnMucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcikoZSksbjtyZXR1cm4gcj9uPWF3YWl0IHIuaW50ZXJlc3RGdWxsZmlsbGVkOnM/bj1zOm49ZSxufX19KTtmdW5jdGlvbiBuUXQodCxlKXt0cnl7eTYuZ2xvYmFsSG9va3NbdF0/LihlKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBUeXBlZFJlcXVlc3QgaG9vayBlcnJvciAoJHt0fSk6YCxyKX19dmFyIF92YSx2eixjVGU9dSgoKT0+e3VwKCk7U2RlKCk7RnYoKTt4eigpO3VUZSgpO192YT1uZXcgdjYuV2VicmVxdWVzdENsaWVudDtpKG5RdCwiY2FsbEdsb2JhbEhvb2siKTt2ej1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlZFJlcXVlc3QiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc2tpcEhvb2tzPSExLHR5cGVvZiBlPT0ic3RyaW5nIj90aGlzLnVybEVuZFBvaW50PWU6dGhpcy50eXBlZFRhcmdldD1lLHRoaXMubWV0aG9kPXJ9YXN5bmMgZmlyZShlLHI9ITEpe2xldCBhPURhdGUubm93KCkscz17bWV0aG9kOnRoaXMubWV0aG9kLHJlcXVlc3Q6ZSxyZXNwb25zZTpudWxsLGNvcnJlbGF0aW9uOntpZDpkcC51bmkoKSxwaGFzZToicmVxdWVzdCJ9fTtzPWVjLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKHMse3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fG5RdCgib25PdXRnb2luZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOnMuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6YSxwYXlsb2FkOmV9KTtsZXQgbjtyZXR1cm4gbj1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChzLHIpLG49ZWMuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKG4se3NlbmRNZXRob2Q6aShvPT50aGlzLnBvc3RUck9iamVjdChvKSwic2VuZE1ldGhvZCIpfSksdGhpcy5za2lwSG9va3N8fG5RdCgib25JbmNvbWluZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDpzLmNvcnJlbGF0aW9uLmlkLG1ldGhvZDp0aGlzLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1hLHBheWxvYWQ6bj8ucmVzcG9uc2UsZXJyb3I6bj8uZXJyb3I/LnRleHR9KSxuLnJlc3BvbnNlfWFzeW5jIHBvc3RUck9iamVjdChlLHI9ITEpe2xldCBhO2lmKHRoaXMudXJsRW5kUG9pbnQ/YT1hd2FpdCBfdmEucG9zdEpzb24odGhpcy51cmxFbmRQb2ludCxlLHI/e2NhY2hlU3RyYXRlZ3k6ImNhY2hlLWZpcnN0In06e30pOmE9YXdhaXQgdGhpcy50eXBlZFRhcmdldC5wb3N0KGUpLGEuZXJyb3Ipe2lmKGNvbnNvbGUuZXJyb3IoYG1ldGhvZDogPj4ke3RoaXMubWV0aG9kfTw8IGdvdCBhbiBFUlJPUjogIiR7YS5lcnJvci50ZXh0fSIgd2l0aCBkYXRhICR7SlNPTi5zdHJpbmdpZnkoYS5lcnJvci5kYXRhLG51bGwsMil9YCksIWEucmV0cnkpdGhyb3cgbmV3IEoyKGEuZXJyb3IudGV4dCxhLmVycm9yLmRhdGEpO3JldHVybiBudWxsfXJldHVybiBhLnJldHJ5JiYoY29uc29sZS5sb2coYHNlcnZlciByZXF1ZXN0ZWQgcmV0cnkgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uOiAke2EucmV0cnkucmVhc29ufWApLGF3YWl0IFRyLmRlbGF5Rm9yKGEucmV0cnkud2FpdEZvck1zKSxhPWF3YWl0IHRoaXMucG9zdFRyT2JqZWN0KGUscikpLGF9fX0pO3ZhciBfMT17fTtWZShfMSx7VHlwZWRIYW5kbGVyOigpPT5vVGUsVHlwZWRSZXF1ZXN0OigpPT52eixUeXBlZFJlc3BvbnNlRXJyb3I6KCk9PkoyLFR5cGVkUm91dGVyOigpPT55NixUeXBlZFRhcmdldDooKT0+ZFRlLFZpcnR1YWxTdHJlYW06KCk9PmVjfSk7dmFyIE1kZT11KCgpPT57Y1RlKCk7bFRlKCk7eHooKTtGdigpO3VUZSgpO1NkZSgpfSk7ZnVuY3Rpb24gb1F0KHQpe3JldHVybiB0JiZ0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIFYwKHQsZSl7cmV0dXJuIHR8fCh0PTApLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHIoZSl9LHQpfSl9ZnVuY3Rpb24gZFF0KHQsZSl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KzEpK3QpfWZ1bmN0aW9uIEM0KCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKX1mdW5jdGlvbiB6NCgpe3ZhciB0PURhdGUubm93KCkqMWUzO3JldHVybiB0PD1wVGUmJih0PXBUZSsxKSxwVGU9dCx0fWZ1bmN0aW9uIHVRdCgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmdHlwZW9mIG5hdmlnYXRvci5sb2NrczwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3MucmVxdWVzdD09ImZ1bmN0aW9uIn12YXIgbFF0LGNRdCx0bCxwVGUscHA9dSgoKT0+e2kob1F0LCJpc1Byb21pc2UiKTtsUXQ9UHJvbWlzZS5yZXNvbHZlKCExKSxjUXQ9UHJvbWlzZS5yZXNvbHZlKCEwKSx0bD1Qcm9taXNlLnJlc29sdmUoKTtpKFYwLCJzbGVlcCIpO2koZFF0LCJyYW5kb21JbnQiKTtpKEM0LCJyYW5kb21Ub2tlbiIpO3BUZT0wO2koejQsIm1pY3JvU2Vjb25kcyIpO2kodVF0LCJzdXBwb3J0c1dlYkxvY2tBUEkiKX0pO2Z1bmN0aW9uIER2YSh0KXt2YXIgZT17dGltZTp6NCgpLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxiYzpuZXcgQnJvYWRjYXN0Q2hhbm5lbCh0KSxzdWJGbnM6W119O3JldHVybiBlLmJjLm9ubWVzc2FnZT1mdW5jdGlvbihyKXtlLm1lc3NhZ2VzQ2FsbGJhY2smJmUubWVzc2FnZXNDYWxsYmFjayhyLmRhdGEpfSxlfWZ1bmN0aW9uICR2YSh0KXt0LmJjLmNsb3NlKCksdC5zdWJGbnM9W119ZnVuY3Rpb24gQXZhKHQsZSl7dHJ5e3JldHVybiB0LmJjLnBvc3RNZXNzYWdlKGUsITEpLHRsfWNhdGNoKHIpe3JldHVybiBQcm9taXNlLnJlamVjdChyKX19ZnVuY3Rpb24gRXZhKHQsZSl7dC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gSXZhKCl7aWYodHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzLkRlbm8mJmdsb2JhbFRoaXMuRGVuby5hcmdzKXJldHVybiEwO2lmKCh0eXBlb2Ygd2luZG93PCJ1Inx8dHlwZW9mIHNlbGY8InUiKSYmdHlwZW9mIEJyb2FkY2FzdENoYW5uZWw9PSJmdW5jdGlvbiIpe2lmKEJyb2FkY2FzdENoYW5uZWwuX3B1YmtleSl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWw6IERvIG5vdCBvdmVyd3JpdGUgd2luZG93LkJyb2FkY2FzdENoYW5uZWwgd2l0aCB0aGlzIG1vZHVsZSwgdGhpcyBpcyBub3QgYSBwb2x5ZmlsbCIpO3JldHVybiEwfWVsc2UgcmV0dXJuITF9ZnVuY3Rpb24gUHZhKCl7cmV0dXJuIDE1MH12YXIgVHZhLEx2YSxwUXQsZlF0PXUoKCk9PntwcCgpO1R2YT16NCxMdmE9Im5hdGl2ZSI7aShEdmEsImNyZWF0ZSIpO2koJHZhLCJjbG9zZSIpO2koQXZhLCJwb3N0TWVzc2FnZSIpO2koRXZhLCJvbk1lc3NhZ2UiKTtpKEl2YSwiY2FuQmVVc2VkIik7aShQdmEsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtwUXQ9e2NyZWF0ZTpEdmEsY2xvc2U6JHZhLG9uTWVzc2FnZTpFdmEscG9zdE1lc3NhZ2U6QXZhLGNhbkJlVXNlZDpJdmEsdHlwZTpMdmEsYXZlcmFnZVJlc3BvbnNlVGltZTpQdmEsbWljcm9TZWNvbmRzOlR2YX19KTtmdW5jdGlvbiBOdmEodCl7bGV0IGU9ZlRlKCktdC50dGwscj10Lm1hcFtTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKDs7KXtsZXQgYT1yLm5leHQoKS52YWx1ZTtpZighYSlicmVhaztsZXQgcz1hWzBdO2lmKGFbMV08ZSl0Lm1hcC5kZWxldGUocyk7ZWxzZSBicmVha319ZnVuY3Rpb24gZlRlKCl7cmV0dXJuIERhdGUubm93KCl9dmFyIEJ2LGhUZT11KCgpPT57QnY9Y2xhc3N7c3RhdGlje2kodGhpcywiT2JsaXZpb3VzU2V0Iil9dHRsO21hcD1uZXcgTWFwO190bz0hMTtjb25zdHJ1Y3RvcihlKXt0aGlzLnR0bD1lfWhhcyhlKXtsZXQgcj10aGlzLm1hcC5nZXQoZSk7cmV0dXJuIHR5cGVvZiByPiJ1Ij8hMTpyPGZUZSgpLXRoaXMudHRsPyh0aGlzLm1hcC5kZWxldGUoZSksITEpOiEwfWFkZChlKXt0aGlzLm1hcC5kZWxldGUoZSksdGhpcy5tYXAuc2V0KGUsZlRlKCkpLHRoaXMuX3RvfHwodGhpcy5fdG89ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuX3RvPSExLE52YSh0aGlzKX0sMCkpfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19O2koTnZhLCJyZW1vdmVUb29PbGRWYWx1ZXMiKTtpKGZUZSwibm93Iil9KTtmdW5jdGlvbiB3Nigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxlPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpO3JldHVybiB0eXBlb2YgZS53ZWJXb3JrZXJTdXBwb3J0PiJ1IiYmKGUud2ViV29ya2VyU3VwcG9ydD0hMCksZS5pZGJ8fChlLmlkYj17fSksZS5pZGIudHRsfHwoZS5pZGIudHRsPTFlMyo0NSksZS5pZGIuZmFsbGJhY2tJbnRlcnZhbHx8KGUuaWRiLmZhbGxiYWNrSW50ZXJ2YWw9MTUwKSx0LmlkYiYmdHlwZW9mIHQuaWRiLm9uY2xvc2U9PSJmdW5jdGlvbiImJihlLmlkYi5vbmNsb3NlPXQuaWRiLm9uY2xvc2UpLGUubG9jYWxzdG9yYWdlfHwoZS5sb2NhbHN0b3JhZ2U9e30pLGUubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXR8fChlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0PTFlMyo2MCksdC5tZXRob2RzJiYoZS5tZXRob2RzPXQubWV0aG9kcyksZS5ub2RlfHwoZS5ub2RlPXt9KSxlLm5vZGUudHRsfHwoZS5ub2RlLnR0bD0xZTMqNjAqMiksZS5ub2RlLm1heFBhcmFsbGVsV3JpdGVzfHwoZS5ub2RlLm1heFBhcmFsbGVsV3JpdGVzPTIwNDgpLHR5cGVvZiBlLm5vZGUudXNlRmFzdFBhdGg+InUiJiYoZS5ub2RlLnVzZUZhc3RQYXRoPSEwKSxlfXZhciBDZGU9dSgoKT0+e2kodzYsImZpbGxPcHRpb25zV2l0aERlZmF1bHRzIil9KTtmdW5jdGlvbiBoUXQoKXtpZih0eXBlb2YgaW5kZXhlZERCPCJ1IilyZXR1cm4gaW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3c8InUiKXtpZih0eXBlb2Ygd2luZG93Lm1vekluZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy5tb3pJbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdy53ZWJraXRJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cud2Via2l0SW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3cubXNJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cubXNJbmRleGVkREJ9cmV0dXJuITF9ZnVuY3Rpb24gemRlKHQpe3QuY29tbWl0JiZ0LmNvbW1pdCgpfWZ1bmN0aW9uIEJ2YSh0KXt2YXIgZT1oUXQoKSxyPVJ2YSt0LGE9ZS5vcGVuKHIpO3JldHVybiBhLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbihzKXt2YXIgbj1zLnRhcmdldC5yZXN1bHQ7bi5jcmVhdGVPYmplY3RTdG9yZSh0Yyx7a2V5UGF0aDoiaWQiLGF1dG9JbmNyZW1lbnQ6ITB9KX0sbmV3IFByb21pc2UoZnVuY3Rpb24ocyxuKXthLm9uZXJyb3I9ZnVuY3Rpb24obyl7cmV0dXJuIG4obyl9LGEub25zdWNjZXNzPWZ1bmN0aW9uKCl7cyhhLnJlc3VsdCl9fSl9ZnVuY3Rpb24gSHZhKHQsZSxyKXt2YXIgYT1EYXRlLm5vdygpLHM9e3V1aWQ6ZSx0aW1lOmEsZGF0YTpyfSxuPXQudHJhbnNhY3Rpb24oW3RjXSwicmVhZHdyaXRlIix5eik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8sbCl7bi5vbmNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG8oKX0sbi5vbmVycm9yPWZ1bmN0aW9uKGQpe3JldHVybiBsKGQpfTt2YXIgYz1uLm9iamVjdFN0b3JlKHRjKTtjLmFkZChzKSx6ZGUobil9KX1mdW5jdGlvbiBOc24odCl7dmFyIGU9dC50cmFuc2FjdGlvbih0YywicmVhZG9ubHkiLHl6KSxyPWUub2JqZWN0U3RvcmUodGMpLGE9W107cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMpe3Iub3BlbkN1cnNvcigpLm9uc3VjY2Vzcz1mdW5jdGlvbihuKXt2YXIgbz1uLnRhcmdldC5yZXN1bHQ7bz8oYS5wdXNoKG8udmFsdWUpLG8uY29udGludWUoKSk6KHpkZShlKSxzKGEpKX19KX1mdW5jdGlvbiBxdmEodCxlKXt2YXIgcj10LnRyYW5zYWN0aW9uKHRjLCJyZWFkb25seSIseXopLGE9ci5vYmplY3RTdG9yZSh0Yykscz1bXSxuPUlEQktleVJhbmdlLmJvdW5kKGUrMSwxLzApO2lmKGEuZ2V0QWxsKXt2YXIgbz1hLmdldEFsbChuKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXtvLm9uZXJyb3I9ZnVuY3Rpb24oZil7cmV0dXJuIGQoZil9LG8ub25zdWNjZXNzPWZ1bmN0aW9uKGYpe2MoZi50YXJnZXQucmVzdWx0KX19KX1mdW5jdGlvbiBsKCl7dHJ5e3JldHVybiBuPUlEQktleVJhbmdlLmJvdW5kKGUrMSwxLzApLGEub3BlbkN1cnNvcihuKX1jYXRjaHtyZXR1cm4gYS5vcGVuQ3Vyc29yKCl9fXJldHVybiBpKGwsIm9wZW5DdXJzb3IiKSxuZXcgUHJvbWlzZShmdW5jdGlvbihjLGQpe3ZhciBmPWwoKTtmLm9uZXJyb3I9ZnVuY3Rpb24ocCl7cmV0dXJuIGQocCl9LGYub25zdWNjZXNzPWZ1bmN0aW9uKHApe3ZhciBoPXAudGFyZ2V0LnJlc3VsdDtoP2gudmFsdWUuaWQ8ZSsxP2guY29udGludWUoZSsxKToocy5wdXNoKGgudmFsdWUpLGguY29udGludWUoKSk6KHpkZShyKSxjKHMpKX19KX1mdW5jdGlvbiBWdmEodCxlKXtpZih0LmNsb3NlZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgcj10LmRiLnRyYW5zYWN0aW9uKHRjLCJyZWFkd3JpdGUiLHl6KSxhPXIub2JqZWN0U3RvcmUodGMpO3JldHVybiBQcm9taXNlLmFsbChlLm1hcChmdW5jdGlvbihzKXt2YXIgbj1hLmRlbGV0ZShzKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyl7bi5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbygpfX0pfSkpfWZ1bmN0aW9uIGp2YSh0LGUpe3ZhciByPURhdGUubm93KCktZSxhPXQudHJhbnNhY3Rpb24odGMsInJlYWRvbmx5Iix5eikscz1hLm9iamVjdFN0b3JlKHRjKSxuPVtdO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvKXtzLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3M9ZnVuY3Rpb24obCl7dmFyIGM9bC50YXJnZXQucmVzdWx0O2lmKGMpe3ZhciBkPWMudmFsdWU7ZC50aW1lPHI/KG4ucHVzaChkKSxjLmNvbnRpbnVlKCkpOih6ZGUoYSksbyhuKSl9ZWxzZSBvKG4pfX0pfWZ1bmN0aW9uIFV2YSh0KXtyZXR1cm4ganZhKHQuZGIsdC5vcHRpb25zLmlkYi50dGwpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIFZ2YSh0LGUubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLmlkfSkpfSl9ZnVuY3Rpb24gV3ZhKHQsZSl7cmV0dXJuIGU9dzYoZSksQnZhKHQpLnRoZW4oZnVuY3Rpb24ocil7dmFyIGE9e2Nsb3NlZDohMSxsYXN0Q3Vyc29ySWQ6MCxjaGFubmVsTmFtZTp0LG9wdGlvbnM6ZSx1dWlkOkM0KCksZU1JczpuZXcgQnYoZS5pZGIudHRsKjIpLHdyaXRlQmxvY2tQcm9taXNlOnRsLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxyZWFkUXVldWVQcm9taXNlczpbXSxkYjpyfTtyZXR1cm4gci5vbmNsb3NlPWZ1bmN0aW9uKCl7YS5jbG9zZWQ9ITAsZS5pZGIub25jbG9zZSYmZS5pZGIub25jbG9zZSgpfSxtUXQoYSksYX0pfWZ1bmN0aW9uIG1RdCh0KXt0LmNsb3NlZHx8Z1F0KHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gVjAodC5vcHRpb25zLmlkYi5mYWxsYmFja0ludGVydmFsKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbVF0KHQpfSl9ZnVuY3Rpb24gR3ZhKHQsZSl7cmV0dXJuISh0LnV1aWQ9PT1lLnV1aWR8fGUuZU1Jcy5oYXModC5pZCl8fHQuZGF0YS50aW1lPGUubWVzc2FnZXNDYWxsYmFja1RpbWUpfWZ1bmN0aW9uIGdRdCh0KXtyZXR1cm4gdC5jbG9zZWQ/dGw6dC5tZXNzYWdlc0NhbGxiYWNrP3F2YSh0LmRiLHQubGFzdEN1cnNvcklkKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciByPWUuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiEhYX0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD50Lmxhc3RDdXJzb3JJZCYmKHQubGFzdEN1cnNvcklkPWEuaWQpLGF9KS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIEd2YShhLHQpfSkuc29ydChmdW5jdGlvbihhLHMpe3JldHVybiBhLnRpbWUtcy50aW1lfSk7cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihhKXt0Lm1lc3NhZ2VzQ2FsbGJhY2smJih0LmVNSXMuYWRkKGEuaWQpLHQubWVzc2FnZXNDYWxsYmFjayhhLmRhdGEpKX0pLHRsfSk6dGx9ZnVuY3Rpb24gWXZhKHQpe3QuY2xvc2VkPSEwLHQuZGIuY2xvc2UoKX1mdW5jdGlvbiBLdmEodCxlKXtyZXR1cm4gdC53cml0ZUJsb2NrUHJvbWlzZT10LndyaXRlQmxvY2tQcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gSHZhKHQuZGIsdC51dWlkLGUpfSkudGhlbihmdW5jdGlvbigpe2RRdCgwLDEwKT09PTAmJlV2YSh0KX0pLHQud3JpdGVCbG9ja1Byb21pc2V9ZnVuY3Rpb24gWnZhKHQsZSxyKXt0Lm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsdC5tZXNzYWdlc0NhbGxiYWNrPWUsZ1F0KHQpfWZ1bmN0aW9uIFF2YSgpe3JldHVybiEhaFF0KCl9ZnVuY3Rpb24gWHZhKHQpe3JldHVybiB0LmlkYi5mYWxsYmFja0ludGVydmFsKjJ9dmFyIE92YSxSdmEsdGMseXosRnZhLGJRdCx4UXQ9dSgoKT0+e3BwKCk7aFRlKCk7Q2RlKCk7T3ZhPXo0LFJ2YT0icHVia2V5LmJyb2FkY2FzdC1jaGFubmVsLTAtIix0Yz0ibWVzc2FnZXMiLHl6PXtkdXJhYmlsaXR5OiJyZWxheGVkIn0sRnZhPSJpZGIiO2koaFF0LCJnZXRJZGIiKTtpKHpkZSwiY29tbWl0SW5kZXhlZERCVHJhbnNhY3Rpb24iKTtpKEJ2YSwiY3JlYXRlRGF0YWJhc2UiKTtpKEh2YSwid3JpdGVNZXNzYWdlIik7aShOc24sImdldEFsbE1lc3NhZ2VzIik7aShxdmEsImdldE1lc3NhZ2VzSGlnaGVyVGhhbiIpO2koVnZhLCJyZW1vdmVNZXNzYWdlc0J5SWQiKTtpKGp2YSwiZ2V0T2xkTWVzc2FnZXMiKTtpKFV2YSwiY2xlYW5PbGRNZXNzYWdlcyIpO2koV3ZhLCJjcmVhdGUiKTtpKG1RdCwiX3JlYWRMb29wIik7aShHdmEsIl9maWx0ZXJNZXNzYWdlIik7aShnUXQsInJlYWROZXdNZXNzYWdlcyIpO2koWXZhLCJjbG9zZSIpO2koS3ZhLCJwb3N0TWVzc2FnZSIpO2koWnZhLCJvbk1lc3NhZ2UiKTtpKFF2YSwiY2FuQmVVc2VkIik7aShYdmEsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtiUXQ9e2NyZWF0ZTpXdmEsY2xvc2U6WXZhLG9uTWVzc2FnZTpadmEscG9zdE1lc3NhZ2U6S3ZhLGNhbkJlVXNlZDpRdmEsdHlwZTpGdmEsYXZlcmFnZVJlc3BvbnNlVGltZTpYdmEsbWljcm9TZWNvbmRzOk92YX19KTtmdW5jdGlvbiB2UXQoKXt2YXIgdDtpZih0eXBlb2Ygd2luZG93PiJ1IilyZXR1cm4gbnVsbDt0cnl7dD13aW5kb3cubG9jYWxTdG9yYWdlLHQ9d2luZG93WyJpZTgtZXZlbnRsaXN0ZW5lci9zdG9yYWdlIl18fHdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2h7fXJldHVybiB0fWZ1bmN0aW9uIHlRdCh0KXtyZXR1cm4gZXlhK3R9ZnVuY3Rpb24gcnlhKHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe1YwKCkudGhlbihmdW5jdGlvbigpe3ZhciBhPXlRdCh0LmNoYW5uZWxOYW1lKSxzPXt0b2tlbjpDNCgpLHRpbWU6RGF0ZS5ub3coKSxkYXRhOmUsdXVpZDp0LnV1aWR9LG49SlNPTi5zdHJpbmdpZnkocyk7dlF0KCkuc2V0SXRlbShhLG4pO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO28uaW5pdEV2ZW50KCJzdG9yYWdlIiwhMCwhMCksby5rZXk9YSxvLm5ld1ZhbHVlPW4sd2luZG93LmRpc3BhdGNoRXZlbnQobykscigpfSl9KX1mdW5jdGlvbiBheWEodCxlKXt2YXIgcj15UXQodCksYT1pKGZ1bmN0aW9uKG4pe24ua2V5PT09ciYmZShKU09OLnBhcnNlKG4ubmV3VmFsdWUpKX0sImxpc3RlbmVyIik7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIixhKSxhfWZ1bmN0aW9uIGl5YSh0KXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsdCl9ZnVuY3Rpb24gc3lhKHQsZSl7aWYoZT13NihlKSwhd1F0KCkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBsb2NhbHN0b3JhZ2UgY2Fubm90IGJlIHVzZWQiKTt2YXIgcj1DNCgpLGE9bmV3IEJ2KGUubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXQpLHM9e2NoYW5uZWxOYW1lOnQsdXVpZDpyLGVNSXM6YX07cmV0dXJuIHMubGlzdGVuZXI9YXlhKHQsZnVuY3Rpb24obil7cy5tZXNzYWdlc0NhbGxiYWNrJiZuLnV1aWQhPT1yJiYoIW4udG9rZW58fGEuaGFzKG4udG9rZW4pfHxuLmRhdGEudGltZSYmbi5kYXRhLnRpbWU8cy5tZXNzYWdlc0NhbGxiYWNrVGltZXx8KGEuYWRkKG4udG9rZW4pLHMubWVzc2FnZXNDYWxsYmFjayhuLmRhdGEpKSl9KSxzfWZ1bmN0aW9uIG55YSh0KXtpeWEodC5saXN0ZW5lcil9ZnVuY3Rpb24gb3lhKHQsZSxyKXt0Lm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsdC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gd1F0KCl7dmFyIHQ9dlF0KCk7aWYoIXQpcmV0dXJuITE7dHJ5e3ZhciBlPSJfX2Jyb2FkY2FzdGNoYW5uZWxfY2hlY2siO3Quc2V0SXRlbShlLCJ3b3JrcyIpLHQucmVtb3ZlSXRlbShlKX1jYXRjaHtyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBseWEoKXt2YXIgdD0xMjAsZT1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7cmV0dXJuIGUuaW5jbHVkZXMoInNhZmFyaSIpJiYhZS5pbmNsdWRlcygiY2hyb21lIik/dCoyOnR9dmFyIEp2YSxleWEsdHlhLGtRdCxTUXQ9dSgoKT0+e2hUZSgpO0NkZSgpO3BwKCk7SnZhPXo0LGV5YT0icHVia2V5LmJyb2FkY2FzdENoYW5uZWwtIix0eWE9ImxvY2Fsc3RvcmFnZSI7aSh2UXQsImdldExvY2FsU3RvcmFnZSIpO2koeVF0LCJzdG9yYWdlS2V5Iik7aShyeWEsInBvc3RNZXNzYWdlIik7aShheWEsImFkZFN0b3JhZ2VFdmVudExpc3RlbmVyIik7aShpeWEsInJlbW92ZVN0b3JhZ2VFdmVudExpc3RlbmVyIik7aShzeWEsImNyZWF0ZSIpO2kobnlhLCJjbG9zZSIpO2kob3lhLCJvbk1lc3NhZ2UiKTtpKHdRdCwiY2FuQmVVc2VkIik7aShseWEsImF2ZXJhZ2VSZXNwb25zZVRpbWUiKTtrUXQ9e2NyZWF0ZTpzeWEsY2xvc2U6bnlhLG9uTWVzc2FnZTpveWEscG9zdE1lc3NhZ2U6cnlhLGNhbkJlVXNlZDp3UXQsdHlwZTp0eWEsYXZlcmFnZVJlc3BvbnNlVGltZTpseWEsbWljcm9TZWNvbmRzOkp2YX19KTtmdW5jdGlvbiBkeWEodCl7dmFyIGU9e3RpbWU6TVF0KCksbmFtZTp0LG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbH07cmV0dXJuIG1UZS5hZGQoZSksZX1mdW5jdGlvbiB1eWEodCl7bVRlLmRlbGV0ZSh0KX1mdW5jdGlvbiBweWEodCxlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocil7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYT1BcnJheS5mcm9tKG1UZSk7YS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3MubmFtZT09PXQubmFtZSYmcyE9PXQmJnMubWVzc2FnZXNDYWxsYmFjayYmcy50aW1lPGUudGltZSYmcy5tZXNzYWdlc0NhbGxiYWNrKGUpfSkscigpfSxDUXQpfSl9ZnVuY3Rpb24gZnlhKHQsZSl7dC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gaHlhKCl7cmV0dXJuITB9ZnVuY3Rpb24gbXlhKCl7cmV0dXJuIENRdH12YXIgTVF0LGN5YSxtVGUsQ1F0LHpRdCxfUXQ9dSgoKT0+e3BwKCk7TVF0PXo0LGN5YT0ic2ltdWxhdGUiLG1UZT1uZXcgU2V0O2koZHlhLCJjcmVhdGUiKTtpKHV5YSwiY2xvc2UiKTtDUXQ9NTtpKHB5YSwicG9zdE1lc3NhZ2UiKTtpKGZ5YSwib25NZXNzYWdlIik7aShoeWEsImNhbkJlVXNlZCIpO2kobXlhLCJhdmVyYWdlUmVzcG9uc2VUaW1lIik7elF0PXtjcmVhdGU6ZHlhLGNsb3NlOnV5YSxvbk1lc3NhZ2U6ZnlhLHBvc3RNZXNzYWdlOnB5YSxjYW5CZVVzZWQ6aHlhLHR5cGU6Y3lhLGF2ZXJhZ2VSZXNwb25zZVRpbWU6bXlhLG1pY3JvU2Vjb25kczpNUXR9fSk7ZnVuY3Rpb24gZ1RlKHQpe3ZhciBlPVtdLmNvbmNhdCh0Lm1ldGhvZHMsVFF0KS5maWx0ZXIoQm9vbGVhbik7aWYodC50eXBlKXtpZih0LnR5cGU9PT0ic2ltdWxhdGUiKXJldHVybiB6UXQ7dmFyIHI9ZS5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLnR5cGU9PT10LnR5cGV9KTtpZihyKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigibWV0aG9kLXR5cGUgIit0LnR5cGUrIiBub3QgZm91bmQiKX10LndlYldvcmtlclN1cHBvcnR8fChlPWUuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiBzLnR5cGUhPT0iaWRiIn0pKTt2YXIgYT1lLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuY2FuQmVVc2VkKCl9KTtpZihhKXJldHVybiBhO3Rocm93IG5ldyBFcnJvcigiTm8gdXNhYmxlIG1ldGhvZCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KFRRdC5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMudHlwZX0pKSl9dmFyIFRRdCxMUXQ9dSgoKT0+e2ZRdCgpO3hRdCgpO1NRdCgpO19RdCgpO1RRdD1bcFF0LGJRdCxrUXRdO2koZ1RlLCJjaG9vc2VNZXRob2QiKX0pO2Z1bmN0aW9uIGJ5YSh0KXt0PXc2KHQpO3ZhciBlPWdUZSh0KTtyZXR1cm4gZS50eXBlPT09Im5vZGUiP2UuY2xlYXJOb2RlRm9sZGVyKCkudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSk6bFF0fWZ1bmN0aW9uIHh5YSh0KXtiVGU9dH1mdW5jdGlvbiBEUXQodCxlLHIpe3ZhciBhPXQubWV0aG9kLm1pY3JvU2Vjb25kcygpLHM9e3RpbWU6YSx0eXBlOmUsZGF0YTpyfSxuPXQuX3ByZXBQP3QuX3ByZXBQOnRsO3JldHVybiBuLnRoZW4oZnVuY3Rpb24oKXt2YXIgbz10Lm1ldGhvZC5wb3N0TWVzc2FnZSh0Ll9zdGF0ZSxzKTtyZXR1cm4gdC5fdU1QLmFkZChvKSxvLmNhdGNoKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0Ll91TVAuZGVsZXRlKG8pfSksb30pfWZ1bmN0aW9uIHZ5YSh0KXt2YXIgZT10Lm1ldGhvZC5jcmVhdGUodC5uYW1lLHQub3B0aW9ucyk7b1F0KGUpPyh0Ll9wcmVwUD1lLGUudGhlbihmdW5jdGlvbihyKXt0Ll9zdGF0ZT1yfSkpOnQuX3N0YXRlPWV9ZnVuY3Rpb24gJFF0KHQpe3JldHVybiB0Ll9hZGRFTC5tZXNzYWdlLmxlbmd0aD4wfHx0Ll9hZGRFTC5pbnRlcm5hbC5sZW5ndGg+MH1mdW5jdGlvbiBBUXQodCxlLHIpe3QuX2FkZEVMW2VdLnB1c2gocikseXlhKHQpfWZ1bmN0aW9uIEVRdCh0LGUscil7dC5fYWRkRUxbZV09dC5fYWRkRUxbZV0uZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhIT09cn0pLHd5YSh0KX1mdW5jdGlvbiB5eWEodCl7aWYoIXQuX2lMJiYkUXQodCkpe3ZhciBlPWkoZnVuY3Rpb24ocyl7dC5fYWRkRUxbcy50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3MudGltZT49bi50aW1lJiZuLmZuKHMuZGF0YSl9KX0sImxpc3RlbmVyRm4iKSxyPXQubWV0aG9kLm1pY3JvU2Vjb25kcygpO3QuX3ByZXBQP3QuX3ByZXBQLnRoZW4oZnVuY3Rpb24oKXt0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxyKX0pOih0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxyKSl9fWZ1bmN0aW9uIHd5YSh0KXtpZih0Ll9pTCYmISRRdCh0KSl7dC5faUw9ITE7dmFyIGU9dC5tZXRob2QubWljcm9TZWNvbmRzKCk7dC5tZXRob2Qub25NZXNzYWdlKHQuX3N0YXRlLG51bGwsZSl9fXZhciB4VGUsZ3lhLGs2LGJUZSxJUXQ9dSgoKT0+e3BwKCk7TFF0KCk7Q2RlKCk7eFRlPW5ldyBTZXQsZ3lhPTAsazY9aShmdW5jdGlvbihlLHIpe3RoaXMuaWQ9Z3lhKysseFRlLmFkZCh0aGlzKSx0aGlzLm5hbWU9ZSxiVGUmJihyPWJUZSksdGhpcy5vcHRpb25zPXc2KHIpLHRoaXMubWV0aG9kPWdUZSh0aGlzLm9wdGlvbnMpLHRoaXMuX2lMPSExLHRoaXMuX29uTUw9bnVsbCx0aGlzLl9hZGRFTD17bWVzc2FnZTpbXSxpbnRlcm5hbDpbXX0sdGhpcy5fdU1QPW5ldyBTZXQsdGhpcy5fYmVmQz1bXSx0aGlzLl9wcmVwUD1udWxsLHZ5YSh0aGlzKX0sIkJyb2FkY2FzdENoYW5uZWwiKTtrNi5fcHVia2V5PSEwO2koYnlhLCJjbGVhck5vZGVGb2xkZXIiKTtpKHh5YSwiZW5mb3JjZU9wdGlvbnMiKSxrNi5wcm90b3R5cGU9e3Bvc3RNZXNzYWdlOmkoZnVuY3Rpb24oZSl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKCk6IENhbm5vdCBwb3N0IG1lc3NhZ2UgYWZ0ZXIgY2hhbm5lbCBoYXMgY2xvc2VkICIrSlNPTi5zdHJpbmdpZnkoZSkpO3JldHVybiBEUXQodGhpcywibWVzc2FnZSIsZSl9LCJwb3N0TWVzc2FnZSIpLHBvc3RJbnRlcm5hbDppKGZ1bmN0aW9uKGUpe3JldHVybiBEUXQodGhpcywiaW50ZXJuYWwiLGUpfSwicG9zdEludGVybmFsIiksc2V0IG9ubWVzc2FnZSh0KXt2YXIgZT10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmUsZm46dH07RVF0KHRoaXMsIm1lc3NhZ2UiLHRoaXMuX29uTUwpLHQmJnR5cGVvZiB0PT0iZnVuY3Rpb24iPyh0aGlzLl9vbk1MPXIsQVF0KHRoaXMsIm1lc3NhZ2UiLHIpKTp0aGlzLl9vbk1MPW51bGx9LGFkZEV2ZW50TGlzdGVuZXI6aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLHM9e3RpbWU6YSxmbjpyfTtBUXQodGhpcyxlLHMpfSwiYWRkRXZlbnRMaXN0ZW5lciIpLHJlbW92ZUV2ZW50TGlzdGVuZXI6aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXMuX2FkZEVMW2VdLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuZm49PT1yfSk7RVF0KHRoaXMsZSxhKX0sInJlbW92ZUV2ZW50TGlzdGVuZXIiKSxjbG9zZTppKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZighdGhpcy5jbG9zZWQpe3hUZS5kZWxldGUodGhpcyksdGhpcy5jbG9zZWQ9ITA7dmFyIHI9dGhpcy5fcHJlcFA/dGhpcy5fcHJlcFA6dGw7cmV0dXJuIHRoaXMuX29uTUw9bnVsbCx0aGlzLl9hZGRFTC5tZXNzYWdlPVtdLHIudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChBcnJheS5mcm9tKGUuX3VNUCkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChlLl9iZWZDLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYSgpfSkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLm1ldGhvZC5jbG9zZShlLl9zdGF0ZSl9KX19LCJjbG9zZSIpLGdldCB0eXBlKCl7cmV0dXJuIHRoaXMubWV0aG9kLnR5cGV9LGdldCBpc0Nsb3NlZCgpe3JldHVybiB0aGlzLmNsb3NlZH19O2koRFF0LCJfcG9zdCIpO2kodnlhLCJfcHJlcGFyZUNoYW5uZWwiKTtpKCRRdCwiX2hhc01lc3NhZ2VMaXN0ZW5lcnMiKTtpKEFRdCwiX2FkZExpc3RlbmVyT2JqZWN0Iik7aShFUXQsIl9yZW1vdmVMaXN0ZW5lck9iamVjdCIpO2koeXlhLCJfc3RhcnRMaXN0ZW5pbmciKTtpKHd5YSwiX3N0b3BMaXN0ZW5pbmciKX0pO2Z1bmN0aW9uIFBRdCh0KXtpZih0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU9PSJmdW5jdGlvbiImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSl7dmFyIGU9c2VsZi5jbG9zZS5iaW5kKHNlbGYpO3NlbGYuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLGUoKX19ZWxzZXtpZih0eXBlb2Ygd2luZG93LmFkZEV2ZW50TGlzdGVuZXIhPSJmdW5jdGlvbiIpcmV0dXJuO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLGZ1bmN0aW9uKCl7dCgpfSwhMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZnVuY3Rpb24oKXt0KCl9LCEwKX19dmFyIE5RdD11KCgpPT57aShQUXQsImFkZEJyb3dzZXIiKX0pO2Z1bmN0aW9uIE9RdCh0KXtwcm9jZXNzLm9uKCJleGl0IixmdW5jdGlvbigpe3JldHVybiB0KCl9KSxwcm9jZXNzLm9uKCJiZWZvcmVFeGl0IixmdW5jdGlvbigpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe3JldHVybiBwcm9jZXNzLmV4aXQoKX0pfSkscHJvY2Vzcy5vbigiU0lHSU5UIixmdW5jdGlvbigpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe3JldHVybiBwcm9jZXNzLmV4aXQoKX0pfSkscHJvY2Vzcy5vbigidW5jYXVnaHRFeGNlcHRpb24iLGZ1bmN0aW9uKGUpe3JldHVybiB0KCkudGhlbihmdW5jdGlvbigpe2NvbnNvbGUudHJhY2UoZSkscHJvY2Vzcy5leGl0KDEwMSl9KX0pfXZhciBSUXQ9dSgoKT0+e2koT1F0LCJhZGROb2RlIil9KTtmdW5jdGlvbiBNeWEoKXtGUXR8fChGUXQ9ITAsU3lhKEN5YSkpfWZ1bmN0aW9uIEJRdCh0KXtpZihNeWEoKSx0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoIkxpc3RlbmVyIGlzIG5vIGZ1bmN0aW9uIik7UzYuYWRkKHQpO3ZhciBlPXtyZW1vdmU6aShmdW5jdGlvbigpe3JldHVybiBTNi5kZWxldGUodCl9LCJyZW1vdmUiKSxydW46aShmdW5jdGlvbigpe3JldHVybiBTNi5kZWxldGUodCksdCgpfSwicnVuIil9O3JldHVybiBlfWZ1bmN0aW9uIEN5YSgpe3ZhciB0PVtdO3JldHVybiBTNi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QucHVzaChlKCkpLFM2LmRlbGV0ZShlKX0pLFByb21pc2UuYWxsKHQpfWZ1bmN0aW9uIGRubigpe1M2LmNsZWFyKCl9ZnVuY3Rpb24gdW5uKCl7cmV0dXJuIFM2LnNpemV9dmFyIGt5YSxTeWEsUzYsRlF0LEhRdD11KCgpPT57TlF0KCk7UlF0KCk7a3lhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0eXBlb2YgcHJvY2VzczwidSI/cHJvY2VzczowKT09PSJbb2JqZWN0IHByb2Nlc3NdIixTeWE9a3lhP09RdDpQUXQsUzY9bmV3IFNldCxGUXQ9ITE7aShNeWEsInN0YXJ0TGlzdGVuaW5nIik7aShCUXQsImFkZCIpO2koQ3lhLCJydW5BbGwiKTtpKGRubiwicmVtb3ZlQWxsIik7aSh1bm4sImdldFNpemUiKX0pO2Z1bmN0aW9uIF80KHQsZSl7dmFyIHI9e2NvbnRleHQ6ImxlYWRlciIsYWN0aW9uOmUsdG9rZW46dC50b2tlbn07cmV0dXJuIHQuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0SW50ZXJuYWwocil9ZnVuY3Rpb24gd3oodCl7dC5pc0xlYWRlcj0hMCx0Ll9oYXNMZWFkZXI9ITA7dmFyIGU9QlF0KGZ1bmN0aW9uKCl7cmV0dXJuIHQuZGllKCl9KTt0Ll91bmwucHVzaChlKTt2YXIgcj1pKGZ1bmN0aW9uKHMpe3MuY29udGV4dD09PSJsZWFkZXIiJiZzLmFjdGlvbj09PSJhcHBseSImJl80KHQsInRlbGwiKSxzLmNvbnRleHQ9PT0ibGVhZGVyIiYmcy5hY3Rpb249PT0idGVsbCImJiF0Ll9kcExDJiYodC5fZHBMQz0hMCx0Ll9kcEwoKSxfNCh0LCJ0ZWxsIikpfSwiaXNMZWFkZXJMaXN0ZW5lciIpO3JldHVybiB0LmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHIpLHQuX2xzdG5zLnB1c2gociksXzQodCwidGVsbCIpfXZhciBfZGU9dSgoKT0+e0hRdCgpO2koXzQsInNlbmRMZWFkZXJNZXNzYWdlIik7aSh3eiwiYmVMZWFkZXIiKX0pO3ZhciB2VGUscVF0LFZRdD11KCgpPT57cHAoKTtfZGUoKTt2VGU9aShmdW5jdGlvbihlLHIpe3ZhciBhPXRoaXM7dGhpcy5icm9hZGNhc3RDaGFubmVsPWUsZS5fYmVmQy5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGEuZGllKCl9KSx0aGlzLl9vcHRpb25zPXIsdGhpcy5pc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPUM0KCksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sPVtdLHRoaXMuX2RwTD1mdW5jdGlvbigpe30sdGhpcy5fZHBMQz0hMSx0aGlzLl93S01DPXt9LHRoaXMubE49InB1YmtleS1iY3x8IitlLm1ldGhvZC50eXBlKyJ8fCIrZS5uYW1lfSwiTGVhZGVyRWxlY3Rpb25XZWJMb2NrIikscVF0PSJMZWFkZXJFbGVjdGlvbldlYkxvY2suZGllKCkgY2FsbGVkIjt2VGUucHJvdG90eXBlPXtoYXNMZWFkZXI6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIG5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oZnVuY3Rpb24ocil7dmFyIGE9ci5oZWxkP3IuaGVsZC5maWx0ZXIoZnVuY3Rpb24ocyl7cmV0dXJuIHMubmFtZT09PWUubE59KTpbXTtyZXR1cm4hIShhJiZhLmxlbmd0aD4wKX0pfSwiaGFzTGVhZGVyIiksYXdhaXRMZWFkZXJzaGlwOmkoZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCF0aGlzLl93TE1QKXt0aGlzLl93S01DLmM9bmV3IEFib3J0Q29udHJvbGxlcjt2YXIgcj1uZXcgUHJvbWlzZShmdW5jdGlvbihhLHMpe2UuX3dLTUMucmVzPWEsZS5fd0tNQy5yZWo9c30pO3RoaXMuX3dMTVA9bmV3IFByb21pc2UoZnVuY3Rpb24oYSxzKXtuYXZpZ2F0b3IubG9ja3MucmVxdWVzdChlLmxOLHtzaWduYWw6ZS5fd0tNQy5jLnNpZ25hbH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5fd0tNQy5jPXZvaWQgMCx3eihlKSxhKCkscn0pLmNhdGNoKGZ1bmN0aW9uKG4pe24ubWVzc2FnZSYmbi5tZXNzYWdlPT09cVF0fHwoZS5fd0tNQy5yZWomJmUuX3dLTUMucmVqKG4pLHMobikpfSl9KX1yZXR1cm4gdGhpcy5fd0xNUH0sImF3YWl0TGVhZGVyc2hpcCIpLHNldCBvbmR1cGxpY2F0ZSh0KXt9LGRpZTppKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5fbHN0bnMuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gZS5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixyKX0pLHRoaXMuX2xzdG5zPVtdLHRoaXMuX3VubC5mb3JFYWNoKGZ1bmN0aW9uKHIpe3JldHVybiByLnJlbW92ZSgpfSksdGhpcy5fdW5sPVtdLHRoaXMuaXNMZWFkZXImJih0aGlzLmlzTGVhZGVyPSExKSx0aGlzLmlzRGVhZD0hMCx0aGlzLl93S01DLnJlcyYmdGhpcy5fd0tNQy5yZXMoKSx0aGlzLl93S01DLmMmJnRoaXMuX3dLTUMuYy5hYm9ydChuZXcgRXJyb3IocVF0KSksXzQodGhpcywiZGVhdGgiKX0sImRpZSIpfX0pO2Z1bmN0aW9uIHp5YSh0KXtyZXR1cm4gdC5pc0xlYWRlcj90bDpuZXcgUHJvbWlzZShmdW5jdGlvbihlKXt2YXIgcj0hMTtmdW5jdGlvbiBhKCl7cnx8KHI9ITAsdC5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixuKSxlKCEwKSl9aShhLCJmaW5pc2giKSx0LmFwcGx5T25jZSgpLnRoZW4oZnVuY3Rpb24oKXt0LmlzTGVhZGVyJiZhKCl9KTt2YXIgcz1pKGZ1bmN0aW9uKCl7cmV0dXJuIFYwKHQuX29wdGlvbnMuZmFsbGJhY2tJbnRlcnZhbCkudGhlbihmdW5jdGlvbigpe2lmKCEodC5pc0RlYWR8fHIpKWlmKHQuaXNMZWFkZXIpYSgpO2Vsc2UgcmV0dXJuIHQuYXBwbHlPbmNlKCEwKS50aGVuKGZ1bmN0aW9uKCl7dC5pc0xlYWRlcj9hKCk6cygpfSl9KX0sInRyeU9uRmFsbEJhY2siKTtzKCk7dmFyIG49aShmdW5jdGlvbihsKXtsLmNvbnRleHQ9PT0ibGVhZGVyIiYmbC5hY3Rpb249PT0iZGVhdGgiJiYodC5faGFzTGVhZGVyPSExLHQuYXBwbHlPbmNlKCkudGhlbihmdW5jdGlvbigpe3QuaXNMZWFkZXImJmEoKX0pKX0sIndoZW5EZWF0aExpc3RlbmVyIik7dC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixuKSx0Ll9sc3Rucy5wdXNoKG4pfSl9ZnVuY3Rpb24gX3lhKHQsZSl7cmV0dXJuIHR8fCh0PXt9KSx0PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLHQuZmFsbGJhY2tJbnRlcnZhbHx8KHQuZmFsbGJhY2tJbnRlcnZhbD0zZTMpLHQucmVzcG9uc2VUaW1lfHwodC5yZXNwb25zZVRpbWU9ZS5tZXRob2QuYXZlcmFnZVJlc3BvbnNlVGltZShlLm9wdGlvbnMpKSx0fWZ1bmN0aW9uIFR5YSh0LGUpe2lmKHQuX2xlYWRlckVsZWN0b3IpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsIGFscmVhZHkgaGFzIGEgbGVhZGVyLWVsZWN0b3IiKTtlPV95YShlLHQpO3ZhciByPXVRdCgpP25ldyB2VGUodCxlKTpuZXcgalF0KHQsZSk7cmV0dXJuIHQuX2JlZkMucHVzaChmdW5jdGlvbigpe3JldHVybiByLmRpZSgpfSksdC5fbGVhZGVyRWxlY3Rvcj1yLHJ9dmFyIGpRdCxVUXQ9dSgoKT0+e3BwKCk7X2RlKCk7VlF0KCk7alF0PWkoZnVuY3Rpb24oZSxyKXt2YXIgYT10aGlzO3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD1lLHRoaXMuX29wdGlvbnM9cix0aGlzLmlzTGVhZGVyPSExLHRoaXMuX2hhc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPUM0KCksdGhpcy5fYXBsUT10bCx0aGlzLl9hcGxRQz0wLHRoaXMuX3VubD1bXSx0aGlzLl9sc3Rucz1bXSx0aGlzLl9kcEw9ZnVuY3Rpb24oKXt9LHRoaXMuX2RwTEM9ITE7dmFyIHM9aShmdW5jdGlvbihvKXtvLmNvbnRleHQ9PT0ibGVhZGVyIiYmKG8uYWN0aW9uPT09ImRlYXRoIiYmKGEuX2hhc0xlYWRlcj0hMSksby5hY3Rpb249PT0idGVsbCImJihhLl9oYXNMZWFkZXI9ITApKX0sImhhc0xlYWRlckxpc3RlbmVyIik7dGhpcy5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixzKSx0aGlzLl9sc3Rucy5wdXNoKHMpfSwiTGVhZGVyRWxlY3Rpb24iKTtqUXQucHJvdG90eXBlPXtoYXNMZWFkZXI6aShmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5faGFzTGVhZGVyKX0sImhhc0xlYWRlciIpLGFwcGx5T25jZTppKGZ1bmN0aW9uKGUpe3ZhciByPXRoaXM7aWYodGhpcy5pc0xlYWRlcilyZXR1cm4gVjAoMCwhMCk7aWYodGhpcy5pc0RlYWQpcmV0dXJuIFYwKDAsITEpO2lmKHRoaXMuX2FwbFFDPjEpcmV0dXJuIHRoaXMuX2FwbFE7dmFyIGE9aShmdW5jdGlvbigpe2lmKHIuaXNMZWFkZXIpcmV0dXJuIGNRdDt2YXIgbj0hMSxvLGw9bmV3IFByb21pc2UoZnVuY3Rpb24oZil7bz1pKGZ1bmN0aW9uKCl7bj0hMCxmKCl9LCJzdG9wQ3JpdGVyaWFQcm9taXNlUmVzb2x2ZSIpfSksYz1pKGZ1bmN0aW9uKHApe3AuY29udGV4dD09PSJsZWFkZXIiJiZwLnRva2VuIT1yLnRva2VuJiYocC5hY3Rpb249PT0iYXBwbHkiJiZwLnRva2VuPnIudG9rZW4mJm8oKSxwLmFjdGlvbj09PSJ0ZWxsIiYmKG8oKSxyLl9oYXNMZWFkZXI9ITApKX0sImhhbmRsZU1lc3NhZ2UiKTtyLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGMpO3ZhciBkPWU/ci5fb3B0aW9ucy5yZXNwb25zZVRpbWUqNDpyLl9vcHRpb25zLnJlc3BvbnNlVGltZTtyZXR1cm4gXzQociwiYXBwbHkiKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmFjZShbVjAoZCksbC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcil9KV0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBfNChyLCJhcHBseSIpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJhY2UoW1YwKGQpLGwudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IpfSldKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkudGhlbihmdW5jdGlvbigpe3JldHVybiByLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGMpLG4/ITE6d3oocikudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSl9KX0sImFwcGx5UnVuIik7cmV0dXJuIHRoaXMuX2FwbFFDPXRoaXMuX2FwbFFDKzEsdGhpcy5fYXBsUT10aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYSgpfSkudGhlbihmdW5jdGlvbigpe3IuX2FwbFFDPXIuX2FwbFFDLTF9KSx0aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gci5pc0xlYWRlcn0pfSwiYXBwbHlPbmNlIiksYXdhaXRMZWFkZXJzaGlwOmkoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYUxQfHwodGhpcy5fYUxQPXp5YSh0aGlzKSksdGhpcy5fYUxQfSwiYXdhaXRMZWFkZXJzaGlwIiksc2V0IG9uZHVwbGljYXRlKHQpe3RoaXMuX2RwTD10fSxkaWU6aShmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuX2xzdG5zLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIGUuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIscil9KSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmwuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gci5yZW1vdmUoKX0pLHRoaXMuX3VubD1bXSx0aGlzLmlzTGVhZGVyJiYodGhpcy5faGFzTGVhZGVyPSExLHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLF80KHRoaXMsImRlYXRoIil9LCJkaWUiKX07aSh6eWEsIl9hd2FpdExlYWRlcnNoaXBPbmNlIik7aShfeWEsImZpbGxPcHRpb25zV2l0aERlZmF1bHRzIik7aShUeWEsImNyZWF0ZUxlYWRlckVsZWN0aW9uIil9KTt2YXIgV1F0PXUoKCk9PntJUXQoKTtVUXQoKTtfZGUoKX0pO3ZhciBHUXQ9dSgoKT0+e3Q2KCk7VzJlKCk7TWRlKCk7V1F0KCl9KTt2YXIgeVRlLHdUZSxZUXQ9dSgoKT0+e0dRdCgpO3lUZT1nbG9iYWxUaGlzLkJyb2FkY2FzdENoYW5uZWw7eVRlfHwoeVRlPWs2KTt3VGU9Y2xhc3N7c3RhdGlje2kodGhpcywiRGVlc0NvbW1zIil9Y29uc3RydWN0b3IoKXt0aGlzLmJyb2FkY2FzdENoYW5uZWw9bmV3IHlUZSgiZGVlcy1jb21tcyIpLHRoaXMudHlwZWRyb3V0ZXI9bmV3IF8xLlR5cGVkUm91dGVyLHRoaXMudHlwZWR0YXJnZXQ9bmV3IF8xLlR5cGVkVGFyZ2V0KHtwb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyOmkoYXN5bmMgZT0+e3RoaXMucG9zdE1lc3NhZ2UoZSl9LCJwb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyIiksdHlwZWRSb3V0ZXJSZWY6dGhpcy50eXBlZHJvdXRlcn0pLHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5vbm1lc3NhZ2U9YXN5bmMgZT0+e2xldCByPWUubWV0aG9kP2U6ZS5kYXRhO2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHIpKTtsZXQgYT1hd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2Uocix7c2tpcEhvb2tzOiEwfSk7YSYmIWEuZXJyb3ImJnRoaXMucG9zdE1lc3NhZ2UoYSl9fWNyZWF0ZVR5cGVkUmVxdWVzdChlKXtyZXR1cm4gbmV3IF8xLlR5cGVkUmVxdWVzdCh0aGlzLnR5cGVkdGFyZ2V0LGUpfWFzeW5jIHBvc3RNZXNzYWdlKGUpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZShlKX1hc3luYyBjcmVhdGVUeXBlZEhhbmRsZXIoZSxyKXt0aGlzLnR5cGVkcm91dGVyLmFkZFR5cGVkSGFuZGxlcihuZXcgXzEuVHlwZWRIYW5kbGVyKGUscikpfX19KTt2YXIga3o9e307VmUoa3ose0RlZXNDb21tczooKT0+d1RlfSk7dmFyIEtRdD11KCgpPT57WVF0KCl9KTt2YXIgQzY9TnQoKElubixNNik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gWlF0KHQpe3JldHVybiB0eXBlb2YgdD4idSJ8fHQ9PT1udWxsfWkoWlF0LCJpc05vdGhpbmciKTtmdW5jdGlvbiBEeWEodCl7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGx9aShEeWEsImlzT2JqZWN0Iik7ZnVuY3Rpb24gJHlhKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Q6WlF0KHQpP1tdOlt0XX1pKCR5YSwidG9BcnJheSIpO2Z1bmN0aW9uIEF5YSh0LGUpe3ZhciByLGEscyxuO2lmKGUpZm9yKG49T2JqZWN0LmtleXMoZSkscj0wLGE9bi5sZW5ndGg7cjxhO3IrPTEpcz1uW3JdLHRbc109ZVtzXTtyZXR1cm4gdH1pKEF5YSwiZXh0ZW5kIik7ZnVuY3Rpb24gRXlhKHQsZSl7dmFyIHI9IiIsYTtmb3IoYT0wO2E8ZTthKz0xKXIrPXQ7cmV0dXJuIHJ9aShFeWEsInJlcGVhdCIpO2Z1bmN0aW9uIEl5YSh0KXtyZXR1cm4gdD09PTAmJk51bWJlci5ORUdBVElWRV9JTkZJTklUWT09PTEvdH1pKEl5YSwiaXNOZWdhdGl2ZVplcm8iKSxNNi5leHBvcnRzLmlzTm90aGluZz1aUXQsTTYuZXhwb3J0cy5pc09iamVjdD1EeWEsTTYuZXhwb3J0cy50b0FycmF5PSR5YSxNNi5leHBvcnRzLnJlcGVhdD1FeWEsTTYuZXhwb3J0cy5pc05lZ2F0aXZlWmVybz1JeWEsTTYuZXhwb3J0cy5leHRlbmQ9QXlhfSk7dmFyIEh2PU50KChObm4sUVF0KT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBTeih0LGUpe0Vycm9yLmNhbGwodGhpcyksdGhpcy5uYW1lPSJZQU1MRXhjZXB0aW9uIix0aGlzLnJlYXNvbj10LHRoaXMubWFyaz1lLHRoaXMubWVzc2FnZT0odGhpcy5yZWFzb258fCIodW5rbm93biByZWFzb24pIikrKHRoaXMubWFyaz8iICIrdGhpcy5tYXJrLnRvU3RyaW5nKCk6IiIpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFja3x8IiJ9aShTeiwiWUFNTEV4Y2VwdGlvbiIpLFN6LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksU3oucHJvdG90eXBlLmNvbnN0cnVjdG9yPVN6LFN6LnByb3RvdHlwZS50b1N0cmluZz1pKGZ1bmN0aW9uKGUpe3ZhciByPXRoaXMubmFtZSsiOiAiO3JldHVybiByKz10aGlzLnJlYXNvbnx8Iih1bmtub3duIHJlYXNvbikiLCFlJiZ0aGlzLm1hcmsmJihyKz0iICIrdGhpcy5tYXJrLnRvU3RyaW5nKCkpLHJ9LCJ0b1N0cmluZyIpLFFRdC5leHBvcnRzPVN6fSk7dmFyIGVYdD1OdCgoUm5uLEpRdCk9PnsidXNlIHN0cmljdCI7dmFyIFhRdD1DNigpO2Z1bmN0aW9uIGtUZSh0LGUscixhLHMpe3RoaXMubmFtZT10LHRoaXMuYnVmZmVyPWUsdGhpcy5wb3NpdGlvbj1yLHRoaXMubGluZT1hLHRoaXMuY29sdW1uPXN9aShrVGUsIk1hcmsiKSxrVGUucHJvdG90eXBlLmdldFNuaXBwZXQ9aShmdW5jdGlvbihlLHIpe3ZhciBhLHMsbixvLGw7aWYoIXRoaXMuYnVmZmVyKXJldHVybiBudWxsO2ZvcihlPWV8fDQscj1yfHw3NSxhPSIiLHM9dGhpcy5wb3NpdGlvbjtzPjAmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KHMtMSkpPT09LTE7KWlmKHMtPTEsdGhpcy5wb3NpdGlvbi1zPnIvMi0xKXthPSIgLi4uICIscys9NTticmVha31mb3Iobj0iIixvPXRoaXMucG9zaXRpb247bzx0aGlzLmJ1ZmZlci5sZW5ndGgmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KG8pKT09PS0xOylpZihvKz0xLG8tdGhpcy5wb3NpdGlvbj5yLzItMSl7bj0iIC4uLiAiLG8tPTU7YnJlYWt9cmV0dXJuIGw9dGhpcy5idWZmZXIuc2xpY2UocyxvKSxYUXQucmVwZWF0KCIgIixlKSthK2wrbitgCmArWFF0LnJlcGVhdCgiICIsZSt0aGlzLnBvc2l0aW9uLXMrYS5sZW5ndGgpKyJeIn0sImdldFNuaXBwZXQiKSxrVGUucHJvdG90eXBlLnRvU3RyaW5nPWkoZnVuY3Rpb24oZSl7dmFyIHIsYT0iIjtyZXR1cm4gdGhpcy5uYW1lJiYoYSs9J2luICInK3RoaXMubmFtZSsnIiAnKSxhKz0iYXQgbGluZSAiKyh0aGlzLmxpbmUrMSkrIiwgY29sdW1uICIrKHRoaXMuY29sdW1uKzEpLGV8fChyPXRoaXMuZ2V0U25pcHBldCgpLHImJihhKz1gOgpgK3IpKSxhfSwidG9TdHJpbmciKSxKUXQuZXhwb3J0cz1rVGV9KTt2YXIgWHM9TnQoKEJubixyWHQpPT57InVzZSBzdHJpY3QiO3ZhciB0WHQ9SHYoKSxQeWE9WyJraW5kIiwicmVzb2x2ZSIsImNvbnN0cnVjdCIsImluc3RhbmNlT2YiLCJwcmVkaWNhdGUiLCJyZXByZXNlbnQiLCJkZWZhdWx0U3R5bGUiLCJzdHlsZUFsaWFzZXMiXSxOeWE9WyJzY2FsYXIiLCJzZXF1ZW5jZSIsIm1hcHBpbmciXTtmdW5jdGlvbiBPeWEodCl7dmFyIGU9e307cmV0dXJuIHQhPT1udWxsJiZPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3Rbcl0uZm9yRWFjaChmdW5jdGlvbihhKXtlW1N0cmluZyhhKV09cn0pfSksZX1pKE95YSwiY29tcGlsZVN0eWxlQWxpYXNlcyIpO2Z1bmN0aW9uIFJ5YSh0LGUpe2lmKGU9ZXx8e30sT2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbihyKXtpZihQeWEuaW5kZXhPZihyKT09PS0xKXRocm93IG5ldyB0WHQoJ1Vua25vd24gb3B0aW9uICInK3IrJyIgaXMgbWV0IGluIGRlZmluaXRpb24gb2YgIicrdCsnIiBZQU1MIHR5cGUuJyl9KSx0aGlzLnRhZz10LHRoaXMua2luZD1lLmtpbmR8fG51bGwsdGhpcy5yZXNvbHZlPWUucmVzb2x2ZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdGhpcy5jb25zdHJ1Y3Q9ZS5jb25zdHJ1Y3R8fGZ1bmN0aW9uKHIpe3JldHVybiByfSx0aGlzLmluc3RhbmNlT2Y9ZS5pbnN0YW5jZU9mfHxudWxsLHRoaXMucHJlZGljYXRlPWUucHJlZGljYXRlfHxudWxsLHRoaXMucmVwcmVzZW50PWUucmVwcmVzZW50fHxudWxsLHRoaXMuZGVmYXVsdFN0eWxlPWUuZGVmYXVsdFN0eWxlfHxudWxsLHRoaXMuc3R5bGVBbGlhc2VzPU95YShlLnN0eWxlQWxpYXNlc3x8bnVsbCksTnlhLmluZGV4T2YodGhpcy5raW5kKT09PS0xKXRocm93IG5ldyB0WHQoJ1Vua25vd24ga2luZCAiJyt0aGlzLmtpbmQrJyIgaXMgc3BlY2lmaWVkIGZvciAiJyt0KyciIFlBTUwgdHlwZS4nKX1pKFJ5YSwiVHlwZSIpLHJYdC5leHBvcnRzPVJ5YX0pO3ZhciB6Nj1OdCgocW5uLGlYdCk9PnsidXNlIHN0cmljdCI7dmFyIGFYdD1DNigpLFRkZT1IdigpLEZ5YT1YcygpO2Z1bmN0aW9uIFNUZSh0LGUscil7dmFyIGE9W107cmV0dXJuIHQuaW5jbHVkZS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3I9U1RlKHMsZSxyKX0pLHRbZV0uZm9yRWFjaChmdW5jdGlvbihzKXtyLmZvckVhY2goZnVuY3Rpb24obixvKXtuLnRhZz09PXMudGFnJiZuLmtpbmQ9PT1zLmtpbmQmJmEucHVzaChvKX0pLHIucHVzaChzKX0pLHIuZmlsdGVyKGZ1bmN0aW9uKHMsbil7cmV0dXJuIGEuaW5kZXhPZihuKT09PS0xfSl9aShTVGUsImNvbXBpbGVMaXN0Iik7ZnVuY3Rpb24gQnlhKCl7dmFyIHQ9e3NjYWxhcjp7fSxzZXF1ZW5jZTp7fSxtYXBwaW5nOnt9LGZhbGxiYWNrOnt9fSxlLHI7ZnVuY3Rpb24gYShzKXt0W3Mua2luZF1bcy50YWddPXQuZmFsbGJhY2tbcy50YWddPXN9Zm9yKGkoYSwiY29sbGVjdFR5cGUiKSxlPTAscj1hcmd1bWVudHMubGVuZ3RoO2U8cjtlKz0xKWFyZ3VtZW50c1tlXS5mb3JFYWNoKGEpO3JldHVybiB0fWkoQnlhLCJjb21waWxlTWFwIik7ZnVuY3Rpb24gcXYodCl7dGhpcy5pbmNsdWRlPXQuaW5jbHVkZXx8W10sdGhpcy5pbXBsaWNpdD10LmltcGxpY2l0fHxbXSx0aGlzLmV4cGxpY2l0PXQuZXhwbGljaXR8fFtdLHRoaXMuaW1wbGljaXQuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlLmxvYWRLaW5kJiZlLmxvYWRLaW5kIT09InNjYWxhciIpdGhyb3cgbmV3IFRkZSgiVGhlcmUgaXMgYSBub24tc2NhbGFyIHR5cGUgaW4gdGhlIGltcGxpY2l0IGxpc3Qgb2YgYSBzY2hlbWEuIEltcGxpY2l0IHJlc29sdmluZyBvZiBzdWNoIHR5cGVzIGlzIG5vdCBzdXBwb3J0ZWQuIil9KSx0aGlzLmNvbXBpbGVkSW1wbGljaXQ9U1RlKHRoaXMsImltcGxpY2l0IixbXSksdGhpcy5jb21waWxlZEV4cGxpY2l0PVNUZSh0aGlzLCJleHBsaWNpdCIsW10pLHRoaXMuY29tcGlsZWRUeXBlTWFwPUJ5YSh0aGlzLmNvbXBpbGVkSW1wbGljaXQsdGhpcy5jb21waWxlZEV4cGxpY2l0KX1pKHF2LCJTY2hlbWEiKSxxdi5ERUZBVUxUPW51bGwscXYuY3JlYXRlPWkoZnVuY3Rpb24oKXt2YXIgZSxyO3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDE6ZT1xdi5ERUZBVUxULHI9YXJndW1lbnRzWzBdO2JyZWFrO2Nhc2UgMjplPWFyZ3VtZW50c1swXSxyPWFyZ3VtZW50c1sxXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBUZGUoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIFNjaGVtYS5jcmVhdGUgZnVuY3Rpb24iKX1pZihlPWFYdC50b0FycmF5KGUpLHI9YVh0LnRvQXJyYXkociksIWUuZXZlcnkoZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBxdn0pKXRocm93IG5ldyBUZGUoIlNwZWNpZmllZCBsaXN0IG9mIHN1cGVyIHNjaGVtYXMgKG9yIGEgc2luZ2xlIFNjaGVtYSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVNjaGVtYSBvYmplY3QuIik7aWYoIXIuZXZlcnkoZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBGeWF9KSl0aHJvdyBuZXcgVGRlKCJTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuIik7cmV0dXJuIG5ldyBxdih7aW5jbHVkZTplLGV4cGxpY2l0OnJ9KX0sImNyZWF0ZVNjaGVtYSIpLGlYdC5leHBvcnRzPXF2fSk7dmFyIG5YdD1OdCgoam5uLHNYdCk9PnsidXNlIHN0cmljdCI7dmFyIEh5YT1YcygpO3NYdC5leHBvcnRzPW5ldyBIeWEoInRhZzp5YW1sLm9yZywyMDAyOnN0ciIse2tpbmQ6InNjYWxhciIsY29uc3RydWN0OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1udWxsP3Q6IiJ9LCJjb25zdHJ1Y3QiKX0pfSk7dmFyIGxYdD1OdCgoV25uLG9YdCk9PnsidXNlIHN0cmljdCI7dmFyIHF5YT1YcygpO29YdC5leHBvcnRzPW5ldyBxeWEoInRhZzp5YW1sLm9yZywyMDAyOnNlcSIse2tpbmQ6InNlcXVlbmNlIixjb25zdHJ1Y3Q6aShmdW5jdGlvbih0KXtyZXR1cm4gdCE9PW51bGw/dDpbXX0sImNvbnN0cnVjdCIpfSl9KTt2YXIgZFh0PU50KChZbm4sY1h0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgVnlhPVhzKCk7Y1h0LmV4cG9ydHM9bmV3IFZ5YSgidGFnOnlhbWwub3JnLDIwMDI6bWFwIix7a2luZDoibWFwcGluZyIsY29uc3RydWN0OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1udWxsP3Q6e319LCJjb25zdHJ1Y3QiKX0pfSk7dmFyIExkZT1OdCgoWm5uLHVYdCk9PnsidXNlIHN0cmljdCI7dmFyIGp5YT16NigpO3VYdC5leHBvcnRzPW5ldyBqeWEoe2V4cGxpY2l0OltuWHQoKSxsWHQoKSxkWHQoKV19KX0pO3ZhciBmWHQ9TnQoKFFubixwWHQpPT57InVzZSBzdHJpY3QiO3ZhciBVeWE9WHMoKTtmdW5jdGlvbiBXeWEodCl7aWYodD09PW51bGwpcmV0dXJuITA7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGU9PT0xJiZ0PT09In4ifHxlPT09NCYmKHQ9PT0ibnVsbCJ8fHQ9PT0iTnVsbCJ8fHQ9PT0iTlVMTCIpfWkoV3lhLCJyZXNvbHZlWWFtbE51bGwiKTtmdW5jdGlvbiBHeWEoKXtyZXR1cm4gbnVsbH1pKEd5YSwiY29uc3RydWN0WWFtbE51bGwiKTtmdW5jdGlvbiBZeWEodCl7cmV0dXJuIHQ9PT1udWxsfWkoWXlhLCJpc051bGwiKSxwWHQuZXhwb3J0cz1uZXcgVXlhKCJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsIix7a2luZDoic2NhbGFyIixyZXNvbHZlOld5YSxjb25zdHJ1Y3Q6R3lhLHByZWRpY2F0ZTpZeWEscmVwcmVzZW50OntjYW5vbmljYWw6aShmdW5jdGlvbigpe3JldHVybiJ+In0sImNhbm9uaWNhbCIpLGxvd2VyY2FzZTppKGZ1bmN0aW9uKCl7cmV0dXJuIm51bGwifSwibG93ZXJjYXNlIiksdXBwZXJjYXNlOmkoZnVuY3Rpb24oKXtyZXR1cm4iTlVMTCJ9LCJ1cHBlcmNhc2UiKSxjYW1lbGNhc2U6aShmdW5jdGlvbigpe3JldHVybiJOdWxsIn0sImNhbWVsY2FzZSIpfSxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KX0pO3ZhciBtWHQ9TnQoKEpubixoWHQpPT57InVzZSBzdHJpY3QiO3ZhciBLeWE9WHMoKTtmdW5jdGlvbiBaeWEodCl7aWYodD09PW51bGwpcmV0dXJuITE7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGU9PT00JiYodD09PSJ0cnVlInx8dD09PSJUcnVlInx8dD09PSJUUlVFIil8fGU9PT01JiYodD09PSJmYWxzZSJ8fHQ9PT0iRmFsc2UifHx0PT09IkZBTFNFIil9aShaeWEsInJlc29sdmVZYW1sQm9vbGVhbiIpO2Z1bmN0aW9uIFF5YSh0KXtyZXR1cm4gdD09PSJ0cnVlInx8dD09PSJUcnVlInx8dD09PSJUUlVFIn1pKFF5YSwiY29uc3RydWN0WWFtbEJvb2xlYW4iKTtmdW5jdGlvbiBYeWEodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IEJvb2xlYW5dIn1pKFh5YSwiaXNCb29sZWFuIiksaFh0LmV4cG9ydHM9bmV3IEt5YSgidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpaeWEsY29uc3RydWN0OlF5YSxwcmVkaWNhdGU6WHlhLHJlcHJlc2VudDp7bG93ZXJjYXNlOmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ/InRydWUiOiJmYWxzZSJ9LCJsb3dlcmNhc2UiKSx1cHBlcmNhc2U6aShmdW5jdGlvbih0KXtyZXR1cm4gdD8iVFJVRSI6IkZBTFNFIn0sInVwcGVyY2FzZSIpLGNhbWVsY2FzZTppKGZ1bmN0aW9uKHQpe3JldHVybiB0PyJUcnVlIjoiRmFsc2UifSwiY2FtZWxjYXNlIil9LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIGJYdD1OdCgodG9uLGdYdCk9PnsidXNlIHN0cmljdCI7dmFyIEp5YT1DNigpLGV3YT1YcygpO2Z1bmN0aW9uIHR3YSh0KXtyZXR1cm4gNDg8PXQmJnQ8PTU3fHw2NTw9dCYmdDw9NzB8fDk3PD10JiZ0PD0xMDJ9aSh0d2EsImlzSGV4Q29kZSIpO2Z1bmN0aW9uIHJ3YSh0KXtyZXR1cm4gNDg8PXQmJnQ8PTU1fWkocndhLCJpc09jdENvZGUiKTtmdW5jdGlvbiBhd2EodCl7cmV0dXJuIDQ4PD10JiZ0PD01N31pKGF3YSwiaXNEZWNDb2RlIik7ZnVuY3Rpb24gaXdhKHQpe2lmKHQ9PT1udWxsKXJldHVybiExO3ZhciBlPXQubGVuZ3RoLHI9MCxhPSExLHM7aWYoIWUpcmV0dXJuITE7aWYocz10W3JdLChzPT09Ii0ifHxzPT09IisiKSYmKHM9dFsrK3JdKSxzPT09IjAiKXtpZihyKzE9PT1lKXJldHVybiEwO2lmKHM9dFsrK3JdLHM9PT0iYiIpe2ZvcihyKys7cjxlO3IrKylpZihzPXRbcl0scyE9PSJfIil7aWYocyE9PSIwIiYmcyE9PSIxIilyZXR1cm4hMTthPSEwfXJldHVybiBhJiZzIT09Il8ifWlmKHM9PT0ieCIpe2ZvcihyKys7cjxlO3IrKylpZihzPXRbcl0scyE9PSJfIil7aWYoIXR3YSh0LmNoYXJDb2RlQXQocikpKXJldHVybiExO2E9ITB9cmV0dXJuIGEmJnMhPT0iXyJ9Zm9yKDtyPGU7cisrKWlmKHM9dFtyXSxzIT09Il8iKXtpZighcndhKHQuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7YT0hMH1yZXR1cm4gYSYmcyE9PSJfIn1pZihzPT09Il8iKXJldHVybiExO2Zvcig7cjxlO3IrKylpZihzPXRbcl0scyE9PSJfIil7aWYocz09PSI6IilicmVhaztpZighYXdhKHQuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7YT0hMH1yZXR1cm4hYXx8cz09PSJfIj8hMTpzIT09IjoiPyEwOi9eKDpbMC01XT9bMC05XSkrJC8udGVzdCh0LnNsaWNlKHIpKX1pKGl3YSwicmVzb2x2ZVlhbWxJbnRlZ2VyIik7ZnVuY3Rpb24gc3dhKHQpe3ZhciBlPXQscj0xLGEscyxuPVtdO3JldHVybiBlLmluZGV4T2YoIl8iKSE9PS0xJiYoZT1lLnJlcGxhY2UoL18vZywiIikpLGE9ZVswXSwoYT09PSItInx8YT09PSIrIikmJihhPT09Ii0iJiYocj0tMSksZT1lLnNsaWNlKDEpLGE9ZVswXSksZT09PSIwIj8wOmE9PT0iMCI/ZVsxXT09PSJiIj9yKnBhcnNlSW50KGUuc2xpY2UoMiksMik6ZVsxXT09PSJ4Ij9yKnBhcnNlSW50KGUsMTYpOnIqcGFyc2VJbnQoZSw4KTplLmluZGV4T2YoIjoiKSE9PS0xPyhlLnNwbGl0KCI6IikuZm9yRWFjaChmdW5jdGlvbihvKXtuLnVuc2hpZnQocGFyc2VJbnQobywxMCkpfSksZT0wLHM9MSxuLmZvckVhY2goZnVuY3Rpb24obyl7ZSs9bypzLHMqPTYwfSksciplKTpyKnBhcnNlSW50KGUsMTApfWkoc3dhLCJjb25zdHJ1Y3RZYW1sSW50ZWdlciIpO2Z1bmN0aW9uIG53YSh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgTnVtYmVyXSImJnQlMT09PTAmJiFKeWEuaXNOZWdhdGl2ZVplcm8odCl9aShud2EsImlzSW50ZWdlciIpLGdYdC5leHBvcnRzPW5ldyBld2EoInRhZzp5YW1sLm9yZywyMDAyOmludCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTppd2EsY29uc3RydWN0OnN3YSxwcmVkaWNhdGU6bndhLHJlcHJlc2VudDp7YmluYXJ5OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTA/IjBiIit0LnRvU3RyaW5nKDIpOiItMGIiK3QudG9TdHJpbmcoMikuc2xpY2UoMSl9LCJiaW5hcnkiKSxvY3RhbDppKGZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wPyIwIit0LnRvU3RyaW5nKDgpOiItMCIrdC50b1N0cmluZyg4KS5zbGljZSgxKX0sIm9jdGFsIiksZGVjaW1hbDppKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKDEwKX0sImRlY2ltYWwiKSxoZXhhZGVjaW1hbDppKGZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wPyIweCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKToiLTB4Iit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnNsaWNlKDEpfSwiaGV4YWRlY2ltYWwiKX0sZGVmYXVsdFN0eWxlOiJkZWNpbWFsIixzdHlsZUFsaWFzZXM6e2JpbmFyeTpbMiwiYmluIl0sb2N0YWw6WzgsIm9jdCJdLGRlY2ltYWw6WzEwLCJkZWMiXSxoZXhhZGVjaW1hbDpbMTYsImhleCJdfX0pfSk7dmFyIHlYdD1OdCgoYW9uLHZYdCk9PnsidXNlIHN0cmljdCI7dmFyIHhYdD1DNigpLG93YT1YcygpLGx3YT1uZXcgUmVnRXhwKCJeKD86Wy0rXT8oPzowfFsxLTldWzAtOV9dKikoPzpcXC5bMC05X10qKT8oPzpbZUVdWy0rXT9bMC05XSspP3xcXC5bMC05X10rKD86W2VFXVstK10/WzAtOV0rKT98Wy0rXT9bMC05XVswLTlfXSooPzo6WzAtNV0/WzAtOV0pK1xcLlswLTlfXSp8Wy0rXT9cXC4oPzppbmZ8SW5mfElORil8XFwuKD86bmFufE5hTnxOQU4pKSQiKTtmdW5jdGlvbiBjd2EodCl7cmV0dXJuISh0PT09bnVsbHx8IWx3YS50ZXN0KHQpfHx0W3QubGVuZ3RoLTFdPT09Il8iKX1pKGN3YSwicmVzb2x2ZVlhbWxGbG9hdCIpO2Z1bmN0aW9uIGR3YSh0KXt2YXIgZSxyLGEscztyZXR1cm4gZT10LnJlcGxhY2UoL18vZywiIikudG9Mb3dlckNhc2UoKSxyPWVbMF09PT0iLSI/LTE6MSxzPVtdLCIrLSIuaW5kZXhPZihlWzBdKT49MCYmKGU9ZS5zbGljZSgxKSksZT09PSIuaW5mIj9yPT09MT9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk6TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOmU9PT0iLm5hbiI/TmFOOmUuaW5kZXhPZigiOiIpPj0wPyhlLnNwbGl0KCI6IikuZm9yRWFjaChmdW5jdGlvbihuKXtzLnVuc2hpZnQocGFyc2VGbG9hdChuLDEwKSl9KSxlPTAsYT0xLHMuZm9yRWFjaChmdW5jdGlvbihuKXtlKz1uKmEsYSo9NjB9KSxyKmUpOnIqcGFyc2VGbG9hdChlLDEwKX1pKGR3YSwiY29uc3RydWN0WWFtbEZsb2F0Iik7dmFyIHV3YT0vXlstK10/WzAtOV0rZS87ZnVuY3Rpb24gcHdhKHQsZSl7dmFyIHI7aWYoaXNOYU4odCkpc3dpdGNoKGUpe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLm5hbiI7Y2FzZSJ1cHBlcmNhc2UiOnJldHVybiIuTkFOIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi5OYU4ifWVsc2UgaWYoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZPT09dClzd2l0Y2goZSl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiIuaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi5JTkYiO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLkluZiJ9ZWxzZSBpZihOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk9PT10KXN3aXRjaChlKXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi0uaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi0uSU5GIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi0uSW5mIn1lbHNlIGlmKHhYdC5pc05lZ2F0aXZlWmVybyh0KSlyZXR1cm4iLTAuMCI7cmV0dXJuIHI9dC50b1N0cmluZygxMCksdXdhLnRlc3Qocik/ci5yZXBsYWNlKCJlIiwiLmUiKTpyfWkocHdhLCJyZXByZXNlbnRZYW1sRmxvYXQiKTtmdW5jdGlvbiBmd2EodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IE51bWJlcl0iJiYodCUxIT09MHx8eFh0LmlzTmVnYXRpdmVaZXJvKHQpKX1pKGZ3YSwiaXNGbG9hdCIpLHZYdC5leHBvcnRzPW5ldyBvd2EoInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOmN3YSxjb25zdHJ1Y3Q6ZHdhLHByZWRpY2F0ZTpmd2EscmVwcmVzZW50OnB3YSxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KX0pO3ZhciBNVGU9TnQoKHNvbix3WHQpPT57InVzZSBzdHJpY3QiO3ZhciBod2E9ejYoKTt3WHQuZXhwb3J0cz1uZXcgaHdhKHtpbmNsdWRlOltMZGUoKV0saW1wbGljaXQ6W2ZYdCgpLG1YdCgpLGJYdCgpLHlYdCgpXX0pfSk7dmFyIENUZT1OdCgobm9uLGtYdCk9PnsidXNlIHN0cmljdCI7dmFyIG13YT16NigpO2tYdC5leHBvcnRzPW5ldyBtd2Eoe2luY2x1ZGU6W01UZSgpXX0pfSk7dmFyIHpYdD1OdCgob29uLENYdCk9PnsidXNlIHN0cmljdCI7dmFyIGd3YT1YcygpLFNYdD1uZXcgUmVnRXhwKCJeKFswLTldWzAtOV1bMC05XVswLTldKS0oWzAtOV1bMC05XSktKFswLTldWzAtOV0pJCIpLE1YdD1uZXcgUmVnRXhwKCJeKFswLTldWzAtOV1bMC05XVswLTldKS0oWzAtOV1bMC05XT8pLShbMC05XVswLTldPykoPzpbVHRdfFsgXFx0XSspKFswLTldWzAtOV0/KTooWzAtOV1bMC05XSk6KFswLTldWzAtOV0pKD86XFwuKFswLTldKikpPyg/OlsgXFx0XSooWnwoWy0rXSkoWzAtOV1bMC05XT8pKD86OihbMC05XVswLTldKSk/KSk/JCIpO2Z1bmN0aW9uIGJ3YSh0KXtyZXR1cm4gdD09PW51bGw/ITE6U1h0LmV4ZWModCkhPT1udWxsfHxNWHQuZXhlYyh0KSE9PW51bGx9aShid2EsInJlc29sdmVZYW1sVGltZXN0YW1wIik7ZnVuY3Rpb24geHdhKHQpe3ZhciBlLHIsYSxzLG4sbyxsLGM9MCxkPW51bGwsZixwLGg7aWYoZT1TWHQuZXhlYyh0KSxlPT09bnVsbCYmKGU9TVh0LmV4ZWModCkpLGU9PT1udWxsKXRocm93IG5ldyBFcnJvcigiRGF0ZSByZXNvbHZlIGVycm9yIik7aWYocj0rZVsxXSxhPStlWzJdLTEscz0rZVszXSwhZVs0XSlyZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMocixhLHMpKTtpZihuPStlWzRdLG89K2VbNV0sbD0rZVs2XSxlWzddKXtmb3IoYz1lWzddLnNsaWNlKDAsMyk7Yy5sZW5ndGg8MzspYys9IjAiO2M9K2N9cmV0dXJuIGVbOV0mJihmPStlWzEwXSxwPSsoZVsxMV18fDApLGQ9KGYqNjArcCkqNmU0LGVbOV09PT0iLSImJihkPS1kKSksaD1uZXcgRGF0ZShEYXRlLlVUQyhyLGEscyxuLG8sbCxjKSksZCYmaC5zZXRUaW1lKGguZ2V0VGltZSgpLWQpLGh9aSh4d2EsImNvbnN0cnVjdFlhbWxUaW1lc3RhbXAiKTtmdW5jdGlvbiB2d2EodCl7cmV0dXJuIHQudG9JU09TdHJpbmcoKX1pKHZ3YSwicmVwcmVzZW50WWFtbFRpbWVzdGFtcCIpLENYdC5leHBvcnRzPW5ldyBnd2EoInRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpid2EsY29uc3RydWN0Onh3YSxpbnN0YW5jZU9mOkRhdGUscmVwcmVzZW50OnZ3YX0pfSk7dmFyIFRYdD1OdCgoY29uLF9YdCk9PnsidXNlIHN0cmljdCI7dmFyIHl3YT1YcygpO2Z1bmN0aW9uIHd3YSh0KXtyZXR1cm4gdD09PSI8PCJ8fHQ9PT1udWxsfWkod3dhLCJyZXNvbHZlWWFtbE1lcmdlIiksX1h0LmV4cG9ydHM9bmV3IHl3YSgidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6d3dhfSl9KTt2YXIgJFh0PU50KCh1b24sRFh0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgXzY7dHJ5e0xYdD1TYWUsXzY9TFh0KCJidWZmZXIiKS5CdWZmZXJ9Y2F0Y2h7fXZhciBrd2E9WHMoKSx6VGU9YEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89ClxyYDtmdW5jdGlvbiBTd2EodCl7aWYodD09PW51bGwpcmV0dXJuITE7dmFyIGUscixhPTAscz10Lmxlbmd0aCxuPXpUZTtmb3Iocj0wO3I8cztyKyspaWYoZT1uLmluZGV4T2YodC5jaGFyQXQocikpLCEoZT42NCkpe2lmKGU8MClyZXR1cm4hMTthKz02fXJldHVybiBhJTg9PT0wfWkoU3dhLCJyZXNvbHZlWWFtbEJpbmFyeSIpO2Z1bmN0aW9uIE13YSh0KXt2YXIgZSxyLGE9dC5yZXBsYWNlKC9bXHJcbj1dL2csIiIpLHM9YS5sZW5ndGgsbj16VGUsbz0wLGw9W107Zm9yKGU9MDtlPHM7ZSsrKWUlND09PTAmJmUmJihsLnB1c2gobz4+MTYmMjU1KSxsLnB1c2gobz4+OCYyNTUpLGwucHVzaChvJjI1NSkpLG89bzw8NnxuLmluZGV4T2YoYS5jaGFyQXQoZSkpO3JldHVybiByPXMlNCo2LHI9PT0wPyhsLnB1c2gobz4+MTYmMjU1KSxsLnB1c2gobz4+OCYyNTUpLGwucHVzaChvJjI1NSkpOnI9PT0xOD8obC5wdXNoKG8+PjEwJjI1NSksbC5wdXNoKG8+PjImMjU1KSk6cj09PTEyJiZsLnB1c2gobz4+NCYyNTUpLF82P182LmZyb20/XzYuZnJvbShsKTpuZXcgXzYobCk6bH1pKE13YSwiY29uc3RydWN0WWFtbEJpbmFyeSIpO2Z1bmN0aW9uIEN3YSh0KXt2YXIgZT0iIixyPTAsYSxzLG49dC5sZW5ndGgsbz16VGU7Zm9yKGE9MDthPG47YSsrKWElMz09PTAmJmEmJihlKz1vW3I+PjE4JjYzXSxlKz1vW3I+PjEyJjYzXSxlKz1vW3I+PjYmNjNdLGUrPW9bciY2M10pLHI9KHI8PDgpK3RbYV07cmV0dXJuIHM9biUzLHM9PT0wPyhlKz1vW3I+PjE4JjYzXSxlKz1vW3I+PjEyJjYzXSxlKz1vW3I+PjYmNjNdLGUrPW9bciY2M10pOnM9PT0yPyhlKz1vW3I+PjEwJjYzXSxlKz1vW3I+PjQmNjNdLGUrPW9bcjw8MiY2M10sZSs9b1s2NF0pOnM9PT0xJiYoZSs9b1tyPj4yJjYzXSxlKz1vW3I8PDQmNjNdLGUrPW9bNjRdLGUrPW9bNjRdKSxlfWkoQ3dhLCJyZXByZXNlbnRZYW1sQmluYXJ5Iik7ZnVuY3Rpb24gendhKHQpe3JldHVybiBfNiYmXzYuaXNCdWZmZXIodCl9aSh6d2EsImlzQmluYXJ5IiksRFh0LmV4cG9ydHM9bmV3IGt3YSgidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOlN3YSxjb25zdHJ1Y3Q6TXdhLHByZWRpY2F0ZTp6d2EscmVwcmVzZW50OkN3YX0pO3ZhciBMWHR9KTt2YXIgRVh0PU50KChmb24sQVh0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgX3dhPVhzKCksVHdhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksTHdhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gRHdhKHQpe2lmKHQ9PT1udWxsKXJldHVybiEwO3ZhciBlPVtdLHIsYSxzLG4sbyxsPXQ7Zm9yKHI9MCxhPWwubGVuZ3RoO3I8YTtyKz0xKXtpZihzPWxbcl0sbz0hMSxMd2EuY2FsbChzKSE9PSJbb2JqZWN0IE9iamVjdF0iKXJldHVybiExO2ZvcihuIGluIHMpaWYoVHdhLmNhbGwocyxuKSlpZighbylvPSEwO2Vsc2UgcmV0dXJuITE7aWYoIW8pcmV0dXJuITE7aWYoZS5pbmRleE9mKG4pPT09LTEpZS5wdXNoKG4pO2Vsc2UgcmV0dXJuITF9cmV0dXJuITB9aShEd2EsInJlc29sdmVZYW1sT21hcCIpO2Z1bmN0aW9uICR3YSh0KXtyZXR1cm4gdCE9PW51bGw/dDpbXX1pKCR3YSwiY29uc3RydWN0WWFtbE9tYXAiKSxBWHQuZXhwb3J0cz1uZXcgX3dhKCJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIix7a2luZDoic2VxdWVuY2UiLHJlc29sdmU6RHdhLGNvbnN0cnVjdDokd2F9KX0pO3ZhciBQWHQ9TnQoKG1vbixJWHQpPT57InVzZSBzdHJpY3QiO3ZhciBBd2E9WHMoKSxFd2E9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBJd2EodCl7aWYodD09PW51bGwpcmV0dXJuITA7dmFyIGUscixhLHMsbixvPXQ7Zm9yKG49bmV3IEFycmF5KG8ubGVuZ3RoKSxlPTAscj1vLmxlbmd0aDtlPHI7ZSs9MSl7aWYoYT1vW2VdLEV3YS5jYWxsKGEpIT09IltvYmplY3QgT2JqZWN0XSJ8fChzPU9iamVjdC5rZXlzKGEpLHMubGVuZ3RoIT09MSkpcmV0dXJuITE7bltlXT1bc1swXSxhW3NbMF1dXX1yZXR1cm4hMH1pKEl3YSwicmVzb2x2ZVlhbWxQYWlycyIpO2Z1bmN0aW9uIFB3YSh0KXtpZih0PT09bnVsbClyZXR1cm5bXTt2YXIgZSxyLGEscyxuLG89dDtmb3Iobj1uZXcgQXJyYXkoby5sZW5ndGgpLGU9MCxyPW8ubGVuZ3RoO2U8cjtlKz0xKWE9b1tlXSxzPU9iamVjdC5rZXlzKGEpLG5bZV09W3NbMF0sYVtzWzBdXV07cmV0dXJuIG59aShQd2EsImNvbnN0cnVjdFlhbWxQYWlycyIpLElYdC5leHBvcnRzPW5ldyBBd2EoInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIix7a2luZDoic2VxdWVuY2UiLHJlc29sdmU6SXdhLGNvbnN0cnVjdDpQd2F9KX0pO3ZhciBPWHQ9TnQoKGJvbixOWHQpPT57InVzZSBzdHJpY3QiO3ZhciBOd2E9WHMoKSxPd2E9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBSd2EodCl7aWYodD09PW51bGwpcmV0dXJuITA7dmFyIGUscj10O2ZvcihlIGluIHIpaWYoT3dhLmNhbGwocixlKSYmcltlXSE9PW51bGwpcmV0dXJuITE7cmV0dXJuITB9aShSd2EsInJlc29sdmVZYW1sU2V0Iik7ZnVuY3Rpb24gRndhKHQpe3JldHVybiB0IT09bnVsbD90Ont9fWkoRndhLCJjb25zdHJ1Y3RZYW1sU2V0IiksTlh0LmV4cG9ydHM9bmV3IE53YSgidGFnOnlhbWwub3JnLDIwMDI6c2V0Iix7a2luZDoibWFwcGluZyIscmVzb2x2ZTpSd2EsY29uc3RydWN0OkZ3YX0pfSk7dmFyIFZ2PU50KCh2b24sUlh0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgQndhPXo2KCk7Ulh0LmV4cG9ydHM9bmV3IEJ3YSh7aW5jbHVkZTpbQ1RlKCldLGltcGxpY2l0Olt6WHQoKSxUWHQoKV0sZXhwbGljaXQ6WyRYdCgpLEVYdCgpLFBYdCgpLE9YdCgpXX0pfSk7dmFyIEJYdD1OdCgoeW9uLEZYdCk9PnsidXNlIHN0cmljdCI7dmFyIEh3YT1YcygpO2Z1bmN0aW9uIHF3YSgpe3JldHVybiEwfWkocXdhLCJyZXNvbHZlSmF2YXNjcmlwdFVuZGVmaW5lZCIpO2Z1bmN0aW9uIFZ3YSgpe31pKFZ3YSwiY29uc3RydWN0SmF2YXNjcmlwdFVuZGVmaW5lZCIpO2Z1bmN0aW9uIGp3YSgpe3JldHVybiIifWkoandhLCJyZXByZXNlbnRKYXZhc2NyaXB0VW5kZWZpbmVkIik7ZnVuY3Rpb24gVXdhKHQpe3JldHVybiB0eXBlb2YgdD4idSJ9aShVd2EsImlzVW5kZWZpbmVkIiksRlh0LmV4cG9ydHM9bmV3IEh3YSgidGFnOnlhbWwub3JnLDIwMDI6anMvdW5kZWZpbmVkIix7a2luZDoic2NhbGFyIixyZXNvbHZlOnF3YSxjb25zdHJ1Y3Q6VndhLHByZWRpY2F0ZTpVd2EscmVwcmVzZW50Omp3YX0pfSk7dmFyIHFYdD1OdCgoa29uLEhYdCk9PnsidXNlIHN0cmljdCI7dmFyIFd3YT1YcygpO2Z1bmN0aW9uIEd3YSh0KXtpZih0PT09bnVsbHx8dC5sZW5ndGg9PT0wKXJldHVybiExO3ZhciBlPXQscj0vXC8oW2dpbV0qKSQvLmV4ZWModCksYT0iIjtyZXR1cm4hKGVbMF09PT0iLyImJihyJiYoYT1yWzFdKSxhLmxlbmd0aD4zfHxlW2UubGVuZ3RoLWEubGVuZ3RoLTFdIT09Ii8iKSl9aShHd2EsInJlc29sdmVKYXZhc2NyaXB0UmVnRXhwIik7ZnVuY3Rpb24gWXdhKHQpe3ZhciBlPXQscj0vXC8oW2dpbV0qKSQvLmV4ZWModCksYT0iIjtyZXR1cm4gZVswXT09PSIvIiYmKHImJihhPXJbMV0pLGU9ZS5zbGljZSgxLGUubGVuZ3RoLWEubGVuZ3RoLTEpKSxuZXcgUmVnRXhwKGUsYSl9aShZd2EsImNvbnN0cnVjdEphdmFzY3JpcHRSZWdFeHAiKTtmdW5jdGlvbiBLd2EodCl7dmFyIGU9Ii8iK3Quc291cmNlKyIvIjtyZXR1cm4gdC5nbG9iYWwmJihlKz0iZyIpLHQubXVsdGlsaW5lJiYoZSs9Im0iKSx0Lmlnbm9yZUNhc2UmJihlKz0iaSIpLGV9aShLd2EsInJlcHJlc2VudEphdmFzY3JpcHRSZWdFeHAiKTtmdW5jdGlvbiBad2EodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IFJlZ0V4cF0ifWkoWndhLCJpc1JlZ0V4cCIpLEhYdC5leHBvcnRzPW5ldyBXd2EoInRhZzp5YW1sLm9yZywyMDAyOmpzL3JlZ2V4cCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpHd2EsY29uc3RydWN0Oll3YSxwcmVkaWNhdGU6WndhLHJlcHJlc2VudDpLd2F9KX0pO3ZhciBVWHQ9TnQoKE1vbixqWHQpPT57InVzZSBzdHJpY3QiO3ZhciBEZGU7dHJ5e1ZYdD1TYWUsRGRlPVZYdCgiZXNwcmltYSIpfWNhdGNoe3R5cGVvZiB3aW5kb3c8InUiJiYoRGRlPXdpbmRvdy5lc3ByaW1hKX12YXIgUXdhPVhzKCk7ZnVuY3Rpb24gWHdhKHQpe2lmKHQ9PT1udWxsKXJldHVybiExO3RyeXt2YXIgZT0iKCIrdCsiKSIscj1EZGUucGFyc2UoZSx7cmFuZ2U6ITB9KTtyZXR1cm4hKHIudHlwZSE9PSJQcm9ncmFtInx8ci5ib2R5Lmxlbmd0aCE9PTF8fHIuYm9keVswXS50eXBlIT09IkV4cHJlc3Npb25TdGF0ZW1lbnQifHxyLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiYmci5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJGdW5jdGlvbkV4cHJlc3Npb24iKX1jYXRjaHtyZXR1cm4hMX19aShYd2EsInJlc29sdmVKYXZhc2NyaXB0RnVuY3Rpb24iKTtmdW5jdGlvbiBKd2EodCl7dmFyIGU9IigiK3QrIikiLHI9RGRlLnBhcnNlKGUse3JhbmdlOiEwfSksYT1bXSxzO2lmKHIudHlwZSE9PSJQcm9ncmFtInx8ci5ib2R5Lmxlbmd0aCE9PTF8fHIuYm9keVswXS50eXBlIT09IkV4cHJlc3Npb25TdGF0ZW1lbnQifHxyLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiYmci5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJGdW5jdGlvbkV4cHJlc3Npb24iKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlc29sdmUgZnVuY3Rpb24iKTtyZXR1cm4gci5ib2R5WzBdLmV4cHJlc3Npb24ucGFyYW1zLmZvckVhY2goZnVuY3Rpb24obil7YS5wdXNoKG4ubmFtZSl9KSxzPXIuYm9keVswXS5leHByZXNzaW9uLmJvZHkucmFuZ2Usci5ib2R5WzBdLmV4cHJlc3Npb24uYm9keS50eXBlPT09IkJsb2NrU3RhdGVtZW50Ij9uZXcgRnVuY3Rpb24oYSxlLnNsaWNlKHNbMF0rMSxzWzFdLTEpKTpuZXcgRnVuY3Rpb24oYSwicmV0dXJuICIrZS5zbGljZShzWzBdLHNbMV0pKX1pKEp3YSwiY29uc3RydWN0SmF2YXNjcmlwdEZ1bmN0aW9uIik7ZnVuY3Rpb24gZWthKHQpe3JldHVybiB0LnRvU3RyaW5nKCl9aShla2EsInJlcHJlc2VudEphdmFzY3JpcHRGdW5jdGlvbiIpO2Z1bmN0aW9uIHRrYSh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgRnVuY3Rpb25dIn1pKHRrYSwiaXNGdW5jdGlvbiIpLGpYdC5leHBvcnRzPW5ldyBRd2EoInRhZzp5YW1sLm9yZywyMDAyOmpzL2Z1bmN0aW9uIix7a2luZDoic2NhbGFyIixyZXNvbHZlOlh3YSxjb25zdHJ1Y3Q6SndhLHByZWRpY2F0ZTp0a2EscmVwcmVzZW50OmVrYX0pO3ZhciBWWHR9KTt2YXIgTXo9TnQoKHpvbixHWHQpPT57InVzZSBzdHJpY3QiO3ZhciBXWHQ9ejYoKTtHWHQuZXhwb3J0cz1XWHQuREVGQVVMVD1uZXcgV1h0KHtpbmNsdWRlOltWdigpXSxleHBsaWNpdDpbQlh0KCkscVh0KCksVVh0KCldfSl9KTt2YXIgZkp0PU50KChfb24sQ3opPT57InVzZSBzdHJpY3QiO3ZhciBUND1DNigpLFlYdD1IdigpLHJrYT1lWHQoKSxLWHQ9VnYoKSxha2E9TXooKSxmcD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LCRkZT0xLFpYdD0yLFFYdD0zLEFkZT00LF9UZT0xLGlrYT0yLFhYdD0zLHNrYT0vW1x4MDAtXHgwOFx4MEJceDBDXHgwRS1ceDFGXHg3Ri1ceDg0XHg4Ni1ceDlGXHVGRkZFXHVGRkZGXXxbXHVEODAwLVx1REJGRl0oPyFbXHVEQzAwLVx1REZGRl0pfCg/OlteXHVEODAwLVx1REJGRl18XilbXHVEQzAwLVx1REZGRl0vLG5rYT0vW1x4ODVcdTIwMjhcdTIwMjldLyxva2E9L1ssXFtcXVx7XH1dLyxKWHQ9L14oPzohfCEhfCFbYS16XC1dKyEpJC9pLGVKdD0vXig/OiF8W14sXFtcXVx7XH1dKSg/OiVbMC05YS1mXXsyfXxbMC05YS16XC0jO1wvXD86QCY9XCtcJCxfXC4hflwqJ1woXClcW1xdXSkqJC9pO2Z1bmN0aW9uIHRKdCh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWkodEp0LCJfY2xhc3MiKTtmdW5jdGlvbiBqMCh0KXtyZXR1cm4gdD09PTEwfHx0PT09MTN9aShqMCwiaXNfRU9MIik7ZnVuY3Rpb24gVDYodCl7cmV0dXJuIHQ9PT05fHx0PT09MzJ9aShUNiwiaXNfV0hJVEVfU1BBQ0UiKTtmdW5jdGlvbiBUMSh0KXtyZXR1cm4gdD09PTl8fHQ9PT0zMnx8dD09PTEwfHx0PT09MTN9aShUMSwiaXNfV1NfT1JfRU9MIik7ZnVuY3Rpb24ganYodCl7cmV0dXJuIHQ9PT00NHx8dD09PTkxfHx0PT09OTN8fHQ9PT0xMjN8fHQ9PT0xMjV9aShqdiwiaXNfRkxPV19JTkRJQ0FUT1IiKTtmdW5jdGlvbiBsa2EodCl7dmFyIGU7cmV0dXJuIDQ4PD10JiZ0PD01Nz90LTQ4OihlPXR8MzIsOTc8PWUmJmU8PTEwMj9lLTk3KzEwOi0xKX1pKGxrYSwiZnJvbUhleENvZGUiKTtmdW5jdGlvbiBja2EodCl7cmV0dXJuIHQ9PT0xMjA/Mjp0PT09MTE3PzQ6dD09PTg1Pzg6MH1pKGNrYSwiZXNjYXBlZEhleExlbiIpO2Z1bmN0aW9uIGRrYSh0KXtyZXR1cm4gNDg8PXQmJnQ8PTU3P3QtNDg6LTF9aShka2EsImZyb21EZWNpbWFsQ29kZSIpO2Z1bmN0aW9uIHJKdCh0KXtyZXR1cm4gdD09PTQ4PyJcMCI6dD09PTk3PyJceDA3Ijp0PT09OTg/IlxiIjp0PT09MTE2fHx0PT09OT8iCSI6dD09PTExMD9gCmA6dD09PTExOD8iXHYiOnQ9PT0xMDI/IlxmIjp0PT09MTE0PyJcciI6dD09PTEwMT8iXHgxQiI6dD09PTMyPyIgIjp0PT09MzQ/JyInOnQ9PT00Nz8iLyI6dD09PTkyPyJcXCI6dD09PTc4PyJceDg1Ijp0PT09OTU/Ilx4QTAiOnQ9PT03Nj8iXHUyMDI4Ijp0PT09ODA/Ilx1MjAyOSI6IiJ9aShySnQsInNpbXBsZUVzY2FwZVNlcXVlbmNlIik7ZnVuY3Rpb24gdWthKHQpe3JldHVybiB0PD02NTUzNT9TdHJpbmcuZnJvbUNoYXJDb2RlKHQpOlN0cmluZy5mcm9tQ2hhckNvZGUoKHQtNjU1MzY+PjEwKSs1NTI5NiwodC02NTUzNiYxMDIzKSs1NjMyMCl9aSh1a2EsImNoYXJGcm9tQ29kZXBvaW50Iik7ZnVuY3Rpb24gYUp0KHQsZSxyKXtlPT09Il9fcHJvdG9fXyI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cn0pOnRbZV09cn1pKGFKdCwic2V0UHJvcGVydHkiKTt2YXIgaUp0PW5ldyBBcnJheSgyNTYpLHNKdD1uZXcgQXJyYXkoMjU2KTtmb3IoTDY9MDtMNjwyNTY7TDYrKylpSnRbTDZdPXJKdChMNik/MTowLHNKdFtMNl09ckp0KEw2KTtmdW5jdGlvbiBwa2EodCxlKXt0aGlzLmlucHV0PXQsdGhpcy5maWxlbmFtZT1lLmZpbGVuYW1lfHxudWxsLHRoaXMuc2NoZW1hPWUuc2NoZW1hfHxha2EsdGhpcy5vbldhcm5pbmc9ZS5vbldhcm5pbmd8fG51bGwsdGhpcy5sZWdhY3k9ZS5sZWdhY3l8fCExLHRoaXMuanNvbj1lLmpzb258fCExLHRoaXMubGlzdGVuZXI9ZS5saXN0ZW5lcnx8bnVsbCx0aGlzLmltcGxpY2l0VHlwZXM9dGhpcy5zY2hlbWEuY29tcGlsZWRJbXBsaWNpdCx0aGlzLnR5cGVNYXA9dGhpcy5zY2hlbWEuY29tcGlsZWRUeXBlTWFwLHRoaXMubGVuZ3RoPXQubGVuZ3RoLHRoaXMucG9zaXRpb249MCx0aGlzLmxpbmU9MCx0aGlzLmxpbmVTdGFydD0wLHRoaXMubGluZUluZGVudD0wLHRoaXMuZG9jdW1lbnRzPVtdfWkocGthLCJTdGF0ZSIpO2Z1bmN0aW9uIG5KdCh0LGUpe3JldHVybiBuZXcgWVh0KGUsbmV3IHJrYSh0LmZpbGVuYW1lLHQuaW5wdXQsdC5wb3NpdGlvbix0LmxpbmUsdC5wb3NpdGlvbi10LmxpbmVTdGFydCkpfWkobkp0LCJnZW5lcmF0ZUVycm9yIik7ZnVuY3Rpb24gUXQodCxlKXt0aHJvdyBuSnQodCxlKX1pKFF0LCJ0aHJvd0Vycm9yIik7ZnVuY3Rpb24gRWRlKHQsZSl7dC5vbldhcm5pbmcmJnQub25XYXJuaW5nLmNhbGwobnVsbCxuSnQodCxlKSl9aShFZGUsInRocm93V2FybmluZyIpO3ZhciBvSnQ9e1lBTUw6aShmdW5jdGlvbihlLHIsYSl7dmFyIHMsbixvO2UudmVyc2lvbiE9PW51bGwmJlF0KGUsImR1cGxpY2F0aW9uIG9mICVZQU1MIGRpcmVjdGl2ZSIpLGEubGVuZ3RoIT09MSYmUXQoZSwiWUFNTCBkaXJlY3RpdmUgYWNjZXB0cyBleGFjdGx5IG9uZSBhcmd1bWVudCIpLHM9L14oWzAtOV0rKVwuKFswLTldKykkLy5leGVjKGFbMF0pLHM9PT1udWxsJiZRdChlLCJpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZSIpLG49cGFyc2VJbnQoc1sxXSwxMCksbz1wYXJzZUludChzWzJdLDEwKSxuIT09MSYmUXQoZSwidW5hY2NlcHRhYmxlIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQiKSxlLnZlcnNpb249YVswXSxlLmNoZWNrTGluZUJyZWFrcz1vPDIsbyE9PTEmJm8hPT0yJiZFZGUoZSwidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpfSwiaGFuZGxlWWFtbERpcmVjdGl2ZSIpLFRBRzppKGZ1bmN0aW9uKGUscixhKXt2YXIgcyxuO2EubGVuZ3RoIT09MiYmUXQoZSwiVEFHIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgdHdvIGFyZ3VtZW50cyIpLHM9YVswXSxuPWFbMV0sSlh0LnRlc3Qocyl8fFF0KGUsImlsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIiksZnAuY2FsbChlLnRhZ01hcCxzKSYmUXQoZSwndGhlcmUgaXMgYSBwcmV2aW91c2x5IGRlY2xhcmVkIHN1ZmZpeCBmb3IgIicrcysnIiB0YWcgaGFuZGxlJyksZUp0LnRlc3Qobil8fFF0KGUsImlsbC1mb3JtZWQgdGFnIHByZWZpeCAoc2Vjb25kIGFyZ3VtZW50KSBvZiB0aGUgVEFHIGRpcmVjdGl2ZSIpLGUudGFnTWFwW3NdPW59LCJoYW5kbGVUYWdEaXJlY3RpdmUiKX07ZnVuY3Rpb24gaHAodCxlLHIsYSl7dmFyIHMsbixvLGw7aWYoZTxyKXtpZihsPXQuaW5wdXQuc2xpY2UoZSxyKSxhKWZvcihzPTAsbj1sLmxlbmd0aDtzPG47cys9MSlvPWwuY2hhckNvZGVBdChzKSxvPT09OXx8MzI8PW8mJm88PTExMTQxMTF8fFF0KHQsImV4cGVjdGVkIHZhbGlkIEpTT04gY2hhcmFjdGVyIik7ZWxzZSBza2EudGVzdChsKSYmUXQodCwidGhlIHN0cmVhbSBjb250YWlucyBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMiKTt0LnJlc3VsdCs9bH19aShocCwiY2FwdHVyZVNlZ21lbnQiKTtmdW5jdGlvbiBsSnQodCxlLHIsYSl7dmFyIHMsbixvLGw7Zm9yKFQ0LmlzT2JqZWN0KHIpfHxRdCh0LCJjYW5ub3QgbWVyZ2UgbWFwcGluZ3M7IHRoZSBwcm92aWRlZCBzb3VyY2Ugb2JqZWN0IGlzIHVuYWNjZXB0YWJsZSIpLHM9T2JqZWN0LmtleXMociksbz0wLGw9cy5sZW5ndGg7bzxsO28rPTEpbj1zW29dLGZwLmNhbGwoZSxuKXx8KGFKdChlLG4scltuXSksYVtuXT0hMCl9aShsSnQsIm1lcmdlTWFwcGluZ3MiKTtmdW5jdGlvbiBVdih0LGUscixhLHMsbixvLGwpe3ZhciBjLGQ7aWYoQXJyYXkuaXNBcnJheShzKSlmb3Iocz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChzKSxjPTAsZD1zLmxlbmd0aDtjPGQ7Yys9MSlBcnJheS5pc0FycmF5KHNbY10pJiZRdCh0LCJuZXN0ZWQgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluc2lkZSBrZXlzIiksdHlwZW9mIHM9PSJvYmplY3QiJiZ0SnQoc1tjXSk9PT0iW29iamVjdCBPYmplY3RdIiYmKHNbY109IltvYmplY3QgT2JqZWN0XSIpO2lmKHR5cGVvZiBzPT0ib2JqZWN0IiYmdEp0KHMpPT09IltvYmplY3QgT2JqZWN0XSImJihzPSJbb2JqZWN0IE9iamVjdF0iKSxzPVN0cmluZyhzKSxlPT09bnVsbCYmKGU9e30pLGE9PT0idGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiKWlmKEFycmF5LmlzQXJyYXkobikpZm9yKGM9MCxkPW4ubGVuZ3RoO2M8ZDtjKz0xKWxKdCh0LGUsbltjXSxyKTtlbHNlIGxKdCh0LGUsbixyKTtlbHNlIXQuanNvbiYmIWZwLmNhbGwocixzKSYmZnAuY2FsbChlLHMpJiYodC5saW5lPW98fHQubGluZSx0LnBvc2l0aW9uPWx8fHQucG9zaXRpb24sUXQodCwiZHVwbGljYXRlZCBtYXBwaW5nIGtleSIpKSxhSnQoZSxzLG4pLGRlbGV0ZSByW3NdO3JldHVybiBlfWkoVXYsInN0b3JlTWFwcGluZ1BhaXIiKTtmdW5jdGlvbiBUVGUodCl7dmFyIGU7ZT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksZT09PTEwP3QucG9zaXRpb24rKzplPT09MTM/KHQucG9zaXRpb24rKyx0LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik9PT0xMCYmdC5wb3NpdGlvbisrKTpRdCh0LCJhIGxpbmUgYnJlYWsgaXMgZXhwZWN0ZWQiKSx0LmxpbmUrPTEsdC5saW5lU3RhcnQ9dC5wb3NpdGlvbn1pKFRUZSwicmVhZExpbmVCcmVhayIpO2Z1bmN0aW9uIE1zKHQsZSxyKXtmb3IodmFyIGE9MCxzPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTtzIT09MDspe2Zvcig7VDYocyk7KXM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aWYoZSYmcz09PTM1KWRvIHM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUocyE9PTEwJiZzIT09MTMmJnMhPT0wKTtpZihqMChzKSlmb3IoVFRlKHQpLHM9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLGErKyx0LmxpbmVJbmRlbnQ9MDtzPT09MzI7KXQubGluZUluZGVudCsrLHM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7ZWxzZSBicmVha31yZXR1cm4gciE9PS0xJiZhIT09MCYmdC5saW5lSW5kZW50PHImJkVkZSh0LCJkZWZpY2llbnQgaW5kZW50YXRpb24iKSxhfWkoTXMsInNraXBTZXBhcmF0aW9uU3BhY2UiKTtmdW5jdGlvbiBJZGUodCl7dmFyIGU9dC5wb3NpdGlvbixyO3JldHVybiByPXQuaW5wdXQuY2hhckNvZGVBdChlKSwhISgocj09PTQ1fHxyPT09NDYpJiZyPT09dC5pbnB1dC5jaGFyQ29kZUF0KGUrMSkmJnI9PT10LmlucHV0LmNoYXJDb2RlQXQoZSsyKSYmKGUrPTMscj10LmlucHV0LmNoYXJDb2RlQXQoZSkscj09PTB8fFQxKHIpKSl9aShJZGUsInRlc3REb2N1bWVudFNlcGFyYXRvciIpO2Z1bmN0aW9uIExUZSh0LGUpe2U9PT0xP3QucmVzdWx0Kz0iICI6ZT4xJiYodC5yZXN1bHQrPVQ0LnJlcGVhdChgCmAsZS0xKSl9aShMVGUsIndyaXRlRm9sZGVkTGluZXMiKTtmdW5jdGlvbiBma2EodCxlLHIpe3ZhciBhLHMsbixvLGwsYyxkLGYscD10LmtpbmQsaD10LnJlc3VsdCxtO2lmKG09dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLFQxKG0pfHxqdihtKXx8bT09PTM1fHxtPT09Mzh8fG09PT00Mnx8bT09PTMzfHxtPT09MTI0fHxtPT09NjJ8fG09PT0zOXx8bT09PTM0fHxtPT09Mzd8fG09PT02NHx8bT09PTk2fHwobT09PTYzfHxtPT09NDUpJiYocz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKSxUMShzKXx8ciYmanYocykpKXJldHVybiExO2Zvcih0LmtpbmQ9InNjYWxhciIsdC5yZXN1bHQ9IiIsbj1vPXQucG9zaXRpb24sbD0hMTttIT09MDspe2lmKG09PT01OCl7aWYocz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKSxUMShzKXx8ciYmanYocykpYnJlYWt9ZWxzZSBpZihtPT09MzUpe2lmKGE9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24tMSksVDEoYSkpYnJlYWt9ZWxzZXtpZih0LnBvc2l0aW9uPT09dC5saW5lU3RhcnQmJklkZSh0KXx8ciYmanYobSkpYnJlYWs7aWYoajAobSkpaWYoYz10LmxpbmUsZD10LmxpbmVTdGFydCxmPXQubGluZUluZGVudCxNcyh0LCExLC0xKSx0LmxpbmVJbmRlbnQ+PWUpe2w9ITAsbT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7Y29udGludWV9ZWxzZXt0LnBvc2l0aW9uPW8sdC5saW5lPWMsdC5saW5lU3RhcnQ9ZCx0LmxpbmVJbmRlbnQ9ZjticmVha319bCYmKGhwKHQsbixvLCExKSxMVGUodCx0LmxpbmUtYyksbj1vPXQucG9zaXRpb24sbD0hMSksVDYobSl8fChvPXQucG9zaXRpb24rMSksbT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKX1yZXR1cm4gaHAodCxuLG8sITEpLHQucmVzdWx0PyEwOih0LmtpbmQ9cCx0LnJlc3VsdD1oLCExKX1pKGZrYSwicmVhZFBsYWluU2NhbGFyIik7ZnVuY3Rpb24gaGthKHQsZSl7dmFyIHIsYSxzO2lmKHI9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLHIhPT0zOSlyZXR1cm4hMTtmb3IodC5raW5kPSJzY2FsYXIiLHQucmVzdWx0PSIiLHQucG9zaXRpb24rKyxhPXM9dC5wb3NpdGlvbjsocj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbikpIT09MDspaWYocj09PTM5KWlmKGhwKHQsYSx0LnBvc2l0aW9uLCEwKSxyPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLHI9PT0zOSlhPXQucG9zaXRpb24sdC5wb3NpdGlvbisrLHM9dC5wb3NpdGlvbjtlbHNlIHJldHVybiEwO2Vsc2UgajAocik/KGhwKHQsYSxzLCEwKSxMVGUodCxNcyh0LCExLGUpKSxhPXM9dC5wb3NpdGlvbik6dC5wb3NpdGlvbj09PXQubGluZVN0YXJ0JiZJZGUodCk/UXQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik6KHQucG9zaXRpb24rKyxzPXQucG9zaXRpb24pO1F0KHQsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXIiKX1pKGhrYSwicmVhZFNpbmdsZVF1b3RlZFNjYWxhciIpO2Z1bmN0aW9uIG1rYSh0LGUpe3ZhciByLGEscyxuLG8sbDtpZihsPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxsIT09MzQpcmV0dXJuITE7Zm9yKHQua2luZD0ic2NhbGFyIix0LnJlc3VsdD0iIix0LnBvc2l0aW9uKysscj1hPXQucG9zaXRpb247KGw9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSE9PTA7KXtpZihsPT09MzQpcmV0dXJuIGhwKHQscix0LnBvc2l0aW9uLCEwKSx0LnBvc2l0aW9uKyssITA7aWYobD09PTkyKXtpZihocCh0LHIsdC5wb3NpdGlvbiwhMCksbD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxqMChsKSlNcyh0LCExLGUpO2Vsc2UgaWYobDwyNTYmJmlKdFtsXSl0LnJlc3VsdCs9c0p0W2xdLHQucG9zaXRpb24rKztlbHNlIGlmKChvPWNrYShsKSk+MCl7Zm9yKHM9byxuPTA7cz4wO3MtLSlsPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLChvPWxrYShsKSk+PTA/bj0objw8NCkrbzpRdCh0LCJleHBlY3RlZCBoZXhhZGVjaW1hbCBjaGFyYWN0ZXIiKTt0LnJlc3VsdCs9dWthKG4pLHQucG9zaXRpb24rK31lbHNlIFF0KHQsInVua25vd24gZXNjYXBlIHNlcXVlbmNlIik7cj1hPXQucG9zaXRpb259ZWxzZSBqMChsKT8oaHAodCxyLGEsITApLExUZSh0LE1zKHQsITEsZSkpLHI9YT10LnBvc2l0aW9uKTp0LnBvc2l0aW9uPT09dC5saW5lU3RhcnQmJklkZSh0KT9RdCh0LCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXIiKToodC5wb3NpdGlvbisrLGE9dC5wb3NpdGlvbil9UXQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhciIpfWkobWthLCJyZWFkRG91YmxlUXVvdGVkU2NhbGFyIik7ZnVuY3Rpb24gZ2thKHQsZSl7dmFyIHI9ITAsYSxzPXQudGFnLG4sbz10LmFuY2hvcixsLGMsZCxmLHAsaD17fSxtLHYsYixnO2lmKGc9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLGc9PT05MSljPTkzLHA9ITEsbj1bXTtlbHNlIGlmKGc9PT0xMjMpYz0xMjUscD0hMCxuPXt9O2Vsc2UgcmV0dXJuITE7Zm9yKHQuYW5jaG9yIT09bnVsbCYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT1uKSxnPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2chPT0wOyl7aWYoTXModCwhMCxlKSxnPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxnPT09YylyZXR1cm4gdC5wb3NpdGlvbisrLHQudGFnPXMsdC5hbmNob3I9byx0LmtpbmQ9cD8ibWFwcGluZyI6InNlcXVlbmNlIix0LnJlc3VsdD1uLCEwO3J8fFF0KHQsIm1pc3NlZCBjb21tYSBiZXR3ZWVuIGZsb3cgY29sbGVjdGlvbiBlbnRyaWVzIiksdj1tPWI9bnVsbCxkPWY9ITEsZz09PTYzJiYobD10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKSxUMShsKSYmKGQ9Zj0hMCx0LnBvc2l0aW9uKyssTXModCwhMCxlKSkpLGE9dC5saW5lLFd2KHQsZSwkZGUsITEsITApLHY9dC50YWcsbT10LnJlc3VsdCxNcyh0LCEwLGUpLGc9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLChmfHx0LmxpbmU9PT1hKSYmZz09PTU4JiYoZD0hMCxnPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLE1zKHQsITAsZSksV3YodCxlLCRkZSwhMSwhMCksYj10LnJlc3VsdCkscD9Vdih0LG4saCx2LG0sYik6ZD9uLnB1c2goVXYodCxudWxsLGgsdixtLGIpKTpuLnB1c2gobSksTXModCwhMCxlKSxnPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxnPT09NDQ/KHI9ITAsZz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6cj0hMX1RdCh0LCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGZsb3cgY29sbGVjdGlvbiIpfWkoZ2thLCJyZWFkRmxvd0NvbGxlY3Rpb24iKTtmdW5jdGlvbiBia2EodCxlKXt2YXIgcixhLHM9X1RlLG49ITEsbz0hMSxsPWUsYz0wLGQ9ITEsZixwO2lmKHA9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLHA9PT0xMjQpYT0hMTtlbHNlIGlmKHA9PT02MilhPSEwO2Vsc2UgcmV0dXJuITE7Zm9yKHQua2luZD0ic2NhbGFyIix0LnJlc3VsdD0iIjtwIT09MDspaWYocD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxwPT09NDN8fHA9PT00NSlfVGU9PT1zP3M9cD09PTQzP1hYdDppa2E6UXQodCwicmVwZWF0IG9mIGEgY2hvbXBpbmcgbW9kZSBpZGVudGlmaWVyIik7ZWxzZSBpZigoZj1ka2EocCkpPj0wKWY9PT0wP1F0KHQsImJhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUiKTpvP1F0KHQsInJlcGVhdCBvZiBhbiBpbmRlbnRhdGlvbiB3aWR0aCBpZGVudGlmaWVyIik6KGw9ZStmLTEsbz0hMCk7ZWxzZSBicmVhaztpZihUNihwKSl7ZG8gcD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTt3aGlsZShUNihwKSk7aWYocD09PTM1KWRvIHA9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUoIWowKHApJiZwIT09MCl9Zm9yKDtwIT09MDspe2ZvcihUVGUodCksdC5saW5lSW5kZW50PTAscD10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7KCFvfHx0LmxpbmVJbmRlbnQ8bCkmJnA9PT0zMjspdC5saW5lSW5kZW50KysscD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtpZighbyYmdC5saW5lSW5kZW50PmwmJihsPXQubGluZUluZGVudCksajAocCkpe2MrKztjb250aW51ZX1pZih0LmxpbmVJbmRlbnQ8bCl7cz09PVhYdD90LnJlc3VsdCs9VDQucmVwZWF0KGAKYCxuPzErYzpjKTpzPT09X1RlJiZuJiYodC5yZXN1bHQrPWAKYCk7YnJlYWt9Zm9yKGE/VDYocCk/KGQ9ITAsdC5yZXN1bHQrPVQ0LnJlcGVhdChgCmAsbj8xK2M6YykpOmQ/KGQ9ITEsdC5yZXN1bHQrPVQ0LnJlcGVhdChgCmAsYysxKSk6Yz09PTA/biYmKHQucmVzdWx0Kz0iICIpOnQucmVzdWx0Kz1UNC5yZXBlYXQoYApgLGMpOnQucmVzdWx0Kz1UNC5yZXBlYXQoYApgLG4/MStjOmMpLG49ITAsbz0hMCxjPTAscj10LnBvc2l0aW9uOyFqMChwKSYmcCE9PTA7KXA9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aHAodCxyLHQucG9zaXRpb24sITEpfXJldHVybiEwfWkoYmthLCJyZWFkQmxvY2tTY2FsYXIiKTtmdW5jdGlvbiBjSnQodCxlKXt2YXIgcixhPXQudGFnLHM9dC5hbmNob3Isbj1bXSxvLGw9ITEsYztmb3IodC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPW4pLGM9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pO2MhPT0wJiYhKGMhPT00NXx8KG89dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSksIVQxKG8pKSk7KXtpZihsPSEwLHQucG9zaXRpb24rKyxNcyh0LCEwLC0xKSYmdC5saW5lSW5kZW50PD1lKXtuLnB1c2gobnVsbCksYz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7Y29udGludWV9aWYocj10LmxpbmUsV3YodCxlLFFYdCwhMSwhMCksbi5wdXNoKHQucmVzdWx0KSxNcyh0LCEwLC0xKSxjPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSwodC5saW5lPT09cnx8dC5saW5lSW5kZW50PmUpJiZjIT09MClRdCh0LCJiYWQgaW5kZW50YXRpb24gb2YgYSBzZXF1ZW5jZSBlbnRyeSIpO2Vsc2UgaWYodC5saW5lSW5kZW50PGUpYnJlYWt9cmV0dXJuIGw/KHQudGFnPWEsdC5hbmNob3I9cyx0LmtpbmQ9InNlcXVlbmNlIix0LnJlc3VsdD1uLCEwKTohMX1pKGNKdCwicmVhZEJsb2NrU2VxdWVuY2UiKTtmdW5jdGlvbiB4a2EodCxlLHIpe3ZhciBhLHMsbixvLGw9dC50YWcsYz10LmFuY2hvcixkPXt9LGY9e30scD1udWxsLGg9bnVsbCxtPW51bGwsdj0hMSxiPSExLGc7Zm9yKHQuYW5jaG9yIT09bnVsbCYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT1kKSxnPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTtnIT09MDspe2lmKGE9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSksbj10LmxpbmUsbz10LnBvc2l0aW9uLChnPT09NjN8fGc9PT01OCkmJlQxKGEpKWc9PT02Mz8odiYmKFV2KHQsZCxmLHAsaCxudWxsKSxwPWg9bT1udWxsKSxiPSEwLHY9ITAscz0hMCk6dj8odj0hMSxzPSEwKTpRdCh0LCJpbmNvbXBsZXRlIGV4cGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBrZXkgbm9kZSBpcyBtaXNzZWQ7IG9yIGZvbGxvd2VkIGJ5IGEgbm9uLXRhYnVsYXRlZCBlbXB0eSBsaW5lIiksdC5wb3NpdGlvbis9MSxnPWE7ZWxzZSBpZihXdih0LHIsWlh0LCExLCEwKSlpZih0LmxpbmU9PT1uKXtmb3IoZz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7VDYoZyk7KWc9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aWYoZz09PTU4KWc9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksVDEoZyl8fFF0KHQsImEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgZXhwZWN0ZWQgYWZ0ZXIgdGhlIGtleS12YWx1ZSBzZXBhcmF0b3Igd2l0aGluIGEgYmxvY2sgbWFwcGluZyIpLHYmJihVdih0LGQsZixwLGgsbnVsbCkscD1oPW09bnVsbCksYj0hMCx2PSExLHM9ITEscD10LnRhZyxoPXQucmVzdWx0O2Vsc2UgaWYoYilRdCh0LCJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCIpO2Vsc2UgcmV0dXJuIHQudGFnPWwsdC5hbmNob3I9YywhMH1lbHNlIGlmKGIpUXQodCwiY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5Iik7ZWxzZSByZXR1cm4gdC50YWc9bCx0LmFuY2hvcj1jLCEwO2Vsc2UgYnJlYWs7aWYoKHQubGluZT09PW58fHQubGluZUluZGVudD5lKSYmKFd2KHQsZSxBZGUsITAscykmJih2P2g9dC5yZXN1bHQ6bT10LnJlc3VsdCksdnx8KFV2KHQsZCxmLHAsaCxtLG4sbykscD1oPW09bnVsbCksTXModCwhMCwtMSksZz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbikpLHQubGluZUluZGVudD5lJiZnIT09MClRdCh0LCJiYWQgaW5kZW50YXRpb24gb2YgYSBtYXBwaW5nIGVudHJ5Iik7ZWxzZSBpZih0LmxpbmVJbmRlbnQ8ZSlicmVha31yZXR1cm4gdiYmVXYodCxkLGYscCxoLG51bGwpLGImJih0LnRhZz1sLHQuYW5jaG9yPWMsdC5raW5kPSJtYXBwaW5nIix0LnJlc3VsdD1kKSxifWkoeGthLCJyZWFkQmxvY2tNYXBwaW5nIik7ZnVuY3Rpb24gdmthKHQpe3ZhciBlLHI9ITEsYT0hMSxzLG4sbztpZihvPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxvIT09MzMpcmV0dXJuITE7aWYodC50YWchPT1udWxsJiZRdCh0LCJkdXBsaWNhdGlvbiBvZiBhIHRhZyBwcm9wZXJ0eSIpLG89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksbz09PTYwPyhyPSEwLG89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikpOm89PT0zMz8oYT0hMCxzPSIhISIsbz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6cz0iISIsZT10LnBvc2l0aW9uLHIpe2RvIG89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUobyE9PTAmJm8hPT02Mik7dC5wb3NpdGlvbjx0Lmxlbmd0aD8obj10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbiksbz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6UXQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKX1lbHNle2Zvcig7byE9PTAmJiFUMShvKTspbz09PTMzJiYoYT9RdCh0LCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGV4Y2xhbWF0aW9uIG1hcmtzIik6KHM9dC5pbnB1dC5zbGljZShlLTEsdC5wb3NpdGlvbisxKSxKWHQudGVzdChzKXx8UXQodCwibmFtZWQgdGFnIGhhbmRsZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnMiKSxhPSEwLGU9dC5wb3NpdGlvbisxKSksbz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtuPXQuaW5wdXQuc2xpY2UoZSx0LnBvc2l0aW9uKSxva2EudGVzdChuKSYmUXQodCwidGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBmbG93IGluZGljYXRvciBjaGFyYWN0ZXJzIil9cmV0dXJuIG4mJiFlSnQudGVzdChuKSYmUXQodCwidGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiAiK24pLHI/dC50YWc9bjpmcC5jYWxsKHQudGFnTWFwLHMpP3QudGFnPXQudGFnTWFwW3NdK246cz09PSIhIj90LnRhZz0iISIrbjpzPT09IiEhIj90LnRhZz0idGFnOnlhbWwub3JnLDIwMDI6IituOlF0KHQsJ3VuZGVjbGFyZWQgdGFnIGhhbmRsZSAiJytzKyciJyksITB9aSh2a2EsInJlYWRUYWdQcm9wZXJ0eSIpO2Z1bmN0aW9uIHlrYSh0KXt2YXIgZSxyO2lmKHI9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLHIhPT0zOClyZXR1cm4hMTtmb3IodC5hbmNob3IhPT1udWxsJiZRdCh0LCJkdXBsaWNhdGlvbiBvZiBhbiBhbmNob3IgcHJvcGVydHkiKSxyPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLGU9dC5wb3NpdGlvbjtyIT09MCYmIVQxKHIpJiYhanYocik7KXI9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7cmV0dXJuIHQucG9zaXRpb249PT1lJiZRdCh0LCJuYW1lIG9mIGFuIGFuY2hvciBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIiksdC5hbmNob3I9dC5pbnB1dC5zbGljZShlLHQucG9zaXRpb24pLCEwfWkoeWthLCJyZWFkQW5jaG9yUHJvcGVydHkiKTtmdW5jdGlvbiB3a2EodCl7dmFyIGUscixhO2lmKGE9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLGEhPT00MilyZXR1cm4hMTtmb3IoYT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxlPXQucG9zaXRpb247YSE9PTAmJiFUMShhKSYmIWp2KGEpOylhPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO3JldHVybiB0LnBvc2l0aW9uPT09ZSYmUXQodCwibmFtZSBvZiBhbiBhbGlhcyBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIikscj10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbiksZnAuY2FsbCh0LmFuY2hvck1hcCxyKXx8UXQodCwndW5pZGVudGlmaWVkIGFsaWFzICInK3IrJyInKSx0LnJlc3VsdD10LmFuY2hvck1hcFtyXSxNcyh0LCEwLC0xKSwhMH1pKHdrYSwicmVhZEFsaWFzIik7ZnVuY3Rpb24gV3YodCxlLHIsYSxzKXt2YXIgbixvLGwsYz0xLGQ9ITEsZj0hMSxwLGgsbSx2LGI7aWYodC5saXN0ZW5lciE9PW51bGwmJnQubGlzdGVuZXIoIm9wZW4iLHQpLHQudGFnPW51bGwsdC5hbmNob3I9bnVsbCx0LmtpbmQ9bnVsbCx0LnJlc3VsdD1udWxsLG49bz1sPUFkZT09PXJ8fFFYdD09PXIsYSYmTXModCwhMCwtMSkmJihkPSEwLHQubGluZUluZGVudD5lP2M9MTp0LmxpbmVJbmRlbnQ9PT1lP2M9MDp0LmxpbmVJbmRlbnQ8ZSYmKGM9LTEpKSxjPT09MSlmb3IoO3ZrYSh0KXx8eWthKHQpOylNcyh0LCEwLC0xKT8oZD0hMCxsPW4sdC5saW5lSW5kZW50PmU/Yz0xOnQubGluZUluZGVudD09PWU/Yz0wOnQubGluZUluZGVudDxlJiYoYz0tMSkpOmw9ITE7aWYobCYmKGw9ZHx8cyksKGM9PT0xfHxBZGU9PT1yKSYmKCRkZT09PXJ8fFpYdD09PXI/dj1lOnY9ZSsxLGI9dC5wb3NpdGlvbi10LmxpbmVTdGFydCxjPT09MT9sJiYoY0p0KHQsYil8fHhrYSh0LGIsdikpfHxna2EodCx2KT9mPSEwOihvJiZia2EodCx2KXx8aGthKHQsdil8fG1rYSh0LHYpP2Y9ITA6d2thKHQpPyhmPSEwLCh0LnRhZyE9PW51bGx8fHQuYW5jaG9yIT09bnVsbCkmJlF0KHQsImFsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzIikpOmZrYSh0LHYsJGRlPT09cikmJihmPSEwLHQudGFnPT09bnVsbCYmKHQudGFnPSI/IikpLHQuYW5jaG9yIT09bnVsbCYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT10LnJlc3VsdCkpOmM9PT0wJiYoZj1sJiZjSnQodCxiKSkpLHQudGFnIT09bnVsbCYmdC50YWchPT0iISIpaWYodC50YWc9PT0iPyIpe2Zvcih0LnJlc3VsdCE9PW51bGwmJnQua2luZCE9PSJzY2FsYXIiJiZRdCh0LCd1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPD8+IHRhZzsgaXQgc2hvdWxkIGJlICJzY2FsYXIiLCBub3QgIicrdC5raW5kKyciJykscD0wLGg9dC5pbXBsaWNpdFR5cGVzLmxlbmd0aDtwPGg7cCs9MSlpZihtPXQuaW1wbGljaXRUeXBlc1twXSxtLnJlc29sdmUodC5yZXN1bHQpKXt0LnJlc3VsdD1tLmNvbnN0cnVjdCh0LnJlc3VsdCksdC50YWc9bS50YWcsdC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXQucmVzdWx0KTticmVha319ZWxzZSBmcC5jYWxsKHQudHlwZU1hcFt0LmtpbmR8fCJmYWxsYmFjayJdLHQudGFnKT8obT10LnR5cGVNYXBbdC5raW5kfHwiZmFsbGJhY2siXVt0LnRhZ10sdC5yZXN1bHQhPT1udWxsJiZtLmtpbmQhPT10LmtpbmQmJlF0KHQsInVuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8Iit0LnRhZysnPiB0YWc7IGl0IHNob3VsZCBiZSAiJyttLmtpbmQrJyIsIG5vdCAiJyt0LmtpbmQrJyInKSxtLnJlc29sdmUodC5yZXN1bHQpPyh0LnJlc3VsdD1tLmNvbnN0cnVjdCh0LnJlc3VsdCksdC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXQucmVzdWx0KSk6UXQodCwiY2Fubm90IHJlc29sdmUgYSBub2RlIHdpdGggITwiK3QudGFnKyI+IGV4cGxpY2l0IHRhZyIpKTpRdCh0LCJ1bmtub3duIHRhZyAhPCIrdC50YWcrIj4iKTtyZXR1cm4gdC5saXN0ZW5lciE9PW51bGwmJnQubGlzdGVuZXIoImNsb3NlIix0KSx0LnRhZyE9PW51bGx8fHQuYW5jaG9yIT09bnVsbHx8Zn1pKFd2LCJjb21wb3NlTm9kZSIpO2Z1bmN0aW9uIGtrYSh0KXt2YXIgZT10LnBvc2l0aW9uLHIsYSxzLG49ITEsbztmb3IodC52ZXJzaW9uPW51bGwsdC5jaGVja0xpbmVCcmVha3M9dC5sZWdhY3ksdC50YWdNYXA9e30sdC5hbmNob3JNYXA9e307KG89dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSE9PTAmJihNcyh0LCEwLC0xKSxvPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSwhKHQubGluZUluZGVudD4wfHxvIT09MzcpKTspe2ZvcihuPSEwLG89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikscj10LnBvc2l0aW9uO28hPT0wJiYhVDEobyk7KW89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7Zm9yKGE9dC5pbnB1dC5zbGljZShyLHQucG9zaXRpb24pLHM9W10sYS5sZW5ndGg8MSYmUXQodCwiZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoIik7byE9PTA7KXtmb3IoO1Q2KG8pOylvPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2lmKG89PT0zNSl7ZG8gbz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTt3aGlsZShvIT09MCYmIWowKG8pKTticmVha31pZihqMChvKSlicmVhaztmb3Iocj10LnBvc2l0aW9uO28hPT0wJiYhVDEobyk7KW89dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7cy5wdXNoKHQuaW5wdXQuc2xpY2Uocix0LnBvc2l0aW9uKSl9byE9PTAmJlRUZSh0KSxmcC5jYWxsKG9KdCxhKT9vSnRbYV0odCxhLHMpOkVkZSh0LCd1bmtub3duIGRvY3VtZW50IGRpcmVjdGl2ZSAiJythKyciJyl9aWYoTXModCwhMCwtMSksdC5saW5lSW5kZW50PT09MCYmdC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pPT09NDUmJnQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKzEpPT09NDUmJnQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKzIpPT09NDU/KHQucG9zaXRpb24rPTMsTXModCwhMCwtMSkpOm4mJlF0KHQsImRpcmVjdGl2ZXMgZW5kIG1hcmsgaXMgZXhwZWN0ZWQiKSxXdih0LHQubGluZUluZGVudC0xLEFkZSwhMSwhMCksTXModCwhMCwtMSksdC5jaGVja0xpbmVCcmVha3MmJm5rYS50ZXN0KHQuaW5wdXQuc2xpY2UoZSx0LnBvc2l0aW9uKSkmJkVkZSh0LCJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQiKSx0LmRvY3VtZW50cy5wdXNoKHQucmVzdWx0KSx0LnBvc2l0aW9uPT09dC5saW5lU3RhcnQmJklkZSh0KSl7dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pPT09NDYmJih0LnBvc2l0aW9uKz0zLE1zKHQsITAsLTEpKTtyZXR1cm59aWYodC5wb3NpdGlvbjx0Lmxlbmd0aC0xKVF0KHQsImVuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkIik7ZWxzZSByZXR1cm59aShra2EsInJlYWREb2N1bWVudCIpO2Z1bmN0aW9uIGRKdCh0LGUpe3Q9U3RyaW5nKHQpLGU9ZXx8e30sdC5sZW5ndGghPT0wJiYodC5jaGFyQ29kZUF0KHQubGVuZ3RoLTEpIT09MTAmJnQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKSE9PTEzJiYodCs9YApgKSx0LmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKHQ9dC5zbGljZSgxKSkpO3ZhciByPW5ldyBwa2EodCxlKSxhPXQuaW5kZXhPZigiXDAiKTtmb3IoYSE9PS0xJiYoci5wb3NpdGlvbj1hLFF0KHIsIm51bGwgYnl0ZSBpcyBub3QgYWxsb3dlZCBpbiBpbnB1dCIpKSxyLmlucHV0Kz0iXDAiO3IuaW5wdXQuY2hhckNvZGVBdChyLnBvc2l0aW9uKT09PTMyOylyLmxpbmVJbmRlbnQrPTEsci5wb3NpdGlvbis9MTtmb3IoO3IucG9zaXRpb248ci5sZW5ndGgtMTspa2thKHIpO3JldHVybiByLmRvY3VtZW50c31pKGRKdCwibG9hZERvY3VtZW50cyIpO2Z1bmN0aW9uIHVKdCh0LGUscil7ZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0IiYmdHlwZW9mIHI+InUiJiYocj1lLGU9bnVsbCk7dmFyIGE9ZEp0KHQscik7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpcmV0dXJuIGE7Zm9yKHZhciBzPTAsbj1hLmxlbmd0aDtzPG47cys9MSllKGFbc10pfWkodUp0LCJsb2FkQWxsIik7ZnVuY3Rpb24gcEp0KHQsZSl7dmFyIHI9ZEp0KHQsZSk7aWYoci5sZW5ndGghPT0wKXtpZihyLmxlbmd0aD09PTEpcmV0dXJuIHJbMF07dGhyb3cgbmV3IFlYdCgiZXhwZWN0ZWQgYSBzaW5nbGUgZG9jdW1lbnQgaW4gdGhlIHN0cmVhbSwgYnV0IGZvdW5kIG1vcmUiKX19aShwSnQsImxvYWQiKTtmdW5jdGlvbiBTa2EodCxlLHIpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsJiZ0eXBlb2Ygcj4idSImJihyPWUsZT1udWxsKSx1SnQodCxlLFQ0LmV4dGVuZCh7c2NoZW1hOktYdH0scikpfWkoU2thLCJzYWZlTG9hZEFsbCIpO2Z1bmN0aW9uIE1rYSh0LGUpe3JldHVybiBwSnQodCxUNC5leHRlbmQoe3NjaGVtYTpLWHR9LGUpKX1pKE1rYSwic2FmZUxvYWQiKSxDei5leHBvcnRzLmxvYWRBbGw9dUp0LEN6LmV4cG9ydHMubG9hZD1wSnQsQ3ouZXhwb3J0cy5zYWZlTG9hZEFsbD1Ta2EsQ3ouZXhwb3J0cy5zYWZlTG9hZD1Na2E7dmFyIEw2fSk7dmFyIE5KdD1OdCgoTG9uLEVUZSk9PnsidXNlIHN0cmljdCI7dmFyIHp6PUM2KCksX3o9SHYoKSxDa2E9TXooKSx6a2E9VnYoKSxoSnQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxtSnQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxfa2E9OSxUej0xMCxUa2E9MTMsTGthPTMyLERrYT0zMywka2E9MzQsZ0p0PTM1LEFrYT0zNyxFa2E9MzgsSWthPTM5LFBrYT00MixiSnQ9NDQsTmthPTQ1LHhKdD01OCxPa2E9NjEsUmthPTYyLEZrYT02MyxCa2E9NjQsdkp0PTkxLHlKdD05MyxIa2E9OTYsd0p0PTEyMyxxa2E9MTI0LGtKdD0xMjUsZ289e307Z29bMF09IlxcMCIsZ29bN109IlxcYSIsZ29bOF09IlxcYiIsZ29bOV09IlxcdCIsZ29bMTBdPSJcXG4iLGdvWzExXT0iXFx2Iixnb1sxMl09IlxcZiIsZ29bMTNdPSJcXHIiLGdvWzI3XT0iXFxlIixnb1szNF09J1xcIicsZ29bOTJdPSJcXFxcIixnb1sxMzNdPSJcXE4iLGdvWzE2MF09IlxcXyIsZ29bODIzMl09IlxcTCIsZ29bODIzM109IlxcUCI7dmFyIFZrYT1bInkiLCJZIiwieWVzIiwiWWVzIiwiWUVTIiwib24iLCJPbiIsIk9OIiwibiIsIk4iLCJubyIsIk5vIiwiTk8iLCJvZmYiLCJPZmYiLCJPRkYiXTtmdW5jdGlvbiBqa2EodCxlKXt2YXIgcixhLHMsbixvLGwsYztpZihlPT09bnVsbClyZXR1cm57fTtmb3Iocj17fSxhPU9iamVjdC5rZXlzKGUpLHM9MCxuPWEubGVuZ3RoO3M8bjtzKz0xKW89YVtzXSxsPVN0cmluZyhlW29dKSxvLnNsaWNlKDAsMik9PT0iISEiJiYobz0idGFnOnlhbWwub3JnLDIwMDI6IitvLnNsaWNlKDIpKSxjPXQuY29tcGlsZWRUeXBlTWFwLmZhbGxiYWNrW29dLGMmJm1KdC5jYWxsKGMuc3R5bGVBbGlhc2VzLGwpJiYobD1jLnN0eWxlQWxpYXNlc1tsXSkscltvXT1sO3JldHVybiByfWkoamthLCJjb21waWxlU3R5bGVNYXAiKTtmdW5jdGlvbiBTSnQodCl7dmFyIGUscixhO2lmKGU9dC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSx0PD0yNTUpcj0ieCIsYT0yO2Vsc2UgaWYodDw9NjU1MzUpcj0idSIsYT00O2Vsc2UgaWYodDw9NDI5NDk2NzI5NSlyPSJVIixhPTg7ZWxzZSB0aHJvdyBuZXcgX3ooImNvZGUgcG9pbnQgd2l0aGluIGEgc3RyaW5nIG1heSBub3QgYmUgZ3JlYXRlciB0aGFuIDB4RkZGRkZGRkYiKTtyZXR1cm4iXFwiK3IrenoucmVwZWF0KCIwIixhLWUubGVuZ3RoKStlfWkoU0p0LCJlbmNvZGVIZXgiKTtmdW5jdGlvbiBVa2EodCl7dGhpcy5zY2hlbWE9dC5zY2hlbWF8fENrYSx0aGlzLmluZGVudD1NYXRoLm1heCgxLHQuaW5kZW50fHwyKSx0aGlzLm5vQXJyYXlJbmRlbnQ9dC5ub0FycmF5SW5kZW50fHwhMSx0aGlzLnNraXBJbnZhbGlkPXQuc2tpcEludmFsaWR8fCExLHRoaXMuZmxvd0xldmVsPXp6LmlzTm90aGluZyh0LmZsb3dMZXZlbCk/LTE6dC5mbG93TGV2ZWwsdGhpcy5zdHlsZU1hcD1qa2EodGhpcy5zY2hlbWEsdC5zdHlsZXN8fG51bGwpLHRoaXMuc29ydEtleXM9dC5zb3J0S2V5c3x8ITEsdGhpcy5saW5lV2lkdGg9dC5saW5lV2lkdGh8fDgwLHRoaXMubm9SZWZzPXQubm9SZWZzfHwhMSx0aGlzLm5vQ29tcGF0TW9kZT10Lm5vQ29tcGF0TW9kZXx8ITEsdGhpcy5jb25kZW5zZUZsb3c9dC5jb25kZW5zZUZsb3d8fCExLHRoaXMuaW1wbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0LHRoaXMuZXhwbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEV4cGxpY2l0LHRoaXMudGFnPW51bGwsdGhpcy5yZXN1bHQ9IiIsdGhpcy5kdXBsaWNhdGVzPVtdLHRoaXMudXNlZER1cGxpY2F0ZXM9bnVsbH1pKFVrYSwiU3RhdGUiKTtmdW5jdGlvbiBNSnQodCxlKXtmb3IodmFyIHI9enoucmVwZWF0KCIgIixlKSxhPTAscz0tMSxuPSIiLG8sbD10Lmxlbmd0aDthPGw7KXM9dC5pbmRleE9mKGAKYCxhKSxzPT09LTE/KG89dC5zbGljZShhKSxhPWwpOihvPXQuc2xpY2UoYSxzKzEpLGE9cysxKSxvLmxlbmd0aCYmbyE9PWAKYCYmKG4rPXIpLG4rPW87cmV0dXJuIG59aShNSnQsImluZGVudFN0cmluZyIpO2Z1bmN0aW9uIERUZSh0LGUpe3JldHVybmAKYCt6ei5yZXBlYXQoIiAiLHQuaW5kZW50KmUpfWkoRFRlLCJnZW5lcmF0ZU5leHRMaW5lIik7ZnVuY3Rpb24gV2thKHQsZSl7dmFyIHIsYSxzO2ZvcihyPTAsYT10LmltcGxpY2l0VHlwZXMubGVuZ3RoO3I8YTtyKz0xKWlmKHM9dC5pbXBsaWNpdFR5cGVzW3JdLHMucmVzb2x2ZShlKSlyZXR1cm4hMDtyZXR1cm4hMX1pKFdrYSwidGVzdEltcGxpY2l0UmVzb2x2aW5nIik7ZnVuY3Rpb24gJFRlKHQpe3JldHVybiB0PT09TGthfHx0PT09X2thfWkoJFRlLCJpc1doaXRlc3BhY2UiKTtmdW5jdGlvbiBHdih0KXtyZXR1cm4gMzI8PXQmJnQ8PTEyNnx8MTYxPD10JiZ0PD01NTI5NSYmdCE9PTgyMzImJnQhPT04MjMzfHw1NzM0NDw9dCYmdDw9NjU1MzMmJnQhPT02NTI3OXx8NjU1MzY8PXQmJnQ8PTExMTQxMTF9aShHdiwiaXNQcmludGFibGUiKTtmdW5jdGlvbiBHa2EodCl7cmV0dXJuIEd2KHQpJiYhJFRlKHQpJiZ0IT09NjUyNzkmJnQhPT1Ua2EmJnQhPT1Uen1pKEdrYSwiaXNOc0NoYXIiKTtmdW5jdGlvbiBDSnQodCxlKXtyZXR1cm4gR3YodCkmJnQhPT02NTI3OSYmdCE9PWJKdCYmdCE9PXZKdCYmdCE9PXlKdCYmdCE9PXdKdCYmdCE9PWtKdCYmdCE9PXhKdCYmKHQhPT1nSnR8fGUmJkdrYShlKSl9aShDSnQsImlzUGxhaW5TYWZlIik7ZnVuY3Rpb24gWWthKHQpe3JldHVybiBHdih0KSYmdCE9PTY1Mjc5JiYhJFRlKHQpJiZ0IT09TmthJiZ0IT09RmthJiZ0IT09eEp0JiZ0IT09Ykp0JiZ0IT09dkp0JiZ0IT09eUp0JiZ0IT09d0p0JiZ0IT09a0p0JiZ0IT09Z0p0JiZ0IT09RWthJiZ0IT09UGthJiZ0IT09RGthJiZ0IT09cWthJiZ0IT09T2thJiZ0IT09UmthJiZ0IT09SWthJiZ0IT09JGthJiZ0IT09QWthJiZ0IT09QmthJiZ0IT09SGthfWkoWWthLCJpc1BsYWluU2FmZUZpcnN0Iik7ZnVuY3Rpb24gekp0KHQpe3ZhciBlPS9eXG4qIC87cmV0dXJuIGUudGVzdCh0KX1pKHpKdCwibmVlZEluZGVudEluZGljYXRvciIpO3ZhciBfSnQ9MSxUSnQ9MixMSnQ9MyxESnQ9NCxQZGU9NTtmdW5jdGlvbiBLa2EodCxlLHIsYSxzKXt2YXIgbixvLGwsYz0hMSxkPSExLGY9YSE9PS0xLHA9LTEsaD1Za2EodC5jaGFyQ29kZUF0KDApKSYmISRUZSh0LmNoYXJDb2RlQXQodC5sZW5ndGgtMSkpO2lmKGUpZm9yKG49MDtuPHQubGVuZ3RoO24rKyl7aWYobz10LmNoYXJDb2RlQXQobiksIUd2KG8pKXJldHVybiBQZGU7bD1uPjA/dC5jaGFyQ29kZUF0KG4tMSk6bnVsbCxoPWgmJkNKdChvLGwpfWVsc2V7Zm9yKG49MDtuPHQubGVuZ3RoO24rKyl7aWYobz10LmNoYXJDb2RlQXQobiksbz09PVR6KWM9ITAsZiYmKGQ9ZHx8bi1wLTE+YSYmdFtwKzFdIT09IiAiLHA9bik7ZWxzZSBpZighR3YobykpcmV0dXJuIFBkZTtsPW4+MD90LmNoYXJDb2RlQXQobi0xKTpudWxsLGg9aCYmQ0p0KG8sbCl9ZD1kfHxmJiZuLXAtMT5hJiZ0W3ArMV0hPT0iICJ9cmV0dXJuIWMmJiFkP2gmJiFzKHQpP19KdDpUSnQ6cj45JiZ6SnQodCk/UGRlOmQ/REp0OkxKdH1pKEtrYSwiY2hvb3NlU2NhbGFyU3R5bGUiKTtmdW5jdGlvbiBaa2EodCxlLHIsYSl7dC5kdW1wPShmdW5jdGlvbigpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4iJyciO2lmKCF0Lm5vQ29tcGF0TW9kZSYmVmthLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4iJyIrZSsiJyI7dmFyIHM9dC5pbmRlbnQqTWF0aC5tYXgoMSxyKSxuPXQubGluZVdpZHRoPT09LTE/LTE6TWF0aC5tYXgoTWF0aC5taW4odC5saW5lV2lkdGgsNDApLHQubGluZVdpZHRoLXMpLG89YXx8dC5mbG93TGV2ZWw+LTEmJnI+PXQuZmxvd0xldmVsO2Z1bmN0aW9uIGwoYyl7cmV0dXJuIFdrYSh0LGMpfXN3aXRjaChpKGwsInRlc3RBbWJpZ3VpdHkiKSxLa2EoZSxvLHQuaW5kZW50LG4sbCkpe2Nhc2UgX0p0OnJldHVybiBlO2Nhc2UgVEp0OnJldHVybiInIitlLnJlcGxhY2UoLycvZywiJyciKSsiJyI7Y2FzZSBMSnQ6cmV0dXJuInwiKyRKdChlLHQuaW5kZW50KStBSnQoTUp0KGUscykpO2Nhc2UgREp0OnJldHVybiI+IiskSnQoZSx0LmluZGVudCkrQUp0KE1KdChRa2EoZSxuKSxzKSk7Y2FzZSBQZGU6cmV0dXJuJyInK1hrYShlLG4pKyciJztkZWZhdWx0OnRocm93IG5ldyBfeigiaW1wb3NzaWJsZSBlcnJvcjogaW52YWxpZCBzY2FsYXIgc3R5bGUiKX19KSgpfWkoWmthLCJ3cml0ZVNjYWxhciIpO2Z1bmN0aW9uICRKdCh0LGUpe3ZhciByPXpKdCh0KT9TdHJpbmcoZSk6IiIsYT10W3QubGVuZ3RoLTFdPT09YApgLHM9YSYmKHRbdC5sZW5ndGgtMl09PT1gCmB8fHQ9PT1gCmApLG49cz8iKyI6YT8iIjoiLSI7cmV0dXJuIHIrbitgCmB9aSgkSnQsImJsb2NrSGVhZGVyIik7ZnVuY3Rpb24gQUp0KHQpe3JldHVybiB0W3QubGVuZ3RoLTFdPT09YApgP3Quc2xpY2UoMCwtMSk6dH1pKEFKdCwiZHJvcEVuZGluZ05ld2xpbmUiKTtmdW5jdGlvbiBRa2EodCxlKXtmb3IodmFyIHI9LyhcbispKFteXG5dKikvZyxhPShmdW5jdGlvbigpe3ZhciBkPXQuaW5kZXhPZihgCmApO3JldHVybiBkPWQhPT0tMT9kOnQubGVuZ3RoLHIubGFzdEluZGV4PWQsRUp0KHQuc2xpY2UoMCxkKSxlKX0pKCkscz10WzBdPT09YApgfHx0WzBdPT09IiAiLG4sbztvPXIuZXhlYyh0KTspe3ZhciBsPW9bMV0sYz1vWzJdO249Y1swXT09PSIgIixhKz1sKyghcyYmIW4mJmMhPT0iIj9gCmA6IiIpK0VKdChjLGUpLHM9bn1yZXR1cm4gYX1pKFFrYSwiZm9sZFN0cmluZyIpO2Z1bmN0aW9uIEVKdCh0LGUpe2lmKHQ9PT0iInx8dFswXT09PSIgIilyZXR1cm4gdDtmb3IodmFyIHI9LyBbXiBdL2csYSxzPTAsbixvPTAsbD0wLGM9IiI7YT1yLmV4ZWModCk7KWw9YS5pbmRleCxsLXM+ZSYmKG49bz5zP286bCxjKz1gCmArdC5zbGljZShzLG4pLHM9bisxKSxvPWw7cmV0dXJuIGMrPWAKYCx0Lmxlbmd0aC1zPmUmJm8+cz9jKz10LnNsaWNlKHMsbykrYApgK3Quc2xpY2UobysxKTpjKz10LnNsaWNlKHMpLGMuc2xpY2UoMSl9aShFSnQsImZvbGRMaW5lIik7ZnVuY3Rpb24gWGthKHQpe2Zvcih2YXIgZT0iIixyLGEscyxuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKHI9dC5jaGFyQ29kZUF0KG4pLHI+PTU1Mjk2JiZyPD01NjMxOSYmKGE9dC5jaGFyQ29kZUF0KG4rMSksYT49NTYzMjAmJmE8PTU3MzQzKSl7ZSs9U0p0KChyLTU1Mjk2KSoxMDI0K2EtNTYzMjArNjU1MzYpLG4rKztjb250aW51ZX1zPWdvW3JdLGUrPSFzJiZHdihyKT90W25dOnN8fFNKdChyKX1yZXR1cm4gZX1pKFhrYSwiZXNjYXBlU3RyaW5nIik7ZnVuY3Rpb24gSmthKHQsZSxyKXt2YXIgYT0iIixzPXQudGFnLG4sbztmb3Iobj0wLG89ci5sZW5ndGg7bjxvO24rPTEpRDYodCxlLHJbbl0sITEsITEpJiYobiE9PTAmJihhKz0iLCIrKHQuY29uZGVuc2VGbG93PyIiOiIgIikpLGErPXQuZHVtcCk7dC50YWc9cyx0LmR1bXA9IlsiK2ErIl0ifWkoSmthLCJ3cml0ZUZsb3dTZXF1ZW5jZSIpO2Z1bmN0aW9uIGVTYSh0LGUscixhKXt2YXIgcz0iIixuPXQudGFnLG8sbDtmb3Iobz0wLGw9ci5sZW5ndGg7bzxsO28rPTEpRDYodCxlKzEscltvXSwhMCwhMCkmJigoIWF8fG8hPT0wKSYmKHMrPURUZSh0LGUpKSx0LmR1bXAmJlR6PT09dC5kdW1wLmNoYXJDb2RlQXQoMCk/cys9Ii0iOnMrPSItICIscys9dC5kdW1wKTt0LnRhZz1uLHQuZHVtcD1zfHwiW10ifWkoZVNhLCJ3cml0ZUJsb2NrU2VxdWVuY2UiKTtmdW5jdGlvbiB0U2EodCxlLHIpe3ZhciBhPSIiLHM9dC50YWcsbj1PYmplY3Qua2V5cyhyKSxvLGwsYyxkLGY7Zm9yKG89MCxsPW4ubGVuZ3RoO288bDtvKz0xKWY9IiIsbyE9PTAmJihmKz0iLCAiKSx0LmNvbmRlbnNlRmxvdyYmKGYrPSciJyksYz1uW29dLGQ9cltjXSxENih0LGUsYywhMSwhMSkmJih0LmR1bXAubGVuZ3RoPjEwMjQmJihmKz0iPyAiKSxmKz10LmR1bXArKHQuY29uZGVuc2VGbG93PyciJzoiIikrIjoiKyh0LmNvbmRlbnNlRmxvdz8iIjoiICIpLEQ2KHQsZSxkLCExLCExKSYmKGYrPXQuZHVtcCxhKz1mKSk7dC50YWc9cyx0LmR1bXA9InsiK2ErIn0ifWkodFNhLCJ3cml0ZUZsb3dNYXBwaW5nIik7ZnVuY3Rpb24gclNhKHQsZSxyLGEpe3ZhciBzPSIiLG49dC50YWcsbz1PYmplY3Qua2V5cyhyKSxsLGMsZCxmLHAsaDtpZih0LnNvcnRLZXlzPT09ITApby5zb3J0KCk7ZWxzZSBpZih0eXBlb2YgdC5zb3J0S2V5cz09ImZ1bmN0aW9uIilvLnNvcnQodC5zb3J0S2V5cyk7ZWxzZSBpZih0LnNvcnRLZXlzKXRocm93IG5ldyBfeigic29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbiIpO2ZvcihsPTAsYz1vLmxlbmd0aDtsPGM7bCs9MSloPSIiLCghYXx8bCE9PTApJiYoaCs9RFRlKHQsZSkpLGQ9b1tsXSxmPXJbZF0sRDYodCxlKzEsZCwhMCwhMCwhMCkmJihwPXQudGFnIT09bnVsbCYmdC50YWchPT0iPyJ8fHQuZHVtcCYmdC5kdW1wLmxlbmd0aD4xMDI0LHAmJih0LmR1bXAmJlR6PT09dC5kdW1wLmNoYXJDb2RlQXQoMCk/aCs9Ij8iOmgrPSI/ICIpLGgrPXQuZHVtcCxwJiYoaCs9RFRlKHQsZSkpLEQ2KHQsZSsxLGYsITAscCkmJih0LmR1bXAmJlR6PT09dC5kdW1wLmNoYXJDb2RlQXQoMCk/aCs9IjoiOmgrPSI6ICIsaCs9dC5kdW1wLHMrPWgpKTt0LnRhZz1uLHQuZHVtcD1zfHwie30ifWkoclNhLCJ3cml0ZUJsb2NrTWFwcGluZyIpO2Z1bmN0aW9uIElKdCh0LGUscil7dmFyIGEscyxuLG8sbCxjO2ZvcihzPXI/dC5leHBsaWNpdFR5cGVzOnQuaW1wbGljaXRUeXBlcyxuPTAsbz1zLmxlbmd0aDtuPG87bis9MSlpZihsPXNbbl0sKGwuaW5zdGFuY2VPZnx8bC5wcmVkaWNhdGUpJiYoIWwuaW5zdGFuY2VPZnx8dHlwZW9mIGU9PSJvYmplY3QiJiZlIGluc3RhbmNlb2YgbC5pbnN0YW5jZU9mKSYmKCFsLnByZWRpY2F0ZXx8bC5wcmVkaWNhdGUoZSkpKXtpZih0LnRhZz1yP2wudGFnOiI/IixsLnJlcHJlc2VudCl7aWYoYz10LnN0eWxlTWFwW2wudGFnXXx8bC5kZWZhdWx0U3R5bGUsaEp0LmNhbGwobC5yZXByZXNlbnQpPT09IltvYmplY3QgRnVuY3Rpb25dIilhPWwucmVwcmVzZW50KGUsYyk7ZWxzZSBpZihtSnQuY2FsbChsLnJlcHJlc2VudCxjKSlhPWwucmVwcmVzZW50W2NdKGUsYyk7ZWxzZSB0aHJvdyBuZXcgX3ooIiE8IitsLnRhZysnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgIicrYysnIiBzdHlsZScpO3QuZHVtcD1hfXJldHVybiEwfXJldHVybiExfWkoSUp0LCJkZXRlY3RUeXBlIik7ZnVuY3Rpb24gRDYodCxlLHIsYSxzLG4pe3QudGFnPW51bGwsdC5kdW1wPXIsSUp0KHQsciwhMSl8fElKdCh0LHIsITApO3ZhciBvPWhKdC5jYWxsKHQuZHVtcCk7YSYmKGE9dC5mbG93TGV2ZWw8MHx8dC5mbG93TGV2ZWw+ZSk7dmFyIGw9bz09PSJbb2JqZWN0IE9iamVjdF0ifHxvPT09IltvYmplY3QgQXJyYXldIixjLGQ7aWYobCYmKGM9dC5kdXBsaWNhdGVzLmluZGV4T2YociksZD1jIT09LTEpLCh0LnRhZyE9PW51bGwmJnQudGFnIT09Ij8ifHxkfHx0LmluZGVudCE9PTImJmU+MCkmJihzPSExKSxkJiZ0LnVzZWREdXBsaWNhdGVzW2NdKXQuZHVtcD0iKnJlZl8iK2M7ZWxzZXtpZihsJiZkJiYhdC51c2VkRHVwbGljYXRlc1tjXSYmKHQudXNlZER1cGxpY2F0ZXNbY109ITApLG89PT0iW29iamVjdCBPYmplY3RdIilhJiZPYmplY3Qua2V5cyh0LmR1bXApLmxlbmd0aCE9PTA/KHJTYSh0LGUsdC5kdW1wLHMpLGQmJih0LmR1bXA9IiZyZWZfIitjK3QuZHVtcCkpOih0U2EodCxlLHQuZHVtcCksZCYmKHQuZHVtcD0iJnJlZl8iK2MrIiAiK3QuZHVtcCkpO2Vsc2UgaWYobz09PSJbb2JqZWN0IEFycmF5XSIpe3ZhciBmPXQubm9BcnJheUluZGVudCYmZT4wP2UtMTplO2EmJnQuZHVtcC5sZW5ndGghPT0wPyhlU2EodCxmLHQuZHVtcCxzKSxkJiYodC5kdW1wPSImcmVmXyIrYyt0LmR1bXApKTooSmthKHQsZix0LmR1bXApLGQmJih0LmR1bXA9IiZyZWZfIitjKyIgIit0LmR1bXApKX1lbHNlIGlmKG89PT0iW29iamVjdCBTdHJpbmddIil0LnRhZyE9PSI/IiYmWmthKHQsdC5kdW1wLGUsbik7ZWxzZXtpZih0LnNraXBJbnZhbGlkKXJldHVybiExO3Rocm93IG5ldyBfeigidW5hY2NlcHRhYmxlIGtpbmQgb2YgYW4gb2JqZWN0IHRvIGR1bXAgIitvKX10LnRhZyE9PW51bGwmJnQudGFnIT09Ij8iJiYodC5kdW1wPSIhPCIrdC50YWcrIj4gIit0LmR1bXApfXJldHVybiEwfWkoRDYsIndyaXRlTm9kZSIpO2Z1bmN0aW9uIGFTYSh0LGUpe3ZhciByPVtdLGE9W10scyxuO2ZvcihBVGUodCxyLGEpLHM9MCxuPWEubGVuZ3RoO3M8bjtzKz0xKWUuZHVwbGljYXRlcy5wdXNoKHJbYVtzXV0pO2UudXNlZER1cGxpY2F0ZXM9bmV3IEFycmF5KG4pfWkoYVNhLCJnZXREdXBsaWNhdGVSZWZlcmVuY2VzIik7ZnVuY3Rpb24gQVRlKHQsZSxyKXt2YXIgYSxzLG47aWYodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IilpZihzPWUuaW5kZXhPZih0KSxzIT09LTEpci5pbmRleE9mKHMpPT09LTEmJnIucHVzaChzKTtlbHNlIGlmKGUucHVzaCh0KSxBcnJheS5pc0FycmF5KHQpKWZvcihzPTAsbj10Lmxlbmd0aDtzPG47cys9MSlBVGUodFtzXSxlLHIpO2Vsc2UgZm9yKGE9T2JqZWN0LmtleXModCkscz0wLG49YS5sZW5ndGg7czxuO3MrPTEpQVRlKHRbYVtzXV0sZSxyKX1pKEFUZSwiaW5zcGVjdE5vZGUiKTtmdW5jdGlvbiBQSnQodCxlKXtlPWV8fHt9O3ZhciByPW5ldyBVa2EoZSk7cmV0dXJuIHIubm9SZWZzfHxhU2EodCxyKSxENihyLDAsdCwhMCwhMCk/ci5kdW1wK2AKYDoiIn1pKFBKdCwiZHVtcCIpO2Z1bmN0aW9uIGlTYSh0LGUpe3JldHVybiBQSnQodCx6ei5leHRlbmQoe3NjaGVtYTp6a2F9LGUpKX1pKGlTYSwic2FmZUR1bXAiKSxFVGUuZXhwb3J0cy5kdW1wPVBKdCxFVGUuZXhwb3J0cy5zYWZlRHVtcD1pU2F9KTt2YXIgUkp0PU50KCgkb24sRmkpPT57InVzZSBzdHJpY3QiO3ZhciBOZGU9Zkp0KCksT0p0PU5KdCgpO2Z1bmN0aW9uIE9kZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIkZ1bmN0aW9uICIrdCsiIGlzIGRlcHJlY2F0ZWQgYW5kIGNhbm5vdCBiZSB1c2VkLiIpfX1pKE9kZSwiZGVwcmVjYXRlZCIpLEZpLmV4cG9ydHMuVHlwZT1YcygpLEZpLmV4cG9ydHMuU2NoZW1hPXo2KCksRmkuZXhwb3J0cy5GQUlMU0FGRV9TQ0hFTUE9TGRlKCksRmkuZXhwb3J0cy5KU09OX1NDSEVNQT1NVGUoKSxGaS5leHBvcnRzLkNPUkVfU0NIRU1BPUNUZSgpLEZpLmV4cG9ydHMuREVGQVVMVF9TQUZFX1NDSEVNQT1WdigpLEZpLmV4cG9ydHMuREVGQVVMVF9GVUxMX1NDSEVNQT1NeigpLEZpLmV4cG9ydHMubG9hZD1OZGUubG9hZCxGaS5leHBvcnRzLmxvYWRBbGw9TmRlLmxvYWRBbGwsRmkuZXhwb3J0cy5zYWZlTG9hZD1OZGUuc2FmZUxvYWQsRmkuZXhwb3J0cy5zYWZlTG9hZEFsbD1OZGUuc2FmZUxvYWRBbGwsRmkuZXhwb3J0cy5kdW1wPU9KdC5kdW1wLEZpLmV4cG9ydHMuc2FmZUR1bXA9T0p0LnNhZmVEdW1wLEZpLmV4cG9ydHMuWUFNTEV4Y2VwdGlvbj1IdigpLEZpLmV4cG9ydHMuTUlOSU1BTF9TQ0hFTUE9TGRlKCksRmkuZXhwb3J0cy5TQUZFX1NDSEVNQT1WdigpLEZpLmV4cG9ydHMuREVGQVVMVF9TQ0hFTUE9TXooKSxGaS5leHBvcnRzLnNjYW49T2RlKCJzY2FuIiksRmkuZXhwb3J0cy5wYXJzZT1PZGUoInBhcnNlIiksRmkuZXhwb3J0cy5jb21wb3NlPU9kZSgiY29tcG9zZSIpLEZpLmV4cG9ydHMuYWRkQ29uc3RydWN0b3I9T2RlKCJhZGRDb25zdHJ1Y3RvciIpfSk7dmFyIEJKdD1OdCgoRW9uLEZKdCk9PnsidXNlIHN0cmljdCI7dmFyIHNTYT1SSnQoKTtGSnQuZXhwb3J0cz1zU2F9KTt2YXIgSEp0PU50KFUwPT57InVzZSBzdHJpY3QiO3ZhciBuU2E9VTAmJlUwLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKHQsZSxyLGEpe2E9PT12b2lkIDAmJihhPXIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGEse2VudW1lcmFibGU6ITAsZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gZVtyXX0sImdldCIpfSl9KTooZnVuY3Rpb24odCxlLHIsYSl7YT09PXZvaWQgMCYmKGE9ciksdFthXT1lW3JdfSkpLG9TYT1VMCYmVTAuX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6ZX0pfSk6ZnVuY3Rpb24odCxlKXt0LmRlZmF1bHQ9ZX0pLGxTYT1VMCYmVTAuX19pbXBvcnRTdGFyfHxmdW5jdGlvbih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIHIgaW4gdClyIT09ImRlZmF1bHQiJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZuU2EoZSx0LHIpO3JldHVybiBvU2EoZSx0KSxlfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVTAsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFUwLmpzWWFtbD12b2lkIDA7dmFyIGNTYT1sU2EoQkp0KCkpO1UwLmpzWWFtbD1jU2F9KTt2YXIgVkp0PU50KFVsPT57InVzZSBzdHJpY3QiO3ZhciBkU2E9VWwmJlVsLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKHQsZSxyLGEpe2E9PT12b2lkIDAmJihhPXIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGEse2VudW1lcmFibGU6ITAsZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4gZVtyXX0sImdldCIpfSl9KTooZnVuY3Rpb24odCxlLHIsYSl7YT09PXZvaWQgMCYmKGE9ciksdFthXT1lW3JdfSkpLHVTYT1VbCYmVWwuX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6ZX0pfSk6ZnVuY3Rpb24odCxlKXt0LmRlZmF1bHQ9ZX0pLHBTYT1VbCYmVWwuX19pbXBvcnRTdGFyfHxmdW5jdGlvbih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIHIgaW4gdClyIT09ImRlZmF1bHQiJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZkU2EoZSx0LHIpO3JldHVybiB1U2EoZSx0KSxlfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVWwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFVsLm9iamVjdFRvWWFtbFN0cmluZz1VbC55YW1sU3RyaW5nVG9PYmplY3Q9dm9pZCAwO3ZhciBxSnQ9cFNhKEhKdCgpKTtVbC55YW1sU3RyaW5nVG9PYmplY3Q9YXN5bmModCxlPXt9KT0+cUp0LmpzWWFtbC5zYWZlTG9hZCh0KSxVbC5vYmplY3RUb1lhbWxTdHJpbmc9YXN5bmModCxlPXt9KT0+cUp0LmpzWWFtbC5zYWZlRHVtcCh0KX0pO2Z1bmN0aW9uIElUZSh0KXtpZih0KXRocm93IHR9dmFyIGpKdD11KCgpPT57aShJVGUsImJhaWwiKX0pO3ZhciBKSnQ9TnQoKEJvbixYSnQpPT57InVzZSBzdHJpY3QiO3ZhciBSZGU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxVSnQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxXSnQ9T2JqZWN0LmRlZmluZVByb3BlcnR5LEdKdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFlKdD1pKGZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgQXJyYXkuaXNBcnJheT09ImZ1bmN0aW9uIj9BcnJheS5pc0FycmF5KGUpOlVKdC5jYWxsKGUpPT09IltvYmplY3QgQXJyYXldIn0sImlzQXJyYXkiKSxLSnQ9aShmdW5jdGlvbihlKXtpZighZXx8VUp0LmNhbGwoZSkhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTt2YXIgcj1SZGUuY2FsbChlLCJjb25zdHJ1Y3RvciIpLGE9ZS5jb25zdHJ1Y3RvciYmZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUmJlJkZS5jYWxsKGUuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIik7aWYoZS5jb25zdHJ1Y3RvciYmIXImJiFhKXJldHVybiExO3ZhciBzO2ZvcihzIGluIGUpO3JldHVybiB0eXBlb2Ygcz4idSJ8fFJkZS5jYWxsKGUscyl9LCJpc1BsYWluT2JqZWN0IiksWkp0PWkoZnVuY3Rpb24oZSxyKXtXSnQmJnIubmFtZT09PSJfX3Byb3RvX18iP1dKdChlLHIubmFtZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsdmFsdWU6ci5uZXdWYWx1ZSx3cml0YWJsZTohMH0pOmVbci5uYW1lXT1yLm5ld1ZhbHVlfSwic2V0UHJvcGVydHkiKSxRSnQ9aShmdW5jdGlvbihlLHIpe2lmKHI9PT0iX19wcm90b19fIilpZihSZGUuY2FsbChlLHIpKXtpZihHSnQpcmV0dXJuIEdKdChlLHIpLnZhbHVlfWVsc2UgcmV0dXJuO3JldHVybiBlW3JdfSwiZ2V0UHJvcGVydHkiKTtYSnQuZXhwb3J0cz1pKGZ1bmN0aW9uIHQoKXt2YXIgZSxyLGEscyxuLG8sbD1hcmd1bWVudHNbMF0sYz0xLGQ9YXJndW1lbnRzLmxlbmd0aCxmPSExO2Zvcih0eXBlb2YgbD09ImJvb2xlYW4iJiYoZj1sLGw9YXJndW1lbnRzWzFdfHx7fSxjPTIpLChsPT1udWxsfHx0eXBlb2YgbCE9Im9iamVjdCImJnR5cGVvZiBsIT0iZnVuY3Rpb24iKSYmKGw9e30pO2M8ZDsrK2MpaWYoZT1hcmd1bWVudHNbY10sZSE9bnVsbClmb3IociBpbiBlKWE9UUp0KGwscikscz1RSnQoZSxyKSxsIT09cyYmKGYmJnMmJihLSnQocyl8fChuPVlKdChzKSkpPyhuPyhuPSExLG89YSYmWUp0KGEpP2E6W10pOm89YSYmS0p0KGEpP2E6e30sWkp0KGwse25hbWU6cixuZXdWYWx1ZTp0KGYsbyxzKX0pKTp0eXBlb2YgczwidSImJlpKdChsLHtuYW1lOnIsbmV3VmFsdWU6c30pKTtyZXR1cm4gbH0sImV4dGVuZCIpfSk7dmFyIG1wPXUoKCk9Pnt9KTtmdW5jdGlvbiBMeih0KXtpZih0eXBlb2YgdCE9Im9iamVjdCJ8fHQ9PT1udWxsKXJldHVybiExO2xldCBlPU9iamVjdC5nZXRQcm90b3R5cGVPZih0KTtyZXR1cm4oZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1udWxsKSYmIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gdCkmJiEoU3ltYm9sLml0ZXJhdG9yIGluIHQpfXZhciBlZXI9dSgoKT0+e2koTHosImlzUGxhaW5PYmplY3QiKX0pO2Z1bmN0aW9uIFBUZSgpe2xldCB0PVtdLGU9e3J1bjpyLHVzZTphfTtyZXR1cm4gZTtmdW5jdGlvbiByKC4uLnMpe2xldCBuPS0xLG89cy5wb3AoKTtpZih0eXBlb2YgbyE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiBhcyBsYXN0IGFyZ3VtZW50LCBub3QgIitvKTtsKG51bGwsLi4ucyk7ZnVuY3Rpb24gbChjLC4uLmQpe2xldCBmPXRbKytuXSxwPS0xO2lmKGMpe28oYyk7cmV0dXJufWZvcig7KytwPHMubGVuZ3RoOykoZFtwXT09PW51bGx8fGRbcF09PT12b2lkIDApJiYoZFtwXT1zW3BdKTtzPWQsZj90ZXIoZixsKSguLi5kKTpvKG51bGwsLi4uZCl9aShsLCJuZXh0Iil9ZnVuY3Rpb24gYShzKXtpZih0eXBlb2YgcyE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICIrcyk7cmV0dXJuIHQucHVzaChzKSxlfX1mdW5jdGlvbiB0ZXIodCxlKXtsZXQgcjtyZXR1cm4gYTtmdW5jdGlvbiBhKC4uLm8pe2xldCBsPXQubGVuZ3RoPm8ubGVuZ3RoLGM7bCYmby5wdXNoKHMpO3RyeXtjPXQuYXBwbHkodGhpcyxvKX1jYXRjaChkKXtsZXQgZj1kO2lmKGwmJnIpdGhyb3cgZjtyZXR1cm4gcyhmKX1sfHwoYyYmYy50aGVuJiZ0eXBlb2YgYy50aGVuPT0iZnVuY3Rpb24iP2MudGhlbihuLHMpOmMgaW5zdGFuY2VvZiBFcnJvcj9zKGMpOm4oYykpfWZ1bmN0aW9uIHMobywuLi5sKXtyfHwocj0hMCxlKG8sLi4ubCkpfWZ1bmN0aW9uIG4obyl7cyhudWxsLG8pfX12YXIgcmVyPXUoKCk9PntpKFBUZSwidHJvdWdoIik7aSh0ZXIsIndyYXAiKX0pO3ZhciBhZXI9dSgoKT0+e3JlcigpfSk7ZnVuY3Rpb24gZ3AodCl7cmV0dXJuIXR8fHR5cGVvZiB0IT0ib2JqZWN0Ij8iIjoicG9zaXRpb24iaW4gdHx8InR5cGUiaW4gdD9pZXIodC5wb3NpdGlvbik6InN0YXJ0ImluIHR8fCJlbmQiaW4gdD9pZXIodCk6ImxpbmUiaW4gdHx8ImNvbHVtbiJpbiB0P05UZSh0KToiIn1mdW5jdGlvbiBOVGUodCl7cmV0dXJuIHNlcih0JiZ0LmxpbmUpKyI6IitzZXIodCYmdC5jb2x1bW4pfWZ1bmN0aW9uIGllcih0KXtyZXR1cm4gTlRlKHQmJnQuc3RhcnQpKyItIitOVGUodCYmdC5lbmQpfWZ1bmN0aW9uIHNlcih0KXtyZXR1cm4gdCYmdHlwZW9mIHQ9PSJudW1iZXIiP3Q6MX12YXIgbmVyPXUoKCk9PntpKGdwLCJzdHJpbmdpZnlQb3NpdGlvbiIpO2koTlRlLCJwb2ludCIpO2koaWVyLCJwb3NpdGlvbiIpO2koc2VyLCJpbmRleCIpfSk7dmFyIE9UZT11KCgpPT57bmVyKCl9KTt2YXIgYm4sb2VyPXUoKCk9PntPVGUoKTtibj1jbGFzcyBleHRlbmRzIEVycm9ye3N0YXRpY3tpKHRoaXMsIlZGaWxlTWVzc2FnZSIpfWNvbnN0cnVjdG9yKGUscixhKXtzdXBlcigpLHR5cGVvZiByPT0ic3RyaW5nIiYmKGE9cixyPXZvaWQgMCk7bGV0IHM9IiIsbj17fSxvPSExO2lmKHImJigibGluZSJpbiByJiYiY29sdW1uImluIHI/bj17cGxhY2U6cn06InN0YXJ0ImluIHImJiJlbmQiaW4gcj9uPXtwbGFjZTpyfToidHlwZSJpbiByP249e2FuY2VzdG9yczpbcl0scGxhY2U6ci5wb3NpdGlvbn06bj17Li4ucn0pLHR5cGVvZiBlPT0ic3RyaW5nIj9zPWU6IW4uY2F1c2UmJmUmJihvPSEwLHM9ZS5tZXNzYWdlLG4uY2F1c2U9ZSksIW4ucnVsZUlkJiYhbi5zb3VyY2UmJnR5cGVvZiBhPT0ic3RyaW5nIil7bGV0IGM9YS5pbmRleE9mKCI6Iik7Yz09PS0xP24ucnVsZUlkPWE6KG4uc291cmNlPWEuc2xpY2UoMCxjKSxuLnJ1bGVJZD1hLnNsaWNlKGMrMSkpfWlmKCFuLnBsYWNlJiZuLmFuY2VzdG9ycyYmbi5hbmNlc3RvcnMpe2xldCBjPW4uYW5jZXN0b3JzW24uYW5jZXN0b3JzLmxlbmd0aC0xXTtjJiYobi5wbGFjZT1jLnBvc2l0aW9uKX1sZXQgbD1uLnBsYWNlJiYic3RhcnQiaW4gbi5wbGFjZT9uLnBsYWNlLnN0YXJ0Om4ucGxhY2U7dGhpcy5hbmNlc3RvcnM9bi5hbmNlc3RvcnN8fHZvaWQgMCx0aGlzLmNhdXNlPW4uY2F1c2V8fHZvaWQgMCx0aGlzLmNvbHVtbj1sP2wuY29sdW1uOnZvaWQgMCx0aGlzLmZhdGFsPXZvaWQgMCx0aGlzLmZpbGU9IiIsdGhpcy5tZXNzYWdlPXMsdGhpcy5saW5lPWw/bC5saW5lOnZvaWQgMCx0aGlzLm5hbWU9Z3Aobi5wbGFjZSl8fCIxOjEiLHRoaXMucGxhY2U9bi5wbGFjZXx8dm9pZCAwLHRoaXMucmVhc29uPXRoaXMubWVzc2FnZSx0aGlzLnJ1bGVJZD1uLnJ1bGVJZHx8dm9pZCAwLHRoaXMuc291cmNlPW4uc291cmNlfHx2b2lkIDAsdGhpcy5zdGFjaz1vJiZuLmNhdXNlJiZ0eXBlb2Ygbi5jYXVzZS5zdGFjaz09InN0cmluZyI/bi5jYXVzZS5zdGFjazoiIix0aGlzLmFjdHVhbD12b2lkIDAsdGhpcy5leHBlY3RlZD12b2lkIDAsdGhpcy5ub3RlPXZvaWQgMCx0aGlzLnVybD12b2lkIDB9fTtibi5wcm90b3R5cGUuZmlsZT0iIixibi5wcm90b3R5cGUubmFtZT0iIixibi5wcm90b3R5cGUucmVhc29uPSIiLGJuLnByb3RvdHlwZS5tZXNzYWdlPSIiLGJuLnByb3RvdHlwZS5zdGFjaz0iIixibi5wcm90b3R5cGUuY29sdW1uPXZvaWQgMCxibi5wcm90b3R5cGUubGluZT12b2lkIDAsYm4ucHJvdG90eXBlLmFuY2VzdG9ycz12b2lkIDAsYm4ucHJvdG90eXBlLmNhdXNlPXZvaWQgMCxibi5wcm90b3R5cGUuZmF0YWw9dm9pZCAwLGJuLnByb3RvdHlwZS5wbGFjZT12b2lkIDAsYm4ucHJvdG90eXBlLnJ1bGVJZD12b2lkIDAsYm4ucHJvdG90eXBlLnNvdXJjZT12b2lkIDB9KTt2YXIgbGVyPXUoKCk9PntvZXIoKX0pO2Z1bmN0aW9uIGZTYSh0LGUpe2lmKGUhPT12b2lkIDAmJnR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCciZXh0IiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJyk7RHoodCk7bGV0IHI9MCxhPS0xLHM9dC5sZW5ndGgsbjtpZihlPT09dm9pZCAwfHxlLmxlbmd0aD09PTB8fGUubGVuZ3RoPnQubGVuZ3RoKXtmb3IoO3MtLTspaWYodC5jb2RlUG9pbnRBdChzKT09PTQ3KXtpZihuKXtyPXMrMTticmVha319ZWxzZSBhPDAmJihuPSEwLGE9cysxKTtyZXR1cm4gYTwwPyIiOnQuc2xpY2UocixhKX1pZihlPT09dClyZXR1cm4iIjtsZXQgbz0tMSxsPWUubGVuZ3RoLTE7Zm9yKDtzLS07KWlmKHQuY29kZVBvaW50QXQocyk9PT00Nyl7aWYobil7cj1zKzE7YnJlYWt9fWVsc2UgbzwwJiYobj0hMCxvPXMrMSksbD4tMSYmKHQuY29kZVBvaW50QXQocyk9PT1lLmNvZGVQb2ludEF0KGwtLSk/bDwwJiYoYT1zKToobD0tMSxhPW8pKTtyZXR1cm4gcj09PWE/YT1vOmE8MCYmKGE9dC5sZW5ndGgpLHQuc2xpY2UocixhKX1mdW5jdGlvbiBoU2EodCl7aWYoRHoodCksdC5sZW5ndGg9PT0wKXJldHVybiIuIjtsZXQgZT0tMSxyPXQubGVuZ3RoLGE7Zm9yKDstLXI7KWlmKHQuY29kZVBvaW50QXQocik9PT00Nyl7aWYoYSl7ZT1yO2JyZWFrfX1lbHNlIGF8fChhPSEwKTtyZXR1cm4gZTwwP3QuY29kZVBvaW50QXQoMCk9PT00Nz8iLyI6Ii4iOmU9PT0xJiZ0LmNvZGVQb2ludEF0KDApPT09NDc/Ii8vIjp0LnNsaWNlKDAsZSl9ZnVuY3Rpb24gbVNhKHQpe0R6KHQpO2xldCBlPXQubGVuZ3RoLHI9LTEsYT0wLHM9LTEsbj0wLG87Zm9yKDtlLS07KXtsZXQgbD10LmNvZGVQb2ludEF0KGUpO2lmKGw9PT00Nyl7aWYobyl7YT1lKzE7YnJlYWt9Y29udGludWV9cjwwJiYobz0hMCxyPWUrMSksbD09PTQ2P3M8MD9zPWU6biE9PTEmJihuPTEpOnM+LTEmJihuPS0xKX1yZXR1cm4gczwwfHxyPDB8fG49PT0wfHxuPT09MSYmcz09PXItMSYmcz09PWErMT8iIjp0LnNsaWNlKHMscil9ZnVuY3Rpb24gZ1NhKC4uLnQpe2xldCBlPS0xLHI7Zm9yKDsrK2U8dC5sZW5ndGg7KUR6KHRbZV0pLHRbZV0mJihyPXI9PT12b2lkIDA/dFtlXTpyKyIvIit0W2VdKTtyZXR1cm4gcj09PXZvaWQgMD8iLiI6YlNhKHIpfWZ1bmN0aW9uIGJTYSh0KXtEeih0KTtsZXQgZT10LmNvZGVQb2ludEF0KDApPT09NDcscj14U2EodCwhZSk7cmV0dXJuIHIubGVuZ3RoPT09MCYmIWUmJihyPSIuIiksci5sZW5ndGg+MCYmdC5jb2RlUG9pbnRBdCh0Lmxlbmd0aC0xKT09PTQ3JiYocis9Ii8iKSxlPyIvIityOnJ9ZnVuY3Rpb24geFNhKHQsZSl7bGV0IHI9IiIsYT0wLHM9LTEsbj0wLG89LTEsbCxjO2Zvcig7KytvPD10Lmxlbmd0aDspe2lmKG88dC5sZW5ndGgpbD10LmNvZGVQb2ludEF0KG8pO2Vsc2V7aWYobD09PTQ3KWJyZWFrO2w9NDd9aWYobD09PTQ3KXtpZighKHM9PT1vLTF8fG49PT0xKSlpZihzIT09by0xJiZuPT09Mil7aWYoci5sZW5ndGg8Mnx8YSE9PTJ8fHIuY29kZVBvaW50QXQoci5sZW5ndGgtMSkhPT00Nnx8ci5jb2RlUG9pbnRBdChyLmxlbmd0aC0yKSE9PTQ2KXtpZihyLmxlbmd0aD4yKXtpZihjPXIubGFzdEluZGV4T2YoIi8iKSxjIT09ci5sZW5ndGgtMSl7YzwwPyhyPSIiLGE9MCk6KHI9ci5zbGljZSgwLGMpLGE9ci5sZW5ndGgtMS1yLmxhc3RJbmRleE9mKCIvIikpLHM9byxuPTA7Y29udGludWV9fWVsc2UgaWYoci5sZW5ndGg+MCl7cj0iIixhPTAscz1vLG49MDtjb250aW51ZX19ZSYmKHI9ci5sZW5ndGg+MD9yKyIvLi4iOiIuLiIsYT0yKX1lbHNlIHIubGVuZ3RoPjA/cis9Ii8iK3Quc2xpY2UocysxLG8pOnI9dC5zbGljZShzKzEsbyksYT1vLXMtMTtzPW8sbj0wfWVsc2UgbD09PTQ2JiZuPi0xP24rKzpuPS0xfXJldHVybiByfWZ1bmN0aW9uIER6KHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICIrSlNPTi5zdHJpbmdpZnkodCkpfXZhciByYyxjZXI9dSgoKT0+e3JjPXtiYXNlbmFtZTpmU2EsZGlybmFtZTpoU2EsZXh0bmFtZTptU2Esam9pbjpnU2Esc2VwOiIvIn07aShmU2EsImJhc2VuYW1lIik7aShoU2EsImRpcm5hbWUiKTtpKG1TYSwiZXh0bmFtZSIpO2koZ1NhLCJqb2luIik7aShiU2EsIm5vcm1hbGl6ZSIpO2koeFNhLCJub3JtYWxpemVTdHJpbmciKTtpKER6LCJhc3NlcnRQYXRoIil9KTtmdW5jdGlvbiB2U2EoKXtyZXR1cm4iLyJ9dmFyIGRlcix1ZXI9dSgoKT0+e2Rlcj17Y3dkOnZTYX07aSh2U2EsImN3ZCIpfSk7ZnVuY3Rpb24gWXYodCl7cmV0dXJuISEodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IiYmImhyZWYiaW4gdCYmdC5ocmVmJiYicHJvdG9jb2wiaW4gdCYmdC5wcm90b2NvbCYmdC5hdXRoPT09dm9pZCAwKX12YXIgUlRlPXUoKCk9PntpKFl2LCJpc1VybCIpfSk7ZnVuY3Rpb24gcGVyKHQpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIil0PW5ldyBVUkwodCk7ZWxzZSBpZighWXYodCkpe2xldCBlPW5ldyBUeXBlRXJyb3IoJ1RoZSAicGF0aCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnK3QrImAiKTt0aHJvdyBlLmNvZGU9IkVSUl9JTlZBTElEX0FSR19UWVBFIixlfWlmKHQucHJvdG9jb2whPT0iZmlsZToiKXtsZXQgZT1uZXcgVHlwZUVycm9yKCJUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUiKTt0aHJvdyBlLmNvZGU9IkVSUl9JTlZBTElEX1VSTF9TQ0hFTUUiLGV9cmV0dXJuIHlTYSh0KX1mdW5jdGlvbiB5U2EodCl7aWYodC5ob3N0bmFtZSE9PSIiKXtsZXQgYT1uZXcgVHlwZUVycm9yKCdGaWxlIFVSTCBob3N0IG11c3QgYmUgImxvY2FsaG9zdCIgb3IgZW1wdHkgb24gZGFyd2luJyk7dGhyb3cgYS5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUIixhfWxldCBlPXQucGF0aG5hbWUscj0tMTtmb3IoOysrcjxlLmxlbmd0aDspaWYoZS5jb2RlUG9pbnRBdChyKT09PTM3JiZlLmNvZGVQb2ludEF0KHIrMSk9PT01MCl7bGV0IGE9ZS5jb2RlUG9pbnRBdChyKzIpO2lmKGE9PT03MHx8YT09PTEwMil7bGV0IHM9bmV3IFR5cGVFcnJvcigiRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzIik7dGhyb3cgcy5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9QQVRIIixzfX1yZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGUpfXZhciBmZXI9dSgoKT0+e1JUZSgpO1JUZSgpO2kocGVyLCJ1cmxUb1BhdGgiKTtpKHlTYSwiZ2V0UGF0aEZyb21VUkxQb3NpeCIpfSk7ZnVuY3Rpb24gQlRlKHQsZSl7aWYodCYmdC5pbmNsdWRlcyhyYy5zZXApKXRocm93IG5ldyBFcnJvcigiYCIrZSsiYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgIityYy5zZXArImAiKX1mdW5jdGlvbiBIVGUodCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgY2Fubm90IGJlIGVtcHR5Iil9ZnVuY3Rpb24gaGVyKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJTZXR0aW5nIGAiK2UrImAgcmVxdWlyZXMgYHBhdGhgIHRvIGJlIHNldCB0b28iKX1mdW5jdGlvbiB3U2EodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiB0JiYiYnl0ZU9mZnNldCJpbiB0KX12YXIgRlRlLCR6LG1lcj11KCgpPT57bGVyKCk7Y2VyKCk7dWVyKCk7ZmVyKCk7RlRlPVsiaGlzdG9yeSIsInBhdGgiLCJiYXNlbmFtZSIsInN0ZW0iLCJleHRuYW1lIiwiZGlybmFtZSJdLCR6PWNsYXNze3N0YXRpY3tpKHRoaXMsIlZGaWxlIil9Y29uc3RydWN0b3IoZSl7bGV0IHI7ZT9ZdihlKT9yPXtwYXRoOmV9OnR5cGVvZiBlPT0ic3RyaW5nInx8d1NhKGUpP3I9e3ZhbHVlOmV9OnI9ZTpyPXt9LHRoaXMuY3dkPSJjd2QiaW4gcj8iIjpkZXIuY3dkKCksdGhpcy5kYXRhPXt9LHRoaXMuaGlzdG9yeT1bXSx0aGlzLm1lc3NhZ2VzPVtdLHRoaXMudmFsdWUsdGhpcy5tYXAsdGhpcy5yZXN1bHQsdGhpcy5zdG9yZWQ7bGV0IGE9LTE7Zm9yKDsrK2E8RlRlLmxlbmd0aDspe2xldCBuPUZUZVthXTtuIGluIHImJnJbbl0hPT12b2lkIDAmJnJbbl0hPT1udWxsJiYodGhpc1tuXT1uPT09Imhpc3RvcnkiP1suLi5yW25dXTpyW25dKX1sZXQgcztmb3IocyBpbiByKUZUZS5pbmNsdWRlcyhzKXx8KHRoaXNbc109cltzXSl9Z2V0IGJhc2VuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP3JjLmJhc2VuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBiYXNlbmFtZShlKXtIVGUoZSwiYmFzZW5hbWUiKSxCVGUoZSwiYmFzZW5hbWUiKSx0aGlzLnBhdGg9cmMuam9pbih0aGlzLmRpcm5hbWV8fCIiLGUpfWdldCBkaXJuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP3JjLmRpcm5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGRpcm5hbWUoZSl7aGVyKHRoaXMuYmFzZW5hbWUsImRpcm5hbWUiKSx0aGlzLnBhdGg9cmMuam9pbihlfHwiIix0aGlzLmJhc2VuYW1lKX1nZXQgZXh0bmFtZSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9yYy5leHRuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBleHRuYW1lKGUpe2lmKEJUZShlLCJleHRuYW1lIiksaGVyKHRoaXMuZGlybmFtZSwiZXh0bmFtZSIpLGUpe2lmKGUuY29kZVBvaW50QXQoMCkhPT00Nil0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gIik7aWYoZS5pbmNsdWRlcygiLiIsMSkpdGhyb3cgbmV3IEVycm9yKCJgZXh0bmFtZWAgY2Fubm90IGNvbnRhaW4gbXVsdGlwbGUgZG90cyIpfXRoaXMucGF0aD1yYy5qb2luKHRoaXMuZGlybmFtZSx0aGlzLnN0ZW0rKGV8fCIiKSl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGgtMV19c2V0IHBhdGgoZSl7WXYoZSkmJihlPXBlcihlKSksSFRlKGUsInBhdGgiKSx0aGlzLnBhdGghPT1lJiZ0aGlzLmhpc3RvcnkucHVzaChlKX1nZXQgc3RlbSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9yYy5iYXNlbmFtZSh0aGlzLnBhdGgsdGhpcy5leHRuYW1lKTp2b2lkIDB9c2V0IHN0ZW0oZSl7SFRlKGUsInN0ZW0iKSxCVGUoZSwic3RlbSIpLHRoaXMucGF0aD1yYy5qb2luKHRoaXMuZGlybmFtZXx8IiIsZSsodGhpcy5leHRuYW1lfHwiIikpfWZhaWwoZSxyLGEpe2xldCBzPXRoaXMubWVzc2FnZShlLHIsYSk7dGhyb3cgcy5mYXRhbD0hMCxzfWluZm8oZSxyLGEpe2xldCBzPXRoaXMubWVzc2FnZShlLHIsYSk7cmV0dXJuIHMuZmF0YWw9dm9pZCAwLHN9bWVzc2FnZShlLHIsYSl7bGV0IHM9bmV3IGJuKGUscixhKTtyZXR1cm4gdGhpcy5wYXRoJiYocy5uYW1lPXRoaXMucGF0aCsiOiIrcy5uYW1lLHMuZmlsZT10aGlzLnBhdGgpLHMuZmF0YWw9ITEsdGhpcy5tZXNzYWdlcy5wdXNoKHMpLHN9dG9TdHJpbmcoZSl7cmV0dXJuIHRoaXMudmFsdWU9PT12b2lkIDA/IiI6dHlwZW9mIHRoaXMudmFsdWU9PSJzdHJpbmciP3RoaXMudmFsdWU6bmV3IFRleHREZWNvZGVyKGV8fHZvaWQgMCkuZGVjb2RlKHRoaXMudmFsdWUpfX07aShCVGUsImFzc2VydFBhcnQiKTtpKEhUZSwiYXNzZXJ0Tm9uRW1wdHkiKTtpKGhlciwiYXNzZXJ0UGF0aCIpO2kod1NhLCJpc1VpbnQ4QXJyYXkiKX0pO3ZhciBnZXI9dSgoKT0+e21lcigpfSk7dmFyIGJlcix4ZXI9dSgoKT0+e2Jlcj1pKChmdW5jdGlvbih0KXtsZXQgYT10aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxzPWFbdF0sbj1pKGZ1bmN0aW9uKCl7cmV0dXJuIHMuYXBwbHkobixhcmd1bWVudHMpfSwiYXBwbHkiKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKG4sYSksbn0pLCJDYWxsYWJsZUluc3RhbmNlIil9KTtmdW5jdGlvbiBWVGUodCxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrdCsiYCB3aXRob3V0IGBwYXJzZXJgIil9ZnVuY3Rpb24galRlKHQsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGAiK3QrImAgd2l0aG91dCBgY29tcGlsZXJgIil9ZnVuY3Rpb24gVVRlKHQsZSl7aWYoZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYWxsIGAiK3QrImAgb24gYSBmcm96ZW4gcHJvY2Vzc29yLlxuQ3JlYXRlIGEgbmV3IHByb2Nlc3NvciBmaXJzdCwgYnkgY2FsbGluZyBpdDogdXNlIGBwcm9jZXNzb3IoKWAgaW5zdGVhZCBvZiBgcHJvY2Vzc29yYC4iKX1mdW5jdGlvbiB2ZXIodCl7aWYoIUx6KHQpfHx0eXBlb2YgdC50eXBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBub2RlLCBnb3QgYCIrdCsiYCIpfWZ1bmN0aW9uIHllcih0LGUscil7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJgIit0KyJgIGZpbmlzaGVkIGFzeW5jLiBVc2UgYCIrZSsiYCBpbnN0ZWFkIil9ZnVuY3Rpb24gRmRlKHQpe3JldHVybiBTU2EodCk/dDpuZXcgJHoodCl9ZnVuY3Rpb24gU1NhKHQpe3JldHVybiEhKHQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmIm1lc3NhZ2UiaW4gdCYmIm1lc3NhZ2VzImluIHQpfWZ1bmN0aW9uIE1TYSh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmcifHxDU2EodCl9ZnVuY3Rpb24gQ1NhKHQpe3JldHVybiEhKHQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmImJ5dGVMZW5ndGgiaW4gdCYmImJ5dGVPZmZzZXQiaW4gdCl9dmFyIEJkZSxrU2EscVRlLEF6LHdlcj11KCgpPT57akp0KCk7QmRlPUdhKEpKdCgpLDEpO21wKCk7ZWVyKCk7YWVyKCk7Z2VyKCk7eGVyKCk7a1NhPXt9Lmhhc093blByb3BlcnR5LHFUZT1jbGFzcyB0IGV4dGVuZHMgYmVye3N0YXRpY3tpKHRoaXMsIlByb2Nlc3NvciIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoImNvcHkiKSx0aGlzLkNvbXBpbGVyPXZvaWQgMCx0aGlzLlBhcnNlcj12b2lkIDAsdGhpcy5hdHRhY2hlcnM9W10sdGhpcy5jb21waWxlcj12b2lkIDAsdGhpcy5mcmVlemVJbmRleD0tMSx0aGlzLmZyb3plbj12b2lkIDAsdGhpcy5uYW1lc3BhY2U9e30sdGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMudHJhbnNmb3JtZXJzPVBUZSgpfWNvcHkoKXtsZXQgZT1uZXcgdCxyPS0xO2Zvcig7KytyPHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2xldCBhPXRoaXMuYXR0YWNoZXJzW3JdO2UudXNlKC4uLmEpfXJldHVybiBlLmRhdGEoKDAsQmRlLmRlZmF1bHQpKCEwLHt9LHRoaXMubmFtZXNwYWNlKSksZX1kYXRhKGUscil7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9hcmd1bWVudHMubGVuZ3RoPT09Mj8oVVRlKCJkYXRhIix0aGlzLmZyb3plbiksdGhpcy5uYW1lc3BhY2VbZV09cix0aGlzKTprU2EuY2FsbCh0aGlzLm5hbWVzcGFjZSxlKSYmdGhpcy5uYW1lc3BhY2VbZV18fHZvaWQgMDplPyhVVGUoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZT1lLHRoaXMpOnRoaXMubmFtZXNwYWNlfWZyZWV6ZSgpe2lmKHRoaXMuZnJvemVuKXJldHVybiB0aGlzO2xldCBlPXRoaXM7Zm9yKDsrK3RoaXMuZnJlZXplSW5kZXg8dGhpcy5hdHRhY2hlcnMubGVuZ3RoOyl7bGV0W3IsLi4uYV09dGhpcy5hdHRhY2hlcnNbdGhpcy5mcmVlemVJbmRleF07aWYoYVswXT09PSExKWNvbnRpbnVlO2FbMF09PT0hMCYmKGFbMF09dm9pZCAwKTtsZXQgcz1yLmNhbGwoZSwuLi5hKTt0eXBlb2Ygcz09ImZ1bmN0aW9uIiYmdGhpcy50cmFuc2Zvcm1lcnMudXNlKHMpfXJldHVybiB0aGlzLmZyb3plbj0hMCx0aGlzLmZyZWV6ZUluZGV4PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx0aGlzfXBhcnNlKGUpe3RoaXMuZnJlZXplKCk7bGV0IHI9RmRlKGUpLGE9dGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyO3JldHVybiBWVGUoInBhcnNlIixhKSxhKFN0cmluZyhyKSxyKX1wcm9jZXNzKGUscil7bGV0IGE9dGhpcztyZXR1cm4gdGhpcy5mcmVlemUoKSxWVGUoInByb2Nlc3MiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksalRlKCJwcm9jZXNzIix0aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyKSxyP3Modm9pZCAwLHIpOm5ldyBQcm9taXNlKHMpO2Z1bmN0aW9uIHMobixvKXtsZXQgbD1GZGUoZSksYz1hLnBhcnNlKGwpO2EucnVuKGMsbCxmdW5jdGlvbihmLHAsaCl7aWYoZnx8IXB8fCFoKXJldHVybiBkKGYpO2xldCBtPXAsdj1hLnN0cmluZ2lmeShtLGgpO01TYSh2KT9oLnZhbHVlPXY6aC5yZXN1bHQ9dixkKGYsaCl9KTtmdW5jdGlvbiBkKGYscCl7Znx8IXA/byhmKTpuP24ocCk6cih2b2lkIDAscCl9aShkLCJyZWFsRG9uZSIpfWkocywiZXhlY3V0b3IiKX1wcm9jZXNzU3luYyhlKXtsZXQgcj0hMSxhO3JldHVybiB0aGlzLmZyZWV6ZSgpLFZUZSgicHJvY2Vzc1N5bmMiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksalRlKCJwcm9jZXNzU3luYyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlciksdGhpcy5wcm9jZXNzKGUscykseWVyKCJwcm9jZXNzU3luYyIsInByb2Nlc3MiLHIpLGE7ZnVuY3Rpb24gcyhuLG8pe3I9ITAsSVRlKG4pLGE9b31pKHMsInJlYWxEb25lIil9cnVuKGUscixhKXt2ZXIoZSksdGhpcy5mcmVlemUoKTtsZXQgcz10aGlzLnRyYW5zZm9ybWVycztyZXR1cm4hYSYmdHlwZW9mIHI9PSJmdW5jdGlvbiImJihhPXIscj12b2lkIDApLGE/bih2b2lkIDAsYSk6bmV3IFByb21pc2Uobik7ZnVuY3Rpb24gbihvLGwpe2xldCBjPUZkZShyKTtzLnJ1bihlLGMsZCk7ZnVuY3Rpb24gZChmLHAsaCl7bGV0IG09cHx8ZTtmP2woZik6bz9vKG0pOmEodm9pZCAwLG0saCl9aShkLCJyZWFsRG9uZSIpfWkobiwiZXhlY3V0b3IiKX1ydW5TeW5jKGUscil7bGV0IGE9ITEscztyZXR1cm4gdGhpcy5ydW4oZSxyLG4pLHllcigicnVuU3luYyIsInJ1biIsYSkscztmdW5jdGlvbiBuKG8sbCl7SVRlKG8pLHM9bCxhPSEwfWkobiwicmVhbERvbmUiKX1zdHJpbmdpZnkoZSxyKXt0aGlzLmZyZWV6ZSgpO2xldCBhPUZkZShyKSxzPXRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXI7cmV0dXJuIGpUZSgic3RyaW5naWZ5IixzKSx2ZXIoZSkscyhlLGEpfXVzZShlLC4uLnIpe2xldCBhPXRoaXMuYXR0YWNoZXJzLHM9dGhpcy5uYW1lc3BhY2U7aWYoVVRlKCJ1c2UiLHRoaXMuZnJvemVuKSxlIT1udWxsKWlmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKWMoZSxyKTtlbHNlIGlmKHR5cGVvZiBlPT0ib2JqZWN0IilBcnJheS5pc0FycmF5KGUpP2woZSk6byhlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAiK2UrImAiKTtyZXR1cm4gdGhpcztmdW5jdGlvbiBuKGQpe2lmKHR5cGVvZiBkPT0iZnVuY3Rpb24iKWMoZCxbXSk7ZWxzZSBpZih0eXBlb2YgZD09Im9iamVjdCIpaWYoQXJyYXkuaXNBcnJheShkKSl7bGV0W2YsLi4ucF09ZDtjKGYscCl9ZWxzZSBvKGQpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCIrZCsiYCIpfWZ1bmN0aW9uIG8oZCl7aWYoISgicGx1Z2lucyJpbiBkKSYmISgic2V0dGluZ3MiaW4gZCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUgYnV0IHJlY2VpdmVkIGFuIGVtcHR5IHByZXNldCwgd2hpY2ggaXMgcHJvYmFibHkgYSBtaXN0YWtlOiBwcmVzZXRzIHR5cGljYWxseSBjb21lIHdpdGggYHBsdWdpbnNgIGFuZCBzb21ldGltZXMgd2l0aCBgc2V0dGluZ3NgLCBidXQgdGhpcyBoYXMgbmVpdGhlciIpO2woZC5wbHVnaW5zKSxkLnNldHRpbmdzJiYocy5zZXR0aW5ncz0oMCxCZGUuZGVmYXVsdCkoITAscy5zZXR0aW5ncyxkLnNldHRpbmdzKSl9ZnVuY3Rpb24gbChkKXtsZXQgZj0tMTtpZihkIT1udWxsKWlmKEFycmF5LmlzQXJyYXkoZCkpZm9yKDsrK2Y8ZC5sZW5ndGg7KXtsZXQgcD1kW2ZdO24ocCl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGxpc3Qgb2YgcGx1Z2lucywgbm90IGAiK2QrImAiKX1mdW5jdGlvbiBjKGQsZil7bGV0IHA9LTEsaD0tMTtmb3IoOysrcDxhLmxlbmd0aDspaWYoYVtwXVswXT09PWQpe2g9cDticmVha31pZihoPT09LTEpYS5wdXNoKFtkLC4uLmZdKTtlbHNlIGlmKGYubGVuZ3RoPjApe2xldFttLC4uLnZdPWYsYj1hW2hdWzFdO0x6KGIpJiZMeihtKSYmKG09KDAsQmRlLmRlZmF1bHQpKCEwLGIsbSkpLGFbaF09W2QsbSwuLi52XX19fX0sQXo9bmV3IHFUZSgpLmZyZWV6ZSgpO2koVlRlLCJhc3NlcnRQYXJzZXIiKTtpKGpUZSwiYXNzZXJ0Q29tcGlsZXIiKTtpKFVUZSwiYXNzZXJ0VW5mcm96ZW4iKTtpKHZlciwiYXNzZXJ0Tm9kZSIpO2koeWVyLCJhc3NlcnREb25lIik7aShGZGUsInZmaWxlIik7aShTU2EsImxvb2tzTGlrZUFWRmlsZSIpO2koTVNhLCJsb29rc0xpa2VBVmFsdWUiKTtpKENTYSwiaXNVaW50OEFycmF5Iil9KTt2YXIga2VyPXUoKCk9Pnt3ZXIoKX0pO2Z1bmN0aW9uIFp2KHQsZSl7bGV0IHI9U3RyaW5nKHQpO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBjaGFyYWN0ZXIiKTtsZXQgYT0wLHM9ci5pbmRleE9mKGUpO2Zvcig7cyE9PS0xOylhKysscz1yLmluZGV4T2YoZSxzK2UubGVuZ3RoKTtyZXR1cm4gYX12YXIgV1RlPXUoKCk9PntpKFp2LCJjY291bnQiKX0pO2Z1bmN0aW9uICQ2KHQpe3JldHVybiB0IT09bnVsbCYmKHQ8MzJ8fHQ9PT0xMjcpfWZ1bmN0aW9uIHV0KHQpe3JldHVybiB0IT09bnVsbCYmdDwtMn1mdW5jdGlvbiBCcih0KXtyZXR1cm4gdCE9PW51bGwmJih0PDB8fHQ9PT0zMil9ZnVuY3Rpb24gUnQodCl7cmV0dXJuIHQ9PT0tMnx8dD09PS0xfHx0PT09MzJ9ZnVuY3Rpb24gYnAodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyKXtyZXR1cm4gciE9PW51bGwmJnI+LTEmJnQudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKHIpKX19dmFyIEpzLEJpLFNlcixFeixNZXIsQ2VyLEE2LFcwLFlyPXUoKCk9PntKcz1icCgvW0EtWmEtel0vKSxCaT1icCgvW1xkQS1aYS16XS8pLFNlcj1icCgvWyMtJyorXC0tOT0/QS1aXi1+XS8pO2koJDYsImFzY2lpQ29udHJvbCIpO0V6PWJwKC9cZC8pLE1lcj1icCgvW1xkQS1GYS1mXS8pLENlcj1icCgvWyEtLzotQFstYHstfl0vKTtpKHV0LCJtYXJrZG93bkxpbmVFbmRpbmciKTtpKEJyLCJtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlIik7aShSdCwibWFya2Rvd25TcGFjZSIpO0E2PWJwKC9ccHtQfXxccHtTfS91KSxXMD1icCgvXHMvKTtpKGJwLCJyZWdleENoZWNrIil9KTtmdW5jdGlvbiB6U2EodCl7bGV0IGU9W10scj0tMTtmb3IoOysrcjx0Lmxlbmd0aDspZVtyXT1MNCh0W3JdKTtyZXR1cm4gSGRlKGEpO2Z1bmN0aW9uIGEoLi4ucyl7bGV0IG49LTE7Zm9yKDsrK248ZS5sZW5ndGg7KWlmKGVbbl0uYXBwbHkodGhpcyxzKSlyZXR1cm4hMDtyZXR1cm4hMX19ZnVuY3Rpb24gX1NhKHQpe2xldCBlPXQ7cmV0dXJuIEhkZShyKTtmdW5jdGlvbiByKGEpe2xldCBzPWEsbjtmb3IobiBpbiB0KWlmKHNbbl0hPT1lW25dKXJldHVybiExO3JldHVybiEwfX1mdW5jdGlvbiBUU2EodCl7cmV0dXJuIEhkZShlKTtmdW5jdGlvbiBlKHIpe3JldHVybiByJiZyLnR5cGU9PT10fX1mdW5jdGlvbiBIZGUodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyLGEscyl7cmV0dXJuISEoemVyKHIpJiZ0LmNhbGwodGhpcyxyLHR5cGVvZiBhPT0ibnVtYmVyIj9hOnZvaWQgMCxzfHx2b2lkIDApKX19ZnVuY3Rpb24gTFNhKCl7cmV0dXJuITB9ZnVuY3Rpb24gemVyKHQpe3JldHVybiB0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYidHlwZSJpbiB0fXZhciBfZXIsTDQsVGVyPXUoKCk9PntfZXI9aSgoZnVuY3Rpb24odCxlLHIsYSxzKXtsZXQgbj1MNChlKTtpZihyIT1udWxsJiYodHlwZW9mIHIhPSJudW1iZXIifHxyPDB8fHI9PT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcG9zaXRpdmUgZmluaXRlIGluZGV4Iik7aWYoYSE9bnVsbCYmKCFfZXIoYSl8fCFhLmNoaWxkcmVuKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHBhcmVudCBub2RlIik7aWYoYT09bnVsbCE9KHI9PW51bGwpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYm90aCBwYXJlbnQgYW5kIGluZGV4Iik7cmV0dXJuIHplcih0KT9uLmNhbGwocyx0LHIsYSk6ITF9KSwiaXMiKSxMND1pKChmdW5jdGlvbih0KXtpZih0PT1udWxsKXJldHVybiBMU2E7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpcmV0dXJuIEhkZSh0KTtpZih0eXBlb2YgdD09Im9iamVjdCIpcmV0dXJuIEFycmF5LmlzQXJyYXkodCk/elNhKHQpOl9TYSh0KTtpZih0eXBlb2YgdD09InN0cmluZyIpcmV0dXJuIFRTYSh0KTt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uLCBzdHJpbmcsIG9yIG9iamVjdCBhcyB0ZXN0Iil9KSwiY29udmVydCIpO2koelNhLCJhbnlGYWN0b3J5Iik7aShfU2EsInByb3BlcnRpZXNGYWN0b3J5Iik7aShUU2EsInR5cGVGYWN0b3J5Iik7aShIZGUsImNhc3RGYWN0b3J5Iik7aShMU2EsIm9rIik7aSh6ZXIsImxvb2tzTGlrZUFOb2RlIil9KTt2YXIgcWRlPXUoKCk9PntUZXIoKX0pO3ZhciBMZXI9dSgoKT0+e30pO2Z1bmN0aW9uIEl6KHQsZSxyLGEpe2xldCBzO3R5cGVvZiBlPT0iZnVuY3Rpb24iJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIj8oYT1yLHI9ZSk6cz1lO2xldCBuPUw0KHMpLG89YT8tMToxO2wodCx2b2lkIDAsW10pKCk7ZnVuY3Rpb24gbChjLGQsZil7bGV0IHA9YyYmdHlwZW9mIGM9PSJvYmplY3QiP2M6e307aWYodHlwZW9mIHAudHlwZT09InN0cmluZyIpe2xldCBtPXR5cGVvZiBwLnRhZ05hbWU9PSJzdHJpbmciP3AudGFnTmFtZTp0eXBlb2YgcC5uYW1lPT0ic3RyaW5nIj9wLm5hbWU6dm9pZCAwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShoLCJuYW1lIix7dmFsdWU6Im5vZGUgKCIrKGMudHlwZSsobT8iPCIrbSsiPiI6IiIpKSsiKSJ9KX1yZXR1cm4gaDtmdW5jdGlvbiBoKCl7bGV0IG09RGVyLHYsYixnO2lmKCghZXx8bihjLGQsZltmLmxlbmd0aC0xXXx8dm9pZCAwKSkmJihtPURTYShyKGMsZikpLG1bMF09PT1FNikpcmV0dXJuIG07aWYoImNoaWxkcmVuImluIGMmJmMuY2hpbGRyZW4pe2xldCB5PWM7aWYoeS5jaGlsZHJlbiYmbVswXSE9PWpkZSlmb3IoYj0oYT95LmNoaWxkcmVuLmxlbmd0aDotMSkrbyxnPWYuY29uY2F0KHkpO2I+LTEmJmI8eS5jaGlsZHJlbi5sZW5ndGg7KXtsZXQgaz15LmNoaWxkcmVuW2JdO2lmKHY9bChrLGIsZykoKSx2WzBdPT09RTYpcmV0dXJuIHY7Yj10eXBlb2YgdlsxXT09Im51bWJlciI/dlsxXTpiK299fXJldHVybiBtfX1pKGwsImZhY3RvcnkiKX1mdW5jdGlvbiBEU2EodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDp0eXBlb2YgdD09Im51bWJlciI/W1ZkZSx0XTp0PT1udWxsP0RlcjpbdF19dmFyIERlcixWZGUsRTYsamRlLCRlcj11KCgpPT57cWRlKCk7TGVyKCk7RGVyPVtdLFZkZT0hMCxFNj0hMSxqZGU9InNraXAiO2koSXosInZpc2l0UGFyZW50cyIpO2koRFNhLCJ0b1Jlc3VsdCIpfSk7dmFyIFVkZT11KCgpPT57JGVyKCl9KTtmdW5jdGlvbiBHVGUodCxlLHIpe2xldCBzPUw0KChyfHx7fSkuaWdub3JlfHxbXSksbj0kU2EoZSksbz0tMTtmb3IoOysrbzxuLmxlbmd0aDspSXoodCwidGV4dCIsbCk7ZnVuY3Rpb24gbChkLGYpe2xldCBwPS0xLGg7Zm9yKDsrK3A8Zi5sZW5ndGg7KXtsZXQgbT1mW3BdLHY9aD9oLmNoaWxkcmVuOnZvaWQgMDtpZihzKG0sdj92LmluZGV4T2YobSk6dm9pZCAwLGgpKXJldHVybjtoPW19aWYoaClyZXR1cm4gYyhkLGYpfWkobCwidmlzaXRvciIpO2Z1bmN0aW9uIGMoZCxmKXtsZXQgcD1mW2YubGVuZ3RoLTFdLGg9bltvXVswXSxtPW5bb11bMV0sdj0wLGc9cC5jaGlsZHJlbi5pbmRleE9mKGQpLHk9ITEsaz1bXTtoLmxhc3RJbmRleD0wO2xldCBNPWguZXhlYyhkLnZhbHVlKTtmb3IoO007KXtsZXQgTj1NLmluZGV4LF89e2luZGV4Ok0uaW5kZXgsaW5wdXQ6TS5pbnB1dCxzdGFjazpbLi4uZixkXX0sUz1tKC4uLk0sXyk7aWYodHlwZW9mIFM9PSJzdHJpbmciJiYoUz1TLmxlbmd0aD4wP3t0eXBlOiJ0ZXh0Iix2YWx1ZTpTfTp2b2lkIDApLFM9PT0hMT9oLmxhc3RJbmRleD1OKzE6KHYhPT1OJiZrLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmQudmFsdWUuc2xpY2UodixOKX0pLEFycmF5LmlzQXJyYXkoUyk/ay5wdXNoKC4uLlMpOlMmJmsucHVzaChTKSx2PU4rTVswXS5sZW5ndGgseT0hMCksIWguZ2xvYmFsKWJyZWFrO009aC5leGVjKGQudmFsdWUpfXJldHVybiB5Pyh2PGQudmFsdWUubGVuZ3RoJiZrLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmQudmFsdWUuc2xpY2Uodil9KSxwLmNoaWxkcmVuLnNwbGljZShnLDEsLi4uaykpOms9W2RdLGcray5sZW5ndGh9aShjLCJoYW5kbGVyIil9ZnVuY3Rpb24gJFNhKHQpe2xldCBlPVtdO2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZpbmQgYW5kIHJlcGxhY2UgdHVwbGUgb3IgbGlzdCBvZiB0dXBsZXMiKTtsZXQgcj0hdFswXXx8QXJyYXkuaXNBcnJheSh0WzBdKT90Olt0XSxhPS0xO2Zvcig7KythPHIubGVuZ3RoOyl7bGV0IHM9clthXTtlLnB1c2goW0FTYShzWzBdKSxFU2Eoc1sxXSldKX1yZXR1cm4gZX1mdW5jdGlvbiBBU2EodCl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIj9uZXcgUmVnRXhwKHI2KHQpLCJnIik6dH1mdW5jdGlvbiBFU2EodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH19dmFyIEFlcj11KCgpPT57RzJlKCk7VWRlKCk7cWRlKCk7aShHVGUsImZpbmRBbmRSZXBsYWNlIik7aSgkU2EsInRvUGFpcnMiKTtpKEFTYSwidG9FeHByZXNzaW9uIik7aShFU2EsInRvRnVuY3Rpb24iKX0pO3ZhciBFZXI9dSgoKT0+e0FlcigpfSk7ZnVuY3Rpb24gUVRlKCl7cmV0dXJue3RyYW5zZm9ybXM6W0ZTYV0sZW50ZXI6e2xpdGVyYWxBdXRvbGluazpJU2EsbGl0ZXJhbEF1dG9saW5rRW1haWw6WlRlLGxpdGVyYWxBdXRvbGlua0h0dHA6WlRlLGxpdGVyYWxBdXRvbGlua1d3dzpaVGV9LGV4aXQ6e2xpdGVyYWxBdXRvbGluazpSU2EsbGl0ZXJhbEF1dG9saW5rRW1haWw6T1NhLGxpdGVyYWxBdXRvbGlua0h0dHA6UFNhLGxpdGVyYWxBdXRvbGlua1d3dzpOU2F9fX1mdW5jdGlvbiBYVGUoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJAIixiZWZvcmU6IlsrXFwtLlxcd10iLGFmdGVyOiJbXFwtLlxcd10iLGluQ29uc3RydWN0OllUZSxub3RJbkNvbnN0cnVjdDpLVGV9LHtjaGFyYWN0ZXI6Ii4iLGJlZm9yZToiW1d3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6WVRlLG5vdEluQ29uc3RydWN0OktUZX0se2NoYXJhY3RlcjoiOiIsYmVmb3JlOiJbcHNdIixhZnRlcjoiXFwvIixpbkNvbnN0cnVjdDpZVGUsbm90SW5Db25zdHJ1Y3Q6S1RlfV19fWZ1bmN0aW9uIElTYSh0KXt0aGlzLmVudGVyKHt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoiIixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gWlRlKHQpe3RoaXMuY29uZmlnLmVudGVyLmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLHQpfWZ1bmN0aW9uIFBTYSh0KXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLHQpfWZ1bmN0aW9uIE5TYSh0KXt0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLHQpO2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZS50eXBlLGUudXJsPSJodHRwOi8vIit0aGlzLnNsaWNlU2VyaWFsaXplKHQpfWZ1bmN0aW9uIE9TYSh0KXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rRW1haWwuY2FsbCh0aGlzLHQpfWZ1bmN0aW9uIFJTYSh0KXt0aGlzLmV4aXQodCl9ZnVuY3Rpb24gRlNhKHQpe0dUZSh0LFtbLyhodHRwcz86XC9cL3x3d3coPz1cLikpKFstLlx3XSspKFteIFx0XHJcbl0qKS9naSxCU2FdLFsvKD88PV58XHN8XHB7UH18XHB7U30pKFstLlx3K10rKUAoWy1cd10rKD86XC5bLVx3XSspKykvZ3UsSFNhXV0se2lnbm9yZTpbImxpbmsiLCJsaW5rUmVmZXJlbmNlIl19KX1mdW5jdGlvbiBCU2EodCxlLHIsYSxzKXtsZXQgbj0iIjtpZighSWVyKHMpfHwoL153L2kudGVzdChlKSYmKHI9ZStyLGU9IiIsbj0iaHR0cDovLyIpLCFxU2EocikpKXJldHVybiExO2xldCBvPVZTYShyK2EpO2lmKCFvWzBdKXJldHVybiExO2xldCBsPXt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDpuK2Urb1swXSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrb1swXX1dfTtyZXR1cm4gb1sxXT9bbCx7dHlwZToidGV4dCIsdmFsdWU6b1sxXX1dOmx9ZnVuY3Rpb24gSFNhKHQsZSxyLGEpe3JldHVybiFJZXIoYSwhMCl8fC9bLVxkX10kLy50ZXN0KHIpPyExOnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoibWFpbHRvOiIrZSsiQCIrcixjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrIkAiK3J9XX19ZnVuY3Rpb24gcVNhKHQpe2xldCBlPXQuc3BsaXQoIi4iKTtyZXR1cm4hKGUubGVuZ3RoPDJ8fGVbZS5sZW5ndGgtMV0mJigvXy8udGVzdChlW2UubGVuZ3RoLTFdKXx8IS9bYS16QS1aXGRdLy50ZXN0KGVbZS5sZW5ndGgtMV0pKXx8ZVtlLmxlbmd0aC0yXSYmKC9fLy50ZXN0KGVbZS5sZW5ndGgtMl0pfHwhL1thLXpBLVpcZF0vLnRlc3QoZVtlLmxlbmd0aC0yXSkpKX1mdW5jdGlvbiBWU2EodCl7bGV0IGU9L1shIiYnKSwuOjs8Pj9cXX1dKyQvLmV4ZWModCk7aWYoIWUpcmV0dXJuW3Qsdm9pZCAwXTt0PXQuc2xpY2UoMCxlLmluZGV4KTtsZXQgcj1lWzBdLGE9ci5pbmRleE9mKCIpIikscz1adih0LCIoIiksbj1adih0LCIpIik7Zm9yKDthIT09LTEmJnM+bjspdCs9ci5zbGljZSgwLGErMSkscj1yLnNsaWNlKGErMSksYT1yLmluZGV4T2YoIikiKSxuKys7cmV0dXJuW3Qscl19ZnVuY3Rpb24gSWVyKHQsZSl7bGV0IHI9dC5pbnB1dC5jaGFyQ29kZUF0KHQuaW5kZXgtMSk7cmV0dXJuKHQuaW5kZXg9PT0wfHxXMChyKXx8QTYocikpJiYoIWV8fHIhPT00Nyl9dmFyIFlUZSxLVGUsUGVyPXUoKCk9PntXVGUoKTttcCgpO1lyKCk7RWVyKCk7WVRlPSJwaHJhc2luZyIsS1RlPVsiYXV0b2xpbmsiLCJsaW5rIiwiaW1hZ2UiLCJsYWJlbCJdO2koUVRlLCJnZm1BdXRvbGlua0xpdGVyYWxGcm9tTWFya2Rvd24iKTtpKFhUZSwiZ2ZtQXV0b2xpbmtMaXRlcmFsVG9NYXJrZG93biIpO2koSVNhLCJlbnRlckxpdGVyYWxBdXRvbGluayIpO2koWlRlLCJlbnRlckxpdGVyYWxBdXRvbGlua1ZhbHVlIik7aShQU2EsImV4aXRMaXRlcmFsQXV0b2xpbmtIdHRwIik7aShOU2EsImV4aXRMaXRlcmFsQXV0b2xpbmtXd3ciKTtpKE9TYSwiZXhpdExpdGVyYWxBdXRvbGlua0VtYWlsIik7aShSU2EsImV4aXRMaXRlcmFsQXV0b2xpbmsiKTtpKEZTYSwidHJhbnNmb3JtR2ZtQXV0b2xpbmtMaXRlcmFscyIpO2koQlNhLCJmaW5kVXJsIik7aShIU2EsImZpbmRFbWFpbCIpO2kocVNhLCJpc0NvcnJlY3REb21haW4iKTtpKFZTYSwic3BsaXRVcmwiKTtpKEllciwicHJldmlvdXMiKX0pO3ZhciBOZXI9dSgoKT0+e1BlcigpfSk7ZnVuY3Rpb24gSGkodCl7cmV0dXJuIHQucmVwbGFjZSgvW1x0XG5cciBdKy9nLCIgIikucmVwbGFjZSgvXiB8ICQvZywiIikudG9Mb3dlckNhc2UoKS50b1VwcGVyQ2FzZSgpfXZhciB4cD11KCgpPT57aShIaSwibm9ybWFsaXplSWRlbnRpZmllciIpfSk7ZnVuY3Rpb24galNhKCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBVU2EodCl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVSZWZlcmVuY2UiLGlkZW50aWZpZXI6IiIsbGFiZWw6IiJ9LHQpfWZ1bmN0aW9uIFdTYSgpe3RoaXMuYnVmZmVyKCl9ZnVuY3Rpb24gR1NhKHQpe3RoaXMuZW50ZXIoe3R5cGU6ImZvb3Rub3RlRGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDoiIixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gWVNhKHQpe2xldCBlPXRoaXMucmVzdW1lKCkscj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3IudHlwZSxyLmlkZW50aWZpZXI9SGkodGhpcy5zbGljZVNlcmlhbGl6ZSh0KSkudG9Mb3dlckNhc2UoKSxyLmxhYmVsPWV9ZnVuY3Rpb24gS1NhKHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBaU2EodCl7bGV0IGU9dGhpcy5yZXN1bWUoKSxyPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIuaWRlbnRpZmllcj1IaSh0aGlzLnNsaWNlU2VyaWFsaXplKHQpKS50b0xvd2VyQ2FzZSgpLHIubGFiZWw9ZX1mdW5jdGlvbiBRU2EodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIFhTYSgpe3JldHVybiJbIn1mdW5jdGlvbiBPZXIodCxlLHIsYSl7bGV0IHM9ci5jcmVhdGVUcmFja2VyKGEpLG49cy5tb3ZlKCJbXiIpLG89ci5lbnRlcigiZm9vdG5vdGVSZWZlcmVuY2UiKSxsPXIuZW50ZXIoInJlZmVyZW5jZSIpO3JldHVybiBuKz1zLm1vdmUoci5zYWZlKHIuYXNzb2NpYXRpb25JZCh0KSx7YWZ0ZXI6Il0iLGJlZm9yZTpufSkpLGwoKSxvKCksbis9cy5tb3ZlKCJdIiksbn1mdW5jdGlvbiBKVGUoKXtyZXR1cm57ZW50ZXI6e2dmbUZvb3Rub3RlQ2FsbFN0cmluZzpqU2EsZ2ZtRm9vdG5vdGVDYWxsOlVTYSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZzpXU2EsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uOkdTYX0sZXhpdDp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOllTYSxnZm1Gb290bm90ZUNhbGw6S1NhLGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOlpTYSxnZm1Gb290bm90ZURlZmluaXRpb246UVNhfX19ZnVuY3Rpb24gZUxlKHQpe2xldCBlPSExO3JldHVybiB0JiZ0LmZpcnN0TGluZUJsYW5rJiYoZT0hMCkse2hhbmRsZXJzOntmb290bm90ZURlZmluaXRpb246cixmb290bm90ZVJlZmVyZW5jZTpPZXJ9LHVuc2FmZTpbe2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInBocmFzaW5nIiwicmVmZXJlbmNlIl19XX07ZnVuY3Rpb24gcihhLHMsbixvKXtsZXQgbD1uLmNyZWF0ZVRyYWNrZXIobyksYz1sLm1vdmUoIlteIiksZD1uLmVudGVyKCJmb290bm90ZURlZmluaXRpb24iKSxmPW4uZW50ZXIoImxhYmVsIik7cmV0dXJuIGMrPWwubW92ZShuLnNhZmUobi5hc3NvY2lhdGlvbklkKGEpLHtiZWZvcmU6YyxhZnRlcjoiXSJ9KSksZigpLGMrPWwubW92ZSgiXToiKSxhLmNoaWxkcmVuJiZhLmNoaWxkcmVuLmxlbmd0aD4wJiYobC5zaGlmdCg0KSxjKz1sLm1vdmUoKGU/YApgOiIgIikrbi5pbmRlbnRMaW5lcyhuLmNvbnRhaW5lckZsb3coYSxsLmN1cnJlbnQoKSksZT9SZXI6SlNhKSkpLGQoKSxjfWkociwiZm9vdG5vdGVEZWZpbml0aW9uIil9ZnVuY3Rpb24gSlNhKHQsZSxyKXtyZXR1cm4gZT09PTA/dDpSZXIodCxlLHIpfWZ1bmN0aW9uIFJlcih0LGUscil7cmV0dXJuKHI/IiI6IiAgICAiKSt0fXZhciBGZXI9dSgoKT0+e21wKCk7eHAoKTtPZXIucGVlaz1YU2E7aShqU2EsImVudGVyRm9vdG5vdGVDYWxsU3RyaW5nIik7aShVU2EsImVudGVyRm9vdG5vdGVDYWxsIik7aShXU2EsImVudGVyRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKTtpKEdTYSwiZW50ZXJGb290bm90ZURlZmluaXRpb24iKTtpKFlTYSwiZXhpdEZvb3Rub3RlQ2FsbFN0cmluZyIpO2koS1NhLCJleGl0Rm9vdG5vdGVDYWxsIik7aShaU2EsImV4aXRGb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpO2koUVNhLCJleGl0Rm9vdG5vdGVEZWZpbml0aW9uIik7aShYU2EsImZvb3Rub3RlUmVmZXJlbmNlUGVlayIpO2koT2VyLCJmb290bm90ZVJlZmVyZW5jZSIpO2koSlRlLCJnZm1Gb290bm90ZUZyb21NYXJrZG93biIpO2koZUxlLCJnZm1Gb290bm90ZVRvTWFya2Rvd24iKTtpKEpTYSwibWFwRXhjZXB0Rmlyc3QiKTtpKFJlciwibWFwQWxsIil9KTt2YXIgQmVyPXUoKCk9PntGZXIoKX0pO2Z1bmN0aW9uIHRMZSgpe3JldHVybntjYW5Db250YWluRW9sczpbImRlbGV0ZSJdLGVudGVyOntzdHJpa2V0aHJvdWdoOnRNYX0sZXhpdDp7c3RyaWtldGhyb3VnaDpyTWF9fX1mdW5jdGlvbiByTGUoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJ+IixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OmVNYX1dLGhhbmRsZXJzOntkZWxldGU6SGVyfX19ZnVuY3Rpb24gdE1hKHQpe3RoaXMuZW50ZXIoe3R5cGU6ImRlbGV0ZSIsY2hpbGRyZW46W119LHQpfWZ1bmN0aW9uIHJNYSh0KXt0aGlzLmV4aXQodCl9ZnVuY3Rpb24gSGVyKHQsZSxyLGEpe2xldCBzPXIuY3JlYXRlVHJhY2tlcihhKSxuPXIuZW50ZXIoInN0cmlrZXRocm91Z2giKSxvPXMubW92ZSgifn4iKTtyZXR1cm4gbys9ci5jb250YWluZXJQaHJhc2luZyh0LHsuLi5zLmN1cnJlbnQoKSxiZWZvcmU6byxhZnRlcjoifiJ9KSxvKz1zLm1vdmUoIn5+IiksbigpLG99ZnVuY3Rpb24gYU1hKCl7cmV0dXJuIn4ifXZhciBlTWEscWVyPXUoKCk9PntlTWE9WyJhdXRvbGluayIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlc3RpbmF0aW9uUmF3IiwicmVmZXJlbmNlIiwidGl0bGVRdW90ZSIsInRpdGxlQXBvc3Ryb3BoZSJdO0hlci5wZWVrPWFNYTtpKHRMZSwiZ2ZtU3RyaWtldGhyb3VnaEZyb21NYXJrZG93biIpO2kockxlLCJnZm1TdHJpa2V0aHJvdWdoVG9NYXJrZG93biIpO2kodE1hLCJlbnRlclN0cmlrZXRocm91Z2giKTtpKHJNYSwiZXhpdFN0cmlrZXRocm91Z2giKTtpKEhlciwiaGFuZGxlRGVsZXRlIik7aShhTWEsInBlZWtEZWxldGUiKX0pO3ZhciBWZXI9dSgoKT0+e3FlcigpfSk7ZnVuY3Rpb24gaU1hKHQpe3JldHVybiB0Lmxlbmd0aH1mdW5jdGlvbiBVZXIodCxlKXtsZXQgcj1lfHx7fSxhPShyLmFsaWdufHxbXSkuY29uY2F0KCkscz1yLnN0cmluZ0xlbmd0aHx8aU1hLG49W10sbz1bXSxsPVtdLGM9W10sZD0wLGY9LTE7Zm9yKDsrK2Y8dC5sZW5ndGg7KXtsZXQgYj1bXSxnPVtdLHk9LTE7Zm9yKHRbZl0ubGVuZ3RoPmQmJihkPXRbZl0ubGVuZ3RoKTsrK3k8dFtmXS5sZW5ndGg7KXtsZXQgaz1zTWEodFtmXVt5XSk7aWYoci5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IE09cyhrKTtnW3ldPU0sKGNbeV09PT12b2lkIDB8fE0+Y1t5XSkmJihjW3ldPU0pfWIucHVzaChrKX1vW2ZdPWIsbFtmXT1nfWxldCBwPS0xO2lmKHR5cGVvZiBhPT0ib2JqZWN0IiYmImxlbmd0aCJpbiBhKWZvcig7KytwPGQ7KW5bcF09amVyKGFbcF0pO2Vsc2V7bGV0IGI9amVyKGEpO2Zvcig7KytwPGQ7KW5bcF09Yn1wPS0xO2xldCBoPVtdLG09W107Zm9yKDsrK3A8ZDspe2xldCBiPW5bcF0sZz0iIix5PSIiO2I9PT05OT8oZz0iOiIseT0iOiIpOmI9PT0xMDg/Zz0iOiI6Yj09PTExNCYmKHk9IjoiKTtsZXQgaz1yLmFsaWduRGVsaW1pdGVycz09PSExPzE6TWF0aC5tYXgoMSxjW3BdLWcubGVuZ3RoLXkubGVuZ3RoKSxNPWcrIi0iLnJlcGVhdChrKSt5O3IuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJihrPWcubGVuZ3RoK2sreS5sZW5ndGgsaz5jW3BdJiYoY1twXT1rKSxtW3BdPWspLGhbcF09TX1vLnNwbGljZSgxLDAsaCksbC5zcGxpY2UoMSwwLG0pLGY9LTE7bGV0IHY9W107Zm9yKDsrK2Y8by5sZW5ndGg7KXtsZXQgYj1vW2ZdLGc9bFtmXTtwPS0xO2xldCB5PVtdO2Zvcig7KytwPGQ7KXtsZXQgaz1iW3BdfHwiIixNPSIiLE49IiI7aWYoci5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IF89Y1twXS0oZ1twXXx8MCksUz1uW3BdO1M9PT0xMTQ/TT0iICIucmVwZWF0KF8pOlM9PT05OT9fJTI/KE09IiAiLnJlcGVhdChfLzIrLjUpLE49IiAiLnJlcGVhdChfLzItLjUpKTooTT0iICIucmVwZWF0KF8vMiksTj1NKTpOPSIgIi5yZXBlYXQoXyl9ci5kZWxpbWl0ZXJTdGFydCE9PSExJiYhcCYmeS5wdXNoKCJ8Iiksci5wYWRkaW5nIT09ITEmJiEoci5hbGlnbkRlbGltaXRlcnM9PT0hMSYmaz09PSIiKSYmKHIuZGVsaW1pdGVyU3RhcnQhPT0hMXx8cCkmJnkucHVzaCgiICIpLHIuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJnkucHVzaChNKSx5LnB1c2goayksci5hbGlnbkRlbGltaXRlcnMhPT0hMSYmeS5wdXNoKE4pLHIucGFkZGluZyE9PSExJiZ5LnB1c2goIiAiKSwoci5kZWxpbWl0ZXJFbmQhPT0hMXx8cCE9PWQtMSkmJnkucHVzaCgifCIpfXYucHVzaChyLmRlbGltaXRlckVuZD09PSExP3kuam9pbigiIikucmVwbGFjZSgvICskLywiIik6eS5qb2luKCIiKSl9cmV0dXJuIHYuam9pbihgCmApfWZ1bmN0aW9uIHNNYSh0KXtyZXR1cm4gdD09bnVsbD8iIjpTdHJpbmcodCl9ZnVuY3Rpb24gamVyKHQpe2xldCBlPXR5cGVvZiB0PT0ic3RyaW5nIj90LmNvZGVQb2ludEF0KDApOjA7cmV0dXJuIGU9PT02N3x8ZT09PTk5Pzk5OmU9PT03Nnx8ZT09PTEwOD8xMDg6ZT09PTgyfHxlPT09MTE0PzExNDowfXZhciBXZXI9dSgoKT0+e2koaU1hLCJkZWZhdWx0U3RyaW5nTGVuZ3RoIik7aShVZXIsIm1hcmtkb3duVGFibGUiKTtpKHNNYSwic2VyaWFsaXplIik7aShqZXIsInRvQWxpZ25tZW50Iil9KTtmdW5jdGlvbiBXZGUodCxlKXtsZXQgcj1lfHx7fTtmdW5jdGlvbiBhKHMsLi4ubil7bGV0IG89YS5pbnZhbGlkLGw9YS5oYW5kbGVycztpZihzJiZHZXIuY2FsbChzLHQpKXtsZXQgYz1TdHJpbmcoc1t0XSk7bz1HZXIuY2FsbChsLGMpP2xbY106YS51bmtub3dufWlmKG8pcmV0dXJuIG8uY2FsbCh0aGlzLHMsLi4ubil9cmV0dXJuIGkoYSwib25lIiksYS5oYW5kbGVycz1yLmhhbmRsZXJzfHx7fSxhLmludmFsaWQ9ci5pbnZhbGlkLGEudW5rbm93bj1yLnVua25vd24sYX12YXIgR2VyLGFMZT11KCgpPT57R2VyPXt9Lmhhc093blByb3BlcnR5O2koV2RlLCJ6d2l0Y2giKX0pO2Z1bmN0aW9uIGlMZSh0LGUpe2xldCByPS0xLGE7aWYoZS5leHRlbnNpb25zKWZvcig7KytyPGUuZXh0ZW5zaW9ucy5sZW5ndGg7KWlMZSh0LGUuZXh0ZW5zaW9uc1tyXSk7Zm9yKGEgaW4gZSlpZihuTWEuY2FsbChlLGEpKXN3aXRjaChhKXtjYXNlImV4dGVuc2lvbnMiOmJyZWFrO2Nhc2UidW5zYWZlIjp7WWVyKHRbYV0sZVthXSk7YnJlYWt9Y2FzZSJqb2luIjp7WWVyKHRbYV0sZVthXSk7YnJlYWt9Y2FzZSJoYW5kbGVycyI6e29NYSh0W2FdLGVbYV0pO2JyZWFrfWRlZmF1bHQ6dC5vcHRpb25zW2FdPWVbYV19cmV0dXJuIHR9ZnVuY3Rpb24gWWVyKHQsZSl7ZSYmdC5wdXNoKC4uLmUpfWZ1bmN0aW9uIG9NYSh0LGUpe2UmJk9iamVjdC5hc3NpZ24odCxlKX12YXIgbk1hLEtlcj11KCgpPT57bk1hPXt9Lmhhc093blByb3BlcnR5O2koaUxlLCJjb25maWd1cmUiKTtpKFllciwibGlzdCIpO2kob01hLCJtYXAiKX0pO2Z1bmN0aW9uIFplcih0LGUscixhKXtsZXQgcz1yLmVudGVyKCJibG9ja3F1b3RlIiksbj1yLmNyZWF0ZVRyYWNrZXIoYSk7bi5tb3ZlKCI+ICIpLG4uc2hpZnQoMik7bGV0IG89ci5pbmRlbnRMaW5lcyhyLmNvbnRhaW5lckZsb3codCxuLmN1cnJlbnQoKSksbE1hKTtyZXR1cm4gcygpLG99ZnVuY3Rpb24gbE1hKHQsZSxyKXtyZXR1cm4iPiIrKHI/IiI6IiAiKSt0fXZhciBRZXI9dSgoKT0+e2koWmVyLCJibG9ja3F1b3RlIik7aShsTWEsIm1hcCIpfSk7ZnVuY3Rpb24gR2RlKHQsZSl7cmV0dXJuIFhlcih0LGUuaW5Db25zdHJ1Y3QsITApJiYhWGVyKHQsZS5ub3RJbkNvbnN0cnVjdCwhMSl9ZnVuY3Rpb24gWGVyKHQsZSxyKXtpZih0eXBlb2YgZT09InN0cmluZyImJihlPVtlXSksIWV8fGUubGVuZ3RoPT09MClyZXR1cm4gcjtsZXQgYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspaWYodC5pbmNsdWRlcyhlW2FdKSlyZXR1cm4hMDtyZXR1cm4hMX12YXIgc0xlPXUoKCk9PntpKEdkZSwicGF0dGVybkluU2NvcGUiKTtpKFhlciwibGlzdEluU2NvcGUiKX0pO2Z1bmN0aW9uIG5MZSh0LGUscixhKXtsZXQgcz0tMTtmb3IoOysrczxyLnVuc2FmZS5sZW5ndGg7KWlmKHIudW5zYWZlW3NdLmNoYXJhY3Rlcj09PWAKYCYmR2RlKHIuc3RhY2ssci51bnNhZmVbc10pKXJldHVybi9bIFx0XS8udGVzdChhLmJlZm9yZSk/IiI6IiAiO3JldHVybmBcXApgfXZhciBKZXI9dSgoKT0+e3NMZSgpO2kobkxlLCJoYXJkQnJlYWsiKX0pO2Z1bmN0aW9uIGV0cih0LGUpe2xldCByPVN0cmluZyh0KSxhPXIuaW5kZXhPZihlKSxzPWEsbj0wLG89MDtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgc3Vic3RyaW5nIik7Zm9yKDthIT09LTE7KWE9PT1zPysrbj5vJiYobz1uKTpuPTEscz1hK2UubGVuZ3RoLGE9ci5pbmRleE9mKGUscyk7cmV0dXJuIG99dmFyIHR0cj11KCgpPT57aShldHIsImxvbmdlc3RTdHJlYWsiKX0pO2Z1bmN0aW9uIFB6KHQsZSl7cmV0dXJuISEoZS5vcHRpb25zLmZlbmNlcz09PSExJiZ0LnZhbHVlJiYhdC5sYW5nJiYvW14gXHJcbl0vLnRlc3QodC52YWx1ZSkmJiEvXltcdCBdKig/OltcclxuXXwkKXwoPzpefFtcclxuXSlbXHQgXSokLy50ZXN0KHQudmFsdWUpKX12YXIgb0xlPXUoKCk9PntpKFB6LCJmb3JtYXRDb2RlQXNJbmRlbnRlZCIpfSk7ZnVuY3Rpb24gcnRyKHQpe2xldCBlPXQub3B0aW9ucy5mZW5jZXx8ImAiO2lmKGUhPT0iYCImJmUhPT0ifiIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGNvZGUgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5mZW5jZWAsIGV4cGVjdGVkIGBgIGAgYGAgb3IgYH5gIik7cmV0dXJuIGV9dmFyIGF0cj11KCgpPT57aShydHIsImNoZWNrRmVuY2UiKX0pO2Z1bmN0aW9uIGl0cih0LGUscixhKXtsZXQgcz1ydHIociksbj10LnZhbHVlfHwiIixvPXM9PT0iYCI/IkdyYXZlQWNjZW50IjoiVGlsZGUiO2lmKFB6KHQscikpe2xldCBwPXIuZW50ZXIoImNvZGVJbmRlbnRlZCIpLGg9ci5pbmRlbnRMaW5lcyhuLGNNYSk7cmV0dXJuIHAoKSxofWxldCBsPXIuY3JlYXRlVHJhY2tlcihhKSxjPXMucmVwZWF0KE1hdGgubWF4KGV0cihuLHMpKzEsMykpLGQ9ci5lbnRlcigiY29kZUZlbmNlZCIpLGY9bC5tb3ZlKGMpO2lmKHQubGFuZyl7bGV0IHA9ci5lbnRlcihgY29kZUZlbmNlZExhbmcke299YCk7Zis9bC5tb3ZlKHIuc2FmZSh0Lmxhbmcse2JlZm9yZTpmLGFmdGVyOiIgIixlbmNvZGU6WyJgIl0sLi4ubC5jdXJyZW50KCl9KSkscCgpfWlmKHQubGFuZyYmdC5tZXRhKXtsZXQgcD1yLmVudGVyKGBjb2RlRmVuY2VkTWV0YSR7b31gKTtmKz1sLm1vdmUoIiAiKSxmKz1sLm1vdmUoci5zYWZlKHQubWV0YSx7YmVmb3JlOmYsYWZ0ZXI6YApgLGVuY29kZTpbImAiXSwuLi5sLmN1cnJlbnQoKX0pKSxwKCl9cmV0dXJuIGYrPWwubW92ZShgCmApLG4mJihmKz1sLm1vdmUobitgCmApKSxmKz1sLm1vdmUoYyksZCgpLGZ9ZnVuY3Rpb24gY01hKHQsZSxyKXtyZXR1cm4ocj8iIjoiICAgICIpK3R9dmFyIHN0cj11KCgpPT57dHRyKCk7b0xlKCk7YXRyKCk7aShpdHIsImNvZGUiKTtpKGNNYSwibWFwIil9KTtmdW5jdGlvbiBRdih0KXtsZXQgZT10Lm9wdGlvbnMucXVvdGV8fCciJztpZihlIT09JyInJiZlIT09IiciKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSB0aXRsZSB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLnF1b3RlYCwgZXhwZWN0ZWQgYFwiYCwgb3IgYCdgIik7cmV0dXJuIGV9dmFyIFlkZT11KCgpPT57aShRdiwiY2hlY2tRdW90ZSIpfSk7ZnVuY3Rpb24gbnRyKHQsZSxyLGEpe2xldCBzPVF2KHIpLG49cz09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXIuZW50ZXIoImRlZmluaXRpb24iKSxsPXIuZW50ZXIoImxhYmVsIiksYz1yLmNyZWF0ZVRyYWNrZXIoYSksZD1jLm1vdmUoIlsiKTtyZXR1cm4gZCs9Yy5tb3ZlKHIuc2FmZShyLmFzc29jaWF0aW9uSWQodCkse2JlZm9yZTpkLGFmdGVyOiJdIiwuLi5jLmN1cnJlbnQoKX0pKSxkKz1jLm1vdmUoIl06ICIpLGwoKSwhdC51cmx8fC9bXDAtIFx1MDA3Rl0vLnRlc3QodC51cmwpPyhsPXIuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGQrPWMubW92ZSgiPCIpLGQrPWMubW92ZShyLnNhZmUodC51cmwse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5jLmN1cnJlbnQoKX0pKSxkKz1jLm1vdmUoIj4iKSk6KGw9ci5lbnRlcigiZGVzdGluYXRpb25SYXciKSxkKz1jLm1vdmUoci5zYWZlKHQudXJsLHtiZWZvcmU6ZCxhZnRlcjp0LnRpdGxlPyIgIjpgCmAsLi4uYy5jdXJyZW50KCl9KSkpLGwoKSx0LnRpdGxlJiYobD1yLmVudGVyKGB0aXRsZSR7bn1gKSxkKz1jLm1vdmUoIiAiK3MpLGQrPWMubW92ZShyLnNhZmUodC50aXRsZSx7YmVmb3JlOmQsYWZ0ZXI6cywuLi5jLmN1cnJlbnQoKX0pKSxkKz1jLm1vdmUocyksbCgpKSxvKCksZH12YXIgb3RyPXUoKCk9PntZZGUoKTtpKG50ciwiZGVmaW5pdGlvbiIpfSk7ZnVuY3Rpb24gbHRyKHQpe2xldCBlPXQub3B0aW9ucy5lbXBoYXNpc3x8IioiO2lmKGUhPT0iKiImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGVtcGhhc2lzIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuZW1waGFzaXNgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBjdHI9dSgoKT0+e2kobHRyLCJjaGVja0VtcGhhc2lzIil9KTtmdW5jdGlvbiBybCh0KXtyZXR1cm4iJiN4Iit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7In12YXIgWHY9dSgoKT0+e2kocmwsImVuY29kZUNoYXJhY3RlclJlZmVyZW5jZSIpfSk7ZnVuY3Rpb24gRDQodCl7aWYodD09PW51bGx8fEJyKHQpfHxXMCh0KSlyZXR1cm4gMTtpZihBNih0KSlyZXR1cm4gMn12YXIgS2RlPXUoKCk9PntZcigpO2koRDQsImNsYXNzaWZ5Q2hhcmFjdGVyIil9KTtmdW5jdGlvbiBKdih0LGUscil7bGV0IGE9RDQodCkscz1ENChlKTtyZXR1cm4gYT09PXZvaWQgMD9zPT09dm9pZCAwP3I9PT0iXyI/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnM9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMH06e2luc2lkZTohMSxvdXRzaWRlOiEwfTphPT09MT9zPT09dm9pZCAwP3tpbnNpZGU6ITEsb3V0c2lkZTohMX06cz09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnM9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTpzPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITF9OntpbnNpZGU6ITEsb3V0c2lkZTohMX19dmFyIGxMZT11KCgpPT57S2RlKCk7aShKdiwiZW5jb2RlSW5mbyIpfSk7ZnVuY3Rpb24gY0xlKHQsZSxyLGEpe2xldCBzPWx0cihyKSxuPXIuZW50ZXIoImVtcGhhc2lzIiksbz1yLmNyZWF0ZVRyYWNrZXIoYSksbD1vLm1vdmUocyksYz1vLm1vdmUoci5jb250YWluZXJQaHJhc2luZyh0LHthZnRlcjpzLGJlZm9yZTpsLC4uLm8uY3VycmVudCgpfSkpLGQ9Yy5jaGFyQ29kZUF0KDApLGY9SnYoYS5iZWZvcmUuY2hhckNvZGVBdChhLmJlZm9yZS5sZW5ndGgtMSksZCxzKTtmLmluc2lkZSYmKGM9cmwoZCkrYy5zbGljZSgxKSk7bGV0IHA9Yy5jaGFyQ29kZUF0KGMubGVuZ3RoLTEpLGg9SnYoYS5hZnRlci5jaGFyQ29kZUF0KDApLHAscyk7aC5pbnNpZGUmJihjPWMuc2xpY2UoMCwtMSkrcmwocCkpO2xldCBtPW8ubW92ZShzKTtyZXR1cm4gbigpLHIuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpoLm91dHNpZGUsYmVmb3JlOmYub3V0c2lkZX0sbCtjK219ZnVuY3Rpb24gZE1hKHQsZSxyKXtyZXR1cm4gci5vcHRpb25zLmVtcGhhc2lzfHwiKiJ9dmFyIGR0cj11KCgpPT57Y3RyKCk7WHYoKTtsTGUoKTtjTGUucGVlaz1kTWE7aShjTGUsImVtcGhhc2lzIik7aShkTWEsImVtcGhhc2lzUGVlayIpfSk7ZnVuY3Rpb24gTnoodCxlLHIsYSl7bGV0IHMsbixvO3R5cGVvZiBlPT0iZnVuY3Rpb24iJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIj8obj12b2lkIDAsbz1lLHM9cik6KG49ZSxvPXIscz1hKSxJeih0LG4sbCxzKTtmdW5jdGlvbiBsKGMsZCl7bGV0IGY9ZFtkLmxlbmd0aC0xXSxwPWY/Zi5jaGlsZHJlbi5pbmRleE9mKGMpOnZvaWQgMDtyZXR1cm4gbyhjLHAsZil9aShsLCJvdmVybG9hZCIpfXZhciB1dHI9dSgoKT0+e1VkZSgpO1VkZSgpO2koTnosInZpc2l0Iil9KTt2YXIgZExlPXUoKCk9Pnt1dHIoKX0pO2Z1bmN0aW9uIEk2KHQsZSl7bGV0IHI9ZXx8dU1hLGE9dHlwZW9mIHIuaW5jbHVkZUltYWdlQWx0PT0iYm9vbGVhbiI/ci5pbmNsdWRlSW1hZ2VBbHQ6ITAscz10eXBlb2Ygci5pbmNsdWRlSHRtbD09ImJvb2xlYW4iP3IuaW5jbHVkZUh0bWw6ITA7cmV0dXJuIHB0cih0LGEscyl9ZnVuY3Rpb24gcHRyKHQsZSxyKXtpZihwTWEodCkpe2lmKCJ2YWx1ZSJpbiB0KXJldHVybiB0LnR5cGU9PT0iaHRtbCImJiFyPyIiOnQudmFsdWU7aWYoZSYmImFsdCJpbiB0JiZ0LmFsdClyZXR1cm4gdC5hbHQ7aWYoImNoaWxkcmVuImluIHQpcmV0dXJuIGZ0cih0LmNoaWxkcmVuLGUscil9cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/ZnRyKHQsZSxyKToiIn1mdW5jdGlvbiBmdHIodCxlLHIpe2xldCBhPVtdLHM9LTE7Zm9yKDsrK3M8dC5sZW5ndGg7KWFbc109cHRyKHRbc10sZSxyKTtyZXR1cm4gYS5qb2luKCIiKX1mdW5jdGlvbiBwTWEodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiKX12YXIgdU1hLGh0cj11KCgpPT57dU1hPXt9O2koSTYsInRvU3RyaW5nIik7aShwdHIsIm9uZSIpO2koZnRyLCJhbGwiKTtpKHBNYSwibm9kZSIpfSk7dmFyIFpkZT11KCgpPT57aHRyKCl9KTtmdW5jdGlvbiBRZGUodCxlKXtsZXQgcj0hMTtyZXR1cm4gTnoodCxmdW5jdGlvbihhKXtpZigidmFsdWUiaW4gYSYmL1xyP1xufFxyLy50ZXN0KGEudmFsdWUpfHxhLnR5cGU9PT0iYnJlYWsiKXJldHVybiByPSEwLEU2fSksISEoKCF0LmRlcHRofHx0LmRlcHRoPDMpJiZJNih0KSYmKGUub3B0aW9ucy5zZXRleHR8fHIpKX12YXIgdUxlPXUoKCk9PntkTGUoKTtaZGUoKTtpKFFkZSwiZm9ybWF0SGVhZGluZ0FzU2V0ZXh0Iil9KTtmdW5jdGlvbiBtdHIodCxlLHIsYSl7bGV0IHM9TWF0aC5tYXgoTWF0aC5taW4oNix0LmRlcHRofHwxKSwxKSxuPXIuY3JlYXRlVHJhY2tlcihhKTtpZihRZGUodCxyKSl7bGV0IGY9ci5lbnRlcigiaGVhZGluZ1NldGV4dCIpLHA9ci5lbnRlcigicGhyYXNpbmciKSxoPXIuY29udGFpbmVyUGhyYXNpbmcodCx7Li4ubi5jdXJyZW50KCksYmVmb3JlOmAKYCxhZnRlcjpgCmB9KTtyZXR1cm4gcCgpLGYoKSxoK2AKYCsocz09PTE/Ij0iOiItIikucmVwZWF0KGgubGVuZ3RoLShNYXRoLm1heChoLmxhc3RJbmRleE9mKCJcciIpLGgubGFzdEluZGV4T2YoYApgKSkrMSkpfWxldCBvPSIjIi5yZXBlYXQocyksbD1yLmVudGVyKCJoZWFkaW5nQXR4IiksYz1yLmVudGVyKCJwaHJhc2luZyIpO24ubW92ZShvKyIgIik7bGV0IGQ9ci5jb250YWluZXJQaHJhc2luZyh0LHtiZWZvcmU6IiMgIixhZnRlcjpgCmAsLi4ubi5jdXJyZW50KCl9KTtyZXR1cm4vXltcdCBdLy50ZXN0KGQpJiYoZD1ybChkLmNoYXJDb2RlQXQoMCkpK2Quc2xpY2UoMSkpLGQ9ZD9vKyIgIitkOm8sci5vcHRpb25zLmNsb3NlQXR4JiYoZCs9IiAiK28pLGMoKSxsKCksZH12YXIgZ3RyPXUoKCk9PntYdigpO3VMZSgpO2kobXRyLCJoZWFkaW5nIil9KTtmdW5jdGlvbiBwTGUodCl7cmV0dXJuIHQudmFsdWV8fCIifWZ1bmN0aW9uIGZNYSgpe3JldHVybiI8In12YXIgYnRyPXUoKCk9PntwTGUucGVlaz1mTWE7aShwTGUsImh0bWwiKTtpKGZNYSwiaHRtbFBlZWsiKX0pO2Z1bmN0aW9uIGZMZSh0LGUscixhKXtsZXQgcz1RdihyKSxuPXM9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbz1yLmVudGVyKCJpbWFnZSIpLGw9ci5lbnRlcigibGFiZWwiKSxjPXIuY3JlYXRlVHJhY2tlcihhKSxkPWMubW92ZSgiIVsiKTtyZXR1cm4gZCs9Yy5tb3ZlKHIuc2FmZSh0LmFsdCx7YmVmb3JlOmQsYWZ0ZXI6Il0iLC4uLmMuY3VycmVudCgpfSkpLGQrPWMubW92ZSgiXSgiKSxsKCksIXQudXJsJiZ0LnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KHQudXJsKT8obD1yLmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxkKz1jLm1vdmUoIjwiKSxkKz1jLm1vdmUoci5zYWZlKHQudXJsLHtiZWZvcmU6ZCxhZnRlcjoiPiIsLi4uYy5jdXJyZW50KCl9KSksZCs9Yy5tb3ZlKCI+IikpOihsPXIuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksZCs9Yy5tb3ZlKHIuc2FmZSh0LnVybCx7YmVmb3JlOmQsYWZ0ZXI6dC50aXRsZT8iICI6IikiLC4uLmMuY3VycmVudCgpfSkpKSxsKCksdC50aXRsZSYmKGw9ci5lbnRlcihgdGl0bGUke259YCksZCs9Yy5tb3ZlKCIgIitzKSxkKz1jLm1vdmUoci5zYWZlKHQudGl0bGUse2JlZm9yZTpkLGFmdGVyOnMsLi4uYy5jdXJyZW50KCl9KSksZCs9Yy5tb3ZlKHMpLGwoKSksZCs9Yy5tb3ZlKCIpIiksbygpLGR9ZnVuY3Rpb24gaE1hKCl7cmV0dXJuIiEifXZhciB4dHI9dSgoKT0+e1lkZSgpO2ZMZS5wZWVrPWhNYTtpKGZMZSwiaW1hZ2UiKTtpKGhNYSwiaW1hZ2VQZWVrIil9KTtmdW5jdGlvbiBoTGUodCxlLHIsYSl7bGV0IHM9dC5yZWZlcmVuY2VUeXBlLG49ci5lbnRlcigiaW1hZ2VSZWZlcmVuY2UiKSxvPXIuZW50ZXIoImxhYmVsIiksbD1yLmNyZWF0ZVRyYWNrZXIoYSksYz1sLm1vdmUoIiFbIiksZD1yLnNhZmUodC5hbHQse2JlZm9yZTpjLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO2MrPWwubW92ZShkKyJdWyIpLG8oKTtsZXQgZj1yLnN0YWNrO3Iuc3RhY2s9W10sbz1yLmVudGVyKCJyZWZlcmVuY2UiKTtsZXQgcD1yLnNhZmUoci5hc3NvY2lhdGlvbklkKHQpLHtiZWZvcmU6YyxhZnRlcjoiXSIsLi4ubC5jdXJyZW50KCl9KTtyZXR1cm4gbygpLHIuc3RhY2s9ZixuKCkscz09PSJmdWxsInx8IWR8fGQhPT1wP2MrPWwubW92ZShwKyJdIik6cz09PSJzaG9ydGN1dCI/Yz1jLnNsaWNlKDAsLTEpOmMrPWwubW92ZSgiXSIpLGN9ZnVuY3Rpb24gbU1hKCl7cmV0dXJuIiEifXZhciB2dHI9dSgoKT0+e2hMZS5wZWVrPW1NYTtpKGhMZSwiaW1hZ2VSZWZlcmVuY2UiKTtpKG1NYSwiaW1hZ2VSZWZlcmVuY2VQZWVrIil9KTtmdW5jdGlvbiBtTGUodCxlLHIpe2xldCBhPXQudmFsdWV8fCIiLHM9ImAiLG49LTE7Zm9yKDtuZXcgUmVnRXhwKCIoXnxbXmBdKSIrcysiKFteYF18JCkiKS50ZXN0KGEpOylzKz0iYCI7Zm9yKC9bXiBcclxuXS8udGVzdChhKSYmKC9eWyBcclxuXS8udGVzdChhKSYmL1sgXHJcbl0kLy50ZXN0KGEpfHwvXmB8YCQvLnRlc3QoYSkpJiYoYT0iICIrYSsiICIpOysrbjxyLnVuc2FmZS5sZW5ndGg7KXtsZXQgbz1yLnVuc2FmZVtuXSxsPXIuY29tcGlsZVBhdHRlcm4obyksYztpZihvLmF0QnJlYWspZm9yKDtjPWwuZXhlYyhhKTspe2xldCBkPWMuaW5kZXg7YS5jaGFyQ29kZUF0KGQpPT09MTAmJmEuY2hhckNvZGVBdChkLTEpPT09MTMmJmQtLSxhPWEuc2xpY2UoMCxkKSsiICIrYS5zbGljZShjLmluZGV4KzEpfX1yZXR1cm4gcythK3N9ZnVuY3Rpb24gZ01hKCl7cmV0dXJuImAifXZhciB5dHI9dSgoKT0+e21MZS5wZWVrPWdNYTtpKG1MZSwiaW5saW5lQ29kZSIpO2koZ01hLCJpbmxpbmVDb2RlUGVlayIpfSk7ZnVuY3Rpb24gZ0xlKHQsZSl7bGV0IHI9STYodCk7cmV0dXJuISEoIWUub3B0aW9ucy5yZXNvdXJjZUxpbmsmJnQudXJsJiYhdC50aXRsZSYmdC5jaGlsZHJlbiYmdC5jaGlsZHJlbi5sZW5ndGg9PT0xJiZ0LmNoaWxkcmVuWzBdLnR5cGU9PT0idGV4dCImJihyPT09dC51cmx8fCJtYWlsdG86IityPT09dC51cmwpJiYvXlthLXpdW2EteisuLV0rOi9pLnRlc3QodC51cmwpJiYhL1tcMC0gPD5cdTAwN0ZdLy50ZXN0KHQudXJsKSl9dmFyIHd0cj11KCgpPT57WmRlKCk7aShnTGUsImZvcm1hdExpbmtBc0F1dG9saW5rIil9KTtmdW5jdGlvbiBiTGUodCxlLHIsYSl7bGV0IHM9UXYociksbj1zPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89ci5jcmVhdGVUcmFja2VyKGEpLGwsYztpZihnTGUodCxyKSl7bGV0IGY9ci5zdGFjaztyLnN0YWNrPVtdLGw9ci5lbnRlcigiYXV0b2xpbmsiKTtsZXQgcD1vLm1vdmUoIjwiKTtyZXR1cm4gcCs9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcodCx7YmVmb3JlOnAsYWZ0ZXI6Ij4iLC4uLm8uY3VycmVudCgpfSkpLHArPW8ubW92ZSgiPiIpLGwoKSxyLnN0YWNrPWYscH1sPXIuZW50ZXIoImxpbmsiKSxjPXIuZW50ZXIoImxhYmVsIik7bGV0IGQ9by5tb3ZlKCJbIik7cmV0dXJuIGQrPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKHQse2JlZm9yZTpkLGFmdGVyOiJdKCIsLi4uby5jdXJyZW50KCl9KSksZCs9by5tb3ZlKCJdKCIpLGMoKSwhdC51cmwmJnQudGl0bGV8fC9bXDAtIFx1MDA3Rl0vLnRlc3QodC51cmwpPyhjPXIuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGQrPW8ubW92ZSgiPCIpLGQrPW8ubW92ZShyLnNhZmUodC51cmwse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUoIj4iKSk6KGM9ci5lbnRlcigiZGVzdGluYXRpb25SYXciKSxkKz1vLm1vdmUoci5zYWZlKHQudXJsLHtiZWZvcmU6ZCxhZnRlcjp0LnRpdGxlPyIgIjoiKSIsLi4uby5jdXJyZW50KCl9KSkpLGMoKSx0LnRpdGxlJiYoYz1yLmVudGVyKGB0aXRsZSR7bn1gKSxkKz1vLm1vdmUoIiAiK3MpLGQrPW8ubW92ZShyLnNhZmUodC50aXRsZSx7YmVmb3JlOmQsYWZ0ZXI6cywuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUocyksYygpKSxkKz1vLm1vdmUoIikiKSxsKCksZH1mdW5jdGlvbiBiTWEodCxlLHIpe3JldHVybiBnTGUodCxyKT8iPCI6IlsifXZhciBrdHI9dSgoKT0+e1lkZSgpO3d0cigpO2JMZS5wZWVrPWJNYTtpKGJMZSwibGluayIpO2koYk1hLCJsaW5rUGVlayIpfSk7ZnVuY3Rpb24geExlKHQsZSxyLGEpe2xldCBzPXQucmVmZXJlbmNlVHlwZSxuPXIuZW50ZXIoImxpbmtSZWZlcmVuY2UiKSxvPXIuZW50ZXIoImxhYmVsIiksbD1yLmNyZWF0ZVRyYWNrZXIoYSksYz1sLm1vdmUoIlsiKSxkPXIuY29udGFpbmVyUGhyYXNpbmcodCx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSk7Yys9bC5tb3ZlKGQrIl1bIiksbygpO2xldCBmPXIuc3RhY2s7ci5zdGFjaz1bXSxvPXIuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBwPXIuc2FmZShyLmFzc29jaWF0aW9uSWQodCkse2JlZm9yZTpjLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBvKCksci5zdGFjaz1mLG4oKSxzPT09ImZ1bGwifHwhZHx8ZCE9PXA/Yys9bC5tb3ZlKHArIl0iKTpzPT09InNob3J0Y3V0Ij9jPWMuc2xpY2UoMCwtMSk6Yys9bC5tb3ZlKCJdIiksY31mdW5jdGlvbiB4TWEoKXtyZXR1cm4iWyJ9dmFyIFN0cj11KCgpPT57eExlLnBlZWs9eE1hO2koeExlLCJsaW5rUmVmZXJlbmNlIik7aSh4TWEsImxpbmtSZWZlcmVuY2VQZWVrIil9KTtmdW5jdGlvbiBleSh0KXtsZXQgZT10Lm9wdGlvbnMuYnVsbGV0fHwiKiI7aWYoZSE9PSIqIiYmZSE9PSIrIiYmZSE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5idWxsZXRgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7cmV0dXJuIGV9dmFyIFhkZT11KCgpPT57aShleSwiY2hlY2tCdWxsZXQiKX0pO2Z1bmN0aW9uIE10cih0KXtsZXQgZT1leSh0KSxyPXQub3B0aW9ucy5idWxsZXRPdGhlcjtpZighcilyZXR1cm4gZT09PSIqIj8iLSI6IioiO2lmKHIhPT0iKiImJnIhPT0iKyImJnIhPT0iLSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrcisiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3RoZXJgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7aWYocj09PWUpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgYnVsbGV0YCAoYCIrZSsiYCkgYW5kIGBidWxsZXRPdGhlcmAgKGAiK3IrImApIHRvIGJlIGRpZmZlcmVudCIpO3JldHVybiByfXZhciBDdHI9dSgoKT0+e1hkZSgpO2koTXRyLCJjaGVja0J1bGxldE90aGVyIil9KTtmdW5jdGlvbiB6dHIodCl7bGV0IGU9dC5vcHRpb25zLmJ1bGxldE9yZGVyZWR8fCIuIjtpZihlIT09Ii4iJiZlIT09IikiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmJ1bGxldE9yZGVyZWRgLCBleHBlY3RlZCBgLmAgb3IgYClgIik7cmV0dXJuIGV9dmFyIF90cj11KCgpPT57aSh6dHIsImNoZWNrQnVsbGV0T3JkZXJlZCIpfSk7ZnVuY3Rpb24gSmRlKHQpe2xldCBlPXQub3B0aW9ucy5ydWxlfHwiKiI7aWYoZSE9PSIqIiYmZSE9PSItIiYmZSE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5ydWxlYCwgZXhwZWN0ZWQgYCpgLCBgLWAsIG9yIGBfYCIpO3JldHVybiBlfXZhciB2TGU9dSgoKT0+e2koSmRlLCJjaGVja1J1bGUiKX0pO2Z1bmN0aW9uIFR0cih0LGUscixhKXtsZXQgcz1yLmVudGVyKCJsaXN0Iiksbj1yLmJ1bGxldEN1cnJlbnQsbz10Lm9yZGVyZWQ/enRyKHIpOmV5KHIpLGw9dC5vcmRlcmVkP289PT0iLiI/IikiOiIuIjpNdHIociksYz1lJiZyLmJ1bGxldExhc3RVc2VkP289PT1yLmJ1bGxldExhc3RVc2VkOiExO2lmKCF0Lm9yZGVyZWQpe2xldCBmPXQuY2hpbGRyZW4/dC5jaGlsZHJlblswXTp2b2lkIDA7aWYoKG89PT0iKiJ8fG89PT0iLSIpJiZmJiYoIWYuY2hpbGRyZW58fCFmLmNoaWxkcmVuWzBdKSYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC0xXT09PSJsaXN0IiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC0yXT09PSJsaXN0SXRlbSImJnIuc3RhY2tbci5zdGFjay5sZW5ndGgtM109PT0ibGlzdCImJnIuc3RhY2tbci5zdGFjay5sZW5ndGgtNF09PT0ibGlzdEl0ZW0iJiZyLmluZGV4U3RhY2tbci5pbmRleFN0YWNrLmxlbmd0aC0xXT09PTAmJnIuaW5kZXhTdGFja1tyLmluZGV4U3RhY2subGVuZ3RoLTJdPT09MCYmci5pbmRleFN0YWNrW3IuaW5kZXhTdGFjay5sZW5ndGgtM109PT0wJiYoYz0hMCksSmRlKHIpPT09byYmZil7bGV0IHA9LTE7Zm9yKDsrK3A8dC5jaGlsZHJlbi5sZW5ndGg7KXtsZXQgaD10LmNoaWxkcmVuW3BdO2lmKGgmJmgudHlwZT09PSJsaXN0SXRlbSImJmguY2hpbGRyZW4mJmguY2hpbGRyZW5bMF0mJmguY2hpbGRyZW5bMF0udHlwZT09PSJ0aGVtYXRpY0JyZWFrIil7Yz0hMDticmVha319fX1jJiYobz1sKSxyLmJ1bGxldEN1cnJlbnQ9bztsZXQgZD1yLmNvbnRhaW5lckZsb3codCxhKTtyZXR1cm4gci5idWxsZXRMYXN0VXNlZD1vLHIuYnVsbGV0Q3VycmVudD1uLHMoKSxkfXZhciBMdHI9dSgoKT0+e1hkZSgpO0N0cigpO190cigpO3ZMZSgpO2koVHRyLCJsaXN0Iil9KTtmdW5jdGlvbiBEdHIodCl7bGV0IGU9dC5vcHRpb25zLmxpc3RJdGVtSW5kZW50fHwib25lIjtpZihlIT09InRhYiImJmUhPT0ib25lIiYmZSE9PSJtaXhlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMubGlzdEl0ZW1JbmRlbnRgLCBleHBlY3RlZCBgdGFiYCwgYG9uZWAsIG9yIGBtaXhlZGAiKTtyZXR1cm4gZX12YXIgJHRyPXUoKCk9PntpKER0ciwiY2hlY2tMaXN0SXRlbUluZGVudCIpfSk7ZnVuY3Rpb24gQXRyKHQsZSxyLGEpe2xldCBzPUR0cihyKSxuPXIuYnVsbGV0Q3VycmVudHx8ZXkocik7ZSYmZS50eXBlPT09Imxpc3QiJiZlLm9yZGVyZWQmJihuPSh0eXBlb2YgZS5zdGFydD09Im51bWJlciImJmUuc3RhcnQ+LTE/ZS5zdGFydDoxKSsoci5vcHRpb25zLmluY3JlbWVudExpc3RNYXJrZXI9PT0hMT8wOmUuY2hpbGRyZW4uaW5kZXhPZih0KSkrbik7bGV0IG89bi5sZW5ndGgrMTsocz09PSJ0YWIifHxzPT09Im1peGVkIiYmKGUmJmUudHlwZT09PSJsaXN0IiYmZS5zcHJlYWR8fHQuc3ByZWFkKSkmJihvPU1hdGguY2VpbChvLzQpKjQpO2xldCBsPXIuY3JlYXRlVHJhY2tlcihhKTtsLm1vdmUobisiICIucmVwZWF0KG8tbi5sZW5ndGgpKSxsLnNoaWZ0KG8pO2xldCBjPXIuZW50ZXIoImxpc3RJdGVtIiksZD1yLmluZGVudExpbmVzKHIuY29udGFpbmVyRmxvdyh0LGwuY3VycmVudCgpKSxmKTtyZXR1cm4gYygpLGQ7ZnVuY3Rpb24gZihwLGgsbSl7cmV0dXJuIGg/KG0/IiI6IiAiLnJlcGVhdChvKSkrcDoobT9uOm4rIiAiLnJlcGVhdChvLW4ubGVuZ3RoKSkrcH1pKGYsIm1hcCIpfXZhciBFdHI9dSgoKT0+e1hkZSgpOyR0cigpO2koQXRyLCJsaXN0SXRlbSIpfSk7ZnVuY3Rpb24gSXRyKHQsZSxyLGEpe2xldCBzPXIuZW50ZXIoInBhcmFncmFwaCIpLG49ci5lbnRlcigicGhyYXNpbmciKSxvPXIuY29udGFpbmVyUGhyYXNpbmcodCxhKTtyZXR1cm4gbigpLHMoKSxvfXZhciBQdHI9dSgoKT0+e2koSXRyLCJwYXJhZ3JhcGgiKX0pO3ZhciB5TGUsTnRyPXUoKCk9PntxZGUoKTt5TGU9TDQoWyJicmVhayIsImRlbGV0ZSIsImVtcGhhc2lzIiwiZm9vdG5vdGUiLCJmb290bm90ZVJlZmVyZW5jZSIsImltYWdlIiwiaW1hZ2VSZWZlcmVuY2UiLCJpbmxpbmVDb2RlIiwiaW5saW5lTWF0aCIsImxpbmsiLCJsaW5rUmVmZXJlbmNlIiwibWR4SnN4VGV4dEVsZW1lbnQiLCJtZHhUZXh0RXhwcmVzc2lvbiIsInN0cm9uZyIsInRleHQiLCJ0ZXh0RGlyZWN0aXZlIl0pfSk7dmFyIE90cj11KCgpPT57TnRyKCl9KTtmdW5jdGlvbiBSdHIodCxlLHIsYSl7cmV0dXJuKHQuY2hpbGRyZW4uc29tZShmdW5jdGlvbihvKXtyZXR1cm4geUxlKG8pfSk/ci5jb250YWluZXJQaHJhc2luZzpyLmNvbnRhaW5lckZsb3cpLmNhbGwocix0LGEpfXZhciBGdHI9dSgoKT0+e090cigpO2koUnRyLCJyb290Iil9KTtmdW5jdGlvbiBCdHIodCl7bGV0IGU9dC5vcHRpb25zLnN0cm9uZ3x8IioiO2lmKGUhPT0iKiImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHN0cm9uZyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLnN0cm9uZ2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIGV9dmFyIEh0cj11KCgpPT57aShCdHIsImNoZWNrU3Ryb25nIil9KTtmdW5jdGlvbiB3TGUodCxlLHIsYSl7bGV0IHM9QnRyKHIpLG49ci5lbnRlcigic3Ryb25nIiksbz1yLmNyZWF0ZVRyYWNrZXIoYSksbD1vLm1vdmUocytzKSxjPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKHQse2FmdGVyOnMsYmVmb3JlOmwsLi4uby5jdXJyZW50KCl9KSksZD1jLmNoYXJDb2RlQXQoMCksZj1KdihhLmJlZm9yZS5jaGFyQ29kZUF0KGEuYmVmb3JlLmxlbmd0aC0xKSxkLHMpO2YuaW5zaWRlJiYoYz1ybChkKStjLnNsaWNlKDEpKTtsZXQgcD1jLmNoYXJDb2RlQXQoYy5sZW5ndGgtMSksaD1KdihhLmFmdGVyLmNoYXJDb2RlQXQoMCkscCxzKTtoLmluc2lkZSYmKGM9Yy5zbGljZSgwLC0xKStybChwKSk7bGV0IG09by5tb3ZlKHMrcyk7cmV0dXJuIG4oKSxyLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz17YWZ0ZXI6aC5vdXRzaWRlLGJlZm9yZTpmLm91dHNpZGV9LGwrYyttfWZ1bmN0aW9uIHZNYSh0LGUscil7cmV0dXJuIHIub3B0aW9ucy5zdHJvbmd8fCIqIn12YXIgcXRyPXUoKCk9PntIdHIoKTtYdigpO2xMZSgpO3dMZS5wZWVrPXZNYTtpKHdMZSwic3Ryb25nIik7aSh2TWEsInN0cm9uZ1BlZWsiKX0pO2Z1bmN0aW9uIFZ0cih0LGUscixhKXtyZXR1cm4gci5zYWZlKHQudmFsdWUsYSl9dmFyIGp0cj11KCgpPT57aShWdHIsInRleHQiKX0pO2Z1bmN0aW9uIFV0cih0KXtsZXQgZT10Lm9wdGlvbnMucnVsZVJlcGV0aXRpb258fDM7aWYoZTwzKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIHJlcGV0aXRpb24gYCIrZSsiYCBmb3IgYG9wdGlvbnMucnVsZVJlcGV0aXRpb25gLCBleHBlY3RlZCBgM2Agb3IgbW9yZSIpO3JldHVybiBlfXZhciBXdHI9dSgoKT0+e2koVXRyLCJjaGVja1J1bGVSZXBldGl0aW9uIil9KTtmdW5jdGlvbiBHdHIodCxlLHIpe2xldCBhPShKZGUocikrKHIub3B0aW9ucy5ydWxlU3BhY2VzPyIgIjoiIikpLnJlcGVhdChVdHIocikpO3JldHVybiByLm9wdGlvbnMucnVsZVNwYWNlcz9hLnNsaWNlKDAsLTEpOmF9dmFyIFl0cj11KCgpPT57V3RyKCk7dkxlKCk7aShHdHIsInRoZW1hdGljQnJlYWsiKX0pO3ZhciBQNixrTGU9dSgoKT0+e1FlcigpO0plcigpO3N0cigpO290cigpO2R0cigpO2d0cigpO2J0cigpO3h0cigpO3Z0cigpO3l0cigpO2t0cigpO1N0cigpO0x0cigpO0V0cigpO1B0cigpO0Z0cigpO3F0cigpO2p0cigpO1l0cigpO1A2PXtibG9ja3F1b3RlOlplcixicmVhazpuTGUsY29kZTppdHIsZGVmaW5pdGlvbjpudHIsZW1waGFzaXM6Y0xlLGhhcmRCcmVhazpuTGUsaGVhZGluZzptdHIsaHRtbDpwTGUsaW1hZ2U6ZkxlLGltYWdlUmVmZXJlbmNlOmhMZSxpbmxpbmVDb2RlOm1MZSxsaW5rOmJMZSxsaW5rUmVmZXJlbmNlOnhMZSxsaXN0OlR0cixsaXN0SXRlbTpBdHIscGFyYWdyYXBoOkl0cixyb290OlJ0cixzdHJvbmc6d0xlLHRleHQ6VnRyLHRoZW1hdGljQnJlYWs6R3RyfX0pO2Z1bmN0aW9uIHlNYSh0LGUscixhKXtpZihlLnR5cGU9PT0iY29kZSImJlB6KGUsYSkmJih0LnR5cGU9PT0ibGlzdCJ8fHQudHlwZT09PWUudHlwZSYmUHoodCxhKSkpcmV0dXJuITE7aWYoInNwcmVhZCJpbiByJiZ0eXBlb2Ygci5zcHJlYWQ9PSJib29sZWFuIilyZXR1cm4gdC50eXBlPT09InBhcmFncmFwaCImJih0LnR5cGU9PT1lLnR5cGV8fGUudHlwZT09PSJkZWZpbml0aW9uInx8ZS50eXBlPT09ImhlYWRpbmciJiZRZGUoZSxhKSk/dm9pZCAwOnIuc3ByZWFkPzE6MH12YXIgS3RyLFp0cj11KCgpPT57b0xlKCk7dUxlKCk7S3RyPVt5TWFdO2koeU1hLCJqb2luRGVmYXVsdHMiKX0pO3ZhciBONixRdHIsWHRyPXUoKCk9PntONj1bImF1dG9saW5rIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiZGVzdGluYXRpb25SYXciLCJyZWZlcmVuY2UiLCJ0aXRsZVF1b3RlIiwidGl0bGVBcG9zdHJvcGhlIl0sUXRyPVt7Y2hhcmFjdGVyOiIJIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IgkiLGJlZm9yZToiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IgkiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiXX0se2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFUaWxkZSIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImhlYWRpbmdBdHgiXX0se2NoYXJhY3RlcjpgCmAsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YVRpbGRlIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiaGVhZGluZ0F0eCJdfSx7Y2hhcmFjdGVyOiIgIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiAiLGJlZm9yZToiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiAiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiXX0se2NoYXJhY3RlcjoiISIsYWZ0ZXI6IlxcWyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpONn0se2NoYXJhY3RlcjonIicsaW5Db25zdHJ1Y3Q6InRpdGxlUXVvdGUifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IiMifSx7Y2hhcmFjdGVyOiIjIixpbkNvbnN0cnVjdDoiaGVhZGluZ0F0eCIsYWZ0ZXI6YCg/OltccgpdfCQpYH0se2NoYXJhY3RlcjoiJiIsYWZ0ZXI6IlsjQS1aYS16XSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiJyIsaW5Db25zdHJ1Y3Q6InRpdGxlQXBvc3Ryb3BoZSJ9LHtjaGFyYWN0ZXI6IigiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvblJhdyJ9LHtiZWZvcmU6IlxcXSIsY2hhcmFjdGVyOiIoIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0Ok42fSx7YXRCcmVhazohMCxiZWZvcmU6IlxcZCsiLGNoYXJhY3RlcjoiKSJ9LHtjaGFyYWN0ZXI6IikiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvblJhdyJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiKiIsYWZ0ZXI6YCg/OlsgCVxyCipdKWB9LHtjaGFyYWN0ZXI6IioiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6TjZ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiKyIsYWZ0ZXI6YCg/OlsgCVxyCl0pYH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjpgKD86WyAJXHIKLV0pYH0se2F0QnJlYWs6ITAsYmVmb3JlOiJcXGQrIixjaGFyYWN0ZXI6Ii4iLGFmdGVyOmAoPzpbIAlccgpdfCQpYH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI8IixhZnRlcjoiWyEvP0EtWmEtel0ifSx7Y2hhcmFjdGVyOiI8IixhZnRlcjoiWyEvP0EtWmEtel0iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6TjZ9LHtjaGFyYWN0ZXI6IjwiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvbkxpdGVyYWwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ij0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ij4ifSx7Y2hhcmFjdGVyOiI+IixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25MaXRlcmFsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJbIn0se2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpONn0se2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInJlZmVyZW5jZSJdfSx7Y2hhcmFjdGVyOiJcXCIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiJdIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicmVmZXJlbmNlIl19LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiXyJ9LHtjaGFyYWN0ZXI6Il8iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6TjZ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiYCJ9LHtjaGFyYWN0ZXI6ImAiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiXX0se2NoYXJhY3RlcjoiYCIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpONn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ+In1dfSk7ZnVuY3Rpb24gdnAodCl7bGV0IGU9IiYiK3QrIjsiO0p0ci5pbm5lckhUTUw9ZTtsZXQgcj1KdHIudGV4dENvbnRlbnQ7cmV0dXJuIHIuY2hhckNvZGVBdChyLmxlbmd0aC0xKT09PTU5JiZ0IT09InNlbWkifHxyPT09ZT8hMTpyfXZhciBKdHIsT3o9dSgoKT0+e0p0cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7aSh2cCwiZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIHR5KHQsZSl7bGV0IHI9TnVtYmVyLnBhcnNlSW50KHQsZSk7cmV0dXJuIHI8OXx8cj09PTExfHxyPjEzJiZyPDMyfHxyPjEyNiYmcjwxNjB8fHI+NTUyOTUmJnI8NTczNDR8fHI+NjQ5NzUmJnI8NjUwMDh8fChyJjY1NTM1KT09PTY1NTM1fHwociY2NTUzNSk9PT02NTUzNHx8cj4xMTE0MTExPyJcdUZGRkQiOlN0cmluZy5mcm9tQ29kZVBvaW50KHIpfXZhciBlNGU9dSgoKT0+e2kodHksImRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIHQ0ZSh0KXtyZXR1cm4gdC5yZXBsYWNlKHdNYSxrTWEpfWZ1bmN0aW9uIGtNYSh0LGUscil7aWYoZSlyZXR1cm4gZTtpZihyLmNoYXJDb2RlQXQoMCk9PT0zNSl7bGV0IHM9ci5jaGFyQ29kZUF0KDEpLG49cz09PTEyMHx8cz09PTg4O3JldHVybiB0eShyLnNsaWNlKG4/MjoxKSxuPzE2OjEwKX1yZXR1cm4gdnAocil8fHR9dmFyIHdNYSxTTGU9dSgoKT0+e096KCk7ZTRlKCk7d01hPS9cXChbIS0vOi1AWy1gey1+XSl8JigjKD86XGR7MSw3fXx4W1xkYS1mXXsxLDZ9KXxbXGRhLXpdezEsMzF9KTsvZ2k7aSh0NGUsImRlY29kZVN0cmluZyIpO2koa01hLCJkZWNvZGUiKX0pO2Z1bmN0aW9uIGVycih0KXtyZXR1cm4gdC5sYWJlbHx8IXQuaWRlbnRpZmllcj90LmxhYmVsfHwiIjp0NGUodC5pZGVudGlmaWVyKX12YXIgdHJyPXUoKCk9PntTTGUoKTtpKGVyciwiYXNzb2NpYXRpb24iKX0pO2Z1bmN0aW9uIHJycih0KXtpZighdC5fY29tcGlsZWQpe2xldCBlPSh0LmF0QnJlYWs/IltcXHJcXG5dW1xcdCBdKiI6IiIpKyh0LmJlZm9yZT8iKD86Iit0LmJlZm9yZSsiKSI6IiIpO3QuX2NvbXBpbGVkPW5ldyBSZWdFeHAoKGU/IigiK2UrIikiOiIiKSsoL1t8XFx7fSgpW1xdXiQrKj8uLV0vLnRlc3QodC5jaGFyYWN0ZXIpPyJcXCI6IiIpK3QuY2hhcmFjdGVyKyh0LmFmdGVyPyIoPzoiK3QuYWZ0ZXIrIikiOiIiKSwiZyIpfXJldHVybiB0Ll9jb21waWxlZH12YXIgYXJyPXUoKCk9PntpKHJyciwiY29tcGlsZVBhdHRlcm4iKX0pO2Z1bmN0aW9uIGlycih0LGUscil7bGV0IGE9ZS5pbmRleFN0YWNrLHM9dC5jaGlsZHJlbnx8W10sbj1bXSxvPS0xLGw9ci5iZWZvcmUsYzthLnB1c2goLTEpO2xldCBkPWUuY3JlYXRlVHJhY2tlcihyKTtmb3IoOysrbzxzLmxlbmd0aDspe2xldCBmPXNbb10scDtpZihhW2EubGVuZ3RoLTFdPW8sbysxPHMubGVuZ3RoKXtsZXQgdj1lLmhhbmRsZS5oYW5kbGVyc1tzW28rMV0udHlwZV07diYmdi5wZWVrJiYodj12LnBlZWspLHA9dj92KHNbbysxXSx0LGUse2JlZm9yZToiIixhZnRlcjoiIiwuLi5kLmN1cnJlbnQoKX0pLmNoYXJBdCgwKToiIn1lbHNlIHA9ci5hZnRlcjtuLmxlbmd0aD4wJiYobD09PSJcciJ8fGw9PT1gCmApJiZmLnR5cGU9PT0iaHRtbCImJihuW24ubGVuZ3RoLTFdPW5bbi5sZW5ndGgtMV0ucmVwbGFjZSgvKFxyP1xufFxyKSQvLCIgIiksbD0iICIsZD1lLmNyZWF0ZVRyYWNrZXIociksZC5tb3ZlKG4uam9pbigiIikpKTtsZXQgaD1lLmhhbmRsZShmLHQsZSx7Li4uZC5jdXJyZW50KCksYWZ0ZXI6cCxiZWZvcmU6bH0pO2MmJmM9PT1oLnNsaWNlKDAsMSkmJihoPXJsKGMuY2hhckNvZGVBdCgwKSkraC5zbGljZSgxKSk7bGV0IG09ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm87ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89dm9pZCAwLGM9dm9pZCAwLG0mJihuLmxlbmd0aD4wJiZtLmJlZm9yZSYmbD09PW5bbi5sZW5ndGgtMV0uc2xpY2UoLTEpJiYobltuLmxlbmd0aC0xXT1uW24ubGVuZ3RoLTFdLnNsaWNlKDAsLTEpK3JsKGwuY2hhckNvZGVBdCgwKSkpLG0uYWZ0ZXImJihjPXApKSxkLm1vdmUoaCksbi5wdXNoKGgpLGw9aC5zbGljZSgtMSl9cmV0dXJuIGEucG9wKCksbi5qb2luKCIiKX12YXIgc3JyPXUoKCk9PntYdigpO2koaXJyLCJjb250YWluZXJQaHJhc2luZyIpfSk7ZnVuY3Rpb24gbnJyKHQsZSxyKXtsZXQgYT1lLmluZGV4U3RhY2sscz10LmNoaWxkcmVufHxbXSxuPWUuY3JlYXRlVHJhY2tlcihyKSxvPVtdLGw9LTE7Zm9yKGEucHVzaCgtMSk7KytsPHMubGVuZ3RoOyl7bGV0IGM9c1tsXTthW2EubGVuZ3RoLTFdPWwsby5wdXNoKG4ubW92ZShlLmhhbmRsZShjLHQsZSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsLi4ubi5jdXJyZW50KCl9KSkpLGMudHlwZSE9PSJsaXN0IiYmKGUuYnVsbGV0TGFzdFVzZWQ9dm9pZCAwKSxsPHMubGVuZ3RoLTEmJm8ucHVzaChuLm1vdmUoU01hKGMsc1tsKzFdLHQsZSkpKX1yZXR1cm4gYS5wb3AoKSxvLmpvaW4oIiIpfWZ1bmN0aW9uIFNNYSh0LGUscixhKXtsZXQgcz1hLmpvaW4ubGVuZ3RoO2Zvcig7cy0tOyl7bGV0IG49YS5qb2luW3NdKHQsZSxyLGEpO2lmKG49PT0hMHx8bj09PTEpYnJlYWs7aWYodHlwZW9mIG49PSJudW1iZXIiKXJldHVybmAKYC5yZXBlYXQoMStuKTtpZihuPT09ITEpcmV0dXJuYAoKPCEtLS0tPgoKYH1yZXR1cm5gCgpgfXZhciBvcnI9dSgoKT0+e2kobnJyLCJjb250YWluZXJGbG93Iik7aShTTWEsImJldHdlZW4iKX0pO2Z1bmN0aW9uIGxycih0LGUpe2xldCByPVtdLGE9MCxzPTAsbjtmb3IoO249TU1hLmV4ZWModCk7KW8odC5zbGljZShhLG4uaW5kZXgpKSxyLnB1c2goblswXSksYT1uLmluZGV4K25bMF0ubGVuZ3RoLHMrKztyZXR1cm4gbyh0LnNsaWNlKGEpKSxyLmpvaW4oIiIpO2Z1bmN0aW9uIG8obCl7ci5wdXNoKGUobCxzLCFsKSl9aShvLCJvbmUiKX12YXIgTU1hLGNycj11KCgpPT57TU1hPS9ccj9cbnxcci9nO2kobHJyLCJpbmRlbnRMaW5lcyIpfSk7ZnVuY3Rpb24gdXJyKHQsZSxyKXtsZXQgYT0oci5iZWZvcmV8fCIiKSsoZXx8IiIpKyhyLmFmdGVyfHwiIikscz1bXSxuPVtdLG89e30sbD0tMTtmb3IoOysrbDx0LnVuc2FmZS5sZW5ndGg7KXtsZXQgZj10LnVuc2FmZVtsXTtpZighR2RlKHQuc3RhY2ssZikpY29udGludWU7bGV0IHA9dC5jb21waWxlUGF0dGVybihmKSxoO2Zvcig7aD1wLmV4ZWMoYSk7KXtsZXQgbT0iYmVmb3JlImluIGZ8fCEhZi5hdEJyZWFrLHY9ImFmdGVyImluIGYsYj1oLmluZGV4KyhtP2hbMV0ubGVuZ3RoOjApO3MuaW5jbHVkZXMoYik/KG9bYl0uYmVmb3JlJiYhbSYmKG9bYl0uYmVmb3JlPSExKSxvW2JdLmFmdGVyJiYhdiYmKG9bYl0uYWZ0ZXI9ITEpKToocy5wdXNoKGIpLG9bYl09e2JlZm9yZTptLGFmdGVyOnZ9KX19cy5zb3J0KENNYSk7bGV0IGM9ci5iZWZvcmU/ci5iZWZvcmUubGVuZ3RoOjAsZD1hLmxlbmd0aC0oci5hZnRlcj9yLmFmdGVyLmxlbmd0aDowKTtmb3IobD0tMTsrK2w8cy5sZW5ndGg7KXtsZXQgZj1zW2xdO2Y8Y3x8Zj49ZHx8ZisxPGQmJnNbbCsxXT09PWYrMSYmb1tmXS5hZnRlciYmIW9bZisxXS5iZWZvcmUmJiFvW2YrMV0uYWZ0ZXJ8fHNbbC0xXT09PWYtMSYmb1tmXS5iZWZvcmUmJiFvW2YtMV0uYmVmb3JlJiYhb1tmLTFdLmFmdGVyfHwoYyE9PWYmJm4ucHVzaChkcnIoYS5zbGljZShjLGYpLCJcXCIpKSxjPWYsL1shLS86LUBbLWB7LX5dLy50ZXN0KGEuY2hhckF0KGYpKSYmKCFyLmVuY29kZXx8IXIuZW5jb2RlLmluY2x1ZGVzKGEuY2hhckF0KGYpKSk/bi5wdXNoKCJcXCIpOihuLnB1c2gocmwoYS5jaGFyQ29kZUF0KGYpKSksYysrKSl9cmV0dXJuIG4ucHVzaChkcnIoYS5zbGljZShjLGQpLHIuYWZ0ZXIpKSxuLmpvaW4oIiIpfWZ1bmN0aW9uIENNYSh0LGUpe3JldHVybiB0LWV9ZnVuY3Rpb24gZHJyKHQsZSl7bGV0IHI9L1xcKD89WyEtLzotQFstYHstfl0pL2csYT1bXSxzPVtdLG49dCtlLG89LTEsbD0wLGM7Zm9yKDtjPXIuZXhlYyhuKTspYS5wdXNoKGMuaW5kZXgpO2Zvcig7KytvPGEubGVuZ3RoOylsIT09YVtvXSYmcy5wdXNoKHQuc2xpY2UobCxhW29dKSkscy5wdXNoKCJcXCIpLGw9YVtvXTtyZXR1cm4gcy5wdXNoKHQuc2xpY2UobCkpLHMuam9pbigiIil9dmFyIHBycj11KCgpPT57WHYoKTtzTGUoKTtpKHVyciwic2FmZSIpO2koQ01hLCJudW1lcmljYWwiKTtpKGRyciwiZXNjYXBlQmFja3NsYXNoZXMiKX0pO2Z1bmN0aW9uIGZycih0KXtsZXQgZT10fHx7fSxyPWUubm93fHx7fSxhPWUubGluZVNoaWZ0fHwwLHM9ci5saW5lfHwxLG49ci5jb2x1bW58fDE7cmV0dXJue21vdmU6YyxjdXJyZW50Om8sc2hpZnQ6bH07ZnVuY3Rpb24gbygpe3JldHVybntub3c6e2xpbmU6cyxjb2x1bW46bn0sbGluZVNoaWZ0OmF9fWZ1bmN0aW9uIGwoZCl7YSs9ZH1mdW5jdGlvbiBjKGQpe2xldCBmPWR8fCIiLHA9Zi5zcGxpdCgvXHI/XG58XHIvZyksaD1wW3AubGVuZ3RoLTFdO3JldHVybiBzKz1wLmxlbmd0aC0xLG49cC5sZW5ndGg9PT0xP24raC5sZW5ndGg6MStoLmxlbmd0aCthLGZ9fXZhciBocnI9dSgoKT0+e2koZnJyLCJ0cmFjayIpfSk7ZnVuY3Rpb24gTUxlKHQsZSl7bGV0IHI9ZXx8e30sYT17YXNzb2NpYXRpb25JZDplcnIsY29udGFpbmVyUGhyYXNpbmc6TE1hLGNvbnRhaW5lckZsb3c6RE1hLGNyZWF0ZVRyYWNrZXI6ZnJyLGNvbXBpbGVQYXR0ZXJuOnJycixlbnRlcjpuLGhhbmRsZXJzOnsuLi5QNn0saGFuZGxlOnZvaWQgMCxpbmRlbnRMaW5lczpscnIsaW5kZXhTdGFjazpbXSxqb2luOlsuLi5LdHJdLG9wdGlvbnM6e30sc2FmZTokTWEsc3RhY2s6W10sdW5zYWZlOlsuLi5RdHJdfTtpTGUoYSxyKSxhLm9wdGlvbnMudGlnaHREZWZpbml0aW9ucyYmYS5qb2luLnB1c2goVE1hKSxhLmhhbmRsZT1XZGUoInR5cGUiLHtpbnZhbGlkOnpNYSx1bmtub3duOl9NYSxoYW5kbGVyczphLmhhbmRsZXJzfSk7bGV0IHM9YS5oYW5kbGUodCx2b2lkIDAsYSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsbm93OntsaW5lOjEsY29sdW1uOjF9LGxpbmVTaGlmdDowfSk7cmV0dXJuIHMmJnMuY2hhckNvZGVBdChzLmxlbmd0aC0xKSE9PTEwJiZzLmNoYXJDb2RlQXQocy5sZW5ndGgtMSkhPT0xMyYmKHMrPWAKYCkscztmdW5jdGlvbiBuKG8pe3JldHVybiBhLnN0YWNrLnB1c2gobyksbDtmdW5jdGlvbiBsKCl7YS5zdGFjay5wb3AoKX1pKGwsImV4aXQiKX1pKG4sImVudGVyIil9ZnVuY3Rpb24gek1hKHQpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGhhbmRsZSB2YWx1ZSBgIit0KyJgLCBleHBlY3RlZCBub2RlIil9ZnVuY3Rpb24gX01hKHQpe2xldCBlPXQ7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaGFuZGxlIHVua25vd24gbm9kZSBgIitlLnR5cGUrImAiKX1mdW5jdGlvbiBUTWEodCxlKXtpZih0LnR5cGU9PT0iZGVmaW5pdGlvbiImJnQudHlwZT09PWUudHlwZSlyZXR1cm4gMH1mdW5jdGlvbiBMTWEodCxlKXtyZXR1cm4gaXJyKHQsdGhpcyxlKX1mdW5jdGlvbiBETWEodCxlKXtyZXR1cm4gbnJyKHQsdGhpcyxlKX1mdW5jdGlvbiAkTWEodCxlKXtyZXR1cm4gdXJyKHRoaXMsdCxlKX12YXIgbXJyPXUoKCk9PnthTGUoKTtLZXIoKTtrTGUoKTtadHIoKTtYdHIoKTt0cnIoKTthcnIoKTtzcnIoKTtvcnIoKTtjcnIoKTtwcnIoKTtocnIoKTtpKE1MZSwidG9NYXJrZG93biIpO2koek1hLCJpbnZhbGlkIik7aShfTWEsInVua25vd24iKTtpKFRNYSwiam9pbkRlZmluaXRpb24iKTtpKExNYSwiY29udGFpbmVyUGhyYXNpbmdCb3VuZCIpO2koRE1hLCJjb250YWluZXJGbG93Qm91bmQiKTtpKCRNYSwic2FmZUJvdW5kIil9KTt2YXIgcjRlPXUoKCk9PnttcnIoKTtrTGUoKX0pO2Z1bmN0aW9uIHpMZSgpe3JldHVybntlbnRlcjp7dGFibGU6QU1hLHRhYmxlRGF0YTpncnIsdGFibGVIZWFkZXI6Z3JyLHRhYmxlUm93OklNYX0sZXhpdDp7Y29kZVRleHQ6UE1hLHRhYmxlOkVNYSx0YWJsZURhdGE6Q0xlLHRhYmxlSGVhZGVyOkNMZSx0YWJsZVJvdzpDTGV9fX1mdW5jdGlvbiBBTWEodCl7bGV0IGU9dC5fYWxpZ247dGhpcy5lbnRlcih7dHlwZToidGFibGUiLGFsaWduOmUubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByPT09Im5vbmUiP251bGw6cn0pLGNoaWxkcmVuOltdfSx0KSx0aGlzLmRhdGEuaW5UYWJsZT0hMH1mdW5jdGlvbiBFTWEodCl7dGhpcy5leGl0KHQpLHRoaXMuZGF0YS5pblRhYmxlPXZvaWQgMH1mdW5jdGlvbiBJTWEodCl7dGhpcy5lbnRlcih7dHlwZToidGFibGVSb3ciLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBDTGUodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIGdycih0KXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZUNlbGwiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBQTWEodCl7bGV0IGU9dGhpcy5yZXN1bWUoKTt0aGlzLmRhdGEuaW5UYWJsZSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyxOTWEpKTtsZXQgcj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3IudHlwZSxyLnZhbHVlPWUsdGhpcy5leGl0KHQpfWZ1bmN0aW9uIE5NYSh0LGUpe3JldHVybiBlPT09InwiP2U6dH1mdW5jdGlvbiBfTGUodCl7bGV0IGU9dHx8e30scj1lLnRhYmxlQ2VsbFBhZGRpbmcsYT1lLnRhYmxlUGlwZUFsaWduLHM9ZS5zdHJpbmdMZW5ndGgsbj1yPyIgIjoifCI7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ8IixhZnRlcjoiWwkgOi1dIn0se2NoYXJhY3RlcjoifCIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiOiIsYWZ0ZXI6Ii0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7aW5saW5lQ29kZTpoLHRhYmxlOm8sdGFibGVDZWxsOmMsdGFibGVSb3c6bH19O2Z1bmN0aW9uIG8obSx2LGIsZyl7cmV0dXJuIGQoZihtLGIsZyksbS5hbGlnbil9ZnVuY3Rpb24gbChtLHYsYixnKXtsZXQgeT1wKG0sYixnKSxrPWQoW3ldKTtyZXR1cm4gay5zbGljZSgwLGsuaW5kZXhPZihgCmApKX1mdW5jdGlvbiBjKG0sdixiLGcpe2xldCB5PWIuZW50ZXIoInRhYmxlQ2VsbCIpLGs9Yi5lbnRlcigicGhyYXNpbmciKSxNPWIuY29udGFpbmVyUGhyYXNpbmcobSx7Li4uZyxiZWZvcmU6bixhZnRlcjpufSk7cmV0dXJuIGsoKSx5KCksTX1mdW5jdGlvbiBkKG0sdil7cmV0dXJuIFVlcihtLHthbGlnbjp2LGFsaWduRGVsaW1pdGVyczphLHBhZGRpbmc6cixzdHJpbmdMZW5ndGg6c30pfWZ1bmN0aW9uIGYobSx2LGIpe2xldCBnPW0uY2hpbGRyZW4seT0tMSxrPVtdLE09di5lbnRlcigidGFibGUiKTtmb3IoOysreTxnLmxlbmd0aDspa1t5XT1wKGdbeV0sdixiKTtyZXR1cm4gTSgpLGt9ZnVuY3Rpb24gcChtLHYsYil7bGV0IGc9bS5jaGlsZHJlbix5PS0xLGs9W10sTT12LmVudGVyKCJ0YWJsZVJvdyIpO2Zvcig7Kyt5PGcubGVuZ3RoOylrW3ldPWMoZ1t5XSxtLHYsYik7cmV0dXJuIE0oKSxrfWZ1bmN0aW9uIGgobSx2LGIpe2xldCBnPVA2LmlubGluZUNvZGUobSx2LGIpO3JldHVybiBiLnN0YWNrLmluY2x1ZGVzKCJ0YWJsZUNlbGwiKSYmKGc9Zy5yZXBsYWNlKC9cfC9nLCJcXCQmIikpLGd9fXZhciBicnI9dSgoKT0+e21wKCk7V2VyKCk7cjRlKCk7aSh6TGUsImdmbVRhYmxlRnJvbU1hcmtkb3duIik7aShBTWEsImVudGVyVGFibGUiKTtpKEVNYSwiZXhpdFRhYmxlIik7aShJTWEsImVudGVyUm93Iik7aShDTGUsImV4aXQiKTtpKGdyciwiZW50ZXJDZWxsIik7aShQTWEsImV4aXRDb2RlVGV4dCIpO2koTk1hLCJyZXBsYWNlIik7aShfTGUsImdmbVRhYmxlVG9NYXJrZG93biIpfSk7dmFyIHhycj11KCgpPT57YnJyKCl9KTtmdW5jdGlvbiBUTGUoKXtyZXR1cm57ZXhpdDp7dGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZDp2cnIsdGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkOnZycixwYXJhZ3JhcGg6T01hfX19ZnVuY3Rpb24gTExlKCl7cmV0dXJue3Vuc2FmZTpbe2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjoiWzp8LV0ifV0saGFuZGxlcnM6e2xpc3RJdGVtOlJNYX19fWZ1bmN0aW9uIHZycih0KXtsZXQgZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2UudHlwZSxlLmNoZWNrZWQ9dC50eXBlPT09InRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQifWZ1bmN0aW9uIE9NYSh0KXtsZXQgZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2lmKGUmJmUudHlwZT09PSJsaXN0SXRlbSImJnR5cGVvZiBlLmNoZWNrZWQ9PSJib29sZWFuIil7bGV0IHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyLnR5cGU7bGV0IGE9ci5jaGlsZHJlblswXTtpZihhJiZhLnR5cGU9PT0idGV4dCIpe2xldCBzPWUuY2hpbGRyZW4sbj0tMSxvO2Zvcig7KytuPHMubGVuZ3RoOyl7bGV0IGw9c1tuXTtpZihsLnR5cGU9PT0icGFyYWdyYXBoIil7bz1sO2JyZWFrfX1vPT09ciYmKGEudmFsdWU9YS52YWx1ZS5zbGljZSgxKSxhLnZhbHVlLmxlbmd0aD09PTA/ci5jaGlsZHJlbi5zaGlmdCgpOnIucG9zaXRpb24mJmEucG9zaXRpb24mJnR5cGVvZiBhLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldD09Im51bWJlciImJihhLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbisrLGEucG9zaXRpb24uc3RhcnQub2Zmc2V0Kyssci5wb3NpdGlvbi5zdGFydD1PYmplY3QuYXNzaWduKHt9LGEucG9zaXRpb24uc3RhcnQpKSl9fXRoaXMuZXhpdCh0KX1mdW5jdGlvbiBSTWEodCxlLHIsYSl7bGV0IHM9dC5jaGlsZHJlblswXSxuPXR5cGVvZiB0LmNoZWNrZWQ9PSJib29sZWFuIiYmcyYmcy50eXBlPT09InBhcmFncmFwaCIsbz0iWyIrKHQuY2hlY2tlZD8ieCI6IiAiKSsiXSAiLGw9ci5jcmVhdGVUcmFja2VyKGEpO24mJmwubW92ZShvKTtsZXQgYz1QNi5saXN0SXRlbSh0LGUscix7Li4uYSwuLi5sLmN1cnJlbnQoKX0pO3JldHVybiBuJiYoYz1jLnJlcGxhY2UoL14oPzpbKistXXxcZCtcLikoW1xyXG5dfCB7MSwzfSkvLGQpKSxjO2Z1bmN0aW9uIGQoZil7cmV0dXJuIGYrb31pKGQsImNoZWNrIil9dmFyIHlycj11KCgpPT57bXAoKTtyNGUoKTtpKFRMZSwiZ2ZtVGFza0xpc3RJdGVtRnJvbU1hcmtkb3duIik7aShMTGUsImdmbVRhc2tMaXN0SXRlbVRvTWFya2Rvd24iKTtpKHZyciwiZXhpdENoZWNrIik7aShPTWEsImV4aXRQYXJhZ3JhcGhXaXRoVGFza0xpc3RJdGVtIik7aShSTWEsImxpc3RJdGVtV2l0aFRhc2tMaXN0SXRlbSIpfSk7dmFyIHdycj11KCgpPT57eXJyKCl9KTtmdW5jdGlvbiBETGUoKXtyZXR1cm5bUVRlKCksSlRlKCksdExlKCksekxlKCksVExlKCldfWZ1bmN0aW9uICRMZSh0KXtyZXR1cm57ZXh0ZW5zaW9uczpbWFRlKCksZUxlKHQpLHJMZSgpLF9MZSh0KSxMTGUoKV19fXZhciBrcnI9dSgoKT0+e05lcigpO0JlcigpO1ZlcigpO3hycigpO3dycigpO2koRExlLCJnZm1Gcm9tTWFya2Rvd24iKTtpKCRMZSwiZ2ZtVG9NYXJrZG93biIpfSk7dmFyIFNycj11KCgpPT57a3JyKCl9KTtmdW5jdGlvbiBycyh0LGUscixhKXtsZXQgcz10Lmxlbmd0aCxuPTAsbztpZihlPDA/ZT0tZT5zPzA6cytlOmU9ZT5zP3M6ZSxyPXI+MD9yOjAsYS5sZW5ndGg8MWU0KW89QXJyYXkuZnJvbShhKSxvLnVuc2hpZnQoZSxyKSx0LnNwbGljZSguLi5vKTtlbHNlIGZvcihyJiZ0LnNwbGljZShlLHIpO248YS5sZW5ndGg7KW89YS5zbGljZShuLG4rMWU0KSxvLnVuc2hpZnQoZSwwKSx0LnNwbGljZSguLi5vKSxuKz0xZTQsZSs9MWU0fWZ1bmN0aW9uIENzKHQsZSl7cmV0dXJuIHQubGVuZ3RoPjA/KHJzKHQsdC5sZW5ndGgsMCxlKSx0KTplfXZhciBHMD11KCgpPT57aShycywic3BsaWNlIik7aShDcywicHVzaCIpfSk7ZnVuY3Rpb24gYTRlKHQpe2xldCBlPXt9LHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KUZNYShlLHRbcl0pO3JldHVybiBlfWZ1bmN0aW9uIEZNYSh0LGUpe2xldCByO2ZvcihyIGluIGUpe2xldCBzPShBTGUuY2FsbCh0LHIpP3Rbcl06dm9pZCAwKXx8KHRbcl09e30pLG49ZVtyXSxvO2lmKG4pZm9yKG8gaW4gbil7QUxlLmNhbGwocyxvKXx8KHNbb109W10pO2xldCBsPW5bb107Qk1hKHNbb10sQXJyYXkuaXNBcnJheShsKT9sOmw/W2xdOltdKX19fWZ1bmN0aW9uIEJNYSh0LGUpe2xldCByPS0xLGE9W107Zm9yKDsrK3I8ZS5sZW5ndGg7KShlW3JdLmFkZD09PSJhZnRlciI/dDphKS5wdXNoKGVbcl0pO3JzKHQsMCwwLGEpfWZ1bmN0aW9uIGk0ZSh0KXtsZXQgZT17fSxyPS0xO2Zvcig7KytyPHQubGVuZ3RoOylITWEoZSx0W3JdKTtyZXR1cm4gZX1mdW5jdGlvbiBITWEodCxlKXtsZXQgcjtmb3IociBpbiBlKXtsZXQgcz0oQUxlLmNhbGwodCxyKT90W3JdOnZvaWQgMCl8fCh0W3JdPXt9KSxuPWVbcl0sbztpZihuKWZvcihvIGluIG4pc1tvXT1uW29dfX12YXIgQUxlLHM0ZT11KCgpPT57RzAoKTtBTGU9e30uaGFzT3duUHJvcGVydHk7aShhNGUsImNvbWJpbmVFeHRlbnNpb25zIik7aShGTWEsInN5bnRheEV4dGVuc2lvbiIpO2koQk1hLCJjb25zdHJ1Y3RzIik7aShpNGUsImNvbWJpbmVIdG1sRXh0ZW5zaW9ucyIpO2koSE1hLCJodG1sRXh0ZW5zaW9uIil9KTtmdW5jdGlvbiBQTGUoKXtyZXR1cm57dGV4dDpZMH19ZnVuY3Rpb24gak1hKHQsZSxyKXtsZXQgYT10aGlzLHMsbjtyZXR1cm4gbztmdW5jdGlvbiBvKHApe3JldHVybiFFTGUocCl8fCEkcnIuY2FsbChhLGEucHJldmlvdXMpfHxJTGUoYS5ldmVudHMpP3IocCk6KHQuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLHQuZW50ZXIoImxpdGVyYWxBdXRvbGlua0VtYWlsIiksbChwKSl9ZnVuY3Rpb24gbChwKXtyZXR1cm4gRUxlKHApPyh0LmNvbnN1bWUocCksbCk6cD09PTY0Pyh0LmNvbnN1bWUocCksYyk6cihwKX1mdW5jdGlvbiBjKHApe3JldHVybiBwPT09NDY/dC5jaGVjayhWTWEsZixkKShwKTpwPT09NDV8fHA9PT05NXx8QmkocCk/KG49ITAsdC5jb25zdW1lKHApLGMpOmYocCl9ZnVuY3Rpb24gZChwKXtyZXR1cm4gdC5jb25zdW1lKHApLHM9ITAsY31mdW5jdGlvbiBmKHApe3JldHVybiBuJiZzJiZKcyhhLnByZXZpb3VzKT8odC5leGl0KCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpLHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShwKSk6cihwKX19ZnVuY3Rpb24gVU1hKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIG8hPT04NyYmbyE9PTExOXx8IUxyci5jYWxsKGEsYS5wcmV2aW91cyl8fElMZShhLmV2ZW50cyk/cihvKToodC5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksdC5lbnRlcigibGl0ZXJhbEF1dG9saW5rV3d3IiksdC5jaGVjayhxTWEsdC5hdHRlbXB0KE1ycix0LmF0dGVtcHQoQ3JyLG4pLHIpLHIpKG8pKX1mdW5jdGlvbiBuKG8pe3JldHVybiB0LmV4aXQoImxpdGVyYWxBdXRvbGlua1d3dyIpLHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShvKX19ZnVuY3Rpb24gV01hKHQsZSxyKXtsZXQgYT10aGlzLHM9IiIsbj0hMTtyZXR1cm4gbztmdW5jdGlvbiBvKHApe3JldHVybihwPT09NzJ8fHA9PT0xMDQpJiZEcnIuY2FsbChhLGEucHJldmlvdXMpJiYhSUxlKGEuZXZlbnRzKT8odC5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksdC5lbnRlcigibGl0ZXJhbEF1dG9saW5rSHR0cCIpLHMrPVN0cmluZy5mcm9tQ29kZVBvaW50KHApLHQuY29uc3VtZShwKSxsKTpyKHApfWZ1bmN0aW9uIGwocCl7aWYoSnMocCkmJnMubGVuZ3RoPDUpcmV0dXJuIHMrPVN0cmluZy5mcm9tQ29kZVBvaW50KHApLHQuY29uc3VtZShwKSxsO2lmKHA9PT01OCl7bGV0IGg9cy50b0xvd2VyQ2FzZSgpO2lmKGg9PT0iaHR0cCJ8fGg9PT0iaHR0cHMiKXJldHVybiB0LmNvbnN1bWUocCksY31yZXR1cm4gcihwKX1mdW5jdGlvbiBjKHApe3JldHVybiBwPT09NDc/KHQuY29uc3VtZShwKSxuP2Q6KG49ITAsYykpOnIocCl9ZnVuY3Rpb24gZChwKXtyZXR1cm4gcD09PW51bGx8fCQ2KHApfHxCcihwKXx8VzAocCl8fEE2KHApP3IocCk6dC5hdHRlbXB0KE1ycix0LmF0dGVtcHQoQ3JyLGYpLHIpKHApfWZ1bmN0aW9uIGYocCl7cmV0dXJuIHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rSHR0cCIpLHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShwKX19ZnVuY3Rpb24gR01hKHQsZSxyKXtsZXQgYT0wO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuKG89PT04N3x8bz09PTExOSkmJmE8Mz8oYSsrLHQuY29uc3VtZShvKSxzKTpvPT09NDYmJmE9PT0zPyh0LmNvbnN1bWUobyksbik6cihvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09bnVsbD9yKG8pOmUobyl9fWZ1bmN0aW9uIFlNYSh0LGUscil7bGV0IGEscyxuO3JldHVybiBvO2Z1bmN0aW9uIG8oZCl7cmV0dXJuIGQ9PT00Nnx8ZD09PTk1P3QuY2hlY2soenJyLGMsbCkoZCk6ZD09PW51bGx8fEJyKGQpfHxXMChkKXx8ZCE9PTQ1JiZBNihkKT9jKGQpOihuPSEwLHQuY29uc3VtZShkKSxvKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09OTU/YT0hMDoocz1hLGE9dm9pZCAwKSx0LmNvbnN1bWUoZCksb31mdW5jdGlvbiBjKGQpe3JldHVybiBzfHxhfHwhbj9yKGQpOmUoZCl9fWZ1bmN0aW9uIEtNYSh0LGUpe2xldCByPTAsYT0wO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIG89PT00MD8ocisrLHQuY29uc3VtZShvKSxzKTpvPT09NDEmJmE8cj9uKG8pOm89PT0zM3x8bz09PTM0fHxvPT09Mzh8fG89PT0zOXx8bz09PTQxfHxvPT09NDJ8fG89PT00NHx8bz09PTQ2fHxvPT09NTh8fG89PT01OXx8bz09PTYwfHxvPT09NjN8fG89PT05M3x8bz09PTk1fHxvPT09MTI2P3QuY2hlY2soenJyLGUsbikobyk6bz09PW51bGx8fEJyKG8pfHxXMChvKT9lKG8pOih0LmNvbnN1bWUobykscyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PTQxJiZhKyssdC5jb25zdW1lKG8pLHN9fWZ1bmN0aW9uIFpNYSh0LGUscil7cmV0dXJuIGE7ZnVuY3Rpb24gYShsKXtyZXR1cm4gbD09PTMzfHxsPT09MzR8fGw9PT0zOXx8bD09PTQxfHxsPT09NDJ8fGw9PT00NHx8bD09PTQ2fHxsPT09NTh8fGw9PT01OXx8bD09PTYzfHxsPT09OTV8fGw9PT0xMjY/KHQuY29uc3VtZShsKSxhKTpsPT09Mzg/KHQuY29uc3VtZShsKSxuKTpsPT09OTM/KHQuY29uc3VtZShsKSxzKTpsPT09NjB8fGw9PT1udWxsfHxCcihsKXx8VzAobCk/ZShsKTpyKGwpfWZ1bmN0aW9uIHMobCl7cmV0dXJuIGw9PT1udWxsfHxsPT09NDB8fGw9PT05MXx8QnIobCl8fFcwKGwpP2UobCk6YShsKX1mdW5jdGlvbiBuKGwpe3JldHVybiBKcyhsKT9vKGwpOnIobCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gbD09PTU5Pyh0LmNvbnN1bWUobCksYSk6SnMobCk/KHQuY29uc3VtZShsKSxvKTpyKGwpfX1mdW5jdGlvbiBRTWEodCxlLHIpe3JldHVybiBhO2Z1bmN0aW9uIGEobil7cmV0dXJuIHQuY29uc3VtZShuKSxzfWZ1bmN0aW9uIHMobil7cmV0dXJuIEJpKG4pP3Iobik6ZShuKX19ZnVuY3Rpb24gTHJyKHQpe3JldHVybiB0PT09bnVsbHx8dD09PTQwfHx0PT09NDJ8fHQ9PT05NXx8dD09PTkxfHx0PT09OTN8fHQ9PT0xMjZ8fEJyKHQpfWZ1bmN0aW9uIERycih0KXtyZXR1cm4hSnModCl9ZnVuY3Rpb24gJHJyKHQpe3JldHVybiEodD09PTQ3fHxFTGUodCkpfWZ1bmN0aW9uIEVMZSh0KXtyZXR1cm4gdD09PTQzfHx0PT09NDV8fHQ9PT00Nnx8dD09PTk1fHxCaSh0KX1mdW5jdGlvbiBJTGUodCl7bGV0IGU9dC5sZW5ndGgscj0hMTtmb3IoO2UtLTspe2xldCBhPXRbZV1bMV07aWYoKGEudHlwZT09PSJsYWJlbExpbmsifHxhLnR5cGU9PT0ibGFiZWxJbWFnZSIpJiYhYS5fYmFsYW5jZWQpe3I9ITA7YnJlYWt9aWYoYS5fZ2ZtQXV0b2xpbmtMaXRlcmFsV2Fsa2VkSW50byl7cj0hMTticmVha319cmV0dXJuIHQubGVuZ3RoPjAmJiFyJiYodFt0Lmxlbmd0aC0xXVsxXS5fZ2ZtQXV0b2xpbmtMaXRlcmFsV2Fsa2VkSW50bz0hMCkscn12YXIgcU1hLE1ycixDcnIsenJyLFZNYSxfcnIsVHJyLCQ0LFkwLEFycj11KCgpPT57WXIoKTtxTWE9e3Rva2VuaXplOkdNYSxwYXJ0aWFsOiEwfSxNcnI9e3Rva2VuaXplOllNYSxwYXJ0aWFsOiEwfSxDcnI9e3Rva2VuaXplOktNYSxwYXJ0aWFsOiEwfSx6cnI9e3Rva2VuaXplOlpNYSxwYXJ0aWFsOiEwfSxWTWE9e3Rva2VuaXplOlFNYSxwYXJ0aWFsOiEwfSxfcnI9e25hbWU6Ind3d0F1dG9saW5rIix0b2tlbml6ZTpVTWEscHJldmlvdXM6THJyfSxUcnI9e25hbWU6InByb3RvY29sQXV0b2xpbmsiLHRva2VuaXplOldNYSxwcmV2aW91czpEcnJ9LCQ0PXtuYW1lOiJlbWFpbEF1dG9saW5rIix0b2tlbml6ZTpqTWEscHJldmlvdXM6JHJyfSxZMD17fTtpKFBMZSwiZ2ZtQXV0b2xpbmtMaXRlcmFsIik7Zm9yKHZhciBPNj00ODtPNjwxMjM7KVkwW082XT0kNCxPNisrLE82PT09NTg/TzY9NjU6TzY9PT05MSYmKE82PTk3KTtZMFs0M109JDQsWTBbNDVdPSQ0LFkwWzQ2XT0kNCxZMFs5NV09JDQsWTBbNzJdPVskNCxUcnJdLFkwWzEwNF09WyQ0LFRycl0sWTBbODddPVskNCxfcnJdLFkwWzExOV09WyQ0LF9ycl07aShqTWEsInRva2VuaXplRW1haWxBdXRvbGluayIpO2koVU1hLCJ0b2tlbml6ZVd3d0F1dG9saW5rIik7aShXTWEsInRva2VuaXplUHJvdG9jb2xBdXRvbGluayIpO2koR01hLCJ0b2tlbml6ZVd3d1ByZWZpeCIpO2koWU1hLCJ0b2tlbml6ZURvbWFpbiIpO2koS01hLCJ0b2tlbml6ZVBhdGgiKTtpKFpNYSwidG9rZW5pemVUcmFpbCIpO2koUU1hLCJ0b2tlbml6ZUVtYWlsRG9tYWluRG90VHJhaWwiKTtpKExyciwicHJldmlvdXNXd3ciKTtpKERyciwicHJldmlvdXNQcm90b2NvbCIpO2koJHJyLCJwcmV2aW91c0VtYWlsIik7aShFTGUsImdmbUF0ZXh0Iik7aShJTGUsInByZXZpb3VzVW5iYWxhbmNlZCIpfSk7ZnVuY3Rpb24gbjRlKHQpe3JldHVybiB0LnJlcGxhY2UoL1siJjw+XS9nLGUpO2Z1bmN0aW9uIGUocil7cmV0dXJuIiYiK1hNYVtyXSsiOyJ9fXZhciBYTWEsTkxlPXUoKCk9PntYTWE9eyciJzoicXVvdCIsIiYiOiJhbXAiLCI8IjoibHQiLCI+IjoiZ3QifTtpKG40ZSwiZW5jb2RlIil9KTtmdW5jdGlvbiBLMCh0LGUpe2xldCByPW40ZShhbCh0fHwiIikpO2lmKCFlKXJldHVybiByO2xldCBhPXIuaW5kZXhPZigiOiIpLHM9ci5pbmRleE9mKCI/Iiksbj1yLmluZGV4T2YoIiMiKSxvPXIuaW5kZXhPZigiLyIpO3JldHVybiBhPDB8fG8+LTEmJmE+b3x8cz4tMSYmYT5zfHxuPi0xJiZhPm58fGUudGVzdChyLnNsaWNlKDAsYSkpP3I6IiJ9ZnVuY3Rpb24gYWwodCl7bGV0IGU9W10scj0tMSxhPTAscz0wO2Zvcig7KytyPHQubGVuZ3RoOyl7bGV0IG49dC5jaGFyQ29kZUF0KHIpLG89IiI7aWYobj09PTM3JiZCaSh0LmNoYXJDb2RlQXQocisxKSkmJkJpKHQuY2hhckNvZGVBdChyKzIpKSlzPTI7ZWxzZSBpZihuPDEyOCkvWyEjJCYtOz0/LVpfYS16fl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuKSl8fChvPVN0cmluZy5mcm9tQ2hhckNvZGUobikpO2Vsc2UgaWYobj41NTI5NSYmbjw1NzM0NCl7bGV0IGw9dC5jaGFyQ29kZUF0KHIrMSk7bjw1NjMyMCYmbD41NjMxOSYmbDw1NzM0ND8obz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4sbCkscz0xKTpvPSJcdUZGRkQifWVsc2Ugbz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pO28mJihlLnB1c2godC5zbGljZShhLHIpLGVuY29kZVVSSUNvbXBvbmVudChvKSksYT1yK3MrMSxvPSIiKSxzJiYocis9cyxzPTApfXJldHVybiBlLmpvaW4oIiIpK3Quc2xpY2UoYSl9dmFyIFowPXUoKCk9PntZcigpO05MZSgpO2koSzAsInNhbml0aXplVXJpIik7aShhbCwibm9ybWFsaXplVXJpIil9KTtmdW5jdGlvbiBSTGUoKXtyZXR1cm57ZXhpdDp7bGl0ZXJhbEF1dG9saW5rRW1haWw6ZUNhLGxpdGVyYWxBdXRvbGlua0h0dHA6dENhLGxpdGVyYWxBdXRvbGlua1d3dzpKTWF9fX1mdW5jdGlvbiBKTWEodCl7T0xlLmNhbGwodGhpcyx0LCJodHRwOi8vIil9ZnVuY3Rpb24gZUNhKHQpe09MZS5jYWxsKHRoaXMsdCwibWFpbHRvOiIpfWZ1bmN0aW9uIHRDYSh0KXtPTGUuY2FsbCh0aGlzLHQpfWZ1bmN0aW9uIE9MZSh0LGUpe2xldCByPXRoaXMuc2xpY2VTZXJpYWxpemUodCk7dGhpcy50YWcoJzxhIGhyZWY9IicrSzAoKGV8fCIiKStyKSsnIj4nKSx0aGlzLnJhdyh0aGlzLmVuY29kZShyKSksdGhpcy50YWcoIjwvYT4iKX12YXIgRXJyPXUoKCk9PntaMCgpO2koUkxlLCJnZm1BdXRvbGlua0xpdGVyYWxIdG1sIik7aShKTWEsImxpdGVyYWxBdXRvbGlua1d3dyIpO2koZUNhLCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpO2kodENhLCJsaXRlcmFsQXV0b2xpbmtIdHRwIik7aShPTGUsImFuY2hvckZyb21Ub2tlbiIpfSk7dmFyIElycj11KCgpPT57QXJyKCk7RXJyKCl9KTtmdW5jdGlvbiB5cCh0LGUscil7bGV0IGE9W10scz0tMTtmb3IoOysrczx0Lmxlbmd0aDspe2xldCBuPXRbc10ucmVzb2x2ZUFsbDtuJiYhYS5pbmNsdWRlcyhuKSYmKGU9bihlLHIpLGEucHVzaChuKSl9cmV0dXJuIGV9dmFyIFJ6PXUoKCk9PntpKHlwLCJyZXNvbHZlQWxsIil9KTtmdW5jdGlvbiByQ2EodCxlKXtsZXQgcj0tMSxhLHMsbixvLGwsYyxkLGY7Zm9yKDsrK3I8dC5sZW5ndGg7KWlmKHRbcl1bMF09PT0iZW50ZXIiJiZ0W3JdWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiZ0W3JdWzFdLl9jbG9zZSl7Zm9yKGE9cjthLS07KWlmKHRbYV1bMF09PT0iZXhpdCImJnRbYV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJnRbYV1bMV0uX29wZW4mJmUuc2xpY2VTZXJpYWxpemUodFthXVsxXSkuY2hhckNvZGVBdCgwKT09PWUuc2xpY2VTZXJpYWxpemUodFtyXVsxXSkuY2hhckNvZGVBdCgwKSl7aWYoKHRbYV1bMV0uX2Nsb3NlfHx0W3JdWzFdLl9vcGVuKSYmKHRbcl1bMV0uZW5kLm9mZnNldC10W3JdWzFdLnN0YXJ0Lm9mZnNldCklMyYmISgodFthXVsxXS5lbmQub2Zmc2V0LXRbYV1bMV0uc3RhcnQub2Zmc2V0K3Rbcl1bMV0uZW5kLm9mZnNldC10W3JdWzFdLnN0YXJ0Lm9mZnNldCklMykpY29udGludWU7Yz10W2FdWzFdLmVuZC5vZmZzZXQtdFthXVsxXS5zdGFydC5vZmZzZXQ+MSYmdFtyXVsxXS5lbmQub2Zmc2V0LXRbcl1bMV0uc3RhcnQub2Zmc2V0PjE/MjoxO2xldCBwPXsuLi50W2FdWzFdLmVuZH0saD17Li4udFtyXVsxXS5zdGFydH07UHJyKHAsLWMpLFBycihoLGMpLG89e3R5cGU6Yz4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnAsZW5kOnsuLi50W2FdWzFdLmVuZH19LGw9e3R5cGU6Yz4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnsuLi50W3JdWzFdLnN0YXJ0fSxlbmQ6aH0sbj17dHlwZTpjPjE/InN0cm9uZ1RleHQiOiJlbXBoYXNpc1RleHQiLHN0YXJ0OnsuLi50W2FdWzFdLmVuZH0sZW5kOnsuLi50W3JdWzFdLnN0YXJ0fX0scz17dHlwZTpjPjE/InN0cm9uZyI6ImVtcGhhc2lzIixzdGFydDp7Li4uby5zdGFydH0sZW5kOnsuLi5sLmVuZH19LHRbYV1bMV0uZW5kPXsuLi5vLnN0YXJ0fSx0W3JdWzFdLnN0YXJ0PXsuLi5sLmVuZH0sZD1bXSx0W2FdWzFdLmVuZC5vZmZzZXQtdFthXVsxXS5zdGFydC5vZmZzZXQmJihkPUNzKGQsW1siZW50ZXIiLHRbYV1bMV0sZV0sWyJleGl0Iix0W2FdWzFdLGVdXSkpLGQ9Q3MoZCxbWyJlbnRlciIscyxlXSxbImVudGVyIixvLGVdLFsiZXhpdCIsbyxlXSxbImVudGVyIixuLGVdXSksZD1DcyhkLHlwKGUucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLHQuc2xpY2UoYSsxLHIpLGUpKSxkPUNzKGQsW1siZXhpdCIsbixlXSxbImVudGVyIixsLGVdLFsiZXhpdCIsbCxlXSxbImV4aXQiLHMsZV1dKSx0W3JdWzFdLmVuZC5vZmZzZXQtdFtyXVsxXS5zdGFydC5vZmZzZXQ/KGY9MixkPUNzKGQsW1siZW50ZXIiLHRbcl1bMV0sZV0sWyJleGl0Iix0W3JdWzFdLGVdXSkpOmY9MCxycyh0LGEtMSxyLWErMyxkKSxyPWErZC5sZW5ndGgtZi0yO2JyZWFrfX1mb3Iocj0tMTsrK3I8dC5sZW5ndGg7KXRbcl1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJih0W3JdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gdH1mdW5jdGlvbiBhQ2EodCxlKXtsZXQgcj10aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmF0dGVudGlvbk1hcmtlcnMubnVsbCxhPXRoaXMucHJldmlvdXMscz1ENChhKSxuO3JldHVybiBvO2Z1bmN0aW9uIG8oYyl7cmV0dXJuIG49Yyx0LmVudGVyKCJhdHRlbnRpb25TZXF1ZW5jZSIpLGwoYyl9ZnVuY3Rpb24gbChjKXtpZihjPT09bilyZXR1cm4gdC5jb25zdW1lKGMpLGw7bGV0IGQ9dC5leGl0KCJhdHRlbnRpb25TZXF1ZW5jZSIpLGY9RDQoYykscD0hZnx8Zj09PTImJnN8fHIuaW5jbHVkZXMoYyksaD0hc3x8cz09PTImJmZ8fHIuaW5jbHVkZXMoYSk7cmV0dXJuIGQuX29wZW49ISEobj09PTQyP3A6cCYmKHN8fCFoKSksZC5fY2xvc2U9ISEobj09PTQyP2g6aCYmKGZ8fCFwKSksZShjKX19ZnVuY3Rpb24gUHJyKHQsZSl7dC5jb2x1bW4rPWUsdC5vZmZzZXQrPWUsdC5fYnVmZmVySW5kZXgrPWV9dmFyIEZ6LE5ycj11KCgpPT57RzAoKTtLZGUoKTtSeigpO0Z6PXtuYW1lOiJhdHRlbnRpb24iLHJlc29sdmVBbGw6ckNhLHRva2VuaXplOmFDYX07aShyQ2EsInJlc29sdmVBbGxBdHRlbnRpb24iKTtpKGFDYSwidG9rZW5pemVBdHRlbnRpb24iKTtpKFByciwibW92ZVBvaW50Iil9KTtmdW5jdGlvbiBpQ2EodCxlLHIpe2xldCBhPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhtKXtyZXR1cm4gdC5lbnRlcigiYXV0b2xpbmsiKSx0LmVudGVyKCJhdXRvbGlua01hcmtlciIpLHQuY29uc3VtZShtKSx0LmV4aXQoImF1dG9saW5rTWFya2VyIiksdC5lbnRlcigiYXV0b2xpbmtQcm90b2NvbCIpLG59ZnVuY3Rpb24gbihtKXtyZXR1cm4gSnMobSk/KHQuY29uc3VtZShtKSxvKTptPT09NjQ/cihtKTpkKG0pfWZ1bmN0aW9uIG8obSl7cmV0dXJuIG09PT00M3x8bT09PTQ1fHxtPT09NDZ8fEJpKG0pPyhhPTEsbChtKSk6ZChtKX1mdW5jdGlvbiBsKG0pe3JldHVybiBtPT09NTg/KHQuY29uc3VtZShtKSxhPTAsYyk6KG09PT00M3x8bT09PTQ1fHxtPT09NDZ8fEJpKG0pKSYmYSsrPDMyPyh0LmNvbnN1bWUobSksbCk6KGE9MCxkKG0pKX1mdW5jdGlvbiBjKG0pe3JldHVybiBtPT09NjI/KHQuZXhpdCgiYXV0b2xpbmtQcm90b2NvbCIpLHQuZW50ZXIoImF1dG9saW5rTWFya2VyIiksdC5jb25zdW1lKG0pLHQuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSx0LmV4aXQoImF1dG9saW5rIiksZSk6bT09PW51bGx8fG09PT0zMnx8bT09PTYwfHwkNihtKT9yKG0pOih0LmNvbnN1bWUobSksYyl9ZnVuY3Rpb24gZChtKXtyZXR1cm4gbT09PTY0Pyh0LmNvbnN1bWUobSksZik6U2VyKG0pPyh0LmNvbnN1bWUobSksZCk6cihtKX1mdW5jdGlvbiBmKG0pe3JldHVybiBCaShtKT9wKG0pOnIobSl9ZnVuY3Rpb24gcChtKXtyZXR1cm4gbT09PTQ2Pyh0LmNvbnN1bWUobSksYT0wLGYpOm09PT02Mj8odC5leGl0KCJhdXRvbGlua1Byb3RvY29sIikudHlwZT0iYXV0b2xpbmtFbWFpbCIsdC5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSx0LmNvbnN1bWUobSksdC5leGl0KCJhdXRvbGlua01hcmtlciIpLHQuZXhpdCgiYXV0b2xpbmsiKSxlKTpoKG0pfWZ1bmN0aW9uIGgobSl7aWYoKG09PT00NXx8QmkobSkpJiZhKys8NjMpe2xldCB2PW09PT00NT9oOnA7cmV0dXJuIHQuY29uc3VtZShtKSx2fXJldHVybiByKG0pfX12YXIgRkxlLE9ycj11KCgpPT57WXIoKTtGTGU9e25hbWU6ImF1dG9saW5rIix0b2tlbml6ZTppQ2F9O2koaUNhLCJ0b2tlbml6ZUF1dG9saW5rIil9KTtmdW5jdGlvbiBXdCh0LGUscixhKXtsZXQgcz1hP2EtMTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbj0wO3JldHVybiBvO2Z1bmN0aW9uIG8oYyl7cmV0dXJuIFJ0KGMpPyh0LmVudGVyKHIpLGwoYykpOmUoYyl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gUnQoYykmJm4rKzxzPyh0LmNvbnN1bWUoYyksbCk6KHQuZXhpdChyKSxlKGMpKX19dmFyIGFzPXUoKCk9PntZcigpO2koV3QsImZhY3RvcnlTcGFjZSIpfSk7ZnVuY3Rpb24gc0NhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiBSdChuKT9XdCh0LHMsImxpbmVQcmVmaXgiKShuKTpzKG4pfWZ1bmN0aW9uIHMobil7cmV0dXJuIG49PT1udWxsfHx1dChuKT9lKG4pOnIobil9fXZhciBRMCxvNGU9dSgoKT0+e2FzKCk7WXIoKTtRMD17cGFydGlhbDohMCx0b2tlbml6ZTpzQ2F9O2koc0NhLCJ0b2tlbml6ZUJsYW5rTGluZSIpfSk7ZnVuY3Rpb24gbkNhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7aWYobz09PTYyKXtsZXQgbD1hLmNvbnRhaW5lclN0YXRlO3JldHVybiBsLm9wZW58fCh0LmVudGVyKCJibG9ja1F1b3RlIix7X2NvbnRhaW5lcjohMH0pLGwub3Blbj0hMCksdC5lbnRlcigiYmxvY2tRdW90ZVByZWZpeCIpLHQuZW50ZXIoImJsb2NrUXVvdGVNYXJrZXIiKSx0LmNvbnN1bWUobyksdC5leGl0KCJibG9ja1F1b3RlTWFya2VyIiksbn1yZXR1cm4gcihvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBSdChvKT8odC5lbnRlcigiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UiKSx0LmNvbnN1bWUobyksdC5leGl0KCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLHQuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLGUpOih0LmV4aXQoImJsb2NrUXVvdGVQcmVmaXgiKSxlKG8pKX19ZnVuY3Rpb24gb0NhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIFJ0KG8pP1d0KHQsbiwibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShvKTpuKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIHQuYXR0ZW1wdChsNGUsZSxyKShvKX19ZnVuY3Rpb24gbENhKHQpe3QuZXhpdCgiYmxvY2tRdW90ZSIpfXZhciBsNGUsUnJyPXUoKCk9PnthcygpO1lyKCk7bDRlPXtjb250aW51YXRpb246e3Rva2VuaXplOm9DYX0sZXhpdDpsQ2EsbmFtZToiYmxvY2tRdW90ZSIsdG9rZW5pemU6bkNhfTtpKG5DYSwidG9rZW5pemVCbG9ja1F1b3RlU3RhcnQiKTtpKG9DYSwidG9rZW5pemVCbG9ja1F1b3RlQ29udGludWF0aW9uIik7aShsQ2EsImV4aXQiKX0pO2Z1bmN0aW9uIGNDYSh0LGUscil7cmV0dXJuIGE7ZnVuY3Rpb24gYShuKXtyZXR1cm4gdC5lbnRlcigiY2hhcmFjdGVyRXNjYXBlIiksdC5lbnRlcigiZXNjYXBlTWFya2VyIiksdC5jb25zdW1lKG4pLHQuZXhpdCgiZXNjYXBlTWFya2VyIiksc31mdW5jdGlvbiBzKG4pe3JldHVybiBDZXIobik/KHQuZW50ZXIoImNoYXJhY3RlckVzY2FwZVZhbHVlIiksdC5jb25zdW1lKG4pLHQuZXhpdCgiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSx0LmV4aXQoImNoYXJhY3RlckVzY2FwZSIpLGUpOnIobil9fXZhciBjNGUsRnJyPXUoKCk9PntZcigpO2M0ZT17bmFtZToiY2hhcmFjdGVyRXNjYXBlIix0b2tlbml6ZTpjQ2F9O2koY0NhLCJ0b2tlbml6ZUNoYXJhY3RlckVzY2FwZSIpfSk7ZnVuY3Rpb24gZENhKHQsZSxyKXtsZXQgYT10aGlzLHM9MCxuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChwKXtyZXR1cm4gdC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlIiksdC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksdC5jb25zdW1lKHApLHQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksY31mdW5jdGlvbiBjKHApe3JldHVybiBwPT09MzU/KHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSx0LmNvbnN1bWUocCksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksZCk6KHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj0zMSxvPUJpLGYocCkpfWZ1bmN0aW9uIGQocCl7cmV0dXJuIHA9PT04OHx8cD09PTEyMD8odC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSx0LmNvbnN1bWUocCksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj02LG89TWVyLGYpOih0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NyxvPUV6LGYocCkpfWZ1bmN0aW9uIGYocCl7aWYocD09PTU5JiZzKXtsZXQgaD10LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIik7cmV0dXJuIG89PT1CaSYmIXZwKGEuc2xpY2VTZXJpYWxpemUoaCkpP3IocCk6KHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLHQuY29uc3VtZShwKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLHQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlIiksZSl9cmV0dXJuIG8ocCkmJnMrKzxuPyh0LmNvbnN1bWUocCksZik6cihwKX19dmFyIGQ0ZSxCcnI9dSgoKT0+e096KCk7WXIoKTtkNGU9e25hbWU6ImNoYXJhY3RlclJlZmVyZW5jZSIsdG9rZW5pemU6ZENhfTtpKGRDYSwidG9rZW5pemVDaGFyYWN0ZXJSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIHVDYSh0LGUscil7bGV0IGE9dGhpcyxzPXtwYXJ0aWFsOiEwLHRva2VuaXplOl99LG49MCxvPTAsbDtyZXR1cm4gYztmdW5jdGlvbiBjKFMpe3JldHVybiBkKFMpfWZ1bmN0aW9uIGQoUyl7bGV0IE89YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBuPU8mJk9bMV0udHlwZT09PSJsaW5lUHJlZml4Ij9PWzJdLnNsaWNlU2VyaWFsaXplKE9bMV0sITApLmxlbmd0aDowLGw9Uyx0LmVudGVyKCJjb2RlRmVuY2VkIiksdC5lbnRlcigiY29kZUZlbmNlZEZlbmNlIiksdC5lbnRlcigiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxmKFMpfWZ1bmN0aW9uIGYoUyl7cmV0dXJuIFM9PT1sPyhvKyssdC5jb25zdW1lKFMpLGYpOm88Mz9yKFMpOih0LmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksUnQoUyk/V3QodCxwLCJ3aGl0ZXNwYWNlIikoUyk6cChTKSl9ZnVuY3Rpb24gcChTKXtyZXR1cm4gUz09PW51bGx8fHV0KFMpPyh0LmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLGEuaW50ZXJydXB0P2UoUyk6dC5jaGVjayhIcnIsYixOKShTKSk6KHQuZW50ZXIoImNvZGVGZW5jZWRGZW5jZUluZm8iKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksaChTKSl9ZnVuY3Rpb24gaChTKXtyZXR1cm4gUz09PW51bGx8fHV0KFMpPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KCJjb2RlRmVuY2VkRmVuY2VJbmZvIikscChTKSk6UnQoUyk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxXdCh0LG0sIndoaXRlc3BhY2UiKShTKSk6Uz09PTk2JiZTPT09bD9yKFMpOih0LmNvbnN1bWUoUyksaCl9ZnVuY3Rpb24gbShTKXtyZXR1cm4gUz09PW51bGx8fHV0KFMpP3AoUyk6KHQuZW50ZXIoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksdihTKSl9ZnVuY3Rpb24gdihTKXtyZXR1cm4gUz09PW51bGx8fHV0KFMpPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KCJjb2RlRmVuY2VkRmVuY2VNZXRhIikscChTKSk6Uz09PTk2JiZTPT09bD9yKFMpOih0LmNvbnN1bWUoUyksdil9ZnVuY3Rpb24gYihTKXtyZXR1cm4gdC5hdHRlbXB0KHMsTixnKShTKX1mdW5jdGlvbiBnKFMpe3JldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKFMpLHQuZXhpdCgibGluZUVuZGluZyIpLHl9ZnVuY3Rpb24geShTKXtyZXR1cm4gbj4wJiZSdChTKT9XdCh0LGssImxpbmVQcmVmaXgiLG4rMSkoUyk6ayhTKX1mdW5jdGlvbiBrKFMpe3JldHVybiBTPT09bnVsbHx8dXQoUyk/dC5jaGVjayhIcnIsYixOKShTKToodC5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLE0oUykpfWZ1bmN0aW9uIE0oUyl7cmV0dXJuIFM9PT1udWxsfHx1dChTKT8odC5leGl0KCJjb2RlRmxvd1ZhbHVlIiksayhTKSk6KHQuY29uc3VtZShTKSxNKX1mdW5jdGlvbiBOKFMpe3JldHVybiB0LmV4aXQoImNvZGVGZW5jZWQiKSxlKFMpfWZ1bmN0aW9uIF8oUyxPLEwpe2xldCBFPTA7cmV0dXJuIEI7ZnVuY3Rpb24gQihGKXtyZXR1cm4gUy5lbnRlcigibGluZUVuZGluZyIpLFMuY29uc3VtZShGKSxTLmV4aXQoImxpbmVFbmRpbmciKSxDfWZ1bmN0aW9uIEMoRil7cmV0dXJuIFMuZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLFJ0KEYpP1d0KFMseiwibGluZVByZWZpeCIsYS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShGKTp6KEYpfWZ1bmN0aW9uIHooRil7cmV0dXJuIEY9PT1sPyhTLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLEEoRikpOkwoRil9ZnVuY3Rpb24gQShGKXtyZXR1cm4gRj09PWw/KEUrKyxTLmNvbnN1bWUoRiksQSk6RT49bz8oUy5leGl0KCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLFJ0KEYpP1d0KFMsJCwid2hpdGVzcGFjZSIpKEYpOiQoRikpOkwoRil9ZnVuY3Rpb24gJChGKXtyZXR1cm4gRj09PW51bGx8fHV0KEYpPyhTLmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLE8oRikpOkwoRil9fX1mdW5jdGlvbiBwQ2EodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gbz09PW51bGw/cihvKToodC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShvKSx0LmV4aXQoImxpbmVFbmRpbmciKSxuKX1mdW5jdGlvbiBuKG8pe3JldHVybiBhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihvKTplKG8pfX12YXIgSHJyLHU0ZSxxcnI9dSgoKT0+e2FzKCk7WXIoKTtIcnI9e3BhcnRpYWw6ITAsdG9rZW5pemU6cENhfSx1NGU9e2NvbmNyZXRlOiEwLG5hbWU6ImNvZGVGZW5jZWQiLHRva2VuaXplOnVDYX07aSh1Q2EsInRva2VuaXplQ29kZUZlbmNlZCIpO2kocENhLCJ0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb24iKX0pO2Z1bmN0aW9uIGhDYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKGQpe3JldHVybiB0LmVudGVyKCJjb2RlSW5kZW50ZWQiKSxXdCh0LG4sImxpbmVQcmVmaXgiLDUpKGQpfWZ1bmN0aW9uIG4oZCl7bGV0IGY9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBmJiZmWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJmZbMl0uc2xpY2VTZXJpYWxpemUoZlsxXSwhMCkubGVuZ3RoPj00P28oZCk6cihkKX1mdW5jdGlvbiBvKGQpe3JldHVybiBkPT09bnVsbD9jKGQpOnV0KGQpP3QuYXR0ZW1wdChmQ2EsbyxjKShkKToodC5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLGwoZCkpfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGQ9PT1udWxsfHx1dChkKT8odC5leGl0KCJjb2RlRmxvd1ZhbHVlIiksbyhkKSk6KHQuY29uc3VtZShkKSxsKX1mdW5jdGlvbiBjKGQpe3JldHVybiB0LmV4aXQoImNvZGVJbmRlbnRlZCIpLGUoZCl9fWZ1bmN0aW9uIG1DYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKG8pe3JldHVybiBhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihvKTp1dChvKT8odC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShvKSx0LmV4aXQoImxpbmVFbmRpbmciKSxzKTpXdCh0LG4sImxpbmVQcmVmaXgiLDUpKG8pfWZ1bmN0aW9uIG4obyl7bGV0IGw9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBsJiZsWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJmxbMl0uc2xpY2VTZXJpYWxpemUobFsxXSwhMCkubGVuZ3RoPj00P2Uobyk6dXQobyk/cyhvKTpyKG8pfX12YXIgQnosZkNhLFZycj11KCgpPT57YXMoKTtZcigpO0J6PXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOmhDYX0sZkNhPXtwYXJ0aWFsOiEwLHRva2VuaXplOm1DYX07aShoQ2EsInRva2VuaXplQ29kZUluZGVudGVkIik7aShtQ2EsInRva2VuaXplRnVydGhlclN0YXJ0Iil9KTtmdW5jdGlvbiBnQ2EodCl7bGV0IGU9dC5sZW5ndGgtNCxyPTMsYSxzO2lmKCh0W3JdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fHRbcl1bMV0udHlwZT09PSJzcGFjZSIpJiYodFtlXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHx0W2VdWzFdLnR5cGU9PT0ic3BhY2UiKSl7Zm9yKGE9cjsrK2E8ZTspaWYodFthXVsxXS50eXBlPT09ImNvZGVUZXh0RGF0YSIpe3Rbcl1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIix0W2VdWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIscis9MixlLT0yO2JyZWFrfX1mb3IoYT1yLTEsZSsrOysrYTw9ZTspcz09PXZvaWQgMD9hIT09ZSYmdFthXVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiYocz1hKTooYT09PWV8fHRbYV1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJih0W3NdWzFdLnR5cGU9ImNvZGVUZXh0RGF0YSIsYSE9PXMrMiYmKHRbc11bMV0uZW5kPXRbYS0xXVsxXS5lbmQsdC5zcGxpY2UocysyLGEtcy0yKSxlLT1hLXMtMixhPXMrMikscz12b2lkIDApO3JldHVybiB0fWZ1bmN0aW9uIGJDYSh0KXtyZXR1cm4gdCE9PTk2fHx0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGgtMV1bMV0udHlwZT09PSJjaGFyYWN0ZXJFc2NhcGUifWZ1bmN0aW9uIHhDYSh0LGUscil7bGV0IGE9dGhpcyxzPTAsbixvO3JldHVybiBsO2Z1bmN0aW9uIGwoaCl7cmV0dXJuIHQuZW50ZXIoImNvZGVUZXh0IiksdC5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLGMoaCl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gaD09PTk2Pyh0LmNvbnN1bWUoaCkscysrLGMpOih0LmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxkKGgpKX1mdW5jdGlvbiBkKGgpe3JldHVybiBoPT09bnVsbD9yKGgpOmg9PT0zMj8odC5lbnRlcigic3BhY2UiKSx0LmNvbnN1bWUoaCksdC5leGl0KCJzcGFjZSIpLGQpOmg9PT05Nj8obz10LmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksbj0wLHAoaCkpOnV0KGgpPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGgpLHQuZXhpdCgibGluZUVuZGluZyIpLGQpOih0LmVudGVyKCJjb2RlVGV4dERhdGEiKSxmKGgpKX1mdW5jdGlvbiBmKGgpe3JldHVybiBoPT09bnVsbHx8aD09PTMyfHxoPT09OTZ8fHV0KGgpPyh0LmV4aXQoImNvZGVUZXh0RGF0YSIpLGQoaCkpOih0LmNvbnN1bWUoaCksZil9ZnVuY3Rpb24gcChoKXtyZXR1cm4gaD09PTk2Pyh0LmNvbnN1bWUoaCksbisrLHApOm49PT1zPyh0LmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSx0LmV4aXQoImNvZGVUZXh0IiksZShoKSk6KG8udHlwZT0iY29kZVRleHREYXRhIixmKGgpKX19dmFyIEJMZSxqcnI9dSgoKT0+e1lyKCk7QkxlPXtuYW1lOiJjb2RlVGV4dCIscHJldmlvdXM6YkNhLHJlc29sdmU6Z0NhLHRva2VuaXplOnhDYX07aShnQ2EsInJlc29sdmVDb2RlVGV4dCIpO2koYkNhLCJwcmV2aW91cyIpO2koeENhLCJ0b2tlbml6ZUNvZGVUZXh0Iil9KTtmdW5jdGlvbiBIeih0LGUpe2xldCByPTA7aWYoZS5sZW5ndGg8MWU0KXQucHVzaCguLi5lKTtlbHNlIGZvcig7cjxlLmxlbmd0aDspdC5wdXNoKC4uLmUuc2xpY2UocixyKzFlNCkpLHIrPTFlNH12YXIgcXosSExlPXUoKCk9Pntxej1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTcGxpY2VCdWZmZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmxlZnQ9ZT9bLi4uZV06W10sdGhpcy5yaWdodD1bXX1nZXQoZSl7aWYoZTwwfHxlPj10aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJDYW5ub3QgYWNjZXNzIGluZGV4IGAiK2UrImAgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCIrKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpKyJgIik7cmV0dXJuIGU8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnRbZV06dGhpcy5yaWdodFt0aGlzLnJpZ2h0Lmxlbmd0aC1lK3RoaXMubGVmdC5sZW5ndGgtMV19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RofXNoaWZ0KCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucG9wKCl9c2xpY2UoZSxyKXtsZXQgYT1yPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGE8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuc2xpY2UoZSxhKTplPnRoaXMubGVmdC5sZW5ndGg/dGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1hK3RoaXMubGVmdC5sZW5ndGgsdGhpcy5yaWdodC5sZW5ndGgtZSt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCk6dGhpcy5sZWZ0LnNsaWNlKGUpLmNvbmNhdCh0aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLWErdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpKX1zcGxpY2UoZSxyLGEpe2xldCBzPXJ8fDA7dGhpcy5zZXRDdXJzb3IoTWF0aC50cnVuYyhlKSk7bGV0IG49dGhpcy5yaWdodC5zcGxpY2UodGhpcy5yaWdodC5sZW5ndGgtcyxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3JldHVybiBhJiZIeih0aGlzLmxlZnQsYSksbi5yZXZlcnNlKCl9cG9wKCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnBvcCgpfXB1c2goZSl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucHVzaChlKX1wdXNoTWFueShlKXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLEh6KHRoaXMubGVmdCxlKX11bnNoaWZ0KGUpe3RoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucHVzaChlKX11bnNoaWZ0TWFueShlKXt0aGlzLnNldEN1cnNvcigwKSxIeih0aGlzLnJpZ2h0LGUucmV2ZXJzZSgpKX1zZXRDdXJzb3IoZSl7aWYoIShlPT09dGhpcy5sZWZ0Lmxlbmd0aHx8ZT50aGlzLmxlZnQubGVuZ3RoJiZ0aGlzLnJpZ2h0Lmxlbmd0aD09PTB8fGU8MCYmdGhpcy5sZWZ0Lmxlbmd0aD09PTApKWlmKGU8dGhpcy5sZWZ0Lmxlbmd0aCl7bGV0IHI9dGhpcy5sZWZ0LnNwbGljZShlLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7SHoodGhpcy5yaWdodCxyLnJldmVyc2UoKSl9ZWxzZXtsZXQgcj10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoLWUsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtIeih0aGlzLmxlZnQsci5yZXZlcnNlKCkpfX19O2koSHosImNodW5rZWRQdXNoIil9KTtmdW5jdGlvbiBwNGUodCl7bGV0IGU9e30scj0tMSxhLHMsbixvLGwsYyxkLGY9bmV3IHF6KHQpO2Zvcig7KytyPGYubGVuZ3RoOyl7Zm9yKDtyIGluIGU7KXI9ZVtyXTtpZihhPWYuZ2V0KHIpLHImJmFbMV0udHlwZT09PSJjaHVua0Zsb3ciJiZmLmdldChyLTEpWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiJiYoYz1hWzFdLl90b2tlbml6ZXIuZXZlbnRzLG49MCxuPGMubGVuZ3RoJiZjW25dWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIiYmKG4rPTIpLG48Yy5sZW5ndGgmJmNbbl1bMV0udHlwZT09PSJjb250ZW50IikpZm9yKDsrK248Yy5sZW5ndGgmJmNbbl1bMV0udHlwZSE9PSJjb250ZW50IjspY1tuXVsxXS50eXBlPT09ImNodW5rVGV4dCImJihjW25dWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCxuKyspO2lmKGFbMF09PT0iZW50ZXIiKWFbMV0uY29udGVudFR5cGUmJihPYmplY3QuYXNzaWduKGUsdkNhKGYscikpLHI9ZVtyXSxkPSEwKTtlbHNlIGlmKGFbMV0uX2NvbnRhaW5lcil7Zm9yKG49cixzPXZvaWQgMDtuLS07KWlmKG89Zi5nZXQobiksb1sxXS50eXBlPT09ImxpbmVFbmRpbmcifHxvWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIilvWzBdPT09ImVudGVyIiYmKHMmJihmLmdldChzKVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiKSxvWzFdLnR5cGU9ImxpbmVFbmRpbmciLHM9bik7ZWxzZSBpZighKG9bMV0udHlwZT09PSJsaW5lUHJlZml4Inx8b1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWs7cyYmKGFbMV0uZW5kPXsuLi5mLmdldChzKVsxXS5zdGFydH0sbD1mLnNsaWNlKHMsciksbC51bnNoaWZ0KGEpLGYuc3BsaWNlKHMsci1zKzEsbCkpfX1yZXR1cm4gcnModCwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxmLnNsaWNlKDApKSwhZH1mdW5jdGlvbiB2Q2EodCxlKXtsZXQgcj10LmdldChlKVsxXSxhPXQuZ2V0KGUpWzJdLHM9ZS0xLG49W10sbz1yLl90b2tlbml6ZXI7b3x8KG89YS5wYXJzZXJbci5jb250ZW50VHlwZV0oci5zdGFydCksci5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJihvLl9jb250ZW50VHlwZVRleHRUcmFpbGluZz0hMCkpO2xldCBsPW8uZXZlbnRzLGM9W10sZD17fSxmLHAsaD0tMSxtPXIsdj0wLGI9MCxnPVtiXTtmb3IoO207KXtmb3IoO3QuZ2V0KCsrcylbMV0hPT1tOyk7bi5wdXNoKHMpLG0uX3Rva2VuaXplcnx8KGY9YS5zbGljZVN0cmVhbShtKSxtLm5leHR8fGYucHVzaChudWxsKSxwJiZvLmRlZmluZVNraXAobS5zdGFydCksbS5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITApLG8ud3JpdGUoZiksbS5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09dm9pZCAwKSkscD1tLG09bS5uZXh0fWZvcihtPXI7KytoPGwubGVuZ3RoOylsW2hdWzBdPT09ImV4aXQiJiZsW2gtMV1bMF09PT0iZW50ZXIiJiZsW2hdWzFdLnR5cGU9PT1sW2gtMV1bMV0udHlwZSYmbFtoXVsxXS5zdGFydC5saW5lIT09bFtoXVsxXS5lbmQubGluZSYmKGI9aCsxLGcucHVzaChiKSxtLl90b2tlbml6ZXI9dm9pZCAwLG0ucHJldmlvdXM9dm9pZCAwLG09bS5uZXh0KTtmb3Ioby5ldmVudHM9W10sbT8obS5fdG9rZW5pemVyPXZvaWQgMCxtLnByZXZpb3VzPXZvaWQgMCk6Zy5wb3AoKSxoPWcubGVuZ3RoO2gtLTspe2xldCB5PWwuc2xpY2UoZ1toXSxnW2grMV0pLGs9bi5wb3AoKTtjLnB1c2goW2ssayt5Lmxlbmd0aC0xXSksdC5zcGxpY2UoaywyLHkpfWZvcihjLnJldmVyc2UoKSxoPS0xOysraDxjLmxlbmd0aDspZFt2K2NbaF1bMF1dPXYrY1toXVsxXSx2Kz1jW2hdWzFdLWNbaF1bMF0tMTtyZXR1cm4gZH12YXIgcUxlPXUoKCk9PntHMCgpO0hMZSgpO0hMZSgpO2kocDRlLCJzdWJ0b2tlbml6ZSIpO2kodkNhLCJzdWJjb250ZW50Iil9KTtmdW5jdGlvbiB3Q2EodCl7cmV0dXJuIHA0ZSh0KSx0fWZ1bmN0aW9uIGtDYSh0LGUpe2xldCByO3JldHVybiBhO2Z1bmN0aW9uIGEobCl7cmV0dXJuIHQuZW50ZXIoImNvbnRlbnQiKSxyPXQuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50In0pLHMobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gbD09PW51bGw/bihsKTp1dChsKT90LmNoZWNrKHlDYSxvLG4pKGwpOih0LmNvbnN1bWUobCkscyl9ZnVuY3Rpb24gbihsKXtyZXR1cm4gdC5leGl0KCJjaHVua0NvbnRlbnQiKSx0LmV4aXQoImNvbnRlbnQiKSxlKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIHQuY29uc3VtZShsKSx0LmV4aXQoImNodW5rQ29udGVudCIpLHIubmV4dD10LmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6cn0pLHI9ci5uZXh0LHN9fWZ1bmN0aW9uIFNDYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gcztmdW5jdGlvbiBzKG8pe3JldHVybiB0LmV4aXQoImNodW5rQ29udGVudCIpLHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUobyksdC5leGl0KCJsaW5lRW5kaW5nIiksV3QodCxuLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gbihvKXtpZihvPT09bnVsbHx8dXQobykpcmV0dXJuIHIobyk7bGV0IGw9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIikmJmwmJmxbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmbFsyXS5zbGljZVNlcmlhbGl6ZShsWzFdLCEwKS5sZW5ndGg+PTQ/ZShvKTp0LmludGVycnVwdChhLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3cscixlKShvKX19dmFyIFZMZSx5Q2EsVXJyPXUoKCk9PnthcygpO1lyKCk7cUxlKCk7VkxlPXtyZXNvbHZlOndDYSx0b2tlbml6ZTprQ2F9LHlDYT17cGFydGlhbDohMCx0b2tlbml6ZTpTQ2F9O2kod0NhLCJyZXNvbHZlQ29udGVudCIpO2koa0NhLCJ0b2tlbml6ZUNvbnRlbnQiKTtpKFNDYSwidG9rZW5pemVDb250aW51YXRpb24iKX0pO2Z1bmN0aW9uIGY0ZSh0LGUscixhLHMsbixvLGwsYyl7bGV0IGQ9Y3x8TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGY9MDtyZXR1cm4gcDtmdW5jdGlvbiBwKHkpe3JldHVybiB5PT09NjA/KHQuZW50ZXIoYSksdC5lbnRlcihzKSx0LmVudGVyKG4pLHQuY29uc3VtZSh5KSx0LmV4aXQobiksaCk6eT09PW51bGx8fHk9PT0zMnx8eT09PTQxfHwkNih5KT9yKHkpOih0LmVudGVyKGEpLHQuZW50ZXIobyksdC5lbnRlcihsKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksYih5KSl9ZnVuY3Rpb24gaCh5KXtyZXR1cm4geT09PTYyPyh0LmVudGVyKG4pLHQuY29uc3VtZSh5KSx0LmV4aXQobiksdC5leGl0KHMpLHQuZXhpdChhKSxlKToodC5lbnRlcihsKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksbSh5KSl9ZnVuY3Rpb24gbSh5KXtyZXR1cm4geT09PTYyPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KGwpLGgoeSkpOnk9PT1udWxsfHx5PT09NjB8fHV0KHkpP3IoeSk6KHQuY29uc3VtZSh5KSx5PT09OTI/djptKX1mdW5jdGlvbiB2KHkpe3JldHVybiB5PT09NjB8fHk9PT02Mnx8eT09PTkyPyh0LmNvbnN1bWUoeSksbSk6bSh5KX1mdW5jdGlvbiBiKHkpe3JldHVybiFmJiYoeT09PW51bGx8fHk9PT00MXx8QnIoeSkpPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KGwpLHQuZXhpdChvKSx0LmV4aXQoYSksZSh5KSk6ZjxkJiZ5PT09NDA/KHQuY29uc3VtZSh5KSxmKyssYik6eT09PTQxPyh0LmNvbnN1bWUoeSksZi0tLGIpOnk9PT1udWxsfHx5PT09MzJ8fHk9PT00MHx8JDYoeSk/cih5KToodC5jb25zdW1lKHkpLHk9PT05Mj9nOmIpfWZ1bmN0aW9uIGcoeSl7cmV0dXJuIHk9PT00MHx8eT09PTQxfHx5PT09OTI/KHQuY29uc3VtZSh5KSxiKTpiKHkpfX12YXIgakxlPXUoKCk9PntZcigpO2koZjRlLCJmYWN0b3J5RGVzdGluYXRpb24iKX0pO2Z1bmN0aW9uIGg0ZSh0LGUscixhLHMsbil7bGV0IG89dGhpcyxsPTAsYztyZXR1cm4gZDtmdW5jdGlvbiBkKG0pe3JldHVybiB0LmVudGVyKGEpLHQuZW50ZXIocyksdC5jb25zdW1lKG0pLHQuZXhpdChzKSx0LmVudGVyKG4pLGZ9ZnVuY3Rpb24gZihtKXtyZXR1cm4gbD45OTl8fG09PT1udWxsfHxtPT09OTF8fG09PT05MyYmIWN8fG09PT05NCYmIWwmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIG8ucGFyc2VyLmNvbnN0cnVjdHM/cihtKTptPT09OTM/KHQuZXhpdChuKSx0LmVudGVyKHMpLHQuY29uc3VtZShtKSx0LmV4aXQocyksdC5leGl0KGEpLGUpOnV0KG0pPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG0pLHQuZXhpdCgibGluZUVuZGluZyIpLGYpOih0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSkscChtKSl9ZnVuY3Rpb24gcChtKXtyZXR1cm4gbT09PW51bGx8fG09PT05MXx8bT09PTkzfHx1dChtKXx8bCsrPjk5OT8odC5leGl0KCJjaHVua1N0cmluZyIpLGYobSkpOih0LmNvbnN1bWUobSksY3x8KGM9IVJ0KG0pKSxtPT09OTI/aDpwKX1mdW5jdGlvbiBoKG0pe3JldHVybiBtPT09OTF8fG09PT05Mnx8bT09PTkzPyh0LmNvbnN1bWUobSksbCsrLHApOnAobSl9fXZhciBVTGU9dSgoKT0+e1lyKCk7aShoNGUsImZhY3RvcnlMYWJlbCIpfSk7ZnVuY3Rpb24gbTRlKHQsZSxyLGEscyxuKXtsZXQgbztyZXR1cm4gbDtmdW5jdGlvbiBsKGgpe3JldHVybiBoPT09MzR8fGg9PT0zOXx8aD09PTQwPyh0LmVudGVyKGEpLHQuZW50ZXIocyksdC5jb25zdW1lKGgpLHQuZXhpdChzKSxvPWg9PT00MD80MTpoLGMpOnIoaCl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gaD09PW8/KHQuZW50ZXIocyksdC5jb25zdW1lKGgpLHQuZXhpdChzKSx0LmV4aXQoYSksZSk6KHQuZW50ZXIobiksZChoKSl9ZnVuY3Rpb24gZChoKXtyZXR1cm4gaD09PW8/KHQuZXhpdChuKSxjKG8pKTpoPT09bnVsbD9yKGgpOnV0KGgpPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGgpLHQuZXhpdCgibGluZUVuZGluZyIpLFd0KHQsZCwibGluZVByZWZpeCIpKToodC5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGYoaCkpfWZ1bmN0aW9uIGYoaCl7cmV0dXJuIGg9PT1vfHxoPT09bnVsbHx8dXQoaCk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSxkKGgpKToodC5jb25zdW1lKGgpLGg9PT05Mj9wOmYpfWZ1bmN0aW9uIHAoaCl7cmV0dXJuIGg9PT1vfHxoPT09OTI/KHQuY29uc3VtZShoKSxmKTpmKGgpfX12YXIgV0xlPXUoKCk9PnthcygpO1lyKCk7aShtNGUsImZhY3RvcnlUaXRsZSIpfSk7ZnVuY3Rpb24gUjYodCxlKXtsZXQgcjtyZXR1cm4gYTtmdW5jdGlvbiBhKHMpe3JldHVybiB1dChzKT8odC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShzKSx0LmV4aXQoImxpbmVFbmRpbmciKSxyPSEwLGEpOlJ0KHMpP1d0KHQsYSxyPyJsaW5lUHJlZml4IjoibGluZVN1ZmZpeCIpKHMpOmUocyl9fXZhciBHTGU9dSgoKT0+e2FzKCk7WXIoKTtpKFI2LCJmYWN0b3J5V2hpdGVzcGFjZSIpfSk7ZnVuY3Rpb24gQ0NhKHQsZSxyKXtsZXQgYT10aGlzLHM7cmV0dXJuIG47ZnVuY3Rpb24gbihtKXtyZXR1cm4gdC5lbnRlcigiZGVmaW5pdGlvbiIpLG8obSl9ZnVuY3Rpb24gbyhtKXtyZXR1cm4gaDRlLmNhbGwoYSx0LGwsciwiZGVmaW5pdGlvbkxhYmVsIiwiZGVmaW5pdGlvbkxhYmVsTWFya2VyIiwiZGVmaW5pdGlvbkxhYmVsU3RyaW5nIikobSl9ZnVuY3Rpb24gbChtKXtyZXR1cm4gcz1IaShhLnNsaWNlU2VyaWFsaXplKGEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpLG09PT01OD8odC5lbnRlcigiZGVmaW5pdGlvbk1hcmtlciIpLHQuY29uc3VtZShtKSx0LmV4aXQoImRlZmluaXRpb25NYXJrZXIiKSxjKTpyKG0pfWZ1bmN0aW9uIGMobSl7cmV0dXJuIEJyKG0pP1I2KHQsZCkobSk6ZChtKX1mdW5jdGlvbiBkKG0pe3JldHVybiBmNGUodCxmLHIsImRlZmluaXRpb25EZXN0aW5hdGlvbiIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWwiLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uUmF3IiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nIikobSl9ZnVuY3Rpb24gZihtKXtyZXR1cm4gdC5hdHRlbXB0KE1DYSxwLHApKG0pfWZ1bmN0aW9uIHAobSl7cmV0dXJuIFJ0KG0pP1d0KHQsaCwid2hpdGVzcGFjZSIpKG0pOmgobSl9ZnVuY3Rpb24gaChtKXtyZXR1cm4gbT09PW51bGx8fHV0KG0pPyh0LmV4aXQoImRlZmluaXRpb24iKSxhLnBhcnNlci5kZWZpbmVkLnB1c2gocyksZShtKSk6cihtKX19ZnVuY3Rpb24gekNhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKGwpe3JldHVybiBCcihsKT9SNih0LHMpKGwpOnIobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gbTRlKHQsbixyLCJkZWZpbml0aW9uVGl0bGUiLCJkZWZpbml0aW9uVGl0bGVNYXJrZXIiLCJkZWZpbml0aW9uVGl0bGVTdHJpbmciKShsKX1mdW5jdGlvbiBuKGwpe3JldHVybiBSdChsKT9XdCh0LG8sIndoaXRlc3BhY2UiKShsKTpvKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIGw9PT1udWxsfHx1dChsKT9lKGwpOnIobCl9fXZhciBZTGUsTUNhLFdycj11KCgpPT57akxlKCk7VUxlKCk7YXMoKTtXTGUoKTtHTGUoKTtZcigpO3hwKCk7WUxlPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTpDQ2F9LE1DYT17cGFydGlhbDohMCx0b2tlbml6ZTp6Q2F9O2koQ0NhLCJ0b2tlbml6ZURlZmluaXRpb24iKTtpKHpDYSwidG9rZW5pemVUaXRsZUJlZm9yZSIpfSk7ZnVuY3Rpb24gX0NhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiB0LmVudGVyKCJoYXJkQnJlYWtFc2NhcGUiKSx0LmNvbnN1bWUobiksc31mdW5jdGlvbiBzKG4pe3JldHVybiB1dChuKT8odC5leGl0KCJoYXJkQnJlYWtFc2NhcGUiKSxlKG4pKTpyKG4pfX12YXIgS0xlLEdycj11KCgpPT57WXIoKTtLTGU9e25hbWU6ImhhcmRCcmVha0VzY2FwZSIsdG9rZW5pemU6X0NhfTtpKF9DYSwidG9rZW5pemVIYXJkQnJlYWtFc2NhcGUiKX0pO2Z1bmN0aW9uIFRDYSh0LGUpe2xldCByPXQubGVuZ3RoLTIsYT0zLHMsbjtyZXR1cm4gdFthXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoYSs9Miksci0yPmEmJnRbcl1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKHItPTIpLHRbcl1bMV0udHlwZT09PSJhdHhIZWFkaW5nU2VxdWVuY2UiJiYoYT09PXItMXx8ci00PmEmJnRbci0yXVsxXS50eXBlPT09IndoaXRlc3BhY2UiKSYmKHItPWErMT09PXI/Mjo0KSxyPmEmJihzPXt0eXBlOiJhdHhIZWFkaW5nVGV4dCIsc3RhcnQ6dFthXVsxXS5zdGFydCxlbmQ6dFtyXVsxXS5lbmR9LG49e3R5cGU6ImNodW5rVGV4dCIsc3RhcnQ6dFthXVsxXS5zdGFydCxlbmQ6dFtyXVsxXS5lbmQsY29udGVudFR5cGU6InRleHQifSxycyh0LGEsci1hKzEsW1siZW50ZXIiLHMsZV0sWyJlbnRlciIsbixlXSxbImV4aXQiLG4sZV0sWyJleGl0IixzLGVdXSkpLHR9ZnVuY3Rpb24gTENhKHQsZSxyKXtsZXQgYT0wO3JldHVybiBzO2Z1bmN0aW9uIHMoZil7cmV0dXJuIHQuZW50ZXIoImF0eEhlYWRpbmciKSxuKGYpfWZ1bmN0aW9uIG4oZil7cmV0dXJuIHQuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLG8oZil9ZnVuY3Rpb24gbyhmKXtyZXR1cm4gZj09PTM1JiZhKys8Nj8odC5jb25zdW1lKGYpLG8pOmY9PT1udWxsfHxCcihmKT8odC5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxsKGYpKTpyKGYpfWZ1bmN0aW9uIGwoZil7cmV0dXJuIGY9PT0zNT8odC5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIiksYyhmKSk6Zj09PW51bGx8fHV0KGYpPyh0LmV4aXQoImF0eEhlYWRpbmciKSxlKGYpKTpSdChmKT9XdCh0LGwsIndoaXRlc3BhY2UiKShmKToodC5lbnRlcigiYXR4SGVhZGluZ1RleHQiKSxkKGYpKX1mdW5jdGlvbiBjKGYpe3JldHVybiBmPT09MzU/KHQuY29uc3VtZShmKSxjKToodC5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxsKGYpKX1mdW5jdGlvbiBkKGYpe3JldHVybiBmPT09bnVsbHx8Zj09PTM1fHxCcihmKT8odC5leGl0KCJhdHhIZWFkaW5nVGV4dCIpLGwoZikpOih0LmNvbnN1bWUoZiksZCl9fXZhciBaTGUsWXJyPXUoKCk9PnthcygpO1lyKCk7RzAoKTtaTGU9e25hbWU6ImhlYWRpbmdBdHgiLHJlc29sdmU6VENhLHRva2VuaXplOkxDYX07aShUQ2EsInJlc29sdmVIZWFkaW5nQXR4Iik7aShMQ2EsInRva2VuaXplSGVhZGluZ0F0eCIpfSk7dmFyIEtycixRTGUsWnJyPXUoKCk9PntLcnI9WyJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYmFzZSIsImJhc2Vmb250IiwiYmxvY2txdW90ZSIsImJvZHkiLCJjYXB0aW9uIiwiY2VudGVyIiwiY29sIiwiY29sZ3JvdXAiLCJkZCIsImRldGFpbHMiLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9vdGVyIiwiZm9ybSIsImZyYW1lIiwiZnJhbWVzZXQiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaHIiLCJodG1sIiwiaWZyYW1lIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1lbnUiLCJtZW51aXRlbSIsIm5hdiIsIm5vZnJhbWVzIiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsInAiLCJwYXJhbSIsInNlYXJjaCIsInNlY3Rpb24iLCJzdW1tYXJ5IiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInRyYWNrIiwidWwiXSxRTGU9WyJwcmUiLCJzY3JpcHQiLCJzdHlsZSIsInRleHRhcmVhIl19KTtmdW5jdGlvbiBBQ2EodCl7bGV0IGU9dC5sZW5ndGg7Zm9yKDtlLS0mJiEodFtlXVswXT09PSJlbnRlciImJnRbZV1bMV0udHlwZT09PSJodG1sRmxvdyIpOyk7cmV0dXJuIGU+MSYmdFtlLTJdWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJih0W2VdWzFdLnN0YXJ0PXRbZS0yXVsxXS5zdGFydCx0W2UrMV1bMV0uc3RhcnQ9dFtlLTJdWzFdLnN0YXJ0LHQuc3BsaWNlKGUtMiwyKSksdH1mdW5jdGlvbiBFQ2EodCxlLHIpe2xldCBhPXRoaXMscyxuLG8sbCxjO3JldHVybiBkO2Z1bmN0aW9uIGQoVCl7cmV0dXJuIGYoVCl9ZnVuY3Rpb24gZihUKXtyZXR1cm4gdC5lbnRlcigiaHRtbEZsb3ciKSx0LmVudGVyKCJodG1sRmxvd0RhdGEiKSx0LmNvbnN1bWUoVCkscH1mdW5jdGlvbiBwKFQpe3JldHVybiBUPT09MzM/KHQuY29uc3VtZShUKSxoKTpUPT09NDc/KHQuY29uc3VtZShUKSxuPSEwLGIpOlQ9PT02Mz8odC5jb25zdW1lKFQpLHM9MyxhLmludGVycnVwdD9lOkQpOkpzKFQpPyh0LmNvbnN1bWUoVCksbz1TdHJpbmcuZnJvbUNoYXJDb2RlKFQpLGcpOnIoVCl9ZnVuY3Rpb24gaChUKXtyZXR1cm4gVD09PTQ1Pyh0LmNvbnN1bWUoVCkscz0yLG0pOlQ9PT05MT8odC5jb25zdW1lKFQpLHM9NSxsPTAsdik6SnMoVCk/KHQuY29uc3VtZShUKSxzPTQsYS5pbnRlcnJ1cHQ/ZTpEKTpyKFQpfWZ1bmN0aW9uIG0oVCl7cmV0dXJuIFQ9PT00NT8odC5jb25zdW1lKFQpLGEuaW50ZXJydXB0P2U6RCk6cihUKX1mdW5jdGlvbiB2KFQpe2xldCBXPSJDREFUQVsiO3JldHVybiBUPT09Vy5jaGFyQ29kZUF0KGwrKyk/KHQuY29uc3VtZShUKSxsPT09Vy5sZW5ndGg/YS5pbnRlcnJ1cHQ/ZTp6OnYpOnIoVCl9ZnVuY3Rpb24gYihUKXtyZXR1cm4gSnMoVCk/KHQuY29uc3VtZShUKSxvPVN0cmluZy5mcm9tQ2hhckNvZGUoVCksZyk6cihUKX1mdW5jdGlvbiBnKFQpe2lmKFQ9PT1udWxsfHxUPT09NDd8fFQ9PT02Mnx8QnIoVCkpe2xldCBXPVQ9PT00NyxwZT1vLnRvTG93ZXJDYXNlKCk7cmV0dXJuIVcmJiFuJiZRTGUuaW5jbHVkZXMocGUpPyhzPTEsYS5pbnRlcnJ1cHQ/ZShUKTp6KFQpKTpLcnIuaW5jbHVkZXMoby50b0xvd2VyQ2FzZSgpKT8ocz02LFc/KHQuY29uc3VtZShUKSx5KTphLmludGVycnVwdD9lKFQpOnooVCkpOihzPTcsYS5pbnRlcnJ1cHQmJiFhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihUKTpuP2soVCk6TShUKSl9cmV0dXJuIFQ9PT00NXx8QmkoVCk/KHQuY29uc3VtZShUKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFQpLGcpOnIoVCl9ZnVuY3Rpb24geShUKXtyZXR1cm4gVD09PTYyPyh0LmNvbnN1bWUoVCksYS5pbnRlcnJ1cHQ/ZTp6KTpyKFQpfWZ1bmN0aW9uIGsoVCl7cmV0dXJuIFJ0KFQpPyh0LmNvbnN1bWUoVCksayk6QihUKX1mdW5jdGlvbiBNKFQpe3JldHVybiBUPT09NDc/KHQuY29uc3VtZShUKSxCKTpUPT09NTh8fFQ9PT05NXx8SnMoVCk/KHQuY29uc3VtZShUKSxOKTpSdChUKT8odC5jb25zdW1lKFQpLE0pOkIoVCl9ZnVuY3Rpb24gTihUKXtyZXR1cm4gVD09PTQ1fHxUPT09NDZ8fFQ9PT01OHx8VD09PTk1fHxCaShUKT8odC5jb25zdW1lKFQpLE4pOl8oVCl9ZnVuY3Rpb24gXyhUKXtyZXR1cm4gVD09PTYxPyh0LmNvbnN1bWUoVCksUyk6UnQoVCk/KHQuY29uc3VtZShUKSxfKTpNKFQpfWZ1bmN0aW9uIFMoVCl7cmV0dXJuIFQ9PT1udWxsfHxUPT09NjB8fFQ9PT02MXx8VD09PTYyfHxUPT09OTY/cihUKTpUPT09MzR8fFQ9PT0zOT8odC5jb25zdW1lKFQpLGM9VCxPKTpSdChUKT8odC5jb25zdW1lKFQpLFMpOkwoVCl9ZnVuY3Rpb24gTyhUKXtyZXR1cm4gVD09PWM/KHQuY29uc3VtZShUKSxjPW51bGwsRSk6VD09PW51bGx8fHV0KFQpP3IoVCk6KHQuY29uc3VtZShUKSxPKX1mdW5jdGlvbiBMKFQpe3JldHVybiBUPT09bnVsbHx8VD09PTM0fHxUPT09Mzl8fFQ9PT00N3x8VD09PTYwfHxUPT09NjF8fFQ9PT02Mnx8VD09PTk2fHxCcihUKT9fKFQpOih0LmNvbnN1bWUoVCksTCl9ZnVuY3Rpb24gRShUKXtyZXR1cm4gVD09PTQ3fHxUPT09NjJ8fFJ0KFQpP00oVCk6cihUKX1mdW5jdGlvbiBCKFQpe3JldHVybiBUPT09NjI/KHQuY29uc3VtZShUKSxDKTpyKFQpfWZ1bmN0aW9uIEMoVCl7cmV0dXJuIFQ9PT1udWxsfHx1dChUKT96KFQpOlJ0KFQpPyh0LmNvbnN1bWUoVCksQyk6cihUKX1mdW5jdGlvbiB6KFQpe3JldHVybiBUPT09NDUmJnM9PT0yPyh0LmNvbnN1bWUoVCksWSk6VD09PTYwJiZzPT09MT8odC5jb25zdW1lKFQpLEcpOlQ9PT02MiYmcz09PTQ/KHQuY29uc3VtZShUKSxRKTpUPT09NjMmJnM9PT0zPyh0LmNvbnN1bWUoVCksRCk6VD09PTkzJiZzPT09NT8odC5jb25zdW1lKFQpLGRlKTp1dChUKSYmKHM9PT02fHxzPT09Nyk/KHQuZXhpdCgiaHRtbEZsb3dEYXRhIiksdC5jaGVjayhEQ2EsZmUsQSkoVCkpOlQ9PT1udWxsfHx1dChUKT8odC5leGl0KCJodG1sRmxvd0RhdGEiKSxBKFQpKToodC5jb25zdW1lKFQpLHopfWZ1bmN0aW9uIEEoVCl7cmV0dXJuIHQuY2hlY2soJENhLCQsZmUpKFQpfWZ1bmN0aW9uICQoVCl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoVCksdC5leGl0KCJsaW5lRW5kaW5nIiksRn1mdW5jdGlvbiBGKFQpe3JldHVybiBUPT09bnVsbHx8dXQoVCk/QShUKToodC5lbnRlcigiaHRtbEZsb3dEYXRhIikseihUKSl9ZnVuY3Rpb24gWShUKXtyZXR1cm4gVD09PTQ1Pyh0LmNvbnN1bWUoVCksRCk6eihUKX1mdW5jdGlvbiBHKFQpe3JldHVybiBUPT09NDc/KHQuY29uc3VtZShUKSxvPSIiLFopOnooVCl9ZnVuY3Rpb24gWihUKXtpZihUPT09NjIpe2xldCBXPW8udG9Mb3dlckNhc2UoKTtyZXR1cm4gUUxlLmluY2x1ZGVzKFcpPyh0LmNvbnN1bWUoVCksUSk6eihUKX1yZXR1cm4gSnMoVCkmJm8ubGVuZ3RoPDg/KHQuY29uc3VtZShUKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFQpLFopOnooVCl9ZnVuY3Rpb24gZGUoVCl7cmV0dXJuIFQ9PT05Mz8odC5jb25zdW1lKFQpLEQpOnooVCl9ZnVuY3Rpb24gRChUKXtyZXR1cm4gVD09PTYyPyh0LmNvbnN1bWUoVCksUSk6VD09PTQ1JiZzPT09Mj8odC5jb25zdW1lKFQpLEQpOnooVCl9ZnVuY3Rpb24gUShUKXtyZXR1cm4gVD09PW51bGx8fHV0KFQpPyh0LmV4aXQoImh0bWxGbG93RGF0YSIpLGZlKFQpKToodC5jb25zdW1lKFQpLFEpfWZ1bmN0aW9uIGZlKFQpe3JldHVybiB0LmV4aXQoImh0bWxGbG93IiksZShUKX19ZnVuY3Rpb24gSUNhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIHV0KG8pPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG8pLHQuZXhpdCgibGluZUVuZGluZyIpLG4pOnIobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gYS5wYXJzZXIubGF6eVthLm5vdygpLmxpbmVdP3Iobyk6ZShvKX19ZnVuY3Rpb24gUENhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKHMpe3JldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKHMpLHQuZXhpdCgibGluZUVuZGluZyIpLHQuYXR0ZW1wdChRMCxlLHIpfX12YXIgWExlLERDYSwkQ2EsUXJyPXUoKCk9PntZcigpO1pycigpO280ZSgpO1hMZT17Y29uY3JldGU6ITAsbmFtZToiaHRtbEZsb3ciLHJlc29sdmVUbzpBQ2EsdG9rZW5pemU6RUNhfSxEQ2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6UENhfSwkQ2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6SUNhfTtpKEFDYSwicmVzb2x2ZVRvSHRtbEZsb3ciKTtpKEVDYSwidG9rZW5pemVIdG1sRmxvdyIpO2koSUNhLCJ0b2tlbml6ZU5vbkxhenlDb250aW51YXRpb25TdGFydCIpO2koUENhLCJ0b2tlbml6ZUJsYW5rTGluZUJlZm9yZSIpfSk7ZnVuY3Rpb24gTkNhKHQsZSxyKXtsZXQgYT10aGlzLHMsbixvO3JldHVybiBsO2Z1bmN0aW9uIGwoRCl7cmV0dXJuIHQuZW50ZXIoImh0bWxUZXh0IiksdC5lbnRlcigiaHRtbFRleHREYXRhIiksdC5jb25zdW1lKEQpLGN9ZnVuY3Rpb24gYyhEKXtyZXR1cm4gRD09PTMzPyh0LmNvbnN1bWUoRCksZCk6RD09PTQ3Pyh0LmNvbnN1bWUoRCksXyk6RD09PTYzPyh0LmNvbnN1bWUoRCksTSk6SnMoRCk/KHQuY29uc3VtZShEKSxMKTpyKEQpfWZ1bmN0aW9uIGQoRCl7cmV0dXJuIEQ9PT00NT8odC5jb25zdW1lKEQpLGYpOkQ9PT05MT8odC5jb25zdW1lKEQpLG49MCx2KTpKcyhEKT8odC5jb25zdW1lKEQpLGspOnIoRCl9ZnVuY3Rpb24gZihEKXtyZXR1cm4gRD09PTQ1Pyh0LmNvbnN1bWUoRCksbSk6cihEKX1mdW5jdGlvbiBwKEQpe3JldHVybiBEPT09bnVsbD9yKEQpOkQ9PT00NT8odC5jb25zdW1lKEQpLGgpOnV0KEQpPyhvPXAsRyhEKSk6KHQuY29uc3VtZShEKSxwKX1mdW5jdGlvbiBoKEQpe3JldHVybiBEPT09NDU/KHQuY29uc3VtZShEKSxtKTpwKEQpfWZ1bmN0aW9uIG0oRCl7cmV0dXJuIEQ9PT02Mj9ZKEQpOkQ9PT00NT9oKEQpOnAoRCl9ZnVuY3Rpb24gdihEKXtsZXQgUT0iQ0RBVEFbIjtyZXR1cm4gRD09PVEuY2hhckNvZGVBdChuKyspPyh0LmNvbnN1bWUoRCksbj09PVEubGVuZ3RoP2I6dik6cihEKX1mdW5jdGlvbiBiKEQpe3JldHVybiBEPT09bnVsbD9yKEQpOkQ9PT05Mz8odC5jb25zdW1lKEQpLGcpOnV0KEQpPyhvPWIsRyhEKSk6KHQuY29uc3VtZShEKSxiKX1mdW5jdGlvbiBnKEQpe3JldHVybiBEPT09OTM/KHQuY29uc3VtZShEKSx5KTpiKEQpfWZ1bmN0aW9uIHkoRCl7cmV0dXJuIEQ9PT02Mj9ZKEQpOkQ9PT05Mz8odC5jb25zdW1lKEQpLHkpOmIoRCl9ZnVuY3Rpb24gayhEKXtyZXR1cm4gRD09PW51bGx8fEQ9PT02Mj9ZKEQpOnV0KEQpPyhvPWssRyhEKSk6KHQuY29uc3VtZShEKSxrKX1mdW5jdGlvbiBNKEQpe3JldHVybiBEPT09bnVsbD9yKEQpOkQ9PT02Mz8odC5jb25zdW1lKEQpLE4pOnV0KEQpPyhvPU0sRyhEKSk6KHQuY29uc3VtZShEKSxNKX1mdW5jdGlvbiBOKEQpe3JldHVybiBEPT09NjI/WShEKTpNKEQpfWZ1bmN0aW9uIF8oRCl7cmV0dXJuIEpzKEQpPyh0LmNvbnN1bWUoRCksUyk6cihEKX1mdW5jdGlvbiBTKEQpe3JldHVybiBEPT09NDV8fEJpKEQpPyh0LmNvbnN1bWUoRCksUyk6TyhEKX1mdW5jdGlvbiBPKEQpe3JldHVybiB1dChEKT8obz1PLEcoRCkpOlJ0KEQpPyh0LmNvbnN1bWUoRCksTyk6WShEKX1mdW5jdGlvbiBMKEQpe3JldHVybiBEPT09NDV8fEJpKEQpPyh0LmNvbnN1bWUoRCksTCk6RD09PTQ3fHxEPT09NjJ8fEJyKEQpP0UoRCk6cihEKX1mdW5jdGlvbiBFKEQpe3JldHVybiBEPT09NDc/KHQuY29uc3VtZShEKSxZKTpEPT09NTh8fEQ9PT05NXx8SnMoRCk/KHQuY29uc3VtZShEKSxCKTp1dChEKT8obz1FLEcoRCkpOlJ0KEQpPyh0LmNvbnN1bWUoRCksRSk6WShEKX1mdW5jdGlvbiBCKEQpe3JldHVybiBEPT09NDV8fEQ9PT00Nnx8RD09PTU4fHxEPT09OTV8fEJpKEQpPyh0LmNvbnN1bWUoRCksQik6QyhEKX1mdW5jdGlvbiBDKEQpe3JldHVybiBEPT09NjE/KHQuY29uc3VtZShEKSx6KTp1dChEKT8obz1DLEcoRCkpOlJ0KEQpPyh0LmNvbnN1bWUoRCksQyk6RShEKX1mdW5jdGlvbiB6KEQpe3JldHVybiBEPT09bnVsbHx8RD09PTYwfHxEPT09NjF8fEQ9PT02Mnx8RD09PTk2P3IoRCk6RD09PTM0fHxEPT09Mzk/KHQuY29uc3VtZShEKSxzPUQsQSk6dXQoRCk/KG89eixHKEQpKTpSdChEKT8odC5jb25zdW1lKEQpLHopOih0LmNvbnN1bWUoRCksJCl9ZnVuY3Rpb24gQShEKXtyZXR1cm4gRD09PXM/KHQuY29uc3VtZShEKSxzPXZvaWQgMCxGKTpEPT09bnVsbD9yKEQpOnV0KEQpPyhvPUEsRyhEKSk6KHQuY29uc3VtZShEKSxBKX1mdW5jdGlvbiAkKEQpe3JldHVybiBEPT09bnVsbHx8RD09PTM0fHxEPT09Mzl8fEQ9PT02MHx8RD09PTYxfHxEPT09OTY/cihEKTpEPT09NDd8fEQ9PT02Mnx8QnIoRCk/RShEKToodC5jb25zdW1lKEQpLCQpfWZ1bmN0aW9uIEYoRCl7cmV0dXJuIEQ9PT00N3x8RD09PTYyfHxCcihEKT9FKEQpOnIoRCl9ZnVuY3Rpb24gWShEKXtyZXR1cm4gRD09PTYyPyh0LmNvbnN1bWUoRCksdC5leGl0KCJodG1sVGV4dERhdGEiKSx0LmV4aXQoImh0bWxUZXh0IiksZSk6cihEKX1mdW5jdGlvbiBHKEQpe3JldHVybiB0LmV4aXQoImh0bWxUZXh0RGF0YSIpLHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoRCksdC5leGl0KCJsaW5lRW5kaW5nIiksWn1mdW5jdGlvbiBaKEQpe3JldHVybiBSdChEKT9XdCh0LGRlLCJsaW5lUHJlZml4IixhLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKEQpOmRlKEQpfWZ1bmN0aW9uIGRlKEQpe3JldHVybiB0LmVudGVyKCJodG1sVGV4dERhdGEiKSxvKEQpfX12YXIgSkxlLFhycj11KCgpPT57YXMoKTtZcigpO0pMZT17bmFtZToiaHRtbFRleHQiLHRva2VuaXplOk5DYX07aShOQ2EsInRva2VuaXplSHRtbFRleHQiKX0pO2Z1bmN0aW9uIEJDYSh0KXtsZXQgZT0tMSxyPVtdO2Zvcig7KytlPHQubGVuZ3RoOyl7bGV0IGE9dFtlXVsxXTtpZihyLnB1c2godFtlXSksYS50eXBlPT09ImxhYmVsSW1hZ2UifHxhLnR5cGU9PT0ibGFiZWxMaW5rInx8YS50eXBlPT09ImxhYmVsRW5kIil7bGV0IHM9YS50eXBlPT09ImxhYmVsSW1hZ2UiPzQ6MjthLnR5cGU9ImRhdGEiLGUrPXN9fXJldHVybiB0Lmxlbmd0aCE9PXIubGVuZ3RoJiZycyh0LDAsdC5sZW5ndGgsciksdH1mdW5jdGlvbiBIQ2EodCxlKXtsZXQgcj10Lmxlbmd0aCxhPTAscyxuLG8sbDtmb3IoO3ItLTspaWYocz10W3JdWzFdLG4pe2lmKHMudHlwZT09PSJsaW5rInx8cy50eXBlPT09ImxhYmVsTGluayImJnMuX2luYWN0aXZlKWJyZWFrO3Rbcl1bMF09PT0iZW50ZXIiJiZzLnR5cGU9PT0ibGFiZWxMaW5rIiYmKHMuX2luYWN0aXZlPSEwKX1lbHNlIGlmKG8pe2lmKHRbcl1bMF09PT0iZW50ZXIiJiYocy50eXBlPT09ImxhYmVsSW1hZ2UifHxzLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFzLl9iYWxhbmNlZCYmKG49cixzLnR5cGUhPT0ibGFiZWxMaW5rIikpe2E9MjticmVha319ZWxzZSBzLnR5cGU9PT0ibGFiZWxFbmQiJiYobz1yKTtsZXQgYz17dHlwZTp0W25dWzFdLnR5cGU9PT0ibGFiZWxMaW5rIj8ibGluayI6ImltYWdlIixzdGFydDp7Li4udFtuXVsxXS5zdGFydH0sZW5kOnsuLi50W3QubGVuZ3RoLTFdWzFdLmVuZH19LGQ9e3R5cGU6ImxhYmVsIixzdGFydDp7Li4udFtuXVsxXS5zdGFydH0sZW5kOnsuLi50W29dWzFdLmVuZH19LGY9e3R5cGU6ImxhYmVsVGV4dCIsc3RhcnQ6ey4uLnRbbithKzJdWzFdLmVuZH0sZW5kOnsuLi50W28tMl1bMV0uc3RhcnR9fTtyZXR1cm4gbD1bWyJlbnRlciIsYyxlXSxbImVudGVyIixkLGVdXSxsPUNzKGwsdC5zbGljZShuKzEsbithKzMpKSxsPUNzKGwsW1siZW50ZXIiLGYsZV1dKSxsPUNzKGwseXAoZS5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsdC5zbGljZShuK2ErNCxvLTMpLGUpKSxsPUNzKGwsW1siZXhpdCIsZixlXSx0W28tMl0sdFtvLTFdLFsiZXhpdCIsZCxlXV0pLGw9Q3MobCx0LnNsaWNlKG8rMSkpLGw9Q3MobCxbWyJleGl0IixjLGVdXSkscnModCxuLHQubGVuZ3RoLGwpLHR9ZnVuY3Rpb24gcUNhKHQsZSxyKXtsZXQgYT10aGlzLHM9YS5ldmVudHMubGVuZ3RoLG4sbztmb3IoO3MtLTspaWYoKGEuZXZlbnRzW3NdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fGEuZXZlbnRzW3NdWzFdLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFhLmV2ZW50c1tzXVsxXS5fYmFsYW5jZWQpe249YS5ldmVudHNbc11bMV07YnJlYWt9cmV0dXJuIGw7ZnVuY3Rpb24gbChoKXtyZXR1cm4gbj9uLl9pbmFjdGl2ZT9wKGgpOihvPWEucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoSGkoYS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6bi5lbmQsZW5kOmEubm93KCl9KSkpLHQuZW50ZXIoImxhYmVsRW5kIiksdC5lbnRlcigibGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUoaCksdC5leGl0KCJsYWJlbE1hcmtlciIpLHQuZXhpdCgibGFiZWxFbmQiKSxjKTpyKGgpfWZ1bmN0aW9uIGMoaCl7cmV0dXJuIGg9PT00MD90LmF0dGVtcHQoT0NhLGYsbz9mOnApKGgpOmg9PT05MT90LmF0dGVtcHQoUkNhLGYsbz9kOnApKGgpOm8/ZihoKTpwKGgpfWZ1bmN0aW9uIGQoaCl7cmV0dXJuIHQuYXR0ZW1wdChGQ2EsZixwKShoKX1mdW5jdGlvbiBmKGgpe3JldHVybiBlKGgpfWZ1bmN0aW9uIHAoaCl7cmV0dXJuIG4uX2JhbGFuY2VkPSEwLHIoaCl9fWZ1bmN0aW9uIFZDYSh0LGUscil7cmV0dXJuIGE7ZnVuY3Rpb24gYShwKXtyZXR1cm4gdC5lbnRlcigicmVzb3VyY2UiKSx0LmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLHQuY29uc3VtZShwKSx0LmV4aXQoInJlc291cmNlTWFya2VyIiksc31mdW5jdGlvbiBzKHApe3JldHVybiBCcihwKT9SNih0LG4pKHApOm4ocCl9ZnVuY3Rpb24gbihwKXtyZXR1cm4gcD09PTQxP2YocCk6ZjRlKHQsbyxsLCJyZXNvdXJjZURlc3RpbmF0aW9uIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWwiLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsInJlc291cmNlRGVzdGluYXRpb25SYXciLCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nIiwzMikocCl9ZnVuY3Rpb24gbyhwKXtyZXR1cm4gQnIocCk/UjYodCxjKShwKTpmKHApfWZ1bmN0aW9uIGwocCl7cmV0dXJuIHIocCl9ZnVuY3Rpb24gYyhwKXtyZXR1cm4gcD09PTM0fHxwPT09Mzl8fHA9PT00MD9tNGUodCxkLHIsInJlc291cmNlVGl0bGUiLCJyZXNvdXJjZVRpdGxlTWFya2VyIiwicmVzb3VyY2VUaXRsZVN0cmluZyIpKHApOmYocCl9ZnVuY3Rpb24gZChwKXtyZXR1cm4gQnIocCk/UjYodCxmKShwKTpmKHApfWZ1bmN0aW9uIGYocCl7cmV0dXJuIHA9PT00MT8odC5lbnRlcigicmVzb3VyY2VNYXJrZXIiKSx0LmNvbnN1bWUocCksdC5leGl0KCJyZXNvdXJjZU1hcmtlciIpLHQuZXhpdCgicmVzb3VyY2UiKSxlKTpyKHApfX1mdW5jdGlvbiBqQ2EodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhsKXtyZXR1cm4gaDRlLmNhbGwoYSx0LG4sbywicmVmZXJlbmNlIiwicmVmZXJlbmNlTWFya2VyIiwicmVmZXJlbmNlU3RyaW5nIikobCl9ZnVuY3Rpb24gbihsKXtyZXR1cm4gYS5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhIaShhLnNsaWNlU2VyaWFsaXplKGEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpKT9lKGwpOnIobCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gcihsKX19ZnVuY3Rpb24gVUNhKHQsZSxyKXtyZXR1cm4gYTtmdW5jdGlvbiBhKG4pe3JldHVybiB0LmVudGVyKCJyZWZlcmVuY2UiKSx0LmVudGVyKCJyZWZlcmVuY2VNYXJrZXIiKSx0LmNvbnN1bWUobiksdC5leGl0KCJyZWZlcmVuY2VNYXJrZXIiKSxzfWZ1bmN0aW9uIHMobil7cmV0dXJuIG49PT05Mz8odC5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksdC5jb25zdW1lKG4pLHQuZXhpdCgicmVmZXJlbmNlTWFya2VyIiksdC5leGl0KCJyZWZlcmVuY2UiKSxlKTpyKG4pfX12YXIgRjYsT0NhLFJDYSxGQ2EsZzRlPXUoKCk9PntqTGUoKTtVTGUoKTtXTGUoKTtHTGUoKTtZcigpO0cwKCk7eHAoKTtSeigpO0Y2PXtuYW1lOiJsYWJlbEVuZCIscmVzb2x2ZUFsbDpCQ2EscmVzb2x2ZVRvOkhDYSx0b2tlbml6ZTpxQ2F9LE9DYT17dG9rZW5pemU6VkNhfSxSQ2E9e3Rva2VuaXplOmpDYX0sRkNhPXt0b2tlbml6ZTpVQ2F9O2koQkNhLCJyZXNvbHZlQWxsTGFiZWxFbmQiKTtpKEhDYSwicmVzb2x2ZVRvTGFiZWxFbmQiKTtpKHFDYSwidG9rZW5pemVMYWJlbEVuZCIpO2koVkNhLCJ0b2tlbml6ZVJlc291cmNlIik7aShqQ2EsInRva2VuaXplUmVmZXJlbmNlRnVsbCIpO2koVUNhLCJ0b2tlbml6ZVJlZmVyZW5jZUNvbGxhcHNlZCIpfSk7ZnVuY3Rpb24gV0NhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobCl7cmV0dXJuIHQuZW50ZXIoImxhYmVsSW1hZ2UiKSx0LmVudGVyKCJsYWJlbEltYWdlTWFya2VyIiksdC5jb25zdW1lKGwpLHQuZXhpdCgibGFiZWxJbWFnZU1hcmtlciIpLG59ZnVuY3Rpb24gbihsKXtyZXR1cm4gbD09PTkxPyh0LmVudGVyKCJsYWJlbE1hcmtlciIpLHQuY29uc3VtZShsKSx0LmV4aXQoImxhYmVsTWFya2VyIiksdC5leGl0KCJsYWJlbEltYWdlIiksbyk6cihsKX1mdW5jdGlvbiBvKGwpe3JldHVybiBsPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGEucGFyc2VyLmNvbnN0cnVjdHM/cihsKTplKGwpfX12YXIgZURlLEpycj11KCgpPT57ZzRlKCk7ZURlPXtuYW1lOiJsYWJlbFN0YXJ0SW1hZ2UiLHJlc29sdmVBbGw6RjYucmVzb2x2ZUFsbCx0b2tlbml6ZTpXQ2F9O2koV0NhLCJ0b2tlbml6ZUxhYmVsU3RhcnRJbWFnZSIpfSk7ZnVuY3Rpb24gR0NhKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBzO2Z1bmN0aW9uIHMobyl7cmV0dXJuIHQuZW50ZXIoImxhYmVsTGluayIpLHQuZW50ZXIoImxhYmVsTWFya2VyIiksdC5jb25zdW1lKG8pLHQuZXhpdCgibGFiZWxNYXJrZXIiKSx0LmV4aXQoImxhYmVsTGluayIpLG59ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PTk0JiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBhLnBhcnNlci5jb25zdHJ1Y3RzP3Iobyk6ZShvKX19dmFyIHREZSxlYXI9dSgoKT0+e2c0ZSgpO3REZT17bmFtZToibGFiZWxTdGFydExpbmsiLHJlc29sdmVBbGw6RjYucmVzb2x2ZUFsbCx0b2tlbml6ZTpHQ2F9O2koR0NhLCJ0b2tlbml6ZUxhYmVsU3RhcnRMaW5rIil9KTtmdW5jdGlvbiBZQ2EodCxlKXtyZXR1cm4gcjtmdW5jdGlvbiByKGEpe3JldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGEpLHQuZXhpdCgibGluZUVuZGluZyIpLFd0KHQsZSwibGluZVByZWZpeCIpfX12YXIgVnosdGFyPXUoKCk9PnthcygpO1lyKCk7Vno9e25hbWU6ImxpbmVFbmRpbmciLHRva2VuaXplOllDYX07aShZQ2EsInRva2VuaXplTGluZUVuZGluZyIpfSk7ZnVuY3Rpb24gS0NhKHQsZSxyKXtsZXQgYT0wLHM7cmV0dXJuIG47ZnVuY3Rpb24gbihkKXtyZXR1cm4gdC5lbnRlcigidGhlbWF0aWNCcmVhayIpLG8oZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gcz1kLGwoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PXM/KHQuZW50ZXIoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLGMoZCkpOmE+PTMmJihkPT09bnVsbHx8dXQoZCkpPyh0LmV4aXQoInRoZW1hdGljQnJlYWsiKSxlKGQpKTpyKGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGQ9PT1zPyh0LmNvbnN1bWUoZCksYSsrLGMpOih0LmV4aXQoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLFJ0KGQpP1d0KHQsbCwid2hpdGVzcGFjZSIpKGQpOmwoZCkpfX12YXIgQjYsckRlPXUoKCk9PnthcygpO1lyKCk7QjY9e25hbWU6InRoZW1hdGljQnJlYWsiLHRva2VuaXplOktDYX07aShLQ2EsInRva2VuaXplVGhlbWF0aWNCcmVhayIpfSk7ZnVuY3Rpb24gWENhKHQsZSxyKXtsZXQgYT10aGlzLHM9YS5ldmVudHNbYS5ldmVudHMubGVuZ3RoLTFdLG49cyYmc1sxXS50eXBlPT09ImxpbmVQcmVmaXgiP3NbMl0uc2xpY2VTZXJpYWxpemUoc1sxXSwhMCkubGVuZ3RoOjAsbz0wO3JldHVybiBsO2Z1bmN0aW9uIGwobSl7bGV0IHY9YS5jb250YWluZXJTdGF0ZS50eXBlfHwobT09PTQyfHxtPT09NDN8fG09PT00NT8ibGlzdFVub3JkZXJlZCI6Imxpc3RPcmRlcmVkIik7aWYodj09PSJsaXN0VW5vcmRlcmVkIj8hYS5jb250YWluZXJTdGF0ZS5tYXJrZXJ8fG09PT1hLmNvbnRhaW5lclN0YXRlLm1hcmtlcjpFeihtKSl7aWYoYS5jb250YWluZXJTdGF0ZS50eXBlfHwoYS5jb250YWluZXJTdGF0ZS50eXBlPXYsdC5lbnRlcih2LHtfY29udGFpbmVyOiEwfSkpLHY9PT0ibGlzdFVub3JkZXJlZCIpcmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksbT09PTQyfHxtPT09NDU/dC5jaGVjayhCNixyLGQpKG0pOmQobSk7aWYoIWEuaW50ZXJydXB0fHxtPT09NDkpcmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksdC5lbnRlcigibGlzdEl0ZW1WYWx1ZSIpLGMobSl9cmV0dXJuIHIobSl9ZnVuY3Rpb24gYyhtKXtyZXR1cm4gRXoobSkmJisrbzwxMD8odC5jb25zdW1lKG0pLGMpOighYS5pbnRlcnJ1cHR8fG88MikmJihhLmNvbnRhaW5lclN0YXRlLm1hcmtlcj9tPT09YS5jb250YWluZXJTdGF0ZS5tYXJrZXI6bT09PTQxfHxtPT09NDYpPyh0LmV4aXQoImxpc3RJdGVtVmFsdWUiKSxkKG0pKTpyKG0pfWZ1bmN0aW9uIGQobSl7cmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtTWFya2VyIiksdC5jb25zdW1lKG0pLHQuZXhpdCgibGlzdEl0ZW1NYXJrZXIiKSxhLmNvbnRhaW5lclN0YXRlLm1hcmtlcj1hLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8bSx0LmNoZWNrKFEwLGEuaW50ZXJydXB0P3I6Zix0LmF0dGVtcHQoWkNhLGgscCkpfWZ1bmN0aW9uIGYobSl7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT0hMCxuKyssaChtKX1mdW5jdGlvbiBwKG0pe3JldHVybiBSdChtKT8odC5lbnRlcigibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksdC5jb25zdW1lKG0pLHQuZXhpdCgibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksaCk6cihtKX1mdW5jdGlvbiBoKG0pe3JldHVybiBhLmNvbnRhaW5lclN0YXRlLnNpemU9bithLnNsaWNlU2VyaWFsaXplKHQuZXhpdCgibGlzdEl0ZW1QcmVmaXgiKSwhMCkubGVuZ3RoLGUobSl9fWZ1bmN0aW9uIEpDYSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCx0LmNoZWNrKFEwLHMsbik7ZnVuY3Rpb24gcyhsKXtyZXR1cm4gYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz1hLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzfHxhLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmUsV3QodCxlLCJsaXN0SXRlbUluZGVudCIsYS5jb250YWluZXJTdGF0ZS5zaXplKzEpKGwpfWkocywib25CbGFuayIpO2Z1bmN0aW9uIG4obCl7cmV0dXJuIGEuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fCFSdChsKT8oYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsYS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxvKGwpKTooYS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsYS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCx0LmF0dGVtcHQoUUNhLGUsbykobCkpfWkobiwibm90QmxhbmsiKTtmdW5jdGlvbiBvKGwpe3JldHVybiBhLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9ITAsYS5pbnRlcnJ1cHQ9dm9pZCAwLFd0KHQsdC5hdHRlbXB0KGJvLGUsciksImxpbmVQcmVmaXgiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkobCl9aShvLCJub3RJbkN1cnJlbnRJdGVtIil9ZnVuY3Rpb24gZXphKHQsZSxyKXtsZXQgYT10aGlzO3JldHVybiBXdCh0LHMsImxpc3RJdGVtSW5kZW50IixhLmNvbnRhaW5lclN0YXRlLnNpemUrMSk7ZnVuY3Rpb24gcyhuKXtsZXQgbz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG8mJm9bMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09YS5jb250YWluZXJTdGF0ZS5zaXplP2Uobik6cihuKX19ZnVuY3Rpb24gdHphKHQpe3QuZXhpdCh0aGlzLmNvbnRhaW5lclN0YXRlLnR5cGUpfWZ1bmN0aW9uIHJ6YSh0LGUscil7bGV0IGE9dGhpcztyZXR1cm4gV3QodCxzLCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NSk7ZnVuY3Rpb24gcyhuKXtsZXQgbz1hLmV2ZW50c1thLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIVJ0KG4pJiZvJiZvWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIj9lKG4pOnIobil9fXZhciBibyxaQ2EsUUNhLHJhcj11KCgpPT57YXMoKTtZcigpO280ZSgpO3JEZSgpO2JvPXtjb250aW51YXRpb246e3Rva2VuaXplOkpDYX0sZXhpdDp0emEsbmFtZToibGlzdCIsdG9rZW5pemU6WENhfSxaQ2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6cnphfSxRQ2E9e3BhcnRpYWw6ITAsdG9rZW5pemU6ZXphfTtpKFhDYSwidG9rZW5pemVMaXN0U3RhcnQiKTtpKEpDYSwidG9rZW5pemVMaXN0Q29udGludWF0aW9uIik7aShlemEsInRva2VuaXplSW5kZW50Iik7aSh0emEsInRva2VuaXplTGlzdEVuZCIpO2kocnphLCJ0b2tlbml6ZUxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIpfSk7ZnVuY3Rpb24gYXphKHQsZSl7bGV0IHI9dC5sZW5ndGgsYSxzLG47Zm9yKDtyLS07KWlmKHRbcl1bMF09PT0iZW50ZXIiKXtpZih0W3JdWzFdLnR5cGU9PT0iY29udGVudCIpe2E9cjticmVha310W3JdWzFdLnR5cGU9PT0icGFyYWdyYXBoIiYmKHM9cil9ZWxzZSB0W3JdWzFdLnR5cGU9PT0iY29udGVudCImJnQuc3BsaWNlKHIsMSksIW4mJnRbcl1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKG49cik7bGV0IG89e3R5cGU6InNldGV4dEhlYWRpbmciLHN0YXJ0OnsuLi50W2FdWzFdLnN0YXJ0fSxlbmQ6ey4uLnRbdC5sZW5ndGgtMV1bMV0uZW5kfX07cmV0dXJuIHRbc11bMV0udHlwZT0ic2V0ZXh0SGVhZGluZ1RleHQiLG4/KHQuc3BsaWNlKHMsMCxbImVudGVyIixvLGVdKSx0LnNwbGljZShuKzEsMCxbImV4aXQiLHRbYV1bMV0sZV0pLHRbYV1bMV0uZW5kPXsuLi50W25dWzFdLmVuZH0pOnRbYV1bMV09byx0LnB1c2goWyJleGl0IixvLGVdKSx0fWZ1bmN0aW9uIGl6YSh0LGUscil7bGV0IGE9dGhpcyxzO3JldHVybiBuO2Z1bmN0aW9uIG4oZCl7bGV0IGY9YS5ldmVudHMubGVuZ3RoLHA7Zm9yKDtmLS07KWlmKGEuZXZlbnRzW2ZdWzFdLnR5cGUhPT0ibGluZUVuZGluZyImJmEuZXZlbnRzW2ZdWzFdLnR5cGUhPT0ibGluZVByZWZpeCImJmEuZXZlbnRzW2ZdWzFdLnR5cGUhPT0iY29udGVudCIpe3A9YS5ldmVudHNbZl1bMV0udHlwZT09PSJwYXJhZ3JhcGgiO2JyZWFrfXJldHVybiFhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0mJihhLmludGVycnVwdHx8cCk/KHQuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lIikscz1kLG8oZCkpOnIoZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gdC5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIpLGwoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PXM/KHQuY29uc3VtZShkKSxsKToodC5leGl0KCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksUnQoZCk/V3QodCxjLCJsaW5lU3VmZml4IikoZCk6YyhkKSl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gZD09PW51bGx8fHV0KGQpPyh0LmV4aXQoInNldGV4dEhlYWRpbmdMaW5lIiksZShkKSk6cihkKX19dmFyIGI0ZSxhYXI9dSgoKT0+e2FzKCk7WXIoKTtiNGU9e25hbWU6InNldGV4dFVuZGVybGluZSIscmVzb2x2ZVRvOmF6YSx0b2tlbml6ZTppemF9O2koYXphLCJyZXNvbHZlVG9TZXRleHRVbmRlcmxpbmUiKTtpKGl6YSwidG9rZW5pemVTZXRleHRVbmRlcmxpbmUiKX0pO3ZhciB4NGU9dSgoKT0+e05ycigpO09ycigpO280ZSgpO1JycigpO0ZycigpO0JycigpO3FycigpO1ZycigpO2pycigpO1VycigpO1dycigpO0dycigpO1lycigpO1FycigpO1hycigpO2c0ZSgpO0pycigpO2VhcigpO3RhcigpO3JhcigpO2FhcigpO3JEZSgpfSk7ZnVuY3Rpb24gYURlKCl7cmV0dXJue2RvY3VtZW50Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIix0b2tlbml6ZTpjemEsY29udGludWF0aW9uOnt0b2tlbml6ZTpkemF9LGV4aXQ6dXphfX0sdGV4dDp7OTE6e25hbWU6ImdmbUZvb3Rub3RlQ2FsbCIsdG9rZW5pemU6bHphfSw5Mzp7bmFtZToiZ2ZtUG90ZW50aWFsRm9vdG5vdGVDYWxsIixhZGQ6ImFmdGVyIix0b2tlbml6ZTpuemEscmVzb2x2ZVRvOm96YX19fX1mdW5jdGlvbiBuemEodCxlLHIpe2xldCBhPXRoaXMscz1hLmV2ZW50cy5sZW5ndGgsbj1hLnBhcnNlci5nZm1Gb290bm90ZXN8fChhLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG87Zm9yKDtzLS07KXtsZXQgYz1hLmV2ZW50c1tzXVsxXTtpZihjLnR5cGU9PT0ibGFiZWxJbWFnZSIpe289YzticmVha31pZihjLnR5cGU9PT0iZ2ZtRm9vdG5vdGVDYWxsInx8Yy50eXBlPT09ImxhYmVsTGluayJ8fGMudHlwZT09PSJsYWJlbCJ8fGMudHlwZT09PSJpbWFnZSJ8fGMudHlwZT09PSJsaW5rIilicmVha31yZXR1cm4gbDtmdW5jdGlvbiBsKGMpe2lmKCFvfHwhby5fYmFsYW5jZWQpcmV0dXJuIHIoYyk7bGV0IGQ9SGkoYS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6by5lbmQsZW5kOmEubm93KCl9KSk7cmV0dXJuIGQuY29kZVBvaW50QXQoMCkhPT05NHx8IW4uaW5jbHVkZXMoZC5zbGljZSgxKSk/cihjKToodC5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUoYyksdC5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGUoYykpfX1mdW5jdGlvbiBvemEodCxlKXtsZXQgcj10Lmxlbmd0aCxhO2Zvcig7ci0tOylpZih0W3JdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSImJnRbcl1bMF09PT0iZW50ZXIiKXthPXRbcl1bMV07YnJlYWt9dFtyKzFdWzFdLnR5cGU9ImRhdGEiLHRbciszXVsxXS50eXBlPSJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciI7bGV0IHM9e3R5cGU6ImdmbUZvb3Rub3RlQ2FsbCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx0W3IrM11bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHRbdC5sZW5ndGgtMV1bMV0uZW5kKX0sbj17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsTWFya2VyIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHRbciszXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHRbciszXVsxXS5lbmQpfTtuLmVuZC5jb2x1bW4rKyxuLmVuZC5vZmZzZXQrKyxuLmVuZC5fYnVmZmVySW5kZXgrKztsZXQgbz17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIixzdGFydDpPYmplY3QuYXNzaWduKHt9LG4uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx0W3QubGVuZ3RoLTFdWzFdLnN0YXJ0KX0sbD17dHlwZToiY2h1bmtTdHJpbmciLGNvbnRlbnRUeXBlOiJzdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sby5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sby5lbmQpfSxjPVt0W3IrMV0sdFtyKzJdLFsiZW50ZXIiLHMsZV0sdFtyKzNdLHRbcis0XSxbImVudGVyIixuLGVdLFsiZXhpdCIsbixlXSxbImVudGVyIixvLGVdLFsiZW50ZXIiLGwsZV0sWyJleGl0IixsLGVdLFsiZXhpdCIsbyxlXSx0W3QubGVuZ3RoLTJdLHRbdC5sZW5ndGgtMV0sWyJleGl0IixzLGVdXTtyZXR1cm4gdC5zcGxpY2Uocix0Lmxlbmd0aC1yKzEsLi4uYyksdH1mdW5jdGlvbiBsemEodCxlLHIpe2xldCBhPXRoaXMscz1hLnBhcnNlci5nZm1Gb290bm90ZXN8fChhLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG49MCxvO3JldHVybiBsO2Z1bmN0aW9uIGwocCl7cmV0dXJuIHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbCIpLHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdC5jb25zdW1lKHApLHQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxjfWZ1bmN0aW9uIGMocCl7cmV0dXJuIHAhPT05ND9yKHApOih0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSx0LmNvbnN1bWUocCksdC5leGl0KCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSx0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKSx0LmVudGVyKCJjaHVua1N0cmluZyIpLmNvbnRlbnRUeXBlPSJzdHJpbmciLGQpfWZ1bmN0aW9uIGQocCl7aWYobj45OTl8fHA9PT05MyYmIW98fHA9PT1udWxsfHxwPT09OTF8fEJyKHApKXJldHVybiByKHApO2lmKHA9PT05Myl7dC5leGl0KCJjaHVua1N0cmluZyIpO2xldCBoPXQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIik7cmV0dXJuIHMuaW5jbHVkZXMoSGkoYS5zbGljZVNlcmlhbGl6ZShoKSkpPyh0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHQuY29uc3VtZShwKSx0LmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdC5leGl0KCJnZm1Gb290bm90ZUNhbGwiKSxlKTpyKHApfXJldHVybiBCcihwKXx8KG89ITApLG4rKyx0LmNvbnN1bWUocCkscD09PTkyP2Y6ZH1mdW5jdGlvbiBmKHApe3JldHVybiBwPT09OTF8fHA9PT05Mnx8cD09PTkzPyh0LmNvbnN1bWUocCksbisrLGQpOmQocCl9fWZ1bmN0aW9uIGN6YSh0LGUscil7bGV0IGE9dGhpcyxzPWEucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGEucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbixvPTAsbDtyZXR1cm4gYztmdW5jdGlvbiBjKHYpe3JldHVybiB0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb24iKS5fY29udGFpbmVyPSEwLHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsIiksdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUodiksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGR9ZnVuY3Rpb24gZCh2KXtyZXR1cm4gdj09PTk0Pyh0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSx0LmNvbnN1bWUodiksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSx0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpLHQuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsZik6cih2KX1mdW5jdGlvbiBmKHYpe2lmKG8+OTk5fHx2PT09OTMmJiFsfHx2PT09bnVsbHx8dj09PTkxfHxCcih2KSlyZXR1cm4gcih2KTtpZih2PT09OTMpe3QuZXhpdCgiY2h1bmtTdHJpbmciKTtsZXQgYj10LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIik7cmV0dXJuIG49SGkoYS5zbGljZVNlcmlhbGl6ZShiKSksdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUodiksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSxofXJldHVybiBCcih2KXx8KGw9ITApLG8rKyx0LmNvbnN1bWUodiksdj09PTkyP3A6Zn1mdW5jdGlvbiBwKHYpe3JldHVybiB2PT09OTF8fHY9PT05Mnx8dj09PTkzPyh0LmNvbnN1bWUodiksbysrLGYpOmYodil9ZnVuY3Rpb24gaCh2KXtyZXR1cm4gdj09PTU4Pyh0LmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksdC5jb25zdW1lKHYpLHQuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLHMuaW5jbHVkZXMobil8fHMucHVzaChuKSxXdCh0LG0sImdmbUZvb3Rub3RlRGVmaW5pdGlvbldoaXRlc3BhY2UiKSk6cih2KX1mdW5jdGlvbiBtKHYpe3JldHVybiBlKHYpfX1mdW5jdGlvbiBkemEodCxlLHIpe3JldHVybiB0LmNoZWNrKFEwLGUsdC5hdHRlbXB0KHN6YSxlLHIpKX1mdW5jdGlvbiB1emEodCl7dC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb24iKX1mdW5jdGlvbiBwemEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIFd0KHQscywiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50Iiw1KTtmdW5jdGlvbiBzKG4pe2xldCBvPWEuZXZlbnRzW2EuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09ImdmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09ND9lKG4pOnIobil9fXZhciBzemEsaWFyPXUoKCk9Pnt4NGUoKTthcygpO1lyKCk7eHAoKTtzemE9e3Rva2VuaXplOnB6YSxwYXJ0aWFsOiEwfTtpKGFEZSwiZ2ZtRm9vdG5vdGUiKTtpKG56YSwidG9rZW5pemVQb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwiKTtpKG96YSwicmVzb2x2ZVRvUG90ZW50aWFsR2ZtRm9vdG5vdGVDYWxsIik7aShsemEsInRva2VuaXplR2ZtRm9vdG5vdGVDYWxsIik7aShjemEsInRva2VuaXplRGVmaW5pdGlvblN0YXJ0Iik7aShkemEsInRva2VuaXplRGVmaW5pdGlvbkNvbnRpbnVhdGlvbiIpO2kodXphLCJnZm1Gb290bm90ZURlZmluaXRpb25FbmQiKTtpKHB6YSwidG9rZW5pemVJbmRlbnQiKX0pO2Z1bmN0aW9uIHNhcih0LGUpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyh0KzEpKyhlPjE/Ii0iK2U6IiIpfWZ1bmN0aW9uIGlEZSh0KXtsZXQgZT10fHxoemEscj1lLmxhYmVsfHwiRm9vdG5vdGVzIixhPWUubGFiZWxUYWdOYW1lfHwiaDIiLHM9ZS5sYWJlbEF0dHJpYnV0ZXM9PT1udWxsfHxlLmxhYmVsQXR0cmlidXRlcz09PXZvaWQgMD8nY2xhc3M9InNyLW9ubHkiJzplLmxhYmVsQXR0cmlidXRlcyxuPWUuYmFja0xhYmVsfHxzYXIsbz1lLmNsb2JiZXJQcmVmaXg9PT1udWxsfHxlLmNsb2JiZXJQcmVmaXg9PT12b2lkIDA/InVzZXItY29udGVudC0iOmUuY2xvYmJlclByZWZpeDtyZXR1cm57ZW50ZXI6e2dmbUZvb3Rub3RlRGVmaW5pdGlvbigpe3RoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLnB1c2goITEpfSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9LGdmbUZvb3Rub3RlQ2FsbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9fSxleGl0OntnZm1Gb290bm90ZURlZmluaXRpb24oKXtsZXQgbD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiKSxjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKSxkPXRoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLGY9Yy5wb3AoKSxwPXRoaXMucmVzdW1lKCk7bHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIixsPXt9KSxmemEuY2FsbChsLGYpfHwobFtmXT1wKSxkLnBvcCgpLHRoaXMuc2V0RGF0YSgic2x1cnBPbmVMaW5lRW5kaW5nIiwhMCksdGhpcy5zZXREYXRhKCJsYXN0V2FzVGFnIil9LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKGwpe2xldCBjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKTtjfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIixjPVtdKSxjLnB1c2goSGkodGhpcy5zbGljZVNlcmlhbGl6ZShsKSkpLHRoaXMucmVzdW1lKCksdGhpcy5idWZmZXIoKX0sZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKGwpe2xldCBjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKSxkPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIiksZj1IaSh0aGlzLnNsaWNlU2VyaWFsaXplKGwpKSxwO3RoaXMucmVzdW1lKCksY3x8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIsYz1bXSksZHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiLGQ9e30pO2xldCBoPWMuaW5kZXhPZihmKSxtPUswKGYudG9Mb3dlckNhc2UoKSk7aD09PS0xPyhjLnB1c2goZiksZFtmXT0xLHA9Yy5sZW5ndGgpOihkW2ZdKysscD1oKzEpO2xldCB2PWRbZl07dGhpcy50YWcoJzxzdXA+PGEgaHJlZj0iIycrbysiZm4tIittKyciIGlkPSInK28rImZucmVmLSIrbSsodj4xPyItIit2OiIiKSsnIiBkYXRhLWZvb3Rub3RlLXJlZj0iIiBhcmlhLWRlc2NyaWJlZGJ5PSJmb290bm90ZS1sYWJlbCI+JytTdHJpbmcocCkrIjwvYT48L3N1cD4iKX0sbnVsbCgpe2xldCBsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKXx8W10sYz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIpfHx7fSxkPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIpfHx7fSxmPS0xO2ZvcihsLmxlbmd0aD4wJiYodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygnPHNlY3Rpb24gZGF0YS1mb290bm90ZXM9IiIgY2xhc3M9ImZvb3Rub3RlcyI+PCcrYSsnIGlkPSJmb290bm90ZS1sYWJlbCInKyhzPyIgIitzOiIiKSsiPiIpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHIpKSx0aGlzLnRhZygiPC8iK2ErIj4iKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8b2w+IikpOysrZjxsLmxlbmd0aDspe2xldCBwPWxbZl0saD1LMChwLnRvTG93ZXJDYXNlKCkpLG09MCx2PVtdO2Zvcig7KyttPD1jW3BdOyl2LnB1c2goJzxhIGhyZWY9IiMnK28rImZucmVmLSIraCsobT4xPyItIittOiIiKSsnIiBkYXRhLWZvb3Rub3RlLWJhY2tyZWY9IiIgYXJpYS1sYWJlbD0iJyt0aGlzLmVuY29kZSh0eXBlb2Ygbj09InN0cmluZyI/bjpuKGYsbSkpKyciIGNsYXNzPSJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiPlx1MjFBOScrKG0+MT8iPHN1cD4iK20rIjwvc3VwPiI6IiIpKyI8L2E+Iik7bGV0IGI9di5qb2luKCIgIiksZz0hMTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCc8bGkgaWQ9IicrbysiZm4tIitoKyciPicpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoZFtwXS5yZXBsYWNlKC88XC9wPig/OlxyP1xufFxyKT8kLyxmdW5jdGlvbih5KXtyZXR1cm4gZz0hMCwiICIrYit5fSkpLGd8fCh0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKGIpKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L2xpPiIpfWwubGVuZ3RoPjAmJih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L29sPiIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvc2VjdGlvbj4iKSl9fX19dmFyIGZ6YSxoemEsbmFyPXUoKCk9Pnt4cCgpO1owKCk7ZnphPXt9Lmhhc093blByb3BlcnR5LGh6YT17fTtpKHNhciwiZGVmYXVsdEJhY2tMYWJlbCIpO2koaURlLCJnZm1Gb290bm90ZUh0bWwiKX0pO3ZhciBvYXI9dSgoKT0+e2lhcigpO25hcigpfSk7ZnVuY3Rpb24gc0RlKCl7cmV0dXJue2VudGVyOntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjxkZWw+Iil9fSxleGl0OntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjwvZGVsPiIpfX19fXZhciBsYXI9dSgoKT0+e2koc0RlLCJnZm1TdHJpa2V0aHJvdWdoSHRtbCIpfSk7ZnVuY3Rpb24gbkRlKHQpe2xldCByPSh0fHx7fSkuc2luZ2xlVGlsZGUsYT17bmFtZToic3RyaWtldGhyb3VnaCIsdG9rZW5pemU6bixyZXNvbHZlQWxsOnN9O3JldHVybiByPT1udWxsJiYocj0hMCkse3RleHQ6ezEyNjphfSxpbnNpZGVTcGFuOntudWxsOlthXX0sYXR0ZW50aW9uTWFya2Vyczp7bnVsbDpbMTI2XX19O2Z1bmN0aW9uIHMobyxsKXtsZXQgYz0tMTtmb3IoOysrYzxvLmxlbmd0aDspaWYob1tjXVswXT09PSJlbnRlciImJm9bY11bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiZvW2NdWzFdLl9jbG9zZSl7bGV0IGQ9Yztmb3IoO2QtLTspaWYob1tkXVswXT09PSJleGl0IiYmb1tkXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm9bZF1bMV0uX29wZW4mJm9bY11bMV0uZW5kLm9mZnNldC1vW2NdWzFdLnN0YXJ0Lm9mZnNldD09PW9bZF1bMV0uZW5kLm9mZnNldC1vW2RdWzFdLnN0YXJ0Lm9mZnNldCl7b1tjXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiLG9bZF1bMV0udHlwZT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlIjtsZXQgZj17dHlwZToic3RyaWtldGhyb3VnaCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxvW2RdWzFdLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW2NdWzFdLmVuZCl9LHA9e3R5cGU6InN0cmlrZXRocm91Z2hUZXh0IixzdGFydDpPYmplY3QuYXNzaWduKHt9LG9bZF1bMV0uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW2NdWzFdLnN0YXJ0KX0saD1bWyJlbnRlciIsZixsXSxbImVudGVyIixvW2RdWzFdLGxdLFsiZXhpdCIsb1tkXVsxXSxsXSxbImVudGVyIixwLGxdXSxtPWwucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsO20mJnJzKGgsaC5sZW5ndGgsMCx5cChtLG8uc2xpY2UoZCsxLGMpLGwpKSxycyhoLGgubGVuZ3RoLDAsW1siZXhpdCIscCxsXSxbImVudGVyIixvW2NdWzFdLGxdLFsiZXhpdCIsb1tjXVsxXSxsXSxbImV4aXQiLGYsbF1dKSxycyhvLGQtMSxjLWQrMyxoKSxjPWQraC5sZW5ndGgtMjticmVha319Zm9yKGM9LTE7KytjPG8ubGVuZ3RoOylvW2NdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmKG9bY11bMV0udHlwZT0iZGF0YSIpO3JldHVybiBvfWkocywicmVzb2x2ZUFsbFN0cmlrZXRocm91Z2giKTtmdW5jdGlvbiBuKG8sbCxjKXtsZXQgZD10aGlzLnByZXZpb3VzLGY9dGhpcy5ldmVudHMscD0wO3JldHVybiBoO2Z1bmN0aW9uIGgodil7cmV0dXJuIGQ9PT0xMjYmJmZbZi5sZW5ndGgtMV1bMV0udHlwZSE9PSJjaGFyYWN0ZXJFc2NhcGUiP2Modik6KG8uZW50ZXIoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLG0odikpfWZ1bmN0aW9uIG0odil7bGV0IGI9RDQoZCk7aWYodj09PTEyNilyZXR1cm4gcD4xP2Modik6KG8uY29uc3VtZSh2KSxwKyssbSk7aWYocDwyJiYhcilyZXR1cm4gYyh2KTtsZXQgZz1vLmV4aXQoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLHk9RDQodik7cmV0dXJuIGcuX29wZW49IXl8fHk9PT0yJiYhIWIsZy5fY2xvc2U9IWJ8fGI9PT0yJiYhIXksbCh2KX19aShuLCJ0b2tlbml6ZVN0cmlrZXRocm91Z2giKX12YXIgY2FyPXUoKCk9PntHMCgpO0tkZSgpO1J6KCk7aShuRGUsImdmbVN0cmlrZXRocm91Z2giKX0pO3ZhciBkYXI9dSgoKT0+e2xhcigpO2NhcigpfSk7ZnVuY3Rpb24gbERlKCl7cmV0dXJue2VudGVyOnt0YWJsZSh0KXtsZXQgZT10Ll9hbGlnbjt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGFibGU+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIixlKX0sdGFibGVCb2R5KCl7dGhpcy50YWcoIjx0Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIikscj1vRGVbdFtlXV07cj09PXZvaWQgMD90aGlzLmJ1ZmZlcigpOih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGQiK3IrIj4iKSl9LHRhYmxlSGVhZCgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0aGVhZD4iKX0sdGFibGVIZWFkZXIoKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKSxyPW9EZVt0W2VdXTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGgiK3IrIj4iKX0sdGFibGVSb3coKXt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIiwwKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dHI+Iil9fSxleGl0Ontjb2RlVGV4dERhdGEodCl7bGV0IGU9dGhpcy5zbGljZVNlcmlhbGl6ZSh0KTt0aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyxtemEpKSx0aGlzLnJhdyh0aGlzLmVuY29kZShlKSl9LHRhYmxlKCl7dGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIiksdGhpcy5zZXREYXRhKCJzbHVycEFsbExpbmVFbmRpbmdzIiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90YWJsZT4iKX0sdGFibGVCb2R5KCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7ZSBpbiB0Pyh0aGlzLnRhZygiPC90ZD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKzEpKTp0aGlzLnJlc3VtZSgpfSx0YWJsZUhlYWQoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RoZWFkPiIpfSx0YWJsZUhlYWRlcigpe2xldCB0PXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTt0aGlzLnRhZygiPC90aD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIix0KzEpfSx0YWJsZVJvdygpe2xldCB0PXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO2Zvcig7ZTx0Lmxlbmd0aDspdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRkIitvRGVbdFtlXV0rIj48L3RkPiIpLGUrKzt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RyPiIpfX19fWZ1bmN0aW9uIG16YSh0LGUpe3JldHVybiBlPT09InwiP2U6dH12YXIgb0RlLHVhcj11KCgpPT57b0RlPXtub25lOiIiLGxlZnQ6JyBhbGlnbj0ibGVmdCInLHJpZ2h0OicgYWxpZ249InJpZ2h0IicsY2VudGVyOicgYWxpZ249ImNlbnRlciInfTtpKGxEZSwiZ2ZtVGFibGVIdG1sIik7aShtemEsInJlcGxhY2UiKX0pO2Z1bmN0aW9uIGd6YSh0LGUscixhKXtsZXQgcz0wO2lmKCEocj09PTAmJmEubGVuZ3RoPT09MCkpe2Zvcig7czx0Lm1hcC5sZW5ndGg7KXtpZih0Lm1hcFtzXVswXT09PWUpe3QubWFwW3NdWzFdKz1yLHQubWFwW3NdWzJdLnB1c2goLi4uYSk7cmV0dXJufXMrPTF9dC5tYXAucHVzaChbZSxyLGFdKX19dmFyIHY0ZSxwYXI9dSgoKT0+e3Y0ZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFZGl0TWFwIil9Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1bXX1hZGQoZSxyLGEpe2d6YSh0aGlzLGUscixhKX1jb25zdW1lKGUpe2lmKHRoaXMubWFwLnNvcnQoZnVuY3Rpb24obixvKXtyZXR1cm4gblswXS1vWzBdfSksdGhpcy5tYXAubGVuZ3RoPT09MClyZXR1cm47bGV0IHI9dGhpcy5tYXAubGVuZ3RoLGE9W107Zm9yKDtyPjA7KXItPTEsYS5wdXNoKGUuc2xpY2UodGhpcy5tYXBbcl1bMF0rdGhpcy5tYXBbcl1bMV0pLHRoaXMubWFwW3JdWzJdKSxlLmxlbmd0aD10aGlzLm1hcFtyXVswXTthLnB1c2goZS5zbGljZSgpKSxlLmxlbmd0aD0wO2xldCBzPWEucG9wKCk7Zm9yKDtzOyl7Zm9yKGxldCBuIG9mIHMpZS5wdXNoKG4pO3M9YS5wb3AoKX10aGlzLm1hcC5sZW5ndGg9MH19O2koZ3phLCJhZGRJbXBsZW1lbnRhdGlvbiIpfSk7ZnVuY3Rpb24gZmFyKHQsZSl7bGV0IHI9ITEsYT1bXTtmb3IoO2U8dC5sZW5ndGg7KXtsZXQgcz10W2VdO2lmKHIpe2lmKHNbMF09PT0iZW50ZXIiKXNbMV0udHlwZT09PSJ0YWJsZUNvbnRlbnQiJiZhLnB1c2godFtlKzFdWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIiPyJsZWZ0Ijoibm9uZSIpO2Vsc2UgaWYoc1sxXS50eXBlPT09InRhYmxlQ29udGVudCIpe2lmKHRbZS0xXVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyIil7bGV0IG49YS5sZW5ndGgtMTthW25dPWFbbl09PT0ibGVmdCI/ImNlbnRlciI6InJpZ2h0In19ZWxzZSBpZihzWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciKWJyZWFrfWVsc2Ugc1swXT09PSJlbnRlciImJnNbMV0udHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyImJihyPSEwKTtlKz0xfXJldHVybiBhfXZhciBoYXI9dSgoKT0+e2koZmFyLCJnZm1UYWJsZUFsaWduIil9KTtmdW5jdGlvbiBjRGUoKXtyZXR1cm57Zmxvdzp7bnVsbDp7bmFtZToidGFibGUiLHRva2VuaXplOmJ6YSxyZXNvbHZlQWxsOnh6YX19fX1mdW5jdGlvbiBiemEodCxlLHIpe2xldCBhPXRoaXMscz0wLG49MCxvO3JldHVybiBsO2Z1bmN0aW9uIGwoQil7bGV0IEM9YS5ldmVudHMubGVuZ3RoLTE7Zm9yKDtDPi0xOyl7bGV0ICQ9YS5ldmVudHNbQ11bMV0udHlwZTtpZigkPT09ImxpbmVFbmRpbmcifHwkPT09ImxpbmVQcmVmaXgiKUMtLTtlbHNlIGJyZWFrfWxldCB6PUM+LTE/YS5ldmVudHNbQ11bMV0udHlwZTpudWxsLEE9ej09PSJ0YWJsZUhlYWQifHx6PT09InRhYmxlUm93Ij9TOmM7cmV0dXJuIEE9PT1TJiZhLnBhcnNlci5sYXp5W2Eubm93KCkubGluZV0/cihCKTpBKEIpfWZ1bmN0aW9uIGMoQil7cmV0dXJuIHQuZW50ZXIoInRhYmxlSGVhZCIpLHQuZW50ZXIoInRhYmxlUm93IiksZChCKX1mdW5jdGlvbiBkKEIpe3JldHVybiBCPT09MTI0fHwobz0hMCxuKz0xKSxmKEIpfWZ1bmN0aW9uIGYoQil7cmV0dXJuIEI9PT1udWxsP3IoQik6dXQoQik/bj4xPyhuPTAsYS5pbnRlcnJ1cHQ9ITAsdC5leGl0KCJ0YWJsZVJvdyIpLHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoQiksdC5leGl0KCJsaW5lRW5kaW5nIiksbSk6cihCKTpSdChCKT9XdCh0LGYsIndoaXRlc3BhY2UiKShCKToobis9MSxvJiYobz0hMSxzKz0xKSxCPT09MTI0Pyh0LmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksdC5jb25zdW1lKEIpLHQuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLG89ITAsZik6KHQuZW50ZXIoImRhdGEiKSxwKEIpKSl9ZnVuY3Rpb24gcChCKXtyZXR1cm4gQj09PW51bGx8fEI9PT0xMjR8fEJyKEIpPyh0LmV4aXQoImRhdGEiKSxmKEIpKToodC5jb25zdW1lKEIpLEI9PT05Mj9oOnApfWZ1bmN0aW9uIGgoQil7cmV0dXJuIEI9PT05Mnx8Qj09PTEyND8odC5jb25zdW1lKEIpLHApOnAoQil9ZnVuY3Rpb24gbShCKXtyZXR1cm4gYS5pbnRlcnJ1cHQ9ITEsYS5wYXJzZXIubGF6eVthLm5vdygpLmxpbmVdP3IoQik6KHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyUm93Iiksbz0hMSxSdChCKT9XdCh0LHYsImxpbmVQcmVmaXgiLGEucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoQik6dihCKSl9ZnVuY3Rpb24gdihCKXtyZXR1cm4gQj09PTQ1fHxCPT09NTg/ZyhCKTpCPT09MTI0PyhvPSEwLHQuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSx0LmNvbnN1bWUoQiksdC5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksYik6XyhCKX1mdW5jdGlvbiBiKEIpe3JldHVybiBSdChCKT9XdCh0LGcsIndoaXRlc3BhY2UiKShCKTpnKEIpfWZ1bmN0aW9uIGcoQil7cmV0dXJuIEI9PT01OD8obis9MSxvPSEwLHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksdC5jb25zdW1lKEIpLHQuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx5KTpCPT09NDU/KG4rPTEseShCKSk6Qj09PW51bGx8fHV0KEIpP04oQik6XyhCKX1mdW5jdGlvbiB5KEIpe3JldHVybiBCPT09NDU/KHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksayhCKSk6XyhCKX1mdW5jdGlvbiBrKEIpe3JldHVybiBCPT09NDU/KHQuY29uc3VtZShCKSxrKTpCPT09NTg/KG89ITAsdC5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksdC5jb25zdW1lKEIpLHQuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSxNKToodC5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLE0oQikpfWZ1bmN0aW9uIE0oQil7cmV0dXJuIFJ0KEIpP1d0KHQsTiwid2hpdGVzcGFjZSIpKEIpOk4oQil9ZnVuY3Rpb24gTihCKXtyZXR1cm4gQj09PTEyND92KEIpOkI9PT1udWxsfHx1dChCKT8hb3x8cyE9PW4/XyhCKToodC5leGl0KCJ0YWJsZURlbGltaXRlclJvdyIpLHQuZXhpdCgidGFibGVIZWFkIiksZShCKSk6XyhCKX1mdW5jdGlvbiBfKEIpe3JldHVybiByKEIpfWZ1bmN0aW9uIFMoQil7cmV0dXJuIHQuZW50ZXIoInRhYmxlUm93IiksTyhCKX1mdW5jdGlvbiBPKEIpe3JldHVybiBCPT09MTI0Pyh0LmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksdC5jb25zdW1lKEIpLHQuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLE8pOkI9PT1udWxsfHx1dChCKT8odC5leGl0KCJ0YWJsZVJvdyIpLGUoQikpOlJ0KEIpP1d0KHQsTywid2hpdGVzcGFjZSIpKEIpOih0LmVudGVyKCJkYXRhIiksTChCKSl9ZnVuY3Rpb24gTChCKXtyZXR1cm4gQj09PW51bGx8fEI9PT0xMjR8fEJyKEIpPyh0LmV4aXQoImRhdGEiKSxPKEIpKToodC5jb25zdW1lKEIpLEI9PT05Mj9FOkwpfWZ1bmN0aW9uIEUoQil7cmV0dXJuIEI9PT05Mnx8Qj09PTEyND8odC5jb25zdW1lKEIpLEwpOkwoQil9fWZ1bmN0aW9uIHh6YSh0LGUpe2xldCByPS0xLGE9ITAscz0wLG49WzAsMCwwLDBdLG89WzAsMCwwLDBdLGw9ITEsYz0wLGQsZixwLGg9bmV3IHY0ZTtmb3IoOysrcjx0Lmxlbmd0aDspe2xldCBtPXRbcl0sdj1tWzFdO21bMF09PT0iZW50ZXIiP3YudHlwZT09PSJ0YWJsZUhlYWQiPyhsPSExLGMhPT0wJiYobWFyKGgsZSxjLGQsZiksZj12b2lkIDAsYz0wKSxkPXt0eXBlOiJ0YWJsZSIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx2LnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx2LmVuZCl9LGguYWRkKHIsMCxbWyJlbnRlciIsZCxlXV0pKTp2LnR5cGU9PT0idGFibGVSb3cifHx2LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPyhhPSEwLHA9dm9pZCAwLG49WzAsMCwwLDBdLG89WzAscisxLDAsMF0sbCYmKGw9ITEsZj17dHlwZToidGFibGVCb2R5IixzdGFydDpPYmplY3QuYXNzaWduKHt9LHYuc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHYuZW5kKX0saC5hZGQociwwLFtbImVudGVyIixmLGVdXSkpLHM9di50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8yOmY/MzoxKTpzJiYodi50eXBlPT09ImRhdGEifHx2LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx2LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKT8oYT0hMSxvWzJdPT09MCYmKG5bMV0hPT0wJiYob1swXT1vWzFdLHA9eTRlKGgsZSxuLHMsdm9pZCAwLHApLG49WzAsMCwwLDBdKSxvWzJdPXIpKTp2LnR5cGU9PT0idGFibGVDZWxsRGl2aWRlciImJihhP2E9ITE6KG5bMV0hPT0wJiYob1swXT1vWzFdLHA9eTRlKGgsZSxuLHMsdm9pZCAwLHApKSxuPW8sbz1bblsxXSxyLDAsMF0pKTp2LnR5cGU9PT0idGFibGVIZWFkIj8obD0hMCxjPXIpOnYudHlwZT09PSJ0YWJsZVJvdyJ8fHYudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KGM9cixuWzFdIT09MD8ob1swXT1vWzFdLHA9eTRlKGgsZSxuLHMscixwKSk6b1sxXSE9PTAmJihwPXk0ZShoLGUsbyxzLHIscCkpLHM9MCk6cyYmKHYudHlwZT09PSJkYXRhInx8di50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyInx8di50eXBlPT09InRhYmxlRGVsaW1pdGVyRmlsbGVyIikmJihvWzNdPXIpfWZvcihjIT09MCYmbWFyKGgsZSxjLGQsZiksaC5jb25zdW1lKGUuZXZlbnRzKSxyPS0xOysrcjxlLmV2ZW50cy5sZW5ndGg7KXtsZXQgbT1lLmV2ZW50c1tyXTttWzBdPT09ImVudGVyIiYmbVsxXS50eXBlPT09InRhYmxlIiYmKG1bMV0uX2FsaWduPWZhcihlLmV2ZW50cyxyKSl9cmV0dXJuIHR9ZnVuY3Rpb24geTRlKHQsZSxyLGEscyxuKXtsZXQgbz1hPT09MT8idGFibGVIZWFkZXIiOmE9PT0yPyJ0YWJsZURlbGltaXRlciI6InRhYmxlRGF0YSIsbD0idGFibGVDb250ZW50IjtyWzBdIT09MCYmKG4uZW5kPU9iamVjdC5hc3NpZ24oe30scnkoZS5ldmVudHMsclswXSkpLHQuYWRkKHJbMF0sMCxbWyJleGl0IixuLGVdXSkpO2xldCBjPXJ5KGUuZXZlbnRzLHJbMV0pO2lmKG49e3R5cGU6byxzdGFydDpPYmplY3QuYXNzaWduKHt9LGMpLGVuZDpPYmplY3QuYXNzaWduKHt9LGMpfSx0LmFkZChyWzFdLDAsW1siZW50ZXIiLG4sZV1dKSxyWzJdIT09MCl7bGV0IGQ9cnkoZS5ldmVudHMsclsyXSksZj1yeShlLmV2ZW50cyxyWzNdKSxwPXt0eXBlOmwsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxkKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxmKX07aWYodC5hZGQoclsyXSwwLFtbImVudGVyIixwLGVdXSksYSE9PTIpe2xldCBoPWUuZXZlbnRzW3JbMl1dLG09ZS5ldmVudHNbclszXV07aWYoaFsxXS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxtWzFdLmVuZCksaFsxXS50eXBlPSJjaHVua1RleHQiLGhbMV0uY29udGVudFR5cGU9InRleHQiLHJbM10+clsyXSsxKXtsZXQgdj1yWzJdKzEsYj1yWzNdLXJbMl0tMTt0LmFkZCh2LGIsW10pfX10LmFkZChyWzNdKzEsMCxbWyJleGl0IixwLGVdXSl9cmV0dXJuIHMhPT12b2lkIDAmJihuLmVuZD1PYmplY3QuYXNzaWduKHt9LHJ5KGUuZXZlbnRzLHMpKSx0LmFkZChzLDAsW1siZXhpdCIsbixlXV0pLG49dm9pZCAwKSxufWZ1bmN0aW9uIG1hcih0LGUscixhLHMpe2xldCBuPVtdLG89cnkoZS5ldmVudHMscik7cyYmKHMuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIscyxlXSkpLGEuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIsYSxlXSksdC5hZGQocisxLDAsbil9ZnVuY3Rpb24gcnkodCxlKXtsZXQgcj10W2VdLGE9clswXT09PSJlbnRlciI/InN0YXJ0IjoiZW5kIjtyZXR1cm4gclsxXVthXX12YXIgZ2FyPXUoKCk9PnthcygpO1lyKCk7cGFyKCk7aGFyKCk7aShjRGUsImdmbVRhYmxlIik7aShiemEsInRva2VuaXplVGFibGUiKTtpKHh6YSwicmVzb2x2ZVRhYmxlIik7aSh5NGUsImZsdXNoQ2VsbCIpO2kobWFyLCJmbHVzaFRhYmxlRW5kIik7aShyeSwiZ2V0UG9pbnQiKX0pO3ZhciBiYXI9dSgoKT0+e3VhcigpO2dhcigpfSk7ZnVuY3Rpb24gZERlKCl7cmV0dXJue2V4aXQ6e2h0bWxGbG93RGF0YSh0KXt5YXIuY2FsbCh0aGlzLHQseGFyKX0saHRtbFRleHREYXRhKHQpe3lhci5jYWxsKHRoaXMsdCx2emEpfX19fWZ1bmN0aW9uIHlhcih0LGUpe2xldCByPXRoaXMuc2xpY2VTZXJpYWxpemUodCk7dGhpcy5vcHRpb25zLmFsbG93RGFuZ2Vyb3VzSHRtbCYmKHI9ci5yZXBsYWNlKGUsIiZsdDskMSQyIikpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHIpKX12YXIgeGFyLHZ6YSx3YXI9dSgoKT0+e3hhcj0vPChcLz8pKGlmcmFtZXxub2VtYmVkfG5vZnJhbWVzfHBsYWludGV4dHxzY3JpcHR8c3R5bGV8dGl0bGV8dGV4dGFyZWF8eG1wKSg/PVtcdFxuXGZcciAvPl0pL2dpLHZ6YT1uZXcgUmVnRXhwKCJeIit4YXIuc291cmNlLCJpIik7aShkRGUsImdmbVRhZ2ZpbHRlckh0bWwiKTtpKHlhciwiZXhpdEh0bWxEYXRhIil9KTt2YXIga2FyPXUoKCk9Pnt3YXIoKX0pO2Z1bmN0aW9uIHVEZSgpe3JldHVybntlbnRlcjp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPSIiICcpfX0sZXhpdDp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCIvPiIpfSx0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkKCl7dGhpcy50YWcoJ2NoZWNrZWQ9IiIgJyl9fX19dmFyIFNhcj11KCgpPT57aSh1RGUsImdmbVRhc2tMaXN0SXRlbUh0bWwiKX0pO2Z1bmN0aW9uIHBEZSgpe3JldHVybnt0ZXh0Ons5MTp5emF9fX1mdW5jdGlvbiB3emEodCxlLHIpe2xldCBhPXRoaXM7cmV0dXJuIHM7ZnVuY3Rpb24gcyhjKXtyZXR1cm4gYS5wcmV2aW91cyE9PW51bGx8fCFhLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0/cihjKToodC5lbnRlcigidGFza0xpc3RDaGVjayIpLHQuZW50ZXIoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSx0LmNvbnN1bWUoYyksdC5leGl0KCJ0YXNrTGlzdENoZWNrTWFya2VyIiksbil9ZnVuY3Rpb24gbihjKXtyZXR1cm4gQnIoYyk/KHQuZW50ZXIoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLHQuY29uc3VtZShjKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLG8pOmM9PT04OHx8Yz09PTEyMD8odC5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLHQuY29uc3VtZShjKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiKSxvKTpyKGMpfWZ1bmN0aW9uIG8oYyl7cmV0dXJuIGM9PT05Mz8odC5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLHQuY29uc3VtZShjKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2siKSxsKTpyKGMpfWZ1bmN0aW9uIGwoYyl7cmV0dXJuIHV0KGMpP2UoYyk6UnQoYyk/dC5jaGVjayh7dG9rZW5pemU6a3phfSxlLHIpKGMpOnIoYyl9fWZ1bmN0aW9uIGt6YSh0LGUscil7cmV0dXJuIFd0KHQsYSwid2hpdGVzcGFjZSIpO2Z1bmN0aW9uIGEocyl7cmV0dXJuIHM9PT1udWxsP3Iocyk6ZShzKX19dmFyIHl6YSxNYXI9dSgoKT0+e2FzKCk7WXIoKTt5emE9e25hbWU6InRhc2tsaXN0Q2hlY2siLHRva2VuaXplOnd6YX07aShwRGUsImdmbVRhc2tMaXN0SXRlbSIpO2kod3phLCJ0b2tlbml6ZVRhc2tsaXN0Q2hlY2siKTtpKGt6YSwic3BhY2VUaGVuTm9uU3BhY2UiKX0pO3ZhciBDYXI9dSgoKT0+e1NhcigpO01hcigpfSk7ZnVuY3Rpb24gemFyKHQpe3JldHVybiBhNGUoW1BMZSgpLGFEZSgpLG5EZSh0KSxjRGUoKSxwRGUoKV0pfWZ1bmN0aW9uIE9wbih0KXtyZXR1cm4gaTRlKFtSTGUoKSxpRGUodCksc0RlKCksbERlKCksZERlKCksdURlKCldKX12YXIgX2FyPXUoKCk9PntzNGUoKTtJcnIoKTtvYXIoKTtkYXIoKTtiYXIoKTtrYXIoKTtDYXIoKTtpKHphciwiZ2ZtIik7aShPcG4sImdmbUh0bWwiKX0pO2Z1bmN0aW9uIGF5KHQpe2xldCBlPXRoaXMscj10fHxTemEsYT1lLmRhdGEoKSxzPWEubWljcm9tYXJrRXh0ZW5zaW9uc3x8KGEubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSksbj1hLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChhLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLG89YS50b01hcmtkb3duRXh0ZW5zaW9uc3x8KGEudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO3MucHVzaCh6YXIocikpLG4ucHVzaChETGUoKSksby5wdXNoKCRMZShyKSl9dmFyIFN6YSxUYXI9dSgoKT0+e1NycigpO19hcigpO1N6YT17fTtpKGF5LCJyZW1hcmtHZm0iKX0pO3ZhciBMYXI9dSgoKT0+e1RhcigpfSk7ZnVuY3Rpb24gZkRlKHQpe2xldCBlPXR8fHt9LHI9ITAsYT17fSxzPVtbXV0sbj1bXSxvPVtdLGM9aTRlKFt7ZW50ZXI6e2Jsb2NrUXVvdGU6Rixjb2RlRmVuY2VkOmRlLGNvZGVGZW5jZWRGZW5jZUluZm86Zyxjb2RlRmVuY2VkRmVuY2VNZXRhOmcsY29kZUluZGVudGVkOmZlLGNvZGVUZXh0OmdlLGNvbnRlbnQ6emUsZGVmaW5pdGlvbjp4ZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6VixkZWZpbml0aW9uTGFiZWxTdHJpbmc6ZyxkZWZpbml0aW9uVGl0bGVTdHJpbmc6ZyxlbXBoYXNpczp3ZSxodG1sRmxvdzpudCxodG1sVGV4dDpMZSxpbWFnZTpXLGxhYmVsOmcsbGluazpwZSxsaXN0SXRlbU1hcmtlcjpDLGxpc3RJdGVtVmFsdWU6QixsaXN0T3JkZXJlZDpMLGxpc3RVbm9yZGVyZWQ6RSxwYXJhZ3JhcGg6RyxyZWZlcmVuY2U6ZyxyZXNvdXJjZTpVLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6aixyZXNvdXJjZVRpdGxlU3RyaW5nOmcsc2V0ZXh0SGVhZGluZzpHZSxzdHJvbmc6T2V9LGV4aXQ6e2F0eEhlYWRpbmc6RGUsYXR4SGVhZGluZ1NlcXVlbmNlOkhlLGF1dG9saW5rRW1haWw6WWksYXV0b2xpbmtQcm90b2NvbDpQYSxibG9ja1F1b3RlOlksY2hhcmFjdGVyRXNjYXBlVmFsdWU6c2UsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6WXQsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzpZdCxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTp6YSxjb2RlRmVuY2VkOlQsY29kZUZlbmNlZEZlbmNlOlEsY29kZUZlbmNlZEZlbmNlSW5mbzpELGNvZGVGZW5jZWRGZW5jZU1ldGE6Tyxjb2RlRmxvd1ZhbHVlOlRlLGNvZGVJbmRlbnRlZDpULGNvZGVUZXh0OmJlLGNvZGVUZXh0RGF0YTpzZSxkYXRhOnNlLGRlZmluaXRpb246ZWUsZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOmxlLGRlZmluaXRpb25MYWJlbFN0cmluZzpLLGRlZmluaXRpb25UaXRsZVN0cmluZzpuZSxlbXBoYXNpczpJZSxoYXJkQnJlYWtFc2NhcGU6cWUsaGFyZEJyZWFrVHJhaWxpbmc6cWUsaHRtbEZsb3c6dnQsaHRtbEZsb3dEYXRhOnNlLGh0bWxUZXh0OnZ0LGh0bWxUZXh0RGF0YTpzZSxpbWFnZTpKLGxhYmVsOnEsbGFiZWxUZXh0Om1lLGxpbmVFbmRpbmc6Y2UsbGluazpKLGxpc3RPcmRlcmVkOnosbGlzdFVub3JkZXJlZDpBLHBhcmFncmFwaDpaLHJlZmVyZW5jZTpPLHJlZmVyZW5jZVN0cmluZzpILHJlc291cmNlOk8scmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzphZSxyZXNvdXJjZVRpdGxlU3RyaW5nOlgsc2V0ZXh0SGVhZGluZzpvZSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOl9lLHNldGV4dEhlYWRpbmdUZXh0Om90LHN0cm9uZzp5dCx0aGVtYXRpY0JyZWFrOnd0fX0sLi4uZS5odG1sRXh0ZW5zaW9uc3x8W11dKSxkPXtkZWZpbml0aW9uczphLHRpZ2h0U3RhY2s6b30sZj17YnVmZmVyOmcsZW5jb2RlOlMsZ2V0RGF0YTpiLGxpbmVFbmRpbmdJZk5lZWRlZDpfLG9wdGlvbnM6ZSxyYXc6TSxyZXN1bWU6eSxzZXREYXRhOnYsdGFnOmt9LHA9ZS5kZWZhdWx0TGluZUVuZGluZztyZXR1cm4gaDtmdW5jdGlvbiBoKEVlKXtsZXQgamU9LTEsc3I9MCxyYT1bXSxwYT1bXSx5YT1bXTtmb3IoOysramU8RWUubGVuZ3RoOykhcCYmKEVlW2plXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxFZVtqZV1bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKSYmKHA9RWVbamVdWzJdLnNsaWNlU2VyaWFsaXplKEVlW2plXVsxXSkpLChFZVtqZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fEVlW2plXVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQiKSYmKEVlW2plXVswXT09PSJlbnRlciI/cmEucHVzaChqZSk6bShFZS5zbGljZShyYS5wb3AoKSxqZSkpKSxFZVtqZV1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKEVlW2plXVswXT09PSJlbnRlciI/KHlhPUNzKHlhLEVlLnNsaWNlKHNyLGplKSksc3I9amUpOihwYT1DcyhwYSxFZS5zbGljZShzcixqZSsxKSksc3I9amUrMSkpO3BhPUNzKHBhLHlhKSxwYT1DcyhwYSxFZS5zbGljZShzcikpLGplPS0xO2xldCBmYT1wYTtmb3IoYy5lbnRlci5udWxsJiZjLmVudGVyLm51bGwuY2FsbChmKTsrK2plPEVlLmxlbmd0aDspe2xldCBDbj1jW2ZhW2plXVswXV0sem49ZmFbamVdWzFdLnR5cGUsQWU9Q25bem5dO0Rhci5jYWxsKENuLHpuKSYmQWUmJkFlLmNhbGwoe3NsaWNlU2VyaWFsaXplOmZhW2plXVsyXS5zbGljZVNlcmlhbGl6ZSwuLi5mfSxmYVtqZV1bMV0pfXJldHVybiBjLmV4aXQubnVsbCYmYy5leGl0Lm51bGwuY2FsbChmKSxzWzBdLmpvaW4oIiIpfWZ1bmN0aW9uIG0oRWUpe2xldCBqZT1FZS5sZW5ndGgsc3I9MCxyYT0wLHBhPSExLHlhO2Zvcig7KytzcjxqZTspe2xldCBmYT1FZVtzcl07aWYoZmFbMV0uX2NvbnRhaW5lcil5YT12b2lkIDAsZmFbMF09PT0iZW50ZXIiP3JhKys6cmEtLTtlbHNlIHN3aXRjaChmYVsxXS50eXBlKXtjYXNlImxpc3RJdGVtUHJlZml4Ijp7ZmFbMF09PT0iZXhpdCImJih5YT0hMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpicmVhaztjYXNlImxpbmVFbmRpbmdCbGFuayI6e2ZhWzBdPT09ImVudGVyIiYmIXJhJiYoeWE/eWE9dm9pZCAwOnBhPSEwKTticmVha31kZWZhdWx0OnlhPXZvaWQgMH19RWVbMF1bMV0uX2xvb3NlPXBhfWZ1bmN0aW9uIHYoRWUsamUpe2RbRWVdPWplfWZ1bmN0aW9uIGIoRWUpe3JldHVybiBkW0VlXX1mdW5jdGlvbiBnKCl7cy5wdXNoKFtdKX1mdW5jdGlvbiB5KCl7cmV0dXJuIHMucG9wKCkuam9pbigiIil9ZnVuY3Rpb24gayhFZSl7ciYmKHYoImxhc3RXYXNUYWciLCEwKSxzW3MubGVuZ3RoLTFdLnB1c2goRWUpKX1mdW5jdGlvbiBNKEVlKXt2KCJsYXN0V2FzVGFnIiksc1tzLmxlbmd0aC0xXS5wdXNoKEVlKX1mdW5jdGlvbiBOKCl7TShwfHxgCmApfWZ1bmN0aW9uIF8oKXtsZXQgRWU9c1tzLmxlbmd0aC0xXSxqZT1FZVtFZS5sZW5ndGgtMV0sc3I9amU/amUuY2hhckNvZGVBdChqZS5sZW5ndGgtMSk6bnVsbDtzcj09PTEwfHxzcj09PTEzfHxzcj09PW51bGx8fE4oKX1mdW5jdGlvbiBTKEVlKXtyZXR1cm4gYigiaWdub3JlRW5jb2RlIik/RWU6bjRlKEVlKX1mdW5jdGlvbiBPKCl7eSgpfWZ1bmN0aW9uIEwoRWUpe28ucHVzaCghRWUuX2xvb3NlKSxfKCksaygiPG9sIiksdigiZXhwZWN0Rmlyc3RJdGVtIiwhMCl9ZnVuY3Rpb24gRShFZSl7by5wdXNoKCFFZS5fbG9vc2UpLF8oKSxrKCI8dWwiKSx2KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX1mdW5jdGlvbiBCKEVlKXtpZihiKCJleHBlY3RGaXJzdEl0ZW0iKSl7bGV0IGplPU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKEVlKSwxMCk7amUhPT0xJiZrKCcgc3RhcnQ9IicrUyhTdHJpbmcoamUpKSsnIicpfX1mdW5jdGlvbiBDKCl7YigiZXhwZWN0Rmlyc3RJdGVtIik/aygiPiIpOiQoKSxfKCksaygiPGxpPiIpLHYoImV4cGVjdEZpcnN0SXRlbSIpLHYoImxhc3RXYXNUYWciKX1mdW5jdGlvbiB6KCl7JCgpLG8ucG9wKCksTigpLGsoIjwvb2w+Iil9ZnVuY3Rpb24gQSgpeyQoKSxvLnBvcCgpLE4oKSxrKCI8L3VsPiIpfWZ1bmN0aW9uICQoKXtiKCJsYXN0V2FzVGFnIikmJiFiKCJzbHVycEFsbExpbmVFbmRpbmdzIikmJl8oKSxrKCI8L2xpPiIpLHYoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBGKCl7by5wdXNoKCExKSxfKCksaygiPGJsb2NrcXVvdGU+Iil9ZnVuY3Rpb24gWSgpe28ucG9wKCksXygpLGsoIjwvYmxvY2txdW90ZT4iKSx2KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gRygpe29bby5sZW5ndGgtMV18fChfKCksaygiPHA+IikpLHYoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBaKCl7b1tvLmxlbmd0aC0xXT92KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCk6aygiPC9wPiIpfWZ1bmN0aW9uIGRlKCl7XygpLGsoIjxwcmU+PGNvZGUiKSx2KCJmZW5jZXNDb3VudCIsMCl9ZnVuY3Rpb24gRCgpe2xldCBFZT15KCk7aygnIGNsYXNzPSJsYW5ndWFnZS0nK0VlKyciJyl9ZnVuY3Rpb24gUSgpe2xldCBFZT1iKCJmZW5jZXNDb3VudCIpfHwwO0VlfHwoaygiPiIpLHYoInNsdXJwT25lTGluZUVuZGluZyIsITApKSx2KCJmZW5jZXNDb3VudCIsRWUrMSl9ZnVuY3Rpb24gZmUoKXtfKCksaygiPHByZT48Y29kZT4iKX1mdW5jdGlvbiBUKCl7bGV0IEVlPWIoImZlbmNlc0NvdW50Iik7RWUhPT12b2lkIDAmJkVlPDImJmQudGlnaHRTdGFjay5sZW5ndGg+MCYmIWIoImxhc3RXYXNUYWciKSYmTigpLGIoImZsb3dDb2RlU2VlbkRhdGEiKSYmXygpLGsoIjwvY29kZT48L3ByZT4iKSxFZSE9PXZvaWQgMCYmRWU8MiYmXygpLHYoImZsb3dDb2RlU2VlbkRhdGEiKSx2KCJmZW5jZXNDb3VudCIpLHYoInNsdXJwT25lTGluZUVuZGluZyIpfWZ1bmN0aW9uIFcoKXtuLnB1c2goe2ltYWdlOiEwfSkscj12b2lkIDB9ZnVuY3Rpb24gcGUoKXtuLnB1c2goe30pfWZ1bmN0aW9uIG1lKEVlKXtuW24ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShFZSl9ZnVuY3Rpb24gcSgpe25bbi5sZW5ndGgtMV0ubGFiZWw9eSgpfWZ1bmN0aW9uIEgoRWUpe25bbi5sZW5ndGgtMV0ucmVmZXJlbmNlSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShFZSl9ZnVuY3Rpb24gVSgpe2coKSxuW24ubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPSIifWZ1bmN0aW9uIGooKXtnKCksdigiaWdub3JlRW5jb2RlIiwhMCl9ZnVuY3Rpb24gYWUoKXtuW24ubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPXkoKSx2KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBYKCl7bltuLmxlbmd0aC0xXS50aXRsZT15KCl9ZnVuY3Rpb24gSigpe2xldCBFZT1uLmxlbmd0aC0xLGplPW5bRWVdLHNyPWplLnJlZmVyZW5jZUlkfHxqZS5sYWJlbElkLHJhPWplLmRlc3RpbmF0aW9uPT09dm9pZCAwP2FbSGkoc3IpXTpqZTtmb3Iocj0hMDtFZS0tOylpZihuW0VlXS5pbWFnZSl7cj12b2lkIDA7YnJlYWt9amUuaW1hZ2U/KGsoJzxpbWcgc3JjPSInK0swKHJhLmRlc3RpbmF0aW9uLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6TXphKSsnIiBhbHQ9IicpLE0oamUubGFiZWwpLGsoJyInKSk6aygnPGEgaHJlZj0iJytLMChyYS5kZXN0aW5hdGlvbixlLmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOiRhcikrJyInKSxrKHJhLnRpdGxlPycgdGl0bGU9IicrcmEudGl0bGUrJyInOiIiKSxqZS5pbWFnZT9rKCIgLz4iKTooaygiPiIpLE0oamUubGFiZWwpLGsoIjwvYT4iKSksbi5wb3AoKX1mdW5jdGlvbiB4ZSgpe2coKSxuLnB1c2goe30pfWZ1bmN0aW9uIEsoRWUpe3koKSxuW24ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShFZSl9ZnVuY3Rpb24gVigpe2coKSx2KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBsZSgpe25bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249eSgpLHYoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIG5lKCl7bltuLmxlbmd0aC0xXS50aXRsZT15KCl9ZnVuY3Rpb24gZWUoKXtsZXQgRWU9bltuLmxlbmd0aC0xXSxqZT1IaShFZS5sYWJlbElkKTt5KCksRGFyLmNhbGwoYSxqZSl8fChhW2plXT1uW24ubGVuZ3RoLTFdKSxuLnBvcCgpfWZ1bmN0aW9uIHplKCl7digic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIEhlKEVlKXtiKCJoZWFkaW5nUmFuayIpfHwodigiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoRWUpLmxlbmd0aCksXygpLGsoIjxoIitiKCJoZWFkaW5nUmFuayIpKyI+IikpfWZ1bmN0aW9uIEdlKCl7ZygpLHYoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBvdCgpe3YoInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX1mdW5jdGlvbiBEZSgpe2soIjwvaCIrYigiaGVhZGluZ1JhbmsiKSsiPiIpLHYoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gX2UoRWUpe3YoImhlYWRpbmdSYW5rIix0aGlzLnNsaWNlU2VyaWFsaXplKEVlKS5jaGFyQ29kZUF0KDApPT09NjE/MToyKX1mdW5jdGlvbiBvZSgpe2xldCBFZT15KCk7XygpLGsoIjxoIitiKCJoZWFkaW5nUmFuayIpKyI+IiksTShFZSksaygiPC9oIitiKCJoZWFkaW5nUmFuayIpKyI+Iiksdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpLHYoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gc2UoRWUpe00oUyh0aGlzLnNsaWNlU2VyaWFsaXplKEVlKSkpfWZ1bmN0aW9uIGNlKEVlKXtpZighYigic2x1cnBBbGxMaW5lRW5kaW5ncyIpKXtpZihiKCJzbHVycE9uZUxpbmVFbmRpbmciKSl7digic2x1cnBPbmVMaW5lRW5kaW5nIik7cmV0dXJufWlmKGIoImluQ29kZVRleHQiKSl7TSgiICIpO3JldHVybn1NKFModGhpcy5zbGljZVNlcmlhbGl6ZShFZSkpKX19ZnVuY3Rpb24gVGUoRWUpe00oUyh0aGlzLnNsaWNlU2VyaWFsaXplKEVlKSkpLHYoImZsb3dDb2RlU2VlbkRhdGEiLCEwKX1mdW5jdGlvbiBxZSgpe2soIjxiciAvPiIpfWZ1bmN0aW9uIG50KCl7XygpLExlKCl9ZnVuY3Rpb24gdnQoKXt2KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBMZSgpe2UuYWxsb3dEYW5nZXJvdXNIdG1sJiZ2KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiB3ZSgpe2soIjxlbT4iKX1mdW5jdGlvbiBPZSgpe2soIjxzdHJvbmc+Iil9ZnVuY3Rpb24gZ2UoKXt2KCJpbkNvZGVUZXh0IiwhMCksaygiPGNvZGU+Iil9ZnVuY3Rpb24gYmUoKXt2KCJpbkNvZGVUZXh0IiksaygiPC9jb2RlPiIpfWZ1bmN0aW9uIEllKCl7aygiPC9lbT4iKX1mdW5jdGlvbiB5dCgpe2soIjwvc3Ryb25nPiIpfWZ1bmN0aW9uIHd0KCl7XygpLGsoIjxociAvPiIpfWZ1bmN0aW9uIFl0KEVlKXt2KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIixFZS50eXBlKX1mdW5jdGlvbiB6YShFZSl7bGV0IGplPXRoaXMuc2xpY2VTZXJpYWxpemUoRWUpLHNyPWIoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT90eShqZSxiKCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIik9PT0iY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyI/MTA6MTYpOnZwKGplKTtNKFMoc3IpKSx2KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIil9ZnVuY3Rpb24gUGEoRWUpe2xldCBqZT10aGlzLnNsaWNlU2VyaWFsaXplKEVlKTtrKCc8YSBocmVmPSInK0swKGplLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6JGFyKSsnIj4nKSxNKFMoamUpKSxrKCI8L2E+Iil9ZnVuY3Rpb24gWWkoRWUpe2xldCBqZT10aGlzLnNsaWNlU2VyaWFsaXplKEVlKTtrKCc8YSBocmVmPSInK0swKCJtYWlsdG86IitqZSkrJyI+JyksTShTKGplKSksaygiPC9hPiIpfX12YXIgRGFyLCRhcixNemEsaERlPXUoKCk9PntPeigpO0cwKCk7czRlKCk7ZTRlKCk7TkxlKCk7eHAoKTtaMCgpO0Rhcj17fS5oYXNPd25Qcm9wZXJ0eSwkYXI9L14oaHR0cHM/fGlyY3M/fG1haWx0b3x4bXBwKSQvaSxNemE9L15odHRwcz8kL2k7aShmRGUsImNvbXBpbGUiKX0pO2Z1bmN0aW9uIEN6YSh0KXtsZXQgZT10LmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5jb250ZW50SW5pdGlhbCxhLHMpLHI7cmV0dXJuIGU7ZnVuY3Rpb24gYShsKXtpZihsPT09bnVsbCl7dC5jb25zdW1lKGwpO3JldHVybn1yZXR1cm4gdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShsKSx0LmV4aXQoImxpbmVFbmRpbmciKSxXdCh0LGUsImxpbmVQcmVmaXgiKX1mdW5jdGlvbiBzKGwpe3JldHVybiB0LmVudGVyKCJwYXJhZ3JhcGgiKSxuKGwpfWZ1bmN0aW9uIG4obCl7bGV0IGM9dC5lbnRlcigiY2h1bmtUZXh0Iix7Y29udGVudFR5cGU6InRleHQiLHByZXZpb3VzOnJ9KTtyZXR1cm4gciYmKHIubmV4dD1jKSxyPWMsbyhsKX1mdW5jdGlvbiBvKGwpe2lmKGw9PT1udWxsKXt0LmV4aXQoImNodW5rVGV4dCIpLHQuZXhpdCgicGFyYWdyYXBoIiksdC5jb25zdW1lKGwpO3JldHVybn1yZXR1cm4gdXQobCk/KHQuY29uc3VtZShsKSx0LmV4aXQoImNodW5rVGV4dCIpLG4pOih0LmNvbnN1bWUobCksbyl9fXZhciBBYXIsRWFyPXUoKCk9PnthcygpO1lyKCk7QWFyPXt0b2tlbml6ZTpDemF9O2koQ3phLCJpbml0aWFsaXplQ29udGVudCIpfSk7ZnVuY3Rpb24genphKHQpe2xldCBlPXRoaXMscj1bXSxhPTAscyxuLG87cmV0dXJuIGw7ZnVuY3Rpb24gbChNKXtpZihhPHIubGVuZ3RoKXtsZXQgTj1yW2FdO3JldHVybiBlLmNvbnRhaW5lclN0YXRlPU5bMV0sdC5hdHRlbXB0KE5bMF0uY29udGludWF0aW9uLGMsZCkoTSl9cmV0dXJuIGQoTSl9ZnVuY3Rpb24gYyhNKXtpZihhKyssZS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93KXtlLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLHMmJmsoKTtsZXQgTj1lLmV2ZW50cy5sZW5ndGgsXz1OLFM7Zm9yKDtfLS07KWlmKGUuZXZlbnRzW19dWzBdPT09ImV4aXQiJiZlLmV2ZW50c1tfXVsxXS50eXBlPT09ImNodW5rRmxvdyIpe1M9ZS5ldmVudHNbX11bMV0uZW5kO2JyZWFrfXkoYSk7bGV0IE89Tjtmb3IoO088ZS5ldmVudHMubGVuZ3RoOyllLmV2ZW50c1tPXVsxXS5lbmQ9ey4uLlN9LE8rKztyZXR1cm4gcnMoZS5ldmVudHMsXysxLDAsZS5ldmVudHMuc2xpY2UoTikpLGUuZXZlbnRzLmxlbmd0aD1PLGQoTSl9cmV0dXJuIGwoTSl9ZnVuY3Rpb24gZChNKXtpZihhPT09ci5sZW5ndGgpe2lmKCFzKXJldHVybiBoKE0pO2lmKHMuY3VycmVudENvbnN0cnVjdCYmcy5jdXJyZW50Q29uc3RydWN0LmNvbmNyZXRlKXJldHVybiB2KE0pO2UuaW50ZXJydXB0PSEhKHMuY3VycmVudENvbnN0cnVjdCYmIXMuX2dmbVRhYmxlRHluYW1pY0ludGVycnVwdEhhY2spfXJldHVybiBlLmNvbnRhaW5lclN0YXRlPXt9LHQuY2hlY2soSWFyLGYscCkoTSl9ZnVuY3Rpb24gZihNKXtyZXR1cm4gcyYmaygpLHkoYSksaChNKX1mdW5jdGlvbiBwKE0pe3JldHVybiBlLnBhcnNlci5sYXp5W2Uubm93KCkubGluZV09YSE9PXIubGVuZ3RoLG89ZS5ub3coKS5vZmZzZXQsdihNKX1mdW5jdGlvbiBoKE0pe3JldHVybiBlLmNvbnRhaW5lclN0YXRlPXt9LHQuYXR0ZW1wdChJYXIsbSx2KShNKX1mdW5jdGlvbiBtKE0pe3JldHVybiBhKyssci5wdXNoKFtlLmN1cnJlbnRDb25zdHJ1Y3QsZS5jb250YWluZXJTdGF0ZV0pLGgoTSl9ZnVuY3Rpb24gdihNKXtpZihNPT09bnVsbCl7cyYmaygpLHkoMCksdC5jb25zdW1lKE0pO3JldHVybn1yZXR1cm4gcz1zfHxlLnBhcnNlci5mbG93KGUubm93KCkpLHQuZW50ZXIoImNodW5rRmxvdyIse190b2tlbml6ZXI6cyxjb250ZW50VHlwZToiZmxvdyIscHJldmlvdXM6bn0pLGIoTSl9ZnVuY3Rpb24gYihNKXtpZihNPT09bnVsbCl7Zyh0LmV4aXQoImNodW5rRmxvdyIpLCEwKSx5KDApLHQuY29uc3VtZShNKTtyZXR1cm59cmV0dXJuIHV0KE0pPyh0LmNvbnN1bWUoTSksZyh0LmV4aXQoImNodW5rRmxvdyIpKSxhPTAsZS5pbnRlcnJ1cHQ9dm9pZCAwLGwpOih0LmNvbnN1bWUoTSksYil9ZnVuY3Rpb24gZyhNLE4pe2xldCBfPWUuc2xpY2VTdHJlYW0oTSk7aWYoTiYmXy5wdXNoKG51bGwpLE0ucHJldmlvdXM9bixuJiYobi5uZXh0PU0pLG49TSxzLmRlZmluZVNraXAoTS5zdGFydCkscy53cml0ZShfKSxlLnBhcnNlci5sYXp5W00uc3RhcnQubGluZV0pe2xldCBTPXMuZXZlbnRzLmxlbmd0aDtmb3IoO1MtLTspaWYocy5ldmVudHNbU11bMV0uc3RhcnQub2Zmc2V0PG8mJighcy5ldmVudHNbU11bMV0uZW5kfHxzLmV2ZW50c1tTXVsxXS5lbmQub2Zmc2V0Pm8pKXJldHVybjtsZXQgTz1lLmV2ZW50cy5sZW5ndGgsTD1PLEUsQjtmb3IoO0wtLTspaWYoZS5ldmVudHNbTF1bMF09PT0iZXhpdCImJmUuZXZlbnRzW0xdWzFdLnR5cGU9PT0iY2h1bmtGbG93Iil7aWYoRSl7Qj1lLmV2ZW50c1tMXVsxXS5lbmQ7YnJlYWt9RT0hMH1mb3IoeShhKSxTPU87UzxlLmV2ZW50cy5sZW5ndGg7KWUuZXZlbnRzW1NdWzFdLmVuZD17Li4uQn0sUysrO3JzKGUuZXZlbnRzLEwrMSwwLGUuZXZlbnRzLnNsaWNlKE8pKSxlLmV2ZW50cy5sZW5ndGg9U319ZnVuY3Rpb24geShNKXtsZXQgTj1yLmxlbmd0aDtmb3IoO04tLSA+TTspe2xldCBfPXJbTl07ZS5jb250YWluZXJTdGF0ZT1fWzFdLF9bMF0uZXhpdC5jYWxsKGUsdCl9ci5sZW5ndGg9TX1mdW5jdGlvbiBrKCl7cy53cml0ZShbbnVsbF0pLG49dm9pZCAwLHM9dm9pZCAwLGUuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDB9fWZ1bmN0aW9uIF96YSh0LGUscil7cmV0dXJuIFd0KHQsdC5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZG9jdW1lbnQsZSxyKSwibGluZVByZWZpeCIsdGhpcy5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KX12YXIgUGFyLElhcixOYXI9dSgoKT0+e2FzKCk7WXIoKTtHMCgpO1Bhcj17dG9rZW5pemU6enphfSxJYXI9e3Rva2VuaXplOl96YX07aSh6emEsImluaXRpYWxpemVEb2N1bWVudCIpO2koX3phLCJ0b2tlbml6ZUNvbnRhaW5lciIpfSk7ZnVuY3Rpb24gVHphKHQpe2xldCBlPXRoaXMscj10LmF0dGVtcHQoUTAsYSx0LmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93SW5pdGlhbCxzLFd0KHQsdC5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxzLHQuYXR0ZW1wdChWTGUscykpLCJsaW5lUHJlZml4IikpKTtyZXR1cm4gcjtmdW5jdGlvbiBhKG4pe2lmKG49PT1udWxsKXt0LmNvbnN1bWUobik7cmV0dXJufXJldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nQmxhbmsiKSx0LmNvbnN1bWUobiksdC5leGl0KCJsaW5lRW5kaW5nQmxhbmsiKSxlLmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHJ9ZnVuY3Rpb24gcyhuKXtpZihuPT09bnVsbCl7dC5jb25zdW1lKG4pO3JldHVybn1yZXR1cm4gdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShuKSx0LmV4aXQoImxpbmVFbmRpbmciKSxlLmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHJ9fXZhciBPYXIsUmFyPXUoKCk9Pnt4NGUoKTthcygpO1lyKCk7T2FyPXt0b2tlbml6ZTpUemF9O2koVHphLCJpbml0aWFsaXplRmxvdyIpfSk7ZnVuY3Rpb24gRmFyKHQpe3JldHVybntyZXNvbHZlQWxsOkJhcih0PT09InRleHQiP0x6YTp2b2lkIDApLHRva2VuaXplOmV9O2Z1bmN0aW9uIGUocil7bGV0IGE9dGhpcyxzPXRoaXMucGFyc2VyLmNvbnN0cnVjdHNbdF0sbj1yLmF0dGVtcHQocyxvLGwpO3JldHVybiBvO2Z1bmN0aW9uIG8oZil7cmV0dXJuIGQoZik/bihmKTpsKGYpfWZ1bmN0aW9uIGwoZil7aWYoZj09PW51bGwpe3IuY29uc3VtZShmKTtyZXR1cm59cmV0dXJuIHIuZW50ZXIoImRhdGEiKSxyLmNvbnN1bWUoZiksY31mdW5jdGlvbiBjKGYpe3JldHVybiBkKGYpPyhyLmV4aXQoImRhdGEiKSxuKGYpKTooci5jb25zdW1lKGYpLGMpfWZ1bmN0aW9uIGQoZil7aWYoZj09PW51bGwpcmV0dXJuITA7bGV0IHA9c1tmXSxoPS0xO2lmKHApZm9yKDsrK2g8cC5sZW5ndGg7KXtsZXQgbT1wW2hdO2lmKCFtLnByZXZpb3VzfHxtLnByZXZpb3VzLmNhbGwoYSxhLnByZXZpb3VzKSlyZXR1cm4hMH1yZXR1cm4hMX19fWZ1bmN0aW9uIEJhcih0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKHIsYSl7bGV0IHM9LTEsbjtmb3IoOysrczw9ci5sZW5ndGg7KW49PT12b2lkIDA/cltzXSYmcltzXVsxXS50eXBlPT09ImRhdGEiJiYobj1zLHMrKyk6KCFyW3NdfHxyW3NdWzFdLnR5cGUhPT0iZGF0YSIpJiYocyE9PW4rMiYmKHJbbl1bMV0uZW5kPXJbcy0xXVsxXS5lbmQsci5zcGxpY2UobisyLHMtbi0yKSxzPW4rMiksbj12b2lkIDApO3JldHVybiB0P3QocixhKTpyfX1mdW5jdGlvbiBMemEodCxlKXtsZXQgcj0wO2Zvcig7KytyPD10Lmxlbmd0aDspaWYoKHI9PT10Lmxlbmd0aHx8dFtyXVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmdFtyLTFdWzFdLnR5cGU9PT0iZGF0YSIpe2xldCBhPXRbci0xXVsxXSxzPWUuc2xpY2VTdHJlYW0oYSksbj1zLmxlbmd0aCxvPS0xLGw9MCxjO2Zvcig7bi0tOyl7bGV0IGQ9c1tuXTtpZih0eXBlb2YgZD09InN0cmluZyIpe2ZvcihvPWQubGVuZ3RoO2QuY2hhckNvZGVBdChvLTEpPT09MzI7KWwrKyxvLS07aWYobylicmVhaztvPS0xfWVsc2UgaWYoZD09PS0yKWM9ITAsbCsrO2Vsc2UgaWYoZCE9PS0xKXtuKys7YnJlYWt9fWlmKGUuX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nJiZyPT09dC5sZW5ndGgmJihsPTApLGwpe2xldCBkPXt0eXBlOnI9PT10Lmxlbmd0aHx8Y3x8bDwyPyJsaW5lU3VmZml4IjoiaGFyZEJyZWFrVHJhaWxpbmciLHN0YXJ0OntfYnVmZmVySW5kZXg6bj9vOmEuc3RhcnQuX2J1ZmZlckluZGV4K28sX2luZGV4OmEuc3RhcnQuX2luZGV4K24sbGluZTphLmVuZC5saW5lLGNvbHVtbjphLmVuZC5jb2x1bW4tbCxvZmZzZXQ6YS5lbmQub2Zmc2V0LWx9LGVuZDp7Li4uYS5lbmR9fTthLmVuZD17Li4uZC5zdGFydH0sYS5zdGFydC5vZmZzZXQ9PT1hLmVuZC5vZmZzZXQ/T2JqZWN0LmFzc2lnbihhLGQpOih0LnNwbGljZShyLDAsWyJlbnRlciIsZCxlXSxbImV4aXQiLGQsZV0pLHIrPTIpfXIrK31yZXR1cm4gdH12YXIgSGFyLHFhcixWYXIsbURlPXUoKCk9PntIYXI9e3Jlc29sdmVBbGw6QmFyKCl9LHFhcj1GYXIoInN0cmluZyIpLFZhcj1GYXIoInRleHQiKTtpKEZhciwiaW5pdGlhbGl6ZUZhY3RvcnkiKTtpKEJhciwiY3JlYXRlUmVzb2x2ZXIiKTtpKEx6YSwicmVzb2x2ZUFsbExpbmVTdWZmaXhlcyIpfSk7dmFyIGdEZT17fTtWZShnRGUse2F0dGVudGlvbk1hcmtlcnM6KCk9Pk96YSxjb250ZW50SW5pdGlhbDooKT0+JHphLGRpc2FibGU6KCk9PlJ6YSxkb2N1bWVudDooKT0+RHphLGZsb3c6KCk9PkV6YSxmbG93SW5pdGlhbDooKT0+QXphLGluc2lkZVNwYW46KCk9Pk56YSxzdHJpbmc6KCk9Pkl6YSx0ZXh0OigpPT5QemF9KTt2YXIgRHphLCR6YSxBemEsRXphLEl6YSxQemEsTnphLE96YSxSemEsamFyPXUoKCk9Pnt4NGUoKTttRGUoKTtEemE9ezQyOmJvLDQzOmJvLDQ1OmJvLDQ4OmJvLDQ5OmJvLDUwOmJvLDUxOmJvLDUyOmJvLDUzOmJvLDU0OmJvLDU1OmJvLDU2OmJvLDU3OmJvLDYyOmw0ZX0sJHphPXs5MTpZTGV9LEF6YT17Wy0yXTpCeixbLTFdOkJ6LDMyOkJ6fSxFemE9ezM1OlpMZSw0MjpCNiw0NTpbYjRlLEI2XSw2MDpYTGUsNjE6YjRlLDk1OkI2LDk2OnU0ZSwxMjY6dTRlfSxJemE9ezM4OmQ0ZSw5MjpjNGV9LFB6YT17Wy01XTpWeixbLTRdOlZ6LFstM106VnosMzM6ZURlLDM4OmQ0ZSw0MjpGeiw2MDpbRkxlLEpMZV0sOTE6dERlLDkyOltLTGUsYzRlXSw5MzpGNiw5NTpGeiw5NjpCTGV9LE56YT17bnVsbDpbRnosSGFyXX0sT3phPXtudWxsOls0Miw5NV19LFJ6YT17bnVsbDpbXX19KTtmdW5jdGlvbiBVYXIodCxlLHIpe2xldCBhPXtfYnVmZmVySW5kZXg6LTEsX2luZGV4OjAsbGluZTpyJiZyLmxpbmV8fDEsY29sdW1uOnImJnIuY29sdW1ufHwxLG9mZnNldDpyJiZyLm9mZnNldHx8MH0scz17fSxuPVtdLG89W10sbD1bXSxjPSEwLGQ9e2F0dGVtcHQ6RShPKSxjaGVjazpFKEwpLGNvbnN1bWU6TixlbnRlcjpfLGV4aXQ6UyxpbnRlcnJ1cHQ6RShMLHtpbnRlcnJ1cHQ6ITB9KX0sZj17Y29kZTpudWxsLGNvbnRhaW5lclN0YXRlOnt9LGRlZmluZVNraXA6eSxldmVudHM6W10sbm93OmcscGFyc2VyOnQscHJldmlvdXM6bnVsbCxzbGljZVNlcmlhbGl6ZTp2LHNsaWNlU3RyZWFtOmIsd3JpdGU6bX0scD1lLnRva2VuaXplLmNhbGwoZixkKSxoO3JldHVybiBlLnJlc29sdmVBbGwmJm4ucHVzaChlKSxmO2Z1bmN0aW9uIG0oQSl7cmV0dXJuIG89Q3MobyxBKSxrKCksb1tvLmxlbmd0aC0xXSE9PW51bGw/W106KEIoZSwwKSxmLmV2ZW50cz15cChuLGYuZXZlbnRzLGYpLGYuZXZlbnRzKX1pKG0sIndyaXRlIik7ZnVuY3Rpb24gdihBLCQpe3JldHVybiBCemEoYihBKSwkKX1pKHYsInNsaWNlU2VyaWFsaXplIik7ZnVuY3Rpb24gYihBKXtyZXR1cm4gRnphKG8sQSl9aShiLCJzbGljZVN0cmVhbSIpO2Z1bmN0aW9uIGcoKXtsZXR7X2J1ZmZlckluZGV4OkEsX2luZGV4OiQsbGluZTpGLGNvbHVtbjpZLG9mZnNldDpHfT1hO3JldHVybntfYnVmZmVySW5kZXg6QSxfaW5kZXg6JCxsaW5lOkYsY29sdW1uOlksb2Zmc2V0Okd9fWkoZywibm93Iik7ZnVuY3Rpb24geShBKXtzW0EubGluZV09QS5jb2x1bW4seigpfWkoeSwiZGVmaW5lU2tpcCIpO2Z1bmN0aW9uIGsoKXtsZXQgQTtmb3IoO2EuX2luZGV4PG8ubGVuZ3RoOyl7bGV0ICQ9b1thLl9pbmRleF07aWYodHlwZW9mICQ9PSJzdHJpbmciKWZvcihBPWEuX2luZGV4LGEuX2J1ZmZlckluZGV4PDAmJihhLl9idWZmZXJJbmRleD0wKTthLl9pbmRleD09PUEmJmEuX2J1ZmZlckluZGV4PCQubGVuZ3RoOylNKCQuY2hhckNvZGVBdChhLl9idWZmZXJJbmRleCkpO2Vsc2UgTSgkKX19aShrLCJtYWluIik7ZnVuY3Rpb24gTShBKXtjPXZvaWQgMCxoPUEscD1wKEEpfWkoTSwiZ28iKTtmdW5jdGlvbiBOKEEpe3V0KEEpPyhhLmxpbmUrKyxhLmNvbHVtbj0xLGEub2Zmc2V0Kz1BPT09LTM/MjoxLHooKSk6QSE9PS0xJiYoYS5jb2x1bW4rKyxhLm9mZnNldCsrKSxhLl9idWZmZXJJbmRleDwwP2EuX2luZGV4Kys6KGEuX2J1ZmZlckluZGV4KyssYS5fYnVmZmVySW5kZXg9PT1vW2EuX2luZGV4XS5sZW5ndGgmJihhLl9idWZmZXJJbmRleD0tMSxhLl9pbmRleCsrKSksZi5wcmV2aW91cz1BLGM9ITB9aShOLCJjb25zdW1lIik7ZnVuY3Rpb24gXyhBLCQpe2xldCBGPSR8fHt9O3JldHVybiBGLnR5cGU9QSxGLnN0YXJ0PWcoKSxmLmV2ZW50cy5wdXNoKFsiZW50ZXIiLEYsZl0pLGwucHVzaChGKSxGfWkoXywiZW50ZXIiKTtmdW5jdGlvbiBTKEEpe2xldCAkPWwucG9wKCk7cmV0dXJuICQuZW5kPWcoKSxmLmV2ZW50cy5wdXNoKFsiZXhpdCIsJCxmXSksJH1pKFMsImV4aXQiKTtmdW5jdGlvbiBPKEEsJCl7QihBLCQuZnJvbSl9aShPLCJvbnN1Y2Nlc3NmdWxjb25zdHJ1Y3QiKTtmdW5jdGlvbiBMKEEsJCl7JC5yZXN0b3JlKCl9aShMLCJvbnN1Y2Nlc3NmdWxjaGVjayIpO2Z1bmN0aW9uIEUoQSwkKXtyZXR1cm4gRjtmdW5jdGlvbiBGKFksRyxaKXtsZXQgZGUsRCxRLGZlO3JldHVybiBBcnJheS5pc0FycmF5KFkpP1coWSk6InRva2VuaXplImluIFk/VyhbWV0pOlQoWSk7ZnVuY3Rpb24gVChIKXtyZXR1cm4gVTtmdW5jdGlvbiBVKGope2xldCBhZT1qIT09bnVsbCYmSFtqXSxYPWohPT1udWxsJiZILm51bGwsSj1bLi4uQXJyYXkuaXNBcnJheShhZSk/YWU6YWU/W2FlXTpbXSwuLi5BcnJheS5pc0FycmF5KFgpP1g6WD9bWF06W11dO3JldHVybiBXKEopKGopfX1mdW5jdGlvbiBXKEgpe3JldHVybiBkZT1ILEQ9MCxILmxlbmd0aD09PTA/WjpwZShIW0RdKX1mdW5jdGlvbiBwZShIKXtyZXR1cm4gVTtmdW5jdGlvbiBVKGope3JldHVybiBmZT1DKCksUT1ILEgucGFydGlhbHx8KGYuY3VycmVudENvbnN0cnVjdD1IKSxILm5hbWUmJmYucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKEgubmFtZSk/cShqKTpILnRva2VuaXplLmNhbGwoJD9PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUoZiksJCk6ZixkLG1lLHEpKGopfX1mdW5jdGlvbiBtZShIKXtyZXR1cm4gYz0hMCxBKFEsZmUpLEd9ZnVuY3Rpb24gcShIKXtyZXR1cm4gYz0hMCxmZS5yZXN0b3JlKCksKytEPGRlLmxlbmd0aD9wZShkZVtEXSk6Wn19fWkoRSwiY29uc3RydWN0RmFjdG9yeSIpO2Z1bmN0aW9uIEIoQSwkKXtBLnJlc29sdmVBbGwmJiFuLmluY2x1ZGVzKEEpJiZuLnB1c2goQSksQS5yZXNvbHZlJiZycyhmLmV2ZW50cywkLGYuZXZlbnRzLmxlbmd0aC0kLEEucmVzb2x2ZShmLmV2ZW50cy5zbGljZSgkKSxmKSksQS5yZXNvbHZlVG8mJihmLmV2ZW50cz1BLnJlc29sdmVUbyhmLmV2ZW50cyxmKSl9aShCLCJhZGRSZXN1bHQiKTtmdW5jdGlvbiBDKCl7bGV0IEE9ZygpLCQ9Zi5wcmV2aW91cyxGPWYuY3VycmVudENvbnN0cnVjdCxZPWYuZXZlbnRzLmxlbmd0aCxHPUFycmF5LmZyb20obCk7cmV0dXJue2Zyb206WSxyZXN0b3JlOlp9O2Z1bmN0aW9uIFooKXthPUEsZi5wcmV2aW91cz0kLGYuY3VycmVudENvbnN0cnVjdD1GLGYuZXZlbnRzLmxlbmd0aD1ZLGw9Ryx6KCl9fWkoQywic3RvcmUiKTtmdW5jdGlvbiB6KCl7YS5saW5lIGluIHMmJmEuY29sdW1uPDImJihhLmNvbHVtbj1zW2EubGluZV0sYS5vZmZzZXQrPXNbYS5saW5lXS0xKX1pKHosImFjY291bnRGb3JQb3RlbnRpYWxTa2lwIil9ZnVuY3Rpb24gRnphKHQsZSl7bGV0IHI9ZS5zdGFydC5faW5kZXgsYT1lLnN0YXJ0Ll9idWZmZXJJbmRleCxzPWUuZW5kLl9pbmRleCxuPWUuZW5kLl9idWZmZXJJbmRleCxvO2lmKHI9PT1zKW89W3Rbcl0uc2xpY2UoYSxuKV07ZWxzZXtpZihvPXQuc2xpY2UocixzKSxhPi0xKXtsZXQgbD1vWzBdO3R5cGVvZiBsPT0ic3RyaW5nIj9vWzBdPWwuc2xpY2UoYSk6by5zaGlmdCgpfW4+MCYmby5wdXNoKHRbc10uc2xpY2UoMCxuKSl9cmV0dXJuIG99ZnVuY3Rpb24gQnphKHQsZSl7bGV0IHI9LTEsYT1bXSxzO2Zvcig7KytyPHQubGVuZ3RoOyl7bGV0IG49dFtyXSxvO2lmKHR5cGVvZiBuPT0ic3RyaW5nIilvPW47ZWxzZSBzd2l0Y2gobil7Y2FzZS01OntvPSJcciI7YnJlYWt9Y2FzZS00OntvPWAKYDticmVha31jYXNlLTM6e289YFxyCmA7YnJlYWt9Y2FzZS0yOntvPWU/IiAiOiIJIjticmVha31jYXNlLTE6e2lmKCFlJiZzKWNvbnRpbnVlO289IiAiO2JyZWFrfWRlZmF1bHQ6bz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pfXM9bj09PS0yLGEucHVzaChvKX1yZXR1cm4gYS5qb2luKCIiKX12YXIgV2FyPXUoKCk9PntZcigpO0cwKCk7UnooKTtpKFVhciwiY3JlYXRlVG9rZW5pemVyIik7aShGemEsInNsaWNlQ2h1bmtzIik7aShCemEsInNlcmlhbGl6ZUNodW5rcyIpfSk7ZnVuY3Rpb24ganoodCl7bGV0IGE9e2NvbnN0cnVjdHM6YTRlKFtnRGUsLi4uKHR8fHt9KS5leHRlbnNpb25zfHxbXV0pLGNvbnRlbnQ6cyhBYXIpLGRlZmluZWQ6W10sZG9jdW1lbnQ6cyhQYXIpLGZsb3c6cyhPYXIpLGxhenk6e30sc3RyaW5nOnMocWFyKSx0ZXh0OnMoVmFyKX07cmV0dXJuIGE7ZnVuY3Rpb24gcyhuKXtyZXR1cm4gbztmdW5jdGlvbiBvKGwpe3JldHVybiBVYXIoYSxuLGwpfX19dmFyIGJEZT11KCgpPT57czRlKCk7RWFyKCk7TmFyKCk7UmFyKCk7bURlKCk7amFyKCk7V2FyKCk7aShqeiwicGFyc2UiKX0pO2Z1bmN0aW9uIFV6KHQpe2Zvcig7IXA0ZSh0KTspO3JldHVybiB0fXZhciB4RGU9dSgoKT0+e3FMZSgpO2koVXosInBvc3Rwcm9jZXNzIil9KTtmdW5jdGlvbiBXeigpe2xldCB0PTEsZT0iIixyPSEwLGE7cmV0dXJuIHM7ZnVuY3Rpb24gcyhuLG8sbCl7bGV0IGM9W10sZCxmLHAsaCxtO2ZvcihuPWUrKHR5cGVvZiBuPT0ic3RyaW5nIj9uLnRvU3RyaW5nKCk6bmV3IFRleHREZWNvZGVyKG98fHZvaWQgMCkuZGVjb2RlKG4pKSxwPTAsZT0iIixyJiYobi5jaGFyQ29kZUF0KDApPT09NjUyNzkmJnArKyxyPXZvaWQgMCk7cDxuLmxlbmd0aDspe2lmKEdhci5sYXN0SW5kZXg9cCxkPUdhci5leGVjKG4pLGg9ZCYmZC5pbmRleCE9PXZvaWQgMD9kLmluZGV4Om4ubGVuZ3RoLG09bi5jaGFyQ29kZUF0KGgpLCFkKXtlPW4uc2xpY2UocCk7YnJlYWt9aWYobT09PTEwJiZwPT09aCYmYSljLnB1c2goLTMpLGE9dm9pZCAwO2Vsc2Ugc3dpdGNoKGEmJihjLnB1c2goLTUpLGE9dm9pZCAwKSxwPGgmJihjLnB1c2gobi5zbGljZShwLGgpKSx0Kz1oLXApLG0pe2Nhc2UgMDp7Yy5wdXNoKDY1NTMzKSx0Kys7YnJlYWt9Y2FzZSA5Ontmb3IoZj1NYXRoLmNlaWwodC80KSo0LGMucHVzaCgtMik7dCsrPGY7KWMucHVzaCgtMSk7YnJlYWt9Y2FzZSAxMDp7Yy5wdXNoKC00KSx0PTE7YnJlYWt9ZGVmYXVsdDphPSEwLHQ9MX1wPWgrMX1yZXR1cm4gbCYmKGEmJmMucHVzaCgtNSksZSYmYy5wdXNoKGUpLGMucHVzaChudWxsKSksY319dmFyIEdhcix2RGU9dSgoKT0+e0dhcj0vW1wwXHRcblxyXS9nO2koV3osInByZXByb2Nlc3MiKX0pO2Z1bmN0aW9uIHFmbih0LGUscil7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIiYmKHI9ZSxlPXZvaWQgMCksZkRlKHIpKFV6KGp6KHIpLmRvY3VtZW50KCkud3JpdGUoV3ooKSh0LGUsITApKSkpfXZhciBZYXI9dSgoKT0+e2hEZSgpO2JEZSgpO3hEZSgpO3ZEZSgpO2hEZSgpO2JEZSgpO3hEZSgpO3ZEZSgpO2kocWZuLCJtaWNyb21hcmsiKX0pO2Z1bmN0aW9uIHlEZSh0LGUscil7cmV0dXJuIGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKHI9ZSxlPXZvaWQgMCksSHphKHIpKFV6KGp6KHIpLmRvY3VtZW50KCkud3JpdGUoV3ooKSh0LGUsITApKSkpfWZ1bmN0aW9uIEh6YSh0KXtsZXQgZT17dHJhbnNmb3JtczpbXSxjYW5Db250YWluRW9sczpbImVtcGhhc2lzIiwiZnJhZ21lbnQiLCJoZWFkaW5nIiwicGFyYWdyYXBoIiwic3Ryb25nIl0sZW50ZXI6e2F1dG9saW5rOm4oZWUpLGF1dG9saW5rUHJvdG9jb2w6RSxhdXRvbGlua0VtYWlsOkUsYXR4SGVhZGluZzpuKEspLGJsb2NrUXVvdGU6bihqKSxjaGFyYWN0ZXJFc2NhcGU6RSxjaGFyYWN0ZXJSZWZlcmVuY2U6RSxjb2RlRmVuY2VkOm4oYWUpLGNvZGVGZW5jZWRGZW5jZUluZm86byxjb2RlRmVuY2VkRmVuY2VNZXRhOm8sY29kZUluZGVudGVkOm4oYWUsbyksY29kZVRleHQ6bihYLG8pLGNvZGVUZXh0RGF0YTpFLGRhdGE6RSxjb2RlRmxvd1ZhbHVlOkUsZGVmaW5pdGlvbjpuKEopLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpvLGRlZmluaXRpb25MYWJlbFN0cmluZzpvLGRlZmluaXRpb25UaXRsZVN0cmluZzpvLGVtcGhhc2lzOm4oeGUpLGhhcmRCcmVha0VzY2FwZTpuKFYpLGhhcmRCcmVha1RyYWlsaW5nOm4oViksaHRtbEZsb3c6bihsZSxvKSxodG1sRmxvd0RhdGE6RSxodG1sVGV4dDpuKGxlLG8pLGh0bWxUZXh0RGF0YTpFLGltYWdlOm4obmUpLGxhYmVsOm8sbGluazpuKGVlKSxsaXN0SXRlbTpuKEhlKSxsaXN0SXRlbVZhbHVlOmgsbGlzdE9yZGVyZWQ6bih6ZSxwKSxsaXN0VW5vcmRlcmVkOm4oemUpLHBhcmFncmFwaDpuKEdlKSxyZWZlcmVuY2U6VCxyZWZlcmVuY2VTdHJpbmc6byxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOm8scmVzb3VyY2VUaXRsZVN0cmluZzpvLHNldGV4dEhlYWRpbmc6bihLKSxzdHJvbmc6bihvdCksdGhlbWF0aWNCcmVhazpuKF9lKX0sZXhpdDp7YXR4SGVhZGluZzpjKCksYXR4SGVhZGluZ1NlcXVlbmNlOl8sYXV0b2xpbms6YygpLGF1dG9saW5rRW1haWw6VSxhdXRvbGlua1Byb3RvY29sOkgsYmxvY2tRdW90ZTpjKCksY2hhcmFjdGVyRXNjYXBlVmFsdWU6QixjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpwZSxjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOnBlLGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOm1lLGNoYXJhY3RlclJlZmVyZW5jZTpxLGNvZGVGZW5jZWQ6YyhnKSxjb2RlRmVuY2VkRmVuY2U6Yixjb2RlRmVuY2VkRmVuY2VJbmZvOm0sY29kZUZlbmNlZEZlbmNlTWV0YTp2LGNvZGVGbG93VmFsdWU6Qixjb2RlSW5kZW50ZWQ6Yyh5KSxjb2RlVGV4dDpjKEYpLGNvZGVUZXh0RGF0YTpCLGRhdGE6QixkZWZpbml0aW9uOmMoKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6TixkZWZpbml0aW9uTGFiZWxTdHJpbmc6ayxkZWZpbml0aW9uVGl0bGVTdHJpbmc6TSxlbXBoYXNpczpjKCksaGFyZEJyZWFrRXNjYXBlOmMoeiksaGFyZEJyZWFrVHJhaWxpbmc6Yyh6KSxodG1sRmxvdzpjKEEpLGh0bWxGbG93RGF0YTpCLGh0bWxUZXh0OmMoJCksaHRtbFRleHREYXRhOkIsaW1hZ2U6YyhHKSxsYWJlbDpkZSxsYWJlbFRleHQ6WixsaW5lRW5kaW5nOkMsbGluazpjKFkpLGxpc3RJdGVtOmMoKSxsaXN0T3JkZXJlZDpjKCksbGlzdFVub3JkZXJlZDpjKCkscGFyYWdyYXBoOmMoKSxyZWZlcmVuY2VTdHJpbmc6VyxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOkQscmVzb3VyY2VUaXRsZVN0cmluZzpRLHJlc291cmNlOmZlLHNldGV4dEhlYWRpbmc6YyhMKSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOk8sc2V0ZXh0SGVhZGluZ1RleHQ6UyxzdHJvbmc6YygpLHRoZW1hdGljQnJlYWs6YygpfX07WmFyKGUsKHR8fHt9KS5tZGFzdEV4dGVuc2lvbnN8fFtdKTtsZXQgcj17fTtyZXR1cm4gYTtmdW5jdGlvbiBhKG9lKXtsZXQgc2U9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxjZT17c3RhY2s6W3NlXSx0b2tlblN0YWNrOltdLGNvbmZpZzplLGVudGVyOmwsZXhpdDpkLGJ1ZmZlcjpvLHJlc3VtZTpmLGRhdGE6cn0sVGU9W10scWU9LTE7Zm9yKDsrK3FlPG9lLmxlbmd0aDspaWYob2VbcWVdWzFdLnR5cGU9PT0ibGlzdE9yZGVyZWQifHxvZVtxZV1bMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkIilpZihvZVtxZV1bMF09PT0iZW50ZXIiKVRlLnB1c2gocWUpO2Vsc2V7bGV0IG50PVRlLnBvcCgpO3FlPXMob2UsbnQscWUpfWZvcihxZT0tMTsrK3FlPG9lLmxlbmd0aDspe2xldCBudD1lW29lW3FlXVswXV07S2FyLmNhbGwobnQsb2VbcWVdWzFdLnR5cGUpJiZudFtvZVtxZV1bMV0udHlwZV0uY2FsbChPYmplY3QuYXNzaWduKHtzbGljZVNlcmlhbGl6ZTpvZVtxZV1bMl0uc2xpY2VTZXJpYWxpemV9LGNlKSxvZVtxZV1bMV0pfWlmKGNlLnRva2VuU3RhY2subGVuZ3RoPjApe2xldCBudD1jZS50b2tlblN0YWNrW2NlLnRva2VuU3RhY2subGVuZ3RoLTFdOyhudFsxXXx8UWFyKS5jYWxsKGNlLHZvaWQgMCxudFswXSl9Zm9yKHNlLnBvc2l0aW9uPXtzdGFydDp3cChvZS5sZW5ndGg+MD9vZVswXVsxXS5zdGFydDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSksZW5kOndwKG9lLmxlbmd0aD4wP29lW29lLmxlbmd0aC0yXVsxXS5lbmQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pfSxxZT0tMTsrK3FlPGUudHJhbnNmb3Jtcy5sZW5ndGg7KXNlPWUudHJhbnNmb3Jtc1txZV0oc2UpfHxzZTtyZXR1cm4gc2V9ZnVuY3Rpb24gcyhvZSxzZSxjZSl7bGV0IFRlPXNlLTEscWU9LTEsbnQ9ITEsdnQsTGUsd2UsT2U7Zm9yKDsrK1RlPD1jZTspe2xldCBnZT1vZVtUZV07c3dpdGNoKGdlWzFdLnR5cGUpe2Nhc2UibGlzdFVub3JkZXJlZCI6Y2FzZSJsaXN0T3JkZXJlZCI6Y2FzZSJibG9ja1F1b3RlIjp7Z2VbMF09PT0iZW50ZXIiP3FlKys6cWUtLSxPZT12b2lkIDA7YnJlYWt9Y2FzZSJsaW5lRW5kaW5nQmxhbmsiOntnZVswXT09PSJlbnRlciImJih2dCYmIU9lJiYhcWUmJiF3ZSYmKHdlPVRlKSxPZT12b2lkIDApO2JyZWFrfWNhc2UibGluZVByZWZpeCI6Y2FzZSJsaXN0SXRlbVZhbHVlIjpjYXNlImxpc3RJdGVtTWFya2VyIjpjYXNlImxpc3RJdGVtUHJlZml4IjpjYXNlImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSI6YnJlYWs7ZGVmYXVsdDpPZT12b2lkIDB9aWYoIXFlJiZnZVswXT09PSJlbnRlciImJmdlWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgifHxxZT09PS0xJiZnZVswXT09PSJleGl0IiYmKGdlWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCJ8fGdlWzFdLnR5cGU9PT0ibGlzdE9yZGVyZWQiKSl7aWYodnQpe2xldCBiZT1UZTtmb3IoTGU9dm9pZCAwO2JlLS07KXtsZXQgSWU9b2VbYmVdO2lmKEllWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fEllWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIil7aWYoSWVbMF09PT0iZXhpdCIpY29udGludWU7TGUmJihvZVtMZV1bMV0udHlwZT0ibGluZUVuZGluZ0JsYW5rIixudD0hMCksSWVbMV0udHlwZT0ibGluZUVuZGluZyIsTGU9YmV9ZWxzZSBpZighKEllWzFdLnR5cGU9PT0ibGluZVByZWZpeCJ8fEllWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeCJ8fEllWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UifHxJZVsxXS50eXBlPT09ImJsb2NrUXVvdGVNYXJrZXIifHxJZVsxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWt9d2UmJighTGV8fHdlPExlKSYmKHZ0Ll9zcHJlYWQ9ITApLHZ0LmVuZD1PYmplY3QuYXNzaWduKHt9LExlP29lW0xlXVsxXS5zdGFydDpnZVsxXS5lbmQpLG9lLnNwbGljZShMZXx8VGUsMCxbImV4aXQiLHZ0LGdlWzJdXSksVGUrKyxjZSsrfWlmKGdlWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiKXtsZXQgYmU9e3R5cGU6Imxpc3RJdGVtIixfc3ByZWFkOiExLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sZ2VbMV0uc3RhcnQpLGVuZDp2b2lkIDB9O3Z0PWJlLG9lLnNwbGljZShUZSwwLFsiZW50ZXIiLGJlLGdlWzJdXSksVGUrKyxjZSsrLHdlPXZvaWQgMCxPZT0hMH19fXJldHVybiBvZVtzZV1bMV0uX3NwcmVhZD1udCxjZX1mdW5jdGlvbiBuKG9lLHNlKXtyZXR1cm4gY2U7ZnVuY3Rpb24gY2UoVGUpe2wuY2FsbCh0aGlzLG9lKFRlKSxUZSksc2UmJnNlLmNhbGwodGhpcyxUZSl9fWZ1bmN0aW9uIG8oKXt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImZyYWdtZW50IixjaGlsZHJlbjpbXX0pfWZ1bmN0aW9uIGwob2Usc2UsY2Upe3RoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4ucHVzaChvZSksdGhpcy5zdGFjay5wdXNoKG9lKSx0aGlzLnRva2VuU3RhY2sucHVzaChbc2UsY2V8fHZvaWQgMF0pLG9lLnBvc2l0aW9uPXtzdGFydDp3cChzZS5zdGFydCksZW5kOnZvaWQgMH19ZnVuY3Rpb24gYyhvZSl7cmV0dXJuIHNlO2Z1bmN0aW9uIHNlKGNlKXtvZSYmb2UuY2FsbCh0aGlzLGNlKSxkLmNhbGwodGhpcyxjZSl9fWZ1bmN0aW9uIGQob2Usc2Upe2xldCBjZT10aGlzLnN0YWNrLnBvcCgpLFRlPXRoaXMudG9rZW5TdGFjay5wb3AoKTtpZihUZSlUZVswXS50eXBlIT09b2UudHlwZSYmKHNlP3NlLmNhbGwodGhpcyxvZSxUZVswXSk6KFRlWzFdfHxRYXIpLmNhbGwodGhpcyxvZSxUZVswXSkpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgYCIrb2UudHlwZSsiYCAoIitncCh7c3RhcnQ6b2Uuc3RhcnQsZW5kOm9lLmVuZH0pKyIpOiBpdFx1MjAxOXMgbm90IG9wZW4iKTtjZS5wb3NpdGlvbi5lbmQ9d3Aob2UuZW5kKX1mdW5jdGlvbiBmKCl7cmV0dXJuIEk2KHRoaXMuc3RhY2sucG9wKCkpfWZ1bmN0aW9uIHAoKXt0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPSEwfWZ1bmN0aW9uIGgob2Upe2lmKHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWUpe2xldCBzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO3NlLnN0YXJ0PU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKG9lKSwxMCksdGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZT12b2lkIDB9fWZ1bmN0aW9uIG0oKXtsZXQgb2U9dGhpcy5yZXN1bWUoKSxzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLmxhbmc9b2V9ZnVuY3Rpb24gdigpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UubWV0YT1vZX1mdW5jdGlvbiBiKCl7dGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlfHwodGhpcy5idWZmZXIoKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9ITApfWZ1bmN0aW9uIGcoKXtsZXQgb2U9dGhpcy5yZXN1bWUoKSxzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLnZhbHVlPW9lLnJlcGxhY2UoL14oXHI/XG58XHIpfChccj9cbnxccikkL2csIiIpLHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZT12b2lkIDB9ZnVuY3Rpb24geSgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudmFsdWU9b2UucmVwbGFjZSgvKFxyP1xufFxyKSQvZywiIil9ZnVuY3Rpb24gayhvZSl7bGV0IHNlPXRoaXMucmVzdW1lKCksY2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtjZS5sYWJlbD1zZSxjZS5pZGVudGlmaWVyPUhpKHRoaXMuc2xpY2VTZXJpYWxpemUob2UpKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIE0oKXtsZXQgb2U9dGhpcy5yZXN1bWUoKSxzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLnRpdGxlPW9lfWZ1bmN0aW9uIE4oKXtsZXQgb2U9dGhpcy5yZXN1bWUoKSxzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLnVybD1vZX1mdW5jdGlvbiBfKG9lKXtsZXQgc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZighc2UuZGVwdGgpe2xldCBjZT10aGlzLnNsaWNlU2VyaWFsaXplKG9lKS5sZW5ndGg7c2UuZGVwdGg9Y2V9fWZ1bmN0aW9uIFMoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz0hMH1mdW5jdGlvbiBPKG9lKXtsZXQgc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS5kZXB0aD10aGlzLnNsaWNlU2VyaWFsaXplKG9lKS5jb2RlUG9pbnRBdCgwKT09PTYxPzE6Mn1mdW5jdGlvbiBMKCl7dGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmc9dm9pZCAwfWZ1bmN0aW9uIEUob2Upe2xldCBjZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLFRlPWNlW2NlLmxlbmd0aC0xXTsoIVRlfHxUZS50eXBlIT09InRleHQiKSYmKFRlPURlKCksVGUucG9zaXRpb249e3N0YXJ0OndwKG9lLnN0YXJ0KSxlbmQ6dm9pZCAwfSxjZS5wdXNoKFRlKSksdGhpcy5zdGFjay5wdXNoKFRlKX1mdW5jdGlvbiBCKG9lKXtsZXQgc2U9dGhpcy5zdGFjay5wb3AoKTtzZS52YWx1ZSs9dGhpcy5zbGljZVNlcmlhbGl6ZShvZSksc2UucG9zaXRpb24uZW5kPXdwKG9lLmVuZCl9ZnVuY3Rpb24gQyhvZSl7bGV0IHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmF0SGFyZEJyZWFrKXtsZXQgY2U9c2UuY2hpbGRyZW5bc2UuY2hpbGRyZW4ubGVuZ3RoLTFdO2NlLnBvc2l0aW9uLmVuZD13cChvZS5lbmQpLHRoaXMuZGF0YS5hdEhhcmRCcmVhaz12b2lkIDA7cmV0dXJufSF0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZyYmZS5jYW5Db250YWluRW9scy5pbmNsdWRlcyhzZS50eXBlKSYmKEUuY2FsbCh0aGlzLG9lKSxCLmNhbGwodGhpcyxvZSkpfWZ1bmN0aW9uIHooKXt0aGlzLmRhdGEuYXRIYXJkQnJlYWs9ITB9ZnVuY3Rpb24gQSgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudmFsdWU9b2V9ZnVuY3Rpb24gJCgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudmFsdWU9b2V9ZnVuY3Rpb24gRigpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudmFsdWU9b2V9ZnVuY3Rpb24gWSgpe2xldCBvZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IHNlPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO29lLnR5cGUrPSJSZWZlcmVuY2UiLG9lLnJlZmVyZW5jZVR5cGU9c2UsZGVsZXRlIG9lLnVybCxkZWxldGUgb2UudGl0bGV9ZWxzZSBkZWxldGUgb2UuaWRlbnRpZmllcixkZWxldGUgb2UubGFiZWw7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9dm9pZCAwfWZ1bmN0aW9uIEcoKXtsZXQgb2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2xldCBzZT10aGlzLmRhdGEucmVmZXJlbmNlVHlwZXx8InNob3J0Y3V0IjtvZS50eXBlKz0iUmVmZXJlbmNlIixvZS5yZWZlcmVuY2VUeXBlPXNlLGRlbGV0ZSBvZS51cmwsZGVsZXRlIG9lLnRpdGxlfWVsc2UgZGVsZXRlIG9lLmlkZW50aWZpZXIsZGVsZXRlIG9lLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBaKG9lKXtsZXQgc2U9dGhpcy5zbGljZVNlcmlhbGl6ZShvZSksY2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtjZS5sYWJlbD10NGUoc2UpLGNlLmlkZW50aWZpZXI9SGkoc2UpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gZGUoKXtsZXQgb2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXSxzZT10aGlzLnJlc3VtZSgpLGNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmluUmVmZXJlbmNlPSEwLGNlLnR5cGU9PT0ibGluayIpe2xldCBUZT1vZS5jaGlsZHJlbjtjZS5jaGlsZHJlbj1UZX1lbHNlIGNlLmFsdD1zZX1mdW5jdGlvbiBEKCl7bGV0IG9lPXRoaXMucmVzdW1lKCksc2U9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtzZS51cmw9b2V9ZnVuY3Rpb24gUSgpe2xldCBvZT10aGlzLnJlc3VtZSgpLHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudGl0bGU9b2V9ZnVuY3Rpb24gZmUoKXt0aGlzLmRhdGEuaW5SZWZlcmVuY2U9dm9pZCAwfWZ1bmN0aW9uIFQoKXt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT0iY29sbGFwc2VkIn1mdW5jdGlvbiBXKG9lKXtsZXQgc2U9dGhpcy5yZXN1bWUoKSxjZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2NlLmxhYmVsPXNlLGNlLmlkZW50aWZpZXI9SGkodGhpcy5zbGljZVNlcmlhbGl6ZShvZSkpLnRvTG93ZXJDYXNlKCksdGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImZ1bGwifWZ1bmN0aW9uIHBlKG9lKXt0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT1vZS50eXBlfWZ1bmN0aW9uIG1lKG9lKXtsZXQgc2U9dGhpcy5zbGljZVNlcmlhbGl6ZShvZSksY2U9dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGUsVGU7Y2U/KFRlPXR5KHNlLGNlPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KSx0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT12b2lkIDApOlRlPXZwKHNlKTtsZXQgcWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtxZS52YWx1ZSs9VGV9ZnVuY3Rpb24gcShvZSl7bGV0IHNlPXRoaXMuc3RhY2sucG9wKCk7c2UucG9zaXRpb24uZW5kPXdwKG9lLmVuZCl9ZnVuY3Rpb24gSChvZSl7Qi5jYWxsKHRoaXMsb2UpO2xldCBzZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3NlLnVybD10aGlzLnNsaWNlU2VyaWFsaXplKG9lKX1mdW5jdGlvbiBVKG9lKXtCLmNhbGwodGhpcyxvZSk7bGV0IHNlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07c2UudXJsPSJtYWlsdG86Iit0aGlzLnNsaWNlU2VyaWFsaXplKG9lKX1mdW5jdGlvbiBqKCl7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBhZSgpe3JldHVybnt0eXBlOiJjb2RlIixsYW5nOm51bGwsbWV0YTpudWxsLHZhbHVlOiIifX1mdW5jdGlvbiBYKCl7cmV0dXJue3R5cGU6ImlubGluZUNvZGUiLHZhbHVlOiIifX1mdW5jdGlvbiBKKCl7cmV0dXJue3R5cGU6ImRlZmluaXRpb24iLGlkZW50aWZpZXI6IiIsbGFiZWw6bnVsbCx0aXRsZTpudWxsLHVybDoiIn19ZnVuY3Rpb24geGUoKXtyZXR1cm57dHlwZToiZW1waGFzaXMiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBLKCl7cmV0dXJue3R5cGU6ImhlYWRpbmciLGRlcHRoOjAsY2hpbGRyZW46W119fWZ1bmN0aW9uIFYoKXtyZXR1cm57dHlwZToiYnJlYWsifX1mdW5jdGlvbiBsZSgpe3JldHVybnt0eXBlOiJodG1sIix2YWx1ZToiIn19ZnVuY3Rpb24gbmUoKXtyZXR1cm57dHlwZToiaW1hZ2UiLHRpdGxlOm51bGwsdXJsOiIiLGFsdDpudWxsfX1mdW5jdGlvbiBlZSgpe3JldHVybnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoiIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gemUob2Upe3JldHVybnt0eXBlOiJsaXN0IixvcmRlcmVkOm9lLnR5cGU9PT0ibGlzdE9yZGVyZWQiLHN0YXJ0Om51bGwsc3ByZWFkOm9lLl9zcHJlYWQsY2hpbGRyZW46W119fWZ1bmN0aW9uIEhlKG9lKXtyZXR1cm57dHlwZToibGlzdEl0ZW0iLHNwcmVhZDpvZS5fc3ByZWFkLGNoZWNrZWQ6bnVsbCxjaGlsZHJlbjpbXX19ZnVuY3Rpb24gR2UoKXtyZXR1cm57dHlwZToicGFyYWdyYXBoIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gb3QoKXtyZXR1cm57dHlwZToic3Ryb25nIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gRGUoKXtyZXR1cm57dHlwZToidGV4dCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIF9lKCl7cmV0dXJue3R5cGU6InRoZW1hdGljQnJlYWsifX19ZnVuY3Rpb24gd3AodCl7cmV0dXJue2xpbmU6dC5saW5lLGNvbHVtbjp0LmNvbHVtbixvZmZzZXQ6dC5vZmZzZXR9fWZ1bmN0aW9uIFphcih0LGUpe2xldCByPS0xO2Zvcig7KytyPGUubGVuZ3RoOyl7bGV0IGE9ZVtyXTtBcnJheS5pc0FycmF5KGEpP1phcih0LGEpOnF6YSh0LGEpfX1mdW5jdGlvbiBxemEodCxlKXtsZXQgcjtmb3IociBpbiBlKWlmKEthci5jYWxsKGUscikpc3dpdGNoKHIpe2Nhc2UiY2FuQ29udGFpbkVvbHMiOntsZXQgYT1lW3JdO2EmJnRbcl0ucHVzaCguLi5hKTticmVha31jYXNlInRyYW5zZm9ybXMiOntsZXQgYT1lW3JdO2EmJnRbcl0ucHVzaCguLi5hKTticmVha31jYXNlImVudGVyIjpjYXNlImV4aXQiOntsZXQgYT1lW3JdO2EmJk9iamVjdC5hc3NpZ24odFtyXSxhKTticmVha319fWZ1bmN0aW9uIFFhcih0LGUpe3Rocm93IHQ/bmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgYCIrdC50eXBlKyJgICgiK2dwKHtzdGFydDp0LnN0YXJ0LGVuZDp0LmVuZH0pKyIpOiBhIGRpZmZlcmVudCB0b2tlbiAoYCIrZS50eXBlKyJgLCAiK2dwKHtzdGFydDplLnN0YXJ0LGVuZDplLmVuZH0pKyIpIGlzIG9wZW4iKTpuZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBkb2N1bWVudCwgYSB0b2tlbiAoYCIrZS50eXBlKyJgLCAiK2dwKHtzdGFydDplLnN0YXJ0LGVuZDplLmVuZH0pKyIpIGlzIHN0aWxsIG9wZW4iKX12YXIgS2FyLFhhcj11KCgpPT57WmRlKCk7WWFyKCk7ZTRlKCk7U0xlKCk7eHAoKTtPeigpO09UZSgpO0thcj17fS5oYXNPd25Qcm9wZXJ0eTtpKHlEZSwiZnJvbU1hcmtkb3duIik7aShIemEsImNvbXBpbGVyIik7aSh3cCwicG9pbnQiKTtpKFphciwiY29uZmlndXJlIik7aShxemEsImV4dGVuc2lvbiIpO2koUWFyLCJkZWZhdWx0T25FcnJvciIpfSk7dmFyIEphcj11KCgpPT57WGFyKCl9KTtmdW5jdGlvbiBpeSh0KXtsZXQgZT10aGlzO2UucGFyc2VyPXI7ZnVuY3Rpb24gcihhKXtyZXR1cm4geURlKGEsey4uLmUuZGF0YSgic2V0dGluZ3MiKSwuLi50LGV4dGVuc2lvbnM6ZS5kYXRhKCJtaWNyb21hcmtFeHRlbnNpb25zIil8fFtdLG1kYXN0RXh0ZW5zaW9uczplLmRhdGEoImZyb21NYXJrZG93bkV4dGVuc2lvbnMiKXx8W119KX1pKHIsInBhcnNlciIpfXZhciBlaXI9dSgoKT0+e0phcigpO2koaXksInJlbWFya1BhcnNlIil9KTt2YXIgdGlyPXUoKCk9PntlaXIoKX0pO3ZhciByaXI9TnQoKHVobix3RGUpPT57KGZ1bmN0aW9uKCl7dmFyIHQ7dHlwZW9mIHdEZTwidSI/dD13RGUuZXhwb3J0cz1hOnQ9KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN8fCgwLGV2YWwpKCJ0aGlzIil9KSgpLHQuZm9ybWF0PWEsdC52c3ByaW50Zj1yLHR5cGVvZiBjb25zb2xlPCJ1IiYmdHlwZW9mIGNvbnNvbGUubG9nPT0iZnVuY3Rpb24iJiYodC5wcmludGY9ZSk7ZnVuY3Rpb24gZSgpe2NvbnNvbGUubG9nKGEuYXBwbHkobnVsbCxhcmd1bWVudHMpKX1pKGUsInByaW50ZiIpO2Z1bmN0aW9uIHIocyxuKXtyZXR1cm4gYS5hcHBseShudWxsLFtzXS5jb25jYXQobikpfWkociwidnNwcmludGYiKTtmdW5jdGlvbiBhKHMpe2Zvcih2YXIgbj0xLG89W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLGw9MCxjPXMubGVuZ3RoLGQ9IiIsZixwPSExLGgsbSx2PSExLGIsZz1pKGZ1bmN0aW9uKCl7cmV0dXJuIG9bbisrXX0sIm5leHRBcmciKSx5PWkoZnVuY3Rpb24oKXtmb3IodmFyIGs9IiI7L1xkLy50ZXN0KHNbbF0pOylrKz1zW2wrK10sZj1zW2xdO3JldHVybiBrLmxlbmd0aD4wP3BhcnNlSW50KGspOm51bGx9LCJzbHVycE51bWJlciIpO2w8YzsrK2wpaWYoZj1zW2xdLHApc3dpdGNoKHA9ITEsZj09Ii4iPyh2PSExLGY9c1srK2xdKTpmPT0iMCImJnNbbCsxXT09Ii4iPyh2PSEwLGwrPTIsZj1zW2xdKTp2PSEwLGI9eSgpLGYpe2Nhc2UiYiI6ZCs9cGFyc2VJbnQoZygpLDEwKS50b1N0cmluZygyKTticmVhaztjYXNlImMiOmg9ZygpLHR5cGVvZiBoPT0ic3RyaW5nInx8aCBpbnN0YW5jZW9mIFN0cmluZz9kKz1oOmQrPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoaCwxMCkpO2JyZWFrO2Nhc2UiZCI6ZCs9cGFyc2VJbnQoZygpLDEwKTticmVhaztjYXNlImYiOm09U3RyaW5nKHBhcnNlRmxvYXQoZygpKS50b0ZpeGVkKGJ8fDYpKSxkKz12P206bS5yZXBsYWNlKC9eMC8sIiIpO2JyZWFrO2Nhc2UiaiI6ZCs9SlNPTi5zdHJpbmdpZnkoZygpKTticmVhaztjYXNlIm8iOmQrPSIwIitwYXJzZUludChnKCksMTApLnRvU3RyaW5nKDgpO2JyZWFrO2Nhc2UicyI6ZCs9ZygpO2JyZWFrO2Nhc2UieCI6ZCs9IjB4IitwYXJzZUludChnKCksMTApLnRvU3RyaW5nKDE2KTticmVhaztjYXNlIlgiOmQrPSIweCIrcGFyc2VJbnQoZygpLDEwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTticmVhaztkZWZhdWx0OmQrPWY7YnJlYWt9ZWxzZSBmPT09IiUiP3A9ITA6ZCs9ZjtyZXR1cm4gZH1pKGEsImZvcm1hdCIpfSkoKX0pO2Z1bmN0aW9uIEg2KHQpe3JldHVybiBlLmRpc3BsYXlOYW1lPXQuZGlzcGxheU5hbWV8fHQubmFtZSxlO2Z1bmN0aW9uIGUociwuLi5hKXtsZXQgcz1yJiYoMCxhaXIuZGVmYXVsdCkociwuLi5hKTtyZXR1cm4gbmV3IHQocyl9aShlLCJGb3JtYXR0ZWRFcnJvciIpfXZhciBhaXIsR3osaWlyPXUoKCk9PnthaXI9R2EocmlyKCksMSksR3o9T2JqZWN0LmFzc2lnbihINihFcnJvcikse2V2YWw6SDYoRXZhbEVycm9yKSxyYW5nZTpINihSYW5nZUVycm9yKSxyZWZlcmVuY2U6SDYoUmVmZXJlbmNlRXJyb3IpLHN5bnRheDpINihTeW50YXhFcnJvciksdHlwZTpINihUeXBlRXJyb3IpLHVyaTpINihVUklFcnJvcil9KTtpKEg2LCJjcmVhdGUiKX0pO2Z1bmN0aW9uIHN5KHQpe2xldCBlPVtdLHI9LTEsYT1BcnJheS5pc0FycmF5KHQpP3Q6dD9bdF06WyJ5YW1sIl07Zm9yKDsrK3I8YS5sZW5ndGg7KWVbcl09VnphKGFbcl0pO3JldHVybiBlfWZ1bmN0aW9uIFZ6YSh0KXtsZXQgZT10O2lmKHR5cGVvZiBlPT0ic3RyaW5nIil7aWYoIXc0ZS5jYWxsKHNpcixlKSl0aHJvdyBHeigiTWlzc2luZyBtYXR0ZXIgZGVmaW5pdGlvbiBmb3IgYCVzYCIsZSk7ZT17dHlwZTplLG1hcmtlcjpzaXJbZV19fWVsc2UgaWYodHlwZW9mIGUhPSJvYmplY3QiKXRocm93IEd6KCJFeHBlY3RlZCBtYXR0ZXIgdG8gYmUgYW4gb2JqZWN0LCBub3QgYCVqYCIsZSk7aWYoIXc0ZS5jYWxsKGUsInR5cGUiKSl0aHJvdyBHeigiTWlzc2luZyBgdHlwZWAgaW4gbWF0dGVyIGAlamAiLGUpO2lmKCF3NGUuY2FsbChlLCJmZW5jZSIpJiYhdzRlLmNhbGwoZSwibWFya2VyIikpdGhyb3cgR3ooIk1pc3NpbmcgYG1hcmtlcmAgb3IgYGZlbmNlYCBpbiBtYXR0ZXIgYCVqYCIsZSk7cmV0dXJuIGV9dmFyIHc0ZSxzaXIsa0RlPXUoKCk9PntpaXIoKTt3NGU9e30uaGFzT3duUHJvcGVydHksc2lyPXt5YW1sOiItIix0b21sOiIrIn07aShzeSwidG9NYXR0ZXJzIik7aShWemEsIm1hdHRlciIpfSk7ZnVuY3Rpb24gTURlKHQpe2xldCBlPXN5KHQpLHI9e30sYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspe2xldCBzPWVbYV0sbj1TRGUocywib3BlbiIpLmNoYXJDb2RlQXQoMCksbz1qemEocyksbD1yW25dO0FycmF5LmlzQXJyYXkobCk/bC5wdXNoKG8pOnJbbl09W29dfXJldHVybntmbG93OnJ9fWZ1bmN0aW9uIGp6YSh0KXtsZXQgZT10LmFueXdoZXJlLHI9dC50eXBlLGE9cisiRmVuY2UiLHM9YSsiU2VxdWVuY2UiLG49cisiVmFsdWUiLG89e3Rva2VuaXplOmYscGFydGlhbDohMH0sbCxjPTA7cmV0dXJue3Rva2VuaXplOmQsY29uY3JldGU6ITB9O2Z1bmN0aW9uIGQocCxoLG0pe2xldCB2PXRoaXM7cmV0dXJuIGI7ZnVuY3Rpb24gYihPKXtsZXQgTD12Lm5vdygpO3JldHVybiBMLmNvbHVtbj09PTEmJihMLmxpbmU9PT0xfHxlKSYmKGw9U0RlKHQsIm9wZW4iKSxjPTAsTz09PWwuY2hhckNvZGVBdChjKSk/KHAuZW50ZXIocikscC5lbnRlcihhKSxwLmVudGVyKHMpLGcoTykpOm0oTyl9ZnVuY3Rpb24gZyhPKXtyZXR1cm4gYz09PWwubGVuZ3RoPyhwLmV4aXQocyksUnQoTyk/KHAuZW50ZXIoIndoaXRlc3BhY2UiKSx5KE8pKTprKE8pKTpPPT09bC5jaGFyQ29kZUF0KGMrKyk/KHAuY29uc3VtZShPKSxnKTptKE8pfWZ1bmN0aW9uIHkoTyl7cmV0dXJuIFJ0KE8pPyhwLmNvbnN1bWUoTykseSk6KHAuZXhpdCgid2hpdGVzcGFjZSIpLGsoTykpfWZ1bmN0aW9uIGsoTyl7cmV0dXJuIHV0KE8pPyhwLmV4aXQoYSkscC5lbnRlcigibGluZUVuZGluZyIpLHAuY29uc3VtZShPKSxwLmV4aXQoImxpbmVFbmRpbmciKSxsPVNEZSh0LCJjbG9zZSIpLGM9MCxwLmF0dGVtcHQobyxTLE0pKTptKE8pfWZ1bmN0aW9uIE0oTyl7cmV0dXJuIE89PT1udWxsfHx1dChPKT9fKE8pOihwLmVudGVyKG4pLE4oTykpfWZ1bmN0aW9uIE4oTyl7cmV0dXJuIE89PT1udWxsfHx1dChPKT8ocC5leGl0KG4pLF8oTykpOihwLmNvbnN1bWUoTyksTil9ZnVuY3Rpb24gXyhPKXtyZXR1cm4gTz09PW51bGw/bShPKToocC5lbnRlcigibGluZUVuZGluZyIpLHAuY29uc3VtZShPKSxwLmV4aXQoImxpbmVFbmRpbmciKSxwLmF0dGVtcHQobyxTLE0pKX1mdW5jdGlvbiBTKE8pe3JldHVybiBwLmV4aXQociksaChPKX19ZnVuY3Rpb24gZihwLGgsbSl7bGV0IHY9MDtyZXR1cm4gYjtmdW5jdGlvbiBiKE0pe3JldHVybiBNPT09bC5jaGFyQ29kZUF0KHYpPyhwLmVudGVyKGEpLHAuZW50ZXIocyksZyhNKSk6bShNKX1mdW5jdGlvbiBnKE0pe3JldHVybiB2PT09bC5sZW5ndGg/KHAuZXhpdChzKSxSdChNKT8ocC5lbnRlcigid2hpdGVzcGFjZSIpLHkoTSkpOmsoTSkpOk09PT1sLmNoYXJDb2RlQXQodisrKT8ocC5jb25zdW1lKE0pLGcpOm0oTSl9ZnVuY3Rpb24geShNKXtyZXR1cm4gUnQoTSk/KHAuY29uc3VtZShNKSx5KToocC5leGl0KCJ3aGl0ZXNwYWNlIiksayhNKSl9ZnVuY3Rpb24gayhNKXtyZXR1cm4gTT09PW51bGx8fHV0KE0pPyhwLmV4aXQoYSksaChNKSk6bShNKX19fWZ1bmN0aW9uIFNEZSh0LGUpe3JldHVybiB0Lm1hcmtlcj9uaXIodC5tYXJrZXIsZSkucmVwZWF0KDMpOm5pcih0LmZlbmNlLGUpfWZ1bmN0aW9uIG5pcih0LGUpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/dDp0W2VdfXZhciBvaXI9dSgoKT0+e1lyKCk7a0RlKCk7aShNRGUsImZyb250bWF0dGVyIik7aShqemEsImNyZWF0ZUNvbnN0cnVjdCIpO2koU0RlLCJmZW5jZSIpO2kobmlyLCJwaWNrIil9KTt2YXIgbGlyPXUoKCk9Pnt9KTt2YXIgQ0RlPXUoKCk9PntvaXIoKTtsaXIoKTtrRGUoKX0pO2Z1bmN0aW9uIF9EZSh0KXtsZXQgZT1zeSh0KSxyPXt9LGE9e30scz0tMTtmb3IoOysrczxlLmxlbmd0aDspe2xldCBuPWVbc107cltuLnR5cGVdPVV6YShuKSxhW24udHlwZV09V3phLGFbbi50eXBlKyJWYWx1ZSJdPUd6YX1yZXR1cm57ZW50ZXI6cixleGl0OmF9fWZ1bmN0aW9uIFV6YSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKHIpe3RoaXMuZW50ZXIoe3R5cGU6dC50eXBlLHZhbHVlOiIifSxyKSx0aGlzLmJ1ZmZlcigpfX1mdW5jdGlvbiBXemEodCl7bGV0IGU9dGhpcy5yZXN1bWUoKSxyPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07InZhbHVlImluIHIsdGhpcy5leGl0KHQpLHIudmFsdWU9ZS5yZXBsYWNlKC9eKFxyP1xufFxyKXwoXHI/XG58XHIpJC9nLCIiKX1mdW5jdGlvbiBHemEodCl7dGhpcy5jb25maWcuZW50ZXIuZGF0YS5jYWxsKHRoaXMsdCksdGhpcy5jb25maWcuZXhpdC5kYXRhLmNhbGwodGhpcyx0KX1mdW5jdGlvbiBURGUodCl7bGV0IGU9W10scj17fSxhPXN5KHQpLHM9LTE7Zm9yKDsrK3M8YS5sZW5ndGg7KXtsZXQgbj1hW3NdO3Jbbi50eXBlXT1ZemEobik7bGV0IG89ekRlKG4sIm9wZW4iKTtlLnB1c2goe2F0QnJlYWs6ITAsY2hhcmFjdGVyOm8uY2hhckF0KDApLGFmdGVyOnI2KG8uY2hhckF0KDEpKX0pfXJldHVybnt1bnNhZmU6ZSxoYW5kbGVyczpyfX1mdW5jdGlvbiBZemEodCl7bGV0IGU9ekRlKHQsIm9wZW4iKSxyPXpEZSh0LCJjbG9zZSIpO3JldHVybiBhO2Z1bmN0aW9uIGEocyl7cmV0dXJuIGUrKHMudmFsdWU/YApgK3MudmFsdWU6IiIpK2AKYCtyfX1mdW5jdGlvbiB6RGUodCxlKXtyZXR1cm4gdC5tYXJrZXI/Y2lyKHQubWFya2VyLGUpLnJlcGVhdCgzKTpjaXIodC5mZW5jZSxlKX1mdW5jdGlvbiBjaXIodCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP3Q6dFtlXX12YXIgZGlyPXUoKCk9PnttcCgpO0NEZSgpO0cyZSgpO2koX0RlLCJmcm9udG1hdHRlckZyb21NYXJrZG93biIpO2koVXphLCJvcGVuZXIiKTtpKFd6YSwiY2xvc2UiKTtpKEd6YSwidmFsdWUiKTtpKFREZSwiZnJvbnRtYXR0ZXJUb01hcmtkb3duIik7aShZemEsImhhbmRsZXIiKTtpKHpEZSwiZmVuY2UiKTtpKGNpciwicGljayIpfSk7dmFyIHVpcj11KCgpPT57ZGlyKCl9KTtmdW5jdGlvbiBueSh0KXtsZXQgZT10aGlzLHI9dHx8S3phLGE9ZS5kYXRhKCkscz1hLm1pY3JvbWFya0V4dGVuc2lvbnN8fChhLm1pY3JvbWFya0V4dGVuc2lvbnM9W10pLG49YS5mcm9tTWFya2Rvd25FeHRlbnNpb25zfHwoYS5mcm9tTWFya2Rvd25FeHRlbnNpb25zPVtdKSxvPWEudG9NYXJrZG93bkV4dGVuc2lvbnN8fChhLnRvTWFya2Rvd25FeHRlbnNpb25zPVtdKTtzLnB1c2goTURlKHIpKSxuLnB1c2goX0RlKHIpKSxvLnB1c2goVERlKHIpKX12YXIgS3phLHBpcj11KCgpPT57dWlyKCk7Q0RlKCk7S3phPSJ5YW1sIjtpKG55LCJyZW1hcmtGcm9udG1hdHRlciIpfSk7dmFyIGZpcj11KCgpPT57cGlyKCl9KTt2YXIgTERlPXUoKCk9Pnt9KTt2YXIgaGlyLFp6YSx6NGUsbWlyPXUoKCk9PntMRGUoKTtoaXI9dHlwZW9mIHNlbGY9PSJvYmplY3QiP3NlbGY6Z2xvYmFsVGhpcyxaemE9aSgodCxlKT0+e2xldCByPWkoKHMsbik9Pih0LnNldChuLHMpLHMpLCJhcyIpLGE9aShzPT57aWYodC5oYXMocykpcmV0dXJuIHQuZ2V0KHMpO2xldFtuLG9dPWVbc107c3dpdGNoKG4pe2Nhc2UgMDpjYXNlLTE6cmV0dXJuIHIobyxzKTtjYXNlIDE6e2xldCBsPXIoW10scyk7Zm9yKGxldCBjIG9mIG8pbC5wdXNoKGEoYykpO3JldHVybiBsfWNhc2UgMjp7bGV0IGw9cih7fSxzKTtmb3IobGV0W2MsZF1vZiBvKWxbYShjKV09YShkKTtyZXR1cm4gbH1jYXNlIDM6cmV0dXJuIHIobmV3IERhdGUobykscyk7Y2FzZSA0OntsZXR7c291cmNlOmwsZmxhZ3M6Y309bztyZXR1cm4gcihuZXcgUmVnRXhwKGwsYykscyl9Y2FzZSA1OntsZXQgbD1yKG5ldyBNYXAscyk7Zm9yKGxldFtjLGRdb2YgbylsLnNldChhKGMpLGEoZCkpO3JldHVybiBsfWNhc2UgNjp7bGV0IGw9cihuZXcgU2V0LHMpO2ZvcihsZXQgYyBvZiBvKWwuYWRkKGEoYykpO3JldHVybiBsfWNhc2UgNzp7bGV0e25hbWU6bCxtZXNzYWdlOmN9PW87cmV0dXJuIHIobmV3IGhpcltsXShjKSxzKX1jYXNlIDg6cmV0dXJuIHIoQmlnSW50KG8pLHMpO2Nhc2UiQmlnSW50IjpyZXR1cm4gcihPYmplY3QoQmlnSW50KG8pKSxzKTtjYXNlIkFycmF5QnVmZmVyIjpyZXR1cm4gcihuZXcgVWludDhBcnJheShvKS5idWZmZXIsbyk7Y2FzZSJEYXRhVmlldyI6e2xldHtidWZmZXI6bH09bmV3IFVpbnQ4QXJyYXkobyk7cmV0dXJuIHIobmV3IERhdGFWaWV3KGwpLG8pfX1yZXR1cm4gcihuZXcgaGlyW25dKG8pLHMpfSwidW5wYWlyIik7cmV0dXJuIGF9LCJkZXNlcmlhbGl6ZXIiKSx6NGU9aSh0PT5aemEobmV3IE1hcCx0KSgwKSwiZGVzZXJpYWxpemUiKX0pO3ZhciBseSxRemEsWHphLFp6LF80ZSxKemEsVDRlLGdpcj11KCgpPT57TERlKCk7bHk9IiIse3RvU3RyaW5nOlF6YX09e30se2tleXM6WHphfT1PYmplY3QsWno9aSh0PT57bGV0IGU9dHlwZW9mIHQ7aWYoZSE9PSJvYmplY3QifHwhdClyZXR1cm5bMCxlXTtsZXQgcj1RemEuY2FsbCh0KS5zbGljZSg4LC0xKTtzd2l0Y2gocil7Y2FzZSJBcnJheSI6cmV0dXJuWzEsbHldO2Nhc2UiT2JqZWN0IjpyZXR1cm5bMixseV07Y2FzZSJEYXRlIjpyZXR1cm5bMyxseV07Y2FzZSJSZWdFeHAiOnJldHVybls0LGx5XTtjYXNlIk1hcCI6cmV0dXJuWzUsbHldO2Nhc2UiU2V0IjpyZXR1cm5bNixseV07Y2FzZSJEYXRhVmlldyI6cmV0dXJuWzEscl19cmV0dXJuIHIuaW5jbHVkZXMoIkFycmF5Iik/WzEscl06ci5pbmNsdWRlcygiRXJyb3IiKT9bNyxyXTpbMixyXX0sInR5cGVPZiIpLF80ZT1pKChbdCxlXSk9PnQ9PT0wJiYoZT09PSJmdW5jdGlvbiJ8fGU9PT0ic3ltYm9sIiksInNob3VsZFNraXAiKSxKemE9aSgodCxlLHIsYSk9PntsZXQgcz1pKChvLGwpPT57bGV0IGM9YS5wdXNoKG8pLTE7cmV0dXJuIHIuc2V0KGwsYyksY30sImFzIiksbj1pKG89PntpZihyLmhhcyhvKSlyZXR1cm4gci5nZXQobyk7bGV0W2wsY109Wnoobyk7c3dpdGNoKGwpe2Nhc2UgMDp7bGV0IGY9bztzd2l0Y2goYyl7Y2FzZSJiaWdpbnQiOmw9OCxmPW8udG9TdHJpbmcoKTticmVhaztjYXNlImZ1bmN0aW9uIjpjYXNlInN5bWJvbCI6aWYodCl0aHJvdyBuZXcgVHlwZUVycm9yKCJ1bmFibGUgdG8gc2VyaWFsaXplICIrYyk7Zj1udWxsO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4gcyhbLTFdLG8pfXJldHVybiBzKFtsLGZdLG8pfWNhc2UgMTp7aWYoYyl7bGV0IGg9bztyZXR1cm4gYz09PSJEYXRhVmlldyI/aD1uZXcgVWludDhBcnJheShvLmJ1ZmZlcik6Yz09PSJBcnJheUJ1ZmZlciImJihoPW5ldyBVaW50OEFycmF5KG8pKSxzKFtjLFsuLi5oXV0sbyl9bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXQgaCBvZiBvKWYucHVzaChuKGgpKTtyZXR1cm4gcH1jYXNlIDI6e2lmKGMpc3dpdGNoKGMpe2Nhc2UiQmlnSW50IjpyZXR1cm4gcyhbYyxvLnRvU3RyaW5nKCldLG8pO2Nhc2UiQm9vbGVhbiI6Y2FzZSJOdW1iZXIiOmNhc2UiU3RyaW5nIjpyZXR1cm4gcyhbYyxvLnZhbHVlT2YoKV0sbyl9aWYoZSYmInRvSlNPTiJpbiBvKXJldHVybiBuKG8udG9KU09OKCkpO2xldCBmPVtdLHA9cyhbbCxmXSxvKTtmb3IobGV0IGggb2YgWHphKG8pKSh0fHwhXzRlKFp6KG9baF0pKSkmJmYucHVzaChbbihoKSxuKG9baF0pXSk7cmV0dXJuIHB9Y2FzZSAzOnJldHVybiBzKFtsLG8udG9JU09TdHJpbmcoKV0sbyk7Y2FzZSA0OntsZXR7c291cmNlOmYsZmxhZ3M6cH09bztyZXR1cm4gcyhbbCx7c291cmNlOmYsZmxhZ3M6cH1dLG8pfWNhc2UgNTp7bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXRbaCxtXW9mIG8pKHR8fCEoXzRlKFp6KGgpKXx8XzRlKFp6KG0pKSkpJiZmLnB1c2goW24oaCksbihtKV0pO3JldHVybiBwfWNhc2UgNjp7bGV0IGY9W10scD1zKFtsLGZdLG8pO2ZvcihsZXQgaCBvZiBvKSh0fHwhXzRlKFp6KGgpKSkmJmYucHVzaChuKGgpKTtyZXR1cm4gcH19bGV0e21lc3NhZ2U6ZH09bztyZXR1cm4gcyhbbCx7bmFtZTpjLG1lc3NhZ2U6ZH1dLG8pfSwicGFpciIpO3JldHVybiBufSwic2VyaWFsaXplciIpLFQ0ZT1pKCh0LHtqc29uOmUsbG9zc3k6cn09e30pPT57bGV0IGE9W107cmV0dXJuIEp6YSghKGV8fHIpLCEhZSxuZXcgTWFwLGEpKHQpLGF9LCJzZXJpYWxpemUiKX0pO3ZhciBrcCxMNGU9dSgoKT0+e21pcigpO2dpcigpO2twPXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiI/KHQsZSk9PmUmJigianNvbiJpbiBlfHwibG9zc3kiaW4gZSk/ejRlKFQ0ZSh0LGUpKTpzdHJ1Y3R1cmVkQ2xvbmUodCk6KHQsZSk9Pno0ZShUNGUodCxlKSl9KTtmdW5jdGlvbiBiaXIodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyKXtsZXQgYT1yJiZyLnBvc2l0aW9uJiZyLnBvc2l0aW9uW3RdfHx7fTtpZih0eXBlb2YgYS5saW5lPT0ibnVtYmVyIiYmYS5saW5lPjAmJnR5cGVvZiBhLmNvbHVtbj09Im51bWJlciImJmEuY29sdW1uPjApcmV0dXJue2xpbmU6YS5saW5lLGNvbHVtbjphLmNvbHVtbixvZmZzZXQ6dHlwZW9mIGEub2Zmc2V0PT0ibnVtYmVyIiYmYS5vZmZzZXQ+LTE/YS5vZmZzZXQ6dm9pZCAwfX19ZnVuY3Rpb24gUXoodCl7bGV0IGU9JDRlKHQpLHI9RDRlKHQpO2lmKGUmJnIpcmV0dXJue3N0YXJ0OmUsZW5kOnJ9fXZhciBENGUsJDRlLHhpcj11KCgpPT57RDRlPWJpcigiZW5kIiksJDRlPWJpcigic3RhcnQiKTtpKGJpciwicG9pbnQiKTtpKFF6LCJwb3NpdGlvbiIpfSk7dmFyIEE0ZT11KCgpPT57eGlyKCl9KTt2YXIgcTYsRTRlLEVEZT11KCgpPT57cTY9WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSJdLEU0ZT17YW5jZXN0b3JzOnt0Ym9keTpbInRhYmxlIl0sdGQ6WyJ0YWJsZSJdLHRoOlsidGFibGUiXSx0aGVhZDpbInRhYmxlIl0sdGZvb3Q6WyJ0YWJsZSJdLHRyOlsidGFibGUiXX0sYXR0cmlidXRlczp7YTpbLi4ucTYsImRhdGFGb290bm90ZUJhY2tyZWYiLCJkYXRhRm9vdG5vdGVSZWYiLFsiY2xhc3NOYW1lIiwiZGF0YS1mb290bm90ZS1iYWNrcmVmIl0sImhyZWYiXSxibG9ja3F1b3RlOlsiY2l0ZSJdLGNvZGU6W1siY2xhc3NOYW1lIiwvXmxhbmd1YWdlLS4vXV0sZGVsOlsiY2l0ZSJdLGRpdjpbIml0ZW1TY29wZSIsIml0ZW1UeXBlIl0sZGw6Wy4uLnE2XSxoMjpbWyJjbGFzc05hbWUiLCJzci1vbmx5Il1dLGltZzpbLi4ucTYsImxvbmdEZXNjIiwic3JjIl0saW5wdXQ6W1siZGlzYWJsZWQiLCEwXSxbInR5cGUiLCJjaGVja2JveCJdXSxpbnM6WyJjaXRlIl0sbGk6W1siY2xhc3NOYW1lIiwidGFzay1saXN0LWl0ZW0iXV0sb2w6Wy4uLnE2LFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLHE6WyJjaXRlIl0sc2VjdGlvbjpbImRhdGFGb290bm90ZXMiLFsiY2xhc3NOYW1lIiwiZm9vdG5vdGVzIl1dLHNvdXJjZTpbInNyY1NldCJdLHN1bW1hcnk6Wy4uLnE2XSx0YWJsZTpbLi4ucTZdLHVsOlsuLi5xNixbImNsYXNzTmFtZSIsImNvbnRhaW5zLXRhc2stbGlzdCJdXSwiKiI6WyJhYmJyIiwiYWNjZXB0IiwiYWNjZXB0Q2hhcnNldCIsImFjY2Vzc0tleSIsImFjdGlvbiIsImFsaWduIiwiYWx0IiwiYXhpcyIsImJvcmRlciIsImNlbGxQYWRkaW5nIiwiY2VsbFNwYWNpbmciLCJjaGFyIiwiY2hhck9mZiIsImNoYXJTZXQiLCJjaGVja2VkIiwiY2xlYXIiLCJjb2xTcGFuIiwiY29sb3IiLCJjb2xzIiwiY29tcGFjdCIsImNvb3JkcyIsImRhdGVUaW1lIiwiZGlyIiwiZW5jVHlwZSIsImZyYW1lIiwiaFNwYWNlIiwiaGVhZGVycyIsImhlaWdodCIsImhyZWZMYW5nIiwiaHRtbEZvciIsImlkIiwiaXNNYXAiLCJpdGVtUHJvcCIsImxhYmVsIiwibGFuZyIsIm1heExlbmd0aCIsIm1lZGlhIiwibWV0aG9kIiwibXVsdGlwbGUiLCJuYW1lIiwibm9IcmVmIiwibm9TaGFkZSIsIm5vV3JhcCIsIm9wZW4iLCJwcm9tcHQiLCJyZWFkT25seSIsInJldiIsInJvd1NwYW4iLCJyb3dzIiwicnVsZXMiLCJzY29wZSIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic3BhbiIsInN0YXJ0Iiwic3VtbWFyeSIsInRhYkluZGV4IiwidGl0bGUiLCJ1c2VNYXAiLCJ2QWxpZ24iLCJ2YWx1ZSIsIndpZHRoIl19LGNsb2JiZXI6WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWxsZWRCeSIsImlkIiwibmFtZSJdLGNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLHByb3RvY29sczp7Y2l0ZTpbImh0dHAiLCJodHRwcyJdLGhyZWY6WyJodHRwIiwiaHR0cHMiLCJpcmMiLCJpcmNzIiwibWFpbHRvIiwieG1wcCJdLGxvbmdEZXNjOlsiaHR0cCIsImh0dHBzIl0sc3JjOlsiaHR0cCIsImh0dHBzIl19LHJlcXVpcmVkOntpbnB1dDp7ZGlzYWJsZWQ6ITAsdHlwZToiY2hlY2tib3gifX0sc3RyaXA6WyJzY3JpcHQiXSx0YWdOYW1lczpbImEiLCJiIiwiYmxvY2txdW90ZSIsImJyIiwiY29kZSIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRpdiIsImRsIiwiZHQiLCJlbSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhyIiwiaSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGkiLCJvbCIsInAiLCJwaWN0dXJlIiwicHJlIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNhbXAiLCJzZWN0aW9uIiwic291cmNlIiwic3BhbiIsInN0cmlrZSIsInN0cm9uZyIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0ciIsInR0IiwidWwiLCJ2YXIiXX19KTtmdW5jdGlvbiBJRGUodCxlKXtsZXQgcj17dHlwZToicm9vdCIsY2hpbGRyZW46W119LGE9e3NjaGVtYTplP3suLi5FNGUsLi4uZX06RTRlLHN0YWNrOltdfSxzPXZpcihhLHQpO3JldHVybiBzJiYoQXJyYXkuaXNBcnJheShzKT9zLmxlbmd0aD09PTE/cj1zWzBdOnIuY2hpbGRyZW49czpyPXMpLHJ9ZnVuY3Rpb24gdmlyKHQsZSl7aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QiKXtsZXQgcj1lO3N3aXRjaCh0eXBlb2Ygci50eXBlPT0ic3RyaW5nIj9yLnR5cGU6IiIpe2Nhc2UiY29tbWVudCI6cmV0dXJuIGVfYSh0LHIpO2Nhc2UiZG9jdHlwZSI6cmV0dXJuIHRfYSh0LHIpO2Nhc2UiZWxlbWVudCI6cmV0dXJuIHJfYSh0LHIpO2Nhc2Uicm9vdCI6cmV0dXJuIGFfYSh0LHIpO2Nhc2UidGV4dCI6cmV0dXJuIGlfYSh0LHIpO2RlZmF1bHQ6fX19ZnVuY3Rpb24gZV9hKHQsZSl7aWYodC5zY2hlbWEuYWxsb3dDb21tZW50cyl7bGV0IHI9dHlwZW9mIGUudmFsdWU9PSJzdHJpbmciP2UudmFsdWU6IiIsYT1yLmluZGV4T2YoIi0tPiIpLG49e3R5cGU6ImNvbW1lbnQiLHZhbHVlOmE8MD9yOnIuc2xpY2UoMCxhKX07cmV0dXJuIFh6KG4sZSksbn19ZnVuY3Rpb24gdF9hKHQsZSl7aWYodC5zY2hlbWEuYWxsb3dEb2N0eXBlcyl7bGV0IHI9e3R5cGU6ImRvY3R5cGUifTtyZXR1cm4gWHoocixlKSxyfX1mdW5jdGlvbiByX2EodCxlKXtsZXQgcj10eXBlb2YgZS50YWdOYW1lPT0ic3RyaW5nIj9lLnRhZ05hbWU6IiI7dC5zdGFjay5wdXNoKHIpO2xldCBhPXlpcih0LGUuY2hpbGRyZW4pLHM9c19hKHQsZS5wcm9wZXJ0aWVzKTt0LnN0YWNrLnBvcCgpO2xldCBuPSExO2lmKHImJnIhPT0iKiImJighdC5zY2hlbWEudGFnTmFtZXN8fHQuc2NoZW1hLnRhZ05hbWVzLmluY2x1ZGVzKHIpKSYmKG49ITAsdC5zY2hlbWEuYW5jZXN0b3JzJiZTcC5jYWxsKHQuc2NoZW1hLmFuY2VzdG9ycyxyKSkpe2xldCBsPXQuc2NoZW1hLmFuY2VzdG9yc1tyXSxjPS0xO2ZvcihuPSExOysrYzxsLmxlbmd0aDspdC5zdGFjay5pbmNsdWRlcyhsW2NdKSYmKG49ITApfWlmKCFuKXJldHVybiB0LnNjaGVtYS5zdHJpcCYmIXQuc2NoZW1hLnN0cmlwLmluY2x1ZGVzKHIpP2E6dm9pZCAwO2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOnIscHJvcGVydGllczpzLGNoaWxkcmVuOmF9O3JldHVybiBYeihvLGUpLG99ZnVuY3Rpb24gYV9hKHQsZSl7bGV0IGE9e3R5cGU6InJvb3QiLGNoaWxkcmVuOnlpcih0LGUuY2hpbGRyZW4pfTtyZXR1cm4gWHooYSxlKSxhfWZ1bmN0aW9uIGlfYSh0LGUpe2xldCBhPXt0eXBlOiJ0ZXh0Iix2YWx1ZTp0eXBlb2YgZS52YWx1ZT09InN0cmluZyI/ZS52YWx1ZToiIn07cmV0dXJuIFh6KGEsZSksYX1mdW5jdGlvbiB5aXIodCxlKXtsZXQgcj1bXTtpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgYT1lLHM9LTE7Zm9yKDsrK3M8YS5sZW5ndGg7KXtsZXQgbj12aXIodCxhW3NdKTtuJiYoQXJyYXkuaXNBcnJheShuKT9yLnB1c2goLi4ubik6ci5wdXNoKG4pKX19cmV0dXJuIHJ9ZnVuY3Rpb24gc19hKHQsZSl7bGV0IHI9dC5zdGFja1t0LnN0YWNrLmxlbmd0aC0xXSxhPXQuc2NoZW1hLmF0dHJpYnV0ZXMscz10LnNjaGVtYS5yZXF1aXJlZCxuPWEmJlNwLmNhbGwoYSxyKT9hW3JdOnZvaWQgMCxvPWEmJlNwLmNhbGwoYSwiKiIpP2FbIioiXTp2b2lkIDAsbD1lJiZ0eXBlb2YgZT09Im9iamVjdCI/ZTp7fSxjPXt9LGQ7Zm9yKGQgaW4gbClpZihTcC5jYWxsKGwsZCkpe2xldCBmPWxbZF0scD13aXIodCxTaXIobixkKSxkLGYpO3A9PW51bGwmJihwPXdpcih0LFNpcihvLGQpLGQsZikpLHAhPW51bGwmJihjW2RdPXApfWlmKHMmJlNwLmNhbGwocyxyKSl7bGV0IGY9c1tyXTtmb3IoZCBpbiBmKVNwLmNhbGwoZixkKSYmIVNwLmNhbGwoYyxkKSYmKGNbZF09ZltkXSl9cmV0dXJuIGN9ZnVuY3Rpb24gd2lyKHQsZSxyLGEpe3JldHVybiBlP0FycmF5LmlzQXJyYXkoYSk/bl9hKHQsZSxyLGEpOmtpcih0LGUscixhKTp2b2lkIDB9ZnVuY3Rpb24gbl9hKHQsZSxyLGEpe2xldCBzPS0xLG49W107Zm9yKDsrK3M8YS5sZW5ndGg7KXtsZXQgbz1raXIodCxlLHIsYVtzXSk7KHR5cGVvZiBvPT0ibnVtYmVyInx8dHlwZW9mIG89PSJzdHJpbmciKSYmbi5wdXNoKG8pfXJldHVybiBufWZ1bmN0aW9uIGtpcih0LGUscixhKXtpZighKHR5cGVvZiBhIT0iYm9vbGVhbiImJnR5cGVvZiBhIT0ibnVtYmVyIiYmdHlwZW9mIGEhPSJzdHJpbmciKSYmb19hKHQscixhKSl7aWYodHlwZW9mIGU9PSJvYmplY3QiJiZlLmxlbmd0aD4xKXtsZXQgcz0hMSxuPTA7Zm9yKDsrK248ZS5sZW5ndGg7KXtsZXQgbz1lW25dO2lmKG8mJnR5cGVvZiBvPT0ib2JqZWN0IiYmImZsYWdzImluIG8pe2lmKG8udGVzdChTdHJpbmcoYSkpKXtzPSEwO2JyZWFrfX1lbHNlIGlmKG89PT1hKXtzPSEwO2JyZWFrfX1pZighcylyZXR1cm59cmV0dXJuIHQuc2NoZW1hLmNsb2JiZXImJnQuc2NoZW1hLmNsb2JiZXJQcmVmaXgmJnQuc2NoZW1hLmNsb2JiZXIuaW5jbHVkZXMocik/dC5zY2hlbWEuY2xvYmJlclByZWZpeCthOmF9fWZ1bmN0aW9uIG9fYSh0LGUscil7bGV0IGE9dC5zY2hlbWEucHJvdG9jb2xzJiZTcC5jYWxsKHQuc2NoZW1hLnByb3RvY29scyxlKT90LnNjaGVtYS5wcm90b2NvbHNbZV06dm9pZCAwO2lmKCFhfHxhLmxlbmd0aD09PTApcmV0dXJuITA7bGV0IHM9U3RyaW5nKHIpLG49cy5pbmRleE9mKCI6Iiksbz1zLmluZGV4T2YoIj8iKSxsPXMuaW5kZXhPZigiIyIpLGM9cy5pbmRleE9mKCIvIik7aWYobjwwfHxjPi0xJiZuPmN8fG8+LTEmJm4+b3x8bD4tMSYmbj5sKXJldHVybiEwO2xldCBkPS0xO2Zvcig7KytkPGEubGVuZ3RoOyl7bGV0IGY9YVtkXTtpZihuPT09Zi5sZW5ndGgmJnMuc2xpY2UoMCxmLmxlbmd0aCk9PT1mKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIFh6KHQsZSl7bGV0IHI9UXooZSk7ZS5kYXRhJiYodC5kYXRhPWtwKGUuZGF0YSkpLHImJih0LnBvc2l0aW9uPXIpfWZ1bmN0aW9uIFNpcih0LGUpe2xldCByLGE9LTE7aWYodClmb3IoOysrYTx0Lmxlbmd0aDspe2xldCBzPXRbYV0sbj10eXBlb2Ygcz09InN0cmluZyI/czpzWzBdO2lmKG49PT1lKXJldHVybiBzO249PT0iZGF0YSoiJiYocj1zKX1pZihlLmxlbmd0aD40JiZlLnNsaWNlKDAsNCkudG9Mb3dlckNhc2UoKT09PSJkYXRhIilyZXR1cm4gcn12YXIgU3AsTWlyPXUoKCk9PntMNGUoKTtBNGUoKTtFRGUoKTtTcD17fS5oYXNPd25Qcm9wZXJ0eTtpKElEZSwic2FuaXRpemUiKTtpKHZpciwidHJhbnNmb3JtIik7aShlX2EsImNvbW1lbnQiKTtpKHRfYSwiZG9jdHlwZSIpO2kocl9hLCJlbGVtZW50Iik7aShhX2EsInJvb3QiKTtpKGlfYSwidGV4dCIpO2koeWlyLCJjaGlsZHJlbiIpO2koc19hLCJwcm9wZXJ0aWVzIik7aSh3aXIsInByb3BlcnR5VmFsdWUiKTtpKG5fYSwicHJvcGVydHlWYWx1ZU1hbnkiKTtpKGtpciwicHJvcGVydHlWYWx1ZVByaW1pdGl2ZSIpO2kob19hLCJzYWZlUHJvdG9jb2wiKTtpKFh6LCJwYXRjaCIpO2koU2lyLCJmaW5kRGVmaW5pdGlvbiIpfSk7dmFyIENpcj11KCgpPT57TWlyKCk7RURlKCl9KTtmdW5jdGlvbiB6aXIodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYmxvY2txdW90ZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAodC5hbGwoZSksITApfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIF9pcj11KCgpPT57aSh6aXIsImJsb2NrcXVvdGUiKX0pO2Z1bmN0aW9uIFRpcih0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJiciIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIHQucGF0Y2goZSxyKSxbdC5hcHBseURhdGEoZSxyKSx7dHlwZToidGV4dCIsdmFsdWU6YApgfV19dmFyIExpcj11KCgpPT57aShUaXIsImhhcmRCcmVhayIpfSk7ZnVuY3Rpb24gRGlyKHQsZSl7bGV0IHI9ZS52YWx1ZT9lLnZhbHVlK2AKYDoiIixhPXt9LHM9ZS5sYW5nP2UubGFuZy5zcGxpdCgvXHMrLyk6W107cy5sZW5ndGg+MCYmKGEuY2xhc3NOYW1lPVsibGFuZ3VhZ2UtIitzWzBdXSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6YSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOnJ9XX07cmV0dXJuIGUubWV0YSYmKG4uZGF0YT17bWV0YTplLm1ldGF9KSx0LnBhdGNoKGUsbiksbj10LmFwcGx5RGF0YShlLG4pLG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InByZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbbl19LHQucGF0Y2goZSxuKSxufXZhciAkaXI9dSgoKT0+e2koRGlyLCJjb2RlIil9KTtmdW5jdGlvbiBBaXIodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGVsIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIEVpcj11KCgpPT57aShBaXIsInN0cmlrZXRocm91Z2giKX0pO2Z1bmN0aW9uIElpcih0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJlbSIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBQaXI9dSgoKT0+e2koSWlyLCJlbXBoYXNpcyIpfSk7ZnVuY3Rpb24gTmlyKHQsZSl7bGV0IHI9dHlwZW9mIHQub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj90Lm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIsYT1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLHM9YWwoYS50b0xvd2VyQ2FzZSgpKSxuPXQuZm9vdG5vdGVPcmRlci5pbmRleE9mKGEpLG8sbD10LmZvb3Rub3RlQ291bnRzLmdldChhKTtsPT09dm9pZCAwPyhsPTAsdC5mb290bm90ZU9yZGVyLnB1c2goYSksbz10LmZvb3Rub3RlT3JkZXIubGVuZ3RoKTpvPW4rMSxsKz0xLHQuZm9vdG5vdGVDb3VudHMuc2V0KGEsbCk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK3IrImZuLSIrcyxpZDpyKyJmbnJlZi0iK3MrKGw+MT8iLSIrbDoiIiksZGF0YUZvb3Rub3RlUmVmOiEwLGFyaWFEZXNjcmliZWRCeTpbImZvb3Rub3RlLWxhYmVsIl19LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKG8pfV19O3QucGF0Y2goZSxjKTtsZXQgZD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltjXX07cmV0dXJuIHQucGF0Y2goZSxkKSx0LmFwcGx5RGF0YShlLGQpfXZhciBPaXI9dSgoKT0+e1owKCk7aShOaXIsImZvb3Rub3RlUmVmZXJlbmNlIil9KTtmdW5jdGlvbiBSaXIodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaCIrZS5kZXB0aCxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIEZpcj11KCgpPT57aShSaXIsImhlYWRpbmciKX0pO2Z1bmN0aW9uIEJpcih0LGUpe2lmKHQub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpe2xldCByPXt0eXBlOiJyYXciLHZhbHVlOmUudmFsdWV9O3JldHVybiB0LnBhdGNoKGUsciksdC5hcHBseURhdGEoZSxyKX19dmFyIEhpcj11KCgpPT57aShCaXIsImh0bWwiKX0pO2Z1bmN0aW9uIEk0ZSh0LGUpe2xldCByPWUucmVmZXJlbmNlVHlwZSxhPSJdIjtpZihyPT09ImNvbGxhcHNlZCI/YSs9IltdIjpyPT09ImZ1bGwiJiYoYSs9IlsiKyhlLmxhYmVsfHxlLmlkZW50aWZpZXIpKyJdIiksZS50eXBlPT09ImltYWdlUmVmZXJlbmNlIilyZXR1cm5be3R5cGU6InRleHQiLHZhbHVlOiIhWyIrZS5hbHQrYX1dO2xldCBzPXQuYWxsKGUpLG49c1swXTtuJiZuLnR5cGU9PT0idGV4dCI/bi52YWx1ZT0iWyIrbi52YWx1ZTpzLnVuc2hpZnQoe3R5cGU6InRleHQiLHZhbHVlOiJbIn0pO2xldCBvPXNbcy5sZW5ndGgtMV07cmV0dXJuIG8mJm8udHlwZT09PSJ0ZXh0Ij9vLnZhbHVlKz1hOnMucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YX0pLHN9dmFyIFBEZT11KCgpPT57aShJNGUsInJldmVydCIpfSk7ZnVuY3Rpb24gcWlyKHQsZSl7bGV0IHI9U3RyaW5nKGUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxhPXQuZGVmaW5pdGlvbkJ5SWQuZ2V0KHIpO2lmKCFhKXJldHVybiBJNGUodCxlKTtsZXQgcz17c3JjOmFsKGEudXJsfHwiIiksYWx0OmUuYWx0fTthLnRpdGxlIT09bnVsbCYmYS50aXRsZSE9PXZvaWQgMCYmKHMudGl0bGU9YS50aXRsZSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImltZyIscHJvcGVydGllczpzLGNoaWxkcmVuOltdfTtyZXR1cm4gdC5wYXRjaChlLG4pLHQuYXBwbHlEYXRhKGUsbil9dmFyIFZpcj11KCgpPT57WjAoKTtQRGUoKTtpKHFpciwiaW1hZ2VSZWZlcmVuY2UiKX0pO2Z1bmN0aW9uIGppcih0LGUpe2xldCByPXtzcmM6YWwoZS51cmwpfTtlLmFsdCE9PW51bGwmJmUuYWx0IT09dm9pZCAwJiYoci5hbHQ9ZS5hbHQpLGUudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1lLnRpdGxlKTtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46W119O3JldHVybiB0LnBhdGNoKGUsYSksdC5hcHBseURhdGEoZSxhKX12YXIgVWlyPXUoKCk9PntaMCgpO2koamlyLCJpbWFnZSIpfSk7ZnVuY3Rpb24gV2lyKHQsZSl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOmUudmFsdWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpfTt0LnBhdGNoKGUscik7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3JdfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIEdpcj11KCgpPT57aShXaXIsImlubGluZUNvZGUiKX0pO2Z1bmN0aW9uIFlpcih0LGUpe2xldCByPVN0cmluZyhlLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksYT10LmRlZmluaXRpb25CeUlkLmdldChyKTtpZighYSlyZXR1cm4gSTRlKHQsZSk7bGV0IHM9e2hyZWY6YWwoYS51cmx8fCIiKX07YS50aXRsZSE9PW51bGwmJmEudGl0bGUhPT12b2lkIDAmJihzLnRpdGxlPWEudGl0bGUpO2xldCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOnMsY2hpbGRyZW46dC5hbGwoZSl9O3JldHVybiB0LnBhdGNoKGUsbiksdC5hcHBseURhdGEoZSxuKX12YXIgS2lyPXUoKCk9PntaMCgpO1BEZSgpO2koWWlyLCJsaW5rUmVmZXJlbmNlIil9KTtmdW5jdGlvbiBaaXIodCxlKXtsZXQgcj17aHJlZjphbChlLnVybCl9O2UudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1lLnRpdGxlKTtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczpyLGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIFFpcj11KCgpPT57WjAoKTtpKFppciwibGluayIpfSk7ZnVuY3Rpb24gSmlyKHQsZSxyKXtsZXQgYT10LmFsbChlKSxzPXI/bF9hKHIpOlhpcihlKSxuPXt9LG89W107aWYodHlwZW9mIGUuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgZj1hWzBdLHA7ZiYmZi50eXBlPT09ImVsZW1lbnQiJiZmLnRhZ05hbWU9PT0icCI/cD1mOihwPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfSxhLnVuc2hpZnQocCkpLHAuY2hpbGRyZW4ubGVuZ3RoPjAmJnAuY2hpbGRyZW4udW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSkscC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbnB1dCIscHJvcGVydGllczp7dHlwZToiY2hlY2tib3giLGNoZWNrZWQ6ZS5jaGVja2VkLGRpc2FibGVkOiEwfSxjaGlsZHJlbjpbXX0pLG4uY2xhc3NOYW1lPVsidGFzay1saXN0LWl0ZW0iXX1sZXQgbD0tMTtmb3IoOysrbDxhLmxlbmd0aDspe2xldCBmPWFbbF07KHN8fGwhPT0wfHxmLnR5cGUhPT0iZWxlbWVudCJ8fGYudGFnTmFtZSE9PSJwIikmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksZi50eXBlPT09ImVsZW1lbnQiJiZmLnRhZ05hbWU9PT0icCImJiFzP28ucHVzaCguLi5mLmNoaWxkcmVuKTpvLnB1c2goZil9bGV0IGM9YVthLmxlbmd0aC0xXTtjJiYoc3x8Yy50eXBlIT09ImVsZW1lbnQifHxjLnRhZ05hbWUhPT0icCIpJiZvLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pO2xldCBkPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczpuLGNoaWxkcmVuOm99O3JldHVybiB0LnBhdGNoKGUsZCksdC5hcHBseURhdGEoZSxkKX1mdW5jdGlvbiBsX2EodCl7bGV0IGU9ITE7aWYodC50eXBlPT09Imxpc3QiKXtlPXQuc3ByZWFkfHwhMTtsZXQgcj10LmNoaWxkcmVuLGE9LTE7Zm9yKDshZSYmKythPHIubGVuZ3RoOyllPVhpcihyW2FdKX1yZXR1cm4gZX1mdW5jdGlvbiBYaXIodCl7bGV0IGU9dC5zcHJlYWQ7cmV0dXJuIGU/P3QuY2hpbGRyZW4ubGVuZ3RoPjF9dmFyIGVzcj11KCgpPT57aShKaXIsImxpc3RJdGVtIik7aShsX2EsImxpc3RMb29zZSIpO2koWGlyLCJsaXN0SXRlbUxvb3NlIil9KTtmdW5jdGlvbiB0c3IodCxlKXtsZXQgcj17fSxhPXQuYWxsKGUpLHM9LTE7Zm9yKHR5cGVvZiBlLnN0YXJ0PT0ibnVtYmVyIiYmZS5zdGFydCE9PTEmJihyLnN0YXJ0PWUuc3RhcnQpOysrczxhLmxlbmd0aDspe2xldCBvPWFbc107aWYoby50eXBlPT09ImVsZW1lbnQiJiZvLnRhZ05hbWU9PT0ibGkiJiZvLnByb3BlcnRpZXMmJkFycmF5LmlzQXJyYXkoby5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkmJm8ucHJvcGVydGllcy5jbGFzc05hbWUuaW5jbHVkZXMoInRhc2stbGlzdC1pdGVtIikpe3IuY2xhc3NOYW1lPVsiY29udGFpbnMtdGFzay1saXN0Il07YnJlYWt9fWxldCBuPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOmUub3JkZXJlZD8ib2wiOiJ1bCIscHJvcGVydGllczpyLGNoaWxkcmVuOnQud3JhcChhLCEwKX07cmV0dXJuIHQucGF0Y2goZSxuKSx0LmFwcGx5RGF0YShlLG4pfXZhciByc3I9dSgoKT0+e2kodHNyLCJsaXN0Iil9KTtmdW5jdGlvbiBhc3IodCxlKXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBpc3I9dSgoKT0+e2koYXNyLCJwYXJhZ3JhcGgiKX0pO2Z1bmN0aW9uIHNzcih0LGUpe2xldCByPXt0eXBlOiJyb290IixjaGlsZHJlbjp0LndyYXAodC5hbGwoZSkpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIG5zcj11KCgpPT57aShzc3IsInJvb3QiKX0pO2Z1bmN0aW9uIG9zcih0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdHJvbmciLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC5hbGwoZSl9O3JldHVybiB0LnBhdGNoKGUsciksdC5hcHBseURhdGEoZSxyKX12YXIgbHNyPXUoKCk9PntpKG9zciwic3Ryb25nIil9KTtmdW5jdGlvbiBjc3IodCxlKXtsZXQgcj10LmFsbChlKSxhPXIuc2hpZnQoKSxzPVtdO2lmKGEpe2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0aGVhZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAoW2FdLCEwKX07dC5wYXRjaChlLmNoaWxkcmVuWzBdLG8pLHMucHVzaChvKX1pZihyLmxlbmd0aD4wKXtsZXQgbz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGJvZHkiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKHIsITApfSxsPSQ0ZShlLmNoaWxkcmVuWzFdKSxjPUQ0ZShlLmNoaWxkcmVuW2UuY2hpbGRyZW4ubGVuZ3RoLTFdKTtsJiZjJiYoby5wb3NpdGlvbj17c3RhcnQ6bCxlbmQ6Y30pLHMucHVzaChvKX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGFibGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKHMsITApfTtyZXR1cm4gdC5wYXRjaChlLG4pLHQuYXBwbHlEYXRhKGUsbil9dmFyIGRzcj11KCgpPT57QTRlKCk7aShjc3IsInRhYmxlIil9KTtmdW5jdGlvbiB1c3IodCxlLHIpe2xldCBhPXI/ci5jaGlsZHJlbjp2b2lkIDAsbj0oYT9hLmluZGV4T2YoZSk6MSk9PT0wPyJ0aCI6InRkIixvPXImJnIudHlwZT09PSJ0YWJsZSI/ci5hbGlnbjp2b2lkIDAsbD1vP28ubGVuZ3RoOmUuY2hpbGRyZW4ubGVuZ3RoLGM9LTEsZD1bXTtmb3IoOysrYzxsOyl7bGV0IHA9ZS5jaGlsZHJlbltjXSxoPXt9LG09bz9vW2NdOnZvaWQgMDttJiYoaC5hbGlnbj1tKTtsZXQgdj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTpuLHByb3BlcnRpZXM6aCxjaGlsZHJlbjpbXX07cCYmKHYuY2hpbGRyZW49dC5hbGwocCksdC5wYXRjaChwLHYpLHY9dC5hcHBseURhdGEocCx2KSksZC5wdXNoKHYpfWxldCBmPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ciIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAoZCwhMCl9O3JldHVybiB0LnBhdGNoKGUsZiksdC5hcHBseURhdGEoZSxmKX12YXIgcHNyPXUoKCk9PntpKHVzciwidGFibGVSb3ciKX0pO2Z1bmN0aW9uIGZzcih0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBoc3I9dSgoKT0+e2koZnNyLCJ0YWJsZUNlbGwiKX0pO2Z1bmN0aW9uIGdzcih0KXtsZXQgZT1TdHJpbmcodCkscj0vXHI/XG58XHIvZyxhPXIuZXhlYyhlKSxzPTAsbj1bXTtmb3IoO2E7KW4ucHVzaChtc3IoZS5zbGljZShzLGEuaW5kZXgpLHM+MCwhMCksYVswXSkscz1hLmluZGV4K2FbMF0ubGVuZ3RoLGE9ci5leGVjKGUpO3JldHVybiBuLnB1c2gobXNyKGUuc2xpY2Uocykscz4wLCExKSksbi5qb2luKCIiKX1mdW5jdGlvbiBtc3IodCxlLHIpe2xldCBhPTAscz10Lmxlbmd0aDtpZihlKXtsZXQgbj10LmNvZGVQb2ludEF0KGEpO2Zvcig7bj09PTl8fG49PT0zMjspYSsrLG49dC5jb2RlUG9pbnRBdChhKX1pZihyKXtsZXQgbj10LmNvZGVQb2ludEF0KHMtMSk7Zm9yKDtuPT09OXx8bj09PTMyOylzLS0sbj10LmNvZGVQb2ludEF0KHMtMSl9cmV0dXJuIHM+YT90LnNsaWNlKGEscyk6IiJ9dmFyIGNtbixkbW4sYnNyPXUoKCk9PntjbW49OSxkbW49MzI7aShnc3IsInRyaW1MaW5lcyIpO2kobXNyLCJ0cmltTGluZSIpfSk7ZnVuY3Rpb24geHNyKHQsZSl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOmdzcihTdHJpbmcoZS52YWx1ZSkpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIHZzcj11KCgpPT57YnNyKCk7aSh4c3IsInRleHQiKX0pO2Z1bmN0aW9uIHlzcih0LGUpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJociIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciB3c3I9dSgoKT0+e2koeXNyLCJ0aGVtYXRpY0JyZWFrIil9KTtmdW5jdGlvbiBQNGUoKXt9dmFyIE5EZSxPRGU9dSgoKT0+e19pcigpO0xpcigpOyRpcigpO0VpcigpO1BpcigpO09pcigpO0ZpcigpO0hpcigpO1ZpcigpO1VpcigpO0dpcigpO0tpcigpO1FpcigpO2VzcigpO3JzcigpO2lzcigpO25zcigpO2xzcigpO2RzcigpO3BzcigpO2hzcigpO3ZzcigpO3dzcigpO05EZT17YmxvY2txdW90ZTp6aXIsYnJlYWs6VGlyLGNvZGU6RGlyLGRlbGV0ZTpBaXIsZW1waGFzaXM6SWlyLGZvb3Rub3RlUmVmZXJlbmNlOk5pcixoZWFkaW5nOlJpcixodG1sOkJpcixpbWFnZVJlZmVyZW5jZTpxaXIsaW1hZ2U6amlyLGlubGluZUNvZGU6V2lyLGxpbmtSZWZlcmVuY2U6WWlyLGxpbms6WmlyLGxpc3RJdGVtOkppcixsaXN0OnRzcixwYXJhZ3JhcGg6YXNyLHJvb3Q6c3NyLHN0cm9uZzpvc3IsdGFibGU6Y3NyLHRhYmxlQ2VsbDpmc3IsdGFibGVSb3c6dXNyLHRleHQ6eHNyLHRoZW1hdGljQnJlYWs6eXNyLHRvbWw6UDRlLHlhbWw6UDRlLGRlZmluaXRpb246UDRlLGZvb3Rub3RlRGVmaW5pdGlvbjpQNGV9O2koUDRlLCJpZ25vcmUiKX0pO2Z1bmN0aW9uIGtzcih0LGUpe2xldCByPVt7dHlwZToidGV4dCIsdmFsdWU6Ilx1MjFBOSJ9XTtyZXR1cm4gZT4xJiZyLnB1c2goe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN1cCIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOlN0cmluZyhlKX1dfSkscn1mdW5jdGlvbiBTc3IodCxlKXtyZXR1cm4iQmFjayB0byByZWZlcmVuY2UgIisodCsxKSsoZT4xPyItIitlOiIiKX1mdW5jdGlvbiBNc3IodCl7bGV0IGU9dHlwZW9mIHQub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj90Lm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIscj10Lm9wdGlvbnMuZm9vdG5vdGVCYWNrQ29udGVudHx8a3NyLGE9dC5vcHRpb25zLmZvb3Rub3RlQmFja0xhYmVsfHxTc3Iscz10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbHx8IkZvb3Rub3RlcyIsbj10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbFRhZ05hbWV8fCJoMiIsbz10Lm9wdGlvbnMuZm9vdG5vdGVMYWJlbFByb3BlcnRpZXN8fHtjbGFzc05hbWU6WyJzci1vbmx5Il19LGw9W10sYz0tMTtmb3IoOysrYzx0LmZvb3Rub3RlT3JkZXIubGVuZ3RoOyl7bGV0IGQ9dC5mb290bm90ZUJ5SWQuZ2V0KHQuZm9vdG5vdGVPcmRlcltjXSk7aWYoIWQpY29udGludWU7bGV0IGY9dC5hbGwoZCkscD1TdHJpbmcoZC5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGg9YWwocC50b0xvd2VyQ2FzZSgpKSxtPTAsdj1bXSxiPXQuZm9vdG5vdGVDb3VudHMuZ2V0KHApO2Zvcig7YiE9PXZvaWQgMCYmKyttPD1iOyl7di5sZW5ndGg+MCYmdi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KTtsZXQgaz10eXBlb2Ygcj09InN0cmluZyI/cjpyKGMsbSk7dHlwZW9mIGs9PSJzdHJpbmciJiYoaz17dHlwZToidGV4dCIsdmFsdWU6a30pLHYucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczp7aHJlZjoiIyIrZSsiZm5yZWYtIitoKyhtPjE/Ii0iK206IiIpLGRhdGFGb290bm90ZUJhY2tyZWY6IiIsYXJpYUxhYmVsOnR5cGVvZiBhPT0ic3RyaW5nIj9hOmEoYyxtKSxjbGFzc05hbWU6WyJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiXX0sY2hpbGRyZW46QXJyYXkuaXNBcnJheShrKT9rOltrXX0pfWxldCBnPWZbZi5sZW5ndGgtMV07aWYoZyYmZy50eXBlPT09ImVsZW1lbnQiJiZnLnRhZ05hbWU9PT0icCIpe2xldCBrPWcuY2hpbGRyZW5bZy5jaGlsZHJlbi5sZW5ndGgtMV07ayYmay50eXBlPT09InRleHQiP2sudmFsdWUrPSIgIjpnLmNoaWxkcmVuLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pLGcuY2hpbGRyZW4ucHVzaCguLi52KX1lbHNlIGYucHVzaCguLi52KTtsZXQgeT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToibGkiLHByb3BlcnRpZXM6e2lkOmUrImZuLSIraH0sY2hpbGRyZW46dC53cmFwKGYsITApfTt0LnBhdGNoKGQseSksbC5wdXNoKHkpfWlmKGwubGVuZ3RoIT09MClyZXR1cm57dHlwZToiZWxlbWVudCIsdGFnTmFtZToic2VjdGlvbiIscHJvcGVydGllczp7ZGF0YUZvb3Rub3RlczohMCxjbGFzc05hbWU6WyJmb290bm90ZXMiXX0sY2hpbGRyZW46W3t0eXBlOiJlbGVtZW50Iix0YWdOYW1lOm4scHJvcGVydGllczp7Li4ua3AobyksaWQ6ImZvb3Rub3RlLWxhYmVsIn0sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpzfV19LHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9LHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJvbCIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAobCwhMCl9LHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9XX19dmFyIFJEZT11KCgpPT57TDRlKCk7WjAoKTtpKGtzciwiZGVmYXVsdEZvb3Rub3RlQmFja0NvbnRlbnQiKTtpKFNzciwiZGVmYXVsdEZvb3Rub3RlQmFja0xhYmVsIik7aShNc3IsImZvb3RlciIpfSk7ZnVuY3Rpb24genNyKHQsZSl7bGV0IHI9ZXx8Y19hLGE9bmV3IE1hcCxzPW5ldyBNYXAsbj1uZXcgTWFwLG89ey4uLk5EZSwuLi5yLmhhbmRsZXJzfSxsPXthbGw6ZCxhcHBseURhdGE6dV9hLGRlZmluaXRpb25CeUlkOmEsZm9vdG5vdGVCeUlkOnMsZm9vdG5vdGVDb3VudHM6bixmb290bm90ZU9yZGVyOltdLGhhbmRsZXJzOm8sb25lOmMsb3B0aW9uczpyLHBhdGNoOmRfYSx3cmFwOmZfYX07cmV0dXJuIE56KHQsZnVuY3Rpb24oZil7aWYoZi50eXBlPT09ImRlZmluaXRpb24ifHxmLnR5cGU9PT0iZm9vdG5vdGVEZWZpbml0aW9uIil7bGV0IHA9Zi50eXBlPT09ImRlZmluaXRpb24iP2E6cyxoPVN0cmluZyhmLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCk7cC5oYXMoaCl8fHAuc2V0KGgsZil9fSksbDtmdW5jdGlvbiBjKGYscCl7bGV0IGg9Zi50eXBlLG09bC5oYW5kbGVyc1toXTtpZihGRGUuY2FsbChsLmhhbmRsZXJzLGgpJiZtKXJldHVybiBtKGwsZixwKTtpZihsLm9wdGlvbnMucGFzc1Rocm91Z2gmJmwub3B0aW9ucy5wYXNzVGhyb3VnaC5pbmNsdWRlcyhoKSl7aWYoImNoaWxkcmVuImluIGYpe2xldHtjaGlsZHJlbjpiLC4uLmd9PWYseT1rcChnKTtyZXR1cm4geS5jaGlsZHJlbj1sLmFsbChmKSx5fXJldHVybiBrcChmKX1yZXR1cm4obC5vcHRpb25zLnVua25vd25IYW5kbGVyfHxwX2EpKGwsZixwKX1pKGMsIm9uZSIpO2Z1bmN0aW9uIGQoZil7bGV0IHA9W107aWYoImNoaWxkcmVuImluIGYpe2xldCBoPWYuY2hpbGRyZW4sbT0tMTtmb3IoOysrbTxoLmxlbmd0aDspe2xldCB2PWwub25lKGhbbV0sZik7aWYodil7aWYobSYmaFttLTFdLnR5cGU9PT0iYnJlYWsiJiYoIUFycmF5LmlzQXJyYXkodikmJnYudHlwZT09PSJ0ZXh0IiYmKHYudmFsdWU9Q3NyKHYudmFsdWUpKSwhQXJyYXkuaXNBcnJheSh2KSYmdi50eXBlPT09ImVsZW1lbnQiKSl7bGV0IGI9di5jaGlsZHJlblswXTtiJiZiLnR5cGU9PT0idGV4dCImJihiLnZhbHVlPUNzcihiLnZhbHVlKSl9QXJyYXkuaXNBcnJheSh2KT9wLnB1c2goLi4udik6cC5wdXNoKHYpfX19cmV0dXJuIHB9aShkLCJhbGwiKX1mdW5jdGlvbiBkX2EodCxlKXt0LnBvc2l0aW9uJiYoZS5wb3NpdGlvbj1Reih0KSl9ZnVuY3Rpb24gdV9hKHQsZSl7bGV0IHI9ZTtpZih0JiZ0LmRhdGEpe2xldCBhPXQuZGF0YS5oTmFtZSxzPXQuZGF0YS5oQ2hpbGRyZW4sbj10LmRhdGEuaFByb3BlcnRpZXM7aWYodHlwZW9mIGE9PSJzdHJpbmciKWlmKHIudHlwZT09PSJlbGVtZW50IilyLnRhZ05hbWU9YTtlbHNle2xldCBvPSJjaGlsZHJlbiJpbiByP3IuY2hpbGRyZW46W3JdO3I9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6YSxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOm99fXIudHlwZT09PSJlbGVtZW50IiYmbiYmT2JqZWN0LmFzc2lnbihyLnByb3BlcnRpZXMsa3AobikpLCJjaGlsZHJlbiJpbiByJiZyLmNoaWxkcmVuJiZzIT09bnVsbCYmcyE9PXZvaWQgMCYmKHIuY2hpbGRyZW49cyl9cmV0dXJuIHJ9ZnVuY3Rpb24gcF9hKHQsZSl7bGV0IHI9ZS5kYXRhfHx7fSxhPSJ2YWx1ZSJpbiBlJiYhKEZEZS5jYWxsKHIsImhQcm9wZXJ0aWVzIil8fEZEZS5jYWxsKHIsImhDaGlsZHJlbiIpKT97dHlwZToidGV4dCIsdmFsdWU6ZS52YWx1ZX06e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImRpdiIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxhKSx0LmFwcGx5RGF0YShlLGEpfWZ1bmN0aW9uIGZfYSh0LGUpe2xldCByPVtdLGE9LTE7Zm9yKGUmJnIucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7KythPHQubGVuZ3RoOylhJiZyLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLHIucHVzaCh0W2FdKTtyZXR1cm4gZSYmdC5sZW5ndGg+MCYmci5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxyfWZ1bmN0aW9uIENzcih0KXtsZXQgZT0wLHI9dC5jaGFyQ29kZUF0KGUpO2Zvcig7cj09PTl8fHI9PT0zMjspZSsrLHI9dC5jaGFyQ29kZUF0KGUpO3JldHVybiB0LnNsaWNlKGUpfXZhciBGRGUsY19hLF9zcj11KCgpPT57TDRlKCk7ZExlKCk7QTRlKCk7T0RlKCk7RkRlPXt9Lmhhc093blByb3BlcnR5LGNfYT17fTtpKHpzciwiY3JlYXRlU3RhdGUiKTtpKGRfYSwicGF0Y2giKTtpKHVfYSwiYXBwbHlEYXRhIik7aShwX2EsImRlZmF1bHRVbmtub3duSGFuZGxlciIpO2koZl9hLCJ3cmFwIik7aShDc3IsInRyaW1NYXJrZG93blNwYWNlU3RhcnQiKX0pO2Z1bmN0aW9uIEJEZSh0LGUpe2xldCByPXpzcih0LGUpLGE9ci5vbmUodCx2b2lkIDApLHM9TXNyKHIpLG49QXJyYXkuaXNBcnJheShhKT97dHlwZToicm9vdCIsY2hpbGRyZW46YX06YXx8e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfTtyZXR1cm4gcyYmKCJjaGlsZHJlbiJpbiBuLG4uY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSxzKSksbn12YXIgVHNyPXUoKCk9PnttcCgpO1JEZSgpO19zcigpO2koQkRlLCJ0b0hhc3QiKX0pO3ZhciBMc3I9dSgoKT0+e09EZSgpO1RzcigpO1JEZSgpfSk7dmFyIERzciwkc3I9dSgoKT0+e0Rzcj1bImFyZWEiLCJiYXNlIiwiYmFzZWZvbnQiLCJiZ3NvdW5kIiwiYnIiLCJjb2wiLCJjb21tYW5kIiwiZW1iZWQiLCJmcmFtZSIsImhyIiwiaW1hZ2UiLCJpbWciLCJpbnB1dCIsImtleWdlbiIsImxpbmsiLCJtZXRhIiwicGFyYW0iLCJzb3VyY2UiLCJ0cmFjayIsIndiciJdfSk7dmFyIEE0LEhEZT11KCgpPT57QTQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU2NoZW1hIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMubm9ybWFsPXIsdGhpcy5wcm9wZXJ0eT1lLGEmJih0aGlzLnNwYWNlPWEpfX07QTQucHJvdG90eXBlLm5vcm1hbD17fSxBNC5wcm90b3R5cGUucHJvcGVydHk9e30sQTQucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO2Z1bmN0aW9uIHFEZSh0LGUpe2xldCByPXt9LGE9e307Zm9yKGxldCBzIG9mIHQpT2JqZWN0LmFzc2lnbihyLHMucHJvcGVydHkpLE9iamVjdC5hc3NpZ24oYSxzLm5vcm1hbCk7cmV0dXJuIG5ldyBBNChyLGEsZSl9dmFyIEFzcj11KCgpPT57SERlKCk7aShxRGUsIm1lcmdlIil9KTtmdW5jdGlvbiBjeSh0KXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfXZhciBONGU9dSgoKT0+e2koY3ksIm5vcm1hbGl6ZSIpfSk7dmFyIHhuLFZEZT11KCgpPT57eG49Y2xhc3N7c3RhdGlje2kodGhpcywiSW5mbyIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5hdHRyaWJ1dGU9cix0aGlzLnByb3BlcnR5PWV9fTt4bi5wcm90b3R5cGUuYXR0cmlidXRlPSIiLHhuLnByb3RvdHlwZS5ib29sZWFuaXNoPSExLHhuLnByb3RvdHlwZS5ib29sZWFuPSExLHhuLnByb3RvdHlwZS5jb21tYU9yU3BhY2VTZXBhcmF0ZWQ9ITEseG4ucHJvdG90eXBlLmNvbW1hU2VwYXJhdGVkPSExLHhuLnByb3RvdHlwZS5kZWZpbmVkPSExLHhuLnByb3RvdHlwZS5tdXN0VXNlUHJvcGVydHk9ITEseG4ucHJvdG90eXBlLm51bWJlcj0hMSx4bi5wcm90b3R5cGUub3ZlcmxvYWRlZEJvb2xlYW49ITEseG4ucHJvdG90eXBlLnByb3BlcnR5PSIiLHhuLnByb3RvdHlwZS5zcGFjZVNlcGFyYXRlZD0hMSx4bi5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7dmFyIEp6PXt9O1ZlKEp6LHtib29sZWFuOigpPT5ocixib29sZWFuaXNoOigpPT5xaSxjb21tYU9yU3BhY2VTZXBhcmF0ZWQ6KCk9PkwxLGNvbW1hU2VwYXJhdGVkOigpPT5NcCxudW1iZXI6KCk9PmF0LG92ZXJsb2FkZWRCb29sZWFuOigpPT5PNGUsc3BhY2VTZXBhcmF0ZWQ6KCk9PlZhfSk7ZnVuY3Rpb24gVjYoKXtyZXR1cm4gMioqKytoX2F9dmFyIGhfYSxocixxaSxPNGUsYXQsVmEsTXAsTDEsZV89dSgoKT0+e2hfYT0wLGhyPVY2KCkscWk9VjYoKSxPNGU9VjYoKSxhdD1WNigpLFZhPVY2KCksTXA9VjYoKSxMMT1WNigpO2koVjYsImluY3JlbWVudCIpfSk7ZnVuY3Rpb24gRXNyKHQsZSxyKXtyJiYodFtlXT1yKX12YXIgakRlLGo2LFVEZT11KCgpPT57VkRlKCk7ZV8oKTtqRGU9T2JqZWN0LmtleXMoSnopLGo2PWNsYXNzIGV4dGVuZHMgeG57c3RhdGlje2kodGhpcywiRGVmaW5lZEluZm8iKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXtsZXQgbj0tMTtpZihzdXBlcihlLHIpLEVzcih0aGlzLCJzcGFjZSIscyksdHlwZW9mIGE9PSJudW1iZXIiKWZvcig7KytuPGpEZS5sZW5ndGg7KXtsZXQgbz1qRGVbbl07RXNyKHRoaXMsakRlW25dLChhJkp6W29dKT09PUp6W29dKX19fTtqNi5wcm90b3R5cGUuZGVmaW5lZD0hMDtpKEVzciwibWFyayIpfSk7ZnVuY3Rpb24gV2wodCl7bGV0IGU9e30scj17fTtmb3IobGV0W2Esc11vZiBPYmplY3QuZW50cmllcyh0LnByb3BlcnRpZXMpKXtsZXQgbj1uZXcgajYoYSx0LnRyYW5zZm9ybSh0LmF0dHJpYnV0ZXN8fHt9LGEpLHMsdC5zcGFjZSk7dC5tdXN0VXNlUHJvcGVydHkmJnQubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKGEpJiYobi5tdXN0VXNlUHJvcGVydHk9ITApLGVbYV09bixyW2N5KGEpXT1hLHJbY3kobi5hdHRyaWJ1dGUpXT1hfXJldHVybiBuZXcgQTQoZSxyLHQuc3BhY2UpfXZhciBVNj11KCgpPT57TjRlKCk7VURlKCk7SERlKCk7aShXbCwiY3JlYXRlIil9KTt2YXIgV0RlLElzcj11KCgpPT57VTYoKTtlXygpO1dEZT1XbCh7cHJvcGVydGllczp7YXJpYUFjdGl2ZURlc2NlbmRhbnQ6bnVsbCxhcmlhQXRvbWljOnFpLGFyaWFBdXRvQ29tcGxldGU6bnVsbCxhcmlhQnVzeTpxaSxhcmlhQ2hlY2tlZDpxaSxhcmlhQ29sQ291bnQ6YXQsYXJpYUNvbEluZGV4OmF0LGFyaWFDb2xTcGFuOmF0LGFyaWFDb250cm9sczpWYSxhcmlhQ3VycmVudDpudWxsLGFyaWFEZXNjcmliZWRCeTpWYSxhcmlhRGV0YWlsczpudWxsLGFyaWFEaXNhYmxlZDpxaSxhcmlhRHJvcEVmZmVjdDpWYSxhcmlhRXJyb3JNZXNzYWdlOm51bGwsYXJpYUV4cGFuZGVkOnFpLGFyaWFGbG93VG86VmEsYXJpYUdyYWJiZWQ6cWksYXJpYUhhc1BvcHVwOm51bGwsYXJpYUhpZGRlbjpxaSxhcmlhSW52YWxpZDpudWxsLGFyaWFLZXlTaG9ydGN1dHM6bnVsbCxhcmlhTGFiZWw6bnVsbCxhcmlhTGFiZWxsZWRCeTpWYSxhcmlhTGV2ZWw6YXQsYXJpYUxpdmU6bnVsbCxhcmlhTW9kYWw6cWksYXJpYU11bHRpTGluZTpxaSxhcmlhTXVsdGlTZWxlY3RhYmxlOnFpLGFyaWFPcmllbnRhdGlvbjpudWxsLGFyaWFPd25zOlZhLGFyaWFQbGFjZWhvbGRlcjpudWxsLGFyaWFQb3NJblNldDphdCxhcmlhUHJlc3NlZDpxaSxhcmlhUmVhZE9ubHk6cWksYXJpYVJlbGV2YW50Om51bGwsYXJpYVJlcXVpcmVkOnFpLGFyaWFSb2xlRGVzY3JpcHRpb246VmEsYXJpYVJvd0NvdW50OmF0LGFyaWFSb3dJbmRleDphdCxhcmlhUm93U3BhbjphdCxhcmlhU2VsZWN0ZWQ6cWksYXJpYVNldFNpemU6YXQsYXJpYVNvcnQ6bnVsbCxhcmlhVmFsdWVNYXg6YXQsYXJpYVZhbHVlTWluOmF0LGFyaWFWYWx1ZU5vdzphdCxhcmlhVmFsdWVUZXh0Om51bGwscm9sZTpudWxsfSx0cmFuc2Zvcm0odCxlKXtyZXR1cm4gZT09PSJyb2xlIj9lOiJhcmlhLSIrZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpfX0pfSk7ZnVuY3Rpb24gUjRlKHQsZSl7cmV0dXJuIGUgaW4gdD90W2VdOmV9dmFyIEdEZT11KCgpPT57aShSNGUsImNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0iKX0pO2Z1bmN0aW9uIEY0ZSh0LGUpe3JldHVybiBSNGUodCxlLnRvTG93ZXJDYXNlKCkpfXZhciBZRGU9dSgoKT0+e0dEZSgpO2koRjRlLCJjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0iKX0pO3ZhciBQc3IsTnNyPXUoKCk9PntZRGUoKTtVNigpO2VfKCk7UHNyPVdsKHthdHRyaWJ1dGVzOnthY2NlcHRjaGFyc2V0OiJhY2NlcHQtY2hhcnNldCIsY2xhc3NuYW1lOiJjbGFzcyIsaHRtbGZvcjoiZm9yIixodHRwZXF1aXY6Imh0dHAtZXF1aXYifSxtdXN0VXNlUHJvcGVydHk6WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0scHJvcGVydGllczp7YWJicjpudWxsLGFjY2VwdDpNcCxhY2NlcHRDaGFyc2V0OlZhLGFjY2Vzc0tleTpWYSxhY3Rpb246bnVsbCxhbGxvdzpudWxsLGFsbG93RnVsbFNjcmVlbjpocixhbGxvd1BheW1lbnRSZXF1ZXN0OmhyLGFsbG93VXNlck1lZGlhOmhyLGFsdDpudWxsLGFzOm51bGwsYXN5bmM6aHIsYXV0b0NhcGl0YWxpemU6bnVsbCxhdXRvQ29tcGxldGU6VmEsYXV0b0ZvY3VzOmhyLGF1dG9QbGF5OmhyLGJsb2NraW5nOlZhLGNhcHR1cmU6bnVsbCxjaGFyU2V0Om51bGwsY2hlY2tlZDpocixjaXRlOm51bGwsY2xhc3NOYW1lOlZhLGNvbHM6YXQsY29sU3BhbjpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50RWRpdGFibGU6cWksY29udHJvbHM6aHIsY29udHJvbHNMaXN0OlZhLGNvb3JkczphdHxNcCxjcm9zc09yaWdpbjpudWxsLGRhdGE6bnVsbCxkYXRlVGltZTpudWxsLGRlY29kaW5nOm51bGwsZGVmYXVsdDpocixkZWZlcjpocixkaXI6bnVsbCxkaXJOYW1lOm51bGwsZGlzYWJsZWQ6aHIsZG93bmxvYWQ6TzRlLGRyYWdnYWJsZTpxaSxlbmNUeXBlOm51bGwsZW50ZXJLZXlIaW50Om51bGwsZmV0Y2hQcmlvcml0eTpudWxsLGZvcm06bnVsbCxmb3JtQWN0aW9uOm51bGwsZm9ybUVuY1R5cGU6bnVsbCxmb3JtTWV0aG9kOm51bGwsZm9ybU5vVmFsaWRhdGU6aHIsZm9ybVRhcmdldDpudWxsLGhlYWRlcnM6VmEsaGVpZ2h0OmF0LGhpZGRlbjpPNGUsaGlnaDphdCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxodG1sRm9yOlZhLGh0dHBFcXVpdjpWYSxpZDpudWxsLGltYWdlU2l6ZXM6bnVsbCxpbWFnZVNyY1NldDpudWxsLGluZXJ0OmhyLGlucHV0TW9kZTpudWxsLGludGVncml0eTpudWxsLGlzOm51bGwsaXNNYXA6aHIsaXRlbUlkOm51bGwsaXRlbVByb3A6VmEsaXRlbVJlZjpWYSxpdGVtU2NvcGU6aHIsaXRlbVR5cGU6VmEsa2luZDpudWxsLGxhYmVsOm51bGwsbGFuZzpudWxsLGxhbmd1YWdlOm51bGwsbGlzdDpudWxsLGxvYWRpbmc6bnVsbCxsb29wOmhyLGxvdzphdCxtYW5pZmVzdDpudWxsLG1heDpudWxsLG1heExlbmd0aDphdCxtZWRpYTpudWxsLG1ldGhvZDpudWxsLG1pbjpudWxsLG1pbkxlbmd0aDphdCxtdWx0aXBsZTpocixtdXRlZDpocixuYW1lOm51bGwsbm9uY2U6bnVsbCxub01vZHVsZTpocixub1ZhbGlkYXRlOmhyLG9uQWJvcnQ6bnVsbCxvbkFmdGVyUHJpbnQ6bnVsbCxvbkF1eENsaWNrOm51bGwsb25CZWZvcmVNYXRjaDpudWxsLG9uQmVmb3JlUHJpbnQ6bnVsbCxvbkJlZm9yZVRvZ2dsZTpudWxsLG9uQmVmb3JlVW5sb2FkOm51bGwsb25CbHVyOm51bGwsb25DYW5jZWw6bnVsbCxvbkNhblBsYXk6bnVsbCxvbkNhblBsYXlUaHJvdWdoOm51bGwsb25DaGFuZ2U6bnVsbCxvbkNsaWNrOm51bGwsb25DbG9zZTpudWxsLG9uQ29udGV4dExvc3Q6bnVsbCxvbkNvbnRleHRNZW51Om51bGwsb25Db250ZXh0UmVzdG9yZWQ6bnVsbCxvbkNvcHk6bnVsbCxvbkN1ZUNoYW5nZTpudWxsLG9uQ3V0Om51bGwsb25EYmxDbGljazpudWxsLG9uRHJhZzpudWxsLG9uRHJhZ0VuZDpudWxsLG9uRHJhZ0VudGVyOm51bGwsb25EcmFnRXhpdDpudWxsLG9uRHJhZ0xlYXZlOm51bGwsb25EcmFnT3ZlcjpudWxsLG9uRHJhZ1N0YXJ0Om51bGwsb25Ecm9wOm51bGwsb25EdXJhdGlvbkNoYW5nZTpudWxsLG9uRW1wdGllZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9ybURhdGE6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxhbmd1YWdlQ2hhbmdlOm51bGwsb25Mb2FkOm51bGwsb25Mb2FkZWREYXRhOm51bGwsb25Mb2FkZWRNZXRhZGF0YTpudWxsLG9uTG9hZEVuZDpudWxsLG9uTG9hZFN0YXJ0Om51bGwsb25NZXNzYWdlOm51bGwsb25NZXNzYWdlRXJyb3I6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlamVjdGlvbkhhbmRsZWQ6bnVsbCxvblJlc2V0Om51bGwsb25SZXNpemU6bnVsbCxvblNjcm9sbDpudWxsLG9uU2Nyb2xsRW5kOm51bGwsb25TZWN1cml0eVBvbGljeVZpb2xhdGlvbjpudWxsLG9uU2Vla2VkOm51bGwsb25TZWVraW5nOm51bGwsb25TZWxlY3Q6bnVsbCxvblNsb3RDaGFuZ2U6bnVsbCxvblN0YWxsZWQ6bnVsbCxvblN0b3JhZ2U6bnVsbCxvblN1Ym1pdDpudWxsLG9uU3VzcGVuZDpudWxsLG9uVGltZVVwZGF0ZTpudWxsLG9uVG9nZ2xlOm51bGwsb25VbmhhbmRsZWRSZWplY3Rpb246bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25XaGVlbDpudWxsLG9wZW46aHIsb3B0aW11bTphdCxwYXR0ZXJuOm51bGwscGluZzpWYSxwbGFjZWhvbGRlcjpudWxsLHBsYXlzSW5saW5lOmhyLHBvcG92ZXI6bnVsbCxwb3BvdmVyVGFyZ2V0Om51bGwscG9wb3ZlclRhcmdldEFjdGlvbjpudWxsLHBvc3RlcjpudWxsLHByZWxvYWQ6bnVsbCxyZWFkT25seTpocixyZWZlcnJlclBvbGljeTpudWxsLHJlbDpWYSxyZXF1aXJlZDpocixyZXZlcnNlZDpocixyb3dzOmF0LHJvd1NwYW46YXQsc2FuZGJveDpWYSxzY29wZTpudWxsLHNjb3BlZDpocixzZWFtbGVzczpocixzZWxlY3RlZDpocixzaGFkb3dSb290Q2xvbmFibGU6aHIsc2hhZG93Um9vdERlbGVnYXRlc0ZvY3VzOmhyLHNoYWRvd1Jvb3RNb2RlOm51bGwsc2hhcGU6bnVsbCxzaXplOmF0LHNpemVzOm51bGwsc2xvdDpudWxsLHNwYW46YXQsc3BlbGxDaGVjazpxaSxzcmM6bnVsbCxzcmNEb2M6bnVsbCxzcmNMYW5nOm51bGwsc3JjU2V0Om51bGwsc3RhcnQ6YXQsc3RlcDpudWxsLHN0eWxlOm51bGwsdGFiSW5kZXg6YXQsdGFyZ2V0Om51bGwsdGl0bGU6bnVsbCx0cmFuc2xhdGU6bnVsbCx0eXBlOm51bGwsdHlwZU11c3RNYXRjaDpocix1c2VNYXA6bnVsbCx2YWx1ZTpxaSx3aWR0aDphdCx3cmFwOm51bGwsd3JpdGluZ1N1Z2dlc3Rpb25zOm51bGwsYWxpZ246bnVsbCxhTGluazpudWxsLGFyY2hpdmU6VmEsYXhpczpudWxsLGJhY2tncm91bmQ6bnVsbCxiZ0NvbG9yOm51bGwsYm9yZGVyOmF0LGJvcmRlckNvbG9yOm51bGwsYm90dG9tTWFyZ2luOmF0LGNlbGxQYWRkaW5nOm51bGwsY2VsbFNwYWNpbmc6bnVsbCxjaGFyOm51bGwsY2hhck9mZjpudWxsLGNsYXNzSWQ6bnVsbCxjbGVhcjpudWxsLGNvZGU6bnVsbCxjb2RlQmFzZTpudWxsLGNvZGVUeXBlOm51bGwsY29sb3I6bnVsbCxjb21wYWN0OmhyLGRlY2xhcmU6aHIsZXZlbnQ6bnVsbCxmYWNlOm51bGwsZnJhbWU6bnVsbCxmcmFtZUJvcmRlcjpudWxsLGhTcGFjZTphdCxsZWZ0TWFyZ2luOmF0LGxpbms6bnVsbCxsb25nRGVzYzpudWxsLGxvd1NyYzpudWxsLG1hcmdpbkhlaWdodDphdCxtYXJnaW5XaWR0aDphdCxub1Jlc2l6ZTpocixub0hyZWY6aHIsbm9TaGFkZTpocixub1dyYXA6aHIsb2JqZWN0Om51bGwscHJvZmlsZTpudWxsLHByb21wdDpudWxsLHJldjpudWxsLHJpZ2h0TWFyZ2luOmF0LHJ1bGVzOm51bGwsc2NoZW1lOm51bGwsc2Nyb2xsaW5nOnFpLHN0YW5kYnk6bnVsbCxzdW1tYXJ5Om51bGwsdGV4dDpudWxsLHRvcE1hcmdpbjphdCx2YWx1ZVR5cGU6bnVsbCx2ZXJzaW9uOm51bGwsdkFsaWduOm51bGwsdkxpbms6bnVsbCx2U3BhY2U6YXQsYWxsb3dUcmFuc3BhcmVuY3k6bnVsbCxhdXRvQ29ycmVjdDpudWxsLGF1dG9TYXZlOm51bGwsZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6aHIsZGlzYWJsZVJlbW90ZVBsYXliYWNrOmhyLHByZWZpeDpudWxsLHByb3BlcnR5Om51bGwscmVzdWx0czphdCxzZWN1cml0eTpudWxsLHVuc2VsZWN0YWJsZTpudWxsfSxzcGFjZToiaHRtbCIsdHJhbnNmb3JtOkY0ZX0pfSk7dmFyIE9zcixSc3I9dSgoKT0+e0dEZSgpO1U2KCk7ZV8oKTtPc3I9V2woe2F0dHJpYnV0ZXM6e2FjY2VudEhlaWdodDoiYWNjZW50LWhlaWdodCIsYWxpZ25tZW50QmFzZWxpbmU6ImFsaWdubWVudC1iYXNlbGluZSIsYXJhYmljRm9ybToiYXJhYmljLWZvcm0iLGJhc2VsaW5lU2hpZnQ6ImJhc2VsaW5lLXNoaWZ0IixjYXBIZWlnaHQ6ImNhcC1oZWlnaHQiLGNsYXNzTmFtZToiY2xhc3MiLGNsaXBQYXRoOiJjbGlwLXBhdGgiLGNsaXBSdWxlOiJjbGlwLXJ1bGUiLGNvbG9ySW50ZXJwb2xhdGlvbjoiY29sb3ItaW50ZXJwb2xhdGlvbiIsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczoiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIixjb2xvclByb2ZpbGU6ImNvbG9yLXByb2ZpbGUiLGNvbG9yUmVuZGVyaW5nOiJjb2xvci1yZW5kZXJpbmciLGNyb3NzT3JpZ2luOiJjcm9zc29yaWdpbiIsZGF0YVR5cGU6ImRhdGF0eXBlIixkb21pbmFudEJhc2VsaW5lOiJkb21pbmFudC1iYXNlbGluZSIsZW5hYmxlQmFja2dyb3VuZDoiZW5hYmxlLWJhY2tncm91bmQiLGZpbGxPcGFjaXR5OiJmaWxsLW9wYWNpdHkiLGZpbGxSdWxlOiJmaWxsLXJ1bGUiLGZsb29kQ29sb3I6ImZsb29kLWNvbG9yIixmbG9vZE9wYWNpdHk6ImZsb29kLW9wYWNpdHkiLGZvbnRGYW1pbHk6ImZvbnQtZmFtaWx5Iixmb250U2l6ZToiZm9udC1zaXplIixmb250U2l6ZUFkanVzdDoiZm9udC1zaXplLWFkanVzdCIsZm9udFN0cmV0Y2g6ImZvbnQtc3RyZXRjaCIsZm9udFN0eWxlOiJmb250LXN0eWxlIixmb250VmFyaWFudDoiZm9udC12YXJpYW50Iixmb250V2VpZ2h0OiJmb250LXdlaWdodCIsZ2x5cGhOYW1lOiJnbHlwaC1uYW1lIixnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDoiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsaHJlZkxhbmc6ImhyZWZsYW5nIixob3JpekFkdlg6Imhvcml6LWFkdi14Iixob3Jpek9yaWdpblg6Imhvcml6LW9yaWdpbi14Iixob3Jpek9yaWdpblk6Imhvcml6LW9yaWdpbi15IixpbWFnZVJlbmRlcmluZzoiaW1hZ2UtcmVuZGVyaW5nIixsZXR0ZXJTcGFjaW5nOiJsZXR0ZXItc3BhY2luZyIsbGlnaHRpbmdDb2xvcjoibGlnaHRpbmctY29sb3IiLG1hcmtlckVuZDoibWFya2VyLWVuZCIsbWFya2VyTWlkOiJtYXJrZXItbWlkIixtYXJrZXJTdGFydDoibWFya2VyLXN0YXJ0IixuYXZEb3duOiJuYXYtZG93biIsbmF2RG93bkxlZnQ6Im5hdi1kb3duLWxlZnQiLG5hdkRvd25SaWdodDoibmF2LWRvd24tcmlnaHQiLG5hdkxlZnQ6Im5hdi1sZWZ0IixuYXZOZXh0OiJuYXYtbmV4dCIsbmF2UHJldjoibmF2LXByZXYiLG5hdlJpZ2h0OiJuYXYtcmlnaHQiLG5hdlVwOiJuYXYtdXAiLG5hdlVwTGVmdDoibmF2LXVwLWxlZnQiLG5hdlVwUmlnaHQ6Im5hdi11cC1yaWdodCIsb25BYm9ydDoib25hYm9ydCIsb25BY3RpdmF0ZToib25hY3RpdmF0ZSIsb25BZnRlclByaW50OiJvbmFmdGVycHJpbnQiLG9uQmVmb3JlUHJpbnQ6Im9uYmVmb3JlcHJpbnQiLG9uQmVnaW46Im9uYmVnaW4iLG9uQ2FuY2VsOiJvbmNhbmNlbCIsb25DYW5QbGF5OiJvbmNhbnBsYXkiLG9uQ2FuUGxheVRocm91Z2g6Im9uY2FucGxheXRocm91Z2giLG9uQ2hhbmdlOiJvbmNoYW5nZSIsb25DbGljazoib25jbGljayIsb25DbG9zZToib25jbG9zZSIsb25Db3B5OiJvbmNvcHkiLG9uQ3VlQ2hhbmdlOiJvbmN1ZWNoYW5nZSIsb25DdXQ6Im9uY3V0IixvbkRibENsaWNrOiJvbmRibGNsaWNrIixvbkRyYWc6Im9uZHJhZyIsb25EcmFnRW5kOiJvbmRyYWdlbmQiLG9uRHJhZ0VudGVyOiJvbmRyYWdlbnRlciIsb25EcmFnRXhpdDoib25kcmFnZXhpdCIsb25EcmFnTGVhdmU6Im9uZHJhZ2xlYXZlIixvbkRyYWdPdmVyOiJvbmRyYWdvdmVyIixvbkRyYWdTdGFydDoib25kcmFnc3RhcnQiLG9uRHJvcDoib25kcm9wIixvbkR1cmF0aW9uQ2hhbmdlOiJvbmR1cmF0aW9uY2hhbmdlIixvbkVtcHRpZWQ6Im9uZW1wdGllZCIsb25FbmQ6Im9uZW5kIixvbkVuZGVkOiJvbmVuZGVkIixvbkVycm9yOiJvbmVycm9yIixvbkZvY3VzOiJvbmZvY3VzIixvbkZvY3VzSW46Im9uZm9jdXNpbiIsb25Gb2N1c091dDoib25mb2N1c291dCIsb25IYXNoQ2hhbmdlOiJvbmhhc2hjaGFuZ2UiLG9uSW5wdXQ6Im9uaW5wdXQiLG9uSW52YWxpZDoib25pbnZhbGlkIixvbktleURvd246Im9ua2V5ZG93biIsb25LZXlQcmVzczoib25rZXlwcmVzcyIsb25LZXlVcDoib25rZXl1cCIsb25Mb2FkOiJvbmxvYWQiLG9uTG9hZGVkRGF0YToib25sb2FkZWRkYXRhIixvbkxvYWRlZE1ldGFkYXRhOiJvbmxvYWRlZG1ldGFkYXRhIixvbkxvYWRTdGFydDoib25sb2Fkc3RhcnQiLG9uTWVzc2FnZToib25tZXNzYWdlIixvbk1vdXNlRG93bjoib25tb3VzZWRvd24iLG9uTW91c2VFbnRlcjoib25tb3VzZWVudGVyIixvbk1vdXNlTGVhdmU6Im9ubW91c2VsZWF2ZSIsb25Nb3VzZU1vdmU6Im9ubW91c2Vtb3ZlIixvbk1vdXNlT3V0OiJvbm1vdXNlb3V0Iixvbk1vdXNlT3Zlcjoib25tb3VzZW92ZXIiLG9uTW91c2VVcDoib25tb3VzZXVwIixvbk1vdXNlV2hlZWw6Im9ubW91c2V3aGVlbCIsb25PZmZsaW5lOiJvbm9mZmxpbmUiLG9uT25saW5lOiJvbm9ubGluZSIsb25QYWdlSGlkZToib25wYWdlaGlkZSIsb25QYWdlU2hvdzoib25wYWdlc2hvdyIsb25QYXN0ZToib25wYXN0ZSIsb25QYXVzZToib25wYXVzZSIsb25QbGF5OiJvbnBsYXkiLG9uUGxheWluZzoib25wbGF5aW5nIixvblBvcFN0YXRlOiJvbnBvcHN0YXRlIixvblByb2dyZXNzOiJvbnByb2dyZXNzIixvblJhdGVDaGFuZ2U6Im9ucmF0ZWNoYW5nZSIsb25SZXBlYXQ6Im9ucmVwZWF0IixvblJlc2V0OiJvbnJlc2V0IixvblJlc2l6ZToib25yZXNpemUiLG9uU2Nyb2xsOiJvbnNjcm9sbCIsb25TZWVrZWQ6Im9uc2Vla2VkIixvblNlZWtpbmc6Im9uc2Vla2luZyIsb25TZWxlY3Q6Im9uc2VsZWN0IixvblNob3c6Im9uc2hvdyIsb25TdGFsbGVkOiJvbnN0YWxsZWQiLG9uU3RvcmFnZToib25zdG9yYWdlIixvblN1Ym1pdDoib25zdWJtaXQiLG9uU3VzcGVuZDoib25zdXNwZW5kIixvblRpbWVVcGRhdGU6Im9udGltZXVwZGF0ZSIsb25Ub2dnbGU6Im9udG9nZ2xlIixvblVubG9hZDoib251bmxvYWQiLG9uVm9sdW1lQ2hhbmdlOiJvbnZvbHVtZWNoYW5nZSIsb25XYWl0aW5nOiJvbndhaXRpbmciLG9uWm9vbToib256b29tIixvdmVybGluZVBvc2l0aW9uOiJvdmVybGluZS1wb3NpdGlvbiIsb3ZlcmxpbmVUaGlja25lc3M6Im92ZXJsaW5lLXRoaWNrbmVzcyIscGFpbnRPcmRlcjoicGFpbnQtb3JkZXIiLHBhbm9zZTE6InBhbm9zZS0xIixwb2ludGVyRXZlbnRzOiJwb2ludGVyLWV2ZW50cyIscmVmZXJyZXJQb2xpY3k6InJlZmVycmVycG9saWN5IixyZW5kZXJpbmdJbnRlbnQ6InJlbmRlcmluZy1pbnRlbnQiLHNoYXBlUmVuZGVyaW5nOiJzaGFwZS1yZW5kZXJpbmciLHN0b3BDb2xvcjoic3RvcC1jb2xvciIsc3RvcE9wYWNpdHk6InN0b3Atb3BhY2l0eSIsc3RyaWtldGhyb3VnaFBvc2l0aW9uOiJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIixzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyIsc3Ryb2tlRGFzaEFycmF5OiJzdHJva2UtZGFzaGFycmF5IixzdHJva2VEYXNoT2Zmc2V0OiJzdHJva2UtZGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlLWxpbmVjYXAiLHN0cm9rZUxpbmVKb2luOiJzdHJva2UtbGluZWpvaW4iLHN0cm9rZU1pdGVyTGltaXQ6InN0cm9rZS1taXRlcmxpbWl0IixzdHJva2VPcGFjaXR5OiJzdHJva2Utb3BhY2l0eSIsc3Ryb2tlV2lkdGg6InN0cm9rZS13aWR0aCIsdGFiSW5kZXg6InRhYmluZGV4Iix0ZXh0QW5jaG9yOiJ0ZXh0LWFuY2hvciIsdGV4dERlY29yYXRpb246InRleHQtZGVjb3JhdGlvbiIsdGV4dFJlbmRlcmluZzoidGV4dC1yZW5kZXJpbmciLHRyYW5zZm9ybU9yaWdpbjoidHJhbnNmb3JtLW9yaWdpbiIsdHlwZU9mOiJ0eXBlb2YiLHVuZGVybGluZVBvc2l0aW9uOiJ1bmRlcmxpbmUtcG9zaXRpb24iLHVuZGVybGluZVRoaWNrbmVzczoidW5kZXJsaW5lLXRoaWNrbmVzcyIsdW5pY29kZUJpZGk6InVuaWNvZGUtYmlkaSIsdW5pY29kZVJhbmdlOiJ1bmljb2RlLXJhbmdlIix1bml0c1BlckVtOiJ1bml0cy1wZXItZW0iLHZBbHBoYWJldGljOiJ2LWFscGhhYmV0aWMiLHZIYW5naW5nOiJ2LWhhbmdpbmciLHZJZGVvZ3JhcGhpYzoidi1pZGVvZ3JhcGhpYyIsdk1hdGhlbWF0aWNhbDoidi1tYXRoZW1hdGljYWwiLHZlY3RvckVmZmVjdDoidmVjdG9yLWVmZmVjdCIsdmVydEFkdlk6InZlcnQtYWR2LXkiLHZlcnRPcmlnaW5YOiJ2ZXJ0LW9yaWdpbi14Iix2ZXJ0T3JpZ2luWToidmVydC1vcmlnaW4teSIsd29yZFNwYWNpbmc6IndvcmQtc3BhY2luZyIsd3JpdGluZ01vZGU6IndyaXRpbmctbW9kZSIseEhlaWdodDoieC1oZWlnaHQiLHBsYXliYWNrT3JkZXI6InBsYXliYWNrb3JkZXIiLHRpbWVsaW5lQmVnaW46InRpbWVsaW5lYmVnaW4ifSxwcm9wZXJ0aWVzOnthYm91dDpMMSxhY2NlbnRIZWlnaHQ6YXQsYWNjdW11bGF0ZTpudWxsLGFkZGl0aXZlOm51bGwsYWxpZ25tZW50QmFzZWxpbmU6bnVsbCxhbHBoYWJldGljOmF0LGFtcGxpdHVkZTphdCxhcmFiaWNGb3JtOm51bGwsYXNjZW50OmF0LGF0dHJpYnV0ZU5hbWU6bnVsbCxhdHRyaWJ1dGVUeXBlOm51bGwsYXppbXV0aDphdCxiYW5kd2lkdGg6bnVsbCxiYXNlbGluZVNoaWZ0Om51bGwsYmFzZUZyZXF1ZW5jeTpudWxsLGJhc2VQcm9maWxlOm51bGwsYmJveDpudWxsLGJlZ2luOm51bGwsYmlhczphdCxieTpudWxsLGNhbGNNb2RlOm51bGwsY2FwSGVpZ2h0OmF0LGNsYXNzTmFtZTpWYSxjbGlwOm51bGwsY2xpcFBhdGg6bnVsbCxjbGlwUGF0aFVuaXRzOm51bGwsY2xpcFJ1bGU6bnVsbCxjb2xvcjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6bnVsbCxjb2xvclByb2ZpbGU6bnVsbCxjb2xvclJlbmRlcmluZzpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50U2NyaXB0VHlwZTpudWxsLGNvbnRlbnRTdHlsZVR5cGU6bnVsbCxjcm9zc09yaWdpbjpudWxsLGN1cnNvcjpudWxsLGN4Om51bGwsY3k6bnVsbCxkOm51bGwsZGF0YVR5cGU6bnVsbCxkZWZhdWx0QWN0aW9uOm51bGwsZGVzY2VudDphdCxkaWZmdXNlQ29uc3RhbnQ6YXQsZGlyZWN0aW9uOm51bGwsZGlzcGxheTpudWxsLGR1cjpudWxsLGRpdmlzb3I6YXQsZG9taW5hbnRCYXNlbGluZTpudWxsLGRvd25sb2FkOmhyLGR4Om51bGwsZHk6bnVsbCxlZGdlTW9kZTpudWxsLGVkaXRhYmxlOm51bGwsZWxldmF0aW9uOmF0LGVuYWJsZUJhY2tncm91bmQ6bnVsbCxlbmQ6bnVsbCxldmVudDpudWxsLGV4cG9uZW50OmF0LGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6bnVsbCxmaWxsOm51bGwsZmlsbE9wYWNpdHk6YXQsZmlsbFJ1bGU6bnVsbCxmaWx0ZXI6bnVsbCxmaWx0ZXJSZXM6bnVsbCxmaWx0ZXJVbml0czpudWxsLGZsb29kQ29sb3I6bnVsbCxmbG9vZE9wYWNpdHk6bnVsbCxmb2N1c2FibGU6bnVsbCxmb2N1c0hpZ2hsaWdodDpudWxsLGZvbnRGYW1pbHk6bnVsbCxmb250U2l6ZTpudWxsLGZvbnRTaXplQWRqdXN0Om51bGwsZm9udFN0cmV0Y2g6bnVsbCxmb250U3R5bGU6bnVsbCxmb250VmFyaWFudDpudWxsLGZvbnRXZWlnaHQ6bnVsbCxmb3JtYXQ6bnVsbCxmcjpudWxsLGZyb206bnVsbCxmeDpudWxsLGZ5Om51bGwsZzE6TXAsZzI6TXAsZ2x5cGhOYW1lOk1wLGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOm51bGwsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOm51bGwsZ2x5cGhSZWY6bnVsbCxncmFkaWVudFRyYW5zZm9ybTpudWxsLGdyYWRpZW50VW5pdHM6bnVsbCxoYW5kbGVyOm51bGwsaGFuZ2luZzphdCxoYXRjaENvbnRlbnRVbml0czpudWxsLGhhdGNoVW5pdHM6bnVsbCxoZWlnaHQ6bnVsbCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxob3JpekFkdlg6YXQsaG9yaXpPcmlnaW5YOmF0LGhvcml6T3JpZ2luWTphdCxpZDpudWxsLGlkZW9ncmFwaGljOmF0LGltYWdlUmVuZGVyaW5nOm51bGwsaW5pdGlhbFZpc2liaWxpdHk6bnVsbCxpbjpudWxsLGluMjpudWxsLGludGVyY2VwdDphdCxrOmF0LGsxOmF0LGsyOmF0LGszOmF0LGs0OmF0LGtlcm5lbE1hdHJpeDpMMSxrZXJuZWxVbml0TGVuZ3RoOm51bGwsa2V5UG9pbnRzOm51bGwsa2V5U3BsaW5lczpudWxsLGtleVRpbWVzOm51bGwsa2VybmluZzpudWxsLGxhbmc6bnVsbCxsZW5ndGhBZGp1c3Q6bnVsbCxsZXR0ZXJTcGFjaW5nOm51bGwsbGlnaHRpbmdDb2xvcjpudWxsLGxpbWl0aW5nQ29uZUFuZ2xlOmF0LGxvY2FsOm51bGwsbWFya2VyRW5kOm51bGwsbWFya2VyTWlkOm51bGwsbWFya2VyU3RhcnQ6bnVsbCxtYXJrZXJIZWlnaHQ6bnVsbCxtYXJrZXJVbml0czpudWxsLG1hcmtlcldpZHRoOm51bGwsbWFzazpudWxsLG1hc2tDb250ZW50VW5pdHM6bnVsbCxtYXNrVW5pdHM6bnVsbCxtYXRoZW1hdGljYWw6bnVsbCxtYXg6bnVsbCxtZWRpYTpudWxsLG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6bnVsbCxtZWRpYUNvbnRlbnRFbmNvZGluZ3M6bnVsbCxtZWRpYVNpemU6YXQsbWVkaWFUaW1lOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbW9kZTpudWxsLG5hbWU6bnVsbCxuYXZEb3duOm51bGwsbmF2RG93bkxlZnQ6bnVsbCxuYXZEb3duUmlnaHQ6bnVsbCxuYXZMZWZ0Om51bGwsbmF2TmV4dDpudWxsLG5hdlByZXY6bnVsbCxuYXZSaWdodDpudWxsLG5hdlVwOm51bGwsbmF2VXBMZWZ0Om51bGwsbmF2VXBSaWdodDpudWxsLG51bU9jdGF2ZXM6bnVsbCxvYnNlcnZlcjpudWxsLG9mZnNldDpudWxsLG9uQWJvcnQ6bnVsbCxvbkFjdGl2YXRlOm51bGwsb25BZnRlclByaW50Om51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVnaW46bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9jdXNJbjpudWxsLG9uRm9jdXNPdXQ6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25Nb3VzZVdoZWVsOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlcGVhdDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2hvdzpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25ab29tOm51bGwsb3BhY2l0eTpudWxsLG9wZXJhdG9yOm51bGwsb3JkZXI6bnVsbCxvcmllbnQ6bnVsbCxvcmllbnRhdGlvbjpudWxsLG9yaWdpbjpudWxsLG92ZXJmbG93Om51bGwsb3ZlcmxheTpudWxsLG92ZXJsaW5lUG9zaXRpb246YXQsb3ZlcmxpbmVUaGlja25lc3M6YXQscGFpbnRPcmRlcjpudWxsLHBhbm9zZTE6bnVsbCxwYXRoOm51bGwscGF0aExlbmd0aDphdCxwYXR0ZXJuQ29udGVudFVuaXRzOm51bGwscGF0dGVyblRyYW5zZm9ybTpudWxsLHBhdHRlcm5Vbml0czpudWxsLHBoYXNlOm51bGwscGluZzpWYSxwaXRjaDpudWxsLHBsYXliYWNrT3JkZXI6bnVsbCxwb2ludGVyRXZlbnRzOm51bGwscG9pbnRzOm51bGwscG9pbnRzQXRYOmF0LHBvaW50c0F0WTphdCxwb2ludHNBdFo6YXQscHJlc2VydmVBbHBoYTpudWxsLHByZXNlcnZlQXNwZWN0UmF0aW86bnVsbCxwcmltaXRpdmVVbml0czpudWxsLHByb3BhZ2F0ZTpudWxsLHByb3BlcnR5OkwxLHI6bnVsbCxyYWRpdXM6bnVsbCxyZWZlcnJlclBvbGljeTpudWxsLHJlZlg6bnVsbCxyZWZZOm51bGwscmVsOkwxLHJldjpMMSxyZW5kZXJpbmdJbnRlbnQ6bnVsbCxyZXBlYXRDb3VudDpudWxsLHJlcGVhdER1cjpudWxsLHJlcXVpcmVkRXh0ZW5zaW9uczpMMSxyZXF1aXJlZEZlYXR1cmVzOkwxLHJlcXVpcmVkRm9udHM6TDEscmVxdWlyZWRGb3JtYXRzOkwxLHJlc291cmNlOm51bGwscmVzdGFydDpudWxsLHJlc3VsdDpudWxsLHJvdGF0ZTpudWxsLHJ4Om51bGwscnk6bnVsbCxzY2FsZTpudWxsLHNlZWQ6bnVsbCxzaGFwZVJlbmRlcmluZzpudWxsLHNpZGU6bnVsbCxzbG9wZTpudWxsLHNuYXBzaG90VGltZTpudWxsLHNwZWN1bGFyQ29uc3RhbnQ6YXQsc3BlY3VsYXJFeHBvbmVudDphdCxzcHJlYWRNZXRob2Q6bnVsbCxzcGFjaW5nOm51bGwsc3RhcnRPZmZzZXQ6bnVsbCxzdGREZXZpYXRpb246bnVsbCxzdGVtaDpudWxsLHN0ZW12Om51bGwsc3RpdGNoVGlsZXM6bnVsbCxzdG9wQ29sb3I6bnVsbCxzdG9wT3BhY2l0eTpudWxsLHN0cmlrZXRocm91Z2hQb3NpdGlvbjphdCxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOmF0LHN0cmluZzpudWxsLHN0cm9rZTpudWxsLHN0cm9rZURhc2hBcnJheTpMMSxzdHJva2VEYXNoT2Zmc2V0Om51bGwsc3Ryb2tlTGluZUNhcDpudWxsLHN0cm9rZUxpbmVKb2luOm51bGwsc3Ryb2tlTWl0ZXJMaW1pdDphdCxzdHJva2VPcGFjaXR5OmF0LHN0cm9rZVdpZHRoOm51bGwsc3R5bGU6bnVsbCxzdXJmYWNlU2NhbGU6YXQsc3luY0JlaGF2aW9yOm51bGwsc3luY0JlaGF2aW9yRGVmYXVsdDpudWxsLHN5bmNNYXN0ZXI6bnVsbCxzeW5jVG9sZXJhbmNlOm51bGwsc3luY1RvbGVyYW5jZURlZmF1bHQ6bnVsbCxzeXN0ZW1MYW5ndWFnZTpMMSx0YWJJbmRleDphdCx0YWJsZVZhbHVlczpudWxsLHRhcmdldDpudWxsLHRhcmdldFg6YXQsdGFyZ2V0WTphdCx0ZXh0QW5jaG9yOm51bGwsdGV4dERlY29yYXRpb246bnVsbCx0ZXh0UmVuZGVyaW5nOm51bGwsdGV4dExlbmd0aDpudWxsLHRpbWVsaW5lQmVnaW46bnVsbCx0aXRsZTpudWxsLHRyYW5zZm9ybUJlaGF2aW9yOm51bGwsdHlwZTpudWxsLHR5cGVPZjpMMSx0bzpudWxsLHRyYW5zZm9ybTpudWxsLHRyYW5zZm9ybU9yaWdpbjpudWxsLHUxOm51bGwsdTI6bnVsbCx1bmRlcmxpbmVQb3NpdGlvbjphdCx1bmRlcmxpbmVUaGlja25lc3M6YXQsdW5pY29kZTpudWxsLHVuaWNvZGVCaWRpOm51bGwsdW5pY29kZVJhbmdlOm51bGwsdW5pdHNQZXJFbTphdCx2YWx1ZXM6bnVsbCx2QWxwaGFiZXRpYzphdCx2TWF0aGVtYXRpY2FsOmF0LHZlY3RvckVmZmVjdDpudWxsLHZIYW5naW5nOmF0LHZJZGVvZ3JhcGhpYzphdCx2ZXJzaW9uOm51bGwsdmVydEFkdlk6YXQsdmVydE9yaWdpblg6YXQsdmVydE9yaWdpblk6YXQsdmlld0JveDpudWxsLHZpZXdUYXJnZXQ6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCx3aWR0aHM6bnVsbCx3b3JkU3BhY2luZzpudWxsLHdyaXRpbmdNb2RlOm51bGwseDpudWxsLHgxOm51bGwseDI6bnVsbCx4Q2hhbm5lbFNlbGVjdG9yOm51bGwseEhlaWdodDphdCx5Om51bGwseTE6bnVsbCx5MjpudWxsLHlDaGFubmVsU2VsZWN0b3I6bnVsbCx6Om51bGwsem9vbUFuZFBhbjpudWxsfSxzcGFjZToic3ZnIix0cmFuc2Zvcm06UjRlfSl9KTt2YXIgS0RlLEZzcj11KCgpPT57VTYoKTtLRGU9V2woe3Byb3BlcnRpZXM6e3hMaW5rQWN0dWF0ZTpudWxsLHhMaW5rQXJjUm9sZTpudWxsLHhMaW5rSHJlZjpudWxsLHhMaW5rUm9sZTpudWxsLHhMaW5rU2hvdzpudWxsLHhMaW5rVGl0bGU6bnVsbCx4TGlua1R5cGU6bnVsbH0sc3BhY2U6InhsaW5rIix0cmFuc2Zvcm0odCxlKXtyZXR1cm4ieGxpbms6IitlLnNsaWNlKDUpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgWkRlLEJzcj11KCgpPT57VTYoKTtZRGUoKTtaRGU9V2woe2F0dHJpYnV0ZXM6e3htbG5zeGxpbms6InhtbG5zOnhsaW5rIn0scHJvcGVydGllczp7eG1sbnNYTGluazpudWxsLHhtbG5zOm51bGx9LHNwYWNlOiJ4bWxucyIsdHJhbnNmb3JtOkY0ZX0pfSk7dmFyIFFEZSxIc3I9dSgoKT0+e1U2KCk7UURlPVdsKHtwcm9wZXJ0aWVzOnt4bWxCYXNlOm51bGwseG1sTGFuZzpudWxsLHhtbFNwYWNlOm51bGx9LHNwYWNlOiJ4bWwiLHRyYW5zZm9ybSh0LGUpe3JldHVybiJ4bWw6IitlLnNsaWNlKDMpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgcXNyPXUoKCk9Pnt9KTtmdW5jdGlvbiBYRGUodCxlKXtsZXQgcj1jeShlKSxhPWUscz14bjtpZihyIGluIHQubm9ybWFsKXJldHVybiB0LnByb3BlcnR5W3Qubm9ybWFsW3JdXTtpZihyLmxlbmd0aD40JiZyLnNsaWNlKDAsNCk9PT0iZGF0YSImJmdfYS50ZXN0KGUpKXtpZihlLmNoYXJBdCg0KT09PSItIil7bGV0IG49ZS5zbGljZSg1KS5yZXBsYWNlKFZzcix4X2EpO2E9ImRhdGEiK24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrbi5zbGljZSgxKX1lbHNle2xldCBuPWUuc2xpY2UoNCk7aWYoIVZzci50ZXN0KG4pKXtsZXQgbz1uLnJlcGxhY2UobV9hLGJfYSk7by5jaGFyQXQoMCkhPT0iLSImJihvPSItIitvKSxlPSJkYXRhIitvfX1zPWo2fXJldHVybiBuZXcgcyhhLGUpfWZ1bmN0aW9uIGJfYSh0KXtyZXR1cm4iLSIrdC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHhfYSh0KXtyZXR1cm4gdC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKX12YXIgbV9hLFZzcixnX2EsanNyPXUoKCk9PntVRGUoKTtWRGUoKTtONGUoKTttX2E9L1tBLVpdL2csVnNyPS8tW2Etel0vZyxnX2E9L15kYXRhWy1cdy46XSskL2k7aShYRGUsImZpbmQiKTtpKGJfYSwia2ViYWIiKTtpKHhfYSwiY2FtZWxjYXNlIil9KTt2YXIgVXNyLEI0ZSxKRGU9dSgoKT0+e0FzcigpO0lzcigpO05zcigpO1JzcigpO0ZzcigpO0JzcigpO0hzcigpO3FzcigpO2pzcigpO040ZSgpO1Vzcj1xRGUoW1dEZSxQc3IsS0RlLFpEZSxRRGVdLCJodG1sIiksQjRlPXFEZShbV0RlLE9zcixLRGUsWkRlLFFEZV0sInN2ZyIpfSk7ZnVuY3Rpb24gZSRlKHQsZSl7aWYodD10LnJlcGxhY2UoZS5zdWJzZXQ/U19hKGUuc3Vic2V0KTp2X2EsYSksZS5zdWJzZXR8fGUuZXNjYXBlT25seSlyZXR1cm4gdDtyZXR1cm4gdC5yZXBsYWNlKHlfYSxyKS5yZXBsYWNlKHdfYSxhKTtmdW5jdGlvbiByKHMsbixvKXtyZXR1cm4gZS5mb3JtYXQoKHMuY2hhckNvZGVBdCgwKS01NTI5NikqMTAyNCtzLmNoYXJDb2RlQXQoMSktNTYzMjArNjU1MzYsby5jaGFyQ29kZUF0KG4rMiksZSl9ZnVuY3Rpb24gYShzLG4sbyl7cmV0dXJuIGUuZm9ybWF0KHMuY2hhckNvZGVBdCgwKSxvLmNoYXJDb2RlQXQobisxKSxlKX19ZnVuY3Rpb24gU19hKHQpe2xldCBlPVdzci5nZXQodCk7cmV0dXJuIGV8fChlPU1fYSh0KSxXc3Iuc2V0KHQsZSkpLGV9ZnVuY3Rpb24gTV9hKHQpe2xldCBlPVtdLHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KWUucHVzaCh0W3JdLnJlcGxhY2Uoa19hLCJcXCQmIikpO3JldHVybiBuZXcgUmVnRXhwKCIoPzoiK2Uuam9pbigifCIpKyIpIiwiZyIpfXZhciB2X2EseV9hLHdfYSxrX2EsV3NyLEdzcj11KCgpPT57dl9hPS9bIiYnPD5gXS9nLHlfYT0vW1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csd19hPS9bXHgwMS1cdFx2XGZceDBFLVx4MUZceDdGXHg4MVx4OERceDhGXHg5MFx4OURceEEwLVx1RkZGRl0vZyxrX2E9L1t8XFx7fSgpW1xdXiQrKj8uXS9nLFdzcj1uZXcgV2Vha01hcDtpKGUkZSwiY29yZSIpO2koU19hLCJjaGFyYWN0ZXJzVG9FeHByZXNzaW9uQ2FjaGVkIik7aShNX2EsImNoYXJhY3RlcnNUb0V4cHJlc3Npb24iKX0pO2Z1bmN0aW9uIFlzcih0LGUscil7bGV0IGE9IiYjeCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gciYmZSYmIUNfYS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpP2E6YSsiOyJ9dmFyIENfYSxLc3I9dSgoKT0+e0NfYT0vW1xkQS1GYS1mXS87aShZc3IsInRvSGV4YWRlY2ltYWwiKX0pO2Z1bmN0aW9uIFpzcih0LGUscil7bGV0IGE9IiYjIitTdHJpbmcodCk7cmV0dXJuIHImJmUmJiF6X2EudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKT9hOmErIjsifXZhciB6X2EsUXNyPXUoKCk9Pnt6X2E9L1xkLztpKFpzciwidG9EZWNpbWFsIil9KTt2YXIgWHNyLEpzcj11KCgpPT57WHNyPVsiQUVsaWciLCJBTVAiLCJBYWN1dGUiLCJBY2lyYyIsIkFncmF2ZSIsIkFyaW5nIiwiQXRpbGRlIiwiQXVtbCIsIkNPUFkiLCJDY2VkaWwiLCJFVEgiLCJFYWN1dGUiLCJFY2lyYyIsIkVncmF2ZSIsIkV1bWwiLCJHVCIsIklhY3V0ZSIsIkljaXJjIiwiSWdyYXZlIiwiSXVtbCIsIkxUIiwiTnRpbGRlIiwiT2FjdXRlIiwiT2NpcmMiLCJPZ3JhdmUiLCJPc2xhc2giLCJPdGlsZGUiLCJPdW1sIiwiUVVPVCIsIlJFRyIsIlRIT1JOIiwiVWFjdXRlIiwiVWNpcmMiLCJVZ3JhdmUiLCJVdW1sIiwiWWFjdXRlIiwiYWFjdXRlIiwiYWNpcmMiLCJhY3V0ZSIsImFlbGlnIiwiYWdyYXZlIiwiYW1wIiwiYXJpbmciLCJhdGlsZGUiLCJhdW1sIiwiYnJ2YmFyIiwiY2NlZGlsIiwiY2VkaWwiLCJjZW50IiwiY29weSIsImN1cnJlbiIsImRlZyIsImRpdmlkZSIsImVhY3V0ZSIsImVjaXJjIiwiZWdyYXZlIiwiZXRoIiwiZXVtbCIsImZyYWMxMiIsImZyYWMxNCIsImZyYWMzNCIsImd0IiwiaWFjdXRlIiwiaWNpcmMiLCJpZXhjbCIsImlncmF2ZSIsImlxdWVzdCIsIml1bWwiLCJsYXF1byIsImx0IiwibWFjciIsIm1pY3JvIiwibWlkZG90IiwibmJzcCIsIm5vdCIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjIiwib2dyYXZlIiwib3JkZiIsIm9yZG0iLCJvc2xhc2giLCJvdGlsZGUiLCJvdW1sIiwicGFyYSIsInBsdXNtbiIsInBvdW5kIiwicXVvdCIsInJhcXVvIiwicmVnIiwic2VjdCIsInNoeSIsInN1cDEiLCJzdXAyIiwic3VwMyIsInN6bGlnIiwidGhvcm4iLCJ0aW1lcyIsInVhY3V0ZSIsInVjaXJjIiwidWdyYXZlIiwidW1sIiwidXVtbCIsInlhY3V0ZSIsInllbiIsInl1bWwiXX0pO3ZhciBINGUsZW5yPXUoKCk9PntINGU9e25ic3A6Ilx4QTAiLGlleGNsOiJceEExIixjZW50OiJceEEyIixwb3VuZDoiXHhBMyIsY3VycmVuOiJceEE0Iix5ZW46Ilx4QTUiLGJydmJhcjoiXHhBNiIsc2VjdDoiXHhBNyIsdW1sOiJceEE4Iixjb3B5OiJceEE5IixvcmRmOiJceEFBIixsYXF1bzoiXHhBQiIsbm90OiJceEFDIixzaHk6Ilx4QUQiLHJlZzoiXHhBRSIsbWFjcjoiXHhBRiIsZGVnOiJceEIwIixwbHVzbW46Ilx4QjEiLHN1cDI6Ilx4QjIiLHN1cDM6Ilx4QjMiLGFjdXRlOiJceEI0IixtaWNybzoiXHhCNSIscGFyYToiXHhCNiIsbWlkZG90OiJceEI3IixjZWRpbDoiXHhCOCIsc3VwMToiXHhCOSIsb3JkbToiXHhCQSIscmFxdW86Ilx4QkIiLGZyYWMxNDoiXHhCQyIsZnJhYzEyOiJceEJEIixmcmFjMzQ6Ilx4QkUiLGlxdWVzdDoiXHhCRiIsQWdyYXZlOiJceEMwIixBYWN1dGU6Ilx4QzEiLEFjaXJjOiJceEMyIixBdGlsZGU6Ilx4QzMiLEF1bWw6Ilx4QzQiLEFyaW5nOiJceEM1IixBRWxpZzoiXHhDNiIsQ2NlZGlsOiJceEM3IixFZ3JhdmU6Ilx4QzgiLEVhY3V0ZToiXHhDOSIsRWNpcmM6Ilx4Q0EiLEV1bWw6Ilx4Q0IiLElncmF2ZToiXHhDQyIsSWFjdXRlOiJceENEIixJY2lyYzoiXHhDRSIsSXVtbDoiXHhDRiIsRVRIOiJceEQwIixOdGlsZGU6Ilx4RDEiLE9ncmF2ZToiXHhEMiIsT2FjdXRlOiJceEQzIixPY2lyYzoiXHhENCIsT3RpbGRlOiJceEQ1IixPdW1sOiJceEQ2Iix0aW1lczoiXHhENyIsT3NsYXNoOiJceEQ4IixVZ3JhdmU6Ilx4RDkiLFVhY3V0ZToiXHhEQSIsVWNpcmM6Ilx4REIiLFV1bWw6Ilx4REMiLFlhY3V0ZToiXHhERCIsVEhPUk46Ilx4REUiLHN6bGlnOiJceERGIixhZ3JhdmU6Ilx4RTAiLGFhY3V0ZToiXHhFMSIsYWNpcmM6Ilx4RTIiLGF0aWxkZToiXHhFMyIsYXVtbDoiXHhFNCIsYXJpbmc6Ilx4RTUiLGFlbGlnOiJceEU2IixjY2VkaWw6Ilx4RTciLGVncmF2ZToiXHhFOCIsZWFjdXRlOiJceEU5IixlY2lyYzoiXHhFQSIsZXVtbDoiXHhFQiIsaWdyYXZlOiJceEVDIixpYWN1dGU6Ilx4RUQiLGljaXJjOiJceEVFIixpdW1sOiJceEVGIixldGg6Ilx4RjAiLG50aWxkZToiXHhGMSIsb2dyYXZlOiJceEYyIixvYWN1dGU6Ilx4RjMiLG9jaXJjOiJceEY0IixvdGlsZGU6Ilx4RjUiLG91bWw6Ilx4RjYiLGRpdmlkZToiXHhGNyIsb3NsYXNoOiJceEY4Iix1Z3JhdmU6Ilx4RjkiLHVhY3V0ZToiXHhGQSIsdWNpcmM6Ilx4RkIiLHV1bWw6Ilx4RkMiLHlhY3V0ZToiXHhGRCIsdGhvcm46Ilx4RkUiLHl1bWw6Ilx4RkYiLGZub2Y6Ilx1MDE5MiIsQWxwaGE6Ilx1MDM5MSIsQmV0YToiXHUwMzkyIixHYW1tYToiXHUwMzkzIixEZWx0YToiXHUwMzk0IixFcHNpbG9uOiJcdTAzOTUiLFpldGE6Ilx1MDM5NiIsRXRhOiJcdTAzOTciLFRoZXRhOiJcdTAzOTgiLElvdGE6Ilx1MDM5OSIsS2FwcGE6Ilx1MDM5QSIsTGFtYmRhOiJcdTAzOUIiLE11OiJcdTAzOUMiLE51OiJcdTAzOUQiLFhpOiJcdTAzOUUiLE9taWNyb246Ilx1MDM5RiIsUGk6Ilx1MDNBMCIsUmhvOiJcdTAzQTEiLFNpZ21hOiJcdTAzQTMiLFRhdToiXHUwM0E0IixVcHNpbG9uOiJcdTAzQTUiLFBoaToiXHUwM0E2IixDaGk6Ilx1MDNBNyIsUHNpOiJcdTAzQTgiLE9tZWdhOiJcdTAzQTkiLGFscGhhOiJcdTAzQjEiLGJldGE6Ilx1MDNCMiIsZ2FtbWE6Ilx1MDNCMyIsZGVsdGE6Ilx1MDNCNCIsZXBzaWxvbjoiXHUwM0I1Iix6ZXRhOiJcdTAzQjYiLGV0YToiXHUwM0I3Iix0aGV0YToiXHUwM0I4Iixpb3RhOiJcdTAzQjkiLGthcHBhOiJcdTAzQkEiLGxhbWJkYToiXHUwM0JCIixtdToiXHUwM0JDIixudToiXHUwM0JEIix4aToiXHUwM0JFIixvbWljcm9uOiJcdTAzQkYiLHBpOiJcdTAzQzAiLHJobzoiXHUwM0MxIixzaWdtYWY6Ilx1MDNDMiIsc2lnbWE6Ilx1MDNDMyIsdGF1OiJcdTAzQzQiLHVwc2lsb246Ilx1MDNDNSIscGhpOiJcdTAzQzYiLGNoaToiXHUwM0M3Iixwc2k6Ilx1MDNDOCIsb21lZ2E6Ilx1MDNDOSIsdGhldGFzeW06Ilx1MDNEMSIsdXBzaWg6Ilx1MDNEMiIscGl2OiJcdTAzRDYiLGJ1bGw6Ilx1MjAyMiIsaGVsbGlwOiJcdTIwMjYiLHByaW1lOiJcdTIwMzIiLFByaW1lOiJcdTIwMzMiLG9saW5lOiJcdTIwM0UiLGZyYXNsOiJcdTIwNDQiLHdlaWVycDoiXHUyMTE4IixpbWFnZToiXHUyMTExIixyZWFsOiJcdTIxMUMiLHRyYWRlOiJcdTIxMjIiLGFsZWZzeW06Ilx1MjEzNSIsbGFycjoiXHUyMTkwIix1YXJyOiJcdTIxOTEiLHJhcnI6Ilx1MjE5MiIsZGFycjoiXHUyMTkzIixoYXJyOiJcdTIxOTQiLGNyYXJyOiJcdTIxQjUiLGxBcnI6Ilx1MjFEMCIsdUFycjoiXHUyMUQxIixyQXJyOiJcdTIxRDIiLGRBcnI6Ilx1MjFEMyIsaEFycjoiXHUyMUQ0Iixmb3JhbGw6Ilx1MjIwMCIscGFydDoiXHUyMjAyIixleGlzdDoiXHUyMjAzIixlbXB0eToiXHUyMjA1IixuYWJsYToiXHUyMjA3Iixpc2luOiJcdTIyMDgiLG5vdGluOiJcdTIyMDkiLG5pOiJcdTIyMEIiLHByb2Q6Ilx1MjIwRiIsc3VtOiJcdTIyMTEiLG1pbnVzOiJcdTIyMTIiLGxvd2FzdDoiXHUyMjE3IixyYWRpYzoiXHUyMjFBIixwcm9wOiJcdTIyMUQiLGluZmluOiJcdTIyMUUiLGFuZzoiXHUyMjIwIixhbmQ6Ilx1MjIyNyIsb3I6Ilx1MjIyOCIsY2FwOiJcdTIyMjkiLGN1cDoiXHUyMjJBIixpbnQ6Ilx1MjIyQiIsdGhlcmU0OiJcdTIyMzQiLHNpbToiXHUyMjNDIixjb25nOiJcdTIyNDUiLGFzeW1wOiJcdTIyNDgiLG5lOiJcdTIyNjAiLGVxdWl2OiJcdTIyNjEiLGxlOiJcdTIyNjQiLGdlOiJcdTIyNjUiLHN1YjoiXHUyMjgyIixzdXA6Ilx1MjI4MyIsbnN1YjoiXHUyMjg0IixzdWJlOiJcdTIyODYiLHN1cGU6Ilx1MjI4NyIsb3BsdXM6Ilx1MjI5NSIsb3RpbWVzOiJcdTIyOTciLHBlcnA6Ilx1MjJBNSIsc2RvdDoiXHUyMkM1IixsY2VpbDoiXHUyMzA4IixyY2VpbDoiXHUyMzA5IixsZmxvb3I6Ilx1MjMwQSIscmZsb29yOiJcdTIzMEIiLGxhbmc6Ilx1MjMyOSIscmFuZzoiXHUyMzJBIixsb3o6Ilx1MjVDQSIsc3BhZGVzOiJcdTI2NjAiLGNsdWJzOiJcdTI2NjMiLGhlYXJ0czoiXHUyNjY1IixkaWFtczoiXHUyNjY2IixxdW90OiciJyxhbXA6IiYiLGx0OiI8IixndDoiPiIsT0VsaWc6Ilx1MDE1MiIsb2VsaWc6Ilx1MDE1MyIsU2Nhcm9uOiJcdTAxNjAiLHNjYXJvbjoiXHUwMTYxIixZdW1sOiJcdTAxNzgiLGNpcmM6Ilx1MDJDNiIsdGlsZGU6Ilx1MDJEQyIsZW5zcDoiXHUyMDAyIixlbXNwOiJcdTIwMDMiLHRoaW5zcDoiXHUyMDA5Iix6d25qOiJcdTIwMEMiLHp3ajoiXHUyMDBEIixscm06Ilx1MjAwRSIscmxtOiJcdTIwMEYiLG5kYXNoOiJcdTIwMTMiLG1kYXNoOiJcdTIwMTQiLGxzcXVvOiJcdTIwMTgiLHJzcXVvOiJcdTIwMTkiLHNicXVvOiJcdTIwMUEiLGxkcXVvOiJcdTIwMUMiLHJkcXVvOiJcdTIwMUQiLGJkcXVvOiJcdTIwMUUiLGRhZ2dlcjoiXHUyMDIwIixEYWdnZXI6Ilx1MjAyMSIscGVybWlsOiJcdTIwMzAiLGxzYXF1bzoiXHUyMDM5Iixyc2FxdW86Ilx1MjAzQSIsZXVybzoiXHUyMEFDIn19KTt2YXIgdG5yLHJucj11KCgpPT57dG5yPVsiY2VudCIsImNvcHkiLCJkaXZpZGUiLCJndCIsImx0Iiwibm90IiwicGFyYSIsInRpbWVzIl19KTtmdW5jdGlvbiBpbnIodCxlLHIsYSl7bGV0IHM9U3RyaW5nLmZyb21DaGFyQ29kZSh0KTtpZihhbnIuY2FsbCh0JGUscykpe2xldCBuPXQkZVtzXSxvPSImIituO3JldHVybiByJiZYc3IuaW5jbHVkZXMobikmJiF0bnIuaW5jbHVkZXMobikmJighYXx8ZSYmZSE9PTYxJiZfX2EudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSk/bzpvKyI7In1yZXR1cm4iIn12YXIgYW5yLHQkZSxxNGUsX19hLHNucj11KCgpPT57SnNyKCk7ZW5yKCk7cm5yKCk7YW5yPXt9Lmhhc093blByb3BlcnR5LHQkZT17fTtmb3IocTRlIGluIEg0ZSlhbnIuY2FsbChINGUscTRlKSYmKHQkZVtINGVbcTRlXV09cTRlKTtfX2E9L1teXGRBLVphLXpdLztpKGluciwidG9OYW1lZCIpfSk7ZnVuY3Rpb24gbm5yKHQsZSxyKXtsZXQgYT1Zc3IodCxlLHIub21pdE9wdGlvbmFsU2VtaWNvbG9ucykscztpZigoci51c2VOYW1lZFJlZmVyZW5jZXN8fHIudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSYmKHM9aW5yKHQsZSxyLm9taXRPcHRpb25hbFNlbWljb2xvbnMsci5hdHRyaWJ1dGUpKSwoci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fCFzKSYmci51c2VTaG9ydGVzdFJlZmVyZW5jZXMpe2xldCBuPVpzcih0LGUsci5vbWl0T3B0aW9uYWxTZW1pY29sb25zKTtuLmxlbmd0aDxhLmxlbmd0aCYmKGE9bil9cmV0dXJuIHMmJighci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fHMubGVuZ3RoPGEubGVuZ3RoKT9zOmF9dmFyIG9ucj11KCgpPT57S3NyKCk7UXNyKCk7c25yKCk7aShubnIsImZvcm1hdFNtYXJ0Iil9KTtmdW5jdGlvbiBsbnIodCl7cmV0dXJuIiYjeCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIGNucj11KCgpPT57aShsbnIsImZvcm1hdEJhc2ljIil9KTtmdW5jdGlvbiBFNCh0LGUpe3JldHVybiBlJGUodCxPYmplY3QuYXNzaWduKHtmb3JtYXQ6bm5yfSxlKSl9ZnVuY3Rpb24gUjhuKHQsZSl7cmV0dXJuIGUkZSh0LE9iamVjdC5hc3NpZ24oe2Zvcm1hdDpsbnJ9LGUpKX12YXIgZG5yPXUoKCk9PntHc3IoKTtvbnIoKTtjbnIoKTtpKEU0LCJzdHJpbmdpZnlFbnRpdGllcyIpO2koUjhuLCJzdHJpbmdpZnlFbnRpdGllc0xpZ2h0Iil9KTt2YXIgVjRlPXUoKCk9PntkbnIoKX0pO2Z1bmN0aW9uIHVucih0LGUscixhKXtyZXR1cm4gYS5zZXR0aW5ncy5ib2d1c0NvbW1lbnRzPyI8PyIrRTQodC52YWx1ZSxPYmplY3QuYXNzaWduKHt9LGEuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OkxfYX0pKSsiPiI6IjwhLS0iK3QudmFsdWUucmVwbGFjZShUX2EscykrIi0tPiI7ZnVuY3Rpb24gcyhuKXtyZXR1cm4gRTQobixPYmplY3QuYXNzaWduKHt9LGEuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OkRfYX0pKX19dmFyIFRfYSxMX2EsRF9hLHBucj11KCgpPT57VjRlKCk7VF9hPS9ePnxeLT58PCEtLXwtLT58LS0hPnw8IS0kL2csTF9hPVsiPiJdLERfYT1bIjwiLCI+Il07aSh1bnIsImNvbW1lbnQiKX0pO2Z1bmN0aW9uIGZucih0LGUscixhKXtyZXR1cm4iPCEiKyhhLnNldHRpbmdzLnVwcGVyRG9jdHlwZT8iRE9DVFlQRSI6ImRvY3R5cGUiKSsoYS5zZXR0aW5ncy50aWdodERvY3R5cGU/IiI6IiAiKSsiaHRtbD4ifXZhciBobnI9dSgoKT0+e2koZm5yLCJkb2N0eXBlIil9KTtmdW5jdGlvbiBZOG4odCl7bGV0IGU9W10scj1TdHJpbmcodHx8IiIpLGE9ci5pbmRleE9mKCIsIikscz0wLG49ITE7Zm9yKDshbjspe2E9PT0tMSYmKGE9ci5sZW5ndGgsbj0hMCk7bGV0IG89ci5zbGljZShzLGEpLnRyaW0oKTsob3x8IW4pJiZlLnB1c2gobykscz1hKzEsYT1yLmluZGV4T2YoIiwiLHMpfXJldHVybiBlfWZ1bmN0aW9uIG1ucih0LGUpe2xldCByPWV8fHt9O3JldHVybih0W3QubGVuZ3RoLTFdPT09IiI/Wy4uLnQsIiJdOnQpLmpvaW4oKHIucGFkUmlnaHQ/IiAiOiIiKSsiLCIrKHIucGFkTGVmdD09PSExPyIiOiIgIikpLnRyaW0oKX12YXIgZ25yPXUoKCk9PntpKFk4biwicGFyc2UiKTtpKG1uciwic3RyaW5naWZ5Iil9KTtmdW5jdGlvbiBROG4odCl7bGV0IGU9U3RyaW5nKHR8fCIiKS50cmltKCk7cmV0dXJuIGU/ZS5zcGxpdCgvWyBcdFxuXHJcZl0rL2cpOltdfWZ1bmN0aW9uIGJucih0KXtyZXR1cm4gdC5qb2luKCIgIikudHJpbSgpfXZhciB4bnI9dSgoKT0+e2koUThuLCJwYXJzZSIpO2koYm5yLCJzdHJpbmdpZnkiKX0pO2Z1bmN0aW9uIFc2KHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCI/dC50eXBlPT09InRleHQiP3Zucih0LnZhbHVlKTohMTp2bnIodCl9ZnVuY3Rpb24gdm5yKHQpe3JldHVybiB0LnJlcGxhY2UoJF9hLCIiKT09PSIifXZhciAkX2EseW5yPXUoKCk9PnskX2E9L1sgXHRcblxmXHJdL2c7aShXNiwid2hpdGVzcGFjZSIpO2kodm5yLCJlbXB0eSIpfSk7dmFyIGo0ZT11KCgpPT57eW5yKCl9KTtmdW5jdGlvbiB3bnIodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShyLGEscyl7bGV0IG49cj9yLmNoaWxkcmVuOkFfYSxvPShhfHwwKSt0LGw9bltvXTtpZighcylmb3IoO2wmJlc2KGwpOylvKz10LGw9bltvXTtyZXR1cm4gbH19dmFyIGlzLHIkZSxBX2EsYSRlPXUoKCk9PntqNGUoKTtpcz13bnIoMSksciRlPXducigtMSksQV9hPVtdO2kod25yLCJzaWJsaW5ncyIpfSk7ZnVuY3Rpb24gVTRlKHQpe3JldHVybiBlO2Z1bmN0aW9uIGUocixhLHMpe3JldHVybiBFX2EuY2FsbCh0LHIudGFnTmFtZSkmJnRbci50YWdOYW1lXShyLGEscyl9fXZhciBFX2EsaSRlPXUoKCk9PntFX2E9e30uaGFzT3duUHJvcGVydHk7aShVNGUsIm9taXNzaW9uIil9KTtmdW5jdGlvbiBzJGUodCxlLHIpe2xldCBhPWlzKHIsZSwhMCk7cmV0dXJuIWF8fGEudHlwZSE9PSJjb21tZW50IiYmIShhLnR5cGU9PT0idGV4dCImJlc2KGEudmFsdWUuY2hhckF0KDApKSl9ZnVuY3Rpb24gSV9hKHQsZSxyKXtsZXQgYT1pcyhyLGUpO3JldHVybiFhfHxhLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gUF9hKHQsZSxyKXtsZXQgYT1pcyhyLGUpO3JldHVybiFhfHxhLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gTl9hKHQsZSxyKXtsZXQgYT1pcyhyLGUpO3JldHVybiBhP2EudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJhZGRyZXNzInx8YS50YWdOYW1lPT09ImFydGljbGUifHxhLnRhZ05hbWU9PT0iYXNpZGUifHxhLnRhZ05hbWU9PT0iYmxvY2txdW90ZSJ8fGEudGFnTmFtZT09PSJkZXRhaWxzInx8YS50YWdOYW1lPT09ImRpdiJ8fGEudGFnTmFtZT09PSJkbCJ8fGEudGFnTmFtZT09PSJmaWVsZHNldCJ8fGEudGFnTmFtZT09PSJmaWdjYXB0aW9uInx8YS50YWdOYW1lPT09ImZpZ3VyZSJ8fGEudGFnTmFtZT09PSJmb290ZXIifHxhLnRhZ05hbWU9PT0iZm9ybSJ8fGEudGFnTmFtZT09PSJoMSJ8fGEudGFnTmFtZT09PSJoMiJ8fGEudGFnTmFtZT09PSJoMyJ8fGEudGFnTmFtZT09PSJoNCJ8fGEudGFnTmFtZT09PSJoNSJ8fGEudGFnTmFtZT09PSJoNiJ8fGEudGFnTmFtZT09PSJoZWFkZXIifHxhLnRhZ05hbWU9PT0iaGdyb3VwInx8YS50YWdOYW1lPT09ImhyInx8YS50YWdOYW1lPT09Im1haW4ifHxhLnRhZ05hbWU9PT0ibWVudSJ8fGEudGFnTmFtZT09PSJuYXYifHxhLnRhZ05hbWU9PT0ib2wifHxhLnRhZ05hbWU9PT0icCJ8fGEudGFnTmFtZT09PSJwcmUifHxhLnRhZ05hbWU9PT0ic2VjdGlvbiJ8fGEudGFnTmFtZT09PSJ0YWJsZSJ8fGEudGFnTmFtZT09PSJ1bCIpOiFyfHwhKHIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJhInx8ci50YWdOYW1lPT09ImF1ZGlvInx8ci50YWdOYW1lPT09ImRlbCJ8fHIudGFnTmFtZT09PSJpbnMifHxyLnRhZ05hbWU9PT0ibWFwInx8ci50YWdOYW1lPT09Im5vc2NyaXB0Inx8ci50YWdOYW1lPT09InZpZGVvIikpfWZ1bmN0aW9uIE9fYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0ibGkifWZ1bmN0aW9uIFJfYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0iZHQifHxhLnRhZ05hbWU9PT0iZGQiKSl9ZnVuY3Rpb24gRl9hKHQsZSxyKXtsZXQgYT1pcyhyLGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0iZHQifHxhLnRhZ05hbWU9PT0iZGQiKX1mdW5jdGlvbiBrbnIodCxlLHIpe2xldCBhPWlzKHIsZSk7cmV0dXJuIWF8fGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJycCJ8fGEudGFnTmFtZT09PSJydCIpfWZ1bmN0aW9uIEJfYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0ib3B0Z3JvdXAifWZ1bmN0aW9uIEhfYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09Im9wdGlvbiJ8fGEudGFnTmFtZT09PSJvcHRncm91cCIpfWZ1bmN0aW9uIHFfYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0idGJvZHkifHxhLnRhZ05hbWU9PT0idGZvb3QiKSl9ZnVuY3Rpb24gVl9hKHQsZSxyKXtsZXQgYT1pcyhyLGUpO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0idGJvZHkifHxhLnRhZ05hbWU9PT0idGZvb3QiKX1mdW5jdGlvbiBqX2EodCxlLHIpe3JldHVybiFpcyhyLGUpfWZ1bmN0aW9uIFVfYSh0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0idHIifWZ1bmN0aW9uIFNucih0LGUscil7bGV0IGE9aXMocixlKTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQiJiYoYS50YWdOYW1lPT09InRkInx8YS50YWdOYW1lPT09InRoIil9dmFyIHRfLG4kZT11KCgpPT57ajRlKCk7YSRlKCk7aSRlKCk7dF89VTRlKHtib2R5OlBfYSxjYXB0aW9uOnMkZSxjb2xncm91cDpzJGUsZGQ6Rl9hLGR0OlJfYSxoZWFkOnMkZSxodG1sOklfYSxsaTpPX2Esb3B0Z3JvdXA6Ql9hLG9wdGlvbjpIX2EscDpOX2EscnA6a25yLHJ0Omtucix0Ym9keTpWX2EsdGQ6U25yLHRmb290OmpfYSx0aDpTbnIsdGhlYWQ6cV9hLHRyOlVfYX0pO2kocyRlLCJoZWFkT3JDb2xncm91cE9yQ2FwdGlvbiIpO2koSV9hLCJodG1sIik7aShQX2EsImJvZHkiKTtpKE5fYSwicCIpO2koT19hLCJsaSIpO2koUl9hLCJkdCIpO2koRl9hLCJkZCIpO2koa25yLCJydWJ5RWxlbWVudCIpO2koQl9hLCJvcHRncm91cCIpO2koSF9hLCJvcHRpb24iKTtpKHFfYSwidGhlYWQiKTtpKFZfYSwidGJvZHkiKTtpKGpfYSwidGZvb3QiKTtpKFVfYSwidHIiKTtpKFNuciwiY2VsbHMiKX0pO2Z1bmN0aW9uIFdfYSh0KXtsZXQgZT1pcyh0LC0xKTtyZXR1cm4hZXx8ZS50eXBlIT09ImNvbW1lbnQifWZ1bmN0aW9uIEdfYSh0KXtsZXQgZT1uZXcgU2V0O2ZvcihsZXQgYSBvZiB0LmNoaWxkcmVuKWlmKGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJiYXNlInx8YS50YWdOYW1lPT09InRpdGxlIikpe2lmKGUuaGFzKGEudGFnTmFtZSkpcmV0dXJuITE7ZS5hZGQoYS50YWdOYW1lKX1sZXQgcj10LmNoaWxkcmVuWzBdO3JldHVybiFyfHxyLnR5cGU9PT0iZWxlbWVudCJ9ZnVuY3Rpb24gWV9hKHQpe2xldCBlPWlzKHQsLTEsITApO3JldHVybiFlfHxlLnR5cGUhPT0iY29tbWVudCImJiEoZS50eXBlPT09InRleHQiJiZXNihlLnZhbHVlLmNoYXJBdCgwKSkpJiYhKGUudHlwZT09PSJlbGVtZW50IiYmKGUudGFnTmFtZT09PSJtZXRhInx8ZS50YWdOYW1lPT09ImxpbmsifHxlLnRhZ05hbWU9PT0ic2NyaXB0Inx8ZS50YWdOYW1lPT09InN0eWxlInx8ZS50YWdOYW1lPT09InRlbXBsYXRlIikpfWZ1bmN0aW9uIEtfYSh0LGUscil7bGV0IGE9ciRlKHIsZSkscz1pcyh0LC0xLCEwKTtyZXR1cm4gciYmYSYmYS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0iY29sZ3JvdXAiJiZ0XyhhLHIuY2hpbGRyZW4uaW5kZXhPZihhKSxyKT8hMTohIShzJiZzLnR5cGU9PT0iZWxlbWVudCImJnMudGFnTmFtZT09PSJjb2wiKX1mdW5jdGlvbiBaX2EodCxlLHIpe2xldCBhPXIkZShyLGUpLHM9aXModCwtMSk7cmV0dXJuIHImJmEmJmEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJ0aGVhZCJ8fGEudGFnTmFtZT09PSJ0Ym9keSIpJiZ0XyhhLHIuY2hpbGRyZW4uaW5kZXhPZihhKSxyKT8hMTohIShzJiZzLnR5cGU9PT0iZWxlbWVudCImJnMudGFnTmFtZT09PSJ0ciIpfXZhciBNbnIsQ25yPXUoKCk9PntqNGUoKTthJGUoKTtuJGUoKTtpJGUoKTtNbnI9VTRlKHtib2R5OllfYSxjb2xncm91cDpLX2EsaGVhZDpHX2EsaHRtbDpXX2EsdGJvZHk6Wl9hfSk7aShXX2EsImh0bWwiKTtpKEdfYSwiaGVhZCIpO2koWV9hLCJib2R5Iik7aShLX2EsImNvbGdyb3VwIik7aShaX2EsInRib2R5Iil9KTtmdW5jdGlvbiB6bnIodCxlLHIsYSl7bGV0IHM9YS5zY2hlbWEsbj1zLnNwYWNlPT09InN2ZyI/ITE6YS5zZXR0aW5ncy5vbWl0T3B0aW9uYWxUYWdzLG89cy5zcGFjZT09PSJzdmciP2Euc2V0dGluZ3MuY2xvc2VFbXB0eUVsZW1lbnRzOmEuc2V0dGluZ3Mudm9pZHMuaW5jbHVkZXModC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpLGw9W10sYztzLnNwYWNlPT09Imh0bWwiJiZ0LnRhZ05hbWU9PT0ic3ZnIiYmKGEuc2NoZW1hPUI0ZSk7bGV0IGQ9UV9hKGEsdC5wcm9wZXJ0aWVzKSxmPWEuYWxsKHMuc3BhY2U9PT0iaHRtbCImJnQudGFnTmFtZT09PSJ0ZW1wbGF0ZSI/dC5jb250ZW50OnQpO3JldHVybiBhLnNjaGVtYT1zLGYmJihvPSExKSwoZHx8IW58fCFNbnIodCxlLHIpKSYmKGwucHVzaCgiPCIsdC50YWdOYW1lLGQ/IiAiK2Q6IiIpLG8mJihzLnNwYWNlPT09InN2ZyJ8fGEuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZykmJihjPWQuY2hhckF0KGQubGVuZ3RoLTEpLCghYS5zZXR0aW5ncy50aWdodFNlbGZDbG9zaW5nfHxjPT09Ii8ifHxjJiZjIT09JyInJiZjIT09IiciKSYmbC5wdXNoKCIgIiksbC5wdXNoKCIvIikpLGwucHVzaCgiPiIpKSxsLnB1c2goZiksIW8mJighbnx8IXRfKHQsZSxyKSkmJmwucHVzaCgiPC8iK3QudGFnTmFtZSsiPiIpLGwuam9pbigiIil9ZnVuY3Rpb24gUV9hKHQsZSl7bGV0IHI9W10sYT0tMSxzO2lmKGUpe2ZvcihzIGluIGUpaWYoZVtzXSE9PW51bGwmJmVbc10hPT12b2lkIDApe2xldCBuPVhfYSh0LHMsZVtzXSk7biYmci5wdXNoKG4pfX1mb3IoOysrYTxyLmxlbmd0aDspe2xldCBuPXQuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzP3JbYV0uY2hhckF0KHJbYV0ubGVuZ3RoLTEpOnZvaWQgMDthIT09ci5sZW5ndGgtMSYmbiE9PSciJyYmbiE9PSInIiYmKHJbYV0rPSIgIil9cmV0dXJuIHIuam9pbigiIil9ZnVuY3Rpb24gWF9hKHQsZSxyKXtsZXQgYT1YRGUodC5zY2hlbWEsZSkscz10LnNldHRpbmdzLmFsbG93UGFyc2VFcnJvcnMmJnQuc2NoZW1hLnNwYWNlPT09Imh0bWwiPzA6MSxuPXQuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzPzA6MSxvPXQucXVvdGUsbDtpZihhLm92ZXJsb2FkZWRCb29sZWFuJiYocj09PWEuYXR0cmlidXRlfHxyPT09IiIpP3I9ITA6KGEuYm9vbGVhbnx8YS5vdmVybG9hZGVkQm9vbGVhbikmJih0eXBlb2YgciE9InN0cmluZyJ8fHI9PT1hLmF0dHJpYnV0ZXx8cj09PSIiKSYmKHI9ISFyKSxyPT1udWxsfHxyPT09ITF8fHR5cGVvZiByPT0ibnVtYmVyIiYmTnVtYmVyLmlzTmFOKHIpKXJldHVybiIiO2xldCBjPUU0KGEuYXR0cmlidXRlLE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6VzRlLm5hbWVbc11bbl19KSk7cmV0dXJuIHI9PT0hMHx8KHI9QXJyYXkuaXNBcnJheShyKT8oYS5jb21tYVNlcGFyYXRlZD9tbnI6Ym5yKShyLHtwYWRMZWZ0OiF0LnNldHRpbmdzLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c30pOlN0cmluZyhyKSx0LnNldHRpbmdzLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzJiYhcik/YzoodC5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCYmKGw9RTQocixPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7YXR0cmlidXRlOiEwLHN1YnNldDpXNGUudW5xdW90ZWRbc11bbl19KSkpLGwhPT1yJiYodC5zZXR0aW5ncy5xdW90ZVNtYXJ0JiZadihyLG8pPlp2KHIsdC5hbHRlcm5hdGl2ZSkmJihvPXQuYWx0ZXJuYXRpdmUpLGw9bytFNChyLE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6KG89PT0iJyI/VzRlLnNpbmdsZTpXNGUuZG91YmxlKVtzXVtuXSxhdHRyaWJ1dGU6ITB9KSkrbyksYysobCYmIj0iK2wpKX12YXIgVzRlLF9ucj11KCgpPT57V1RlKCk7Z25yKCk7SkRlKCk7eG5yKCk7VjRlKCk7biRlKCk7Q25yKCk7VzRlPXtuYW1lOltbYAkKXGZcciAmLz0+YC5zcGxpdCgiIiksYAkKXGZcciAiJicvPT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJy88PT5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnLzw9PlxgYC5zcGxpdCgiIildXSx1bnF1b3RlZDpbW2AJClxmXHIgJj5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKV0sW2BcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXV0sc2luZ2xlOltbIiYnIi5zcGxpdCgiIiksIlwiJidgIi5zcGxpdCgiIildLFsiXDAmJyIuc3BsaXQoIiIpLCJcMFwiJidgIi5zcGxpdCgiIildXSxkb3VibGU6W1snIiYnLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWydcMCImJy5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dfTtpKHpuciwiZWxlbWVudCIpO2koUV9hLCJzZXJpYWxpemVBdHRyaWJ1dGVzIik7aShYX2EsInNlcmlhbGl6ZUF0dHJpYnV0ZSIpfSk7ZnVuY3Rpb24gRzRlKHQsZSxyLGEpe3JldHVybiByJiZyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0ic2NyaXB0Inx8ci50YWdOYW1lPT09InN0eWxlIik/dC52YWx1ZTpFNCh0LnZhbHVlLE9iamVjdC5hc3NpZ24oe30sYS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6Sl9hfSkpfXZhciBKX2EsbyRlPXUoKCk9PntWNGUoKTtKX2E9WyI8IiwiJiJdO2koRzRlLCJ0ZXh0Iil9KTtmdW5jdGlvbiBUbnIodCxlLHIsYSl7cmV0dXJuIGEuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNIdG1sP3QudmFsdWU6RzRlKHQsZSxyLGEpfXZhciBMbnI9dSgoKT0+e28kZSgpO2koVG5yLCJyYXciKX0pO2Z1bmN0aW9uIERucih0LGUscixhKXtyZXR1cm4gYS5hbGwodCl9dmFyICRucj11KCgpPT57aShEbnIsInJvb3QiKX0pO2Z1bmN0aW9uIGVUYSh0KXt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIG5vZGUsIG5vdCBgIit0KyJgIil9ZnVuY3Rpb24gdFRhKHQpe2xldCBlPXQ7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY29tcGlsZSB1bmtub3duIG5vZGUgYCIrZS50eXBlKyJgIil9dmFyIEFucixFbnI9dSgoKT0+e2FMZSgpO3BucigpO2hucigpO19ucigpO0xucigpOyRucigpO28kZSgpO0Fucj1XZGUoInR5cGUiLHtpbnZhbGlkOmVUYSx1bmtub3duOnRUYSxoYW5kbGVyczp7Y29tbWVudDp1bnIsZG9jdHlwZTpmbnIsZWxlbWVudDp6bnIscmF3OlRucixyb290OkRucix0ZXh0Okc0ZX19KTtpKGVUYSwiaW52YWxpZCIpO2kodFRhLCJ1bmtub3duIil9KTtmdW5jdGlvbiBsJGUodCxlKXtsZXQgcj1lfHxyVGEsYT1yLnF1b3RlfHwnIicscz1hPT09JyInPyInIjonIic7aWYoYSE9PSciJyYmYSE9PSInIil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcXVvdGUgYCIrYSsiYCwgZXhwZWN0ZWQgYCdgIG9yIGBcImAiKTtyZXR1cm57b25lOnNUYSxhbGw6blRhLHNldHRpbmdzOntvbWl0T3B0aW9uYWxUYWdzOnIub21pdE9wdGlvbmFsVGFnc3x8ITEsYWxsb3dQYXJzZUVycm9yczpyLmFsbG93UGFyc2VFcnJvcnN8fCExLGFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyczpyLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyc3x8ITEscXVvdGVTbWFydDpyLnF1b3RlU21hcnR8fCExLHByZWZlclVucXVvdGVkOnIucHJlZmVyVW5xdW90ZWR8fCExLHRpZ2h0QXR0cmlidXRlczpyLnRpZ2h0QXR0cmlidXRlc3x8ITEsdXBwZXJEb2N0eXBlOnIudXBwZXJEb2N0eXBlfHwhMSx0aWdodERvY3R5cGU6ci50aWdodERvY3R5cGV8fCExLGJvZ3VzQ29tbWVudHM6ci5ib2d1c0NvbW1lbnRzfHwhMSx0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM6ci50aWdodENvbW1hU2VwYXJhdGVkTGlzdHN8fCExLHRpZ2h0U2VsZkNsb3Npbmc6ci50aWdodFNlbGZDbG9zaW5nfHwhMSxjb2xsYXBzZUVtcHR5QXR0cmlidXRlczpyLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzfHwhMSxhbGxvd0Rhbmdlcm91c0h0bWw6ci5hbGxvd0Rhbmdlcm91c0h0bWx8fCExLHZvaWRzOnIudm9pZHN8fERzcixjaGFyYWN0ZXJSZWZlcmVuY2VzOnIuY2hhcmFjdGVyUmVmZXJlbmNlc3x8YVRhLGNsb3NlU2VsZkNsb3Npbmc6ci5jbG9zZVNlbGZDbG9zaW5nfHwhMSxjbG9zZUVtcHR5RWxlbWVudHM6ci5jbG9zZUVtcHR5RWxlbWVudHN8fCExfSxzY2hlbWE6ci5zcGFjZT09PSJzdmciP0I0ZTpVc3IscXVvdGU6YSxhbHRlcm5hdGl2ZTpzfS5vbmUoQXJyYXkuaXNBcnJheSh0KT97dHlwZToicm9vdCIsY2hpbGRyZW46dH06dCx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiBzVGEodCxlLHIpe3JldHVybiBBbnIodCxlLHIsdGhpcyl9ZnVuY3Rpb24gblRhKHQpe2xldCBlPVtdLHI9dCYmdC5jaGlsZHJlbnx8aVRhLGE9LTE7Zm9yKDsrK2E8ci5sZW5ndGg7KWVbYV09dGhpcy5vbmUoclthXSxhLHQpO3JldHVybiBlLmpvaW4oIiIpfXZhciByVGEsYVRhLGlUYSxJbnI9dSgoKT0+eyRzcigpO0pEZSgpO0VucigpO3JUYT17fSxhVGE9e30saVRhPVtdO2kobCRlLCJ0b0h0bWwiKTtpKHNUYSwib25lIik7aShuVGEsImFsbCIpfSk7dmFyIFBucj11KCgpPT57SW5yKCl9KTtmdW5jdGlvbiBkeSh0KXtsZXQgZT10aGlzLHtoYW5kbGVyczpyLHNhbml0aXplOmEsLi4uc309dHx8b1RhLG49ITEsbzt0eXBlb2YgYT09ImJvb2xlYW4iP249IWE6YSYmKG89YSksZS5jb21waWxlcj1sO2Z1bmN0aW9uIGwoYyxkKXtsZXQgZj1CRGUoYyx7aGFuZGxlcnM6cixhbGxvd0Rhbmdlcm91c0h0bWw6bn0pLHA9bj9mOklEZShmLG8pLGg9bCRlKHAsey4uLnMsYWxsb3dEYW5nZXJvdXNIdG1sOm59KTtyZXR1cm4gZC5leHRuYW1lJiYoZC5leHRuYW1lPSIuaHRtbCIpLGMmJmMudHlwZT09PSJyb290IiYmaCYmL1teXHJcbl0vLnRlc3QoaC5jaGFyQXQoaC5sZW5ndGgtMSkpP2grYApgOmh9aShsLCJjb21waWxlciIpfXZhciBvVGEsTm5yPXUoKCk9PntDaXIoKTtMc3IoKTtQbnIoKTtvVGE9e307aShkeSwicmVtYXJrSHRtbCIpfSk7dmFyIE9ucj11KCgpPT57Tm5yKCl9KTtmdW5jdGlvbiB1eSh0KXtsZXQgZT10aGlzO2UuY29tcGlsZXI9cjtmdW5jdGlvbiByKGEpe3JldHVybiBNTGUoYSx7Li4uZS5kYXRhKCJzZXR0aW5ncyIpLC4uLnQsZXh0ZW5zaW9uczplLmRhdGEoInRvTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9aShyLCJjb21waWxlciIpfXZhciBSbnI9dSgoKT0+e3I0ZSgpO2kodXksInJlbWFya1N0cmluZ2lmeSIpfSk7dmFyIEZucj11KCgpPT57Um5yKCl9KTtmdW5jdGlvbiBsVGEodCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIHI9YXJndW1lbnRzW2VdO2Zvcih2YXIgYSBpbiByKXIuaGFzT3duUHJvcGVydHkoYSkmJih0W2FdPXJbYV0pfXJldHVybiB0fWZ1bmN0aW9uIGMkZSh0LGUpe3JldHVybiBBcnJheShlKzEpLmpvaW4odCl9ZnVuY3Rpb24gQm5yKHQpe3JldHVybiB0LnJlcGxhY2UoL15cbiovLCIiKX1mdW5jdGlvbiBIbnIodCl7Zm9yKHZhciBlPXQubGVuZ3RoO2U+MCYmdFtlLTFdPT09YApgOyllLS07cmV0dXJuIHQuc3Vic3RyaW5nKDAsZSl9ZnVuY3Rpb24gcW5yKHQpe3JldHVybiBIbnIoQm5yKHQpKX1mdW5jdGlvbiBkJGUodCl7cmV0dXJuIHUkZSh0LGNUYSl9ZnVuY3Rpb24gam5yKHQpe3JldHVybiB1JGUodCxWbnIpfWZ1bmN0aW9uIGRUYSh0KXtyZXR1cm4gV25yKHQsVm5yKX1mdW5jdGlvbiB1VGEodCl7cmV0dXJuIHUkZSh0LFVucil9ZnVuY3Rpb24gcFRhKHQpe3JldHVybiBXbnIodCxVbnIpfWZ1bmN0aW9uIHUkZSh0LGUpe3JldHVybiBlLmluZGV4T2YodC5ub2RlTmFtZSk+PTB9ZnVuY3Rpb24gV25yKHQsZSl7cmV0dXJuIHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJmUuc29tZShmdW5jdGlvbihyKXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5VGFnTmFtZShyKS5sZW5ndGh9KX1mdW5jdGlvbiBZNGUodCl7cmV0dXJuIHQ/dC5yZXBsYWNlKC8oXG4rXHMqKSsvZyxgCmApOiIifWZ1bmN0aW9uIEducih0KXt0aGlzLm9wdGlvbnM9dCx0aGlzLl9rZWVwPVtdLHRoaXMuX3JlbW92ZT1bXSx0aGlzLmJsYW5rUnVsZT17cmVwbGFjZW1lbnQ6dC5ibGFua1JlcGxhY2VtZW50fSx0aGlzLmtlZXBSZXBsYWNlbWVudD10LmtlZXBSZXBsYWNlbWVudCx0aGlzLmRlZmF1bHRSdWxlPXtyZXBsYWNlbWVudDp0LmRlZmF1bHRSZXBsYWNlbWVudH0sdGhpcy5hcnJheT1bXTtmb3IodmFyIGUgaW4gdC5ydWxlcyl0aGlzLmFycmF5LnB1c2godC5ydWxlc1tlXSl9ZnVuY3Rpb24gcCRlKHQsZSxyKXtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIHM9dFthXTtpZihmVGEocyxlLHIpKXJldHVybiBzfX1mdW5jdGlvbiBmVGEodCxlLHIpe3ZhciBhPXQuZmlsdGVyO2lmKHR5cGVvZiBhPT0ic3RyaW5nIil7aWYoYT09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4hMH1lbHNlIGlmKEFycmF5LmlzQXJyYXkoYSkpe2lmKGEuaW5kZXhPZihlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpPi0xKXJldHVybiEwfWVsc2UgaWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpe2lmKGEuY2FsbCh0LGUscikpcmV0dXJuITB9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJgZmlsdGVyYCBuZWVkcyB0byBiZSBhIHN0cmluZywgYXJyYXksIG9yIGZ1bmN0aW9uIil9ZnVuY3Rpb24gaFRhKHQpe3ZhciBlPXQuZWxlbWVudCxyPXQuaXNCbG9jayxhPXQuaXNWb2lkLHM9dC5pc1ByZXx8ZnVuY3Rpb24ocCl7cmV0dXJuIHAubm9kZU5hbWU9PT0iUFJFIn07aWYoISghZS5maXJzdENoaWxkfHxzKGUpKSl7Zm9yKHZhciBuPW51bGwsbz0hMSxsPW51bGwsYz1ZbnIobCxlLHMpO2MhPT1lOyl7aWYoYy5ub2RlVHlwZT09PTN8fGMubm9kZVR5cGU9PT00KXt2YXIgZD1jLmRhdGEucmVwbGFjZSgvWyBcclxuXHRdKy9nLCIgIik7aWYoKCFufHwvICQvLnRlc3Qobi5kYXRhKSkmJiFvJiZkWzBdPT09IiAiJiYoZD1kLnN1YnN0cigxKSksIWQpe2M9ZiRlKGMpO2NvbnRpbnVlfWMuZGF0YT1kLG49Y31lbHNlIGlmKGMubm9kZVR5cGU9PT0xKXIoYyl8fGMubm9kZU5hbWU9PT0iQlIiPyhuJiYobi5kYXRhPW4uZGF0YS5yZXBsYWNlKC8gJC8sIiIpKSxuPW51bGwsbz0hMSk6YShjKXx8cyhjKT8obj1udWxsLG89ITApOm4mJihvPSExKTtlbHNle2M9ZiRlKGMpO2NvbnRpbnVlfXZhciBmPVlucihsLGMscyk7bD1jLGM9Zn1uJiYobi5kYXRhPW4uZGF0YS5yZXBsYWNlKC8gJC8sIiIpLG4uZGF0YXx8ZiRlKG4pKX19ZnVuY3Rpb24gZiRlKHQpe3ZhciBlPXQubmV4dFNpYmxpbmd8fHQucGFyZW50Tm9kZTtyZXR1cm4gdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLGV9ZnVuY3Rpb24gWW5yKHQsZSxyKXtyZXR1cm4gdCYmdC5wYXJlbnROb2RlPT09ZXx8cihlKT9lLm5leHRTaWJsaW5nfHxlLnBhcmVudE5vZGU6ZS5maXJzdENoaWxkfHxlLm5leHRTaWJsaW5nfHxlLnBhcmVudE5vZGV9ZnVuY3Rpb24gbVRhKCl7dmFyIHQ9aCRlLkRPTVBhcnNlcixlPSExO3RyeXtuZXcgdCgpLnBhcnNlRnJvbVN0cmluZygiIiwidGV4dC9odG1sIikmJihlPSEwKX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24gZ1RhKCl7dmFyIHQ9aShmdW5jdGlvbigpe30sIlBhcnNlciIpO3JldHVybiBiVGEoKT90LnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHI9bmV3IHdpbmRvdy5BY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpO3JldHVybiByLmRlc2lnbk1vZGU9Im9uIixyLm9wZW4oKSxyLndyaXRlKGUpLHIuY2xvc2UoKSxyfTp0LnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHI9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTtyZXR1cm4gci5vcGVuKCksci53cml0ZShlKSxyLmNsb3NlKCkscn0sdH1mdW5jdGlvbiBiVGEoKXt2YXIgdD0hMTt0cnl7ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKS5vcGVuKCl9Y2F0Y2h7aCRlLkFjdGl2ZVhPYmplY3QmJih0PSEwKX1yZXR1cm4gdH1mdW5jdGlvbiB2VGEodCxlKXt2YXIgcjtpZih0eXBlb2YgdD09InN0cmluZyIpe3ZhciBhPXlUYSgpLnBhcnNlRnJvbVN0cmluZygnPHgtdHVybmRvd24gaWQ9InR1cm5kb3duLXJvb3QiPicrdCsiPC94LXR1cm5kb3duPiIsInRleHQvaHRtbCIpO3I9YS5nZXRFbGVtZW50QnlJZCgidHVybmRvd24tcm9vdCIpfWVsc2Ugcj10LmNsb25lTm9kZSghMCk7cmV0dXJuIGhUYSh7ZWxlbWVudDpyLGlzQmxvY2s6ZCRlLGlzVm9pZDpqbnIsaXNQcmU6ZS5wcmVmb3JtYXR0ZWRDb2RlP3dUYTpudWxsfSkscn1mdW5jdGlvbiB5VGEoKXtyZXR1cm4gbSRlPW0kZXx8bmV3IHhUYSxtJGV9ZnVuY3Rpb24gd1RhKHQpe3JldHVybiB0Lm5vZGVOYW1lPT09IlBSRSJ8fHQubm9kZU5hbWU9PT0iQ09ERSJ9ZnVuY3Rpb24ga1RhKHQsZSl7cmV0dXJuIHQuaXNCbG9jaz1kJGUodCksdC5pc0NvZGU9dC5ub2RlTmFtZT09PSJDT0RFInx8dC5wYXJlbnROb2RlLmlzQ29kZSx0LmlzQmxhbms9U1RhKHQpLHQuZmxhbmtpbmdXaGl0ZXNwYWNlPU1UYSh0LGUpLHR9ZnVuY3Rpb24gU1RhKHQpe3JldHVybiFqbnIodCkmJiF1VGEodCkmJi9eXHMqJC9pLnRlc3QodC50ZXh0Q29udGVudCkmJiFkVGEodCkmJiFwVGEodCl9ZnVuY3Rpb24gTVRhKHQsZSl7aWYodC5pc0Jsb2NrfHxlLnByZWZvcm1hdHRlZENvZGUmJnQuaXNDb2RlKXJldHVybntsZWFkaW5nOiIiLHRyYWlsaW5nOiIifTt2YXIgcj1DVGEodC50ZXh0Q29udGVudCk7cmV0dXJuIHIubGVhZGluZ0FzY2lpJiZLbnIoImxlZnQiLHQsZSkmJihyLmxlYWRpbmc9ci5sZWFkaW5nTm9uQXNjaWkpLHIudHJhaWxpbmdBc2NpaSYmS25yKCJyaWdodCIsdCxlKSYmKHIudHJhaWxpbmc9ci50cmFpbGluZ05vbkFzY2lpKSx7bGVhZGluZzpyLmxlYWRpbmcsdHJhaWxpbmc6ci50cmFpbGluZ319ZnVuY3Rpb24gQ1RhKHQpe3ZhciBlPXQubWF0Y2goL14oKFsgXHRcclxuXSopKFxzKikpKD86KD89XFMpW1xzXFNdKlxTKT8oKFxzKj8pKFsgXHRcclxuXSopKSQvKTtyZXR1cm57bGVhZGluZzplWzFdLGxlYWRpbmdBc2NpaTplWzJdLGxlYWRpbmdOb25Bc2NpaTplWzNdLHRyYWlsaW5nOmVbNF0sdHJhaWxpbmdOb25Bc2NpaTplWzVdLHRyYWlsaW5nQXNjaWk6ZVs2XX19ZnVuY3Rpb24gS25yKHQsZSxyKXt2YXIgYSxzLG47cmV0dXJuIHQ9PT0ibGVmdCI/KGE9ZS5wcmV2aW91c1NpYmxpbmcscz0vICQvKTooYT1lLm5leHRTaWJsaW5nLHM9L14gLyksYSYmKGEubm9kZVR5cGU9PT0zP249cy50ZXN0KGEubm9kZVZhbHVlKTpyLnByZWZvcm1hdHRlZENvZGUmJmEubm9kZU5hbWU9PT0iQ09ERSI/bj0hMTphLm5vZGVUeXBlPT09MSYmIWQkZShhKSYmKG49cy50ZXN0KGEudGV4dENvbnRlbnQpKSksbn1mdW5jdGlvbiBLNGUodCl7aWYoISh0aGlzIGluc3RhbmNlb2YgSzRlKSlyZXR1cm4gbmV3IEs0ZSh0KTt2YXIgZT17cnVsZXM6eG8saGVhZGluZ1N0eWxlOiJzZXRleHQiLGhyOiIqICogKiIsYnVsbGV0TGlzdE1hcmtlcjoiKiIsY29kZUJsb2NrU3R5bGU6ImluZGVudGVkIixmZW5jZToiYGBgIixlbURlbGltaXRlcjoiXyIsc3Ryb25nRGVsaW1pdGVyOiIqKiIsbGlua1N0eWxlOiJpbmxpbmVkIixsaW5rUmVmZXJlbmNlU3R5bGU6ImZ1bGwiLGJyOiIgICIscHJlZm9ybWF0dGVkQ29kZTohMSxibGFua1JlcGxhY2VtZW50OmkoZnVuY3Rpb24ocixhKXtyZXR1cm4gYS5pc0Jsb2NrP2AKCmA6IiJ9LCJibGFua1JlcGxhY2VtZW50Iiksa2VlcFJlcGxhY2VtZW50OmkoZnVuY3Rpb24ocixhKXtyZXR1cm4gYS5pc0Jsb2NrP2AKCmArYS5vdXRlckhUTUwrYAoKYDphLm91dGVySFRNTH0sImtlZXBSZXBsYWNlbWVudCIpLGRlZmF1bHRSZXBsYWNlbWVudDppKGZ1bmN0aW9uKHIsYSl7cmV0dXJuIGEuaXNCbG9jaz9gCgpgK3IrYAoKYDpyfSwiZGVmYXVsdFJlcGxhY2VtZW50Iil9O3RoaXMub3B0aW9ucz1sVGEoe30sZSx0KSx0aGlzLnJ1bGVzPW5ldyBHbnIodGhpcy5vcHRpb25zKX1mdW5jdGlvbiBabnIodCl7dmFyIGU9dGhpcztyZXR1cm4gelRhLmNhbGwodC5jaGlsZE5vZGVzLGZ1bmN0aW9uKHIsYSl7YT1uZXcga1RhKGEsZS5vcHRpb25zKTt2YXIgcz0iIjtyZXR1cm4gYS5ub2RlVHlwZT09PTM/cz1hLmlzQ29kZT9hLm5vZGVWYWx1ZTplLmVzY2FwZShhLm5vZGVWYWx1ZSk6YS5ub2RlVHlwZT09PTEmJihzPUxUYS5jYWxsKGUsYSkpLFFucihyLHMpfSwiIil9ZnVuY3Rpb24gVFRhKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMucnVsZXMuZm9yRWFjaChmdW5jdGlvbihyKXt0eXBlb2Ygci5hcHBlbmQ9PSJmdW5jdGlvbiImJih0PVFucih0LHIuYXBwZW5kKGUub3B0aW9ucykpKX0pLHQucmVwbGFjZSgvXltcdFxyXG5dKy8sIiIpLnJlcGxhY2UoL1tcdFxyXG5cc10rJC8sIiIpfWZ1bmN0aW9uIExUYSh0KXt2YXIgZT10aGlzLnJ1bGVzLmZvck5vZGUodCkscj1abnIuY2FsbCh0aGlzLHQpLGE9dC5mbGFua2luZ1doaXRlc3BhY2U7cmV0dXJuKGEubGVhZGluZ3x8YS50cmFpbGluZykmJihyPXIudHJpbSgpKSxhLmxlYWRpbmcrZS5yZXBsYWNlbWVudChyLHQsdGhpcy5vcHRpb25zKSthLnRyYWlsaW5nfWZ1bmN0aW9uIFFucih0LGUpe3ZhciByPUhucih0KSxhPUJucihlKSxzPU1hdGgubWF4KHQubGVuZ3RoLXIubGVuZ3RoLGUubGVuZ3RoLWEubGVuZ3RoKSxuPWAKCmAuc3Vic3RyaW5nKDAscyk7cmV0dXJuIHIrbithfWZ1bmN0aW9uIERUYSh0KXtyZXR1cm4gdCE9bnVsbCYmKHR5cGVvZiB0PT0ic3RyaW5nInx8dC5ub2RlVHlwZSYmKHQubm9kZVR5cGU9PT0xfHx0Lm5vZGVUeXBlPT09OXx8dC5ub2RlVHlwZT09PTExKSl9dmFyIGNUYSxWbnIsVW5yLHhvLGgkZSx4VGEsbSRlLHpUYSxfVGEsWjRlLFhucj11KCgpPT57aShsVGEsImV4dGVuZCIpO2koYyRlLCJyZXBlYXQiKTtpKEJuciwidHJpbUxlYWRpbmdOZXdsaW5lcyIpO2koSG5yLCJ0cmltVHJhaWxpbmdOZXdsaW5lcyIpO2kocW5yLCJ0cmltTmV3bGluZXMiKTtjVGE9WyJBRERSRVNTIiwiQVJUSUNMRSIsIkFTSURFIiwiQVVESU8iLCJCTE9DS1FVT1RFIiwiQk9EWSIsIkNBTlZBUyIsIkNFTlRFUiIsIkREIiwiRElSIiwiRElWIiwiREwiLCJEVCIsIkZJRUxEU0VUIiwiRklHQ0FQVElPTiIsIkZJR1VSRSIsIkZPT1RFUiIsIkZPUk0iLCJGUkFNRVNFVCIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkhFQURFUiIsIkhHUk9VUCIsIkhSIiwiSFRNTCIsIklTSU5ERVgiLCJMSSIsIk1BSU4iLCJNRU5VIiwiTkFWIiwiTk9GUkFNRVMiLCJOT1NDUklQVCIsIk9MIiwiT1VUUFVUIiwiUCIsIlBSRSIsIlNFQ1RJT04iLCJUQUJMRSIsIlRCT0RZIiwiVEQiLCJURk9PVCIsIlRIIiwiVEhFQUQiLCJUUiIsIlVMIl07aShkJGUsImlzQmxvY2siKTtWbnI9WyJBUkVBIiwiQkFTRSIsIkJSIiwiQ09MIiwiQ09NTUFORCIsIkVNQkVEIiwiSFIiLCJJTUciLCJJTlBVVCIsIktFWUdFTiIsIkxJTksiLCJNRVRBIiwiUEFSQU0iLCJTT1VSQ0UiLCJUUkFDSyIsIldCUiJdO2koam5yLCJpc1ZvaWQiKTtpKGRUYSwiaGFzVm9pZCIpO1Vucj1bIkEiLCJUQUJMRSIsIlRIRUFEIiwiVEJPRFkiLCJURk9PVCIsIlRIIiwiVEQiLCJJRlJBTUUiLCJTQ1JJUFQiLCJBVURJTyIsIlZJREVPIl07aSh1VGEsImlzTWVhbmluZ2Z1bFdoZW5CbGFuayIpO2kocFRhLCJoYXNNZWFuaW5nZnVsV2hlbkJsYW5rIik7aSh1JGUsImlzIik7aShXbnIsImhhcyIpO3hvPXt9O3hvLnBhcmFncmFwaD17ZmlsdGVyOiJwIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQpe3JldHVybmAKCmArdCtgCgpgfSwicmVwbGFjZW1lbnQiKX0seG8ubGluZUJyZWFrPXtmaWx0ZXI6ImJyIixyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gci5icitgCmB9LCJyZXBsYWNlbWVudCIpfSx4by5oZWFkaW5nPXtmaWx0ZXI6WyJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1OdW1iZXIoZS5ub2RlTmFtZS5jaGFyQXQoMSkpO2lmKHIuaGVhZGluZ1N0eWxlPT09InNldGV4dCImJmE8Myl7dmFyIHM9YyRlKGE9PT0xPyI9IjoiLSIsdC5sZW5ndGgpO3JldHVybmAKCmArdCtgCmArcytgCgpgfWVsc2UgcmV0dXJuYAoKYCtjJGUoIiMiLGEpKyIgIit0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5ibG9ja3F1b3RlPXtmaWx0ZXI6ImJsb2NrcXVvdGUiLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ9cW5yKHQpLnJlcGxhY2UoL14vZ20sIj4gIiksYAoKYCt0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5saXN0PXtmaWx0ZXI6WyJ1bCIsIm9sIl0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUpe3ZhciByPWUucGFyZW50Tm9kZTtyZXR1cm4gci5ub2RlTmFtZT09PSJMSSImJnIubGFzdEVsZW1lbnRDaGlsZD09PWU/YApgK3Q6YAoKYCt0K2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5saXN0SXRlbT17ZmlsdGVyOiJsaSIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7dmFyIGE9ci5idWxsZXRMaXN0TWFya2VyKyIgICAiLHM9ZS5wYXJlbnROb2RlO2lmKHMubm9kZU5hbWU9PT0iT0wiKXt2YXIgbj1zLmdldEF0dHJpYnV0ZSgic3RhcnQiKSxvPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwocy5jaGlsZHJlbixlKTthPShuP051bWJlcihuKStvOm8rMSkrIi4gICJ9dmFyIGw9L1xuJC8udGVzdCh0KTtyZXR1cm4gdD1xbnIodCkrKGw/YApgOiIiKSx0PXQucmVwbGFjZSgvXG4vZ20sYApgKyIgIi5yZXBlYXQoYS5sZW5ndGgpKSxhK3QrKGUubmV4dFNpYmxpbmc/YApgOiIiKX0sInJlcGxhY2VtZW50Iil9LHhvLmluZGVudGVkQ29kZUJsb2NrPXtmaWx0ZXI6aShmdW5jdGlvbih0LGUpe3JldHVybiBlLmNvZGVCbG9ja1N0eWxlPT09ImluZGVudGVkIiYmdC5ub2RlTmFtZT09PSJQUkUiJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlLHIpe3JldHVybmAKCiAgICBgK2UuZmlyc3RDaGlsZC50ZXh0Q29udGVudC5yZXBsYWNlKC9cbi9nLGAKICAgIGApK2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5mZW5jZWRDb2RlQmxvY2s9e2ZpbHRlcjppKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuY29kZUJsb2NrU3R5bGU9PT0iZmVuY2VkIiYmdC5ub2RlTmFtZT09PSJQUkUiJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIixzPShhLm1hdGNoKC9sYW5ndWFnZS0oXFMrKS8pfHxbbnVsbCwiIl0pWzFdLG49ZS5maXJzdENoaWxkLnRleHRDb250ZW50LG89ci5mZW5jZS5jaGFyQXQoMCksbD0zLGM9bmV3IFJlZ0V4cCgiXiIrbysiezMsfSIsImdtIiksZDtkPWMuZXhlYyhuKTspZFswXS5sZW5ndGg+PWwmJihsPWRbMF0ubGVuZ3RoKzEpO3ZhciBmPWMkZShvLGwpO3JldHVybmAKCmArZitzK2AKYCtuLnJlcGxhY2UoL1xuJC8sIiIpK2AKYCtmK2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5ob3Jpem9udGFsUnVsZT17ZmlsdGVyOiJociIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuYAoKYCtyLmhyK2AKCmB9LCJyZXBsYWNlbWVudCIpfSx4by5pbmxpbmVMaW5rPXtmaWx0ZXI6aShmdW5jdGlvbih0LGUpe3JldHVybiBlLmxpbmtTdHlsZT09PSJpbmxpbmVkIiYmdC5ub2RlTmFtZT09PSJBIiYmdC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlKXt2YXIgcj1lLmdldEF0dHJpYnV0ZSgiaHJlZiIpO3ImJihyPXIucmVwbGFjZSgvKFsoKV0pL2csIlxcJDEiKSk7dmFyIGE9WTRlKGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKTtyZXR1cm4gYSYmKGE9JyAiJythLnJlcGxhY2UoLyIvZywnXFwiJykrJyInKSwiWyIrdCsiXSgiK3IrYSsiKSJ9LCJyZXBsYWNlbWVudCIpfSx4by5yZWZlcmVuY2VMaW5rPXtmaWx0ZXI6aShmdW5jdGlvbih0LGUpe3JldHVybiBlLmxpbmtTdHlsZT09PSJyZWZlcmVuY2VkIiYmdC5ub2RlTmFtZT09PSJBIiYmdC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlLHIpe3ZhciBhPWUuZ2V0QXR0cmlidXRlKCJocmVmIikscz1ZNGUoZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpO3MmJihzPScgIicrcysnIicpO3ZhciBuLG87c3dpdGNoKHIubGlua1JlZmVyZW5jZVN0eWxlKXtjYXNlImNvbGxhcHNlZCI6bj0iWyIrdCsiXVtdIixvPSJbIit0KyJdOiAiK2ErczticmVhaztjYXNlInNob3J0Y3V0IjpuPSJbIit0KyJdIixvPSJbIit0KyJdOiAiK2ErczticmVhaztkZWZhdWx0OnZhciBsPXRoaXMucmVmZXJlbmNlcy5sZW5ndGgrMTtuPSJbIit0KyJdWyIrbCsiXSIsbz0iWyIrbCsiXTogIithK3N9cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5wdXNoKG8pLG59LCJyZXBsYWNlbWVudCIpLHJlZmVyZW5jZXM6W10sYXBwZW5kOmkoZnVuY3Rpb24odCl7dmFyIGU9IiI7cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5sZW5ndGgmJihlPWAKCmArdGhpcy5yZWZlcmVuY2VzLmpvaW4oYApgKStgCgpgLHRoaXMucmVmZXJlbmNlcz1bXSksZX0sImFwcGVuZCIpfSx4by5lbXBoYXNpcz17ZmlsdGVyOlsiZW0iLCJpIl0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuIHQudHJpbSgpP3IuZW1EZWxpbWl0ZXIrdCtyLmVtRGVsaW1pdGVyOiIifSwicmVwbGFjZW1lbnQiKX0seG8uc3Ryb25nPXtmaWx0ZXI6WyJzdHJvbmciLCJiIl0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUscil7cmV0dXJuIHQudHJpbSgpP3Iuc3Ryb25nRGVsaW1pdGVyK3Qrci5zdHJvbmdEZWxpbWl0ZXI6IiJ9LCJyZXBsYWNlbWVudCIpfSx4by5jb2RlPXtmaWx0ZXI6aShmdW5jdGlvbih0KXt2YXIgZT10LnByZXZpb3VzU2libGluZ3x8dC5uZXh0U2libGluZyxyPXQucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJQUkUiJiYhZTtyZXR1cm4gdC5ub2RlTmFtZT09PSJDT0RFIiYmIXJ9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiIiO3Q9dC5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIik7Zm9yKHZhciBlPS9eYHxeIC4qP1teIF0uKiAkfGAkLy50ZXN0KHQpPyIgIjoiIixyPSJgIixhPXQubWF0Y2goL2ArL2dtKXx8W107YS5pbmRleE9mKHIpIT09LTE7KXI9cisiYCI7cmV0dXJuIHIrZSt0K2Urcn0sInJlcGxhY2VtZW50Iil9LHhvLmltYWdlPXtmaWx0ZXI6ImltZyIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUpe3ZhciByPVk0ZShlLmdldEF0dHJpYnV0ZSgiYWx0IikpLGE9ZS5nZXRBdHRyaWJ1dGUoInNyYyIpfHwiIixzPVk0ZShlLmdldEF0dHJpYnV0ZSgidGl0bGUiKSksbj1zPycgIicrcysnIic6IiI7cmV0dXJuIGE/IiFbIityKyJdKCIrYStuKyIpIjoiIn0sInJlcGxhY2VtZW50Iil9O2koWTRlLCJjbGVhbkF0dHJpYnV0ZSIpO2koR25yLCJSdWxlcyIpLEduci5wcm90b3R5cGU9e2FkZDppKGZ1bmN0aW9uKHQsZSl7dGhpcy5hcnJheS51bnNoaWZ0KGUpfSwiYWRkIiksa2VlcDppKGZ1bmN0aW9uKHQpe3RoaXMuX2tlZXAudW5zaGlmdCh7ZmlsdGVyOnQscmVwbGFjZW1lbnQ6dGhpcy5rZWVwUmVwbGFjZW1lbnR9KX0sImtlZXAiKSxyZW1vdmU6aShmdW5jdGlvbih0KXt0aGlzLl9yZW1vdmUudW5zaGlmdCh7ZmlsdGVyOnQscmVwbGFjZW1lbnQ6aShmdW5jdGlvbigpe3JldHVybiIifSwicmVwbGFjZW1lbnQiKX0pfSwicmVtb3ZlIiksZm9yTm9kZTppKGZ1bmN0aW9uKHQpe2lmKHQuaXNCbGFuaylyZXR1cm4gdGhpcy5ibGFua1J1bGU7dmFyIGU7cmV0dXJuKGU9cCRlKHRoaXMuYXJyYXksdCx0aGlzLm9wdGlvbnMpKXx8KGU9cCRlKHRoaXMuX2tlZXAsdCx0aGlzLm9wdGlvbnMpKXx8KGU9cCRlKHRoaXMuX3JlbW92ZSx0LHRoaXMub3B0aW9ucykpP2U6dGhpcy5kZWZhdWx0UnVsZX0sImZvck5vZGUiKSxmb3JFYWNoOmkoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0aGlzLmFycmF5Lmxlbmd0aDtlKyspdCh0aGlzLmFycmF5W2VdLGUpfSwiZm9yRWFjaCIpfTtpKHAkZSwiZmluZFJ1bGUiKTtpKGZUYSwiZmlsdGVyVmFsdWUiKTtpKGhUYSwiY29sbGFwc2VXaGl0ZXNwYWNlIik7aShmJGUsInJlbW92ZSIpO2koWW5yLCJuZXh0Iik7aCRlPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fTtpKG1UYSwiY2FuUGFyc2VIVE1MTmF0aXZlbHkiKTtpKGdUYSwiY3JlYXRlSFRNTFBhcnNlciIpO2koYlRhLCJzaG91bGRVc2VBY3RpdmVYIik7eFRhPW1UYSgpP2gkZS5ET01QYXJzZXI6Z1RhKCk7aSh2VGEsIlJvb3ROb2RlIik7aSh5VGEsImh0bWxQYXJzZXIiKTtpKHdUYSwiaXNQcmVPckNvZGUiKTtpKGtUYSwiTm9kZSIpO2koU1RhLCJpc0JsYW5rIik7aShNVGEsImZsYW5raW5nV2hpdGVzcGFjZSIpO2koQ1RhLCJlZGdlV2hpdGVzcGFjZSIpO2koS25yLCJpc0ZsYW5rZWRCeVdoaXRlc3BhY2UiKTt6VGE9QXJyYXkucHJvdG90eXBlLnJlZHVjZSxfVGE9W1svXFwvZywiXFxcXCJdLFsvXCovZywiXFwqIl0sWy9eLS9nLCJcXC0iXSxbL15cKyAvZywiXFwrICJdLFsvXig9KykvZywiXFwkMSJdLFsvXigjezEsNn0pIC9nLCJcXCQxICJdLFsvYC9nLCJcXGAiXSxbL15+fn4vZywiXFx+fn4iXSxbL1xbL2csIlxcWyJdLFsvXF0vZywiXFxdIl0sWy9ePi9nLCJcXD4iXSxbL18vZywiXFxfIl0sWy9eKFxkKylcLiAvZywiJDFcXC4gIl1dO2koSzRlLCJUdXJuZG93blNlcnZpY2UiKSxLNGUucHJvdG90eXBlPXt0dXJuZG93bjppKGZ1bmN0aW9uKHQpe2lmKCFEVGEodCkpdGhyb3cgbmV3IFR5cGVFcnJvcih0KyIgaXMgbm90IGEgc3RyaW5nLCBvciBhbiBlbGVtZW50L2RvY3VtZW50L2ZyYWdtZW50IG5vZGUuIik7aWYodD09PSIiKXJldHVybiIiO3ZhciBlPVpuci5jYWxsKHRoaXMsbmV3IHZUYSh0LHRoaXMub3B0aW9ucykpO3JldHVybiBUVGEuY2FsbCh0aGlzLGUpfSwidHVybmRvd24iKSx1c2U6aShmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMudXNlKHRbZV0pO2Vsc2UgaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpdCh0aGlzKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoInBsdWdpbiBtdXN0IGJlIGEgRnVuY3Rpb24gb3IgYW4gQXJyYXkgb2YgRnVuY3Rpb25zIik7cmV0dXJuIHRoaXN9LCJ1c2UiKSxhZGRSdWxlOmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5ydWxlcy5hZGQodCxlKSx0aGlzfSwiYWRkUnVsZSIpLGtlZXA6aShmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ydWxlcy5rZWVwKHQpLHRoaXN9LCJrZWVwIikscmVtb3ZlOmkoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucnVsZXMucmVtb3ZlKHQpLHRoaXN9LCJyZW1vdmUiKSxlc2NhcGU6aShmdW5jdGlvbih0KXtyZXR1cm4gX1RhLnJlZHVjZShmdW5jdGlvbihlLHIpe3JldHVybiBlLnJlcGxhY2UoclswXSxyWzFdKX0sdCl9LCJlc2NhcGUiKX07aShabnIsInByb2Nlc3MiKTtpKFRUYSwicG9zdFByb2Nlc3MiKTtpKExUYSwicmVwbGFjZW1lbnRGb3JOb2RlIik7aShRbnIsImpvaW4iKTtpKERUYSwiY2FuQ29udmVydCIpO1o0ZT1LNGV9KTt2YXIgcl89e307VmUocl8se2dmbTooKT0+dG9yLGhpZ2hsaWdodGVkQ29kZUJsb2NrOigpPT5iJGUsc3RyaWtldGhyb3VnaDooKT0+eCRlLHRhYmxlczooKT0+diRlLHRhc2tMaXN0SXRlbXM6KCk9PnkkZX0pO2Z1bmN0aW9uIGIkZSh0KXt0LmFkZFJ1bGUoImhpZ2hsaWdodGVkQ29kZUJsb2NrIix7ZmlsdGVyOmkoZnVuY3Rpb24oZSl7dmFyIHI9ZS5maXJzdENoaWxkO3JldHVybiBlLm5vZGVOYW1lPT09IkRJViImJkpuci50ZXN0KGUuY2xhc3NOYW1lKSYmciYmci5ub2RlTmFtZT09PSJQUkUifSwiZmlsdGVyIikscmVwbGFjZW1lbnQ6aShmdW5jdGlvbihlLHIsYSl7dmFyIHM9ci5jbGFzc05hbWV8fCIiLG49KHMubWF0Y2goSm5yKXx8W251bGwsIiJdKVsxXTtyZXR1cm5gCgpgK2EuZmVuY2UrbitgCmArci5maXJzdENoaWxkLnRleHRDb250ZW50K2AKYCthLmZlbmNlK2AKCmB9LCJyZXBsYWNlbWVudCIpfSl9ZnVuY3Rpb24geCRlKHQpe3QuYWRkUnVsZSgic3RyaWtldGhyb3VnaCIse2ZpbHRlcjpbImRlbCIsInMiLCJzdHJpa2UiXSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKGUpe3JldHVybiJ+IitlKyJ+In0sInJlcGxhY2VtZW50Iil9KX1mdW5jdGlvbiBnJGUodCl7dmFyIGU9dC5wYXJlbnROb2RlO3JldHVybiBlLm5vZGVOYW1lPT09IlRIRUFEInx8ZS5maXJzdENoaWxkPT09dCYmKGUubm9kZU5hbWU9PT0iVEFCTEUifHxFVGEoZSkpJiZBVGEuY2FsbCh0LmNoaWxkTm9kZXMsZnVuY3Rpb24ocil7cmV0dXJuIHIubm9kZU5hbWU9PT0iVEgifSl9ZnVuY3Rpb24gRVRhKHQpe3ZhciBlPXQucHJldmlvdXNTaWJsaW5nO3JldHVybiB0Lm5vZGVOYW1lPT09IlRCT0RZIiYmKCFlfHxlLm5vZGVOYW1lPT09IlRIRUFEIiYmL15ccyokL2kudGVzdChlLnRleHRDb250ZW50KSl9ZnVuY3Rpb24gZW9yKHQsZSl7dmFyIHI9JFRhLmNhbGwoZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMsZSksYT0iICI7cmV0dXJuIHI9PT0wJiYoYT0ifCAiKSxhK3QrIiB8In1mdW5jdGlvbiB2JGUodCl7dC5rZWVwKGZ1bmN0aW9uKHIpe3JldHVybiByLm5vZGVOYW1lPT09IlRBQkxFIiYmIWckZShyLnJvd3NbMF0pfSk7Zm9yKHZhciBlIGluIHB5KXQuYWRkUnVsZShlLHB5W2VdKX1mdW5jdGlvbiB5JGUodCl7dC5hZGRSdWxlKCJ0YXNrTGlzdEl0ZW1zIix7ZmlsdGVyOmkoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PSJjaGVja2JveCImJmUucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJMSSJ9LCJmaWx0ZXIiKSxyZXBsYWNlbWVudDppKGZ1bmN0aW9uKGUscil7cmV0dXJuKHIuY2hlY2tlZD8iW3hdIjoiWyBdIikrIiAifSwicmVwbGFjZW1lbnQiKX0pfWZ1bmN0aW9uIHRvcih0KXt0LnVzZShbYiRlLHgkZSx2JGUseSRlXSl9dmFyIEpuciwkVGEsQVRhLHB5LHJvcj11KCgpPT57Sm5yPS9oaWdobGlnaHQtKD86dGV4dHxzb3VyY2UpLShbYS16MC05XSspLztpKGIkZSwiaGlnaGxpZ2h0ZWRDb2RlQmxvY2siKTtpKHgkZSwic3RyaWtldGhyb3VnaCIpOyRUYT1BcnJheS5wcm90b3R5cGUuaW5kZXhPZixBVGE9QXJyYXkucHJvdG90eXBlLmV2ZXJ5LHB5PXt9O3B5LnRhYmxlQ2VsbD17ZmlsdGVyOlsidGgiLCJ0ZCJdLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gZW9yKHQsZSl9LCJyZXBsYWNlbWVudCIpfSxweS50YWJsZVJvdz17ZmlsdGVyOiJ0ciIscmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0LGUpe3ZhciByPSIiLGE9e2xlZnQ6IjotLSIscmlnaHQ6Ii0tOiIsY2VudGVyOiI6LToifTtpZihnJGUoZSkpZm9yKHZhciBzPTA7czxlLmNoaWxkTm9kZXMubGVuZ3RoO3MrKyl7dmFyIG49Ii0tLSIsbz0oZS5jaGlsZE5vZGVzW3NdLmdldEF0dHJpYnV0ZSgiYWxpZ24iKXx8IiIpLnRvTG93ZXJDYXNlKCk7byYmKG49YVtvXXx8bikscis9ZW9yKG4sZS5jaGlsZE5vZGVzW3NdKX1yZXR1cm5gCmArdCsocj9gCmArcjoiIil9LCJyZXBsYWNlbWVudCIpfSxweS50YWJsZT17ZmlsdGVyOmkoZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZU5hbWU9PT0iVEFCTEUiJiZnJGUodC5yb3dzWzBdKX0sImZpbHRlciIpLHJlcGxhY2VtZW50OmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC5yZXBsYWNlKGAKCmAsYApgKSxgCgpgK3QrYAoKYH0sInJlcGxhY2VtZW50Iil9LHB5LnRhYmxlU2VjdGlvbj17ZmlsdGVyOlsidGhlYWQiLCJ0Ym9keSIsInRmb290Il0scmVwbGFjZW1lbnQ6aShmdW5jdGlvbih0KXtyZXR1cm4gdH0sInJlcGxhY2VtZW50Iil9O2koZyRlLCJpc0hlYWRpbmdSb3ciKTtpKEVUYSwiaXNGaXJzdFRib2R5Iik7aShlb3IsImNlbGwiKTtpKHYkZSwidGFibGVzIik7aSh5JGUsInRhc2tMaXN0SXRlbXMiKTtpKHRvciwiZ2ZtIil9KTt2YXIgdyRlLGskZT11KCgpPT57dyRlPUdhKFZKdCgpLDEpO2tlcigpO0xhcigpO3RpcigpO2ZpcigpO09ucigpO0ZucigpO1hucigpO3JvcigpfSk7dmFyIFE0ZSxpb3I9dSgoKT0+e2skZSgpO1E0ZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIk1kUGFyc2VkUmVzdWx0Iil9c3RhdGljIGFzeW5jIGNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhlKXtsZXQgcj1uZXcgdDtyZXR1cm4gYXdhaXQgci51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSkscn1hc3luYyB1cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl7bGV0IHIsYT1hd2FpdCBBeigpLnVzZShpeSkudXNlKGF5KS51c2UobnksWyJ5YW1sIiwidG9tbCJdKS51c2UodXkpLnVzZShkeSkudXNlKCgpPT5zPT57Y29uc29sZS5kaXIocyk7bGV0IG49cy5jaGlsZHJlbi5maW5kKG89Pm8udHlwZT09PSJ5YW1sIik7biYmKHI9bi52YWx1ZSl9KS5wcm9jZXNzKGUpO3RoaXMuaHRtbD1hLnRvU3RyaW5nKCkscj90aGlzLmZyb250bWF0dGVyRGF0YT1hd2FpdCB3JGUueWFtbFN0cmluZ1RvT2JqZWN0KHIpOnRoaXMuZnJvbnRtYXR0ZXJEYXRhPXt9fX19KTt2YXIgYV89e307VmUoYV8se1NtYXJ0TWFya2Rvd246KCk9PlMkZX0pO3ZhciBTJGUsc29yPXUoKCk9PntrJGUoKTtpb3IoKTtTJGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTbWFydE1hcmtkb3duIil9c3RhdGljIGFzeW5jIGVhc3lNYXJrZG93blRvSHRtbChlKXtyZXR1cm4oYXdhaXQgbmV3IHQoKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKSkuaHRtbH1jb25zdHJ1Y3Rvcigpe31hc3luYyBnZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKXtyZXR1cm4gYXdhaXQgUTRlLmNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhlKX1odG1sVG9NYXJrZG93bihlKXtsZXQgcj1uZXcgWjRlKHtoZWFkaW5nU3R5bGU6ImF0eCIsY29kZUJsb2NrU3R5bGU6ImZlbmNlZCJ9KTtyZXR1cm4gci51c2Uocl8uZ2ZtKSxyLnR1cm5kb3duKGUpfX19KTt2YXIgdW9yPU50KGFjPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYWMuUGF0aEVycm9yPWFjLlRva2VuRGF0YT12b2lkIDAsYWMucGFyc2U9XyRlLGFjLmNvbXBpbGU9TlRhLGFjLm1hdGNoPVJUYSxhYy5wYXRoVG9SZWdleHA9bG9yLGFjLnN0cmluZ2lmeT1IVGE7dmFyIE0kZT0iLyIsQyRlPWkodD0+dCwiTk9PUF9WQUxVRSIpLG5vcj0vXlskX1xwe0lEX1N0YXJ0fV0kL3UseiRlPS9eWyRcdTIwMGNcdTIwMGRccHtJRF9Db250aW51ZX1dJC91LElUYT17InsiOiJ7IiwifSI6In0iLCIoIjoiKCIsIikiOiIpIiwiWyI6IlsiLCJdIjoiXSIsIisiOiIrIiwiPyI6Ij8iLCIhIjoiISJ9O2Z1bmN0aW9uIFBUYSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9be30oKVxbXF0rPyE6KlxcXS9nLCJcXCQmIil9aShQVGEsImVzY2FwZVRleHQiKTtmdW5jdGlvbiBYMCh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bLisqP14ke30oKVtcXXwvXFxdL2csIlxcJCYiKX1pKFgwLCJlc2NhcGUiKTt2YXIgWDRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRva2VuRGF0YSIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy50b2tlbnM9ZSx0aGlzLm9yaWdpbmFsUGF0aD1yfX07YWMuVG9rZW5EYXRhPVg0ZTt2YXIgRzY9Y2xhc3MgZXh0ZW5kcyBUeXBlRXJyb3J7c3RhdGlje2kodGhpcywiUGF0aEVycm9yIil9Y29uc3RydWN0b3IoZSxyKXtsZXQgYT1lO3ImJihhKz1gOiAke3J9YCksYSs9IjsgdmlzaXQgaHR0cHM6Ly9naXQubmV3L3BhdGhUb1JlZ2V4cEVycm9yIGZvciBpbmZvIixzdXBlcihhKSx0aGlzLm9yaWdpbmFsUGF0aD1yfX07YWMuUGF0aEVycm9yPUc2O2Z1bmN0aW9uIF8kZSh0LGU9e30pe2xldHtlbmNvZGVQYXRoOnI9QyRlfT1lLGE9Wy4uLnRdLHM9W10sbj0wLG89MDtmdW5jdGlvbiBsKCl7bGV0IGQ9IiI7aWYobm9yLnRlc3QoYVtuXSkpZG8gZCs9YVtuKytdO3doaWxlKHokZS50ZXN0KGFbbl0pKTtlbHNlIGlmKGFbbl09PT0nIicpe2xldCBmPW47Zm9yKDtuKys8YS5sZW5ndGg7KXtpZihhW25dPT09JyInKXtuKyssZj0wO2JyZWFrfWFbbl09PT0iXFwiJiZuKyssZCs9YVtuXX1pZihmKXRocm93IG5ldyBHNihgVW50ZXJtaW5hdGVkIHF1b3RlIGF0IGluZGV4ICR7Zn1gLHQpfWlmKCFkKXRocm93IG5ldyBHNihgTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCBpbmRleCAke259YCx0KTtyZXR1cm4gZH1mb3IoaShsLCJuYW1lIik7bjxhLmxlbmd0aDspe2xldCBkPWFbbl0sZj1JVGFbZF07Zj9zLnB1c2goe3R5cGU6ZixpbmRleDpuKyssdmFsdWU6ZH0pOmQ9PT0iXFwiP3MucHVzaCh7dHlwZToiZXNjYXBlIixpbmRleDpuKyssdmFsdWU6YVtuKytdfSk6ZD09PSI6Ij9zLnB1c2goe3R5cGU6InBhcmFtIixpbmRleDpuKyssdmFsdWU6bCgpfSk6ZD09PSIqIj9zLnB1c2goe3R5cGU6IndpbGRjYXJkIixpbmRleDpuKyssdmFsdWU6bCgpfSk6cy5wdXNoKHt0eXBlOiJjaGFyIixpbmRleDpuKyssdmFsdWU6ZH0pfXMucHVzaCh7dHlwZToiZW5kIixpbmRleDpuLHZhbHVlOiIifSk7ZnVuY3Rpb24gYyhkKXtsZXQgZj1bXTtmb3IoOzspe2xldCBwPXNbbysrXTtpZihwLnR5cGU9PT1kKWJyZWFrO2lmKHAudHlwZT09PSJjaGFyInx8cC50eXBlPT09ImVzY2FwZSIpe2xldCBoPXAudmFsdWUsbT1zW29dO2Zvcig7bS50eXBlPT09ImNoYXIifHxtLnR5cGU9PT0iZXNjYXBlIjspaCs9bS52YWx1ZSxtPXNbKytvXTtmLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOnIoaCl9KTtjb250aW51ZX1pZihwLnR5cGU9PT0icGFyYW0ifHxwLnR5cGU9PT0id2lsZGNhcmQiKXtmLnB1c2goe3R5cGU6cC50eXBlLG5hbWU6cC52YWx1ZX0pO2NvbnRpbnVlfWlmKHAudHlwZT09PSJ7Iil7Zi5wdXNoKHt0eXBlOiJncm91cCIsdG9rZW5zOmMoIn0iKX0pO2NvbnRpbnVlfXRocm93IG5ldyBHNihgVW5leHBlY3RlZCAke3AudHlwZX0gYXQgaW5kZXggJHtwLmluZGV4fSwgZXhwZWN0ZWQgJHtkfWAsdCl9cmV0dXJuIGZ9cmV0dXJuIGkoYywiY29uc3VtZVVudGlsIiksbmV3IFg0ZShjKCJlbmQiKSx0KX1pKF8kZSwicGFyc2UiKTtmdW5jdGlvbiBOVGEodCxlPXt9KXtsZXR7ZW5jb2RlOnI9ZW5jb2RlVVJJQ29tcG9uZW50LGRlbGltaXRlcjphPU0kZX09ZSxzPXR5cGVvZiB0PT0ib2JqZWN0Ij90Ol8kZSh0LGUpLG49b29yKHMudG9rZW5zLGEscik7cmV0dXJuIGkoZnVuY3Rpb24obD17fSl7bGV0W2MsLi4uZF09bihsKTtpZihkLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKGBNaXNzaW5nIHBhcmFtZXRlcnM6ICR7ZC5qb2luKCIsICIpfWApO3JldHVybiBjfSwicGF0aCIpfWkoTlRhLCJjb21waWxlIik7ZnVuY3Rpb24gb29yKHQsZSxyKXtsZXQgYT10Lm1hcChzPT5PVGEocyxlLHIpKTtyZXR1cm4gcz0+e2xldCBuPVsiIl07Zm9yKGxldCBvIG9mIGEpe2xldFtsLC4uLmNdPW8ocyk7blswXSs9bCxuLnB1c2goLi4uYyl9cmV0dXJuIG59fWkob29yLCJ0b2tlbnNUb0Z1bmN0aW9uIik7ZnVuY3Rpb24gT1RhKHQsZSxyKXtpZih0LnR5cGU9PT0idGV4dCIpcmV0dXJuKCk9Plt0LnZhbHVlXTtpZih0LnR5cGU9PT0iZ3JvdXAiKXtsZXQgcz1vb3IodC50b2tlbnMsZSxyKTtyZXR1cm4gbj0+e2xldFtvLC4uLmxdPXMobik7cmV0dXJuIGwubGVuZ3RoP1siIl06W29dfX1sZXQgYT1yfHxDJGU7cmV0dXJuIHQudHlwZT09PSJ3aWxkY2FyZCImJnIhPT0hMT9zPT57bGV0IG49c1t0Lm5hbWVdO2lmKG49PW51bGwpcmV0dXJuWyIiLHQubmFtZV07aWYoIUFycmF5LmlzQXJyYXkobil8fG4ubGVuZ3RoPT09MCl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHt0Lm5hbWV9IiB0byBiZSBhIG5vbi1lbXB0eSBhcnJheWApO3JldHVybltuLm1hcCgobyxsKT0+e2lmKHR5cGVvZiBvIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHt0Lm5hbWV9LyR7bH0iIHRvIGJlIGEgc3RyaW5nYCk7cmV0dXJuIGEobyl9KS5qb2luKGUpXX06cz0+e2xldCBuPXNbdC5uYW1lXTtpZihuPT1udWxsKXJldHVyblsiIix0Lm5hbWVdO2lmKHR5cGVvZiBuIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHt0Lm5hbWV9IiB0byBiZSBhIHN0cmluZ2ApO3JldHVyblthKG4pXX19aShPVGEsInRva2VuVG9GdW5jdGlvbiIpO2Z1bmN0aW9uIFJUYSh0LGU9e30pe2xldHtkZWNvZGU6cj1kZWNvZGVVUklDb21wb25lbnQsZGVsaW1pdGVyOmE9TSRlfT1lLHtyZWdleHA6cyxrZXlzOm59PWxvcih0LGUpLG89bi5tYXAobD0+cj09PSExP0MkZTpsLnR5cGU9PT0icGFyYW0iP3I6Yz0+Yy5zcGxpdChhKS5tYXAocikpO3JldHVybiBpKGZ1bmN0aW9uKGMpe2xldCBkPXMuZXhlYyhjKTtpZighZClyZXR1cm4hMTtsZXQgZj1kWzBdLHA9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGg9MTtoPGQubGVuZ3RoO2grKyl7aWYoZFtoXT09PXZvaWQgMCljb250aW51ZTtsZXQgbT1uW2gtMV0sdj1vW2gtMV07cFttLm5hbWVdPXYoZFtoXSl9cmV0dXJue3BhdGg6ZixwYXJhbXM6cH19LCJtYXRjaCIpfWkoUlRhLCJtYXRjaCIpO2Z1bmN0aW9uIGxvcih0LGU9e30pe2xldHtkZWxpbWl0ZXI6cj1NJGUsZW5kOmE9ITAsc2Vuc2l0aXZlOnM9ITEsdHJhaWxpbmc6bj0hMH09ZSxvPVtdLGw9cz8iIjoiaSIsYz1bXTtmb3IobGV0IHAgb2YgY29yKHQsW10pKXtsZXQgaD10eXBlb2YgcD09Im9iamVjdCI/cDpfJGUocCxlKTtmb3IobGV0IG0gb2YgSjRlKGgudG9rZW5zLDAsW10pKWMucHVzaChGVGEobSxyLG8saC5vcmlnaW5hbFBhdGgpKX1sZXQgZD1gXig/OiR7Yy5qb2luKCJ8Iil9KWA7cmV0dXJuIG4mJihkKz1gKD86JHtYMChyKX0kKT9gKSxkKz1hPyIkIjpgKD89JHtYMChyKX18JClgLHtyZWdleHA6bmV3IFJlZ0V4cChkLGwpLGtleXM6b319aShsb3IsInBhdGhUb1JlZ2V4cCIpO2Z1bmN0aW9uIGNvcih0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCByIG9mIHQpY29yKHIsZSk7ZWxzZSBlLnB1c2godCk7cmV0dXJuIGV9aShjb3IsInBhdGhzVG9BcnJheSIpO2Z1bmN0aW9uKko0ZSh0LGUscil7aWYoZT09PXQubGVuZ3RoKXJldHVybiB5aWVsZCByO2xldCBhPXRbZV07aWYoYS50eXBlPT09Imdyb3VwIilmb3IobGV0IHMgb2YgSjRlKGEudG9rZW5zLDAsci5zbGljZSgpKSl5aWVsZCpKNGUodCxlKzEscyk7ZWxzZSByLnB1c2goYSk7eWllbGQqSjRlKHQsZSsxLHIpfWkoSjRlLCJmbGF0dGVuIik7ZnVuY3Rpb24gRlRhKHQsZSxyLGEpe2xldCBzPSIiLG49IiIsbz0hMDtmb3IobGV0IGwgb2YgdCl7aWYobC50eXBlPT09InRleHQiKXtzKz1YMChsLnZhbHVlKSxuKz1sLnZhbHVlLG98fChvPWwudmFsdWUuaW5jbHVkZXMoZSkpO2NvbnRpbnVlfWlmKGwudHlwZT09PSJwYXJhbSJ8fGwudHlwZT09PSJ3aWxkY2FyZCIpe2lmKCFvJiYhbil0aHJvdyBuZXcgRzYoYE1pc3NpbmcgdGV4dCBiZWZvcmUgIiR7bC5uYW1lfSIgJHtsLnR5cGV9YCxhKTtsLnR5cGU9PT0icGFyYW0iP3MrPWAoJHtCVGEoZSxvPyIiOm4pfSspYDpzKz0iKFtcXHNcXFNdKykiLHIucHVzaChsKSxuPSIiLG89ITE7Y29udGludWV9fXJldHVybiBzfWkoRlRhLCJ0b1JlZ0V4cFNvdXJjZSIpO2Z1bmN0aW9uIEJUYSh0LGUpe3JldHVybiBlLmxlbmd0aDwyP3QubGVuZ3RoPDI/YFteJHtYMCh0K2UpfV1gOmAoPzooPyEke1gwKHQpfSlbXiR7WDAoZSl9XSlgOnQubGVuZ3RoPDI/YCg/Oig/ISR7WDAoZSl9KVteJHtYMCh0KX1dKWA6YCg/Oig/ISR7WDAoZSl9fCR7WDAodCl9KVtcXHNcXFNdKWB9aShCVGEsIm5lZ2F0ZSIpO2Z1bmN0aW9uIGRvcih0KXtsZXQgZT0iIixyPTA7ZnVuY3Rpb24gYShzKXtyZXR1cm4gcVRhKHMpJiZWVGEodFtyXSk/czpKU09OLnN0cmluZ2lmeShzKX1mb3IoaShhLCJuYW1lIik7cjx0Lmxlbmd0aDspe2xldCBzPXRbcisrXTtpZihzLnR5cGU9PT0idGV4dCIpe2UrPVBUYShzLnZhbHVlKTtjb250aW51ZX1pZihzLnR5cGU9PT0iZ3JvdXAiKXtlKz1geyR7ZG9yKHMudG9rZW5zKX19YDtjb250aW51ZX1pZihzLnR5cGU9PT0icGFyYW0iKXtlKz1gOiR7YShzLm5hbWUpfWA7Y29udGludWV9aWYocy50eXBlPT09IndpbGRjYXJkIil7ZSs9YCoke2Eocy5uYW1lKX1gO2NvbnRpbnVlfXRocm93IG5ldyBUeXBlRXJyb3IoYFVua25vd24gdG9rZW4gdHlwZTogJHtzLnR5cGV9YCl9cmV0dXJuIGV9aShkb3IsInN0cmluZ2lmeVRva2VucyIpO2Z1bmN0aW9uIEhUYSh0KXtyZXR1cm4gZG9yKHQudG9rZW5zKX1pKEhUYSwic3RyaW5naWZ5Iik7ZnVuY3Rpb24gcVRhKHQpe2xldFtlLC4uLnJdPXQ7cmV0dXJuIG5vci50ZXN0KGUpJiZyLmV2ZXJ5KGE9PnokZS50ZXN0KGEpKX1pKHFUYSwiaXNOYW1lU2FmZSIpO2Z1bmN0aW9uIFZUYSh0KXtyZXR1cm4gdCYmdC50eXBlPT09InRleHQiPyF6JGUudGVzdCh0LnZhbHVlWzBdKTohMH1pKFZUYSwiaXNOZXh0TmFtZVNhZmUiKX0pO3ZhciBUJGUsTCRlPXUoKCk9PntKQygpO2I0KCk7VCRlPUdhKHVvcigpLDEpfSk7dmFyIGUzZSxwb3I9dSgoKT0+e0wkZSgpO2UzZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJRdWVyeVBhcmFtcyIpfWNvbnN0cnVjdG9yKCl7fWdldEFsbEFzT2JqZWN0KCl7bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGUuZW50cmllcygpKX1zZXRRdWVyeVBhcmFtKGUscixhPSJyZXBsYWNlIil7dmFyIHM9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtzLnNldChlLHIpLGE9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IitzLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIrcy50b1N0cmluZygpKX1kZWxldGVRdWVyeVBhcmFtKGUscj0icmVwbGFjZSIpe3ZhciBhPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7YS5kZWxldGUoZSkscj09PSJwdXNoIj9oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsIj8iK2EudG9TdHJpbmcoKSk6aGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxudWxsLCI/IithLnRvU3RyaW5nKCkpfWdldFF1ZXJ5UGFyYW0oZSl7cmV0dXJuIHRoaXMuZ2V0QWxsQXNPYmplY3QoKVtlXX19fSk7dmFyICQ5bixEJGUsaG9yPXUoKCk9PntMJGUoKTtwb3IoKTskOW49aSh0PT57Y29uc29sZS5sb2coYCVjW1JvdXRlcl0lYyAke3R9YCwiY29sb3I6IHJnYigyNTUsIDEwNSwgMTAwKTsiLCJjb2xvcjogaW5oZXJpdCIpfSwicm91dGVMb2ciKSxEJGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTbWFydFJvdXRlciIpfWNvbnN0cnVjdG9yKGUscj0iIil7dGhpcy5vcHRpb25zPXtkZWJ1ZzohMX0sdGhpcy5xdWVyeVBhcmFtcz1uZXcgZTNlLHRoaXMucm91dGVzPVtdLHRoaXMub3B0aW9ucz17Li4udGhpcy5vcHRpb25zLC4uLmV9LHRoaXMuYmFzZVBhdGg9cix0aGlzLnBvcHN0YXRlTGlzdGVuZXI9YT0+e2EucHJldmVudERlZmF1bHQoKSx0aGlzLl9oYW5kbGVSb3V0ZVN0YXRlKCl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyKX1jcmVhdGVTdWJSb3V0ZXIoZSxyKXtsZXQgYT1gJHt0aGlzLmJhc2VQYXRofSR7ZX1gO3JldHVybiBuZXcgdCh7Li4udGhpcy5vcHRpb25zLC4uLnJ9LGEpfWFzeW5jIHB1c2hVcmwoZT0iLyIscj17fSl7bGV0IGE9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YDthIT09d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lP3dpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShyLHdpbmRvdy5kb2N1bWVudC50aXRsZSxhKTp3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUocix3aW5kb3cuZG9jdW1lbnQudGl0bGUsYSksYXdhaXQgdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpfW9uKGUscil7bGV0IGE9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YCxzPXttYXRjaEZ1bmN0aW9uOlQkZS5tYXRjaChhKSxoYW5kbGVyOnJ9O3JldHVybiB0aGlzLnJvdXRlcy5wdXNoKHMpLGkoKCk9Pnt0aGlzLnJvdXRlcy5zcGxpY2UodGhpcy5yb3V0ZXMuaW5kZXhPZihzKSwxKX0sInJlbW92ZUZ1bmN0aW9uIil9YXN5bmMgX2hhbmRsZVJvdXRlU3RhdGUoKXtsZXQgZT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUscj10aGlzLnJvdXRlcy5maWx0ZXIoYT0+ISFhLm1hdGNoRnVuY3Rpb24oZSkpO2ZvcihsZXQgYSBvZiByKXtsZXQgcz1hLm1hdGNoRnVuY3Rpb24oZSk7YS5oYW5kbGVyKHsuLi5zLnZhbHVlT2YoKSxxdWVyeVBhcmFtczp0aGlzLnF1ZXJ5UGFyYW1zLmdldEFsbEFzT2JqZWN0KCl9KX19ZGVzdHJveSgpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyKSx0aGlzLnJvdXRlcz1bXX19fSk7dmFyIFk2PXt9O1ZlKFk2LHtTbWFydFJvdXRlcjooKT0+RCRlfSk7dmFyIG1vcj11KCgpPT57aG9yKCl9KTt2YXIgZ29yPXUoKCk9Pnt1eigpO0l2KCl9KTtmdW5jdGlvbiBKMCh0LGUpe3JldHVybiB0Pj4+ZXx0PDwzMi1lfWZ1bmN0aW9uIFlUYSh0LGUpe2xldCByPWVbMF0sYT1lWzFdLHM9ZVsyXSxuPWVbM10sbz1lWzRdLGw9ZVs1XSxjPWVbNl0sZD1lWzddO2ZvcihsZXQgZj0wO2Y8NjQ7ZisrKXtpZihmPj0xNil7bGV0IHk9SjAodFtmLTE1XSw3KV5KMCh0W2YtMTVdLDE4KV50W2YtMTVdPj4+MyxrPUowKHRbZi0yXSwxNyleSjAodFtmLTJdLDE5KV50W2YtMl0+Pj4xMDt0W2ZdPXRbZi0xNl0reSt0W2YtN10raz4+PjB9bGV0IHA9SjAobyw2KV5KMChvLDExKV5KMChvLDI1KSxoPW8mbF5+byZjLG09ZCtwK2grV1RhW2ZdK3RbZl0+Pj4wLHY9SjAociwyKV5KMChyLDEzKV5KMChyLDIyKSxiPXImYV5yJnNeYSZzLGc9ditiPj4+MDtkPWMsYz1sLGw9byxvPW4rbT4+PjAsbj1zLHM9YSxhPXIscj1tK2c+Pj4wfWVbMF09ZVswXStyPj4+MCxlWzFdPWVbMV0rYT4+PjAsZVsyXT1lWzJdK3M+Pj4wLGVbM109ZVszXStuPj4+MCxlWzRdPWVbNF0rbz4+PjAsZVs1XT1lWzVdK2w+Pj4wLGVbNl09ZVs2XStjPj4+MCxlWzddPWVbN10rZD4+PjB9ZnVuY3Rpb24gJCRlKHQpe2xldCBlPVsuLi5HVGFdLHI9dC5sZW5ndGgsYT1yKjgscz1yJTY0PDU2PzU2LXIlNjQ6MTIwLXIlNjQsbj1uZXcgVWludDhBcnJheShyK3MrOCk7bi5zZXQodCksbltyXT0xMjg7bGV0IG89bmV3IERhdGFWaWV3KG4uYnVmZmVyKTtvLnNldFVpbnQzMihuLmxlbmd0aC04LDAsITEpLG8uc2V0VWludDMyKG4ubGVuZ3RoLTQsYT4+PjAsITEpO2ZvcihsZXQgYz0wO2M8bi5sZW5ndGg7Yys9NjQpe2xldCBkPW5ldyBBcnJheSg2NCk7Zm9yKGxldCBmPTA7ZjwxNjtmKyspZFtmXT1vLmdldFVpbnQzMihjK2YqNCwhMSk7WVRhKGQsZSl9bGV0IGw9IiI7Zm9yKGxldCBjPTA7Yzw4O2MrKylsKz1lW2NdLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCIwIik7cmV0dXJuIGx9dmFyIFdUYSxHVGEsYm9yPXUoKCk9PntXVGE9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0sR1RhPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV07aShKMCwicm90ciIpO2koWVRhLCJzaGEyNTZUcmFuc2Zvcm0iKTtpKCQkZSwic2hhMjU2RmFsbGJhY2siKX0pO3ZhciBpXz17fTtWZShpXyx7bWQ1RnJvbVN0cmluZzooKT0+ZUxhLHNoYTI1NkZyb21CdWZmZXI6KCk9PlpUYSxzaGEyNTZGcm9tRmlsZTooKT0+SlRhLHNoYTI1NkZyb21TdHJlYW06KCk9PlhUYSxzaGEyNTZGcm9tU3RyaW5nOigpPT55b3Isc2hhMjU2RnJvbVN0cmluZ1N5bmM6KCk9PktUYSxzaGEyNjVGcm9tT2JqZWN0OigpPT5RVGF9KTt2YXIgeG9yLHZvcix5b3IsS1RhLFpUYSxRVGEsWFRhLEpUYSxlTGEsd29yPXUoKCk9Pntnb3IoKTtib3IoKTt4b3I9aSh0PT57bGV0IGU9W10scj1uZXcgRGF0YVZpZXcodCk7Zm9yKGxldCBhPTA7YTxyLmJ5dGVMZW5ndGg7YSs9NCl7bGV0IG49ci5nZXRVaW50MzIoYSkudG9TdHJpbmcoMTYpLG89IjAwMDAwMDAwIixsPShvK24pLnNsaWNlKC1vLmxlbmd0aCk7ZS5wdXNoKGwpfXJldHVybiBlLmpvaW4oIiIpfSwiaGV4Iiksdm9yPWkoKCk9PnR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8uc3VidGxlIT09dm9pZCAwLCJpc0NyeXB0b1N1YnRsZUF2YWlsYWJsZSIpLHlvcj1pKGFzeW5jIHQ9PntsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCk7aWYodm9yKCkpe2xldCByPWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKTtyZXR1cm4geG9yKHIpfWVsc2UgcmV0dXJuICQkZShlKX0sInNoYTI1NkZyb21TdHJpbmciKSxLVGE9aSh0PT57dGhyb3cgY29uc29sZS53YXJuKCJzaGEyNTZGcm9tU3RyaW5nU3luYyBpcyBub3QgdHJ1bHkgc3luY2hyb25vdXMgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpLG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50LiBVc2Ugc2hhMjU2RnJvbVN0cmluZyBpbnN0ZWFkLiIpfSwic2hhMjU2RnJvbVN0cmluZ1N5bmMiKSxaVGE9aShhc3luYyB0PT57aWYodm9yKCkpe2xldCBlO2lmKHQgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgcz10O2U9cy5idWZmZXIuc2xpY2Uocy5ieXRlT2Zmc2V0LHMuYnl0ZU9mZnNldCtzLmJ5dGVMZW5ndGgpfWVsc2UgZT10O2xldCByPWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKTtyZXR1cm4geG9yKHIpfWVsc2V7bGV0IGU9dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/dDpuZXcgVWludDhBcnJheSh0KTtyZXR1cm4gJCRlKGUpfX0sInNoYTI1NkZyb21CdWZmZXIiKSxRVGE9aShhc3luYyB0PT57bGV0IGU9UXMuc3RyaW5naWZ5KHQpO3JldHVybiBhd2FpdCB5b3IoZSl9LCJzaGEyNjVGcm9tT2JqZWN0IiksWFRhPWkodD0+e3Rocm93IG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sInNoYTI1NkZyb21TdHJlYW0iKSxKVGE9aShhc3luYyB0PT57dGhyb3cgbmV3IEVycm9yKCJzaGEyNTZGcm9tRmlsZSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sInNoYTI1NkZyb21GaWxlIiksZUxhPWkoYXN5bmMgdD0+e3Rocm93IG5ldyBFcnJvcigibWQ1RnJvbVN0cmluZyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFdlYiBDcnlwdG8gQVBJIGRvZXMgbm90IHN1cHBvcnQgTUQ1LiIpfSwibWQ1RnJvbVN0cmluZyIpfSk7dmFyIHQzZT11KCgpPT57d29yKCk7SXYoKTtLMSgpO2I0KCk7ZmRlKCl9KTt2YXIgc18sQSRlPXUoKCk9PntyM2UoKTtzXz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTdGF0ZUFjdGlvbiIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5zdGF0ZVBhcnRSZWY9ZSx0aGlzLmFjdGlvbkRlZj1yfXRyaWdnZXIoZSl7cmV0dXJuIHRoaXMuc3RhdGVQYXJ0UmVmLmRpc3BhdGNoQWN0aW9uKHRoaXMsZSl9fX0pO2Z1bmN0aW9uIHJMYSgpe3JldHVybiB0eXBlb2YgZG9jdW1lbnQ+InUiP1hoKCEwKTpuZXcgbHIodD0+e3QubmV4dCghZG9jdW1lbnQuaGlkZGVuKTtsZXQgZT1pKCgpPT50Lm5leHQoIWRvY3VtZW50LmhpZGRlbiksImhhbmRsZXIiKTtyZXR1cm4gZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZSksKCk9PmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGUpfSl9dmFyIGZ5LEUkZT11KCgpPT57SngoKTtpKHJMYSwiY3JlYXRlVmlzaWJpbGl0eU9ic2VydmFibGUiKTtmeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTdGF0ZVByb2Nlc3MiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc3RhdHVzU3ViamVjdD1uZXcgVngoImlkbGUiKSx0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb249bnVsbCx0aGlzLnByb2Nlc3NpbmdRdWV1ZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnN0YXRlUGFydFJlZj1lLHRoaXMucHJvZHVjZXJGbj1yLnByb2R1Y2VyLHRoaXMucmVkdWNlcj1yLnJlZHVjZXIsdGhpcy5zaWRlRWZmZWN0PXIuc2lkZUVmZmVjdCx0aGlzLmF1dG9QYXVzZU9wdGlvbj1yLmF1dG9QYXVzZT8/ITF9Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLnN0YXR1c1N1YmplY3QuZ2V0VmFsdWUoKX1nZXQgc3RhdHVzJCgpe3JldHVybiB0aGlzLnN0YXR1c1N1YmplY3QuYXNPYnNlcnZhYmxlKCl9c3RhcnQoKXtpZih0aGlzLnN0YXR1cz09PSJkaXNwb3NlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc3RhcnQgYSBkaXNwb3NlZCBwcm9jZXNzIik7dGhpcy5zdGF0dXMhPT0icnVubmluZyImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicnVubmluZyIpLHRoaXMuc3Vic2NyaWJlUHJvZHVjZXIoKSx0aGlzLnNldHVwQXV0b1BhdXNlKCkpfXBhdXNlKCl7aWYodGhpcy5zdGF0dXM9PT0iZGlzcG9zZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHBhdXNlIGEgZGlzcG9zZWQgcHJvY2VzcyIpO3RoaXMuc3RhdHVzPT09InJ1bm5pbmciJiYodGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoInBhdXNlZCIpLHRoaXMudW5zdWJzY3JpYmVQcm9kdWNlcigpKX1yZXN1bWUoKXtpZih0aGlzLnN0YXR1cz09PSJkaXNwb3NlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVzdW1lIGEgZGlzcG9zZWQgcHJvY2VzcyIpO3RoaXMuc3RhdHVzPT09InBhdXNlZCImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicnVubmluZyIpLHRoaXMuc3Vic2NyaWJlUHJvZHVjZXIoKSl9ZGlzcG9zZSgpe3RoaXMuc3RhdHVzIT09ImRpc3Bvc2VkIiYmKHRoaXMudW5zdWJzY3JpYmVQcm9kdWNlcigpLHRoaXMudGVhcmRvd25BdXRvUGF1c2UoKSx0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgiZGlzcG9zZWQiKSx0aGlzLnN0YXR1c1N1YmplY3QuY29tcGxldGUoKSx0aGlzLnN0YXRlUGFydFJlZi5fcmVtb3ZlUHJvY2Vzcyh0aGlzKSl9c3Vic2NyaWJlUHJvZHVjZXIoKXt0aGlzLnVuc3Vic2NyaWJlUHJvZHVjZXIoKTtsZXQgZT10aGlzLnByb2R1Y2VyRm4oKTt0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uPWUuc3Vic2NyaWJlKHtuZXh0Omkocj0+e3RoaXMucHJvY2Vzc2luZ1F1ZXVlPXRoaXMucHJvY2Vzc2luZ1F1ZXVlLnRoZW4oYXN5bmMoKT0+e3RyeXtpZih0aGlzLnNpZGVFZmZlY3QpYXdhaXQgdGhpcy5zaWRlRWZmZWN0KHIpO2Vsc2UgaWYodGhpcy5yZWR1Y2VyKXtsZXQgYT10aGlzLnN0YXRlUGFydFJlZi5nZXRTdGF0ZSgpO2EhPT12b2lkIDAmJmF3YWl0IHRoaXMuc3RhdGVQYXJ0UmVmLnNldFN0YXRlKHRoaXMucmVkdWNlcihhLHIpKX19Y2F0Y2goYSl7Y29uc29sZS5lcnJvcigiU3RhdGVQcm9jZXNzIHZhbHVlIGhhbmRsaW5nIGVycm9yOiIsYSl9fSl9LCJuZXh0IiksZXJyb3I6aShyPT57Y29uc29sZS5lcnJvcigiU3RhdGVQcm9jZXNzIHByb2R1Y2VyIGVycm9yOiIsciksdGhpcy5zdGF0dXM9PT0icnVubmluZyImJih0aGlzLnN0YXR1c1N1YmplY3QubmV4dCgicGF1c2VkIiksdGhpcy51bnN1YnNjcmliZVByb2R1Y2VyKCkpfSwiZXJyb3IiKX0pfXVuc3Vic2NyaWJlUHJvZHVjZXIoKXt0aGlzLnByb2R1Y2VyU3Vic2NyaXB0aW9uJiYodGhpcy5wcm9kdWNlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMucHJvZHVjZXJTdWJzY3JpcHRpb249bnVsbCl9c2V0dXBBdXRvUGF1c2UoKXtpZih0aGlzLnRlYXJkb3duQXV0b1BhdXNlKCksIXRoaXMuYXV0b1BhdXNlT3B0aW9uKXJldHVybjtsZXQgZT10aGlzLmF1dG9QYXVzZU9wdGlvbj09PSJ2aXNpYmlsaXR5Ij9yTGEoKTp0aGlzLmF1dG9QYXVzZU9wdGlvbjt0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbj1lLnN1YnNjcmliZShyPT57IXImJnRoaXMuc3RhdHVzPT09InJ1bm5pbmciP3RoaXMucGF1c2UoKTpyJiZ0aGlzLnN0YXR1cz09PSJwYXVzZWQiJiZ0aGlzLnJlc3VtZSgpfSl9dGVhcmRvd25BdXRvUGF1c2UoKXt0aGlzLmF1dG9QYXVzZVN1YnNjcmlwdGlvbiYmKHRoaXMuYXV0b1BhdXNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5hdXRvUGF1c2VTdWJzY3JpcHRpb249bnVsbCl9fX0pO2Z1bmN0aW9uIGFMYSh0KXtyZXR1cm4gbmV3IGxyKGU9PntpZih0LmFib3J0ZWQpe2UubmV4dCgpLGUuY29tcGxldGUoKTtyZXR1cm59bGV0IHI9aSgoKT0+e2UubmV4dCgpLGUuY29tcGxldGUoKX0sImhhbmRsZXIiKTtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsciksKCk9PnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHIpfSl9dmFyIG5fLHIzZT11KCgpPT57dDNlKCk7SngoKTtBJGUoKTtFJGUoKTtpKGFMYSwiZnJvbUFib3J0U2lnbmFsIik7bl89Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTdGF0ZVBhcnQiKX1zdGF0aWN7dGhpcy5NQVhfTkVTVEVEX0RJU1BBVENIX0RFUFRIPTEwfWNvbnN0cnVjdG9yKGUscil7dGhpcy5zdGF0ZT1uZXcgVngodm9pZCAwKSx0aGlzLmRpc3Bvc2VkPSExLHRoaXMuY3VtdWxhdGl2ZURlZmVycmVkPSR0LmN1bXVsYXRpdmVEZWZlcigpLHRoaXMubXV0YXRpb25RdWV1ZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy53ZWJTdG9yZT1udWxsLHRoaXMubWlkZGxld2FyZXM9W10sdGhpcy5wcm9jZXNzZXM9W10sdGhpcy5zZWxlY3RvckNhY2hlPW5ldyBXZWFrTWFwLHRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bnVsbCx0aGlzLm5hbWU9ZSxyJiYodGhpcy53ZWJTdG9yZU9wdGlvbnM9cil9YXN5bmMgaW5pdCgpe2lmKHRoaXMud2ViU3RvcmVPcHRpb25zKXt0aGlzLndlYlN0b3JlPW5ldyBRMi5XZWJTdG9yZSh0aGlzLndlYlN0b3JlT3B0aW9ucyksYXdhaXQgdGhpcy53ZWJTdG9yZS5pbml0KCk7bGV0IGU9YXdhaXQgdGhpcy53ZWJTdG9yZS5nZXQoU3RyaW5nKHRoaXMubmFtZSkpO2UmJnRoaXMudmFsaWRhdGVTdGF0ZShlKSYmKHRoaXMuc3RhdGVTdG9yZT1lLGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCkpfX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLnN0YXRlU3RvcmV9YWRkTWlkZGxld2FyZShlKXtyZXR1cm4gdGhpcy5taWRkbGV3YXJlcy5wdXNoKGUpLCgpPT57bGV0IHI9dGhpcy5taWRkbGV3YXJlcy5pbmRleE9mKGUpO3IhPT0tMSYmdGhpcy5taWRkbGV3YXJlcy5zcGxpY2UociwxKX19YXN5bmMgc2V0U3RhdGUoZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO3JldHVybiB0aGlzLm11dGF0aW9uUXVldWU9dGhpcy5tdXRhdGlvblF1ZXVlLnRoZW4oKCk9PnRoaXMuYXBwbHlTdGF0ZShlKSwoKT0+dGhpcy5hcHBseVN0YXRlKGUpKX1hc3luYyBhcHBseVN0YXRlKGUpe2xldCByPWU7Zm9yKGxldCBhIG9mIHRoaXMubWlkZGxld2FyZXMpcj1hd2FpdCBhKHIsdGhpcy5zdGF0ZVN0b3JlKTtpZighdGhpcy52YWxpZGF0ZVN0YXRlKHIpKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdGF0ZSBzdHJ1Y3R1cmUgZm9yIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSdgKTtyZXR1cm4gdGhpcy53ZWJTdG9yZSYmYXdhaXQgdGhpcy53ZWJTdG9yZS5zZXQoU3RyaW5nKHRoaXMubmFtZSksciksdGhpcy5zdGF0ZVN0b3JlPXIsYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKSx0aGlzLnN0YXRlU3RvcmV9dmFsaWRhdGVTdGF0ZShlKXtyZXR1cm4gZSE9bnVsbH1hc3luYyBub3RpZnlDaGFuZ2UoKXtsZXQgZT10aGlzLnN0YXRlU3RvcmU7aWYoZT09PXZvaWQgMClyZXR1cm47aWYodGhpcy5zbWFydHN0YXRlUmVmPy5pc0JhdGNoaW5nKXt0aGlzLnNtYXJ0c3RhdGVSZWYucmVnaXN0ZXJQZW5kaW5nTm90aWZpY2F0aW9uKHRoaXMpO3JldHVybn1sZXQgcj1pKGFzeW5jIGE9PmF3YWl0IGlfLnNoYTI1NkZyb21TdHJpbmcoUXMuc3RhYmxlT25lV2F5U3RyaW5naWZ5KGEpKSwiY3JlYXRlU3RhdGVIYXNoIik7dHJ5e2xldCBhPWF3YWl0IHIoZSk7aWYodGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaCYmYT09PXRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2gpcmV0dXJuO3RoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2g9YX1jYXRjaChhKXtjb25zb2xlLmVycm9yKGBTdGF0ZSBoYXNoIGNvbXB1dGF0aW9uIGZhaWxlZCBmb3IgJyR7dGhpcy5uYW1lfSc6YCxhKX10aGlzLnN0YXRlLm5leHQoZSl9bm90aWZ5Q2hhbmdlQ3VtdWxhdGl2ZSgpe3RoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24mJmNsZWFyVGltZW91dCh0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPXNldFRpbWVvdXQoKCk9Pnt0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy5zdGF0ZVN0b3JlIT09dm9pZCAwJiZ0aGlzLm5vdGlmeUNoYW5nZSgpLmNhdGNoKGU9Pntjb25zb2xlLmVycm9yKGBub3RpZnlDaGFuZ2VDdW11bGF0aXZlIGZhaWxlZCBmb3IgJyR7dGhpcy5uYW1lfSc6YCxlKX0pfSwwKX1zZWxlY3QoZSxyKXtsZXQgYT1yPy5zaWduYWwhPW51bGw7aWYoIWEpe2lmKGUpe2lmKHRoaXMuc2VsZWN0b3JDYWNoZS5oYXMoZSkpcmV0dXJuIHRoaXMuc2VsZWN0b3JDYWNoZS5nZXQoZSl9ZWxzZSBpZih0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlKXJldHVybiB0aGlzLmRlZmF1bHRTZWxlY3RPYnNlcnZhYmxlfWxldCBzPWV8fChjPT5jKSxuPVN5bWJvbCgic2VsZWN0b3ItZXJyb3IiKSxvPXRoaXMuc3RhdGUucGlwZSgkYS5yeGpzLm9wcy5maWx0ZXIoYz0+YyE9PXZvaWQgMCksJGEucnhqcy5vcHMubWFwKGM9Pnt0cnl7cmV0dXJuIHMoYyl9Y2F0Y2goZCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYFNlbGVjdG9yIGVycm9yIGluIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSc6YCxkKSxufX0pLCRhLnJ4anMub3BzLmZpbHRlcihjPT5jIT09biksUXgoKGMsZCk9PkpTT04uc3RyaW5naWZ5KGMpPT09SlNPTi5zdHJpbmdpZnkoZCkpKTtpZihhKXJldHVybiBvPW8ucGlwZShYeChhTGEoci5zaWduYWwpKSksbztsZXQgbD1vLnBpcGUoUjJlKHtidWZmZXJTaXplOjEscmVmQ291bnQ6ITB9KSk7cmV0dXJuIGU/dGhpcy5zZWxlY3RvckNhY2hlLnNldChlLGwpOnRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bCxsfWNyZWF0ZUFjdGlvbihlKXtyZXR1cm4gbmV3IHNfKHRoaXMsZSl9Y3JlYXRlQWN0aW9uQ29udGV4dChlKXtsZXQgcj10aGlzO3JldHVybntkaXNwYXRjaDppKGFzeW5jKGEscyk9PntpZihlPj10Lk1BWF9ORVNURURfRElTUEFUQ0hfREVQVEgpdGhyb3cgbmV3IEVycm9yKGBNYXhpbXVtIG5lc3RlZCBhY3Rpb24gZGlzcGF0Y2ggZGVwdGggKCR7dC5NQVhfTkVTVEVEX0RJU1BBVENIX0RFUFRIfSkgZXhjZWVkZWQuIENoZWNrIGZvciBjaXJjdWxhciBhY3Rpb24gZGlzcGF0Y2hlcy5gKTtsZXQgbj1yLmNyZWF0ZUFjdGlvbkNvbnRleHQoZSsxKSxvPWF3YWl0IGEuYWN0aW9uRGVmKHIscyxuKTtyZXR1cm4gci5hcHBseVN0YXRlKG8pfSwiZGlzcGF0Y2giKX19YXN5bmMgZGlzcGF0Y2hBY3Rpb24oZSxyKXtpZih0aGlzLmRpc3Bvc2VkKXRocm93IG5ldyBFcnJvcihgU3RhdGVQYXJ0ICcke3RoaXMubmFtZX0nIGhhcyBiZWVuIGRpc3Bvc2VkYCk7YXdhaXQgdGhpcy5jdW11bGF0aXZlRGVmZXJyZWQucHJvbWlzZTtsZXQgYT1pKGFzeW5jKCk9PntsZXQgcz10aGlzLmNyZWF0ZUFjdGlvbkNvbnRleHQoMCksbj1hd2FpdCBlLmFjdGlvbkRlZih0aGlzLHIscyk7cmV0dXJuIHRoaXMuYXBwbHlTdGF0ZShuKX0sImV4ZWN1dGUiKTtyZXR1cm4gdGhpcy5tdXRhdGlvblF1ZXVlPXRoaXMubXV0YXRpb25RdWV1ZS50aGVuKGEsYSl9YXN5bmMgd2FpdFVudGlsUHJlc2VudChlLHIpe2xldCBhLHM7dHlwZW9mIHI9PSJudW1iZXIiP2E9cjpyJiYoYT1yLnRpbWVvdXRNcyxzPXIuc2lnbmFsKTtsZXQgbj0kdC5kZWZlcigpLG89dGhpcy5zZWxlY3QoZSksbD0hMTtpZihzPy5hYm9ydGVkKXRocm93IG5ldyBFcnJvcigiQWJvcnRlZCIpO2xldCBjPW8uc3Vic2NyaWJlKHA9PntwIT1udWxsJiYhbCYmKGw9ITAsbi5yZXNvbHZlKHApKX0pLGQ7YSYmKGQ9c2V0VGltZW91dCgoKT0+e2x8fChsPSEwLGMudW5zdWJzY3JpYmUoKSxuLnJlamVjdChuZXcgRXJyb3IoYHdhaXRVbnRpbFByZXNlbnQgdGltZWQgb3V0IGFmdGVyICR7YX1tc2ApKSl9LGEpKTtsZXQgZj1zPygpPT57bHx8KGw9ITAsYy51bnN1YnNjcmliZSgpLGQmJmNsZWFyVGltZW91dChkKSxuLnJlamVjdChuZXcgRXJyb3IoIkFib3J0ZWQiKSkpfTp2b2lkIDA7cyYmZiYmcy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsZik7dHJ5e3JldHVybiBhd2FpdCBuLnByb21pc2V9ZmluYWxseXtjLnVuc3Vic2NyaWJlKCksZCYmY2xlYXJUaW1lb3V0KGQpLHMmJmYmJnMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGYpfX1hc3luYyBzdGF0ZVNldHVwKGUpe2xldCByPWUodGhpcyk7dGhpcy5jdW11bGF0aXZlRGVmZXJyZWQuYWRkUHJvbWlzZShyKSxhd2FpdCB0aGlzLnNldFN0YXRlKGF3YWl0IHIpfWNyZWF0ZVByb2Nlc3MoZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO2xldCByPW5ldyBmeSh0aGlzLGUpO3JldHVybiB0aGlzLnByb2Nlc3Nlcy5wdXNoKHIpLGUuYXV0b1N0YXJ0JiZyLnN0YXJ0KCkscn1jcmVhdGVTY2hlZHVsZWRBY3Rpb24oZSl7aWYodGhpcy5kaXNwb3NlZCl0aHJvdyBuZXcgRXJyb3IoYFN0YXRlUGFydCAnJHt0aGlzLm5hbWV9JyBoYXMgYmVlbiBkaXNwb3NlZGApO2xldCByPW5ldyBmeSh0aGlzLHtwcm9kdWNlcjppKCgpPT5LU2UoZS5pbnRlcnZhbE1zKSwicHJvZHVjZXIiKSxzaWRlRWZmZWN0OmkoYXN5bmMoKT0+e2F3YWl0IGUuYWN0aW9uLnRyaWdnZXIoZS5wYXlsb2FkKX0sInNpZGVFZmZlY3QiKSxhdXRvUGF1c2U6ZS5hdXRvUGF1c2U/PyExfSk7cmV0dXJuIHRoaXMucHJvY2Vzc2VzLnB1c2gociksci5zdGFydCgpLHJ9X3JlbW92ZVByb2Nlc3MoZSl7bGV0IHI9dGhpcy5wcm9jZXNzZXMuaW5kZXhPZihlKTtyIT09LTEmJnRoaXMucHJvY2Vzc2VzLnNwbGljZShyLDEpfWRpc3Bvc2UoKXtpZighdGhpcy5kaXNwb3NlZCl7dGhpcy5kaXNwb3NlZD0hMDtmb3IobGV0IGUgb2ZbLi4udGhpcy5wcm9jZXNzZXNdKWUuZGlzcG9zZSgpO3RoaXMucHJvY2Vzc2VzLmxlbmd0aD0wLHRoaXMuc3RhdGUuY29tcGxldGUoKSx0aGlzLm11dGF0aW9uUXVldWU9UHJvbWlzZS5yZXNvbHZlKCksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiYmKGNsZWFyVGltZW91dCh0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwpLHRoaXMubWlkZGxld2FyZXMubGVuZ3RoPTAsdGhpcy5zZWxlY3RvckNhY2hlPW5ldyBXZWFrTWFwLHRoaXMuZGVmYXVsdFNlbGVjdE9ic2VydmFibGU9bnVsbCx0aGlzLndlYlN0b3JlPW51bGwsdGhpcy5zbWFydHN0YXRlUmVmPXZvaWQgMCx0aGlzLnN0YXRlU3RvcmU9dm9pZCAwfX19fSk7ZnVuY3Rpb24gSSRlKHQsZSl7cmV0dXJuIEdTZSh0Lm1hcChyPT5yLnNlbGVjdCgpKSkucGlwZShEMChyPT5lKC4uLnIpKSxReCgocixhKT0+SlNPTi5zdHJpbmdpZnkocik9PT1KU09OLnN0cmluZ2lmeShhKSkpfXZhciBQJGU9dSgoKT0+e3QzZSgpO0p4KCk7aShJJGUsImNvbXB1dGVkIil9KTt2YXIgTiRlLGtvcj11KCgpPT57dDNlKCk7cjNlKCk7UCRlKCk7TiRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlNtYXJ0c3RhdGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGVQYXJ0TWFwPXt9LHRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uPW5ldyBNYXAsdGhpcy5iYXRjaERlcHRoPTAsdGhpcy5pc0ZsdXNoaW5nPSExLHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnM9bmV3IFNldH1nZXQgaXNCYXRjaGluZygpe3JldHVybiB0aGlzLmJhdGNoRGVwdGg+MH1yZWdpc3RlclBlbmRpbmdOb3RpZmljYXRpb24oZSl7dGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucy5hZGQoZSl9YXN5bmMgYmF0Y2goZSl7dGhpcy5iYXRjaERlcHRoKys7dHJ5e2F3YWl0IGUoKX1maW5hbGx5e2lmKHRoaXMuYmF0Y2hEZXB0aC0tLHRoaXMuYmF0Y2hEZXB0aD09PTAmJiF0aGlzLmlzRmx1c2hpbmcpe3RoaXMuaXNGbHVzaGluZz0hMDt0cnl7Zm9yKDt0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLnNpemU+MDspe2xldCByPVsuLi50aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zXTt0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLmNsZWFyKCk7Zm9yKGxldCBhIG9mIHIpdHJ5e2F3YWl0IGEubm90aWZ5Q2hhbmdlKCl9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcigiRXJyb3IgZmx1c2hpbmcgbm90aWZpY2F0aW9uIGZvciBzdGF0ZSBwYXJ0OiIscyl9fX1maW5hbGx5e3RoaXMuaXNGbHVzaGluZz0hMX19fX1jb21wdXRlZChlLHIpe3JldHVybiBJJGUoZSxyKX1kaXNwb3NlKCl7Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKHRoaXMuc3RhdGVQYXJ0TWFwKSl7bGV0IHI9dGhpcy5zdGF0ZVBhcnRNYXBbZV07ciYmci5kaXNwb3NlKCl9dGhpcy5zdGF0ZVBhcnRNYXA9e30sdGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uY2xlYXIoKSx0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zLmNsZWFyKCl9YXN5bmMgZ2V0U3RhdGVQYXJ0KGUscixhPSJzb2Z0Iil7bGV0IHM9dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZ2V0KGUpO2lmKHMpcmV0dXJuIHM7bGV0IG49dGhpcy5zdGF0ZVBhcnRNYXBbZV07aWYobilzd2l0Y2goYSl7Y2FzZSJtYW5kYXRvcnkiOnRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgYWxyZWFkeSBleGlzdHMsIGJ1dCBpbml0TW9kZSBpcyAnbWFuZGF0b3J5J2ApO2Nhc2UiZm9yY2UiOm4uZGlzcG9zZSgpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIG59ZWxzZSBpZihyPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgZG9lcyBub3QgZXhpc3QgYW5kIG5vIGluaXRpYWwgc3RhdGUgcHJvdmlkZWRgKTtsZXQgbz10aGlzLmNyZWF0ZVN0YXRlUGFydChlLHIsYSk7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uc2V0KGUsbyk7dHJ5e3JldHVybiBhd2FpdCBvfWZpbmFsbHl7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZGVsZXRlKGUpfX1hc3luYyBjcmVhdGVTdGF0ZVBhcnQoZSxyLGE9InNvZnQiKXtsZXQgcz1uZXcgbl8oZSxhPT09InBlcnNpc3RlbnQiP3tkYk5hbWU6InNtYXJ0c3RhdGUiLHN0b3JlTmFtZTplfTp2b2lkIDApO3Muc21hcnRzdGF0ZVJlZj10aGlzLGF3YWl0IHMuaW5pdCgpO2xldCBuPXMuZ2V0U3RhdGUoKTtyZXR1cm4gYT09PSJwZXJzaXN0ZW50IiYmbiE9PXZvaWQgMD9hd2FpdCBzLnNldFN0YXRlKHsuLi5yLC4uLm59KTphd2FpdCBzLnNldFN0YXRlKHIpLHRoaXMuc3RhdGVQYXJ0TWFwW2VdPXMsc319fSk7ZnVuY3Rpb24gaUxhKHQsZSl7bGV0e2NvbnRleHQ6cixzdGF0ZVBhcnQ6YSxzZWxlY3RvckZuOnN9PWUsbj1uZXcgU2V0LG89YS5zZWxlY3Qocykuc3Vic2NyaWJlKGQ9Pntmb3IobGV0IGYgb2YgbilmKGQpfSksbD1pKCgpPT57bGV0IGQ9YS5nZXRTdGF0ZSgpO2lmKGQhPT12b2lkIDApcmV0dXJuIHM/cyhkKTpkfSwiZ2V0VmFsdWUiKSxjPWkoZD0+e2xldCBmPWQscD1mLmRldGFpbDtpZighKCFwfHxwLmNvbnRleHQhPT1yKSlpZihmLnN0b3BQcm9wYWdhdGlvbigpLHAuc3Vic2NyaWJlKXtsZXQgaD1wLmNhbGxiYWNrO24uYWRkKGgpO2xldCBtPWkoKCk9Pm4uZGVsZXRlKGgpLCJ1bnN1YnNjcmliZSIpO2gobCgpLG0pfWVsc2UgcC5jYWxsYmFjayhsKCkpfSwiaGFuZGxlciIpO3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHQtcmVxdWVzdCIsYyksKCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHQtcmVxdWVzdCIsYyksby51bnN1YnNjcmliZSgpLG4uY2xlYXIoKX19dmFyIFNvcj11KCgpPT57aShpTGEsImF0dGFjaENvbnRleHRQcm92aWRlciIpfSk7dmFyIEs2PXt9O1ZlKEs2LHtTbWFydHN0YXRlOigpPT5OJGUsU3RhdGVBY3Rpb246KCk9PnNfLFN0YXRlUGFydDooKT0+bl8sU3RhdGVQcm9jZXNzOigpPT5meSxhdHRhY2hDb250ZXh0UHJvdmlkZXI6KCk9PmlMYSxjb21wdXRlZDooKT0+SSRlfSk7dmFyIE1vcj11KCgpPT57a29yKCk7cjNlKCk7QSRlKCk7UCRlKCk7U29yKCk7RSRlKCl9KTt2YXIgQ29yPXUoKCk9Pnt9KTt2YXIgTyRlLHpvcj11KCgpPT57Q29yKCk7TyRlPWNsYXNzIHR7c3RhdGlje2kodGhpcywiU21hcnR1cmwiKX1zdGF0aWMgY3JlYXRlRnJvbVVybChlLHIpe2xldCBhPW5ldyBVUkwoZSkscz17fSxuPVtdO2Euc2VhcmNoJiZhLnNlYXJjaC5yZXBsYWNlKCI/IiwiIikuc3BsaXQoIiYiKS5tYXAoZD0+e24ucHVzaCh7a2V5OmQuc3BsaXQoIj0iKVswXSx2YWx1ZTpkLnNwbGl0KCI9IilbMV19KX0pO2ZvcihsZXQgZCBvZiBuKXNbZC5rZXldPWQudmFsdWU7aWYocj8uc2VhcmNoUGFyYW1zKWZvcihsZXQgZCBvZiBPYmplY3Qua2V5cyhyLnNlYXJjaFBhcmFtcykpc1tkXT1yLnNlYXJjaFBhcmFtc1tkXTtsZXQgbz1hLnBhdGhuYW1lfHwiIjtpZihPYmplY3Qua2V5cyhzKS5sZW5ndGg+MCl7bys9Ij8iO2xldCBkPSEwO2ZvcihsZXQgZiBvZiBPYmplY3Qua2V5cyhzKSlkP2Q9ITE6bys9IiYiLG8rPWAke2Z9PSR7c1tmXX1gfWxldCBsPXsuLi5hLGhyZWY6YS5ocmVmLG9yaWdpbjphLm9yaWdpbixwcm90b2NvbDphLnByb3RvY29sLHVzZXJuYW1lOmEudXNlcm5hbWUscGFzc3dvcmQ6YS5wYXNzd29yZCxob3N0OmEuaG9zdCxob3N0bmFtZTphLmhvc3RuYW1lLHBvcnQ6YS5wb3J0LHBhdGg6byxwYXRobmFtZTphLnBhdGhuYW1lLHNlYXJjaDphLnNlYXJjaCxzZWFyY2hQYXJhbXM6cyxoYXNoOmEuaGFzaH07IWwucG9ydCYmbC5wcm90b2NvbD09PSJodHRwczoiJiYobC5wb3J0PSI0NDMiKSwhbC5wb3J0JiZsLnByb3RvY29sPT09Imh0dHA6IiYmKGwucG9ydD0iODAiKTtsZXQgYz1uZXcgdDtyZXR1cm4gT2JqZWN0LmFzc2lnbihjLGwpLGN9c3RhdGljIGNyZWF0ZUZyb21QYXJzZWRVcmwoZSl7bGV0IHI9bmV3IHQ7cmV0dXJuIE9iamVjdC5hc3NpZ24ocixlKSxyfWNvbnN0cnVjdG9yKCl7dGhpcy5zZWFyY2hQYXJhbXM9e319Y2xvbmUoKXtsZXQgZT1uZXcgdDtyZXR1cm4gT2JqZWN0LmFzc2lnbihlLHRoaXMpLGUuc2VhcmNoUGFyYW1zPXsuLi50aGlzLnNlYXJjaFBhcmFtc30sZX1zZXQoZSxyKXtyZXR1cm4gdGhpc1tlXT1yLHRoaXN9dG9TdHJpbmcoKXtsZXQgZT0iIjtyZXR1cm4gdGhpcy51c2VybmFtZSYmIXRoaXMucGFzc3dvcmQmJihlPWAke3RoaXMudXNlcm5hbWV9QGApLHRoaXMudXNlcm5hbWUmJnRoaXMucGFzc3dvcmQmJihlPWAke3RoaXMudXNlcm5hbWV9OiR7dGhpcy5wYXNzd29yZH1AYCksYCR7dGhpcy5wcm90b2NvbH0vLyR7ZX0ke3RoaXMuaG9zdG5hbWV9OiR7dGhpcy5wb3J0fSR7dGhpcy5wYXRofWB9fX0pO3ZhciBaNj17fTtWZShaNix7U21hcnR1cmw6KCk9Pk8kZX0pO3ZhciBfb3I9dSgoKT0+e3pvcigpfSk7dmFyIGEzZSxRNixpM2U9dSgoKT0+e2EzZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJEZWZlcnJlZCIpfWNsYWltKCl7aWYodGhpcy5jbGFpbWVkKXRocm93IG5ldyBFcnJvcigiRGVmZXJyZWQgYWxyZWFkeSBjbGFpbWVkIik7dGhpcy5jbGFpbWVkPSEwfWdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLnN0b3BwZWRBdD90aGlzLnN0b3BwZWRBdC10aGlzLnN0YXJ0ZWRBdDpEYXRlLm5vdygpLXRoaXMuc3RhcnRlZEF0fWNvbnN0cnVjdG9yKCl7dGhpcy5jbGFpbWVkPSExLHRoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZSxyKT0+e3RoaXMucmVzb2x2ZT1hPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxlKGEpfSx0aGlzLnJlamVjdD1hPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLHIoYSl9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9fSxRNj1pKCgpPT5uZXcgYTNlLCJkZWZlciIpfSk7dmFyIHMzZSxzTGEsVG9yPXUoKCk9PntpM2UoKTtzM2U9Y2xhc3N7c3RhdGlje2kodGhpcywiQ3VtdWxhdGl2ZURlZmVycmVkIil9Y29uc3RydWN0b3IoKXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXM9W10sdGhpcy5kZWZlcnJlZD1RNigpLHRoaXMucHJvbWlzZT10aGlzLmRlZmVycmVkLnByb21pc2Usc2V0VGltZW91dChhc3luYygpPT57Zm9yKDt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMubGVuZ3RoPjA7KWF3YWl0IHRoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5zaGlmdCgpO3RoaXMuZGVmZXJyZWQucmVzb2x2ZSgpfSwwKX1hZGRQcm9taXNlKGUpe3RoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5wdXNoKGUpfX0sc0xhPWkoKCk9Pm5ldyBzM2UsImN1bXVsYXRpdmVEZWZlciIpfSk7dmFyIFg2PXt9O1ZlKFg2LHtDdW11bGF0aXZlRGVmZXJyZWQ6KCk9PnMzZSxEZWZlcnJlZDooKT0+YTNlLGN1bXVsYXRpdmVEZWZlcjooKT0+c0xhLGRlZmVyOigpPT5RNixnZXRGaXJzdFRydWVPckZhbHNlOigpPT5kTGEsbWFwOigpPT5sTGEscmVqZWN0ZWRQcm9taXNlOigpPT5vTGEscmVzb2x2ZWRQcm9taXNlOigpPT5uTGEsdGltZW91dEFuZENvbnRpbnVlOigpPT5jTGEsdGltZW91dFdyYXA6KCk9Pkxvcn0pO3ZhciBuTGEsb0xhLGxMYSxMb3IsY0xhLGRMYSxSJGU9dSgoKT0+e2kzZSgpO1RvcigpO2kzZSgpO25MYT1pKHQ9PlByb21pc2UucmVzb2x2ZSh0KSwicmVzb2x2ZWRQcm9taXNlIiksb0xhPWkodD0+UHJvbWlzZS5yZWplY3QodCksInJlamVjdGVkUHJvbWlzZSIpLGxMYT1pKGFzeW5jKHQsZSk9PntsZXQgcj1bXSxhPVtdO2ZvcihsZXQgcyBvZiB0KXtsZXQgbj1lKHMpO3IucHVzaChuKSxuLnRoZW4obz0+e2EucHVzaChvKX0pfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChyKSxhfSwibWFwIiksTG9yPWkoYXN5bmModCxlLHI9ITApPT5uZXcgUHJvbWlzZSgoYSxzKT0+e3NldFRpbWVvdXQoKCk9PntyP3MobmV3IEVycm9yKCJ0aW1lb3V0IikpOmEobnVsbCl9LGUpLHQudGhlbihhLHMpfSksInRpbWVvdXRXcmFwIiksY0xhPWkoYXN5bmModCxlPTZlNCk9Pkxvcih0LGUsITEpLCJ0aW1lb3V0QW5kQ29udGludWUiKSxkTGE9aShhc3luYyB0PT57bGV0IGU9UTYoKTtmb3IobGV0IHIgb2YgdClyLnRoZW4oYT0+e2E9PT0hMCYmZS5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKCgpPT57ZS5yZXNvbHZlKCExKX0pLGUucHJvbWlzZX0sImdldEZpcnN0VHJ1ZU9yRmFsc2UiKX0pO3ZhciBGJGU9e307VmUoRiRlLHtUaW1lb3V0OigpPT5uM2UsZGVsYXlGb3I6KCk9PkRvcixkZWxheUZvclJhbmRvbTooKT0+dUxhfSk7dmFyIERvcix1TGEsbjNlLCRvcj11KCgpPT57UiRlKCk7RG9yPWkoYXN5bmModCxlLHI9ITEpPT4oYXdhaXQgbmV3IG4zZSh0LG51bGwscikucHJvbWlzZSxlKSwiZGVsYXlGb3IiKSx1TGE9aShhc3luYyh0LGUscixhPSExKT0+KGF3YWl0IERvcihNYXRoLnJhbmRvbSgpKihlLXQpK3QsbnVsbCxhKSxyKSwiZGVsYXlGb3JSYW5kb20iKSxuM2U9Y2xhc3N7c3RhdGlje2kodGhpcywiVGltZW91dCIpfWNvbnN0cnVjdG9yKGUscixhPSExKXt0aGlzLl9jYW5jZWxsZWQ9ITEsdGhpcy50aW1lb3V0SW5NaWxsaXM9ZSx0aGlzLl9kZWZlcnJlZD1RNigpLHRoaXMucHJvbWlzZT10aGlzLl9kZWZlcnJlZC5wcm9taXNlLHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbmNlbGxlZHx8dGhpcy5fZGVmZXJyZWQucmVzb2x2ZShyKX0sZSksdGhpcy5zdGFydGVkPURhdGUubm93KCksYSYmdGhpcy5tYWtlVW5yZWZlZCgpfW1ha2VVbnJlZmVkKCl7dGhpcy5fdGltZW91dC51bnJlZigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgZT10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gZT4wP2U6MH19fSk7dmFyIEFvcj11KCgpPT57fSk7dmFyIG8zZT11KCgpPT57ZWQoKX0pO3ZhciBsM2U9dSgoKT0+e2VkKCk7ZWQoKX0pO3ZhciBFb3I9dSgoKT0+e2VkKCl9KTt2YXIgSW9yPXUoKCk9Pnt9KTt2YXIgUG9yPXUoKCk9PntlZCgpfSk7dmFyIE5vcj11KCgpPT57ZWQoKX0pO3ZhciBPb3I9dSgoKT0+e30pO3ZhciBSb3I9dSgoKT0+e30pO3ZhciBCJGU9e307dmFyIGMzZT11KCgpPT57RW9yKCk7SW9yKCk7UG9yKCk7Tm9yKCk7T29yKCk7Um9yKCl9KTt2YXIgSCRlLEZvcj11KCgpPT57YzNlKCk7bzNlKCk7bDNlKCk7SCRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIklKb2IiKX19fSk7dmFyIEJvcj11KCgpPT57fSk7dmFyIEhvcj11KCgpPT57fSk7dmFyIHFvcj11KCgpPT57fSk7dmFyIFZvcj11KCgpPT57fSk7dmFyIHEkZT17fTt2YXIgViRlPXUoKCk9PntCb3IoKTtIb3IoKTtxb3IoKTtWb3IoKX0pO3ZhciBqb3I9dSgoKT0+e2okZSgpO2MzZSgpO1YkZSgpfSk7dmFyIFVvcj11KCgpPT57fSk7dmFyIFdvcj11KCgpPT57bDNlKCl9KTt2YXIgR29yPXUoKCk9Pnt9KTt2YXIgZDNlPXt9O1ZlKGQzZSx7SUpvYjooKT0+SCRlfSk7dmFyIGokZT11KCgpPT57QW9yKCk7bzNlKCk7bDNlKCk7Rm9yKCk7am9yKCk7VW9yKCk7V29yKCk7R29yKCl9KTt2YXIgWW9yPXUoKCk9Pnt9KTt2YXIgS29yPXUoKCk9Pnt9KTt2YXIgVSRlPXt9O3ZhciBab3I9dSgoKT0+e1lvcigpO0tvcigpfSk7dmFyIFFvcj11KCgpPT57fSk7dmFyIFhvcj11KCgpPT57fSk7dmFyIFckZT17fTt2YXIgSm9yPXUoKCk9PntRb3IoKTtYb3IoKX0pO3ZhciBHJGU9dSgoKT0+e2VkKCl9KTt2YXIgZTFyPXUoKCk9PntlZCgpfSk7dmFyIHQxcj11KCgpPT57RyRlKCl9KTt2YXIgWSRlPXt9O3ZhciByMXI9dSgoKT0+e0ckZSgpO2UxcigpO3QxcigpfSk7dmFyIGExcj11KCgpPT57fSk7dmFyIGkxcj11KCgpPT57fSk7dmFyIEskZT17fTt2YXIgczFyPXUoKCk9PnthMXIoKTtpMXIoKX0pO3ZhciBaJGU9dSgoKT0+e30pO3ZhciBRJGUsbjFyPXUoKCk9PntaJGUoKTtRJGU9Y2xhc3N7c3RhdGlje2kodGhpcywiSUNuYW1lRGVzY3JpcHRvciIpfX19KTt2YXIgbzFyPXUoKCk9Pnt9KTt2YXIgbDFyPXUoKCk9Pnt9KTt2YXIgYzFyPXUoKCk9Pnt9KTt2YXIgZDFyPXUoKCk9Pnt9KTt2YXIgdTFyPXUoKCk9Pnt9KTt2YXIgcDFyPXUoKCk9Pnt9KTt2YXIgZjFyPXUoKCk9Pnt9KTt2YXIgaDFyPXUoKCk9Pnt9KTt2YXIgbTFyPXUoKCk9Pnt9KTt2YXIgdTNlPXt9O1ZlKHUzZSx7SUNuYW1lRGVzY3JpcHRvcjooKT0+USRlfSk7dmFyIGcxcj11KCgpPT57WiRlKCk7bjFyKCk7bzFyKCk7bDFyKCk7YzFyKCk7ZDFyKCk7dTFyKCk7cDFyKCk7ZjFyKCk7aDFyKCk7bTFyKCl9KTt2YXIgWCRlPXUoKCk9PntvM2UoKX0pO3ZhciBiMXI9dSgoKT0+e1gkZSgpfSk7dmFyIEokZT17fTt2YXIgeDFyPXUoKCk9PntiMXIoKTtYJGUoKX0pO3ZhciBlQWU9e307dmFyIHYxcj11KCgpPT57fSk7dmFyIHkxcj11KCgpPT57fSk7dmFyIHcxcj11KCgpPT57fSk7dmFyIGsxcj11KCgpPT57fSk7dmFyIHRBZT17fTt2YXIgUzFyPXUoKCk9Pnt5MXIoKTt3MXIoKTtrMXIoKX0pO3ZhciBNMXI9dSgoKT0+e30pO3ZhciByQWU9e307VmUockFlLHtidXNpbmVzczooKT0+ZDNlLGNvZGU6KCk9PlUkZSxjb250YWluZXI6KCk9PlckZSxjb250ZW50OigpPT5ZJGUsZGF0YWJhc2U6KCk9PnEkZSxmaW5hbmNlOigpPT5CJGUsZ2VuZXJhbDooKT0+SyRlLG5ldHdvcms6KCk9PnUzZSxzYWFzOigpPT5KJGUsc3RvcmFnZTooKT0+ZUFlLHdlYnNpdGU6KCk9PnRBZX0pO3ZhciBlZD11KCgpPT57aiRlKCk7Wm9yKCk7Sm9yKCk7ViRlKCk7YzNlKCk7cjFyKCk7czFyKCk7ZzFyKCk7eDFyKCk7djFyKCk7UzFyKCk7TTFyKCl9KTt2YXIgSTQ9dSgoKT0+eyRvcigpO1IkZSgpO2VkKCl9KTt2YXIgcDNlPXUoKCk9PntJNCgpfSk7dmFyIENwLG9fPXUoKCk9PntJNCgpO0NwPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRhZyIpfWFwcGVuZFRvRG9tKCl7IXRoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50JiYhdGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUmJmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50UmVmKX1yZW1vdmVGcm9tRG9tKCl7dGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQ/dGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmKTp0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZSYmdGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmKX19fSk7dmFyIEo2LGYzZT11KCgpPT57STQoKTtwM2UoKTtvXygpO0o2PWNsYXNzIHQgZXh0ZW5kcyBDcHtzdGF0aWN7aSh0aGlzLCJKc29uTGRUYWciKX1zdGF0aWMgY3JlYXRlQ29tcGFueUpzb25MZChlKXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJDb3Jwb3JhdGlvbiIsbmFtZTplLm5hbWUsYWx0ZXJuYXRlTmFtZTplLm5hbWUucmVwbGFjZSgiIEdtYkgiLCIiKSx1cmw6ZS5jb250YWN0LndlYnNpdGUsbG9nbzplLmNvbnRhY3QubG9nb1VybCxjb250YWN0UG9pbnQ6eyJAdHlwZSI6IkNvbnRhY3RQb2ludCIsdGVsZXBob25lOmUuY29udGFjdC5waG9uZSxjb250YWN0VHlwZToiY3VzdG9tZXIgc2VydmljZSIsYXJlYVNlcnZlZDoiREUiLGF2YWlsYWJsZUxhbmd1YWdlOlsiZW4iLCJHZXJtYW4iXX0sc2FtZUFzOltdfTtyZXR1cm4gZS5jb250YWN0LmZhY2Vib29rVXJsJiZyLnNhbWVBcy5wdXNoKGUuY29udGFjdC5mYWNlYm9va1VybCksZS5jb250YWN0LnR3aXR0ZXJVcmwmJnIuc2FtZUFzLnB1c2goZS5jb250YWN0LnR3aXR0ZXJVcmwpLG5ldyB0KHIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZUpzb25MZChlKXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJOZXdzQXJ0aWNsZSIsbWFpbkVudGl0eU9mUGFnZTp7IkB0eXBlIjoiV2ViUGFnZSIsIkBpZCI6d2luZG93LmxvY2F0aW9uLmhyZWZ9LGhlYWRsaW5lOiJBcnRpY2xlIGhlYWRsaW5lIixpbWFnZTpbZS5mZWF0dXJlZEltYWdlVXJsXSxkYXRlUHVibGlzaGVkOm5ldyBEYXRlKGUudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGRhdGVNb2RpZmllZDpuZXcgRGF0ZShlLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxhdXRob3I6eyJAdHlwZSI6IlBlcnNvbiIsbmFtZTpgJHtlLmF1dGhvci5maXJzdE5hbWV9ICR7ZS5hdXRob3Iuc3VyTmFtZX1gfSxwdWJsaXNoZXI6eyJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsbmFtZTplLmF1dGhvci5zdXJOYW1lLGxvZ286eyJAdHlwZSI6IkltYWdlT2JqZWN0Iix1cmw6ZS5hdXRob3Iuc3VyTmFtZX19LGRlc2NyaXB0aW9uOmUuYXV0aG9yLmZpcnN0TmFtZX07cmV0dXJuIG5ldyB0KHIpfXN0YXRpYyBjcmVhdGVQcm9kdWN0SnNvbkxkKGUscil7bGV0IGE9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiU29mdHdhcmVBcHBsaWNhdGlvbiIsbmFtZTplLm5hbWUsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbixvcGVyYXRpbmdTeXN0ZW06ZS5vcyxhcHBsaWNhdGlvbkNhdGVnb3J5OmUuY2F0ZWdvcnksb2ZmZXJzOnsiQHR5cGUiOiJPZmZlciIsbmFtZToiVXNlci1iYXNlZCBQbGFuIixwcmljZVNwZWNpZmljYXRpb246eyJAdHlwZSI6IlByb3BlcnR5VmFsdWVTcGVjaWZpY2F0aW9uIix2YWx1ZU5hbWU6Ik51bWJlciBvZiBVc2VycyIsdmFsdWVSZXF1aXJlZDohMCxwcmljZToiNC45OSIscHJpY2VDdXJyZW5jeToiRVVSIn19LHB1Ymxpc2hlcjp0aGlzLmNyZWF0ZUNvbXBhbnlKc29uTGQocikuZWxlbWVudFJlZi50ZXh0Q29udGVudCxzY3JlZW5zaG90OiJodHRwczovL3d3dy5zb2NpYWwuaW8vc2NyZWVuc2hvdC5wbmciLHVybDoiaHR0cHM6Ly93d3cuc29jaWFsLmlvLyJ9O3JldHVybiBuZXcgdChhKX1jb25zdHJ1Y3RvcihlKXtzdXBlcigpO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3IudHlwZT0iYXBwbGljYXRpb24vbGQranNvbiIsci50ZXh0PUpTT04uc3RyaW5naWZ5KGUpLHRoaXMuZWxlbWVudFJlZj1yfX19KTt2YXIgQm8saDNlPXUoKCk9PntJNCgpO29fKCk7Qm89Y2xhc3MgdCBleHRlbmRzIENwe3N0YXRpY3tpKHRoaXMsIk9wZW5ncmFwaFRhZyIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyhlKXtsZXQgcj1bXTtyZXR1cm4gci5wdXNoKG5ldyB0KCJvZzp1cmwiLGUudXJsKSksci5wdXNoKG5ldyB0KCJvZzp0aXRsZSIsZS50aXRsZSkpLHIucHVzaChuZXcgdCgib2c6ZGVzY3JpcHRpb24iLGUuY29udGVudCkpLHIucHVzaChuZXcgdCgib2c6aW1hZ2UiLGUuZmVhdHVyZWRJbWFnZVVybCkpLHJ9c3RhdGljIGNyZWF0ZVByb2R1Y3RPZ1RhZ3MoZSl7bGV0IHI9W107cmV0dXJuIHIucHVzaChuZXcgdCgib2c6dXJsIixnbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSxyLnB1c2gobmV3IHQoIm9nOnRpdGxlIixgJHtlLm5hbWV9IC0gJHtlLnNsb2dhbn1gKSksci5wdXNoKG5ldyB0KCJvZzpzaXRlX25hbWUiLGUubmFtZSkpLHIucHVzaChuZXcgdCgib2c6ZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxyLnB1c2gobmV3IHQoIm9nOmltYWdlIixlLmxvZ29MaW5rKSkscn1jb25zdHJ1Y3RvcihlLHIpe3N1cGVyKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2Euc2V0QXR0cmlidXRlKCJwcm9wZXJ0eSIsZSksYS5jb250ZW50PXIsdGhpcy5lbGVtZW50UmVmPWF9fX0pO3ZhciBoeSxhQWU9dSgoKT0+e29fKCk7ZjNlKCk7aDNlKCk7aUFlKCk7STQoKTtoeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUYWdMZXZlbCIpfXNldCB0aXRsZShlKXt0aGlzLnRpdGxlU3RvcmU9ZSx0aGlzLnN0YXRlPT09ImVuYWJsZWQiJiYoZG9jdW1lbnQudGl0bGU9dGhpcy50aXRsZVN0b3JlKX1nZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy50aXRsZVN0b3JlfWNvbnN0cnVjdG9yKGUscil7dGhpcy50YWdzPVtdLHRoaXMuc3RhdGU9ImRpc2FibGVkIix0aGlzLnRhZ01hbmFnZXJSZWY9ZX1hZGRUYWcoZSl7aWYoZSBpbnN0YW5jZW9mIEFycmF5KWZvcihsZXQgciBvZiBlKXRoaXMuYWRkVGFnKHIpO2Vsc2UgdGhpcy50YWdzLnB1c2goZSksdGhpcy5zdGF0ZT09PSJlbmFibGVkIiYmZS5hcHBlbmRUb0RvbSgpfWFzeW5jIGFkZENvbXBhbnlJbmZvKGUpe3RoaXMuYWRkVGFnKEo2LmNyZWF0ZUNvbXBhbnlKc29uTGQoZSkpLHRoaXMuYWRkVGFnKG5ldyBCbygib2c6dHlwZSIsImJ1c2luZXNzLmJ1c2luZXNzIikpLHRoaXMuYWRkVGFnKG5ldyBCbygib2c6dGl0bGUiLGUubmFtZSkpLHRoaXMuYWRkVGFnKG5ldyBCbygib2c6dXJsIixlLmNvbnRhY3Qud2Vic2l0ZSkpLHRoaXMuYWRkVGFnKG5ldyBCbygib2c6aW1hZ2UiLGUuY29udGFjdC5sb2dvVXJsKSksdGhpcy5hZGRUYWcobmV3IEJvKCJidXNpbmVzczpjb250YWN0X2RhdGE6c3RyZWV0X2FkZHJlc3MiLGAke2UuY29udGFjdC5hZGRyZXNzLnN0cmVldE5hbWV9ICR7ZS5jb250YWN0LmFkZHJlc3MuaG91c2VOdW1iZXJ9YCkpLHRoaXMuYWRkVGFnKG5ldyBCbygiYnVzaW5lc3M6Y29udGFjdF9kYXRhOmxvY2FsaXR5IixlLmNvbnRhY3QuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IEJvKCJidXNpbmVzczpjb250YWN0X2RhdGE6cmVnaW9uIixlLmNvbnRhY3QuYWRkcmVzcy5jaXR5KSksdGhpcy5hZGRUYWcobmV3IEJvKCJidXNpbmVzczpjb250YWN0X2RhdGE6cG9zdGFsX2NvZGUiLGUuY29udGFjdC5hZGRyZXNzLnBvc3RhbENvZGUpKSx0aGlzLmFkZFRhZyhuZXcgQm8oImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpjb3VudHJ5X25hbWUiLGUuY29udGFjdC5hZGRyZXNzLmNvdW50cnkpKX1hZGROZXdzQXJ0aWNsZUluZm8oZSl7dGhpcy5hZGRUYWcoSjYuY3JlYXRlTmV3c0FydGljbGVKc29uTGQoZSkpLHRoaXMuYWRkVGFnKEJvLmNyZWF0ZU5ld3NBcnRpY2xlT2dUYWdzKGUpKX1hZGRQcm9kdWN0SW5mbyhlLHIpe3RoaXMuYWRkVGFnKEo2LmNyZWF0ZVByb2R1Y3RKc29uTGQoZSxyKSksdGhpcy5hZGRUYWcoQm8uY3JlYXRlUHJvZHVjdE9nVGFncyhlKSl9YXN5bmMgZW5hYmxlKCl7dGhpcy50aXRsZSYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGUpO2ZvcihsZXQgZSBvZiB0aGlzLnRhZ3MpZS5hcHBlbmRUb0RvbSgpO3RoaXMuc3RhdGU9ImVuYWJsZWQifWFzeW5jIGRpc2FibGUoKXtmb3IobGV0IGUgb2YgdGhpcy50YWdzKWUucmVtb3ZlRnJvbURvbSgpO3RoaXMuc3RhdGU9ImRpc2FibGVkIn19fSk7dmFyIEdsLHNBZT11KCgpPT57b18oKTtHbD1jbGFzcyBleHRlbmRzIENwe3N0YXRpY3tpKHRoaXMsIk1ldGFUYWciKX1jb25zdHJ1Y3RvcihlLHIpe3N1cGVyKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2EubmFtZT1lLGEuY29udGVudD1yLHRoaXMuZWxlbWVudFJlZj1hfX19KTt2YXIgbTNlLGlBZT11KCgpPT57YUFlKCk7STQoKTtwM2UoKTtzQWUoKTtmM2UoKTtoM2UoKTttM2U9Y2xhc3N7c3RhdGlje2kodGhpcywiVGFnTWFuYWdlciIpfWNvbnN0cnVjdG9yKCl7dGhpcy5nbG9iYWxMZXZlbD1uZXcgaHkodGhpcywiZ2xvYmFsIiksdGhpcy5iYXNlTGV2ZWw9bmV3IGh5KHRoaXMsImJhc2UiKX1hc3luYyBzZXR1cChlKXtzd2l0Y2godGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IEdsKCJnb29nbGUiLCJub3RyYW5zbGF0ZSIpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgR2woInJldmlzaXQtYWZ0ZXIiLCIxIGRheXMiKSksZS50d2l0dGVySGFuZGxlJiYodGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IEdsKCJ0d2l0dGVyOmNhcmQiLCJzdW1tYXJ5X2xhcmdlX2ltYWdlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBHbCgidHdpdHRlcjpzaXRlIixlLnR3aXR0ZXJIYW5kbGUpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgR2woInR3aXR0ZXI6Y3JlYXRvciIsZS50d2l0dGVySGFuZGxlKSkpLHRoaXMuYmFzZUxldmVsLnRpdGxlPWUudGl0bGUsZS5kZXNjcmlwdGlvbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBHbCgiZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxlLmNhbm9uaWNhbERvbWFpbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBHbCgiY2Fub25pY2FsIixlLmNhbm9uaWNhbERvbWFpbikpLCEwKXtjYXNlKGUubGRDb21wYW55JiYhZS5sZFByb2R1Y3QpOnRoaXMuYmFzZUxldmVsLmFkZENvbXBhbnlJbmZvKGUubGRDb21wYW55KTticmVhaztjYXNlISFlLmxkUHJvZHVjdDp0aGlzLmJhc2VMZXZlbC5hZGRQcm9kdWN0SW5mbyhlLmxkUHJvZHVjdCxlLmxkQ29tcGFueSk7YnJlYWt9YXdhaXQgdGhpcy5nbG9iYWxMZXZlbC5lbmFibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXRoaXMuYmFzZUxldmVsLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCl9YXN5bmMgc2V0U3ViUGFnZUxldmVsKGUpe2xldCByPW5ldyBoeSh0aGlzLCJzdWJwYWdlIik7cmV0dXJuIHIudGl0bGU9ZS50aXRsZSxlLmRlc2NyaXB0aW9uJiZyLmFkZFRhZyhuZXcgR2woImRlc2NyaXB0aW9uIixlLmRlc2NyaXB0aW9uKSksYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD1yLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCkscn1hc3luYyByZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMuYWN0aXZlTGV2ZWwhPT10aGlzLmJhc2VMZXZlbCYmKGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSl9fX0pO3ZhciBsXyxDMXI9dSgoKT0+e0k0KCk7cDNlKCk7aUFlKCk7YUFlKCk7bF89Y2xhc3N7c3RhdGlje2kodGhpcywiV2ViU2V0dXAiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnRhZ01hbmFnZXI9bmV3IG0zZSx0aGlzLnJlYWR5RGVmZXJyZWQ9WDYuZGVmZXIoKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZD1YNi5kZWZlcigpLHRoaXMucmVhZHlQcm9taXNlPXRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlLHRoaXMucmVhZHlGb3JTbWFydHNzclByb21pc2U9dGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucHJvbWlzZSx0aGlzLm9wdGlvbnM9ZSx0aGlzLnNldHVwKCkudGhlbigoKT0+e3RoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCksdGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9KX1hc3luYyBzZXR1cChlKXtlJiYodGhpcy5vcHRpb25zPWUpLGF3YWl0IHRoaXMudGFnTWFuYWdlci5zZXR1cCh0aGlzLm9wdGlvbnMubWV0YU9iamVjdCl9cmV2ZXJ0VG9CYXNlTGV2ZWwoKXt0aGlzLnRhZ01hbmFnZXIucmV2ZXJ0VG9CYXNlTGV2ZWwoKX1hc3luYyBzZXRTdWJMZXZlbChlKXtyZXR1cm4gYXdhaXQgdGhpcy50YWdNYW5hZ2VyLnNldFN1YlBhZ2VMZXZlbChlKX1mbGFzaFRpdGxlKGUpe31pbmZvcm1SZWFkeUZvclNtYXJ0c3NyKCl7dGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsfHxjb25zb2xlLmVycm9yKCJZb3UgaGF2ZSBub3QgaW5kaWNhdGVkIHRoYXQgeW91IGluZm9ybSBzbWFydHNzciBieSBhIGRlZGljYXRlZCBzaWduYWwhIFBsZWFzZSBjb25zaWRlciBkb2luZyBzbyEiKSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5yZXNvbHZlKCl9fX0pO3ZhciBuQWUsejFyPXUoKCk9PntJNCgpO25BZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUaXRsZSIpfX19KTt2YXIgb0FlPXt9O1ZlKG9BZSx7SnNvbkxkVGFnOigpPT5KNixNZXRhVGFnOigpPT5HbCxPcGVuZ3JhcGhUYWc6KCk9PkJvLFRpdGxlOigpPT5uQWUsV2ViU2V0dXA6KCk9PmxffSk7dmFyIGczZT11KCgpPT57QzFyKCk7c0FlKCk7aDNlKCk7ZjNlKCk7ejFyKCl9KTtmdW5jdGlvbiBfMXIodCxlLHIpe3JldHVybiBNYXRoLm1heCh0LE1hdGgubWluKGUscikpfWZ1bmN0aW9uIGhMYSh0LGUscil7cmV0dXJuKDEtcikqdCtyKmV9ZnVuY3Rpb24gbUxhKHQsZSxyLGEpe3JldHVybiBoTGEodCxlLDEtTWF0aC5leHAoLXIqYSkpfWZ1bmN0aW9uIGdMYSh0LGUpe3JldHVybih0JWUrZSklZX1mdW5jdGlvbiB4TGEodCxlKXtsZXQgcjtyZXR1cm4gZnVuY3Rpb24oLi4uYSl7bGV0IHM9dGhpcztjbGVhclRpbWVvdXQocikscj1zZXRUaW1lb3V0KCgpPT57cj12b2lkIDAsdC5hcHBseShzLGEpfSxlKX19dmFyIGZMYSxiTGEsdkxhLFQxcixMMXIsenAseUxhLEQxcixjXywkMXI9dSgoKT0+e2ZMYT0iMS4zLjE3IjtpKF8xciwiY2xhbXAiKTtpKGhMYSwibGVycCIpO2kobUxhLCJkYW1wIik7aShnTGEsIm1vZHVsbyIpO2JMYT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJBbmltYXRlIil9aXNSdW5uaW5nPSExO3ZhbHVlPTA7ZnJvbT0wO3RvPTA7Y3VycmVudFRpbWU9MDtsZXJwO2R1cmF0aW9uO2Vhc2luZztvblVwZGF0ZTthZHZhbmNlKHQpe2lmKCF0aGlzLmlzUnVubmluZylyZXR1cm47bGV0IGU9ITE7aWYodGhpcy5kdXJhdGlvbiYmdGhpcy5lYXNpbmcpe3RoaXMuY3VycmVudFRpbWUrPXQ7bGV0IHI9XzFyKDAsdGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uLDEpO2U9cj49MTtsZXQgYT1lPzE6dGhpcy5lYXNpbmcocik7dGhpcy52YWx1ZT10aGlzLmZyb20rKHRoaXMudG8tdGhpcy5mcm9tKSphfWVsc2UgdGhpcy5sZXJwPyh0aGlzLnZhbHVlPW1MYSh0aGlzLnZhbHVlLHRoaXMudG8sdGhpcy5sZXJwKjYwLHQpLE1hdGgucm91bmQodGhpcy52YWx1ZSk9PT10aGlzLnRvJiYodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApKToodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApO2UmJnRoaXMuc3RvcCgpLHRoaXMub25VcGRhdGU/Lih0aGlzLnZhbHVlLGUpfXN0b3AoKXt0aGlzLmlzUnVubmluZz0hMX1mcm9tVG8odCxlLHtsZXJwOnIsZHVyYXRpb246YSxlYXNpbmc6cyxvblN0YXJ0Om4sb25VcGRhdGU6b30pe3RoaXMuZnJvbT10aGlzLnZhbHVlPXQsdGhpcy50bz1lLHRoaXMubGVycD1yLHRoaXMuZHVyYXRpb249YSx0aGlzLmVhc2luZz1zLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmlzUnVubmluZz0hMCxuPy4oKSx0aGlzLm9uVXBkYXRlPW99fTtpKHhMYSwiZGVib3VuY2UiKTt2TGE9Y2xhc3N7c3RhdGlje2kodGhpcywiRGltZW5zaW9ucyIpfWNvbnN0cnVjdG9yKHQsZSx7YXV0b1Jlc2l6ZTpyPSEwLGRlYm91bmNlOmE9MjUwfT17fSl7dGhpcy53cmFwcGVyPXQsdGhpcy5jb250ZW50PWUsciYmKHRoaXMuZGVib3VuY2VkUmVzaXplPXhMYSh0aGlzLnJlc2l6ZSxhKSx0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpOih0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy53cmFwcGVyKSksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuZGVib3VuY2VkUmVzaXplKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY29udGVudCkpLHRoaXMucmVzaXplKCl9d2lkdGg9MDtoZWlnaHQ9MDtzY3JvbGxIZWlnaHQ9MDtzY3JvbGxXaWR0aD0wO2RlYm91bmNlZFJlc2l6ZTt3cmFwcGVyUmVzaXplT2JzZXJ2ZXI7Y29udGVudFJlc2l6ZU9ic2VydmVyO2Rlc3Ryb3koKXt0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy53cmFwcGVyPT09d2luZG93JiZ0aGlzLmRlYm91bmNlZFJlc2l6ZSYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpfXJlc2l6ZT1pKCgpPT57dGhpcy5vbldyYXBwZXJSZXNpemUoKSx0aGlzLm9uQ29udGVudFJlc2l6ZSgpfSwicmVzaXplIik7b25XcmFwcGVyUmVzaXplPWkoKCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMud2lkdGg9d2luZG93LmlubmVyV2lkdGgsdGhpcy5oZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0KToodGhpcy53aWR0aD10aGlzLndyYXBwZXIuY2xpZW50V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy53cmFwcGVyLmNsaWVudEhlaWdodCl9LCJvbldyYXBwZXJSZXNpemUiKTtvbkNvbnRlbnRSZXNpemU9aSgoKT0+e3RoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz8odGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5jb250ZW50LnNjcm9sbEhlaWdodCx0aGlzLnNjcm9sbFdpZHRoPXRoaXMuY29udGVudC5zY3JvbGxXaWR0aCk6KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMud3JhcHBlci5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLndyYXBwZXIuc2Nyb2xsV2lkdGgpfSwib25Db250ZW50UmVzaXplIik7Z2V0IGxpbWl0KCl7cmV0dXJue3g6dGhpcy5zY3JvbGxXaWR0aC10aGlzLndpZHRoLHk6dGhpcy5zY3JvbGxIZWlnaHQtdGhpcy5oZWlnaHR9fX0sVDFyPWNsYXNze3N0YXRpY3tpKHRoaXMsIkVtaXR0ZXIiKX1ldmVudHM9e307ZW1pdCh0LC4uLmUpe2xldCByPXRoaXMuZXZlbnRzW3RdfHxbXTtmb3IobGV0IGE9MCxzPXIubGVuZ3RoO2E8czthKyspclthXT8uKC4uLmUpfW9uKHQsZSl7cmV0dXJuIHRoaXMuZXZlbnRzW3RdPy5wdXNoKGUpfHwodGhpcy5ldmVudHNbdF09W2VdKSwoKT0+e3RoaXMuZXZlbnRzW3RdPXRoaXMuZXZlbnRzW3RdPy5maWx0ZXIocj0+ZSE9PXIpfX1vZmYodCxlKXt0aGlzLmV2ZW50c1t0XT10aGlzLmV2ZW50c1t0XT8uZmlsdGVyKHI9PmUhPT1yKX1kZXN0cm95KCl7dGhpcy5ldmVudHM9e319fSxMMXI9MTAwLzYsenA9e3Bhc3NpdmU6ITF9LHlMYT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaXJ0dWFsU2Nyb2xsIil9Y29uc3RydWN0b3IodCxlPXt3aGVlbE11bHRpcGxpZXI6MSx0b3VjaE11bHRpcGxpZXI6MX0pe3RoaXMuZWxlbWVudD10LHRoaXMub3B0aW9ucz1lLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMub25XaW5kb3dSZXNpemUsITEpLHRoaXMub25XaW5kb3dSZXNpemUoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCx6cCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LHpwKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLHpwKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCx6cCl9dG91Y2hTdGFydD17eDowLHk6MH07bGFzdERlbHRhPXt4OjAseTowfTt3aW5kb3c9e3dpZHRoOjAsaGVpZ2h0OjB9O2VtaXR0ZXI9bmV3IFQxcjtvbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1kZXN0cm95KCl7dGhpcy5lbWl0dGVyLmRlc3Ryb3koKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCx6cCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LHpwKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLHpwKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCx6cCl9b25Ub3VjaFN0YXJ0PWkodD0+e2xldHtjbGllbnRYOmUsY2xpZW50WTpyfT10LnRhcmdldFRvdWNoZXM/dC50YXJnZXRUb3VjaGVzWzBdOnQ7dGhpcy50b3VjaFN0YXJ0Lng9ZSx0aGlzLnRvdWNoU3RhcnQueT1yLHRoaXMubGFzdERlbHRhPXt4OjAseTowfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOjAsZGVsdGFZOjAsZXZlbnQ6dH0pfSwib25Ub3VjaFN0YXJ0Iik7b25Ub3VjaE1vdmU9aSh0PT57bGV0e2NsaWVudFg6ZSxjbGllbnRZOnJ9PXQudGFyZ2V0VG91Y2hlcz90LnRhcmdldFRvdWNoZXNbMF06dCxhPS0oZS10aGlzLnRvdWNoU3RhcnQueCkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcixzPS0oci10aGlzLnRvdWNoU3RhcnQueSkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcjt0aGlzLnRvdWNoU3RhcnQueD1lLHRoaXMudG91Y2hTdGFydC55PXIsdGhpcy5sYXN0RGVsdGE9e3g6YSx5OnN9LHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6YSxkZWx0YVk6cyxldmVudDp0fSl9LCJvblRvdWNoTW92ZSIpO29uVG91Y2hFbmQ9aSh0PT57dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDp0aGlzLmxhc3REZWx0YS54LGRlbHRhWTp0aGlzLmxhc3REZWx0YS55LGV2ZW50OnR9KX0sIm9uVG91Y2hFbmQiKTtvbldoZWVsPWkodD0+e2xldHtkZWx0YVg6ZSxkZWx0YVk6cixkZWx0YU1vZGU6YX09dCxzPWE9PT0xP0wxcjphPT09Mj90aGlzLndpbmRvdy53aWR0aDoxLG49YT09PTE/TDFyOmE9PT0yP3RoaXMud2luZG93LmhlaWdodDoxO2UqPXMscio9bixlKj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLHIqPXRoaXMub3B0aW9ucy53aGVlbE11bHRpcGxpZXIsdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTpyLGV2ZW50OnR9KX0sIm9uV2hlZWwiKTtvbldpbmRvd1Jlc2l6ZT1pKCgpPT57dGhpcy53aW5kb3c9e3dpZHRoOndpbmRvdy5pbm5lcldpZHRoLGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHR9fSwib25XaW5kb3dSZXNpemUiKX0sRDFyPWkodD0+TWF0aC5taW4oMSwxLjAwMS1NYXRoLnBvdygyLC0xMCp0KSksImRlZmF1bHRFYXNpbmciKSxjXz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJMZW5pcyIpfV9pc1Njcm9sbGluZz0hMTtfaXNTdG9wcGVkPSExO19pc0xvY2tlZD0hMTtfcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtfcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbDtfcmFmSWQ9bnVsbDtpc1RvdWNoaW5nO3RpbWU9MDt1c2VyRGF0YT17fTtsYXN0VmVsb2NpdHk9MDt2ZWxvY2l0eT0wO2RpcmVjdGlvbj0wO29wdGlvbnM7dGFyZ2V0U2Nyb2xsO2FuaW1hdGVkU2Nyb2xsO2FuaW1hdGU9bmV3IGJMYTtlbWl0dGVyPW5ldyBUMXI7ZGltZW5zaW9uczt2aXJ0dWFsU2Nyb2xsO2NvbnN0cnVjdG9yKHt3cmFwcGVyOnQ9d2luZG93LGNvbnRlbnQ6ZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZXZlbnRzVGFyZ2V0OnI9dCxzbW9vdGhXaGVlbDphPSEwLHN5bmNUb3VjaDpzPSExLHN5bmNUb3VjaExlcnA6bj0uMDc1LHRvdWNoSW5lcnRpYUV4cG9uZW50Om89MS43LGR1cmF0aW9uOmwsZWFzaW5nOmMsbGVycDpkPS4xLGluZmluaXRlOmY9ITEsb3JpZW50YXRpb246cD0idmVydGljYWwiLGdlc3R1cmVPcmllbnRhdGlvbjpoPXA9PT0iaG9yaXpvbnRhbCI/ImJvdGgiOiJ2ZXJ0aWNhbCIsdG91Y2hNdWx0aXBsaWVyOm09MSx3aGVlbE11bHRpcGxpZXI6dj0xLGF1dG9SZXNpemU6Yj0hMCxwcmV2ZW50OmcsdmlydHVhbFNjcm9sbDp5LG92ZXJzY3JvbGw6az0hMCxhdXRvUmFmOk09ITEsYW5jaG9yczpOPSExLGF1dG9Ub2dnbGU6Xz0hMSxhbGxvd05lc3RlZFNjcm9sbDpTPSExLF9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnM6Tz0hMSxuYWl2ZURpbWVuc2lvbnM6TD1PLHN0b3BJbmVydGlhT25OYXZpZ2F0ZTpFPSExfT17fSl7d2luZG93LmxlbmlzVmVyc2lvbj1mTGEsKCF0fHx0PT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmKHQ9d2luZG93KSx0eXBlb2YgbD09Im51bWJlciImJnR5cGVvZiBjIT0iZnVuY3Rpb24iP2M9RDFyOnR5cGVvZiBjPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbCE9Im51bWJlciImJihsPTEpLHRoaXMub3B0aW9ucz17d3JhcHBlcjp0LGNvbnRlbnQ6ZSxldmVudHNUYXJnZXQ6cixzbW9vdGhXaGVlbDphLHN5bmNUb3VjaDpzLHN5bmNUb3VjaExlcnA6bix0b3VjaEluZXJ0aWFFeHBvbmVudDpvLGR1cmF0aW9uOmwsZWFzaW5nOmMsbGVycDpkLGluZmluaXRlOmYsZ2VzdHVyZU9yaWVudGF0aW9uOmgsb3JpZW50YXRpb246cCx0b3VjaE11bHRpcGxpZXI6bSx3aGVlbE11bHRpcGxpZXI6dixhdXRvUmVzaXplOmIscHJldmVudDpnLHZpcnR1YWxTY3JvbGw6eSxvdmVyc2Nyb2xsOmssYXV0b1JhZjpNLGFuY2hvcnM6TixhdXRvVG9nZ2xlOl8sYWxsb3dOZXN0ZWRTY3JvbGw6UyxuYWl2ZURpbWVuc2lvbnM6TCxzdG9wSW5lcnRpYU9uTmF2aWdhdGU6RX0sdGhpcy5kaW1lbnNpb25zPW5ldyB2TGEodCxlLHthdXRvUmVzaXplOmJ9KSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpLHRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSx0aGlzLnZpcnR1YWxTY3JvbGw9bmV3IHlMYShyLHt0b3VjaE11bHRpcGxpZXI6bSx3aGVlbE11bHRpcGxpZXI6dn0pLHRoaXMudmlydHVhbFNjcm9sbC5vbigic2Nyb2xsIix0aGlzLm9uVmlydHVhbFNjcm9sbCksdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0aGlzLmNoZWNrT3ZlcmZsb3coKSx0aGlzLnJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uRW5kLHtwYXNzaXZlOiEwfSkpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLnZpcnR1YWxTY3JvbGwuZGVzdHJveSgpLHRoaXMuZGltZW5zaW9ucy5kZXN0cm95KCksdGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5fcmFmSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZklkKX1vbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1vZmYodCxlKXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9mZih0LGUpfW9uU2Nyb2xsRW5kPWkodD0+e3QgaW5zdGFuY2VvZiBDdXN0b21FdmVudHx8KHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoInx8dGhpcy5pc1Njcm9sbGluZz09PSExKSYmdC5zdG9wUHJvcGFnYXRpb24oKX0sIm9uU2Nyb2xsRW5kIik7ZGlzcGF0Y2hTY3JvbGxlbmRFdmVudD1pKCgpPT57dGhpcy5vcHRpb25zLndyYXBwZXIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNjcm9sbGVuZCIse2J1YmJsZXM6dGhpcy5vcHRpb25zLndyYXBwZXI9PT13aW5kb3csZGV0YWlsOntsZW5pc1Njcm9sbEVuZDohMH19KSl9LCJkaXNwYXRjaFNjcm9sbGVuZEV2ZW50Iik7Z2V0IG92ZXJmbG93KCl7bGV0IHQ9dGhpcy5pc0hvcml6b250YWw/Im92ZXJmbG93LXgiOiJvdmVyZmxvdy15IjtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJvb3RFbGVtZW50KVt0XX1jaGVja092ZXJmbG93KCl7WyJoaWRkZW4iLCJjbGlwIl0uaW5jbHVkZXModGhpcy5vdmVyZmxvdyk/dGhpcy5pbnRlcm5hbFN0b3AoKTp0aGlzLmludGVybmFsU3RhcnQoKX1vblRyYW5zaXRpb25FbmQ9aSh0PT57dC5wcm9wZXJ0eU5hbWUuaW5jbHVkZXMoIm92ZXJmbG93IikmJnRoaXMuY2hlY2tPdmVyZmxvdygpfSwib25UcmFuc2l0aW9uRW5kIik7c2V0U2Nyb2xsKHQpe3RoaXMuaXNIb3Jpem9udGFsP3RoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHtsZWZ0OnQsYmVoYXZpb3I6Imluc3RhbnQifSk6dGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oe3RvcDp0LGJlaGF2aW9yOiJpbnN0YW50In0pfW9uQ2xpY2s9aSh0PT57bGV0IHI9dC5jb21wb3NlZFBhdGgoKS5maWx0ZXIoYT0+YSBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50JiZhLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTtpZih0aGlzLm9wdGlvbnMuYW5jaG9ycyl7bGV0IGE9ci5maW5kKHM9PnMuZ2V0QXR0cmlidXRlKCJocmVmIik/LmluY2x1ZGVzKCIjIikpO2lmKGEpe2xldCBzPWEuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYocyl7bGV0IG49dHlwZW9mIHRoaXMub3B0aW9ucy5hbmNob3JzPT0ib2JqZWN0IiYmdGhpcy5vcHRpb25zLmFuY2hvcnM/dGhpcy5vcHRpb25zLmFuY2hvcnM6dm9pZCAwLG89YCMke3Muc3BsaXQoIiMiKVsxXX1gO3RoaXMuc2Nyb2xsVG8obyxuKX19fXRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUmJnIuZmluZChzPT5zLmhvc3Q9PT13aW5kb3cubG9jYXRpb24uaG9zdCkmJnRoaXMucmVzZXQoKX0sIm9uQ2xpY2siKTtvblBvaW50ZXJEb3duPWkodD0+e3QuYnV0dG9uPT09MSYmdGhpcy5yZXNldCgpfSwib25Qb2ludGVyRG93biIpO29uVmlydHVhbFNjcm9sbD1pKHQ9PntpZih0eXBlb2YgdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGw9PSJmdW5jdGlvbiImJnRoaXMub3B0aW9ucy52aXJ0dWFsU2Nyb2xsKHQpPT09ITEpcmV0dXJuO2xldHtkZWx0YVg6ZSxkZWx0YVk6cixldmVudDphfT10O2lmKHRoaXMuZW1pdHRlci5lbWl0KCJ2aXJ0dWFsLXNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTpyLGV2ZW50OmF9KSxhLmN0cmxLZXl8fGEubGVuaXNTdG9wUHJvcGFnYXRpb24pcmV0dXJuO2xldCBzPWEudHlwZS5pbmNsdWRlcygidG91Y2giKSxuPWEudHlwZS5pbmNsdWRlcygid2hlZWwiKTt0aGlzLmlzVG91Y2hpbmc9YS50eXBlPT09InRvdWNoc3RhcnQifHxhLnR5cGU9PT0idG91Y2htb3ZlIjtsZXQgbz1lPT09MCYmcj09PTA7aWYodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmcyYmYS50eXBlPT09InRvdWNoc3RhcnQiJiZvJiYhdGhpcy5pc1N0b3BwZWQmJiF0aGlzLmlzTG9ja2VkKXt0aGlzLnJlc2V0KCk7cmV0dXJufWxldCBjPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0idmVydGljYWwiJiZyPT09MHx8dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJob3Jpem9udGFsIiYmZT09PTA7aWYob3x8YylyZXR1cm47bGV0IGQ9YS5jb21wb3NlZFBhdGgoKTtkPWQuc2xpY2UoMCxkLmluZGV4T2YodGhpcy5yb290RWxlbWVudCkpO2xldCBmPXRoaXMub3B0aW9ucy5wcmV2ZW50O2lmKGQuZmluZChnPT5nIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJih0eXBlb2YgZj09ImZ1bmN0aW9uIiYmZj8uKGcpfHxnLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQiKXx8cyYmZy5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXRvdWNoIil8fG4mJmcuaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudC13aGVlbCIpfHx0aGlzLm9wdGlvbnMuYWxsb3dOZXN0ZWRTY3JvbGwmJnRoaXMuY2hlY2tOZXN0ZWRTY3JvbGwoZyx7ZGVsdGFYOmUsZGVsdGFZOnJ9KSkpKXJldHVybjtpZih0aGlzLmlzU3RvcHBlZHx8dGhpcy5pc0xvY2tlZCl7YS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCEodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmc3x8dGhpcy5vcHRpb25zLnNtb290aFdoZWVsJiZuKSl7dGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIix0aGlzLmFuaW1hdGUuc3RvcCgpLGEubGVuaXNTdG9wUHJvcGFnYXRpb249ITA7cmV0dXJufWxldCBoPXI7dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJib3RoIj9oPU1hdGguYWJzKHIpPk1hdGguYWJzKGUpP3I6ZTp0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiYoaD1lKSwoIXRoaXMub3B0aW9ucy5vdmVyc2Nyb2xsfHx0aGlzLm9wdGlvbnMuaW5maW5pdGV8fHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93JiZ0aGlzLmxpbWl0PjAmJih0aGlzLmFuaW1hdGVkU2Nyb2xsPjAmJnRoaXMuYW5pbWF0ZWRTY3JvbGw8dGhpcy5saW1pdHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PTAmJnI+MHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PXRoaXMubGltaXQmJnI8MCkpJiYoYS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMCksYS5jYW5jZWxhYmxlJiZhLnByZXZlbnREZWZhdWx0KCk7bGV0IG09cyYmdGhpcy5vcHRpb25zLnN5bmNUb3VjaCxiPXMmJmEudHlwZT09PSJ0b3VjaGVuZCI7YiYmKGg9TWF0aC5zaWduKHRoaXMudmVsb2NpdHkpKk1hdGgucG93KE1hdGguYWJzKHRoaXMudmVsb2NpdHkpLHRoaXMub3B0aW9ucy50b3VjaEluZXJ0aWFFeHBvbmVudCkpLHRoaXMuc2Nyb2xsVG8odGhpcy50YXJnZXRTY3JvbGwraCx7cHJvZ3JhbW1hdGljOiExLC4uLm0/e2xlcnA6Yj90aGlzLm9wdGlvbnMuc3luY1RvdWNoTGVycDoxfTp7bGVycDp0aGlzLm9wdGlvbnMubGVycCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuZHVyYXRpb24sZWFzaW5nOnRoaXMub3B0aW9ucy5lYXNpbmd9fSl9LCJvblZpcnR1YWxTY3JvbGwiKTtyZXNpemUoKXt0aGlzLmRpbWVuc2lvbnMucmVzaXplKCksdGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmVtaXQoKX1lbWl0KCl7dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIsdGhpcyl9b25OYXRpdmVTY3JvbGw9aSgoKT0+e2lmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0IT09bnVsbCYmKGNsZWFyVGltZW91dCh0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dCksdGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbCksdGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCl7dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtyZXR1cm59aWYodGhpcy5pc1Njcm9sbGluZz09PSExfHx0aGlzLmlzU2Nyb2xsaW5nPT09Im5hdGl2ZSIpe2xldCB0PXRoaXMuYW5pbWF0ZWRTY3JvbGw7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9dGhpcy5hbmltYXRlZFNjcm9sbC10LHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLmFuaW1hdGVkU2Nyb2xsLXQpLHRoaXMuaXNTdG9wcGVkfHwodGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIiksdGhpcy5lbWl0KCksdGhpcy52ZWxvY2l0eSE9PTAmJih0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PTAsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmVtaXQoKX0sNDAwKSl9fSwib25OYXRpdmVTY3JvbGwiKTtyZXNldCgpe3RoaXMuaXNMb2NrZWQ9ITEsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHk9MCx0aGlzLmFuaW1hdGUuc3RvcCgpfXN0YXJ0KCl7aWYodGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJvdmVyZmxvdyIpO3JldHVybn10aGlzLmludGVybmFsU3RhcnQoKX19aW50ZXJuYWxTdGFydCgpe3RoaXMuaXNTdG9wcGVkJiYodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSExLHRoaXMuZW1pdCgpKX1zdG9wKCl7aWYoIXRoaXMuaXNTdG9wcGVkKXtpZih0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSl7dGhpcy5yb290RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgib3ZlcmZsb3ciLCJjbGlwIik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdG9wKCl9fWludGVybmFsU3RvcCgpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuZW1pdCgpKX1yYWY9aSh0PT57bGV0IGU9dC0odGhpcy50aW1lfHx0KTt0aGlzLnRpbWU9dCx0aGlzLmFuaW1hdGUuYWR2YW5jZShlKi4wMDEpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9LCJyYWYiKTtzY3JvbGxUbyh0LHtvZmZzZXQ6ZT0wLGltbWVkaWF0ZTpyPSExLGxvY2s6YT0hMSxwcm9ncmFtbWF0aWM6cz0hMCxsZXJwOm49cz90aGlzLm9wdGlvbnMubGVycDp2b2lkIDAsZHVyYXRpb246bz1zP3RoaXMub3B0aW9ucy5kdXJhdGlvbjp2b2lkIDAsZWFzaW5nOmw9cz90aGlzLm9wdGlvbnMuZWFzaW5nOnZvaWQgMCxvblN0YXJ0OmMsb25Db21wbGV0ZTpkLGZvcmNlOmY9ITEsdXNlckRhdGE6cH09e30pe2lmKCEoKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKSYmIWYpKXtpZih0eXBlb2YgdD09InN0cmluZyImJlsidG9wIiwibGVmdCIsInN0YXJ0IiwiIyJdLmluY2x1ZGVzKHQpKXQ9MDtlbHNlIGlmKHR5cGVvZiB0PT0ic3RyaW5nIiYmWyJib3R0b20iLCJyaWdodCIsImVuZCJdLmluY2x1ZGVzKHQpKXQ9dGhpcy5saW1pdDtlbHNle2xldCBoO2lmKHR5cGVvZiB0PT0ic3RyaW5nIj8oaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpLGh8fCh0PT09IiN0b3AiP3Q9MDpjb25zb2xlLndhcm4oIkxlbmlzOiBUYXJnZXQgbm90IGZvdW5kIix0KSkpOnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdD8ubm9kZVR5cGUmJihoPXQpLGgpe2lmKHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93KXtsZXQgdj10aGlzLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2UtPXRoaXMuaXNIb3Jpem9udGFsP3YubGVmdDp2LnRvcH1sZXQgbT1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3Q9KHRoaXMuaXNIb3Jpem9udGFsP20ubGVmdDptLnRvcCkrdGhpcy5hbmltYXRlZFNjcm9sbH19aWYodHlwZW9mIHQ9PSJudW1iZXIiKXtpZih0Kz1lLHQ9TWF0aC5yb3VuZCh0KSx0aGlzLm9wdGlvbnMuaW5maW5pdGUpe2lmKHMpe3RoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5zY3JvbGw7bGV0IGg9dC10aGlzLmFuaW1hdGVkU2Nyb2xsO2g+dGhpcy5saW1pdC8yP3Q9dC10aGlzLmxpbWl0Omg8LXRoaXMubGltaXQvMiYmKHQ9dCt0aGlzLmxpbWl0KX19ZWxzZSB0PV8xcigwLHQsdGhpcy5saW1pdCk7aWYodD09PXRoaXMudGFyZ2V0U2Nyb2xsKXtjPy4odGhpcyksZD8uKHRoaXMpO3JldHVybn1pZih0aGlzLnVzZXJEYXRhPXA/P3t9LHIpe3RoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dCx0aGlzLnNldFNjcm9sbCh0aGlzLnNjcm9sbCksdGhpcy5yZXNldCgpLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpLHRoaXMuZW1pdCgpLGQ/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSk7cmV0dXJufXN8fCh0aGlzLnRhcmdldFNjcm9sbD10KSx0eXBlb2Ygbz09Im51bWJlciImJnR5cGVvZiBsIT0iZnVuY3Rpb24iP2w9RDFyOnR5cGVvZiBsPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9Im51bWJlciImJihvPTEpLHRoaXMuYW5pbWF0ZS5mcm9tVG8odGhpcy5hbmltYXRlZFNjcm9sbCx0LHtkdXJhdGlvbjpvLGVhc2luZzpsLGxlcnA6bixvblN0YXJ0OmkoKCk9PnthJiYodGhpcy5pc0xvY2tlZD0hMCksdGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIixjPy4odGhpcyl9LCJvblN0YXJ0Iiksb25VcGRhdGU6aSgoaCxtKT0+e3RoaXMuaXNTY3JvbGxpbmc9InNtb290aCIsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PWgtdGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmRpcmVjdGlvbj1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSksdGhpcy5hbmltYXRlZFNjcm9sbD1oLHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSxzJiYodGhpcy50YXJnZXRTY3JvbGw9aCksbXx8dGhpcy5lbWl0KCksbSYmKHRoaXMucmVzZXQoKSx0aGlzLmVtaXQoKSxkPy4odGhpcyksdGhpcy51c2VyRGF0YT17fSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKX0pLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpKX0sIm9uVXBkYXRlIil9KX19fXByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITF9KX1jaGVja05lc3RlZFNjcm9sbCh0LHtkZWx0YVg6ZSxkZWx0YVk6cn0pe2xldCBhPURhdGUubm93KCkscz10Ll9sZW5pcz8/PXt9LG4sbyxsLGMsZCxmLHAsaCxtPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb247aWYoYS0ocy50aW1lPz8wKT4yZTMpe3MudGltZT1EYXRlLm5vdygpO2xldCBfPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpO3MuY29tcHV0ZWRTdHlsZT1fO2xldCBTPV8ub3ZlcmZsb3dYLE89Xy5vdmVyZmxvd1k7aWYobj1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoUyksbz1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoTykscy5oYXNPdmVyZmxvd1g9bixzLmhhc092ZXJmbG93WT1vLCFuJiYhb3x8bT09PSJ2ZXJ0aWNhbCImJiFvfHxtPT09Imhvcml6b250YWwiJiYhbilyZXR1cm4hMTtkPXQuc2Nyb2xsV2lkdGgsZj10LnNjcm9sbEhlaWdodCxwPXQuY2xpZW50V2lkdGgsaD10LmNsaWVudEhlaWdodCxsPWQ+cCxjPWY+aCxzLmlzU2Nyb2xsYWJsZVg9bCxzLmlzU2Nyb2xsYWJsZVk9YyxzLnNjcm9sbFdpZHRoPWQscy5zY3JvbGxIZWlnaHQ9ZixzLmNsaWVudFdpZHRoPXAscy5jbGllbnRIZWlnaHQ9aH1lbHNlIGw9cy5pc1Njcm9sbGFibGVYLGM9cy5pc1Njcm9sbGFibGVZLG49cy5oYXNPdmVyZmxvd1gsbz1zLmhhc092ZXJmbG93WSxkPXMuc2Nyb2xsV2lkdGgsZj1zLnNjcm9sbEhlaWdodCxwPXMuY2xpZW50V2lkdGgsaD1zLmNsaWVudEhlaWdodDtpZighbiYmIW98fCFsJiYhY3x8bT09PSJ2ZXJ0aWNhbCImJighb3x8IWMpfHxtPT09Imhvcml6b250YWwiJiYoIW58fCFsKSlyZXR1cm4hMTtsZXQgdjtpZihtPT09Imhvcml6b250YWwiKXY9IngiO2Vsc2UgaWYobT09PSJ2ZXJ0aWNhbCIpdj0ieSI7ZWxzZXtsZXQgXz1lIT09MCxTPXIhPT0wO18mJm4mJmwmJih2PSJ4IiksUyYmbyYmYyYmKHY9InkiKX1pZighdilyZXR1cm4hMTtsZXQgYixnLHksayxNO2lmKHY9PT0ieCIpYj10LnNjcm9sbExlZnQsZz1kLXAseT1lLGs9bixNPWw7ZWxzZSBpZih2PT09InkiKWI9dC5zY3JvbGxUb3AsZz1mLWgseT1yLGs9byxNPWM7ZWxzZSByZXR1cm4hMTtyZXR1cm4oeT4wP2I8ZzpiPjApJiZrJiZNfWdldCByb290RWxlbWVudCgpe3JldHVybiB0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdz9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6dGhpcy5vcHRpb25zLndyYXBwZXJ9Z2V0IGxpbWl0KCl7cmV0dXJuIHRoaXMub3B0aW9ucy5uYWl2ZURpbWVuc2lvbnM/dGhpcy5pc0hvcml6b250YWw/dGhpcy5yb290RWxlbWVudC5zY3JvbGxXaWR0aC10aGlzLnJvb3RFbGVtZW50LmNsaWVudFdpZHRoOnRoaXMucm9vdEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMucm9vdEVsZW1lbnQuY2xpZW50SGVpZ2h0OnRoaXMuZGltZW5zaW9ucy5saW1pdFt0aGlzLmlzSG9yaXpvbnRhbD8ieCI6InkiXX1nZXQgaXNIb3Jpem9udGFsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIn1nZXQgYWN0dWFsU2Nyb2xsKCl7bGV0IHQ9dGhpcy5vcHRpb25zLndyYXBwZXI7cmV0dXJuIHRoaXMuaXNIb3Jpem9udGFsP3Quc2Nyb2xsWD8/dC5zY3JvbGxMZWZ0OnQuc2Nyb2xsWT8/dC5zY3JvbGxUb3B9Z2V0IHNjcm9sbCgpe3JldHVybiB0aGlzLm9wdGlvbnMuaW5maW5pdGU/Z0xhKHRoaXMuYW5pbWF0ZWRTY3JvbGwsdGhpcy5saW1pdCk6dGhpcy5hbmltYXRlZFNjcm9sbH1nZXQgcHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy5saW1pdD09PTA/MTp0aGlzLnNjcm9sbC90aGlzLmxpbWl0fWdldCBpc1Njcm9sbGluZygpe3JldHVybiB0aGlzLl9pc1Njcm9sbGluZ31zZXQgaXNTY3JvbGxpbmcodCl7dGhpcy5faXNTY3JvbGxpbmchPT10JiYodGhpcy5faXNTY3JvbGxpbmc9dCx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RvcHBlZH1zZXQgaXNTdG9wcGVkKHQpe3RoaXMuX2lzU3RvcHBlZCE9PXQmJih0aGlzLl9pc1N0b3BwZWQ9dCx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNMb2NrZWQoKXtyZXR1cm4gdGhpcy5faXNMb2NrZWR9c2V0IGlzTG9ja2VkKHQpe3RoaXMuX2lzTG9ja2VkIT09dCYmKHRoaXMuX2lzTG9ja2VkPXQsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzU21vb3RoKCl7cmV0dXJuIHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIn1nZXQgY2xhc3NOYW1lKCl7bGV0IHQ9ImxlbmlzIjtyZXR1cm4gdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0Kz0iIGxlbmlzLWF1dG9Ub2dnbGUiKSx0aGlzLmlzU3RvcHBlZCYmKHQrPSIgbGVuaXMtc3RvcHBlZCIpLHRoaXMuaXNMb2NrZWQmJih0Kz0iIGxlbmlzLWxvY2tlZCIpLHRoaXMuaXNTY3JvbGxpbmcmJih0Kz0iIGxlbmlzLXNjcm9sbGluZyIpLHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIiYmKHQrPSIgbGVuaXMtc21vb3RoIiksdH11cGRhdGVDbGFzc05hbWUoKXt0aGlzLmNsZWFuVXBDbGFzc05hbWUoKSx0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT1gJHt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZX0gJHt0aGlzLmNsYXNzTmFtZX1gLnRyaW0oKX1jbGVhblVwQ2xhc3NOYW1lKCl7dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWU9dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWUucmVwbGFjZSgvbGVuaXMoLVx3Kyk/L2csIiIpLnRyaW0oKX19fSk7dmFyIEExcj1OdCgobEFlLGNBZSk9PnsoZnVuY3Rpb24odCxlKXt0eXBlb2YgbEFlPT0ib2JqZWN0IiYmdHlwZW9mIGNBZTwidSI/Y0FlLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOih0PXR8fHNlbGYsdC5Td2VldFNjcm9sbD1lKCkpfSkobEFlLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PWkoZnVuY3Rpb24oKXtyZXR1cm4gdD1PYmplY3QuYXNzaWdufHxpKGZ1bmN0aW9uKEgpe2Zvcih2YXIgVSxqPTEsYWU9YXJndW1lbnRzLmxlbmd0aDtqPGFlO2orKyl7VT1hcmd1bWVudHNbal07Zm9yKHZhciBYIGluIFUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsWCkmJihIW1hdPVVbWF0pfXJldHVybiBIfSwiX19hc3NpZ24iKSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sIl9fYXNzaWduIiksZT0hISh0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCkscj1lP3dpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5JiZ3aW5kb3cubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToiOiExLGE9KGZ1bmN0aW9uKCl7dmFyIHE9ITE7aWYoIWUpcmV0dXJuIHE7dHJ5e3ZhciBIPXdpbmRvdyxVPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDppKGZ1bmN0aW9uKCl7cT0hMH0sImdldCIpfSk7SC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLFUpLEgucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxVKX1jYXRjaHt9cmV0dXJuIHF9KSgpLHM9aShmdW5jdGlvbihxKXtyZXR1cm4gdHlwZW9mIHE9PSJzdHJpbmcifSwiaXNTdHJpbmciKSxuPWkoZnVuY3Rpb24ocSl7cmV0dXJuIHR5cGVvZiBxPT0iZnVuY3Rpb24ifSwiaXNGdW5jdGlvbiIpLG89aShmdW5jdGlvbihxKXtyZXR1cm4gQXJyYXkuaXNBcnJheShxKX0sImlzQXJyYXkiKSxsPWkoZnVuY3Rpb24ocSl7cmV0dXJuIW8ocSkmJnEtcGFyc2VGbG9hdChxKSsxPj0wfSwiaXNOdW1lcmljIiksYz1pKGZ1bmN0aW9uKHEsSCl7cmV0dXJuIHEmJnEuaGFzT3duUHJvcGVydHkoSCl9LCJoYXNQcm9wIiksZD1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOm51bGwsZj1lP3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6bnVsbCxwPU1hdGguY29zLGg9TWF0aC5zaW4sbT1NYXRoLnBvdyx2PU1hdGguc3FydCxiPU1hdGguUEksZz17bGluZWFyOmkoZnVuY3Rpb24ocSl7cmV0dXJuIHF9LCJsaW5lYXIiKSxlYXNlSW5RdWFkOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqKEgvPWFlKSpIK1V9LCJlYXNlSW5RdWFkIiksZWFzZU91dFF1YWQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taiooSC89YWUpKihILTIpK1V9LCJlYXNlT3V0UXVhZCIpLGVhc2VJbk91dFF1YWQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4oSC89YWUvMik8MT9qLzIqSCpIK1U6LWovMiooLS1IKihILTIpLTEpK1V9LCJlYXNlSW5PdXRRdWFkIiksZWFzZUluQ3ViaWM6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooSC89YWUpKkgqSCtVfSwiZWFzZUluQ3ViaWMiKSxlYXNlT3V0Q3ViaWM6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooKEg9SC9hZS0xKSpIKkgrMSkrVX0sImVhc2VPdXRDdWJpYyIpLGVhc2VJbk91dEN1YmljOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuKEgvPWFlLzIpPDE/ai8yKkgqSCpIK1U6ai8yKigoSC09MikqSCpIKzIpK1V9LCJlYXNlSW5PdXRDdWJpYyIpLGVhc2VJblF1YXJ0OmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqKEgvPWFlKSpIKkgqSCtVfSwiZWFzZUluUXVhcnQiKSxlYXNlT3V0UXVhcnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taiooKEg9SC9hZS0xKSpIKkgqSC0xKStVfSwiZWFzZU91dFF1YXJ0IiksZWFzZUluT3V0UXVhcnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4oSC89YWUvMik8MT9qLzIqSCpIKkgqSCtVOi1qLzIqKChILT0yKSpIKkgqSC0yKStVfSwiZWFzZUluT3V0UXVhcnQiKSxlYXNlSW5RdWludDppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBqKihILz1hZSkqSCpIKkgqSCtVfSwiZWFzZUluUXVpbnQiKSxlYXNlT3V0UXVpbnQ6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gaiooKEg9SC9hZS0xKSpIKkgqSCpIKzEpK1V9LCJlYXNlT3V0UXVpbnQiKSxlYXNlSW5PdXRRdWludDppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybihILz1hZS8yKTwxP2ovMipIKkgqSCpIKkgrVTpqLzIqKChILT0yKSpIKkgqSCpIKzIpK1V9LCJlYXNlSW5PdXRRdWludCIpLGVhc2VJblNpbmU6aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4taipwKEgvYWUqKGIvMikpK2orVX0sImVhc2VJblNpbmUiKSxlYXNlT3V0U2luZTppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBqKmgoSC9hZSooYi8yKSkrVX0sImVhc2VPdXRTaW5lIiksZWFzZUluT3V0U2luZTppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybi1qLzIqKHAoYipIL2FlKS0xKStVfSwiZWFzZUluT3V0U2luZSIpLGVhc2VJbkV4cG86aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gSD09PTA/VTpqKm0oMiwxMCooSC9hZS0xKSkrVX0sImVhc2VJbkV4cG8iKSxlYXNlT3V0RXhwbzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybiBIPT09YWU/VStqOmoqKC1tKDIsLTEwKkgvYWUpKzEpK1V9LCJlYXNlT3V0RXhwbyIpLGVhc2VJbk91dEV4cG86aShmdW5jdGlvbihxLEgsVSxqLGFlKXtyZXR1cm4gSD09PTA/VTpIPT09YWU/VStqOihILz1hZS8yKTwxP2ovMiptKDIsMTAqKEgtMSkpK1U6ai8yKigtbSgyLC0xMCotLUgpKzIpK1V9LCJlYXNlSW5PdXRFeHBvIiksZWFzZUluQ2lyYzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybi1qKih2KDEtKEgvPWFlKSpIKS0xKStVfSwiZWFzZUluQ2lyYyIpLGVhc2VPdXRDaXJjOmkoZnVuY3Rpb24ocSxILFUsaixhZSl7cmV0dXJuIGoqdigxLShIPUgvYWUtMSkqSCkrVX0sImVhc2VPdXRDaXJjIiksZWFzZUluT3V0Q2lyYzppKGZ1bmN0aW9uKHEsSCxVLGosYWUpe3JldHVybihILz1hZS8yKTwxPy1qLzIqKHYoMS1IKkgpLTEpK1U6ai8yKih2KDEtKEgtPTIpKkgpKzEpK1V9LCJlYXNlSW5PdXRDaXJjIil9LHk9aShmdW5jdGlvbihxKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHEpOltdKX0sIiQkIiksaz1pKGZ1bmN0aW9uKHEpe3JldHVybiB5KHEpLnNoaWZ0KCl8fG51bGx9LCIkIiksTT1pKGZ1bmN0aW9uKHEpe3JldHVybiBxIGluc3RhbmNlb2YgRWxlbWVudH0sImlzRWxlbWVudCIpLE49aShmdW5jdGlvbihxKXtyZXR1cm4gcT09PXdpbmRvd30sImlzV2luZG93IiksXz1pKGZ1bmN0aW9uKHEpe3JldHVybiBxPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxxPT09ZG9jdW1lbnQuYm9keX0sImlzUm9vdENvbnRhaW5lciIpLFM9aShmdW5jdGlvbihxLEgpe2lmKE0oSCkpcmV0dXJuIHE9PT1IO2Zvcih2YXIgVT15KEgpLGo9VS5sZW5ndGg7LS1qPj0wJiZVW2pdIT09cTspO3JldHVybiBqPi0xfSwibWF0Y2hlcyIpLE89aShmdW5jdGlvbihxKXtyZXR1cm4gTWF0aC5tYXgocS5zY3JvbGxIZWlnaHQscS5jbGllbnRIZWlnaHQscS5vZmZzZXRIZWlnaHQpfSwiZ2V0SGVpZ2h0IiksTD1pKGZ1bmN0aW9uKHEpe3JldHVybiBNYXRoLm1heChxLnNjcm9sbFdpZHRoLHEuY2xpZW50V2lkdGgscS5vZmZzZXRXaWR0aCl9LCJnZXRXaWR0aCIpLEU9aShmdW5jdGlvbihxKXtyZXR1cm57d2lkdGg6TChxKSxoZWlnaHQ6TyhxKX19LCJnZXRTaXplIiksQj1pKGZ1bmN0aW9uKHEpe3ZhciBIPU4ocSl8fF8ocSk7cmV0dXJue3ZpZXdwb3J0Ont3aWR0aDpIP01hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCk6cS5jbGllbnRXaWR0aCxoZWlnaHQ6SD93aW5kb3cuaW5uZXJIZWlnaHQ6cS5jbGllbnRIZWlnaHR9LHNpemU6SD97d2lkdGg6TWF0aC5tYXgoTChkb2N1bWVudC5ib2R5KSxMKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpLGhlaWdodDpNYXRoLm1heChPKGRvY3VtZW50LmJvZHkpLE8oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSl9OkUocSl9fSwiZ2V0Vmlld3BvcnRBbmRFbGVtZW50U2l6ZXMiKSxDPXt5OiJzY3JvbGxUb3AiLHg6InNjcm9sbExlZnQifSx6PXt5OiJwYWdlWU9mZnNldCIseDoicGFnZVhPZmZzZXQifSxBPWkoZnVuY3Rpb24ocSxIKXtyZXR1cm4gTihxKT9xW3pbSF1dOnFbQ1tIXV19LCJnZXRTY3JvbGwiKSwkPWkoZnVuY3Rpb24ocSxILFUpe2lmKE4ocSkpe3ZhciBqPVU9PT0ieSI7cS5zY3JvbGxUbyhqP3EucGFnZVhPZmZzZXQ6SCxqP0g6cS5wYWdlWU9mZnNldCl9ZWxzZSBxW0NbVV1dPUh9LCJzZXRTY3JvbGwiKSxGPWkoZnVuY3Rpb24ocSxIKXt2YXIgVT1xLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFUud2lkdGh8fFUuaGVpZ2h0KXt2YXIgaj17dG9wOjAsbGVmdDowfSxhZT12b2lkIDA7aWYoTihIKXx8XyhIKSlhZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsai50b3A9d2luZG93W3oueV0sai5sZWZ0PXdpbmRvd1t6LnhdO2Vsc2V7YWU9SDt2YXIgWD1hZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtqLnRvcD1YLnRvcCotMSthZVtDLnldLGoubGVmdD1YLmxlZnQqLTErYWVbQy54XX1yZXR1cm57dG9wOlUudG9wK2oudG9wLWFlLmNsaWVudFRvcCxsZWZ0OlUubGVmdCtqLmxlZnQtYWUuY2xpZW50TGVmdH19cmV0dXJuIFV9LCJnZXRPZmZzZXQiKSxZPShmdW5jdGlvbigpe3JldHVybiBlPyJvbndoZWVsImluIGRvY3VtZW50PyJ3aGVlbCI6Im1vdXNld2hlZWwiOiJ3aGVlbCJ9KSgpLEc9aShmdW5jdGlvbihxKXtyZXR1cm4gcT09PSJ3aGVlbCI/WTpxfSwiZXZlbnROYW1lIiksWj1pKGZ1bmN0aW9uKHEsSCxVLGosYWUpe1Uuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKFgpe3FbSF0oRyhYKSxqLGE/e3Bhc3NpdmU6YWV9OiExKX0pfSwiYXBwbHkiKSxkZT1pKGZ1bmN0aW9uKHEsSCxVLGope3JldHVybiBaKHEsImFkZEV2ZW50TGlzdGVuZXIiLEgsVSxqKX0sImFkZEV2ZW50IiksRD1pKGZ1bmN0aW9uKHEsSCxVLGope3JldHVybiBaKHEsInJlbW92ZUV2ZW50TGlzdGVuZXIiLEgsVSxqKX0sInJlbW92ZUV2ZW50IiksUT0vXihcK3wtKT0oXGQrKD86XC5cZCspPykkLyxmZT1pKGZ1bmN0aW9uKHEsSCl7dmFyIFU9e3RvcDowLGxlZnQ6MCxyZWxhdGl2ZTohMX07aWYoYyhxLCJ0b3AiKXx8YyhxLCJsZWZ0IikpVT10KHt9LFUscSk7ZWxzZSBpZihvKHEpKWlmKHEubGVuZ3RoPjEpVS50b3A9cVswXSxVLmxlZnQ9cVsxXTtlbHNlIGlmKHEubGVuZ3RoPT09MSlVLnRvcD1IP3FbMF06MCxVLmxlZnQ9SD8wOnFbMF07ZWxzZSByZXR1cm4gbnVsbDtlbHNlIGlmKGwocSkpSD9VLnRvcD1xOlUubGVmdD1xO2Vsc2UgaWYocyhxKSl7dmFyIGo9cS50cmltKCkubWF0Y2goUSk7aWYoIWopcmV0dXJuIG51bGw7dmFyIGFlPWpbMV0sWD1wYXJzZUludChqWzJdLDEwKTthZT09PSIrIj8oVS50b3A9SD9YOjAsVS5sZWZ0PUg/MDpYKTooVS50b3A9SD8tWDowLFUubGVmdD1IPzA6LVgpLFUucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gVX0sInBhcnNlQ29vcmRpbmF0ZSIpLFQ9e3RyaWdnZXI6IltkYXRhLXNjcm9sbF0iLGhlYWRlcjoiW2RhdGEtc2Nyb2xsLWhlYWRlcl0iLGR1cmF0aW9uOjFlMyxlYXNpbmc6ImVhc2VPdXRRdWludCIsb2Zmc2V0OjAsdmVydGljYWw6ITAsaG9yaXpvbnRhbDohMSxjYW5jZWxsYWJsZTohMCx1cGRhdGVVUkw6ITEscHJldmVudERlZmF1bHQ6ITAsc3RvcFByb3BhZ2F0aW9uOiEwLGJlZm9yZTpudWxsLGFmdGVyOm51bGwsY2FuY2VsOm51bGwsY29tcGxldGU6bnVsbCxzdGVwOm51bGx9LFc9ImNsaWNrIixwZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLG1lPShmdW5jdGlvbigpe2Z1bmN0aW9uIHEoSCxVKXt2YXIgaj10aGlzO3RoaXMuJGVsPW51bGwsdGhpcy5jdHg9eyR0cmlnZ2VyOm51bGwsb3B0czpudWxsLHByb2dyZXNzOiExLHBvczpudWxsLHN0YXJ0UG9zOm51bGwsZWFzaW5nOm51bGwsc3RhcnQ6MCxpZDowLGNhbmNlbDohMSxoYXNoOm51bGx9LHRoaXMubG9vcD1mdW5jdGlvbihYKXt2YXIgSj1qLHhlPUouJGVsLEs9Si5jdHg7aWYoSy5zdGFydHx8KEsuc3RhcnQ9WCksIUsucHJvZ3Jlc3N8fCF4ZSl7ai5zdG9wKCk7cmV0dXJufXZhciBWPUsub3B0cyxsZT1LLnBvcyxuZT1LLnN0YXJ0LGVlPUsuc3RhcnRQb3MsemU9Sy5lYXNpbmcsSGU9Vi5kdXJhdGlvbixHZT17dG9wOiJ5IixsZWZ0OiJ4In0sb3Q9WC1uZSxEZT1NYXRoLm1pbigxLE1hdGgubWF4KG90L0hlLDApKTtPYmplY3Qua2V5cyhsZSkuZm9yRWFjaChmdW5jdGlvbihfZSl7dmFyIG9lPWxlW19lXSxzZT1lZVtfZV0sY2U9b2Utc2U7aWYoY2UhPT0wKXt2YXIgVGU9emUoRGUsSGUqRGUsMCwxLEhlKTskKHhlLE1hdGgucm91bmQoc2UrY2UqVGUpLEdlW19lXSl9fSksb3Q8PUhlPyhqLmhvb2soViwic3RlcCIsRGUpLEsuaWQ9cS5yYWYoai5sb29wKSk6ai5zdG9wKCEwKX0sdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihYKXtmb3IodmFyIEo9ai5vcHRzLHhlPVgudGFyZ2V0O3hlJiZ4ZSE9PWRvY3VtZW50O3hlPXhlLnBhcmVudE5vZGUpaWYoUyh4ZSxKLnRyaWdnZXIpKXt2YXIgSz1KU09OLnBhcnNlKHhlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwtb3B0aW9ucyIpfHwie30iKSxWPXhlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwiKSxsZT1WfHx4ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxuZT10KHt9LEosSyksZWU9bmUucHJldmVudERlZmF1bHQsemU9bmUuc3RvcFByb3BhZ2F0aW9uLEhlPW5lLnZlcnRpY2FsLEdlPW5lLmhvcml6b250YWw7ZWUmJlgucHJldmVudERlZmF1bHQoKSx6ZSYmWC5zdG9wUHJvcGFnYXRpb24oKSxqLmN0eC4kdHJpZ2dlcj14ZSxHZSYmSGU/ai50byhsZSxuZSk6SGU/ai50b1RvcChsZSxuZSk6R2UmJmoudG9MZWZ0KGxlLG5lKTticmVha319LHRoaXMuaGFuZGxlU3RvcD1mdW5jdGlvbihYKXt2YXIgSj1qLmN0eCx4ZT1KLm9wdHM7eGUmJnhlLmNhbmNlbGxhYmxlPyhKLmNhbmNlbD0hMCxqLnN0b3AoKSk6WC5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLm9wdHM9dCh7fSxULEh8fHt9KTt2YXIgYWU9bnVsbDtlJiYodHlwZW9mIFU9PSJzdHJpbmciP2FlPWsoVSk6VSE9bnVsbD9hZT1VOmFlPXdpbmRvdyksdGhpcy4kZWw9YWUsYWUmJnRoaXMuYmluZCghMCwhMSl9cmV0dXJuIGkocSwiU3dlZXRTY3JvbGwiKSxxLmNyZWF0ZT1mdW5jdGlvbihILFUpe3JldHVybiBuZXcgcShILFUpfSxxLnByb3RvdHlwZS50bz1mdW5jdGlvbihILFUpe2lmKGUpe3ZhciBqPXRoaXMsYWU9ai4kZWwsWD1qLmN0eCxKPWoub3B0cyx4ZT1YLiR0cmlnZ2VyLEs9dCh7fSxKLFV8fHt9KSxWPUsub2Zmc2V0LGxlPUsudmVydGljYWwsbmU9Sy5ob3Jpem9udGFsLGVlPU0oSy5oZWFkZXIpP0suaGVhZGVyOmsoSy5oZWFkZXIpLHplPS9eIy8sSGU9cyhIKSYmemUudGVzdChIKT9IOm51bGw7aWYoWC5vcHRzPUssWC5jYW5jZWw9ITEsWC5oYXNoPUhlLHRoaXMuc3RvcCgpLCEhYWUpe3ZhciBHZT1mZShWLGxlKSxvdD1mZShILGxlKSxEZT17dG9wOjAsbGVmdDowfTtpZihvdClpZihvdC5yZWxhdGl2ZSl7dmFyIF9lPUEoYWUsbGU/InkiOiJ4Iik7RGUudG9wPWxlP19lK290LnRvcDpvdC50b3AsRGUubGVmdD1sZT9vdC5sZWZ0Ol9lK290LmxlZnR9ZWxzZSBEZT1vdDtlbHNlIGlmKHMoSCkmJkghPT0iIyIpe3ZhciBvZT1rKEgpO2lmKCFvZSlyZXR1cm47RGU9RihvZSxhZSl9R2UmJihEZS50b3ArPUdlLnRvcCxEZS5sZWZ0Kz1HZS5sZWZ0KSxlZSYmKERlLnRvcD1NYXRoLm1heCgwLERlLnRvcC1FKGVlKS5oZWlnaHQpKTt2YXIgc2U9QihhZSksY2U9c2Uudmlld3BvcnQsVGU9c2Uuc2l6ZTtpZihEZS50b3A9bGU/TWF0aC5tYXgoMCxNYXRoLm1pbihUZS5oZWlnaHQtY2UuaGVpZ2h0LERlLnRvcCkpOkEoYWUsInkiKSxEZS5sZWZ0PW5lP01hdGgubWF4KDAsTWF0aC5taW4oVGUud2lkdGgtY2Uud2lkdGgsRGUubGVmdCkpOkEoYWUsIngiKSx0aGlzLmhvb2soSywiYmVmb3JlIixEZSx4ZSk9PT0hMSl7WC5vcHRzPW51bGw7cmV0dXJufVgucG9zPURlLHRoaXMuc3RhcnQoSyksdGhpcy5iaW5kKCExLCEwKX19fSxxLnByb3RvdHlwZS50b1RvcD1mdW5jdGlvbihILFUpe3RoaXMudG8oSCx0KHt9LFV8fHt9LHt2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExfSkpfSxxLnByb3RvdHlwZS50b0xlZnQ9ZnVuY3Rpb24oSCxVKXt0aGlzLnRvKEgsdCh7fSxVfHx7fSx7dmVydGljYWw6ITEsaG9yaXpvbnRhbDohMH0pKX0scS5wcm90b3R5cGUudG9FbGVtZW50PWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcy4kZWw7IWV8fCFqfHx0aGlzLnRvKEYoSCxqKSxVfHx7fSl9LHEucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oSCl7SD09PXZvaWQgMCYmKEg9ITEpO3ZhciBVPXRoaXMsaj1VLiRlbCxhZT1VLmN0eCxYPWFlLnBvczshanx8IWFlLnByb2dyZXNzfHwocS5jYWYoYWUuaWQpLGFlLnByb2dyZXNzPSExLGFlLnN0YXJ0PTAsYWUuaWQ9MCxIJiZYJiYoJChqLFgubGVmdCwieCIpLCQoaixYLnRvcCwieSIpKSx0aGlzLmNvbXBsZXRlKCkpfSxxLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oSCl7aWYodGhpcy4kZWwpe3ZhciBVPXQoe30sdGhpcy5vcHRzLEgpO3RoaXMuc3RvcCgpLHRoaXMudW5iaW5kKCEwLCEwKSx0aGlzLm9wdHM9VSx0aGlzLmJpbmQoITAsITEpfX0scS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuJGVsJiYodGhpcy5zdG9wKCksdGhpcy51bmJpbmQoITAsITApLHRoaXMuJGVsPW51bGwpfSxxLnByb3RvdHlwZS5vbkJlZm9yZT1mdW5jdGlvbihILFUpe3JldHVybiEwfSxxLnByb3RvdHlwZS5vblN0ZXA9ZnVuY3Rpb24oSCl7fSxxLnByb3RvdHlwZS5vbkFmdGVyPWZ1bmN0aW9uKEgsVSl7fSxxLnByb3RvdHlwZS5vbkNhbmNlbD1mdW5jdGlvbigpe30scS5wcm90b3R5cGUub25Db21wbGV0ZT1mdW5jdGlvbihIKXt9LHEucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKEgpe3ZhciBVPXRoaXMuY3R4O1Uub3B0cz1ILFUucHJvZ3Jlc3M9ITAsVS5lYXNpbmc9bihILmVhc2luZyk/SC5lYXNpbmc6Z1tILmVhc2luZ107dmFyIGo9dGhpcy4kZWwsYWU9e3RvcDpBKGosInkiKSxsZWZ0OkEoaiwieCIpfTtVLnN0YXJ0UG9zPWFlLFUuaWQ9cS5yYWYodGhpcy5sb29wKX0scS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgSD10aGlzLFU9SC4kZWwsaj1ILmN0eCxhZT1qLmhhc2gsWD1qLmNhbmNlbCxKPWoub3B0cyx4ZT1qLnBvcyxLPWouJHRyaWdnZXI7aWYoISghVXx8IUopKXtpZihhZSE9bnVsbCYmYWUhPT13aW5kb3cubG9jYXRpb24uaGFzaCl7dmFyIFY9Si51cGRhdGVVUkw7ZSYmciYmViE9PSExJiZ3aW5kb3cuaGlzdG9yeVtWPT09InJlcGxhY2UiPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXShudWxsLCIiLGFlKX10aGlzLnVuYmluZCghMSwhMCksai5vcHRzPW51bGwsai4kdHJpZ2dlcj1udWxsLFg/dGhpcy5ob29rKEosImNhbmNlbCIpOnRoaXMuaG9vayhKLCJhZnRlciIseGUsSyksdGhpcy5ob29rKEosImNvbXBsZXRlIixYKX19LHEucHJvdG90eXBlLmhvb2s9ZnVuY3Rpb24oSCxVKXtmb3IodmFyIGo9W10sYWU9MjthZTxhcmd1bWVudHMubGVuZ3RoO2FlKyspalthZS0yXT1hcmd1bWVudHNbYWVdO3ZhciBYLEo9SFtVXSx4ZSxLO3JldHVybiBuKEopJiYoeGU9Si5hcHBseSh0aGlzLGouY29uY2F0KFt0aGlzXSkpKSxLPShYPXRoaXMpWyJvbiIrKFVbMF0udG9VcHBlckNhc2UoKStVLnNsaWNlKDEpKV0uYXBwbHkoWCxqKSx4ZSE9PXZvaWQgMD94ZTpLfSxxLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcyxhZT1qLiRlbCxYPWouY3R4Lm9wdHM7YWUmJihIJiZkZShhZSxXLHRoaXMuaGFuZGxlQ2xpY2ssITEpLFUmJmRlKGFlLHBlLHRoaXMuaGFuZGxlU3RvcCxYP1guY2FuY2VsbGFibGU6ITApKX0scS5wcm90b3R5cGUudW5iaW5kPWZ1bmN0aW9uKEgsVSl7dmFyIGo9dGhpcyxhZT1qLiRlbCxYPWouY3R4Lm9wdHM7YWUmJihIJiZEKGFlLFcsdGhpcy5oYW5kbGVDbGljaywhMSksVSYmRChhZSxwZSx0aGlzLmhhbmRsZVN0b3AsWD9YLmNhbmNlbGxhYmxlOiEwKSl9LHEucmFmPWQscS5jYWY9ZixxfSkoKTtyZXR1cm4gbWV9KX0pO3ZhciBteSx3TGEsZ3k9dSgoKT0+e0tRdCgpO01kZSgpO3Q2KCk7SXYoKTtzb3IoKTtLMSgpO21vcigpO2I0KCk7TW9yKCk7bGRlKCk7X29yKCk7blRlKCk7ZzNlKCk7ZmRlKCk7dHooKTt3X2UoKTtKMGUoKTskMXIoKTtteT1HYShBMXIoKSwxKSx3TGE9e09iamVjdE1hcDpNNCxTdHJpbmdtYXA6YXosRmFzdE1hcDptNn19KTt2YXIgTWk9e307VmUoTWkse2NvbnRhaW5lckNvbnRleHRTdHlsZXM6KCk9Pk1MYSxjc3NGb3JDb25zdHJhaW50OigpPT5rTGEsY3NzRm9yQ29uc3RyYWludENvbnRhaW5lcjooKT0+U0xhLGNzc0ZvckNvbnRhaW5lcjooKT0+RjFyLGNzc0ZvckRlc2t0b3A6KCk9PkNMYSxjc3NGb3JOb3RlYm9vazooKT0+ekxhLGNzc0ZvclBoYWJsZXQ6KCk9PlRMYSxjc3NGb3JQaG9uZTooKT0+TExhLGNzc0ZvclRhYmxldDooKT0+X0xhLGNzc0ZvclZpZXdwb3J0OigpPT5lbSxkZXNrdG9wOigpPT5JMXIsbm90ZWJvb2s6KCk9PlAxcixwaGFibGV0OigpPT5PMXIscGhvbmU6KCk9PlIxcix0YWJsZXQ6KCk9Pk4xcn0pO3ZhciBJMXIsUDFyLE4xcixPMXIsUjFyLEUxcixlbSxGMXIsa0xhLFNMYSxNTGEsQ0xhLHpMYSxfTGEsVExhLExMYSxkQWU9dSgoKT0+e2J5KCk7UmwoKTtJMXI9MTYwMCxQMXI9MTI0MCxOMXI9MTAyNCxPMXI9NjAwLFIxcj00MDAsRTFyPWkodD0+e2xldCBlPVtdO3JldHVybiB0Lm1pbldpZHRoJiZlLnB1c2goYChtaW4td2lkdGg6ICR7dC5taW5XaWR0aH1weClgKSx0Lm1heFdpZHRoJiZlLnB1c2goYChtYXgtd2lkdGg6ICR7dC5tYXhXaWR0aH1weClgKSxlLmpvaW4oIiBhbmQgIil9LCJidWlsZENvbmRpdGlvbiIpLGVtPWkoKHQsZSk9PkdyKGAKICAgIEBjb250YWluZXIgd2NjVG9vbHNWaWV3cG9ydCAke2V9IHsKICAgICAgJHt0LmNzc1RleHR9CiAgICB9CiAgICBAbWVkaWEgJHtlfSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApLCJjc3NGb3JWaWV3cG9ydCIpLEYxcj1pKCh0LGUscik9PkdyKGAKICAgIEBjb250YWluZXIgJHtyfSAke2V9IHsKICAgICAgJHt0LmNzc1RleHR9CiAgICB9CiAgYCksImNzc0ZvckNvbnRhaW5lciIpLGtMYT1pKHQ9PmU9PmVtKGUsRTFyKHQpKSwiY3NzRm9yQ29uc3RyYWludCIpLFNMYT1pKCh0LGUpPT5yPT5GMXIocixFMXIodCksZSksImNzc0ZvckNvbnN0cmFpbnRDb250YWluZXIiKSxNTGE9aSh0PT5yZWAKICA6aG9zdCB7CiAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7CiAgICBjb250YWluZXItbmFtZTogJHtHcih0KX07CiAgfQpgLCJjb250YWluZXJDb250ZXh0U3R5bGVzIiksQ0xhPWkodD0+ZW0odCxgKG1pbi13aWR0aDogJHtJMXJ9cHgpYCksImNzc0ZvckRlc2t0b3AiKSx6TGE9aSh0PT5lbSh0LGAobWF4LXdpZHRoOiAke1Axcn1weClgKSwiY3NzRm9yTm90ZWJvb2siKSxfTGE9aSh0PT5lbSh0LGAobWF4LXdpZHRoOiAke04xcn1weClgKSwiY3NzRm9yVGFibGV0IiksVExhPWkodD0+ZW0odCxgKG1heC13aWR0aDogJHtPMXJ9cHgpYCksImNzc0ZvclBoYWJsZXQiKSxMTGE9aSh0PT5lbSh0LGAobWF4LXdpZHRoOiAke1Ixcn1weClgKSwiY3NzRm9yUGhvbmUiKX0pO3ZhciB4M2UsQjFyPXUoKCk9PntneSgpO3gzZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTY3JvbGxlciIpfWRvbXRvb2xzSW5zdGFuY2U7ZGlzcG9zZWQ9ITE7c2Nyb2xsQ2FsbGJhY2tzPVtdO2xlbmlzSW5zdGFuY2U9bnVsbDtsZW5pc1Njcm9sbFVuc3Vic2NyaWJlPW51bGw7bmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZD0hMTtoYW5kbGVOYXRpdmVTY3JvbGw9aShlPT57dGhpcy5leGVjdXRlU2Nyb2xsQ2FsbGJhY2tzKCl9LCJoYW5kbGVOYXRpdmVTY3JvbGwiKTtoYW5kbGVMZW5pc1Njcm9sbD1pKGU9Pnt0aGlzLmV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKX0sImhhbmRsZUxlbmlzU2Nyb2xsIik7Y29uc3RydWN0b3IoZSl7dGhpcy5kb210b29sc0luc3RhbmNlPWUsdGhpcy5hdHRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpfXN3ZWV0U2Nyb2xsZXI9bmV3IG15LmRlZmF1bHQoe30pO2FzeW5jIHRvRWxlbWVudChlLHIpe3RoaXMuc3dlZXRTY3JvbGxlci50b0VsZW1lbnQoZSxyKSxyPy5kdXJhdGlvbiYmYXdhaXQgVHIuZGVsYXlGb3Ioci5kdXJhdGlvbil9YXN5bmMgZGV0ZWN0TmF0aXZlU21vb3RoU2Nyb2xsKCl7bGV0IGU9Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLnNjcm9sbEJlaGF2aW9yLHI9ZG9jdW1lbnQuYm9keT9nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLnNjcm9sbEJlaGF2aW9yOiJhdXRvIjtpZihlPT09InNtb290aCJ8fHI9PT0ic21vb3RoIilyZXR1cm4hMDtsZXQgYT0kdC5kZWZlcigpLHM9MTIsbj0zLG89Ljc1LGw9MTIwMCxjPVtdLGQ9aShtPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixmKSx3aW5kb3cuY2xlYXJUaW1lb3V0KGgpLGEucmVzb2x2ZShtKX0sImZpbmFsaXplIik7ZnVuY3Rpb24gZihtKXtjLnB1c2gobS5kZWx0YVkpLGMubGVuZ3RoPj1zJiZwKCl9aShmLCJvbldoZWVsIik7ZnVuY3Rpb24gcCgpe2lmKGMubGVuZ3RoPDIpe2QoITEpO3JldHVybn1sZXQgbT1jLmxlbmd0aC0xLHY9MDtmb3IobGV0IGc9MDtnPG07ZysrKU1hdGguYWJzKGNbZysxXS1jW2ddKTw9biYmdisrO2xldCBiPXYvbTtkKGI+PW8pfWkocCwiYW5hbHl6ZUV2ZW50cyIpO2xldCBoPXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57cCgpfSxsKTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixmLHtwYXNzaXZlOiEwfSksYS5wcm9taXNlfWFzeW5jIGVuYWJsZUxlbmlzU2Nyb2xsKGUpe2lmKHRoaXMuZGlzcG9zZWQpcmV0dXJuO3RoaXMubGVuaXNJbnN0YW5jZSYmdGhpcy5kaXNhYmxlTGVuaXNTY3JvbGwoKTtsZXQgcj1uZXcgY18oe2F1dG9SYWY6ITB9KTtpZihlPy5kaXNhYmxlT25OYXRpdmVTbW9vdGhTY3JvbGwmJmF3YWl0IHRoaXMuZGV0ZWN0TmF0aXZlU21vb3RoU2Nyb2xsKCkpe3IuZGVzdHJveSgpO3JldHVybn10aGlzLmxlbmlzSW5zdGFuY2U9cix0aGlzLmRldGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5hdHRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCl9ZGlzYWJsZUxlbmlzU2Nyb2xsKCl7dGhpcy5sZW5pc0luc3RhbmNlJiYodGhpcy5kZXRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCksdGhpcy5sZW5pc0luc3RhbmNlLmRlc3Ryb3koKSx0aGlzLmxlbmlzSW5zdGFuY2U9bnVsbCx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCkpfW9uU2Nyb2xsKGUpe3JldHVybiB0aGlzLnNjcm9sbENhbGxiYWNrcy5wdXNoKGUpLCgpPT57dGhpcy5zY3JvbGxDYWxsYmFja3M9dGhpcy5zY3JvbGxDYWxsYmFja3MuZmlsdGVyKHI9PnIhPT1lKX19ZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLmZvckVhY2goZT0+e3RyeXtlKCl9Y2F0Y2gocil7Y29uc29sZS5lcnJvcigiRXJyb3IgaW4gc2Nyb2xsIGNhbGxiYWNrOiIscil9fSl9YXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLm5hdGl2ZVNjcm9sbExpc3RlbmVyQXR0YWNoZWR8fHRoaXMuZGlzcG9zZWR8fCh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCksdGhpcy5uYXRpdmVTY3JvbGxMaXN0ZW5lckF0dGFjaGVkPSEwKX1kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpe3RoaXMubmF0aXZlU2Nyb2xsTGlzdGVuZXJBdHRhY2hlZCYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlTmF0aXZlU2Nyb2xsKSx0aGlzLm5hdGl2ZVNjcm9sbExpc3RlbmVyQXR0YWNoZWQ9ITEpfWF0dGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmxlbmlzSW5zdGFuY2UmJiF0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmUmJih0aGlzLmxlbmlzU2Nyb2xsVW5zdWJzY3JpYmU9dGhpcy5sZW5pc0luc3RhbmNlLm9uKCJzY3JvbGwiLHRoaXMuaGFuZGxlTGVuaXNTY3JvbGwpKX1kZXRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCl7dGhpcy5sZW5pc1Njcm9sbFVuc3Vic2NyaWJlJiYodGhpcy5sZW5pc1Njcm9sbFVuc3Vic2NyaWJlKCksdGhpcy5sZW5pc1Njcm9sbFVuc3Vic2NyaWJlPW51bGwpfWRpc3Bvc2UoKXt0aGlzLmRpc3Bvc2VkfHwodGhpcy5kaXNwb3NlZD0hMCx0aGlzLmRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmxlbmlzSW5zdGFuY2U/LmRlc3Ryb3koKSx0aGlzLmxlbmlzSW5zdGFuY2U9bnVsbCx0aGlzLmRldGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5zY3JvbGxDYWxsYmFja3M9W10sdGhpcy5zd2VldFNjcm9sbGVyLmRlc3Ryb3koKSl9fX0pO3ZhciB2M2UsSDFyPXUoKCk9PntieSgpO2d5KCk7djNlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlRoZW1lTWFuYWdlciIpfWRvbXRvb2xzUmVmO2dvQnJpZ2h0Qm9vbGVhbj0hMTtwcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2g9d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIik7dGhlbWVPYnNlcnZhYmxlPW5ldyAkYS5yeGpzLlJlcGxheVN1YmplY3QoMSk7YXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2VTdWJzY3JpcHRpb249bnVsbDtwcmVmZXJyZWRDb2xvclNjaGVtZUNoYW5nZUhhbmRsZXI9aShlPT57dGhpcy5nb0JyaWdodEJvb2xlYW49ZS5tYXRjaGVzLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX0sInByZWZlcnJlZENvbG9yU2NoZW1lQ2hhbmdlSGFuZGxlciIpO2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tdG9vbHNSZWY9ZSx0aGlzLmdvQnJpZ2h0Qm9vbGVhbj10aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5tYXRjaGVzLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZUNoYW5nZUhhbmRsZXIpLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1hc3luYyBlbmFibGVBdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZSgpe2F3YWl0IHRoaXMuZG9tdG9vbHNSZWYuZG9tUmVhZHkucHJvbWlzZSx0aGlzLmF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9ufHwodGhpcy5hdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbj10aGlzLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoe25leHQ6aShlPT57ZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kPWU/IiNmZmYiOiIjMDAwIn0sIm5leHQiKX0pKX11cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpe3RoaXMuZG9tdG9vbHNSZWYuZGlzcG9zZWR8fHRoaXMudGhlbWVPYnNlcnZhYmxlLm5leHQodGhpcy5nb0JyaWdodEJvb2xlYW4pfWdvQnJpZ2h0KCl7dGhpcy5nb0JyaWdodEJvb2xlYW49ITAsdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfWdvRGFyaygpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSExLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX10b2dnbGVEYXJrQnJpZ2h0KCl7dGhpcy5nb0JyaWdodEJvb2xlYW49IXRoaXMuZ29CcmlnaHRCb29sZWFuLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1kaXNwb3NlKCl7dGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2gucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lQ2hhbmdlSGFuZGxlciksdGhpcy5hdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLmF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlU3Vic2NyaXB0aW9uPW51bGwsdGhpcy50aGVtZU9ic2VydmFibGUuY29tcGxldGUoKX19fSk7dmFyIEJlLHkzZSxxMXI9dSgoKT0+e2d5KCk7KGZ1bmN0aW9uKHQpe3RbdC5CYWNrc3BhY2U9OF09IkJhY2tzcGFjZSIsdFt0LlRhYj05XT0iVGFiIix0W3QuRW50ZXI9MTNdPSJFbnRlciIsdFt0LlNoaWZ0PTE2XT0iU2hpZnQiLHRbdC5DdHJsPTE3XT0iQ3RybCIsdFt0LkFsdD0xOF09IkFsdCIsdFt0LlBhdXNlQnJlYWs9MTldPSJQYXVzZUJyZWFrIix0W3QuQ2Fwc0xvY2s9MjBdPSJDYXBzTG9jayIsdFt0LkVzY2FwZT0yN109IkVzY2FwZSIsdFt0LlNwYWNlPTMyXT0iU3BhY2UiLHRbdC5QYWdlVXA9MzNdPSJQYWdlVXAiLHRbdC5QYWdlRG93bj0zNF09IlBhZ2VEb3duIix0W3QuRW5kPTM1XT0iRW5kIix0W3QuSG9tZT0zNl09IkhvbWUiLHRbdC5MZWZ0QXJyb3c9MzddPSJMZWZ0QXJyb3ciLHRbdC5VcEFycm93PTM4XT0iVXBBcnJvdyIsdFt0LlJpZ2h0QXJyb3c9MzldPSJSaWdodEFycm93Iix0W3QuRG93bkFycm93PTQwXT0iRG93bkFycm93Iix0W3QuSW5zZXJ0PTQ1XT0iSW5zZXJ0Iix0W3QuRGVsZXRlPTQ2XT0iRGVsZXRlIix0W3QuWmVybz00OF09Ilplcm8iLHRbdC5DbG9zZWRQYXJlbj00OF09IkNsb3NlZFBhcmVuIix0W3QuT25lPTQ5XT0iT25lIix0W3QuRXhjbGFtYXRpb25NYXJrPTQ5XT0iRXhjbGFtYXRpb25NYXJrIix0W3QuVHdvPTUwXT0iVHdvIix0W3QuQXRTaWduPTUwXT0iQXRTaWduIix0W3QuVGhyZWU9NTFdPSJUaHJlZSIsdFt0LlBvdW5kU2lnbj01MV09IlBvdW5kU2lnbiIsdFt0Lkhhc2g9NTFdPSJIYXNoIix0W3QuRm91cj01Ml09IkZvdXIiLHRbdC5Eb2xsYXJTaWduPTUyXT0iRG9sbGFyU2lnbiIsdFt0LkZpdmU9NTNdPSJGaXZlIix0W3QuUGVyY2VudFNpZ249NTNdPSJQZXJjZW50U2lnbiIsdFt0LlNpeD01NF09IlNpeCIsdFt0LkNhcmV0PTU0XT0iQ2FyZXQiLHRbdC5IYXQ9NTRdPSJIYXQiLHRbdC5TZXZlbj01NV09IlNldmVuIix0W3QuQW1wZXJzYW5kPTU1XT0iQW1wZXJzYW5kIix0W3QuRWlnaHQ9NTZdPSJFaWdodCIsdFt0LlN0YXI9NTZdPSJTdGFyIix0W3QuQXN0ZXJpaz01Nl09IkFzdGVyaWsiLHRbdC5OaW5lPTU3XT0iTmluZSIsdFt0Lk9wZW5QYXJlbj01N109Ik9wZW5QYXJlbiIsdFt0LkE9NjVdPSJBIix0W3QuQj02Nl09IkIiLHRbdC5DPTY3XT0iQyIsdFt0LkQ9NjhdPSJEIix0W3QuRT02OV09IkUiLHRbdC5GPTcwXT0iRiIsdFt0Lkc9NzFdPSJHIix0W3QuSD03Ml09IkgiLHRbdC5JPTczXT0iSSIsdFt0Lko9NzRdPSJKIix0W3QuSz03NV09IksiLHRbdC5MPTc2XT0iTCIsdFt0Lk09NzddPSJNIix0W3QuTj03OF09Ik4iLHRbdC5PPTc5XT0iTyIsdFt0LlA9ODBdPSJQIix0W3QuUT04MV09IlEiLHRbdC5SPTgyXT0iUiIsdFt0LlM9ODNdPSJTIix0W3QuVD04NF09IlQiLHRbdC5VPTg1XT0iVSIsdFt0LlY9ODZdPSJWIix0W3QuVz04N109IlciLHRbdC5YPTg4XT0iWCIsdFt0Llk9ODldPSJZIix0W3QuWj05MF09IloiLHRbdC5MZWZ0V2luZG93S2V5PTkxXT0iTGVmdFdpbmRvd0tleSIsdFt0LlJpZ2h0V2luZG93S2V5PTkyXT0iUmlnaHRXaW5kb3dLZXkiLHRbdC5TZWxlY3RLZXk9OTNdPSJTZWxlY3RLZXkiLHRbdC5OdW1wYWQwPTk2XT0iTnVtcGFkMCIsdFt0Lk51bXBhZDE9OTddPSJOdW1wYWQxIix0W3QuTnVtcGFkMj05OF09Ik51bXBhZDIiLHRbdC5OdW1wYWQzPTk5XT0iTnVtcGFkMyIsdFt0Lk51bXBhZDQ9MTAwXT0iTnVtcGFkNCIsdFt0Lk51bXBhZDU9MTAxXT0iTnVtcGFkNSIsdFt0Lk51bXBhZDY9MTAyXT0iTnVtcGFkNiIsdFt0Lk51bXBhZDc9MTAzXT0iTnVtcGFkNyIsdFt0Lk51bXBhZDg9MTA0XT0iTnVtcGFkOCIsdFt0Lk51bXBhZDk9MTA1XT0iTnVtcGFkOSIsdFt0Lk11bHRpcGx5PTEwNl09Ik11bHRpcGx5Iix0W3QuQWRkPTEwN109IkFkZCIsdFt0LlN1YnRyYWN0PTEwOV09IlN1YnRyYWN0Iix0W3QuRGVjaW1hbFBvaW50PTExMF09IkRlY2ltYWxQb2ludCIsdFt0LkRpdmlkZT0xMTFdPSJEaXZpZGUiLHRbdC5GMT0xMTJdPSJGMSIsdFt0LkYyPTExM109IkYyIix0W3QuRjM9MTE0XT0iRjMiLHRbdC5GND0xMTVdPSJGNCIsdFt0LkY1PTExNl09IkY1Iix0W3QuRjY9MTE3XT0iRjYiLHRbdC5GNz0xMThdPSJGNyIsdFt0LkY4PTExOV09IkY4Iix0W3QuRjk9MTIwXT0iRjkiLHRbdC5GMTA9MTIxXT0iRjEwIix0W3QuRjExPTEyMl09IkYxMSIsdFt0LkYxMj0xMjNdPSJGMTIiLHRbdC5OdW1Mb2NrPTE0NF09Ik51bUxvY2siLHRbdC5TY3JvbGxMb2NrPTE0NV09IlNjcm9sbExvY2siLHRbdC5TZW1pQ29sb249MTg2XT0iU2VtaUNvbG9uIix0W3QuRXF1YWxzPTE4N109IkVxdWFscyIsdFt0LkNvbW1hPTE4OF09IkNvbW1hIix0W3QuRGFzaD0xODldPSJEYXNoIix0W3QuUGVyaW9kPTE5MF09IlBlcmlvZCIsdFt0LlVuZGVyU2NvcmU9MTg5XT0iVW5kZXJTY29yZSIsdFt0LlBsdXNTaWduPTE4N109IlBsdXNTaWduIix0W3QuRm9yd2FyZFNsYXNoPTE5MV09IkZvcndhcmRTbGFzaCIsdFt0LlRpbGRlPTE5Ml09IlRpbGRlIix0W3QuR3JhdmVBY2NlbnQ9MTkyXT0iR3JhdmVBY2NlbnQiLHRbdC5PcGVuQnJhY2tldD0yMTldPSJPcGVuQnJhY2tldCIsdFt0LkNsb3NlZEJyYWNrZXQ9MjIxXT0iQ2xvc2VkQnJhY2tldCIsdFt0LlF1b3RlPTIyMl09IlF1b3RlIn0pKEJlfHwoQmU9e30pKTt5M2U9Y2xhc3N7c3RhdGlje2kodGhpcywiS2V5Ym9hcmQiKX1kb21Ob2RlO21hcENvbWJvc1RvSGFuZGxlcnM9bmV3IE1hcDtwcmVzc2VkS2V5cz1uZXcgU2V0O2xpc3RlbmluZz0hMTtjb25zdHJ1Y3RvcihlKXt0aGlzLmRvbU5vZGU9ZSx0aGlzLnN0YXJ0TGlzdGVuaW5nKCl9a2V5RW51bT1CZTtvbihlKXtsZXQgcj1uZXcgJGEucnhqcy5TdWJqZWN0O3JldHVybiB0aGlzLnJlZ2lzdGVyS2V5cyhlLHIpLHJ9dHJpZ2dlcktleVByZXNzKGUpe2xldCByPXRoaXMubm9ybWFsaXplS2V5cyhlKTtmb3IobGV0IGEgb2Ygcil0aGlzLnByZXNzZWRLZXlzLmFkZChhKTt0aGlzLmNoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKHRoaXMuY3JlYXRlS2V5Ym9hcmRFdmVudChyKSk7Zm9yKGxldCBhIG9mIHIpdGhpcy5wcmVzc2VkS2V5cy5kZWxldGUoYSl9c3RhcnRMaXN0ZW5pbmcoKXt0aGlzLmxpc3RlbmluZ3x8KHRoaXMuZG9tTm9kZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleURvd24pLHRoaXMuZG9tTm9kZS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5oYW5kbGVLZXlVcCksdGhpcy5saXN0ZW5pbmc9ITApfXN0b3BMaXN0ZW5pbmcoKXt0aGlzLmxpc3RlbmluZyYmKHRoaXMuZG9tTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleURvd24pLHRoaXMuZG9tTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5oYW5kbGVLZXlVcCksdGhpcy5saXN0ZW5pbmc9ITEpfWNsZWFyKCl7dGhpcy5zdG9wTGlzdGVuaW5nKCk7Zm9yKGxldCBlIG9mIHRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy52YWx1ZXMoKSlmb3IobGV0IHIgb2YgZS5zdWJqZWN0cylyLmNvbXBsZXRlKCk7dGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLmNsZWFyKCksdGhpcy5wcmVzc2VkS2V5cy5jbGVhcigpfWRpc3Bvc2UoKXt0aGlzLmNsZWFyKCl9aGFuZGxlS2V5RG93bj1pKGU9PntsZXQgcj10aGlzLnJlc29sdmVLZXkoZSk7ciE9PW51bGwmJih0aGlzLnByZXNzZWRLZXlzLmFkZChyKSx0aGlzLmNoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKGUpKX0sImhhbmRsZUtleURvd24iKTtjaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cyhlKXt0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuZm9yRWFjaChyPT57aWYodGhpcy5hcmVBbGxLZXlzUHJlc3NlZChyLmtleXMpKWZvcihsZXQgYSBvZiByLnN1YmplY3RzKWEubmV4dChlKX0pfWhhbmRsZUtleVVwPWkoZT0+e2xldCByPXRoaXMucmVzb2x2ZUtleShlKTtyIT09bnVsbCYmdGhpcy5wcmVzc2VkS2V5cy5kZWxldGUocil9LCJoYW5kbGVLZXlVcCIpO2FyZUFsbEtleXNQcmVzc2VkKGUpe2xldCByPSEwO3JldHVybiBlLmZvckVhY2goYT0+e3RoaXMucHJlc3NlZEtleXMuaGFzKGEpfHwocj0hMSl9KSxyfXJlZ2lzdGVyS2V5cyhlLHIpe2xldCBhPXRoaXMubm9ybWFsaXplS2V5cyhlKSxzPWEuam9pbigiKyIpLG49dGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLmdldChzKTtpZighbil7dGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLnNldChzLHtrZXlzOmEsc3ViamVjdHM6W3JdfSk7cmV0dXJufW4uc3ViamVjdHMucHVzaChyKX1ub3JtYWxpemVLZXlzKGUpe3JldHVyblsuLi5uZXcgU2V0KGUpXS5zb3J0KChyLGEpPT5yLWEpfXJlc29sdmVLZXkoZSl7cmV0dXJuIHRoaXMucmVzb2x2ZUtleUZyb21Db2RlKGUuY29kZSk/P3RoaXMucmVzb2x2ZUtleUZyb21LZXkoZS5rZXkpPz90aGlzLnJlc29sdmVLZXlGcm9tS2V5Q29kZShlLmtleUNvZGUpfXJlc29sdmVLZXlGcm9tQ29kZShlKXtpZighZSlyZXR1cm4gbnVsbDtpZihlLnN0YXJ0c1dpdGgoIktleSIpJiZlLmxlbmd0aD09PTQpcmV0dXJuIEJlW2Uuc2xpY2UoMyldPz9udWxsO2lmKGUuc3RhcnRzV2l0aCgiRGlnaXQiKSYmZS5sZW5ndGg9PT02KXJldHVybiB0aGlzLnJlc29sdmVLZXlGcm9tS2V5KGUuc2xpY2UoNSkpO3N3aXRjaChlKXtjYXNlIkJhY2tzcGFjZSI6cmV0dXJuIEJlLkJhY2tzcGFjZTtjYXNlIlRhYiI6cmV0dXJuIEJlLlRhYjtjYXNlIkVudGVyIjpjYXNlIk51bXBhZEVudGVyIjpyZXR1cm4gQmUuRW50ZXI7Y2FzZSJTaGlmdExlZnQiOmNhc2UiU2hpZnRSaWdodCI6cmV0dXJuIEJlLlNoaWZ0O2Nhc2UiQ29udHJvbExlZnQiOmNhc2UiQ29udHJvbFJpZ2h0IjpyZXR1cm4gQmUuQ3RybDtjYXNlIkFsdExlZnQiOmNhc2UiQWx0UmlnaHQiOnJldHVybiBCZS5BbHQ7Y2FzZSJQYXVzZSI6cmV0dXJuIEJlLlBhdXNlQnJlYWs7Y2FzZSJDYXBzTG9jayI6cmV0dXJuIEJlLkNhcHNMb2NrO2Nhc2UiRXNjYXBlIjpyZXR1cm4gQmUuRXNjYXBlO2Nhc2UiU3BhY2UiOnJldHVybiBCZS5TcGFjZTtjYXNlIlBhZ2VVcCI6cmV0dXJuIEJlLlBhZ2VVcDtjYXNlIlBhZ2VEb3duIjpyZXR1cm4gQmUuUGFnZURvd247Y2FzZSJFbmQiOnJldHVybiBCZS5FbmQ7Y2FzZSJIb21lIjpyZXR1cm4gQmUuSG9tZTtjYXNlIkFycm93TGVmdCI6cmV0dXJuIEJlLkxlZnRBcnJvdztjYXNlIkFycm93VXAiOnJldHVybiBCZS5VcEFycm93O2Nhc2UiQXJyb3dSaWdodCI6cmV0dXJuIEJlLlJpZ2h0QXJyb3c7Y2FzZSJBcnJvd0Rvd24iOnJldHVybiBCZS5Eb3duQXJyb3c7Y2FzZSJJbnNlcnQiOnJldHVybiBCZS5JbnNlcnQ7Y2FzZSJEZWxldGUiOnJldHVybiBCZS5EZWxldGU7Y2FzZSJNZXRhTGVmdCI6cmV0dXJuIEJlLkxlZnRXaW5kb3dLZXk7Y2FzZSJNZXRhUmlnaHQiOnJldHVybiBCZS5SaWdodFdpbmRvd0tleTtjYXNlIkNvbnRleHRNZW51IjpyZXR1cm4gQmUuU2VsZWN0S2V5O2Nhc2UiTnVtcGFkMCI6cmV0dXJuIEJlLk51bXBhZDA7Y2FzZSJOdW1wYWQxIjpyZXR1cm4gQmUuTnVtcGFkMTtjYXNlIk51bXBhZDIiOnJldHVybiBCZS5OdW1wYWQyO2Nhc2UiTnVtcGFkMyI6cmV0dXJuIEJlLk51bXBhZDM7Y2FzZSJOdW1wYWQ0IjpyZXR1cm4gQmUuTnVtcGFkNDtjYXNlIk51bXBhZDUiOnJldHVybiBCZS5OdW1wYWQ1O2Nhc2UiTnVtcGFkNiI6cmV0dXJuIEJlLk51bXBhZDY7Y2FzZSJOdW1wYWQ3IjpyZXR1cm4gQmUuTnVtcGFkNztjYXNlIk51bXBhZDgiOnJldHVybiBCZS5OdW1wYWQ4O2Nhc2UiTnVtcGFkOSI6cmV0dXJuIEJlLk51bXBhZDk7Y2FzZSJOdW1wYWRNdWx0aXBseSI6cmV0dXJuIEJlLk11bHRpcGx5O2Nhc2UiTnVtcGFkQWRkIjpyZXR1cm4gQmUuQWRkO2Nhc2UiTnVtcGFkU3VidHJhY3QiOnJldHVybiBCZS5TdWJ0cmFjdDtjYXNlIk51bXBhZERlY2ltYWwiOnJldHVybiBCZS5EZWNpbWFsUG9pbnQ7Y2FzZSJOdW1wYWREaXZpZGUiOnJldHVybiBCZS5EaXZpZGU7Y2FzZSJGMSI6cmV0dXJuIEJlLkYxO2Nhc2UiRjIiOnJldHVybiBCZS5GMjtjYXNlIkYzIjpyZXR1cm4gQmUuRjM7Y2FzZSJGNCI6cmV0dXJuIEJlLkY0O2Nhc2UiRjUiOnJldHVybiBCZS5GNTtjYXNlIkY2IjpyZXR1cm4gQmUuRjY7Y2FzZSJGNyI6cmV0dXJuIEJlLkY3O2Nhc2UiRjgiOnJldHVybiBCZS5GODtjYXNlIkY5IjpyZXR1cm4gQmUuRjk7Y2FzZSJGMTAiOnJldHVybiBCZS5GMTA7Y2FzZSJGMTEiOnJldHVybiBCZS5GMTE7Y2FzZSJGMTIiOnJldHVybiBCZS5GMTI7Y2FzZSJOdW1Mb2NrIjpyZXR1cm4gQmUuTnVtTG9jaztjYXNlIlNjcm9sbExvY2siOnJldHVybiBCZS5TY3JvbGxMb2NrO2Nhc2UiU2VtaWNvbG9uIjpyZXR1cm4gQmUuU2VtaUNvbG9uO2Nhc2UiRXF1YWwiOnJldHVybiBCZS5FcXVhbHM7Y2FzZSJDb21tYSI6cmV0dXJuIEJlLkNvbW1hO2Nhc2UiTWludXMiOnJldHVybiBCZS5EYXNoO2Nhc2UiUGVyaW9kIjpyZXR1cm4gQmUuUGVyaW9kO2Nhc2UiU2xhc2giOnJldHVybiBCZS5Gb3J3YXJkU2xhc2g7Y2FzZSJCYWNrcXVvdGUiOnJldHVybiBCZS5UaWxkZTtjYXNlIkJyYWNrZXRMZWZ0IjpyZXR1cm4gQmUuT3BlbkJyYWNrZXQ7Y2FzZSJCcmFja2V0UmlnaHQiOnJldHVybiBCZS5DbG9zZWRCcmFja2V0O2Nhc2UiUXVvdGUiOnJldHVybiBCZS5RdW90ZTtkZWZhdWx0OnJldHVybiBudWxsfX1yZXNvbHZlS2V5RnJvbUtleShlKXtpZighZSlyZXR1cm4gbnVsbDtpZihlLmxlbmd0aD09PTEpe2xldCByPWUudG9VcHBlckNhc2UoKTtpZihyPj0iQSImJnI8PSJaIilyZXR1cm4gQmVbcl0/P251bGw7c3dpdGNoKGUpe2Nhc2UiMCI6cmV0dXJuIEJlLlplcm87Y2FzZSIxIjpyZXR1cm4gQmUuT25lO2Nhc2UiMiI6cmV0dXJuIEJlLlR3bztjYXNlIjMiOnJldHVybiBCZS5UaHJlZTtjYXNlIjQiOnJldHVybiBCZS5Gb3VyO2Nhc2UiNSI6cmV0dXJuIEJlLkZpdmU7Y2FzZSI2IjpyZXR1cm4gQmUuU2l4O2Nhc2UiNyI6cmV0dXJuIEJlLlNldmVuO2Nhc2UiOCI6cmV0dXJuIEJlLkVpZ2h0O2Nhc2UiOSI6cmV0dXJuIEJlLk5pbmU7Y2FzZSIgIjpyZXR1cm4gQmUuU3BhY2U7Y2FzZSI7IjpyZXR1cm4gQmUuU2VtaUNvbG9uO2Nhc2UiPSI6cmV0dXJuIEJlLkVxdWFscztjYXNlIiwiOnJldHVybiBCZS5Db21tYTtjYXNlIi0iOnJldHVybiBCZS5EYXNoO2Nhc2UiLiI6cmV0dXJuIEJlLlBlcmlvZDtjYXNlIi8iOnJldHVybiBCZS5Gb3J3YXJkU2xhc2g7Y2FzZSJgIjpyZXR1cm4gQmUuVGlsZGU7Y2FzZSJbIjpyZXR1cm4gQmUuT3BlbkJyYWNrZXQ7Y2FzZSJdIjpyZXR1cm4gQmUuQ2xvc2VkQnJhY2tldDtjYXNlIiciOnJldHVybiBCZS5RdW90ZTtkZWZhdWx0OnJldHVybiBudWxsfX1zd2l0Y2goZSl7Y2FzZSJCYWNrc3BhY2UiOnJldHVybiBCZS5CYWNrc3BhY2U7Y2FzZSJUYWIiOnJldHVybiBCZS5UYWI7Y2FzZSJFbnRlciI6cmV0dXJuIEJlLkVudGVyO2Nhc2UiU2hpZnQiOnJldHVybiBCZS5TaGlmdDtjYXNlIkNvbnRyb2wiOnJldHVybiBCZS5DdHJsO2Nhc2UiQWx0IjpyZXR1cm4gQmUuQWx0O2Nhc2UiUGF1c2UiOnJldHVybiBCZS5QYXVzZUJyZWFrO2Nhc2UiQ2Fwc0xvY2siOnJldHVybiBCZS5DYXBzTG9jaztjYXNlIkVzY2FwZSI6cmV0dXJuIEJlLkVzY2FwZTtjYXNlIlBhZ2VVcCI6cmV0dXJuIEJlLlBhZ2VVcDtjYXNlIlBhZ2VEb3duIjpyZXR1cm4gQmUuUGFnZURvd247Y2FzZSJFbmQiOnJldHVybiBCZS5FbmQ7Y2FzZSJIb21lIjpyZXR1cm4gQmUuSG9tZTtjYXNlIkFycm93TGVmdCI6cmV0dXJuIEJlLkxlZnRBcnJvdztjYXNlIkFycm93VXAiOnJldHVybiBCZS5VcEFycm93O2Nhc2UiQXJyb3dSaWdodCI6cmV0dXJuIEJlLlJpZ2h0QXJyb3c7Y2FzZSJBcnJvd0Rvd24iOnJldHVybiBCZS5Eb3duQXJyb3c7Y2FzZSJJbnNlcnQiOnJldHVybiBCZS5JbnNlcnQ7Y2FzZSJEZWxldGUiOnJldHVybiBCZS5EZWxldGU7Y2FzZSJNZXRhIjpyZXR1cm4gQmUuTGVmdFdpbmRvd0tleTtjYXNlIkNvbnRleHRNZW51IjpyZXR1cm4gQmUuU2VsZWN0S2V5O2Nhc2UiTnVtTG9jayI6cmV0dXJuIEJlLk51bUxvY2s7Y2FzZSJTY3JvbGxMb2NrIjpyZXR1cm4gQmUuU2Nyb2xsTG9jaztkZWZhdWx0OnJldHVybiBudWxsfX1yZXNvbHZlS2V5RnJvbUtleUNvZGUoZSl7cmV0dXJuIHR5cGVvZiBlIT0ibnVtYmVyIj9udWxsOnR5cGVvZiBCZVtlXTwidSI/ZTpudWxsfWNyZWF0ZUtleWJvYXJkRXZlbnQoZSl7bGV0IHI9ZVtlLmxlbmd0aC0xXT8/QmUuRW50ZXIsYT10aGlzLmdldEtleURlc2NyaXB0b3Iocik7cmV0dXJuIG5ldyBLZXlib2FyZEV2ZW50KCJrZXlkb3duIix7a2V5OmEua2V5LGNvZGU6YS5jb2RlLGN0cmxLZXk6ZS5pbmNsdWRlcyhCZS5DdHJsKSxzaGlmdEtleTplLmluY2x1ZGVzKEJlLlNoaWZ0KSxhbHRLZXk6ZS5pbmNsdWRlcyhCZS5BbHQpLG1ldGFLZXk6ZS5pbmNsdWRlcyhCZS5MZWZ0V2luZG93S2V5KXx8ZS5pbmNsdWRlcyhCZS5SaWdodFdpbmRvd0tleSl9KX1nZXRLZXlEZXNjcmlwdG9yKGUpe3N3aXRjaChlKXtjYXNlIEJlLkN0cmw6cmV0dXJue2tleToiQ29udHJvbCIsY29kZToiQ29udHJvbExlZnQifTtjYXNlIEJlLlNoaWZ0OnJldHVybntrZXk6IlNoaWZ0Iixjb2RlOiJTaGlmdExlZnQifTtjYXNlIEJlLkFsdDpyZXR1cm57a2V5OiJBbHQiLGNvZGU6IkFsdExlZnQifTtjYXNlIEJlLkVudGVyOnJldHVybntrZXk6IkVudGVyIixjb2RlOiJFbnRlciJ9O2Nhc2UgQmUuU3BhY2U6cmV0dXJue2tleToiICIsY29kZToiU3BhY2UifTtkZWZhdWx0OntsZXQgcj1CZVtlXTtpZihyJiZyLmxlbmd0aD09PTEmJnI+PSJBIiYmcjw9IloiKXJldHVybntrZXk6ci50b0xvd2VyQ2FzZSgpLGNvZGU6YEtleSR7cn1gfTtpZihlPj1CZS5aZXJvJiZlPD1CZS5OaW5lKXtsZXQgYT1TdHJpbmcoZS1CZS5aZXJvKTtyZXR1cm57a2V5OmEsY29kZTpgRGlnaXQke2F9YH19cmV0dXJue2tleTpyPz8iVW5pZGVudGlmaWVkIixjb2RlOiJVbmlkZW50aWZpZWQifX19fX19KTt2YXIgdm8sYnk9dSgoKT0+e2d5KCk7ZEFlKCk7QjFyKCk7ZzNlKCk7SDFyKCk7cTFyKCk7dm89Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJEb21Ub29scyIpfXN0YXRpYyBpbml0aWFsaXphdGlvblByb21pc2U9bnVsbDtzdGF0aWMgYXN5bmMgc2V0dXBEb21Ub29scyhlPXt9KXtpZihlLmlnbm9yZUdsb2JhbCl7bGV0IHI9bmV3IHQoZSk7cmV0dXJuIGF3YWl0IHIuaW5pdGlhbGl6YXRpb25Qcm9taXNlLHJ9aWYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMmJiFnbG9iYWxUaGlzLmRlZXNEb21Ub29scy5kaXNwb3NlZClyZXR1cm4gYXdhaXQgZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMuaW5pdGlhbGl6YXRpb25Qcm9taXNlLGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO2lmKCF0LmluaXRpYWxpemF0aW9uUHJvbWlzZSl7bGV0IHI9bmV3IHQoZSk7Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9cix0LmluaXRpYWxpemF0aW9uUHJvbWlzZT1yLmluaXRpYWxpemF0aW9uUHJvbWlzZS50aGVuKCgpPT5yKS5jYXRjaChhPT57dGhyb3cgZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9PT1yJiYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9dm9pZCAwKSx0LmluaXRpYWxpemF0aW9uUHJvbWlzZT1udWxsLGF9KX1yZXR1cm4gYXdhaXQgdC5pbml0aWFsaXphdGlvblByb21pc2V9c3RhdGljIGdldEdsb2JhbERvbVRvb2xzU3luYygpe2xldCBlPWdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO2lmKCFlfHxlLmRpc3Bvc2VkKXRocm93IG5ldyBFcnJvcigiWW91IHRyaWVkIHRvIGFjY2VzcyBkb210b29scyBzeW5jaHJvbm91c2x5IHRvbyBlYXJseSIpO3JldHVybiBlfWVsZW1lbnRzPXtoZWFkRWxlbWVudDpudWxsLGJvZHlFbGVtZW50Om51bGx9O3dlYnNldHVwPW5ldyBsXyh7bWV0YU9iamVjdDp7dGl0bGU6IiJ9fSk7c21hcnRzdGF0ZT1uZXcgSzYuU21hcnRzdGF0ZTtkb21Ub29sc1N0YXRlUGFydD10aGlzLnNtYXJ0c3RhdGUuZ2V0U3RhdGVQYXJ0KCJkb210b29scyIse3ZpcnR1YWxWaWV3cG9ydDoibmF0aXZlIixqd3Q6IiJ9KTtyb3V0ZXI9bmV3IFk2LlNtYXJ0Um91dGVyKHtkZWJ1ZzohMX0pO2NvbnZlbmllbmNlPXt0eXBlZHJlcXVlc3Q6XzEsc21hcnRkZWxheTpUcixzbWFydGpzb246UXMsc21hcnR1cmw6WjZ9O2RlZXNDb21tcz1uZXcga3ouRGVlc0NvbW1zO3Njcm9sbGVyPW5ldyB4M2UodGhpcyk7dGhlbWVNYW5hZ2VyPW5ldyB2M2UodGhpcyk7a2V5Ym9hcmQ9bnVsbDtkaXNwb3NlZD0hMTtkb21Ub29sc1JlYWR5PSR0LmRlZmVyKCk7ZG9tUmVhZHk9JHQuZGVmZXIoKTtnbG9iYWxTdHlsZXNSZWFkeT0kdC5kZWZlcigpO2luaXRpYWxpemF0aW9uUHJvbWlzZTttYW5hZ2VkRG9tTm9kZXM9W107cmVhZHlTdGF0ZUNoYW5nZWRGdW5jPWkoKCk9Pnt0aGlzLnRyeU1hcmtEb21SZWFkeSgpfSwicmVhZHlTdGF0ZUNoYW5nZWRGdW5jIik7Y29uc3RydWN0b3IoZSl7dGhpcy5pbml0aWFsaXphdGlvblByb21pc2U9dGhpcy5pbml0aWFsaXplKCl9cnVuT25jZVByb21pc2VNYXA9bmV3IE1hcDthc3luYyBpbml0aWFsaXplKCl7dGhpcy50cnlNYXJrRG9tUmVhZHkoKSx0aGlzLmRvbVJlYWR5LnN0YXR1cz09PSJwZW5kaW5nIiYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsdGhpcy5yZWFkeVN0YXRlQ2hhbmdlZEZ1bmMpLHRoaXMuZG9tVG9vbHNSZWFkeS5zdGF0dXM9PT0icGVuZGluZyImJnRoaXMuZG9tVG9vbHNSZWFkeS5yZXNvbHZlKCl9dHJ5TWFya0RvbVJlYWR5KCl7dGhpcy5kaXNwb3NlZHx8dGhpcy5kb21SZWFkeS5zdGF0dXMhPT0icGVuZGluZyJ8fGRvY3VtZW50LnJlYWR5U3RhdGUhPT0iaW50ZXJhY3RpdmUiJiZkb2N1bWVudC5yZWFkeVN0YXRlIT09ImNvbXBsZXRlInx8IWRvY3VtZW50LmhlYWR8fCFkb2N1bWVudC5ib2R5fHwodGhpcy5lbGVtZW50cy5oZWFkRWxlbWVudD1kb2N1bWVudC5oZWFkLHRoaXMuZWxlbWVudHMuYm9keUVsZW1lbnQ9ZG9jdW1lbnQuYm9keSx0aGlzLmtleWJvYXJkfHwodGhpcy5rZXlib2FyZD1uZXcgeTNlKGRvY3VtZW50LmJvZHkpKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIix0aGlzLnJlYWR5U3RhdGVDaGFuZ2VkRnVuYyksdGhpcy5kb21SZWFkeS5yZXNvbHZlKCkpfXRyYWNrTWFuYWdlZERvbU5vZGUoZSl7cmV0dXJuIHRoaXMubWFuYWdlZERvbU5vZGVzLnB1c2goZSksZX1nZXRIZWFkT3JCb2R5RWxlbWVudCgpe2xldCBlPXRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnR8fGRvY3VtZW50LmhlYWR8fHRoaXMuZWxlbWVudHMuYm9keUVsZW1lbnR8fGRvY3VtZW50LmJvZHk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJEb21Ub29scyBjb3VsZCBub3QgZmluZCBhIERPTSB0YXJnZXQgZWxlbWVudCB0byBhdHRhY2ggcmVzb3VyY2VzIHRvIik7cmV0dXJuIGV9YXN5bmMgcnVuT25jZShlLHIpe2xldCBhPXRoaXMucnVuT25jZVByb21pc2VNYXAuZ2V0KGUpO3JldHVybiBhfHwoYT1Qcm9taXNlLnJlc29sdmUoKS50aGVuKGFzeW5jKCk9PmF3YWl0IHIoKSksdGhpcy5ydW5PbmNlUHJvbWlzZU1hcC5zZXQoZSxhKSksYXdhaXQgYX1hc3luYyBzZXRHbG9iYWxTdHlsZXMoZSl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCByPXRoaXMudHJhY2tNYW5hZ2VkRG9tTm9kZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKTtyLnR5cGU9InRleHQvY3NzIixyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKSx0aGlzLmdldEhlYWRPckJvZHlFbGVtZW50KCkuYXBwZW5kQ2hpbGQocil9YXN5bmMgc2V0RXh0ZXJuYWxTY3JpcHQoZSl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCByPSR0LmRlZmVyKCksYT10aGlzLnRyYWNrTWFuYWdlZERvbU5vZGUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IikpO2Euc3JjPWUsYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e3IucmVzb2x2ZSgpfSksYS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9PntyLnJlamVjdChuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIGV4dGVybmFsIHNjcmlwdDogJHtlfWApKX0pLHRoaXMuZ2V0SGVhZE9yQm9keUVsZW1lbnQoKS5hcHBlbmQoYSksYXdhaXQgci5wcm9taXNlfWFzeW5jIHNldEV4dGVybmFsQ3NzKGUpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgcj0kdC5kZWZlcigpLGE9dGhpcy50cmFja01hbmFnZWREb21Ob2RlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKSk7YS5yZWw9InN0eWxlc2hlZXQiLGEuY3Jvc3NPcmlnaW49ImFub255bW91cyIsYS5ocmVmPWUsYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e3IucmVzb2x2ZSgpfSksYS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9PntyLnJlamVjdChuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIGV4dGVybmFsIHN0eWxlc2hlZXQ6ICR7ZX1gKSl9KSx0aGlzLmdldEhlYWRPckJvZHlFbGVtZW50KCkuYXBwZW5kKGEpLGF3YWl0IHIucHJvbWlzZX1hc3luYyBzZXRXZWJzaXRlSW5mbyhlKXthd2FpdCB0aGlzLndlYnNldHVwLnNldHVwKGUpLGF3YWl0IHRoaXMud2Vic2V0dXAucmVhZHlQcm9taXNlfWRpc3Bvc2UoKXtpZighdGhpcy5kaXNwb3NlZCl7dGhpcy5kaXNwb3NlZD0hMCxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIix0aGlzLnJlYWR5U3RhdGVDaGFuZ2VkRnVuYyksdGhpcy5rZXlib2FyZD8uZGlzcG9zZSgpLHRoaXMua2V5Ym9hcmQ9bnVsbCx0aGlzLnNjcm9sbGVyLmRpc3Bvc2UoKSx0aGlzLnRoZW1lTWFuYWdlci5kaXNwb3NlKCk7Zm9yKGxldCBlIG9mIHRoaXMubWFuYWdlZERvbU5vZGVzKWUucmVtb3ZlKCk7dGhpcy5tYW5hZ2VkRG9tTm9kZXMubGVuZ3RoPTAsZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9PT10aGlzJiYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9dm9pZCAwLHQuaW5pdGlhbGl6YXRpb25Qcm9taXNlPW51bGwpfX19fSk7dmFyIHczZSxWMXIsajFyPXUoKCk9PntieSgpO1JsKCk7dzNlPSgoKT0+e2xldCB0PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIE9TIFgiKT09PS0xP3JlYGAuY3NzVGV4dDoiIjtyZXR1cm4gcmVgCiAgICAvKiB3aWR0aCAqLwogICAgOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgIHdpZHRoOiAwcHg7CiAgICB9CiAgICBib2R5IHsKICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOwogICAgfQogIGAuY3NzVGV4dH0pKCksVjFyPXJlYAogIC8qCiAgQGZvbnQtZmFjZSB7CiAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJzsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbWF0ZXJpYWxpY29ucy92NDIvZmxVaFJxNnR6WmNsUUVKLVZkZy1JdWlhRHNOY0loUTh0US53b2ZmMikKICAgICAgZm9ybWF0KCd3b2ZmMicpOwogIH0gKi8KCiAgLyogZ2xvYmFsIGJvZHkgc3R5bGVzICovCiAgYm9keSB7CiAgICBtYXJnaW46IDBweDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogc2Nyb2xsIGJhciBzdHlsZXMgKi8KICAke0dyKHczZSl9CmAuY3NzVGV4dH0pO3ZhciBaYT17fTtWZShaYSx7c2V0dXA6KCk9PkFMYSxzdGF0aWNTdHlsZXM6KCk9PkRMYSxzdHlsZXM6KCk9PiRMYX0pO3ZhciBETGEsJExhLEFMYSxVMXI9dSgoKT0+e2J5KCk7ajFyKCk7UmwoKTtETGE9cmVgCiAgKiB7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgOmhvc3QgewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgfQoKICAke0dyKHczZSl9CmAsJExhPXdgCiAgPHN0eWxlPgogICAgKiB7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KCiAgICA6aG9zdCB7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICB9CgogICAgJHt3M2V9CiAgPC9zdHlsZT4KYCxBTGE9aShhc3luYyh0LGU9e30pPT57bGV0IHI9YXdhaXQgdm8uc2V0dXBEb21Ub29scyhlKTtyZXR1cm4gYXdhaXQgci5ydW5PbmNlKCJlbGVtZW50QmFzaWNTZXR1cCIsYXN5bmMoKT0+e2F3YWl0IHIuc2V0R2xvYmFsU3R5bGVzKFYxcil9KSxyLmdsb2JhbFN0eWxlc1JlYWR5LnN0YXR1cz09PSJwZW5kaW5nIiYmci5nbG9iYWxTdHlsZXNSZWFkeS5yZXNvbHZlKCksYXdhaXQgci5nbG9iYWxTdHlsZXNSZWFkeS5wcm9taXNlLHJ9LCJzZXR1cCIpfSk7dmFyIGszZT17fTtWZShrM2Use2Nzc0dyaWRDb2x1bW5zOigpPT5FTGF9KTt2YXIgRUxhLFcxcj11KCgpPT57RUxhPWkoKHQsZSk9PntsZXQgcj0iIjtmb3IobGV0IGE9MDthPHQ7YSsrKXIrPWAgY2FsYygoMTAwJS8ke3R9KSAtICgke2UqKHQtMSl9cHgvJHt0fSkpYDtyZXR1cm4gcn0sImNzc0dyaWRDb2x1bW5zIil9KTt2YXIgY3I9e307VmUoY3Ise1N3ZWV0U2Nyb2xsOigpPT5teS5kZWZhdWx0LHNtYXJ0ZGVsYXk6KCk9PlRyLHNtYXJ0bWFya2Rvd246KCk9PmFfLHNtYXJ0cHJvbWlzZTooKT0+JHQsc21hcnRyb3V0ZXI6KCk9Plk2LHNtYXJ0cng6KCk9PiRhLHNtYXJ0c3RhdGU6KCk9Pks2LHNtYXJ0c3RyaW5nOigpPT5aMixzbWFydHVybDooKT0+WjYsdHlwZWRyZXF1ZXN0OigpPT5fMX0pO3ZhciBHMXI9dSgoKT0+e2d5KCl9KTt2YXIgWHQ9e307VmUoWHQse0RvbVRvb2xzOigpPT52byxUeXBlZFJlcXVlc3Q6KCk9PnZ6LGJyZWFrcG9pbnRzOigpPT5NaSxjc3M6KCk9PmszZSxlbGVtZW50QmFzaWM6KCk9PlphLHBsdWdpbnM6KCk9PmNyfSk7dmFyIE1yPXUoKCk9PnskcXQoKTtVMXIoKTtkQWUoKTtXMXIoKTtieSgpO01kZSgpO2czZSgpO0cxcigpfSk7dmFyIHVBZSxfcCxwQWU9dSgoKT0+e3VBZT1HYShLbGUoKSwxKTtiNCgpO1JsKCk7RHF0KCk7TXIoKTtfcD17Y3NzOnJlLHVuc2FmZUNTUzpHcixMaXRFbGVtZW50OmY0LHByb3BlcnR5OlB9fSk7dmFyIFMzZSxLMXI9dSgoKT0+e1JsKCk7cEFlKCk7TXIoKTtTM2U9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJDc3NNYW5hZ2VyIil9c3RhdGljIGluc3RhbmNlPW51bGw7c3RhdGljIGdldFNpbmdsZXRvbigpe3JldHVybiB0Lmluc3RhbmNlfHwodC5pbnN0YW5jZT1uZXcgdCksdC5pbnN0YW5jZX1kb210b29sc1Byb21pc2U9dm8uc2V0dXBEb21Ub29scygpO2dvQnJpZ2h0PSExO2JkVmFyVHJpcGxldFN0b3JlPVtdO2NvbnN0cnVjdG9yKCl7dGhpcy5kb210b29sc1Byb21pc2UudGhlbihhc3luYyBlPT57ZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShhc3luYyByPT57dGhpcy5nb0JyaWdodD1yLGF3YWl0IGUuZG9tUmVhZHkucHJvbWlzZTtmb3IobGV0IGEgb2YgdGhpcy5iZFZhclRyaXBsZXRTdG9yZSlkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KGEuY3NzVmFyTmFtZSx0aGlzLmdvQnJpZ2h0P2EuYnJpZ2h0VmFsdWU6YS5kYXJrVmFsdWUpfSl9KX1nZXQgZGVmYXVsdFN0eWxlcygpe3JldHVybiBaYS5zdGF0aWNTdHlsZXN9Z2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhlKXtyZXR1cm4gZS5pc3x8ZS5uYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX1jc3NGb3JEZXNrdG9wKGUscil7cmV0dXJuIHI/R3IoTWkuY3NzRm9yQ29udGFpbmVyKGUsYChtaW4td2lkdGg6ICR7TWkuZGVza3RvcH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhyKSkpOkdyKE1pLmNzc0ZvckRlc2t0b3AoZSkpfWNzc0Zvck5vdGVib29rKGUscil7cmV0dXJuIHI/R3IoTWkuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7TWkubm90ZWJvb2t9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3MocikpKTpHcihNaS5jc3NGb3JOb3RlYm9vayhlKSl9Y3NzRm9yVGFibGV0KGUscil7cmV0dXJuIHI/R3IoTWkuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7TWkudGFibGV0fXB4KWAsdGhpcy5nZXRDb250YWluZXJOYW1lRnJvbUNsYXNzKHIpKSk6R3IoTWkuY3NzRm9yVGFibGV0KGUpKX1jc3NGb3JQaGFibGV0KGUscil7cmV0dXJuIHI/R3IoTWkuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7TWkucGhhYmxldH1weClgLHRoaXMuZ2V0Q29udGFpbmVyTmFtZUZyb21DbGFzcyhyKSkpOkdyKE1pLmNzc0ZvclBoYWJsZXQoZSkpfWNzc0ZvclBob25lKGUscil7cmV0dXJuIHI/R3IoTWkuY3NzRm9yQ29udGFpbmVyKGUsYChtYXgtd2lkdGg6ICR7TWkucGhvbmV9cHgpYCx0aGlzLmdldENvbnRhaW5lck5hbWVGcm9tQ2xhc3MocikpKTpHcihNaS5jc3NGb3JQaG9uZShlKSl9Y3NzRm9yQ29uc3RyYWludChlKXtyZXR1cm4gcj0+R3IoTWkuY3NzRm9yQ29uc3RyYWludChlKShyKSl9YmRUaGVtZShlLHIpe2xldCBhLHM7dm8uZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCk/cz12by5nZXRHbG9iYWxEb21Ub29sc1N5bmMoKS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuP2U6cjpzPXI7bGV0IG49dGhpcy5iZFZhclRyaXBsZXRTdG9yZS5maW5kKG89Pm8uZGFya1ZhbHVlPT09ciYmby5icmlnaHRWYWx1ZT09PWUpO2lmKG4pYT1uLmNzc1Zhck5hbWU7ZWxzZXtsZXQgbz17Y3NzVmFyTmFtZTpgLS0ke3VBZS51bmkoKX1gLGJyaWdodFZhbHVlOmUsZGFya1ZhbHVlOnJ9O3RoaXMuYmRWYXJUcmlwbGV0U3RvcmUucHVzaChvKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIGw9Pnthd2FpdCBsLmRvbVJlYWR5LnByb21pc2UsZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShvLmNzc1Zhck5hbWUscyl9KSxhPW8uY3NzVmFyTmFtZX1yZXR1cm4gX3AudW5zYWZlQ1NTKGB2YXIoJHthfSwgJHtzfSlgKX1jc3NHcmlkQ29sdW1ucz1pKChlLHIpPT57bGV0IGE9IiI7Zm9yKGxldCBzPTA7czxlO3MrKylhKz1gIGNhbGMoKDEwMCUvJHtlfSkgLSAoJHtyKihlLTEpfXB4LyR7ZX0pKWA7cmV0dXJuIF9wLnVuc2FmZUNTUyhhKX0sImNzc0dyaWRDb2x1bW5zIil9fSk7dmFyIGZBZSxJTGEsUTFyLFBMYSxaMXIsTTNlLFRwLE5MYSxPTGEsWDFyPXUoKCk9PntWMigpO2ZBZT1TeW1ib2wuZm9yKCIiKSxJTGE9aSh0PT57aWYodD8ucj09PWZBZSlyZXR1cm4gdD8uXyRsaXRTdGF0aWMkfSwibyIpLFExcj1pKHQ9Pih7XyRsaXRTdGF0aWMkOnQscjpmQWV9KSwicyIpLFBMYT1pKCh0LC4uLmUpPT4oe18kbGl0U3RhdGljJDplLnJlZHVjZSgocixhLHMpPT5yKyhuPT57aWYobi5fJGxpdFN0YXRpYyQhPT12b2lkIDApcmV0dXJuIG4uXyRsaXRTdGF0aWMkO3Rocm93IEVycm9yKGBWYWx1ZSBwYXNzZWQgdG8gJ2xpdGVyYWwnIGZ1bmN0aW9uIG11c3QgYmUgYSAnbGl0ZXJhbCcgcmVzdWx0OiAke259LiBVc2UgJ3Vuc2FmZVN0YXRpYycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dAogICAgICAgICAgICB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuYCl9KShhKSt0W3MrMV0sdFswXSkscjpmQWV9KSwiaSIpLFoxcj1uZXcgTWFwLE0zZT1pKHQ9PihlLC4uLnIpPT57bGV0IGE9ci5sZW5ndGgscyxuLG89W10sbD1bXSxjLGQ9MCxmPSExO2Zvcig7ZDxhOyl7Zm9yKGM9ZVtkXTtkPGEmJihuPXJbZF0sKHM9SUxhKG4pKSE9PXZvaWQgMCk7KWMrPXMrZVsrK2RdLGY9ITA7ZCE9PWEmJmwucHVzaChuKSxvLnB1c2goYyksZCsrfWlmKGQ9PT1hJiZvLnB1c2goZVthXSksZil7bGV0IHA9by5qb2luKCIkJGxpdCQkIik7KGU9WjFyLmdldChwKSk9PT12b2lkIDAmJihvLnJhdz1vLFoxci5zZXQocCxlPW8pKSxyPWx9cmV0dXJuIHQoZSwuLi5yKX0sIm4iKSxUcD1NM2UodyksTkxhPU0zZShqa2UpLE9MYT1NM2UoVWtlKX0pO3ZhciBKMXI9dSgoKT0+e1gxcigpfSk7dmFyIHRkLHpzLFlsLFA0PXUoKCk9Pnt0ZD17QVRUUklCVVRFOjEsQ0hJTEQ6MixQUk9QRVJUWTozLEJPT0xFQU5fQVRUUklCVVRFOjQsRVZFTlQ6NSxFTEVNRU5UOjZ9LHpzPWkodD0+KC4uLmUpPT4oe18kbGl0RGlyZWN0aXZlJDp0LHZhbHVlczplfSksImUiKSxZbD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJpIil9Y29uc3RydWN0b3IoZSl7fWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQVQoZSxyLGEpe3RoaXMuXyRDdD1lLHRoaXMuXyRBTT1yLHRoaXMuXyRDaT1hfV8kQVMoZSxyKXtyZXR1cm4gdGhpcy51cGRhdGUoZSxyKX11cGRhdGUoZSxyKXtyZXR1cm4gdGhpcy5yZW5kZXIoLi4ucil9fX0pO3ZhciB4eSxDM2UsZWxyPXUoKCk9PntWMigpO1A0KCk7eHk9Y2xhc3MgZXh0ZW5kcyBZbHtzdGF0aWN7aSh0aGlzLCJlIil9Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksdGhpcy5pdD13aSxlLnR5cGUhPT10ZC5DSElMRCl0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgYmluZGluZ3MiKX1yZW5kZXIoZSl7aWYoZT09PXdpfHxlPT1udWxsKXJldHVybiB0aGlzLl90PXZvaWQgMCx0aGlzLml0PWU7aWYoZT09PW9pKXJldHVybiBlO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbGxlZCB3aXRoIGEgbm9uLXN0cmluZyB2YWx1ZSIpO2lmKGU9PT10aGlzLml0KXJldHVybiB0aGlzLl90O3RoaXMuaXQ9ZTtsZXQgcj1bZV07cmV0dXJuIHIucmF3PXIsdGhpcy5fdD17XyRsaXRUeXBlJDp0aGlzLmNvbnN0cnVjdG9yLnJlc3VsdFR5cGUsc3RyaW5nczpyLHZhbHVlczpbXX19fTt4eS5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVIVE1MIix4eS5yZXN1bHRUeXBlPTE7QzNlPXpzKHh5KX0pO3ZhciB0bHI9dSgoKT0+e2VscigpfSk7dmFyIGhBZSxtQWU9dSgoKT0+e2hBZT1pKHQ9PihlLHIpPT57ciE9PXZvaWQgMD9yLmFkZEluaXRpYWxpemVyKCgpPT57Y3VzdG9tRWxlbWVudHMuZGVmaW5lKHQsZSl9KTpjdXN0b21FbGVtZW50cy5kZWZpbmUodCxlKX0sInQiKX0pO3ZhciBybHI9dSgoKT0+e21BZSgpfSk7ZnVuY3Rpb24gdWUodCl7cmV0dXJuKGUscik9PntpZihlLmlzPXQsZS5uYW1lKXtsZXQgYT1STGEoZS5uYW1lKTthIT09dCYmY29uc29sZS53YXJuKGBbZGVlcy1lbGVtZW50XSBDbGFzcyAiJHtlLm5hbWV9IiBrZWJhYi1jYXNlcyB0byAiJHthfSIgYnV0IHRhZyBpcyAiJHt0fSIuIENvbnRhaW5lciBxdWVyaWVzIHVzZSAuaXMgKCIke3R9IikuYCl9cmV0dXJuIGhBZSh0KShlLHIpfX12YXIgUkxhLGFscj11KCgpPT57cmxyKCk7UkxhPWkodD0+dC5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksImNhbWVsVG9LZWJhYiIpO2kodWUsImN1c3RvbUVsZW1lbnQiKX0pO2Z1bmN0aW9uIGllKHQpe3JldHVybiBQKHsuLi50LHN0YXRlOiEwLGF0dHJpYnV0ZTohMX0pfXZhciBpbHI9dSgoKT0+e2oyZSgpO2koaWUsInIiKX0pO2Z1bmN0aW9uIEZMYSh0KXtyZXR1cm4oZSxyKT0+e2xldCBhPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6ZVtyXTtPYmplY3QuYXNzaWduKGEsdCl9fXZhciBzbHI9dSgoKT0+e2koRkxhLCJ0Iil9KTt2YXIgS2wsdnk9dSgoKT0+e0tsPWkoKHQsZSxyKT0+KHIuY29uZmlndXJhYmxlPSEwLHIuZW51bWVyYWJsZT0hMCxSZWZsZWN0LmRlY29yYXRlJiZ0eXBlb2YgZSE9Im9iamVjdCImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsciksciksImUiKX0pO2Z1bmN0aW9uIG5scih0LGUpe3JldHVybihyLGEscyk9PntsZXQgbj1pKG89Pm8ucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3Rvcih0KT8/bnVsbCwibyIpO2lmKGUpe2xldHtnZXQ6byxzZXQ6bH09dHlwZW9mIGE9PSJvYmplY3QiP3I6cz8/KCgpPT57bGV0IGM9U3ltYm9sKCk7cmV0dXJue2dldCgpe3JldHVybiB0aGlzW2NdfSxzZXQoZCl7dGhpc1tjXT1kfX19KSgpO3JldHVybiBLbChyLGEse2dldCgpe2xldCBjPW8uY2FsbCh0aGlzKTtyZXR1cm4gYz09PXZvaWQgMCYmKGM9bih0aGlzKSwoYyE9PW51bGx8fHRoaXMuaGFzVXBkYXRlZCkmJmwuY2FsbCh0aGlzLGMpKSxjfX0pfXJldHVybiBLbChyLGEse2dldCgpe3JldHVybiBuKHRoaXMpfX0pfX12YXIgb2xyPXUoKCk9Pnt2eSgpO2kobmxyLCJlIil9KTtmdW5jdGlvbiBsbHIodCl7cmV0dXJuKGUscik9PktsKGUscix7Z2V0KCl7cmV0dXJuKHRoaXMucmVuZGVyUm9vdD8/KEJMYT8/PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkpLnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSl9dmFyIEJMYSxjbHI9dSgoKT0+e3Z5KCk7aShsbHIsInIiKX0pO2Z1bmN0aW9uIGRscih0KXtyZXR1cm4oZSxyKT0+S2woZSxyLHthc3luYyBnZXQoKXtyZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IodCk/P251bGx9fSl9dmFyIHVscj11KCgpPT57dnkoKTtpKGRsciwiciIpfSk7ZnVuY3Rpb24gSExhKHQpe3JldHVybihlLHIpPT57bGV0e3Nsb3Q6YSxzZWxlY3RvcjpzfT10Pz97fSxuPSJzbG90IisoYT9gW25hbWU9JHthfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gS2woZSxyLHtnZXQoKXtsZXQgbz10aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IobiksbD1vPy5hc3NpZ25lZEVsZW1lbnRzKHQpPz9bXTtyZXR1cm4gcz09PXZvaWQgMD9sOmwuZmlsdGVyKGM9PmMubWF0Y2hlcyhzKSl9fSl9fXZhciBwbHI9dSgoKT0+e3Z5KCk7aShITGEsIm8iKX0pO2Z1bmN0aW9uIHFMYSh0KXtyZXR1cm4oZSxyKT0+e2xldHtzbG90OmF9PXQ/P3t9LHM9InNsb3QiKyhhP2BbbmFtZT0ke2F9XWA6Ijpub3QoW25hbWVdKSIpO3JldHVybiBLbChlLHIse2dldCgpe3JldHVybiB0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3Iocyk/LmFzc2lnbmVkTm9kZXModCk/P1tdfX0pfX12YXIgZmxyPXUoKCk9Pnt2eSgpO2kocUxhLCJuIil9KTt2YXIgaGxyPXUoKCk9PnttQWUoKTtqMmUoKTtpbHIoKTtzbHIoKTtvbHIoKTtjbHIoKTt1bHIoKTtwbHIoKTtmbHIoKX0pO3ZhciBtbHIsejNlLHllLGdscj11KCgpPT57cEFlKCk7UmwoKTttbHI9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHozZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0seWU9KCgpPT57bGV0IHQ9X3AuTGl0RWxlbWVudCxlLHI9W10sYT1bXSxzLG49W10sbz1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e3N0YXRpY3tpKHRoaXMsIkRlZXNFbGVtZW50Iil9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHRbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9W19wLnByb3BlcnR5KHt0eXBlOkJvb2xlYW59KV0scz1bX3AucHJvcGVydHkoKV0sbWxyKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ29CcmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZD0+ImdvQnJpZ2h0ImluIGQsImhhcyIpLGdldDppKGQ9PmQuZ29CcmlnaHQsImdldCIpLHNldDppKChkLGYpPT57ZC5nb0JyaWdodD1mfSwic2V0Iil9LG1ldGFkYXRhOmN9LHIsYSksbWxyKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9tdG9vbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZD0+ImRvbXRvb2xzImluIGQsImhhcyIpLGdldDppKGQ9PmQuZG9tdG9vbHMsImdldCIpLHNldDppKChkLGYpPT57ZC5kb210b29scz1mfSwic2V0Iil9LG1ldGFkYXRhOmN9LG4sbyksYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGdldENvbnRhaW5lck5hbWUoKXtyZXR1cm4gdGhpcy5pc3x8dGhpcy5uYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX1zdGF0aWMgY3NzRm9yQ29uc3RyYWludChjKXtyZXR1cm4gZD0+WHQuYnJlYWtwb2ludHMuY3NzRm9yQ29uc3RyYWludENvbnRhaW5lcihjLHRoaXMuZ2V0Q29udGFpbmVyTmFtZSgpKShkKX0jZT16M2UodGhpcyxyLCExKTtnZXQgZ29CcmlnaHQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZ29CcmlnaHQoYyl7dGhpcy4jZT1jfWRvbXRvb2xzUHJvbWlzZT16M2UodGhpcyxhKTsjdD16M2UodGhpcyxuLHZvaWQgMCk7Z2V0IGRvbXRvb2xzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRvbXRvb2xzKGMpe3RoaXMuI3Q9Y31yeFN1YnNjcmlwdGlvbnM9KHozZSh0aGlzLG8pLFtdKTt0aGVtZVN1YnNjcmlwdGlvbjtlbGVtZW50RG9tUmVhZHlEZWZlcnJlZD1YdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO2VsZW1lbnREb21SZWFkeT10aGlzLmVsZW1lbnREb21SZWFkeURlZmVycmVkLnByb21pc2U7Y29uc3RydWN0b3IoYz17fSl7c3VwZXIoKSx0aGlzLmRvbXRvb2xzUHJvbWlzZT1YdC5lbGVtZW50QmFzaWMuc2V0dXAodGhpcyxjKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGQ9Pnt0aGlzLmRvbXRvb2xzPWR9KX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7bGV0IGM9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy50aGVtZVN1YnNjcmlwdGlvbj1jLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGQ9Pnt0aGlzLmdvQnJpZ2h0PWQsdGhpcy50aGVtZUNoYW5nZWQmJnRoaXMudGhlbWVDaGFuZ2VkKGQpfSksdGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnRoZW1lU3Vic2NyaXB0aW9uKTtmb3IobGV0IGQgb2YgdGhpcy5zdGFydHVwRnVuY3Rpb25zKWF3YWl0IGQoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudENvbm5lY3RlZCIpKX1maXJzdFVwZGF0ZWQoYyl7c3VwZXIuZmlyc3RVcGRhdGVkKGMpLHRoaXMuZWxlbWVudERvbVJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfXN0YXJ0dXBGdW5jdGlvbnM9W107cmVnaXN0ZXJTdGFydHVwRnVuY3Rpb24oYyl7dGhpcy5zdGFydHVwRnVuY3Rpb25zLnB1c2goYyl9Z2FyYmFnZUZ1bmN0aW9ucz1bXTtyZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihjKXt0aGlzLmdhcmJhZ2VGdW5jdGlvbnMucHVzaChjKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7Zm9yKGxldCBjIG9mIHRoaXMucnhTdWJzY3JpcHRpb25zKWMudW5zdWJzY3JpYmUoKTtmb3IobGV0IGMgb2YgdGhpcy5nYXJiYWdlRnVuY3Rpb25zKWF3YWl0IGMoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudERpc2Nvbm5lY3RlZCIpKX19fSkoKX0pO2Z1bmN0aW9uIGdBZSgpe3JldHVybiBmdW5jdGlvbih0KXtsZXQgZT10LmlzfHx0Lm5hbWUucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywiJDEtJDIiKS50b0xvd2VyQ2FzZSgpLHI9dC5uYW1lP1ZMYSh0Lm5hbWUpOm51bGw7aWYociYmciE9PWUpe2xldCBuPWkobD0+bCYmbC5jc3NUZXh0JiZsLmNzc1RleHQuaW5jbHVkZXMoYEBjb250YWluZXIgJHtyfWApP0dyKGwuY3NzVGV4dC5yZXBsYWNlQWxsKGBAY29udGFpbmVyICR7cn1gLGBAY29udGFpbmVyICR7ZX1gKSk6bCwiZml4U3R5bGUiKSxvPXQuc3R5bGVzO0FycmF5LmlzQXJyYXkobyk/dC5zdHlsZXM9by5tYXAobik6byYmKHQuc3R5bGVzPW4obykpfWxldCBhPU1pLmNvbnRhaW5lckNvbnRleHRTdHlsZXMoZSkscz10LnN0eWxlcztyZXR1cm4gQXJyYXkuaXNBcnJheShzKT90LnN0eWxlcz1bLi4ucyxhXTpzP3Quc3R5bGVzPVtzLGFdOnQuc3R5bGVzPVthXSx0fX12YXIgVkxhLGJscj11KCgpPT57UmwoKTtNcigpO1ZMYT1pKHQ9PnQucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywiJDEtJDIiKS50b0xvd2VyQ2FzZSgpLCJjYW1lbFRvS2ViYWIiKTtpKGdBZSwiY29udGFpbmVyUmVzcG9uc2l2ZSIpfSk7dmFyIGpMYSx4bHIsYkFlLFVMYSxXTGEsR0xhLFlMYSxLTGEseEFlLHZscixONCxpYyxaTGEsZF8sdkFlLHVfLHlBZSx5eT11KCgpPT57VjIoKTsoe0k6akxhfT1Xa2UpLHhscj1pKHQ9PnQsImkiKSxiQWU9aSh0PT50PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIiwibiIpLFVMYT17SFRNTDoxLFNWRzoyLE1BVEhNTDozfSxXTGE9aSgodCxlKT0+ZT09PXZvaWQgMD90Py5fJGxpdFR5cGUkIT09dm9pZCAwOnQ/Ll8kbGl0VHlwZSQ9PT1lLCJsIiksR0xhPWkodD0+dD8uXyRsaXRUeXBlJD8uaCE9bnVsbCwiZCIpLFlMYT1pKHQ9PnQ/Ll8kbGl0RGlyZWN0aXZlJCE9PXZvaWQgMCwiYyIpLEtMYT1pKHQ9PnQ/Ll8kbGl0RGlyZWN0aXZlJCwiZiIpLHhBZT1pKHQ9PnQuc3RyaW5ncz09PXZvaWQgMCwiciIpLHZscj1pKCgpPT5kb2N1bWVudC5jcmVhdGVDb21tZW50KCIiKSwicyIpLE40PWkoKHQsZSxyKT0+e2xldCBhPXQuXyRBQS5wYXJlbnROb2RlLHM9ZT09PXZvaWQgMD90Ll8kQUI6ZS5fJEFBO2lmKHI9PT12b2lkIDApe2xldCBuPWEuaW5zZXJ0QmVmb3JlKHZscigpLHMpLG89YS5pbnNlcnRCZWZvcmUodmxyKCkscyk7cj1uZXcgakxhKG4sbyx0LHQub3B0aW9ucyl9ZWxzZXtsZXQgbj1yLl8kQUIubmV4dFNpYmxpbmcsbz1yLl8kQU0sbD1vIT09dDtpZihsKXtsZXQgYztyLl8kQVE/Lih0KSxyLl8kQU09dCxyLl8kQVAhPT12b2lkIDAmJihjPXQuXyRBVSkhPT1vLl8kQVUmJnIuXyRBUChjKX1pZihuIT09c3x8bCl7bGV0IGM9ci5fJEFBO2Zvcig7YyE9PW47KXtsZXQgZD14bHIoYykubmV4dFNpYmxpbmc7eGxyKGEpLmluc2VydEJlZm9yZShjLHMpLGM9ZH19fXJldHVybiByfSwidiIpLGljPWkoKHQsZSxyPXQpPT4odC5fJEFJKGUsciksdCksInUiKSxaTGE9e30sZF89aSgodCxlPVpMYSk9PnQuXyRBSD1lLCJwIiksdkFlPWkodD0+dC5fJEFILCJNIiksdV89aSh0PT57dC5fJEFSKCksdC5fJEFBLnJlbW92ZSgpfSwiaCIpLHlBZT1pKHQ9Pnt0Ll8kQVIoKX0sImoiKX0pO2Z1bmN0aW9uIFFMYSh0KXt0aGlzLl8kQU4hPT12b2lkIDA/KF8zZSh0aGlzKSx0aGlzLl8kQU09dCx5bHIodGhpcykpOnRoaXMuXyRBTT10fWZ1bmN0aW9uIFhMYSh0LGU9ITEscj0wKXtsZXQgYT10aGlzLl8kQUgscz10aGlzLl8kQU47aWYocyE9PXZvaWQgMCYmcy5zaXplIT09MClpZihlKWlmKEFycmF5LmlzQXJyYXkoYSkpZm9yKGxldCBuPXI7bjxhLmxlbmd0aDtuKyspcF8oYVtuXSwhMSksXzNlKGFbbl0pO2Vsc2UgYSE9bnVsbCYmKHBfKGEsITEpLF8zZShhKSk7ZWxzZSBwXyh0aGlzLHQpfXZhciBwXyxfM2UseWxyLEpMYSxpbCxUM2U9dSgoKT0+e3l5KCk7UDQoKTtQNCgpO3BfPWkoKHQsZSk9PntsZXQgcj10Ll8kQU47aWYocj09PXZvaWQgMClyZXR1cm4hMTtmb3IobGV0IGEgb2YgcilhLl8kQU8/LihlLCExKSxwXyhhLGUpO3JldHVybiEwfSwicyIpLF8zZT1pKHQ9PntsZXQgZSxyO2Rve2lmKChlPXQuXyRBTSk9PT12b2lkIDApYnJlYWs7cj1lLl8kQU4sci5kZWxldGUodCksdD1lfXdoaWxlKHI/LnNpemU9PT0wKX0sIm8iKSx5bHI9aSh0PT57Zm9yKGxldCBlO2U9dC5fJEFNO3Q9ZSl7bGV0IHI9ZS5fJEFOO2lmKHI9PT12b2lkIDApZS5fJEFOPXI9bmV3IFNldDtlbHNlIGlmKHIuaGFzKHQpKWJyZWFrO3IuYWRkKHQpLEpMYShlKX19LCJyIik7aShRTGEsImgiKTtpKFhMYSwibiIpO0pMYT1pKHQ9Pnt0LnR5cGU9PXRkLkNISUxEJiYodC5fJEFQPz89WExhLHQuXyRBUT8/PVFMYSl9LCJjIiksaWw9Y2xhc3MgZXh0ZW5kcyBZbHtzdGF0aWN7aSh0aGlzLCJmIil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRBTj12b2lkIDB9XyRBVChlLHIsYSl7c3VwZXIuXyRBVChlLHIsYSkseWxyKHRoaXMpLHRoaXMuaXNDb25uZWN0ZWQ9ZS5fJEFVfV8kQU8oZSxyPSEwKXtlIT09dGhpcy5pc0Nvbm5lY3RlZCYmKHRoaXMuaXNDb25uZWN0ZWQ9ZSxlP3RoaXMucmVjb25uZWN0ZWQ/LigpOnRoaXMuZGlzY29ubmVjdGVkPy4oKSksciYmKHBfKHRoaXMsZSksXzNlKHRoaXMpKX1zZXRWYWx1ZShlKXtpZih4QWUodGhpcy5fJEN0KSl0aGlzLl8kQ3QuXyRBSShlLHRoaXMpO2Vsc2V7bGV0IHI9Wy4uLnRoaXMuXyRDdC5fJEFIXTtyW3RoaXMuXyRDaV09ZSx0aGlzLl8kQ3QuXyRBSShyLHRoaXMsMCl9fWRpc2Nvbm5lY3RlZCgpe31yZWNvbm5lY3RlZCgpe319fSk7dmFyIEwzZT11KCgpPT57VDNlKCl9KTt2YXIgd0FlLHdscixlRGEsa2xyPXUoKCk9PntSbCgpO0wzZSgpO3dBZT1jbGFzcyBleHRlbmRzIGlse3N0YXRpY3tpKHRoaXMsIlJlc29sdmVEaXJlY3RpdmUiKX1wcm9taXNlO2hhc1Byb21pc2VTZXR0bGVkPSExO3JlbmRlcihlKXtyZXR1cm4gdGhpcy5wcm9taXNlIT09ZSYmKHRoaXMucHJvbWlzZT1lLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuaGFuZGxlUHJvbWlzZShlKSksb2l9aGFuZGxlUHJvbWlzZShlKXt0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSExLGUudGhlbihyPT57dGhpcy5wcm9taXNlPT09ZSYmIXRoaXMuaGFzUHJvbWlzZVNldHRsZWQmJih0aGlzLnNldFZhbHVlKHIpLHRoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITApfSkuY2F0Y2gocj0+e3RoaXMucHJvbWlzZT09PWUmJiF0aGlzLmhhc1Byb21pc2VTZXR0bGVkJiYodGhpcy5zZXRWYWx1ZShyKSx0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITB9cmVjb25uZWN0ZWQoKXt0aGlzLmhhc1Byb21pc2VTZXR0bGVkfHx0aGlzLmhhbmRsZVByb21pc2UodGhpcy5wcm9taXNlKX19LHdscj16cyh3QWUpLGVEYT1pKHQ9Pndscih0KCkpLCJyZXNvbHZlRXhlYyIpfSk7dmFyIGtBZSx0RGEsU2xyPXUoKCk9PntSbCgpO0wzZSgpO2I0KCk7a0FlPWNsYXNzIGV4dGVuZHMgaWx7c3RhdGlje2kodGhpcywiU3Vic2NyaWJlRGlyZWN0aXZlIil9b2JzZXJ2YWJsZTtzdWI9bnVsbDtyZW5kZXIoZSl7cmV0dXJuIHRoaXMub2JzZXJ2YWJsZSE9PWUmJih0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKSx0aGlzLm9ic2VydmFibGU9ZSx0aGlzLmlzQ29ubmVjdGVkJiZ0aGlzLnN1YnNjcmliZShlKSksb2l9c3Vic2NyaWJlKGUpe3RoaXMuc3ViPWUuc3Vic2NyaWJlKHI9Pnt0aGlzLnNldFZhbHVlKHIpfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5zdWI/LnVuc3Vic2NyaWJlKCl9cmVjb25uZWN0ZWQoKXt0aGlzLnN1YnNjcmliZSh0aGlzLm9ic2VydmFibGUpfX0sdERhPXpzKGtBZSl9KTt2YXIgU0FlLE1scixDbHI9dSgoKT0+e1JsKCk7TDNlKCk7YjQoKTtTQWU9Y2xhc3MgZXh0ZW5kcyBpbHtzdGF0aWN7aSh0aGlzLCJTdWJzY3JpYmVXaXRoVGVtcGxhdGVEaXJlY3RpdmUiKX1vYnNlcnZhYmxlO3RlbXBsYXRlRm47c3ViPW51bGw7cmVuZGVyKGUscil7cmV0dXJuKHRoaXMub2JzZXJ2YWJsZSE9PWV8fHRoaXMudGVtcGxhdGVGbiE9PXIpJiYodGhpcy5zdWI/LnVuc3Vic2NyaWJlKCksdGhpcy5vYnNlcnZhYmxlPWUsdGhpcy50ZW1wbGF0ZUZuPXIsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5zdGFydFN1YnNjcmlwdGlvbigpKSxvaX1zdGFydFN1YnNjcmlwdGlvbigpe3RoaXMuc3ViPXRoaXMub2JzZXJ2YWJsZS5zdWJzY3JpYmUoZT0+e2xldCByPXRoaXMudGVtcGxhdGVGbihlKTt0aGlzLnNldFZhbHVlKHIpfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5zdWI/LnVuc3Vic2NyaWJlKCl9cmVjb25uZWN0ZWQoKXt0aGlzLnN0YXJ0U3Vic2NyaXB0aW9uKCl9fSxNbHI9enMoU0FlKX0pO3ZhciBNQWUsdG0scm0sQ0FlPXUoKCk9PntNQWU9aShhc3luYyh0LGUpPT57Zm9yIGF3YWl0KGxldCByIG9mIHQpaWYoYXdhaXQgZShyKT09PSExKXJldHVybn0sInQiKSx0bT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJzIil9Y29uc3RydWN0b3IoZSl7dGhpcy5HPWV9ZGlzY29ubmVjdCgpe3RoaXMuRz12b2lkIDB9cmVjb25uZWN0KGUpe3RoaXMuRz1lfWRlcmVmKCl7cmV0dXJuIHRoaXMuR319LHJtPWNsYXNze3N0YXRpY3tpKHRoaXMsImkiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuWT12b2lkIDAsdGhpcy5aPXZvaWQgMH1nZXQoKXtyZXR1cm4gdGhpcy5ZfXBhdXNlKCl7dGhpcy5ZPz89bmV3IFByb21pc2UoZT0+dGhpcy5aPWUpfXJlc3VtZSgpe3RoaXMuWj8uKCksdGhpcy5ZPXRoaXMuWj12b2lkIDB9fX0pO3ZhciB6bHIsX2xyLEQzZSx6QWUsVGxyPXUoKCk9PntWMigpO3l5KCk7VDNlKCk7Q0FlKCk7UDQoKTt6bHI9aSh0PT4hYkFlKHQpJiZ0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24iLCJuIiksX2xyPTEwNzM3NDE4MjMsRDNlPWNsYXNzIGV4dGVuZHMgaWx7c3RhdGlje2kodGhpcywiYyIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQ3d0PV9scix0aGlzLl8kQ2J0PVtdLHRoaXMuXyRDSz1uZXcgdG0odGhpcyksdGhpcy5fJENYPW5ldyBybX1yZW5kZXIoLi4uZSl7cmV0dXJuIGUuZmluZChyPT4hemxyKHIpKT8/b2l9dXBkYXRlKGUscil7bGV0IGE9dGhpcy5fJENidCxzPWEubGVuZ3RoO3RoaXMuXyRDYnQ9cjtsZXQgbj10aGlzLl8kQ0ssbz10aGlzLl8kQ1g7dGhpcy5pc0Nvbm5lY3RlZHx8dGhpcy5kaXNjb25uZWN0ZWQoKTtmb3IobGV0IGw9MDtsPHIubGVuZ3RoJiYhKGw+dGhpcy5fJEN3dCk7bCsrKXtsZXQgYz1yW2xdO2lmKCF6bHIoYykpcmV0dXJuIHRoaXMuXyRDd3Q9bCxjO2w8cyYmYz09PWFbbF18fCh0aGlzLl8kQ3d0PV9scixzPTAsUHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4oYXN5bmMgZD0+e2Zvcig7by5nZXQoKTspYXdhaXQgby5nZXQoKTtsZXQgZj1uLmRlcmVmKCk7aWYoZiE9PXZvaWQgMCl7bGV0IHA9Zi5fJENidC5pbmRleE9mKGMpO3A+LTEmJnA8Zi5fJEN3dCYmKGYuXyRDd3Q9cCxmLnNldFZhbHVlKGQpKX19KSl9cmV0dXJuIG9pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuXyRDSy5kaXNjb25uZWN0KCksdGhpcy5fJENYLnBhdXNlKCl9cmVjb25uZWN0ZWQoKXt0aGlzLl8kQ0sucmVjb25uZWN0KHRoaXMpLHRoaXMuXyRDWC5yZXN1bWUoKX19LHpBZT16cyhEM2UpfSk7dmFyIExscj11KCgpPT57VGxyKCl9KTt2YXIgd3ksckRhLERscj11KCgpPT57VjIoKTtUM2UoKTtDQWUoKTtQNCgpO3d5PWNsYXNzIGV4dGVuZHMgaWx7c3RhdGlje2kodGhpcywibyIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQ0s9bmV3IHRtKHRoaXMpLHRoaXMuXyRDWD1uZXcgcm19cmVuZGVyKGUscil7cmV0dXJuIG9pfXVwZGF0ZShlLFtyLGFdKXtpZih0aGlzLmlzQ29ubmVjdGVkfHx0aGlzLmRpc2Nvbm5lY3RlZCgpLHI9PT10aGlzLl8kQ0opcmV0dXJuIG9pO3RoaXMuXyRDSj1yO2xldCBzPTAse18kQ0s6bixfJENYOm99PXRoaXM7cmV0dXJuIE1BZShyLGFzeW5jIGw9Pntmb3IoO28uZ2V0KCk7KWF3YWl0IG8uZ2V0KCk7bGV0IGM9bi5kZXJlZigpO2lmKGMhPT12b2lkIDApe2lmKGMuXyRDSiE9PXIpcmV0dXJuITE7YSE9PXZvaWQgMCYmKGw9YShsLHMpKSxjLmNvbW1pdFZhbHVlKGwscykscysrfXJldHVybiEwfSksb2l9Y29tbWl0VmFsdWUoZSxyKXt0aGlzLnNldFZhbHVlKGUpfWRpc2Nvbm5lY3RlZCgpe3RoaXMuXyRDSy5kaXNjb25uZWN0KCksdGhpcy5fJENYLnBhdXNlKCl9cmVjb25uZWN0ZWQoKXt0aGlzLl8kQ0sucmVjb25uZWN0KHRoaXMpLHRoaXMuXyRDWC5yZXN1bWUoKX19LHJEYT16cyh3eSl9KTt2YXIgX0FlLCRscj11KCgpPT57UDQoKTtEbHIoKTt5eSgpO19BZT16cyhjbGFzcyBleHRlbmRzIHd5e2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKHQpLHQudHlwZSE9PXRkLkNISUxEKXRocm93IEVycm9yKCJhc3luY0FwcGVuZCBjYW4gb25seSBiZSB1c2VkIGluIGNoaWxkIGV4cHJlc3Npb25zIil9dXBkYXRlKHQsZSl7cmV0dXJuIHRoaXMuXyRDdHQ9dCxzdXBlci51cGRhdGUodCxlKX1jb21taXRWYWx1ZSh0LGUpe2U9PT0wJiZ5QWUodGhpcy5fJEN0dCk7bGV0IHI9TjQodGhpcy5fJEN0dCk7aWMocix0KX19KX0pO3ZhciBBbHI9dSgoKT0+eyRscigpfSk7dmFyIFRBZSxFbHI9dSgoKT0+e1YyKCk7UDQoKTt5eSgpO1RBZT16cyhjbGFzcyBleHRlbmRzIFlse2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmtleT13aX1yZW5kZXIodCxlKXtyZXR1cm4gdGhpcy5rZXk9dCxlfXVwZGF0ZSh0LFtlLHJdKXtyZXR1cm4gZSE9PXRoaXMua2V5JiYoZF8odCksdGhpcy5rZXk9ZSkscn19KX0pO3ZhciBJbHI9dSgoKT0+e0VscigpfSk7dmFyIFBscixMQWUsTmxyPXUoKCk9PntWMigpO1A0KCk7eXkoKTtQbHI9aSgodCxlLHIpPT57bGV0IGE9bmV3IE1hcDtmb3IobGV0IHM9ZTtzPD1yO3MrKylhLnNldCh0W3NdLHMpO3JldHVybiBhfSwidSIpLExBZT16cyhjbGFzcyBleHRlbmRzIFlse2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKHQpLHQudHlwZSE9PXRkLkNISUxEKXRocm93IEVycm9yKCJyZXBlYXQoKSBjYW4gb25seSBiZSB1c2VkIGluIHRleHQgZXhwcmVzc2lvbnMiKX1kdCh0LGUscil7bGV0IGE7cj09PXZvaWQgMD9yPWU6ZSE9PXZvaWQgMCYmKGE9ZSk7bGV0IHM9W10sbj1bXSxvPTA7Zm9yKGxldCBsIG9mIHQpc1tvXT1hP2EobCxvKTpvLG5bb109cihsLG8pLG8rKztyZXR1cm57dmFsdWVzOm4sa2V5czpzfX1yZW5kZXIodCxlLHIpe3JldHVybiB0aGlzLmR0KHQsZSxyKS52YWx1ZXN9dXBkYXRlKHQsW2UscixhXSl7bGV0IHM9dkFlKHQpLHt2YWx1ZXM6bixrZXlzOm99PXRoaXMuZHQoZSxyLGEpO2lmKCFBcnJheS5pc0FycmF5KHMpKXJldHVybiB0aGlzLnV0PW8sbjtsZXQgbD10aGlzLnV0Pz89W10sYz1bXSxkLGYscD0wLGg9cy5sZW5ndGgtMSxtPTAsdj1uLmxlbmd0aC0xO2Zvcig7cDw9aCYmbTw9djspaWYoc1twXT09PW51bGwpcCsrO2Vsc2UgaWYoc1toXT09PW51bGwpaC0tO2Vsc2UgaWYobFtwXT09PW9bbV0pY1ttXT1pYyhzW3BdLG5bbV0pLHArKyxtKys7ZWxzZSBpZihsW2hdPT09b1t2XSljW3ZdPWljKHNbaF0sblt2XSksaC0tLHYtLTtlbHNlIGlmKGxbcF09PT1vW3ZdKWNbdl09aWMoc1twXSxuW3ZdKSxONCh0LGNbdisxXSxzW3BdKSxwKyssdi0tO2Vsc2UgaWYobFtoXT09PW9bbV0pY1ttXT1pYyhzW2hdLG5bbV0pLE40KHQsc1twXSxzW2hdKSxoLS0sbSsrO2Vsc2UgaWYoZD09PXZvaWQgMCYmKGQ9UGxyKG8sbSx2KSxmPVBscihsLHAsaCkpLGQuaGFzKGxbcF0pKWlmKGQuaGFzKGxbaF0pKXtsZXQgYj1mLmdldChvW21dKSxnPWIhPT12b2lkIDA/c1tiXTpudWxsO2lmKGc9PT1udWxsKXtsZXQgeT1ONCh0LHNbcF0pO2ljKHksblttXSksY1ttXT15fWVsc2UgY1ttXT1pYyhnLG5bbV0pLE40KHQsc1twXSxnKSxzW2JdPW51bGw7bSsrfWVsc2UgdV8oc1toXSksaC0tO2Vsc2UgdV8oc1twXSkscCsrO2Zvcig7bTw9djspe2xldCBiPU40KHQsY1t2KzFdKTtpYyhiLG5bbV0pLGNbbSsrXT1ifWZvcig7cDw9aDspe2xldCBiPXNbcCsrXTtiIT09bnVsbCYmdV8oYil9cmV0dXJuIHRoaXMudXQ9byxkXyh0LGMpLG9pfX0pfSk7dmFyIE9scj11KCgpPT57TmxyKCl9KTt2YXIgWmw9e307VmUoWmwse2FzeW5jQXBwZW5kOigpPT5fQWUsa2V5ZWQ6KCk9PlRBZSxyZXBlYXQ6KCk9PkxBZSxyZXNvbHZlOigpPT53bHIscmVzb2x2ZUV4ZWM6KCk9PmVEYSxzdWJzY3JpYmU6KCk9PnREYSxzdWJzY3JpYmVXaXRoVGVtcGxhdGU6KCk9Pk1scix1bnRpbDooKT0+ekFlfSk7dmFyIFJscj11KCgpPT57a2xyKCk7U2xyKCk7Q2xyKCk7TGxyKCk7QWxyKCk7SWxyKCk7T2xyKCl9KTt2YXIgeCx2ZT11KCgpPT57SzFyKCk7UmwoKTtKMXIoKTt0bHIoKTthbHIoKTtobHIoKTtNcigpO2dscigpO2JscigpO1JscigpO3g9UzNlLmdldFNpbmdsZXRvbigpfSk7dmFyIHNsLFZpLGppLE5lLGx0PXUoKCk9Pnt2ZSgpO3NsPXtjb2xvcnM6e2xpZ2h0OntiZ1ByaW1hcnk6ImhzbCgwIDAlIDEwMCUpIixiZ1NlY29uZGFyeToiaHNsKDAgMCUgOTglKSIsYmdUZXJ0aWFyeToiaHNsKDAgMCUgOTYlKSIsdGV4dFByaW1hcnk6ImhzbCgwIDAlIDMuOSUpIix0ZXh0U2Vjb25kYXJ5OiJoc2woMCAwJSAyMCUpIix0ZXh0TXV0ZWQ6ImhzbCgwIDAlIDQ1JSkiLHRleHRXYXJtOiIjNzg3MTZjIixib3JkZXJEZWZhdWx0OiJoc2woMCAwJSA4OS44JSkiLGJvcmRlclN1YnRsZToiaHNsKDAgMCUgOTMlKSIsYm9yZGVyU3Ryb25nOiJoc2woMCAwJSA4MCUpIixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCIsYmFkZ2VEZWZhdWx0Qmc6IiNmNGY0ZjUiLGJhZGdlRGVmYXVsdEZnOiIjM2YzZjQ2IixiYWRnZVN1Y2Nlc3NCZzoiI2RjZmNlNyIsYmFkZ2VTdWNjZXNzRmc6IiMxNjY1MzQiLGJhZGdlV2FybmluZ0JnOiIjZmVmM2M3IixiYWRnZVdhcm5pbmdGZzoiIzkyNDAwZSIsYmFkZ2VFcnJvckJnOiIjZmVlMmUyIixiYWRnZUVycm9yRmc6IiM5OTFiMWIifSxkYXJrOntiZ1ByaW1hcnk6ImhzbCgwIDAlIDMuOSUpIixiZ1NlY29uZGFyeToiaHNsKDAgMCUgMy45JSkiLGJnVGVydGlhcnk6ImhzbCgwIDAlIDclKSIsdGV4dFByaW1hcnk6ImhzbCgwIDAlIDk4JSkiLHRleHRTZWNvbmRhcnk6ImhzbCgwIDAlIDYzLjklKSIsdGV4dE11dGVkOiJoc2woMCAwJSA1NSUpIix0ZXh0V2FybToiI2I1YTk5YSIsYm9yZGVyRGVmYXVsdDoiaHNsKDAgMCUgMTQuOSUpIixib3JkZXJTdWJ0bGU6ImhzbCgwIDAlIDExJSkiLGJvcmRlclN0cm9uZzoiaHNsKDAgMCUgMjAlKSIsYWNjZW50UHJpbWFyeToiIzNiODJmNiIsYWNjZW50U3VjY2VzczoiIzIyYzU1ZSIsYWNjZW50V2FybmluZzoiI2Y1OWUwYiIsYWNjZW50RXJyb3I6IiNlZjQ0NDQiLGJhZGdlRGVmYXVsdEJnOiIjMjcyNzJhIixiYWRnZURlZmF1bHRGZzoiI2ExYTFhYSIsYmFkZ2VTdWNjZXNzQmc6IiMxNDUzMmQiLGJhZGdlU3VjY2Vzc0ZnOiIjNGFkZTgwIixiYWRnZVdhcm5pbmdCZzoiIzQ1MWEwMyIsYmFkZ2VXYXJuaW5nRmc6IiNmYmJmMjQiLGJhZGdlRXJyb3JCZzoiIzQ1MGEwYSIsYmFkZ2VFcnJvckZnOiIjZjg3MTcxIn19LHNwYWNpbmc6e3hzOiI0cHgiLHNtOiI4cHgiLG1kOiIxMnB4IixsZzoiMTZweCIseGw6IjI0cHgiLCIyeGwiOiIzMnB4IiwiM3hsIjoiNDhweCJ9LHJhZGl1czp7eHM6IjJweCIsc206IjRweCIsbWQ6IjZweCIsbGc6IjhweCIseGw6IjEycHgiLGZ1bGw6Ijk5OXB4In0sc2hhZG93czp7eHM6IjAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpIixzbToiMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSIsbWQ6IjAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpIixsZzoiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIn0sdHJhbnNpdGlvbnM6e2Zhc3Q6IjAuMXMiLGRlZmF1bHQ6IjAuMTVzIixzbG93OiIwLjJzIixzbG93ZXI6IjAuM3MifSxjb250cm9sSGVpZ2h0czp7c206IjMycHgiLG1kOiIzNnB4IixsZzoiNDBweCIseGw6IjQ4cHgifX0sVmk9c2wuY29sb3JzLmxpZ2h0LGppPXNsLmNvbG9ycy5kYXJrLE5lPXJlYAogIDpob3N0IHsKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQmFja2dyb3VuZCAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWJnLXByaW1hcnk6ICR7eC5iZFRoZW1lKFZpLmJnUHJpbWFyeSxqaS5iZ1ByaW1hcnkpfTsKICAgIC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnk6ICR7eC5iZFRoZW1lKFZpLmJnU2Vjb25kYXJ5LGppLmJnU2Vjb25kYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItYmctdGVydGlhcnk6ICR7eC5iZFRoZW1lKFZpLmJnVGVydGlhcnksamkuYmdUZXJ0aWFyeSl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgVGV4dCAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeTogJHt4LmJkVGhlbWUoVmkudGV4dFByaW1hcnksamkudGV4dFByaW1hcnkpfTsKICAgIC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeTogJHt4LmJkVGhlbWUoVmkudGV4dFNlY29uZGFyeSxqaS50ZXh0U2Vjb25kYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItdGV4dC1tdXRlZDogJHt4LmJkVGhlbWUoVmkudGV4dE11dGVkLGppLnRleHRNdXRlZCl9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgQm9yZGVyIChmcm9tIHRoZW1lRGVmYXVsdHMpCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQ6ICR7eC5iZFRoZW1lKFZpLmJvcmRlckRlZmF1bHQsamkuYm9yZGVyRGVmYXVsdCl9OwogICAgLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGU6ICR7eC5iZFRoZW1lKFZpLmJvcmRlclN1YnRsZSxqaS5ib3JkZXJTdWJ0bGUpfTsKICAgIC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nOiAke3guYmRUaGVtZShWaS5ib3JkZXJTdHJvbmcsamkuYm9yZGVyU3Ryb25nKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBXYXJtIFRleHQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci10ZXh0LXdhcm06ICR7eC5iZFRoZW1lKFZpLnRleHRXYXJtLGppLnRleHRXYXJtKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBBY2NlbnQgKGZyb20gdGhlbWVEZWZhdWx0cykKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeTogJHt4LmJkVGhlbWUoVmkuYWNjZW50UHJpbWFyeSxqaS5hY2NlbnRQcmltYXJ5KX07CiAgICAtLWRlZXMtY29sb3ItYWNjZW50LXN1Y2Nlc3M6ICR7eC5iZFRoZW1lKFZpLmFjY2VudFN1Y2Nlc3MsamkuYWNjZW50U3VjY2Vzcyl9OwogICAgLS1kZWVzLWNvbG9yLWFjY2VudC13YXJuaW5nOiAke3guYmRUaGVtZShWaS5hY2NlbnRXYXJuaW5nLGppLmFjY2VudFdhcm5pbmcpfTsKICAgIC0tZGVlcy1jb2xvci1hY2NlbnQtZXJyb3I6ICR7eC5iZFRoZW1lKFZpLmFjY2VudEVycm9yLGppLmFjY2VudEVycm9yKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBCYWRnZSAoZnJvbSB0aGVtZURlZmF1bHRzKQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtYmc6ICR7eC5iZFRoZW1lKFZpLmJhZGdlRGVmYXVsdEJnLGppLmJhZGdlRGVmYXVsdEJnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2UtZGVmYXVsdC1mZzogJHt4LmJkVGhlbWUoVmkuYmFkZ2VEZWZhdWx0RmcsamkuYmFkZ2VEZWZhdWx0RmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWJnOiAke3guYmRUaGVtZShWaS5iYWRnZVN1Y2Nlc3NCZyxqaS5iYWRnZVN1Y2Nlc3NCZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLXN1Y2Nlc3MtZmc6ICR7eC5iZFRoZW1lKFZpLmJhZGdlU3VjY2Vzc0ZnLGppLmJhZGdlU3VjY2Vzc0ZnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZzogJHt4LmJkVGhlbWUoVmkuYmFkZ2VXYXJuaW5nQmcsamkuYmFkZ2VXYXJuaW5nQmcpfTsKICAgIC0tZGVlcy1jb2xvci1iYWRnZS13YXJuaW5nLWZnOiAke3guYmRUaGVtZShWaS5iYWRnZVdhcm5pbmdGZyxqaS5iYWRnZVdhcm5pbmdGZyl9OwogICAgLS1kZWVzLWNvbG9yLWJhZGdlLWVycm9yLWJnOiAke3guYmRUaGVtZShWaS5iYWRnZUVycm9yQmcsamkuYmFkZ2VFcnJvckJnKX07CiAgICAtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmc6ICR7eC5iZFRoZW1lKFZpLmJhZGdlRXJyb3JGZyxqaS5iYWRnZUVycm9yRmcpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIEludGVyYWN0aXZlIFN0YXRlcwogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWhvdmVyOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAtLWRlZXMtY29sb3ItYWN0aXZlOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAtLWRlZXMtY29sb3ItcHJlc3NlZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpIil9OwogICAgLS1kZWVzLWNvbG9yLXJvdy1ob3ZlcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMDYpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBGb2N1cyBSaW5nCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItZm9jdXMtcmluZzogJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuNCkiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBUb29sdGlwIChpbnZlcnRlZCBjb250cmFzdCkKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb2xvci10b29sdGlwLWJnOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAtLWRlZXMtY29sb3ItdG9vbHRpcC1mZzogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgTGluawogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLWxpbms6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgIC0tZGVlcy1jb2xvci1saW5rLWhvdmVyOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM5M2JiZmQiKX07CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29sb3JzIOKAlCBDb2RlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3ItY29kZS1iZzogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAtLWRlZXMtY29sb3ItY29kZS1ibG9jay1iZzogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbG9ycyDigJQgU2VsZWN0aW9uCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29sb3Itc2VsZWN0aW9uOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb2xvcnMg4oCUIFNjcm9sbGJhcgogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYjogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIil9OwogICAgLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3ZlcjogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4yNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIil9OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIFNwYWNpbmcgU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1zcGFjaW5nLXhzOiA0cHg7CiAgICAtLWRlZXMtc3BhY2luZy1zbTogOHB4OwogICAgLS1kZWVzLXNwYWNpbmctbWQ6IDEycHg7CiAgICAtLWRlZXMtc3BhY2luZy1sZzogMTZweDsKICAgIC0tZGVlcy1zcGFjaW5nLXhsOiAyNHB4OwogICAgLS1kZWVzLXNwYWNpbmctMnhsOiAzMnB4OwogICAgLS1kZWVzLXNwYWNpbmctM3hsOiA0OHB4OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIEJvcmRlciBSYWRpdXMgU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1yYWRpdXMteHM6IDJweDsKICAgIC0tZGVlcy1yYWRpdXMtc206IDRweDsKICAgIC0tZGVlcy1yYWRpdXMtbWQ6IDZweDsKICAgIC0tZGVlcy1yYWRpdXMtbGc6IDhweDsKICAgIC0tZGVlcy1yYWRpdXMteGw6IDEycHg7CiAgICAtLWRlZXMtcmFkaXVzLWZ1bGw6IDk5OXB4OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIFNoYWRvdyBFbGV2YXRpb24gU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1zaGFkb3cteHM6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpOwogICAgLS1kZWVzLXNoYWRvdy1zbTogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgIC0tZGVlcy1zaGFkb3ctbWQ6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgLS1kZWVzLXNoYWRvdy1sZzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIFRyYW5zaXRpb24gRHVyYXRpb24gU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy10cmFuc2l0aW9uLWZhc3Q6IDAuMXM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1kZWZhdWx0OiAwLjE1czsKICAgIC0tZGVlcy10cmFuc2l0aW9uLXNsb3c6IDAuMnM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1zbG93ZXI6IDAuM3M7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29udHJvbCBIZWlnaHQgU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC1zbTogMzJweDsKICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC1tZDogMzZweDsKICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC1sZzogNDBweDsKICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC14bDogNDhweDsKICB9CmB9KTt2YXIgRmxyPXUoKCk9Pnt9KTt2YXIgREFlPXUoKCk9PntzYygpO3NjKCl9KTt2YXIgQmxyPXUoKCk9Pnt9KTt2YXIgSGxyPXUoKCk9Pnt9KTt2YXIgcWxyPXUoKCk9Pnt9KTt2YXIgVmxyPXUoKCk9Pnt9KTt2YXIgJEFlPXt9O3ZhciBBQWU9dSgoKT0+e0JscigpO0hscigpO3FscigpO1ZscigpfSk7dmFyIGpscj11KCgpPT57QUFlKCk7JDNlKCl9KTt2YXIgVWxyPXUoKCk9PntzYygpfSk7dmFyIFdscj11KCgpPT57fSk7dmFyIEdscj11KCgpPT57c2MoKX0pO3ZhciBZbHI9dSgoKT0+e3NjKCl9KTt2YXIgS2xyPXUoKCk9Pnt9KTt2YXIgWmxyPXUoKCk9Pnt9KTt2YXIgUWxyPXUoKCk9Pnt9KTt2YXIgRUFlPXt9O3ZhciBBM2U9dSgoKT0+e1VscigpO1dscigpO0dscigpO1lscigpO0tscigpO1pscigpO1FscigpfSk7dmFyIFhscj11KCgpPT57QTNlKCk7REFlKCl9KTt2YXIgSmxyPXUoKCk9PnskM2UoKTtBM2UoKX0pO3ZhciBlMnI9dSgoKT0+e30pO3ZhciB0MnI9dSgoKT0+e30pO3ZhciBJQWU9e307dmFyICQzZT11KCgpPT57RmxyKCk7REFlKCk7amxyKCk7WGxyKCk7SmxyKCk7ZTJyKCk7dDJyKCl9KTt2YXIgcjJyPXUoKCk9Pnt9KTt2YXIgYTJyPXUoKCk9Pnt9KTt2YXIgUEFlPXt9O3ZhciBpMnI9dSgoKT0+e3IycigpO2EycigpfSk7dmFyIHMycj11KCgpPT57fSk7dmFyIG4ycj11KCgpPT57fSk7dmFyIE5BZT17fTt2YXIgbzJyPXUoKCk9PntzMnIoKTtuMnIoKX0pO3ZhciBPQWU9e307dmFyIGwycj11KCgpPT57fSk7dmFyIFJBZT11KCgpPT57c2MoKX0pO3ZhciBjMnI9dSgoKT0+e3NjKCl9KTt2YXIgZDJyPXUoKCk9PntSQWUoKX0pO3ZhciBGQWU9e307dmFyIHUycj11KCgpPT57UkFlKCk7YzJyKCk7ZDJyKCl9KTt2YXIgcDJyPXUoKCk9Pnt9KTt2YXIgZjJyPXUoKCk9Pnt9KTt2YXIgQkFlPXt9O3ZhciBoMnI9dSgoKT0+e3AycigpO2YycigpfSk7dmFyIEhBZT11KCgpPT57fSk7dmFyIHFBZSxtMnI9dSgoKT0+e0hBZSgpO3FBZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJJQ25hbWVEZXNjcmlwdG9yIil9fX0pO3ZhciBnMnI9dSgoKT0+e30pO3ZhciBiMnI9dSgoKT0+e30pO3ZhciB4MnI9dSgoKT0+e30pO3ZhciB2MnI9dSgoKT0+e30pO3ZhciB5MnI9dSgoKT0+e30pO3ZhciB3MnI9dSgoKT0+e30pO3ZhciBrMnI9dSgoKT0+e30pO3ZhciBTMnI9dSgoKT0+e30pO3ZhciBNMnI9dSgoKT0+e30pO3ZhciBDMnI9dSgoKT0+e30pO3ZhciBFM2U9e307VmUoRTNlLHtJQ25hbWVEZXNjcmlwdG9yOigpPT5xQWV9KTt2YXIgejJyPXUoKCk9PntIQWUoKTttMnIoKTtnMnIoKTtiMnIoKTt4MnIoKTt2MnIoKTt5MnIoKTt3MnIoKTtrMnIoKTtTMnIoKTtNMnIoKTtDMnIoKX0pO3ZhciBWQWU9dSgoKT0+e30pO3ZhciBfMnI9dSgoKT0+e1ZBZSgpfSk7dmFyIGpBZT17fTt2YXIgVDJyPXUoKCk9PntfMnIoKTtWQWUoKX0pO3ZhciBVQWU9e307dmFyIEwycj11KCgpPT57fSk7dmFyIEQycj11KCgpPT57fSk7dmFyICQycj11KCgpPT57fSk7dmFyIEEycj11KCgpPT57fSk7dmFyIFdBZT17fTt2YXIgRTJyPXUoKCk9PntEMnIoKTskMnIoKTtBMnIoKX0pO3ZhciBJMnI9dSgoKT0+e30pO3ZhciBHQWU9e307VmUoR0FlLHtidXNpbmVzczooKT0+SUFlLGNvZGU6KCk9PlBBZSxjb250YWluZXI6KCk9Pk5BZSxjb250ZW50OigpPT5GQWUsZGF0YWJhc2U6KCk9PiRBZSxkZXNjcmlwdG9yczooKT0+T0FlLGZpbmFuY2U6KCk9PkVBZSxnZW5lcmFsOigpPT5CQWUsbmV0d29yazooKT0+RTNlLHNhYXM6KCk9PmpBZSxzdG9yYWdlOigpPT5VQWUsd2Vic2l0ZTooKT0+V0FlfSk7dmFyIHNjPXUoKCk9PnskM2UoKTtpMnIoKTtvMnIoKTtBQWUoKTtsMnIoKTtBM2UoKTt1MnIoKTtoMnIoKTt6MnIoKTtUMnIoKTtMMnIoKTtFMnIoKTtJMnIoKX0pO3ZhciB2bj11KCgpPT57SzEoKTtzYygpfSk7dmFyIFAycixOMnI9dSgoKT0+e3ZlKCk7dm4oKTtzcygpO1Aycj1pKCgpPT53YAo8c3R5bGU+CiAgLndpdGhNYXJnaW4gewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW46IDIwcHg7CiAgfQogIC5kZW1vLWNvbnRhaW5lciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMjBweDsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBtaW4taGVpZ2h0OiA0MDBweDsKICB9CiAgLmRlbW8tYXJlYSB7CiAgICBwYWRkaW5nOiA0MHB4OwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgfQogIC5kZW1vLWFyZWE6aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAyKTsKICB9Cjwvc3R5bGU+CjxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJCYXNpYyBDb250ZXh0IE1lbnUgd2l0aCBOZXN0ZWQgU3VibWVudXMiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHt0PT57Q3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxbe25hbWU6IkZpbGUiLGljb25OYW1lOiJmaWxlVGV4dCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXciLGljb25OYW1lOiJmaWxlUGx1cyIsc2hvcnRjdXQ6IkNtZCtOIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiTmV3IGZpbGUiKSwiYWN0aW9uIil9LHtuYW1lOiJPcGVuIixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtPIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBmaWxlIiksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSIsaWNvbk5hbWU6InNhdmUiLHNob3J0Y3V0OiJDbWQrUyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhwb3J0IGFzIFBERiIsaWNvbk5hbWU6ImRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRXhwb3J0IFBERiIpLCJhY3Rpb24iKX0se25hbWU6IkV4cG9ydCBhcyBIVE1MIixpY29uTmFtZToiY29kZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkV4cG9ydCBIVE1MIiksImFjdGlvbiIpfV19LHtuYW1lOiJFZGl0IixpY29uTmFtZToiZWRpdDMiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiQ3V0IixpY29uTmFtZToic2Npc3NvcnMiLHNob3J0Y3V0OiJDbWQrWCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkN1dCIpLCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixzaG9ydGN1dDoiQ21kK0MiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb3B5IiksImFjdGlvbiIpfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlBhc3RlIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZpbmQiLGljb25OYW1lOiJzZWFyY2giLHNob3J0Y3V0OiJDbWQrRiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkZpbmQiKSwiYWN0aW9uIil9LHtuYW1lOiJSZXBsYWNlIixpY29uTmFtZToicmVwZWF0IixzaG9ydGN1dDoiQ21kK0giLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBsYWNlIiksImFjdGlvbiIpfV19LHtuYW1lOiJWaWV3IixpY29uTmFtZToiZXllIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ilpvb20gSW4iLGljb25OYW1lOiJ6b29tSW4iLHNob3J0Y3V0OiJDbWQrKyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKSwiYWN0aW9uIil9LHtuYW1lOiJab29tIE91dCIsaWNvbk5hbWU6Inpvb21PdXQiLHNob3J0Y3V0OiJDbWQrLSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gb3V0IiksImFjdGlvbiIpfSx7bmFtZToiUmVzZXQgWm9vbSIsaWNvbk5hbWU6Im1heGltaXplMiIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVzZXQgem9vbSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGdWxsIFNjcmVlbiIsaWNvbk5hbWU6Im1heGltaXplIixzaG9ydGN1dDoiRjExIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRnVsbCBzY3JlZW4iKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKSwiYWN0aW9uIil9LHtuYW1lOiJIZWxwIixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixpY29uTmFtZToiYm9vayIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKSwiYWN0aW9uIil9LHtuYW1lOiJLZXlib2FyZCBTaG9ydGN1dHMiLGljb25OYW1lOiJrZXlib2FyZCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpLCJhY3Rpb24iKX1dfV0pfX0+CiAgICAgIDxoMz5SaWdodC1jbGljayBhbnl3aGVyZSBpbiB0aGlzIGFyZWE8L2gzPgogICAgICA8cD5BIGNvbnRleHQgbWVudSB3aXRoIG5lc3RlZCBzdWJtZW51cyB3aWxsIGFwcGVhcjwvcD4KICAgIDwvZGl2PgogIDwvZGVlcy1wYW5lbD4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJDb21wb25lbnQtU3BlY2lmaWMgQ29udGV4dCBNZW51Ij4KICAgIDxkZWVzLWJ1dHRvbiBzdHlsZT0ibWFyZ2luOiAyMHB4OyIgQGNvbnRleHRtZW51PSR7dD0+e0NyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHQsW3tuYW1lOiJCdXR0b24gQWN0aW9ucyIsaWNvbk5hbWU6Im1vdXNlUG9pbnRlciIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJDbGljayIsaWNvbk5hbWU6Im1vdXNlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ2xpY2sgYWN0aW9uIiksImFjdGlvbiIpfSx7bmFtZToiRG91YmxlIENsaWNrIixpY29uTmFtZToiemFwIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRG91YmxlIGNsaWNrIiksImFjdGlvbiIpfSx7bmFtZToiTG9uZyBQcmVzcyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiTG9uZyBwcmVzcyIpLCJhY3Rpb24iKX1dfSx7bmFtZToiQnV0dG9uIFN0YXRlIixpY29uTmFtZToidG9nZ2xlTGVmdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJFbmFibGUiLGljb25OYW1lOiJjaGVja0NpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkVuYWJsZSIpLCJhY3Rpb24iKX0se25hbWU6IkRpc2FibGUiLGljb25OYW1lOiJ4Q2lyY2xlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRGlzYWJsZSIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaG93IixpY29uTmFtZToiZXllIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2hvdyIpLCJhY3Rpb24iKX0se25hbWU6IkhpZGUiLGljb25OYW1lOiJleWVPZmYiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJIaWRlIiksImFjdGlvbiIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiRGlzYWJsZWQgQWN0aW9uIixpY29uTmFtZToiYmFuIixkaXNhYmxlZDohMCxhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVGhpcyBzaG91bGQgbm90IHJ1biIpLCJhY3Rpb24iKX0se25hbWU6IlByb3BlcnRpZXMiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkJ1dHRvbiBwcm9wZXJ0aWVzIiksImFjdGlvbiIpfV0pfX0+UmlnaHQtY2xpY2sgb24gdGhpcyBidXR0b248L2RlZXMtYnV0dG9uPgogIDwvZGVlcy1wYW5lbD4KCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iQWR2YW5jZWQgQ29udGV4dCBNZW51IEV4YW1wbGUiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHt0PT57Q3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxbe25hbWU6IkZvcm1hdCIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiQm9sZCIsaWNvbk5hbWU6ImJvbGQiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkJvbGQiKSwiYWN0aW9uIil9LHtuYW1lOiJJdGFsaWMiLGljb25OYW1lOiJpdGFsaWMiLHNob3J0Y3V0OiJDbWQrSSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkl0YWxpYyIpLCJhY3Rpb24iKX0se25hbWU6IlVuZGVybGluZSIsaWNvbk5hbWU6InVuZGVybGluZSIsc2hvcnRjdXQ6IkNtZCtVIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVW5kZXJsaW5lIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZvbnQgU2l6ZSIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJGb250IHNpemUgbWVudSIpLCJhY3Rpb24iKX0se25hbWU6IkZvbnQgQ29sb3IiLGljb25OYW1lOiJwYWxldHRlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRm9udCBjb2xvciBtZW51IiksImFjdGlvbiIpfV19LHtuYW1lOiJUcmFuc2Zvcm0iLGljb25OYW1lOiJzaHVmZmxlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlRvIFVwcGVyY2FzZSIsaWNvbk5hbWU6ImFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJVcHBlcmNhc2UiKSwiYWN0aW9uIil9LHtuYW1lOiJUbyBMb3dlcmNhc2UiLGljb25OYW1lOiJhcnJvd0Rvd24iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJMb3dlcmNhc2UiKSwiYWN0aW9uIil9LHtuYW1lOiJDYXBpdGFsaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNhcGl0YWxpemUiKSwiYWN0aW9uIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEZWxldGUiKSwiYWN0aW9uIil9XSl9fT4KICAgICAgPGgzPkFkdmFuY2VkIE5lc3RlZCBNZW51IEV4YW1wbGU8L2gzPgogICAgICA8cD5UaGlzIHNob3dzIGRlZXBseSBuZXN0ZWQgc3VibWVudXMgYW5kIHZhcmlvdXMgZm9ybWF0dGluZyBvcHRpb25zPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIAogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IlN0YXRpYyBDb250ZXh0IE1lbnUgKEFsd2F5cyBWaXNpYmxlKSI+CiAgICA8ZGVlcy1jb250ZXh0bWVudQogICAgICBjbGFzcz0id2l0aE1hcmdpbiIKICAgICAgLm1lbnVJdGVtcz0ke1t7bmFtZToiUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlciIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXcgUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLHNob3J0Y3V0OiJDbWQrU2hpZnQrTiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBwcm9qZWN0IiksImFjdGlvbiIpfSx7bmFtZToiT3BlbiBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtPIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBwcm9qZWN0IiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlY2VudCBQcm9qZWN0cyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlByb2plY3QgQWxwaGEiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEFscGhhIiksImFjdGlvbiIpfSx7bmFtZToiUHJvamVjdCBCZXRhIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBCZXRhIiksImFjdGlvbiIpfSx7bmFtZToiUHJvamVjdCBHYW1tYSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gR2FtbWEiKSwiYWN0aW9uIil9XX1dfSx7bmFtZToiVG9vbHMiLGljb25OYW1lOiJ0b29sIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlRlcm1pbmFsIixpY29uTmFtZToidGVybWluYWwiLHNob3J0Y3V0OiJDbWQrVCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlRlcm1pbmFsIiksImFjdGlvbiIpfSx7bmFtZToiQ29uc29sZSIsaWNvbk5hbWU6Im1vbml0b3IiLHNob3J0Y3V0OiJDbWQrSyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkNvbnNvbGUiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXh0ZW5zaW9ucyIsaWNvbk5hbWU6InBhY2thZ2UiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHRlbnNpb25zIiksImFjdGlvbiIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJzbGlkZXJzIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUHJlZmVyZW5jZXMiKSwiYWN0aW9uIil9XX0KICAgID48L2RlZXMtY29udGV4dG1lbnU+CiAgPC9kZWVzLXBhbmVsPgo8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBmXyxPNCx5bixuYz11KCgpPT57dmUoKTtPbygpO2ZfPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxPND1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0seW49KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXdpbmRvd2xheWVyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXaW5kb3dMYXllciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHA9W2llKCldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxmXyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+Im9wdGlvbnMiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5vcHRpb25zLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00ub3B0aW9ucz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksZl8odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYWNrZHJvcFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iYmFja2Ryb3BaSW5kZXgiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5iYWNrZHJvcFpJbmRleCwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmJhY2tkcm9wWkluZGV4PU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxmXyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImNvbnRlbnRaSW5kZXgiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5jb250ZW50WkluZGV4LCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uY29udGVudFpJbmRleD1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGgsbSksZl8odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJ2aXNpYmxlImluIE0sImhhcyIpLGdldDppKE09Pk0udmlzaWJsZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnZpc2libGU9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLGZfKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwscikseT1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89aSgoKT0+d2A8ZGVlcy13aW5kb3dsYXllcj48L2RlZXMtd2luZG93bGF5ZXI+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiT3ZlcmxheSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KGspe2xldCBNPVh0LkRvbVRvb2xzLmdldEdsb2JhbERvbVRvb2xzU3luYygpLE49bmV3IHk7cmV0dXJuIE4ub3B0aW9ucz17Li4uTi5vcHRpb25zLC4uLmt9LGRvY3VtZW50LmJvZHkuYXBwZW5kKE4pLGF3YWl0IE0uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSxOLnNob3coKSxOfSNlPU80KHRoaXMsbyx7Ymx1cjohMX0pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoayl7dGhpcy4jZT1rfSN0PShPNCh0aGlzLGwpLE80KHRoaXMsZCwxZTMpKTtnZXQgYmFja2Ryb3BaSW5kZXgoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYmFja2Ryb3BaSW5kZXgoayl7dGhpcy4jdD1rfSNyPShPNCh0aGlzLGYpLE80KHRoaXMsaCwxMDAxKSk7Z2V0IGNvbnRlbnRaSW5kZXgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY29udGVudFpJbmRleChrKXt0aGlzLiNyPWt9I2E9KE80KHRoaXMsbSksTzQodGhpcyxiLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmlzaWJsZShrKXt0aGlzLiNhPWt9Y29uc3RydWN0b3IoKXtzdXBlcigpLE80KHRoaXMsZyksWHQuZWxlbWVudEJhc2ljLnNldHVwKCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7WHQuZWxlbWVudEJhc2ljLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgIC53aW5kb3dPdmVybGF5IHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogMHB4OwogICAgICAgICAgbGVmdDogMHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMCk7CiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMSkgJHt0aGlzLm9wdGlvbnMuYmx1cj8iYmx1cigwcHgpIjoiIn07CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5iYWNrZHJvcFpJbmRleH07CiAgICAgICAgfQogICAgICAgIC5zbG90Q29udGVudCB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5jb250ZW50WkluZGV4fTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2xvdENvbnRlbnQgPiAqIHsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudmlzaWJsZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7CiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMC45KSAke3RoaXMub3B0aW9ucy5ibHVyPyJibHVyKDJweCkiOiIifTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IEBjbGljaz0ke3RoaXMuZGlzcGF0Y2hDbGlja2VkfSBjbGFzcz0id2luZG93T3ZlcmxheSAke3RoaXMudmlzaWJsZT8idmlzaWJsZSI6bnVsbH0iPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2xvdENvbnRlbnQiPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLnZpc2libGU9ITB9LDEwMCl9ZGlzcGF0Y2hDbGlja2VkKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2tlZCIpKX10b2dnbGVWaXNpYmlsaXR5KCl7dGhpcy52aXNpYmxlPSF0aGlzLnZpc2libGV9Z2V0Q29udGVudFpJbmRleCgpe3JldHVybiB0aGlzLmNvbnRlbnRaSW5kZXh9YXN5bmMgc2hvdygpe2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuYmFja2Ryb3BaSW5kZXg9eXIuZ2V0TmV4dFpJbmRleCgpLHRoaXMuY29udGVudFpJbmRleD15ci5nZXROZXh0WkluZGV4KCkseXIucmVnaXN0ZXIodGhpcyx0aGlzLmJhY2tkcm9wWkluZGV4KSxhd2FpdCBrLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy52aXNpYmxlPSEwfWFzeW5jIGhpZGUoKXthd2FpdChhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITF9YXN5bmMgZGVzdHJveSgpe2xldCBrPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2F3YWl0IHRoaXMuaGlkZSgpLGF3YWl0IGsuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLHlyLnVucmVnaXN0ZXIodGhpcyksdGhpcy5yZW1vdmUoKX1zdGF0aWN7TzQoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7ZnVuY3Rpb24gWUFlKHQsZSl7KGU9PW51bGx8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciByPTAsYT1BcnJheShlKTtyPGU7cisrKWFbcl09dFtyXTtyZXR1cm4gYX1mdW5jdGlvbiBpRGEodCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdH1mdW5jdGlvbiBzRGEodCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gWUFlKHQpfWZ1bmN0aW9uIG5EYSh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIE8ycih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgYT1lW3JdO2EuZW51bWVyYWJsZT1hLmVudW1lcmFibGV8fCExLGEuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBhJiYoYS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsRjJyKGEua2V5KSxhKX19ZnVuY3Rpb24gb0RhKHQsZSxyKXtyZXR1cm4gZSYmTzJyKHQucHJvdG90eXBlLGUpLHImJk8ycih0LHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHR9ZnVuY3Rpb24gSTNlKHQsZSl7dmFyIHI9dHlwZW9mIFN5bWJvbDwidSImJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKCFyKXtpZihBcnJheS5pc0FycmF5KHQpfHwocj1LQWUodCkpfHxlJiZ0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiKXtyJiYodD1yKTt2YXIgYT0wLHM9aShmdW5jdGlvbigpe30sIkYiKTtyZXR1cm57cyxuOmkoZnVuY3Rpb24oKXtyZXR1cm4gYT49dC5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOnRbYSsrXX19LCJuIiksZTppKGZ1bmN0aW9uKGMpe3Rocm93IGN9LCJlIiksZjpzfX10aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX12YXIgbixvPSEwLGw9ITE7cmV0dXJue3M6aShmdW5jdGlvbigpe3I9ci5jYWxsKHQpfSwicyIpLG46aShmdW5jdGlvbigpe3ZhciBjPXIubmV4dCgpO3JldHVybiBvPWMuZG9uZSxjfSwibiIpLGU6aShmdW5jdGlvbihjKXtsPSEwLG49Y30sImUiKSxmOmkoZnVuY3Rpb24oKXt0cnl7b3x8ci5yZXR1cm49PW51bGx8fHIucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IG59fSwiZiIpfX1mdW5jdGlvbiBtcih0LGUscil7cmV0dXJuKGU9RjJyKGUpKWluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09cix0fWZ1bmN0aW9uIGxEYSh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iJiZlIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZQM2UodCxlKX1mdW5jdGlvbiBjRGEodCl7aWYodHlwZW9mIFN5bWJvbDwidSImJnRbU3ltYm9sLml0ZXJhdG9yXSE9bnVsbHx8dFsiQEBpdGVyYXRvciJdIT1udWxsKXJldHVybiBBcnJheS5mcm9tKHQpfWZ1bmN0aW9uIGREYSh0LGUpe3ZhciByPXQ9PW51bGw/bnVsbDp0eXBlb2YgU3ltYm9sPCJ1IiYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYociE9bnVsbCl7dmFyIGEscyxuLG8sbD1bXSxjPSEwLGQ9ITE7dHJ5e2lmKG49KHI9ci5jYWxsKHQpKS5uZXh0LGU9PT0wKXtpZihPYmplY3QocikhPT1yKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KGE9bi5jYWxsKHIpKS5kb25lKSYmKGwucHVzaChhLnZhbHVlKSxsLmxlbmd0aCE9PWUpO2M9ITApO31jYXRjaChmKXtkPSEwLHM9Zn1maW5hbGx5e3RyeXtpZighYyYmci5yZXR1cm4hPW51bGwmJihvPXIucmV0dXJuKCksT2JqZWN0KG8pIT09bykpcmV0dXJufWZpbmFsbHl7aWYoZCl0aHJvdyBzfX1yZXR1cm4gbH19ZnVuY3Rpb24gdURhKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIHBEYSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gUjJyKHQsZSl7dmFyIHI9T2JqZWN0LmtleXModCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtlJiYoYT1hLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHMpLmVudW1lcmFibGV9KSksci5wdXNoLmFwcGx5KHIsYSl9cmV0dXJuIHJ9ZnVuY3Rpb24gc3QodCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIHI9YXJndW1lbnRzW2VdIT1udWxsP2FyZ3VtZW50c1tlXTp7fTtlJTI/UjJyKE9iamVjdChyKSwhMCkuZm9yRWFjaChmdW5jdGlvbihhKXttcih0LGEsclthXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKTpSMnIoT2JqZWN0KHIpKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGEsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGEpKX0pfXJldHVybiB0fWZ1bmN0aW9uIFAzZSh0LGUpe3JldHVybiBQM2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24ocixhKXtyZXR1cm4gci5fX3Byb3RvX189YSxyfSxQM2UodCxlKX1mdW5jdGlvbiBOM2UodCxlKXtyZXR1cm4gaURhKHQpfHxkRGEodCxlKXx8S0FlKHQsZSl8fHVEYSgpfWZ1bmN0aW9uIG9jKHQpe3JldHVybiBzRGEodCl8fGNEYSh0KXx8S0FlKHQpfHxwRGEoKX1mdW5jdGlvbiBmRGEodCxlKXtpZih0eXBlb2YgdCE9Im9iamVjdCJ8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihyIT09dm9pZCAwKXt2YXIgYT1yLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKHR5cGVvZiBhIT0ib2JqZWN0IilyZXR1cm4gYTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybihlPT09InN0cmluZyI/U3RyaW5nOk51bWJlcikodCl9ZnVuY3Rpb24gRjJyKHQpe3ZhciBlPWZEYSh0LCJzdHJpbmciKTtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiP2U6ZSsiIn1mdW5jdGlvbiBPM2UodCl7IkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjtyZXR1cm4gTzNlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxPM2UodCl9ZnVuY3Rpb24gS0FlKHQsZSl7aWYodCl7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXJldHVybiBZQWUodCxlKTt2YXIgcj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiByPT09Ik9iamVjdCImJnQuY29uc3RydWN0b3ImJihyPXQuY29uc3RydWN0b3IubmFtZSkscj09PSJNYXAifHxyPT09IlNldCI/QXJyYXkuZnJvbSh0KTpyPT09IkFyZ3VtZW50cyJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP1lBZSh0LGUpOnZvaWQgMH19ZnVuY3Rpb24geW8oKXt5bz1pKGZ1bmN0aW9uKHMsbil7cmV0dXJuIG5ldyByKHMsdm9pZCAwLG4pfSwiX3dyYXBSZWdFeHAiKTt2YXIgdD1SZWdFeHAucHJvdG90eXBlLGU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gcihzLG4sbyl7dmFyIGw9UmVnRXhwKHMsbik7cmV0dXJuIGUuc2V0KGwsb3x8ZS5nZXQocykpLFAzZShsLHIucHJvdG90eXBlKX1pKHIsIkJhYmVsUmVnRXhwIik7ZnVuY3Rpb24gYShzLG4pe3ZhciBvPWUuZ2V0KG4pO3JldHVybiBPYmplY3Qua2V5cyhvKS5yZWR1Y2UoZnVuY3Rpb24obCxjKXt2YXIgZD1vW2NdO2lmKHR5cGVvZiBkPT0ibnVtYmVyIilsW2NdPXNbZF07ZWxzZXtmb3IodmFyIGY9MDtzW2RbZl1dPT09dm9pZCAwJiZmKzE8ZC5sZW5ndGg7KWYrKztsW2NdPXNbZFtmXV19cmV0dXJuIGx9LE9iamVjdC5jcmVhdGUobnVsbCkpfXJldHVybiBpKGEsImJ1aWxkR3JvdXBzIiksbERhKHIsUmVnRXhwKSxyLnByb3RvdHlwZS5leGVjPWZ1bmN0aW9uKHMpe3ZhciBuPXQuZXhlYy5jYWxsKHRoaXMscyk7aWYobil7bi5ncm91cHM9YShuLHRoaXMpO3ZhciBvPW4uaW5kaWNlcztvJiYoby5ncm91cHM9YShvLHRoaXMpKX1yZXR1cm4gbn0sci5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdPWZ1bmN0aW9uKHMsbil7aWYodHlwZW9mIG49PSJzdHJpbmciKXt2YXIgbz1lLmdldCh0aGlzKTtyZXR1cm4gdFtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLHMsbi5yZXBsYWNlKC9cJDwoW14+XSspKD58JCkvZyxmdW5jdGlvbihjLGQsZil7aWYoZj09PSIiKXJldHVybiBjO3ZhciBwPW9bZF07cmV0dXJuIEFycmF5LmlzQXJyYXkocCk/IiQiK3Auam9pbigiJCIpOnR5cGVvZiBwPT0ibnVtYmVyIj8iJCIrcDoiIn0pKX1pZih0eXBlb2Ygbj09ImZ1bmN0aW9uIil7dmFyIGw9dGhpcztyZXR1cm4gdFtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLHMsZnVuY3Rpb24oKXt2YXIgYz1hcmd1bWVudHM7cmV0dXJuIHR5cGVvZiBjW2MubGVuZ3RoLTFdIT0ib2JqZWN0IiYmKGM9W10uc2xpY2UuY2FsbChjKSkucHVzaChhKGMsbCkpLG4uYXBwbHkodGhpcyxjKX0pfXJldHVybiB0W1N5bWJvbC5yZXBsYWNlXS5jYWxsKHRoaXMscyxuKX0seW8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG1fKHQpe3JldHVybiBuZXcgUHJveHkodCx7Z2V0OmkoZnVuY3Rpb24ocixhKXtyZXR1cm4gYSBpbiByP3JbYV06cltEbl19LCJnZXQiKX0pfWZ1bmN0aW9uIHRBYSh0KXt2YXIgZT1kaS5xdWVyeVNlbGVjdG9yKCJzY3JpcHRbIit0KyJdIik7aWYoZSlyZXR1cm4gZS5nZXRBdHRyaWJ1dGUodCl9ZnVuY3Rpb24gckFhKHQpe3JldHVybiB0PT09IiI/ITA6dD09PSJmYWxzZSI/ITE6dD09PSJ0cnVlIj8hMDp0fWZ1bmN0aW9uIGFBYSh0KXtyZXR1cm4gYl8ucHVzaCh0KSxmdW5jdGlvbigpe2JfLnNwbGljZShiXy5pbmRleE9mKHQpLDEpfX1mdW5jdGlvbiBpQWEodCl7aWYoISghdHx8IVI0KSl7dmFyIGU9ZGkuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtlLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvY3NzIiksZS5pbm5lckhUTUw9dDtmb3IodmFyIHI9ZGkuaGVhZC5jaGlsZE5vZGVzLGE9bnVsbCxzPXIubGVuZ3RoLTE7cz4tMTtzLS0pe3ZhciBuPXJbc10sbz0obi50YWdOYW1lfHwiIikudG9VcHBlckNhc2UoKTtbIlNUWUxFIiwiTElOSyJdLmluZGV4T2Yobyk+LTEmJihhPW4pfXJldHVybiBkaS5oZWFkLmluc2VydEJlZm9yZShlLGEpLHR9fWZ1bmN0aW9uIExjcigpe2Zvcih2YXIgdD0xMixlPSIiO3QtLSA+MDspZSs9c0FhW01hdGgucmFuZG9tKCkqNjJ8MF07cmV0dXJuIGV9ZnVuY3Rpb24gU3kodCl7Zm9yKHZhciBlPVtdLHI9KHR8fFtdKS5sZW5ndGg+Pj4wO3ItLTspZVtyXT10W3JdO3JldHVybiBlfWZ1bmN0aW9uIGNFZSh0KXtyZXR1cm4gdC5jbGFzc0xpc3Q/U3kodC5jbGFzc0xpc3QpOih0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpLnNwbGl0KCIgIikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlfSl9ZnVuY3Rpb24gRGNyKHQpe3JldHVybiIiLmNvbmNhdCh0KS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiYjMzk7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7Iil9ZnVuY3Rpb24gbkFhKHQpe3JldHVybiBPYmplY3Qua2V5cyh0fHx7fSkucmVkdWNlKGZ1bmN0aW9uKGUscil7cmV0dXJuIGUrIiIuY29uY2F0KHIsJz0iJykuY29uY2F0KERjcih0W3JdKSwnIiAnKX0sIiIpLnRyaW0oKX1mdW5jdGlvbiBCM2UodCl7cmV0dXJuIE9iamVjdC5rZXlzKHR8fHt9KS5yZWR1Y2UoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZSsiIi5jb25jYXQociwiOiAiKS5jb25jYXQodFtyXS50cmltKCksIjsiKX0sIiIpfWZ1bmN0aW9uIGRFZSh0KXtyZXR1cm4gdC5zaXplIT09cmQuc2l6ZXx8dC54IT09cmQueHx8dC55IT09cmQueXx8dC5yb3RhdGUhPT1yZC5yb3RhdGV8fHQuZmxpcFh8fHQuZmxpcFl9ZnVuY3Rpb24gb0FhKHQpe3ZhciBlPXQudHJhbnNmb3JtLHI9dC5jb250YWluZXJXaWR0aCxhPXQuaWNvbldpZHRoLHM9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KHIvMiwiIDI1NikiKX0sbj0idHJhbnNsYXRlKCIuY29uY2F0KGUueCozMiwiLCAiKS5jb25jYXQoZS55KjMyLCIpICIpLG89InNjYWxlKCIuY29uY2F0KGUuc2l6ZS8xNiooZS5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQoZS5zaXplLzE2KihlLmZsaXBZPy0xOjEpLCIpICIpLGw9InJvdGF0ZSgiLmNvbmNhdChlLnJvdGF0ZSwiIDAgMCkiKSxjPXt0cmFuc2Zvcm06IiIuY29uY2F0KG4sIiAiKS5jb25jYXQobywiICIpLmNvbmNhdChsKX0sZD17dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoYS8yKi0xLCIgLTI1NikiKX07cmV0dXJue291dGVyOnMsaW5uZXI6YyxwYXRoOmR9fWZ1bmN0aW9uIGxBYSh0KXt2YXIgZT10LnRyYW5zZm9ybSxyPXQud2lkdGgsYT1yPT09dm9pZCAwP2VFZTpyLHM9dC5oZWlnaHQsbj1zPT09dm9pZCAwP2VFZTpzLG89dC5zdGFydENlbnRlcmVkLGw9bz09PXZvaWQgMD8hMTpvLGM9IiI7cmV0dXJuIGwmJkcycj9jKz0idHJhbnNsYXRlKCIuY29uY2F0KGUueC9EcC1hLzIsImVtLCAiKS5jb25jYXQoZS55L0RwLW4vMiwiZW0pICIpOmw/Yys9InRyYW5zbGF0ZShjYWxjKC01MCUgKyAiLmNvbmNhdChlLngvRHAsImVtKSwgY2FsYygtNTAlICsgIikuY29uY2F0KGUueS9EcCwiZW0pKSAiKTpjKz0idHJhbnNsYXRlKCIuY29uY2F0KGUueC9EcCwiZW0sICIpLmNvbmNhdChlLnkvRHAsImVtKSAiKSxjKz0ic2NhbGUoIi5jb25jYXQoZS5zaXplL0RwKihlLmZsaXBYPy0xOjEpLCIsICIpLmNvbmNhdChlLnNpemUvRHAqKGUuZmxpcFk/LTE6MSksIikgIiksYys9InJvdGF0ZSgiLmNvbmNhdChlLnJvdGF0ZSwiZGVnKSAiKSxjfWZ1bmN0aW9uICRjcigpe3ZhciB0PXZjcixlPXljcixyPXF0LmNzc1ByZWZpeCxhPXF0LnJlcGxhY2VtZW50Q2xhc3Mscz1jQWE7aWYociE9PXR8fGEhPT1lKXt2YXIgbj1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdCh0LCJcXC0iKSwiZyIpLG89bmV3IFJlZ0V4cCgiXFwtLSIuY29uY2F0KHQsIlxcLSIpLCJnIiksbD1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdChlKSwiZyIpO3M9cy5yZXBsYWNlKG4sIi4iLmNvbmNhdChyLCItIikpLnJlcGxhY2UobywiLS0iLmNvbmNhdChyLCItIikpLnJlcGxhY2UobCwiLiIuY29uY2F0KGEpKX1yZXR1cm4gc31mdW5jdGlvbiB1RWUoKXtxdC5hdXRvQWRkQ3NzJiYhQWNyJiYoaUFhKCRjcigpKSxBY3I9ITApfWZ1bmN0aW9uIHVBYSh0KXtSNCYmKEgzZT9zZXRUaW1lb3V0KHQsMCk6RWNyLnB1c2godCkpfWZ1bmN0aW9uIHhfKHQpe3ZhciBlPXQudGFnLHI9dC5hdHRyaWJ1dGVzLGE9cj09PXZvaWQgMD97fTpyLHM9dC5jaGlsZHJlbixuPXM9PT12b2lkIDA/W106cztyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP0Rjcih0KToiPCIuY29uY2F0KGUsIiAiKS5jb25jYXQobkFhKGEpLCI+IikuY29uY2F0KG4ubWFwKHhfKS5qb2luKCIiKSwiPC8iKS5jb25jYXQoZSwiPiIpfWZ1bmN0aW9uIFBjcih0LGUscil7aWYodCYmdFtlXSYmdFtlXVtyXSlyZXR1cm57cHJlZml4OmUsaWNvbk5hbWU6cixpY29uOnRbZV1bcl19fWZ1bmN0aW9uIE5jcih0KXtyZXR1cm4gb2ModCkubGVuZ3RoIT09MT9udWxsOnQuY29kZVBvaW50QXQoMCkudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIE9jcih0KXtyZXR1cm4gT2JqZWN0LmtleXModCkucmVkdWNlKGZ1bmN0aW9uKGUscil7dmFyIGE9dFtyXSxzPSEhYS5pY29uO3JldHVybiBzP2VbYS5pY29uTmFtZV09YS5pY29uOmVbcl09YSxlfSx7fSl9ZnVuY3Rpb24gZkVlKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOnt9LGE9ci5za2lwSG9va3Mscz1hPT09dm9pZCAwPyExOmEsbj1PY3IoZSk7dHlwZW9mIGxjLmhvb2tzLmFkZFBhY2s9PSJmdW5jdGlvbiImJiFzP2xjLmhvb2tzLmFkZFBhY2sodCxPY3IoZSkpOmxjLnN0eWxlc1t0XT1zdChzdCh7fSxsYy5zdHlsZXNbdF18fHt9KSxuKSx0PT09ImZhcyImJmZFZSgiZmEiLGUpfWZ1bmN0aW9uIG1BYSh0KXtyZXR1cm5+ZUFhLmluZGV4T2YodCl9ZnVuY3Rpb24gZ0FhKHQsZSl7dmFyIHI9ZS5zcGxpdCgiLSIpLGE9clswXSxzPXIuc2xpY2UoMSkuam9pbigiLSIpO3JldHVybiBhPT09dCYmcyE9PSIiJiYhbUFhKHMpP3M6bnVsbH1mdW5jdGlvbiBnRWUodCxlKXtyZXR1cm4oRmNyW3RdfHx7fSlbZV19ZnVuY3Rpb24gYkFhKHQsZSl7cmV0dXJuKEJjclt0XXx8e30pW2VdfWZ1bmN0aW9uIGltKHQsZSl7cmV0dXJuKFZjclt0XXx8e30pW2VdfWZ1bmN0aW9uIFVjcih0KXtyZXR1cm4gSGNyW3RdfHx7cHJlZml4Om51bGwsaWNvbk5hbWU6bnVsbH19ZnVuY3Rpb24geEFhKHQpe3ZhciBlPXFjclt0XSxyPWdFZSgiZmFzIix0KTtyZXR1cm4gZXx8KHI/e3ByZWZpeDoiZmFzIixpY29uTmFtZTpyfTpudWxsKXx8e3ByZWZpeDpudWxsLGljb25OYW1lOm51bGx9fWZ1bmN0aW9uICRwKCl7cmV0dXJuIG1FZX1mdW5jdGlvbiB2QWEodCl7dmFyIGU9RG4scj1SY3IucmVkdWNlKGZ1bmN0aW9uKGEscyl7cmV0dXJuIGFbc109IiIuY29uY2F0KHF0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChzKSxhfSx7fSk7cmV0dXJuIGZjci5mb3JFYWNoKGZ1bmN0aW9uKGEpeyh0LmluY2x1ZGVzKHJbYV0pfHx0LnNvbWUoZnVuY3Rpb24ocyl7cmV0dXJuIGhBYVthXS5pbmNsdWRlcyhzKX0pKSYmKGU9YSl9KSxlfWZ1bmN0aW9uIHEzZSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj1lLmZhbWlseSxhPXI9PT12b2lkIDA/RG46cixzPUskYVthXVt0XTtpZihhPT09aF8mJiF0KXJldHVybiJmYWQiO3ZhciBuPUNjclthXVt0XXx8Q2NyW2FdW3NdLG89dCBpbiBsYy5zdHlsZXM/dDpudWxsLGw9bnx8b3x8bnVsbDtyZXR1cm4gbH1mdW5jdGlvbiB5QWEodCl7dmFyIGU9W10scj1udWxsO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIHM9Z0FhKHF0LmNzc1ByZWZpeCxhKTtzP3I9czphJiZlLnB1c2goYSl9KSx7aWNvbk5hbWU6cixyZXN0OmV9fWZ1bmN0aW9uIEdjcih0KXtyZXR1cm4gdC5zb3J0KCkuZmlsdGVyKGZ1bmN0aW9uKGUscixhKXtyZXR1cm4gYS5pbmRleE9mKGUpPT09cn0pfWZ1bmN0aW9uIFYzZSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj1lLnNraXBMb29rdXBzLGE9cj09PXZvaWQgMD8hMTpyLHM9bnVsbCxuPUdjcih0LmZpbHRlcihmdW5jdGlvbihtKXtyZXR1cm4gWWNyLmluY2x1ZGVzKG0pfSkpLG89R2NyKHQuZmlsdGVyKGZ1bmN0aW9uKG0pe3JldHVybiFZY3IuaW5jbHVkZXMobSl9KSksbD1uLmZpbHRlcihmdW5jdGlvbihtKXtyZXR1cm4gcz1tLCFLMnIuaW5jbHVkZXMobSl9KSxjPU4zZShsLDEpLGQ9Y1swXSxmPWQ9PT12b2lkIDA/bnVsbDpkLHA9dkFhKG4pLGg9c3Qoc3Qoe30seUFhKG8pKSx7fSx7cHJlZml4OnEzZShmLHtmYW1pbHk6cH0pfSk7cmV0dXJuIHN0KHN0KHN0KHt9LGgpLE1BYSh7dmFsdWVzOnQsZmFtaWx5OnAsc3R5bGVzOnZfLGNvbmZpZzpxdCxjYW5vbmljYWw6aCxnaXZlblByZWZpeDpzfSkpLHdBYShhLHMsaCkpfWZ1bmN0aW9uIHdBYSh0LGUscil7dmFyIGE9ci5wcmVmaXgscz1yLmljb25OYW1lO2lmKHR8fCFhfHwhcylyZXR1cm57cHJlZml4OmEsaWNvbk5hbWU6c307dmFyIG49ZT09PSJmYSI/VWNyKHMpOnt9LG89aW0oYSxzKTtyZXR1cm4gcz1uLmljb25OYW1lfHxvfHxzLGE9bi5wcmVmaXh8fGEsYT09PSJmYXIiJiYhdl8uZmFyJiZ2Xy5mYXMmJiFxdC5hdXRvRmV0Y2hTdmcmJihhPSJmYXMiKSx7cHJlZml4OmEsaWNvbk5hbWU6c319ZnVuY3Rpb24gTUFhKHQpe3ZhciBlPXQudmFsdWVzLHI9dC5mYW1pbHksYT10LmNhbm9uaWNhbCxzPXQuZ2l2ZW5QcmVmaXgsbj1zPT09dm9pZCAwPyIiOnMsbz10LnN0eWxlcyxsPW89PT12b2lkIDA/e306byxjPXQuY29uZmlnLGQ9Yz09PXZvaWQgMD97fTpjLGY9cj09PWhfLHA9ZS5pbmNsdWRlcygiZmEtZHVvdG9uZSIpfHxlLmluY2x1ZGVzKCJmYWQiKSxoPWQuZmFtaWx5RGVmYXVsdD09PSJkdW90b25lIixtPWEucHJlZml4PT09ImZhZCJ8fGEucHJlZml4PT09ImZhLWR1b3RvbmUiO2lmKCFmJiYocHx8aHx8bSkmJihhLnByZWZpeD0iZmFkIiksKGUuaW5jbHVkZXMoImZhLWJyYW5kcyIpfHxlLmluY2x1ZGVzKCJmYWIiKSkmJihhLnByZWZpeD0iZmFiIiksIWEucHJlZml4JiZrQWEuaW5jbHVkZXMocikpe3ZhciB2PU9iamVjdC5rZXlzKGwpLmZpbmQoZnVuY3Rpb24oZyl7cmV0dXJuIFNBYS5pbmNsdWRlcyhnKX0pO2lmKHZ8fGQuYXV0b0ZldGNoU3ZnKXt2YXIgYj1GRGEuZ2V0KHIpLmRlZmF1bHRTaG9ydFByZWZpeElkO2EucHJlZml4PWIsYS5pY29uTmFtZT1pbShhLnByZWZpeCxhLmljb25OYW1lKXx8YS5pY29uTmFtZX19cmV0dXJuKGEucHJlZml4PT09ImZhInx8bj09PSJmYSIpJiYoYS5wcmVmaXg9JHAoKXx8ImZhcyIpLGF9ZnVuY3Rpb24gX0FhKHQsZSl7dmFyIHI9ZS5taXhvdXRzVG87cmV0dXJuIEtjcj10LE15PXt9LE9iamVjdC5rZXlzKEN5KS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pBYS5pbmRleE9mKGEpPT09LTEmJmRlbGV0ZSBDeVthXX0pLEtjci5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBzPWEubWl4b3V0P2EubWl4b3V0KCk6e307aWYoT2JqZWN0LmtleXMocykuZm9yRWFjaChmdW5jdGlvbihvKXt0eXBlb2Ygc1tvXT09ImZ1bmN0aW9uIiYmKHJbb109c1tvXSksTzNlKHNbb10pPT09Im9iamVjdCImJk9iamVjdC5rZXlzKHNbb10pLmZvckVhY2goZnVuY3Rpb24obCl7cltvXXx8KHJbb109e30pLHJbb11bbF09c1tvXVtsXX0pfSksYS5ob29rcyl7dmFyIG49YS5ob29rcygpO09iamVjdC5rZXlzKG4pLmZvckVhY2goZnVuY3Rpb24obyl7TXlbb118fChNeVtvXT1bXSksTXlbb10ucHVzaChuW29dKX0pfWEucHJvdmlkZXMmJmEucHJvdmlkZXMoQ3kpfSkscn1mdW5jdGlvbiBiRWUodCxlKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShyPjI/ci0yOjApLHM9MjtzPHI7cysrKWFbcy0yXT1hcmd1bWVudHNbc107dmFyIG49TXlbdF18fFtdO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24obyl7ZT1vLmFwcGx5KG51bGwsW2VdLmNvbmNhdChhKSl9KSxlfWZ1bmN0aW9uIHNtKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGU+MT9lLTE6MCksYT0xO2E8ZTthKyspclthLTFdPWFyZ3VtZW50c1thXTt2YXIgcz1NeVt0XXx8W107cy5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uYXBwbHkobnVsbCxyKX0pfWZ1bmN0aW9uIEFwKCl7dmFyIHQ9YXJndW1lbnRzWzBdLGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBDeVt0XT9DeVt0XS5hcHBseShudWxsLGUpOnZvaWQgMH1mdW5jdGlvbiB4RWUodCl7dC5wcmVmaXg9PT0iZmEiJiYodC5wcmVmaXg9ImZhcyIpO3ZhciBlPXQuaWNvbk5hbWUscj10LnByZWZpeHx8JHAoKTtpZihlKXJldHVybiBlPWltKHIsZSl8fGUsUGNyKFpjci5kZWZpbml0aW9ucyxyLGUpfHxQY3IobGMuc3R5bGVzLHIsZSl9ZnVuY3Rpb24gajNlKHQsZSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJhYnN0cmFjdCIse2dldDplfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImh0bWwiLHtnZXQ6aShmdW5jdGlvbigpe3JldHVybiB0LmFic3RyYWN0Lm1hcChmdW5jdGlvbihhKXtyZXR1cm4geF8oYSl9KX0sImdldCIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIm5vZGUiLHtnZXQ6aShmdW5jdGlvbigpe2lmKFI0KXt2YXIgYT1kaS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS5pbm5lckhUTUw9dC5odG1sLGEuY2hpbGRyZW59fSwiZ2V0Iil9KSx0fWZ1bmN0aW9uIEFBYSh0KXt2YXIgZT10LmNoaWxkcmVuLHI9dC5tYWluLGE9dC5tYXNrLHM9dC5hdHRyaWJ1dGVzLG49dC5zdHlsZXMsbz10LnRyYW5zZm9ybTtpZihkRWUobykmJnIuZm91bmQmJiFhLmZvdW5kKXt2YXIgbD1yLndpZHRoLGM9ci5oZWlnaHQsZD17eDpsL2MvMix5Oi41fTtzLnN0eWxlPUIzZShzdChzdCh7fSxuKSx7fSx7InRyYW5zZm9ybS1vcmlnaW4iOiIiLmNvbmNhdChkLngrby54LzE2LCJlbSAiKS5jb25jYXQoZC55K28ueS8xNiwiZW0iKX0pKX1yZXR1cm5be3RhZzoic3ZnIixhdHRyaWJ1dGVzOnMsY2hpbGRyZW46ZX1dfWZ1bmN0aW9uIEVBYSh0KXt2YXIgZT10LnByZWZpeCxyPXQuaWNvbk5hbWUsYT10LmNoaWxkcmVuLHM9dC5hdHRyaWJ1dGVzLG49dC5zeW1ib2wsbz1uPT09ITA/IiIuY29uY2F0KGUsIi0iKS5jb25jYXQocXQuY3NzUHJlZml4LCItIikuY29uY2F0KHIpOm47cmV0dXJuW3t0YWc6InN2ZyIsYXR0cmlidXRlczp7c3R5bGU6ImRpc3BsYXk6IG5vbmU7In0sY2hpbGRyZW46W3t0YWc6InN5bWJvbCIsYXR0cmlidXRlczpzdChzdCh7fSxzKSx7fSx7aWQ6b30pLGNoaWxkcmVuOmF9XX1dfWZ1bmN0aW9uIElBYSh0KXt2YXIgZT1bImFyaWEtbGFiZWwiLCJhcmlhLWxhYmVsbGVkYnkiLCJ0aXRsZSIsInJvbGUiXTtyZXR1cm4gZS5zb21lKGZ1bmN0aW9uKHIpe3JldHVybiByIGluIHR9KX1mdW5jdGlvbiB2RWUodCl7dmFyIGU9dC5pY29ucyxyPWUubWFpbixhPWUubWFzayxzPXQucHJlZml4LG49dC5pY29uTmFtZSxvPXQudHJhbnNmb3JtLGw9dC5zeW1ib2wsYz10Lm1hc2tJZCxkPXQuZXh0cmEsZj10LndhdGNoYWJsZSxwPWY9PT12b2lkIDA/ITE6ZixoPWEuZm91bmQ/YTpyLG09aC53aWR0aCx2PWguaGVpZ2h0LGI9W3F0LnJlcGxhY2VtZW50Q2xhc3Msbj8iIi5jb25jYXQocXQuY3NzUHJlZml4LCItIikuY29uY2F0KG4pOiIiXS5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIGQuY2xhc3Nlcy5pbmRleE9mKF8pPT09LTF9KS5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIF8hPT0iInx8ISFffSkuY29uY2F0KGQuY2xhc3Nlcykuam9pbigiICIpLGc9e2NoaWxkcmVuOltdLGF0dHJpYnV0ZXM6c3Qoc3Qoe30sZC5hdHRyaWJ1dGVzKSx7fSx7ImRhdGEtcHJlZml4IjpzLCJkYXRhLWljb24iOm4sY2xhc3M6Yixyb2xlOmQuYXR0cmlidXRlcy5yb2xlfHwiaW1nIix2aWV3Qm94OiIwIDAgIi5jb25jYXQobSwiICIpLmNvbmNhdCh2KX0pfTshSUFhKGQuYXR0cmlidXRlcykmJiFkLmF0dHJpYnV0ZXNbImFyaWEtaGlkZGVuIl0mJihnLmF0dHJpYnV0ZXNbImFyaWEtaGlkZGVuIl09InRydWUiKSxwJiYoZy5hdHRyaWJ1dGVzW2FtXT0iIik7dmFyIHk9c3Qoc3Qoe30sZykse30se3ByZWZpeDpzLGljb25OYW1lOm4sbWFpbjpyLG1hc2s6YSxtYXNrSWQ6Yyx0cmFuc2Zvcm06byxzeW1ib2w6bCxzdHlsZXM6c3Qoe30sZC5zdHlsZXMpfSksaz1hLmZvdW5kJiZyLmZvdW5kP0FwKCJnZW5lcmF0ZUFic3RyYWN0TWFzayIseSl8fHtjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOnt9fTpBcCgiZ2VuZXJhdGVBYnN0cmFjdEljb24iLHkpfHx7Y2hpbGRyZW46W10sYXR0cmlidXRlczp7fX0sTT1rLmNoaWxkcmVuLE49ay5hdHRyaWJ1dGVzO3JldHVybiB5LmNoaWxkcmVuPU0seS5hdHRyaWJ1dGVzPU4sbD9FQWEoeSk6QUFhKHkpfWZ1bmN0aW9uIFFjcih0KXt2YXIgZT10LmNvbnRlbnQscj10LndpZHRoLGE9dC5oZWlnaHQscz10LnRyYW5zZm9ybSxuPXQuZXh0cmEsbz10LndhdGNoYWJsZSxsPW89PT12b2lkIDA/ITE6byxjPXN0KHN0KHt9LG4uYXR0cmlidXRlcykse30se2NsYXNzOm4uY2xhc3Nlcy5qb2luKCIgIil9KTtsJiYoY1thbV09IiIpO3ZhciBkPXN0KHt9LG4uc3R5bGVzKTtkRWUocykmJihkLnRyYW5zZm9ybT1sQWEoe3RyYW5zZm9ybTpzLHN0YXJ0Q2VudGVyZWQ6ITAsd2lkdGg6cixoZWlnaHQ6YX0pLGRbIi13ZWJraXQtdHJhbnNmb3JtIl09ZC50cmFuc2Zvcm0pO3ZhciBmPUIzZShkKTtmLmxlbmd0aD4wJiYoYy5zdHlsZT1mKTt2YXIgcD1bXTtyZXR1cm4gcC5wdXNoKHt0YWc6InNwYW4iLGF0dHJpYnV0ZXM6YyxjaGlsZHJlbjpbZV19KSxwfWZ1bmN0aW9uIFBBYSh0KXt2YXIgZT10LmNvbnRlbnQscj10LmV4dHJhLGE9c3Qoc3Qoe30sci5hdHRyaWJ1dGVzKSx7fSx7Y2xhc3M6ci5jbGFzc2VzLmpvaW4oIiAiKX0pLHM9QjNlKHIuc3R5bGVzKTtzLmxlbmd0aD4wJiYoYS5zdHlsZT1zKTt2YXIgbj1bXTtyZXR1cm4gbi5wdXNoKHt0YWc6InNwYW4iLGF0dHJpYnV0ZXM6YSxjaGlsZHJlbjpbZV19KSxufWZ1bmN0aW9uIHdFZSh0KXt2YXIgZT10WzBdLHI9dFsxXSxhPXQuc2xpY2UoNCkscz1OM2UoYSwxKSxuPXNbMF0sbz1udWxsO3JldHVybiBBcnJheS5pc0FycmF5KG4pP289e3RhZzoiZyIsYXR0cmlidXRlczp7Y2xhc3M6IiIuY29uY2F0KHF0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChsRWUuR1JPVVApfSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cmlidXRlczp7Y2xhc3M6IiIuY29uY2F0KHF0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChsRWUuU0VDT05EQVJZKSxmaWxsOiJjdXJyZW50Q29sb3IiLGQ6blswXX19LHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChxdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQobEVlLlBSSU1BUlkpLGZpbGw6ImN1cnJlbnRDb2xvciIsZDpuWzFdfX1dfTpvPXt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2ZpbGw6ImN1cnJlbnRDb2xvciIsZDpufX0se2ZvdW5kOiEwLHdpZHRoOmUsaGVpZ2h0OnIsaWNvbjpvfX1mdW5jdGlvbiBPQWEodCxlKXshU2NyJiYhcXQuc2hvd01pc3NpbmdJY29ucyYmdCYmY29uc29sZS5lcnJvcignSWNvbiB3aXRoIG5hbWUgIicuY29uY2F0KHQsJyIgYW5kIHByZWZpeCAiJykuY29uY2F0KGUsJyIgaXMgbWlzc2luZy4nKSl9ZnVuY3Rpb24ga0VlKHQsZSl7dmFyIHI9ZTtyZXR1cm4gZT09PSJmYSImJnF0LnN0eWxlRGVmYXVsdCE9PW51bGwmJihlPSRwKCkpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEscyl7aWYocj09PSJmYSIpe3ZhciBuPVVjcih0KXx8e307dD1uLmljb25OYW1lfHx0LGU9bi5wcmVmaXh8fGV9aWYodCYmZSYmeUVlW2VdJiZ5RWVbZV1bdF0pe3ZhciBvPXlFZVtlXVt0XTtyZXR1cm4gYSh3RWUobykpfU9BYSh0LGUpLGEoc3Qoc3Qoe30sTkFhKSx7fSx7aWNvbjpxdC5zaG93TWlzc2luZ0ljb25zJiZ0P0FwKCJtaXNzaW5nSWNvbkFic3RyYWN0Iil8fHt9Ont9fSkpfSl9ZnVuY3Rpb24gZTByKHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlP3QuZ2V0QXR0cmlidXRlKGFtKTpudWxsO3JldHVybiB0eXBlb2YgZT09InN0cmluZyJ9ZnVuY3Rpb24gRkFhKHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlP3QuZ2V0QXR0cmlidXRlKHJFZSk6bnVsbCxyPXQuZ2V0QXR0cmlidXRlP3QuZ2V0QXR0cmlidXRlKGFFZSk6bnVsbDtyZXR1cm4gZSYmcn1mdW5jdGlvbiBCQWEodCl7cmV0dXJuIHQmJnQuY2xhc3NMaXN0JiZ0LmNsYXNzTGlzdC5jb250YWlucyYmdC5jbGFzc0xpc3QuY29udGFpbnMocXQucmVwbGFjZW1lbnRDbGFzcyl9ZnVuY3Rpb24gSEFhKCl7aWYocXQuYXV0b1JlcGxhY2VTdmc9PT0hMClyZXR1cm4gVzNlLnJlcGxhY2U7dmFyIHQ9VzNlW3F0LmF1dG9SZXBsYWNlU3ZnXTtyZXR1cm4gdHx8VzNlLnJlcGxhY2V9ZnVuY3Rpb24gcUFhKHQpe3JldHVybiBkaS5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix0KX1mdW5jdGlvbiBWQWEodCl7cmV0dXJuIGRpLmNyZWF0ZUVsZW1lbnQodCl9ZnVuY3Rpb24gdDByKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxyPWUuY2VGbixhPXI9PT12b2lkIDA/dC50YWc9PT0ic3ZnIj9xQWE6VkFhOnI7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXJldHVybiBkaS5jcmVhdGVUZXh0Tm9kZSh0KTt2YXIgcz1hKHQudGFnKTtPYmplY3Qua2V5cyh0LmF0dHJpYnV0ZXN8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3Muc2V0QXR0cmlidXRlKG8sdC5hdHRyaWJ1dGVzW29dKX0pO3ZhciBuPXQuY2hpbGRyZW58fFtdO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24obyl7cy5hcHBlbmRDaGlsZCh0MHIobyx7Y2VGbjphfSkpfSksc31mdW5jdGlvbiBqQWEodCl7dmFyIGU9IiAiLmNvbmNhdCh0Lm91dGVySFRNTCwiICIpO3JldHVybiBlPSIiLmNvbmNhdChlLCJGb250IEF3ZXNvbWUgZm9udGF3ZXNvbWUuY29tICIpLGV9ZnVuY3Rpb24gcjByKHQpe3QoKX1mdW5jdGlvbiBhMHIodCxlKXt2YXIgcj10eXBlb2YgZT09ImZ1bmN0aW9uIj9lOlUzZTtpZih0Lmxlbmd0aD09PTApcigpO2Vsc2V7dmFyIGE9cjByO3F0Lm11dGF0ZUFwcHJvYWNoPT09RyRhJiYoYT1McC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHIwciksYShmdW5jdGlvbigpe3ZhciBzPUhBYSgpLG49TUVlLmJlZ2luKCJtdXRhdGUiKTt0Lm1hcChzKSxuKCkscigpfSl9fWZ1bmN0aW9uIGkwcigpe0NFZT0hMH1mdW5jdGlvbiB6RWUoKXtDRWU9ITF9ZnVuY3Rpb24gczByKHQpe2lmKFcyciYmcXQub2JzZXJ2ZU11dGF0aW9ucyl7dmFyIGU9dC50cmVlQ2FsbGJhY2sscj1lPT09dm9pZCAwP1UzZTplLGE9dC5ub2RlQ2FsbGJhY2sscz1hPT09dm9pZCAwP1UzZTphLG49dC5wc2V1ZG9FbGVtZW50c0NhbGxiYWNrLG89bj09PXZvaWQgMD9VM2U6bixsPXQub2JzZXJ2ZU11dGF0aW9uc1Jvb3QsYz1sPT09dm9pZCAwP2RpOmw7RzNlPW5ldyBXMnIoZnVuY3Rpb24oZCl7aWYoIUNFZSl7dmFyIGY9JHAoKTtTeShkKS5mb3JFYWNoKGZ1bmN0aW9uKHApe2lmKHAudHlwZT09PSJjaGlsZExpc3QiJiZwLmFkZGVkTm9kZXMubGVuZ3RoPjAmJiFlMHIocC5hZGRlZE5vZGVzWzBdKSYmKHF0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZvKHAudGFyZ2V0KSxyKHAudGFyZ2V0KSkscC50eXBlPT09ImF0dHJpYnV0ZXMiJiZwLnRhcmdldC5wYXJlbnROb2RlJiZxdC5zZWFyY2hQc2V1ZG9FbGVtZW50cyYmbyhbcC50YXJnZXRdLCEwKSxwLnR5cGU9PT0iYXR0cmlidXRlcyImJmUwcihwLnRhcmdldCkmJn5KJGEuaW5kZXhPZihwLmF0dHJpYnV0ZU5hbWUpKWlmKHAuYXR0cmlidXRlTmFtZT09PSJjbGFzcyImJkZBYShwLnRhcmdldCkpe3ZhciBoPVYzZShjRWUocC50YXJnZXQpKSxtPWgucHJlZml4LHY9aC5pY29uTmFtZTtwLnRhcmdldC5zZXRBdHRyaWJ1dGUockVlLG18fGYpLHYmJnAudGFyZ2V0LnNldEF0dHJpYnV0ZShhRWUsdil9ZWxzZSBCQWEocC50YXJnZXQpJiZzKHAudGFyZ2V0KX0pfX0pLFI0JiZHM2Uub2JzZXJ2ZShjLHtjaGlsZExpc3Q6ITAsYXR0cmlidXRlczohMCxjaGFyYWN0ZXJEYXRhOiEwLHN1YnRyZWU6ITB9KX19ZnVuY3Rpb24gVUFhKCl7RzNlJiZHM2UuZGlzY29ubmVjdCgpfWZ1bmN0aW9uIFdBYSh0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgic3R5bGUiKSxyPVtdO3JldHVybiBlJiYocj1lLnNwbGl0KCI7IikucmVkdWNlKGZ1bmN0aW9uKGEscyl7dmFyIG49cy5zcGxpdCgiOiIpLG89blswXSxsPW4uc2xpY2UoMSk7cmV0dXJuIG8mJmwubGVuZ3RoPjAmJihhW29dPWwuam9pbigiOiIpLnRyaW0oKSksYX0se30pKSxyfWZ1bmN0aW9uIEdBYSh0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YS1wcmVmaXgiKSxyPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWljb24iKSxhPXQuaW5uZXJUZXh0IT09dm9pZCAwP3QuaW5uZXJUZXh0LnRyaW0oKToiIixzPVYzZShjRWUodCkpO3JldHVybiBzLnByZWZpeHx8KHMucHJlZml4PSRwKCkpLGUmJnImJihzLnByZWZpeD1lLHMuaWNvbk5hbWU9cikscy5pY29uTmFtZSYmcy5wcmVmaXh8fChzLnByZWZpeCYmYS5sZW5ndGg+MCYmKHMuaWNvbk5hbWU9YkFhKHMucHJlZml4LHQuaW5uZXJUZXh0KXx8Z0VlKHMucHJlZml4LE5jcih0LmlubmVyVGV4dCkpKSwhcy5pY29uTmFtZSYmcXQuYXV0b0ZldGNoU3ZnJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYocy5pY29uTmFtZT10LmZpcnN0Q2hpbGQuZGF0YSkpLHN9ZnVuY3Rpb24gWUFhKHQpe3ZhciBlPVN5KHQuYXR0cmlidXRlcykucmVkdWNlKGZ1bmN0aW9uKHIsYSl7cmV0dXJuIHIubmFtZSE9PSJjbGFzcyImJnIubmFtZSE9PSJzdHlsZSImJihyW2EubmFtZV09YS52YWx1ZSkscn0se30pO3JldHVybiBlfWZ1bmN0aW9uIEtBYSgpe3JldHVybntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHRyYW5zZm9ybTpyZCxzeW1ib2w6ITEsbWFzazp7aWNvbk5hbWU6bnVsbCxwcmVmaXg6bnVsbCxyZXN0OltdfSxtYXNrSWQ6bnVsbCxleHRyYTp7Y2xhc3NlczpbXSxzdHlsZXM6e30sYXR0cmlidXRlczp7fX19fWZ1bmN0aW9uIG4wcih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e3N0eWxlUGFyc2VyOiEwfSxyPUdBYSh0KSxhPXIuaWNvbk5hbWUscz1yLnByZWZpeCxuPXIucmVzdCxvPVlBYSh0KSxsPWJFZSgicGFyc2VOb2RlQXR0cmlidXRlcyIse30sdCksYz1lLnN0eWxlUGFyc2VyP1dBYSh0KTpbXTtyZXR1cm4gc3Qoe2ljb25OYW1lOmEscHJlZml4OnMsdHJhbnNmb3JtOnJkLG1hc2s6e2ljb25OYW1lOm51bGwscHJlZml4Om51bGwscmVzdDpbXX0sbWFza0lkOm51bGwsc3ltYm9sOiExLGV4dHJhOntjbGFzc2VzOm4sc3R5bGVzOmMsYXR0cmlidXRlczpvfX0sbCl9ZnVuY3Rpb24gbzByKHQpe3ZhciBlPXF0LmF1dG9SZXBsYWNlU3ZnPT09Im5lc3QiP24wcih0LHtzdHlsZVBhcnNlcjohMX0pOm4wcih0KTtyZXR1cm5+ZS5leHRyYS5jbGFzc2VzLmluZGV4T2YoemNyKT9BcCgiZ2VuZXJhdGVMYXllcnNUZXh0Iix0LGUpOkFwKCJnZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb24iLHQsZSl9ZnVuY3Rpb24gUUFhKCl7cmV0dXJuW10uY29uY2F0KG9jKGhjciksb2MoYmNyKSl9ZnVuY3Rpb24gbDByKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpudWxsO2lmKCFSNClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHI9ZGkuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdCxhPWkoZnVuY3Rpb24ocCl7cmV0dXJuIHIuYWRkKCIiLmNvbmNhdCh3Y3IsIi0iKS5jb25jYXQocCkpfSwiaGNsQWRkIikscz1pKGZ1bmN0aW9uKHApe3JldHVybiByLnJlbW92ZSgiIi5jb25jYXQod2NyLCItIikuY29uY2F0KHApKX0sImhjbFJlbW92ZSIpLG49cXQuYXV0b0ZldGNoU3ZnP1FBYSgpOksyci5jb25jYXQoT2JqZWN0LmtleXMoWkFhKSk7bi5pbmNsdWRlcygiZmEiKXx8bi5wdXNoKCJmYSIpO3ZhciBvPVsiLiIuY29uY2F0KHpjciwiOm5vdChbIikuY29uY2F0KGFtLCJdKSIpXS5jb25jYXQobi5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIi4iLmNvbmNhdChmLCI6bm90KFsiKS5jb25jYXQoYW0sIl0pIil9KSkuam9pbigiLCAiKTtpZihvLmxlbmd0aD09PTApcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBsPVtdO3RyeXtsPVN5KHQucXVlcnlTZWxlY3RvckFsbChvKSl9Y2F0Y2h7fWlmKGwubGVuZ3RoPjApYSgicGVuZGluZyIpLHMoImNvbXBsZXRlIik7ZWxzZSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGM9TUVlLmJlZ2luKCJvblRyZWUiKSxkPWwucmVkdWNlKGZ1bmN0aW9uKGYscCl7dHJ5e3ZhciBoPW8wcihwKTtoJiZmLnB1c2goaCl9Y2F0Y2gobSl7U2NyfHxtLm5hbWU9PT0iTWlzc2luZ0ljb24iJiZjb25zb2xlLmVycm9yKG0pfXJldHVybiBmfSxbXSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGYscCl7UHJvbWlzZS5hbGwoZCkudGhlbihmdW5jdGlvbihoKXthMHIoaCxmdW5jdGlvbigpe2EoImFjdGl2ZSIpLGEoImNvbXBsZXRlIikscygicGVuZGluZyIpLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiZlKCksYygpLGYoKX0pfSkuY2F0Y2goZnVuY3Rpb24oaCl7YygpLHAoaCl9KX0pfWZ1bmN0aW9uIFhBYSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDtvMHIodCkudGhlbihmdW5jdGlvbihyKXtyJiZhMHIoW3JdLGUpfSl9ZnVuY3Rpb24gSkFhKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sYT0oZXx8e30pLmljb24/ZTp4RWUoZXx8e30pLHM9ci5tYXNrO3JldHVybiBzJiYocz0oc3x8e30pLmljb24/czp4RWUoc3x8e30pKSx0KGEsc3Qoc3Qoe30scikse30se21hc2s6c30pKX19ZnVuY3Rpb24gbkVhKHQpe3ZhciBlPXQucmVwbGFjZShjMHIsIiIpO3JldHVybiBOY3Iob2MoZSlbMF18fCIiKX1mdW5jdGlvbiBvRWEodCl7dmFyIGU9dC5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LWZlYXR1cmUtc2V0dGluZ3MiKS5pbmNsdWRlcygic3MwMSIpLHI9dC5nZXRQcm9wZXJ0eVZhbHVlKCJjb250ZW50IiksYT1yLnJlcGxhY2UoYzByLCIiKSxzPWEuY29kZVBvaW50QXQoMCksbj1zPj1kMHJbMF0mJnM8PWQwclsxXSxvPWEubGVuZ3RoPT09Mj9hWzBdPT09YVsxXTohMTtyZXR1cm4gbnx8b3x8ZX1mdW5jdGlvbiBsRWEodCxlKXt2YXIgcj10LnJlcGxhY2UoL15bJyJdfFsnIl0kL2csIiIpLnRvTG93ZXJDYXNlKCksYT1wYXJzZUludChlKSxzPWlzTmFOKGEpPyJub3JtYWwiOmE7cmV0dXJuKF9FZVtyXXx8e30pW3NdfHxzRWFbcl19ZnVuY3Rpb24gcDByKHQsZSl7dmFyIHI9IiIuY29uY2F0KFckYSkuY29uY2F0KGUucmVwbGFjZSgiOiIsIi0iKSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEscyl7aWYodC5nZXRBdHRyaWJ1dGUocikhPT1udWxsKXJldHVybiBhKCk7dmFyIG49U3kodC5jaGlsZHJlbiksbz1uLmZpbHRlcihmdW5jdGlvbihTKXtyZXR1cm4gUy5nZXRBdHRyaWJ1dGUodEVlKT09PWV9KVswXSxsPUxwLmdldENvbXB1dGVkU3R5bGUodCxlKSxjPWwuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1mYW1pbHkiKSxkPWMubWF0Y2goUSRhKSxmPWwuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC13ZWlnaHQiKSxwPWwuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpO2lmKG8mJiFkKXJldHVybiB0LnJlbW92ZUNoaWxkKG8pLGEoKTtpZihkJiZwIT09Im5vbmUiJiZwIT09IiIpe3ZhciBoPWwuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpLG09bEVhKGMsZiksdj1uRWEoaCksYj1kWzBdLnN0YXJ0c1dpdGgoIkZvbnRBd2Vzb21lIiksZz1vRWEobCkseT1nRWUobSx2KSxrPXk7aWYoYil7dmFyIE09eEFhKHYpO00uaWNvbk5hbWUmJk0ucHJlZml4JiYoeT1NLmljb25OYW1lLG09TS5wcmVmaXgpfWlmKHkmJiFnJiYoIW98fG8uZ2V0QXR0cmlidXRlKHJFZSkhPT1tfHxvLmdldEF0dHJpYnV0ZShhRWUpIT09aykpe3Quc2V0QXR0cmlidXRlKHIsayksbyYmdC5yZW1vdmVDaGlsZChvKTt2YXIgTj1LQWEoKSxfPU4uZXh0cmE7Xy5hdHRyaWJ1dGVzW3RFZV09ZSxrRWUoeSxtKS50aGVuKGZ1bmN0aW9uKFMpe3ZhciBPPXZFZShzdChzdCh7fSxOKSx7fSx7aWNvbnM6e21haW46UyxtYXNrOldjcigpfSxwcmVmaXg6bSxpY29uTmFtZTprLGV4dHJhOl8sd2F0Y2hhYmxlOiEwfSkpLEw9ZGkuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO2U9PT0iOjpiZWZvcmUiP3QuaW5zZXJ0QmVmb3JlKEwsdC5maXJzdENoaWxkKTp0LmFwcGVuZENoaWxkKEwpLEwub3V0ZXJIVE1MPU8ubWFwKGZ1bmN0aW9uKEUpe3JldHVybiB4XyhFKX0pLmpvaW4oYApgKSx0LnJlbW92ZUF0dHJpYnV0ZShyKSxhKCl9KS5jYXRjaChzKX1lbHNlIGEoKX1lbHNlIGEoKX0pfWZ1bmN0aW9uIGNFYSh0KXtyZXR1cm4gUHJvbWlzZS5hbGwoW3Awcih0LCI6OmJlZm9yZSIpLHAwcih0LCI6OmFmdGVyIildKX1mdW5jdGlvbiBkRWEodCl7cmV0dXJuIHQucGFyZW50Tm9kZSE9PWRvY3VtZW50LmhlYWQmJiF+WSRhLmluZGV4T2YodC50YWdOYW1lLnRvVXBwZXJDYXNlKCkpJiYhdC5nZXRBdHRyaWJ1dGUodEVlKSYmKCF0LnBhcmVudE5vZGV8fHQucGFyZW50Tm9kZS50YWdOYW1lIT09InN2ZyIpfWZ1bmN0aW9uIGYwcih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITE7aWYoUjQpe3ZhciByO2lmKGUpcj10O2Vsc2UgaWYocXQuc2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbilyPXQucXVlcnlTZWxlY3RvckFsbCgiKiIpO2Vsc2V7dmFyIGE9bmV3IFNldCxzPUkzZShkb2N1bWVudC5zdHlsZVNoZWV0cyksbjt0cnl7Zm9yKHMucygpOyEobj1zLm4oKSkuZG9uZTspe3ZhciBvPW4udmFsdWU7dHJ5e3ZhciBsPUkzZShvLmNzc1J1bGVzKSxjO3RyeXtmb3IobC5zKCk7IShjPWwubigpKS5kb25lOyl7dmFyIGQ9Yy52YWx1ZSxmPXBFYShkLnNlbGVjdG9yVGV4dCkscD1JM2UoZiksaDt0cnl7Zm9yKHAucygpOyEoaD1wLm4oKSkuZG9uZTspe3ZhciBtPWgudmFsdWU7YS5hZGQobSl9fWNhdGNoKGIpe3AuZShiKX1maW5hbGx5e3AuZigpfX19Y2F0Y2goYil7bC5lKGIpfWZpbmFsbHl7bC5mKCl9fWNhdGNoKGIpe3F0LnNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MmJmNvbnNvbGUud2FybigiRm9udCBBd2Vzb21lOiBjYW5ub3QgcGFyc2Ugc3R5bGVzaGVldDogIi5jb25jYXQoby5ocmVmLCIgKCIpLmNvbmNhdChiLm1lc3NhZ2UsYCkKSWYgaXQgZGVjbGFyZXMgYW55IEZvbnQgQXdlc29tZSBDU1MgcHNldWRvLWVsZW1lbnRzLCB0aGV5IHdpbGwgbm90IGJlIHJlbmRlcmVkIGFzIFNWRyBpY29ucy4gQWRkIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHRvIHRoZSA8bGluaz4sIGVuYWJsZSBzZWFyY2hQc2V1ZG9FbGVtZW50c0Z1bGxTY2FuIGZvciBzbG93ZXIgYnV0IG1vcmUgdGhvcm91Z2ggRE9NIHBhcnNpbmcsIG9yIHN1cHByZXNzIHRoaXMgd2FybmluZyBieSBzZXR0aW5nIHNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MgdG8gZmFsc2UuYCkpfX19Y2F0Y2goYil7cy5lKGIpfWZpbmFsbHl7cy5mKCl9aWYoIWEuc2l6ZSlyZXR1cm47dmFyIHY9QXJyYXkuZnJvbShhKS5qb2luKCIsICIpO3RyeXtyPXQucXVlcnlTZWxlY3RvckFsbCh2KX1jYXRjaHt9fXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihiLGcpe3ZhciB5PVN5KHIpLmZpbHRlcihkRWEpLm1hcChjRWEpLGs9TUVlLmJlZ2luKCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO2kwcigpLFByb21pc2UuYWxsKHkpLnRoZW4oZnVuY3Rpb24oKXtrKCksekVlKCksYigpfSkuY2F0Y2goZnVuY3Rpb24oKXtrKCksekVlKCksZygpfSl9KX19ZnVuY3Rpb24gZzByKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMDtyZXR1cm4gdC5hdHRyaWJ1dGVzJiYodC5hdHRyaWJ1dGVzLmZpbGx8fGUpJiYodC5hdHRyaWJ1dGVzLmZpbGw9ImJsYWNrIiksdH1mdW5jdGlvbiBnRWEodCl7cmV0dXJuIHQudGFnPT09ImciP3QuY2hpbGRyZW46W3RdfXZhciBCMnIsWkFlLEgycixxMnIsVjJyLGhEYSxqMnIsVTJyLExwLGRpLFcycixSM2UsSlNuLFI0LEcycixRQWUsbURhLGdEYSxZMnIsYkRhLEsycixEbixoXyxaMnIsUTJyLFgycixKMnIsZWNyLHRjcixyY3IsYWNyLGljcixzY3IsbmNyLG9jcixsY3IsY2NyLGRjcix1Y3IscGNyLHhEYSx2RGEseURhLHdEYSxrRGEsU0RhLE1EYSxDRGEsekRhLF9EYSxURGEsTERhLEREYSwkRGEsQURhLEVEYSxJRGEsUERhLE5EYSxmY3IsZU1uLE9EYSxSRGEsRkRhLEJEYSxoY3IsbWNyLEhEYSxxRGEsVkRhLGpEYSxVRGEsdE1uLFdEYSxHRGEsWURhLGdjcixYQWUsRjNlLEtEYSxaRGEsUURhLFhEYSxKRGEsZSRhLHQkYSxyJGEsYSRhLGkkYSxzJGEsbiRhLG8kYSxsJGEsYyRhLGQkYSx1JGEscCRhLGYkYSxoJGEsbSRhLGckYSxiJGEseCRhLHYkYSx5JGEsdyRhLGskYSxTJGEsTSRhLEMkYSx6JGEsXyRhLFQkYSxMJGEsRCRhLCQkYSxBJGEsRSRhLHJNbixJJGEsUCRhLE4kYSxPJGEsYU1uLFIkYSxGJGEsSkFlLEIkYSxiY3IsSCRhLHhjcixxJGEsViRhLGokYSxVJGEsRjQsZUVlLHZjcix5Y3IsYW0sdEVlLFckYSxyRWUsYUVlLHdjcixHJGEsWSRhLGtjcixTY3IsTWNyLEskYSxpRWUsQ2NyLHNFZSxuRWUsb0VlLGlNbixaJGEsemNyLFEkYSxYJGEsc01uLEokYSxsRWUsZUFhLGdfLFRjcixreSxxdCxiXyxEcCxyZCxzQWEsY0FhLEFjcixkQWEsQjQsbGMsRWNyLEljcixIM2UscEFhLHBFZSxoRWUsY2Msbk1uLG9Nbix2XyxmQWEsUmNyLGhBYSxtRWUsRmNyLEJjcixIY3IscWNyLFZjcixqY3IsV2NyLFljcixrQWEsU0FhLENBYSxLY3IsTXksQ3ksekFhLFpjcixUQWEsTEFhLERBYSxEMSwkQWEseUVlLE5BYSxYY3IsU0VlLHlfLFJBYSxKY3IsTUVlLFUzZSxXM2UsQ0VlLEczZSxaQWEsZUVhLHRFYSxyRWEsYUVhLGlFYSxjMHIsZDByLHUwcixfRWUsc0VhLHVFYSxwRWEsZkVhLGgwcixoRWEsbTByLG1FYSxURWUsYkVhLHhFYSx2RWEseUVhLHdFYSxrRWEsU0VhLE1FYSxDRWEsekVhLF9FYSxMRWUsVEVhLExFYSxERWEsX2NyLGIwcj11KCgpPT57aShZQWUsIl9hcnJheUxpa2VUb0FycmF5Iik7aShpRGEsIl9hcnJheVdpdGhIb2xlcyIpO2koc0RhLCJfYXJyYXlXaXRob3V0SG9sZXMiKTtpKG5EYSwiX2NsYXNzQ2FsbENoZWNrIik7aShPMnIsIl9kZWZpbmVQcm9wZXJ0aWVzIik7aShvRGEsIl9jcmVhdGVDbGFzcyIpO2koSTNlLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIpO2kobXIsIl9kZWZpbmVQcm9wZXJ0eSIpO2kobERhLCJfaW5oZXJpdHMiKTtpKGNEYSwiX2l0ZXJhYmxlVG9BcnJheSIpO2koZERhLCJfaXRlcmFibGVUb0FycmF5TGltaXQiKTtpKHVEYSwiX25vbkl0ZXJhYmxlUmVzdCIpO2kocERhLCJfbm9uSXRlcmFibGVTcHJlYWQiKTtpKFIyciwib3duS2V5cyIpO2koc3QsIl9vYmplY3RTcHJlYWQyIik7aShQM2UsIl9zZXRQcm90b3R5cGVPZiIpO2koTjNlLCJfc2xpY2VkVG9BcnJheSIpO2kob2MsIl90b0NvbnN1bWFibGVBcnJheSIpO2koZkRhLCJfdG9QcmltaXRpdmUiKTtpKEYyciwiX3RvUHJvcGVydHlLZXkiKTtpKE8zZSwiX3R5cGVvZiIpO2koS0FlLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiKTtpKHlvLCJfd3JhcFJlZ0V4cCIpO0Iycj1pKGZ1bmN0aW9uKCl7fSwibm9vcCIpLFpBZT17fSxIMnI9e30scTJyPW51bGwsVjJyPXttYXJrOkIycixtZWFzdXJlOkIycn07dHJ5e3R5cGVvZiB3aW5kb3c8InUiJiYoWkFlPXdpbmRvdyksdHlwZW9mIGRvY3VtZW50PCJ1IiYmKEgycj1kb2N1bWVudCksdHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXI8InUiJiYocTJyPU11dGF0aW9uT2JzZXJ2ZXIpLHR5cGVvZiBwZXJmb3JtYW5jZTwidSImJihWMnI9cGVyZm9ybWFuY2UpfWNhdGNoe31oRGE9WkFlLm5hdmlnYXRvcnx8e30sajJyPWhEYS51c2VyQWdlbnQsVTJyPWoycj09PXZvaWQgMD8iIjpqMnIsTHA9WkFlLGRpPUgycixXMnI9cTJyLFIzZT1WMnIsSlNuPSEhTHAuZG9jdW1lbnQsUjQ9ISFkaS5kb2N1bWVudEVsZW1lbnQmJiEhZGkuaGVhZCYmdHlwZW9mIGRpLmFkZEV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiImJnR5cGVvZiBkaS5jcmVhdGVFbGVtZW50PT0iZnVuY3Rpb24iLEcycj1+VTJyLmluZGV4T2YoIk1TSUUiKXx8flUyci5pbmRleE9mKCJUcmlkZW50LyIpLG1EYT0vZmEoa3xrZHxzfHJ8bHx0fGR8ZHJ8ZGx8ZHR8YnxzbHJ8c2xwcnx3c2J8dGx8bnN8bmRzfGVzfGd0fGpyfGpmcnxqZHJ8dXNifHVmc2J8dWRzYnxjcnxzc3xzcnxzbHxzdHxzZHN8c2RyfHNkbHxzZHQpP1tcLVwgXS8sZ0RhPS9Gb250ID9Bd2Vzb21lID8oWzU2NyBdKikoU29saWR8UmVndWxhcnxMaWdodHxUaGlufER1b3RvbmV8QnJhbmRzfEZyZWV8UHJvfFNoYXJwIER1b3RvbmV8U2hhcnB8S2l0fE5vdGRvZyBEdW98Tm90ZG9nfENoaXNlbHxFdGNofEdyYXBoaXRlfFRodW1icHJpbnR8SmVsbHkgRmlsbHxKZWxseSBEdW98SmVsbHl8VXRpbGl0eXxVdGlsaXR5IEZpbGx8VXRpbGl0eSBEdW98U2xhYiBQcmVzc3xTbGFifFdoaXRlYm9hcmQpPy4qL2ksWTJyPXtjbGFzc2ljOntmYToic29saWQiLGZhczoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIixmYXI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIixmYWI6ImJyYW5kcyIsImZhLWJyYW5kcyI6ImJyYW5kcyJ9LGR1b3RvbmU6e2ZhOiJzb2xpZCIsZmFkOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLCJmYS1kdW90b25lIjoic29saWQiLGZhZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFkbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYWR0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSxzaGFycDp7ZmE6InNvbGlkIixmYXNzOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLGZhc3I6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYXN0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSwic2hhcnAtZHVvdG9uZSI6e2ZhOiJzb2xpZCIsZmFzZHM6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsZmFzZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzZGw6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmFzZHQ6InRoaW4iLCJmYS10aGluIjoidGhpbiJ9LHNsYWI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHI6InJlZ3VsYXIifSwic2xhYi1wcmVzcyI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHByOiJyZWd1bGFyIn0sdGh1bWJwcmludDp7ImZhLWxpZ2h0IjoibGlnaHQiLGZhdGw6ImxpZ2h0In0sd2hpdGVib2FyZDp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhd3NiOiJzZW1pYm9sZCJ9LG5vdGRvZzp7ImZhLXNvbGlkIjoic29saWQiLGZhbnM6InNvbGlkIn0sIm5vdGRvZy1kdW8iOnsiZmEtc29saWQiOiJzb2xpZCIsZmFuZHM6InNvbGlkIn0sZXRjaDp7ImZhLXNvbGlkIjoic29saWQiLGZhZXM6InNvbGlkIn0sZ3JhcGhpdGU6eyJmYS10aGluIjoidGhpbiIsZmFndDoidGhpbiJ9LGplbGx5OnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhanI6InJlZ3VsYXIifSwiamVsbHktZmlsbCI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFqZnI6InJlZ3VsYXIifSwiamVsbHktZHVvIjp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWpkcjoicmVndWxhciJ9LGNoaXNlbDp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWNyOiJyZWd1bGFyIn0sdXRpbGl0eTp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhdXNiOiJzZW1pYm9sZCJ9LCJ1dGlsaXR5LWR1byI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVkc2I6InNlbWlib2xkIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVmc2I6InNlbWlib2xkIn19LGJEYT17R1JPVVA6ImR1b3RvbmUtZ3JvdXAiLFNXQVBfT1BBQ0lUWToic3dhcC1vcGFjaXR5IixQUklNQVJZOiJwcmltYXJ5IixTRUNPTkRBUlk6InNlY29uZGFyeSJ9LEsycj1bImZhLWNsYXNzaWMiLCJmYS1kdW90b25lIiwiZmEtc2hhcnAiLCJmYS1zaGFycC1kdW90b25lIiwiZmEtdGh1bWJwcmludCIsImZhLXdoaXRlYm9hcmQiLCJmYS1ub3Rkb2ciLCJmYS1ub3Rkb2ctZHVvIiwiZmEtY2hpc2VsIiwiZmEtZXRjaCIsImZhLWdyYXBoaXRlIiwiZmEtamVsbHkiLCJmYS1qZWxseS1maWxsIiwiZmEtamVsbHktZHVvIiwiZmEtc2xhYiIsImZhLXNsYWItcHJlc3MiLCJmYS11dGlsaXR5IiwiZmEtdXRpbGl0eS1kdW8iLCJmYS11dGlsaXR5LWZpbGwiXSxEbj0iY2xhc3NpYyIsaF89ImR1b3RvbmUiLFoycj0ic2hhcnAiLFEycj0ic2hhcnAtZHVvdG9uZSIsWDJyPSJjaGlzZWwiLEoycj0iZXRjaCIsZWNyPSJncmFwaGl0ZSIsdGNyPSJqZWxseSIscmNyPSJqZWxseS1kdW8iLGFjcj0iamVsbHktZmlsbCIsaWNyPSJub3Rkb2ciLHNjcj0ibm90ZG9nLWR1byIsbmNyPSJzbGFiIixvY3I9InNsYWItcHJlc3MiLGxjcj0idGh1bWJwcmludCIsY2NyPSJ1dGlsaXR5IixkY3I9InV0aWxpdHktZHVvIix1Y3I9InV0aWxpdHktZmlsbCIscGNyPSJ3aGl0ZWJvYXJkIix4RGE9IkNsYXNzaWMiLHZEYT0iRHVvdG9uZSIseURhPSJTaGFycCIsd0RhPSJTaGFycCBEdW90b25lIixrRGE9IkNoaXNlbCIsU0RhPSJFdGNoIixNRGE9IkdyYXBoaXRlIixDRGE9IkplbGx5Iix6RGE9IkplbGx5IER1byIsX0RhPSJKZWxseSBGaWxsIixURGE9Ik5vdGRvZyIsTERhPSJOb3Rkb2cgRHVvIixERGE9IlNsYWIiLCREYT0iU2xhYiBQcmVzcyIsQURhPSJUaHVtYnByaW50IixFRGE9IlV0aWxpdHkiLElEYT0iVXRpbGl0eSBEdW8iLFBEYT0iVXRpbGl0eSBGaWxsIixORGE9IldoaXRlYm9hcmQiLGZjcj1bRG4saF8sWjJyLFEycixYMnIsSjJyLGVjcix0Y3IscmNyLGFjcixpY3Isc2NyLG5jcixvY3IsbGNyLGNjcixkY3IsdWNyLHBjcl0sZU1uPShRQWU9e30sbXIobXIobXIobXIobXIobXIobXIobXIobXIobXIoUUFlLERuLHhEYSksaF8sdkRhKSxaMnIseURhKSxRMnIsd0RhKSxYMnIsa0RhKSxKMnIsU0RhKSxlY3IsTURhKSx0Y3IsQ0RhKSxyY3IsekRhKSxhY3IsX0RhKSxtcihtcihtcihtcihtcihtcihtcihtcihtcihRQWUsaWNyLFREYSksc2NyLExEYSksbmNyLEREYSksb2NyLCREYSksbGNyLEFEYSksY2NyLEVEYSksZGNyLElEYSksdWNyLFBEYSkscGNyLE5EYSkpLE9EYT17Y2xhc3NpYzp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwiLDEwMDoiZmF0In0sZHVvdG9uZTp7OTAwOiJmYWQiLDQwMDoiZmFkciIsMzAwOiJmYWRsIiwxMDA6ImZhZHQifSxzaGFycDp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLDMwMDoiZmFzbCIsMTAwOiJmYXN0In0sInNoYXJwLWR1b3RvbmUiOns5MDA6ImZhc2RzIiw0MDA6ImZhc2RyIiwzMDA6ImZhc2RsIiwxMDA6ImZhc2R0In0sc2xhYjp7NDAwOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7NDAwOiJmYXNscHIifSx3aGl0ZWJvYXJkOns2MDA6ImZhd3NiIn0sdGh1bWJwcmludDp7MzAwOiJmYXRsIn0sbm90ZG9nOns5MDA6ImZhbnMifSwibm90ZG9nLWR1byI6ezkwMDoiZmFuZHMifSxldGNoOns5MDA6ImZhZXMifSxncmFwaGl0ZTp7MTAwOiJmYWd0In0sY2hpc2VsOns0MDA6ImZhY3IifSxqZWxseTp7NDAwOiJmYWpyIn0sImplbGx5LWZpbGwiOns0MDA6ImZhamZyIn0sImplbGx5LWR1byI6ezQwMDoiZmFqZHIifSx1dGlsaXR5Ons2MDA6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7NjAwOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7NjAwOiJmYXVmc2IifX0sUkRhPXsiRm9udCBBd2Vzb21lIDcgRnJlZSI6ezkwMDoiZmFzIiw0MDA6ImZhciJ9LCJGb250IEF3ZXNvbWUgNyBQcm8iOns5MDA6ImZhcyIsNDAwOiJmYXIiLG5vcm1hbDoiZmFyIiwzMDA6ImZhbCIsMTAwOiJmYXQifSwiRm9udCBBd2Vzb21lIDcgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA3IER1b3RvbmUiOns5MDA6ImZhZCIsNDAwOiJmYWRyIixub3JtYWw6ImZhZHIiLDMwMDoiZmFkbCIsMTAwOiJmYWR0In0sIkZvbnQgQXdlc29tZSA3IFNoYXJwIjp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLG5vcm1hbDoiZmFzciIsMzAwOiJmYXNsIiwxMDA6ImZhc3QifSwiRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSI6ezkwMDoiZmFzZHMiLDQwMDoiZmFzZHIiLG5vcm1hbDoiZmFzZHIiLDMwMDoiZmFzZGwiLDEwMDoiZmFzZHQifSwiRm9udCBBd2Vzb21lIDcgSmVsbHkiOns0MDA6ImZhanIiLG5vcm1hbDoiZmFqciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBGaWxsIjp7NDAwOiJmYWpmciIsbm9ybWFsOiJmYWpmciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBEdW8iOns0MDA6ImZhamRyIixub3JtYWw6ImZhamRyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIiOns0MDA6ImZhc2xyIixub3JtYWw6ImZhc2xyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIgUHJlc3MiOns0MDA6ImZhc2xwciIsbm9ybWFsOiJmYXNscHIifSwiRm9udCBBd2Vzb21lIDcgVGh1bWJwcmludCI6ezMwMDoiZmF0bCIsbm9ybWFsOiJmYXRsIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyI6ezkwMDoiZmFucyIsbm9ybWFsOiJmYW5zIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8iOns5MDA6ImZhbmRzIixub3JtYWw6ImZhbmRzIn0sIkZvbnQgQXdlc29tZSA3IEV0Y2giOns5MDA6ImZhZXMiLG5vcm1hbDoiZmFlcyJ9LCJGb250IEF3ZXNvbWUgNyBHcmFwaGl0ZSI6ezEwMDoiZmFndCIsbm9ybWFsOiJmYWd0In0sIkZvbnQgQXdlc29tZSA3IENoaXNlbCI6ezQwMDoiZmFjciIsbm9ybWFsOiJmYWNyIn0sIkZvbnQgQXdlc29tZSA3IFdoaXRlYm9hcmQiOns2MDA6ImZhd3NiIixub3JtYWw6ImZhd3NiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkiOns2MDA6ImZhdXNiIixub3JtYWw6ImZhdXNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRHVvIjp7NjAwOiJmYXVkc2IiLG5vcm1hbDoiZmF1ZHNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRmlsbCI6ezYwMDoiZmF1ZnNiIixub3JtYWw6ImZhdWZzYiJ9fSxGRGE9bmV3IE1hcChbWyJjbGFzc2ljIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiIsImJyYW5kcyJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZHVvdG9uZSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWQiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc3MiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwLWR1b3RvbmUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzZHMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImNoaXNlbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWNyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJldGNoIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhZXMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZ3JhcGhpdGUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFndCIsZGVmYXVsdFN0eWxlSWQ6InRoaW4iLHN0eWxlSWRzOlsidGhpbiJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjEwMH1dLFsiamVsbHkiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFqciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiamVsbHktZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamRyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJqZWxseS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamZyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJub3Rkb2ciLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFucyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJub3Rkb2ctZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhbmRzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNsYWIiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbInNsYWItcHJlc3MiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHByIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJ0aHVtYnByaW50Iix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdGwiLGRlZmF1bHRTdHlsZUlkOiJsaWdodCIsc3R5bGVJZHM6WyJsaWdodCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjMwMH1dLFsidXRpbGl0eSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ1dGlsaXR5LWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVkc2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsidXRpbGl0eS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdWZzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ3aGl0ZWJvYXJkIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhd3NiIixkZWZhdWx0U3R5bGVJZDoic2VtaWJvbGQiLHN0eWxlSWRzOlsic2VtaWJvbGQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo2MDB9XV0pLEJEYT17Y2hpc2VsOntyZWd1bGFyOiJmYWNyIn0sY2xhc3NpYzp7YnJhbmRzOiJmYWIiLGxpZ2h0OiJmYWwiLHJlZ3VsYXI6ImZhciIsc29saWQ6ImZhcyIsdGhpbjoiZmF0In0sZHVvdG9uZTp7bGlnaHQ6ImZhZGwiLHJlZ3VsYXI6ImZhZHIiLHNvbGlkOiJmYWQiLHRoaW46ImZhZHQifSxldGNoOntzb2xpZDoiZmFlcyJ9LGdyYXBoaXRlOnt0aGluOiJmYWd0In0samVsbHk6e3JlZ3VsYXI6ImZhanIifSwiamVsbHktZHVvIjp7cmVndWxhcjoiZmFqZHIifSwiamVsbHktZmlsbCI6e3JlZ3VsYXI6ImZhamZyIn0sbm90ZG9nOntzb2xpZDoiZmFucyJ9LCJub3Rkb2ctZHVvIjp7c29saWQ6ImZhbmRzIn0sc2hhcnA6e2xpZ2h0OiJmYXNsIixyZWd1bGFyOiJmYXNyIixzb2xpZDoiZmFzcyIsdGhpbjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7bGlnaHQ6ImZhc2RsIixyZWd1bGFyOiJmYXNkciIsc29saWQ6ImZhc2RzIix0aGluOiJmYXNkdCJ9LHNsYWI6e3JlZ3VsYXI6ImZhc2xyIn0sInNsYWItcHJlc3MiOntyZWd1bGFyOiJmYXNscHIifSx0aHVtYnByaW50OntsaWdodDoiZmF0bCJ9LHV0aWxpdHk6e3NlbWlib2xkOiJmYXVzYiJ9LCJ1dGlsaXR5LWR1byI6e3NlbWlib2xkOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7c2VtaWJvbGQ6ImZhdWZzYiJ9LHdoaXRlYm9hcmQ6e3NlbWlib2xkOiJmYXdzYiJ9fSxoY3I9WyJmYWsiLCJmYS1raXQiLCJmYWtkIiwiZmEta2l0LWR1b3RvbmUiXSxtY3I9e2tpdDp7ZmFrOiJraXQiLCJmYS1raXQiOiJraXQifSwia2l0LWR1b3RvbmUiOntmYWtkOiJraXQtZHVvdG9uZSIsImZhLWtpdC1kdW90b25lIjoia2l0LWR1b3RvbmUifX0sSERhPVsia2l0Il0scURhPSJraXQiLFZEYT0ia2l0LWR1b3RvbmUiLGpEYT0iS2l0IixVRGE9IktpdCBEdW90b25lIix0TW49bXIobXIoe30scURhLGpEYSksVkRhLFVEYSksV0RhPXtraXQ6eyJmYS1raXQiOiJmYWsifSwia2l0LWR1b3RvbmUiOnsiZmEta2l0LWR1b3RvbmUiOiJmYWtkIn19LEdEYT17IkZvbnQgQXdlc29tZSBLaXQiOns0MDA6ImZhayIsbm9ybWFsOiJmYWsifSwiRm9udCBBd2Vzb21lIEtpdCBEdW90b25lIjp7NDAwOiJmYWtkIixub3JtYWw6ImZha2QifX0sWURhPXtraXQ6e2ZhazoiZmEta2l0In0sImtpdC1kdW90b25lIjp7ZmFrZDoiZmEta2l0LWR1b3RvbmUifX0sZ2NyPXtraXQ6e2tpdDoiZmFrIn0sImtpdC1kdW90b25lIjp7ImtpdC1kdW90b25lIjoiZmFrZCJ9fSxGM2U9e0dST1VQOiJkdW90b25lLWdyb3VwIixTV0FQX09QQUNJVFk6InN3YXAtb3BhY2l0eSIsUFJJTUFSWToicHJpbWFyeSIsU0VDT05EQVJZOiJzZWNvbmRhcnkifSxLRGE9WyJmYS1jbGFzc2ljIiwiZmEtZHVvdG9uZSIsImZhLXNoYXJwIiwiZmEtc2hhcnAtZHVvdG9uZSIsImZhLXRodW1icHJpbnQiLCJmYS13aGl0ZWJvYXJkIiwiZmEtbm90ZG9nIiwiZmEtbm90ZG9nLWR1byIsImZhLWNoaXNlbCIsImZhLWV0Y2giLCJmYS1ncmFwaGl0ZSIsImZhLWplbGx5IiwiZmEtamVsbHktZmlsbCIsImZhLWplbGx5LWR1byIsImZhLXNsYWIiLCJmYS1zbGFiLXByZXNzIiwiZmEtdXRpbGl0eSIsImZhLXV0aWxpdHktZHVvIiwiZmEtdXRpbGl0eS1maWxsIl0sWkRhPSJjbGFzc2ljIixRRGE9ImR1b3RvbmUiLFhEYT0ic2hhcnAiLEpEYT0ic2hhcnAtZHVvdG9uZSIsZSRhPSJjaGlzZWwiLHQkYT0iZXRjaCIsciRhPSJncmFwaGl0ZSIsYSRhPSJqZWxseSIsaSRhPSJqZWxseS1kdW8iLHMkYT0iamVsbHktZmlsbCIsbiRhPSJub3Rkb2ciLG8kYT0ibm90ZG9nLWR1byIsbCRhPSJzbGFiIixjJGE9InNsYWItcHJlc3MiLGQkYT0idGh1bWJwcmludCIsdSRhPSJ1dGlsaXR5IixwJGE9InV0aWxpdHktZHVvIixmJGE9InV0aWxpdHktZmlsbCIsaCRhPSJ3aGl0ZWJvYXJkIixtJGE9IkNsYXNzaWMiLGckYT0iRHVvdG9uZSIsYiRhPSJTaGFycCIseCRhPSJTaGFycCBEdW90b25lIix2JGE9IkNoaXNlbCIseSRhPSJFdGNoIix3JGE9IkdyYXBoaXRlIixrJGE9IkplbGx5IixTJGE9IkplbGx5IER1byIsTSRhPSJKZWxseSBGaWxsIixDJGE9Ik5vdGRvZyIseiRhPSJOb3Rkb2cgRHVvIixfJGE9IlNsYWIiLFQkYT0iU2xhYiBQcmVzcyIsTCRhPSJUaHVtYnByaW50IixEJGE9IlV0aWxpdHkiLCQkYT0iVXRpbGl0eSBEdW8iLEEkYT0iVXRpbGl0eSBGaWxsIixFJGE9IldoaXRlYm9hcmQiLHJNbj0oWEFlPXt9LG1yKG1yKG1yKG1yKG1yKG1yKG1yKG1yKG1yKG1yKFhBZSxaRGEsbSRhKSxRRGEsZyRhKSxYRGEsYiRhKSxKRGEseCRhKSxlJGEsdiRhKSx0JGEseSRhKSxyJGEsdyRhKSxhJGEsayRhKSxpJGEsUyRhKSxzJGEsTSRhKSxtcihtcihtcihtcihtcihtcihtcihtcihtcihYQWUsbiRhLEMkYSksbyRhLHokYSksbCRhLF8kYSksYyRhLFQkYSksZCRhLEwkYSksdSRhLEQkYSkscCRhLCQkYSksZiRhLEEkYSksaCRhLEUkYSkpLEkkYT0ia2l0IixQJGE9ImtpdC1kdW90b25lIixOJGE9IktpdCIsTyRhPSJLaXQgRHVvdG9uZSIsYU1uPW1yKG1yKHt9LEkkYSxOJGEpLFAkYSxPJGEpLFIkYT17Y2xhc3NpYzp7ImZhLWJyYW5kcyI6ImZhYiIsImZhLWR1b3RvbmUiOiJmYWQiLCJmYS1saWdodCI6ImZhbCIsImZhLXJlZ3VsYXIiOiJmYXIiLCJmYS1zb2xpZCI6ImZhcyIsImZhLXRoaW4iOiJmYXQifSxkdW90b25lOnsiZmEtcmVndWxhciI6ImZhZHIiLCJmYS1saWdodCI6ImZhZGwiLCJmYS10aGluIjoiZmFkdCJ9LHNoYXJwOnsiZmEtc29saWQiOiJmYXNzIiwiZmEtcmVndWxhciI6ImZhc3IiLCJmYS1saWdodCI6ImZhc2wiLCJmYS10aGluIjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7ImZhLXNvbGlkIjoiZmFzZHMiLCJmYS1yZWd1bGFyIjoiZmFzZHIiLCJmYS1saWdodCI6ImZhc2RsIiwiZmEtdGhpbiI6ImZhc2R0In0sc2xhYjp7ImZhLXJlZ3VsYXIiOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7ImZhLXJlZ3VsYXIiOiJmYXNscHIifSx3aGl0ZWJvYXJkOnsiZmEtc2VtaWJvbGQiOiJmYXdzYiJ9LHRodW1icHJpbnQ6eyJmYS1saWdodCI6ImZhdGwifSxub3Rkb2c6eyJmYS1zb2xpZCI6ImZhbnMifSwibm90ZG9nLWR1byI6eyJmYS1zb2xpZCI6ImZhbmRzIn0sZXRjaDp7ImZhLXNvbGlkIjoiZmFlcyJ9LGdyYXBoaXRlOnsiZmEtdGhpbiI6ImZhZ3QifSxqZWxseTp7ImZhLXJlZ3VsYXIiOiJmYWpyIn0sImplbGx5LWZpbGwiOnsiZmEtcmVndWxhciI6ImZhamZyIn0sImplbGx5LWR1byI6eyJmYS1yZWd1bGFyIjoiZmFqZHIifSxjaGlzZWw6eyJmYS1yZWd1bGFyIjoiZmFjciJ9LHV0aWxpdHk6eyJmYS1zZW1pYm9sZCI6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7ImZhLXNlbWlib2xkIjoiZmF1ZHNiIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6ImZhdWZzYiJ9fSxGJGE9e2NsYXNzaWM6WyJmYXMiLCJmYXIiLCJmYWwiLCJmYXQiLCJmYWQiXSxkdW90b25lOlsiZmFkciIsImZhZGwiLCJmYWR0Il0sc2hhcnA6WyJmYXNzIiwiZmFzciIsImZhc2wiLCJmYXN0Il0sInNoYXJwLWR1b3RvbmUiOlsiZmFzZHMiLCJmYXNkciIsImZhc2RsIiwiZmFzZHQiXSxzbGFiOlsiZmFzbHIiXSwic2xhYi1wcmVzcyI6WyJmYXNscHIiXSx3aGl0ZWJvYXJkOlsiZmF3c2IiXSx0aHVtYnByaW50OlsiZmF0bCJdLG5vdGRvZzpbImZhbnMiXSwibm90ZG9nLWR1byI6WyJmYW5kcyJdLGV0Y2g6WyJmYWVzIl0sZ3JhcGhpdGU6WyJmYWd0Il0samVsbHk6WyJmYWpyIl0sImplbGx5LWZpbGwiOlsiZmFqZnIiXSwiamVsbHktZHVvIjpbImZhamRyIl0sY2hpc2VsOlsiZmFjciJdLHV0aWxpdHk6WyJmYXVzYiJdLCJ1dGlsaXR5LWR1byI6WyJmYXVkc2IiXSwidXRpbGl0eS1maWxsIjpbImZhdWZzYiJdfSxKQWU9e2NsYXNzaWM6e2ZhYjoiZmEtYnJhbmRzIixmYWQ6ImZhLWR1b3RvbmUiLGZhbDoiZmEtbGlnaHQiLGZhcjoiZmEtcmVndWxhciIsZmFzOiJmYS1zb2xpZCIsZmF0OiJmYS10aGluIn0sZHVvdG9uZTp7ZmFkcjoiZmEtcmVndWxhciIsZmFkbDoiZmEtbGlnaHQiLGZhZHQ6ImZhLXRoaW4ifSxzaGFycDp7ZmFzczoiZmEtc29saWQiLGZhc3I6ImZhLXJlZ3VsYXIiLGZhc2w6ImZhLWxpZ2h0IixmYXN0OiJmYS10aGluIn0sInNoYXJwLWR1b3RvbmUiOntmYXNkczoiZmEtc29saWQiLGZhc2RyOiJmYS1yZWd1bGFyIixmYXNkbDoiZmEtbGlnaHQiLGZhc2R0OiJmYS10aGluIn0sc2xhYjp7ZmFzbHI6ImZhLXJlZ3VsYXIifSwic2xhYi1wcmVzcyI6e2Zhc2xwcjoiZmEtcmVndWxhciJ9LHdoaXRlYm9hcmQ6e2Zhd3NiOiJmYS1zZW1pYm9sZCJ9LHRodW1icHJpbnQ6e2ZhdGw6ImZhLWxpZ2h0In0sbm90ZG9nOntmYW5zOiJmYS1zb2xpZCJ9LCJub3Rkb2ctZHVvIjp7ZmFuZHM6ImZhLXNvbGlkIn0sZXRjaDp7ZmFlczoiZmEtc29saWQifSxncmFwaGl0ZTp7ZmFndDoiZmEtdGhpbiJ9LGplbGx5OntmYWpyOiJmYS1yZWd1bGFyIn0sImplbGx5LWZpbGwiOntmYWpmcjoiZmEtcmVndWxhciJ9LCJqZWxseS1kdW8iOntmYWpkcjoiZmEtcmVndWxhciJ9LGNoaXNlbDp7ZmFjcjoiZmEtcmVndWxhciJ9LHV0aWxpdHk6e2ZhdXNiOiJmYS1zZW1pYm9sZCJ9LCJ1dGlsaXR5LWR1byI6e2ZhdWRzYjoiZmEtc2VtaWJvbGQifSwidXRpbGl0eS1maWxsIjp7ZmF1ZnNiOiJmYS1zZW1pYm9sZCJ9fSxCJGE9WyJmYS1zb2xpZCIsImZhLXJlZ3VsYXIiLCJmYS1saWdodCIsImZhLXRoaW4iLCJmYS1kdW90b25lIiwiZmEtYnJhbmRzIiwiZmEtc2VtaWJvbGQiXSxiY3I9WyJmYSIsImZhcyIsImZhciIsImZhbCIsImZhdCIsImZhZCIsImZhZHIiLCJmYWRsIiwiZmFkdCIsImZhYiIsImZhc3MiLCJmYXNyIiwiZmFzbCIsImZhc3QiLCJmYXNkcyIsImZhc2RyIiwiZmFzZGwiLCJmYXNkdCIsImZhc2xyIiwiZmFzbHByIiwiZmF3c2IiLCJmYXRsIiwiZmFucyIsImZhbmRzIiwiZmFlcyIsImZhZ3QiLCJmYWpyIiwiZmFqZnIiLCJmYWpkciIsImZhY3IiLCJmYXVzYiIsImZhdWRzYiIsImZhdWZzYiJdLmNvbmNhdChLRGEsQiRhKSxIJGE9WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iLCJkdW90b25lIiwiYnJhbmRzIiwic2VtaWJvbGQiXSx4Y3I9WzEsMiwzLDQsNSw2LDcsOCw5LDEwXSxxJGE9eGNyLmNvbmNhdChbMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjBdKSxWJGE9WyJhdyIsImZ3IiwicHVsbC1sZWZ0IiwicHVsbC1yaWdodCJdLGokYT1bXS5jb25jYXQob2MoT2JqZWN0LmtleXMoRiRhKSksSCRhLFYkYSxbIjJ4cyIsInhzIiwic20iLCJsZyIsInhsIiwiMnhsIiwiYmVhdCIsImJvcmRlciIsImZhZGUiLCJiZWF0LWZhZGUiLCJib3VuY2UiLCJmbGlwLWJvdGgiLCJmbGlwLWhvcml6b250YWwiLCJmbGlwLXZlcnRpY2FsIiwiZmxpcCIsImludmVyc2UiLCJsYXllcnMiLCJsYXllcnMtYm90dG9tLWxlZnQiLCJsYXllcnMtYm90dG9tLXJpZ2h0IiwibGF5ZXJzLWNvdW50ZXIiLCJsYXllcnMtdGV4dCIsImxheWVycy10b3AtbGVmdCIsImxheWVycy10b3AtcmlnaHQiLCJsaSIsInB1bGwtZW5kIiwicHVsbC1zdGFydCIsInB1bHNlIiwicm90YXRlLTE4MCIsInJvdGF0ZS0yNzAiLCJyb3RhdGUtOTAiLCJyb3RhdGUtYnkiLCJzaGFrZSIsInNwaW4tcHVsc2UiLCJzcGluLXJldmVyc2UiLCJzcGluIiwic3RhY2stMXgiLCJzdGFjay0yeCIsInN0YWNrIiwidWwiLCJ3aWR0aC1hdXRvIiwid2lkdGgtZml4ZWQiLEYzZS5HUk9VUCxGM2UuU1dBUF9PUEFDSVRZLEYzZS5QUklNQVJZLEYzZS5TRUNPTkRBUlldKS5jb25jYXQoeGNyLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iIi5jb25jYXQodCwieCIpfSkpLmNvbmNhdChxJGEubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJ3LSIuY29uY2F0KHQpfSkpLFUkYT17IkZvbnQgQXdlc29tZSA1IEZyZWUiOns5MDA6ImZhcyIsNDAwOiJmYXIifSwiRm9udCBBd2Vzb21lIDUgUHJvIjp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwifSwiRm9udCBBd2Vzb21lIDUgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA1IER1b3RvbmUiOns5MDA6ImZhZCJ9fSxGND0iX19fRk9OVF9BV0VTT01FX19fIixlRWU9MTYsdmNyPSJmYSIseWNyPSJzdmctaW5saW5lLS1mYSIsYW09ImRhdGEtZmEtaTJzdmciLHRFZT0iZGF0YS1mYS1wc2V1ZG8tZWxlbWVudCIsVyRhPSJkYXRhLWZhLXBzZXVkby1lbGVtZW50LXBlbmRpbmciLHJFZT0iZGF0YS1wcmVmaXgiLGFFZT0iZGF0YS1pY29uIix3Y3I9ImZvbnRhd2Vzb21lLWkyc3ZnIixHJGE9ImFzeW5jIixZJGE9WyJIVE1MIiwiSEVBRCIsIlNUWUxFIiwiU0NSSVBUIl0sa2NyPVsiOjpiZWZvcmUiLCI6OmFmdGVyIiwiOmJlZm9yZSIsIjphZnRlciJdLFNjcj0oZnVuY3Rpb24oKXt0cnl7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fSkoKTtpKG1fLCJmYW1pbHlQcm94eSIpO01jcj1zdCh7fSxZMnIpO01jcltEbl09c3Qoc3Qoc3Qoc3Qoe30seyJmYS1kdW90b25lIjoiZHVvdG9uZSJ9KSxZMnJbRG5dKSxtY3Iua2l0KSxtY3JbImtpdC1kdW90b25lIl0pO0skYT1tXyhNY3IpLGlFZT1zdCh7fSxCRGEpO2lFZVtEbl09c3Qoc3Qoc3Qoc3Qoe30se2R1b3RvbmU6ImZhZCJ9KSxpRWVbRG5dKSxnY3Iua2l0KSxnY3JbImtpdC1kdW90b25lIl0pO0Njcj1tXyhpRWUpLHNFZT1zdCh7fSxKQWUpO3NFZVtEbl09c3Qoc3Qoe30sc0VlW0RuXSksWURhLmtpdCk7bkVlPW1fKHNFZSksb0VlPXN0KHt9LFIkYSk7b0VlW0RuXT1zdChzdCh7fSxvRWVbRG5dKSxXRGEua2l0KTtpTW49bV8ob0VlKSxaJGE9bURhLHpjcj0iZmEtbGF5ZXJzLXRleHQiLFEkYT1nRGEsWCRhPXN0KHt9LE9EYSksc01uPW1fKFgkYSksSiRhPVsiY2xhc3MiLCJkYXRhLXByZWZpeCIsImRhdGEtaWNvbiIsImRhdGEtZmEtdHJhbnNmb3JtIiwiZGF0YS1mYS1tYXNrIl0sbEVlPWJEYSxlQWE9W10uY29uY2F0KG9jKEhEYSksb2MoaiRhKSksZ189THAuRm9udEF3ZXNvbWVDb25maWd8fHt9O2kodEFhLCJnZXRBdHRyQ29uZmlnIik7aShyQWEsImNvZXJjZSIpLGRpJiZ0eXBlb2YgZGkucXVlcnlTZWxlY3Rvcj09ImZ1bmN0aW9uIiYmKF9jcj1bWyJkYXRhLWZhbWlseS1wcmVmaXgiLCJmYW1pbHlQcmVmaXgiXSxbImRhdGEtY3NzLXByZWZpeCIsImNzc1ByZWZpeCJdLFsiZGF0YS1mYW1pbHktZGVmYXVsdCIsImZhbWlseURlZmF1bHQiXSxbImRhdGEtc3R5bGUtZGVmYXVsdCIsInN0eWxlRGVmYXVsdCJdLFsiZGF0YS1yZXBsYWNlbWVudC1jbGFzcyIsInJlcGxhY2VtZW50Q2xhc3MiXSxbImRhdGEtYXV0by1yZXBsYWNlLXN2ZyIsImF1dG9SZXBsYWNlU3ZnIl0sWyJkYXRhLWF1dG8tYWRkLWNzcyIsImF1dG9BZGRDc3MiXSxbImRhdGEtc2VhcmNoLXBzZXVkby1lbGVtZW50cyIsInNlYXJjaFBzZXVkb0VsZW1lbnRzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMtd2FybmluZ3MiLCJzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMtZnVsbC1zY2FuIiwic2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbiJdLFsiZGF0YS1vYnNlcnZlLW11dGF0aW9ucyIsIm9ic2VydmVNdXRhdGlvbnMiXSxbImRhdGEtbXV0YXRlLWFwcHJvYWNoIiwibXV0YXRlQXBwcm9hY2giXSxbImRhdGEta2VlcC1vcmlnaW5hbC1zb3VyY2UiLCJrZWVwT3JpZ2luYWxTb3VyY2UiXSxbImRhdGEtbWVhc3VyZS1wZXJmb3JtYW5jZSIsIm1lYXN1cmVQZXJmb3JtYW5jZSJdLFsiZGF0YS1zaG93LW1pc3NpbmctaWNvbnMiLCJzaG93TWlzc2luZ0ljb25zIl1dLF9jci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPU4zZSh0LDIpLHI9ZVswXSxhPWVbMV0scz1yQWEodEFhKHIpKTtzIT1udWxsJiYoZ19bYV09cyl9KSk7VGNyPXtzdHlsZURlZmF1bHQ6InNvbGlkIixmYW1pbHlEZWZhdWx0OkRuLGNzc1ByZWZpeDp2Y3IscmVwbGFjZW1lbnRDbGFzczp5Y3IsYXV0b1JlcGxhY2VTdmc6ITAsYXV0b0FkZENzczohMCxzZWFyY2hQc2V1ZG9FbGVtZW50czohMSxzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzOiEwLHNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW46ITEsb2JzZXJ2ZU11dGF0aW9uczohMCxtdXRhdGVBcHByb2FjaDoiYXN5bmMiLGtlZXBPcmlnaW5hbFNvdXJjZTohMCxtZWFzdXJlUGVyZm9ybWFuY2U6ITEsc2hvd01pc3NpbmdJY29uczohMH07Z18uZmFtaWx5UHJlZml4JiYoZ18uY3NzUHJlZml4PWdfLmZhbWlseVByZWZpeCk7a3k9c3Qoc3Qoe30sVGNyKSxnXyk7a3kuYXV0b1JlcGxhY2VTdmd8fChreS5vYnNlcnZlTXV0YXRpb25zPSExKTtxdD17fTtPYmplY3Qua2V5cyhUY3IpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHF0LHQse2VudW1lcmFibGU6ITAsc2V0OmkoZnVuY3Rpb24ocil7a3lbdF09cixiXy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBhKHF0KX0pfSwic2V0IiksZ2V0OmkoZnVuY3Rpb24oKXtyZXR1cm4ga3lbdF19LCJnZXQiKX0pfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHF0LCJmYW1pbHlQcmVmaXgiLHtlbnVtZXJhYmxlOiEwLHNldDppKGZ1bmN0aW9uKGUpe2t5LmNzc1ByZWZpeD1lLGJfLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIHIocXQpfSl9LCJzZXQiKSxnZXQ6aShmdW5jdGlvbigpe3JldHVybiBreS5jc3NQcmVmaXh9LCJnZXQiKX0pLExwLkZvbnRBd2Vzb21lQ29uZmlnPXF0O2JfPVtdO2koYUFhLCJvbkNoYW5nZSIpO0RwPWVFZSxyZD17c2l6ZToxNix4OjAseTowLHJvdGF0ZTowLGZsaXBYOiExLGZsaXBZOiExfTtpKGlBYSwiaW5zZXJ0Q3NzIik7c0FhPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7aShMY3IsIm5leHRVbmlxdWVJZCIpO2koU3ksInRvQXJyYXkiKTtpKGNFZSwiY2xhc3NBcnJheSIpO2koRGNyLCJodG1sRXNjYXBlIik7aShuQWEsImpvaW5BdHRyaWJ1dGVzIik7aShCM2UsImpvaW5TdHlsZXMiKTtpKGRFZSwidHJhbnNmb3JtSXNNZWFuaW5nZnVsIik7aShvQWEsInRyYW5zZm9ybUZvclN2ZyIpO2kobEFhLCJ0cmFuc2Zvcm1Gb3JDc3MiKTtjQWE9YDpyb290LCA6aG9zdCB7CiAgLS1mYS1mb250LXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBGcmVlJzsKICAtLWZhLWZvbnQtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRnJlZSc7CiAgLS1mYS1mb250LWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBQcm8nOwogIC0tZmEtZm9udC10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBQcm8nOwogIC0tZmEtZm9udC1kdW90b25lOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtZHVvdG9uZS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtZHVvdG9uZS1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWR1b3RvbmUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWJyYW5kczogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgQnJhbmRzJzsKICAtLWZhLWZvbnQtc2hhcnAtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCc7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2xhYi1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTbGFiJzsKICAtLWZhLWZvbnQtc2xhYi1wcmVzcy1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTbGFiIFByZXNzJzsKICAtLWZhLWZvbnQtd2hpdGVib2FyZC1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgV2hpdGVib2FyZCc7CiAgLS1mYS1mb250LXRodW1icHJpbnQtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFRodW1icHJpbnQnOwogIC0tZmEtZm9udC1ub3Rkb2ctc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IE5vdGRvZyc7CiAgLS1mYS1mb250LW5vdGRvZy1kdW8tc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8nOwogIC0tZmEtZm9udC1ldGNoLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBFdGNoJzsKICAtLWZhLWZvbnQtZ3JhcGhpdGUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgR3JhcGhpdGUnOwogIC0tZmEtZm9udC1qZWxseS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBKZWxseSc7CiAgLS1mYS1mb250LWplbGx5LWZpbGwtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgSmVsbHkgRmlsbCc7CiAgLS1mYS1mb250LWplbGx5LWR1by1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBKZWxseSBEdW8nOwogIC0tZmEtZm9udC1jaGlzZWwtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgQ2hpc2VsJzsKICAtLWZhLWZvbnQtdXRpbGl0eS1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVXRpbGl0eSc7CiAgLS1mYS1mb250LXV0aWxpdHktZHVvLXNlbWlib2xkOiBub3JtYWwgNjAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBVdGlsaXR5IER1byc7CiAgLS1mYS1mb250LXV0aWxpdHktZmlsbC1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVXRpbGl0eSBGaWxsJzsKfQoKLnN2Zy1pbmxpbmUtLWZhIHsKICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKICBkaXNwbGF5OiB2YXIoLS1mYS1kaXNwbGF5LCBpbmxpbmUtYmxvY2spOwogIGhlaWdodDogMWVtOwogIG92ZXJmbG93OiB2aXNpYmxlOwogIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgsIDEuMjVlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLTJ4cyB7CiAgdmVydGljYWwtYWxpZ246IDAuMWVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS14cyB7CiAgdmVydGljYWwtYWxpZ246IDBlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtc20gewogIHZlcnRpY2FsLWFsaWduOiAtMC4wNzE0Mjg1NzE0ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLWxnIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMmVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS14bCB7CiAgdmVydGljYWwtYWxpZ246IC0wLjI1ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLTJ4bCB7CiAgdmVydGljYWwtYWxpZ246IC0wLjMxMjVlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtcHVsbC1sZWZ0LAouc3ZnLWlubGluZS0tZmEgLmZhLXB1bGwtc3RhcnQgewogIGZsb2F0OiBpbmxpbmUtc3RhcnQ7CiAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXB1bGwtcmlnaHQsCi5zdmctaW5saW5lLS1mYSAuZmEtcHVsbC1lbmQgewogIGZsb2F0OiBpbmxpbmUtZW5kOwogIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLWxpIHsKICB3aWR0aDogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSk7CiAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSkpOwogIGluc2V0LWJsb2NrLXN0YXJ0OiAwLjI1ZW07IC8qIHN5bmNpbmcgdmVydGljYWwgYWxpZ25tZW50IHdpdGggV2ViIEZvbnQgcmVuZGVyaW5nICovCn0KCi5mYS1sYXllcnMtY291bnRlciwgLmZhLWxheWVycy10ZXh0IHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLmZhLWxheWVycyB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGhlaWdodDogMWVtOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCwgMS4yNWVtKTsKfQouZmEtbGF5ZXJzIC5zdmctaW5saW5lLS1mYSB7CiAgaW5zZXQ6IDA7CiAgbWFyZ2luOiBhdXRvOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwp9CgouZmEtbGF5ZXJzLXRleHQgewogIGxlZnQ6IDUwJTsKICB0b3A6IDUwJTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwp9CgouZmEtbGF5ZXJzLWNvdW50ZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZhLWNvdW50ZXItYmFja2dyb3VuZC1jb2xvciwgI2ZmMjUzYSk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmEtY291bnRlci1ib3JkZXItcmFkaXVzLCAxZW0pOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgY29sb3I6IHZhcigtLWZhLWludmVyc2UsICNmZmYpOwogIGxpbmUtaGVpZ2h0OiB2YXIoLS1mYS1jb3VudGVyLWxpbmUtaGVpZ2h0LCAxKTsKICBtYXgtd2lkdGg6IHZhcigtLWZhLWNvdW50ZXItbWF4LXdpZHRoLCA1ZW0pOwogIG1pbi13aWR0aDogdmFyKC0tZmEtY291bnRlci1taW4td2lkdGgsIDEuNWVtKTsKICBvdmVyZmxvdzogaGlkZGVuOwogIHBhZGRpbmc6IHZhcigtLWZhLWNvdW50ZXItcGFkZGluZywgMC4yNWVtIDAuNWVtKTsKICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHRvcDogdmFyKC0tZmEtdG9wLCAwKTsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWNvdW50ZXItc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7Cn0KCi5mYS1sYXllcnMtYm90dG9tLXJpZ2h0IHsKICBib3R0b206IHZhcigtLWZhLWJvdHRvbSwgMCk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0b3A6IGF1dG87CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gcmlnaHQ7Cn0KCi5mYS1sYXllcnMtYm90dG9tLWxlZnQgewogIGJvdHRvbTogdmFyKC0tZmEtYm90dG9tLCAwKTsKICBsZWZ0OiB2YXIoLS1mYS1sZWZ0LCAwKTsKICByaWdodDogYXV0bzsKICB0b3A6IGF1dG87CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDsKfQoKLmZhLWxheWVycy10b3AtcmlnaHQgewogIHRvcDogdmFyKC0tZmEtdG9wLCAwKTsKICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLXRvcC1sZWZ0IHsKICBsZWZ0OiB2YXIoLS1mYS1sZWZ0LCAwKTsKICByaWdodDogYXV0bzsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsKfQoKLmZhLTF4IHsKICBmb250LXNpemU6IDFlbTsKfQoKLmZhLTJ4IHsKICBmb250LXNpemU6IDJlbTsKfQoKLmZhLTN4IHsKICBmb250LXNpemU6IDNlbTsKfQoKLmZhLTR4IHsKICBmb250LXNpemU6IDRlbTsKfQoKLmZhLTV4IHsKICBmb250LXNpemU6IDVlbTsKfQoKLmZhLTZ4IHsKICBmb250LXNpemU6IDZlbTsKfQoKLmZhLTd4IHsKICBmb250LXNpemU6IDdlbTsKfQoKLmZhLTh4IHsKICBmb250LXNpemU6IDhlbTsKfQoKLmZhLTl4IHsKICBmb250LXNpemU6IDllbTsKfQoKLmZhLTEweCB7CiAgZm9udC1zaXplOiAxMGVtOwp9CgouZmEtMnhzIHsKICBmb250LXNpemU6IGNhbGMoMTAgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMTBweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAxMCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMTAgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEteHMgewogIGZvbnQtc2l6ZTogY2FsYygxMiAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAxMnB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDEyICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAxMiAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS1zbSB7CiAgZm9udC1zaXplOiBjYWxjKDE0IC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDE0cHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMTQgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDE0IC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLWxnIHsKICBmb250LXNpemU6IGNhbGMoMjAgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMjBweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAyMCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMjAgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEteGwgewogIGZvbnQtc2l6ZTogY2FsYygyNCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAyNHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDI0ICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAyNCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS0yeGwgewogIGZvbnQtc2l6ZTogY2FsYygzMiAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAzMnB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDMyICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAzMiAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS13aWR0aC1hdXRvIHsKICAtLWZhLXdpZHRoOiBhdXRvOwp9CgouZmEtZncsCi5mYS13aWR0aC1maXhlZCB7CiAgLS1mYS13aWR0aDogMS4yNWVtOwp9CgouZmEtdWwgewogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1saS1tYXJnaW4sIDIuNWVtKTsKICBwYWRkaW5nLWlubGluZS1zdGFydDogMDsKfQouZmEtdWwgPiBsaSB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouZmEtbGkgewogIGluc2V0LWlubGluZS1zdGFydDogY2FsYygtMSAqIHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pKTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHdpZHRoOiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKTsKICBsaW5lLWhlaWdodDogaW5oZXJpdDsKfQoKLyogSGVhZHMgVXA6IEJvcmRlcmVkIEljb25zIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiB0aGUgZnV0dXJlIQogIC0gVGhpcyBmZWF0dXJlIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlIG9mIEZvbnQgQXdlc29tZSAodjgpIQogIC0gWW91IG1heSBjb250aW51ZSB0byB1c2UgaXQgaW4gdGhpcyB2ZXJzaW9uICp2NyksIGJ1dCBpdCB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgaW4gRm9udCBBd2Vzb21lIHY4LgoqLwovKiBOb3RlczoKKiAtLUB7di4kY3NzLXByZWZpeH0tYm9yZGVyLXdpZHRoID0gMS8xNiBieSBkZWZhdWx0ICh0byByZW5kZXIgYXMgfjFweCBiYXNlZCBvbiBhIDE2cHggZGVmYXVsdCBmb250LXNpemUpCiogLS1Ae3YuJGNzcy1wcmVmaXh9LWJvcmRlci1wYWRkaW5nID0KICAqKiAzLzE2IGZvciB2ZXJ0aWNhbCBwYWRkaW5nICh0byBnaXZlIH4ycHggb2YgdmVydGljYWwgd2hpdGVzcGFjZSBhcm91bmQgYW4gaWNvbiBjb25zaWRlcmluZyBpdCdzIHZlcnRpY2FsIGFsaWdubWVudCkKICAqKiA0LzE2IGZvciBob3Jpem9udGFsIHBhZGRpbmcgKHRvIGdpdmUgfjRweCBvZiBob3Jpem9udGFsIHdoaXRlc3BhY2UgYXJvdW5kIGFuIGljb24pCiovCi5mYS1ib3JkZXIgewogIGJvcmRlci1jb2xvcjogdmFyKC0tZmEtYm9yZGVyLWNvbG9yLCAjZWVlKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYS1ib3JkZXItcmFkaXVzLCAwLjFlbSk7CiAgYm9yZGVyLXN0eWxlOiB2YXIoLS1mYS1ib3JkZXItc3R5bGUsIHNvbGlkKTsKICBib3JkZXItd2lkdGg6IHZhcigtLWZhLWJvcmRlci13aWR0aCwgMC4wNjI1ZW0pOwogIGJveC1zaXppbmc6IHZhcigtLWZhLWJvcmRlci1ib3gtc2l6aW5nLCBjb250ZW50LWJveCk7CiAgcGFkZGluZzogdmFyKC0tZmEtYm9yZGVyLXBhZGRpbmcsIDAuMTg3NWVtIDAuMjVlbSk7Cn0KCi5mYS1wdWxsLWxlZnQsCi5mYS1wdWxsLXN0YXJ0IHsKICBmbG9hdDogaW5saW5lLXN0YXJ0OwogIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9CgouZmEtcHVsbC1yaWdodCwKLmZhLXB1bGwtZW5kIHsKICBmbG9hdDogaW5saW5lLWVuZDsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9CgouZmEtYmVhdCB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJlYXQ7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGVhc2UtaW4tb3V0KTsKfQoKLmZhLWJvdW5jZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJvdW5jZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuMjgsIDAuODQsIDAuNDIsIDEpKTsKfQoKLmZhLWZhZGUgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1mYWRlOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpKTsKfQoKLmZhLWJlYXQtZmFkZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJlYXQtZmFkZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSk7Cn0KCi5mYS1mbGlwIHsKICBhbmltYXRpb24tbmFtZTogZmEtZmxpcDsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgZWFzZS1pbi1vdXQpOwp9CgouZmEtc2hha2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zaGFrZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgbGluZWFyKTsKfQoKLmZhLXNwaW4gewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zcGluOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMnMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBsaW5lYXIpOwp9CgouZmEtc3Bpbi1yZXZlcnNlIHsKICAtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7Cn0KCi5mYS1wdWxzZSwKLmZhLXNwaW4tcHVsc2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1zcGluOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgc3RlcHMoOCkpOwp9CgpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogIC5mYS1iZWF0LAogIC5mYS1ib3VuY2UsCiAgLmZhLWZhZGUsCiAgLmZhLWJlYXQtZmFkZSwKICAuZmEtZmxpcCwKICAuZmEtcHVsc2UsCiAgLmZhLXNoYWtlLAogIC5mYS1zcGluLAogIC5mYS1zcGluLXB1bHNlIHsKICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIH0KfQpAa2V5ZnJhbWVzIGZhLWJlYXQgewogIDAlLCA5MCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9CiAgNDUlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYmVhdC1zY2FsZSwgMS4yNSkpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWJvdW5jZSB7CiAgMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApOwogIH0KICAxMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteCwgMS4xKSwgdmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXksIDAuOSkpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDMwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXgsIDAuOSksIHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXksIDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tZmEtYm91bmNlLWhlaWdodCwgLTAuNWVtKSk7CiAgfQogIDUwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXgsIDEuMDUpLCB2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS15LCAwLjk1KSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgNTclIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtcmVib3VuZCwgLTAuMTI1ZW0pKTsKICB9CiAgNjQlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtZmFkZSB7CiAgNTAlIHsKICAgIG9wYWNpdHk6IHZhcigtLWZhLWZhZGUtb3BhY2l0eSwgMC40KTsKICB9Cn0KQGtleWZyYW1lcyBmYS1iZWF0LWZhZGUgewogIDAlLCAxMDAlIHsKICAgIG9wYWNpdHk6IHZhcigtLWZhLWJlYXQtZmFkZS1vcGFjaXR5LCAwLjQpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9CiAgNTAlIHsKICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJlYXQtZmFkZS1zY2FsZSwgMS4xMjUpKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1mbGlwIHsKICA1MCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUzZCh2YXIoLS1mYS1mbGlwLXgsIDApLCB2YXIoLS1mYS1mbGlwLXksIDEpLCB2YXIoLS1mYS1mbGlwLXosIDApLCB2YXIoLS1mYS1mbGlwLWFuZ2xlLCAtMTgwZGVnKSk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtc2hha2UgewogIDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNWRlZyk7CiAgfQogIDQlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKTsKICB9CiAgOCUsIDI0JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMThkZWcpOwogIH0KICAxMiUsIDI4JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxOGRlZyk7CiAgfQogIDE2JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjJkZWcpOwogIH0KICAyMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMjJkZWcpOwogIH0KICAzMiUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTEyZGVnKTsKICB9CiAgMzYlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDEyZGVnKTsKICB9CiAgNDAlLCAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLXNwaW4gewogIDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KICAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgfQp9Ci5mYS1yb3RhdGUtOTAgewogIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsKfQoKLmZhLXJvdGF0ZS0xODAgewogIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Cn0KCi5mYS1yb3RhdGUtMjcwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOwp9CgouZmEtZmxpcC1ob3Jpem9udGFsIHsKICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTsKfQoKLmZhLWZsaXAtdmVydGljYWwgewogIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpOwp9CgouZmEtZmxpcC1ib3RoLAouZmEtZmxpcC1ob3Jpem9udGFsLmZhLWZsaXAtdmVydGljYWwgewogIHRyYW5zZm9ybTogc2NhbGUoLTEsIC0xKTsKfQoKLmZhLXJvdGF0ZS1ieSB7CiAgdHJhbnNmb3JtOiByb3RhdGUodmFyKC0tZmEtcm90YXRlLWFuZ2xlLCAwKSk7Cn0KCi5zdmctaW5saW5lLS1mYSAuZmEtcHJpbWFyeSB7CiAgZmlsbDogdmFyKC0tZmEtcHJpbWFyeS1jb2xvciwgY3VycmVudENvbG9yKTsKICBvcGFjaXR5OiB2YXIoLS1mYS1wcmltYXJ5LW9wYWNpdHksIDEpOwp9Cgouc3ZnLWlubGluZS0tZmEgLmZhLXNlY29uZGFyeSB7CiAgZmlsbDogdmFyKC0tZmEtc2Vjb25kYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpOwogIG9wYWNpdHk6IHZhcigtLWZhLXNlY29uZGFyeS1vcGFjaXR5LCAwLjQpOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtc3dhcC1vcGFjaXR5IC5mYS1wcmltYXJ5IHsKICBvcGFjaXR5OiB2YXIoLS1mYS1zZWNvbmRhcnktb3BhY2l0eSwgMC40KTsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLXN3YXAtb3BhY2l0eSAuZmEtc2Vjb25kYXJ5IHsKICBvcGFjaXR5OiB2YXIoLS1mYS1wcmltYXJ5LW9wYWNpdHksIDEpOwp9Cgouc3ZnLWlubGluZS0tZmEgbWFzayAuZmEtcHJpbWFyeSwKLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXNlY29uZGFyeSB7CiAgZmlsbDogYmxhY2s7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1pbnZlcnNlIHsKICBmaWxsOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTsKfQoKLmZhLXN0YWNrIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgaGVpZ2h0OiAyZW07CiAgbGluZS1oZWlnaHQ6IDJlbTsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICB3aWR0aDogMi41ZW07Cn0KCi5mYS1pbnZlcnNlIHsKICBjb2xvcjogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0xeCB7CiAgLS1mYS13aWR0aDogMS4yNWVtOwogIGhlaWdodDogMWVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCk7Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXN0YWNrLTJ4IHsKICAtLWZhLXdpZHRoOiAyLjVlbTsKICBoZWlnaHQ6IDJlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgpOwp9CgouZmEtc3RhY2stMXgsCi5mYS1zdGFjay0yeCB7CiAgaW5zZXQ6IDA7CiAgbWFyZ2luOiBhdXRvOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB6LWluZGV4OiB2YXIoLS1mYS1zdGFjay16LWluZGV4LCBhdXRvKTsKfWA7aSgkY3IsImNzcyIpO0Fjcj0hMTtpKHVFZSwiZW5zdXJlQ3NzIik7ZEFhPXttaXhvdXQ6aShmdW5jdGlvbigpe3JldHVybntkb206e2NzczokY3IsaW5zZXJ0Q3NzOnVFZX19fSwibWl4b3V0IiksaG9va3M6aShmdW5jdGlvbigpe3JldHVybntiZWZvcmVET01FbGVtZW50Q3JlYXRpb246aShmdW5jdGlvbigpe3VFZSgpfSwiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIiksYmVmb3JlSTJzdmc6aShmdW5jdGlvbigpe3VFZSgpfSwiYmVmb3JlSTJzdmciKX19LCJob29rcyIpfSxCND1McHx8e307QjRbRjRdfHwoQjRbRjRdPXt9KSxCNFtGNF0uc3R5bGVzfHwoQjRbRjRdLnN0eWxlcz17fSksQjRbRjRdLmhvb2tzfHwoQjRbRjRdLmhvb2tzPXt9KSxCNFtGNF0uc2hpbXN8fChCNFtGNF0uc2hpbXM9W10pO2xjPUI0W0Y0XSxFY3I9W10sSWNyPWkoZnVuY3Rpb24oKXtkaS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixJY3IpLEgzZT0xLEVjci5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0pfSwibGlzdGVuZXIiKSxIM2U9ITE7UjQmJihIM2U9KGRpLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD8vXmxvYWRlZHxeYy86L15sb2FkZWR8Xml8XmMvKS50ZXN0KGRpLnJlYWR5U3RhdGUpLEgzZXx8ZGkuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsSWNyKSk7aSh1QWEsImRvbXJlYWR5Iik7aSh4XywidG9IdG1sIik7aShQY3IsImljb25Gcm9tTWFwcGluZyIpO3BBYT1pKGZ1bmN0aW9uKGUscil7cmV0dXJuIGZ1bmN0aW9uKGEscyxuLG8pe3JldHVybiBlLmNhbGwocixhLHMsbixvKX19LCJiaW5kSW50ZXJuYWw0IikscEVlPWkoZnVuY3Rpb24oZSxyLGEscyl7dmFyIG49T2JqZWN0LmtleXMoZSksbz1uLmxlbmd0aCxsPXMhPT12b2lkIDA/cEFhKHIscyk6cixjLGQsZjtmb3IoYT09PXZvaWQgMD8oYz0xLGY9ZVtuWzBdXSk6KGM9MCxmPWEpO2M8bztjKyspZD1uW2NdLGY9bChmLGVbZF0sZCxlKTtyZXR1cm4gZn0sImZhc3RSZWR1Y2VPYmplY3QiKTtpKE5jciwidG9IZXgiKTtpKE9jciwibm9ybWFsaXplSWNvbnMiKTtpKGZFZSwiZGVmaW5lSWNvbnMiKTtoRWU9MSxjYz0yLG5Nbj1bW2NjLHlvKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi4qcGF0aC4qZD0iKFteIl0qKSIvLHtkMjoyLGQxOjN9KV0sW2NjLHlvKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi8se2QyOjJ9KV0sW2hFZSx5bygvcGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiLipkPSIoW14iXSspIi8se2QxOjF9KV1dLG9Nbj1bW2NjLHlvKC9wYXRoIGNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLipkPSIoW14iXSspIi4qcGF0aCBjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjI6MSxkMjoyLGF0dHIxOjMsZDE6NH0pXSxbY2MseW8oL3BhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi4qcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMToxLGQxOjIsYXR0cjI6MyxkMjo0fSldLFtjYyx5bygvcGF0aCBjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjE6MSxkMToyfSldLFtjYyx5bygvcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMjoxLGQyOjJ9KV0sW2NjLHlvKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLyx7ZDI6MSxhdHRyMjoyLGQxOjMsYXR0cjE6NH0pXSxbY2MseW8oL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIvLHtkMToxLGF0dHIxOjIsZDI6MyxhdHRyMjo0fSldLFtjYyx5bygvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLyx7ZDE6MSxhdHRyMToyfSldLFtjYyx5bygvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIvLHtkMjoxLGF0dHIyOjJ9KV0sW2NjLHlvKC9wYXRoIGQ9IihbXiJdKykiLipwYXRoIGQ9IihbXiJdKykiLyx7ZDE6MSxkMjoyfSldLFtoRWUseW8oL3BhdGggZD0iKFteIl0rKSIvLHtkMToxfSldLFtoRWUseW8oL3BhdGggc3R5bGU9IihbXiJdKykiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6Mn0pXV0sdl89bGMuc3R5bGVzLGZBYT1sYy5zaGltcyxSY3I9T2JqZWN0LmtleXMobkVlKSxoQWE9UmNyLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiB0W2VdPU9iamVjdC5rZXlzKG5FZVtlXSksdH0se30pLG1FZT1udWxsLEZjcj17fSxCY3I9e30sSGNyPXt9LHFjcj17fSxWY3I9e307aShtQWEsImlzUmVzZXJ2ZWQiKTtpKGdBYSwiZ2V0SWNvbk5hbWUiKTtqY3I9aShmdW5jdGlvbigpe3ZhciBlPWkoZnVuY3Rpb24obil7cmV0dXJuIHBFZSh2XyxmdW5jdGlvbihvLGwsYyl7cmV0dXJuIG9bY109cEVlKGwsbix7fSksb30se30pfSwibG9va3VwIik7RmNyPWUoZnVuY3Rpb24ocyxuLG8pe2lmKG5bM10mJihzW25bM11dPW8pLG5bMl0pe3ZhciBsPW5bMl0uZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiB0eXBlb2YgYz09Im51bWJlciJ9KTtsLmZvckVhY2goZnVuY3Rpb24oYyl7c1tjLnRvU3RyaW5nKDE2KV09b30pfXJldHVybiBzfSksQmNyPWUoZnVuY3Rpb24ocyxuLG8pe2lmKHNbb109byxuWzJdKXt2YXIgbD1uWzJdLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gdHlwZW9mIGM9PSJzdHJpbmcifSk7bC5mb3JFYWNoKGZ1bmN0aW9uKGMpe3NbY109b30pfXJldHVybiBzfSksVmNyPWUoZnVuY3Rpb24ocyxuLG8pe3ZhciBsPW5bMl07cmV0dXJuIHNbb109byxsLmZvckVhY2goZnVuY3Rpb24oYyl7c1tjXT1vfSksc30pO3ZhciByPSJmYXIiaW4gdl98fHF0LmF1dG9GZXRjaFN2ZyxhPXBFZShmQWEsZnVuY3Rpb24ocyxuKXt2YXIgbz1uWzBdLGw9blsxXSxjPW5bMl07cmV0dXJuIGw9PT0iZmFyIiYmIXImJihsPSJmYXMiKSx0eXBlb2Ygbz09InN0cmluZyImJihzLm5hbWVzW29dPXtwcmVmaXg6bCxpY29uTmFtZTpjfSksdHlwZW9mIG89PSJudW1iZXIiJiYocy51bmljb2Rlc1tvLnRvU3RyaW5nKDE2KV09e3ByZWZpeDpsLGljb25OYW1lOmN9KSxzfSx7bmFtZXM6e30sdW5pY29kZXM6e319KTtIY3I9YS5uYW1lcyxxY3I9YS51bmljb2RlcyxtRWU9cTNlKHF0LnN0eWxlRGVmYXVsdCx7ZmFtaWx5OnF0LmZhbWlseURlZmF1bHR9KX0sImJ1aWxkIik7YUFhKGZ1bmN0aW9uKHQpe21FZT1xM2UodC5zdHlsZURlZmF1bHQse2ZhbWlseTpxdC5mYW1pbHlEZWZhdWx0fSl9KSxqY3IoKTtpKGdFZSwiYnlVbmljb2RlIik7aShiQWEsImJ5TGlnYXR1cmUiKTtpKGltLCJieUFsaWFzIik7aShVY3IsImJ5T2xkTmFtZSIpO2koeEFhLCJieU9sZFVuaWNvZGUiKTtpKCRwLCJnZXREZWZhdWx0VXNhYmxlUHJlZml4Iik7V2NyPWkoZnVuY3Rpb24oKXtyZXR1cm57cHJlZml4Om51bGwsaWNvbk5hbWU6bnVsbCxyZXN0OltdfX0sImVtcHR5Q2Fub25pY2FsSWNvbiIpO2kodkFhLCJnZXRGYW1pbHlJZCIpO2kocTNlLCJnZXRDYW5vbmljYWxQcmVmaXgiKTtpKHlBYSwibW92ZU5vbkZhQ2xhc3Nlc1RvUmVzdCIpO2koR2NyLCJzb3J0ZWRVbmlxdWVWYWx1ZXMiKTtZY3I9YmNyLmNvbmNhdChoY3IpO2koVjNlLCJnZXRDYW5vbmljYWxJY29uIik7aSh3QWEsImFwcGx5U2hpbUFuZEFsaWFzIik7a0FhPWZjci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1Ebnx8dCE9PWhffSksU0FhPU9iamVjdC5rZXlzKEpBZSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09RG59KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKEpBZVt0XSl9KS5mbGF0KCk7aShNQWEsImdldERlZmF1bHRDYW5vbmljYWxQcmVmaXgiKTtDQWE9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe25EYSh0aGlzLHQpLHRoaXMuZGVmaW5pdGlvbnM9e319cmV0dXJuIGkodCwiTGlicmFyeSIpLG9EYSh0LFt7a2V5OiJhZGQiLHZhbHVlOmkoZnVuY3Rpb24oKXtmb3IodmFyIHI9dGhpcyxhPWFyZ3VtZW50cy5sZW5ndGgscz1uZXcgQXJyYXkoYSksbj0wO248YTtuKyspc1tuXT1hcmd1bWVudHNbbl07dmFyIG89cy5yZWR1Y2UodGhpcy5fcHVsbERlZmluaXRpb25zLHt9KTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3IuZGVmaW5pdGlvbnNbbF09c3Qoc3Qoe30sci5kZWZpbml0aW9uc1tsXXx8e30pLG9bbF0pLGZFZShsLG9bbF0pO3ZhciBjPW5FZVtEbl1bbF07YyYmZkVlKGMsb1tsXSksamNyKCl9KX0sImFkZCIpfSx7a2V5OiJyZXNldCIsdmFsdWU6aShmdW5jdGlvbigpe3RoaXMuZGVmaW5pdGlvbnM9e319LCJyZXNldCIpfSx7a2V5OiJfcHVsbERlZmluaXRpb25zIix2YWx1ZTppKGZ1bmN0aW9uKHIsYSl7dmFyIHM9YS5wcmVmaXgmJmEuaWNvbk5hbWUmJmEuaWNvbj97MDphfTphO3JldHVybiBPYmplY3Qua2V5cyhzKS5tYXAoZnVuY3Rpb24obil7dmFyIG89c1tuXSxsPW8ucHJlZml4LGM9by5pY29uTmFtZSxkPW8uaWNvbixmPWRbMl07cltsXXx8KHJbbF09e30pLGYubGVuZ3RoPjAmJmYuZm9yRWFjaChmdW5jdGlvbihwKXt0eXBlb2YgcD09InN0cmluZyImJihyW2xdW3BdPWQpfSkscltsXVtjXT1kfSkscn0sIl9wdWxsRGVmaW5pdGlvbnMiKX1dKX0pKCksS2NyPVtdLE15PXt9LEN5PXt9LHpBYT1PYmplY3Qua2V5cyhDeSk7aShfQWEsInJlZ2lzdGVyUGx1Z2lucyIpO2koYkVlLCJjaGFpbkhvb2tzIik7aShzbSwiY2FsbEhvb2tzIik7aShBcCwiY2FsbFByb3ZpZGVkIik7aSh4RWUsImZpbmRJY29uRGVmaW5pdGlvbiIpO1pjcj1uZXcgQ0FhLFRBYT1pKGZ1bmN0aW9uKCl7cXQuYXV0b1JlcGxhY2VTdmc9ITEscXQub2JzZXJ2ZU11dGF0aW9ucz0hMSxzbSgibm9BdXRvIil9LCJub0F1dG8iKSxMQWE9e2kyc3ZnOmkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e307cmV0dXJuIFI0PyhzbSgiYmVmb3JlSTJzdmciLGUpLEFwKCJwc2V1ZG9FbGVtZW50czJzdmciLGUpLEFwKCJpMnN2ZyIsZSkpOlByb21pc2UucmVqZWN0KG5ldyBFcnJvcigiT3BlcmF0aW9uIHJlcXVpcmVzIGEgRE9NIG9mIHNvbWUga2luZC4iKSl9LCJpMnN2ZyIpLHdhdGNoOmkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30scj1lLmF1dG9SZXBsYWNlU3ZnUm9vdDtxdC5hdXRvUmVwbGFjZVN2Zz09PSExJiYocXQuYXV0b1JlcGxhY2VTdmc9ITApLHF0Lm9ic2VydmVNdXRhdGlvbnM9ITAsdUFhKGZ1bmN0aW9uKCl7JEFhKHthdXRvUmVwbGFjZVN2Z1Jvb3Q6cn0pLHNtKCJ3YXRjaCIsZSl9KX0sIndhdGNoIil9LERBYT17aWNvbjppKGZ1bmN0aW9uKGUpe2lmKGU9PT1udWxsKXJldHVybiBudWxsO2lmKE8zZShlKT09PSJvYmplY3QiJiZlLnByZWZpeCYmZS5pY29uTmFtZSlyZXR1cm57cHJlZml4OmUucHJlZml4LGljb25OYW1lOmltKGUucHJlZml4LGUuaWNvbk5hbWUpfHxlLmljb25OYW1lfTtpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD09PTIpe3ZhciByPWVbMV0uaW5kZXhPZigiZmEtIik9PT0wP2VbMV0uc2xpY2UoMyk6ZVsxXSxhPXEzZShlWzBdKTtyZXR1cm57cHJlZml4OmEsaWNvbk5hbWU6aW0oYSxyKXx8cn19aWYodHlwZW9mIGU9PSJzdHJpbmciJiYoZS5pbmRleE9mKCIiLmNvbmNhdChxdC5jc3NQcmVmaXgsIi0iKSk+LTF8fGUubWF0Y2goWiRhKSkpe3ZhciBzPVYzZShlLnNwbGl0KCIgIikse3NraXBMb29rdXBzOiEwfSk7cmV0dXJue3ByZWZpeDpzLnByZWZpeHx8JHAoKSxpY29uTmFtZTppbShzLnByZWZpeCxzLmljb25OYW1lKXx8cy5pY29uTmFtZX19aWYodHlwZW9mIGU9PSJzdHJpbmciKXt2YXIgbj0kcCgpO3JldHVybntwcmVmaXg6bixpY29uTmFtZTppbShuLGUpfHxlfX19LCJpY29uIil9LEQxPXtub0F1dG86VEFhLGNvbmZpZzpxdCxkb206TEFhLHBhcnNlOkRBYSxsaWJyYXJ5OlpjcixmaW5kSWNvbkRlZmluaXRpb246eEVlLHRvSHRtbDp4X30sJEFhPWkoZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30scj1lLmF1dG9SZXBsYWNlU3ZnUm9vdCxhPXI9PT12b2lkIDA/ZGk6cjsoT2JqZWN0LmtleXMobGMuc3R5bGVzKS5sZW5ndGg+MHx8cXQuYXV0b0ZldGNoU3ZnKSYmUjQmJnF0LmF1dG9SZXBsYWNlU3ZnJiZEMS5kb20uaTJzdmcoe25vZGU6YX0pfSwiYXV0b1JlcGxhY2UiKTtpKGozZSwiZG9tVmFyaWFudHMiKTtpKEFBYSwiYXNJY29uIik7aShFQWEsImFzU3ltYm9sIik7aShJQWEsImlzTGFiZWxlZCIpO2kodkVlLCJtYWtlSW5saW5lU3ZnQWJzdHJhY3QiKTtpKFFjciwibWFrZUxheWVyc1RleHRBYnN0cmFjdCIpO2koUEFhLCJtYWtlTGF5ZXJzQ291bnRlckFic3RyYWN0Iik7eUVlPWxjLnN0eWxlcztpKHdFZSwiYXNGb3VuZEljb24iKTtOQWE9e2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyfTtpKE9BYSwibWF5YmVOb3RpZnlNaXNzaW5nIik7aShrRWUsImZpbmRJY29uIik7WGNyPWkoZnVuY3Rpb24oKXt9LCJub29wIiksU0VlPXF0Lm1lYXN1cmVQZXJmb3JtYW5jZSYmUjNlJiZSM2UubWFyayYmUjNlLm1lYXN1cmU/UjNlOnttYXJrOlhjcixtZWFzdXJlOlhjcn0seV89J0ZBICI3LjIuMCInLFJBYT1pKGZ1bmN0aW9uKGUpe3JldHVybiBTRWUubWFyaygiIi5jb25jYXQoeV8sIiAiKS5jb25jYXQoZSwiIGJlZ2lucyIpKSxmdW5jdGlvbigpe3JldHVybiBKY3IoZSl9fSwiYmVnaW4iKSxKY3I9aShmdW5jdGlvbihlKXtTRWUubWFyaygiIi5jb25jYXQoeV8sIiAiKS5jb25jYXQoZSwiIGVuZHMiKSksU0VlLm1lYXN1cmUoIiIuY29uY2F0KHlfLCIgIikuY29uY2F0KGUpLCIiLmNvbmNhdCh5XywiICIpLmNvbmNhdChlLCIgYmVnaW5zIiksIiIuY29uY2F0KHlfLCIgIikuY29uY2F0KGUsIiBlbmRzIikpfSwiZW5kIiksTUVlPXtiZWdpbjpSQWEsZW5kOkpjcn0sVTNlPWkoZnVuY3Rpb24oKXt9LCJub29wIik7aShlMHIsImlzV2F0Y2hlZCIpO2koRkFhLCJoYXNQcmVmaXhBbmRJY29uIik7aShCQWEsImhhc0JlZW5SZXBsYWNlZCIpO2koSEFhLCJnZXRNdXRhdG9yIik7aShxQWEsImNyZWF0ZUVsZW1lbnROUyIpO2koVkFhLCJjcmVhdGVFbGVtZW50Iik7aSh0MHIsImNvbnZlcnRTVkciKTtpKGpBYSwibm9kZUFzQ29tbWVudCIpO1czZT17cmVwbGFjZTppKGZ1bmN0aW9uKGUpe3ZhciByPWVbMF07aWYoci5wYXJlbnROb2RlKWlmKGVbMV0uZm9yRWFjaChmdW5jdGlvbihzKXtyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQwcihzKSxyKX0pLHIuZ2V0QXR0cmlidXRlKGFtKT09PW51bGwmJnF0LmtlZXBPcmlnaW5hbFNvdXJjZSl7dmFyIGE9ZGkuY3JlYXRlQ29tbWVudChqQWEocikpO3IucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoYSxyKX1lbHNlIHIucmVtb3ZlKCl9LCJyZXBsYWNlIiksbmVzdDppKGZ1bmN0aW9uKGUpe3ZhciByPWVbMF0sYT1lWzFdO2lmKH5jRWUocikuaW5kZXhPZihxdC5yZXBsYWNlbWVudENsYXNzKSlyZXR1cm4gVzNlLnJlcGxhY2UoZSk7dmFyIHM9bmV3IFJlZ0V4cCgiIi5jb25jYXQocXQuY3NzUHJlZml4LCItLioiKSk7aWYoZGVsZXRlIGFbMF0uYXR0cmlidXRlcy5pZCxhWzBdLmF0dHJpYnV0ZXMuY2xhc3Mpe3ZhciBuPWFbMF0uYXR0cmlidXRlcy5jbGFzcy5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihsLGMpe3JldHVybiBjPT09cXQucmVwbGFjZW1lbnRDbGFzc3x8Yy5tYXRjaChzKT9sLnRvU3ZnLnB1c2goYyk6bC50b05vZGUucHVzaChjKSxsfSx7dG9Ob2RlOltdLHRvU3ZnOltdfSk7YVswXS5hdHRyaWJ1dGVzLmNsYXNzPW4udG9Tdmcuam9pbigiICIpLG4udG9Ob2RlLmxlbmd0aD09PTA/ci5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik6ci5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLnRvTm9kZS5qb2luKCIgIikpfXZhciBvPWEubWFwKGZ1bmN0aW9uKGwpe3JldHVybiB4XyhsKX0pLmpvaW4oYApgKTtyLnNldEF0dHJpYnV0ZShhbSwiIiksci5pbm5lckhUTUw9b30sIm5lc3QiKX07aShyMHIsInBlcmZvcm1PcGVyYXRpb25TeW5jIik7aShhMHIsInBlcmZvcm0iKTtDRWU9ITE7aShpMHIsImRpc2FibGVPYnNlcnZhdGlvbiIpO2koekVlLCJlbmFibGVPYnNlcnZhdGlvbiIpO0czZT1udWxsO2koczByLCJvYnNlcnZlIik7aShVQWEsImRpc2Nvbm5lY3QiKTtpKFdBYSwic3R5bGVQYXJzZXIiKTtpKEdBYSwiY2xhc3NQYXJzZXIiKTtpKFlBYSwiYXR0cmlidXRlc1BhcnNlciIpO2koS0FhLCJibGFua01ldGEiKTtpKG4wciwicGFyc2VNZXRhIik7WkFhPWxjLnN0eWxlcztpKG8wciwiZ2VuZXJhdGVNdXRhdGlvbiIpO2koUUFhLCJnZXRLbm93blByZWZpeGVzIik7aShsMHIsIm9uVHJlZSIpO2koWEFhLCJvbk5vZGUiKTtpKEpBYSwicmVzb2x2ZUljb25zIik7ZUVhPWkoZnVuY3Rpb24oZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGE9ci50cmFuc2Zvcm0scz1hPT09dm9pZCAwP3JkOmEsbj1yLnN5bWJvbCxvPW49PT12b2lkIDA/ITE6bixsPXIubWFzayxjPWw9PT12b2lkIDA/bnVsbDpsLGQ9ci5tYXNrSWQsZj1kPT09dm9pZCAwP251bGw6ZCxwPXIuY2xhc3NlcyxoPXA9PT12b2lkIDA/W106cCxtPXIuYXR0cmlidXRlcyx2PW09PT12b2lkIDA/e306bSxiPXIuc3R5bGVzLGc9Yj09PXZvaWQgMD97fTpiO2lmKGUpe3ZhciB5PWUucHJlZml4LGs9ZS5pY29uTmFtZSxNPWUuaWNvbjtyZXR1cm4gajNlKHN0KHt0eXBlOiJpY29uIn0sZSksZnVuY3Rpb24oKXtyZXR1cm4gc20oImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2ljb25EZWZpbml0aW9uOmUscGFyYW1zOnJ9KSx2RWUoe2ljb25zOnttYWluOndFZShNKSxtYXNrOmM/d0VlKGMuaWNvbik6e2ZvdW5kOiExLHdpZHRoOm51bGwsaGVpZ2h0Om51bGwsaWNvbjp7fX19LHByZWZpeDp5LGljb25OYW1lOmssdHJhbnNmb3JtOnN0KHN0KHt9LHJkKSxzKSxzeW1ib2w6byxtYXNrSWQ6ZixleHRyYTp7YXR0cmlidXRlczp2LHN0eWxlczpnLGNsYXNzZXM6aH19KX0pfX0sInJlbmRlciIpLHRFYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57aWNvbjpKQWEoZUVhKX19LCJtaXhvdXQiKSxob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3M6aShmdW5jdGlvbihyKXtyZXR1cm4gci50cmVlQ2FsbGJhY2s9bDByLHIubm9kZUNhbGxiYWNrPVhBYSxyfSwibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmkyc3ZnPWZ1bmN0aW9uKHIpe3ZhciBhPXIubm9kZSxzPWE9PT12b2lkIDA/ZGk6YSxuPXIuY2FsbGJhY2ssbz1uPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTpuO3JldHVybiBsMHIocyxvKX0sZS5nZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb249ZnVuY3Rpb24ocixhKXt2YXIgcz1hLmljb25OYW1lLG49YS5wcmVmaXgsbz1hLnRyYW5zZm9ybSxsPWEuc3ltYm9sLGM9YS5tYXNrLGQ9YS5tYXNrSWQsZj1hLmV4dHJhO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihwLGgpe1Byb21pc2UuYWxsKFtrRWUocyxuKSxjLmljb25OYW1lP2tFZShjLmljb25OYW1lLGMucHJlZml4KTpQcm9taXNlLnJlc29sdmUoe2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyLGljb246e319KV0pLnRoZW4oZnVuY3Rpb24obSl7dmFyIHY9TjNlKG0sMiksYj12WzBdLGc9dlsxXTtwKFtyLHZFZSh7aWNvbnM6e21haW46YixtYXNrOmd9LHByZWZpeDpuLGljb25OYW1lOnMsdHJhbnNmb3JtOm8sc3ltYm9sOmwsbWFza0lkOmQsZXh0cmE6Zix3YXRjaGFibGU6ITB9KV0pfSkuY2F0Y2goaCl9KX0sZS5nZW5lcmF0ZUFic3RyYWN0SWNvbj1mdW5jdGlvbihyKXt2YXIgYT1yLmNoaWxkcmVuLHM9ci5hdHRyaWJ1dGVzLG49ci5tYWluLG89ci50cmFuc2Zvcm0sbD1yLnN0eWxlcyxjPUIzZShsKTtjLmxlbmd0aD4wJiYocy5zdHlsZT1jKTt2YXIgZDtyZXR1cm4gZEVlKG8pJiYoZD1BcCgiZ2VuZXJhdGVBYnN0cmFjdFRyYW5zZm9ybUdyb3VwaW5nIix7bWFpbjpuLHRyYW5zZm9ybTpvLGNvbnRhaW5lcldpZHRoOm4ud2lkdGgsaWNvbldpZHRoOm4ud2lkdGh9KSksYS5wdXNoKGR8fG4uaWNvbikse2NoaWxkcmVuOmEsYXR0cmlidXRlczpzfX19LCJwcm92aWRlcyIpfSxyRWE9e21peG91dDppKGZ1bmN0aW9uKCl7cmV0dXJue2xheWVyOmkoZnVuY3Rpb24ocil7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHM9YS5jbGFzc2VzLG49cz09PXZvaWQgMD9bXTpzO3JldHVybiBqM2Uoe3R5cGU6ImxheWVyIn0sZnVuY3Rpb24oKXtzbSgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7YXNzZW1ibGVyOnIscGFyYW1zOmF9KTt2YXIgbz1bXTtyZXR1cm4gcihmdW5jdGlvbihsKXtBcnJheS5pc0FycmF5KGwpP2wubWFwKGZ1bmN0aW9uKGMpe289by5jb25jYXQoYy5hYnN0cmFjdCl9KTpvPW8uY29uY2F0KGwuYWJzdHJhY3QpfSksW3t0YWc6InNwYW4iLGF0dHJpYnV0ZXM6e2NsYXNzOlsiIi5jb25jYXQocXQuY3NzUHJlZml4LCItbGF5ZXJzIildLmNvbmNhdChvYyhuKSkuam9pbigiICIpfSxjaGlsZHJlbjpvfV19KX0sImxheWVyIil9fSwibWl4b3V0Iil9LGFFYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57Y291bnRlcjppKGZ1bmN0aW9uKHIpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxzPWEudGl0bGUsbj1zPT09dm9pZCAwP251bGw6cyxvPWEuY2xhc3NlcyxsPW89PT12b2lkIDA/W106byxjPWEuYXR0cmlidXRlcyxkPWM9PT12b2lkIDA/e306YyxmPWEuc3R5bGVzLHA9Zj09PXZvaWQgMD97fTpmO3JldHVybiBqM2Uoe3R5cGU6ImNvdW50ZXIiLGNvbnRlbnQ6cn0sZnVuY3Rpb24oKXtyZXR1cm4gc20oImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2NvbnRlbnQ6cixwYXJhbXM6YX0pLFBBYSh7Y29udGVudDpyLnRvU3RyaW5nKCksdGl0bGU6bixleHRyYTp7YXR0cmlidXRlczpkLHN0eWxlczpwLGNsYXNzZXM6WyIiLmNvbmNhdChxdC5jc3NQcmVmaXgsIi1sYXllcnMtY291bnRlciIpXS5jb25jYXQob2MobCkpfX0pfSl9LCJjb3VudGVyIil9fSwibWl4b3V0Iil9LGlFYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57dGV4dDppKGZ1bmN0aW9uKHIpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxzPWEudHJhbnNmb3JtLG49cz09PXZvaWQgMD9yZDpzLG89YS5jbGFzc2VzLGw9bz09PXZvaWQgMD9bXTpvLGM9YS5hdHRyaWJ1dGVzLGQ9Yz09PXZvaWQgMD97fTpjLGY9YS5zdHlsZXMscD1mPT09dm9pZCAwP3t9OmY7cmV0dXJuIGozZSh7dHlwZToidGV4dCIsY29udGVudDpyfSxmdW5jdGlvbigpe3JldHVybiBzbSgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDpyLHBhcmFtczphfSksUWNyKHtjb250ZW50OnIsdHJhbnNmb3JtOnN0KHN0KHt9LHJkKSxuKSxleHRyYTp7YXR0cmlidXRlczpkLHN0eWxlczpwLGNsYXNzZXM6WyIiLmNvbmNhdChxdC5jc3NQcmVmaXgsIi1sYXllcnMtdGV4dCIpXS5jb25jYXQob2MobCkpfX0pfSl9LCJ0ZXh0Iil9fSwibWl4b3V0IikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlTGF5ZXJzVGV4dD1mdW5jdGlvbihyLGEpe3ZhciBzPWEudHJhbnNmb3JtLG49YS5leHRyYSxvPW51bGwsbD1udWxsO2lmKEcycil7dmFyIGM9cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShyKS5mb250U2l6ZSwxMCksZD1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO289ZC53aWR0aC9jLGw9ZC5oZWlnaHQvY31yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtyLFFjcih7Y29udGVudDpyLmlubmVySFRNTCx3aWR0aDpvLGhlaWdodDpsLHRyYW5zZm9ybTpzLGV4dHJhOm4sd2F0Y2hhYmxlOiEwfSldKX19LCJwcm92aWRlcyIpfSxjMHI9bmV3IFJlZ0V4cCgnIicsInVnIiksZDByPVsxMTA1OTIwLDExMTIzMTldLHUwcj1zdChzdChzdChzdCh7fSx7Rm9udEF3ZXNvbWU6e25vcm1hbDoiZmFzIiw0MDA6ImZhcyJ9fSksUkRhKSxVJGEpLEdEYSksX0VlPU9iamVjdC5rZXlzKHUwcikucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZS50b0xvd2VyQ2FzZSgpXT11MHJbZV0sdH0se30pLHNFYT1PYmplY3Qua2V5cyhfRWUpLnJlZHVjZShmdW5jdGlvbih0LGUpe3ZhciByPV9FZVtlXTtyZXR1cm4gdFtlXT1yWzkwMF18fG9jKE9iamVjdC5lbnRyaWVzKHIpKVswXVsxXSx0fSx7fSk7aShuRWEsImhleFZhbHVlRnJvbUNvbnRlbnQiKTtpKG9FYSwiaXNTZWNvbmRhcnlMYXllciIpO2kobEVhLCJnZXRQcmVmaXgiKTtpKHAwciwicmVwbGFjZUZvclBvc2l0aW9uIik7aShjRWEsInJlcGxhY2UiKTtpKGRFYSwicHJvY2Vzc2FibGUiKTt1RWE9aShmdW5jdGlvbihlKXtyZXR1cm4hIWUmJmtjci5zb21lKGZ1bmN0aW9uKHIpe3JldHVybiBlLmluY2x1ZGVzKHIpfSl9LCJoYXNQc2V1ZG9FbGVtZW50IikscEVhPWkoZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuW107dmFyIHI9bmV3IFNldCxhPWUuc3BsaXQoLywoPyFbXigpXSpcKSkvKS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMudHJpbSgpfSk7YT1hLmZsYXRNYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaW5jbHVkZXMoIigiKT9jOmMuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQudHJpbSgpfSl9KTt2YXIgcz1JM2UoYSksbjt0cnl7Zm9yKHMucygpOyEobj1zLm4oKSkuZG9uZTspe3ZhciBvPW4udmFsdWU7aWYodUVhKG8pKXt2YXIgbD1rY3IucmVkdWNlKGZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMucmVwbGFjZShkLCIiKX0sbyk7bCE9PSIiJiZsIT09IioiJiZyLmFkZChsKX19fWNhdGNoKGMpe3MuZShjKX1maW5hbGx5e3MuZigpfXJldHVybiByfSwicGFyc2VDU1NSdWxlRm9yUHNldWRvcyIpO2koZjByLCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO2ZFYT17aG9va3M6aShmdW5jdGlvbigpe3JldHVybnttdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzOmkoZnVuY3Rpb24ocil7cmV0dXJuIHIucHNldWRvRWxlbWVudHNDYWxsYmFjaz1mMHIscn0sIm11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MiKX19LCJob29rcyIpLHByb3ZpZGVzOmkoZnVuY3Rpb24oZSl7ZS5wc2V1ZG9FbGVtZW50czJzdmc9ZnVuY3Rpb24ocil7dmFyIGE9ci5ub2RlLHM9YT09PXZvaWQgMD9kaTphO3F0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZmMHIocyl9fSwicHJvdmlkZXMiKX0saDByPSExLGhFYT17bWl4b3V0OmkoZnVuY3Rpb24oKXtyZXR1cm57ZG9tOnt1bndhdGNoOmkoZnVuY3Rpb24oKXtpMHIoKSxoMHI9ITB9LCJ1bndhdGNoIil9fX0sIm1peG91dCIpLGhvb2tzOmkoZnVuY3Rpb24oKXtyZXR1cm57Ym9vdHN0cmFwOmkoZnVuY3Rpb24oKXtzMHIoYkVlKCJtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzIix7fSkpfSwiYm9vdHN0cmFwIiksbm9BdXRvOmkoZnVuY3Rpb24oKXtVQWEoKX0sIm5vQXV0byIpLHdhdGNoOmkoZnVuY3Rpb24ocil7dmFyIGE9ci5vYnNlcnZlTXV0YXRpb25zUm9vdDtoMHI/ekVlKCk6czByKGJFZSgibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIse29ic2VydmVNdXRhdGlvbnNSb290OmF9KSl9LCJ3YXRjaCIpfX0sImhvb2tzIil9LG0wcj1pKGZ1bmN0aW9uKGUpe3ZhciByPXtzaXplOjE2LHg6MCx5OjAsZmxpcFg6ITEsZmxpcFk6ITEscm90YXRlOjB9O3JldHVybiBlLnRvTG93ZXJDYXNlKCkuc3BsaXQoIiAiKS5yZWR1Y2UoZnVuY3Rpb24oYSxzKXt2YXIgbj1zLnRvTG93ZXJDYXNlKCkuc3BsaXQoIi0iKSxvPW5bMF0sbD1uLnNsaWNlKDEpLmpvaW4oIi0iKTtpZihvJiZsPT09ImgiKXJldHVybiBhLmZsaXBYPSEwLGE7aWYobyYmbD09PSJ2IilyZXR1cm4gYS5mbGlwWT0hMCxhO2lmKGw9cGFyc2VGbG9hdChsKSxpc05hTihsKSlyZXR1cm4gYTtzd2l0Y2gobyl7Y2FzZSJncm93IjphLnNpemU9YS5zaXplK2w7YnJlYWs7Y2FzZSJzaHJpbmsiOmEuc2l6ZT1hLnNpemUtbDticmVhaztjYXNlImxlZnQiOmEueD1hLngtbDticmVhaztjYXNlInJpZ2h0IjphLng9YS54K2w7YnJlYWs7Y2FzZSJ1cCI6YS55PWEueS1sO2JyZWFrO2Nhc2UiZG93biI6YS55PWEueStsO2JyZWFrO2Nhc2Uicm90YXRlIjphLnJvdGF0ZT1hLnJvdGF0ZStsO2JyZWFrfXJldHVybiBhfSxyKX0sInBhcnNlVHJhbnNmb3JtU3RyaW5nIiksbUVhPXttaXhvdXQ6aShmdW5jdGlvbigpe3JldHVybntwYXJzZTp7dHJhbnNmb3JtOmkoZnVuY3Rpb24ocil7cmV0dXJuIG0wcihyKX0sInRyYW5zZm9ybSIpfX19LCJtaXhvdXQiKSxob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6aShmdW5jdGlvbihyLGEpe3ZhciBzPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLXRyYW5zZm9ybSIpO3JldHVybiBzJiYoci50cmFuc2Zvcm09bTByKHMpKSxyfSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZz1mdW5jdGlvbihyKXt2YXIgYT1yLm1haW4scz1yLnRyYW5zZm9ybSxuPXIuY29udGFpbmVyV2lkdGgsbz1yLmljb25XaWR0aCxsPXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChuLzIsIiAyNTYpIil9LGM9InRyYW5zbGF0ZSgiLmNvbmNhdChzLngqMzIsIiwgIikuY29uY2F0KHMueSozMiwiKSAiKSxkPSJzY2FsZSgiLmNvbmNhdChzLnNpemUvMTYqKHMuZmxpcFg/LTE6MSksIiwgIikuY29uY2F0KHMuc2l6ZS8xNioocy5mbGlwWT8tMToxKSwiKSAiKSxmPSJyb3RhdGUoIi5jb25jYXQocy5yb3RhdGUsIiAwIDApIikscD17dHJhbnNmb3JtOiIiLmNvbmNhdChjLCIgIikuY29uY2F0KGQsIiAiKS5jb25jYXQoZil9LGg9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KG8vMiotMSwiIC0yNTYpIil9LG09e291dGVyOmwsaW5uZXI6cCxwYXRoOmh9O3JldHVybnt0YWc6ImciLGF0dHJpYnV0ZXM6c3Qoe30sbS5vdXRlciksY2hpbGRyZW46W3t0YWc6ImciLGF0dHJpYnV0ZXM6c3Qoe30sbS5pbm5lciksY2hpbGRyZW46W3t0YWc6YS5pY29uLnRhZyxjaGlsZHJlbjphLmljb24uY2hpbGRyZW4sYXR0cmlidXRlczpzdChzdCh7fSxhLmljb24uYXR0cmlidXRlcyksbS5wYXRoKX1dfV19fX0sInByb3ZpZGVzIil9LFRFZT17eDowLHk6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn07aShnMHIsImZpbGxCbGFjayIpO2koZ0VhLCJkZUdyb3VwIik7YkVhPXtob29rczppKGZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6aShmdW5jdGlvbihyLGEpe3ZhciBzPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLW1hc2siKSxuPXM/VjNlKHMuc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIG8udHJpbSgpfSkpOldjcigpO3JldHVybiBuLnByZWZpeHx8KG4ucHJlZml4PSRwKCkpLHIubWFzaz1uLHIubWFza0lkPWEuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLW1hc2staWQiKSxyfSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIikscHJvdmlkZXM6aShmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RNYXNrPWZ1bmN0aW9uKHIpe3ZhciBhPXIuY2hpbGRyZW4scz1yLmF0dHJpYnV0ZXMsbj1yLm1haW4sbz1yLm1hc2ssbD1yLm1hc2tJZCxjPXIudHJhbnNmb3JtLGQ9bi53aWR0aCxmPW4uaWNvbixwPW8ud2lkdGgsaD1vLmljb24sbT1vQWEoe3RyYW5zZm9ybTpjLGNvbnRhaW5lcldpZHRoOnAsaWNvbldpZHRoOmR9KSx2PXt0YWc6InJlY3QiLGF0dHJpYnV0ZXM6c3Qoc3Qoe30sVEVlKSx7fSx7ZmlsbDoid2hpdGUifSl9LGI9Zi5jaGlsZHJlbj97Y2hpbGRyZW46Zi5jaGlsZHJlbi5tYXAoZzByKX06e30sZz17dGFnOiJnIixhdHRyaWJ1dGVzOnN0KHt9LG0uaW5uZXIpLGNoaWxkcmVuOltnMHIoc3Qoe3RhZzpmLnRhZyxhdHRyaWJ1dGVzOnN0KHN0KHt9LGYuYXR0cmlidXRlcyksbS5wYXRoKX0sYikpXX0seT17dGFnOiJnIixhdHRyaWJ1dGVzOnN0KHt9LG0ub3V0ZXIpLGNoaWxkcmVuOltnXX0saz0ibWFzay0iLmNvbmNhdChsfHxMY3IoKSksTT0iY2xpcC0iLmNvbmNhdChsfHxMY3IoKSksTj17dGFnOiJtYXNrIixhdHRyaWJ1dGVzOnN0KHN0KHt9LFRFZSkse30se2lkOmssbWFza1VuaXRzOiJ1c2VyU3BhY2VPblVzZSIsbWFza0NvbnRlbnRVbml0czoidXNlclNwYWNlT25Vc2UifSksY2hpbGRyZW46W3YseV19LF89e3RhZzoiZGVmcyIsY2hpbGRyZW46W3t0YWc6ImNsaXBQYXRoIixhdHRyaWJ1dGVzOntpZDpNfSxjaGlsZHJlbjpnRWEoaCl9LE5dfTtyZXR1cm4gYS5wdXNoKF8se3RhZzoicmVjdCIsYXR0cmlidXRlczpzdCh7ZmlsbDoiY3VycmVudENvbG9yIiwiY2xpcC1wYXRoIjoidXJsKCMiLmNvbmNhdChNLCIpIiksbWFzazoidXJsKCMiLmNvbmNhdChrLCIpIil9LFRFZSl9KSx7Y2hpbGRyZW46YSxhdHRyaWJ1dGVzOnN9fX0sInByb3ZpZGVzIil9LHhFYT17cHJvdmlkZXM6aShmdW5jdGlvbihlKXt2YXIgcj0hMTtMcC5tYXRjaE1lZGlhJiYocj1McC5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXMpLGUubWlzc2luZ0ljb25BYnN0cmFjdD1mdW5jdGlvbigpe3ZhciBhPVtdLHM9e2ZpbGw6ImN1cnJlbnRDb2xvciJ9LG49e2F0dHJpYnV0ZVR5cGU6IlhNTCIscmVwZWF0Q291bnQ6ImluZGVmaW5pdGUiLGR1cjoiMnMifTthLnB1c2goe3RhZzoicGF0aCIsYXR0cmlidXRlczpzdChzdCh7fSxzKSx7fSx7ZDoiTTE1Ni41LDQ0Ny43bC0xMi42LDI5LjVjLTE4LjctOS41LTM1LjktMjEuMi01MS41LTM0LjlsMjIuNy0yMi43QzEyNy42LDQzMC41LDE0MS41LDQ0MCwxNTYuNSw0NDcuN3ogTTQwLjYsMjcySDguNSBjMS40LDIxLjIsNS40LDQxLjcsMTEuNyw2MS4xTDUwLDMyMS4yQzQ1LjEsMzA1LjUsNDEuOCwyODksNDAuNiwyNzJ6IE00MC42LDI0MGMxLjQtMTguOCw1LjItMzcsMTEuMS01NC4xbC0yOS41LTEyLjYgQzE0LjcsMTk0LjMsMTAsMjE2LjcsOC41LDI0MEg0MC42eiBNNjQuMywxNTYuNWM3LjgtMTQuOSwxNy4yLTI4LjgsMjguMS00MS41TDY5LjcsOTIuM2MtMTMuNywxNS42LTI1LjUsMzIuOC0zNC45LDUxLjUgTDY0LjMsMTU2LjV6IE0zOTcsNDE5LjZjLTEzLjksMTItMjkuNCwyMi4zLTQ2LjEsMzAuNGwxMS45LDI5LjhjMjAuNy05LjksMzkuOC0yMi42LDU2LjktMzcuNkwzOTcsNDE5LjZ6IE0xMTUsOTIuNCBjMTMuOS0xMiwyOS40LTIyLjMsNDYuMS0zMC40bC0xMS45LTI5LjhjLTIwLjcsOS45LTM5LjgsMjIuNi01Ni44LDM3LjZMMTE1LDkyLjR6IE00NDcuNywzNTUuNWMtNy44LDE0LjktMTcuMiwyOC44LTI4LjEsNDEuNSBsMjIuNywyMi43YzEzLjctMTUuNiwyNS41LTMyLjksMzQuOS01MS41TDQ0Ny43LDM1NS41eiBNNDcxLjQsMjcyYy0xLjQsMTguOC01LjIsMzctMTEuMSw1NC4xbDI5LjUsMTIuNiBjNy41LTIxLjEsMTIuMi00My41LDEzLjYtNjYuOEg0NzEuNHogTTMyMS4yLDQ2MmMtMTUuNyw1LTMyLjIsOC4yLTQ5LjIsOS40djMyLjFjMjEuMi0xLjQsNDEuNy01LjQsNjEuMS0xMS43TDMyMS4yLDQ2MnogTTI0MCw0NzEuNGMtMTguOC0xLjQtMzctNS4yLTU0LjEtMTEuMWwtMTIuNiwyOS41YzIxLjEsNy41LDQzLjUsMTIuMiw2Ni44LDEzLjZWNDcxLjR6IE00NjIsMTkwLjhjNSwxNS43LDguMiwzMi4yLDkuNCw0OS4yaDMyLjEgYy0xLjQtMjEuMi01LjQtNDEuNy0xMS43LTYxLjFMNDYyLDE5MC44eiBNOTIuNCwzOTdjLTEyLTEzLjktMjIuMy0yOS40LTMwLjQtNDYuMWwtMjkuOCwxMS45YzkuOSwyMC43LDIyLjYsMzkuOCwzNy42LDU2LjkgTDkyLjQsMzk3eiBNMjcyLDQwLjZjMTguOCwxLjQsMzYuOSw1LjIsNTQuMSwxMS4xbDEyLjYtMjkuNUMzMTcuNywxNC43LDI5NS4zLDEwLDI3Miw4LjVWNDAuNnogTTE5MC44LDUwIGMxNS43LTUsMzIuMi04LjIsNDkuMi05LjRWOC41Yy0yMS4yLDEuNC00MS43LDUuNC02MS4xLDExLjdMMTkwLjgsNTB6IE00NDIuMyw5Mi4zTDQxOS42LDExNWMxMiwxMy45LDIyLjMsMjkuNCwzMC41LDQ2LjEgbDI5LjgtMTEuOUM0NzAsMTI4LjUsNDU3LjMsMTA5LjQsNDQyLjMsOTIuM3ogTTM5Nyw5Mi40bDIyLjctMjIuN2MtMTUuNi0xMy43LTMyLjgtMjUuNS01MS41LTM0LjlsLTEyLjYsMjkuNSBDMzcwLjQsNzIuMSwzODQuNCw4MS41LDM5Nyw5Mi40eiJ9KX0pO3ZhciBvPXN0KHN0KHt9LG4pLHt9LHthdHRyaWJ1dGVOYW1lOiJvcGFjaXR5In0pLGw9e3RhZzoiY2lyY2xlIixhdHRyaWJ1dGVzOnN0KHN0KHt9LHMpLHt9LHtjeDoiMjU2IixjeToiMzY0IixyOiIyOCJ9KSxjaGlsZHJlbjpbXX07cmV0dXJuIHJ8fGwuY2hpbGRyZW4ucHVzaCh7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOnN0KHN0KHt9LG4pLHt9LHthdHRyaWJ1dGVOYW1lOiJyIix2YWx1ZXM6IjI4OzE0OzI4OzI4OzE0OzI4OyJ9KX0se3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpzdChzdCh7fSxvKSx7fSx7dmFsdWVzOiIxOzA7MTsxOzA7MTsifSl9KSxhLnB1c2gobCksYS5wdXNoKHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6c3Qoc3Qoe30scykse30se29wYWNpdHk6IjEiLGQ6Ik0yNjMuNywzMTJoLTE2Yy02LjYsMC0xMi01LjQtMTItMTJjMC03MSw3Ny40LTYzLjksNzcuNC0xMDcuOGMwLTIwLTE3LjgtNDAuMi01Ny40LTQwLjJjLTI5LjEsMC00NC4zLDkuNi01OS4yLDI4LjcgYy0zLjksNS0xMS4xLDYtMTYuMiwyLjRsLTEzLjEtOS4yYy01LjYtMy45LTYuOS0xMS44LTIuNi0xNy4yYzIxLjItMjcuMiw0Ni40LTQ0LjcsOTEuMi00NC43YzUyLjMsMCw5Ny40LDI5LjgsOTcuNCw4MC4yIGMwLDY3LjYtNzcuNCw2My41LTc3LjQsMTA3LjhDMjc1LjcsMzA2LjYsMjcwLjMsMzEyLDI2My43LDMxMnoifSksY2hpbGRyZW46cj9bXTpbe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpzdChzdCh7fSxvKSx7fSx7dmFsdWVzOiIxOzA7MDswOzA7MTsifSl9XX0pLHJ8fGEucHVzaCh7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOnN0KHN0KHt9LHMpLHt9LHtvcGFjaXR5OiIwIixkOiJNMjMyLjUsMTM0LjVsNywxNjhjMC4zLDYuNCw1LjYsMTEuNSwxMiwxMS41aDljNi40LDAsMTEuNy01LjEsMTItMTEuNWw3LTE2OGMwLjMtNi44LTUuMi0xMi41LTEyLTEyLjVoLTIzIEMyMzcuNywxMjIsMjMyLjIsMTI3LjcsMjMyLjUsMTM0LjV6In0pLGNoaWxkcmVuOlt7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOnN0KHN0KHt9LG8pLHt9LHt2YWx1ZXM6IjA7MDsxOzE7MDswOyJ9KX1dfSkse3RhZzoiZyIsYXR0cmlidXRlczp7Y2xhc3M6Im1pc3NpbmcifSxjaGlsZHJlbjphfX19LCJwcm92aWRlcyIpfSx2RWE9e2hvb2tzOmkoZnVuY3Rpb24oKXtyZXR1cm57cGFyc2VOb2RlQXR0cmlidXRlczppKGZ1bmN0aW9uKHIsYSl7dmFyIHM9YS5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtc3ltYm9sIiksbj1zPT09bnVsbD8hMTpzPT09IiI/ITA6cztyZXR1cm4gci5zeW1ib2w9bixyfSwicGFyc2VOb2RlQXR0cmlidXRlcyIpfX0sImhvb2tzIil9LHlFYT1bZEFhLHRFYSxyRWEsYUVhLGlFYSxmRWEsaEVhLG1FYSxiRWEseEVhLHZFYV07X0FhKHlFYSx7bWl4b3V0c1RvOkQxfSk7d0VhPUQxLm5vQXV0byxrRWE9RDEuY29uZmlnLFNFYT1EMS5saWJyYXJ5LE1FYT1EMS5kb20sQ0VhPUQxLnBhcnNlLHpFYT1EMS5maW5kSWNvbkRlZmluaXRpb24sX0VhPUQxLnRvSHRtbCxMRWU9RDEuaWNvbixURWE9RDEubGF5ZXIsTEVhPUQxLnRleHQsREVhPUQxLmNvdW50ZXJ9KTt2YXIgJEVhLERFZSx4MHIsdjByLHkwcix3MHIsJEVlLGswcixTMHIsTTByLEMwcix6MHIsXzByLFQwcixMMHIsRDByLCQwcixBMHIsRTByLEkwcixQMHIsTjByLE8wcixSMHIsRjByLEIwcixIMHIscTByLFYwcixBRWUsajByLFUwcixXMHIsRzByLFkwcixLMHIsWjByLFEwcixYMHIsSjByLGVkcix0ZHIscmRyLGFkcixpZHIsc2RyLG5kcixvZHIsbGRyLEVFZSxjZHIsZGRyLHVkcixwZHIsZmRyLGhkcixtZHIsZ2RyLGJkcix4ZHIsdmRyLHlkcix3ZHIsa2RyLFNkcixNZHIsQ2RyLHpkcixfZHIsVGRyLExkcixJRWUsRGRyLCRkcixBZHIsRWRyLElkcixQZHIsTmRyLE9kcixSZHIsRmRyLEJkcixIZHIscWRyLFZkcixqZHIsVWRyLFdkcixHZHIsWWRyLEtkcixaZHIsUWRyLFhkcixKZHIsZTRyLHQ0cixyNHIsYTRyLGk0cixzNHIsbjRyLG80cixsNHIsYzRyLGQ0cix1NHIscDRyLGY0cixoNHIsbTRyLGc0cixLM2UsYjRyLHg0cixQRWUsdjRyLHk0cix3NHIsTkVlLGs0cixTNHIsWTNlLE00cixDNHIsT0VlLHo0cixfNHIsVDRyLEw0cixENHIsUkVlLCQ0cixBNHIsRTRyLEk0cixQNHIsTjRyLE80cixSNHIsRjRyLEI0cixGRWUsSDRyLHE0cixWNHIsajRyLFU0cixXNHIsRzRyLFk0cixLNHIsQkVlLFo0cixRNHIsWDRyLEo0cixlM3IsdDNyLHIzcixhM3IsSEVlLGkzcixzM3IsbjNyLHFFZSxvM3IsbDNyLGMzcixkM3IsdTNyLHAzcixmM3IsaDNyLG0zcixnM3IsYjNyLHgzcix2M3IseTNyLHczcixrM3IsUzNyLE0zcixDM3IsejNyLF8zcixUM3IsTDNyLEQzciwkM3IsQTNyLEUzcixWRWUsSTNyLFAzcixOM3IsTzNyLFIzcixGM3IsQjNyLGpFZSxIM3IscTNyLFYzcixqM3IsVTNyLFczcixHM3IsWTNyLEszcixaM3IsUTNyLFgzcixKM3IsZXVyLHR1cixydXIsYXVyLGl1cixzdXIsbnVyLG91cixsdXIsY3VyLGR1cix1dXIscHVyLGZ1cixodXIsbXVyLGd1cixidXIseHVyLHZ1cix5dXIsd3VyLGt1cixTdXIsTXVyLEN1cix6dXIsX3VyLFR1cixaM2UsTHVyLER1ciwkdXIsQXVyLEV1cixVRWUsSXVyLFB1cixOdXIsUTNlLE91cixSdXIsRnVyLEJ1cixIdXIscXVyLFdFZSxWdXIsanVyLFV1cixXdXIsR3VyLFl1cixLdXIsWnVyLFF1cixYdXIsSnVyLGVwcix0cHIscnByLGFwcixpcHIsd18sc3ByLG5wcixvcHIsbHByLGNwcixkcHIsdXByLHBwcixmcHIsaHByLG1wcixncHIsYnByLHhwcix2cHIseXByLHdwcixrcHIsU3ByLE1wcixDcHIsenByLF9wcixUcHIsTHByLERwciwkcHIsQXByLEVwcixJcHIsUHByLE5wcixPcHIsUnByLEZwcixCcHIsSHByLHFwcixWcHIsR0VlLGpwcixVcHIsV3ByLEdwcixZcHIsS3ByLFpwcixRcHIsWHByLEpwcixlZnIsdGZyLHJmcixhZnIsaWZyLFlFZSxzZnIsbmZyLG9mcixsZnIsY2ZyLGRmcixLRWUsdWZyLHBmcixmZnIsaGZyLG1mcixnZnIsYmZyLHhmcix2ZnIseWZyLHdmcixrZnIsU2ZyLE1mcixDZnIsemZyLF9mcixUZnIsTGZyLERmciwkZnIsQWZyLEVmcixJZnIsUGZyLE5mcixPZnIsUmZyLFpFZSxYM2UsRmZyLEJmcixIZnIscWZyLFZmcixqZnIsVWZyLFdmcixHZnIsWWZyLEtmcixaZnIsUUVlLFFmcixYZnIsSmZyLGVocix0aHIscmhyLGFocixpaHIsSjNlLHNocixuaHIsb2hyLGxocixjaHIsZGhyLHVocixwaHIsZmhyLGhocixtaHIsZ2hyLGJocixYRWUseGhyLHZocix5aHIsd2hyLGtocixTaHIsTWhyLENocix6aHIsX2hyLFRocixMaHIsRGhyLCRocixBaHIsRWhyLElocixKRWUsUGhyLE5ocixPaHIsZUllLFJocixGaHIsQmhyLEhocixldWUscWhyLHRJZSxWaHIsamhyLFVocixXaHIsR2hyLFlocixySWUsS2hyLFpocixRaHIsWGhyLEpocixlNnIsdDZyLHI2cixhNnIsaTZyLHM2cixuNnIsbzZyLGw2cixjNnIsZDZyLHU2cixwNnIsZjZyLGg2cixtNnIsZzZyLGI2cix4NnIsdjZyLGFJZSx5NnIsdzZyLGs2cixTNnIsTTZyLEM2cix6NnIsXzZyLGlJZSxUNnIsTDZyLEQ2ciwkNnIsQTZyLEU2cixJNnIsUDZyLE42cixPNnIsUjZyLEY2cixCNnIsSDZyLHNJZSxxNnIsVjZyLGo2cixVNnIsVzZyLEc2cixZNnIsSzZyLFo2cixRNnIsWDZyLEo2cixlbXIsdG1yLHJtcixuSWUsYW1yLGltcixzbXIsbm1yLG9tcixsbXIsY21yLGRtcix1bXIscG1yLGZtcixobXIsbW1yLGdtcix0dWUsYm1yLHhtcix2bXIseW1yLHdtcixrbXIsU21yLE1tcixDbXIsem1yLG9JZSxfbXIsVG1yLExtcixEbXIsJG1yLEFtcixFbXIsSW1yLFBtcixObXIsT21yLFJtcixGbXIsQm1yLEhtcixxbXIsVm1yLGptcixVbXIsV21yLEdtcixZbXIsS21yLFptcixRbXIsWG1yLEptcixlNXIsdDVyLHI1cixhNXIsaTVyLHM1cixuNXIsbzVyLGw1cixjNXIsZDVyLGxJZSx1NXIscDVyLGY1cixoNXIsbTVyLGNJZSxnNXIsYjVyLHg1cix2NXIseTVyLHc1cixBRWEsazVyPXUoKCk9PnskRWE9ImZhYiIsREVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1naXRodWIiLGljb246WzQ0OCw1MTIsWyJnaXRodWItc3F1YXJlIl0sImYwOTIiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI2NS44IDQwNy43YzAtMS44IDAtNiAuMS0xMS42IC4xLTExLjQgLjEtMjguOCAuMS00My43IDAtMTUuNi01LjItMjUuNS0xMS4zLTMwLjcgMzctNC4xIDc2LTkuMiA3Ni03My4xIDAtMTguMi02LjUtMjcuMy0xNy4xLTM5IDEuNy00LjMgNy40LTIyLTEuNy00NS0xMy45LTQuMy00NS43IDE3LjktNDUuNyAxNy45LTI2LjYtNy41LTU2LjYtNy41LTgzLjIgMCAwIDAtMzEuOC0yMi4yLTQ1LjctMTcuOS05LjEgMjIuOS0zLjUgNDAuNi0xLjcgNDUtMTAuNiAxMS43LTE1LjYgMjAuOC0xNS42IDM5IDAgNjMuNiAzNy4zIDY5IDc0LjMgNzMuMS00LjggNC4zLTkuMSAxMS43LTEwLjYgMjIuMy05LjUgNC4zLTMzLjggMTEuNy00OC4zLTEzLjktOS4xLTE1LjgtMjUuNS0xNy4xLTI1LjUtMTcuMS0xNi4yLS4yLTEuMSAxMC4yLTEuMSAxMC4yIDEwLjggNSAxOC40IDI0LjIgMTguNCAyNC4yIDkuNyAyOS43IDU2LjEgMTkuNyA1Ni4xIDE5LjcgMCA5IC4xIDIxLjcgLjEgMzAuNiAwIDQuOCAuMSA4LjYgLjEgMTAgMCA0LjMtMyA5LjUtMTEuNSA4LTY2LTIyLjEtMTEyLjItODQuOS0xMTIuMi0xNTguMyAwLTkxLjggNzAuMi0xNjEuNSAxNjItMTYxLjVTMzg4IDE2NS42IDM4OCAyNTcuNGMuMSA3My40LTQ0LjcgMTM2LjMtMTEwLjcgMTU4LjMtOC40IDEuNS0xMS41LTMuNy0xMS41LTh6bS05MC41LTU0LjhjLS4yLTEuNSAxLjEtMi44IDMtMy4yIDEuOS0uMiAzLjcgLjYgMy45IDEuOSAuMyAxLjMtMSAyLjYtMyAzLTEuOSAuNC0zLjctLjQtMy45LTEuN3ptLTkuMSAzLjJjLTIuMiAuMi0zLjctLjktMy43LTIuNCAwLTEuMyAxLjUtMi40IDMuNS0yLjQgMS45LS4yIDMuNyAuOSAzLjcgMi40IDAgMS4zLTEuNSAyLjQtMy41IDIuNHptLTE0LjMtMi4yYy0xLjktLjQtMy4yLTEuOS0yLjgtMy4yczIuNC0xLjkgNC4xLTEuNWMyIC42IDMuMyAyLjEgMi44IDMuNC0uNCAxLjMtMi40IDEuOS00LjEgMS4zem0tMTIuNS03LjNjLTEuNS0xLjMtMS45LTMuMi0uOS00LjEgLjktMS4xIDIuOC0uOSA0LjMgLjYgMS4zIDEuMyAxLjggMy4zIC45IDQuMS0uOSAxLjEtMi44IC45LTQuMy0uNnptLTguNS0xMGMtMS4xLTEuNS0xLjEtMy4yIDAtMy45IDEuMS0uOSAyLjgtLjIgMy43IDEuMyAxLjEgMS41IDEuMSAzLjMgMCA0LjEtLjkgLjYtMi42IDAtMy43LTEuNXptLTYuMy04LjhjLTEuMS0xLjMtMS4zLTIuOC0uNC0zLjUgLjktLjkgMi40LS40IDMuNSAuNiAxLjEgMS4zIDEuMyAyLjggLjQgMy41LS45IC45LTIuNCAuNC0zLjUtLjZ6bS02LTYuNGMtMS4zLS42LTEuOS0xLjctMS41LTIuNiAuNC0uNiAxLjUtLjkgMi44LS40IDEuMyAuNyAxLjkgMS44IDEuNSAyLjYtLjQgLjktMS43IDEuMS0yLjggLjR6Il19LHgwcj1ERWUsdjByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoaW5rLXBlYWtzIixpY29uOls1NzYsNTEyLFtdLCJmNzMxIiwiTTQ2NS40IDQwOS40bDg3LjEtMTUwLjItMzItLjMtNTUuMSA5NS0yMDYuMi0zNTMuOS0yMzYuMiA0MDcuNCAzMiAuMyAyMDQuMi0zNTIuMSAyMDYuMiAzNTMuOHpNMTEwLjEgMzY1LjNsMzIuMSAwIDExNy40LTIwMi41IDIwMy40IDM0OS4xIDMyLjUgLjEtMjM1LjgtNDA0LjYtMTQ5LjYgMjU3Ljl6Il19LHkwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtZHJpdmUiLGljb246WzUxMiw1MTIsW10sImYzYWEiLCJNMzM5IDMxNC45TDE3NS40IDMyIDMzNi42IDMyIDUwMC4yIDMxNC45IDMzOSAzMTQuOXpNMjAxLjUgMzM4LjVsLTgwLjYgMTQxLjUgMzEwLjUgMCA4MC42LTE0MS41LTMxMC41IDB6TTE1NC4xIDY3LjRMMCAzMzguNSA4MC42IDQ4MCAyMzcgMjA4LjggMTU0LjEgNjcuNHoiXX0sdzByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF1dG9wcmVmaXhlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQxYyIsIk0zMTguNCAxNmwtMTYxIDQ4MCA3Ny41IDAgMjUuNC04MS40IDExOS41IDAgMjUuMiA4MS40IDc3LjUgMC0xNjQuMS00ODB6TTI3OC4xIDM1Ny45bDQxLjItMTMwLjQgMS41IDAgNDAuOSAxMzAuNC04My42IDB6TTY0MCA0MDVMNjMwIDM3My42IDQ2Mi4xIDM1OCA0ODEuNSA0MTQuNSA2NDAgNDA1ek0xNzcuOSAzNThMMTAgMzczLjcgMCA0MDUgMTU4LjUgNDE0LjQgMTc3LjkgMzU4eiJdfSwkRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXZpYWRlbyIsaWNvbjpbNDQ4LDUxMixbInZpYWRlby1zcXVhcmUiXSwiZjJhYSIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMTE4LjMgMzgxLjJjLTY4LTczLjYtMTkuOC0xOTYuMSA4MS4yLTE5Ni4xIDEzLjMgMCAyNi42IDIuMSAzOS4xIDYuNy00LjMgOC40LTcuMyAxNy42LTguNCAyNy4xLTkuNy00LjEtMjAuMi02LTMwLjctNi00OC44IDAtODQuNiA0MS43LTg0LjYgODguOSAwIDQzIDI4LjUgNzguNyA2OS41IDg1LjkgNjEuNS0yNCA3Mi45LTExNy42IDcyLjktMTc1IDAtNy4zIDAtMTQuOC0uNi0yMi4xLTExLjItMzIuOS0yNi42LTY0LjYtNDQuMi05NC41IDI3LjEgMTguMyA0MS45IDYyLjUgNDQuMiA5NC4xbDAgLjRjNy43IDIyLjUgMTEuOCA0Ni4yIDExLjggNzAgMCA1NC4xLTIxLjkgOTktNjguMyAxMjguMmwtMi40IC4yYzUwIDEgODYuMi0zOC42IDg2LjItODcuMiAwLTEyLjItMi4xLTI0LjMtNi45LTM1LjcgOS41LTEuOSAxOC41LTUuNiAyNi40LTEwLjUgMTUuMyAzNi42IDEyLjYgODcuMy0yMi44IDEyNS42LTQyLjQgNDYuMi0xMjAgNDYuNi0xNjIuNCAwek0yNzQuNiAyMTcuNmMyMS45LTEyIDQ5LjYtMzAuNyA2Mi4zLTUzIDEuNS0zIDQuMS04LjYgNC41LTEyLTEyLjUgMjcuOS00NC4yIDQ5LjgtNzMuOSA1Ni43LTQuNy03LjMtNy41LTE1LjUtNy41LTI0LjMgMC0xMC4zIDUuMi0yNC4xIDEyLjktMzEuNiA4LjMtNy45IDE4LTEwLjkgMjcuOS0xNC4xIDE2LTUuMSAzMi41LTEwLjMgNDQuNS0zNS45IDMyLjUgNDYuMiAxMy4xIDEzMC4zLTM2LjMgMTMwLjMtMTMuMyAwLTI1LjEtNy4xLTM0LjQtMTYuMXoiXX0sazByPSRFZSxTMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3BhbmVsIixpY29uOls2NDAsNTEyLFtdLCJmMzg4IiwiTTIxMC4zIDIyMC4yYy01LjYtMjQuOC0yNi45LTQxLjItNTEtNDEuMmwtMzcgMGMtNy4xIDAtMTIuNSA0LjUtMTQuMyAxMC45TDczLjEgMzIwIDk3LjggMzE5LjljNi44IDAgMTIuMy00LjUgMTQuMi0xMC43bDI1LjgtOTUuNyAxOS44IDBjOC40IDAgMTYuMiA1LjYgMTguMyAxNC44IDIuNSAxMC45LTUuOSAyMi42LTE4LjMgMjIuNmwtMTAuMyAwYy03IDAtMTIuNSA0LjYtMTQuMyAxMC44bC02LjQgMjMuOCAzMiAwYzM3LjIgMCA1OC4zLTM2LjIgNTEuNy02NS4zem0tMTU2LjUgMjhsMTguNiAwYzYuOSAwIDEyLjQtNC40IDE0LjMtMTAuOWw2LjItMjMuNi00MCAwQzMwIDIxMy43IDkgMjI3LjggMS43IDI1NC44LTcgMjg4LjYgMTguNSAzMjAgNTIgMzIwbDEyLjQgMCA3LjEtMjYuMWMxLjItNC40LTIuMi04LjMtNi40LTguM2wtMTEuMyAwYy0yNC43IDAtMjQuOS0zNy40IDAtMzcuNHptMjQ3LjUtMzQuOGwtNzcuOSAwLTMuNSAxMy40Yy0yLjQgOS42IDQuNSAxOC41IDE0LjIgMTguNWw1Ny41IDBjNCAwIDIuNCA0LjMgMi4xIDUuM2wtOC42IDMxLjhjLS40IDEuNC0uOSA1LjMtNS41IDUuM2wtMzQuOSAwYy01LjMgMC01LjMtNy45IDAtNy45bDIxLjYgMGM2LjggMCAxMi4zLTQuNiAxNC4yLTEwLjhsMy41LTEzLjItNDguNCAwYy0zOS4yIDAtNDMuNiA2My44LS43IDYzLjhsNTcuNSAuMmMxMS4yIDAgMjAuNi03LjIgMjMuNC0xNy44bDE0LTUxLjhjNC44LTE5LjItOS43LTM2LjgtMjguNS0zNi44ek02MzMuMSAxNzlsLTE4LjkgMGMtNC45IDAtOS4yIDMuMi0xMC40IDcuOUw1NjguMiAzMjBjMjAuNyAwIDM5LjgtMTMuOCA0NC45LTM0LjVsMjYuNS05OC4yYzEuMi00LjMtMi04LjMtNi41LTguM3pNMzk2LjggMjEzLjdsMCAuMS00OC4zIDAtMjYuMiA5OGMtMS4yIDQuNCAyLjIgOC4zIDYuNCA4LjNsMTguOSAwYzQuOCAwIDkuMi0zIDEwLjQtNy44bDE3LjItNjQgMTkuOCAwYzEyLjUgMCAyMS40IDExLjggMTguMSAyMy40bC0xMC42IDQwYy0xLjIgNC4zIDEuOSA4LjMgNi40IDguM2wxOS4xIDBjNC42IDAgOS4xLTIuOSAxMC4zLTcuOGw4LjgtMzMuMWM5LTMzLjEtMTUuOS02NS40LTUwLjMtNjUuNHptOTguMyA3NC42Yy0zLjYgMC02LTMuNC01LjEtNi43bDgtMzBjLjktMy45IDMuNy02IDcuOC02bDMyLjkgMGMyLjYgMCA0LjYgMi40IDMuOSA1LjFsLS43IDIuNmMtLjYgMi0xLjkgMy0zLjkgM2wtMjEuNiAwYy03IDAtMTIuNiA0LjYtMTQuMiAxMC44bC0zLjUgMTMgNTMuNCAwYzEwLjUgMCAyMC4zLTYuNiAyMy4yLTE3LjZsMy4yLTEyYzQuOS0xOS4xLTkuMy0zNi44LTI4LjMtMzYuOGwtNDcuMyAwYy0xNy45IDAtMzMuOCAxMi0zOC42IDI5LjZsLTEwLjggNDBjLTUgMTcuNyA4LjMgMzYuNyAyOC4zIDM2LjdsNjYuNyAwYzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2w1LjctMjEtNzMuMyAweiJdfSxNMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVuZGVsZXkiLGljb246WzY0MCw1MTIsW10sImY3YjMiLCJNNjI0LjYgMzI1LjJjLTEyLjMtMTIuNC0yOS43LTE5LjItNDguNC0xNy4yLTQzLjMtMS00OS43LTM0LjktMzcuNS05OC44IDIyLjgtNTcuNS0xNC45LTEzMS41LTg3LjQtMTMwLjgtNzcuNCAuNy04MS43IDgyLTEzMC45IDgyLTQ4LjEgMC01NC04MS4zLTEzMC45LTgyLTcyLjktLjgtMTEwLjEgNzMuMy04Ny40IDEzMC44IDEyLjIgNjMuOSA1LjggOTcuOC0zNy41IDk4LjgtMjEuMi0yLjMtMzcgNi41LTUzIDIyLjUtMTkuOSAxOS43LTE5LjMgOTQuOCA0Mi42IDEwMi42IDQ3LjEgNS45IDgxLjYtNDIuOSA2MS4yLTg3LjgtNDcuMy0xMDMuNyAxODUuOS0xMDYuMSAxNDYuNS04LjItLjEgLjEtLjIgLjItLjMgLjQtMjYuOCA0Mi44IDYuOCA5Ny40IDU4LjggOTUuMiA1Mi4xIDIuMSA4NS40LTUyLjYgNTguOC05NS4yLS4xLS4yLS4yLS4zLS4zLS40LTM5LjQtOTcuOSAxOTMuOC05NS41IDE0Ni41IDguMi00LjYgMTAtNi43IDIxLjMtNS43IDMzIDQuOSA1My40IDY4LjcgNzQuMSAxMDQuOSAzNS4yIDE3LjgtMTQuOCAyMy4xLTY1LjYgMC04OC4zek0zMjAuNyAzMDYuMWwtLjYgMGMtNDMuNCAwLTYyLjgtMzcuNS02Mi44LTYyLjggMC0zNC43IDI4LjItNjIuOCA2Mi44LTYyLjhsLjYgMGMzNC43IDAgNjIuOCAyOC4xIDYyLjggNjIuOCAwIDI1LTE5LjIgNjIuOC02Mi44IDYyLjh6Il19LEMwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkcmFmdDJkaWdpdGFsIixpY29uOls1MTIsNTEyLFtdLCJmMzk2IiwiTTQ5NiAzOTguMWwtMTQ0LTgyLjIgMCA2NC43LTkxLjMgMGMzMC44LTM1IDgxLjgtOTUuOSAxMTEuOC0xNDkuMyAzNS4yLTYyLjYgMTYuMS0xMjMuNC0xMi44LTE1My4zLTQuNC00LjYtNjIuMi02Mi45LTE2Ni00MS4yLTU5LjEgMTIuNC04OS40IDQzLjQtMTA0LjMgNjcuMy0xMy4xIDIwLjktMTcgMzkuOC0xOC4yIDQ3LjctNS41IDMzIDE5LjQgNjcuMSA1Ni43IDY3LjEgMzEuNyAwIDU3LjMtMjUuNyA1Ny4zLTU3LjQgMC0yNy4xLTE5LjctNTIuMS00OC01Ni44IDEuOC03LjMgMTcuNy0yMS4xIDI2LjMtMjQuNyA0MS4xLTE3LjMgNzggNS4yIDgzLjMgMzMuNSA4LjMgNDQuMy0zNy4xIDkwLjQtNjkuNyAxMjcuNi03Ni42IDg3LTE0Mi44IDE1NS43LTE2MS4xIDE3NC44bDMzNi0uMSAwIDY0LjIgMTQ0LTgxLjl6TTM4NS45IDM3MWw0Ny4xIDI3LjItNDcuMSAyNy4yIDAtNTQuNHpNMTA1LjQgMTYxLjRhMjIuNCAyMi40IDAgMSAxIDQ0LjggMCAyMi40IDIyLjQgMCAxIDEgLTQ0LjggMHpNOTguNSAzODAuNWMyNS42LTI3LjQgOTcuNy0xMDQuNyAxNTAuOC0xNjkuOSAzNS4xLTQzLjEgNDAuMy04Mi40IDI4LjQtMTEyLjctNy40LTE4LjgtMTcuNS0zMC4yLTI0LjMtMzUuNyA0NS4zIDIuMSA2OCAyMy40IDgyLjIgMzguMyAwIDAgNDIuNCA0OC4yIDUuOCAxMTMuMy0zNyA2NS45LTExMC45IDE0Ny41LTEyOC41IDE2Ni43bC0xMTQuNCAweiJdfSx6MHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVwbHlkIixpY29uOls0NDgsNTEyLFtdLCJmM2U2IiwiTTMyMCA0ODBsLTE5MiAwQzU3LjYgNDgwIDAgNDIyLjQgMCAzNTJMMCAxNjBDMCA4OS42IDU3LjYgMzIgMTI4IDMybDE5MiAwYzcwLjQgMCAxMjggNTcuNiAxMjggMTI4bDAgMTkyYzAgNzAuNC01Ny42IDEyOC0xMjggMTI4ek0xOTMuNCAyNzMuMmMtNi4xLTItMTEuNi0zLjEtMTYuNC0zLjEtNy4yIDAtMTMuNSAxLjktMTguOSA1LjZzLTkuNiA5LTEyLjggMTUuOGwtMS4xIDAtNC4yLTE4LjMtMjggMCAwIDEzOC45IDM2LjEgMCAwLTg5LjdjMS41LTUuNCA0LjQtOS44IDguNy0xMy4yczkuOC01LjEgMTYuMi01LjFjNC42IDAgOS44IDEgMTUuNiAzLjFsNC44LTM0ek0zMDguNiAzNzYuNmMtMy4yIDIuNC03LjcgNC44LTEzLjcgNy4xcy0xMi44IDMuNS0yMC40IDMuNWMtMTIuMiAwLTIxLjEtMy0yNi41LTguOS01LjUtNS45LTguNS0xNC43LTktMjYuNGw4My4zIDBjLjktNC44IDEuNi05LjQgMi4xLTEzLjkgLjUtNC40IC43LTguNiAuNy0xMi41IDAtMTAuNy0xLjYtMTkuNy00LjctMjYuOS0zLjItNy4yLTcuMy0xMy0xMi41LTE3LjItNS4yLTQuMy0xMS4xLTcuMy0xNy44LTkuMi02LjctMS44LTEzLjUtMi44LTIwLjYtMi44LTIxLjEgMC0zNy41IDYuMS00OS4yIDE4LjNzLTE3LjUgMzAuNS0xNy41IDU1YzAgMjIuOCA1LjIgNDAuNyAxNS42IDUzLjcgMTAuNCAxMy4xIDI2LjggMTkuNiA0OS4yIDE5LjYgMTAuNyAwIDIwLjktMS41IDMwLjQtNC42czE3LjEtNi44IDIyLjYtMTEuMmwtMTItMjMuNnptLTIxLjgtNzAuM2MzLjggNS40IDUuMyAxMy4xIDQuNiAyMy4xbC01MS43IDBjLjktOS40IDMuNy0xNyA4LjItMjIuNnMxMS41LTguNSAyMS04LjVjOC4yLS4xIDE0LjEgMi42IDE3LjkgOHptNzkuOSAyLjVjNC4xIDMuOSA5LjQgNS44IDE2LjEgNS44IDcgMCAxMi42LTEuOSAxNi43LTUuOHM2LjEtOS4xIDYuMS0xNS42LTItMTEuNi02LjEtMTUuNC05LjYtNS43LTE2LjctNS43Yy02LjcgMC0xMiAxLjktMTYuMSA1LjdzLTYuMSA4LjktNi4xIDE1LjQgMiAxMS43IDYuMSAxNS42em0wIDEwMC41YzQuMSAzLjkgOS40IDUuOCAxNi4xIDUuOCA3IDAgMTIuNi0xLjkgMTYuNy01LjhzNi4xLTkuMSA2LjEtMTUuNi0yLTExLjYtNi4xLTE1LjQtOS42LTUuNy0xNi43LTUuN2MtNi43IDAtMTIgMS45LTE2LjEgNS43cy02LjEgOC45LTYuMSAxNS40YzAgNi42IDIgMTEuNyA2LjEgMTUuNnoiXX0sXzByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVtcGlyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMSIsIk0yOTUuNiA1NC4yYy0xMC44LTIuMi0yMi4xLTMuMy0zMy41LTMuNmwwLTE4LjJjNzguMSAyLjIgMTQ2LjEgNDQgMTg0LjYgMTA2LjZsLTE1LjggOS4xYy02LjEtOS43LTEyLjctMTguOC0yMC4yLTI3LjFsLTE4IDE1LjVjLTI2LTI5LjYtNjEuNC01MC43LTEwMS45LTU4LjRsNC44LTIzLjl6TTYxLjQgMzIyLjRsMjMtNy43Yy02LjQtMTguMy0xMC0zOC4yLTEwLTU4LjdzMy4zLTQwLjQgOS43LTU4LjdsLTIyLjctNy43YzMuNi0xMC44IDguMy0yMS4zIDEzLjYtMzFsLTE1LjgtOS4xQzQyIDE4MSAzMi4xIDIxNy41IDMyLjEgMjU2czEwIDc1IDI3LjEgMTA2LjZMNzUgMzUzLjVjLTUuMy0xMC05LjctMjAuMy0xMy42LTMxLjF6TTIyMS4xIDQzNGMtNDAuNC04LTc1LjgtMjkuMS0xMDEuOS01OC43bC0xOCAxNS44Yy03LjUtOC42LTE0LjQtMTcuNy0yMC4yLTI3LjRsLTE2IDkuNGMzOC41IDYyLjMgMTA2LjggMTA0LjMgMTg0LjkgMTA2LjZsMC0xOC4zYy0xMS4zLS4zLTIyLjctMS43LTMzLjUtMy42bDQuNy0yMy44ek0xMDEuMyAxMjAuOWwxOCAxNS41YzI2LTI5LjYgNjEuNC01MC43IDEwMS45LTU4LjRsLTQuNy0yMy44YzEwLjgtMi4yIDIyLjEtMy4zIDMzLjUtMy42bDAtMTguMkMxNzEuOSAzNC42IDEwMy45IDc2LjQgNjUuNCAxMzlsMTUuOCA5LjFjNi05LjcgMTIuNi0xOC45IDIwLjEtMjcuMnpNNDEwLjcgMzkxLjFsLTE4LTE1LjhjLTI2IDI5LjYtNjEuNCA1MC43LTEwMS45IDU4LjdsNC43IDIzLjhjLTEwLjggMS45LTIyLjEgMy4zLTMzLjUgMy42bDAgMTguM2M3OC4xLTIuMiAxNDYuNC00NC4zIDE4NC45LTEwNi42bC0xNi4xLTkuNGMtNS43IDkuNy0xMi42IDE4LjgtMjAuMSAyNy40ek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00ODMuOCAwYTIzNS44IDIzNS44IDAgMSAwIC00NzEuNiAwIDIzNS44IDIzNS44IDAgMSAwIDQ3MS42IDB6bS0zOS0xMDYuNkw0MzcgMTU4LjVjNS4zIDkuNyAxMCAyMC4yIDEzLjYgMzFsLTIyLjcgNy43YzYuNCAxOC4zIDkuNyAzOC4yIDkuNyA1OC43cy0zLjYgNDAuNC0xMCA1OC43bDIzIDcuN2MtMy45IDEwLjgtOC4zIDIxLTEzLjYgMzFsMTUuOCA5LjFDNDcwIDMzMSA0NzkuOSAyOTQuNSA0NzkuOSAyNTZzLTkuOS03NS0yNy4xLTEwNi42em0tMTgzIDE3Ny43YzE2LjMtMy4zIDMwLjQtMTEuNiA0MC43LTIzLjVsNTEuMiA0NC44YzExLjktMTMuNiAyMS4zLTI5LjMgMjcuMS00Ni44bC02NC4yLTIyLjFjMi41LTcuNSAzLjktMTUuMiAzLjktMjMuNXMtMS40LTE2LjEtMy45LTIzLjVsNjQuNS0yMi4xYy02LjEtMTcuNC0xNS41LTMzLjItMjcuNC00Ni44bC01MS4yIDQ0LjhjLTEwLjItMTEuOS0yNC40LTIwLjUtNDAuNy0yMy44bDEzLjMtNjYuNGMtOC42LTEuOS0xNy43LTIuOC0yNy4xLTIuOHMtMTguNSAuOC0yNy4xIDIuOGwxMy4zIDY2LjRjLTE2LjMgMy4zLTMwLjQgMTEuOS00MC43IDIzLjhsLTUxLjItNDQuOGMtMTEuOSAxMy42LTIxLjMgMjkuMy0yNy40IDQ2LjhsNjQuNSAyMi4xYy0yLjUgNy41LTMuOSAxNS4yLTMuOSAyMy41czEuNCAxNi4xIDMuOSAyMy41bC02NC4yIDIyLjFjNS44IDE3LjQgMTUuMiAzMy4yIDI3LjEgNDYuOGw1MS4yLTQ0LjhjMTAuMiAxMS45IDI0LjQgMjAuMiA0MC43IDIzLjVsLTEzLjMgNjYuN2M4LjYgMS43IDE3LjcgMi44IDI3LjEgMi44czE4LjUtMS4xIDI3LjEtMi44bC0xMy4zLTY2Ljd6Il19LFQwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhY2Nlc3NpYmxlLWljb24iLGljb246WzQ0OCw1MTIsWzYyMTA3XSwiZjM2OCIsIk00MjMuOSAyNTUuOEw0MTEgNDEzLjFjLTMuMyA0MC43LTYzLjkgMzUuMS02MC42LTQuOWwxMC0xMjIuNS00MS4xIDIuM2MxMC4xIDIwLjcgMTUuOCA0My45IDE1LjggNjguNSAwIDQxLjItMTYuMSA3OC43LTQyLjMgMTA2LjVsLTM5LjMtMzkuM2M1Ny45LTYzLjcgMTMuMS0xNjcuMi03NC0xNjcuMi0yNS45IDAtNDkuNSA5LjktNjcuMiAyNkw3MyAyNDMuMmMyMi0yMC43IDUwLjEtMzUuMSA4MS40LTQwLjJsNzUuMy04NS43LTQyLjYtMjQuOC01MS42IDQ2QzEwNS41IDE2NS4zIDY0LjkgMTIwIDk1IDkzLjFsNjgtNjAuN2M5LjgtOC44IDI0LjEtMTAuMiAzNS41LTMuNiAwIDAgMTM5LjMgODAuOSAxMzkuNSA4MS4xIDE2LjIgMTAuMSAyMC43IDM2IDYuMSA1Mi42bC01OC40IDY2LjUgMTA2LjEtNS45YzE4LjUtMS4xIDMzLjYgMTQuNCAzMi4xIDMyLjd6TTM1OSAxMDEuOEE1MC45IDUwLjkgMCAxIDAgMzU5IDAgNTAuOSA1MC45IDAgMSAwIDM1OSAxMDEuOHpNMTc5LjYgNDU2LjVjLTgwLjYgMC0xMjcuNC05MC42LTgyLjctMTU2LjFMNTcuMiAyNjAuN0MzNi40IDI4NyAyNCAzMjAuMyAyNCAzNTYuNCAyNCA0ODcuMSAxNzQuNyA1NTcuOCAyNzUuNCA0NzguOWwtMzkuNy0zOS43Yy0xNiAxMC45LTM1LjMgMTcuMy01Ni4xIDE3LjN6Il19LEwwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJxdW9yYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjJjNCIsIk00NDAuNyAzODYuN2wtMjkuMyAwYy0xLjUgMTMuNS0xMC41IDMwLjgtMzMgMzAuOC0yMC41IDAtMzUuMy0xNC4yLTQ5LjUtMzUuOCA0NC4yLTM0LjIgNzQuNy04Ny41IDc0LjctMTUzIC4xLTExNy41LTk2LjYtMTk2LjctMTk4LjQtMTk2LjctOTkuNyAwLTE5Ny43IDc5LjctMTk3LjcgMTk2LjcgMCAxMzQuMSAxMzEuMyAyMjEuNiAyNDkgMTg5IDE5LjcgMzMuNiA0NS43IDYyLjMgOTUuMiA2Mi4zIDgxLjggMCA5MC44LTc1LjMgODktOTMuM3pNMjk3LjIgMzI5LjJjLTE5LjUtMjkuMi00My43LTUyLjItOTEuNS01Mi4yLTMwLjUgMC01NC4zIDEwLTY5IDIyLjhsMTIuMiAyNC4zYzYuMi0zIDEzLTQgMTkuOC00IDM1LjUgMCA1My43IDMwLjggNjkuMiA2MS4zLTEwIDMtMjAuNyA0LjItMzIuNyA0LjItNzUgMC0xMDcuNS01My0xMDcuNS0xNTYuNyAwLTEwNC40IDMyLjUtMTU3LjkgMTA3LjUtMTU3LjkgNzYuMiAwIDEwOC43IDUzLjUgMTA4LjcgMTU3LjcgLjEgNDEuOC01LjQgNzUuNi0xNi43IDEwMC41eiJdfSxEMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtamNiIixpY29uOls1NzYsNTEyLFtdLCJmMjRiIiwiTTQzMS41IDI0NC4zbDAtMzIuM2M0MS4yIDAgMzguNSAuMiAzOC41IC4yIDcuMyAxLjMgMTMuMyA3LjMgMTMuMyAxNiAwIDguOC02IDE0LjUtMTMuMyAxNS44LTEuMiAuNC0zLjMgLjMtMzguNSAuM3ptNDIuOCAyMC4yYy0yLjgtLjctMy4zLS41LTQyLjgtLjVsMCAzNWMzOS42IDAgNDAgLjIgNDIuOC0uNSA3LjUtMS41IDEzLjUtOCAxMy41LTE3IDAtOC43LTYtMTUuNS0xMy41LTE3ek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODIgMTkyLjNsLTU3IDBjMCA2Ny4xIDEwLjcgMTA5LjctMzUuOCAxMDkuNy0xOS41IDAtMzguOC01LjctNTcuMi0xNC44bDAgMjhjMzAgOC4zIDY4IDguMyA2OCA4LjMgOTcuOSAwIDgyLTQ3LjcgODItMTMxLjJ6bTE3OC41IDQuNWMtNjMuNC0xNi0xNjUtMTQuOS0xNjUgNTkuMyAwIDc3LjEgMTA4LjIgNzMuNiAxNjUgNTkuMmwwLTI4LjNDMzEyLjkgMzExLjcgMjUzIDMwOSAyNTMgMjU2czU5LjgtNTUuNiAxMDcuNS0zMS4ybDAtMjh6TTU0NCAyODYuNWMwLTE4LjUtMTYuNS0zMC41LTM4LTMybDAtLjhjMTkuNS0yLjcgMzAuMy0xNS41IDMwLjMtMzAuMiAwLTE5LTE1LjctMzAtMzctMzEgMCAwIDYuMy0uMy0xMjAuMy0uM2wwIDEyNy41IDEyMi43IDBjMjQuMyAuMSA0Mi4zLTEyLjkgNDIuMy0zMy4yeiJdfSwkMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmVkb3JhIixpY29uOls0NDgsNTEyLFtdLCJmNzk4IiwiTTAgMjU1LjhDLjEgMTMyLjIgMTAwLjMgMzIgMjI0IDMyUzQ0OCAxMzIuMyA0NDggMjU2IDM0Ny44IDQ3OS45IDIyNC4xIDQ4MEw1MC45IDQ4MEMyMi44IDQ4MCAuMSA0NTcuMyAwIDQyOS4ybDAgMCAwLTE3My40IDAgMHptMzQyLjYtNjMuMWMwLTM5LjctMzUuNi02OC41LTczLjItNjguNS0zNC45IDAtNjUuOCAyNi4zLTcwLjEgNTkuOS0uMiAzLjgtLjQgNS0uNCA4LjUtLjEgMjEuMSAwIDQyLjgtLjggNjQuNCAuOSAyNi4xIDEgNTIuMSAwIDc2LjYgMCAyNy4xLTE5LjQgNDUuNS00NC43IDQ1LjVzLTQ1LjgtMjAuMi00NS44LTQ1LjVjLjUtMjcuNyAyMi42LTQ1LjMgNDguNS00Ni4xbC4yIDAgMjYuMy0uMiAwLTM3LjMtMjYuMyAuMmMtNDcuMS0uNC04NC42IDM2LjUtODUuOSA4My40IDAgNDUuNiAzNy41IDgyLjkgODMgODIuOSA0MyAwIDc4LjctMzMuNiA4Mi42LTc1LjZsLjItNTMuNSAzMi42LS4zYzI1LjMgLjIgMjUtMzcuOC0uMi0zNy4zbC0zMi40IC4zYzAtNi40IC4xLTEyLjggLjEtMTkuMiAuMS0xMi43IC4xLTI1LjQtLjEtMzguMiAuMS0xNi41IDE1LjgtMzEuMiAzMy4yLTMxLjIgMTcuNSAwIDM1LjkgOC43IDM1LjkgMzEuMiAwIDMuMi0uMSA1LjEtLjMgNi4zLTEuOSAxMC41IDUuMiAyMC40IDE1LjcgMjEuOSAxMC42IDEuNSAyMC4yLTYuMSAyMS4yLTE2LjYgLjYtNC4yIC43LTcuOSAuNy0xMS42eiJdfSxBMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHVvbGluZ28iLGljb246WzU3Niw1MTIsW10sImU4MTIiLCJNNTA0LjMgMjMwLjVjMTAuNCA4OC41LTQzLjQgMTcyLjEtMTI4LjIgMTk5cy0xNzYuNi0xMC4zLTIxOC45LTg4LjdjLTcyIDMtMTM3LjQtMzkuOC0xNjMuMi0xMDUuNS0yLjYtNi42LTEuOS0xNCAxLjktMTkuOXMxMC4yLTkuNyAxNy4yLTEwLjFsOTYuMS02LTIzLjgtNzUuOWMtNi4zLTIwLTIuMi00MS45IDExLTU4LjNzMzMuNy0yNSA1NC41LTIzYzUyLjIgNSA4Ni44IDQuOCAxMDQtLjZTMzAwIDE2LjcgMzM5LTE2LjljMTUuOS0xMy43IDM3LjctMTguNSA1Ny44LTEyLjdzMzYuMSAyMS4zIDQyLjQgNDEuNEw0NjIuOCA4NyA1NDMuNiAzNy4zYzYtMy43IDEzLjQtNC4zIDE5LjktMS42czExLjMgOC4zIDEyLjkgMTUuMmMxNi4yIDY4LjItMTIuNCAxNDAuMy03Mi4xIDE3OS41ek0yNTguNSA0NzUuOWwwIDBjMTUuMSA3LjUgMjEuNSAyNS44IDE0LjIgNDFzLTI1LjQgMjEuOS00MC43IDE0LjlsLTQzLjktMjFjLTE1LjEtNy41LTIxLjUtMjUuOC0xNC4yLTQxczI1LjQtMjEuOSA0MC43LTE0LjlsNDMuOCAyMXpNNTY0LjYgMzQ1LjdjMTQuOCA4LjQgMjAgMjcuMyAxMS42IDQyLjJsLTIzLjkgNDIuNGMtOC43IDE0LjMtMjcuMSAxOS4yLTQxLjYgMTAuOXMtMTkuOS0yNi42LTEyLTQxLjRsMjMuOS00Mi40YzQtNy4xIDEwLjctMTIuNCAxOC42LTE0LjZzMTYuMy0xLjIgMjMuNCAyLjl6Il19LEUwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJzdGRyYWZ0IixpY29uOlszODQsNTEyLFtdLCJmM2ExIiwiTTM4NCAxOTJsLTY0IDAgMCAxMjgtMTI4IDAgMCAxMjgtMTkyIDAgMC0yNS42IDE2Ni40IDAgMC0xMjggMTI4IDAgMC0xMjggODkuNiAwIDAgMjUuNnptLTI1LjYgMzguNGwwIDEyOC0xMjggMCAwIDEyOC0xNjYuNCAwIDAgMjUuNiAxOTIgMCAwLTEyOCAxMjggMCAwLTE1My42LTI1LjYgMHptMjUuNiAxOTJsLTg5LjYgMCAwIDg5LjYgMjUuNiAwIDAtNjQgNjQgMCAwLTI1LjZ6TTAgMGwwIDM4NCAxMjggMCAwLTEyOCAxMjggMCAwLTEyOCAxMjggMCAwLTEyOC0zODQgMHoiXX0sSTByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZyZWVic2QiLGljb246WzQ0OCw1MTIsW10sImYzYTQiLCJNMzAzLjcgOTYuMmMxMS4xLTExLjEgMTE1LjUtNzcgMTM5LjItNTMuMiAyMy43IDIzLjctNDIuMSAxMjguMS01My4yIDEzOS4ycy0zOS40IC45LTYzLjEtMjIuOWMtMjMuOC0yMy43LTM0LjEtNTItMjIuOS02My4xek0xMDkuOSA2OC4xQzczLjYgNDcuNSAyMiAyNC42IDUuNiA0MS4xLTExIDU3LjcgMTIuNyAxMTAuNSAzMy41IDE0Ni44IDUyIDExNC42IDc4LjMgODcuNSAxMDkuOSA2OC4xek00MDYuNyAxNzRjMy4zIDExLjMgMi43IDIwLjctMi43IDI2LjEtMjAuMyAyMC4zLTg3LjUtMjctMTA5LjMtNzAuMS0xOC0zMi4zLTExLjEtNTMuNCAxNC45LTQ4LjcgNS43LTMuNiAxMi4zLTcuNiAxOS42LTExLjYtMjkuOC0xNS41LTYzLjYtMjQuMy05OS41LTI0LjMtMTE5LjEgMC0yMTUuNiA5Ni41LTIxNS42IDIxNS42IDAgMTE5IDk2LjUgMjE1LjYgMjE1LjYgMjE1LjZTNDQ1LjMgMzgwLjEgNDQ1LjMgMjYxYzAtMzguNC0xMC4xLTc0LjUtMjcuNy0xMDUuOC0zLjkgNy03LjYgMTMuMy0xMC45IDE4Ljh6Il19LFAwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvZHlzZWUiLGljb246WzUxMiw1MTIsW10sImU1YzYiLCJNNDA2LjcgNDYzYy00Mi4zIDMwLjgtOTQuNCA0OS0xNTAuNyA0OS0xMTEuMSAwLTIwNS43LTcwLjgtMjQxLjEtMTY5LjggMi40IDEuNyA1LjkgMy42IDcuOSA0LjQgMTYuMyA3LjQgNDAuMS01LjQgNjIuOS0yOC43IDYuOS02LjkgMTQuNC0xMi40IDIyLjgtMTcuMyAxOC4zLTExLjkgMzcuNi0yMC44IDU4LjQtMjcuMiAwIDAgMjIuMyAzNC4yIDQzLjEgNzQuOHMtMjIuMyA1NC0yNy4yIDU0Yy0uMyAwLS44IDAtMS41LS4xLTExLS41LTcwLTMtNTYgNTEuMSAxNC45IDU3LjQgOTcuNSAzNi42IDEzOS42IDguOXMzMS43LTExOC4zIDMxLjctMTE4LjNjNDEuMS02LjQgNTQgMzcuMSA1Ny45IDU5LjQgLjggNC42IDEuMSA5LjkgMS40IDE1LjUgMS4xIDIxLjIgMi4zIDQ1LjYgMzUuMyA0Ni40IDUuMyAwIDEwLjYtLjggMTUuNS0ybDAtLjF6bS05NS4zLTIzLjdjLTItLjUtMy41LTIuNS0zLTUgMS0yLjUgMy0zLjUgNS0zczMuNSAzIDMgNS0yLjUgMy41LTUgM3ptLTIwNy05NS42YzEuNS0uNSAzLjUgMSA0IDMgMCAyLTEgNC0zIDQtMS41IC41LTMuNS0xLTQtMy0uNS0xLjUgMS0zLjUgMy00ek00NTEuOCA0MjFjMzcuNS00NC42IDYwLjItMTAyLjIgNjAuMi0xNjUgMC02Ny41LTI2LjEtMTI4LjktNjguOC0xNzQuNy0uMSAyMy41LTYuMSA0OC4yLTE2LjggNjkuMi0xMS45IDIwLjMtNDkgNTguOS02OS44IDc4LjctLjcgLjMtMS4xIC45LTEuNSAxLjQtLjIgLjItLjMgLjQtLjUgLjYtNSA2LjktNCAxNi44IDMgMjEuOCAyMS4zIDE1LjggNTYuNCA0NS42IDU5LjQgNzIuOCAzLjUgMzQuOSAyNy45IDc1LjYgMzQuMiA4Ni4yIC44IDEuMyAxLjMgMi4xIDEuNCAyLjQgMCAyLjItLjQgNC4zLS44IDYuNWwwIC4xek0zOTAuNyAyNTFjLS41IDMgMSA1LjkgNCA2LjRzNS45LTEgNi40LTQtMS01LjktNC02LjRjLTMtMS01LjkgMS02LjQgNHptNjEuNC02MC45bC0xMS40IDUuNC0zIDEyLjktNS40LTExLjQtMTIuOS0zIDExLjQtNS40IDMtMTIuOSA1LjQgMTEuNCAxMi45IDN6TTM5NS41IDQxLjNjLTE2LjIgOC4yLTIyLjEgMzIuOC0yOSA2MS40LS4zIDEuNC0uNyAyLjgtMSA0LjItOS41IDM4LjUtMzAuNiAzNy42LTQxLjcgMzcuMi0xLjEgMC0yLS4xLTIuOS0uMS01LjEgMC02LTQtOC45LTE3LjEtMi42LTEyLjEtNi45LTMyLTE3LjktNjMuNi0yMi43LTY1LjgtODIuNy00OS40LTEyOC4yLTIyLjItNTUuMyAzMy4xLTM0LjQgMTAxLjktMTkuOCAxNDkuNCAuNyAyLjIgMS40IDQuNCAyIDYuNi00IDQtMTMuOCA3LjUtMjYgMTEuOS0xMi4xIDQuMy0yNi42IDkuNS00MC4zIDE2LjktMzMuOSAxOC03MC4zIDQ5LTc5LjggNjIuNi0xLjMtMTAuNy0yLTIxLjUtMi0zMi41IDAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTYgNTEuNCAwIDk5LjQgMTUuMiAxMzkuNSA0MS4zek01OC45IDE4OS42Yy0xLjUtMi00LjUtMy02LjQtMS41cy0zIDQuNS0xLjUgNi40IDQuNSAzIDYuNCAxLjVjMi41LTEuNSAzLTQuNSAxLjUtNi40ek0zMjcuMyA2NC45YzItMS41IDUtLjUgNi40IDEuNSAxLjUgMi41IDEgNS40LTEuNSA2LjQtMiAxLjUtNSAuNS02LjQtMS41cy0uNS01IDEuNS02LjR6TTk1LjEgMTA1Yy0uNSAxLjUgLjUgMyAyIDMgMS41IC41IDMtLjUgMy0yIC41LTEuNS0uNS0zLTItM3MtMyAuNS0zIDJ6bTg0LjctLjVjLTMuNS00My4xIDM3LjEtNTQgMzcuMS01NCA0NC4xLTE1LjQgNTYgNS45IDY2LjQgMzcuNnMzIDQyLjYtMzguNiA1OC45LTYxLjktNC41LTY0LjktNDIuNmwwIC4xem04OS42IDE0LjlsMSAwYzIuNSAwIDUtMiA1LTUgMi02LjkgMS0xNC40LTItMjAuOC0xLjUtMi00LTMuNS02LjQtMi41LTMgMS00LjUgNC0zLjUgNi45IDIgNC41IDMgOS45IDEuNSAxNC45LS41IDMgMS41IDUuOSA0LjUgNi40bC0uMSAuMXptLTkuOS00MS42Yy0yIDAtNC0xLTUtM3MtMi0zLjUtMy01Yy0yLTItMi01LjQgMC03LjRzNS40LTIgNy40IDBjMiAyLjUgMy41IDUgNSA3LjRzLjUgNS45LTIuNSA3LjRjLS42IDAtMSAuMi0xLjMgLjMtLjIgLjEtLjQgLjItLjYgLjJsMCAuMXoiXX0sTjByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdnLWNpcmNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI2MSIsIk0yNTcuNSA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMjA4IDM4Mi44bC0xMjUuNy0xMjUuNyAxMjUuNy0xMjUuNyAzNS4yIDM1LjQtMjQuMiAyNC4yLTExLjEtMTEuMS03Ny4yIDc3LjIgNzcuMiA3Ny4yIDI2LjYtMjYuNi01My4xLTUyLjkgMjQuNC0yNC40IDc3LjIgNzcuMi03NSA3NS4yem05OS0yLjJsLTM1LjItMzUuMiAyNC4xLTI0LjQgMTEuMSAxMS4xIDc3LjItNzcuMi03Ny4yLTc3LjItMjYuNSAyNi41IDUzLjEgNTIuOS0yNC40IDI0LjQtNzcuMi03Ny4yIDc1LTc1IDEyNS43IDEyNS43LTEyNS43IDEyNS42eiJdfSxPMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRmbGFyZSIsaWNvbjpbNjQwLDUxMixbXSwiZTA3ZCIsIk00MDcuOSAzMTkuOUwxNzcuMSAzMTdjLS43IDAtMS40LS4yLTItLjVzLTEuMi0uOC0xLjYtMS40Yy0uNC0uNi0uNy0xLjMtLjctMnMwLTEuNCAuMi0yLjFjLjQtMS4xIDEuMS0yLjEgMi4xLTIuOHMyLjEtMS4yIDMuMy0xLjJsMjMyLjktMi45YzI3LjYtMS4zIDU3LjUtMjMuNiA2OC01MC44bDEzLjMtMzQuNWMuNC0uOSAuNS0xLjkgLjUtMi45IDAtLjUtLjEtMS4xLS4yLTEuNi03LjQtMzIuMi0yNS02MS4xLTUwLjMtODIuM3MtNTYuNy0zMy43LTg5LjctMzUuNS02NS42IDcuMy05MyAyNS43LTQ4IDQ1LjMtNTguOCA3Ni41Yy0xMS4zLTguNS0yNC45LTEzLjMtMzktMTMuN3MtMjggMy41LTM5LjggMTEuNC0yMC44IDE5LjEtMjUuOSAzMi4zLTUuOSAyNy42LTIuNCA0MS4zYy01Mi4zIDEuNS05NC4yIDQ0LjEtOTQuMiA5Ni41IDAgNC43IC4zIDkuMyAxIDE0IC4yIDEuMSAuNyAyLjEgMS41IDIuOHMxLjkgMS4xIDIuOSAxLjFsNDI2LjEgLjFjMCAwIC4xIDAgLjEgMCAxLjIgMCAyLjMtLjQgMy4zLTEuMXMxLjYtMS43IDItMi45bDMuMy0xMS4zYzMuOS0xMy40IDIuNC0yNS44LTQuMS0zNC45LTYtOC40LTE2LjEtMTMuMy0yOC4yLTEzLjl6bTEwNS45LTk4LjhjLTIuMSAwLTQuMyAuMS02LjQgLjItLjggLjEtMS41IC4zLTIuMSAuOHMtMSAxLjEtMS4zIDEuOGwtOS4xIDMxLjJjLTMuOSAxMy40LTIuNCAyNS44IDQuMSAzNC45IDYgOC40IDE2LjEgMTMuMyAyOC4yIDEzLjlsNDkuMiAyLjljLjcgMCAxLjQgLjIgMiAuNXMxLjEgLjggMS41IDEuNGMuNCAuNiAuNyAxLjMgLjggMnMwIDEuNS0uMiAyLjFjLS40IDEuMS0xLjEgMi4xLTIuMSAyLjhzLTIuMSAxLjItMy4zIDEuMmwtNTEuMSAyLjljLTI3LjggMS4zLTU3LjcgMjMuNi02OC4xIDUwLjhsLTMuNyA5LjZjLS4yIC40LS4yIC44LS4yIDEuM3MuMiAuOCAuNCAxLjIgLjYgLjcgLjkgLjkgLjggLjMgMS4yIC4zYzAgMCAuMSAwIC4xIDBsMTc1LjkgMGMxIDAgMi0uMyAyLjgtLjlzMS40LTEuNSAxLjctMi40YzMuMS0xMS4xIDQuNy0yMi41IDQuNy0zNCAwLTY5LjMtNTYuNS0xMjUuNS0xMjYuMS0xMjUuNXoiXX0sUjByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhhY2tlcnJhbmsiLGljb246WzUxMiw1MTIsW10sImY1ZjciLCJNNDc3LjkgMTI4QzQ2My40IDEwMyAyODUuNSAwIDI1Ni41IDBzLTIwNi45IDEwMi44LTIyMS4zIDEyOC0xNC41IDIzMC44IDAgMjU2IDE5Mi40IDEyOCAyMjEuMyAxMjggMjA2LjgtMTAyLjkgMjIxLjMtMTI4IDE0LjUtMjMxIDAtMjU2ek0zMTYuNSA0MTQuMmMtNCAwLTQwLjktMzUuOC0zOC0zOC43IC45LS45IDYuMy0xLjUgMTcuNS0xLjggMC0yNi4yIC42LTY4LjYgLjktODYuMyAwLTItLjQtMy40LS40LTUuOGwtNzkuOSAwYzAgNy4xLS41IDM2LjIgMS40IDcyLjkgLjIgNC41LTEuNiA2LTUuNyA1LjktMTAuMSAwLTIwLjMtLjEtMzAuNC0uMS00LjEgMC01LjktMS41LTUuNy02LjEgLjktMzMuNCAzLTg0LS4yLTIxMi43bDAtMy4yYy05LjctLjQtMTYuNC0xLTE3LjMtMS44LTIuOS0yLjkgMzQuNS0zOC43IDM4LjUtMzguN3M0MS4yIDM1LjggMzguMyAzOC43Yy0uOSAuOS03LjkgMS41LTE2LjggMS44bDAgMy4yYy0yLjQgMjUuOC0yIDc5LjYtMi42IDEwNS40bDgwLjMgMGMwLTQuNiAuNC0zNC43LTEuMi04My42LS4xLTMuNCAxLTUuMiA0LjItNS4yIDExLjEtLjEgMjIuMi0uMSAzMy4yLS4xIDMuNSAwIDQuNiAxLjcgNC41IDUuNC0zLjcgMTkxLjMtLjcgMTc3LjktLjcgMjEwLjMgOC45IC40IDE2LjggMSAxNy43IDEuOCAyLjkgMi45LTMzLjYgMzguNy0zNy42IDM4LjdsMCAweiJdfSxGMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2t5YXRsYXMiLGljb246WzY0MCw1MTIsW10sImYyMTYiLCJNNjQwIDMyOS4zYzAgNjUuOS01Mi41IDExNC40LTExNy41IDExNC40LTE2NS45IDAtMTk2LjYtMjQ5LjctMzU5LjctMjQ5LjctMTQ2LjkgMC0xNDcuMSAyMTIuMiA1LjYgMjEyLjIgNDIuNSAwIDkwLjktMTcuOCAxMjUuMy00Mi41IDUuNi00LjEgMTYuOS0xNi4zIDIyLjgtMTYuM3MxMC45IDUgMTAuOSAxMC45YzAgNy44LTEzLjEgMTkuMS0xOC43IDI0LjEtNDAuOSAzNS42LTEwMC4zIDYxLjItMTU0LjcgNjEuMi04My40IC4xLTE1NC01OS0xNTQtMTQ0LjlTNjcuNSAxNDkuNiAxNTIuOCAxNDkuNmMxODUuMyAwIDIyMi41IDI0NS45IDM2MS45IDI0NS45IDk5LjkgMCA5NC44LTEzOS43IDMuNC0xMzkuNy0xNy41IDAtMzUgMTEuNi00Ni45IDExLjYtOC40IDAtMTUuOS03LjItMTUuOS0xNS42IDAtMTEuNiA1LjMtMjMuNyA1LjMtMzYuMyAwLTY2LjYtNTAuOS0xMTQuNy0xMTYuOS0xMTQuNy01My4xIDAtODAgMzYuOS04OC44IDM2LjktNi4yIDAtMTEuMi01LTExLjItMTEuMiAwLTUuNiA0LjEtMTAuMyA3LjgtMTQuNCAyNS4zLTI4LjggNjQuNy00My43IDEwMi44LTQzLjcgNzkuNCAwIDEzOS4xIDU4LjQgMTM5LjEgMTM3LjggMCA2LjktLjMgMTMuNy0xLjIgMjAuNiAxMS45LTMuMSAyNC4xLTQuNyAzNS45LTQuNyA2MC43IDAgMTExLjkgNDUuMyAxMTEuOSAxMDcuMnoiXX0sQjByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlc2twcm8iLGljb246WzQ0OCw1MTIsW10sImYzOGYiLCJNMTIyIDQwNi4ybDg0IDBjMjMuMSAwIDQzLjktMy41IDYyLjYtMTAuNyAxOC43LTcuMSAzNC43LTE3LjEgNDgtMzAuMSAxMy4zLTEzLjQgMjMuNi0yOS4yIDMwLjctNDcuNSAzLjktOS42IDYuOC0xOS44IDguNi0zMC42bDczLjcgMGMtMi41IDIxLjMtNy43IDQxLjMtMTUuNSA2MC0xMS4xIDI3LjItMjYuOSA1MC44LTQ3LjMgNzAuOS0yMCAxOS42LTQ0LjIgMzQuOC03Mi42IDQ1LjRzLTYwIDE2LTk0LjcgMTZsLTE0OS44IC4yIDAtMTkyLjQgNzIuMy0uMiAwIDExOC44ek0xOTkuNCAzMmMzNC43IDAgNjYuMiA1LjQgOTQuNyAxNiAyOC41IDEwLjcgNTIuOSAyNi4xIDczLjMgNDYuMiAyMC40IDE5LjYgMzYuMiA0My4yIDQ3LjMgNzAuOSA3LjUgMTguMyAxMi40IDM4LjEgMTQuOSA1OS4zbC03My43LS4xYy0xLjktMTAuNS00LjctMjAuNS04LjYtMjkuOS03LjEtMTguNy0xNy4zLTM0LjUtMzAuNy00Ny41LTEzLjMtMTMuNC0yOS4zLTIzLjYtNDgtMzAuOC0xOC42LTcuMS0zOS41LTEwLjctNjIuNy0xMC43bC04NCAwIDAgMTE4LjgtNzIuMiAuMiAwLTE5Mi4zIDE0OS43LS4xeiJdfSxIMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVzb2x2aW5nIixpY29uOls1MTIsNTEyLFtdLCJmM2U3IiwiTTI4OS4yIDI3OC4yYzQ2LTEzLjMgNDkuNi0yMy41IDQ0LTQzLjRMMzIyIDE5NS41Yy02LjEtMjAuOS0xOC40LTI4LjEtNzEuMS0xMi44bC0xODguMiA1NC4xIDI4LjYgOTguNiAxOTcuOS01Ny4yek0yNTYuNSA4QzEzOS40IDggNDEuMiA4OC43IDE1LjIgMTk3LjVsMjIxLjktNjMuOWMzNC44LTEwLjIgNTQuMi0xMS43IDc5LjMtOC4yIDM2LjMgNi4xIDUyLjcgMjUgNjEuNCA1NS4ybDEwLjcgMzcuOGM4LjIgMjguMSAxIDUwLjYtMjMuNSA3My42LTE5LjQgMTcuNC0zMS4yIDI0LjUtNjEuNCAzMy4ybC05Mi42IDI2LjYgMjIwLjQgMjcuMSA5LjcgMzQuMi00OC4xIDEzLjMtMjg2LjgtMzcuMyAyMyA4MC4yQzE2NiA0OTEuMyAyMDkuNSA1MDQgMjU1LjUgNTA0IDM5Mi41IDUwNCA1MDQgMzkyLjYgNTA0IDI1NS43IDUwNSAxMTkuNCAzOTMuNSA4IDI1Ni41IDh6TTQ2LjMgMzg4LjZMOCAyNTYuOGMwIDQ4LjUgMTQuMyA5My40IDM4LjMgMTMxLjh6Il19LHEwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibGFja2JlcnJ5IixpY29uOls1MTIsNTEyLFtdLCJmMzdiIiwiTTE2NiAxMTYuOWMwIDIzLjQtMTYuNCA0OS4xLTcyLjUgNDkuMWwtNzAuMSAwIDIxLTg4LjggNjcuOCAwYzQyLjEgMCA1My44IDIzLjMgNTMuOCAzOS43ek0yOTIuMiA3Ny4ybC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1My44IDAgNzAuMS0yNS43IDcwLjEtNDkuMSAuMS0xNi40LTExLjYtMzkuNy01My43LTM5Ljd6TTg4LjggMjA4LjFsLTY3LjggMC0yMSA4OC44IDcwLjEgMGM1Ni4xIDAgNzIuNS0yMy40IDcyLjUtNDkuMSAwLTE2LjMtMTEuNy0zOS43LTUzLjgtMzkuN3ptMTgwLjEgMGwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTMuOCAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My43LTM5Ljd6bTE4OS4zLTUzLjhsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xIC4xLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3ptLTI4IDEzNy45bC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1Ni4xIDAgNzAuMS0yMy40IDcwLjEtNDkuMSAwLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3pNMjQwLjggMzQ2bC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1Ni4xIDAgNzAuMS0yNS43IDcwLjEtNDkuMSAuMS0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6Il19LFYwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHJpcGUtcyIsaWNvbjpbMzg0LDUxMixbXSwiZjQyYSIsIk0xNTUuNiAxNTQuNmMwLTIyLjMgMTguNi0zMC45IDQ4LjQtMzAuOSA0My40IDAgOTguNSAxMy4zIDE0MS45IDM2LjdsMC0xMzQuM2MtNDcuMy0xOC45LTk0LjUtMjYuMS0xNDEuOC0yNi4xLTExNS43IDAtMTkyLjggNjAuNC0xOTIuOCAxNjEuNCAwIDE1Ny45IDIxNi44IDEzMi4zIDIxNi44IDIwMC40IDAgMjYuNC0yMi45IDM0LjktNTQuNyAzNC45LTQ3LjIgMC0xMDguMi0xOS41LTE1Ni4xLTQ1LjVsMCAxMjguNWM0OS4zIDIxLjMgMTAyLjMgMzIuMyAxNTYgMzIuNCAxMTguNiAwIDIwMC4zLTUxIDIwMC4zLTE1My42IDAtMTcwLjItMjE4LTEzOS43LTIxOC0yMDMuOXoiXX0sQUVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1iZWhhbmNlIixpY29uOls0NDgsNTEyLFsiYmVoYW5jZS1zcXVhcmUiXSwiZjFiNSIsIk0xNTUuMyAzMTguNGMxNy4yIDAgMzEuMi02LjEgMzEuMi0yNS40IDAtMTkuNy0xMS43LTI3LjQtMzAuMy0yNy41bC00NiAwIDAgNTIuOSA0NS4xIDB6bS01LjQtMTI5LjZsLTM5LjYgMCAwIDQ0LjggNDIuNyAwYzE1LjEgMCAyNS44LTYuNiAyNS44LTIyLjkgMC0xNy43LTEzLjctMjEuOS0yOC45LTIxLjl6bTEyOS41IDc0LjhsNjIuMiAwYy0xLjctMTguNS0xMS4zLTI5LjctMzAuNS0yOS43LTE4LjMgMC0zMC41IDExLjQtMzEuNyAyOS43ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMzQ5LjUgMTg1bC03Ny44IDAgMC0xOC45IDc3LjggMCAwIDE4Ljl6TTE5My43IDI0My43YzIzLjYgNi43IDM1IDI3LjUgMzUgNTEuNiAwIDM5LTMyLjcgNTUuNy02Ny42IDU1LjlsLTkzLjEgMCAwLTE5MiA5MC41IDBjMzIuOSAwIDYxLjQgOS4zIDYxLjQgNDcuNSAwIDE5LjMtOSAyOC44LTI2LjIgMzd6bTExOC43LTM4LjZjNDMuNSAwIDY3LjYgMzQuMyA2Ny42IDc1LjQgMCAxLjYtLjEgMy4zLS4yIDUgMCAuOC0uMSAxLjUtLjEgMi4ybC0xMDAuMiAwYzAgMjIuMiAxMS43IDM1LjMgMzQuMSAzNS4zIDExLjYgMCAyNi41LTYuMiAzMC4yLTE4LjFsMzMuNyAwYy0xMC40IDMxLjktMzEuOSA0Ni44LTY1LjEgNDYuOC00My44IDAtNzEuMS0yOS43LTcxLjEtNzMgMC00MS44IDI4LjctNzMuNiA3MS4xLTczLjZ6Il19LGowcj1BRWUsVTByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlcnZpY2VzdGFjayIsaWNvbjpbNTEyLDUxMixbXSwiZjNlYyIsIk05NiAyMTZjODEuNyAxMC4yIDI3My43IDEwMi4zIDMwNCAyMzJMOCA0NDhjOTkuNS04LjEgMTg0LjUtMTM3IDg4LTIzMnpNMTI4IDY0YzMyLjMgMzUuNiA0Ny43IDgzLjkgNDYuNCAxMzMuNiA4Mi45IDMzLjcgMjA3LjMgMTIzLjcgMjMzLjYgMjUwLjRsOTYgMEM0NjMuMyAyMzEuOSAyMzAuOCA3OS41IDEyOCA2NHoiXX0sVzByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJvY2tldGNoYXQiLGljb246WzU3Niw1MTIsW10sImYzZTgiLCJNMjg0LjUgMjI0LjhjLTYuNyAwLTEzLjMgMi4xLTE4LjkgNS44cy05LjkgOS4xLTEyLjUgMTUuNC0zLjIgMTMuMS0xLjkgMTkuNyA0LjYgMTIuNyA5LjQgMTcuNCAxMC45IDggMTcuNSA5LjMgMTMuNSAuNiAxOS43LTIgMTEuNS03IDE1LjMtMTIuNiA1LjctMTIuMiA1LjctMTguOWMwLTkuMS0zLjctMTcuOC0xMC4xLTI0LjJzLTE1LjEtMTAtMjQuMi05Ljl6bS0xMTAuNCAwYy02LjcgMC0xMy4zIDIuMS0xOC45IDUuOHMtOS45IDkuMS0xMi41IDE1LjQtMy4yIDEzLjEtMS45IDE5LjcgNC42IDEyLjcgOS40IDE3LjQgMTAuOSA4IDE3LjUgOS4zIDEzLjUgLjYgMTkuNy0yIDExLjUtNyAxNS4zLTEyLjYgNS43LTEyLjIgNS43LTE4LjljMC05LjEtMy43LTE3LjgtMTAuMS0yNC4ycy0xNS4xLTEwLTI0LjItMTBsMCAwem0yMjAuOSAwYTM0LjEgMzQuMSAwIDEgMCAuNCA2OC4yIDM0LjEgMzQuMSAwIDEgMCAtLjQtNjguMnptMTUzLjgtNTUuM2MtMTUuNS0yNC4yLTM3LjMtNDUuNi02NC43LTYzLjYtNTIuOS0zNC44LTEyMi40LTU0LTE5NS43LTU0LTI0LjIgMC00OC4zIDIuMS03MiA2LjQtMTQuOS0xNC4zLTMxLjUtMjYuNi00OS41LTM2LjYtNjYuOC0zMy4zLTEyNS42LTIwLjktMTU1LjMtMTAuMi0yLjMgLjgtNC4zIDIuMS01LjkgMy45cy0yLjcgMy45LTMuMyA2LjItLjUgNC43IC4xIDcuMSAxLjggNC40IDMuNSA2LjFDMjcgNTYuNSA2MS42IDk5LjMgNTMuMSAxMzguMyAyMCAxNzIuMiAyIDIxMyAyIDI1NS42IDIgMjk5IDIwIDMzOS44IDUzLjEgMzczLjcgNjEuNiA0MTIuNyAyNyA0NTUuNiA2IDQ3Ny4yIDQuMyA0NzkgMy4yIDQ4MS4xIDIuNSA0ODMuNHMtLjcgNC43LS4xIDcgMS43IDQuNSAzLjMgNi4yIDMuNiAzLjEgNS45IDMuOWMyOS43IDEwLjcgODguNSAyMy4xIDE1NS4zLTEwLjIgMTgtMTAgMzQuNy0yMi4zIDQ5LjUtMzYuNiAyMy44IDQuMyA0Ny45IDYuNCA3MiA2LjQgNzMuMyAwIDE0Mi44LTE5LjIgMTk1LjctNTQgMjcuNC0xOCA0OS4xLTM5LjQgNjQuNy02My42IDE3LjMtMjYuOSAyNi4xLTU1LjkgMjYuMS04Ni4xIDAtMzEtOC44LTYwLTI2LjEtODYuOWwwIDB6TTI4NS40IDQwOS45Yy0zMC4yIC4xLTYwLjMtMy44LTg5LjQtMTEuNWwtMjAuMSAxOS40Yy0xMS4yIDEwLjctMjMuNiAyMC0zNy4xIDI3LjYtMTYuNCA4LjItMzQuMiAxMy4zLTUyLjUgMTQuOSAxLTEuOCAxLjktMy42IDIuOC01LjQgMjAuMi0zNy4xIDI1LjYtNzAuNSAxNi4zLTEwMC4xLTMzLTI2LTUyLjgtNTkuMi01Mi44LTk1LjQgMC04My4xIDEwNC4zLTE1MC41IDIzMi44LTE1MC41czIzMi45IDY3LjQgMjMyLjkgMTUwLjVjMCA4My4xLTEwNC4zIDE1MC41LTIzMi45IDE1MC41eiJdfSxHMHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmViZWwiLGljb246WzUxMiw1MTIsW10sImYxZDAiLCJNMjU2LjkgNTA0Yy0xMzkuMyAwLTI0Ny41LTExNi4yLTI0My4zLTI1NC4xIDIuOC03OS4yIDQzLjItMTUyLjIgMTE2LjUtMjAwLjQgLjMgMCAxLjktLjYgMS4xIC44LTUuOCA1LjUtMTExLjMgMTI5LjgtMTQuMSAyMjYuNCA0OS44IDQ5LjUgOTAgMi41IDkwIDIuNSAzOC41LTUwLjEtLjYtMTI1LjktLjYtMTI1LjktMTAtMjQuOS00NS43LTQwLjEtNDUuNy00MC4xbDI4LjgtMzEuOGMyNC40IDEwLjUgNDMuMiAzOC43IDQzLjIgMzguNyAuOC0yOS42LTIxLjktNjEuNC0yMS45LTYxLjRMMjU1LjUgOCAyOTkuOCA1OC4xYy0yMC41IDI4LjgtMjEuOSA2Mi42LTIxLjkgNjIuNiAxMy44LTIzIDQzLjUtMzkuMyA0My41LTM5LjNsMjguNSAzMS44Yy0yNy40IDguOS00NS40IDM5LjktNDUuNCAzOS45LTE1LjggMjguNS0yNy4xIDg5LjQgLjYgMTI3LjMgMzIuNCA0NC42IDg3LjctMi44IDg3LjctMi44IDEwMi43LTkxLjktMTAuNS0yMjUtMTAuNS0yMjUtNi4xLTUuNSAuOC0yLjggLjgtMi44IDUwLjEgMzYuNSAxMTQuNiA4NC40IDExNi4yIDIwNC44IDIgMTQ1LjYtOTkuOSAyNDkuNC0yNDIuNCAyNDkuNHoiXX0sWTByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS13ZWItYXdlc29tZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTY4MyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMzUgMTc3LjZsNTMgNDYuNCA1Mi4yLTEwLjRjLTIuNi0zLjktNC4yLTguNS00LjItMTMuNiAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMTMtMTAuMyAyMy42LTIzLjIgMjRMMzA0LjUgMzQ5LjFjLTUuMiAxMS41LTE2LjYgMTguOS0yOS4yIDE4LjlsLTEwMi42IDBjLTEyLjYgMC0yNC03LjQtMjkuMi0xOC45TDg3LjIgMjI0Yy0xMi45LS40LTIzLjItMTEtMjMuMi0yNCAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgNS0xLjUgOS43LTQuMiAxMy42TDE2MCAyMjQgMjEzLjEgMTc3LjZjLTguOS00LjEtMTUtMTMuMS0xNS0yMy42IDAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZjMCAxMC41LTYuMiAxOS41LTE1LjEgMjMuNnoiXX0sSzByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imxpbmt0cmVlIixpY29uOls0NDgsNTEyLFtdLCJlN2Q4IiwiTTE2IDE3My40bDEyNS44IDAtODkuNC04NS40IDQ5LjUtNTEgODUuMiA4Ny44IDAtMTI0LjggNzMuOSAwIDAgMTI0LjggODUuMi04Ny42IDQ5LjQgNTAuOC04OS40IDg1LjIgMTI1LjcgMCAwIDcwLjUtMTI2LjQgMCA5MCA4Ny42LTQ5LjMgNDkuOC0xMjIuMi0xMjMtMTIyLjIgMTIzLTQ5LjUtNDkuNiA5MC04Ny42LTEyNi40IDAgMC03MC41ek0xODYuOSAzNDQuOGw3My45IDAgMCAxNjcuMi03My45IDAgMC0xNjcuMnoiXX0sWjByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpbXBseWJ1aWx0IixpY29uOls1MTIsNTEyLFtdLCJmMjE1IiwiTTQ4MS42IDY0bC0xMDYgMEMzNjEuMSA2NCAzNDkgNzUuOCAzNDkgOTAuM2wwIDM5LjYtMTg1LjMgMCAwLTM5LjZjMC0xNC41LTEyLTI2LjMtMjYuNi0yNi4zbC0xMDYgMEMxNi41IDY0IDQuNyA3NS44IDQuNyA5MC4zbDAgMzMxLjRjMCAxNC41IDExLjggMjYuMyAyNi42IDI2LjNsNDUwLjQgMGMxNC44IDAgMjYuNi0xMS44IDI2LjYtMjYuM2wwLTMzMS40Yy0uMi0xNC41LTEyLTI2LjMtMjYuNy0yNi4zek0xNTAuNSAyMjIuN2E2Ni41IDY2LjUgMCAxIDEgLS4zIDEzMy4xIDY2LjUgNjYuNSAwIDEgMSAuMy0xMzMuMXptMjExLjkgLjFhNjYuNSA2Ni41IDAgMSAxIC4zIDEzMi45IDY2LjUgNjYuNSAwIDEgMSAtLjMtMTMyLjl6Il19LFEwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHViYmVyIixpY29uOls0NDgsNTEyLFtdLCJlNWM3IiwiTTEzNi41IDI5NC4ybDU4LjggMjIuOWM5LjEtMzYuOCAyNS40LTYxLjEgNTUtNjEuMSA0OS40IDAgNzEuNCA2My42IDE0Mi40IDYzLjYgMTUuNiAwIDM1LjktMi44IDU1LjMtMTMuM2wwIDYxLjdjMCA2MS44LTUwLjQgMTEyLTExMi4zIDExMkwwIDQ4MCA0MS44IDQyNCAwIDM2OCA0MS43IDMxMiAwIDI1Ni4xIDQxLjggMjAwLjEgMCAxNDQuMSA0MS44IDg4IDAgMzIgMzM1LjcgMzJDMzk3LjYgMzIgNDQ4IDgyLjMgNDQ4IDE0NC4xbDAgNTEuM2MtOS4yIDM2LjMtMjUuOSA2MC42LTU1IDYwLjYtNDkuNiAwLTcxLjYtNjMuNS0xNDIuNC02My41LTM1LjkgMC05NS4yIDE0LjYtMTE0LjEgMTAxLjZsMCAuMXoiXX0sWDByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcGVyIixpY29uOls2NDAsNTEyLFtdLCJmMzcxIiwiTTQyLjEgMjM5LjFjMjIuMiAwIDI5IDIuOCAzMy41IDE0LjZsLjggMCAwLTIyLjljMC0xMS4zLTQuOC0xNS40LTE3LjktMTUuNC0xMS4zIDAtMTQuNCAyLjUtMTUuMSAxMi44bC0zOC42IDBjLjMtMTMuOSAxLjUtMTkuMSA1LjgtMjQuNCA3LjMtOC44IDE4LjktMTEuOCA0Ni4xLTExLjggMzMgMCA0Ny4xIDUgNTMuOSAxOC45IDIgNC4zIDQgMTUuNiA0IDIzLjdsMCA3Ni4zLTM4LjMgMCAxLjMtMTkuMS0xIDBjLTUuMyAxNS42LTEzLjYgMjAuNC0zNS41IDIwLjQtMzAuMyAwLTQxLjEtMTAuMS00MS4xLTM3LjMgMC0yNS4yIDEyLjMtMzUuOCA0Mi4xLTM1Ljh6bTE3LjEgNDguMWMxMy4xIDAgMTYuOS0zIDE2LjktMTMuNCAwLTkuMS00LjMtMTEuNi0xOS42LTExLjYtMTMuMSAwLTE3LjkgMy0xNy45IDEyLjEtLjEgMTAuNCAzLjcgMTIuOSAyMC42IDEyLjl6TTEzNyAxOTIuM2wzOC4zIDAtMS41IDIwLjYgLjggMGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4yIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmwtLjggMCAwIDcwLjMtMzkuNSAwIDAtMTY5ek0yMTcuOSAyNTNjMC0yNy41LTMuMy0zMi41LTIwLjctMzIuNS0xNi45IDAtMjAuNyA1LTIwLjcgMjguNyAwIDI4IDMuNSAzMy41IDIxLjIgMzMuNSAxNi40IDAgMjAuMi01LjYgMjAuMi0yOS43em01Ny45LTYwLjdsMzguMyAwLTEuNSAyMC42IC44IDBjOS4xLTE3LjEgMTUuOS0yMC45IDM3LjUtMjAuOSAxNC40IDAgMjQuNyAzIDMxLjUgOS4xIDkuOCA4LjYgMTIuOCAyMC40IDEyLjggNDguMSAwIDMwLTMgNDMuMS0xMi4xIDUyLjktNi44IDcuMy0xNi40IDEwLjEtMzMuMyAxMC4xLTIwLjQgMC0yOS4yLTUuNS0zMy44LTIxLjJsLS44IDAgMCA3MC4zLTM5LjUgMCAwLTE2OSAuMSAwek0zNTYuNyAyNTNjMC0yNy41LTMuMy0zMi41LTIwLjctMzIuNS0xNi45IDAtMjAuNyA1LTIwLjcgMjguNyAwIDI4IDMuNSAzMy41IDIxLjIgMzMuNSAxNi40IDAgMjAuMi01LjYgMjAuMi0yOS43em01My44LTMuOGMwLTI1LjQgMy4zLTM3LjggMTIuMy00NS44IDguOC04LjEgMjIuMi0xMS4zIDQ1LjEtMTEuMyA0Mi44IDAgNTUuNyAxMi44IDU1LjcgNTUuN2wwIDExLjEtNzUuMyAwYy0uMyAyLS4zIDQtLjMgNC44IDAgMTYuOSA0LjUgMjEuOSAyMC4xIDIxLjkgMTMuOSAwIDE3LjktMyAxNy45LTEzLjlsMzcuNSAwIDAgMi4zYzAgOS44LTIuNSAxOC45LTYuOCAyNC43LTcuMyA5LjgtMTkuNiAxMy42LTQ0LjMgMTMuNi0yNy41IDAtNDEuNi0zLjMtNTAuNi0xMi4zLTguNS04LjUtMTEuMy0yMS4zLTExLjMtNTAuOHptNzYuNC0xMS42Yy0uMy0xLjgtLjMtMy4zLS4zLTMuOCAwLTEyLjMtMy4zLTE0LjYtMTkuNi0xNC42LTE0LjQgMC0xNy4xIDMtMTguMSAxNS4xbC0uMyAzLjMgMzguMyAwem01NS42LTQ1LjNsMzguMyAwLTEuOCAxOS45IC43IDBjNi44LTE0LjkgMTQuNC0yMC4yIDI5LjctMjAuMiAxMC44IDAgMTkuMSAzLjMgMjMuNCA5LjMgNS4zIDcuMyA2LjggMTQuNCA2LjggMzQgMCAxLjUgMCA1IC4yIDkuM2wtMzUgMGMuMy0xLjggLjMtMy4zIC4zLTQgMC0xNS40LTItMTkuNC0xMC4zLTE5LjQtNi4zIDAtMTAuOCAzLjMtMTMuMSA5LjMtMSAzLTEgNC4zLTEgMTIuM2wwIDY4LTM4LjMgMCAwLTExOC41IC4xIDB6Il19LEowcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtc2Nob2xhciIsaWNvbjpbNTEyLDUxMixbXSwiZTYzYiIsIk0zOTAuOSAyOTguNXMwIC4xIC4xIC4xYzkuMiAxOS40IDE0LjQgNDEuMSAxNC40IDY0LS4xIDgyLjUtNjYuOSAxNDkuNC0xNDkuNCAxNDkuNFMxMDYuNyA0NDUuMSAxMDYuNyAzNjIuN2MwLTIyLjkgNS4yLTQ0LjYgMTQuNC02NCAxLjctMy42IDMuNi03LjIgNS42LTEwLjcgNC40LTcuNiA5LjQtMTQuNyAxNS0yMS4zIDI3LjQtMzIuNiA2OC41LTUzLjMgMTE0LjQtNTMuMyAzMy42IDAgNjQuNiAxMS4xIDg5LjYgMjkuOSA5LjEgNi45IDE3LjQgMTQuNyAyNC44IDIzLjUgNS42IDYuNiAxMC42IDEzLjggMTUgMjEuMyAyIDMuNCAzLjggNyA1LjUgMTAuNWwtLjEtLjF6bTI2LjQtMTguOGMtMzAuMS01OC40LTkxLTk4LjQtMTYxLjMtOTguNHMtMTMxLjIgNDAtMTYxLjMgOTguNGwtOTQuNy03NyAyNTYtMjAyLjcgMjU2IDIwMi43LTk0LjcgNzcuMSAwLS4xeiJdfSxlZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFybiIsaWNvbjpbNTEyLDUxMixbXSwiZjdlMyIsIk00MDEuOSAzNDUuMmMtMzkgOS4zLTQ4LjQgMzIuMS0xMDQgNDcuNCAwIDAtMi43IDQtMTAuNCA1LjgtMTMuNCAzLjMtNjMuOSA2LTY4LjUgNi4xLTEyLjQgLjEtMTkuOS0zLjItMjItOC4yLTYuNC0xNS4zIDkuMi0yMiA5LjItMjItOC4xLTUtOS05LjktOS44LTguMS0yLjQgNS44LTMuNiAyMC4xLTEwLjEgMjYuNS04LjggOC45LTI1LjUgNS45LTM1LjMgLjgtMTAuOC01LjcgLjgtMTkuMiAuOC0xOS4ycy01LjggMy40LTEwLjUtMy42Yy02LTkuMy0xNy4xLTM3LjMgMTEuNS02Mi0xLjMtMTAuMS00LjYtNTMuNyA0MC42LTg1LjYgMCAwLTIwLjYtMjIuOC0xMi45LTQzLjMgNS0xMy40IDctMTMuMyA4LjYtMTMuOSA1LjctMi4yIDExLjMtNC42IDE1LjQtOS4xIDIwLjYtMjIuMiA0Ni44LTE4IDQ2LjgtMThzMTIuNC0zNy44IDIzLjktMzAuNGMzLjUgMi4zIDE2LjMgMzAuNiAxNi4zIDMwLjZzMTMuNi03LjkgMTUuMS01YzguMiAxNiA5LjIgNDYuNSA1LjYgNjUuMS02LjEgMzAuNi0yMS40IDQ3LjEtMjcuNiA1Ny41LTEuNCAyLjQgMTYuNSAxMCAyNy44IDQxLjMgMTAuNCAyOC42IDEuMSA1Mi43IDIuOCA1NS4zIC44IDEuNCAxMy43IC44IDM2LjQtMTMuMiAxMi44LTcuOSAyOC4xLTE2LjkgNDUuNC0xNyAxNi43LS41IDE3LjYgMTkuMiA0LjkgMjIuMnpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptNDE2LjcgNzUuMmMtMS43LTEzLjYtMTMuMi0yMy0yOC0yMi44LTIyIC4zLTQwLjUgMTEuNy01Mi44IDE5LjItNC44IDMtOC45IDUuMi0xMi40IDYuOCAzLjEtNDQuNS0yMi41LTczLjEtMjguNy03OS40IDcuOC0xMS4zIDE4LjQtMjcuOCAyMy40LTUzLjIgNC4zLTIxLjcgMy01NS41LTYuOS03NC41LTEuNi0zLjEtNy40LTExLjItMjEtNy40LTkuNy0yMC0xMy0yMi4xLTE1LjYtMjMuOC0xLjEtLjctMjMuNi0xNi40LTQxLjQgMjgtMTIuMiAuOS0zMS4zIDUuMy00Ny41IDIyLjgtMiAyLjItNS45IDMuOC0xMC4xIDUuNGwuMSAwYy04LjQgMy0xMi4zIDkuOS0xNi45IDIyLjMtNi41IDE3LjQgLjIgMzQuNiA2LjggNDUuNy0xNy44IDE1LjktMzcgMzkuOC0zNS43IDgyLjUtMzQgMzYtMTEuOCA3My01LjYgNzkuNi0xLjYgMTEuMSAzLjcgMTkuNCAxMiAyMy44IDEyLjYgNi43IDMwLjMgOS42IDQzLjkgMi44IDQuOSA1LjIgMTMuOCAxMC4xIDMwIDEwLjEgNi44IDAgNTgtMi45IDcyLjYtNi41IDYuOC0xLjYgMTEuNS00LjUgMTQuNi03LjEgOS44LTMuMSAzNi44LTEyLjMgNjIuMi0yOC43IDE4LTExLjcgMjQuMi0xNC4yIDM3LjYtMTcuNCAxMi45LTMuMiAyMS0xNS4xIDE5LjQtMjguMnoiXX0sdGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0YWNrLW92ZXJmbG93IixpY29uOlszODQsNTEyLFtdLCJmMTZjIiwiTTI5MSAzMTFsLTE5NS43LTQxLjMtOC4yIDM5LjMgMTk1LjcgNDEgOC4yLTM5em01MS04N0wxODguNSA5NS43IDE2MyAxMjYuNSAzMTYuNSAyNTQuOCAzNDIgMjI0em0tMzEuMiAzOS43TDEyOS41IDE3OSAxMTIuOCAyMTUuNSAyOTQgMzAwIDMxMC44IDI2My43ek0yNjIuMyAzMmwtMzIgMjQgMTE5LjMgMTYwLjMgMzItMjQtMTE5LjMtMTYwLjN6bTIwLjUgMzI4bC0yMDAgMCAwIDM5LjcgMjAwIDAgMC0zOS43em0zOS43IDgwbC0yNzkuNSAwIDAtMTIwLTQwIDAgMCAxNjAgMzU5LjUgMCAwLTE2MC00MCAwIDAgMTIweiJdfSxyZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmx1ZXRvb3RoIixpY29uOlszODQsNTEyLFtdLCJmMjkzIiwiTTI2MC42IDE3MS4xbC00Mi45IDQyLjktLjMtODYgNDMuMiA0My4xek0yMTcuNCAzOTAuOWw0My4xLTQzLjEtNDIuOS00Mi45LS4yIDg2ek0zODQgMjU5LjRDMzg0IDQ2NSAzMTIuMSA1MTIgMTk4LjkgNTEyUzAgNDY1IDAgMjU5LjQgODMuNCAwIDE5Ni42IDAgMzg0IDUzLjkgMzg0IDI1OS40em0tMTU4LjUgMGw3OS40LTg4LjYtMTI1LjEtMTM0LjMgMCAxNzYuOS03My44LTczLjgtMjcgMjYuOSA5Mi43IDkzLTkyLjcgOTMgMjYuOSAyNi45IDczLjgtNzMuOCAyLjMgMTcwIDEyNy40LTEyNy41LTgzLjktODguN3oiXX0sYWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmMtanAiLGljb246WzUxMiw1MTIsW10sImY0ZWEiLCJNMjU1LjcgOEMxMTEuNiA4IDggMTI0LjggOCAyNTYgOCAzOTIuNCAxMTkuOCA1MDQgMjU1LjcgNTA0IDM4NS45IDUwNCA1MDQgNDAzLjIgNTA0IDI1NiA1MDQgMTE3LjIgMzk2LjUgOCAyNTUuNyA4em0uNiA0NTAuN2MtMTEyIDAtMjAzLjYtOTIuNS0yMDMuNi0yMDIuNyAwLTIxLjEgMy00MS4yIDktNjAuM2wxMjcgNTYuNS0yNy45IDAgMCAzOC42IDU4LjEgMCA1LjcgMTEuOCAwIDE4LjctNjMuOCAwIDAgMzguNyA2My44IDAgMCA1NiA2MS43IDAgMC01NiA2NC4yIDAgMC0zNS43IDgxIDM2LjFjLTEuNSAyLjItNTcuMSA5OC4zLTE3NS4yIDk4LjN6bTg3LjYtMTM3LjNsLTU3LjYgMCAwLTE4LjcgMi45LTUuNiA1NC43IDI0LjN6bTYuNS01MS40bDAtMTcuOC0zOC42IDAgNjMtMTE2LTY1LjggMC00My40IDk2LTIzLTEwLjItMzkuNi04NS43LTY1LjggMCAyNy4zIDUxLTgxLjktMzYuNWMyNy44LTQ0LjEgODIuNi05OC4xIDE3My43LTk4LjEgMTEyLjggMCAyMDMgOTAgMjAzIDIwMy40IDAgMjEtMi43IDQwLjYtNy45IDU5TDM1MC40IDI3MHoiXX0saWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZGRpdCIsaWNvbjpbNTEyLDUxMixbXSwiZjFhMSIsIk0wIDI1NkMwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTYgMzk3LjQgNTEyIDI1NiA1MTJMMzcuMSA1MTJjLTEzLjcgMC0yMC41LTE2LjUtMTAuOS0yNi4yTDc1IDQzN0MyOC43IDM5MC43IDAgMzI2LjcgMCAyNTZ6TTM0OS42IDE1My42YzIzLjYgMCA0Mi43LTE5LjEgNDIuNy00Mi43cy0xOS4xLTQyLjctNDIuNy00Mi43Yy0yMC42IDAtMzcuOCAxNC42LTQxLjggMzQtMzQuNSAzLjctNjEuNCAzMy02MS40IDY4LjRsMCAuMmMtMzcuNSAxLjYtNzEuOCAxMi4zLTk5IDI5LjEtMTAuMS03LjgtMjIuOC0xMi41LTM2LjUtMTIuNS0zMyAwLTU5LjggMjYuOC01OS44IDU5LjggMCAyNCAxNC4xIDQ0LjYgMzQuNCA1NC4xIDIgNjkuNCA3Ny42IDEyNS4yIDE3MC42IDEyNS4yczE2OC43LTU1LjkgMTcwLjYtMTI1LjNjMjAuMi05LjYgMzQuMS0zMC4yIDM0LjEtNTQgMC0zMy0yNi44LTU5LjgtNTkuOC01OS44LTEzLjcgMC0yNi4zIDQuNi0zNi40IDEyLjQtMjcuNC0xNy02Mi4xLTI3LjctMTAwLTI5LjFsMC0uMmMwLTI1LjQgMTguOS00Ni41IDQzLjQtNDkuOSA0LjQgMTguOCAyMS4zIDMyLjggNDEuNSAzMi44bC4xIC4yek0xNzcuMSAyNDYuOWMxNi43IDAgMjkuNSAxNy42IDI4LjUgMzkuM3MtMTMuNSAyOS42LTMwLjMgMjkuNi0zMS40LTguOC0zMC40LTMwLjUgMTUuNC0zOC4zIDMyLjEtMzguM2wuMS0uMXptMTkwLjEgMzguM2MxIDIxLjctMTMuNyAzMC41LTMwLjQgMzAuNXMtMjkuMy03LjktMzAuMy0yOS42IDExLjgtMzkuMyAyOC41LTM5LjMgMzEuMiAxNi42IDMyLjEgMzguM2wuMSAuMXptLTQ4LjEgNTYuN2MtMTAuMyAyNC42LTM0LjYgNDEuOS02MyA0MS45cy01Mi43LTE3LjMtNjMtNDEuOWMtMS4yLTIuOSAuOC02LjIgMy45LTYuNSAxOC40LTEuOSAzOC4zLTIuOSA1OS4xLTIuOXM0MC43IDEgNTkuMSAyLjljMy4xIC4zIDUuMSAzLjYgMy45IDYuNXoiXX0sc2RyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvbm5lY3RkZXZlbG9wIixpY29uOls1NzYsNTEyLFtdLCJmMjBlIiwiTTU1MC44IDI0MWwtNTAuMS04Ni44YzEuMS0yLjEgMS45LTQuNiAxLjktNy4yIDAtOC02LjctMTQuNy0xNC43LTE1TDQzMi40IDM2LjFjLjUtMS42IDEuMS0zLjIgMS4xLTQuOCAwLTguNi03LTE1LjMtMTUuMy0xNS4zLTQuOCAwLTguOCAyLjEtMTEuOCA1LjZsLTEwNi42IDBjLTIuNy0zLjUtNi43LTUuNi0xMS41LTUuNnMtOC44IDIuMS0xMS41IDUuNmwtMTA2LjEgMGMtMi45LTMuNS03LTUuNi0xMS44LTUuNi04LjMgMC0xNS4zIDYuNy0xNS4zIDE1LjMgMCAxLjYgLjUgMy41IDEuMSA0LjhsLTU2IDk3LjJjLTUuNCAyLjQtOS4xIDcuNS05LjEgMTMuNyAwIC41IC4zIDEuMSAuMyAxLjZMMjYuNiAyNDAuN2MtNy4yIDEuMy0xMi42IDcuNS0xMi42IDE1IDAgNy4yIDUuMSAxMy40IDEyLjEgMTVsNTUuMiA5NS40Yy0uNSAxLjYtLjggMi45LS44IDQuOCAwIDcuMiA1LjEgMTMuNCAxMi4xIDE0LjdsNTEuNyA4OS43Yy0uNSAxLjYtMS4xIDMuNS0xLjEgNS40IDAgOC42IDcgMTUuMyAxNS4zIDE1LjMgNC44IDAgOC44LTIuMSAxMS41LTUuNGwxMDYuOSAwYzIuNyAzLjIgNyA1LjQgMTEuNSA1LjRzOC44LTIuMSAxMS41LTUuNGwxMDcuMSAwYzIuNyAyLjkgNi43IDQuOCAxMSA0LjggOC42IDAgMTUuMy03IDE1LjMtMTUuMyAwLTEuNi0uMy0yLjktLjgtNC4zbDUxLjctOTAuM2M3LTEuMyAxMi4xLTcuNSAxMi4xLTE0LjcgMC0xLjYtLjMtMy4yLS44LTQuOGw1NC45LTk1LjRjNy0xLjMgMTIuMy03LjUgMTIuMy0xNSAwLTcuMi01LjEtMTMuNC0xMS44LTE0Ljd6bS0zOTcgMjA5LjdsLTQzLjctNzUuOCA0My43IDAgMCA3NS44em0wLTgzLjhsLTQzLjcgMGMtLjMtMS4xLS44LTIuMS0xLjMtMy4ybDQ1LTQ3LjQgMCA1MC42em0wLTYyLjRsLTUwLjQgNTMuM2MtMS4zLS41LTIuNy0xLjMtNC0xLjZMNDMuNyAyNTkuOGMuNS0xLjMgLjUtMi43IC41LTRzMC0yLjQtLjMtMy41bDUyLTkwYzIuNy0uMyA1LjQtMS4xIDcuOC0yLjdsNTAuMSA1MiAwIDkyLjl6bTAtMTAyLjNMMTA4IDE1NC44YzEuMy0yLjEgMi4xLTQuOCAyLjEtNy44IDAtLjMtLjMtLjgtLjMtMS4xbDQzLjktMTUuOCAwIDcyLjF6bTAtODAuNmwtNDMuNyAxNS44IDQzLjctNzUuNSAwIDU5Ljd6bTMyNi41IDM5LjFsLjggMS4zLTM1LjQgMTY3LjEtNjMuOC02Ny4yIDk4LTEwMS41IC4zIC4zek0yOTIuMSAzNTUuMWwxMS41IDExLjgtMjIuOCAwIDExLjMtMTEuOHptLS4zLTExLjNsLTgzLjMtODUuNCA3OS42LTg0LjQgODMgODcuNi03OS4zIDgyLjJ6bTUuNCA1LjlsNzkuMy04Mi4yIDY3LjUgNzEuMy01LjkgMjguMS0xMjQgMC0xNi45LTE3LjF6TTQxMC43IDQ0LjRjMS4xIC41IDIuMSAxLjEgMy41IDEuM2w1Ny45IDEwMC43IDAgLjVjMCAyLjkgLjggNS42IDIuMSA3LjhsLTk3LjUgMTAxLjItODMtODcuNiAxMTcuMS0xMjR6bS05LjEtMi4xbC0xMTMuNiAxMjAuMy01Ny4xLTYwLjMgMTY2LjMtNjAgNC4zIDB6bS0xMjMuNSAwYzIuNyAyLjcgNi4yIDQuMyAxMC4yIDQuM3M3LjUtMS42IDEwLjItNC4zbDc1IDAtMTQ4LjQgNTMuNi01MC45LTUzLjYgMTAzLjkgMHpNMTYxLjkgNDcuOWwxLjEtMi4xYy45LS4yIDEuOC0uNSAyLjctLjhsNTEuMiA1My44LTU0LjkgMTkuOCAwLTcwLjd6bTAgNzkuM2w2MC44LTIyIDU5LjcgNjMuMi03OS42IDg0LjEtNDEtNDIuMSAwLTgzLjN6bTAgOTIuN2wzNi40IDM3LjgtMzYuNCAzOC4zIDAtNzYuMXptMCA4Ny45bDQyLjEtNDQuNSA4Mi44IDg2LTE3LjEgMTcuNy0xMDcuNyAwIDAtNTkuMnptNyAxNjIuMWMtMS42LTEuNi0zLjUtMi43LTUuOS0zLjVsLTEuMS0xLjYgMC04OS43IDk5LjkgMC05MS42IDk0LjgtMS4zIDB6bTEyOS45IDBjLTIuNy0yLjQtNi40LTQuMy0xMC40LTQuM3MtNy44IDEuOS0xMC40IDQuM2wtOTYuNCAwIDkxLjYtOTQuOCAzOC4zIDAgOTEuNiA5NC44LTEwNC4yIDB6bTEyMC0xMS44bC00LjMgNy41Yy0xLjMgLjMtMi40IC44LTMuNSAxLjNsLTg5LjItOTEuOSAxMTQuNCAwLTE3LjQgODN6bTEyLjktMjIuMmwxMi45LTYwLjggMjIgMC0zNC44IDYwLjh6bTM0LjgtNjguOGwtMjAuNCAwIDQuNi0yMS4yIDE3LjEgMTguMmMtLjUgLjgtMS4xIDEuOS0xLjMgMi45em02Ni4yLTEwNy40bC01NS40IDk2LjdjLTEuMyAuNS0yLjcgMS4xLTQgMS45bC0yMC42LTIyIDM0LjYtMTYzLjkgNDUuOCA3OS4zYy0uMyAxLjMtLjggMi43LS44IDQuMyAwIDEuMyAuMyAyLjQgLjUgMy43eiJdfSxuZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVzZWFyY2hnYXRlIixpY29uOls0NDgsNTEyLFtdLCJmNGY4IiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTI2Mi4yIDM2Ni40Yy02LjYgMy0zMy4yIDYtNTAtMTQuMi05LjItMTAuNi0yNS4zLTMzLjMtNDIuMi02My42LTguOSAwLTE0LjcgMC0yMS40LS42bDAgNDYuNGMwIDIzLjUgNiAyMS4yIDI1LjggMjMuOWwwIDguMWMtNi45LS4zLTIzLjEtLjgtMzUuNi0uOC0xMy4xIDAtMjYuMSAuNi0zMy42IC44bDAtOC4xYzE1LjUtMi45IDIyLTEuMyAyMi0yMy45bDAtMTA5LjRjMC0yMi42LTYuNC0yMS0yMi0yMy45bDAtOC4xYzI1LjggMSA1My4xLS42IDcwLjktLjYgMzEuNyAwIDU1LjkgMTQuNCA1NS45IDQ1LjYgMCAyMS4xLTE2LjcgNDIuMi0zOS4yIDQ3LjUgMTMuNiAyNC4yIDMwIDQ1LjYgNDIuMiA1OC45IDcuMiA3LjggMTcuMiAxNC43IDI3LjIgMTQuN2wwIDcuM3ptMjIuOS0xMzVjLTIzLjMgMC0zMi4yLTE1LjctMzIuMi0zMi4ybDAtMzIuMmMwLTEyLjIgOC44LTMwLjQgMzQtMzAuNHMzMC40IDE3LjkgMzAuNCAxNy45bC0xMC43IDcuMnMtNS41LTEyLjUtMTkuNy0xMi41Yy03LjkgMC0xOS43IDcuMy0xOS43IDE5LjdsMCAyNi44YzAgMTMuNCA2LjYgMjMuMyAxNy45IDIzLjMgMTQuMSAwIDIxLjUtMTAuOSAyMS41LTI2LjhsLTE3LjkgMCAwLTEwLjcgMzAuNCAwYzAgMjAuNSA0LjcgNDkuOS0zNCA0OS45ek0xNjguNiAyNzYuMWMtOS40IDAtMTMuNi0uMy0yMC0uOGwwLTY5LjdjNi40LS42IDE1LS42IDIyLjUtLjYgMjMuMyAwIDM3LjIgMTIuMiAzNy4yIDM0LjUgMCAyMS45LTE1IDM2LjYtMzkuNyAzNi42eiJdfSxvZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2lnbmFsLW1lc3NlbmdlciIsaWNvbjpbNTEyLDUxMixbXSwiZTY2MyIsIk0yNTYgMGMtMTMuMyAwLTI2LjMgMS0zOS4xIDNsMy43IDIzLjdDMjMyLjEgMjQuOSAyNDQgMjQgMjU2IDI0czIzLjkgLjkgMzUuNCAyLjdMMjk1LjEgM0MyODIuMyAxIDI2OS4zIDAgMjU2IDB6bTYwLjggNy4zbC01LjcgMjMuM2MyMy40IDUuNyA0NS40IDE0LjkgNjUuNCAyNy4xbDEyLjUtMjAuNWMtMjIuMS0xMy40LTQ2LjQtMjMuNi03Mi4yLTI5Ljl6bTc2LjQgNjEuNmMxOS4xIDE0IDM2IDMwLjkgNTAuMSA1MC4xbDE5LjQtMTQuMkM0NDcgODMuNiA0MjguNCA2NSA0MDcuMyA0OS41TDM5My4xIDY4Ljh6bTgxLjcgNTQuMmwtMjAuNSAxMi41YzEyLjIgMjAgMjEuNCA0MiAyNy4xIDY1LjRsMjMuMy01LjdjLTYuMy0yNS44LTE2LjUtNTAuMS0yOS45LTcyLjJ6bTEwLjUgOTcuNWMxLjggMTEuNSAyLjcgMjMuNCAyLjcgMzUuNHMtLjkgMjMuOS0yLjcgMzUuNGwyMy43IDMuN2MxLjktMTIuNyAzLTI1LjggMy0zOS4xcy0xLTI2LjMtMy0zOS4xbC0yMy43IDMuN3ptLTMxIDE1NS45bDIwLjUgMTIuNWMxMy40LTIyLjEgMjMuNi00Ni40IDI5LjktNzIuMmwtMjMuMy01LjdjLTUuNyAyMy40LTE0LjkgNDUuNC0yNy4xIDY1LjR6bTguMiAzMC44bC0xOS40LTE0LjJjLTE0IDE5LjEtMzAuOSAzNi01MC4xIDUwLjFsMTQuMiAxOS40YzIxLjEtMTUuNSAzOS44LTM0LjEgNTUuMi01NS4yem0tODYuMSA0N2MtMjAgMTIuMi00MiAyMS40LTY1LjQgMjcuMWw1LjcgMjMuM2MyNS44LTYuMyA1MC4xLTE2LjUgNzIuMi0yOS45bC0xMi41LTIwLjV6TTI5NS4xIDUwOWwtMy43LTIzLjdDMjc5LjkgNDg3LjEgMjY4IDQ4OCAyNTYgNDg4cy0yMy45LS45LTM1LjQtMi43TDIxNi45IDUwOWMxMi43IDEuOSAyNS44IDMgMzkuMSAzczI2LjMtMSAzOS4xLTN6bS05NC4xLTI3LjZjLTE3LjYtNC4zLTM0LjQtMTAuNi01MC4xLTE4LjZsLTcuOC00LTMyLjggNy43IDUuNSAyMy40IDI0LjMtNS43YzE3LjQgOC45IDM1LjkgMTUuOCA1NS4zIDIwLjVsNS43LTIzLjN6TTk1LjQgNDk0LjZMOTAgNDcxLjMgNDguMyA0ODFjLTEwLjQgMi40LTE5LjctNi45LTE3LjMtMTcuM2w5LjctNDEuNi0yMy40LTUuNS05LjcgNDEuNkMxLjIgNDg2IDI2IDUxMC44IDUzLjggNTA0LjRsNDEuNi05Ljd6bS01MC05Mi45bDcuNy0zMi44LTQtNy44Yy04LTE1LjctMTQuMy0zMi41LTE4LjYtNTAuMUw3LjMgMzE2LjdDMTIgMzM2LjEgMTguOSAzNTQuNyAyNy43IDM3MmwtNS43IDI0LjMgMjMuNCA1LjV6TTMgMjk1LjFsMjMuNy0zLjdDMjQuOSAyNzkuOSAyNCAyNjggMjQgMjU2cy45LTIzLjkgMi43LTM1LjRMMyAyMTYuOUMxIDIyOS43IDAgMjQyLjcgMCAyNTZzMSAyNi4zIDMgMzkuMXptMjcuNi05NC4xYzUuNy0yMy40IDE0LjktNDUuNCAyNy4xLTY1LjRMMzcuMiAxMjMuMWMtMTMuNCAyMi4xLTIzLjYgNDYuNC0yOS45IDcyLjJsMjMuMyA1Ljd6bTE4LjktOTYuMmwxOS40IDE0LjJjMTQtMTkuMSAzMC45LTM2IDUwLjEtNTAuMUwxMDQuNyA0OS41QzgzLjYgNjUgNjUgODMuNiA0OS41IDEwNC43em04Ni4xLTQ3YzIwLTEyLjIgNDItMjEuNCA2NS40LTI3LjFMMTk1LjIgNy4zYy0yNS44IDYuMy01MC4xIDE2LjUtNzIuMiAyOS45bDEyLjUgMjAuNXpNMjU2IDQ2NGMxMTQuOSAwIDIwOC05My4xIDIwOC0yMDhTMzcwLjkgNDggMjU2IDQ4IDQ4IDE0MS4xIDQ4IDI1NmMwIDM2LjQgOS40IDcwLjcgMjUuOCAxMDAuNSAxLjYgMi45IDIuMSA2LjIgMS40IDkuNGwtMjEuNiA5Mi41IDkyLjUtMjEuNmMzLjItLjcgNi41LS4yIDkuNCAxLjQgMjkuOCAxNi41IDY0IDI1LjggMTAwLjUgMjUuOHoiXX0sbGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InhpbmciLGljb246WzM4NCw1MTIsW10sImYxNjgiLCJNMTYyLjcgMjEwYy0xLjggMy4zLTI1LjIgNDQuNC03MC4xIDEyMy41LTQuOSA4LjMtMTAuOCAxMi41LTE3LjcgMTIuNUw5LjggMzQ2Yy03LjcgMC0xMi4xLTcuNS04LjUtMTQuNGw2OS0xMjEuM2MuMiAwIC4yLS4xIDAtLjNMMjYuNCAxMzQuNGMtNC4zLTcuOCAuMy0xNC4xIDguNS0xNC4xbDY1LjEgMGM3LjMgMCAxMy4zIDQuMSAxOCAxMi4yTDE2Mi43IDIxMHpNMzgyLjYgNDYuMWwtMTQ0IDI1MyAwIC4zIDkxLjYgMTY2LjZjMy45IDcuMSAuMiAxNC4xLTguNSAxNC4xbC02NS4yIDBjLTcuNiAwLTEzLjYtNC0xOC0xMi4yTDE0Ni4xIDI5OS40YzMuMy01LjggNTEuNS05MC44IDE0NC44LTI1NS4yIDQuNi04LjEgMTAuNC0xMi4yIDE3LjUtMTIuMmw2NS43IDBjOCAwIDEyLjMgNi43IDguNSAxNC4xeiJdfSxFRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWpzIixpY29uOls0NDgsNTEyLFsianMtc3F1YXJlIl0sImYzYjkiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTE4MC45IDQ0NC45Yy0zMy43IDAtNTMuMi0xNy40LTYzLjItMzguNUwxNTIgMzg1LjdjNi42IDExLjcgMTIuNiAyMS42IDI3LjEgMjEuNiAxMy44IDAgMjIuNi01LjQgMjIuNi0yNi41bDAtMTQzLjEgNDIuMSAwIDAgMTQzLjdjMCA0My42LTI1LjYgNjMuNS02Mi45IDYzLjV6bTg1LjgtNDNMMzAxIDM4Mi4xYzkgMTQuNyAyMC44IDI1LjYgNDEuNSAyNS42IDE3LjQgMCAyOC42LTguNyAyOC42LTIwLjggMC0xNC40LTExLjQtMTkuNS0zMC43LTI4bC0xMC41LTQuNWMtMzAuNC0xMi45LTUwLjUtMjkuMi01MC41LTYzLjUgMC0zMS42IDI0LjEtNTUuNiA2MS42LTU1LjYgMjYuOCAwIDQ2IDkuMyA1OS44IDMzLjdMMzY4IDI5MGMtNy4yLTEyLjktMTUtMTgtMjcuMS0xOC0xMi4zIDAtMjAuMSA3LjgtMjAuMSAxOCAwIDEyLjYgNy44IDE3LjcgMjUuOSAyNS42bDEwLjUgNC41YzM1LjggMTUuMyA1NS45IDMxIDU1LjkgNjYuMiAwIDM3LjgtMjkuOCA1OC42LTY5LjcgNTguNi0zOS4xIDAtNjQuNC0xOC42LTc2LjctNDN6Il19LGNkcj1FRWUsZGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvbnRpY29ucyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI4MCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0xODcgMTcyLjljLTE4LjQgMC0xOSA5LjktMTkgMjcuNGwwIDIzLjNjMCAyLjQtMy41IDQuNC0uNiA0LjRsNjcuNCAwLTExLjEgMzcuMy01NS43IDAgMCAxMTIuOWMwIDUuOC0yIDYuNyAzLjIgNy4zbDQzLjUgNC4xIDAgMjUuMS0xMzAuNyAwIDAtMjUuNyAyMS4zLTJjNS4yLS42IDYuNy0yLjMgNi43LTcuOWwwLTExMS40YzAtMi4zLTIuOS0yLjMtNS44LTIuM2wtMjIuMiAwIDAtMzcuNCAyOCAwIDAtMjFjMC00OS42IDI2LjUtNzAgNzcuMy03MCAzNC4xIDAgNjQuNyA4LjIgNjQuNyA1Mi44bC01MC43IDYuMWMuMy0xOC43LTQuNC0yMy0xNi4zLTIzem03NC4zIDI0MS44bDAtMjUuMSAyMC40LTIuNmM1LjItLjYgNy42LTEuNyA3LjYtNy4zbDAtMTA3LjljMC00LjEtMi45LTYuNy02LjctNy45bC0yNC4yLTYuNCA2LjctMjkuNSA4MC4yIDAgMCAxNTEuN2MwIDUuOC0yLjYgNi40IDIuOSA3LjNsMTUuNyAyLjYgMCAyNS4xLTEwMi42IDB6bTgwLjgtMjU1LjVsOSAzMy4yLTcuMyA3LjMtMzEuMi0xNi42LTMxLjIgMTYuNi03LjMtNy4zIDktMzMuMi0yMS44LTI0LjIgMy41LTkuNiAyNy43IDAgMTUuNS0yOCA5LjMgMCAxNS41IDI4IDI3LjcgMCAzLjUgOS42LTIxLjkgMjQuMnoiXX0sdWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVwcyIsaWNvbjpbMzg0LDUxMixbXSwiZjdlMCIsIk0xMDMuMiAzMDNjLTUuMiAzLjYtMzIuNiAxMy4xLTMyLjYtMTlsMC0xMDQtMzIuNyAwIDAgMTAyLjZjMCA3NC45IDgwLjIgNTEuMSA5Ny45IDM5bDAtMTQxLjYtMzIuNiAwIDAgMTIzek00IDc0LjhMNCAyOTUuN2MwIDEwMy43IDc0LjkgMTM1LjIgMTg3LjcgMTg0LjEgMTEyLjQtNDguOSAxODcuNy04MC4yIDE4Ny43LTE4NC4xbDAtMjIwLjlDMjYzLjEgMTMuMiA5Ny42IDI1LjIgNCA3NC44ek0zNjIuMSAyOTUuN2MwIDg2LjYtNTMuMiAxMTMuNi0xNzAuNCAxNjUuMy0xMTcuNS01MS44LTE3MC41LTc4LjctMTcwLjUtMTY1LjNsMC0xMjYuNGMxMDIuMy05My44IDIzMS42LTEwMCAzNDAuOS04OS44bDAgMjE2LjJ6TTE1Mi41IDE4OC4zbDAgMjEyLjggMzIuNyAwIDAtNjguN2MyNC40IDcuMyA3MS43LTIuNiA3MS43LTc4LjUgMC05Ny40LTgwLjctODAuOS0xMDQuNC02NS42em0zMi43IDExNy4zbDAtMTAwLjNjOC40LTQuMiAzOC40LTEyLjcgMzguNCA0OS4zIDAgNjcuOS0zNi40IDUxLjgtMzguNCA1MXptNzkuMS04Ni40Yy4xIDQ3LjMgNTEuNiA0Mi41IDUyLjIgNzAuNCAuNiAyMy41LTMwLjQgMjMtNTAuOCA0LjlsMCAzMC4xYzM2LjIgMjEuNSA4MS45IDguMSA4My4yLTMzLjUgMS43LTUxLjUtNTQuMS00Ni42LTUzLjQtNzMuMiAuNi0yMC4zIDMwLjYtMjAuNSA0OC41LTIuMmwwLTI4LjRjLTI4LjUtMjItNzkuOS05LjItNzkuNyAzMS45eiJdfSxwZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1hem9uLXBheSIsaWNvbjpbNjQwLDUxMixbXSwiZjQyYyIsIk0xNCAzMjUuM2MyLjMtNC4yIDUuMi00LjkgOS43LTIuNSAxMC40IDUuNiAyMC42IDExLjQgMzEuMiAxNi43IDQwLjYgMjAuMiA4My4zIDM1LjggMTI3LjQgNDYuMyAyMC44IDUgNDEuOSA5IDYzLjIgMTEuOCAzMS41IDQuMiA2My4yIDYgOTUgNS4yIDE3LjQtLjQgMzQuOC0xLjggNTIuMS0zLjggNTYuMi02LjYgMTExLjEtMjEgMTYzLjMtNDIuOCAyLjktMS4yIDUuOS0yIDkuMS0xLjIgNi43IDEuOCA5IDkgNC4xIDEzLjktMyAyLjctNi4yIDUuMi05LjYgNy40LTMwLjcgMjEuMS02NC4yIDM2LjQtOTkuNiA0Ny45LTI0LjUgNy45LTQ5LjYgMTMuOC03NS4xIDE3LjYtMTcuNiAyLjctMzUuNCA0LjMtNTMuMiA0LjgtLjggMC0xLjcgLjItMi41IC4zbC0yMS4xIDBjLS44LS4xLTEuNy0uMi0yLjUtLjMtMy42LS4yLTcuMi0uMy0xMC43LS40LTE2LjktLjgtMzMuNy0yLjUtNTAuNC01LjMtMjcuNC00LjUtNTQuMy0xMS41LTgwLjQtMjAuOS01My43LTE5LjQtMTAzLjEtNDguOS0xNDUuNi04Ny0xLjgtMS42LTMtMy44LTQuNC01LjdsMC0yek0xNzIgNjUuMWwtNC4zIC42Yy0xMy44IDEuNy0yNi44IDYuOS0zOCAxNS4xLTIuNCAxLjctNC42IDMuNS03LjEgNS40LS4yLS40LS4zLS45LS40LTEuNC0uNC0yLjctLjgtNS41LTEuMy04LjItLjctNC42LTMtNi42LTcuNi02LjZsLTExLjUgMGMtNi45IDAtOC4yIDEuMy04LjIgOC4ybDAgMjA5LjNjMCAxIDAgMiAuMSAzIC4yIDMgMiA0LjkgNC45IDUgNyAuMSAxNC4xIC4xIDIxLjEgMCAyLjkgMCA0LjctMiA1LTUgLjEtMSAuMS0yIC4xLTNsMC03Mi40YzEuMSAuOSAxLjcgMS40IDIuMiAxLjkgMTcuOSAxNC45IDM4LjUgMTkuOCA2MSAxNS40IDIwLjQtNCAzNC42LTE2LjUgNDMuOC0zNC45IDctMTMuOSA5LjktMjguNyAxMC4zLTQ0LjEgLjUtMTcuMS0xLjItMzMuOS04LjEtNDkuOC04LjUtMTkuNi0yMi42LTMyLjUtNDMuOS0zNi45LTMuMi0uNy02LjUtMS05LjgtMS41LTIuOC0uMS01LjUtLjEtOC4zLS4xek0xMjQuNiAxMDdjLS4xLS43IC4xLTEuMyAuNC0xLjlzLjgtMS4xIDEuMy0xLjRjMTMuNy05LjUgMjguOC0xNC41IDQ1LjYtMTMuMiAxNC45IDEuMSAyNy4xIDguNCAzMy41IDI1LjkgMy45IDEwLjcgNC45IDIxLjggNC45IDMzIDAgMTAuNC0uOCAyMC42LTQgMzAuNi02LjggMjEuMy0yMi40IDI5LjQtNDIuNiAyOC41LTE0LS42LTI2LjItNi0zNy40LTEzLjktLjYtLjMtMS0uOC0xLjMtMS40cy0uNC0xLjItLjQtMS45Yy4xLTE0LjEgMC0yOC4xIDAtNDIuMnMuMS0yOCAwLTQyLjF6TTMzMC4zIDY1LjFjLTEgLjEtMiAuMy0yLjkgLjQtOS43IC40LTE5LjQgMS44LTI4LjkgNC4xLTYuMSAxLjYtMTIgMy44LTE3LjkgNS44LTMuNiAxLjItNS40IDMuOC01LjMgNy43IC4xIDMuMy0uMSA2LjYgMCA5LjkgLjEgNC44IDIuMSA2LjEgNi44IDQuOSA3LjgtMiAxNS42LTQuMiAyMy41LTUuNyAxMi4zLTIuMyAyNC43LTMuMyAzNy4yLTEuNCA2LjUgMSAxMi42IDIuOSAxNi44IDguNCAzLjcgNC44IDUuMSAxMC41IDUuMyAxNi40IC4zIDguMyAuMiAxNi42IC4zIDI0LjkgMCAuNS0uMSAuOS0uMiAxLjQtLjUtLjEtLjkgMC0xLjMtLjEtMTAuNS0yLjYtMjEuMi00LjItMzItNC45LTExLjMtLjYtMjIuNSAuMS0zMy4zIDMuOS0xMi45IDQuNS0yMy4zIDEyLjMtMjkuNCAyNC45LTQuNyA5LjgtNS40IDIwLjItMy45IDMwLjcgMiAxNCA5IDI0LjggMjEuNCAzMS43IDExLjkgNi42IDI0LjggNy40IDM3LjkgNS40IDE1LjEtMi4zIDI4LjUtOC43IDQwLjMtMTguNCAuNS0uNCAxLS44IDEuNi0xLjEgLjYgMy44IDEuMSA3LjQgMS44IDExIC42IDMuMSAyLjUgNS4xIDUuNCA1LjIgNS40IC4xIDEwLjkgLjEgMTYuMyAwIDEuMyAwIDIuNS0uNSAzLjQtMS40czEuNC0yLjEgMS41LTMuM2MuMS0uOSAuMS0xLjkgLjEtMi44bDAtMTA2YzAtNC4zLS4zLTguNi0uOS0xMi45LTEuOS0xMi45LTcuNC0yMy41LTE5LTMwLjQtNi43LTQtMTQuMS02LTIxLjgtNy4xLTMuNi0uNS03LjItLjgtMTAuOC0xLjMtMy45IC4xLTcuOSAuMS0xMS45IC4xem0zNSAxMjcuN2MwIC42LS4xIDEuMi0uMyAxLjdzLS43IDEtMS4yIDEuM2MtMTEuMiA4LjEtMjMuNSAxMy41LTM3LjQgMTQuOS01LjcgLjYtMTEuNCAuNC0xNi44LTEuOC0zLTEuMS01LjYtMi45LTcuOC01LjJzLTMuNy01LjEtNC42LTguMWMtMi02LjMtMi0xMy4xLS4xLTE5LjQgMi41LTguMyA4LjQtMTMgMTYuNC0xNS42IDgtMi40IDE2LjUtMy4yIDI0LjgtMi4yIDguNCAuNyAxNi42IDIuMyAyNSAzLjQgMS42IC4yIDIuMSAxIDIuMSAyLjYtLjEgNC44IDAgOS41IDAgMTQuM3MtLjIgOS40LS4xIDE0LjF6TTYyNS4yIDMyMi4yYy0xLTUtNC44LTYuOS05LjEtOC4zLTYuOC0yLjEtMTMuOS0zLjUtMjEtMy45LTEzLjEtMS4xLTI2LjMtLjUtMzkuMiAxLjktMTQuMyAyLjctMjcuOSA3LjMtNDAgMTUuNi0xLjQgLjktMi43IDIuMS0zLjcgMy41LS40IC42LS42IDEuMy0uNyAxLjlzMCAxLjQgLjIgMi4xYy40IDEuNSAyLjEgMS45IDMuNiAxLjggLjcgMCAxLjUgMCAyLjItLjEgNy44LS44IDE1LjUtMS43IDIzLjMtMi41IDExLjQtMS4xIDIyLjktMS44IDM0LjMtLjkgNC45IC40IDkuNyAxLjMgMTQuNCAyLjcgNS4xIDEuNCA3LjQgNS4yIDcuNiAxMC40IC40IDgtMS40IDE1LjctMy41IDIzLjMtNC4xIDE1LjQtMTAgMzAuMy0xNS44IDQ1LjEtLjQgMS0uOCAyLTEgMy0uNSAyLjkgMS4yIDQuOCA0LjEgNC4xIDEuOC0uNCAzLjQtMS4zIDQuOC0yLjUgNC41LTQuMiA4LjgtOC43IDEyLjctMTMuNCAxMi44LTE2LjQgMjAuMy0zNS4zIDI0LjctNTUuNiAuOC0zLjYgMS40LTcuMyAyLjEtMTAuOWwwLTE3LjN6TTQ5My4xIDE5OWMtMTIuOS0zNS43LTI1LjgtNzEuNC0zOC43LTEwNy4yLTItNS43LTQuMi0xMS4zLTYuMy0xNi45LTEuMS0yLjktMy4yLTQuOC02LjQtNC44LTcuNi0uMS0xNS4yLS4yLTIyLjktLjEtMi41IDAtMy43IDItMy4yIDQuNSAuNSAyLjEgMS4xIDQuMSAxLjkgNi4xIDE5LjYgNDguNSAzOS4zIDk3IDU5LjEgMTQ1LjUgMS43IDQuMSAyLjEgNy42IC4yIDExLjgtMy4zIDcuMy01LjkgMTUtOS4zIDIyLjMtMyA2LjUtOCAxMS40LTE1LjIgMTMuMy01IDEuMy0xMC4yIDEuNy0xNS40IDEuMS0yLjUtLjItNS0uOC03LjUtMS0zLjQtLjItNS4xIDEuMy01LjIgNC44LS4xIDMuMy0uMSA2LjYgMCA5LjkgLjEgNS41IDIgOCA3LjQgOC45IDUuNiAxLjEgMTEuMiAxLjggMTYuOSAyIDE3LjEgLjQgMzAuNy02LjUgMzkuNS0yMS40IDMuNS01LjkgNi42LTEyIDkuMi0xOC40IDIzLjctNTkuOCA0Ny4yLTExOS43IDcwLjYtMTc5LjYgLjctMS44IDEuMy0zLjYgMS42LTUuNSAuNC0yLjgtLjktNC40LTMuNy00LjQtNi42LS4xLTEzLjMgMC0xOS45IDAtMS43LS4xLTMuNCAuMy00LjcgMS4zcy0yLjQgMi4zLTMgMy45Yy0uNSAxLjQtMS4xIDIuNy0xLjYgNC4xbC0zNC44IDEwMGMtMi41IDcuMi01LjEgMTQuNS03LjcgMjIuMi0uNC0xLjEtLjYtMS43LS45LTIuNHoiXX0sZmRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhbmRvcmEiLGljb246WzM4NCw1MTIsW10sImU3ZGEiLCJNMjAxLjMgMzJMMCAzMiAwIDQ4MCAxMjAuMiA0ODBjMTEuMiAwIDIwLjMtOS4xIDIwLjMtMjAuM2wwLTg2LjEgMzAuMSAwYzE0Ny4xIDAgMjA3LjMtODIuOSAyMDcuMy0xNzkuOSAwLTExOS43LTkwLjktMTYxLjgtMTc2LjUtMTYxLjh6Il19LGhkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuaWQiLGljb246WzQ0OCw1MTIsW10sImYxOWIiLCJNMjcxLjUgNDMybC02OCAzMkM4OC41IDQ1My43IDAgMzkyLjUgMCAzMTguMiAwIDI0Ni43IDgyLjUgMTg3LjIgMTkxLjcgMTczLjlsMCA0M2MtNzEuNSAxMi41LTEyNCA1My0xMjQgMTAxLjMgMCA1MSA1OC41IDkzLjMgMTM1LjcgMTAzbDAtMzQwIDY4LTMzLjIgMCAzODQgLjEgMHpNNDQ4IDI5MWwtMTMxLjMtMjguNSAzNi44LTIwLjdjLTE5LjUtMTEuNS00My41LTIwLTcwLTI0LjhsMC00M2M0Ni4yIDUuNSA4Ny43IDE5LjUgMTIwLjMgMzkuM2wzNS0xOS44IDkuMiA5Ny41eiJdfSxtZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidnNjbyIsaWNvbjpbNTEyLDUxMixbXSwiZTdkZCIsIk0zNTcuNiAyNTZjMC0yNy4xLTEwLjYtNTIuNS0yOS43LTcxLjdzLTQ0LjYtMjkuNy03MS43LTI5LjdsLS4xIDBjLTI3LjEgMC01Mi42IDEwLjYtNzEuNyAyOS43cy0yOS43IDQ0LjYtMjkuNyA3MS43YzAgMjcuMSAxMC42IDUyLjUgMjkuNyA3MS43IDE5LjIgMTkuMiA0NC42IDI5LjcgNzEuNyAyOS43bC4xIDBjMjcuMSAwIDUyLjYtMTAuNiA3MS43LTI5LjcgMTkuMi0xOS4yIDI5LjctNDQuNiAyOS43LTcxLjd6TTE3Ni4zIDQ4Mi4xYzIzIDguMSA0NyAxMi42IDcxLjYgMTMuNGwwLTU5LjFjLTE3LjEtLjctMzMuNS0zLjgtNDktOC45bC0yMi42IDU0LjZ6bTEzNy01NC42Yy0xNS41IDUuMS0zMiA4LjItNDkgOC45bDAgNTkuMWMyNC42LS44IDQ4LjYtNS4zIDcxLjYtMTMuNGwtMjIuNi01NC42ek05Mi41IDQzMS4yYzIwLjIgMTguOSA0My4zIDM0IDY4LjcgNDVsMjIuNS01NC41Yy0xOC4zLTcuOS0zNS4xLTE4LjgtNDkuOC0zMS45TDkyLjUgNDMxLjJ6bTI4NS45LTQxLjRjLTE0LjYgMTMuMi0zMS40IDI0LTQ5LjggMzEuOWwyMi41IDU0LjVjMjUuNC0xMSA0OC40LTI2LjEgNjguNy00NWwtNDEuNC00MS40ek0xNDUuNCAzNzguMmMxMy42IDEyLjEgMjkgMjEuOSA0NS44IDI5IDE4IDcuNiAzNy4xIDEyIDU2LjcgMTIuOWwwLTQ2LjhjLTI2LjQtMS44LTUwLjMtMTIuMy02OS4xLTI4LjZsLTMzLjQgMzMuNHptMTg4LTMzLjRjLTE4LjggMTYuMy00Mi43IDI2LjgtNjkuMSAyOC42bDAgNDYuOGMxOS42LS45IDM4LjctNS4zIDU2LjctMTIuOSAxNi44LTcuMSAzMi4yLTE2LjkgNDUuOC0yOWwtMzMuNC0zMy40ek0zOC41IDM1Ni42YzEwLjcgMjMuMiAyNSA0NC4zIDQyLjUgNjMuMWw0MS4zLTQxLjNjLTEyLjQtMTMuNC0yMi45LTI4LjYtMzAuOS00NS4yTDM4LjUgMzU2LjZ6bTM4Mi40LTIzLjVjLTggMTYuNi0xOC41IDMxLjktMzAuOSA0NS4ybDQxLjMgNDEuM2MxNy41LTE4LjcgMzEuOC0zOS45IDQyLjUtNjMuMWwtNTIuOS0yMy41em0tMzMxLTY5YzEuMSAxOC44IDUuNCAzNy4yIDEyLjggNTQuNSA3LjUgMTcuOCAxOCAzNCAzMS4yIDQ4LjJsMzMuNS0zMy41Yy0xNi40LTE4LjgtMjYuOS00Mi44LTI4LjctNjkuMmwtNDguOCAwem0yODMuNyAwYy0xLjggMjYuNC0xMi4zIDUwLjQtMjguNyA2OS4ybDMzLjUgMzMuNWMxMy4xLTE0LjIgMjMuNi0zMC40IDMxLjItNDguMiA3LjMtMTcuNCAxMS42LTM1LjcgMTIuNy01NC41bC00OC43IDB6bS0zNTcuMSAwYy45IDI2LjcgNi4xIDUyLjcgMTUuNiA3Ny41TDg1IDMxOC4yYy02LjQtMTctMTAuMy0zNS4xLTExLjMtNTRsLTU3LjEgMHptNDIyLjEgMGMtMSAxOC45LTUgMzcuMS0xMS4zIDU0bDUyLjggMjMuNWM5LjUtMjQuOCAxNC43LTUwLjggMTUuNi03Ny41bC01Ny4xIDB6TTMyLjEgMTcwLjRjLTkuNSAyNC44LTE0LjcgNTAuOC0xNS42IDc3LjVsNTcuMSAwYzEtMTguOSA1LTM3LjEgMTEuMy01NEwzMi4xIDE3MC40em0xMDEuNy0yNS4yYy0xMy4xIDE0LjItMjMuNiAzMC40LTMxLjIgNDguMi03LjMgMTcuNC0xMS42IDM1LjctMTIuOCA1NC41bDQ4LjggMGMxLjgtMjYuNCAxMi4zLTUwLjQgMjguNy02OS4ybC0zMy41LTMzLjV6bTIxMS4xIDMzLjVjMTYuNCAxOC44IDI2LjkgNDIuOCAyOC43IDY5LjJsNDguNyAwYy0xLjEtMTguOC01LjQtMzcuMi0xMi43LTU0LjUtNy41LTE3LjgtMTgtMzQtMzEuMi00OC4ybC0zMy41IDMzLjV6bTgyLjQgMTUuMmM2LjQgMTcgMTAuMyAzNS4xIDExLjMgNTRsNTcuMSAwYy0uOS0yNi43LTYuMS01Mi43LTE1LjYtNzcuNWwtNTIuOCAyMy41ek04MSA5Mi4zQzYzLjQgMTExIDQ5LjIgMTMyLjIgMzguNSAxNTUuNGw1Mi45IDIzLjVjOC0xNi42IDE4LjUtMzEuOSAzMC45LTQ1LjJMODEgOTIuM3ptMzA5IDQxLjNjMTIuNCAxMy40IDIyLjkgMjguNiAzMC45IDQ1LjJsNTIuOS0yMy41Yy0xMC43LTIzLjItMjUtNDQuMy00Mi41LTYzLjFMMzkwIDEzMy43ek0yNDggOTEuOGMtMTkuNiAuOS0zOC43IDUuMy01Ni43IDEyLjktMTYuOCA3LjEtMzIuMiAxNi45LTQ1LjggMjlsMzMuNCAzMy40YzE4LjgtMTYuMyA0Mi43LTI2LjggNjkuMS0yOC42bDAtNDYuN3ptMTYuMyA0Ni43YzI2LjQgMS44IDUwLjMgMTIuMyA2OS4xIDI4LjZsMzMuNC0zMy40Yy0xMy42LTEyLjEtMjktMjEuOS00NS44LTI5LTE4LTcuNi0zNy4xLTEyLTU2LjctMTIuOWwwIDQ2Ljd6TTE2MS4yIDM1LjhjLTI1LjQgMTEtNDguNCAyNi4xLTY4LjcgNDVsNDEuNCA0MS40YzE0LjctMTMuMiAzMS40LTI0IDQ5LjgtMzEuOUwxNjEuMiAzNS44ek0zMjguNiA5MC4zYzE4LjMgNy45IDM1LjEgMTguOCA0OS44IDMxLjlsNDEuNC00MS40Yy0yMC4yLTE4LjktNDMuMy0zNC02OC43LTQ1TDMyOC42IDkwLjN6TTI0OCAxNi40Yy0yNC42IC44LTQ4LjYgNS4zLTcxLjYgMTMuNGwyMi42IDU0LjZjMTUuNS01LjEgMzItOC4yIDQ5LTguOWwwLTU5LjF6bTE2LjMgNTkuMWMxNy4xIC43IDMzLjUgMy44IDQ5IDguOWwyMi42LTU0LjZjLTIzLTguMS00Ny0xMi42LTcxLjYtMTMuNGwwIDU5LjF6TTUxMi4yIDI2NC4ybC0uMiAwQzUwNy44IDM5OSAzOTkuMiA1MDcuNyAyNjQuMyA1MTEuOWwwIC4xLTE2LjMgMCAwLS4xQzExMy4xIDUwNy43IDQuNSAzOTkgLjIgMjY0LjFsLS4yIDAgMC0xNi4zIC4yIDBDNC41IDExMyAxMTMuMSA0LjMgMjQ4IC4xbDAtLjEgMTYuMyAwIDAgLjFDMzk5LjIgNC4zIDUwNy44IDExMyA1MTIgMjQ3LjlsLjIgMCAwIDE2LjN6Il19LGdkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnbG9iYWxlYWtzIixpY29uOls0NDgsNTEyLFtdLCJlODVkIiwiTTQxMS4yIDMyLjJjMjAuMiAwIDM2LjggMTYuNiAzNi44IDM2LjlsMCAzNzMuOGMwIDIwLjItMTYuNiAzNi45LTM2LjggMzYuOWwtOTQuNCAwIDI4LTc5LjRjMy4xLTguOC0xLjYtMTguNy0xMC40LTIxLjgtMS42LS41LTIuNi0xLTQuMi0xcy0zLjYgMC01LjIgLjVjLTUuMiAxLTkuOSA1LjItMTEuOSAxMC45bC02LjIgMTYuNiAwLTY3LjVjMC0xMC45LTcuOC0xOS43LTE4LjItMjEuOGwtNy4yIDBjLS41IDAtMSAwLTEuNiAuNS0uNSAwLTEgLjUtMS42IC41LTIuNiAxLTUuMiAyLjYtNy4yIDQuMWwwLTQuMWMwLTUuNy0yLjYtMTAuNC01LjctMTRsLTEtMWMtMS0xLTIuNi0yLjEtNC4yLTIuNmwwLTI2LjVjMC01LjItNC4xLTkuMy05LjMtOS4zbC0zOS45IDBjLTYuNyAwLTExLjQtNy4zLTguMy0xMy41TDI4My4xIDg0LjFjMTQuNS0zMS4xIDQ1LjYtNTEuNCA4MC40LTUxLjlsNDcuNyAwem0tMTY2IDBjMTcuNiAwIDMwLjEgMTYuMSAyOCAzMi4yLTIuNiAzLjYtNC43IDcuOC02LjIgMTAuOUwxODYuNiAyNDEuNWMtOC44IDE4LjcgNC4yIDQwIDI0LjQgNDBsMzAuNiAwIDAgMTYuMWMtNy44IDMuMS0xMyAxMC45LTEzIDE5LjdsMCAzLjZjLTMuNi0zLjYtOC44LTUuNy0xNC41LTUuNy0xMS45IDAtMjEuOCA5LjktMjEuOCAyMS44bDAgMTkuMi0zLjEgMGMtOS4zIDAtMTcuMSA3LjgtMTcuMSAxNy4xbDAgMTA1LjktOTUuNCAwYy00MiAwLTcyLjYtNDAuNS02MS4yLTgxLjUgMS0zLjEgNC4yLTUuMiA3LjMtNC43bDIxLjIgMGMyNC40IDAgNDQuNi0yMC4yIDQ0LjYtNDUuMmwwLTQuMmMwLTI0LjktMTkuNy00NS4yLTQ0LjYtNDUuMi0uNSAwLTEtLjUtMS0xbDguOC0zMi43YzIuMS02LjItMi42LTExLjktOC44LTExLjlsLTMzLjIgMGMtNi43IDAtMTEuNC03LjMtOC4zLTEzLjVMNzYuNyA4NC43YzE2LjEtMzIuMiA0OC4yLTUyLjQgODQtNTIuNGw4NC41IDB6TTEzMy43IDE0NC40Yy0xMC40IDAtMTguNyA4LjMtMTguNyAxOC43IDAgOS45IDguMyAxOC43IDE4LjcgMTguNyAxMC40IDAgMTguNy04LjMgMTguNy0xOC43cy04LjMtMTguNy0xOC43LTE4Ljd6bTIwMi44IDBhMTguNiAxOC42IDAgMSAwIC0uMiAzNy4yIDE4LjYgMTguNiAwIDEgMCAuMi0zNy4yeiJdfSxiZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmVubW8iLGljb246WzY0MCw1MTIsW10sImU4NWEiLCJNNjcuOCAyMDIuN2MyLjQgNSAzLjkgMTEgMy45IDE5LjggMCAxNi4yLTExLjUgMzkuOC0yMC43IDU0LjlsLTkuOS03OS43LTQxIDMuOSAxOC44IDExMiA0Ni45IDBjMjAuNS0yNi45IDQ1LjgtNjUuMyA0NS44LTk0LjggMC05LjMtMS45LTE2LjYtNi4zLTIzLjdsLTM3LjQgNy41em0xMTMtNy4xYy00Mi44IDAtNjMuNSAzNy02My41IDcxLjkgMCAyNi45IDEyLjggNDguNSA0OC40IDQ4LjUgMTQgMCAyOC41LTMgMzcuOC03LjVsNS0zMy42Yy0xMy4yIDYuNy0yMy4zIDkuMy0zMy45IDkuMy05LjcgMC0xNy4xLTUuMi0xNy4xLTE4LjMgMjItLjIgNjAtOS4zIDYwLTM4LjggMC0xOC4zLTEzLjItMzEuNS0zNi43LTMxLjVsMCAwem0tMjIuNSA0OC45YzEuMS0xMi45IDExLTIyIDE4LjYtMjIgNC4zIDAgOCAyLjYgOCA3LjcgMCAxMC44LTE5IDE0LjItMjYuNiAxNC4ybDAgMHptMTUwLjItNDguOWMtMTUuMyAwLTI2LjEgNS44LTM0LjMgMTEuMmwtLjQtOS4zLTM0LjggMC0xOC40IDExNi4xIDQwLjIgMCAxMi43LTgxLjRjMy41LTEuNyA4LjYtNC4xIDEzLjgtNC4xIDMuOSAwIDcuMSAxLjMgNy4xIDYuNSAwIDIuMi0uNyA2LS45IDhsLTExLjIgNzEuMSA0MCAwIDEyLjMtNzcuNWMuNy00LjEgMS4zLTEwLjMgMS4zLTE0LjYgMC0xNS41LTcuMS0yNS45LTI3LjQtMjUuOXptMTgzLjIgMGMtMTQuOSAwLTI1LjcgNC41LTM3LjIgMTIuNy00LjEtNy4zLTEyLjMtMTIuNy0yNC44LTEyLjctMTQuNSAwLTI1LjMgNS44LTMzLjMgMTEuNmwtMS4xLTkuNy0zNC40IDAtMTguNCAxMTYuMSA0MC4yIDAgMTIuOC04MS40YzMuNS0xLjcgOC42LTQuMSAxMy44LTQuMSAzLjkgMCA3LjEgMS4zIDcuMSA3LjEgMCAxLjUtLjQgMy45LS42IDUuOGwtMTEuNCA3Mi42IDQwIDAgMTIuNy04MS40YzMuNy0xLjkgOC42LTQuMSAxMy42LTQuMSAzLjkgMCA3LjEgMS4zIDcuMSA3LjEgMCAxLjUtLjQgMy45LS43IDUuOGwtMTEuNCA3Mi42IDQwIDAgMTIuMy03Ny41Yy43LTQuMSAxLjMtMTAuMyAxLjMtMTQuNiAwLTE1LjUtNy4xLTI1LjktMjcuNy0yNS45bDAgMHptMTAyLjIgMGMtNDQuNyAwLTY0LjIgMzQuMy02NC4yIDcwLjkgMCAyNy44IDExLjIgNTAgNDUuMSA1MCA0NS44IDAgNjUtMzcuNSA2NS03My43IDAtMjcuNC0xMi4zLTQ3LjItNDYtNDcuMnptLTEzLjQgOTBjLTcuMSAwLTEwLjEtNi43LTEwLjEtMTcuNSAwLTE0LjIgMy4yLTQyIDE5LTQyIDcuMSAwIDkuNSA2LjUgOS41IDE1LjkgMCAxNC4yLTMuNSA0My41LTE4LjQgNDMuNXoiXX0seGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVidW50dSIsaWNvbjpbNTc2LDUxMixbXSwiZjdkZiIsIk00NjkuMiA3NWMwLTIwLjEtOC0zOS4zLTIyLjItNTMuNXMtMzMuNC0yMi4yLTUzLjUtMjIuMi0zOS4zIDgtNTMuNSAyMi4yLTIyLjIgMzMuNC0yMi4yIDUzLjVjMCAyMC4xIDggMzkuMyAyMi4xIDUzLjVzMzMuNCAyMi4xIDUzLjUgMjIuMSAzOS4zLTggNTMuNS0yMi4xIDIyLjEtMzMuNCAyMi4xLTUzLjVsLjEgMHptLTMxNSAxNjUuN2E3NS42IDc1LjYgMCAxIDAgLTE1MS4yIDAgNzUuNiA3NS42IDAgMSAwIDE1MS4yIDB6TTU3IDM0NmMxOC42IDQ2LjkgNTEgODcgOTMgMTE1LjFzOTEuNSA0Mi42IDE0MiA0MS43Yy0xNC43LTE4LjYtMjIuOS00MS41LTIzLjItNjUuMi02LjgtLjktMTMuMy0yLjEtMTkuNS0zLjQtMjYuOC01LjctNTEuOS0xNy4zLTczLjYtMzRzLTM5LjMtMzguMS01MS43LTYyLjVjLTIwLjkgOS45LTQ0LjUgMTIuOC02Ny4xIDguMmwuMSAuMXptMzk1LjEgODkuOGE3NS42IDc1LjYgMCAxIDAgLTE1MS4yIDAgNzUuNiA3NS42IDAgMSAwIDE1MS4yIDB6TTQ0NCAzNTEuNmMxOC41IDE0LjggMzEuNiAzNS4yIDM3LjIgNTguMiAzMy4zLTQxLjMgNTIuNi05Mi4yIDU0LjgtMTQ1LjJzLTEyLjUtMTA1LjQtNDIuMi0xNDkuNGMtOC42IDIxLjUtMjQgMzkuNi00My44IDUxLjYgMTUuNCAyOC42IDIyLjkgNjAuOCAyMS45IDkzLjJzLTEwLjcgNjQtMjggOTEuNmwuMSAwek0xMDEuMSAxMzUuNGMxMi40IDIuNyAyNC4zIDcuNSAzNS4xIDE0LjMgMTYuNi0yNC4yIDM4LjktNDQuMSA2NC44LTU4UzI1NS44IDcwLjQgMjg1LjIgNzBjLjItNS45IC45LTExLjkgMi0xNy43IDMuNi0xNi43IDExLjEtMzIuMyAyMS44LTQ1LjUtNDcuNy0zLjgtOTUuNCA2LTEzNy42IDI4LjVTOTQuMyA5MS43IDcwLjggMTMzLjRjMi43LS4yIDUuMy0uMyA4LS4zIDcuNSAwIDE1IC44IDIyLjQgMi4zbC0uMSAweiJdfSx2ZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmlhY29pbiIsaWNvbjpbMzg0LDUxMixbXSwiZjIzNyIsIk0zODQgMzJsLTY0IDAtODAuNyAxOTItOTQuNSAwLTgwLjgtMTkyLTY0IDAgNDggMTEyLTQ4IDAgMCA0OCA2OC41IDAgMTMuOCAzMi04Mi4zIDAgMCA0OCAxMDIuOCAwIDg5LjIgMjA4IDg5LjItMjA4IDEwMi44IDAgMC00OC04Mi4zIDAgMTMuOC0zMiA2OC41IDAgMC00OC00OCAwIDQ4LTExMnpNMTkyIDMzNmwtMjctNjQgNTQgMC0yNyA2NHoiXX0seWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InpoaWh1IixpY29uOls2NDAsNTEyLFtdLCJmNjNmIiwiTTE3MC41IDE0OC4xbDAgMjE3LjUgMjMuNCAwIDcuNyAyNi40IDQyLTI2LjQgNDkuNSAwIDAtMjE3LjUtMTIyLjcgMHptOTcuOCAxOTMuOWwtMjcuOSAwLTI3LjkgMTcuNS01LjEtMTcuNS0xMS45IDAgMC0xNzAuMyA3Mi44IDAgMCAxNzAuM3pNMTQ5LjggMjQ3LjdsLTUyLjMgMGMxLjctMjcuMSAyLjItNTEuNiAyLjItNzMuNWw1MS4yIDBzMi0yMi42LTguNi0yMi4zbC04OC41IDBjMy41LTEzLjEgNy45LTI2LjcgMTMuMS00MC43IDAgMC0yNC4xIDAtMzIuMyAyMS42LTMuNCA4LjktMTMuMiA0My4xLTMwLjcgNzguMSA1LjktLjYgMjUuNC0xLjIgMzYuOC0yMi4yIDIuMS01LjkgMi41LTYuNyA1LjEtMTQuNWwyOC45IDBjMCAxMC41LTEuMiA2Ni45LTEuNyA3My40bC01Mi4zIDBjLTExLjcgMC0xNS42IDIzLjYtMTUuNiAyMy42bDY1LjYgMGMtNC40IDQ5LjktMjggOTEuOS03MC44IDEyNS4xIDIwLjUgNS45IDQwLjktLjkgNTEtOS45IDAgMCAyMy0yMC45IDM1LjYtNjkuM2w1NCA2NC45czcuOS0yNi45LTEuMi00MGMtNy42LTguOS0yOC4xLTMzLjEtMzYuOC00MS44TDg3LjkgMzEyYzQuNC0xNCA3LTI3LjYgNy45LTQwLjdsNjEuNiAwcy0uMS0yMy42LTcuNi0yMy42bDAgMHptNDEyLTEuNmMyMC44LTI1LjYgNDUtNTguNiA0NS01OC42cy0xOC42LTE0LjgtMjcuNC00LjFjLTYgOC4yLTM2LjggNDguMi0zNi44IDQ4LjJsMTkuMiAxNC40ek00MTEuOCAxODdjLTktOC4yLTI1LjkgMi4xLTI1LjkgMi4xczM5LjUgNTUgNDEuMSA1Ny40bDE5LjUtMTMuN3MtMjUuNy0zNy42LTM0LjctNDUuOWwwIDAgMCAwek02NDAgMjU4LjRjLTE5LjggMC0xMzAuOSAuOS0xMzEuMSAuOWwwLTEwMWM0LjggMCAxMi40LS40IDIyLjgtMS4yIDQwLjktMi40IDcwLjEtNCA4Ny44LTQuOCAwIDAgMTIuMi0yNy4yLS42LTMzLjQtMy4xLTEuMi0yMy4yIDQuNi0yMy4yIDQuNnMtMTY1LjIgMTYuNS0yMzIuNCAxOGMxLjYgOC44IDcuNiAxNy4xIDE1LjggMTkuNiAxMy4zIDMuNSAyMi43IDEuNyA0OS4yIC45IDI0LjgtMS42IDQzLjctMi40IDU2LjUtMi40bDAgOTkuOC0xMzMuNSAwczIuOCAyMi4zIDI1LjUgMjIuOWwxMDcuOSAwIDAgNzAuOWMwIDE0LTExLjIgMjItMjQuNSAyMS4xLTE0LjEgLjEtMjYuMS0xLjEtNDEuNy0xLjggMiA0IDYuMyAxNC40IDE5LjMgMjEuOCA5LjkgNC44IDE2LjIgNi42IDI2IDYuNiAyOS42IDAgNDUuNy0xNy4zIDQ0LjktNDUuM2wwLTczLjMgMTIyLjQgMGM5LjcgMCA4LjctMjMuOCA4LjctMjMuOGwwIDB6Il19LHdkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YW5kZXgiLGljb246WzI1Niw1MTIsW10sImY0MTMiLCJNMTUzLjEgMzE1LjhMNjUuNyA1MTIgMiA1MTIgOTggMzAyLjJDNTIuOSAyNzkuMyAyMi44IDIzNy44IDIyLjggMTYxLjEgMjIuNyA1My43IDkwLjggMCAxNzEuNyAwbDgyLjMgMCAwIDUxMi01NS4xIDAgMC0xOTYuMi00NS44IDB6TTE5OC45IDQ2LjVsLTI5LjQgMGMtNDQuNCAwLTg3LjQgMjkuNC04Ny40IDExNC42IDAgODIuMyAzOS40IDEwOC44IDg3LjQgMTA4LjhsMjkuNCAwIDAtMjIzLjR6Il19LGtkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXhpdiIsaWNvbjpbNDQ4LDUxMixbXSwiZTY0MCIsIk05NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2TDk2IDMyem03Ny43IDIxNy4zYTYwLjEgNjAuMSAwIDEgMCAxMjAuMyAwIDYwLjEgNjAuMSAwIDEgMCAtMTIwLjMgMHpNMTE5LjEgMzg3LjhjLS4zLS44LS41LTEuNy0uNS0yLjZsMC0yNDQuM2MwLTEuOCAuNy0zLjYgMi00LjlzMy0yIDQuOS0ybDE2LjkgMGMxLjIgMCAyLjMgLjMgMy4zIC44czEuOSAxLjMgMi41IDIuM2wxNCAyMS44YzE5LjctMTUuNiA0NC41LTI1IDcxLjYtMjUgNjMuNiAwIDExNS4yIDUxLjYgMTE1LjIgMTE1LjJTMjk3LjUgMzY0LjUgMjMzLjggMzY0LjVjLTIyIDAtNDIuNi02LjItNjAuMS0xNi45bDAgMzcuNmMwIC45LS4yIDEuOC0uNSAyLjZzLS45IDEuNi0xLjUgMi4yLTEuNCAxLjEtMi4yIDEuNS0xLjcgLjUtMi42IC41bC00MS4zIDBjLS45IDAtMS44LS4yLTIuNi0uNXMtMS42LS45LTIuMi0xLjUtMS4xLTEuNC0xLjUtMi4yeiJdfSxTZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbmFpIixpY29uOls1MTIsNTEyLFtdLCJlN2NmIiwiTTE5Ni40IDE4NS44bDAtNDguNmMwLTQuMSAxLjUtNy4yIDUuMS05LjJsOTcuOC01Ni4zYzEzLjMtNy43IDI5LjItMTEuMyA0NS42LTExLjMgNjEuNCAwIDEwMC40IDQ3LjYgMTAwLjQgOTguMyAwIDMuNiAwIDcuNy0uNSAxMS44TDM0My4zIDExMS4xYy02LjEtMy42LTEyLjMtMy42LTE4LjQgMEwxOTYuNCAxODUuOHpNNDI0LjcgMzc1LjJsMC0xMTYuMmMwLTcuMi0zLjEtMTIuMy05LjItMTUuOUwyODcgMTY4LjQgMzI5IDE0NC4zYzMuNi0yIDYuNy0yIDEwLjIgMEw0MzcgMjAwLjdjMjguMiAxNi40IDQ3LjEgNTEuMiA0Ny4xIDg1IDAgMzguOS0yMyA3NC44LTU5LjQgODkuNmwwIDB6TTE2Ni4yIDI3Mi44bC00Mi0yNC42Yy0zLjYtMi01LjEtNS4xLTUuMS05LjJsMC0xMTIuNmMwLTU0LjggNDItOTYuMyA5OC44LTk2LjMgMjEuNSAwIDQxLjUgNy4yIDU4LjQgMjBMMTc1LjQgMTA4LjVjLTYuMSAzLjYtOS4yIDguNy05LjIgMTUuOWwwIDE0OC41IDAgMHptOTAuNCA1Mi4ybC02MC4yLTMzLjggMC03MS43IDYwLjItMzMuOCA2MC4yIDMzLjggMCA3MS43LTYwLjIgMzMuOHptMzguNyAxNTUuN2MtMjEuNSAwLTQxLjUtNy4yLTU4LjQtMjBsMTAwLjktNTguNGM2LjEtMy42IDkuMi04LjcgOS4yLTE1LjlsMC0xNDguNSA0Mi41IDI0LjZjMy42IDIgNS4xIDUuMSA1LjEgOS4ybDAgMTEyLjZjMCA1NC44LTQyLjUgOTYuMy05OS4zIDk2LjNsMCAwek0xNzMuOCAzNjYuNUw3Ni4xIDMxMC4yYy0yOC4yLTE2LjQtNDcuMS01MS4yLTQ3LjEtODUgMC0zOS40IDIzLjYtNzQuOCA1OS45LTg5LjZsMCAxMTYuN2MwIDcuMiAzLjEgMTIuMyA5LjIgMTUuOWwxMjggNzQuMi00MiAyNC4xYy0zLjYgMi02LjcgMi0xMC4yIDB6bS01LjYgODRjLTU3LjkgMC0xMDAuNC00My41LTEwMC40LTk3LjMgMC00LjEgLjUtOC4yIDEtMTIuM2wxMDAuOSA1OC40YzYuMSAzLjYgMTIuMyAzLjYgMTguNCAwbDEyOC41LTc0LjIgMCA0OC42YzAgNC4xLTEuNSA3LjItNS4xIDkuMmwtOTcuOCA1Ni4zYy0xMy4zIDcuNy0yOS4yIDExLjMtNDUuNiAxMS4zbDAgMHptMTI3IDYwLjljNjIgMCAxMTMuNy00NCAxMjUuNC0xMDIuNCA1Ny4zLTE0LjkgOTQuMi02OC42IDk0LjItMTIzLjQgMC0zNS44LTE1LjQtNzAuNy00My05NS43IDIuNi0xMC44IDQuMS0yMS41IDQuMS0zMi4zIDAtNzMuMi01OS40LTEyOC0xMjgtMTI4LTEzLjggMC0yNy4xIDItNDAuNCA2LjctMjMtMjIuNS01NC44LTM2LjktODkuNi0zNi45LTYyIDAtMTEzLjcgNDQtMTI1LjQgMTAyLjQtNTcuMyAxNC44LTk0LjIgNjguNi05NC4yIDEyMy40IDAgMzUuOCAxNS40IDcwLjcgNDMgOTUuNy0yLjYgMTAuOC00LjEgMjEuNS00LjEgMzIuMyAwIDczLjIgNTkuNCAxMjggMTI4IDEyOCAxMy44IDAgMjcuMS0yIDQwLjQtNi43IDIzIDIyLjUgNTQuOCAzNi45IDg5LjYgMzYuOXoiXX0sTWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpdGgiLGljb246WzQ0OCw1MTIsW10sImY1MTIiLCJNMCAzMmw2OS43IDExOC44LTU4LjktMTEuNSA2OS44IDkxYy0zIDE3LTMgMzQuNCAwIDUxLjRsLTY5LjggOTEgNTguOS0xMS41LTY5LjcgMTE4LjggMTE4LjgtNjkuNy0xMS41IDU4LjkgOTEtNjkuOGMxNyAzIDM0LjUgMyA1MS41IDBsOTEgNjkuOC0xMS41LTU4LjkgMTE4LjcgNjkuNy02OS43LTExOC44IDU4LjkgMTEuNS02OS44LTkxYzMtMTcgMy0zNC40IDAtNTEuNGw2OS44LTkxLTU4LjkgMTEuNSA2OS43LTExOC44LTExOC43IDY5LjcgMTEuNS01OC45LTkxLjEgNjkuOWMtOC41LTEuNS0xNy4xLTIuMy0yNS43LTIuM3MtMTcuMiAuOC0yNS43IDIuM0wxMDcuMiA0Mi44IDExOC44IDEwMS43IDAgMzJ6TTIyNCAzODAuMmExMjQuMiAxMjQuMiAwIDEgMSAwLTI0OC40IDEyNC4yIDEyNC4yIDAgMSAxIDAgMjQ4LjR6bTAtMjExLjhhODcuNiA4Ny42IDAgMSAwIDAgMTc1LjEgODcuNiA4Ny42IDAgMSAwIDAtMTc1LjF6Il19LENkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqdWxpYSIsaWNvbjpbNjQwLDUxMixbXSwiZTg1MiIsIk0xMjQgNDA2LjVjMCAxNi4xLTEuOCAyOS4xLTUuNCAzOXMtOC44IDE3LjYtMTUuNSAyMy4xLTE0LjcgOS4xLTI0LjEgMTEtMTkuOCAyLjgtMzEuMiAyLjhjLTE1LjUgMC0yNy4zLTIuNC0zNS41LTcuM1MwIDQ2NC41IDAgNDU3LjdjMC01LjYgMi4zLTEwLjQgNi45LTE0LjNzMTAuOC01LjggMTguNS01LjhjNS44IDAgMTAuNCAxLjYgMTMuOSA0LjdzNi4zIDYuMiA4LjYgOS4zYzIuNiAzLjQgNC44IDUuNiA2LjUgNi44czMuNCAxLjcgNC44IDEuN2MzLjEgMCA1LjQtMS44IDctNS40czIuNC0xMC43IDIuNC0yMS4ybDAtMTk4LjcgNTUuNC0xNS4yIDAgMTg2Ljl6bTc4LjktMTgxLjZsMCAxMjcuOWMwIDMuNiAuNyA2LjkgMi4xIDEwczMuMyA1LjggNS43IDguMSA1LjIgNC4xIDguNSA1LjQgNi43IDIuMSAxMC40IDIuMWM0LjIgMCA4LjktMi4zIDE0LjctNi40IDkuMi02LjQgMTQuNy0xMC45IDE0LjctMTYuMWwwLTEzMSA1NS4xIDAgMCAxODEuNi01NS4xIDAgMC0xNi45Yy03LjMgNi4xLTE1IDExLTIzLjIgMTQuN3MtMTYuMiA1LjYtMjMuOSA1LjZjLTkgMC0xNy40LTEuNS0yNS4xLTQuNXMtMTQuNS03LTIwLjMtMTIuMi0xMC40LTExLjItMTMuNy0xOC4xYy0zLjMtNi45LTUtMTQuMy01LTIyLjJsMC0xMjcuOSA1NS4xIDB6TTM5MS40IDQwNi41bC01NC45IDAgMC0yNTQuNiA1NC45LTE1LjIgMCAyNjkuOHptMjIuOS0xNzEuN2w1NS4xLTE1LjIgMCAxODYuOS01NS4xIDAgMC0xNzEuN3ptMTcwLjMgNzcuOWMtNS4zIDIuMy0xMC43IDQuOS0xNi4xIDcuOXMtMTAuMyA2LjItMTQuNyA5LjgtOCA3LjMtMTAuOCAxMS40LTQuMSA4LjItNC4xIDEyLjZjMCAzLjQgLjQgNi42IDEuMyA5LjhzMi4xIDUuOCAzLjggOC4xIDMuNCA0LjEgNS4zIDUuNCA0IDIuMSA2LjMgMi4xYzQuNSAwIDkuMS0xLjQgMTMuNy00LjFzOS43LTYuMiAxNS40LTEwLjRsMC01Mi41ek02NDAgNDA2LjVsLTU1LjQgMCAwLTE0LjVjLTMuMSAyLjYtNiA1LTguOSA3LjFzLTYuMiA0LjEtOS44IDUuNy03LjcgMi45LTEyLjIgMy44Yy00LjUgLjktOS44IDEuMy0xNS45IDEuMy04LjQgMC0xNS45LTEuMi0yMi42LTMuNi02LjctMi40LTEyLjQtNS43LTE3LTkuOXMtOC4zLTkuMS0xMC44LTE0LjljLTIuNS01LjctMy44LTEyLTMuOC0xOC43IDAtNi45IDEuMy0xMy4yIDQtMTguOSAyLjctNS42IDYuMy0xMC43IDEwLjktMTUuMiA0LjYtNC41IDkuOS04LjUgMTYuMS0xMi4xczEyLjctNi44IDE5LjctOS44IDE0LjMtNS43IDIxLjktOC4yIDE1LjEtNC45IDIyLjUtNy4xbDYtMS41IDAtMTcuOWMwLTExLjYtMi4yLTE5LjgtNi42LTI0LjdzLTEwLjQtNy4zLTE3LjgtNy4zYy04LjcgMC0xNC44IDIuMS0xOC4xIDYuM3MtNS4xIDkuMy01LjEgMTUuMmMwIDMuNC0uNCA2LjctMS4xIDkuOS0uNyAzLjItMiA2LTMuNyA4LjVzLTQuMyA0LjQtNy42IDUuOGMtMy4zIDEuNS03LjUgMi4yLTEyLjUgMi4yLTcuNyAwLTE0LTIuMi0xOC45LTYuNi00LjgtNC40LTcuMy0xMC03LjMtMTYuOCAwLTYuMyAyLjEtMTIuMSA2LjQtMTcuNSA0LjMtNS40IDEwLTEwIDE3LjMtMTMuOSA3LjMtMy45IDE1LjYtNi45IDI1LjEtOS4yczE5LjYtMy40IDMwLjItMy40YzEzLjEgMCAyNC4zIDEuMiAzMy43IDMuNXMxNy4yIDUuNyAyMy4zIDEwIDEwLjYgOS42IDEzLjUgMTUuNyA0LjQgMTMgNC40IDIwLjZsMCAxMzYuMXpNNjAgMTcyLjlhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHpNNDUyLjIgOTVhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHptNDUgNzcuOWEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAwem0tODkuOSAwYTM3LjQgMzcuNCAwIDEgMSA3NC45IDAgMzcuNCAzNy40IDAgMSAxIC03NC45IDB6Il19LHpkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuZmMtZGlyZWN0aW9uYWwiLGljb246WzUxMiw1MTIsW10sImU1MzAiLCJNMjExLjggNDg4LjZjMS42IDIuNSAyLjEgNS42IDEuNCA4LjUtLjYgMi45LTIuNCA1LjUtNC45IDcuMS0yLjYgMS42LTUuNiAyLjEtOC42IDEuNS02MS40LTEzLjktMTE1LjYtNDkuOS0xNTIuMi0xMDEuMlMtNS40IDI5MC4zIDEuNiAyMjcuN2M3LTYyLjcgMzYuOC0xMjAuNSA4My43LTE2Mi41IDQ2LjktNDIgMTA3LjctNjUuMiAxNzAuNy02NS4yIDEuNSAwIDIuMSAuMyA0LjMgLjkgMS40IC42IDEuOCAxLjQgMy43IDIuNSAxLjEgMS4xIDEuOSAyLjMgMi41IDMuNyAuNSAxLjQgLjggMi44IC44IDQuM2wwIDEwMSAyNC41LTI1LjljMS0xLjEgMi4yLTIgMy42LTIuNiAxLjMtLjYgMi44LS45IDQuMy0xIDEuNS0uMSAyLjkgLjIgNC4zIC43czIuNyAxLjMgMy44IDIuNGMxIDEgMS45IDIuMiAyLjUgMy42IC42IDEuMyAxIDIuOCAxIDQuM3MtLjIgMy0uNyA0LjNjLS42IDEuNC0xLjQgMi42LTIuNCAzLjdsLTQ0IDQ2LjZjLTEuMSAxLjEtMi4zIDItMy43IDIuNi0xLjUgLjYtMyAuOS01LjQgLjktLjYgMC0yLjItLjMtMy42LS45cy0yLjctMS41LTMuNy0yLjZsLTQ0LjEtNDYuNmMtMi0yLjItMy4xLTUuMS0zLTguMSAwLTMgMS4zLTYuNyAzLjUtNy45IDIuMi0yLjEgNS4xLTMuMiA4LjEtMy4xIDMgLjEgNS44IDEuMyA3LjkgMy41bDI0LjUgMjYgMC04OS41Yy01Ni40IDIuOC0xMDkuOCAyNS44LTE1MC41IDY1LTQwLjYgMzkuMS02NS43IDkxLjctNzAuNiAxNDcuOVMzNC40IDM0OC4xIDY3LjcgMzkzLjdjMzIuNCA0NS41IDgyIDc3LjUgMTM3IDg5LjkgMi45IC43IDUuNSAyLjUgNy4xIDV6TTE3MS40IDEyNi4xYy0uOCAxLjMtMS45IDIuNC0zLjEgMy4yLTIwLjUgMTMuOS0zNy4yIDMyLjYtNDguOCA1NC41cy0xNy43IDQ2LjMtMTcuNyA3MS4xIDYuMSA0OS4yIDE3LjcgNzAuMmMxMS42IDIyLjggMjguMyA0MS41IDQ4LjggNTUuNCAyLjUgMS43IDQuMiA0LjMgNC43IDcuMyAuNiAyLjktLjkgNi0xLjcgOC40LTEuNyAyLjUtNS4yIDQuMi03LjMgMy45LTIuOSAxLjQtNiAuOC04LjQtLjktMjMuNi0xNi00Mi44LTM3LjUtNTYuMS02Mi43LTEzLjMtMjUuMS0yMC4zLTUzLjEtMjAuMy04MS42IDAtMjguNCA3LTU2LjUgMjAuMy04MS42IDEzLjMtMjUuMiAzMi41LTQ2LjcgNTYuMS02Mi43IDEuMi0uOCAyLjYtMS40IDQtMS44IDEuNS0uMyAzLS4zIDQuNSAwIDEuNCAuMiAyLjggLjggNC4xIDEuNnMyLjMgMS45IDMuMiAzLjFjLjggMS4yIDEuNCAyLjYgMS43IDQuMXMuMyAzIDAgNC40Yy0uMyAxLjUtLjggMi45LTEuNyA0LjF6TTM0MC45IDM4My41Yy44LTEuMiAxLjktMi4zIDIuMi0zLjFsMC0uMWMyMS4zLTE0IDM4LTMyLjcgNDkuNi01NC42IDExLjUtMjEuOCAxNy41LTQ2LjIgMTcuNS03MC45cy02LTQ5LjEtMTcuNS03MWMtMTEuNi0yMi43LTI4LjMtNDAuNS00OS42LTU0LjUtLjMtLjgtMS40LTEuOS0yLjItMy4xLS44LTEuMy0xLjQtMi43LTEuNi00LjEtMS4yLTEuNS0uMy0zIDAtNC40IC4zLTEuNSAuOS0yLjkgMS43LTQuMSAuOS0xLjIgMS4xLTIuMyAzLjItMy4xIDEuMi0uOCAyLjYtMS4zIDQuMS0xLjZzMi45LS4zIDQuNCAwIDIuOCAuOSA0LjEgMS44YzIzLjQgMTYgNDIuNyAzNy41IDU1LjkgNjIuNiAxMy4zIDI1LjEgMTkuNCA1My4xIDE5LjQgODEuNSAwIDI4LjUtNi4xIDU2LjUtMTkuNCA4MS42LTEzLjIgMjUuMS0zMi41IDQ2LjYtNTUuOSA2Mi42LTEuMyAuOS0yLjYgMS41LTQuMSAxLjhzLTIuOSAuMy00LjQgMC0yLjktMS43LTQuMS0xLjZjLTIuMS0uOC0yLjMtMS45LTMuMi0zLjEtLjgtMS4yLTEuNC0yLjYtMS43LTQuMS0uMy0xLjQtMS4yLTIuOSAwLTQuNCAuMi0xLjQgLjgtMi44IDEuNi00LjF6TTMxMi4zIDYuM2M1Ni4yIDEyLjcgMTA2LjQgNDQgMTQyLjcgODguNyAzMC40IDM3LjYgNDkuNiA4MyA1NS4zIDEzMSA1LjYgNDgtMi40IDk2LjctMjMuMiAxNDAuMy0yMC45IDQzLjYtNTMuNiA4MC41LTk0LjUgMTA2LjMtNDAuOSAyNS43LTg4LjIgMzkuNC0xMzYuNiAzOS40LTEuNSAwLTIuOS0uMy00LjMtLjktMS40LS41LTIuNi0xLjQtMy43LTIuNC0xLjktMS4xLTEuOS0yLjMtMi40LTMuNy0uNi0xLjQtLjktMi44LS45LTQuM2wwLTk5LjItMjQuNSAyNmMtMi4xIDIuMi00LjkgMi42LTcuOSAzLjYtMyAuMS01LjktMS4xLTguMS00LTIuMi0xLjItMy41LTQtMy41LTctLjEtMyAxLTUuOSAzLTguMWw0NC4xLTQ2LjZjMS4zLTIuMiA1LjEtMy40IDcuMy0zLjQgNCAwIDYuOSAxLjIgOS4xIDMuNGw0NCA0Ni42YzIuMSAyLjIgMy4yIDUuMSAzLjEgOC4xcy0xLjQgNS44LTMuNSA3Yy0yLjIgMi45LTUuMSA0LjEtOC4xIDQtMy0xLTUuOS0xLjQtNy45LTMuNmwtMjQuNS0yNS45IDAgODcuNWM1Ni40LTIuOCAxMDkuOC0yNS44IDE1MC41LTY1IDQwLjctNDAgNjUuOC05MS43IDcwLjctMTQ3LjkgNC44LTU3LjEtMTAuOC0xMTIuMy00NC4xLTE1Ny45LTMzLjMtNDUuNi04Mi03Ny41LTEzNy04OS45LTEuNS0uMy0yLjgtLjktNC4xLTEuOC0xLjItLjktMi4yLTEuOS0zLTMuMi0uOC0xLjItMi4yLTIuNi0xLjYtNC4xLS4yLTEuNS0uMi0zIC4xLTQuNCAuNC0xLjQgMS0yLjggMS44LTQgLjktMS4yIDItMi4yIDMuMi0zIDEuMy0uOCAyLjctMS4zIDQuMS0xLjYgMS41LS4zIDMtLjIgNC40IC4xem00MC44IDI0OS44YzAgMzEuNC0xNy41IDYxLjEtNDkuMyA4My41LTIuMSAxLjUtNC44IDIuMy03LjQgMi0yLjctLjItNS4yLTEuMy03LTMuMmwtNzAuMS02OS44Yy0yLjItMi4xLTQuMi01LTMuNC04IDAtMyAxLjItNS45IDMuMy04IDIuMi0yLjEgNS0zLjMgOC0zLjNzNS45IDEuMiA4IDMuM2w2My4xIDYyLjhjMjAuOC0xNy4xIDMyLjItMzcuOSAzMi4yLTU5LjMgMC0yMy45LTE0LjEtNDctMzkuNy02NS4xLTIuNS0xLjctNC4xLTQuMy00LjYtNy4zLS41LTIuOSAuMS02IDEuOS04LjQgMS43LTIuNSA0LjMtNC4xIDcuMy00LjYgMi45LS41IDYgLjEgOC40IDEuOSAzMS44IDIyLjQgNDkuMyA1Mi4xIDQ5LjMgODMuNXpNMjE2LjcgMzQxLjVjLTMgLjUtNi0uMi04LjUtMS45LTMxLjctMjIuNC01MC4xLTUyLjEtNTAuMS04My41czE4LjQtNjEuMSA1MC4xLTgzLjVjMi4yLTEuNiA0LjktMi4zIDcuNS0yLjEgMi43IC4zIDUuMSAxLjQgNyAzLjNsNzAuMSA2OS44YzIuMSAyLjEgMy4zIDUgMy4zIDhzLTIgNS44LTMuMyA4Yy0yLjEgMi4xLTUgMy4zLTcuOSAzLjMtMyAwLTYuOC0xLjItOC0zLjNsLTYzLjEtNjIuOWMtMjAuOSAxNy4zLTMyLjIgMzgtMzIuMiA1OS40IDAgMjMgMTQuMSA0NyAzOS43IDY1IDIuNCAxLjggNC4xIDQuNCA0LjYgNy40IC41IDIuOS0uMiA1LjktMS45IDguNC0xLjcgMi40LTQuNCA0LjEtNy4zIDQuNnoiXX0sX2RyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtYnkiLGljb246WzUxMiw1MTIsW10sImY0ZTciLCJNMzIyLjkgMTk0LjRsMCAxMDEuNC0yOC4zIDAgMCAxMjAuNS03Ny4xIDAgMC0xMjAuNC0yOC4zIDAgMC0xMDEuNWMwLTQuNCAxLjYtOC4yIDQuNi0xMS4zIDMuMS0zLjEgNi45LTQuNyAxMS4zLTQuN2wxMDEuOSAwYzQuMSAwIDcuOCAxLjYgMTEuMSA0LjcgMy4xIDMuMiA0LjggNi45IDQuOCAxMS4zem0tMzIuNS02NC41YTM0LjUgMzQuNSAwIDEgMSAtNjkgLjggMzQuNSAzNC41IDAgMSAxIDY5LS44ek0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6Il19LFRkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bWJyYWNvIixpY29uOls1MTIsNTEyLFtdLCJmOGU4IiwiTTI1Ni4zIDhhMjQ4IDI0OCAwIDEgMCAtLjcgNDk2IDI0OCAyNDggMCAxIDAgLjctNDk2em0xNDUgMjY2Yy0uOCAyNy4xLTUuNCA0OC44LTE0IDY1cy0yMy4xIDI3LjktNDMuNSAzNWMtMjAuNCA3LjEtNDguOSAxMC42LTg1LjQgMTAuNWwtNC42IDBjLTM2LjUgLjEtNjUtMy4zLTg1LjQtMTAuNXMtMzQuOS0xOC44LTQzLjUtMzVjLTguNi0xNi4yLTEzLjItMzcuOS0xNC02NS0uNy0xMC4yLS43LTIwLjUgMC0zMC43IC40LTE0LjcgMS42LTI5LjMgMy42LTQzLjkgMS45LTEzLjQgMy42LTIyLjYgNS40LTMyIDEtNC45IDEuMy02LjQgMS44LTguNCAuMy0xLjEgLjktMi4xIDEuOC0yLjhzMi0xLjEgMy4xLTEuMWwuNyAwIDMyIDVjMS4yIC4yIDIuMiAuOCAzIDEuN3MxLjIgMi4xIDEuMiAzLjNjMCAuMyAwIC41IDAgLjhsLTEuNyA4LjhjLTEuNiA4LjgtMy4yIDIwLjEtNC44IDMzLjctMS43IDE0LTIuNSAyOC4xLTIuNiA0Mi4yLS4yIDI3IDIuNSA0Ni45IDguMSA1OS44IDIuOCA2LjQgNy4yIDEyIDEyLjYgMTYuNHMxMS45IDcuNCAxOC43IDguOGMxOC44IDQgMzguMSA1LjcgNTcuMyA1LjFsMTAuMyAwYzE5LjIgLjYgMzguNS0xLjIgNTcuMy01LjIgNi44LTEuNCAxMy4yLTQuNSAxOC42LTguOHM5LjctMTAgMTIuNS0xNi40YzUuNy0xMi45IDguNC0zMi45IDguMS01OS44LS4xLTE0LjEtMS0yOC4yLTIuNi00Mi4xLTEuNy0xMy42LTMuMy0yNC44LTQuOS0zMy43bC0xLjctOC44YzAtLjMgMC0uNSAwLS44IDAtMS4yIC40LTIuNCAxLjItMy4zczEuOC0xLjUgMy0xLjdsMzItNSAuOCAwYzEuMSAwIDIuMiAuNCAzLjEgMS4xczEuNSAxLjcgMS44IDIuOGMuNiAyIC44IDMuNiAxLjggOC40IDEuOCA5LjYgMy41IDE4LjggNS40IDMyIDIgMTQuNiAzLjIgMjkuMiAzLjYgNDMuOSAuNyAxMC4yIC43IDIwLjUgMCAzMC43bDAgMHoiXX0sTGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imhvb2xpIixpY29uOls2NDAsNTEyLFtdLCJmNDI3IiwiTTE0NC41IDM1MmwzOC4zIC44Yy0xMy4yLTQuNi0yNi0xMC4yLTM4LjMtMTYuOGwwIDE2em01Ny43LTUuM2wwIDUuMy0xOS40IC44YzM2LjUgMTIuNSA2OS45IDE0LjIgOTQuNyA3LjItMTkuOSAuMi00NS44LTIuNi03NS4zLTEzLjN6TTYxMS4xIDIzMS41YzE1LjkgMCAyOC45LTEyLjkgMjguOS0yOC45cy0xMi45LTI0LjUtMjguOS0yNC41Yy0xNS45IDAtMjguOSA4LjYtMjguOSAyNC41czEyLjkgMjguOSAyOC45IDI4Ljl6TTU4Mi4xIDM1Mmw1Ny45IDAgMC0xMTAuNS01Ny45IDAgMCAxMTAuNXptLTczLjcgMGw1Ny45IDAgMC0xOTUuMy01Ny45IDI3LjMgMCAxNjh6bS0zMS0xMTkuNGMtMTguMi0xOC4yLTUwLjQtMTcuMS01MC40LTE3LjFzLTMyLjMtMS4xLTUwLjQgMTcuMWMtMTguMiAxOC4yLTE2LjggMzMuOS0xNi44IDUyLjZzLTEuNCAzNC4zIDE2LjggNTIuNSA1MC40IDE3LjEgNTAuNCAxNy4xIDMyLjMgMS4xIDUwLjQtMTcuMWMxOC4yLTE4LjIgMTYuOC0zMy44IDE2LjgtNTIuNS0uMS0xOC44IDEuMy0zNC41LTE2LjgtNTIuNnptLTM5LjggNzEuOWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNWwwLTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOWwwIDQwLjR6TTMzMS40IDIzMi42Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMi0xLjEtNTAuNCAxNy4xYy0xLjkgMS45LTMuNyAzLjktNS4zIDYtMzguMi0yOS42LTcyLjUtNDYuNS0xMDIuMS02MS4xbDAtMjAuNy0yMi41IDEwLjZjLTU0LjQtMjIuMS04OS0xOC4yLTk3LjMgLjEgMCAwLTI0LjkgMzIuOCA2MS44IDExMC44bDAgNzMuNyA1Ny45IDAgMC0yOC42Yy02LjUtNC4yLTEzLTguNy0xOS40LTEzLjYtMTQuOC0xMS4yLTI3LjQtMjEuNi0zOC40LTMxLjRsMC0zMWMxMy4xIDE0LjcgMzAuNSAzMS40IDUzLjQgNTAuM2w0LjUgMy42IDAtMjkuOGMwLTYuOSAxLjctMTguMiAxMC44LTE4LjJzMTAuNiA2LjkgMTAuNiAxNWwwIDQ4LjdjMTggMTIuMiAzNy4zIDIyLjEgNTcuNyAyOS42bDAtOTMuOWMwLTE4LjctMTMuNC0zNy40LTQwLjYtMzcuNC0xNS44LS4xLTMwLjUgOC4yLTM4LjUgMjEuOWwwLTU0LjNjNDEuOSAyMC45IDgzLjkgNDYuNSA5OS45IDU4LjMtMTAuMiAxNC42LTkuMyAyOC4xLTkuMyA0My43IDAgMTguNy0xLjQgMzQuMyAxNi44IDUyLjVzNTAuNCAxNy4xIDUwLjQgMTcuMSAzMi4zIDEuMSA1MC40LTE3LjFjMTguMi0xOC4yIDE2LjctMzMuOCAxNi43LTUyLjUgMC0xOC41IDEuNS0zNC4yLTE2LjctNTIuM3pNNjUuMiAxODRsMCA2My4zYy00OC43LTU0LjUtMzguOS03Ni0zNS4yLTc5LjEgMTMuNS0xMS40IDM3LjUtOCA2NC40IDIuMUw2NS4yIDE4NHpNMjkxLjcgMzA0LjVjMCAzLjYtMS44IDEyLjUtMTAuNyAxMi41cy0xMC43LTguOS0xMC43LTEyLjVsMC00MC40YzAtOC43IDcuMy0xMC45IDEwLjctMTAuOXMxMC43IDIuMSAxMC43IDEwLjlsMCA0MC40eiJdfSxJRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdpdCIsaWNvbjpbNDQ4LDUxMixbImdpdC1zcXVhcmUiXSwiZjFkMiIsIk0xMjAuOCAzMzUuNWMtNS45LS40LTEyLjYtLjgtMjAuMi0xLjMtMy4zIDQuMS02LjYgOC40LTYuNiAxMy41IDAgMTguNSA2NS41IDE4LjUgNjUuNS0xLjUgMC04LjMtNy40LTguNy0zOC44LTEwLjdsLjEgMHptNy44LTExNy45Yy0zMi4zIDAtMzMuNyA0NC41LS43IDQ0LjUgMzIuNSAwIDMxLjctNDQuNSAuNy00NC41ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMjQzLjkgMTcyLjJjLTE0LjUgMC0yMi45LTguNC0yMi45LTIyLjlzOC40LTIyLjMgMjIuOS0yMi4zYzE0LjcgMCAyMy4xIDcuOCAyMy4xIDIyLjNzLTguNCAyMi45LTIzLjEgMjIuOXpNMTQ5LjYgMTk1bDQ5LjUgMCAwIDIxLjYtMjMuNCAxLjhjNC42IDUuOCA5LjQgMTQgOS40IDI1LjcgMCA0OC43LTU3LjIgNDcuMi03NC4yIDQyLjRsLTguNCAxMy40YzUgLjMgOS44IC42IDE0LjMgLjggNTYuMyAzLjIgODAuNSA0LjYgODAuNSAzOC41IDAgMjkuMi0yNS43IDQ1LjctNjkuOSA0NS43LTQ2IDAtNjMuNS0xMS42LTYzLjUtMzEuNyAwLTExLjQgNS4xLTE3LjUgMTQtMjUuOS04LjQtMy41LTExLjItOS45LTExLjItMTYuOCAwLTkuNiA3LjQtMTYuMyAyMy0zMC42bC4yLS4yYy0xMi40LTYuMS0yMS44LTE5LjMtMjEuOC0zOC4xIDAtNTEuNiA1Ni42LTUzLjMgODEuNi00Ni44bC0uMSAuMnpNMjcwLjUgMzAzLjFsMTMgMS44IDAgMjAuMS03Mi40IDAgMC0yMC4xYzIuNy0uNCA1LS43IDYuOS0uOSA5LjktMS4yIDEwLjEtMS4zIDEwLjEtNmwwLTc0LjdjMC00LjQtLjktNC43LTEwLjEtNy44LTEuOS0uNy00LjItMS40LTYuOS0yLjRsMi44LTIwLjYgNTIuNiAwIDAgMTA1LjVjMCA0LjEgLjIgNC42IDQuMSA1LjFsLS4xIDB6bTEwNi42LTEwLjRMMzg0IDMxNWMtMTAuOSA1LjQtMjYuOSAxMC4yLTQxLjQgMTAuMi0zMC4yIDAtNDEuNy0xMi4yLTQxLjctNDAuOWwwLTY2LjZjMC0uOCAwLTEuNC0uMi0xLjgtLjgtMS4yLTQuMi0uNy0xOS42LS43bDAtMjIuNmMyMi4zLTIuNSAzMS4yLTEzLjcgMzQtNDEuNGwyNC4yIDBjMCAzMy4zLS42IDM4IC43IDM4LjYgLjMgLjEgLjcgMCAxLjMgMGwzNS44IDAgMCAyNS40LTM3LjggMCAwIDYxLjZjLS4yIDYuMy0uOSAzMC40IDM3LjkgMTUuOWwtLjEgMHoiXX0sRGRyPUlFZSwkZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2Rub2tsYXNzbmlraSIsaWNvbjpbMzIwLDUxMixbXSwiZjI2MyIsIk0yNzUuMSAzMzRjLTI3LjQgMTcuNC02NS4xIDI0LjMtOTAgMjYuOWwyMC45IDIwLjYgNzYuMyA3Ni4zYzI3LjkgMjguNi0xNy41IDczLjMtNDUuNyA0NS43LTE5LjEtMTkuNC00Ny4xLTQ3LjQtNzYuMy03Ni42TDg0IDUwMy40Yy0yOC4yIDI3LjUtNzMuNi0xNy42LTQ1LjQtNDUuNyAxOS40LTE5LjQgNDcuMS00Ny40IDc2LjMtNzYuM2wyMC42LTIwLjZjLTI0LjYtMi42LTYyLjktOS4xLTkwLjYtMjYuOS0zMi42LTIxLTQ2LjktMzMuMy0zNC4zLTU5IDcuNC0xNC42IDI3LjctMjYuOSA1NC42LTUuNyAwIDAgMzYuMyAyOC45IDk0LjkgMjguOVMyNTUgMjY5LjIgMjU1IDI2OS4yYzI2LjktMjEuMSA0Ny4xLTguOSA1NC42IDUuNyAxMi40IDI1LjctMS45IDM4LTM0LjUgNTkuMXptMTQuNi0yMDQuN2ExMjkuNyAxMjkuNyAwIDEgMSAtMjU5LjQgLjQgMTI5LjcgMTI5LjcgMCAxIDEgMjU5LjQtLjR6bS0xOTMuNCAuNGE2My43IDYzLjcgMCAxIDAgMTI3LjQtLjQgNjMuNyA2My43IDAgMSAwIC0xMjcuNCAuNHoiXX0sQWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRydXBhbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFhOSIsIk0yNzIuMyAxMDguMUMyMzYuNSA3Mi41IDIwMi41IDM4LjQgMTkyLjQgMCAxODIuNCAzOC40IDE0OC4xIDcyLjUgMTEyLjQgMTA4LjEgNTguOCAxNjEuNy0xLjkgMjIyLjQtMS45IDMxMy40LTQuMyA0MjAuNyA4MC44IDUwOS42IDE4OC4xIDUxMnMxOTYuMi04Mi44IDE5OC41LTE5MC4xYy4xLTIuOCAuMS01LjYgMC04LjUgMC05MS4xLTYwLjgtMTUxLjctMTE0LjMtMjA1LjN6TTk4IDMzMS4xYy01LjkgNy41LTExIDE1LjYtMTUuMiAyNC4yLS4zIC43LS44IDEuMy0xLjMgMS44cy0xLjIgLjgtMiAxbC0xLjcgMGMtNC4zIDAtOS4yLTguNS05LjItOC41LTEuMy0yLTIuNS00LjItMy43LTYuNGwtLjgtMS44Yy0xMS4yLTI1LjctMS41LTYyLjMtMS41LTYyLjMgNC44LTE3LjggMTIuNy0zNC43IDIzLjItNDkuOSA2LjQtOS42IDEzLjUtMTguOSAyMS0yNy43bDkuMiA5LjIgNDMuNSA0NC40Yy44IC45IDEuMyAyLjEgMS4zIDMuM3MtLjUgMi40LTEuMyAzLjNMMTE0LjEgMzEyLjMgOTggMzMxLjF6bTk2LjYgMTI3LjNjLTEyLjktLjEtMjUuNi0zLjktMzYuNC0xMXMtMTkuNC0xNy4xLTI0LjYtMjguOS03LTI0LjktNS0zNy43IDcuNi0yNC43IDE2LjItMzQuNGMxNC4yLTE2LjkgMzEuNS0zMy41IDUwLjMtNTUuMyAyMi4zIDIzLjggMzYuOSA0MC4xIDUxLjIgNTggMS4xIDEuNCAyLjEgMi45IDMgNC40IDcuOCAxMS4xIDEyIDI0LjQgMTIgMzggMCA4LjgtMS43IDE3LjQtNSAyNS41cy04LjIgMTUuNS0xNC40IDIxLjctMTMuNSAxMS4xLTIxLjYgMTQuNS0xNi43IDUuMS0yNS41IDUuMWwtLjIgMHpNMzIwLjcgMzUxLjZjLS40IDEuNC0xLjIgMi42LTIuMyAzLjZzLTIuNCAxLjYtMy44IDEuOGwtMS4zIDBjLTIuNi0uOS00LjktMi43LTYuMy01LjEtMTEuNi0xNy41LTI0LjktMzMuOS0zOS41LTQ5bC0xNy44LTE4LjQtNTkuMS02MS4zYy0xMi40LTExLjUtMjQuMi0yMy42LTM1LjQtMzYuMy0uMy0uNS0uNi0uOS0uOS0xLjQtMi0yLjgtMy42LTUuOS00LjctOS4ybDAtMS44Yy0uOC01LS40LTEwLjEgMS4yLTE1czQuNC05LjIgOC0xMi43YzExLjQtMTEuNCAyMy0yMyAzMy44LTM0LjkgMTIgMTMuMyAyNC44IDI2IDM3LjQgMzguNiAyNS44IDI0IDQ5LjEgNTAuNSA2OS42IDc5LjEgMTcuMyAyNC41IDI2LjcgNTMuOCAyNyA4My44LS4xIDEyLjktMi4yIDI1LjgtNiAzOC4yeiJdfSxFZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxvZ2dlci1iIixpY29uOls0NDgsNTEyLFtdLCJmMzdkIiwiTTQ0Ni42IDIyMi43Yy0xLjgtOC02LjgtMTUuNC0xMi41LTE4LjUtMS44LTEtMTMtMi4yLTI1LTIuNy0yMC4xLS45LTIyLjMtMS4zLTI4LjctNS0xMC4xLTUuOS0xMi44LTEyLjMtMTIuOS0yOS41LS4xLTMzLTEzLjgtNjMuNy00MC45LTkxLjMtMTkuMy0xOS43LTQwLjktMzMtNjUuNS00MC41LTUuOS0xLjgtMTkuMS0yLjQtNjMuMy0yLjktNjkuNC0uOC04NC44IC42LTEwOC40IDEwLTQzLjUgMTcuMi03NC43IDUzLjgtODYuMSAxMDAuNi0yLjEgOC44LTIuNiAyMi45LTMuMSAxMDMuOS0uNiAxMDEuNSAuMSAxMTYuNCA2LjQgMTM2LjUgMTUuNiA0OS42IDU5LjkgODYuMyAxMDQuNCA5NC4zIDE0LjggMi43IDE5Ny4zIDMuMyAyMTYgLjggMzIuNS00LjQgNTgtMTcuNSA4MS45LTQxLjkgMTcuMy0xNy43IDI4LjEtMzYuOCAzNS4yLTYyLjEgNC45LTE3LjYgNC41LTE0Mi44IDIuNS0xNTEuN3pNMTI0LjUgMTU5LjFjNy44LTcuOSAxMC04LjIgNTguOC04LjIgNDMuOSAwIDQ1LjQgLjEgNTEuOCAzLjQgOS4zIDQuNyAxMy40IDExLjMgMTMuNCAyMS45IDAgOS41LTMuOCAxNi4yLTEyLjMgMjEuNi00LjYgMi45LTcuMyAzLjEtNTAuMyAzLjMtMjYuNSAuMi00Ny43LS40LTUwLjgtMS4yLTE2LjYtNC43LTIyLjgtMjguNS0xMC42LTQwLjh6TTMxNi4zIDM1OC45bC0xNC45IDIuNC03Ny41IC45Yy02OC4xIC44LTg3LjMtLjQtOTAuOS0yLTcuMS0zLjEtMTMuOC0xMS43LTE0LjktMTkuNC0xLjEtNy4zIDIuNi0xNy4zIDguMi0yMi40IDcuMS02LjQgMTAuMi02LjYgOTcuMy02LjcgODkuNi0uMSA4OS4xLS4xIDk3LjYgNy44IDEyLjEgMTEuMyA5LjUgMzEuMi00LjkgMzkuNHoiXX0sSWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImludmlzaW9uIixpY29uOls0NDgsNTEyLFtdLCJmN2IwIiwiTTQwNy40IDMyTDQwLjYgMzJDMTguMiAzMiAwIDUwLjIgMCA3Mi42TDAgNDM5LjRDMCA0NjEuOCAxOC4yIDQ4MCA0MC42IDQ4MGwzNjYuOCAwYzIyLjQgMCA0MC42LTE4LjIgNDAuNi00MC42bDAtMzY2LjhDNDQ4IDUwLjIgNDI5LjggMzIgNDA3LjQgMzJ6TTE3Ni4xIDE0NS42Yy40IDIzLjQtMjIuNCAyNy4zLTI2LjYgMjcuNC0xNC45IDAtMjcuMS0xMi0yNy4xLTI3IC4xLTM1LjIgNTMuMS0zNS41IDUzLjctLjR6TTMzMi44IDM3N2MtNjUuNiAwLTM0LjEtNzQtMjUtMTA2LjYgMTQuMS00Ni40LTQ1LjItNTktNTkuOSAuN2wtMjUuOCAxMDMuMy00NS4xIDAgOC4xLTMyLjVjLTMxLjUgNTEuOC05NC42IDQ0LjQtOTQuNi00LjMgLjEtMTQuMyAuOS0xNCAyMy0xMDQuMWwtMzEuOCAwIDkuNy0zNS42IDc2LjQgMGMtMzMuNiAxMzMuNy0zMi42IDEyNi45LTMyLjkgMTM4LjIgMCAyMC45IDQwLjkgMTMuNSA1Ny40LTIzLjJsMTkuOC03OS40LTMyLjMgMCA5LjctMzUuNiA2OC44IDAtOC45IDQwLjVjNDAuNS03NS41IDEyNy45LTQ3LjggMTAxLjggMzgtMTQuMiA1MS4xLTE0LjYgNTAuNy0xNC45IDU4LjggMCAxNS41IDE3LjUgMjIuNiAzMS44LTE2LjlMMzg2IDMyNWMtMTAuNSAzNi43LTI5LjQgNTItNTMuMiA1MnoiXX0sUGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZhY2Vib29rLWYiLGljb246WzMyMCw1MTIsW10sImYzOWUiLCJNODAgMjk5LjNsMCAyMTIuNyAxMTYgMCAwLTIxMi43IDg2LjUgMCAxOC05Ny44LTEwNC41IDAgMC0zNC42YzAtNTEuNyAyMC4zLTcxLjUgNzIuNy03MS41IDE2LjMgMCAyOS40IC40IDM3IDEuMmwwLTg4LjdDMjkxLjQgNCAyNTYuNCAwIDIzNi4yIDAgMTI5LjMgMCA4MCA1MC41IDgwIDE1OS40bDAgNDIuMS02NiAwIDAgOTcuOCA2NiAweiJdfSxOZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2VudG9zIixpY29uOls0NDgsNTEyLFtdLCJmNzg5IiwiTTI4OS42IDk3LjVsMzEuNiAzMS43LTc2LjMgNzYuNSAwLTEwOC4yIDQ0LjcgMHpNMTI3LjIgMTI5LjJsNzYuMyA3Ni41IDAtMTA4LjItNDQuNyAwLTMxLjYgMzEuN3ptNDEuNS00MS42bDQ0LjcgMCAwIDEyNy45IDEwLjggMTAuOCAxMC44LTEwLjggMC0xMjcuOSA0NC43IDAtNTUuNS01NS42LTU1LjUgNTUuNnptMjYuMiAxNjguMWwtMTAuOC0xMC44LTEyOC42IDAgMC00NC44LTU1LjUgNTUuNiA1NS41IDU1LjYgMC00NC44IDEyOC42IDAgMTAuOC0xMC44ek0yNzQuMiAyMzVsMTA3LjkgMCAwLTQ0LjgtMzEuNi0zMS43LTc2LjMgNzYuNXptMTczLjMgMjAuN2wtNTUuNS01NS42IDAgNDQuOC0xMjcuNyAwLTEwLjggMTAuOCAxMC44IDEwLjggMTI3LjcgMCAwIDQ0LjggNTUuNS01NS42ek02NS40IDE3Ni4ybDMyLjUtMzEuNyA5MC4zIDkwLjUgMTUuMyAwIDAtMTUuMy05MC4zLTkwLjUgMzEuNi0zMS43LTc5LjQgMCAwIDc4Ljd6TTM4Mi4xIDk3LjVsLTc4LjUgMCAzMS42IDMxLjctOTAuMyA5MC41IDAgMTUuMyAxNS4zIDAgOTAuMy05MC41IDMxLjYgMzEuNyAwLTc4Ljd6TTIwMy41IDQxMy45bDAtMTA4LjEtNzYuMyA3Ni41IDMxLjYgMzEuNyA0NC43IDAgMC0uMXpNNjUuNCAyMzVsMTA4LjggMC03Ni4zLTc2LjUtMzIuNSAzMS43IDAgNDQuOHpNMzgyLjEgMzM1LjJsLTMxLjYgMzEuNy05MC4zLTkwLjUtMTUuMyAwIDAgMTUuMyA5MC4zIDkwLjUtMzEuNiAzMS43IDc4LjUgMCAwLTc4Ljd6bTAtNTguOGwtMTA3LjkgMCA3Ni4zIDc2LjUgMzEuNi0zMS43IDAtNDQuOHpNMzIxLjIgMzgyLjJsLTc2LjMtNzYuNSAwIDEwOC4xIDQ0LjcgMCAzMS42LTMxLjZ6TTk3LjkgMzUyLjlsNzYuMy03Ni41LTEwOC44IDAgMCA0NC44IDMyLjUgMzEuN3ptMTgxLjggNzAuOWwtNDQuNyAwIDAtMTI3LjktMTAuOC0xMC44LTEwLjggMTAuOCAwIDEyNy45LTQ0LjcgMCA1NS41IDU1LjYgNTUuNS01NS42ek0xMTMuMiAzODIuMmw5MC4zLTkwLjUgMC0xNS4zLTE1LjMgMC05MC4zIDkwLjUtMzIuNS0zMS43IDAgNzguNyA3OS40IDAtMzEuNi0zMS43eiJdfSxPZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NhbGV3YXkiLGljb246WzQ0OCw1MTIsW10sImU4NTkiLCJNMjQzLjQgMTE3LjNsLTg0LjMgMGMtMTguNSAyLjEtMzIuNyAxNy41LTMzLjQgMzZsMCAxMjEuOWMwIDguMiAzLjIgMTUuMyA4LjUgMjAuN3MxMi41IDguNiAyMC42IDguNmMxNiAwIDI5LjItMTMuMiAyOS4yLTI5LjJsMC03Ny40YzAtMTIuMSAxMC0yMi4xIDIyLjEtMjIuMWwzOC4xIDBjOC4yIDAgMTUuMy0zLjIgMjAuNi04LjZzOC41LTEyLjggOC41LTIxYzAtMTYtMTMuOS0yOC45LTI5LjktMjguOXpNMjA1LjMgMzk1LjRsODQuMyAwYzE4LjUtMi4xIDMyLjctMTcuNSAzMy40LTM2bDAtMTIxLjljMC04LjItMy4yLTE1LjMtOC41LTIwLjdzLTEyLjUtOC42LTIwLjYtOC42Yy0xNiAwLTI5LjIgMTMuMi0yOS4yIDI5LjJsMCA3Ny40YzAgMTIuMS0xMCAyMi4xLTIyLjEgMjIuMWwtMzguMSAwYy04LjIgMC0xNS4zIDMuMi0yMC42IDguNnMtOC41IDEyLjgtOC41IDIxYy40IDE2IDEzLjkgMjguOSAyOS45IDI4Ljl6TTEwNC4zIDBMMjU3LjYgMGMxMDEgMCAxODIuNSA4MS42IDE4Mi4xIDE4Mi45bDAgMjQyLjhjLTQuNiA0Ni00MiA4Mi40LTg4LjIgODYuM0wxOTAgNTEyQzg5LjMgNTEyIDcuNSA0MzAgNy41IDMyOS4xTDcuNSA5N2MwLTUzLjUgNDMuNC05NyA5Ni44LTk3ek0zODEuNyAxODIuOWMwLTY4LjUtNTUuOS0xMjQuNC0xMjQuMi0xMjQuNGwtMTUzIDBDODMuMyA1OC41IDY2LjIgNzUuNiA2Ni4yIDk3bDAgMjMyLjFjMCA2OC44IDU1LjUgMTI0LjQgMTI0LjIgMTI0LjRsMTU4LjcgMGMxNi43LTIuMSAyOS45LTE1IDMyLjctMzEuNGwwLTIzOS4yeiJdfSxSZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtYW1hem9uLXBheSIsaWNvbjpbNTc2LDUxMixbXSwiZjQyZCIsIk0xMjQuNyAyMDEuOGMuMS0xMS44IDAtMjMuNSAwLTM1LjNsMC0zNS4zYzAtMS4zIC40LTIgMS40LTIuNyAxMS41LTggMjQuMS0xMi4xIDM4LjItMTEuMSAxMi41IC45IDIyLjcgNyAyOC4xIDIxLjcgMy4zIDguOSA0LjEgMTguMiA0LjEgMjcuNyAwIDguNy0uNyAxNy4zLTMuNCAyNS42LTUuNyAxNy44LTE4LjcgMjQuNy0zNS43IDIzLjktMTEuNy0uNS0yMS45LTUtMzEuNC0xMS43LS45LS44LTEuNC0xLjYtMS4zLTIuOHptMTU0LjkgMTQuNmM0LjYgMS44IDkuMyAyIDE0LjEgMS41IDExLjYtMS4yIDIxLjktNS43IDMxLjMtMTIuNSAuOS0uNiAxLjMtMS4zIDEuMy0yLjUtLjEtMy45IDAtNy45IDAtMTEuOCAwLTQtLjEtOCAwLTEyIDAtMS40LS40LTItMS44LTIuMi03LS45LTEzLjktMi4yLTIwLjktMi45LTctLjYtMTQtLjMtMjAuOCAxLjktNi43IDIuMi0xMS43IDYuMi0xMy43IDEzLjEtMS42IDUuNC0xLjYgMTAuOCAuMSAxNi4yIDEuNiA1LjUgNS4yIDkuMiAxMC40IDExLjJ6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTM2OC41IDEwMy45Yy40IDEuNyAuOSAzLjQgMS42IDUuMSAxNi41IDQwLjYgMzIuOSA4MS4zIDQ5LjUgMTIxLjkgMS40IDMuNSAxLjcgNi40IC4yIDkuOS0yLjggNi4yLTQuOSAxMi42LTcuOCAxOC43LTIuNiA1LjUtNi43IDkuNS0xMi43IDExLjItNC4yIDEuMS04LjUgMS4zLTEyLjkgLjktMi4xLS4yLTQuMi0uNy02LjMtLjgtMi44LS4yLTQuMiAxLjEtNC4zIDQtLjEgMi44LS4xIDUuNiAwIDguMyAuMSA0LjYgMS42IDYuNyA2LjIgNy41IDQuNyAuOCA5LjQgMS42IDE0LjIgMS43IDE0LjMgLjMgMjUuNy01LjQgMzMuMS0xNy45IDIuOS00LjkgNS42LTEwLjEgNy43LTE1LjQgMTkuOC01MC4xIDM5LjUtMTAwLjMgNTkuMi0xNTAuNSAuNi0xLjUgMS4xLTMgMS4zLTQuNiAuNC0yLjQtLjctMy42LTMuMS0zLjctNS42LS4xLTExLjEgMC0xNi43IDAtMy4xIDAtNS4zIDEuNC02LjQgNC4zLS40IDEuMS0uOSAyLjMtMS4zIDMuNGwtMjkuMSA4My43Yy0yLjEgNi4xLTQuMiAxMi4xLTYuNSAxOC42LS40LS45LS42LTEuNC0uOC0xLjktMTAuOC0yOS45LTIxLjYtNTkuOS0zMi40LTg5LjgtMS43LTQuNy0zLjUtOS41LTUuMy0xNC4yLS45LTIuNS0yLjctNC01LjQtNC02LjQtLjEtMTIuOC0uMi0xOS4yLS4xLTIuMiAwLTMuMyAxLjYtMi44IDMuN3pNMjQyLjQgMjA2YzEuNyAxMS43IDcuNiAyMC44IDE4IDI2LjYgOS45IDUuNSAyMC43IDYuMiAzMS43IDQuNiAxMi43LTEuOSAyMy45LTcuMyAzMy44LTE1LjUgLjQtLjMgLjgtLjYgMS40LTEgLjUgMy4yIC45IDYuMiAxLjUgOS4yIC41IDIuNiAyLjEgNC4zIDQuNSA0LjQgNC42IC4xIDkuMSAuMSAxMy43IDAgMi4zLS4xIDMuOC0xLjYgNC0zLjkgLjEtLjggLjEtMS42IC4xLTIuM2wwLTg4LjhjMC0zLjYtLjItNy4yLS43LTEwLjgtMS42LTEwLjgtNi4yLTE5LjctMTUuOS0yNS40LTUuNi0zLjMtMTEuOC01LTE4LjItNS45LTMtLjQtNi0uNy05LjEtMS4xbC0xMCAwYy0uOCAuMS0xLjYgLjMtMi41IC4zLTguMiAuNC0xNi4zIDEuNC0yNC4yIDMuNS01LjEgMS4zLTEwIDMuMi0xNSA0LjktMyAxLTQuNSAzLjItNC40IDYuNSAuMSAyLjgtLjEgNS42IDAgOC4zIC4xIDQuMSAxLjggNS4yIDUuNyA0LjEgNi41LTEuNyAxMy4xLTMuNSAxOS43LTQuOCAxMC4zLTEuOSAyMC43LTIuNyAzMS4xLTEuMiA1LjQgLjggMTAuNSAyLjQgMTQuMSA3IDMuMSA0IDQuMiA4LjggNC40IDEzLjcgLjMgNi45IC4yIDEzLjkgLjMgMjAuOCAwIC40LS4xIC43LS4yIDEuMi0uNCAwLS44IDAtMS4xLS4xLTguOC0yLjEtMTcuNy0zLjYtMjYuOC00LjEtOS41LS41LTE4LjkgLjEtMjcuOSAzLjItMTAuOCAzLjgtMTkuNSAxMC4zLTI0LjYgMjAuOC00LjEgOC4zLTQuNiAxNy0zLjQgMjUuOHpNOTguNyAxMDYuOWwwIDE3NS4zYzAgLjggMCAxLjcgLjEgMi41IC4yIDIuNSAxLjcgNC4xIDQuMSA0LjIgNS45IC4xIDExLjggLjEgMTcuNyAwIDIuNSAwIDQtMS43IDQuMS00LjEgLjEtLjggLjEtMS43IC4xLTIuNWwwLTYwLjdjLjkgLjcgMS40IDEuMiAxLjkgMS42IDE1IDEyLjUgMzIuMiAxNi42IDUxLjEgMTIuOSAxNy4xLTMuNCAyOC45LTEzLjkgMzYuNy0yOS4yIDUuOC0xMS42IDguMy0yNC4xIDguNy0zNyAuNS0xNC4zLTEtMjguNC02LjgtNDEuNy03LjEtMTYuNC0xOC45LTI3LjMtMzYuNy0zMC45LTIuNy0uNi01LjUtLjgtOC4yLTEuMmwtNyAwYy0xLjIgLjItMi40IC4zLTMuNiAuNS0xMS43IDEuNC0yMi4zIDUuOC0zMS44IDEyLjctMiAxLjQtMy45IDMtNS45IDQuNS0uMS0uNS0uMy0uOC0uNC0xLjItLjQtMi4zLS43LTQuNi0xLjEtNi45LS42LTMuOS0yLjUtNS41LTYuNC01LjZsLTkuNyAwYy01LjktLjEtNi45IDEtNi45IDYuOHpNNDkzLjYgMzM5Yy0yLjctLjctNS4xIDAtNy42IDEtNDMuOSAxOC40LTg5LjUgMzAuMi0xMzYuOCAzNS44LTE0LjUgMS43LTI5LjEgMi44LTQzLjcgMy4yLTI2LjYgLjctNTMuMi0uOC03OS42LTQuMy0xNy44LTIuNC0zNS41LTUuNy01My05LjktMzctOC45LTcyLjctMjEuNy0xMDYuNy0zOC44LTguOC00LjQtMTcuNC05LjMtMjYuMS0xNC0zLjgtMi4xLTYuMi0xLjUtOC4yIDIuMWwwIDEuN2MxLjIgMS42IDIuMiAzLjQgMy43IDQuOCAzNiAzMi4yIDc2LjYgNTYuNSAxMjIgNzIuOSAyMS45IDcuOSA0NC40IDEzLjcgNjcuMyAxNy41IDE0IDIuMyAyOCAzLjggNDIuMiA0LjUgMyAuMSA2IC4yIDkgLjQgLjcgMCAxLjQgLjIgMi4xIC4zbDE3LjcgMGMuNy0uMSAxLjQtLjMgMi4xLS4zIDE0LjktLjQgMjkuOC0xLjggNDQuNi00IDIxLjQtMy4yIDQyLjQtOC4xIDYyLjktMTQuNyAyOS42LTkuNiA1Ny43LTIyLjQgODMuNC00MC4xIDIuOC0xLjkgNS43LTMuOCA4LTYuMiA0LjMtNC40IDIuMy0xMC40LTMuMy0xMS45ek01NDQgMzExLjNjLS44LTQuMi00LTUuOC03LjYtNy01LjctMS45LTExLjYtMi44LTE3LjYtMy4zLTExLS45LTIyLS40LTMyLjggMS42LTEyIDIuMi0yMy40IDYuMS0zMy41IDEzLjEtMS4yIC44LTIuNCAxLjgtMy4xIDMtLjYgLjktLjcgMi4zLS41IDMuNCAuMyAxLjMgMS43IDEuNiAzIDEuNSAuNiAwIDEuMiAwIDEuOC0uMWwxOS41LTIuMWM5LjYtLjkgMTkuMi0xLjUgMjguOC0uOCA0LjEgLjMgOC4xIDEuMiAxMiAyLjIgNC4zIDEuMSA2LjIgNC40IDYuNCA4LjcgLjMgNi43LTEuMiAxMy4xLTIuOSAxOS41LTMuNSAxMi45LTguMyAyNS40LTEzLjMgMzcuOC0uMyAuOC0uNyAxLjctLjggMi41LS40IDIuNSAxIDQgMy40IDMuNSAxLjQtLjMgMy0xLjEgNC0yLjEgMy43LTMuNiA3LjUtNy4yIDEwLjYtMTEuMiAxMC43LTEzLjggMTctMjkuNiAyMC43LTQ2LjYgLjctMyAxLjItNi4xIDEuNy05LjEgLjItNC43IC4yLTkuNiAuMi0xNC41eiJdfSxGZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWJheSIsaWNvbjpbNjQwLDUxMixbXSwiZjRmNCIsIk02MDYuNSAxODkuNWwtNTQuOCAxMDkuOS01NC45LTEwOS45LTM3LjUgMCAxMC45IDIwLjZjLTExLjUtMTktMzUuOS0yNi02My4zLTI2LTMxLjggMC02Ny45IDguNy03MS41IDQzLjFsMzMuNyAwYzEuNC0xMy44IDE1LjctMjEuOCAzNS0yMS44IDI2IDAgNDEgOS42IDQxIDMzbDAgMy40Yy0xMi43IDAtMjggLjEtNDEuNyAuNC00Mi40IC45LTY5LjYgMTAtNzYuNyAzNC40IDEtNS4yIDEuNS0xMC42IDEuNS0xNi4yIDAtNTIuMS0zOS43LTc2LjItNzUuNC03Ni4yLTIxLjMgMC00MyA1LjUtNTguNyAyNC4ybDAtODAuNi0zMi4xIDAgMCAxNjkuNWMwIDEwLjMtLjYgMjIuOS0xLjEgMzMuMWwzMS41IDBjLjctNi4zIDEuMS0xMi45IDEuMS0xOS41IDEzLjYgMTYuNiAzNS40IDI0LjkgNTguNyAyNC45IDM2LjkgMCA2NC45LTIxLjkgNzMuMy01NC4yLS41IDIuOC0uNyA1LjgtLjcgOSAwIDI0LjEgMjEuMSA0NSA2MC42IDQ1IDI2LjYgMCA0NS44LTUuNyA2MS45LTI1LjUgMCA2LjYgLjMgMTMuMyAxLjEgMjAuMmwyOS44IDBjLS43LTguMi0xLTE3LjUtMS0yNi44bDAtNjUuNmMwLTkuMy0xLjctMTcuMi00LjgtMjMuOGw2MS41IDExNi4xLTI4LjUgNTQuMSAzNS45IDAgOTkuMi0xOTQuOC0zNCAwek0yNDQuMiAzMTMuOGMtMjkuNiAwLTUwLjItMjEuNS01MC4yLTUzLjggMC0zMi40IDIwLjYtNTMuOCA1MC4yLTUzLjggMjkuOCAwIDUwLjIgMjEuNCA1MC4yIDUzLjggMCAzMi4zLTIwLjQgNTMuOC01MC4yIDUzLjh6bTIwMC45LTQ3LjNjMCAzMC0xNy45IDQ4LjQtNTEuNiA0OC40LTI1LjEgMC0zNS0xMy40LTM1LTI1LjggMC0xOS4xIDE4LjEtMjQuNCA0Ny4yLTI1LjMgMTMuMS0uNSAyNy42LS42IDM5LjQtLjZsMCAzLjN6TTMzLjIgMjY4LjFsMTI4LjggMCAwLTguNWMwLTUxLjctMzMuMS03NS40LTc4LjQtNzUuNC01Ni44IDAtODMgMzAuOC04MyA3Ny42IDAgNDIuNSAyNS4zIDc0IDgyLjUgNzQgMzEuNCAwIDY4LTExLjcgNzQuNC00Ni4xbC0zMy4xIDBjLTEyIDM1LjgtODcuNyAzNi43LTkxLjItMjEuNnptOTUtMjEuNGwtOTQuNCAwYzYuOS01Ni42IDkyLjEtNTQuNyA5NC40IDB6Il19LEJkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb250YW8iLGljb246WzUxMiw1MTIsW10sImYyNmQiLCJNNDUuNCAzMDVjMTQuNCA2Ny4xIDI2LjQgMTI5IDY4LjIgMTc1TDM0IDQ4MGMtMTguNyAwLTM0LTE1LjItMzQtMzRMMCA2NkMwIDQ3LjMgMTUuMiAzMiAzNCAzMmw1Ny43IDBjLTEzLjggMTIuNi0yNi4xIDI3LjItMzYuOSA0My42LTQ1LjQgNzAtMjcgMTQ2LjgtOS40IDIyOS40ek00NzggMzJsLTkwLjIgMGMyMS40IDIxLjQgMzkuMiA0OS41IDUyLjcgODQuMUwzMDMuNCAxNDUuNGMtMTQuOS0yOS0zNy44LTUzLjMtODIuNi00My45LTI0LjYgNS4zLTQxIDE5LjMtNDguMyAzNC42LTguOCAxOC43LTEzLjIgMzkuOCA4LjIgMTQwLjMgMjEuMSAxMDAuMiAzMy43IDExNy43IDQ5LjUgMTMxLjIgMTIuOSAxMS4xIDMzLjQgMTcgNTguMyAxMS43IDQ0LjUtOS40IDU1LjctNDAuNyA1Ny40LTczLjJsMTM3LjQtMjkuNmMzLjIgNzEuNS0xOC43IDEyNS4yLTU3LjQgMTYzLjZsNTIuMSAwYzE4LjcgMCAzNC0xNS4yIDM0LTM0TDUxMiA2NmMwLTE4LjgtMTUuMi0zNC0zNC0zNHoiXX0sSGRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVsbG8iLGljb246WzUxMiw1MTIsW10sImY1ZjEiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zOTkuOCAyOTMuMkMzODMuMyAzNTguNSAzMjMuOCA0MDQuOCAyNTYgNDA0LjhTMTI4LjcgMzU4LjUgMTEyLjIgMjkzLjJjLTEuNi03LjQgMi41LTE1LjcgOS45LTE3LjRzMTUuNyAyLjUgMTcuNCA5LjljMTQgNTIuOSA2MiA5MC4xIDExNi42IDkwLjFzMTAyLjUtMzcuMiAxMTYuNi05MC4xYzEuNy03LjQgOS45LTEyLjQgMTcuNC05LjkgNy40IDEuNyAxMi40IDkuOSA5LjkgMTcuNHoiXX0scWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpc3RyaXgiLGljb246WzQ0OCw1MTIsW10sImYzZWUiLCJNNDQ4IDQ0OUwzMDEuMiAzMDAuMmMyMC0yNy45IDMxLjktNjIuMiAzMS45LTk5LjIgMC05My4xLTc0LjctMTY4LjktMTY2LjUtMTY4LjktOTEuOS0uMS0xNjYuNiA3NS43LTE2Ni42IDE2OC44Uzc0LjcgMzY5LjggMTY2LjUgMzY5LjhjMzkuOCAwIDc2LjMtMTQuMiAxMDUtMzcuOUw0MTcuNSA0ODAgNDQ4IDQ0OXpNMTY2LjUgMzMwLjhjLTcwLjYgMC0xMjguMS01OC4zLTEyOC4xLTEyOS45Uzk1LjkgNzEgMTY2LjUgNzEgMjk0LjYgMTI5LjMgMjk0LjYgMjAwLjkgMjM3LjIgMzMwLjggMTY2LjUgMzMwLjh6Il19LFZkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwZXJpc2NvcGUiLGljb246WzQ0OCw1MTIsW10sImYzZGEiLCJNMzcwIDYzLjZjLTM4LjYtNDEtODkuNS02My42LTE0My40LTYzLjYtMTE0LjcgMC0yMDguMSA5Ni4yLTIwOC4xIDIxNC40IDAgNzUuMSA1Ny44IDE1OS44IDgyLjcgMTkyLjcgMzYuNiA0OC40IDkxLjQgMTA0LjkgMTI1LjQgMTA0LjkgNDEuNiAwIDExMi45LTk0LjIgMTIwLjktMTA1IDI0LjYtMzMuMSA4Mi0xMTguMyA4Mi0xOTIuNiAwLTU2LjUtMjEuMS0xMTAuMS01OS41LTE1MC44ek0yMjYuNiA0OTMuOWMtNDIuNSAwLTE5MC0xNjcuMy0xOTAtMjc5LjQgMC0xMDcuNCA4My45LTE5Ni4zIDE5MC0xOTYuMyAxMDAuOCAwIDE4NC43IDg5IDE4NC43IDE5Ni4zIC4xIDExMi4xLTE0Ny40IDI3OS40LTE4NC43IDI3OS40ek0zMzggMjA2LjhjMCA1OS4xLTUxLjEgMTA5LjctMTEwLjggMTA5LjctMTAwLjYgMC0xNTAuNy0xMDguMi05Mi45LTE4MS44bDAgLjRjMCAyNC41IDIwLjEgNDQuNCA0NC44IDQ0LjRzNDQuOC0xOS45IDQ0LjgtNDQuNGMwLTE4LjItMTEuMS0zMy44LTI2LjktNDAuNyA3Ni42LTE5LjIgMTQxIDM5LjMgMTQxIDExMi40eiJdfSxqZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXhwZWRpdGVkc3NsIixpY29uOls1MTIsNTEyLFtdLCJmMjNlIiwiTTI1NiA0My40YTIxMi42IDIxMi42IDAgMSAwIDAgNDI1LjIgMjEyLjYgMjEyLjYgMCAxIDAgMC00MjUuMnpNMTU4LjYgMTc2LjNjMC01My43IDQzLjctOTcuNCA5Ny40LTk3LjRzOTcuNCA0My43IDk3LjQgOTcuNGwwIDI2LjZjMCA1LTMuOSA4LjktOC45IDguOWwtMTcuNyAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMjYuNmMwLTgyLjEtMTI0LTgyLjEtMTI0IDBsMCAyNi42YzAgNS0zLjkgOC45LTguOSA4LjlsLTE3LjcgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjYgLjIgMHpNMzk3LjcgMzgwYzAgOS43LTggMTcuNy0xNy43IDE3LjdsLTI0OCAwYy05LjcgMC0xNy43LTgtMTcuNy0xNy43bDAtMTQxLjdjMC05LjcgOC0xNy43IDE3LjctMTcuN2wyNDggMGM5LjcgMCAxNy43IDggMTcuNyAxNy43bDAgMTQxLjd6bS0yNDgtMTM3LjNsMCAxMzIuOWMwIDIuNS0xLjkgNC40LTQuNCA0LjRsLTguOSAwYy0yLjUgMC00LjQtMS45LTQuNC00LjRsMC0xMzIuOWMwLTIuNSAxLjktNC40IDQuNC00LjRsOC45IDBjMi41IDAgNC40IDEuOSA0LjQgNC40em0xNDEuNyA0OC43YzAgMTMtNy4yIDI0LjQtMTcuNyAzMC40bDAgMzEuNmMwIDUtMy45IDguOS04LjkgOC45bC0xNy43IDBjLTUgMC04LjktMy45LTguOS04LjlsMC0zMS42Yy0xMC41LTYuMS0xNy43LTE3LjQtMTcuNy0zMC40IDAtMTkuNyAxNS44LTM1LjQgMzUuNC0zNS40czM1LjUgMTUuOCAzNS41IDM1LjR6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCAxNy43YTIzMC4zIDIzMC4zIDAgMSAxIDAgNDYwLjYgMjMwLjMgMjMwLjMgMCAxIDEgMC00NjAuNnoiXX0sVWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5hcHN0ZXIiLGljb246WzUxMiw1MTIsW10sImYzZDIiLCJNMzA2LjMgMzczLjZjLTE0LjIgMTMuNi0zMS4zIDI0LjEtNTAuNCAzMC41LTE5LTYuNC0zNi4yLTE2LjktNTAuMy0zMC41bDEwMC43IDB6bTQ0LTE5OS42YzIwLTE2LjkgNDMuNi0yOS4yIDY5LjYtMzYuMmwwIDE2MS4yYzAgMjE5LjQtMzI4IDIxNy42LTMyOCAuM2wwLTE2MS42YzI1LjkgNi45IDQ5LjYgMTkuNiA2OS41IDM2LjQgNTYuOC00MCAxMzIuNS0zOS45IDE4OC45LS4xek0xNDEuNSAxMTUuNWM2NC40LTYwIDE2NC4zLTYwLjEgMjI4LjktLjItNy4xIDMuNS0xMy45IDcuMy0yMC42IDExLjUtNTguNy0zMC41LTEyOS4yLTMwLjQtMTg3LjkgLjEtNi4zLTQtMTMuOS04LjItMjAuNC0xMS40ek01MS44IDkzLjJsMCA2OS4zYy01OC40IDM2LjUtNTguNCAxMjEuMSAuMSAxNTguMyAyNi40IDI0NS4xIDM4MS43IDI0MC4zIDQwNy42IDEuNWwuMy0xLjdjNTguNy0zNi4zIDU4LjktMTIxLjcgLjItMTU4LjJsMC02OS4yYy0xNy4zIC41LTM0IDMtNTAuMSA3LjQtODItOTEuNS0yMjUuNS05MS41LTMwNy41IC4xLTE2LjMtNC40LTMzLjEtNy01MC42LTcuNXpNMjY3LjIgMzUyczM2LS4zIDYxLjMtMS41YzEwLjItLjUgMjEuMS00IDI1LjUtNi41IDI2LjMtMTUuMSAyNS40LTM5LjIgMjYuMi00Ny40LTc5LjUtLjYtOTkuOS0zLjktMTEzIDU1LjR6TTEzMS43IDI5Ni43Yy44IDguMi0uMSAzMi4zIDI2LjIgNDcuNCA0LjQgMi41IDE1LjIgNiAyNS41IDYuNSAyNS4zIDEuMSA2MS4zIDEuNSA2MS4zIDEuNS0xMy4yLTU5LjQtMzMuNy01Ni4xLTExMy01NS40ek0zMDAuOCA0MjAuMWMtMy4yLTUuMy02LjktNy4zLTYuOS03LjMtMjQuOCA3LjMtNTIuMiA2LjktNzUuOSAwIDAgMC0yLjkgMS41LTYuNCA2LjYtMi44IDQuMS0zLjcgOS42LTMuNyA5LjYgMjkuMSAxNy42IDY3LjEgMTcuNiA5Ni4yIDAtLjEtLjEtLjMtNC0zLjMtOC45eiJdfSxXZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVsaWNpb3VzIixpY29uOls0NDgsNTEyLFtdLCJmMWE1IiwiTTQ0Ni42IDY4Yy0uNC0xLjUtLjktMy0xLjQtNC41LS45LTIuNS0yLTQuOC0zLjMtNy4xLTEuNC0yLjQtMy00LjgtNC43LTYuOS0yLjEtMi41LTQuNC00LjgtNi45LTYuOC0xLjEtLjktMi4yLTEuNy0zLjMtMi41LTEuMy0uOS0yLjYtMS43LTQtMi40LTEuOC0xLTMuNi0xLjgtNS41LTIuNS0xLjctLjctMy41LTEuMy01LjQtMS43LTMuOC0xLTcuOS0xLjUtMTItMS41bC0zNTIgMEMyMS42IDMyIC4xIDUzLjUgLjEgODBsMCAzNTJjMCA0LjEgLjUgOC4yIDEuNSAxMiAyIDcuNyA1LjggMTQuNiAxMSAyMC4zIDEgMS4xIDIuMSAyLjIgMy4zIDMuMyA1LjcgNS4yIDEyLjYgOSAyMC4zIDExIDMuOCAxIDcuOSAxLjUgMTIgMS41bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyLjFjLS4xLTQuMS0uNi04LjItMS42LTEyek00MTYuMSA0MzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNzYgMCAwLTE5Mi0xOTIgMCAwLTE3NmMwLTguOCA3LjItMTYgMTYtMTZsMTc2IDAgMCAxOTIgMTkyIDAgMCAxNzZ6Il19LEdkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJndWlsZGVkIixpY29uOls0NDgsNTEyLFtdLCJlMDdlIiwiTTQ0My45IDY0TDUgNjRjMCAxMDMuMyAyMi4yIDE4MC4xIDQzLjQgMjIyLjQgNjQuMSAxMjcuOCAxNzYgMTYxLjYgMTc3LjMgMTYxLjYgNTUuNy0yMC41IDEwNC41LTU2LjMgMTQwLjYtMTAzLjUgMjUuOS0zMy45IDUzLjEtODcuMiA2NS45LTE0NS44bC0yNTkuOSAwYzQuMSAzNi40IDIyLjIgNjcuOSA0NS4xIDg2LjlsODguNiAwYy0xNyAyOC4yLTQ4LjIgNTQuNC04MC41IDY5LjUtMzEuMi0xMy4zLTY5LjEtNDYuNS05Ni41LTk4LjQtMjYuNy01My44LTI3LjEtMTA1LjktMjcuMS0xMDUuOWwzMzYuMSAwYzQtMjguOCA1LjktNTcuOSA1LjktODYuOXoiXX0sWWRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9ic2lkaWFuIixpY29uOlszODQsNTEyLFtdLCJlODc5IiwiTTE0Mi4zIDMyMC4zYzM2LjEtOC4yIDcwLjMtMTEgMTAxLjMgLjcgMzEuOCAxMS45IDYxLjcgMzkuNiA4Ni43IDk2LTguMSAxNy43LTEyLjQgMzYuOS0xNC43IDUzLjgtMy4xIDIyLjktMjUuNCA0MC43LTQ3LjcgMzQuNi0zMS43LTguNy02OC4zLTIyLjMtMTAxLjMtMjQuOS00LjQtLjMtNTAuNi0zLjgtNTAuNi0zLjgtMS43LS4xLTMuNC0uNC01LjEtLjggMzEuNS02NC4yIDM4LjItMTE1LjEgMzEuMy0xNTUuNHpNNTUgMjE5LjVjMjIuMyAxNC44IDQ5LjUgMzcuOCA2NC4xIDczLjYgMTYuMSAzOS40IDE3LjggOTUuNy0yMS42IDE3Ni4xLTEtLjgtMi4xLTEuNy0zLTIuN0w3LjQgMzc2LjhjLTkuNS05LjgtMTIuMS0yNC40LTYuNS0zNi45IC42LTEuMyA0NC42LTk4LjMgNTQuMS0xMjAuNHptMjY0LjMtOTEuM2M0LjkgNi4yIDcuNCAxNCA3LjQgMjEuOSAuMSAyMC44IDEuOCA2My42IDEzLjMgOTEuMiAxMS4yIDI2LjggMzEuOCA1NS44IDQyLjUgNzAgNC4xIDUuNSA0LjggMTIuOSAxLjMgMTguNy03LjYgMTIuOC0yMi42IDM3LjUtNDMuOCA2OS4yLS4zIC40LS42IC45LS44IDEuMy0yNS4yLTUyLjItNTUuOS04MC43LTkwLjQtOTMuNi05LjYtMy42LTE5LjUtNi0yOS40LTcuMy0xNy44LTQ1LjgtMjMuMi03OS43LTIyLTEwNi40IDEuMi0yNy40IDkuMi00Ny44IDE4LjItNjYuMyA4LjktMTguMSAxOS44LTM1LjkgMjQuOS01NS43IDMuMi0xMi41IDQuMi0yNS44IDEuNy00MC45bDc3LjEgOTh6TTE4NC4yIDE0LjFjMTAuMy05LjIgMjQuNi0xMC44IDM2LjMtNS41IDkuNiAyNC42IDkuNyA0Mi44IDUuNiA1OC44LTQuNiAxNy44LTE0LjEgMzMtMjMuOSA1Mi44LTkuNiAxOS41LTE4LjQgNDItMTkuNyA3Mi4zLTEuMiAyNy45IDQuMSA2MS45IDIwLjQgMTA1LjgtMjEtLjYtNDIuNSAyLjYtNjMuNyA3LjQtMS43LTYuNC0zLjgtMTIuNC02LjEtMTguMi0xNy4zLTQyLjItNDkuOS02Ny45LTc0LjEtODMuMyAzLjEtMTguNyA4LjItNTUuNCAxMS42LTc3LjUgMS4yLTcuNiA0LjktMTQuNiAxMC43LTE5LjhMMTg0LjIgMTQuMXoiXX0sS2RyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Inhib3giLGljb246WzUxMiw1MTIsW10sImY0MTIiLCJNMzY5LjkgMzE4LjJjNDQuMyA1NC4zIDY0LjcgOTguOCA1NC40IDExOC43LTcuOSAxNS4xLTU2LjcgNDQuNi05Mi42IDU1LjktMjkuNiA5LjMtNjguNCAxMy4zLTEwMC40IDEwLjItMzguMi0zLjctNzYuOS0xNy40LTExMC4xLTM5LTI3LjktMTguMi0zNC4yLTI1LjctMzQuMi00MC42IDAtMjkuOSAzMi45LTgyLjMgODkuMi0xNDIuMSAzMi0zMy45IDc2LjUtNzMuNyA4MS40LTcyLjYgOS40IDIuMSA4NC4zIDc1LjEgMTEyLjMgMTA5LjV6TTE4OC42IDE0My44Yy0yOS43LTI2LjktNTguMS01My45LTg2LjQtNjMuNC0xNS4yLTUuMS0xNi4zLTQuOC0yOC43IDguMS0yOS4yIDMwLjQtNTMuNSA3OS43LTYwLjMgMTIyLjQtNS40IDM0LjItNi4xIDQzLjgtNC4yIDYwLjUgNS42IDUwLjUgMTcuMyA4NS40IDQwLjUgMTIwLjkgOS41IDE0LjYgMTIuMSAxNy4zIDkuMyA5LjktNC4yLTExLS4zLTM3LjUgOS41LTY0IDE0LjMtMzkgNTMuOS0xMTIuOSAxMjAuMy0xOTQuNHptMzExLjYgNjMuNWMtMTYuOS04MC02Ny41LTEzMC4zLTc0LjYtMTMwLjMtNy4zIDAtMjQuMiA2LjUtMzYgMTMuOS0yMy4zIDE0LjUtNDEgMzEuNC02NC4zIDUyLjggNDIuNCA1My4zIDEwMi4yIDEzOS40IDEyMi45IDIwMi4zIDYuOCAyMC43IDkuNyA0MS4xIDcuNCA1Mi4zLTEuNyA4LjUtMS43IDguNSAxLjQgNC42IDYuMS03LjcgMTkuOS0zMS4zIDI1LjQtNDMuNSA3LjQtMTYuMiAxNS00MC4yIDE4LjYtNTguNyA0LjMtMjIuNSAzLjktNzAuOC0uOC05My40ek0xNDEuMyA0M2M0Ny43LTIuNSAxMDkuNyAzNC41IDExNC4zIDM1LjQgLjcgLjEgMTAuNC00LjIgMjEuNi05LjcgNjMuOS0zMS4xIDk0LTI1LjggMTA3LjQtMjUuMi02My45LTM5LjMtMTUyLjctNTAtMjMzLjktMTEuNy0yMy40IDExLjEtMjQgMTEuOS05LjQgMTEuMnoiXX0sWmRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVudGFwcGQiLGljb246WzY0MCw1MTIsW10sImY0MDUiLCJNNDAxLjUgNDkuOUMzMjEuNyAyMTAgMzE2LjkgMjAyLjQgMzEzLjYgMjIzLjFsLTUuMiAzMi44Yy0xLjkgMTItNi42IDIzLjUtMTMuNyAzMy40TDE0NS44IDQ5Ny4xYy03LjYgMTAuNi0yMC40IDE2LjItMzMuNCAxNC42LTQwLjMtNS03Ny44LTMyLjItOTUuMy02OC41LTUuNy0xMS44LTQuNS0yNS44IDMuMS0zNi40TDE2OS4xIDE5OC45YzcuMS05LjkgMTYuNC0xOCAyNy4yLTIzLjdsMjkuMy0xNS41YzE4LjUtOS44IDkuNy0xMS45IDEzNS42LTEzOC45IDEtNC44IDEtNy4zIDMuNi04IDMtLjcgNi42LTEgNi4zLTQuNmwtLjQtNC42Yy0uMi0xLjkgMS4zLTMuNiAzLjItMy42IDQuNS0uMSAxMy4yIDEuMiAyNS42IDEwIDEyLjMgOC45IDE2LjQgMTYuOCAxNy43IDIxLjEgLjYgMS44LS42IDMuNy0yLjQgNC4ybC00LjUgMS4xYy0zLjQgLjktMi41IDQuNC0yLjMgNy40IC4xIDIuOC0yLjMgMy42LTYuNSA2LjF6TTIzMC4zIDM2LjRjMy40IC45IDIuNSA0LjQgMi4zIDcuNC0uMiAyLjcgMi4xIDMuNSA2LjQgNiA3LjkgMTUuOSAxNS4zIDMwLjUgMjIuMiA0NCAuNyAxLjMgMi4zIDEuNSAzLjMgLjUgMTEuMi0xMiAyNC42LTI2LjIgNDAuNS00Mi42IDEuMy0xLjQgMS40LTMuNSAuMS00LjktOC04LjItMTYuNS0xNi45LTI1LjYtMjYuMS0xLTQuNy0xLTcuMy0zLjYtOC0zLS44LTYuNi0xLTYuMy00LjYgLjMtMy4zIDEuNC04LjEtMi44LTguMi00LjUtLjEtMTMuMiAxLjEtMjUuNiAxMC0xMi4zIDguOS0xNi40IDE2LjgtMTcuNyAyMS4xLTEuNCA0LjIgMy42IDQuNiA2LjggNS40ek02MjAuMiA0MDYuN0w0NzEuNCAxOTguOGMtMTMuMi0xOC41LTI2LjYtMjMuNC01Ni40LTM5LjEtMTEuMi01LjktMTQuMi0xMC45LTMwLjUtMjguOS0xLTEuMS0yLjktLjktMy42IC41LTQ2LjMgODguOC00Ny4xIDgyLjgtNDkgOTQuOC0xLjcgMTAuNy0xLjMgMjAgLjMgMjkuOCAxLjkgMTIgNi42IDIzLjUgMTMuNyAzMy40TDQ5NC44IDQ5Ny4yYzcuNiAxMC42IDIwLjIgMTYuMiAzMy4xIDE0LjcgNDAuMy00LjkgNzgtMzIgOTUuNy02OC42IDUuNC0xMS45IDQuMy0yNS45LTMuNC0zNi42eiJdfSxRZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXBsdXMtZyIsaWNvbjpbNjQwLDUxMixbXSwiZjBkNSIsIk0zODYuMyAyMjguNWMxLjggOS43IDMuMSAxOS40IDMuMSAzMiAwIDEwOS44LTczLjYgMTg3LjUtMTg0LjQgMTg3LjUtMTA2LjEgMC0xOTItODUuOS0xOTItMTkyUzk4LjkgNjQgMjA1IDY0YzUxLjkgMCA5NS4xIDE4LjkgMTI4LjYgNTAuM2wtNTIuMSA1MGMtMTQuMS0xMy42LTM5LTI5LjYtNzYuNS0yOS42LTY1LjUgMC0xMTguOSA1NC4yLTExOC45IDEyMS4zUzEzOS41IDM3Ny4zIDIwNSAzNzcuM2M3NiAwIDEwNC41LTU0LjcgMTA5LTgyLjhsLTEwOSAwIDAtNjYgMTgxLjMgMCAwIDB6bTE4NS40IDYuNGwwLTU1LjctNTYgMCAwIDU1LjctNTUuNyAwIDAgNTYgNTUuNyAwIDAgNTUuNyA1NiAwIDAtNTUuNyA1NS43IDAgMC01Ni01NS43IDB6Il19LFhkcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXRodWItYWx0IixpY29uOls1MTIsNTEyLFtdLCJmMTEzIiwiTTIwMi4xIDMyOC43YzAgMjAuOS0xMC45IDU1LjEtMzYuNyA1NS4xcy0zNi43LTM0LjItMzYuNy01NS4xIDEwLjktNTUuMSAzNi43LTU1LjEgMzYuNyAzNC4yIDM2LjcgNTUuMXpNNDk2IDI3OC4yYzAgMzEuOS0zLjIgNjUuNy0xNy41IDk1LTM3LjkgNzYuNi0xNDIuMSA3NC44LTIxNi43IDc0LjgtNzUuOCAwLTE4Ni4yIDIuNy0yMjUuNi03NC44LTE0LjYtMjktMjAuMi02My4xLTIwLjItOTUgMC00MS45IDEzLjktODEuNSA0MS41LTExMy42LTUuMi0xNS44LTcuNy0zMi40LTcuNy00OC44IDAtMjEuNSA0LjktMzIuMyAxNC42LTUxLjggNDUuMyAwIDc0LjMgOSAxMDguOCAzNiAyOS02LjkgNTguOC0xMCA4OC43LTEwIDI3IDAgNTQuMiAyLjkgODAuNCA5LjIgMzQtMjYuNyA2My0zNS4yIDEwNy44LTM1LjIgOS44IDE5LjUgMTQuNiAzMC4zIDE0LjYgNTEuOCAwIDE2LjQtMi42IDMyLjctNy43IDQ4LjIgMjcuNSAzMi40IDM5IDcyLjMgMzkgMTE0LjJ6bS02NC4zIDUwLjVjMC00My45LTI2LjctODIuNi03My41LTgyLjYtMTguOSAwLTM3IDMuNC01NiA2LTE0LjkgMi4zLTI5LjggMy4yLTQ1LjEgMy4yLTE1LjIgMC0zMC4xLS45LTQ1LjEtMy4yLTE4LjctMi42LTM3LTYtNTYtNi00Ni44IDAtNzMuNSAzOC43LTczLjUgODIuNiAwIDg3LjggODAuNCAxMDEuMyAxNTAuNCAxMDEuM2w0OC4yIDBjNzAuMyAwIDE1MC42LTEzLjQgMTUwLjYtMTAxLjN6bS04Mi42LTU1LjFjLTI1LjggMC0zNi43IDM0LjItMzYuNyA1NS4xczEwLjkgNTUuMSAzNi43IDU1LjEgMzYuNy0zNC4yIDM2LjctNTUuMS0xMC45LTU1LjEtMzYuNy01NS4xeiJdfSxKZHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2V0LXBvY2tldCIsaWNvbjpbNDQ4LDUxMixbXSwiZjI2NSIsIk00MDcuNiA2NGwtMzY3IDBDMTguNSA2NCAwIDgyLjUgMCAxMDQuNkwwIDIzOS44QzAgMzY0LjUgOTkuNyA0NjQgMjI0LjIgNDY0IDM0OC4yIDQ2NCA0NDggMzY0LjUgNDQ4IDIzOS44bDAtMTM1LjJDNDQ4IDgyLjIgNDMwLjMgNjQgNDA3LjYgNjR6bS0xNjIgMjY4LjVjLTEyLjQgMTEuOC0zMS40IDExLjEtNDIuNCAwLTExMy43LTEwOC45LTExNC45LTEwNS4xLTExNC45LTEyMy4yIDAtMTYuOSAxMy44LTMwLjcgMzAuNy0zMC43IDE3IDAgMTYuMSAzLjggMTA1LjIgODkuMyA5MC42LTg2LjkgODguNi04OS4zIDEwNS41LTg5LjNzMzAuNyAxMy44IDMwLjcgMzAuN2MwIDE3LjgtMi45IDE1LjctMTE0LjggMTIzLjJ6Il19LGU0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnbGlkZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhNSIsIk0yNTIuOCAxNDguNmMwIDguOC0xLjYgMTcuNy0zLjQgMjYuNC01LjggMjcuOC0xMS42IDU1LjgtMTcuMyA4My42LTEuNCA2LjMtOC4zIDQuOS0xMy43IDQuOS0yMy44IDAtMzAuNS0yNi0zMC41LTQ1LjUgMC0yOS4zIDExLjItNjguMSAzOC41LTgzLjEgNC4zLTIuNSA5LjItNC4yIDE0LjEtNC4yIDExLjQgMCAxMi4zIDguMyAxMi4zIDE3Ljl6TTQ0OCA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTM4NCAyNjdjMC01LjEtMjAuOC0zNy43LTI1LjUtMzkuNS0yLjItLjktNy4yLTIuMy05LjYtMi4zLTIzLjEgMC0zOC43IDEwLjUtNTguMiAyMS41bC0uNS0uNWM0LjMtMjkuNCAxNC42LTU3LjIgMTQuNi04Ny40IDAtNDQuNi0yMy44LTYyLjctNjcuNS02Mi43LTcxLjcgMC0xMDggNzAuOC0xMDggMTIzLjUgMCA1NC43IDMyIDg1IDg2LjMgODUgNy41IDAgNi45LS42IDYuOSAyLjMtMTAuNSA4MC4zLTU2LjUgODIuOS01Ni41IDU4LjkgMC0yNC40IDI4LTM2LjUgMjguMy0zOC0uMi03LjYtMjkuMy0xNy4yLTM2LjctMTcuMi0yMS4xIDAtMzIuNyAzMy0zMi43IDUwLjYgMCAzMi4zIDIwLjQgNTQuNyA1My4zIDU0LjcgNDguMiAwIDgzLjQtNDkuNyA5NC4zLTkxLjcgOS40LTM3LjcgNy0zOS40IDEyLjMtNDIuMSAyMC0xMC4xIDM1LjgtMTYuOCA1OC40LTE2LjggMTEuMSAwIDE5IDIuMyAzNi43IDUuMiAxLjggLjEgNC4xLTEuNyA0LjEtMy41eiJdfSx0NHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0eSIsaWNvbjpbNTEyLDUxMixbXSwiZjM3YSIsIk04Ni41IDY3LjJjOTUuNC04OS4yIDI0Ni4xLTkxLjIgMzQzLjEgMy44IDE0LjMgMTQuMS02LjQgMzcuMS0yMi40IDIxLjUtODQuOC04Mi40LTIxNS44LTgwLjMtMjk4LjktMy4yLTE2LjMgMTUuMS0zNi41LTguMy0yMS44LTIyLjF6bTk4LjkgNDE4LjZjMTkuMyA1LjcgMjkuMy0yMy42IDcuOS0zMC0xMTIuMi0zMy45LTE3NS44LTE0OS43LTE0Ny41LTI2MSA1LTE5LjYtMjQuOS0yOC4xLTMwLjItNy4xLTMyLjEgMTI3LjQgNDEuMSAyNTkuOCAxNjkuOCAyOTguMXptMTQ4LjEtMmMxMjEuOS00MC4yIDE5Mi45LTE2Ni45IDE2NC40LTI5MS00LjUtMTkuNy0zNC45LTEzLjgtMzAgNy45IDI0LjIgMTA3LjctMzcuMSAyMTcuOS0xNDMuMiAyNTMuNC0yMS4yIDctMTAuNCAzNiA4LjggMjkuN3ptLTYyLjktNzlsLjItNzEuOGMwLTguMi02LjYtMTQuOC0xNC44LTE0LjhzLTE0LjggNi43LTE0LjggMTQuOGwtLjIgNzEuOGMwIDguMiA2LjYgMTQuOCAxNC44IDE0LjhzMTQuOC02LjYgMTQuOC0xNC44em03MS0yNjljMi4xIDkwLjkgNC43IDEzMS45LTg1LjUgMTMyLjUtOTIuNS0uNy04Ni45LTQ0LjMtODUuNS0xMzIuNSAwLTIxLjgtMzIuNS0xOS42LTMyLjUgMGwwIDcxLjZjMCA2OS4zIDYwLjcgOTAuOSAxMTggOTAuMSA1Ny4zIC44IDExOC0yMC44IDExOC05MC4xbDAtNzEuNmMwLTE5LjYtMzIuNS0yMS44LTMyLjUgMHoiXX0scjRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndwZXhwbG9yZXIiLGljb246WzUxMiw1MTIsW10sImYyZGUiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptNDgwIDBhMjI0IDIyNCAwIDEgMCAtNDQ4IDAgMjI0IDIyNCAwIDEgMCA0NDggMHpNMTYwLjkgMTI0LjZsODYuOSAzNy4xLTM3LjEgODYuOS04Ni45LTM3LjEgMzcuMS04Ni45em0xMTAgMTY5LjFsNDYuNiA5NC0xNC42IDAtNTAtMTAwLTQ4LjkgMTAwLTE0IDAgNTEuMS0xMDYuOS0yMi4zLTkuNCA2LTE0IDY4LjYgMjkuMS02IDE0LjMtMTYuNS03LjF6TTI1OS4xIDE3Ny40bDY4LjYgMjkuNC0yOS40IDY4LjMtNjguMy0yOS4xIDI5LjEtNjguNnptODAuMyA0Mi45bDU0LjYgMjMuMS0yMy40IDU0LjMtNTQuMy0yMy4xIDIzLjEtNTQuM3oiXX0sYTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZ2Fwb3J0IixpY29uOls1MTIsNTEyLFtdLCJmNWEzIiwiTTIyMi41IDIwOS42bDAgNjYuMiAzMy41IDMzLjUgMzMuMy0zMy4zIDAtNjYuNC0zMy40LTMzLjQtMzMuNCAzMy40ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQwMS4xIDQyMi40bC0yNi4xIDE5LjItMjYtMTkuMiAwLTY1LjUtMzMuNC0zMy40LTMzLjQgMzMuNCAwIDY1LjUtMjYuMiAxOS4yLTI2LjEtMTkuMiAwLTY1LjUtMzMuNC0zMy40LTMzLjUgMzMuNCAwIDY1LjUtMjYuMSAxOS4yLTI2LjEtMTkuMiAwLTg3IDU5LjUtNTkuNSAwLTg3LjkgNTkuNS01OS41IDAtNzUuNiAyNi4xLTE5LjIgMjYuMSAxOS4yIDAgNzUuNiA1OS41IDU5LjUgMCA4Ny42IDU5LjcgNTkuNyAwIDg3LjEtLjEgMHoiXX0saTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxlZXRjb2RlIixpY29uOls0NDgsNTEyLFtdLCJlODZhIiwiTTIzNS40IDkuM0MyNDYuNS0yLjUgMjY1LjEtMy4yIDI3NyA3LjlzMTIuNSAyOS44IDEuNCA0MS42bC00MyA0NmMyMS41IDMuMyA0Mi4xIDExLjggNTkuMSAyNS42bDc0LjYgNjAuM2MxMi42IDEwLjIgMTQuNiAyOC44IDQuNCA0MS40cy0yOC43IDE0LjYtNDEuNCA0LjRsLTc0LjYtNjAuM2MtMjYuMi0yMS4xLTcxLjktMTguMi05NC41IDUuOUw4MSAyNjFjLTIxLjUgMjMtMTkuMSA2MCA1LjYgODQuMmw5MS4yIDg5LjRjMjQuOSAyNCA2NS42IDI0IDkwLjEtLjRsNTEuMS01MWMxMS41LTExLjUgMzAuMS0xMS41IDQxLjYgLjFzMTEuNCAzMC4yLS4xIDQxLjdsLTUxLjEgNTFjLTQ3LjEgNDcuMS0xMjQgNDcuNy0xNzEuOSAxLjZsLTkyLTkwLjJDLTEuNCAzNDEuMy02IDI2Ny45IDM4IDIyMC43TDIzNS40IDkuM3pNNDExLjcgMjczLjJjMTYuMiAwIDI5LjQgMTMuMiAyOS40IDI5LjVzLTEzLjIgMjkuNS0yOS40IDI5LjVsLTIxNi45IDBjLTE2LjIgMC0yOS40LTEzLjItMjkuNC0yOS41czEzLjItMjkuNSAyOS40LTI5LjVsMjE2LjkgMHoiXX0sczRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1kYiIsaWNvbjpbNTc2LDUxMixbXSwiZjhjYSIsIk0xNy40IDE2MC40bC0xMC40IDE5MS42IDQzLjkgMCA1LjYtNzkuOCAyNy45IDc5LjggNDQuNyAwIDI1LjUtNzcuNCA0LjggNzcuNCA0NS41IDAtMTIuOC0xOTEuNi00NS41IDAtNDAuNyAxMTcuMy00Mi4zLTExNy4zLTQ2LjMgMHptMjgxIDBsLTQ3LjkgMCAwIDE5MS42IDQ3LjkgMHM5NSAuOCA5NC4yLTk1LjhjLS44LTk0LjItOTQuMi05NS44LTk0LjItOTUuOGwwIDB6bS0xLjIgMTQ2LjVsMC0xMDIuMXM0NiA0LjMgNDYuOCA1MC42LTQ2LjggNTEuNS00Ni44IDUxLjVsMCAwem0yMzguMy03NC4yYzcuMi0xMS40IDEwLTI1IDgtMzguMy01LjMtMzUuOC01NS4xLTM0LjMtNTUuMS0zNC4zbC01MS45IDAgMCAxOTEuNiA0NS41IDBzODcgNC44IDg3LTYzLjhjMC00My4xLTMzLjUtNTUuMS0zMy41LTU1LjFsMCAwem0tNTEuOS0zMS45czEzLjYtMS42IDE2IDkuNmMxLjQgNi43LTQgMTItNCAxMmwtMTIgMCAwLTIxLjZ6bS0uMSAxMDkuNWwuMS0yNC45IDAtMTguMiAuMSAwczQxLjYtNC43IDQxLjIgMjIuNGMtLjMgMjUuNy00MS4zIDIwLjctNDEuMyAyMC43bDAgMHoiXX0sbjRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhZ2U0IixpY29uOls1MTIsNTEyLFtdLCJmM2Q3IiwiTTI1NiA1MDRDMTE5IDUwNCA4IDM5MyA4IDI1NlMxMTkgOCAyNTYgOGMyMC45IDAgNDEuMyAyLjYgNjAuNyA3LjVMNTAuMyAzOTIgMjU2IDM5MiAyNTYgNTA0em0wLTE0My42bDAtMjEzLjYtMTQ5LjQgMjEzLjYgMTQ5LjQgMHpNMzUyIDM5MmwwIDkyLjdjNDUuNy0xOS4yIDg0LjUtNTEuNyAxMTEuNC05Mi43TDM1MiAzOTJ6bTU3LjQtMTM4LjJsLTIxLjIgOC40IDIxLjIgOC4zIDAtMTYuN3ptLTIwLjMgNTQuNWMtNi43IDAtOCA2LjMtOCAxMi45bDAgNy43IDE2LjIgMCAwLTEwYzAtNS45LTIuMy0xMC42LTguMi0xMC42ek01MDQgMjU2YzAgMzcuMy04LjIgNzIuNy0yMyAxMDQuNGwtMTI5IDAgMC0zMzMuMUM0NDEuMyA2NC44IDUwNCAxNTMuMSA1MDQgMjU2ek0zNjguNCAxNDMuNmw2OC4yIDAgMC00Ny42LTEzLjkgMCAwIDMyLjYtMTMuOSAwIDAtMjkuNi0xMy45IDAgMCAyOS42LTEyLjcgMCAwLTMyLjYtMTMuOSAwIDAgNDcuNiAuMSAwem02OC4xIDE4NS4zbC0yNi41IDAgMC0xMWMwLTE1LjQtNS42LTI1LjItMjAuOS0yNS4yLTE1LjQgMC0yMC43IDEwLjYtMjAuNyAyNS45bDAgMjUuMyA2OC4yIDAgMC0xNS0uMSAwem0wLTEwM2wtNjguMiAyOS43IDAgMTIuNCA2OC4yIDI5LjUgMC0xNi42LTE0LjQtNS43IDAtMjYuNSAxNC40LTUuOSAwLTE2Ljl6bS00LjgtNjguNWwtMzUuNiAwIDAgMjYuNiAxMy45IDAgMC0xMi4yIDExIDBjOC42IDE1LjggMS4zIDM1LjMtMTguNiAzNS4zLTIyLjUgMC0yOC4zLTI1LjMtMTUuNS0zNy43bC0xMS42LTEwLjZjLTE2LjIgMTcuNS0xMi4yIDYzLjkgMjcuMSA2My45IDM0IDAgNDQuNy0zNS45IDI5LjMtNjUuM3oiXX0sbzRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoZS1yZWQteWV0aSIsaWNvbjpbNTEyLDUxMixbXSwiZjY5ZCIsIk00ODguNyAyNDEuN2wyMC43IDcuMWMtOS42LTIzLjktMjMuOS0zNy0zMS43LTQ0LjhsNy4xLTE4LjJjLjIgMCAxMi4zLTI3LjgtMi41LTMwLjctLjYtMTEuMy02LjYtMjctMTguNC0yNy03LjYtMTAuNi0xNy43LTEyLjMtMzAuNy01LjktOS4xIDQuNC0xNy42IDEwLTI1LjMgMTYuNS01LjMtNi40LTMgLjQtMy0yOS44LTM3LjEtMjQuMy00NS40LTExLjctNzQuOCAzbC41IC41Yy0yMi03LjctNDUuMS0xMi4yLTY4LjQtMTMuMy01LjUtOC43LTE4LjYtMTkuMS0yNS4xLTI1LjFsMjQuOCA3LjFjLTUuNS01LjUtMjYuOC0xMi45LTM0LjItMTUuMiAxOC4yLTQuMSAyOS44LTIwLjggNDIuNS0zMy0zNC45LTEwLjEtNjcuOS01LjktOTcuOSAxMS44bDEyLTQ0LjItMS44LS41Yy0zMS42IDI0LjItMzMgNDEuOS0zMy43IDQ1LjUtLjktMi40LTYuMy0xOS42LTE1LjItMjctMy4zIDguMS0zLjUgMTcuMS0uNSAyNS4zIDMgOC40IDUuOSAxNC44IDguNCAxOC45LTE2LTMuMy0yOC4zLTQuOS00OS4yIDBsLTMuNyAwIDMzIDE0LjNjLTIwLjIgMTguOS0zNi4xIDQxLjktNDYuNyA2Ny40bC0xLjcgOC40IDEuNyAxLjcgNy42LTQuN2MtMy4zIDExLjYtNS4zIDE5LjQtNi42IDI1LjgtMTAuOSAxMi4yLTIwLjIgMjUuOC0yNy44IDQwLjMtMTUgMS0zMS44IDEwLjgtNDAuMyAxNC4zbDMgMy40IDI4LjggMWMtLjUgMS0uNyAyLjItMS4yIDMuMi03LjMgNi40LTM5LjggMzcuNy0zMyA4MC43bDIwLjItMjIuNGMuNSAxLjcgLjcgMy40IDEuMiA1LjIgMCAyNS41IC40IDg5LjYgNjQuOSAxNTAuNSA0My42IDQwIDk2IDYwLjIgMTU3LjUgNjAuMiAxMjEuNyAwIDIyMy04Ny4zIDIyMy0yMTEuNSA2LjgtOS43LTEuMiAzIDE2LjctMjUuMWwxMyAxNC4zIDIuNS0uNWMtMS44LTExLjctNC44LTIzLjEtOC45LTM0LjItMS41LTQuOC0zLjgtOS4zLTYuOC0xMy4zbDAgMHpNMzk4LjUgMTExLjJsLS41IDIxLjljNS41IDE4LjEgMTYuOSAxNy4yIDIyLjQgMTcuMmwtMy40LTQuNyAyMi40LTUuNGMtOSAuNS0xOCAuNS0yNyAwIDEyLjgtMi4xIDMzLjMtMjkgNDMtMTEuMyAzLjQgNy42IDYuNCAxNy4yIDkuMyAyNy44bDEuNy01LjljLTEuMy01LTEuOC0xMC4xLTEuNy0xNS4yIDUuNCAuNSA4LjggMy40IDkuMyAxMC4xIC41IDYuNCAxLjcgMTQuOCAzLjQgMjUuM2w0LjctMTEuM2M0LjYgMCA0LjUtMy42LTIuNSAyMC43LTIwLjktOC43LTM1LjEtOC40LTQ2LjUtOC40bDE4LjItMTZjLTI1LjMgOC4yLTMzIDEwLjgtNTQuOCAyMC45LTEuMS01LjQtNS0xMy41LTE2LTE5LjktMy4yIDMuOC0yLjggLjktLjcgMTQuOGwtMi41IDBjLTEuMi04LjItNC4xLTE2LTguNC0yMy4xbDQuMi0zLjRjOC40LTcuMSAxMS44LTE0LjMgMTAuNi0yMS45LS41LTYuNC01LjQtMTMuNS0xMy41LTIwLjcgNS42LTMuNCAxNS4yLS40IDI4LjMgOC41em0tMzkuNi0xMC4xYzIuNyAxLjkgMTEuNCA1LjQgMTguOSAxNy4yIDQuMiA4LjQgNCA5LjggMy40IDExLjEtLjUgMi40LS41IDQuMy0zIDcuMS0xLjcgMi41LTUuNCA0LjctMTEuOCA3LjYtNy42LTEzLTE2LjUtMjMuNi0yNy44LTMxLjJsMjAuMy0xMS44em0tMjY3LjQgNDJsMS4yLTEuN2MxLjItMi45IDQuMi03LjYgOS4zLTE1LjJsMi41LTMuNC0xMyAxMi4zIDUuNC00LjctMTAuMSA5LjMtNC4yIDEuMmMxMi4zLTI0LjEgMjMuMS00MS4zIDMyLjUtNTAuMiA5LjMtOS4zIDE2LTE2IDIwLjItMTkuNGwtNi40IDEuMmMtMTEuMy00LjItMTkuNC03LjEtMjQuOC04LjQgMi41LS41IDMuNy0uNSAzLjItLjUgMTAuMyAwIDE3LjUgLjUgMjAuOSAxLjIgNS4yIDEuNyAxMC42IDIuNSAxNiAyLjVsLjUtMS43LTguNC0zNS44IDEzLjUgMjljMi44LTQuNCA0LjgtOS4yIDUuOS0xNC4zIDEuNy02LjQgNS40LTEzIDEwLjEtMTkuNHM3LjYtMTAuNiA5LjMtMTEuM2MtMi42IDguMy00LjcgMTYuOC02LjQgMjUuM2wtMS43IDcuMS0uNSA0LjcgMi41IDIuNWMyMS45LTEzLjUgNDUuNS0xOS40IDcxLjMtMTguOWwyMS4xIC41Yy0xMS44IDEzLjUtMjcuOCAyMS45LTQ4LjUgMjQuOC03LjcgMS40LTE1LjYgMi40LTIzLjQgMi45bC0uMi0uNS0yLjUtMS4yYy00LjgtMS05LjctLjMtMTQgMi0yLjUtLjItNC45LS41LTcuMS0uN2wtMi41IDEuNyAuNSAxLjJjMiAuMiAzLjkgLjUgNi4yIC43bC0yIDMuNCAzLjQtLjUtMTAuNiAxMS4zYy00LjIgMy01LjQgNi40LTQuMiA5LjNsNS40LTMuNCAxLjIgMGM2LjEtOC4yIDE1LjItMTMuNiAyNS4zLTE1LjJsMC0zYzYuNCAuNSAxMyAxIDE5LjQgMS4yIDYuNCAwIDguNCAuNSA1LjQgMS4yIDcuMiA0IDE0LjEgOC42IDIwLjcgMTMuNSAxMy41IDEwLjEgMjMuNiAyMS45IDMwIDM1LjQgOC44IDE4LjIgMTMuNSAzNy4xIDEzLjUgNTYuNiAwIDkuNS0xIDE5LTMgMjguMy0zLjUgMTUuOS04LjkgMzEuMy0xNiA0NmwyLjUgLjVjMTguMi0xOS43IDQxLjktMTYgNDkuMi0xNmwtNi40IDUuOSAyMi40IDE3LjctMS43IDMwLjdjLTUuNC0xMi4zLTE2LjUtMjEuMS0zMy0yNy44IDE2LjUgMTQuOCAyMy42IDIxLjEgMjEuOSAyMC4yLTQuOC0yLjgtMy41LTEuOS0xMC44LTMuNyA0LjEgNC4xIDE3LjUgMTguOCAxOC4yIDIwLjdsLjIgLjItLjIgLjJjMCAxLjggMS42LTEuMi0xNCAyMi45LTc1LjItMTUuMy0xMDYuMy00Mi43LTE0MS4yLTYzLjJsMTEuOCAxLjJjLTExLjgtMTguNS0xNS42LTE3LjctMzguNC0yNi4xbDEwLjYtOC40Yy04LjgtMy0xOC4yLTMtMjguMyAuNWw3LjYtMTAuNi0xLjItMS43Yy0xNC45IDQuMy0xOS44IDkuMi0yMi42IDExLjMtMS4xLTUuNS0yLjgtMTIuNC0xMi4zLTI4LjhsLTEuMiAyNy0xMy4yLTVjMS41LTI1LjIgNS40LTUwLjUgMTMuMi03NC42ek0zNjggNDczLjFjLTQ5LjkgMjUtNTYuMSAyMi40LTU5IDIzLjktMjkuOC0xMS44LTUwLjktMzEuNy02My41LTU4LjhsMzAgMTYuNWMtOS44LTkuMy0xOC4zLTE2LjUtMzguNC00NC4zbDExLjggMjMuMS0xNy43LTcuNmMxNC4yIDIxLjEgMjMuNSA1MS43IDY2LjYgNzMuNS0xMjAuOCAyNC4yLTE5OS03Mi4xLTIwMC45LTc0LjMgMTEuMSA5LjIgMjIuOSAxNy41IDM1LjQgMjQuOCAzLjQgMS43IDcuMSAyLjUgMTAuMSAxLjJsLTE2LTIwLjdjOS4yIDQuMiA5LjUgNC41IDY5LjEgMjktNDIuNS0yMC43LTczLjgtNDAuOC05My4yLTYwLjItLjUgNi40LTEuMiAxMC4xLTEuMiAxMC4xIDguNyA3LjMgMTUuOCAxNi40IDIwLjcgMjYuNi0zOS0xOC45LTU3LjYtNDcuNi03MS4zLTgyLjYgNDkuOSA1NS4xIDExOC45IDM3LjUgMTIwLjUgMzcuMSAzNC44IDE2LjQgNjkuOSAyMy42IDExMy45IDEwLjYgMy4zIDAgMjAuMyAxNyAyNS4zIDM5LjFsNC4yLTMtMi41LTIzLjZjOSA5IDI0LjkgMjIuNiAzNC40IDEzLTE1LjYtNS4zLTIzLjUtOS41LTI5LjUtMzEuNyA0LjYgNC4yIDcuNiA5IDI3LjggMTVsMS4yLTEuMi0xMC41LTE0LjJjMTEuNy00LjgtMy41IDEgMzItMTAuOCA0LjMgMzQuMyA5IDQ5LjIgLjcgODkuNXpNNDgzLjMgMjU4LjdsLTIuNSAuNSAzIDkuM2MtMy41IDUuOS0yMy43IDQ0LjMtNzEuNiA3OS43LTM5LjUgMjkuOC03Ni42IDM5LjEtODAuOSA0MC4zbC03LjYtNy4xLTEuMiAzIDE0LjMgMTYtNy4xLTQuNyAzLjQgNC4yLTEuMiAwLTIxLjktMTMuNSA5LjMgMjYuNi0xOS0yNy45LTEuMiAyLjUgNy42IDI5Yy02LjEtOC4yLTIxLTMyLjYtNTYuOC0zOS42bDMyLjUgMjEuMmMtMzEuMiA0LjctNjMgMi41LTkzLjItNi40LTQuMi0xLjItOC45LTIuNS0xMy41LTQuMmwxLjItMy00NC44LTIyLjQgMjYuMSAyMi40Yy01Ny43IDkuMS0xMTMtMjUuNC0xMjYuNC04My40TDI5LjMgMjg0LjggNyAzMDcuMWMxOS41LTU3LjUgMjUuNi01Ny45IDUxLjQtNzAuMS05LjEtNS4zLTEuNi0zLjMtMzguNC05LjMgMTUuOC01LjggMzMtMTUuNCA3MyA1LjIgMS4yLS43IDIuNC0xLjMgMy43LTEuNyAuNi0zLjIgLjQtLjggMS0xMS44IDMuOSAxMCAzLjYgOC43IDMgOS4zbDEuNyAuNWMxMi43LTYuNSA4LjktNC41IDE3LTguOWwtNS40IDEzLjUgMjIuMy01LjgtOC40IDguNCAyLjUgMi41YzQuNS0xLjggMzAuMyAzLjQgNDAuOCAxNmwtMjMuNi0yLjVjMzkuNCAyMyA1MS41IDU0IDU1LjggNjkuNmwxLjctMS4yYy0yLjgtMjIuMy0xMi40LTMzLjktMTYtNDAuMSA0LjIgNSAzOS4yIDM0LjYgMTEwLjQgNDYtMTEuMy0uNS0yMy4xIDUuNC0zNC45IDE4LjlsNDYuNy0yMC4yLTkuMyAyMS45YzcuNi0xMC4xIDE0LjgtMjMuNiAyMS4yLTM5LjZsMC0uNSAxLjItMy0xLjIgMTZjMTMuNS00MS44IDI1LjMtNzguNSAzNS40LTEwOS43bDEzLjUtMjcuOCAwLTItNS40LTQuMiAxMC4xIDAgNS45IDQuMiAyLjUtMS4yLTMuNC0xNiAxMi4zIDE4LjkgNDEuOC0yMC4yLTE0LjggMTMgLjUgMi45IDE3LjctLjVjMTEuMSAuNCAyMi4xIDEuOCAzMyA0LjJsLTIzLjYgMi41LTEuMiAzIDI2LjYgMjMuMWM5LjkgOS45IDE4LjkgMjAuNiAyNyAzMi0xMS4yLTMuMy0xMC4zLTMuNC0yMS4yLTMuNGwxMi4zIDMyLjUtOC45LTEyLjh6bS02LjEtNzEuM2wtMy45IDEzLTE0LjMtMTEuOCAxOC4yLTEuMnptLTI1NC44IDcuMWMxLjcgMTAuNiA0LjcgMTcuNyA4LjggMjEuOS05LjMgNi42LTI3LjUgMTMuOS00Ni41IDE2bC41IDEuMmM4LjMgMS4zIDE2LjkgLjQgMjQuOC0yLjVsLTcuMSAxM2M0LjItMS43IDEwLjEtNy4xIDE3LjctMTQuOCAxMS45LTUuNSAxMi43LTUuMSAyMC4yLTE2LTEyLjctNi40LTE1LjctMTMuNy0xOC40LTE4Ljh6bTMuNy0xMDIuM2MtNi40LTMuNC0xMC42IDMtMTIuMyAxOC45czIuNSAyOS41IDExLjggMzkuNiAxOC4yIDEwLjYgMjYuMSAzIDMuNC0yMy42LTExLjMtNDcuN2MtMy41LTUuNy04LjQtMTAuNS0xNC4zLTEzLjhsMCAwem0tNC43IDQ2LjNjNS40IDIuMiAxMC41IDEuOSAxMi4zLTEwLjZsMC00LjctMS4yIC41Yy00LjMtMy4xLTIuNS00LjUtMS43LTYuMmwuNS0uNWMtLjktMS4yLTUtOC4xLTEyLjUgNC43LS41LTEzLjUgLjUtMjEuOSAzLTI0LjggMS4yLTIuNSA0LjctMS4yIDExLjMgNC4yIDYuNCA1LjQgMTEuMyAxNiAxNS4yIDMyLjUgNi41IDI4LTE5LjggMjYuMi0yNi45IDQuOXptLTQ1LTUuNWMxLjYgLjMgOS4zLTEuMSA5LjMtMTQuOGwtLjUgMGMtNS40LTEuMS0yLjItNS41LS43LTUuOS0xLjctMy0zLjQtNC4yLTUuNC00LjctOC4xIDAtMTEuNiAxMi43LTguMSAyMS4yIC41IDEuMSAxLjMgMiAyLjIgMi44czIgMS4yIDMuMiAxLjRsMCAwem00MC4xLTUwLjFsLTIuNSAuNSAuNSAzYzkuMS0uNSAxOC4xIDEuNSAyNi4xIDUuOS0yLjUtNS41LTEwLTE0LjMtMjguMy0xNC4zbC41IDIuNSAzLjcgMi40em0tNzEuOCA0OS40YzIxLjcgMTYuOCAxNi41IDIxLjQgNDYuNSAyMy42bC0yLjktNC43YzguNC03LjIgMTMuNy0xNy4zIDE0LjgtMjguMyAxLjctMTYtMS4yLTI5LjUtOC44LTQxLjNsMTMtNy42YzAtLjMgMC0uNi0uMS0uOXMtLjItLjYtLjQtLjhjLTIuMi0uOS00LjYtMS4yLTctLjlzLTQuNiAxLjItNi41IDIuNmMtMTIuNyA2LjctMjggMjAuOS0yOSAyMi40LTEuNyAxLjctMy40IDUuOS01LjQgMTMuNS0xLjkgNy43LTIuOSAxNS42LTIuOSAyMy42LTQuNy04LTEwLjUtNi40LTE5LjktNS45bDcuMSA3LjZjLTE2LjUgMC0yMy4zIDE1LjQtMjMuNiAxNiA2LjggMCA0LjYtNy42IDMwLTEyLjMtNC4zLTYuMy0zLjMtNS00LjktNi42em0xOC43LTE4LjdjMS4yLTcuNiAzLjQtMTMgNi40LTE3LjIgNS40LTYuNCAxMC42LTEwLjEgMTYtMTEuOCA0LjItMS43IDcuMSAxLjIgMTAuMSA5LjMgMi41IDguMiAzLjUgMTYuOCAzIDI1LjMtLjUgOS4zLTMuNCAxNy4yLTguNCAyMy4xLTIuOSAzLjQtNS40IDUuOS02LjQgNy42LTMuOCAuNC03LjYgLjItMTEuMy0uNWwtNy4xLTMuNC01LjQtNi40Yy44LTEwIDEuMy0xOC44IDMuMS0yNnptNDIgNTYuMWMtMzQuOCAxNC40LTM0LjcgMTQtMzYuMSAxNC4zLTIwLjggNC43LTE5LTI0LjQtMTguOS0yNC44bDUuOS0xLjItLjUtMi41Yy0yMC4yLTIuNi0zMSA0LjItMzIuNSA0LjkgLjUgLjUgMyAzLjQgNS45IDkuMyA0LjItNi40IDguOC0xMC4xIDE1LjItMTAuNi0xLjcgMTEuMi0xLjIgMjIuNyAxLjcgMzMuNyAuMSAuNSAyLjYgMTcuNCAyNy41IDI0LjEgMTEuMyAzIDI3IDEuMiA0OC45LTUuNGwtOS4yIC41Yy00LjItMTQuOC02LjQtMjQuOC01LjktMjkuNSAxMS4zLTguOCAyMS45LTExLjMgMzAuNy03LjZsMi41IDAtMTEuOC03LjYtNy4xIC41Yy01LjkgMS4yLTEyLjMgNC4yLTE5LjQgOC40bDMuMS02LjV6Il19LGw0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqaXJhIixpY29uOls1MTIsNTEyLFtdLCJmN2IxIiwiTTQ5OC41IDI0MS43Yy03Mi45LTcyLjctMTY5LjQtMTY5LjktMjQxLjUtMjQxLjctMTY1LjUgMTY0LjktMjQyLjUgMjQxLjctMjQyLjUgMjQxLjctNy45IDcuOS03LjkgMjAuNyAwIDI4LjcgMTMyLjggMTMyLjMgNjEuOCA2MS41IDI0Mi41IDI0MS42IDM3OS40LTM3OCAxNS43LTE2LjcgMjQxLjUtMjQxLjcgOC03LjkgOC0yMC43IDAtMjguNnpNMjU3IDMzMS43bC03Ni03NS43IDc2LTc1LjcgNzYgNzUuNy03NiA3NS43eiJdfSxjNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmVkZXgiLGljb246WzY0MCw1MTIsW10sImY3OTciLCJNNTg2IDI4NC41bDUzLjMtNTkuOS02Mi40IDAtMjEuNyAyNC44LTIyLjUtMjQuOC0xMTguNyAwIDAtMTYgNTYuMSAwIDAtNDguMS0xNTEuMiAwIDAgNzUuNS0uNSAwYy05LjYtMTEtMjEuNS0xNC44LTM1LjQtMTQuOC0yOC40IDAtNDkuOCAxOS40LTU3LjMgNDQuOS0xOC01OS40LTk3LjQtNTcuNi0xMjEuOS0xNGwwLTI0LjItNTQuOCAwIDAtMjYuMiA2MCAwIDAtNDEuMS0xMDkgMCAwIDE4NC40IDQ5IDAgMC03Ny41IDQ4LjkgMGMtMS41IDUuNy0yLjMgMTEuOC0yLjMgMTguMiAwIDczLjEgMTAyLjYgOTEuNCAxMzAuMiAyMy43bC00MiAwYy0xNC43IDIwLjktNDUuOCA4LjktNDUuOC0xNC42bDg1LjUgMGMzLjcgMzAuNSAyNy40IDU2LjkgNjAuMSA1Ni45IDE0LjEgMCAyNy02LjkgMzQuOS0xOC42bC41IDAgMCAxMS45IDIxMi4yIDAgMjIuMS0yNSAyMi4zIDI1IDY0LjQgMC01NC02MC41ek0xMzkuMyAyNjcuOWM2LjEtMjYuMyA0MS43LTI1LjYgNDYuNSAwbC00Ni41IDB6bTE1My40IDQ4LjljLTM0LjYgMC0zNC02Mi44IDAtNjIuOCAzMi42IDAgMzQuNSA2Mi44IDAgNjIuOHptMTY3LjggMTkuMWwtOTQuNCAwIDAtMTY2LjUgOTUgMCAwIDMwLjItNTYuMSAwIDAgMzMuOSA1NS41IDAgMCAyOC4xLTU2LjEgMCAwIDQ0LjcgNTYuMSAwIDAgMjkuNnptLTQ1LjktMzkuOGwwLTI0LjQgNTYuMSAwIDAtNDQgNTAuNyA1Ny01MC43IDU3IDAtNDUuNi01Ni4xIDB6bTEzOC42IDEwLjNsLTI2LjEgMjkuNS0zOC4xIDAgNDUuNi01MS4yLTQ1LjYtNTEuMiAzOS43IDAgMjYuNiAyOS4zIDI1LjYtMjkuMyAzOC41IDAtNDUuNCA1MSA0NiA1MS40LTQwLjUgMC0yNi4zLTI5LjV6Il19LGQ0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJldmVybm90ZSIsaWNvbjpbMzg0LDUxMixbXSwiZjgzOSIsIk0xMjEuMSAxMzIuMmMxLjYgMjIuMy0xNy42IDIxLjYtMjEuNiAyMS42LTY4LjkgMC03My42LTEtODMuNiAzLjMtLjYgLjItLjcgMC0uNC0uNEwxMjQuMSA0Ni40Yy40LS40IC42LS4yIC40IC40LTQuNCAxMC0zLjQgMTUuMS0zLjQgODUuNHptNzkgMzA4Yy0xNC43LTM3LjEgMTMtNzYuOSA1Mi41LTc2LjYgMTcuNSAwIDIyLjYgMjMuMiA3LjkgMzEuNC02LjIgMy4zLTI0LjkgMS43LTI1LjEgMTkuMiAwIDE3LjEgMTkuNyAyNSAzMS4yIDI0LjkgNiAwIDExLjktMS4yIDE3LjUtMy41czEwLjYtNS43IDE0LjgtOS45IDcuNi05LjMgOS45LTE0LjggMy41LTExLjUgMy41LTE3LjVsMC0uMWMwLTExLjYtNy44LTQ3LjItNDcuNS01NS4zLTcuNy0xLjUtNjUtNi4zLTY4LjQtNTAuNS0zLjcgMTYuOS0xNy40IDYzLjUtNDMuMSA2OS4xLTguNyAxLjktNjkuNyA3LjYtMTEyLjktMzYuOCAwIDAtMTguNi0xNS4yLTI4LjItNTgtMy40LTE1LjctOS4zLTM5LjctMTEuMS02MiAwLTE4IDExLjEtMzAuNCAyNS4xLTMyLjIgODEgMCA5MCAyLjMgMTAxLTcuOCA5LjgtOS4yIDcuOC0xNS41IDcuOC0xMDIuOCAxLTguMyA3LjgtMzAuOCA1My40LTI0LjEgNiAuOSAzMS45IDQuMiAzNy41IDMwLjZMMjkwIDc0LjhjMjAuNCAzLjcgNzAuOSA3IDgwLjYgNTcuOSAyMi43IDEyMS4xIDguOSAyMzguNSA3LjggMjM4LjUtMTYgMTE0LjQtMTExLjEgMTA4LjktMTExLjEgMTA4LjktMTktLjItNTQuMi05LjQtNjcuMy0zOS44bDAgMHpNMjgxIDIzNS40Yy0xIDEuOS0yLjIgNiAuOSA3IDE0LjEgNC45IDM5LjggNi44IDQ1LjkgNS41IDMuMS0uMiAzLjEtNC40IDIuNS02LjYtMy41LTIxLjgtNDAuOC0yNi41LTQ5LjItNS45bDAgMHoiXX0sdTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVzYiIsaWNvbjpbNjQwLDUxMixbXSwiZjI4NyIsIk02MzMuNSAyNTZjMCAzLjEtMS43IDYuMS00LjUgNy41TDUzOS45IDMxN2MtMS40IC44LTIuOCAxLjQtNC41IDEuNC0xLjQgMC0zLjEtLjMtNC41LTEuMS0yLjgtMS43LTQuNS00LjUtNC41LTcuOGwwLTM1LjYtMjMwLjcgMGMyNS4zIDM5LjYgNDAuNSAxMDYuOSA2OS42IDEwNi45bDI2LjcgMCAwLTI2LjhjMC01IDMuOS04LjkgOC45LTguOWw4OS4xIDBjNSAwIDguOSAzLjkgOC45IDguOWwwIDg5LjFjMCA1LTMuOSA4LjktOC45IDguOWwtODkuMSAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMjYuNy0yNi43IDBjLTc1LjQgMC04MS4xLTE0Mi41LTEyNC43LTE0Mi41bC0xMDAuMyAwYy04LjEgMzAuNi0zNS45IDUzLjUtNjkgNTMuNS0zOS4zLS4xLTcxLjMtMzIuMS03MS4zLTcxLjRzMzItNzEuMyA3MS4zLTcxLjNjMzMuMSAwIDYxIDIyLjggNjkgNTMuNSAzOS4xIDAgNDMuOSA5LjUgNzQuNi02MC40IDQwLjEtODkuMSA1OC4xLTgyLjEgMTA4LjktODIuMSA3LjUtMjAuOSAyNy0zNS42IDUwLjQtMzUuNiAyOS41IDAgNTMuNSAyMy45IDUzLjUgNTMuNXMtMjMuOSA1My41LTUzLjUgNTMuNWMtMjMuNCAwLTQyLjktMTQuOC01MC40LTM1LjZsLTI5LjggMGMtMjkuMSAwLTQ0LjMgNjcuNC02OS42IDEwNi45bDMwMi4xIDAgMC0zNS42YzAtMy4zIDEuNy02LjEgNC41LTcuOHM2LjQtMS40IDguOSAuM0w2MjkgMjQ4LjhjMi44IDEuMSA0LjUgNC4xIDQuNSA3LjJ6Il19LHA0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbmdyeWNyZWF0aXZlIixpY29uOls2NDAsNTEyLFtdLCJmMzZlIiwiTTY0MCAyMzguMmwtMy4yIDI4LjItMzQuNSAyLjMtMiAxOC4xIDM0LjUtMi4zLTMuMiAyOC4yLTM0LjQgMi4yLTIuMyAyMC4xIDM0LjQtMi4yLTMgMjYuMS02NC43IDQuMSAxMi43LTExMy4yLTQ3LjMgMTE1LjQtMzEuOSAyLTIzLjgtMTE3LjggMzAuMy0yIDEzLjYgNzkuNCAzMS43LTgyLjQgOTMuMS02LjJ6TTQyNi44IDM3MS41bDI4LjMtMS44IDEyLjktMTIwLjEtMjguNCAxLjktMTIuOCAxMjB6TTE2MiAzODguMWwtMTkuNC0zNi0zLjUgMzcuNC0yOC4yIDEuNyAyLjctMjkuMWMtMTEgMTgtMzIgMzQuMy01Ni45IDM1LjgtMzIuOCAyLTU5LjctMjAuOS01Ni40LTU4LjIgMi42LTI5LjMgMjYuNy02Mi44IDY3LjUtNjUuNCAzNy43LTIuNCA0Ny42IDIzLjIgNTEuMyAyOC44bDIuOC0zMC44IDM4LjktMi41YzIwLjEtMS4zIDM4LjcgMy43IDQyLjUgMjMuN2wyLjYtMjYuNiA2NC44LTQuMi0yLjcgMjcuOS0zNi40IDIuNC0xLjcgMTcuOSAzNi40LTIuMy0yLjcgMjcuOS0zNi40IDIuMy0xLjkgMTkuOSAzNi4zLTIuMy0yLjEgMjAuOCA1NS0xMTcuMiAyMy44LTEuNiAzMi4xIDExMC42IDguOS04NS42LTIyLjMgMS40IDIuOS0yNy45IDc1LTQuOS0zIDI4LTI0LjMgMS42LTkuNyA5MS45LTU4IDMuNy00LjMtMTUuNi0zOS40IDIuNS04IDE2LjMtMTI2LjIgNy43em0tNDQuMy03MC4ybC0yNi40IDEuN2MtNi43LTEyLjQtMTQuNC0xNi42LTI2LjMtMTUuOC0xOSAxLjItMzMuMyAxNy41LTM0LjYgMzMuMy0xLjQgMTYgNy4zIDMyLjUgMjguNyAzMS4yIDEyLjgtLjggMjEuMy04LjYgMjguOS0xOC45bDI3LTEuNyAyLjctMjkuOHptNTYuMS03LjdjMS4yLTEyLjktNy42LTEzLjYtMjYuMS0xMi40TDE0NSAzMjYuM2MxNC4yLS45IDI3LjUtMi4xIDI4LjgtMTYuMXpNMTk0LjkgMzgxbDUuOC02MGMtNSAxMy41LTE0LjcgMjEuMS0yNy45IDI2LjZMMTk0LjkgMzgxem0xMzUuNC00NWwtNy45LTM3LjgtMTUuOCAzOS4zIDIzLjctMS41ek0xNjAuMiAyNjEuNGwtNC4zLTE3LjUtMzkuNiAyLjYtOC4xIDE4LjItMzEuOSAyLjEgNTctMTIxLjkgMjMuOS0xLjYgMzAuNyAxMDIgOS45LTEwNC43IDI3LTEuOCAzNy44IDYzLjYgNi41LTY2LjYgMjguNS0xLjktNCA0MS4yYzcuNC0xMy41IDIyLjktNDQuNyA2My42LTQ3LjUgNDAuNS0yLjggNTIuNCAyOS4zIDUzLjQgMzAuM2wzLjMtMzIgMzkuMy0yLjdjMTIuNy0uOSAyNy44IC4zIDM2LjMgOS43bC00LjQtMTEuOSAzMi4yLTIuMiAxMi45IDQzLjIgMjMtNDUuNyAzMS0yLjItNDMuNiA3OC40LTQuOCA0NC4zLTI4LjQgMS45IDQuOC00NC4zLTE1LjgtNDNjMSAyMi4zLTkuMiA0MC4xLTMyIDQ5LjZsMjUuMiAzOC44LTM2LjQgMi40LTE5LjItMzYuOC00IDM4LjMtMjguNCAxLjkgMy4zLTMxLjVjLTYuNyA5LjMtMTkuNyAzNS40LTU5LjYgMzgtMjYuMiAxLjctNDUuNi0xMC4zLTU1LjQtMzkuMmwtNCA0MC4zLTI1IDEuNi0zNy42LTYzLjMtNi4zIDY2LjItNTYuOCAzLjd6bTI3Ni42LTgyLjFjMTAuMi0uNyAxNy41LTIuMSAyMS42LTQuMyA0LjUtMi40IDctNi40IDcuNi0xMi4xIC42LTUuMy0uNi04LjgtMy40LTEwLjQtMy42LTIuMS0xMC42LTIuOC0yMi45LTJsLTIuOSAyOC44ek0zMjcuNyAyMTRjNS42IDUuOSAxMi43IDguNSAyMS4zIDcuOSA0LjctLjMgOS4xLTEuOCAxMy4zLTQuMSA1LjUtMyAxMC42LTggMTUuMS0xNC4zbC0zNC4yIDIuMyAyLjQtMjMuOSA2My4xLTQuMyAxLjItMTItMzEuMiAyLjFjLTQuMS0zLjctNy44LTYuNi0xMS4xLTguMS00LTEuNy04LjEtMi44LTEyLjItMi41LTggLjUtMTUuMyAzLjYtMjIgOS4yLTcuNyA2LjQtMTIgMTQuNS0xMi45IDI0LjQtMS4xIDkuNiAxLjQgMTcuMyA3LjIgMjMuM3ptLTIwMS4zIDguMmwyMy44LTEuNi04LjMtMzcuNi0xNS41IDM5LjJ6Il19LGY0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaXp1bmkiLGljb246WzUxMiw1MTIsW10sImYzY2MiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0xNzYgMzU5LjljLTMxLjQgMTAuNi01OC44IDI3LjMtODAgNDguMkw5NiAxMzZjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDIyMy45ek0yOTYgMzUwYy0xMi45LTItMjYuMi0zLjEtMzkuOC0zLjEtMTMuOCAwLTI3LjIgMS4xLTQwLjIgMy4xbDAtMjE0YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMTR6bTEyMCA1Ny43Yy0yMS4yLTIwLjgtNDguNi0zNy40LTgwLTQ4TDMzNiAxMzZjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDI3MS43eiJdfSxoNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaXRjaC1pbyIsaWNvbjpbNTEyLDUxMixbXSwiZjgzYSIsIk03MS45IDM0LjhDNTAuMiA0Ny43IDcuNCA5Ni44IDcgMTA5LjdsMCAyMS4zYzAgMjcuMSAyNS4zIDUwLjggNDguMiA1MC44IDI3LjYgMCA1MC41LTIyLjggNTAuNS01MCAwIDI3LjEgMjIuMiA1MCA0OS44IDUwczQ5LTIyLjggNDktNTBjMCAyNy4xIDIzLjYgNTAgNTEuMiA1MGwuNSAwYzI3LjYgMCA1MS4yLTIyLjggNTEuMi01MCAwIDI3LjEgMjEuNSA1MCA0OSA1MHM0OS44LTIyLjggNDkuOC01MGMwIDI3LjEgMjMgNTAgNTAuNSA1MCAyMyAwIDQ4LjMtMjMuOCA0OC4zLTUwLjhsMC0yMS4zYy0uNC0xMi45LTQzLjItNjIuMS02NC45LTc1LTY3LjQtMi4zLTExNC4yLTIuNy0xODQtMi43UzkxLjEgMzMuMSA3MS45IDM0Ljh6TTIwNC4yIDE2OS4yYy0yMiAzOC40LTc3LjkgMzguNy05OS44IC4yLTEzLjIgMjMuMS00My4yIDMyLjEtNTYgMjcuNy0zLjkgNDAuMi0xMy43IDIzNy4xIDE3LjcgMjY5LjIgODAgMTguNyAzMDIuMSAxOC4xIDM3OS44IDAgMzEuNi0zMi4zIDIxLjMtMjMyIDE3LjctMjY5LjItMTIuOSA0LjQtNDIuOS00LjYtNTYtMjcuNy0yMiAzOC41LTc3LjggMzguMS05OS44LS4yLTcuMSAxMi41LTIzIDI4LjktNTEuOCAyOC45LTEwLjQgLjMtMjAuOC0yLjItMjkuOS03LjNzLTE2LjctMTIuNi0yMS45LTIxLjZsMCAwem0tNDEuNiA1My44YzE2LjUgMCAzMS4xIDAgNDkuMiAxOS44IDI5LjMtMyA1OC45LTMgODguMiAwIDE4LjItMTkuNyAzMi44LTE5LjcgNDkuMi0xOS43IDUyLjMgMCA2NS4yIDc3LjUgODMuOSAxNDQuNCAxNy4zIDYyLjItNS41IDYzLjctMzQgNjMuNy00Mi4xLTEuNi02NS41LTMyLjItNjUuNS02Mi44LTM5LjMgNi40LTEwMS45IDguOC0xNTUuNiAwIDAgMzAuNi0yMy4zIDYxLjItNjUuNSA2Mi44LTI4LjQtLjEtNTEuMi0xLjYtMzMuOS02My43IDE4LjctNjcgMzEuNi0xNDQuNCA4My45LTE0NC40bDAtLjF6TTI1NiAyNzAuOHMtNDQuNCA0MC44LTUyLjQgNTUuMmwyOS0xLjIgMCAyNS4zYzAgMS41IDIxLjMgLjIgMjMuMyAuMiAxMS42IC41IDIzLjMgMSAyMy4zLS4ybDAtMjUuMyAyOSAxLjJjLTgtMTQuNS01Mi40LTU1LjItNTIuNC01NS4ybC4xIDB6Il19LG00cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aW5kb3dzIixpY29uOls0NDgsNTEyLFtdLCJmMTdhIiwiTTAgOTMuN2wxODMuNi0yNS4zIDAgMTc3LjQtMTgzLjYgMCAwLTE1Mi4xek0wIDQxOC4zbDE4My42IDI1LjMgMC0xNzUuMi0xODMuNiAwIDAgMTQ5Ljl6bTIwMy44IDI4bDI0NC4yIDMzLjcgMC0yMTEuNi0yNDQuMiAwIDAgMTc3Ljl6bTAtMzgwLjZsMCAxODAuMSAyNDQuMiAwIDAtMjEzLjgtMjQ0LjIgMzMuN3oiXX0sZzRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dW1ibGV1cG9uIixpY29uOls1MTIsNTEyLFtdLCJmMWE0IiwiTTUwMi45IDI2NmwwIDY5LjdjMCA2Mi4xLTUwLjMgMTEyLjQtMTEyLjQgMTEyLjQtNjEuOCAwLTExMi40LTQ5LjgtMTEyLjQtMTExLjNsMC03MC4yIDM0LjMgMTYgNTEuMS0xNS4yIDAgNzAuNmMwIDE0LjcgMTIgMjYuNSAyNi43IDI2LjVTNDE3IDM1Mi43IDQxNyAzMzhsMC03MiA4NS45IDB6TTI3OC4yIDIwNy44bDM0LjMgMTYgNTEuMS0xNS4yIDAtMzUuNmMwLTYwLjUtNTEuMS0xMDktMTEyLjEtMTA5LTYwLjggMC0xMTIuMSA0OC4yLTExMi4xIDEwOC4ybDAgMTYyLjRjMCAxNC45LTEyIDI2LjctMjYuNyAyNi43Uzg2IDM0OS41IDg2IDMzNC42bDAtNjguNi04NiAwIDAgNjkuN2MwIDYyIDUwLjMgMTEyLjMgMTEyLjQgMTEyLjMgNjEuNiAwIDExMi40LTQ5LjUgMTEyLjQtMTEwLjhsMC0xNjAuM2MwLTE0LjcgMTItMjYuNyAyNi43LTI2LjdzMjYuNyAxMiAyNi43IDI2LjdsMCAzMC45eiJdfSxLM2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlIixpY29uOls1MTIsNTEyLFtdLCJmMWEwIiwiTTUwMCAyNjEuOEM1MDAgNDAzLjMgNDAzLjEgNTA0IDI2MCA1MDQgMTIyLjggNTA0IDEyIDM5My4yIDEyIDI1NlMxMjIuOCA4IDI2MCA4YzY2LjggMCAxMjMgMjQuNSAxNjYuMyA2NC45bC02Ny41IDY0LjljLTg4LjMtODUuMi0yNTIuNS0yMS4yLTI1Mi41IDExOC4yIDAgODYuNSA2OS4xIDE1Ni42IDE1My43IDE1Ni42IDk4LjIgMCAxMzUtNzAuNCAxNDAuOC0xMDYuOWwtMTQwLjggMCAwLTg1LjMgMjM2LjEgMGMyLjMgMTIuNyAzLjkgMjQuOSAzLjkgNDEuNHoiXX0sYjRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc2NvcmQiLGljb246WzU3Niw1MTIsW10sImYzOTIiLCJNNDkyLjUgNjkuOGMtLjItLjMtLjQtLjYtLjgtLjctMzguMS0xNy41LTc4LjQtMzAtMTE5LjctMzcuMS0uNC0uMS0uOCAwLTEuMSAuMXMtLjYgLjQtLjggLjhjLTUuNSA5LjktMTAuNSAyMC4yLTE0LjkgMzAuNi00NC42LTYuOC04OS45LTYuOC0xMzQuNCAwLTQuNS0xMC41LTkuNS0yMC43LTE1LjEtMzAuNi0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjItMS4xLS4yYy00MS4zIDcuMS04MS42IDE5LjYtMTE5LjcgMzcuMS0uMyAuMS0uNiAuNC0uOCAuNy03Ni4yIDExMy44LTk3LjEgMjI0LjktODYuOSAzMzQuNSAwIC4zIC4xIC41IC4yIC44cy4zIC40IC41IC42YzQ0LjQgMzIuOSA5NCA1OCAxNDYuOCA3NC4yIC40IC4xIC44IC4xIDEuMSAwcy43LS40IC45LS43YzExLjMtMTUuNCAyMS40LTMxLjggMzAtNDguOCAuMS0uMiAuMi0uNSAuMi0uOHMwLS41LS4xLS44LS4yLS41LS40LS42LS40LS4zLS43LS40Yy0xNS44LTYuMS0zMS4yLTEzLjQtNDUuOS0yMS45LS4zLS4yLS41LS40LS43LS42cy0uMy0uNi0uMy0uOSAwLS42IC4yLS45IC4zLS41IC42LS43YzMuMS0yLjMgNi4yLTQuNyA5LjEtNy4xIC4zLS4yIC42LS40IC45LS40cy43IDAgMSAuMWM5Ni4yIDQzLjkgMjAwLjQgNDMuOSAyOTUuNSAwIC4zLS4xIC43LS4yIDEtLjJzLjcgLjIgLjkgLjRjMi45IDIuNCA2IDQuOSA5LjEgNy4yIC4yIC4yIC40IC40IC42IC43cy4yIC42IC4yIC45LS4xIC42LS4zIC45LS40IC41LS42IC42Yy0xNC43IDguNi0zMCAxNS45LTQ1LjkgMjEuOC0uMiAuMS0uNSAuMi0uNyAuNHMtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjggLjEgLjUgLjIgLjhjOC44IDE3IDE4LjggMzMuMyAzMCA0OC44IC4yIC4zIC42IC42IC45IC43cy44IC4xIDEuMSAwYzUyLjktMTYuMiAxMDIuNi00MS4zIDE0Ny4xLTc0LjIgLjItLjIgLjQtLjQgLjUtLjZzLjItLjUgLjItLjhjMTIuMy0xMjYuOC0yMC41LTIzNi45LTg2LjktMzM0LjV6bS0zMDIgMjY3LjdjLTI5IDAtNTIuOC0yNi42LTUyLjgtNTkuMnMyMy40LTU5LjIgNTIuOC01OS4yYzI5LjcgMCA1My4zIDI2LjggNTIuOCA1OS4yIDAgMzIuNy0yMy40IDU5LjItNTIuOCA1OS4yem0xOTUuNCAwYy0yOSAwLTUyLjgtMjYuNi01Mi44LTU5LjJzMjMuNC01OS4yIDUyLjgtNTkuMmMyOS43IDAgNTMuMyAyNi44IDUyLjggNTkuMiAwIDMyLjctMjMuMiA1OS4yLTUyLjggNTkuMnoiXX0seDRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhhY2tlci1uZXdzIixpY29uOls0NDgsNTEyLFtdLCJmMWQ0IiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTIxLjIgMjI5LjJsLS4yIDBjLjEtLjEgLjItLjMgLjMtLjQgMCAuMSAwIC4zLS4xIC40em0yMTggNTMuOWwwIDEwMC45LTMxLjQgMCAwLTEwMi43LTc5LjgtMTUzLjMgMzcuMyAwYzUyLjUgOTguMyA0OS4yIDEwMS4yIDU5LjMgMTI1LjYgMTIuMy0yNyA1LjgtMjQuNCA2MC42LTEyNS42bDM0LjggMC04MC44IDE1NS4xeiJdfSxQRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWxldmVudHkiLGljb246WzY0MCw1MTIsWyIxMXR5Il0sImU3ZDYiLCJNNjE1LjMgMTY4LjVjMi4zIDAgNC42IC43IDYuNiAyLjIgMS45IDEuNCAzLjEgMy4zIDMuOCA1IDEuNCAzLjMgMS44IDcuMyAxLjggMTEuMyAwIDIuMi0uMyA0LjktLjcgNy42bDAgLjQtNTAuOSAyNjQuOSAwIDBjLTQgMjIuMS04LjUgMzkuNC0xMy42IDUxLjctNSAxMi4xLTEwLjkgMjEuNi0xOC42IDI3bDAgMGMtNy41IDUuMy0xNi45IDcuNy0yNy42IDhsLTMgMGMtMTYgMC0yOS4zLTQuMi0zNi45LTE0LjgtLjEtLjEtLjEtLjEtLjItLjItLjEtLjItLjMtLjQtLjUtLjZsMCAwYy0xLjgtMi40LTIuNS01LjItMi45LTcuNC0uNS0yLjgtLjctNi4xLS43LTkuOCAwLTcuMyAuNi0xMy41IDIuMS0xOC4yIDEuNC00LjQgNC44LTEwLjQgMTIuMi0xMC40bDEuMyAuMWMuMiAwIC40IC4xIC41IC4xIC4zIC4xIC42IC4xIC44IC4yIC42IC4xIDEuMyAuMyAyLjIgLjZsNy42IDIuMiAuMSAwIDcuNiAyLjFjLjkgLjIgMS43IC40IDIuMiAuNSAuNCAuMSAuNiAuMSAuNyAuMSAwIDAgLjEgMCAuMi0uMSAuMS0uMSAuNC0uMiAuOC0uNiAuOS0uOSAyLjItMi42IDMuNi01LjcgMi42LTUuOCA0LjItMTQuNyA0LjItMjcuNCAwLS43LS4zLTMuNC0xLjMtOC45LS45LTUuMS0yLjMtMTIuMi00LjItMjEuMWwtNTYtMjMyLjktLjEtLjQgMC0uM2MtLjQtMi43LS43LTUuMy0uNy03LjMgMC0zLjcgLjQtNy41IDEuNy0xMC42IC43LTEuNiAxLjgtMy40IDMuNS00LjkgMS45LTEuNSA0LjItMi4zIDYuNS0yLjNsMzQuNiAwYzQuNiAwIDguNyAxLjcgMTEuOSA1bDEuMyAxLjVjMS4yIDEuNiAyIDMuNCAyLjcgNS4yIC45IDIuNCAxLjUgNS4xIDIgOC4xbDMwLjQgMTYxLjIgMjMuOC0xNjBjLjgtNS44IDIuMi0xMS40IDUuMS0xNS4xIDMtMy44IDcuMi01LjggMTItNS44bDI0IDB6TTM3NS4xIDM0LjZjMi42IDAgNS4xIC43IDcuNCAyLjMgMi4yIDEuNSAzLjcgMy42IDQuNyA1LjcgMS45IDQgMi41IDkuMSAyLjUgMTQuNWwwIDExMS4yYzAgLjEgMCAuMiAwIC4zbDMyLjQgMGMyLjUgMCA1IC42IDcuMiAyLjEgMi4yIDEuNCAzLjcgMy40IDQuOCA1LjUgMiAzLjkgMi42IDguOCAyLjYgMTMuOWwwIDE1LjRjMCA1LS42IDkuOC0yLjYgMTMuNy0xLjEgMi0yLjYgNC00LjggNS40LTIuMiAxLjQtNC43IDItNy4xIDJsLTMyLjUgMCAwIDE0NS44YzAgMTAuOCAuNyAxOS41IDIgMjYuMiAxLjQgNi45IDMuMSAxMC45IDQuNyAxMi45IDEuMiAxLjUgMi4yIDIuNSAzLjEgMy4ybDIuMiAxLjQgLjEgLjEgMi45IC44YzEuMiAuMiAyLjYgLjMgNC4zIC4zbDIwLjMgMGM0LjUgMCA4LjkgMS43IDExLjggNS44IDIuNiAzLjYgMy4zIDguMSAzLjMgMTIuMmwwIDE3LjJjMCA0LjUtLjggOS4zLTMuNCAxMy4xLTMgNC4yLTcuNSA2LTEyLjMgNmwwIDAtMjkuMSAuMWMtOCAwLTE1LS42LTIxLjItMS43LTYuNy0xLjMtMTMuNC00LjEtMjAuMS04LjEtNy4yLTQuNC0xMy0xMC4zLTE3LjUtMTcuOC00LjUtNy41LTcuOS0xNy41LTEwLjUtMjkuNS0yLjYtMTIuMi0zLjktMjYuNi0zLjktNDNsMC0xNDQuOS0xMy40IDBjLTIuNCAwLTQuOS0uNi03LjEtMi0yLjItMS40LTMuNy0zLjQtNC44LTUuNC0yLTMuOS0yLjYtOC43LTIuNi0xMy43bDAtMTUuNGMwLTUuMSAuNi0xMCAyLjYtMTMuOSAxLjEtMi4xIDIuNi00IDQuOC01LjUgMi4yLTEuNSA0LjctMi4xIDcuMi0yLjFsMTMuNCAwIDAtLjYgNS4yLTExMS4yIDAtLjEgLjMtMy45Yy41LTMuOCAxLjMtNy40IDIuNy0xMC4zIDIuMS00LjIgNi03LjkgMTEuOC03LjlsMjguNiAwem0tMjY4IDExLjdjMS44IC4zIDMuNiAuOSA1LjMgMi4xIDIuMSAxLjUgMy41IDMuNSA0LjQgNS40IDEuNyAzLjcgMi4zIDguNCAyLjMgMTMuMmwwIDM3Ny44YzAgNi43LS42IDEyLjYtMi40IDE3LjEtLjkgMi4zLTIuMyA0LjctNC40IDYuNS0yLjMgMi01LjEgMy04LjEgM2wtNDMuNyAwYy0zIDAtNS44LTEuMS04LjEtMy4xLTIuMS0xLjktMy40LTQuMy00LjItNi41LTEuNy00LjUtMi4zLTEwLjMtMi4zLTE3bDAtMzE1LjhjLTQuOCAxLjItOC43IDIuMi0xMS41IDIuOS0xLjkgLjUtMy40IC44LTQuNCAxLjEtLjUgLjEtLjkgLjItMS4yIC4zLS4xIDAtLjMgLjEtLjUgLjEtLjEgMC0uMiAwLS4zIC4xIDAgMC0uMiAwLS4zIDAgMCAwLS4yIDAtLjQgMGwwIDBjLS4xIDAtLjMgMC0uNCAwLS4xIDAtLjIgMC0uMiAwLTIuMiAuMS00LjUtLjQtNi42LTEuNy0yLjMtMS40LTMuOC0zLjQtNC43LTUuMy0xLjgtMy43LTIuMy04LjQtMi4zLTEzbDAtMjcuNGMwLTQuNCAuNy04LjggMi42LTEyLjQgMi4xLTMuOSA1LjUtNi42IDkuOC03LjZsNzUuNS0xOS41YzEuNC0uNCAyLjktLjUgNC40LS41bDEuOCAuMXptMTQzLjgtLjVjMS44IC4zIDMuNiAuOSA1LjIgMi4xIDIuMSAxLjUgMy41IDMuNSA0LjQgNS40IDEuNyAzLjcgMi4yIDguNCAyLjIgMTMuMmwwIDM3Ny44YzAgNi43LS42IDEyLjYtMi40IDE3LjEtLjkgMi4zLTIuMyA0LjctNC40IDYuNS0yLjMgMi01LjEgMy04LjEgM2wtNDMuNyAwYy0zIDAtNS44LTEuMS04LjEtMy4xLTIuMS0xLjktMy40LTQuMy00LjItNi41LTEuNy00LjUtMi4zLTEwLjMtMi4zLTE3bDAtMzE1LjhjLTQuOCAxLjItOC43IDIuMi0xMS41IDIuOS0xLjkgLjUtMy40IC44LTQuNCAxLjEtLjUgLjEtLjkgLjItMS4yIC4zLS4xIDAtLjMgLjEtLjUgLjEtLjEgMC0uMiAwLS4zIC4xLS4xIDAtLjIgMC0uMyAwIDAgMC0uMiAwLS40IDBsMCAwYy0uMSAwLS4yIDAtLjMgMC0uMSAwLS4yIDAtLjMgMC0yLjIgLjEtNC41LS40LTYuNi0xLjctMi4zLTEuNC0zLjgtMy40LTQuNy01LjMtMS44LTMuNy0yLjMtOC4zLTIuMy0xM2wwLTI3LjRjMC00LjQgLjctOC43IDIuNi0xMi40IDIuMS0zLjkgNS41LTYuNiA5LjgtNy42bDc1LjQtMTkuNGMxLjQtLjQgMi45LS41IDQuNC0uNWwxLjggLjF6Il19LHY0cj1QRWUseTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRlYW1zcGVhayIsaWNvbjpbNTc2LDUxMixbXSwiZjRmOSIsIk0xNTIuOCAzNy4yYy0zMi4yIDM4LjEtNTYuMSA4Mi42LTY5LjkgMTMwLjUgMCAuMi0uMSAuMy0uMSAuNS0zOS4zIDE2LjItNjYuOCA1NC44LTY2LjggOTkuOCAwIDU5LjYgNDguNCAxMDggMTA4IDEwOHMxMDgtNDguNCAxMDgtMTA4YzAtNTMuNS0zOC45LTk3LjktOTAtMTA2LjUgMTUuNy00MS44IDQwLjQtNzkuNiA3Mi4zLTExMC43IDEuOC0xLjYgNC0yLjYgNi4zLTMuMSAzNy4yLTExLjUgNzYuNy0xMy4zIDExNC44LTUuMiAxMTkuMyAyNS4xIDE5OC42IDEzOC4yIDE4MS43IDI1OC44LTguNCA2Mi42LTM4LjYgMTEyLjctODcuNyAxNTEuNC01MC4xIDM5LjctMTA3LjUgNTQuMy0xNzAuMiA1Mi4ybC0yNC0xYzEyLjQgMi44IDI1IDQuOSAzNy42IDYuMyA0MC43IDQuMiA4MS40IDIuMSAxMjAuMS0xMi41IDk0LTM1LjUgMTQ5LjMtMTAyLjMgMTYyLjktMjAyLjUgNC44LTUyLjYtNS44LTEwNS40LTMwLjgtMTUyLTcwLjQtMTMxLjktMjM0LjItMTgxLjYtMzY2LTExMS4yLTIuNCAxLjQtNC41IDMuMS02LjMgNS4ybC4xIDB6TTMwOS40IDQzMy45Yy0yLjEgMTEuNS00LjIgMjEuOS0xNC42IDMxLjMgNTMuMi0xIDEyMy4yLTI5LjIgMTYxLjgtOTcuMSAzOS43LTY5LjkgMzcuNi0xMzkuOS02LjMtMjA3LjgtMzYuNS01NS4zLTg5LjgtODIuNC0xNTYuNi04Ni42IDEuNSAyLjMgMy4yIDQuNCA1LjIgNi4zbDUuMiA2LjNjMjUuMSAzMS4zIDM3LjYgNjcuOSA0Mi44IDEwNy41IDIuMSAxNS43LTEgMzAuMy0xMy42IDQxLjgtNC4yIDMuMS01LjIgNi4zLTQuMiAxMC40bDcuMyAxNy43IDI5LjMgNTQuM2M1LjIgMTEuNSA0LjIgMTkuOC02LjMgMjguMi0zLjIgMi41LTYuNyA0LjYtMTAuNCA2LjNsLTE4LjggOC40IDMuMSAxMy42YzMuMSA2LjMgMSAxMi41LTMuMSAxNy43LTIuNSAyLjQtMy44IDUuOS0zLjEgOS40IDIuMSAxMS41LTIuMSAxOS44LTEyLjUgMjUuMS0yLjEgMS00LjIgNS4yLTUuMiA3LjNsMC0uMXptLTEzMy42LTMuMWMxNi43IDExLjUgMzQuNSAyMC45IDUzLjIgMjYuMSAyNCA1LjIgNDEuOC02LjMgNDQuOS0zMC4zIDEtOC40IDUuMi0xNC42IDEyLjUtMTcuNyA3LjMtNC4yIDguNC03LjMgMi4xLTEzLjZsLTkuNC04LjQgMTMuNi00LjJjNi4zLTIuMSA3LjMtNS4yIDUuMi0xMS41LTEuNC0zLTIuNC02LjItMy4xLTkuNC0zLjEtMTQuNi0yLjEtMTUuNyAxMS41LTE4LjggOC40LTMuMSAxNS43LTYuMyAyMS45LTEyLjUgMy4xLTIuMSAzLjEtNC4yIDEtOC40bC0xNi43LTMwLjNjLTEtMS45LTIuMS0zLjgtMy4xLTUuNy02LjQtMTEuNy0xMy0yMy42LTE1LjctMzcuMS0yLjEtOS40LTEtMTcuNyA4LjQtMjQgNS4yLTQuMiA4LjQtOS40IDguNC0xNi43LS40LTEwLjEtMS41LTIwLjMtMy4xLTMwLjMtNi4zLTM3LjYtMjMtNjguOS01MS4yLTk1LTUuMi00LjItOS40LTYuMy0xNi43LTQuMmwtMzUuNiAxMi43IDYgMy42YzYuMyAzLjcgMTIuMiA3LjMgMTcgMTIuMSAzMC4zIDI2LjEgNDEuOCA2MS42IDQ1LjkgMTAwLjIgMSA4LjQgMCAxNi43LTcuMyAyMS45LTguNCA1LjItMTAuNCAxMi41LTcuMyAyMC45IDQuOSAxMy4yIDEwLjQgMjYgMTYuNyAzOC42TDI5MS42IDMxOGMtNi4zIDguNC0xMy42IDExLjUtMjEuOSAxNC42LTEyLjUgMy4xLTE0LjYgNy4zLTEwLjQgMjAuOSAuNiAxLjUgMS40IDIuOCAyLjEgNC4yIDIuMSA1LjIgMSA4LjQtNC4yIDEwLjRsLTEyLjUgMy4xIDUuMiA0LjIgNC4yIDQuMmM0LjIgNS4yIDQuMiA4LjQtMi4xIDEwLjQtNy4zIDQuMi0xMS41IDkuNC0xMS41IDE3LjcgMCAxMi41LTcuMyAxOS44LTE4LjggMjQtMy44IDEtNy42IDEuNS0xMS41IDFsLTM0LjUtMi4xIC4xIC4yeiJdfSx3NHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3VwcGxlIixpY29uOls2NDAsNTEyLFtdLCJmM2Y5IiwiTTY0MCAyNjIuNWMwIDY0LjEtMTA5IDExNi4xLTI0My41IDExNi4xLTI0LjggMC00OC42LTEuOC03MS4xLTUgNy43IC40IDE1LjUgLjYgMjMuNCAuNiAxMzQuNSAwIDI0My41LTU2LjkgMjQzLjUtMTI3LjEgMC0yOS40LTE5LjEtNTYuNC01MS4yLTc4IDYwIDIxLjEgOTguOSA1NS4xIDk4LjkgOTMuNHpNNDcuNyAyMjcuOWMtLjEtNzAuMiAxMDguOC0xMjcuMyAyNDMuMy0xMjcuNiA3LjkgMCAxNS42IC4yIDIzLjMgLjUtMjIuNS0zLjItNDYuMy00LjktNzEtNC45LTEzNC41IC40LTI0My40IDUyLjYtMjQzLjMgMTE2LjcgLjEgMzguMyAzOS4xIDcyLjMgOTkuMyA5My4zLTMyLjMtMjEuNS01MS41LTQ4LjYtNTEuNi03OHptNjAuMiAzOS45UzExOC40IDI4MSAxMzcuMiAyODFjMTcuOSAwIDI4LjQtMTEuNSAyOC40LTI1LjEgMC0yOC00MC4yLTI1LjEtNDAuMi0zOS43IDAtNS40IDUuMy05LjEgMTIuNS05LjEgNS43IDAgMTEuMyAyLjYgMTEuMyA2LjZsMCAzLjkgMTQuMiAwIDAtNy45YzAtMTIuMS0xNS40LTE2LjgtMjUuNC0xNi44LTE2LjUgMC0yOC41IDEwLjItMjguNSAyNC4xIDAgMjYuNiA0MC4yIDI1LjQgNDAuMiAzOS45IDAgNi42LTUuOCAxMC4xLTEyLjMgMTAuMS0xMS45IDAtMjAuNy0xMC4xLTIwLjctMTAuMWwtOC44IDEwLjl6bTEyMC44LTczLjZsMCA1NC40YzAgMTEuMy03LjEgMTcuOC0xNy44IDE3LjhzLTE3LjgtNi41LTE3LjgtMTcuN2wwLTU0LjUtMTUuOCAwIDAgNTVjMCAxOC45IDEzLjQgMzEuOSAzMy43IDMxLjkgMjAuMSAwIDMzLjQtMTMgMzMuNC0zMS45bDAtNTUtMTUuNyAwem0zNC40IDg1LjRsMTUuOCAwIDAtMjkuNSAxNS41IDBjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44bC0zOS4xIDAgMCAxMy40IDcuOCAwIDAgNzJ6bTE1LjgtNDNsMC0yOS4xIDEyLjkgMGM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNS4xIDE0LjctMTQgMTQuN2wtMTIuNiAwem01NyA0M2wxNS44IDAgMC0yOS41IDE1LjUgMGMxNiAwIDI3LjItMTEuNSAyNy4yLTI4LjFzLTExLjItMjcuOC0yNy4yLTI3LjhsLTM5LjEgMCAwIDEzLjQgNy44IDAgMCA3MnptMTUuNy00M2wwLTI5LjEgMTIuOSAwYzguNyAwIDEzLjcgNS43IDEzLjcgMTQuNCAwIDguOS01IDE0LjctMTQgMTQuN2wtMTIuNiAwem01Ny4xIDM0LjhjMCA1LjggMi40IDguMiA4LjIgOC4ybDM3LjYgMGM1LjggMCA4LjItMi40IDguMi04LjJsMC0xMy0xNC4zIDAgMCA1LjJjMCAxLjctMSAyLjYtMi42IDIuNmwtMTguNiAwYy0xLjcgMC0yLjYtMS0yLjYtMi42bDAtNjEuMmMwLTUuNy0yLjQtOC4yLTguMi04LjJsLTE1LjQgMCAwIDEzLjQgNS4yIDBjMS43IDAgMi42IDEgMi42IDIuNmwwIDYxLjItLjEgMHptNjMuNCAwYzAgNS44IDIuNCA4LjIgOC4yIDguMmwzOC43IDBjNS43IDAgOC4yLTIuNCA4LjItOC4ybDAtMTMtMTQuMyAwIDAgNS4yYzAgMS43LTEgMi42LTIuNiAyLjZsLTE5LjcgMGMtMS43IDAtMi42LTEtMi42LTIuNmwwLTIwLjMgMjcuNyAwIDAtMTMuNC0yNy43IDAgMC0yMi40IDE5LjIgMGMxLjcgMCAyLjYgMSAyLjYgMi42bDAgNS4yIDE0LjIgMCAwLTEzYzAtNS43LTIuNS04LjItOC4yLTguMmwtNTEuNiAwIDAgMTMuNCA3LjggMCAwIDYzLjkgLjEgMHptNTguOS03NmwwIDUuOSAxLjYgMCAwLTUuOSAyLjcgMCAwLTEuMi03IDAgMCAxLjIgMi43IDB6bTUuNy0xLjJsMCA3LjEgMS41IDAgMC01LjcgMi4zIDUuNyAxLjMgMCAyLjMtNS43IDAgNS43IDEuNSAwIDAtNy4xLTIuMyAwLTIuMSA1LjEtMi4xLTUuMS0yLjQgMHoiXX0sTkVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS10d2l0dGVyIixpY29uOls0NDgsNTEyLFsidHdpdHRlci1zcXVhcmUiXSwiZjA4MSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zNTEuMyAxOTkuM2MwIDg2LjctNjYgMTg2LjYtMTg2LjYgMTg2LjYtMzcuMiAwLTcxLjctMTAuOC0xMDAuNy0yOS40IDUuMyAuNiAxMC40IC44IDE1LjggLjggMzAuNyAwIDU4LjktMTAuNCA4MS40LTI4LTI4LjgtLjYtNTMtMTkuNS02MS4zLTQ1LjUgMTAuMSAxLjUgMTkuMiAxLjUgMjkuNi0xLjItMzAtNi4xLTUyLjUtMzIuNS01Mi41LTY0LjRsMC0uOGM4LjcgNC45IDE4LjkgNy45IDI5LjYgOC4zLTktNi0xNi40LTE0LjEtMjEuNS0yMy42cy03LjgtMjAuMi03LjctMzFjMC0xMi4yIDMuMi0yMy40IDguOS0zMy4xIDMyLjMgMzkuOCA4MC44IDY1LjggMTM1LjIgNjguNi05LjMtNDQuNSAyNC04MC42IDY0LTgwLjYgMTguOSAwIDM1LjkgNy45IDQ3LjkgMjAuNyAxNC44LTIuOCAyOS04LjMgNDEuNi0xNS44LTQuOSAxNS4yLTE1LjIgMjgtMjguOCAzNi4xIDEzLjItMS40IDI2LTUuMSAzNy44LTEwLjItOC45IDEzLjEtMjAuMSAyNC43LTMyLjkgMzQgLjIgMi44IC4yIDUuNyAuMiA4LjV6Il19LGs0cj1ORWUsUzRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbSIsaWNvbjpbNTEyLDUxMixbXSwiZTg4YSIsIk0zMDMuMyA1NC41bDAtMTIuMyA0LTMuNyA3LjktNy4yIDMuNS0zLjIgMTY4IDAgMTUuMSAxNS4xIDAgMzguOS0zLjUgMy42LTgwLjkgODIuOSA4Ni45IDg2LjktOTEuMiA5MS4yIDguOSAwIDcuNi04LjMgMS0uOWMxLjEtLjggMi41LTEuMiAzLjktMS4ybDI4LjkgMCAxLjUgLjJjMS41IC40IDIuOCAxLjIgMy44IDIuNWw3LjYgMTAuMmMxLjMgMS43IDEuNiAzLjkgMSA1LjlsLTIyLjMgNzIuNSAxLjIgMGMyLjIgMCA0LjIgMS4xIDUuNSAyLjlzMS41IDQuMSAuNyA2LjFMNDU5IDQ0NWMtMSAyLjYtMy40IDQuMi02LjIgNC4ybC00MC40IDBjLTIuMSAwLTQuMS0xLTUuMy0yLjdzLTEuNi0zLjktMS01LjlsMjAtNjMuMi0yMi4yIDAtMTYuMiA1MC43YzIuMSAuMSA0LjEgMS4xIDUuMyAyLjkgMS4yIDEuOCAxLjQgNC4yIC42IDYuMmwtMy4zIDcuOWMtMSAyLjUtMy41IDQuMS02LjEgNC4xbC0zNi44IDBjLTIuMSAwLTQuMS0xLTUuNC0yLjdzLTEuNi0zLjktMS01LjlsMTAtMzIuMS0yMy45IDIzLjhjLjMgMS4yIC4zIDIuNS0uMSAzLjhsLTIuOSA4LjZjLS45IDIuNy0zLjQgNC41LTYuMyA0LjVsLTcuNCAwLTU0LjYgNTQuNi04My44LTgzLjgtMzEuNiAzMi41LTMuNiAzLjctNDkuMiAwLTIuOC0xLjdjLTguOC01LjEtMTQuOC04LjUtMTcuOS0xMC4zbDAtMTI5LjMtNTguNS01OC41IDIuNi0yLjYgNTUuOS01NiAwLTk5LjQtMTIuNiAwLTEwLjgtMTAuOC0zLjYtMy42IDAtNDAuNyAzLjItMy41IDcuOS04LjUgMy43LTMuOSAxNjYuNiAwIDggOCAyNy40LTI3LjQgNDYuNCA0Ni40em0tMjUxLTUuNmwwIDMwLjMgOS40IDcuOCAxOC45IDAgMCAzNDcuOSAxMS40IDEwLjMgMzguMiAwIDkxLTkzYzAtLjQgLjEtLjggLjItMS4xbDIuNi0xMC41Yy43LTIuOSAzLjQtNSA2LjQtNWw3LjEgMCAxNS41LTE1LjktMi0yYy0xLjgtMS44LTIuNC00LjUtMS41LTYuOWw2LjktMTkuM2MuNC0xLjEgMS4xLTIgMS45LTIuOGw2LjktNS45YzEuMi0xIDIuOC0xLjYgNC4zLTEuNmwxOS43IDAgMS4zIC4yYy4xIDAgLjEgLjEgLjIgLjFsMTk5LjItMjAzLjUgMC0yOC43LTguMi03LjQtMTU2LjIgMC03LjggNy44IDAgMzAuNSA4LjIgNy40IDIxIDAtMTQ3IDE0Ni40IDAtMTQ2LjYgMTYuOSAwIDguNy04LjcgMC0yNy43LTcuNC05LjktMTU3LjYgMC04IDh6TTIyNy42IDM1Mi43bDE0LjggMC0zMS44IDkwLjkgNDUuMyAwIDMtOS42LTEyLjUgMCAzMS41LTkxLjktNDcuNiAwLTIuNiAxMC41em0xMzYuOSAxbC0xNi40IDAtMTAuNS0xMC44LTM1LjggMC0zLjMgOS44IDExLjggMC0zMC41IDg5LjkgMzguMSAwIDIuOS04LjYtOC44IDAgMjAtNjMgMzcuOCAwLTIyLjMgNzEuNiAzNi44IDAgMy4zLTcuOS04LjggMCAyMC4zLTY0IDM2LjEgMC0yMi43IDcxLjkgNDAuNCAwIDMuMy04LjYtMTAuMiAwIDI1LTgxLjEtNy41LTEwLjItMjguOSAwLTkuNSAxMC41LTE3LjQgMC05LjktMTAuOC0yMy4zIDAtOS44IDExLjJ6TTI2Mi41IDI5My42bC02LjkgMTkuMyA1LjMgNS4zIDIxLjMgMCA1LjYtNS42IDUuOS0yMC4zLTQuNi00LjYtMTkuNyAwLTYuOSA1Ljl6Il19LFkzZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnoiXX0sTTRyPVkzZSxDNHI9WTNlLE9FZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aXJzaW5kaGFuZHdlcmsiLGljb246WzQ0OCw1MTIsWyJ3c2giXSwiZTJkMCIsIk0xOC45IDQ3OS44bDgzLjQgMCAwLTExMi04My40IDQ3IDAgNjV6bTMyOSAwbDgyLjQgMCAwLTY1LTgyLjQtNDcgMCAxMTJ6bTAtNDQ4bDAgMjE5LjgtMTIzLjYtNzIuNC0xMjEuNyA3Mi40IDAtMjE5LjgtODMuNyAwIDAgMzYwLjggMjA1LjQtMTIyLjMgMjA2IDEyMi4zIDAtMzYwLjgtODIuMyAweiJdfSx6NHI9T0VlLF80cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ6b29tIixpY29uOls2NDAsNTEyLFtdLCJlODdiIiwiTTEzNC4yIDMyNi42bC0xMTQuNCAwYy04IDAtMTUuMi00LjgtMTguMy0xMi4yUy4xIDI5OC42IDUuOCAyOTIuOWw3OS4zLTc5LjMtNTYuOCAwQzEyLjcgMjEzLjYgMCAyMDEgMCAxODUuNGwxMDUuNSAwYzggMCAxNS4yIDQuOCAxOC4zIDEyLjJzMS40IDE1LjktNC4zIDIxLjZsLTc5LjMgNzkuMyA2NS43IDBjMTUuNiAwIDI4LjMgMTIuNiAyOC4zIDI4LjN6TTY0MCAyMzguM2MwLTMwLjQtMjQuNy01NS4xLTU1LjEtNTUuMS0xNi4yIDAtMzAuOSA3LjEtNDEgMTguMy0xMC4xLTExLjItMjQuNy0xOC4zLTQxLTE4LjMtMzAuNCAwLTU1LjEgMjQuNy01NS4xIDU1LjFsMCA4OC4zYzE1LjYgMCAyOC4zLTEyLjcgMjguMy0yOC4zbDAtNjBjMC0xNC44IDEyLTI2LjggMjYuOC0yNi44czI2LjggMTIgMjYuOCAyNi44bDAgNjBjMCAxNS42IDEyLjYgMjguMyAyOC4zIDI4LjNsMC04OC4zYzAtMTQuOCAxMi0yNi44IDI2LjgtMjYuOHMyNi44IDEyIDI2LjggMjYuOGwwIDYwYzAgMTUuNiAxMi42IDI4LjMgMjguMyAyOC4zbDAtODguM3pNMjg4LjIgMjU2YTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6bS0yNzQuMSAwYTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6Il19LFQ0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb25mbHVlbmNlIixpY29uOls1MTIsNTEyLFtdLCJmNzhkIiwiTTIuOCA0MTIuMmMtNC41IDcuNi0yLjEgMTcuNSA1LjUgMjIuMmwxMDUuOSA2NS4yYzcuNyA0LjcgMTcuNyAyLjQgMjIuNC01LjMgMC0uMSAuMS0uMiAuMS0uMiA2Ny4xLTExMi4yIDgwLjUtOTUuOSAyODAuOS0uNyA4LjEgMy45IDE3LjggLjQgMjEuNy03LjcgLjEtLjEgLjEtLjMgLjItLjRsNTAuNC0xMTQuMWMzLjYtOC4xLS4xLTE3LjYtOC4xLTIxLjMtMjIuMi0xMC40LTY2LjItMzEuMi0xMDUuOS01MC4zLTI0Ny45LTEyMC42LTMzMC44IDQ1LjctMzczLjEgMTEyLjZ6TTUxMC4yIDEwMC4xYzQuNS03LjYgMi4xLTE3LjUtNS41LTIyLjJMMzk4LjkgMTIuOGMtNy41LTUtMTcuNi0zLjEtMjIuNiA0LjQtLjIgLjMtLjQgLjYtLjYgMS02Ny4zIDExMi42LTgxLjEgOTUuNi0yODAuNiAuOS04LjEtMy45LTE3LjgtLjQtMjEuNyA3LjctLjEgLjEtLjEgLjMtLjIgLjRMMjIuNyAxNDEuM2MtMy42IDguMSAuMSAxNy42IDguMSAyMS4zIDIyLjIgMTAuNCA2Ni4zIDMxLjIgMTA2IDUwLjQgMjQ4IDEyMCAzMzAuOC00NS40IDM3My40LTExMi45eiJdfSxMNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlnZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFhNiIsIk04MS43IDE3Mi4zbC04MS43IDAgMCAxNzQuNCAxMzIuNyAwIDAtMjUwLjctNTEgMCAwIDc2LjN6bTAgMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3pNMzc4LjkgMTcyLjNsMCAxNzQuNCA4MS44IDAgMCAyOC41LTgxLjggMCAwIDQwLjggMTMzLjEgMCAwLTI0My43LTEzMy4xIDB6bTgxLjggMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3ptLTIzNS42IDQxbDgyLjEgMCAwIDI4LjUtODIuMSAwIDAgNDAuOCAxMzMuMyAwIDAtMjQzLjctMTMzLjMgMCAwIDE3NC40em01MS4yLTEzMy4zbDMwLjggMCAwIDkyLjMtMzAuOCAwIDAtOTIuM3pNMTUzLjMgOTZsNTEuMyAwIDAgNTEtNTEuMyAwIDAtNTF6bTAgNzYuM2w1MS4zIDAgMCAxNzQuNC01MS4zIDAgMC0xNzQuNHoiXX0sRDRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRocmVhZHMiLGljb246WzQ0OCw1MTIsW10sImU2MTgiLCJNMzMxLjUgMjM1LjdjMi4yIC45IDQuMiAxLjkgNi4zIDIuOCAyOS4yIDE0LjEgNTAuNiAzNS4yIDYxLjggNjEuNCAxNS43IDM2LjUgMTcuMiA5NS44LTMwLjMgMTQzLjItMzYuMiAzNi4yLTgwLjMgNTIuNS0xNDIuNiA1M2wtLjMgMGMtNzAuMi0uNS0xMjQuMS0yNC4xLTE2MC40LTcwLjItMzIuMy00MS00OC45LTk4LjEtNDkuNS0xNjkuNmwwLS41QzE3IDE4NC4zIDMzLjYgMTI3LjIgNjUuOSA4Ni4yIDEwMi4yIDQwLjEgMTU2LjIgMTYuNSAyMjYuNCAxNmwuMyAwYzcwLjMgLjUgMTI0LjkgMjQgMTYyLjMgNjkuOSAxOC40IDIyLjcgMzIgNTAgNDAuNiA4MS43bC00MC40IDEwLjhjLTcuMS0yNS44LTE3LjgtNDcuOC0zMi4yLTY1LjQtMjkuMi0zNS44LTczLTU0LjItMTMwLjUtNTQuNi01NyAuNS0xMDAuMSAxOC44LTEyOC4yIDU0LjQtMjYuMiAzMy4zLTM5LjggODEuNS00MC4zIDE0My4yIC41IDYxLjcgMTQuMSAxMDkuOSA0MC4zIDE0My4zIDI4IDM1LjYgNzEuMiA1My45IDEyOC4yIDU0LjQgNTEuNC0uNCA4NS40LTEyLjYgMTEzLjctNDAuOSAzMi4zLTMyLjIgMzEuNy03MS44IDIxLjQtOTUuOS02LjEtMTQuMi0xNy4xLTI2LTMxLjktMzQuOS0zLjcgMjYuOS0xMS44IDQ4LjMtMjQuNyA2NC44LTE3LjEgMjEuOC00MS40IDMzLjYtNzIuNyAzNS4zLTIzLjYgMS4zLTQ2LjMtNC40LTYzLjktMTYtMjAuOC0xMy44LTMzLTM0LjgtMzQuMy01OS4zLTIuNS00OC4zIDM1LjctODMgOTUuMi04Ni40IDIxLjEtMS4yIDQwLjktLjMgNTkuMiAyLjgtMi40LTE0LjgtNy4zLTI2LjYtMTQuNi0zNS4yLTEwLTExLjctMjUuNi0xNy43LTQ2LjItMTcuOGwtLjcgMGMtMTYuNiAwLTM5IDQuNi01My4zIDI2LjNsLTM0LjQtMjMuNmMxOS4yLTI5LjEgNTAuMy00NS4xIDg3LjgtNDUuMWwuOCAwYzYyLjYgLjQgOTkuOSAzOS41IDEwMy43IDEwNy43bC0uMiAuMiAuMSAwem0tMTU2IDY4LjhjMS4zIDI1LjEgMjguNCAzNi44IDU0LjYgMzUuMyAyNS42LTEuNCA1NC42LTExLjQgNTkuNS03My4yLTEzLjItMi45LTI3LjgtNC40LTQzLjQtNC40LTQuOCAwLTkuNiAuMS0xNC40IC40LTQyLjkgMi40LTU3LjIgMjMuMi01Ni4yIDQxLjhsLS4xIC4xeiJdfSxSRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3ByZXNzciIsaWNvbjpbNTEyLDUxMixbInJlbmRhY3QiXSwiZjNlNCIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQyNy4zIDE2Ni42Yy0xNS4yIDM0LjUtMzAuNCA2OS00NS42IDEwMy41LTIuNCA1LjUtNi45IDguMi0xMyA4LjItMjMgMC00NiAuMS02OSAwLTUuMSAwLTguMiAxLjktMTAuMyA2LjctMTAuMiAyMy42LTIwLjYgNDctMzEgNzAuNS0xLjUgMy41LTQuMSA1LjMtNy45IDUuMy00NS45IDAtOTEuOSAwLTEzNy44IDAtMy4xIDAtNS42LTEuMS03LjctMy40LTExLjItMTIuMy0yMi41LTI0LjYtMzMuNy0zNi45LTIuNy0zLTIuOC02LjItMS4yLTkuNyA4LjctMTkuNSAxNy4zLTM5LjEgMjUuOS01OC43IDEyLjktMjkuNCAyNS45LTU4LjcgMzguNy04OC4xIDEuNy0zLjkgNC4zLTUuNyA4LjUtNS43IDE0LjIgLjEgMjguNSAwIDQyLjcgMCA2LjIgMCA5LjIgNC44IDYuNyAxMC42LTEzLjYgMzAuOC0yNy4yIDYxLjYtNDAuNyA5Mi4zLTUuNyAxMy0xMS40IDI2LTE3LjEgMzktMy45IDkgNy4xIDEyIDExIDUuNiAuMi0uNC0xLjQgNC4yIDMwLTY3LjcgMS40LTMuMSAzLjQtNC40IDYuOC00LjQgMTUuMiAuMSAzMC40IDAgNDUuNiAwIDUuNiAwIDcuOSAzLjYgNS43IDguNy04LjMgMTktMTYuNyAzNy45LTI1IDU2LjktNSAxMS40IDguMSAxMi41IDExLjMgNS4zIDAtLjEgMjcuOS02My4zIDMyLjItNzMuMiAyLTQuNiA1LjQtNi41IDEwLjMtNi41IDI2LjQgLjEgNTIuOSAwIDc5LjMgMCAxMi40IDAgMTMuOS0xMy42IDMuOS0xMy42LTI1LjMgMC01MC41IDAtNzUuOCAwLTYuMyAwLTcuOC0yLjUtNS4zLTguMyA1LjgtMTMuMSAxMS42LTI2LjEgMTcuMy0zOS4yIDEuNy00IDQuNS01LjggOC44LTUuOCAyMy4xIC4xIDI2IDAgMTMwLjggMCA2LjEgMCA4IDIuOCA1LjYgOC4zeiJdfSwkNHI9UkVlLEE0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5b2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJiMSIsIk05MS4zIDc2bDE4NiAwLTcgMTguOS0xNzkgMGMtMzkuNyAwLTcxLjkgMzEuNi03MS45IDcwLjNsMCAyMDUuNGMwIDM1LjQgMjQuOSA3MC4zIDg0IDcwLjNsMCAxOS4xLTEyLjEgMEM0MS4yIDQ2MCAwIDQxOS44IDAgMzcwLjVMMCAxNjUuMkMwIDExNS45IDQwLjcgNzYgOTEuMyA3NnpNMzIwLjQgMjBsNjYuNSAwYy0xNDMuOCAzNzguMS0xNDUuNyAzOTguOS0xODQuNyA0MzkuMy0yMC44IDIxLjYtNDkuMyAzMS43LTc4LjMgMzIuN2wwLTUxLjFjNDkuMi03LjcgNjQuNi00OS45IDY0LjYtNzUuMyAwLTIwLjEgLjYtMTIuNi04Mi4xLTIyMy4ybDYxLjQgMCA1MC40IDE1Ni42IDEwMi4yLTI3OXpNNDQ4IDE2MS41bDAgMjk4LjUtMjE0IDBjNi42LTkuNiAxMC43LTE2LjMgMTIuMS0xOS40bDE4Mi41IDAgMC0yNzkuMWMwLTMyLjUtMTcuMS01MS45LTQ4LjItNjIuOUwzODcuMSA4MWM0MS43IDEzLjYgNjAuOSA0My4xIDYwLjkgODAuNXoiXX0sRTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5pbWJsciIsaWNvbjpbMzg0LDUxMixbXSwiZjVhOCIsIk0yNDYuNiAzNTMuM2EyNyAyNyAwIDEgMSAwLTU0IDI3IDI3IDAgMSAxIDAgNTR6bS03OS40LTI3YTI3LjEgMjcuMSAwIDEgMSAtNTQuMyAwIDI3LjEgMjcuMSAwIDEgMSA1NC4zIDB6TTE5MS44IDE1OUMxNTcgMTU5IDg5LjQgMTc4LjggNTkuMiAyMjdMMTQgMCAxNCAzMzUuNUMxNCA0MzMuMSA5My42IDUxMiAxOTEuOCA1MTJTMzY5LjUgNDMzIDM2OS41IDMzNS41IDI5MC4xIDE1OSAxOTEuOCAxNTl6bTAgMzA4LjFjLTczLjMgMC0xMzIuNS01OC45LTEzMi41LTEzMS42czU5LjItMTMxLjYgMTMyLjUtMTMxLjYgMTMyLjUgNTguOSAxMzIuNSAxMzEuNS01OS4zIDEzMS42LTEzMi41IDEzMS42bDAgLjF6Il19LEk0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXhlbGZlZCIsaWNvbjpbNTEyLDUxMixbXSwiZTdkYiIsIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6TTIzNS43IDMxMS45bDQ3IDBjNDQuMiAwIDgwLjEtMzQuOSA4MC4xLTc4cy0zNS45LTc4LTgwLjEtNzhsLTY3LjggMGMtMjUuNSAwLTQ2LjIgMjAuMS00Ni4yIDQ1bDAgMTc1LjEgNjctNjQuMXoiXX0sUDRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhaG9vIixpY29uOls1MTIsNTEyLFtdLCJmMTllIiwiTTIyMy44IDE0MS4xbC01Ni43IDE0My4yLTU2LTE0My4yLTk2LjEgMCAxMDUuOCAyNDkuMS0zOC42IDg5LjggOTQuMiAwIDE0MC45LTMzOC45LTkzLjYgMHpNMzI5LjIgMjc2LjlhNTguMiA1OC4yIDAgMSAwIDAgMTE2LjQgNTguMiA1OC4yIDAgMSAwIDAtMTE2LjR6TTM5NC43IDMybC05MyAyMjMuNSAxMDQuOCAwIDkyLjYtMjIzLjUtMTA0LjQgMHoiXX0sTjRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWVza3kiLGljb246WzU3Niw1MTIsW10sImU2NzEiLCJNNDA3LjggMjk0LjdjLTMuMy0uNC02LjctLjgtMTAtMS4zIDMuNCAuNCA2LjcgLjkgMTAgMS4zek0yODggMjI3LjFDMjYxLjkgMTc2LjQgMTkwLjkgODEuOSAxMjQuOSAzNS4zIDYxLjYtOS40IDM3LjUtMS43IDIxLjYgNS41IDMuMyAxMy44IDAgNDEuOSAwIDU4LjRTOS4xIDE5NCAxNSAyMTMuOWMxOS41IDY1LjcgODkuMSA4Ny45IDE1My4yIDgwLjcgMy4zLS41IDYuNi0uOSAxMC0xLjQtMy4zIC41LTYuNiAxLTEwIDEuNC05My45IDE0LTE3Ny4zIDQ4LjItNjcuOSAxNjkuOSAxMjAuMyAxMjQuNiAxNjQuOC0yNi43IDE4Ny43LTEwMy40IDIyLjkgNzYuNyA0OS4yIDIyMi41IDE4NS42IDEwMy40IDEwMi40LTEwMy40IDI4LjEtMTU2LTY1LjgtMTY5LjktMy4zLS40LTYuNy0uOC0xMC0xLjMgMy40IC40IDYuNyAuOSAxMCAxLjMgNjQuMSA3LjEgMTMzLjYtMTUuMSAxNTMuMi04MC43IDUuOS0xOS45IDE1LTEzOC45IDE1LTE1NS41cy0zLjMtNDQuNy0yMS42LTUyLjljLTE1LjgtNy4xLTQwLTE0LjktMTAzLjIgMjkuOC02Ni4xIDQ2LjYtMTM3LjEgMTQxLjEtMTYzLjIgMTkxLjh6Il19LE80cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY3JpYmQiLGljb246WzM4NCw1MTIsW10sImYyOGEiLCJNNDIuNiAyNTIuN2MtMTYuMS0xOS0yNC43LTQ1LjktMjQuOC03OS45IDAtMTAwLjQgNzUuMi0xNTMuMSAxNjcuMi0xNTMuMSA5OC42LTEuNiAxNTYuOCA0OSAxODQuMyA3MC42bC01MC41IDcyLjEtMzcuMy0yNC42IDI2LjktMzguNmMtMzYuNS0yNC03OS40LTM2LjUtMTIzLTM1LjgtNTAuNy0uOC0xMTEuNyAyNy4yLTExMS43IDc2LjIgMCAxOC43IDExLjIgMjAuNyAyOC42IDE1LjYgMjMuMy01LjMgNDEuOSAuNiA1NS44IDE0IDI2LjQgMjQuMyAyMy4yIDY3LjYtLjcgOTEuOS0yOS4yIDI5LjUtODUuMiAyNy4zLTExNC44LTguNHptMzE3LjcgNS45Yy0xNS41LTE4LjgtMzguOS0yOS40LTYzLjItMjguNi0zOC4xLTItNzEuMSAyOC03MC41IDY3LjItLjcgMTYuOCA2IDMzIDE4LjQgNDQuMyAxNC4xIDEzLjkgMzMgMTkuNyA1Ni4zIDE0LjQgMTcuNC01LjEgMjguNi0zLjEgMjguNiAxNS42IDAgNC4zLS41IDguNS0xLjQgMTIuNy0xNi43IDQwLjktNTkuNSA2NC40LTEyMS40IDY0LjQtNTEuOSAuMi0xMDIuNC0xNi40LTE0NC4xLTQ3LjNsMzMuNy0zOS40LTM1LjYtMjcuNC02MC44IDcxLjggMTUuNCAxMy44YzUyLjUgNDYuOCAxMjAuNCA3Mi41IDE5MC43IDcyLjIgNTEuNCAwIDk0LjQtMTAuNSAxMzMuNi00NC4xIDU3LjEtNTEuNCA1NC4yLTE0OS4yIDIwLjMtMTg5LjZ6Il19LFI0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXBkIixpY29uOls1MTIsNTEyLFtdLCJmNGVjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCA0NDkuNWMtMTM5LjIgMC0yMzUuOC0xMzgtMTkwLjItMjY3LjlsNzguOCAzNS4xYy0yLjEgMTAuNS0zLjMgMjEuNS0zLjMgMzIuOSAwIDk5IDczLjkgMTI2LjkgMTIwLjQgMTI2LjkgMjIuOSAwIDUzLjUtNi43IDc5LjQtMjkuNUwzMDUgMzExLjFjLTUuNSA2LjMtMTcuNiAxNi43LTM2LjMgMTYuNy0zNy44IDAtNTMuNy0zOS45LTUzLjktNzEuOSAyMzAuNCAxMDIuNiAyMTYuNSA5Ni41IDIxNy45IDk2LjgtMzQuMyA2Mi40LTEwMC42IDEwNC44LTE3Ni43IDEwNC44em0xOTQuMi0xNTBsLTIyNC0xMDBjMTguOC0zNCA1NC45LTMwLjcgNzQuNy0xMWw0MC40LTQxLjZjLTI3LjEtMjMuMy01OC0yNy41LTc4LjEtMjcuNS00Ny40IDAtODAuOSAyMC41LTEwMC43IDUxLjZMODcuNiAxNDUuNmMzNi4xLTU0LjkgOTguMS05MS4yIDE2OC41LTkxLjIgMTExLjEgMCAyMDEuNSA5MC40IDIwMS41IDIwMS41IDAgMTgtMi40IDM1LjQtNi44IDUyLS4zLS4xLS40LS4yLS42LS40eiJdfSxGNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWFybHliaXJkcyIsaWNvbjpbNTEyLDUxMixbXSwiZjM5YSIsIk0zMjkuMyA0Ny41YzEuMi0xMyAyMS4zLTE0IDM2LjYtOC43IC45IC4zIDI2LjIgOS43IDE5IDE1LjItMjcuOS03LjQtNTYuNCAxOC4yLTU1LjYtNi41em0tMjAxIDYuOWMzMC43LTguMSA2MiAyMCA2MS4xLTcuMS0xLjMtMTQuMi0yMy40LTE1LjMtNDAuMi05LjYtMSAuMy0yOC43IDEwLjUtMjAuOSAxNi43ek0zMzUuNSAxNjBhMTYgMTYgMCAxIDAgMCAzMiAxNiAxNiAwIDEgMCAwLTMyem0tMTU5LjcgMGExNiAxNiAwIDEgMCAwIDMyIDE2IDE2IDAgMSAwIDAtMzJ6TTQ5NC4zIDMyMy4yYy05LjkgMjQtNDAuNyAxMS02My45LTEuMi0xMy41IDY5LjEtNTguMSAxMTEuNC0xMjYuMyAxMjQuMiAuMyAuOS0yLS4xIDI0IDEgMzMuNiAxLjQgNjMuOC0zLjEgOTcuNC04LTE5LjgtMTMuOC0xMS40LTM3LjEtOS44LTM4LjEgMS40LS45IDE0LjcgMS43IDIxLjYgMTEuNSA4LjYtMTIuNSAyOC40LTE0LjggMzAuMi0xMy42IDEuNiAxLjEgNi42IDIwLjktNi45IDM0LjYgNC43LS45IDguMi0xLjYgOS44LTIuMSAyLjYtLjggMTcuNyAxMS4zIDMuMSAxMy4zLTE0LjMgMi4zLTIyLjYgNS4xLTQ3LjEgMTAuOC00NS45IDEwLjctODUuOSAxMS44LTExNy43IDEyLjhsMSAxMS42YzMuOCAxOC4xLTIzLjQgMjQuMy0yNy42IDYuMiAuOCAxNy45LTI3LjEgMjEuOC0yOC40LTFsLS41IDUuM2MtLjcgMTguNC0yOC40IDE3LjktMjguMy0uNi03LjUgMTMuNS0yOC4xIDYuOC0yNi40LTguNWwxLjItMTIuNGMtMzYuNyAuOS01OS43IDMuMS02MS44IDMuMS0yMC45IDAtMjAuOS0zMS42IDAtMzEuNiAyLjQgMCAyNy43IDEuMyA2My4yIDIuOC02MS4xLTE1LjUtMTAzLjctNTUtMTE0LjktMTE4LjItMjUgMTIuOC01Ny41IDI2LjgtNjguMiAuOC0xMC41LTI1LjQgMjEuNS00Mi42IDY2LjgtNzMuNCAuNy02LjYgMS42LTEzLjMgMi43LTE5LjgtMTQuNC0xOS42LTExLjYtMzYuMy0xNi4xLTYwLjQtMTYuOCAyLjQtMjMuMi05LjEtMjMuNi0yMy4xIC4zLTcuMyAyLjEtMTQuOSAyLjQtMTUuNCAxLjEtMS44IDEwLjEtMiAxMi43LTIuNiA2LTMxLjcgNTAuNi0zMy4yIDkwLjktMzQuNSAxOS43LTIxLjggNDUuMi00MS41IDgwLjktNDguMy0xNS4zLTE5LjQtMy40LTM5LjktMi40LTQwLjQgMS43LS44IDIxLjIgNC4zIDI2LjMgMjMuMiA1LjItOC44IDE4LjMtMTEuNCAxOS42LTEwLjcgMS4xIC42IDYuNCAxNS00LjkgMjUuOSA0MC4zIDMuNSA3Mi4yIDI0LjcgOTYgNTAuNyAzNi4xIDEuNSA3MS44IDUuOSA3Ny4xIDM0IDIuNyAuNiAxMS42IC44IDEyLjcgMi42IC4zIC41IDIuMSA4LjEgMi40IDE1LjQtLjUgMTMuOS02LjggMjUuNC0yMy42IDIzLjEtMy4yIDE3LjMtMi43IDMyLjktOC43IDQ3LjcgMi40IDExLjcgNCAyMy44IDQuOCAzNi40IDM3IDI1LjQgNzAuMyA0Mi41IDYwLjMgNjYuOXpNMjIzLjUgMTU5LjljLjktNDQtMzcuOS00Mi4yLTc4LjYtNDAuMy0yMS43IDEtMzguOSAxLjktNDUuNSAxMy45LTExLjQgMjAuOSA1LjkgOTIuOSAyMy4yIDEwMS4yIDkuOCA0LjcgNzMuNCA3LjkgODYuMy03LjEgOC4yLTkuNCAxNS00OS40IDE0LjYtNjcuN3ptNTIgNTguM2MtNC4zLTEyLjQtNi0zMC4xLTE1LjMtMzIuNy0yLS41LTktLjUtMTEgMC0xMCAyLjgtMTAuOCAyMi4xLTE3IDM3LjIgMTUuNCAwIDE5LjMgOS43IDIzLjcgOS43IDQuMyAwIDYuMy0xMS4zIDE5LjYtMTQuMnptMTM1LjctODQuN2MtNi42LTEyLjEtMjQuOC0xMi45LTQ2LjUtMTMuOS00MC4yLTEuOS03OC4yLTMuOC03Ny4zIDQwLjMtLjUgMTguMyA1IDU4LjMgMTMuMiA2Ny44IDEzIDE0LjkgNzYuNiAxMS44IDg2LjMgNy4xIDE1LjgtNy42IDM2LjUtNzguOSAyNC4zLTEwMS4zeiJdfSxCNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ltZm9ueWNhc3RzIixpY29uOls1NzYsNTEyLFtdLCJlOGFiIiwiTTI5My44IDM0Mi41YzMuNC0xLjUgNi44LTEuNSAxMC4yIDBsNTQuMiAyMi42YzIuNiAuOSA0LjcgMi42IDYuMiA0LjhzMi4zIDQuOCAyLjMgNy42YzAgMTkuNC0zLjYgMzcuMi0xMC43IDUzLjQtNi4yIDEzLjYtMTQuNSAyNS40LTI0LjggMzUuNi04LjcgOC41LTE3LjcgMTQuNi0yNy4xIDE4LjQtMy40IDEuNS02LjggMS41LTEwLjIgMC0xMC43LTQuMy0yMC42LTExLjMtMjkuNy0yMC45LTEwLTEwLjQtMTcuOC0yMi41LTIzLjUtMzYuNC02LjQtMTUuNi05LjYtMzIuMy05LjYtNTAgMC0yLjggLjctNS40IDIuMi03LjYgMS41LTIuMyAzLjYtMy45IDYuMi00LjhsNTQuMi0yMi42ek00NzkuNyA0ODMuOGE3MC4xIDcwLjEgMCAxIDEgMC0xNDAuMiA3MC4xIDcwLjEgMCAxIDEgMCAxNDAuMnpNMjQ0LjYgMzc3LjZjMCAxNS4zIDIuNiAyOS43IDcuOSA0My4yIDQuOSAxMi40IDExLjYgMjMuMyAyMC4xIDMyLjUgOC4xIDguOSAxNi45IDE1LjMgMjYuMyAxOS4yIDkuMi0zLjggMTcuOC0xMCAyNS43LTE4LjcgOC43LTkuMiAxNS40LTE5LjkgMjAuMy0zMi4yIDUuNS0xMy43IDguMi0yOC40IDguMi00NC4xbC01NC4yLTIyLjYtNTQuMiAyMi42em0yMzUuMS0yMC4zYTU2LjUgNTYuNSAwIDEgMCAwIDExMyA1Ni41IDU2LjUgMCAxIDAgMC0xMTN6bS0zNTIuOCAyLjNjNC4xIDAgNy42IDEuMyAxMC40IDMuOSAyLjggMi42IDQuMiA1LjkgNC4yIDkuNmwwIDE2LjQgMzEuMS0xOS4yYzEuNS0xLjEgMy4yLTEuNyA1LjEtMS43IDIuNCAwIDQuNiAuOCA2LjMgMi41czIuNyAzLjggMi43IDYuMmwwIDcyLjZjMCAyLjYtLjkgNC44LTIuNyA2LjVzLTMuOSAyLjUtNi4zIDIuNWMtMS45IDAtMy42LS42LTUuMS0xLjdsLTMxLjEtMTkuMiAwIDE2LjRjMCAzLjgtMS40IDctNC4yIDkuNnMtNi4zIDQtMTAuNCA0bC04OC4yIDBjLTQuMSAwLTcuNi0xLjMtMTAuNS00cy00LjItNS44LTQuMi05LjZsMC04MS4zYzAtMy44IDEuNC03IDQuMi05LjZzNi4zLTMuOSAxMC41LTMuOWw4OC4yIDB6bTE3MiA5Ny44Yy0xMS4zLTctMjAuNC0xNi40LTI3LjQtMjguMy03LjUtMTIuNC0xMS45LTI2LjYtMTMtNDIuNGw0MC40LTE3IDAgODcuNnpNMzcuNSAzNzMuNGwwIDgwLjhjLjIgLjIgLjYgLjMgMS4yIC4zbDg4LjIgMGMuNCAwIC43LS4xIDEuMS0uM2wwLTgwLjhjLS4yLS4yLS42LS4zLTEuMi0uM2wtODguMSAwYy0uNCAwLS44IC4xLTEuMiAuM3ptNDE4LjQgNS4xYzIuMy0xLjMgNC41LTEuMyA2LjggMGw0OS44IDMwLjJjMi4zIDEuMyAzLjQgMy4zIDMuNCA1LjlzLTEuMSA0LjYtMy40IDUuOWwtNDkuOCAyOC42Yy0yLjMgMS4zLTQuNSAxLjMtNi44IDBzLTMuNC0zLjMtMy40LTUuOWwwLTU4LjhjMC0yLjYgMS4xLTQuNiAzLjQtNS45ek0xNDEuNSA0MDUuNWwwIDE2LjQgMzEuNyAxOS44IDAtNTYtMzEuNyAxOS44ek00NTEuMSA1LjJjMzUuOC0xLjIgNjIuOSAxNS4xIDYzLjggNDAuOCAuNCAxMC45LTUuOSAzMi4yLTI3LjggMzMtMTYuMyAuNi0yNy42LTkuMi0yOC4xLTI0LjEtLjItNS40IDEuMi0xMC4yIDQuOS0xNS44IDMuNi03LjEgNC40LTcuOSA0LjMtMTEtLjMtOS40LTE0LjUtOS43LTE4LjMtOS41LTUzIDEuOC02Ni45IDczLjMtNzguMiAxMzEuNWwtNS42IDMwLjdjMzAuNSA0LjUgNTIuMi0xIDY0LjItOC44IDE3LTExLTQuOC0yMi40LTItMzUgMi44LTEyLjggMTQuNC0xOSAyMy43LTE5LjIgMTIuOS0uMyAyMi4yIDEzLjEgMjEuOSAyNi43LS41IDIyLjYtMzAuNCA1My42LTkwLjIgNTIuMy03LjMtLjItMTQtLjctMjAuMi0xLjRsLTExLjMgNjIuM2MtMyAxNC02LjMgMjkuNS0xMC43IDQ1LjhsMjA0IDAgLjkgLjFjLjMgLjEgLjYgLjEgLjggLjIgMi4yIC42IDQgMi41IDQuNSA0LjggLjYgMi44LTEgNi0zLjcgNy4yLS41IC4yLTEuMSAuNC0xLjcgLjUtLjMgMC0uNiAwLS45IC4xbC01MTUuMyAwYy0uNy0uMS0uOSAwLTEuNy0uMi0yLjUtLjctNC40LTMuMS00LjYtNS43LS4yLTIuMyAxLTQuNiAzLTUuOCAuNy0uNSAxLjYtLjggMi40LS45IC4zIDAgLjYgMCAuOC0uMWw0OC40IDBjLTE3LjItMTYuOC0yMC0zNy4yLTE2LTUwLjUgNS40LTE3LjYgMTkuNC0yMC45IDMzLTE2LjcgMTQuNiA0LjUgMjAuMyAyMi4zIDE2LjIgMzYtLjUgMS41LTEuMiAzLjktMi44IDcuMi0xLjcgMy44LTQuOCA3LjEtNi4yIDExLjUtMS41IDQuOSAuNyA5LjEgNC41IDEyLjZsNTguOSAwYzQuMi00IDcuNC05IDkuMS0xNC42IDUuMy0xNy01LjUtMjguOS0xMC0zMy41bC0yMS43LTIzLjJjLTkuOS0xMS4xLTMxLjctNDEuOS0yMS4xLTc2LjUgNC4xLTEzLjQgMTIuOC0yNy41IDI1LjMtMzYuOSAyNi41LTE5LjcgNTUuMy0yMyA4Mi43LTE1LjEgMzUuNSAxMC4yIDUyLjUgMzMuNyA3NC42IDUxLjggMTIuNC0zNi4zIDI5LjUtNzEuOSA1NS4zLTEwMS45IDIzLjMtMjcuMyA1NC42LTQ3LjEgOTAuNC00OC4zek0yMjkuNiAxMjEuM2MtMjIuMi02LTM1LjctLjktNDUuMiAxMS4yLTExLjMgMTQuMy03LjUgMzIuOCAzLjMgNDMuN2wxOCAxOS45YzIyIDI1LjUgMzQuMSA0NS4zIDI5LjYgNzItMi4yIDEzLjEtOC41IDI1LjItMTcuOSAzNS4zbDU0LjIgMGMxLTUuMSAyLTEwLjQgMy4xLTE1LjhsMy42LTIxLjljNS45LTI5LjQgMTIuNC02Mi4yIDIyLjMtOTQuOC0yNC4xLTE4LjEtMzguNS00MC43LTcwLjktNDkuNXoiXX0sRkVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1vZG5va2xhc3NuaWtpIixpY29uOls0NDgsNTEyLFsib2Rub2tsYXNzbmlraS1zcXVhcmUiXSwiZjI2NCIsIk0yMjQgMTM3LjFjLTUuNC0uMy0xMC44IC42LTE1LjkgMi40cy05LjcgNC44LTEzLjYgOC41LTcgOC4yLTkuMiAxMy4yLTMuMiAxMC4zLTMuMiAxNS43IDEuMSAxMC44IDMuMiAxNS43IDUuMyA5LjUgOS4yIDEzLjIgOC42IDYuNiAxMy42IDguNSAxMC41IDIuNyAxNS45IDIuNGM1LjQgLjMgMTAuOC0uNiAxNS45LTIuNHM5LjctNC44IDEzLjYtOC41IDctOC4yIDkuMi0xMy4yIDMuMi0xMC4zIDMuMi0xNS43LTEuMS0xMC44LTMuMi0xNS43LTUuMy05LjUtOS4yLTEzLjItOC42LTYuNi0xMy42LTguNS0xMC41LTIuNy0xNS45LTIuNHpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCAyNThhODEgODEgMCAxIDEgMC0xNjIuMSA4MSA4MSAwIDEgMSAwIDE2Mi4xem01OS4zIDYuMmMxNi44LTEzLjIgMjkuNS01LjUgMzQuMSAzLjYgNy44IDE2LTEuMSAyMy43LTIxLjUgMzctMTcuMSAxMC45LTQwLjcgMTUuMi01Ni4yIDE2LjhsMTMgMTIuOSA0Ny43IDQ3LjdjMTcuNCAxNy45LTExIDQ1LjgtMjguNiAyOC42LTEyLTEyLjItMjkuNS0yOS43LTQ3LjctNDcuOWwtNDcuNyA0Ny45Yy0xNy43IDE3LjItNDYtMTEtMjguNC0yOC42IDMuNy0zLjcgNy45LTcuOSAxMi41LTEyLjUgMTAuNC0xMC40IDIyLjYtMjIuNyAzNS4yLTM1LjJsMTIuOS0xMi45Yy0xNS40LTEuNi0zOS4zLTUuNy01Ni42LTE2LjgtMjAuMy0xMy4zLTI5LjMtMjAuOS0yMS40LTM3IDQuNi05LjEgMTcuMy0xNi44IDM0LjEtMy42IDAgMCAyMi43IDE4IDU5LjMgMThzNTkuMy0xOCA1OS4zLTE4eiJdfSxINHI9RkVlLHE0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYXJrZG93biIsaWNvbjpbNjQwLDUxMixbXSwiZjYwZiIsIk01OTMuOCA1OS4xbC01NDcuNiAwQzIwLjcgNTkuMSAwIDc5LjggMCAxMDUuMkwwIDQwNi43YzAgMjUuNSAyMC43IDQ2LjIgNDYuMiA0Ni4ybDU0Ny43IDBjMjUuNSAwIDQ2LjItMjAuNyA0Ni4xLTQ2LjFsMC0zMDEuNmMwLTI1LjQtMjAuNy00Ni4xLTQ2LjItNDYuMXpNMzM4LjUgMzYwLjZsLTYxLjUgMCAwLTEyMC02MS41IDc2LjktNjEuNS03Ni45IDAgMTIwLTYxLjcgMCAwLTIwOS4yIDYxLjUgMCA2MS41IDc2LjkgNjEuNS03Ni45IDYxLjUgMCAwIDIwOS4yIC4yIDB6bTEzNS4zIDMuMWwtOTIuMy0xMDcuNyA2MS41IDAgMC0xMDQuNiA2MS41IDAgMCAxMDQuNiA2MS41IDAtOTIuMiAxMDcuN3oiXX0sVjRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR5cG8zIixpY29uOls0NDgsNTEyLFtdLCJmNDJiIiwiTTE3OC43IDc4LjRjMC0yNC43IDUuNC0zMi40IDEzLjktMzkuNC02OS41IDguNS0xNDkuMyAzNC0xNzYuMyA2Ni40LTUuNCA3LjctOS4zIDIwLjgtOS4zIDM3LjEgMCAxMDMuNSAxMDYuOCAzMzcuNSAxODQuMSAzMzcuNSAzNi4zIDAgOTcuMy01OS41IDE0Ni43LTEzOS03IDIuMy0xMS42IDIuMy0xOC41IDIuMy01Ny4yIDAtMTQwLjYtMTk4LjUtMTQwLjYtMjY0Ljl6TTMwMS41IDMyYy0zMC4xIDAtNDEuNyA1LjQtNDEuNyAzNi4zIDAgNjYuNCA1My44IDE5OC41IDEwMS43IDE5OC41IDI2LjMgMCA3OC44LTk5LjcgNzguOC0xODIuMyAwLTQwLjktNjctNTIuNS0xMzguOC01Mi41eiJdfSxqNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiam9vbWxhIixpY29uOls0NDgsNTEyLFtdLCJmMWFhIiwiTS42IDkyLjFjMC0zMy4zIDI2LjgtNjAuMSA1OS44LTYwLjEgMzAgMCA1NC41IDIxLjkgNTkuMiA1MC4yIDMyLjYtNy42IDY3LjEgLjYgOTYuNSAzMGwtNDQuMyA0NC4zYy0yMC41LTIwLjUtNDIuNi0xNi4zLTU1LjQtMy41LTE0LjMgMTQuMy0xNC4zIDM3LjkgMCA1Mi4ybDk5LjUgOTkuNS00NCA0NC4zYy04Ny43LTg3LjItNDkuNy00OS43LTk5LjgtOTkuNy0yNi44LTI2LjUtMzUtNjQuOC0yNC44LTk4LjktMjYuOS01LjgtNDYuNy0yOS43LTQ2LjctNTguM3pNMTMwLjEgMjA4LjVsNDQuMyA0NC4zYzEwLTEwIDg5LjctODkuNyA5OS43LTk5LjggMTQuMy0xNC4zIDM3LjYtMTQuMyA1MS45IDAgMTIuOCAxMi44IDE3IDM1LTMuNSA1NS40bDQ0IDQ0LjNjMzEuMi0zMS4yIDM4LjUtNjcuNiAyOC45LTEwMS4yIDI5LjItNC4xIDUxLjktMjkuMiA1MS45LTU5LjUgMC0zMy4yLTI2LjgtNjAuMS01OS44LTYwLjEtMzAuMyAwLTU1LjQgMjIuNS01OS41IDUxLjYtMzMuOC05LjktNzEuNy0xLjUtOTguMyAyNS4xLTE4LjMgMTkuMS03MS4xIDcxLjUtOTkuNiA5OS45ek0zOTYuNCAzNjAuN2M4LjItMzIuNy0uOS02OC41LTI2LjMtOTMuOS0xMS44LTEyLjIgNSA0LjctOTkuNS05OS43bC00NC4zIDQ0LjMgOTkuNyA5OS43YzE0LjMgMTQuMyAxNC4zIDM3LjYgMCA1MS45LTEyLjggMTIuOC0zNSAxNy01NS40LTMuNWwtNDQgNDQuM2MyNy42IDMwLjIgNjggMzguOCAxMDIuNyAyOCA1LjUgMjcuNCAyOS43IDQ4LjEgNTguOSA0OC4xIDMzIDAgNTkuOC0yNi44IDU5LjgtNjAuMSAwLTMwLjItMjIuNS01NS01MS42LTU5LjF6bS04NC4zLTUzLjFsLTQ0LTQ0LjNjLTg3IDg2LjQtNTAuNCA1MC40LTk5LjcgOTkuOC0xNC4zIDE0LjMtMzcuNiAxNC4zLTUxLjkgMC0xMy4xLTEzLjQtMTYuOS0zNS4zIDMuMi01NS40bC00NC00NC4zYy0zMC4yIDMwLjItMzggNjUuMi0yOS41IDk4LjMtMjYuNyA2LTQ2LjIgMjkuOS00Ni4yIDU4LjIgMCAzMy4zIDI2LjggNjAuMSA1OS44IDYwLjEgMjguNiAwIDUyLjUtMTkuOCA1OC42LTQ2LjcgMzIuNyA4LjIgNjguNS0uNiA5NC4yLTI2IDMyLjEtMzIgMTIuMi0xMi40IDk5LjUtOTkuN3oiXX0sVTRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlaXhpbiIsaWNvbjpbNTc2LDUxMixbXSwiZjFkNyIsIk0zODUuMiAxNjcuNmM2LjQgMCAxMi42IC4zIDE4LjggMS4xLTE2LjYtNzguNC0xMDAuNy0xMzYuNy0xOTYuMy0xMzYuNy0xMDcuMiAwLTE5NC43IDcyLjgtMTk0LjcgMTY1LjQgMCA1My40IDI5LjMgOTcuNSA3Ny45IDEzMS42bC0xOS4zIDU4LjYgNjgtMzQuMWMyNC40IDQuOCA0My44IDkuNyA2OC4yIDkuNyA2LjIgMCAxMi4xLS4zIDE4LjMtLjgtNC0xMi45LTYuMi0yNi42LTYuMi00MC44LS4xLTg0LjkgNzIuOS0xNTQgMTY1LjMtMTU0ek0yODAuNyAxMTQuN2MxNC41IDAgMjQuMiA5LjcgMjQuMiAyNC40IDAgMTQuNS05LjcgMjQuMi0yNC4yIDI0LjItMTQuOCAwLTI5LjMtOS43LTI5LjMtMjQuMiAuMS0xNC43IDE0LjYtMjQuNCAyOS4zLTI0LjR6TTE0NC4zIDE2My4zYy0xNC41IDAtMjkuMy05LjctMjkuMy0yNC4yIDAtMTQuOCAxNC44LTI0LjQgMjkuMy0yNC40IDE0LjggMCAyNC40IDkuNyAyNC40IDI0LjQgMCAxNC42LTkuNiAyNC4yLTI0LjQgMjQuMnpNNTYzIDMxOS40YzAtNzcuOS03Ny45LTE0MS4zLTE2NS40LTE0MS4zLTkyLjcgMC0xNjUuNCA2My40LTE2NS40IDE0MS4zUzMwNSA0NjAuNyAzOTcuNiA0NjAuN2MxOS4zIDAgMzguOS01LjEgNTguNi05LjlsNTMuNCAyOS4zLTE0LjgtNDguNkM1MzQgNDAyLjEgNTYzIDM2My4yIDU2MyAzMTkuNHpNMzQzLjkgMjk0LjljLTkuNyAwLTE5LjMtOS43LTE5LjMtMTkuNiAwLTkuNyA5LjctMTkuMyAxOS4zLTE5LjMgMTQuOCAwIDI0LjQgOS43IDI0LjQgMTkuMyAwIDEwLTkuNyAxOS42LTI0LjQgMTkuNnptMTA3LjEgMGMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC41IDAgMjQuNCA5LjcgMjQuNCAxOS4zIC4xIDEwLTkuOSAxOS42LTI0LjQgMTkuNnoiXX0sVzRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdydW50IixpY29uOlszODQsNTEyLFtdLCJmM2FkIiwiTTYxLjYgMTg5LjNjLTEuMSAxMCA1LjIgMTkuMSA1LjIgMTkuMSAuNy03LjUgMi4yLTEyLjggNC0xNi42IC40IDEwLjMgMy4yIDIzLjUgMTIuOCAzNC4xIDYuOSA3LjYgMzUuNiAyMy4zIDU0LjkgNi4xIDEgMi40IDIuMSA1LjMgMyA4LjUgMi45IDEwLjMtMi43IDI1LjMtMi43IDI1LjNzMTUuMS0xNy4xIDEzLjktMzIuNWMxMC44LS41IDIxLjQtOC40IDIxLjEtMTkuNSAwIDAtMTguOSAxMC40LTM1LjUtOC44LTkuNy0xMS4yLTQwLjktNDItODMuMS0zMS44IDQuMyAxIDguOSAyLjQgMTMuNSA0LjFsLS4xIDBjLTQuMiAyLTYuNSA3LjEtNyAxMnptMjguMy0xLjhjMTkuNSAxMSAzNy40IDI1LjcgNDQuOSAzNy01LjcgMy4zLTIxLjcgMTAuNC0zOC0xLjctMTAuMy03LjYtOS44LTI2LjItNi45LTM1LjN6TTIzMiAyMzMuM2MtMS4yIDE1LjUgMTMuOSAzMi41IDEzLjkgMzIuNXMtNS42LTE1LTIuNy0yNS4zYy45LTMuMiAyLTYgMy04LjUgMTkuMyAxNy4zIDQ4IDEuNSA1NC44LTYuMSA5LjYtMTAuNiAxMi4zLTIzLjggMTIuOC0zNC4xIDEuOCAzLjggMy40IDkuMSA0IDE2LjYgMCAwIDYuNC05LjEgNS4yLTE5LjEtLjYtNS0yLjktMTAtNy0xMS44bC0uMSAwYzQuNi0xLjggOS4yLTMuMiAxMy41LTQuMS00Mi4zLTEwLjItNzMuNCAyMC42LTgzLjEgMzEuOC0xNi43IDE5LjItMzUuNSA4LjgtMzUuNSA4LjgtLjIgMTAuOSAxMC40IDE4LjkgMjEuMiAxOS4zem02Mi43LTQ1LjhjMyA5LjEgMy40IDI3LjctNyAzNS40LTE2LjMgMTIuMS0zMi4yIDUtMzcuOSAxLjYgNy41LTExLjQgMjUuNC0yNiA0NC45LTM3em0tMTM0LjQgMjMxbC0yOS40IDBjLTUuNSAwLTguMiAxLjYtOS41IDIuOS0xLjkgMi0yLjIgNC43LS45IDguMSAzLjUgOS4xIDExLjQgMTYuNSAxMy43IDE4LjYgMy4xIDIuNyA3LjUgNC4zIDExLjggNC4zIDQuNCAwIDguMy0xLjcgMTEtNC42IDcuNS04LjIgMTEuOS0xNy4xIDEzLTE5LjggLjYtMS41IDEuMy00LjUtLjktNi44LTEuOC0xLjgtNC43LTIuNy04LjgtMi43ek0zNDkuNSAzMTcuM2MtMi40IDE3LjktMTMgMzMuOC0yNC42IDQzLjctMy4xLTIyLjctMy43LTU1LjUtMy43LTYyLjQgMC0xNC43IDkuNS0yNC41IDEyLjItMjYuMSAyLjUtMS41IDUuNC0zIDguMy00LjYgMTgtOS42IDQwLjQtMjEuNiA0MC40LTQzLjcgMC0xNi4yLTkuMy0yMy4yLTE1LjQtMjcuOC0uOC0uNi0xLjUtMS4xLTIuMi0xLjctMi4xLTEuNy0zLjctMy00LjMtNC40LTQuNC05LjgtMy42LTM0LjItMS43LTM3LjYgLjYtLjYgMTYuNy0yMC45IDExLjgtMzkuMi0yLTcuNC02LjktMTMuMy0xNC4xLTE3LTUuMy0yLjctMTEuOS00LjItMTkuNS00LjUtLjEtMi0uNS0zLjktLjktNS45LS42LTIuNi0xLjEtNS4zLS45LTguMSAuNC00LjcgLjgtOSAyLjItMTEuMyA4LjQtMTMuMyAyOC44LTE3LjYgMjktMTcuNmwxMi4zLTIuNC04LjEtOS41Yy0uMS0uMi0xNy4zLTE3LjUtNDYuMy0xNy41LTcuOSAwLTE2IDEuMy0yNC4xIDMuOS0yNC4yIDcuOC00Mi45IDMwLjUtNDkuNCAzOS4zLTMuMS0xLTYuMy0xLjktOS42LTIuNy00LjItMTUuOCA5LTM4LjUgOS0zOC41cy0xMy42LTMtMzMuNyAxNS4yYy0yLjYtNi41LTguMS0yMC41LTEuOC0zNy4yLTI5LjUgMTAuNC0zNi45IDI2LjMtMzkuMSA0MC43LTcuNi01LjQtNi43LTIzLjEtNy4yLTI3LjYtNy41IC45LTI5LjIgMjEuOS0yOC4yIDQ4LjMtMiAuNS0zLjkgMS4xLTUuOSAxLjctNi41LTguOC0yNS4xLTMxLjUtNDkuNC0zOS4zLTcuOS0yLjItMTYtMy41LTIzLjktMy41LTI5IDAtNDYuMSAxNy4zLTQ2LjMgMTcuNWwtOC4xIDkuNCAxMi4zIDIuNGMuMiAwIDIwLjYgNC4zIDI5IDE3LjYgMS40IDIuMiAxLjggNi42IDIuMiAxMS4zIC4yIDIuOC0uNCA1LjUtLjkgOC4xLS40IDEuOS0uOCAzLjktLjkgNS45LTcuNyAuMy0xNC4yIDEuOC0xOS41IDQuNS03LjIgMy43LTEyLjEgOS42LTE0LjEgMTctNSAxOC4yIDExLjIgMzguNSAxMS44IDM5LjIgMS45IDMuNCAyLjcgMjcuOC0xLjcgMzcuNi0uNiAxLjQtMi4yIDIuNy00LjMgNC40LS43IC41LTEuNCAxLjEtMi4yIDEuNy02LjEgNC42LTE1LjQgMTEuNy0xNS40IDI3LjggMCAyMi4xIDIyLjQgMzQuMSA0MC40IDQzLjcgMyAxLjYgNS44IDMuMSA4LjMgNC42IDIuNyAxLjYgMTIuMiAxMS40IDEyLjIgMjYuMSAwIDYuOS0uNiAzOS43LTMuNyA2Mi40LTExLjYtOS45LTIyLjItMjUuOS0yNC42LTQzLjggMCAwLTI5LjIgMjIuNi0yMC42IDcwLjggNS4yIDI5LjUgMjMuMiA0Ni4xIDQ3IDU0LjcgOC44IDE5LjEgMjkuNCA0NS43IDY3LjMgNDkuNiAxNC40IDExLjggMzQuNCAxOS41IDYzLjYgMTkuNWwuMiAwYzI5LjEgMCA0OS4xLTcuNyA2My42LTE5LjUgMzcuOS0zLjkgNTguNS0zMC41IDY3LjMtNDkuNiAyMy44LTguNyA0MS43LTI1LjIgNDctNTQuNyA4LjItNDguNC0yMS4xLTcwLjktMjEuMS03MC45ek0zMDYgMzcuN2M1LjYtMS44IDExLjYtMi43IDE3LjctMi43IDExIDAgMTkuOSAzIDI0LjcgNS0zLjEgMS40LTYuNCAzLjItOS43IDUuMy0yLjQtLjQtNS42LS44LTkuMi0uOC0xMC41IDAtMjAuNSAzLjEtMjguNyA4LjktMTIuMyA4LjctMTggMTYuOS0yMC43IDIyLjQtMi4yLTEuMy00LjUtMi41LTcuMS0zLjctMS42LS44LTMuMS0xLjUtNC43LTIuMiA2LjEtOS4xIDE5LjktMjYuNSAzNy43LTMyLjJ6bTIxIDE4LjJjLS44IDEtMS42IDIuMS0yLjMgMy4yLTMuMyA1LjItMy45IDExLjYtNC40IDE3LjgtLjUgNi40LTEuMSAxMi41LTQuNCAxNy00LjIgLjgtOC4xIDEuNy0xMS41IDIuNy0yLjMtMy4xLTUuNi03LTEwLjUtMTEuMiAxLjQtNC44IDUuNS0xNi4xIDEzLjUtMjIuNSA1LjYtNC4zIDEyLjItNi43IDE5LjYtN3pNNDUuOSA0NS4zYy0zLjMtMi4yLTYuNi00LTkuNy01LjMgNC44LTIgMTMuNy01IDI0LjctNSA2LjEgMCAxMiAuOSAxNy43IDIuNyAxNy44IDUuOCAzMS42IDIzLjIgMzcuNyAzMi4xLTEuNiAuNy0zLjIgMS40LTQuOCAyLjItMi41IDEuMi00LjkgMi41LTcuMSAzLjctMi42LTUuNC04LjMtMTMuNy0yMC43LTIyLjQtOC4zLTUuOC0xOC4yLTguOS0yOC44LTguOS0zLjQgLjEtNi42IC41LTkgLjl6TTkwLjYgODUuNGMtNC45IDQuMi04LjMgOC0xMC41IDExLjItMy40LS45LTcuMy0xLjktMTEuNS0yLjctMy4zLTQuNC0zLjgtMTAuNS00LjMtMTYuOS0uNS02LjItMS4xLTEyLjYtNC40LTE3LjgtLjctMS4xLTEuNS0yLjItMi4zLTMuMiA3LjQgLjMgMTQgMi42IDE5LjUgNyA4IDYuMyAxMi4xIDE3LjYgMTMuNSAyMi40ek01OC40IDI1OS45Yy0yLjctMS42LTUuNi0zLjEtOC40LTQuNi0xNC45LTgtMzAuMi0xNi4zLTMwLjItMzAuNSAwLTExLjEgNC4zLTE0LjYgOC45LTE4LjJsLjUtLjRjLjctLjYgMS40LTEuMiAyLjItMS44LS45IDcuMi0xLjkgMTMuMy0yLjcgMTQuOSAwIDAgMTIuMS0xNSAxNS43LTQ0LjMgMS40LTExLjUtMS4xLTM0LjMtNS4xLTQzIC4yIDQuOSAwIDkuOC0uMyAxNC40LS40LS44LS44LTEuNi0xLjMtMi4yLTMuMi00LTExLjgtMTcuNS05LjQtMjYuNiAuOS0zLjUgMy4xLTYgNi43LTcuOCAzLjgtMS45IDguOC0yLjkgMTUuMS0yLjkgMTIuMyAwIDI1LjkgMy43IDMyLjkgNiAyNS4xIDggNTUuNCAzMC45IDY0LjEgMzcuNyAuMiAuMiAuNCAuMyAuNCAuM2w1LjYgMy45LTMuNS01LjhjLS4yLS4zLTE5LjEtMzEuNC01My4yLTQ2LjUgMi0yLjkgNy40LTguMSAyMS42LTE1LjEgMjEuNC0xMC41IDQ2LjUtMTUuOCA3NC4zLTE1LjggMjcuOSAwIDUyLjkgNS4zIDc0LjMgMTUuOCAxNC4yIDYuOSAxOS42IDEyLjIgMjEuNiAxNS4xLTM0IDE1LjEtNTIuOSA0Ni4yLTUzLjEgNDYuNWwtMy41IDUuOCA1LjYtMy45cy4yLS4xIC40LS4zYzguNy02LjggMzktMjkuOCA2NC4xLTM3LjcgNy0yLjIgMjAuNi02IDMyLjktNiA2LjMgMCAxMS4zIDEgMTUuMSAyLjkgMy41IDEuOCA1LjcgNC40IDYuNyA3LjggMi41IDkuMS02LjEgMjIuNi05LjQgMjYuNi0uNSAuNi0uOSAxLjMtMS4zIDIuMi0uMy00LjYtLjUtOS41LS4zLTE0LjQtNCA4LjgtNi41IDMxLjUtNS4xIDQzIDMuNiAyOS4zIDE1LjcgNDQuMyAxNS43IDQ0LjMtLjgtMS42LTEuOC03LjctMi43LTE0LjkgLjcgLjYgMS41IDEuMiAyLjIgMS44bC41IC40YzQuNiAzLjcgOC45IDcuMSA4LjkgMTguMiAwIDE0LjItMTUuNCAyMi41LTMwLjIgMzAuNS0yLjkgMS41LTUuNyAzLjEtOC40IDQuNi04LjcgNS0xOCAxNi43LTE5LjEgMzQuMi0uOSAxNC42IC45IDQ5LjkgMy40IDc1LjktMTIuNCA0LjgtMjYuNyA2LjQtMzkuNyA2LjgtMi00LjEtMy45LTguNS01LjUtMTMuMS0uNy0yLTE5LjYtNTEuMS0yNi40LTYyLjIgNS41IDM5IDE3LjUgNzMuNyAyMy41IDg5LjYtMy41LS41LTcuMy0uNy0xMS43LS43bC0xMTcgMGMtNC40IDAtOC4zIC4zLTExLjcgLjcgNi0xNS45IDE4LjEtNTAuNiAyMy41LTg5LjYtNi44IDExLjItMjUuNyA2MC4zLTI2LjQgNjIuMi0xLjYgNC42LTMuNSA5LTUuNSAxMy4xLTEzLS40LTI3LjItMi0zOS43LTYuOCAyLjUtMjYgNC4zLTYxLjIgMy40LTc1LjktLjktMTcuNC0xMC4zLTI5LjItMTktMzQuMnpNMzUuMSA0MDQuNmMtMTIuMS0yMC04LjctNTQuMS0zLjctNTkuMSAxMC45IDM0LjQgNDcuMiA0NC4zIDc0LjQgNDUuNC0yLjcgNC4yLTUuMiA3LjYtNyAxMGwtMS40IDEuNGMtNy4yIDcuOC04LjYgMTguNS00LjEgMzEuOC0yMi43LS4xLTQ2LjMtOS44LTU4LjItMjkuNXptNDUuNyA0My41YzYgMS4xIDEyLjIgMS45IDE4LjYgMi40IDMuNSA4IDcuNCAxNS45IDEyLjMgMjMuMS0xNC40LTUuOS0yNC40LTE2LTMwLjktMjUuNXptMTExLjUgNTAuMWMtNjAuNi0uMS03OC4zLTQ1LjgtODQuOS02NC43LTMuNy0xMC41LTMuNC0xOC4yIC45LTIzLjEgMi45LTMuMyA5LjUtNy4yIDI0LjYtNy4ybDExOC44IDBjMTUuMSAwIDIxLjggMy45IDI0LjYgNy4yIDQuMiA0LjggNC41IDEyLjYgLjkgMjMuMS02LjYgMTguOC0yNC4zIDY0LjYtODQuOSA2NC43em04MC42LTI0LjZjNC45LTcuMiA4LjgtMTUuMSAxMi4zLTIzLjEgNi40LS41IDEyLjYtMS4zIDE4LjYtMi40LTYuNSA5LjUtMTYuNSAxOS42LTMwLjkgMjUuNXptNzYuNi02OWMtMTIgMTkuNy0zNS42IDI5LjMtNTguMSAyOS43IDQuNS0xMy4zIDMuMS0yNC4xLTQuMS0zMS44LS40LS41LS45LTEtMS40LTEuNS0xLjgtMi40LTQuMy01LjgtNy0xMCAyNy4yLTEuMiA2My41LTExIDc0LjQtNDUuNCA1IDUgOC40IDM5LjEtMy44IDU5ek0xOTIuMiAxODcuN2wuMiAwYzEyLjctLjEgMjcuMi0xNy44IDI3LjItMTcuOC05LjkgNi0xOC44IDguMS0yNy4zIDguMy04LjUtLjItMTcuNC0yLjMtMjcuMy04LjMgMCAwIDE0LjUgMTcuNiAyNy4yIDE3Ljh6bTYxLjcgMjMwLjdsLTI5LjQgMGMtNC4yIDAtNy4yIC45LTguOSAyLjctMi4yIDIuMy0xLjUgNS4yLS45IDYuNyAxIDIuNiA1LjUgMTEuMyAxMyAxOS4zIDIuNyAyLjkgNi42IDQuNSAxMSA0LjVzOC43LTEuNiAxMS44LTQuMmMyLjMtMiAxMC4yLTkuMiAxMy43LTE4LjEgMS4zLTMuMyAxLTYtLjktNy45LTEuMy0xLjMtNC0yLjktOS40LTN6Il19LEc0cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdXBwb3J0bm93IixpY29uOls2NDAsNTEyLFtdLCJlODMzIiwiTTAgMTkxLjlsMjAzLjktLjFjMS44LS42IDIuNS05LjUgMy4yLTEyLjIgMy4zLTEzLjUgOC40LTI2LjQgMTQuOC0zOC43bC0xNjAuMiAwIDAtNDguMiAyMzQuNSAwIDAgMzljLTUxLjIgMzYuMS01Ni40IDkyLjYtMjMuNiAxNDMuOSAzMy4xIDUxLjcgOTMuNCA4OC4xIDE0OS41IDExMC41IDY3LjgtMjUuMiAxNjQuOS04OS45IDE2OS40LTE2OS42IDMuMS01NS4zLTQyLjItMTAxLjgtOTguNy05MS44LTQxLjUgNy40LTYyLjEgNDYuNy01NC44IDg2LjRsLTQ4LjIgMGMtNy4zLTU2LjYgMjIuOC0xMTIuNiA3OC40LTEzMC4zIDc4LjctMjUuMSAxNTkuNSAyOCAxNzAuNCAxMDguOCAxNS4yIDExMi4zLTk1LjUgMTk5LjktMTg4LjEgMjM3LjgtNC40IDEuOC0yNC40IDEwLjEtMjcuNSAxMC4xbC0yODAuMyAwIDAtNDguMiAxNzguNSAwLTM4LjEtMjguOS0yMy4yLTIyLjEtMTk4LjMgMCAwLTQ4LjIgMTYzLjEgMGMtNy4xLTExLjYtMTIuMy0yNC4zLTE2LjEtMzcuNC0uNy0yLjUtMi4xLTEyLTMuOC0xMi42bC0yMDQuOS0uMSAwLTQ4LjIgMCAweiJdfSxZNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicm9ja3JtcyIsaWNvbjpbNTEyLDUxMixbXSwiZjNlOSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQxMy40IDQyNy41bC05MCAwLTExMi0xMzEuM2MtMTcuOS0yMC40LTMuOS01Ni4xIDI2LjYtNTYuMWw3NS4zIDAtODQuNi05OS4zLTg0LjMgOTguOS05MCAwIDE0Ny4xLTE3Mi41YzE0LjQtMTguNCA0MS4zLTE3LjMgNTQuNSAwTDQxMy43IDI1Mi4zYzE5IDIyLjggMiA1Ny4yLTI3LjYgNTYuMS0uNiAwLTc0LjIgLjItNzQuMiAuMkw0MTMuNCA0MjcuNXoiXX0sSzRyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuc3BsYXNoIixpY29uOls0NDgsNTEyLFtdLCJlMDdjIiwiTTQ0OCAyMzAuMmwwIDI0OS44LTQ0OCAwIDAtMjQ5LjggMTQxLjEgMCAwIDEyNC45IDE2NS43IDAgMC0xMjQuOSAxNDEuMSAwek0zMDYuOSAzMmwtMTY1LjcgMCAwIDEyNC45IDE2NS43IDAgMC0xMjQuOXoiXX0sQkVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1pbnN0YWdyYW0iLGljb246WzQ0OCw1MTIsWyJpbnN0YWdyYW0tc3F1YXJlIl0sImUwNTUiLCJNMTk0LjQgMjExLjdhNTMuMyA1My4zIDAgMSAwIDU5LjIgODguNiA1My4zIDUzLjMgMCAxIDAgLTU5LjItODguNnptMTQyLjMtNjguNGMtNS4yLTUuMi0xMS41LTkuMy0xOC40LTEyLTE4LjEtNy4xLTU3LjYtNi44LTgzLjEtNi41LTQuMSAwLTcuOSAuMS0xMS4yIC4xcy03LjIgMC0xMS40LS4xYy0yNS41LS4zLTY0LjgtLjctODIuOSA2LjUtNi45IDIuNy0xMy4xIDYuOC0xOC40IDEycy05LjMgMTEuNS0xMiAxOC40Yy03LjEgMTguMS02LjcgNTcuNy02LjUgODMuMiAwIDQuMSAuMSA3LjkgLjEgMTEuMXMwIDctLjEgMTEuMWMtLjIgMjUuNS0uNiA2NS4xIDYuNSA4My4yIDIuNyA2LjkgNi44IDEzLjEgMTIgMTguNHMxMS41IDkuMyAxOC40IDEyYzE4LjEgNy4xIDU3LjYgNi44IDgzLjEgNi41IDQuMSAwIDcuOS0uMSAxMS4yLS4xczcuMiAwIDExLjQgLjFjMjUuNSAuMyA2NC44IC43IDgyLjktNi41IDYuOS0yLjcgMTMuMS02LjggMTguNC0xMnM5LjMtMTEuNSAxMi0xOC40YzcuMi0xOCA2LjgtNTcuNCA2LjUtODMgMC00LjItLjEtOC4xLS4xLTExLjRzMC03LjEgLjEtMTEuNGMuMy0yNS41IC43LTY0LjktNi41LTgzLTIuNy02LjktNi44LTEzLjEtMTItMTguNGwwIC4yem0tNjcuMSA0NC41YzE4LjEgMTIuMSAzMC42IDMwLjkgMzQuOSA1Mi4ycy0uMiA0My41LTEyLjMgNjEuNmMtNiA5LTEzLjcgMTYuNi0yMi42IDIyLjZzLTE5IDEwLjEtMjkuNiAxMi4yYy0yMS4zIDQuMi00My41LS4yLTYxLjYtMTIuM3MtMzAuNi0zMC45LTM0LjktNTIuMiAuMi00My41IDEyLjItNjEuNiAzMC45LTMwLjYgNTIuMi0zNC45IDQzLjUgLjIgNjEuNiAxMi4ybC4xIDB6bTI5LjItMS4zYy0zLjEtMi4xLTUuNi01LjEtNy4xLTguNnMtMS44LTcuMy0xLjEtMTEuMSAyLjYtNy4xIDUuMi05LjggNi4xLTQuNSA5LjgtNS4yIDcuNi0uNCAxMS4xIDEuMSA2LjUgMy45IDguNiA3IDMuMiA2LjggMy4yIDEwLjZjMCAyLjUtLjUgNS0xLjQgNy4zcy0yLjQgNC40LTQuMSA2LjItMy45IDMuMi02LjIgNC4yLTQuOCAxLjUtNy4zIDEuNWMtMy44IDAtNy41LTEuMS0xMC42LTMuMmwtLjEgMHpNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTM1NyAzODljLTE4LjcgMTguNy00MS40IDI0LjYtNjcgMjUuOS0yNi40IDEuNS0xMDUuNiAxLjUtMTMyIDAtMjUuNi0xLjMtNDguMy03LjItNjctMjUuOXMtMjQuNi00MS40LTI1LjgtNjdjLTEuNS0yNi40LTEuNS0xMDUuNiAwLTEzMiAxLjMtMjUuNiA3LjEtNDguMyAyNS44LTY3czQxLjUtMjQuNiA2Ny0yNS44YzI2LjQtMS41IDEwNS42LTEuNSAxMzIgMCAyNS42IDEuMyA0OC4zIDcuMSA2NyAyNS44czI0LjYgNDEuNCAyNS44IDY3YzEuNSAyNi4zIDEuNSAxMDUuNCAwIDEzMS45LTEuMyAyNS42LTcuMSA0OC4zLTI1LjggNjdsMCAuMXoiXX0sWjRyPUJFZSxRNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3Qtb3JkZXItYWx0IixpY29uOls1MTIsNTEyLFtdLCJmNTBhIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCA3LjhhMjQwLjIgMjQwLjIgMCAxIDEgMCA0ODAuNCAyNDAuMiAyNDAuMiAwIDEgMSAwLTQ4MC40em0wIDIwLjVhMjE5LjcgMjE5LjcgMCAxIDAgMCA0MzkuNCAyMTkuNyAyMTkuNyAwIDEgMCAwLTQzOS40em0wIDguMmEyMTEuNSAyMTEuNSAwIDEgMSAwIDQyMyAyMTEuNSAyMTEuNSAwIDEgMSAwLTQyM3ptMTg2LjIgMjYwYy00LjQgMTcuMS0xMS4yIDMzLjUtMjAuMSA0OC43bC03NC4xLTM1LjkgNjEuNSA1NC44Yy0xMC42IDE0LjEtMjMuMiAyNi42LTM3LjIgMzcuM2wtNTQuOC02MS42IDM1LjkgNzQuM2MtMTUuMiA5LTMxLjYgMTUuOC00OC42IDIwLjJsLTI3LjMtNzguNSA0LjggODIuOWMtOC42IDEuMi0xNy40IDEuOC0yNi4zIDEuOHMtMTcuNy0uNi0yNi4zLTEuOGw0LjgtODIuNS0yNy4yIDc4Yy0xNy4xLTQuNS0zMy40LTExLjMtNDguNy0yMC4ybDM1LjktNzQuMy01NC45IDYxLjZjLTE0LTEwLjctMjYuNi0yMy4yLTM3LjItMzcuM2w2MS42LTU0LjktNzQuMyAzNS45QzgwLjcgMzM4IDc0IDMyMS43IDY5LjUgMzA0LjZsNzcuOC0yNy4xLTgyLjIgNC44Yy0xLjItOC42LTEuOC0xNy4zLTEuOC0yNi4yIDAtOSAuNi0xNy44IDEuOC0yNi41bDgyLjQgNC44LTc3LjktMjcuMmM0LjUtMTcuMSAxMS4zLTMzLjUgMjAuMi00OC43bDc0LjIgMzUuOS02MS41LTU0LjljMTAuNy0xNCAyMy4yLTI2LjYgMzcuMy0zNy4ybDU0LjggNjEuNS0zNS44LTc0LjJjMTUuMi04LjkgMzEuNi0xNS43IDQ4LjYtMjAuMWwyNi45IDc3LjItNC43LTgxLjZjOC42LTEuMiAxNy40LTEuOCAyNi4zLTEuOHMxNy43IC42IDI2LjMgMS44bC00LjcgODIuMiAyNy03Ny44YzE3LjMgNC41IDMzLjYgMTEuNCA0OC42IDIwLjJsLTM1LjggNzQuMSA1NC43LTYxLjVjMTQuMSAxMC43IDI2LjYgMjMuMiAzNy4yIDM3LjJsLTYxLjQgNTQuOCA3NC4xLTM1LjljOC45IDE1LjIgMTUuNyAzMS42IDIwLjIgNDguNmwtNzcuOCAyNy4xIDgyLjItNC43YzEuMiA4LjcgMS44IDE3LjUgMS44IDI2LjUgMCA4LjktLjYgMTcuNi0xLjggMjYuMmwtODIuMS00LjcgNzcuNyAyNy4xeiJdfSxYNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZnVsY3J1bSIsaWNvbjpbMjU2LDUxMixbXSwiZjUwYiIsIk02My44IDE2NC4xTDI4LjQgMjA3LjctNyAxNjQuMSAyOC40IDEyMC42IDYzLjggMTY0LjF6TTExMi4yIDBsLTIwLjUgMTk4LjItNTEgNTcuOCA1MSA1Ny44IDIwLjUgMTk4LjIgMC0yMTEuMS00MS4xLTQ0LjkgNDEuMS00NC45IDAtMjExLjF6bTc5LjcgMTY0LjFsMzUuNCA0My42IDM1LjQtNDMuNi0zNS40LTQzLjUtMzUuNCA0My41em0tNDguNSA0N2w0MS4xIDQ0LjktNDEuMSA0NC45IDAgMjExLjEgMjAuNi0xOTguMiA1MS01Ny44LTUxLTU3LjgtMjAuNi0xOTguMiAwIDIxMS4xeiJdfSxKNHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXJjaC1saW51eCIsaWNvbjpbNTc2LDUxMixbXSwiZTg2NyIsIk0yODguNy03LjhjLTI0LjEgNTktMzguNiA5Ny43LTY1LjQgMTU1IDE2LjQgMTcuNCAzNi42IDM3LjYgNjkuNCA2MC41LTM1LjItMTQuNS01OS4yLTI4LjktNzcuMi00NC0zNC4zIDcxLjYtODguMSAxNzMuNS0xOTcuMiAzNjkuNCA4NS43LTQ5LjUgMTUyLjItODAgMjE0LjEtOTEuNi0yLjctMTEuNC00LjEtMjMuOC00LTM2LjdsLjEtMi43YzEuNC01NC45IDI5LjktOTcuMiA2My44LTk0LjRzNjAuMiA0OS44IDU4LjggMTA0LjdjLS4zIDEwLjMtMS40IDIwLjItMy40IDI5LjQgNjEuMiAxMiAxMjcgNDIuNCAyMTEuNiA5MS4yLTE2LjctMzAuNy0zMS42LTU4LjMtNDUuOC04NC43LTIyLjQtMTcuNC00NS43LTM5LjktOTMuMy02NC40IDMyLjcgOC41IDU2LjMgMTguMyA3NC41IDI5LjMtMTQ0LjUtMjY5LjEtMTU2LjItMzA0LjgtMjA1LjgtNDIxLjF6Il19LGUzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRpdmVyc2UiLGljb246WzU3Niw1MTIsW10sImU4NjUiLCJNMzk0LjggNTI2LjlhNTQgNTQgMCAxIDEgNS44LTEwNy44IDU0IDU0IDAgMSAxIC01LjggMTA3Ljh6bS01MC4xLTgwLjZjLTUuNSAxMC45LTcuNCAyMy4zLTUuNiAzNS40TDE2OC43IDQ1NC40YzUuNS0xMC45IDcuNS0yMy4zIDUuNy0zNS40bDE3MC4zIDI3LjN6TTExMi43IDQ4MS42YTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44em0yNTcuNy02MS40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zbC03MC42LTcwLjkgMzMuNi0xNyA2Mi40IDYyLjd6TTQ4Ni4xIDI2MWM4LjcgOC42IDE5LjggMTQuMyAzMS45IDE2LjRMNDM5LjQgNDMwLjhjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuNEw0ODYuMSAyNjF6TTM3Ni43IDIxOS4zbDMwLjUgMTk1LjFjLTEyLjEtMS45LTI0LjUtLjEtMzUuNCA1LjNsLTMyLjItMjA2LjMgMzcuMiA2ek0zNTAuNCAzMjguOUwxNzQuMiA0MTguMmMtMi0xMi4xLTcuNi0yMy4yLTE2LjItMzJsMTg2LjYtOTQuNiA1LjggMzcuMnptLTE1Mi43LTIybC00MC4zIDc4LjdjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuM2w0NS42LTg5IDI2LjYgMjYuN3pNMTI0LjcgMzY5Yy0xMi4xLTEuOC0yNC40IC4yLTM1LjQgNS42TDYyLjcgMjA0LjNjMTIuMSAxLjggMjQuNS0uMSAzNS40LTUuNkwxMjQuNyAzNjl6bTE0Ny4xLTQ3LjhsLTMzLjYgMTctMTM5LjQtMTM5LjljMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0wyNzEuOCAzMjEuMnptMTk3LjUtOTIuOGMyIDEyLjEgNy42IDIzLjIgMTYuMiAzMS45bC04OS4zIDQ1LjItNS44LTM3LjIgNzguOS00MHptNTUuNiA0NC4zYTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44ek0yODQuNiA1OC43YzguNyA4LjYgMTkuOCAxNC4zIDMxLjggMTYuM2wtOTUuMyAxODYuMS0yNi42LTI2LjcgOTAtMTc1Ljh6TTQ3NC45IDE5Mi4xYy01LjUgMTAuOS03LjUgMjMuMy01LjcgMzUuM2wtMjA2LjQtMzMuMSAxNy4yLTMzLjUgMTk1IDMxLjN6TTY4LjcgMTk5LjZBNTQgNTQgMCAxIDEgNzQuNiA5MS44IDU0IDU0IDAgMSAxIDY4LjcgMTk5LjZ6bTQzMi0zMy40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zTDM1My41IDY5LjNjMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0w1MDAuNiAxNjYuMnpNMjI5LjMgMTUyLjZsLTE3LjIgMzMuNS04Ny40LTE0YzUuNC0xMC45IDcuNC0yMy4zIDUuNS0zNS40bDk5IDE1Ljl6bTEzOS41IDE1LjlsLTM3LjItNi0xMy42LTg3LjJjMTIuMSAxLjcgMjQuNS0uMyAzNS4zLTUuOWwxNS41IDk5LjF6TTI2Ny44IDI2LjJjMiAxMi4xIDcuNiAyMy4yIDE2LjIgMzEuOWwtMTUzLjkgNzhjLTItMTIuMS03LjYtMjMuMi0xNi4yLTMxLjlsMTUzLjktNzh6bTU1LjYgNDQuM2E1NCA1NCAwIDEgMSA1LjgtMTA3LjggNTQgNTQgMCAxIDEgLTUuOCAxMDcuOHoiXX0sdDNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJyYXZlLXJldmVyc2UiLGljb246WzQ0OCw1MTIsW10sImU2M2QiLCJNMjk4LjUgMGMzIDAgNS44IDEuMyA3LjggMy42bDM4LjEgNDRjLjUtLjEgMS0uMiAxLjUtLjMgOS4yLTEuNiAxOC42LTIuMiAyNy43LTEuMiAxMS42IDEuNCAyMS41IDUuNCAyOC45IDEyLjkgNy43IDcuOCAxNS40IDE1LjggMjIuNiAyMy42IDIuNSAyLjcgNC45IDUuMiA2LjkgNy40IC43IC44IDEuNCAxLjUgMS45IDIgMy40IDMuNyA0LjIgOC4xIDIuNyAxMS45bC05LjggMjQuNiAxMy4xIDM4LjFjLjcgMiAuOCA0LjEgLjIgNi4yLS4xIC40LS4xIC40LS41IDIuMWwtMS41IDUuOGMtMS42IDYuMy0zLjUgMTMuMy01LjQgMjAuOS01LjYgMjEuNi0xMS4yIDQzLjItMTYuNCA2My40LTEyLjkgNDkuOS0yMS40IDgyLjctMjMuNCA5MC45LTExLjEgNDQuNS0xOS45IDYwLTQ4LjMgODAuMy0yNC45IDE3LjgtNzYuOCA1My42LTg2LjggNjAtMSAuNi0yIDEuMy0zLjQgMi4zLS41IC40LTMuMiAyLjItMy45IDIuNy00LjkgMy4zLTguMyA1LjUtMTIuMSA3LjMtNC43IDIuMi05LjMgMy41LTEzLjkgMy41cy05LjEtMS4yLTEzLjktMy41Yy0zLjctMS44LTcuMi0zLjktMTIuMS03LjMtLjgtLjUtMy40LTIuNC0zLjktMi43LTEuNC0xLTIuNS0xLjctMy40LTIuMy0xMC02LjQtNjEuOS00Mi4xLTg2LjgtNjAtMjguNC0yMC40LTM3LjItMzUuOC00OC4zLTgwLjMtMi04LjItMTAuNS00MS0yMy4zLTkwLjUtNS4zLTIwLjYtMTAuOS00Mi4yLTE2LjUtNjMuOC0yLTcuNi0zLjgtMTQuNi01LjQtMjAuOWwtMS41LTUuOC0uNS0yLjFjLS41LTItLjQtNC4yIC4yLTYuMmwxMy4xLTM4LjEtOS45LTI0LjVjLTEuNS0zLjgtLjctOC4yIDItMTEuMiAxLjItMS4zIDEuOC0yIDIuNi0yLjggMi0yLjIgNC40LTQuNyA2LjktNy40IDcuMy03LjcgMTUtMTUuNyAyMi43LTIzLjUgNy40LTcuNSAxNy4zLTExLjYgMjguOS0xMi45IDkuMS0xLjEgMTguNS0uNSAyNy43IDEuMiAuNSAuMSAxIC4yIDEuNSAuM2wzOC4xLTQ0YzItMi40IDQuOC0zLjcgNy44LTMuN2wxNDggMHptLTQuNyAyMS4xbC0xMzguNiAwLTM5LjEgNDUuMWMtMi42IDMtNi43IDQuMy0xMC42IDMuMi0uMi0uMS0uNy0uMi0xLjUtLjQtMS4zLS4zLTIuOS0uNi00LjUtLjktNy40LTEuMy0xNC45LTEuOC0yMS43LTEtNy4zIC45LTEzIDMuMi0xNi42IDYuOS03LjYgNy43LTE1LjIgMTUuNi0yMi4zIDIzLjMtMS43IDEuOC0zLjMgMy41LTQuOCA1LjFsOC44IDIyYzEgMi40IDEgNSAuMiA3LjVMMjkuNyAxNzAuNmMuNCAxLjQgLjUgMS45IDEuMiA0LjggMS42IDYuMyAzLjUgMTMuMyA1LjQgMjAuOSA1LjYgMjEuNiAxMS4yIDQzLjIgMTYuNCA2My40IDEyLjkgNTAgMjEuNCA4Mi44IDIzLjQgOTEgMTAuMSA0MC4xIDE2LjQgNTEuMyA0MC4yIDY4LjMgMjQuNiAxNy42IDc2LjMgNTMuMiA4NS45IDU5LjMgMS4yIC44IDIuNSAxLjYgNCAyLjcgLjYgLjQgMy4yIDIuMiAzLjkgMi43IDQgMi44IDYuNyA0LjQgOS4yIDUuNiAyLjIgMSAzLjkgMS41IDUuMSAxLjVzMi45LS41IDUuMS0xLjVjMi41LTEuMiA1LjItMi44IDkuMi01LjYgLjctLjUgMy4zLTIuMyAzLjktMi43IDEuNi0xLjEgMi44LTEuOSA0LTIuNyA5LjYtNi4xIDYxLjMtNDEuNyA4NS45LTU5LjMgMjMuOC0xNy4xIDMwLjItMjguMiA0MC4xLTY4LjMgMi4xLTguMyAxMC41LTQxLjEgMjMuMy05MC43IDUuMy0yMC42IDEwLjktNDIuMiAxNi41LTYzLjggMi03LjYgMy44LTE0LjYgNS40LTIwLjkgLjctMi45IC45LTMuNCAxLjItNC44bC0xMy4zLTM4LjhjLS44LTIuNC0uOC01LjEgLjItNy41bDguOC0yMmMtMS41LTEuNi0zLjEtMy4zLTQuOC01LjEtNy4yLTcuNi0xNC43LTE1LjUtMjIuMy0yMy4zLTMuNy0zLjctOS4zLTYtMTYuNi02LjktNi44LS44LTE0LjQtLjMtMjEuNyAxLTEuNyAuMy0zLjIgLjYtNC41IC45LS44IC4yLTEuMyAuMy0xLjUgLjQtMy44IDEuMS03LjktLjItMTAuNi0zLjJMMjkzLjggMjEuMXpNMjI0LjUgMzE2YzIuOCAwIDIwLjkgNi41IDM1LjQgMTQuMXMyNSAxMyAyOC4zIDE1LjIgMS4zIDYuMi0xLjcgOC40LTQ0LjEgMzQuNi00OC4xIDM4LjItOS44IDkuNS0xMy44IDkuNS05LjgtNS45LTEzLjgtOS41LTQ1LjEtMzYtNDguMS0zOC4yLTUuMS02LjItMS43LTguNCAxMy45LTcuNSAyOC4zLTE1LjIgMzIuNS0xNC4xIDM1LjQtMTQuMWwtLjIgMHptLjEtMjMwLjdjLjcgMCA4LjggLjIgMjAuNSA0LjIgMTIuMyA0LjIgMjUuNyA5LjQgMzEuOSA5LjRzNTEuOS04LjkgNTEuOS04LjkgNTQuMiA2Ni43IDU0LjIgODEtNi44IDE4LTEzLjcgMjUuNC0zNi44IDM5LjgtNDAuNyA0My45LTExLjkgMTAuNS03LjEgMjEuOCAxMS43IDI1LjggMy45IDQwLjQtMjEgMjQuNC0yOS40IDIyLjgtMjguNC0xMi4yLTM1LjctMTcuMS0zMC41LTI0LjMtMzAuNS0zMS44IDI0LTIwLjggMjguNC0yMy45IDI0LjctMTQuOCAyNS4xLTE5LjQgLjMtNi01LjctMTcuNC0xNi43LTI2LjctMTQuOS0zNi44IDE5LjEtMTUuNCAzMS41LTIwLjIgMzYuMi0xMy43IDM5LjItMTUuMSAyLjItMi43LTYuOC0zLjYtMzQuNi00LjMtNDYuMS0xLjEtMzEuMiA4LjItMzIuOCAxMC45LTMgMi43LTEuNCAxMS44IDEwLjEgNTIuOCAxMC45IDYwLjYgMi40IDEyLjktNS44IDE0LjgtMjIuMSA1LjItMjYuOCA1LjItMTguNi0zLjMtMjYuOC01LjItNi42LTctNS44LTE0LjggOS4zLTUxLjUgMTAuOS02MC42IC4yLTkuMi0xLjQtMTEuOC0yMS4zLTcuNi0zMi44LTEwLjktMzcuMSAuMi00Ni4xIDEuMS05LjggMi4yLTYuOCAzLjYgMjYuOCAxMC40IDM5LjIgMTUuMSAyOS43IDEwIDMxLjUgMjAuMi05IDI1LjQtMTQuOSAzNi44LTYuMSAxMi44LTUuNyAxNy40IDIwLjYgMTYuNCAyNS4xIDE5LjQgMjguNCAxNi40IDI4LjQgMjMuOS0yMy4yIDI3LTMwLjUgMzEuOC0yNy4yIDE1LjQtMzUuNyAxNy4xLTIxLjctOC4yLTI5LjQtMjIuOC0uOC0yOS4xIDMuOS00MC40LTMuMy0xNy43LTcuMS0yMS44LTMzLjgtMzYuNS00MC43LTQzLjktMTMuNy0xMS4yLTEzLjctMjUuNCA1NC4yLTgxIDU0LjItODEgNDUuOCA4LjkgNTEuOSA4LjkgMTkuNS01LjIgMzEuOS05LjQgMjAuNi00LjIgMjAuNi00LjJsLS4zIDB6Il19LHIzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdmlhbmV4IixpY29uOls1MTIsNTEyLFtdLCJmMzc0IiwiTTQ1My4yIDMybC0zMTIgMEMxMDIuMyAzMiA2NSA2My4yIDU3LjkgMTAxLjdMMS4zIDQxMC4zQy01LjggNDQ4LjggMjAgNDgwIDU5IDQ4MGwzMTIgMGMzOC45IDAgNzYuMi0zMS4yIDgzLjMtNjkuN0w1MTEgMTAxLjhDNTE4IDYzLjIgNDkyLjIgMzIgNDUzLjIgMzJ6TTM5NSAzNzkuM2wtMzIgMTMuNS0xMTUuNC0xMTBjLTE0LjcgMTAtMjkuMiAxOS41LTQxLjcgMjcuMWwyMi4xIDY0LjItMTcuOSAxMi43LTQwLjYtNjEtNTIuNC00OC4xIDE1LjctMTUuNCA1OCAzMS4xYzkuMy0xMC41IDIwLjgtMjIuNiAzMi44LTM0LjlsLTIwLjUtMjkuNi02OC44LTk5LjggMTguOC0yOC45IDguOS00LjggMTAzLjEgMTEyLjQgNC45IDQuNWMxOS40LTE4LjggMzMuOC0zMi40IDMzLjgtMzIuNCA3LjctNi41IDIxLjUtMi45IDMwLjcgNy45IDkgMTAuNSAxMC42IDI0LjcgMi43IDMxLjMtMS44IDEuMy0xNS41IDExLjQtMzUuMyAyNS42bDQuNSA3LjMgOTQuOSAxMTkuNC02LjMgNy45eiJdfSxhM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnM4IixpY29uOls2NDAsNTEyLFtdLCJmM2Q1IiwiTTEwNC4zIDI2OS4ybDI2LjEgMCAwLTI2LjItMjYuMSAwIDAgMjYuMnpNMTU2LjggMjQzbC0uMS0yNi4yIDAtLjljLS4yLTEwLjQtNC40LTIwLjMtMTEuOS0yNy42cy0xNy41LTExLjMtMjcuOS0xMS4xLTIwLjMgNC40LTI3LjYgMTEuOC0xMS4zIDE3LjUtMTEuMiAyNy45bDAgLjIgMjYuNCAwIDAtLjJjLjEtMy40IDEuNS02LjYgMy45LTlzNS43LTMuNyA5LjEtMy43IDYuNyAxLjMgOS4xIDMuNyAzLjggNS42IDMuOSA5bDAgMjYuMiAyNi4zIDB6bTUyLjQgMjUuOGMwIDEyLTIuNCAyMy44LTYuOSAzNC45cy0xMS4zIDIxLjEtMTkuNyAyOS42LTE4LjUgMTUuMi0yOS42IDE5LjctMjIuOSA2LjktMzQuOSA2LjlsLS42IDBjLTI0LjIgMC00Ny4zLTkuNi02NC40LTI2LjdTMjYuMyAyOTMgMjYuMyAyNjguOGwtMjYuMyAwIDAgLjJjMCAxNS40IDMuMSAzMC43IDkgNDQuOXMxNC42IDI3LjIgMjUuNSAzOC4xIDIzLjkgMTkuNSAzOC4xIDI1LjQgMjkuNSA4LjkgNDQuOSA4LjlsLjggMGMxNS40IDAgMzAuNy0zIDQ0LjktOXMyNy4yLTE0LjYgMzguMS0yNS41IDE5LjUtMjMuOCAyNS40LTM4LjEgOC45LTI5LjUgOC45LTQ0LjlsMC0yNi0yNi4zIDAgMCAyNnptLTE1Ny4yIDBjLjEgMTcuMyA3IDMzLjkgMTkuMiA0Ni4xczI4LjggMTkuMSA0Ni4xIDE5LjEgMzMuOS02LjkgNDYuMS0xOS4xIDE5LjItMjguOCAxOS4yLTQ2LjFsLTI2LjMgMGMtLjIgMTAuMi00LjQgMjAtMTEuNyAyNy4ycy0xNy4xIDExLjItMjcuNCAxMS4yLTIwLjEtNC0yNy40LTExLjItMTEuNS0xNi45LTExLjctMjcuMmwwLTI2LTI2LjMgMCAwLTI2LjZjLjMtMTcuMyA3LjQtMzMuOCAxOS43LTQ1LjhzMjktMTguOCA0Ni4zLTE4LjYgMzMuOCA3LjIgNDUuOSAxOS41IDE4LjkgMjguOSAxOC45IDQ2LjJsMCAyNS4zIDI2LjMgMCAwLTI1LjNjMC0yNC4zLTkuNy00Ny43LTI2LjktNjQuOXMtNDAuNS0yNi45LTY0LjktMjYuOS00Ny43IDkuNy02NC45IDI2LjktMjYuOSA0MC41LTI2LjkgNjQuOWwwIDI1LjQgMjYuMyAwIDAgMjZ6bTQxOC40LTcxLjJjMTMuNyAwIDI0LjYgNi42IDMwLjEgMTguM2wuNyAxLjUgMjMuMi0xMS41LS42LTEuNGMtOC0xOS4zLTI4LjUtMzEuMy01My40LTMxLjMtMjMuMSAwLTQzLjYgMTEuNC01MSAyOC40LS4xIDI2LjktLjIgMjMuOSAwIDI0LjggNC43IDExIDE0LjYgMTkuNCAyOC43IDI0LjIgNi41IDIgMTMuMSAzLjMgMTkuOCA0IDUuNSAuNyAxMC42IDEuNCAxNS44IDMuMSA2LjQgMi4xIDEwLjUgNS4zIDEyLjggOS44bDAgOS45Yy0zLjcgNy41LTEzLjggMTIuMy0yNS44IDEyLjMtMTQuMyAwLTI2LTYuOS0zMS45LTE5bC0uNy0xLjUtMjMgMTEuNSAuNiAxLjRjNy45IDE5LjQgMjkuNiAzMiA1NS4zIDMyIDIzLjYgMCA0NC42LTExLjQgNTIuMy0yOC40bC4yLTI1LjktLjItLjdjLTQuOS0xMS0xNS4yLTE5LjYtMjguOS0yNC4yLTcuNy0yLjctMTQuMy0zLjYtMjAuNy00LjQtNS0uNS0xMC0xLjUtMTQuOC0yLjktNi4zLTEuOS0xMC40LTUuMS0xMi42LTkuNmwwLTguNGMzLjQtNy40IDEyLjktMTIuMSAyNC4yLTEyLjFsMCAwek0yODcuNiAzMTEuM2wyNi4xIDAgMC02OC40LTI2LjEgMCAwIDY4LjR6TTYzOS44IDI1OGMtMi45LTYuMy04LjMtMTItMTUuNC0xNi43IDUuNi0zLjggMTAuMS05LjEgMTMtMTUuM2wuMi0yNS4zLS4yLS43Yy03LjQtMTYtMjYuNy0yNi43LTQ4LjItMjYuN1M1NDguNSAxODQgNTQxLjEgMjAwbC0uMiAyNS4zIC4yIC43YzIuOSA2LjEgNy40IDExLjQgMTMgMTUuMy03LjIgNC43LTEyLjUgMTAuNS0xNS40IDE2LjdsLS4yIDI4LjkgLjIgLjdjNy42IDE2IDI3LjkgMjYuNyA1MC42IDI2LjdzNDMuMS0xMC43IDUwLjYtMjYuN2wuMi0yOC45LS4yLS43em0tNzMuMi01MC44YzMuNi02LjMgMTIuNi0xMC41IDIyLjYtMTAuNXMxOSA0LjIgMjIuNiAxMC41bDAgMTMuN2MtMy41IDYuMi0xMi42IDEwLjMtMjIuNiAxMC4zcy0xOS4xLTQuMi0yMi42LTEwLjNsMC0xMy43em00Ny4zIDcyLjJjLTMuOCA2LjYtMTMuMyAxMC45LTI0LjcgMTAuOS0xMS4xIDAtMjEtNC40LTI0LjctMTAuOWwwLTE2LjJjMy43LTYuMyAxMy41LTEwLjUgMjQuNy0xMC41IDExLjMgMCAyMC45IDQuMSAyNC43IDEwLjVsMCAxNi4yek0zNzYuNCAyNjZsLTU5LjgtODkuNy0yOSAwIDAgNDAuNiAyNi41IDAgMCAuNCA2Mi41IDk0LjEgMjUuNyAwIDAtMTM1LjEtMjUuOSAwIDAgODkuN3oiXX0sSEVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1waW50ZXJlc3QiLGljb246WzQ0OCw1MTIsWyJwaW50ZXJlc3Qtc3F1YXJlIl0sImYwZDMiLCJNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNzIuNiAwLTIuMi0uOGMtNS40LTQ4LjEtMy4xLTU3LjUgMTUuNy0xMzQuNyAzLjktMTYgOC41LTM1IDEzLjktNTcuOSAwIDAtNy4zLTE0LjgtNy4zLTM2LjUgMC03MC43IDc1LjUtNzggNzUuNS0yNSAwIDEzLjUtNS40IDMxLjEtMTEuMiA0OS44LTMuMyAxMC42LTYuNiAyMS41LTkuMSAzMi01LjcgMjQuNSAxMi4zIDQ0LjQgMzYuNCA0NC40IDQzLjcgMCA3Ny4yLTQ2IDc3LjItMTEyLjQgMC01OC44LTQyLjMtOTkuOS0xMDIuNi05OS45LTY5LjkgMC0xMTAuOSA1Mi40LTExMC45IDEwNi42IDAgMjEuMSA4LjIgNDMuNyAxOC4zIDU2IDIgMi40IDIuMyA0LjUgMS43IDctMS4xIDQuNy0zLjEgMTIuOS00LjcgMTkuMi0xIDQtMS44IDcuMy0yLjEgOC42LTEuMSA0LjUtMy41IDUuNS04LjIgMy4zLTMwLjYtMTQuMy00OS44LTU5LjEtNDkuOC05NS4xIDAtNzcuNSA1Ni4yLTE0OC42IDE2Mi4yLTE0OC42IDg1LjIgMCAxNTEuNCA2MC43IDE1MS40IDE0MS44IDAgODQuNi01My4zIDE1Mi43LTEyNy40IDE1Mi43LTI0LjkgMC00OC4zLTEyLjktNTYuMy0yOC4yIDAgMC0xMi4zIDQ2LjktMTUuMyA1OC40LTUgMTkuMy0xNy42IDQyLjktMjcuNCA1OS4zTDM4NCA0ODBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6Il19LGkzcj1IRWUsczNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWV0b290aC1iIixpY29uOlsyNTYsNTEyLFtdLCJmMjk0IiwiTTE2NC45IDI2MEwyNTcuNSAxNTYuNyAxMTEuNiAwIDExMS42IDIwNi4zIDI1LjQgMTIwLjItNiAxNTEuNiAxMDIuMSAyNjAtNiAzNjguNCAyNS40IDM5OS44IDExMS42IDMxMy43IDExNC4zIDUxMiAyNjIuOCAzNjMuNCAxNjQuOSAyNjB6bTQwLjktMTAzbC01MCA1MC0uMy0xMDAuMyA1MC4zIDUwLjN6bS01MCAxNTZsNTAgNTAtNTAuMyA1MC4zIC4zLTEwMC4zeiJdfSxuM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JpcGZpcmUiLGljb246WzMyMCw1MTIsW10sImYzYWMiLCJNODAuNSAzMDEuNGMwLTczLjggMTA1LjEtMTIyLjUgMTA1LjEtMjAzIDAtNDcuMS0zNC04OC0zOS4xLTkwLjQgLjQgMy4zIC42IDYuNyAuNiAxMCAwIDkyLjEtMTQ3LjEgMTUzLjktMTQ3LjEgMjY4LjYgMCA0OS44IDMyLjIgNzkuMiA2Ni41IDEwOC4zIDY1LjEgNDYuNyA3OC4xIDcxLjQgNzguMSA4Ni42IDAgMTAuMS00LjggMTctNC44IDIyLjMgMTMuMS0xNi43IDE3LjQtMzEuOSAxNy41LTQ2LjQgMC0yOS42LTIxLjctNTYuMy00NC4yLTg2LjUtMTYtMjIuMy0zMi42LTQyLjYtMzIuNi02OS41em0yMDUuMy0zOWMtMTIuMS02Ni44LTc4LTEyNC40LTk0LjctMTMwLjlsNCA3LjJjMi40IDUuMSAzLjQgMTAuOSAzLjQgMTcuMSAwIDQ0LjctNTQuMiAxMTEuMi01Ni42IDExNi43LTIuMiA1LjEtMy4yIDEwLjUtMy4yIDE1LjggMCAyMC4xIDE1LjIgNDIuMSAxNy45IDQyLjEgMi40IDAgNTYuNi01NS40IDU4LjEtODcuNyA2LjQgMTEuNyA5LjEgMjIuNiA5LjEgMzMuNCAwIDQxLjItNDEuOCA5Ni45LTQxLjggOTYuOSAwIDExLjYgMzEuOSA1My4yIDM1LjUgNTMuMiAxIDAgMi4yLTEuNCAzLjItMi40IDM3LjktMzkuMyA2Ny4zLTg1IDY3LjMtMTM2LjggMC04LS43LTE2LjItMi4yLTI0LjZ6Il19LHFFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ29vZ2xlLXBsdXMiLGljb246WzQ0OCw1MTIsWyJnb29nbGUtcGx1cy1zcXVhcmUiXSwiZjBkNCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNNjQgMjU2YzAtNTUuMyA0NC43LTEwMCAxMDAtMTAwIDI3IDAgNDkuNSA5LjggNjcgMjYuMmwtMjcuMSAyNi4xYy03LjQtNy4xLTIwLjMtMTUuNC0zOS44LTE1LjQtMzQuMSAwLTYxLjkgMjguMi02MS45IDYzLjIgMCAzNC45IDI3LjggNjMuMiA2MS45IDYzLjIgMzkuNiAwIDU0LjQtMjguNSA1Ni44LTQzLjFsLTU2LjkgMCAwLTM0LjQgOTQuNCAwYzEgNSAxLjYgMTAuMSAxLjYgMTYuNiAwIDU3LjEtMzguMyA5Ny42LTk2IDk3LjYtNTUuMyAwLTEwMC00NC43LTEwMC0xMDB6bTI5MSAxOC4ybDAgMjktMjkuMiAwIDAtMjktMjkgMCAwLTI5LjIgMjkgMCAwLTI5IDI5LjIgMCAwIDI5IDI5IDAgMCAyOS4yLTI5IDB6Il19LG8zcj1xRWUsbDNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGVlIixpY29uOls1MTIsNTEyLFtdLCJlODYzIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0zODUuNiAxMTMuOGwwIDAtMTc3IDBjLTUyLjQgMC05NC44IDQyLjQtOTQuOCA5NC44bDAgMTc3YzAgNyA1LjcgMTIuNiAxMi42IDEyLjZsMTg2LjUgMGM0Ny4xIDAgODUuMy0zOC4yIDg1LjMtODUuM2wwLTcyLjdjMC03LTUuNy0xMi42LTEyLjYtMTIuNmwtMTQ1LjQgMGMtNyAwLTEyLjYgNS43LTEyLjYgMTIuNmwwIDMxLjZjMCA2LjYgNS4xIDEyLjEgMTEuNiAxMi42bDEgMCA4OC41IDBjNi42IDAgMTIuMSA1LjEgMTIuNiAxMS42bDAgMSAwIDYuM2MwIDIwLjktMTcgMzcuOS0zNy45IDM3LjlsLTEyMC4xIDBjLTcgMC0xMi42LTUuNy0xMi42LTEyLjZsMC0xMjAuMWMwLTIwLjQgMTYuMS0zNy4xIDM2LjQtMzcuOWwxLjYgMCAxNzcgMGM3IDAgMTIuNi01LjcgMTIuNi0xMi42bDAtMzEuNmMwLTctNS42LTEyLjYtMTIuNi0xMi42eiJdfSxjM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieG1wcCIsaWNvbjpbNTc2LDUxMixbXSwiZTg2NCIsIk0wIDQ3LjJjMy41IDEzNy4xIDExNy4xIDI3OC42IDI1Mi45IDM1Ni43LTMxLjUgMjUtNjcuMiA0NC4xLTEwNi4yIDUzLjlsMCA1LjRjNTYuNC0yLjMgOTguMS0yMC4xIDE0MS4zLTQwLjcgNjUuNyAzNC42IDEyMi4yIDM5LjkgMTQxLjQgNDAuN2wwLTUuNGMtMzktOS44LTc0LjctMjguOC0xMDYuMi01My44IDEzNS43LTc4LjIgMjQ5LjMtMjE5LjggMjUyLjgtMzU2LjgtNTguNCAyNS43LTExOS4xIDQ0LjItMTgwLjEgNjIuM2wwIDBjMy40IDU5LTIwLjIgMTcwLjQtMTA3LjkgMjYyLjMtODguNC05Mi4zLTExMS4yLTIwNC4xLTEwNy44LTI2Mi4zbDAgMEMxMTcuNyA5Mi42IDU5LjMgNzAuMiAwIDQ3LjJ6TTkzLjkgOTdsNzMuNiAyMS44QzE2NS40IDIxNiAyMjYuOCAzNTggMzQxLjMgNDMyLjIgMTkwLjUgMzc2LjkgODkuOSAyMTUuNyA5My45IDk3em0zODguMyAwYzMuMyA5OS02NS42IDIyNC43LTE3MS43IDI5Ni40LTQuNy00LjEtOS4zLTguNC0xMy44LTEyLjcgNzctODAuMiAxMTMuMi0xODYuMyAxMTEuOS0yNjEuOUw0ODIuMSA5N3pNMjY0LjUgNDEwLjVjMyAxLjYgNS45IDMuMiA4LjkgNC43LTEyLjUgNi40LTI1LjQgMTIuMS0zOC42IDE3IDEwLjMtNi43IDIwLjItMTMuOSAyOS43LTIxLjd6Il19LGQzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHAtc3RvcmUiLGljb246WzUxMiw1MTIsW10sImYzNmYiLCJNMjU1LjkgMTIwLjlsOS4xLTE1LjdjNS42LTkuOCAxOC4xLTEzLjEgMjcuOS03LjVzMTMuMSAxOC4xIDcuNSAyNy45bC04Ny41IDE1MS41IDYzLjMgMGMyMC41IDAgMzIgMjQuMSAyMy4xIDQwLjhsLTE4NS41IDBjLTExLjMgMC0yMC40LTkuMS0yMC40LTIwLjRzOS4xLTIwLjQgMjAuNC0yMC40bDUyIDAgNjYuNi0xMTUuNC0yMC44LTM2LjFjLTUuNi05LjgtMi4zLTIyLjIgNy41LTI3LjkgOS44LTUuNiAyMi4yLTIuMyAyNy45IDcuNWw4LjkgMTUuN3ptLTc4LjcgMjE4bC0xOS42IDM0Yy01LjYgOS44LTE4LjEgMTMuMS0yNy45IDcuNXMtMTMuMS0xOC4xLTcuNS0yNy45bDE0LjYtMjUuMmMxNi40LTUuMSAyOS44LTEuMiA0MC40IDExLjZ6bTE2OC45LTYxLjdsNTMuMSAwYzExLjMgMCAyMC40IDkuMSAyMC40IDIwLjRTNDEwLjUgMzE4IDM5OS4yIDMxOGwtMjkuNSAwIDE5LjkgMzQuNWM1LjYgOS44IDIuMyAyMi4yLTcuNSAyNy45LTkuOCA1LjYtMjIuMiAyLjMtMjcuOS03LjUtMzMuNS01OC4xLTU4LjctMTAxLjYtNzUuNC0xMzAuNi0xNy4xLTI5LjUtNC45LTU5LjEgNy4yLTY5LjEgMTMuNCAyMyAzMy40IDU3LjcgNjAuMSAxMDR6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDAgMjU2YTIxNiAyMTYgMCAxIDEgNDMyIDAgMjE2IDIxNiAwIDEgMSAtNDMyIDB6Il19LHUzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aXgiLGljb246WzY0MCw1MTIsW10sImY1Y2YiLCJNMzkzLjQgMTMxLjdjMCAxMyAyLjEgMzIuNy0yOC43IDQzLjgtOS41IDMuNC0xNiA5LjctMTYgOS43IDAtMzEgNC43LTQyLjIgMTcuNC00OC45IDkuOC01LjEgMjcuMi00LjYgMjcuMi00LjZ6TTI3Ny42IDE2Ny4ybC0zNC4yIDEzMi43LTI4LjUtMTA4LjZjLTcuNy0zMi0yMC44LTQ4LjUtNDguNC00OC41LTI3LjQgMC00MC43IDE2LjItNDguNCA0OC41TDg5LjUgMjk5LjkgNTUuMyAxNjcuMkM0OS43IDE0MC41IDIzLjkgMTI5IDAgMTMyTDY1LjYgMzc5LjlzMjEuNiAxLjYgMzIuNS00YzE0LjItNy4yIDIxLTEyLjggMjkuNi00Ni42IDcuNy0zMC4xIDI5LjEtMTE4LjQgMzEuMS0xMjQuNyA0LjgtMTQuOSAxMS4xLTEzLjggMTUuNCAwIDIgNi4zIDIzLjUgOTQuNiAzMS4xIDEyNC43IDguNiAzMy43IDE1LjQgMzkuMyAyOS42IDQ2LjYgMTAuOCA1LjUgMzIuNSA0IDMyLjUgNEwzMzIuOSAxMzJjLTI0LjQtMy4xLTQ5LjggOC45LTU1LjMgMzUuM3ptMTE1LjggNS4ycy00LjEgNi4zLTEzLjUgMTEuNmMtNiAzLjQtMTEuOCA1LjYtMTggOC42LTE1LjEgNy4zLTEzLjIgMTMuOS0xMy4yIDM1LjJsMCAxNTIuMXMxNi42IDIuMSAyNy40LTMuNGMxMy45LTcuMSAxNy4xLTE0IDE3LjMtNDQuOGwwLTE1MC4zIDAgMCAwLTl6bTE2My40IDg0LjFMNjQwIDEzMi44cy0zNS4xLTYtNTIuNSA5LjhjLTEzLjMgMTIuMS0yNC40IDI5LjYtNTQuMiA3Mi41LS41IC43LTYuMyAxMC41LTEzLjEgMC0yOS4zLTQyLjItNDAuOC02MC4zLTU0LjItNzIuNS0xNy40LTE1LjgtNTIuNS05LjgtNTIuNS05LjhsODMuMiAxMjMuNy04MyAxMjMuNHMzNi42IDQuNiA1NC0xMS4yYzExLjUtMTAuNSAxNy42LTIwLjQgNTIuNS03MC43IDYuOC0xMC41IDEyLjYtLjggMTMuMSAwIDI5LjQgNDIuNCAzOS4yIDU4LjEgNTMuMSA3MC43IDE3LjQgMTUuOCA1My4zIDExLjIgNTMuMyAxMS4ybC04My0xMjMuNHoiXX0scDNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImludGVyY29tIixpY29uOls0NDgsNTEyLFtdLCJmN2FmIiwiTTM5MiAzMkw1NiAzMkMyNS4xIDMyIDAgNTcuMSAwIDg4TDAgNDI0YzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMzNiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtMzM2YzAtMzAuOS0yNS4xLTU2LTU2LTU2ek0yODMuNyAxMTQuMWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDE5OS41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTk5LjV6bS03NC42LTcuNWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDIxNi41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMjE2LjV6bS03NC43IDcuNWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDE5OS41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTk5LjV6TTU5LjcgMTQ0YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTM0LjNjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xMzQuM3pNMzgzLjEgMzcxLjhjLTcyLjggNjMtMjQxLjcgNjUuNC0zMTguMSAwLTE1LTEyLjggNC40LTM1LjUgMTkuNC0yMi43IDY1LjkgNTUuMyAyMTYuMSA1My45IDI3OS4zIDAgMTQuOS0xMi45IDM0LjMgOS44IDE5LjQgMjIuN3ptNS4yLTkzLjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xMzQuM2MwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDEzNC4zeiJdfSxmM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVhY3RldXJvcGUiLGljb246WzU3Niw1MTIsW10sImY3NWQiLCJNMjUwLjcgMjExLjdsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjEtMi4zLTYuOC0yLjMgNi44LTcuMiAuMSA1LjcgNC4zLTIgNi44em02My43IDBsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjItLjEtMi4zLTYuOC0yLjMgNi44LTcuMiAuMSA1LjcgNC4zLTEuOSA2Ljh6bS05MS4zIDUwLjVsLTMuNCAwYy00LjggMC0zLjggNC0zLjggMTIuMSAwIDQuNy0yLjMgNi4xLTUuOCA2LjFzLTUuOC0xLjQtNS44LTYuMWwwLTM2LjZjMC00LjcgMi4zLTYuMSA1LjgtNi4xczUuOCAxLjQgNS44IDYuMWMwIDcuMi0uNyAxMC41IDMuOCAxMC41bDMuNCAwYzQuNy0uMSAzLjgtMy45IDMuOC0xMi4zIDAtOS45LTYuNy0xNC4xLTE2LjgtMTQuMWwtLjIgMGMtMTAuMSAwLTE2LjggNC4yLTE2LjggMTQuMWwwIDQwLjFjMCAxMC40IDYuNyAxNC4xIDE2LjggMTQuMWwuMiAwYzEwLjEgMCAxNi44LTMuOCAxNi44LTE0LjEgMC05LjkgMS4xLTEzLjgtMy44LTEzLjh6bS04MC43IDE3LjRsLTE0LjcgMCAwLTE5LjMgMTEuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhsLTExLjQgMCAwLTE4LjMgMTQuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhsLTIxLjcgMGMtMi40LS4xLTMuNyAxLjMtMy43IDMuOGwwIDU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDIxLjkgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44em0tNDItMTguNWM0LjYtMiA3LjMtNiA3LjMtMTIuNGwwLTExLjljMC0xMC4xLTYuNy0xNC4xLTE2LjgtMTQuMWwtMTMuNCAwYy0yLjUgMC0zLjggMS4zLTMuOCAzLjhsMCA1OS4xYzAgMi41IDEuMyAzLjggMy44IDMuOGwzLjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yMi45IDUuNiAwIDcuNCAyMy41Yy4yIDEgLjggMS44IDEuNiAyLjRzMS44IC45IDIuNyAuOGwzLjMgMGMyLjggMCA0LTEuOCAzLjItNC40bC04LjEtMjMuOXptLTMuOC0xNGMwIDQuOC0yLjUgNi4xLTYuMSA2LjFsLTUuOCAwIDAtMjAuOSA1LjggMGMzLjYgMCA2LjEgMS4zIDYuMSA2LjFsMCA4Ljd6TTE3Ni4xIDIyNmMtLjEtLjUtLjItMS0uNC0xLjRzLS42LS44LTEtMS4xLS44LS42LTEuMy0uNy0xLS4yLTEuNS0uMWwtNi45IDBjLS41IDAtMSAwLTEuNCAuMnMtLjkgLjQtMS4zIC43LS43IC43LS45IDEuMS0uNCAuOS0uNCAxLjRsLTExIDU5LjJjLS41IDIuNyAuOSA0LjEgMy40IDQuMWwzIDBjLjUgLjEgMSAwIDEuNS0uMnMuOS0uNCAxLjMtLjcgLjctLjcgLjktMS4yIC40LS45IC40LTEuNGwxLjgtMTEuMyAxMi4yIDAgMS44IDExLjNjMCAuNSAuMiAxIC40IDEuNHMuNSAuOSAuOSAxLjIgLjggLjYgMS4zIC43IDEgLjIgMS41IC4ybDMuNSAwYzIuNiAwIDMuOS0xLjQgMy40LTQuMUwxNzYuMSAyMjZ6bS0xMi4zIDM5LjNsNC43LTI5LjcgNC43IDI5LjctOS40IDB6bTg5LjMgMjAuMmwwLTUzLjIgNy41IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMjUuOCAwYy0yLjUgMC0zLjggMS4zLTMuOCAzLjhsMCAyLjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDcuMyAwIDAgNTMuMmMwIDIuNSAxLjMgMy44IDMuOCAzLjhsMy40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAgMHptMjQ4LS44bC0xOS40IDAgMC0yNi43IDE2LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0xNi4xIDAgMC0yNS44IDE5LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0yMi4yIDBjLS4zLS4xLS41LS4xLS44IDBzLS41IC4yLS43IC40LS4zIC40LS40IC43LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDIyLjUgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjYgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbDAgMHpNNDA4IDIyMS44bC0uOCAwYy0xMC4xIDAtMTUuMyA0LjctMTUuMyAxNC4xbDAgNDAuMWMwIDkuMyA1LjIgMTQuMSAxNS4zIDE0LjFsLjggMGMxMC4xIDAgMTUuMy00LjggMTUuMy0xNC4xbDAtNDAuMWMwLTkuNC01LjItMTQuMS0xNS4zLTE0LjFsMCAwem0xMC4yIDUyLjRjLS4xIDgtMyAxMS4xLTEwLjUgMTEuMXMtMTAuNS0zLjEtMTAuNS0xMS4xbDAtMzYuNmMwLTcuOSAzLTExLjEgMTAuNS0xMS4xczEwLjUgMy4yIDEwLjUgMTEuMWwwIDM2LjZ6bS00Ni41LTE0LjVjNi4xLTEuNiA5LjItNi4xIDkuMi0xMy4zbDAtOS43YzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMWwtMTMuNyAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS43IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDEuMiAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNi0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLTI2LjkgMTEuNiAwIDEwLjQgMjcuMmMuMiAuNSAuNSAuOSAuOSAxLjFzLjkgLjQgMS40IC40bDEuNSAwYzEuNCAwIDItMSAxLjUtMi4zbC0xMC42LTI3LjN6bS02LjQtMy45bC0xMC4yIDAgMC0yOC41IDEwLjIgMGM3LjUgMCAxMC41IDMuMSAxMC41IDExLjFsMCA2LjRjMCA3LjgtMyAxMS0xMC41IDExbDAgMHptODUuOS0zMy4xbC0xMy43IDBjLS4zLS4xLS41LS4xLS44IDBzLS41IC4yLS43IC40LS4zIC40LS40IC43LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDEuMiAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNi0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLTI2LjEgMTAuNiAwYzEwLjEgMCAxNS4zLTQuOCAxNS4zLTE0LjFsMC0xMC41YzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMXptMTAuMiAyMi44YzAgNy45LTMgMTEuMS0xMC41IDExLjFsLTEwLjIgMCAwLTI5LjIgMTAuMiAwYzcuNS0uMSAxMC41IDMuMSAxMC41IDExbDAgNy4xek0yNTkuNiAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xek00ODcuMiAxNzEuOWMtMTEuNy00LjQtMjMuNS04LjEtMzUuNi0xMS4zIDE5LjYtNzggMTEuNi0xMzQuNy0yMi4zLTE1My45LTM0LjUtMTkuNC04NS45IDQuMy0xMzguMiA1NS4yIDMuNCAzLjMgNi44IDYuNyAxMC4yIDEwLjIgODIuNS04MCAxMTkuNi01My41IDEyMC45LTUyLjggMjIuNCAxMi43IDM2IDU1LjggMTUuNSAxMzcuOC0yNy44LTYuNC01Ni4xLTEwLjctODQuNi0xMy03MS45LTEwMC41LTE0MC42LTE0Mi4xLTE4Mi4yLTE0Mi4xLTMwLjggMC00My44IDIxLTQ3LjYgMjcuNy0xOC4xIDMyLTEzLjMgODQuMiAuMSAxMzMuOC03MC41IDIwLjMtMTIwLjcgNTQuMS0xMjAuMyA5NSAuNSA1OS42IDEwMy4yIDg3LjggMTIyLjEgOTIuOC0yMC41IDgxLjktMTAuMSAxMzUuNiAyMi4zIDE1My45IDI4IDE1LjggNzUuMSA2IDEzOC4yLTU1LjItMy40LTMuMy02LjgtNi43LTEwLjItMTAuMi04Mi41IDgwLTExOS43IDUzLjUtMTIwLjkgNTIuOC0yMi4zLTEyLjYtMzYtNTUuNi0xNS41LTEzNy45IDEyLjQgMi45IDQxLjggOS41IDg0LjYgMTMgNzEuOSAxMDAuNCAxNDAuNiAxNDIgMTgyLjEgMTQyIDMwLjggMCA0My44LTIxIDQ3LjYtMjcuNyAxOC0zMS45IDEzLjMtODQuMS0uMS0xMzMuOCAxNTIuMy00My44IDE1Ni4yLTEzMC4yIDMzLjktMTc2LjNsMCAwek0xMzYgMzYuOGMyLjktNS4xIDExLjktMjAuMyAzNC45LTIwLjMgMzYuOCAwIDk4LjggMzkuNiAxNjMuMyAxMjYuMi0zMS4zLTEuOC02Mi43LTEuNS05My45IC45IDEzLTE4LjMgMjcuMS0zNS44IDQyLjItNTIuNC0zLjQtMy41LTYuOC02LjktMTAuMi0xMC4yLTE4LjMgMjAuMi0zNS4zIDQxLjctNTAuNyA2NC4yLTI4LjUgMi43LTU2LjcgNy42LTg0LjQgMTQuNi0uMi0xLjQtMjQuMy04Mi4yLTEuMi0xMjNsMCAwek00NDAuOCA0NzUuMWMtMi45IDUuMS0xMS44IDIwLjMtMzQuOSAyMC4zLTM2LjcgMC05OC43LTM5LjQtMTYzLjMtMTI2LjIgMzEuMyAxLjggNjIuNyAxLjUgOTMuOS0uOS0xMyAxOC4zLTI3LjEgMzUuOC00Mi4yIDUyLjQgMy40IDMuNSA2LjggNi45IDEwLjIgMTAuMiAxOC40LTIwLjIgMzUuMy00MS43IDUwLjctNjQuMiA0Ny4zLTQuNyA4MC4zLTEzLjUgODQuNC0xNC42IDIyLjcgODQuNCA0LjUgMTE3IDEuMiAxMjN6bTkuMS0xMzguNmMtMy42LTExLjktNy43LTI0LjEtMTIuNC0zNi40LTIuMSAwLTQuMi0uNS02LjEtMS41cy0zLjUtMi40LTQuNi00LjJsLS4xIC4xYy0xLjYgMS41LTMuNCAyLjctNS40IDMuNiA1LjcgMTQuMyAxMC42IDI4LjQgMTQuNyA0Mi4yLTIzLjcgNi00Ny43IDEwLjMtNzIgMTMgMy41LTUuMyAxNy4yLTI2LjIgMzIuMi01NC4yLTIuMS0uOC00LjItMS45LTYtMy4yLTEuMSAxLjItMy42IDQuMi0xMC45IDQuMi02LjIgMTEuMi0xNy40IDMwLjktMzMuOSA1NS4yLTM3LjQgMy4zLTc1IDMuNi0xMTIuNCAxLTcuOS0xMS4yLTIxLjUtMzEuMS0zNi44LTU3LjgtMS0uNC0yLS45LTMtMS41LTEuOSAxLjYtMy45IDMuMi0xMi42IDMuMiA2LjMgMTEuMiAxNy41IDMwLjcgMzMuOCA1NC42LTI0LjMtMi4zLTQ4LjQtNi4yLTcyLjItMTEuNyAzLjktMTQgOC42LTI4LjMgMTQuMS00Mi45LTMuMiAwLTUuNCAuMi04LjQtMS0yLjIgLjgtNC42IDEuMS02LjkgMS00LjkgMTMuNC05LjEgMjYuNS0xMi43IDM5LjQtMTU5LjktNDIuNi0xNDAuMy0xMjMuNi0xLjUtMTY0IDMuNiAxMS45IDcuNyAyNC4xIDEyLjQgMzYuNCAxMC40IDAgMTIuOSAzLjQgMTQuNCA1LjMgLjctLjggMS40LTEuNiAyLjMtMi4yLTUuOC0xNC43LTEwLjktMjkuMi0xNS4yLTQzLjMgNy0xLjggMzIuNC04LjQgNzItMTMtMTUuOSAyNC4zLTI2LjcgNDMuOS0zMi44IDU1LjMgMy4xIDEuOCA1LjMgNC42IDYuNCA4IDIuNS0zLjcgNi4xLTYuNiAxMC4yLTguNCA2LjUtMTEuNyAxNy45LTMxLjkgMzQuOC01Ni45IDM3LjQtMy4zIDc1LTMuNiAxMTIuNC0xIDMxLjUgNDQuNiAyOC45IDQ4LjEgNDIuNSA2NC41IDIuNi0zLjUgNi4zLTYgMTAuNC03LjQtNi40LTExLjQtMTcuNi0zMS0zNC4zLTU1LjUgNDAuNCA0LjEgNjUgMTAgNzIuMiAxMS43LTQgMTQuNC04LjkgMjkuMi0xNC42IDQ0LjIgMi41IDEgNC44IDIuNCA2LjggNC4zbC4xIC4xYzEtMS41IDIuMy0yLjggMy44LTMuOHMzLjMtMS42IDUuMS0xLjhjNC45LTEzLjQgOS4yLTI2LjYgMTIuOC0zOS41IDExLjcgMy4xIDIzLjIgNi44IDM0LjUgMTEgMTA2LjEgMzkuOSA3NCA4Ny45IDcyLjYgOTAuNC0xOS44IDM1LjEtODAuMSA1NS4yLTEwNS43IDYyLjV6bS0xMTQuNC0xMTRsLTEuMiAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS42IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNDkuOGMwIDcuOS0yLjYgMTEuMS0xMC4xIDExLjFzLTEwLjEtMy4xLTEwLjEtMTEuMWwwLTQ5LjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMS4yIDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA1MS41YzAgOS42IDUgMTQuMSAxNS4xIDE0LjFsLjQgMGMxMC4xIDAgMTUuMS00LjYgMTUuMS0xNC4xbDAtNTEuNWMwLS4zLS4xLS41LS4yLS44cy0uMy0uNS0uNS0uNi0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMXpNMzIxLjggMzA4bC0yLjMtNi44LTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMXptLTMxLjEgNy40bC0yLjMtNi44LTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMXptNS4xLTMwLjhsLTE5LjQgMCAwLTI2LjcgMTYuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTE2LjEgMCAwLTI1LjggMTkuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTIyLjIgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDYzYzAgLjMgMCAuNSAuMSAuOHMuMiAuNSAuNCAuNiAuNCAuMyAuNyAuNCAuNSAuMSAuOCAuMWwyMi41IDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS42LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uNC0uNy0uNC0uNS0uMS0uOC0uMWwwIDB6bS03LjQtOTkuNGwtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xLTIuMy02Ljh6Il19LGgzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3YXplIixpY29uOls1MTIsNTEyLFtdLCJmODNmIiwiTTUwMi42IDIwMS43YzE0LjUgODUuOS0zMC45IDE2Ny45LTExMy4yIDIwOC4xIDEzIDM0LjEtMTIuNCA3MC4yLTQ4LjMgNzAuMi0xMy4yIDAtMjYtNS4xLTM1LjYtMTQuMnMtMTUuMy0yMS42LTE2LTM0LjhjLTYuNCAuMi02NC4yIDAtNzYuMy0uNi0uMyA2LjgtMS45IDEzLjUtNC43IDE5LjZzLTYuOSAxMS43LTExLjkgMTYuMy0xMC44IDguMi0xNy4yIDEwLjUtMTMuMiAzLjQtMTkuOSAzLjFjLTMzLjktMS40LTU4LTM0LjgtNDctNjcuOS0zNy4yLTEzLjEtNzIuNS0zNC45LTk5LjYtNzAuOC0xMy0xNy4zLS41LTQxLjggMjAuOC00MS44IDQ2LjMgMCAzMi4yLTU0LjIgNDMuMi0xMTAuMyAxOC40LTkzLjkgMTE2LjgtMTU3LjEgMjExLjctMTU3LjEgMTAyLjUgMCAxOTcuMiA3MC43IDIxNC4xIDE2OS43ek0zNzMuOSAzODguM2M0Mi0xOS4yIDgxLjMtNTYuNyA5Ni4zLTEwMi4xIDQwLjUtMTIzLjEtNjQuMi0yMjgtMTgxLjctMjI4LTgzLjQgMC0xNzAuMyA1NS40LTE4Ni4xIDEzNi05LjUgNDguOSA1IDEzMS40LTY4LjcgMTMxLjQgMjQuOSAzMy4xIDU4LjMgNTIuNiA5My43IDY0IDI0LjctMjEuOCA2My45LTE1LjUgNzkuOCAxNC4zIDE0LjIgMSA3OS4yIDEuMiA4Ny45IC44IDMuNS02LjkgOC41LTEyLjkgMTQuNy0xNy41czEzLjItNy45IDIwLjgtOS41IDE1LjQtMS40IDIyLjkgLjQgMTQuNSA1LjMgMjAuNSAxMC4yek0yMDUuNSAxODcuMWMwLTM0LjcgNTAuOC0zNC43IDUwLjggMHMtNTAuOCAzNC43LTUwLjggMHptMTE2LjYgMGMwLTM0LjcgNTAuOS0zNC43IDUwLjkgMHMtNTAuOSAzNC44LTUwLjkgMHpNMTk5LjUgMjU3LjhjLTMuNC0xNi45IDIyLjItMjIuMiAyNS42LTUuMmwuMSAuM2M0LjEgMjEuNCAyOS44IDQ0IDY0LjEgNDMuMSAzNS43LS45IDU5LjMtMjIuMiA2NC4xLTQyLjggNC41LTE2LjEgMjguNi0xMC40IDI1LjUgNi01LjIgMjIuMi0zMS4yIDYyLTkxLjUgNjIuOS00Mi42IDAtODAuOS0yNy44LTg3LjktNjQuMmwwIDB6Il19LG0zcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXJlbWl4IixpY29uOls1MTIsNTEyLFtdLCJmNGVlIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3pNNDE4LjEgMjYwLjRsNC45IDIuMiAwIDcwYy03LjIgMy42LTYzLjQgMjcuNS02Ny4zIDI4LjgtNi41LTEuOC0xMTMuNy00Ni44LTEzNy4zLTU2LjJsLTY0LjIgMjYuNi02My4zLTI3LjUgMC02My44IDU5LjMtMjQuOGMtLjctLjctLjQgNS0uNC03MC40bDY3LjMtMjkuNyAxNTEuOSA2Mi45IDAgNjEuNiA0OS4xIDIwLjN6bS03MC40IDgxLjVsMC00My44LS40IDAgMC0xLjgtMTEzLjgtNDYuNSAwIDQ1LjIgMTEzLjggNDYuOSAwLS40IC40IC40em03LjUtNTcuNmwzOS45LTE2LjQtMzYuOC0xNS41LTM5IDE2LjQgMzUuOSAxNS41em01Mi4zIDM4LjFsMC00My00NC4zIDE4LjYgMCA0My40IDQ0LjMtMTl6Il19LGczcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiYW5kY2FtcCIsaWNvbjpbNTEyLDUxMixbXSwiZjJkNSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTQ4LjIgMzI2LjFsLTE4MSAwIDg0LjctMTU2LjEgMTgxIDAtODQuNyAxNTYuMXoiXX0sYjNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS13ZWItYXdlc29tZS1zdHJva2UiLGljb246WzQ0OCw1MTIsW10sImU2ODQiLCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMjM1IDgxLjZsNTMgNDYuNCA1Mi4yLTEwLjRjLTIuNi0zLjktNC4yLTguNS00LjItMTMuNiAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMTMtMTAuMyAyMy42LTIzLjIgMjRMMzA0LjUgMzQ5LjFjLTUuMiAxMS41LTE2LjYgMTguOS0yOS4yIDE4LjlsLTEwMi42IDBjLTEyLjYgMC0yNC03LjQtMjkuMi0xOC45TDg3LjIgMjI0Yy0xMi45LS40LTIzLjItMTEtMjMuMi0yNCAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgNS0xLjUgOS43LTQuMiAxMy42TDE2MCAyMjQgMjEzLjEgMTc3LjZjLTguOS00LjEtMTUtMTMuMS0xNS0yMy42IDAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZjMCAxMC41LTYuMiAxOS41LTE1LjEgMjMuNnoiXX0seDNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbWVvLXYiLGljb246WzQ0OCw1MTIsW10sImYyN2QiLCJNNDQ3LjggMTUzLjZjLTIgNDMuNi0zMi40IDEwMy4zLTkxLjQgMTc5LjEtNjAuOSA3OS4yLTExMi40IDExOC44LTE1NC42IDExOC44LTI2LjEgMC00OC4yLTI0LjEtNjYuMy03Mi4zLTM1LjItMTI5LjItNTAuMi0yMDQuOS03OS4zLTIwNC45LTMuNCAwLTE1LjEgNy4xLTM1LjIgMjEuMUwwIDE2OC4yYzUxLjYtNDUuMyAxMDAuOS05NS43IDEzMS44LTk4LjUgMzQuOS0zLjQgNTYuMyAyMC41IDY0LjQgNzEuNSAyOC43IDE4MS41IDQxLjQgMjA4LjkgOTMuNiAxMjYuNyAxOC43LTI5LjYgMjguOC01Mi4xIDMwLjItNjcuNiA0LjgtNDUuOS0zNS44LTQyLjgtNjMuMy0zMSAyMi03Mi4xIDY0LjEtMTA3LjEgMTI2LjItMTA1LjEgNDUuOCAxLjIgNjcuNSAzMS4xIDY0LjkgODkuNHoiXX0sdjNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0cmF2YSIsaWNvbjpbMzg0LDUxMixbXSwiZjQyOCIsIk0xNTguNCAwTDcgMjkyIDk2LjIgMjkyIDE1OC40IDE3NS45IDIyMC4xIDI5MiAzMDguNiAyOTIgMTU4LjQgMHpNMzA4LjYgMjkybC00My45IDg4LjItNDQuNi04OC4yLTY3LjYgMCAxMTIuMiAyMjAgMTExLjUtMjIwLTY3LjYgMHoiXX0seTNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuaXJlZ2lzdHJ5IixpY29uOlszODQsNTEyLFtdLCJmNDA0IiwiTTE5MiA0ODBjMzkuNSAwIDc2LjItMTEuOCAxMDYuOC0zMi4ybC0yMTMuNSAwQzExNS44IDQ2OC4yIDE1Mi41IDQ4MCAxOTIgNDgwek0xMDIuOSAyODYuOWwwLTEyLjQtMTAyLjkgMCAwIDEyLjRjMCAyLjUgMCA1IC4xIDcuNGwxMDMuMSAwYy0uMi0yLjQtLjMtNC45LS4zLTcuNHptMjAuNSA1N2wtMTE0LjkgMGMyLjYgOC41IDUuOCAxNi44IDkuNiAyNC44bDEzOC4zIDBjLTEyLjktNS43LTI0LjEtMTQuMi0zMy0yNC44em0tMTcuNy0zNC43bC0xMDQuNCAwYy45IDcuNiAyLjIgMTUgMy45IDIyLjNsMTA5LjcgMGMtNC02LjktNy4yLTE0LjQtOS4yLTIyLjN6bS0yLjgtNjkuM2wtMTAyLjkgMCAwIDE3LjMgMTAyLjkgMCAwLTE3LjN6bTAtMTczLjJsLTEwMi45IDAgMCA0LjkgMTAyLjkgMCAwLTQuOXptMC0zNC43bC0xMDIuOSAwIDAgMi41IDEwMi45IDAgMC0yLjV6bTAgNjkuM2wtMTAyLjkgMCAwIDcuNCAxMDIuOSAwIDAtNy40em0wIDEwNGwtMTAyLjkgMCAwIDE0LjggMTAyLjkgMCAwLTE0Ljh6bTAtNjkuM2wtMTAyLjkgMCAwIDkuOSAxMDIuOSAwIDAtOS45em0wIDM0LjZsLTEwMi45IDAgMCAxMi40IDEwMi45IDAgMC0xMi40ek0yNjkuMSAzMzEuNWwxMDkuNyAwYzEuOC03LjMgMy4xLTE0LjcgMy45LTIyLjNsLTEwNC40IDBjLTIuMSA3LjktNS4yIDE1LjQtOS4yIDIyLjN6bTEyLTE4NS43bDEwMi45IDAgMC05LjgtMTAyLjkgMCAwIDkuOHptMCAzNy4ybDEwMi45IDAgMC0xMi40LTEwMi45IDAgMCAxMi40em0wLTc0LjNsMTAyLjkgMCAwLTcuNC0xMDIuOSAwIDAgNy40em0wLTc2LjdsMCAyLjUgMTAyLjkgMCAwLTIuNS0xMDIuOSAwek03OC4xIDQ0Mi45bDIyNy43IDBjMTEuOC04LjcgMjIuNy0xOC42IDMyLjItMjkuN2wtMjkzLjEgMGM5LjYgMTEgMjEuNCAyMSAzMy4yIDI5Ljd6bTIwMy0zNzEuM2wxMDIuOSAwIDAtNC45LTEwMi45IDAgMCA0Ljl6bTAgMTQ4LjVsMTAyLjkgMCAwLTE0LjgtMTAyLjkgMCAwIDE0Ljh6TTM4LjggNDA1LjdsMzA1LjMgMGM2LjctOC41IDEyLjYtMTcuNiAxNy44LTI3LjJMMjMgMzc4LjVjNS4yIDkuNiA5LjIgMTguNyAxNS44IDI3LjJ6bTE4OC44LTM3LjFsMTM5LjQgMGMzLjctOCA1LjgtMTYuMiA4LjUtMjQuOGwtMTE1IDBjLTguOCAxMC43LTIwLjEgMTkuMi0zMi45IDI0Ljh6bTUzLjUtODEuN2MwIDIuNS0uMSA1LS40IDcuNGwxMDMuMSAwYy4xLTIuNSAuMi00LjkgLjItNy40bDAtMTIuNC0xMDIuOSAwIDAgMTIuNHptMC0yOS43bDEwMi45IDAgMC0xNy4zLTEwMi45IDAgMCAxNy4zeiJdfSx3M3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtZGluZXJzLWNsdWIiLGljb246WzU3Niw1MTIsW10sImYyNGMiLCJNMjM5LjcgNzkuOWExNzUuOCAxNzUuOCAwIDEgMCAwIDM1MS42IDE3NS44IDE3NS44IDAgMSAwIDAtMzUxLjZ6TTE5OS44IDM1OS41Yy00MS43LTE1LjktNzEuNC01Ni40LTcxLjQtMTAzLjhzMjkuNy04Ny45IDcxLjQtMTA0LjFsMCAyMDcuOXptNzkuOCAuM2wwLTIwOC4yYzQxLjcgMTYuMiA3MS40IDU2LjcgNzEuNCAxMDQuMXMtMjkuNyA4Ny45LTcxLjQgMTA0LjF6TTUyOCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0zMjkuNyA0NDhsLTkwLjMgMEMxMzMuMiA0NDggNDUuNiAzNjIuNSA0NS42IDI1Ny44IDQ1LjYgMTQzLjIgMTMzLjIgNjQgMjM5LjQgNjRsOTAuMyAwYzEwNSAwIDIwMC43IDc5LjIgMjAwLjcgMTkzLjggMCAxMDQuNy05NS43IDE5MC4yLTIwMC43IDE5MC4yeiJdfSxrM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia3ViZXJuZXRlcyIsaWNvbjpbNTEyLDUxMixbXSwiZTg1NyIsIk0yNTYgMzE2LjFjMy41LS4xIDcuMiAyIDguOSA1LjFMMjkzIDM3MS43Yy0zLjYgMS4yLTcuMyAyLjMtMTEuMiAzLjEtMjEuNCA0LjktNDIuNyAzLjQtNjItMy4ybDI3LjktNTAuNGMxLjctMy4xIDQuOS01IDguMi01LjF6bTUwLjUtMjMuNGw1Ny4yIDkuN2MtOC40IDIzLjUtMjQuNCA0My45LTQ1LjggNTcuNWwtMjIuMi01My42Yy0yLTQuNyAuMS0xMC40IDQuOC0xMi42IDEuOS0uOSA0LjEtMS4zIDYtLjl6bS04OS4xIDcuN2MuNSAyLjEgLjMgNC4yLS41IDZsLTIxLjggNTMuM2MtMjAuNS0xMy4yLTM2LjktMzIuOS00NS43LTU3LjFsNTYuNy05LjZjNS4xLS45IDEwLjEgMi40IDExLjMgNy41em01OC44LTQxbC0zLjkgMTcuMS0xNS44IDcuNi0xNS45LTcuNy00LTE3LjEgMTEtMTMuNyAxNy43IDAgMTEgMTMuN3ptLTczLjctMTYuN2MzLjkgMy40IDQuNCA5LjUgMS4yIDEzLjYtMS4zIDEuNy0zLjEgMi44LTUgMy4zbC01NS4zIDE2LjJjLTIuOC0yNS43IDMuMy01MC43IDE2LjEtNzEuNmw0My4xIDM4LjZ6bTE1MC43LTM4LjVjNi40IDEwLjQgMTEuMiAyMiAxNC4xIDM0LjYgMi45IDEyLjQgMy42IDI0LjggMi40IDM2LjhsLTU1LjYtMTZjLTUtMS40LTguMS02LjctNi45LTExLjcgLjUtMi4xIDEuNi0zLjggMy4xLTUuMWw0Mi45LTM4LjV6bS0xMTMuOCA0LjRjLS4yIDUuMi00LjcgOS40LTkuOSA5LjQtMi4xIDAtNC4xLS43LTUuNy0xLjhsLTQ3LjMtMzMuNGMxNC41LTE0LjMgMzMuMS0yNC44IDU0LjUtMjkuNyAzLjktLjkgNy44LTEuNiAxMS43LTJsLTMuMyA1Ny42em0zMC44LTU3LjZjMjUgMy4xIDQ4LjEgMTQuNCA2NS44IDMxLjdsLTQ3LjEgMzMuMmMtNC4yIDMtMTAgMi4zLTEzLjMtMS44LTEuMy0xLjctMi0zLjYtMi4xLTUuNmwtMy4zLTU3LjV6TTI1NC41LTEuM2M1LjktLjMgMTEuNyAuOSAxNyAzLjRMNDU1IDg5LjdjNC43IDIuMyA4LjkgNS42IDEyLjIgOS43czUuNiA4LjggNi44IDEzLjlsNDUuMyAxOTYuOWMxLjIgNS4xIDEuMiAxMC40IDAgMTUuNXMtMy41IDkuOS02LjggMTMuOUwzODUuNiA0OTcuNmMtMy4zIDQuMS03LjUgNy40LTEyLjIgOS42cy0xMCAzLjQtMTUuMiAzLjRsLTIwMy42IDBjLTUuMyAwLTEwLjUtMS4yLTE1LjItMy40cy04LjktNS41LTEyLjItOS42TC4yIDMzOS43Yy0uNy0uOS0xLjQtMS44LTItMi44LTIuNi0zLjktNC4zLTguMy01LjEtMTIuOXMtLjctOS4zIC4zLTEzLjhMMzguNyAxMTMuNGMxLjItNS4xIDMuNS05LjkgNi44LTEzLjlzNy41LTcuNCAxMi4yLTkuN0wyNDEuMSAyLjFjNC4yLTIgOC44LTMuMiAxMy40LTMuNHptMS44IDY3Yy02LjEgMC0xMSA1LjUtMTEgMTIuMiAwIC4xIDAgLjIgMCAuMyAwIC45LS4xIDIgMCAyLjggLjEgMy45IDEgNi45IDEuNSAxMC40IC45IDcuNyAxLjcgMTQgMS4yIDE5LjktLjUgMi4yLTIuMSA0LjMtMy42IDUuN2wtLjIgNC42Yy02LjYgLjUtMTMuMiAxLjYtMTkuOCAzLjEtMjguNSA2LjUtNTMuMSAyMS4xLTcxLjggNDEtMS4yLS44LTMuMy0yLjMtNC0yLjgtMiAuMy00IC45LTYuNS0uNi00LjktMy4zLTkuNC03LjktMTQuOC0xMy40LTIuNS0yLjYtNC4zLTUuMS03LjItNy43LS43LS42LTEuNy0xLjQtMi40LTItMi4zLTEuOC01LTIuOC03LjctMi45LTMuNC0uMS02LjYgMS4yLTguOCAzLjktMy44IDQuNy0yLjUgMTIgMi43IDE2LjIgLjEgMCAuMSAuMSAuMiAuMSAuNyAuNiAxLjYgMS4zIDIuMyAxLjggMy4xIDIuMyA2IDMuNSA5LjEgNS4zIDYuNiA0LjEgMTIgNy40IDE2LjMgMTEuNSAxLjcgMS44IDIgNC45IDIuMiA2LjNsMy41IDMuMmMtMTguOCAyOC40LTI3LjYgNjMuNC0yMi40IDk5LjFsLTQuNiAxLjNjLTEuMiAxLjYtMi45IDQtNC43IDQuNy01LjYgMS44LTEyIDIuNC0xOS43IDMuMy0zLjYgLjMtNi43IC4xLTEwLjUgLjgtLjggLjItMiAuNC0yLjkgLjdsLS4xIDAtLjIgLjFjLTYuNSAxLjYtMTAuNyA3LjUtOS4zIDEzLjQgMS4zIDUuOSA3LjcgOS40IDE0LjIgOGwuMiAwYy4xIDAgLjEtLjEgLjItLjEgLjktLjIgMi4xLS40IDIuOC0uNiAzLjgtMSA2LjUtMi41IDkuOC0zLjggNy4zLTIuNiAxMy4zLTQuOCAxOS4yLTUuNiAyLjQtLjIgNSAxLjUgNi4zIDIuMmw0LjgtLjhjMTEgMzQuMSAzNC4xIDYxLjcgNjMuMyA3OS4xbC0yIDQuOGMuNyAxLjkgMS41IDQuNCAxIDYuMi0yLjEgNS41LTUuOCAxMS40LTkuOSAxNy45LTIgMy00LjEgNS4zLTUuOSA4LjgtLjQgLjgtMSAyLjEtMS40IDMtMi44IDYtLjggMTMgNC43IDE1LjYgNS41IDIuNiAxMi4yLS4xIDE1LjItNi4ybDAgMGMuNC0uOSAxLTIgMS40LTIuOCAxLjYtMy42IDIuMS02LjYgMy4yLTEwLjEgMi45LTcuMyA0LjUtMTQuOSA4LjUtMTkuNyAxLjEtMS4zIDIuOS0xLjggNC44LTIuM2wyLjUtNC41YzI1LjUgOS44IDU0IDEyLjQgODIuNSA1LjkgNi41LTEuNSAxMi44LTMuNCAxOC44LTUuNyAuNyAxLjIgMiAzLjYgMi4zIDQuMiAxLjkgLjYgMy45IC45IDUuNiAzLjQgMyA1LjEgNSAxMS4yIDcuNSAxOC41IDEuMSAzLjQgMS42IDYuNSAzLjIgMTAuMSAuNCAuOCAxIDIgMS40IDIuOCAyLjkgNi4xIDkuNyA4LjggMTUuMiA2LjIgNS40LTIuNiA3LjUtOS42IDQuNy0xNS42LS40LS45LTEtMi4xLTEuNC0zLTEuOC0zLjQtMy45LTUuNy01LjktOC43LTQuMi02LjUtNy42LTExLjktOS44LTE3LjQtLjktMi44IC4yLTQuNiAuOC02LjUtLjQtLjUtMS4zLTMuMi0xLjgtNC40IDMwLjQtMTcuOSA1Mi44LTQ2LjYgNjMuMy03OS42IDEuNCAuMiAzLjkgLjcgNC43IC44IDEuNy0xLjEgMy4yLTIuNSA2LjItMi4zIDUuOSAuOCAxMS45IDMgMTkuMiA1LjYgMy40IDEuMyA2LjEgMi44IDkuOCAzLjggLjggLjIgMS45IC40IDIuOCAuNiAuMSAwIC4xIDAgLjIgLjFsLjIgMGM2LjUgMS40IDEyLjgtMi4yIDE0LjItOHMtMi44LTExLjgtOS4zLTEzLjRjLS45LS4yLTIuMy0uNi0zLjItLjctMy44LS43LTYuOS0uNS0xMC41LS44LTcuNy0uOC0xNC0xLjQtMTkuNy0zLjItMi4zLS45LTQtMy43LTQuOC00LjhsLTQuNC0xLjNjMi4zLTE2LjYgMS43LTMzLjktMi4zLTUxLjMtNC0xNy41LTExLjEtMzMuNS0yMC42LTQ3LjYgMS4xLTEgMy4zLTIuOSAzLjktMy41IC4yLTIgMC00IDIuMS02LjIgNC4zLTQuMSA5LjgtNy40IDE2LjMtMTEuNSAzLjEtMS44IDYtMyA5LjEtNS4zIC43LS41IDEuNy0xLjMgMi40LTEuOSA1LjMtNC4yIDYuNS0xMS40IDIuNy0xNi4ycy0xMS4xLTUuMi0xNi40LTFjLS43IC42LTEuOCAxLjQtMi40IDItMi45IDIuNS00LjggNS03LjIgNy43LTUuNCA1LjUtOS45IDEwLjEtMTQuOCAxMy40LTIuMSAxLjItNS4zIC44LTYuNyAuN2wtNC4yIDNjLTIzLjgtMjUtNTYuMi00MS05MS4yLTQ0LjEtLjEtMS41LS4yLTQuMS0uMi00LjktMS40LTEuNC0zLjItMi41LTMuNi01LjUtLjUtNS45IC4zLTEyLjMgMS4zLTE5LjkgLjUtMy42IDEuNC02LjYgMS41LTEwLjQgMC0uOSAwLTIuMiAwLTMuMSAwLTYuNy00LjktMTIuMi0xMS0xMi4yeiJdfSxTM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGludGVyZXN0IixpY29uOls1MTIsNTEyLFtdLCJmMGQyIiwiTTUwNCAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4LTI1LjYgMC01MC4yLTMuOS03My40LTExLjEgMTAuMS0xNi41IDI1LjItNDMuNSAzMC44LTY1IDMtMTEuNiAxNS40LTU5IDE1LjQtNTkgOC4xIDE1LjQgMzEuNyAyOC41IDU2LjggMjguNSA3NC44IDAgMTI4LjctNjguOCAxMjguNy0xNTQuMyAwLTgxLjktNjYuOS0xNDMuMi0xNTIuOS0xNDMuMi0xMDcgMC0xNjMuOSA3MS44LTE2My45IDE1MC4xIDAgMzYuNCAxOS40IDgxLjcgNTAuMyA5Ni4xIDQuNyAyLjIgNy4yIDEuMiA4LjMtMy4zIC44LTMuNCA1LTIwLjMgNi45LTI4LjEgLjYtMi41IC4zLTQuNy0xLjctNy4xLTEwLjEtMTIuNS0xOC4zLTM1LjMtMTguMy01Ni42IDAtNTQuNyA0MS40LTEwNy42IDExMi0xMDcuNiA2MC45IDAgMTAzLjYgNDEuNSAxMDMuNiAxMDAuOSAwIDY3LjEtMzMuOSAxMTMuNi03OCAxMTMuNi0yNC4zIDAtNDIuNi0yMC4xLTM2LjctNDQuOCA3LTI5LjUgMjAuNS02MS4zIDIwLjUtODIuNiAwLTE5LTEwLjItMzQuOS0zMS40LTM0LjktMjQuOSAwLTQ0LjkgMjUuNy00NC45IDYwLjIgMCAyMiA3LjQgMzYuOCA3LjQgMzYuOHMtMjQuNSAxMDMuOC0yOSAxMjMuMkMxNjEuNSA0MzcuMiAxNjMuNSA0NjcuNCAxNjUuNiA0ODcgNzMuNCA0NTAuOSA4IDM2MS4xIDggMjU2IDggMTE5IDExOSA4IDI1NiA4UzUwNCAxMTkgNTA0IDI1NnoiXX0sTTNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFsZ29saWEiLGljb246WzUxMiw1MTIsW10sImYzNmMiLCJNMjU2IDBjLTEzOS45IDAtMjU0IDExMi43LTI1NiAyNTIuMS0yIDE0MS41IDExMi45IDI1OC43IDI1NC41IDI1OS41IDQzLjcgLjMgODUuOS0xMC40IDEyMy4zLTMwLjcgMy42LTIgNC4yLTcgMS4xLTkuN2wtMjQtMjEuMmMtNC45LTQuMy0xMS44LTUuNS0xNy44LTMtMjYuMSAxMS4xLTU0LjUgMTYuOC04My43IDE2LjQtMTE0LjQtMS41LTIwNi45LTk2LjYtMjA1LjEtMjExIDEuOC0xMTIuOSA5NC4zLTIwNC4yIDIwNy43LTIwNC4ybDIwNy43IDAgMCAzNjktMTE3LjgtMTA0LjdjLTMuOC0zLjQtOS43LTIuNy0xMi43IDEuMy0xOC45IDI1LTQ5LjcgNDAuNi04My45IDM4LjItNDcuNS0zLjMtODUuOS00MS41LTg5LjUtODguOS00LjItNTYuNiA0MC42LTEwMy45IDk2LjMtMTAzLjkgNTAuNCAwIDkxLjkgMzguOCA5Ni4yIDg4IC40IDQuNCAyLjQgOC41IDUuNyAxMS40bDMwLjcgMjcuMmMzLjUgMy4xIDkgMS4yIDkuOS0zLjQgMi4yLTExLjggMy0yNC4yIDIuMS0zNi44LTQuOS03Mi02My4zLTEzMC0xMzUuNC0xMzQuNC04Mi43LTUuMS0xNTEuOCA1OS41LTE1NCAxNDAuNi0yLjEgNzguOSA2Mi42IDE0NyAxNDEuNiAxNDguNyAzMyAuNyA2My42LTkuNiA4OC4zLTI3LjZMNDk1IDUwOS40YzYuNiA1LjggMTcgMS4yIDE3LTcuN2wwLTQ5MmMwLTUuNC00LjQtOS43LTkuNy05LjdMMjU2IDB6Il19LEMzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFja3BhdGgiLGljb246WzQ0OCw1MTIsW10sImY4NDIiLCJNMjQ0LjYgMjMyLjRjMCA4LjUtNC4zIDIwLjUtMjEuMyAyMC41bC0xOS42IDAgMC00MS41IDE5LjYgMGMxNy4xIDAgMjEuMyAxMi40IDIxLjMgMjF6TTQ0OCAzMmwwIDQ0OC00NDggMCAwLTQ0OCA0NDggMHpNMTUxLjMgMjg3LjhjMC0yMS4yLTEyLjEtMzQuNS00Ni43LTQ0LjgtMjAuNi03LjQtMjYtMTAuOS0yNi0xOC42czctMTQuNiAyMC40LTE0LjZjMTQuMSAwIDIwLjggOC40IDIwLjggMTguNGwzMC43IDAgLjItLjZjLjUtMTkuNi0xNS4xLTQxLjYtNTEuMS00MS42LTIzLjQgMC01Mi42IDEwLjgtNTIuNiAzOC4zIDAgMTkuNCA5LjIgMzEuMyA1MC43IDQ0LjQgMTcuMyA2LjIgMjEuOSAxMC40IDIxLjkgMTkuNSAwIDE1LjItMTkuMSAxNC4yLTE5LjUgMTQuMi0yMC40IDAtMjUuNy05LjEtMjUuNy0yMS45bC0zMC44IDAtLjIgLjZjLS43IDMxLjMgMjguNCA0NS4yIDU2LjYgNDUuMiAzMCAwIDUxLjEtMTMuNiA1MS4xLTM4LjN6bTEyNS40LTU1LjZjMC0yNS4zLTE4LjQtNDUuNS01My40LTQ1LjVsLTUxLjggMCAwIDEzOC4yIDMyLjIgMCAwLTQ3LjQgMTkuNiAwYzMwLjMgMCA1My40LTE2IDUzLjQtNDUuNHpNMjk3LjkgMzI1bDQ5LjEtMTM4LjItMzEuMSAwLTQ3LjkgMTM4LjIgMjkuOSAwek00MDQuNSAxODYuOGwtMzEuMSAwLTQ3LjkgMTM4LjIgMjkuOSAwIDQ5LjEtMTM4LjJ6Il19LHozcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvY3RvcHVzLWRlcGxveSIsaWNvbjpbNTEyLDUxMixbXSwiZTA4MiIsIk00NTUuNyAzNDkuMmMtNDUuOS0zOS4xLTM2LjctNzcuOS0xNi4xLTEyOC4xIDM1LjctODctMjMuNS0xODYuOS0xMDkuNi0yMTIuOC05Mi45LTI3LjktMTk1LjcgMTYtMjMwLjMgMTA4LjgtOC43IDIzLjUtMTIuNSA0OC41LTExIDczLjUgMS43IDI5LjUgMTQuNyA1MyAyNC4xIDgwLjMgMTcuMiA1MC4yLTI4LjEgOTIuNy02Ni43IDExNy42LTQ2LjggMzAuMi0zNi4zIDM5LjktOC40IDQxLjkgMjMuNCAxLjcgNDQuNS00LjUgNjUuMy0xNSA5LjItNC42IDQwLjctMTguOSA0NS4xLTI4LjYtMTIuMiAyNi42LTM3IDcyLjctMjEuNSAxMDIuMSAxOS4xIDM2LjIgNjcuMS0zMS44IDc2LjctNDUuOCA4LjYtMTIuNiA0My04MS4zIDYzLjYtNDYuOSAxOC45IDMxLjQgOC42IDc2LjQgMzUuNyAxMDQuNiAzMi45IDM0LjIgNTEuMi0xOC4zIDUxLjQtNDQuMiAuMi0xNi40LTYuMS05NS45IDI5LjktNTkuOSAyMS40IDIxLjQgNTIuOSA3MS4yIDg4LjYgNjcgMzguNy00LjUtMjIuMS02OC0yOC4zLTc4LjcgNS40IDQuMyA1My43IDM0LjEgNTMuOCA5LjUgLjEtMTguOC0zMC4xLTM0LjctNDIuNS00NS4zeiJdfSxfM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFtbWVyIixpY29uOls1MTIsNTEyLFtdLCJmODQwIiwiTTUwMC43IDE1OS41Yy0uNC0xLjgtMS4yLTMuNC0yLjMtNC44cy0yLjUtMi42LTQuMS0zLjVjLTMuMS0xLjYtNi43LTItMTAuMS0xLjFsLTI2LjQgNi42IDAtLjItMjIuMyA1LjgtMS4yIC4zLS42LTIuMmMtMTUuNS01OC4zLTQ1LTExMS45LTg2LjEtMTU2LjItMi42LTIuNy02LjEtNC4yLTkuOC00LjNzLTcuMyAxLjMtMTAgMy44bC0xMDIuOSAxMDIuNy0xOTkuOSAwYy02LjYgMC0xMi45IDIuNi0xNy42IDcuM1MwIDEyNC44IDAgMTMxLjRsMCAyNDlDMCAzODcgMi42IDM5My4zIDcuMyAzOThzMTEgNy4zIDE3LjYgNy4zTDIyNSA0MDUuMyAzMjguMSA1MDhjMi42IDIuNiA2IDQgOS43IDRzNy4xLTEuNCA5LjctNGMuMS0uMSAuMi0uMyAuNC0uNCAyOS4zLTMxLjUgNTIuOC02Ny44IDY5LjYtMTA3LjQgNi45LTE2LjUgMTIuNy0zMy41IDE3LjMtNTAuOGwwIDAgMjAuNCA1LjMgMC0uMSAyOC4zIDcuM2MuOSAuMiAxLjcgLjQgMi42IC41IDEuNCAuMiAyLjggLjIgNC4xLS4xIDIuNS0uNSA0LjgtMS43IDYuNy0zLjRzMy4yLTQgMy44LTYuNWMxNS4yLTYzLjQgMTUuMi0xMjkuNiAuMS0xOTNsMCAwek0zMzcuMSAyNC43bDAgMCAwIDAgMCAwek0yMjYuOSAxODkuOGwtNTIuNiA5MS4zYy0xIDEuNy0xLjUgMy43LTEuNSA1LjdsMCA0Ni4yYzAgNS44LTIuMyAxMS40LTYuNSAxNS42cy05LjcgNi40LTE1LjYgNi40bC0zLjQgMGMtNS44IDAtMTEuNC0yLjMtMTUuNi02LjRzLTYuNS05LjctNi41LTE1LjZsMC00NS43YzAtMS45LS41LTMuOC0xLjQtNS41TDcyLjMgMTg5LjZjLTEuOS0zLjQtMi44LTcuMS0yLjgtMTFzMS4xLTcuNiAzLTEwLjkgNC43LTYuMSA4LjEtOCA3LjEtMi45IDExLTIuOWwzLjMgMGM0IDAgOCAxLjEgMTEuNSAzLjJzNi4zIDUuMSA4LjEgOC43bDM2LjQgNzAuMyAzNy41LTcwLjVjMS44LTMuNSA0LjYtNi40IDcuOS04LjRzNy4yLTMuMiAxMS4xLTMuMiA3LjggLjkgMTEuMiAyLjggNi4zIDQuNyA4LjIgOC4xYzIgMy4zIDMgNy4xIDMgMTFzLTEgNy43LTMgMTFsMCAwek0zMzcuMSAyNC43YzM1LjkgNDAuNiA2MS45IDg5IDc1LjggMTQxLjNsLjYgMi0xMTQuMSAyOS42IDAtNjYuMWMwLTYuNi0yLjctMTIuOS03LjMtMTcuNnMtMTEtNy4zLTE3LjYtNy4zbC0xOS40IDAgODIuMS04MS44ek0zOTcuNiAzOTJsMCAwIDAgMGMtMTQuNyAzNC44LTM1LjEgNjctNjAuMiA5NS4ybC04Mi4yLTgxLjkgMTkuMiAwYzYuNiAwIDEyLjktMi42IDE3LjYtNy4zczcuMy0xMSA3LjMtMTcuNmwwLTY2LjIgMTE0LjYgMjkuOWMtNC40IDE2LjMtOS44IDMyLjMtMTYuMyA0Ny45bDAgMHptODQtNTIuNGwwIDAtNTAuNi0xMy4xLTEzMS43LTM0LjMgMC03Mi41IDExOS43LTMxIDQuNS0xLjJjMjkuOS03LjcgNDkuMi0xMi44IDU4LjEtMTUuMSAxMiA1NS4xIDEyIDExMi4xIDAgMTY3LjJ6Il19LFQzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtb2R4IixpY29uOls0NDgsNTEyLFtdLCJmMjg1IiwiTTM1NiAyNDEuOGwzNi43IDIzLjcgMCAyMTQuNS0xMzMtODMuOCA5Ni4zLTE1NC40ek00NDAgNzVsLTIxMy43IDAtMjMgMzcuOCAxNTMuNSA5Ni41IDgzLjItMTM0LjN6TTM1MSAyMTcuOGwtMjk1LjgtMTg1LjggMCAyMTQuNSA0NiAyOSAyNDkuOC01Ny43ek05NyAyOTQuMkw4IDQzNyAyMjEuNyA0MzcgMzQ2LjcgMjM2LjUgOTcgMjk0LjJ6Il19LEwzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdGhyZWFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTYxOSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yOTQuMiAyNDQuM2MxOS41IDkuMyAzMy43IDIzLjUgNDEuMiA0MC45IDEwLjQgMjQuMyAxMS40IDYzLjktMjAuMiA5NS40LTI0LjIgMjQuMS01My41IDM1LTk1LjEgMzUuM2wtLjIgMGMtNDYuOC0uMy04Mi44LTE2LjEtMTA2LjktNDYuOC0yMS41LTI3LjMtMzIuNi02NS40LTMzLTExMy4xbDAtLjJjLjQtNDcuNyAxMS41LTg1LjcgMzMtMTEzLjEgMjQuMi0zMC43IDYwLjItNDYuNSAxMDYuOS00Ni44bC4yIDBjNDYuOSAuMyA4My4zIDE2IDEwOC4yIDQ2LjYgMTIuMyAxNS4xIDIxLjMgMzMuMyAyNyA1NC40bC0yNi45IDcuMmMtNC43LTE3LjItMTEuOS0zMS45LTIxLjQtNDMuNi0xOS40LTIzLjktNDguNy0zNi4xLTg3LTM2LjQtMzggLjMtNjYuOCAxMi41LTg1LjUgMzYuMi0xNy41IDIyLjMtMjYuNiA1NC40LTI2LjkgOTUuNSAuMyA0MS4xIDkuNCA3My4zIDI2LjkgOTUuNSAxOC43IDIzLjggNDcuNCAzNiA4NS41IDM2LjIgMzQuMy0uMyA1Ni45LTguNCA3NS44LTI3LjMgMjEuNS0yMS41IDIxLjEtNDcuOSAxNC4yLTY0LTQtOS40LTExLjQtMTcuMy0yMS4zLTIzLjMtMi40IDE4LTcuOSAzMi4yLTE2LjUgNDMuMi0xMS40IDE0LjUtMjcuNyAyMi40LTQ4LjQgMjMuNS0xNS43IC45LTMwLjgtMi45LTQyLjYtMTAuNy0xMy45LTkuMi0yMi0yMy4yLTIyLjktMzkuNS0xLjctMzIuMiAyMy44LTU1LjMgNjMuNS01Ny42IDE0LjEtLjggMjcuMy0uMiAzOS41IDEuOS0xLjYtOS45LTQuOS0xNy43LTkuOC0yMy40LTYuNy03LjgtMTcuMS0xMS44LTMwLjgtMTEuOWwtLjQgMGMtMTEgMC0yNiAzLjEtMzUuNiAxNy42bC0yMy0xNS44YzEyLjgtMTkuNCAzMy42LTMwLjEgNTguNS0zMC4xbC42IDBjNDEuOCAuMyA2Ni42IDI2LjMgNjkuMSA3MS44IDEuNCAuNiAyLjggMS4yIDQuMiAxLjlsLjEgLjV6bS03MS44IDY3LjVjMTctLjkgMzYuNC03LjYgMzkuNy00OC44LTguOC0xLjktMTguNi0yLjktMjktMi45LTMuMiAwLTYuNCAuMS05LjYgLjMtMjguNiAxLjYtMzguMSAxNS41LTM3LjQgMjcuOSAuOSAxNi43IDE5IDI0LjUgMzYuNCAyMy42bC0uMS0uMXoiXX0sRDNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9sZC1yZXB1YmxpYyIsaWNvbjpbNTEyLDUxMixbXSwiZjUxMCIsIk0yNDMuOCAxMC4yYzcuNS0uMyAxNS0uMyAyMi41LS4xIDMuNiAuMSA3LjIgLjQgMTAuOCAuNyA0LjkgLjMgOS44IDEgMTQuNyAxLjYgMi45IC40IDUuOCAxIDguNyAxLjUgNy45IDEuMyAxNS43IDMuMyAyMy40IDUuNCAxMi4yIDMuNSAyNC4yIDcuOSAzNS44IDEzLjIgMjYuNiAxMi4yIDUwLjkgMjkuMiA3MS42IDQ5LjkgMjAgMjAuMSAzNi43IDQzLjUgNDguOSA2OS4yIDEuMSAyLjYgMi40IDUuMSAzLjUgNy43IDIuOCA2LjQgNS40IDEzIDcuNiAxOS42IDQuMSAxMi4zIDcuMyAyNSA5LjQgMzcuOCAuNiAzLjEgMSA2LjMgMS40IDkuNSAuNSAzLjggLjkgNy43IDEuMiAxMS42IC44IDguMyAuOCAxNi43IC44IDI1LjEtLjEgNS0uMyA5LjktLjcgMTQuOS0uMiAzLjQtLjUgNi44LTEgMTAuMS0uNCAyLjctLjYgNS41LTEuMSA4LjItLjkgNS4xLTEuNyAxMC4zLTIuOSAxNS40LTQuMSAxOC41LTEwLjMgMzYuNi0xOC41IDUzLjYtMTUuOCAzMi44LTM4LjggNjIuMi02Ny4xIDg1LjEtMTcuMyAxNC4xLTM2LjQgMjUuOS01Ni45IDM0LjktNi4yIDIuNy0xMi41IDUuMy0xOC45IDcuNC0zLjUgMS4yLTcgMi40LTEwLjYgMy40LTYuNiAxLjktMTMuMyAzLjYtMjAgNS00LjcgLjktOS4zIDEuNy0xNCAyLjUtNS4zIC43LTEwLjUgMS40LTE1LjggMS43LTYuNyAuNy0xMy40IC44LTIwLjEgLjgtNi44IDAtMTMuNi0uMS0yMC40LS44LTMuMy0uMi02LjYtLjUtOS44LTEtMi43LS40LTUuNS0uNi04LjItMS4xLTQuMS0uNy04LjItMS40LTEyLjQtMi4yLTQuMi0uOS04LjUtMS45LTEyLjctMy04LjYtMi4yLTE3LjEtNS0yNS40LTguMS0xMC41LTQuMS0yMC44LTguNy0zMC42LTE0LjItMi4xLTEuMi00LjMtMi4zLTYuNC0zLjYtMTEuMi02LjYtMjEuOS0xNC4xLTMxLjktMjIuMy0zNC43LTI4LjQtNjEuNC02Ni40LTc2LjQtMTA4LjctMy4xLTguNy01LjctMTcuNi03LjgtMjYuNy0xLjUtNi4yLTIuNS0xMi40LTMuNi0xOC43LS40LTIuMy0uNi00LjctMS03LjEtLjYtNC0uOC04LTEuMi0xMS45LS44LTkuNS0uNy0xOS0uNS0yOC41IC4xLTMuNSAuMy03IC43LTEwLjUgLjMtMy4yIC41LTYuNCAuOS05LjUgLjQtMi44IC43LTUuNiAxLjItOC40IC43LTMuOSAxLjMtNy45IDIuMS0xMS44IDMuNC0xNi41IDguNS0zMi43IDE1LjMtNDguMiAxLjItMi45IDIuNi01LjcgMy45LTguNiA4LjEtMTYuNyAxNy45LTMyLjYgMjkuNS00Ny4xIDIwLTI1LjQgNDUuMS00Ni43IDczLjMtNjIuNSA3LjUtNC4yIDE1LjItOCAyMy4xLTExLjQgMTUuOC02LjkgMzIuNC0xMiA0OS4zLTE1LjQgMy41LS43IDctMS4yIDEwLjYtMS44IDIuNi0uNSA1LjMtLjcgNy45LTEuMSAzLjUtLjUgNy4xLS43IDEwLjYtMSAyLjUtLjIgNC45LS40IDcuNC0uNXptOC42IDI0LjRjLTkuMiAuMS0xOC40IDEtMjcuNiAyLjItNy4zIDEuMS0xNC41IDIuNi0yMS43IDQuMy0xMy45IDMuNS0yNy41IDguMy00MC41IDE0LjQtMTAuNSA1LTIwLjYgMTAuNy0zMC4yIDE3LjItNC4yIDIuOS04LjQgNS44LTEyLjMgOS01LjEgNC0xMCA4LjItMTQuNyAxMi42LTIuNSAyLjItNC44IDQuNy03LjIgNy4xLTI4LjIgMjguOC00OC40IDY1LjQtNTcuNSAxMDQuNy0yIDguNC0zLjUgMTctNC40IDI1LjYtMS4xIDguOS0xLjQgMTcuOS0xLjQgMjYuOCAuMSA3LjEgLjQgMTQuMyAxLjIgMjEuNCAuNiA3LjEgMS45IDE0LjIgMy4yIDIxLjIgMS4xIDQuNiAyIDkuMyAzLjMgMTMuOSA2LjMgMjMuNCAxNi41IDQ1LjcgMzAuMSA2NS44IDguNiAxMyAxOC44IDI0LjkgMzAgMzUuOCAxNi4zIDE1LjggMzUgMjkgNTUuMyAzOS4yIDcuMyAzLjUgMTQuNyA2LjkgMjIuMyA5LjYgNSAxLjggMTAuMSAzLjYgMTUuMiA1IDExLjMgMy4yIDIyLjggNS42IDM0LjQgNy4xIDIuOSAuMyA1LjggLjYgOC43IC45IDEzLjggMS4xIDI3LjcgMSA0MS41LS40IDQuNC0uNiA4LjktMSAxMy4zLTEuOCAzLjYtLjcgNy4zLTEuMiAxMC45LTIuMSA0LjEtMSA4LjMtMS45IDEyLjQtMy4xIDI2LjUtNy4zIDUxLjYtMTkuNyA3My42LTM2LjIgMTUuOC0xMS44IDMwLTI1LjggNDIuMS00MS4zIDMuMy00IDYuMi04LjMgOS4xLTEyLjYgMy40LTUuMSA2LjYtMTAuMiA5LjYtMTUuNSAyLjQtNC40IDQuNy04LjkgNy0xMy40IDUuNy0xMi4xIDEwLjMtMjQuNiAxMy44LTM3LjUgMi42LTEwIDQuNy0yMC4yIDUuOS0zMC40IDEuOC0xMy41IDEuOS0yNy4xIDEuMy00MC43LS4zLTMuOS0uNy03LjgtMS0xMS43LTIuMi0xOS4xLTYuOC0zNy45LTEzLjgtNTUuOC02LTE1LjEtMTMuNS0yOS42LTIyLjYtNDMuMS0xMi43LTE4LjgtMjguMi0zNS43LTQ2LTQ5LjgtMjUtMjAtNTQuNS0zNC41LTg1LjYtNDIuMS03LjgtMS45LTE1LjctMy4zLTIzLjYtNC40LTMuOS0uNi03LjgtLjgtMTEuOC0xLjItNy40LS42LTE0LjgtLjctMjIuMi0uNnpNMTQ3LjMgODMuNWMxMy4zLTguOSAyOC4xLTE1LjQgNDMuMy0yMC4yLTMuMiAxLjgtNi40IDMuNC05LjUgNS4zLTExLjIgNi43LTIxLjUgMTQuOS0zMC40IDI0LjUtNi44IDcuNC0xMi44IDE1LjctMTcgMjQuOS0zLjMgNi45LTUuNiAxNC4yLTYuOSAyMS43LS45IDQuOC0xLjMgOS44LTEuMiAxNC44IC4xIDEzLjcgNC40IDI3LjEgMTEuMyAzOC44IDUuOSAxMC4yIDEzLjYgMTkuMyAyMi40IDI3LjMgNC45IDQuNCAxMC4yIDguMSAxNSAxMi42IDIuMyAyLjIgNC41IDQuNCA2LjQgNi45IDIuNiAzLjMgNC45IDcgNiAxMS4xIC45IDMgLjcgNi4yIC43IDkuMyAwIDQuMSAwIDguMiAwIDEyLjMgLjEgMy41IDAgNy4xIC4xIDEwLjYgLjEgMi40IDAgNC44IC4xIDcuMSAuMiA1LjggLjEgMTEuNSAuMSAxNy4zIC4xIDIuOSAwIDUuOCAuMSA4LjcgMCAxLjYgLjEgMy4zIDAgNC45LS45IC4xLTEuOCAuMi0yLjcgLjItMTEgMC0yMS45LTIuNi0zMi02LjktNi0yLjctMTEuOC01LjktMTcuMS05LjgtNS44LTQuMi0xMS4xLTktMTUuOC0xNC4zLTYuNS03LjItMTItMTUuNC0xNi42LTIzLjktMS4xLTItMi4yLTQtMy4yLTYuMS0xLjItMi42LTIuNi01LjEtMy43LTcuOC00LTkuNy02LjYtMTkuOS04LjEtMzAuMy0uNS00LjQtMS4xLTguOS0xLjItMTMuMy0uNy0xNS43IC44LTMxLjYgNC43LTQ2LjggMi4xLTguMiA0LjgtMTYuMiA4LjMtMjMuOCA2LjMtMTQuMiAxNS4zLTI3LjIgMjYuMy0zOC4yIDYuMy02LjIgMTMuMS0xMS44IDIwLjUtMTYuN3pNMzIyLjcgNjMuNGMyLjcgLjcgNS40IDEuNyA4LjEgMi43IDYuNCAyLjMgMTIuNyA0LjggMTguNyA4IDEzLjEgNi40IDI1LjMgMTQuOCAzNS44IDI1IDEwLjIgMTAgMTguNyAyMS42IDI1LjEgMzQuMyAxLjMgMi43IDIuNiA1LjUgMy44IDguMyA2LjMgMTUuMSAxMCAzMS4zIDExLjIgNDcuNiAuNCA0LjUgLjQgOS4xIC41IDEzLjYgLjEgMTEuNi0xLjUgMjMuMy00LjMgMzQuNS0yIDcuMy00LjMgMTQuNS03LjkgMjEuMi0zLjIgNi42LTYuNyAxMy4yLTEwLjggMTkuMi02LjkgMTAuNS0xNS42IDE5LjktMjUuOCAyNy4yLTEwLjUgNy42LTIyLjYgMTMtMzUuNCAxNS40LTMuNSAuNy03LjEgMS4xLTEwLjcgMS4yLTEuOCAuMS0zLjcgLjItNS42LS4xLS4zLTIuMSAwLTQuMyAwLTYuNSAwLTMuNyAuMS03LjQgLjEtMTEuMiAuMi03IDAtMTQuMSAuMi0yMS4xIDAtMi40IDAtNC44IDAtNy4xIC4yLTUuMSAwLTEwLjEgLjEtMTUuMiAuMS0zLS4yLTYgLjUtOSAuNy0yLjUgMS44LTQuOSAzLjEtNy4xIDQuNS03LjMgMTEuMS0xMyAxNy43LTE4LjMgNS40LTQuMiAxMC41LTguOCAxNS0xMy44IDcuNy04LjQgMTQuMi0xNy45IDE4LjgtMjguMyAyLjUtNS45IDQuNS0xMi4xIDUuNS0xOC41IC45LTQuNCAxLjEtOC44IDEtMTMuMyAwLTcuOC0xLjQtMTUuNi0zLjYtMjMuMi0xLjgtNS43LTQuMy0xMS4yLTcuMS0xNi40LTMuOS02LjktOC42LTEzLjMtMTQtMTkuMi05LjktMTAuOC0yMS44LTE5LjktMzQuNi0yNy4xLTEuOC0xLTMuOC0xLjgtNS42LTN6TTIyMS45IDEyMS45YzEtMS4yIDItMi4zIDMuMS0zLjQtLjYgLjktMS4zIDEuOC0yIDIuNy0zLjEgMy45LTUuNSA4LjMtNyAxMy4xLS45IDMuMy0xLjcgNi42LTEuNyAxMC0uMSAyLjUtLjEgNS4xIC4zIDcuNiAxLjEgNy42IDQuMyAxNC45IDguOCAyMS4xIDIgMi43IDQuMiA1LjMgNi45IDcuMyAxLjYgMS4zIDMuNSAyLjEgNS4zIDMgMy4xIDEuNyA2LjMgMy4yIDkuMSA1LjUgMi43IDIuMSA0LjYgNS4zIDQuNCA4LjggMCA3My43IDAgMTQ3LjMgMCAyMjEgMCAxLjQtLjEgMi43IDAgNCAuMSAxLjUgLjggMi44IDEuNSA0LjEgLjkgMS43IDEuOCAzLjMgMy4yIDQuNiAuOSAuOCAyIDEuNCAzLjIgMS4yIDEuNS0uMiAyLjctMS40IDMuNC0yLjYgMS0xLjUgMS43LTMuMiAyLjMtNC45IC44LTIuMSAuNC00LjQgLjUtNi42IC4xLTQgMC04LjEgLjEtMTIuMSAwLTUuOSAwLTExLjggLjEtMTcuNyAuMS0zLjYgMC03LjIgLjEtMTAuOSAuMi00IDAtOC4xIC4xLTEyLjEgMC02IDAtMTIgLjEtMTggLjEtMy42IDAtNy4yIC4xLTEwLjkgLjEtMy45IDAtNy45IC4xLTExLjggMC02IDAtMTIgLjEtMTggLjItMy45IDAtNy45IC4yLTExLjggLjMgMS40IC4xIDIuOSAuMiA0LjQgLjIgMy42IC40IDcuMiAuOCAxMC44IC4zIDMuNCAuNCA2LjkgLjkgMTAuMyAuNCAzLjEgLjUgNi4yIDEgOS4zIC42IDQuMSAuOSA4LjIgMS41IDEyLjMgMS41IDkgMi44IDE4LjEgNS4xIDI3IDEuMSA0LjggMi40IDkuNiA0IDE0LjMgMi41IDcuOSA1LjcgMTUuNyAxMC4zIDIyLjYgMS43IDIuNiAzLjkgNSA2LjEgNy4yIC4zIC4yIC42IC41IC45IC43IC42IC4zIDEuMy0uMSAxLjctLjYgLjctLjkgMS4yLTEuOSAxLjctMi45IDQuMS03LjggOC4yLTE1LjYgMTIuMy0yMy4zIC43LTEuMyAxLjQtMi42IDIuNi0zLjYgMS44LTEuNiAzLjgtMi43IDYtMy42IDIuOS0xLjIgNS45LTIuMiA5LTIuNCA2LjYtLjYgMTMuMSAuNyAxOS42IDEuOCAzLjcgLjYgNy40IDEuMiAxMS4xIDEuNCAzLjcgLjEgNy41IC4xIDExLjItLjMgOC42LS45IDE3LTMgMjQuOS02LjIgNS4zLTIuMiAxMC41LTQuOCAxNS4zLTcuOSAxMS41LTcuMiAyMS41LTE2LjYgMzAtMjcgMS4yLTEuNCAyLjItMi45IDMuNS00LjMtMS4yIDMuMi0yLjcgNi40LTQuMiA5LjUtMS4zIDIuOS0yLjggNS42LTQuMyA4LjQtNS4yIDkuNi0xMSAxOC45LTE3LjggMjcuNS00IDUuMi04LjUgMTAuMS0xMy4zIDE0LjYtNi42IDYuMS0xNC4xIDExLjQtMjIuNCAxNC44LTguMiAzLjQtMTcuMyA0LjYtMjYuMSAzLjMtMy42LS42LTctMS43LTEwLjQtMi45LTIuOC0xLTUuNC0yLjQtOC0zLjctMy40LTEuNy02LjYtMy44LTkuNy02LjEgMi43IDMuMSA1LjcgNS45IDguNyA4LjYgNC4zIDMuOCA4LjcgNy4zIDEzLjYgMTAuMiA0IDIuNSA4LjMgNC40IDEyLjggNS41IDEuNSAuNCAzIC41IDQuNSAuNi0xLjMgMS4xLTIuNiAyLTQgMy05LjYgNi41LTIwIDExLjktMzAuNyAxNi40LTIwLjkgOC43LTQzLjIgMTQtNjUuNyAxNS4zLTQuNyAuMi05LjMgLjQtMTQgLjQtNS0uMS0xMC0uMS0xNC45LS43LTExLjItLjgtMjIuMy0yLjctMzMuMi01LjQtMTAuNC0yLjctMjAuNi02LjEtMzAuMy0xMC42LTguNy0zLjktMTcuMS04LjQtMjUtMTMuOC0xLjgtMS4zLTMuNy0yLjUtNS40LTQuMSA2LjYtMS4yIDEzLTMuNCAxOS02LjUgNS43LTIuOSAxMS02LjcgMTUuNi0xMS4xIDIuMi0yLjIgNC4zLTQuNiA2LjItNy4xLTMuNCAyLjEtNi45IDQuMi0xMC42IDUuOC00LjQgMi4yLTkuMSAzLjgtMTMuOCA1LTUuNyAxLjUtMTEuNyAxLjctMTcuNiAxLjEtOC4xLTEtMTUuOS00LjMtMjIuNS05LTQuMy0yLjktOC4yLTYuNC0xMi0xMC4xLTkuOS0xMC4yLTE4LjItMjEuOC0yNS43LTMzLjktMy45LTYuMy03LjUtMTIuNy0xMS4xLTE5LjItMS0yLTIuMS00LjEtMy4yLTYuMSAyLjggMi45IDUuNiA2IDguNCA4LjkgMTkuMiAxOS4yIDM3LjYgMzIuMyA1My43IDM1LjUgMy4xIC43IDYuMyAuNSA5LjUgLjggMi44IC4zIDUuNiAuMiA4LjMgLjMgNSAuMSAxMC4xIDAgMTUuMi0uMiAzLjYtLjIgNy4zLS43IDEwLjktMS4xIDIuMS0uMiA0LjEtLjcgNi4xLTEuMiAzLjktMSA4LjEtMSAxMS44IC42IDQuOCAxLjggOC40IDUuNiAxMS40IDkuNyAyLjIgMyA0LjEgNi4yIDUuNyA5LjYgMS4yIDIuNCAyLjUgNC44IDMuNiA3LjMgMSAyLjIgMi4yIDQuNCAzLjQgNi41IC43IDEgMS40IDIuMiAyLjYgMi42IDEuMS0uOCAxLjctMS45IDIuMy0zIDIuMS00LjIgMy40LTguNiA0LjktMTMgMi02LjYgMy44LTEzLjMgNS4yLTIwIDIuMi05LjMgMy4yLTE4LjcgNC41LTI4LjEgLjYtNCAuOC04IDEuMy0xMiAuOS0xMC42IDEuOS0yMS4zIDIuMi0zMS45IC4xLTEuOSAuMi0zLjcgLjMtNS42IDAtNC4zIC4yLTguNyAuMi0xMyAwLTIuNCAwLTQuOCAwLTcuMSAwLTUuMS0uMi0xMC4xLS4yLTE1LjItLjItNi42LS43LTEzLjItMS4zLTE5LjgtLjctNS45LTEuNS0xMS44LTMuMS0xNy41LTItNy43LTUuNi0xNS05LjgtMjEuOC0zLjItNS4xLTYuOC05LjktMTEuMS0xNC0zLjktMy45LTguNi03LjEtMTMuOS04LjQtMS41LS40LTMuMS0uNC00LjYtLjYgLjEtMyAuNy01LjkgMS4zLTguOCAxLjYtNy43IDMuOC0xNS4zIDYuOC0yMi42IDEuNS00IDMuNC03LjkgNS40LTExLjcgMy40LTYuNiA3LjYtMTIuOCAxMi41LTE4LjV6bTMxLjMgMS43Yy40LS4xIC43LS4xIDEuMS0uMiAuMiAxLjggLjEgMy42IC4xIDUuNGwwIDM4LjFjMCAxLjcgLjEgMy41LS4yIDUuMi0uNCAwLS43IDAtMS4xIDAtLjktMy44LTEuNy03LjYtMi42LTExLjMtLjQtMS41LS42LTMuMS0xLjEtNC42LTEuNy0uMi0zLjQtLjItNS4yLS4yLTUuMSAwLTEwLjEgMC0xNS4yIDAtMS43IDAtMy4zIC4xLTUgMCAwLS40LS4zLS45IC4yLTEuMiAxLjMtLjcgMi43LS45IDQuMS0xLjQgMy40LTEuMSA2LjktMi4yIDEwLjMtMy4zIDEuNC0uNSAyLjktLjcgNC4yLTEuNSAwLS42IDAtMS4xIDAtMS43LTEuMi0uNi0yLjUtLjktMy44LTEuMy0zLjEtMS02LjMtMi05LjQtMy0xLjgtLjYtMy43LTEtNS40LTEuOCAwLS40LS4xLS43LS4xLTEuMSA1LjEtLjIgMTAuMiAuMSAxNS4zLS4xIDMuNC0uMSA2LjcgLjEgMTAuMS0uMSAuMS0uNCAuMy0uOCAuNC0xLjIgMS4xLTQuOSAyLjMtOS44IDMuNC0xNC43em02LS4yYy40IDAgLjcgLjEgMS4xIC4yIDEgMy44IDEuNyA3LjggMi43IDExLjYgLjQgMS40IC42IDIuOSAxIDQuMyAyLjUgLjIgNS4xIDAgNy42IDAgNS4yIC4xIDEwLjMgLjEgMTUuNSAuMSAuOCAwIDEuNSAwIDIuMyAuMSAwIC40LS4xIC43LS4xIDEuMS0xLjggLjgtMy44IDEuMi01LjcgMS45LTMuNyAxLjItNy41IDIuNC0xMS4yIDMuNi0uNiAuMi0xLjEgLjQtMS43IC42LS4yIC42LS4yIDEuMS0uMSAxLjcgLjkgLjUgMS44IC44IDIuOCAxLjEgNC45IDEuNSA5LjcgMy4xIDE0LjYgNC42IC40IC4xIC44IC4zIDEuMSAuNSAuNCAuMyAuMiAuOCAuMiAxLjItMS43IC4xLTMuMyAwLTUgMC01LjIgMC0xMC4zIDAtMTUuNSAwLTEuNiAwLTMuMiAwLTQuOCAuMi0uNSAxLjctLjcgMy40LTEuMiA1LjEtLjkgMy42LTEuNSA3LjItMi41IDEwLjgtLjQgMC0uNyAwLTEuMSAuMS0uMy0xLjctLjItMy41LS4yLTUuMmwwLTM4LjFjMC0xLjgtLjEtMy42IC4xLTUuNHptLTE4NiA0NWMxLjEtMi4yIDIuMS00LjQgMy40LTYuNS0xLjggNy42LTIuOSAxNS4zLTMuNiAyMy0uOCA3LjctLjggMTUuNS0uNSAyMy4yIDEuMSAxOS45IDUuNSAzOS44IDE0LjIgNTcuOSAzIDYgNi40IDExLjggMTAuNSAxNy4xIDYuMSA3LjUgMTIuNSAxNC44IDE5LjggMjEuMSA0LjggNC4xIDEwIDcuOCAxNS41IDEwLjggMy4zIDEuNyA2LjUgMy40IDkuOSA0LjcgNSAyIDEwLjIgMy42IDE1LjQgNC45IDMuOCAxIDcuOCAxLjQgMTEuNSAyLjcgNSAxLjYgOS41IDQuNiAxMyA4LjQgNC45IDUuMiA4LjEgMTEuOSAxMC4yIDE4LjcgMSAyLjkgMS42IDUuOSAyLjIgOC45IC4yIC44IC4yIDEuNSAuMiAyLjMtNi41IDIuOC0xMy4zIDUuMS0yMC4zIDYuMi00LjEgLjgtOC4zIDEtMTIuNSAxLjEtMTAuMiAuMi0yMC41LTEuOC0zMC4xLTUuMS0zLjctMS40LTcuNS0yLjktMTEtNC43LTguMS0zLjgtMTUuNi04LjctMjIuNS0xNC41LTIuOS0yLjYtNS44LTUuMS04LjQtOC05LjItOS44LTE2LjMtMjEuNC0yMS44LTMzLjctMi40LTUuNS00LjYtMTEuMi02LjQtMTctMS4yLTMuOS0yLjQtNy45LTMuMy0xMS45LS43LTIuOS0xLjItNS45LTEuOS04LjktLjUtMi4xLS43LTQuMy0xLTYuNS0uOC01LjQtMS4zLTEwLjktMS4zLTE2LjQgLjEtNi4yIC4yLTEyLjQgMS4xLTE4LjUgLjQtMi45IC43LTUuNyAxLjItOC42IDEtNS43IDIuMS0xMS40IDMuNy0xNi45IDMuMS0xMS42IDcuNS0yMyAxMi43LTMzLjh6bTM2My43LTYuNGMxLjEgMS43IDEuOSAzLjUgMi44IDUuMyAyLjEgNC41IDQuMiA4LjkgNiAxMy41IDcuNiAxOC44IDEyLjMgMzguOCAxMyA1OSAwIDEuOCAuMSAzLjUgLjEgNS4zIC4xIDkuNi0xLjMgMTkuMS0zLjIgMjguNS0uNyAzLjYtMS41IDcuMi0yLjYgMTAuNy00IDE0LjctMTAgMjktMTguNCA0MS44LTguMiAxMi42LTE5IDIzLjUtMzEuOCAzMS40LTUuNyAzLjYtMTEuOCA2LjYtMTggOS4yLTUuOCAyLjItMTEuNyA0LTE3LjggNS4xLTYuNCAxLTEyLjkgMS41LTE5LjQgMS4yLTcuOS0uNS0xNS44LTIuMS0yMy4yLTQuOC0xLjktLjgtMy45LTEuNS01LjgtMi4zLS4yLTEuNSAuMi0zIC41LTQuNSAxLjItNS43IDMtMTEuNCA1LjctMTYuNiAyLjQtNC41IDUuNS04LjcgOS41LTExLjkgMi40LTIuMSA1LjItMy42IDguMi00LjggMy42LTEuNSA3LjUtMiAxMS4yLTIuOCA3LjItMS43IDE0LjQtMy45IDIxLjItNyAxMC4zLTQuNyAxOS43LTExLjQgMjcuNi0xOS41IDEuNi0xLjYgMy4yLTMuMiA0LjctNC45IDMuNC0zLjggNi43LTcuNiA5LjgtMTEuNSA3LjUtMTAuMSAxMi44LTIxLjYgMTYuNy0zMy41IDEuNi01LjMgMy4yLTEwLjYgNC4yLTE2LjEgLjYtMi45IDEtNS44IDEuNS04LjcgLjktNi4xIDEuNi0xMi4yIDEuNy0xOC40IC4xLTYuNiAuMS0xMy4zLS41LTE5LjktLjctOC0xLjktMTYtMy43LTIzLjh6Il19LCQzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdXNlIixpY29uOls2NDAsNTEyLFtdLCJmN2Q2IiwiTTYwNC41IDIxMGExMC40IDEwLjQgMCAxIDEgLTExLjQtMTcuNCAxMC40IDEwLjQgMCAxIDEgMTEuNCAxNy40ek02MjEgMTg3LjJhMzguNSAzOC41IDAgMSAxIC03NSAxNy42IDM4LjUgMzguNSAwIDEgMSA3NS0xNy42ek00MzMuNyAzMzYuN2MzLjIgNC42IDUuOCA5IDcuMyAxMy40IDEgMy4xIDIuNCA3LjMgNS41IDguOSAuMiAuMSAuMyAuMiAuNSAuMiA1LjcgMi4xIDIwLjMgMS43IDIwLjMgMS43bDI2LjggMGMyLjMgMCAyMi40IDAgMjEuOS0yLjMtMi40LTEwLjgtMTQuOS0xMi43LTI0LjQtMTguMy04LjctNS4yLTE3LTExLjEtMjAuOC0yMS4zLTItNS4yLS44LTE3LjQgMi42LTIxLjggMi41LTMuMiA2LjEtNS4zIDEwLTYuMiA0LjMtLjkgOC44LS4xIDEzLjEgLjMgNS4zIC41IDEwLjYgMS41IDE1LjkgMi4yIDEwLjMgMS4zIDIwLjYgMS45IDMxIDEuNiAxNy4xLS41IDM0LjItMy4yIDUwLjQtOC43IDExLjMtMy44IDIyLjQtOC45IDMyLTE2LjEgMTAuOS04LjEgOC4xLTcuNC0zLTYuMi0xMy4zIDEuNC0yNi42IDEuNi0zOS45IC44LTEyLjQtLjctMjQuNy0yLjItMzUuOS03LjktOC44LTQuNi0xNi40LTkuMS0yMy40LTE2LjItMS0xLjEtMS43LTQuMiAuMi02LjIgMS45LTEuOSA1LjgtLjggNyAuMiAxMi4yIDEwLjIgMzAuNSAxOC42IDQ5LjMgMTkuNSAxMC4yIC41IDIwLjEgLjcgMzAuNCAuMyA1LjEtLjIgMTIuOC0uMiAxNy45LS4zIDIuNiAwIDkuOCAuNyAxMS4yLTIuMSAuNC0uOCAuNC0xLjggLjMtMi43LTEuNS00MC45LTQuNS04Ni45LTQ3LjMtMTA2LjUtMzEuOS0xNC42LTc5LjctMzcuMi05OS45LTQ2LjYtNC43LTIuMi0xMC4yIDEuMy0xMC4yIDYuNSAwIDEzLjYgLjcgMzMuMyAuNyA1MS4xLTkuNy05LjktMjYtMTYuMS0zOC40LTIxLjgtMTQuMS02LjUtMjguNy0xMi00My41LTE2LjYtMjkuOC05LjItNjAuNy0xNC45LTkxLjctMTgtMzUuMi0zLjUtNzEtMS44LTEwNS43IDUuMy01Ni45IDEyLjItMTEzLjEgMzkuNy0xNTUuNyA3OS44LTI2LjEgMjQuNi00Ni42IDU5LjctNDggOTUuMi0yIDUwLjMgMTIuMSA3Ny4zIDM4IDEwNS4yIDQxLjMgNDQuNCAxMzAuMiA1MC42IDE2Ni4yLTIgMTYuMi0yMy43IDE5LjctNTUuOCA4LTgyLTExLjgtMjYuMi0zOC44LTQ1LjEtNjcuNC00Ni0yMi4yLS43LTQ1LjkgMTAuNi01NC41IDMxLjEtNi41IDE1LjctMi44IDM1LjEgOSA0Ny4zIDQuNiA0LjggMTAuOSA4LjcgMTcuNyA3LjEgNC0uOSA3LjQtMy45IDgtOCAuOS02LTQuNC05LjktNy42LTE0LjUtNS44LTguMy00LjctMjAuOSAyLjctMjcuOSA2LjItNiAxNS4zLTcuOCAyMy45LTcuNyA4IDAgMTYuMiAxLjQgMjMuMSA1LjUgOS43IDUuNyAxNi4yIDE2LjIgMTguNCAyNy4yIDYuNyAzMy0yMC4yIDU5LjktNTYuNiA2Mi0xOC42IDEuMS0zNy42LTMuOC01Mi4xLTE1LjUtMzYuOS0yOS44LTQ1LjktOTAuMy0zLjgtMTIyLjcgNDAtMzAuNyA5MC40LTIyLjggMTIwLjItNi44IDIzLjggMTIuOCA0MS41IDMzLjYgNTUgNTYuNyA2LjcgMTEuNiAxMi41IDIzLjcgMTcuOCAzNi4xIDUuMSAxMS44IDkuOSAyMy44IDIwLjIgMzIuNSA2LjggNS44IDE1LjIgNS42IDI0LjEgNS42bDUwLjggMGM2LjkgMCA1LjItNC42IDIuMi03LjctNi43LTYuOS0xNi40LTguNC0yNS40LTEwLjktMjAuNS01LjYtMTguNC0zMi44LTEyLjctMzIuOCAxOC4zIDAgMTguOSAuNiAzNC45IC4zIDIzLjItLjMgMzAuMi0xLjcgNDguMyA1IDkuNyAzLjYgMTkgMTMuMSAyNS4xIDIxLjd6Il19LEEzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHAtc3RvcmUtaW9zIixpY29uOls0NDgsNTEyLFtdLCJmMzcwIiwiTTQwMCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjcgMzg0LjVjLTUuNSA5LjYtMTcuOCAxMi44LTI3LjMgNy4zLTkuNi01LjUtMTIuOC0xNy44LTcuMy0yNy4zbDE0LjMtMjQuN2MxNi4xLTQuOSAyOS4zLTEuMSAzOS42IDExLjRMMTI3IDM4NC41em0xMzguOS01My45TDg0IDMzMC42Yy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1MSAwIDY1LjQtMTEzLjItMjAuNS0zNS40Yy01LjUtOS42LTIuMi0yMS44IDcuMy0yNy4zIDkuNi01LjUgMjEuOC0yLjIgMjcuMyA3LjNsOC45IDE1LjQgOC45LTE1LjRjNS41LTkuNiAxNy44LTEyLjggMjcuMy03LjMgOS42IDUuNSAxMi44IDE3LjggNy4zIDI3LjNsLTg1LjggMTQ4LjYgNjIuMSAwYzIwLjIgMCAzMS41IDIzLjcgMjIuNyA0MHptOTguMSAwbC0yOSAwIDE5LjYgMzMuOWM1LjUgOS42IDIuMiAyMS44LTcuMyAyNy4zLTkuNiA1LjUtMjEuOCAyLjItMjcuMy03LjMtMzIuOS01Ni45LTU3LjUtOTkuNy03NC0xMjguMS0xNi43LTI5LTQuOC01OCA3LjEtNjcuOCAxMy4xIDIyLjcgMzIuNyA1Ni43IDU4LjkgMTAybDUyIDBjMTEgMCAyMCA5IDIwIDIwIDAgMTEuMS05IDIwLTIwIDIweiJdfSxFM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWx0cmFseXRpY3MteW9sbyIsaWNvbjpbNTEyLDUxMixbXSwiZTg2ZiIsIk0zODMuNSAxMC44YzYxLjgtLjIgMTEyLjMgNTAuNiAxMTIuMyAxMTIuOS0uMiAyLjcgMCAwLS4xIDMuM2wuMyAuM2MtMS41IDg5LjktNTMgMTY4LjQtMTI3LjQgMjA4LjVsMCA1Mi44YzAgNjIuNi01MS4xIDExMy41LTExMy43IDExMi45LTYyLS42LTExMS40LTUyLjItMTExLjQtMTE0LjNsMC01MS4yYy00MC43LTIxLjktNzQuNS01NS4yLTk3LTk1LjYgMjMuMiAxNi41IDUxLjcgMjYgODIgMjUuOSA3OC42LS4yIDE0Mi4yLTY0IDE0Mi4zLTE0Mi41IC4xLTYyLjMgNTAuNS0xMTIuNyAxMTIuOS0xMTIuOXptLTI1NSAyMjUuOGExMTIuOSAxMTIuOSAwIDEgMSAwLTIyNS44IDExMi45IDExMi45IDAgMSAxIDAgMjI1Ljh6Il19LFZFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZHJpYmJibGUiLGljb246WzQ0OCw1MTIsWyJkcmliYmJsZS1zcXVhcmUiXSwiZjM5NyIsIk0xNjUuOSAxMzIuNWMtMzguMyAxOC02Ni44IDUzLjMtNzUuNyA5NS43IDYuMSAuMSA2Mi40IC4zIDEyNi40LTE2LjctMjIuNy00MC4yLTQ3LjEtNzQuMS01MC43LTc5em0yNi4xLTkuMWMzLjggNS4xIDI4LjYgMzguOSA1MSA4MCA0OC42LTE4LjMgNjkuMS00NS45IDcxLjYtNDkuNC0zMy42LTI5LjgtNzkuMy00MS4xLTEyMi42LTMwLjZ6TTI3Ny40IDM4MmMtMi0xMi0xMC01My44LTI5LjItMTAzLjYtNTUuMSAxOC44LTkzLjggNTYuNC0xMDguMSA4NS42IDQwLjUgMzEuNiA5My4zIDM2LjcgMTM3LjMgMTh6TTIyNy44IDIzMi42QzE1OS42IDI1MyA5My40IDI1Mi4yIDg3LjQgMjUybDAgNC4yYzAgMzUuMSAxMy4zIDY3LjEgMzUuMSA5MS40IDIyLjItMzcuOSA2Ny4xLTc3LjkgMTE2LjUtOTEuOC0zLjQtNy44LTcuMi0xNS41LTExLjEtMjMuMmwtLjEgMHptNzIuNSAxMzYuOWMzMC43LTIwLjcgNTIuNS01My42IDU4LjYtOTEuNi00LjYtMS41LTQyLjMtMTIuNy04NS4xLTUuOCAxNy45IDQ5LjEgMjUuMSA4OS4xIDI2LjUgOTcuNHptLTM0LjgtMTE5YzQ1LjUtNS43IDkwLjcgMy40IDk1LjIgNC40LS4zLTMyLjMtMTEuOC02MS45LTMwLjktODUuMS0yLjkgMy45LTI1LjggMzMuMi03Ni4zIDUzLjkgNC44IDkuOCA4LjMgMTcuOCAxMiAyNi44ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMjI0IDk2YTE2MCAxNjAgMCAxIDEgMCAzMjAgMTYwIDE2MCAwIDEgMSAwLTMyMHoiXX0sSTNyPVZFZSxQM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWlraXQiLGljb246WzQ0OCw1MTIsW10sImY0MDMiLCJNNDQzLjkgMTI4bDAgMjU2LTIyNS45IDEyOC0yMTgtMTI4IDAtMjE0LjMgODcuNiA0NS4xIDAgMTE3IDEzMy41IDc1LjUgMTM1LjgtNzUuNSAwLTE1MS0xMDEuMS01Ny42IDg3LjYtNTMuMSAxMDAuNSA1Ny45ek0zMDguNiA0OS4xbC04NC44LTQ5LjEtODguNiA1NC44IDg2IDQ3LjMgODcuNC01M3oiXX0sTjNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cGVycG93ZXJzIixpY29uOls0NDgsNTEyLFtdLCJmMmRkIiwiTTQ0OCAzMmMtODMuMyAxMS0xNjYuOCAyMi0yNTAgMzMtOTIgMTIuNS0xNjMuMyA4Ni43LTE2OSAxODAtMy4zIDU1LjUgMTggMTA5LjUgNTcuOCAxNDguMkwwIDQ4MGM4My4zLTExIDE2Ni41LTIyIDI0OS44LTMzIDkxLjgtMTIuNSAxNjMuMy04Ni44IDE2OC43LTE3OS44IDMuNS01NS41LTE4LTEwOS41LTU3LjctMTQ4LjJMNDQ4IDMyek0zNjguMyAyNjQuM2MtNC4yIDc5LjUtNzQgMTM5LjItMTUyLjggMTM0LjUtNzkuNS00LjctMTQwLjctNzEtMTM2LjMtMTUxIDQuNS03OS4yIDc0LjMtMTM5LjMgMTUzLTEzNC41IDc5LjMgNC43IDE0MC41IDcxIDEzNi4xIDE1MXoiXX0sTzNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlvdXR1YmUiLGljb246WzU3Niw1MTIsWzYxODAyXSwiZjE2NyIsIk01NDkuNyAxMjQuMUM1NDMuNSAxMDAuNCA1MjQuOSA4MS44IDUwMS40IDc1LjUgNDU4LjkgNjQgMjg4LjEgNjQgMjg4LjEgNjRTMTE3LjMgNjQgNzQuNyA3NS41QzUxLjIgODEuOCAzMi43IDEwMC40IDI2LjQgMTI0LjEgMTUgMTY3IDE1IDI1Ni40IDE1IDI1Ni40czAgODkuNCAxMS40IDEzMi4zYzYuMyAyMy42IDI0LjggNDEuNSA0OC4zIDQ3LjggNDIuNiAxMS41IDIxMy40IDExLjUgMjEzLjQgMTEuNXMxNzAuOCAwIDIxMy40LTExLjVjMjMuNS02LjMgNDItMjQuMiA0OC4zLTQ3LjggMTEuNC00Mi45IDExLjQtMTMyLjMgMTEuNC0xMzIuM3MwLTg5LjQtMTEuNC0xMzIuM3pNMjMyLjIgMzM3LjZsMC0xNjIuNCAxNDIuNyA4MS4yLTE0Mi43IDgxLjJ6Il19LFIzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbWJlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMyIsIk02MzkuOSAyNTQuNmMtMS4xLTEwLjctMTAuNy02LjgtMTAuNy02LjhzLTE1LjYgMTIuMS0yOS4zIDEwLjdjLTEzLjctMS4zLTkuNC0zMi05LjQtMzJzMy0yOC4xLTUuMS0zMC40Yy04LjEtMi40LTE4IDcuMy0xOCA3LjNzLTEyLjQgMTMuNy0xOC4zIDMxLjJsLTEuNiAuNXMxLjktMzAuNi0uMy0zNy42Yy0xLjYtMy41LTE2LjQtMy4yLTE4LjggM3MtMTQuMiA0OS4yLTE1IDY3LjJjMCAwLTIzLjEgMTkuNi00My4zIDIyLjhzLTI1LTkuNC0yNS05LjQgNTQuOC0xNS4zIDUyLjktNTkuMS00NC4yLTI3LjYtNDktMjRjLTQuNiAzLjUtMjkuNCAxOC40LTM2LjYgNTkuNy0uMiAxLjQtLjcgNy41LS43IDcuNXMtMjEuMiAxNC4yLTMzIDE4YzAgMCAzMy01NS42LTcuMy04MC45LTExLjQtNi44LTIxLjMtLjUtMjcuMiA1LjMgMTMuNi0xNy4zIDQ2LjQtNjQuMiAzNi45LTEwNS4yLTUuOC0yNC40LTE4LTI3LjEtMjkuMi0yMy4xLTE3IDYuNy0yMy41IDE2LjctMjMuNSAxNi43cy0yMiAzMi0yNy4xIDc5LjUtMTIuNiAxMDUuMS0xMi42IDEwNS4xLTEwLjUgMTAuMi0yMC4yIDEwLjctNS40LTI4LjctNS40LTI4LjcgNy41LTQ0LjYgNy01Mi4xLTEuMS0xMS42LTkuOS0xNC4yYy04LjktMi43LTE4LjUgOC42LTE4LjUgOC42cy0yNS41IDM4LjctMjcuNyA0NC42bC0xLjMgMi40LTEuMy0xLjZzMTgtNTIuNyAuOC01My41LTI4LjUgMTguOC0yOC41IDE4LjgtMTkuNiAzMi44LTIwLjQgMzYuNWwtMS4zLTEuNnM4LjEtMzguMiA2LjQtNDcuNmMtMS42LTkuNC0xMC41LTcuNS0xMC41LTcuNXMtMTEuMy0xLjMtMTQuMiA1LjktMTMuNyA1NS4zLTE1IDcwLjdjMCAwLTI4LjIgMjAuMi00Ni44IDIwLjQtMTguNSAuMy0xNi43LTExLjgtMTYuNy0xMS44czY4LTIzLjMgNDkuNC02OS4yYy04LjMtMTEuOC0xOC0xNS41LTMxLjctMTUuMy0xMy43IC4zLTMwLjMgOC42LTQxLjMgMzMuMy01LjMgMTEuOC02LjggMjMtNy44IDMxLjUgMCAwLTEyLjMgMi40LTE4LjgtMi45cy0xMCAwLTEwIDAtMTEuMiAxNC0uMSAxOC4zIDI4LjEgNi4xIDI4LjEgNi4xYzEuNiA3LjUgNi4yIDE5LjUgMTkuNiAyOS43IDIwLjIgMTUuMyA1OC44LTEuMyA1OC44LTEuM2wxNS45LTguOHMuNSAxNC42IDEyLjEgMTYuNyAxNi40IDEgMzYuNS00Ny45YzExLjgtMjUgMTIuNi0yMy42IDEyLjYtMjMuNmwxLjMtLjNzLTkuMSA0Ni44LTUuNiA1OS43QzE4Ny43IDMxOS40IDIwMyAzMTggMjAzIDMxOHM4LjMgMi40IDE1LTIxLjIgMTkuNi00OS45IDE5LjYtNDkuOWwxLjYgMHMtNS42IDQ4LjEgMyA2My43IDMwLjkgNS4zIDMwLjkgNS4zIDE1LjYtNy44IDE4LTEwLjJjMCAwIDE4LjUgMTUuOCA0NC42IDEyLjkgNTguMy0xMS41IDc5LjEtMjUuOSA3OS4xLTI1LjlzMTAgMjQuNCA0MS4xIDI2LjdjMzUuNSAyLjcgNTQuOC0xOC42IDU0LjgtMTguNnMtLjMgMTMuNSAxMi4xIDE4LjYgMjAuNy0yMi44IDIwLjctMjIuOGwyMC43LTU3LjIgMS45IDBzMS4xIDM3LjMgMjEuNSA0My4yIDQ3LTEzLjcgNDctMTMuNyA2LjQtMy41IDUuMy0xNC4zem0tNTc4IDUuM2MuOC0zMiAyMS44LTQ1LjkgMjktMzkgNy4zIDcgNC42IDIyLTkuMSAzMS40LTEzLjcgOS41LTE5LjkgNy42LTE5LjkgNy42ek0zMzQuNyAxMzYuMXMxOS4xLTQ5LjcgMjMuNi0yNS41LTQwIDk2LjItNDAgOTYuMmMuNS0xNi4yIDE2LjQtNzAuNyAxNi40LTcwLjd6bTIyLjggMTM4LjRjLTEyLjYgMzMtNDMuMyAxOS42LTQzLjMgMTkuNnMtMy41LTExLjggNi40LTQ0LjkgMzMuMy0yMC4yIDMzLjMtMjAuMiAxNi4yIDEyLjQgMy42IDQ1LjV6bTg0LjYtMTQuNnMtMy0xMC41IDguMS0zMC42YzExLTIwLjIgMTkuNi05LjEgMTkuNi05LjFzOS40IDEwLjItMS4zIDI1LjUtMjYuNCAxNC4yLTI2LjQgMTQuMnoiXX0sRjNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvb3RzdHJhcCIsaWNvbjpbNTc2LDUxMixbXSwiZjgzNiIsIk0zMzMuNSAyMDEuNGMwLTIyLjEtMTUuNi0zNC4zLTQzLTM0LjNsLTUwLjQgMCAwIDcxLjIgNDIuNSAwYzMyLjgtLjEgNTAuOS0xMy4zIDUwLjktMzYuOXpNNTE3IDE4OC42Yy05LjUtMzAuOS0xMC45LTY4LjgtOS44LTk4LjEgMS4xLTMwLjUtMjIuNy01OC41LTU0LjctNTguNUwxMjMuNyAzMmMtMzIuMSAwLTU1LjggMjguMS01NC43IDU4LjUgMSAyOS4zLS4zIDY3LjItOS44IDk4LjEtOS42IDMxLTI1LjcgNTAuNi01Mi4yIDUzLjFsMCAyOC41YzI2LjQgMi41IDQyLjYgMjIuMSA1Mi4yIDUzLjEgOS41IDMwLjkgMTAuOSA2OC44IDkuOCA5OC4xLTEuMSAzMC41IDIyLjcgNTguNSA1NC43IDU4LjVsMzI4LjcgMGMzMi4xIDAgNTUuOC0yOC4xIDU0LjctNTguNS0xLTI5LjMgLjMtNjcuMiA5LjgtOTguMSA5LjYtMzEgMjUuNy01MC42IDUyLjEtNTMuMWwwLTI4LjVjLTI2LjMtMi41LTQyLjUtMjIuMS01Mi01My4xek0zMDAuMiAzNzUuMWwtOTcuOSAwIDAtMjM4LjMgOTcuNCAwYzQzLjMgMCA3MS43IDIzLjQgNzEuNyA1OS40IDAgMjUuMy0xOS4xIDQ3LjktNDMuNSA1MS44bDAgMS4zYzMzLjIgMy42IDU1LjUgMjYuNiA1NS41IDU4LjMgMCA0Mi4xLTMxLjMgNjcuNS04My4yIDY3LjV6bS0xMC0xMDguN2wtNTAuMSAwIDAgNzguNCA1Mi4zIDBjMzQuMiAwIDUyLjMtMTMuNyA1Mi4zLTM5LjUgMC0yNS43LTE4LjYtMzguOS01NC41LTM4Ljl6Il19LEIzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMiLGljb246WzQ0OCw1MTIsW10sImYzYjQiLCJNMjIzLjYgODAuM2ExNzEuMyAxNzEuMyAwIDEgMCAuMiAzNDIuNSAxNzEuMyAxNzEuMyAwIDEgMCAtLjItMzQyLjV6bTc5LjQgMjQwYy0zLjIgMTMuNi0xMy41IDIxLjItMjcuMyAyMy44LTEyLjEgMi4yLTIyLjIgMi44LTMxLjktNS0xMS44LTEwLTEyLTI2LjQtMS40LTM2LjggOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyAzLjItMy42IDIuMi0yIDIuMi04MC44IDAtNS42LTIuNy03LjEtOC40LTYuMS00IC43LTkxLjkgMTcuMS05MS45IDE3LjEtNSAxLjEtNi43IDIuNi02LjcgOC4zIDAgMTE2LjEgLjUgMTEwLjgtMS4yIDExOC41LTIuMSA5LTcuNiAxNS44LTE0LjkgMTkuNi04LjMgNC42LTIzLjQgNi42LTMxLjQgNS4yLTIxLjQtNC0yOC45LTI4LjctMTQuNC00Mi45IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgNS01LjcgLjktMTI3IDIuNi0xMzMuNyAuNC0yLjYgMS41LTQuOCAzLjUtNi40IDIuMS0xLjcgNS44LTIuNyA2LjctMi43IDEwMS0xOSAxMTMuMy0yMS40IDExNS4xLTIxLjQgNS43LS40IDkgMyA5IDguNy0uMSAxNzAuNiAuNCAxNjEuNC0xIDE2Ny42ek0zNDUuMiAzMkwxMDIuOCAzMkM0NS45IDMyIDAgNzcuOSAwIDEzNC44TDAgMzc3LjJDMCA0MzQuMSA0NS45IDQ4MCAxMDIuOCA0ODBsMjQyLjQgMGM1NyAwIDEwMi44LTQ1LjkgMTAyLjgtMTAyLjhsMC0yNDIuNEM0NDggNzcuOSA0MDIuMSAzMiAzNDUuMiAzMnpNMjIzLjYgNTlhMTkyLjUgMTkyLjUgMCAxIDEgMCAzODUgMTkyLjUgMTkyLjUgMCAxIDEgMC0zODV6Il19LGpFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteGluZyIsaWNvbjpbNDQ4LDUxMixbInhpbmctc3F1YXJlIl0sImYxNjkiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTkzLjggMzIwLjJjLTUuNSAwLTguNy01LjMtNi0xMC4zbDQ5LjMtODYuN2MuMSAwIC4xLS4xIDAtLjJsLTMxLjQtNTRjLTMtNS42IC4yLTEwLjEgNi0xMC4xbDQ2LjYgMGM1LjIgMCA5LjUgMi45IDEyLjkgOC43bDMxLjkgNTUuM2MtMS4zIDIuMy0xOCAzMS43LTUwLjEgODguMi0zLjUgNi4yLTcuNyA5LjEtMTIuNiA5LjFsLTQ2LjYgMHptMTYzLjUtMzMuNGwwIC4yIDY1LjUgMTE5YzIuOCA1LjEgLjEgMTAuMS02IDEwLjFsLTQ2LjYgMGMtNS41IDAtOS43LTIuOS0xMi45LTguN2wtNjYtMTIwLjNjMS44LTMuMiAyMi45LTQwLjQgNjMuMy0xMTEuNiAxMS43LTIwLjcgMjUuMS00NC4zIDQwLjEtNzAuOCAzLjMtNS44IDcuNC04LjcgMTIuNS04LjdsNDYuOSAwYzUuNy0uMSA4LjggNC43IDYgMTBMMjU3LjMgMjg2Ljh6Il19LEgzcj1qRWUscTNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzczMtYWx0IixpY29uOlszODQsNTEyLFtdLCJmMzhiIiwiTTAgMzJMMzQuOSA0MjcuOCAxOTIgNDgwIDM0OS4xIDQyNy44IDM4NCAzMiAwIDMyem0zMTMuMSA4MGwtNC44IDQ3LjMtMTE1LjMgNDkuMy0uMyAuMSAxMTEuNSAwLTEyLjggMTQ2LjYtOTguMiAyOC43LTk4LjgtMjkuMi02LjQtNzMuOSA0OC45IDAgMy4yIDM4LjMgNTIuNiAxMy4zIDU0LjctMTUuNCAzLjctNjEuNi0xNjYuMy0uNSAwLS4xLS4yIC4xLTMuNi00Ni4zIDExMi4xLTQ2LjcgNi41LTIuNy0xMjIuOSAwLTUuOC00Ny4zIDI0Mi4yIDB6Il19LFYzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmVzcGFjZSIsaWNvbjpbNTEyLDUxMixbXSwiZjViZSIsIk0xODYuMSAzNDMuM2MtOS43IDkuNy05LjcgMjUuMyAwIDM0LjlzMjUuMyA5LjYgMzQuOSAwTDM3OC4zIDIyMS4xYzE5LjMtMTkuMyA1MC42LTE5LjMgNjkuOSAwczE5LjMgNTAuNiAwIDY5LjlMMjk0IDQ0NS4xYzE5LjMgMTkuMyA1MC41IDE5LjMgNjkuOCAwbDAgMCAxMTkuMy0xMTkuMmMzOC42LTM4LjYgMzguNi0xMDEuMSAwLTEzOS43LTM4LjYtMzguNi0xMDEuMi0zOC42LTEzOS43IDBMMTg2LjEgMzQzLjN6TTQzMC43IDIzOC41Yy05LjctOS43LTI1LjMtOS43LTM0LjkgMEwyMzguNSAzOTUuN2MtMTkuMyAxOS4zLTUwLjUgMTkuMy02OS44IDBsMCAwYy05LjYtOS42LTI1LjMtOS43LTM0LjkgMGwwIDBjLTkuNyA5LjYtOS43IDI1LjMgMCAzNC45bDAgMGMzOC42IDM4LjYgMTAxLjEgMzguNiAxMzkuNyAwTDQzMC43IDI3My41YzkuNi05LjcgOS42LTI1LjMgMC0zNC45em0tMjYyIDg3LjNMMzI1LjkgMTY4LjdjOS42LTkuNiA5LjYtMjUuMyAwLTM0LjktOS42LTkuNi0yNS4zLTkuNi0zNC45IDBMMTMzLjcgMjkwLjljLTE5LjMgMTkuMy01MC42IDE5LjMtNjkuOSAwbDAgMGMtMTkuMy0xOS4zLTE5LjMtNTAuNSAwLTY5LjhsMCAwIDE1NC4yLTE1NC4yYy0xOS4zLTE5LjMtNTAuNS0xOS4zLTY5LjggMGwwIDAtMTE5LjIgMTE5LjNjLTM4LjYgMzguNi0zOC42IDEwMS4xIDAgMTM5LjcgMzguNiAzOC42IDEwMS4xIDM4LjYgMTM5LjcgMHpNODEuMyAyNzMuNWM5LjYgOS42IDI1LjMgOS42IDM0LjkgMEwyNzMuNSAxMTYuM2MxOS4zLTE5LjMgNTAuNi0xOS4zIDY5LjggMGwwIDBjOS43IDkuNiAyNS4zIDkuNiAzNC45IDBzOS42LTI1LjMgMC0zNC45Yy0zOC42LTM4LjYtMTAxLjEtMzguNi0xMzkuNyAwTDgxLjMgMjM4LjVjLTkuNiA5LjYtOS42IDI1LjMgMCAzNC45bDAgMHoiXX0sajNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRyZWxsbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4MSIsIk0zOTIuMyAzMkw1Ni4xIDMyYy0zMSAwLTU2LjEgMjUuMS01Ni4xIDU2LS4xIDAgMC00IDAgMzM2IDAgMzAuOSAyNS4xIDU2IDU2IDU2bDMzNi4yIDBjMzAuOC0uMiA1NS43LTI1LjIgNTUuNy01NmwwLTMzNmMuMS0zMC44LTI0LjgtNTUuOC01NS42LTU2ek0xOTcgMzcxLjNjLS4yIDE0LjctMTIuMSAyNi42LTI2LjkgMjYuNmwtODIuNyAwYy0xNC44IC4xLTI2LjktMTEuOC0yNy0yNi42bDAtMjU0LjJjMC0xNC44IDEyLTI2LjkgMjYuOS0yNi45bDgyLjkgMGMxNC44IDAgMjYuOSAxMiAyNi45IDI2LjlsMCAyNTQuMi0uMSAwem0xOTMuMS0xMTJjMCAxNC44LTEyIDI2LjktMjYuOSAyNi45bC04MSAwYy0xNC44IDAtMjYuOS0xMi0yNi45LTI2LjlsMC0xNDIuMWMwLTE0LjggMTItMjYuOSAyNi44LTI2LjlsODEuMSAwYzE0LjggMCAyNi45IDEyIDI2LjkgMjYuOWwwIDE0Mi4xeiJdfSxVM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmlhZGVvIixpY29uOls0NDgsNTEyLFtdLCJmMmE5IiwiTTI3Ni40IDE1MC41bDAgLjdjLTE3LjktNTIuNi00Mi42LTEwMy40LTcwLjgtMTUxLjIgNDMuMyAyOS4yIDY3IDEwMCA3MC44IDE1MC41em0zMi43IDEyMS43YzcuNiAxOC4yIDExIDM3LjUgMTEgNTcgMCA3Ny43LTU3LjggMTQxLTEzNy44IDEzOS40bDMuOC0uM2M3NC4yLTQ2LjcgMTA5LjMtMTE4LjYgMTA5LjMtMjA1LjEgMC0zOC4xLTYuNS03NS45LTE4LjktMTEyIDEgMTEuNyAxIDIzLjcgMSAzNS40IDAgOTEuOC0xOC4xIDI0MS42LTExNi42IDI4MC02NS43LTExLjQtMTExLjMtNjguNi0xMTEuMy0xMzcuNCAwLTc1LjYgNTcuNC0xNDIuMyAxMzUuNC0xNDIuMyAxNi44IDAgMzMuNyAzLjEgNDkuMSA5LjYgMS43LTE1LjEgNi41LTI5LjkgMTMuNC00My4zLTE5LjktNy4yLTQxLjItMTAuNy02Mi41LTEwLjctMTYxLjUgMC0yMzguNyAxOTUuOS0xMjkuOSAzMTMuNyA2Ny45IDc0LjYgMTkyIDczLjkgMjU5LjggMCA1Ni42LTYxLjMgNjAuOS0xNDIuNCAzNi40LTIwMS0xMi43IDgtMjcuMSAxMy45LTQyLjIgMTd6TTQxOC4zIDExLjdjLTMxIDY2LjUtODEuMyA0Ny4yLTExNS44IDgwLjEtMTIuNCAxMi0yMC42IDM0LTIwLjYgNTAuNSAwIDE0LjEgNC41IDI3LjEgMTIgMzguOCA0Ny40LTExIDk4LjMtNDYgMTE4LjItOTAuNy0uNyA1LjUtNC44IDE0LjQtNy4yIDE5LjItMjAuMyAzNS43LTY0LjYgNjUuNi05OS43IDg0LjkgMTQuOCAxNC40IDMzLjcgMjUuOCA1NSAyNS44IDc5IDAgMTEwLjEtMTM0LjYgNTguMS0yMDguNnoiXX0sVzNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlYXJjaGVuZ2luIixpY29uOls0NDgsNTEyLFtdLCJmM2ViIiwiTTIxNC42IDEzMC4zbC02Ny4yIDI4LjIgMC0xMTUuMy01NC43IDE5MC4zIDU0LjctMjQuMiAwIDEzMC4zIDY3LjItMjA5LjN6TTEzMS40IDMzLjZsLTEuMyA0LjctMTUuMiA1Mi45Qzc0LjYgMTA2LjcgNDYgMTQ1LjggNDYgMTkxLjUgNDYgMjQzLjggODAuMyAyODcuNCAxMjkuNCAyOTdsMCA1My42QzUxLjUgMzQwLjEtNiAyNzIuNC02IDE5MS42LTYgMTExLjEgNTMuOCA0NC40IDEzMS40IDMzLjZ6TTQ0Mi44IDQ4MC44Yy0xMS4yIDExLjItMjMuMSAxMi4zLTI4LjYgMTAuNS01LjQtMS44LTI3LjEtMTkuOS02MC40LTQ0LjQtMzMuMy0yNC42LTMzLjYtMzUuNy00My01Ni43LTkuNC0yMC45LTMwLjQtNDIuNi01Ny41LTUyLjRsLTkuNy0xNC43Yy0yNC43IDE2LjktNTMgMjYuOS04MS4zIDI4LjdsMi4xLTYuNiAxNS45LTQ5LjVjNDYuNS0xMS45IDgwLjktNTQgODAuOS0xMDQuMiAwLTU0LjUtMzguNC0xMDIuMS05Ni0xMDcuMWwwLTUyLjFjODMuMiA1LjEgMTQ4LjggNzQuNSAxNDguOCAxNTkuMyAwIDMzLjYtMTEuMiA2NC43LTI5IDkwLjRsMTQuNiA5LjZjOS44IDI3LjEgMzEuNSA0OCA1Mi40IDU3LjRzMzIuMiA5LjcgNTYuOCA0M2MyNC42IDMzLjIgNDIuNyA1NC45IDQ0LjUgNjAuM3MuNyAxNy4zLTEwLjUgMjguNXptLTkuOS0xNy45YzAtNC40LTMuNi04LTgtOHMtOCAzLjYtOCA4IDMuNiA4IDggOCA4LTMuNiA4LTh6Il19LEczcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bnJlYWwtZW5naW5lIixpY29uOls1MTIsNTEyLFtdLCJlODVjIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem02NS41LTExMy43bC0yNS4xLTI4LjMtNDIuNCA0Mi42Yy0yNC4xLS4zLTQ3LjktNi4yLTY5LjMtMTcuMnMtNDAuMS0yNi45LTU0LjUtNDYuM2M0LjUgMS40IDkuMiAyLjMgMTMuOSAyLjYgNi45IC4xIDE0LjUtMi40IDE0LjUtMTQuMWwwLTExNS4xYy4xLTMtLjUtNS45LTEuNy04LjZzLTMuMS01LTUuNC02LjktNS0zLjEtNy45LTMuNy01LjktLjUtOC44IC4yYy0xOS42IDQuNS0zNS4zIDUzLjUtMzUuMyA1My41LS4yLTIyLjYgNC41LTQ1IDEzLjgtNjUuNnMyMy0zOSA0MC4xLTUzLjhjMjIuNS0xOS41IDUwLjEtMzIuMiA3OS42LTM2LjctMjEuNCAxMi4yLTMzLjUgMzIuMS0zMy41IDQ4LjkgMCAyNi45IDE2LjIgMjMuNiAyMSAxOS43bDAgMTU1LjNjLjggMS45IDEuOSAzLjggMy4yIDUuNSAyLjEgMyA1IDUuNCA4LjIgN3M2LjkgMi41IDEwLjUgMi41YzE2LjIgMCAzNy4zLTE4LjUgMzcuMy0xOC41bDAtMTI1LjdjMC0xMi44LTkuNi0yOC4yLTE5LjMtMzMuNSAwIDAgMTcuOS0zLjIgMzEuNyA3LjQgMi42LTMuMiA1LjMtNi4yIDguMi05LjEgMzIuMi0zMS42IDYyLjUtNDAuNiA4Ny43LTQ1LjEgMCAwLTQ1LjkgMzYuMS00NS45IDg0LjUgMCAzNiAuOSAxMjMuOCAuOSAxMjMuOCAxNyAxNi40IDQyLjQtNy4zIDY1LjItMzAuOC00LjQgMjEuMy0yNCA3NS45LTg2LjYgMTA1LjR6Il19LFkzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYXlwYWwiLGljb246WzM4NCw1MTIsW10sImYxZWQiLCJNMTExLjkgMjk1LjljLTMuNSAxOS4yLTE3LjQgMTA4LjctMjEuNSAxMzQtLjMgMS44LTEgMi41LTMgMi41bC03NC42IDBjLTcuNiAwLTEzLjEtNi42LTEyLjEtMTMuOUw1OS4zIDQ2LjZjMS41LTkuNiAxMC4xLTE2LjkgMjAtMTYuOSAxNTIuMyAwIDE2NS4xLTMuNyAyMDQgMTEuNCA2MC4xIDIzLjMgNjUuNiA3OS41IDQ0IDE0MC4zLTIxLjUgNjIuNi03Mi41IDg5LjUtMTQwLjEgOTAuMy00My40IC43LTY5LjUtNy03NS4zIDI0LjJ6TTM1Ny42IDE1MmMtMS44LTEuMy0yLjUtMS44LTMgMS4zLTIgMTEuNC01LjEgMjIuNS04LjggMzMuNi0zOS45IDExMy44LTE1MC41IDEwMy45LTIwNC41IDEwMy45LTYuMSAwLTEwLjEgMy4zLTEwLjkgOS40LTIyLjYgMTQwLjQtMjcuMSAxNjkuNy0yNy4xIDE2OS43LTEgNy4xIDMuNSAxMi45IDEwLjYgMTIuOWw2My41IDBjOC42IDAgMTUuNy02LjMgMTcuNC0xNC45IC43LTUuNC0xLjEgNi4xIDE0LjQtOTEuMyA0LjYtMjIgMTQuMy0xOS43IDI5LjMtMTkuNyA3MSAwIDEyNi40LTI4LjggMTQyLjktMTEyLjMgNi41LTM0LjggNC42LTcxLjQtMjMuOC05Mi42eiJdfSxLM3I9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWJsdWVza3kiLGljb246WzQ0OCw1MTIsW10sImU2YTMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDI0Ny40YzE0LjUtMzAgNTQtODUuOCA5MC43LTExMy4zIDI2LjUtMTkuOSA2OS4zLTM1LjIgNjkuMyAxMy43IDAgOS44LTUuNiA4Mi4xLTguOSA5My44LTExLjQgNDAuOC01MyA1MS4yLTkwIDQ0LjkgNjQuNyAxMSA4MS4yIDQ3LjUgNDUuNiA4NC02Ny41IDY5LjMtOTctMTcuNC0xMDQuNi0zOS42bC0uMy0uOWMtLjktMi42LTEuNC00LjEtMS44LTQuMXMtLjkgMS41LTEuOCA0LjFjLS4xIC4zLS4yIC42LS4zIC45LTcuNiAyMi4yLTM3LjEgMTA4LjgtMTA0LjYgMzkuNi0zNS41LTM2LjUtMTkuMS03MyA0NS42LTg0LTM3IDYuMy03OC42LTQuMS05MC00NC45LTMuMy0xMS43LTguOS04NC04LjktOTMuOCAwLTQ4LjkgNDIuOS0zMy41IDY5LjMtMTMuNyAzNi43IDI3LjUgNzYuMiA4My40IDkwLjcgMTEzLjN6Il19LFozcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkLWFuZC1kLWJleW9uZCIsaWNvbjpbNjQwLDUxMixbXSwiZjZjYSIsIk0zMTMuOCAyNDEuNWMxMy44IDAgMjEtMTAuMSAyNC44LTE3LjktMS0xLjEtNS00LjItNy40LTYuNi0yLjQgNC4zLTguMiAxMC43LTEzLjkgMTAuNy0xMC4yIDAtMTUuNC0xNC43LTMuMi0yNi42LS41LS4yLTQuMy0xLjgtOCAyLjQgMC0zIDEtNS4xIDIuMS02LjYtMy41IDEuMy05LjggNS42LTExLjQgNy45IC4yLTUuOCAxLjYtNy41IC42LTlsLS4yLS4ycy04LjUgNS42LTkuMyAxNC43YzAgMCAxLjEtMS42IDIuMS0xLjkgLjYtLjMgMS4zIDAgLjYgMS45LS4yIC42LTUuOCAxNS43IDUuMSAyNi0uNi0xLjYtMS45LTcuNiAyLjQtMS45LS4zIC4xIDUuOCA3LjEgMTUuNyA3LjF6bTUyLjQtMjEuMWMwLTQtNC45LTQuNC01LjYtNC41IDIgMy45IC45IDcuNSAuMiA5IDIuNS0uNCA1LjQtMS42IDUuNC00LjV6bTEwLjMgNS4yYzAtNi40LTYuMi0xMS40LTEzLjUtMTAuNyA4IDEuMyA1LjYgMTMuOC01IDExLjQgMy43LTIuNiAzLjItOS45LTEuMy0xMi41IDEuNCA0LjItMyA4LjItNy40IDQuNi0yLjQtMS45LTgtNi42LTEwLjYtOC42LTIuNC0yLjEtNS41LTEtNi42LTEuOC0xLjMtMS4xLS41LTMuOC0yLjItNS0xLjYtLjgtMy0uMy00LjgtMS0xLjYtLjYtMi43LTEuOS0yLjYtMy41LTIuNSA0LjQgMy40IDYuMyA0LjUgOC41IDEgMS45LS44IDQuOCA0IDguNSAxNC44IDExLjYgOS4xIDggMTAuNCAxOC4xIC42IDQuMyA0LjIgNi43IDYuNCA3LjQtMi4xLTEuOS0yLjktNi40IDAtOS4zIDAgMTMuOSAxOS4yIDEzLjMgMjMuMSA2LjQtMi40IDEuMS03LS4yLTktMS45IDcuNyAxIDE0LjItNC4xIDE0LjYtMTAuNnptLTM5LjQtMTguNGMyIC44IDEuNiAuNyA2LjQgNC41IDEwLjItMjQuNSAyMS43LTE1LjcgMjItMTUuNSAyLjItMS45IDkuOC0zLjggMTMuOC0yLjctMi40LTIuNy03LjUtNi4yLTEzLjMtNi4yLTQuNyAwLTcuNCAyLjItOCAxLjMtLjgtMS40IDMuMi0zLjQgMy4yLTMuNC01LjQgLjItOS42IDYuNy0xMS4yIDUuOS0xLjEtLjUgMS40LTMuNyAxLjQtMy43LTUuMSAyLjktOS4zIDkuMS0xMC4yIDEzIDQuNi01LjggMTMuOC05LjggMTkuNy05LTEwLjUgLjUtMTkuNSA5LjctMjMuOCAxNS44em0yNDIuNSA1MS45Yy0yMC43IDAtNDAgMS4zLTUwLjMgMi4xbDcuNCA4LjIgMCA3Ny4yLTcuNCA4LjJjMTAuNCAuOCAzMC45IDIuMSA1MS42IDIuMSA0Mi4xIDAgNTkuMS0yMC43IDU5LjEtNDguOSAwLTI5LjMtMjMuMi00OC45LTYwLjQtNDguOXptLTE1LjEgNzUuNmwwLTUzLjNjMzAuMS0zLjMgNDYuOCAzLjggNDYuOCAyNi4zIDAgMjUuNi0yMS40IDMwLjItNDYuOCAyN3pNMzAxLjYgMTgxYy0xLTMuNC0uMi02LjkgMS4xLTkuNCAxIDMgMi42IDYuNCA3LjUgOS0uNS0yLjQtLjItNS42IC41LTgtMS40LTUuNCAyLjEtOS45IDYuNC05LjkgNi45IDAgOC41IDguOCA0LjcgMTQuNCAyLjEgMy4yIDUuNSA1LjYgNy43IDcuOCAzLjItMy43IDUuNS05LjUgNS41LTEzLjggMC04LjItNS41LTE1LjktMTYuNy0xNi41LTIwLS45LTIwLjIgMTYuNi0yMCAxOC45IC41IDUuMiAzLjQgNy44IDMuMyA3LjV6bS0uNCA2Yy0uNSAxLjgtNyAzLjctMTAuMiA2LjkgNC44LTEgNy0uMiA3LjggMS44IC41IDEuNC0uMiAzLjQtLjUgNS42IDEuNi0xLjggNy01LjUgMTEtNi4yLTEtLjMtMy40LS44LTQuMy0uOCAyLjktMy40IDkuMy00LjUgMTIuOC0zLjctMi4yLS4yLTYuNyAxLjEtOC41IDIuNiAxLjYgLjMgMyAuNiA0LjMgMS4xLTIuMSAuOC00LjggMy40LTUuOCA2LjEgNy01IDEzLjEgNS4yIDcgOC4yIC44IC4yIDIuNyAwIDMuNS0uNS0uMyAxLjEtMS45IDMtMyAzLjQgMi45IDAgNy0xLjkgOC4yLTQuNiAwIDAtMS44IC42LTIuNi0uMnMuMy00LjMgLjMtNC4zYy0yLjMgMi45LTMuNC0xLjMtMS4zLTQuMi0xLS4zLTMuNS0uNi00LjYtLjUgMy4yLTEuMSAxMC40LTEuOCAxMS4yLS4zIC42IDEuMS0xIDMuNC0xIDMuNCA0LS41IDguMyAxLjEgNi43IDUuMSAyLjktMS40IDUuNS01LjkgNC44LTEwLjQtLjMgMS0xLjYgMi40LTIuOSAyLjcgLjItMS40LTEtMi4yLTEuOS0yLjYgMS43LTkuNi0xNC42LTE0LjItMTQuMS0yMy45LTEgMS4zLTEuOCA1LS44IDcuMSAyLjcgMy4yIDguNyA2LjcgMTAuMSAxMi4yLTIuNi02LjQtMTUuMS0xMS40LTE0LjYtMjAuMi0xLjYgMS42LTIuNiA3LjgtMS4zIDExIDIuNCAxLjQgNC41IDMuOCA0LjggNi4xLTIuMi01LjEtMTEuNC02LjEtMTMuOS0xMi4yLS42IDIuMi0uMyA1IDEgNi43IDAgMC0yLjItLjgtNy0uNiAxLjcgLjYgNS4xIDMuNSA0LjggNS4yem0yNS45IDcuNGMtMi43IDAtMy41LTIuMS00LjItNC4zIDMuMyAxLjMgNC4yIDQuMyA0LjIgNC4zem0zOC45IDMuN2wtMS0uNmMtMS4xLTEtMi45LTEuNC00LjctMS40LTIuOSAwLTUuOCAxLjMtNy41IDMuNC0uOCAuOC0xLjQgMS44LTIuMSAyLjZsMCAxNS43YzMuNSAyLjYgNy4xLTIuOSAzLTcuMiAxLjUgLjMgNC42IDIuNyA1LjEgMy4yIDAgMCAyLjYtLjUgNS0uNSAyLjEgMCAzLjkgLjMgNS42IDEuMWwwLTE4LjRjLTEuMSAuNS0yLjIgMS0yLjcgMS40bC0uNyAuN3pNNzkuOSAzMDUuOWMxNy4yLTQuNiAxNi4yLTE4IDE2LjItMTkuOSAwLTIwLjYtMjQuMS0yNS0zNy0yNWwtNTYuMSAwIDguMyA4LjYgMCAyOS41LTExLjMgMCAxMS40IDE0LjYgMCAzMi4zLTguNCA4LjZjNjEuNyAwIDczLjggMS41IDg2LjQtNS45IDYuNy00IDkuOS05LjggOS45LTE3LjYgMC01LjEgMi42LTE4LjgtMTkuNC0yNS4yek0zOC42IDI3OC40YzIwIDAgMjkuNi0uOCAyOS42IDkuMWwwIDNjMCAxMi4xLTE5IDguOC0yOS42IDguOGwwLTIwLjl6bTAgNTkuMmwwLTIyLjZjMTIuMiAwIDMyLjctMi4zIDMyLjcgOC44bDAgNC41IC4yIDBjMCAxMS4yLTEyLjUgOS4zLTMyLjkgOS4zem0xMDEuMi0xOS4zbDIzLjEgLjIgMC0uMiAxNC4xLTIxLjItMzcuMiAwIDAtMTQuOSA1Mi40IDAtMTQuMS0yMSAwLS4yLTczLjUgLjIgNy40IDguMiAwIDc3LjEtNy40IDguMiA4MS4yIDAgMTQuMS0yMS4yLTYwLjEgLjIgMC0xNS40em0yMTQuNy02MC4xYy03My45IDAtNzcuNSA5OS4zLS4zIDk5LjMgNzcuOSAwIDc0LjEtOTkuMyAuMy05OS4zem0tLjMgNzcuNWMtMzcuNCAwLTM2LjktNTUuMyAuMi01NS4zIDM2LjggLjEgMzguOCA1NS4zLS4yIDU1LjN6bS05MS4zLTguM2w0NC4xLTY2LjItNDEuNyAwIDYuMSA3LjItMjAuNSAzNy4yLS4zIDAtMjEtMzcuMiA2LjQtNy4yLTQ0LjkgMCA0NC4xIDY1LjggLjIgMTkuNC03LjcgOC4yIDQyLjYgMC03LjItOC4yLS4yLTE5ek0yMzQuNSAxNzYuMWMxLjYgMS4zIDIuOSAyLjQgMi45IDYuNmwwIDM4LjhjMCA0LjItLjggNS4zLTIuNyA2LjQtLjEgLjEtNy41IDQuNS03LjkgNC42bDM1LjEgMGMxMCAwIDE3LjQtMS41IDI2LTguNi0uNi01IC4yLTkuNSAuOC0xMiAwLS4yLTEuOCAxLjQtMi43IDMuNSAwLTUuNyAxLjYtMTUuNCA5LjYtMjAuNS0uMSAwLTMuNy0uOC05IDEuMSAyLTMuMSAxMC03LjkgMTAuNC03LjktOC4yLTI2LTM4LTIyLjktMzIuMi0yMi45LTMwLjkgMC0zMi42IC4zLTM5LjktNCAuMSAuOCAuNSA4LjIgOS42IDE0Ljl6bTIxLjUgNS41YzQuNiAwIDIzLjEtMy4zIDIzLjEgMTcuMyAwIDIwLjctMTguNCAxNy4zLTIzLjEgMTcuM2wwLTM0LjZ6bTIyOC45IDc5LjZsNyA4LjMgMCA0Mi41LS4zIDBjLTUuNC0xNC40LTQyLjMtNDEuNS00NS4yLTUwLjlsLTMxLjYgMCA3LjQgOC41IDAgNzYuOS03LjIgOC4zIDM5IDAtNy40LTguMiAwLTQ3LjQgLjMgMGMzLjcgMTAuNiA0NC41IDQyLjkgNDguNSA1NS42bDIxLjMgMCAwLTg1LjIgNy40LTguMy0zOS4yLS4xek0zNzguMiAxNjUuMWMtMzIuMiAwLTMyLjggLjItMzkuOS00IC4xIC43IC41IDguMyA5LjYgMTQuOSAzLjEgMiAyLjkgNC4zIDIuOSA5LjUgMS44LTEuMSAzLjgtMi4yIDYuMS0zLTEuMSAxLjEtMi43IDIuNy0zLjUgNC41IDEtMS4xIDcuNS01LjEgMTQuNi0zLjUtMS42IC4zLTQgMS4xLTYuMSAyLjkgLjEgMCAyLjEtMS4xIDcuNS0uM2wwLTQuM2M0LjcgMCAyMy4xLTMuNCAyMy4xIDE3LjMgMCAyMC41LTE4LjUgMTcuMy0xOS43IDE3LjMgNS43IDQuNCA1LjggMTIgMi4yIDE2LjNsLjMgMGMzMy40IDAgMzYuNy0yNy4zIDM2LjctMzQgMC0zLjgtMS4xLTMyLTMzLjgtMzMuNnoiXX0sUTNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pY3Jvc29mdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNjYSIsIk0wIDMybDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6bTIzMy40IDBsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnpNMCAyNjUuNGwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42em0yMzMuNCAwbDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6Il19LFgzcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbHkiLGljb246WzMyMCw1MTIsW10sImY0MTciLCJNMTY1LjkgNDI3LjhjMTIuOSAxMS43IDMzLjcgMzMuMyAzMy4yIDUwLjcgMCAuOC0uMSAxLjYtLjEgMi41LTEuOCAxOS44LTE4LjggMzEuMS0zOS4xIDMxLTI1LS4xLTM5LjktMTYuOC0zOC43LTM1LjggMS0xNi4yIDIwLjUtMzYuNyAzMi40LTQ3LjYgMi4zLTIuMSAyLjctMi43IDUuNi0zLjYgMy40IDAgMy45IC4zIDYuNyAyLjh6TTMwMCA2Ny4zYy0xNi4zLTI1LjctMzguNi00MC42LTYzLjMtNTIuMS0yNS41LTEwLjctNTQuNi0xNS40LTc2LjYtMTUuMi00NC4xIDAtNzEuMiAxMy4yLTgxLjEgMTcuMy01My42IDI3LjktODQuNCA2OS45LTgyLjkgMTQxLjMgNy4xIDgyLjIgOTcgMTc2IDE1NS44IDIzMy44IDEuNyAxLjYgNC41IDQuNSA2LjIgNS4xbDMuMyAuMWMyLjEtLjcgMS44LS41IDMuNS0yLjEgNTIuMy00OS4yIDE0MC43LTE0NS44IDE1NS45LTIxNS43IDctMzkuMiAzLjEtNzIuNS0yMC44LTExMi41ek0xNTQuOSAzNTEuOWMtMjgtNTEuMS02NS4yLTEzMC43LTY5LjMtMTg5LTMuNC00Ny41IDExLjQtMTMxLjIgNjkuMy0xMzYuN2wwIDMyNS43ek0yOTYuOCAxODBjLTE2LjQgNTYuOC03Ny4zIDEyOC0xMTguOSAxNzAuMyAyNy44LTUxLjkgNjUuMi0xMzMuMyA2Ny4yLTE5MS45IDEuNi00NS45LTkuOC0xMDUuOC00OC0xMzEuNCA4OC44IDE4LjMgMTE1LjUgOTguMSA5OS43IDE1M3oiXX0sSjNyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLXN0cmlwZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFmNSIsIk00OTIuNCAyMjAuOGMtOC45IDAtMTguNyA2LjctMTguNyAyMi43bDM2LjcgMGMwLTE2LTkuMy0yMi43LTE4LTIyLjd6TTM3NSAyMjMuNGMtOC4yIDAtMTMuMyAyLjktMTcgN2wuMiA1Mi44YzMuNSAzLjcgOC41IDYuNyAxNi44IDYuNyAxMy4xIDAgMjEuOS0xNC4zIDIxLjktMzMuNCAwLTE4LjYtOS0zMy4yLTIxLjktMzMuMXpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyMi4yIDI4MS4xYzAgMjUuNi0yMC4zIDQwLjEtNDkuOSA0MC4zLTEyLjIgMC0yNS42LTIuNC0zOC44LTguMWwwLTMzLjljMTIgNi40IDI3LjEgMTEuMyAzOC45IDExLjMgNy45IDAgMTMuNi0yLjEgMTMuNi04LjcgMC0xNy01NC0xMC42LTU0LTQ5LjkgMC0yNS4yIDE5LjItNDAuMiA0OC00MC4yIDExLjggMCAyMy41IDEuOCAzNS4zIDYuNWwwIDMzLjRjLTEwLjgtNS44LTI0LjUtOS4xLTM1LjMtOS4xLTcuNSAwLTEyLjEgMi4yLTEyLjEgNy43IDAgMTYgNTQuMyA4LjQgNTQuMyA1MC43ek0xOTEgMjI0LjVsLTI3IDAgMCA1MC41YzAgMjAuOSAyMi41IDE0LjQgMjcgMTIuNmwwIDI4LjljLTQuNyAyLjYtMTMuMyA0LjctMjQuOSA0LjctMjEuMSAwLTM2LjktMTUuNS0zNi45LTM2LjVsLjItMTEzLjkgMzQuNy03LjQgMCAzMC44IDI2LjkgMCAwIDMwLjN6bTc0IDIuNGMtNC41LTEuNS0xOC43LTMuNi0yNy4xIDcuNGwwIDg0LjQtMzUuNSAwIDAtMTI0LjUgMzAuNyAwIDIuMiAxMC41YzguMy0xNS4zIDI0LjktMTIuMiAyOS42LTEwLjVsLjEgMCAwIDMyLjd6bTQ0LjEgOTEuOGwtMzUuNyAwIDAtMTI0LjUgMzUuNyAwIDAgMTI0LjV6bTAtMTQyLjlsLTM1LjcgNy42IDAtMjguOSAzNS43LTcuNiAwIDI4Ljl6bTc0LjEgMTQ1LjVjLTEyLjQgMC0yMC01LjMtMjUuMS05bC0uMSA0MC4yLTM1LjUgNy41IDAtMTY1LjggMzEuMyAwIDEuOCA4LjhjNC45LTQuNSAxMy45LTExLjEgMjcuOC0xMS4xIDI0LjkgMCA0OC40IDIyLjUgNDguNCA2My44IDAgNDUuMS0yMy4yIDY1LjUtNDguNiA2NS42em0xNjAuNC01MS41bC02OS41IDBjMS42IDE2LjYgMTMuOCAyMS41IDI3LjYgMjEuNSAxNC4xIDAgMjUuMi0zIDM0LjktNy45bDAgMjguNmMtOS43IDUuMy0yMi40IDkuMi0zOS40IDkuMi0zNC42IDAtNTguOC0yMS43LTU4LjgtNjQuNSAwLTM2LjIgMjAuNS02NC45IDU0LjMtNjQuOSAzMy43IDAgNTEuMyAyOC43IDUxLjMgNjUuMSAwIDMuNS0uMyAxMC45LS40IDEyLjl6Il19LGV1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b3JkcHJlc3Mtc2ltcGxlIixpY29uOls1MTIsNTEyLFtdLCJmNDExIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzMgMjU2YzAtMzIuMyA2LjktNjMgMTkuMy05MC43TDE1OC43IDQ1Ni43Qzg0LjMgNDIwLjUgMzMgMzQ0LjIgMzMgMjU2ek0yNTYgNDc5Yy0yMS45IDAtNDMtMy4yLTYzLTkuMWw2Ni45LTE5NC40IDY4LjUgMTg3LjhjLjUgMS4xIDEgMi4xIDEuNiAzLjEtMjMuMSA4LjEtNDggMTIuNi03NCAxMi42em0zMC43LTMyNy41YzEzLjQtLjcgMjUuNS0yLjEgMjUuNS0yLjEgMTItMS40IDEwLjYtMTkuMS0xLjQtMTguNCAwIDAtMzYuMSAyLjgtNTkuNCAyLjgtMjEuOSAwLTU4LjctMi44LTU4LjctMi44LTEyLS43LTEzLjQgMTcuNy0xLjQgMTguNCAwIDAgMTEuNCAxLjQgMjMuNCAyLjFsMzQuNyA5NS4yLTQ4LjggMTQ2LjMtODEuMi0yNDEuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTQuMiAwLTkuMS0uMS0xNC40LS4zIDM5LjktNjAuNSAxMDguNC0xMDAuNSAxODYuMy0xMDAuNSA1OCAwIDExMC45IDIyLjIgMTUwLjYgNTguNS0xLS4xLTEuOS0uMi0yLjktLjItMjEuOSAwLTM3LjQgMTkuMS0zNy40IDM5LjYgMCAxOC40IDEwLjYgMzMuOSAyMS45IDUyLjMgOC41IDE0LjggMTguNCAzMy45IDE4LjQgNjEuNSAwIDE5LjEtNy4zIDQxLjItMTcgNzIuMWwtMjIuMiA3NC4zLTgwLjctMjM5LjZ6bTgxLjQgMjk3LjJsNjguMS0xOTYuOWMxMi43LTMxLjggMTctNTcuMiAxNy03OS45IDAtOC4yLS41LTE1LjgtMS41LTIyLjkgMTcuNCAzMS44IDI3LjMgNjguMiAyNy4zIDEwNyAwIDgyLjMtNDQuNiAxNTQuMS0xMTAuOSAxOTIuN3oiXX0sdHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlbGxzeSIsaWNvbjpbNjQwLDUxMixbXSwiZjIxMyIsIk01NDAgMjM3LjNjMy4xLTEyLjMgNC4zLTI0LjggNC4zLTM3LjQgMC05Mi41LTc1LjQtMTY3LjktMTY3LjktMTY3LjktNzcuMiAwLTE0NC42IDUzLTE2MyAxMjcuOC0xNS4zLTEzLjItMzQuOS0yMC41LTU1LjItMjAuNS00Ni4zIDAtODQgMzcuNy04NCA4NCAwIDcuNCAuOSAxNSAzLjEgMjIuNC00Mi45IDIwLjItNzAuOCA2My43LTcwLjggMTExLjIgMCA2OCA1NS41IDEyMy4yIDEyMy4yIDEyMy4ybDM4MS4yIDBjNjcuNyAwIDEyMy4yLTU1LjIgMTIzLjItMTIzLjIgMC01Ni40LTM4LjktMTA2LTk0LjEtMTE5LjV6TTIwMC4yIDQwMS42YzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMwLjkgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTExMC45YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzAuOSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxMTAuOXptODkuNSAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMwLjkgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTEzMS41YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzAuOSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxMzEuNXptODkuNSAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMxIDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xNjIuN2MwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMxIDBjOC4zIDAgMTUuMyA3IDE1LjMgMTUuM2wwIDE2Mi43em04NyAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTI4LjUgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTIyNC42YzAtOC42IDctMTUuNiAxNS4zLTE1LjZsMjguNSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjZsMCAyMjQuNnoiXX0scnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRhc2hjdWJlIixpY29uOls0NDgsNTEyLFtdLCJmMjEwIiwiTTMyNi45IDEwNGwtMjE2LjIgMGMtNTEuMSAwLTkxLjIgNDMuMy05MS4yIDkzLjVsMCAyMjkuNWMwIDUwLjUgNDAuMSA4NSA5MS4yIDg1bDIyNy4yIDBjNTEuMSAwIDkxLjItMzQuNSA5MS4yLTg1bDAtNDI3LTEwMi4yIDEwNHpNMTU0LjIgNDE2LjVjLTE3LjcgMC0zMi40LTE1LjEtMzIuNC0zMi44bDAtMTQyLjljMC0xNy43IDE0LjctMzIuNSAzMi40LTMyLjVsMTQwLjcgMGMxNy43IDAgMzIgMTQuOCAzMiAzMi41bDAgMTIzLjUgNTEuMSA1Mi4zLTIyMy44IDAgMC0uMXoiXX0sYXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdHRlciIsaWNvbjpbMzg0LDUxMixbXSwiZjQyNiIsIk02Ni40IDMyMi41bC01MC40IDAgMC0zMjIuNSA1MC40IDAgMCAzMjIuNXpNMTY2LjkgNzYuMWwtNTAuNCAwIDAgNDM1LjkgNTAuNCAwIDAtNDM1Ljl6bTEwMC42IDBsLTUwLjQgMCAwIDQzNS45IDUwLjQgMCAwLTQzNS45ek0zNjggNzZsLTUwLjQgMCAwIDI0NyA1MC40IDAgMC0yNDd6Il19LGl1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b2xmLXBhY2stYmF0dGFsaW9uIixpY29uOls0NDgsNTEyLFtdLCJmNTE0IiwiTTIzNi4yIDQ3MS41bDEwLjYgMTUuOCA1LjMtMTIuMyA1LjMgNyAwIDI5LjljMjEuMS03LjkgMjEuMS02Ni45IDI1LjUtOTcuMiA0LjYtMzEuOS0uOS05Mi44IDgxLjQtMTQ5LjEtOC45LTIzLjYtMTItNDkuNC0yLjYtODAgMjcuOSAzLjQgNTMuOSAxMC42IDYzLjMgNTQuMWwtMzAuMyA4LjRjMTEuMSAyMyAxNyA0Ni44IDEzLjIgNzIuMWwtMjcuMy03LTYuMiAzMy40LTE4LjUtNy04LjggMzMuNC0xOS40LTcgMjYuNCAyMS4xIDguOC0yOC4yIDI0LjYgNS4yIDctMzUuNiAyNi40IDE0LjVjLjItMjAgNy01OC4xLTguOC04NC41bDI2LjQgNS4zYzQtMjIuMS0yLjQtMzkuMi03LjktNTYuN2wyMi40IDkuN2MtLjQtMjUuMS0yOS45LTU2LjgtNjEuNi01OC41LTIwLjItMS4xLTU2LjctMjUuMi01NC4xLTUxLjkgMi0xOS45IDE3LjQtNDIuNiA0My4xLTQ5LjctNDQgMzYuNS05LjcgNjcuMyA1LjMgNzMuNSA0LjQtMTEuNCAxNy41LTY5LjEgMC0xMzAuMi00MC40IDIyLjktODkuNyA2NS4xLTkzLjIgMTQ3LjhsLTU4IDM4LjctMy41IDkzLjIgMTA3LjMtNTkuOCA3IDctMTcuNiAzLjUtNDQgMzguNy0xNS44LTUuMy0yOC4xIDQ5LjMtMy41IDExOS42IDIxLjEgMTUuOC0zMi41IDE1LjgtMzIuNi0xNS44IDIxLjEtMTUuOC0zLjUtMTE5LjYtMjguMi00OS4zLTE1LjggNS4zLTQ0LTM4LjctMTcuNi0zLjUgNy03IDEwNy4zIDU5LjgtMy41LTkzLjMtNTguMS0zOC43Yy0zLjUtODIuOC01Mi43LTEyNS05My4yLTE0Ny45LTE3LjUgNjEuMS00LjQgMTE4LjggMCAxMzAuMiAxNS02LjIgNDkuMy0zNyA1LjMtNzMuNSAyNS43IDcuMSA0MS4xIDI5LjggNDMuMSA0OS43IDIuNiAyNi43LTMzLjkgNTAuOC01NC4xIDUxLjktMzEuNyAxLjctNjEuMiAzMy40LTYxLjYgNTguNWwyMi40LTkuN0MxMy40IDIyNC43IDcgMjQxLjggMTEgMjYzLjlsMjYuNC01LjNjLTE1LjggMjYuNC05LjEgNjQuNC04LjggODQuNGwyNi40LTE0LjUgNyAzNS42IDI0LjYtNS4zIDguOCAyOC4yIDI2LjQtMjEuMS0xOS40IDctOC44LTMzLjQtMTguNSA3LTYuMi0zMy40LTI3LjMgN0MzOCAyOTQuOCA0My44IDI3MSA1NSAyNDhsLTMwLjMtOC40YzkuNC00My41IDM1LjUtNTAuOCA2My4zLTU0LjEgOS40IDMwLjYgNi4yIDU2LjUtMi42IDgwLjEgODIuMyA1Ni4zIDc2LjggMTE3LjIgODEuNCAxNDkuMSA0LjQgMzAuMyA0LjQgODkuMyAyNS41IDk3LjJsMC0yOS44IDUuMy03IDUuMyAxMi4zIDEwLjYtMTUuOCAxMS40IDIxLjEgMTEuNC0yMS4xIDAgMHptNzkuMi05NUwyOTkuNSAzNjZjNy41LTQuNCAxMy44LTguNCAxOS40LTEyLjMtLjYgNy4yLS4zIDEzLjgtMy41IDIyLjhsMCAwem0yOC4yLTQ5LjNjLS40IDEwLjktLjkgMjEuNy0xLjggMzEuNy03LjgtMS45LTE1LjYtMy44LTIxLjEtNyA4LjItNy45IDE1LjYtMTYuMyAyMi45LTI0LjdsMCAwem0yNC42IDUuM2MwLTEzLjQtMi4xLTI0LjItNS4zLTMzLjQtNS41IDkuNS0xMS43IDE4LjYtMTguNSAyNy4zbDIzLjggNi4yem0zLjUtODAuOWMxOS40IDEyLjggMjcuOCAzMy43IDI5LjkgNTYuMy0xMi4zLTQuNS0yNC42LTkuMy0zNy0xMC42IDUuMS0xMiA2LjYtMjguMSA3LTQ1LjdsMCAwem0tMS44LTQ1LjdjLjggMTQuMyAxLjggMjguOCAxLjggNDIuMiAxOS4yLTguMSAyOS44LTkuNyA0NC0xNC4xLTEwLjYtMTktMjcuMi0yNS41LTQ1LjgtMjguMmwwIDB6TTEzNC4yIDM3Ni41TDE1MCAzNjZjLTcuNS00LjQtMTMuOC04LjQtMTkuNC0xMi4zIC42IDcuMyAuMyAxMy45IDMuNSAyMi45bDAgMHpNMTA2IDMyNy4zYy40IDEwLjkgLjkgMjEuNyAxLjggMzEuNyA3LjgtMS45IDE1LjYtMy44IDIxLjEtNy04LjItNy45LTE1LjYtMTYuMy0yMi45LTI0Ljd6bS0yNC42IDUuM2MwLTEzLjQgMi0yNC4yIDUuMy0zMy40IDUuNSA5LjUgMTEuNyAxOC42IDE4LjUgMjcuM2wtMjMuOCA2LjJ6bS0zLjUtODAuOWMtMTkuNCAxMi44LTI3LjggMzMuNy0yOS45IDU2LjMgMTIuMy00LjUgMjQuNi05LjMgMzctMTAuNi01LTEyLTYuNi0yOC4xLTctNDUuN2wtLjEgMHptMS44LTQ1LjdjLS44IDE0LjMtMS44IDI4LjgtMS44IDQyLjItMTkuMi04LjEtMjkuOC05LjctNDQtMTQuMSAxMC42LTE5IDI3LjItMjUuNSA0NS44LTI4LjF6Il19LHN1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsYXN0Zm0iLGljb246WzUxMiw1MTIsW10sImYyMDIiLCJNMjI1LjggMzY3LjFsLTE4LjgtNTFzLTMwLjUgMzQtNzYuMiAzNGMtNDAuNSAwLTY5LjItMzUuMi02OS4yLTkxLjUgMC03Mi4xIDM2LjQtOTcuOSA3Mi4xLTk3LjkgNjYuNSAwIDc0LjggNTMuMyAxMDAuOSAxMzQuOSAxOC44IDU2LjkgNTQgMTAyLjYgMTU1LjQgMTAyLjYgNzIuNyAwIDEyMi0yMi4zIDEyMi04MC45IDAtNzIuOS02Mi43LTgwLjYtMTE1LTkyLjEtMjUuOC01LjktMzMuNC0xNi40LTMzLjQtMzQgMC0xOS45IDE1LjgtMzEuNyA0MS42LTMxLjcgMjguMiAwIDQzLjQgMTAuNiA0NS43IDM1LjhsNTguNi03Yy00LjctNTIuOC00MS4xLTc0LjUtMTAwLjktNzQuNS01Mi44IDAtMTA0LjQgMTkuOS0xMDQuNCA4My45IDAgMzkuOSAxOS40IDY1LjEgNjggNzYuOCA0NC45IDEwLjYgNzkuOCAxMy44IDc5LjggNDUuNyAwIDIxLjctMjEuMSAzMC41LTYxIDMwLjUtNTkuMiAwLTgzLjktMzEuMS05Ny45LTczLjktMzItOTYuOC00My42LTE2My0xNjEuMy0xNjMtODYuMSAwLTEzMS44IDU0LjUtMTMxLjggMTQ3LjIgMCA4OS4xIDQ1LjcgMTM3LjIgMTI3LjkgMTM3LjIgNjYuMiAwIDk3LjktMzEuMSA5Ny45LTMxLjF6Il19LG51cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9wd2FyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjViNSIsIk00MDMuNSA0NTUuNGMtNDIuNiAzMS43LTk0LjQgNDguNy0xNDcuNSA0OC42LTEzNy4yIDAtMjQ4LTExMS0yNDgtMjQ4IDAtMTM3LjIgMTExLTI0OCAyNDgtMjQ4IDYxLjItLjEgMTIwLjIgMjIuNiAxNjUuNyA2My41IC42IC41IC45IDEuMiAxLjEgMS45cy4xIDEuNS0uMyAyLjItLjggMS4zLTEuNSAxLjYtMS40IC41LTIuMiAuNGMtMTguOC0yLjUtMzcuNy0zLjctNTYuNy0zLjctMTI5LjQgMC0yMjIuNCA1My41LTIyMi40IDE1NS40IDAgMTA5IDkyLjEgMTQ1LjkgMTc2LjggMTc4LjcgMzMuNiAxMyA2NS40IDI1LjQgODcgNDEuNiAuNCAuMyAuOCAuOCAxLjEgMS4zcy40IDEgLjQgMS42LS4xIDEuMS0uNCAxLjYtLjYgLjktMS4xIDEuM2wtLjEgMHpNNTAzIDIzMy4xYy0uMS0uOS0uNS0xLjgtMS4zLTIuNC01MS44LTQzLTkzLjYtNjAuNS0xNDQuNS02MC41LTg0LjEgMC04MC4zIDUyLjItODAuMyA1My42IDAgNDIuNiA1Mi4xIDYyIDExMi4zIDg0LjUgMzEuMSAxMS42IDYzLjIgMjMuNiA5Mi43IDM5LjkgLjQgLjIgLjkgLjQgMS40IC40czEgMCAxLjUtLjIgLjktLjQgMS4zLS44IC42LS44IC44LTEuMmMxNC4xLTM2IDE5LjUtNzQuOCAxNi0xMTMuM3oiXX0sb3VyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsb2dnZXIiLGljb246WzQ0OCw1MTIsW10sImYzN2MiLCJNMTYyLjQgMTk2YzQuOC00LjkgNi4yLTUuMSAzNi40LTUuMSAyNy4yIDAgMjguMSAuMSAzMi4xIDIuMSA1LjggMi45IDguMyA3IDguMyAxMy42IDAgNS45LTIuNCAxMC03LjYgMTMuNC0yLjggMS44LTQuNSAxLjktMzEuMSAyLjEtMTYuNCAuMS0yOS41LS4yLTMxLjUtLjgtMTAuMy0yLjktMTQuMS0xNy43LTYuNi0yNS4zem02MS40IDk0LjVjLTUzLjkgMC01NS44IC4yLTYwLjIgNC4xLTMuNSAzLjEtNS43IDkuNC01LjEgMTMuOSAuNyA0LjcgNC44IDEwLjEgOS4yIDEyIDIuMiAxIDE0LjEgMS43IDU2LjMgMS4ybDQ3LjktLjYgOS4yLTEuNWM5LTUuMSAxMC41LTE3LjQgMy4xLTI0LjQtNS4zLTQuNy01LTQuNy02MC40LTQuN3pNNDQ3LjIgNDIwLjZjLTMuNSAyOC40LTIzIDUwLjQtNTEuMSA1Ny41LTcuMiAxLjgtOS43IDEuOS0xNzIuOSAxLjgtMTU3LjggMC0xNjUuOS0uMS0xNzItMS44LTguNC0yLjItMTUuNi01LjUtMjIuMy0xMC01LjYtMy44LTEzLjktMTEuOC0xNy0xNi40LTMuOC01LjYtOC4yLTE1LjMtMTAtMjJTMCA0MjAuMyAwIDI1Ni4zYzAtMTYzLjEgMC0xNjYuNiAxLjgtMTczLjcgNi4zLTI0LjcgMjUuOS00My42IDUxLjItNDkuMiA3LjMtMS42IDMzMi4xLTEuOSAzNDAtLjMgMjEuMiA0LjMgMzcuOSAxNy4xIDQ3LjYgMzYuNCA3LjcgMTUuMyA3LTEuNSA3LjMgMTgwLjYgLjIgMTE1LjggMCAxNjQuNS0uNyAxNzAuNXpNMzYxLjggMjM1LjRjLTEuMS01LTQuMi05LjYtNy43LTExLjUtMS4xLS42LTgtMS4zLTE1LjUtMS43LTEyLjQtLjYtMTMuOC0uOC0xNy44LTMuMS02LjItMy42LTcuOS03LjYtOC0xOC4zIDAtMjAuNC04LjUtMzkuNC0yNS4zLTU2LjUtMTItMTIuMi0yNS4zLTIwLjUtNDAuNi0yNS4xLTMuNi0xLjEtMTEuOC0xLjUtMzkuMi0xLjgtNDIuOS0uNS01Mi41IC40LTY3LjEgNi4yLTI3IDEwLjctNDYuMyAzMy40LTUzLjQgNjIuNC0xLjMgNS40LTEuNiAxNC4yLTEuOSA2NC4zLS40IDYyLjggMCA3Mi4xIDQgODQuNSA5LjcgMzAuNyAzNy4xIDUzLjQgNjQuNiA1OC40IDkuMiAxLjcgMTIyLjIgMi4xIDEzMy43IC41IDIwLjEtMi43IDM1LjktMTAuOCA1MC43LTI1LjkgMTAuNy0xMC45IDE3LjQtMjIuOCAyMS44LTM4LjUgMy4yLTEwLjkgMi45LTg4LjQgMS43LTkzLjl6Il19LGx1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlZGdlIixpY29uOls1MTIsNTEyLFtdLCJmMjgyIiwiTTEyMC4xIDM3LjRjNDEtMjUuMiA4Ny42LTM4LjIgMTM0LjktMzcuNCAxNjggMCAyNTcgMTIzLjggMjU3IDIxOS41LS4xIDMyLjctMTMgNjMuOS0zNS45IDg3LjItMjIuOSAyMy4yLTU0IDM2LjUtODYuNyAzNy03NS4yIDAtOTEuNS0yMy4xLTkxLjUtMzIgMC0zLjggMS4yLTYuMiA0LjgtOS40bDEtMS4yIC40LTEuNmMxMC41LTExLjUgMTUuOS0yNi4yIDE1LjktNDEuNiAwLTc4LjctODIuMi0xNDIuNy0xODQtMTQyLjctMzcuNS0uMy03NC41IDguOS0xMDcuNSAyNi45IDI3LTU3LjUgODIuNy05Ny42IDkxLjMtMTAzLjggLjgtLjYgLjMtLjggLjMtLjh6bTE1LjYgMzE4LjFjLTEuNCAzMCA0LjYgNjAgMTYuNCA4Ny4yIDEzLjYgMjYuNCAzMi43IDUxIDU2LjUgNjkuMy01OS41LTExLjUtMTExLjUtNDMuOS0xNDkuNC04OS4zLTM4LjEtNDYuNC01OS4yLTEwNC4zLTU5LjItMTY0LjggMC01MS4yIDYyLjQtOTQuNCAxMzYtOTQuNCAzNi42LS42IDcyLjQgMTAuOSAxMDEuOCAzMi43bC0zLjYgMS4yYy01MS41IDE3LjYtOTguNSA5MC43LTk4LjUgMTU4LjF6TTQ2OS44IDQwMGwtLjcgLjFjLTExLjggMTguOC0yNS45IDM1LjEtNDIuMiA0OS41LTMwLjggMjgtNjguMSA0NS41LTEwOC44IDQ5LjktMTguNiAuMy0zNi44LTMuMi01My44LTExLjQtMjUuNi0xMC4zLTQ3LjEtMzAtNjEuNi01My0xNC40LTIzLjktMjEuMS01MS43LTE5LTc5LjYtLjYtMjAuMSA1LjQtNDAuMyAxNS01OC4yIDEzLjkgMzMuMSAzNy41IDYxLjMgNjcuNiA4MC44czY1LjUgMjkuNSAxMDEuNCAyOC42YzMxIC4zIDYyLjEtNi43IDkwLjItMjAuNWwxLjktLjljMy45LTIuMyA3LjctMy45IDExLjYgMCA0LjUgNC45IDEuOCA5LjItMS4yIDE0LS4yIC4yLS4zIC41LS40IC43eiJdfSxjdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW94aG9zdCIsaWNvbjpbNjQwLDUxMixbXSwiZjIwOCIsIk02MTYgMTYwbC02Ny4zIDBDNTExLjIgNzAuNyA0MjIuOSA4IDMyMCA4IDE4MyA4IDcyIDExOSA3MiAyNTYgNzIgMjcyLjQgNzMuNiAyODguNSA3Ni43IDMwNEwyNCAzMDRjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0bDY3LjMgMGMzNy41IDg5LjMgMTI1LjggMTUyIDIyOC43IDE1MiAxMzcgMCAyNDgtMTExIDI0OC0yNDggMC0xNi40LTEuNi0zMi41LTQuNy00OGw1Mi43IDBjMTMuMyAwIDI0LTEwLjggMjQtMjQgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS05NiA5NmMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDAtNzUuNyAwLTE0MS42LTQyLTE3NS41LTEwNEw0MjQgMzUyYzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0bC0yOTguMiAwYy0zLjgtMTUuNC01LjgtMzEuNC01LjgtNDggMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwIDc1LjcgMCAxNDEuNiA0MiAxNzUuNSAxMDRMMjE2IDE2MGMtMTMuMyAwLTI0IDEwLjgtMjQgMjQgMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjk4LjIgMGMzLjggMTUuNCA1LjggMzEuNCA1LjggNDh6TTIxNiAyMzJsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAxMy4yLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEzLjIgMTAuNy0yNCAyNC0yNHoiXX0sZHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjaGxpeCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlYSIsIk0zNTAuNSAxNTcuN2wtNTQuMi00Ni4xIDczLjQtMzkgNzguMyA0NC4yLTk3LjUgNDAuOXpNMTkyIDEyMi4xbDQ1LjctMjguMiAzNC43IDM0LjYtNTUuNCAyOS0yNS0zNS40em0tNjUuMSA2LjZsMzEuOS0yMi4xIDE3LjIgMjguNC0zNi43IDIyLjUtMTIuNC0yOC44em0tMjMuMyA4OC4ybC04LjgtMzQuOCAyOS42LTE4LjMgMTMuMSAzNS4zLTMzLjkgMTcuOHpNODIuNCAxMzMuMmwyMy45LTE4LjEgOC45IDI0LTI2LjcgMTguMy02LjEtMjQuMnpNNTkgMjA2LjVsLTMuNi0yOC40IDIyLjMtMTUuNSA2LjEgMjguNy0yNC44IDE1LjJ6TTI4LjQgMjIzLjFsMjAuOC0xMi44IDMuMyAzMy40LTIyLjkgMTItMS4yLTMyLjZ6TTEuNCAyNjhMMjAuNiAyNTcuOCAyMSAyOTYgMCAzMDQuOCAxLjQgMjY4em01OS4xIDU5LjNsLTI4LjMgOC4zLTEuNi00Ni44IDI1LjEtMTAuNyA0LjggNDkuMnpNOTkgMjYzLjJsLTMxLjEgMTMtNS4yLTQwLjggMjcuNC0xNC40IDguOSA0Mi4yek0xMjMuMiAzNzdsLTQxLjYgNS45LTguMS02My41IDM1LjItMTAuOCAxNC41IDY4LjR6bTI4LjUtMTM5LjlsMjEuMiA1Ny4xLTQ2LjIgMTMuNi0xMy43LTU0LjEgMzguNy0xNi42em04NS43IDIzMC41bC03MC45LTMuMy0yNC4zLTk1LjggNTUuMi04LjYgNDAgMTA3Ljd6TTE1Mi41IDE4Ny45bDQyLjItMjIuNCAyOCA0NS45LTUwLjggMjEuMy0xOS40LTQ0Ljh6bTQxIDk0LjlsNjEuMy0xOC43IDUyLjggODYuNi03OS44IDExLjMtMzQuMy03OS4yem01MS40LTg1LjZsNjcuMy0yOC44IDY1LjUgNjUuNC04OC42IDI2LjItNDQuMi02Mi44eiJdfSx1dXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZC1hbmQtZCIsaWNvbjpbNTc2LDUxMixbXSwiZjM4ZCIsIk04Mi45IDk4LjljLS42LTE3LjIgMi0zMy44IDEyLjctNDguMiAuMyA3LjQgMS4yIDE0LjUgNC4yIDIxLjYgNS45LTI3LjUgMTkuNy00OS4zIDQyLjMtNjUuNS0xLjkgNS45LTMuNSAxMS44LTMgMTcuNyA4LjctNy40IDE4LjgtMTcuOCA0NC40LTIyLjcgMTQuNy0yLjggMjkuNy0yIDQyLjEgMSAzOC41IDkuMyA2MSAzNC4zIDY5LjcgNzIuMyA1LjMgMjMuMSAuNyA0NS04LjMgNjYuNC01LjIgMTIuNC0xMiAyNC40LTIwLjcgMzUuMS0yLTEuOS0zLjktMy44LTUuOC01LjYtNDIuOC00MC44LTI2LjgtMjUuMi0zNy40LTM3LjQtMS4xLTEuMi0xLTIuMi0uMS0zLjYgOC4zLTEzLjUgMTEuOC0yOC4yIDEwLTQ0LTEuMS05LjgtNC4zLTE4LjktMTEuMy0yNi4yLTE0LjUtMTUuMy0zOS4yLTE1LTUzLjUgLjYtMTEuNCAxMi41LTE0LjEgMjcuNC0xMC45IDQzLjYgLjIgMS4zIC40IDIuNyAwIDMuOS0zLjQgMTMuNy00LjYgMjcuNi0yLjUgNDEuNiAuMSAuNSAuMSAxLjEgLjEgMS42IDAgLjMtLjEgLjUtLjIgMS4xLTIxLjgtMTEtMzYtMjguMy00My4yLTUyLjItOC4zIDE3LjgtMTEuMSAzNS41LTYuNiA1NC4xLTE1LjYtMTUuMi0yMS4zLTM0LjMtMjItNTUuMnpNNTUyLjUgMjIyLjFjLTExLjYtMTEuNi0yNS0yMC40LTQwLjEtMjYuNi0xMi44LTUuMi0yNi03LjktMzkuOS03LjEtMTAgLjYtMTkuNiAzLjEtMjkgNi40LTIuNSAuOS01LjEgMS42LTcuNyAyLjItNC45IDEuMi03LjMtMy4xLTQuNy02LjggMy4yLTQuNiAzLjQtNC4yIDE1LTEyIC42LS40IDEuMi0uOCAyLjItMS41bC0yLjUgMGMtLjYgMC0xLjIgLjItMS45IC4zLTE5LjMgMy4zLTMwLjcgMTUuNS00OC45IDI5LjYtMTAuNCA4LjEtMTMuOCAzLjgtMTItLjUgMS40LTMuNSAzLjMtNi43IDUuMS0xMCAxLTEuOCAyLjMtMy40IDMuNS01LjEtLjItLjItLjUtLjMtLjctLjUtMjcgMTguMy00Ni43IDQyLjQtNTcuNyA3My4zIC4zIC4zIC43IC42IDEgLjkgLjMtLjYgLjUtMS4yIC45LTEuNyAxMC40LTEyLjEgMjIuOC0yMS44IDM2LjYtMjkuOCAxOC4yLTEwLjYgMzcuNS0xOC4zIDU4LjctMjAuMiA0LjMtLjQgOC43LS4xIDEzLjEtLjEtMS44IC43LTMuNSAuOS01LjMgMS4xLTE4LjUgMi40LTM1LjUgOS01MS41IDE4LjUtMzAuMiAxNy45LTU0LjUgNDIuMi03NS4xIDcwLjQtLjMgLjQtLjQgLjktLjcgMS4zIDE0LjUgNS4zIDI0IDE3LjMgMzYuMSAyNS42IC4yLS4xIC4zLS4yIC40LS40bDEuMi0yLjdjMTIuMi0yNi45IDI3LTUyLjMgNDYuNy03NC41IDE2LjctMTguOCAzOC0yNS4zIDYyLjUtMjAgNS45IDEuMyAxMS40IDQuNCAxNy4yIDYuOCAyLjMtMS40IDUuMS0zLjIgOC00LjcgOC40LTQuMyAxNy40LTcgMjYuNy05IDE0LjctMy4xIDI5LjUtNC45IDQ0LjUtMS4zbDAtLjVjLS41LS40LTEuMi0uOC0xLjctMS40ek0zMTcuMSAzOTcuNmMtMzkuNC0zMy0yMi44LTE5LjUtNDIuNy0zNS42LS44IC45IDAtLjItMS45IDMtMTEuMiAxOS4xLTI1LjUgMzUuMy00NCA0Ny42LTEwLjMgNi44LTIxLjUgMTEuOC0zNC4xIDExLjgtMjEuNiAwLTM4LjItOS41LTQ5LjQtMjcuOC0xMi0xOS41LTEzLjMtNDAuNy04LjItNjIuNiA3LjgtMzMuOCAzMC4xLTU1LjIgMzguNi02NC4zLTE4LjctNi4yLTMzIDEuNy00Ni40IDEzLjkgLjgtMTMuOSA0LjMtMjYuMiAxMS44LTM3LjMtMjQuMyAxMC42LTQ1LjkgMjUtNjQuOCA0My45LS4zLTUuOCA1LjQtNDMuNyA1LjYtNDQuNyAuMy0yLjctLjYtNS4zLTMtNy40LTI0LjIgMjQuNy00NC41IDUxLjgtNTYuMSA4NC42IDcuNC01LjkgMTQuOS0xMS40IDIzLjYtMTYuMi04LjMgMjIuMy0xOS42IDUyLjgtNy44IDEwMS4xIDQuNiAxOSAxMS45IDM2LjggMjQuMSA1Mi4zIDIuOSAzLjcgNi4zIDYuOSA5LjUgMTAuMyAuMi0uMiAuNC0uMyAuNi0uNS0xLjQtNy0yLjItMTQuMS0xLjUtMjEuOSAyLjIgMy4yIDMuOSA2IDUuOSA4LjYgMTIuNiAxNiAyOC43IDI3LjQgNDcuMiAzNS42IDI1IDExLjMgNTEuMSAxMy4zIDc3LjkgOC42IDU0LjktOS43IDkwLjctNDguNiAxMTYtOTguOCAxLTEuOCAuNi0yLjktLjktNC4yem0xNzItNDYuNGMtOS41LTMuMS0yMi4yLTQuMi0yOC43LTIuOSA5LjkgNCAxNC4xIDYuNiAxOC44IDEyIDEyLjYgMTQuNCAxMC40IDM0LjctNS40IDQ1LjYtMTEuNyA4LjEtMjQuOSAxMC41LTM4LjkgOS4xLTEuMi0uMS0yLjMtLjQtMy0uNiAyLjgtMy43IDYtNyA4LjEtMTAuOCA5LjQtMTYuOCA1LjQtNDIuMS04LjctNTYuMS0yLjEtMi4xLTQuNi0zLjktNy01LjktLjMgMS4zLS4xIDIuMSAuMSAyLjggNC4yIDE2LjYtOC4xIDMyLjQtMjQuOCAzMS44LTcuNi0uMy0xMy45LTMuOC0xOS42LTguNS0xOS41LTE2LjEtMzkuMS0zMi4xLTU4LjUtNDguMy01LjktNC45LTEyLjUtOC4xLTIwLjEtOC43LTQuNi0uNC05LjMtLjYtMTMuOS0uOS01LjktLjQtOC44LTIuOC0xMC40LTguNC0uOS0zLjQtMS41LTYuOC0yLjItMTAuMi0xLjUtOC4xLTYuMi0xMy0xNC4zLTE0LjItNC40LS43LTguOS0xLTEzLjMtMS41LTEzLTEuNC0xOS44LTcuNC0yMi42LTIwLjMtNSAxMS0xLjYgMjIuNCA3LjMgMjkuOSA0LjUgMy44IDkuMyA3LjMgMTMuOCAxMS4yIDQuNiAzLjggNy40IDguNyA3LjkgMTQuOCAuNCA0LjcgLjggOS41IDEuOCAxNC4xIDIuMiAxMC42IDguOSAxOC40IDE3IDI1LjEgMTYuNSAxMy43IDMzIDI3LjMgNDkuNSA0MS4xIDE3LjkgMTUgMTMuOSAzMi44IDEzIDU2LS45IDIyLjkgMTIuMiA0Mi45IDMzLjUgNTEuMiAxIC40IDIgLjYgMy42IDEuMS0xNS43LTE4LjItMTAuMS00NC4xIC43LTUyLjMgLjMgMi4yIC40IDQuMyAuOSA2LjQgOS40IDQ0LjEgNDUuNCA2NC4yIDg1IDU2LjkgMTYtMi45IDMwLjYtOC45IDQyLjktMTkuOCAyLTEuOCAzLjctNC4xIDUuOS02LjUtMTkuMyA0LjYtMzUuOCAuMS01MC45LTEwLjYgLjctLjMgMS4zLS4zIDEuOS0uMyAyMS4zIDEuOCA0MC42LTMuNCA1Ny0xNy40IDE5LjUtMTYuNiAyNi42LTQyLjkgMTcuNC02Ni04LjMtMjAuMS0yMy42LTMyLjMtNDMuOC0zOC45ek05OS44IDE3OS4zYy01LjMtOS4yLTEzLjItMTUuNi0yMi4xLTIxLjMgMTMuNy0uNSAyNi42IC4yIDM5LjYgMy43LTctMTIuMi04LjUtMjQuNy01LTM4LjcgNS4zIDExLjkgMTMuNyAyMC4xIDIzLjYgMjYuOCAxOS43IDEzLjIgMzUuNyAxOS42IDQ2LjcgMzAuMiAzLjQgMy4zIDYuMyA3LjEgOS42IDEwLjktLjgtMi4xLTEuNC00LjEtMi4yLTYtNS0xMC42LTEzLTE4LjYtMjIuNi0yNS0xLjgtMS4yLTIuOC0yLjUtMy40LTQuNS0zLjMtMTIuNS0zLTI1LjEtLjctMzcuNiAxLTUuNSAyLjgtMTAuOSA0LjUtMTYuMyAuOC0yLjQgMi4zLTQuNiA0LTYuNiAuNiA2LjkgMCAyNS41IDE5LjYgNDYgMTAuOCAxMS4zIDIyLjQgMjEuOSAzMy45IDMyLjcgOSA4LjUgMTguMyAxNi43IDI1LjUgMjYuOCAxLjEgMS42IDIuMiAzLjMgMy44IDQuNy01LTEzLTE0LjItMjQuMS0yNC4yLTMzLjgtOS42LTkuMy0xOS40LTE4LjQtMjkuMi0yNy40LTMuMy0zLTQuNi02LjctNS4xLTEwLjktMS4yLTEwLjQgMC0yMC42IDQuMy0zMC4yIC41LTEgMS4xLTIgMS45LTMuMyAuNSA0LjIgLjYgNy45IDEuNCAxMS42IDQuOCAyMy4xIDIwLjQgMzYuMyA0OS4zIDYzLjUgMTAgOS40IDE5LjMgMTkuMiAyNS42IDMxLjYgNC44IDkuMyA3LjMgMTkgNS43IDI5LjYtLjEgLjYgLjUgMS43IDEuMSAyIDYuMiAyLjYgMTAgNi45IDkuNyAxNC4zIDcuNy0yLjYgMTIuNS04IDE2LjQtMTQuNSA0LjIgMjAuMi05LjEgNTAuMy0yNy4yIDU4LjcgLjQtNC41IDUtMjMuNC0xNi41LTI3LjctNi44LTEuMy0xMi44LTEuMy0yMi45LTIuMSA0LjctOSAxMC40LTIwLjYgLjUtMjIuNC0yNC45LTQuNi01Mi44IDEuOS01Ny44IDQuNiA4LjIgLjQgMTYuMyAxIDIzLjUgMy4zLTIgNi41LTQgMTIuNy01LjggMTguOS0xLjkgNi41IDIuMSAxNC42IDkuMyA5LjYgMS4yLS45IDIuMy0xLjkgMy4zLTIuNy0zLjEgMTcuOS0yLjkgMTUuOS0yLjggMTguMyAuMyAxMC4yIDkuNSA3LjggMTUuNyA3LjMtMi41IDExLjgtMjkuNSAyNy4zLTQ1LjQgMjUuOCA3LTQuNyAxMi43LTEwLjMgMTUuOS0xNy45LTYuNSAuOC0xMi45IDEuNi0xOS4yIDIuNGwtLjMtLjljNC43LTMuNCA4LTcuOCAxMC4yLTEzLjEgOC43LTIxLjEtMy42LTM4LTI1LTM5LjktOS4xLS44LTE3LjggLjgtMjUuOSA1LjUgNi4yLTE1LjYgMTcuMi0yNi42IDMyLjYtMzQuNS0xNS4yLTQuMy04LjktMi43LTI0LjYtNi4zIDE0LjYtOS4zIDMwLjItMTMuMiA0Ni41LTE0LjYtNS4yLTMuMi00OC4xLTMuNi03MC4yIDIwLjkgNy45IDEuNCAxNS41IDIuOCAyMy4yIDQuMi0yMy44IDctNDQgMTkuNy02Mi40IDM1LjYgMS4xLTQuOCAyLjctOS41IDMuMy0xNC4zIC42LTQuNSAuOC05LjIgLjEtMTMuNi0xLjUtOS40LTguOS0xNS4xLTE5LjctMTYuMy03LjktLjktMTUuNiAuMS0yMy4zIDEuMy0uOSAuMS0xLjcgLjMtMi45IDAgMTUuOC0xNC44IDM2LTIxLjcgNTMuMS0zMy41IDYtNC41IDYuOC04LjIgMy0xNC45em0xMjguNCAyNi44YzMuMyAxNiAxMi42IDI1LjUgMjMuOCAyNC4zLTQuNi0xMS4zLTEyLjEtMTkuNS0yMy44LTI0LjN6Il19LHB1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2dWVqcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQxZiIsIk0zNTYuOSA2NC4zbC03Ni45IDAtNTYgODguNi00OC04OC42LTE3NiAwIDIyNCAzODMuNyAyMjQtMzgzLjctOTEuMSAwek01NS43IDk2LjNsNTMuOCAwIDExNC41IDE5OC4yIDExNC40LTE5OC4yIDUzLjggMC0xNjguMiAyODguMi0xNjguMy0yODguMnoiXX0sZnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1ldGEiLGljb246WzY0MCw1MTIsW10sImU0OWIiLCJNNjQwIDMxNy45YzAgOTEuMy0zOS40IDE0OC41LTExMC4zIDE0OC41LTYyLjYgMC05NS44LTM0LjYtMTU2LjktMTM2LjZsLTMxLjQtNTIuNmMtOC4zLTEyLjUtMTQuNS0yNC4yLTIxLjItMzUtMjAuMSAzMy44LTQ3LjEgODMtNDcuMSA4My02NyAxMTYuNi0xMDQuNiAxNDEuMi0xNTYuOSAxNDEuMi03Mi44IDAtMTE2LjItNTcuMy0xMTYuMi0xNDUuOSAwLTE0MyA3OS44LTI3OC4xIDE4My45LTI3OC4xIDUwLjIgMCA5My44IDI0LjcgMTQ0LjggODkuNSAzNy4xLTUwLjEgNzguMS04OS41IDEzMC42LTg5LjUgOTkuMSAwIDE4MC43IDEyNS43IDE4MC43IDI3NS41ek0yODcuNCAxOTIuMmMtNDIuOS02Mi4xLTcwLjktODAuNS0xMDQuNC04MC41LTYxLjkgMC0xMTMuOCAxMDYuMS0xMTMuOCAyMTAgMCA0OC41IDE4LjUgNzUuNyA0OS42IDc1LjcgMzAuMiAwIDQ5LTE5IDEwMy4yLTEwMy44IDAgMCAyNC43LTM5LjEgNjUuNC0xMDEuNHpNNTMxLjIgMzk3LjRjMzIuMiAwIDQ2LjktMjcuNSA0Ni45LTc0LjkgMC0xMjQuMi01NC4zLTIyNS40LTEyMy4yLTIyNS40LTMzLjIgMC02MS4xIDI1LjktOTQuOSA3OCA5LjQgMTMuOCAxOS4xIDI5IDI5LjMgNDUuNGwzNy41IDYyLjRjNTguNyA5NC4xIDczLjUgMTE0LjUgMTA0LjQgMTE0LjV6Il19LGh1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNoYXJlIixpY29uOls1MTIsNTEyLFtdLCJmNGYyIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMTAxIDEzMi40YzcuOCAwIDEzLjcgNi4xIDEzLjcgMTMuN2wwIDE4Mi41YzAgNy43LTYuMSAxMy43LTEzLjcgMTMuN2wtMTM1LjEgMGMtNy43IDAtMTMuNy02LTEzLjctMTMuN2wwLTU0LTU0IDBjLTcuOCAwLTEzLjctNi0xMy43LTEzLjdsMC0xODIuNWMwLTguMiA2LjYtMTIuNyAxMi40LTEzLjdsMTM2LjQgMGM3LjcgMCAxMy43IDYgMTMuNyAxMy43bDAgNTQgNTQgMHpNMTY3LjkgMzAwLjNsNDAuNyAwIDAtMTAxLjRjMC03LjQgNS44LTEyLjYgMTItMTMuN2w1NS44IDAgMC00MC4zLTEwOC41IDAgMCAxNTUuNHptMTc2LjItODguMWwtMTA4LjUgMCAwIDE1NS40IDEwOC41IDAgMC0xNTUuNHoiXX0sbXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dWRpb3ZpbmFyaSIsaWNvbjpbNTEyLDUxMixbXSwiZjNmOCIsIk00ODAuNyAxODcuN2w0LjIgMjggMCAyOC0yNS4xIDQ0LjEtMzkuOCA3OC40LTU2LjEgNjcuNS03OS4xIDM3LjgtMTcuNyAyNC41LTcuNyAxMi05LjYgNHMxNy4zLTYzLjYgMTkuNC02My42IDIwLjMgLjcgMjAuMyAuN2w2Ni43LTM4LjYtOTIuNSAyNi4xLTU1LjkgMzYuOC0yMi44IDI4LTYuNiAxLjQgMjAuOC03My42IDYuOS01LjUgMjAuNyAxMi45IDg4LjMtNDUuMiA1Ni44LTUxLjUgMTQuOC02OC40LTEyNS40IDIzLjMgMTUuMi0xOC4yLTE3My40LTUzLjMgODEuOS0xMC41LTE2Ni0xMjIuOSAxMTQuOSAxOC4xLTEwMS4zLTEwOCAyNTIuOSAxMjYuNi0zMS41LTM4IDEyNC40IDc0LjQtMTQzLjMtOTkgMTguNyAzOC40LTQ5LjYtMTguMS00NS41LTg0LjMgMTk0LjYgMTIyLTQyLjktNTUuOCAxMDggOTYuNCAxMi04LjktMjEtMTYuNCA0LjItMzcuOCAzNy44LTEwLjQgMjkuMiAyNC43IDExLjUgNC4yLTcgNi4yIDguNSAxMi0xMy4xIDcuNC0xMC4zIDIwLjIgMTAuNSAyMy45eiJdfSxndXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0YnVja2V0IixpY29uOls1MTIsNTEyLFs2MTgxMF0sImYxNzEiLCJNMjIuMiAzMmMtMi4xIDAtNC4yIC40LTYuMSAxLjFzLTMuNyAxLjktNS4yIDMuNC0yLjcgMy4yLTMuNSA1LjEtMS4zIDQtMS4zIDYuMWMwIC45IC4xIDEuOSAuMiAyLjhMNzQuMSA0NjIuN2MuOCA1LjEgMy40IDkuNyA3LjMgMTNzOC44IDUuMiAxNCA1LjJsMzI1LjcgMGMzLjggLjEgNy41LTEuMyAxMC41LTMuN3M0LjktNS45IDUuNS05LjdMNTA1IDUwLjdjLjctNC4yLS4zLTguNC0yLjgtMTEuOXMtNi4yLTUuNy0xMC40LTYuNGMtLjktLjEtMS45LS4yLTIuOC0uMkwyMi4yIDMyek0zMDguMSAzMjkuOGwtMTA0IDAtMjguMS0xNDcgMTU3LjMgMC0yNS4yIDE0N3oiXX0sYnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZrIixpY29uOls0NDgsNTEyLFtdLCJmMTg5IiwiTTMxLjUgNjMuNUMwIDk1IDAgMTQ1LjcgMCAyNDdMMCAyNjVDMCAzNjYuMyAwIDQxNyAzMS41IDQ0OC41UzExMy43IDQ4MCAyMTUgNDgwbDE3LjkgMGMxMDEuNCAwIDE1Mi4xIDAgMTgzLjUtMzEuNVM0NDggMzY2LjMgNDQ4IDI2NWwwLTE3LjljMC0xMDEuNCAwLTE1Mi4xLTMxLjUtMTgzLjVTMzM0LjMgMzIgMjMzIDMyTDIxNSAzMkMxMTMuNyAzMiA2MyAzMiAzMS41IDYzLjV6TTc1LjYgMTY4LjNsNTEuMSAwYzEuNyA4NS41IDM5LjQgMTIxLjcgNjkuMyAxMjkuMmwwLTEyOS4yIDQ4LjIgMCAwIDczLjdjMjkuNS0zLjIgNjAuNS0zNi44IDcwLjktNzMuN2w0OC4yIDBjLTMuOSAxOS4yLTExLjggMzcuMy0yMy4xIDUzLjNzLTI1LjcgMjkuNS00Mi41IDM5LjZjMTguNyA5LjMgMzUuMiAyMi40IDQ4LjQgMzguNXMyMi45IDM0LjkgMjguMyA1NWwtNTMgMGMtNC45LTE3LjUtMTQuOC0zMy4xLTI4LjYtNDVzLTMwLjctMTkuNC00OC43LTIxLjZsMCA2Ni42LTUuOCAwYy0xMDIuMSAwLTE2MC4zLTcwLTE2Mi44LTE4Ni41eiJdfSx4dXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0aHViIixpY29uOls1MTIsNTEyLFtdLCJmMDliIiwiTTE3My45IDM5Ny40YzAgMi0yLjMgMy42LTUuMiAzLjYtMy4zIC4zLTUuNi0xLjMtNS42LTMuNiAwLTIgMi4zLTMuNiA1LjItMy42IDMtLjMgNS42IDEuMyA1LjYgMy42em0tMzEuMS00LjVjLS43IDIgMS4zIDQuMyA0LjMgNC45IDIuNiAxIDUuNiAwIDYuMi0ycy0xLjMtNC4zLTQuMy01LjJjLTIuNi0uNy01LjUgLjMtNi4yIDIuM3ptNDQuMi0xLjdjLTIuOSAuNy00LjkgMi42LTQuNiA0LjkgLjMgMiAyLjkgMy4zIDUuOSAyLjYgMi45LS43IDQuOS0yLjYgNC42LTQuNi0uMy0xLjktMy0zLjItNS45LTIuOXpNMjUyLjggOGMtMTM4LjcgMC0yNDQuOCAxMDUuMy0yNDQuOCAyNDQgMCAxMTAuOSA2OS44IDIwNS44IDE2OS41IDIzOS4yIDEyLjggMi4zIDE3LjMtNS42IDE3LjMtMTIuMSAwLTYuMi0uMy00MC40LS4zLTYxLjQgMCAwLTcwIDE1LTg0LjctMjkuOCAwIDAtMTEuNC0yOS4xLTI3LjgtMzYuNiAwIDAtMjIuOS0xNS43IDEuNi0xNS40IDAgMCAyNC45IDIgMzguNiAyNS44IDIxLjkgMzguNiA1OC42IDI3LjUgNzIuOSAyMC45IDIuMy0xNiA4LjgtMjcuMSAxNi0zMy43LTU1LjktNi4yLTExMi4zLTE0LjMtMTEyLjMtMTEwLjUgMC0yNy41IDcuNi00MS4zIDIzLjYtNTguOS0yLjYtNi41LTExLjEtMzMuMyAyLjYtNjcuOSAyMC45LTYuNSA2OSAyNyA2OSAyNyAyMC01LjYgNDEuNS04LjUgNjIuOC04LjVzNDIuOCAyLjkgNjIuOCA4LjVjMCAwIDQ4LjEtMzMuNiA2OS0yNyAxMy43IDM0LjcgNS4yIDYxLjQgMi42IDY3LjkgMTYgMTcuNyAyNS44IDMxLjUgMjUuOCA1OC45IDAgOTYuNS01OC45IDEwNC4yLTExNC44IDExMC41IDkuMiA3LjkgMTcgMjIuOSAxNyA0Ni40IDAgMzMuNy0uMyA3NS40LS4zIDgzLjYgMCA2LjUgNC42IDE0LjQgMTcuMyAxMi4xIDEwMC0zMy4yIDE2Ny44LTEyOC4xIDE2Ny44LTIzOSAwLTEzOC43LTExMi41LTI0NC0yNTEuMi0yNDR6TTEwNS4yIDM1Mi45Yy0xLjMgMS0xIDMuMyAuNyA1LjIgMS42IDEuNiAzLjkgMi4zIDUuMiAxIDEuMy0xIDEtMy4zLS43LTUuMi0xLjYtMS42LTMuOS0yLjMtNS4yLTF6bS0xMC44LTguMWMtLjcgMS4zIC4zIDIuOSAyLjMgMy45IDEuNiAxIDMuNiAuNyA0LjMtLjcgLjctMS4zLS4zLTIuOS0yLjMtMy45LTItLjYtMy42LS4zLTQuMyAuN3ptMzIuNCAzNS42Yy0xLjYgMS4zLTEgNC4zIDEuMyA2LjIgMi4zIDIuMyA1LjIgMi42IDYuNSAxIDEuMy0xLjMgLjctNC4zLTEuMy02LjItMi4yLTIuMy01LjItMi42LTYuNS0xem0tMTEuNC0xNC43Yy0xLjYgMS0xLjYgMy42IDAgNS45czQuMyAzLjMgNS42IDIuM2MxLjYtMS4zIDEuNi0zLjkgMC02LjItMS40LTIuMy00LTMuMy01LjYtMnoiXX0sdnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvZGllcGllIixpY29uOls1MTIsNTEyLFtdLCJmMjg0IiwiTTQ0Mi41IDIwMi45YzMwLjcgMCAzMy41IDUzLjEtLjMgNTMuMWwtMTAuOCAwIDAgNDQuMy0yNi42IDAgMC05Ny40IDM3LjcgMHpNNDkyIDM1Mi42QzQ0OS45IDQ0NC41IDM3MC40IDUwNCAyNjggNTA0IDEzMSA1MDQgMjAgMzkzIDIwIDI1NlMxMzEgOCAyNjggOGM5Ny40IDAgMTcyLjggNTMuNyAyMTguMiAxMzguNEwzMDAuMiAyNTUuMiA0OTIgMzUyLjZ6bS0zOC41IDEyLjVsLTYwLjMtMzAuN2MtMjcuMSA0NC4zLTcwLjQgNzEuNC0xMjIuNCA3MS40LTgyLjUgMC0xNDkuMi02Ni43LTE0OS4yLTE0OC45IDAtODIuNSA2Ni43LTE0OS4yIDE0OS4yLTE0OS4yIDQ4LjQgMCA4OC45IDIzLjUgMTE2LjkgNjMuNGw1OS41LTM0LjZDNDA2LjUgNzMuOSAzNDIuNSAzNi41IDI2OCAzNi41IDE0Ni44IDM2LjUgNDguNSAxMzQuOCA0OC41IDI1NlMxNDYuOCA0NzUuNSAyNjggNDc1LjVjNzguNiAwIDE0Ni41LTQyLjEgMTg1LjUtMTEwLjR6Il19LHl1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyIixpY29uOls0NDgsNTEyLFtdLCJmMmFlIiwiTTQ0MC4yIDIzLjJjLTI2LjcgNi44LTY4LjEgMjguNS0xMTQuNiA2Ny41LTMwLjktMTcuNS02NS44LTI2LjctMTAxLjQtMjYuNy0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOCAyMDgtOTMuMSAyMDgtMjA4Yy4xLTU0LjEtMjEtMTA2LjEtNTguNy0xNDQuOC02LjYgOC41LTEyLjMgMTcuNy0xNyAyNy40IDI4LjkgMzIuMyA0NC44IDc0LjEgNDQuOSAxMTcuNCAwIDk3LjctNzkuNCAxNzcuMS0xNzcuMSAxNzcuMS0zMC44IDAtNjEtOC4xLTg3LjYtMjMuNCA4Mi45LTEwNy4zIDE1MC44LTM3LjggMTg0LjMtMjI2LjYgNS44LTMyLjYgMjgtOTQuMyAxMjYuMi0xNjAuMiA4LjEtNS40IDIuNC0xOC4xLTctMTUuN3pNMTA5LjMgNDA2LjRDODkuOCAzODkuOCA3NC4yIDM2OS4yIDYzLjUgMzQ2cy0xNi4zLTQ4LjUtMTYuMy03NGMwLTk3LjcgNzkuNC0xNzcuMSAxNzcuMS0xNzcuMSAyNi42IDAgNTIuOCA2LjEgNzYuNiAxNy44LTY2IDYyLjEtMTI2LjkgMTUyLjktMTkxLjYgMjkzLjh6Il19LHd1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyYXNwYmVycnktcGkiLGljb246WzQ0OCw1MTIsW10sImY3YmIiLCJNMzkyLjUgMjMyLjVsLTMuNy02LjVjLjEtNDYuNC0yMS40LTY1LjMtNDYuNS03OS43IDcuNi0yIDE1LjQtMy42IDE3LjYtMTMuMiAxMy4xLTMuMyAxNS44LTkuNCAxNy4xLTE1LjggMy40LTIuMyAxNC44LTguNyAxMy42LTE5LjcgNi40LTQuNCAxMC0xMC4xIDguMS0xOC4xIDYuOS03LjUgOC43LTEzLjcgNS44LTE5LjQgOC4zLTEwLjMgNC42LTE1LjYgMS4xLTIwLjkgNi4yLTExLjIgLjctMjMuMi0xNi42LTIxLjItNi45LTEwLjEtMjEuOS03LjgtMjQuMi03LjgtMi42LTMuMi02LTYtMTYuNS00LjctNi44LTYuMS0xNC40LTUtMjIuMy0yLjEtOS4zLTcuMy0xNS41LTEuNC0yMi42IC44LTExLjMtMy42LTEzLjkgMS4zLTE5LjQgMy40LTEyLjMtMi42LTE2LjEgMy0yMiA4LjlsLTYuOS0uMWMtMTguNiAxMC44LTI3LjggMzIuOC0zMS4xIDQ0LjEtMy4zLTExLjMtMTIuNS0zMy4zLTMxLjEtNDQuMWwtNi45IC4xYy01LjktNS45LTkuNy0xMS41LTIyLTguOS01LjYtMi04LjEtNy0xOS40LTMuNC00LjYtMS40LTguOS00LjQtMTMuOS00LjMtMi42IC4xLTUuNSAxLTguNyAzLjUtNy45LTMtMTUuNS00LTIyLjMgMi4xLTEwLjUtMS4zLTE0IDEuNC0xNi41IDQuNy0yLjMgMC0xNy4zLTIuMy0yNC4yIDcuOC0xNy4zLTItMjIuNyAxMC0xNi41IDIxLjItMy41IDUuNC03LjIgMTAuNyAxLjEgMjAuOS0yLjkgNS43LTEuMSAxMS45IDUuOCAxOS40LTEuOCA4IDEuOCAxMy43IDguMSAxOC4xLTEuMiAxMSAxMC4yIDE3LjQgMTMuNiAxOS43IDEuMyA2LjQgNCAxMi40IDE3LjEgMTUuOCAyLjIgOS41IDEwIDExLjIgMTcuNiAxMy4yLTI1LjEgMTQuNC00Ni42IDMzLjMtNDYuNSA3OS43bC0zLjcgNi41Yy0yOC44IDE3LjItNTQuNyA3Mi43LTE0LjIgMTE3LjcgMi42IDE0LjEgNy4xIDI0LjIgMTEgMzUuNCA1LjkgNDUuMiA0NC41IDY2LjMgNTQuNiA2OC44IDE0LjkgMTEuMiAzMC44IDIxLjggNTIuMiAyOS4yIDIwLjMgMjAuNiA0Mi4zIDI4LjQgNjQuMyAyOC40bDEgMGMyMi4xIDAgNDQtNy44IDY0LjItMjguNCAyMS41LTcuNCAzNy4zLTE4IDUyLjItMjkuMiAxMC4yLTIuNSA0OC43LTIzLjYgNTQuNi02OC44IDMuOS0xMS4yIDguNC0yMS4zIDExLTM1LjQgNDAuNi00NS4xIDE0LjctMTAwLjUtMTQtMTE3Ljd6bS0yMi4yLThjLTEuNSAxOC43LTk4LjktNjUuMS04Mi4xLTY3LjkgNDUuNy03LjUgODMuNiAxOS4yIDgyLjEgNjcuOXptLTQzIDkzLjFjLTI0LjUgMTUuOC01OS44IDUuNi03OC44LTIyLjhzLTE0LjYtNjQuMiA5LjktODAgNTkuOC01LjYgNzguOCAyMi44IDE0LjYgNjQuMi05LjkgODB6TTI1OS40IDI5LjNjLjggNC4yIDEuOCA2LjggMi45IDcuNiA1LjQtNS44IDkuOC0xMS43IDE2LjgtMTcuMyAwIDMuMy0xLjcgNi44IDIuNSA5LjQgMy43LTUgOC44LTkuNSAxNS41LTEzLjMtMy4yIDUuNi0uNiA3LjMgMS4yIDkuNiA1LjEtNC40IDEwLTguOCAxOS40LTEyLjMtMi42IDMuMS02LjIgNi4yLTIuNCA5LjggNS4zLTMuMyAxMC42LTYuNiAyMy4xLTguOS0yLjggMy4xLTguNyA2LjMtNS4xIDkuNCA2LjYtMi41IDE0LTQuNCAyMi4xLTUuNC0zLjkgMy4yLTcuMSA2LjMtMy45IDguOCA3LjEtMi4yIDE2LjktNS4xIDI2LjQtMi42bC02IDYuMWMtLjcgLjggMTQuMSAuNiAyMy45IC44LTMuNiA1LTcuMiA5LjctOS4zIDE4LjIgMSAxIDUuOCAuNCAxMC40IDAtNC43IDkuOS0xMi44IDEyLjMtMTQuNyAxNi42IDIuOSAyLjIgNi44IDEuNiAxMS4yIC4xLTMuNCA2LjktMTAuNCAxMS43LTE2IDE3LjMgMS40IDEgMy45IDEuNiA5LjcgLjktNS4yIDUuNS0xMS40IDEwLjUtMTguOCAxNSAxLjMgMS41IDUuOCAxLjUgMTAgMS42LTYuNyA2LjUtMTUuMyA5LjktMjMuNCAxNC4yIDQgMi43IDYuOSAyLjEgMTAgMi4xLTUuNyA0LjctMTUuNCA3LjEtMjQuNCAxMCAxLjcgMi43IDMuNCAzLjQgNy4xIDQuMS05LjUgNS4zLTIzLjIgMi45LTI3IDUuNiAuOSAyLjcgMy42IDQuNCA2LjcgNS44LTE1LjQgLjktNTcuMy0uNi02NS40LTMyLjMgMTUuNy0xNy4zIDQ0LjQtMzcuNSA5My43LTYyLjYtMzguNCAxMi44LTczIDMwLTEwMiA1My41LTM0LjMtMTUuOS0xMC44LTU1LjkgNS44LTcxLjh6TTIyNSAxNDMuOWMyNC4yLS4zIDU0LjEgMTcuOCA1NCAzNC43LS4xIDE1LTIxIDI3LjEtNTMuOCAyNi45LTMyLjEtLjQtNTMuNy0xNS4yLTUzLjYtMjkuOCAwLTExLjkgMjYuMi0zMi41IDUzLjQtMzEuOHpNMTAyIDEzMS4xYzMuNy0uNyA1LjQtMS41IDcuMS00LjEtOS0yLjgtMTguNy01LjMtMjQuNC0xMCAzLjEgMCA2IC43IDEwLTIuMS04LjEtNC4zLTE2LjctNy43LTIzLjQtMTQuMiA0LjItLjEgOC43IDAgMTAtMS42LTcuNC00LjUtMTMuNi05LjUtMTguOC0xNSA1LjggLjcgOC4zIC4xIDkuNy0uOS01LjYtNS42LTEyLjctMTAuNC0xNi0xNy4zIDQuMyAxLjUgOC4zIDIgMTEuMi0uMS0xLjktNC4yLTEwLTYuNy0xNC43LTE2LjYgNC42IC40IDkuNCAxIDEwLjQgMC0yLjEtOC41LTUuOC0xMy4zLTkuMy0xOC4yIDkuOC0uMSAyNC42IDAgMjMuOS0uOGwtNi02LjFjOS41LTIuNSAxOS4zIC40IDI2LjQgMi42IDMuMi0yLjUtLjEtNS42LTMuOS04LjggOC4xIDEuMSAxNS40IDIuOSAyMi4xIDUuNCAzLjUtMy4xLTIuMy02LjMtNS4xLTkuNCAxMi41IDIuMyAxNy44IDUuNiAyMy4xIDguOSAzLjgtMy42IC4yLTYuNy0yLjQtOS44IDkuNCAzLjQgMTQuMyA3LjkgMTkuNCAxMi4zIDEuNy0yLjMgNC40LTQgMS4yLTkuNiA2LjcgMy44IDExLjggOC4zIDE1LjUgMTMuMyA0LjEtMi42IDIuNS02LjIgMi41LTkuNCA3IDUuNiAxMS40IDExLjUgMTYuOCAxNy4zIDEuMS0uOCAyLTMuNCAyLjktNy42IDE2LjYgMTUuOSA0MC4xIDU1LjkgNiA3MS44LTI5LTIzLjUtNjMuNi00MC43LTEwMi01My41IDQ5LjMgMjUgNzggNDUuMyA5My43IDYyLjYtOCAzMS44LTUwIDMzLjItNjUuNCAzMi4zIDMuMS0xLjQgNS44LTMuMiA2LjctNS44LTQtMi44LTE3LjYtLjQtMjcuMi01LjZ6bTYwLjEgMjQuMWMxNi44IDIuOC04MC42IDg2LjUtODIuMSA2Ny45LTEuNS00OC43IDM2LjUtNzUuNSA4Mi4xLTY3Ljl6TTU4LjcgMzQyYy0yMy43LTE4LjgtMzEuMy03My43IDEyLjYtOTguMyAyNi41LTcgOSAxMDcuOC0xMi42IDk4LjN6bTkxIDk4LjJjLTEzLjMgNy45LTQ1LjggNC43LTY4LjgtMjcuOS0xNS41LTI3LjQtMTMuNS01NS4yLTIuNi02My40IDE2LjMtOS44IDQxLjUgMy40IDYwLjkgMjUuNiAxNi45IDIwIDI0LjYgNTUuMyAxMC41IDY1Ljd6TTEyMy4zIDMyMC41Yy0yNC41LTE1LjgtMjguOS01MS42LTkuOS04MHM1NC4zLTM4LjYgNzguOC0yMi44IDI4LjkgNTEuNiA5LjkgODBjLTE5LjEgMjguNC01NC40IDM4LjYtNzguOCAyMi44ek0yMjUuNSA0OTZjLTI5LjQgMS4yLTU4LjItMjMuNy01Ny44LTMyLjMtLjQtMTIuNyAzNS44LTIyLjYgNTkuMy0yMiAyMy43LTEgNTUuNiA3LjUgNTUuNyAxOC45IC41IDExLTI4LjggMzUuOS01Ny4yIDM1LjR6bTU4LjktMTI0LjljLjIgMjkuNy0yNi4yIDUzLjgtNTguOCA1NHMtNTkuMi0yMy44LTU5LjQtNTMuNGwwLS42Yy0uMi0yOS43IDI2LjItNTMuOCA1OC44LTU0czU5LjIgMjMuOCA1OS40IDUzLjRsMCAuNnptODIuMiA0Mi43Yy0yNS4zIDM0LjYtNTkuNiAzNS45LTcyLjMgMjYuMy0xMy4zLTEyLjQtMy4yLTUwLjkgMTUuMS03MiAyMC45LTIzLjMgNDMuMy0zOC41IDU4LjktMjYuNiAxMC41IDEwLjMgMTYuNyA0OS4xLTEuNyA3Mi4zem0yMi45LTczLjJjLTIxLjUgOS40LTM5LTEwNS4zLTEyLjYtOTguMyA0My45IDI0LjcgMzYuMyA3OS42IDEyLjYgOTguM3oiXX0sa3VyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzczMiLGljb246WzUxMiw1MTIsW10sImYxM2MiLCJNNDgwIDMybC02NCAzNjgtMjIzLjMgODAtMTkyLjctODAgMTkuNi05NC44IDgyIDAtOCA0MC42IDExNi40IDQ0LjQgMTM0LjEtNDQuNCAxOC44LTk3LjEtMzMzLjQgMCAxNi04MiAzMzMuNyAwIDEwLjUtNTIuNy0zMzMuNCAwIDE2LjMtODIgNDA3LjQgMHoiXX0sU3VyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imh1YnNwb3QiLGljb246WzQ0OCw1MTIsW10sImYzYjIiLCJNMjM1LjggMjExLjZjLTI1LjEgMjMuNy00MC44IDU3LjMtNDAuOCA5NC42IDAgMjkuMyA5LjcgNTYuMyAyNiA3OEwxNzEuNSA0MzRjLTQuNC0xLjYtOS4xLTIuNS0xNC0yLjUtMTAuOCAwLTIwLjkgNC4yLTI4LjUgMTEuOHMtMTEuOCAxNy44LTExLjggMjguNiA0LjIgMjAuOSAxMS44IDI4LjUgMTcuOCAxMS42IDI4LjUgMTEuNmMxMC44IDAgMjAuOS0zLjkgMjguNi0xMS42IDcuNi03LjYgMTEuOC0xNy44IDExLjgtMjguNSAwLTQuMi0uNi04LjItMS45LTEyLjFsNTAtNTAuMmMyMiAxNi45IDQ5LjQgMjYuOSA3OS4zIDI2LjkgNzEuOSAwIDEzMC01OC4zIDEzMC0xMzAuMiAwLTY1LjItNDcuNy0xMTkuMi0xMTAuMi0xMjguN2wwLTYxLjZjMTcuNS03LjQgMjguMi0yMy44IDI4LjItNDIuOSAwLTI2LjEtMjAuOS00Ny45LTQ3LTQ3LjlTMjc5LjYgNDcgMjc5LjYgNzMuMWMwIDE5LjEgMTAuNyAzNS41IDI4LjIgNDIuOWwwIDYxLjJjLTE1LjIgMi4xLTI5LjYgNi43LTQyLjcgMTMuNi0yNy42LTIwLjktMTE3LjUtODUuNy0xNjguOS0xMjQuOCAxLjItNC40IDItOSAyLTEzLjggMC0yOC44LTIzLjUtNTIuMi01Mi40LTUyLjItMjguOCAwLTUyLjIgMjMuNC01Mi4yIDUyLjIgMCAyOC45IDIzLjQgNTIuMyA1Mi4yIDUyLjMgOS44IDAgMTguOS0yLjkgMjYuOC03LjZMMjM1LjggMjExLjZ6bTg5LjUgMjUuNmE2OSA2OSAwIDEgMSAwIDEzOCA2OSA2OSAwIDEgMSAwLTEzOHoiXX0sTXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNtcGxpZCIsaWNvbjpbNjQwLDUxMixbXSwiZTM2MCIsIk0yMjYuMSAzODguMmMwLS43LS4yLTEuNS0uNi0yLjFzLTEtMS4xLTEuNy0xLjRjLS41LS4yLTEuMS0uNC0xLjYtLjRsLTE0OS42IDBjLTMuMSAwLTYuMi0uOC04LjktMi4ycy01LjEtMy41LTYuOS02LjEtMi45LTUuNS0zLjMtOC42IDAtNi4yIDEuMS05LjFMODEuNiAyNTUuN2MyLTcuMiA2LjItMTMuNSAxMi0xOC4yczEyLjktNy40IDIwLjQtNy44bDE0OC42IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuNC0xIC4zLTItLjEtMi45cy0xLjItMS42LTIuMS0yYy0uNC0uMi0uOS0uMy0xLjQtLjMtLjEgMC0uMSAwLS4yIDBsLTE0OC41IDBjLTIyLjIgMS4yLTQzLjQgOS4yLTYwLjggMjNzLTMwIDMyLjctMzYuMiA1NC4xTDMuNSAzNTguOGMtMy4yIDguNy00LjIgMTgtMyAyNy4xczQuNiAxNy45IDkuOSAyNS41IDEyLjMgMTMuOCAyMC41IDE4IDE3LjMgNi41IDI2LjUgNi42YzEgMCAxLjkgMCAyLjktLjFsMTQ4LjYgMGMxLjUtLjEgMi45LS43IDQtMS42czItMi4yIDIuNC0zLjZsMTAuNy00MS4xYy4yLS41IC4zLS45IC4zLTEuNHptODAuNS0zMDdjLjItLjQgLjMtLjkgLjMtMS40IDAtLjUtLjEtMS0uMy0xLjVzLS41LS45LS44LTEuMi0uOC0uNi0xLjItLjgtMS0uMy0xLjUtLjNsLTQxLjIgMGMtMS41IC4xLTIuOSAuNi00IDEuNnMtMiAyLjItMi40IDMuNmwtMjEuMyA4MC45IDUxLjEgMCAyMS40LTgwLjl6bS0xMjYuMyAyODdsNTEuMSAwIDMyLTEyMi42LTUxLjEgMC0zMiAxMjIuNnpNNTExLjkgNzkuN2MwLTEtLjUtMS45LTEuMi0yLjZzLTEuNy0xLjEtMi42LTEuMWMtLjEgMC0uMSAwLS4yIDBsLTQxIDBjLTEuNSAuMS0yLjkgLjYtNC4xIDEuNXMtMiAyLjItMi41IDMuNkwzNjguOSA0MzAuNmMtLjIgLjQtLjMgLjktLjMgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjIgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNTExLjUgODEuMmMuMi0uNSAuMy0xIC4zLTEuNXpNMzI0LjYgMzg0LjVsLTQxIDBjLTEuNSAuMS0yLjkgLjctNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTEwLjcgNDEuMWMtLjIgLjQtLjMgLjktLjMgMS40IDAgLjUgLjEgMSAuMyAxLjVzLjUgLjkgLjggMS4yIC44IC42IDEuMiAuOCAxIC4zIDEuNSAuM2MuMSAwIC4yIDAgLjMgMGw0MC45IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuMi0uNiAuMy0xLjIgLjMtMS44cy0uMy0xLjItLjYtMS43LS44LS45LTEuMy0xLjItMS4yLS40LTEuOC0uNGMtLjEgMC0uMiAwLS4zIDBsMCAwek02MzYgNzYuMWwtNDEgMGMtMS41IC4xLTIuOSAuNi00IDEuNXMtMiAyLjItMi40IDMuNkw0OTcuMSA0MzAuNmMtLjIgLjQtLjIgLjktLjIgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjEgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNjM5LjcgODEuMmMuMi0uNSAuMy0xIC4zLTEuNS0uMS0xLS41LTEuOS0xLjItMi41cy0xLjYtMS0yLjYtMWMtLjEgMC0uMSAwLS4yIDBsMC0uMXpNMzcxLjYgMjI1LjJsMTAuOC00MS4xYy4yLS40IC4yLS45IC4yLTEuNCAwLTEtLjQtMi0xLjEtMi43cy0xLjctMS4xLTIuNy0xLjFsLTQxLjMgMGMtMS41IC4xLTIuOSAuNy00IDEuNnMtMiAyLjItMi40IDMuNmwtMTAuOCA0MS4xYy0uMiAuNS0uMyAxLS4zIDEuNWwwIC4yYy4xIDEgLjUgMS44IDEuMiAyLjVzMS42IDEgMi42IDFjLjEgMCAuMiAwIC4zIDBsNDEuMSAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNnoiXX0sQ3VyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImR5YWxvZyIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5OSIsIk0xNiAzMmwwIDExOS4yIDY0IDAgMC01NS4yIDEwNy4yIDBDMzAwLjYgOTYgMzY4IDE3Ni4yIDM2OCAyNTUuOSAzNjggMzMyIDMwOS40IDQxNiAxODcuMiA0MTZsLTE3MS4yIDAgMCA2NCAxNzEuMiAwQzM0Ny45IDQ4MCA0MzIgMzY3LjMgNDMyIDI1NS45IDQzMiAxOTcuMiA0MDkuOSAxNDIuNSAzNjkuNyAxMDEuNiAzMjQuOSA1NiAyNjEuNyAzMiAxODcuMiAzMkwxNiAzMnoiXX0senVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVsZW1lbnRvciIsaWNvbjpbNTEyLDUxMixbXSwiZjQzMCIsIk0uNSAyNTZjMCAxNDEgMTEzLjYgMjU1IDI1NC42IDI1NSAxNDIgMCAyNTYtMTE0IDI1Ni0yNTUgMC0xNDAtMTE0LTI1My45LTI1Ni0yNTMuOS0xNDEgMC0yNTQuNiAxMTMuOS0yNTQuNiAyNTMuOXpNMTkyLjEgMTUwbDAgMjEzLTQzIDAgMC0yMTMgNDMgMHptNDIgMGwxMjggMCAwIDQzLTEyOCAwIDAtNDN6bTEyOCA4NWwwIDQzLTEyOCAwIDAtNDMgMTI4IDB6bS0xMjggODVsMTI4IDAgMCA0My0xMjggMCAwLTQzeiJdfSxfdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3Qtb3JkZXIiLGljb246WzQ0OCw1MTIsW10sImYyYjAiLCJNMTMuMyAyMjkuMmMuMS0uMSAuMi0uMyAuMy0uNCAwIC4xIDAgLjMtLjEgLjRsLS4yIDB6TTIyNC40IDk2LjZjLTcuMSAwLTE0LjYgLjYtMjEuNCAxLjdsMy43IDY3LjQtMjItNjRjLTE0LjMgMy43LTI3LjcgOS40LTQwIDE2LjZsMjkuNCA2MS40LTQ1LjEtNTAuOWMtMTEuNCA4LjktMjEuNyAxOS4xLTMwLjYgMzAuOWw1MC42IDQ1LjQtNjEuMS0yOS43Yy03LjEgMTIuMy0xMi45IDI1LjctMTYuNiA0MGw2NC4zIDIyLjYtNjgtNGMtLjkgNy4xLTEuNCAxNC42LTEuNCAyMnMuNiAxNC42IDEuNCAyMS43bDY3LjctNC02NCAyMi42YzMuNyAxNC4zIDkuNCAyNy43IDE2LjYgNDAuM0wxNDkgMzA2LjkgOTguMSAzNTJjOC45IDExLjcgMTkuMSAyMi4zIDMwLjkgMzAuOWw0NC45LTUwLjktMjkuNSA2MS40YzEyLjMgNy40IDI1LjcgMTMuMSA0MCAxNi45bDIyLjMtNjQuNi00IDY4YzcuMSAxLjEgMTQuNiAxLjcgMjEuNyAxLjcgNy40IDAgMTQuNi0uNiAyMS43LTEuN2wtNC02OC42IDIyLjYgNjUuMWMxNC4zLTQgMjcuNy05LjQgNDAtMTYuOWwtMjkuNC02MS4zIDQ0LjkgNTAuOWMxMS43LTguOSAyMi0xOS4xIDMwLjYtMzAuOWwtNTAuNi00NS4xIDYxLjEgMjkuNGM3LjEtMTIuMyAxMi45LTI1LjcgMTYuNi00MC4zbC02NC0yMi4zIDY3LjQgNGMxLjEtNy4xIDEuNC0xNC4zIDEuNC0yMS43cy0uMy0xNC45LTEuNC0yMmwtNjcuNyA0IDY0LTIyLjNjLTMuNy0xNC4zLTkuMS0yOC0xNi42LTQwLjNsLTYwLjkgMjkuNyA1MC42LTQ1LjRjLTguOS0xMS43LTE5LjEtMjItMzAuNi0zMC45bC00NS4xIDUwLjkgMjkuNC02MS4xYy0xMi4zLTcuNC0yNS43LTEzLjEtNDAtMTYuOWwtMjIuMyA2NC4zIDQtNjcuN2MtNy4xLTEuMi0xNC4zLTEuNy0yMS43LTEuN3pNNDQzLjggMTI4TDQ0My44IDM4NCAyMjQuNCA1MTIgNSAzODQgNSAxMjggMjI0LjQgMCA0NDMuOCAxMjh6bS0xNy4xIDEwLjNsLTIwMi4zLTExNy40LTIwMi4zIDExNy40IDAgMjM1LjEgMjAyLjMgMTE3LjcgMjAyLjMtMTE3LjcgMC0yMzUuMXpNMjI0LjQgMzcuMWwxODcuNyAxMDkuNCAwIDIxOC45LTE4Ny43IDEwOS41LTE4Ny43LTEwOS41IDAtMjE4LjggMTg3LjctMTA5LjV6bTAgNTAuOWMtOTIuMyAwLTE2Ni45IDc1LjEtMTY2LjkgMTY4IDAgOTIuNiA3NC42IDE2Ny43IDE2Ni45IDE2Ny43IDkyIDAgMTY2LjktNzUuMSAxNjYuOS0xNjcuNyAwLTkyLjktNzQuOS0xNjgtMTY2LjktMTY4eiJdfSxUdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJpYmJibGUiLGljb246WzUxMiw1MTIsW10sImYxN2QiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MjAgMTIyLjRjMjkuNSAzNiA0Ny40IDgyIDQ3LjggMTMyLTctMS41LTc3LTE1LjctMTQ3LjUtNi44LTUuOC0xNC0xMS4yLTI2LjQtMTguNi00MS42IDc4LjMtMzIgMTEzLjgtNzcuNSAxMTguMy04My41ek0zOTYuNCA5Ny45Yy0zLjggNS40LTM1LjcgNDguMy0xMTEgNzYuNS0zNC43LTYzLjgtNzMuMi0xMTYuMi03OS0xMjQgNjcuMi0xNi4yIDEzOCAxLjMgMTkwLjEgNDcuNXpNMTY1LjkgNjQuNmM1LjYgNy43IDQzLjQgNjAuMSA3OC41IDEyMi41LTk5LjEgMjYuMy0xODYuNCAyNS45LTE5NS44IDI1LjggMTMuNy02NS43IDU4LTEyMC40IDExNy4zLTE0OC4zek00NC4yIDI1Ni4zYzAtMi4yIDAtNC4zIC4xLTYuNSA5LjMgLjIgMTExLjkgMS41IDIxNy43LTMwLjEgNi4xIDExLjkgMTEuOSAyMy45IDE3LjIgMzUuOS03Ni42IDIxLjYtMTQ2LjIgODMuNS0xODAuNSAxNDIuMy0zMy44LTM3LjYtNTQuNS04Ny4yLTU0LjUtMTQxLjZ6TTEyNiA0MjMuNGMyMi4xLTQ1LjIgODIuMi0xMDMuNiAxNjcuNi0xMzIuOCAyOS43IDc3LjMgNDIgMTQyLjEgNDUuMiAxNjAuNi02OC4xIDI5LTE1MCAyMS4xLTIxMi44LTI3Ljl6bTI0OC40IDguNWMtMi4yLTEyLjktMTMuNC03NC45LTQxLjItMTUxIDY2LjQtMTAuNiAxMjQuNyA2LjggMTMxLjkgOS4xLTkuNCA1OC45LTQzLjMgMTA5LjgtOTAuOCAxNDJ6Il19LFozZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rZWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjA4YyIsIk00MTYgMzJMMzEuOSAzMkMxNC4zIDMyIDAgNDYuNSAwIDY0LjNMMCA0NDcuN0MwIDQ2NS41IDE0LjMgNDgwIDMxLjkgNDgwTDQxNiA0ODBjMTcuNiAwIDMyLTE0LjUgMzItMzIuM2wwLTM4My40QzQ0OCA0Ni41IDQzMy42IDMyIDQxNiAzMnpNMTM1LjQgNDE2bC02Ni40IDAgMC0yMTMuOCA2Ni41IDAgMCAyMTMuOC0uMSAwek0xMDIuMiA5NmEzOC41IDM4LjUgMCAxIDEgMCA3NyAzOC41IDM4LjUgMCAxIDEgMC03N3pNMzg0LjMgNDE2bC02Ni40IDAgMC0xMDRjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOWwwIDEwNS44LTY2LjQgMCAwLTIxMy44IDYzLjcgMCAwIDI5LjIgLjkgMGM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOWwwIDExNy4yeiJdfSxMdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtcGF5cGFsIixpY29uOls1NzYsNTEyLFtdLCJmMWY0IiwiTTE4Ni4zIDI1OC4yYzAgMTIuMi05LjcgMjEuNS0yMiAyMS41LTkuMiAwLTE2LTUuMi0xNi0xNSAwLTEyLjIgOS41LTIyIDIxLjctMjIgOS4zIDAgMTYuMyA1LjcgMTYuMyAxNS41ek04MC41IDIwOS43bC00LjcgMGMtMS41IDAtMyAxLTMuMiAyLjdsLTQuMyAyNi43IDguMi0uM2MxMSAwIDE5LjUtMS41IDIxLjUtMTQuMiAyLjMtMTMuNC02LjItMTQuOS0xNy41LTE0Ljl6bTI4NCAwbC00LjUgMGMtMS44IDAtMyAxLTMuMiAyLjdsLTQuMiAyNi43IDgtLjNjMTMgMCAyMi0zIDIyLTE4LS4xLTEwLjYtOS42LTExLjEtMTguMS0xMS4xek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjguMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGwtNDAgMGMtMi41IDAtNSAyLTUuMiA0LjdMMzIgMjk0LjJjLS4zIDIgMS4yIDQgMy4yIDRsMTkgMGMyLjcgMCA1LjItMi45IDUuNS01LjdsNC41LTI2LjZjMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjYgMCA0Ni4xLTE3IDQ2LjEtNDUuOHptODQuMiA4LjhsLTE5IDBjLTMuOCAwLTQgNS41LTQuMiA4LjItNS44LTguNS0xNC4yLTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOSAwIDIwLjItNC45IDI2LjUtMTEuOS0uNSAxLjUtMSA0LjctMSA2LjIgMCAyLjMgMSA0IDMuMiA0bDE3LjIgMGMyLjcgMCA1LTIuOSA1LjUtNS43bDEwLjItNjQuM2MuMy0xLjktMS4yLTMuOS0zLjItMy45ek0yNTMgMzIyLjFsNjMuNy05Mi42Yy41LS41IC41LTEgLjUtMS43IDAtMS43LTEuNS0zLjUtMy4yLTMuNWwtMTkuMiAwYy0xLjcgMC0zLjUgMS00LjUgMi41bC0yNi41IDM5LTExLTM3LjVjLS44LTIuMi0zLTQtNS41LTRsLTE4LjcgMGMtMS43IDAtMy4yIDEuOC0zLjIgMy41IDAgMS4yIDE5LjUgNTYuOCAyMS4yIDYyLjEtMi43IDMuOC0yMC41IDI4LjYtMjAuNSAzMS42IDAgMS44IDEuNSAzLjIgMy4yIDMuMmwxOS4yIDBjMS44LS4xIDMuNS0xLjEgNC41LTIuNnpNNDEyLjMgMjE1LjRjMC0yMS0xNi4yLTI4LTM0LjctMjhsLTM5LjcgMGMtMi43IDAtNS4yIDItNS41IDQuN2wtMTYuMiAxMDJjLS4yIDIgMS4zIDQgMy4yIDRsMjAuNSAwYzIgMCAzLjUtMS41IDQtMy4ybDQuNS0yOWMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNCAwIDQ1LjktMTcgNDUuOS00NS44em04NC4yIDguOGwtMTkgMGMtMy44IDAtNCA1LjUtNC4zIDguMi01LjUtOC41LTE0LTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOS4zIDAgMjAuNS00LjkgMjYuNS0xMS45LS4zIDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRsMTcuMyAwYzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6TTU0NCAxOTAuOWMwLTItMS41LTMuNS0zLjItMy41bC0xOC41IDBjLTEuNSAwLTMgMS4yLTMuMiAyLjdsLTE2LjIgMTA0LS4zIC41YzAgMS44IDEuNSAzLjUgMy41IDMuNWwxNi41IDBjMi41IDAgNS0yLjkgNS4yLTUuN2wxNi4yLTEwMS4yIDAtLjN6bS05MCA1MS44Yy0xMi4yIDAtMjEuNyA5LjctMjEuNyAyMiAwIDkuNyA3IDE1IDE2LjIgMTUgMTIgMCAyMS43LTkuMiAyMS43LTIxLjUgLjEtOS44LTYuOS0xNS41LTE2LjItMTUuNXoiXX0sRHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRobCIsaWNvbjpbNjQwLDUxMixbXSwiZjc5MCIsIk0yMzggMzAxLjJsNTguNyAwIDIyLjMtMzAuMi01OC43IDAtMjIuMyAzMC4yek0wIDI4Mi45bDAgNi40IDgxLjggMCA0LjctNi40LTg2LjUgMHpNMTcyLjkgMjcxYy04LjcgMC02LTMuNi00LjYtNS41IDIuOC0zLjggNy42LTEwLjQgMTAuNC0xNC4xczIuOC01LjktMi44LTUuOWwtNTEgMC00MS4xIDU1LjggMTAwLjEgMGMzMy4xIDAgNTEuNS0yMi41IDU3LjItMzAuM2wtNjguMiAwem0zMTcuNS02LjlsMzkuMy01My40LTYyLjIgMC0zOS4zIDUzLjQgNjIuMiAwek05NS4zIDI3MWwtOTUuMyAwIDAgNi40IDkwLjYgMCA0LjctNi40em0xMTEtMjYuNmMtMi44IDMuOC03LjUgMTAuNC0xMC4zIDE0LjItMS40IDItNC4xIDUuNSA0LjYgNS41bDQ1LjYgMHM3LjMtMTAgMTMuNS0xOC40YzguNC0xMS40IC43LTM1LTI5LjItMzVsLTExNy45IDAtMjAuNCAyNy44IDExMS40IDBjNS42IDAgNS41IDIuMiAyLjcgNS45ek0wIDMwMS4ybDczLjEgMCA0LjctNi40LTc3LjggMCAwIDYuNHptMzIzIDBsNTguNyAwIDIyLjMtMzAuMi01OC43IDBjLS4xIDAtMjIuMyAzMC4yLTIyLjMgMzAuMnptMjIyIC4xbDk1IDAgMC02LjQtOTAuMyAwLTQuNyA2LjR6TTU2Ny4zIDI3MWwtNC43IDYuNCA3Ny40IDAgMC02LjQtNzIuNyAwem0tMTMuNSAxOC4zbDg2LjIgMCAwLTYuNC04MS41IDAtNC43IDYuNHpNMzg5LjYgMjEwLjdsLTIyLjUgMzAuNi0yNi4yIDAgMjIuNS0zMC42LTU4LjcgMC0zOS4zIDUzLjQgMTQzLjYgMCAzOS4zLTUzLjQtNTguNyAwek00MjMuMSAyNzFzLTQuMyA1LjktNi40IDguN2MtNy40IDEwLS45IDIxLjYgMjMuMiAyMS42bDk0LjMgMCAyMi4zLTMwLjMtMTMzLjQgMHoiXX0sJHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRleCIsaWNvbjpbNjQwLDUxMixbXSwiZTdmZiIsIk02MjAuOCA5NS40Yy0zMC44IC40LTQyLjEgMTYuNi00Ny43IDI0LjVsLS4xIC4xLTU1LjcgODAuNSA4Mi44IDEyMS4xYzcuNSAxMC42IDExLjMgMTIuNSAzNS40IDEyLjVsMCA5LjFjLTkuMS0uNy0yOC0uNy0zNy43LS43LTEyLjQgMC0zMC44IDAtNDIuOSAuN2wwLTkuMWMxMy4yLS44IDE2LjYtNy4zIDE2LjYtMTAuMiAwLTEuMSAwLTIuMy0zLTYuNGwtNjUuNS05Ni4zLTYwLjIgODcuOWMtMS45IDIuNy0zLjggNS40LTMuOCAxMC4yIDAgNi4xIDMuNCAxMy42IDE1IDE0LjdsMCA5LjFjLTkuNC0uNy0yNy4xLS43LTM3LjItLjdsLTIuOCAwLTExLjcgODIuNi0xOTUuOSAwIDAtOS4xYzI2LjcgMCAzMC45IDAgMzAuOS0xNi45bDAtMjAzLjJjMC0xNi45LTQuMy0xNi45LTMwLjktMTYuOWwwLTEwLjMgMTkuOCAwYy00LjgtNjEuMS0xMC44LTcxLjctNjgtNzEuOGwtMjAuNyAwYy02LjggMS41LTYuOCA2LjEtNi44IDE0LjRsMCAyMDVjMCAxMy42IDEuMSAxNy44IDMyLjQgMTcuOGwxMC41IDAgMCA5LjEtLjQgMGMtMTcuOS0uMy0zNi43LS43LTU0LjktLjdzLTM2LjkgLjMtNTQuOCAuN2wtLjYgMCAwLTkuMSAxMC43IDBjMzEuNyAwIDMyLjgtNC4xIDMyLjgtMTcuOGwwLTIwNWMwLTguNyAwLTEzLjItNy4yLTE0LjNsLTIwLjggMGMtNTguNCAwLTYzLjcgMTAuOS02OC42IDczLjNsLTYuOCAwIDYuMy04My4zIDIxNy41IDAgNi4xIDgxLjggMTY0LjEgMCA5IDgzLjMtNi44IDBjLTUuMy00OS44LTEyLjEtNzMtNzAuMy03M2wtNTEuNSAwYy0xNSAwLTE1LjggMS45LTE1LjggMTQuNmwwIDkzLjMgMzUuNSAwYzM1LjUgMCAzOC45LTEyLjggMzguOS00NGw2IDAgMCA5Ny45LTYgMGMwLTMxLjgtMy40LTQ0LjgtMzguOS00NC44bC0zNS41IDAgMCAxMDUuMmMwIDEzIC43IDE0LjggMTUuOCAxNC44bDUyLjIgMGM2MS4xIDAgNjkuOS0yNS44IDc3LjQtNzMuNi03LjcgMC0xNi4zIC4yLTIyLjIgLjdsMC05LjFjNy4yIDAgMzEuNy0uNCA0Ny44LTIzLjhsNjUuNS05NS43LTcyLjctMTA2LjdjLTguMy0xMS43LTE1LjEtMTIuNS0zNS44LTEyLjVsMC05LjFjOS4xIC43IDI3LjkgLjcgMzcuNyAuNyAxMi40IDAgMzAuOCAwIDQyLjktLjdsMCA5LjFjLTEyLjUgLjQtMTYuNiA2LjgtMTYuNiAxMC4yIDAgMS4xIC40IDIuMyAzIDYuNGw1NS43IDgxLjYgNDkuNy03Mi4xYzIuNy0zLjcgNC41LTYuOCA0LjUtMTEuMyAwLTYuMS0zLTEzLjYtMTUtMTQuOGwwLTkuMWM5LjQgLjcgMjQuOCAuNyAzNy4yIC43IDkgMCAyMy4zIDAgMzItLjdsMCA5LjF6Il19LEF1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbGF1ZGUiLGljb246WzUxMiw1MTIsW10sImU4NjEiLCJNMTAwLjQgMzQwLjVsMTAwLjctNTYuNSAxLjctNC45LTEuNy0yLjctNC45IDAtMTYuOC0xLTU3LjUtMS42LTQ5LjktMi4xLTQ4LjMtMi42LTEyLjItMi42LTExLjQtMTUgMS4yLTcuNSAxMC4yLTYuOSAxNC43IDEuM2MxOC45IDEuMyA0NS45IDMuMSA4MSA1LjZsMzUuMiAyLjEgNTIuMiA1LjQgOC4zIDAgMS4yLTMuNC0yLjgtMi4xLTIuMi0yLjEtNTAuMy0zNC4xLTU0LjQtMzYtMjguNS0yMC43LTE1LjQtMTAuNS03LjgtOS44LTMuNC0yMS41IDE0LTE1LjQgMTguOCAxLjMgNC44IDEuMyAxOSAxNC43IDQwLjcgMzEuNSA1My4xIDM5LjEgNy44IDYuNSAzLjEtMi4yIC40LTEuNi0zLjUtNS44LTI4LjktNTIuMi0zMC44LTUzLjEtMTMuNy0yMi0zLjYtMTMuMmMtMS4zLTUuNC0yLjItMTAtMi4yLTE1LjVsMTUuOS0yMS42IDguOC0yLjggMjEuMiAyLjggOC45IDcuOCAxMy4yIDMwLjIgMjEuNCA0Ny41IDMzLjIgNjQuNiA5LjcgMTkuMiA1LjIgMTcuOCAxLjkgNS40IDMuNCAwIDAtMy4xIDIuNy0zNi40IDUtNDQuNyA0LjktNTcuNSAxLjctMTYuMiA4LTE5LjQgMTUuOS0xMC41IDEyLjQgNS45IDEwLjIgMTQuNy0xLjQgOS41LTYuMSAzOS41LTExLjkgNjEuOS03LjggNDEuNSA0LjUgMCA1LjItNS4yIDIxLTI3LjggMzUuMi00NC4xIDE1LjUtMTcuNSAxOC4xLTE5LjMgMTEuNi05LjIgMjIgMCAxNi4yIDI0LjEtNy4zIDI0LjktMjIuNyAyOC43LTE4LjggMjQuNC0yNyAzNi4zLTE2LjggMjkgMS42IDIuMyA0LS40IDYwLjktMTMgMzIuOS01LjkgMzkuMy02LjcgMTcuOCA4LjMgMS45IDguNC03IDE3LjItNDIgMTAuNC00OS4yIDkuOC03My4zIDE3LjMtLjkgLjcgMSAxLjMgMzMgMy4xIDE0LjEgLjggMzQuNiAwIDY0LjQgNC44IDE2LjggMTEuMSAxMC4xIDEzLjYtMS43IDEwLjQtMjUuOSAxMy4yYy0xNS41LTMuNy01NC40LTEyLjktMTE2LjYtMjcuN2wtMjgtNy0zLjkgMCAwIDIuMyAyMy4zIDIyLjggNDIuNyAzOC42IDUzLjUgNDkuOCAyLjcgMTIuMy02LjkgOS43LTcuMy0xLTQ3LTM1LjQtMTguMS0xNS45LTQxLjEtMzQuNi0yLjcgMCAwIDMuNiA5LjUgMTMuOSA1MCA3NS4yIDIuNiAyMy0zLjYgNy41LTEzIDQuNS0xNC4yLTIuNi0yOS4zLTQxLjEtMzAuMi00Ni4zLTI0LjQtNDEuNS0zIDEuNy0xNC40IDE1NC44LTYuNyA3LjktMTUuNSA1LjktMTMtOS44LTYuOS0xNS45IDYuOS0zMS41IDguMy00MS4xIDYuNy0zMi43IDYuMS00MC42IDMuNi0xMy41LS4yLS45LTMgLjQtMzAuNiA0Mi00Ni41IDYyLjktMzYuOCAzOS40LTguOCAzLjUtMTUuMy03LjkgMS40LTE0LjEgOC41LTEyLjYgNTAuOS02NC44IDMwLjctNDAuMiAxOS44LTIzLjItLjEtMy40LTEuMiAwLTEzNS4zIDg3LjgtMjQuMSAzLjEtMTAuNC05LjcgMS4zLTE1LjkgNC45LTUuMiA0MC43LTI4LS4xIC4xIDAgLjF6Il19LEV1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9waWZ5IixpY29uOls0NDgsNTEyLFtdLCJlMDU3IiwiTTM4OC41IDEwNC4xYy0uMi0xLjEtLjctMi4xLTEuNS0yLjhzLTEuOC0xLjItMi45LTEuMmMtMiAwLTM3LjItLjgtMzcuMi0uOHMtMjEuNi0yMC44LTI5LjYtMjguOGwwIDQzMi43IDEyNS43LTMxLjJzLTU0LTM2NS41LTU0LjQtMzY3Ljl6TTI4OC45IDcwLjVjLTEuOS02LjEtNC4zLTExLjktNy4yLTE3LjYtMTAuNC0yMC0yNi0zMC45LTQ0LjQtMzAuOS0xLjMgMC0yLjcgLjEtNCAuNC0uNC0uOC0xLjItMS4yLTEuNi0yLTgtOC44LTE4LjQtMTIuOC0zMC44LTEyLjQtMjQgLjgtNDggMTgtNjcuMiA0OC44LTEzLjYgMjEuNi0yNCA0OC44LTI2LjggNzAuMS0yNy42IDguNC00Ni44IDE0LjQtNDcuMiAxNC44LTE0IDQuNC0xNC40IDQuOC0xNiAxOC0xLjIgMTAtMzggMjkxLjgtMzggMjkxLjhsMzAyLjYgNTIuNSAwLTQzOC4zYy0xLjUgLjEtMi45IC4yLTQuNCAuNCAwIDAtNS42IDEuNi0xNC44IDQuNHpNMjMzLjYgODcuN2MtMTYgNC44LTMzLjYgMTAuNC01MC44IDE1LjYgNC44LTE4LjggMTQuNC0zNy42IDI1LjYtNTAgNC40LTQuNCAxMC40LTkuNiAxNy4yLTEyLjggNi44IDE0LjQgOC40IDM0IDggNDcuMnpNMjAwLjggMjQuNGM1LS4yIDEwIDEuMSAxNC40IDMuNi02LjQgMy4yLTEyLjggOC40LTE4LjggMTQuNC0xNS4yIDE2LjQtMjYuOCA0Mi0zMS42IDY2LjUtMTQuNCA0LjQtMjguOCA4LjgtNDIgMTIuOCA4LjgtMzguNCA0MS4yLTk2LjQgNzgtOTcuMnpNMTU0LjQgMjQ0LjZjMS42IDI1LjYgNjkuMiAzMS4yIDczLjIgOTEuNyAyLjggNDcuNi0yNS4yIDgwLjEtNjUuNiA4Mi41LTQ4LjggMy4yLTc1LjYtMjUuNi03NS42LTI1LjZsMTAuNC00NHMyNi44IDIwLjQgNDguNCAxOC44YzE0LS44IDE5LjItMTIuNCAxOC44LTIwLjQtMi0zMy42LTU3LjItMzEuNi02MC44LTg2LjktMy4yLTQ2LjQgMjcuMi05My4zIDk0LjUtOTcuNyAyNi0xLjYgMzkuMiA0LjggMzkuMiA0LjhsLTE1LjIgNTcuNnMtMTcuMi04LTM3LjYtNi40Yy0yOS42IDItMzAgMjAuOC0yOS42IDI1LjZ6TTI0OS42IDgyLjljMC0xMi0xLjYtMjkuMi03LjItNDMuNiAxOC40IDMuNiAyNy4yIDI0IDMxLjIgMzYuNC03LjIgMi0xNS4yIDQuNC0yNCA3LjJ6Il19LFVFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtcmVkZGl0IixpY29uOls0NDgsNTEyLFsicmVkZGl0LXNxdWFyZSJdLCJmMWEyIiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnpNMzA1LjkgMTY2LjRjMjAuNiAwIDM3LjMtMTYuNyAzNy4zLTM3LjNzLTE2LjctMzcuMy0zNy4zLTM3LjNjLTE4IDAtMzMuMSAxMi44LTM2LjYgMjkuOC0zMC4yIDMuMi01My44IDI4LjgtNTMuOCA1OS45bDAgLjJjLTMyLjggMS40LTYyLjggMTAuNy04Ni42IDI1LjUtOC44LTYuOC0xOS45LTEwLjktMzItMTAuOS0yOC45IDAtNTIuMyAyMy40LTUyLjMgNTIuMyAwIDIxIDEyLjMgMzkgMzAuMSA0Ny40IDEuNyA2MC43IDY3LjkgMTA5LjYgMTQ5LjMgMTA5LjZzMTQ3LjYtNDguOSAxNDkuMy0xMDkuN2MxNy43LTguNCAyOS45LTI2LjQgMjkuOS00Ny4zIDAtMjguOS0yMy40LTUyLjMtNTIuMy01Mi4zLTEyIDAtMjMgNC0zMS45IDEwLjgtMjQtMTQuOS01NC4zLTI0LjItODcuNS0yNS40bDAtLjFjMC0yMi4yIDE2LjUtNDAuNyAzNy45LTQzLjcgMy45IDE2LjUgMTguNyAyOC43IDM2LjMgMjguN2wuMi0uMnpNMTU1IDI0OC4xYzE0LjYgMCAyNS44IDE1LjQgMjUgMzQuNHMtMTEuOCAyNS45LTI2LjUgMjUuOS0yNy41LTcuNy0yNi42LTI2LjcgMTMuNS0zMy41IDI4LjEtMzMuNWwwLS4xem0xNjYuNCAzMy41Yy45IDE5LTEyIDI2LjctMjYuNiAyNi43cy0yNS42LTYuOS0yNi41LTI1LjkgMTAuMy0zNC40IDI1LTM0LjQgMjcuMyAxNC42IDI4LjEgMzMuNWwwIC4xem0tNDIuMSA0OS42Yy05IDIxLjUtMzAuMyAzNi43LTU1LjEgMzYuN3MtNDYuMS0xNS4xLTU1LjEtMzYuN2MtMS4xLTIuNiAuNy01LjQgMy40LTUuNyAxNi4xLTEuNiAzMy41LTIuNSA1MS43LTIuNXMzNS42IC45IDUxLjcgMi41YzIuNyAuMyA0LjUgMy4xIDMuNCA1Ljd6Il19LEl1cj1VRWUsUHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmMiLGljb246WzUxMiw1MTIsW10sImY0ZTgiLCJNMjU1LjYgOEMzOTUuNCA4IDUwNCAxMTUuOSA1MDQgMjU2IDUwNCA0MDMuMiAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS4xIDUwNCA4IDM5My4yIDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4ek02My44IDE4OS4xYy03LjQgMjAuNC0xMS4xIDQyLjctMTEuMSA2Ni45IDAgMTEwLjkgOTIuMSAyMDIuNCAyMDMuNyAyMDIuNCAxMjIuNCAwIDE3Ny4yLTEwMS44IDE3OC41LTEwNC4xbC05My40LTQxLjZjLTcuNyAzNy4xLTQxLjIgNTMtNjguMiA1NS40bDAgMzguMS0yOC44IDAgMC0zOC4yYy0yNy41LS4zLTUyLjYtMTAuMi03NS4zLTI5LjdsMzQuMS0zNC41YzMxLjcgMjkuNCA4Ni40IDMxLjggODYuNC0yLjIgMC02LjItMi4yLTExLjItNi42LTE1LjEtMTQuMi02LTEuOC0uMS0yMTkuMy05Ny40ek0yNTYuNCA1Mi4zQzIxOCA1Mi4zIDE0NCA2MSA4NS45IDE0NS4zbDk0LjggNDIuNWMxMC0zMS4zIDQwLjQtNDIuOSA2My44LTQ0LjNsMC0zOC4xIDI4LjggMCAwIDM4LjFjMjIuNyAxLjIgNDMuNCA4LjkgNjIgMjNMMzAzIDE5OS43Yy00Mi43LTI5LjktODMuNS04LTcwIDExLjEgNTMuNCAyNC4xIDQzLjggMTkuOCA5MyA0MS42bDEyNy4xIDU2LjdjNC4xLTE3LjQgNi4yLTM1LjEgNi4yLTUzLjEgMC01Ny0xOS44LTEwNS01OS4zLTE0My45LTM5LjMtMzkuOS04Ny4yLTU5LjgtMTQzLjYtNTkuOHoiXX0sTnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdhbGFjdGljLXJlcHVibGljIixpY29uOls1MTIsNTEyLFtdLCJmNTBjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDEgMCA0OTYgMjQ4IDI0OCAwIDEgMSAwLTQ5NnptMCAxNi41YTIzMS41IDIzMS41IDAgMSAwIDAgNDYyLjkgMjMxLjUgMjMxLjUgMCAxIDAgMC00NjIuOXptMjcuNiAyMS44bDAgMjQuNmMzMC4zIDQuNSA1OSAxNi4zIDgzLjYgMzQuNWwxNy40LTE3LjRjLTI4LjctMjIuMS02My4zLTM2LjktMTAxLTQxLjh6bS01NS40IC4xYy0zNy42IDQuOS03Mi4yIDE5LjgtMTAwLjkgNDEuOWwxNy4zIDE3LjQgLjEgMGMyNC4xLTE3LjggNTIuNi0zMC4xIDgzLjUtMzQuN2wwLTI0LjV6bTEyLjIgNTAuMmwwIDgyLjljLTEwIDItMTkuNCA1LjktMjcuNyAxMS40bC01OC42LTU4LjYtMjEuOSAyMS45IDU4LjcgNTguN2MtNS41IDguMi05LjQgMTcuNi0xMS41IDI3LjZsLTgyLjkgMCAwIDMxIDgyLjkgMGMyIDEwIDYgMTkuMyAxMS41IDI3LjVsLTU4LjcgNTguNyAyMS45IDIxLjkgNTguNi01OC42YzguNCA1LjYgMTcuOCA5LjUgMjcuNyAxMS41bDAgODIuOSAzMSAwIDAtODIuOWMxMC0yIDE5LjQtNi4xIDI3LjYtMTEuNWw1OC43IDU4LjcgMjEuOS0yMS45LTU4LjctNTguN2M1LjUtOC4yIDkuNS0xNy41IDExLjUtMjcuNWw4Mi45IDAgMC0zMS04Mi45IDBjLTItMTAtNi0xOS40LTExLjUtMjcuNmw1OC43LTU4LjctMjEuOS0yMS45LTU4LjcgNTguN2MtOC4yLTUuNS0xNy42LTkuNS0yNy42LTExLjVsMC04Mi45LTMxIDB6bTE4My4yIDMwLjdsLTE3LjQgMTcuNGMxOC4zIDI0LjYgMzAuMiA1My40IDM0LjcgODMuN2wyNC42IDBjLTUtMzcuNy0xOS44LTcyLjMtNDEuOS0xMDF6bS0zMzUuNiAuMWMtMjIuMSAyOC43LTM2LjkgNjMuMy00MS44IDEwMC45bDI0LjYgMGM0LjYtMzEgMTYuOC01OS40IDM0LjYtODMuNUw4OC4yIDEyNy40ek00Ni4zIDI4My43YzQuOSAzNy42IDE5LjcgNzIuMiA0MS44IDEwMC45bDE3LjQtMTcuNEM4Ny43IDM0My4xIDc1LjYgMzE0LjYgNzEgMjgzLjdsLTI0LjYgMCAwIDB6bTM5NC43IDBjLTQuNiAzMS0xNi44IDU5LjUtMzQuNyA4My42bDE3LjQgMTcuNGMyMi4xLTI4LjcgMzctNjMuMyA0MS45LTEwMWwtMjQuNiAwek0xNDQuNyA0MDYuNGwtMTcuNCAxNy40YzI4LjcgMjIuMSA2My4zIDM3IDEwMSA0MS45bDAtMjQuNmMtMzEtNC42LTU5LjUtMTYuOC04My42LTM0LjZ6bTIyMi41IDBjLTI0LjEgMTcuOC01Mi42IDMwLjEtODMuNiAzNC43bDAgMjQuNmMzNy43LTQuOSA3Mi4yLTE5LjggMTAxLTQxLjhsLTE3LjMtMTcuNC0uMSAweiJdfSxRM2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmFjZWJvb2siLGljb246WzUxMiw1MTIsWzYyZTNdLCJmMDlhIiwiTTUxMiAyNTZDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NkMwIDM3NiA4Mi43IDQ3Ni44IDE5NC4yIDUwNC41bDAtMTcwLjMtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE3NS45QzQxMy44IDQ5NC44IDUxMiAzODYuOSA1MTIgMjU2eiJdfSxPdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0bGFiIixpY29uOls1MTIsNTEyLFtdLCJmMjk2IiwiTTUwNCAyMDQuNmwtLjctMS44LTY5LjctMTgxLjhjLTEuNC0zLjYtMy45LTYuNi03LjItOC42LTIuNC0xLjYtNS4xLTIuNS04LTIuOHMtNS43IC4xLTguNCAxLjEtNS4xIDIuNy03LjEgNC44Yy0xLjkgMi4xLTMuMyA0LjctNC4xIDcuNGwtNDcgMTQ0LTE5MC41IDAtNDcuMS0xNDRjLS44LTIuOC0yLjItNS4zLTQuMS03LjQtMi0yLjEtNC40LTMuNy03LjEtNC44LTIuNi0xLTUuNS0xLjQtOC40LTEuMXMtNS42IDEuMi04IDIuOGMtMy4yIDItNS44IDUuMS03LjIgOC42TDkuOCAyMDIuOCA5IDIwNC42Yy0xMCAyNi4yLTExLjMgNTUtMy41IDgyIDcuNyAyNi45IDI0IDUwLjcgNDYuNCA2Ny42bC4zIC4yIC42IC40IDEwNiA3OS41YzM4LjUgMjkuMSA2Ni43IDUwLjMgODQuNiA2My45IDMuNyAxLjkgOC4zIDQuMyAxMyA0LjNzOS4zLTIuNCAxMy00LjNjMTcuOS0xMy41IDQ2LjEtMzQuOSA4NC42LTYzLjlsMTA2LjctNzkuOSAuMy0uM2MyMi40LTE2LjkgMzguNy00MC42IDQ1LjYtNjcuNSA4LjYtMjcgNy40LTU1LjgtMi42LTgyeiJdfSxSdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXEiLGljb246WzQ0OCw1MTIsW10sImYxZDYiLCJNNDM0LjEgNDIwLjRjLTExLjUgMS40LTQ0LjktNTIuNy00NC45LTUyLjcgMCAzMS4zLTE2LjEgNzIuMi01MSAxMDEuOCAxNi44IDUuMiA1NC44IDE5LjIgNDUuOCAzNC40LTcuMyAxMi4zLTEyNS41IDcuOS0xNTkuNiA0LTM0LjEgMy44LTE1Mi4zIDguMy0xNTkuNi00LTktMTUuMiAyOC45LTI5LjIgNDUuOC0zNC40LTM0LjktMjkuNS01MS4xLTcwLjQtNTEuMS0xMDEuOCAwIDAtMzMuMyA1NC4xLTQ0LjkgNTIuNy01LjQtLjYtMTIuNC0yOS42IDkuMy05OS43IDEwLjMtMzMgMjItNjAuNSA0MC4xLTEwNS44LTMuMS0xMTYuOSA0NS4yLTIxNSAxNjAuMy0yMTUgMTEzLjcgMCAxNjMuMiA5Ni4xIDE2MC4zIDIxNSAxOC4xIDQ1LjIgMjkuOSA3Mi45IDQwLjEgMTA1LjggMjEuOCA3MC4xIDE0LjcgOTkuMSA5LjMgOTkuN3oiXX0sRnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0cmlwZSIsaWNvbjpbNjQwLDUxMixbXSwiZjQyOSIsIk0xNjUgMTQ0LjdsLTQzLjMgOS4yLS4yIDE0Mi40YzAgMjYuMyAxOS44IDQzLjMgNDYuMSA0My4zIDE0LjYgMCAyNS4zLTIuNyAzMS4yLTUuOWwwLTMzLjhjLTUuNyAyLjMtMzMuNyAxMC41LTMzLjctMTUuN2wwLTYzLjIgMzMuNyAwIDAtMzcuOC0zMy43IDAtLjEtMzguNXptODkuMSA1MS42bC0yLjctMTMuMS0zOC40IDAgMCAxNTMuMiA0NC4zIDAgMC0xMDMuMWMxMC41LTEzLjggMjguMi0xMS4xIDMzLjktOS4zbDAtNDAuOGMtNi0yLjEtMjYuNy02LTM3LjEgMTMuMXpNMzQ2LjQgMTI0bC00NC42IDkuNSAwIDM2LjIgNDQuNi05LjUgMC0zNi4yek00NC45IDIyOC4zYzAtNi45IDUuOC05LjYgMTUuMS05LjcgMTMuNSAwIDMwLjcgNC4xIDQ0LjIgMTEuNGwwLTQxLjhjLTE0LjctNS44LTI5LjQtOC4xLTQ0LjEtOC4xLTM2IDAtNjAgMTguOC02MCA1MC4yIDAgNDkuMiA2Ny41IDQxLjIgNjcuNSA2Mi40IDAgOC4yLTcuMSAxMC45LTE3IDEwLjktMTQuNyAwLTMzLjctNi4xLTQ4LjYtMTQuMmwwIDQwYzE2LjUgNy4xIDMzLjIgMTAuMSA0OC41IDEwLjEgMzYuOSAwIDYyLjMtMTUuOCA2Mi4zLTQ3LjggMC01Mi45LTY3LjktNDMuNC02Ny45LTYzLjR6TTY0MCAyNjEuNmMwLTQ1LjUtMjItODEuNC02NC4yLTgxLjRzLTY3LjkgMzUuOS02Ny45IDgxLjFjMCA1My41IDMwLjMgNzguMiA3My41IDc4LjIgMjEuMiAwIDM3LjEtNC44IDQ5LjItMTEuNWwwLTMzLjRjLTEyLjEgNi4xLTI2IDkuOC00My42IDkuOC0xNy4zIDAtMzIuNS02LjEtMzQuNS0yNi45bDg2LjkgMGMuMi0yLjMgLjYtMTEuNiAuNi0xNS45em0tODcuOS0xNi44YzAtMjAgMTIuMy0yOC40IDIzLjQtMjguNCAxMC45IDAgMjIuNSA4LjQgMjIuNSAyOC40bC00NS45IDB6TTQzOS4yIDE4MC4yYy0xNy40IDAtMjguNiA4LjItMzQuOCAxMy45bC0yLjMtMTEtMzkuMSAwIDAgMjA0LjggNDQuNC05LjQgLjEtNTAuMmM2LjQgNC43IDE1LjkgMTEuMiAzMS40IDExLjIgMzEuOCAwIDYwLjgtMjMuMiA2MC44LTc5LjYgLjEtNTEuNi0yOS4zLTc5LjctNjAuNS03OS43ek00MjguNiAzMDIuN2MtMTAuNCAwLTE2LjYtMy44LTIwLjktOC40bC0uMy02NmM0LjYtNS4xIDExLTguOCAyMS4yLTguOCAxNi4yIDAgMjcuNCAxOC4yIDI3LjQgNDEuNCAuMSAyMy45LTEwLjkgNDEuOC0yNy40IDQxLjh6TTMwMS45IDMzNi40bDQ0LjYgMCAwLTE1My4yLTQ0LjYgMCAwIDE1My4yeiJdfSxCdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGFpbHltb3Rpb24iLGljb246WzQ0OCw1MTIsW10sImUwNTIiLCJNMjk4LjkgMjY3Yy03LjQtNC4yLTE1LjgtNi4zLTI0LjQtNi4yLTEzLjIgMC0yNC40IDQuNC0zMy40IDEzLjNzLTEzLjYgMjAtMTMuNiAzMy40YzAgMTQuMSA0LjQgMjUuNiAxMy4zIDM0LjZzMjAgMTMuNCAzMy40IDEzLjRjMTMuNyAwIDI1LTQuNiAzNC4xLTEzLjhTMzIyIDMyMS4xIDMyMiAzMDcuNWMwLTguMi0yLjEtMTYuMy02LjEtMjMuNS00LTcuMS05LjgtMTMtMTctMTd6TTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTM3NC43IDQwNS4zbC01My4xIDAgMC0yMy45LS43IDBjLTEwLjUgMTcuNS0yOS4xIDI2LjItNTUuOCAyNi4yLTE4LjQgMC0zNC43LTQuNC00OC45LTEzLjEtMTQuMS04LjYtMjUuNS0yMS0zMi45LTM1LjgtNy43LTE1LjEtMTEuNi0zMi4xLTExLjYtNTAuOSAwLTE4LjQgMy45LTM1LjEgMTEuOC01MC4yIDcuNS0xNC43IDE4LjktMjcuMSAzMi45LTM1LjggMTQuMS04LjcgMzAtMTMuMSA0Ny43LTEzLjEgMTAuMi0uMSAyMC4yIDEuNiAyOS43IDUuMiA4LjkgMy41IDE3LjIgOS4xIDI1IDE3bDAtNzcuOSA1NS44LTEyLjEgMCAyNjQuNHoiXX0sSHVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0ZWFtIixpY29uOls1MTIsNTEyLFtdLCJmMWI2IiwiTTUwNCAyNTZjMCAxMzctMTExLjIgMjQ4LTI0OC40IDI0OC0xMTMuOCAwLTIwOS42LTc2LjMtMjM5LTE4MC40bDk1LjIgMzkuM2M2LjQgMzIuMSAzNC45IDU2LjQgNjguOSA1Ni40IDM5LjIgMCA3MS45LTMyLjQgNzAuMi03My41bDg0LjUtNjAuMmM1Mi4xIDEuMyA5NS44LTQwLjkgOTUuOC05My41IDAtNTEuNi00Mi05My41LTkzLjctOTMuNXMtOTMuNyA0Mi05My43IDkzLjVsMCAxLjItNTkuMiA4NS43Yy0xNS41LS45LTMwLjcgMy40LTQzLjUgMTIuMUw4IDIzNi4xQzE4LjIgMTA4LjQgMTI1LjEgOCAyNTUuNiA4IDM5Mi44IDggNTA0IDExOSA1MDQgMjU2ek0xNjMuNyAzODQuM2wtMzAuNS0xMi42YzUuNiAxMS42IDE1LjMgMjAuOCAyNy4yIDI1LjggMjYuOSAxMS4yIDU3LjgtMS42IDY5LTI4LjQgNS40LTEzIDUuNS0yNy4zIC4xLTQwLjNTMjE0IDMwNS42IDIwMSAzMDAuMmMtMTIuOS01LjQtMjYuNy01LjItMzguOS0uNmwzMS41IDEzYzE5LjggOC4yIDI5LjIgMzAuOSAyMC45IDUwLjctOC4zIDE5LjktMzEgMjkuMi01MC44IDIxek0zMzcuNSAxMjkuOGE2Mi4zIDYyLjMgMCAxIDEgMCAxMjQuNiA2Mi4zIDYyLjMgMCAxIDEgMC0xMjQuNnptLjEgMTA5YTQ2LjggNDYuOCAwIDEgMCAwLTkzLjYgNDYuOCA0Ni44IDAgMSAwIDAgOTMuNnoiXX0scXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZlbm1vLXYiLGljb246WzUxMiw1MTIsW10sImU4NWIiLCJNNDY2LjUgMTQuOGMxNy40IDI4LjcgMjUuMyA1OC4yIDI1LjMgOTUuNSAwIDExOS0xMDEuOSAyNzMuNS0xODQuNyAzODIuMWwtMTg4LjkgMC03NS44LTQ1MS41IDE2NS40LTE1LjcgNDAuMSAzMjEuM2MzNy40LTYwLjggODMuNi0xNTYuMyA4My42LTIyMS40IDAtMzUuNi02LjEtNTkuOS0xNS43LTc5LjlMNDY2LjUgMTQuOHoiXX0sV0VlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNuYXBjaGF0IixpY29uOls1MTIsNTEyLFs2MjEyNCwic25hcGNoYXQtZ2hvc3QiXSwiZjJhYiIsIk00OTcuMSAzNjYuNmMtMy40LTkuMi05LjgtMTQuMS0xNy4xLTE4LjItMS40LS44LTIuNi0xLjUtMy43LTEuOS0yLjItMS4xLTQuNC0yLjItNi42LTMuNC0yMi44LTEyLjEtNDAuNi0yNy4zLTUzLTQ1LjQtMy41LTUuMS02LjYtMTAuNS05LjEtMTYuMS0xLjEtMy0xLTQuNy0uMi02LjMgLjgtMS4yIDEuNy0yLjIgMi45LTMgMy45LTIuNiA4LTUuMiAxMC43LTcgNC45LTMuMiA4LjgtNS43IDExLjItNy40IDkuNC02LjUgMTUuOS0xMy41IDIwLTIxLjMgMi45LTUuNCA0LjUtMTEuMyA0LjktMTcuNHMtLjYtMTIuMi0yLjgtMTcuOGMtNi4yLTE2LjMtMjEuNi0yNi40LTQwLjMtMjYuNC0zLjkgMC03LjkgLjQtMTEuNyAxLjItMSAuMi0yLjEgLjUtMy4xIC43IC4yLTExLjItLjEtMjIuOS0xLjEtMzQuNS0zLjUtNDAuOC0xNy44LTYyLjEtMzIuNy03OS4yLTkuNS0xMC43LTIwLjctMTkuNy0zMy4yLTI2LjctMjIuNi0xMi45LTQ4LjItMTkuNC03Ni4xLTE5LjRzLTUzLjQgNi41LTc2IDE5LjRjLTEyLjUgNy0yMy43IDE2LjEtMzMuMyAyNi44LTE0LjkgMTctMjkuMiAzOC40LTMyLjcgNzkuMi0xIDExLjYtMS4yIDIzLjQtMS4xIDM0LjUtMS0uMy0yLS41LTMuMS0uNy0zLjktLjgtNy44LTEuMi0xMS43LTEuMi0xOC43IDAtMzQuMSAxMC4xLTQwLjMgMjYuNC0yLjIgNS43LTMuMiAxMS44LTIuOCAxNy44czIgMTIgNC45IDE3LjRjNC4xIDcuOCAxMC43IDE0LjcgMjAgMjEuMyAyLjUgMS43IDYuNCA0LjIgMTEuMiA3LjQgMi42IDEuNyA2LjUgNC4yIDEwLjMgNi43IDEuMyAuOSAyLjQgMiAzLjMgMy4zIC44IDEuNiAuOCAzLjQtLjQgNi42LTIuNSA1LjUtNS41IDEwLjgtOC45IDE1LjgtMTIuMSAxNy43LTI5LjQgMzIuNi01MS40IDQ0LjYtMTEuNyA2LjItMjMuOSAxMC4zLTI5IDI0LjMtMy45IDEwLjUtMS4zIDIyLjUgOC41IDMyLjYgMy42IDMuOCA3LjggNi45IDEyLjQgOS40IDkuNiA1LjMgMTkuOCA5LjMgMzAuMyAxMi4xIDIuMiAuNiA0LjMgMS41IDYuMSAyLjcgMy42IDMuMSAzLjEgNy45IDcuOCAxNC44IDIuNCAzLjYgNS40IDYuNyA5IDkuMSAxMCA2LjkgMjEuMyA3LjQgMzMuMiA3LjggMTAuOCAuNCAyMyAuOSAzNi45IDUuNSA1LjggMS45IDExLjggNS42IDE4LjcgOS45IDE2LjcgMTAuMyAzOS42IDI0LjMgNzcuOCAyNC4zczYxLjMtMTQuMSA3OC4xLTI0LjRjNi45LTQuMiAxMi45LTcuOSAxOC41LTkuOCAxMy45LTQuNiAyNi4yLTUuMSAzNi45LTUuNSAxMS45LS41IDIzLjItLjkgMzMuMi03LjggNC4yLTIuOSA3LjctNi43IDEwLjItMTEuMiAzLjQtNS44IDMuNC05LjkgNi42LTEyLjggMS44LTEuMiAzLjctMi4xIDUuOC0yLjYgMTAuNy0yLjggMjEtNi45IDMwLjgtMTIuMiA0LjktMi42IDkuMy02LjEgMTMtMTAuMmwuMS0uMmM5LjItOS45IDExLjUtMjEuNSA3LjgtMzEuOHptLTM0IDE4LjNjLTIwLjcgMTEuNS0zNC41IDEwLjItNDUuMyAxNy4xLTkuMSA1LjktMy43IDE4LjUtMTAuMyAyMy4xLTguMSA1LjYtMzIuMi0uNC02My4yIDkuOS0yNS42IDguNS00MiAzMi44LTg4IDMyLjhzLTYyLTI0LjMtODguMS0zMi45Yy0zMS0xMC4zLTU1LjEtNC4yLTYzLjItOS45LTYuNi00LjYtMS4yLTE3LjItMTAuMy0yMy4xLTEwLjctNi45LTI0LjUtNS43LTQ1LjMtMTcuMS0xMy4yLTcuMy01LjctMTEuOC0xLjMtMTMuOSA3NS4xLTM2LjQgODcuMS05Mi42IDg3LjctOTYuNyAuNi01IDEuNC05LTQuMi0xNC4xLTUuNC01LTI5LjItMTkuNy0zNS44LTI0LjMtMTAuOS03LjYtMTUuNy0xNS4zLTEyLjItMjQuNiAyLjUtNi41IDguNS04LjkgMTQuOS04LjkgMiAwIDQgLjIgNiAuNyAxMiAyLjYgMjMuNyA4LjYgMzAuNCAxMC4yIC44IC4yIDEuNiAuMyAyLjUgLjMgMy42IDAgNC45LTEuOCA0LjYtNS45LS44LTEzLjEtMi42LTM4LjctLjYtNjIuNiAyLjgtMzIuOSAxMy40LTQ5LjIgMjYtNjMuNiA2LjEtNi45IDM0LjUtMzcgODguOS0zN1MzMzkgNzQuMiAzNDUgODEuMWMxMi42IDE0LjQgMjMuMiAzMC43IDI2IDYzLjYgMi4xIDIzLjkgLjMgNDkuNS0uNiA2Mi42LS4zIDQuMyAxIDUuOSA0LjYgNS45IC44IDAgMS43LS4xIDIuNS0uMyA2LjctMS42IDE4LjQtNy42IDMwLjQtMTAuMiAyLS40IDQtLjcgNi0uNyA2LjQgMCAxMi40IDIuNSAxNC45IDguOSAzLjUgOS40LTEuMiAxNy0xMi4yIDI0LjYtNi42IDQuNi0zMC40IDE5LjMtMzUuOCAyNC4zLTUuNiA1LjEtNC44IDkuMS00LjIgMTQuMiAuNSA0LjIgMTIuNSA2MC40IDg3LjcgOTYuNyA0LjQgMi4yIDExLjkgNi43LTEuMyAxNC4xeiJdfSxWdXI9V0VlLGp1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnYWxhY3RpYy1zZW5hdGUiLGljb246WzUxMiw1MTIsW10sImY1MGQiLCJNMjQ5LjkgMzMuNWwwIDI2LjFjLTEzLjYgMjAuNi0yMy45IDEwOC42LTI0LjUgMjE1LjMgMTEuNy0xNS42IDE5LjEtMzMuMyAxOS4xLTQ4LjJsMC0xNi45YzAtNS4zIC44LTEwLjUgMi4yLTE1LjYgLjYtMi4xIDEuNC00LjEgMi42LTUuOHMzLjQtMy44IDYuNy0zLjggNS40IDIuMSA2LjcgMy44YzEuMiAxLjggMiAzLjcgMi42IDUuOCAxLjQgNS4xIDIuMiAxMC4zIDIuMiAxNS42bDAgMTYuOWMwIDE0LjkgNy40IDMyLjYgMTkuMSA0OC4yLS42LTEwNi44LTEwLjktMTk0LjctMjQuNS0yMTUuM2wwLTI2LjEtMTIuMyAwek0yMjMuNSAxODEuM2MtOS41IDIuMS0xOC43IDUuMi0yNy41IDkuMSA4LjkgMTYuMSA5LjggMzIuNiAxLjcgMzcuMy04IDQuNi0yMS44LTQuMi0zMS40LTE5LjgtMTEuNiA4LjgtMjEuOSAxOS4zLTMwLjYgMzEuMSAxNC43IDkuNiAyMi45IDIyLjkgMTguMyAzMC43LTQuNSA3LjctMjAgNy4xLTM1LjUtMS01LjggMTMuMi05LjcgMjcuNS0xMS42IDQyLjQgOS43IC4yIDE4LjcgMi40IDI2LjIgNiAxNy44LS4zIDMyLjgtMiA0MC41LTQuMiA1LjYtMjYuNCAyMy00OC4yIDQ2LjMtNTkuNSAuNy0yNS42IDEuOS00OS43IDMuNS03Mi4xem02NSAwYzEuNiAyMi40IDIuNyA0Ni41IDMuNSA3Mi4xIDIzLjMgMTEuMyA0MC44IDMzLjIgNDYuMyA1OS41IDcuNyAyLjMgMjIuNyAzLjkgNDAuNSA0LjIgNy41LTMuNyAxNi41LTUuOCAyNi4yLTYtMS45LTE0LjktNS45LTI5LjItMTEuNy00Mi40LTE1LjQgOC4xLTMwLjkgOC43LTM1LjUgMS00LjYtNy43IDMuNi0yMS4xIDE4LjMtMzAuNy04LjctMTEuOC0xOS0yMi4zLTMwLjYtMzEuMS05LjUgMTUuNi0yMy40IDI0LjQtMzEuNCAxOS44LTguMS00LjYtNy4yLTIxLjIgMS43LTM3LjMtOC44LTMuOS0xOC03LTI3LjQtOS4xek0yNTYgMTg5LjljLTMuMiAwLTUuOSA4LjgtNi4xIDE5LjlsMCAwIDAgMTYuOWMwIDQxLjQtNDkgOTUtOTMuNSA5NS01MiAwLTEyMi44LTEuNC0xNTYuNCAyOS4ybDAgMi41YzkuNCAxNy4xIDIwLjYgMzMuMiAzMy4yIDQ4IDEyLjUtMjEuMSA1MS42LTQxIDEwOC00MS40IDQ1LjcgMSA3OSAyMC4zIDkwLjggNDAuOSAwIDAgMCAwIDAgLjEgNy43IDIuMSAxNS44IDMuMiAyNCAzLjIgOC4yIDAgMTYuNC0xLjEgMjQtMy4yIDAgMCAwIDAgMC0uMSAxMS43LTIwLjUgNDUuMS0zOS44IDkwLjgtNDAuOSA1Ni40IC40IDk1LjUgMjAuMyAxMDggNDEuNCAxMi42LTE0LjggMjMuOC0zMC45IDMzLjItNDhsMC0yLjVjLTMzLjYtMzAuNi0xMDQuNC0yOS4yLTE1Ni40LTI5LjItNDQuNSAwLTkzLjUtNTMuNi05My41LTk1bDAtMTYuOS0uMSAwYy0uMi0xMS4xLTIuOS0xOS45LTYuMS0xOS45em0wIDE3Ny45YTQwLjYgNDAuNiAwIDEgMSAwLTgxLjMgNDAuNiA0MC42IDAgMSAxIDAgODEuM3ptMC03My42YTMzIDMzIDAgMSAwIDAgNjUuOSAzMyAzMyAwIDEgMCAwLTY1Ljl6bTAgNTkuOGEyNi44IDI2LjggMCAxIDEgMC01My42IDI2LjggMjYuOCAwIDEgMSAwIDUzLjZ6bS0xMTQuOCAxM2MtMTAuMiAuMS0yMS42IC40LTMwLjUgMS43IC40IDQuNCAxLjUgMTguNiA3LjEgMjkuOCA5LjEtMi42IDE4LjQtMy45IDI3LjYtMy45IDQxLjMgLjkgNzEuNSAzNC40IDc4LjMgNzQuNWwuMSA0LjdjMTAuNCAxLjkgMjEuMiAyLjkgMzIuMiAyLjkgMTEgMCAyMS44LTEgMzIuMi0yLjlsLjEtNC43YzYuOC00MC4xIDM3LTczLjUgNzguMy03NC41IDkuMyAwIDE4LjUgMS4zIDI3LjYgMy45IDUuNi0xMS4xIDYuNy0yNS4zIDcuMS0yOS44LTguOS0xLjMtMjAuMy0xLjYtMzAuNS0xLjctMTguOCAuNC0zNS4yIDQuMi00OC42IDkuNy0xMi41IDE2LTI5LjIgMzAtNDkuNiAzMy4xLS4xIDAtLjIgMC0uMyAwIDAgMC0uMSAwLS4yIC4xLTUuMiAxLjEtMTAuNiAxLjYtMTYuMiAxLjYtNS41IDAtMTAuOS0uNS0xNi4yLTEuNi0uMSAwLS4xIDAtLjItLjEtLjEgMC0uMiAwLS4zIDAtMjAuNC0zLTM3LTE3LTQ5LjYtMzMuMS0xMy40LTUuNS0yOS45LTkuMi00OC42LTkuN3oiXX0sVXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBob2VuaXgtZnJhbWV3b3JrIixpY29uOls2NDAsNTEyLFtdLCJmM2RjIiwiTTIxMi45IDM0NC4zYzMuOC0uMSAyMi44LTEuNCAyNS42LTIuMi0yLjQtMi42LTQzLjYtMS02OC00OS42LTQuMy04LjYtNy41LTE3LjYtNi40LTI3LjYgMi45LTI1LjUgMzIuOS0zMCA1Mi0xOC41IDM2IDIxLjYgNjMuMyA5MS4zIDExMy43IDk3LjUgMzcgNC41IDg0LjYtMTcgMTA4LjItNDUuNC0uNi0uMS0uOC0uMi0xLS4xLS40IC4xLS44IC4yLTEuMSAuMy0zMy4zIDEyLjEtOTQuMyA5LjctMTM0LjctMTQuOC0zNy42LTIyLjgtNTMuMS01OC43LTUxLjgtNzQuNiAxLjgtMjEuMyAyMi45LTIzLjIgMzUuOS0xOS42IDE0LjQgMy45IDI0LjQgMTcuNiAzOC45IDI3LjQgMTUuNiAxMC40IDMyLjkgMTMuNyA1MS4zIDEwLjMgMTQuOS0yLjcgMzQuNC0xMi4zIDM2LjUtMTQuNS0xLjEtLjEtMS44LS4xLTIuNS0uMi02LjItLjYtMTIuNC0uOC0xOC41LTEuNy0xMTEuMi0xNi41LTEyOC45LTE2My42LTI1Mi41LTE3My4xLTQ0LjMtMy40LTk5LjQgOC4xLTEzNi4zIDM1LS44IC42LTEuNSAxLjItMi4yIDEuOCAuMSAuMiAuMSAuMyAuMiAuNSAuOCAwIDEuNi0uMSAyLjQtLjIgNi4zLTEgMTIuNS0uOCAxOC43IC4zIDIzLjggNC4zIDQ3LjcgMjMuMSA1NS45IDc2LjUgNS4zIDM0LjMtLjcgNTAuOCA4IDg2LjEgMTkgNzcuMSA5MSAxMDcuNiAxMjcuNyAxMDYuNHpNNzUuMyA2NC45Yy0uOS0xLS45LTEuMi0xLjMtMiAxMi4xLTIuNiAyNC4yLTQuMSAzNi42LTQuOC0xLjEgMTQuNy0yMi4yIDIxLjMtMzUuMyA2Ljh6TTI3Mi4yIDQxNS40Yy00Mi44IDEuMi05Mi0yNi43LTEyMy41LTYxLjQtNC42LTUtMTYuOC0yMC4yLTE4LjYtMjMuNGwuNC0uNGM2LjYgNC4xIDI1LjcgMTguNiA1NC44IDI3IDI0LjIgNyA0OC4xIDYuMyA3MS42LTMuMyAyMi43LTkuMyA0MS0uNSA0My4xIDIuOS0xOC41IDMuOC0yMC4xIDQuNC0yNCA3LjktNS4xIDQuNC00LjYgMTEuNyA3IDE3LjIgMjYuMiAxMi40IDYzLTIuOCA5Ny4yIDI1LjQgMi40IDIgOC4xIDcuOCAxMC4xIDEwLjctLjEgLjItLjMgLjMtLjQgLjUtNC44LTEuNS0xNi40LTcuNS00MC4yLTkuMy0yNC43LTItNDYuMyA1LjMtNzcuNSA2LjJ6TTQ0NyAxNjMuNGMxNi40LTUuMiA0MS4zLTEzLjQgNjYuNS0zLjMgMTYuMSA2LjUgMjYuMiAxOC43IDMyLjEgMzQuNiAzLjUgOS40IDUuMSAxOS43IDUuMSAyOC43LS4yIDAtLjQgMC0uNiAuMS0uMi0uNC0uNC0uOS0uNS0xLjMtNS0yMi0yOS45LTQzLjgtNjcuNi0yOS45LTUwLjIgMTguNi0xMzAuNCA5LjctMTc2LjktNDgtLjctLjktMi40LTEuNy0xLjMtMy4yIC4xLS4yIDIuMSAuNiAzIDEuMyAxOC4xIDEzLjQgMzguMyAyMS45IDYwLjMgMjYuMiAzMC41IDYuMSA1NC42IDIuOSA3OS45LTUuMnpNNTQ5LjcgMjgwLjljLTMyLjQgLjItMzMuOCA1MC4xLTEwMy42IDY0LjQtMTguMiAzLjctMzguNyA0LjYtNDQuOSA0LjJsMC0uNGMyLjgtMS41IDE0LjctMi42IDI5LjctMTYuNiA3LjktNy4zIDE1LjMtMTUuMSAyMi44LTIyLjkgMTkuNS0yMC4yIDQxLjQtNDIuMiA4MS45LTM5IDIzLjEgMS44IDI5LjMgOC4yIDM2LjEgMTIuNyAuMyAuMiAuNCAuNSAuNyAuOS0uNSAwLS43IC4xLS45IDAtNy0yLjctMTQuMy0zLjMtMjEuOC0zLjN6bS0xMi4zLTI0LjFjLS4xIC4yLS4xIC40LS4yIC42LTI4LjktNC40LTQ4LTcuOS02OC41IDQtMTcgOS45LTMxLjQgMjAuNS02MiAyNC40LTI3LjEgMy40LTQ1LjEgMi40LTY2LjEtOC0uMy0uMi0uNi0uNC0xLS42IDAtLjIgLjEtLjMgLjEtLjUgMjQuOSAzLjggMzYuNCA1LjEgNTUuNS01LjggMjIuMy0xMi45IDQwLjEtMjYuNiA3MS4zLTMxIDI5LjYtNC4xIDUxLjMgMi41IDcwLjkgMTYuOXpNMjY4LjYgOTcuM2MtLjYtLjYtMS4xLTEuMi0yLjEtMi4zIDcuNiAwIDI5LjctMS4yIDUzLjQgOC40IDE5LjcgOCAzMi4yIDIxIDUwLjIgMzIuOSAxMS4xIDcuMyAyMy40IDkuMyAzNi40IDguMSA0LjMtLjQgOC41LTEuMiAxMi44LTEuNyAuNC0uMSAuOSAwIDEuNSAuMy0uNiAuNC0xLjIgLjktMS44IDEuMi04LjEgNC0xNi43IDYuMy0yNS42IDcuMS0yNi4xIDIuNi01MC4zLTMuNy03My40LTE1LjQtMTkuMy05LjktMzYuNC0yMi45LTUxLjQtMzguNnpNNjQwIDMzNS43Yy0zLjUgMy4xLTIyLjcgMTEuNi00Mi43IDUuMy0xMi4zLTMuOS0xOS41LTE0LjktMzEuNi0yNC4xLTEwLTcuNi0yMC45LTcuOS0yOC4xLTguNCAuNi0uOCAuOS0xLjIgMS4yLTEuNCAxNC44LTkuMiAzMC41LTEyLjIgNDcuMy02LjUgMTIuNSA0LjIgMTkuMiAxMy41IDMwLjQgMjQuMiAxMC44IDEwLjQgMjEgOS45IDIzLjEgMTAuNSAuMS0uMSAuMiAwIC40IC40em0tMjEyLjUgMTM3YzIuMiAxLjIgMS42IDEuNSAxLjUgMi0xOC41LTEuNC0zMy45LTcuNi00Ni44LTIyLjItMjEuOC0yNC43LTQxLjctMjcuOS00OC42LTI5LjcgLjUtLjIgLjgtLjQgMS4xLS40IDEzLjEgLjEgMjYuMSAuNyAzOC45IDMuOSAyNS4zIDYuNCAzNSAyNS40IDQxLjYgMzUuMyAzLjIgNC44IDcuMyA4LjMgMTIuMyAxMS4xeiJdfSxXdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0IixpY29uOls1MTIsNTEyLFtdLCJmMWQzIiwiTTIxNi4zIDE1OC40bC03OS4zIDBjLTQwLTEwLjUtMTMwLjUtNy44LTEzMC41IDc0LjggMCAzMC4xIDE1IDUxLjIgMzUgNjEtMjUuMSAyMy0zNyAzMy44LTM3IDQ5LjIgMCAxMSA0LjUgMjEuMSAxNy45IDI2LjgtMTQuMyAxMy40LTIyLjQgMjMuMS0yMi40IDQxLjQgMCAzMi4xIDI4IDUwLjggMTAxLjYgNTAuOCA3MC44IDAgMTExLjgtMjYuNCAxMTEuOC03My4yIDAtNTguNy00NS4yLTU2LjUtMTUxLjYtNjNsMTMuNC0yMS42YzI3LjMgNy42IDExOC43IDEwIDExOC43LTY3LjkgMC0xOC43LTcuNy0zMS43LTE1LTQxLjFsMzcuNC0yLjggMC0zNC41ek0xNTIuOSA0MDAuM2MwIDMyLjEtMTA0LjkgMzIuMS0xMDQuOSAyLjQgMC04LjEgNS4zLTE1IDEwLjYtMjEuNSA3Ny43IDUuMyA5NC4zIDMuNCA5NC4zIDE5LjF6TTEwMi4xIDI2NS43Yy01Mi44IDAtNTAuNS03MS4yIDEuMi03MS4yIDQ5LjUgMCA1MC44IDcxLjItMS4yIDcxLjJ6TTIzNS40IDM2Ni4ybDAtMzIuMWMyNi43LTMuNyAyNy4yLTIgMjcuMi0xMWwwLTExOS41YzAtOC41LTIuMS03LjQtMjcuMi0xNi4zbDQuNS0zMi45IDg0LjIgMCAwIDE2OC43YzAgNi41IC40IDcuMyA2LjUgOC4xbDIwLjcgMi44IDAgMzIuMS0xMTUuOSAwem01Mi41LTI0NC4zYy0yMy4yIDAtMzYuNi0xMy40LTM2LjYtMzYuNnMxMy40LTM1LjggMzYuNi0zNS44YzIzLjYgMCAzNyAxMi42IDM3IDM1LjhzLTEzLjQgMzYuNi0zNyAzNi42ek01MTIgMzUwLjVjLTE3LjUgOC41LTQzLjEgMTYuMy02Ni4zIDE2LjMtNDguNCAwLTY2LjctMTkuNS02Ni43LTY1LjVsMC0xMDYuNWMwLTUuNCAxLTQuMS0zMS43LTQuMWwwLTM2LjJjMzUuOC00LjEgNTAtMjIgNTQuNS02Ni4zbDM4LjYgMGMwIDY1LjgtMS4zIDYxLjggMy4zIDYxLjhsNTcuMyAwIDAgNDAuNi02MC42IDAgMCA5Ny4xYzAgNi45LTQuOSA1MS40IDYwLjYgMjYuOGwxMSAzNS44eiJdfSxHdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3B0aW4tbW9uc3RlciIsaWNvbjpbNTc2LDUxMixbXSwiZjIzYyIsIk01NzIuOCA0MjEuNGM1LjYtOS41IDQuNy0xNS4yLTUuNC0xMS42LTMtNC45LTctOS41LTExLjEtMTMuOCAyLjktOS43LS43LTE0LjItMTAuOC05LjItNC42LTMuMi0xMC4zLTYuNS0xNS45LTkuMiAwLTE1LjEtMTEuNi0xMS42LTE3LjYtNS43LTEwLjQtMS41LTE4LjctLjMtMjYuOCA1LjcgLjMtNi41IC4zLTEzIC4zLTE5LjcgMTIuNiAwIDQwLjItMTEgNDUuOS0zNi4yIDEuNC02LjggMS42LTEzLjgtLjMtMjEuOS0zLTEzLjUtMTQuMy0yMS4zLTI1LjEtMjUuNy0uOC01LjktNy42LTE0LjMtMTQuOS0xNS45cy0xMi40IDQuOS0xNC4xIDEwLjNjLTguNSAwLTE5LjIgMi44LTIxLjEgOC40LTUuNC0uNS0xMS4xLTEuNC0xNi44LTEuOSAyLjctMS45IDUuNC0zLjUgOC40LTQuNiA1LjQtOS4yIDE0LjYtMTEuNCAyNS43LTExLjZsMC0yLjhjMTkuNS0uNSA0My01LjkgNTMuOC0xOC4xIDEyLjctMTMuOCAxNC42LTM3LjMgMTIuNC01NS4xLTIuNC0xNy4zLTkuNy0zNy42LTI0LjYtNDguMS04LjQtNS45LTIxLjYtLjgtMjIuNyA5LjUtMi4yIDE5LjYgMS4yIDMwLTM4LjYgMjUuMS0xMC4zLTIzLjgtMjQuNi00NC42LTQyLjctNjAtNjkuNi01OS43LTE2Ny43LTUzLjgtMjQ0LjItMzcuNiAxOS43IDQuNiA0MS4xIDguNiA1OS43IDE2LjUtMjYuMiAyLjQtNTIuNyAxMS4zLTc2LjIgMjMuMi0zMi44IDE3LTQ0IDI5LjktNTYuNyA0Mi40IDE0LjktMi4yIDI4LjktNS4xIDQzLjgtMy44LTkuNyA1LjQtMTguNCAxMi4yLTI2LjUgMjAtMjUuOCAuOS0yMy44LTUuMy0yNi4yLTI1LjktMS4xLTEwLjUtMTQuMy0xNS40LTIyLjctOS43LTI4LjEgMTkuOS0zMy41IDc5LjktMTIuMiAxMDMuNSAxMC44IDEyLjIgMzUuMSAxNy4zIDU0LjkgMTcuOC0uMyAxLjEtLjMgMS45LS4zIDIuNyAxMC44IC41IDE5LjUgMi43IDI0LjYgMTEuNiAzIDEuMSA1LjcgMi43IDguMSA0LjYtNS40IC41LTExLjEgMS40LTE2LjUgMS45LTMuMy02LjYtMTMuNy04LjEtMjEuMS04LjEtMS42LTUuNy02LjUtMTIuMi0xNC4xLTEwLjMtNi44IDEuOS0xNC4xIDEwLTE0LjkgMTUuOS0yMi41IDkuNS0zMC4xIDI2LjgtMjUuMSA0Ny42IDUuMyAyNC44IDMzIDM2LjIgNDUuOSAzNi4ybDAgMTkuN2MtNi42LTUtMTQuMy03LjUtMjYuOC01LjctNS41LTUuNS0xNy4zLTEwLjEtMTcuMyA1LjctNS45IDIuNy0xMS40IDUuOS0xNS45IDkuMi05LjgtNC45LTEzLjYtMS43LTExLjEgOS4yLTQuMSA0LjMtNy44IDguNi0xMS4xIDEzLjgtMTAuMi0zLjctMTEgMi4yLTUuNCAxMS42LTEuMSAzLjUtMS42IDctMS45IDEwLjgtLjUgMzEuNiA0NC42IDY0IDczLjUgNjUuMSAxNy4zIC41IDM0LjYtOC40IDQzLTIzLjUgMTEzLjIgNC45IDIyNi43IDQuMSAzNDAuMiAwIDguMSAxNS4xIDI1LjQgMjQuMyA0Mi43IDIzLjUgMjkuMi0xLjEgNzQuMy0zMy41IDczLjUtNjUuMSAuMi0zLjctLjctNy4yLTEuNy0xMC43ek00OTkgMTY3LjRjMS4xLTMgMi40LTguNCAyLjQtMTQuNiAwLTUuOSA2LjgtOC4xIDE0LjEtLjggMTEuMSAxMS42IDE0LjkgNDAuNSAxMy44IDUxLjEtNC4xLTEzLjYtMTMtMjktMzAuMy0zNS43em0tNC42IDYuN2MxOS41IDYuMiAyOC42IDI3LjYgMjkuNyA0OC45LTEuMSAyLjctMyA1LjQtNC45IDcuNi01LjcgNS45LTE1LjQgMTAtMjYuMiAxMi4yIDQuMy0yMS4zIC4zLTQ3LjMtMTIuNy02MyA0LjktLjggMTAuOS0yLjQgMTQuMS01Ljd6bS0yNC4xIDYuOGMxMy44IDExLjkgMjAgMzkuMiAxNC4xIDYzLjUtNC4xIC41LTguMSAuOC0xMS42IC44LTEuOS0yMS45LTYuOC00NC0xNC4zLTY0LjYgMy43IC4zIDguMSAuMyAxMS44IC4zek00Ny43IDIwM2MtMS4xLTEwLjUgMi40LTM5LjUgMTMuOC01MS4xIDctNy4zIDE0LjEtNS4xIDE0LjEgLjggMCA2LjIgMS40IDExLjYgMi40IDE0LjYtMTcuMyA2LjgtMjYuMiAyMi4yLTMwLjMgMzUuN3ptOS43IDI3LjZjLTEuOS0yLjItMy41LTQuOS00LjktNy42IDEuNC0yMS4zIDEwLjMtNDIuNyAyOS43LTQ4LjkgMy4yIDMuMiA5LjIgNC45IDE0LjEgNS43LTEzIDE1LjctMTcgNDEuNi0xMi43IDYzLTEwLjgtMi4yLTIwLjUtNi0yNi4yLTEyLjJ6bTQ3LjkgMTQuNmMtNC4xIDAtOC4xLS4zLTEyLjctLjgtNC42LTE4LjYtMS45LTM4LjkgNS40LTUzbDAgLjMgMTIuMi01LjFjNC45LTEuOSA5LjctMy44IDE0LjktNC45LTEwLjcgMTkuNy0xNy40IDQxLjMtMTkuOCA2My41em0xODQtMTAuNWE3Ni4xIDc2LjEgMCAxIDEgMC0xNTIuMiA3Ni4xIDc2LjEgMCAxIDEgMCAxNTIuMnptMTE1LjYgMjIuMWMtLjMgMTcuOC03IDQ4LjktMjMgNTctMTMuMiA2LjYtNi41LTcuNS0xNi41LTU4LjEgMTMuMyAuMyAyNi42IC4zIDM5LjUgMS4xem0tNTQtMS42Yy44IDQuOSAzLjggNDAuMy0xLjYgNDEuOS0xMS42IDMuNS00MCA0LjMtNTEuMS0xLjEtNC4xLTMtNC42LTM1LjktNC4zLTQxLjFsMCAuM2MxOC45LS4zIDM4LjEtLjMgNTcgMHpNMjc4LjUgMzA5Yy0xMyAzLjUtNDEuNiA0LjEtNTQuNi0xLjYtNi41LTIuNy0zLjgtNDIuNC0xLjktNTEuNiAxOS4yLS41IDM4LjQtLjUgNTcuOC0uOGwwIC4zYzEuMSA4LjMgMy4zIDUxLjItMS4zIDUzLjd6TTE3MiAyNTcuOWMxMi4yLS44IDI0LjYtMS40IDM2LjgtMS42LTIuNCAxNS40LTMgNDMuNS00LjkgNTIuMi0xLjEgNi44LTQuMyA2LjgtOS43IDQuMy0yMS45LTkuOC0yNy42LTM1LjItMjIuMi01NC45em0tMzUuNCAzMS4zYzcuOC0xLjEgMTUuNy0xLjkgMjMuNS0yLjcgMS42IDYuMiAzLjggMTEuOSA3IDE3LjYgMTAgMTcgNDQgMzUuNyA0NS4xIDcgNi4yIDE0LjkgNDAuOCAxMi4yIDU0LjkgMTAuOCAxNS43LTEuNCAyMy44LTEuNCAyNi44LTE0LjMgMTIuNCA0LjMgMzAuOCA0LjEgNDQgMyAxMS4zLS44IDIwLjgtLjUgMjQuNi04LjkgMS4xIDUuMSAxLjkgMTEuNiA0LjYgMTYuOCAxMC44IDIxLjMgMzcuMyAxLjQgNDYuOC0zMS42IDguNiAuOCAxNy42IDEuOSAyNi41IDIuNy0uNCAxLjMtMy44IDcuMyA3LjMgMTEuNi00Ny42IDQ3LTk1LjcgODcuOC0xNjMuMiAxMDctNjMuMi0yMC44LTExMi4xLTU5LjUtMTU1LjktMTA2LjUgOS42LTMuNCAxMC40LTguOCA4LTEyLjV6TTExNSA0NjEuN2MtMy44IDE3LjgtMjEuOSAyOS43LTM5LjcgMjguOS0xOS4yLS44LTQ2LjUtMTctNTkuMi0zNi41LTIuNy0zMS4xIDQzLjgtNjEuMyA2Ni4yLTU0LjYgMTQuOSA0LjMgMjcuOCAzMC44IDMzLjUgNTQgMCAzLS4zIDUuNy0uOCA4LjJ6bS04LjctNjZjLS41LTEzLjUtLjUtMjctLjMtNDAuNWwuMyAwYzIuNy0xLjYgNS43LTMuOCA3LjgtNi41IDYuNS0xLjYgMTMtNS4xIDE1LjEtOS4yIDMuMy03LjEtNy03LjUtNS40LTEyLjQgMi43LTEuMSA1LjctMi4yIDcuOC0zLjUgMjkuMiAyOS4yIDU4LjYgNTYuNSA5Ny4zIDc3LTM2LjggMTEuMy03Mi40IDI3LjYtMTA1LjkgNDctMS4yLTE4LjYtNy43LTM1LjktMTYuNy01MS45em0zMzcuNiA2NC42Yy0xMDMgMy41LTIwNi4yIDQuMS0zMDkuNCAwIDAgLjMgMCAuMy0uMyAuM2wwLS4zIC4zIDBjMzUuMS0yMS42IDcyLjItMzkuMiAxMTIuNC01MC44IDExLjYgNS4xIDIzIDkuNSAzNC45IDEzLjIgMi4yIC44IDIuMiAuOCA0LjMgMCAxNC4zLTQuMSAyOC40LTkuMiA0Mi4yLTE1LjQgNDEuNSAxMS43IDc4LjggMzEuNyAxMTUuNiA1M3ptMTAuNS0xMi40Yy0zNS45LTE5LjUtNzMtMzUuOS0xMTEuOS00Ny42IDM4LjEtMjAgNzEuOS00Ny4zIDEwMy41LTc2LjcgMi4yIDEuNCA0LjYgMi40IDcuNiAzLjIgMCAuOCAuMyAxLjkgLjUgMi40LTQuNiAyLjctNy44IDYuMi01LjkgMTAuMyAyLjIgMy44IDguNiA3LjYgMTUuMSA4LjkgMi40IDIuNyA1LjEgNS4xIDguMSA2LjggMCAxMy44LS4zIDI3LjYtLjggNDEuM2wuMy0uM2MtOS4zIDE1LjktMTUuNSAzNy0xNi41IDUxLjd6bTEwNS45IDYuMmMtMTIuNyAxOS41LTQwIDM1LjctNTkuMiAzNi41LTE5LjMgLjktNDAuNS0xMy4yLTQwLjUtMzcgNS43LTIzLjIgMTguOS00OS43IDMzLjUtNTQgMjIuNy02LjkgNjkuMiAyMy40IDY2LjIgNTQuNXpNMzczLjEgNzUuMmMtMy44LTcyLjEtMTAwLjgtNzkuNy0xMjYtMjMuNSA0NC42LTI0LjMgOTAuMy0xNS43IDEyNiAyMy41ek03NSA0MDcuMWMtMTUuNyAxLjYtNDkuNSAyNS40LTQ5LjUgNDMuMiAwIDExLjYgMTUuNyAxOS41IDMyLjIgMTQuOSAxMi4yLTMuMiAzMS4xLTE3LjYgMzUuOS0yNy4zIDYtMTEuNi0zLjctMzIuNy0xOC42LTMwLjh6TTI5MC45IDIzMC45YzI4LjYgMCA1MS45LTIxLjYgNTEuOS00OC40IDAtMzYuMS00MC41LTU4LjEtNzIuMi00NC4zIDkuNSAzIDE2LjUgMTEuNiAxNi41IDIxLjYgMCAyMy4zLTMzLjMgMzItNDYuNSAxMS4zLTcuMyAzNC4xIDE5LjQgNTkuOCA1MC4zIDU5Ljh6TTY4LjIgNDc0LjFjLjUgNi41IDEyLjIgMTIuNyAyMS42IDkuNSA2LjgtMi43IDE0LjYtMTAuNSAxNy4zLTE2LjIgMy03LTEuMS0yMC05LjctMTguNC04LjkgMS42LTI5LjcgMTYuNy0yOS4yIDI1LjF6bTQzMy4yLTY3Yy0xNC45LTEuOS0yNC42IDE5LjItMTguOSAzMC44IDQuOSA5LjcgMjQuMSAyNC4xIDM2LjIgMjcuMyAxNi41IDQuNiAzMi4yLTMuMiAzMi4yLTE0LjkgMC0xNy44LTMzLjgtNDEuNi00OS41LTQzLjJ6TTQ3OSA0NDljLTguNC0xLjYtMTIuNCAxMS4zLTkuNSAxOC40IDIuNCA1LjcgMTAuMyAxMy41IDE3LjMgMTYuMiA5LjIgMy4yIDIxLjEtMyAyMS4zLTkuNSAuOS04LjQtMjAuMi0yMy41LTI5LjEtMjUuMXoiXX0sWXVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImplbmtpbnMiLGljb246WzQ0OCw1MTIsW10sImYzYjYiLCJNNDU1LjQgNDI1Yy0xLjQtMTEuMi0xOS0yMy4xLTI4LjItMzEuOS01LjEtNS0yOS0yMy4xLTMwLjQtMjkuOS0xLjQtNi42IDkuNy0yMS41IDEzLjMtMjguOSA1LjEtMTAuNyA4LjgtMjMuNyAxMS4zLTMyLjYgMTguOC02Ni4xIDIwLjctMTU2LjktNi4yLTIxMS4yLTEwLjItMjAuNi0zOC42LTQ5LTU2LjQtNjIuNS00Mi0zMS43LTExOS42LTM1LjMtMTcwLjEtMTYuNi0xNC4xIDUuMi0yNy44IDkuOC00MC4xIDE3LjEtMzMuMSAxOS40LTY4LjMgMzIuNS03OC4xIDcxLjYtMjQuMiAxMC44LTMxLjUgNDEuOC0zMC4zIDc3LjggLjIgNyA0LjEgMTUuOCAyLjcgMjIuNC0uNyAzLjMtNS4yIDcuNi02LjEgOS44LTExLjYgMjcuNy0yLjMgNjQgMTEuMSA4My43IDguMSAxMS45IDIxLjUgMjIuNCAzOS4yIDI1LjIgLjcgMTAuNiAzLjMgMTkuNyA4LjIgMzAuNCAzLjEgNi44IDE0LjcgMTkgMTAuNCAyNy43LTIuMiA0LjQtMjEgMTMuOC0yNy4zIDE3LjYtMjEuMSAxMi41LTM2LjQgMjAuMy01NS45IDM0LjMtMTIuNiA5LTMyLjMgMTAuMi0yOS4yIDMxLjEgMi4xIDE0LjEgMTAuMSAzMS42IDE0LjcgNDUuOCAuNyAyIDEuNCA0LjEgMi4xIDZsNDIyIDBjNC45LTE1LjMgOS43LTMwLjkgMTQuNi00Ny4yIDMuNC0xMS40IDEwLjItMjcuOCA4LjctMzkuN3pNMTc0LjIgMzMuN2MxLjgtLjUgMy40IC43IDQuOSAyLjQtLjIgNS4yLTUuNCA1LjEtOC45IDYuOC01LjQgNi43LTEzLjQgOS44LTIwIDE3LjItNi44IDcuNS0xNC40IDI3LjctMjMuNCAzMC00LjUgMS4xLTkuNy0uOC0xMy42LS41LTEwLjQgLjctMTcuNyA2LTI4LjMgNy41IDEzLjYtMjkuOSA1Ni4xLTU0IDg5LjMtNjMuNHpNNjkuNCAxMjcuM2MxMy41LTE0LjkgMzIuMS0yNC4xIDU0LjgtMjUuOSAxMS43IDI5LjctOC40IDY1LS45IDk3LjYgMi4zIDkuOSAxMC4yIDI1LjQtMi40IDI1LjcgLjMtMjguMy0zNC44LTQ2LjMtNjEuMy0yOS42LTEuOC0yMS41LTQuOS01MS43IDkuOC02Ny44em0zNi43IDIwMC4yYy0xLTQuMS0yLjctMTIuOS0yLjMtMTUuMSAxLjYtOC43IDE3LjEtMTIuNSAxMS0yNC43LTExLjMtLjEtMTMuOCAxMC4yLTI0LjEgMTEuMy0yNi43IDIuNi00NS42LTM1LjQtNDQuNC01OC40IDEtMTkuNSAxNy42LTM4LjIgNDAuMS0zNS44IDE2IDEuOCAyMS40IDE5LjIgMjQuNSAzNC43IDkuMiAuNSAyMi41LS40IDI2LjktNy42LS42LTE3LjUtOC44LTMxLjYtOC4yLTQ3LjcgMS0zMC4zIDE3LjUtNTcuNiA0LjgtODcuNCAxMy42LTMwLjkgNTMuNS01NS4zIDgzLjEtNzAgMzYuNi0xOC4zIDk0LjktMy43IDEyOS4zIDE1LjggMTkuNyAxMS4xIDM0LjQgMzIuNyA0OC4zIDUwLjctMTkuNS01LjgtMzYuMSA0LjItMzMuMSAyMC4zIDE2LjMtMTQuOSA0NC4yLS4yIDUyLjUgMTYuNCA3LjkgMTUuOCA3LjggMzkuMyA5IDYyLjggMi45IDU3LTEwLjQgMTE1LjktMzkuMSAxNTcuMS03LjcgMTEtMTQuMSAyMy0yNC45IDMwLjYtMjYgMTguMi02NS40IDM0LjctOTkuMiAyMy40LTQ0LjctMTUtNjUtNDQuOC04OS41LTc4LjggLjcgMTguNyAxMy44IDM0LjEgMjYuOCA0OC40IDExLjMgMTIuNSAyNSAyNi42IDM5LjcgMzIuNC0xMi4zLTIuOS0zMS4xLTMuOC0zNi4yIDcuMi0yOC42LTEuOS01NS4xLTQuOC02OC43LTI0LjItMTAuNi0xNS40LTIxLjQtNDEuNC0yNi4zLTYxLjR6bTIyMiAxMjQuMWM0LjEtMyAxMS4xLTIuOSAxNy40LTMuNi01LjQtMi43LTEzLTMuNy0xOS4zLTIuMi0uMS00LjItMi02LjgtMy4yLTEwLjIgMTAuNi0zLjggMzUuNS0yOC41IDQ5LjYtMjAuMyA2LjcgMy45IDkuNSAyNi4yIDEwLjEgMzcgLjQgOS0uOCAxOC00LjUgMjIuOC0xOC44LS42LTM1LjgtMi44LTUwLjctNyAuOS02LjEtMS0xMi4xIC42LTE2LjV6bS0xNy4yLTIwYy0xNi44IC44LTI2LTEuMi0zOC4zLTEwLjggLjItLjggMS40LS41IDEuNS0xLjQgMTggOCA0MC44LTMuMyA1OS00LjktNy45IDUuMS0xNC42IDExLjYtMjIuMiAxNy4xem0tMTIuMSAzMy4yYy0xLjYtOS40LTMuNS0xMi0yLjgtMjAuMiAyNS0xNi42IDI5LjcgMjguNiAyLjggMjAuMnpNMTk0LjMgNDM4LjZjLTExLjYtLjctNDguMS0xNC0zOC41LTIzLjcgOS40IDYuNSAyNy41IDQuOSA0MS4zIDcuMyAuOCA0LjQtMi44IDEwLjItMi44IDE2LjR6TTI2IDQ5Ny4xYy00LjMtMTIuNy05LjItMjUuMS0xNC44LTM2LjkgMzAuOC0yMy44IDY1LjMtNDguOSAxMDIuMi02My41IDIuOC0xLjEgMjMuMiAyNS40IDI2LjIgMjcuNiAxNi41IDExLjcgMzcgMjEgNTYuMiAzMC4yIDEuMiA4LjggMy45IDIwLjIgOC43IDM1LjUgLjcgMi4zIDEuNCA0LjcgMi4yIDcuMmwtMTgwLjcgMCAwLS4xem0yNDAuNiA1LjdsLS44IDBjLjMtLjIgLjUtLjQgLjgtLjVsMCAuNXptNy41LTUuN2MyLjEtMS40IDQuMy0yLjggNi40LTQuMyAxLjEgMS40IDIuMiAyLjggMy4yIDQuM2wtOS42IDB6bTE1LjEtMjQuN2MtMTAuOCA3LjMtMjAuNiAxOC4zLTMzLjMgMjUuMi02IDMuMy0yNyAxMS43LTMzLjQgMTAuMi0zLjYtLjgtMy45LTUuMy01LjQtOS41LTMuMS05LTEwLjEtMjMuNC0xMC44LTM3LS44LTE3LjItMi41LTQ2IDE2LTQyLjQgMTQuOSAyLjkgMzIuMyA5LjcgNDMuOSAxNi4xIDcuMSAzLjkgMTEuMSA4LjYgMjEuOSA5LjUtLjEgMS40LS4xIDIuOC0uMiA0LjMtNS45IDMuOS0xNS4zIDMuOC0yMS44IDcuMSA5LjUgLjQgMTcgMi43IDIzLjUgNS45LS4xIDMuNC0uMyA3LS40IDEwLjZ6bTUzLjQgMjQuN2wtMTQgMGMtLjEtMy4yLTIuOC01LjgtNi4xLTUuOHMtNS45IDIuNi02LjEgNS44bC0xNy40IDBjLTIuOC00LjQtNS43LTguNi04LjktMTIuNSAyLjEtMi4yIDQtNC43IDYtNi45IDkgMy43IDE0LjgtNC45IDIxLjctNC4yIDcuOSAuOCAxNC4yIDExLjcgMjUuNCAxMWwtLjYgMTIuNnptOC43IDBjLjItNCAuNC03LjggLjYtMTEuNSAxNS42LTcuMyAyOSAxLjMgMzUuNyAxMS41bC0zNi4zIDB6bTgzLjQtMzdjLTIuMyAxMS4yLTUuOCAyNC05LjkgMzcuMS0uMi0uMS0uNC0uMS0uNi0uMWwtMjcuOSAwYy42LTEuMSAxLjItMi4yIDEuOS0zLjMtMi42LTYuMS05LTguNy0xMC45LTE1LjUgMTIuMS0yMi43IDYuNS05My40LTI0LjItNzguNSA0LjMtNi4zIDE1LjYtMTEuNSAyMC44LTE5LjMgMTMgMTAuNCAyMC44IDIwLjMgMzMuMiAzMS40IDYuOCA2IDIwIDEzLjMgMjEuNCAyMy4xIC44IDUuNS0yLjYgMTguOS0zLjggMjUuMXpNMTkwLjUgMTMwLjVjNS40LTE0LjkgMjcuMi0zNC43IDQ1LTMyIDcuNyAxLjIgMTggOC4yIDEyLjIgMTcuNy0zMC4yLTctNDUuMiAxMi42LTU0LjQgMzMuMS04LjEtMi00LjktMTMuMS0yLjgtMTguOHptMTg0LjEgNjMuMWM4LjItMy42IDIyLjQtLjcgMjkuNi01LjMtNC4yLTExLjUtMTAuMy0yMS40LTkuMy0zNy43IC41IDAgMSAwIDEuNCAuMSA2LjggMTQuMiAxMi43IDI5LjIgMjEuNCA0MS43LTUuNyAxMy41LTQzLjYgMjUuNC00My4xIDEuMnptLTk2LjggMi43Yy02LjgtMTAuOS0xOS0zMi41LTE0LjUtNDUuMyA2LjUgMTEuOSA4LjYgMjQuNCAxNy44IDMzLjMgNC4xIDQgMTIuMiA5IDguMiAyMC4yLS45IDIuNy03LjggOC42LTExLjcgOS43LTE0LjQgNC4zLTQ3LjkgLjktMzYuNi0xNy4xIDExLjkgLjcgMjcuOSA3LjggMzYuOC0uOHptMjcuMyA3MGMzLjggNi42IDEuNCAxOC43IDEyLjEgMjAuNiAyMC4yIDMuNCA0My42LTEyLjMgNTguMS0xNy44IDktMTUuMi0uOC0yMC43LTguOS0zMC41LTE2LjYtMjAtMzguOC00NC44LTM4LTc0LjcgNi43LTQuOSA3LjMgNy40IDguMiA5LjcgOC43IDIwLjMgMzAuNCA0Ni4yIDQ2LjMgNjMuNSAzLjkgNC4zIDEwLjMgOC40IDExIDExLjIgMi4xIDguMi01LjQgMTgtNC41IDIzLjUtMjEuNyAxMy45LTQ1LjggMjkuMS04MS40IDI1LjYtNy40LTYuNy0xMC4zLTIxLjQtMi45LTMxLjF6bS0yMDEuMy05LjJjLTYuOC0zLjktOC40LTIxLTE2LjQtMjEuNC0xMS40LS43LTkuMyAyMi4yLTkuMyAzNS41LTcuOC03LjEtOS4yLTI5LjEtMy41LTQwLjMtNi42LTMuMi05LjUgMy42LTEzLjEgNS45IDQuNy0zNC4xIDQ5LjgtMTUuOCA0Mi4zIDIwLjN6bTI5OS42IDI4LjhjLTEwLjEgMTkuMi0yNC40IDQwLjQtNTQgNDEtLjYtNi4yLTEuMS0xNS42IDAtMTkuNCAyMi43LTIuMiAzNi42LTEzLjcgNTQtMjEuNnpNMjYxLjUgMjk4LjNjMTguOSA5LjkgNTMuNiAxMSA3OS4zIDEwLjIgMS40IDUuNiAxLjMgMTIuNiAxLjQgMTkuNC0zMyAxLjgtNzItNi40LTgwLjctMjkuNnpNMzUzLjcgMzQ1Yy0xLjcgNC4zLTUuMyA5LjMtOS44IDExLjEtMTIuMSA0LjktNDUuNiA4LjctNjIuNC0uMy0xMC43LTUuNy0xNy41LTE4LjUtMjMuNC0yNi0yLjgtMy42LTE2LjktMTIuOS0uMi0xMi45IDEzLjEgMzIuNyA1OCAyOSA5NS44IDI4LjF6Il19LEt1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzbGlkZXNoYXJlIixpY29uOls1MTIsNTEyLFtdLCJmMWU3IiwiTTE4Ny45IDE1My43Yy0zNCAwLTYxLjcgMjUuNy02MS43IDU3LjcgMCAzMS43IDI3LjcgNTcuNyA2MS43IDU3LjdzNjEuNy0yNiA2MS43LTU3LjdjMC0zMi0yNy43LTU3LjctNjEuNy01Ny43em0xNDMuNCAwYy0zNCAwLTYxLjcgMjUuNy02MS43IDU3LjcgMCAzMS43IDI3LjcgNTcuNyA2MS43IDU3LjcgMzQuMyAwIDYxLjctMjYgNjEuNy01Ny43IC4xLTMyLTI3LjQtNTcuNy02MS43LTU3Ljd6bTE1Ni42IDkwbC02IDQuMyAwLTE5OC4zYzAtMjcuNC0yMC42LTQ5LjctNDYtNDkuN0w3Ni44IDBjLTI1LjQgMC00NiAyMi4zLTQ2IDQ5LjdsMCAxOTguM2MtMi0xLjQtNC4zLTIuOS02LjMtNC4zLTE1LjEtMTAuNi0yNS4xIDQtMTYgMTcuNyAxOC4zIDIyLjYgNTMuMSA1MC4zIDEwNi4zIDcyLTU2LjMgMTkxLjcgMTM3LjQgMjIyLjMgMTM0LjMgMTI0LjEgMC0uNyAuMy01Ni42IC4zLTk2LjYgNS4xIDEuMSA5LjQgMi4zIDEzLjcgMy4xIDAgMzkuNyAuMyA5Mi44IC4zIDkzLjUtMy4xIDk4LjMgMTkwLjYgNjcuNyAxMzQuMy0xMjQgNTMuMS0yMS43IDg4LTQ5LjQgMTA2LjMtNzIgOS4xLTEzLjgtLjktMjguMy0xNi4xLTE3Ljh6bS0zMC41IDE5LjJjLTY4LjkgMzcuNC0xMjguMyAzMS4xLTE2MC42IDI5LjctMjMuNy0uOS0zMi42IDkuMS0zMy43IDI0LjktMTAuMy03LjctMTguNi0xNS41LTIwLjMtMTcuMS01LjEtNS40LTEzLjctOC0yNy4xLTcuNy0zMS43IDEuMS04OS43IDcuNC0xNTcuNC0yOGwwLTE5Mi40YzAtMzQuOSA4LjktNDUuNyA0MC42LTQ1LjdsMzE3LjcgMGMzMC4zIDAgNDAuOSAxMi45IDQwLjkgNDUuN2wwIDE5MC42LS4xIDB6Il19LFp1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1YmVyIixpY29uOls0NDgsNTEyLFtdLCJmNDAyIiwiTTQxNC4xIDMyTDMzLjkgMzJDMTUuMiAzMiAwIDQ3LjIgMCA2NS45TDAgNDQ2YzAgMTguOCAxNS4yIDM0IDMzLjkgMzRMNDE0IDQ4MGMxOC43IDAgMzMuOS0xNS4yIDMzLjktMzMuOWwwLTM4MC4yQzQ0OCA0Ny4yIDQzMi44IDMyIDQxNC4xIDMyek0yMzcuNiAzOTEuMUMxNjMgMzk4LjYgOTYuNCAzNDQuMiA4OC45IDI2OS42bDk0LjQgMCAwIDIwLjRjMCAzLjcgMyA2LjggNi44IDYuOGw2Ny45IDBjMy43IDAgNi44LTMgNi44LTYuOGwwLTY3LjljMC0zLjctMy02LjgtNi44LTYuOGwtNjcuOSAwYy0zLjcgMC02LjggMy02LjggNi44bDAgMjAuNC05NC40IDBjNy02OS40IDY1LjQtMTIyLjIgMTM1LjEtMTIyLjJzMTI4LjEgNTIuOCAxMzUuMSAxMjIuMmM3LjUgNzQuNS00Ni45IDE0MS4xLTEyMS41IDE0OC42eiJdfSxRdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlnaXRhbC1vY2VhbiIsaWNvbjpbNTEyLDUxMixbXSwiZjM5MSIsIk04NyA0ODEuOGw3My43IDAgMC03My42LTczLjcgMCAwIDczLjZ6TTI1LjQgMzQ2LjZsMCA2MS42IDYxLjYgMCAwLTYxLjYtNjEuNiAwek00OTEuNiAxNzYuOUM0NjguNiAxMDIuNyA0MDkuMiA0My42IDMzNSAyMC4zIDE2NC45LTMyLjggOCA5My43IDggMjU1LjlsOTUuOCAwYzAtMTAxLjggMTAxLTE4MC41IDIwOC4xLTE0MS43IDM5LjcgMTQuMyA3MS41IDQ2LjEgODUuOCA4NS43IDM5LjEgMTA3LTM5LjcgMjA3LjgtMTQxLjQgMjA4bDAgLjMtLjMgMCAwIDk1LjhjMTYyLjYgMCAyODguOC0xNTYuOCAyMzUuNi0zMjcuMXptLTIzNS4zIDIzMWwwLTk1LjMtOTUuNiAwIDAgOTUuNiA5NS4zIDAgMC0uMyAuMyAweiJdfSxYdXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic291bmRjbG91ZCIsaWNvbjpbNjQwLDUxMixbXSwiZjFiZSIsIk02NDAuMiAyOTguNmMtMS4zIDIzLjEtMTEuNSA0NC44LTI4LjQgNjAuNXMtMzkuMiAyNC40LTYyLjMgMjQuMWwtMjE4IDBjLTQuOCAwLTkuNC0yLTEyLjgtNS40cy01LjMtOC01LjMtMTIuOGwwLTIzNC44Yy0uMi00IC45LTggMy4xLTExLjRzNS4zLTYuMSA5LTcuN2MwIDAgMjAuMS0xMy45IDYyLjMtMTMuOSAyNS44IDAgNTEuMSA2LjkgNzMuMyAyMC4xIDE3LjMgMTAuMiAzMi4zIDIzLjggNDQuMSA0MC4xczIwIDM0LjggMjQuMiA1NC40YzcuNS0yLjEgMTUuMy0zLjIgMjMuMS0zLjIgMTEuNy0uMSAyMy4zIDIuMiAzNC4yIDYuN3MyMC41IDExLjMgMjguNyAxOS43IDE0LjYgMTguMyAxOC45IDI5LjMgNi4zIDIyLjYgNS45IDM0LjN6bS0zNTQtMTUzLjVjLjEtMSAwLTItLjMtMi45cy0uOC0xLjgtMS41LTIuNi0xLjUtMS4zLTIuNC0xLjdjLTEuOC0uOC00LS44LTUuOCAwLS45IC40LTEuNyAxLTIuNCAxLjdzLTEuMiAxLjYtMS41IDIuNi0uNCAxLjktLjMgMi45Yy02IDc4LjktMTAuNiAxNTIuOSAwIDIzMS42IC4yIDEuNyAxIDMuMyAyLjMgNC41IDIuNiAyLjQgNi44IDIuNCA5LjQgMCAxLjMtMS4yIDIuMS0yLjggMi4zLTQuNSAxMS4zLTc5LjQgNi42LTE1MiAwLTIzMS42bC4yIDB6bS00NCAyNy4zYy0uMi0xLjgtMS4xLTMuNS0yLjQtNC43cy0zLjEtMS45LTUtMS45LTMuNiAuNy01IDEuOS0yLjIgMi45LTIuNCA0LjdjLTcuOSA2Ny45LTcuOSAxMzYuNSAwIDIwNC40IC4zIDEuOCAxLjIgMy40IDIuNSA0LjVzMy4xIDEuOCA0LjggMS44IDMuNS0uNiA0LjgtMS44IDIuMi0yLjggMi41LTQuNWM4LjgtNjcuOCA4LjgtMTM2LjUgLjEtMjA0LjRsLjEgMHptLTQ0LjMtNi45Yy0uMi0xLjgtMS0zLjQtMi4zLTQuNnMtMy0xLjgtNC44LTEuOC0zLjUgLjctNC44IDEuOC0yLjEgMi44LTIuMyA0LjZjLTYuNyA3Mi0xMC4yIDEzOS4zIDAgMjExLjEgMCAxLjkgLjcgMy43IDIuMSA1czMuMSAyLjEgNSAyLjEgMy43LS43IDUtMi4xIDIuMS0zLjEgMi4xLTVjMTAuNS03Mi44IDcuMy0xMzguMiAuMS0yMTEuMWwtLjEgMHptLTQ0IDIwLjZjMC0xLjktLjgtMy44LTIuMS01LjJzLTMuMi0yLjEtNS4yLTIuMS0zLjggLjgtNS4yIDIuMS0yLjEgMy4yLTIuMSA1LjJjLTguMSA2My4zLTguMSAxMjcuNSAwIDE5MC44IC4yIDEuOCAxIDMuNCAyLjQgNC42czMuMSAxLjkgNC44IDEuOSAzLjUtLjcgNC44LTEuOSAyLjItMi44IDIuNC00LjZjOC44LTYzLjMgOC45LTEyNy41IC4zLTE5MC44bC0uMSAwem0tNDQuNSA0Ny42YzAtMS45LS44LTMuOC0yLjEtNS4xcy0zLjItMi4xLTUuMS0yLjEtMy44IC44LTUuMSAyLjEtMi4xIDMuMi0yLjEgNS4xYy0xMC41IDQ5LjItNS41IDkzLjkgLjQgMTQzLjYgLjMgMS42IDEuMSAzLjEgMi4zIDQuMnMyLjggMS43IDQuNSAxLjcgMy4yLS42IDQuNS0xLjcgMi4xLTIuNSAyLjMtNC4yYzYuNi01MC40IDExLjYtOTQuMSAuNC0xNDMuNnptLTQ0LjEtNy41Yy0uMi0xLjgtMS4xLTMuNS0yLjQtNC44cy0zLjItMS45LTUtMS45LTMuNiAuNy01IDEuOS0yLjIgMi45LTIuNCA0LjhjLTkuMyA1MC4yLTYuMiA5NC40IC4zIDE0NC41IC43IDcuNiAxMy42IDcuNSAxNC40IDAgNy4yLTUwLjkgMTAuNS05My44IC4zLTE0NC41bC0uMiAwek0yMC43IDI1MC44Yy0uMi0xLjgtMS4xLTMuNS0yLjQtNC44cy0zLjItMS45LTUtMS45LTMuNiAuNy01IDEuOS0yLjMgMi45LTIuNCA0LjhjLTguNSAzMy43LTUuOSA2MS42IC42IDk1LjQgLjIgMS43IDEgMy4zIDIuMyA0LjRzMi45IDEuOCA0LjcgMS44IDMuNC0uNiA0LjctMS44IDIuMS0yLjcgMi4zLTQuNGM3LjUtMzQuNSAxMS4yLTYxLjggLjQtOTUuNGwtLjIgMHoiXX0sSnVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1maWdtYSIsaWNvbjpbNDQ4LDUxMixbXSwiZTdlNCIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xNzMuNyA5NmMtMzMgMC01OS44IDI2LjgtNTkuOCA1OS44IDAgMjEgMTAuOCAzOS40IDI3LjIgNTAuMS0xNi40IDEwLjctMjcuMiAyOS4xLTI3LjIgNTAuMXMxMC44IDM5LjUgMjcuMiA1MC4xYy0xNi40IDEwLjctMjcuMiAyOS4xLTI3LjIgNTAuMSAwIDMzLjEgMjcuMSA1OS44IDYwLjEgNTkuOCAzMy4yIDAgNjAuNi0yNi45IDYwLjYtNjAuM2wwLTU1LjdjMTAuNiA5LjggMjQuOCAxNS44IDQwLjQgMTUuOGwxLjEgMGMzMyAwIDU5LjgtMjYuOCA1OS44LTU5LjggMC0yMS0xMC44LTM5LjUtMjcuMi01MC4xIDE2LjQtMTAuNyAyNy4yLTI5LjEgMjcuMi01MC4xIDAtMzMtMjYuOC01OS44LTU5LjgtNTkuOEwxNzMuNyA5NnptNDEuNiAyMTkuOGwwIDM5LjljMCAyMi42LTE4LjYgNDEtNDEuMyA0MS0yMi40IDAtNDAuNy0xOC4yLTQwLjctNDAuNSAwLTIyLjMgMTguMS00MC40IDQwLjMtNDAuNGw0MS43IDB6bTAtMTAwLjNsMCA4MC45LTQxLjcgMGMtMjIuMy0uMS00MC4zLTE4LjItNDAuMy00MC41IDAtMjIuMyAxOC4xLTQwLjUgNDAuNS00MC41bDQxLjYgMHptNjAuOCAwYzIyLjMgMCA0MC41IDE4LjEgNDAuNSA0MC41cy0xOC4xIDQwLjUtNDAuNSA0MC41bC0xLjEgMGMtMjIuMyAwLTQwLjQtMTguMS00MC40LTQwLjVzMTguMS00MC41IDQwLjQtNDAuNWwxLjEgMHptLTYwLjgtMTkuM2wtNDEuNiAwYy0yMi4zIDAtNDAuNS0xOC4xLTQwLjUtNDAuNHMxOC4xLTQwLjUgNDAuNS00MC41bDQxLjYgMCAwIDgwLjl6bTYwLjgtODAuOWMyMi4zIDAgNDAuNSAxOC4xIDQwLjUgNDAuNXMtMTguMSA0MC40LTQwLjUgNDAuNGwtNDEuNSAwIDAtODAuOSA0MS41IDB6Il19LGVwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNhIixpY29uOls1MTIsNTEyLFtdLCJmNGVmIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3pNMTQ1LjcgMjIxYzEzLTgzLjkgODAuNS05NS43IDEwOC45LTk1LjcgOTkuOCAwIDEyNy41IDgyLjUgMTI3LjUgMTM0LjIgMCA2My42LTQxIDEzMi45LTEyOC45IDEzMi45LTM4LjkgMC05OS4xLTIwLTEwOS40LTk3bDYyLjUgMGMxLjUgMzAuMSAxOS42IDQ1LjIgNTQuNSA0NS4yIDIzLjMgMCA1OC0xOC4yIDU4LTgyLjggMC04Mi41LTQ5LjEtODAuNi01Ni43LTgwLjYtMzMuMSAwLTUxLjcgMTQuNi01NS44IDQzLjhsMTguMiAwLTQ5LjIgNDkuMi00OS00OS4yIDE5LjQgMHoiXX0sdHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNocm9tZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI2OCIsIk0wIDI1NmMwLTQ2LjYgMTIuNS05MC40IDM0LjMtMTI4LjlMMTQ0LjEgMzE4LjNjMjEuOSAzOS4yIDYzLjggNjUuNyAxMTEuOSA2NS43IDE0LjMgMCAyNy4xLTIuMyA0MC44LTYuNkwyMjAuNSA1MDkuNkM5NS45IDQ5Mi4zIDAgMzg1LjMgMCAyNTZ6bTM2NS4xIDY1LjZjMTIuMy0xOS4yIDE4LjktNDIuNSAxOC45LTY1LjYgMC0zOC4yLTE2LjgtNzIuNS00My4zLTk2bDE1Mi43IDBjMTIgMjkuNiAxOC42IDYyLjEgMTguNiA5NiAwIDE0MS40LTExNC42IDI1NS4xLTI1NiAyNTZMMzY1LjEgMzIxLjZ6TTQ3Ny44IDEyOEwyNTYgMTI4Yy02Mi45IDAtMTEzLjcgNDQuMS0xMjUuNSAxMDIuN0w1NC4yIDk4LjVDMTAxIDM4LjUgMTc0IDAgMjU2IDAgMzUwLjggMCA0MzMuNSA1MS41IDQ3Ny44IDEyOHpNMzQ0IDI1NmE4OCA4OCAwIDEgMSAtMTc2IDAgODggODggMCAxIDEgMTc2IDB6Il19LHJwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0cmFkZS1mZWRlcmF0aW9uIixpY29uOls1MTIsNTEyLFtdLCJmNTEzIiwiTTI1NiA4LjhhMjQ3LjIgMjQ3LjIgMCAxIDAgMCA0OTQuNCAyNDcuMiAyNDcuMiAwIDEgMCAwLTQ5NC40em0wIDExLjZhMjM1LjYgMjM1LjYgMCAxIDEgMCA0NzEuMiAyMzUuNiAyMzUuNiAwIDEgMSAwLTQ3MS4yek00MTEuMSAxNjMuMWwwLTQ2LjgtMTkzLjggMCAwIDgxLjctMTU1LjEgMCAzNi43IDQ2IDExNy43IDAgMCAxOTYuOCA0OC44IDAgMC0xOTUuOCA4My4zIDAgMC00Ny04My4zIDAgMC0zNC44IDE0NS43IDAgMC0uMXptLTczLjMgNDUuMWwwIDIzLjktODIuOSAwIDAgMTk3LjQtMjYuOCAwIDAtMTk3LjQtMTIzLjggMC0yMC4xLTIzLjkgMTQzLjkgMCAwLTgwLjYgMTcxLjggMCAwIDI0LjQtMTQ1IDAgMCA1Ni4yIDgyLjkgMHptLTE2MS4zLTY5bC0xMi40LTIwLjcgMi4xIDIzLjgtMjMuNSA1LjQgMjMuMyA1LjQtMi4xIDI0IDEyLjMtMjAuNSAyMi4yIDkuNS0xNS43LTE4LjEgMTUuOC0xOC4xLTIyIDkuM3ptLTI5LjYtMTkuN2w5LjMtMTEuNS0xMi43IDUuOS04LTEyLjQgMS43IDEzLjktMTQuMyAzLjggMTMuNyAyLjctLjggMTQuNyA2LjgtMTIuMiAxMy44IDUuMy05LjUtMTAuMnpNMzEyLjMgMjY0LjdsLTEzLjEgNS42LTcuMy0xMi4yIDEuMyAxNC4yLTEzLjkgMy4yIDEzLjkgMy4yLTEuMiAxNC4yIDcuMy0xMi4yIDEzLjEgNS41LTkuNC0xMC43IDkuMy0xMC44em0xMDYuOS03Ny4ybC0yMC45IDkuMS0xMi0xOS42IDIuMiAyMi43LTIyLjMgNS40IDIyLjIgNC45LTEuOCAyMi45IDExLjUtMTkuNiAyMS4yIDguOC0xNS4xLTE3IDE1LTE3LjZ6TTI1NiAyOS45YTIyNi4xIDIyNi4xIDAgMSAwIDAgNDUyLjIgMjI2LjEgMjI2LjEgMCAxIDAgMC00NTIuMnpNMzUwLjYgMTk2bDAgNTEtODMuMyAwIDAgMTk1LjctNTIuNyAwIDAtMTk2LjgtMTE2LjcgMC00MC00OS45IDE1Ny40IDAgMC04MS42IDE5Ny44IDAgMCA1MC43LTE0NS43IDAgMCAzMC45IDgzLjIgMHpNMjU2IDQzLjJjNjAuMyAwIDExNC44IDI1IDE1My42IDY1LjJsLTE5OS4xIDAgMCA4MS42LTE1Ny40IDBDODEuMSAxMDQuOCAxNjEuNCA0My4yIDI1NiA0My4yem0wIDQyNy4xYy0xMTcuOSAwLTIxMy42LTk1LjYtMjEzLjYtMjEzLjUgMC0yMS4yIDMuMS00MS44IDguOS02MS4xbDQzLjggNTYuMyAxMTQuNyAwIDAgMTk2LjggNjQuNiAwIDAtMTk1LjggODMuMyAwIDAtNjIuNy04My4yIDAgMC0xOS4yIDE0NS42IDAgMC01MC44YzMwLjggMzcgNDkuMyA4NC42IDQ5LjMgMTM2LjUgLjEgMTE3LjktOTUuNSAyMTMuNS0yMTMuNCAyMTMuNXpNMTg2LjggMjc1bC0xMS0yMS40IDEuNyAyNC41LTIzLjcgMy45IDIzLjggNS45LTMuNyAyMy44IDEzLTIwLjkgMjEuNSAxMC44LTE1LjgtMTguOCAxNi45LTE3LjEtMjIuNyA5LjN6Il19LGFwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2YWFkaW4iLGljb246WzQ0OCw1MTIsW10sImY0MDgiLCJNMjI0LjUgMTQwLjdDMjI2IDEyMy4xIDIyOS40IDg4IDI3NC4zIDg4bDk4LjYgMGMyMC43IDAgMzIuMS03LjggMzIuMS0yMS42bDAtMTIuM2MwLTEyLjIgOS4zLTIyLjEgMjEuNS0yMi4xUzQ0OCA0MS45IDQ0OCA1NC4xbDAgMzYuNWMwIDQyLjktMjEuNSA2Mi02Ni44IDYybC0xMDAuNSAwYy0zMC4xIDAtMzMgMTQuNy0zMyAyNy4xIDAgMS4zLS4xIDIuNS0uMiAzLjctLjcgMTIuMy0xMC45IDIyLjItMjMuNCAyMi4ycy0yMi43LTkuOC0yMy40LTIyLjJjLS4xLTEuMi0uMi0yLjQtLjItMy43IDAtMTIuMy0zLTI3LjEtMzMtMjcuMWwtMTAwLjcgMEMyMS41IDE1Mi42IDAgMTMzLjUgMCA5MC42TDAgNTQuMUMwIDQxLjkgOS40IDMyIDIxLjYgMzJzMjEuNSA5LjkgMjEuNSAyMi4xbDAgMTIuM0M0My4xIDgwLjIgNTQuNSA4OCA3NS4yIDg4bDk4LjYgMGM0NC44IDAgNDguMyAzNS4xIDQ5LjggNTIuN2wuOSAwek0yMjQgNDU2YzExLjUgMCAyMS40LTcgMjUuNy0xNi4zIDEuMS0xLjggOTcuMS0xNjkuNiA5OC4yLTE3MS40IDExLjktMTkuNi0zLjItNDQuMy0yNy4yLTQ0LjMtMTMuOSAwLTIzLjMgNi40LTI5LjggMjAuM0wyMjQgMzYyIDE1Ny4xIDI0NC4zYy02LjQtMTMuOS0xNS45LTIwLjMtMjkuOC0yMC4zLTI0IDAtMzkuMSAyNC42LTI3LjIgNDQuMyAxLjEgMS45IDk3LjEgMTY5LjYgOTguMiAxNzEuNCA0LjMgOS4zIDE0LjIgMTYuMyAyNS43IDE2LjN6Il19LGlwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZXZpYW50YXJ0IixpY29uOlszMjAsNTEyLFtdLCJmMWJkIiwiTTMyMCA5My4ybC05OC4yIDE3OS4xIDcuNCA5LjUgOTAuOCAwIDAgMTI3LjctMTYwLjkgMC0xMy41IDkuMi00My43IDg0Yy0uMyAwLTguNiA4LjYtOS4yIDkuMmwtOTIuNyAwIDAtOTMuMiA5My4yLTE3OS40LTcuNC05LjItODUuOCAwIDAtMTI3LjYgMTU2IDAgMTMuNS05LjIgNDMuNy04NGMuMyAwIDguNi04LjYgOS4yLTkuMmw5Ny42IDAgMCA5My4xeiJdfSx3Xz17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWRpdW0iLGljb246WzQ0OCw1MTIsWzYyNDA3LCJtZWRpdW0tbSJdLCJmMjNhIiwiTTM2OS40IDMyYzQzLjQgMCA3OC42IDM1LjIgNzguNiA3OC42bDAgODMuOGMtMS45LS4xLTMuOC0uMi01LjctLjJsLS40IDBjLTEwIDAtMjIuMyAyLjQtMzEuMSA2LjgtMTAgNC42LTE4LjcgMTEuNS0yNiAyMC42LTExLjggMTQuNi0xOC45IDM0LjMtMjAuNiA1Ni40LS4xIC43LS4xIDEuMy0uMiAycy0uMSAxLjItLjEgMS45Yy0uMSAxLjItLjEgMi40LS4xIDMuNiAwIDEuOS0uMSAzLjggMCA1LjggMS4yIDUwLjEgMjguMiA5MC4yIDc2LjMgOTAuMiAyLjcgMCA1LjMtLjEgNy45LS40bDAgMjAuNGMwIDQzLjQtMzUuMiA3OC42LTc4LjYgNzguNkw3OC42IDQ4MEMzNS4yIDQ4MCAwIDQ0NC44IDAgNDAxLjRMMCAxMTAuNkMwIDY3LjIgMzUuMiAzMiA3OC42IDMybDI5MC44IDB6TTgyLjMgMTM4LjlsLjMgLjFjMTMuMiAzIDE5LjggNy40IDE5LjggMjMuNGwwIDE4Ny4yYzAgMTYtNi43IDIwLjQtMTkuOSAyMy40bC0uMyAuMSAwIDIuOCA1Mi44IDAgMC0yLjgtLjMtLjFjLTEzLjItMy0xOS45LTcuNC0xOS45LTIzLjRsMC0xNzYuMyA4Ni4xIDIwMi41IDQuOSAwIDg4LjYtMjA4LjIgMCAxODYuNmMtMS4xIDEyLjYtNy44IDE2LjUtMTkuNyAxOS4ybC0uMyAuMSAwIDIuNyA5MS45IDAgMC0yLjctLjMtLjFjLTExLjktMi43LTE4LjctNi42LTE5LjktMTkuMmwtLjEtMTkxLjggLjEgMGMwLTE2IDYuNy0yMC40IDE5LjktMjMuNGwuMy0uMSAwLTIuNy03Mi4yIDAtNjcgMTU3LjQtNjctMTU3LjQtNzcuOCAwIDAgMi43ek00NDggMzQwLjNjLTI1LjEtNy40LTQzLTM1LjEtNDEuMi02Ny44bDAgMCA0MS4xIDAgMCA2Ny44em0tNi40LTEzNS42YzIuMyAwIDQuNCAuMyA2LjQgLjlsMCA1Ny40LTQwLjIgMGMxLjUtMzMuNiAxMy42LTU3LjkgMzMuOC01OC4zeiJdfSxzcHI9d18sbnByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZW5jYXJ0IixpY29uOls2NDAsNTEyLFtdLCJmMjNkIiwiTTMzMS44IDQ0MC40YTQ1LjggNDUuOCAwIDEgMSA5MS41IC4zIDQ1LjggNDUuOCAwIDEgMSAtOTEuNS0uM3pNMTY5LjQgMzk0LjlhNDUuNyA0NS43IDAgMSAwIC4zIDkxLjMgNDUuNyA0NS43IDAgMSAwIC0uMy05MS4zem0yOTEuNy0yNzBjLTMwMi4yIDAtMzc5LjItMTIuOC00NjEuMS05OS4yIDM0LjQgNTEuNyA1My4zIDE0OC45IDM3My4xIDE0NC4yIDMzMy4zLTUgMTMwIDg2LjEgNzAuOCAxODguOSAxODYuNy0xNjYuNyAzMTkuNC0yMzMuOSAxNy4yLTIzMy45eiJdfSxvcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieS1jb21iaW5hdG9yIixpY29uOls0NDgsNTEyLFtdLCJmMjNiIiwiTTQ0OCAzMmwwIDQ0OC00NDggMCAwLTQ0OCA0NDggMHpNMjM2IDI4Ny41bDc3LjUtMTQ1LjUtMzIuNyAwLTQ1LjggOTFjLTQuNyA5LjMtOSAxOC4zLTEyLjggMjYuOGwtMTIuMi0yNi44LTQ1LjItOTEtMzUgMCA3Ni43IDE0My44IDAgOTQuNSAyOS41IDAgMC05Mi44eiJdfSxscHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGluZSIsaWNvbjpbNTEyLDUxMixbXSwiZjNjMCIsIk0zMTEgMTk2LjhsMCA4MS4zYzAgMi4xLTEuNiAzLjctMy43IDMuN2wtMTMgMGMtMS4zIDAtMi40LS43LTMtMS41TDI1NCAyMzAgMjU0IDI3OC4yYzAgMi4xLTEuNiAzLjctMy43IDMuN2wtMTMgMGMtMi4xIDAtMy43LTEuNi0zLjctMy43bDAtODEuM2MwLTIuMSAxLjYtMy43IDMuNy0zLjdsMTIuOSAwYzEuMSAwIDIuNCAuNiAzIDEuNmwzNy4zIDUwLjMgMC00OC4yYzAtMi4xIDEuNi0zLjcgMy43LTMuN2wxMyAwYzIuMS0uMSAzLjggMS42IDMuOCAzLjVsMCAuMXptLTkzLjctMy43bC0xMyAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA4MS4zYzAgMi4xIDEuNiAzLjcgMy43IDMuN2wxMyAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTgxLjNjMC0xLjktMS42LTMuNy0zLjctMy43em0tMzEuNCA2OC4xbC0zNS42IDAgMC02NC40YzAtMi4xLTEuNi0zLjctMy43LTMuN2wtMTMgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDEgLjMgMS44IDEgMi41IC43IC42IDEuNSAxIDIuNSAxbDUyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xM2MwLTEuOS0xLjYtMy43LTMuNS0zLjdsLjEgMHptMTkzLjctNjguMWwtNTIuMyAwYy0xLjkgMC0zLjcgMS42LTMuNyAzLjdsMCA4MS4zYzAgMS45IDEuNiAzLjcgMy43IDMuN2w1Mi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTMuMWMwLTIuMS0xLjYtMy43LTMuNy0zLjdsLTM1LjUgMCAwLTEzLjYgMzUuNSAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzLjFjMC0yLjEtMS42LTMuNy0zLjctMy43bC0zNS41IDAgMC0xMy43IDM1LjUgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xM2MtLjEtMS45LTEuNy0zLjctMy43LTMuN2wuMSAwek01MTIgOTMuNGwwIDMyNmMtLjEgNTEuMi00Mi4xIDkyLjctOTMuNCA5Mi42bC0zMjYgMEM0MS40IDUxMS45LS4xIDQ2OS44IDAgNDE4LjZsMC0zMjZDLjEgNDEuNCA0Mi4yLS4xIDkzLjQgMGwzMjYgMGM1MS4yIC4xIDkyLjcgNDIuMSA5Mi42IDkzLjR6TTQ0MS42IDIzMy41YzAtODMuNC04My43LTE1MS4zLTE4Ni40LTE1MS4zUzY4LjggMTUwLjEgNjguOCAyMzMuNWMwIDc0LjcgNjYuMyAxMzcuNCAxNTUuOSAxNDkuMyAyMS44IDQuNyAxOS4zIDEyLjcgMTQuNCA0Mi4xLS44IDQuNy0zLjggMTguNCAxNi4xIDEwLjFzMTA3LjMtNjMuMiAxNDYuNS0xMDguMmMyNy0yOS43IDM5LjktNTkuOCAzOS45LTkzLjFsMC0uMnoiXX0sY3ByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFtaWxpYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM2ZCIsIk0yNDAuMiAzMmMtNjEuOSAwLTEzMS41IDE2LjktMTg0LjIgNTUuNC01LjEgMy4xLTkuMSA5LjItNy4yIDE5LjQgMS4xIDUuMSA1LjEgMjcuNCAxMC4yIDM5LjYgNC4xIDEwLjIgMTQuMiAxMC4yIDIwLjMgNi4xIDMyLjUtMjIuMyA5Ni41LTQ3LjcgMTUyLjMtNDcuNyA1Ny45IDAgNTguOSAyOC40IDU4LjkgNzMuMWwwIDM4LjVDMjAzLjEgMjI3LjcgNzguMyAyNTEgNDYuOCAyNjQuMiAxMS4zIDI4MC41IDE2LjQgMzU3LjcgMTYuNCAzNzZTMzEuNiA0ODAgMTQxLjMgNDgwYzQ3LjggMCAxMTMuNy0yMC43IDE1My4zLTQyLjFsMCAyNS40YzAgMyAyLjEgOC4yIDYuMSA5LjEgMy4xIDEgNTAuNyAyIDU5LjkgMnM2Mi41IC4zIDY2LjUtLjdjNC4xLTEgNS4xLTYuMSA1LjEtOS4xbDAtMjk2LjZjLS4xLTgwLjMtNTcuOS0xMzYtMTkyLTEzNnptNTAuMiAzNDhjLTIxLjQgMTMuMi00OC43IDI0LjQtNzkuMSAyNC40LTUyLjggMC01OC45LTMzLjUtNTktNDQuNyAwLTEyLjItMy00Mi43IDE4LjMtNTIuOSAyNC4zLTEzLjIgNzUuMS0yOS40IDExOS44LTMzLjVsMCAxMDYuN3oiXX0sZHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFzeW1tZXRyaWsiLGljb246WzU3Niw1MTIsW10sImYzNzIiLCJNNTE3LjUgMzA5LjJjMzguOC00MCA1OC4xLTgwIDU4LjUtMTE2LjEgLjgtNjUuNS01OS40LTExOC4yLTE2OS40LTEzNS0xMjguNy0xOS43LTI4OC41IDE1LjUtNDA2LjYgODIuNCA1Mi0yNi41IDExMC42LTQ4LjIgMTcwLjctNTguMiA3NC41LTIwLjUgMTUzLTI1LjQgMjIxLjMtMTQuOCAxNTIuNSAyMy44IDE5Ni44IDEyNy41IDk4LjggMjMxLjctMTAuMiAxMC44LTIyIDIxLjEtMzUgMzAuNkwzMDQuOSAxMDMuNCAxMTQuNyAzODguOWMtNjUuNi0yOS40LTc2LjUtOTAuMi0xOS4xLTE1MS4yIDIwLjgtMjIuMiA0OC4zLTQxLjkgNzkuNS01OC4xIDIwLTEyLjIgMzkuNy0yMi42IDYyLTMwLjctNjUuMSAyMC4zLTEyMi43IDUyLjktMTYxLjYgOTIuOS0yNy43IDI4LjYtNDEuNCA1Ny4xLTQxLjcgODIuOS0uNSAzNS4xIDIzLjQgNjUuMSA2OC40IDgzbC0zNC41IDUxLjcgMTAxLjYgMCAyMi0zNC40YzIyLjIgMSA0NS4zIDAgNjguNi0yLjdsLTIyLjggMzcuMSAxMzUuNSAwLTMyLjYtNTMuMWMxOC42LTUuMyAzNi45LTExLjUgNTQuNS0xOC43bDQ1LjkgNzEuOCAxMDEuNiAwLTczLjQtMTEwLjRjMTguNS0xMi4xIDM1LTI1LjUgNDguOS0zOS44ek0zMjkuOSAzODkuN2wtMjUtNDAuNi0zMi43IDUzLjNjLTIzLjQgMy41LTQ2LjcgNS4xLTY5LjIgNC40bDEwMS45LTE1OS4zIDc4LjcgMTIzYy0xNy4yIDcuNC0zNS4zIDEzLjktNTMuNyAxOS4yeiJdfSx1cHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGhhYnJpY2F0b3IiLGljb246WzUxMiw1MTIsW10sImYzZGIiLCJNMzMxLjEgMjYyLjFsLS4xLTEzczIxLjctMTkuOCAyMS4xLTIxLjJsLTkuNS0yMGMtLjYtMS40LTI5LjUtLjUtMjkuNS0uNWwtOS40LTkuM3MuMi0yOC41LTEuMi0yOS4xbC0yMC4xLTkuMmMtMS40LS42LTIwLjcgMjEtMjAuNyAyMWwtMTMuMS0uMnMtMjAuNS0yMS40LTIxLjktMjAuOGwtMjAgOC4zYy0xLjQgLjUgLjIgMjguOSAuMiAyOC45bC05LjEgOS4xcy0yOS4yLS45LTI5LjcgLjRMMTYwIDIyNi4zYy0uNiAxLjQgMjEgMjEgMjEgMjFsLjEgMTIuOVMxNTkuNCAyODAgMTYwIDI4MS40bDkuNSAyMGMuNiAxLjQgMjkuNSAuNSAyOS41IC41bDkuNCA5LjNzLS4yIDMxLjggMS4yIDMyLjNsMjAuMSA4LjNjMS40IC42IDIwLjctMjMuNSAyMC43LTIzLjVsMTMuMSAuMnMyMC41IDIzLjggMjEuOCAyMy4zbDIwLTcuNWMxLjQtLjYtLjItMzIuMS0uMi0zMi4xbDkuMS05LjFzMjkuMiAuOSAyOS43LS41bDguMS0xOS44Yy43LTEuMS0yMC45LTIwLjctMjAuOS0yMC43em0tNDQuOS04LjdjLjcgMTcuMS0xMi44IDMxLjYtMzAuMSAzMi40cy0zMi4xLTEyLjUtMzIuOC0yOS42IDEyLjgtMzEuNiAzMC4xLTMyLjNjMTcuMy0uOCAzMi4xIDEyLjUgMzIuOCAyOS41em0yMDEuMi0zNy45bC05Ny05Ny0uMSAuMWMtNzUuMS03My4zLTE5NS40LTcyLjgtMjY5LjggMS42LTUwLjkgNTEtMjcuOCAyNy45LTk1LjcgOTUuMy0yMi4zIDIyLjMtMjIuMyA1OC43IDAgODEgNjkuOSA2OS40IDQ2LjQgNDYgOTcuNCA5N2wuMS0uMWM3NS4xIDczLjMgMTk1LjQgNzIuOSAyNjkuOC0xLjYgNTEtNTAuOSAyNy45LTI3LjkgOTUuMy05NS4zIDIyLjMtMjIuMyAyMi4zLTU4LjcgMC04MXpNMzYzLjUgMTQ4LjJhMTUyLjMgMTUyLjMgMCAxIDEgLTIxNSAyMTUuNiAxNTIuMyAxNTIuMyAwIDEgMSAyMTUtMjE1LjZ6Il19LHBwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJib3RzIixpY29uOls2NDAsNTEyLFtdLCJlMzQwIiwiTTg2LjMgMTk3LjhjLTgtLjEtMTUuOSAxLjctMjMuMSA1LjFzLTEzLjUgOC42LTE4LjQgMTQuOWwwLTYxLjljMC0yLjItLjktNC4zLTIuNC01LjhzLTMuNi0yLjQtNS44LTIuNGwtMjguNCAwYy0yLjIgMC00LjMgLjktNS44IDIuNFMwIDE1My44IDAgMTU2TDAgMzMzLjZjMCAxLjEgLjIgMi4xIC42IDMuMXMxIDEuOSAxLjggMi43IDEuNyAxLjQgMi43IDEuOCAyLjEgLjYgMy4xIC42bDI4LjQgMGMxLjEgMCAyLjEtLjIgMy4xLS42czEuOS0xIDIuNy0xLjggMS40LTEuNyAxLjgtMi43IC42LTIuMSAuNi0zLjFsMC04LjFjMTEuNiAxMy40IDI1LjkgMTkuOCA0MS42IDE5LjggMzQuNiAwIDYxLjktMjYuMiA2MS45LTczLjggMC00NS45LTI3LTczLjYtNjEuOS03My42ek03MS41IDMwNS43Yy05LjYgMC0yMS4yLTQuOS0yNi43LTEyLjVsMC00M2M1LjUtNy42IDE3LjItMTIuOCAyNi43LTEyLjggMTcuNyAwIDMxLjEgMTMuMSAzMS4xIDM0IDAgMjEuMi0xMy40IDM0LjMtMzEuMSAzNC4zem0xNTYuNC01OWExNy40IDE3LjQgMCAxIDAgMCAzNC44IDE3LjQgMTcuNCAwIDEgMCAwLTM0Ljh6bTQ2LjEtOTBsMC00NC43YzIuOC0xLjIgNS4yLTMuMyA2LjYtNnMxLjktNS44IDEuMy04LjktMi4yLTUuNy00LjYtNy43LTUuNC0zLTguNC0zLTYuMSAxLjEtOC40IDMtNCA0LjctNC42IDcuNy0uMSA2LjEgMS4zIDguOSAzLjggNC44IDYuNiA2bDAgNDQuN2MtMjggMS4zLTU0LjQgMTMuNi03My42IDM0LjFzLTI5LjUgNDcuNy0yOC44IDc1LjggMTIuMyA1NC43IDMyLjQgNzQuMyA0NyAzMC42IDc1LjEgMzAuNiA1NS0xMSA3NS4xLTMwLjYgMzEuNy00Ni4zIDMyLjQtNzQuMy05LjctNTUuMy0yOC44LTc1LjgtNDUuNS0zMi44LTczLjYtMzQuMXptODYgMTA3LjRjMCAzMC41LTQwLjggNTUuMy05MS4xIDU1LjNzLTkxLjEtMjQuNy05MS4xLTU1LjMgNDAuOC01NS4zIDkxLjEtNTUuMyA5MS4xIDI0LjcgOTEuMSA1NS4zbDAgMHptLTUwLjIgMTcuNGMzLjQgMCA2LjgtMSA5LjctMi45czUuMS00LjYgNi40LTcuOCAxLjctNi43IDEtMTAuMS0yLjMtNi41LTQuOC04LjktNS41LTQuMS04LjktNC44LTYuOS0uMy0xMC4xIDEtNS45IDMuNS03LjggNi40LTIuOSA2LjItMi45IDkuN2MwIDQuNiAxLjggOSA1LjEgMTIuM3M3LjcgNS4xIDEyLjMgNS4xbDAgMHptMjcwLjktMzFjLTE0LjgtMi42LTIyLjQtMy44LTIyLjQtOS45IDAtNS41IDcuMy05LjkgMTcuNy05LjkgMTIuMiAuMSAyNC4yIDMuNiAzNC41IDEwLjEgMS44IDEuMiA0IDEuNiA2LjIgMS4xczQtMS43IDUuMS0zLjZjLjEtLjEgLjEtLjIgLjItLjNsOC42LTE0LjljMS4xLTEuOSAxLjQtNC4xIC44LTYuMXMtMS45LTMuOS0zLjctNWMtMTUuNy05LjQtMzMuNy0xNC4zLTUyLTE0LjEtMzkgMC02MC4yIDIxLjUtNjAuMiA0Ni4yIDAgMzYuMyAzMy43IDQxLjkgNTcuNiA0NS42IDEzLjQgMi4zIDI0LjEgNC40IDI0LjEgMTEgMCA2LjQtNS41IDEwLjgtMTguOSAxMC44LTEzLjYgMC0zMS02LjItNDIuNi0xMy42LS45LS42LTEuOS0xLTMtMS4ycy0yLjEtLjItMy4yIC4xLTIuMSAuNy0yLjkgMS4zLTEuNiAxLjQtMi4yIDIuM2MwIC4xLS4xIC4xLS4xIC4ybC0xMC4yIDE2LjljLTEuMSAxLjgtMS40IDQtMSA2czEuNyAzLjkgMy41IDVjMTUuMiAxMC4zIDM3LjcgMTYuNyA1OS40IDE2LjcgNDAuNCAwIDY0LTE5LjggNjQtNDYuNSAwLTM4LjEtMzUuNS00My45LTU5LjMtNDguM3ptLTk1LjkgNjAuOGMtLjUtMi0xLjgtMy43LTMuNi00LjhzLTMuOS0xLjUtNS45LTEuMWMtMS40IC4zLTIuOCAuNC00LjIgLjQtNy44IDAtMTIuNS02LjEtMTIuNS0xNC4ybDAtNTEuMiAyMC4zIDBjMi4yIDAgNC4yLS45IDUuOC0yLjRzMi40LTMuNiAyLjQtNS44bDAtMjIuN2MwLTIuMi0uOS00LjItMi40LTUuOHMtMy42LTIuNC01LjgtMi40bC0yMC4zIDAgMC0zMC4yYzAtMi4yLS45LTQuMi0yLjQtNS44cy0zLjYtMi40LTUuOC0yLjRsLTI4LjIgMGMtMi4yIDAtNC4yIC45LTUuOCAyLjRzLTIuNCAzLjYtMi40IDUuOGwwIDMwLjItMTUuMSAwYy0xLjEgMC0yLjEgLjItMy4xIC42cy0xLjkgMS0yLjYgMS44LTEuNCAxLjctMS44IDIuNi0uNiAyLS42IDMuMWwwIDIyLjdjMCAxLjEgLjIgMi4xIC42IDMuMXMxIDEuOSAxLjggMi42IDEuNyAxLjQgMi42IDEuOCAyIC42IDMuMSAuNmwxNS4xIDAgMCA2My43YzAgMjcgMTUuNCA0MS4zIDQzLjkgNDEuMyAxMi4yIDAgMjEuNC0yLjIgMjcuNi01LjQgMS42LS44IDIuOS0yLjIgMy43LTMuOXMuOS0zLjYgLjUtNS40bC01LTE5LjN6Il19LGZwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aW5lIixpY29uOlszODQsNTEyLFtdLCJmMWNhIiwiTTM4NCAyNTQuN2wwIDUyLjFjLTE4LjQgNC4yLTM2LjkgNi4xLTUyLjEgNi4xLTM2LjkgNzcuNC0xMDMgMTQzLjgtMTI1LjEgMTU2LjItMTQgNy45LTI3LjEgOC40LTQyLjctLjgtMjcuMS0xNi4zLTEyOS45LTEwMC42LTE2NC4xLTM2NS42bDc0LjUgMGMxOC43IDE1OS4xIDY0LjUgMjQwLjcgMTE0LjggMzAxLjggMjcuOS0yNy45IDU0LjgtNjUuMSA3NS42LTEwNi45LTQ5LjgtMjUuMy04MC4xLTgwLjktODAuMS0xNDUuNiAwLTY1LjYgMzcuNy0xMTUuMSAxMDIuMi0xMTUuMSAxMTQuOSAwIDEwNi4yIDEyNy45IDgxLjYgMTgxLjUgMCAwLTQ2LjQgOS4yLTYzLjUtMjAuNSAzLjQtMTEuMyA4LjItMzAuOCA4LjItNDguNSAwLTMxLjMtMTEuMy00Ni42LTI4LjQtNDYuNi0xOC4yIDAtMzAuOCAxNy4xLTMwLjggNTAgLjEgNzkuMiA1OS40IDExOC43IDEyOS45IDEwMS45eiJdfSxocHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVkcnQiLGljb246WzU3Niw1MTIsW10sImYzYzgiLCJNMTI5LjcgMjU2YzAgMTIxLjggODMuOSAyMjIuOCAxOTMuNSAyNDEuMS0xOC43IDQuNS0zOC4yIDYuOS01OC4yIDYuOS0xMzcuNiAwLTI0OS0xMTEtMjQ5LTI0OFMxMjcuNCA4IDI2NC45IDhjMjAuMSAwIDM5LjYgMi40IDU4LjIgNi45LTEwOS42IDE4LjMtMTkzLjQgMTE5LjMtMTkzLjQgMjQxLjF6TTQyNy4xIDM1Ni4zYy03Ny43IDU1LjQtMTc5LjYgNDcuNS0yNDAuNC0xNC42IDUuNSAxNC4xIDEyLjcgMjcuNyAyMS43IDQwLjUgNjEuNiA4OC4yIDE4Mi40IDEwOS4zIDI2OS43IDQ3czEwOC4xLTE4NC4zIDQ2LjUtMjcyLjZjLTktMTIuOS0xOS4zLTI0LjMtMzAuNS0zNC4yIDM3LjQgNzguOCAxMC43IDE3OC41LTY3IDIzMy45em0tMjE4LjgtMjQ0Yy0xLjQgMS0yLjcgMi4xLTQgMy4xIDY0LjMtMTcuOCAxMzUuOSA0IDE3OC45IDYwLjUgMzUuNyA0NyA0Mi45IDEwNi42IDI0LjQgMTU4IDU2LjctNTYuMiA2Ny42LTE0Mi4xIDIyLjMtMjAxLjgtNTAtNjUuNS0xNDkuMS03NC40LTIyMS42LTE5Ljh6TTMxMiAyMjRjLTQuNCAwLTgtMy42LTgtOGwwLTQwYzAtNC40LTMuNi04LTgtOGwtNDggMGMtNC40IDAtOCAzLjYtOCA4bDAgNDBjMCA0LjQtMy42IDgtOCA4bC00MCAwYy00LjQgMC04IDMuNi04IDhsMCA0OGMwIDQuNCAzLjYgOCA4IDhsNDAgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MGMwIDQuNCAzLjYgOCA4IDhsNDggMGM0LjQgMCA4LTMuNiA4LThsMC00MGMwLTQuNCAzLjYtOCA4LThsNDAgMGM0LjQgMCA4LTMuNiA4LThsMC00OGMwLTQuNC0zLjYtOC04LThsLTQwIDB6Il19LG1wcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvc2kiLGljb246WzUxMiw1MTIsW10sImY0MWEiLCJNOCAyNjYuNGMyLjMtMTM1LjggOTcuNC0yMzIuNCAyMTMuOC0yNDguMSAxMzguOC0xOC42IDI1NS42IDc1LjggMjc4IDIwMS4xIDIxLjMgMTE4LjgtNDQgMjMwLTE1MS42IDI3NC05LjMgMy44LTE0LjQgMS43LTE4LTcuNy0xNy44LTQ2LjMtMzUuNi05Mi42LTUzLjQtMTM5LTMuMS04LjEtMS0xMy4yIDctMTYuOCAyNC4yLTExIDM5LjMtMjkuNCA0My4zLTU1LjggMS41LTkuNyAxLTE5LjYtMS41LTI5LjFzLTYuOS0xOC40LTEyLjktMjYuMS0xMy42LTE0LjEtMjIuMi0xOC44LTE4LjEtNy41LTI3LjktOC4zYy0zOS0zLjQtNzEuOCAyMy43LTc3LjUgNTkuNy01LjIgMzMgMTEuMSA2My43IDQxLjkgNzcuNyA5LjYgNC40IDExLjUgOC42IDcuOCAxOC40LTE3LjkgNDYuNi0zNS44IDkzLjItNTMuNyAxMzkuOS0yLjYgNi45LTguMyA5LjMtMTUuNSA2LjUtNTIuNi0yMC4zLTEwMS40LTYxLTEzMC44LTExOS0yNC45LTQ5LjItMjUuMi04Ny43LTI2LjgtMTA4Ljd6bTIwLjktMS45Yy40IDYuNiAuNiAxNC4zIDEuMyAyMi4xIDYuMyA3MS45IDQ5LjYgMTQzLjUgMTMxIDE4My4xIDMuMiAxLjUgNC40IC44IDUuNi0yLjMgMTQuOS0zOS4xIDI5LjktNzguMiA0NS0xMTcuMyAxLjMtMy4zIC42LTQuOC0yLjQtNi43LTMxLjYtMTkuOS00Ny4zLTQ4LjUtNDUuNi04NiAxLTIxLjYgOS4zLTQwLjUgMjMuOC01Ni4zIDMwLTMyLjcgNzctMzkuOCAxMTUuNS0xNy42IDE1LjYgOSAyOC4yIDIyLjMgMzYuMiAzOC40czExLjIgMzQuMiA5IDUyYy0zLjYgMzAuNi0xOS4zIDUzLjktNDUuNyA2OS44LTIuNyAxLjYtMy41IDIuOS0yLjMgNiAxNS4yIDM5LjIgMzAuMyA3OC40IDQ1LjIgMTE3LjcgMS4yIDMuMSAyLjQgMy44IDUuNiAyLjMgMzUuNS0xNi42IDY1LjItNDAuMyA4OC4xLTcyIDM0LjgtNDguMiA0OS4xLTEwMS45IDQyLjMtMTYxLTEzLjctMTE3LjUtMTE5LjQtMjE0LjgtMjU1LjUtMTk4LTEwNi4xIDEzLTE5NS4zIDEwMi41LTE5Ny4xIDIyNS44eiJdfSxncHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2ciLGljb246WzUxMiw1MTIsW10sImYyNjAiLCJNMTc5LjIgMjMwLjRsMTAyLjQgMTAyLjQtMTAyLjQgMTAyLjQtMTc5LjItMTc5LjIgMTc5LjItMTc5LjIgNDQuOCA0NC44LTI1LjYgMjUuNi0xOS4yLTE5LjItMTI4IDEyOCAxMjggMTI4IDUxLjUtNTEuNS03Ny4xLTc2LjUgMjUuNi0yNS42ek0zMzIuOCA3Ni44bC0xMDIuNCAxMDIuNCAxMDIuNCAxMDIuNCAyNS42LTI1LjYtNzcuMS03Ni41IDUxLjUtNTEuNSAxMjggMTI4LTEyOCAxMjgtMTkuMi0xOS4yLTI1LjYgMjUuNiA0NC44IDQ0LjggMTc5LjItMTc5LjItMTc5LjItMTc5LjJ6Il19LGJwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidXlzZWxsYWRzIixpY29uOls0NDgsNTEyLFtdLCJmMjBkIiwiTTIyNCAxNTAuN2w0Mi45IDE2MC43LTg1LjggMCA0Mi45LTE2MC43ek00NDggODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zODIuNyA0MDUuM2wtOTQuNS0yOTguNy0xMjguNCAwLTk0LjUgMjk4LjcgOTAuNyAwIDExMS43LTkxLjYgMjQuMiA5MS42IDkwLjggMHoiXX0seHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wbHVzIixpY29uOls1MTIsNTEyLFtdLCJmMmIzIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTg1LjMgMzgwYy0zMi45IDAtNjQuNC0xMy4xLTg3LjctMzYuM3MtMzYuMy01NC44LTM2LjMtODcuNyAxMy4xLTY0LjQgMzYuMy04Ny43IDU0LjgtMzYuMyA4Ny43LTM2LjNjMzEuMyAwIDYwLjEgMTEgODMgMzIuM2wtMzMuNiAzMi42Yy0xMy4yLTEyLjktMzEuMy0xOS4xLTQ5LjQtMTkuMS00Mi45IDAtNzcuMiAzNS41LTc3LjIgNzguMVMxNDIuMyAzMzQgMTg1LjMgMzM0YzMyLjYgMCA2NC45LTE5LjEgNzAuMS01My4zbC03MC4xIDAgMC00Mi42IDExNi45IDBjMS4zIDYuOCAxLjkgMTMuOCAxLjkgMjAuNyAwIDcwLjgtNDcuNSAxMjEuMi0xMTguOCAxMjEuMnpNNDE1LjUgMjczLjhsMCAzNS41LTM1LjUgMCAwLTM1LjUtMzUuNSAwIDAtMzUuNSAzNS41IDAgMC0zNS41IDM1LjUgMCAwIDM1LjUgMzUuMiAwIDAgMzUuNS0zNS4yIDB6Il19LHZwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY3JlZW5wYWwiLGljb246WzUxMiw1MTIsW10sImU1NzAiLCJNMjc4LjYgMjIuNWEyMi41IDIyLjUgMCAxIDEgLTQ1IDAgMjIuNSAyMi41IDAgMSAxIDQ1IDB6TTE5OC43IDI1OWE1Ny40IDU3LjQgMCAxIDEgMTE0LjggMCA1Ny40IDU3LjQgMCAxIDEgLTExNC44IDB6bTEzOC42IDkxYzIyLjMtMTkuOSAzNi41LTQ3LjMgMzkuOS03N2wxMTkuNSAwYy0zLjUgNjEuNC0zMC40IDExOS4yLTc1LjIgMTYxLjQtNDQuNyA0Mi4yLTEwMy45IDY1LjgtMTY1LjQgNjUuOFMxMzUuNCA0NzYuNiA5MC43IDQzNC40QzQ1LjkgMzkyLjIgMTkuMSAzMzQuNCAxNS41IDI3M2wxMTkuNyAwYzMuNCAyOS43IDE3LjYgNTcuMSAzOS45IDc3czUxLjIgMzAuOSA4MS4xIDMwLjljMjkgMCA1OC43LTExIDgxLjEtMzAuOXpNMjguMyAxNDEuN2EyMi41IDIyLjUgMCAxIDEgNDUtMS40IDIyLjUgMjIuNSAwIDEgMSAtNDUgMS40em00NTUuNi0uN2EyMi40IDIyLjQgMCAxIDEgLTQ0LjkgMCAyMi40IDIyLjQgMCAxIDEgNDQuOSAwek0zMTggOTUuM2MtMTcuMyAxMy44LTM5LjIgMjIuOC02MS45IDIyLjhzLTQ0LjYtOS02MS45LTIyLjhjLTE3LjMtMTQuNy0yOC44LTM1LjEtMzIuNC01Ny41IDE1LjEtNi40IDMwLjgtMTEuMyA0Ni45LTE0LjUgMCAxMi42IDUgMjQuNiAxMy45IDMzLjVzMjAuOSAxMy45IDMzLjUgMTMuOSAyNC42LTUgMzMuNS0xMy45IDEzLjktMjAuOSAxMy45LTMzLjVjMTYuMSAzLjIgMzEuOCA4LjEgNDYuOSAxNC41LTMuNiAyMi40LTE1LjEgNDIuOC0zMi40IDU3LjV6TTgyLjkgMjMxYy0yMS40IDcuNi00NC43IDcuNC02NS45LS42IDItMTYuMyA1LjYtMzIuMyAxMC44LTQ3LjkgNS40IDMuMSAxMS4zIDUuMSAxNy41IDYgNi4yIC44IDEyLjQgLjQgMTguNS0xLjIgNi0xLjcgMTEuNi00LjQgMTYuNi04LjJzOS4xLTguNSAxMi4yLTEzLjkgNS4xLTExLjQgNi0xNy41Yy44LTYuMiAuNC0xMi41LTEuMi0xOC41cy00LjQtMTEuNi04LjItMTYuNmMtMy44LTQuOS04LjUtOS4xLTEzLjktMTIuMiAxMC44LTEyLjMgMjIuOS0yMy41IDM2LTMzLjMgMTcuNiAxNC4zIDI5LjUgMzQuNSAzMy42IDU2LjhzLjEgNDUuNC0xMS4yIDY1Yy0xMS40IDE5LjYtMjkuNCAzNC41LTUwLjcgNDIuMXptMzQ2LjQgLjFjLTIxLjMtNy42LTM5LjMtMjIuNi01MC43LTQyLjItMTEuMy0xOS42LTE1LjItNDIuNy0xMS4xLTY1IDQuMS0yMi4yIDE2LTQyLjQgMzMuNS01Ni43IDEzLjEgOS44IDI1LjIgMjEgMzYgMzMuMy0xMC43IDYuNC0xOC40IDE2LjctMjEuNSAyOC44LTMuMiAxMi0yLjMgMjQuOCA0LjggMzUuNiA2LjIgMTAuOCAxNi40IDE4LjcgMjguNCAyMnMyNC45IDEuNyAzNS43LTQuM2M1LjMgMTUuNSA4LjkgMzEuNiAxMC45IDQ3LjgtMjIuMSA4LjEtNDQuNiA4LjMtNjYgLjd6Il19LHlwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaXRjb2luIixpY29uOls1MTIsNTEyLFtdLCJmMzc5IiwiTTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTM1NC4zLTM1LjNjNC45LTMzLTIwLjItNTAuNy01NC42LTYyLjZsMTEuMS00NC43LTI3LjItNi44LTEwLjkgNDMuNWMtNy4yLTEuOC0xNC41LTMuNS0yMS44LTUuMWwxMC45LTQzLjgtMjcuMi02LjgtMTEuMiA0NC43Yy01LjktMS4zLTExLjctMi43LTE3LjQtNC4xbDAtLjEtMzcuNS05LjQtNy4yIDI5LjFzMjAuMiA0LjYgMTkuOCA0LjljMTEgMi44IDEzIDEwIDEyLjcgMTUuOGwtMTIuNyA1MC45Yy44IC4yIDEuNyAuNSAyLjggLjktLjktLjItMS45LS41LTIuOS0uN2wtMTcuOCA3MS4zYy0xLjMgMy4zLTQuOCA4LjQtMTIuNSA2LjUgLjMgLjQtMTkuOC00LjktMTkuOC00LjlsLTEzLjUgMzEuMSAzNS40IDguOGM2LjYgMS43IDEzIDMuNCAxOS40IDVsLTExLjMgNDUuMiAyNy4yIDYuOCAxMS4yLTQ0LjdjNy4yIDIgMTQuNCAzLjggMjEuNyA1LjZsLTExLjEgNDQuNSAyNy4yIDYuOCAxMS4zLTQ1LjFjNDYuNCA4LjggODEuMyA1LjIgOTYtMzYuNyAxMS44LTMzLjgtLjYtNTMuMy0yNS02NiAxNy44LTQuMSAzMS4yLTE1LjggMzQuNy0zOS45em0tNjIuMiA4Ny4yYy04LjQgMzMuOC02NS4zIDE1LjUtODMuOCAxMC45bDE0LjktNTkuOWMxOC40IDQuNiA3Ny42IDEzLjcgNjguOCA0OXptOC40LTg3LjdjLTcuNyAzMC43LTU1IDE1LjEtNzAuNCAxMS4zbDEzLjUtNTQuM2MxNS40IDMuOCA2NC44IDExIDU2LjggNDN6Il19LHdwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzd2lmdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjhlMSIsIk00NDggMTU2LjFjMC00LjUtLjEtOS0uMi0xMy41LS4xLTkuOS0xLTE5LjctMi42LTI5LjQtMS43LTkuNy00LjgtMTkuMi05LjItMjgtOS0xNy43LTIzLjQtMzIuMS00MS4yLTQxLjEtOC44LTQuNS0xOC4zLTcuNi0yOC05LjItOS43LTEuNi0xOS42LTIuNS0yOS40LTIuNi00LjUtLjEtOS0uMi0xMy41LS4yTDEyNC4xIDMyYy00LjUgMC05IC4xLTEzLjUgLjItMi40IC4xLTQuOSAuMi03LjQgLjMtNy40IC4zLTE0LjggMS4xLTIyLjEgMi4zLTcuMyAxLjMtMTQuNCAzLjMtMjEuMiA2LjEtMi4zIDEtNC42IDItNi44IDMuMS02LjYgMy40LTEyLjggNy41LTE4LjQgMTIuMy0xLjkgMS42LTMuNyAzLjMtNS40IDUtNyA3LTEyLjkgMTUtMTcuNCAyMy44LTQuNCA4LjgtNy42IDE4LjMtOS4yIDI4LTEuNiA5LjctMi40IDE5LjYtMi41IDI5LjQtLjEgNC41LS4yIDktLjIgMTMuNUwwIDM1NS45YzAgNC41IC4xIDkgLjIgMTMuNSAuMSA5LjkgMSAxOS43IDIuNiAyOS40IDEuNyA5LjcgNC44IDE5LjIgOS4yIDI4IDkgMTcuNyAyMy40IDMyLjEgNDEuMSA0MS4xIDguOCA0LjQgMTguMyA3LjUgMjggOS4yIDkuNyAxLjYgMTkuNiAyLjUgMjkuNCAyLjYgNC41IC4xIDkgLjIgMTMuNSAuMmwxOTkuOCAwYzQuNSAwIDktLjEgMTMuNS0uMiA5LjktLjEgMTkuNy0xIDI5LjQtMi42IDkuNy0xLjcgMTkuMi00LjggMjgtOS4yIDE3LjctOSAzMi4xLTIzLjQgNDEuMS00MS4yIDQuNC04LjggNy42LTE4LjMgOS4yLTI4IDEuNi05LjcgMi41LTE5LjYgMi42LTI5LjQgLjEtNC41IC4yLTkgLjItMTMuNWwwLTE4My44YzAtNS40IDAtMTAuNyAwLTE2em0tNjkuOSAyNDFjLTIwLTM4LjktNTcuMi0yOS4zLTc2LjMtMTkuNS0xLjcgMS0zLjUgMi01LjIgM2wtLjQgLjJjLTM5LjUgMjEtOTIuNSAyMi41LTE0NS44LS40LTQzLjQtMTguOC04MC4xLTUwLjMtMTA1LjMtOTAuNCAxMi4zIDkuMSAyNS40IDE2LjkgMzkuMiAyMy40IDU2LjQgMjYuNCAxMTMgMjQuNSAxNTMgMC01Ny00My44LTEwNC42LTEwMS0xNDEuMS0xNDcuMi03LTguMS0xMy4yLTE2LjgtMTguOC0yNS45IDQzLjcgNDAgMTEyLjcgOTAuMiAxMzcuNSAxMDQuMS01Mi42LTU1LjUtOTguOS0xMjMuOS05Ni43LTEyMS43IDgyLjggODMuNCAxNTkuMiAxMzAuNiAxNTkuMiAxMzAuNiAyLjkgMS42IDUgMi44IDYuNyA0IDEuNi00LjEgMy04LjIgNC4yLTEyLjUgMTMuMi00OC4zLTEuNy0xMDMuNi0zNS4zLTE0OS4yIDc2LjggNDYuMSAxMjIuMiAxMzMuNyAxMDMuNiAyMDcuOC0uNCAxLjctMSAzLjQtMS40IDUuMSAzOC41IDQ3LjQgMjggOTguMiAyMy4xIDg4LjZsMCAweiJdfSxrcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlsZXMtcGlud2hlZWwiLGljb246WzUxMiw1MTIsW10sImU2OWYiLCJNMjUzLjUgMjQ2LjRMMTM3LjIgMTMwLjJjLS42LS42LTEtMS4zLTEuNC0ycy0uNS0xLjYtLjUtMi40IC4yLTEuNiAuNS0yLjQgLjgtMS40IDEuNC0yTDI1My42IDUuMWMuOS0uOSAyLTEuNSAzLjItMS43czIuNS0uMSAzLjYgLjMgMi4xIDEuMyAyLjggMi4zIDEuMSAyLjIgMS4xIDMuNWwwIDIzMi41YzAgMS4zLS4zIDIuNS0xIDMuNnMtMS43IDEuOS0yLjkgMi40LTIuNSAuNi0zLjcgLjMtMi40LS45LTMuMi0xLjl6bTQwLjMtNC40bDAtMTM0LjRjMC0uOCAuMS0xLjYgLjUtMi40cy44LTEuNSAxLjMtMi4xIDEuMy0xLjEgMi0xLjQgMS42LS41IDIuNC0uNWwxMzQuNCAwYzEuMiAwIDIuNSAuNCAzLjUgMS4xczEuOCAxLjcgMi4zIDIuOCAuNiAyLjQgLjMgMy42LS45IDIuMy0xLjcgMy4yTDMwNC4zIDI0Ni40Yy0uOSAuOC0yIDEuNC0zLjIgMS42cy0yLjQgLjEtMy41LS40LTIuMS0xLjMtMi44LTIuMy0xLjEtMi4yLTEuMS0zLjRsLjEgLjF6bTMwLjYgMzVjLTEuMiAwLTIuNS0uMy0zLjUtMXMtMS45LTEuNi0yLjQtMi44LS42LTIuNC0uNC0zLjYgLjgtMi4zIDEuNy0zLjJMNDA0IDE4Mi4yYy42LS42IDEuMy0xIDItMS40czEuNi0uNSAyLjQtLjUgMS42IC4yIDIuNCAuNSAxLjQgLjggMiAxLjRsODQuNCA4NC4yYy45IC45IDEuNSAyIDEuNyAzLjJzLjEgMi41LS4zIDMuNi0xLjMgMi4xLTIuMyAyLjgtMi4yIDEuMS0zLjUgMS4xbC0xNjguNSAwIC4xLS4xem05MC43IDEzMWwtOTUuMy05NS4yYy0uOS0uOS0xLjUtMi0xLjctMy4ycy0uMS0yLjUgLjQtMy43IDEuMy0yLjEgMi40LTIuOCAyLjMtMSAzLjUtMWw5NS4yIDBjMS43IDAgMy4yIC43IDQuNCAxLjhzMS44IDIuOCAxLjggNC40bDAgOTUuM2MwIDEuMi0uNCAyLjUtMS4xIDMuNXMtMS43IDEuOC0yLjggMi4zLTIuNCAuNi0zLjYgLjMtMi4zLS45LTMuMi0xLjd6TTE2LjggMzAyLjFsMjE2LjkgMGMxLjIgMCAyLjUgLjQgMy41IDEuMXMxLjggMS43IDIuMyAyLjggLjYgMi40IC4zIDMuNi0uOCAyLjMtMS43IDMuMkwxMjkuNyA0MjEuMmMtLjYgLjYtMS4zIDEtMiAxLjRzLTEuNiAuNS0yLjQgLjUtMS42LS4yLTIuNC0uNS0xLjQtLjgtMi0xLjRMMTIuMyAzMTIuOGMtLjktLjktMS41LTItMS43LTMuMnMtLjEtMi41IC40LTMuNiAxLjMtMi4xIDIuMy0yLjggMi4zLTEgMy41LTFsMC0uMXpNMjY0LjMgNDY1LjNjMCAuOC0uMiAxLjYtLjUgMi40cy0uOCAxLjUtMS40IDItMS4zIDEtMiAxLjQtMS42IC41LTIuNCAuNWwtMTI4IDBjLTEuMiAwLTIuNS0uNC0zLjUtMS4xcy0xLjgtMS43LTIuMy0yLjgtLjYtMi40LS4zLTMuNiAuOC0yLjMgMS43LTMuMmwxMjgtMTI4Yy45LS45IDItMS41IDMuMi0xLjdzMi41LS4xIDMuNiAuMyAyLjEgMS4zIDIuOCAyLjMgMS4xIDIuMiAxLjEgMy41bDAgMTI4em00MC0xMzIuNWw4Mi44IDgyLjdjLjYgLjYgMSAxLjMgMS40IDJzLjUgMS42IC41IDIuNC0uMiAxLjYtLjUgMi40LS44IDEuNC0xLjQgMkwzMDQuMyA1MDdjLS45IC45LTIgMS41LTMuMiAxLjdzLTIuNSAuMS0zLjYtLjMtMi4xLTEuMy0yLjgtMi4zLTEuMS0yLjItMS4xLTMuNWwwLTE2NS40YzAtMS4yIC40LTIuNSAxLjEtMy41czEuNy0xLjggMi44LTIuMyAyLjQtLjYgMy42LS4zIDIuMyAuOCAzLjIgMS43ek03OSAxMjIuNGMwLTEuMiAuMy0yLjUgMS0zLjVzMS43LTEuOCAyLjgtMi4zIDIuNC0uNiAzLjYtLjQgMi4zIC44IDMuMiAxLjdMMjM4LjEgMjY2LjRjLjkgLjkgMS41IDIgMS43IDMuMnMuMSAyLjUtLjMgMy42LTEuMyAyLjEtMi4zIDIuOC0yLjIgMS4xLTMuNSAxLjFsLTE0OC40IDBjLTEuNyAwLTMuMi0uNy00LjQtMS44cy0xLjgtMi44LTEuOC00LjRsMC0xNDguNC0uMS0uMXoiXX0sU3ByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxhcmF2ZWwiLGljb246WzUxMiw1MTIsW10sImYzYmQiLCJNNTA0LjYgMTE1LjhjLS4xLS4yLS4yLS41LS4zLS43LS4xLS40LS4zLS44LS41LTEuMi0uMi0uMi0uMy0uNS0uNS0uNy0uMi0uMy0uNS0uNi0uNy0uOS0uMi0uMi0uNS0uNC0uOC0uNi0uMy0uMi0uNi0uNS0uOS0uN0w0MDQuNiA1NS41Yy0xLjItLjctMi42LTEuMS00LTEuMXMtMi44IC40LTQgMS4xTDMwMC4zIDExMWMtLjMgLjItLjYgLjQtLjkgLjctLjMgLjItLjUgLjQtLjggLjYtLjMgLjMtLjUgLjYtLjcgLjktLjIgLjItLjQgLjQtLjUgLjctLjIgLjQtLjQgLjgtLjUgMS4yLS4xIC4yLS4yIC40LS4zIC43LS4yIC43LS4zIDEuNC0uMyAyLjFsMCAxMDUuMi04MC4yIDQ2LjIgMC0yMDUuOWMwLS43LS4xLTEuNC0uMy0yLjEtLjEtLjItLjItLjQtLjMtLjctLjEtLjQtLjMtLjgtLjUtMS4yLS4xLS4zLS40LS41LS41LS43LS4yLS4zLS41LS42LS43LS45LS4yLS4yLS41LS40LS44LS42LS4zLS4yLS42LS41LS45LS43TDExNS44IDEuMWMtMS4yLS43LTIuNi0xLjEtNC0xLjFzLTIuOCAuNC00IDEuMUwxMS41IDU2LjVjLS4zIC4yLS42IC40LS45IC43LS4zIC4yLS41IC40LS44IC42LS4zIC4zLS41IC42LS43IC45LS4yIC4zLS40IC41LS42IC43LS4yIC40LS40IC44LS41IDEuMi0uMSAuMi0uMiAuNC0uMyAuNy0uMiAuNy0uMyAxLjQtLjMgMi4xbDAgMzI5LjdjMCAxLjQgLjQgMi44IDEuMSA0czEuNyAyLjIgMi45IDIuOUwyMDQgNTEwLjljLjQgLjIgLjkgLjQgMS4zIC41IC4yIC4xIC40IC4yIC42IC4zIDEuMyAuNCAyLjggLjQgNC4xIDAgLjItLjEgLjQtLjIgLjYtLjIgLjUtLjIgMS0uMyAxLjQtLjZMNDA0LjYgNDAwLjFjMS4yLS43IDIuMi0xLjcgMi45LTIuOXMxLjEtMi42IDEuMS00bDAtMTA1LjMgOTIuMi01My4xYzEuMi0uNyAyLjItMS43IDIuOS0zczEuMS0yLjYgMS4xLTRsMC0xMDkuOGMwLS43LS4xLTEuNC0uMi0yLjF6TTExMS44IDE3LjNsODAuMiA0Ni4xLTgwLjIgNDYuMi04MC4yLTQ2LjIgODAuMi00Ni4yem04OC4yIDYwbDAgMjAxLjNjLTMzLjIgMTkuMS01OS45IDM0LjUtODAuMiA0Ni4ybDAtMjAxLjNDMTUzIDEwNC40IDE3OS43IDg5IDIwMCA3Ny4zem0wIDQxMi44TDIzLjUgMzg4LjUgMjMuNSA3Ny4zYzIwLjMgMTEuNyA0Ny4xIDI3LjEgODAuMiA0Ni4ybDAgMjE1LjJjMCAuMyAuMSAuNiAuMSAuOSAwIC40IC4xIC44IC4yIDEuMiAuMSAuMyAuMiAuNiAuNCAuOSAuMSAuMyAuMyAuNyAuNCAxIC4yIC4zIC40IC41IC42IC44IC4yIC4zIC40IC42IC43IC44IC4yIC4yIC41IC40IC44IC42IC4zIC4yIC42IC41IC45IC43bDkyLjIgNTIuMiAuMSA5Mi40em04LTEwNi4yTDEyOCAzMzguNmM1NC43LTMxLjUgMTEzLjUtNjUuMyAxNzYuMy0xMDEuNWw4MC4xIDQ2LjFDMzU1IDMwMCAyOTYuMiAzMzMuNSAyMDggMzgzLjl6bTE4NC41IDQuNmwtMTc2LjUgMTAxLjYgMC05Mi4zQzMxNy40IDM0MCAzNzYuMiAzMDYuNCAzOTIuNSAyOTdsMCA5MS40em0wLTExOS4xYy0yMC4zLTExLjYtNDcuMS0yNy04MC4yLTQ2LjFsMC05MS40YzIwLjMgMTEuNyA0Ny4xIDI3LjEgODAuMiA0Ni4ybDAgOTEuM3ptOC0xMDUuM2wtODAuMi00Ni4yIDgwLjItNDYuMiA4MC4yIDQ2LjEtODAuMiA0Ni4yem04IDEwNS4zbDAtOTEuM2MzMy4yLTE5LjEgNjAtMzQuNSA4MC4zLTQ2LjJsMCA5MS40LTgwLjMgNDYuMnoiXX0sTXByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndwZm9ybXMiLGljb246WzQ0OCw1MTIsW10sImYyOTgiLCJNNDQ4IDc1LjJsMCAzNjEuN2MwIDI0LjMtMTkgNDMuMi00My4yIDQzLjJsLTM2MS42IDBDMTkuMyA0ODAgMCA0NjEuNCAwIDQzNi44TDAgNzUuMkMwIDUxLjEgMTguOCAzMiA0My4yIDMybDM2MS43IDBjMjQgMCA0My4xIDE4LjggNDMuMSA0My4yek00MTAuNyA0MzYuOGwwLTM2MS42YzAtMy0yLjYtNS44LTUuOC01LjhsLTkuMyAwLTExMC4zIDc0LjYtNjEuMy00OS45LTYxLjIgNDkuOS0xMTAuMy03NC43LTkuMyAwYy0zLjIgMC01LjggMi44LTUuOCA1LjhsMCAzNjEuN2MwIDMgMi42IDUuOCA1LjggNS44bDM2MS43IDBjMy4yIC4xIDUuOC0yLjcgNS44LTUuOHpNMTUwLjIgMTg2bDAgMzctNzMuNSAwIDAtMzcgNzMuNSAwem0wIDc0LjRsMCAzNy4zLTczLjUgMCAwLTM3LjMgNzMuNSAwem0xMS4xLTE0Ny4zbDU0LTQzLjctMTE4LjUgMCA2NC41IDQzLjd6bTIxMCA3Mi45bDAgMzctMTk2IDAgMC0zNyAxOTYgMHptMCA3NC40bDAgMzcuMy0xOTYgMCAwLTM3LjMgMTk2IDB6TTI4Ni43IDExMy4xbDY0LjUtNDMuNy0xMTguNCAwIDUzLjkgNDMuN3pNMzcxLjMgMzM1bDAgMzcuMy05OS40IDAgMC0zNy4zIDk5LjQgMHoiXX0sQ3ByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNwZWFrZXItZGVjayIsaWNvbjpbNTEyLDUxMixbXSwiZjgzYyIsIk0yMTMuOSAyOTZMMTAwIDI5NmMtMjYuNSAwLTUyLTEwLjUtNzAuNy0yOS4zUzAgMjIyLjUgMCAxOTYgMTAuNSAxNDQgMjkuMyAxMjUuMyA3My41IDk2IDEwMCA5NmwxMzIuOCAwYzEwLjYgMCAyMC44IDQuMiAyOC4zIDExLjdzMTEuNyAxNy43IDExLjcgMjguMy00LjIgMjAuOC0xMS43IDI4LjMtMTcuNyAxMS43LTI4LjMgMTEuN0w5OCAxNzZjLTI2LjUgMC0yNi40IDQwIDAgNDBsMTEzLjggMGMyNi41IDAgNTIgMTAuNSA3MC43IDI5LjNzMjkuMyA0NC4yIDI5LjMgNzAuNy0xMC41IDUyLTI5LjMgNzAuNy00NC4yIDI5LjMtNzAuNyAyOS4zTDQwIDQxNmMtMTAuNiAwLTIwLjgtNC4yLTI4LjMtMTEuN1MwIDM4Ni42IDAgMzc2IDQuMiAzNTUuMiAxMS43IDM0Ny43IDI5LjQgMzM2IDQwIDMzNmwxNzMuOSAwYzI2LjUgMCAyNi41LTQwIDAtNDB6TTI5OCA0MTZjMTMuNS05LjIgMjUtMjEgMzMuOC0zNC43czE0LjctMjkuMiAxNy4zLTQ1LjNsNjQuNiAwYzIuNiAwIDUuMi0uNiA3LjYtMS42czQuNi0yLjUgNi40LTQuNCAzLjMtNC4xIDQuMi02LjUgMS41LTUgMS40LTcuNmwwLTEyMGMwLTIuNi0uNS01LjItMS40LTcuNnMtMi40LTQuNi00LjItNi41LTQtMy4zLTYuNC00LjQtNS0xLjYtNy42LTEuNmwtMTE3LjIgMGM5LjctMTEuMSAxNS0yNS4zIDE1LTQwcy01LjMtMjguOS0xNS00MGwxMzYuOSAwYzQzLjQgMCA3OC42IDM1LjggNzguNiA4MGwwIDE2MGMwIDQ0LjItMzUuMiA4MC03OC42IDgwTDI5OCA0MTZ6Il19LHpwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbGlja3IiLGljb246WzQ0OCw1MTIsW10sImYxNmUiLCJNNDAwIDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE0NC41IDE5MmE2My41IDYzLjUgMCAxIDEgMCAxMjcgNjMuNSA2My41IDAgMSAxIDAtMTI3em0xNTkgMGE2My41IDYzLjUgMCAxIDEgMCAxMjcgNjMuNSA2My41IDAgMSAxIDAtMTI3eiJdfSxfcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtdmlzYSIsaWNvbjpbNTc2LDUxMixbXSwiZjFmMCIsIk00NzAuMSAyMzEuM3M3LjYgMzcuMiA5LjMgNDVsLTMzLjQgMGMzLjMtOC45IDE2LTQzLjUgMTYtNDMuNS0uMiAuMyAzLjMtOS4xIDUuMy0xNC45bDIuOCAxMy40ek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xNTIuNSAzMzEuMmw2My4yLTE1NS4yLTQyLjUgMC0zOS4zIDEwNi00LjMtMjEuNS0xNC03MS40Yy0yLjMtOS45LTkuNC0xMi43LTE4LjItMTMuMWwtNjQuNyAwLS43IDMuMWMxNS44IDQgMjkuOSA5LjggNDIuMiAxNy4xbDM1LjggMTM1IDQyLjUgMHptOTQuNCAuMmwyNS4yLTE1NS40LTQwLjIgMC0yNS4xIDE1NS40IDQwLjEgMHptMTM5LjktNTAuOGMuMi0xNy43LTEwLjYtMzEuMi0zMy43LTQyLjMtMTQuMS03LjEtMjIuNy0xMS45LTIyLjctMTkuMiAuMi02LjYgNy4zLTEzLjQgMjMuMS0xMy40IDEzLjEtLjMgMjIuNyAyLjggMjkuOSA1LjlsMy42IDEuNyA1LjUtMzMuNmMtNy45LTMuMS0yMC41LTYuNi0zNi02LjYtMzkuNyAwLTY3LjYgMjEuMi02Ny44IDUxLjQtLjMgMjIuMyAyMCAzNC43IDM1LjIgNDIuMiAxNS41IDcuNiAyMC44IDEyLjYgMjAuOCAxOS4zLS4yIDEwLjQtMTIuNiAxNS4yLTI0LjEgMTUuMi0xNiAwLTI0LjYtMi41LTM3LjctOC4zbC01LjMtMi41LTUuNiAzNC45YzkuNCA0LjMgMjYuOCA4LjEgNDQuOCA4LjMgNDIuMiAuMSA2OS43LTIwLjggNzAtNTN6TTUyOCAzMzEuNGwtMzIuNC0xNTUuNC0zMS4xIDBjLTkuNiAwLTE2LjkgMi44LTIxIDEyLjlsLTU5LjcgMTQyLjUgNDIuMiAwczYuOS0xOS4yIDguNC0yMy4zbDUxLjYgMGMxLjIgNS41IDQuOCAyMy4zIDQuOCAyMy4zbDM3LjIgMHoiXX0sVHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVwd29yayIsaWNvbjpbNjQwLDUxMixbXSwiZTY0MSIsIk00OTMuOSAyOTUuNmMtNTAuMyAwLTgzLjUtMzguOS05Mi44LTUzLjkgMTEuOS05NS4zIDQ2LjgtMTI1LjQgOTIuOC0xMjUuNCA0NS41IDAgODAuOSAzNi40IDgwLjkgODkuN3MtMzUuNCA4OS43LTgwLjkgODkuN2wwLS4xem0wLTIzNy44Yy04MS45IDAtMTI3LjggNTMuNC0xNDEgMTA4LjQtMTQuOS0yOC0yNS45LTY1LjUtMzQuNS0xMDAuM2wtMTEzLjIgMCAwIDE0MWMwIDUxLjEtMjMuMyA4OS02OC44IDg5cy03MS42LTM3LjgtNzEuNi04OWwuNS0xNDEtNjUuMyAwIDAgMTQxYzAgNDEuMSAxMy4zIDc4LjQgMzcuNiAxMDUuMSAyNSAyNy41IDU5LjIgNDEuOCA5OC44IDQxLjggNzguOCAwIDEzMy44LTYwLjQgMTMzLjgtMTQ2LjlsMC05NC44YzguMiAzMS4yIDI3LjggOTEuMSA2NS4zIDE0My42bC0zNSAxOTkuNCA2Ni40IDAgMjMuMS0xNDEuM2M3LjYgNi4zIDE1LjcgMTIgMjQuMiAxNyAyMi4yIDE0IDQ3LjcgMjEuOSA3My45IDIyLjggMCAwIDQgLjIgNi4xIC4yIDgxLjIgMCAxNDUuOS02Mi45IDE0NS45LTE0Ny44UzU3NS4zIDU3LjkgNDk0LjEgNTcuOWwtLjItLjF6Il19LExwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrYWthby10YWxrIixpY29uOls1NzYsNTEyLFtdLCJlN2Q3IiwiTTI4OCAyLjVjMTU5LjEgMCAyODggMTAxLjcgMjg4IDIyNy4xIDAgMTI1LjQtMTI4LjkgMjI3LjEtMjg4IDIyNy4xLTE3LjUgMC0zNC42LTEuMi01MS4yLTMuNi0xNi42IDExLjctMTEyLjYgNzkuMS0xMjEuNyA4MC40IDAgMC0zLjcgMS40LTYuOS0uNHMtMi42LTYuNy0yLjYtNi43QzEwNi42IDUxOS44IDEzMC42IDQzNy4yIDEzNSA0MjEuOSA1My45IDM4MS44IDAgMzEwLjYgMCAyMjkuNSAwIDEwNC4xIDEyOC45IDIuNSAyODggMi41ek04Ni4yIDE2MS43Yy05IDAtMTYuMyA3LjMtMTYuMyAxNi4zczcuMyAxNi4zIDE2LjMgMTYuM2wyNS45IDAgMCA5OC43YzAgOC44IDcuNSAxNS45IDE2LjYgMTUuOXMxNi42LTcuMSAxNi42LTE1LjlsMC05OC43IDI1LjkgMGM5IDAgMTYuMy03LjMgMTYuMy0xNi4zcy03LjMtMTYuMy0xNi4zLTE2LjNsLTg1LjEgMHptMTQwLjggMGMtMTAuOCAuMi0xOS4zIDguNC0yMi4xIDE2LjRMMTY1LjIgMjgyLjdjLTUgMTUuNy0uNiAyMS41IDMuOSAyMy42IDMuMiAxLjUgNi45IDIuMyAxMC42IDIuMyA2LjkgMCAxMi4yLTIuOCAxMy44LTcuM2w4LjItMjEuNiA1MC43IDAgOC4yIDIxLjVjMS42IDQuNSA2LjkgNy4zIDEzLjggNy4zIDMuNyAwIDcuMy0uOCAxMC42LTIuMyA0LjYtMi4xIDktNy45IDMuOS0yMy42TDI0OS4yIDE3OC4xYy0yLjgtOC0xMS4zLTE2LjItMjIuMi0xNi40em0xODAuOSAwYy05LjIgMC0xNi42IDcuNS0xNi42IDE2LjZsMCAxMTMuN2MwIDkuMiA3LjUgMTYuNiAxNi42IDE2LjZzMTYuNi03LjUgMTYuNi0xNi42bDAtMzYuMiA1LjgtNS44IDM4LjkgNTEuNmMzLjIgNC4yIDggNi42IDEzLjMgNi42IDMuNiAwIDcuMS0xLjEgMTAtMy4zIDMuNS0yLjcgNS44LTYuNiA2LjQtMTFzLS41LTguOC0zLjItMTIuM2wtNDAuOS01NC4yIDM3LjktMzcuOGMyLjYtMi42IDMuOS02LjIgMy43LTEwLjEtLjItMy45LTItNy42LTQuOS0xMC41LTMuMS0zLjEtNy4zLTQuOS0xMS40LTQuOS0zLjYgMC02LjggMS4zLTkuMiAzLjdsLTQ2LjMgNDYuNCAwLTM1LjdjMC05LjItNy41LTE2LjYtMTYuNi0xNi42em0tOTEuMyAwYy05LjMgMC0xNi45IDcuNS0xNi45IDE2LjZsMCAxMTIuOGMwIDguNCA3LjEgMTUuMiAxNS45IDE1LjNsNTMuMyAwYzguOCAwIDE1LjktNi45IDE1LjktMTUuM3MtNy4yLTE1LjItMTUuOS0xNS4ybC0zNS4zIDAgMC05Ny42YzAtOS4yLTcuNi0xNi42LTE3LTE2LjZ6bS03MyA4OC42bC0zMy4yIDAgMTYuNi00Ny4xIDE2LjYgNDcuMXoiXX0sRHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZsdXR0ZXIiLGljb246WzQ0OCw1MTIsW10sImU2OTQiLCJNNDI5LjUgMjM2LjNMMjkxLjcgMzc0LjEgNDI5LjUgNTEyIDI3MiA1MTJjLTM2LjEtMzYuMS04Mi4xLTgyLjEtMTM3LjktMTM3LjlsMTM3LjktMTM3LjggMTU3LjUgMHpNMjcyIDBMMTYgMjU2IDk0LjggMzM0LjggNDI5LjUgMCAyNzIgMHoiXX0sJHByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1ZmZlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjgzNyIsIk00MjguMiAzODAuN0wyMzEuNyA0NzguNWMtMi4zIDEtNC44IDEuNS03LjMgMS41cy01LS41LTcuMy0xLjVMMjAuNSAzODAuN2MtNC0yLTQtNS4zIDAtNy4zTDY3LjYgMzUwYzIuMy0xIDQuOC0xLjUgNy4zLTEuNXM1IC41IDcuMyAxLjVsMTM0LjggNjdjMi4zIDEgNC44IDEuNSA3LjMgMS41czUtLjUgNy4zLTEuNWwxMzQuOC02N2MyLjMtMSA0LjgtMS41IDcuMy0xLjVzNSAuNSA3LjMgMS41bDQ3LjEgMjMuNGM0IDIgNCA1LjIgMCA3LjJ6bTAtMTM2LjVsLTQ3LjEtMjMuNGMtMi4zLTEtNC44LTEuNS03LjMtMS41cy01IC41LTcuMyAxLjVMMjMxLjcgMjg3LjhjLTIuMyAxLTQuOCAxLjUtNy4zIDEuNXMtNS0uNS03LjMtMS41TDgyLjMgMjIwLjdjLTIuMy0xLTQuOC0xLjUtNy4zLTEuNXMtNSAuNS03LjMgMS41TDIwLjUgMjQ0LjFjLTQgMi00IDUuMyAwIDcuM2wxOTYuNSA5Ny44YzIuMyAxIDQuOCAxLjUgNy4zIDEuNXM1LS41IDcuMy0xLjVsMTk2LjUtOTcuOGM0LTIgNC01LjMgMC03LjN6TTIwLjUgMTMwLjRMMjE3IDIyMC43YzQuNyAxLjkgMTAgMS45IDE0LjcgMGwxOTYuNS05MC4zYzQtMS45IDQtNC45IDAtNi43TDIzMS43IDMzLjRjLTQuNy0xLjktMTAtMS45LTE0LjcgMEwyMC41IDEyMy43Yy00IDEuOC00IDQuOSAwIDYuN3oiXX0sQXByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdyYXRpcGF5IixpY29uOls1MTIsNTEyLFtdLCJmMTg0IiwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMzc0LjMgMjMzLjdMMjU3LjcgMzkxLjMgMTQxLjMgMjMzLjdjLTktMTIuMy0xOS43LTUyIDE0LTc0LjMgMjktMTguNyA1Ni40LTQuMyA3MC43IDEyLjMgMTYuNCAxOC41IDQ4LjEgMTcuNCA2My43IDAgMTQuMy0xNi42IDQxLjctMzEgNzAuMy0xMi4zIDM0IDIyLjMgMjMuMyA2MS45IDE0LjIgNzQuM3oiXX0sRXByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wYXkiLGljb246WzY0MCw1MTIsW10sImUwNzkiLCJNMTA1LjcgMjE1bDAgNDEuMiA1Ny4xIDBjLTEuMiA2LjYtMy42IDEyLjktNy4yIDE4LjVzLTguNCAxMC40LTEzLjkgMTQuMWMtOS41IDYuNi0yMS43IDEwLjMtMzYgMTAuMy0yNy42IDAtNTAuOS0xOC45LTU5LjMtNDQuMi00LjQtMTMuMy00LjQtMjcuNyAwLTQxIDguNC0yNS41IDMxLjctNDQuNCA1OS4zLTQ0LjQgNy41LS4xIDE0LjkgMS4yIDIxLjkgNHMxMy4zIDYuOSAxOC42IDEyLjFMMTc2LjUgMTU1Yy0xOS4xLTE4LjEtNDQuNC0yOC4xLTcwLjctMjcuOC0xOS43IC4xLTM4LjkgNS43LTU1LjYgMTYuMXMtMzAuMSAyNS4zLTM4LjggNDNDMy45IDIwMS4yIDAgMjE3LjcgMCAyMzQuNHMzLjkgMzMuMiAxMS4zIDQ4LjFsMCAuMmM4LjcgMTcuNyAyMi4xIDMyLjUgMzguOCA0M3MzNS45IDE2IDU1LjYgMTZjMjguNSAwIDUyLjUtOS41IDcwLTI1LjkgMjAtMTguNiAzMS40LTQ2LjIgMzEuNC03OC45IDAtNy4zLS42LTE0LjYtMS44LTIxLjhsLTk5LjcgMHptMzg5LjQtNGMtMTAuMS05LjQtMjMuOS0xNC4xLTQxLjQtMTQuMS0yMi41IDAtMzkuMyA4LjMtNTAuNSAyNC45TDQyNC4xIDIzNWM3LjYtMTEuMyAxOC4xLTE3IDMxLjMtMTcgOC40IDAgMTYuNSAzLjIgMjIuNyA4LjggMyAyLjYgNS41IDUuOSA3LjEgOS42czIuNSA3LjYgMi41IDExLjdsMCA1LjVjLTkuMS01LjEtMjAuNi03LjgtMzQuNi03LjgtMTYuNCAwLTI5LjYgMy45LTM5LjUgMTEuOHMtMTQuOCAxOC4zLTE0LjggMzEuNmMtLjIgNS45IDEgMTEuOCAzLjQgMTcuMnM2IDEwLjIgMTAuNSAxNC4xYzkuMiA4LjMgMjEgMTIuNSAzNC44IDEyLjUgMTYuMyAwIDI5LjItNy4zIDM5LTIxLjlsMSAwIDAgMTcuNyAyMi42IDAgMC03OC43Yy4xLTE2LjYtNC45LTI5LjctMTUtMzl6bS0xOS4yIDg5LjNjLTMuNSAzLjUtNy42IDYuMy0xMi4yIDguMnMtOS41IDIuOS0xNC40IDIuOWMtNi43IC4xLTEzLjEtMi4xLTE4LjMtNi4yLTIuNC0xLjgtNC40LTQuMi01LjctNi45cy0yLTUuNy0yLTguN2MwLTcgMy4yLTEyLjggOS41LTE3LjRzMTQuNS03IDI0LjEtN2MxMy4yLS4yIDIzLjUgMi44IDMwLjggOC44IDAgMTAuMS00IDE4LjktMTEuNyAyNi40em0tOTMuNy0xNDJjLTUuMy01LjMtMTEuNi05LjUtMTguNi0xMi4zcy0xNC40LTQuMi0yMS45LTRsLTYyLjcgMCAwIDE4Ni43IDIzLjYgMCAwLTc1LjYgMzkgMGMxNiAwIDI5LjUtNS40IDQwLjUtMTUuOSAuOS0uOSAxLjgtMS44IDIuNi0yLjcgOS42LTEwLjUgMTQuOC0yNC40IDE0LjMtMzguNnMtNi42LTI3LjctMTYuOS0zNy42bDAgMHptLTE2LjYgNjIuMmMtMyAzLjItNi42IDUuNy0xMC42IDcuNHMtOC40IDIuNS0xMi43IDIuM2wtMzkuNiAwIDAtNjUuMiAzOS42IDBjOC41IDAgMTYuNiAzLjMgMjIuNiA5LjIgNi4xIDYuMSA5LjYgMTQuMyA5LjggMjNzLTMuMSAxNy05IDIzLjNsMCAwek02MTQuMyAyMDFsLTM2LjUgOTEuNy0uNSAwLTM3LjQtOTEuNy0yNS43IDAgNTEuOCAxMTkuNi0yOS40IDY0LjMgMjQuMyAwIDc5LTE4My45LTI1LjcgMHoiXX0sSXByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcGxlIixpY29uOlszODQsNTEyLFtdLCJmMTc5IiwiTTMxOS4xIDI2OC43Yy0uMi0zNi43IDE2LjQtNjQuNCA1MC04NC44LTE4LjgtMjYuOS00Ny4yLTQxLjctODQuNy00NC42LTM1LjUtMi44LTc0LjMgMjAuNy04OC41IDIwLjctMTUgMC00OS40LTE5LjctNzYuNC0xOS43LTU1LjggLjktMTE1LjEgNDQuNS0xMTUuMSAxMzMuMiAwIDI2LjIgNC44IDUzLjMgMTQuNCA4MS4yIDEyLjggMzYuNyA1OSAxMjYuNyAxMDcuMiAxMjUuMiAyNS4yLS42IDQzLTE3LjkgNzUuOC0xNy45IDMxLjggMCA0OC4zIDE3LjkgNzYuNCAxNy45IDQ4LjYtLjcgOTAuNC04Mi41IDEwMi42LTExOS4zLTY1LjItMzAuNy02MS43LTkwLTYxLjctOTEuOXpNMjYyLjUgMTA0LjVjMjcuMy0zMi40IDI0LjgtNjEuOSAyNC03Mi41LTI0LjEgMS40LTUyIDE2LjQtNjcuOSAzNC45LTE3LjUgMTkuOC0yNy44IDQ0LjMtMjUuNiA3MS45IDI2LjEgMiA0OS45LTExLjQgNjkuNS0zNC4zeiJdfSxQcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHVtYmxyIixpY29uOlszMjAsNTEyLFtdLCJmMTczIiwiTTMwOS45IDQ4MC4zYy0xMy42IDE0LjUtNTAgMzEuNy05Ny40IDMxLjctMTIwLjggMC0xNDctODguOC0xNDctMTQwLjZsMC0xNDQtNDcuNSAwYy01LjUgMC0xMC00LjUtMTAtMTBsMC02OGMwLTcuMiA0LjUtMTMuNiAxMS4zLTE2IDYyLTIxLjggODEuNS03NiA4NC4zLTExNy4xIC44LTExIDYuNS0xNi4zIDE2LjEtMTYuM2w3MC45IDBjNS41IDAgMTAgNC41IDEwIDEwbDAgMTE1LjIgODMgMGM1LjUgMCAxMCA0LjQgMTAgOS45bDAgODEuN2MwIDUuNS00LjUgMTAtMTAgMTBsLTgzLjQgMCAwIDEzMy4yYzAgMzQuMiAyMy43IDUzLjYgNjggMzUuOCA0LjgtMS45IDktMy4yIDEyLjctMi4yIDMuNSAuOSA1LjggMy40IDcuNCA3LjlsMjIgNjQuM2MxLjggNSAzLjMgMTAuNi0uNCAxNC41eiJdfSxOcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGhvZW5peC1zcXVhZHJvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjUxMSIsIk05NiA2My40YzQ2LjUtMzYuMSAxMDUuNi01Ni4xIDE2NC41LTU0LjYgMjkuNi0uNCA1OS4xIDUuNCA4Ni45IDE1LjMtMjQuMS00LjYtNDktNi4zLTczLjQtMi41LTQyLjkgNS4zLTgzIDI3LjItMTExLjggNTkuMiA1LjctMSAxMC44LTMuNyAxNi01LjkgMTguMS03LjkgMzcuNS0xMy4zIDU3LjItMTQuOCAxOS43LTIuMSAzOS42LS40IDU5LjMgMS45LTE0LjQgMi44LTI5LjEgNC42LTQzIDkuNi0zNC40IDExLjEtNjUuMyAzMy4yLTg2LjMgNjIuNi0xMy44IDE5LjctMjMuNiA0Mi45LTI0LjcgNjcuMS0uNCAxNi41IDUuMiAzNC44IDE5LjggNDQgMTEuMiA2LjggMjQuNiA5LjIgMzcuNSA2LjcgMTUuNC0yLjUgMzAuMS04LjYgNDMuNi0xNi4zIDExLjUtNi44IDIyLjctMTQuNiAzMi0yNC4zIDMuOC0zLjIgMi41LTguNCAyLjYtMTIuOC0yLjEtLjMtNC40LTEuMS02LjMgLjMtMTEuNCA2LjMtMjMuNCAxMS40LTM1LjggMTUuNC0yMCA2LjItNDIuMiA4LjUtNjIuMSAuOCAxMi44IDEuNyAyNi4xIC4zIDM3LjctNS40IDIwLjItOS43IDM2LjgtMjUuMiA1NC40LTM4LjggMjcuNy0yMS4zIDU3LjUtMzkuOSA4OC45LTU1LjMgMjUuNy0xMiA1Mi45LTIyLjggODEuNi0yNC4xLTE1LjYgMTMuNy0zMi4xIDI2LjUtNDYuOCA0MS40LTE0LjUgMTQtMjcuNSAyOS41LTQwLjEgNDUuMi0zLjUgNC42LTkgNi45LTEzLjYgMTAuMi0yMi40IDE1LTQwLjMgMzUuOC01MS45IDYwLjEtOS4zIDE5LjctMTQuNSA0MS45LTExLjggNjMuNiAxLjkgMTMuNyA4LjcgMjcuNiAyMC45IDM0LjkgMTIuOSA4IDI5IDguMSA0My41IDUuMSAzMi44LTcuNCA2MS40LTI4LjkgODEtNTUuOCAyMC40LTI3LjUgMzAuNS02Mi4yIDI5LjItOTYuMy0uNS03LjUtMS42LTE1LTEuNy0yMi41IDggMTkuNSAxNC44IDM5LjcgMTYuNiA2MC44IDIgMTQuMyAuNyAyOC44LTEuNiA0Mi45LTEuOSAxMS01LjcgMjEuNS03LjggMzIuNCAyMC40LTIyLjkgMzQtNTAuOSAzOS4zLTgxLjEgNS42LTM1LjUgLjctNzEuOS0xNC4yLTEwNC42IDIwLjggMzIgMzIuMyA2OS42IDM1LjcgMTA3LjUgLjUgMTIuNyAuNSAyNS41IDAgMzguMi0yLjggMzQuMy0xMi45IDY3LjYtMjkuNiA5Ny44LTI2LjEgNDcuMy02OCA4NS42LTExNy4yIDEwOC03OC4zIDM2LjItMTc0LjcgMzEuMy0yNDgtMTQuNy0zOS0yMy44LTcwLjYtNTgtOTEuNC05OC43LTE0LjctMjguOS0yMy4zLTYwLjUtMjUuNC05Mi45bDAtMzEuM0MzLjkgMTcyIDQwLjkgMTA1LjggOTYgNjMuNHptMjIyIDgwLjNjNS41LS45IDEwLjgtMi40IDE2LTQuNSA1LTEuOCA5LjItNS45IDEwLjMtMTEuMi05IDUtMTggOS45LTI2LjMgMTUuN3oiXX0sT3ByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNlbnRlcmNvZGUiLGljb246WzUxMiw1MTIsW10sImYzODAiLCJNMjAxLjggMjU0LjhhNjQuMSA2NC4xIDAgMSAxIDEyNy40IDEzLjggNjQuMSA2NC4xIDAgMSAxIC0xMjcuNC0xMy44em00MS42IDI0OC45Qzk2LjcgNDk2LTguMiAzNjUuNSAxMC4xIDIyNC4zIDIxLjMgMTM3LjcgNzUuOSA2Ny40IDE0OS4yIDMyLjMgMzEwLjItNDQuOCA0OTguOSA2OS43IDUwMy45IDI0OC45IDUwOCAzOTUuOSAzODUuNSA1MTEuMSAyNDMuNCA1MDMuN3ptMTc5LjktMTgwYzI3LjktMTE4LTE2MC41LTIwNS45LTIzNy4yLTIzNC4yLTU3LjUgNTYuMy02OS4xIDE4OC42LTMzLjggMzQ0LjQgNjguOCAxNS44IDE2OS4xLTI2LjQgMjcxLTExMC4yeiJdfSxScHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGViaWFuIixpY29uOls0NDgsNTEyLFtdLCJlNjBiIiwiTTM4MC40IDI0NS42YzMtNy42IDUuNS0xNCA1LjItMjQuNGwtNC4zIDljNC40LTEzLjIgNC0yNy4xIDMuNi00MC40LS4yLTYtLjMtMTEuOCAwLTE3LjRsLTEuOC0uNWMtMS41LTQ1LjItNDAuNi05My4xLTc1LjMtMTA5LjQtMzAtMTMuOC03Ni4xLTE2LjItOTcuMy01LjggMS4zLTEuMSA0LjItMiA2LjgtMi43bC4zLS4xYzMuMy0xIDYtMS43IDQtMi45LTE5LjIgMS45LTI0LjkgNS41LTMxLjEgOS40bC0uMSAwYy00LjYgMi45LTkuNSA2LTIwLjMgOC43LTMuNSAzLjQgMS43IDIgNS44IC45czcuMi0xLjktLjEgMi40Yy0zLjUgMS02LjYgMS4zLTkuNiAxLjZsLS4xIDBjLTguMyAuOC0xNS44IDEuNi0zMC43IDE3IC44IDEuMyAzLjQtLjIgNS4zLTEuM2wuMS0uMWMyLjMtMS40IDMuNC0yLTEuNyA0LjQtMTkuMS0yLjQtNjAuMyA0My43LTY5LjEgNTlsNC42IC44Yy0zLjIgOC02LjggMTQuOC0xMCAyMC44LTQuMyA4LjEtNy45IDE0LjktOC43IDIxLjMtLjMgNS4xLTEgMTEtMS43IDE3LjMtLjEgMS0uMiAyLS4zIDNsLS4xIC42Yy0zIDI3LjMtNi43IDYwLjggMy45IDczbC0xLjMgMTNjLjYgMS4yIDEuMSAyLjMgMS42IDMuNSAuMiAuNCAuNCAuOCAuNSAxLjEgMSAyLjEgMiA0LjIgMy4zIDYuMmwtMyAuMmM3IDIyLjEgMTAuOCAyMi41IDE1LjEgMjIuOSA0LjQgLjQgOS4zIC45IDE4LjcgMjQuMi0yLjctLjktNS41LTEuOS05LjQtNy4yLS41IDQuMSA1LjggMTYuMyAxMy4xIDI1LjhsLTMuMSAzLjZjMi4xIDMuNyA0LjggNi4yIDcuNiA4LjggMSAuOSAyLjEgMS45IDMuMSAyLjktMTEuOS02LjUgMy4yIDEzLjcgMTEuOSAyNS4yIC44IDEuMSAxLjUgMiAyLjIgMi45IDEuNCAxLjkgMi41IDMuNCAyLjkgNC4xbDIuNC00LjJjLS4zIDYuMSA0LjMgMTMuOSAxMy4xIDI0LjdsNy4zLS4zYzMgNiAxNCAxNi43IDIwLjcgMTcuMmwtNC40IDUuOGM4LjEgMi42IDEwLjMgNC4zIDEyLjcgNi4yIDIuNiAyLjEgNS40IDQuMyAxNi4xIDguMWwtNC4yLTcuNGMzLjUgMyA2LjIgNS45IDguOCA4LjdsLjEgLjFjNS4yIDUuNiA5LjkgMTAuNiAxOS43IDE1LjMgMTAuNyAzLjcgMTYuNiA0LjcgMjIuNyA1LjggLjMgMCAuNiAuMSAuOSAuMSA1LjQgLjggMTEuMiAxLjggMjAuOCA0LjUtMS4xLS4xLTIuMi0uMS0zLjMtLjEtMi4zLS4xLTQuNy0uMS03LS4xLTE0LjQtLjItMjkuMi0uNC00Mi43LTUuMi05Ni42LTI1LjctMTg0LjktMTM5LTE3OC40LTI1NS42LS42LTkuOS0uMy0yMC45IDAtMzAuNyAuNC0xMy41IC43LTI0LjgtMS42LTI4LjNsMS0zLjFjNS4zLTE3LjQgMTEuNy0zOC4yIDIzLjgtNjIuOGwtLjEtLjIgMC0uMWMuNCAuNCAzLjQgMy40IDguOC01LjggLjgtMS44IDEuNi0zLjcgMi40LTUuNiAuNS0xLjEgLjktMi4yIDEuNC0zLjIgMi41LTYuMSA1LjEtMTIuMyA4LjQtMTcuOWwyLjYtLjZjMS43LTEwLjEgMTctMjMuOCAyOS44LTM1LjJsMS4xLTFjNS43LTUuMSAxMC43LTkuNyAxMy42LTEzLjFsLjcgNC40YzE3LTE1LjkgNDQuNi0yNy41IDY1LjYtMzYuNGwuNS0uMmM0LjgtMiA5LjMtMy45IDEzLjMtNS43LTMuNCAzLjggMi4yIDIuNyAxMCAxIDQuOC0xIDEwLjQtMi4xIDE1LjMtMi40bC0zLjkgMi4xYy0yLjcgMS40LTUuNCAyLjgtOCA0LjYgOC4xLTIgMTEuNy0xLjQgMTUuNy0uOGwuMyAwYzMuNSAuNiA3LjMgMS4yIDE0LjYgLjItNS42IC44LTEyLjMgMy0xMS4yIDMuOCA3LjkgLjkgMTIuOC0uMSAxNy4yLTFsLjIgMGM1LjUtMS4xIDEwLjMtMiAxOS4zIC45bC0xLTQuOGM3LjMgMi42IDEyLjcgNC4zIDE3LjUgNS44bC41IC4xYzEwIDMgMTcuNiA1LjMgMzQuMiAxNC4xIDMuMiAuMiA1LjMtLjUgNy40LTEuMmwuMSAwYzMuNi0xLjEgNy0yLjEgMTUuMiAxLjIgLjMgLjUgLjUgMSAuNyAxLjQgLjEgLjIgLjIgLjUgLjMgLjdsMCAuMWMxIDIuNiAxLjggNC42IDE0LjYgMTIuMSAxLjctLjctMi43LTQuNy02LjQtOC4ybC0uMS0uMWMtLjItLjEtLjMtLjMtLjUtLjQgMzIuMiAxNy4zIDY3LjMgNTQuMSA3OCA5My41LTYtMTEuMS01LjItNS41LTQuMyAuNSAuNiA0IDEuMiA4LjEtLjIgNy41IDQuNSAxMi4xIDguMSAyNC41IDEwLjQgMzcuNGwtLjgtMi45LS4xLS4zYy0zLjMtMTEuOS05LjYtMzQuMy0xOS45LTQ5LjMtLjQgNC4zLTIuOCAzLjktNS4yIDMuNWwtLjEgMGMtMy4zLS42LTYuMi0xLjEtMS45IDEyLjYgMi42IDMuOCAzLjEgMi40IDMuNSAxLjEgLjUtMS41IC45LTIuNyA0LjcgNS4yIC4xIDQuMSAxIDguMiAyLjEgMTIuN2wuMSAuNmMuMSAuMyAuMSAuNSAuMiAuOGwuMSAuNmMuNiAyLjYgMS4zIDUuNCAxLjggOC40LTEuMS0uMi0yLjMtMi4yLTMuNC00LjItMS40LTIuNC0yLjgtNC43LTMuNy0zLjIgMi40IDExLjUgNi41IDE3LjQgOCAxOC4zLS4zIC42LS42IC43LTEuMSAuNy0uOCAwLTEuOCAuMS0xLjkgNS4zIC43IDEzLjcgMy4zIDEyLjUgNS4zIDExLjYgLjYtLjMgMS4yLS42IDEuNy0uNC0uNiAyLjUtMS42IDUuMS0yLjcgNy45LTIuOCA3LjEtNiAxNS40LTMuNCAyNi4xLS44LTMtMi02LTMuMS04LjlsLS4xLS40Yy0uMi0uNS0uNC0xLS42LTEuNS0uMy0uOC0uNi0xLjYtLjktMi4zLS42IDQuNC0uMyA3LjctLjEgMTAuNmwwIC43Yy40IDUuMyAuNyAxMC0zIDE5LjkgNC4zLTE0LjIgMy44LTI2LjktLjItMjAuOCAxIDEwLjktMy43IDIwLjQtOCAyOC45bC0uMSAuMmMtMy42IDcuMS02LjggMTMuNS01LjkgMTkuM2wtNS4yLTcuMWMtNy41IDEwLjktNyAxMy4zLTYuNSAxNS41bDAgLjFjLjUgMS45IDEgMy44LTMuNCAxMC44IDEuNy0yLjkgMS4zLTMuNiAxLTQuMi0uNC0uOC0uNy0xLjUgMS43LTUuMS0xLjYgLjEtNS41IDMuOS0xMC4xIDguNS0zLjkgMy45LTguNSA4LjQtMTIuOCAxMS44LTM3LjUgMzAuMS04Mi4zIDM0LTEyNS42IDE3LjggLjItMS0uMi0yLjEtMy4xLTQuMS0zNi44LTI4LjItNTguNS01Mi4xLTUwLjktMTA3LjUgMi4xLTEuNiAzLjYtNS44IDUuMy0xMC44bC4yLS40IC4xLS4zIDAtLjFjMi45LTguNCA2LjUtMTguOCAxNC4zLTIzLjggNy44LTE3LjMgMzEuMy0zMy4zIDU2LjQtMzMuNyAyNS42LTEuNCA0Ny4yIDEzLjcgNTguMSAyNy45LTE5LjgtMTguNC01Mi4xLTI0LTc5LjctMTAuNC0yOC4yIDEyLjctNDUgNDMuOC00Mi41IDc0LjcgLjMtLjQgLjYtLjYgLjktLjhsLjItLjJjLjYtLjUgMS4xLS45IDEuNC0zLjMtLjkgNjAuMiA2NC44IDEwNC4zIDExMi4xIDgybC42IDEuM2MxMi43LTMuNSAxNS45LTYuNSAyMC4zLTEwLjdsLjEtLjFjMi4yLTIuMSA0LjctNC41IDguOS03LjMtLjMgLjctMS4zIDEuNy0yLjQgMi43LTIuMiAyLjEtNC42IDQuNS0xLjYgNC42IDUtMS4zIDE4LjUtMTMuNCAyOC41LTIyLjMgLjYtLjUgMS4yLTEgMS43LTEuNSAxLjUtMS4zIDIuOC0yLjUgNC0zLjZsLjMtLjNjMS45LTQuMiAxLjYtNS42IDEuMy03bDAtLjFjLS40LTEuNi0uOC0zLjMgMi40LTkuNmw3LjMtMy43Yy44LTIuMSAxLjUtNC4xIDIuMi02IC4yLS42IC41LTEuMiAuNy0xLjhsLS40LS4yLS4xLS4xek0yNDggMzM0LjFjLTYtMy0xMy43LTguOS0xNC44LTExLjRsLS40IC4zYy0uMyAuNi0uNSAxLjMtLjIgMi4yLTEyLjItNS43LTIzLjQtMTQuMy0zMi42LTI0LjkgNC45IDcuMSAxMC4xIDE0LjEgMTcgMTkuNS02LjktMi4zLTE1LjEtMTEuOC0yMS42LTE5LjNsLS4xLS4xYy00LjMtNS03LjktOS4xLTkuNy05LjUgMTkuOCAzNS41IDgwLjUgNjIuMyAxMTIuMyA0OS0xNC43IC41LTMzLjQgLjMtNDkuOS01Ljh6bTc5LjMtMTE5LjdsLS4xLS4yYy0uNS0xLjUtMS4xLTMuMS0xLjctMy40IDEuNC01LjggNS40LTEwLjcgNC40IDQuNi0xIDMuOC0xLjggMS41LTIuNi0xem0tNC4yIDIyLjJjLTEuMyA3LjktNSAxNS41LTEwLjEgMjIuNSAuMi0yLTEuMi0yLjQtMi42LTIuOC0yLjktLjgtNS45LTEuNiA1LjYtMTYuMS0uNSAxLjktMi4xIDQuNi0zLjcgNy4zbC0uMyAuNGMtMy42IDUuOS02LjcgMTEgNCA0LjNsMS0xLjhjMi42LTQuNSA1LTguOCA2LTEzLjhsLjEgMHptLTU1LjYgMzMuOWM3LjEgLjYgMTQuMSAuNiAyMS0xLjEtMi41IDIuNC01LjIgNC44LTguMyA3LjItMTEuMS0xLjctMjEuMi02LTEyLjctNi4xem0tOTIuNiAxMS42YzMuNiA3LjEgNi40IDExLjUgOSAxNS43bC4xIC4yYzIuMyAzLjcgNC40IDcuMSA2LjggMTEuNy01LjEtNC4yLTguNy05LjUtMTIuNS0xNWwtLjMtLjVjLTEuNC0yLjEtMi44LTQuMi00LjQtNi4ybDEuMi01LjkgLjEgMHptNy41LTkuNmMxLjYgMy4zIDMuMiA2LjQgNS43IDkuMWwyLjYgNy43LTEuMy0yLjFjLTMuMi01LjMtNi4zLTEwLjYtOC0xNi43bDEgMnptMjM4LjktNDEuNmMtMi4zIDE3LjQtNy43IDM0LjYtMTYgNTAuMyA3LjYtMTQuOSAxMi41LTMwLjkgMTQuOC00Ny4ybDEuMi0zLjF6TTM1LjggMTEwLjZjLjQgLjggMS40IC41IDIuMyAuMyAxLjktLjUgMy42LS45LS4xIDcuNi0uNSAuMy0xIC43LTEuNSAxLTEuNCAuOS0yLjggMS45LTMuOSAzIDEuOS0zLjggMy41LTcuNCAzLjItMTEuOXpNMjUuNSAxNTIuM2MtLjcgMy43LTEuNSA3LjktMy40IDEzLjkgLjItMS45IDAtMy41LS4yLTQuOWwwLS4xYy0uNC0zLjQtLjctNi4zIDQuMy0xMi44LS4zIDEuMi0uNSAyLjUtLjcgMy44bDAgLjF6Il19LEZwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYXN0b2RvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmNiIsIk00MzMgMTc5LjFjMC05Ny4yLTYzLjctMTI1LjctNjMuNy0xMjUuNy02Mi41LTI4LjctMjI4LjYtMjguNC0yOTAuNSAwIDAgMC02My43IDI4LjUtNjMuNyAxMjUuNyAwIDExNS43LTYuNiAyNTkuNCAxMDUuNiAyODkuMSA0MC41IDEwLjcgNzUuMyAxMyAxMDMuMyAxMS40IDUwLjgtMi44IDc5LjMtMTguMSA3OS4zLTE4LjFsLTEuNy0zNi45cy0zNi4zIDExLjQtNzcuMSAxMC4xYy00MC40LTEuNC04My00LjQtODkuNi01NC0uNi00LjYtLjktOS4zLS45LTEzLjkgODUuNiAyMC45IDE1OC43IDkuMSAxNzguNyA2LjcgNTYuMS02LjcgMTA1LTQxLjMgMTExLjItNzIuOSA5LjgtNDkuOCA5LTEyMS41IDktMTIxLjV6TTM1Ny45IDMwNC4zbC00Ni42IDAgMC0xMTQuMmMwLTQ5LjctNjQtNTEuNi02NCA2LjlsMCA2Mi41LTQ2LjMgMCAwLTYyLjVjMC01OC41LTY0LTU2LjYtNjQtNi45bDAgMTE0LjItNDYuNyAwYzAtMTIyLjEtNS4yLTE0Ny45IDE4LjQtMTc1IDI1LjktMjguOSA3OS44LTMwLjggMTAzLjggNi4xbDExLjYgMTkuNSAxMS42LTE5LjVjMjQuMS0zNy4xIDc4LjEtMzQuOCAxMDMuOC02LjEgMjMuNyAyNy4zIDE4LjQgNTMgMTguNCAxNzVsMCAweiJdfSxCcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2tldGNoIixpY29uOls1MTIsNTEyLFtdLCJmN2M2IiwiTTI3LjggMTYyLjJsLTE4LjUgMjQuOSA5MC41IDAgNi45LTEzMC43LTc4LjkgMTA1Ljh6TTM5Ni42IDQ1LjdMMjY4IDMyIDQwMy43IDE3OS4yIDM5Ni42IDQ1Ljd6TTExMi41IDIxOC4zbC0xMS4yLTIyLTkxLjEgMCAyMjQuOSAyNjEuNy0xMjIuNi0yMzkuN3ptMi0zMS4ybDI4NCAwQzM0MC42IDEyNC4zIDI5My4zIDcyLjkgMjU2LjYgMzNMMTE0LjUgMTg3LjF6bTI5Ny4zIDkuMWwtMTMzLjkgMjYxLjggMjI0LjgtMjYxLjctOTAuOSAwIDAtLjF6TTQxNS43IDY5bC05LjQtMTIuNiAuOSAxNy4zIDYuMSAxMTMuNCA5MC4zIDAtODcuOS0xMTguMXpNMTEzLjggOTMuNUwxMDkuMiAxNzkuMSAyNDUgMzIgMTE2LjQgNDUuNyAxMTMuOCA5My41ek00MDEuNSAxOTYuMmwtMjkwIDBjMTguMiAzNS42IDY2LjYgMTMwLjIgMTQ1LjEgMjgzLjhMNDAxLjUgMTk2LjJ6Il19LEhwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWItYXdlc29tZSIsaWNvbjpbNjQwLDUxMixbXSwiZTY4MiIsIk0zNzIuMiA1MmMwIDIwLjktMTIuNCAzOS0zMC4yIDQ3LjJMNDQ4IDE5MiA1NTIuNCAxNzEuMWMtNS4zLTcuNy04LjQtMTcuMS04LjQtMjcuMSAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4YzAgMjYtMjAuNiA0Ny4xLTQ2LjQgNDhMNDgxIDQ0Mi4zYy0xMC4zIDIzLTMzLjIgMzcuNy01OC40IDM3LjdsLTIwNS4yIDBjLTI1LjIgMC00OC0xNC44LTU4LjQtMzcuN0w0Ni40IDE5MkMyMC42IDE5MS4xIDAgMTcwIDAgMTQ0IDAgMTE3LjUgMjEuNSA5NiA0OCA5NnM0OCAyMS41IDQ4IDQ4YzAgMTAuMS0zLjEgMTkuNC04LjQgMjcuMUwxOTIgMTkyIDI5OC4xIDk5LjFjLTE3LjctOC4zLTMwLTI2LjMtMzAtNDcuMSAwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUybC4xIDB6Il19LHFwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzYXNzIixpY29uOls2NDAsNTEyLFtdLCJmNDFlIiwiTTMwMS44IDM3OC45bDAgMHptMjQ5LjEtODdjLTIwLjEgMC00MCA0LjYtNTggMTMuNS01LjktMTEuOS0xMi0yMi4zLTEzLTMwLjEtMS4yLTkuMS0yLjUtMTQuNS0xLjEtMjUuM3M3LjctMjYuMSA3LjYtMjcuMi0xLjQtNi42LTE0LjMtNi43LTI0IDIuNS0yNS4zIDUuOWMtMi4zIDYuMi00LjEgMTIuNi01LjMgMTkuMS0yLjMgMTEuNy0yNS44IDUzLjUtMzkuMSA3NS4zLTQuNC04LjUtOC4xLTE2LTguOS0yMi0xLjItOS4xLTIuNS0xNC41LTEuMS0yNS4zczcuNy0yNi4xIDcuNi0yNy4yLTEuNC02LjYtMTQuMy02LjctMjQgMi41LTI1LjMgNS45LTIuNyAxMS40LTUuMyAxOS4xLTMzLjkgNzcuMy00Mi4xIDk1LjRjLTQuMiA5LjItNy44IDE2LjYtMTAuNCAyMS42LS40IC44LS43IDEuMy0uOSAxLjcgLjMtLjUgLjUtMSAuNS0uOC0yLjIgNC4zLTMuNSA2LjctMy41IDYuN2wwIC4xYy0xLjcgMy4yLTMuNiA2LjEtNC41IDYuMS0uNiAwLTEuOS04LjQgLjMtMTkuOSA0LjctMjQuMiAxNS44LTYxLjggMTUuNy02My4xLS4xLS43IDIuMS03LjItNy4zLTEwLjctOS4xLTMuMy0xMi40IDIuMi0xMy4yIDIuMnMtMS40IDItMS40IDIgMTAuMS00Mi40LTE5LjQtNDIuNGMtMTguNCAwLTQ0IDIwLjItNTYuNiAzOC41LTcuOSA0LjMtMjUgMTMuNi00MyAyMy41LTYuOSAzLjgtMTQgNy43LTIwLjcgMTEuNC0uNS0uNS0uOS0xLTEuNC0xLjUtMzUuOC0zOC4yLTEwMS45LTY1LjItOTkuMS0xMTYuNSAxLTE4LjcgNy41LTY3LjggMTI3LjEtMTI3LjQgOTgtNDguOCAxNzYuMy0zNS40IDE4OS44LTUuNiAxOS40IDQyLjUtNDEuOSAxMjEuNi0xNDMuNyAxMzMtMzguOCA0LjMtNTkuMi0xMC43LTY0LjMtMTYuMy01LjMtNS45LTYuMS02LjItOC4xLTUuMS0zLjMgMS44LTEuMiA3IDAgMTAuMSAzIDcuOSAxNS41IDIxLjkgMzYuOCAyOC45IDE4LjcgNi4xIDY0LjIgOS41IDExOS4yLTExLjggNjEuOC0yMy44IDEwOS45LTkwLjEgOTUuOC0xNDUuNi0xNC40LTU2LjQtMTA3LjktNzQuOS0xOTYuMy00My41LTUyLjcgMTguNy0xMDkuNyA0OC4xLTE1MC43IDg2LjQtNDguNyA0NS42LTU2LjUgODUuMy01My4zIDEwMS45IDExLjQgNTguOSA5Mi42IDk3LjMgMTI1LjEgMTI1LjctMS42IC45LTMuMSAxLjctNC41IDIuNS0xNi4zIDguMS03OC4yIDQwLjUtOTMuNyA3NC43LTE3LjUgMzguOCAyLjkgNjYuNiAxNi4zIDcwLjQgNDEuOCAxMS42IDg0LjYtOS4zIDEwNy42LTQzLjZzMjAuMi03OS4xIDkuNi05OS41Yy0uMS0uMy0uMy0uNS0uNC0uOCA0LjItMi41IDguNS01IDEyLjgtNy41IDguMy00LjkgMTYuNC05LjQgMjMuNS0xMy4zLTQgMTAuOC02LjkgMjMuOC04LjQgNDIuNi0xLjggMjIgNy4zIDUwLjUgMTkuMSA2MS43IDUuMiA0LjkgMTEuNSA1IDE1LjQgNSAxMy44IDAgMjAtMTEuNCAyNi45LTI1IDguNS0xNi42IDE2LTM1LjkgMTYtMzUuOXMtOS40IDUyLjIgMTYuMyA1Mi4yYzkuNCAwIDE4LjgtMTIuMSAyMy0xOC4zbDAgLjFzLjItLjQgLjctMS4yYzEtMS41IDEuNS0yLjQgMS41LTIuNGwwLS4zYzMuOC02LjUgMTIuMS0yMS40IDI0LjYtNDYgMTYuMi0zMS44IDMxLjctNzEuNSAzMS43LTcxLjUgMS41IDguNyAzLjYgMTcuMyA2LjIgMjUuOCAyLjggOS41IDguNyAxOS45IDEzLjQgMzAtMy44IDUuMi02LjEgOC4yLTYuMSA4LjIgMCAuMSAwIC4xIC4xIC4yLTMgNC02LjQgOC4zLTkuOSAxMi41LTEyLjggMTUuMi0yOCAzMi42LTMwIDM3LjYtMi40IDUuOS0xLjggMTAuMyAyLjggMTMuNyAzLjQgMi42IDkuNCAzIDE1LjcgMi41IDExLjUtLjggMTkuNi0zLjYgMjMuNS01LjQgNy4yLTIuNiAxNC02LjEgMjAuMi0xMC42IDEyLjUtOS4yIDIwLjEtMjIuNCAxOS40LTM5LjgtLjQtOS42LTMuNS0xOS4yLTcuMy0yOC4yIDEuMS0xLjYgMi4zLTMuMyAzLjQtNSAxOS44LTI4LjkgMzUuMS02MC42IDM1LjEtNjAuNiAxLjUgOC43IDMuNiAxNy4zIDYuMiAyNS44IDIuNCA4LjEgNy4xIDE3IDExLjQgMjUuNy0xOC42IDE1LjEtMzAuMSAzMi42LTM0LjEgNDQuMS03LjQgMjEuMy0xLjYgMzAuOSA5LjMgMzMuMSA0LjkgMSAxMS45LTEuMyAxNy4xLTMuNSA3LjctMi42IDE1LTYuMyAyMS42LTExLjEgMTIuNS05LjIgMjQuNi0yMi4xIDIzLjgtMzkuNi0uMy03LjktMi41LTE1LjgtNS40LTIzLjQgMTUuNy02LjYgMzYuMS0xMC4yIDYyLjEtNy4yIDU1LjcgNi41IDY2LjYgNDEuMyA2NC41IDU1LjhzLTEzLjggMjIuNi0xNy43IDI1LTUuMSAzLjMtNC44IDUuMWMuNSAyLjYgMi4zIDIuNSA1LjYgMS45IDQuNi0uOCAyOS4yLTExLjggMzAuMy0zOC43IDEuNi0zNC0zMS4xLTcxLjQtODktNzEuMWwwIDB6TTEyMS44IDQzNi42Yy0xOC40IDIwLjEtNDQuMiAyNy43LTU1LjMgMjEuMy0xMS45LTYuOS03LjItMzYuNSAxNS41LTU3LjkgMTMuOC0xMyAzMS42LTI1IDQzLjQtMzIuNCAyLjctMS42IDYuNi00IDExLjQtNi45IC44LS41IDEuMi0uNyAxLjItLjcgLjktLjYgMS45LTEuMSAyLjktMS43IDguMyAzMC40IC4zIDU3LjItMTkuMSA3OC4zbDAgMHptMTM0LjQtOTEuNGMtNi40IDE1LjctMTkuOSA1NS43LTI4LjEgNTMuNi03LTEuOC0xMS4zLTMyLjMtMS40LTYyLjMgNS0xNS4xIDE1LjYtMzMuMSAyMS45LTQwLjEgMTAuMS0xMS4zIDIxLjItMTQuOSAyMy44LTEwLjQgMy41IDUuOS0xMi4yIDQ5LjQtMTYuMiA1OS4yem0xMTEgNTNjLTIuNyAxLjQtNS4yIDIuMy02LjQgMS42LS45LS41IDEuMS0yLjQgMS4xLTIuNHMxMy45LTE0LjkgMTkuNC0yMS43YzMuMi00IDYuOS04LjcgMTAuOS0xMy45IDAgLjUgLjEgMSAuMSAxLjYtLjEgMTcuOS0xNy4zIDMwLTI1LjEgMzQuOGwwIDB6bTg1LjYtMTkuNWMtMi0xLjQtMS43LTYuMSA1LTIwLjcgMi42LTUuNyA4LjYtMTUuMyAxOS0yNC41IDEuMiAzLjUgMS44IDcuMSAxLjkgMTAuOC0uMSAyMi41LTE2LjIgMzAuOS0yNS45IDM0LjRsMCAweiJdfSxWcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhyZWVtYSIsaWNvbjpbMzg0LDUxMixbXSwiZTg1ZiIsIk04Ny40IDQ0NS4xYzE4LjUgMCAzMy41IDE1IDMzLjUgMzMuNFMxMDUuOSA1MTIgODcuNCA1MTIgNTQgNDk3IDU0IDQ3OC41IDY5IDQ0NS4xIDg3LjQgNDQ1LjF6bTEwOS4yIDBjMTguNSAwIDMzLjUgMTUgMzMuNSAzMy40cy0xNSAzMy41LTMzLjUgMzMuNS0zMy40LTE1LTMzLjQtMzMuNSAxNS0zMy40IDMzLjQtMzMuNHptMTA5LjMgMGMxOC41IDAgMzMuNSAxNSAzMy41IDMzLjRzLTE1IDMzLjUtMzMuNSAzMy41LTMzLjUtMTUtMzMuNS0zMy41IDE1LTMzLjQgMzMuNS0zMy40ek0xOTIuMyAuM2MxMDkuOCAwIDE5OS4yIDg5LjMgMTk5LjIgMTk5LjFTMzAyLjIgMzk4LjUgMTkyLjQgMzk4LjVjLTQwLjUgMC03OC4xLTEyLjEtMTA5LjYtMzIuOWwtNzYuNSAyNC41IDI0LjgtNzRDNy4zIDI4My40LTYuOCAyNDMtNi44IDE5OS40LTYuOCA4OS43IDgyLjUgLjMgMTkyLjMgLjN6bS4xIDkzLjdjLTMxLjYgMC01Ny4zIDI1LjgtNTcuMyA1Ny4zbDAgMjYuNy0xLjggMGMtMTAgMC0xOCA4LTE4IDE4bDAgNzIuM2MwIDEwIDggMTggMTggMThsMTE4LjEgMGMxMCAwIDE4LTggMTgtMThsLjEgMCAwLTcyLjNjMC0xMC04LjEtMTgtMTgtMThsLTEuOCAwIDAtMjYuN2MwLTMxLjYtMjUuOC01Ny4zLTU3LjMtNTcuM3ptLS4xIDIzLjVjMTguNiAwIDMzLjggMTUuMSAzMy44IDMzLjhsMCAyNi43LTY3LjYgMCAwLTI2LjdjMC0xOC42IDE1LjEtMzMuOCAzMy44LTMzLjh6Il19LEdFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtd2hhdHNhcHAiLGljb246WzQ0OCw1MTIsWyJ3aGF0c2FwcC1zcXVhcmUiXSwiZjQwYyIsIk05Mi4xIDI1NC42YzAgMjQuOSA3IDQ5LjIgMjAuMiA3MC4xbDMuMSA1LTEzLjMgNDguNiA0OS45LTEzLjEgNC44IDIuOWMyMC4yIDEyIDQzLjQgMTguNCA2Ny4xIDE4LjRsLjEgMGM3Mi42IDAgMTMzLjMtNTkuMSAxMzMuMy0xMzEuOCAwLTM1LjItMTUuMi02OC4zLTQwLjEtOTMuMi0yNS0yNS01OC0zOC43LTkzLjItMzguNy03Mi43IDAtMTMxLjggNTkuMS0xMzEuOSAxMzEuOHpNMjc0LjggMzMwYy0xMi42IDEuOS0yMi40IC45LTQ3LjUtOS45LTM2LjgtMTUuOS02MS44LTUxLjUtNjYuOS01OC43LS40LS42LS43LS45LS44LTEuMS0yLTIuNi0xNi4yLTIxLjUtMTYuMi00MSAwLTE4LjQgOS0yNy45IDEzLjItMzIuMyAuMy0uMyAuNS0uNSAuNy0uOCAzLjYtNCA3LjktNSAxMC42LTUgMi42IDAgNS4zIDAgNy42IC4xbC44IDBjMi4zIDAgNS4yIDAgOC4xIDYuOCAxLjIgMi45IDMgNy4zIDQuOSAxMS44IDMuMyA4IDYuNyAxNi4zIDcuMyAxNy42IDEgMiAxLjcgNC4zIC4zIDYuOS0zLjQgNi44LTYuOSAxMC40LTkuMyAxMy0zLjEgMy4yLTQuNSA0LjctMi4zIDguNiAxNS4zIDI2LjMgMzAuNiAzNS40IDUzLjkgNDcuMSA0IDIgNi4zIDEuNyA4LjYtMSAyLjMtMi42IDkuOS0xMS42IDEyLjUtMTUuNSAyLjYtNCA1LjMtMy4zIDguOS0yczIzLjEgMTAuOSAyNy4xIDEyLjljLjggLjQgMS41IC43IDIuMSAxIDIuOCAxLjQgNC43IDIuMyA1LjUgMy42IC45IDEuOSAuOSA5LjktMi40IDE5LjEtMy4zIDkuMy0xOS4xIDE3LjctMjYuNyAxOC44ek00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMTQ4LjEgMzkzLjlMNjQgNDE2IDg2LjUgMzMzLjhjLTEzLjktMjQtMjEuMi01MS4zLTIxLjItNzkuMyAuMS04Ny40IDcxLjItMTU4LjUgMTU4LjYtMTU4LjUgNDIuNCAwIDgyLjIgMTYuNSAxMTIuMiA0Ni41IDI5LjkgMzAgNDcuOSA2OS44IDQ3LjkgMTEyLjIgMCA4Ny40LTcyLjcgMTU4LjUtMTYwLjEgMTU4LjUtMjYuNiAwLTUyLjctNi43LTc1LjgtMTkuM3oiXX0sanByPUdFZSxVcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2t5cGUiLGljb246WzQ0OCw1MTIsW10sImYxN2UiLCJNNDI0LjcgMjk5LjhjMi45LTE0IDQuNy0yOC45IDQuNy00My44IDAtMTEzLjUtOTEuOS0yMDUuMy0yMDUuMy0yMDUuMy0xNC45IDAtMjkuNyAxLjctNDMuOCA0LjctMTktMTQuNy00Mi42LTIzLjQtNjguMy0yMy40LTYxLjggMC0xMTIgNTAuMi0xMTIgMTEyIDAgMjUuNyA4LjcgNDkuMyAyMy4zIDY4LjItMi45IDE0LTQuNyAyOC45LTQuNyA0My44IDAgMTEzLjUgOTEuOSAyMDUuMyAyMDUuMyAyMDUuMyAxNC45IDAgMjkuNy0xLjcgNDMuOC00LjcgMTkgMTQuNiA0Mi42IDIzLjMgNjguMiAyMy4zIDYxLjggMCAxMTItNTAuMiAxMTItMTEyIC4xLTI1LjYtOC42LTQ5LjItMjMuMi02OC4xek0yMzAuMSAzOTEuM2MtNjUuNiAwLTEyMC41LTI5LjItMTIwLjUtNjUgMC0xNiA5LTMwLjYgMjkuNS0zMC42IDMxLjIgMCAzNC4xIDQ0LjkgODguMSA0NC45IDI1LjcgMCA0Mi4zLTExLjQgNDIuMy0yNi4zIDAtMTguNy0xNi0yMS42LTQyLTI4LTYyLjUtMTUuNC0xMTcuOC0yMi0xMTcuOC04Ny4yIDAtNTkuMiA1OC42LTgxLjEgMTA5LjEtODEuMSA1NS4xIDAgMTEwLjggMjEuOSAxMTAuOCA1NS40IDAgMTYuOS0xMS40IDMxLjgtMzAuMyAzMS44LTI4LjMgMC0yOS4yLTMzLjUtNzUtMzMuNS0yNS43IDAtNDIgNy00MiAyMi41IDAgMTkuOCAyMC44IDIxLjggNjkuMSAzMyA0MS40IDkuMyA5MC43IDI2LjggOTAuNyA3Ny42IDAgNTkuMS01Ny4xIDg2LjUtMTEyIDg2LjV6Il19LFdwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbmd1bGFyIixpY29uOls0NDgsNTEyLFtdLCJmNDIwIiwiTTE4NS43IDI2OC4xbDc2LjIgMC0zOC4xLTkxLjYtMzguMSA5MS42ek0yMjMuOCAzMkwxNiAxMDYuNCA0Ny44IDM4Mi4xIDIyMy44IDQ4MCAzOTkuOCAzODIuMSA0MzEuNiAxMDYuNCAyMjMuOCAzMnpNMzU0IDM3My44bC00OC42IDAtMjYuMi02NS40LTExMC42IDAtMjYuMiA2NS40LTQ4LjcgMCAxMzAuMS0yOTIuMyAxMzAuMiAyOTIuM3oiXX0sR3ByPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNpcmNsZS16dWxpcCIsaWNvbjpbNTEyLDUxMixbXSwiZTg1MSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnpNMjQzLjUgMjQwYzEuMi0xLjktLjktNC4yLTIuNi0yLjhsLTg5IDc5LjVjLTkuMiA3LjItMTUuMiAxOS4xLTE1LjIgMzIuNSAwIDIxLjkgMTYgMzkuOCAzNS43IDM5LjhsMTY3LjMgMGMxOS42IDAgMzUuNy0xNy45IDM1LjctMzkuOCAwLTIxLjktMTYuMS0zOS43LTM1LjctMzkuOGwtMTI2LjYgMGMtMS45IDAtMy0yLjMtMi4xLTQuMUwyNDMuNSAyNDB6TTE3Mi40IDEyMy4xYy0xOS42IDAtMzUuNyAxNy45LTM1LjcgMzkuOHMxNiAzOS44IDM1LjcgMzkuOGwxMjYuNiAwYzEuOSAwIDMuMSAyLjIgMi4yIDQuMUwyNjguNSAyNzJjLTEuMiAxLjkgLjkgNC4yIDIuNiAyLjhsODktNzkuNWM5LjItNy4yIDE1LjItMTkuMSAxNS4yLTMyLjUgMC0yMS45LTE2LTM5LjctMzUuNy0zOS44bC0xNjcuMyAweiJdfSxZcHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbnN1c2UiLGljb246WzY0MCw1MTIsW10sImU2MmIiLCJNNDcxLjEgMTAyLjdzLS4zIDE4LjMtLjMgMjAuM2MtOS4xLTMtNzQuNC0yNC4xLTEzNS43LTI2LjMtNTEuOS0xLjgtMTIyLjgtNC4zLTIyMyA1Ny4zLTE5LjQgMTIuNC03My45IDQ2LjEtOTkuNiAxMDkuNy01LjUgMTMuMy0xMi42IDQzLjMtNS41IDcxLjQgMy4zIDEyLjggOC45IDI0LjkgMTYuNSAzNS43IDE3LjQgMjUgNDYuNiA0MS42IDc4LjEgNDQuNCA0NC40IDMuOSA3OC4xLTE2IDkwLTUzLjMgOC4yLTI1LjggMC02My42LTMxLjUtODIuOS0yNS42LTE1LjctNTMuMy0xMi4xLTY5LjItMS42LTEzLjkgOS4yLTIxLjggMjMuNS0yMS42IDM5LjIgLjMgMjcuOCAyNC4zIDQyLjYgNDEuNSA0Mi42IDUuNCAwIDEwLjctLjkgMTUuOC0yLjcgNi41LTEuOCAxMy4zLTYuNSAxMy4zLTE0LjkgMC0xMi4xLTExLjYtMTQuOC0xNi44LTEzLjktMi45IC41LTQuNSAyLTExLjggMi40LTItLjItMTItMy4xLTEyLTE0bDAtLjFjLjItMTIuMyAxMy4yLTE4IDI1LjUtMTYuOSAzMi4zIDIuOCA0Ny43IDQwLjcgMjguNSA2NS43LTE4LjMgMjMuNy03Ni42IDIzLjItOTkuNy0yMC40LTI2LTQ5LjIgMTIuNy0xMTEuMiA4Ny05OC40IDMzLjIgNS43IDgzLjYgMzUuNSAxMDIuNCAxMDQuM2w0NS45IDBjLTUuNy0xNy42LTguOS02OC4zIDQyLjctNjguMyA1Ni43IDAgNjMuOSAzOS45IDc5LjggNjguM2w0OC42IDBjLTEyLjgtMTguMy0yMS43LTM4LjctMTguOS01NS44IDUuNi0zMy44IDM5LjctMTguNCA4Mi40LTE3LjQgNjYuNSAuNCAxMDIuMS0yNyAxMDMuMS0yOCAzLjctMy4xIDYuNS0xNS44IDctMTcuNyAxLjMtNS4xLTMuMi0yLjQtMy4yLTIuNC04LjcgNS4yLTMwLjUgMTUuMi01MC45IDE1LjYtMjUuMyAuNS03Ni4yLTI1LjQtODEuNi0yOC4yLS4zLS40IC4xIDEuMi0xMS0yNS41IDg4LjQgNTguMyAxMTguMyA0MC41IDE0NS4yIDIxLjcgLjgtLjYgNC4zLTIuOSAzLjYtNS43LTEzLjgtNDguMS0yMi40LTYyLjctMzQuNS02OS42LTM3LTIxLjYtMTI1LTM0LjctMTI5LjItMzUuMyAuMS0uMS0uOS0uMy0uOSAuN3ptNjAuNCA3Mi44YTM3LjYgMzcuNiAwIDEgMSA3NS4yIDIuNiAzNy42IDM3LjYgMCAxIDEgLTc1LjItMi42em0zOC42LTI1LjNjLTMuNi0uMy03LjEgLjEtMTAuNSAxLjJzLTYuNSAyLjktOS4yIDUuMy00LjggNS4zLTYuMyA4LjUtMi40IDYuNy0yLjUgMTAuMyAuNSA3LjEgMS44IDEwLjQgMy4zIDYuMyA1LjggOC45IDUuNSA0LjUgOC44IDUuOSA2LjkgMiAxMC40IDEuOWMzLjYgLjMgNy4xLS4xIDEwLjUtMS4yczYuNS0yLjkgOS4yLTUuMyA0LjgtNS4zIDYuMy04LjUgMi40LTYuNyAyLjUtMTAuMy0uNS03LjEtMS44LTEwLjQtMy4zLTYuMy01LjgtOC45LTUuNS00LjUtOC44LTUuOS02LjktMi0xMC40LTEuOXptNC4zIDI4LjhjLTE1LjQgMC0xNS40LTE1LjYgMC0xNS42czE1LjQgMTUuNiAwIDE1LjZ6Il19LEtwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkcm9wYm94IixpY29uOls1NzYsNTEyLFtdLCJmMTZiIiwiTTI4OC40IDExNi4zbC0xMzIgODQuMyAxMzIgODQuMy0xMzIgODQuMy0xMzIuNC04NS4xIDEzMi4zLTg0LjMtMTMyLjMtODMuNSAxMzIuMy04NC4zIDEzMi4xIDg0LjN6TTE1NS42IDM5NS43bDEzMi04NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi04NC4zek0yODguNCAyODQuMWwxMzItODQuMy0xMzItODMuNiAxMzEuMy04NC4yIDEzMi4zIDg0LjMtMTMyLjMgODQuMyAxMzIuMyA4NC4yLTEzMi4zIDg0LjMtMTMxLjMtODV6Il19LFpwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZWV6ZXIiLGljb246WzUxMiw1MTIsW10sImUwNzciLCJNMTQuOCAxMDEuMUM2LjYgMTAxLjEgMCAxMjcuNiAwIDE2MC4zczYuNiA1OS4yIDE0LjggNTkuMiAxNC44LTI2LjUgMTQuOC01OS4yLTYuNi01OS4yLTE0LjgtNTkuMnpNNDQ4LjcgNDAuOWMtNy43IDAtMTQuNSAxNy4xLTE5LjQgNDQuMS03LjctNDYuNy0yMC4yLTc3LTM0LjItNzctMTYuOCAwLTMxLjEgNDIuOS0zOCAxMDUuNC02LjYtNDUuNC0xNi44LTc0LjItMjguMy03NC4yLTE2LjEgMC0yOS42IDU2LjktMzQuNyAxMzYuMi05LjQtNDAuOC0yMy4yLTY2LjMtMzguMy02Ni4zcy0yOC44IDI1LjUtMzguMyA2Ni4zYy01LjEtNzkuMy0xOC42LTEzNi4yLTM0LjctMTM2LjItMTEuNSAwLTIxLjcgMjguOC0yOC4zIDc0LjItNi42LTYyLjUtMjEuMi0xMDUuNC0zNy44LTEwNS40LTE0IDAtMjYuNSAzMC40LTM0LjIgNzctNC44LTI3LTExLjctNDQuMS0xOS40LTQ0LjEtMTQuMyAwLTI2IDU5LjItMjYgMTMyLjFTNDkgMzA1LjIgNjMuMyAzMDUuMmM1LjkgMCAxMS41LTkuOSAxNS44LTI2LjggNi45IDYxLjcgMjEuMiAxMDQuMSAzOCAxMDQuMSAxMyAwIDI0LjUtMjUuNSAzMi4xLTY1LjYgNS40IDc2LjMgMTguNiAxMzAuNCAzNC4yIDEzMC40IDkuNyAwIDE4LjYtMjEuNCAyNS4zLTU2LjQgNy45IDcyLjIgMjYuMyAxMjIuNyA0Ny43IDEyMi43czM5LjUtNTAuNSA0Ny43LTEyMi43YzYuNiAzNSAxNS42IDU2LjQgMjUuMyA1Ni40IDE1LjYgMCAyOC44LTU0LjEgMzQuMi0xMzAuNCA3LjcgNDAuMSAxOS40IDY1LjYgMzIuMSA2NS42IDE2LjYgMCAzMC45LTQyLjMgMzgtMTA0LjEgNC4zIDE2LjggOS43IDI2LjggMTUuOCAyNi44IDE0LjMgMCAyNi01OS4yIDI2LTEzMi4xUzQ2MyA0MC45IDQ0OC43IDQwLjl6bTQ4LjUgNjAuMmMtOC4yIDAtMTQuOCAyNi41LTE0LjggNTkuMnM2LjYgNTkuMiAxNC44IDU5LjIgMTQuOC0yNi41IDE0LjgtNTkuMi02LjYtNTkuMi0xNC44LTU5LjJ6Il19LFFwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNhbXBsaW5nIixpY29uOls1MTIsNTEyLFtdLCJmNGYwIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMy42IDUzLjJjMi44LS4zIDExLjUgMSAxMS41IDExLjVsNi42IDEwNy4yIDQuOS01OS4zYzAtNiA0LjctMTAuNiAxMC42LTEwLjZzMTAuNiA0LjcgMTAuNiAxMC42YzAgMi41LS41LTUuNyA1LjcgODEuNWw1LjgtNjQuMmMuMy0yLjkgMi45LTkuMyAxMC4yLTkuMyAzLjggMCA5LjkgMi4zIDEwLjYgOC45bDExLjUgOTYuNSA1LjMtMTIuOGMxLjgtNC40IDUuMi02LjYgMTAuMi02LjZsNTggMCAwIDIxLjMtNTAuOSAwLTE4LjIgNDQuM2MtMy45IDkuOS0xOS41IDkuMS0yMC44LTMuMWwtNC0zMS45LTcuNSA5Mi42Yy0uMyAzLTMgOS4zLTEwLjIgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtMS45IC42IDUuOC02LjItNzcuOWwtNS4zIDcyLjJjLTEuMSA0LjgtNC44IDkuMy0xMC42IDkuMy0yLjkgMC05LjgtMi0xMC42LTkuMyAwLTEuOSAuNSA2LjctNS44LTg3LjdMMjU1IDM4My45YzAgNi4zLTMuNiAxMi40LTEwLjYgMTIuNC01LjIgMC0xMC42LTQuMS0xMC42LTEyTDIyOCAyOTYuNmMtNS44IDkyLjUtNS4zIDg0LTUuMyA4NS45LTEuMSA0LjgtNC44IDkuMy0xMC42IDkuMy0zIDAtOS44LTIuMS0xMC42LTkuMyAwLS43LS40LTEuMS0uNC0yLjZsLTYuMi04OC42LTQuOSA1Ni43Yy0uNyA2LjUtNi43IDkuMy0xMC42IDkuMy01LjggMC05LjYtNC4xLTEwLjYtOC45TDE1Ny43IDI3MmMtMiA0LTMuNSA4LjQtMTEuMSA4LjRsLTUxLjQgMCAwLTIxLjMgNDQuOCAwIDEzLjctMjcuOWM0LjQtOS45IDE4LjItNy4yIDE5LjkgMi43bDMuMSAyMC40IDguNC05Ny45YzAtNiA0LjgtMTAuNiAxMC42LTEwLjYgLjUgMCAxMC42LS4yIDEwLjYgMTIuNGw0LjkgNjkuMSA2LjYtOTIuNmMwLTEwLjEgOS41LTEwLjYgMTAuMi0xMC42IC42IDAgMTAuNiAuNyAxMC42IDEwLjZsNS4zIDgwLjYgNi4yLTk3LjljLjEtMS4xLS42LTEwLjMgOS45LTExLjV6Il19LFhwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqZWRpLW9yZGVyIixpY29uOls0NDgsNTEyLFtdLCJmNTBlIiwiTTM5OC45IDM3My42Yzk1LjktMTIyLjEgMTcuMi0yMzMuMSAxNy4yLTIzMy4xIDQ1LjQgODUuOC00MS40IDE3MC41LTQxLjQgMTcwLjUgMTA1LTE3MS41LTYwLjUtMjcxLjUtNjAuNS0yNzEuNSA5Ni45IDcyLjctMTAuMSAxOTAuNy0xMC4xIDE5MC43IDg1LjggMTU4LjQtNjguNiAyMzAuMS02OC42IDIzMC4xcy0uNC0xNi45LTIuMi04NS43YzQuMyA0LjUgMzQuNSAzNi4yIDM0LjUgMzYuMmwtMjQuMi00Ny40IDYyLjYtOS4xLTYyLjYtOS4xIDIwLjItNTUuNS0zMS40IDQ1LjljLTIuMi04Ny43LTcuOC0zMDUuMS03LjktMzA2LjkgMCAxLTUuNiAyMTktNy45IDMwNi45bC0zMS40LTQ1LjkgMjAuMiA1NS41LTYyLjYgOS4xIDYyLjYgOS4xLTI0LjIgNDcuNCAzNC41LTM2LjJjLTEuOCA2OC44LTIuMiA4NS43LTIuMiA4NS43UzU5LjEgMzg4LjYgMTQ0LjkgMjMwLjJjMCAwLTEwNy0xMTguMS0xMC4xLTE5MC43IDAgMC0xNjUuNSA5OS45LTYwLjUgMjcxLjUgMCAwLTg2LjgtODQuOC00MS40LTE3MC41IDAgMC03OC43IDExMSAxNy4yIDIzMy4xIDAgMC0yNi4yLTE2LjEtNDkuNC03Ny43IDAgMCAxNi45IDE4My4zIDIyMiAxODUuN2w0LjEgMGMyMDUtMi40IDIyMi0xODUuNyAyMjItMTg1LjctMjMuNiA2MS41LTQ5LjkgNzcuNy00OS45IDc3Ljd6Il19LEpwcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyLXByb2plY3QiLGljb246WzU3Niw1MTIsW10sImY0ZjciLCJNNTc4LjUgMjI2LjZDNTc4LjUgMTE5LjEgNDQ4LjQgMzIgMjg4IDMyUy0yLjUgMTE5LjEtMi41IDIyNi42YzAgOTUuOCAxMDMuMyAxNzUuNCAyMzkuNCAxOTEuNWwwIDYxLjkgOTkuMSAwIDAtNjEuNWMyNC4zLTIuNyA0Ny42LTcuNCA2OS40LTEzLjlsNDAuMSA3NS40IDExMiAwLTY3LjQtMTEzLjdjNTQuNS0zNS40IDg4LjQtODQuOSA4OC40LTEzOS43ek0xMTEuNyAyNDEuMWMwLTczLjUgOTguOS0xMzMgMjIwLjgtMTMzczIxMS45IDQwLjcgMjExLjkgMTMzYzAgNTAuMS0yNi41IDg1LTcwLjMgMTA2LjQtMi40LTEuNi00LjctMi45LTYuNC0zLjctMTAuMi01LjItMjcuOC0xMC41LTI3LjgtMTAuNXM4Ni42LTYuNCA4Ni42LTkyLjctOTAuNi04Ny45LTkwLjYtODcuOWwtMTk5IDAgMCAyMDguM2MtNzQuMS0yMS41LTEyNS4yLTY3LjEtMTI1LjItMTE5Ljl6bTIyNS4xIDM4LjNsMC01NS42YzU3LjggMCA4Ny44LTYuOCA4Ny44IDI3LjMgMCAzNi41LTM4LjIgMjguMy04Ny44IDI4LjN6bS0uOSA3Mi41bDI2LjYgMGMxMC44IDAgMTguOSAxMS43IDI0IDE5LjItMTYuMSAxLjktMzMgMi44LTUwLjYgMi45bDAtMjIuMXoiXX0sZWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imluc3RhbG9kIixpY29uOls1MTIsNTEyLFtdLCJlMDgxIiwiTTE1My42IDQ4MGwyMzMuNyAwIDExNS40LTIwNC4yLTI5OC4zIDU3LjQtNTAuOCAxNDYuOHpNNTA1IDI0MC4xTDM4Ny40IDMyIDE1NS45IDMyIDM2MC41IDI2Ny45IDUwNSAyNDAuMXpNMTI0LjYgNDguOEw3LjUgMjU2IDEyMy41IDQ2MS4yIDIyNS45IDE2NS42IDEyNC42IDQ4Ljh6Il19LHRmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYW5hZGlhbi1tYXBsZS1sZWFmIixpY29uOls1MTIsNTEyLFtdLCJmNzg1IiwiTTM4My44IDM1MS43YzIuNS0yLjUgMTA1LjItOTIuNCAxMDUuMi05Mi40bC0xNy41LTcuNWMtMTAtNC45LTcuNC0xMS41LTUtMTcuNCAyLjQtNy42IDIwLjEtNjcuMyAyMC4xLTY3LjNzLTQ3LjcgMTAtNTcuNyAxMi41Yy03LjUgMi40LTEwLTIuNS0xMi41LTcuNXMtMTUtMzIuNC0xNS0zMi40LTUyLjYgNTkuOS01NS4xIDYyLjNjLTEwIDcuNS0yMC4xIDAtMTcuNi0xMCAwLTEwIDI3LjYtMTI5LjYgMjcuNi0xMjkuNnMtMzAuMSAxNy40LTQwLjEgMjIuNGMtNy41IDUtMTIuNiA1LTE3LjYtNS01LjEtNy41LTQyLjctNzkuOC00Mi43LTc5LjhzLTM3LjUgNzIuMy00Mi41IDc5LjhjLTUgMTAtMTAgMTAtMTcuNiA1LTEwLTUtNDAuMS0yMi40LTQwLjEtMjIuNFMxODMuMyAxODIgMTgzLjMgMTkyYzIuNSAxMC03LjUgMTcuNS0xNy42IDEwLTIuNS0yLjUtNTUuMS02Mi4zLTU1LjEtNjIuM3MtMTIuNSAyNy4zLTE1IDMyLjMtNSA5LjktMTIuNSA3LjVDNzMgMTc3IDI1LjQgMTY3IDI1LjQgMTY3UzQzIDIyNi43IDQ1LjUgMjM0LjNjMi40IDYgNSAxMi41LTUgMTcuNEwyMyAyNTkuM3MxMDIuNiA4OS45IDEwNS4yIDkyLjRjNS4xIDUgMTAgNy41IDUuMSAyMi41LTUuMSAxNS0xMC4xIDM1LjEtMTAuMSAzNS4xczk1LjItMjAuMSAxMDUuMy0yMi42YzguNy0uOSAxOC4zIDIuNSAxOC4zIDEyLjVTMjQxIDUxMiAyNDEgNTEybDMwIDBzLTUuOC0xMDIuNy01LjgtMTEyLjggOS41LTEzLjQgMTguNC0xMi41YzEwIDIuNSAxMDUuMiAyMi42IDEwNS4yIDIyLjZzLTUtMjAuMS0xMC0zNS4xIDAtMTcuNSA1LTIyLjV6Il19LHJmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJldGhlcmV1bSIsaWNvbjpbMzIwLDUxMixbXSwiZjQyZSIsIk0zMTEuOSAyNjAuOEwxNjAgMzUzLjYgOCAyNjAuOCAxNjAgMCAzMTEuOSAyNjAuOHpNMTYwIDM4My40TDggMjkwLjYgMTYwIDUxMiAzMTIgMjkwLjYgMTYwIDM4My40eiJdfSxhZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG91enoiLGljb246WzQ0OCw1MTIsW10sImYyN2MiLCJNMjc2IDMzMC43bC0xMDQuNiAwIDAgMTQ5LjMtMTU0LjMgMCAwLTQ0OCAxMDkuNSAwIDAgMTA0LjUgMzA1LjEgODUuNiAwIDI1Ny45LTE1NS43IDAgMC0xNDkuM3oiXX0saWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpYmVyIixpY29uOls1MTIsNTEyLFtdLCJmNDA5IiwiTTQ0NC4zIDQ5LjljLTEyLjctMTEuNy02NC4xLTQ5LTE3OC43LTQ5LjUgMCAwLTEzNS4xLTguMS0yMDAuOSA1Mi4zLTM2LjYgMzYuNi00OS41IDkwLjMtNTAuOSAxNTYuOHMtMy4xIDE5MS4xIDExNyAyMjQuOWwuMSAwLS4xIDUxLjZzLS44IDIwLjkgMTMgMjUuMWMxNi42IDUuMiAyNi40LTEwLjcgNDIuMy0yNy44IDguNy05LjQgMjAuNy0yMy4yIDI5LjgtMzMuNyA4Mi4yIDYuOSAxNDUuMy04LjkgMTUyLjUtMTEuMiAxNi42LTUuNCAxMTAuNS0xNy40IDEyNS43LTE0MiAxNS44LTEyOC42LTcuNi0yMDkuOC00OS44LTI0Ni41ek00NTguMiAyODdjLTEyLjkgMTA0LTg5IDExMC42LTEwMyAxMTUuMS02IDEuOS02MS41IDE1LjctMTMxLjIgMTEuMiAwIDAtNTIgNjIuNy02OC4yIDc5LTUuMyA1LjMtMTEuMSA0LjgtMTEtNS43IDAtNi45IC40LTg1LjcgLjQtODUuN2wwIDBDNDMuNCAzNzIuNyA0OS40IDI2Ni42IDUwLjUgMjExLjFzMTEuNi0xMDEgNDIuNi0xMzEuNmM1NS43LTUwLjUgMTcwLjQtNDMgMTcwLjQtNDMgOTYuOSAuNCAxNDMuMyAyOS42IDE1NC4xIDM5LjQgMzUuNyAzMC42IDUzLjkgMTAzLjggNDAuNiAyMTEuMXptLTEzOS04MC44Yy40IDguNi0xMi41IDkuMi0xMi45IC42LTEuMS0yMi0xMS40LTMyLjctMzIuNi0zMy45LTguNi0uNS03LjgtMTMuNCAuNy0xMi45IDI3LjkgMS41IDQzLjQgMTcuNSA0NC44IDQ2LjJ6bTIwLjMgMTEuM2MxLTQyLjQtMjUuNS03NS42LTc1LjgtNzkuMy04LjUtLjYtNy42LTEzLjUgLjktMTIuOSA1OCA0LjIgODguOSA0NC4xIDg3LjggOTIuNS0uMSA4LjYtMTMuMSA4LjItMTIuOS0uM3ptNDcgMTMuNGMuMSA4LjYtMTIuOSA4LjctMTIuOSAuMS0uNi04MS41LTU0LjktMTI1LjktMTIwLjgtMTI2LjQtOC41LS4xLTguNS0xMi45IDAtMTIuOSA3My43IC41IDEzMyA1MS40IDEzMy43IDEzOS4yek0zNzUuMiAzMjlsMCAuMmMtMTAuOCAxOS0zMSA0MC01MS44IDMzLjNsLS4yLS4zYy0yMS4xLTUuOS03MC44LTMxLjUtMTAyLjItNTYuNS0xNi4yLTEyLjgtMzEtMjcuOS00Mi40LTQyLjQtMTAuMy0xMi45LTIwLjctMjguMi0zMC44LTQ2LjYtMjEuMy0zOC41LTI2LTU1LjctMjYtNTUuNy02LjctMjAuOCAxNC4yLTQxIDMzLjMtNTEuOGwuMiAwYzkuMi00LjggMTgtMy4yIDIzLjkgMy45IDAgMCAxMi40IDE0LjggMTcuNyAyMi4xIDUgNi44IDExLjcgMTcuNyAxNS4yIDIzLjggNi4xIDEwLjkgMi4zIDIyLTMuNyAyNi42bC0xMiA5LjZjLTYuMSA0LjktNS4zIDE0LTUuMyAxNHMxNy44IDY3LjMgODQuMyA4NC4zYzAgMCA5LjEgLjggMTQtNS4zbDkuNi0xMmM0LjYtNiAxNS43LTkuOCAyNi42LTMuNyAxNC43IDguMyAzMy40IDIxLjIgNDUuOCAzMi45IDcgNS43IDguNiAxNC40IDMuOCAyMy42eiJdfSxZRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2lja3N0YXJ0ZXIiLGljb246WzQ0OCw1MTIsWyJzcXVhcmUta2lja3N0YXJ0ZXIiXSwiZjNiYiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjAuOCAyMzNsLTIzLjMgMjMuMSAyMy4zIDIyLjljMjQuMSAyMy45IDI0LjEgNjMgMCA4Ni45cy02My40IDIzLjktODcuNiAwbC04LjUtOC40Yy0xMS4zIDE2LTI5LjcgMjYuNS01MC45IDI2LjUtMzQuMSAwLTYxLjktMjcuNS02MS45LTYxLjRsMC0xMzMuMmMwLTMzLjggMjcuNy02MS40IDYxLjktNjEuNCAyMS4xIDAgMzkuNiAxMC41IDUwLjkgMjYuNWw4LjUtOC40YzI0LjEtMjMuOSA2My40LTIzLjkgODcuNiAwczI0LjEgNjMgMCA4Ni45eiJdfSxzZnI9WUVlLG5mcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcG90aWZ5IixpY29uOls1MTIsNTEyLFtdLCJmMWJjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzU2LjcgMzcyLjljLTQuMiAwLTYuOC0xLjMtMTAuNy0zLjYtNjIuNC0zNy42LTEzNS0zOS4yLTIwNi43LTI0LjUtMy45IDEtOSAyLjYtMTEuOSAyLjYtOS43IDAtMTUuOC03LjctMTUuOC0xNS44IDAtMTAuMyA2LjEtMTUuMiAxMy42LTE2LjggODEuOS0xOC4xIDE2NS42LTE2LjUgMjM3IDI2LjIgNi4xIDMuOSA5LjcgNy40IDkuNyAxNi41cy03LjEgMTUuNC0xNS4yIDE1LjR6bTI2LjktNjUuNmMtNS4yIDAtOC43LTIuMy0xMi4zLTQuMi02Mi41LTM3LTE1NS43LTUxLjktMjM4LjYtMjkuNC00LjggMS4zLTcuNCAyLjYtMTEuOSAyLjYtMTAuNyAwLTE5LjQtOC43LTE5LjQtMTkuNHM1LjItMTcuOCAxNS41LTIwLjdjMjcuOC03LjggNTYuMi0xMy42IDk3LjgtMTMuNiA2NC45IDAgMTI3LjYgMTYuMSAxNzcgNDUuNSA4LjEgNC44IDExLjMgMTEgMTEuMyAxOS43LS4xIDEwLjgtOC41IDE5LjUtMTkuNCAxOS41em0zMS03Ni4yYy01LjIgMC04LjQtMS4zLTEyLjktMy45LTcxLjItNDIuNS0xOTguNS01Mi43LTI4MC45LTI5LjctMy42IDEtOC4xIDIuNi0xMi45IDIuNi0xMy4yIDAtMjMuMy0xMC4zLTIzLjMtMjMuNiAwLTEzLjYgOC40LTIxLjMgMTcuNC0yMy45IDM1LjItMTAuMyA3NC42LTE1LjIgMTE3LjUtMTUuMiA3MyAwIDE0OS41IDE1LjIgMjA1LjQgNDcuOCA3LjggNC41IDEyLjkgMTAuNyAxMi45IDIyLjYgMCAxMy42LTExIDIzLjMtMjMuMiAyMy4zeiJdfSxvZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGVhbnB1YiIsaWNvbjpbNTc2LDUxMixbXSwiZjIxMiIsIk0zODYuNiAxMTEuNWwxNS4xIDI0OS0xMS0uM2MtMzYuMi0uOC03MS42IDguOC0xMDIuNyAyOC0zMS0xOS4yLTY2LjQtMjgtMTAyLjctMjgtNDUuNiAwLTgyLjEgMTAuNy0xMjMuNSAyNy43TDkzLjIgMTI5LjZjMjguNS0xMS44IDYxLjUtMTguMSA5Mi4yLTE4LjEgNDEuMiAwIDczLjggMTMuMiAxMDIuNyA0Mi41IDI3LjctMjguMyA1OS00MS43IDk4LjUtNDIuNXpNNTY5LjIgNDQ4Yy0yNS41IDAtNDcuNS01LjItNzAuNS0xNS42LTM0LjMtMTUuNi03MC0yNS0xMDcuOS0yNS0zOSAwLTc0LjkgMTIuOS0xMDIuNyA0MC42LTI3LjctMjcuNy02My43LTQwLjYtMTAyLjctNDAuNi0zNy45IDAtNzMuNiA5LjMtMTA3LjkgMjUtMjIuMiA5LjktNDQuNyAxNS42LTY5LjIgMTUuNkw3IDQ0OCA0OS42IDk4LjljMzkuMy0yMi4yIDg3LTM0LjkgMTMyLjMtMzQuOSAzNy4xIDAgNzUuMiA3LjcgMTA2LjIgMjkuMSAzMS0yMS40IDY5LjItMjkuMSAxMDYuMi0yOS4xIDQ1LjMgMCA5MyAxMi42IDEzMi4zIDM0LjlMNTY5LjIgNDQ4em0tNDMuNC00NC43TDQ5MS44IDEyM2MtMzAuNy0xNC02Ny4yLTIxLjQtMTAxLTIxLjQtMzguNCAwLTc0LjQgMTIuMS0xMDIuNyAzOC43LTI4LjMtMjYuNi02NC4yLTM4LjctMTAyLjctMzguNy0zMy44IDAtNzAuMyA3LjQtMTAxIDIxLjRsLTM0IDI4MC4yYzQ3LjItMTkuNSA4Mi45LTMzLjUgMTM1LTMzLjUgMzcuNiAwIDcwLjggOS42IDEwMi43IDI5LjYgMzEuOC0yMCA2NS4xLTI5LjYgMTAyLjctMjkuNiA1Mi4yIDAgODcuOCAxNCAxMzUgMzMuNXoiXX0sbGZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImphdmEiLGljb246WzM4NCw1MTIsW10sImY0ZTQiLCJNMjc3LjggMzEyLjljOS44LTYuNyAyMy40LTEyLjUgMjMuNC0xMi41cy0zOC43IDctNzcuMiAxMC4yYy00Ny4xIDMuOS05Ny43IDQuNy0xMjMuMSAxLjMtNjAuMS04IDMzLTMwLjEgMzMtMzAuMXMtMzYuMS0yLjQtODAuNiAxOWMtNTIuNSAyNS40IDEzMCAzNyAyMjQuNSAxMi4xem0tODUuNC0zMi4xYy0xOS00Mi43LTgzLjEtODAuMiAwLTE0NS44IDEwMy43LTgxLjggNTAuNS0xMzUgNTAuNS0xMzUgMjEuNSA4NC41LTc1LjYgMTEwLjEtMTEwLjcgMTYyLjYtMjMuOSAzNS45IDExLjcgNzQuNCA2MC4yIDExOC4yek0zMDcgMTA0LjZjLjEgMC0xNzUuMiA0My44LTkxLjUgMTQwLjIgMjQuNyAyOC40LTYuNSA1NC02LjUgNTRzNjIuNy0zMi40IDMzLjktNzIuOUMyMTYgMTg4LjEgMTk1LjQgMTY5LjMgMzA3IDEwNC42em0tNi4xIDI3MC41Yy0uNSAxLTEuMiAxLjgtMiAyLjYgMTI4LjMtMzMuNyA4MS4xLTExOC45IDE5LjgtOTcuMy0zLjMgMS4yLTYuMiAzLjQtOC4yIDYuMyAzLjYtMS4zIDcuMy0yLjMgMTEtMyAzMS02LjUgNzUuNSA0MS41LTIwLjYgOTEuNHpNMzQ4IDQzNy40czE0LjUgMTEuOS0xNS45IDIxLjJjLTU3LjkgMTcuNS0yNDAuOCAyMi44LTI5MS42IC43LTE4LjMtNy45IDE2LTE5IDI2LjgtMjEuMyAxMS4yLTIuNCAxNy43LTIgMTcuNy0yLTIwLjMtMTQuMy0xMzEuMyAyOC4xLTU2LjQgNDAuMiAyMDQuMiAzMy4yIDM3Mi40LTE0LjkgMzE5LjQtMzguOHpNMTI0LjUgMzk2Yy03OC43IDIyIDQ3LjkgNjcuNCAxNDguMSAyNC41LTkuOC0zLjgtMTkuMi04LjQtMjguMi0xMy44LTQ0LjcgOC41LTY1LjQgOS4xLTEwNiA0LjUtMzMuNS0zLjgtMTMuOS0xNS4yLTEzLjktMTUuMnptMTc5LjggOTcuMmMtNzguNyAxNC44LTE3NS44IDEzLjEtMjMzLjMgMy42IDAtLjEgMTEuOCA5LjcgNzIuNCAxMy42IDkyLjIgNS45IDIzMy44LTMuMyAyMzcuMS00Ni45IDAgMC02LjQgMTYuNS03Ni4yIDI5Ljd6TTI2MC43IDM1M2MtNTkuMiAxMS40LTkzLjUgMTEuMS0xMzYuOCA2LjYtMzMuNS0zLjUtMTEuNi0xOS43LTExLjYtMTkuNy04Ni44IDI4LjggNDguMiA2MS40IDE2OS41IDI1LjktNy44LTIuOC0xNS03LjEtMjEuMS0xMi44eiJdfSxjZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmZjLXN5bWJvbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMSIsIk0zNjAuOSAzMi40YzcuNy0xLjMgMTUuNyAuNSAyMS4yIDUgODQuMSA1OC43IDEyOS45IDEzNi4zIDEyOS45IDIxNy43IDAgODMuMS00NS44IDE2MC44LTEyOS45IDIxOS41LTQuOCA0LTExLjcgNS45LTE4LjYgNS4zLTctLjYtMTMuNS0zLjYtMTguNC04LjVMMTYxLjcgMjg4LjdjLTUuNi01LjUtOC43LTEzLTkuNi0yMC45IDAtNy44IDQtMTUuMyA5LjUtMjAuOSA1LjYtNS41IDEzLjEtOC43IDIwLjktOC43IDcuOSAwIDE1LjQgMy4xIDIwLjkgOC42TDM2OC41IDQxMS4yYzU0LjYtNDQuNyA4NC4zLTk5LjIgODQuMy0xNTYuMSAwLTYxLjYtMzYuOS0xMjIuMi0xMDMuOS0xNjkuMy02LjQtNC41LTEwLjgtMTEuNC0xMi4xLTE5LjEtMS40LTcuNyAuNC0xNS43IDUtMjIuMSA0LjUtNi40IDExLjQtMTAuOCAxOS4xLTEyLjF6bS0yMDYgNDQ3LjJjLTcuNyAxLjMtMTUuNi0uNS0yMi4xLTUtODMuMS01OC43LTEyOS0xMzYuNC0xMjktMjE5LjUgMC04MS40IDQ1LjgtMTU5IDEyOS0yMTcuNyA1LjctNCAxMi42LTUuOSAxOS42LTUuMyA2LjkgLjYgMTMuNCAzLjYgMTguMyA4LjVMMzU0LjEgMjIzLjNjNS42IDUuNSA4LjcgMTMgOC43IDIwLjkgLjEgNi45LTMgMTUuMy04LjYgMjAuOS01LjUgNS41LTEzIDguNy0yMC45IDguNy03LjggMC0xNi4yLTMuMS0yMC45LTguNkwxNDcuMyAxMDAuN2MtNTQuNiA0NS4yLTg0LjMgOTkuMi04NC4zIDE1NC40IDAgNjMuNCAzNi45IDEyNCAxMDMuMSAxNzEuMSA3LjMgNC42IDExLjYgMTEuNCAxMyAxOS4yIDEuMyA3LjctLjUgMTUuNy01IDIyLjFzLTExLjQgMTAuNy0xOS4yIDEyLjF6Il19LGRmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b2R1IixpY29uOls2NDAsNTEyLFtdLCJlMDg4IiwiTTE3OC40IDMzOS43bC0zNy4zIDAtMjguOS0xMTYuMi0uNSAwLTI4LjUgMTE2LjItMzggMC00NS4yLTE3MC44IDM3LjUgMCAyNyAxMTYuMiAuNSAwIDI5LjctMTE2LjIgMzUuMiAwIDI5LjIgMTE3LjcgLjUgMCAyOC0xMTcuNyAzNi44IDAtNDUuOSAxNzAuOHptOTMtMTI3YzM5IDAgNjQuMSAyNS44IDY0LjEgNjUuMyAwIDM5LjItMjUuMSA2NS02NC4xIDY1LTM4LjcgMC02My45LTI1LjgtNjMuOS02NSAwLTM5LjUgMjUuMS02NS4zIDYzLjktNjUuM3ptMCAxMDQuOGMyMy4yIDAgMzAuMS0xOS45IDMwLjEtMzkuNSAwLTE5LjktNi45LTM5LjctMzAuMS0zOS43LTI3LjcgMC0yOS45IDE5LjktMjkuOSAzOS43IDAgMTkuNiA2LjkgMzkuNSAyOS45IDM5LjV6bTE2My43IDYuNWwtLjUgMGMtNy45IDEzLjQtMjEuOCAxOS4xLTM3LjUgMTkuMS0zNy4zIDAtNTUuNS0zMi01NS41LTY2LjIgMC0zMy4yIDE4LjQtNjQuMSA1NC44LTY0LjEgMTQuNiAwIDI4LjkgNi4yIDM2LjggMTguNGwuMiAwIDAtNjIuMiAzNCAwIDAgMTcwLjgtMzIuMyAwIDAtMTUuOHptLTI5LjctODUuNmMtMjIuMiAwLTI5LjkgMTkuMS0yOS45IDM5LjUgMCAxOS40IDguOCAzOS43IDI5LjkgMzkuNyAyMi41IDAgMjkuMi0xOS42IDI5LjItMzkuOSAwLTIwLjEtNy4yLTM5LjItMjkuMi0zOS4yek01OTMgMzM5LjdsLTMyLjMgMCAwLTE3LjItLjcgMGMtOC42IDEzLjktMjMuNCAyMC42LTM3LjggMjAuNi0zNi4xIDAtNDUuMi0yMC4zLTQ1LjItNTAuOWwwLTc2LjEgMzQgMCAwIDY5LjhjMCAyMC4zIDYgMzAuNCAyMS44IDMwLjQgMTguNCAwIDI2LjMtMTAuMyAyNi4zLTM1LjRsMC02NC44IDM0IDAgMCAxMjMuNnptOS41LTM2LjhsMzcuNSAwIDAgMzYuOC0zNy41IDAgMC0zNi44eiJdfSxLRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXN0ZWFtIixpY29uOls0NDgsNTEyLFsic3RlYW0tc3F1YXJlIl0sImYxYjciLCJNMTY1LjYgMzA5LjFjMTguNiA3LjcgMjcuMyAyOC45IDE5LjYgNDcuNHMtMjkgMjcuMi00Ny42IDE5LjRsLTI4LjUtMTEuOGM1IDEwLjYgMTMuOCAxOS40IDI1LjQgMjQuMiAyNS4yIDEwLjUgNTQuMS0xLjQgNjQuNi0yNi41IDUuMS0xMi4xIDUuMS0yNS41IC4xLTM3LjctNS4xLTEyLjEtMTQuNS0yMS42LTI2LjctMjYuNy0xMi4xLTUtMjUtNC44LTM2LjQtLjVsMjkuNSAxMi4yek00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDE0NC43IDExNi42IDQ4LjFjMTItOC4yIDI2LjItMTIuMSA0MC43LTExLjNsNTUuNC04MC4yIDAtMS4xYzAtNDguMiAzOS4zLTg3LjUgODcuNi04Ny41czg3LjYgMzkuMyA4Ny42IDg3LjVjMCA0OS4yLTQwLjkgODguNy04OS42IDg3LjVsLTc5IDU2LjNjMS42IDM4LjUtMjkuMSA2OC44LTY1LjcgNjguOC0zMS44IDAtNTguNS0yMi43LTY0LjUtNTIuN0wwIDMxOS4yIDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNDEuOSAxOTYuMmE1OC40IDU4LjQgMCAxIDAgMTE2LjggMCA1OC40IDU4LjQgMCAxIDAgLTExNi44IDB6bTEwMi40LS4xYTQzLjkgNDMuOSAwIDEgMSAtODcuOCAwIDQzLjkgNDMuOSAwIDEgMSA4Ny44IDB6Il19LHVmcj1LRWUscGZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmMtZXUiLGljb246WzUxMiw1MTIsW10sImY0ZTkiLCJNMjU1LjcgOEMxMTEuNiA4IDggMTI0LjggOCAyNTYgOCAzOTIuMyAxMTkuNyA1MDQgMjU1LjcgNTA0IDM4NS45IDUwNCA1MDQgNDAzLjEgNTA0IDI1NiA1MDQgMTE3IDM5Ni40IDggMjU1LjcgOHptLjYgNDUwLjdjLTExMiAwLTIwMy42LTkyLjUtMjAzLjYtMjAyLjcgMC0yMy4yIDMuNy00NS4yIDEwLjktNjZsNjUuNyAyOS4xLTQuNyAwIDAgMjkuNSAyMy4zIDBjMCA2LjItLjQgMy4yLS40IDE5LjVsLTIyLjggMCAwIDI5LjUgMjcgMGMxMS40IDY3IDY3LjIgMTAxLjMgMTI0LjYgMTAxLjMgMjYuNiAwIDUwLjYtNy45IDY0LjgtMTUuOGwtMTAtNDYuMWMtOC43IDQuNi0yOC4yIDEwLjgtNDcuMyAxMC44LTI4LjIgMC01OC4xLTEwLjktNjcuMy01MC4ybDkwLjMgMCAxMjguMyA1Ni44Yy0xLjUgMi4xLTU2LjIgMTA0LjMtMTc4LjggMTA0LjN6TTIzOS42IDI2OC4xbC0uNS0uNCAuOSAuNC0uNCAwem03Ny4yLTE5LjVsMy43IDAgMC0yOS41LTcwLjMgMC0yOC42LTEyLjZjMi41LTUuNSA1LjQtMTAuNSA4LjgtMTQuMyAxMi45LTE1LjggMzEuMS0yMi40IDUxLjEtMjIuNCAxOC4zIDAgMzUuMyA1LjQgNDYuMSAxMGwxMS42LTQ3LjNjLTE1LTYuNi0zNy0xMi40LTYyLjMtMTIuNC0zOSAwLTcyLjIgMTUuOC05NS45IDQyLjMtNS4zIDYuMS05LjggMTIuOS0xMy45IDIwLjFMODUuNSAxNDYuNGM2NC42LTk2LjggMTU3LjctOTMuNiAxNzAuNy05My42IDExMyAwIDIwMyA5MC4yIDIwMyAyMDMuNCAwIDE4LjctMi4xIDM2LjMtNi4zIDUyLjlMMzE2LjggMjQ4LjZ6Il19LGZmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJucG0iLGljb246WzU3Niw1MTIsW10sImYzZDQiLCJNMjg4IDI4OGwtMzIgMCAwLTY0IDMyIDAgMCA2NHpNNTc2IDE2MGwwIDE5Mi0yODggMCAwIDMyLTEyOCAwIDAtMzItMTYwIDAgMC0xOTIgNTc2IDB6TTE2MCAxOTJsLTEyOCAwIDAgMTI4IDY0IDAgMC05NiAzMiAwIDAgOTYgMzIgMCAwLTEyOHptMTYwIDBsLTEyOCAwIDAgMTYwIDY0IDAgMC0zMiA2NCAwIDAtMTI4em0yMjQgMGwtMTkyIDAgMCAxMjggNjQgMCAwLTk2IDMyIDAgMCA5NiAzMiAwIDAtOTYgMzIgMCAwIDk2IDMyIDAgMC0xMjh6Il19LGhmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbG91ZHNjYWxlIixpY29uOls0NDgsNTEyLFtdLCJmMzgzIiwiTTMxOC4xIDE1NGwtOS40IDcuNmMtMjIuNS0xOS4zLTUxLjUtMzMuNi04My4zLTMzLjYtNzEuNiAwLTEyOS40IDYwLjgtMTI5LjQgMTMyLjMgMCA2LjYgLjQgMTMuMSAxLjQgMTkuNC0yLTU2IDQxLjgtOTcuNCA5Mi42LTk3LjQgMjQuMiAwIDQ2LjIgOS40IDYyLjYgMjQuN2wtMjUuMiAyMC40Yy04LjMtLjktMTYuOCAxLjgtMjMuMSA4LjEtMTEuMSAxMS0xMS4xIDI4LjkgMCA0MCAxMS4xIDExIDI4LjkgMTEgNDAgMCA2LjMtNi4zIDktMTQuOSA4LjEtMjMuMWw3NS4yLTg4LjhjNi4zLTYuNS0zLjMtMTUuOS05LjUtOS42ek0yMTMuNyAyNDYuNWExNCAxNCAwIDEgMSAyMC42IDE5IDE0IDE0IDAgMSAxIC0yMC42LTE5ek0yMjQgMzJhMjI0IDIyNCAwIDEgMCAwIDQ0OCAyMjQgMjI0IDAgMSAwIDAtNDQ4em0wIDY0YTE2MCAxNjAgMCAxIDEgMCAzMjAgMTYwIDE2MCAwIDEgMSAwLTMyMHoiXX0sbWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoZW1lY28iLGljb246WzQ0OCw1MTIsW10sImY1YzYiLCJNMjAyLjkgOC40YzkuOS01LjcgMjYtNS44IDM2LS4yTDQzMCAxMTUuOWMxMCA1LjYgMTggMTkuNCAxOCAzMC45TDQ0OCAzNjRjMCAxMS40LTguMSAyNS4zLTE4IDMxTDIzOC44IDUwMy43Yy05LjkgNS43LTI2IDUuNi0zNS44LS4yTDE3LjkgMzk1LjFDOCAzODkuMyAwIDM3NS40IDAgMzY0TDAgMTQ2LjdjMC0xMS40IDgtMjUuNCAxNy45LTMxLjFMMjAyLjkgOC40ek0xMjUuNSAyMDguM2MtMTUuOSAwLTMxLjkgLjEtNDcuOCAuMWwwIDEwMS40IDE5LjEgMCAwLTI5LjggMjguNyAwYzQ5LjcgMCA0OS42LTcxLjcgMC03MS43ek0yNjUuNiAzMDguNmwtMzAuNy0zNC42YzM3LTcuNSAzNC44LTY1LjItMTAuOS02NS41LTE2LjEgMC0zMi4yLS4xLTQ4LjMtLjFsMCAxMDEuNiAxOS4xIDAgMC0zMy45IDE4LjQgMCAyOS42IDMzLjkgMjIuOCAwIDAtMS4zem0tNDEuNi04Mi4zYzIzLjMgMCAyMy4zIDMyLjUgMCAzMi41bC0yOS4xIDAgMC0zMi41IDI5LjEgMHptLTk1LjYtMS42YzIxLjIgMCAyMS4xIDM4LjkgMCAzOC45bC0zMi4zIDAgMC0zOC44IDMyLjMgMHptMTkyLjYtMTguMmMtNjguNSAwLTcxIDEwNS44IDAgMTA1LjggNjkuNSAwIDY5LjQtMTA1LjggMC0xMDUuOHptMCAxNy40YzQ0LjEgMCA0NC44IDcwLjkgMCA3MC45cy00NC40LTcwLjkgMC03MC45eiJdfSxnZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXBsYXkiLGljb246WzQ0OCw1MTIsW10sImYzYWIiLCJNMjkzLjYgMjM0LjNMNzIuOSAxMyAzNTMuNyAxNzQuMiAyOTMuNiAyMzQuM3pNMTUuMyAwQzIuMyA2LjgtNi40IDE5LjItNi40IDM1LjNsMCA0NDEuM2MwIDE2LjEgOC43IDI4LjUgMjEuNyAzNS4zTDI3MS45IDI1NS45IDE1LjMgMHpNNDQwLjUgMjI1LjZsLTU4LjktMzQuMS02NS43IDY0LjUgNjUuNyA2NC41IDYwLjEtMzQuMWMxOC0xNC4zIDE4LTQ2LjUtMS4yLTYwLjh6TTcyLjkgNDk5TDM1My43IDMzNy44IDI5My42IDI3Ny43IDcyLjkgNDk5eiJdfSxiZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia29ydnVlIixpY29uOls0NDgsNTEyLFtdLCJmNDJmIiwiTTM4Ny42IDM0bC0zMjcgMEMyNy45IDM0IDEuMSA2MC44IDEuMSA5My41bDAgMzI3LjFjMCAzMi42IDI2LjggNTkuNCA1OS41IDU5LjRsMzI3LjEgMGMzMyAwIDU5LjUtMjYuOCA1OS41LTU5LjVsMC0zMjdDNDQ3LjEgNjAuOCA0MjAuMyAzNCAzODcuNiAzNHpNODguMiAxMjAuOGw5NiAwIDAgMTE2IDYxLjgtMTE2IDExMC45IDAtODEuMiAxMzItMTg3LjUgMCAwLTEzMnpNMjUwIDM5Mi45bC02NS43LTExMy42IDAgMTEzLjYtOTYgMCAwLTEzMC44IDE5MS41IDAgODguNiAxMzAuOC0xMTguNCAweiJdfSx4ZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidzNjIixpY29uOls2NDAsNTEyLFtdLCJlN2RlIiwiTTEwNS4yIDMwNS4zbDMwLjktMTA0LjdjNy45LTI2LjcgOC42LTQwLjYgLjItNjguOGwtMTAuMS0zMy45IDQ0LjEgMCA2MSAyMDcuNCA0NS43LTE1NS41YzEzLjMtNDUuMyAyMS4xLTUxLjkgNTkuNC01MS45bDEzMi44IDBjLTI0LjIgNDIuOS00OS4zIDg1LjItNzMuOSAxMjcuOSAyLjYgLjggNS4yIDEuOCA3LjcgMi44IDE3LjMgNy4xIDMyLjIgMTkuNCA0MiAzNS41IDExLjIgMTguNSAxNi44IDQwLjIgMTYuOCA2NS4yIDAgMzAuOC04LjIgNTYuOC0yNC42IDc3LjgtMTQuNSAxOC42LTM1IDI5LjUtNTguMiAzMS4yIDAgLjMtNS4yIC40LTUuOCAuNC0zOS43LS4xLTcwLjgtMzIuMS04My4xLTY4LjdsNDIuOSAwYzMuNSA1LjMgNi44IDEwLjcgMTEuMiAxNS41IDguMSA3LjMgMTguNSAxMC45IDI5LjMgMTEuMSAxMy4xIDAgMjMuMy05LjEgMjkuOS0xOS44IDguMS0xMy4yIDEyLjItMjkgMTIuMi00Ny41IDAtMTMuMS0xLjgtMjQuMy01LjMtMzMuNi0uOS0yLjMtMS45LTQuNS0zLTYuNi0xLjQtMi42LTIuOS01LjEtNC43LTcuNC0xMC4xLTEzLjItMjkuMy0xOS43LTQ3LjUtMTkuOGwtMjguMiAwIDcwLjMtMTIyLTM1LjYgMGMtNDMuMSAwLTM1LjktNS40LTUwLjQgNDMuM2wtNzUuNyAyNTUuMy00LjIgMC02My4xLTIxMS4xLTYzLjEgMjExLjEtNC4yIDAtMTAxLTM0MC43IDQ0LjIgMCA2MSAyMDcuNHpNNDY3IDMzNS43Yy4zIC42IDExLjMgMjAuMyAxOC4zIDMwLjMgNy4xIDEwLjEgMTkuOCAyMC45IDI0LjggMjQuNnMxOS4xIDEyLjUgMzQuMyAxMy45YzE1LjIgMS41IDIzLjMgLjIgMzguNy02LjYgMTUuNC02LjggMjcuOS0yMC40IDM0LjktMjguMSA2LjktNy42IDE3LjktMjcuMyAxOC4yLTI3LjdsMy4zIDE2LjhjMS43IDktMSAyMy43LTQuMSAzMC00LjMgOC42LTcuNiAxMy41LTE0IDIwLjMtNi4xIDYuNS0xNi43IDEzLjUtMjEuMyAxNi40LTQuNiAyLjktMjMuMSAxNS4xLTUwLjEgMTAuM3MtNDQuNy0yNS45LTUzLjktMzguMmMtOS44LTEzLjItMTYuNy0yOC4zLTE5LTMzLjItMy44LTguNC05LjktMjguMi0xMC4xLTI4Ljh6bTE2OS43LTIxOGMzLjMgMjAuMy0uMSAyOC43LTkuMSA0NmwtMTIuNyAyNC4yYy0uMy0uNi0xMC0yMC43LTI1LjktMzEuOS0xMy42LTkuNi0yMi41LTExLjctMzYuMy04LjgtMTcuOCAzLjctMzggMjUtNDYuOCA1MS4yLTEwLjUgMzEuNC0xMC43IDQ2LjYtMTEgNjAuNi0uNiAyMi40IDIuOSAzNS42IDIuOSAzNS42cy0xNS40LTI4LjUtMTUuMi03MC4xYy4xLTI5LjcgNC44LTU2LjcgMTguNS04My4zIDEyLjEtMjMuNCAzMC4xLTM3LjQgNDYuMS0zOS4xIDE2LjUtMS43IDI5LjYgNi4zIDM5LjcgMTQuOSAxMC42IDkgMjEuMyAyOC44IDIxLjMgMjguOGwyNC45LTQ5LjggMy42IDIxLjh6Il19LHZmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJncmF2IixpY29uOls1MTIsNTEyLFtdLCJmMmQ2IiwiTTMwMi42IDIxMC42YzQuNSA0LjUgNC41IDEyLjMgMCAxNi44bC0xMCAxMGMtNC41IDQuOS0xMi4zIDQuOS0xNy4xIDBsLTEwLjgtMTAuOGMtNC41LTQuOS00LjUtMTIuMyAwLTE3LjFsMTAtMTBjNC41LTQuNSAxMi4zLTQuNSAxNy4xIDBsMTAuOCAxMS4xem0tMzEuMi0yMC4zYTcuNyA3LjcgMCAxIDAgLTEwLjYtMTEgNy43IDcuNyAwIDEgMCAxMC42IDExem0tMjYuOCA1LjVhNy41IDcuNSAwIDEgMCAxMC43IDEwLjUgNy41IDcuNSAwIDEgMCAtMTAuNy0xMC41ek0zMTkuNCAxODJjLTIwLjUtMTQuOS0zNC45LTQ0LjYtMTIuMy03MC4zIDIyLjMtMjUuNyA0Mi0xNy44IDYxLjcgLjggMTIuMyAxMS43IDMwLjIgMjUuNyAxNy44IDQ5LjgtMTIuOSAyNC4zLTQ2LjYgMzQuMy02Ny4yIDE5Ljd6bTQ5LjItNDUuOWMtOS4yLTEwLjMtMjQuMSA3LjEtMTYgMTYuNiA3LjYgOS4zIDMzLjEgMi41IDE2LTE2LjZ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTQ0My43IDQ0YzIuNi0xNi42LTIwLjktMTcuMS0yNi0yNi41LTE0LTI0LjktMjguNi0zOC01Ni4zLTMxLjQgMTItOC4zIDI0LjMtNi4zIDI0LjMtNi4zIC4zLTYuNiAwLTEzLjQtOS43LTI1LjcgNC0xMi45IC4zLTIzLjEgLjMtMjMuMSAxNi04LjkgMjcuNy0yNS4yIDMwLTQ0LjYgMy43LTMyLTE5LjQtNjEuMS01MS40LTY0LjgtMjIuOC0yLjYtNDUuMSA3LjktNTYuMSAyNi41LTIzLjkgNDEuNCAxLjQgNzMuMiAyMy4xIDg0LTE0LjktMS40LTM1LjQtMTIuMy00MS40LTM1LjQtNi44LTI2LjUgMi45LTUxLjQgOS4yLTYzLjQgMCAwLTQuNS02LTguMy05LjIgMCAwLTE0LjIgMC0yNS40IDUuNSAxMi4zLTE1LjcgMjYtMTQuOSAyNi0xNC45IDAtNi42LS42LTE1LjQtMy43LTIyLjMtNS42LTExLjQtMjQuNi0xMy4zLTMyLjcgMi45IC4xLS4yIC4zLS40IC40LS41LTUuMiAxMi4zLTEuMSA1Ny43IDE3LjQgOTAtMi42IDEuNC05LjQgNi4zLTEzLjQgMTAuMy0yMi4zIDEwLTU4IDYyLjItNTggNjIuMi0yOS4xIDExLjEtNzkuNyA1Mi41LTcyLjkgODIuMyAuMyAzLjEgMS40IDUuNyAzLjEgNy43LTIuOSAyLjMtNS43IDUuMi04LjYgOC42LTEyLjMgMTQuMi01LjUgMzYuMyAxOC4zIDI1LjIgMTYuMy03LjQgMzAuNi0yMC45IDM3LjUtMzEuNCAwIDAtNS43LTUuMi0xNi44LTQuNSAyOC42LTYuOCAzNS40LTkuNyA0Ny43LTkuNCA4LjMgNCA4LjMtMzUuNCA4LjMtMzUuNCAwLTE1LjItMi4zLTMyLTExLjUtNDIuOCAxMi45IDEyLjYgMzAgMzMuOCAyOC45IDYyLjYtLjggMTguOS0xNS43IDIzLjctMTUuNyAyMy43LTkuNCAxNy4xLTQ0LjYgNjgtMzEuNCAxMDkuNCAwIDAtMTAtMTUuNC0xMC41LTIyLjgtMTggMjAtNDggNTQtMjUuNCA2Ni42IDI3LjUgMTUuMiAxMTIuMy05MS41IDEzMC4zLTE0Ni45IDM1LjctMjEuNSA1Ny4yLTQ4LjggNjYtNjcuMSAyMi43IDQ0LjkgOTguNCA5Ny41IDEwNC40IDYwLjl6Il19LHlmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhd3MiLGljb246WzY0MCw1MTIsW10sImYzNzUiLCJNMTgwLjQgMjAzYy0uNyAyMi42IDEwLjYgMzIuNyAxMC45IDM5LS4xIDEuMy0uNiAyLjUtMS4zIDMuNnMtMS43IDItMi44IDIuNmwtMTIuOCA5Yy0xLjcgMS4yLTMuNiAxLjgtNS42IDEuOS0uNCAwLTguMiAxLjgtMjAuNS0yNS42LTcuNSA5LjQtMTcgMTYuOS0yNy45IDIycy0yMi43IDcuNy0zNC43IDcuNWMtMTYuMyAuOS02MC40LTkuMi01OC4xLTU2LjItMS42LTM4LjMgMzQuMS02Mi4xIDcwLjktNjAgNy4xIDAgMjEuNiAuNCA0NyA2LjNsMC0xNS42YzIuNy0yNi41LTE0LjctNDctNDQuOC00My45LTIuNCAwLTE5LjQtLjUtNDUuOCAxMC4xLTcuNCAzLjQtOC4zIDIuOC0xMC44IDIuOC03LjQgMC00LjQtMjEuNS0yLjktMjQuMiA1LjItNi40IDM1LjktMTguNCA2NS45LTE4LjIgMjAuMS0xLjggNDAuMSA0LjQgNTUuNyAxNy4zIDYuMyA3LjEgMTEuMiAxNS40IDE0LjIgMjQuNHM0LjIgMTguNSAzLjUgMjhsMCA2OS4zek05NCAyMzUuNGMzMi40LS41IDQ2LjItMjAgNDkuMy0zMC41IDIuNS0xMC4xIDIuMS0xNi40IDIuMS0yNy40LTkuNy0yLjMtMjMuNi00LjktMzkuNi00LjktMTUuMi0xLjEtNDIuOCA1LjYtNDEuNyAzMi4zLTEuMiAxNi44IDExLjEgMzEuNCAzMCAzMC41em0xNzAuOSAyMy4xYy03LjkgLjctMTEuNS00LjktMTIuNy0xMC40TDIwMi40IDgzLjRjLTEtMi44LTEuNi01LjYtMS45LTguNi0uMi0xLjIgLjEtMi40IC44LTMuNHMxLjgtMS42IDMtMS44Yy4yIDAtMi4xIDAgMjIuMiAwIDguOC0uOSAxMS42IDYgMTIuNiAxMC40TDI3NC45IDIyMC44IDMwOC4xIDgwYy41LTMuMiAyLjktMTEuMSAxMi44LTEwLjJsMTcuMiAwYzIuMi0uMiAxMS4xLS41IDEyLjcgMTAuNEwzODQuMSAyMjIuNyA0MjEgODAuMWMuNS0yLjIgMi43LTExLjQgMTIuNy0xMC40bDE5LjcgMGMuOS0uMSA2LjItLjggNS4zIDguNi0uNCAxLjggMy40LTEwLjctNTIuOCAxNjkuOS0xLjEgNS41LTQuOCAxMS4xLTEyLjcgMTAuNGwtMTguNyAwYy0xMC45IDEuMi0xMi41LTkuNy0xMi43LTEwLjdsLTMzLjItMTM3LjEtMzIuOCAxMzdjLS4yIDEuMS0xLjcgMTEuOS0xMi43IDEwLjdsLTE4LjMgMCAwIDB6bTI3My41IDUuNmMtNS45IDAtMzMuOS0uMy01Ny40LTEyLjMtMi4zLTEtNC4zLTIuNi01LjctNC44cy0yLjEtNC42LTIuMS03LjFsMC0xMC43YzAtOC41IDYuMi02LjkgOC44LTUuOSAxMCA0LjEgMTYuNSA3LjEgMjguOCA5LjYgMzYuNyA3LjUgNTIuOC0yLjMgNTYuNy00LjUgMTMuMi03LjggMTQuMi0yNS43IDUuMy0zNC45LTEwLjUtOC44LTE1LjUtOS4xLTUzLjEtMjEtNC42LTEuMy00My43LTEzLjYtNDMuOC01Mi40LS42LTI4LjIgMjUtNTYuMiA2OS41LTU2IDEyLjcgMCA0Ni40IDQuMSA1NS42IDE1LjYgMS40IDIuMSAyIDQuNiAxLjkgN2wwIDEwLjFjMCA0LjQtMS42IDYuNy00LjkgNi43LTcuNy0uOS0yMS40LTExLjItNDkuMi0xMC44LTYuOS0uNC0zOS45IC45LTM4LjQgMjUtLjQgMTkgMjYuNiAyNi4xIDI5LjcgMjYuOSAzNi41IDExIDQ4LjYgMTIuOCA2My4xIDI5LjYgMTcuMSAyMi4yIDcuOSA0OC4zIDQuMyA1NS40LTE5LjEgMzcuNS02OC40IDM0LjQtNjkuMyAzNC40em00MC4yIDEwNC45Yy03MCA1MS43LTE3MS43IDc5LjItMjU4LjUgNzkuMi0xMTcuMSAuOC0yMzAuMy00Mi4zLTMxNy4zLTEyMC43LTYuNS01LjktLjgtMTQgNy4yLTkuNSA5Ni41IDU1LjIgMjA1LjcgODQuMiAzMTYuOSA4NC4xIDgzLS40IDE2NS4xLTE3LjMgMjQxLjYtNDkuNSAxMS44LTUgMjEuOCA3LjggMTAuMSAxNi40em0yOS4yLTMzLjNjLTktMTEuNS01OS4zLTUuNC04MS44LTIuNy02LjggLjgtNy45LTUuMS0xLjgtOS41IDQwLjEtMjguMiAxMDUuOS0yMC4xIDExMy40LTEwLjYgNy41IDkuNS0yLjEgNzUuNC0zOS42IDEwNi45LTUuOCA0LjktMTEuMyAyLjMtOC43LTQuMSA4LjQtMjEuMyAyNy40LTY4LjUgMTguNC04MHoiXX0sd2ZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdsaWRlLWciLGljb246WzQ0OCw1MTIsW10sImYyYTYiLCJNNDA3LjEgMjExLjJjLTMuNS0xLjQtMTEuNi0zLjgtMTUuNC0zLjgtMzcuMSAwLTYyLjIgMTYuOC05My41IDM0LjVsLS45LS45YzctNDcuMyAyMy41LTkxLjkgMjMuNS0xNDAuNCAwLTcxLjUtMzguMi0xMDAuNi0xMDguNC0xMDAuNi0xMTUuMSAwLTE3My40IDExMy43LTE3My40IDE5OC40IDAgODcuOSA1MS4zIDEzNi42IDEzOC42IDEzNi42IDEyIDAgMTEtMSAxMSAzLjgtMTYuOSAxMjguOS05MC44IDEzMy4xLTkwLjggOTQuNiAwLTM5LjIgNDUtNTguNiA0NS41LTYxLS4zLTEyLjItNDctMjcuNi01OC45LTI3LjYtMzMuOSAuMS01Mi40IDUxLjItNTIuNCA3OS4zIDAgNTEuOSAzMi44IDg3LjkgODUuNSA4Ny45IDc3LjQgMCAxMzQtNzcuOCAxNTEuNC0xNDUuNCAxNS4xLTYwLjUgMTEuMi02My4zIDE5LjctNjcuNiAzMi4yLTE2LjIgNTcuNS0yNyA5My44LTI3IDE3LjggMCAzMC41IDMuNyA1OC45IDguNCAyLjkgMCA2LjctMi45IDYuNy01LjggMC04LTMzLjQtNjAuNS00MC45LTYzLjR6TTIzMS44IDEyNi44Yy05LjMgNDQuNy0xOC42IDg5LjYtMjcuOCAxMzQuMy0yLjMgMTAuMi0xMy4zIDcuOC0yMiA3LjgtMzguMyAwLTQ5LTQxLjgtNDktNzMuMSAwLTQ3IDE4LTEwOS4zIDYxLjgtMTMzLjQgNy00LjEgMTQuOC02LjcgMjIuNi02LjcgMTguNiAwIDIwIDEzLjMgMjAgMjguNy0uMSAxNC4zLTIuNyAyOC41LTUuNiA0Mi40eiJdfSxrZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianNmaWRkbGUiLGljb246WzU3Niw1MTIsW10sImYxY2MiLCJNNTExLjEgMjM3LjVjLTQuNy0yLjYtNS43LTUuNy02LjQtMTAuOC0yLjQtMTYuNS0zLjUtMzMuNi05LjEtNDkuMS0zNS45LTEwMC0xNTQtMTQzLjQtMjQ2LjgtOTEuNi0yNy40IDE1LjItNDkgMzYuNC02NS41IDYzLjktMy4yLTEuNS01LjUtMi43LTcuOC0zLjctMzAuMS0xMi40LTU5LTEwLjEtODUuMyA5LjItMjUuNSAxOC43LTM2LjQgNDQuNS0zMi43IDc2LjQgLjQgMy0yIDcuNi00LjUgOS41LTM5LjcgMzAtNTYgNzguMS00MS45IDEyNC42IDEzLjggNDUuNiA1Ny41IDc5LjggMTA1LjYgODEuNCAzMC4zIDEgNjAuNiAuNSA5MSAuNSA4NCAwIDE2OC4xIC41IDI1Mi4xLS41IDUyLjctLjYgOTYuMS0zNi45IDEwOC4yLTg3LjMgMTEuNS00OC4xLTExLjEtOTcuMy01Ni44LTEyMi42em0yMS4xIDE1Ni45Yy0xOC4yIDIyLjQtNDIuMyAzNS4zLTcxLjMgMzUuNy01Ni45IC44LTExMy44IC4yLTE3MC43IC4yIDAgLjctMTYzIC4yLTE2My43IC4yLTQzLjktLjMtNzYuNy0xOS44LTk1LjItNjAtMTguOS00MS4yLTQtOTAuOCAzNC4yLTExNi4xIDkuMi02LjEgMTIuNS0xMS42IDEwLjEtMjMuMS01LjUtMjYuNCA0LjUtNDggMjYuNC02MyAyMy0xNS43IDQ3LjQtMTYuMSA3Mi0zLjEgMTAuMyA1LjQgMTQuNiAxMS42IDIyLjItMi41IDE0LjItMjYuNCAzNC42LTQ2LjcgNjAuNy02MS4zIDk3LjUtNTQuNCAyMjguNCA3LjYgMjMwLjIgMTMyLjcgLjEgOC4yIDIuNCAxMi40IDkuOCAxNS45IDU3LjYgMjYuOCA3NC41IDk2LjEgMzUuMSAxNDQuNXptLTg3LjgtODAuNWMtNS44IDMxLjItMzQuNiA1NS4xLTY2LjcgNTUuMS0xNyAwLTMyLjEtNi41LTQ0LjEtMTcuNy0yNy43LTI1LjctNzEuMS03NS05NS45LTkzLjQtMjAuMS0xNC45LTQyLTEyLjMtNjAuMyAzLjgtNTAgNDQuMSAxNS45IDEyMS44IDY3LjEgNzcuMiA0LjUtNCA3LjgtOS41IDEyLjctMTIuOCA4LjItNS41IDIwLjgtLjkgMTMuMiAxMC42LTE3LjQgMjYuMy00OS4zIDM4LjItNzguOSAyOS4zLTI4LjktOC43LTQ4LjgtMzYtNDguNi03MC4yIDEuMi0yMi41IDEyLjQtNDMuMSAzNS40LTU2IDIyLjYtMTIuNiA0Ni40LTEzLjEgNjcgMi41IDUwLjggMzguNSA3NS42IDgxLjcgMTA3LjMgMTAxLjIgMjQuNiAxNS4xIDU0LjMgNy40IDY4LjgtMTcuNSAyOC44LTQ5LjItMzQuNi0xMDUtNzguOS02My41LTQgMy43LTYuOSA4LjktMTEuNCAxMS43LTExIDYuOC0xNy4zLTQuMS0xMi44LTEwLjQgMjAuNy0yOC42IDUwLjUtNDAuNCA4My4zLTI4LjIgMzEuNCAxMS43IDQ5LjEgNDQuNCA0Mi44IDc4LjJ6Il19LFNmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrZXliYXNlIixpY29uOls0NDgsNTEyLFtdLCJmNGY1IiwiTTI4Ni4yIDQxOWExOCAxOCAwIDEgMCAwIDM2IDE4IDE4IDAgMSAwIDAtMzZ6TTM5OC4xIDI3MS40Yy05LjUtMTQuNi0zOS40LTUyLjQtODcuMy03My43LTYuMS0yLjctMTIuMi01LjEtMTguNC03LjMgNC4xLTkuOSA2LTIwLjYgNS44LTMxLjRzLTIuNy0yMS4zLTcuMi0zMS4xLTEwLjktMTguNS0xOC45LTI1LjctMTcuNC0xMi42LTI3LjYtMTZjLTEyLjQtNC4xLTIzLjMtNi0zMi40LTUuOC0uNi0yLTEuOS0xMSA5LjQtMzVsLTIyLjktMTMuNS01LjUgNy42Yy04LjcgMTIuMS0xNi45IDIzLjYtMjQuMyAzNC45LTIuNy0uNi01LjUtMS4xLTguMy0xLjItNDEuNS0yLjQtMzktMi4zLTQxLjEtMi4zLTUwLjYgMC01MC44IDUyLjEtNTAuOCA0NS45bC0yLjQgMzYuN2MtMS42IDI3IDE5LjggNTAuMiA0Ny42IDUxLjhsOC45IC41QzEwNiAyMTUuNSA5MC40IDIyNy41IDc2LjYgMjQxLjQgMTQgMzA0LjcgMTQgMzc0IDE0IDQyOS44bDAgMzMuNiAyMy4zLTI5LjhjMy4xIDEzLjEgOCAyNS44IDE0LjYgMzcuNiA1LjggMTAuMSAxNC45IDkuNCAxOS42IDcuMyA0LjItMS45IDEwLTYuOSAzLjgtMjAuMS04LTE2LjgtMTMuMy0zNC43LTE1LjgtNTMuMWw0Ni44LTU5LjgtMjQuNyA3NC4xYzU4LjItNDIuNCAxNTcuNC02MS44IDIzNi4yLTM4LjYgMzQuMiAxMC4xIDY3LjQgLjcgODQuNy0yMy44IC43LTEgMS4yLTIuMiAxLjgtMy4yIDEuOCA5LjQgMi43IDE4LjkgMi44IDI4LjQgMCAyMy4zLTMuNyA1Mi45LTE0LjkgODEuNi0yLjUgNi41IDEuOCAxNC41IDguNiAxNS43IDcuNCAxLjYgMTUuMy0zLjEgMTguNC0xMS4xIDkuNi0yNS41IDE0LjYtNTQuNiAxNC42LTg2LjIgMC0zOC42LTEzLTc3LjUtMzUuOS0xMTAuOXpNMTQyLjQgMTI4LjZsLTE1LjctLjktMS40IDIxLjggMTMuMSAuOGMtLjYgNi41LS41IDEzLjEgLjMgMTkuNmwtMjIuNC0xLjNjLTEuNi0uMS0zLjItLjUtNC43LTEuMXMtMi44LTEuNi0zLjktMi44LTEuOS0yLjYtMi41LTQuMS0uOC0zLjEtLjctNC43TDEwNyAxMTljMS0xMi4yIDEzLjktMTEuMyAxMy4zLTExLjNsMjkuMSAxLjdjLTIuOCA2LjItNS4xIDEyLjYtNyAxOS4yek0yOTAuOCAzMDAuOGMtMi4xIDEuNi00LjggMi40LTcuNSAyLjJzLTUuMS0xLjUtNi45LTMuNWwtOS43LTExLjUtMzQuNCAyN2MtMS42IDEuMy0zLjcgMS45LTUuOCAxLjdzLTQtMS4yLTUuMy0yLjhsLTE1LjgtMTguNmMtMS4yLTEuNi0xLjctMy41LTEuNS01LjRzMS4zLTMuNyAyLjgtNC45bDM0LjYtMjcuMi0xNC4xLTE2LjctMTcuMSAxMy41Yy0xLjYgMS4yLTMuNSAxLjgtNS41IDEuNnMtMy44LTEuMS01LjEtMi42YzAgMC0zLjctNC40LTMuOC00LjUtMS4yLTEuNi0xLjctMy41LTEuNS01LjVzMS4zLTMuNyAyLjgtNC45TDIxNCAyMjUuMnMtMTguNS0yMi0xOC42LTIyLjFjLS44LTEtMS4zLTIuMS0xLjctMy4zcy0uNC0yLjUtLjMtMy43IC42LTIuNCAxLjItMy41IDEuNS0yIDIuNS0yLjhjMi4xLTEuNyA0LjgtMi40IDcuNC0yLjJzNS4xIDEuNSA2LjkgMy42bDgxLjEgOTYuM2MuOCAxIDEuMyAyLjEgMS43IDMuM3MuNCAyLjUgLjMgMy43LS42IDIuNS0xLjIgMy41LTEuNSAyLjEtMi41IDIuOHpNMTg3LjQgNDE5YTE4IDE4IDAgMSAwIDAgMzYgMTggMTggMCAxIDAgMC0zNnoiXX0sTWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imx1bW9uLWRyb3AiLGljb246WzU3Niw1MTIsW10sImU3ZTMiLCJNNDgwIDMyYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCA1My00MyA5Ni05NiA5Nkw5NiA0NDhjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmwzODQgMHpNMzAyLjQgMTE0LjdjLTkuOC0xNi40LTIwLjUtMTYuNC0yOS42IDBsLTY4LjkgMTE0Yy0xMC43IDE1LjYtMTYuNCAzMi44LTE2LjQgNTIuNSAwIDUwLjkgNDQuMyA5NC4zIDEwMC4xIDk0LjMgNTUgMCAxMDAuOS00My41IDEwMC45LTk0LjMgMC0xOS43LTYuNi0zNy44LTE3LjItNTIuNWwtNjguOS0xMTR6Il19LENmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3JnZWpvIixpY29uOlszMjAsNTEyLFtdLCJlODYwIiwiTTI2MS41IDEuMmMzNCAwIDYxLjYgMjcuNiA2MS42IDYxLjZzLTI3LjYgNjEuNi02MS42IDYxLjZjLTIzIDAtNDMuMS0xMi43LTUzLjctMzEuNGwtMjguNSAwYy0yNCAwLTQ3IDkuNS02NCAyNi41cy0yNi41IDQwLTI2LjUgNjRsMCA0My41YzI2LTE5LjUgNTcuNy0zMC4yIDkwLjYtMzAuMmwyOC41IDBjMTAuNi0xOC43IDMwLjYtMzEuNCA1My43LTMxLjQgMzQgMCA2MS42IDI3LjYgNjEuNiA2MS42cy0yNy42IDYxLjYtNjEuNiA2MS42Yy0yMyAwLTQzLjEtMTIuNy01My43LTMxLjRsLTI4LjUgMGMtMjQgMC00NyA5LjUtNjQgMjYuNXMtMjYuNSA0MC0yNi41IDY0bDAgNDcuOGMxOC43IDEwLjYgMzEuNCAzMC42IDMxLjQgNTMuNiAwIDM0LTI3LjYgNjEuNi02MS42IDYxLjZTLTMgNDgzLjItMyA0NDkuMmMwLTIzIDEyLjctNDMuMSAzMS40LTUzLjZsMC0yMTJjMC00MCAxNS45LTc4LjQgNDQuMi0xMDYuN3M2Ni43LTQ0LjIgMTA2LjctNDQuMmwyOC41IDBjMTAuNi0xOC43IDMwLjYtMzEuNCA1My43LTMxLjR6TTU4LjYgNDIzLjljLTE0IDAtMjUuMyAxMS4zLTI1LjMgMjUuM3MxMS4zIDI1LjQgMjUuMyAyNS40IDI1LjQtMTEuNCAyNS40LTI1LjQtMTEuNC0yNS4zLTI1LjQtMjUuM3pNMjYxLjUgMjAxLjdhMjUuNCAyNS40IDAgMSAwIDAgNTAuNyAyNS40IDI1LjQgMCAxIDAgMC01MC43em0wLTE2NC4yYTI1LjQgMjUuNCAwIDEgMCAwIDUwLjcgMjUuNCAyNS40IDAgMSAwIDAtNTAuN3oiXX0semZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBvc3RncmVzcWwiLGljb246WzUxMiw1MTIsW10sImU4NTgiLCJNMjE5LjggMTcxLjNjMy45IC41IDEzLjEgMi43IDEyLjMgOC41LS44IDUuOS05LjIgOS4xLTE0LjIgOC40LTQuNy0uNy0xMy4yLTYuMS0xMi4zLTEyLjFsLjMtMi4xYzQuMiAwIDguMy0zLjUgMTMuOS0yLjd6bTE2OC4xLTMuNGMxMC44IDIuNi0xLjEgMTMuNS02LjggMTQuMy00LjMgLjYtMTIuMS0yLjItMTIuOC03LjQtMS03LjQgMTUuNy03LjkgMTkuNy02Ljl6bS0yMi0xNDAuOGMzNS43LS4zIDgxLjMgOS40IDExNC4zIDUxLjcgNy4yIDkuMiAxMCAyNCA5LjcgNDAuOS0uOCA0OS42LTI2IDEyOS40LTcwLjcgMTk3LjQgNC41IDIuOSAxNy42IDcuNCA1MS4xIC41IDUuNi0xLjIgMTIuNy0yLjIgMTcuNiAxLjYgMTguMiAxMy45LTE5LjYgMzUuMS0yOC40IDM5LjItMTMuMiA2LjItMzQuOCA5LjUtNTEuMiA4LjctMi4xLS4yLTQuMy0uMi02LjMtLjYtNS4xLTEuMS03LjQtMS04LjMtLjctMS4xIC4zLTEuNCAyLjktMS42IDMuOC0yLjggMjQuOS03LjcgNjQuNy0xMC43IDgyLTIuOCAxNi4zLTcuNyAyOS4zLTE3LjIgMzkuMi05LjUgOS45LTIyLjggMTUuNy00MC42IDE5LjUtMjIuMyA0LjgtMzcuOS0uMS00OC43LTkuMS0xMC4zLTguNy0xNS4yLTIwLjQtMTgtMjcuNC0xLjgtNC41LTMtMTEuNS00LTE5LjgtMi4zLTE5LjgtMy4zLTUwLjQtMy04My4zLTI0LjYgMjIuMS01NSAxNy4yLTY4LjIgMTMuOS0xMC41LTIuNi0zMy0xNi4xLTE3LjUtMjguNyAxMS45LTkuNyAzMC4zLTUuNSA0Mi4yLTE1IDIuNC0xLjkgMTEuNC0xMC42IDExLjQtMTMuNS0xMC0uMy0xOS42LTIuOS0yOC4xLTcuNS0xMy41IDE0LjUtMjYuNCAyOS41LTM5LjMgNDQuNi04LjMgOS45LTE3LjQgMTUuOC0yNy40IDE2LjItOS45IC40LTE4LjctNC42LTI2LjEtMTEuOC03LjMtNy4xLTE0LjEtMTcuMi0yMC40LTI5LTE5LTM1LjUtMzMuMi04Ni4xLTQyLjMtMTI2LjQtNi0yNi43LTkuNi00OS4xLTEwLjEtNTktMi4yLTQ0LjMgOC03NC4xIDI2LTkzLjIgMTcuOS0xOSA0Mi40LTI2IDY2LjEtMjcuNCAzNS42LTIgNzEgOC41IDg2LjYgMTMuOGw1IDEuOGMxNS45LTEwLjggMzYuMS0xNy40IDYxLjctMTcgMTMuMiAuMiAyNS41IDIuMiAzNi43IDQuMiAxOC42LTcuMSAzOS44LTkuNSA1OS40LTkuN3ptLTk2IDIwLjVjLTI0LjctLjQtNDIuOSA2LjUtNTYuNiAxNi44LS44IC42LTEuOCAxLTIuOCAxLjItMTQuNCAxMS44LTIzLjkgMjgtMzAuMyA0NC44LTcuMiAxOS4xLTEwIDM4LjUtMTEuMSA1MS41IDcuNi00LjMgMTcuOS04LjcgMjguNy0xMS4yIDEwLjUtMi40IDIyLjQtMy4yIDMyLjcgLjggMTAuOSA0LjIgMTkgMTMuMyAyMi4yIDI4LjEgNy41IDM0LjcgNi43IDU4LjIgMi43IDc1LjktNC44IDIxLTE2LjggMzkuNS0yMS45IDYwLjQgMy41LS45IDcuMS0uNiA5LjggLjFsNy4yIDIuOWM3LjcgNC40IDEyLjggMTMgMTQgMjEuNyAyIDYgLjEgMTQuMyAwIDIwLjYgNi43IDE2LjMgNy4yIDM2LjEgNi43IDUzLjMtLjcgMjUtMSA0MC4yIDMuMiA1MS43IDIuOSA3LjkgNC43IDE2LjQgMTAuNCAyMi44IDIuNiAzIDYuMSA1LjUgMTAuOSA2LjggMTguNSA1LjEgNDQtNC43IDU2LjYtMTguMiA3LjctOC4yIDEyLjMtMTkuMyAxMy40LTMzLjkgMS4xLTEzLjYgNC4yLTI3LjYgNi4zLTQxLjFsMi45LTguOGMxLjctMTQuOCAzLjQtMjkuNiA1LTQ0LjQtLjQtOS4xIC45LTE2LjEgMy45LTIxLjUgMy4xLTUuNyA3LjYtOC45IDExLjgtMTAuOCAxLjgtLjggMy45LTEuMiA1LjYtMi0xLjYtMi40LTMuNi00LjYtNS4zLTYuOC04LjItMTAuNC0xMy4zLTIyLjMtMTkuNy0zMy44LTguNS0xNS4yLTIzLjgtNDIuMi0zMC4xLTY3LjUtNC4xLTE2LjQtNC45LTM0LjUgNi00NyA5LjgtMTEuMiAyNi45LTE1LjUgNTEuOS0xMy0zLjQtMTAtMTEuNC0yNy41LTI0LjgtNDQuNy0xOC0yMy00NS43LTQ1LjktODUuNy01My4xLTcuMy0uOS0xNS4yLTEuNS0yMy42LTEuN3ptLTMyLjIgMjgyYy04IC43LTE1LjUgMTguMi0yMS43IDIzLjEtNi4yIDQuOS0xNC41IDcuNi0zMCAxMC43LTQuNSAuOS03LjcgMS45LTkuNyAyLjggMjIuMyAxNS44IDU4LjMgMy4yIDcyLjYtMTYuOCAxLjctMi40IDIuMS02IC41LTEwLjItMS43LTQuNS02LjQtMTAuMS0xMS45LTkuNnpNMTE3LjYgNDkuMmMtMjEuNiAxLjItNDIgNy41LTU2LjQgMjIuOC0xNC40IDE1LjItMjQuMiA0MC42LTIyLjEgODIuNSAuNCA4LjUgMy44IDMwIDkuOCA1Ni42IDguOSAzOS44IDIzLjcgOTAuMyA0MC42IDEyMi4yIDYgMTEuMSAxNy40IDMzIDMyLjggMzIuMyA0LjQtLjIgMTAuMS0yLjggMTctMTEgMTIuNi0xNC44IDI1LjItMjkuNSAzOC41LTQzLjctMTcuOS0xNS40LTI4LjUtNDAuMy0yNC44LTY3LjIgMy40LTI0LjMgLjUtNDguMiAxLjItNzIuNSAuNC0xMS45IDIuMy0zOC43IDEyLjYtNjUuOCA1LjktMTUuNSAxNC41LTMxLjMgMjcuNC00NC4yLTE2LjQtNS40LTQ3LjEtMTMuNS03Ni42LTExLjl6TTQwNS4xIDMyOC45Yy0zLjggMS4xLTYuNyAyLjItOC43IDUuOC0xLjMgMi40LTIuNSA2LjctMi4yIDE0LjIgNC44IDMuOSAxNC4xIDMuMyAxOS44IDMuMiAxMy45LS4yIDI5LjktMy4xIDM5LjMtNy41IDcuOS0zLjcgMTQuNy04LjMgMTktMTIuMi0zOC4yIDcuNy01NS40IDIuMS02My4yLTQuOC0xLjMgLjQtMi45IC45LTMuOSAxLjJ6TTIyNS4zIDE2NC45Yy0xNS40LTUuOS0zNS40IDEuOC00OC45IDkuNC0zLjYgMi02LjUgNC03LjkgNS4yIC40IDguOCAyLjggMzYuMS0xLjQgNjYuMy01LjEgMzYuNiAyMS43IDY2LjYgNTIuNSA2Ni43IDUuMS0yMC44IDE3LTM5LjIgMjEuOC02MC4xIDMuNS0xNS4zIDQuNS0zNi42LTIuNy02OS43LTIuMy0xMC41LTcuNC0xNS40LTEzLjQtMTcuN3pNMzcwLjEgNDIuMmMtMTUuMi0uMi0yOC44IDEuNy0zOS4yIDMuOCAyNiAxMS44IDQ1LjYgMjkuNyA1OS42IDQ3LjYgMTcuNCAyMi4yIDI2LjMgNDQuMSAyOSA1NSAuNyAyLjcgMS4zIDUuNyAuNSA4LjQgLjYgMTguOS00IDMxLjMtNC42IDQ5LjItLjQgMTIuOSAyLjkgMjguMSAzLjcgNDQuNyAuOCAxNS43LTEgMzIuNS0xMS4yIDQ5LjUgLjggMSAxLjYgMi4xIDIuNCAzLjEgMjYuOC00Mi4yIDQ2LTg4LjYgNTYuMy0xMjguNSA1LjUtMjEuNCA4LjQtNDAuNyA4LjctNTYuMSAuMi0xNS4yLTItMjUuNC01LjgtMzAuNC0yOC4zLTM2LjEtNjYuOC00NS44LTk5LjMtNDYuMnptMzUuNiAxMTkuNWMtMjUuMy0zLjItMzcuMyAxLjUtNDIuOCA3LjctNiA2LjgtNi44IDE4LjUtMi45IDM0LjEgNS43IDIyLjYgMjAuMSA0OC42IDI4LjcgNjQgMy42IDYuNCA2LjQgMTMuMSAxMCAxOS40IDUuNS0xMS43IDYuNi0yMy41IDYtMzUuNS0uNy0xNS00LjItMzAuMy0zLjctNDUuOGwuNC03LjRjMS4yLTE0LjMgNC4xLTI0LjYgNC4yLTM2LjV6Il19LF9mcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWVibHkiLGljb246WzUxMiw1MTIsW10sImY1Y2MiLCJNNDI1LjEgNjUuOGMtMzkuOSAwLTczLjMgMjUuNy04My43IDY0LjMtMTguMi01OC4xLTY1LjUtNjQuMy04NS02NC4zLTE5LjggMC02Ni44IDYuMy04NS4zIDY0LjMtMTAuNC0zOC42LTQzLjQtNjQuMy04My43LTY0LjMtNDkgMC04Ny41IDMzLjktODcuNSA3Ny4yIDAgMjkgNC4yIDMzLjMgNzcuMiAyMzMuNSAyMi40IDYwLjYgNjcuOCA2OS40IDkyLjcgNjkuNCAzOS4yIDAgNzAtMTkuNSA4NS45LTU0IDE1LjkgMzQuOCA0Ni43IDU0LjMgODUuOSA1NC4zIDI1IDAgNzAuNC05LjEgOTIuNy02OS43IDc2LjYtMjA4LjYgNzcuNS0yMDUuNiA3Ny41LTIyNy4yIC42LTQ4LjMtMzYtODMuNS04Ni45LTgzLjV6bTI2LjMgMTE0LjhMMzg1LjkgMzU3LjFjLTcuOSAyMS41LTIxLjIgMzcuMi00Ni4yIDM3LjItMjMuNCAwLTM3LjQtMTIuNC00NC0zMy45bC0zOS4zLTExNy40LTEgMC0zOS4zIDExNy40Yy03IDIxLjUtMjAuOSAzMy42LTQ0IDMzLjYtMjUgMC0zOC4zLTE1LjctNDYuMi0zNy4yTDYwLjkgMTgxLjZjLTUuNC0xNC44LTcuOS0yMy45LTcuOS0zNC41IDAtMTYuMyAxNS44LTI5LjQgMzguMy0yOS40IDE4LjcgMCAzMiAxMS44IDM2LjEgMjkuMWw0NCAxMzkuOCAxIDAgNDQuNy0xMzYuOGM2LTE5LjcgMTYuNS0zMi4xIDM5LTMyLjFzMzIuOSAxMi4xIDM5IDMyLjFsNDQuNyAxMzYuOCAxIDAgNDQtMTM5LjhjNC4xLTE3LjIgMTcuNC0yOS4xIDM2LjEtMjkuMSAyMi4yIDAgMzguMyAxMy4zIDM4LjMgMzUuNy0uMyA3LjktNC4xIDE2LTcuNiAyNy4yeiJdfSxUZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZG9ja2VyIixpY29uOls2NDAsNTEyLFtdLCJmMzk1IiwiTTM0OS45IDIzNi4zbC02Ni4xIDAgMC01OS40IDY2LjEgMCAwIDU5LjR6bTAtMjA0LjNsLTY2LjEgMCAwIDYwLjcgNjYuMSAwIDAtNjAuN3ptNzguMiAxNDQuOGwtNjYuMSAwIDAgNTkuNCA2Ni4xIDAgMC01OS40ek0yNzEuOCAxMDQuN2wtNjYuMSAwIDAgNjAuMSA2Ni4xIDAgMC02MC4xem03OC4xIDBsLTY2LjEgMCAwIDYwLjEgNjYuMSAwIDAtNjAuMXptMjc2LjggMTAwYy0xNC40LTkuNy00Ny42LTEzLjItNzMuMS04LjQtMy4zLTI0LTE2LjctNDQuOS00MS4xLTYzLjdsLTE0LTkuMy05LjMgMTRjLTE4LjQgMjcuOC0yMy40IDczLjYtMy43IDEwMy44LTguNyA0LjctMjUuOCAxMS4xLTQ4LjQgMTAuN2wtNDM0LjcgMGMtOC43IDUwLjggNS44IDExNi44IDQ0IDE2Mi4xIDM3LjEgNDMuOSA5Mi43IDY2LjIgMTY1LjQgNjYuMiAxNTcuNCAwIDI3My45LTcyLjUgMzI4LjQtMjA0LjIgMjEuNCAuNCA2Ny42IC4xIDkxLjMtNDUuMiAxLjUtMi41IDYuNi0xMy4yIDguNS0xNy4xbC0xMy4zLTguOXpNMTE1LjYgMTc2LjhsLTY2IDAgMCA1OS40IDY2LjEgMCAwLTU5LjQtLjEgMHptNzguMSAwbC02Ni4xIDAgMCA1OS40IDY2LjEgMCAwLTU5LjR6bTc4LjEgMGwtNjYuMSAwIDAgNTkuNCA2Ni4xIDAgMC01OS40em0tNzguMS03Mi4xbC02Ni4xIDAgMCA2MC4xIDY2LjEgMCAwLTYwLjF6Il19LExmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYWdlbnRvIixpY29uOls0NDgsNTEyLFtdLCJmM2M0IiwiTTQ0NS45IDEyNy45bDAgMjU2LjEtNjMuNCAzNi41IDAtMjU1LjgtMTU4LjUtOTEuNi0xNTguNiA5MS42IC40IDI1NS45LTYzLjMtMzYuNiAwLTI1NS45IDIyMS45LTEyOC4xIDIyMS41IDEyNy45ek0yNTUuOCA0MjAuNWwtMzEuNiAxOC40LTMxLjgtMTguMiAwLTI1Ni02My4zIDM2LjYgLjEgMjU1LjkgOTQuOSA1NC45IDk1LjEtNTQuOSAwLTI1Ni02My40LTM2LjYgMCAyNTUuOXoiXX0sRGZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRvci1icm93c2VyIixpY29uOls1MTIsNTEyLFtdLCJlODM4IiwiTTI1Ni41IDQ2NS40bDAtMzFjOTguMy0uMyAxNzcuOS04MCAxNzcuOS0xNzguNFMzNTQuOCA3Ny45IDI1Ni41IDc3LjZsMC0zMUMzNzIgNDYuOCA0NjUuNCAxNDAuNSA0NjUuNCAyNTZTMzcyIDQ2NS4yIDI1Ni41IDQ2NS40em0wLTEwOC42YzU1LjQtLjMgMTAwLjMtNDUuMyAxMDAuMy0xMDAuOFMzMTIgMTU1LjUgMjU2LjUgMTU1LjJsMC0zMWM3Mi42IC4zIDEzMS40IDU5LjIgMTMxLjQgMTMxLjhTMzI5LjEgMzg3LjYgMjU2LjUgMzg3LjhsMC0zMXptMC0xNTUuMWMyOS43IC4zIDUzLjggMjQuNSA1My44IDU0LjNzLTI0IDU0LTUzLjggNTQuM2wwLTEwOC42ek0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAweiJdfSwkZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0LWFsdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjg0MSIsIk00MzkuNiAyMzYuMUwyNDQgNDAuNUMyMzguNiAzNSAyMzEuMiAzMiAyMjMuNiAzMnMtMTUgMy0yMC40IDguNGwtNDAuNyA0MC42IDUxLjUgNTEuNWMyNy4xLTkuMSA1Mi43IDE2LjggNDMuNCA0My43bDQ5LjcgNDkuN2MzNC4yLTExLjggNjEuMiAzMSAzNS41IDU2LjctMjYuNSAyNi41LTcwLjItMi45LTU2LTM3LjNsLTQ2LjMtNDYuMyAwIDEyMS45YzI1LjMgMTIuNSAyMi4zIDQxLjggOS4xIDU1LTYuNCA2LjQtMTUuMiAxMC4xLTI0LjMgMTAuMXMtMTcuOC0zLjYtMjQuMy0xMC4xYy0xNy42LTE3LjYtMTEuMS00Ni45IDExLjItNTZsMC0xMjNjLTIwLjgtOC41LTI0LjYtMzAuNy0xOC42LTQ1TDE0Mi42IDEwMSA4LjUgMjM1LjFDMyAyNDAuNiAwIDI0Ny45IDAgMjU1LjVzMyAxNSA4LjUgMjAuNEwyMDQuMSA0NzEuNmM1LjQgNS40IDEyLjcgOC40IDIwLjQgOC40czE1LTMgMjAuNC04LjRMNDM5LjYgMjc2LjljNS40LTUuNCA4LjQtMTIuOCA4LjQtMjAuNHMtMy0xNS04LjQtMjAuNHoiXX0sQWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcmVmb3gtYnJvd3NlciIsaWNvbjpbNTEyLDUxMixbXSwiZTAwNyIsIk0xMzAuMiAxMjcuNWwwIDB6bTM1MS40IDQ1LjRjLTEwLjYtMjUuNS0zMi4xLTUzLTQ4LjktNjEuNyAxMy43IDI2LjkgMjEuNyA1My45IDI0LjcgNzQgMCAuMSAwIC4zIC4xIC40LTI3LjYtNjguOC03NC40LTk2LjUtMTEyLjYtMTU2LjgtMTUtMjMuNy0xMC45LTI1LjItMTMuMS0yNC43bC0uMSAuMWMtNDYuNyAyNi03NS4zIDc4LjQtODIuNiAxMjIuNy0xNi42IC45LTMyLjkgNS00Ny45IDEyLjEtMS40IC42LTIuNSAxLjctMy4xIDNzLS45IDIuOC0uNiA0LjNjLjIgLjggLjYgMS42IDEuMSAyLjNzMS4yIDEuMyAxLjkgMS43IDEuNiAuNyAyLjQgLjggMS43IDAgMi41LS4zbC41LS4yYzE1LjUtNy4zIDMyLjQtMTEuMiA0OS41LTExLjMgNjIuOC0uNiA5Ny4yIDQ0IDEwNy42IDYyLjMtMTMtOS4yLTM2LjQtMTguMi01OC44LTE0LjMgODcuNyA0My45IDY0LjIgMTk0LjUtNTcuNCAxODkuMi01OS41LTIuNi05Ny4xLTUxLTEwMC41LTkwLjggMCAwIDExLjItNDEuOSA4MC42LTQxLjkgNy41IDAgMjguOS0yMC45IDI5LjMtMjctLjEtMi00Mi41LTE4LjktNTkuMS0zNS4yLTguOC04LjctMTMuMS0xMi45LTE2LjgtMTYuMS0yLTEuNy00LjEtMy4zLTYuMy00LjgtNS42LTE5LjUtNS44LTQwLS43LTU5LjYtMjUuMSAxMS40LTQ0LjYgMjkuNC01OC43IDQ1LjRsLS4xIDBjLTkuNy0xMi4yLTktNTIuNi04LjQtNjEuMS0uMS0uNS03LjIgMy43LTguMiA0LjMtOC42IDYuMS0xNi41IDEyLjktMjMuOCAyMC40LTE2LjMgMTYuNi00NC4xIDUwLjItNTUuNSAxMDEuMi00LjUgMjAuNC02LjggNDQuNC02LjggNTIuMyAwIDEzNC43IDEwOS4yIDI0My45IDI0My45IDI0My45IDEyMC42IDAgMjIzLTg3LjIgMjQwLjQtMjAyLjYgMTEuNi03Ni43LTE0LjctMTMxLjEtMTQuNy0xMzJ6Il19LEVmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbG91ZHNtaXRoIixpY29uOls1MTIsNTEyLFtdLCJmMzg0IiwiTTUxMiAyMjcuNkw1MTIgMjg0LjUgMjg0LjQgNTEyIDIyNy42IDUxMiAwIDI4NC40IDAgMjI3LjYgMjI3LjYgMCAyODQuNSAwIDUxMiAyMjcuNnptLTI1NiAxNjJjMTcuOCAuNSAzNS42LTIuNiA1Mi4yLTkuMXMzMS44LTE2LjIgNDQuNi0yOC43IDIzLTI3LjMgMjkuOS00My44IDEwLjUtMzQuMSAxMC41LTUyLTMuNi0zNS41LTEwLjUtNTItMTcuMS0zMS4zLTI5LjktNDMuOC0yOC0yMi4yLTQ0LjYtMjguNy0zNC40LTkuNi01Mi4yLTkuMWMtMTcuOC0uNS0zNS42IDIuNi01Mi4yIDkuMXMtMzEuOCAxNi4zLTQ0LjYgMjguNy0yMyAyNy4zLTI5LjkgNDMuOC0xMC41IDM0LjEtMTAuNSA1MiAzLjYgMzUuNSAxMC41IDUyIDE3LjEgMzEuMyAyOS45IDQzLjggMjggMjIuMiA0NC42IDI4LjcgMzQuNCA5LjYgNTIuMiA5LjF6Il19LElmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aXphcmRzLW9mLXRoZS1jb2FzdCIsaWNvbjpbNjQwLDUxMixbXSwiZjczMCIsIk0yMTkuMiAzNDUuN2MtMS45IDEuNC0xMS4xIDguNC0uMyAyMy42IDQuNiA2LjQgMTQuMSAxMi44IDIxLjcgNi42IDYuNS00LjkgNy40LTEyLjkgLjMtMjMtNS41LTcuOC0xNC4zLTEyLjktMjEuNy03LjF6bTMzNi44IDc1LjljLS4zIDEuNy0uNiAxLjcgLjggMCAyLjEtNC4yIDQuMi0xMC4yIDUtMTkuOSAzLjEtMzguNS00MC4zLTcxLjUtMTAxLjMtNzgtNTQuNy02LTEyNC40IDkuMi0xODguOCA2MC41bC0uMyAxLjZjMi42IDUgNSAxMC43IDMuNCAyMS4ybC44IC4zYzYzLjktNTguNCAxMzEuMi03Ny4yIDE4NC40LTczLjggNTguNCAzLjcgMTAwIDM0IDEwMCA2OC4xIDAgMTAtMi42IDE1LjctMy45IDIwLjJ6TTM5Mi4zIDI0MC40Yy44IDcuMSA0LjIgMTAuMiA5LjIgMTAuNSA1LjUgLjMgOS40LTIuNiAxMC41LTYuNiAuOC0zLjQgMi4xLTI5LjggMi4xLTI5LjhTNDAyLjggMjIxIDM5OS4xIDIyNWMtMy43IDMuNy03LjMgOC40LTYuOCAxNS41em0tNTAtMTUxLjFjLTIwNC41IDAtMzI5LjIgMTM3LjUtMzQxLjUgMTUxLjktMSAuNS0xLjMgLjggLjggMS4zIDYwLjUgMTYuNSAxNTUuOCA4MS4yIDE5Ni4xIDIwMi4ybDEgLjNjNTUuMi02OS45IDE0MC45LTEyOC4xIDIzNy0xMjguMSA4MC45IDAgMTMwLjIgNDIuMiAxMzAuMiA4MC40IDAgMTguMy02LjYgMzMuNS0yMi4zIDQ2LjMgMCAxLS4yIC44IC44IC44IDE0LjctMTAuNyAyNy41LTI4LjggMjcuNS00OC4yIDAtMjIuOC0xMi4xLTM4LjItMTIuMS0zOC4yIDcuMSA3LjEgMTAuNyAxNi4yIDEwLjcgMTYuMiA1LjgtNDAuOSAyNy02Mi4zIDI3LTYyLjMtMi40LTkuNy02LjgtMTcuOC02LjgtMTcuOCA3LjYgOC4xIDE0LjQgMjcuNSAxNC40IDQxLjQgMCAxMC41LTMuNCAyMi44LTEyLjYgMzEuOWwuMyAuNWM4LjEtNSAxNi41LTE2LjggMTYuNS0zOCAwLTE1LjctNC43LTI1LjktNC43LTI1LjkgNS44LTUuMiAxMS4zLTkuMiAxNi0xMS44IC44IDMuNCAyLjEgOS43IDIuNCAxNC45IDAgMSAuOCAxLjggMSAwIC44LTUuOC0uMy0xNi4yLS4zLTE2LjUgNi0zLjEgOS43LTQuNSA5LjctNC41LTE1LjctMTEwLjMtMTQ0LTE5Ni45LTI5MS4yLTE5Ni45ek0yNDMgMzc4LjljLTExLjEgOS0yNC4yIDQuMS0zMC42LTQuMi03LjQtOS42LTYuOC0yNC4xIDQuMi0zMi41IDE0LjgtMTEuNCAyNy4xLS41IDMxLjIgNS41IC4zIC40IDEyLjEgMTYuNi00LjcgMzEuMnptMi4xLTEzNi40bDkuNC0xNy44IDExLjggNzEtMTIuNiA2LTI0LjYtMjguOCAxNC4xLTI2LjcgMy43IDQuNC0xLjgtOC4xem0xOC42IDExNy42bC0uMy0uM2MyLTQuMS0yLjUtNi42LTE3LjUtMzEuNy0xLjMtMi40LTMuMS0yLjktNC40LTIuNmwtLjMtLjVjNy45LTUuOCAxNS40LTEwLjIgMjUuNC0xNS43bC41IC4zYzEuMyAxLjggMi4xIDIuOSAzLjQgNC43bC0uMyAuNWMtMS0uMy0yLjQtLjgtNS4yIC4zLTIuMSAuOC03LjkgMy43LTEyLjMgNy42bDAgMS4zYzEuNiAyLjQgMy45IDYuNiA1LjggOS43bC4zIDBjMTAtNi4zIDcuNi00LjUgMTEuNS03LjlsLjMgMGMuNSAxLjggLjUgMS44IDEuOCA1LjVsLS4zIC4zYy0zLjEgLjYtNC43IC4zLTExLjUgNS41bDAgLjNjOS41IDE3IDExIDE2LjggMTIuNiAxNmwuMyAuM2MtMi4zIDEuNi02LjMgNC4yLTkuNyA2LjZ6TTMxOSAzMjcuNmMtMy4xIDEuNi02IDIuOS0xMCA1bC0uMy0uM2MxLjMtMi42IDEuMi0yLjctMTEuOC0zMi41bC0uMy0uM2MtLjIgMC04LjkgMy43LTEwIDcuM2wtLjUgMC0xLTUuOCAuMy0uNWM3LjMtNC42IDI1LjUtMTEuNiAyNy44LTEyLjZsLjUgLjMgMy4xIDUtLjMgLjVjLTMuNS0xLjgtNy40IC44LTEyLjMgMi42bDAgLjNjMTIuMyAzMiAxMi43IDMwLjYgMTQuNyAzMC42bDAgLjJ6bTQ0LjgtMTYuNWMtNC4yIDEtNS4yIDEuMy05LjcgMi45bC0uMy0uMyAuNS00LjVjLTEtMy40LTMuMS0xMS41LTMuNy0xMy42bC0uMy0uM2MtMy40IC44LTguOSAyLjYtMTIuOCAzLjlsLS4zIC4zYy44IDIuNiAzLjEgOS45IDQuMiAxMy45IC44IDIuNCAxLjggMi45IDIuOSAzLjFsMCAuNWMtMy43IDEtNy4xIDIuNi0xMC4yIDMuOWwtLjMtLjNjMS0xLjMgMS0yLjkgLjMtNS0xLTMuMS04LjEtMjMuOC05LjItMjcuMi0uNS0xLjgtMS42LTMuMS0yLjYtMy4xbDAtLjVjMy4xLTEgNi0yLjEgMTAuNy0zLjRsLjMgLjMtLjMgNC43YzEuMyAzLjkgMi40IDcuNiAzLjEgOS43bC4zIDBjMy45LTEuMyA5LjQtMi45IDEyLjgtMy45bC4zLS4zLTIuNi05LjRjLS41LTEuOC0xLTMuNC0yLjYtMy45bDAtLjNjNC40LTEgNy4zLTEuOCAxMC43LTIuNGwuMyAuM2MtMSAxLjMtMSAyLjktLjUgNC40IDEuNiA2LjMgNC43IDIwLjQgNi4zIDI2LjUgLjUgMi42IDEuOCAzLjQgMi42IDMuOXptMzIuMi02LjhsLS4zIC4zYy00LjcgLjUtMTQuMSAyLjQtMjIuNSA0LjJsLS4zLS4zIC44LTQuMmMtMS42LTcuOS0zLjQtMTguNi01LTI2LjItLjMtMS44LS44LTIuOS0yLjYtMy43bC44LS41YzkuMi0xLjYgMjAuMi0yLjQgMjQuOS0yLjZsLjMgLjNjLjUgMi40IC44IDMuMSAxLjYgNS41bC0uMyAuM2MtMS4xLTEuMS0zLjMtMy4yLTE2LjItLjhsLS4zIC4zYy4zIDEuNiAxIDYuNiAxLjYgOS45bC4zIC4zYzkuNS0xLjcgNC44LS4xIDEwLjctMi40bC4zIDBjMCAxLjYtLjMgMS44LS4zIDUuMmwtLjMgMGMtNC44LTEtMi4yLS45LTEwLjIgMGwtLjMgLjNjLjMgMi4xIDEuNiA5LjQgMi4xIDEyLjZsLjMgLjNjMS4yIC40IDE0LjItLjYgMTYuMi00LjdsLjMgMGMtLjUgMi40LTEgNC4yLTEuNiA2em0xMC43LTQ0LjVjLTQuNSAyLjQtOC4xIDIuOS0xMSAyLjktLjIgMC0xMS40IDEuMS0xNy41LTEwLTYuNy0xMC44LTEtMjUuMiA1LjUtMzEuNyA4LjgtOC4xIDIzLjQtMTAuMSAyOC41LTE3IDgtMTAuMy0xMy0yMi4zLTI5LjYtNS44bC0yLjYtMi45IDUuMi0xNi4yYzI1LjYtMS42IDQ1LjItMyA1MCAxNi4yIC44IDMuMSAwIDkuNC0uMyAxMi4xIDAgMi42LTEuOCAxOC44LTIuMSAyMy0uNSA0LjItLjggMTguMy0uOCAyMC43IC4zIDIuNCAuNSA0LjIgMS42IDUuNSAxLjYgMS44IDUuOCAxLjggNS44IDEuOGwtLjggNC43Yy0xMS44LTEuMS0xMC4zLS42LTIwLjQtMS0zLjItNS4xLTIuMi0zLjMtNC4yLTcuOSAwIDAtNC4yIDMuOS03LjMgNS41ek00NDMuOSAyODFjLTYuNC0xMC42LTE5LjgtNy4yLTIxLjcgNS41LTIuNiAxNy4xIDE0LjMgMTkuOCAyMC43IDEwLjJsLjMgLjNjLS41IDEuOC0xLjggNi0xLjggNi4zbC0uNSAuNWMtMTAuMyA2LjktMjguNS0yLjUtMjUuNy0xOC42IDEuOS0xMC45IDE0LjQtMTguOSAyOC44LTkuOWwuMyAuNWMwIDEuMS0uMyAzLjQtLjMgNS4zem01LjgtODcuN2wwLTYuNmMuNyAwIDE5LjYgMy4zIDI3LjggNy4zbC0xLjYgMTcuNXMxMC4yLTkuNCAxNS40LTEwLjdjNS4yLTEuNiAxNC45IDcuMyAxNC45IDcuM2wtMTEuMyAxMS4zYy0xMi4xLTYuNC0xOS42LS4xLTIwLjcgLjgtNS4zIDM4LjctOC42IDQyLjIgNC40IDQ2LjFsLS41IDQuN2MtMTcuNi00LjMtMTguNS00LjUtMzYuOS03LjNsLjgtNC43YzcuMyAwIDcuNS01LjMgNy42LTYuOCAwIDAgNS01My4yIDUtNTUuMyAwLTIuOS01LTMuNy01LTMuN3ptMTEgMTE0LjRjLTguMS0yLjEtMTQuMS0xMS0xMC43LTIwLjcgMy4xLTkuNCAxMi4zLTEyLjMgMTguOS0xMC4yIDkuMiAyLjYgMTIuOCAxMS44IDEwLjcgMTkuNC0yLjYgOC45LTkuNCAxMy45LTE4LjkgMTEuNXptNDIuMiA5LjdjLTIuNC0uNS03LjEtMi40LTguNi0yLjlsMC0uMyAxLjYtMS44Yy42LTguMiAuNi03LjMgLjMtNy42LTQuOC0xLjgtNi43LTIuNC03LjEtMi40LTEuMyAxLjgtMi45IDQuNS0zLjcgNS41bC0uOCAzLjQgMCAuM2MtMS4zLS4zLTMuOS0xLjMtNi0xLjZsMC0uMyAyLjYtMS44YzMuNC00LjcgMTAtMTQuMSAxMy45LTIwLjJsMC0yLjEgLjUtLjNjMi4xIC44IDUuNSAyLjEgNy42IDIuOSAuNSAuNSAuMi0xLjktMSAyNS4xLS4yIDEuOCAwIDIuNiAuOCAzLjl6bS00LjctODkuOGMxMS4zLTE4LjMgMzAuOC0xNi4yIDM0LTMuNGw3LjYtMjYuMmMyLjMtNi4yLTIuOC05LjktNC41LTExLjNsMS44LTMuN2MxMi4yIDEwLjQgMTYuNCAxNCAyMi41IDIwLjQtMjUuOSA3My4xLTMwLjggODAuOC0yNC42IDg0LjNsLTEuOCA0LjRjLTYuNC0zLjMtOC45LTQuNC0xNy44LTguNmwyLjEtNi44Yy0uMy0uMy0zLjkgMy45LTkuNyAzLjctMTkuMS0xLjMtMjIuOS0zMS43LTkuNy01Mi45em0yOS4zIDc5LjNjMC01LjctNi4zLTcuOS03LjktNS4yLTEuMyAyLjEgMSA1IDIuOSA4LjQgMS42IDIuNiAyLjYgNi4zIDEgOS40LTIuNiA2LjMtMTIuNCA1LjMtMTUuNC0uOCAwLS43LS4zIC4xIDEuOC00LjdsLjgtLjNjLS42IDUuNyA2LjEgOS42IDguNCA1IDEtMi4xLS41LTUuNS0yLjEtOC40LTEuNi0yLjYtMy43LTYuMy0xLjgtOS43IDIuNy01LjEgMTEuMy00LjUgMTQuNyAyLjRsMCAuNS0yLjQgMy40em0yMS4yIDEzLjRjLTItMy4zLS45LTIuMS00LjUtNC43bC0uMyAwYy0yLjQgNC4yLTUuOCAxMC41LTguNiAxNi4yLTEuMyAyLjQtMSAzLjQtLjggMy45bC0uMyAuMy01LjgtNC40IC4zLS4zIDIuMS0xLjNjMy4xLTUuOCA2LjYtMTIuMSA5LjItMTdsMC0uM2MtMi42LTItMS4yLTEuNS02LTEuOGwwLS4zIDMuMS0zLjQgLjMgMGMzLjcgMi40IDEwIDYuOCAxMi4zIDguOWwuMyAuMy0xLjMgMy45ek01NzUuOCAyNzZsLTIuOS0yLjljLjgtMi40IDEuOC01IDIuMS03LjYgLjctOS43LTExLjUtMTEuOC0xMS41LTUgMCA1IDcuOSAxOS40IDcuOSAyNy44IDAgMTAuMi01LjggMTUuNy0xMy45IDE2LjUtOC40IC44LTIwLjItMTAuNS0yMC4yLTEwLjVsNS0xNC40IDIuOSAyLjFjLTMgMTcuOCAxNy43IDIwLjQgMTMuMyA1LjItMS4xLTQtMTguNy0zNC4yIDIuMS0zOC4yIDEzLjYtMi40IDIzIDE2LjUgMjMgMTYuNUw1NzUuOCAyNzZ6bTM1LjYtMTAuMmMtMTEtMzAuNC02MC41LTEyNy41LTE5Mi0xMjkuNi01My40LTEtOTQuMyAxNS40LTEzMi44IDM4bDg1LjYtOS4yLTkxLjQgMjAuNyAyNS4xIDE5LjYtMy45LTE2LjVjNy41LTEuNyAzOS4xLTguNSA2Ni44LTguOWwtMjIuMyA4MC40YzEzLjYtLjcgMTktOSAxOS42LTIyLjhsNS0xIC4zIDI2LjdjLTIyLjUgMy4yLTM3LjMgNi43LTQ5LjUgOS45bDEzLjEtNDMuMi02MS41LTM2LjcgMi40IDguMSAxMC4yIDVjNi4zIDE4LjYgMTkuNCA1Ni42IDIwLjQgNTguNyAyIDQuMyAzLjIgNS44IDEyIDQuNWwxLjEgNWMtMTYuMSA0LjktMjMuNyA3LjYtMzkgMTQuNGwtMi40LTQuN2M0LjQtMi45IDguNy0zLjkgNS41LTEyLjgtMjMuNy02Mi41LTIxLjUtNTguMS0yMi44LTU5LjRsMi40LTQuNCAzMy41IDY3LjNjLTMuOC0xMS45IDEuNyAxLjctMzMtNzguOGwtNDEuOSA4OC41IDQuNy0xMy45LTM1LjktNDIuMiAyNy44IDkzLjUtMTEuOCA4LjRjLTExMS45LTEwMS43LTEwNS44LTk4LjQtMTEzLjctOTguNy01LjUtLjMtMTMuNiA1LjUtMTMuNiA1LjVsLTUtNmMzMC42LTIzLjUgMzEuNi0yNC4zIDU4LjQtNDIuN2w0LjIgNy4xcy01LjggNC4yLTcuOSA3LjFjLTUuOSA5LjMgMS43IDEzLjMgNjEuOCA3NS43bC0xOC44LTU4LjkgMzkuOC0xMC4yIDI1LjcgMzAuNiA0LjQtMTIuMy01LTI0LjYgMTMuMS0zLjQgLjUgMy4xIDMuNy0xMC41LTk0LjMgMjkuMyAxMS4zLTUtMTMuNi00Mi40IDE3LjMtOS4yIDMwLjEgMzYuMSAyOC41LTEzLjFjLTEuNC03LjUtMi41LTE0LjUtNC43LTE5LjZsMTcuMyAxMy45IDQuNy0yLjEtNTkuMi00Mi43IDIzLjEgMTEuNWMxOS02LjEgMjUuMi03LjUgMzIuMi05LjdsMi42IDExYy0xMi42IDEyLjYgMS40IDE2LjggNi41IDE5LjRsLTEzLjYtNjEgMTIgMjguM2M0LjItMS4zIDcuMy0yLjEgNy4zLTIuMWwyLjYgOC42cy0zLjEgMS02LjMgMi4xbDguOSAyMSAzMy44LTY1LjctMjAuNyA2MWM0Mi40LTI0LjEgODEuNC0zNi43IDEzMi0zNS45IDY3IDEgMTY3LjMgNDAuOCAxOTkuOCAxMzkuOCAuOCAyLjEgMCAyLjYtLjggLjN6bS00MDgtMTEzLjRzMS44LS41IDQuMi0xLjNsOS40IDcuNmMtLjQgMC0zLjQtLjMtMTEuMyAyLjRsLTIuNC04LjZ6bTE0My44IDM4LjVjLTEuNi0uNi0yNi41LTQuOC0zMy4zIDIwLjdsMjEuNyAxNyAxMS41LTM3Ljd6TTMxOC40IDY3LjFjLTU4LjQgMC0xMDYuMSAxMi0xMTUgMTQuNGwwIC44YzguNCAyLjEgMTQuNCA0LjIgMjEuMiAxMS44bDEuNiAuM2M2LjYtMS44IDQ5LTEzLjkgMTEwLjItMTMuOSAxODAuMiAwIDMwMS43IDExNi44IDMwMS43IDIyMy40bDAgMTBjMCAxLjMgLjggMi42IDEuMSAuNSAuNS0yLjEgLjgtOC42IC44LTE5LjYgLjMtODMuOC05Ni42LTIyNy42LTMyMS42LTIyNy42ek01MjkuNSAyMzYuOGMxLjMtNS44IDAtMTIuMy03LjMtMTMuMS05LjYtMS4xLTE2LjEgMjMuOC0xNyAzMy41LS44IDUuNS0xLjMgMTQuOSA2IDE0LjkgNC43IDAgOS43LS45IDE4LjMtMzUuNHpNNDY4IDI3OS43Yy0yLjYtLjgtOS40LS44LTEyLjYgMTAuNS0xLjggNi44IC41IDEzLjQgNiAxNC43IDMuNyAxLjEgOC45IC41IDExLjgtMTAuNyAyLjYtOS45LTEuOC0xMy42LTUuMi0xNC40em0yMyAyMWMxLjggLjUgMy4xIDEgNS44IDEuOCAwLTEuOCAuNS04LjQgLjgtMTIuMS0xIDEuMy01LjUgOC4xLTYuNiAxMGwwIC4zeiJdfSxQZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uZCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlYiIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTk0IDE0NC4zbDAgNDIuNS0xODAuMyAwIDAtNDIuNSAxODAuMyAwem0wIDc5LjhsMCA0Mi41LTE4MC4zIDAgMC00Mi41IDE4MC4zIDB6Il19LE5mcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1c3BzIixpY29uOls1MTIsNTEyLFtdLCJmN2UxIiwiTTQyOC4zIDI0MS43YzI1LjgtNDEuMyAxNS4yLTQ4LjgtMTEuNy00OC44bC0yNyAwYy0uMSAwLTEuNS0xLjQtMTAuOSA4LTExLjIgNS42LTM3LjkgNi4zLTM3LjkgOC43IDAgNC41IDcwLjMtMy4xIDg4LjEgMCA5LjUgMS41LTEuNSAyMC40LTQuNCAzMi0uNSA0LjUgMi40IDIuMyAzLjggLjF6TTMxNi4yIDI2NC4zYzY0LTIxLjMgOTcuMy0yMy45IDEwMi0yNi4yIDQuNC0yLjktNC40LTYuNi0yNi4yLTUuOC01MS43IDIuMi0xMzcuNiAzNy4xLTE3Mi42IDUzLjlsLTMwLjctOTMuMyAxOTYuNiAwYy0yLjctMjguMi0xNTIuOS0yMi42LTMzNy45LTIyLjZMLTUgNDE1LjhjMTk2LjQtOTcuMyAyNTguOS0xMzAuMyAzMjEuMi0xNTEuNXpNNjIuNyA5NmMyNTMuMyA1My43IDMzMCA2NS43IDMzMi4xIDg1LjIgMzYuNCAwIDQ1LjkgMCA1Mi40IDYuNiAyMS4xIDE5LjctMTQuNiA2Ny43LTE0LjYgNjcuNy00LjQgMi45LTQwNi40IDE2MC4yLTQwNi40IDE2MC4yTDQ0OS4zIDQxNS43IDUxNyA5NiA2Mi43IDk2eiJdfSxPZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWxldHRlcmJveGQiLGljb246WzQ0OCw1MTIsW10sImU2MmUiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTA1LjEgMTg3QzY2LjQgMTg3IDM1IDIxOC4zIDM1IDI1N3MzMS40IDcwIDcwLjEgNzBjMjQuOCAwIDQ2LjUtMTIuOCA1OS0zMi4ybC41LS43LS40LS42Yy02LjUtMTAuNi0xMC4yLTIzLjEtMTAuMi0zNi41IDAtMTMuNiAzLjktMjYuMyAxMC42LTM3LjEtMTIuNC0xOS44LTM0LjQtMzIuOS01OS41LTMyLjl6TTIyNCAxODdjLTI0LjggMC00Ni41IDEyLjgtNTkgMzIuMmwtLjUgLjcgLjQgLjZjNi41IDEwLjYgMTAuMiAyMy4xIDEwLjIgMzYuNSAwIDEzLjYtMy45IDI2LjMtMTAuNiAzNy4xIDEyLjQgMTkuNyAzNC40IDMyLjkgNTkuNSAzMi45IDI0LjggMCA0Ni41LTEyLjggNTktMzIuMmwuNS0uNy0uNC0uNmMtNi41LTEwLjYtMTAuMi0yMy4xLTEwLjItMzYuNSAwLTEzLjYgMy45LTI2LjMgMTAuNi0zNy4xLTEyLjQtMTkuNy0zNC40LTMyLjktNTkuNS0zMi45em0xMTguOSAwYy0yNC44IDAtNDYuNSAxMi44LTU5IDMyLjJsLS41IC43IC40IC42YzYuNSAxMC42IDEwLjIgMjMuMSAxMC4yIDM2LjUgMCAxMy42LTMuOSAyNi4zLTEwLjYgMzcuMSAxMi40IDE5LjggMzQuNCAzMi45IDU5LjUgMzIuOSAzOC43IDAgNzAuMS0zMS4zIDcwLjEtNzBzLTMxLjQtNzAtNzAuMS03MHoiXX0sUmZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hbmRhbG9yaWFuIixpY29uOlszODQsNTEyLFtdLCJmNTBmIiwiTTIwMC42IDUxMS45Yy0xLTMuMy0xLjctMTUuOC0xLjQtMjQuNiAuNi0xNS45IDEtMjQuNyAxLjQtMjguOCAuNi02LjIgMi45LTIwLjcgMy4zLTIxLjQgLjYtMSAuNC0yNy45LS4yLTMzLjEtLjMtMi42LS42LTExLjktLjctMjAuNy0uMS0xNi41LS41LTIwLjEtMi43LTI0LjgtMS4xLTIuMy0xLjItMy44LTEtMTEuNCAuMi00LjIgLjEtOC41LS4zLTEyLjctMi0xMy0zLjUtMjcuNy0zLjItMzMuOXMuNC03LjEgMi4xLTkuN2MzLjEtNC43IDYuNS0xNCA4LjYtMjMuMyAyLjMtOS45IDMuOS0xNy4yIDQuNi0yMC43IDEuMS01LjEgMi42LTEwLjEgNC40LTE1LjEgMi4zLTYuMiAyLjUtMTUuNCAuNC0xNS40LS4zIDAtMS40IDEuMi0yLjQgMi43cy00LjggNC44LTguMyA3LjRjLTguNCA2LjEtMTEuNyA5LjQtMTIuNyAxMi42cy0xIDcuMi0uMiA3LjhjLjMgLjIgMS4zIDIuNCAyLjEgNC45IDEuNiA1IDEuOSAxMC4zIC43IDE1LjQtLjQgMS44LTEgNS41LTEuNSA4LjJzLTEgNi41LTEuMyA4LjJjLS4yIDEuNS0uNyAzLTEuNSA0LjMtMSAxLTEuMSAuOS0yLjEtLjUtLjctMS41LTEuMi0zLjEtMS40LTQuNy0uMi0xLjctMS42LTcuMS0zLjEtMTEuOS0zLjMtMTAuOS0zLjUtMTYuMi0xLTIxIC44LTEuNCAxLjQtMyAxLjctNC42IDAtMi40LTIuMi01LjMtNy40LTkuOS03LTYuMi04LjYtNy45LTEwLjItMTEuMy0xLjctMy42LTMuMS00LjEtNC41LTEuNS0xLjggMy0yLjYgOS4xLTMgMjJsLS4zIDEyLjIgMiAyLjJjMy4yIDMuNyAxMi4xIDE2LjUgMTMuOCAxOS44IDMuNCA2LjcgNC4zIDExLjcgNC40IDIzLjZzMSAyMi44IDIgMjQuN2MuNCAuNyAuNSAxLjQgLjMgMS41cy40IDIuMSAxLjMgNC4zYzEgMi45IDEuNyA1LjkgMi4xIDkgLjQgMy41IC45IDcgMS43IDEwLjQgMi4yIDkuNiAyLjggMTQuMSAyLjQgMjAuMS0uMiAzLjMtLjUgMTEuMS0uNyAxNy4zLTEuMyA0MS44LTEuOCA1OC0yIDYxLjItLjEgMi0uNCAxMS41LS42IDIxLjEtLjQgMTYuMy0xLjMgMjcuNC0yLjQgMjguNi0uNiAuNy04LjEtNC45LTEyLjUtOS41LTMuOC0zLjktNC00LjgtMi44LTkuOSAuNy0zIDIuMy0xOC4zIDMuMy0zMi42IC40LTQuOCAuOC0xMC41IDEtMTIuNyAuOC05LjQgMS43LTIwLjMgMi42LTM0LjggLjYtOC41IDEuMy0xNi40IDEuNy0xNy43cy45LTkuOSAxLjEtMTkuMWwuNC0xNi44LTIuMy00LjNjLTEuNy0zLjMtNC45LTYuOS0xMy4yLTE1LjMtNi02LjEtMTEuOC0xMi4zLTEyLjktMTMuOGwtMi0yLjggLjgtMTAuOWMxLjEtMTUuNyAxLjEtNDguNiAwLTU5LjFsLS45LTguNy0zLjMtNC41Yy01LjktOC4xLTUuOC03LjctNi4yLTMzLjMtLjEtNi4xLS40LTExLjUtLjYtMTIuMS0uOC0xLjktMy0yLjctOC41LTMtOC45LS42LTExLTEuOS0yMy44LTE0LjYtNi4yLTYtMTIuMy0xMi0xMy44LTEzLjItMi44LTIuNC0yLjgtMi0uNi05LjZsMS40LTQuNi0xLjctM2MtLjgtMS40LTEuNi0yLjgtMi42LTQuMS0xLjMtMS41LTUuNS0xMC45LTYtMTMuNS0uMi0uNy0uMi0xLjQtLjEtMi4xcy41LTEuMyAuOS0xLjhjMi4yLTIuOSAzLjQtNS43IDQuNS0xMC43IDIuMy0xMS4yIDcuNy0yNi4xIDEwLjYtMjkuMiAzLjItMy41IDcuNy0xIDkuNCA1IDEuMyA0LjggMS40IDkuOCAuMSAxOC42LS41IDMuNy0uOSA3LjQtMSAxMS4xIDAgNCAuMiA0LjcgMi4zIDcuNCAzLjMgNC40IDcuNyA3LjQgMTUuMiAxMC41IDEuNyAuNyAzLjMgMS43IDQuNyAyLjggMTEuMiAxMC43IDE4LjYgMTYuMiAyMi45IDE2LjkgNS4yIC44IDggNC41IDEwIDEzLjQgMS4zIDUuNyA0IDExLjEgNS41IDExLjEgMS4yLS4yIDIuMy0uNyAzLjMtMS40IDItMS4yIDIuMi0xLjcgMi4yLTQuMi0uMy02LS45LTExLjktMi0xNy44LS40LTEuNy0uOC00LjEtLjktNS40cy0uNi0zLjgtMS01LjdjLTIuNi0xMS4yLTMuNi0xNS41LTQuMS0xNi0xLjYtMi00LjEtMTAuMi00LjktMTUuOS0xLjYtMTEuMS00LTE0LjItMTIuOS0xNy40LTQuOS0xLjgtOS40LTQuNS0xMy4zLTcuOS0xLjItMS00LTMuMi02LjQtNS4xcy00LjQtMy41LTQuNi0zLjhjLS44LS43LTEuNy0xLjQtMi43LTItNi4yLTQuMi04LjgtNy0xMS4zLTEybC0yLjQtNWMtLjEtOC43LS4zLTE3LjMtLjQtMjZsNi45LTYuNmM0LTMuOCA4LjUtNy40IDEwLjYtOC40IDMuMy0xLjcgNC40LTEuOSAxMS40LTIgOC41LS4yIDEwLjEgMCAxMS43IDEuNnMxLjQgNi40LS4zIDguNWMtLjYgLjctMS4xIDEuNS0xLjMgMi4zIDAgLjYtMi42IDQuOS01LjQgOS0xLjEgMi4yLTEuOSA0LjUtMi40IDYuOCAyMC40IDEzLjQgMjEuNiAzLjggMTQuMSAyOWwxMS40IDIuNWMzLjEtOC43IDYuNS0xNy4zIDguNi0yNi4yIC4zLTcuNi0xMi00LjItMTUuNC04LjctMi4zLTUuOSAzLjEtMTQuMiA2LjEtMTkuMiAxLjYtMi4zIDYuNi00LjcgOC44LTQuMSAuOSAuMiA0LjItLjQgNy40LTEuMyAyLjUtLjggNS0xLjMgNy41LTEuNyAyLS4yIDQuMS0uNyA2LTEuMyAzLjctMS4xIDQuNS0xLjIgNi4zLS40IDEuOSAuNiAzLjggMS4xIDUuOCAxLjQgMi4xIC4zIDQuMSAuOSA2IDEuOSAxLjYgLjkgMy4zIDEuNyA1IDIuMiAyLjUgLjcgMyAuNiA3LTEuN0wyMjYgNS40IDIzNi43IDVjMTAuNC0uNCAxMC44LS41IDE1LjMtMi43TDI1Ni41IDAgMjU5IDEuNGMxLjggMSAzLjEgMi43IDQuOSA2IDIuNCA0LjUgMi40IDQuNiAxLjQgNy40LS45IDIuNC0uOSAzLjMtLjEgNi40IC41IDIgMS4yIDQgMi4xIDUuOSAuNiAxLjMgMS4xIDIuNiAxLjMgNCAuMyA0LjMgMCA1LjMtMi40IDYuOS0yLjIgMS41LTcgNy45LTcgOS4zLS4yIDEtLjYgMi0xLjEgMy01IDExLjUtNi44IDEzLjYtMTQuMyAxNy05LjIgNC4yLTEyLjMgNS4yLTE2LjIgNS4yLTMuMSAwLTQgLjItNC41IDEuMy0xLjIgMS40LTIuNSAyLjctNC4xIDMuNy0xLjggMS4yLTMuMyAyLjktNC40IDQuOC0uNSAxLjItMS40IDIuMi0yLjUgMi45LS45IC40LTEuOCAxLTIuNSAxLjctMi4yIDEuOS00LjYgMy43LTcgNS40LTMuMyAyLjMtNi45IDUtNy45IDYtLjcgLjctMS41IDEuMy0yLjQgMS43LS44IC40LTEuNiAuOS0yLjEgMS42LTEuMyAxLjQtMS41IDIuMS0xLjEgNC42IC4zIDIgLjggNCAxLjQgNS45IDEuMyAzLjggMS4zIDcuOSAwIDEwLjZzLS45IDYuNyAxLjQgOS42YzIgMi42IDIuMiA0LjYgLjcgOC44LS44IDIuOS0xLjEgNS45LTEuMSA4LjkgMCA0LjkgLjIgNi4zIDEuNSA4LjRzMS44IDIuNSAzLjIgMi4zYzItLjIgMi4zLTEuMSA0LjctMTIuMSAyLjItMTAgMy43LTExLjkgMTMuOC0xNy4xIDIuOS0xLjUgNy41LTQgMTAtNS40czYuOC0zLjcgOS40LTQuOWM1LjktMi42IDExLjItNi42IDE1LjItMTEuNyA3LjEtOC44IDEwLTE2LjIgMTIuOC0zMy4zIC40LTIuOCAxLjMtNS40IDIuOS03LjcgMS40LTIuMiAyLjQtNC43IDIuOS03LjMgMS01LjMgMi45LTkuMSA1LjYtMTEuNSA0LjctNC4yIDYtMS4xIDQuNiAxMC45LS41IDMuOS0xLjEgMTAuMy0xLjQgMTQuNGwtLjYgNy40YzMgMi43IDUuOSA1LjUgOC45IDguMmwuMSA4LjRjLjEgNC42IC41IDkuNSAuOSAxMC45bC44IDIuNS02LjQgNi4zYy04LjUgOC4zLTEyLjkgMTMuOS0xNi44IDIxLjYtMS44IDMuNS0zLjcgNy4xLTQuNCA4LTIuMiAzLjEtNi41IDEzLTguOCAyMC4zbC0yLjMgNy4yLTcgNi41Yy0zLjggMy42LTggNy4yLTkuMiA4LjItMyAyLjMtNC4zIDUuMS00LjMgMTAtLjEgMi41IC40IDUgMS42IDcuMyAuOCAxLjYgMS41IDMuMiAyLjEgNC44IC4zIDEgLjkgMiAxLjYgMi45IDEuNCAxLjYgMS45IDE2LjEgLjggMjMuMi0uNyA0LjUtMy42IDEyLTQuNyAxMi0xLjggMC00LjEgOS4zLTUuMSAyMC43LS4yIDItLjYgNS45LTEgOC43cy0xIDEwLTEuNCAxNmMtLjggMTIuMi0uMiAxOC44IDIgMjMuMiAzLjQgNi43IC41IDEyLjctMTEgMjIuOGwtNCAzLjUgLjEgNS4yYy4xIDMgLjQgNiAxLjEgOC45IDQuNiAxNiA0LjcgMTYuOSA0LjQgMzcuMS0uNSAyNi40LS4zIDQwLjMgLjYgNDQuMiAuNSAyLjMgLjkgNC42IDEuMSA3IC4yIDIgLjcgNS4zIDEuMSA3LjQgLjUgMi4zIC44IDExIC44IDIyLjdsMCAxOS4xLTEuOCAyLjZjLTIuNyAzLjktMTUuMSAxMy41LTE1LjUgMTIuM2wuMSAwem0yOS41LTQ1LjFjLS4yLS4zLS4zLTYuOS0uMy0xNC42IDAtMTQuMS0uOS0yNy41LTIuMy0zNC40LS40LTItLjgtOS43LS45LTE3LjEtLjItMTEuOS0xLjQtMjQuNC0yLjYtMjYuNC0uNy0xLjEtMy0xNy43LTMtMjEuMyAwLTQuMiAxLTYgNS4zLTkuMXM0LjktMy4xIDUuNS0uN2MuMyAxLjEgMS40IDUuNiAyLjYgMTAgMy45IDE1LjEgNC4xIDE2LjMgNCAyMS43LS4xIDUuOC0uMSA2LjEtMS43IDE3LjctMSA3LjEtMS4yIDEyLjQtMSAyOC40IC4yIDE5LjQtLjYgMzUuNy0yIDQxLjMtLjcgMi44LTIuOCA1LjUtMy40IDQuNGwtLjEgMHptLTcxLTM3LjZjLS44LTMuNi0xLjMtNy4yLTEuNy0xMC44cy0xLTcuMi0xLjctMTAuOGMtLjUtMi4xLS45LTQuMy0xLTYuNS0uMy0zLjItLjktNy41LTEuMy05LjUtMS00LjgtMy4zLTE5LjQtMy40LTIxLjEgMC0uNy0uMy00LS43LTcuNC0uNy02LjItLjgtMjcuNy0uMi0yOC4zIDEtMSA2LjYgMi44IDExLjMgNy40bDUuMyA1LjMtLjQgNi41Yy0uMiAzLjYtLjYgMTAuMi0uOCAxNC44LS41IDEzLjMtLjcgOC43LTEuNiAyOC40LS44IDE3LjQtMS45IDMxLjMtMi42IDMyLS4xIC4xLS4yIC4xLS4yIC4ycy0uMiAwLS4zIDAtLjIgMC0uMy0uMS0uMS0uMS0uMi0uMmwwIDB6TTcyIDE2Mi42YzIxLjEgMTIuOCAxNy44IDE0LjIgMjguNSAxNy43IDEzIDQuMyAxOC45IDcuMSAyMy4yIDE2LjktNDMuNyAzNi4xLTY5IDU3LjktNzYuNyA3MC45LTMxIDUyLTYgMTAxLjYgNjIuOCA4Ny4yLTE0LjIgMjkuMi03OCAyOC42LTk4LjctNC45LTI0LjctNDAtMjIuMS0xMTguMyA2MS0xODcuN2wwIDB6bTIxMC44IDE3OWM1Ni43IDYuOSA4Mi4zLTM3LjcgNDYuNS04OS4yIDAgMC0yNi45LTI5LjMtNjQuMy02OCAzLTE1LjUgOS41LTMyLjEgMzAuNi01My44IDg5LjIgNjMuNSA5MiAxNDEuNiA5Mi41IDE0OS40IDQuMyA3MC42LTc4LjcgOTEuMi0xMDUuMyA2MS43bDAgMHoiXX0sWkVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNsYWNrIixpY29uOls0NDgsNTEyLFs2MjQ0Nywic2xhY2staGFzaCJdLCJmMTk4IiwiTTk0LjEgMzE1LjFjMCAyNS45LTIxLjIgNDcuMS00Ny4xIDQ3LjFTMCAzNDEgMCAzMTUuMSAyMS4yIDI2OCA0Ny4xIDI2OGw0Ny4xIDAgMCA0Ny4xem0yMy43IDBjMC0yNS45IDIxLjItNDcuMSA0Ny4xLTQ3LjFTMjEyIDI4OS4yIDIxMiAzMTUuMWwwIDExNy44YzAgMjUuOS0yMS4yIDQ3LjEtNDcuMSA0Ny4xcy00Ny4xLTIxLjItNDcuMS00Ny4xbDAtMTE3Ljh6bTQ3LjEtMTg5Yy0yNS45IDAtNDcuMS0yMS4yLTQ3LjEtNDcuMVMxMzkgMzIgMTY0LjkgMzIgMjEyIDUzLjIgMjEyIDc5LjFsMCA0Ny4xLTQ3LjEgMHptMCAyMy43YzI1LjkgMCA0Ny4xIDIxLjIgNDcuMSA0Ny4xUzE5MC44IDI0NCAxNjQuOSAyNDRMNDcuMSAyNDRDMjEuMiAyNDQgMCAyMjIuOCAwIDE5Ni45czIxLjItNDcuMSA0Ny4xLTQ3LjFsMTE3LjggMHptMTg5IDQ3LjFjMC0yNS45IDIxLjItNDcuMSA0Ny4xLTQ3LjFTNDQ4IDE3MSA0NDggMTk2LjkgNDI2LjggMjQ0IDQwMC45IDI0NGwtNDcuMSAwIDAtNDcuMXptLTIzLjcgMGMwIDI1LjktMjEuMiA0Ny4xLTQ3LjEgNDcuMVMyMzYgMjIyLjggMjM2IDE5Ni45bDAtMTE3LjhDMjM2IDUzLjIgMjU3LjIgMzIgMjgzLjEgMzJzNDcuMSAyMS4yIDQ3LjEgNDcuMWwwIDExNy44em0tNDcuMSAxODljMjUuOSAwIDQ3LjEgMjEuMiA0Ny4xIDQ3LjFTMzA5IDQ4MCAyODMuMSA0ODAgMjM2IDQ1OC44IDIzNiA0MzIuOWwwLTQ3LjEgNDcuMSAwem0wLTIzLjdjLTI1LjkgMC00Ny4xLTIxLjItNDcuMS00Ny4xUzI1Ny4yIDI2OCAyODMuMSAyNjhsMTE3LjggMGMyNS45IDAgNDcuMSAyMS4yIDQ3LjEgNDcuMXMtMjEuMiA0Ny4xLTQ3LjEgNDcuMWwtMTE3LjggMHoiXX0sWDNlPVpFZSxGZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5nZWxsaXN0IixpY29uOlszODQsNTEyLFtdLCJmMjA5IiwiTTMxNS42IDIxNS40YzExLjctMzIuNiA0NS40LTEyNi45IDQ1LjQtMTU3LjEgMC0yNi42LTE1LjctNDguOS00My43LTQ4LjktNDQuNiAwLTg0LjYgMTMxLjctOTcuMSAxNjMuMS05LjctMjguNS01NS4xLTE3Mi41LTk1LjEtMTcyLjUtMzEuMSAwLTQ1LjcgMjIuOS00NS43IDUxLjcgMCAzNS4zIDM0LjIgMTI2LjggNDYuNiAxNjItNi4zLTIuMy0xMy4xLTQuMy0yMC00LjMtMjMuNCAwLTQ4LjMgMjkuMS00OC4zIDUyLjYgMCA4LjkgNC45IDIxLjQgOCAyOS43LTM2LjkgMTAtNTEuMSAzNC42LTUxLjEgNzEuNy0uMSA3Mi4yIDY4LjMgMTQ4LjYgMTY0LjUgMTQ4LjYgMTE4IDAgMTkxLjQtODguNiAxOTEuNC0yMDIuOSAwLTQzLjEtNi45LTgyLTU0LjktOTMuN3pNMjgwLjIgMTA4YzQtMTIuMyAyMS4xLTY0LjMgMzcuMS02NC4zIDguNiAwIDEwLjkgOC45IDEwLjkgMTYgMCAxOS4xLTM4LjYgMTI0LjYtNDcuMSAxNDhsLTM0LTYgMzMuMS05My43ek0xMTAuOCA0OC4zYzAtMTEuOSAxNC41LTQ1LjcgNDYuMyA0Ny4xbDM0LjYgMTAwLjNjLTE1LjYtMS4zLTI3LjctMy0zNS40IDEuNC0xMC45LTI4LjgtNDUuNS0xMTkuNy00NS41LTE0OC44ek0xMDguNSAyNDRjMjkuMyAwIDY3LjEgOTQuNiA2Ny4xIDEwNy40IDAgNS4xLTQuOSAxMS40LTEwLjYgMTEuNC0yMC45IDAtNzYuOS03Ni45LTc2LjktOTcuNyAuMS03LjcgMTIuNy0yMS4xIDIwLjQtMjEuMXpNMjkyLjggNDMwLjNjLTI5LjEgMzItNjYuMyA0OC42LTEwOS43IDQ4LjYtNTkuNCAwLTEwNi4zLTMyLjYtMTI4LjktODguMy0xNy4xLTQzLjQgMy44LTY4LjMgMjAuNi02OC4zIDExLjQgMCA1NC4zIDYwLjMgNTQuMyA3My4xIDAgNC45LTcuNyA4LjMtMTEuNyA4LjMtMTYuMSAwLTIyLjQtMTUuNS01MS4xLTUxLjQtMjkuNyAyOS43IDIwLjUgODYuOSA1OC4zIDg2LjkgMjYuMSAwIDQzLjEtMjQuMiAzOC00MiAzLjcgMCA4LjMgLjMgMTEuNy0uNiAxLjEgMjcuMSA5LjEgNTkuNCA0MS43IDYxLjcgMC0uOSAyLTcuMSAyLTcuNCAwLTE3LjQtMTAuNi0zMi42LTEwLjYtNTAuMyAwLTI4LjMgMjEuNy01NS43IDQzLjctNzEuNyA4LTYgMTcuNy05LjcgMjcuMS0xMy4xIDkuNy0zLjcgMjAtOCAyNy40LTE1LjQtMS4xLTExLjItNS43LTIxLjEtMTYuOS0yMS4xLTI3LjcgMC0xMjAuNiA0LTEyMC42LTM5LjcgMC02LjcgLjEtMTMuMSAxNy40LTEzLjEgMzIuMyAwIDExNC4zIDggMTM4LjMgMjkuMSAxOC4xIDE2LjEgMjQuMyAxMTMuMi0zMSAxNzQuN3ptLTk4LjYtMTI2YzkuNyAzLjEgMTkuNyA0IDI5LjcgNi03LjQgNS40LTE0IDEyLTIwLjMgMTkuMS0yLjgtOC41LTYuMi0xNi44LTkuNC0yNS4xeiJdfSxCZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5kcm9pZCIsaWNvbjpbNTc2LDUxMixbXSwiZjE3YiIsIk00MjAuNSAyNTMuOWEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS0yNjUuMSAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMjczLjctOTYuNWw0Ny45LTgzYy44LTEuMSAxLjMtMi40IDEuNS0zLjhzLjItMi43LS4xLTQuMS0uOS0yLjYtMS43LTMuNy0xLjgtMi0zLTIuNy0yLjUtMS4xLTMuOS0xLjMtMi43IDAtNCAuNC0yLjUgMS4xLTMuNiAxLjktMS45IDItMi41IDMuMmwtNDguNSA4NC4xYy0zOC44LTE3LjQtODAuOC0yNi40LTEyMy4zLTI2LjRzLTg0LjUgOS0xMjMuMyAyNi40TDExNi4yIDY0LjRjLS42LTEuMi0xLjUtMi4zLTIuNS0zLjJzLTIuMy0xLjUtMy42LTEuOS0yLjctLjUtNC0uNC0yLjcgLjYtMy45IDEuMy0yLjIgMS42LTMgMi43LTEuNCAyLjQtMS43IDMuNy0uMyAyLjctLjEgNC4xIC44IDIuNiAxLjUgMy44bDQ3LjkgODNDNjQuNSAyMDIuMiA4LjIgMjg1LjUgMCAzODRsNTc2IDBjLTguMi05OC41LTY0LjUtMTgxLjgtMTQ2LjktMjI2LjZ6Il19LEhmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWV0dXAiLGljb246WzU3Niw1MTIsW10sImYyZTAiLCJNMTMxLjEgNDE0LjNjMS4xIDUuNy0yLjMgMTEuMS04IDEyLjMtNS40IDEuMS0xMC45LTIuMy0xMi04LTEuMS01LjQgMi4zLTExLjEgNy43LTEyLjNzMTEuMSAyLjMgMTIuMyA4em0xNDMuMSA3MS40Yy02LjMgNC42LTggMTMuNC0zLjcgMjAgNC42IDYuNiAxMy40IDguMyAyMCAzLjcgNi4zLTQuNiA4LTEzLjQgMy40LTIwLTQuMi02LjUtMTMuMS04LjMtMTkuNy0zLjd6bS04Ni00NjIuM2ExMS44IDExLjggMCAxIDAgLTQuOS0yMyAxMS44IDExLjggMCAxIDAgNC45IDIzek02Ni41IDIyNi4zYTIyLjIgMjIuMiAwIDEgMCAtMjQuNyAzNi45IDIyLjIgMjIuMiAwIDEgMCAyNC43LTM2Ljl6bTI3Mi0xNzAuOWEyMi4xIDIyLjEgMCAxIDAgLTIyLjQtMzggMjIuMSAyMi4xIDAgMSAwIDIyLjQgMzh6bS0xOTEuMSA1OGExNi45IDE2LjkgMCAxIDAgLTE4LjgtMjggMTYuOSAxNi45IDAgMSAwIDE4LjggMjh6bTM3Mi4zIDE1NmMtNy40IDEuNy0xMi4zIDkuMS0xMC42IDE2LjkgMS40IDcuNCA4LjkgMTIuMyAxNi4zIDEwLjYgNy40LTEuNCAxMi4zLTguOSAxMC42LTE2LjYtMS41LTcuNC04LjktMTIuMy0xNi4zLTEwLjl6bTM5LjctNTYuOGExMC4xIDEwLjEgMCAxIDAgLTE5LjggNC4zIDEwLjEgMTAuMSAwIDEgMCAxOS44LTQuM3ptLTgwLjMtNzMuN2ExOC44IDE4LjggMCAxIDAgMjAuNyAzMS4zIDE4LjggMTguOCAwIDEgMCAtMjAuNy0zMS4zem0tNi4zIDEzOS40YzI2LjMgNDMuMSAxNS4xIDEwMC0yNi4zIDEyOS4xLTE3LjQgMTIuMy0zNy4xIDE3LjctNTYuOSAxNy4xLTEyIDQ3LjEtNjkuNCA2NC42LTEwNS4xIDMyLjYtMS4xIC45LTIuNiAxLjctMy43IDIuOS0zOS4xIDI3LjEtOTIuMyAxNy40LTExOS40LTIyLjMtOS43LTE0LjMtMTQuNi0zMC42LTE1LjEtNDYuOS02NS40LTEwLjktOTAtOTQtNDEuMS0xMzkuNy0yOC4zLTQ2LjkgLjYtMTA3LjQgNTMuNC0xMTQuOSAyNS4xLTY2LjIgMTA3LjYtOTcuNiAxNjMuNi01NC4yIDY3LjQtMjIuMyAxMzYuMyAyOS40IDEzMC45IDEwMS4xIDQxLjEgMTIuNiA1Mi44IDY2LjkgMTkuNyA5NS4yem0tNzAgNzQuM2MtMy4xLTIwLjYtNDAuOS00LjYtNDMuMS0yNy4xLTMuMS0zMiA0My43LTEwMS4xIDQwLTEyOC0zLjQtMjQtMTkuNC0yOS4xLTMzLjQtMjkuNC0xMy40LS4zLTE2LjkgMi0yMS40IDQuNi0yLjkgMS43LTYuNiA0LjktMTEuNy0uMy02LjMtNi0xMS4xLTExLjctMTkuNC0xMi45LTEyLjMtMi0xNy43IDItMjYuNiA5LjctMy40IDIuOS0xMiAxMi45LTIwIDkuMS0zLjQtMS43LTE1LjQtNy43LTI0LTExLjQtMTYuMy03LjEtNDAgNC42LTQ4LjYgMjAtMTIuOSAyMi45LTM4IDExMy4xLTQxLjcgMTI1LjEtOC42IDI2LjYgMTAuOSA0OC42IDM2LjkgNDcuMSAxMS4xLS42IDE4LjMtNC42IDI1LjQtMTcuNCA0LTcuNCA0MS43LTEwNy43IDQ0LjYtMTEyLjYgMi0zLjQgOC45LTggMTQuNi01LjEgNS43IDMuMSA2LjkgOS40IDYgMTUuMS0xLjEgOS43LTI4IDcwLjktMjguOSA3Ny43LTMuNCAyMi45IDI2LjkgMjYuNiAzOC42IDQgMy43LTcuMSA0NS43LTkyLjYgNDkuNC05OC4zIDQuMy02LjMgNy40LTguMyAxMS43LTggMy4xIDAgOC4zIC45IDcuMSAxMC45LTEuNCA5LjQtMzUuMSA3Mi4zLTM4LjkgODcuNy00LjYgMjAuNiA2LjYgNDEuNCAyNC45IDUwLjYgMTEuNCA1LjcgNjIuNSAxNS43IDU4LjUtMTEuMXptNS43IDkyLjNhMjMuMyAyMy4zIDAgMSAwIDI2LjIgMzguNCAyMy4zIDIzLjMgMCAxIDAgLTI2LjItMzguNHoiXX0scWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvbnRpY29ucy1maSIsaWNvbjpbMzg0LDUxMixbXSwiZjNhMiIsIk0xMTQuNCAyMjRsOTIuNCAwLTE1LjIgNTEuMi03Ni40IDAgMCAxNTcuOGMwIDgtMi44IDkuMiA0LjQgMTBsNTkuNiA1LjYgMCAzNC40LTE3OS4yIDAgMC0zNS4yIDI5LjItMi44YzcuMi0uOCA5LjItMy4yIDkuMi0xMC44bDAtMTU1LjhjMC0zLjItNC0zLjItOC0zLjJsLTMwLjQgMCAwLTUxLjIgMzguNCAwIDAtMjguOGMwLTY4IDM2LjQtOTYgMTA2LTk2IDQ2LjggMCA4OC44IDExLjIgODguOCA3Mi40TDE2My42IDE4MGMuNC0yNS42LTYtMzEuNi0yMi40LTMxLjYtMjUuMiAwLTI2IDEzLjYtMjYgMzcuNmwwIDMyYzAgMy4yLTQuOCA2LS44IDZ6TTM4NCA0ODNsLTE0MC44IDAgMC0zNC40IDI4LTMuNmM3LjItLjggMTAuNC0yLjQgMTAuNC0xMGwwLTE0OGMwLTUuNi00LTkuMi05LjItMTAuOGwtMzMuMi04LjggOS4yLTQwLjQgMTEwIDAgMCAyMDhjMCA4LTMuNiA4LjggNCAxMGwyMS42IDMuNiAwIDM0LjR6TTM1NCAxMzUuOGwxMi40IDQ1LjYtMTAgMTAtNDIuOC0yMi44LTQyLjggMjIuOC0xMC0xMCAxMi40LTQ1LjYtMzAtMzYuNCA0LjgtMTAgMzggMCAyMS4yLTM4LjQgMTIuOCAwIDIxLjIgMzguNCAzOCAwIDQuOCAxMy4yLTMwIDMzLjJ6Il19LFZmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWxmZWQiLGljb246WzU3Niw1MTIsW10sImYzZDgiLCJNMzg0LjkgMTkzLjljMC00Ny40LTU1LjItNDQuMi05NS40LTI5LjgtMS4zIDM5LjQtMi41IDgwLjctMyAxMTkuOCAuNyAyLjggMi42IDYuMiAxNS4xIDYuMiAzNi44IDAgODMuNC00Mi44IDgzLjMtOTYuMnpNMTkwLjQgMjY2LjFjLjIgMCA2LjUtMi43IDExLjItMi43IDI2LjYgMCAyMC43IDQ0LjEtMTQuNCA0NC4xLTIxLjUgMC0zNy4xLTE4LjEtMzcuMS00MyAwLTQyIDQyLjktOTUuNiAxMDAuNy0xMjYuNSAxLTEyLjQgMy0yMiAxMC41LTI4LjIgMTEuMi05IDI2LjYtMy41IDI5LjUgMTEuMSA3Mi4yLTIyLjIgMTM1LjIgMSAxMzUuMiA3MiAwIDc3LjktNzkuMyAxNTIuNi0xNDAuMSAxMzguMi0uMSAzOS40IC45IDc0LjQgMi43IDEwMGwwIC4yYy4yIDMuNCAuNiAxMi41LTUuMyAxOS4xLTkuNiAxMC42LTMzLjQgMTAtMzYuNC0yMi4zLTQuMS00NC40IC4yLTIwNi4xIDEuNC0yNDIuNS0yMS41IDE1LTU4LjUgNTAuMy01OC41IDc1LjkgLjIgMi41IC40IDQgLjYgNC42ek04IDE4MS4xcy0uMSAzNy40IDM4LjQgMzcuNGwzMCAwIDIyLjQgMjE3LjJzMCA0NC4zIDQ0LjcgNDQuM2wyODguOSAwczQ0LjctLjQgNDQuNy00NC4zbDIyLjQtMjE3LjIgMzAgMHMzOC40IDEuMiAzOC40LTM3LjRjMCAwIC4xLTM3LjQtMzguNC0zNy40bC0zMC4xIDBjLTcuMy0yNS42LTMwLjItNzQuMy0xMTkuNC03NC4zbC0yOCAwIDAtMTkuMXMtMi43LTE4LjQtMjEuMS0xOC40bC04NS44IDBTMjI0IDMxLjkgMjI0IDUwLjNsMCAxOS4xLTI4LjEgMHMtMTA1IDQuMi0xMjAuNSA3NC4zbC0yOSAwUzggMTQyLjUgOCAxODEuMXoiXX0samZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndwYmVnaW5uZXIiLGljb246WzUxMiw1MTIsW10sImYyOTciLCJNNDYzLjIgMzIyLjRjNTYuMiA2NC4zIDQuMiAxNTcuNi05MS45IDE1Ny42LTM5LjYgMC03OC44LTE3LjctMTAwLjEtNTAtNi45IC40LTIyLjcgLjQtMjkuNiAwLTIxLjQgMzIuNC02MC42IDUwLTEwMC4xIDUwLTk1LjUgMC0xNDguMy05My05MS45LTE1Ny42LTc5LjEtMTMxLjkgMzEuMy0yOTAuNCAyMDYuOC0yOTAuNCAxNzUuNiAwIDI4NS45IDE1OC42IDIwNi44IDI5MC40em0tMzM5LjYtODNsNDEuNSAwIDAtNTguMS00MS41IDAgMCA1OC4xem0yMTcuMiA4Ni4xbDAtMjMuOGMtNjAuNSAyMC45LTEzMi40IDkuMi0xODcuNi0zNGwuMiAyNC45YzUxLjEgNDYuNCAxMzEuNyA1Ny45IDE4Ny4zIDMyLjl6TTE5MCAyMzkuNGwxNjYuMSAwIDAtNTguMS0xNjYuMSAwIDAgNTguMXoiXX0sVWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpYXNwb3JhIixpY29uOls0NDgsNTEyLFtdLCJmNzkxIiwiTTIxOS43IDM1NC42Yy0xLjQgMC04OCAxMTkuOS04OC43IDExOS45UzQ0LjQgNDE0IDQ0IDQxMy4zIDEzMC42IDI4Ny41IDEzMC42IDI4NS44YzAtMi4yLTEyOS42LTQ0LTEzNy42LTQ3LjEtMS4zLS41IDMxLjQtMTAxLjggMzEuNy0xMDIuMSAuNi0uNyAxNDQuNCA0NyAxNDUuNSA0NyAuNCAwIC45LS42IDEtMS4zIC40LTIgMS0xNDguNiAxLjctMTQ5LjYgLjgtMS4yIDEwNC41LS43IDEwNS4xLS4zIDEuNSAxIDMuNSAxNTYuMSA2LjEgMTU2LjEgMS40IDAgMTM4LjctNDcgMTM5LjMtNDYuMyAuOCAuOSAzMS45IDEwMi4yIDMxLjUgMTAyLjYtLjkgLjktMTQwLjIgNDcuMS0xNDAuNiA0OC44LS4zIDEuNCA4Mi44IDEyMi4xIDgyLjUgMTIyLjlzLTg1LjUgNjMuNS04Ni4zIDYzLjVjLTEtLjItODktMTI1LjUtOTAuOS0xMjUuNWwwIDB6Il19LFdmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwcm9kdWN0LWh1bnQiLGljb246WzUxMiw1MTIsW10sImYyODgiLCJNMzI2LjMgMjE4LjhjMCAyMC41LTE2LjcgMzcuMi0zNy4yIDM3LjJsLTcwLjMgMCAwLTc0LjQgNzAuMyAwYzIwLjUgMCAzNy4yIDE2LjcgMzcuMiAzNy4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zNjcuOS0zNy4yYzAtNDcuOS0zOC45LTg2LjgtODYuOC04Ni44bC0xMTkuOSAwIDAgMjQ4IDQ5LjYgMCAwLTc0LjQgNzAuMyAwYzQ3LjkgMCA4Ni44LTM4LjkgODYuOC04Ni44eiJdfSxHZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXVwd29yayIsaWNvbjpbNDQ4LDUxMixbXSwiZTY3YyIsIk01NiAzMmwzMzYgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJ6TTI3MC45IDI3NC4yYzYuNi01Mi45IDI1LjktNjkuNSA1MS40LTY5LjUgMjUuMyAwIDQ0LjkgMjAuMiA0NC45IDQ5LjdzLTE5LjcgNDkuNy00NC45IDQ5LjdjLTI3LjkgMC00Ni4zLTIxLjUtNTEuNC0yOS45em0tMjYuNy00MS44Yy04LjItMTUuNS0xNC4zLTM2LjMtMTkuMi01NS42bC02Mi45IDAgMCA3OC4xYzAgMjguNC0xMi45IDQ5LjQtMzguMiA0OS40Uzg0LjEgMjgzLjQgODQuMSAyNTVsLjMtNzguMS0zNi4yIDAgMCA3OC4xYzAgMjIuOCA3LjQgNDMuNSAyMC45IDU4LjIgMTMuOSAxNS4yIDMyLjggMjMuMiA1NC44IDIzLjIgNDMuNyAwIDc0LjItMzMuNSA3NC4yLTgxLjVsMC01Mi41YzQuNiAxNy4zIDE1LjQgNTAuNSAzNi4yIDc5LjdsLTE5LjMgMTEwLjUgMzYuOCAwIDEyLjgtNzguNGM0LjIgMy41IDguNyA2LjYgMTMuNCA5LjQgMTIuMyA3LjggMjYuNCAxMi4yIDQwLjkgMTIuNmwzLjQgMGM0NS4xIDAgODAuOS0zNC45IDgwLjktODEuOXMtMzUuOS04Mi4yLTgwLjktODIuMmMtNDUuNCAwLTcwLjkgMjkuNy03OC4xIDYwLjFsMCAuMnoiXX0sWWZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImN1dHRsZWZpc2giLGljb246WzQ0OCw1MTIsW10sImYzOGMiLCJNMzQ4IDMwNS41Yy0xNy41IDMxLjYtNTcuNCA1NC41LTk2IDU0LjUtNTYuNiAwLTEwNC00Ny40LTEwNC0xMDRzNDcuNC0xMDQgMTA0LTEwNGMzOC42IDAgNzguNSAyMi45IDk2IDU0LjUgMTMuNy01MC45IDQxLjctOTMuMyA4Ny0xMTcuOC00NS4zLTQ5LjYtMTEwLjUtODAuNy0xODMtODAuNy0xMzcgMC0yNDggMTExLTI0OCAyNDhTMTE1IDUwNCAyNTIgNTA0YzcyLjUgMCAxMzcuNy0zMS4xIDE4My04MC43LTQ1LjMtMjQuNS03My4zLTY2LjktODctMTE3Ljh6Il19LEtmcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWRhcHBzIixpY29uOlszMjAsNTEyLFtdLCJmM2M2IiwiTTExOC4zIDIzOC40YzMuNS0xMi41IDYuOS0zMy42IDEzLjItMzMuNiA4LjMgMS44IDkuNiAyMy40IDE4LjYgMzYuNiA0LjYtMjMuNSA1LjMtODUuMSAxNC4xLTg2LjcgOS0uNyAxOS43IDY2LjUgMjIgNzcuNSA5LjkgNC4xIDQ4LjkgNi42IDQ4LjkgNi42IDEuOSA3LjMtMjQgNy42LTQwIDcuOC00LjYgMTQuOC01LjQgMjcuNy0xMS40IDI4LTQuNyAuMi04LjItMjguOC0xNy41LTQ5LjZsLTkuNCA2NS41Yy00LjQgMTMtMTUuNS0yMi41LTIxLjktMzkuMy0zLjMtLjEtNjIuNC0xLjYtNDcuNi03LjhsMzEtNXpNMjI4IDQ0OGMyMS4yIDAgMjEuMi0zMiAwLTMyTDkyIDQxNmMtMjEuMiAwLTIxLjIgMzIgMCAzMmwxMzYgMHptLTI0IDY0YzIxLjIgMCAyMS4yLTMyIDAtMzJsLTg4IDBjLTIxLjIgMC0yMS4yIDMyIDAgMzJsODggMHptMzQuMi0xNDEuNWMzLjItMTguOSA1LjItMzYuNCAxMS45LTQ4LjggNy45LTE0LjcgMTYuMS0yOC4xIDI0LTQxIDI0LjYtNDAuNCA0NS45LTc1LjIgNDUuOS0xMjUuNSAwLTg1LjYtNzEuOC0xNTUuMi0xNjAtMTU1LjJTMCA2OS42IDAgMTU1LjJjMCA1MC4yIDIxLjMgODUuMSA0NS45IDEyNS41IDcuOSAxMi45IDE2IDI2LjMgMjQgNDEgNi43IDEyLjUgOC43IDI5LjggMTEuOSA0OC45IDMuNSAyMSAzNi4xIDE1LjcgMzIuNi01LjEtMy42LTIxLjctNS42LTQwLjctMTUuMy01OC42LTMyLjYtNjAuNC02Ni4xLTk1LjYtNjYuMS0xNTEuNyAwLTY3LjkgNTctMTIzLjIgMTI3LTEyMy4yUzI4NyA4Ny4zIDI4NyAxNTUuMmMwIDU2LjEtMzMuNSA5MS4zLTY2LjEgMTUxLjYtOS43IDE4LTExLjcgMzcuNC0xNS4zIDU4LjYtMy40IDIwLjYgMjkgMjYuNCAzMi42IDUuMXoiXX0sWmZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpeCIsaWNvbjpbNTEyLDUxMixbXSwiZTQzYSIsIk0yNDIuNCAyOTIuNWM1LjQtNS40IDE0LjctNS40IDIwLjEgMGw3NyA3N2MxNC4yIDE0LjIgMzMuMSAyMiA1My4xIDIybDE1LjEgMC05Ny4xIDk3LjFjLTMwLjMgMjkuNS03OS41IDI5LjUtMTA5LjggMGwtOTcuNS05Ny40IDkuMyAwYzIwIDAgMzguOS03LjggNTMuMS0yMmw3Ni43LTc2Ljd6bTIwLjEtNzMuNmMtNi40IDUuNS0xNC42IDUuNi0yMC4xIDBsLTc2LjctNzYuN2MtMTQuMi0xNS4xLTMzLjEtMjItNTMuMS0yMmwtOS4zIDAgOTcuNC05Ny40YzMwLjQtMzAuMyA3OS42LTMwLjMgMTA5LjkgMGw5Ny4yIDk3LjEtMTUuMiAwYy0yMCAwLTM4LjkgNy44LTUzLjEgMjJsLTc3IDc3ek0xMTIuNiAxNDIuN2MxMy44IDAgMjYuNSA1LjYgMzcuMSAxNS40bDc2LjcgNzYuN2M3LjIgNi4zIDE2LjYgMTAuOCAyNi4xIDEwLjggOS40IDAgMTguOC00LjUgMjYtMTAuOGw3Ny03N2M5LjgtOS43IDIzLjMtMTUuMyAzNy4xLTE1LjNsMzcuNyAwIDU4LjMgNTguM2MzMC4zIDMwLjMgMzAuMyA3OS41IDAgMTA5LjhsLTU4LjMgNTguMy0zNy43IDBjLTEzLjggMC0yNy4zLTUuNi0zNy4xLTE1LjRsLTc3LTc3Yy0xMy45LTEzLjktMzguMi0xMy45LTUyLjEgLjFsLTc2LjcgNzYuNmMtMTAuNiA5LjgtMjMuMyAxNS40LTM3LjEgMTUuNGwtMzEuOCAwLTU4LTU4Yy0zMC4zLTMwLjMtMzAuMy03OS41IDAtMTA5LjhsNTgtNTguMSAzMS44IDB6Il19LFFFZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdHVtYmxyIixpY29uOls0NDgsNTEyLFsidHVtYmxyLXNxdWFyZSJdLCJmMTc0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYuOCA0MTZjLTc1LjUgMC05MS45LTU1LjUtOTEuOS04Ny45bDAtOTAtMjkuNyAwYy0zLjQgMC02LjItMi44LTYuMi02LjJsMC00Mi41YzAtNC41IDIuOC04LjUgNy4xLTEwIDM4LjgtMTMuNyA1MC45LTQ3LjUgNTIuNy03My4yIC41LTYuOSA0LjEtMTAuMiAxMC0xMC4ybDQ0LjMgMGMzLjQgMCA2LjIgMi44IDYuMiA2LjJsMCA3MiA1MS45IDBjMy40IDAgNi4yIDIuOCA2LjIgNi4ybDAgNTEuMWMwIDMuNC0yLjggNi4yLTYuMiA2LjJsLTUyLjEgMCAwIDgzLjNjMCAyMS40IDE0LjggMzMuNSA0Mi41IDIyLjQgMy0xLjIgNS42LTIgOC0xLjQgMi4yIC41IDMuNiAyLjEgNC42IDQuOUwzMTggMzg3LjFjMSAzLjIgMiA2LjctLjMgOS4xLTguNSA5LjEtMzEuMiAxOS44LTYwLjkgMTkuOHoiXX0sUWZyPVFFZSxYZnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVhY3QiLGljb246WzUxMiw1MTIsW10sImY0MWIiLCJNNDE4LjIgMTc3LjJjLTUuNC0xLjgtMTAuOC0zLjUtMTYuMi01LjEgLjktMy43IDEuNy03LjQgMi41LTExLjEgMTIuMy01OS42IDQuMi0xMDcuNS0yMy4xLTEyMy4zLTI2LjMtMTUuMS02OS4yIC42LTExMi42IDM4LjQtNC4zIDMuNy04LjUgNy42LTEyLjUgMTEuNS0yLjctMi42LTUuNS01LjItOC4zLTcuNy00NS41LTQwLjQtOTEuMS01Ny40LTExOC40LTQxLjUtMjYuMiAxNS4yLTM0IDYwLjMtMjMgMTE2LjcgMS4xIDUuNiAyLjMgMTEuMSAzLjcgMTYuNy02LjQgMS44LTEyLjcgMy44LTE4LjYgNS45LTUzLjQgMTguNS05MS43IDQ3LjctOTEuNyA3Ny45IDAgMzEuMiA0MC44IDYyLjUgOTYuMyA4MS41IDQuNSAxLjUgOSAzIDEzLjYgNC4zLTEuNSA2LTIuOCAxMS45LTQgMTgtMTAuNSA1NS41LTIuMyA5OS41IDIzLjkgMTE0LjYgMjcgMTUuNiA3Mi40LS40IDExNi42LTM5LjEgMy41LTMuMSA3LTYuMyAxMC41LTkuNyA0LjQgNC4zIDkgOC40IDEzLjYgMTIuNCA0Mi44IDM2LjggODUuMSA1MS43IDExMS4yIDM2LjYgMjctMTUuNiAzNS44LTYyLjkgMjQuNC0xMjAuNS0uOS00LjQtMS45LTguOS0zLTEzLjUgMy4yLS45IDYuMy0xLjkgOS40LTIuOSA1Ny43LTE5LjEgOTkuNS01MCA5OS41LTgxLjcgMC0zMC4zLTM5LjQtNTkuNy05My44LTc4LjR6TTI4Mi45IDkyLjNjMzcuMi0zMi40IDcxLjktNDUuMSA4Ny43LTM2IDE2LjkgOS43IDIzLjQgNDguOSAxMi44IDEwMC40LS43IDMuNC0xLjQgNi43LTIuMyAxMC0yMi4yLTUtNDQuNy04LjYtNjcuMy0xMC42LTEzLTE4LjYtMjcuMi0zNi40LTQyLjYtNTMuMSAzLjktMy43IDcuNy03LjIgMTEuNy0xMC43ek0xNjcuMiAzMDcuNWM1LjEgOC43IDEwLjMgMTcuNCAxNS44IDI1LjktMTUuNi0xLjctMzEuMS00LjItNDYuNC03LjUgNC40LTE0LjQgOS45LTI5LjMgMTYuMy00NC41IDQuNiA4LjggOS4zIDE3LjUgMTQuMyAyNi4xek0xMzYuOSAxODcuMmMxNC40LTMuMiAyOS43LTUuOCA0NS42LTcuOC01LjMgOC4zLTEwLjUgMTYuOC0xNS40IDI1LjQtNC45IDguNS05LjcgMTcuMi0xNC4yIDI2LTYuMy0xNC45LTExLjYtMjkuNS0xNi00My42em0yNy40IDY4LjljNi42LTEzLjggMTMuOC0yNy4zIDIxLjQtNDAuNnMxNS44LTI2LjIgMjQuNC0zOC45YzE1LTEuMSAzMC4zLTEuNyA0NS45LTEuN3MzMSAuNiA0NS45IDEuN2M4LjUgMTIuNiAxNi42IDI1LjUgMjQuMyAzOC43czE0LjkgMjYuNyAyMS43IDQwLjRjLTYuNyAxMy44LTEzLjkgMjcuNC0yMS42IDQwLjgtNy42IDEzLjMtMTUuNyAyNi4yLTI0LjIgMzktMTQuOSAxLjEtMzAuNCAxLjYtNDYuMSAxLjZzLTMwLjktLjUtNDUuNi0xLjRjLTguNy0xMi43LTE2LjktMjUuNy0yNC42LTM5cy0xNC44LTI2LjgtMjEuNS00MC42em0xODAuNiA1MS4yYzUuMS04LjggOS45LTE3LjcgMTQuNi0yNi43IDYuNCAxNC41IDEyIDI5LjIgMTYuOSA0NC4zLTE1LjUgMy41LTMxLjIgNi4yLTQ3IDggNS40LTguNCAxMC41LTE3IDE1LjUtMjUuNnptMTQuNC03Ni41Yy00LjctOC44LTkuNS0xNy42LTE0LjUtMjYuMi00LjktOC41LTEwLTE2LjktMTUuMy0yNS4yIDE2LjEgMiAzMS41IDQuNyA0NS45IDgtNC42IDE0LjgtMTAgMjkuMi0xNi4xIDQzLjR6TTI1Ni4yIDExOC4zYzEwLjUgMTEuNCAyMC40IDIzLjQgMjkuNiAzNS44LTE5LjgtLjktMzkuNy0uOS01OS41IDAgOS44LTEyLjkgMTkuOS0yNC45IDI5LjktMzUuOHpNMTQwLjIgNTdjMTYuOC05LjggNTQuMSA0LjIgOTMuNCAzOSAyLjUgMi4yIDUgNC42IDcuNiA3LTE1LjUgMTYuNy0yOS44IDM0LjUtNDIuOSA1My4xLTIyLjYgMi00NSA1LjUtNjcuMiAxMC40LTEuMy01LjEtMi40LTEwLjMtMy41LTE1LjUtOS40LTQ4LjQtMy4yLTg0LjkgMTIuNi05NHpNMTE1LjcgMzIwLjZjLTQuMi0xLjItOC4zLTIuNS0xMi40LTMuOS0yMS4zLTYuNy00NS41LTE3LjMtNjMtMzEuMi0xMC4xLTctMTYuOS0xNy44LTE4LjgtMjkuOSAwLTE4LjMgMzEuNi00MS43IDc3LjItNTcuNiA1LjctMiAxMS41LTMuOCAxNy4zLTUuNSA2LjggMjEuNyAxNSA0MyAyNC41IDYzLjYtOS42IDIwLjktMTcuOSA0Mi41LTI0LjggNjQuNXptMTE2LjYgOThjLTE2LjUgMTUuMS0zNS42IDI3LjEtNTYuNCAzNS4zLTExLjEgNS4zLTIzLjkgNS44LTM1LjMgMS4zLTE1LjktOS4yLTIyLjUtNDQuNS0xMy41LTkyIDEuMS01LjYgMi4zLTExLjIgMy43LTE2LjcgMjIuNCA0LjggNDUgOC4xIDY3LjkgOS44IDEzLjIgMTguNyAyNy43IDM2LjYgNDMuMiA1My40LTMuMiAzLjEtNi40IDYuMS05LjYgOC45em0yNC41LTI0LjNjLTEwLjItMTEtMjAuNC0yMy4yLTMwLjMtMzYuMyA5LjYgLjQgMTkuNSAuNiAyOS41IC42IDEwLjMgMCAyMC40LS4yIDMwLjQtLjctOS4yIDEyLjctMTkuMSAyNC44LTI5LjYgMzYuNHptMTMwLjcgMzBjLS45IDEyLjItNi45IDIzLjYtMTYuNSAzMS4zLTE1LjkgOS4yLTQ5LjgtMi44LTg2LjQtMzQuMi00LjItMy42LTguNC03LjUtMTIuNy0xMS41IDE1LjMtMTYuOSAyOS40LTM0LjggNDIuMi01My42IDIyLjktMS45IDQ1LjctNS40IDY4LjItMTAuNSAxIDQuMSAxLjkgOC4yIDIuNyAxMi4yIDQuOSAyMS42IDUuNyA0NC4xIDIuNSA2Ni4zem0xOC4yLTEwNy41Yy0yLjggLjktNS42IDEuOC04LjUgMi42LTctMjEuOC0xNS42LTQzLjEtMjUuNS02My44IDkuNi0yMC40IDE3LjctNDEuNCAyNC41LTYyLjkgNS4yIDEuNSAxMC4yIDMuMSAxNSA0LjcgNDYuNiAxNiA3OS4zIDM5LjggNzkuMyA1OCAwIDE5LjYtMzQuOSA0NC45LTg0LjggNjEuNHpNMjU2IDMwMS44YTQ1LjggNDUuOCAwIDEgMCAwLTkxLjYgNDUuOCA0NS44IDAgMSAwIDAgOTEuNnoiXX0sSmZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imh1Z2dpbmctZmFjZSIsaWNvbjpbNTc2LDUxMixbXSwiZTg2OSIsIk0yODYuOCA4LjJjMTMwIDAgMjM1LjQgMTA1LjggMjM1LjQgMjM2LjMgMCAxNy43LTEuOSAzNS01LjYgNTEuNy0xLjQgNi41LTMuMSAxMi44LTUuMSAxOS4xIDYuNS0uNiAxMyAuNiAxOC43IDMuNSAxMi42IDYuNSAyMC4yIDIxLjcgMTguMiAzNS43LS43IDQuOS0yLjQgOS40LTQuOCAxMy41IDUuMiA0LjIgOSAxMC4xIDEwLjggMTcuMSAxLjQgNS41IDIuOSAxNy4xLTQuOCAyOC45IDUuOCA5LjIgNi42IDIwLjYgMi4yIDMwLjYtNi4yIDE0LjEtMjEuNyAyNS4zLTUxLjcgMzcuMy0zMi41IDEzLTY3LjEgMjEuOS0xMDIuMyAyMS45LTMyIDAtNTUuOS04LjktNzEtMjYuNC0xMyAyLjItMjYuMyAzLjQtNDAgMy40LTEyLjcgMC0yNS4yLTEtMzcuMy0yLjktMTUuMSAxNy4yLTM4LjggMjUuOS03MC42IDI1LjktMzUuMSAwLTcwLTktMTAyLjQtMjEuOS0zMC0xMi00NS41LTIzLjEtNTEuNy0zNy4zLTQuNC05LjktMy42LTIxLjQgMi4yLTMwLjYtNy43LTExLjktNi4zLTIzLjQtNC44LTI4LjkgMS44LTcgNS43LTEyLjkgMTAuOC0xNy4xLTIuNS00LjEtNC4xLTguNi00LjgtMTMuNS0xLjUtMTAuNCAyLTIwLjcgOS43LTI5LjIgNi4xLTYuNyAxNS4xLTEwLjMgMjQuMi0xMC4yLTEuOS02LjEtMy42LTEyLjQtNS0xOC43LTMuNy0xNi43LTUuNy0zNC01LjctNTEuOCAwLTEzMC41IDEwNS40LTIzNi4zIDIzNS40LTIzNi4zek0xMTcuNSAzMTFjLTEzLTguMi0yMi4xLTMuNi0xOSAxMy40czU3LjIgNTguMiA1MiA2Ny4yYy01LjIgOC44LTIzLjUtMTAuMS0yMy44LTEwLjUgMCAwLTU4LjItNTMuMS03MC44LTM5LjMtMTIuNiAxMy44IDkuNiAyNS40IDQxLjMgNDQuN3MzNC4yIDI0LjQgMjkuNyAzMS43LTc0LjUtNTItODEuMS0yNi44Yy02LjUgMjUuMSA3MS40IDMyLjQgNjYuNyA0OS44LTQuOCAxNy40LTU0LjktMzIuOC02NS4yLTEzLjMtMTAuMyAxOS42IDcwLjggNDIuNiA3MS40IDQyLjcgMjYuMiA2LjggOTIuNiAyMS4zIDExNS45LTEyLjkgMTYuNy0yNC42IDE1LjYtNDMuMS03LjQtNjYuMXMtMzYuMy01Ni43LTM2LjMtNTYuN2MwLS4yLTUtMTkuNS0xNi4zLTE3LjgtMTEuNCAxLjgtMTkuNyAzMSA0LjEgNDguOSAyMy44IDE3LjktNC43IDMwLTEzLjkgMTMuMy05LjItMTYuOC0zNC4yLTU5LjktNDcuMS02OC4yem0zNjAuNiAxMy40YzMuMS0xNy02LjEtMjEuNi0xOS0xMy40LTEzIDguMy0zNy45IDUxLjQtNDcuMSA2OC4ycy0zNy43IDQuNi0xMy45LTEzLjMgMTUuNC00Ny4xIDQuMS00OC45LTE2LjMgMTcuOC0xNi4zIDE3LjhjLS4xIC4yLTEzLjQgMzMuNy0zNi4zIDU2LjctMjIuOSAyMy0yNC4xIDQxLjUtNy40IDY2LjEgMjMuMiAzNC4yIDg5LjcgMTkuNyAxMTUuOSAxMi45IDEuNS0uNCA4MS42LTIzLjMgNzEuNC00Mi43LTEwLjMtMTkuNS02MC40IDMwLjYtNjUuMyAxMy4zLTQuOC0xNy4zIDczLjItMjQuNiA2Ni43LTQ5LjgtNi42LTI1LjEtNzYuNiAzNC4xLTgxLjEgMjYuOC00LjUtNy4zLTItMTIuNCAyOS43LTMxLjcgMzEuNy0xOS4zIDU0LTMwLjkgNDEuMy00NC43LTEyLjctMTMuOC03MC44IDM5LjMtNzAuOCAzOS4zLS40IC40LTE4LjYgMTkuMy0yMy44IDEwLjUtNS4zLTguOSA0OC45LTUwLjEgNTItNjcuMnpNMjg2LjggMzIuNmMtMTE2LjYgMC0yMTEuMSA5NC45LTIxMS4xIDIxMS45IDAgMTcuMSAyIDMzLjggNS44IDQ5LjcgMC0uMSAuMS0uMSAuMi0uMiA2LjEtNy40IDE0LjktMTEuNCAyNC43LTExLjQgMTcuNyAwIDMxLjEgMTEuOSA0MS41IDI0LjkgNi44LTkuNCAxNy4xLTE1IDI3LjktMTUgMjAuNyAwIDMzLjIgMTguMSAzNy45IDM0LjMgMi4zIDUuNSAxMy42IDMwLjUgMzAuNCA0Ny40IDI1LjcgMjUuOCAzMi4yIDUyLjQgMTkuNCA4MC45IDE2IDEuOCAzMi44IDEuNyA0OS4yLS4zLTEyLjUtMjguNC02LTU0LjkgMTkuNi04MC42IDE2LjktMTYuOSAyOC4xLTQxLjkgMzAuNS00Ny40IDQuNy0xNi4yIDE3LjItMzQuMyAzNy45LTM0LjMgMTAuOSAwIDIxLjIgNS42IDI3LjkgMTUgMTAuNC0xMyAyMy44LTI0LjkgNDEuNS0yNC45IDguNyAwIDE2LjYgMy4xIDIyLjUgOC45IDUtMjIgNi40LTQ1LjggNC4xLTY4LjctMTAuOC0xMDYuOS0xMDAuNy0xOTAuMy0yMTAtMTkwLjN6bTEuNSAyMzQuMmM0My42IDAgNzktNDIgNzktMTQuNSAwIDI3LjQtMTkuMiA4MC45LTc4LjggODAuOS0xOS4yIDAtMzQuMi01LjUtNDUuOC0xMy45LTIzLjItMTkuNC0zMy40LTQ4LjItMzMuNC02Ni45IDAtMjcuNCAzNS40IDE0LjUgNzkgMTQuNXptLTEzLjMgMjVjLTguMiAyLjQtMTUuNSA2LjgtMjEuNSAxMi42IDIyIDEyLjggNTAuNCAxMi45IDcxLjctMS4zLTUuNS00LjktMTItOC43LTE5LjEtMTEtNS4xLTEuNi0xMC40IDE1LjgtMTYgMTUuOC01LjIgMC0xMC4zLTE3LjYtMTUuMS0xNi4yek0xNDcuMSAyMTUuNWExOS44IDE5LjggMCAxIDEgMC0zOS42IDE5LjggMTkuOCAwIDEgMSAwIDM5LjZ6bTI4Mi40IDBhMTkuOCAxOS44IDAgMSAxIDAtMzkuNiAxOS44IDE5LjggMCAxIDEgMCAzOS42em0tMjQ0LTU1LjRjNy45LTE0LjkgMjYuMy0yMC41IDQxLjEtMTIuNnMyMC40IDI2LjQgMTIuNiA0MS4yYy0zLjcgNy0xNS41LTQuNC0yMi40LTEuOS03LjcgMi43LTEwLjggMTguNy0xOC42IDE0LjYtMTQuOC03LjktMjAuNC0yNi40LTEyLjYtNDEuMnptMTY0LjQtMTIuNmMxNC44LTcuOSAzMy4yLTIuMyA0MS4xIDEyLjZzMi4yIDMzLjMtMTIuNiA0MS4yYy03LjggNC4yLTEwLjktMTEuOC0xOC43LTE0LjYtNi45LTIuNC0xOC43IDktMjIuNCAxLjktNy45LTE0LjktMi4yLTMzLjMgMTIuNi00MS4yeiJdfSxlaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianhsIixpY29uOls0NDgsNTEyLFtdLCJlNjdiIiwiTTQxMi4yIDMyTDM1LjggMzJDMTYgMzIgMCA0OCAwIDY3LjhMMCA0NDQuMkMwIDQ2NCAxNiA0ODAgMzUuOCA0ODBsMzc2LjQgMGMxOS44IDAgMzUuOC0xNiAzNS44LTM1LjhsMC0zNzYuNEM0NDggNDggNDMyIDMyIDQxMi4yIDMyek0zNzguNiAzMzMuN2MwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOGwtMjM1LjYgMGMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOGwyMzUuNiAwem0wLTExMy45YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44bC0yMzUuNiAwYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44bDIzNS42IDB6bTAtMTEzLjljMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhsLTIzNS42IDBjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhsMjM1LjYgMHoiXX0sdGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1saW5rZWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTdkMCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem01IDE3MC4ybDY2LjUgMCAwIDIxMy44LTY2LjUgMCAwLTIxMy44em03MS43LTY3LjdhMzguNSAzOC41IDAgMSAxIC03NyAwIDM4LjUgMzguNSAwIDEgMSA3NyAwek0zMTcuOSA0MTZsMC0xMDRjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOWwwIDEwNS44LTY2LjQgMCAwLTIxMy44IDYzLjcgMCAwIDI5LjIgLjkgMGM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOWwwIDExNy4yLTY2LjQgMHoiXX0scmhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzcyIsaWNvbjpbNDQ4LDUxMixbXSwiZTZhMiIsIk0zNzYuMyAzMkwwIDMyIDAgNDA4LjNjMCAxOSA3LjYgMzcuMiAyMSA1MC43czMxLjcgMjEgNTAuNyAyMWwzMDQuNiAwYzE5IDAgMzcuMi03LjYgNTAuNy0yMXMyMS0zMS43IDIxLTUwLjdsMC0zMDQuNmMwLTE5LTcuNi0zNy4yLTIxLTUwLjdzLTMxLjctMjEtNTAuNy0yMXpNMzMyLjQgNDMxLjRjLTcuNy04LjUtMTEuNy0yMC43LTEyLTM2LjZsMzEuMyAwYy4yIDE0LjEgNS4xIDIxLjEgMTQuOCAyMS4xYzQuOSAwIDguNC0xLjYgMTAuNS00LjdjMi0zLjEgMy04IDMtMTQuOGMwLTUuNC0xLjMtOS45LTQtMTMuNGMtMy41LTQuMi04LjEtNy41LTEzLjItOS41TDM1MS4yIDM2OGMtMTAuMy00LjktMTcuOC0xMC44LTIyLjUtMTcuNmMtNC41LTYuOC02LjctMTYuMy02LjctMjguNGMwLTEzLjYgNC0yNC42IDExLjgtMzMuMWM4LjEtOC41IDE5LjEtMTIuNyAzMy4yLTEyLjdjMTMuNiAwIDI0LjEgNC4yIDMxLjUgMTIuNWM3LjUgOC40IDExLjUgMjAuMyAxMS44IDM1LjlsLTMwLjEgMGMuMi01LjEtLjktMTAuMi0zLTE0LjhjLTEuNy0zLjQtNS01LjEtMTAtNS4xYy04LjggMC0xMy4yIDUuMi0xMy4yIDE1LjdjMCA1LjMgMS4xIDkuNCAzLjIgMTIuNmMzLjEgMy41IDcgNi4yIDExLjQgNy44bDExLjEgNC45YzExLjUgNS4zIDE5LjcgMTEuNyAyNC44IDE5LjRjNS4xIDcuNyA3LjYgMTggNy42IDMxYzAgMTUuNS00IDI3LjQtMTIuMyAzNS43Yy04LjIgOC4zLTE5LjUgMTIuNS0zNC4xIDEyLjVzLTI1LjYtNC4yLTMzLjQtMTIuN3ptLTEwMSAwYy03LjctOC41LTExLjctMjAuNy0xMi0zNi42bDMxLjMgMGMuMiAxNC4xIDUuMSAyMS4xIDE0LjggMjEuMWM0LjkgMCA4LjQtMS42IDEwLjQtNC43YzItMy4xIDMtOCAzLTE0LjhjMC01LjQtMS4zLTkuOS0zLjktMTMuNGMtMy41LTQuMi04LjEtNy41LTEzLjItOS41TDI1MC4yIDM2OGMtMTAuMy00LjktMTcuOC0xMC44LTIyLjUtMTcuNmMtNC41LTYuOC02LjctMTYuMy02LjctMjguNGMwLTEzLjYgNC0yNC42IDExLjgtMzMuMWM4LjEtOC41IDE5LjEtMTIuNyAzMy4yLTEyLjdjMTMuNiAwIDI0LjEgNC4yIDMxLjQgMTIuNWM3LjYgOC40IDExLjUgMjAuMyAxMS45IDM1LjlsLTMwLjEgMGMuMi01LjEtLjktMTAuMi0zLTE0LjhjLTEuNy0zLjQtNS01LjEtMTAtNS4xYy04LjggMC0xMy4yIDUuMi0xMy4yIDE1LjdjMCA1LjMgMS4xIDkuNCAzLjIgMTIuNmMzLjEgMy41IDcgNi4yIDExLjQgNy44bDExLjEgNC45YzExLjUgNS4zIDE5LjcgMTEuNyAyNC44IDE5LjRjNS4xIDcuNyA3LjYgMTggNy42IDMxYzAgMTUuNS00LjEgMjcuNC0xMi4zIDM1LjdzLTE5LjUgMTIuNS0zNC4xIDEyLjVzLTI1LjYtNC4yLTMzLjQtMTIuN3ptLTEwNS42IDEuMWMtOC40LTcuNy0xMi41LTE5LjItMTIuNS0zNC41bDAtNzUuNGMwLTE1LjIgNC40LTI2LjcgMTMuMi0zNC42YzguOS03LjggMjAuNy0xMS44IDM1LjItMTEuOGMxNC4xIDAgMjUuMiA0IDMzLjQgMTJjOC4zIDggMTIuNSAyMCAxMi41IDM1LjlsMCA2LTMzLjEgMCAwLTUuOGMwLTYuMS0xLjMtMTAuNy00LTEzLjZjLTEuMS0xLjUtMi42LTIuNy00LjMtMy41cy0zLjUtMS4yLTUuNC0xLjFjLTUuNCAwLTkuMiAxLjgtMTEuNCA1LjZjLTIuMyA1LjItMy4zIDEwLjgtMyAxNi40bDAgNjUuNWMwIDEzLjcgNC44IDIwLjYgMTQuNCAyMC44YzQuNSAwIDcuOS0xLjYgMTAuMi00LjhjMi41LTQuMSAzLjctOC44IDMuNS0xMy42bDAtNC45IDMzLjEgMCAwIDUuMWMwIDEwLjYtMi4xIDE5LjUtNi4yIDI2LjZjLTQgNi45LTkuOSAxMi41LTE3LjEgMTZjLTcuNyAzLjctMTYuMSA1LjUtMjQuNiA1LjNjLTE0LjIgMC0yNS41LTMuOS0zMy44LTExLjZ6Il19LGFocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoYXNobm9kZSIsaWNvbjpbNTEyLDUxMixbXSwiZTQ5OSIsIk0zNS43IDE3MS4xYy00Ni45IDQ2LTQ2LjkgMTIyLjkgMCAxNjkuOEwxNzEuNiA0NzYuOGM0NiA0Ni45IDEyMi45IDQ2LjkgMTY5LjggMEw0NzcuMyAzNDAuOWM0Ni45LTQ2LjkgNDYuOS0xMjMuOCAwLTE2OS44TDM0MS40IDM1LjJjLTQ2LjktNDYuOS0xMjMuOC00Ni45LTE2OS44IDBMMzUuNyAxNzEuMXpNMTk2IDE5Ni41YTg0LjUgODQuNSAwIDEgMSAxMjAgMTE5IDg0LjUgODQuNSAwIDEgMSAtMTIwLTExOXoiXX0saWhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZGRpdC1hbGllbiIsaWNvbjpbNTEyLDUxMixbXSwiZjI4MSIsIk0zNzMgMTM4LjZjLTI1LjIgMC00Ni4zLTE3LjUtNTEuOS00MS0zMC42IDQuMy01NC4yIDMwLjctNTQuMiA2Mi40bDAgLjJjNDcuNCAxLjggOTAuNiAxNS4xIDEyNC45IDM2LjMgMTIuNi05LjcgMjguNC0xNS41IDQ1LjUtMTUuNSA0MS4zIDAgNzQuNyAzMy40IDc0LjcgNzQuNyAwIDI5LjgtMTcuNCA1NS41LTQyLjcgNjcuNS0yLjQgODYuOC05NyAxNTYuNi0yMTMuMiAxNTYuNlM0NS41IDQxMC4xIDQzIDMyMy40Yy0yNS40LTExLjktNDMtMzcuNy00My02Ny43IDAtNDEuMyAzMy40LTc0LjcgNzQuNy03NC43IDE3LjIgMCAzMyA1LjggNDUuNyAxNS42IDM0LTIxLjEgNzYuOC0zNC40IDEyMy43LTM2LjRsMC0uM2MwLTQ0LjMgMzMuNy04MC45IDc2LjgtODUuNSA0LjktMjQuMiAyNi4zLTQyLjQgNTIuMS00Mi40IDI5LjQgMCA1My4zIDIzLjkgNTMuMyA1My4zcy0yMy45IDUzLjMtNTMuMyA1My4zek0xNTcuNSAyNTUuM2MtMjAuOSAwLTM4LjkgMjAuOC00MC4yIDQ3LjlzMTcuMSAzOC4xIDM4IDM4LjEgMzYuNi05LjggMzcuOC0zNi45LTE0LjctNDkuMS0zNS43LTQ5LjFsLjEgMHpNMzk1IDMwMy4xYy0xLjItMjcuMS0xOS4yLTQ3LjktNDAuMi00Ny45cy0zNi45IDIyLTM1LjcgNDkuMSAxNi45IDM2LjkgMzcuOCAzNi45IDM5LjMtMTEgMzgtMzguMWwuMSAwem0tNjAuMSA3MC44YzEuNS0zLjYtMS03LjctNC45LTguMS0yMy0yLjMtNDcuOS0zLjYtNzMuOC0zLjZzLTUwLjggMS4zLTczLjggMy42Yy0zLjkgLjQtNi40IDQuNS00LjkgOC4xIDEyLjkgMzAuOCA0My4zIDUyLjQgNzguNyA1Mi40czY1LjgtMjEuNiA3OC43LTUyLjR6Il19LEozZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aWt0b2siLGljb246WzQ0OCw1MTIsW10sImUwN2IiLCJNNDQ4LjUgMjA5LjljLTQ0IC4xLTg3LTEzLjYtMTIyLjgtMzkuMmwwIDE3OC43YzAgMzMuMS0xMC4xIDY1LjQtMjkgOTIuNnMtNDUuNiA0OC03Ni42IDU5LjYtNjQuOCAxMy41LTk2LjkgNS4zLTYwLjktMjUuOS04Mi43LTUwLjgtMzUuMy01Ni0zOS04OC45IDIuOS02Ni4xIDE4LjYtOTUuMiA0MC01Mi43IDY5LjYtNjcuNyA2Mi45LTIwLjUgOTUuNy0xNmwwIDg5LjljLTE1LTQuNy0zMS4xLTQuNi00NiAuNHMtMjcuOSAxNC42LTM3IDI3LjMtMTQgMjguMS0xMy45IDQzLjkgNS4yIDMxIDE0LjUgNDMuNyAyMi40IDIyLjEgMzcuNCAyNi45IDMxLjEgNC44IDQ2LS4xIDI4LTE0LjQgMzcuMi0yNy4xIDE0LjItMjguMSAxNC4yLTQzLjhsMC0zNDkuNCA4OCAwYy0uMSA3LjQgLjYgMTQuOSAxLjkgMjIuMiAzLjEgMTYuMyA5LjQgMzEuOSAxOC43IDQ1LjdzMjEuMyAyNS42IDM1LjIgMzQuNmMxOS45IDEzLjEgNDMuMiAyMC4xIDY3IDIwLjFsMCA4Ny40eiJdfSxzaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29yZHByZXNzIixpY29uOls1MTIsNTEyLFtdLCJmMTlhIiwiTTYxLjcgMTY5LjRsMTAxLjUgMjc4Yy03MS0zNC40LTExOS45LTEwNy4yLTExOS45LTE5MS40IDAtMzAuOSA2LjYtNjAuMSAxOC40LTg2LjZ6bTMzNy45IDc1LjljMC0yNi4zLTkuNC00NC41LTE3LjUtNTguNy0xMC44LTE3LjUtMjAuOS0zMi40LTIwLjktNDkuOSAwLTE5LjYgMTQuOC0zNy44IDM1LjctMzcuOCAuOSAwIDEuOCAuMSAyLjggLjItMzcuOS0zNC43LTg4LjMtNTUuOS0xNDMuNy01NS45LTc0LjMgMC0xMzkuNyAzOC4xLTE3Ny44IDk1LjkgNSAuMiA5LjcgLjMgMTMuNyAuMyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ny41IDIzMC40IDQ2LjYtMTM5LjYtMzMuMS05MC44Yy0xMS41LS43LTIyLjMtMi0yMi4zLTItMTEuNS0uNy0xMC4xLTE4LjIgMS4zLTE3LjUgMCAwIDM1LjEgMi43IDU2IDIuNyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ni45IDIyOC43IDIxLjItNzAuOWM5LTI5LjQgMTYtNTAuNSAxNi02OC43ek0yNTkuNyAyNzQuNkwxOTUuOSA0NjAuMWMxOS4xIDUuNiAzOS4yIDguNyA2MC4xIDguNyAyNC44IDAgNDguNS00LjMgNzAuNi0xMi4xLS42LS45LTEuMS0xLjktMS41LTIuOUwyNTkuNyAyNzQuNnptMTgzLTEyMC43Yy45IDYuOCAxLjQgMTQgMS40IDIxLjkgMCAyMS42LTQgNDUuOC0xNi4yIDc2LjJsLTY1IDE4Ny45YzYzLjMtMzYuOSAxMDUuOC0xMDUuNCAxMDUuOC0xODMuOSAwLTM3LTkuNC03MS44LTI2LTEwMi4xek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00ODQuNiAwYTIzNi42IDIzNi42IDAgMSAwIC00NzMuMiAwIDIzNi42IDIzNi42IDAgMSAwIDQ3My4yIDB6Il19LG5ocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpZGVhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTAxMyIsIk05My44IDE2NS41YTQ5LjEgNDkuMSAwIDEgMCAwIDk4LjEgNDkuMSA0OS4xIDAgMSAwIDAtOTguMXpNNTQuMyA0MjUuOGw3OC45IDAgMC0xNDAuNS03OC45IDAgMCAxNDAuNXpNMjA1LjggMjE0LjJjMC0yMC0xMC0yMi41LTE4LjctMjIuNWwtMTQgMCAwIDQ1LjggMTQgMGM5LjcgMCAxOC43LTIuOCAxOC43LTIzLjN6bTIwMS43IDQ2bDAtOTEuMyAyMi44IDAgMCA2OC42IDMzLjcgMEM0NTQuNiAxMTMuMSAzNTYuOCA4Ni4yIDI2Ny44IDg2LjJsLTk0LjggMCAwIDgyLjggMTQgMGMyNS42IDAgNDEuNSAxNy40IDQxLjUgNDUuMyAwIDI4LjgtMTUuNSA0Ni00MS41IDQ2bC0xNCAwIDAgMTY1LjYgOTQuOCAwYzE0NC42IDAgMTk0LjktNjcuMiAxOTYuNy0xNjUuNmwtNTcuMSAwem0tMTA5LjggMGwtNTYuMiAwIDAtOTEuMiA1NC40IDAgMCAyMi43LTMxLjcgMCAwIDEwLjYgMzAgMCAwIDIyLjctMzAgMCAwIDEyLjUgMzMuNSAwIDAgMjIuN3ptNzQuNyAwbC01LjItMTcuNy0yOS43IDAtNS4yIDE3LjctMjMuNyAwIDI3LjUtOTEuMyAzMi4zIDAgMjcuNSA5MS4zLTIzLjcgMHpNMjY3LjggMzJMLjEgMzIgLjEgNDgwIDI2Ny44IDQ4MGMxNjEuOCAwIDI1MS03OS43IDI1MS0yMjQuNSAwLTgzLjUtMzIuNi0yMjMuNS0yNTEtMjIzLjV6bTAgNDI2LjlsLTI0Ni42IDAgMC00MDUuOSAyNDYuNiAwYzE0Mi4xIDAgMjI5LjkgNjQuNiAyMjkuOSAyMDIuNCAwIDEzNC4xLTgxIDIwMy40LTIyOS45IDIwMy40em04My45LTI2NC45bC03LjUgMjUuOCAxNi40IDAtNy41LTI1LjgtMS40IDB6Il19LG9ocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLXBwIixpY29uOls0NDgsNTEyLFtdLCJmMWE3IiwiTTIwNS4zIDE3NC42YzAgMjEuMS0xNC4yIDM4LjEtMzEuNyAzOC4xLTcuMSAwLTEyLjgtMS4yLTE3LjItMy43bDAtNjhjNC40LTIuNyAxMC4xLTQuMiAxNy4yLTQuMiAxNy41IDAgMzEuNyAxNi45IDMxLjcgMzcuOHptNTIuNiA2N2MtNy4xIDAtMTIuOCAxLjUtMTcuMiA0LjJsMCA2OGM0LjQgMi41IDEwLjEgMy43IDE3LjIgMy43IDE3LjQgMCAzMS43LTE2LjkgMzEuNy0zNy44IDAtMjEuMS0xNC4zLTM4LjEtMzEuNy0zOC4xek00NDggODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODUgMjU1LjFjNDEgMCA3NC4yLTM1LjYgNzQuMi03OS42UzIyNiA5NS45IDE4NSA5NS45Yy0xMiAwLTI0LjEgMy4yLTM0LjYgOC44bC00NS43IDAgMCAyMDYuMyA1MS44LTEwLjEgMC01MC42YzguNiAzLjEgMTguMSA0LjggMjguNSA0Ljh6bTE1OC40IDI1LjNjMC00NC0zMy4yLTc5LjYtNzMuOS03OS42LTMuMiAwLTYuNCAuMi05LjYgLjctMy43IDEyLjUtMTAuMSAyMy44LTE5LjIgMzMuNC0xMy44IDE1LTMyLjIgMjMuOC01MS44IDI0LjhsMCAxNTYuMyA1MS44LTEwLjEgMC01MC42YzguNiAzLjIgMTguMiA0LjcgMjguNyA0LjcgNDAuOCAwIDc0LTM1LjYgNzQtNzkuNnoiXX0sbGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVzc3VubmFoIixpY29uOls1MTIsNTEyLFtdLCJmNDA3IiwiTTQ5Ni45IDI2OC4xYzAgNjMuOS0yNS40IDEyNS4yLTcwLjYgMTcwLjNTMzE5LjkgNTA5IDI1NiA1MDkgMTMwLjggNDgzLjUgODUuNyA0MzguNCAxNS4xIDMzMS45IDE1LjEgMjY4YzAtNjMuOSAyNS40LTEyNS4yIDcwLjYtMTcwLjRTMTkyLjIgMjcuMSAyNTYuMSAyNy4xIDM4MS4zIDUyLjQgNDI2LjUgOTcuNiA0OTcgMjA0LjEgNDk3IDI2OGwtLjEgLjF6TTM5LjUgMjY4Yy0uNiAyOC44IDQuNSA1Ny41IDE1LjEgODQuM3MyNi40IDUxLjIgNDYuNiA3MS44IDQ0LjIgMzcgNzAuOCA0OC4xIDU1LjEgMTYuOSA4My45IDE2LjkgNTcuNC01LjggODMuOS0xNi45IDUwLjYtMjcuNSA3MC44LTQ4LjEgMzYtNDUgNDYuNi03MS44IDE1LjctNTUuNSAxNS4xLTg0LjNjLjYtMjguOC00LjUtNTcuNS0xNS4xLTg0LjNzLTI2LjQtNTEuMi00Ni42LTcxLjgtNDQuMi0zNy03MC44LTQ4LjEtNTUuMS0xNi45LTgzLjktMTYuOS01Ny40IDUuOC04My45IDE2LjktNTAuNiAyNy41LTcwLjggNDguMS0zNiA0NS00Ni42IDcxLjgtMTUuNyA1NS41LTE1LjEgODQuM3ptMzg1LjkgNjMuM2MtMTIuNyAwLTIxLjYtMS45LTI2LjctNS45LTUuNS00LjMtOC4yLTEyLjMtOC4yLTIzLjhsMC05Ni41YzAtNi41LTUuMi0yMC4yLTE1LjctNDEuMiA3IDAgMTctOS4xIDMwLTI3LjJsMCAxNDcuOGMwIDExIDIuNCAxOS40IDcgMjUuMyAzLjcgNC43IDEwLjEgOC45IDE5IDEyLjYgMS4yIC40IDIuNiAuOSA0LjEgMS40IDIuOSAuOSA2LjMgMi4xIDEwLjMgMy41LTEuOCAyLjctOC4zIDQtMTkuOSA0bC4xIDB6bS0yMTkgMGMtMS4zIDIuNC0zLjYgNS41LTYuOCA5LjRsLTE4LjUgMjIuNWMtMS02LjEtNC0xMy05LjMtMjAuNnMtOS43LTExLjQtMTMuNC0xMS40bC04OS44IDBjMy4zLTUuMyA0LjktOC44IDQuOS0xMC44cy0uOC01LjMtMi40LTkuN2MtMS41LTQuNC0yLjQtOC41LTIuNC0xMi40IDAtNy40IDIuMS0xMy45IDYuMy0xOS4zbDIwLTI1LjYtNy4xLTE3LjcgMTYuMS0xOS44IDYuNyAxNi44IDgtMTAuM2MtMS44IDYuNC0yLjYgMTIuMy0yLjYgMTcuNyAwIDQuMiAyLjggMTMuMyA4LjMgMjcuM2wxNi4yIDQwLjcgMTcuNyAwYzIuOCAuNCA3LjcgNSAxNC42IDEzLjkgMS44IDIuNCA0LjMgNS44IDcuNyAxMC4yIDEuNCAxLjkgMi45IDMuOSA0LjYgNi4xIDEuMy0yLjMgMi00LjYgMi03LjEgMC0yLTEuMy02LjYtNC0xMy40TDE3OCAzMDQuMWMtNC0xMC42LTYuMS0xNy43LTYuMS0yMS4zIDAtNi4zIDEuOS0xMi4zIDUuOC0xNy45IC41LS42IDEtMS4zIDEuNS0xLjkgNC40LTUuNiA4LjgtMTEuMSAxMy4zLTE2LjUtMS4xIDQuNi0xLjcgOC43LTEuNyAxMiAwIDMuNyAxLjcgOS45IDUuMSAxOC44bDcuOSAyMC40YzEuOSA0LjcgMyA4LjIgMy43IDEwLjNsMjUuOSAwLS45LTIuNmMtMS40LTMuOS00LTctNy43LTkuM2wxNS42LTIwLjEgMTIuMyAzMiAxMy40IDAtNi4xLTE1LjhjLTEuNS0zLjktNC03LTcuNy05LjNsMTUuNy0yMC4xIDE3LjMgNDUuMiAxMy40IDAtMTEuNC0yOS40Yy0xLjUtMy45LTQtNy03LjctOS4zbDE1LjYtMjAgMjIuNCA1OC43IDI2LjIgMGMxLjUgMCAzLTEuMSA0LjUtMy4xczIuMi00LjEgMi4yLTYuM2wwLTkzLjVjMC02LjUtNC41LTIwLjMtMTMuNy00MS4yIDUuNCAwIDE0LjEtOS4xIDI2LjItMjcuMmwwIDE2My41YzAgNy4yIC42IDEyIDEuNyAxNC42IDEuNiAzLjQgNS4zIDYuMiAxMS4xIDguMi0zLjkgNS42LTguNyA4LjUtMTQuNSA4LjVsLTE1NC44IDAtLjEtLjJ6bS05OC00NGMtMi43LTYuNy00LTExLjctNC0xNS0uNiAxLjItMi40IDMuNy01LjQgNy42LTEuNCAxLjktMi4yIDMuNy0yLjIgNS4zIDAgMi42IC44IDUuNyAyLjIgOS4zbDUuNiAxMy45YzUgMCA5IDAgMTEuOS0uMWwtOC4yLTIwLjkgLjEtLjF6bTEzLjUtNzIuNGMtMy01LjItNy05LjMtMTEuOS0xMS45LTMuNS0xLjktNS4zLTQuMy01LjMtNy40IDAtMi40IDQuNi04LjYgMTQtMTguMyAuMiAzLjggMS45IDcuNiA0LjkgMTEuMiAzLjEgMy42IDQuNiA3IDQuNiAxMC4xIDAgMi42LTIuMSA4LTYuMiAxNi4zbC0uMSAwem0tMjcuNiAwYy0zLTUuMi03LTkuMy0xMS45LTExLjktMy41LTEuOS01LjMtNC4zLTUuMy03LjQgMC0yLjQgNC42LTguNiAxNC0xOC4zIC4yIDMuOCAxLjkgNy42IDQuOSAxMS4yIDMuMSAzLjYgNC42IDcgNC42IDEwLjEgMCAyLjYtMi4xIDgtNi4yIDE2LjNsLS4xIDB6bTg3IDI3LjVjLTMtNS4yLTctOS4zLTExLjktMTEuOS0zLjUtMS45LTUuMy00LjMtNS4zLTcuNCAwLTIuNCA0LjYtOC42IDE0LTE4LjMgLjIgMy44IDEuOSA3LjYgNC45IDExLjIgMy4xIDMuNiA0LjYgNyA0LjYgMTAuMSAwIDIuNi0yLjEgOC02LjIgMTYuM2wtLjEgMHoiXX0sY2hyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcnQtYXdlc29tZS1hbHQiLGljb246WzUxMiw1MTIsW10sImYzYTMiLCJNMjA4IDIzNy40bC0yMi4yIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43bDIyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC01MS43YzAtMi4xLTEuNi0zLjctMy43LTMuN3ptMTE4LjIgMGwtMjIuMiAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN2wyMi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtNTEuN2MtLjEtMi4xLTEuNy0zLjctMy43LTMuN3ptMTMyLTEyNS4xYy0yLjMtMy4yLTQuNi02LjQtNy4xLTkuNS05LjgtMTIuNS0yMC44LTI0LTMyLjgtMzQuNC00LjUtMy45LTkuMS03LjYtMTMuOS0xMS4yLTEuNi0xLjItMy4yLTIuMy00LjgtMy41LTI3LjYtMTkuNi01OS4zLTMzLjctOTMuNi00MC43LTE2LjItMy4zLTMyLjktNS01MC01cy0zMy45IDEuNy01MCA1Yy0zNC4zIDcuMS02NiAyMS4yLTkzLjMgNDAuOC0xLjYgMS4xLTMuMiAyLjMtNC44IDMuNS00LjggMy42LTkuNCA3LjMtMTMuOSAxMS4yLTMgMi42LTUuOSA1LjMtOC44IDhzLTUuNyA1LjUtOC40IDguNGMtNS41IDUuNy0xMC43IDExLjgtMTUuNiAxOC0yLjQgMy4xLTQuOCA2LjMtNy4xIDkuNS0yOC45IDQwLjYtNDUuOCA5MC4xLTQ1LjggMTQzLjYgMCAyIC4xIDQgLjEgNiAuMSAuNyAuMSAxLjMgLjEgMiAuMSAxLjMgLjEgMi43IC4yIDQgMCAuOCAuMSAxLjUgLjEgMi4zIDAgMS4zIC4xIDIuNSAuMiAzLjcgLjEgLjggLjEgMS42IC4yIDIuNCAuMSAxLjEgLjIgMi4zIC4zIDMuNSAwIC44IC4xIDEuNiAuMiAyLjQgLjEgMS4yIC4zIDIuNCAuNCAzLjYgLjEgLjggLjIgMS41IC4zIDIuMyAuMSAxLjMgLjMgMi42IC41IDMuOSAuMSAuNiAuMiAxLjMgLjMgMS45bC45IDUuN2MuMSAuNiAuMiAxLjEgLjMgMS43IC4zIDEuMyAuNSAyLjcgLjggNCAuMiAuOCAuMyAxLjYgLjUgMi40IC4yIDEgLjUgMi4xIC43IDMuMiAuMiAuOSAuNCAxLjcgLjYgMi42IC4yIDEgLjQgMiAuNyAzIC4yIC45IC41IDEuOCAuNyAyLjcgLjMgMSAuNSAxLjkgLjggMi45IC4zIC45IC41IDEuOCAuOCAyLjcgLjIgLjkgLjUgMS45IC44IDIuOHMuNSAxLjggLjggMi43Yy4zIDEgLjYgMS45IC45IDIuOCAuNiAxLjYgMS4xIDMuMyAxLjcgNC45IC40IDEgLjcgMS45IDEgMi44IC4zIDEgLjcgMiAxLjEgMyAuMyAuOCAuNiAxLjUgLjkgMi4zbDEuMiAzYy4zIC43IC42IDEuNSAuOSAyLjIgLjQgMSAuOSAyIDEuMyAzbC45IDIuMWMuNSAxIC45IDIgMS40IDMgLjMgLjcgLjYgMS4zIC45IDIgLjUgMSAxIDIuMSAxLjUgMy4xIC4yIC42IC41IDEuMSAuOCAxLjcgLjYgMS4xIDEuMSAyLjIgMS43IDMuMyAuMSAuMiAuMiAuMyAuMyAuNSAyLjIgNC4xIDQuNCA4LjIgNi44IDEyLjIgLjIgLjQgLjUgLjggLjcgMS4yIC43IDEuMSAxLjMgMi4yIDIgMy4zIC4zIC41IC42IC45IC45IDEuNCAuNiAxLjEgMS4zIDIuMSAyIDMuMiAuMyAuNSAuNiAuOSAuOSAxLjQgLjcgMS4xIDEuNCAyLjEgMi4xIDMuMiAuMiAuNCAuNSAuOCAuOCAxLjIgLjcgMS4xIDEuNSAyLjIgMi4zIDMuMyAuMiAuMiAuMyAuNSAuNSAuNyAzNy41IDUxLjcgOTQuNCA4OC41IDE2MCA5OS40IC45IC4xIDEuNyAuMyAyLjYgLjQgMSAuMiAyLjEgLjQgMy4xIC41czEuOSAuMyAyLjggLjRjMSAuMiAyIC4zIDMgLjQgLjkgLjEgMS45IC4yIDIuOSAuM3MxLjkgLjIgMi45IC4zIDIuMSAuMiAzLjEgLjNjLjkgLjEgMS44IC4xIDIuNyAuMiAxLjEgLjEgMi4zIC4xIDMuNCAuMiAuOCAwIDEuNyAuMSAyLjUgLjEgMS4zIDAgMi42IC4xIDMuOSAuMSAuNyAuMSAxLjQgLjEgMi4xIC4xIDIgLjEgNCAuMSA2IC4xczQtLjEgNi0uMWMuNyAwIDEuNC0uMSAyLjEtLjEgMS4zIDAgMi42IDAgMy45LS4xIC44IDAgMS43LS4xIDIuNS0uMSAxLjEtLjEgMi4zLS4xIDMuNC0uMiAuOSAwIDEuOC0uMSAyLjctLjIgMS0uMSAyLjEtLjIgMy4xLS4zczEuOS0uMiAyLjktLjNjLjktLjEgMS45LS4yIDIuOS0uM3MyLS4zIDMtLjQgMS45LS4zIDIuOC0uNGMxLS4yIDIuMS0uMyAzLjEtLjUgLjktLjEgMS43LS4zIDIuNi0uNCA2NS42LTExIDEyMi41LTQ3LjcgMTYwLjEtMTAyLjQgLjItLjIgLjMtLjUgLjUtLjcgLjgtMS4xIDEuNS0yLjIgMi4zLTMuMyAuMi0uNCAuNS0uOCAuOC0xLjIgLjctMS4xIDEuNC0yLjEgMi4xLTMuMiAuMy0uNSAuNi0uOSAuOS0xLjQgLjYtMS4xIDEuMy0yLjEgMi0zLjIgLjMtLjUgLjYtLjkgLjktMS40IC43LTEuMSAxLjMtMi4yIDItMy4zIC4yLS40IC41LS44IC43LTEuMiAyLjQtNCA0LjYtOC4xIDYuOC0xMi4yIC4xLS4yIC4yLS4zIC4zLS41IC42LTEuMSAxLjEtMi4yIDEuNy0zLjMgLjItLjYgLjUtMS4xIC44LTEuNyAuNS0xIDEtMi4xIDEuNS0zLjEgLjMtLjcgLjYtMS4zIC45LTIgLjUtMSAxLTIgMS40LTNsLjktMi4xYy41LTEgLjktMiAxLjMtMyAuMy0uNyAuNi0xLjUgLjktMi4ybDEuMi0zYy4zLS44IC42LTEuNSAuOS0yLjMgLjQtMSAuNy0yIDEuMS0zcy43LTEuOSAxLTIuOGMuNi0xLjYgMS4yLTMuMyAxLjctNC45IC4zLTEgLjYtMS45IC45LTIuOHMuNS0xLjggLjgtMi43Yy4yLS45IC41LTEuOSAuOC0yLjhzLjYtMS44IC44LTIuN2MuMy0xIC41LTEuOSAuOC0yLjkgLjItLjkgLjUtMS44IC43LTIuNyAuMi0xIC41LTIgLjctMyAuMi0uOSAuNC0xLjcgLjYtMi42IC4yLTEgLjUtMi4xIC43LTMuMiAuMi0uOCAuMy0xLjYgLjUtMi40IC4zLTEuMyAuNi0yLjcgLjgtNCAuMS0uNiAuMi0xLjEgLjMtMS43bC45LTUuN2MuMS0uNiAuMi0xLjMgLjMtMS45IC4xLTEuMyAuMy0yLjYgLjUtMy45IC4xLS44IC4yLTEuNSAuMy0yLjMgLjEtMS4yIC4zLTIuNCAuNC0zLjYgMC0uOCAuMS0xLjYgLjItMi40IC4xLTEuMSAuMi0yLjMgLjMtMy41IC4xLS44IC4xLTEuNiAuMi0yLjQgLjEgMS43IC4xIC41IC4yLS43IDAtLjggLjEtMS41IC4xLTIuMyAuMS0xLjMgLjItMi43IC4yLTQgLjEtLjcgLjEtMS4zIC4xLTIgLjEtMiAuMS00IC4xLTYgMC01My41LTE2LjktMTAzLTQ1LjgtMTQzLjd6TTQ0OCAzNzEuNWMtOS40IDE1LjUtMjAuNiAyOS45LTMzLjYgNDIuOS0yMC42IDIwLjYtNDQuNSAzNi43LTcxLjIgNDgtMTMuOSA1LjgtMjguMiAxMC4zLTQyLjkgMTMuMmwwLTc1LjhjMC01OC42LTg4LjYtNTguNi04OC42IDBsMCA3NS44Yy0xNC43LTIuOS0yOS03LjMtNDIuOS0xMy4yLTI2LjctMTEuMy01MC42LTI3LjQtNzEuMi00OC0xMy0xMy0yNC4yLTI3LjQtMzMuNi00Mi45bDAtNzEuM2MwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjggMjkuNiAwIDAtMTQ0YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4xIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtNC44IDYuNS0zLjcgOS41LTMuN2wwLTkwLjJjLTQuNC0yLTcuNC02LjctNy40LTExLjUgMC0xNi44IDI1LjQtMTYuOCAyNS40IDAgMCA0LjgtMyA5LjQtNy40IDExLjVsMCAzLjljNi4zLTEuNCAxMi43LTIuMyAxOS4yLTIuMyA5LjQgMCAxOC40IDMuNSAyNi4zIDMuNSA3LjIgMCAxNS4yLTMuNSAxOS40LTMuNSAyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCA0OC40YzAgNS42LTE4LjcgNi41LTIyLjQgNi41LTguNiAwLTE2LjYtMy41LTI1LjQtMy41LTcgMC0xNC4xIDEuMi0yMC44IDIuOGwwIDMwLjdjMyAwIDkuNS0xLjEgOS41IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMiAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDE0NCAyOS41IDAgMC0yNS44YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgNzEuM3oiXX0sZGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1cm9tb2JlbGV4cGVydGUiLGljb246WzQ0OCw1MTIsW10sImYzN2YiLCJNMCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMTIwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTE2MCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMjgwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTMyMCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNNDQwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTAgMTkybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0xMjAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0yODAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek00NDAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMCAzNTJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTEyMCA0NzJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTI4MCA0NzJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6Il19LHVocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaWxpYmlsaSIsaWNvbjpbNTEyLDUxMixbXSwiZTNkOSIsIk00ODguNiAxMDQuMWMxNi43IDE4LjEgMjQuNCAzOS43IDIzLjMgNjUuN2wwIDIwMi40Yy0uNCAyNi40LTkuMiA0OC4xLTI2LjUgNjUuMS0xNy4yIDE3LTM5LjEgMjUuOS02NS41IDI2LjdMOTIgNDY0Yy0yNi40LS44LTQ4LjItOS44LTY1LjMtMjcuMi0xNy4xLTE3LjQtMjYtNDAuMy0yNi43LTY4LjZMMCAxNjkuOGMuOC0yNiA5LjctNDcuNiAyNi43LTY1LjcgMTcuMS0xNi4zIDM4LjgtMjUuMyA2NS4zLTI2LjFsMjkuNCAwLTI1LjQtMjUuOGMtNS43LTUuNy04LjYtMTMtOC42LTIxLjhzMi45LTE2LjEgOC42LTIxLjggMTMtOC42IDIxLjktOC42IDE2LjEgMi45IDIxLjkgOC42bDczLjMgNjkuNCA4OCAwIDc0LjUtNjkuNEMzODEuNyAyLjkgMzg5LjIgMCAzOTggMHMxNi4xIDIuOSAyMS45IDguNmM1LjcgNS43IDguNiAxMyA4LjYgMjEuOHMtMi45IDE2LjEtOC42IDIxLjhMMzk0LjYgNzggNDIzLjkgNzhjMjYuNCAuOCA0OCA5LjggNjQuNyAyNi4xem0tMzguOCA2OS43Yy0uNC05LjYtMy43LTE3LjQtMTAuNy0yMy41LTUuMi02LjEtMTQtOS40LTIyLjctOS44bC0zMjAuNCAwYy05LjYgLjQtMTcuNCAzLjctMjMuNiA5LjgtNi4xIDYuMS05LjQgMTMuOS05LjggMjMuNWwwIDE5NC40YzAgOS4yIDMuMyAxNyA5LjggMjMuNXMxNC40IDkuOCAyMy42IDkuOGwzMjAuNCAwYzkuMiAwIDE3LTMuMyAyMy4zLTkuOHM5LjctMTQuMyAxMC4xLTIzLjVsMC0xOTQuNHpNMTg1LjUgMjE2LjVjNi4zIDYuMyA5LjcgMTQuMSAxMC4xIDIzLjJsMCAzMy4zYy0uNCA5LjItMy43IDE2LjktOS44IDIzLjItNi4yIDYuMy0xNCA5LjUtMjMuNiA5LjVzLTE3LjUtMy4yLTIzLjYtOS41LTkuNC0xNC05LjgtMjMuMmwwLTMzLjNjLjQtOS4xIDMuOC0xNi45IDEwLjEtMjMuMnMxMy4yLTkuNiAyMy4zLTEwYzkuMiAuNCAxNyAzLjcgMjMuMyAxMHptMTkxLjUgMGM2LjMgNi4zIDkuNyAxNC4xIDEwLjEgMjMuMmwwIDMzLjNjLS40IDkuMi0zLjcgMTYuOS05LjggMjMuMnMtMTQgOS41LTIzLjYgOS41LTE3LjQtMy4yLTIzLjYtOS41Yy03LTYuMy05LjQtMTQtOS43LTIzLjJsMC0zMy4zYy4zLTkuMSAzLjctMTYuOSAxMC0yMy4yczE0LjEtOS42IDIzLjMtMTBjOS4yIC40IDE3IDMuNyAyMy4zIDEweiJdfSxwaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmVvcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjYxMiIsIk0zODMuOCA1MTJsLTk1LjEgMC0xMDguMi0xNTQuNSAwIDkxLjEtODYuNCA2My40LTk3LjcgMCAwLTQ4Mi4yIDQwLjUtMjkuOCAxMDggMCAxMjMuNyAxNzYuMSAwLTExMi43IDg2LjQtNjMuNCA5Ny43IDAgMCA0NjEuNS02OC45IDUwLjV6TTcuMiAzNS4zbDAgNDYwLjcgNzItNTIuOSAwLTI0OS4xIDIxNS41IDMwNy42IDg0LjggMCA1Mi40LTM4LjItNzguMyAwLTMxNi4xLTQ1MC41LTMwLjIgMjIuM3pNODkuNyA1MDEuOWw4MC01OC44IDAtMTAxLTc5LjgtMTE0LjQgMCAyMjAuOS03Mi42IDUzLjMgNzIuMyAwIDAgMHpNNDkgMTAuOGwzMTAuNiA0NDIuNiA4Mi40IDAgMC00NDIuNi03OS44IDAgMCAzMTcuNi0yMjIuOS0zMTcuNi05MC4zIDB6TTI3OS40IDE5MS42bDcyIDEwMi44IDAtMjc4LjUtNzIgNTMgMCAxMjIuN3oiXX0sZmhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRldiIsaWNvbjpbNDQ4LDUxMixbXSwiZjZjYyIsIk0xMjAuMSAyMDguM2MtMy45LTIuOS03LjgtNC4zLTExLjYtNC4zbC0xNy40IDAgMCAxMDQuNSAxNy40IDBjMy45IDAgNy44LTEuNCAxMS42LTQuM3M1LjgtNy4zIDUuOC0xMy4xbDAtNjkuN2MwLTUuOC0yLTEwLjItNS44LTEzLjF6TTQwNC4xIDMyTDQzLjkgMzJDMTkuNyAzMiAuMSA1MS42IDAgNzUuOEwwIDQzNi4yQy4xIDQ2MC40IDE5LjcgNDgwIDQzLjkgNDgwbDM2MC4yIDBjMjQuMiAwIDQzLjgtMTkuNiA0My45LTQzLjhsMC0zNjAuNEM0NDcuOSA1MS42IDQyOC4zIDMyIDQwNC4xIDMyek0xNTQuMiAyOTEuMmMwIDE4LjgtMTEuNiA0Ny4zLTQ4LjQgNDcuM2wtNDYuNCAwIDAtMTY1LjUgNDcuNCAwYzM1LjQgMCA0Ny40IDI4LjUgNDcuNCA0Ny4zbDAgNzAuOXptMTAwLjctODguN2wtNTMuMyAwIDAgMzguNCAzMi42IDAgMCAyOS42LTMyLjYgMCAwIDM4LjQgNTMuMyAwIDAgMjkuNi02Mi4yIDBjLTExLjIgLjMtMjAuNC04LjUtMjAuNy0xOS43bDAtMTI1LjFjLS4zLTExLjEgOC42LTIwLjQgMTkuNy0yMC43bDYzLjIgMCAwIDI5LjV6TTM1OC41IDMxNy44Yy0xMy4yIDMwLjctMzYuOCAyNC42LTQ3LjQgMGwtMzguNS0xNDQuOCAzMi42IDAgMjkuNyAxMTMuNyAyOS42LTExMy43IDMyLjYgMC0zOC41IDE0NC44eiJdfSxoaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG90amFyIixpY29uOls1MTIsNTEyLFtdLCJmM2IxIiwiTTM2MS44IDBjMCAxMzEuNi04MC43IDE3Ni44LTE0MC4yIDIwOS40LS42IC4zLTEuMSAuNi0xLjYgLjktNTMuOCAzMC4yLTg4LjcgNDkuOC04OS42IDEyMmwtOTguMSAwYzAtMTMxLjUgODAuNy0xNzYuNyAxNDAuMi0yMDkuMyA1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OSAwek0zMDEuMyAzMDIuNmM1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OCAwYzAgMTMxLjYtODAuNyAxNzYuNy0xNDAuMiAyMDkuNC01NC44IDI5LjgtOTAuMyA1MC05MC4zIDEyM2wtOTggMGMwLTEzMS42IDgwLjctMTc2LjggMTQwLjItMjA5LjR6Il19LG1ocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkb2NodWIiLGljb246WzQ0OCw1MTIsW10sImYzOTQiLCJNNDEzLjkgMTYwTDI3MiAxNjAgMjcyIDE5LjYgNDEzLjkgMTYwek0zMjAgMTkybDAgMTMwYzAgNjYuOC0zNi41IDEwMC4xLTExMy4zIDEwMC4xbC05NC43IDAgMC0zMzcuMyA5NC43IDBjMTIgMCAyMy4xIC44IDMzLjEgMi41bDAtODRDMjI4LjkgMS4xIDIxNy40IDAgMjA1LjIgMEwxNiAwIDE2IDUxMiAyMDUuMiA1MTJDMzQ1LjcgNTEyIDQxNiA0NDcuNCA0MTYgMzE4LjFsMC0xMjYuMS05NiAweiJdfSxnaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltZW8iLGljb246WzQ0OCw1MTIsW10sImY0MGEiLCJNNDAzLjIgMzJMNDQuOCAzMkMyMC4xIDMyIDAgNTIuMSAwIDc2LjhMMCA0MzUuMkMwIDQ1OS45IDIwLjEgNDgwIDQ0LjggNDgwbDM1OC40IDBjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0LjhsMC0zNTguNEM0NDggNTIuMSA0MjcuOSAzMiA0MDMuMiAzMnpNMzc3IDE4MC44Yy0xLjQgMzEuNS0yMy40IDc0LjctNjYgMTI5LjQtNDQgNTcuMi04MS4zIDg1LjgtMTExLjcgODUuOC0xOC45IDAtMzQuOC0xNy40LTQ3LjktNTIuMy0yNS41LTkzLjMtMzYuNC0xNDgtNTcuNC0xNDgtMi40IDAtMTAuOSA1LjEtMjUuNCAxNS4yTDUzLjQgMTkxLjNjMzcuMy0zMi44IDcyLjktNjkuMiA5NS4yLTcxLjIgMjUuMi0yLjQgNDAuNyAxNC44IDQ2LjUgNTEuNyAyMC43IDEzMS4yIDI5LjkgMTUxIDY3LjYgOTEuNiAxMy41LTIxLjQgMjAuOC0zNy43IDIxLjgtNDguOSAzLjUtMzMuMi0yNS45LTMwLjktNDUuOC0yMi40IDE1LjktNTIuMSA0Ni4zLTc3LjQgOTEuMi03NiAzMy4zIC45IDQ5IDIyLjUgNDcuMSA2NC43eiJdfSxiaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWF4Y2RuIixpY29uOls1MTIsNTEyLFtdLCJmMTM2IiwiTTQ2MS4xIDQ0Mi43bC05Ny40IDAgNTEuOS0yNDIuN2MyLjMtMTAuMiAuOS0xOS41LTQuNC0yNS43LTUtNi4xLTEzLjctOS42LTI0LjItOS42bC00OS4zIDAtNTkuNSAyNzgtOTcuNCAwIDU5LjUtMjc4LTgzLjQgMC01OS41IDI3OC05Ny40IDAgNTkuNS0yNzgtNDQuNi05NS40IDM3Mi4xIDBjMzkuNCAwIDc1LjMgMTYuMyA5OC4zIDQ0LjkgMjMuMyAyOC42IDMxLjggNjcuNCAyMy42IDEwNS45TDQ2MS4xIDQ0Mi43eiJdfSxYRWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZS1zdHJva2UiLGljb246WzQ0OCw1MTIsWyJmb250LWF3ZXNvbWUtYWx0Il0sImYzNWMiLCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTU0IDU4YzAgOS4zLTQuOCAxNy40LTEyLjEgMjJsMTg4LjkgMGM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCAxLjgtLjQgMy43LTEuMSA1LjRMMzEyIDI2NCAzNDIuOSAzMzMuNGMuOCAxLjcgMS4xIDMuNSAxLjEgNS40IDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMmwtMTg2LjggMCAwIDMyLTMyIDAgMC0yMDkuNWMtNi4xLTQuOC0xMC0xMi4yLTEwLTIwLjUgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNnoiXX0seGhyPVhFZSx2aHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BlYWthcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNmMyIsIk02NC40IDM5MS44Qy0xNSAzMDMuNi03LjYgMTY3LjQgODEuMSA4Ny42czIyNC44LTczIDMwNC4yIDE1LjIgNzIgMjI0LjQtMTYuNiAzMDQuMWMtMTguNyAxNi45IDY0IDQzLjEgNDIgNTIuMy04Mi4xIDM0LjItMjUzLjkgMzUtMzQ2LjItNjcuNWwwIDB6TTI3Ny43IDE4MC4ybDM4LjUtNDAuOWMtOS42LTguOS0zMi0yNi44LTc2LjItMjcuNi01Mi4zLS45LTk1LjkgMjguMy05Ni44IDgwLS4yIDExLjMgLjMgMzYuNyAyOS40IDU0LjggMzQuNSAyMS40IDg2LjUgMjEuNSA4NiA1Mi4zLS40IDIxLjMtMjYuNCAyNS44LTM4LjYgMjUuNi0zIDAtMzAuMi0uNS00Ny42LTI0LjZsLTQwIDQyLjZjMjguMiAyNyA1OSAzMi42IDgzLjUgMzMgMTAuMiAuMiA5Ni40IC4zIDk3LjgtODEgLjMtMTUuOC0yLjEtMzkuNy0yOC45LTU2LjYtMzQuNC0yMS42LTg1LTE5LjQtODQuNC00OS43IC40LTIzLjMgMzEtMjUuNCAzNy41LTI1LjMgLjQgMCAyNi42IC4zIDM5LjYgMTcuNGwwIDB6Il19LHlocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYW50YXN5LWZsaWdodC1nYW1lcyIsaWNvbjpbNTEyLDUxMixbXSwiZjZkYyIsIk0yNTYgMzIuOUwzMi45IDI1NiAyNTYgNDc5LjEgNDc5LjEgMjU2IDI1NiAzMi45ek04OC4zIDI1NS44YzItMiAxMS45LTEyLjMgOTYuNS05Ny41IDQxLjQtNDEuOCA4Ni4yLTQzLjggMTE5LjgtMTguNyAyNC42IDE4LjQgNjIuMSA1OC45IDYyLjEgNTkgLjcgLjcgMS4xIDIuOSAuNiAzLjQtMTEuMyAxMS44LTIyLjcgMjMuNS0zMy41IDM0LjctMzQuMi0zMi4zLTQwLjUtMzguMi00OC41LTQ0LTE3LjgtMTIuNy00MS40LTEwLjEtNTcgNS4xLTIuMiAyLjEtMS44IDMuNCAuMSA1LjQgMi45IDIuOSAyOC4xIDI4LjMgMzUuMSAzNS44LTExLjkgMTEuNi0yMy43IDIzLTM1LjcgMzQuNy0xMi0xMi41LTI0LjUtMjUuNS0zNi41LTM4LjEtMjEuNCAyMS4xLTQxLjcgNDEuMS02MS44IDYxTDg4LjMgMjU1Ljh6TTMyMy4yIDM1Ny40Yy0zNS41IDM1LjQtNzguMSAzOC4xLTEwNyAyMC41LTIyLjEtMTMuNS0zOS40LTMyLjEtNzIuOS02Ni44IDEyLTEyLjQgMjMuOC0yNC40IDM1LjQtMzYuMyAzMyAzMS45IDM3LjEgMzYgNDQuNyA0Mi4xIDE4LjUgMTQuNyA0Mi41IDEzLjcgNTkuMy0xLjggMy43LTMuNCAzLjctMy42IC4xLTcuMi0xMC42LTEwLjctMjEuMi0yMS40LTMxLjgtMzIuMi0xLjMtMS4zLTMtMi41LS44LTQuNyAxMC44LTEwLjcgMjEuNS0yMS41IDMyLjItMzIuMyAuMy0uMyAuNi0uNCAxLjktMS4xIDEyLjQgMTIuOSAyNC45IDI1LjkgMzcuMiAzOC44IDIxLTIwLjcgNDEuMi00MC43IDYxLjMtNjAuNCAxMy43IDEzLjQgMjcuMSAyNi42IDQwLjkgNDAtMjAuMiAyMC45LTgxLjcgODIuNy0xMDAuNSAxMDEuNXpNMjU2IDBMMCAyNTYgMjU2IDUxMiA1MTIgMjU2IDI1NiAwek0xNiAyNTZMMjU2IDE2IDQ5NiAyNTYgMjU2IDQ5NiAxNiAyNTZ6Il19LHdocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW51eCIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3YyIsIk0yMjAuOSAxMjMuM2MxIC41IDEuOCAxLjcgMyAxLjcgMS4xIDAgMi44LS40IDIuOS0xLjUgLjItMS40LTEuOS0yLjMtMy4yLTIuOS0xLjctLjctMy45LTEtNS41LS4xLS40IC4yLS44IC43LS42IDEuMSAuMyAxLjMgMi4zIDEuMSAzLjQgMS43ek0xOTkgMTI1YzEuMiAwIDItMS4yIDMtMS43IDEuMS0uNiAzLjEtLjQgMy41LTEuNiAuMi0uNC0uMi0uOS0uNi0xLjEtMS42LS45LTMuOC0uNi01LjUgLjEtMS4zIC42LTMuNCAxLjUtMy4yIDIuOSAuMSAxIDEuOCAxLjUgMi44IDEuNHpNNDIwIDQwMy44Yy0zLjYtNC01LjMtMTEuNi03LjItMTkuNy0xLjgtOC4xLTMuOS0xNi44LTEwLjUtMjIuNC0xLjMtMS4xLTIuNi0yLjEtNC0yLjktMS4zLS44LTIuNy0xLjUtNC4xLTIgOS4yLTI3LjMgNS42LTU0LjUtMy43LTc5LjEtMTEuNC0zMC4xLTMxLjMtNTYuNC00Ni41LTc0LjQtMTcuMS0yMS41LTMzLjctNDEuOS0zMy40LTcyIC41LTQ1LjkgNS4xLTEzMS4yLTc1LjgtMTMxLjMtMTAyLjQtLjItNzYuOCAxMDMuNC03Ny45IDEzNS4yLTEuNyAyMy40LTYuNCA0MS44LTIyLjUgNjQuNy0xOC45IDIyLjUtNDUuNSA1OC44LTU4LjEgOTYuNy02IDE3LjktOC44IDM2LjEtNi4yIDUzLjMtNi41IDUuOC0xMS40IDE0LjctMTYuNiAyMC4yLTQuMiA0LjMtMTAuMyA1LjktMTcgOC4zcy0xNCA2LTE4LjUgMTQuNWMtMi4xIDMuOS0yLjggOC4xLTIuOCAxMi40IDAgMy45IC42IDcuOSAxLjIgMTEuOCAxLjIgOC4xIDIuNSAxNS43IC44IDIwLjgtNS4yIDE0LjQtNS45IDI0LjQtMi4yIDMxLjcgMy44IDcuMyAxMS40IDEwLjUgMjAuMSAxMi4zIDE3LjMgMy42IDQwLjggMi43IDU5LjMgMTIuNSAxOS44IDEwLjQgMzkuOSAxNC4xIDU1LjkgMTAuNCAxMS42LTIuNiAyMS4xLTkuNiAyNS45LTIwLjIgMTIuNS0uMSAyNi4zLTUuNCA0OC4zLTYuNiAxNC45LTEuMiAzMy42IDUuMyA1NS4xIDQuMSAuNiAyLjMgMS40IDQuNiAyLjUgNi43bDAgLjFjOC4zIDE2LjcgMjMuOCAyNC4zIDQwLjMgMjMgMTYuNi0xLjMgMzQuMS0xMSA0OC4zLTI3LjkgMTMuNi0xNi40IDM2LTIzLjIgNTAuOS0zMi4yIDcuNC00LjUgMTMuNC0xMC4xIDEzLjktMTguMyAuNC04LjItNC40LTE3LjMtMTUuNS0yOS43ek0yMjMuOCA4Ny4zYzkuOC0yMi4yIDM0LjItMjEuOCA0NC0uNCA2LjUgMTQuMiAzLjYgMzAuOS00LjMgNDAuNC0xLjYtLjgtNS45LTIuNi0xMi42LTQuOSAxLjEtMS4yIDMuMS0yLjcgMy45LTQuNiA0LjgtMTEuOC0uMi0yNy05LjEtMjcuMy03LjMtLjUtMTMuOSAxMC44LTExLjggMjMtNC4xLTItOS40LTMuNS0xMy00LjQtMS02LjktLjMtMTQuNiAyLjktMjEuOHpNMTgzLjEgNzUuOGMxMC4xIDAgMjAuOCAxNC4yIDE5LjEgMzMuNS0zLjUgMS03LjEgMi41LTEwLjIgNC42IDEuMi04LjktMy4zLTIwLjEtOS42LTE5LjYtOC40IC43LTkuOCAyMS4yLTEuOCAyOC4xIDEgLjggMS45LS4yLTUuOSA1LjUtMTUuNi0xNC42LTEwLjUtNTIuMSA4LjQtNTIuMXptLTEzLjYgNjAuN2M2LjItNC42IDEzLjYtMTAgMTQuMS0xMC41IDQuNy00LjQgMTMuNS0xNC4yIDI3LjktMTQuMiA3LjEgMCAxNS42IDIuMyAyNS45IDguOSA2LjMgNC4xIDExLjMgNC40IDIyLjYgOS4zIDguNCAzLjUgMTMuNyA5LjcgMTAuNSAxOC4yLTIuNiA3LjEtMTEgMTQuNC0yMi43IDE4LjEtMTEuMSAzLjYtMTkuOCAxNi0zOC4yIDE0LjktMy45LS4yLTctMS05LjYtMi4xLTgtMy41LTEyLjItMTAuNC0yMC0xNS04LjYtNC44LTEzLjItMTAuNC0xNC43LTE1LjMtMS40LTQuOSAwLTkgNC4yLTEyLjN6bTMuMyAzMzRjLTIuNyAzNS4xLTQzLjkgMzQuNC03NS4zIDE4LTI5LjktMTUuOC02OC42LTYuNS03Ni41LTIxLjktMi40LTQuNy0yLjQtMTIuNyAyLjYtMjYuNGwwLS4yYzIuNC03LjYgLjYtMTYtLjYtMjMuOS0xLjItNy44LTEuOC0xNSAuOS0yMCAzLjUtNi43IDguNS05LjEgMTQuOC0xMS4zIDEwLjMtMy43IDExLjgtMy40IDE5LjYtOS45IDUuNS01LjcgOS41LTEyLjkgMTQuMy0xOCA1LjEtNS41IDEwLTguMSAxNy43LTYuOSA4LjEgMS4yIDE1LjEgNi44IDIxLjkgMTZsMTkuNiAzNS42YzkuNSAxOS45IDQzLjEgNDguNCA0MSA2OC45em0tMS40LTI1LjljLTQuMS02LjYtOS42LTEzLjYtMTQuNC0xOS42IDcuMSAwIDE0LjItMi4yIDE2LjctOC45IDIuMy02LjIgMC0xNC45LTcuNC0yNC45LTEzLjUtMTguMi0zOC4zLTMyLjUtMzguMy0zMi41LTEzLjUtOC40LTIxLjEtMTguNy0yNC42LTI5LjlzLTMtMjMuMy0uMy0zNS4yYzUuMi0yMi45IDE4LjYtNDUuMiAyNy4yLTU5LjIgMi4zLTEuNyAuOCAzLjItOC43IDIwLjgtOC41IDE2LjEtMjQuNCA1My4zLTIuNiA4Mi40IC42LTIwLjcgNS41LTQxLjggMTMuOC02MS41IDEyLTI3LjQgMzcuMy03NC45IDM5LjMtMTEyLjcgMS4xIC44IDQuNiAzLjIgNi4yIDQuMSA0LjYgMi43IDguMSA2LjcgMTIuNiAxMC4zIDEyLjQgMTAgMjguNSA5LjIgNDIuNCAxLjIgNi4yLTMuNSAxMS4yLTcuNSAxNS45LTkgOS45LTMuMSAxNy44LTguNiAyMi4zLTE1IDcuNyAzMC40IDI1LjcgNzQuMyAzNy4yIDk1LjcgNi4xIDExLjQgMTguMyAzNS41IDIzLjYgNjQuNiAzLjMtLjEgNyAuNCAxMC45IDEuNCAxMy44LTM1LjctMTEuNy03NC4yLTIzLjMtODQuOS00LjctNC42LTQuOS02LjYtMi42LTYuNSAxMi42IDExLjIgMjkuMiAzMy43IDM1LjIgNTkgMi44IDExLjYgMy4zIDIzLjcgLjQgMzUuNyAxNi40IDYuOCAzNS45IDE3LjkgMzAuNyAzNC44LTIuMi0uMS0zLjIgMC00LjIgMCAzLjItMTAuMS0zLjktMTcuNi0yMi44LTI2LjEtMTkuNi04LjYtMzYtOC42LTM4LjMgMTIuNS0xMi4xIDQuMi0xOC4zIDE0LjctMjEuNCAyNy4zLTIuOCAxMS4yLTMuNiAyNC43LTQuNCAzOS45LS41IDcuNy0zLjYgMTgtNi44IDI5LTMyLjEgMjIuOS03Ni43IDMyLjktMTE0LjMgNy4yem0yNTcuNC0xMS41Yy0uOSAxNi44LTQxLjIgMTkuOS02My4yIDQ2LjUtMTMuMiAxNS43LTI5LjQgMjQuNC00My42IDI1LjVzLTI2LjUtNC44LTMzLjctMTkuM2MtNC43LTExLjEtMi40LTIzLjEgMS4xLTM2LjMgMy43LTE0LjIgOS4yLTI4LjggOS45LTQwLjYgLjgtMTUuMiAxLjctMjguNSA0LjItMzguNyAyLjYtMTAuMyA2LjYtMTcuMiAxMy43LTIxLjEgLjMtLjIgLjctLjMgMS0uNSAuOCAxMy4yIDcuMyAyNi42IDE4LjggMjkuNSAxMi42IDMuMyAzMC43LTcuNSAzOC40LTE2LjMgOS0uMyAxNS43LS45IDIyLjYgNS4xIDkuOSA4LjUgNy4xIDMwLjMgMTcuMSA0MS42IDEwLjYgMTEuNiAxNCAxOS41IDEzLjcgMjQuNnpNMTczLjQgMTQ4LjdjMiAxLjkgNC43IDQuNSA4IDcuMSA2LjYgNS4yIDE1LjggMTAuNiAyNy4zIDEwLjYgMTEuNiAwIDIyLjUtNS45IDMxLjgtMTAuOCA0LjktMi42IDEwLjktNyAxNC44LTEwLjRzNS45LTYuMyAzLjEtNi42LTIuNiAyLjYtNiA1LjFjLTQuNCAzLjItOS43IDcuNC0xMy45IDkuOC03LjQgNC4yLTE5LjUgMTAuMi0yOS45IDEwLjJzLTE4LjctNC44LTI0LjktOS43Yy0zLjEtMi41LTUuNy01LTcuNy02LjktMS41LTEuNC0xLjktNC42LTQuMy00LjktMS40LS4xLTEuOCAzLjcgMS43IDYuNXoiXX0sa2hyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvdHRvbi1idXJlYXUiLGljb246WzUxMiw1MTIsW10sImY4OWUiLCJNNDc0LjMgMzMwLjRDNDUwLjYgNDIyLjMgMzgwLjEgNDc1IDI3Mi40IDQ3OC44bDAtNDkuMmMwLTQ4IDI2LjQtNzQuNCA3NC40LTc0LjQgNjIgMCA5OS4yLTM3LjIgOTkuMi05OS4yIDAtNjEuNC0zNi41LTk4LjMtOTcuNC05OS4xLTMzLTY5LjMtMTQ2LjUtNjQuNy0xNzcuMiAwLTYwLjkgLjgtOTcuNCAzNy43LTk3LjQgOTkuMSAwIDYyLjEgMzcuMyA5OS40IDk5LjQgOTkuNCA0OCAwIDc0LjYgMjYuMiA3NC42IDc0LjRsMCA0OS4yYy0xMzQuNC01LTIxMS4xLTg1LjEtMjExLjEtMjIzIDAtMTQxLjggODEuNC0yMjMuMiAyMjMuMi0yMjMuMiAxMTQuOCAwIDE4OS44IDUzLjIgMjE0LjcgMTQ4LjhsMjUuMyAwQzQ3My45IDcxLjUgMzg4LjIgOCAyNTkuOCA4IDEwNSA4IDEyIDEwMS4yIDEyIDI1NS44IDEyIDQxMS4xIDEwNS4yIDUwNC4zIDI1OS44IDUwNCAzODguMSA1MDQgNDczLjcgNDQwLjIgNDk5LjUgMzMwLjRsLTI1LjIgMHpNMzU3IDE4Mi4zYzQxLjQgMy40IDY0LjIgMjkgNjQuMiA3My43IDAgNDgtMjYuNCA3NC40LTc0LjQgNzQuNC0yOC42IDAtNDkuMy05LjYtNjEuNi0yNy4zIDgzLjEtMTYuNSA3NS42LTk5LjcgNzEuOC0xMjAuN3ptLTgxLjcgOTcuNGMtMi41LTEwLjMtMTYuMy04NyA1Ni4yLTk3IDIuMyAxMC4xIDE2LjUgODcuMS01Ni4zIDk3bDAgMHpNMjYwIDEzMmMyOC42IDAgNDkgOS43IDYxLjQgMjcuNi0yOC40IDUuNS00OS40IDIwLjYtNjEuNiA0My40LTEyLjItMjIuOS0zMy4yLTM4LTYxLjYtNDMuNCAxMi40LTE3LjcgMzMuMy0yNy40IDYxLjYtMjcuNGwuMi0uM3ptLTcxLjUgNTAuN2M3My4yIDEwLjYgNTguOSA4Ni44IDU2LjUgOTctNzIuNC05LjgtNTktODctNTYuMi05N2wtLjIgMHpNMTczLjIgMzMwLjRjLTQ4IDAtNzQuNC0yNi40LTc0LjQtNzQuNCAwLTQ0LjQgMjIuOS03MCA2NC4yLTczLjctNi44IDM3LjItMS40IDEwNi41IDcxLjYgMTIwLjctMTIuMSAxNy42LTMyLjggMjcuMy02MS4xIDI3LjNsLS4zIDB6bTUzLjIgMTIuNGMxNC4zLTcuNiAyNi0xOS4zIDMzLjYtMzMuNSA3LjggMTQuNSAxOS4zIDI1LjUgMzMuOCAzMy41LTE0LjQgNy42LTI2LjEgMTkuNC0zMy42IDMzLjgtOC0xNC41LTE5LjEtMjYuMi0zMy42LTMzLjhsLS4zIDB6Il19LFNocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtd2FsbGV0IixpY29uOls0NDgsNTEyLFtdLCJmMWVlIiwiTTE1Ni44IDEyNi44YzM3LjYgNjAuNiA2NC4yIDExMy4xIDg0LjMgMTYyLjUtOC4zIDMzLjgtMTguOCA2Ni41LTMxLjMgOTguMy0xMy4yLTUyLjMtMjYuNS0xMDEuMy01Ni0xNDguNSA2LjUtMzYuNCAyLjMtNzMuNiAzLTExMi4zek0xMDkuMyAyMDBsLTkzLjIgMGMtNi41IDAtMTAuNSA3LjUtNi41IDEyLjcgNDIuMiA1NC4zIDcxLjcgMTE3LjggOTEuNyAxODcuM2wxMDMuNSAwYy0xNi4yLTY5LjctMzguNy0xMzMuNy04Mi41LTE5My41LTMtNC04LTYuNS0xMy02LjV6bTQ3LjgtODhjNjguNSAxMDggMTMwIDIzNC41IDEzOC4yIDM2OEw0MDkgNDgwYy0xMi0xMzgtNjguNC0yNjUtMTQzLjItMzY4bC0xMDguNyAwek00MDguOSA0My41Yy0xLjgtNi44LTguMi0xMS41LTE1LjItMTEuNWwtODguMyAwYy01LjMgMC05IDUtNy44IDEwLjMgMTMuMiA0Ni41IDIyLjMgOTUuNSAyNi41IDE0NiA0OC4yIDg2LjIgNzkuNyAxNzguMyA5MC42IDI3MC44IDE1LjgtNjAuNSAyNS4zLTEzMy41IDI1LjMtMjAzIDAtNzMuNi0xMi4xLTE0NS4xLTMxLjEtMjEyLjZ6Il19LE1ocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3Vyc3F1YXJlIixpY29uOlszODQsNTEyLFtdLCJmMTgwIiwiTTMzMS4xIDNMNTcuOSAzQzIwLjQgMyA4IDMxLjMgOCA0OS4xTDggNDgyLjljMCAyMC4zIDEyLjEgMjcuNyAxOC4yIDMwLjEgNi4yIDIuNSAyMi44IDQuNiAzMi45LTcuMSAxMjguOS0xNDkuNCAxMzEuMS0xNTEuOSAxMzEuMS0xNTEuOSAzLjEtMy40IDMuNC0zLjEgNi44LTMuMWw4My40IDBjMzUuMSAwIDQwLjYtMjUuMiA0NC4zLTM5LjdsNDguNi0yNDNDMzgxLjggMjUuOCAzNzEuMSAzIDMzMS4xIDN6TTMxNC44IDc2LjhsLTExLjQgNTkuN2MtMS4yIDYuNS05LjUgMTMuMi0xNi45IDEzLjJsLTEwNi40IDBjLTEyIDAtMjAuNiA4LjMtMjAuNiAyMC4zbDAgMTNjMCAxMiA4LjYgMjAuNiAyMC42IDIwLjZsOTAuNCAwYzguMyAwIDE2LjYgOS4yIDE0LjggMTguMi0xLjggOC45LTEwLjUgNTMuOC0xMS40IDU4LjgtLjkgNC45LTYuOCAxMy41LTE2LjkgMTMuNWwtNzMuNSAwYy0xMy41IDAtMTcuMiAxLjgtMjYuNSAxMi42IDAgMC04LjkgMTEuNC04OS41IDEwOC4zLS45IC45LTEuOCAuNi0xLjgtLjNsMC0zMzguOGMwLTcuNyA2LjgtMTYuNiAxNi42LTE2LjZsMjE5IDBjOC4yIDAgMTUuNiA3LjcgMTMuNSAxNy41eiJdfSxDaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2hpcnRzaW5idWxrIixpY29uOls0NDgsNTEyLFtdLCJmMjE0IiwiTTEwMCA0MTAuM2wzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjQtNC40IDkuOXptMzkuNCAxNy41bDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNC00LjQgOS45em0xNzIuMS0xNGw0LjQgOS45IDMwLjYtMTMuNC00LjQtOS45LTMwLjYgMTMuNHpNMTc5LjEgNDQ1bDMwLjMgMTMuNyA0LjQtOS45LTMwLjMtMTMuNC00LjQgOS42ek02MC40IDM5Mi44bDMwLjYgMTMuNCA0LjQtOS42LTMwLjYtMTMuNy00LjQgOS45em0yMTEuNCAzOC41bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy40em0tMzkuMyAxNy41bDQuNCA5LjkgMzAuNi0xMy43LTQuNC05LjYtMzAuNiAxMy40em0xMTguNC01Mi4ybDQuNCA5LjYgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy43ek0xNzAgNDYuNmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em0tNDcuMiAwbC0zMy42IDAgMCAxMC41IDMzLjUgMCAuMS0xMC41em0tNDcuMyAwbC0zMy4yIDAgMCAxMC41IDMzLjMgMC0uMS0xMC41em0xNDEuNSAwbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTk0LjUgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptLTk0LjYgMGwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em0xNDEuNSAwbC0zMy4zIDAgMCAxMC41IDMzLjMgMCAwLTEwLjV6TTUyLjggMzUxLjFsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptNzAtMjE1LjlsLTMzLjYgMCAwIDEwLjUgMzMuNSAwIC4xLTEwLjV6bS03MCAxMC42bDIyLjggMCAwLTEwLjUtMzMuNiAwIDAgMzMuNSAxMC44IDAgMC0yM3pNMjIxLjcgMzc0LjRhOTEuMyA5MS4zIDAgMSAwIDAtMTgyLjYgOTEuMyA5MS4zIDAgMSAwIDAgMTgyLjZ6TTE3My41IDI2My4zYzAtMjUuNCAyOS41LTMxLjggNDkuNi0zMS44IDE2LjkgMCAyOS4yIDUuOCA0NC4zIDEybC04LjggMTYuOS0uOSAwYy02LjQtOS45LTI0LjgtMTMuMS0zNS42LTEzLjEtOSAwLTI5LjggMS44LTI5LjggMTQuOSAwIDIxLjYgNzguNS0xMC4yIDc4LjUgMzcuOSAwIDI1LjQtMzEuNSAzMS4yLTUxIDMxLjItMTguMSAwLTMyLjQtMi45LTQ3LjItMTIuMmw5LTE4LjQgLjkgMGM2LjEgMTIuMiAyMy42IDE0LjkgMzUuOSAxNC45IDguNyAwIDMyLjctMS4yIDMyLjctMTQuMyAwLTI2LjEtNzcuNiA2LjMtNzcuNi0zOHpNNTIuOCAxNzguNGwtMTAuOCAwIDAgMzMuNiAxMC44IDAgMC0zMy42ek0zOTUuMiAzODQuNmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTUyLjggMzA3LjlsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXpNMCAzLjdsMCA0MDYgMjIxLjcgOTguNiAyMjYuMy05OC42IDAtNDA2LTQ0OCAwek00MTguOCAzOTAuOGwtMTk2LjggODUuNy0xOTIuOC04NS43IDAtMjcwLjEgMzg5LjcgMCAwIDI3MC4xLS4xIDB6bTAtMjk5LjNsLTM4OS42IDAgMC01OC42IDM4OS43IDAgMCA1OC42LS4xIDB6TTUyLjggMjIxLjZsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptMCA0My4ybC0xMC44IDAgMCAzMy41IDEwLjggMCAwLTMzLjV6TTE3MCAxMzUuMmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41ek0zOTUuMiAyOTguM2wxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6bTAtNDMuMmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTIxNyAxMzUuMmwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41ek0zOTUuMiAyMTJsMTAuOCAwIDAtMzMuNS0xMC44IDAgMCAzMy41em0wIDEyOS41bDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXptLTEzMS0yMDYuM2wtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptODMuNyAzMy42bDEwLjggMCAwLTMzLjUtMzMuNSAwIDAgMTAuNSAyMi44IDAtLjEgMjN6bS0zNi40LTMzLjZsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXoiXX0semhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pbnRiaXQiLGljb246WzUxMiw1MTIsW10sImU2MmYiLCJNNzMuMiA1MTJsMC03My4xIDI5Mi41IDAgMC03My4yIDczLjIgMCAwLTE0Ni4zIDczLjEgMCAwLTIxOS40LTIxOS40IDAgMCA3My4xLTE0Ni4zIDAgMCA3My4yLTczLjEgMCAwIDI5Mi42LTczLjIgMCAwIDczLjEgNzMuMiAwem03My4xLTIxOS40bDczLjIgMCAwIDczLjEtNzMuMiAwIDAtNzMuMXptNzMuMi03My4xbDczLjEgMCAwIDczLjEtNzMuMiAwIDAtNzMuMiAuMSAuMXptNzMuMSAwbDAtNzMuMiA3My4yIDAgMCA3My4xLTczLjIgMCAwIC4xek0zNjUuNyA3My4xbDczLjIgMCAwIDczLjItNzMuMiAwIDAtNzMuMnoiXX0sX2hyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Inp1bGlwIixpY29uOls0NDgsNTEyLFtdLCJlODUzIiwiTTQyNCA5OWMwIDIyLjYtMTAuMSA0Mi42LTI1LjUgNTQuOEwyNDkuMyAyODcuN2MtMi44IDIuNC02LjQtMS41LTQuNC00LjdsNTQuNy0xMTAuMWMxLjUtMy4xLS41LTYuOS0zLjYtNi45TDgzLjggMTY2QzUwLjkgMTY2IDI0IDEzNS45IDI0IDk5IDI0IDYyLjEgNTAuOSAzMiA4My44IDMybDI4MC40IDBDMzk3LjEgMzIgNDI0IDYyLjEgNDI0IDk5ek04My44IDQ4MGwyODAuNCAwYzMyLjkgMCA1OS44LTMwLjIgNTkuOC02N3MtMjYuOS02Ny01OS44LTY3bC0yMTIuMyAwYy0zLjEgMC01LjEtMy44LTMuNi02LjlMMjAzLjEgMjI5YzItMy4yLTEuNi03LjEtNC40LTQuN0w0OS41IDM1OC4yQzM0LjEgMzcwLjQgMjQgMzkwLjQgMjQgNDEzIDI0IDQ0OS44IDUwLjkgNDgwIDgzLjggNDgweiJdfSxUaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RheWxpbmtlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNmNSIsIk0zODYuNyAyOTIuNWwyLjcgMi43LTE3MC0xNjcuM2MtMy41LTMuNS05LjctMy43LTEzLjgtLjVMMTQ4LjMgMTcxYy00LjIgMy4yLTQuNiA4LjctMS4xIDEyLjJsNjguMSA2NC4zYzMuNiAzLjUgOS45IDMuNyAxNCAuNWwuMS0uMWM0LjEtMy4yIDEwLjQtMyAxNCAuNWw4NCA4MS4zYzMuNiAzLjUgMy4yIDktLjkgMTIuMmwtOTMuMiA3NGMtNC4yIDMuMy0xMC41IDMuMS0xNC4yLS40TDY3LjIgMjY4Yy0zLjUtMy41LTkuNy0zLjctMTMuOS0uNUw3LjUgMzAyLjRjLTQuMiAzLjItNC43IDguNy0xLjIgMTIuMkwyMTUgNTEwLjdzNy40IDYuOCAxNy4zLS44TDQzMC4zIDM0NmM0LTMuMiA0LjQtOC43IC43LTEyLjJsLTQ0LjMtNDEuM3ptNTQuNS04My40TDIzMC43IDIuNWMtMS41LTEuMi04LTUuNS0xNi4zIDEuMUw3LjYgMTY1LjdjLTQuMiAzLjItNC44IDguNy0xLjIgMTIuMmw0Mi4zIDQxLjcgMTcxLjcgMTY1LjFjMy43IDMuNSAxMC4xIDMuNyAxNC4zIC40bDUwLjItMzguOC0uMy0uMyA3LjctNmM0LjItMy4yIDQuNi04LjcgLjktMTIuMmwtNTcuMS01NC40Yy0zLjYtMy41LTEwLTMuNy0xNC4yLS41bC0uMSAuMWMtNC4yIDMuMi0xMC41IDMuMS0xNC4yLS40TDExMyAxODAuOGMtMy42LTMuNS0zLjEtOC45IDEuMS0xMi4ybDkyLjItNzEuNWM0LjEtMy4yIDEwLjMtMyAxMy45IC41bDE2MC40IDE1OWMzLjcgMy41IDEwIDMuNyAxNC4xIC41bDQ1LjgtMzUuOGM0LjEtMy4yIDQuNC04LjcgLjctMTIuMnoiXX0sTGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlYmZsb3ciLGljb246WzY0MCw1MTIsW10sImU2NWMiLCJNNjQwIDY0bC0yMDQuMiAzOTkuMi0xOTEuOCAwIDg1LjUtMTY1LjUtMy44IDBDMjU1LjEgMzg5LjMgMTQ5LjkgNDQ5LjUgMCA0NjMuMkwwIDMwMC4xczk1LjktNS43IDE1Mi4zLTY0LjlsLTE1Mi4zIDAgMC0xNzEuMiAxNzEuMSAwIDAgMTQwLjggMy44IDAgNzAtMTQwLjggMTI5LjQgMCAwIDEzOS45IDMuOCAwIDcyLjYtMTM5LjkgMTg5LjMgMHoiXX0sRGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlbnJlbiIsaWNvbjpbNTEyLDUxMixbXSwiZjE4YiIsIk0yMTQgMTY5LjFDMjE0IDI3OS41IDE1MyAzNzQuNSA2Ni40IDQxNi41IDMwIDM3My4yIDggMzE3LjcgOCAyNTYuNiA4IDEzMy45IDk3LjEgMzIuMiAyMTQgMTIuNWwwIDE1Ni42ek0yNTUgNTA0Yy00Mi45IDAtODMuMy0xMS0xMTguNS0zMC40IDU3LjItMzYuMSAxMDMuNC05MC43IDExOC41LTE1NC42IDE1LjUgNjMuOSA2MS43IDExOC41IDExOC44IDE1NC43LTM1LjEgMTkuMy03NS41IDMwLjMtMTE4LjggMzAuM3ptMTkwLjYtODcuNUMzNTkgMzc0LjUgMjk4IDI3OS42IDI5OCAxNjkuMWwwLTE1Ni42YzExNi45IDE5LjcgMjA2IDEyMS40IDIwNiAyNDQuMSAwIDYxLjEtMjIgMTE2LjYtNTguNCAxNTkuOXoiXX0sJGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtvLWZpIixpY29uOls1MTIsNTEyLFtdLCJlODU2IiwiTTI0OS44IDc1Yzg5LjggMCAxMTMgMS4xIDE0Ni4zIDQuNCA3OC4xIDcuOCAxMjMuNiA1NiAxMjMuNiAxMjUuMmwwIDguOWMwIDY0LjMtNDcuMSAxMTYuOS0xMTAuOCAxMjIuNC01IDE2LjYtMTIuOCAzMy4yLTIzLjMgNDkuOS0yNC40IDM3LjctNzMuMSA4NS4zLTE2Mi45IDg1LjNsLTE3LjcgMGMtNzMuMSAwLTEyOS43LTMxLjYtMTYzLjUtODkuMi0yOS45LTUwLjQtMzMuOC0xMDYuNC0zMy44LTE4MS4yIDAtNzMuNyA0NC40LTExMy42IDk2LjQtMTIwLjIgMzkuMy01IDg4LjEtNS41IDE0NS43LTUuNXptMCA0MS42Yy02MC40IDAtMTAzLjYgLjUtMTM2LjMgNS41LTQ2IDYuNy02NC4zIDMyLjctNjQuMyA3OS4ybC4yIDI1LjdjMS4yIDU3LjMgNy4xIDk3LjEgMjcuNSAxMzQuNSAyNi42IDQ5LjMgNzQuOCA2OC4yIDEyOS43IDY4LjJsMTcuMiAwYzcyIDAgMTA3LTM0LjkgMTI2LjMtNjUuNCA5LjQtMTUuNSAxNy43LTMyLjcgMjIuMi01NC4zbDMuMy0xMy44IDE5LjkgMGM0NC4zIDAgODIuNi0zNiA4Mi42LTgybDAtOC4zYzAtNTEuNS0zMi4yLTc4LjctODguMS04NS4zLTMxLjYtMi44LTUwLjQtMy45LTE0MC4yLTMuOXpNMjY3IDE2OS4yYzM4LjIgMCA2NC44IDMxLjYgNjQuOCA2NyAwIDMyLjctMTguMyA2MS00Mi4xIDgzLjEtMTUgMTUtMzkuMyAzMC41LTU1LjkgNDAuNS00LjQgMi44LTEwIDQuNC0xNi43IDQuNC01LjUgMC0xMC41LTEuNy0xNS41LTQuNC0xNi42LTEwLTQxLTI1LjUtNTYuNS00MC41LTIxLjgtMjAuOC0zOS4yLTQ2LjktNDEuMy03N2wtLjItNi4xYzAtMzUuNSAyNS41LTY3IDY0LjMtNjcgMjIuNyAwIDM4LjggMTEuNiA0OS4zIDI3LjcgMTEuNi0xNi4xIDI3LjItMjcuNyA0OS45LTI3Ljd6bTEyMi41LTMuOWMyOC4zIDAgNDMuOCAxNi42IDQzLjggNDMuMnMtMTUuNSA0Mi43LTQzLjggNDIuN2MtOC45IDAtMTMuOC01LTEzLjgtMTEuN2wwLTYyLjZjMC02LjcgNS0xMS42IDEzLjgtMTEuNnoiXX0sQWhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJldiIsaWNvbjpbNDQ4LDUxMixbXSwiZjViMiIsIk0xNTguNyAyNzQuOWE2NS42IDY1LjYgMCAxIDEgMTMxLjIgMCA2NS42IDY1LjYgMCAxIDEgLTEzMS4yIDB6bTI3MC43LTUuMWwtLjEgMGMtLjctMjkuMy03LjctNTguMi0yMC41LTg0LjZzLTMxLjItNDkuNy01My44LTY4LjRMMzA5LjYgMTQzYzIyIDE0LjIgNDAuMSAzMy44IDUyLjcgNTYuOHMxOS4xIDQ4LjggMTkuMSA3NS4xYzAgODYuNi03MC41IDE1Ny4xLTE1Ny4xIDE1Ny4xUzY3LjIgMzYxLjUgNjcuMiAyNzQuOWMwLTgxLjkgNjMtMTQ5LjMgMTQzLTE1Ni40bDAgMzkuMSAxMDguOC02Mi44LTEwOC44LTYyLjggMCAzOC4zYy0xMDYuNyA3LjItMTkxIDk2LTE5MSAyMDQuNiAwIDExMS42IDg5LjEgMjAyLjMgMjAwLjEgMjA1bDAgLjEgMjEwLjIgMCAwLTIxMC4yeiJdfSxFaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2V5Y2RuIixpY29uOls1MTIsNTEyLFtdLCJmM2JhIiwiTTYzLjggNDA5LjNsNjAuNS01OWMzMi4xIDQyLjggNzEuMSA2NiAxMjYuNiA2Ny40IDMwLjUgLjcgNjAuMy03IDg2LjQtMjIuNCA1LjEgNS4zIDE4LjUgMTkuNSAyMC45IDIyLTMyLjIgMjAuNy02OS42IDMxLjEtMTA4LjEgMzAuMi00My4zLTEuMS04NC42LTE2LjctMTE3LjctNDQuNCAuMy0uNi0zOC4yIDM3LjUtMzguNiAzNy45IDkuNSAyOS44LTEzLjEgNjIuNC00Ni4zIDYyLjQtMjYuOC0uMS00Ny41LTIxLjctNDcuNS00OC41IDAtMzQuMyAzMy4xLTU2LjYgNjMuOC00NS42ek00MTguNyAxNTYuOWMxOS4xIDMxLjMgMjkuNiA2Ny40IDI4LjcgMTA0LTEuMSA0NC44LTE5IDg3LjUtNDguNiAxMjEgLjMgLjMgMjMuOCAyNS4yIDI0LjEgMjUuNSA5LjYtMS4zIDE5LjIgMiAyNS45IDkuMSAxMS4zIDEyIDEwLjkgMzAuOS0xLjEgNDIuNC0xMiAxMS4zLTMwLjkgMTAuOS00Mi40LTEuMS02LjctNy05LjQtMTYuOC03LjYtMjYuMy0yNC45LTI2LjYtNDQuNC00Ny4yLTQ0LjQtNDcuMiA0Mi43LTM0LjEgNjMuMy03OS42IDY0LjQtMTI0LjIgLjctMjguOS03LjItNTcuMi0yMS4xLTgyLjJsMjIuMS0yMXpNMTA0IDUzLjFjNi43IDcgOS40IDE2LjggNy42IDI2LjNsNDUuOSA0OC4xYy00LjcgMy44LTEzLjMgMTAuNC0yMi44IDIxLjMtMjUuNCAyOC41LTM5LjYgNjQuOC00MC43IDEwMi45LS43IDI4LjkgNi4xIDU3LjIgMjAgODIuNEw5MiAzNTUuNmMtMTkuMy0zMS42LTI4LjktNjcuNy0yNy44LTEwNC43IDEtNDQuNiAxOC4zLTg3LjYgNDcuNS0xMjEuMUw4Ni40IDEwMy40Yy05LjYgMS4zLTE5LjItMi0yNS45LTkuMS0xMS4zLTEyLTEwLjktMzAuOSAxLjEtNDIuNCAxMS45LTExLjIgMzAuNi0xMC45IDQyLjQgMS4yek00NjQuOSA4YzI2IDAgNDcuMSAyMi40IDQ3LjEgNDguM1M0OTAuOSAxMDQgNDY0LjkgMTA0Yy02LjMgLjEtMTQtMS4xLTE1LjktMS44bC02Mi45IDU5LjdjLTMyLjctNDMuNi03Ni43LTY1LjktMTI2LjktNjcuMi0zMC41LS43LTYwLjMgNi44LTg2LjIgMjIuNGwtMjEuMS0yMkMxODQuMSA3NC4zIDIyMS41IDY0IDI2MCA2NC45IDMwMy4zIDY2IDM0NC42IDgxLjYgMzc3LjcgMTA5LjVsNDEuMS0zOC42Yy0xLjUtNC43LTIuMi05LjYtMi4yLTE0LjUtLjEtMjYuNyAyMi4zLTQ4LjQgNDguMy00OC40ek0yNTYuNyAxMTMuNGM1LjUgMCAxMC45IC40IDE2LjQgMS4xIDc4LjEgOS44IDEzMy40IDgxLjEgMTIzLjggMTU5LjEtOS44IDc4LjEtODEuMSAxMzMuNC0xNTkuMSAxMjMuOC03OC4xLTkuOC0xMzMuNC04MS4xLTEyMy44LTE1OS4yIDkuMy03Mi40IDcwLjEtMTI0LjYgMTQyLjctMTI0Ljh6bS01OSAxMTkuNGMuNiAyMi43IDEyLjIgNDEuOCAzMi40IDUyLjJsLTExIDUxLjcgNzMuNyAwLTExLTUxLjdjMjAuMS0xMC45IDMyLjEtMjkgMzIuNC01Mi4yLS40LTMyLjgtMjUuOC01Ny41LTU4LjMtNTguMy0zMi4xIC44LTU3LjMgMjQuOC01OC4yIDU4LjN6Il19LElocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoaXJlLWEtaGVscGVyIixpY29uOls1MTIsNTEyLFtdLCJmM2IwIiwiTTQ0My4xIDBMNzEuOSAwQzY3LjkgMzcuMyAzNy40IDY3LjggMCA3MS43TDAgNDQzLjJjMzcuNCA0LjkgNjYgMzIuNCA3MS45IDY4LjhsMzcyLjIgMGMzLTM2LjQgMzIuNS02NS44IDY3LjktNjkuOGwwLTM3MC41QzQ3NS42IDY1LjggNDQ3IDM2LjQgNDQzLjEgMHptLTM3IDQwNC45Yy0zNi4zIDAtMTguOC0yLTU1LjEtMi0zNS44IDAtMjEgMi01Ni4xIDItNS45IDAtNC45LTguMiAwLTkuOCAyMi44LTcuNiAyMi45LTEwLjIgMjQuNi0xMi44IDEwLjQtMTUuNiA1LjktODMgNS45LTExMyAwLTUuMy02LjQtMTIuOC0xMy44LTEyLjhsLTExMS4yIDBjLTcuNCAwLTEzLjggNy41LTEzLjggMTIuOCAwIDMwLTQuNSA5Ny40IDUuOSAxMTMgMS43IDIuNSAxLjggNS4yIDI0LjYgMTIuOCA0LjkgMS42IDYgOS44IDAgOS44LTM1LjEgMC0yMC4zLTItNTYuMS0yLTM2LjMgMC0xOC44IDItNTUuMSAyLTcuOSAwLTUuOC0xMC44IDAtMTAuOCAxMC4yLTMuNCAxMy41LTMuNSAyMS43LTEzLjggNy43LTEyLjkgNy45LTQ0LjQgNy45LTEyNy44bDAtMTAxLjJjMC0yMi4yLTEyLjItMjguMy0yOC42LTMyLjQtOC44LTIuMi00LTExLjggMS0xMS44IDM2LjUgMCAyMC42IDIgNTcuMSAyIDMyLjcgMCAxNi41LTIgNDkuMi0yIDMuMyAwIDguNSA4LjMgMSAxMC44LTQuOSAxLjYtMjcuNiAzLjctMjcuNiAzOS4zIDAgNDUuNi0uMiA1NS44IDEgNjguOCAwIDEuMyAyLjMgMTIuOCAxMi44IDEyLjhsMTA5LjIgMGMxMC41IDAgMTIuOC0xMS41IDEyLjgtMTIuOCAxLjItMTMgMS0yMy4yIDEtNjguOCAwLTM1LjYtMjIuNy0zNy43LTI3LjYtMzkuMy03LjUtMi41LTIuMy0xMC44IDEtMTAuOCAzMi43IDAgMTYuNSAyIDQ5LjIgMiAzNi41IDAgMjAuNi0yIDU3LjEtMiA0LjkgMCA5LjkgOS42IDEgMTEuOC0xNi40IDQuMS0yOC42IDEwLjMtMjguNiAzMi40bDAgMTAxLjJjMCA4My40IC4xIDExNC45IDcuOSAxMjcuOCA4LjIgMTAuMiAxMS40IDEwLjQgMjEuNyAxMy44IDUuOCAwIDcuOCAxMC44IDAgMTAuOHoiXX0sSkVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1oYWNrZXItbmV3cyIsaWNvbjpbNDQ4LDUxMixbImhhY2tlci1uZXdzLXNxdWFyZSJdLCJmM2FmIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yMSAyMjkuMnMuMS0uMSAuMS0uMiAuMS0uMiAuMi0uMmMwIC4xIDAgLjMtLjEgLjRsLS4yIDB6TTIzOS4yIDM4NGwtMzEuNCAwIDAtMTAyLjctNzkuOC0xNTMuMyAzNy4zIDBjNDEuNSA3Ny43IDQ4LjEgOTUuOCA1NC4xIDExMiAxLjYgNC4zIDMuMSA4LjUgNS4yIDEzLjYgMy4yLTcgNS4xLTExLjkgNy4xLTE3LjMgNS45LTE1LjMgMTIuOC0zMy4yIDUzLjUtMTA4LjNsMzQuOCAwLTgwLjggMTU1LjEgMCAxMDAuOXoiXX0sUGhyPUpFZSxOaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1wZC1hbHQiLGljb246WzUxMiw1MTIsW10sImY0ZWQiLCJNMjU1LjYgOEMxMTIuNyA4IDggMTIzLjEgOCAyNTYgOCAzOTQuNSAxMjEuNiA1MDQgMjU1LjYgNTA0IDM4NS41IDUwNCA1MDQgNDAzLjEgNTA0IDI1NiA1MDQgMTE4LjEgMzk3LjQgOCAyNTUuNiA4em0uOCA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjUtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjYgMCAyMDIuOSA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNiAyMDIuOC0yMDIuOCAyMDIuOHpNMzI0LjcgMTg2bC01My4yIDAgMCAxMzcuMiA1My4yIDBjMjEuNCAwIDcwLTUuMSA3MC02OC42IDAtNjMuNC00OC42LTY4LjYtNzAtNjguNnptLjggMTA4LjVsLTE5LjkgMCAwLTc5LjcgMTkuNC0uMWMzLjggMCAzNS0yLjEgMzUgMzkuOSAwIDI0LjYtMTAuNSAzOS45LTM0LjUgMzkuOXpNMjExLjcgMTg2bC02OC4yIDAgMCAxMzcuMyAzNC42IDAgMC00NC4zIDI3IDBjNTQuMSAwIDU3LjEtMzcuNSA1Ny4xLTQ2LjUgMC0zMS0xNi44LTQ2LjUtNTAuNS00Ni41em0tNC45IDY3LjNsLTI5LjIgMCAwLTQxLjYgMjguMyAwYzMwLjkgMCAyOC44IDQxLjYgLjkgNDEuNnoiXX0sT2hyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9yY2lkIixpY29uOls1MTIsNTEyLFtdLCJmOGQyIiwiTTI5NC43IDE4OC4ybC00NS45IDAgMCAxNTMuOCA0Ny41IDBjNjcuNiAwIDgzLjEtNTEuMyA4My4xLTc2LjkgMC00MS42LTI2LjUtNzYuOS04NC43LTc2Ljl6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTc1LjIgMzY4LjhsLTI5LjggMCAwLTIwNy41IDI5LjggMCAwIDIwNy41ek0xNjAuMyA5OC41YTE5LjYgMTkuNiAwIDEgMSAwIDM5LjIgMTkuNiAxOS42IDAgMSAxIDAtMzkuMnpNMzAwIDM2OWwtODEgMCAwLTIwNy43IDgwLjYgMGM3Ni43IDAgMTEwLjQgNTQuOCAxMTAuNCAxMDMuOSAwIDUzLjMtNDEuNyAxMDMuOS0xMTAgMTAzLjl6Il19LGVJZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJib2FyZC1nYW1lLWdlZWsiLGljb246WzY0MCw1MTIsWyJiZ2ciXSwiZTg1NSIsIk0xNjguOCAxNjguM2wzMC4xLTguMi0xMi4zIDk4LjggMTYuNyAxNi4xLTM4LjkgOTEuMi0xMTEuOCA0MS4yLTUyLjYtMTMxLjggMTcuNy0xNy0xMC41LTg0LjMgMTkxLjItNzAuMy0yOS41IDY0LjN6bTE4MC42IDE2LjVjMTEuNiAwIDE5IDcuNCAxOSAxNy45bDAgMzEuNWMwIDkuNy02LjMgMTguOS0xOS41IDIyLjEgMTMuMSAzLjEgMjAuNSAxMiAyMC41IDIxLjRsMCAzMC45YzAgMTEuMS03LjQgMTguMS0xOSAxOC4xbC04OS4xIDAgMC0xNDEuOCA4OCAwek0yOTggMjk5LjhsMzMgMGMxLjUgMCAyLjEtMSAyLjEtMi4xbDAtMjYuOWMwLTEtLjYtMi4zLTIuMS0yLjNsLTMzIDAgMCAzMS4zem0wLTU3LjNsMzMgMGMxLjUgMCAyLjEtMS4xIDIuMS0yLjNsMC0yNC44YzAtMS0uNi0yLjMtMi4xLTIuM2wtMzMgMCAwIDI5LjR6bTIwNC4xLTI3LjJsLTY1LjYgMGMtMSAwLTIuMSAxLjEtMi4xIDIuM2wwIDc2LjFjMCAxLjMgMSAyLjEgMi4xIDIuMWwyOS43IDBjMS41IDAgMi4zLS44IDIuMy0yLjFsMC0yNC0xOS4zIDAgMTIuOC0zMCA0MC4xIDAgMCA3MC44YzAgOS4yLTcuMiAxNi4yLTE2LjMgMTYuMmwtNzEuNSAwYy05LjEgMC0xNi41LTctMTYuNS0xNi4ybDAtMTA5LjdjMC04LjYgNy40LTE2IDE2LjUtMTZsODcuOCAwIDAgMzAuNXptMTMyLjYgMGwtNjUuNiAwYy0xLjEgMC0yLjEgMS4xLTIuMSAyLjNsMCA3Ni4xYzAgMS4zIDEgMi4xIDIuMSAyLjFsMjkuNiAwYzEuNSAwIDIuMy0uOCAyLjMtMi4xbDAtMjQtMTkuMiAwIDEyLjgtMzAgNDAuMSAwIDAgNzAuOGMwIDkuMi03LjIgMTYuMi0xNi4zIDE2LjJsLTcxLjUgMGMtOS4xIDAtMTYuNS02LjktMTYuNS0xNi4ybDAtMTA5LjdjMC04LjYgNy40LTE2IDE2LjUtMTZsODcuOCAwIDAgMzAuNXoiXX0sUmhyPWVJZSxGaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmVoYW5jZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFiNCIsIk0yMzIgMjM3LjJjMzEuOC0xNS4yIDQ4LjQtMzguMiA0OC40LTc0IDAtNzAuNi01Mi42LTg3LjgtMTEzLjMtODcuOGwtMTY3LjEgMCAwIDM1NC40IDE3MS44IDBjNjQuNCAwIDEyNC45LTMwLjkgMTI0LjktMTAyLjkgMC00NC41LTIxLjEtNzcuNC02NC43LTg5Ljd6TTc3LjkgMTM1LjlsNzMuMSAwYzI4LjEgMCA1My40IDcuOSA1My40IDQwLjUgMCAzMC4xLTE5LjcgNDIuMi00Ny41IDQyLjJsLTc5IDAgMC04Mi43em04My4zIDIzMy43bC04My4zIDAgMC05Ny42IDg0LjkgMGMzNC4zIDAgNTYgMTQuMyA1NiA1MC42IDAgMzUuOC0yNS45IDQ3LTU3LjYgNDd6TTUxOS43IDEyOC45bC0xNDMuNyAwIDAtMzQuOSAxNDMuNyAwIDAgMzQuOXpNNTc2IDMwNS4yYzAtNzUuOS00NC40LTEzOS4yLTEyNC45LTEzOS4yLTc4LjIgMC0xMzEuMyA1OC44LTEzMS4zIDEzNS44IDAgNzkuOSA1MC4zIDEzNC43IDEzMS4zIDEzNC43IDYxLjMgMCAxMDEtMjcuNiAxMjAuMS04Ni4zbC02Mi4yIDBjLTYuNyAyMS45LTM0LjMgMzMuNS01NS43IDMzLjUtNDEuMyAwLTYzLTI0LjItNjMtNjUuM2wxODUuMSAwYy4zLTQuMiAuNi04LjcgLjYtMTMuMnpNMzkwLjQgMjc0YzIuMy0zMy43IDI0LjctNTQuOCA1OC41LTU0LjggMzUuNCAwIDUzLjIgMjAuOCA1Ni4yIDU0LjhsLTExNC43IDB6Il19LEJocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtb25lcm8iLGljb246WzUxMiw1MTIsW10sImYzZDAiLCJNMzYwIDM4NGwxMDguNCAwQzQyNSA0NTUuOSAzNDYuMSA1MDQgMjU2IDUwNFM4NyA0NTUuOSA0My42IDM4NGwxMDguNCAwIDAtMTI3LjggMTA0IDEwNC44IDEwNC0xMDUgMCAxMjh6TTk2IDMzNmwwLTIwOCAxNTkuNCAxNTkuNCAxNjAuNi0xNTkuNCAwIDIwOCA3NC44IDBjOC41LTI1LjEgMTMuMi01MiAxMy4yLTgwIDAtMTM3LTExMS0yNDgtMjQ4LTI0OFM4IDExOSA4IDI1NmMwIDI4IDQuNiA1NC45IDEzLjIgODBMOTYgMzM2eiJdfSxIaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlnbWEiLGljb246WzM4NCw1MTIsW10sImY3OTkiLCJNMTQgOTUuOEMxNCA0Mi45IDU2LjkgMCAxMDkuOCAwTDI3NC4yIDBjNTIuOSAwIDk1LjggNDIuOSA5NS44IDk1LjggMCAzMy41LTE3LjIgNjMtNDMuMiA4MC4xIDI2IDE3LjEgNDMuMiA0Ni42IDQzLjIgODAuMSAwIDUyLjktNDIuOSA5NS44LTk1LjggOTUuOGwtMi4xIDBjLTI0LjggMC00Ny40LTkuNC02NC40LTI0LjlsMCA4OC4zYzAgNTMuNi00NCA5Ni44LTk3LjQgOTYuOC01Mi44IDAtOTYuMy00Mi44LTk2LjMtOTUuOCAwLTMzLjUgMTcuMi02MyA0My4yLTgwLjEtMjYtMTcuMS00My4yLTQ2LjYtNDMuMi04MC4xczE3LjItNjMgNDMuMi04MC4xQzMxLjIgMTU4LjggMTQgMTI5LjMgMTQgOTUuOHptMTYyLjMgOTUuOGwtNjYuNSAwYy0zNS42IDAtNjQuNCAyOC44LTY0LjQgNjQuNCAwIDM1LjQgMjguNiA2NC4yIDY0IDY0LjRsNjYuOSAwIDAtMTI4Ljh6TTIwNy43IDI1NmMwIDM1LjYgMjguOCA2NC40IDY0LjQgNjQuNGwyLjEgMGMzNS42IDAgNjQuNC0yOC44IDY0LjQtNjQuNHMtMjguOC02NC40LTY0LjQtNjQuNGwtMi4xIDBjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40em0tOTcuOSA5NS44bC0uNCAwYy0zNS40IC4yLTY0IDI5LTY0IDY0LjRzMjkuMiA2NC40IDY0LjkgNjQuNGMzNi4zIDAgNjYtMjkuNCA2Ni02NS41bDAtNjMuNC02Ni41IDB6bTAtMzIwLjRjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40czI4LjggNjQuNCA2NC40IDY0LjRsNjYuNSAwIDAtMTI4LjgtNjYuNSAwem05Ny45IDEyOC44bDY2LjUgMGMzNS42IDAgNjQuNC0yOC44IDY0LjQtNjQuNHMtMjguOC02NC40LTY0LjQtNjQuNGwtNjYuNSAwIDAgMTI4Ljh6Il19LGV1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnN0YWdyYW0iLGljb246WzQ0OCw1MTIsW10sImYxNmQiLCJNMjI0LjMgMTQxYTExNSAxMTUgMCAxIDAgLS42IDIzMCAxMTUgMTE1IDAgMSAwIC42LTIzMHptLS42IDQwLjRhNzQuNiA3NC42IDAgMSAxIC42IDE0OS4yIDc0LjYgNzQuNiAwIDEgMSAtLjYtMTQ5LjJ6bTkzLjQtNDUuMWEyNi44IDI2LjggMCAxIDEgNTMuNiAwIDI2LjggMjYuOCAwIDEgMSAtNTMuNiAwem0xMjkuNyAyNy4yYy0xLjctMzUuOS05LjktNjcuNy0zNi4yLTkzLjktMjYuMi0yNi4yLTU4LTM0LjQtOTMuOS0zNi4yLTM3LTIuMS0xNDcuOS0yLjEtMTg0LjkgMC0zNS44IDEuNy02Ny42IDkuOS05My45IDM2LjFzLTM0LjQgNTgtMzYuMiA5My45Yy0yLjEgMzctMi4xIDE0Ny45IDAgMTg0LjkgMS43IDM1LjkgOS45IDY3LjcgMzYuMiA5My45czU4IDM0LjQgOTMuOSAzNi4yYzM3IDIuMSAxNDcuOSAyLjEgMTg0LjkgMCAzNS45LTEuNyA2Ny43LTkuOSA5My45LTM2LjIgMjYuMi0yNi4yIDM0LjQtNTggMzYuMi05My45IDIuMS0zNyAyLjEtMTQ3LjggMC0xODQuOHpNMzk5IDM4OGMtNy44IDE5LjYtMjIuOSAzNC43LTQyLjYgNDIuNi0yOS41IDExLjctOTkuNSA5LTEzMi4xIDlzLTEwMi43IDIuNi0xMzIuMS05Yy0xOS42LTcuOC0zNC43LTIyLjktNDIuNi00Mi42LTExLjctMjkuNS05LTk5LjUtOS0xMzIuMXMtMi42LTEwMi43IDktMTMyLjFjNy44LTE5LjYgMjIuOS0zNC43IDQyLjYtNDIuNiAyOS41LTExLjcgOTkuNS05IDEzMi4xLTlzMTAyLjctMi42IDEzMi4xIDljMTkuNiA3LjggMzQuNyAyMi45IDQyLjYgNDIuNiAxMS43IDI5LjUgOSA5OS41IDkgMTMyLjFzMi43IDEwMi43LTkgMTMyLjF6Il19LHFocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwZXJieXRlIixpY29uOls0NDgsNTEyLFtdLCJlMDgzIiwiTTMwNS4zIDI4NC42bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXpNMTQ5LjQgMTI4LjdsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41ek0zNjYuNiAzMkw4MS40IDMyYy0yMS42IDAtNDIuMiA4LjYtNTcuNSAyMy45UzAgOTEuOCAwIDExMy40TDAgMzk4LjZjMCAyMS42IDguNiA0Mi4yIDIzLjkgNTcuNVM1OS44IDQ4MCA4MS40IDQ4MGwyODUuMyAwYzIxLjYgMCA0Mi4yLTguNiA1Ny41LTIzLjlTNDQ4IDQyMC4yIDQ0OCAzOTguNmwwLTI4NS4zYzAtMjEuNi04LjYtNDIuMi0yMy45LTU3LjVTMzg4LjIgMzIgMzY2LjYgMzJ6bTYzLjYgMzY2LjZjMCAxNi45LTYuNyAzMy0xOC43IDQ1cy0yOC4xIDE4LjYtNDUgMTguN2wtMjg1LjMgMGMtMTYuOSAwLTMzLTYuNy00NS0xOC43cy0xOC42LTI4LjEtMTguNy00NWwwLTI4NS4zYzAtMTYuOSA2LjctMzMgMTguNy00NXMyOC4xLTE4LjYgNDUtMTguN2wyODUuMyAwYzE2LjkgMCAzMyA2LjcgNDUgMTguN3MxOC42IDI4LjEgMTguNyA0NWwwIDI4NS4zem0tMTI1LTI2OS45bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXoiXX0sdEllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS12aW1lbyIsaWNvbjpbNDQ4LDUxMixbInZpbWVvLXNxdWFyZSJdLCJmMTk0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zMTguNSAzMDkuNWMtNDMuNSA1Ni41LTgwLjMgODQuOC0xMTAuNCA4NC44LTE4LjcgMC0zNC40LTE3LjItNDcuMy01MS42LTMuOC0xMy45LTcuMy0yNi45LTEwLjUtMzktMTguMi02OC4zLTI4LjYtMTA3LjQtNDYuMi0xMDcuNC0yLjQgMC0xMC44IDUtMjUuMSAxNS4xTDY0IDE5MmM3LTYuMSAxMy45LTEyLjQgMjAuNi0xOC41IDI5LjEtMjYuMyA1NS42LTUwLjMgNzMuNS01MS45IDI0LjktMi40IDQwLjIgMTQuNiA0NiA1MS4xIDIwLjUgMTI5LjYgMjkuNiAxNDkuMiA2Ni44IDkwLjUgMTMuNC0yMS4yIDIwLjYtMzcuMiAyMS41LTQ4LjMgMy40LTMyLjgtMjUuNi0zMC42LTQ1LjItMjIuMiAxNS43LTUxLjUgNDUuOC03Ni41IDkwLjEtNzUuMSAzMi45IDEgNDguNCAyMi40IDQ2LjUgNjQtMS40IDMxLjEtMjMuMiA3My44LTY1LjMgMTI3Ljl6Il19LFZocj10SWUsamhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InB1c2hlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlMSIsIk00MTUuMSAxMTEuOWwtOTguNS05IDE0LTMzLjRjMTAuNC0yMy41LTEwLjgtNDAuNC0yOC43LTM3TDMwLjYgNzYuOWMtMTUuMSAyLjctMjYgMTguMy0yMS40IDM2LjZMMTE0LjMgNDYxLjhjNi41IDIxLjMgMzYuNyAyNC4yIDQ3LjcgN0wxOTcuMyAzODggNDMyLjUgMTU2LjdjMTYuNC0xNi44IDQuMy00Mi45LTE3LjQtNDQuOHpNMzA1LjcgNTMuNmM1LjEtLjcgNy41IDIuNSA1LjIgNy40bC0xNi44IDM5LjktMTc3LjQtMTYuMyAxODktMzF6TTMwLjggMTA3LjljLTMuMS01LjEgMS0xMCA2LjEtOS4xbDI0OC43IDIyLjctOTYuOSAyMzAuNy0xNTcuOS0yNDQuM3pNMTQ0LjEgNDU2LjRjLTIuNiA0LTcuOSAzLjEtOS40LTEuMkw1MS42IDE3OS43IDE3OS4zIDM3Ny4zYy03IDE1LTM1LjIgNzkuMS0zNS4yIDc5LjF6TTQxNi45IDE0MS45bC0xOTguNyAxOTUuNCA4OS43LTIxMy43IDEwNi40IDkuN2M0IDEuMSA1LjcgNS4zIDIuNiA4LjZ6Il19LFVocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaXhjbG91ZCIsaWNvbjpbNjQwLDUxMixbXSwiZjI4OSIsIk0yMTMgMzQ2LjZsLTMzLjIgMCAwLTE1MS41IDYuMi0yMS42LTEwLjcgMC0zOC4xIDE3My4xLTYxIDAtMzguNC0xNzMuMS0xMC41IDAgNS45IDIxLjYgMCAxNTEuNS0zMy4yIDAgMC0xODEuNiA2NS43IDAgMzYuNiAxNzMuMSA4LjUgMCAzNi42LTE3My4xIDY1LjcgMCAwIDE4MS42em0zMzEuNS02M2wtODYgNjIuMSAwLTM4LjEgNzIuOS01MS44LTcyLjktNTEuOCAwLTM4LjEgODYgNjIuMyA5LjMgMCA4Ni4zLTYyLjMgMCAzOC4xLTczLjEgNTEuOCA3My4xIDUxLjggMCAzOC4xLTg2LjMtNjIuMS05LjMgMHpNNDMwLjIgMjcyLjNsLTE4MiAwIDAtMzMuMSAxODIgMCAwIDMzLjF6Il19LFdocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YW5kZXgtaW50ZXJuYXRpb25hbCIsaWNvbjpbMzIwLDUxMixbXSwiZjQxNCIsIk0xMjkuNSA1MTJsMC0xNjYuMS0xMTEtMjk3LjkgNTUuOCAwIDgxLjggMjI5LjcgOTQuMS0yNzcuNyA1MS4zIDAtMTIwLjcgMzQ3LjggMCAxNjQuMi01MS4zIDB6Il19LEdocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoaXZlIixpY29uOls1MTIsNTEyLFtdLCJlMDdmIiwiTTI2MC40IDI1NC45TDEzMS41IDMzLjFjLS4yLS4zLS41LS42LS44LS44cy0uNy0uMy0xLjEtLjMtLjggLjEtMS4xIC4zLS42IC41LS44IC44TC4zIDI1NC45Yy0uMiAuMy0uMyAuNy0uMyAxLjFzLjEgLjggLjMgMS4xTDEyOS4xIDQ3OC45Yy4yIC4zIC41IC42IC44IC44cy43IC4zIDEuMSAuMyAuOC0uMSAxLjEtLjMgLjYtLjUgLjgtLjhMMjYwLjQgMjU3LjFjLjItLjMgLjMtLjcgLjMtMS4xcy0uMS0uOC0uMy0xLjF6bTM5LjEtMjUuN2MuMiAuMyAuNSAuNiAuOCAuOHMuNyAuMyAxLjEgLjNsNjYuNSAwYy40IDAgLjgtLjEgMS4xLS4zcy42LS41IC44LS44IC4zLS43IC4zLTEuMS0uMS0uOC0uMy0xLjFMMjU5LjEgMzMuMWMtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4zLTEuMS0uM2wtNjYuNSAwYy0uNCAwLS44IC4xLTEuMSAuM3MtLjYgLjUtLjggLjgtLjMgLjctLjMgMS4xIC4xIC44IC4zIDEuMUwyOTkuNCAyMjkuMnptMjEyLjMgMjUuN0wzODQuOSAzMy4xYy0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjMtMS4xLS4zbC02Ni42IDBjLS40IDAtLjggLjEtMS4xIC4zcy0uNiAuNS0uOCAuOC0uMyAuNy0uMyAxLjEgLjEgLjggLjMgMS4xTDQ0MC43IDI1NiAzMTQuNSA0NzYuN2MtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMSAuNSAuNiAuOCAuOCAuNyAuMyAxLjEgLjNsNjYuNiAwYy40IDAgLjgtLjEgMS4xLS4zcy42LS41IC44LS44TDUxMS43IDI1Ny4xYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xek0zNjYgMjg0LjlsLTY2LjUgMGMtLjQgMC0uOCAuMS0xLjEgLjNzLS42IC41LS44IC44TDE4OC44IDQ3Ni43Yy0uMiAuMy0uMyAuNy0uMyAxLjFzLjEgLjggLjMgMS4xIC41IC42IC44IC44IC43IC4zIDEuMSAuM2w2Ni41IDBjLjQgMCAuOC0uMSAxLjEtLjNzLjYtLjUgLjgtLjhMMzY3LjkgMjg4LjNjLjItLjMgLjMtLjcgLjMtMS4xcy0uMS0uOC0uMy0xLjEtLjUtLjYtLjgtLjgtLjctLjMtMS4xLS4zeiJdfSxZaHI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy16ZXJvIixpY29uOls1MTIsNTEyLFtdLCJmNGYzIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptLS40IDYwLjVjLTgxLjkgMC0xMDIuNSA3Ny4zLTEwMi41IDE0Mi44UzE3NC4xIDM5OC44IDI1NiAzOTguOCAzNTguNSAzMjEuNSAzNTguNSAyNTYgMzM3LjkgMTEzLjIgMjU2IDExMy4yem0wIDUzLjljMy4zIDAgNi40IC41IDkuMiAxLjIgNS45IDUuMSA4LjggMTIuMSAzLjEgMjEuOUwyMTMuOCAyOTAuNGMtMS43LTEyLjctMS45LTI1LjEtMS45LTM0LjQgMC0yOC44IDItODguOSA0NC4xLTg4Ljl6bTQwLjggNDYuMmMyLjkgMTUuNCAzLjMgMzEuNCAzLjMgNDIuNyAwIDI4LjktMiA4OC45LTQ0LjEgODguOS0xMy41IDAtMzIuNi03LjctMjAuMS0yNi40bDYwLjktMTA1LjJ6Il19LHJJZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtc25hcGNoYXQiLGljb246WzQ0OCw1MTIsWyJzbmFwY2hhdC1zcXVhcmUiXSwiZjJhZCIsIk0zODQgMzJMNjQgMzJjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43UzAgNzkgMCA5NkwwIDQxNmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM1M0NyA0ODAgNjQgNDgwbDMyMCAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43UzQ0OCA0MzMgNDQ4IDQxNmwwLTMyMGMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM1M0MDEgMzIgMzg0IDMyem0tMy45IDMxOS4zbC0uMSAuMWMtMi41IDIuOC01LjQgNS4xLTguNyA2LjgtNi41IDMuNi0xMy40IDYuMy0yMC42IDguMi0xLjQgLjQtMi43IDEtMy45IDEuOC0yLjIgMS45LTIuMSA0LjYtNC40IDguNi0xLjcgMy00IDUuNS02LjggNy41LTYuNyA0LjYtMTQuMiA0LjktMjIuMiA1LjItNy4yIC4zLTE1LjQgLjYtMjQuNyAzLjctMy44IDEuMi03LjggMy43LTEyLjQgNi41LTExLjMgNi45LTI2LjcgMTYuNC01Mi4zIDE2LjRzLTQwLjktOS40LTUyLjEtMTYuM2MtNC43LTIuOS04LjctNS40LTEyLjUtNi42LTkuMy0zLjEtMTcuNS0zLjQtMjQuNy0zLjctOC0uMy0xNS41LS42LTIyLjItNS4yLTIuNC0xLjYtNC40LTMuNy02LTYuMS0zLjItNC42LTIuOS03LjgtNS4zLTkuOS0xLjMtLjgtMi42LTEuNS00LjEtMS44LTcuMS0xLjktMTMuOS00LjYtMjAuMy04LjEtMy4xLTEuNi01LjktMy44LTguMy02LjMtNi42LTYuOC04LjMtMTQuOC01LjctMjEuOCAzLjQtOS4zIDExLjYtMTIuMSAxOS40LTE2LjMgMTQuOC04IDI2LjMtMTguMSAzNC40LTI5LjkgMi4zLTMuMyA0LjMtNi45IDYtMTAuNiAuOC0yLjIgLjgtMy4zIC4yLTQuNC0uNi0uOS0xLjMtMS42LTIuMi0yLjItMi41LTEuNy01LjEtMy40LTYuOS00LjUtMy4zLTIuMS01LjktMy44LTcuNS01LTYuMy00LjQtMTAuNi05LTEzLjQtMTQuMi0xLjktMy42LTMtNy42LTMuMy0xMS42cy40LTguMSAxLjktMTEuOWM0LjEtMTAuOSAxNC41LTE3LjcgMjctMTcuNyAyLjYgMCA1LjMgLjMgNy44IC44IC43IC4yIDEuNCAuMyAyIC41LS4xLTcuNCAuMS0xNS40IC43LTIzLjEgMi40LTI3LjMgMTEuOS00MS42IDIxLjktNTMgNi40LTcuMiAxMy45LTEzLjIgMjIuMy0xNy45IDE1LjEtOC42IDMyLjItMTMgNTAuOS0xM3MzNS44IDQuNCA1MC45IDEzYzguMyA0LjcgMTUuOSAxMC44IDIyLjIgMTcuOSAxMCAxMS40IDE5LjUgMjUuNyAyMS45IDUzIC42IDcuNyAuOSAxNS40IC43IDIzLjEgLjctLjIgMS40LS4zIDIuMS0uNSAyLjYtLjYgNS4yLS44IDcuOC0uOCAxMi41IDAgMjIuOCA2LjggMjcgMTcuNyAxLjUgMy44IDIuMSA3LjkgMS45IDExLjlzLTEuNCA4LTMuMyAxMS42Yy0yLjcgNS4yLTcuMSA5LjktMTMuNCAxNC4yLTEuNyAxLjItNC4zIDIuOS03LjUgNS0xLjggMS4yLTQuNSAyLjktNy4yIDQuNy0uOCAuNS0xLjQgMS4yLTEuOSAyLS41IDEtLjUgMi4yIC4yIDQuMiAxLjcgMy44IDMuNyA3LjQgNi4xIDEwLjggOC4zIDEyLjEgMjAuMiAyMi4zIDM1LjUgMzAuNCAxLjUgLjggMyAxLjUgNC40IDIuMyAuNyAuMyAxLjYgLjggMi41IDEuMyA0LjkgMi43IDkuMiA2IDExLjUgMTIuMiAyLjUgNi45IDEgMTQuNy01LjIgMjEuM3ptLTE2LjctMTguNWMtNTAuMy0yNC4zLTU4LjMtNjEuOS01OC43LTY0LjctLjQtMy40LS45LTYgMi44LTkuNSAzLjYtMy4zIDE5LjUtMTMuMiAyNC0xNi4zIDcuMy01LjEgMTAuNS0xMC4yIDguMi0xNi41LTEuNy00LjMtNS43LTYtMTAtNi0xLjMgMC0yLjcgLjItNCAuNC04IDEuNy0xNS44IDUuOC0yMC40IDYuOS0uNSAuMS0xLjEgLjItMS43IC4yLTIuNCAwLTMuMy0xLjEtMy4xLTQgLjYtOC44IDEuOC0yNS45IC40LTQxLjktMS45LTIyLTktMzIuOS0xNy40LTQyLjYtNC4xLTQuNi0yMy4xLTI0LjctNTkuNS0yNC43cy01NS40IDIwLjEtNTkuNSAyNC44Yy04LjQgOS43LTE1LjUgMjAuNi0xNy40IDQyLjYtMS40IDE2LS4xIDMzLjEgLjQgNDEuOSAuMiAyLjgtLjcgNC0zLjEgNC0uNiAwLTEuMS0uMS0xLjctLjItNC41LTEuMS0xMi4zLTUuMS0yMC4zLTYuOS0xLjMtLjMtMi42LS40LTQtLjQtNC4zIDAtOC4zIDEuNi0xMCA2LTIuNCA2LjMgLjggMTEuNCA4LjIgMTYuNSA0LjQgMy4xIDIwLjQgMTMgMjQgMTYuMyAzLjcgMy40IDMuMiA2LjEgMi44IDkuNS0uNCAyLjgtOC40IDQwLjQtNTguNyA2NC43LTIuOSAxLjQtOCA0LjQgLjkgOS4zIDEzLjkgNy42IDIzLjEgNi44IDMwLjMgMTEuNCA2LjEgMy45IDIuNSAxMi40IDYuOSAxNS40IDUuNSAzLjggMjEuNi0uMyA0Mi4zIDYuNiAxNy40IDUuNyAyOC4xIDIyIDU5IDIyczQxLjgtMTYuMyA1OC45LTIyYzIwLjgtNi45IDM2LjktMi44IDQyLjMtNi42IDQuNC0zLjEgLjgtMTEuNSA2LjktMTUuNCA3LjItNC42IDE2LjQtMy44IDMwLjMtMTEuNSA4LjgtNC45IDMuOC03LjkgLjktOS40eiJdfSxLaHI9ckllLFpocj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGVtZWlzbGUiLGljb246WzUxMiw1MTIsW10sImYyYjIiLCJNMjA4IDg4LjNjMC0xMCA2LjMtMjEuNyAxNy43LTIxLjcgMTEuMSAwIDE3LjcgMTEuNyAxNy43IDIxLjcgMCAxMC4zLTYuNiAyMS43LTE3LjcgMjEuNy0xMS40IDAtMTcuNy0xMS40LTE3LjctMjEuN3ptMzA0IDE2MGMwIDM2LTExLjQgMTAyLjMtMzYuMyAxMjkuNy0yMi45IDI0LjktODcuNCA2MS4xLTEyMC45IDcwLjZsLTEuMSAuMyAwIDMyLjZjMCAxNi4zLTEyLjYgMzAuNi0yOS4xIDMwLjYtMTAgMC0xOS40LTUuNy0yNC42LTE0LjMtNS40IDguNi0xNC45IDE0LjMtMjQuOSAxNC4zcy0xOS40LTUuNy0yNC45LTE0LjNjLTUuMSA4LjYtMTQuNiAxNC4zLTI0LjYgMTQuMy0xMC4zIDAtMTkuNC01LjctMjQuOS0xNC4zLTUuMSA4LjYtMTQuNiAxNC4zLTI0LjYgMTQuMy0xOC45IDAtMjkuNC0xNS43LTI5LjQtMzIuOS0xNi4zIDEyLjMtMzUuNyAxOS40LTU2LjYgMTkuNC0yMiAwLTQzLjQtOC4zLTYwLjMtMjIuOSAxMC4zLS4zIDIwLjYtMi4zIDMwLjMtNS43LTIwLjktNS43LTM5LjQtMTguOS01Mi0zNi4zIDIxLjQgNC42IDQ2LjIgMS43IDY3LjEtMTEuMS0yMi0yMi01Ni42LTU4LjktNjguNi04Ny40LTUuNy0xMy40LTYuOS0zMS40LTYuOS00NS43IDAtNDkuNyAyMC4zLTE2MCA4Ni4zLTE2MCAxMC42IDAgMTguOSA0LjkgMjMuMSAxNC45IDMuNy01LjQgNy43LTEwLjUgMTItMTUuNCAyLTIuNiA1LjctNS40IDcuMS04LjMgOC0xMi42IDExLjctMjEuMSAyMS43LTM0IDMyLjMtNDEuMSA4MS43LTY5LjQgMTM0LjktNjkuNCA2IDAgMTIgLjMgMTcuNyAxLjEgMTAuOS0xMS43IDI2LTE4LjMgNDEuNy0xOC4zIDE0LjYgMCAyOS43IDYgNDAgMTYuMyAuOSAuOSAxLjQgMi4zIDEuNCAzLjQgMCAzLjctMTAuMyAxMy40LTEyLjkgMTYuMyA0LjMgMS40IDE1LjcgNi45IDE1LjcgMTIgMCAyLjktMi45IDUuMS00LjYgNy4xIDMxLjQgMjcuNyA0OS40IDY3LjEgNTYuMyAxMDggNC4zLTUuMSAxMC4zLTguNiAxNy4xLTguNiAxMC42IDAgMjAuOSA3LjEgMjguNiAxNCAyMC45IDE4LjYgMjUuNyA1My4xIDI1LjcgNzkuN3pNMTg4IDg5LjRjMCAxOC4zIDEyLjYgMzcuMSAzMi4zIDM3LjFzMzIuMy0xOC45IDMyLjMtMzcuMWMwLTE4LTEyLjYtMzYuOS0zMi4zLTM2LjlTMTg4IDcxLjQgMTg4IDg5LjR6TTIzNy43IDE5NGMwLTE5LjcgMy43LTM5LjEgOC42LTU4LjMtNTIgNzkuNS0xMy41IDE4NC42IDY4LjkgMTg0LjYgMjEuNCAwIDQyLjYtNy43IDYwLTIwIDItNy40IDMuNy0xNC45IDMuNy0yMi42IDAtMTQuMy02LjMtMjEuNC0yMC42LTIxLjQtNC42IDAtOS4xIC45LTEzLjQgMS43LTYzLjMgMTIuNy0xMDcuMSAzLjctMTA3LjEtNjR6TTE5Ni42IDQ0OC45YzAtMTEuMS04LjktMjAuOS0yMC4zLTIwLjlzLTIwIDkuNy0yMCAyMC45bDAgMzIuNmMwIDExLjEgOC42IDIxLjEgMjAgMjEuMXMyMC4zLTkuNyAyMC4zLTIxLjFsMC0zMi42em00OS4xIDBjMC0xMS4xLTguNi0yMC45LTIwLTIwLjlzLTIwLjMgOS43LTIwLjMgMjAuOWwwIDMyLjZjMCAxMS4xIDguOSAyMS4xIDIwLjMgMjEuMXMyMC0xMCAyMC0yMS4xbDAtMzIuNnptNDkuNyAwYzAtMTEuMS04LjktMjAuOS0yMC4zLTIwLjlzLTIwLjMgOS43LTIwLjMgMjAuOWwwIDMyLjZjMCAxMS4xIDguOSAyMS4xIDIwLjMgMjEuMXMyMC4zLTkuNyAyMC4zLTIxLjFsMC0zMi42em00OS43IDBjMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLjMtMTAgMjAuMy0yMS4xbDAtMzIuNnpNNDIxLjcgMjg2Yy0zMC45IDU5LjEtOTAuMyAxMDIuNi0xNTguNiAxMDIuNi05Ni42IDAtMTYwLjYtODQuNi0xNjAuNi0xNzYuNiAwLTE2LjkgMi0zMy40IDYtNDkuNy0yMCAzMy43LTI5LjcgNzIuNi0yOS43IDExMS40IDAgNjAuMyAyNC45IDEyMS43IDcxLjQgMTYwLjkgNS4xLTkuNyAxNC45LTE2LjMgMjYtMTYuMyAxMCAwIDE5LjQgNS43IDI0LjYgMTQuMyA1LjQtOC42IDE0LjYtMTQuMyAyNC45LTE0LjMgMTAgMCAxOS40IDUuNyAyNC42IDE0LjMgNS40LTguNiAxNC45LTE0LjMgMjQuOS0xNC4zczE5LjQgNS43IDI0LjkgMTQuM2M1LjEtOC42IDE0LjYtMTQuMyAyNC42LTE0LjMgMTAuOSAwIDIwLjkgNi42IDI1LjcgMTYgNDMuNC0zNi4zIDY4LjYtOTIgNzEuNC0xNDguM3ptMTAuNi05OS43YzAtNTMuNy0zNC42LTEwNS43LTkyLjYtMTA1LjctMzAuMyAwLTU4LjYgMTUuMS03OC45IDM2LjktMjAgNjYuNC0yNy40IDEzNi42IDQxLjQgMTM2LjYgMjguOCAwIDk3LjQtMjguNSA4NC4zIDM2LjkgMjguOS0yNiA0NS43LTY1LjcgNDUuNy0xMDQuNnoiXX0sUWhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRhcnQtbGFuZyIsaWNvbjpbNTEyLDUxMixbXSwiZTY5MyIsIk0zNzguNiA3OC45Yy0yLjgtLjEtNS42LS4yLTguNS0uMmwtMjY0LjEgMCAxNDMuMi03MmM3LjQtNC40IDE4LjgtNi43IDMwLjQtNi43IDEzLjUgMCAyOS40IDkuMiAzNyAxNi44bDYyIDYyIDAgLjF6TTEwNy4zIDk2LjVsMjYyLjggMGMxNiAwIDI1LjQgMS40IDM1LjQgOS4zbDEwNi41IDEwNi40IDAgMjA4LjgtNzkuMyAuNy0zMjUuNC0zMjUuMnpNOTYuNSAzNzNsMC0yNjIuMiAzMjMuOCAzMjMuOCAuNyA3Ny40LTIxMi4yIDAtOTguMS05OC4yQzk5LjQgNDAyLjUgOTYuNSAzOTguNSA5Ni41IDM3M3pNNzguNyAxMDUuM2wwIDI2Ny43YzAgMy4zIC4xIDYuMyAuMiA5LjFsLTYyLTYyQzYuNSAzMDkuMyAwIDI5NC4zIDAgMjc5LjYgMCAyNzIuOCAzLjkgMjYyLjEgNi43IDI1Nmw3Mi0xNTAuN3oiXX0sWGhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlcGxveWRvZyIsaWNvbjpbNTEyLDUxMixbXSwiZjM4ZSIsIk0zODIuMiAxMzZsNTEuNyAwIDAgMjM5LjYtNTEuNyAwIDAtMjAuN2MtMTkuOCAyNC44LTUyLjggMjQuMS03My44IDE0LjctMjYuMi0xMS43LTQ0LjMtMzguMS00NC4zLTcxLjggMC0yOS44IDE0LjgtNTcuOSA0My4zLTcwLjggMjAuMi05LjEgNTIuNy0xMC42IDc0LjggMTIuOWwwLTEwMy45ek0zMTcuNSAyOTcuOGEzMy4yIDMzLjIgMCAxIDAgNjYuNCAxIDMzLjIgMzMuMiAwIDEgMCAtNjYuNC0xek0xODguNSAxMzZsNTEuNyAwIDAgMjM5LjYtNTEuNyAwIDAtMjAuN2MtMTkuOCAyNC44LTUyLjggMjQuMS03My44IDE0LjctMjYuMi0xMS43LTQ0LjMtMzguMS00NC4zLTcxLjggMC0yOS44IDE0LjgtNTcuOSA0My4zLTcwLjggMjAuMi05LjEgNTIuNy0xMC42IDc0LjggMTIuOWwwLTEwMy45ek0xMjMuOCAyOTcuOGEzMy4yIDMzLjIgMCAxIDAgNjYuNCAxIDMzLjIgMzMuMiAwIDEgMCAtNjYuNC0xek00NDggOTZjMTcuNSAwIDMyIDE0LjQgMzIgMzJsMCAyNTZjMCAxNy41LTE0LjQgMzItMzIgMzJMNjQgNDE2Yy0xNy41IDAtMzItMTQuNC0zMi0zMmwwLTI1NmMwLTE3LjUgMTQuNC0zMiAzMi0zMmwzODQgMHptMC0zMkw2NCA2NEMyOC44IDY0IDAgOTIuOCAwIDEyOEwwIDM4NGMwIDM1LjIgMjguOCA2NCA2NCA2NGwzODQgMGMzNS4yIDAgNjQtMjguOCA2NC02NGwwLTI1NmMwLTM1LjItMjguOC02NC02NC02NHoiXX0sSmhyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZsaXBib2FyZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjQ0ZCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0zNTguNCAyMTEuMmwtODkuNiAwIDAgODkuNi04OS42IDAgMCA4OS42LTg5LjYgMCAwLTI2OC44IDI2OC44IDAgMCA4OS42eiJdfSxlNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnV5LW4tbGFyZ2UiLGljb246WzU3Niw1MTIsW10sImY4YTYiLCJNMjg4LjIgMzJDMTMzLjUgMzIgOCAxMzIuMyA4IDI1NlMxMzMuNSA0ODAgMjg4LjIgNDgwIDU2OC40IDM3OS43IDU2OC40IDI1NiA0NDIuOSAzMiAyODguMiAzMnpNMjAyLjggMzg5LjJsLTEzOC41IDEuNCA3Ny4yLTI5MC43IDEzMy40IDBjNjMuMiAwIDg0LjkgMjguNiA3OCA3Mi44LS40IDIuMy0uOSA0LjYtMS41IDYuOS01LjYtMS4zLTExLjQtMS45LTE3LjItMS45LTQyLjMgMC03Ni43IDMzLjktNzYuNyA3NS43IDAgMzcuMSAyNy4xIDY4IDYyLjkgNzQuNS0xOC4yIDM3LjItNTYuMiA2MC45LTExNy43IDYxLjV6TTM1OC4yIDIwNy4xbDMyIDAtMjIuMiA5MC4zLTM1LjQgMC0xMS4yLTM1LjYtNy44IDM1LjYtMzcuOCAwIDI2LjYtOTAuMyAzMS4zIDAgMTUgMzYuOCA5LjQtMzYuOHpNNTA0LjEgMzg5LjJsLTE5Ny4xIDAgMTUuOC02MS4yYzMuOCAuNiA3LjYgLjggMTEuNSAuOCA0Mi4zIDAgNzYuNy0zMy45IDc2LjctNzUuNiAwLTMyLjYtMjEtNjAuNS01MC40LTcxLjFsMjEuMy04Mi40IDkyLjUgMC01MyAyMDUuNCAxMDMuOSAwLTIxLjIgODQuMXpNMjExLjkgMjY5LjRsLTI0LjcgMC0xMy44IDU2LjUgMjQuNyAwYzE2LjEgMCAzMi4xLTMuMiAzNy45LTI2LjYgNS42LTIyLjMtOC0yOS44LTI0LjEtMjkuOHpNMjMzLjIgMTcwbC0yMS4zIDAtMTEuNyA0Ny43IDIxLjQgMGMxOCAwIDM1LjQtMTQuNiAzOS4yLTMwLjEgNC42LTE4LjktOS41LTE3LjYtMjcuNi0xNy42eiJdfSx0NnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2F0Y2htYW4tbW9uaXRvcmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZTA4NyIsIk0yNTYgMTZhMjQwIDI0MCAwIDEgMCAwIDQ4MCAyNDAgMjQwIDAgMSAwIDAtNDgwek0xMjEuNyA0MjkuMWMtNTEuNi00MC4yLTg0LjktMTAyLjgtODQuOS0xNzMuMSAwLTIxLjcgMy4yLTQzLjMgOS42LTY0LjFsMTAyLjktMTcuOS0uMSAxMS0xMy45IDJzLS4xIDEyLjUtLjEgMTkuNWMwIDIgLjQgNCAxLjIgNS44czIuMSAzLjQgMy43IDQuNmw5LjUgNy40LTI3LjcgMjA0Ljl6TTIyNy40IDE0NS45bDguNS03LjZzNi45LTUuNC0uMS05LjNjLTcuMi00LTM5LjUtMzQuNS0zOS41LTM0LjUtNS4zLTUuNS04LjMtNy4zLTE1LjUgMCAwIDAtMzIuMyAzMC41LTM5LjUgMzQuNS03LjEgNC0uMSA5LjMtLjEgOS4zbDguNSA3LjYgMCA0LjQtNzMuNS0xOS4yYzM5LjYtNTYuOSAxMDUuNS05NC4zIDE4MC05NC4zIDMxLjMgMCA2Mi4yIDYuNyA5MC42IDE5LjZzNTMuOCAzMS44IDc0LjMgNTUuNGwtMTkzLjUgMzcuNyAwLTMuNnptMzQuMSAzMjkuM2wtMzMuOS0yNTAuOSA5LjUtNy40YzEuNi0xLjIgMi44LTIuOCAzLjctNC42czEuMy0zLjggMS4yLTUuOGMwLTctLjEtMTkuNS0uMS0xOS41bC0xMy45LTItLjEtMTAuNSAyNDEuNyAzMS40YzMuOSAxNi40IDUuOCAzMy4zIDUuOCA1MC4xIDAgMTE5LjEtOTUuNCAyMTYuMi0yMTMuOCAyMTkuMXoiXX0scjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhpcHMiLGljb246WzY0MCw1MTIsW10sImY0NTIiLCJNMjUxLjYgMTU3LjZjMC0xLjktLjktMi44LTIuOC0yLjhsLTQwLjkgMGMtMS42IDAtMi43IDEuNC0yLjcgMi44bDAgMjAxLjhjMCAxLjQgMS4xIDIuOCAyLjcgMi44bDQwLjkgMGMxLjkgMCAyLjgtLjkgMi44LTIuOGwwLTIwMS44ek0xNTYuNSAxNjhjLTE2LjEtMTEuOC0zNi4zLTE3LjktNjAuMy0xOC0xOC4xLS4xLTM0LjYgMy43LTQ5LjggMTEuNGwwLTgxLjJjMC0xLjgtLjktMi43LTIuOC0yLjdsLTQwLjkgMEMuOSA3Ny41IDAgNzguNCAwIDgwLjJMMCAzNTkuNGMwIDEuOSAuOSAyLjggMi43IDIuOGw0MSAwYzEuOSAwIDIuOC0uOSAyLjgtMi44bDAtMTM2LjFjMC0uOC0yLjgtMjcgNDUuOC0yNyA0OC41IDAgNDUuOCAyNi4xIDQ1LjggMjdsMCAxMjIuNmMwIDkgNy4zIDE2LjMgMTYuNCAxNi4zbDI3LjMgMGMxLjggMCAyLjctLjkgMi43LTIuOGwwLTEzNi4xYzAtMjMuNC05LjMtNDEuOC0yOC01NS4zek02MzQuOSAyNzguMWMtNi44LTE1LjctMTguNC0yNy0zNC45LTM0LjFsLTU3LjYtMjUuM2MtOC42LTMuNi05LjItMTEuMi0yLjYtMTYuMSA3LjQtNS41IDQ0LjMtMTMuOSA4NCA2LjggMS43IDEgNC0uMyA0LTIuNGwwLTQ0LjdjMC0xLjMtLjYtMi4xLTEuOS0yLjYtMTcuNy02LjYtMzYuMS05LjktNTUuMS05LjktMjYuNSAwLTQ1LjMgNS44LTU4LjUgMTUuNC0uNSAuNC0yOC40IDIwLTIyLjcgNTMuNyAzLjQgMTkuNiAxNS44IDM0LjIgMzcuMiA0My42TDU4MC40IDI4NmMxMS42IDUuMSAxNS4yIDEzLjMgMTIuMiAyMS4yLTMuNyA5LjEtMTMuMiAxMy42LTM2LjUgMTMuNi0yNC4zIDAtNDQuNy04LjktNTguNC0xOS4xLTIuMS0xLjQtNC40IC4yLTQuNCAyLjNsMCAzNC40YzAgMTAuNCA0LjkgMTcuMyAxNC42IDIwLjcgMTUuNiA1LjUgMzEuNiA4LjIgNDguMiA4LjIgMTIuNyAwIDI1LjgtMS4yIDM2LjMtNC4zIC43LS4zIDM2LTguOSA0NS42LTQ1LjggMy41LTEzLjUgMi40LTI2LjUtMy4xLTM5LjF6TTM3Ni4yIDE0OS44Yy0zMS43IDAtMTA0LjIgMjAuMS0xMDQuMiAxMDMuNWwwIDE4My41YzAgLjggLjYgMi43IDIuNyAyLjdsNDAuOSAwYzEuOSAwIDIuOC0uOSAyLjgtMi43bDAtODguOGMxNi41IDEyLjcgMzUuOCAxOS4xIDU3LjcgMTkuMSA2MC41IDAgMTA4LjctNDguNSAxMDguNy0xMDguNyAuMS02MC4zLTQ4LjItMTA4LjYtMTA4LjYtMTA4LjZ6bTAgNDYuNmE2Mi4yIDYyLjIgMCAxIDEgMCAxMjQuMyA2Mi4yIDYyLjIgMCAxIDEgMC0xMjQuM3pNMjI4LjMgNzIuNWMtMTUuOSAwLTI4LjggMTIuOS0yOC45IDI4LjkgMCAxNS42IDEyLjcgMjguOSAyOC45IDI4LjlzMjguOS0xMy4xIDI4LjktMjguOWMwLTE2LjItMTMtMjguOS0yOC45LTI4Ljl6Il19LGE2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbG91ZHZlcnNpZnkiLGljb246WzY0MCw1MTIsW10sImYzODUiLCJNMTYwLjYgMzA0YzguMiA2OC41IDY3LjQgMTE1LjUgMTQ2IDExMS4zIDUxLjIgNDMuMyAxMzYuOCA0NS44IDE4Ni40LTUuNiA2OS4yIDEuMSAxMTguNS00NC42IDEzMS41LTk5LjUgMTQuOC02Mi41LTE4LjItMTMyLjUtOTIuMS0xNTUuMS0zMy04OC4xLTEzMS40LTEwMS41LTE4Ni41LTg1LTU3LjMgMTcuMy04NC4zIDUzLjItOTkuMyAxMDkuNy03LjggMi43LTI2LjUgOC45LTQ1IDI0LjEgMTEuNyAwIDE1LjIgOC45IDE1LjIgMTkuNWwwIDIwLjRjMCAxMC43LTguNyAxOS41LTE5LjUgMTkuNWwtMjAuMiAwYy0xMC43IDAtMTkuNS02LTE5LjUtMTYuN2wwLTYuNi00Ni44IDBjLTMuOCAwLTEwLjggNC4zLTEwLjggMTEuOWwwIDQwLjRjMCA2LjQgNS4zIDExLjggMTEuNyAxMS44bDQ4LjkgMCAwLS4xek0zODggMzEyYy0xMC43IDQ2LjMgMjEuNyA3Mi40IDU1LjMgODYuOC0xMDcuMiAzMy44LTE3MS42LTUwLjgtMTM1LjMtMTEwLjgtMzMuMiAyMS42LTMzLjcgNzEuMi0yOS4yIDkyLjktMTcuOS0xMi40LTUzLjgtMzIuNC01Ny40LTc5LjgtMy0zOS45IDIxLjUtNzUuNyA1Ny05My45IDMwLjYtMTUuOCAxMDMuNS04LjUgMTMzLjYgNDAuOC0xNC4xLTQ4LTUzLjgtNzAuMS0xMDEuOC03NC44IDMwLjktMzAuNyA2NC40LTUwLjMgMTE0LjItNDMuNyA2OS44IDkuMyAxMzMuMiA4Mi44IDY3LjcgMTUwLjUgMzUtMTYuMyA0OC43LTU0LjQgNDcuNS03Ni45bDEwLjUgMTkuNmMxMS44IDIyIDE1LjIgNDcuNiA5LjQgNzItOS4yIDM5LTQwLjYgNjguOC03OS43IDc2LjUtMzIuMSA2LjMtODMuMS01LjEtOTEuOC01OS4yek0xNDAgMjA4bC0zOS44IDBjLTguOSAwLTE2LjItNy4zLTE2LjItMTYuMmwwLTM5LjZjMC04LjkgNy4zLTE2LjIgMTYuMi0xNi4ybDM5LjggMGM4LjkgMCAxNi4yIDcuMyAxNi4yIDE2LjJsMCAzOS42YzAgOC45LTcuMyAxNi4yLTE2LjIgMTYuMnpNMjIuMSAxNjhjLTUuNiAwLTEwLjEtNC41LTEwLjEtMTAuMWwwLTI3LjhjMC01LjYgNC41LTEwLjEgMTAuMS0xMC4xbDI3LjcgMGM1LjUgMCAxMC4xIDQuNSAxMC4xIDEwLjFsMCAyNy44YzAgNS42LTQuNSAxMC4xLTEwLjEgMTAuMWwtMjcuNyAwek0xODAgMTQyLjdsMC0yMS40YzAtNS4xIDQuMi05LjMgOS4zLTkuM2wyMS40IDBjNS4xIDAgOS4zIDQuMiA5LjMgOS4zbDAgMjEuNGMwIDUuMS00LjIgOS4zLTkuMyA5LjNsLTIxLjQgMGMtNS4xIDAtOS4zLTQuMi05LjMtOS4zek02OCAyMzUuNWwwIDI1YzAgNi4zLTUuMSAxMS41LTExLjQgMTEuNWwtMjUuMiAwYy02LjMgMC0xMS40LTUuMi0xMS40LTExLjVsMC0yNWMwLTYuMyA1LjEtMTEuNSAxMS40LTExLjVsMjUuMSAwYzYuNCAwIDExLjUgNS4yIDExLjUgMTEuNXoiXX0saTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2RyZWFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNhOCIsIk0yOTkuOSAxOTEuMmM1LjEgMzcuMy00LjcgNzktMzUuOSAxMDAuNy0yMi4zIDE1LjUtNTIuOCAxNC4xLTcwLjggNS43LTM3LjEtMTcuMy00OS41LTU4LjYtNDYuOC05Ny4yIDQuMy02MC45IDQwLjktODcuOSA3NS4zLTg3LjUgNDYuOS0uMiA3MS44IDMxLjggNzguMiA3OC4zek00NDggODhsMCAzMzZjMCAzMC45LTI1LjEgNTYtNTYgNTZMNTYgNDgwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDg4QzAgNTcuMSAyNS4xIDMyIDU2IDMybDMzNiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2ek0zMzAgMzEzLjJzLS4xLTM0LS4xLTIxNy4zbC0yOSAwIDAgNDAuM2MtLjggLjMtMS4yLS41LTEuNi0xLjItOS42LTIwLjctMzUuOS00Ni4zLTc2LTQ2LTUxLjkgLjQtODcuMiAzMS4yLTEwMC42IDc3LjgtNC4zIDE0LjktNS44IDMwLjEtNS41IDQ1LjYgMS43IDc3LjkgNDUuMSAxMTcuOCAxMTIuNCAxMTUuMiAyOC45LTEuMSA1NC41LTE3IDY5LTQ1LjIgLjUtMSAxLjEtMS45IDEuNy0yLjkgLjIgLjEgLjQgLjEgLjYgLjIgLjMgMy44IC4yIDMwLjcgLjEgMzQuNS0uMiAxNC44LTIgMjkuNS03LjIgNDMuNS03LjggMjEtMjIuMyAzNC43LTQ0LjUgMzkuNS0xNy44IDMuOS0zNS42IDMuOC01My4yLTEuMi0yMS41LTYuMS0zNi41LTE5LTQxLjEtNDEuOC0uMy0xLjYtMS4zLTEuMy0yLjMtMS4zbC0yNi44IDBjLjggMTAuNiAzLjIgMjAuMyA4LjUgMjkuMiAyNC4yIDQwLjUgODIuNyA0OC41IDEyOC4yIDM3LjQgNDkuOS0xMi4zIDY3LjMtNTQuOSA2Ny40LTEwNi4zeiJdfSxzNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGlkYWwiLGljb246WzY0MCw1MTIsW10sImU3ZGMiLCJNMTA3LjIgNDhsLTEuMyAwYy0zMi4zIDMzLjEtNjUuNCA2NS41LTk4IDk4LjUtMi42IDIuOC02LjEgNS4xLTcuOSA4LjYgMzUuNiAzNS40IDcxIDcxIDEwNi42IDEwNi40IDM1LjQtMzUuMyA3MC43LTcwLjggMTA2LjEtMTA2LjFsMC0xLjMtNzMuMi03My4yQzEyOC44IDY5LjggMTE3LjMgNTkuNiAxMDcuMiA0OHptMjEzLjUgMGwtMS4zIDBjLTM0LjkgMzYuMS03MS41IDcxLTEwNi4zIDEwNy4yIDM1LjkgMzUuMSA3MSA3MSAxMDYuNyAxMDYuMyAzNC4zLTM0LjEgNjguNC02OC40IDEwMi42LTEwMi40IDEuNS0xLjUgMy4zLTIuOCA0LjEtNC44LTM0LjYtMzMuOC02OC40LTY4LjItMTAyLjYtMTAyLjEtMS4zLTEuMy0yLjMtMi42LTMuMy00LjF6bTIxMy41IDBsLTEuMyAwYy0xNy4yIDE4LTM1LjEgMzUuMy01Mi42IDUzLTE3LjkgMTcuNy0zNS40IDM1LjctNTMuNSA1My4zIC44IDIuMyAzIDMuNiA0LjYgNS41TDUzMy4zIDI2MS41YzM2LjEtMzQuOSA3MC44LTcxLjIgMTA2LjctMTA2LjEtLjUtMi4yLTIuNi0zLjUtNC01TDU1NS44IDcwLjJjLTcuMS03LjQtMTQuOS0xNC4yLTIxLjUtMjIuMnpNMzE5LjYgMjYxLjdjLTM0LjkgMzUuMS03MCA3MC0xMDQuOSAxMDQuOS0uMyAuNy0uNyAxLjctMSAyLjMgMjQgMjMuNyA0Ny43IDQ3LjUgNzEuNSA3MS4zIDExLjggMTEuMyAyMi44IDIzLjUgMzQuOSAzNC40IDguNC03LjQgMTYuNC0xNi40IDI0LjctMjQuMyAyNS41LTI1LjMgNTEtNTEgNzYuNS03Ni4zIDEuOC0yLjIgNC4zLTMuNiA1LjUtNi4zLTM1LjQtMzQuOS03MC41LTcwLjItMTA1LjYtMTA1LjRsLTEuNS0uN3oiXX0sbjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuaXR5IixpY29uOls0NDgsNTEyLFtdLCJlMDQ5IiwiTTI0My42IDkxLjZsODAuMSA0Ni44YzIuOSAxLjYgMyA2LjIgMCA3LjhsLTk1LjIgNTUuNmMtMi45IDEuNy02LjMgMS42LTkgMGwtOTUuMi01NS42Yy0yLjktMS42LTMtNi4zIDAtNy44bDgwLjEtNDYuOCAwLTkxLjYtMjA0LjQgMTE5LjQgMCAyMzguOCA3OC40LTQ1LjggMC05My42Yy0uMS0zLjMgMy44LTUuNyA2LjctMy45bDk1LjIgNTUuNmMyLjkgMS43IDQuNSA0LjcgNC41IDcuOGwwIDExMS4yYy4xIDMuMy0zLjggNS43LTYuNyAzLjlMOTggMzQ2LjggMTkuNiAzOTIuNiAyMjQgNTEyIDQyOC40IDM5Mi42IDM1MCAzNDYuOCAyNjkuOSAzOTMuNmMtMi44IDEuNy02LjgtLjUtNi43LTMuOWwwLTExMS4yYzAtMy4zIDEuOC02LjMgNC41LTcuOEwzNjIuOSAyMTVjMi44LTEuNyA2LjggLjUgNi43IDMuOWwwIDkzLjYgNzguNCA0NS44IDAtMjM4LjgtMjA0LjQtMTE5LjQgMCA5MS42eiJdfSxvNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGVuY2VudC13ZWlibyIsaWNvbjpbMzIwLDUxMixbXSwiZjFkNSIsIk00MC41IDQ5NS44YzEuNCAxOS45LTI3LjYgMjIuMi0yOS43IDIuOS0xMS42LTEyOS45IDMxLjEtMjM5LjUgMTAxLjQtMzEzLjItMTUuNi0zNCA5LjItNzcuMSA1MC42LTc3LjEgMzAuMyAwIDU1LjEgMjQuNiA1NS4xIDU1LjEgMCA0NC00OS41IDcwLjgtODYuOSA0NS4xLTY1LjcgNzEuMy0xMDEuNCAxNjkuOC05MC41IDI4Ny4yek0xNjAuMiAuMWMtMTI1LjkgMC0yMDQuMyAxMzQuMi0xNDguMyAyNDIuMyA4LjcgMTcuNCAzNS4zIDQuNSAyNi4zLTEzLjQtNDYuMy05Mi42IDIxLTE5OS4yIDEyMi0xOTkuMiA3NS40IDAgMTM2LjkgNjEuNCAxMzYuOSAxMzYuOSAwIDkwLjgtODYuOSAxNTMuOS0xNjcuNyAxMzMuMS0xOS4xLTQuMS0yNS42IDI0LjQtNi42IDI5LjEgMTEwLjcgMjMuMiAyMDQtNjAgMjA0LTE2Mi4zIDAtOTEuOS03NC42LTE2Ni41LTE2Ni42LTE2Ni41eiJdfSxsNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZnJlZS1jb2RlLWNhbXAiLGljb246WzU3Niw1MTIsW10sImYyYzUiLCJNOTcuNCA5Ni4yYzEwLjQtMTAuNiAxNi0xNy4xIDE2LTIxLjkgMC0yLjgtMS45LTUuNS0zLjgtNy40LTIuNC0xLjgtNS40LTIuOC04LjQtMi44LTguNSAwLTIwLjkgOC44LTM1LjggMjUuNy00MS41IDQ3LjMtNjIuNyA5My4xLTYxLjggMTYwLjZTMjEgMzY3LjMgNTcuNiA0MTIuMmMxOC44IDIzLjYgMzMuMiAzNS44IDQzLjUgMzUuOCAzLjItLjMgNi4xLTEuNiA4LjQtMy44IDEuOS0yLjggMy44LTUuNiAzLjgtOC40IDAtNS42LTMuOS0xMi4yLTEzLjItMjAuNi00NC41LTQyLjMtNjcuMy05Ny02Ny41LTE2NS0uMi02MS40IDIxLjYtMTEyLjQgNjQuOC0xNTR6TTIzOS42IDQyMC4xYy42IC40IC45IC42IC45IC42bC0uOS0uNnptOTMuOCAuNmwuMi0uMWMtLjIgLjEtLjMgLjItLjIgLjF6bTMuMS0xNTguMmMtMTYuMi00LjIgNTAuNC04Mi45LTY4LjEtMTc3LjIgMCAwIDE1LjUgNDkuNC02Mi44IDE1OS42LTc0LjMgMTA0LjQgMjMuNSAxNjguNyAzNCAxNzUuMi02LjctNC4zLTQ3LjQtMzUuNyA5LjYtMTI4LjYgMTEtMTguMyAyNS41LTM0LjkgNDMuNS03Mi4yIDAgMCAxNS45IDIyLjQgNy42IDcxLjEtMTIuNSA3My42IDUzLjggNTIuNSA1NC44IDUzLjUgMjIuOCAyNi44LTE3LjcgNzMuNS0yMS42IDc2LjYgNS41LTMuNyAxMTcuNy03OCAzMy0xODguMS02IDYtMTMuOCAzNC4yLTMwIDMwLjF6TTUxMSA4OS43Yy0xNC45LTE2LjktMjcuNC0yNS43LTM1LjktMjUuNy0zIC4xLTUuOSAxLjEtOC40IDIuOC0xLjkgMS45LTMuOCA0LjctMy44IDcuNCAwIDQuOCA1LjYgMTEuMyAxNiAyMS45IDQzLjIgNDEuNiA2NSA5Mi42IDY0LjggMTU0LjEtLjIgNjgtMjMgMTIyLjYtNjcuNSAxNjUtOS4zIDguNC0xMy4yIDE0LjktMTMuMiAyMC42IDAgMi43IDEuOSA1LjYgMy44IDguNCAyLjMgMi4yIDUuMiAzLjYgOC40IDMuOCAxMC4zIDAgMjQuNy0xMi4xIDQzLjUtMzUuOCAzNi42LTQ0LjkgNTMuMS05NC40IDU0LjEtMTYxLjlTNTUyLjUgMTM3IDUxMSA4OS43eiJdfSxjNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieC10d2l0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjFiIiwiTTM1Ny4yIDQ4TDQyNy44IDQ4IDI3My42IDIyNC4yIDQ1NSA0NjQgMzEzIDQ2NCAyMDEuNyAzMTguNiA3NC41IDQ2NCAzLjggNDY0IDE2OC43IDI3NS41LTUuMiA0OCAxNDAuNCA0OCAyNDAuOSAxODAuOSAzNTcuMiA0OHpNMzMyLjQgNDIxLjhsMzkuMSAwLTI1Mi40LTMzMy44LTQyIDAgMjU1LjMgMzMzLjh6Il19LGQ2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGlja2VyLW11bGUiLGljb246WzU3Niw1MTIsW10sImYzZjciLCJNNTYxLjcgMTk5LjZsMCAwem0tNi4yLTc3LjRjLTcuNy0yMi4zLTUuMS03LjItMTMuNC0zNi45LTEuNi02LjUtMy42LTE0LjUtNi4yLTIwLTQuNC04LjctNC42LTcuNS00LjYtOS41IDAtNS4zIDMwLjctNDUuMyAxOS00Ni45LTUuNy0uNi0xMi4yIDExLjYtMjAuNiAxNy04LjYgNC4yLTggNS0xMC4zIDUtMi42IDAtNS43LTMtNi4yLTUtMi01LjcgMS45LTI1LjktMy42LTI1LjktMy42IDAtMTIuMyAyNC44LTE3IDI1LjgtNS4yIDEuMy0yNy45LTExLjQtNzUuMSAxOC0yNS4zIDEzLjItODYuOSA2NS4yLTg3IDY1LjMtNi43IDQuNy0yMCA0LjctMzUuNSAxNi00NC40IDMwLjEtMTA5LjYgOS40LTExMC43IDktMTEwLjYtMjYuOC0xMjgtMTUuMi0xNTkgMTEuNS0yMC44IDE3LjktMjMuNyAzNi41LTI0LjIgMzguOS00LjIgMjAuNCA1LjIgNDguMyA2LjcgNjQuMyAxLjggMTkuMy0yLjcgMTcuNyA3LjcgOTguMyAuNSAxIDQuMSAwIDUuMSAxLjUgMCA4LjQtMy44IDEyLjEtNC4xIDEzLTEuNSA0LjUtMS41IDEwLjUgMCAxNiAyLjMgOC4yIDguMiAzNy4yIDguMiA0Ni45IDAgNDEuOCAuNCA0NCAyLjYgNDkuNCAzLjkgMTAgMTIuNSA5LjEgMTcgMTIgMy4xIDMuNS0uNSA4LjUgMSAxMi41IC41IDIgMy42IDQgNi4yIDUgOS4yIDMuNiAyNyAuMyAyOS45LTIuNSAxLjYtMS41IC41LTQuNSAzLjEtNSA1LjEgMCAxMC44LS41IDE0LjQtMi41IDUuMS0yLjUgNC4xLTYgMS41LTEwLjUtLjQtLjgtNy0xMy4zLTkuOC0xNi0yLjEtMi01LjEtMy03LjItNC41LTUuOC00LjktMTAuMy0xOS40LTEwLjMtMTkuNS00LjYtMTkuNC0xMC4zLTQ2LjMtNC4xLTY2LjggNC42LTE3LjIgMzkuNS04Ny43IDM5LjYtODcuOCA0LjEtNi41IDE3LTExLjUgMjcuMy03IDYgMS45IDE5LjMgMjIgNjUuNCAzMC45IDQ3LjkgOC43IDk3LjQtMiAxMTIuMi0yIDIuOCAyLTEuOSAxMy0uNSAzOC45IDAgMjYuNC0uNCAxMy43LTQuMSAyOS45LTIuMiA5LjcgMy40IDIzLjItMS41IDQ2LjktMS40IDkuOC05LjkgMzIuNy04LjIgNDMuNCAuNSAxIDEgMiAxLjUgMy41IC41IDQuNSAxLjUgOC41IDQuNiAxMCA3LjMgMy42IDEyLTMuNSA5LjggMTEuNS0uNyAzLjEtMi42IDEyIDEuNSAxNSA0LjQgMy43IDMwLjYgMy40IDM2LjUgLjUgMi42LTEuNSAxLjYtNC41IDYuNC03LjQgMS45LS45IDExLjMtLjQgMTEuMy02LjUgLjMtMS44LTkuMi0xOS45LTkuMy0yMC0yLjYtMy41LTkuMi00LjUtMTEuMy04LTYuOS0xMC4xLTEuNy01Mi42IC41LTU5LjQgMy0xMSA1LjYtMjIuNCA4LjctMzIuNCAxMS00Mi41IDEwLjMtNTAuNiAxNi41LTY4LjMgLjgtMS44IDYuNC0yMy4xIDEwLjMtMjkuOSA5LjMtMTcgMjEuNy0zMi40IDMzLjUtNDcuNCAxOC0yMi45IDM0LTQ2LjkgNTItNjkuOCA2LjEtNyA4LjItMTMuNyAxOC04IDEwLjggNS43IDIxLjYgNyAzMS45IDE3IDE0LjYgMTIuOCAxMC4yIDE4LjIgMTEuOCAyMi45IDEuNSA1IDcuNyAxMC41IDE0LjkgOS41IDEwLjQtMiAxMy0yLjUgMTMuNC0yLjUgMi42LS41IDUuNy01IDcuMi04IDMuMS01LjUgNy4yLTkgNy4yLTE2LjUgMC03LjctLjQtMi44LTIwLjYtNTIuOXoiXX0sdTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR3aXRjaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjFlOCIsIk0zNTkuNCAxMDMuNWwtMzguNiAwIDAgMTA5LjcgMzguNiAwIDAtMTA5Ljd6TTI1My4yIDEwM2wtMzguNiAwIDAgMTA5LjggMzguNiAwIDAtMTA5Ljh6TTg5IDBsLTk2LjUgOTEuNCAwIDMyOS4yIDExNS44IDAgMCA5MS40IDk2LjUtOTEuNCA3Ny4zIDAgMTczLjgtMTY0LjYgMC0yNTYtMzY2LjkgMHpNNDE3LjMgMjM3LjhsLTc3LjIgNzMuMS03Ny4yIDAtNjcuNiA2NCAwLTY0LTg2LjkgMCAwLTI3NC4zIDMwOC45IDAgMCAyMDEuMnoiXX0scDZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtpY2tzdGFydGVyLWsiLGljb246WzQ0OCw1MTIsW10sImYzYmMiLCJNMzU2LjcgMjU2LjJsNDAuOC00MC41YzQyLjItNDEuOSA0Mi4yLTExMC4zIDAtMTUyLjFzLTExMS00MS45LTE1My4yIDBMMjI5LjMgNzguNEMyMDkuNiA1MC4zIDE3Ny4xIDMyIDE0MC4yIDMyIDgwLjUgMzIgMzIgODAuMiAzMiAxMzkuNWwwIDIzM2MwIDU5LjQgNDguNSAxMDcuNSAxMDguMiAxMDcuNSAzNy4xIDAgNjkuMy0xOC4zIDg5LTQ2LjRsMTQuOSAxNC43YzQyLjIgNDEuOSAxMTEgNDEuOSAxNTMuMiAwczQyLjItMTEwLjMgMC0xNTIuMWwtNDAuOC00MCAuMSAweiJdfSxmNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JpdGljYWwtcm9sZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjZjOSIsIk0yMjUuOCAwYy4zIC4yIDIxNi42IDEyNC41IDIxNy4xIDEyNC43IDMgMS4yIDMuNyAzLjUgMy43IDYuNi0uMSA4My40LS4xIDE2Ni45IDAgMjUwLjQgLjEgMS4yLS4yIDIuNC0uOCAzLjRzLTEuNSAxLjktMi42IDIuNGMtMjEuNCAxMi0yMDcuOSAxMTguMy0yMTguOSAxMjQuNmwtMyAwYy03OS4zLTQ1LjctMjE4LjMtMTI1LjQtMjE4LjQtMTI1LjUtLjYtLjMtMS4xLS43LTEuNC0xLjNzLS41LTEuMi0uNC0xLjljMC0uOSAwLTIyNS45LS4xLTI1My4xLS4xLTEgLjItMiAuNy0yLjlzMS4zLTEuNiAyLjItMkMyNy4yIDExMi4xIDIxMy4yIDYgMjI0LjEgMGwxLjggMHpNMjE1LjQgMjAuNGwtLjItLjJjLTY0LjcgMzYuOS0xMjkuNSA3My43LTE5NC4yIDExMC42IDAgLjEgLjEgLjIgLjEgLjRMNTIgMTQyLjljLTcuNyA2LTguMyA2LTEwLjYgNS4xLS4xIDAtMjQuMi05LjMtMjYuOC0xMGwwIDIzMC40Yy45LTEuNCA2NC4xLTExMC45IDY0LjEtMTExIDEuNi0yLjggMy0xLjkgOS4xLTEuNSAxLjQgLjEgMS41IC4yIC44IDEuNC00MS4yIDcxLjMtMzYuNCA2My02Ny41IDExNi45LS44IDEuNC0uNiAxLjEgMS4yIDEuMWwxODYuNSAwYzEuNCAwIDEuNy0uMiAxLjctMS42bDAtOC45YzAtMS4zIDIuNC0uOC0xOC40LTEtNy41LS4xLTE0LjEtMy4yLTIxLjQtMTIuNy03LjQtOS43LTE0LjYtMTkuNC0yMS44LTI5LjItMi4zLTMuMS0zLjQtMi40LTE2LjgtMi40LTEuOCAwLTEuOCAwLTEuOCAxLjggLjMgMjYuMiAuMiAyNS4zIDEgMzIuNyAuNSA0LjQgMi4yIDQuMiA5LjcgNC44IDMuMSAuMyAzLjkgNC4xIC41IDQuOS0xLjYgLjQtMzEuNiAuNS0zMy43LS4xLS41LS4xLTEtLjUtMS4zLS45cy0uNS0xLS40LTEuNiAuMy0xLjEgLjYtMS41IC45LS43IDEuNC0uOGMzLjMtLjggNi4yIC44IDYuNy00LjQgMS4zLTEzLjcgMS4yLTkgMS4xLTc5LjQgMC0xMC44LS40LTEyLjYtNS40LTEzLjYtMS4yLS4yLTMuNS0uMi00LjctLjYtMi45LTEtMi00LjggMS44LTQuOCAzMy43IDAgNDYuMS0xLjEgNTYuMSA0LjkgNy43IDQuNiAxMiAxMS41IDEyLjUgMjAuNCAuOSAxNC42LTYuNSAyMi4zLTE1IDMyLjYtLjIgLjEtLjMgLjMtLjQgLjVzLS4xIC40LS4xIC42IDAgLjQgLjEgLjYgLjIgLjQgLjQgLjVjMi42IDMuMiA1IDYuNiA3LjcgOS44IDI3LjYgMzMuMiAyNC4xIDMwLjUgNDEuMyAzMy4xIC45IC4xIDEtLjQgMS0xLjJsMC0xMWMwLTEgLjMtMS40IDEuNC0xLjMgNy44IDEuMiAxNS44IDEuMSAyMy42LS4zIDEuMS0uMSAxLjUgLjIgMS41IDEuMyAwIC4xIC45IDI2LjcgLjkgMjYuOCAwIDEuNSAuNyAxLjYgMS45IDEuNmwxODYuNyAwYy0yNy4yLTQ3LTU0LjItOTQtODEuMi0xNDAuOCAyLjMtLjctLjQgMCA2LjctMS40IDItLjQgMi4xLS40IDMuMSAxLjQgNy4zIDEyLjYgNzcuMyAxMzQgNzcuNCAxMzQuMWwwLTIzMC40Yy0xLjcgLjUtMTAzLjMgMzguNy0xMDUuOCAzOS43LTEuMSAuNC0xLjUgLjItMS45LS45LS42LTEuOS0xLjMtMy44LTIuMS01LjYtLjMtLjgtLjEtMS4xIC42LTEuNCAuMSAwIDk1LjUtMzUuOCAxMDMtMzguOC02NS40LTM3LjYtMTMwLjYtNzUtMTk2LTExMi42bDg2LjggMTUwLjQtLjMgLjNjLTkuNi0uOS0xMC41LTEuNi0xMS44LTMuOS0xLTEuNy03My41LTEyNy43LTgyLTE0Mi4yLTkuMSAxNC43LTgzLjYgMTQ2LjItODUuNCAxNDYuMy0yLjkgLjItNS45IC4xLTkuMiAuMSAyOC44LTQ5LjggNTcuNi05OS41IDg2LjItMTQ5bDAgMHptNTEuOSAxMjkuOWMxLjktLjEgMy43LS40IDUuNS0uOCAxLjctLjMgMi41IC4yIDIuNiAxLjkgMCAuMSAuMSAxOS4xLS45IDIwLjVzLTEuOSAxLjItMi42LS4yYy01LTkuNyA2LjItOS43LTM5LjEtMTItLjcgMC0xIC4yLTEgLjkgMCAuMSAzLjcgMTIyIDMuNyAxMjIuMSAwIC45IC41IDEuMiAxLjIgMS41IDMgMS4yIDUuOSAyLjUgOC43IDQgNy4zIDQuMyAxMS40IDEwLjggMTIuNCAxOS4zIDEuNCAxMS44LTIuOCAzNS44LTMyLjIgMzcuMS0yLjggLjEtMjguMyAxLjEtMzQuMS0yMy4zLTQuNy0xOS4zIDguMy0zMi43IDE5LjktMzYuNCAuNi0uMSAxLjItLjQgMS41LS45cy41LTEuMSAuNS0xLjdjLjEtNS42IDMtMTA3LjEgMy43LTEyMS4zIDAtMS4xLS42LTEuMi0xLjQtMS4xLTMyLjMgLjUtMzYuNy0uMy00MC4yIDguNS0yLjQgNi4yLTQuMSAxLjMtNCAuMiAxLjEtNiAyLjItMTIgMy4zLTE4IC40LTIuMSAxLjQtMi42IDMuNC0xLjkgNS42IDIuMSA2LjcgMS43IDM3LjIgMS45IDEuNyAwIDEuOC0uMSAxLjgtMS44IC43LTI3LjUgLjYtMjIuNiAxLTI5LjYgLjEtLjYtLjEtMS4yLS4zLTEuN3MtLjctLjktMS4zLTEuMWMtNS42LTIuOS04LjgtNy42LTguOS0xMy45LS40LTE0LjggMTcuNy0yMS43IDI3LjQtMTEuNSA2LjggNy4yIDUuOCAxOC45LTIuNSAyNC4yLS44IC40LTEuNCAxLjEtMS44IDEuOHMtLjYgMS42LS40IDIuNWMwIC42LS4xLTQuMyAxIDMwIDAgLjkgLjQgMS4xIDEuMiAxLjEgLjEgMCAyMy0uMSAzNC41LS40bDAtLjF6TTY4LjMgMTQxLjdjMTkuOC00LjUgMzIuNy0uNiA1Mi41IDEuNyAyLjggLjMgMy43IDEuMiAzLjYgNC0uMiA1LTEuMiAyMi4zLTEuMiAyMy4xIDAgLjUtLjIgMS0uNSAxLjRzLS43IC43LTEuMiAuOWMtNC4xIDEuNy0zLjYtNC40LTQtNy4zLTMuMS0yMi40LTczLjktMzIuNy03NC42IDI1LjQtLjMgMjMuOSAxNyA1My42IDU0LjEgNTAuOSAyNy4yLTIgMTktMjAuMiAyNC44LTIwLjUgLjQtLjEgLjkgMCAxLjMgLjFzLjggLjQgMS4xIC43IC41IC43IC42IDEuMiAuMSAuOSAwIDEuM2MtMS44IDEwLjgtMy40IDE5LTMuNCAxOS4yLTEuNSA5LjItODYuNyAyMi4xLTkzLjQtNDIuMS0yLjctMjUuOCAxMC40LTUzLjQgNDAuMy02MC4yem04MCA4Ny43bC0xOS41IDBjLS42IDAtMS4yLS4xLTEuNi0uNHMtLjgtLjgtMS0xLjRjMi40LTMuOCA1LjkgLjkgNS45LTYuMS0uMS0yNS44IC4yLTM4IC4yLTQwLjEgMC0zLjQtLjUtNC42LTMuMy00LjktNy0uNy0zLjEtMy40LTEuMS0zLjQgMTEuOC0uMSAyMi42LS4yIDMwIC43IDguOCAxLjEgMTYuNyAxMi42IDcuOSAyMi42LTIgMi4yLTQgNC40LTYuMSA2LjcgMSAxLjIgNi45IDguOCAxNy4zIDE5LjcgMi43IDIuOCA2LjIgMy41IDkuOSAzLjEgLjYgMCAxLjEtLjIgMS41LS42cy43LS45IC43LTEuNWMuMy0zLjQgLjMgNC43IC40LTQwLjYgMC01LjYtLjMtNi42LTMuMi02LjgtNC0uNC00LTIuMy0uNy0zLjRsMTkuMS0uMWMuMyAwIDQuNSAuNSAxIDMuNCAwIDAtLjIgMC0uMiAwLTMuNiAuMy0zLjkgMS00IDQuNi0uMyA0My45IC4xIDQwLjIgLjQgNDIuOCAuMSAuOCAuMyAyLjIgNS4xIDIuMSAyLjUgMCAzLjkgMy40IDAgMy40LTEwLjQgLjEtMjAuNyAwLTMxLjEgLjEtMTAuNyAwLTEzLjUtNi4yLTI0LjItMjAuOC0xLjYtMi4yLTguMy0yLjQtOC4yLS40IC45IDE2LjUgMCAxNy44IDQgMTcuNyA0LjgtLjEgNC43IDMuNiAuOCAzLjVsLjEgMHptMjc1LTEwLjFjLTEuMiA3LjEgLjIgMTAuNC01LjMgMTAuMy02MS41LS40LTQ3LjgtLjItNTAuNy0uMy0xLjItLjEtMi40LS40LTMuNi0uNy0yLjUtLjYgMS41LTEuMi0uNC01LjYtMS40LTMuNC0yLjgtNi44LTQuMS0xMC4yLS4xLS40LS40LS44LS43LTEuMXMtLjgtLjQtMS4zLS40Yy00LjktLjItOS43LS4yLTE0LjYgLjEtLjMgMC0uNiAuMi0uOSAuM3MtLjUgLjQtLjcgLjdjLTEuNiAzLjYtMy4xIDcuMy00LjUgMTEtMS4zIDMuMiA3LjkgMS4zIDEyLjIgMi4yIDMgLjYgNC41IDMuNyAuNyAzLjdsLTI2LjQgMGMtMi45IDAtMy4xLTMuMi0uNy0zLjIgMS4yIC4xIDIuNC0uMiAzLjUtLjlzMS45LTEuNSAyLjQtMi42YzEuNS0zIDIuOC02IDQuMS05LjEgMTguMi00Mi4xIDE3LjEtNDAuMiAxOC40LTQxLjYgLjItLjIgLjQtLjQgLjctLjZzLjYtLjIgLjgtLjIgLjYgLjEgLjggLjIgLjUgLjMgLjcgLjZjMi45IDMuMyAxOC40IDQ0LjcgMjMuNiA1MS45IDIgMi43IDUuNyAyIDYuNCAyIDMuNiAuMSA0LTEuMSA0LjEtNC4zIC4xLTEuOSAuMSAxLjIgLjEtNDEuMiAwLTQuNS0yLjQtMy43LTUuNi00LjMtLjMgMC0yLjYtLjYtLjEtMy4xIC4yLS4yLS45LS4yIDIxLjctLjIgMi4zIDAgNS4zIDIuOC0xLjIgMy40LS40IDAtLjcgMC0xLjEgLjJzLS42IC4zLS45IC42LS40IC42LS42IC45LS4yIC43LS4xIDEuMWMtLjEgMS42LS4yIDM4LjkgLjMgNDEuMiAuMiAuNyAuNiAxLjQgMS4yIDEuOHMxLjMgLjcgMi4xIC42YzEzLjMgLjQgMTQuOSAuNCAxNi0zLjQgMS43LTUuOCA0LjEtMi41IDMuNy0uMmwwIC4xek0zMTguNiAyODMuNmMtNC4yIDAtNC40LTMuNC0uNi0zLjQgMzUuOS0uMiAyOC4xIC40IDM3LjItLjYgMS43LS4yIDIuNCAuMiAyLjMgMS45LS4zIDMuNC0uNiA2LjgtMSAxMC4yLS4yIDIuMi0zLjIgMi42LTMuNC0uMi0uNC01LjMtMi4yLTQuNS0xNS42LTUuMS0xLjYtLjEtMS42IDAtMS42IDEuNWwwIDE2LjFjMCAxLjcgMCAxLjYgMS42IDEuNSAzLjEtLjIgMTAuMyAuMyAxNS43LTEuNSAuNS0uMiAzLjMtMS44IDMuMSAxLjggMCAuMi0uOCAxMC40LTEuMiAxMS40LS41IDEuMy0xLjkgMS41LTIuNiAuMy0xLjItMiAwLTUuMS0zLjctNS4zLTE1LjQtLjktMTIuOS0yLjUtMTIuOSA2IDAgMTIuMy0uOCAxNi4xIDMuOSAxNi4yIDE2LjYgLjUgMTQuNCAwIDE2LjQtNS43IC44LTIuNCAzLjUtMS44IDMuMiAuNi0uNCAzLjItLjggNi40LTEuMiA5LjYgMCAuNC0uMiAyLjQtNC43IDIuNC0zNy4yLS4xLTM0LjUtLjItMzUuMi0uMy0yLjctLjUtMi4yLTMgLjItMy40IDEuMS0uMiA0IC41IDQuMi0yLjYgMi40LTU2LjItLjEtNTEuMy0zLjktNTEuM2wwIDB6bS0uNC0xMDkuNWMyLjUgLjYgMy4xIDEuOCAzIDQuNi0uMyA1LjMtLjMgOS0uNiA5LjctLjcgMi4yLTMuMSAyLjEtMy4zLS4zLS40LTQuOC0zLTcuOC03LjYtOS4xLTI2LjMtNy43LTMyLjggMTUuNS0yNy4yIDMwLjIgNS45IDE1LjQgMjIgMTUuOSAyOC45IDEzLjggNS45LTEuOSA1LjktNi41IDYuOS03LjYgMS4yLTEuMyAyLjItMS44IDMuMSAxLjEgMCAuMSAuNiAxMS45LTYgMTIuNy0xLjYgLjItMTkuNCAzLjctMzIuNy0zLjQtMjEtMTEuMi0xNi43LTM1LjUtNi45LTQ1LjMgMTQtMTQuMSAzOS45LTcuMSA0Mi4zLTYuNWwwIDB6TTI4OS44IDI4MC4xYzMuMyAwIDMuNyAzIC4yIDMuNC0yLjYgLjMtNS0uNC01IDUuNSAwIDItLjIgMjkgLjQgNDEuNCAuMSAyLjMgMS4yIDMuNSAzLjQgMy43IDIyIDEuMiAxNS0xLjcgMTguOC02LjMgMS44LTIuMiAyLjggLjggMi44IDEuMSAuMyAxMy42LTQgMTIuNC01LjIgMTIuNGwtMzguMi0uMmMtMS45LS4yLTIuMS0zLS40LTMuNCAyLS41IDQuOSAuNCA1LjEtMi44IDEtMTUuOSAuNi00NC42IC4zLTQ3LjgtLjMtMy44LTIuOC0zLjMtNS43LTMuNy0yLjUtLjQtMi0zLjIgLjMtMy4yIDEuNCAwIDE4IDAgMjMuMSAwem0tMzEuNi01Ny44Yy4xIDQuMSAyLjkgMy41IDYgMy42IDIuNiAuMSAyLjUgMy40LS4xIDMuNC02LjUgMC0xMy43IDAtMjEuNi0uMS0zLjggMC0zLjQtMy40IDAtMy40IDQuNSAwIDMuMiAxLjYgMy40LTQ1LjUgMC01LjEtMy4zLTMuNS00LjctNC4yLTIuNi0xLjItMS40LTMuMSAuNC0zLjIgMS4zIDAgMjAuMi0uNCAyMS4yIC4yczEuOSAxLjYtLjQgMi45Yy0xIC41LTMuOS0uMy00LjIgMi41IDAgLjItLjggMS42LS4xIDQzLjhsMCAwek0yMjEuMyA0OTYuNmMuNSAuMyAxIC41IDEuNiAuNXMxLjEtLjIgMS42LS41YzE3LTkuOCAxODItMTAzLjYgMTk3LjQtMTEyLjUtLjEtLjQgMTEuMy0uMi0xODEuNS0uMy0xLjIgMC0xLjYgLjQtMS41IDEuNiAwIC4xIDEuMyA0NC41IDEuMiA1MC40LS4xIDIuNi0uNiA1LjItMS40IDcuNy0uNiAxLjggLjQtLjUtMTMuNSAzMi4yLS43IDEuNy0xIDIuMi0yLS4xLTQuMi0xMC4zLTguMy0yMC43LTEyLjYtMzEtMS41LTMuNC0yLjItNy4xLTItMTAuOCAuMi0yLjUgLjgtMTYuMSAxLjUtNDggMC0xLjkgMC0yLTItMmwtMTgzIDBjMi42IDEuNiAxNzguMyAxMDIuNiAxOTYgMTEyLjhsLjEgMHpNMTMwLjQgMzA3LjljMCAyLjQgLjQgMi44IDIuOCAzIDExLjUgMS4yIDIxIDMuNyAyNS42LTcuMyA2LTE0LjUgMi43LTM0LjQtMTIuNS0zOC44LTItLjYtMTYtMi44LTE1LjkgMS41IDAgOCAwIDExLjYgMCA0MS42em0xMDUuOC0xNWMwIDIuMSAxLjEgMzguNyAxLjEgMzkuMSAuMyA5LjktMjUuNiA1LjgtMjUuMi0yLjYgLjEtMiAxLjQtMzcuNCAxLjEtMzkuNC0xNC4xIDcuNC0xNC40IDQwLjIgNi40IDQ4LjggNCAxLjcgOC40IDEuOSAxMi41IC42czcuNi00IDkuOS03LjdjNC45LTcuOCA2LjgtMjkuNS01LjQtMzktLjEgLjEtLjIgLjEtLjQgLjFsMCAwem0tMTIuMy0xOThjLTkuOCAwLTkuNyAxNC44LS4xIDE0LjlzMTAuMS0xNC45IC4xLTE0LjlsMCAwek0xNDMuNyAxOTguNmMwIDEuOCAuNCAyLjQgMi4yIDIuNiAxMy42IDEuNCAxMi41LTExIDEyLjItMTMuNC0xLjctMTEuMi0xNC40LTEwLjItMTQuNC03LjggMCA0LjUgMCAxMy43IDAgMTguNnpNMzU2IDIwNWwtNi4xLTE1LjhjLTIuMiA1LjUtNC4yIDEwLjYtNi4yIDE1LjhsMTIuMyAweiJdfSxoNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RlYW0tc3ltYm9sIixpY29uOls0NDgsNTEyLFtdLCJmM2Y2IiwiTTI3My41IDE3Ny41YTYxIDYxIDAgMSAxIDEyMiAwIDYxIDYxIDAgMSAxIC0xMjIgMHptMTc0LjUgLjJjMCA2My01MSAxMTMuOC0xMTMuNyAxMTMuOEwyMjUgMzcxLjNjLTQgNDMtNDAuNSA3Ni44LTg0LjUgNzYuOC00MC41IDAtNzQuNy0yOC44LTgzLTY3TDAgMzU4IDAgMjUwLjcgOTcuMiAyOTBjMTUuMS05LjIgMzIuMi0xMy4zIDUyLTExLjVsNzEtMTAxLjdDMjIwLjcgMTE0LjUgMjcxLjcgNjQgMzM0LjIgNjQgMzk3IDY0IDQ0OCAxMTUgNDQ4IDE3Ny43ek0yMDMgMzYzYzAtMzQuNy0yNy44LTYyLjUtNjIuNS02Mi41LTQuNSAwLTkgLjUtMTMuNSAxLjVsMjYgMTAuNWMyNS41IDEwLjIgMzggMzkgMjcuNyA2NC41LTEwLjIgMjUuNS0zOS4yIDM4LTY0LjcgMjcuNS0xMC4yLTQtMjAuNS04LjMtMzAuNy0xMi4yIDEwLjUgMTkuNyAzMS4yIDMzLjIgNTUuMiAzMy4yIDM0LjcgMCA2Mi41LTI3LjggNjIuNS02Mi41ek00MTAuNSAxNzcuN2E3Ni40IDc2LjQgMCAxIDAgLTE1Mi44IDAgNzYuNCA3Ni40IDAgMSAwIDE1Mi44IDB6Il19LG02cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYWlsY2hpbXAiLGljb246WzQ0OCw1MTIsW10sImY1OWUiLCJNMzMxIDI0My41YzMuMS0uNCA2LjItLjQgOS4zIDAgMS43LTMuOCAyLTEwLjQgLjUtMTcuNi0yLjItMTAuNy01LjMtMTcuMS0xMS41LTE2LjFzLTYuNSA4LjctNC4yIDE5LjRjMS4zIDYgMy41IDExLjEgNiAxNC4zbDAgMHpNMjc3LjQgMjUyYzQuNSAyIDcuMiAzLjMgOC4zIDIuMSAxLjktMS45LTMuNS05LjQtMTIuMS0xMy4xLTUtMi4xLTEwLjQtMi44LTE1LjgtMi4ycy0xMC41IDIuNy0xNC44IDUuOGMtMyAyLjItNS44IDUuMi01LjQgNy4xIC45IDMuNyAxMC0yLjcgMjIuNi0zLjUgNy0uNCAxMi44IDEuOCAxNy4zIDMuN2wwIDB6bS05IDUuMWMtOS4xIDEuNC0xNSA2LjUtMTMuNSAxMC4xIC45IC4zIDEuMiAuOCA1LjItLjggNi0yLjMgMTIuNC0yLjkgMTguNy0xLjkgMi45IC4zIDQuMyAuNSA0LjktLjUgMS41LTIuMi01LjctOC0xNS40LTYuOWwwIDB6bTU0LjIgMTcuMWMzLjQtNi45LTEwLjktMTMuOS0xNC4zLTdzMTAuOSAxMy45IDE0LjMgN2wwIDB6bTE1LjctMjAuNWMtNy43LS4xLTggMTUuOC0uMyAxNS45czgtMTUuOCAuMy0xNmwwIDB6TTExOS41IDMzMi43Yy0xLjMgLjMtNiAxLjUtOC41LTIuMy01LjItOCAxMS4xLTIwLjQgMy0zNS44LTkuMS0xNy41LTI3LjgtMTMuNS0zNS01LjUtOC43IDkuNi04LjcgMjMuNS01IDI0LjEgNC4zIC42IDQuMS02LjUgNy40LTExLjYgLjktMS40IDIuMS0yLjYgMy41LTMuNnMzLTEuNiA0LjYtMiAzLjQtLjQgNSAwIDMuMyAxIDQuNyAxLjljMTEuNiA3LjYgMS40IDE3LjggMi4zIDI4LjYgMS40IDE2LjcgMTguNCAxNi40IDIxLjYgOSAuMi0uNCAuMy0uOCAuMy0xLjJzLS4yLS44LS41LTEuMWMwIC45IC43LTEuMy0zLjQtLjRsMCAwem0yOTkuNy0xNy4xYy0zLjMtMTEuNy0yLjYtOS4yLTYuOC0yMC41IDIuNC0zLjcgMTUuMy0yNC0zLjEtNDMuMy0xMC40LTEwLjktMzMuOS0xNi41LTQxLjEtMTguNS0xLjUtMTEuNCA0LjYtNTguNy0yMS41LTgzIDIwLjgtMjEuNiAzMy44LTQ1LjMgMzMuNy02NS43LS4xLTM5LjItNDguMi01MS0xMDcuNC0yNi41bC0xMi41IDUuM2MtLjEgMC0yMi43LTIyLjMtMjMuMS0yMi42LTY3LjUtNTguOS0yNzguOCAxNzUuOS0yMTEuMyAyMzIuOWwxNC44IDEyLjVjLTQgMTAuNy01LjQgMjIuMi00LjEgMzMuNSAzLjQgMzMuNCAzNiA2MC40IDY3LjUgNjAuNCA1Ny43IDEzMy4xIDI2Ny45IDEzMy4zIDMyMi4zIDMgMS43LTQuNSA5LjEtMjQuNiA5LjEtNDIuNHMtMTAuMS0yNS4zLTE2LjUtMjUuM2wwIDB6bS0zMTYgNDguMmMtMjIuOC0uNi00Ny41LTIxLjEtNDkuOS00NS41LTYuMi02MS4zIDc0LjMtNzUuMyA4NC0xMi4zIDQuNSAyOS42LTQuNyA1OC41LTM0LjEgNTcuOGwwIDB6TTg0LjcgMjQ5LjZjLTE1LjIgMy0yOC41IDExLjUtMzYuNyAyMy41LTQuOS00LjEtMTQtMTItMTUuNi0xNS0xMy0yNC44IDE0LjItNzMgMzMuMy0xMDAuMiA0Ny4xLTY3LjIgMTIwLjktMTE4LjEgMTU1LTEwOC45IDUuNSAxLjYgMjMuOSAyMi45IDIzLjkgMjIuOXMtMzQuMSAxOC45LTY1LjggNDUuM0MxMzYuMiAxNTAgMTA0IDE5Ny43IDg0LjcgMjQ5LjZ6TTMyMy42IDM1MC43cy0zNS43IDUuMy02OS41LTcuMWM2LjItMjAuMiAyNyA2LjEgOTYuNC0xMy44IDE1LjMtNC40IDM1LjQtMTMgNTEtMjUuNCAzLjQgNy44IDUuOCAxNS45IDcuMSAyNC4zIDMuNy0uNyAxNC4yLS41IDExLjQgMTguMS0zLjMgMTkuOS0xMS43IDM2LTI1LjkgNTAuOC04LjkgOS42LTE5LjQgMTcuNS0zMS4yIDIzLjMtNi41IDMuNC0xMy4zIDYuMy0yMC4zIDguNi01My41IDE3LjUtMTA4LjMtMS43LTEyNi00My0xLjQtMy4xLTIuNi02LjQtMy42LTkuNy03LjUtMjcuMi0xLjEtNTkuOCAxOC44LTgwLjQgMS4yLTEuMyAyLjUtMi45IDIuNS00LjgtLjItMS43LS44LTMuMy0xLjktNC41LTctMTAuMS0zMS4yLTI3LjQtMjYuMy02MC44IDMuNS0yNCAyNC41LTQwLjkgNDQuMS0zOS45bDUgLjNjOC41IC41IDE1LjkgMS42IDIyLjkgMS45IDExLjcgLjUgMjIuMi0xLjIgMzQuNi0xMS42IDQuMi0zLjUgNy42LTYuNSAxMy4zLTcuNSAyLjMtLjYgNC43LS43IDctLjNzNC42IDEuMiA2LjYgMi41YzEwIDYuNiAxMS40IDIyLjcgMTEuOSAzNC41IC4zIDYuNyAxLjEgMjMgMS40IDI3LjYgLjYgMTAuNyAzLjQgMTIuMiA5LjEgMTQgMy4yIDEgNi4yIDEuOCAxMC41IDMuMSAxMy4yIDMuNyAyMSA3LjUgMjYgMTIuMyAyLjUgMi41IDQuMiA1LjggNC43IDkuMyAxLjYgMTEuNC04LjggMjUuNC0zNi4zIDM4LjItNDYuNyAyMS43LTkzLjcgMTQuNC0xMDAuNSAxMy43LTIwLjItMi43LTMxLjYgMjMuMy0xOS41IDQxLjEgMjIuNiAzMy40IDEyMi40IDIwIDE1MS40LTIxLjQgLjctMSAuMS0xLjYtLjctMS00MS44IDI4LjYtOTcuMSAzOC4yLTEyOC41IDI2LTQuOC0xLjgtMTQuNy02LjQtMTUuOS0xNi43IDQzLjYgMTMuNSA3MSAuNyA3MSAuN3MyLTIuOC0uNi0yLjV6TTE3MS43IDE1Ny41YzE2LjctMTkuNCAzNy40LTM2LjIgNTUuOC00NS42IC4xLS4xIC4zLS4xIC41LS4xcy4zIC4xIC40IC4yIC4yIC4zIC4yIC40IDAgLjMtLjEgLjVjLTEuNSAyLjctNC4zIDguMy01LjIgMTIuNyAwIC4xIDAgLjMgMCAuNHMuMiAuMyAuMyAuNCAuMyAuMSAuNCAuMSAuMyAwIC40LS4xYzExLjUtNy44IDMxLjUtMTYuMiA0OS0xNy4zIC4yIDAgLjMgMCAuNSAuMXMuMiAuMiAuMyAuNCAuMSAuMyAwIC41LS4xIC4zLS4zIC40Yy0yLjkgMi4yLTUuNSA0LjgtNy43IDcuNy0uMSAuMS0uMSAuMi0uMSAuNHMwIC4zIC4xIC40IC4yIC4yIC4zIC4zIC4yIC4xIC40IC4xYzEyLjMgLjEgMjkuNyA0LjQgNDEgMTAuNyAuOCAuNCAuMiAxLjktLjYgMS43LTY5LjUtMTUuOS0xMjMuMSAxOC41LTEzNC41IDI2LjgtLjIgLjEtLjMgLjEtLjUgLjFzLS4zLS4xLS41LS4yLS4yLS4zLS4yLS41IC4xLS40IC4yLS41bC0uMSAweiJdfSxnNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibHVtb24iLGljb246WzY0MCw1MTIsW10sImU3ZTIiLCJNNDUyLjUgMjIzLjVjOS44IDAgMTYuNSA2LjMgMTYuNSAxNi42bDAgMzEuOGMwIDEwLjMtNi42IDE2LjYtMTYuNiAxNi42bC01Ni4yIDBjLTkuOCAwLTE2LjUtNi4zLTE2LjUtMTYuNmwwLTMxLjhjMC0xMC4zIDYuNy0xNi42IDE2LjUtMTYuNmw1Ni4zIDB6bS0yNS43IDEzLjFjLTEuNS0yLjYtMy4yLTIuNi00LjYgMGwtMTAuNyAxNy42Yy0xLjcgMi40LTIuNiA1LjEtMi42IDguMiAwIDcuOSA2LjkgMTQuNiAxNS42IDE0LjYgOC41IDAgMTUuNi02LjcgMTUuNi0xNC42IDAtMy0xLTUuOC0yLjctOC4ybC0xMC43LTE3LjZ6TTg1LjggMjIzLjhjMSAwIDEuNSAuNiAxLjUgMS41bDAgNTAuMyA2NC42IDBjMSAwIDEuNiAuNiAxLjYgMS41bDAgOS43YzAgLjktLjYgMS41LTEuNiAxLjVsLTc4LjQgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNjEuNGMwLS45IC42LTEuNSAxLjYtMS41bDEyLjMgMHptODguMyAwYzEgMCAxLjUgLjYgMS41IDEuNWwwIDQ1YzAgNCAyIDUuMiA1LjcgNS4ybDQ2LjkgMGMzLjggMCA1LjctMS4zIDUuNy01LjJsMC00NWMwLS45IC41LTEuNSAxLjUtMS41bDEyLjMgMGMxIDAgMS42IC42IDEuNiAxLjVsMCA0NmMwIDEwLjUtNS4zIDE2LjgtMTcuNiAxNi44bC01NCAwYy0xMi4zIDAtMTcuNi02LjMtMTcuNi0xNi44bDAtNDZjMC0uOSAuNi0xLjUgMS42LTEuNWwxMi4zIDB6bTEwOC4yIDBjMSAwIDEuNiAuNSAyLjIgMS40bDMwLjUgNDYuNCAxLjQgMCAzMC41LTQ2LjRjLjYtLjkgMS4yLTEuNCAyLjItMS40bDE4IDBjMSAwIDEuNSAuNiAxLjUgMS41bDAgNjEuNGMwIC45LS41IDEuNS0xLjUgMS41bC0xMi4zIDBjLTEgMC0xLjYtLjYtMS42LTEuNWwwLTQzLjgtMS4xIDAtMjguNyA0My44Yy0uNiAuOS0xLjMgMS41LTIuNCAxLjVsLTEwLjcgMGMtMSAwLTEuNy0uNi0yLjMtMS41bC0yOC43LTQzLjgtMS4xIDAgMCA0My44YzAgLjktLjUgMS41LTEuNSAxLjVsLTEyLjMgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNjEuNGMwLS45IC42LTEuNSAxLjYtMS41bDE3LjkgMHptMjE0LjQgMGMuOSAwIDEuMyAuNCAyLjIgMS4xbDUyLjcgNDYuMyAxLjMgMCAwLTQ2YzAtLjkgLjYtMS41IDEuNi0xLjVsMTIuMyAwYzEgMCAxLjYgLjYgMS42IDEuNWwwIDYxLjRjMCAuOS0uNiAxLjUtMS42IDEuNWwtMTQuNCAwYy0xIDAtMS40LS40LTIuMy0xLjFsLTUyLjYtNDYuMy0xLjQgMCAwIDQ2YzAgLjktLjUgMS41LTEuNSAxLjVsLTEyLjMgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNjEuNGMwLS45IC42LTEuNSAxLjYtMS41bDE0LjQgMHpNMzIwIDExNC4xYzg3LjkgMCAxNjcuNyAxNS43IDIyNS41IDQxbDIuNyAxLjJDNTg3LjEgMTczLjggNjQwIDIwNi41IDY0MCAyNTZzLTUyLjkgODIuMi05MS44IDk5LjZsLTIuNyAxLjJjLTU3LjggMjUuNC0xMzcuNiA0MS0yMjUuNSA0MS03Ni4yIDAtMTU1LjEtMTAuNS0yMjUuNS00MS0zOS42LTE3LjQtOTQuNS01MC4zLTk0LjUtMTAwLjhzNTQuOS04My41IDk0LjUtMTAwLjhjNzAuNC0zMC41IDE0OS4zLTQxIDIyNS41LTQxem0tODguOSAyMjljMjAuMyAyOSA1Mi44IDQ5LjYgODguOSA0OS42IDM2LjIgMCA2OC43LTIwLjYgODktNDkuN2wtMTc3LjkgLjF6bS05Ni4xIDBjNDMuMyAyOS43IDk2LjcgNDMuNSAxNDguNCA0OC0yNC4yLTkuMS00NC40LTI2LjctNTguNi00OC4xbC04OS45IDB6bTI4MC4zLS4xYy0xNC4yIDIxLjQtMzQuNCAzOS4xLTU4LjYgNDguMSA1MS44LTQuNSAxMDUuMy0xOC4zIDE0OC42LTQ4LjJsLTkwIDB6bS0zMzcuNCAuMWM0NC4xIDIzLjEgOTMuNyAzNS40IDE0Mi43IDQyLjYtMzMuNC04LjYtNjYuNS0yMS45LTk0LjQtNDIuNmwtNDguMyAwem00MzYuMi0uMmMtMjcuOSAyMC44LTYxLjEgMzQuMi05NC42IDQyLjggNDcuMy02LjkgODkuNi0xOC41IDEyMy45LTMzLjZsMS43LS44YzYuMS0yLjcgMTEuOS01LjUgMTcuNC04LjRsLTQ4LjUgMHpNNTIwIDE3My42YzEwLjcgOC43IDE5LjggMTguMSAyNyAyOC4yIC40IC42IC41IDEuMyAuMSAycy0xIDEtMS43IDFsLTEuNiAwYy0uNiAwLTEuMi0uMy0xLjUtLjgtNy45LTEwLjktMTguMi0yMS4xLTMwLjYtMzAuNGwtOTMuNSAwYzUuNCA4LjggOS45IDE4LjUgMTMuNCAyOC42IC4yIC42IC4xIDEuMi0uMiAxLjdzLS45IC44LTEuNiAuOGwtMS40IDBjLS44IDAtMS41LS41LTEuOC0xLjMtMy44LTEwLjctOC43LTIwLjgtMTQuNS0yOS45bC0xODQuMyAuMWMtNS44IDkuMS0xMC43IDE5LjEtMTQuNCAyOS44LS4zIC44LTEgMS4zLTEuOCAxLjNsLTEuNCAwYy0uNiAwLTEuMi0uMy0xLjYtLjhzLS41LTEuMS0uMi0xLjdjMy41LTEwLjIgOC0xOS43IDEzLjQtMjguNmwtOTMuNiAwYy0xMi4zIDkuMy0yMi42IDE5LjQtMzAuNCAzMC4zLS40IC41LS45IC44LTEuNSAuOGwtMS42IDBjLS43IDAtMS40LS40LTEuNy0xcy0uMy0xLjQgLjEtMmM3LjYtMTAuNSAxNi43LTE5LjkgMjYuOC0yOGwtNTEgMGMtMjguOSAxNi42LTYyIDQzLjMtNjMuNSA3OS43bDQ0LjcgMGMuNSAwIDEgLjIgMS4zIC42cy42IC44IC42IDEuM2wwIDEuM2MwIDEuMS0uOSAxLjktMS45IDEuOWwtNDQuNyAwQzYuOCAyOTUgNDAgMzIxLjcgNjkgMzM4LjNsNTAuOSAwYy0xMC4zLTguNC0xOS4xLTE3LjQtMjYuMS0yN2wtLjgtMS4xYy0uNC0uNi0uNS0xLjMtLjEtMnMxLTEgMS43LTFsMS42IDAgLjIgMGMuNSAuMSAxIC4zIDEuMyAuOCA3LjkgMTAuOSAxOC4xIDIxIDMwLjUgMzAuM2w5My42IDBjLTUuMy04LjgtOS44LTE4LjQtMTMuNC0yOC41LS4yLS42LS4xLTEuMiAuMi0xLjdzLjktLjggMS42LS44bDEuNCAwIC4yIDBjLjcgLjEgMS40IC42IDEuNyAxLjMgMy44IDEwLjcgOC42IDIwLjcgMTQuNCAyOS44bDE4NC41LS4xYzUuOC05LjEgMTAuNi0xOS4xIDE0LjQtMjkuN2wuMS0uMWMuMy0uNyAxLTEuMSAxLjctMS4xbDEuNCAwYy42IDAgMS4yIC4zIDEuNiAuOHMuNSAxLjIgLjIgMS43Yy0zLjUgMTAuMS04IDE5LjctMTMuMyAyOC41bDkzLjcgMGMxMi4zLTkuMyAyMi41LTE5LjQgMzAuMy0zMC4ybC4xLS4yYy40LS40IC45LS42IDEuNC0uNmwxLjYgMGMuNyAwIDEuNCAuNCAxLjcgMXMuMyAxLjQtLjEgMmMtNy4xIDEwLTE2LjEgMTkuMy0yNi43IDI3LjlsNTEuMSAwYzI4LjgtMTYuNiA2MS44LTQzLjMgNjMuNC03OS42bC00NC43IDBjLTEgMC0xLjktLjktMS45LTEuOWwwLTEuM2MwLTEuMSAuOS0xLjkgMS45LTEuOWw0NC43IDBjLTEuNi0zNi41LTM0LjktNjMuMy02My45LTc5LjlsLTUwLjkgMHpNMjIwLjUgMTI2LjJjLTQ5LjEgNy4xLTk4LjcgMTkuNS0xNDMgNDIuN2w0OC40IDBjMjcuOS0yMC44IDYxLTM0LjEgOTQuNS00Mi43em02Mi44LTUuNGMtNTEuOCA0LjUtMTA1LjIgMTguMy0xNDguNiA0OC4xbDkwIDBjMTQuMi0yMS40IDM0LjQtMzkgNTguNi00OC4xem0zNi42LTEuNmMtMzYuMiAwLTY4LjcgMjAuNi04OSA0OS43bDE3Ny45LS4xYy0yMC4zLTI5LjEtNTIuNy00OS42LTg4LjktNDkuNnptMzYuNiAxLjZjMjQuMiA5LjEgNDQuNCAyNi42IDU4LjUgNDhsODkuOCAwYy00My4zLTI5LjctOTYuNi00My41LTE0OC4zLTQ4em02Mi44IDUuNGMzMy40IDguNSA2Ni40IDIxLjkgOTQuMyA0Mi41bDQ4LjMgMGMtNDQuMS0yMy4xLTkzLjYtMzUuNC0xNDIuNi00Mi41eiJdfSxiNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnV0cml0aW9uaXgiLGljb246WzQ0OCw1MTIsW10sImYzZDYiLCJNMTEyIDguMVMyNDUuNC0uMSAyMzMgMTEyLjVjMCAwIDE5LjEtNzQuOSAxMDMtNDAuNiAwIDAtMTcuNyA3NC04OCA1NiAwIDAgMTQuNi01NC42IDY2LjEtNTYuNiAwIDAtMzkuOS0xMC4zLTgyLjEgNDguOCAwIDAtMTkuOC05NC41LTkzLjYtOTkuNyAwIDAgNzUuMiAxOS40IDc3LjYgMTA3LjUgMCAuMS0xMDYuNCA3LTEwNC0xMTkuOHpNNDI0IDMyMy43YzAgNDguNS05LjcgOTUuMy0zMiAxMzIuMy00Mi4yIDMwLjktMTA1IDQ4LTE2OCA0OC02Mi45IDAtMTI1LjgtMTcuMS0xNjgtNDgtMjIuMy0zNy0zMi04My44LTMyLTEzMi4zIDAtNDguNCAxNy43LTk0LjcgNDAtMTMxLjcgNDIuMi0zMC45IDk3LjEtNDguNiAxNjAtNDguNiA2MyAwIDExNy44IDE3LjYgMTYwIDQ4LjYgMjIuMyAzNyA0MCA4My4zIDQwIDEzMS43ek0xNDQgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMjE2IDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTI4OCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0zNjAgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMzg0IDI1NmMtNC44LTIyLjMtNy40LTM2LjktMTYtNTYtMzguOC0xOS45LTkwLjUtMzItMTQ0LTMyUzExOC44IDE4MC4xIDgwIDIwMGMtOC44IDE5LjUtMTEuMiAzMy45LTE2IDU2IDQyLjItNy45IDk4LjctMTQuOCAxNjAtMTQuOHMxMTcuOCA2LjkgMTYwIDE0Ljh6Il19LHg2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNhbXBsaW5nLXBsdXMiLGljb246WzUxMiw1MTIsW10sImY0ZjEiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0xMDcgMjA1LjZjLTQuNyAwLTkgMi44LTEwLjcgNy4ybC00IDkuNS0xMS05Mi44Yy0xLjctMTMuOS0yMi0xMy40LTIzLjEgLjRsLTQuMyA1MS40LTUuMi02OC44Yy0xLjEtMTQuMy0yMi4xLTE0LjItMjMuMiAwbC0zLjUgNDQuOS01LjktOTQuM2MtLjktMTQuNS0yMi4zLTE0LjQtMjMuMiAwbC01LjEgODMuNy00LjMtNjYuM2MtLjktMTQuNC0yMi4yLTE0LjQtMjMuMiAwbC01LjMgODAuMi00LjEtNTdjLTEuMS0xNC4zLTIyLTE0LjMtMjMuMi0uMmwtNy43IDg5LjgtMS44LTEyLjJjLTEuNy0xMS40LTE3LjEtMTMuNi0yMi0zLjNsLTEzLjIgMjcuNy00My45IDAgMCAyMy4yIDUxLjMgMGM0LjQgMCA4LjQtMi41IDEwLjQtNi40bDEwLjcgNzMuMWMyIDEzLjUgMjEuOSAxMyAyMy4xLS43bDMuOC00My42IDUuNyA3OC4zYzEuMSAxNC40IDIyLjMgMTQuMiAyMy4yLS4xbDQuNi03MC40IDQuOCA3My4zYy45IDE0LjQgMjIuMyAxNC40IDIzLjItLjFsNC45LTgwLjUgNC41IDcxLjhjLjkgMTQuMyAyMi4xIDE0LjUgMjMuMiAuMmw0LjYtNTguNiA0LjkgNjQuNGMxLjEgMTQuMyAyMiAxNC4yIDIzLjEgLjFsNi44LTgzIDIuNyAyMi4zYzEuNCAxMS44IDE3LjcgMTQuMSAyMi4zIDMuMWwxOC00My40IDUwLjUgMCAwLTIzLjItNTguNCAuM3ptLTc4IDUuMmwtMjEuOSAwIDAgMjEuOWMwIDQuMS0zLjMgNy41LTcuNSA3LjUtNC4xIDAtNy41LTMuMy03LjUtNy41bDAtMjEuOS0yMS45IDBjLTQuMSAwLTcuNS0zLjMtNy41LTcuNSAwLTQuMSAzLjQtNy41IDcuNS03LjVsMjEuOSAwIDAtMjEuOWMwLTQuMSAzLjQtNy41IDcuNS03LjVzNy41IDMuMyA3LjUgNy41bDAgMjEuOSAyMS45IDBjNC4xIDAgNy41IDMuMyA3LjUgNy41IDAgNC4xLTMuNCA3LjUtNy41IDcuNXoiXX0sdjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZGhhdCIsaWNvbjpbNTEyLDUxMixbXSwiZjdiYyIsIk0zNDEuNSAyODUuNmMzMy43IDAgODIuMy02LjkgODIuMy00NyAuMi02LjcgLjktMS44LTIwLjktOTYuMi00LjYtMTkuMS04LjctMjcuOC00Mi4zLTQ0LjYtMjYuMS0xMy4zLTgyLjktMzUuNC05OS43LTM1LjQtMTUuNyAwLTIwLjIgMjAuMi0zOC45IDIwLjItMTggMC0zMS4zLTE1LjEtNDguMS0xNS4xLTE2LjEgMC0yNi43IDExLTM0LjggMzMuNi0yNy41IDc3LjYtMjYuMyA3NC4zLTI2LjEgNzguMyAwIDI0LjggOTcuNiAxMDYuMSAyMjguNSAxMDYuMXpNNDI5IDI1NC44YzQuNyAyMiA0LjcgMjQuMyA0LjcgMjcuMiAwIDM3LjctNDIuMyA1OC42LTk4IDU4LjYtMTI1LjcgLjEtMjM1LjktNzMuNi0yMzUuOS0xMjIuMyAwLTYuOCAxLjQtMTMuNSA0LjEtMTkuNy00NS4yIDIuMy0xMDMuOCAxMC4zLTEwMy44IDYyIDAgODQuNyAyMDAuNiAxODkgMzU5LjUgMTg5IDEyMS44IDAgMTUyLjUtNTUuMSAxNTIuNS05OC42IDAtMzQuMi0yOS42LTczLTgyLjktOTYuMnoiXX0sYUllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1waWVkLXBpcGVyIixpY29uOls0NDgsNTEyLFsicGllZC1waXBlci1zcXVhcmUiXSwiZTAxZSIsIk0zMi4xIDQxOWwtMzIgNjAuMiAuOC0zMjhDLjkgODUuMyA1NC4xIDMyIDEyMC4xIDMybDMyNy4yIDBDMzU0LjMgNjAuOSAyNTcuNCAxMjYuMiAxOTMuNCAyMDAuNiAxMjIuOCAyODIgODIuNyAzMzggMzIuMSA0MTl6bTQxNi0zODdTMzA1LjMgOTguOCAyNjEuNyAxOTkuMWMtMjMuMiA1My42LTI4LjkgMTE4LjEtNzEgMTU4LjYtMjguOSAyNy44LTY5LjggMzguMi0xMDUuMyA1Ni4zLTIzLjIgMTItNjYuNCA0MC41LTg0LjkgNjZsMzI4LjQgMGM2NiAwIDExOS4zLTUzLjMgMTE5LjMtMTE5LjItLjEgMC0uMS0zMjguOC0uMS0zMjguOHoiXX0seTZyPWFJZSx3NnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2hhdHNhcHAiLGljb246WzQ0OCw1MTIsW10sImYyMzIiLCJNMzgwLjkgOTcuMWMtNDEuOS00Mi05Ny43LTY1LjEtMTU3LTY1LjEtMTIyLjQgMC0yMjIgOTkuNi0yMjIgMjIyIDAgMzkuMSAxMC4yIDc3LjMgMjkuNiAxMTFMMCA0ODAgMTE3LjcgNDQ5LjFjMzIuNCAxNy43IDY4LjkgMjcgMTA2LjEgMjdsLjEgMGMxMjIuMyAwIDIyNC4xLTk5LjYgMjI0LjEtMjIyIDAtNTkuMy0yNS4yLTExNS02Ny4xLTE1N3ptLTE1NyAzNDEuNmMtMzMuMiAwLTY1LjctOC45LTk0LTI1LjdsLTYuNy00LTY5LjggMTguMyAxOC42LTY4LjEtNC40LTdjLTE4LjUtMjkuNC0yOC4yLTYzLjMtMjguMi05OC4yIDAtMTAxLjcgODIuOC0xODQuNSAxODQuNi0xODQuNSA0OS4zIDAgOTUuNiAxOS4yIDEzMC40IDU0LjFzNTYuMiA4MS4yIDU2LjEgMTMwLjVjMCAxMDEuOC04NC45IDE4NC42LTE4Ni42IDE4NC42ek0zMjUuMSAzMDAuNWMtNS41LTIuOC0zMi44LTE2LjItMzcuOS0xOC01LjEtMS45LTguOC0yLjgtMTIuNSAyLjhzLTE0LjMgMTgtMTcuNiAyMS44Yy0zLjIgMy43LTYuNSA0LjItMTIgMS40LTMyLjYtMTYuMy01NC0yOS4xLTc1LjUtNjYtNS43LTkuOCA1LjctOS4xIDE2LjMtMzAuMyAxLjgtMy43IC45LTYuOS0uNS05LjdzLTEyLjUtMzAuMS0xNy4xLTQxLjJjLTQuNS0xMC44LTkuMS05LjMtMTIuNS05LjUtMy4yLS4yLTYuOS0uMi0xMC42LS4ycy05LjcgMS40LTE0LjggNi45Yy01LjEgNS42LTE5LjQgMTktMTkuNCA0Ni4zczE5LjkgNTMuNyAyMi42IDU3LjRjMi44IDMuNyAzOS4xIDU5LjcgOTQuOCA4My44IDM1LjIgMTUuMiA0OSAxNi41IDY2LjYgMTMuOSAxMC43LTEuNiAzMi44LTEzLjQgMzcuNC0yNi40czQuNi0yNC4xIDMuMi0yNi40Yy0xLjMtMi41LTUtMy45LTEwLjUtNi42eiJdfSxrNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW1kYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjJkOCIsIk04OS41IDMyMy42bC0zNS42IDAgMC0xMzcuNCAzNS42IDAgMCAxMzcuNHptNjYuNi03My4xbDkuMS02NC4zIDQ2LjMgMCAwIDEzNy40LTMxIDAgMC05Mi43LTEzLjQgOTIuNy0yMS4zIDAtMTMtOTAuNy0uMSA5MC43LTMxLjIgMCAwLTEzNy40IDQ2LjEgMGMuNSA4LjMgMi44IDE4LjEgNC4zIDI5LjRsNC4yIDM0Ljl6bTY3LjYgNzMuMWwwLTEzNy40IDI2LjYgMGMxNyAwIDI3IC45IDMzIDIuNCA2LjEgMS43IDEwLjcgNC4yIDEzLjkgNy45IDMuMSAzLjMgNS4xIDYuNiA1LjggMTIgLjkgNC40IDEuNCAxMy4xIDEuNCAyNi4ybDAgNDguMmMwIDEyLjMtLjcgMjAuNS0xLjkgMjQuNy0xLjEgNC4xLTMuMSA3LjQtNiA5LjctMi44IDIuNC02LjQgNC4xLTEwLjcgNS00LjIgLjgtMTAuNiAxLjMtMTkuMSAxLjNsLTQzIDB6bTM1LjUtMTEzLjlsMCA4OS40YzUuMSAwIDguMy0xIDkuNC0yLjMgMS4xLTIgMS44LTcuNiAxLjgtMTYuN2wwLTUzLjNjMC02LjItLjEtMTAuMi0uNy0xMi0uMy0xLjgtMS4yLTMtMi42LTQuNy0xLjQgMC00LjEtLjQtNy45LS40em01Ny4zIDExMy45bDAtMTM3LjQgMzQuMSAwIDAgNDMuOWMyLjktMi40IDYuMS00LjkgOS41LTYuNiAzLjYtMS41IDguOC0yLjQgMTIuOC0yLjQgNC44IDAgOC45IC44IDEyLjMgMi4yIDMuNCAxLjUgNiAzLjUgOCA2LjIgMS43IDIuNiAyLjcgNS4zIDMuMSA3LjggLjQgMi42LS4yIDgtLjIgMTYuMmwwIDM4LjZjMCA4LjIgLjIgMTQuMy0uOCAxOC40LTEuMSA0LTMuOCA3LjYtNy44IDkuNi00LjEgMy45LTguOSA1LjMtMTQuNiA1LjMtNCAwLTkuMi0uOS0xMi43LTIuNS0zLjUtMS44LTYuNy00LjUtOS42LThsLTIuMSA4LjctMzIgMHptNDUuMS0yMC43Yy43LTEuOCAxLTYgMS0xMi41bDAtMzUuNGMwLTUuNi0uMy05LjUtMS4xLTExLjItLjctMS45LTMuNy0yLjctNS44LTIuNy0yIDAtMy40IC44LTQuMSAyLjMtLjYgMS41LTEgNS40LTEgMTEuNmwwIDM2LjRjMCA2LjEgLjQgMTAgMS4yIDExLjYgLjYgMS43IDIuMSAyLjUgNC4xIDIuNSAyLjIgMCA0LjItLjggNS43LTIuNnpNNDE4LjQgMzJjMTUuNyAxLjIgMjguNyAxNS4yIDI4LjcgMzEuOWwwIDM4NC4yYzAgMTYuNC0xMS45IDMwLjQtMjguMiAzMS0uMyAwLS41IC45LS44IC45TDI5LjkgNDgwYy0uMyAwLS42LS45LS44LS4xLTE1LjctMS40LTI3LjktMTMuOC0yOS0zMC4yTDAgNjEuOEMxLjEgNDUuOSAxMy44IDMzLjEgMzAuMyAzMS4xbDM4Ny40IDBjLjIgMCAuNSAuOSAuNyAuOXpNMzAuMyA0MS4zQzE5IDQyIDEwIDUxIDkuMyA2Mi40bDAgMzg3LjNjLjQgNS40IDIuNyAxMC41IDYuNCAxNC4zIDMuOCAzLjkgOC44IDYuMyAxNC4yIDYuN2wzODguMiAwYzExLjUtMSAyMC42LTExLjYgMjAuNi0yMi42bDAtMzg0LjJjMC01LjctMi4xLTExLjMtNi0xNS41cy05LjMtNi44LTE1LTcuMmwtMzg3LjQgMHoiXX0sUzZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InB5dGhvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlMiIsIk00MzkuOCAyMDAuNWMtNy43LTMwLjktMjIuMy01NC4yLTUzLjQtNTQuMmwtNDAuMSAwIDAgNDcuNGMwIDM2LjgtMzEuMiA2Ny44LTY2LjggNjcuOGwtMTA2LjggMGMtMjkuMiAwLTUzLjQgMjUtNTMuNCA1NC4zbDAgMTAxLjhjMCAyOSAyNS4yIDQ2IDUzLjQgNTQuMyAzMy44IDkuOSA2Ni4zIDExLjcgMTA2LjggMCAyNi45LTcuOCA1My40LTIzLjUgNTMuNC01NC4zbDAtNDAuNy0xMDYuNyAwIDAtMTMuNiAxNjAuMiAwYzMxLjEgMCA0Mi42LTIxLjcgNTMuNC01NC4yIDExLjItMzMuNSAxMC43LTY1LjcgMC0xMDguNnpNMjg2LjIgNDQ0LjdhMjAuNCAyMC40IDAgMSAxIDAtNDAuNyAyMC40IDIwLjQgMCAxIDEgMCA0MC43ek0xNjcuOCAyNDguMWwxMDYuOCAwYzI5LjcgMCA1My40LTI0LjUgNTMuNC01NC4zbDAtMTAxLjljMC0yOS0yNC40LTUwLjctNTMuNC01NS42LTM1LjgtNS45LTc0LjctNS42LTEwNi44IC4xLTQ1LjIgOC01My40IDI0LjctNTMuNCA1NS42bDAgNDAuNyAxMDYuOSAwIDAgMTMuNi0xNDcgMGMtMzEuMSAwLTU4LjMgMTguNy02Ni44IDU0LjItOS44IDQwLjctMTAuMiA2Ni4xIDAgMTA4LjYgNy42IDMxLjYgMjUuNyA1NC4yIDU2LjggNTQuMmwzNi43IDAgMC00OC44YzAtMzUuMyAzMC41LTY2LjQgNjYuOC02Ni40ek0xNjEuMiA2NC43YTIwLjQgMjAuNCAwIDEgMSAwIDQwLjggMjAuNCAyMC40IDAgMSAxIDAtNDAuOHoiXX0sTTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNhc2gtYXBwIixpY29uOls0NDgsNTEyLFtdLCJlN2Q0IiwiTTQ0MC4zIDk2LjljLTkuNC0yNi41LTMwLjMtNDcuNC01Ni44LTU3LTI0LjEtNy45LTQ2LjMtNy45LTkxLjYtNy45TDE1NiAzMmMtNDQuOCAwLTY3LjIgMC05MS4zIDcuNS0yNi41IDkuNi00Ny40IDMwLjUtNTcgNTctNy43IDI0LjMtNy43IDQ2LjctNy43IDkxLjdMMCAzMjMuOGMwIDQ1LjIgMCA2Ny40IDcuNSA5MS41IDkuNiAyNi41IDMwLjUgNDcuNCA1NyA1NyAyNC4zIDcuNyA0Ni43IDcuNyA5MS42IDcuN2wxMzUuNyAwYzQ1IDAgNjcuNCAwIDkxLjYtNy43IDI2LjUtOS42IDQ3LjQtMzAuNSA1Ny01NyA3LjctMjQuMyA3LjctNDYuNyA3LjctOTEuNWwwLTEzNS41YzAtNDUgMC02Ny40LTcuNy05MS41ek0zMjMuMSAxODUuNGwtMjUuOCAyMS4xYy0yLjMgMS45LTUuNSAxLjUtNy4zLS45LTEzLjItMTYuMi0zMy43LTI1LjQtNTYuMS0yNS40LTI1IDAtNDAuNiAxMC45LTQwLjYgMjYuMi0uNCAxMi44IDExLjcgMTkuNiA0OS4xIDI3LjcgNDcuMiAxMCA2OC43IDI5LjcgNjguNyA2Mi43IDAgNDEuNC0zMy43IDcxLjktODYuNCA3NS4zbC01LjEgMjQuNWMtLjQgMi4zLTIuNiA0LjEtNS4xIDQuMWwtNDAuNiAwYy0zLjQgMC01LjgtMy4yLTUuMS02LjRsNi40LTI3LjNjLTI2LTcuNS00Ny4yLTIyLTU5LjMtMzkuNy0xLjUtMi4zLTEuMS01LjMgMS4xLTdsMjguMi0yMmMyLjMtMS45IDUuOC0xLjMgNy41IDEuMSAxNC45IDIwLjkgMzggMzMuMyA2NS43IDMzLjMgMjUgMCA0My44LTEyLjIgNDMuOC0yOS43IDAtMTMuNC05LjQtMTkuNi00MS4yLTI2LjItNTQuMi0xMS43LTc1LjgtMzEuOC03NS44LTY0LjkgMC0zOC40IDMyLjItNjcuMiA4MC45LTcxbDUuMy0yNS40Yy40LTIuMyAyLjYtNC4xIDUuMS00LjFsMzkuOSAwYzMuMiAwIDUuOCAzIDUuMSA2LjJsLTYuMiAyOC40YzIwLjkgNi40IDM4IDE3LjkgNDguNyAzMi4yIDEuNyAyLjEgMS4zIDUuMy0uOSA3eiJdfSxDNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGludGVyZXN0LXAiLGljb246WzM4NCw1MTIsW10sImYyMzEiLCJNMjA0IDYuNWMtMTAyLjYgMC0yMDQgNjguNC0yMDQgMTc5LjEgMCA3MC40IDM5LjYgMTEwLjQgNjMuNiAxMTAuNCA5LjkgMCAxNS42LTI3LjYgMTUuNi0zNS40IDAtOS4zLTIzLjctMjkuMS0yMy43LTY3LjggMC04MC40IDYxLjItMTM3LjQgMTQwLjQtMTM3LjQgNjguMSAwIDExOC41IDM4LjcgMTE4LjUgMTA5LjggMCA1My4xLTIxLjMgMTUyLjctOTAuMyAxNTIuNy0yNC45IDAtNDYuMi0xOC00Ni4yLTQzLjggMC0zNy44IDI2LjQtNzQuNCAyNi40LTExMy40IDAtNjYuMi05My45LTU0LjItOTMuOSAyNS44IDAgMTYuOCAyLjEgMzUuNCA5LjYgNTAuNy0xMy44IDU5LjQtNDIgMTQ3LjktNDIgMjA5LjEgMCAxOC45IDIuNyAzNy41IDQuNSA1Ni40IDMuNCAzLjggMS43IDMuNCA2LjkgMS41IDUwLjQtNjkgNDguNi04Mi41IDcxLjQtMTcyLjggMTIuMyAyMy40IDQ0LjEgMzYgNjkuMyAzNiAxMDYuMiAwIDE1My45LTEwMy41IDE1My45LTE5Ni44IDAtOTkuMy04NS44LTE2NC4xLTE4MC0xNjQuMXoiXX0sejZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndobWNzIixpY29uOls0NDgsNTEyLFtdLCJmNDBkIiwiTTQ0OCAxNjFsMC0yMS4zLTI4LjUtOC44LTIuMi0xMC40IDIwLjEtMjAuNy0xMC40LTE5LjQtMjkgNy41LTcuMi03LjUgNy41LTI4LjItMTkuMS0xMS42LTIxLjMgMjEtMTAuNy0zLjItNy0yNi40LTIyLjYgMC02LjIgMjYuNC0xMi4xIDMuMi0xOS43LTIxLTE5LjQgMTEgOC4xIDI3LjctOC4xIDguNC0yOC41LTcuNS0xMSAxOS4xIDIwLjcgMjEtMi45IDEwLjQtMjguNSA3LjgtLjMgMjEuNyAyOC44IDcuNSAyLjQgMTIuMS0yMC4xIDE5LjkgMTAuNCAxOC41IDI5LjYtNy41IDcuMiA4LjYtOC4xIDI2LjkgMTkuOSAxMS42IDE5LjQtMjAuNCAxMS42IDIuOSA2LjcgMjguNSAyMi42IC4zIDYuNy0yOC44IDExLjYtMy41IDIwLjcgMjEuNiAyMC40LTEyLjEtOC44LTI4IDcuOC04LjEgMjguOCA4LjggMTAuMy0yMC4xLTIwLjktMTguOCAyLjItMTIuMSAyOS4xLTd6TTMyOC44IDkyLjZhNTYuOCA1Ni44IDAgMSAxIDAgMTEzLjYgNTYuOCA1Ni44IDAgMSAxIDAtMTEzLjZ6bTcyLjMgMTMwbDQ2LjkgMTQuNSAwIDM5LjktNTUuMSAxMy40LTQuMSAyMi43IDM4LjkgMzUuMy0xOS4yIDM3LjktNTQtMTYuNy0xNC42IDE1LjIgMTYuNyA1Mi41LTM4LjMgMjIuNy0zOC45LTQwLjUtMjEuNyA2LjYtMTIuNiA1NC00Mi40LS41LTEyLjYtNTMuNi0yMS43LTUuNi0zNi40IDM4LjQtMzcuNC0yMS43IDE1LjItNTAuNS0xMy43LTE2LjEtNTUuNSAxNC4xLTE5LjctMzQuOCAzNy45LTM3LjQtNC44LTIyLjgtNTQtMTQuMSAuNS00MC45IDUzLjUtMTQuNyA1LjctMTkuNy0zOC45LTM5LjQgMjAuNy0zNS44IDUzLjYgMTQuMSAxNS4yLTE1LjctMTUuMi01MiAzNi40LTIwLjcgMzYuOCAzOS40IDIyLjctNi4xIDExLjYtNTIgNDIuNCAwIDExLjYgNDUuOS0yMi42LTUuOS02LjMtMS43LTMuMyA1LjctMTEgMTkuMS0zLjMgNS42IDQuNiA0LjYgMTcuMiAxNy40LS4zIDEtMjMuOCA2LjUtNi4yIDEuN2MwIDMuMi0uMSA5LjYtLjMgMTkuMy00Ny41IDEwLjQtODMuMyA1Mi44LTgzLjMgMTAzLjUgMCA1OC4zIDQ3LjMgMTA1LjcgMTA1LjcgMTA1LjcgNTAuNSAwIDkyLjctMzUuNCAxMDMuMi04Mi44IDkuOSAuMSAxNi42IC4yIDIwLjEgLjNsMS42LTYuNyA1LjYtMjQgMS45LS42IDE3LjEgMTcuOCA0LjcgNC45IDUuOC0zLjQgMjAuNC0xMi4xIDUuOC0zLjUtMi02LjUtNi44LTIxLjJ6Il19LF82cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqb2dldCIsaWNvbjpbNTEyLDUxMixbXSwiZjNiNyIsIk0zODYuMSA0NUMzNDUuNiAxOS45IDMwMC42IDggMjU2LjIgOCAxNzMgOCA5MS44IDQ5LjkgNDQuOSAxMjUuOS0yNyAyNDIuNSA5LjMgMzk1LjIgMTI1LjkgNDY3LjFzMjY5LjMgMzUuNiAzNDEuMi04MC45QzUzOSAyNjkuNiA1MDIuNyAxMTYuOCAzODYuMSA0NXptNTEuOCAzMjMuMmMtNDAuNCA2NS41LTExMC40IDEwMS41LTE4MiAxMDEuNS02LjggMC0xMy42LS40LTIwLjQtMS05LTEzLjYtMTkuOS0zMy4zLTIzLjctNDIuNC01LjctMTMuNy0yNy4yLTQ1LjYgMzEuMi02Ny4xIDUxLjctMTkuMSAxNzYuNy0xNi41IDIwOC44LTE3LjYtNCA5LTguNiAxNy45LTEzLjkgMjYuNnpNMjM3LjEgMjgxLjljLTU1LjUtMS40LTgxLjctMjAuOC01OC41LTQ4LjJzNTEuMS00MC43IDY4LjktNTEuMmMxNy45LTEwLjUgMjcuMy0zMy43LTIzLjYtMjkuNy0xMjguNiA4LjctMTY3LjMgOTkuMy0xNzguMyAxNDAuMi04LjgtNDkuNy0uMS0xMDIuNyAyOC41LTE0OS4xIDYxLjktMTAwLjUgMTkzLjUtMTMxLjcgMjk0LTY5LjggNzQuOCA0Ni4xIDExMS4yIDEzMC45IDk5LjMgMjEyLjctMjQuOS0uNS0xNzkuMy0zLjYtMjMwLjMtNC45em0xODMuOC01NC44Yy0yMi43LTYtNTcgMTEuMy04Ni43IDI3LjItMjkuNyAxNS44LTMxLjEgOC4yLTMxLjEgOC4yczQwLjItMjguMSA1MC43LTM0LjUgMzEuOS0xNCAxMy40LTI0LjZjLTMuMi0xLjgtNi43LTIuNy0xMC40LTIuNy0xNy44IDAtNDEuNSAxOC43LTY3LjUgMzUuNi0zMS41IDIwLjUtNjUuMyAzMS4zLTY1LjMgMzEuM0wzOTMuNSAyNjYgNDQwIDI0Mi42czMuNi05LjUtMTkuMS0xNS41eiJdfSxpSWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXlvdXR1YmUiLGljb246WzQ0OCw1MTIsWzYxNzk4LCJ5b3V0dWJlLXNxdWFyZSJdLCJmNDMxIiwiTTI4MiAyNTYuMmwtOTUuMi01NC4xIDAgMTA4LjIgOTUuMi01NC4xek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHptMTQuNCAxMzYuMWM3LjYgMjguNiA3LjYgODguMiA3LjYgODguMnMwIDU5LjYtNy42IDg4LjFjLTQuMiAxNS44LTE2LjUgMjcuNy0zMi4yIDMxLjktMjguMyA3LjctMTQyLjIgNy43LTE0Mi4yIDcuN3MtMTEzLjkgMC0xNDIuMi03LjZjLTE1LjctNC4yLTI4LTE2LjEtMzIuMi0zMS45LTcuNi0yOC42LTcuNi04OC4yLTcuNi04OC4yczAtNTkuNyA3LjYtODguMmM0LjItMTUuOCAxNi41LTI4LjIgMzIuMi0zMi40IDI4LjMtNy43IDE0Mi4yLTcuNyAxNDIuMi03LjdzMTEzLjkgMCAxNDIuMiA3LjdjMTUuNyA0LjIgMjggMTYuNiAzMi4yIDMyLjR6Il19LFQ2cj1pSWUsTDZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF0bGFzc2lhbiIsaWNvbjpbNTEyLDUxMixbXSwiZjc3YiIsIk0xNTIuMiAyMzYuNGMtNy43LTguMi0xOS43LTcuNy0yNC44IDIuOEwxLjYgNDkwLjJjLTUgMTAgMi40IDIxLjcgMTMuNCAyMS43bDE3NSAwYzUuOCAuMSAxMS0zLjIgMTMuNC04LjQgMzcuOS03Ny44IDE1LjEtMTk2LjMtNTEuMi0yNjcuMXpNMjQ0LjQgOC4xYy0xMjIuMyAxOTMuNC04LjUgMzQ4LjYgNjUgNDk1LjUgMi41IDUuMSA3LjcgOC40IDEzLjQgOC40TDQ5NyA1MTJjMTEuMiAwIDE4LjQtMTEuOCAxMy40LTIxLjcgMCAwLTIzNC41LTQ3MC42LTI0MC40LTQ4Mi4zLTUuMy0xMC42LTE4LjgtMTAuOC0yNS42IC4xeiJdfSxENnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGllZC1waXBlci1oYXQiLGljb246WzY0MCw1MTIsW10sImY0ZTUiLCJNNjQwIDI0LjljLTgwLjggNTMuNi04OS40IDkyLjUtOTYuNCAxMDQuNC02LjcgMTIuMi0xMS43IDYwLjMtMjMuMyA4My42LTExLjcgMjMuNi01NC4yIDQyLjItNjYuMSA1MC0xMS43IDcuOC0yOC4zIDM4LjEtNDEuOSA2NC4yLTEwOC4xLTQuNC0xNjcuNCAzOC44LTI1OS4yIDkzLjYgMjkuNC05LjcgNDMuMy0xNi43IDQzLjMtMTYuNyA5NC4yLTM2IDEzOS4zLTY4LjMgMjgxLjEtNDkuMiAxLjEgMCAxLjkgLjYgMi44IC44IDMuOSAyLjIgNS4zIDYuOSAzLjEgMTAuOGwtNTMuOSA5NS44Yy0yLjUgNC43LTcuOCA3LjItMTMuMSA2LjEtMTI2LjgtMjMuOC0yMjYuOSAxNy4zLTMxOC45IDE4LjYtNzMuNCAxLjEtOTcuNS0zMy41LTk3LjUtMzUuMSAwLTEuMSAuNi0xLjcgMS43LTEuNyAwIDAgMzguMyAwIDEwMy4xLTE1LjMgNzMuNi0xNDAuMyAxMzkuMi0xODkuNCAyMTAuNi0xODkuNCAwIDAgNzEuNyAwIDkwLjYgNjEuOSAyMi44LTM5LjcgMjguMy00OS4yIDI4LjMtNDkuMiA1LjMtOS40IDM1LTc3LjIgODYuNC0xNDEuNCA1MS41LTY0IDkwLjQtNzkuOSAxMTkuMy05MS44eiJdfSwkNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW50ZXJuZXQtZXhwbG9yZXIiLGljb246WzUxMiw1MTIsW10sImYyNmIiLCJNNDgzLjEgMTU5LjdjMTAuOS0yNC42IDIxLjQtNjAuNCAyMS40LTg3LjkgMC03Mi43LTc5LjYtOTguNC0yMDkuNy0zOC42LTEwNy42LTcuMi0yMTEuMiA3My43LTIzNy4xIDE4Ni41IDMwLjktMzQuOSA3OC4zLTgyLjMgMTIyLTEwMS4yLTU0LjMgNDguMy0xMDAuNiAxMDkuNC0xMzUuNyAxNzMuMi0yMC43IDM3LjktNDQgOTkuMi00NCAxNDUgMCA5OC42IDkyLjkgODYuNSAxODAuMyA0MiAzMS40IDE1LjQgNjYuNiAxNS42IDEwMS43IDE1LjYgOTcuMSAwIDE4NC4yLTU0LjMgMjE2LjgtMTQ2bC0xMjAuOCAwYy01Mi41IDg4LjYtMTk2LjggNTMtMTk2LjgtNDcuNGwzMjguOCAwYzYuNC00My42LTEuNy05NS43LTI2LjktMTQxLjJ6TTY0LjYgMzQ2LjlDODIuMyAzOTggMTE4LjMgNDQyLjcgMTY0LjggNDcwLjIgNzYuMSA1MTkuMS04LjQgNDk5LjMgNjQuNiAzNDYuOXpNMTgwLjUgMjM4YzItNTUuMiA1MC4zLTk0LjkgMTA0LTk0LjkgNTMuNCAwIDEwMiAzOS43IDEwNCA5NC45bC0yMDggMHpNMzY1LjEgNTAuNGMyMS40LTEwLjMgNDguNi0yMiA3Mi42LTIyIDMxLjQgMCA1NC4zIDIxLjcgNTQuMyA1My43IDAgMjAtNy40IDQ5LTE0LjYgNjcuOS0yNi4zLTQyLjMtNjYtODEuNi0xMTIuMy05OS42eiJdfSxBNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWlyYm5iIixpY29uOls0NDgsNTEyLFtdLCJmODM0IiwiTTIyNC41IDM3My4xYy0yNS4yLTMxLjctNDAuMS01OS40LTQ1LTgzLjItMjIuNS04OCAxMTIuNi04OCA5MC4xIDAtNS40IDI0LjItMjAuMyA1Mi00NSA4My4ybC0uMSAwem0xMzguMiA3My4yYy00Mi4xIDE4LjMtODMuNy0xMC45LTExOS4zLTUwLjUgMTAzLjktMTMwLjEgNDYuMS0yMDAtMTguOC0yMDAtNTQuOSAwLTg1LjIgNDYuNS03My4zIDEwMC41IDYuOSAyOS4yIDI1LjIgNjIuNCA1NC40IDk5LjUtMzIuNSAzNi02MC41IDUyLjctODUuMiA1NC45LTUwIDcuNC04OS4xLTQxLjEtNzEuMy05MS4xIDE1LjEtMzkuMiAxMTEuNy0yMzEuMiAxMTUuOS0yNDEuNiAxNS44LTMwLjEgMjUuNi01Ny40IDU5LjQtNTcuNCAzMi4zIDAgNDMuNCAyNS45IDYwLjQgNTkuOSAzNiA3MC42IDg5LjQgMTc3LjUgMTE0LjggMjM5LjEgMTMuMiAzMy4xLTEuNCA3MS4zLTM3IDg2LjZ6bTQ3LTEzNi4xYy0xMjguOS0yNzQuMy0xMzYtMjc4LjItMTg1LjEtMjc4LjItNDUuNSAwLTY0LjkgMzEuNy04NC43IDcyLjgtMTA2LjIgMjEyLjMtMTE2LjQgMjQyLjQtMTE3LjMgMjQ1LTI1LjIgNjkuMyAyNi43IDEzMC4yIDg5LjYgMTMwLjIgMjEuNyAwIDYwLjYtNi4xIDExMi40LTYyLjQgNTguNyA2My44IDEwMS4zIDYyLjQgMTEyLjQgNjIuNCA2Mi45IC4xIDExNC45LTYwLjkgODkuNi0xMzAuMiAwLTMuOS0xNi44LTM4LjktMTYuOC0zOS42bDAgMHoiXX0sRTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImpzIixpY29uOls0NDgsNTEyLFtdLCJmM2I4IiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTI0My44IDM4MS40YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41LTMzLjcgMC01My4yLTE3LjQtNjMuMi0zOC41TDE1MiAzODUuN2M2LjYgMTEuNyAxMi42IDIxLjYgMjcuMSAyMS42IDEzLjggMCAyMi42LTUuNCAyMi42LTI2LjVsMC0xNDMuMSA0Mi4xIDAgMCAxNDMuN3ptOTkuNiA2My41Yy0zOS4xIDAtNjQuNC0xOC42LTc2LjctNDNMMzAxIDM4Mi4xYzkgMTQuNyAyMC44IDI1LjYgNDEuNSAyNS42IDE3LjQgMCAyOC42LTguNyAyOC42LTIwLjggMC0xNC40LTExLjQtMTkuNS0zMC43LTI4bC0xMC41LTQuNWMtMzAuNC0xMi45LTUwLjUtMjkuMi01MC41LTYzLjUgMC0zMS42IDI0LjEtNTUuNiA2MS42LTU1LjYgMjYuOCAwIDQ2IDkuMyA1OS44IDMzLjdMMzY4IDI5MGMtNy4yLTEyLjktMTUtMTgtMjcuMS0xOC0xMi4zIDAtMjAuMSA3LjgtMjAuMSAxOCAwIDEyLjYgNy44IDE3LjcgMjUuOSAyNS42bDEwLjUgNC41YzM1LjggMTUuMyA1NS45IDMxIDU1LjkgNjYuMiAwIDM3LjgtMjkuOCA1OC42LTY5LjcgNTguNnoiXX0sSTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InF1aW5zY2FwZSIsaWNvbjpbNTEyLDUxMixbXSwiZjQ1OSIsIk0zMTMuNyA0NzQuNmwtMSAwYy00MS45IDAtODIuMS0xNi43LTExMS44LTQ2LjNzLTQ2LjMtNjkuOS00Ni4zLTExMS44IDE2LjctODIuMSA0Ni4zLTExMS44IDY5LjktNDYuMyAxMTEuOC00Ni4zYzk0LjkgMCAxNjguMiA4My4xIDE1NyAxNzYuNiA0IDUuMSA4LjIgOS42IDExLjIgMTUuMyAxMy40LTMwLjMgMjAuMy02Mi40IDIwLjMtOTcuNyAwLTEzNS4xLTEwOS41LTI0NC42LTI0NC42LTI0NC42UzEyLjEgMTE3LjUgMTIuMSAyNTIuNiAxMjEuNiA0OTcuMiAyNTYuNiA0OTcuMmMyMy44IC4yIDQ3LjYtMy4yIDcwLjQtMTAuMS01LjItMy41LTguOS04LjEtMTMuMy0xMi41em03OC4zLTE2OWE5OS4yIDk5LjIgMCAxIDAgMCAxOTguNCA5OS4yIDk5LjIgMCAxIDAgMC0xOTguNHoiXX0sUDZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFkdmVyc2FsIixpY29uOls1MTIsNTEyLFtdLCJmMzZhIiwiTTQ4Mi4xIDMyTDI4LjcgMzJDNS44IDMyIDAgMzcuOSAwIDYwLjlMMCA0NTEuMUMwIDQ3NC40IDUuOCA0ODAgMjguNyA0ODBsNDUzLjQgMGMyNC40IDAgMjkuOS01LjIgMjkuOS0yOS43bDAtMzg4LjFjMC0yNC42LTUuNC0zMC4yLTI5LjktMzAuMnpNMTc4LjQgMjIwLjNjLTI3LjUtMjAuMi03Mi4xLTguNy04NC4yIDIzLjQtNC4zIDExLjEtOS4zIDkuNS0xNy41IDguMy05LjctMS41LTE3LjItMy4yLTIyLjUtNS41LTI4LjgtMTEuNCA4LjYtNTUuMyAyNC45LTY0LjMgNDEuMS0yMS40IDgzLjQtMjIuMiAxMjUuMy00LjggNDAuOSAxNi44IDM0LjUgNTkuMiAzNC41IDEyOC41IDIuNyAyNS44LTQuMyA1OC4zIDkuMyA4OC44IDEuOSA0LjQgLjQgNy45LTIuNyAxMC43LTguNCA2LjctMzkuMyAyLjItNDYuNi03LjQtMS45LTIuMi0xLjgtMy42LTMuOS02LjItMy42LTMuOS03LjMtMi4yLTExLjkgMS01Ny40IDM2LjQtMTQwLjMgMjEuNC0xNDctNDMuMy0zLjEtMjkuMyAxMi40LTU3LjEgMzkuNi03MSAzOC4yLTE5LjUgMTEyLjItMTEuOCAxMTQtMzAuOSAxLjEtMTAuMi0xLjktMjAuMS0xMS4zLTI3LjN6bTI4Ni43IDIyMmMwIDE1LjEtMTEuMSA5LjktMTcuOCA5LjlsLTM5NC45IDBjLTcuNCAwLTE4LjIgNC44LTE3LjgtMTAuNyAuNC0xMy45IDEwLjUtOS4xIDE3LjEtOS4xIDEzMi4zLS40IDI2NC41LS40IDM5Ni44IDAgNi44IDAgMTYuNi00LjQgMTYuNiA5Ljl6bTMuOC0zNDAuNWwwIDI5MWMwIDUuNy0uNyAxMy45LTguMSAxMy45LTEyLjQtLjQtMjcuNSA3LjEtMzYuMS01LjYtNS44LTguNy03LjgtNC0xMi40LTEuMi01My40IDI5LjctMTI4LjEgNy4xLTE0NC40LTg1LjItNi4xLTMzLjQtLjctNjcuMSAxNS43LTEwMCAxMS44LTIzLjkgNTYuOS03Ni4xIDEzNi4xLTMwLjVsMC03MWMwLTI2LjItLjEtMjYuMiAyNi0yNi4yIDMuMSAwIDYuNiAuNCA5LjcgMCAxMC4xLS44IDEzLjYgNC40IDEzLjYgMTQuMy0uMSAuMi0uMSAuMy0uMSAuNXpNNDE3LjQgMzM0LjFjLTE5LjUgNDcuNi03Mi45IDQzLjMtOTAgNS4yLTE1LjEtMzMuMy0xNS41LTY4LjIgLjQtMTAxLjUgMTYuMy0zNC4xIDU5LjctMzUuNyA4MS41LTQuOCAyMC42IDI4LjggMTQuOSA4NC42IDguMSAxMDEuMXpNMTIyLjYgMzY5LjRjLTcuNS0xLjMtMzMtMy4zLTMzLjctMjcuOC0uNC0xMy45IDcuOC0yMyAxOS44LTI1LjggMjQuNC01LjkgNDkuMy05LjkgNzMuNy0xNC43IDguOS0yIDcuNCA0LjQgNy44IDkuNSAxLjQgMzMtMjYuMSA1OS4yLTY3LjYgNTguOHoiXX0sTjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMiLGljb246WzUxMiw1MTIsW10sImYyNWUiLCJNMjUzLjggMjE0LjlsLTMzLjIgMTcuM2MtOS40LTE5LjYtMjUuMi0xOS45LTI3LjUtMTkuOS0yMi4xIDAtMzMuMiAxNC42LTMzLjIgNDMuOCAwIDIzLjYgOS4yIDQzLjggMzMuMiA0My44IDE0LjUgMCAyNC42LTcuMSAzMC42LTIxLjNsMzAuNiAxNS41Yy02LjIgMTEuNS0yNS43IDM5LTY1LjEgMzktMjIuNiAwLTc0LTEwLjMtNzQtNzcgMC01OC43IDQzLTc3LjEgNzIuNi03Ny4xIDMwLjcgMCA1Mi43IDExLjkgNjYgMzUuOXptMTQzIDBsLTMyLjggMTcuM2MtOS41LTE5LjgtMjUuNy0xOS45LTI3LjktMTkuOS0yMi4xIDAtMzMuMiAxNC42LTMzLjIgNDMuOCAwIDIzLjUgOS4yIDQzLjggMzMuMiA0My44IDE0LjQgMCAyNC42LTcuMSAzMC41LTIxLjNsMzEgMTUuNWMtMi4xIDMuOC0yMS40IDM5LTY1LjEgMzktMjIuNyAwLTc0LTkuOS03NC03NyAwLTU4LjcgNDMtNzcuMSA3Mi42LTc3LjEgMzAuNyAwIDUyLjYgMTEuOSA2NS42IDM1Ljl6TTI1NS42IDhDMTEyLjcgOCA4IDEyMy4xIDggMjU2LjEgOCAzOTQuNSAxMjEuNiA1MDQuMSAyNTUuNiA1MDQuMSAzODUuNSA1MDQuMSA1MDQgNDAzLjIgNTA0IDI1Ni4xIDUwNCAxMTguMiAzOTcuNCA4IDI1NS42IDh6bS45IDQ1MC44Yy0xMTIuNSAwLTIwMy43LTkzLTIwMy43LTIwMi44IDAtMTA1LjQgODUuNC0yMDMuMyAyMDMuNy0yMDMuMyAxMTIuNSAwIDIwMi44IDg5LjUgMjAyLjggMjAzLjMgMCAxMjEuNy05OS43IDIwMi44LTIwMi44IDIwMi44eiJdfSxPNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm90aW9uIixpY29uOls1MTIsNTEyLFtdLCJlN2Q5IiwiTTk0LjkgMTAwLjJjMTQuOSAxMi4xIDIwLjUgMTEuMiA0OC42IDkuM0w0MDcuOCA5My42YzUuNiAwIC45LTUuNi0uOS02LjVMMzYyLjkgNTUuNGMtOC40LTYuNS0xOS42LTE0LTQxLjEtMTIuMUw2NS45IDYxLjljLTkuMyAuOS0xMS4yIDUuNi03LjUgOS4zbDM2LjQgMjguOXptMTUuOSA2MS42bDAgMjc4LjFjMCAxNC45IDcuNSAyMC41IDI0LjMgMTkuNmwyOTAuNS0xNi44YzE2LjgtLjkgMTguNy0xMS4yIDE4LjctMjMuM2wwLTI3Ni4yYzAtMTIuMS00LjctMTguNy0xNS0xNy43TDEyNS43IDE0My4xYy0xMS4yIC45LTE0LjkgNi41LTE0LjkgMTguN3ptMjg2LjcgMTQuOWMxLjkgOC40IDAgMTYuOC04LjQgMTcuOGwtMTQgMi44IDAgMjA1LjNjLTEyLjIgNi41LTIzLjQgMTAuMy0zMi43IDEwLjMtMTUgMC0xOC43LTQuNy0yOS45LTE4LjdsLTkxLjUtMTQzLjcgMCAxMzkgMjkgNi41czAgMTYuOC0yMy40IDE2LjhsLTY0LjQgMy43Yy0xLjktMy43IDAtMTMuMSA2LjUtMTQuOWwxNi44LTQuNyAwLTE4My44LTIzLjMtMS45Yy0xLjktOC40IDIuOC0yMC41IDE1LjktMjEuNWw2OS4xLTQuNyA5NS4zIDE0NS42IDAtMTI4LjgtMjQuMy0yLjhjLTEuOS0xMC4zIDUuNi0xNy43IDE0LjktMTguN2w2NC41LTMuOHpNNDQuNCAzNi43TDMxMC42IDE3LjFjMzIuNy0yLjggNDEuMS0uOSA2MS42IDE0bDg1IDU5LjdjMTQgMTAuMyAxOC43IDEzLjEgMTguNyAyNC4zbDAgMzI3LjZjMCAyMC41LTcuNSAzMi43LTMzLjYgMzQuNUwxMzMuMiA0OTUuOGMtMTkuNiAuOS0yOS0xLjktMzkuMi0xNC45TDMxLjQgMzk5LjdjLTExLjItMTQuOS0xNS45LTI2LjEtMTUuOS0zOS4ybDAtMjkxLjJjMC0xNi44IDcuNS0zMC44IDI4LjktMzIuN3oiXX0sUjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNocm9tZWNhc3QiLGljb246WzUxMiw1MTIsW10sImY4MzgiLCJNNDQ4IDY0TDY0LjIgNjRjLTIzLjYgMC00Mi43IDE5LjEtNDIuNyA0Mi43bDAgNjMuOSA0Mi43IDAgMC02My45IDM4My44IDAgMCAyOTguNi0xNDkuMiAwIDAgNDIuNyAxNDkuNCAwYzIzLjYgMCA0Mi43LTE5LjEgNDIuNy00Mi43bDAtMjk4LjZDNDkwLjkgODMuMSA0NzEuNiA2NCA0NDggNjR6TTIxLjUgMzgzLjZsMCA2My45IDYzLjkgMGMwLTM1LjMtMjguNi02My45LTYzLjktNjMuOXptMC04NWwwIDQyLjRjNTguOSAwIDEwNi42IDQ4LjEgMTA2LjYgMTA3bDQyLjcgMGMuMS04Mi40LTY2LjktMTQ5LjMtMTQ5LjMtMTQ5LjR6TTIxMy42IDQ0OGw0Mi43IDBDMjU1LjggMzE4LjUgMTUxIDIxMy43IDIxLjUgMjEzLjRsMCA0Mi40YzEwNi0uMiAxOTIgODYuMiAxOTIuMSAxOTIuMnoiXX0sRjZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVsdHJhbHl0aWNzLWh1YiIsaWNvbjpbNTEyLDUxMixbXSwiZTg2ZSIsIk0xMzAuNCAxNmM2MC45IDAgMTEwLjQgNDkuNSAxMTAuNCAxMTAuNGwwIDI0LjljNC44LS43IDkuNy0xIDE0LjYtMSA4OC4xLS4yIDE2NS4xIDQ5IDIwNS40IDEyMS4yLTIyLjgtMTYuMi01MC43LTI1LjQtODAuNC0yNS4zLTc3LjEgLjItMTM5LjUgNjIuNi0xMzkuNiAxMzkuNC0uMSA2MC45LTQ5LjUgMTEwLjMtMTEwLjcgMTEwLjUtNjAuNiAuMi0xMTAuMi00OS41LTExMC4yLTExMC41IC4yLTIuNiAwIDAgLjEtMy4ybDAtMjU2QzIwLjEgNjUuNSA2OS41IDE2IDEzMC40IDE2ek0zODAuMyA0OTZhMTEwLjQgMTEwLjQgMCAxIDEgMC0yMjAuOSAxMTAuNCAxMTAuNCAwIDEgMSAwIDIyMC45eiJdfSxCNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2lraXBlZGlhLXciLGljb246WzY0MCw1MTIsW10sImYyNjYiLCJNNjQwIDUxLjJsLS4zIDEyLjJjLTI4LjEgLjgtNDUgMTUuOC01NS44IDQwLjMtMjUgNTcuOC0xMDMuMyAyNDAtMTU1LjMgMzU4LjZsLTEzLjYgMC04MS45LTE5My4xYy0zMi41IDYzLjYtNjguMyAxMzAtOTkuMiAxOTMuMS0uMyAuMy0xNSAwLTE1LS4zLTQ2LjktMTA5LjctOTYuMS0yMTguNi0xNDMuMS0zMjguNi0xMS40LTI2LjctNDkuNC03MC03NS42LTY5LjcgMC0zLjEtLjMtMTAtLjMtMTQuMmwxNjEuOSAwIDAgMTMuOWMtMTkuMiAxLjEtNTIuOCAxMy4zLTQzLjMgMzQuMiAyMS45IDQ5LjcgMTAzLjYgMjQwLjMgMTI1LjYgMjg4LjYgMTUtMjkuNyA1Ny44LTEwOS4yIDc1LjMtMTQyLjgtMTMuOS0yOC4zLTU4LjYtMTMzLjktNzIuOC0xNjAtOS43LTE3LjgtMzYuMS0xOS40LTU1LjgtMTkuN2wwLTEzLjkgMTQyLjUgLjMgMCAxMy4xYy0xOS40IC42LTM4LjEgNy44LTI5LjQgMjYuMSAxOC45IDQwIDMwLjYgNjguMSA0OC4xIDEwNC43IDUuNi0xMC44IDM0LjctNjkuNCA0OC4xLTEwMC44IDguOS0yMC42LTMuOS0yOC42LTM4LjYtMjkuNCAuMy0zLjYgMC0xMC4zIC4zLTEzLjYgNDQuNC0uMyAxMTEuMS0uMyAxMjMuMS0uNmwwIDEzLjZDNDYyLjQgNjQgNDM5LjEgNzYgNDI2LjggOTQuOUwzNjcuNiAyMTcuN2M2LjQgMTYuMSA2My4zIDE0Mi44IDY5LjIgMTU2LjdMNTU5LjIgOTEuOGMtOC42LTIzLjEtMzYuNC0yOC4xLTQ3LjItMjguM2wwLTEzLjkgMTI3LjggMS4xIC4yIC41eiJdfSxINnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2l0cm94IixpY29uOls0NDgsNTEyLFtdLCJlNDRhIiwiTTIxMi40IDBsMCAwIDIzNS42IDAgMCAxMjgtMzg0IDBDNjQgNTcuNiAxNDEuOCAuNSAyMTIuNCAwem0yNC44IDE5MmwwIDBjNjkuOSAuNSAxNDYuNyA1Ny42IDE0Ni43IDEyOGwtMTczLjIgMCAwIDBDMTQwLjkgMzE5LjYgNjQgMjYyLjQgNjQgMTkybDE3My4zIDB6bS0xLjcgMzIwYzcwLjctLjUgMTQ4LjQtNTcuNiAxNDguNC0xMjhsLTM4NCAwIDAgMTI4IDIzNS42IDAgMCAweiJdfSxzSWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdpdGxhYiIsaWNvbjpbNDQ4LDUxMixbImdpdGxhYi1zcXVhcmUiXSwiZTVhZSIsIk0wIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZ6bTMzNy41IDEyLjVsNDQuNiAxMTYuNCAuNCAxLjJjNS42IDE2LjggNy4yIDM1LjIgMi4zIDUyLjUtNSAxNy4yLTE1LjQgMzIuNC0yOS44IDQzLjNsLS4yIC4xLTY4LjQgNTEuMi01NC4xIDQwLjljLS41IC4yLTEuMSAuNS0xLjcgLjgtMiAxLTQuNCAyLTYuNyAyLTMgMC02LjgtMS44LTguMy0yLjhsLTU0LjItNDAuOS02Ny45LTUwLjktLjQtLjMtLjItLjFjLTE0LjMtMTAuOC0yNC44LTI2LTI5LjctNDMuM3MtNC4yLTM1LjcgMi4yLTUyLjVsLjUtMS4yIDQ0LjctMTE2LjRjLjktMi4zIDIuNS00LjMgNC41LTUuNiAxLjYtMSAzLjQtMS42IDUuMi0xLjggMS4zLS43IDIuMS0uNCAzLjQgLjEgLjYgLjIgMS4yIC41IDIgLjcgMSAuNCAxLjYgLjkgMi40IDEuNSAuNiAuNCAxLjIgMSAyLjEgMS41IDEuMiAxLjQgMi4yIDMgMi43IDQuOGwyOS4yIDkyLjIgMTIyLjkgMCAzMC4yLTkyLjJjLjUtMS44IDEuNC0zLjQgMi42LTQuOHMyLjgtMi40IDQuNS0zLjFjMS43LS42IDMuNi0uOSA1LjQtLjdzMy42IC44IDUuMiAxLjhjMiAxLjMgMy43IDMuMyA0LjYgNS42eiJdfSxxNnI9c0llLFY2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9lbGFjZSIsaWNvbjpbNTEyLDUxMixbXSwiZTYwYyIsIk00MDUuMiAzMzFjMi4yLTEuMSA0LjQtMi4zIDYuNS0zLjdsOC4zLTQuOGMxLjUtMS4xIDQuNC0zLjQgOC43LTYuN2wuNS0uNWMzLjQtMy40IDcuMi01IDExLjMtNC45IDEuOCAwIDMuOSAuNSA2LjQgMS41bDMxLTI3LjVjLjktLjcgMS43LTEuMyAyLjYtMS44bC4yIDBjMy4zLTEuOSA2LTEuOCA4LjIgLjQgMy45IDIuMSA0LjIgNS42IC45IDEwLjZMNDU3LjIgMzIyYy4yIC41IC40IDEgLjQgMS41IC41IDIuMiAuMyA0LjQtLjUgNi42LS43IDEuNS0xLjggMi45LTMuMSA0LjItMS40IDEuNC0yLjcgMi44LTQuMiA0LjJMNDMxIDM1Mi4yYy0xLjcgMS4yLTMuNCAyLjMtNS4xIDMuMy0yLjEgMS4zLTQuMyAyLjUtNi42IDMuNi0xIC40LTEuOSAuOS0yLjkgMS4zLTUuOSAyLjUtMTEuOSA0LjItMTguMiA1LTIuOSAyNC41LTExLjMgNDcuMS0yNS4xIDY3LjgtMTcuNSAyNS43LTQxLjQgNDUuNC03MS44IDU4LjgtMzAuMiAxMy41LTYzIDIwLjItOTguMiAyMC4yLTQ4LjYtLjUtODgtMTEuNC0xMTguMi0zMi44LTM1LjEtMjUtNTIuNi01Ny45LTUyLjYtOTkuMWwwLTUuNmMxLjItMjguMSA5LjUtNTQuNiAyNC44LTc5LjggMTUuMS0yNC45IDM3LjEtNDEuNyA2Ni4xLTUwLjUgMTQuOS00LjQgMjkuOS02LjYgNDUtNi42IDE1LjUgMCAzMS42IDIuOSA0OC4xIDguNnMzNS4yIDE1LjUgNTUuOSAyOS41bDU0LjEgMzYuM2MxNS4xIDkuOCAyOC44IDE2LjUgNDEuMiAyMC0yLjYtMjUuMS0xMS43LTQ2LjYtMjcuMy02NC41LTE1LjctMTguMS0zNS42LTMxLjMtNTkuOS0zOS43TDI1NyAyMjBjLTIxLjQtNy41LTM3LjMtMTQuOS00Ny43LTIyLjItMjguMi0xOS4xLTQzLjgtNDUuMi00Ny03OC41bC0uNS05LjhjMC0zMi4xIDEzLTU4LjkgMzktODAuNSAyMy0xOS4zIDUwLjYtMjkgODIuNS0yOSAyNCAwIDQ1LjYgNi45IDY0LjcgMjAuOCAxOS4yIDE0IDMwLjEgMzMuOCAzMi42IDU5LjRsLjUgMTBjMCAxOC42LTQuOCAzNC41LTE0LjQgNDcuNy05LjggMTMuMi0xOC41IDE5LjktMjYgMTkuOS0xLjYtLjEtMy4xLS4zLTQuNS0uNmwtMzQgMzJjLTUuNSAzLTkuMiAyLjUtMTEuMS0xLjYtMS45LTIuMi0xLjgtNC45IC41LTguMmwuMi0uMmMuNS0uNyAxLjItMS41IDItMi40bDMxLjYtMzBjLS40LTEuNS0uNi0zLjEtLjYtNC44IDAtNC4xIDEuNi03LjYgNC45LTEwLjQgMTMuOC0xMi40IDIwLjgtMjYuNyAyMC44LTQyLjggMC0xNi02LjEtMjkuNS0xOC4yLTQwLjRzLTI4LjctMTYuNS00OS43LTE2LjhjLTI2LjIgMC00Ny44IDcuOS02NC43IDIzLjdTMTkyLjYgODkuOSAxOTIuNiAxMTJjMCAxNy44IDYuOSAzMy45IDIwLjYgNDguMyAxMy42IDE0LjIgMzQuNiAyNS40IDYzIDMzLjUgMzkuOCAxMS41IDcwLjIgMzEgOTEuMyA1OC4zIDE4LjcgMjQuMiAyOS4xIDUxLjMgMzEuMyA4MS40IDIuMi0uNyA0LjMtMS41IDYuNS0yLjZsLS4xIC4xek0yOTQuNCAxNzguN2MwIDEuMSAuNiAxLjYgMS44IDEuNiAuMSAwIDkuNy04LjkgMjguOC0yNi42IDAtMi40LTUuMSAuOS0xNS4zIDEwLTEwLjIgOS4yLTE1LjMgMTQuMi0xNS4zIDE0LjlsMCAuMXptOCA2LjRjMC0xLS41LTEuNS0xLjUtMS41LTEuMSAwLTIuMSAuNS0yLjkgMS42LTEuOS0uMS0zLjMgLjEtNC4yIC43LS40IC4yLS41IC41LS41IC43IDAgLjcgLjUgMS4zIDEuNSAxLjZsMy4zIDBjMi45LTEuMSA0LjQtMi4yIDQuNC0zLjNsLS4xIC4yek0zMjUgMTY1LjJjMC0yLjgtMS42LTIuOC00LjkgMC0xLjYgMS41LTMuNiAzLjUtNiA2LjItLjggLjYtMi42IDIuMi01LjMgNC45LTIuOCAyLjktNC4yIDQuNy00LjIgNS4zbC4yIDEuM2MuNyAuMiAxLjIgLjQgMS41IC40IC4xIDAgMy4zLTIuOSA5LjUtOC43czkuMy04LjkgOS4zLTkuM2wtLjEtLjF6bTE1OS43IDEyMGwtMzAuNiAyN2MxLjggMSAzLjIgMi40IDQgNC4ybDMwLjItMjdjLjItMS4yIC4xLTIuMi0uNS0yLjktLjYtLjUtMS42LS45LTMuMS0xLjN6bS0xLjYtLjlsLS43LS43LTI3IDIxLjkgMS42IDIgMjYtMjMuMSAuMS0uMXpNMzY2LjkgMzYzLjljLTgtMi4xLTE1LjQtNC42LTIyLjItNy41LTE1LjMtNi4yLTM0LjMtMTctNTctMzIuNGwtMzcuNC0yNS4zYy0xNS44LTEwLjEtMzAuMi0xNy42LTQzLjItMjIuNi0xMy4xLTQuOS0yNi03LjMtMzguNi03LjNsLTUuNSAwYy0zMi4yIDEuNy01Ny4yIDEzLjgtNzUgMzYuMi0xNi42IDIwLjgtMjUgNDUuMy0yNSA3My42IDAgMzEuOCAxMi44IDU2LjcgMzguMiA3NC43IDI1LjQgMTguMSA2MC4yIDI3LjEgMTA0LjQgMjcuMSAzNC43IDAgNjQtNi4yIDg3LjgtMTguNiAyMy43LTEyLjQgNDIuMS0yOC44IDU1LjItNDkuMiA5LjgtMTUuNSAxNS45LTMxLjggMTguMi00OC44bC4xIC4xeiJdfSxqNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbnN0cmVldG1hcCIsaWNvbjpbNTEyLDUxMixbXSwiZTg2YiIsIk02MSA0OTguN2MtNy4xLTEuOC0xMC44LTQuNy0yOS42LTIzLjYtMjIuNS0yMi40LTIzLjktMjQuNi0yMy45LTM2LjMgMC0xMy0zLjktOC40IDY3LjktODAuMyA3Mi41LTcyLjcgNjguNy02OS41IDgxLjktNjkuNSA2LjEgMCA3LjYgLjQgMTIuNSAyLjhsNS42IDIuOGMxMS43LTExLjcgMjMuNC0yMy40IDM1LjEtMzUuMWwtNC40LTYuOWMtOC42LTEzLjMtMTYuNi0zMi44LTIwLjMtNDguOS0xMC4yLTQ1LjQgLjgtOTMuMyAyOS44LTEyOS43IDUwLjEtNjIuOCAxNDAuMS03Ni43IDIwNi42LTMyIDM2LjUgMjQuNSA2MC4zIDYyLjUgNjcgMTA3IDEuNCA5LjQgMS40IDMxLjggMCA0MS44LTQuOSAzNC42LTE5LjcgNjQtNDQuNCA4OC43LTEyLjcgMTIuNy0yMyAyMC4xLTM5LjIgMjguMi0xOS4zIDkuNy0zNS43IDE0LjMtNTggMTYuMS0zMS43IDIuNi02Ni45LTYuMS05My44LTIzLjRsLTYuOS00LjRjLTExLjcgMTEuNy0yMy40IDIzLjQtMzUuMSAzNS4xbDIuOCA1LjZjMi41IDQuOSAyLjggNi40IDIuOCAxMi41IDAgMTMuMSAzLjEgOS40LTY5IDgxLjUtNTUuNiA1NS41LTY0LjEgNjMuNy02OC40IDY1LjctNS41IDIuNS0xMy45IDMuNC0xOSAyLjF6TTM1OS40IDI5Ni45YzQwLjEtNy4zIDc1LjEtMzQgOTIuNy03MC43IDI4LTU4LjQgOS4yLTEyNy00NC44LTE2My4zLTEyLjktOC43LTMwLjgtMTYtNDcuNy0xOS40LTExLjctMi40LTM2LjQtMi4xLTQ4LjYgLjUtMTguMiAzLjktMzQuOSAxMS4xLTQ5LjQgMjEuNC04LjkgNi40LTIzLjcgMjEuMS0yOS45IDI5LjktMzQuNiA0OS0zMS41IDExNC4xIDcuNyAxNTkuMyAyMC4xIDIzLjIgNDcuOCAzOC40IDc4LjYgNDMgMTAuMiAxLjUgMzEgMS4yIDQxLjUtLjh6bS0zNS41LTE3LjRjLTEzLjgtMi4yLTI1LjYtNS43LTM1LjEtMTAuNWwtNS40LTIuNyAwLTQ5LjktOS41IDBjLTguMiAwLTE5LjUgMS42LTI3LjcgNC0xLjEgLjMtMS41IDEuNi0xLjcgNC44bC0uMyA0LjQtNC4xLTcuOGMtOS0xNy4yLTEyLjItMzAuNy0xMi4yLTUxLjQgMC0xNiAxLjEtMjMuNCA1LjYtMzYuMyAyLjQtNi44IDguMi0xOC45IDEwLjgtMjIuMyAxLjEtMS41IDEuMi0xLjEgMS4zIDMuM2wwIDVjMTguOC0uMiAzNy42LS4zIDU2LjQtLjUgLjItNC43IC4zLTkuNSAuNS0xNC4ybC0xOSAwIDAtMzEgMy40LTEuN2M1LjYtMi44IDE1LjktNi43IDIxLjctOC4yIDMtLjggNi4xLTEuNiA2LjktMS44IDEuMi0uNCAxLjMgLjEgLjcgMy4zLTEuMiA2LjEtLjkgMjMgLjUgMjkgMi44IDExLjkgOS44IDIwLjcgMTkuMiAyNC4zIDUuNiAyLjEgMTYuMyAyLjYgMjIuNSAuOSA1LjktMS42IDEyLjUtNi40IDE1LjktMTEuNSA1LTcuNSA2LjctMTQuMSA3LjItMjcuMWwuNC0xMS40IDcgMy42YzggNC4yIDE3LjggMTEuMiAyNC45IDE4IDQuOCA0LjYgNSA0LjggNSA5LjJsMCA0LjUtMTguOSAwIDAgMTQuNiAzNSAwYzEuMyAyLjYgMi41IDUuMiAzLjggNy43bC05LjcgMGMtNi43IDAtMTIuNyAuNi0xOS40IDEuOWwtOS43IDEuOSAwIDcuMWMwIDMuOSAuMiA3LjEgLjMgNy4xczQuMS0uOCA4LjctMS43IDguNy0xLjcgOS4xLTEuN2MuNCAwIC44IDExLjMgLjggMjUuOGwwIDI1LjhjLTYuMiAuMi0xMi4zIC4zLTE4LjUgLjUtLjIgNC43LS4zIDkuNC0uNSAxNC4yIDEzLjUgLjIgMjcgLjMgNDAuNCAuNS0xIDIuMy0yIDQuNS0zIDYuOGwtMTAuNyAuMWMtOS45IC4xLTExLjEgLjItMTUuNiAyLjUtMTEuOCA1LjgtMTguMSAxOC45LTE4LjMgMzcuOWwtLjEgOS4zLTUuOCAzYy01IDIuNi0yMi42IDktMjQuOSA5LS41IDAtLjgtMTItLjgtMzAuNmwwLTMwLjYtOS40IDBjLTYgMC0xMi40IC42LTE3LjkgMS43LTEyLjYgMi42LTExLjUgMS43LTExLjUgOS41IDAgNSAuMyA2LjggMS4xIDYuOCAuNiAwIDQuNi0uOCA4LjgtMS43czgtMS43IDguMy0xLjcgLjYgMTEgLjYgMjQuNWwwIDI0LjUtNy41LS4xYy00LjEtLjEtOC41LS4zLTkuNy0uNXptLTM5LjQtNzEuNmM4LjktMy45IDE1LjYtMTIuOSAxOC4zLTI0LjQgMS42LTYuOSAxLjctMjIuNiAwLTMwLjItMi41LTEyLTkuNi0yMS4xLTE5LjMtMjQuOC02LjktMi42LTE4LjQtMi42LTI1LjMgMC05LjcgMy43LTE2LjQgMTIuOC0xOS4yIDI1LjYtMS42IDcuNS0xLjYgMjEuNCAwIDI4LjkgMi42IDEyLjUgMTAuNSAyMi4zIDIwLjYgMjUuNiA3IDIuMyAxOC45IDIgMjQuOS0uN3ptLTE5LjktMTQuNWMtMy41LTMtNS4yLTguOS01LjgtMjAuNi0uNi0xMC41IC42LTIxLjMgMi45LTI2IDItNC4zIDUuOC02LjQgMTAuNC02IDcuNCAuOCAxMC4zIDYuNSAxMS4xIDIyLjUgLjkgMTYuNy0xLjkgMjguOS03IDMxLjMtMy45IDEuOC04LjYgMS4zLTExLjYtMS4yem05NC45IDE1LjFjMTUtNC42IDIyLjgtMjAuMSAyMS45LTQzLjUtLjgtMTkuOS03LjktMzIuMS0yMS41LTM3LjItNS43LTIuMS0xOC0xLjgtMjQgLjUtOS42IDMuNy0xNi40IDEyLjQtMTkuMyAyNC43LTIgOC42LTEuMyAyOCAxLjMgMzUuMiA0IDExLjMgMTEuNiAxOC43IDIxLjQgMjEgNS44IDEuNCAxNC40IDEgMjAuMy0uOHptLTE2LjctMTQuMmMtNS0yLjctNy4zLTEzLjItNi41LTMwLjEgLjYtMTIuOCAxLjUtMTYuNyA0LjgtMjAuNCA0LjctNS4zIDEzLjYtMy44IDE2LjcgMi44IDMuNCA3LjMgNCAzMC4xIDEgNDAuMi0xLjcgNS43LTUuMiA4LjgtMTAuMSA4LjctMiAwLTQuNi0uNi01LjgtMS4zem0tODUuMiA1MS41Yy03LjMtNy42LTkuOS0xMS40LTguNC0xMS45IDIuOS0uOSAxMy45LTMuMSAxNC4yLTIuOCAuMiAuMiAuMiA0LjkgLjEgMTAuNGwtLjIgMTAuMS01LjYtNS45em0xNTYuNC0xLjJjLjctNiAzLjEtMTEuNSA1LjctMTMuMiAyLjktMS44IDYuNC0yLjYgOC0xLjcgMS4yIC43IC45IDEuNS0yLjQgNS45LTIuMSAyLjgtNS42IDctNy44IDkuNGwtNCA0LjMgLjUtNC43ek00MzguNCAxNjFsLjEtMzIuOSAyLjYgNy43YzUuMSAxNS4zIDYuOSAzMS44IDUuMSA0Ni42LTEuNCAxMS42LTEuNCAxMS41LTQuOSAxMS41bC0zIDAgLjEtMzIuOXpNMzQ0IDEwNi4yYy0yLjYtMS01LjMtNC44LTYuNS05LTEuMi00LTEuNS0yOC41LS40LTMzLjUgLjYtMyAuOS0zLjIgMy44LTMuMiA2LjIgMCAxOC4zIDIgMTguNyAzLjEgLjIgLjYgLjcgNC45IDEgOS41IC43IDkuNy0uNyAyMy4yLTIuOCAyNy42LTIuNCA1LjEtOC41IDcuNS0xMy43IDUuM3ptLTk0LjMtMi40Yy40LS44IDMuNy00LjYgNy4zLTguNGw2LjUtNi45YzAgNS42IDAgMTEuMiAuMSAxNi44bC03LjMgMGMtNi43IDAtNy4zLS4xLTYuNS0xLjV6bTM0LjQgMzQxLjdjLTI0LTYuOS00My45LTEyLjktNDQuMi0xMy4xLS41LS42IDI0LjMtODguNSAyNS4zLTg5LjYgLjUtLjUgODUuNCAyMy4zIDg4LjkgMjQuOSAxLjIgLjYtLjEgNS44LTEwLjYgNDIuNC02LjYgMjMtMTIuNCA0My4yLTEyLjggNDVzLTEuNCAzLjItMS45IDMuMS0yMC43LTUuOC00NC43LTEyLjd6TTM0Mi44IDQ1NmMwLTEuMSAyNC43LTg3LjMgMjUuMS04Ny42IC45LS43IDg3LjEtMjQuNyA4Ny40LTI0LjQgLjQgLjQtMjQuMSA4Ny4zLTI0LjcgODcuOS0uNCAuMy04My4yIDI0LTg1LjggMjQuNS0xLjEgLjItMS45IC4xLTEuOS0uNHpNMTk5LjYgNDE3LjVjMTctMTcuMSAzMi4yLTMyLjcgMzMuNy0zNC43IDMuNC00LjUgOC4yLTE0LjggOS41LTIwLjUgLjUtMi40IDEuMS03LjEgMS4yLTEwLjVsLjItNi4yIDMuNy0xYzItLjYgMy44LS45IDQtLjcgLjUgLjUtMjQuMyA4Ny0yNS4xIDg3LjgtLjQgLjMtMTMuNiA0LjMtMjkuNCA4LjhsLTI4LjcgOC4yIDMxLTMxLjF6bTE2Ni45LTYxLjZjLS4yLS4zLS43LTItMS4yLTMuN2wtLjktMy4yIDMuMi0uNWMyNy00LjYgNTUuOS0xNy4zIDc4LjctMzQuNSAzLjMtMi41IDUuMS0zLjQgNS4zLTIuNyAxLjEgMy4zIDUuNSAxOS4xIDUuNCAxOS4zLS43IC43LTkwLjIgMjUuOC05MC41IDI1LjR6TTYyLjkgMzI5LjhjLTEtLjgtMjMuOC03Ny45LTI1LjUtODYuNC0uMy0xLjcgMy0uOSA0My44IDEwLjggNDIuNyAxMi4yIDQ0LjIgMTIuNyA0NC44IDE0LjkgLjUgMiAuMiAyLjYtMi41IDQuNS0xLjcgMS4yLTE1LjUgMTQuNi0zMC43IDI5LjhzLTI3LjggMjcuNi0yOCAyNy42LTEuMS0uNS0xLjgtMS4xem0xNi41LTg4LjJjLTIzLjktNi45LTQzLjUtMTIuNi00My42LTEyLjYtLjMtLjIgMjUuMy04OS4zIDI1LjktODkuOCAuNC0uNCA4OS4xIDI0LjQgOTAgMjUuMiAuMiAuMi01LjQgMjAuNS0xMi40IDQ1LjEtMTEuNiA0MC43LTEyLjkgNDQuOC0xNC41IDQ0LjctMSAwLTIxLjMtNS43LTQ1LjItMTIuNnptNTkuNiAxMC44Yy4yLS42IDQuMy0xNC41IDguOS0zMC45bDguNS0yOS43IDEuMSA2LjVjMS45IDExLjIgNS4zIDIzLjkgOS4zIDM1LjEgMi4xIDUuOSAzLjggMTAuOSAzLjYgMTFzLTYuNyAyLTE0LjUgNC4zLTE0LjkgNC4yLTE1LjggNC41Yy0xLjEgLjMtMS41IC4xLTEuMi0uN3pNMTA2IDEzOS4xYy0yMy45LTYuOS00My43LTEyLjgtNDMuOS0xMy4yLS44LTEuMy0yNS4xLTg3LTI0LjctODcuNCAuNS0uNSA4Ni44IDI0LjMgODcuNiAyNS4xIC45IDEgMjUuOCA4OC4yIDI1LjEgODgtLjMgMC0yMC4xLTUuNy00NC0xMi42em00My4yLTM0LjVDMTM2LjUgNjAgMTM5IDY4LjggMTM3LjIgNjIuNWwzNC4xLTkuN2MxOC44LTUuNCAzNC43LTkuOSAzNS40LTEwLjJzLTEuNiAyLjgtNS4yIDYuOGMtMTkuMSAyMS4zLTMxLjUgNDQtMzkuNCA3MS45LTEuNSA1LjItMi43IDEwLjMtMi43IDExLjMgMCA1LjktMi4zLS41LTEwLjItMjh6Il19LFU2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZWxsY2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJkYSIsIk0zNTMuNSAzMkw5NC44IDMyQzQyLjcgMzIgLjEgNzQuNiAuMSAxMjYuNmwwIDI1OC43Qy4xIDQzNy40IDQyLjcgNDgwIDk0LjggNDgwbDI1OC43IDBjNTIuMSAwIDk0LjctNDIuNiA5NC43LTk0LjZsMC0yNTguOGMwLTUyLTQyLjYtOTQuNi05NC43LTk0LjZ6bS01MCAzMTYuNGMtMjcuOSA0OC4yLTg5LjkgNjQuOS0xMzguMiAzNy4yLTIyLjkgMzkuOC01NC45IDguNi00Mi4zLTEzLjJsMTUuNy0yNy4yYzUuOS0xMC4zIDE5LjItMTMuOSAyOS41LTcuOSAxOC42IDEwLjgtLjEtLjEgMTguNSAxMC43IDI3LjYgMTUuOSA2My40IDYuMyA3OS40LTIxLjMgMTUuOS0yNy42IDYuMy02My40LTIxLjMtNzkuNC0xNy44LTEwLjItLjYtLjQtMTguNi0xMC42LTI0LjYtMTQuMi0zLjQtNTEuOSAyMS42LTM3LjUgMTguNiAxMC44LS4xLS4xIDE4LjUgMTAuNyA0OC40IDI4IDY1LjEgOTAuMyAzNy4yIDEzOC41em0yMS44LTIwOC44Yy0xNyAyOS41LTE2LjMgMjguOC0xOSAzMS41LTYuNSA2LjUtMTYuMyA4LjctMjYuNSAzLjYtMTguNi0xMC44IC4xIC4xLTE4LjUtMTAuNy0yNy42LTE1LjktNjMuNC02LjMtNzkuNCAyMS4zcy02LjMgNjMuNCAyMS4zIDc5LjRjMCAwIDE4LjUgMTAuNiAxOC42IDEwLjYgMjQuNiAxNC4yIDMuNCA1MS45LTIxLjYgMzcuNS0xOC42LTEwLjggLjEgLjEtMTguNS0xMC43LTQ4LjItMjcuOC02NC45LTkwLjEtMzcuMS0xMzguNCAyNy45LTQ4LjIgODkuOS02NC45IDEzOC4yLTM3LjJsNC44LTguNGMxNC4zLTI0LjkgNTItMy4zIDM3LjcgMjEuNXoiXX0sVzZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1peCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNjYiIsIk0wIDY0TDAgNDEyLjljMCA1Ni4yIDg4IDU4LjEgODggMGwwLTIzOC42YzcuOS01Mi45IDg4LTUwLjQgODggNi41bDAgMTc1LjNjMCA1Ny45IDk2IDU4IDk2IDBMMjcyIDI0MGM1LjMtNTQuNyA4OC01Mi41IDg4IDQuM2wwIDIzLjhjMCA1OS45IDg4IDU2LjYgODggMEw0NDggNjQgMCA2NHoiXX0sRzZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWFwcGxlLXBheSIsaWNvbjpbNTc2LDUxMixbXSwiZjQxNiIsIk0zMDIuMiAyMTguNGMwIDE3LjItMTAuNSAyNy4xLTI5IDI3LjFsLTI0LjMgMCAwLTU0LjIgMjQuNCAwYzE4LjQgMCAyOC45IDkuOCAyOC45IDI3LjF6TTM0OS43IDI4MWMwIDguMyA3LjIgMTMuNyAxOC41IDEzLjcgMTQuNCAwIDI1LjItOS4xIDI1LjItMjEuOWwwLTcuNy0yMy41IDEuNWMtMTMuMyAuOS0yMC4yIDUuOC0yMC4yIDE0LjR6TTU3NiA3OWwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0NzljLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgNzlDMCA1Mi41IDIxLjUgMzEgNDggMzFsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTEyNy44IDE5Ny4yYzguNCAuNyAxNi44LTQuMiAyMi4xLTEwLjQgNS4yLTYuNCA4LjYtMTUgNy43LTIzLjctNy40IC4zLTE2LjYgNC45LTIxLjkgMTEuMy00LjggNS41LTguOSAxNC40LTcuOSAyMi44em02MC42IDc0LjVjLS4yLS4yLTE5LjYtNy42LTE5LjgtMzAtLjItMTguNyAxNS4zLTI3LjcgMTYtMjguMi04LjgtMTMtMjIuNC0xNC40LTI3LjEtMTQuNy0xMi4yLS43LTIyLjYgNi45LTI4LjQgNi45LTUuOSAwLTE0LjctNi42LTI0LjMtNi40LTEyLjUgLjItMjQuMiA3LjMtMzAuNSAxOC42LTEzLjEgMjIuNi0zLjQgNTYgOS4zIDc0LjQgNi4yIDkuMSAxMy43IDE5LjEgMjMuNSAxOC43IDkuMy0uNCAxMy02IDI0LjItNiAxMS4zIDAgMTQuNSA2IDI0LjMgNS45IDEwLjItLjIgMTYuNS05LjEgMjIuOC0xOC4yIDYuOS0xMC40IDkuOC0yMC40IDEwLTIxem0xMzUuNC01My40YzAtMjYuNi0xOC41LTQ0LjgtNDQuOS00NC44bC01MS4yIDAgMCAxMzYuNCAyMS4yIDAgMC00Ni42IDI5LjMgMGMyNi44IDAgNDUuNi0xOC40IDQ1LjYtNDV6bTkwIDIzLjdjMC0xOS43LTE1LjgtMzIuNC00MC0zMi40LTIyLjUgMC0zOS4xIDEyLjktMzkuNyAzMC41bDE5LjEgMGMxLjYtOC40IDkuNC0xMy45IDIwLTEzLjkgMTMgMCAyMC4yIDYgMjAuMiAxNy4ybDAgNy41LTI2LjQgMS42Yy0yNC42IDEuNS0zNy45IDExLjYtMzcuOSAyOS4xIDAgMTcuNyAxMy43IDI5LjQgMzMuNCAyOS40IDEzLjMgMCAyNS42LTYuNyAzMS4yLTE3LjRsLjQgMCAwIDE2LjQgMTkuNiAwIDAtNjggLjEgMHpNNTE2IDIxMC45bC0yMS41IDAtMjQuOSA4MC42LS40IDAtMjQuOS04MC42LTIyLjMgMCAzNS45IDk5LjMtMS45IDZjLTMuMiAxMC4yLTguNSAxNC4yLTE3LjkgMTQuMi0xLjcgMC00LjktLjItNi4yLS4zbDAgMTYuNGMxLjIgLjQgNi41IC41IDguMSAuNSAyMC43IDAgMzAuNC03LjkgMzguOS0zMS44TDUxNiAyMTAuOXoiXX0sWTZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNvbGFuYSIsaWNvbjpbNTEyLDUxMixbXSwiZTg1ZSIsIk01MTAuNSAzODUuMmwtODQuOSA4OC43Yy0xLjggMS45LTQuMSAzLjUtNi42IDQuNXMtNS4yIDEuNi03LjkgMS42TDguOSA0ODBjLTEuOSAwLTMuOC0uNS01LjQtMS42cy0yLjktMi41LTMuNi00LjItMS0zLjYtLjctNS41IDEuMi0zLjYgMi41LTQuOWw4NC45LTg4LjdjMS44LTEuOSA0LjEtMy41IDYuNS00LjVzNS4xLTEuNiA3LjgtMS42bDQwMi40IDBjMS45IDAgMy44IC41IDUuNCAxLjZzMi45IDIuNSAzLjYgNC4yIDEgMy42IC43IDUuNS0xLjIgMy42LTIuNSA0Ljl6TTQyNS43IDIwNi42Yy0xLjgtMS45LTQuMS0zLjUtNi42LTQuNXMtNS4yLTEuNi03LjktMS42bC00MDIuNCAwYy0xLjkgMC0zLjggLjUtNS40IDEuNnMtMi45IDIuNS0zLjYgNC4yLTEgMy42LS43IDUuNSAxLjIgMy42IDIuNSA0LjlsODQuOSA4OC43YzEuOCAxLjkgNC4xIDMuNSA2LjUgNC41czUuMSAxLjYgNy44IDEuNmw0MDIuNCAwYzEuOSAwIDMuOC0uNSA1LjQtMS42czIuOS0yLjUgMy42LTQuMiAxLTMuNiAuNy01LjUtMS4yLTMuNi0yLjUtNC45bC04NC45LTg4Ljd6TTguOSAxNDIuOWw0MDIuNCAwYzIuNyAwIDUuNC0uNSA3LjktMS42czQuNy0yLjYgNi42LTQuNWw4NC45LTg4LjdjMS4zLTEuNCAyLjItMy4xIDIuNS00LjlzLjEtMy43LS43LTUuNS0yLTMuMi0zLjYtNC4yLTMuNS0xLjYtNS40LTEuNkwxMDEgMzJjLTIuNyAwLTUuNCAuNS03LjggMS42cy00LjcgMi42LTYuNSA0LjVMMS43IDEyNi44Yy0xLjMgMS40LTIuMiAzLjEtMi41IDQuOXMtLjEgMy43IC43IDUuNSAyIDMuMiAzLjYgNC4yIDMuNSAxLjYgNS40IDEuNnoiXX0sSzZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR5cGVzY3JpcHQiLGljb246WzQ0OCw1MTIsW10sImU4NDAiLCJNMTYuOCAzMmw0MTQuNCAwYzkuMyAwIDE2LjggNy41IDE2LjggMTYuOGwwIDQxNC40YzAgOS4zLTcuNSAxNi44LTE2LjggMTYuOEwxNi44IDQ4MEM3LjUgNDgwIDAgNDcyLjUgMCA0NjMuMkwwIDQ4LjhDMCAzOS41IDcuNSAzMiAxNi44IDMyek0yNDkgMjcwLjNsMC0zNi43LTE1OS40IDAgMCAzNi43IDU2LjkgMCAwIDE2My42IDQ1LjMgMCAwLTE2My42IDU3LjIgMHptMTguMSAxNTkuM2M3LjMgMy43IDE1LjkgNi41IDI1LjkgOC40czIwLjUgMi44IDMxLjUgMi44YzEwLjggMCAyMS0xIDMwLjctMy4xczE4LjItNS40IDI1LjUtMTAuMSAxMy4xLTEwLjkgMTcuNC0xOC40IDYuNC0xNyA2LjQtMjguMmMwLTguMS0xLjItMTUuMi0zLjctMjEuM3MtNS45LTExLjUtMTAuNS0xNi4zLTEwLjEtOS0xNi41LTEyLjgtMTMuNy03LjMtMjEuNy0xMC43Yy01LjktMi40LTExLjItNC44LTE1LjktNy4xcy04LjctNC42LTExLjktNy01LjgtNC45LTcuNi03LjUtMi43LTUuNy0yLjctOWMwLTMuMSAuOC01LjggMi40LTguM3MzLjgtNC42IDYuNy02LjQgNi41LTMuMSAxMC43LTQuMSA4LjktMS41IDE0LjEtMS41YzMuNyAwIDcuNyAuMyAxMS45IC44czguNCAxLjQgMTIuNiAyLjYgOC4zIDIuNiAxMi4zIDQuNCA3LjcgMy44IDExIDYuMWwwLTQxLjhjLTYuOC0yLjYtMTQuMy00LjUtMjIuNC01LjhzLTE3LjQtMS45LTI3LjktMS45Yy0xMC43IDAtMjAuOCAxLjEtMzAuNCAzLjRzLTE4IDUuOC0yNS4yIDEwLjctMTMgMTEtMTcuMiAxOC41LTYuMyAxNi41LTYuMyAyNi45YzAgMTMuMyAzLjkgMjQuNyAxMS42IDM0LjFzMTkuNSAxNy40IDM1LjIgMjMuOWM2LjIgMi41IDExLjkgNSAxNy4zIDcuNHMxMCA0LjkgMTMuOCA3LjUgNyA1LjQgOS4yIDguNSAzLjQgNi42IDMuNCAxMC41YzAgMi45LS43IDUuNi0yLjEgOHMtMy41IDQuNi02LjQgNi40LTYuNCAzLjItMTAuNyA0LjMtOS4zIDEuNS0xNSAxLjVjLTkuNyAwLTE5LjQtMS43LTI4LjktNS4xcy0xOC40LTguNS0yNi42LTE1LjNsMCA0NC43eiJdfSxaNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnJhdmUiLGljb246WzQ0OCw1MTIsW10sImU2M2MiLCJNMTQ1LjYgMGwxNTcgMCA0NC43IDUwLjhzMzkuMy0xMC45IDU3LjggNy42IDMzLjggMzQuOSAzMy44IDM0LjlsLTEyIDI5LjUgMTUuMyA0My43cy00NC45IDE3MC4yLTUwLjEgMTkxYy0xMC40IDQwLjktMTcuNCA1Ni44LTQ2LjkgNzcuNXMtODIuOSA1Ni44LTkxLjYgNjIuMmMtMS45IDEuMi0zLjkgMi41LTUuOSAzLjktNy41IDUuMS0xNS44IDEwLjgtMjMuNSAxMC44cy0xNi4xLTUuNy0yMy41LTEwLjhjLTItMS40LTQtMi44LTUuOS0zLjktOC43LTUuNS02Mi4xLTQxLjUtOTEuNi02Mi4ycy0zNi41LTM2LjYtNDYuOS03Ny41Yy01LjMtMjAuOC01MC4xLTE5MS01MC4xLTE5MUwyMS41IDEyMi44IDkuMyA5My4zczE1LjMtMTYuNCAzMy44LTM0LjkgNTcuOC03LjYgNTcuOC03LjZMMTQ1LjYgMHptNzguNSA0MDcuNmMzLjcgMCA4LjktNC43IDEzLTguNCAuNi0uNSAxLjItMS4xIDEuNy0xLjUgNC4yLTMuNyA0Ny44LTM3LjUgNTEtMzkuOHM1LjQtNi41IDEuOS04LjdjLTIuOC0xLjctMTAtNS41LTIwLjMtMTAuOC0zLTEuNi02LjMtMy4yLTkuNy01LTE1LjQtOC0zNC41LTE0LjctMzcuNS0xNC43cy0yMi4xIDYuOC0zNy41IDE0LjdjLTMuNSAxLjgtNi43IDMuNS05LjcgNS0xMC4zIDUuMy0xNy42IDkuMS0yMC4zIDEwLjgtMy42IDIuMi0xLjQgNi40IDEuOSA4LjdzNDYuOCAzNi4xIDUxIDM5LjhjLjUgLjUgMS4xIDEgMS43IDEuNSA0LjEgMy43IDkuMyA4LjQgMTMgOC40bC0uMiAwem0wLTE2NS43YzQuNyAwIDE3LjYtMyAyNi40LTVsMi0uNWM3LjgtMS44IDcuMy02LjMgNi40LTEzLS4xLS44LS4yLTEuNi0uMy0yLjQtLjYtNi4xLTUuOC0zMy4xLTkuMS01MC4zLTEuMS01LjgtMi0xMC41LTIuNC0xMi45LTEuNS04LjEtLjYtOS40IC43LTExLjMgLjItLjMgLjUtLjcgLjctMS4xIDEuNC0yLjMgMTYtNi4yIDI3LjktOS41IDIuNS0uNyA0LjgtMS4zIDYuOS0xLjkgMTAuNi0zIDMyLjQtLjYgNDQuMiAuNiAxLjggLjIgMy40IC40IDQuNyAuNSA5LjYgLjkgMTAuNCAyLjMgNy4yIDMuOC0yLjMgMS4xLTE2LjIgNi4zLTI4LjcgMTAuOS00LjcgMS44LTkuMiAzLjUtMTIuOCA0LjgtMS41IC41LTMgMS4xLTQuNSAxLjctMTIuNSA0LjYtMjcuMiAxMC0yOC45IDE5LjQtMS41IDguMyA1LjIgMTkuOSAxMS4zIDMwLjMgMS42IDIuOCAzLjIgNS41IDQuNiA4LjEgNi4zIDExLjkgNi41IDEzLjMgNi4xIDE4LjEtLjQgMy45LTE0LjUgMTIuNy0yMi40IDE3LjYtMS44IDEuMS0zLjMgMi4xLTQuMiAyLjctLjggLjUtMi4xIDEuNC0zLjggMi40LTguNiA1LjItMjYuMyAxNi0yNi4zIDIyLjUgMCA3LjggMjQuNiAyOC4xIDMyLjQgMzMuMnMyOC45IDE2LjEgMzcuOSAxNy44IDIzLTguNSAzMS4yLTIzLjhjNy43LTE0LjQgMS43LTI4LjUtMy4yLTQwbC0uOS0yLjJjLTQuNS0xMC42IDEuOS0xNyA2LjItMjEuMyAuNS0uNSAxLTEgMS40LTEuNGw0My00NS43YzEuMy0xLjMgMi41LTIuNiAzLjctMy44IDUuOC01LjcgMTAuOC0xMC41IDEwLjgtMjIuOCAwLTE0LjktNTcuNS04NC41LTU3LjUtODQuNXMtNDguNSA5LjMtNTUuMSA5LjNjLTUuMiAwLTE1LjMtMy41LTI1LjgtNy4xLTIuNy0uOS01LjQtMS45LTgtMi43LTEzLTQuMy0yMS44LTQuNC0yMS44LTQuNHMtOC43IDAtMjEuOCA0LjRjLTIuNyAuOS01LjQgMS44LTggMi43LTEwLjUgMy42LTIwLjYgNy4xLTI1LjggNy4xLTYuNSAwLTU1LjEtOS4zLTU1LjEtOS4zcy01Ny41IDY5LjYtNTcuNSA4NC41YzAgMTIuMyA0LjkgMTcuMSAxMC44IDIyLjggMS4yIDEuMiAyLjUgMi40IDMuNyAzLjhsNDMuMSA0NS44Yy40IC41IC45IC45IDEuNCAxLjQgNC4zIDQuMyAxMC42IDEwLjcgNi4yIDIxLjNsLS45IDIuMmMtNC45IDExLjUtMTEgMjUuNi0zLjIgNDAgOC4yIDE1LjMgMjIuMiAyNS41IDMxLjIgMjMuOHMzMC4xLTEyLjcgMzcuOS0xNy44IDMyLjQtMjUuNCAzMi40LTMzLjJjMC02LjUtMTcuNy0xNy4zLTI2LjMtMjIuNS0xLjctMS0zLjEtMS45LTMuOC0yLjQtLjktLjYtMi40LTEuNS00LjItMi43LTcuOS00LjktMjItMTMuNy0yMi40LTE3LjYtLjQtNC44LS4zLTYuMiA2LjEtMTguMSAxLjMtMi41IDIuOS01LjMgNC42LTguMSA2LTEwLjQgMTIuOC0yMiAxMS4zLTMwLjMtMS43LTkuNC0xNi40LTE0LjgtMjguOS0xOS40LTEuNi0uNi0zLjEtMS4xLTQuNS0xLjctMy42LTEuNC04LjEtMy4xLTEyLjgtNC44bC0uMSAwYy0xMi41LTQuNy0yNi40LTkuOS0yOC43LTEwLjktMy4yLTEuNS0yLjMtMi44IDcuMi0zLjggMS4zLS4xIDIuOS0uMyA0LjctLjUgMTEuOC0xLjMgMzMuNi0zLjYgNDQuMi0uNiAyLjEgLjYgNC40IDEuMiA2LjkgMS45IDExLjkgMy4yIDI2LjUgNy4yIDI3LjkgOS41IC4yIC40IC41IC43IC43IDEuMSAxLjMgMS45IDIuMiAzLjIgLjcgMTEuMy0uNCAyLjQtMS4zIDcuMS0yLjQgMTIuOS0zLjMgMTcuMi04LjUgNDQuMi05LjEgNTAuMy0uMSAuOC0uMiAxLjctLjMgMi40LS44IDYuNy0xLjQgMTEuMiA2LjQgMTNsMiAuNWM4LjggMiAyMS44IDUgMjYuNCA1bDAtLjF6Il19LFE2cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJldHN5IixpY29uOlszODQsNTEyLFtdLCJmMmQ3IiwiTTM4NCAzNDhjLTEuOCAxMC43LTEzLjggMTEwLTE1LjUgMTMyLTExNy45LTQuMy0yMTkuOS00LjctMzY4LjUgMGwwLTI1LjVjNDUuNS04LjkgNjAuNi04IDYxLTM1LjIgMS44LTcyLjMgMy41LTI0NC4xIDAtMzIyLTEtMjguNS0xMi4xLTI2LjgtNjEtMzZMMCAzNS44YzczLjkgMi40IDI1NS45IDguNiAzNjMtMy44LTMuNSAzOC4yLTcuOCAxMjYuNS03LjggMTI2LjVsLTIzLjIgMEMzMjAuOSAxMTUuNyAzMTMuMiA2OCAyNzcuMyA2OGwtMTM3IDBjLTEwLjIgMC0xMC43IDMuNS0xMC43IDkuOGwwIDE2My44YzU4IC41IDg4LjUtMi41IDg4LjUtMi41IDI5LjgtMSAyNy42LTguNSA0MC43LTY1LjNsMjUuOCAwYy00LjQgMTAxLjQtMy45IDYxLjgtMS44IDE2MC4zTDI1NyAzMzRjLTkuMi00MC4xLTkuMS02MS0zOS41LTYxLjUgMCAwLTIxLjUtMi04OC0ybDAgMTM5YzAgMjYgMTQuMyAzOC4zIDQ0LjMgMzguM2w4OS4zIDBjNjMuNiAwIDY2LjYtMjUgOTguNy05OS44bDIyLjIgMHoiXX0sWDZyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ0YyIsaWNvbjpbMzg0LDUxMixbXSwiZjE1YSIsIk0zMTAuNCAyNDIuNmMyNy43LTE0LjIgNDUuNC0zOS40IDQxLjMtODEuMy01LjQtNTcuNC01Mi41LTc2LjYtMTE0LjgtODEuOWwwLTc5LjQtNDguNSAwIDAgNzcuMmMtMTIuNiAwLTI1LjUgLjMtMzguNCAuNmwwLTc3LjgtNDguNSAwIDAgNzkuNGMtMTcuOCAuNS0zOC42IC4zLTk3LjQgMGwwIDUxLjdjMzguMy0uNyA1OC40LTMuMSA2MyAyMS40bDAgMjE3LjRjLTIuOSAxOS41LTE4LjUgMTYuNy01My4zIDE2LjFMNCA0NDMuN2M4OC41IDAgOTcuNCAuMyA5Ny40IC4zbDAgNjggNDguNSAwIDAtNjcuMWMxMy4yIC4zIDI2LjIgLjMgMzguNCAuM2wwIDY2LjcgNDguNSAwIDAtNjhjODEuMy00LjQgMTM1LjYtMjQuOSAxNDIuOS0xMDEuNSA1LjctNjEuNC0yMy4zLTg4LjktNjkuMy05OS45ek0xNTAuOCAxMzQuNmMyNy40IDAgMTEzLjEtOC41IDExMy4xIDQ4LjUgMCA1NC41LTg1LjcgNDguMi0xMTMuMSA0OC4ybDAtOTYuN3ptMCAyNTEuOGwwLTEwNi41YzMyLjggMCAxMzMuMS05LjEgMTMzLjEgNTMuMyAwIDYwLjItMTAwLjQgNTMuMy0xMzMuMSA1My4zeiJdfSxKNnI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWRuIixpY29uOls1MTIsNTEyLFtdLCJmMTcwIiwiTTI1NiAxNjcuNWw2NC45IDk4LjgtMTI5LjggMCA2NC45LTk4Ljh6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTM5Ni4yIDgyLjdsLTE0OC4yLTIyMy4yLTE0OC4yIDIyMy4yIDMwLjQgMCAzMy42LTUxLjcgMTY4LjYgMCAzMy42IDUxLjcgMzAuMiAweiJdfSxlbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXgtdHdpdHRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTYxYSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yOTcuMSA4NGwtMTAzLjggMTE4LjYgMTIyLjEgMTYxLjQtOTUuNiAwLTc0LjgtOTcuOS04NS43IDk3LjktNDcuNSAwIDExMS0xMjYuOS0xMTcuMS0xNTMuMSA5OCAwIDY3LjcgODkuNSA3OC4yLTg5LjUgNDcuNSAwek0zMjMuMyAzNjcuNmwtMTY5LjktMjI0LjctMjguMyAwIDE3MS44IDIyNC43IDI2LjQgMHoiXX0sdG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1mb250LWF3ZXNvbWUiLGljb246WzQ0OCw1MTIsW10sImU1YWQiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptOTAgMTIyYzAgOS4zLTQuOCAxNy40LTEyLjEgMjJsMTg4LjkgMGM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCAxLjgtLjQgMy43LTEuMSA1LjRMMzEyIDI2NCAzNDIuOSAzMzMuNGMuNyAxLjcgMS4xIDMuNSAxLjEgNS40IDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMmwtMTg2LjggMCAwIDMyLTMyIDAgMC0yMDkuNWMtNi4xLTQuOC0xMC0xMi4yLTEwLTIwLjUgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNnoiXX0scm1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcnVtYmVlIixpY29uOls0NDgsNTEyLFtdLCJmMjExIiwiTTUuOCAzMDkuN0MyIDI5Mi43IDAgMjc1LjUgMCAyNTguMyAwIDEzNSA5OS44IDM1IDIyMy4xIDM1IDIzOS43IDM1IDI1Ni40IDM3IDI3Mi40IDQwLjUgMTQ5IDg3LjUgNTEuOSAxODYgNS44IDMwOS43ek0zOTguNyAxMjAuNWMtMTMuNy0xNy41LTI5LjctMzIuNy00Ny44LTQ1LjMtMTQ5LjYgNDQuMy0yNjYuMyAxNjIuMS0zMDkuNyAzMTIgMTIuNSAxOC4xIDI4IDM1LjYgNDUuMiA0OSA0My4xLTE1MS4zIDE2MS4yLTI3MS43IDMxMi4zLTMxNS43em0xNS44IDI1Mi43YzE1LjItMjUuMSAyNS40LTUzLjcgMjkuNS04Mi44LTc5LjQgNDIuOS0xNDUgMTEwLjYtMTg3LjYgMTkwLjMgMzAtNC40IDU4LjktMTUuMyA4NC42LTMxLjMgMzUgMTMuMSA3MC45IDI0LjMgMTA3IDMzLjYtOS4zLTM2LjUtMjAuNC03NC41LTMzLjUtMTA5Ljh6bTI5LjctMTQ1LjVjLTIuNi0xOS41LTcuOS0zOC43LTE1LjgtNTYuOC0xMzcuOSA0NS44LTI0Ni40IDE1Ni42LTI5MS4zIDI5NS4xIDE4LjEgNy42IDM3IDEyLjUgNTYuNiAxNS4yIDQ2LjMtMTE0LjEgMTM2LjgtMjA2LjggMjUwLjUtMjUzLjV6Il19LG5JZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiI0Mi1ncm91cCIsaWNvbjpbNjQwLDUxMixbImlubm9zb2Z0Il0sImUwODAiLCJNMzIwIDk2bDAgMzIwYzIxIDAgNDEuOC00LjEgNjEuMi0xMi4yczM3LTE5LjggNTEuOS0zNC43IDI2LjYtMzIuNSAzNC43LTUxLjkgMTIuMi00MC4yIDEyLjItNjEuMi00LjEtNDEuOC0xMi4yLTYxLjItMTkuOC0zNy4xLTM0LjctNTEuOS0zMi41LTI2LjYtNTEuOS0zNC43LTQwLjItMTIuMi02MS4yLTEyLjJ6TTAgMjU2TDE2MCA0MTYgMzIwIDI1NiAxNjAgOTYgMCAyNTZ6bTQ4MCAwYzAgMjEgNC4xIDQxLjggMTIuMiA2MS4yczE5LjggMzcgMzQuNyA1MS45IDMyLjUgMjYuNiA1MS45IDM0LjcgNDAuMiAxMi4yIDYxLjIgMTIuMmwwLTMyMGMtNDIuNCAwLTgzLjEgMTYuOS0xMTMuMSA0Ni45UzQ4MCAyMTMuNiA0ODAgMjU2eiJdfSxhbXI9bkllLGltcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVtYmxldXBvbi1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImYxYTMiLCJNMjY0IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em0wIDE3Ny41Yy05LjggMC0xNy44IDgtMTcuOCAxNy44bDAgMTA2LjljMCA0MC45LTMzLjkgNzMuOS03NC45IDczLjktNDEuNCAwLTc0LjktMzMuNS03NC45LTc0LjlsMC00Ni41IDU3LjMgMCAwIDQ1LjhjMCAxMCA4IDE3LjggMTcuOCAxNy44czE3LjgtNy45IDE3LjgtMTcuOGwwLTEwOC40YzAtNDAgMzQuMi03Mi4xIDc0LjctNzIuMSA0MC43IDAgNzQuNyAzMi4zIDc0LjcgNzIuNmwwIDIzLjctMzQuMSAxMC4xLTIyLjktMTAuNyAwLTIwLjZjLjEtOS42LTcuOS0xNy42LTE3LjctMTcuNnpNNDMxLjYgMzA5LjFjMCA0MS40LTMzLjUgNzQuOS03NC45IDc0LjktNDEuMiAwLTc0LjktMzMuMi03NC45LTc0LjJsMC00Ni44IDIyLjkgMTAuNyAzNC4xLTEwLjEgMCA0Ny4xYzAgOS44IDggMTcuNiAxNy44IDE3LjZzMTcuOC03LjkgMTcuOC0xNy42bDAtNDggNTcuMyAwYy0uMSA0NS45LS4xIDQ2LjQtLjEgNDYuNHoiXX0sc21yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN5bWZvbnkiLGljb246WzUxMiw1MTIsW10sImY4M2QiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zODkuNyAxNTEuNWMtMTEuNSAuNC0xOS40LTYuNC0xOS44LTE2LjktLjMtOS4yIDYuNy0xMy40IDYuNS0xOC45LS4yLTYuNS0xMC4yLTYuOC0xMi45LTYuNy0zOS44IDEuMy00OC42IDU3LTU4LjkgMTEzLjggMjEuNCAzLjIgMzYuNi0uNyA0NS4xLTYuMiAxMi03LjctMy4zLTE1LjctMS40LTI0LjYgNC0xOC4yIDMyLjYtMTkgMzIgNS4zLS40IDE3LjktMjUuOSA0MS44LTc3LjYgMzUuNy0xMC44IDU5LjUtMTguNCAxMTUtNTguMiAxNjEuNy0yOSAzNC41LTU4LjQgMzkuOC03MS42IDQwLjMtMjQuNiAuOS00MS0xMi4zLTQxLjYtMjkuOC0uNi0xNyAxNC40LTI2LjMgMjQuMy0yNi42IDIxLjktLjggMzAuMSAyNS43IDE0LjkgMzQtMTIuMSA5LjcgLjEgMTIuNiAyLjEgMTIuNiAxMC40LS40IDE3LjMtNS41IDIyLjItOSAyNC0yMCAzMy4yLTU0LjkgNDUuNC0xMTguMyA4LjItNDkuNyAxNy03OCAxOC4yLTgyLTE2LjktMTIuNy0yNy4xLTI4LjYtNDkuOC0zNC43LTE1LjYtNC4yLTI1LjEtLjYtMzEuOCA3LjgtNy45IDEwLTUuMyAyMyAyLjQgMzAuN2wxMi42IDE0YzE1LjUgMTcuOSAyNCAzMS45IDIwLjggNTAuNi01LjEgMjkuOS00MC43IDUyLjktODIuOSAzOS45LTM2LTExLjEtNDIuNy0zNi42LTM4LjQtNTAuNiA3LjUtMjQuMiA0Mi40LTExLjcgMzQuNiAxMy42LTIuOCA4LjYtNC45IDguNy02LjMgMTMuMS00LjYgMTQuOCA0MS44IDI4LjQgNTEtMS40IDQuNS0xNC41LTUuMy0yMS43LTIyLjItMzkuOS0yOC41LTMxLjctMTYtNjUuNSAyLjktNzkuNyA1Mi44LTM5LjQgMTAwLjUgMTcuNSAxMTAuNiAyNS44IDM3LjItMTA5IDEwMC41LTEwNS41IDEwMi40LTEwNS41IDI1LjItLjggNDQuMiAxMC42IDQ0LjggMjguNiAuMiA3LjctNC4yIDIyLjYtMTkuNSAyMy4xeiJdfSxubXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FsZXNmb3JjZSIsaWNvbjpbNjQwLDUxMixbXSwiZjgzYiIsIk0yNDkuNCAyNDUuNmwtMjYuNCAwYy43LTUuMiAzLjMtMTQuMSAxMy42LTE0LjEgNi44IDAgMTIgMy44IDEyLjcgMTQuMXpNMzg2IDIzMS44Yy0uNSAwLTE0LjEtMS44LTE0LjEgMjBzMTMuNiAyMCAxNC4xIDIwYzEzIDAgMTQuMS0xMy41IDE0LjEtMjAgMC0yMS44LTEzLjctMjAtMTQuMS0yMHpNMTQyLjggMjU1LjVjLTEuMSAuOS0yIDItMi41IDMuMnMtLjggMi43LS43IDRjMCA0LjggMi4xIDYuMSAzLjMgNyA0LjcgMy43IDE1LjEgMi4xIDIwLjkgMWwwLTE2LjljLTUuMy0xLjEtMTYuNy0yLTIwLjkgMS42ek02NDAuNSAyMzJjMCA4Ny42LTgwIDE1NC40LTE2NS40IDEzNi40LTE4LjQgMzMtNzAuNyA3MC44LTEzMi4yIDQxLjYtNDEuMiA5Ni0xNzcuOSA5Mi4yLTIxMy44LTUuMi0xMTkuNyAyMy45LTE3OC44LTEzOC40LTc1LjMtMTk5LjMtMzQuOC03OS40IDIyLjYtMTczLjYgMTE0LjMtMTczLjYgMTkuMSAwIDM3LjkgNC40IDU1IDEyLjlzMzIgMjAuNyA0My42IDM1LjhjMjAuNy0yMS40IDQ5LjQtMzQuOCA4MS4xLTM0LjggNDIuMyAwIDc5IDIzLjUgOTguOCA1OC42IDkyLjgtNDAuNyAxOTMuOCAyOC4yIDE5My44IDEyNy41ek0xMjAuOSAyNjMuOGMwLTExLjgtMTEuNy0xNS4yLTE3LjktMTcuMi01LjMtMi4xLTEzLjQtMy41LTEzLjQtOC45IDAtOS41IDE3LTYuNyAyNS4yLTIuMSAwIDAgMS4yIC43IDEuNi0uNSAuMi0uNyAyLjQtNi42IDIuNi03LjMgLjEtLjMgLjEtLjYtLjEtLjhzLS40LS41LS42LS42Yy0xMi4zLTcuNi00MC43LTguNS00MC43IDEyLjcgMCAxMi41IDExLjUgMTUuNCAxNy45IDE3LjIgNC43IDEuNiAxMy4yIDMgMTMuMiA4LjcgMCA0LTMuNSA3LjEtOS4yIDcuMS02LjkgMC0xMy41LTIuMi0xOS02LjMtLjUtLjItMS40LS43LTEuNiAuN2wtMi40IDcuNWMtLjUgLjkgLjIgMS4yIC4yIDEuNCAxLjggMS40IDEwLjMgNi42IDIyLjggNi42IDEzLjIgMCAyMS40LTcuMSAyMS40LTE4LjFsMCAwem0zMi00Mi42Yy0xMC4xIDAtMTguNyAzLjItMjEuNCA1LjItLjEgLjEtLjIgLjItLjMgLjNzLS4xIC4yLS4xIC40IDAgLjMgMCAuNCAuMSAuMyAuMiAuNGwyLjYgNy4xYy4xIC4yIC4yIC41IC41IC42cy41IC4yIC43IC4xYy42IDAgNi44LTQgMTYuOS00IDQgMCA3LjEgLjcgOS4yIDIuNCAzLjYgMi44IDMuMSA4LjMgMy4xIDEwLjYtNC44LS4zLTE5LjEtMy40LTI5LjQgMy44LTIuMyAxLjYtNC4zIDMuOC01LjUgNi4zcy0xLjkgNS40LTEuOCA4LjJjMCA1LjkgMS41IDEwLjQgNi42IDE0LjQgMTIuMiA4LjIgMzYuMyAyIDM4LjEgMS40IDEuNi0uMyAzLjUtLjcgMy41LTEuOWwwLTMzLjljMC00LjYgLjMtMjEuNi0yMi44LTIxLjZsMCAuMXptNDYuNi0yMWMwLS4yIDAtLjMtLjEtLjVzLS4xLS4zLS4zLS40LS4yLS4yLS40LS4zLS4zLS4xLS41LS4xbC05LjggMGMtLjIgMC0uMyAwLS41IC4xcy0uMyAuMS0uNCAuMy0uMiAuMi0uMyAuNC0uMSAuMy0uMSAuNWwwIDc5YzAgLjIgMCAuMyAuMSAuNXMuMSAuMyAuMyAuNCAuMiAuMiAuNCAuMyAuMyAuMSAuNSAuMWw5LjkgMGMuMiAwIC4zIDAgLjUtLjFzLjMtLjEgLjQtLjMgLjItLjIgLjMtLjQgLjEtLjMgLjEtLjVsLS4xLTc5em01NS43IDI4LjljLTIuMS0yLjMtNi44LTcuNS0xNy42LTcuNS0zLjUgMC0xNC4yIC4yLTIwLjcgOC45LTYuNCA3LjYtNi42IDE4LjEtNi42IDIxLjQgMCAzLjEgLjIgMTQuMyA3LjEgMjEuMiAyLjYgMi45IDkuMSA4LjIgMjIuOCA4LjIgMTAuOCAwIDE2LjUtMi4zIDE4LjYtMy44IC41LS4yIC43LS43IC4yLTEuOWwtMi4zLTYuOGMtLjEtLjMtLjMtLjUtLjYtLjZzLS41LS4yLS44LS4xYy0yLjYgLjktNi4zIDIuOC0xNS4zIDIuOC0xNy40IDAtMTYuOC0xNC43LTE2LjktMTYuN2wzNy4yIDBjLjMgMCAuNS0uMSAuNy0uM3MuNC0uNCAuNC0uN2MtLjMgMCAyLjEtMTQuNy02LjEtMjQuMmwwIDB6bTM2LjcgNTIuN2MxMy4yIDAgMjEuNC03LjEgMjEuNC0xOC4xIDAtMTEuOC0xMS43LTE1LjItMTcuOS0xNy4yLTQuMS0xLjctMTMuNC0zLjQtMTMuNC04LjkgMC0zLjggMy4zLTYuNCA4LjUtNi40IDUuOCAuMSAxMS41IDEuNiAxNi43IDQuMiAwIDAgMS4yIC43IDEuNi0uNSAuMi0uNyAyLjQtNi42IDIuNi03LjMgLjEtLjMgLjEtLjYtLjEtLjhzLS40LS41LS42LS42Yy03LjktNC45LTE2LjctNC45LTIwLjItNC45LTEyIDAtMjAuNSA3LjMtMjAuNSAxNy42IDAgMTIuNSAxMS41IDE1LjQgMTcuOSAxNy4yIDYuMSAyIDEzLjIgMy4zIDEzLjIgOC43IDAgNC0zLjUgNy4xLTkuMiA3LjEtNi45IDAtMTMuNS0yLjItMTktNi40LS4xLS4xLS4zLS4yLS41LS4ycy0uNCAwLS41IC4xLS4zIC4yLS40IC4zLS4yIC4zLS4yIC41bC0yLjMgNy41Yy0uNSAuOSAuMiAxLjIgLjIgMS40IDEuNyAxLjQgMTAuMyA2LjYgMjIuOCA2LjZsMCAwek0zNTcuNiAyMjRjMC0uNy0uMi0xLjItMS4yLTEuMmwtMTEuOCAwYzAtLjEgLjktOC45IDQuNS0xMi41IDQuMi00LjIgMTEuOC0xLjYgMTItMS42IDEuMiAuNSAxLjQgMCAxLjYtLjVsMi44LTcuOGMuNy0uOSAwLTEuMi0uMi0xLjQtNS4xLTItMTcuNC0yLjktMjQuNSA0LjItNS41IDUuNS03IDEzLjktOCAxOS41bC04LjUgMGMtLjMgMC0uNiAuMi0uOCAuNHMtLjMgLjUtLjQgLjhsLTEuNCA3LjhjMCAuNyAuMiAxLjIgMS4yIDEuMmw4LjIgMGMtOC41IDQ3LjktOC43IDUwLjItMTAuMyA1NS41LTEuMSAzLjYtMy4zIDYuOS01LjkgNy44LS4xIDAtMy45IDEuNy05LjYtLjIgMCAwLS45LS41LTEuNCAuNy0uMiAuNy0yLjYgNi44LTIuOCA3LjVzMCAxLjQgLjUgMS40YzUuMSAyIDEzIDEuOCAxNy45IDAgNi4zLTIuMyA5LjctNy45IDExLjUtMTIuOSAyLjgtNy43IDIuOC05LjggMTEuOC01OS43bDEyLjIgMGMuMyAwIC42LS4yIC44LS40cy4zLS41IC40LS44bDEuNC03Ljh6TTQxMSAyNDBjLS42LTEuNy01LjEtMTguMS0yNS4yLTE4LjEtMTUuMiAwLTIzIDEwLTI1LjIgMTguMS0xIDMtMy4yIDE0IDAgMjMuNSAuMSAuMyA0LjQgMTguMSAyNS4yIDE4LjEgMTUgMCAyMi45LTkuNiAyNS4yLTE4LjEgMy4yLTkuNiAxLTIwLjUgMC0yMy41em00NS40LTE2LjdjLTUtMS43LTE2LjYtMS45LTIyLjEgNS40bDAtNC41YzAtLjIgMC0uMy0uMS0uNXMtLjEtLjMtLjMtLjQtLjItLjItLjQtLjMtLjMtLjEtLjUtLjFsLTkuNCAwYy0uMiAwLS4zIDAtLjUgLjFzLS4zIC4xLS40IC4zLS4yIC4yLS4zIC40LS4xIC4zLS4xIC41bDAgNTUuM2MwIC4yIDAgLjMgLjEgLjVzLjEgLjMgLjMgLjQgLjIgLjIgLjQgLjMgLjMgLjEgLjUgLjFsOS42IDBjLjIgMCAuMyAwIC41LS4xcy4zLS4xIC40LS4zIC4yLS4yIC4zLS40IC4xLS4zIC4xLS41bDAtMjcuOGMwLTIuOSAuMS0xMS40IDQuNS0xNS4xIDQuOS00LjkgMTItMy40IDEzLjQtMy4xIC4zIDAgLjYtLjEgLjgtLjNzLjQtLjQgLjYtLjdjMS4yLTIuNiAyLjItNS4zIDMuMS04IC4xLS4zIC4xLS41IDAtLjhzLS4zLS41LS41LS42bDAgMHptNDYuOCA1NC4xbC0yLjEtNy4zYy0uNS0xLjItMS40LS43LTEuNC0uNy00LjIgMS44LTEwLjEgMS45LTExLjMgMS45LTQuNiAwLTE3LjItMS4xLTE3LjItMTkuOCAwLTYuMiAxLjgtMTkuOCAxNi41LTE5LjggMy45LS4xIDcuOCAuNSAxMS41IDEuNiAwIDAgLjkgLjUgMS4yLS43IC45LTIuNiAxLjYtNC41IDIuNi03LjUgLjItLjktLjUtMS4yLS43LTEuMi0xMS42LTMuOS0yMi4zLTIuNS0yNy44IDAtMS42IC43LTE2LjIgNi41LTE2LjIgMjcuNSAwIDIuOS0uNiAzMC4xIDI4LjkgMzAuMSA1LjMgMCAxMC42LTEgMTUuNS0yLjggLjItLjIgLjQtLjQgLjUtLjZzLjEtLjUgMC0uOGwwIDB6bTUzLjktMzkuNWMtLjgtMy01LjQtMTYuMi0yMi4zLTE2LjItMTYgMC0yMy41IDEwLjEtMjUuNiAxOC42LTEuMiAzLjgtMS43IDcuOC0xLjcgMTEuOCAwIDI1LjkgMTguOCAyOS40IDI5LjkgMjkuNCAxMC44IDAgMTYuNS0yLjMgMTguNi0zLjggLjUtLjIgLjctLjcgLjItMS45bC0yLjQtNi44Yy0uMS0uMy0uMy0uNS0uNi0uNnMtLjYtLjItLjgtLjFjLTIuNiAuOS02LjMgMi44LTE1LjMgMi44LTE3LjQgMC0xNi45LTE0LjctMTYuOS0xNi43bDM3LjIgMGMuMyAwIC41LS4xIC43LS4zcy40LS40IC40LS43Yy0uMiAwIC45LTcuMS0xLjQtMTUuNWwwIDB6bS0yMy4zLTYuNGMtMTAuMyAwLTEzIDktMTMuNiAxNC4xbDI2LjQgMGMtLjktMTEuOS03LjYtMTQuMS0xMi43LTE0LjFsMCAweiJdfSxvbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic291cmNldHJlZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjdkMyIsIk00MjcuNCAyMDNjMC0xMTIuMS05MC45LTIwMy0yMDMtMjAzLTExMi4xLS4yLTIwMyA5MC42LTIwMy4yIDIwMi42LS4xIDQzIDEzLjUgODQuOCAzOC43IDExOS42czYwLjkgNjAuNiAxMDEuOCA3My44bDAgMTAxLjdjMCAzLjggMS41IDcuNCA0LjIgMTAuMXM2LjMgNC4yIDEwLjEgNC4ybDk2LjQgMGMzLjggMCA3LjQtMS41IDEwLjEtNC4yczQuMi02LjMgNC4yLTEwLjFsMC0xMDEuNmM0MC44LTEzLjIgNzYuNS0zOSAxMDEuNy03My43czM4LjktNzYuNSAzOS0xMTkuNHptLTI3MS42IDBjMC05MC44IDEzNy4zLTkwLjggMTM3LjMgMC0uMSA4OS45LTEzNy4zIDkxLTEzNy4zIDB6Il19LGxtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rZWRpbi1pbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjBlMSIsIk0xMDAuMyA0NDhsLTkyLjkgMCAwLTI5OS4xIDkyLjkgMCAwIDI5OS4xek01My44IDEwOC4xQzI0LjEgMTA4LjEgMCA4My41IDAgNTMuOCAwIDM5LjUgNS43IDI1LjkgMTUuOCAxNS44czIzLjgtMTUuOCAzOC0xNS44IDI3LjkgNS43IDM4IDE1LjggMTUuOCAyMy44IDE1LjggMzhjMCAyOS43LTI0LjEgNTQuMy01My44IDU0LjN6TTQ0Ny45IDQ0OGwtOTIuNyAwIDAtMTQ1LjZjMC0zNC43LS43LTc5LjItNDguMy03OS4yLTQ4LjMgMC01NS43IDM3LjctNTUuNyA3Ni43bDAgMTQ4LjEtOTIuOCAwIDAtMjk5LjEgODkuMSAwIDAgNDAuOCAxLjMgMGMxMi40LTIzLjUgNDIuNy00OC4zIDg3LjktNDguMyA5NCAwIDExMS4zIDYxLjkgMTExLjMgMTQyLjNsMCAxNjQuMy0uMSAweiJdfSxjbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaHRtbDUiLGljb246WzM4NCw1MTIsW10sImYxM2IiLCJNMCAzMkwzNC45IDQyNy44IDE5MS41IDQ4MCAzNDkuMSA0MjcuOCAzODQgMzIgMCAzMnpNMzA4LjIgMTU5LjlsLTE4My44IDAgNC4xIDQ5LjQgMTc1LjYgMC0xMy42IDE0OC40LTk3LjkgMjcgMCAuMy0xLjEgMC05OC43LTI3LjMtNi03NS44IDQ3LjcgMCAzLjUgMzguMSA1My41IDE0LjUgNTMuNy0xNC41IDYtNjIuMi0xNjYuOSAwLTEyLjgtMTQ1LjYgMjQxLjEgMC00LjQgNDcuN3oiXX0sZG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJ1c3QiLGljb246WzUxMiw1MTIsW10sImUwN2EiLCJNNTA4LjUgMjQ5LjhsLTIxLjgtMTMuNWMtLjItMi0uMy0zLjktLjUtNS45bDE4LjctMTcuNWMuOS0uOSAxLjYtMS45IDItMy4xcy41LTIuNSAuMi0zLjctLjgtMi40LTEuNi0zLjMtMS44LTEuNy0zLTIuMWwtMjQtOWMtLjUtMS45LTEuMS0zLjgtMS43LTUuNmwxNS0yMC44Yy43LTEgMS4yLTIuMiAxLjMtMy40czAtMi41LS41LTMuNy0xLjItMi4yLTIuMi0yLjktMi4xLTEuMy0zLjQtMS41bC0yNS40LTQuMmMtLjktMS43LTEuOC0zLjQtMi43LTUuMmwxMC43LTIzLjRjLjUtMS4xIC43LTIuNCAuNi0zLjZzLS41LTIuNC0xLjItMy41LTEuNi0xLjktMi44LTIuNS0yLjQtLjgtMy42LS44bC0yNS44IC45Yy0xLjItMS41LTIuNC0yLjktMy42LTQuNEw0MzkgODEuOGMuMy0xLjIgLjMtMi41LS4xLTMuN3MtMS0yLjMtMS45LTMuMi0yLTEuNS0zLjItMS45LTIuNS0uNC0zLjctLjFMNDA1IDc4LjljLTEuNC0xLjItMi45LTIuNC00LjQtMy42bC45LTI1LjhjLjEtMS4zLS4yLTIuNS0uOC0zLjZzLTEuNC0yLjEtMi41LTIuOC0yLjItMS4xLTMuNS0xLjItMi41IC4xLTMuNyAuNkwzNjcuNyA1My4yYy0xLjctLjktMy40LTEuOC01LjEtMi43bC00LjItMjUuNGMtLjItMS4yLS43LTIuNC0xLjUtMy40cy0xLjgtMS43LTIuOS0yLjItMi40LS43LTMuNy0uNS0yLjQgLjYtMy40IDEuM0wzMjYgMzUuM2MtMS45LS42LTMuOC0xLjEtNS42LTEuN2wtOS0yNGMtLjQtMS4yLTEuMi0yLjItMi4xLTNzLTIuMS0xLjQtMy4zLTEuNi0yLjUtLjItMy43IC4yLTIuMyAxLjEtMy4xIDJMMjgxLjYgMjUuOWMtMi0uMi0zLjktLjQtNS45LS41TDI2Mi4zIDMuNWMtLjctMS4xLTEuNi0xLjktMi43LTIuNnMtMi4zLS45LTMuNi0uOS0yLjUgLjMtMy42IC45LTIgMS41LTIuNyAyLjZMMjM2LjIgMjUuM2MtMiAuMi0zLjkgLjMtNS45IC42TDIxMi45IDcuMWMtLjktLjktMS45LTEuNi0zLjEtMnMtMi41LS41LTMuNy0uMi0yLjQgLjgtMy4zIDEuNi0xLjcgMS44LTIuMSAzbC05IDI0Yy0xLjkgLjYtMy44IDEuMS01LjcgMS43bC0yMC44LTE1Yy0xLS43LTIuMi0xLjItMy40LTEuM3MtMi41IDAtMy43IC41LTIuMiAxLjItMi45IDIuMi0xLjMgMi4xLTEuNSAzLjRsLTQuMiAyNS40Yy0xLjcgLjktMy40IDEuOC01LjIgMi43TDEyMC45IDQyLjZjLTEuMS0uNS0yLjQtLjctMy43LS42cy0yLjUgLjUtMy41IDEuMi0xLjkgMS43LTIuNSAyLjgtLjggMi40LS44IDMuNmwuOSAyNS44Yy0xLjUgMS4yLTMgMi40LTQuNCAzLjZMODEuOCA3M2MtMS4yLS4zLTIuNS0uMy0zLjcgLjFzLTIuMyAxLTMuMiAxLjktMS41IDItMS45IDMuMi0uNCAyLjUtLjEgMy43TDc4LjkgMTA3Yy0xLjIgMS40LTIuNCAyLjktMy42IDQuNGwtMjUuOC0uOWMtMS4zIDAtMi41IC4yLTMuNiAuOHMtMi4xIDEuNC0yLjggMi40LTEuMSAyLjItMS4yIDMuNSAuMSAyLjUgLjYgMy42bDEwLjcgMjMuNGMtLjkgMS43LTEuOCAzLjQtMi43IDUuMmwtMjUuNCA0LjFjLTEuMiAuMi0yLjQgLjctMy40IDEuNXMtMS43IDEuOC0yLjIgMi45LS43IDIuNC0uNSAzLjcgLjYgMi40IDEuMyAzLjRsMTUgMjAuOGMtLjYgMS45LTEuMSAzLjgtMS43IDUuN2wtMjQgOWMtMS4yIC40LTIuMiAxLjItMyAyLjFzLTEuNCAyLjEtMS42IDMuMy0uMiAyLjUgLjIgMy43IDEuMSAyLjMgMiAzLjFsMTguNyAxNy41Yy0uMiAyLS40IDMuOS0uNiA1LjlMMy41IDI0OS44Yy0xLjEgLjctMS45IDEuNi0yLjYgMi43cy0uOSAyLjMtLjkgMy42IC4zIDIuNSAuOSAzLjYgMS41IDIgMi42IDIuN2wyMS44IDEzLjVjLjIgMiAuMyAzLjkgLjYgNS45TDcuMSAyOTkuMWMtLjkgLjktMS42IDEuOS0yIDMuMXMtLjUgMi41LS4yIDMuNyAuOCAyLjQgMS42IDMuMyAxLjggMS43IDMgMi4xbDI0IDljLjYgMS45IDEuMSAzLjggMS43IDUuNmwtMTUgMjAuOGMtLjcgMS0xLjIgMi4yLTEuMyAzLjRzMCAyLjUgLjUgMy43IDEuMiAyLjIgMi4yIDIuOSAyLjEgMS4zIDMuNCAxLjVsMjUuNCA0LjJjLjkgMS43IDEuOCAzLjQgMi43IDUuMUw0Mi42IDM5MS4xYy0uNSAxLjEtLjcgMi40LS42IDMuNnMuNSAyLjUgMS4yIDMuNWMuNyAxLjEgMS42IDEuOSAyLjcgMi41czIuNCAuOCAzLjYgLjhsMjUuOC0uOWMxLjIgMS41IDIuNCAyLjkgMy42IDQuNEw3MyA0MzAuMmMtLjMgMS4yLS4zIDIuNSAuMSAzLjdzMSAyLjMgMS45IDMuMiAyIDEuNSAzLjIgMS45IDIuNSAuNCAzLjcgLjFsMjUuMi01LjljMS41IDEuMiAyLjkgMi40IDQuNCAzLjZsLS45IDI1LjhjMCAxLjMgLjIgMi41IC44IDMuNnMxLjQgMi4xIDIuNSAyLjggMi4yIDEuMSAzLjUgMS4yIDIuNS0uMSAzLjYtLjZsMjMuNC0xMC43YzEuNyAuOSAzLjQgMS44IDUuMSAyLjdsNC4yIDI1LjRjLjIgMS4yIC43IDIuNCAxLjUgMy40czEuOCAxLjggMi45IDIuMiAyLjQgLjcgMy43IC41IDIuNC0uNiAzLjQtMS4zbDIwLjgtMTVjMS45IC42IDMuOCAxLjEgNS42IDEuN2w5IDI0Yy40IDEuMiAxLjIgMi4yIDIuMSAzczIuMSAxLjQgMy4zIDEuNiAyLjUgLjIgMy43LS4yIDIuMy0xLjEgMy4xLTJsMTcuNS0xOC43YzIgLjIgMy45IC40IDUuOSAuNmwxMy41IDIxLjhjLjcgMS4xIDEuNiAxLjkgMi43IDIuNnMyLjMgLjkgMy42IC45IDIuNS0uMyAzLjYtLjkgMi0xLjUgMi43LTIuNmwxMy41LTIxLjhjMi0uMiAzLjktLjMgNS45LS42bDE3LjUgMTguN2MuOSAuOSAxLjkgMS42IDMuMSAyczIuNSAuNSAzLjcgLjIgMi40LS44IDMuMy0xLjYgMS43LTEuOCAyLjEtM2w5LTI0YzEuOS0uNiAzLjgtMS4xIDUuNi0xLjdsMjAuOCAxNWMxIC43IDIuMiAxLjIgMy40IDEuM3MyLjUgMCAzLjctLjUgMi4yLTEuMiAyLjktMi4yIDEuMy0yLjEgMS41LTMuNGw0LjItMjUuNGMxLjctLjkgMy40LTEuOCA1LjEtMi43bDIzLjQgMTAuN2MxLjEgLjUgMi40IC43IDMuNiAuNnMyLjQtLjUgMy41LTEuMiAxLjktMS42IDIuNS0yLjggLjgtMi40IC44LTMuNmwtLjktMjUuOGMxLjUtMS4yIDIuOS0yLjQgNC40LTMuNmwyNS4yIDUuOWMxLjIgLjMgMi41IC4zIDMuNy0uMXMyLjMtMSAzLjItMS45IDEuNS0yIDEuOS0zLjIgLjQtMi41IC4xLTMuN0w0MzMuMSA0MDVjMS4yLTEuNCAyLjQtMi45IDMuNi00LjRsMjUuOCAuOWMxLjMgLjEgMi41LS4yIDMuNi0uOHMyLjEtMS40IDIuOC0yLjVjLjctMSAxLjEtMi4yIDEuMi0zLjVzLS4xLTIuNS0uNi0zLjZsLTEwLjctMjMuNGMuOS0xLjcgMS44LTMuNCAyLjctNS4xbDI1LjQtNC4yYzEuMi0uMiAyLjQtLjcgMy40LTEuNXMxLjgtMS44IDIuMi0yLjkgLjctMi40IC41LTMuNy0uNi0yLjQtMS4zLTMuNGwtMTUtMjAuOGMuNi0xLjkgMS4xLTMuOCAxLjctNS42bDI0LTljMS4yLS40IDIuMi0xLjIgMy0yLjFzMS40LTIuMSAxLjYtMy4zIC4yLTIuNS0uMi0zLjctMS4xLTIuMy0yLTMuMWwtMTguNy0xNy41Yy4yLTEuOSAuNC0zLjkgLjYtNS45bDIxLjgtMTMuNWMxLjEtLjcgMS45LTEuNiAyLjYtMi43cy45LTIuMyAuOS0zLjYtLjMtMi41LS45LTMuNi0xLjUtMi0yLjYtMi43bDAgMHptLTE1MSAxMjkuMWMtMy42LS44LTcuNC0uMS0xMC41IDEuOXMtNS4zIDUuMi02IDguOGwtNy42IDM1LjdjLTI0LjYgMTEuMS01MS4zIDE2LjgtNzguMyAxNi43cy01My42LTYuMS03OC4xLTE3LjRsLTcuNi0zNS43Yy0uNC0xLjgtMS4xLTMuNS0yLjEtNXMtMi40LTIuOC0zLjktMy44LTMuMi0xLjctNS0yLTMuNi0uMy01LjQgLjFsLTMxLjUgNi44Yy01LjgtNi0xMS4zLTEyLjUtMTYuMy0xOS4ybDE1My4yIDBjMS43IDAgMi45LS4zIDIuOS0xLjlsMC01NC4yYzAtMS42LTEuMi0xLjktMi45LTEuOWwtNDQuOCAwIDAtMzQuNCA0OC41IDBjNC40IDAgMjMuNyAxLjMgMjkuOCAyNS45IDEuOSA3LjUgNi4yIDMyLjEgOS4xIDQwIDIuOSA4LjggMTQuNiAyNi41IDI3LjEgMjYuNWw3OSAwYy01LjMgNy4xLTExLjEgMTMuOC0xNy4zIDIwLjFsLTMyLjEtNi45em0yNS44IDM0LjVjMCAzLS45IDYtMi42IDguNXMtNCA0LjUtNi44IDUuNi01LjggMS41LTguOCAuOS01LjctMi03LjgtNC4yLTMuNi00LjgtNC4yLTcuOC0uMy02IC44LTguOCAzLjEtNS4yIDUuNi02LjkgNS40LTIuNiA4LjUtMi42bC40IDBjNCAuMSA3LjcgMS44IDEwLjUgNC42czQuMyA2LjcgNC4zIDEwLjZsLjEgMHptLTIyNS42LS43YzAgMy0uOSA2LTIuNiA4LjVzLTQuMSA0LjUtNi44IDUuNi01LjggMS41LTguOCAuOS01LjctMi03LjgtNC4yLTMuNi00LjgtNC4yLTcuOC0uMy02IC45LTguOCAzLjEtNS4yIDUuNi02LjggNS40LTIuNiA4LjUtMi42bC41IDBjNCAuMSA3LjcgMS44IDEwLjUgNC42czQuMyA2LjcgNC4zIDEwLjZsLjEgMHpNNjkuNiAyMzQuMmwzMi44LTE0LjZjMS43LS43IDMuMi0xLjggNC40LTMuMXMyLjItMi45IDIuOS00LjYgMS0zLjUgLjktNS4zLS41LTMuNi0xLjItNS4zbC02LjgtMTUuMiAyNi42IDAgMCAxMTkuNy01My42IDBjLTYuNi0yMy4yLTguNy00Ny42LTYuMS03MS42ek01OC4zIDE5OC4xYzAtMiAuNC00IDEuMi01LjhzMS45LTMuNSAzLjMtNC45IDMuMS0yLjUgNC45LTMuMyAzLjgtMS4yIDUuOC0xLjJsLjUgMGMzIC4xIDUuOSAxIDguMyAyLjhzNC4zIDQuMSA1LjQgNi45IDEuMyA1LjggLjcgOC44LTIuMSA1LjYtNC4zIDcuNy00LjkgMy41LTcuOCA0LjEtNiAuMi04LjctLjktNS4xLTMuMS02LjgtNS42LTIuNS01LjQtMi41LTguNGwwIDB6bTE1NS4yIDI0LjVsMC0zNS4zIDYzLjMgMGMzLjMgMCAyMy4xIDMuOCAyMy4xIDE4LjYgMCAxMi4zLTE1LjIgMTYuNy0yNy43IDE2LjdsLTU4LjcgMHpNMzk5IDMwNi43Yy05LjggMS4xLTIwLjYtNC4xLTIyLTEwLjEtNS44LTMyLjUtMTUuNC0zOS40LTMwLjYtNTEuNCAxOC45LTEyIDM4LjUtMjkuNiAzOC41LTUzLjMgMC0yNS41LTE3LjUtNDEuNi0yOS40LTQ5LjUtMTYuOC0xMS0zNS4zLTEzLjItNDAuMy0xMy4ybC0xOTguOSAwYzI3LjUtMzAuNyA2NC40LTUxLjUgMTA0LjktNTkuMmwyMy41IDI0LjZjMS4zIDEuMyAyLjggMi40IDQuNCAzLjFzMy41IDEuMSA1LjMgMS4yIDMuNi0uMyA1LjMtLjkgMy4yLTEuNyA0LjYtMi45bDI2LjMtMjVjMjYuOCA1IDUyLjEgMTUuOCA3NC4zIDMxLjZzNDAuNiAzNi4yIDU0LjEgNTkuOWwtMTggNDAuNmMtMS41IDMuNC0xLjUgNy4yLS4yIDEwLjZzMy45IDYuMiA3LjMgNy43bDM0LjYgMTUuM2MxLjEgMTAuOCAxLjIgMjEuNyAuNCAzMi41bC0xOS4zIDBjLTEuOSAwLTIuNyAxLjMtMi43IDMuMWwwIDguOGMwIDIwLjgtMTEuNyAyNS4zLTIyIDI2LjV6TTI0MCA2MC4yYzAtNCAxLjYtNy45IDQuNS0xMC43czYuNy00LjUgMTAuNy00LjVsLjQgMGMzIC4xIDUuOSAxIDguNCAyLjhzNC4zIDQuMSA1LjQgNi45IDEuMyA1LjggLjcgOC44LTIuMSA1LjYtNC4zIDcuNy00LjkgMy41LTcuOCA0LTYgLjItOC43LS45LTUuMS0zLjEtNi44LTUuNi0yLjUtNS40LTIuNS04LjR6TTQzNi44IDIxNGMtMiAwLTQtLjQtNS44LTEuMnMtMy41LTEuOS00LjktMy4zLTIuNS0zLjEtMy4zLTQuOS0xLjItMy44LTEuMi01LjggLjQtNCAxLjItNS44IDEuOS0zLjUgMy4zLTQuOSAzLjEtMi41IDQuOS0zLjMgMy44LTEuMiA1LjgtMS4ybC40IDBjNCAuMSA3LjkgMS43IDEwLjcgNC42czQuNCA2LjggNC4zIDEwLjgtMS43IDcuOS00LjYgMTAuNy02LjggNC40LTEwLjggNC4zeiJdfSx1bXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG9ybmJpbGwiLGljb246WzUxMiw1MTIsW10sImY1OTIiLCJNNzYuOCAzNzAuM2MxIDcuOC0uNCAxNS44LTQuMSAyMi44cy05LjYgMTIuNi0xNi43IDE2LjEtMTUuMSA0LjctMjIuOSAzLjMtMTUtNS4xLTIwLjYtMTAuNy05LjItMTIuOS0xMC41LTIwLjcgMC0xNS44IDMuNi0yMi45IDkuMy0xMi44IDE2LjMtMTYuNSAxNS01IDIyLjktMy45Yy03OC4zLTExMS4zIDUyLTE5MC41IDUyLTE5MC41LTUuOSA0My04LjIgOTEuMi04LjIgOTEuMi02Ny4zIDQxLjUgLjkgNjQuMSAzOS44IDcyLjkgOS45IDI3IDI3LjggNTAuMiA1MS40IDY2LjdzNTEuNiAyNS4zIDgwLjMgMjUuM2MxLjkgMCAzLjgtLjIgNS43LS4zbC4xIDE4LjljLTk5LjIgMS40LTE1OC43LTI5LjEtMTg4LjktNTEuNnptMTA4LTMyNy43Yy45LTcuMi0uMi0xNC42LTMuNC0yMS4yLTMtNi4yLTcuNi0xMS41LTEzLjQtMTUuM3MtMTIuNS01LjktMTkuNC02LjItMTMuOCAxLjQtMTkuOCA0LjctMTEuMSA4LjMtMTQuNSAxNC4zLTUuMiAxMi44LTUgMTkuNyAyLjIgMTMuNyA1LjkgMTkuNSA4LjkgMTAuNiAxNS4xIDEzLjYgMTMuMSA0LjQgMjAgMy45Yy0yMi42IDI5LjktNTMuOCA4OS42LTUyLjQgMTkwbDIxLjgtLjJjMC0uOS0uMS0xLjgtLjEtMi43IDAtMjggOC40LTU1LjMgMjQuMS03OC41czM3LjktNDEuMiA2My44LTUxLjZjOC0zNy43IDMwLjctMTE0LjMgNzMuOC00NC4zIDAgMCA0OC4xIDIuNCA5MS4yIDguMiAwIDAtNzcuOC0xMjgtMTg3LjYtNTQuMWwwIDB6TTQ4OSAxNzYuOGM2LjMtMyAxMS43LTcuNyAxNS41LTEzLjZzNS45LTEyLjcgNi4xLTE5LjgtMS42LTE0LTUuMi0yMC04LjctMTEtMTQuOS0xNC4zLTEzLjItNC44LTIwLjItNC40LTEzLjggMi44LTE5LjUgNi45LTEwLjIgOS42LTEzIDE2LjEtMy43IDEzLjYtMi43IDIwLjVjLTMxLjctMjEuOS04OS44LTQ5LjEtMTgzLjQtNDcuN2wuMSAyMi41YzIuNy0uMiA1LjQtLjQgOC4xLS40IDI4LjEgMCA1NS42IDguNSA3OC45IDI0LjNzNDEuMiAzOC4zIDUxLjYgNjQuNWMzOS4xIDkgMTA1LjEgMzEuNiAzOC41IDcyLjUgMCAwLTIuMyA0OC4xLTguMiA5MS4yIDAgMCAxMzMuNC04MS4yIDQ5LTE5NC42IDYuNiAuNiAxMy4zLS42IDE5LjMtMy41bDAgMHpNMzc0LjQgNDM2LjJjMjEuNC0zMi41IDQ2LjQtODkuNyA0NS4xLTE3OS43bC0xOS41IC4xYy4xIDIuMSAuMyA0LjEgLjMgNi4yIDAgMjguNi04LjggNTYuNS0yNS4xIDgwcy0zOS41IDQxLjQtNjYuMyA1MS40Yy04LjkgMzktMzEuNCAxMDYuNy03Mi44IDM5LjUgMCAwLTQ4LjEtMi4zLTkxLjItOC4yIDAgMCA3OS45IDEzMS4zIDE5MS45IDUxIC4zIDQuOSAxLjUgOS42IDMuNiAxNCAyLjkgNi4xIDcuNSAxMS40IDEzLjEgMTUuMXMxMi4yIDYgMTkgNi40IDEzLjYtMS4xIDE5LjYtNC4yIDExLjEtNy44IDE0LjctMTMuNiA1LjYtMTIuNCA1LjctMTkuMi0xLjUtMTMuNS00LjgtMTkuNC04LjItMTAuOS0xNC4xLTE0LjMtMTIuNi01LjItMTkuNC01LjFsMC0uMXoiXX0scG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBocCIsaWNvbjpbNjQwLDUxMixbXSwiZjQ1NyIsIk0zMjAgMTA0LjVjMTcxLjQgMCAzMDMuMiA3Mi4yIDMwMy4yIDE1MS41UzQ5MS4zIDQwNy41IDMyMCA0MDcuNUMxNDguNiA0MDcuNSAxNi44IDMzNS4zIDE2LjggMjU2UzE0OC43IDEwNC41IDMyMCAxMDQuNXptMC0xNi44QzE0My4zIDg3LjcgMCAxNjMgMCAyNTZTMTQzLjMgNDI0LjMgMzIwIDQyNC4zIDY0MCAzNDkgNjQwIDI1NiA0OTYuNyA4Ny43IDMyMCA4Ny43ek0yMTguMiAyNDIuNWMtNy45IDQwLjUtMzUuOCAzNi4zLTcwLjEgMzYuM2wxMy43LTcwLjZjMzggMCA2My44LTQuMSA1Ni40IDM0LjN6TTk3LjQgMzUwLjNsMzYuNyAwIDguNy00NC44YzQxLjEgMCA2Ni42IDMgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43bC03MC43IDAtMzIuNyAxNjguN3pNMjgzLjEgMTM2LjdsMzYuNSAwLTguNyA0NC44YzMxLjUgMCA2MC43LTIuMyA3NC44IDEwLjcgMTQuOCAxMy42IDcuNyAzMS04LjMgMTEzLjFsLTM3IDBjMTUuNC03OS40IDE4LjMtODYgMTIuNy05Mi01LjQtNS44LTE3LjctNC42LTQ3LjQtNC42bC0xOC44IDk2LjYtMzYuNSAwIDMyLjctMTY4LjZ6TTUwNSAyNDIuNWMtOCA0MS4xLTM2LjcgMzYuMy03MC4xIDM2LjNsMTMuNy03MC42YzM4LjIgMCA2My44LTQuMSA1Ni40IDM0LjN6TTM4NC4yIDM1MC4zbDM2LjggMCA4LjctNDQuOGM0My4yIDAgNjcuMSAyLjUgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43bC03MC43IDAtMzIuOCAxNjguN3oiXX0sZm1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc3F1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTdkNSIsIk0yOTAuMiA1MTJjLTYyLjYgMC0xMTkuOS0yMi45LTE2NC4yLTYwLjhMMTcgNDY2LjEgNTkuMSAzNjIuMmMtMTQuNy0zMi40LTIyLjktNjguMy0yMi45LTEwNi4yIDAtMTQxLjQgMTEzLjctMjU2IDI1NC0yNTYgMTQwLjMgMCAyNTQgMTE0LjYgMjU0IDI1NiAwIDE0MS40LTExMy43IDI1Ni0yNTQgMjU2ek00MjguOSAyNTUuM2wwLS43QzQyOC45IDE4MC43IDM3Ni44IDEyOCAyODcgMTI4bC05NyAwIDAgMjU2IDk1LjYgMGM5MC41IDAgMTQzLjQtNTQuOSAxNDMuNC0xMjguN3pNMjg4IDMyMS4xbC0yOC40IDAgMC0xMzAuMiAyOC40IDBjNDEuNyAwIDY5LjMgMjMuOCA2OS4zIDY0LjdsMCAuN2MwIDQxLjMtMjcuNyA2NC43LTY5LjMgNjQuN3oiXX0saG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IjUwMHB4IixpY29uOlszODQsNTEyLFtdLCJmMjZlIiwiTTcxLjggMzQ0LjNjLTYuNS0xNC4yLTYuOS0xOC4zIDcuNC0yMy4xIDI1LjYtOCA4IDkuMiA0My4yIDQ5LjJsLjMgMCAwLTkzLjljMS4yLTUwLjIgNDQtOTIuMiA5Ny43LTkyLjIgNTMuOSAwIDk3LjcgNDMuNSA5Ny43IDk2LjggMCA2My40LTYwLjggMTEzLjItMTI4LjUgOTMuMy0xMC41LTQuMi0yLjEtMzEuNyA4LjUtMjguNiA1MyAwIDg5LjQtMTAuMSA4OS40LTY0LjQgMC02MS03Ny4xLTg5LjYtMTE2LjktNDQuNi0yMy41IDI2LjQtMTcuNiA0Mi4xLTE3LjYgMTU3LjYgNTAuNyAzMSAxMTguMyAyMiAxNjAuNC0yMC4xIDI0LjgtMjQuOCAzOC41LTU4IDM4LjUtOTMgMC0zNS4yLTEzLjgtNjguMi0zOC44LTkzLjMtMjQuOC0yNC44LTU3LjgtMzguNS05My4zLTM4LjVTMTUxIDE2My4zIDEyNi4zIDE4OGMtLjMgLjMtMTYgMTYuNS0yMS4yIDIzLjlsLS41IC42Yy0zLjMgNC43LTYuMyA5LjEtMjAuMSA2LjEtNi45LTEuNy0xNC4zLTUuOC0xNC4zLTExLjhMNzAuMiAyMGMwLTUgMy45LTEwLjUgMTAuNS0xMC41TDMyMiA5LjVjOC4zIDAgOC4zIDExLjYgOC4zIDE1LjEgMCAzLjkgMCAxNS4xLTguMyAxNS4xbC0yMjMuMiAwIDAgMTMyLjkgLjMgMGMxMDQuMi0xMDkuOCAyODIuOC0zNiAyODIuOCAxMDguOSAwIDE3OC4xLTI0NC44IDIyMC4zLTMxMC4xIDYyLjh6TTEzNS4xIDgzLjVjLS41IDQuMiA0LjYgMjQuNSAxNC42IDIwLjYgMTI0LjgtNDcuNSAyMDIuOCA0MC40IDIwOS40IDQwLjQgNC44IDAgMjIuOC0xNS4zIDE0LjMtMjIuOC05My4yLTg5LTIzNC41LTU3LTIzOC4zLTM4LjJ6TTM2MS41IDQxNC43Yy0xMTAgMTA5LjktMjk5IDYwLjgtMzMyLTEwNC4yIDAtMTIuMi0zMC40LTcuNC0yOC45IDMuMyAyNCAxNzMuNCAyNDYgMjU2LjkgMzgxLjYgMTIxLjMgNi45LTcuOC0xMi42LTI4LjQtMjAuNy0yMC40ek0xODIuMSAzMDYuNmMwIDQgNC4zIDcuMyA1LjUgOC41IDMgMyA2LjEgNC40IDguNSA0LjQgMy44IDAgMi42IC4yIDIyLjMtMTkuNSAxOS42IDE5LjMgMTkuMSAxOS41IDIyLjMgMTkuNSA1LjQgMCAxOC41LTEwLjQgMTAuNy0xOC4ybC0xNy4zLTE3LjMgMTguMi0xOC4yYzYuMy02LjgtMTAuMS0yMS44LTE2LjItMTUuN0wyMTguMiAyNjhjLTE4LjYtMTguOC0xOC40LTE5LjUtMjEuNS0xOS41LTUgMC0xOCAxMS43LTEyLjQgMTcuM0wyMDIuNSAyODRjLTE4LjEgMTcuOS0yMC40IDE5LjItMjAuNCAyMi42eiJdfSxtbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWZmaWxpYXRldGhlbWUiLGljb246WzUxMiw1MTIsW10sImYzNmIiLCJNMTU5LjcgMjM3LjRDMTA4LjQgMzA4LjMgNDMuMSAzNDguMiAxNCAzMjYuNi0xNS4yIDMwNC45IDIuOCAyMzAgNTQuMiAxNTkuMSAxMDUuNSA4OC4yIDE3MC44IDQ4LjMgMTk5LjkgNjkuOXMxMS4xIDk2LjYtNDAuMiAxNjcuNXptMzUxLjItNTcuM2MtNzMuOCAxMjMuNC0xOTEuOSAxODcuNy0yNjQuNSAxNDMuNi0yNS0xNS4yLTQxLjMtNDEuMi00OS03My44LTMzLjYgNjQuOC05Mi44IDExMy44LTE2NC4xIDEzMy4yIDQ5LjggNTkuMyAxMjQuMSA5Ni45IDIwNyA5Ni45IDE1MCAwIDI3MS42LTEyMy4xIDI3MS42LTI3NC45IC4xLTguNS0uMy0xNi44LTEtMjV6Il19LGdtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWQtcml2ZXIiLGljb246WzQ0OCw1MTIsW10sImYzZTMiLCJNMzUzLjIgMzJMOTQuOCAzMkM0Mi40IDMyIDAgNzQuNCAwIDEyNi44TDAgMzg1LjJDMCA0MzcuNiA0Mi40IDQ4MCA5NC44IDQ4MGwyNTguNCAwYzUyLjQgMCA5NC44LTQyLjQgOTQuOC05NC44bDAtMjU4LjRDNDQ4IDc0LjQgNDA1LjYgMzIgMzUzLjIgMzJ6TTE0NC45IDIwMC45bDAgNTYuM2MwIDI3LTIxLjkgNDguOS00OC45IDQ4LjlsMC0xNTQuMmMwLTEzLjIgMTAuNy0yMy45IDIzLjktMjMuOWwxNTQuMiAwYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwtNTYuMyAwYy0xMi4zLS42LTI0LjYgMTEuNi0yNCAyNHptMTc2LjMgNzJsLTU2LjMgMGMtMTIuMy0uNi0yNC42IDExLjYtMjQgMjRsMCA1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwwLTE1NC4yYzAtMTMuMiAxMC43LTIzLjkgMjMuOS0yMy45bDE1NC4yIDBjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45eiJdfSx0dWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHdpdHRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjA5OSIsIk00NTkuNCAxNTEuN2MuMyA0LjUgLjMgOS4xIC4zIDEzLjYgMCAxMzguNy0xMDUuNiAyOTguNi0yOTguNiAyOTguNi01OS41IDAtMTE0LjctMTcuMi0xNjEuMS00Ny4xIDguNCAxIDE2LjYgMS4zIDI1LjMgMS4zIDQ5LjEgMCA5NC4yLTE2LjYgMTMwLjMtNDQuOC00Ni4xLTEtODQuOC0zMS4yLTk4LjEtNzIuOCA2LjUgMSAxMyAxLjYgMTkuOCAxLjYgOS40IDAgMTguOC0xLjMgMjcuNi0zLjYtNDguMS05LjctODQuMS01Mi04NC4xLTEwM2wwLTEuM2MxNCA3LjggMzAuMiAxMi43IDQ3LjQgMTMuMy0yOC4zLTE4LjgtNDYuOC01MS00Ni44LTg3LjQgMC0xOS41IDUuMi0zNy40IDE0LjMtNTMgNTEuNyA2My43IDEyOS4zIDEwNS4zIDIxNi40IDEwOS44LTEuNi03LjgtMi42LTE1LjktMi42LTI0IDAtNTcuOCA0Ni44LTEwNC45IDEwNC45LTEwNC45IDMwLjIgMCA1Ny41IDEyLjcgNzYuNyAzMy4xIDIzLjctNC41IDQ2LjUtMTMuMyA2Ni42LTI1LjMtNy44IDI0LjQtMjQuNCA0NC44LTQ2LjEgNTcuOCAyMS4xLTIuMyA0MS42LTguMSA2MC40LTE2LjItMTQuMyAyMC44LTMyLjIgMzkuMy01Mi42IDU0LjN6Il19LGJtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3J0LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsW10sImYyODYiLCJNNDg5LjUgMjg3LjlsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTE3OC4zYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtNi04LTQuNi0xMS43LTQuNmwwLTM4YzguMy0yIDE3LjEtMy40IDI1LjctMy40IDEwLjkgMCAyMC45IDQuMyAzMS40IDQuMyA0LjYgMCAyNy43LTEuMSAyNy43LThsMC02MGMwLTIuNi0yLTQuNi00LjYtNC42LTUuMSAwLTE1LjEgNC4zLTI0IDQuMy05LjcgMC0yMC45LTQuMy0zMi42LTQuMy04IDAtMTYgMS4xLTIzLjcgMi45bDAtNC45YzUuNC0yLjYgOS4xLTguMyA5LjEtMTQuMyAwLTIwLjctMzEuNC0yMC44LTMxLjQgMCAwIDYgMy43IDExLjcgOS4xIDE0LjNsMCAxMTEuN2MtMy43IDAtMTEuNy0xLjQtMTEuNyA0LjZsMCAzMi0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi4zIDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAxNzguMy0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAyMTkuNSAxODIuOSAwIDAtOTZjMC03Mi42IDEwOS43LTcyLjYgMTA5LjcgMGwwIDk2IDE4Mi45IDAgMC0yMTkuNWMuMS0yLjYtMS45LTQuNi00LjUtNC42em0tMjg4LjEtNC41YzAgMi42LTIgNC42LTQuNiA0LjZsLTI3LjQgMGMtMi42IDAtNC42LTItNC42LTQuNmwwLTY0YzAtMi42IDItNC42IDQuNi00LjZsMjcuNCAwYzIuNiAwIDQuNiAyIDQuNiA0LjZsMCA2NHptMTQ2LjQgMGMwIDIuNi0yIDQuNi00LjYgNC42bC0yNy40IDBjLTIuNiAwLTQuNi0yLTQuNi00LjZsMC02NGMwLTIuNiAyLTQuNiA0LjYtNC42bDI3LjQgMGMyLjYgMCA0LjYgMiA0LjYgNC42bDAgNjR6Il19LHhtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaXhlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTA1NiIsIk04Mi42IDc2LjFjLTMuOC01LjEtOC43LTkuNC0xNC4yLTEyLjVzLTExLjctNS4xLTE4LjEtNS43LTEyLjggLjEtMTguOCAyLjItMTEuNiA1LjMtMTYuMyA5LjZjLTE3LjYgMTYuMi0xOSA0My41LTQuOCA2Mi44bDkxLjggMTIzLTkyLjMgMTI0LjFjLTE0LjIgMTkuMy0xMy4xIDQ2LjYgNC43IDYyLjggNC43IDQuMyAxMC4zIDcuNiAxNi4zIDkuNnMxMi41IDIuOCAxOC44IDIuMiAxMi41LTIuNSAxOC4xLTUuNyAxMC40LTcuNCAxNC4yLTEyLjVMMjEwLjkgMjYyLjdjMS41LTIuMSAyLjMtNC42IDIuMy03LjFzLS44LTUtMi4zLTcuMUw4Mi42IDc2LjF6TTQzOC4yIDM3OS42bC05Mi4zLTEyNC4xIDkxLjgtMTIzYzE0LjItMTkuMiAxMi44LTQ2LjYtNC43LTYyLjgtNC43LTQuMy0xMC4zLTcuNi0xNi4zLTkuNnMtMTIuNS0yLjgtMTguOC0yLjItMTIuNSAyLjUtMTguMSA1LjctMTAuNCA3LjQtMTQuMiAxMi41bC0xMjggMTcyLjFjLTEuNSAyLjEtMi4zIDQuNi0yLjMgNy4xcy44IDUgMi4zIDcuMUwzNjYgNDM1LjljMy44IDUuMSA4LjcgOS40IDE0LjIgMTIuNXMxMS43IDUuMSAxOC4xIDUuNyAxMi44LS4xIDE4LjgtMi4yIDExLjYtNS4zIDE2LjMtOS42YzE3LjgtMTYuMiAxOS00My41IDQuNy02Mi44eiJdfSx2bXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibHlmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjNjMyIsIk0wIDgxLjFsNzcuOCAwIDAgMjA4LjdjMCAzMy4xIDE1IDUyLjggMjcuMiA2MS0xMi43IDExLjEtNTEuMiAyMC45LTgwLjItMi44LTE3LTE0LTI0LjgtMzcuMy0yNC44LTU5TDAgODEuMXpNNDg1LjkgMjU0LjZsMC0yMiAyMy44IDAgMC03Ni44LTI2LjEgMGMtMTAuMS00Ni4zLTUxLjItODAuNy0xMDAuMy04MC43LTU2LjYgMC0xMDIuNyA0Ni0xMDIuNyAxMDIuN2wwIDE3OS4yYzE2IDIuMyAzNS40LS4zIDUxLjctMTQgMTcuMS0xNCAyNC44LTM3LjIgMjQuOC01OWwwLTYuNyAzOC44IDAgMC03Ni44LTM4LjggMCAwLTIzLjNjMC0zNC42IDUyLjItMzQuNiA1Mi4yIDBsMCA3Ny4xYzAgNTYuNiA0NiAxMDIuNyAxMDIuNyAxMDIuN2wwLTc2LjVjLTE0LjUgMC0yNi4xLTExLjctMjYuMS0yNS45em0tMjk0LjMtOTlsMCAxMTNjMCAxNS40LTIzLjggMTUuNC0yMy44IDBsMC0xMTMtNzYuOCAwIDAgMTMyLjdjMCAyMy44IDggNTQgNDUgNjMuOSAzNyA5LjggNTguMi0xMC42IDU4LjItMTAuNi0yLjEgMTMuNC0xNC41IDIzLjMtMzQuOSAyNS4zLTE1LjUgMS42LTM1LjItMy42LTQ1LTcuOGwwIDcwLjNjMjUuMSA3LjUgNTEuNSA5LjggNzcuNiA0LjcgNDcuMS05LjEgNzYuOC00OC40IDc2LjgtMTAwLjhsMC0xNzguMi03Ny4xIDAgMCAuNXoiXX0seW1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcGxlLXBheSIsaWNvbjpbNjQwLDUxMixbXSwiZjQxNSIsIk0xMTYuOSAxNTguNWMtNy41IDguOS0xOS41IDE1LjktMzEuNSAxNC45LTEuNS0xMiA0LjQtMjQuOCAxMS4zLTMyLjYgNy41LTkuMSAyMC42LTE1LjYgMzEuMy0xNi4xIDEuMiAxMi40LTMuNyAyNC43LTExLjEgMzMuOHptMTAuOSAxNy4yYy0xNy40LTEtMzIuMyA5LjktNDAuNSA5LjktOC40IDAtMjEtOS40LTM0LjgtOS4xLTE3LjkgLjMtMzQuNSAxMC40LTQzLjYgMjYuNS0xOC44IDMyLjMtNC45IDgwIDEzLjMgMTA2LjMgOC45IDEzIDE5LjUgMjcuMyAzMy41IDI2LjggMTMuMy0uNSAxOC41LTguNiAzNC41LTguNiAxNi4xIDAgMjAuOCA4LjYgMzQuOCA4LjQgMTQuNS0uMyAyMy42LTEzIDMyLjUtMjYgMTAuMS0xNC44IDE0LjMtMjkuMSAxNC41LTI5LjktLjMtLjMtMjgtMTAuOS0yOC4zLTQyLjktLjMtMjYuOCAyMS45LTM5LjUgMjIuOS00MC4zLTEyLjUtMTguNi0zMi0yMC42LTM4LjgtMjEuMXptMTAwLjQtMzYuMmwwIDE5NC45IDMwLjMgMCAwLTY2LjYgNDEuOSAwYzM4LjMgMCA2NS4xLTI2LjMgNjUuMS02NC4zcy0yNi40LTY0LTY0LjEtNjRsLTczLjIgMHpNMjU4LjUgMTY1bDM0LjkgMGMyNi4zIDAgNDEuMyAxNCA0MS4zIDM4LjZzLTE1IDM4LjgtNDEuNCAzOC44bC0zNC44IDAgMC03Ny40ek00MjAuNyAzMzUuOWMxOSAwIDM2LjYtOS42IDQ0LjYtMjQuOWwuNiAwIDAgMjMuNCAyOCAwIDAtOTdjMC0yOC4xLTIyLjUtNDYuMy01Ny4xLTQ2LjMtMzIuMSAwLTU1LjkgMTguNC01Ni44IDQzLjZsMjcuMyAwYzIuMy0xMiAxMy40LTE5LjkgMjguNi0xOS45IDE4LjUgMCAyOC45IDguNiAyOC45IDI0LjVsMCAxMC44LTM3LjggMi4zYy0zNS4xIDIuMS01NC4xIDE2LjUtNTQuMSA0MS41IC4xIDI1LjIgMTkuNyA0MiA0Ny44IDQyem04LjItMjMuMWMtMTYuMSAwLTI2LjQtNy44LTI2LjQtMTkuNiAwLTEyLjMgOS45LTE5LjQgMjguOC0yMC41bDMzLjYtMi4xIDAgMTFjMCAxOC4yLTE1LjUgMzEuMi0zNiAzMS4yem0xMDIuNSA3NC42YzI5LjUgMCA0My40LTExLjMgNTUuNS00NS40bDUzLjEtMTQ5LTMwLjggMC0zNS42IDExNS4xLS42IDAtMzUuNi0xMTUuMS0zMS42IDAgNTEuMiAxNDEuOS0yLjggOC42Yy00LjYgMTQuNi0xMi4xIDIwLjMtMjUuNSAyMC4zLTIuNCAwLTctLjMtOC45LS41bDAgMjMuNGMxLjggLjQgOS4zIC43IDExLjYgLjd6Il19LHdtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcnRzdGF0aW9uIixpY29uOls1MTIsNTEyLFtdLCJmNzdhIiwiTTIuMSAzNzcuNGw0MyA3NC4zYzQuMyA4LjUgMTAuOCAxNS43IDE4LjkgMjAuN3MxNy40IDcuNiAyNyA3LjZsMjg1LjQgMC01OS4yLTEwMi42LTMxNS4xIDB6TTUwMS45IDM1MEwzMzUuNyA1OS4zYy00LjQtOC4yLTEwLjktMTUuMS0xOC45LTIwUzI5OS43IDMyIDI5MC40IDMybC04OC40IDAgMjU3LjMgNDQ3LjYgNDAuNy03MC41YzEuOS0zLjIgMjEtMjkuNyAyLTU5LjF6TTI3NS4yIDMwNC41bC0xMTUuNS0yMDAtMTE1LjUgMjAwIDIzMSAweiJdfSxrbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm9kZS1qcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkMyIsIk0yMjQuNSA1MDhjLTYuNyAwLTEzLjUtMS44LTE5LjQtNS4ybC02MS43LTM2LjVjLTkuMi01LjItNC43LTctMS43LTggMTIuMy00LjMgMTQuOC01LjIgMjcuOS0xMi43IDEuNC0uOCAzLjItLjUgNC42IC40bDQ3LjQgMjguMWMxLjcgMSA0LjEgMSA1LjcgMEw0MTIgMzY3LjVjMS43LTEgMi44LTMgMi44LTVsMC0yMTMuMmMwLTIuMS0xLjEtNC0yLjktNS4xTDIyNy4zIDM3LjdjLTEuNy0xLTQtMS01LjcgMEwzNy4xIDE0NC4zYy0xLjggMS0yLjkgMy0yLjkgNS4xbDAgMjEzLjFjMCAyIDEuMSA0IDIuOSA0LjlsNTAuNiAyOS4yYzI3LjUgMTMuNyA0NC4zLTIuNCA0NC4zLTE4LjdsMC0yMTAuNGMwLTMgMi40LTUuMyA1LjQtNS4zbDIzLjQgMGMyLjkgMCA1LjQgMi4zIDUuNCA1LjNsMCAyMTAuNWMwIDM2LjYtMjAgNTcuNi01NC43IDU3LjYtMTAuNyAwLTE5LjEgMC00Mi41LTExLjZMMjAuNiAzOTYuMWMtMTItNi45LTE5LjQtMTkuOC0xOS40LTMzLjdsMC0yMTMuMWMwLTEzLjggNy40LTI2LjggMTkuNC0zMy43TDIwNS4xIDljMTEuNy02LjYgMjcuMi02LjYgMzguOCAwTDQyOC42IDExNS43YzEyIDYuOSAxOS40IDE5LjggMTkuNCAzMy43bDAgMjEzLjFjMCAxMy44LTcuNCAyNi43LTE5LjQgMzMuN0wyNDMuOSA1MDIuOGMtNS45IDMuNC0xMi42IDUuMi0xOS40IDUuMnpNMzczLjYgMjk3LjljMC0zOS45LTI3LTUwLjUtODMuNy01OC01Ny40LTcuNi02My4yLTExLjUtNjMuMi0yNC45IDAtMTEuMSA0LjktMjUuOSA0Ny40LTI1LjkgMzcuOSAwIDUxLjkgOC4yIDU3LjcgMzMuOCAuNSAyLjQgMi43IDQuMiA1LjIgNC4ybDI0IDBjMS41IDAgMi45LS42IDMuOS0xLjdzMS41LTIuNiAxLjQtNC4xYy0zLjctNDQuMS0zMy02NC42LTkyLjItNjQuNi01Mi43IDAtODQuMSAyMi4yLTg0LjEgNTkuNSAwIDQwLjQgMzEuMyA1MS42IDgxLjggNTYuNiA2MC41IDUuOSA2NS4yIDE0LjggNjUuMiAyNi43IDAgMjAuNi0xNi42IDI5LjQtNTUuNSAyOS40LTQ4LjkgMC01OS42LTEyLjMtNjMuMi0zNi42LS40LTIuNi0yLjYtNC41LTUuMy00LjVsLTIzLjkgMGMtMyAwLTUuMyAyLjQtNS4zIDUuMyAwIDMxLjEgMTYuOSA2OC4yIDk3LjggNjguMiA1OC40LS4xIDkyLTIzLjIgOTItNjMuNHoiXX0sU21yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVuY2hhcnRlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4NCIsIk0xNzEuOCAyMzIuOGMxLjEgMCAyLjEtLjMgMy0uOXMxLjYtMS40IDItMi40YzIuMi05LjggNy40LTE4LjYgMTQuOS0yNS4zIDEuMi0uOCAxLjctMi41IDEuNy00LjEtLjEtLjctLjMtMS4zLS42LTEuOXMtLjktMS4xLTEuNC0xLjRMNzQuNSAxMjguNSAxNDkuMSA4NWMxLjUtLjggMi43LTIgMy42LTMuNXMxLjQtMy4xIDEuNC00LjhjMC0xLjctLjQtMy40LTEuMy00LjlzLTIuMi0yLjctMy43LTMuNEwxMjYuNyA1NS42Yy0xLjUtLjgtMy4xLTEuMi00LjgtMS4ycy0zLjMgLjQtNC44IDEuMkwxNyAxMTMuNmMtMS41IC44LTIuNyAyLTMuNiAzLjVzLTEuNCAzLjEtMS40IDQuOEwxMiAyMzdjMCAxLjcgLjQgMy40IDEuMyA0LjlzMi4yIDIuNyAzLjcgMy40bDIyLjQgMTIuOGMxLjUgLjkgMy4yIDEuMyA1IDEuMiAyLjQgLjEgNC44LS44IDYuNi0yLjUgMS44LTEuOSAyLjgtNC40IDIuOS03bDAtODUuMyAxMTUuOSA2Ny45Yy42IC4zIDEuNCAuNCAyLjEgLjR6TTMyMy40IDM3Ny43Yy0xLjcgLjEtMy40IC41LTUgMS4ybC03NC41IDQzLjEgMC0xMzQuMmMwLTIuOS0yLjktNS44LTYuMi00LjYtOS40IDIuOC0xOS41IDMtMjkgLjQtLjctLjItMS41LS4yLTIuMi0uMXMtMS40IC40LTIgLjktMS4xIDEtMS40IDEuNy0uNSAxLjQtLjUgMi4xbDAgMTMzLjMtNzQuNS00My4xYy0xLjUtLjktMy4yLTEuMy01LTEuMi0yLjUgMC00LjkgMS02LjcgMi44cy0yLjggNC4yLTIuOCA2LjdsMCAyNi4xYzAgMS43IC40IDMuNCAxLjMgNC45czIuMiAyLjcgMy43IDMuNGwxMDAuMiA1Ny42YzEuNSAuOSAzLjIgMS4zIDUgMS4yIDEuNyAwIDMuNC0uNCA1LTEuMmwxMDAuMi01Ny42YzEuNS0uOCAyLjctMiAzLjYtMy41czEuNC0zLjEgMS40LTQuOGwwLTI2LjFjLS44LTQuNi01LjQtOS4xLTEwLjQtOS4xek0yODYuMSA3OGEyMyAyMyAwIDEgMCAwLTQ2IDIzIDIzIDAgMSAwIDAgNDZ6bTYzLjYtMTAuMWEyMyAyMyAwIDEgMCAwIDQ2IDIzIDIzIDAgMSAwIDAtNDZ6bTYzLjIgODMuN2EyMyAyMyAwIDEgMCAwLTQ2IDIzIDIzIDAgMSAwIDAgNDZ6bS02My4yLTkuMmEyMyAyMyAwIDEgMCAwIDQ2IDIzIDIzIDAgMSAwIDAtNDZ6bS02My42IDgzLjJjNC41IDAgOS0xLjMgMTIuOC0zLjlzNi43LTYuMSA4LjUtMTAuMyAyLjItOC44IDEuMy0xMy4zLTMuMS04LjYtNi4zLTExLjgtNy4zLTUuNC0xMS44LTYuMy05LjEtLjQtMTMuMyAxLjMtNy44IDQuNy0xMC4zIDguNS0zLjkgOC4yLTMuOSAxMi44YzAgMyAuNiA2IDEuOCA4LjhzMi45IDUuMyA1IDcuNSA0LjcgMy44IDcuNSA1IDUuOCAxLjggOC44IDEuOGwwIDB6TTIyNCAyNjJjNC41IDAgOS0xLjQgMTIuOC0zLjlzNi43LTYuMSA4LjUtMTAuMyAyLjItOC44IDEuMy0xMy4zLTMuMS04LjYtNi4zLTExLjgtNy4zLTUuNC0xMS44LTYuMy05LjEtLjQtMTMuMyAxLjMtNy44IDQuNy0xMC4zIDguNS0zLjkgOC4yLTMuOSAxMi44YzAgMyAuNiA2IDEuNyA4LjhzMi44IDUuMyA1IDcuNSA0LjcgMy44IDcuNSA1IDUuOCAxLjggOC44IDEuOGwwIDB6bTE4OC45LTgyLjRjLTQuNiAwLTkgMS4zLTEyLjggMy45cy02LjcgNi4xLTguNSAxMC4zLTIuMiA4LjgtMS4zIDEzLjMgMy4xIDguNiA2LjMgMTEuOCA3LjMgNS40IDExLjggNi4zIDkuMSAuNCAxMy4zLTEuMyA3LjgtNC43IDEwLjMtOC41IDMuOS04LjIgMy45LTEyLjhjMC02LjEtMi40LTExLjktNi43LTE2LjNzLTEwLjItNi43LTE2LjMtNi43bDAgMHptMCA3Mi4zYy00LjYgMC05IDEuMy0xMi44IDMuOXMtNi43IDYuMS04LjUgMTAuMy0yLjIgOC44LTEuMyAxMy4zIDMuMSA4LjYgNi4zIDExLjggNy4zIDUuNCAxMS44IDYuMyA5LjEgLjQgMTMuMy0xLjMgNy44LTQuNyAxMC4zLTguNSAzLjktOC4yIDMuOS0xMi44YzAtNi4xLTIuNC0xMS45LTYuNy0xNi4zcy0xMC4yLTYuNy0xNi4zLTYuN2wwIDB6Il19LE1tcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwbGF5c3RhdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZjNkZiIsIk01NzEgMzcyLjNjLTExLjMgMTQuMi0zOC44IDI0LjMtMzguOCAyNC4zbC0yMDUuMSA3My42IDAtNTQuMyAxNTAuOS01My44YzE3LjEtNi4xIDE5LjgtMTQuOCA1LjgtMTkuNC0xMy45LTQuNi0zOS4xLTMuMy01Ni4yIDIuOWwtMTAwLjUgMzUuNSAwLTU2LjRjMjMuMi03LjggNDcuMS0xMy42IDc1LjctMTYuOCA0MC45LTQuNSA5MC45IC42IDEzMC4yIDE1LjUgNDQuMiAxNCA0OS4yIDM0LjcgMzggNDguOXpNMzQ2LjYgMjc5LjhsMC0xMzljMC0xNi4zLTMtMzEuMy0xOC4zLTM1LjYtMTEuNy0zLjgtMTkgNy4xLTE5IDIzLjRsMCAzNDcuOS05My44LTI5LjggMC00MTQuN2MzOS45IDcuNCA5OCAyNC45IDEyOS4yIDM1LjQgNzkuNSAyNy4zIDEwNi40IDYxLjMgMTA2LjQgMTM3LjggMCA3NC41LTQ2IDEwMi44LTEwNC41IDc0LjZ6TTQzLjMgNDEwLjJjLTQ1LjQtMTIuOC01My0zOS41LTMyLjMtNTQuOCAxOS4xLTE0LjIgNTEuNy0yNC45IDUxLjctMjQuOWwxMzQuNS00Ny44IDAgNTQuNS05Ni44IDM0LjZjLTE3LjEgNi4xLTE5LjcgMTQuOC01LjggMTkuNHMzOS4xIDMuMyA1Ni4yLTIuOWw0Ni40LTE2LjkgMCA0OC44Yy01MS42IDkuMy0xMDEuNCA3LjMtMTUzLjktMTB6Il19LENtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaWNyb2Jsb2ciLGljb246WzQ0OCw1MTIsW10sImUwMWEiLCJNMzk5LjggMzYyLjJjMjkuNS0zNC43IDQ3LjEtNzguMyA0Ny4xLTEyNS44IDAtMTEzLTk5LjYtMjA0LjQtMjIyLjUtMjA0LjRTMiAxMjMuNSAyIDIzNi40IDEwMS42IDQ0MC45IDIyNC41IDQ0MC45YzI3IDAgNTMuOS00LjUgNzkuNC0xMy40IDEuNC0uNSAzLS41IDQuNS0uMXMyLjcgMS40IDMuNiAyLjZjMTguNiAyNS4xIDQ3LjYgNDIuNyA3OS45IDQ5LjkgMS4xIC4yIDIuMyAwIDMuMy0uNnMxLjctMS42IDEuOS0yLjhjLjEtLjYgLjEtMS4zIDAtMS45cy0uNC0xLjItLjgtMS43Yy0xMi4zLTE2LTE4LjctMzUuOC0xOC01NnM4LjQtMzkuNSAyMS43LTU0LjdsLS4yIC4xek0zMzAgMjEyLjRsLTU3LjMgNDMuNSAyMC44IDY4LjljLjQgMS4zIC40IDIuNy0uMSA0cy0xLjIgMi40LTIuMyAzLjItMi40IDEuMi0zLjggMS4yLTIuNy0uNC0zLjgtMS4ybC01OS4xLTQxLTU5LjEgNDEuMWMtMS4xIC44LTIuNCAxLjItMy44IDEuMnMtMi43LS40LTMuOC0xLjItMS45LTEuOS0yLjMtMy4yLS41LTIuNy0uMS00bDIwLjgtNjguOS01Ny4zLTQzLjVjLTEuMS0uOC0xLjktMS45LTIuMy0zLjJzLS40LTIuNyAwLTQgMS4yLTIuNCAyLjMtMy4yIDIuNC0xLjMgMy43LTEuM2w3MS45LTEuNSAyMy43LTY3LjljLjQtMS4zIDEuMy0yLjQgMi40LTMuMnMyLjQtMS4yIDMuOC0xLjIgMi43IC40IDMuOCAxLjIgMS45IDEuOSAyLjQgMy4ybDIzLjcgNjcuOSA3MS45IDEuNWMxLjQgMCAyLjcgLjQgMy44IDEuMnMxLjkgMS45IDIuMyAzLjIgLjQgMi43IDAgNC0xLjIgMi40LTIuMyAzLjNsMCAweiJdfSx6bXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0a3Jha2VuIixpY29uOls1NzYsNTEyLFtdLCJmM2E2IiwiTTU1Ny43IDExOC4xYy0yLjMtNi4xLTkuMy05LjItMTUuMy02LjYtNS43IDIuNC04LjUgOC45LTYuMyAxNC42IDEwLjkgMjkgMTYuOSA2MC41IDE2LjkgOTMuMyAwIDEzNC42LTEwMC4zIDI0NS43LTIzMC4yIDI2Mi43bDAtMTIzLjdjNy45LTEuNSAxNS41LTMuNiAyMy02LjJsMCAxMDRjMTA2LjctMjUuOSAxODUuOS0xMjIuMSAxODUuOS0yMzYuOCAwLTkxLjgtNTAuOC0xNzEuOC0xMjUuOC0yMTMuMy01LjctMy4yLTEzLS45LTE1LjkgNS0yLjcgNS41LS42IDEyLjIgNC43IDE1LjEgNjcuOSAzNy42IDExMy45IDExMCAxMTMuOSAxOTMuMiAwIDkzLjMtNTcuOSAxNzMuMS0xMzkuOCAyMDUuNGwwLTkyLjJjMTQuMi00LjUgMjQuOS0xNy43IDI0LjktMzMuNSAwLTEzLjEtNi44LTI0LjQtMTcuMy0zMC41IDguMy03OS41IDQ0LjUtNTguNiA0NC41LTgzLjlsMC0xNC43YzAtMzgtODcuOS0xNjEuOC0xMjktMTY0LjctMi41LS4yLTUtLjItNy42IDAtNDEuMiAzLTEyOS4xIDEyNi43LTEyOS4xIDE2NC43bDAgMTQuOGMwIDI1LjMgMzYuMyA0LjMgNDQuNSA4My45LTEwLjYgNi4xLTE3LjMgMTcuNC0xNy4zIDMwLjUgMCAxNS44IDEwLjYgMjkgMjQuOCAzMy41bDAgOTIuMmMtODEuOS0zMi4yLTEzOS44LTExMi0xMzkuOC0yMDUuNCAwLTgzLjEgNDYtMTU1LjUgMTEzLjktMTkzLjIgNS40LTMgNy40LTkuNiA0LjctMTUuMS0yLjktNS45LTEwLjEtOC4yLTE1LjktNS03NSA0MS41LTEyNS44IDEyMS41LTEyNS44IDIxMy4zIDAgMTE0LjcgNzkuMiAyMTAuOCAxODUuOSAyMzYuOGwwLTEwNGM3LjYgMi41IDE1LjEgNC42IDIzIDYuMmwwIDEyMy43Yy0xMjkuOC0xNy0yMzAuMi0xMjguMS0yMzAuMi0yNjIuNyAwLTMyLjggNi02NC4zIDE2LjktOTMuMyAyLjItNS44LS42LTEyLjItNi4zLTE0LjYtNi0yLjYtMTMgLjQtMTUuMyA2LjYtMTEuOCAzMS41LTE4LjMgNjUuNi0xOC4zIDEwMS4zIDAgMTU1LjEgMTIyLjYgMjgxLjYgMjc2LjMgMjg3LjhsMC0xNDUuOWM2LjggLjQgMTUgLjUgMjMuNCAwbDAgMTQ1LjhjMTUzLjctNi4xIDI3Ni4zLTEzMi42IDI3Ni4zLTI4Ny43IDAtMzUuNy02LjUtNjkuOC0xOC4zLTEwMS40ek0zNTcuOSAzMjIuOWEyMy43IDIzLjcgMCAxIDEgMC00Ny40IDIzLjcgMjMuNyAwIDEgMSAwIDQ3LjR6TTIxOC4xIDI3NS40YTIzLjcgMjMuNyAwIDEgMSAwIDQ3LjQgMjMuNyAyMy43IDAgMSAxIDAtNDcuNHoiXX0sb0llPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRlbGVncmFtIixpY29uOls1MTIsNTEyLFs2MjQ2MiwidGVsZWdyYW0tcGxhbmUiXSwiZjJjNiIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM3MSAxNzYuN2MtMy43IDM5LjItMTkuOSAxMzQuNC0yOC4xIDE3OC4zLTMuNSAxOC42LTEwLjMgMjQuOC0xNi45IDI1LjQtMTQuNCAxLjMtMjUuMy05LjUtMzkuMy0xOC43LTIxLjgtMTQuMy0zNC4yLTIzLjItNTUuMy0zNy4yLTI0LjUtMTYuMS04LjYtMjUgNS4zLTM5LjUgMy43LTMuOCA2Ny4xLTYxLjUgNjguMy02Ni43IC4yLS43IC4zLTMuMS0xLjItNC40cy0zLjYtLjgtNS4xLS41Yy0yLjIgLjUtMzcuMSAyMy41LTEwNC42IDY5LjEtOS45IDYuOC0xOC45IDEwLjEtMjYuOSA5LjktOC45LS4yLTI1LjktNS0zOC42LTkuMS0xNS41LTUtMjcuOS03LjctMjYuOC0xNi4zIC42LTQuNSA2LjctOSAxOC40LTEzLjcgNzIuMy0zMS41IDEyMC41LTUyLjMgMTQ0LjYtNjIuMyA2OC45LTI4LjYgODMuMi0zMy42IDkyLjUtMzMuOCAyLjEgMCA2LjYgLjUgOS42IDIuOSAyIDEuNyAzLjIgNC4xIDMuNSA2LjcgLjUgMy4yIC42IDYuNSAuNCA5Ljh6Il19LF9tcj1vSWUsVG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVsdHJhbHl0aWNzIixpY29uOls1MTIsNTEyLFtdLCJlODZkIiwiTTM5MS40IDM5LjdjNjUuOC0uMiAxMTguNiA1MS44IDEyMC40IDExNi42IC43IDI2LjQtMS41IDU0LjEtMy44IDc0LjEtMTcuMiAxNDguNi0xMjIuNCAyNDItMjUyLjQgMjQyLTk1LjQtLjEtMTc5LjQtNTIuNy0yMjMuMi0xMzAuNiAyNC40IDE3LjQgNTQuNSAyNy40IDg3LjYgMjcuNCA4My4yIC4xIDE1MS40LTY3LjQgMTUxLjItMTUwbC4xLTYwLjZjLS4yLTY1LjcgNTMuOS0xMTkgMTIwLjEtMTE4Ljl6TTExOS45IDEwMC4yYzY2LjIgMCAxMTkuOSA1My4zIDExOS45IDExOVMxODYuMSAzMzguMyAxMTkuOSAzMzguMyAwIDI4NSAwIDIxOS4zYzAtNjUuNyA1My43LTExOSAxMTkuOS0xMTl6Il19LExtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMtbm90ZSIsaWNvbjpbMzg0LDUxMixbXSwiZjNiNSIsIk0zODEuOSAzODguMmMtNi40IDI3LjQtMjcuMiA0Mi44LTU1LjEgNDgtMjQuNSA0LjUtNDQuOSA1LjYtNjQuNS0xMC4yLTIzLjktMjAuMS0yNC4yLTUzLjQtMi43LTc0LjQgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDYuNC03LjIgNC40LTQuMSA0LjQtMTYzLjIgMC0xMS4yLTUuNS0xNC4zLTE3LTEyLjMtOC4yIDEuNC0xODUuNyAzNC42LTE4NS43IDM0LjYtMTAuMiAyLjItMTMuNCA1LjItMTMuNCAxNi43IDAgMjM0LjcgMS4xIDIyMy45LTIuNSAyMzkuNS00LjIgMTguMi0xNS40IDMxLjktMzAuMiAzOS41LTE2LjggOS4zLTQ3LjIgMTMuNC02My40IDEwLjQtNDMuMi04LjEtNTguNC01OC0yOS4xLTg2LjYgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDEwLjEtMTEuNSAxLjgtMjU2LjYgNS4yLTI3MC4yIC44LTUuMiAzLTkuNiA3LjEtMTIuOSA0LjItMy41IDExLjgtNS41IDEzLjQtNS41IDIwNC0zOC4yIDIyOC45LTQzLjEgMjMyLjQtNDMuMSAxMS41LS44IDE4LjEgNiAxOC4xIDE3LjYgLjIgMzQ0LjUgMS4xIDMyNi0xLjggMzM4LjV6Il19LERtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZXNzIixpY29uOls2NDAsNTEyLFtdLCJmNDFkIiwiTTYxMy4yIDIxOWMwLTIwLjUgMy4yLTMyLjYgMy4yLTU0LjYgMC0zNC4yLTEyLjYtNDUuMi00MC41LTQ1LjJsLTIwLjUgMCAwIDI0LjIgNi4zIDBjMTQuMiAwIDE3LjMgNC43IDE3LjMgMjIuMSAwIDE2LjMtMS42IDMyLjYtMS42IDUxLjUgMCAyNC4yIDcuOSAzMy42IDIzLjYgMzcuM2wwIDEuNmMtMTUuOCAzLjctMjMuNiAxMy4xLTIzLjYgMzcuMyAwIDE4LjkgMS42IDM0LjIgMS42IDUxLjUgMCAxNy45LTMuNyAyMi42LTE3LjMgMjIuNmwwIC41LTYuMyAwIDAgMjUuMiAyMC41IDBjMjcuOCAwIDQwLjUtMTEgNDAuNS00NS4yIDAtMjIuNi0zLjItMzQuMi0zLjItNTQuNiAwLTExIDYuOC0yMi42IDI3LjMtMjMuNmwwLTI3LjNjLTIwLjUtLjctMjcuMy0xMi4zLTI3LjMtMjMuM3pNNTA3LjYgMjUxYy0xNS44LTYuMy0zMC41LTEwLTMwLjUtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjZzMjIuMSA0LjcgMzMuNiAxMy4xbDIxLTI3LjhjLTEzLjEtMTAtMzEtMjAuNS01NS4yLTIwLjUtMzUuNyAwLTU5LjkgMjAuNS01OS45IDQ5LjQgMCAyNS43IDIyLjYgMzguOSA0MS41IDQ2LjIgMTYuMyA2LjMgMzIuMSAxMS42IDMyLjEgMjIuMSAwIDcuOS02LjMgMTMuMS0yMC41IDEzLjEtMTMuMSAwLTI2LjMtNS4zLTQwLjUtMTYuM2wtMjEgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxcy0yMi41LTQxLTQzLTQ3Ljh6TTE0OC43IDMxMC40Yy0zLjcgMC04LjQtMy4yLTguNC0xMy4xbDAtMTc4LjItNzQuNiAwYy0yOC40IDAtNDEgMTEtNDEgNDUuMiAwIDIyLjYgMy4yIDM1LjIgMy4yIDU0LjYgMCAxMS02LjggMjIuNi0yNy4zIDIzLjZsMCAyNy4zYzIwLjUgLjUgMjcuMyAxMi4xIDI3LjMgMjMuMSAwIDE5LjQtMy4yIDMxLTMuMiA1My42IDAgMzQuMiAxMi42IDQ1LjIgNDAuNSA0NS4ybDIwLjUgMCAwLTI0LjItNi4zIDBjLTEzLjEgMC0xNy4zLTUuMy0xNy4zLTIyLjZzMS42LTMyLjEgMS42LTUxLjVjMC0yNC4yLTcuOS0zMy42LTIzLjYtMzcuM2wwLTEuNmMxNS44LTMuNyAyMy42LTEzLjEgMjMuNi0zNy4zIDAtMTguOS0xLjYtMzQuMi0xLjYtNTEuNXMzLjctMjIuMSAxNy4zLTIyLjFsMTQuMSAwIDAgMTUwLjhjMCAzMi4xIDExIDUzLjEgNDMuMSA1My4xIDEwIDAgMTcuOS0xLjYgMjMuNi0zLjdsLTUuMy0zNC4yYy0zLjEgLjgtNC42IC44LTYuMiAuOHpNMzgwLjQgMjUxYy0xNi4zLTYuMy0zMS0xMC0zMS0yMC41IDAtNy45IDYuMy0xMi42IDE3LjktMTIuNnMyMi4xIDQuNyAzMy42IDEzLjFsMjEtMjcuOGMtMTMuMS0xMC0zMS0yMC41LTU1LjItMjAuNS0zNS43IDAtNTkuOSAyMC41LTU5LjkgNDkuNCAwIDI1LjcgMjIuNiAzOC45IDQxLjUgNDYuMiAxNi4zIDYuMyAzMi4xIDExLjYgMzIuMSAyMi4xIDAgNy45LTYuMyAxMy4xLTIwLjUgMTMuMS0xMy4xIDAtMjYuMy01LjMtNDAuNS0xNi4zbC0yMC41IDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MSAuMS0yOC45LTIyLjUtNDEtNDMtNDcuOHptLTE1NS02OC44Yy0zOC40IDAtNzUuMSAzMi4xLTc0LjEgODIuNSAwIDUyIDM0LjIgODIuNSA3OS4zIDgyLjUgMTguOSAwIDM5LjktNi44IDU2LjItMTcuOUwyNzEgMzAxLjVjLTExLjYgNi44LTIyLjYgMTAtMzQuMiAxMC0yMSAwLTM3LjMtMTAtNDEuNS0zNC4ybDk1LjIgMGMuNS0zLjcgMS42LTExIDEuNi0xOS40IC42LTQyLjYtMjIuNi03NS43LTY2LjctNzUuN3ptLTMwIDY2LjJjMy4yLTIxIDE1LjgtMzEgMzAuNS0zMSAxOC45IDAgMjYuMyAxMy4xIDI2LjMgMzFsLTU2LjggMHoiXX0sJG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcmVmb3giLGljb246WzUxMiw1MTIsW10sImYyNjkiLCJNNTAzLjUgMjQxLjVjLS4xLTEuNi0uMi0zLjEtLjItNC43bDAtLjEtLjQtNC43IDAtLjFjLTEuMy0xMy45LTMuNy0yNy43LTcuMy00MS4yIDAtLjEgMC0uMS0uMS0uMmwtMS4xLTRjLS4xLS4yLS4xLS41LS4yLS42LS40LTEuMi0uNy0yLjUtMS4xLTMuNy0uMS0uMi0uMS0uNi0uMi0uOC0uNC0xLjItLjctMi40LTEuMS0zLjUtLjEtLjQtLjItLjYtLjQtMS0uNC0xLjItLjctMi4zLTEuMi0zLjVsLS40LTEuMWMtLjQtMS4xLS44LTIuMy0xLjItMy40LS4xLS4zLS4yLS43LS40LTEtLjUtMS4xLS44LTIuMy0xLjMtMy40LS4xLS4yLS4yLS42LS40LS44LS41LTEuMi0xLTIuMy0xLjQtMy41IDAtLjEtLjEtLjItLjEtLjQtMS42LTMuOC0zLjItNy43LTUtMTEuNGwtLjQtLjdjLS41LTEtLjgtMS44LTEuMy0yLjYtLjItLjUtLjUtMS4xLS43LTEuNi0uNC0uOC0uOC0xLjYtMS4yLTIuNC0uNC0uNi0uNi0xLjItMS0xLjhzLS44LTEuNC0xLjItMi4zYy0uNC0uNi0uNy0xLjMtMS4xLTEuOXMtLjgtMS40LTEuMi0yLjJjLS40LS43LS44LTEuNC0xLjItMi0uNC0uNy0uOC0xLjMtMS4yLTJzLS44LTEuMy0xLjItMi0uOC0xLjMtMS4yLTEuOS0uOC0xLjQtMS4zLTIuMmMtLjQtLjYtLjgtMS4yLTEuMi0xLjhsLTEuNC0yLjFjLS40LS42LS44LTEuMi0xLjItMS44LS41LS43LTEuMS0xLjYtMS42LTIuMy0uNC0uNS0uNy0xLjEtMS4xLTEuNmwtMS44LTIuNWMtLjQtLjUtLjYtLjgtMS0xLjMtMS0xLjMtMS44LTIuNS0yLjgtMy43LTcuMi05LjQtMTUtMTguMy0yMy41LTI2LjYtNS43LTYtMTEuOC0xMS41LTE4LjMtMTYuNy00LTMuNS04LjItNi43LTEyLjUtOS44LTcuNy01LjgtMTYtMTAuOC0yNC42LTE1LjEtMi40LTEuMy00LjgtMi41LTcuMi0zLjctMTcuNy04LjYtMzYuMy0xNS4yLTU1LjQtMTkuNi0xLjktLjQtMy44LS44LTUuNi0xLjJsLS4xIDBjLTEtLjEtMS44LS40LTIuOC0uNS0xMi41LTIuNC0yNS4yLTMuNy0zOC00bC0xMC42IDBjLTE1LjMgLjItMzAuNSAxLjktNDUuNSA1LTMzLjYgNy4xLTYzLjIgMjEuMi04Mi45IDM5LTEuMSAxLTEuOSAxLjctMi40IDIuMmwtLjUgLjUgLjEgMGMwIDAgLjEgMCAuMSAwczAtLjEgMC0uMWwtLjEgLjFjLjEtLjEgLjEtLjEgLjItLjEgMTQuNi04LjggMzQuOS0xNiA0OS40LTE5LjZsNS45LTEuNGMuNC0uMSAuOC0uMSAxLjItLjIgMS43LS40IDMuNC0uNyA1LjItMS4xIC4yIDAgLjYtLjEgLjgtLjEgNjQuMi0xMS43IDEzMi42IDcuNSAxODAuMiA1MyAxMC4zIDkuOCAxOS4zIDIwLjggMjYuOSAzMi44IDMwLjQgNDkuMiAyNy41IDExMS4xIDMuOCAxNDcuNi0zNC40IDUzLTExMS40IDcxLjMtMTU5IDI0LjgtMTYtMTUuNS0yNS4yLTM2LjctMjUuNi01OS0uMi0xMC43IDItMjEuMiA2LjItMzEgMS43LTMuOCAxMy4xLTI1LjcgMTguMi0yNC42LTEzLjEtMi44LTM3LjUgMi42LTU0LjcgMjguMi0xNS40IDIyLjktMTQuNSA1OC4yLTUgODMuMy02LTEyLjQtMTAuMS0yNS42LTEyLjEtMzkuMi0xMi4yLTgyLjYgNDMuMy0xNTMgOTQuMy0xNzAuNS0yNy41LTI0LTk2LjUtMjIuMy0xNDcuNyAxNS40LTI5LjkgMjItNTEuMiA1My4yLTYyLjUgOTAuNCAxLjctMjAuOSA5LjYtNTIuMSAyNS44LTgzLjktMTcuMiA4LjktMzkgMzctNDkuOCA2Mi45LTE1LjYgMzcuNC0yMSA4Mi4yLTE2LjEgMTI0LjggLjQgMy4yIC43IDYuNCAxLjEgOS42IDE5LjkgMTE3LjEgMTIyIDIwNi40IDI0NC44IDIwNi40IDEzNy4xIDAgMjQ4LjMtMTExLjIgMjQ4LjMtMjQ4LjQtLjEtNC41LS4yLTkuMS0uNS0xMy41eiJdfSxBbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FnZ2xlIixpY29uOlszMjAsNTEyLFtdLCJmNWZhIiwiTTMwNC4yIDUwMS41TDE1OC40IDMyMC4zIDI5OC4yIDE4NWMyLjYtMi43IDEuNy0xMC41LTUuMy0xMC41bC02OS4yIDBjLTMuNSAwLTcgMS44LTEwLjUgNS4zbC0xMzIuMyAxMzMuNyAwLTMwNmMwLTUtMi41LTcuNS03LjUtNy41TDIxLjUgMEMxNi41IDAgMTQgMi41IDE0IDcuNWwwIDQ5N2MwIDUgMi41IDcuNSA3LjUgNy41bDUxLjkgMGM1IDAgNy41LTIuNSA3LjUtNy41bDAtMTA5IDMwLjgtMjkuMyAxMTAuNSAxNDAuNmMzIDMuNSA2LjUgNS4zIDEwLjUgNS4zbDY2LjkgMGMzLjUgMCA1LjUtMSA2LTNsLTEuNC03LjZ6Il19LEVtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vay1tZXNzZW5nZXIiLGljb246WzUxMiw1MTIsW10sImYzOWYiLCJNMjU2LjYgOGMtMTQwIDAtMjQ4LjYgMTAyLjMtMjQ4LjYgMjQwLjYgMCA3Mi4zIDI5LjcgMTM0LjggNzguMSAxNzcuOSA4LjMgNy41IDYuNiAxMS45IDggNTguMiAuMSAzLjIgMSA2LjQgMi42IDkuMnMzLjkgNS4yIDYuNyA2LjkgNS45IDIuOCA5LjEgMyA2LjUtLjMgOS41LTEuNkMxNzQuOSA0NzkgMTc1LjYgNDc3LjIgMTg0LjYgNDc5LjYgMzM3LjggNTIxLjggNTA0IDQyMy43IDUwNCAyNDguNiA1MDQgMTEwLjMgMzk2LjYgOCAyNTYuNiA4ek00MDUuOCAxOTMuMWwtNzMgMTE1LjZjLTIuOCA0LjMtNi40IDguMS0xMC42IDExcy05LjEgNC44LTE0LjEgNS44LTEwLjMgLjgtMTUuMy0uNC05LjctMy40LTEzLjgtNi40bC01OC4xLTQzLjVjLTIuNi0xLjktNS44LTMtOS0zcy02LjQgMS4xLTkgM2wtNzguNCA1OS40Yy0xMC41IDcuOS0yNC4yLTQuNi0xNy4xLTE1LjdsNzMtMTE1LjZjMi44LTQuMyA2LjQtOC4xIDEwLjYtMTFzOS4xLTQuOCAxNC4xLTUuOCAxMC4zLS44IDE1LjMgLjQgOS43IDMuNCAxMy45IDYuNGw1OC4xIDQzLjVjMi42IDEuOSA1LjggMyA5IDNzNi40LTEuMSA5LTNsNzguNC01OS40YzEwLjQtOCAyNC4xIDQuNSAxNy4xIDE1LjZ6Il19LEltcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdWRpYmxlIixpY29uOls2NDAsNTEyLFtdLCJmMzczIiwiTTY0MCAxOTkuOWwwIDU0LTMyMCAyMDAtMzIwLTE5OS45IDAtNTQgMzIwIDIwMCAzMjAtMjAwLjF6bS0xOTQuNSA3Mmw0Ny4xLTI5LjRjLTM3LjItNTUuOC0xMDAuNy05Mi42LTE3Mi43LTkyLjZzLTEzNS41IDM2LjctMTcyLjYgOTIuNGwuMyAwYzIuNS0yLjMgNS4xLTQuNSA3LjctNi43IDg5LjctNzQuNCAyMTkuNC01OC4xIDI5MC4yIDM2LjN6TTIyNS40IDI5MC43YzE2LjktMTEuOSAzNi41LTE4LjcgNTcuNC0xOC43IDM0LjQgMCA2NS4yIDE4LjQgODYuNCA0Ny42bDQ1LjQtMjguNGMtMjAuOS0yOS45LTU1LjYtNDkuNS05NC44LTQ5LjUtMzguOSAwLTczLjQgMTkuNC05NC40IDQ5ek0xMDMuNiAxNjEuMUMyMzUuNCA1Ni44IDQyMS44IDg0LjcgNTIxLjEgMjIzLjJsLjcgMSA0OC44LTMwLjRjLTUzLjUtODEuNy0xNDUuOC0xMzUuNy0yNTAuNy0xMzUuNy0xMDMuNSAwLTE5Ni42IDUzLjUtMjUwLjUgMTM1LjYgOS45LTEwLjUgMjIuNy0yMy41IDM0LjItMzIuNnoiXX0sUG1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhdHJlb24iLGljb246WzUxMiw1MTIsW10sImYzZDkiLCJNNDkwIDE1My44Yy0uMS02NS40LTUxLTExOS0xMTAuNy0xMzguMy03NC4yLTI0LTE3Mi0yMC41LTI0Mi45IDEyLjktODUuOCA0MC41LTExMi44IDEyOS4zLTExMy44IDIxNy44LS44IDcyLjggNi40IDI2NC40IDExNC42IDI2NS44IDgwLjMgMSA5Mi4zLTEwMi41IDEyOS41LTE1Mi4zIDI2LjQtMzUuNSA2MC41LTQ1LjUgMTAyLjQtNTUuOSA3Mi0xNy44IDEyMS4xLTc0LjcgMTIxLTE1MGwtLjEgMHoiXX0sTm1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZudiIsaWNvbjpbNjQwLDUxMixbXSwiZjQwYiIsIk0xMDQuOSAzNTJjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDIuNiAyMTAuMVMtNy44IDE5MiAxMyAxOTJsMzIuOCAwYzEwLjQgMCAxMy4yIDguNyAxOC44IDE4LjFsMzYuNyA3NC41czUuMiAxMy4xIDIxLjEgMTMuMSAyMS4xLTEzLjEgMjEuMS0xMy4xbDM2LjctNzQuNWM1LjYtOS41IDguNC0xOC4xIDE4LjgtMTguMWwzMi44IDBjMjAuOCAwIDEwLjQgMTguMSAxMC40IDE4LjFMMTg2LjQgMzIxLjZTMTc0LjIgMzUyIDE0MCAzNTJsLTM1LjEgMHptMzk1IDBjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDM5Ny42IDIxMC4xUzM4Ny4yIDE5MiA0MDggMTkybDMyLjggMGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi44LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFsMzIuOSAwYzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xTDU4MS41IDMyMS42UzU2OS4zIDM1MiA1MzUuMSAzNTJsLTM1LjIgMHpNMzM3LjYgMTkyYzM0LjEgMCA0Ni40IDMwLjQgNDYuNCAzMC40bDU1LjkgMTExLjVTNDUwLjMgMzUyIDQyOS41IDM1MmwtMzIuOCAwYy0xMC40IDAtMTMuMi04LjctMTguOC0xOC4xbC0zNi43LTc0LjVzLTUuMi0xMy4xLTIxLjEtMTMuMS0yMS4xIDEzLjEtMjEuMSAxMy4xbC0zNi43IDc0LjVjLTUuNiA5LjQtOC40IDE4LjEtMTguOCAxOC4xbC0zMi45IDBjLTIwLjggMC0xMC40LTE4LjEtMTAuNC0xOC4xbDU1LjktMTExLjVTMjY4LjMgMTkyIDMwMi41IDE5MmwzNS4xIDB6Il19LE9tcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWdlbGluZXMiLGljb246WzM4NCw1MTIsW10sImYxOGMiLCJNMzg0LjEgMzEyLjdjLTU1LjEgMTM2LjctMTg3LjEgNTQtMTg3LjEgNTQtNDAuNSA4MS44LTEwNy40IDEzNC40LTE4NC42IDEzNC43LTE2LjEgMC0xNi42LTI0LjQgMC0yNC40IDY0LjQtLjMgMTIwLjUtNDIuNyAxNTcuMi0xMTAuMS00MS4xIDE1LjktMTE4LjYgMjcuOS0xNjEuNi04Mi4yIDEwOS00NC45IDE1OS4xIDExLjIgMTc4LjMgNDUuNSA5LjktMjQuNCAxNy01MC45IDIxLjYtNzkuNyAwIDAtMTM5LjcgMjEuOS0xNDkuNS05OC4xIDExOS4xLTQ3LjkgMTUyLjYgNzYuNyAxNTIuNiA3Ni43IDEuNi0xNi43IDMuMy01Mi42IDMuMy01My40IDAgMC0xMDYuMy03My43LTM4LjEtMTY1LjIgMTI0LjYgNDMgNjEuNCAxNjIuNCA2MS40IDE2Mi40IC41IDEuNiAuNSAyMy44IDAgMzMuNCAwIDAgNDUuMi04OSAxMzYuNC01Ny41LTQuMiAxMzQtMTQxLjkgMTA2LjQtMTQxLjkgMTA2LjQtNC40IDI3LjQtMTEuMiA1My40LTIwIDc3LjUgMCAwIDgzLTkxLjggMTcyLTIweiJdfSxSbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1hem9uIixpY29uOls0NDgsNTEyLFtdLCJmMjcwIiwiTTI1Ny43IDE2Mi43Yy00OC43IDEuOC0xNjkuNSAxNS41LTE2OS41IDExNy41IDAgMTA5LjUgMTM4LjMgMTE0IDE4My41IDQzLjIgNi41IDEwLjIgMzUuNCAzNy41IDQ1LjMgNDYuOGw1Ni44LTU2cy0zMi4zLTI1LjMtMzIuMy01Mi44bDAtMTQ3LjFDMzQxLjUgODkgMzE3IDMyIDIyOS4yIDMyIDE0MS4yIDMyIDk0LjUgODcgOTQuNSAxMzYuM2w3My41IDYuOGMxNi4zLTQ5LjUgNTQuMi00OS41IDU0LjItNDkuNSA0MC43LS4xIDM1LjUgMjkuOCAzNS41IDY5LjF6bTAgODYuOGMwIDgwLTg0LjIgNjgtODQuMiAxNy4yIDAtNDcuMiA1MC41LTU2LjcgODQuMi01Ny44bDAgNDAuNnpNMzkzLjcgNDEzYy03LjcgMTAtNzAgNjctMTc0LjUgNjdTMzQuNyA0MDguNSAxMC4yIDM3OWMtNi44LTcuNyAxLTExLjMgNS41LTguMyA3My4zIDQ0LjUgMTg3LjggMTE3LjggMzcyLjUgMzAuMyA3LjUtMy43IDEzLjMgMiA1LjUgMTJ6bTM5LjggMi4yYy02LjUgMTUuOC0xNiAyNi44LTIxLjIgMzEtNS41IDQuNS05LjUgMi43LTYuNS0zLjhzMTkuMy00Ni41IDEyLjctNTVjLTYuNS04LjMtMzctNC4zLTQ4LTMuMi0xMC44IDEtMTMgMi0xNC0uMy0yLjMtNS43IDIxLjctMTUuNSAzNy41LTE3LjUgMTUuNy0xLjggNDEtLjggNDYgNS43IDMuNyA1LjEgMCAyNy4xLTYuNSA0My4xeiJdfSxGbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW52aXJhIixpY29uOls0NDgsNTEyLFtdLCJmMjk5IiwiTTAgMzJjNDc3LjYgMCAzNjYuNiAzMTcuMyAzNjcuMSAzNjYuM2w4MC45IDgxLjctMjYgMC03MC40LTcxLjJDMzEyLjYgNDEzIDIyNy4yIDQ0My4zIDEzNy4yIDM3MS44IDQ3IDMwMC4zIDUyIDIxNC43IDAgMzJ6TTc5LjcgNzhjLTQ5LjctMjMuNS01LjIgOS4yLTUuMiA5LjIgNDUuMiAzMS4yIDY2IDczLjcgOTAuMiAxMTkuOSAzMS41IDYwLjIgNzkgMTM5LjcgMTQ0LjIgMTY3LjcgNjUgMjggMzQuMiAxMi41IDYtOC41LTI4LjItMjEuMi02OC4yLTg3LTkxLTEzMC4yLTMxLjctNjAtNjEtMTE4LjYtMTQ0LjItMTU4LjF6Il19LEJtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5vZGUiLGljb246WzQ0OCw1MTIsW10sImYyYjgiLCJNMzY2LjMgMTg2LjlsLTU5LjUgMzYuOS0uOCAzNi45LTI5LjMtMTkuMy0zOS40IDI0LjNjMi4yIDU1LjIgMi41IDU5LjMgMi41IDU5LjVsLTk3LjIgNjUuNC0xNS4xLTEwNC43IDEwOC4xLTYyLTQwLjItMjYtNzUuNCAzOC41LTIxLTE0My4zIDEyOS00OS40LTkxLjMtNDMuNi0xMjUuNyAzOS40IDI3LjcgMTM0LjkgNDEuOSAzMi43LTMxLjggMTUuMSAyMC45IDEwMS40IDI5LjMgMjcuNy0yMC45IDEyLjYgMTYuOCA3OC44IDY2LjIgNjkuNmMtMTAuOC03NC44LTExLjctNzguNi0xMS43LTc4LjhsNzcuOS01NS4zQzI0NCAzNjUuNCAyNDIuMyAzNjcgMjQyLjMgMzY3bC44IDI0LjMgMzMuNSAyOC41LS44LTc3LjEgNDYuOS0zMy41IDI2LjgtMTguNC0yLjUgMzYgMjUuMSAxNy42IDYuNy03NC42IDU4LjctNDMuNi03MS4yLTM5LjR6Il19LEhtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhY2N1c29mdCIsaWNvbjpbNjQwLDUxMixbXSwiZjM2OSIsIk0zMjIuMSAyNTJsMC0xLTUxLjItNjUuOHMtMTIgMS42LTI1IDE1LjFjLTkgOS4zLTI0Mi4xIDIzOS4xLTI0My40IDI0MC45LTcgMTAgMS42IDYuOCAxNS43IDEuNyAuOCAwIDExNC41LTM2LjYgMTE0LjUtMzYuNiAuNS0uNi0uMS0uMSAuNi0uNi0uNC01LjEtLjgtMjYuMi0xLTI3LjctLjYtNS4yIDIuMi02LjkgNy04LjlsOTIuNi0zMy44Yy42LS44IDg4LjUtODEuNyA5MC4yLTgzLjN6TTQ4Mi4yIDM3Mi4xYzEzLjMgMTYuMSAyMC43IDEzLjMgMzAuOCA5LjMgMy4yLTEuMiAxMTUuNC00Ny42IDExNy44LTQ4LjkgOC00LjMtMS43LTE2LjctNy4yLTIzLjQtMi4xLTIuNS0yMDUuMS0yNDUuNi0yMDcuMi0yNDguMy05LjctMTIuMi0xNC4zLTEyLjktMzguNC0xMi44LTEwLjIgMC0xMDYuOCAuNS0xMTYuNSAuNi0xOS4yIC4xLTMyLjktLjMtMTkuMiAxNi45IDcuNyA5LjUgMjM0LjIgMjk5LjcgMjM5LjkgMzA2LjZ6bTE1Mi43IDEuNmMtMi4zLS4zLTI0LjYtNC43LTM4LTcuMiAwIDAtMTE1IDUwLjQtMTE3LjUgNTEuNi0xNiA3LjMtMjYuOS0zLjItMzYuNy0xNC42bC01Ny4xLTc0Yy01LjQtLjktNjAuNC05LjYtNjUuMy05LjMtMy4xIC4yLTkuNiAuOC0xNC40IDIuOS00LjkgMi4xLTE0NS4yIDUyLjgtMTUwLjIgNTQuNy01LjEgMi0xMS40IDMuNi0xMS4xIDcuNiAuMiAyLjUgMiAyLjYgNC42IDMuNSAyLjcgLjggMzAwLjkgNjcuNiAzMDggNjkuMSAxNS42IDMuMyAzOC41IDEwLjUgNTMuNiAxLjcgMi4xLTEuMiAxMjMuOC03Ni40IDEyNS44LTc3LjggNS40LTQgNC4zLTYuOC0xLjctOC4yeiJdfSxxbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXJsYW5nIixpY29uOls2NDAsNTEyLFtdLCJmMzlkIiwiTTg3LjIgNTMuNWwtODcuMiAwIDAgNDA1IDEwMC40IDBjLTQ5LjctNTIuNi03OC44LTEyNS4zLTc4LjctMjEyLjEtLjEtNzYuNyAyNC0xNDIuNyA2NS41LTE5Mi45em0yMzguMiA5LjdjLTQ1LjkgLjEtODUuMSAzMy41LTg5LjIgODMuMmwxNjkuOSAwYy0xLjEtNDkuNy0zNC41LTgzLjEtODAuNy04My4yem0yMzAuNy05LjZsLjMgMC0uMS0uMS0uMiAuMXptLjMgMGMzMS40IDQyLjcgNDguNyA5Ny41IDQ2LjIgMTYyLjcgLjUgNiAuNSAxMS43IDAgMjQuMWwtMzcyLjQgMGMtLjIgMTA5LjcgMzguOSAxOTQuOSAxMzguNiAxOTUuMyA2OC41LS4zIDExOC01MSAxNTEuOS0xMDYuMWw5Ni40IDQ4LjJjLTE3LjQgMzAuOS0zNi41IDU3LjgtNTcuOSA4MC44bDgwLjggMCAwLTQwNS04My42IDB6Il19LFZtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bmlzb24iLGljb246WzUxMiw1MTIsW10sImU4NTQiLCJNNDM1LjEgMTYxLjdhMTMuOSAxMy45IDAgMSAxIDE5LjYtMTkuNyAxMy45IDEzLjkgMCAxIDEgLTE5LjYgMTkuN3pNMzY5LjcgOTcuOGMxMC40IDIuMSAyMC42IDUuMiAzMC40IDkuMiA2LjggMi44IDEwLjEgMTAuOCA3LjMgMTcuNy0yLjggNi43LTEwLjkgMTAuMS0xNy42IDcuMy04LjMtMy40LTE2LjgtNS44LTI1LjctNy44LTguNi0xLjctMTcuMy0yLjUtMjYtMi41LTE5LjMgMC0zNy4xLTEwLjMtNDYuNy0yNy04LjctMTUuMS0yMC42LTI4LjktMzQuNy0zOS43LTU5LjEtNDUuNS0xNDMuOC0zNC4zLTE4OS4yIDI1LTIuNiAzLjMtNi41IDUuMy0xMC43IDUuMy03LjQgMC0xMy41LTYuMS0xMy41LTEzLjUgMC0zLjIgMS4yLTYuMyAzLjItOC44IDEyLjktMTYuNyAyOC45LTMwLjcgNDcuMS00MS4yIDc3LjQtNDQuOCAxNzYuNC0xOC4yIDIyMS4xIDU5LjQgNC4zIDguMiAxMy43IDEzLjMgMjIuOCAxMy41IDEwLjggMCAyMS42IDEgMzIuMiAzLjF6TTM1IDI3MGM0LjYtOC4yIDQuNi0xOC4yIDAtMjYuNC0yMS45LTM2LjUtMjcuMy04Mi4zLTE2LjMtMTIzLjIgMS42LTUuOSA2LjktMTAgMTMtMTAgOC43IDAgMTUuMyA4LjcgMTMgMTctOS41IDM1LjQtMy40IDcxIDEzLjcgMTAyLjkgOS4zIDE2LjUgOS4zIDM2LjcgMCA1My4xLTguNyAxNS43LTE0LjggMzIuNC0xNy4yIDUwLjMtOS43IDczLjkgNDIuMyAxNDEuNyAxMTYuMiAxNTEuNCA3LjMgMSAxMi42IDcuOSAxMS42IDE1LjItMSA3LjMtNy44IDEyLjYtMTUuMSAxMS42LTIxLjEtMi44LTQxLjQtOS43LTU5LjgtMjAuMy03NS42LTQzLjYtMTA0LjktMTQ1LjgtNTkuMi0yMjEuNXpNMjE2LjkgNTA5Yy03LjQgMi0xNS4xLTIuNC0xNy4xLTkuOHMyLjUtMTUgOS45LTE2LjljOC41LTIuMiAxNy40IDQuNSAxNy40IDEzLjQgMCA2LjItNC4yIDExLjYtMTAuMiAxMy4zem0xMjIuMy05MWMtOS41IDAtMTguNCA1LTIzLjIgMTMuMi00LjkgOS40LTExLjcgMTguMi0xOC43IDI2LjJsMCAwYy03LjEgOC0xNC44IDE1LjItMjMuMiAyMS43LTUuOSA0LjUtMTQuNCAzLjQtMTktMi41cy0zLjQtMTQuNCAyLjUtMTguOWM3LTUuNCAxMy41LTExLjUgMTkuNC0xOC4xbDAgMGM1LjktNi42IDExLjEtMTMuOCAxNS41LTIxLjYgOS43LTE2LjcgMjcuNS0yNyA0Ni44LTI3IDE3LjggMCAzNS40LTMuNSA1MS44LTEwLjMgNjguMy0yOC4zIDEwMS4xLTEwOC4zIDczLjItMTc2LjUtLjYtMS42LTEtMy4zLTEtNSAwLTcuNCA2LjEtMTMuNSAxMy41LTEzLjUgNS40IDAgMTAuMyAzLjIgMTIuNCA4LjIgOC4yIDE5LjcgMTIuNCA0MC44IDEyLjQgNjIuMSAwIDg5LjUtNzIuNyAxNjIuMS0xNjIuNCAxNjIuMWwwIDB6bS0xMy4xLTI2OGMzLjktLjQgNy45LS42IDExLjktLjYgNTkuMyAwIDEwOC4yIDQ4LjcgMTA4LjIgMTA3LjhTMzk3LjMgMzY1IDMzOCAzNjVjLTQgMC03LjktLjItMTEuOC0uNi0yMi4yLTEuNy00My4zIDEwLjQtNTIuOSAzMC40LTE3LjIgMzkuMS01Ni4yIDY0LjUtOTkuMSA2NC41LTU5LjMgMC0xMDguMi00OC43LTEwOC4yLTEwNy44IDAtMjMuMiA3LjUtNDUuNyAyMS40LTY0LjMgMTIuMi0xOC4zIDEyLjEtNDIuMy0uNC02MC41LTEzLjYtMTguNS0yMC45LTQwLjgtMjAuOS02My43IDAtNTkuMSA0OC44LTEwNy44IDEwOC4yLTEwNy44IDQyLjggMCA4MS44IDI1LjQgOTkgNjQuNCA5LjYgMjAgMzAuNyAzMi4xIDUyLjkgMzAuNHpNMTA2LjggMzkzLjRjMTQuNCAyNS4yIDQxLjEgNDAuOCA2OS44IDQwLjggNDQuMiAwIDgwLjYtMzYuOCA4MC42LTgxLjZzLTM2LjQtODEuNi04MC42LTgxLjZjLTE0LjIgMC0yOC4xIDMuOC00MC4zIDEwLjktMzguMyAyMi40LTUxLjYgNzIuNy0yOS41IDExMS40ek0yNjggMjk4YzE0LjQgMjUuMiA0MS4xIDQwLjggNjkuOCA0MC44IDQ0LjIgMCA4MC42LTM2LjggODAuNi04MS42cy0zNi40LTgxLjYtODAuNi04MS42Yy0xNC4yIDAtMjguMSAzLjgtNDAuMyAxMC45LTM4LjMgMjIuNC01MS42IDcyLjctMjkuNSAxMTEuNHptLTkxLjItNTQuNmM0NC4yIDAgODAuNS0zNi44IDgwLjUtODEuNnMtMzYuNC04MS42LTgwLjYtODEuNi04MC42IDM2LjgtODAuNiA4MS42YzAgNDQuNyAzNi40IDgxLjYgODAuNiA4MS42eiJdfSxqbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtZGlzY292ZXIiLGljb246WzU3Niw1MTIsW10sImYxZjIiLCJNNTIwLjQgMTk2LjFjMC03LjktNS41LTEyLjEtMTUuNi0xMi4xbC00LjkgMCAwIDI0LjkgNC43IDBjMTAuMyAwIDE1LjgtNC40IDE1LjgtMTIuOHpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4My45IDE3MC45YzIyLjYgMCA1Mi45LTQuMSA1Mi45IDI0LjQgMCAxMi42LTYuNiAyMC43LTE4LjcgMjMuMmwyNS44IDM0LjQtMTkuNiAwLTIyLjItMzIuOC0yLjIgMCAwIDMyLjgtMTYgMCAwLTgyek00MjggMTcxbDQ1LjMgMCAwIDE0LTI5LjMgMCAwIDE4LjIgMjguMyAwIDAgMTMuOC0yOC4zIDAgMCAyMi4yIDI5LjMgMCAwIDEzLjgtNDUuMyAwIDAtODJ6bS02OC43IDBsMjEuOSA1NS4yIDIyLjItNTUuMiAxNy41IDAtMzUuNSA4NC4yLTguNiAwLTM1LTg0LjIgMTcuNSAwem0tNTUuOSA4Ni4yYTQ0LjYgNDQuNiAwIDEgMSAwLTg5LjIgNDQuNiA0NC42IDAgMSAxIDAgODkuMnptLTQ5LjMtODMuMWwwIDE5Yy0yMC4xLTIwLjEtNDYuOC00LjctNDYuOCAxOSAwIDI1IDI3LjUgMzguNSA0Ni44IDE5LjJsMCAxOWMtMjkuNyAxNC4zLTYzLjMtNS43LTYzLjMtMzguMiAwLTMxLjIgMzMuMS01MyA2My4zLTM4em0tOTcuMiA2Ni4zYzExLjQgMCAyMi40LTE1LjMtMy4zLTI0LjQtMTUtNS41LTIwLjItMTEuNC0yMC4yLTIyLjcgMC0yMy4yIDMwLjYtMzEuNCA0OS43LTE0LjNsLTguNCAxMC44Yy0xMC40LTExLjYtMjQuOS02LjItMjQuOSAyLjUgMCA0LjQgMi43IDYuOSAxMi4zIDEwLjMgMTguMiA2LjYgMjMuNiAxMi41IDIzLjYgMjUuNiAwIDI5LjUtMzguOCAzNy40LTU2LjYgMTEuM2wxMC4zLTkuOWMzLjcgNy4xIDkuOSAxMC44IDE3LjUgMTAuOHpNNTUuNCAyNTNsLTIzLjQgMCAwLTgyIDIzLjQgMGMyNi4xIDAgNDQuMSAxNyA0NC4xIDQxLjEgMCAxOC41LTEzLjIgNDAuOS00NC4xIDQwLjl6bTY3LjUgMGwtMTYgMCAwLTgyIDE2IDAgMCA4MnpNNTQ0IDQzM2MwIDguMi02LjggMTUtMTUgMTVsLTQwMSAwYzE4OS42LTM1LjYgMzgyLjctMTM5LjIgNDE2LTE2MGwwIDE0NXpNNzQuMSAxOTEuNmMtNS4yLTQuOS0xMS42LTYuNi0yMS45LTYuNmwtNC4yIDAgMCA1NC4yIDQuMiAwYzEwLjMgMCAxNy0yIDIxLjktNi40IDUuNy01LjIgOC45LTEyLjggOC45LTIwLjdzLTMuMi0xNS41LTguOS0yMC41eiJdfSxVbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FmYXJpIixpY29uOls1MTIsNTEyLFtdLCJmMjY3IiwiTTI3NC43IDI3NC43TDIzNy4zIDIzNy4zIDE2NiAzNDYgMjc0LjcgMjc0Ljd6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDExLjggMTgyLjhsMTQuOC02LjFjMS0uNCAyLS42IDMuMS0uNnMyLjEgLjIgMy4xIC42IDEuOCAxIDIuNiAxLjcgMS4zIDEuNiAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNiAzLjEtMSAxLjktMS43IDIuNi0xLjYgMS4zLTIuNiAxLjdMNDE4IDE5Ny42Yy0yIC44LTQuMiAuOC02LjEgMHMtMy41LTIuNC00LjMtNC4zLS44LTQuMiAwLTYuMSAyLjQtMy41IDQuMy00LjN6TTMxNC40IDk0bDYuMS0xNC44Yy44LTIgMi40LTMuNSA0LjMtNC4zczQuMi0uOCA2LjEgMCAzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xbC02LjEgMTQuOGMtLjggMi0yLjQgMy41LTQuMyA0LjNzLTQuMiAuOC02LjEgMGMtMS0uNC0xLjktMS0yLjYtMS43cy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMXpNMjU2IDYwYzIuMSAwIDQuMiAuOCA1LjcgMi4zUzI2NCA2NS45IDI2NCA2OGwwIDE2YzAgMi4xLS44IDQuMi0yLjMgNS43cy0zLjUgMi4zLTUuNyAyLjMtNC4yLS44LTUuNy0yLjMtMi4zLTMuNS0yLjMtNS43bDAtMTZjMC0yLjEgLjgtNC4yIDIuMy01LjdTMjUzLjkgNjAgMjU2IDYwek0xODEgNzQuOWMxLS40IDItLjYgMy4xLS42czIuMSAuMiAzLjEgLjYgMS45IDEgMi42IDEuNyAxLjMgMS42IDEuNyAyLjZMMTk3LjYgOTRjLjQgMSAuNyAyIC43IDMuMXMtLjIgMi4xLS42IDMuMS0xIDEuOS0xLjcgMi42LTEuNiAxLjQtMi42IDEuOC0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjgtMS4zLTEuNy0xLjctMi43bC02LjEtMTQuOGMtLjgtMi0uOC00LjIgMC02LjFzMi40LTMuNSA0LjMtNC4zem0tNjMuNiA0Mi41YzEuNS0xLjUgMy41LTIuMyA1LjctMi4zczQuMiAuOCA1LjcgMi4zTDE0MCAxMjguN2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZjLTEuNSAxLjUtMy41IDIuMy01LjcgMi4zcy00LjItLjgtNS43LTIuM2wtMTEuMy0xMS4zYy0xLjUtMS41LTIuMy0zLjUtMi4zLTUuNnMuOC00LjEgMi4zLTUuNmwwIDB6TTYwIDI1NmMwLTIuMSAuOC00LjIgMi4zLTUuN1M2NS45IDI0OCA2OCAyNDhsMTYgMGMyLjEgMCA0LjIgLjggNS43IDIuM3MyLjMgMy41IDIuMyA1LjctLjggNC4yLTIuMyA1LjctMy41IDIuMy01LjcgMi4zbC0xNiAwYy0yLjEgMC00LjItLjgtNS43LTIuM1M2MCAyNTguMSA2MCAyNTZ6bTQwLjIgNzMuMmwtMTQuOCA2LjFjLTEgLjQtMiAuNi0zLjEgLjZzLTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuNy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMSAxLTEuOSAxLjctMi42IDEuNi0xLjMgMi42LTEuN0w5NCAzMTQuNGMyLS44IDQuMi0uOCA2LjEgMHMzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xLTIuNCAzLjUtNC4zIDQuM3ptNC4zLTEzNmMtLjQgMS0xIDEuOS0xLjcgMi42cy0xLjYgMS4zLTIuNiAxLjctMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNmwtMTQuOC02LjFjLTItLjgtMy41LTIuNC00LjMtNC4zcy0uOC00LjIgMC02LjEgMi40LTMuNSA0LjMtNC4zIDQuMi0uOCA2LjEgMGwxNC44IDYuMWMyIC44IDMuNSAyLjQgNC4zIDQuM3MuOCA0LjIgMCA2LjFsMCAwek0xOTcuNiA0MThsLTYuMSAxNC44Yy0uNCAxLTEgMS45LTEuNyAyLjZzLTEuNiAxLjMtMi42IDEuNy0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjctMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjFsNi4xLTE0LjhjLjQtMSAxLTEuOSAxLjctMi43czEuNi0xLjQgMi42LTEuOCAyLS42IDMuMS0uNiAyLjEgLjIgMy4xIC42IDEuOSAxIDIuNiAxLjggMS4zIDEuNyAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNyAzLjF6TTI2NCA0NDRjMCAyLjEtLjggNC4yLTIuMyA1LjdzLTMuNSAyLjMtNS43IDIuMy00LjItLjgtNS43LTIuMy0yLjMtMy41LTIuMy01LjdsMC0xNmMwLTIuMSAuOC00LjIgMi4zLTUuN3MzLjUtMi4zIDUuNy0yLjMgNC4yIC44IDUuNyAyLjMgMi4zIDMuNSAyLjMgNS43bDAgMTZ6bTY3LTYuOWMtMSAuNC0yIC42LTMuMSAuNnMtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS43LTEuMy0xLjYtMS43LTIuNkwzMTQuNCA0MThjLS44LTItLjgtNC4yIDAtNi4xczIuNC0zLjUgNC4zLTQuMyA0LjItLjggNi4xIDAgMy41IDIuNCA0LjMgNC4zbDYuMSAxNC44Yy44IDIgLjggNC4yIDAgNi4xcy0yLjQgMy41LTQuMyA0LjN6bTYzLjYtNDIuNWMtMS41IDEuNS0zLjUgMi4zLTUuNyAyLjNzLTQuMi0uOC01LjctMi4zTDM3MiAzODMuM2MtMS41LTEuNS0yLjMtMy41LTIuMy01LjZzLjgtNC4xIDIuMy01LjYgMy41LTIuMyA1LjctMi4zIDQuMiAuOCA1LjcgMi4zbDExLjMgMTEuM2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZsMCAwek0yODYuMiAyODYuMkwxMTAuMyA0MDEuNyAyMjUuOCAyMjUuOCA0MDEuNyAxMTAuMyAyODYuMiAyODYuMnpNNDM3LjEgMzMxYy0uOCAyLTIuNCAzLjUtNC4zIDQuM3MtNC4yIC44LTYuMSAwbC0xNC44LTYuMWMtMi0uOC0zLjUtMi40LTQuMy00LjNzLS44LTQuMiAwLTYuMWMuNC0xIDEtMS45IDEuNy0yLjZzMS42LTEuMyAyLjYtMS43IDItLjYgMy4xLS42IDIuMSAuMiAzLjEgLjZsMTQuOCA2LjFjMiAuOCAzLjUgMi40IDQuMyA0LjNzLjggNC4yIDAgNi4xem02LjktNjdsLTE2IDBjLTIuMSAwLTQuMi0uOC01LjctMi4zcy0yLjMtMy41LTIuMy01LjcgLjgtNC4yIDIuMy01LjcgMy41LTIuMyA1LjctMi4zbDE2IDBjMi4xIDAgNC4yIC44IDUuNyAyLjNzMi4zIDMuNSAyLjMgNS43LS44IDQuMi0yLjMgNS43LTMuNSAyLjMtNS43IDIuM3oiXX0sV21yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNwYWNlLWF3ZXNvbWUiLGljb246WzUxMiw1MTIsW10sImU1YWMiLCJNOTYgMjU2bDMyIDAgMCAyNTYtMTI4IDAgMC0xNjAgMzIgMCAwLTMyIDMyIDAgMC0zMiAzMiAwIDAtMzJ6bTQxNiA5NmwwIDE2MC0xMjggMCAwLTI1NiAzMiAwIDAgMzIgMzIgMCAwIDMyIDMyIDAgMCAzMiAzMiAwek0zMjAgNjRsMzIgMCAwIDM4NC0zMiAwIDAtMzItMTI4IDAgMCAzMi0zMiAwIDAtMzg0IDMyIDAgMC0zMiAzMiAwIDAtMzIgNjQgMCAwIDMyIDMyIDAgMCAzMnptLTMyIDY0bC02NCAwIDAgNjQgNjQgMCAwLTY0eiJdfSxHbXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm9kZSIsaWNvbjpbNjQwLDUxMixbXSwiZjQxOSIsIk0zMTYuMyA0NTJjLTIuMSAwLTQuMi0uNi02LjEtMS42TDI5MSA0MzljLTIuOS0xLjYtMS41LTIuMi0uNS0yLjUgMy44LTEuMyA0LjYtMS42IDguNy00IC40LS4yIDEtLjEgMS40IC4xbDE0LjggOC44Yy41IC4zIDEuMyAuMyAxLjggMEwzNzUgNDA4Yy41LS4zIC45LS45IC45LTEuNmwwLTY2LjdjMC0uNy0uMy0xLjMtLjktMS42bC01Ny44LTMzLjNjLS41LS4zLTEuMi0uMy0xLjggMGwtNTcuOCAzMy4zYy0uNiAuMy0uOSAxLS45IDEuNmwwIDY2LjdjMCAuNiAuNCAxLjIgLjkgMS41bDE1LjggOS4xYzguNiA0LjMgMTMuOS0uOCAxMy45LTUuOGwwLTY1LjljMC0uOSAuNy0xLjcgMS43LTEuN2w3LjMgMGMuOSAwIDEuNyAuNyAxLjcgMS43bDAgNjUuOWMwIDExLjUtNi4yIDE4LTE3LjEgMTgtMy4zIDAtNiAwLTEzLjMtMy42bC0xNS4yLTguN2MtMy43LTIuMi02LjEtNi4yLTYuMS0xMC41bDAtNjYuN2MwLTQuMyAyLjMtOC40IDYuMS0xMC41bDU3LjgtMzMuNGMzLjctMi4xIDguNS0yLjEgMTIuMSAwbDU3LjggMzMuNGMzLjcgMi4yIDYuMSA2LjIgNi4xIDEwLjVsMCA2Ni43YzAgNC4zLTIuMyA4LjQtNi4xIDEwLjVsLTU3LjggMzMuNGMtMS43IDEuMS0zLjggMS43LTYgMS43ek0zNjMgMzg2LjJjMC0xMi41LTguNC0xNS44LTI2LjItMTguMi0xOC0yLjQtMTkuOC0zLjYtMTkuOC03LjggMC0zLjUgMS41LTguMSAxNC44LTguMSAxMS45IDAgMTYuMyAyLjYgMTguMSAxMC42IC4yIC44IC44IDEuMyAxLjYgMS4zbDcuNSAwYy41IDAgLjktLjIgMS4yLS41IC4zLS40IC41LS44IC40LTEuMy0xLjItMTMuOC0xMC4zLTIwLjItMjguOC0yMC4yLTE2LjUgMC0yNi4zIDctMjYuMyAxOC42IDAgMTIuNyA5LjggMTYuMSAyNS42IDE3LjcgMTguOSAxLjkgMjAuNCA0LjYgMjAuNCA4LjMgMCA2LjUtNS4yIDkuMi0xNy40IDkuMi0xNS4zIDAtMTguNy0zLjgtMTkuOC0xMS40LS4xLS44LS44LTEuNC0xLjctMS40bC03LjUgMGMtLjkgMC0xLjcgLjctMS43IDEuNyAwIDkuNyA1LjMgMjEuMyAzMC42IDIxLjMgMTguNSAwIDI5LTcuMiAyOS0xOS44em01NC41LTUwLjFjMCA2LjEtNSAxMS4xLTExLjEgMTEuMXMtMTEuMS01LTExLjEtMTEuMWMwLTYuMyA1LjItMTEuMSAxMS4xLTExLjEgNi0uMSAxMS4xIDQuOCAxMS4xIDExLjF6bS0xLjggMGMwLTUuMi00LjItOS4zLTkuNC05LjMtNS4xIDAtOS4zIDQuMS05LjMgOS4zczQuMiA5LjQgOS4zIDkuNGM1LjItLjEgOS40LTQuMyA5LjQtOS40em0tNC41IDYuMmwtMi42IDBjLS4xLS42LS41LTMuOC0uNS0zLjktLjItLjctLjQtMS4xLTEuMy0xLjFsLTIuMiAwIDAgNS0yLjQgMCAwLTEyLjUgNC4zIDBjMS41IDAgNC40IDAgNC40IDMuMyAwIDIuMy0xLjUgMi44LTIuNCAzLjEgMS43IC4xIDEuOCAxLjIgMi4xIDIuOCAuMSAxIC4zIDIuNyAuNiAzLjN6bS0yLjgtOC44YzAtMS43LTEuMi0xLjctMS44LTEuN2wtMiAwIDAgMy41IDEuOSAwYzEuNiAwIDEuOS0xLjEgMS45LTEuOHpNMTM3LjMgMTkxYzAtMi43LTEuNC01LjEtMy43LTYuNEw3Mi4zIDE0OS4zYy0xLS42LTIuMi0uOS0zLjQtMWwtLjYgMGMtMS4yIDAtMi4zIC40LTMuNCAxTDMuNyAxODQuNkMxLjQgMTg1LjkgMCAxODguNCAwIDE5MWwuMSA5NWMwIDEuMyAuNyAyLjUgMS44IDMuMnMyLjUgLjcgMy43IDBMNDIgMjY4LjNjMi4zLTEuNCAzLjctMy44IDMuNy02LjRsMC00NC40YzAtMi42IDEuNC01LjEgMy43LTYuNGwxNS41LTguOWMxLjItLjcgMi40LTEgMy43LTFzMi42IC4zIDMuNyAxbDE1LjUgOC45YzIuMyAxLjMgMy43IDMuOCAzLjcgNi40bDAgNDQuNGMwIDIuNiAxLjQgNS4xIDMuNyA2LjRsMzYuNCAyMC45YzEuMSAuNyAyLjYgLjcgMy43IDAgMS4xLS42IDEuOC0xLjkgMS44LTMuMmwuMi05NXpNNDcyLjUgODcuM2wwIDE3Ni40YzAgMi42LTEuNCA1LjEtMy43IDYuNGwtNjEuMyAzNS40Yy0yLjMgMS4zLTUuMSAxLjMtNy40IDBsLTYxLjMtMzUuNGMtMi4zLTEuMy0zLjctMy44LTMuNy02LjRsMC03MC44YzAtMi42IDEuNC01LjEgMy43LTYuNGw2MS4zLTM1LjRjMi4zLTEuMyA1LjEtMS4zIDcuNCAwbDE1LjMgOC44YzEuNyAxIDMuOS0uMyAzLjktMi4ybDAtOTRjMC0yLjggMy00LjYgNS41LTMuMmwzNi41IDIwLjRjMi4zIDEuMiAzLjggMy43IDMuOCA2LjR6bS00NiAxMjguOWMwLS43LS40LTEuMy0uOS0xLjZsLTIxLTEyLjJjLS42LS4zLTEuMy0uMy0xLjkgMGwtMjEgMTIuMmMtLjYgLjMtLjkgLjktLjkgMS42bDAgMjQuM2MwIC43IC40IDEuMyAuOSAxLjZsMjEgMTIuMWMuNiAuMyAxLjMgLjMgMS44IDBsMjEtMTIuMWMuNi0uMyAuOS0uOSAuOS0xLjZsMC0yNC4zIC4xIDB6bTIwOS44LS43YzIuMy0xLjMgMy43LTMuOCAzLjctNi40bDAtMTcuMWMwLTIuNi0xLjQtNS4xLTMuNy02LjRsLTYwLjktMzUuNGMtMi4zLTEuMy01LjEtMS4zLTcuNCAwbC02MS4zIDM1LjRjLTIuMyAxLjMtMy43IDMuOC0zLjcgNi40bDAgNzAuOGMwIDIuNyAxLjQgNS4xIDMuNyA2LjRsNjAuOSAzNC43YzIuMiAxLjMgNSAxLjMgNy4zIDBsMzYuOC0yMC41YzIuNS0xLjQgMi41LTUgMC02LjRMNTUwIDI0MS42Yy0xLjItLjctMS45LTEuOS0xLjktMy4ybDAtMjIuMmMwLTEuMyAuNy0yLjUgMS45LTMuMmwxOS4yLTExLjFjMS4xLS43IDIuNi0uNyAzLjcgMEw1OTIuMSAyMTNjMS4xIC43IDEuOSAxLjkgMS45IDMuMmwwIDE3LjRjMCAyLjggMy4xIDQuNiA1LjYgMy4ybDM2LjctMjEuM3pNNTU5IDIxOWMtLjQgLjMtLjcgLjctLjcgMS4ybDAgMTMuNmMwIC41IC4zIDEgLjcgMS4ybDExLjggNi44Yy40IC4zIDEgLjMgMS40IDBMNTg0IDIzNWMuNC0uMyAuNy0uNyAuNy0xLjJsMC0xMy42YzAtLjUtLjMtMS0uNy0xLjJsLTExLjgtNi44Yy0uNC0uMy0xLS4zLTEuNCAwTDU1OSAyMTl6TTMwNC44IDI2Mi41bDAtNzAuNGMwLTIuNi0xLjYtNS4xLTMuOS02LjRsLTYxLjEtMzUuMmMtMi4xLTEuMi01LTEuNC03LjQgMGwtNjEuMSAzNS4yYy0yLjMgMS4zLTMuOSAzLjctMy45IDYuNGwwIDcwLjRjMCAyLjggMS45IDUuMiA0IDYuNGw2MS4yIDM1LjJjMi40IDEuNCA1LjIgMS4zIDcuNCAwbDYxLTM1LjJjMS44LTEgMy4xLTIuNyAzLjYtNC43IC4xLS41IC4yLTEuMSAuMi0xLjd6TTIzMC41IDEzNy42bC0uOCAuNSAxLjEgMC0uMy0uNXptNzYuMiAxMzAuMmwtLjQtLjcgMCAuOSAuNC0uMnoiXX0sWW1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvZGVwZW4iLGljb246WzUxMiw1MTIsW10sImYxY2IiLCJNNTAyLjMgMTU5LjdsLTIzNC0xNTZjLTgtNC45LTE2LjUtNS0yNC42IDBsLTIzNCAxNTZjLTYgNC05LjcgMTEuMS05LjcgMTguM0wwIDMzNGMwIDcuMSAzLjcgMTQuMyA5LjcgMTguM2wyMzQgMTU2YzggNC45IDE2LjUgNSAyNC42IDBsMjM0LTE1NmM2LTQgOS43LTExLjEgOS43LTE4LjNsMC0xNTZjMC03LjEtMy43LTE0LjMtOS43LTE4LjN6TTI3OCA2My4xbDE3Mi4zIDExNC45LTc2LjkgNTEuNC05NS40LTYzLjcgMC0xMDIuNnptLTQ0IDBMMjM0IDE2NS43IDEzOC42IDIyOS40IDYxLjcgMTc4IDIzNCA2My4xek00NCAyMTkuMUw5OS4xIDI1NiA0NCAyOTIuOCA0NCAyMTkuMXpNMjM0IDQ0OC44TDYxLjcgMzM0IDEzOC42IDI4Mi42IDIzNCAzNDYuMyAyMzQgNDQ4Ljh6TTI1NiAzMDhsLTc3LjctNTIgNzcuNy01MiA3Ny43IDUyLTc3LjcgNTJ6bTIyIDE0MC45bDAtMTAyLjYgOTUuNC02My43IDc2LjkgNTEuNC0xNzIuMyAxMTQuOXptMTkwLTE1NmwtNTUuMS0zNi45IDU1LjEtMzYuOSAwIDczLjd6Il19LEttcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyYXZlbHJ5IixpY29uOls1MTIsNTEyLFtdLCJmMmQ5IiwiTTQ5OC42IDIzNC4yYy0xLjItMTAuMy0xLjctMjAuOC0zLjctMzEtMi41LTEyLjQtNS43LTI0LjYtOS42LTM2LjYtNi44LTIwLjktMTcuMi00MC4zLTMwLjktNTcuNS01LjktNy42LTEyLjEtMTQuOC0xOC44LTIxLjctMTQuMS0xNC0zMC0yNi4xLTQ3LjEtMzYuMS0xNy44LTEwLjYtMzYuOC0xOC45LTU2LjctMjQuNy0xMS0zLjEtMjIuMy01LjQtMzMuNS03LjYtNi44LTEuMy0xMy43LTEuNy0yMC42LTIuNS0uMyAwLS42LS40LS45LS42LTEwLjggMC0yMS41IDAtMzIuMyAwLTIuNCAuNC00LjggLjktNy4yIDEuMi0xMS42IDEuMi0yMy4xIDMuNi0zNC4zIDcuMS0xMy44IDQuMS0yNy4xIDkuNi0zOS44IDE2LjQtMTMuMyA3LTI2LjEgMTUuMS0zOC4xIDI0LjItNi4yIDQuNi0xMi4zIDkuNC0xOCAxNC41LTEwLjIgOS4yLTIwLjQgMTguNC0yOS45IDI4LjMtMTIuOCAxMy4zLTI0LjEgMjguMS0zMy42IDQ0LTguNiAxNC0xNS41IDI5LTIwLjUgNDQuNi03LjIgMjIuNy0xMC4zIDQ2LjYtOS4yIDcwLjMgLjYgMTMuNSAyIDI2LjkgNC40IDQwLjIgMy40IDE4LjQgOSAzNi4zIDE2LjcgNTMuMyAxMy42IDI5LjIgMzIuMSA1MS41IDUwLjQgNjcuOSAxMi44IDExLjYgMjYuOCAyMS45IDQxLjggMzAuNiAxNy43IDEwLjQgMzYuNCAxOC45IDU1LjkgMjUuMyAxMy4zIDQuMyAyNi45IDcuNiA0MC42IDkuOCA2LjEgMSAxMi4zIDEuMyAxOC40IDEuOSAuNCAuMSAuOCAuMyAxLjIgLjZsMzIuMyAwYzIuNS0uNCA1LS45IDcuNS0xLjEgMTYuMy0xLjMgMzIuMS01LjMgNDcuNS0xMC43IDE3LjItNS45IDMzLjctMTMuOSA0OS0yMy44IDkuNy02LjQgMTkuNC0xMy4xIDI4LjctMjAuMSA1LjgtNC4zIDExLTkuNSAxNi4zLTE0LjUgNC0zLjcgNy44LTcuNiAxMS41LTExLjUgMTItMTIuNyAyMi42LTI2LjYgMzEuNC00MS42IDkuNS0xNiAxNy40LTMyLjkgMjIuMy01MC45IDIuOS0xMC40IDQuOS0yMSA3LTMxLjcgMS01LjMgMS4zLTEwLjcgMS45LTE2LjEgMC0uMyAuNC0uNiAuNi0uOWwwLTM3LjFjLS4yLS42LS40LTEuMi0uNi0xLjh6bS0xNjEuMS0xLjJzLTE2LjYtMy0yOC41LTNjLTI3LjIgMC0zMy42IDE0LjktMzMuNiAzN2wwIDkzLjctNzMuNSAwIDAtMTkwLjcgNzMuNSAwIDAgMzEuOWM4LjktMjYuOCAyNi44LTM2LjIgNjItMzYuMmwwIDY3LjN6Il19LFptcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbGlwYXkiLGljb246WzQ0OCw1MTIsW10sImY2NDIiLCJNMzc3LjcgMzJMNzAuMyAzMkMzMS40IDMyIDAgNjMuNCAwIDEwMi4zTDAgNDA5LjdDMCA0NDguNiAzMS40IDQ4MCA3MC4zIDQ4MGwzMDcuNSAwYzM4LjUgMCA2OS44LTMxLjEgNzAuMy02OS42LTQ2LTI1LjYtMTEwLjYtNjAuMy0xNzEuNi04OC40LTMyLjEgNDQtODQuMSA4MS0xNDguNiA4MS03MC42IDAtOTMuNy00NS4zLTk3LTc2LjQtNC0zOSAxNC45LTgxLjUgOTkuNS04MS41IDM1LjQgMCA3OS40IDEwLjIgMTI3LjEgMjUgMTYuNS0zMC4xIDI2LjUtNjAuMyAyNi41LTYwLjNsLTE3OC4yIDAgMC0xNi43IDkyLjEgMCAwLTMxLjItMTA5LjQgMCAwLTE5IDEwOS40IDAgMC01MC40IDUwLjkgMCAwIDUwLjQgMTA5LjQgMCAwIDE5LTEwOS40IDAgMCAzMS4yIDg4LjggMHMtMTUuMiA0Ni42LTM4LjMgOTAuOWM0OC45IDE2LjcgMTAwIDM2IDE0OC42IDUyLjdsMC0yMzQuNGMuMi0zOC43LTMxLjItNzAuMy02OS45LTcwLjN6TTQ3LjMgMzIzYzEgMjAuMiAxMC4yIDUzLjcgNjkuOSA1My43IDUyLjEgMCA5Mi42LTM5LjcgMTE3LjktNzIuOS00NC42LTE4LjctODQuNS0zMS40LTEwOS40LTMxLjQtNjcuNCAwLTc5LjQgMzMuMS03OC40IDUwLjZ6Il19LFFtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hbWV4IixpY29uOls1NzYsNTEyLFtdLCJmMWYzIiwiTTAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMS4xLTYxLjcgMC0zMS45LTM1LjEtMzEuOSAzNS4xLTIwMy43IDAgMC0xNjMuOC02NS44IDAgODEuNy0xODQuNyA3OC42IDAgMjguMSA2My4yIDAtNjMuMiA5Ny4yIDAgMTYuOSA0Ny42IDE3LTQ3LjYgNzUuNSAwIDAtMi40YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJ6bTQ0MC40LTIxLjdsNDIuMi00Ni4zIDQyIDQ2LjMgNTEuNCAwLTY4LTcyLjEgNjgtNzIuMS01MC42IDAtNDIgNDYuNy00MS41LTQ2LjctNTEuNCAwIDY3LjUgNzIuNS02Ny40IDcxLjYgMC0zMy4xLTgzIDAgMC0yMi4yIDgwLjkgMCAwLTMyLjMtODAuOSAwIDAtMjIuNCA4MyAwIDAtMzMuMS0xMjIgMCAwIDE0My4yIDE3MS44IDB6bTk2LjMtNzJsMzkuMyA0MS45IDAtODMuMy0zOS4zIDQxLjR6bS0zNi4zLTkybDM2LjktMTAwLjYgMCAxMDAuNiAzOC43IDAgMC0xNDMuMy02MC4yIDAtMzIuMiA4OS4zLTMxLjktODkuMy02MS4yIDAgMCAxNDMuMS02My4yLTE0My4xLTUxLjIgMC02Mi40IDE0My4zIDQzIDAgMTEuOS0yOC43IDY1LjkgMCAxMiAyOC43IDgyLjcgMCAwLTEwMC4zIDM2LjggMTAwLjMgMzQuNCAwek0yODIgMTg1LjRsMTkuNS00Ni45IDE5LjQgNDYuOS0zOC45IDB6Il19LFhtcj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLWFsdCIsaWNvbjpbNTc2LDUxMixbXSwiZjFhOCIsIk0yNDQgMjQ2Yy0zLjItMi02LjMtMi45LTEwLjEtMi45LTYuNiAwLTEyLjYgMy4yLTE5LjMgMy43bDEuNyA0LjkgMjcuNy01Ljd6TTM3OS45IDQ0My45Yy0xOSAwLTY0LjEgOS41LTc5LjkgMTkuOGw2LjkgNDUuMWMzNS43IDYuMSA3MC4xIDMuNiAxMDYtOS44LTQuOC0xMC0yMy41LTU1LjEtMzMtNTUuMXpNMzQwLjggMTc3YzYuNiAyLjggMTEuNSA5LjIgMjIuNyAyMi4xIDItMS40IDcuNS01LjIgNy41LTguNiAwLTQuOS0xMS44LTEzLjItMTMuMi0yMyAxMS4yLTUuNyAyNS4yLTYgMzcuNi04LjkgNjguMS0xNi40IDExNi4zLTUyLjkgMTQ2LjgtMTE2LjcgNi4xLTEyLjYgMTEuOC0yNS44IDEyLjQtMzkuOWwtMiAyLjZjLTI4LjQgNTAtMzMgNjMuMi04MS4zIDEwMC0zMS45IDI0LjQtNjkuMiA0MC4yLTEwNi42IDU0LjZsLTYuMy0uMyAwLTIxLjhjLTE5LjYgMS42LTE5LjctMTQuNi0zMS42LTIzLTE4LjcgMjAuNi0zMS42IDQwLjgtNTguOSA1MS4xLTEyLjcgNC44LTE5LjYgMTAtMjUuOSAyMS44IDM0LjktMTYuNCA5MS4yLTEzLjUgOTguOC0xMHpNNTU1LjUgMGwtLjYgMS4xLS4zIC45IC42LS42IC4zLTEuNHpNNDk2LjMgMzgyLjFjLTMzLjktNTYuOS03NS4zLTExOC40LTE1MC0xMTUuNWwtLjMtNmMtMS4xLTEzLjUgMzIuOCAzLjIgMzUuMS0zMWwtMTQuNCA3LjJjLTE5LjgtNDUuNy04LjYtNTQuMy02NS41LTU0LjMtMTQuNyAwLTI2LjcgMS43LTQxLjQgNC42IDIuOSAxOC42IDIuMiAzNi43LTEwLjkgNTAuM2wxOS41IDUuNWMtMS43IDMuMi0yLjkgNi4zLTIuOSA5LjggMCAyMSA0Mi44IDIuOSA0Mi44IDMzLjYgMCAxOC40LTM2LjggNjAuMS01NC45IDYwLjEtOCAwLTUzLjctNTAtNTMuNC02MC4xbC4zLTQuNiA1Mi4zLTExLjVjMTMtMi42IDEyLjMtMjIuNy0yLjktMjIuNy0zLjcgMC00My4xIDkuMi00OS40IDEwLjYtMi01LjItNy41LTE0LjEtMTMuOC0xNC4xLTMuMiAwLTYuMyAzLjItOS41IDQtOS4yIDIuNi0zMSAyLjktMjEuNSAyMC4xTDE1LjkgMjk4LjVjLTUuNSAxLjEtOC45IDYuMy04LjkgMTEuOCAwIDYgNS41IDEwLjkgMTEuNSAxMC45IDggMCAxMzEuMy0yOC40IDE0Ny40LTMyLjIgMi42IDMuMiA0LjYgNi4zIDcuOCA4LjYgMjAuMSAxNC40IDU5LjggODUuOSA3Ni40IDg1LjkgMjQuMSAwIDU4LTIyLjQgNzEuMy00MS45IDMuMi00LjMgNi45LTcuNSAxMi40LTYuOSAuNiAxMy44LTMxLjYgMzQuMi0zMyA0My43LTEuNCAxMC4yLTEgMzUuMi0uMyA0MS4xIDI2LjcgOC4xIDUyLTMuNiA3Ny45LTIuOSA0LjMtMjEgMTAuNi00MS45IDkuOC02My41bC0uMy05LjVjLTEuNC0zNC4yLTEwLjktMzguNS0zNC44LTU4LjYtMS4xLTEuMS0yLjYtMi42LTMuNy00IDIuMi0xLjQgMS4xLTEgNC42LTEuNyA4OC41IDAgNTYuMyAxODMuNiAxMTEuNSAyMjkuOSAzMy4xLTE1IDcyLjUtMjcuOSAxMDMuNS00Ny4yLTI5LTI1LjYtNTIuNi00NS43LTcyLjctNzkuOXpNMzAwLjEgNDI4LjJsMCAyNy4yIDExLjgtMy40LTIuOS0yMy44LTguOSAwek0yMzEuNCAyNzcuOGwyNC4xIDYxLjIgMjEtMTMuOC0zMS4zLTUwLjktMTMuOCAzLjV6bTg0LjQgMTU0LjlsMiAxMi40YzktMS41IDU4LjQtNi42IDU4LjQtMTQuMSAwLTEuNC0uNi0zLjItLjktNC42LTI2LjggMC0zNi45IDMuOC01OS41IDYuM3oiXX0sSm1yPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxldHRlcmJveGQiLGljb246WzY0MCw1MTIsW10sImU2MmQiLCJNNTIxLjMgMTI4QzU4Ni45IDEyOCA2NDAgMTgxLjEgNjQwIDI0Ni42UzU4Ni45IDM2NS4yIDUyMS4zIDM2NS4yYy00Mi41IDAtNzkuNy0yMi4zLTEwMC43LTU1LjggMTEuNC0xOC4yIDE4LTM5LjcgMTgtNjIuOHMtNi42LTQ0LjYtMTgtNjIuOGwuOC0xLjJjMjAuOC0zMi4zIDU2LjgtNTMuOSA5Ny45LTU0LjZsMiAwek0zMjAgMTI4YzQyLjUgMCA3OS43IDIyLjMgMTAwLjcgNTUuOC0xMS40IDE4LjItMTggMzkuNy0xOCA2Mi44czYuNiA0NC42IDE4IDYyLjhsLS44IDEuMmMtMjAuOCAzMi4zLTU2LjggNTMuOS05Ny45IDU0LjZsLTIgMGMtNDIuNSAwLTc5LjctMjIuMy0xMDAuNy01NS44IDExLjQtMTguMiAxOC0zOS43IDE4LTYyLjhzLTYuNi00NC42LTE4LTYyLjhsLjgtMS4yYzIwLjgtMzIuMyA1Ni44LTUzLjkgOTcuOS01NC42bDIgMHptLTIwMS4zIDBjNDIuNSAwIDc5LjcgMjIuMyAxMDAuNyA1NS44LTExLjQgMTguMi0xOCAzOS43LTE4IDYyLjhzNi42IDQ0LjYgMTggNjIuOGwtLjggMS4yYy0yMC44IDMyLjMtNTYuOCA1My45LTk3LjkgNTQuNmwtMiAwQzUzLjEgMzY1LjEgMCAzMTIuMSAwIDI0Ni42UzUzLjEgMTI4IDExOC43IDEyOHoiXX0sZTVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZXJhIixpY29uOls1MTIsNTEyLFtdLCJmMjZhIiwiTTMyMS45IDMyLjdjLTE3MC4yIDAtMjUyLjYgMjIzLjgtMTQ3LjUgMzU1LjEgMzYuNSA0NS40IDg4LjYgNzUuNiAxNDcuNSA3NS42IDM2LjMgMCA3MC4zLTExLjEgOTkuNC0zMC40LTQzLjggMzkuMi0xMDEuOSA2My0xNjUuMyA2My0zLjkgMC04IDAtMTEuOS0uMy0xMzEuNS02LjEtMjM2LjEtMTE0LjYtMjM2LjEtMjQ3LjcgMC0xMzcgMTExLTI0OCAyNDgtMjQ4bC44IDBjNjMuMSAuMyAxMjAuNyAyNC4xIDE2NC40IDYzLjEtMjktMTkuNC02My4xLTMwLjQtOTkuMy0zMC40ek00MjMuNyA0MzAuNGMtNDAuOSAyNC43LTkwLjcgMjMuNi0xMzItNS44IDU2LjItMjAuNSA5Ny43LTkxLjYgOTcuNy0xNzYuNiAwLTg0LjctNDEuMi0xNTUuOC05Ny40LTE3Ni42IDQxLjgtMjkuMiA5MS4yLTMwLjMgMTMyLjktNSAxMDUuOSA5OC43IDEwNS41IDI2NS43LTEuMiAzNjR6Il19LHQ1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWlibyIsaWNvbjpbNTEyLDUxMixbXSwiZjE4YSIsIk00MDcgMTc3LjZjNy42LTI0LTEzLjQtNDYuOC0zNy40LTQxLjctMjIgNC44LTI4LjgtMjguMS03LjEtMzIuOCA1MC4xLTEwLjkgOTIuMyAzNy4xIDc2LjUgODQuOC02LjggMjEuMi0zOC44IDEwLjgtMzItMTAuM3pNMjE0LjggNDQ2LjdjLTEwNi4zIDAtMjE0LjgtNTEuNC0yMTQuOC0xMzYuMyAwLTQ0LjMgMjgtOTUuNCA3Ni4zLTE0My43IDk5LjctOTkuNyAyMDMuMi0xMDAuOSAxNzMuNi01LjctNCAxMy4xIDEyLjMgNS43IDEyLjMgNiA3OS41LTMzLjYgMTQwLjUtMTYuOCAxMTQgNTEuNC0zLjcgOS40IDEuMSAxMC45IDguMyAxMy4xIDEzNS43IDQyLjMgMzQuOCAyMTUuMi0xNjkuNyAyMTUuMnpNMzU4LjUgMzAwLjRjLTUuNC01NS43LTc4LjUtOTQtMTYzLjQtODUuNy04NC44IDguNi0xNDguOCA2MC4zLTE0My40IDExNnM3OC41IDk0IDE2My40IDg1LjdjODQuOC04LjYgMTQ4LjgtNjAuMyAxNDMuNC0xMTZ6TTM0Ny45IDM1LjFjLTI1LjkgNS42LTE2LjggNDMuNyA4LjMgMzguMyA3Mi4zLTE1LjIgMTM0LjggNTIuOCAxMTEuNyAxMjQtNy40IDI0LjIgMjkuMSAzNyAzNy40IDEyIDMxLjktOTkuOC01NS4xLTE5NS45LTE1Ny40LTE3NC4zem0tNzguNSAzMTFjLTE3LjEgMzguOC02Ni44IDYwLTEwOS4xIDQ2LjMtNDAuOC0xMy4xLTU4LTUzLjQtNDAuMy04OS43IDE3LjctMzUuNCA2My4xLTU1LjQgMTAzLjQtNDUuMSA0MiAxMC44IDYzLjEgNTAuMiA0NiA4OC41em0tODYuMy0zMGMtMTIuOS01LjQtMzAgLjMtMzggMTIuOS04LjMgMTIuOS00LjMgMjggOC42IDM0IDEzLjEgNiAzMC44IC4zIDM5LjEtMTIuOSA4LTEzLjEgMy43LTI4LjMtOS43LTM0em0zMi42LTEzLjRjLTUuMS0xLjctMTEuNCAuNi0xNC4zIDUuNC0yLjkgNS4xLTEuNCAxMC42IDMuNyAxMi45IDUuMSAyIDExLjctLjMgMTQuNi01LjQgMi44LTUuMiAxLjEtMTAuOS00LTEyLjl6Il19LHI1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFkbWUiLGljb246WzU3Niw1MTIsW10sImY0ZDUiLCJNNTI4LjMgNDYuNWwtMTM5LjggMGMtNDguMSAwLTg5LjkgMzMuMy0xMDAuNCA4MC4zLTEwLjYtNDctNTIuMy04MC4zLTEwMC40LTgwLjNMNDggNDYuNUMyMS41IDQ2LjUgMCA2OCAwIDk0LjVMMCAzNDAuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OGw4OS43IDBjMTAyLjIgMCAxMzIuNyAyNC40IDE0Ny4zIDc1IC43IDIuOCA1LjIgMi44IDYgMCAxNC43LTUwLjYgNDUuMi03NSAxNDcuMy03NWw4OS43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNDUuN2MwLTI2LjQtMjEuMy00Ny45LTQ3LjctNDguMXpNMjQyIDMxMS45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHpNNTAxLjMgMzExLjhjMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjhjMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOC0uMSAweiJdfSxhNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29sYW5nIixpY29uOls2NDAsNTEyLFtdLCJlNDBmIiwiTTQwMC4xIDE5NC44Yy0xMC45IDIuOC0xOS45IDQuMy0yOS4xIDcuNi03LjMgMS45LTE0LjcgMy45LTIzLjIgNi4xbC0uNiAuMWMtNC4yIDEuMi00LjYgMS4zLTguNS0zLjItNC43LTUuMy04LjEtOC43LTE0LjYtMTEuOS0xOS43LTkuNi0zOC43LTYuOC01Ni40IDQuNy0yMS4yIDEzLjctMzIuMSAzNC0zMS44IDU5LjIgLjMgMjUgMTcuNCA0NS41IDQxLjIgNDguOSAyMiAyLjggMzkuOC00LjYgNTMuOC0yMC41IDIuMS0yLjYgNC01LjMgNi4xLTguMyAuOC0xIDEuNS0yLjEgMi4zLTMuM2wtNjAuMSAwYy02LjUgMC04LjEtNC01LjktOS4zIDQtOS43IDExLjUtMjUuOSAxNS45LTM0IC45LTEuOCAzLjEtNS44IDYuOS01LjhsMTAxLjEgMGM0LjUtMTMuNCAxMS44LTI2LjkgMjEuNi0zOS43IDIyLjctMjkuOSA0OS4zLTQ1LjUgODcuMi01MiAzMS44LTUuNiA2MS43LTIuNSA4OC45IDE1LjkgMjQuNiAxNi44IDM5LjggMzkuNiA0My45IDY5LjUgNS4zIDQyLjEtNi45IDc2LjMtMzYuNyAxMDUuNi0xOS43IDIwLjktNDQuOSAzNC03My45IDM5LjktNS42IDEtMTEuMSAxLjUtMTYuNSAyLTIuOSAuMi01LjcgLjUtOC41IC44LTI4LjMtLjYtNTQuMi04LjctNzYtMjcuNC0xNS4zLTEzLjMtMjUuOS0yOS42LTMxLjEtNDguNS0zLjcgNy4zLTggMTQuNC0xNCAyMS4xLTIxLjYgMjkuNi01MC45IDQ4LTg3LjkgNTIuOS0zMC42IDQuMS01OC45LTEuOC04My45LTIwLjUtMjMtMTcuNS0zNi4xLTQwLjUtMzkuNS02OS4yLTQuMS0zNCA1LjktNjUuNCAyNi40LTkxLjMgMjIuMi0yOSA1MS41LTQ3LjQgODcuMy01My45IDI5LjMtNi4yIDU3LjMtMS45IDgyLjYgMTUuMyAxNi41IDEwLjkgMjguMyAyNS44IDM2LjEgNDMuOSAxLjkgMi44IC42IDQuNC0zLjEgNS4zek00OC4zIDIwMC40Yy0xLjMgMC0xLjYtLjYtLjktMS42bDYuNi04LjRjLjYtLjkgMi4yLTEuNSAzLjQtMS41bDExMS4zIDBjMS4yIDAgMS41IC45IC45IDEuOGwtNS4zIDguMWMtLjYgMS0yLjIgMS45LTMuMSAxLjlsLTExMi44LS4zek0xLjIgMjI5LjFjLTEuMiAwLTEuNi0uNy0uOS0xLjZsNi41LTguNGMuNi0uOSAyLjItMS42IDMuNC0xLjZsMTQyLjEgMGMxLjIgMCAxLjggMSAxLjUgMS45bC0yLjUgNy41Yy0uMyAxLjItMS41IDEuOS0yLjggMS45TDEuMiAyMjkuMXptNzQuNSAyNi44Yy0uNiAuOS0uMyAxLjggLjkgMS44bDY4IC4zYy45IDAgMi4yLS45IDIuMi0yLjFsLjYtNy41YzAtMS4zLS42LTIuMi0xLjktMi4ybC02Mi4zIDBjLTEuMiAwLTIuNSAuOS0zLjEgMS45bC00LjQgNy44em01MDEuNS0xOGMtLjItMi42LS4zLTQuOC0uNy03LTUuNi0zMC44LTM0LTQ4LjMtNjMuNi00MS40LTI5IDYuNS00Ny43IDI0LjktNTQuNSA1NC4yLTUuNiAyNC4zIDYuMiA0OC45IDI4LjYgNTguOSAxNy4yIDcuNSAzNC4zIDYuNiA1MC44LTEuOSAyNC42LTEzLjYgMzgtMzIuNyAzOS42LTU5LjUtLjEtMS4yLS4xLTIuMy0uMi0zLjN6Il19LGk1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFjay1leGNoYW5nZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4ZCIsIk0xOC4xIDMzMi4zbDQxMi43IDAgMCAyMmMwIDM3LjctMjkuMyA2OC02NS4zIDY4bC0xOSAwLTg2LjggODkuNyAwLTg5LjctMTc2LjMgMGMtMzYgMC02NS4zLTMwLjMtNjUuMy02OGwwLTIyem0wLTIzLjZsNDEyLjcgMCAwLTg1LTQxMi43IDAgMCA4NXptMC0xMDkuNGw0MTIuNyAwIDAtODUtNDEyLjcgMCAwIDg1ek0zNjUuNCAwTDgzLjQgMGMtMzYgMC02NS4zIDMwLjMtNjUuMyA2Ny43bDAgMjIuMyA0MTIuNyAwIDAtMjIuM0M0MzAuNyAzMC4zIDQwMS40IDAgMzY1LjQgMHoiXX0sczVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imd1bHAiLGljb246WzI1Niw1MTIsW10sImYzYWUiLCJNMjEwIDM5MS4xbC0xNC4xIDI0LjYtNC42IDgwLjJjMCA4LjktMjguMyAxNi4xLTYzLjEgMTYuMXMtNjMuMS03LjItNjMuMS0xNi4xbC01LjgtNzkuNC0xNC45LTI1LjRjNDEuMiAxNy4zIDEyNiAxNi43IDE2NS42IDB6TTE0IDEzNy44TDI3LjYgMjYzLjNjNS45LTIwIDIwLjgtNDcgNDAtNTUuMiA2LjMtMi43IDEyLjctMi43IDE4LjcgLjkgNS4yIDMgOS42IDkuMyAxMC4xIDExLjggMS4yIDYuNS0yIDkuMS00LjUgOS4xLTMgMC01LjMtNC42LTYuOC03LjMtNC4xLTcuMy0xMC4zLTcuNi0xNi45LTIuOC02LjkgNS0xMi45IDEzLjQtMTcuMSAyMC43LTUuMSA4LjgtOS40IDE4LjUtMTIgMjguMi0xLjUgNS42LTIuOSAxNC42LS42IDE5LjkgMSAyLjIgMi41IDMuNiA0LjkgMy42IDUgMCAxMi4zLTYuNiAxNS44LTEwLjEgNC41LTQuNSAxMC4zLTExLjUgMTIuNS0xNmw1LjItMTUuNWMyLjYtNi44IDkuOS01LjYgOS45IDAgMCAxMC4yLTMuNyAxMy42LTEwIDM0LjctNS44IDE5LjUtNy42IDI1LjgtNy42IDI1LjgtLjcgMi44LTMuNCA3LjUtNi4zIDcuNS0xLjIgMC0yLjEtLjQtMi42LTEuMi0xLTEuNC0uOS01LjMtLjgtNi4zIC4yLTMuMiA2LjMtMjIuMiA3LjMtMjUuMi0yIDIuMi00LjEgNC40LTYuNCA2LjYtNS40IDUuMS0xNC4xIDExLjgtMjEuNSAxMS44LTMuNCAwLTUuNi0uOS03LjctMi40bDcuNiA3OS42YzIgNSAzOS4yIDE3LjEgODguMiAxNy4xIDQ5LjEgMCA4Ni4zLTEyLjIgODguMi0xNy4xbDEwLjktOTQuNmMtNS43IDUuMi0xMi4zIDExLjYtMTkuNiAxNC44LTUuNCAyLjMtMTcuNCAzLjgtMTcuNC01LjcgMC01LjIgOS4xLTE0LjggMTQuNC0yMS41IDEuNC0xLjcgNC43LTUuOSA0LjctOC4xIDAtMi45LTYtMi4yLTExLjcgMi41LTMuMiAyLjctNi4yIDYuMy04LjcgOS43LTQuMyA2LTYuNiAxMS4yLTguNSAxNS41LTYuMiAxNC4yLTQuMSA4LjYtOS4xIDIyLTUgMTMuMy00LjIgMTEuOC01LjIgMTQtLjkgMS45LTIuMiAzLjUtNCA0LjUtMS45IDEtNC41IC45LTYuMS0uMy0uOS0uNi0xLjMtMS45LTEuMy0zLjcgMC0uOSAuMS0xLjggLjMtMi43IDEuNS02LjEgNy44LTE4LjEgMTUtMzQuMyAxLjYtMy43IDEtMi42IC44LTIuMy02LjIgNi0xMC45IDguOS0xNC40IDEwLjUtNS44IDIuNi0xMyAyLjYtMTQuNS00LjEtLjEtLjQtLjEtLjgtLjItMS4yLTExLjggOS4yLTI0LjMgMTEuNy0yMC04LjEtNC42IDguMi0xMi42IDE0LjktMjIuNCAxNC45LTQuMSAwLTcuMS0xLjQtOC42LTUuMS0yLjMtNS41IDEuMy0xNC45IDQuNi0yMy44IDEuNy00LjUgNC05LjkgNy4xLTE2LjIgMS42LTMuNCA0LjItNS40IDcuNi00LjUgLjYgLjIgMS4xIC40IDEuNiAuNyAyLjYgMS44IDEuNiA0LjUgLjMgNy4yLTMuOCA3LjUtNy4xIDEzLTkuMyAyMC44LS45IDMuMy0yIDkgMS41IDkgMi40IDAgNC43LS44IDYuOS0yLjQgNC42LTMuNCA4LjMtOC41IDExLjEtMTMuNSAyLTMuNiA0LjQtOC4zIDUuNi0xMi4zIC41LTEuNyAxLjEtMy4zIDEuOC00LjggMS4xLTIuNSAyLjYtNS4xIDUuMi01LjEgMS4zIDAgMi40IC41IDMuMiAxLjUgMS43IDIuMiAxLjMgNC41IC40IDYuOS0yIDUuNi00LjcgMTAuNi02LjkgMTYuNy0xLjMgMy41LTIuNyA4LTIuNyAxMS43IDAgMy40IDMuNyAyLjYgNi44IDEuMiAyLjQtMS4xIDQuOC0yLjggNi44LTQuNSAxLjItNC45IC45LTMuOCAyNi40LTY4LjIgMS4zLTMuMyAzLjctNC43IDYuMS00LjcgMS4yIDAgMi4yIC40IDMuMiAxLjEgMS43IDEuMyAxLjcgNC4xIDEgNi4yLS43IDEuOS0uNiAxLjMtNC41IDEwLjUtNS4yIDEyLjEtOC42IDIwLjgtMTMuMiAzMS45LTEuOSA0LjYtNy43IDE4LjktOC43IDIyLjMtLjYgMi4yLTEuMyA1LjggMSA1LjggNS40IDAgMTkuMy0xMy4xIDIzLjEtMTcgLjItLjMgLjUtLjQgLjktLjYgLjYtMS45IDEuMi0zLjcgMS43LTUuNSAxLjQtMy44IDIuNy04LjIgNS4zLTExLjMgLjgtMSAxLjctMS42IDIuNy0xLjYgMi44IDAgNC4yIDEuMiA0LjIgNCAwIDEuMS0uNyA1LjEtMS4xIDYuMiAxLjQtMS41IDIuOS0zIDQuNS00LjUgMTUtMTMuOSAyNS43LTYuOCAyNS43IC4yIDAgNy40LTguOSAxNy43LTEzLjggMjMuNC0xLjYgMS45LTQuOSA1LjQtNSA2LjQgMCAxLjMgLjkgMS44IDIuMiAxLjggMiAwIDYuNC0zLjUgOC00LjcgNS0zLjkgMTEuOC05LjkgMTYuNi0xNC4xbDE0LjgtMTM2LjhjLTMwLjUgMTcuMS0xOTcuNiAxNy4yLTIyOC4zIC4yem0yMjkuNy04LjVjMCAyMS0yMzEuMiAyMS0yMzEuMiAwIDAtOC44IDUxLjgtMTUuOSAxMTUuNi0xNS45IDkgMCAxNy44IC4xIDI2LjMgLjRMMTY3IDY1LjEgMjI4LjMgLjZjMS40LTEuNCA1LjgtLjIgOS45IDMuNXM2LjYgNy45IDUuMyA5LjNsLS4xIC4xLTU3LjMgNjAuNS0xMCA0MC43YzM5LjkgMi42IDY3LjYgOC4xIDY3LjYgMTQuNnptLTY5LjQgNC42YzAtLjgtLjktMS41LTIuNS0yLjFsLS4yIC44YzAgMS4zLTUgMi40LTExLjEgMi40cy0xMS4xLTEuMS0xMS4xLTIuNGMwLS4xIDAtLjIgLjEtLjNsLjItLjdjLTEuOCAuNi0zIDEuNC0zIDIuMyAwIDIuMSA2LjIgMy43IDEzLjcgMy43IDcuNyAuMSAxMy45LTEuNiAxMy45LTMuN3oiXX0sbjVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InllbHAiLGljb246WzM4NCw1MTIsW10sImYxZTkiLCJNNDIuOSAyNDAuM2w5OS42IDQ4LjZjMTkuMiA5LjQgMTYuMiAzNy41LTQuNSA0Mi43TDMwLjUgMzU4LjVjLTMuMiAuOC02LjQgLjktOS42IC4zcy02LjItMS44LTguOS0zLjctNC45LTQuMy02LjYtNy4xLTIuNy01LjktMy4xLTkuMmMtMy4zLTI4LjgtLjItNTcuOSA5LTg1LjMgMS0zLjEgMi43LTUuOSA0LjktOC4zczQuOS00LjIgNy45LTUuNSA2LjItMS44IDkuNS0xLjggNi40IC45IDkuMyAyLjN6bTQ0IDIzOS4zYzIzLjggMTYuMyA1MC45IDI3LjMgNzkuNCAzMi4xIDMuMiAuNiA2LjUgLjQgOS42LS40czYuMS0yLjMgOC42LTQuNCA0LjYtNC42IDYtNy41IDIuMy02LjEgMi40LTkuNGwzLjktMTEwLjhjLjctMjEuMy0yNS41LTMxLjktMzkuOC0xNi4xTDgyLjggNDQ1LjVjLTIuMiAyLjQtMy44IDUuMy00LjggOC40cy0xLjMgNi40LS45IDkuNiAxLjUgNi4zIDMuMSA5LjEgMy45IDUuMiA2LjYgN2wwIDB6TTIzMi4yIDM2OS43bDU4LjggOTRjMS43IDIuOCA0IDUuMSA2LjggNi45czUuOCAzIDkgMy41IDYuNSAuMyA5LjctLjUgNi4xLTIuNCA4LjYtNC40YzIyLjMtMTguNCA0MC4zLTQxLjUgNTIuNy02Ny42IDEuNC0yLjkgMi4xLTYuMSAyLjItOS40cy0uNi02LjUtMS45LTkuNC0zLjItNS43LTUuNi03LjgtNS4yLTMuOS04LjMtNC45TDI1OC43IDMzNS43Yy0yMC4zLTYuNS0zNy44IDE1LjgtMjYuNSAzMy45ek0zODAuNiAyMzcuNGMtMTEuNS0yNi41LTI4LjctNTAuMi01MC40LTY5LjMtMi40LTIuMS01LjMtMy43LTguNC00LjdzLTYuNC0xLjItOS42LS44LTYuMyAxLjUtOS4xIDMuMi01LjEgNC02LjkgNi43bC02MiA5MS45Yy0xMS45IDE3LjcgNC43IDQwLjYgMjUuMiAzNC43TDM2NiAyNjguNmMzLjEtLjkgNi0yLjUgOC41LTQuNnM0LjUtNC43IDUuOC03LjcgMi4xLTYuMiAyLjItOS40LS42LTYuNS0xLjktOS41bDAgMHpNNjIuMSAzMC4yYy0yLjggMS40LTUuNCAzLjMtNy40IDUuN3MtMy42IDUuMi00LjUgOC4yLTEuMiA2LjItLjkgOS4zIDEuMyA2LjEgMi45IDguOUwxNTYuMyAyNDIuNmMxMS43IDIwLjIgNDIuNiAxMS45IDQyLjYtMTEuNGwwLTIwOC4zYzAtMy4xLS42LTYuMy0xLjgtOS4ycy0zLjEtNS41LTUuNC03LjYtNS0zLjgtOC00LjgtNi4xLTEuNC05LjMtMS4yYy0zOSAzLjEtNzcgMTMuMy0xMTIuMyAzMC4xeiJdfSxvNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29mb3JlIixpY29uOls0NDgsNTEyLFtdLCJmM2E3IiwiTTM0OCAzMTkuOGwtMTMuMiAwIDAgMzQuN2MtMjQuNSAyMy4xLTU2LjMgMzUuOC04OS45IDM1LjgtNzMuMiAwLTEzMi40LTYwLjItMTMyLjQtMTM0LjQgMC03NC4xIDU5LjItMTM0LjQgMTMyLjQtMTM0LjQgMzUuMyAwIDY4LjYgMTQgOTMuNiAzOS40bDYyLjMtNjMuM2MtNDEuOC00Mi4zLTk3LjEtNjUuNi0xNTYuMS02NS42LTEyMi43IDAtMjIwLjcgMTAwLjYtMjIwLjcgMjI0IDAgMTIyLjUgOTcgMjI0IDIyMC43IDIyNCA2My4yIDAgMTI0LjUtMjYuMiAxNzEtODIuNS0yLTI3LjYtMTMuNC03Ny43LTY3LjctNzcuN3pNMzM1LjkgMjA3LjNsLTEwNi4zIDAgMCA4OSAxMTguNCAwYzMzLjUgMCA2MC41IDE1LjEgNzYgNDEuOGwwLTMwLjZjMC02NS4yLTQwLjQtMTAwLjItODguMS0xMDAuMnoiXX0sbDVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF2aWF0byIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMSIsIk0xMDcuMiAyODMuNWwtMTktNDEuOC01Mi4xIDAtMTkgNDEuOC0xNy4xIDAgNjIuMi0xMzEuNCA2Mi4yIDEzMS40LTE3LjIgMHptLTQ1LTk4LjFsLTE5LjYgNDIuNSAzOS4yIDAtMTkuNi00Mi41ek0xNzQuOSAyODcuOGwtNjIuMi0xMzEuNCAxNy4xIDAgNDUuMSA5NiA0NS4xLTk2IDE3IDAtNjIuMSAxMzEuNHptODAuNi00LjNsMC0xMjcuMSAxNS41IDAgMCAxMjcuMS0xNS41IDB6TTQ2NC42IDE2Ny45bDAgMTE1LjYtMTcuMyAwIDAtMTE1LjYtNDEuMiAwIDAtMTEuNSA5OS42IDAgMCAxMS41LTQxLjEgMHpNNjQwIDIxOC44YzAgOS4yLTEuNyAxNy44LTUuMSAyNS44cy04LjIgMTUuMS0xNC4yIDIxLjEtMTMuMSAxMC44LTIxLjEgMTQuMi0xNi42IDUuMS0yNS44IDUuMS0xNy44LTEuNy0yNS44LTUuMS0xNS4xLTguMi0yMS4xLTE0LjItMTAuOC0xMy0xNC4yLTIxLjFjLTMuNC04LTUuMS0xNi42LTUuMS0yNS44czEuNy0xNy44IDUuMS0yNS44IDguMi0xNS4xIDE0LjItMjEuMSAxMy04LjQgMjEuMS0xMS45YzgtMy40IDE2LjYtNS4xIDI1LjgtNS4xczE3LjggMS43IDI1LjggNS4xIDE1LjEgNS44IDIxLjEgMTEuOWM2IDYgMTAuNyAxMy4xIDE0LjIgMjEuMSAzLjQgOCA1LjEgMTYuNiA1LjEgMjUuOHptLTE1LjUgMGMwLTcuMy0xLjMtMTQtMy45LTIwLjNzLTYuMi0xMS43LTEwLjgtMTYuMy0xMC04LjItMTYuMi0xMC45LTEyLjgtNC0xOS44LTQtMTMuNiAxLjMtMTkuOCA0LTExLjYgNi4zLTE2LjIgMTAuOS04LjIgMTAtMTAuOCAxNi4zLTMuOSAxMy4xLTMuOSAyMC4zYzAgNy4zIDEuMyAxNCAzLjkgMjAuM3M2LjIgMTEuNyAxMC44IDE2LjMgMTAgOC4yIDE2LjIgMTAuOSAxMi44IDQgMTkuOCA0IDEzLjYtMS4zIDE5LjgtNCAxMS42LTYuMyAxNi4yLTEwLjkgOC4yLTEwIDEwLjgtMTYuMyAzLjktMTMuMSAzLjktMjAuM3ptLTk0LjggOTYuN2wwLTYuMyA4OC45LTEwLTI0Mi45IDEzLjRjLjYtMi4yIDEuMS00LjYgMS40LTcuMiAuMy0yIC41LTQuMiAuNi02LjVsNjQuOC04LjEtNjQuOSAxLjljMC0uNC0uMS0uNy0uMS0xLjEtMi44LTE3LjItMjUuNS0yMy43LTI1LjUtMjMuN2wtMS4xLTI2LjMgMjMuOCAwIDE5IDQxLjggMTcuMSAwLTYyLjItMTMxLjQtNjIuMiAxMzEuNCAxNy4xIDAgMTktNDEuOCAyMy42IDAtMS4xIDI2LjRzLTIyLjcgNi41LTI1LjUgMjMuN2MtLjEgLjMtLjEgLjctLjEgMS4xbC02NC45LTEuOSA2NC44IDguMWMuMSAyLjMgLjMgNC40IC42IDYuNSAuMyAyLjYgLjggNSAxLjQgNy4ybC0yNDIuOS0xMy41IDg4LjkgMTAgMCA2LjNjLTUuOSAuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNHMxMi40LTUuNiAxMi40LTEyLjRjMC02LjItNC42LTExLjMtMTAuNS0xMi4ybDAtNS44IDgwLjMgOSAwIDUuNGMtNS43IDEuMS05LjkgNi4yLTkuOSAxMi4xIDAgNi44IDUuNiAxMC4yIDEyLjQgMTAuMnMxMi40LTMuNCAxMi40LTEwLjJjMC02LTQuMy0xMS05LjktMTIuMWwwLTQuOSAyOC40IDMuMiAwIDIzLjctNS45IDAgMCAxMy45IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy4yIDM4LjMgNC4zYzguMSAxMS40IDE5IDEzLjYgMTkgMTMuNmwtLjEgNi43LTUuMSAuMi0uMSAxMi4xIDQuMSAwIC4xLTUgNS4yIDAgLjEgNSA0LjEgMC0uMS0xMi4xLTUuMS0uMi0uMS02LjdzMTAuOS0yLjEgMTktMTMuNmwzOC4zLTQuMyAwIDIzLjItNS45IDAgMCAxMy44IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy43IDI4LjQtMy4yIDAgNC45Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yczEyLjQtMy40IDEyLjQtMTAuMmMwLTYtNC4zLTExLTkuOS0xMi4xbDAtNS40IDgwLjMtOSAwIDUuOGMtNS45IC45LTEwLjUgNi0xMC41IDEyLjIgMCA2LjggNS42IDEyLjQgMTIuNCAxMi40czEyLjQtNS42IDEyLjQtMTIuNGMtLjItNi4zLTQuNy0xMS40LTEwLjctMTIuM3pNMzI4LjkgMjI3LjlsMTkuNi00Mi41IDE5LjYgNDIuNS0xNy45IDAtMS43LTQwLjMtMS43IDQwLjMtMTcuOSAweiJdfSxjNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFkbGV0IixpY29uOls2NDAsNTEyLFtdLCJlNGEwIiwiTTI5Ny45IDBsLjEgMGM3LjYgLjEgMTQuNCA0LjcgMTcuNSAxMS44bDEzMiAzMDguNSAuMy0uMSAuMiAuNC0yLjggMTAtNDIuOSAxNThjLTMuNyAxNi4yLTE5LjcgMjYuMy0zNS44IDIyLjZsLTY4LjQtMTUuNi02OC41IDE1LjZjLTE2LjEgMy43LTMyLjEtNi40LTM1LjgtMjIuNmwtNDIuOS0xNTgtMi43LTEwIC4xLS40IDEzMi4xLTMwOC40YzMtNyA5LjktMTEuNiAxNy41LTExLjh6TTE2MC4xIDMyMi4xbDEzMSAzOS4xIDYuOSAxMjIuNSA3LjktMTIxLjUgMTMwLjYtMzkuMyAuMi0uMS0xMzEgMjUuMS04LjYtMzIwLjItNS4yIDMyMC4yLTEzMS44LTI1Ljh6TTQyNiAyMjIuNmw5NC40LTQxIDczLjggMC0xNTcgMjQ3LjYgMzEuNi0xMDktNDIuOC05Ny42em0xNzEuNS00MS4ybDQxLjQgNzYuMmM0IDcuNS0zLjkgMTUuOS0xMS42IDEyLjJsLTQ3LjYtMjIuNyAxNy44LTY1Ljd6TTEyNy4zIDMxOC41TDE1OC43IDQzMCAxLjYgMTU0LjVjLTUuOS0xMC40IDUuNS0yMiAxNS45LTE2LjJsMTUxLjggODQuMi00Mi4xIDk2eiJdfSxkNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWRnZS1sZWdhY3kiLGljb246WzQ0OCw1MTIsW10sImUwNzgiLCJNLTYgMjI4LjJsLjQtLjVjMCAuMiAwIC4zLS4xIC41bC0uMyAwem00NjAuNiAxNS41YzAtNDQtNy44LTg0LjUtMjguOC0xMjIuNC00MS03My40LTExMy42LTExMy4zLTE5OC42LTExMy4zLTEzOS45LS4zLTIxOC4zIDEwNS4yLTIzMi44IDIxOS43IDQyLjQtNjEuMyAxMTcuMS0xMjEuNCAyMjAuNC0xMjUgMCAwIDEwOS43IDAgOTkuNCAxMDVsLTE3NS44IDBjNi40LTM3LjQgMTguNS01OSAzNC4zLTc4LjktNzUgMzQuOS0xMjEuOCA5Ni4xLTEyMC44IDE4OC4zIC44IDcxLjUgNTAuMSAxNDQuOCAxMjAuOCAxNzIgODMuNCAzMS44IDE5Mi44IDcuMiAyNDAuMS0yMS4zbDAtMTA0LjRjLTgwLjkgNTYuNS0yNzAuOSA2MC45LTI3Mi4zLTY3LjZsMzE0LjEgMCAwLTUyLjF6Il19LGxJZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtbGFzdGZtIixpY29uOls0NDgsNTEyLFsibGFzdGZtLXNxdWFyZSJdLCJmMjAzIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yMTAuNyAyODAuOGMtMS44LTUuNS0zLjQtMTAuOC01LTE1LjktMTIuOS00MS45LTIxLTY4LjQtNTgtNjguNC0yMi40IDAtNDUuMSAxNi4xLTQ1LjEgNjEuMiAwIDM1LjIgMTggNTcuMiA0My4zIDU3LjIgMjguNiAwIDQ3LjYtMjEuMyA0Ny42LTIxLjNsMTEuNyAzMS45cy0xOS44IDE5LjQtNjEuMiAxOS40Yy01MS4zIDAtNzkuOS0zMC4xLTc5LjktODUuOCAwLTU3LjkgMjguNi05MiA4Mi41LTkyIDY3LjkgMCA3OS4zIDM1LjMgOTYuNCA4OC40IDEuNCA0LjQgMi45IDguOSA0LjQgMTMuNSA4LjggMjYuOCAyNC4yIDQ2LjIgNjEuMiA0Ni4yIDI0LjkgMCAzOC4xLTUuNSAzOC4xLTE5LjEgMC0xNy41LTE2LjktMjEuMi00MC0yNi40LTMuMi0uNy02LjUtMS40LTkuOS0yLjItMzAuNC03LjMtNDIuNS0yMy4xLTQyLjUtNDggMC00MCAzMi4zLTUyLjQgNjUuMi01Mi40IDM3LjQgMCA2MC4xIDEzLjYgNjMgNDYuNmwtMzYuNyA0LjRjLTEuNS0xNS44LTExLTIyLjQtMjguNi0yMi40LTE2LjEgMC0yNiA3LjMtMjYgMTkuOCAwIDExIDQuOCAxNy42IDIwLjkgMjEuMyAyLjIgLjUgNC41IDEgNi43IDEuNCAzMS4xIDYuNSA2NS4xIDEzLjcgNjUuMSA1Ni4xIC4xIDM2LjctMzAuNyA1MC42LTc2LjEgNTAuNi02My40IDAtODUuNC0yOC42LTk3LjEtNjQuMXoiXX0sdTVyPWxJZSxwNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZHJlYWRzLWciLGljb246WzMyMCw1MTIsW10sImYzYTkiLCJNMTAuOCA0MDMuM2wyLjggMGMxMi43IDAgMjUuNSAwIDM4LjIgLjEgMS42IDAgMy4xLS40IDMuNiAyLjEgNy4xIDM0LjkgMzAgNTQuNiA2Mi45IDYzLjkgMjYuOSA3LjYgNTQuMSA3LjggODEuMyAxLjggMzMuOC03LjQgNTYtMjguMyA2OC02MC40IDgtMjEuNSAxMC43LTQzLjggMTEtNjYuNSAuMS01LjggLjMtNDctLjItNTIuOGwtLjktLjNjLS44IDEuNS0xLjcgMi45LTIuNSA0LjQtMjIuMSA0My4xLTYxLjMgNjcuNC0xMDUuNCA2OS4xLTEwMyA0LTE2OS40LTU3LTE3Mi0xNzYuMi0uNS0yMy43IDEuOC00Ni45IDguMy02OS43IDIwLjYtNzEuMSA3NC42LTExOC4yIDE1My45LTExOC44IDYxLjMtLjQgMTAxLjUgMzguNyAxMTYuMiA3MC4zIC41IDEuMSAxLjMgMi4zIDIuNCAxLjlsMC02MS42IDQ0LjMgMGMwIDI4MC4zIC4xIDMzMi4yIC4xIDMzMi4yLS4xIDc4LjUtMjYuNyAxNDMuNy0xMDMgMTYyLjItNjkuNSAxNi45LTE1OSA0LjgtMTk2LTU3LjItOC0xMy41LTExLjgtMjguMy0xMy00NC41ek0xNTcuMSAzNi41Yy01Mi41LS41LTEwOC41IDQwLjctMTE1IDEzMy44LTQuMSA1OSAxNC44IDEyMi4yIDcxLjUgMTQ4LjYgMjcuNiAxMi45IDc0LjMgMTUgMTA4LjMtOC43IDQ3LjYtMzMuMiA2Mi43LTk3IDU0LjgtMTU0LTkuNy03MS4xLTQ3LjgtMTIwLTExOS42LTExOS43eiJdfSxmNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtbWFzdGVyY2FyZCIsaWNvbjpbNTc2LDUxMixbXSwiZjFmMSIsIk00ODIuOSA0MTAuM2MwIDYuOC00LjYgMTEuNy0xMS4yIDExLjctNi44IDAtMTEuMi01LjItMTEuMi0xMS43czQuNC0xMS43IDExLjItMTEuN2M2LjYgMCAxMS4yIDUuMiAxMS4yIDExLjd6TTE3Mi4xIDM5OC42Yy03LjEgMC0xMS4yIDUuMi0xMS4yIDExLjdTMTY1IDQyMiAxNzIuMSA0MjJjNi41IDAgMTAuOS00LjkgMTAuOS0xMS43LS4xLTYuNS00LjQtMTEuNy0xMC45LTExLjd6bTExNy41LS4zYy01LjQgMC04LjcgMy41LTkuNSA4LjdsMTkuMSAwYy0uOS01LjctNC40LTguNy05LjYtOC43em0xMDcuOCAuM2MtNi44IDAtMTAuOSA1LjItMTAuOSAxMS43czQuMSAxMS43IDEwLjkgMTEuNyAxMS4yLTQuOSAxMS4yLTExLjdjMC02LjUtNC40LTExLjctMTEuMi0xMS43em0xMDUuOSAyNi4xYzAgLjMgLjMgLjUgLjMgMS4xIDAgLjMtLjMgLjUtLjMgMS4xLS4zIC4zLS4zIC41LS41IC44LS4zIC4zLS41IC41LTEuMSAuNS0uMyAuMy0uNSAuMy0xLjEgLjMtLjMgMC0uNSAwLTEuMS0uMy0uMyAwLS41LS4zLS44LS41LS4zLS4zLS41LS41LS41LS44LS4zLS41LS4zLS44LS4zLTEuMSAwLS41IDAtLjggLjMtMS4xIDAtLjUgLjMtLjggLjUtMS4xIC4zLS4zIC41LS4zIC44LS41IC41LS4zIC44LS4zIDEuMS0uMyAuNSAwIC44IDAgMS4xIC4zIC41IC4zIC44IC4zIDEuMSAuNXMuMiAuNiAuNSAxLjF6bS0yLjIgMS40Yy41IDAgLjUtLjMgLjgtLjMgLjMtLjMgLjMtLjUgLjMtLjhzMC0uNS0uMy0uOGMtLjMgMC0uNS0uMy0xLjEtLjNsLTEuNiAwIDAgMy41IC44IDAgMC0xLjQgLjMgMCAxLjEgMS40IC44IDAtMS4xLTEuM3pNNTc2IDgxbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MUMwIDU0LjUgMjEuNSAzMyA0OCAzM2w0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNNjQgMjIwLjZjMCA3Ni41IDYyLjEgMTM4LjUgMTM4LjUgMTM4LjUgMjcuMiAwIDUzLjktOC4yIDc2LjUtMjMuMS03Mi45LTU5LjMtNzIuNC0xNzEuMiAwLTIzMC41LTIyLjYtMTUtNDkuMy0yMy4xLTc2LjUtMjMuMS03Ni40LS4xLTEzOC41IDYyLTEzOC41IDEzOC4yek0yODggMzI5LjRjNzAuNS01NSA3MC4yLTE2Mi4yIDAtMjE3LjUtNzAuMiA1NS4zLTcwLjUgMTYyLjYgMCAyMTcuNXpNMTQ1LjcgNDA1LjdjMC04LjctNS43LTE0LjQtMTQuNy0xNC43LTQuNiAwLTkuNSAxLjQtMTIuOCA2LjUtMi40LTQuMS02LjUtNi41LTEyLjItNi41LTMuOCAwLTcuNiAxLjQtMTAuNiA1LjRsMC00LjQtOC4yIDAgMCAzNi43IDguMiAwYzAtMTguOS0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMC4yIDguMiAzMC4ybDcuOSAwYzAtMTguMy0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMCA4LjIgMzAuMmw4LjIgMCAwLTIzLS4yIDB6TTE5MC42IDM5MmwtNy45IDAgMCA0LjRjLTIuNy0zLjMtNi41LTUuNC0xMS43LTUuNC0xMC4zIDAtMTguMiA4LjItMTguMiAxOS4zIDAgMTEuMiA3LjkgMTkuMyAxOC4yIDE5LjMgNS4yIDAgOS0xLjkgMTEuNy01LjRsMCA0LjYgNy45IDAgMC0zNi44em00MC41IDI1LjZjMC0xNS0yMi45LTguMi0yMi45LTE1LjIgMC01LjcgMTEuOS00LjggMTguNS0xLjFsMy4zLTYuNWMtOS40LTYuMS0zMC4yLTYtMzAuMiA4LjIgMCAxNC4zIDIyLjkgOC4zIDIyLjkgMTUgMCA2LjMtMTMuNSA1LjgtMjAuNyAuOGwtMy41IDYuM2MxMS4yIDcuNiAzMi42IDYgMzIuNi03LjV6bTM1LjQgOS4zbC0yLjItNi44Yy0zLjggMi4xLTEyLjIgNC40LTEyLjItNC4xbDAtMTYuNiAxMy4xIDAgMC03LjQtMTMuMSAwIDAtMTEuMi04LjIgMCAwIDExLjItNy42IDAgMCA3LjMgNy42IDAgMCAxNi43YzAgMTcuNiAxNy4zIDE0LjQgMjIuNiAxMC45em0xMy4zLTEzLjRsMjcuNSAwYzAtMTYuMi03LjQtMjIuNi0xNy40LTIyLjYtMTAuNiAwLTE4LjIgNy45LTE4LjIgMTkuMyAwIDIwLjUgMjIuNiAyMy45IDMzLjggMTQuMmwtMy44LTZjLTcuOCA2LjQtMTkuNiA1LjgtMjEuOS00Ljl6TTMzOC45IDM5MmMtNC42LTItMTEuNi0xLjgtMTUuMiA0LjRsMC00LjQtOC4yIDAgMCAzNi43IDguMiAwIDAtMjAuN2MwLTExLjYgOS41LTEwLjEgMTIuOC04LjRsMi40LTcuNnptMTAuNiAxOC4zYzAtMTEuNCAxMS42LTE1LjEgMjAuNy04LjRsMy44LTYuNWMtMTEuNi05LjEtMzIuNy00LjEtMzIuNyAxNSAwIDE5LjggMjIuNCAyMy44IDMyLjcgMTVsLTMuOC02LjVjLTkuMiA2LjUtMjAuNyAyLjYtMjAuNy04LjZ6TTQxNi4yIDM5MmwtOC4yIDAgMCA0LjRjLTguMy0xMS0yOS45LTQuOC0yOS45IDEzLjkgMCAxOS4yIDIyLjQgMjQuNyAyOS45IDEzLjlsMCA0LjYgOC4yIDAgMC0zNi44em0zMy43IDBjLTIuNC0xLjItMTEtMi45LTE1LjIgNC40bDAtNC40LTcuOSAwIDAgMzYuNyA3LjkgMCAwLTIwLjdjMC0xMSA5LTEwLjMgMTIuOC04LjRsMi40LTcuNnptNDAuMy0xNC45bC03LjkgMCAwIDE5LjNjLTguMi0xMC45LTI5LjktNS4xLTI5LjkgMTMuOSAwIDE5LjQgMjIuNSAyNC42IDI5LjkgMTMuOWwwIDQuNiA3LjkgMCAwLTUxLjd6bTcuNi03NS4xbDAgNC42IC44IDAgMC00LjYgMS45IDAgMC0uOC00LjYgMCAwIC44IDEuOSAwem02LjYgMTIzLjhjMC0uNSAwLTEuMS0uMy0xLjYtLjMtLjMtLjUtLjgtLjgtMS4xcy0uOC0uNS0xLjEtLjhjLS41IDAtMS4xLS4zLTEuNi0uMy0uMyAwLS44IC4zLTEuNCAuMy0uNSAuMy0uOCAuNS0xLjEgLjgtLjUgLjMtLjggLjgtLjggMS4xLS4zIC41LS4zIDEuMS0uMyAxLjYgMCAuMyAwIC44IC4zIDEuNCAwIC4zIC4zIC44IC44IDEuMSAuMyAuMyAuNSAuNSAxLjEgLjggLjUgLjMgMS4xIC4zIDEuNCAuMyAuNSAwIDEuMSAwIDEuNi0uMyAuMy0uMyAuOC0uNSAxLjEtLjhzLjUtLjggLjgtMS4xYy4zLS42IC4zLTEuMSAuMy0xLjR6bTMuMi0xMjQuN2wtMS40IDAtMS42IDMuNS0xLjYtMy41LTEuNCAwIDAgNS40IC44IDAgMC00LjEgMS42IDMuNSAxLjEgMCAxLjQtMy41IDAgNC4xIDEuMSAwIDAtNS40em00LjQtODAuNWMwLTc2LjItNjIuMS0xMzguMy0xMzguNS0xMzguMy0yNy4yIDAtNTMuOSA4LjItNzYuNSAyMy4xIDcyLjEgNTkuMyA3My4yIDE3MS41IDAgMjMwLjUgMjIuNiAxNSA0OS41IDIzLjEgNzYuNSAyMy4xIDc2LjQgLjEgMTM4LjUtNjEuOSAxMzguNS0xMzguNHoiXX0saDVyPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc2NvdXJzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5MyIsIk0yMjUuOSAzMkMxMDMuMyAzMiAwIDEzMC41IDAgMjUyLjEgMCAyNTYgLjEgNDgwIC4xIDQ4MGwyMjUuOC0uMkMzNDguNiA0NzkuOCA0NDggMzc3LjUgNDQ4IDI1NS45UzM0OC42IDMyIDIyNS45IDMyek0yMjQgMzg0Yy0xOS40IDAtMzcuOS00LjMtNTQuNC0xMi4xTDg4LjUgMzkyIDExMS40IDMxN2MtOS44LTE4LjEtMTUuNC0zOC45LTE1LjQtNjEgMC03MC43IDU3LjMtMTI4IDEyOC0xMjhzMTI4IDU3LjMgMTI4IDEyOC01Ny4zIDEyOC0xMjggMTI4eiJdfSxtNXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxhY2stdGllIixpY29uOls0NDgsNTEyLFtdLCJmMjdlIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTMxNi41IDM1Ny4ybC05Mi41IDg4LjctOTIuNS04OC43IDY0LjUtMTg0LTY0LjUtODYuNiAxODQuOSAwLTY0LjQgODYuNiA2NC41IDE4NHoiXX0sY0llPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1mYWNlYm9vayIsaWNvbjpbNDQ4LDUxMixbImZhY2Vib29rLXNxdWFyZSJdLCJmMDgyIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsOTguMiAwIDAtMTQ1LjgtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE0NS44IDEyOSAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxnNXI9Y0llLGI1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiYXR0bGUtbmV0IixpY29uOls1MTIsNTEyLFtdLCJmODM1IiwiTTQ0OC44IDIyNS42YzI2LjkgLjIgMzUuNi03LjQgMzguOS0xMi40IDEyLjUtMTYuMy03LjEtNDcuNi01Mi44LTcxLjMgMTcuOC0zMy42IDMwLjEtNjMuNyAzNi4zLTg1LjMgMy40LTExLjggMS4xLTE5IC41LTIwLjMtMS43IDEwLjUtMTUuOCA0OC41LTQ4LjIgMTAwLTI1LTExLjItNTYuNS0yMC4xLTkzLjgtMjMuOC04LjktMTYuOS0zNC45LTYzLjktNjAuNS04OC45LTE2LjgtMTYuNS0zMC4zLTIyLjYtNDAuOC0yMy41bDAgMGMtMTMuOC0xLjYtMjIuNyA1LjgtMjcuNCAxMS0xNy4yIDE4LjUtMjQuMyA0OC45LTI1IDg0LjEtNy4yLTEyLjMtMTcuMi0yNC42LTI4LjUtMjUuOWwtLjIgMGMtMjAuNy0zLjUtMzguNCAyOS4yLTM2IDgxLjMtMzguNCAxLjQtNzEgNS44LTkzIDExLjItOS45IDIuNC0xNi4yIDcuMy0xNy44IDkuNyAxLS40IDIyLjQtOS4yIDExMS42LTkuMiA1LjIgNTMgMjkuOCAxMDEuOCAyNiA5My4yLTkuNyAxNS40LTM4LjIgNjIuNC00Ny4zIDk3LjctNS45IDIyLjktNC40IDM3LjYgLjIgNDcuMSA1LjYgMTIuOCAxNi40IDE2LjcgMjMuMiAxOC4zIDI1IDUuNyA1NS40LTMuNiA4Ni43LTIxLjEtNy41IDEyLjgtMTMuOSAyOC41LTkuMSAzOS4zIDcuMyAxOS42IDQ0LjUgMTguNyA4OC40LTkuNCAyMC4yIDMyLjIgNDAuMSA1Ny45IDU1LjcgNzQuMSAyLjYgMi44IDUuNSA1LjIgOC44IDcuMSA1LjEgMy4yIDguNiAzLjQgOC42IDMuNC04LjItNi43LTM0LTM4LTYyLjUtOTEuOCAyMi4yLTE2IDQ1LjctMzguOSA2Ny41LTY5LjMgMTIyLjggNC42IDE0My4zLTI0LjggMTQ4LTMxLjYgMTQuNy0xOS45IDMuNC01Ny40LTU3LjMtOTMuN3pNMzcxIDMzMS44YzIzLjgtMzcuNyAzMC4zLTY3LjggMjkuNC05Mi4zIDI3LjkgMTcuNiA0Ny4yIDM3LjYgNDkuMSA1OC44IDEuMSAxMi45LTguMSAyOS4xLTc4LjUgMzMuNXpNMjE3LjEgMzg3LjdjOS44LTYuMiAxOS41LTEzLjEgMjkuMi0yMC41IDYuNyAxMy4zIDEzLjYgMjYuMSAyMC42IDM4LjItNDAuNiAyMS45LTY4LjggMTIuOC00OS44LTE3Ljd6bTIxNS0xNzEuM2MtMTAuMy01LjMtMjEuMi0xMC4zLTMyLjQtMTUgNy45LTEyLjEgMTUuNS0yNC40IDIyLjctMzYuOSAzOS4xIDI0LjEgNDUuOSA1My4yIDkuNiA1MS45ek0yNzkuNCAzOThjLTUuNS0xMS40LTExLTIzLjUtMTYuNS0zNi40IDQzLjIgMS4zIDYyLjQtMTguNyA2My4zLTIwLjQgMCAuMS0yNSAxNS42LTYyLjUgMTIuMiAzMC42LTI1LjYgNTkuMS01My43IDg1LjEtODQgOC43LTEwLjIgMTctMjAuNiAyNC45LTMxLjEtLjQtLjMtMS41LTMtMTYuNS0xMi01MS43IDYwLjMtMTAyLjMgOTgtMTMyLjggMTE1LjktMjAuNi0xMS4yLTQwLjgtMzEuOC01NS43LTYxLjUtMjAtMzkuOS0zMC04Mi40LTMxLjYtMTE2LjEgMTIuMyAuOSAyNS4zIDIuMiAzOC44IDMuOS0yMi4zIDM2LjgtMTQuNCA2My0xMy41IDY0LjIgMC0uMS0xLTI5LjIgMjAuMS01OS42IDkgNTIuNSAyNCAxMDMuOCA0NC43IDE1Mi44IC45LS40IDEuOCAuOSAxOC43LTguMi0yNi4zLTc0LjUtMzMuOC0xMzguMi0zNC0xNzMuNCAyMC0xMi40IDQ4LjItMTkuOCA4MS42LTE3LjggNDQuNiAyLjcgODYuNCAxNS4yIDExNi4zIDMwLjctNy4xIDEwLjQtMTQuOSAyMS4zLTIzLjMgMzIuNS0yMC43LTM3LjctNDcuMy00My45LTQ4LjktNDMuNyAuMSAwIDI1LjkgMTQuMSA0MS41IDQ3LjItMzcuNS0xMy44LTc2LjEtMjQuNC0xMTUuMy0zMS43LTEzLjEtMi40LTI2LjItNC40LTM5LjQtNi0uMSAuNC0xLjggMS44LTIuMiAyMC4zIDc3LjkgMTQuNSAxMzYuNiAzOS45IDE2Ny4yIDU3LjIgLjcgMjMuNi03IDUxLjYtMjUuNCA3OS42LTI0LjYgMzcuMy01Ni40IDY3LjItODQuOCA4NS40em0yNy40LTI4N2MtNDQuNi0xLjctNzMuNiA3LjQtOTQuNyAyMC43IDItNTIuMyAyMS4zLTc2LjQgMzguMi03NS4zIDE2LjktNC4yIDU0LjkgNTIuMiA1Ni41IDU0LjZ6bS0xMzAuNyAzLjFjLjUgMTIuMSAxLjYgMjQuNiAzLjIgMzcuMy0xNC42LS45LTI4LjctMS4zLTQyLjQtMS4zLS4xIDMuMi0uMS01MSAyNC43LTQ5LjZsLjEgMGM1LjggMS4xIDEwLjYgNi45IDE0LjQgMTMuNnptLTI4LjEgMTYyYzIwLjggMzkuNyA0My4zIDYwLjYgNjUuMyA3Mi4zLTQ2LjggMjQuOC03Ny41IDIwLTg0LjkgNC41LS4yLS4yLTExLjEtMTUuMyAxOS43LTc2LjhsMCAweiJdfSx4NXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmltb2JqZWN0IixpY29uOls0NDgsNTEyLFtdLCJmMzc4IiwiTTQxNiAzMkwzMiAzMkMxNC40IDMyIDAgNDYuNCAwIDY0TDAgNDQ4YzAgMTcuNiAxNC40IDMyIDMyIDMybDM4NCAwYzE3LjYgMCAzMi0xNC40IDMyLTMybDAtMzg0YzAtMTcuNi0xNC40LTMyLTMyLTMyek0zNTIgMjg5LjRjMCA0OS40LTExLjQgODIuNi0xMDMuOCA4Mi42bC0xNi45IDBjLTQ0LjEgMC02Mi40LTE0LjktNzAuNC0zOC44bC0uOSAwIDAgMzQuOC02NCAwIDAtMjMyIDY0IDAgMCA3NC43IDEuMSAwYzQuNi0zMC41IDM5LjctMzguOCA2OS43LTM4LjhsMTcuMyAwYzkyLjQgMCAxMDMuOCAzMy4xIDEwMy44IDgyLjVsMCAzNSAuMSAwem0tNjQtMjguOWwwIDIyLjljMCAyMS43LTMuNCAzMy44LTM4LjQgMzMuOGwtNDUuMyAwYy0yOC45IDAtNDQuMS02LjUtNDQuMS0zNS43bDAtMTljMC0yOS4zIDE1LjItMzUuNyA0NC4xLTM1LjdsNDUuMyAwYzM1LS4yIDM4LjQgMTIgMzguNCAzMy43eiJdfSx2NXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ZlbHRlIixpY29uOls0NDgsNTEyLFtdLCJlODY4IiwiTTIwMi4xIDI2LjRjNjYuOC00Mi42IDE1OS4zLTIyLjcgMjA2LjEgNDQuMyAxMS4xIDE1LjUgMTkgMzMuMSAyMy4yIDUxLjhzNC43IDM3LjkgMS4zIDU2LjdjLTMuMiAxOC0xMC4xIDM1LjEtMjAuMSA1MC4zIDE0LjYgMjcuOSAxOS42IDYwIDE0IDkxLTMuMyAxOC40LTEwLjQgMzYtMjAuOSA1MS41cy0yNC4xIDI4LjctMzkuOSAzOC43TDI0OC4zIDQ4NS42Yy02Ni44IDQyLjYtMTU5LjMgMjIuNy0yMDYuMS00NC4yLTExLjEtMTUuNS0xOS0zMy4yLTIzLjItNTEuOHMtNC43LTM3LjktMS4zLTU2LjdjMy4yLTE4IDEwLjEtMzUuMSAyMC4xLTUwLjMtMTQuNy0yNy45LTE5LjYtNjAtMTQtOTEuMSAzLjMtMTguNCAxMC40LTM2IDIwLjktNTEuNXMyNC4xLTI4LjcgMzkuOS0zOC43TDIwMi4xIDI2LjR6TTMxNS42IDY3LjJjLTE3LjktNi42LTM3LjQtNy42LTU1LjktMi44LTguNCAyLjMtMTYuNSA1LjgtMjMuOCAxMC41TDExOC41IDE0OS43Yy05LjUgNi0xNy43IDEzLjktMjQgMjMuM1M4NCAxOTIuOCA4MiAyMDMuOWMtMiAxMS4zLTEuNyAyMi45IC44IDM0LjFzNy4zIDIxLjggMTMuOSAzMS4yYzEwLjkgMTUuNyAyNi4zIDI3LjYgNDQuMiAzNC4zczM3LjQgNy42IDU1LjkgMi44YzguNC0yLjMgMTYuNS01LjggMjMuOC0xMC41bDQ0LjgtMjguNmMyLjItMS40IDQuNy0yLjUgNy4yLTMuMiA1LjYtMS40IDExLjQtMS4yIDE2LjggLjhzMTAgNS42IDEzLjMgMTAuM2MyIDIuOCAzLjUgNiA0LjIgOS40cy45IDYuOSAuMyAxMC4zYy0uNiAzLjMtMS45IDYuNS0zLjggOS4zLTEuOSAyLjgtNC40IDUuMi03LjIgN0wxNzguOCAzODYuMWMtMi4yIDEuNC00LjcgMi41LTcuMiAzLjItNS42IDEuNC0xMS40IDEuMi0xNi44LS44cy0xMC01LjYtMTMuMy0xMC4zYy0zLjYtNS4xLTUuMy0xMS4yLTQuNy0xNy40bC40LTQuNC00LjMtMS4zYy0xNi41LTUtMzIuMS0xMi43LTQ1LjktMjIuOWwtNi00LjQtMi4yIDYuN2MtMS4yIDMuNi0yLjEgNy4zLTIuOCAxMS0yIDExLjMtMS43IDIyLjkgLjggMzQuMXM3LjMgMjEuOCAxMy45IDMxLjFjMTAuOSAxNS43IDI2LjMgMjcuNiA0NC4yIDM0LjNzMzcuNCA3LjYgNTUuOCAyLjhjOC40LTIuMyAxNi41LTUuOCAyMy45LTEwLjVsMTE3LjMtNzQuOGM5LjUtNiAxNy43LTEzLjkgMjQtMjMuM3MxMC42LTE5LjkgMTIuNi0zMWMyLTExLjMgMS44LTIyLjktLjgtMzQuMXMtNy4zLTIxLjgtMTQtMzEuMWMtMTAuOS0xNS43LTI2LjMtMjcuNi00NC4yLTM0LjNzLTM3LjQtNy42LTU1LjktMi44Yy04LjQgMi4zLTE2LjUgNS44LTIzLjggMTAuNUwxODUgMjQ0LjhjLTIuMiAxLjQtNC42IDIuNS03LjIgMy4yLTUuNiAxLjQtMTEuNSAxLjItMTYuOC0uOHMtMTAtNS42LTEzLjMtMTAuM2MtMi0yLjgtMy40LTYtNC4yLTkuNHMtLjktNi45LS4yLTEwLjNjLjYtMy4zIDEuOS02LjUgMy44LTkuM3M0LjQtNS4yIDcuMi03bDExNy40LTc0LjhjMi4yLTEuNCA0LjctMi41IDcuMi0zLjIgNS42LTEuNCAxMS40LTEuMSAxNi44IC45czEwIDUuNiAxMy4zIDEwLjNjMy42IDUuMSA1LjIgMTEuMyA0LjcgMTcuNGwtLjQgNC40IDQuNCAxLjNjMTYuNSA1IDMyIDEyLjggNDUuOSAyM2w2IDQuNCAyLjItNi44YzEuMi0zLjYgMi4xLTcuMyAyLjgtMTEgMi0xMS4zIDEuOC0yMi45LS44LTM0LjFzLTcuMy0yMS44LTE0LTMxLjFjLTEwLjktMTUuNy0yNi4zLTI3LjYtNDQuMi0zNC4zeiJdfSx5NXI9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWRlc2twcm8iLGljb246WzQ0OCw1MTIsW10sImU4NDQiLCJNNDA4LjggMzJDNDMwLjQgMzIgNDQ4IDQ5LjYgNDQ4IDcxLjJsMCAzNjkuNmMwIDIxLjYtMTcuNiAzOS4yLTM5LjIgMzkuMkwzOS4yIDQ4MEMxNy42IDQ4MCAwIDQ2Mi40IDAgNDQwLjhMMCA3MS4yQzAgNDkuNiAxNy42IDMyIDM5LjIgMzJsMzY5LjYgMHpNMTEwLjkgMjc0LjFsMCAxMTQuNCA4OS4xLS4xYzIwLjYgMCAzOS40LTMuMiA1Ni4zLTkuNXMzMS4zLTE1LjQgNDMuMi0yN2MxMi4yLTExLjkgMjEuNi0yNiAyOC4yLTQyLjEgNC42LTExLjEgNy43LTIzIDkuMi0zNS43bC00My44IDBjLTEuMSA2LjQtMi44IDEyLjQtNS4xIDE4LjItNC4yIDEwLjktMTAuMyAyMC4zLTE4LjIgMjguMi03LjkgNy43LTE3LjQgMTMuNy0yOC42IDE3LjktMTEuMSA0LjMtMjMuNSA2LjQtMzcuMyA2LjRsLTUwIDAgMC03MC42LTQzIC4xem0wLTE1MS40bDAgMTE0LjQgNDMtLjEgMC03MC43IDUwIDBjMTMuNyAwIDI2LjIgMi4xIDM3LjMgNi40IDExLjEgNC4zIDIwLjYgMTAuMyAyOC42IDE4LjMgNy45IDcuNyAxNCAxNy4xIDE4LjIgMjguMiAyLjMgNS42IDQgMTEuNSA1LjEgMTcuOGw0My45IC4xYy0xLjQtMTIuNi00LjQtMjQuNC04LjktMzUuMy02LjYtMTYuNC0xNi0zMC41LTI4LjEtNDIuMi0xMi4xLTExLjktMjYuNy0yMS4xLTQzLjYtMjcuNS0xNi45LTYuNC0zNS43LTkuNS01Ni4zLTkuNWwtODkgLjF6Il19LHc1cj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0YWlsd2luZC1jc3MiLGljb246WzY0MCw1MTIsW10sImU4NjYiLCJNMzIwIDY0Yy04NS4zIDAtMTM4LjcgNDIuNy0xNjAgMTI4IDMyLTQyLjcgNjkuMy01OC43IDExMi00OCAyNC4zIDYuMSA0MS43IDIzLjggNjEgNDMuMyAzMS40IDMxLjggNjcuNyA2OC43IDE0NyA2OC43IDg1LjMgMCAxMzguNy00Mi43IDE2MC0xMjgtMzIgNDIuNy02OS4zIDU4LjctMTEyIDQ4LTI0LjMtNi4xLTQxLjctMjMuOC02MS00My4zLTMxLjQtMzEuOC02Ny43LTY4LjctMTQ3LTY4Ljd6TTE2MCAyNTZjLTg1LjMgMC0xMzguNyA0Mi43LTE2MCAxMjggMzItNDIuNyA2OS4zLTU4LjcgMTEyLTQ4IDI0LjMgNi4xIDQxLjcgMjMuOCA2MSA0My4zIDMxLjQgMzEuOCA2Ny43IDY4LjcgMTQ3IDY4LjcgODUuMyAwIDEzOC43LTQyLjcgMTYwLTEyOC0zMiA0Mi43LTY5LjMgNTguNy0xMTIgNDgtMjQuMy02LjEtNDEuNy0yMy44LTYxLTQzLjMtMzEuNC0zMS44LTY3LjctNjguNy0xNDctNjguN3oiXX0sQUVhPXtmYVNxdWFyZUdpdGh1YjpERWUsZmFHaXRodWJTcXVhcmU6eDByLGZhVGhpbmtQZWFrczp2MHIsZmFHb29nbGVEcml2ZTp5MHIsZmFBdXRvcHJlZml4ZXI6dzByLGZhU3F1YXJlVmlhZGVvOiRFZSxmYVZpYWRlb1NxdWFyZTprMHIsZmFDcGFuZWw6UzByLGZhTWVuZGVsZXk6TTByLGZhRHJhZnQyZGlnaXRhbDpDMHIsZmFSZXBseWQ6ejByLGZhRW1waXJlOl8wcixmYUFjY2Vzc2libGVJY29uOlQwcixmYVF1b3JhOkwwcixmYUNjSmNiOkQwcixmYUZlZG9yYTokMHIsZmFEdW9saW5nbzpBMHIsZmFGaXJzdGRyYWZ0OkUwcixmYUZyZWVic2Q6STByLGZhT2R5c2VlOlAwcixmYUdnQ2lyY2xlOk4wcixmYUNsb3VkZmxhcmU6TzByLGZhSGFja2VycmFuazpSMHIsZmFTa3lhdGxhczpGMHIsZmFEZXNrcHJvOkIwcixmYVJlc29sdmluZzpIMHIsZmFCbGFja2JlcnJ5OnEwcixmYVN0cmlwZVM6VjByLGZhU3F1YXJlQmVoYW5jZTpBRWUsZmFCZWhhbmNlU3F1YXJlOmowcixmYVNlcnZpY2VzdGFjazpVMHIsZmFSb2NrZXRjaGF0OlcwcixmYVJlYmVsOkcwcixmYVNxdWFyZVdlYkF3ZXNvbWU6WTByLGZhTGlua3RyZWU6SzByLGZhU2ltcGx5YnVpbHQ6WjByLGZhU3R1YmJlcjpRMHIsZmFBcHBlcjpYMHIsZmFHb29nbGVTY2hvbGFyOkowcixmYVlhcm46ZWRyLGZhU3RhY2tPdmVyZmxvdzp0ZHIsZmFCbHVldG9vdGg6cmRyLGZhQ3JlYXRpdmVDb21tb25zTmNKcDphZHIsZmFSZWRkaXQ6aWRyLGZhQ29ubmVjdGRldmVsb3A6c2RyLGZhUmVzZWFyY2hnYXRlOm5kcixmYVNpZ25hbE1lc3NlbmdlcjpvZHIsZmFYaW5nOmxkcixmYVNxdWFyZUpzOkVFZSxmYUpzU3F1YXJlOmNkcixmYUZvbnRpY29uczpkZHIsZmFVcHM6dWRyLGZhQW1hem9uUGF5OnBkcixmYVBhbmRvcmE6ZmRyLGZhT3BlbmlkOmhkcixmYVZzY286bWRyLGZhR2xvYmFsZWFrczpnZHIsZmFWZW5tbzpiZHIsZmFVYnVudHU6eGRyLGZhVmlhY29pbjp2ZHIsZmFaaGlodTp5ZHIsZmFZYW5kZXg6d2RyLGZhUGl4aXY6a2RyLGZhT3BlbmFpOlNkcixmYVNpdGg6TWRyLGZhSnVsaWE6Q2RyLGZhTmZjRGlyZWN0aW9uYWw6emRyLGZhQ3JlYXRpdmVDb21tb25zQnk6X2RyLGZhVW1icmFjbzpUZHIsZmFIb29saTpMZHIsZmFTcXVhcmVHaXQ6SUVlLGZhR2l0U3F1YXJlOkRkcixmYU9kbm9rbGFzc25pa2k6JGRyLGZhRHJ1cGFsOkFkcixmYUJsb2dnZXJCOkVkcixmYUludmlzaW9uOklkcixmYUZhY2Vib29rRjpQZHIsZmFDZW50b3M6TmRyLGZhU2NhbGV3YXk6T2RyLGZhQ2NBbWF6b25QYXk6UmRyLGZhRWJheTpGZHIsZmFDb250YW86QmRyLGZhRWxsbzpIZHIsZmFTaXN0cml4OnFkcixmYVBlcmlzY29wZTpWZHIsZmFFeHBlZGl0ZWRzc2w6amRyLGZhTmFwc3RlcjpVZHIsZmFEZWxpY2lvdXM6V2RyLGZhR3VpbGRlZDpHZHIsZmFPYnNpZGlhbjpZZHIsZmFYYm94OktkcixmYVVudGFwcGQ6WmRyLGZhR29vZ2xlUGx1c0c6UWRyLGZhR2l0aHViQWx0OlhkcixmYUdldFBvY2tldDpKZHIsZmFHbGlkZTplNHIsZmFCaXR5OnQ0cixmYVdwZXhwbG9yZXI6cjRyLGZhTWVnYXBvcnQ6YTRyLGZhTGVldGNvZGU6aTRyLGZhTWRiOnM0cixmYVBhZ2U0Om40cixmYVRoZVJlZFlldGk6bzRyLGZhSmlyYTpsNHIsZmFGZWRleDpjNHIsZmFFdmVybm90ZTpkNHIsZmFVc2I6dTRyLGZhQW5ncnljcmVhdGl2ZTpwNHIsZmFNaXp1bmk6ZjRyLGZhSXRjaElvOmg0cixmYVdpbmRvd3M6bTRyLGZhU3R1bWJsZXVwb246ZzRyLGZhR29vZ2xlOkszZSxmYURpc2NvcmQ6YjRyLGZhSGFja2VyTmV3czp4NHIsZmFFbGV2ZW50eTpQRWUsZmExMXR5OnY0cixmYVRlYW1zcGVhazp5NHIsZmFTdXBwbGU6dzRyLGZhU3F1YXJlVHdpdHRlcjpORWUsZmFUd2l0dGVyU3F1YXJlOms0cixmYVZpbTpTNHIsZmFGb250QXdlc29tZTpZM2UsZmFGb250QXdlc29tZUZsYWc6TTRyLGZhRm9udEF3ZXNvbWVMb2dvRnVsbDpDNHIsZmFXaXJzaW5kaGFuZHdlcms6T0VlLGZhV3NoOno0cixmYVpvb206XzRyLGZhQ29uZmx1ZW5jZTpUNHIsZmFEaWdnOkw0cixmYVRocmVhZHM6RDRyLGZhV3ByZXNzcjpSRWUsZmFSZW5kYWN0OiQ0cixmYVlvYXN0OkE0cixmYU5pbWJscjpFNHIsZmFQaXhlbGZlZDpJNHIsZmFZYWhvbzpQNHIsZmFCbHVlc2t5Ok40cixmYVNjcmliZDpPNHIsZmFDcmVhdGl2ZUNvbW1vbnNQZDpSNHIsZmFFYXJseWJpcmRzOkY0cixmYVN5bWZvbnljYXN0czpCNHIsZmFTcXVhcmVPZG5va2xhc3NuaWtpOkZFZSxmYU9kbm9rbGFzc25pa2lTcXVhcmU6SDRyLGZhTWFya2Rvd246cTRyLGZhVHlwbzM6VjRyLGZhSm9vbWxhOmo0cixmYVdlaXhpbjpVNHIsZmFHcnVudDpXNHIsZmFTdXBwb3J0bm93Okc0cixmYVJvY2tybXM6WTRyLGZhVW5zcGxhc2g6SzRyLGZhU3F1YXJlSW5zdGFncmFtOkJFZSxmYUluc3RhZ3JhbVNxdWFyZTpaNHIsZmFGaXJzdE9yZGVyQWx0OlE0cixmYUZ1bGNydW06WDRyLGZhQXJjaExpbnV4Oko0cixmYUZlZGl2ZXJzZTplM3IsZmFCcmF2ZVJldmVyc2U6dDNyLGZhQXZpYW5leDpyM3IsZmFOczg6YTNyLGZhU3F1YXJlUGludGVyZXN0OkhFZSxmYVBpbnRlcmVzdFNxdWFyZTppM3IsZmFCbHVldG9vdGhCOnMzcixmYUdyaXBmaXJlOm4zcixmYVNxdWFyZUdvb2dsZVBsdXM6cUVlLGZhR29vZ2xlUGx1c1NxdWFyZTpvM3IsZmFHaXRlZTpsM3IsZmFYbXBwOmMzcixmYUFwcFN0b3JlOmQzcixmYVdpeDp1M3IsZmFJbnRlcmNvbTpwM3IsZmFSZWFjdGV1cm9wZTpmM3IsZmFXYXplOmgzcixmYUNyZWF0aXZlQ29tbW9uc1JlbWl4Om0zcixmYUJhbmRjYW1wOmczcixmYVNxdWFyZVdlYkF3ZXNvbWVTdHJva2U6YjNyLGZhVmltZW9WOngzcixmYVN0cmF2YTp2M3IsZmFVbmlyZWdpc3RyeTp5M3IsZmFDY0RpbmVyc0NsdWI6dzNyLGZhS3ViZXJuZXRlczprM3IsZmFQaW50ZXJlc3Q6UzNyLGZhQWxnb2xpYTpNM3IsZmFTdGFja3BhdGg6QzNyLGZhT2N0b3B1c0RlcGxveTp6M3IsZmFZYW1tZXI6XzNyLGZhTW9keDpUM3IsZmFTcXVhcmVUaHJlYWRzOkwzcixmYU9sZFJlcHVibGljOkQzcixmYVN1c2U6JDNyLGZhQXBwU3RvcmVJb3M6QTNyLGZhVWx0cmFseXRpY3NZb2xvOkUzcixmYVNxdWFyZURyaWJiYmxlOlZFZSxmYURyaWJiYmxlU3F1YXJlOkkzcixmYVVpa2l0OlAzcixmYVN1cGVycG93ZXJzOk4zcixmYVlvdXR1YmU6TzNyLGZhRW1iZXI6UjNyLGZhQm9vdHN0cmFwOkYzcixmYUl0dW5lczpCM3IsZmFTcXVhcmVYaW5nOmpFZSxmYVhpbmdTcXVhcmU6SDNyLGZhQ3NzM0FsdDpxM3IsZmFTcXVhcmVzcGFjZTpWM3IsZmFUcmVsbG86ajNyLGZhVmlhZGVvOlUzcixmYVNlYXJjaGVuZ2luOlczcixmYVVucmVhbEVuZ2luZTpHM3IsZmFQYXlwYWw6WTNyLGZhU3F1YXJlQmx1ZXNreTpLM3IsZmFEQW5kREJleW9uZDpaM3IsZmFNaWNyb3NvZnQ6UTNyLGZhRmx5OlgzcixmYUNjU3RyaXBlOkozcixmYVdvcmRwcmVzc1NpbXBsZTpldXIsZmFTZWxsc3k6dHVyLGZhRGFzaGN1YmU6cnVyLGZhR2l0dGVyOmF1cixmYVdvbGZQYWNrQmF0dGFsaW9uOml1cixmYUxhc3RmbTpzdXIsZmFTaG9wd2FyZTpudXIsZmFCbG9nZ2VyOm91cixmYUVkZ2U6bHVyLGZhSW94aG9zdDpjdXIsZmFTY2hsaXg6ZHVyLGZhREFuZEQ6dXVyLGZhVnVlanM6cHVyLGZhTWV0YTpmdXIsZmFDcmVhdGl2ZUNvbW1vbnNTaGFyZTpodXIsZmFTdHVkaW92aW5hcmk6bXVyLGZhQml0YnVja2V0Omd1cixmYVZrOmJ1cixmYUdpdGh1Yjp4dXIsZmFDb2RpZXBpZTp2dXIsZmFQaWVkUGlwZXI6eXVyLGZhUmFzcGJlcnJ5UGk6d3VyLGZhQ3NzMzprdXIsZmFIdWJzcG90OlN1cixmYUNtcGxpZDpNdXIsZmFEeWFsb2c6Q3VyLGZhRWxlbWVudG9yOnp1cixmYUZpcnN0T3JkZXI6X3VyLGZhRHJpYmJibGU6VHVyLGZhTGlua2VkaW46WjNlLGZhQ2NQYXlwYWw6THVyLGZhRGhsOkR1cixmYVRleDokdXIsZmFDbGF1ZGU6QXVyLGZhU2hvcGlmeTpFdXIsZmFTcXVhcmVSZWRkaXQ6VUVlLGZhUmVkZGl0U3F1YXJlOkl1cixmYUNyZWF0aXZlQ29tbW9uc05jOlB1cixmYUdhbGFjdGljUmVwdWJsaWM6TnVyLGZhRmFjZWJvb2s6UTNlLGZhR2l0bGFiOk91cixmYVFxOlJ1cixmYVN0cmlwZTpGdXIsZmFEYWlseW1vdGlvbjpCdXIsZmFTdGVhbTpIdXIsZmFWZW5tb1Y6cXVyLGZhU25hcGNoYXQ6V0VlLGZhU25hcGNoYXRHaG9zdDpWdXIsZmFHYWxhY3RpY1NlbmF0ZTpqdXIsZmFQaG9lbml4RnJhbWV3b3JrOlV1cixmYUdpdDpXdXIsZmFPcHRpbk1vbnN0ZXI6R3VyLGZhSmVua2luczpZdXIsZmFTbGlkZXNoYXJlOkt1cixmYVViZXI6WnVyLGZhRGlnaXRhbE9jZWFuOlF1cixmYVNvdW5kY2xvdWQ6WHVyLGZhU3F1YXJlRmlnbWE6SnVyLGZhQ3JlYXRpdmVDb21tb25zU2E6ZXByLGZhQ2hyb21lOnRwcixmYVRyYWRlRmVkZXJhdGlvbjpycHIsZmFWYWFkaW46YXByLGZhRGV2aWFudGFydDppcHIsZmFNZWRpdW06d18sZmFNZWRpdW1NOnNwcixmYU9wZW5jYXJ0Om5wcixmYVlDb21iaW5hdG9yOm9wcixmYUxpbmU6bHByLGZhQW1pbGlhOmNwcixmYUFzeW1tZXRyaWs6ZHByLGZhUGhhYnJpY2F0b3I6dXByLGZhQm90czpwcHIsZmFWaW5lOmZwcixmYU1lZHJ0OmhwcixmYU9zaTptcHIsZmFHZzpncHIsZmFCdXlzZWxsYWRzOmJwcixmYUdvb2dsZVBsdXM6eHByLGZhU2NyZWVucGFsOnZwcixmYUJpdGNvaW46eXByLGZhU3dpZnQ6d3ByLGZhRmlsZXNQaW53aGVlbDprcHIsZmFMYXJhdmVsOlNwcixmYVdwZm9ybXM6TXByLGZhU3BlYWtlckRlY2s6Q3ByLGZhRmxpY2tyOnpwcixmYUNjVmlzYTpfcHIsZmFVcHdvcms6VHByLGZhS2FrYW9UYWxrOkxwcixmYUZsdXR0ZXI6RHByLGZhQnVmZmVyOiRwcixmYUdyYXRpcGF5OkFwcixmYUdvb2dsZVBheTpFcHIsZmFBcHBsZTpJcHIsZmFUdW1ibHI6UHByLGZhUGhvZW5peFNxdWFkcm9uOk5wcixmYUNlbnRlcmNvZGU6T3ByLGZhRGViaWFuOlJwcixmYU1hc3RvZG9uOkZwcixmYVNrZXRjaDpCcHIsZmFXZWJBd2Vzb21lOkhwcixmYVNhc3M6cXByLGZhVGhyZWVtYTpWcHIsZmFTcXVhcmVXaGF0c2FwcDpHRWUsZmFXaGF0c2FwcFNxdWFyZTpqcHIsZmFTa3lwZTpVcHIsZmFBbmd1bGFyOldwcixmYUNpcmNsZVp1bGlwOkdwcixmYU9wZW5zdXNlOllwcixmYURyb3Bib3g6S3ByLGZhRGVlemVyOlpwcixmYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nOlFwcixmYUplZGlPcmRlcjpYcHIsZmFSUHJvamVjdDpKcHIsZmFJbnN0YWxvZDplZnIsZmFDYW5hZGlhbk1hcGxlTGVhZjp0ZnIsZmFFdGhlcmV1bTpyZnIsZmFIb3V6ejphZnIsZmFWaWJlcjppZnIsZmFLaWNrc3RhcnRlcjpZRWUsZmFTcXVhcmVLaWNrc3RhcnRlcjpzZnIsZmFTcG90aWZ5Om5mcixmYUxlYW5wdWI6b2ZyLGZhSmF2YTpsZnIsZmFOZmNTeW1ib2w6Y2ZyLGZhV29kdTpkZnIsZmFTcXVhcmVTdGVhbTpLRWUsZmFTdGVhbVNxdWFyZTp1ZnIsZmFDcmVhdGl2ZUNvbW1vbnNOY0V1OnBmcixmYU5wbTpmZnIsZmFDbG91ZHNjYWxlOmhmcixmYVRoZW1lY286bWZyLGZhR29vZ2xlUGxheTpnZnIsZmFLb3J2dWU6YmZyLGZhVzNjOnhmcixmYUdyYXY6dmZyLGZhQXdzOnlmcixmYUdsaWRlRzp3ZnIsZmFKc2ZpZGRsZTprZnIsZmFLZXliYXNlOlNmcixmYUx1bW9uRHJvcDpNZnIsZmFGb3JnZWpvOkNmcixmYVBvc3RncmVzcWw6emZyLGZhV2VlYmx5Ol9mcixmYURvY2tlcjpUZnIsZmFNYWdlbnRvOkxmcixmYVRvckJyb3dzZXI6RGZyLGZhR2l0QWx0OiRmcixmYUZpcmVmb3hCcm93c2VyOkFmcixmYUNsb3Vkc21pdGg6RWZyLGZhV2l6YXJkc09mVGhlQ29hc3Q6SWZyLGZhQ3JlYXRpdmVDb21tb25zTmQ6UGZyLGZhVXNwczpOZnIsZmFTcXVhcmVMZXR0ZXJib3hkOk9mcixmYU1hbmRhbG9yaWFuOlJmcixmYVNsYWNrOlpFZSxmYVNsYWNrSGFzaDpYM2UsZmFBbmdlbGxpc3Q6RmZyLGZhQW5kcm9pZDpCZnIsZmFNZWV0dXA6SGZyLGZhRm9udGljb25zRmk6cWZyLGZhUGFsZmVkOlZmcixmYVdwYmVnaW5uZXI6amZyLGZhRGlhc3BvcmE6VWZyLGZhUHJvZHVjdEh1bnQ6V2ZyLGZhU3F1YXJlVXB3b3JrOkdmcixmYUN1dHRsZWZpc2g6WWZyLGZhTWVkYXBwczpLZnIsZmFQaXg6WmZyLGZhU3F1YXJlVHVtYmxyOlFFZSxmYVR1bWJsclNxdWFyZTpRZnIsZmFSZWFjdDpYZnIsZmFIdWdnaW5nRmFjZTpKZnIsZmFKeGw6ZWhyLGZhU3F1YXJlTGlua2VkaW46dGhyLGZhQ3NzOnJocixmYUhhc2hub2RlOmFocixmYVJlZGRpdEFsaWVuOmlocixmYVRpa3RvazpKM2UsZmFXb3JkcHJlc3M6c2hyLGZhSWRlYWw6bmhyLGZhUGllZFBpcGVyUHA6b2hyLGZhVXNzdW5uYWg6bGhyLGZhRm9ydEF3ZXNvbWVBbHQ6Y2hyLGZhQnVyb21vYmVsZXhwZXJ0ZTpkaHIsZmFCaWxpYmlsaTp1aHIsZmFOZW9zOnBocixmYURldjpmaHIsZmFIb3RqYXI6aGhyLGZhRG9jaHViOm1ocixmYVZpbWVvOmdocixmYU1heGNkbjpiaHIsZmFTcXVhcmVGb250QXdlc29tZVN0cm9rZTpYRWUsZmFGb250QXdlc29tZUFsdDp4aHIsZmFTcGVha2FwOnZocixmYUZhbnRhc3lGbGlnaHRHYW1lczp5aHIsZmFMaW51eDp3aHIsZmFDb3R0b25CdXJlYXU6a2hyLGZhR29vZ2xlV2FsbGV0OlNocixmYUZvdXJzcXVhcmU6TWhyLGZhU2hpcnRzaW5idWxrOkNocixmYU1pbnRiaXQ6emhyLGZhWnVsaXA6X2hyLGZhU3RheWxpbmtlZDpUaHIsZmFXZWJmbG93OkxocixmYVJlbnJlbjpEaHIsZmFLb0ZpOiRocixmYVJldjpBaHIsZmFLZXljZG46RWhyLGZhSGlyZUFIZWxwZXI6SWhyLGZhU3F1YXJlSGFja2VyTmV3czpKRWUsZmFIYWNrZXJOZXdzU3F1YXJlOlBocixmYUNyZWF0aXZlQ29tbW9uc1BkQWx0Ok5ocixmYU9yY2lkOk9ocixmYUJvYXJkR2FtZUdlZWs6ZUllLGZhQmdnOlJocixmYUJlaGFuY2U6RmhyLGZhTW9uZXJvOkJocixmYUZpZ21hOkhocixmYUluc3RhZ3JhbTpldWUsZmFQZXJieXRlOnFocixmYVNxdWFyZVZpbWVvOnRJZSxmYVZpbWVvU3F1YXJlOlZocixmYVB1c2hlZDpqaHIsZmFNaXhjbG91ZDpVaHIsZmFZYW5kZXhJbnRlcm5hdGlvbmFsOldocixmYUhpdmU6R2hyLGZhQ3JlYXRpdmVDb21tb25zWmVybzpZaHIsZmFTcXVhcmVTbmFwY2hhdDpySWUsZmFTbmFwY2hhdFNxdWFyZTpLaHIsZmFUaGVtZWlzbGU6WmhyLGZhRGFydExhbmc6UWhyLGZhRGVwbG95ZG9nOlhocixmYUZsaXBib2FyZDpKaHIsZmFCdXlOTGFyZ2U6ZTZyLGZhV2F0Y2htYW5Nb25pdG9yaW5nOnQ2cixmYUhpcHM6cjZyLGZhQ2xvdWR2ZXJzaWZ5OmE2cixmYUdvb2RyZWFkczppNnIsZmFUaWRhbDpzNnIsZmFVbml0eTpuNnIsZmFUZW5jZW50V2VpYm86bzZyLGZhRnJlZUNvZGVDYW1wOmw2cixmYVhUd2l0dGVyOmM2cixmYVN0aWNrZXJNdWxlOmQ2cixmYVR3aXRjaDp1NnIsZmFLaWNrc3RhcnRlcks6cDZyLGZhQ3JpdGljYWxSb2xlOmY2cixmYVN0ZWFtU3ltYm9sOmg2cixmYU1haWxjaGltcDptNnIsZmFMdW1vbjpnNnIsZmFOdXRyaXRpb25peDpiNnIsZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZ1BsdXM6eDZyLGZhUmVkaGF0OnY2cixmYVNxdWFyZVBpZWRQaXBlcjphSWUsZmFQaWVkUGlwZXJTcXVhcmU6eTZyLGZhV2hhdHNhcHA6dzZyLGZhSW1kYjprNnIsZmFQeXRob246UzZyLGZhQ2FzaEFwcDpNNnIsZmFQaW50ZXJlc3RQOkM2cixmYVdobWNzOno2cixmYUpvZ2V0Ol82cixmYVNxdWFyZVlvdXR1YmU6aUllLGZhWW91dHViZVNxdWFyZTpUNnIsZmFBdGxhc3NpYW46TDZyLGZhUGllZFBpcGVySGF0OkQ2cixmYUludGVybmV0RXhwbG9yZXI6JDZyLGZhQWlyYm5iOkE2cixmYUpzOkU2cixmYVF1aW5zY2FwZTpJNnIsZmFBZHZlcnNhbDpQNnIsZmFDcmVhdGl2ZUNvbW1vbnM6TjZyLGZhTm90aW9uOk82cixmYUNocm9tZWNhc3Q6UjZyLGZhVWx0cmFseXRpY3NIdWI6RjZyLGZhV2lraXBlZGlhVzpCNnIsZmFTaXRyb3g6SDZyLGZhU3F1YXJlR2l0bGFiOnNJZSxmYUdpdGxhYlNxdWFyZTpxNnIsZmFTaG9lbGFjZTpWNnIsZmFPcGVuc3RyZWV0bWFwOmo2cixmYVNlbGxjYXN0OlU2cixmYU1peDpXNnIsZmFDY0FwcGxlUGF5Okc2cixmYVNvbGFuYTpZNnIsZmFUeXBlc2NyaXB0Oks2cixmYUJyYXZlOlo2cixmYUV0c3k6UTZyLGZhQnRjOlg2cixmYUFkbjpKNnIsZmFTcXVhcmVYVHdpdHRlcjplbXIsZmFTcXVhcmVGb250QXdlc29tZTp0bXIsZmFGb3J1bWJlZTpybXIsZmE0Mkdyb3VwOm5JZSxmYUlubm9zb2Z0OmFtcixmYVN0dW1ibGV1cG9uQ2lyY2xlOmltcixmYVN5bWZvbnk6c21yLGZhU2FsZXNmb3JjZTpubXIsZmFTb3VyY2V0cmVlOm9tcixmYUxpbmtlZGluSW46bG1yLGZhSHRtbDU6Y21yLGZhUnVzdDpkbXIsZmFIb3JuYmlsbDp1bXIsZmFQaHA6cG1yLGZhRGlzcXVzOmZtcixmYTUwMHB4OmhtcixmYUFmZmlsaWF0ZXRoZW1lOm1tcixmYVJlZFJpdmVyOmdtcixmYVR3aXR0ZXI6dHVlLGZhRm9ydEF3ZXNvbWU6Ym1yLGZhTWl4ZXI6eG1yLGZhTHlmdDp2bXIsZmFBcHBsZVBheTp5bXIsZmFBcnRzdGF0aW9uOndtcixmYU5vZGVKczprbXIsZmFVbmNoYXJ0ZWQ6U21yLGZhUGxheXN0YXRpb246TW1yLGZhTWljcm9ibG9nOkNtcixmYUdpdGtyYWtlbjp6bXIsZmFUZWxlZ3JhbTpvSWUsZmFUZWxlZ3JhbVBsYW5lOl9tcixmYVVsdHJhbHl0aWNzOlRtcixmYUl0dW5lc05vdGU6TG1yLGZhTGVzczpEbXIsZmFGaXJlZm94OiRtcixmYUthZ2dsZTpBbXIsZmFGYWNlYm9va01lc3NlbmdlcjpFbXIsZmFBdWRpYmxlOkltcixmYVBhdHJlb246UG1yLGZhVm52Ok5tcixmYVBhZ2VsaW5lczpPbXIsZmFBbWF6b246Um1yLGZhRW52aXJhOkZtcixmYUxpbm9kZTpCbXIsZmFBY2N1c29mdDpIbXIsZmFFcmxhbmc6cW1yLGZhVW5pc29uOlZtcixmYUNjRGlzY292ZXI6am1yLGZhU2FmYXJpOlVtcixmYVNwYWNlQXdlc29tZTpXbXIsZmFOb2RlOkdtcixmYUNvZGVwZW46WW1yLGZhUmF2ZWxyeTpLbXIsZmFBbGlwYXk6Wm1yLGZhQ2NBbWV4OlFtcixmYVBpZWRQaXBlckFsdDpYbXIsZmFMZXR0ZXJib3hkOkptcixmYU9wZXJhOmU1cixmYVdlaWJvOnQ1cixmYVJlYWRtZTpyNXIsZmFHb2xhbmc6YTVyLGZhU3RhY2tFeGNoYW5nZTppNXIsZmFHdWxwOnM1cixmYVllbHA6bjVyLGZhR29mb3JlOm81cixmYUF2aWF0bzpsNXIsZmFQYWRsZXQ6YzVyLGZhRWRnZUxlZ2FjeTpkNXIsZmFTcXVhcmVMYXN0Zm06bEllLGZhTGFzdGZtU3F1YXJlOnU1cixmYUdvb2RyZWFkc0c6cDVyLGZhQ2NNYXN0ZXJjYXJkOmY1cixmYURpc2NvdXJzZTpoNXIsZmFCbGFja1RpZTptNXIsZmFTcXVhcmVGYWNlYm9vazpjSWUsZmFGYWNlYm9va1NxdWFyZTpnNXIsZmFCYXR0bGVOZXQ6YjVyLGZhQmltb2JqZWN0Ong1cixmYVN2ZWx0ZTp2NXIsZmFTcXVhcmVEZXNrcHJvOnk1cixmYVRhaWx3aW5kQ3NzOnc1cn19KTt2YXIgRUVhLGRJZSxTNXIsTTVyLHVJZSxDNXIsTV8sejVyLF81cixUNXIsTDVyLHBJZSxENXIsJDVyLEE1cixDXyxFNXIsZkllLEk1cixoSWUsUDVyLE41cixPNXIsUjVyLG1JZSxGNXIsZ0llLEI1cixiSWUsSDVyLHhJZSxxNXIsdkllLFY1cix5SWUsajVyLHdJZSxVNXIsVzVyLGtJZSxHNXIsU0llLFk1cixNSWUsSzVyLENJZSxaNXIsUTVyLHpJZSxYNXIsX0llLEo1cixUSWUsZThyLExJZSx0OHIsREllLHI4cixhOHIsaThyLHJ1ZSxzOHIsbjhyLG84cixsOHIsYzhyLGQ4cix1OHIscDhyLGF1ZSxmOHIsaDhyLCRJZSxtOHIsZzhyLGI4cix4OHIsdjhyLHk4cix3OHIsazhyLEFJZSxTOHIsTThyLEM4cix6eSx6OHIsXzhyLEVJZSxUOHIsTDhyLElJZSxEOHIsZHVlLCQ4cixBOHIsaXVlLEU4cixJOHIsUEllLFA4cixOOHIsTzhyLE5JZSxSOHIsT0llLEY4cixzdWUsQjhyLEg4cixSSWUscThyLEZJZSxWOHIsajhyLFU4cixCSWUsVzhyLEhJZSxHOHIscUllLFk4cixWSWUsSzhyLFo4cixROHIsWDhyLGpJZSxKOHIsZTdyLFVJZSx0N3IscjdyLFdJZSxhN3IsaTdyLEdJZSxzN3IsbjdyLG83cixrXyxsN3IsYzdyLGQ3cix6Xyx1N3IscDdyLGY3cixZSWUsaDdyLG03cixLSWUsZzdyLFpJZSxiN3IsU18seDdyLHY3cix5N3IsUUllLHc3cixudWUsazdyLFM3cixNN3IsQzdyLFhJZSx6N3Isb3VlLF83cixUN3IsSkllLEw3cixlUGUsRDdyLCQ3cix0UGUsQTdyLHJQZSxFN3IsbHVlLEk3cixQN3IsTjdyLF9fLE83cixSN3IsRjdyLEI3cixhUGUsSDdyLGlQZSxxN3Isc1BlLFY3cixuUGUsajdyLG9QZSxVN3IsbFBlLFc3cixjdWUsRzdyLFk3cixLN3IsWjdyLGNQZSxRN3IsZFBlLFg3cix1UGUsSjdyLHBQZSxlOXIsdDlyLHI5cixhOXIsaTlyLHM5cixuOXIsZlBlLG85cixoUGUsbDlyLGM5cixtUGUsZDlyLGdQZSx1OXIsYlBlLHA5cix1dWUsZjlyLHhQZSxoOXIsbTlyLHZQZSxnOXIseVBlLGI5cix4OXIsdjlyLHdQZSx5OXIsdzlyLGtQZSxrOXIsUzlyLE05cixDOXIsU1BlLHo5cixNUGUsXzlyLENQZSxUOXIsTDlyLEQ5cix6UGUsJDlyLF9QZSxBOXIsVFBlLEU5cixJOXIsTFBlLFA5cixEUGUsTjlyLE85ciwkUGUsUjlyLEY5cixCOXIsSUVhLEg5cj11KCgpPT57RUVhPSJmYXIiLGRJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtbWludXMiLGljb246WzQ0OCw1MTIsWzYxNzY3LCJtaW51cy1zcXVhcmUiXSwiZjE0NiIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTM2IDIzMmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFM1cj1kSWUsTTVyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLWNoZWNrIixpY29uOls0NDgsNTEyLFtdLCJmMjc0IiwiTTMyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyem0yMzAuNyA2NS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuMyAxMC43IDcuOCAxMy4xIDIyLjggNS4zIDMzLjVMMjExLjQgMzc0LjFjLTQuMSA1LjctMTAuNSA5LjMtMTcuNSA5LjgtNyAuNS0xMy45LTItMTguOC02LjlsLTU1LjktNTUuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM2IDM2IDEwNS42LTE0NS4yeiJdfSx1SWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzIixpY29uOls1MTIsNTEyLFsxMjg1MzUsImtpc3MiXSwiZjU5NiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI0MCAwbDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni00OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxDNXI9dUllLE1fPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhc3RlIixpY29uOls1MTIsNTEyLFsiZmlsZS1jbGlwYm9hcmQiXSwiZjBlYSIsIk02NCA0OGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTEyIDAgMC00OC0xMTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnptMTc2IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDEwNCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDUuNiAwYzguOC04LjYgMTktMTUuOCAzMC4yLTIxLjEgLjEtLjkgLjItMS45IC4yLTIuOXpNNDQ4IDQ2NGwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsMTAxLjUgMGM0LjIgMCA4LjMgMS43IDExLjMgNC43bDU4LjUgNTguNWMzIDMgNC43IDcuMSA0LjcgMTEuM0w0NjQgNDQ4YzAgOC44LTcuMiAxNi0xNiAxNnpNMjI0IDIyNGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zbC01OC41LTU4LjVjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMMjg4IDE2MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6Il19LHo1cj1NXyxfNXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJmMGE1IiwiTTY0IDEyOGwxNzcuNiAwYy0xIDUuMi0xLjYgMTAuNS0xLjYgMTZsMCAxNi0xNzYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMjI0IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA0OGMwIDUyLjUtMzMuNyA5Ny4xLTgwLjcgMTEzLjQgLjUtMy4xIC43LTYuMiAuNy05LjQgMC0yMC05LjItMzcuOS0yMy42LTQ5LjcgNC45LTkgNy42LTE5LjQgNy42LTMwLjMgMC0xNS4xLTUuMy0yOS0xNC00MCA4LjgtMTEgMTQtMjQuOSAxNC00MGwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MHptMzItODBsMCAwYy0xOCAwLTM0LjYgNi00OCAxNkw2NCA4MEMyOC43IDgwIDAgMTA4LjcgMCAxNDRzMjguNyA2NCA2NCA2NGw4MiAwYy0xLjMgNS4xLTIgMTAuNS0yIDE2IDAgMjUuMyAxNC43IDQ3LjIgMzYgNTcuNi0yLjYgNy00IDE0LjUtNCAyMi40IDAgMjAgOS4yIDM3LjkgMjMuNiA0OS43LTQuOSA5LTcuNiAxOS40LTcuNiAzMC4zIDAgMzUuMyAyOC43IDY0IDY0IDY0bDg4IDBjOTIuOCAwIDE2OC03NS4yIDE2OC0xNjhsMC00OGMwLTkyLjgtNzUuMi0xNjgtMTY4LTE2OGwtMjQgMHpNMjU2IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwek0yNDAgMjI0YzAgNS41IC43IDEwLjkgMiAxNmwtMzQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwzMiAwIDAgMTZ6bTI0IDY0bDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjQgMHoiXX0sVDVyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtZXhjZWwiLGljb246WzM4NCw1MTIsW10sImYxYzMiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptOTkuMiAyNjUuNmMtOC0xMC42LTIzLTEyLjgtMzMuNi00LjhzLTEyLjggMjMtNC44IDMzLjZMMTYyIDM0NCAxMjQuOCAzOTMuNmMtOCAxMC42LTUuOCAyNS42IDQuOCAzMy42czI1LjYgNS44IDMzLjYtNC44TDE5MiAzODQgMjIwLjggNDIyLjRjOCAxMC42IDIzIDEyLjggMzMuNiA0LjhzMTIuOC0yMyA0LjgtMzMuNkwyMjIgMzQ0IDI1OS4yIDI5NC40YzgtMTAuNiA1LjgtMjUuNi00LjgtMzMuNnMtMjUuNi01LjgtMzMuNiA0LjhMMTkyIDMwNCAxNjMuMiAyNjUuNnoiXX0sTDVyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImVudmVsb3BlIixpY29uOls1MTIsNTEyLFsxMjgzODYsOTk5Myw2MTQ0M10sImYwZTAiLCJNNjEuNCA2NEMyNy41IDY0IDAgOTEuNSAwIDEyNS40IDAgMTI2LjMgMCAxMjcuMSAuMSAxMjhMMCAxMjggMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTYtLjEgMGMwLS45IC4xLTEuNyAuMS0yLjYgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjRMNjEuNCA2NHpNNDY0IDE5Mi4zTDQ2NCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTkxLjcgMTU0LjggMTE3LjRjMzEuNCAyMy45IDc0LjkgMjMuOSAxMDYuNCAwTDQ2NCAxOTIuM3pNNDggMTI1LjRDNDggMTE4IDU0IDExMiA2MS40IDExMmwzODkuMiAwYzcuNCAwIDEzLjQgNiAxMy40IDEzLjQgMCA0LjItMiA4LjItNS4zIDEwLjdMMjgwLjIgMjcxLjVjLTE0LjMgMTAuOC0zNC4xIDEwLjgtNDguNCAwTDUzLjMgMTM2LjFjLTMuMy0yLjUtNS4zLTYuNS01LjMtMTAuN3oiXX0scEllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1kb3duIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWRvd24iXSwiZjE1MCIsIk0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDB6bTY0LTE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMHpNMjI0IDM1MmMtNi43IDAtMTMtMi44LTE3LjYtNy43bC0xMDQtMTEyYy02LjUtNy04LjItMTcuMi00LjQtMjUuOVMxMTAuNSAxOTIgMTIwIDE5MmwyMDggMGM5LjUgMCAxOC4yIDUuNyAyMiAxNC40czIuMSAxOC45LTQuNCAyNS45bC0xMDQgMTEyYy00LjUgNC45LTEwLjkgNy43LTE3LjYgNy43eiJdfSxENXI9cEllLCQ1cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMuMyAwYzEwLjQtMzYuOSA0NC40LTY0IDg0LjctNjRzNzQuMiAyNy4xIDg0LjcgNjRsMTAyLjYgMGM0LjktMTcuNCAxNS4xLTMyLjcgMjguNy00My45TDM2OCA5NmMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6bTMuMyAzNjhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTUuNCAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQwLjYgNDAuNmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjR6TTQxNiAyNTZsMTEyIDAgMC0yMy40YzAtNC4yLTEuNy04LjMtNC43LTExLjNsLTQwLjYtNDAuNmMtMy0zLTcuMS00LjctMTEuMy00LjdsLTU1LjQgMCAwIDgwem0wIDQ4bDAgMzIuNGMyLjYtLjIgNS4zLS40IDgtLjQgNDAuMyAwIDc0LjIgMjcuMSA4NC43IDY0bDMuMyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwLTExMiAwek0xNTIgNDY0YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMjcyIDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxBNXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYmVsbCIsaWNvbjpbNDQ4LDUxMixbMTI4Mjc2LDYxNjAyXSwiZjBmMyIsIk0yMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA5LjdDMTE4LjYgNDUuMyA1NiAxMTUuNCA1NiAyMDBsMCAxNC41YzAgMzcuNy0xMCA3NC43LTI5IDEwNy4zTDUuMSAzNTkuMkMxLjggMzY1IDAgMzcxLjUgMCAzNzguMiAwIDM5OS4xIDE2LjkgNDE2IDM3LjggNDE2bDM3Mi40IDBjMjAuOSAwIDM3LjgtMTYuOSAzNy44LTM3LjggMC02LjctMS44LTEzLjMtNS4xLTE5TDQyMSAzMjEuN2MtMTktMzIuNi0yOS02OS42LTI5LTEwNy4zbDAtMTQuNWMwLTg0LjYtNjIuNi0xNTQuNy0xNDQtMTY2LjNsMC05LjdjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTM5Mi40IDM2OGwtMzM2LjkgMCAxMi45LTIyLjFDOTEuNyAzMDYgMTA0IDI2MC42IDEwNCAyMTQuNWwwLTE0LjVjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBzMTIwIDUzLjcgMTIwIDEyMGwwIDE0LjVjMCA0Ni4yIDEyLjMgOTEuNSAzNS41IDEzMS40TDM5Mi40IDM2OHpNMTU2LjEgNDY0YzkuOSAyOCAzNi42IDQ4IDY3LjkgNDhzNTgtMjAgNjcuOS00OGwtMTM1LjggMHoiXX0sQ189e3ByZWZpeDoiZmFyIixpY29uTmFtZToibWVzc2FnZSIsaWNvbjpbNTEyLDUxMixbImNvbW1lbnQtYWx0Il0sImYyN2EiLCJNMjAzLjcgNTEyLjlzMCAwIDAgMGwtMzcuOCAyNi43Yy03LjMgNS4yLTE2LjkgNS44LTI0LjkgMS43UzEyOCA1MjkgMTI4IDUyMGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmwzMjAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZsLTEyMC40IDAtOTEuOSA2NC45em02NC4zLTEwNC4xYzguMS01LjcgMTcuOC04LjggMjcuNy04LjhMNDE2IDQwMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiA4MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyMjRjMCAyNi41IDIxLjUgNDggNDggNDhsNTYgMGMxMC40IDAgMTkuMyA2LjYgMjIuNiAxNS45IC45IDIuNSAxLjQgNS4yIDEuNCA4LjFsMCA0OS43YzMyLjctMjMuMSA2My4zLTQ0LjcgOTEuOS02NC45eiJdfSxFNXI9Q18sZkllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZGl6enkiLGljb246WzUxMiw1MTIsWyJkaXp6eSJdLCJmNTY3IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMjg4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxJNXI9ZkllLGhJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1kYXlzIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItYWx0Il0sImYwNzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0LTg4IDAgMCA4MCA3MiAwem0xNi0xMjhsMC04MC04OCAwIDAgODAgODggMHptLTEzNiAwbDAtODAtODAgMCAwIDgwIDgwIDB6bS0xMjggMGwwLTgwLTg4IDAgMCA4MCA4OCAwek00OCAzNTJsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNzIgMCAwLTgwLTg4IDB6bTEzNiAwbDAgODAgODAgMCAwLTgwLTgwIDB6TTEyMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHoiXX0sUDVyPWhJZSxONXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC11cCIsaWNvbjpbMzg0LDUxMixbOTc1N10sImYwYTYiLCJNNjQgNjRsMCAxNzcuNmM1LjItMSAxMC41LTEuNiAxNi0xLjZsMTYgMCAwLTE3NmMwLTguOC03LjItMTYtMTYtMTZTNjQgNTUuMiA2NCA2NHpNODAgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgNjYuMyA1My43IDEyMCAxMjAgMTIwbDQ4IDBjNTIuNSAwIDk3LjEtMzMuNyAxMTMuNC04MC43LTMuMSAuNS02LjIgLjctOS40IC43LTIwIDAtMzcuOS05LjItNDkuNy0yMy42LTkgNC45LTE5LjQgNy42LTMwLjMgNy42LTE1LjEgMC0yOS01LjMtNDAtMTQtMTEgOC44LTI0LjkgMTQtNDAgMTRsLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtODAgMHpNMCAzMjBsMCAwYzAtMTggNi0zNC42IDE2LTQ4TDE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBzNjQgMjguNyA2NCA2NGwwIDgyYzUuMS0xLjMgMTAuNS0yIDE2LTIgMjUuMyAwIDQ3LjIgMTQuNyA1Ny42IDM2IDctMi42IDE0LjUtNCAyMi40LTQgMjAgMCAzNy45IDkuMiA0OS43IDIzLjYgOS00LjkgMTkuNC03LjYgMzAuMy03LjYgMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4OGMwIDkyLjgtNzUuMiAxNjgtMTY4IDE2OGwtNDggMEM3NS4yIDUxMiAwIDQzNi44IDAgMzQ0bDAtMjR6bTMzNi02NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNMTYwIDI0MGM1LjUgMCAxMC45IC43IDE2IDJsMC0zNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDMyIDE2IDB6bTY0IDI0bDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjR6Il19LE81cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLWxpemFyZCIsaWNvbjpbNTEyLDUxMixbXSwiZjI1OCIsIk03MiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTY4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE1MiAwYzQuNSAwIDguOSAxLjMgMTIuNyAzLjZsNjQgNDBjNyA0LjQgMTEuMyAxMi4xIDExLjMgMjAuNGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTAuNy00Ni45LTI5LjMtMTQ1LjEgMGMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmwxMDQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkw3MiAyMDhjLTM5LjggMC03Mi0zMi4yLTcyLTcyUzMyLjIgNjQgNzIgNjRsMjA5LjYgMGM0Ni43IDAgOTAuOSAyMS41IDExOS43IDU4LjNsNzguNCAxMDAuMWMyMC45IDI2LjcgMzIuMyA1OS43IDMyLjMgOTMuN0w1MTIgNDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA3LjljMC0yMy4yLTcuOC00NS44LTIyLjEtNjQuMUwzNjMuNSAxNTEuOWMtMTkuNy0yNS4yLTQ5LjktMzkuOS04MS45LTM5LjlMNzIgMTEyeiJdfSxSNXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWZ1bGwiLGljb246WzUxMiw1MTIsWzEyODk5NywxMjg5OTgsMTI4OTk5LDEyOWUzLDEyOTAwMSwxMjkwMDIsMTI5MDAzLDExMDM1LDExMDM2XSwiZjQ1YyIsIk00NDggNDhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6Il19LG1JZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtcGF1c2UiLGljb246WzUxMiw1MTIsWzYyMDkyLCJwYXVzZS1jaXJjbGUiXSwiZjI4YiIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHptMTEyIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHoiXX0sRjVyPW1JZSxnSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFyZC1kcml2ZSIsaWNvbjpbNDQ4LDUxMixbMTI4NDM2LCJoZGQiXSwiZjBhMCIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYyYzUuMS0xLjMgMTAuNS0yIDE2LTJsMzIwIDBjNS41IDAgMTAuOSAuNyAxNiAybDAtMTYyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNNDggMzIwbDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAzMDRjLTguOCAwLTE2IDcuMi0xNiAxNnpNMCAzMjBMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtOTZ6bTIxNiA0OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxCNXI9Z0llLGJJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXppcHBlciIsaWNvbjpbMzg0LDUxMixbImZpbGUtYXJjaGl2ZSJdLCJmMWM2IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTgwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNjQgNTZsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyeiJdfSxINXI9YkllLHhJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmbG9wcHktZGlzayIsaWNvbjpbNDQ4LDUxMixbMTI4MTkwLDEyODQyNiwic2F2ZSJdLCJmMGM3IiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0Mi43YzAtNC4yLTEuNy04LjMtNC43LTExLjNMMzIwIDg2LjYgMzIwIDE3NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTYtMzIgMHptODAgMGwwIDgwIDEyOCAwIDAtODAtMTI4IDB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjQyLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjhjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0w0NDggNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTYwIDMyMGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LHE1cj14SWUsdkllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1NDEsImdyaW4tdG9uZ3VlLXNxdWludCJdLCJmNThhIiwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDc1LjkgNDAuNyAxNDIuNCAxMDEuNSAxNzguNy0zLjYtMTAuOS01LjUtMjIuNi01LjUtMzQuN2wwLTM3LjVjLTEwLjItMTIuNi0xOC4zLTI2LjktMjMuOC00Mi40LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNiAxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtNS41IDE1LjYtMTMuNiAyOS45LTIzLjggNDIuNWwwIDM3LjVjMCAxMi4xLTEuOSAyMy44LTUuNSAzNC43IDYwLjgtMzYuMyAxMDEuNS0xMDIuNyAxMDEuNS0xNzguN3pNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTI1LjgtNzUuN2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXMxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjN6bTI2My42LTIxLjFjNC41IDYuOCAzLjEgMTUuOS0zLjEgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41ek0zMjAgNDE2bDAtMzcuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDM3LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sVjVyPXZJZSx5SWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FtZXJhIixpY29uOls1MTIsNTEyLFs2MjI1OCwiY2FtZXJhLWFsdCJdLCJmMDMwIiwiTTE5My4xIDMyYy0xOC43IDAtMzYuMiA5LjQtNDYuNiAyNC45TDEyMC41IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNTYuNSAwLTI2LTM5LjFDMzU1LjEgNDEuNCAzMzcuNiAzMiAzMTguOSAzMkwxOTMuMSAzMnptLTYuNyA1MS42YzEuNS0yLjIgNC0zLjYgNi43LTMuNmwxMjUuNyAwYzIuNyAwIDUuMiAxLjMgNi43IDMuNmwzMy4yIDQ5LjhjNC41IDYuNyAxMS45IDEwLjcgMjAgMTAuN2w2OS4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsNjkuMyAwYzggMCAxNS41LTQgMjAtMTAuN2wzMy4yLTQ5Ljh6TTI1NiAzODRhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0xOTIgMjcyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sajVyPXlJZSx3SWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXN0YXJzIixpY29uOls1MTIsNTEyLFsxMjkzMjEsImdyaW4tc3RhcnMiXSwiZjU4NyIsIk0wIDI1NmMwLTI5LjYgNS01Ny45IDE0LjItODQuNGwxNy4zIDE2LjktNC42IDI3Yy00LjIgMjQuNCA1LjYgNDYuMiAyMiA1OS45IDkuOCAxMDUuOCA5OC44IDE4OC43IDIwNy4xIDE4OC43czE5Ny40LTgyLjggMjA3LjEtMTg4LjZjMTYuNC0xMy43IDI2LjEtMzUuNCAyMi01OS45bC00LjYtMjcgMTcuMy0xNi45YzkuMiAyNi40IDE0LjIgNTQuOCAxNC4yIDg0LjQgMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMwIDM5Ny40IDAgMjU2ek0yNTYgNDhjLTE1LjIgMC0zMCAxLjYtNDQuMyA0LjdMMjAxLjQgMzEuOEMxOTcgMjMgMTkxLjEgMTUuOCAxODQuMiAxMC4yIDIwNyAzLjYgMjMxLjEgMCAyNTYgMHM0OSAzLjYgNzEuOCAxMC4yQzMyMC45IDE1LjggMzE1IDIzIDMxMC42IDMxLjhMMzAwLjMgNTIuN0MyODYgNDkuNiAyNzEuMiA0OCAyNTYgNDh6TTM3Mi4yIDMwMi4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0zNTMuNyA1My4xYzUuOS0xMS45IDIyLjgtMTEuOSAyOC43IDBsMjMuMyA0Ny4yIDUyIDcuNmMxMy4xIDEuOSAxOC40IDE4IDguOSAyNy4zbC0zNy43IDM2LjcgOC45IDUxLjhjMi4yIDEzLjEtMTEuNSAyMy0yMy4yIDE2LjlMMzY4IDIxNiAzMjEuNSAyNDAuNWMtMTEuNyA2LjItMjUuNS0zLjgtMjMuMi0xNi45bDguOS01MS44LTM3LjctMzYuN2MtOS41LTkuMy00LjMtMjUuNCA4LjktMjcuM2w1Mi03LjYgMjMuMy00Ny4yem0tMTk1LjMgMGwyMy4zIDQ3LjIgNTIgNy42YzEzLjEgMS45IDE4LjQgMTggOC45IDI3LjNsLTM3LjcgMzYuNyA4LjkgNTEuOGMyLjIgMTMuMS0xMS41IDIzLTIzLjIgMTYuOUwxNDQgMjE2IDk3LjUgMjQwLjVjLTExLjcgNi4yLTI1LjUtMy44LTIzLjItMTYuOWw4LjktNTEuOC0zNy43LTM2LjdjLTkuNS05LjMtNC4zLTI1LjQgOC45LTI3LjNsNTItNy42IDIzLjMtNDcuMmM1LjktMTEuOSAyMi44LTExLjkgMjguNyAweiJdfSxVNXI9d0llLFc1cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJleWUiLGljb246WzU3Niw1MTIsWzEyODA2NV0sImYwNmUiLCJNMjg4IDgwQzIyMi44IDgwIDE2OS4yIDEwOS42IDEyOC4xIDE0Ny43IDg5LjYgMTgzLjUgNjMgMjI2IDQ5LjQgMjU2IDYzIDI4NiA4OS42IDMyOC41IDEyOC4xIDM2NC4zIDE2OS4yIDQwMi40IDIyMi44IDQzMiAyODggNDMyczExOC44LTI5LjYgMTU5LjktNjcuN0M0ODYuNCAzMjguNSA1MTMgMjg2IDUyNi42IDI1NiA1MTMgMjI2IDQ4Ni40IDE4My41IDQ0Ny45IDE0Ny43IDQwNi44IDEwOS42IDM1My4yIDgwIDI4OCA4MHpNOTUuNCAxMTIuNkMxNDIuNSA2OC44IDIwNy4yIDMyIDI4OCAzMnMxNDUuNSAzNi44IDE5Mi42IDgwLjZjNDYuOCA0My41IDc4LjEgOTUuNCA5MyAxMzEuMSAzLjMgNy45IDMuMyAxNi43IDAgMjQuNi0xNC45IDM1LjctNDYuMiA4Ny43LTkzIDEzMS4xLTQ3LjEgNDMuNy0xMTEuOCA4MC42LTE5Mi42IDgwLjZTMTQyLjUgNDQzLjIgOTUuNCAzOTkuNGMtNDYuOC00My41LTc4LjEtOTUuNC05My0xMzEuMS0zLjMtNy45LTMuMy0xNi43IDAtMjQuNiAxNC45LTM1LjcgNDYuMi04Ny43IDkzLTEzMS4xek0yODggMzM2YzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMjkuNi0xNi4xLTU1LjUtNDAtNjkuMy0xLjQgNTkuNy00OS42IDEwNy45LTEwOS4zIDEwOS4zIDEzLjggMjMuOSAzOS43IDQwIDY5LjMgNDB6bS03OS42LTg4LjRjMi41IC4zIDUgLjQgNy42IC40IDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMi42LS4yLTUuMS0uNC03LjYtMzcuNCAzLjktNjcuMiAzMy43LTcxLjEgNzEuMXptNDUuNi0xMTVjMTAuOC0zIDIyLjItNC41IDMzLjktNC41IDguOCAwIDE3LjUgLjkgMjUuOCAyLjYgLjMgLjEgLjUgLjEgLjggLjIgNTcuOSAxMi4yIDEwMS40IDYzLjcgMTAxLjQgMTI1LjIgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNjEuNiAwLTExMy00My41LTEyNS4yLTEwMS40LTEuOC04LjYtMi44LTE3LjUtMi44LTI2LjYgMC0xMSAxLjQtMjEuOCA0LTMyIC4yLS43IC4zLTEuMyAuNS0xLjkgMTEuOS00My40IDQ2LjEtNzcuNiA4OS41LTg5LjV6Il19LGtJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNhZC10ZWFyIixpY29uOls1MTIsNTEyLFsxMjg1NDYsInNhZC10ZWFyIl0sImY1YjQiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNDEuOCAxMi4zIDgwLjcgMzMuNiAxMTMuMyA4LjIgNDQuNyA0Ny4zIDc4LjYgOTQuMyA3OC43IDI0LjcgMTAuMyA1MS43IDE2IDgwLjEgMTYgMTE0LjkgMCAyMDgtOTMuMSAyMDgtMjA4ek0yODggMzUyYy01LjUgMC0xMC45IC42LTE2IDEuOCAwLS42IDAtMS4yIDAtMS44IDAtMTYuMi00LTMxLjUtMTEuMS00NC45IDguNy0yIDE3LjgtMy4xIDI3LjEtMy4xIDQwLjIgMCA3NS43IDE5LjggOTcuNSA1MCA3LjcgMTAuOCA1LjMgMjUuOC01LjUgMzMuNXMtMjUuOCA1LjMtMzMuNS01LjVjLTEzLjEtMTguMi0zNC40LTMwLTU4LjUtMzB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODUuNCAyNzYuOGM2LjUgNy44IDEyLjYgMTYuMSAxOC4zIDI0LjYgOSAxMy40IDIwLjMgMzAuMiAyMC4zIDQ3LjQgMCAyOC4zLTIxLjUgNTEuMi00OCA1MS4ycy00OC0yMi45LTQ4LTUxLjJjMC0xNy4yIDExLjItMzQgMjAuMy00Ny40IDUuNy04LjUgMTEuOS0xNi43IDE4LjMtMjQuNiAyLjQtMi45IDUuNy00LjggOS40LTQuOHM3IDEuOSA5LjQgNC44eiJdfSxHNXI9a0llLFNJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzaGFyZS1mcm9tLXNxdWFyZSIsaWNvbjpbNTc2LDUxMixbNjE1MDksInNoYXJlLXNxdWFyZSJdLCJmMTRkIiwiTTQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNGwwIDU2LTQ4IDBjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwIDAgNDYuNyAyMC43IDgwLjQgNDMuNiAxMDMuNCA4LjEgOC4yIDE2LjUgMTQuOSAyNC4zIDIwLjQgOS4yIDYuNSAyMS43IDUuNyAzMC4xLTEuOXMxMC4yLTIwIDQuNS0yOS44Yy0zLjYtNi4zLTYuNS0xNC45LTYuNS0yNi43IDAtMzYuMiAyOS4zLTY1LjUgNjUuNS02NS41bDQ2LjUgMCAwIDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDd6bTcgOTdsMC0yMi4xIDc4LjEgNzguMS03OC4xIDc4LjEgMC0yMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0TDMzOCAxOTJjLTUwLjkgMC05My45IDMzLjUtMTA4LjMgNzkuNi0zLjMtOS40LTUuMi0xOS44LTUuMi0zMS42IDAtNjEuOSA1MC4xLTExMiAxMTItMTEybDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjR6bS0zMjAtOGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQgMHoiXX0sWTVyPVNJZSxNSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibm90ZS1zdGlja3kiLGljb246WzQ0OCw1MTIsWzYyMDI2LCJzdGlja3ktbm90ZSJdLCJmMjQ5IiwiTTI0MCA0MzJMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDMyMCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE3Ni04OCAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDg4ek0zODAuMSAzMjBMMjg4IDQxMi4xIDI4OCAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNjguMSAwek0wIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQyOS4zIDMzOC43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZ6Il19LEs1cj1NSWUsQ0llPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtYmFjay1maXN0IixpY29uOlszODQsNTEyLFsiaGFuZC1yb2NrIl0sImYyNTUiLCJNOTYgNDAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgNDAwek03My4yIDM1Mmw2NC42IDAtNzkuNS04OC4zQzUxLjcgMjU2LjMgNDggMjQ2LjggNDggMjM2LjlMNDggMjA0YzAtMTYuMSAxMS45LTI5LjUgMjcuNC0zMS43IDExLjgtMS43IDIwLjYtMTEuOCAyMC42LTIzLjhMOTYgNzJjMC0xMy4zIDEwLjctMjQgMjQtMjQgNy4yIDAgMTMuNiAzLjEgMTggOC4xIDQuNiA1LjIgMTEuMSA4LjEgMTggOC4xczEzLjQtMyAxOC04LjFjNC40LTUgMTAuOC04LjEgMTgtOC4xIDguNSAwIDE1LjkgNC40IDIwLjIgMTEuMSA2LjkgMTAuNyAyMC45IDE0LjIgMzIgOCAzLjUtMS45IDcuNC0zLjEgMTEuOC0zLjEgMTAuNiAwIDE5LjcgNi45IDIyLjggMTYuNiAzLjggMTEuNyAxNS45IDE4LjcgMjggMTYgMS43LS40IDMuNC0uNiA1LjItLjYgMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA5Mi4yYzAgMTQuNC0zLjUgMjguNS0xMC4yIDQxLjJsLTUyLjIgOTguNiA1NC4zIDAgNDAuMy03Ni4yYzEwLjQtMTkuNiAxNS44LTQxLjUgMTUuOC02My42bDAtOTIuMmMwLTM4LjQtMzAuMS02OS44LTY4LjEtNzEuOS0xMi45LTE5LjMtMzQuOS0zMi4xLTU5LjktMzIuMS01LjcgMC0xMS4yIC43LTE2LjUgMS45LTEyLjctMTEuMS0yOS4zLTE3LjktNDcuNS0xNy45LTEzLjEgMC0yNS40IDMuNS0zNiA5LjYtMTAuNi02LjEtMjIuOS05LjYtMzYtOS42LTM5LjggMC03MiAzMi4yLTcyIDcybDAgNTguN0MxOS43IDE0MyAwIDE3MS4yIDAgMjA0bDAgMzIuOWMwIDIxLjcgOCA0Mi43IDIyLjYgNTguOUw3My4yIDM1MnoiXX0sWjVyPUNJZSxRNXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3MtcXVlZW4iLGljb246WzUxMiw1MTIsWzk4MTldLCJmNDQ1IiwiTTMyNS4zIDkwLjhjOS4xLTQuOCAyMC42LTMuMyAyOC4yIDQuM2wzOS44IDM5LjggMy43IDMuM2M5LjEgNy4xIDIwLjkgMTAgMzIuNCA3LjdsNDYuNC05LjMgMy41LS40YzgtLjQgMTUuOCAzLjIgMjAuNiA5LjggNS41IDcuNiA2LjEgMTcuNiAxLjYgMjUuOGwtMTEyLjYgMjAyLjYgNTEuNSA3MC45IDEuOCAyLjdjNCA2LjYgNi4yIDE0LjIgNi4yIDIyIDAgMjMuMy0xOC45IDQyLjEtNDIuMSA0Mi4xbC0yOTkuOCAwYy0yMS44IDAtMzkuOC0xNi42LTQxLjktMzcuOGwtLjItNC4zIC4xLTMuM2MuNi03LjcgMy40LTE1LjEgNy45LTIxLjRsNTEuNS03MC45LTExMi41LTIwMi42Yy00LjUtOC4yLTMuOS0xOC4zIDEuNi0yNS44czE0LjktMTEuMiAyNC4xLTkuNGw0Ni40IDkuM2MxMy4xIDIuNiAyNi43LTEuNSAzNi4xLTEwLjlMMTU5LjUgOTUgMTYzIDkyLjJjOC42LTUuOCAyMC4xLTUuNiAyOC41IDEuMWw0MCAzMiAyLjggMi4xYzE0LjQgOS42IDMzLjUgOC45IDQ3LjItMi4xbDQwLTMyIDMuOC0yLjV6TTE2NC43IDQwMGwtNDYuNiA2NCAyNzYuNyAwLTQ2LjYtNjQtMTgzLjYgMHpNMzExLjUgMTYyLjhjLTMwLjEgMjQuMS03Mi4xIDI1LjYtMTAzLjggNC41bC02LjItNC41LTIzLjMtMTguNi0yNC42IDI0LjZjLTE5LjggMTkuOC00Ny43IDI4LjktNzUuMSAyNC44bDg4LjEgMTU4LjUgMTc5LjggMCA4OC0xNTguNWMtMjUuNyAzLjgtNTEuNy0zLjktNzEuMS0yMWwtNC0zLjctMjQuNi0yNC42LTIzLjIgMTguNnpNMjU2LjUgNzJhNDAgNDAgMCAxIDEgMC04MCA0MCA0MCAwIDEgMSAwIDgweiJdfSx6SWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRlYXJzIixpY29uOls2NDAsNTEyLFsxMjg1MTQsImdyaW4tdGVhcnMiXSwiZjU4OCIsIk01MDQuMSAzNTNDNTEyLjkgMzY3LjIgNTI1LjMgMzc5IDUzOS44IDM4Ny4yIDQ5NS4xIDQ2MiA0MTMuNCA1MTIgMzIwIDUxMlMxNDQuOSA0NjIgMTAwLjIgMzg3LjJjMTQuNi04LjIgMjYuOS0yMCAzNS44LTM0LjMgMzQuOSA2NiAxMDQuMiAxMTEgMTg0LjEgMTExczE0OS4yLTQ1IDE4NC4xLTExMXptMTYuNC0xNTIuNUM0OTYuMiAxMTIuNiA0MTUuNyA0OCAzMjAgNDhTMTQzLjggMTEyLjYgMTE5LjUgMjAwLjVjLTEwLjYtNC44LTIyLjctNi44LTM1LjQtNWwtMTMuNCAxLjlDOTcuMiA4NC4zIDE5OC44IDAgMzIwIDBTNTQyLjggODQuMyA1NjkuMyAxOTcuNGwtMTMuNC0xLjljLTEyLjctMS44LTI0LjggLjItMzUuNCA1ek00NTUuOCAzMjBjLTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44ek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAgMjguNC0yMyA1MS40LTUxLjQgNTEuNC0yNS42IDAtNDcuMy0xOC44LTUwLjktNDQuMUw1MzEgMjYxLjFjLTEuNS0xMC42IDcuNS0xOS42IDE4LjEtMTguMWw0Ni43IDYuN2MyNS4zIDMuNiA0NC4xIDI1LjMgNDQuMSA1MC45em0tNjQwIDBjMC0yNS42IDE4LjgtNDcuMyA0NC4xLTUwLjlMOTAuOSAyNDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDMzMy4yIDc3IDM1MiA1MS40IDM1MiAyMyAzNTIgMCAzMjkgMCAzMDAuNnoiXX0sWDVyPXpJZSxfSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicGVuLXRvLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImVkaXQiXSwiZjA0NCIsIk00NDEgNTguOUw0NTMuMSA3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUw0MjQgMTM0LjEgMzc3LjkgODggNDA3IDU4LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDB6TTIwOS44IDI1Ni4yTDM0NCAxMjEuOSAzOTAuMSAxNjggMjU1LjggMzAyLjJjLTIuOSAyLjktNi41IDUtMTAuNCA2LjFsLTU4LjUgMTYuNyAxNi43LTU4LjVjMS4xLTMuOSAzLjItNy41IDYuMS0xMC40ek0zNzMuMSAyNUwxNzUuOCAyMjIuMmMtOC43IDguNy0xNSAxOS40LTE4LjMgMzEuMWwtMjguNiAxMDBjLTIuNCA4LjQtLjEgMTcuNCA2LjEgMjMuNnMxNS4yIDguNSAyMy42IDYuMWwxMDAtMjguNmMxMS44LTMuNCAyMi41LTkuNyAzMS4xLTE4LjNMNDg3IDEzOC45YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOEw0NzQuOSAyNUM0NDYuOC0zLjEgNDAxLjItMy4xIDM3My4xIDI1ek04OCA2NEMzOS40IDY0IDAgMTAzLjQgMCAxNTJMMCA0MjRjMCA0OC42IDM5LjQgODggODggODhsMjcyIDBjNDguNiAwIDg4LTM5LjQgODgtODhsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAyMi4xLTE3LjkgNDAtNDAgNDBMODggNDY0Yy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTI3MmMwLTIyLjEgMTcuOS00MCA0MC00MGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA2NHoiXX0sSjVyPV9JZSxUSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0tc3dlYXQiLGljb246WzU3Niw1MTIsWzEyODUxNywiZ3Jpbi1iZWFtLXN3ZWF0Il0sImY1ODMiLCJNNTMwLjIgMTUuOWMtOC44LTEwLjctMTguNS0yMC45LTI5LTMwLTMtMi42LTcuNC0yLjYtMTAuNCAwLTEwLjUgOS4xLTIwLjEgMTkuMy0yOSAzMC0xNC43IDE3LjgtMjkuOCA0MC4xLTI5LjggNjQuMSAwIDM2LjQgMjcuNiA2NCA2NCA2NHM2NC0yNy42IDY0LTY0YzAtMjQtMTUuMi00Ni4zLTI5LjgtNjQuMXptLTEzMiA4LjlDMzY0LjggOC45IDMyNy40IDAgMjg4IDAgMTQ2LjYgMCAzMiAxMTQuNiAzMiAyNTZTMTQ2LjYgNTEyIDI4OCA1MTIgNTQ0IDM5Ny40IDU0NCAyNTZjMC0yNC40LTMuNC00OC05LjgtNzAuNC0xMS45IDQuMi0yNC43IDYuNC0zOC4yIDYuNC0zLjQgMC02LjgtLjEtMTAuMi0uNCA2LjYgMjAuMyAxMC4yIDQxLjkgMTAuMiA2NC40IDAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFM4MCAzNzAuOSA4MCAyNTYgMTczLjEgNDggMjg4IDQ4YzM0LjggMCA2Ny41IDguNSA5Ni4zIDIzLjYgMS40LTE3LjQgNi45LTMzLjEgMTMuOC00Ni44ek00MjMuOCAzMjBjNC4xLTExLjYtNy44LTIxLjQtMTkuNi0xNy44LTM0LjggMTAuNi03NC4zIDE2LjYtMTE2LjMgMTYuNi00MS45IDAtODEuNC02LTExNi4xLTE2LjUtMTEuOC0zLjYtMjMuNyA2LjEtMTkuNiAxNy44IDE5LjggNTUuOSA3My4xIDk1LjkgMTM1LjggOTUuOSA2Mi43IDAgMTE2LTQwLjEgMTM1LjgtOTZ6TTE4MCAyMDhjMC0xNS41IDEyLjUtMjggMjgtMjhzMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTh6bTE4OC0yOGMxNS41IDAgMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0xNS41IDEyLjUtMjggMjgtMjh6Il19LGU4cj1USWUsTEllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sdDhyPUxJZSxESWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC13aW5rIixpY29uOls1MTIsNTEyLFsibGF1Z2gtd2luayJdLCJmNTljIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTE4LjMgNTguMmMtNC4yLTEzLjcgNy4xLTI2LjIgMjEuNC0yNi4ybDIzMi42IDBjMTQuMyAwIDI1LjYgMTIuNSAyMS40IDI2LjItMTggNTguOS03Mi45IDEwMS44LTEzNy43IDEwMS44UzEzNi4zIDM3My4xIDExOC4zIDMxNC4yek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LHI4cj1ESWUsYThyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhcGVyLXBsYW5lIixpY29uOls1NzYsNTEyLFs2MTkxM10sImYxZDgiLCJNMjkwLjUgMjg3LjdMNDkxLjQgODYuOSAzNTkgNDU2LjMgMjkwLjUgMjg3Ljd6TTQ1Ny40IDUzTDI1Ni42IDI1My44IDg4IDE4NS4zIDQ1Ny40IDUzek0zOC4xIDIxNi44bDIwNS44IDgzLjYgODMuNiAyMDUuOGM1LjMgMTMuMSAxOC4xIDIxLjcgMzIuMyAyMS43IDE0LjcgMCAyNy44LTkuMiAzMi44LTIzLjFMNTcwLjYgOGMzLjUtOS44IDEtMjAuNi02LjMtMjhzLTE4LjItOS44LTI4LTYuM0wzOS40IDE1MS43Yy0xMy45IDUtMjMuMSAxOC4xLTIzLjEgMzIuOCAwIDE0LjIgOC42IDI3IDIxLjcgMzIuM3oiXX0saThyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYXJ0IixpY29uOls1MTIsNTEyLFsxMjgxNTMsMTI4MTU0LDEyODE1NSwxMjgxNTYsMTI4NDIwLDEyOTI5MywxMjkyOTQsMTI5NTA1LDk4MjksMTAwODQsNjE1NzhdLCJmMDA0IiwiTTM3OC45IDgwYy0yNy4zIDAtNTMgMTMuMS02OSAzNS4ybC0zNC40IDQ3LjZjLTQuNSA2LjItMTEuNyA5LjktMTkuNCA5LjlzLTE0LjktMy43LTE5LjQtOS45bC0zNC40LTQ3LjZjLTE2LTIyLjEtNDEuNy0zNS4yLTY5LTM1LjItNDcgMC04NS4xIDM4LjEtODUuMSA4NS4xIDAgNDkuOSAzMiA5OC40IDY4LjEgMTQyLjMgNDEuMSA1MCA5MS40IDk0IDEyNS45IDEyMC4zIDMuMiAyLjQgNy45IDQuMiAxNCA0LjJzMTAuOC0xLjggMTQtNC4yYzM0LjUtMjYuMyA4NC44LTcwLjQgMTI1LjktMTIwLjMgMzYuMi00My45IDY4LjEtOTIuNCA2OC4xLTE0Mi4zIDAtNDctMzguMS04NS4xLTg1LjEtODUuMXpNMjcxIDg3LjFjMjUtMzQuNiA2NS4yLTU1LjEgMTA3LjktNTUuMSA3My41IDAgMTMzLjEgNTkuNiAxMzMuMSAxMzMuMSAwIDY4LjYtNDIuOSAxMjguOS03OS4xIDE3Mi44LTQ0LjEgNTMuNi05Ny4zIDEwMC4xLTEzMy44IDEyNy45LTEyLjMgOS40LTI3LjUgMTQuMS00My4xIDE0LjFzLTMwLjgtNC43LTQzLjEtMTQuMUMxNzYuNCA0MzggMTIzLjIgMzkxLjUgNzkuMSAzMzggNDIuOSAyOTQuMSAwIDIzMy43IDAgMTY1LjEgMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43eiJdfSxydWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9udC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFs2MjUwMSw2MjY5NCwiZm9udC1hd2Vzb21lLWZsYWciLCJmb250LWF3ZXNvbWUtbG9nby1mdWxsIl0sImYyYjQiLCJNOTEuNyA5NkMxMDYuMyA4Ni44IDExNiA3MC41IDExNiA1MiAxMTYgMjMuMyA5Mi43IDAgNjQgMFMxMiAyMy4zIDEyIDUyYzAgMTYuNyA3LjggMzEuNSAyMCA0MWwwIDQxOSA0OCAwIDAtNjQgMzg5LjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNCAwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3MiA0OTMuNyAxMzMuMWMxLjUtMy40IDIuMy03IDIuMy0xMC43IDAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6TTgwIDQwMGwwLTI1NiAzNTYuNCAwLTQ4LjIgMTA4LjVjLTUuNSAxMi40LTUuNSAyNi42IDAgMzlMNDM2LjQgNDAwIDgwIDQwMHoiXX0sczhyPXJ1ZSxuOHI9cnVlLG84cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDY0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yMjQgMzA0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwem0tNjQtMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0eiJdfSxsOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTk3LjUgNDAwbDUwLTE2MCAzNzkuNCAwLTUwIDE2MC0zNzkuNCAwem0xOTAuNyA0OEw0NzcgNDQ4YzIxIDAgMzkuNi0xMy42IDQ1LjgtMzMuN2w1MC0xNjBjOS43LTMwLjktMTMuNC02Mi4zLTQ1LjgtNjIuM2wtMzc5LjQgMGMtMjEgMC0zOS42IDEzLjYtNDUuOCAzMy43TDgwLjIgMjk0LjQgODAuMiA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjgyLjkgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2bDExNy4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDQ4IDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMzMwLjkgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI3My4zIDQ0LjhDMjYyLjIgMzYuNSAyNDguOCAzMiAyMzQuOSAzMkw5Ni4yIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMHoiXX0sYzhyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1taW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDY5XSwiZjJkMSIsIk0wIDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxkOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3Rhci1oYWxmIixpY29uOls1NzYsNTEyLFs2MTczMV0sImYwODkiLCJNMjg1LjctMTUuOGMxMC44IDIuNiAxOC40IDEyLjIgMTguNCAyMy4zbDAgMzg3LjFjMCA5LTUuMSAxNy4zLTEzLjEgMjEuNEwxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM0wxOTMuMSAxMjUuMyAyNTguOC0zLjNjNS05LjkgMTYuMi0xNSAyNy0xMi40ek0yNTYuMSAxMDcuNEwyMzAuMyAxNThjLTMuNSA2LjgtMTAgMTEuNi0xNy42IDEyLjhsLTEyNS41IDIwIDg5LjggODkuOWM1LjQgNS40IDcuOSAxMy4xIDYuNyAyMC43bC0xOS44IDEyNS41IDkyLjItNDYuOSAwLTI3Mi42eiJdfSx1OHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWxhcm0tY2xvY2siLGljb246WzUxMiw1MTIsWzkyMDBdLCJmMzRlIiwiTTQwMi42IDUwLjJjLTUuNCAxLjctMTEuMyAxLjgtMTYuMi0uOS01LjgtMy4yLTExLjgtNi4yLTE3LjgtOC45LTEwLjQtNC43LTEzLjctMTguMy00LjEtMjQuNiAxNS05LjkgMzMtMTUuNyA1Mi4zLTE1LjcgNTIuNiAwIDk1LjIgNDIuNiA5NS4yIDk1LjIgMCAxMy4yLTIuNyAyNS44LTcuNiAzNy4zLTQuNSAxMC41LTE4LjQgOS44LTI0LjkgLjQtMy44LTUuNS03LjgtMTAuOC0xMi0xNi0zLjUtNC40LTQuNS0xMC4yLTMuOC0xNS44IC4yLTEuOSAuNC0zLjkgLjQtNS45IDAtMjYuMS0yMS4yLTQ3LjItNDcuMi00Ny4yLTQuOSAwLTkuNyAuOC0xNC4yIDIuMnpNMzIuNSAxMzIuOWMtNi41IDkuNC0yMC41IDEwLjEtMjQuOS0uNC00LjktMTEuNS03LjYtMjQuMS03LjYtMzcuMyAwLTUyLjYgNDIuNi05NS4yIDk1LjItOTUuMiAxOS4zIDAgMzcuMyA1LjggNTIuMyAxNS43IDkuNiA2LjMgNi4zIDE5LjktNC4xIDI0LjYtNi4xIDIuOC0xMiA1LjctMTcuOCA4LjktNC45IDIuNy0xMC45IDIuNi0xNi4yIC45LTQuNS0xLjQtOS4yLTIuMi0xNC4yLTIuMi0yNi4xIDAtNDcuMiAyMS4yLTQ3LjIgNDcuMiAwIDIgLjEgNCAuNCA1LjkgLjcgNS42LS4zIDExLjQtMy44IDE1LjgtNC4yIDUuMi04LjIgMTAuNS0xMiAxNnpNNDMyIDI4OGExNzYgMTc2IDAgMSAwIC0zNTIgMCAxNzYgMTc2IDAgMSAwIDM1MiAwek0zOTYuNSA0NjIuNUMzNTguMSA0OTMuNCAzMDkuMiA1MTIgMjU2IDUxMnMtMTAyLjEtMTguNi0xNDAuNS00OS41TDczIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Mi41LTQyLjVDNTAuNiAzOTAuMSAzMiAzNDEuMiAzMiAyODggMzIgMTY0LjMgMTMyLjMgNjQgMjU2IDY0UzQ4MCAxNjQuMyA0ODAgMjg4YzAgNTMuMi0xOC42IDEwMi4xLTQ5LjUgMTQwLjVMNDczIDQ3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Mi41LTQyLjV6TTI4MCAxODRsMCA5NC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy00LjUtNC41LTctMTAuNi03LTE3bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LHA4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJuZXdzcGFwZXIiLGljb246WzUxMiw1MTIsWzEyODI0MF0sImYxZWEiLCJNMTY4IDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDguNC0xLjQgMTYuNS00LjEgMjRMNDQwIDQzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwxNjggODB6TTcyIDQ4MGMtMzkuOCAwLTcyLTMyLjItNzItNzJMMCAxMTJDMCA5OC43IDEwLjcgODggMjQgODhzMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDI3MiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMzA0YzAgMzkuOC0zMi4yIDcyLTcyIDcyTDcyIDQ4MHpNMTkyIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6bTE1MiAyNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yMTYgMjU2bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA4MGwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LGF1ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3NwaXRhbCIsaWNvbjpbNTc2LDUxMixbMTI3OTczLDYyNTg5LCJob3NwaXRhbC1hbHQiLCJob3NwaXRhbC13aWRlIl0sImYwZjgiLCJNMTc2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEwxNzYgMHpNMTYwIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw3MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI3MmMwIDguOC03LjIgMTYtMTYgMTZsLTE3NiAwIDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAtMTc2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI3MmMwLTguOCA3LjItMTYgMTYtMTZsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTcyek0xMTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTk2IDMzNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMjAgMGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNi0xMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjY0IDEwNGwwIDMyLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sZjhyPWF1ZSxoOHI9YXVlLCRJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtc3RvcCIsaWNvbjpbNTEyLDUxMixbNjIwOTQsInN0b3AtY2lyY2xlIl0sImYyOGQiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjAgMTkybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTQ4IDExMmwwLTk2IDk2IDAgMCA5Ni05NiAweiJdfSxtOHI9JEllLGc4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJvYmplY3QtdW5ncm91cCIsaWNvbjpbNjQwLDUxMixbXSwiZjI0OCIsIk00OC4yIDY2LjhjLS4xLS44LS4yLTEuNy0uMi0yLjVsMC0uMmMwLTguOCA3LjItMTYgMTYtMTYgLjkgMCAxLjkgLjEgMi44IC4yIDcuNSAxLjMgMTMuMiA3LjkgMTMuMiAxNS44IDAgOC44LTcuMiAxNi0xNiAxNi03LjkgMC0xNC41LTUuNy0xNS44LTEzLjJ6TTAgNjRjMCAyNi45IDE2LjUgNDkuOSA0MCA1OS4zbDAgMTA1LjNjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMjAxLjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMTA1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MEwxMjMuMyA0MEMxMTMuOSAxNi41IDkwLjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NHptMzY4IDBhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMzI0LjcgODhjNi41IDE2IDE5LjMgMjguOSAzNS4zIDM1LjNsMCAxMDUuM2MtMTYgNi41LTI4LjkgMTkuMy0zNS4zIDM1LjNsLTIwMS4zIDBjLTYuNS0xNi0xOS4zLTI4LjktMzUuMy0zNS4zbDAtMTA1LjNjMTYtNi41IDI4LjktMTkuMyAzNS4zLTM1LjNsMjAxLjMgMHpNMzg0IDI3MmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6TTgwIDI4OGMwIDcuOS01LjcgMTQuNS0xMy4yIDE1LjgtLjggLjEtMS43IC4yLTIuNSAuMmwtLjIgMGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtLjkgLjEtMS45IC4yLTIuOCAxLjMtNy41IDcuOS0xMy4yIDE1LjgtMTMuMiA4LjggMCAxNiA3LjIgMTYgMTZ6bTQzNi43LTQwYzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMTA1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0yMDEuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTIwLjctNDggMCAwIDIwLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMjAxLjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMTA1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MGwtNTIuNyAwIDAgOS42YzEwLjcgMTAuOSAxOS4xIDIzLjkgMjQuNiAzOC40bDI4IDB6bTU5LjMtOGExNiAxNiAwIDEgMSAwLTMyIDE2IDE2IDAgMSAxIDAgMzJ6TTI3MS44IDQ1MC43YTE2IDE2IDAgMSAxIC0zMS41LTUuNSAxNiAxNiAwIDEgMSAzMS41IDUuNXptMzAxLjUgMTNjLTcuNS0xLjMtMTMuMi03LjktMTMuMi0xNS44IDAtOC44IDcuMi0xNiAxNi0xNiA3LjkgMCAxNC41IDUuNyAxNS44IDEzLjJsMCAuMWMuMSAuOSAuMiAxLjggLjIgMi43IDAgOC44LTcuMiAxNi0xNiAxNi0uOSAwLTEuOS0uMS0yLjgtLjJ6Il19LGI4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50IixpY29uOls1MTIsNTEyLFsxMjg0ODksNjE2NjldLCJmMDc1IiwiTTUxLjkgMzg0LjlDMTkuMyAzNDQuNiAwIDI5NC40IDAgMjQwIDAgMTA3LjUgMTE0LjYgMCAyNTYgMFM1MTIgMTA3LjUgNTEyIDI0MCAzOTcuNCA0ODAgMjU2IDQ4MGMtMzYuNSAwLTcxLjItNy4yLTEwMi42LTIwTDM3IDUwOS45Yy0zLjcgMS42LTcuNSAyLjEtMTEuNSAyLjEtMTQuMSAwLTI1LjUtMTEuNC0yNS41LTI1LjUgMC00LjMgMS4xLTguNSAzLjEtMTIuMmw0OC44LTg5LjR6bTM3LjMtMzAuMmMxMi4yIDE1LjEgMTQuMSAzNi4xIDQuOCA1My4ybC0xOCAzMy4xIDU4LjUtMjUuMWMxMS44LTUuMSAyNS4yLTUuMiAzNy4xLS4zIDI1LjcgMTAuNSA1NC4yIDE2LjQgODQuMyAxNi40IDExNy44IDAgMjA4LTg4LjggMjA4LTE5MlMzNzMuOCA0OCAyNTYgNDggNDggMTM2LjggNDggMjQwYzAgNDIuOCAxNS4xIDgyLjQgNDEuMiAxMTQuN3oiXX0seDhyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXBhd24iLGljb246WzM4NCw1MTIsWzk4MjNdLCJmNDQzIiwiTTE5Mi0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDI3LjYtOS4zIDUyLjktMjQuOSA3My4yIDkuOCAzIDE2LjkgMTIuMSAxNi45IDIyLjggMCAxMy4zLTEwLjcgMjQtMjQgMjRsLS42IDAgMjQuNiAxNjAgNTMuNiA2N2M2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjYgMCAyNi4yLTIxLjIgNDcuNC00Ny40IDQ3LjRMNjMuNCA1MTJjLTI2LjIgMC00Ny40LTIxLjItNDcuNC00Ny40IDAtMTAuOCAzLjctMjEuMiAxMC40LTI5LjZsNTMuNi02NyAyNC42LTE2MC0uNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjggNy4xLTE5LjggMTYuOS0yMi44LTE1LjYtMjAuMy0yNC45LTQ1LjYtMjQuOS03My4yIDAtNjYuMyA1My43LTEyMCAxMjAtMTIwek0xMTUuOSA0MDBsLTUxLjIgNjQgMjU0LjcgMC01MS4yLTY0LTE1Mi4yIDB6bTM2LjItMTg0LjdsLTIxIDEzNi43IDEyMS45IDAtMjEtMTM2LjctMS4xLTcuMy03Ny42IDAtMS4xIDcuM3pNMTkyIDE2YTcyIDcyIDAgMSAwIDAgMTQ0IDcyIDcyIDAgMSAwIDAtMTQ0eiJdfSx2OHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItcGx1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MSIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0xMDQgNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0seThyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsaXBib2FyZCIsaWNvbjpbMzg0LDUxMixbMTI4MjAzXSwiZjMyOCIsIk0yMzIgOTZsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptMCA0OGMzNy4xIDAgNjcuNi0yOCA3MS42LTY0TDMyMCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzNTJjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNi40IDBjNCAzNiAzNC41IDY0IDcxLjYgNjRsODAgMHpNMjkxLjkgMzJDMjc5IDEyLjcgMjU3IDAgMjMyIDBMMTUyIDBjLTI1IDAtNDcgMTIuNy01OS45IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTI4LjEgMHoiXX0sdzhyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InRodW1icy1kb3duIixpY29uOls1MTIsNTEyLFsxMjgwNzgsNjE1NzZdLCJmMTY1IiwiTTM2MCAzMmw3LjQgLjRjMzUgMy42IDYyLjUgMzIuMiA2NC40IDY3LjcgMTcuOCAxMS44IDMwLjEgMzEuNCAzMiA1My45bC4yIDZjMCA1LjctLjcgMTEuMi0yIDE2LjUgMTAuMiAxMS41IDE2LjggMjYuMyAxNy44IDQyLjdsLjIgNC44YzAgMTMuMi0zLjYgMjUuNC05LjggMzYgNC45IDguNCA4LjIgMTcuOSA5LjMgMjhsLjQgOGMwIDM3LjMtMjguMyA2Ny45LTY0LjYgNzEuNmwtNy40IC40LTEwOS43IDAgMTQuMSAzMCAzLjEgNy42YzEyLjUgMzUuNy0xLjggNzUuNS0zNC4yIDk1bC03LjIgMy45Yy0zNy41IDE3LjYtODEuNyAzLjYtMTAyLjYtMzEuMmwtLjYtLjktMi43LTUtLjYtMS4yLTMwLjEtNjRjLTkuNCAxNy44LTI4IDI5LjktNDkuNSAyOS45bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDE1MmMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEyLjQgMCAyMy45IDQuMSAzMy4yIDExIDEzLjItMjEuNCAzMi0zOS40IDU1LTUxLjZsMTIuMi02LjUgLjctLjMgNi42LTMuMiAuNy0uMyA3LjEtM2MxNi43LTYuNiAzNC41LTkuOSA1Mi42LTkuOUwzNjAgMzJ6TTI1NS45IDgwYy0xMiAwLTIzLjkgMi4zLTM1LjEgNi42bC00LjcgMi01LjMgMi42IDAgMC0xMi4yIDYuNWMtMjkuMiAxNS41LTQ4LjMgNDQuOS01MC43IDc3LjZsLS4yIDggMCAxMTIuOSAuMSA0LjFjLjUgOC4yIDIuNSAxNi4yIDYgMjMuN2w1Ni44IDEyMC45IDIuMSAzLjhjOC40IDEzLjcgMjYgMTkuMSA0MC44IDEyLjJsMi45LTEuNmMxMy03LjggMTguNy0yMy43IDEzLjctMzhsLTEuMi0zLTMwLjItNjQuMmMtMy41LTcuNC0yLjktMTYuMSAxLjUtMjMuMXMxMi0xMS4xIDIwLjItMTEuMWwxNDcuNSAwIDIuNC0uMWMxMS4zLTEuMSAyMC4zLTEwLjEgMjEuNC0yMS40bC4xLTIuNWMwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM0LjQtMy45IDcuNC05LjMgOC0xNS4zbC4yLTIuN2MwLTguNC00LjQtMTUuOS0xMS4yLTIwLjItMTAuNy02LjktMTQuMi0yMC45LTgtMzIgMS41LTIuNiAyLjUtNS42IDIuOS04LjZsLjItMy4yYzAtMTAuNi02LjktMTkuNi0xNi42LTIyLjgtMTEuNy0zLjgtMTguNy0xNS45LTE2LTI4IC4yLS45IC4zLTEuOCAuNC0yLjZsLjItMi42YzAtMTIuNC05LjUtMjIuNi0yMS42LTIzLjhMMzYwIDgwIDI1NS45IDgwek01NiAxNDRjLTQuNCAwLTggMy42LTggOGwwIDIyNGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC0yMjRjMC00LjQtMy42LTgtOC04bC0zMiAweiJdfSxrOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaWQtYmFkZ2UiLGljb246WzM4NCw1MTIsW10sImYyYzEiLCJNMjU2IDQ4bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTE2MCAzMjBsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMOTYgNDE2Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6Il19LEFJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2hlY2siLGljb246WzQ0OCw1MTIsWzk3NDUsOTk4OSw2MTUxMCwiY2hlY2stc3F1YXJlIl0sImYxNGEiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHptMjMwLjcgODkuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0sUzhyPUFJZSxNOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3MtYmlzaG9wIixpY29uOlszMjAsNTEyLFs5ODIxXSwiZjQzYSIsIk0yMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCA4MS44IDk4LjFjMjQuNyAyOS42IDM4LjIgNjcgMzguMiAxMDUuNiAwIDQzLjctMTcuNCA4NS43LTQ4LjMgMTE2LjZsLTguNiA4LjYgNDYuNSA1OC4yYzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNiAwIDI2LjItMjEuMiA0Ny40LTQ3LjQgNDcuNEw0Ny40IDUxMkMyMS4yIDUxMiAwIDQ5MC44IDAgNDY0LjYgMCA0NTMuOSAzLjcgNDQzLjQgMTAuNCA0MzVsNDYuNS01OC4yLTguNi04LjZDMTcuNCAzMzcuNCAwIDI5NS40IDAgMjUxLjcgMCAyMTMuMSAxMy41IDE3NS44IDM4LjIgMTQ2LjFMMTIwIDQ4IDEwNCA0OEM5MC43IDQ4IDgwIDM3LjMgODAgMjRTOTAuNyAwIDEwNCAwTDIxNiAwek05NC40IDQwNi44bC00NS43IDU3LjIgMjIyLjcgMC00NS43LTU3LjEtNS41LTYuOS0xMjAuMyAwLTUuNSA2Ljh6TTE1Ni45IDc4LjdMNzUuMSAxNzYuOGMtMTUuMyAxOC40LTI0LjYgNDEtMjYuNyA2NC43TDQ4IDI1MS43YzAgMzEgMTIuMyA2MC43IDM0LjIgODIuN2wxNy43IDE3LjcgMTIwLjIgMGM2LjItNi4yIDEyLjEtMTIuMSAxNy44LTE3LjcgMjEuOS0yMS45IDM0LjItNTEuNiAzNC4yLTgyLjZsLS40LTEwLjJjLTEuNS0xNy02LjctMzMuMy0xNS4yLTQ4TDIwOSAyNDFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTEuOC01MS44LTYzLjctNzYuNS0zLjEtMy44LTMuMSAzLjh6Il19LEM4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJlbnZlbG9wZS1vcGVuIixpY29uOls1MTIsNTEyLFs2MjEzNV0sImYyYjYiLCJNNTEyIDQxNmMwIDM1LjMtMjguNSA2NC02My45IDY0TDY0IDQ4MGMtMzUuNCAwLTY0LTI4LjctNjQtNjRMMCAxNjRjLjEtMTUuNSA3LjgtMzAgMjAuNS0zOC44TDIwNi0yLjdjMzAuMS0yMC43IDY5LjgtMjAuNyA5OS45IDBMNDkxLjUgMTI1LjJjMTIuOCA4LjggMjAuNCAyMy4zIDIwLjUgMzguOGwwIDI1MnpNNjQgNDMybDM4NC4xIDBjOC44IDAgMTUuOS03LjEgMTUuOS0xNmwwLTE5MS43LTE1NC44IDExNy40Yy0zMS40IDIzLjktNzQuOSAyMy45LTEwNi40IDBMNDggMjI0LjMgNDggNDE2YzAgOC45IDcuMiAxNiAxNiAxNnpNNDYzLjYgMTY0LjRMMjc4LjcgMzYuOGMtMTMuNy05LjQtMzEuNy05LjQtNDUuNCAwTDQ4LjQgMTY0LjQgMjMxLjggMzAzLjVjMTQuMyAxMC44IDM0LjEgMTAuOCA0OC40IDBMNDYzLjYgMTY0LjR6Il19LHp5PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS14bWFyayIsaWNvbjpbNTEyLDUxMixbNjE1MzIsInRpbWVzLWNpcmNsZSIsInhtYXJrLWNpcmNsZSJdLCJmMDU3IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY3IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sejhyPXp5LF84cj16eSxFSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXVwIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXVwIl0sImYxNTEiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTIyNCA2NGM2LjcgMCAxMyAyLjggMTcuNiA3LjdsMTA0IDExMmM2LjUgNyA4LjIgMTcuMiA0LjQgMjUuOVMzMzcuNSAzMjAgMzI4IDMyMGwtMjA4IDBjLTkuNSAwLTE4LjItNS43LTIyLTE0LjRzLTIuMS0xOC45IDQuNC0yNS45bDEwNC0xMTJjNC41LTQuOSAxMC45LTcuNyAxNy42LTcuN3oiXX0sVDhyPUVJZSxMOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0xNzYgNDhMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwLTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTMxNi4xIDE2MEwyMjQgNjcuOSAyMjQgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMTk3LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTkuNCA0MzJsLTEzNC44IDBjLTE1LjggMC0yOC42LTEyLjgtMjguNi0yOC42IDAtNi40IDIuMS0xMi41IDYtMTcuNmw2Ny42LTg2LjlDMTc1IDI5MiAxODMuMyAyODggMTkyIDI4OHMxNyA0IDIyLjQgMTAuOUwyODIgMzg1LjljMy45IDUgNiAxMS4yIDYgMTcuNiAwIDE1LjgtMTIuOCAyOC42LTI4LjYgMjguNnpNMTEyIDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LElJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtcmlnaHQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtcmlnaHQiXSwiZjE1MiIsIk00MDAgOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMHpNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzIwIDI1NmMwIDYuNy0yLjggMTMtNy43IDE3LjZsLTExMiAxMDRjLTcgNi41LTE3LjIgOC4yLTI1LjkgNC40UzE2MCAzNjkuNSAxNjAgMzYwbDAtMjA4YzAtOS41IDUuNy0xOC4yIDE0LjQtMjJzMTguOS0yLjEgMjUuOSA0LjRsMTEyIDEwNGM0LjkgNC41IDcuNyAxMC45IDcuNyAxNy42eiJdfSxEOHI9SUllLGR1ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzdW4iLGljb246WzU3Niw1MTIsWzk3MjhdLCJmMTg1IiwiTTI4OC0zMmM4IDAgMTUuNCA0IDE5LjkgMTAuNmw1OC44IDg3LjQgMTAzLjQtMjAuMmM3LjgtMS41IDE1LjkgLjkgMjEuNiA2LjZzOC4xIDEzLjggNi42IDIxLjZMNDc4IDE3Ny4zIDU2NS40IDIzNi4xQzU3MiAyNDAuNSA1NzYgMjQ4IDU3NiAyNTZzLTQgMTUuNC0xMC42IDE5LjlMNDc4IDMzNC43IDQ5OC4yIDQzOGMxLjUgNy44LS45IDE1LjktNi42IDIxLjZzLTEzLjggOC4xLTIxLjYgNi42TDM2Ni43IDQ0NiAzMDcuOSA1MzMuNEMzMDMuNCA1NDAgMjk2IDU0NCAyODggNTQ0cy0xNS40LTQtMTkuOS0xMC42TDIwOS4zIDQ0NiAxMDUuOSA0NjYuMmMtNy44IDEuNS0xNS45LS45LTIxLjYtNi42cy04LjEtMTMuOC02LjYtMjEuNkw5OCAzMzQuNyAxMC42IDI3NS45QzQgMjcxLjQgMCAyNjQgMCAyNTZzNC0xNS40IDEwLjYtMTkuOUw5OCAxNzcuMyA3Ny44IDczLjljLTEuNS03LjggLjktMTUuOSA2LjYtMjEuNnMxMy44LTguMSAyMS42LTYuNmwxMDMuMyAyMC4yIDU4LjgtODcuNCAxLjgtMi4zQzI3NC40LTI5IDI4MS0zMiAyODgtMzJ6bS00Ny44IDEzOGMtNS40IDgtMTUgMTItMjQuNSAxMC4ybC04NC0xNi40IDE2LjQgODRjMS44IDkuNS0yLjIgMTkuMS0xMC4yIDI0LjVMNjcgMjU2IDEzOCAzMDMuOGM4IDUuNCAxMiAxNSAxMC4yIDI0LjVsLTE2LjQgODQgODQtMTYuNCAzLjUtLjRjOC4zLS40IDE2LjMgMy42IDIxIDEwLjZsNDcuOCA3MSA0Ny44LTcxIDIuMi0yLjhjNS42LTYuMSAxNC05IDIyLjMtNy4zbDg0IDE2LjQtMTYuNC04NGMtMS44LTkuNSAyLjItMTkuMSAxMC4yLTI0LjVsNzEtNDcuOC03MS00Ny44Yy04LTUuNC0xMi0xNS0xMC4yLTI0LjVsMTYuNC04NC04NCAxNi40Yy05LjUgMS44LTE5LjEtMi4yLTI0LjUtMTAuMmwtNDcuOC03MS00Ny44IDcxek0yODggMzc2YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptMC0xOTJhNzIgNzIgMCAxIDAgMCAxNDQgNzIgNzIgMCAxIDAgMC0xNDR6Il19LCQ4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJpbWFnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzZSIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTI4IDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTM2IDcyYzguNSAwIDE2LjQgNC41IDIwLjcgMTEuOGw4MCAxMzZjNC40IDcuNCA0LjQgMTYuNiAuMSAyNC4xUzM1Mi42IDM4NCAzNDQgMzg0bC0yNDAgMGMtOC45IDAtMTcuMi01LTIxLjMtMTIuOXMtMy41LTE3LjUgMS42LTI0LjhsNTYtODBjNC41LTYuNCAxMS44LTEwLjIgMTkuNy0xMC4yczE1LjIgMy44IDE5LjcgMTAuMmwxNy4yIDI0LjYgNDYuNS03OWM0LjMtNy4zIDEyLjItMTEuOCAyMC43LTExLjh6Il19LEE4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsaWdodGJ1bGIiLGljb246WzM4NCw1MTIsWzEyODE2MV0sImYwZWIiLCJNMjk2LjUgMjkxLjFDMzIxIDI2NS4yIDMzNiAyMzAuNCAzMzYgMTkyIDMzNiAxMTIuNSAyNzEuNSA0OCAxOTIgNDhTNDggMTEyLjUgNDggMTkyYzAgMzguNCAxNSA3My4yIDM5LjUgOTkuMSAyMS4zIDIyLjQgNDQuOSA1NCA1My4zIDkyLjlsMTAyLjQgMGM4LjQtMzkgMzItNzAuNSA1My4zLTkyLjl6bTM0LjggMzNDMzA3LjcgMzQ5IDI4OCAzNzkuNCAyODggNDEzLjdsMCAxOC4zYzAgNDQuMi0zNS44IDgwLTgwIDgwbC0zMiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE4LjNDOTYgMzc5LjQgNzYuMyAzNDkgNTIuNyAzMjQuMSAyMCAyODkuNyAwIDI0My4yIDAgMTkyIDAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MmMwIDUxLjItMjAgOTcuNy01Mi43IDEzMi4xek0xNDQgMTg0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNiAzOS40LTg4IDg4LTg4IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHoiXX0saXVlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImFkZHJlc3MtY2FyZCIsaWNvbjpbNTc2LDUxMixbNjIxNDAsImNvbnRhY3QtY2FyZCIsInZjYXJkIl0sImYyYmIiLCJNNTEyIDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyMGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDQ0OCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDggMjQ4YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0tMzIgNDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDB6TTM3NiAxNDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAweiJdfSxFOHI9aXVlLEk4cj1pdWUsUEllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbWVoIixpY29uOls1MTIsNTEyLFsxMjg1MjgsIm1laCJdLCJmMTFhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0xNzYgMjQwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTkyLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTE4NCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxQOHI9UEllLE44cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtYXAiLGljb246WzUxMiw1MTIsWzEyODUwNiw2MjA3Ml0sImYyNzkiLCJNNTEyIDQ4YzAtOC4zLTQuMy0xNi0xMS4zLTIwLjRzLTE1LjktNC44LTIzLjMtMS4xTDM1Mi41IDg4LjEgMTgwIDI5LjRjLTEzLjctNC43LTI4LjctMy44LTQxLjkgMi4zTDEzLjggOTAuM0M1LjQgOTQuMiAwIDEwMi43IDAgMTEyTDAgNDY0YzAgOC4yIDQuMiAxNS45IDExLjEgMjAuM3MxNS42IDQuOSAyMy4xIDEuNGwxMjcuMy01OS45IDE3MC43IDU2LjljMTMuNyA0LjYgMjguNSAzLjcgNDEuNi0yLjVsMTI0LjQtNTguNWM4LjQtNCAxMy44LTEyLjQgMTMuOC0yMS43bDAtMzUyek0xNDQgODIuMWwwIDI5OS05NiA0NS4yIDAtMjk5IDk2LTQ1LjJ6bTQ4IDMwMy4zbDAtMzAxLjEgMTI4IDQzLjUgMCAzMDAuMy0xMjgtNDIuN3pNMzY4IDEzNGw5Ni00Ny40IDAgMjk4LjItOTYgNDUuMiAwLTI5NnoiXX0sTzhyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtZG93biIsaWNvbjpbMzg0LDUxMixbXSwiZjBhNyIsIk02NCA0NDhsMC0xNzcuNmM1LjIgMSAxMC41IDEuNiAxNiAxLjZsMTYgMCAwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNnpNODAgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI0YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwbDQ4IDBjNTIuNSAwIDk3LjEgMzMuNyAxMTMuNCA4MC43LTMuMS0uNS02LjItLjctOS40LS43LTIwIDAtMzcuOSA5LjItNDkuNyAyMy42LTktNC45LTE5LjQtNy42LTMwLjMtNy42LTE1LjEgMC0yOSA1LjMtNDAgMTQtMTEtOC44LTI0LjktMTQtNDAtMTRsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtODAgMHpNMCAxOTJsMCAwYzAgMTggNiAzNC42IDE2IDQ4bDAgMjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC04MmM1LjEgMS4zIDEwLjUgMiAxNiAyIDI1LjMgMCA0Ny4yLTE0LjcgNTcuNi0zNiA3IDIuNiAxNC41IDQgMjIuNCA0IDIwIDAgMzcuOS05LjIgNDkuNy0yMy42IDkgNC45IDE5LjQgNy42IDMwLjMgNy42IDM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODhDMzg0IDc1LjIgMzA4LjggMCAyMTYgMEwxNjggMEM3NS4yIDAgMCA3NS4yIDAgMTY4bDAgMjR6bTMzNiA2NGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NHpNMTYwIDI3MmM1LjUgMCAxMC45LS43IDE2LTJsMCAzNGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyIDE2IDB6bTY0LTI0bDAtNDBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMjR6Il19LE5JZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2ek01MTIgMjU2YTI1NiAyNTYgMCAxIDEgLTUxMiAwIDI1NiAyNTYgMCAxIDEgNTEyIDB6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sUjhyPU5JZSxPSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZSIsaWNvbjpbNTEyLDUxMixbMTI4NTM5LCJncmluLXRvbmd1ZSJdLCJmNTg5IiwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDc0LjEgMzguOCAxMzkuMiA5Ny4xIDE3Ni0uNy01LjItMS4xLTEwLjYtMS4xLTE2bDAtNTMuNWMtMTAuMi0xMi42LTE4LjMtMjYuOS0yMy44LTQyLjQtNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42IDExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC01LjUgMTUuNi0xMy42IDI5LjktMjMuOCA0Mi41bDAgNTMuNWMwIDUuNC0uNCAxMC44LTEuMSAxNiA1OC40LTM2LjggOTcuMS0xMDEuOSA5Ny4xLTE3NnptNDggMGMwIDExNi4zLTc3LjYgMjE0LjYtMTgzLjkgMjQ1LjctMTkuNSAxNi40LTQ0LjYgMjYuMy03Mi4xIDI2LjNzLTUyLjYtOS45LTcyLjEtMjYuM0M3Ny42IDQ3MC42IDAgMzcyLjMgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2ek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2IDIwOGwwLTM3LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCAzNy40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LEY4cj1PSWUsc3VlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZ1dGJvbCIsaWNvbjpbNTEyLDUxMixbOTkxNywiZnV0Ym9sLWJhbGwiLCJzb2NjZXItYmFsbCJdLCJmMWUzIiwiTTM4NyAyMjguM2MtNC40LTIuOC03LjYtNy05LjItMTEuOXMtMS40LTEwLjIgLjUtMTVMNDExLjYgMTE4Yy0xOS45LTIyLjQtNDQuNi00MC41LTcyLjQtNTIuN2wtNjkuMSA1Ny42Yy00IDMuMy05IDUuMS0xNC4xIDUuMXMtMTAuMi0xLjgtMTQuMS01LjFMMTcyLjggNjUuM2MtMjcuOCAxMi4yLTUyLjUgMzAuMy03Mi40IDUyLjdsMzMuNCA4My40YzEuOSA0LjggMi4xIDEwLjEgLjUgMTVzLTQuOSA5LjEtOS4yIDExLjlMNDkgMjc2LjJjMyAzMC45IDEyLjcgNTkuNyAyNy42IDg1LjJsODkuNy02YzUuMi0uMyAxMC4zIDEuMSAxNC41IDQuMnM3LjIgNy40IDguNCAxMi41bDIyIDg3LjJjMTQuNCAzLjIgMjkuNCA0LjggNDQuOCA0LjhzMzAuMy0xLjcgNDQuOC00LjhsMjItODcuMmMxLjMtNSA0LjItOS40IDguNC0xMi41czkuMy00LjUgMTQuNS00LjJsODkuNyA2YzE1LTI1LjQgMjQuNy01NC4zIDI3LjYtODUuMUwzODcgMjI4LjN6TTI1NiAwYTI1NiAyNTYgMCAxIDEgMCA1MTIgMjU2IDI1NiAwIDEgMSAwLTUxMnptNjIgMjIxYzguNCA2LjEgMTEuOSAxNi45IDguNyAyNi44bC0xOC4zIDU2LjNjLTMuMiA5LjktMTIuNCAxNi42LTIyLjggMTYuNmwtNTkuMiAwYy0xMC40IDAtMTkuNi02LjctMjIuOC0xNi42bC0xOC4zLTU2LjNjLTMuMi05LjkgLjMtMjAuNyA4LjctMjYuOGw0Ny45LTM0LjhjOC40LTYuMSAxOS44LTYuMSAyOC4yIDBMMzE4IDIyMXoiXX0sQjhyPXN1ZSxIOHI9c3VlLFJJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXN1cnByaXNlIixpY29uOls1MTIsNTEyLFsxMjg1NTgsInN1cnByaXNlIl0sImY1YzIiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzYtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTQ4IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxxOHI9UkllLEZJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb2xkZXIiLGljb246WzUxMiw1MTIsWzEyODE5MywxMjg0NDcsNjE3MTYsImZvbGRlci1ibGFuayJdLCJmMDdiIiwiTTY0IDQwMGwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xNDkuMyAwYy0xNy4zIDAtMzQuMi01LjYtNDgtMTZMMjEyLjMgODMuMmMtMi44LTIuMS02LjEtMy4yLTkuNi0zLjJMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZ6bTM4NCA0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sVjhyPUZJZSxqOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xvdWQiLGljb246WzU3Niw1MTIsWzk3MjldLCJmMGMyIiwiTTgwIDE5MmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCA0Ny4xIDAgODkuNCAyMC40IDExOC43IDUyLjcgMTAuNi0zLjEgMjEuOC00LjcgMzMuMy00LjcgNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAxMy4yLTIuMSAyNS45LTYuMSAzNy44IDQxLjYgMjEuMSA3MC4xIDY0LjMgNzAuMSAxMTQuMiAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNTYuOCAzMi45LTEwNS45IDgwLjctMTI5LjQtLjQtNC44LS43LTkuNy0uNy0xNC42ek0yNDAgODBjLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgOC40IC45IDE2LjYgMi43IDI0LjUgMi43IDEyLjEtNC4zIDI0LjMtMTYuMSAyOC4xLTM4LjcgMTIuNC02Ni42IDQ4LjctNjYuNiA5MS40IDAgNTMgNDMgOTYgOTYgOTZsMzA0IDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zNy40LTI1LjctNjguOS02MC41LTc3LjYtNy41LTEuOS0xMy42LTcuMi0xNi41LTE0LjNzLTIuMS0xNS4yIDItMjEuN2M3LTExLjEgMTEtMjQuMiAxMS0zOC4zIDAtMzkuOC0zMi4yLTcyLTcyLTcyLTExLjEgMC0yMS41IDIuNS0zMC44IDYuOS0xMC41IDUtMjMuMSAxLjctMjkuOC03LjgtMjAuMy0yOC42LTUzLjctNDcuMS05MS4zLTQ3LjF6Il19LFU4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUiLGljb246WzUxMiw1MTIsWzEyODMwOCwxMjgzMDksMTI4OTkyLDEyODk5MywxMjg5OTQsMTI4OTk1LDEyODk5Niw5Njc5LDk4OTgsOTg5OSwxMTA0NCw2MTcwOCw2MTkxNV0sImYxMTEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxCSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludCIsaWNvbjpbNTEyLDUxMixbMTI4NTE4LCJncmluLXNxdWludCJdLCJmNTg1IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnptLTI0OS42LTE0M2M0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxXOHI9QkllLEhJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtdXNlciIsaWNvbjpbNTEyLDUxMixbNjIxNDIsInVzZXItY2lyY2xlIl0sImYyYmQiLCJNNDA2LjUgMzk5LjZDMzg3LjQgMzUyLjkgMzQxLjUgMzIwIDI4OCAzMjBsLTY0IDBjLTUzLjUgMC05OS40IDMyLjktMTE4LjUgNzkuNi0zNS42LTM3LjMtNTcuNS04Ny45LTU3LjUtMTQzLjYgMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4czIwOCA5My4xIDIwOCAyMDhjMCA1NS43LTIxLjkgMTA2LjItNTcuNSAxNDMuNnptLTQwLjEgMzIuN0MzMzQuNCA0NTIuNCAyOTYuNiA0NjQgMjU2IDQ2NHMtNzguNC0xMS42LTExMC41LTMxLjdjNy4zLTM2LjcgMzkuNy02NC4zIDc4LjUtNjQuM2w2NCAwYzM4LjggMCA3MS4yIDI3LjYgNzguNSA2NC4zek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0yNzJhNDAgNDAgMCAxIDEgMC04MCA0MCA0MCAwIDEgMSAwIDgwem0tODgtNDBhODggODggMCAxIDAgMTc2IDAgODggODggMCAxIDAgLTE3NiAweiJdfSxHOHI9SEllLHFJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWN0YW5nbGUtbGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3QtYWx0Il0sImYwMjIiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek0xNjAgMzIwYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTEwNC01NmwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNjAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sWThyPXFJZSxWSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZCIsaWNvbjpbNTEyLDUxMixbMTI5MzA2LDk5OTUsImhhbmQtcGFwZXIiXSwiZjI1NiIsIk0yNTYuNSAwYy0yNS4zIDAtNDcuMiAxNC43LTU3LjYgMzYtNy0yLjYtMTQuNS00LTIyLjQtNC0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDE2NS41LTIuNy0yLjdjLTI1LTI1LTY1LjUtMjUtOTAuNSAwcy0yNSA2NS41IDAgOTAuNUwxMDcgNDM3YzQ4IDQ4IDExMy4xIDc1IDE4MSA3NWwxNi41IDBjMS41IDAgMy0uMSA0LjUtLjQgOTEuNy02LjIgMTY1LTc5LjQgMTcxLjEtMTcxLjEgLjMtMS41IC40LTMgLjQtNC41bDAtMTc2YzAtMzUuMy0yOC43LTY0LTY0LTY0LTUuNSAwLTEwLjkgLjctMTYgMmwwLTJjMC0zNS4zLTI4LjctNjQtNjQtNjQtNy45IDAtMTUuNCAxLjQtMjIuNCA0LTEwLjQtMjEuMy0zMi4zLTM2LTU3LjYtMzZ6bS0xNiA5Ni4xbDAtLjEgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMzZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE3Mi45Yy0uMSAuNi0uMSAxLjMtLjIgMS45LTMuNCA2OS43LTU5LjMgMTI1LjYtMTI5IDEyOS0uNiAwLTEuMyAuMS0xLjkgLjJMMjg4IDQ2NEMyMzIuOSA0NjQgMTgwIDQ0Mi4xIDE0MSA0MDMuMUw1My4yIDMxNS4zYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsNDMuNyA0My43YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTIyMy40YzAtOC44IDcuMi0xNiAxNi0xNiA4LjggMCAxNiA3LjEgMTYgMTUuOWwwIDEzNi4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMzUuOXoiXX0sSzhyPVZJZSxaOHI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidGh1bWJzLXVwIixpY29uOls1MTIsNTEyLFsxMjgwNzcsNjE1NzVdLCJmMTY0IiwiTTE3MS41IDM4LjhDMTkyLjMgNCAyMzYuNS0xMCAyNzQgNy42bDcuMiAzLjhDMzE2IDMyLjMgMzMwIDc2LjUgMzEyLjQgMTE0bDAgMC0xNC4xIDMwIDEwOS43IDAgNy40IC40YzM2LjMgMy43IDY0LjYgMzQuNCA2NC42IDcxLjYgMCAxMy4yLTMuNiAyNS40LTkuOCAzNiA2LjEgMTAuNiA5LjcgMjIuOCA5LjggMzYgMCAxOC4zLTYuOSAzNC44LTE4IDQ3LjUgMS4zIDUuMyAyIDEwLjggMiAxNi41IDAgMjUuMS0xMi45IDQ3LTMyLjIgNTkuOS0xLjkgMzUuNS0yOS40IDY0LjItNjQuNCA2Ny43bC03LjQgLjQtMTA0LjEgMGMtMTggMC0zNS45LTMuNC01Mi42LTkuOWwtNy4xLTMtLjctLjMtNi42LTMuMi0uNy0uMy0xMi4yLTYuNWMtMTIuMy02LjUtMjMuMy0xNC43LTMyLjktMjQuMS00LjEgMjYuOS0yNy4zIDQ3LjQtNTUuMyA0Ny40bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDIwMGMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEwLjggMCAyMC45IDMuMSAyOS41IDguNWw1MC4xLTEwNi41IC42LTEuMiAyLjctNSAuNi0uOXpNNTYgMTkyYy00LjQgMC04IDMuNi04IDhsMCAyMjRjMCA0LjQgMy42IDggOCA4bDMyIDBjNC40IDAgOC0zLjYgOC04bDAtMjI0YzAtNC40LTMuNi04LTgtOGwtMzIgMHpNMjUzLjYgNTFjLTE0LjgtNi45LTMyLjMtMS42LTQwLjcgMTJsLTIuMiA0LTU2LjggMTIwLjljLTMuNSA3LjUtNS41IDE1LjUtNiAyMy43bC0uMSA0LjIgMCAxMTIuOSAuMiA3LjljMi40IDMyLjcgMjEuNCA2Mi4xIDUwLjcgNzcuN2wxMS41IDYuMSA2LjMgMy4xYzEyLjQgNS42IDI1LjggOC41IDM5LjQgOC41bDEwNC4xIDAgMi40LS4xYzEyLjEtMS4yIDIxLjYtMTEuNSAyMS42LTIzLjlsLS4yLTIuNmMtLjEtLjktLjItMS43LS40LTIuNi0yLjctMTIuMSA0LjMtMjQuMiAxNi0yOCA5LjctMy4xIDE2LjYtMTIuMiAxNi42LTIyLjggMC00LjMtMS4xLTguMi0zLjEtMTEuOC02LjMtMTEuMS0yLjgtMjUuMiA4LTMyIDYuOC00LjMgMTEuMi0xMS44IDExLjItMjAuMiAwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM1LjEtNC41IDguMi0xMC45IDguMi0xOGwtLjEtMi40Yy0xLjEtMTEuMy0xMC4xLTIwLjMtMjEuNC0yMS40bC0yLjQtLjEtMTQ3LjUgMGMtOC4yIDAtMTUuOC00LjItMjAuMi0xMS4xLTQuNC02LjktNS0xNS43LTEuNS0yMy4xTDI2OSA5My42YzctMTUgMS40LTMyLjctMTIuNS00MUwyNTMuNiA1MXoiXX0sUThyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDgwIDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDQ4ek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTk2IDQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LFg4cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1yb29rIixpY29uOlszODQsNTEyLFs5ODIwXSwiZjQ0NyIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEzOC43YzAgMTMuOC00LjUgMjcuMy0xMi44IDM4LjRsLTM1LjIgNDYuOSAwIDExMiA0MC44IDY4LjFjNC43IDcuOCA3LjIgMTYuNyA3LjIgMjUuOCAwIDI3LjctMjIuNCA1MC4xLTUwLjEgNTAuMUw1MC4xIDUxMmMtMjcuNyAwLTUwLjEtMjIuNC01MC4xLTUwLjEgMC05LjEgMi41LTE4IDcuMi0yNS44TDQ4IDM2OCA0OCAyNTYgMTIuOCAyMDkuMUM0LjUgMTk4IDAgMTg0LjUgMCAxNzAuN0wwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMHpNNDguMyA0NjAuOGwtLjMgMS4xYzAgMS4yIDEgMi4xIDIuMSAyLjFsMjgzLjggMGMxLjIgMCAyLjEtMSAyLjEtMi4xbC0uMy0xLjEtMzYuNS02MC44LTIxNC40IDAtMzYuNSA2MC44ek00OCAxNzAuN2MwIDIuNiAuNiA1LjEgMS44IDcuNGwxLjQgMi4yIDAgMCAzNS4yIDQ2LjkgOS42IDEyLjggMCAxMTIgMTkyIDAgMC0xMTIgOS42LTEyLjggMzUuMi00Ni45IDAgMCAxLjQtMi4yYzEuMi0yLjMgMS44LTQuOCAxLjgtNy40bDAtMTIyLjctNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDEyMi43eiJdfSxqSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1MTIsNTEyLFs2MjEwOCwicXVlc3Rpb24tY2lyY2xlIl0sImYwNTkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNTYtODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCA0Ny4yLTM2IDY3LjItNTYgNzQuNWwwIDMuOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTguMWMwLTIwLjUgMTQuOC0zNS4yIDMwLjEtNDAuMiA2LjQtMi4xIDEzLjItNS41IDE4LjItMTAuMyA0LjMtNC4yIDcuNy0xMCA3LjctMTkuNiAwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDM2OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxKOHI9akllLGU3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlIixpY29uOlszODQsNTEyLFsxMjgxOTYsMTI4NDU5LDYxNDYyXSwiZjE1YiIsIk0xNzYgNDhMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwLTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTMxNi4xIDE2MEwyMjQgNjcuOSAyMjQgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMTk3LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0eiJdfSxVSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk00MDAgNDA2LjFMNDAwIDI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE1Mi42Yy0yOC43IDE1LTYxLjQgMjMuNC05NiAyMy40cy02Ny4zLTguNS05Ni0yMy40TDE2MCAyODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTguMUM3Mi42IDM2OC4yIDQ4IDMxNSA0OCAyNTYgNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4czIwOCA5My4xIDIwOCAyMDhjMCA1OS0yNC42IDExMi4yLTY0IDE1MC4xek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTUyIDE5NmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE3MiAyMGMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHoiXX0sdDdyPVVJZSxyN3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItbWludXMiLGljb246WzQ0OCw1MTIsW10sImYyNzIiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMzIgMTM2bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sV0llPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtdGlyZWQiLGljb246WzUxMiw1MTIsWzEyODU1NSwidGlyZWQiXSwiZjVjOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni41IDY0LjNDMTk2LjEgMzAyLjEgMjIzLjggMjg4IDI1NiAyODhzNTkuOSAxNC4xIDc5LjUgMzIuM2MxOSAxNy44IDMyLjUgNDEuNyAzMi41IDYzLjcgMCA1LjQtMi43IDEwLjQtNy4yIDEzLjRzLTEwLjIgMy40LTE1LjIgMS4zbC0xNy4yLTcuNWMtMjIuOC0xMC00Ny41LTE1LjEtNzIuNC0xNS4xcy00OS42IDUuMi03Mi40IDE1LjFsLTE3LjIgNy41Yy00LjkgMi4yLTEwLjcgMS43LTE1LjItMS4zcy03LjItOC03LjItMTMuNGMwLTIyIDEzLjUtNDUuOSAzMi41LTYzLjd6TTEyMi42IDE1OS4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LGE3cj1XSWUsaTdyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImYwYTQiLCJNNDQ4IDEyOGwtMTc3LjYgMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTZsMCAxNiAxNzYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNnpNMjI0IDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjQgMGMtNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsMCA0OGMwIDUyLjUgMzMuNyA5Ny4xIDgwLjcgMTEzLjQtLjUtMy4xLS43LTYuMi0uNy05LjQgMC0yMCA5LjItMzcuOSAyMy42LTQ5LjctNC45LTktNy42LTE5LjQtNy42LTMwLjMgMC0xNS4xIDUuMy0yOSAxNC00MC04LjgtMTEtMTQtMjQuOS0xNC00MGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODB6TTE5MiA2NGwwIDBjMTggMCAzNC42IDYgNDggMTZsMjA4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTgyIDBjMS4zIDUuMSAyIDEwLjUgMiAxNiAwIDI1LjMtMTQuNyA0Ny4yLTM2IDU3LjYgMi42IDcgNCAxNC41IDQgMjIuNCAwIDIwLTkuMiAzNy45LTIzLjYgNDkuNyA0LjkgOSA3LjYgMTkuNCA3LjYgMzAuMyAwIDM1LjMtMjguNyA2NC02NCA2NGwtODggMEM3NS4yIDQ0OCAwIDM3Mi44IDAgMjgwbDAtNDhDMCAxMzkuMiA3NS4yIDY0IDE2OCA2NGwyNCAwem02NCAzMzZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNjQgMHptMTYtMTc2YzAgNS41LS43IDEwLjktMiAxNmwzNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAgMTZ6bS0yNCA2NGwtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw2NCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSxHSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXVwIixpY29uOls1MTIsNTEyLFs2MTQ2NywiYXJyb3ctYWx0LWNpcmNsZS11cCJdLCJmMzViIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTEuMy0zODcuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTEwNCAxMDRjLTQuNiA0LjYtNS45IDExLjUtMy41IDE3LjRzOC4zIDkuOSAxNC44IDkuOWw3MiAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMDQgNzIgMGM2LjUgMCAxMi4zLTMuOSAxNC44LTkuOXMxLjEtMTIuOS0zLjUtMTcuNGwtMTA0LTEwNHoiXX0sczdyPUdJZSxuN3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1zY2lzc29ycyIsaWNvbjpbNTEyLDUxMixbXSwiZjI1NyIsIk0uMiAyNzYuM2MtMS4yLTM1LjMgMjYuNC02NSA2MS43LTY2LjJsMy4zLS4xLTguMi0xLjhDMjIuNSAyMDAuNSAuNyAxNjYuMyA4LjMgMTMxLjhTNTAuMiA3NS41IDg0LjcgODMuMmwxNzMgMzguM2MyLjMtMi45IDQuNi01LjcgNy4xLTguNWwxOC40LTIwLjNDMjk5LjkgNzQuNSAzMjMuNSA2NCAzNDguMyA2NGwxMC4yIDBjNTQuMSAwIDEwNC4xIDI4LjcgMTMxLjMgNzUuNGwxLjUgMi42YzEzLjYgMjMuMiAyMC43IDQ5LjcgMjAuNyA3Ni42TDUxMiAzNDRjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTEwNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIuOCAuMi01LjYgLjUtOC4zLTE5LjQtMTEtMzIuNS0zMS44LTMyLjUtNTUuNyAwLS44IDAtMS42IDAtMi40TDY2LjQgMzM4Yy0zNS4zIDEuMi02NS0yNi40LTY2LjItNjEuN3ptNjMuNC0xOC4yYy04LjggLjMtMTUuNyA3LjctMTUuNCAxNi42czcuNyAxNS43IDE2LjUgMTUuNGwxNjEuNS01LjZjOS44LS4zIDE4LjcgNS4zIDIyLjcgMTQuMnMyLjIgMTkuMy00LjUgMjYuNGMtMi44IDIuOS00LjQgNi43LTQuNCAxMSAwIDguOCA3LjIgMTYgMTYgMTYgOS4xIDAgMTcuNCA1LjEgMjEuNSAxMy4zczMuMiAxNy45LTIuMyAyNS4xYy0yIDIuNy0zLjIgNi0zLjIgOS42IDAgOC44IDcuMiAxNiAxNiAxNmwxMDQgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTEyNS40YzAtMTguNC00LjktMzYuNS0xNC4yLTUyLjRsLTEuNS0yLjZjLTE4LjYtMzItNTIuOC01MS42LTg5LjgtNTEuNmwtMTAuMiAwYy0xMS4zIDAtMjIgNC44LTI5LjYgMTMuMWwwIDAtMTguNCAyMC4zYy0uNiAuNi0xLjEgMS4zLTEuNyAxLjlsNTcgMTMuMmM4LjYgMiAxNCAxMC42IDEyIDE5LjJzLTEwLjYgMTQtMTkuMiAxMkwyNjIuOCAxNzEuOCA3NC4zIDEzMGMtOC42LTEuOS0xNy4yIDMuNS0xOS4xIDEyLjJzMy41IDE3LjIgMTIuMiAxOS4xbDE4Ny41IDQxLjZjMTAuMiAyLjMgMTcuOCAxMC45IDE4LjcgMjEuNGwuMSAxYy42IDYuNi0xLjUgMTMuMS01LjggMTguMXMtMTAuNiA3LjktMTcuMiA4LjJMNjMuNiAyNTguMXoiXX0sbzdyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImdlbSIsaWNvbjpbNTEyLDUxMixbMTI4MTQyXSwiZjNhNSIsIk0xNjguNSA3Mmw4Ny41IDkzIDg3LjUtOTMtMTc1IDB6TTM4My45IDk5LjFsLTcyLjMgNzYuOSAxMjkgMC01Ni42LTc2Ljl6bTUwIDEyNC45TDc4LjEgMjI0IDI1NiA0MjAuMyA0MzMuOSAyMjR6TTcxLjUgMTc2bDEyOSAwLTcyLjMtNzYuOS01Ni42IDc2Ljl6bTQzNC4zIDQwLjFsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MmM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44bDI0MCAwYzcuNiAwIDE0LjggMy42IDE5LjMgOS44bDExMiAxNTJjNi44IDkuMiA2LjEgMjEuOS0xLjUgMzAuNHoiXX0sa189e3ByZWZpeDoiZmFyIixpY29uTmFtZToicmVjdGFuZ2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MjE2NCwicmVjdGFuZ2xlLXRpbWVzIiwidGltZXMtcmVjdGFuZ2xlIiwid2luZG93LWNsb3NlIl0sImY0MTAiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0zMzQuMSA0OS45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00NC4xIDQ0LjEgNDQuMSA0NC4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ0LjEtNDQuMS00NC4xIDQ0LjFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDQuMS00NC4xLTQ0LjEtNDQuMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ0LjEgNDQuMSA0NC4xLTQ0LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDB6Il19LGw3cj1rXyxjN3I9a18sZDdyPWtfLHpfPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InRyYXNoLWNhbiIsaWNvbjpbNDQ4LDUxMixbNjE0NjAsInRyYXNoLWFsdCJdLCJmMmVkIiwiTTE2Ni4yLTE2Yy0xMy4zIDAtMjUuMyA4LjMtMzAgMjAuOEwxMjAgNDggMjQgNDhDMTAuNyA0OCAwIDU4LjcgMCA3MlMxMC43IDk2IDI0IDk2bDQwMCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05NiAwLTE2LjItNDMuMkMzMDcuMS03LjcgMjk1LjItMTYgMjgxLjgtMTZMMTY2LjItMTZ6TTMyIDE0NGwwIDMwNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMwNC00OCAwIDAgMzA0YzAgOC44LTcuMiAxNi0xNiAxNkw5NiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMwNC00OCAwem0xNjAgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NnptMTEyIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NnoiXX0sdTdyPXpfLHA3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsaWZlLXJpbmciLGljb246WzUxMiw1MTIsW10sImYxY2QiLCJNMzg1LjEgNDE5LjFDMzQ5LjcgNDQ3LjIgMzA0LjggNDY0IDI1NiA0NjRzLTkzLjctMTYuOC0xMjkuMS00NC45bDgwLjQtODAuNGMxNC4zIDguNCAzMSAxMy4zIDQ4LjggMTMuM3MzNC41LTQuOCA0OC44LTEzLjNsODAuNCA4MC40em02OC4xIC4yQzQ4OS45IDM3NC45IDUxMiAzMTguMSA1MTIgMjU2UzQ4OS45IDEzNy4xIDQ1My4yIDkyLjdMNDY1IDgxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNDE5LjMgNTguOEMzNzQuOSAyMi4xIDMxOC4xIDAgMjU2IDBTMTM3LjEgMjIuMSA5Mi43IDU4LjhMODEgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUzM3LjcgNzEuNiA0NyA4MUw1OC44IDkyLjdDMjIuMSAxMzcuMSAwIDE5My45IDAgMjU2UzIyLjEgMzc0LjkgNTguOCA0MTkuM0w0NyA0MzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMS44LTExLjhDMTM3LjEgNDg5LjkgMTkzLjkgNTEyIDI1NiA1MTJzMTE4LjktMjIuMSAxNjMuMy01OC44TDQzMSA0NjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMS44LTExLjh6bS0zNC4xLTM0LjFsLTgwLjQtODAuNGM4LjQtMTQuMyAxMy4zLTMxIDEzLjMtNDguOHMtNC44LTM0LjUtMTMuMy00OC44bDgwLjQtODAuNEM0NDcuMiAxNjIuMyA0NjQgMjA3LjIgNDY0IDI1NnMtMTYuOCA5My43LTQ0LjkgMTI5LjF6TTM4NS4xIDkyLjlsLTgwLjQgODAuNGMtMTQuMy04LjQtMzEtMTMuMy00OC44LTEzLjNzLTM0LjUgNC44LTQ4LjggMTMuM0wxMjYuOSA5Mi45QzE2Mi4zIDY0LjggMjA3LjIgNDggMjU2IDQ4czkzLjcgMTYuOCAxMjkuMSA0NC45ek0xNzMuMyAzMDQuOEw5Mi45IDM4NS4xQzY0LjggMzQ5LjcgNDggMzA0LjggNDggMjU2czE2LjgtOTMuNyA0NC45LTEyOS4xbDgwLjQgODAuNGMtOC40IDE0LjMtMTMuMyAzMS0xMy4zIDQ4LjhzNC44IDM0LjUgMTMuMyA0OC44ek0yMDggMjU2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LGY3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb3B5cmlnaHQiLGljb246WzUxMiw1MTIsWzE2OV0sImYxZjkiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDUuMSAzMDYuOWMtMjguMS0yOC4xLTI4LjEtNzMuNyAwLTEwMS44czczLjctMjguMSAxMDEuOCAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtNDYuOS00Ni45LTEyMi44LTQ2LjktMTY5LjcgMHMtNDYuOSAxMjIuOCAwIDE2OS43IDEyMi44IDQ2LjkgMTY5LjcgMGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwYy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDB6Il19LFlJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbNjE4NDAsImFycm93LWFsdC1jaXJjbGUtbGVmdCJdLCJmMzU5IiwiTTQ4IDI1NmEyMDggMjA4IDAgMSAxIDQxNiAwIDIwOCAyMDggMCAxIDEgLTQxNiAwem00NjQgMGEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMTA0IDEwNGM0LjYgNC42IDExLjUgNS45IDE3LjQgMy41czkuOS04LjMgOS45LTE0LjhsMC03MiAxMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMDQgMCAwLTcyYzAtNi41LTMuOS0xMi4zLTkuOS0xNC44cy0xMi45LTEuMS0xNy40IDMuNWwtMTA0IDEwNHoiXX0saDdyPVlJZSxtN3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXIiLGljb246WzQ0OCw1MTIsWzEyODE5NywxMjgxOThdLCJmMTMzIiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHpNNDggMjI0bDAgMTkyYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xOTItMzUyIDB6Il19LEtJZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWZyb3duLW9wZW4iLGljb246WzUxMiw1MTIsWzEyODU1MCwiZnJvd24tb3BlbiJdLCJmNTdhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTgyLjQgMzgyLjVjLTEyLjQgNS4yLTI2LjUtNC4xLTIxLjEtMTYuNCAxNi0zNi42IDUyLjQtNjIuMSA5NC44LTYyLjFzNzguOCAyNS42IDk0LjggNjIuMWM1LjQgMTIuMy04LjcgMjEuNi0yMS4xIDE2LjQtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGc3cj1LSWUsWkllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoYXJ0LWJhciIsaWNvbjpbNTEyLDUxMixbImJhci1jaGFydCJdLCJmMDgwIiwiTTQ4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgNDIuNyAwIDU2TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDgwIDQzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMNDggNTZ6bTEwNCA3MmwyMDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxNTIgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6bTAgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjcyIDB6Il19LGI3cj1aSWUsU189e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91c2UiLGljb246WzUxMiw1MTIsWzEyNzk2OCw2MzQ5OCw2MzUwMCwiaG9tZSIsImhvbWUtYWx0IiwiaG9tZS1sZy1hbHQiXSwiZjAxNSIsIk0yNDAgNi4xYzkuMS04LjIgMjIuOS04LjIgMzIgMGwyMzIgMjA4YzkuOSA4LjggMTAuNyAyNCAxLjggMzMuOXMtMjQgMTAuNy0zMy45IDEuOGwtOC03LjIgMCAyMDUuM2MwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjA1LjMtOCA3LjJjLTkuOSA4LjgtMjUgOC0zMy45LTEuOHMtOC0yNSAxLjgtMzMuOUwyNDAgNi4xem0xNiA1MC4xTDk2IDE5OS43IDk2IDQ0OGMwIDguOCA3LjIgMTYgMTYgMTZsNDggMCAwLTEwNGMwLTM5LjggMzIuMi03MiA3Mi03Mmw0OCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMTA0IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQ4LjMtMTYwLTE0My40ek0yMDggNDY0bDk2IDAgMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0eiJdfSx4N3I9U18sdjdyPVNfLHk3cj1TXyxRSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1mcm93biIsaWNvbjpbNTEyLDUxMixbOTc4NSwiZnJvd24iXSwiZjExOSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTMzNC43IDM4NC42QzMxOS43IDM2OSAyOTMuNiAzNTIgMjU2IDM1MnMtNjMuNyAxNy03OC43IDMyLjZjLTkuMiA5LjYtMjQuNCA5LjktMzMuOSAuN3MtOS45LTI0LjQtLjctMzMuOWMyMi4xLTIzIDYwLTQ3LjQgMTEzLjMtNDcuNHM5MS4yIDI0LjQgMTEzLjMgNDcuNGM5LjIgOS42IDguOSAyNC44LS43IDMzLjlzLTI0LjggOC45LTMzLjktLjd6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sdzdyPVFJZSxudWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidXNlciIsaWNvbjpbNDQ4LDUxMixbMTI4MTAwLDYyMTQ0LDYyNDcwLCJ1c2VyLWFsdCIsInVzZXItbGFyZ2UiXSwiZjAwNyIsIk0xNDQgMTI4YTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHptMjA4IDBhMTI4IDEyOCAwIDEgMCAtMjU2IDAgMTI4IDEyOCAwIDEgMCAyNTYgMHpNNDggNDgwYzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDk2IDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04YzAtOTcuMi03OC44LTE3Ni0xNzYtMTc2bC05NiAwQzc4LjggMzA0IDAgMzgyLjggMCA0ODBsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04eiJdfSxrN3I9bnVlLFM3cj1udWUsTTdyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNub3dmbGFrZSIsaWNvbjpbNTEyLDUxMixbMTAwNTIsMTAwNTRdLCJmMmRjIiwiTTI4MC4xLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3OC4xLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU3IDU3IDAgNzYuNS02Ni4yLTM4LjItMjAuOS03Ny44Yy0zLjQtMTIuOC0xNi42LTIwLjQtMjkuNC0xN1M5NS4yIDk4IDk4LjcgMTEwLjhsOC40IDMxLjUtNjcuNi0zOUMyOCA5Ni42IDEzLjMgMTAwLjUgNi43IDExMlM0IDEzOC4yIDE1LjUgMTQ0LjhsNjcuNiAzOS0zMS41IDguNGMtMTIuOCAzLjQtMjAuNCAxNi42LTE3IDI5LjRzMTYuNiAyMC40IDI5LjQgMTdsNzcuOC0yMC45IDY2LjIgMzguMi02Ni4yIDM4LjItNzcuOC0yMC45Yy0xMi44LTMuNC0yNiA0LjItMjkuNCAxN3M0LjIgMjYgMTcgMjkuNGwzMS41IDguNC02Ny42IDM5QzQgMzczLjggLjEgMzg4LjUgNi43IDQwMHMyMS4zIDE1LjQgMzIuOCA4LjhsNjcuNi0zOS04LjQgMzEuNWMtMy40IDEyLjggNC4yIDI2IDE3IDI5LjRzMjYtNC4yIDI5LjQtMTdsMjAuOS03Ny44IDY2LjItMzguMiAwIDc2LjUtNTcgNTdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwyMy0yMyAwIDc4LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTc4LjEgMjMgMjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01Ny01NyAwLTc2LjUgNjYuMiAzOC4yIDIwLjkgNzcuOGMzLjQgMTIuOCAxNi42IDIwLjQgMjkuNCAxN3MyMC40LTE2LjYgMTctMjkuNGwtOC40LTMxLjUgNjcuNiAzOWMxMS41IDYuNiAyNi4yIDIuNyAzMi44LTguOHMyLjctMjYuMi04LjgtMzIuOGwtNjcuNi0zOSAzMS41LTguNGMxMi44LTMuNCAyMC40LTE2LjYgMTctMjkuNHMtMTYuNi0yMC40LTI5LjQtMTdsLTc3LjggMjAuOS02Ni4yLTM4LjIgNjYuMi0zOC4yIDc3LjggMjAuOWMxMi44IDMuNCAyNi00LjIgMjkuNC0xN3MtNC4yLTI2LTE3LTI5LjRsLTMxLjUtOC40IDY3LjYtMzljMTEuNS02LjYgMTUuNC0yMS4zIDguOC0zMi44cy0yMS4zLTE1LjQtMzIuOC04LjhsLTY3LjYgMzkgOC40LTMxLjVjMy40LTEyLjgtNC4yLTI2LTE3LTI5LjRzLTI2IDQuMi0yOS40IDE3bC0yMC45IDc3LjgtNjYuMiAzOC4yIDAtNzYuNSA1Ny01N2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyMyAwLTc4LjF6Il19LEM3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJib29rbWFyayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc4LDYxNTkxXSwiZjAyZSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQxNy4xYzAgMjUuNi0yOC41IDQwLjgtNDkuOCAyNi42TDE5MiA0MTIuOCA0OS44IDUwNy43QzI4LjUgNTIxLjkgMCA1MDYuNiAwIDQ4MS4xTDAgNjR6TTY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODcuMiAxMTcuNC03OC4yYzE2LjEtMTAuNyAzNy4xLTEwLjcgNTMuMiAwTDMzNiA0NTEuMiAzMzYgNjRjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDQ4eiJdfSxYSWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LWxlZnQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtbGVmdCJdLCJmMTkxIiwiTTQ4IDQxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwem0xNiA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODB6bTY0LTIyNGMwLTYuNyAyLjgtMTMgNy43LTE3LjZsMTEyLTEwNGM3LTYuNSAxNy4yLTguMiAyNS45LTQuNFMyODggMTQyLjUgMjg4IDE1MmwwIDIwOGMwIDkuNS01LjcgMTguMi0xNC40IDIycy0xOC45IDIuMS0yNS45LTQuNGwtMTEyLTEwNGMtNC45LTQuNS03LjctMTAuOS03LjctMTcuNnoiXX0sejdyPVhJZSxvdWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZHNoYWtlIixpY29uOls2NDAsNTEyLFsxMjkzMDksNjI2NjIsImhhbmRzaGFrZS1hbHQiLCJoYW5kc2hha2Utc2ltcGxlIl0sImYyYjUiLCJNNTk4LjEgNzUuNGMxMC43LTcuOCAxMy4xLTIyLjggNS4zLTMzLjVzLTIyLjgtMTMuMS0zMy41LTUuM2wtNzQuNSA1NC4yLTkuOS02LjZDNDY1LjggNzEgNDQyLjYgNjQgNDE4LjkgNjRsLTU5LjIgMC0uNCAwLTE0My42IDBjLTI2LjcgMC01Mi41IDguOS03My40IDI1LjFMNzAuMSAzNi42Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM3MtNS40IDI1LjcgNS4zIDMzLjVsODggNjRjOS42IDYuOSAyMi43IDUuOSAzMS4xLTIuNGwzLjktMy45YzEzLjUtMTMuNSAzMS44LTIxLjEgNTAuOS0yMS4xbDQ2LjMgMC05MS43IDkxLjdjLTE1LjYgMTUuNi0xNS42IDQwLjkgMCA1Ni42bC44IC44QzIxOCAzMDggMjk0IDMwOCAzNDAuOSAyNjEuMWwyNy4xLTI3LjEgOTcuOCA5Ny44YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC05LjggOS44LTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDI4IDI4Yy0xNy41IDEwLjQtMzcuMiAxNi43LTU3LjYgMTguNUwzMTMgMzk5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE1IDE1LTMuOCAwYy0zNi4xIDAtNzAuNy0xNC4zLTk2LjItMzkuOEw2NSAyNzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlMMTYwLjIgNDQyLjFjMzQuNSAzNC41IDgxLjMgNTMuOSAxMzAuMSA1My45bDUxLjggMCAxIDEgMS0xIDUuNyAwYzQ4LjggMCA5NS42LTE5LjQgMTMwLjEtNTMuOWwxOS45LTE5LjljMS4yLTEuMiAyLjMtMi4zIDMuNC0zLjUgLjctLjUgMS4zLTEuMSAxLjktMS43TDYwOSAzMTNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTMuOCA1My44Yy00LjItMTIuOC0xMS4zLTI0LjktMjEuNS0zNS4xTDM4NSAxODNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC00NC4xIDQ0LjFjLTI2LjUgMjYuNS02OC41IDI4LTk2LjcgNC42bDk4LjctOTguN2MxMy40LTEzLjQgMzEuNi0yMSA1MC42LTIxLjFsOC41IDAgLjIgMCA1MC44IDBjMTQuMiAwIDI4LjEgNC4yIDM5LjkgMTIuMUw0ODIuNyAxNDBjOC40IDUuNiAxOS4zIDUuMyAyNy40LS42bDg4LTY0eiJdfSxfN3I9b3VlLFQ3cj1vdWUsSkllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTIxLCJzbWlsZS13aW5rIl0sImY0ZGEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzcuMyA2My40QzE5Mi4zIDMzNSAyMTguNCAzNTIgMjU2IDM1MnM2My43LTE3IDc4LjctMzIuNmM5LjItOS42IDI0LjQtOS45IDMzLjktLjdzOS45IDI0LjQgLjcgMzMuOWMtMjIuMSAyMy02MCA0Ny40LTExMy4zIDQ3LjRzLTkxLjItMjQuNC0xMTMuMy00Ny40Yy05LjItOS42LTguOS0yNC44IC43LTMzLjlzMjQuOC04LjkgMzMuOSAuN3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxMN3I9SkllLGVQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50LXRlYXJzIixpY29uOls1MTIsNTEyLFsxMjkzMTUsImdyaW4tc3F1aW50LXRlYXJzIl0sImY1ODYiLCJNNDAzLjEgNDAzLjFjNjcuMi02Ny4yIDc4LjgtMTY4LjkgMzQuOS0yNDhsMzYuNy01LjJjNC41LS42IDguOC0xLjYgMTMuMS0yLjggNDQuNiA5NC45IDI3LjcgMjExLjUtNTAuNyAyOTBzLTE5NS4xIDk1LjMtMjkwIDUwLjdjMS4yLTQuMiAyLjEtOC42IDIuOC0xMy4xbDUuMi0zNi43Yzc5LjEgNDMuOSAxODAuOCAzMi4zIDI0OC0zNC45ek03NSA3NWM3OC40LTc4LjQgMTk1LjEtOTUuMyAyOTAtNTAuNy0xLjIgNC4yLTIuMSA4LjYtMi44IDEzLjFsLTUuMiAzNi43Yy03OS4xLTQzLjktMTgwLjgtMzIuMy0yNDggMzQuOXMtNzguOCAxNjguOS0zNC45IDI0OGwtMzYuNyA1LjJjLTQuNSAuNi04LjggMS42LTEzLjEgMi44LTQ0LjYtOTQuOS0yNy43LTIxMS41IDUwLjctMjkwek0zNzAuOSAyMDYuNWM1LjgtMTAuOSAyMS4xLTEyLjQgMjYuNC0xLjMgMjUuNiA1My41IDE2LjIgMTE5LjYtMjguMiAxNjMuOS00NC4zIDQ0LjMtMTEwLjMgNTMuNy0xNjMuOCAyOC4yLTExLjEtNS4zLTkuNi0yMC42IDEuMy0yNi40IDMyLTE3LjEgNjQuMi00MC44IDkzLjgtNzAuNCAyOS43LTI5LjcgNTMuNC02MS45IDcwLjUtOTR6TTkzLjMgMjgxLjljLTEuNy04IDIuOS0xNS45IDEwLjYtMTguNGw4NC42LTI4YzUuNy0xLjkgMTIuMS0uNCAxNi4zIDMuOXM1LjggMTAuNiAzLjkgMTYuM2wtMjggODQuNmMtMi42IDcuNy0xMC41IDEyLjMtMTguNCAxMC42cy0xMy40LTktMTIuNy0xNy4xbDMuOS00My4xLTQzLjEgMy45Yy04LjEgLjctMTUuNS00LjctMTcuMS0xMi43ek0yOTQuNiAxMTAuNGwtMy45IDQzLjEgNDMuMS0zLjljOC4xLS43IDE1LjUgNC43IDE3LjEgMTIuN3MtMi45IDE1LjktMTAuNiAxOC40bC04NC42IDI4Yy01LjcgMS45LTEyLjEgLjQtMTYuMy0zLjlzLTUuOC0xMC42LTMuOS0xNi4zbDI4LTg0LjZjMi42LTcuNyAxMC41LTEyLjMgMTguNC0xMC42czEzLjQgOSAxMi43IDE3LjF6TTUxMiA1MS40YzAgMjUuNi0xOC44IDQ3LjMtNDQuMSA1MC45TDQyMS4xIDEwOWMtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQxMy4zIDE4LjggNDM1IDAgNDYwLjYgMCA0ODkgMCA1MTIgMjMgNTEyIDUxLjR6TTQ0LjEgNDA5LjdMOTAuOSA0MDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDQ5My4yIDc3IDUxMiA1MS40IDUxMiAyMyA1MTIgMCA0ODkgMCA0NjAuNiAwIDQzNSAxOC44IDQxMy4zIDQ0LjEgNDA5Ljd6Il19LEQ3cj1lUGUsJDdyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtYXVkaW8iLGljb246WzM4NCw1MTIsW10sImYxYzciLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNMjIxLjkgMjY3LjZjLTQuNyAxMC0uMyAyMS45IDkuNyAyNi42IDE5LjIgOC45IDMyLjQgMjguMyAzMi40IDUwLjhzLTEzLjIgNDEuOS0zMi40IDUwLjhjLTEwIDQuNy0xNC40IDE2LjYtOS43IDI2LjZzMTYuNiAxNC40IDI2LjYgOS43QzI4MS4yIDQxNi44IDMwNCAzODMuNiAzMDQgMzQ1cy0yMi44LTcxLjktNTUuNi04Ny4xYy0xMC00LjctMjEuOS0uMy0yNi42IDkuN3pNMTA0IDMwNWMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwIDI3LjIgMzRjMyAzLjggNy42IDYgMTIuNSA2bC4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtLjMgMGMtNC45IDAtOS41IDIuMi0xMi41IDZsLTI3LjIgMzQtMTYgMHpNMjIzLjMgMzczYzkuOS01LjQgMTYuNy0xNiAxNi43LTI4LjFzLTYuNy0yMi43LTE2LjctMjguMWMtNy44LTQuMi0xNS4zIDMuMy0xNS4zIDEyLjFsMCAzMmMwIDguOCA3LjYgMTYuMyAxNS4zIDEyLjF6Il19LHRQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci14bWFyayIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLXRpbWVzIl0sImYyNzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMTcxLjkgOTIuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMzMuOSAzMy45IDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zMy45LTMzLjktMzMuOSAzMy45Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOS0zMy45LTMzLjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMy45IDMzLjkgMzMuOS0zMy45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAweiJdfSxBN3I9dFBlLHJQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtZG93biIsaWNvbjpbNTEyLDUxMixbNjE0NjYsImFycm93LWFsdC1jaXJjbGUtZG93biJdLCJmMzU4IiwiTTI1NiA0NjRhMjA4IDIwOCAwIDEgMSAwLTQxNiAyMDggMjA4IDAgMSAxIDAgNDE2ek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTI0NC43IDM4Ny4zYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDEwNC0xMDRjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNFMzNjYuNSAyNTYgMzYwIDI1NmwtNzIgMCAwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMDQtNzIgMGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDEwNCAxMDR6Il19LEU3cj1yUGUsbHVlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtbGluZXMiLGljb246WzM4NCw1MTIsWzEyODQ0MSwxMjg0NjIsNjE2ODYsImZpbGUtYWx0IiwiZmlsZS10ZXh0Il0sImYxNWMiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptNTYgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEk3cj1sdWUsUDdyPWx1ZSxON3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29tbWVudHMiLGljb246WzU3Niw1MTIsWzEyODQ5MCw2MTY3MF0sImYwODYiLCJNNzYuMiAyNTguN2M2LjEtMTUuMiA0LTMyLjYtNS42LTQ1LjktMTQuNS0yMC4xLTIyLjYtNDMuNy0yMi42LTY4LjggMC02Ni44IDYwLjUtMTI4IDE0NC0xMjhzMTQ0IDYxLjIgMTQ0IDEyOC02MC41IDEyOC0xNDQgMTI4Yy0xNS45IDAtMzEuMS0yLjMtNDUuMy02LjUtMTAuMy0zLjEtMjEuNC0yLjUtMzEuNCAxLjVsLTUwLjQgMjAuMiAxMS40LTI4LjV6TTAgMTQ0YzAgMzUuOCAxMS42IDY5LjEgMzEuNyA5Ni44TDEuOSAzMTUuMmMtMS4zIDMuMi0xLjkgNi42LTEuOSAxMCAwIDE0LjggMTIgMjYuOCAyNi44IDI2LjggMy40IDAgNi44LS43IDEwLTEuOWw5Ni4zLTM4LjVjMTguNiA1LjUgMzguNCA4LjQgNTguOSA4LjQgMTA2IDAgMTkyLTc4LjggMTkyLTE3NlMyOTgtMzIgMTkyLTMyIDAgNDYuOCAwIDE0NHpNMzg0IDUxMmMyMC42IDAgNDAuMy0zIDU4LjktOC40bDk2LjMgMzguNWMzLjIgMS4zIDYuNiAxLjkgMTAgMS45IDE0LjggMCAyNi44LTEyIDI2LjgtMjYuOCAwLTMuNC0uNy02LjgtMS45LTEwbC0yOS43LTc0LjRjMjAtMjcuOCAzMS43LTYxLjEgMzEuNy05Ni44IDAtODIuNC02MS43LTE1MS41LTE0NS0xNzAuNy0xLjYgMTYuMy01LjEgMzEuOS0xMC4xIDQ2LjkgNjMuOSAxNC44IDEwNy4yIDY3LjMgMTA3LjIgMTIzLjkgMCAyNS4xLTguMSA0OC43LTIyLjYgNjguOC05LjYgMTMuMy0xMS43IDMwLjYtNS42IDQ1LjlsMTEuNCAyOC41LTUwLjQtMjAuMmMtMTAtNC0yMS4xLTQuNS0zMS40LTEuNS0xNC4yIDQuMi0yOS40IDYuNS00NS4zIDYuNS03Mi4yIDAtMTI3LjEtNDUuNy0xNDAuNy0xMDEuMi0xNS42IDMuMi0zMS43IDUtNDguMSA1LjIgMTYuNCA4MS45IDk0LjcgMTQ0IDE4OC44IDE0NHoiXX0sX189e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLWNoZWNrIixpY29uOls1MTIsNTEyLFs2MTUzMywiY2hlY2stY2lyY2xlIl0sImYwNTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6bTAtNDY0YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnptNzAuNyAxMjEuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDI0My40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0sTzdyPV9fLFI3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtb29uIixpY29uOls1MTIsNTEyLFsxMjc3NjksOTIxNF0sImYxODYiLCJNMjM5LjMgNDguN2MtMTA3LjEgOC41LTE5MS4zIDk4LjEtMTkxLjMgMjA3LjMgMCAxMTQuOSA5My4xIDIwOCAyMDggMjA4IDMzLjMgMCA2NC43LTcuOCA5Mi42LTIxLjctMTAzLjQtMjMuNC0xODAuNi0xMTUuOC0xODAuNi0yMjYuMyAwLTY1LjggMjcuNC0xMjUuMSA3MS4zLTE2Ny4zek0wIDI1NmMwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2IDE5LjQgMCAzOC40IDIuMiA1Ni43IDYuMyA5LjkgMi4yIDE3LjMgMTAuNSAxOC41IDIwLjVzLTQgMTkuOC0xMy4xIDI0LjRjLTYwLjYgMzAuMi0xMDIuMSA5Mi43LTEwMi4xIDE2NC44IDAgMTAxLjYgODIuNCAxODQgMTg0IDE4NCA1IDAgOS45LS4yIDE0LjgtLjYgMTAuMS0uOCAxOS42IDQuOCAyMy44IDE0LjFzMiAyMC4xLTUuMyAyNy4xQzM4Ny4zIDQ4NC44IDMyNC44IDUxMiAyNTYgNTEyIDExNC42IDUxMiAwIDM5Ny40IDAgMjU2eiJdfSxGN3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xvc2VkLWNhcHRpb25pbmciLGljb246WzUxMiw1MTIsW10sImYyMGEiLCJNNDQ4IDExMmM4LjggMCAxNiA3LjIgMTYgMTZsMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHpNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTg4IDE0NGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MGMwLTQuNCAzLjYtOCA4LTh6bTE2OCA4YzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MHoiXX0sQjdyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImltYWdlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjMwMiIsIk00ODAgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMzIwIDB6TTE2MCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTYwIDMyem04MCAxMTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTQwLjcgMy44Yy00LjMtNy4zLTEyLjItMTEuOC0yMC43LTExLjhzLTE2LjQgNC41LTIwLjcgMTEuOGwtNDYuNSA3OS0xNy4yLTI0LjZjLTQuNS02LjQtMTEuOC0xMC4yLTE5LjctMTAuMnMtMTUuMiAzLjgtMTkuNyAxMC4ybC01NiA4MGMtNS4xIDcuMy01LjggMTYuOS0xLjYgMjQuOFMxOTEuMSAzMjAgMjAwIDMyMGwyNDAgMGM4LjYgMCAxNi42LTQuNiAyMC44LTEyLjFzNC4yLTE2LjctLjEtMjQuMWwtODAtMTM2ek00OCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMzguNyAwIDE1MkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNjAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI5NnoiXX0sYVBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6bTM4Ny4zIDExLjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTEwNC0xMDRjLTQuNi00LjYtMTEuNS01LjktMTcuNC0zLjVTMjU2IDE0NS41IDI1NiAxNTJsMCA3Mi0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDcyYzAgNi41IDMuOSAxMi4zIDkuOSAxNC44czEyLjkgMS4xIDE3LjQtMy41bDEwNC0xMDR6Il19LEg3cj1hUGUsaVBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImlkLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQ3LCJkcml2ZXJzLWxpY2Vuc2UiXSwiZjJjMiIsIk00OCA0MTZsMC0yNTYgNDgwIDAgMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjA4IDMxMmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMzc2IDIwOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LHE3cj1pUGUsc1BlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1wbGF5IixpY29uOls1MTIsNTEyLFs2MTQ2OSwicGxheS1jaXJjbGUiXSwiZjE0NCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIxMi41IDE0Ny41Yy03LjQtNC41LTE2LjctNC43LTI0LjMtLjVTMTc2IDE1OS4zIDE3NiAxNjhsMCAxNzZjMCA4LjcgNC43IDE2LjcgMTIuMyAyMC45czE2LjggNC4xIDI0LjMtLjVsMTQ0LTg4YzcuMS00LjQgMTEuNS0xMi4xIDExLjUtMjAuNXMtNC40LTE2LjEtMTEuNS0yMC41bC0xNDQtODh6TTI5OCAyNTZsLTc0IDQ1LjIgMC05MC40IDc0IDQ1LjJ6Il19LFY3cj1zUGUsblBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTEzLCJsYXVnaC1iZWFtIl0sImY1OWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMTguMyA1OC4yYy00LjItMTMuNyA3LjEtMjYuMiAyMS40LTI2LjJsMjMyLjYgMGMxNC4zIDAgMjUuNiAxMi41IDIxLjQgMjYuMi0xOCA1OC45LTcyLjkgMTAxLjgtMTM3LjcgMTAxLjhTMTM2LjMgMzczLjEgMTE4LjMgMzE0LjJ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxqN3I9blBlLG9QZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJhZGRyZXNzLWJvb2siLGljb246WzUxMiw1MTIsWzYyMTM4LCJjb250YWN0LWJvb2siXSwiZjJiOSIsIk0zODQgNDhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw5NiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw4MCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMjg4IDB6TTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHpNMjQwIDI0OGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptLTMyIDQwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwek01MTIgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6TTQ5NiAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6bTE2IDE0NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHoiXX0sVTdyPW9QZSxsUGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91cmdsYXNzIixpY29uOlszODQsNTEyLFs5MjAzLDYyMDMyLCJob3VyZ2xhc3MtZW1wdHkiXSwiZjI1NCIsIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDgxLjUgODEuNS04MS41IDgxLjVDNDggMzY2IDMyIDQwNC43IDMyIDQ0NWwwIDE5LTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOCAwIDAtMTljMC00MC4zLTE2LTc5LTQ0LjUtMTA3LjVsLTgxLjUtODEuNSA4MS41LTgxLjVDMzM2IDE0NiAzNTIgMTA3LjMgMzUyIDY3bDAtMTkgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzM3My4zIDAgMzYwIDBMMjQgMHpNMTkyIDI4OS45bDgxLjUgODEuNUMyOTMgMzkxIDMwNCA0MTcuNCAzMDQgNDQ1bDAgMTktMjI0IDAgMC0xOWMwLTI3LjYgMTEtNTQgMzAuNS03My41TDE5MiAyODkuOXptMC02Ny45bC04MS41LTgxLjVDOTEgMTIxIDgwIDk0LjYgODAgNjdsMC0xOSAyMjQgMCAwIDE5YzAgMjcuNi0xMSA1NC0zMC41IDczLjVMMTkyIDIyMi4xeiJdfSxXN3I9bFBlLGN1ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoZWFkcGhvbmVzIixpY29uOls0NDgsNTEyLFsxMjc5MTEsNjI4NjMsImhlYWRwaG9uZXMtYWx0IiwiaGVhZHBob25lcy1zaW1wbGUiXSwiZjAyNSIsIk00OCAyMjRjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZzMTc2IDc4LjggMTc2IDE3NmwwIDQ0LjhjLTE0LjEtOC4yLTMwLjUtMTIuOC00OC0xMi44bC0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xNjBDNDQ4IDEwMC4zIDM0Ny43IDAgMjI0IDBTMCAxMDAuMyAwIDIyNEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDBjLTE3LjUgMC0zMy45IDQuNy00OCAxMi44TDQ4IDIyNHptMCAxMjhjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwIDEyOC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMyem0zNTIgMGwwIDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwIDAtMTI4IDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6Il19LEc3cj1jdWUsWTdyPWN1ZSxLN3I9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1wb3dlcnBvaW50IixpY29uOlszODQsNTEyLFtdLCJmMWM0IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTg4IDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDI4IDBjMzcuNiAwIDY4LTMwLjQgNjgtNjhzLTMwLjQtNjgtNjgtNjhsLTUyIDB6bTUyIDg4bC0yOCAwIDAtNDAgMjggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjB6Il19LFo3cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ3aW5kb3ctbWF4aW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ3MF0sImYyZDAiLCJNNDggMjI0bDAgMTYwYzAgOC44IDcuMiAxNiAxNiAxNmwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNjAtNDE2IDB6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6Il19LGNQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50LWRvdHMiLGljb246WzUxMiw1MTIsWzEyODE3Miw2MjA3NSwiY29tbWVudGluZyJdLCJmNGFkIiwiTTAgMjQwYzAgNTQuNCAxOS4zIDEwNC42IDUxLjkgMTQ0LjlMMy4xIDQ3NC4zYy0yIDMuNy0zLjEgNy45LTMuMSAxMi4yIDAgMTQuMSAxMS40IDI1LjUgMjUuNSAyNS41IDQgMCA3LjgtLjYgMTEuNS0yLjFMMTUzLjQgNDYwYzMxLjQgMTIuOSA2Ni4xIDIwIDEwMi42IDIwIDE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwek05NCA0MDcuOWM5LjMtMTcuMSA3LjQtMzguMS00LjgtNTMuMi0yNi4xLTMyLjMtNDEuMi03MS45LTQxLjItMTE0LjcgMC0xMDMuMiA5MC4yLTE5MiAyMDgtMTkyczIwOCA4OC44IDIwOCAxOTItOTAuMiAxOTItMjA4IDE5MmMtMzAuMiAwLTU4LjctNS45LTg0LjMtMTYuNC0xMS45LTQuOS0yNS4zLTQuOC0zNy4xIC4zTDc2IDQ0MC45IDk0IDQwNy45ek0xNDQgMjcyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTQ0LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTgwIDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUTdyPWNQZSxkUGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1NDAsImdyaW4tdG9uZ3VlLXdpbmsiXSwiZjU4YiIsIk0zNjYuOSA0MzJjLjgtNS4yIDEuMS0xMC42IDEuMS0xNmwwLTUzLjVjMTAuMi0xMi42IDE4LjMtMjYuOSAyMy44LTQyLjUgNC4xLTExLjYtNy44LTIxLjQtMTkuNi0xNy44LTM0LjggMTAuNi03NC4zIDE2LjYtMTE2LjMgMTYuNi00MS45IDAtODEuNC02LTExNi4xLTE2LjUtMTEuOC0zLjYtMjMuNyA2LjEtMTkuNiAxNy44IDUuNSAxNS41IDEzLjYgMjkuOSAyMy44IDQyLjRsMCA1My41YzAgNS40IC40IDEwLjggMS4xIDE2LTU4LjQtMzYuOC05Ny4xLTEwMS45LTk3LjEtMTc2IDAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOHMyMDggOTMuMSAyMDggMjA4YzAgNzQuMS0zOC44IDEzOS4yLTk3LjEgMTc2em0tMzguOCA2OS43QzQzNC40IDQ3MC42IDUxMiAzNzIuMyA1MTIgMjU2IDUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwUzAgMTE0LjYgMCAyNTZDMCAzNzIuMyA3Ny42IDQ3MC42IDE4My45IDUwMS43IDIwMy40IDUxOC4xIDIyOC41IDUyOCAyNTYgNTI4czUyLjYtOS45IDcyLjEtMjYuM3pNMzIwIDM3OC42bDAgMzcuNGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGwwLTM3LjRjMC0xNC43IDExLjktMjYuNiAyNi42LTI2LjZsMiAwYzExLjMgMCAyMS4xIDcuOSAyMy42IDE4LjkgMi44IDEyLjYgMjAuOCAxMi42IDIzLjYgMCAyLjUtMTEuMSAxMi4zLTE4LjkgMjMuNi0xOC45bDIgMGMxNC43IDAgMjYuNiAxMS45IDI2LjYgMjYuNnpNMTMyIDIzMmMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHptMjI4LjQtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMjg4IDIwOGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0xMjggMGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6Il19LFg3cj1kUGUsdVBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhvdXJnbGFzcy1oYWxmIixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTIiXSwiZjI1MiIsIk0wIDI0QzAgMTAuNyAxMC43IDAgMjQgMEwzNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMTljMCA0MC4zLTE2IDc5LTQ0LjUgMTA3LjVsLTgxLjUgODEuNSA4MS41IDgxLjVDMzM2IDM2NiAzNTIgNDA0LjcgMzUyIDQ0NWwwIDE5IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMTljMC00MC4zIDE2LTc5IDQ0LjUtMTA3LjVsODEuNS04MS41LTgxLjUtODEuNUM0OCAxNDYgMzIgMTA3LjMgMzIgNjdsMC0xOS04IDBDMTAuNyA0OCAwIDM3LjMgMCAyNHpNMTEwLjUgMzcxLjVjLTMuOSAzLjktNy41IDguMS0xMC43IDEyLjVsMTg0LjQgMGMtMy4yLTQuNC02LjgtOC42LTEwLjctMTIuNWwtODEuNS04MS41LTgxLjUgODEuNXpNODAuOCA0MzJjLS41IDQuMy0uOCA4LjYtLjggMTNsMCAxOSAyMjQgMCAwLTE5YzAtNC40LS4zLTguNy0uOC0xM0w4MC44IDQzMnpNMjU0LjEgMTYwbC0xMjQuMSAwIDYyLjEgNjIuMSA2Mi4xLTYyLjF6bTM5LjctNDhDMzAwLjQgOTguMSAzMDQgODIuNyAzMDQgNjdsMC0xOS0yMjQgMCAwIDE5YzAgMTUuNyAzLjYgMzEuMSAxMC4yIDQ1bDIwMy41IDB6Il19LEo3cj11UGUscFBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNyZWRpdC1jYXJkIixpY29uOls1MTIsNTEyLFsxMjgxNzksNjIwODMsImNyZWRpdC1jYXJkLWFsdCJdLCJmMDlkIiwiTTQ0OCAxMTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzItNDE2IDAgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6bTE2IDExMmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjAgNDE2IDB6TTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek04MCAzNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTE0NCAwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxlOXI9cFBlLHQ5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXNwb2NrIixpY29uOls1MTIsNTEyLFsxMjg0MDZdLCJmMjU5IiwiTTEzOC4zIDgwLjhjLTkuMi0zMy44IDEwLjUtNjguOCA0NC4zLTc4LjQgMzQtOS42IDY5LjQgMTAuMiA3OSA0NC4yTDI5MS45IDE1My43IDMwNS4xIDg0YzYuNi0zNC43IDQwLjEtNTcuNSA3NC44LTUwLjkgMzEuNCA2IDUzIDMzLjkgNTIgNjQuOSAxMC0yLjYgMjAuOC0yLjggMzEuNS0uMSAzNC4zIDguNiA1NS4xIDQzLjMgNDYuNiA3Ny42TDQ1NC43IDM5Ny4yQzQzNy44IDQ2NC43IDM3Ny4yIDUxMiAzMDcuNiA1MTJsLTMzLjcgMGMtNTYuOSAwLTExMi4yLTE5LTE1Ny4yLTUzLjlsLTkyLTcxLjZjLTI3LjktMjEuNy0zMi45LTYxLjktMTEuMi04OS44czYxLjktMzIuOSA4OS44LTExLjJsMTcgMTMuMi01MS44LTEzMS4yYy0xMy0zMi45IDMuMi03MC4xIDM2LTgzIDExLjEtNC40IDIyLjctNS40IDMzLjctMy43em03Ny4xLTIxLjJjLTIuNC04LjUtMTEuMi0xMy40LTE5LjctMTFzLTEzLjQgMTEuMi0xMSAxOS43bDU0LjggMTgyLjRjMy41IDEyLjMtMy4zIDI1LjItMTUuNCAyOS4zcy0yNS4zLTItMzAtMTMuOUwxNDIuOSAxMzguMWMtMy4yLTguMi0xMi41LTEyLjMtMjAuOC05cy0xMi4zIDEyLjUtOSAyMC44bDczLjMgMTg1LjZjMTIgMzAuMy0yMy43IDU3LTQ5LjQgMzdMNzMuOCAzMjMuNGMtNy01LjQtMTctNC4yLTIyLjUgMi44cy00LjIgMTcgMi44IDIyLjVsOTIgNzEuNmMzNi41IDI4LjQgODEuNCA0My44IDEyNy43IDQzLjhsMzMuNyAwYzQ3LjUgMCA4OS0zMi40IDEwMC41LTc4LjVsNTUuNC0yMjEuNmMyLjEtOC42LTMuMS0xNy4zLTExLjYtMTkuNHMtMTcuMyAzLjEtMTkuNCAxMS42bC0yNiAxMDRjLTIuOSAxMS43LTEzLjQgMTkuOS0yNS41IDE5LjktMTYuNSAwLTI4LjktMTUtMjUuOC0zMS4yTDM4My43IDk5YzEuNy04LjctNC0xNy4xLTEyLjctMTguN1MzNTQgODQuMyAzNTIuMyA5M0wzMjAuNSAyNjBjLTIuMiAxMS42LTEyLjQgMjAtMjQuMiAyMC0xMSAwLTIwLjctNy4zLTIzLjctMTcuOUwyMTUuNCA1OS42eiJdfSxyOXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYmVsbC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjc3LDYxOTQzXSwiZjFmNiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04Ny44LTg3LjhjMTcuNS0zLjMgMzAuOC0xOC43IDMwLjgtMzcuMSAwLTYuNy0xLjgtMTMuMy01LjEtMTlMNDg1IDMyMS43Yy0xOS0zMi42LTI5LTY5LjYtMjktMTA3LjNsMC0xNC41YzAtODQuNi02Mi42LTE1NC43LTE0NC0xNjYuM2wwLTkuN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDkuN2MtNDIuMiA2LTc5LjQgMjcuOC0xMDUuNCA1OS4xTDQxLTI0Ljl6TTE5Mi44IDEyNi45QzIxNC43IDk4LjQgMjQ5LjIgODAgMjg4IDgwIDM1NC4zIDgwIDQwOCAxMzMuNyA0MDggMjAwbDAgMTQuNWMwIDQ2LjIgMTIuMyA5MS41IDM1LjUgMTMxLjRsMTIuOSAyMi4xLTIyLjYgMC0yNDEuMS0yNDEuMXpNMTMyLjUgMzQ1LjljMTkuNS0zMy40IDMxLjMtNzAuNyAzNC42LTEwOWwtNDYuNy00Ni43Yy0uMiAzLjMtLjMgNi42LS4zIDkuOWwwIDE0LjVjMCAzNy43LTEwIDc0LjctMjkgMTA3LjNMNjkuMSAzNTkuMmMtMy40IDUuOC01LjEgMTIuMy01LjEgMTkgMCAyMC45IDE2LjkgMzcuOCAzNy44IDM3LjhsMjQ0LjQgMC00OC00OC0xNzguNiAwIDEyLjktMjIuMXpNMjIwLjEgNDY0YzkuOSAyOCAzNi42IDQ4IDY3LjkgNDhzNTgtMjAgNjcuOS00OGwtMTM1LjggMHoiXX0sYTlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN0YXIiLGljb246WzU3Niw1MTIsWzExMDg4LDYxNDQ2XSwiZjAwNSIsIk0yODguMS0zMmM5IDAgMTcuMyA1LjEgMjEuNCAxMy4xTDM4MyAxMjUuMyA1NDIuOSAxNTAuN2M4LjkgMS40IDE2LjMgNy43IDE5LjEgMTYuM3MuNSAxOC01LjggMjQuNEw0NDEuNyAzMDUuOSA0NjcgNDY1LjhjMS40IDguOS0yLjMgMTcuOS05LjYgMjMuMnMtMTcgNi4xLTI1IDJMMjg4LjEgNDE3LjYgMTQzLjggNDkxYy04IDQuMS0xNy43IDMuMy0yNS0ycy0xMS0xNC4yLTkuNi0yMy4yTDEzNC40IDMwNS45IDIwIDE5MS40Yy02LjQtNi40LTguNi0xNS44LTUuOC0yNC40czEwLjEtMTQuOSAxOS4xLTE2LjNsMTU5LjktMjUuNCA3My42LTE0NC4yYzQuMS04IDEyLjQtMTMuMSAyMS40LTEzLjF6bTAgNzYuOEwyMzAuMyAxNThjLTMuNSA2LjgtMTAgMTEuNi0xNy42IDEyLjhsLTEyNS41IDIwIDg5LjggODkuOWM1LjQgNS40IDcuOSAxMy4xIDYuNyAyMC43bC0xOS44IDEyNS41IDExMy4zLTU3LjZjNi44LTMuNSAxNC45LTMuNSAyMS44IDBsMTEzLjMgNTcuNi0xOS44LTEyNS41Yy0xLjItNy42IDEuMy0xNS4zIDYuNy0yMC43bDg5LjgtODkuOS0xMjUuNS0yMGMtNy42LTEuMi0xNC4xLTYtMTcuNi0xMi44TDI4OC4xIDQ0Ljh6Il19LGk5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmbGFnIixpY29uOls0NDgsNTEyLFsxMjc5ODgsNjE3MjVdLCJmMDI0IiwiTTQ4IDI0QzQ4IDEwLjcgMzcuMyAwIDI0IDBTMCAxMC43IDAgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMCA4MC4zLTIwLjFjNDEuMS0xMC4zIDg0LjYtNS41IDEyMi41IDEzLjQgNDQuMiAyMi4xIDk1LjUgMjQuOCAxNDEuNyA3LjRsMzQuNy0xM2MxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI3OS43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTkuNiA0LjhjLTQ2LjMgMjMuMi0xMDAuOCAyMy4yLTE0Ny4xIDAtMzUuMS0xNy42LTc1LjQtMjItMTEzLjUtMTIuNUw0OCA1MiA0OCAyNHptMCA3Ny41bDk2LjYtMjQuMmMyNy02LjcgNTUuNS0zLjYgODAuNCA4LjggNTQuOSAyNy40IDExOC43IDI5LjcgMTc1IDYuOGwwIDI0MS44LTI0LjQgOS4xYy0zMy43IDEyLjYtNzEuMiAxMC43LTEwMy40LTUuNC00OC4yLTI0LjEtMTAzLjMtMzAuMS0xNTUuNi0xNy4xbC02OC42IDE3LjIgMC0yMzd6Il19LHM5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsZW1vbiIsaWNvbjpbNDQ4LDUxMixbMTI3ODE5XSwiZjA5NCIsIk0zNjggODBjLTMuMiAwLTYuMiAuNC04LjkgMS4zLTE5LjEgNS41LTQ2LjEgMTAuNy03NC4zIDMuMy01Ny40LTE0LjktMTI0LjYgNy40LTE3NC43IDU3LjVTMzcuNyAyNTkuNCA1Mi42IDMxNi44YzcuMyAyOC4yIDIuMiA1NS4yLTMuMyA3NC4zLS44IDIuOC0xLjMgNS44LTEuMyA4LjkgMCAxNy43IDE0LjMgMzIgMzIgMzIgMy4yIDAgNi4yLS40IDguOS0xLjMgMTkuMS01LjUgNDYuMS0xMC43IDc0LjMtMy4zIDU3LjQgMTQuOSAxMjQuNi03LjQgMTc0LjctNTcuNXM3Mi40LTExNy4zIDU3LjUtMTc0LjdjLTcuMy0yOC4yLTIuMi01NS4yIDMuMy03NC4zIC44LTIuOCAxLjMtNS44IDEuMy04LjkgMC0xNy43LTE0LjMtMzItMzItMzJ6bTAtNDhjNDQuMiAwIDgwIDM1LjggODAgODAgMCA3LjctMS4xIDE1LjItMy4xIDIyLjMtNC42IDE1LjgtNy4xIDMyLjktMyA0OC45IDIwLjEgNzcuNi0xMC45IDE2MS41LTcwIDIyMC43cy0xNDMuMSA5MC4yLTIyMC43IDcwYy0xNi00LjEtMzMtMS42LTQ4LjkgMy03LjEgMi0xNC42IDMuMS0yMi4zIDMuMS00NC4yIDAtODAtMzUuOC04MC04MCAwLTcuNyAxLjEtMTUuMiAzLjEtMjIuMyA0LjYtMTUuOCA3LjEtMzIuOSAzLTQ4LjktMjAuMS03Ny42IDEwLjktMTYxLjUgNzAtMjIwLjdTMjE5LjMgMTggMjk2LjggMzguMWMxNiA0LjEgMzMgMS42IDQ4LjktMyA3LjEtMiAxNC42LTMuMSAyMi4zLTMuMXpNMjQ2LjcgMTY3Yy01MiAxNS4yLTk2LjUgNTkuNy0xMTEuNyAxMTEuNy0zLjcgMTIuNy0xNy4xIDIwLTI5LjggMTYuM1M4NS4yIDI3OCA4OSAyNjUuM2MxOS44LTY3LjcgNzYuNi0xMjQuNSAxNDQuMy0xNDQuMyAxMi43LTMuNyAyNi4xIDMuNiAyOS44IDE2LjNzLTMuNiAyNi4xLTE2LjMgMjkuOHoiXX0sbjlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1yZXN0b3JlIixpY29uOls1NzYsNTEyLFtdLCJmMmQyIiwiTTUxMiA4MEwyMjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2LTQ4IDAgMC0xNmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDggMCAwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTkyYzAtOC44LTcuMi0xNi0xNi0xNnpNMzY4IDI4OGwtMzIwIDAgMCAxMjhjMCA4LjggNy4yIDE2IDE2IDE2bDI4OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEyOHpNNjQgMTYwbDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LGZQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4taGVhcnRzIixpY29uOls1MTIsNTEyLFsxMjg1MjUsImdyaW4taGVhcnRzIl0sImY1ODQiLCJNNDY0IDI1NmMwIDExNC45LTkzLjEgMjA4LTIwOCAyMDhTNDggMzcwLjkgNDggMjU2YzAtMy41IC4xLTcuMSAuMy0xMC42LTE0LTEzLjktMjkuNy0zMy4xLTM5LjMtNTYuNy01LjggMjEuNC04LjkgNDQtOC45IDY3LjMgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NlM1MTIgMzk3LjQgNTEyIDI1NmMwLTIzLjMtMy4xLTQ1LjktOC45LTY3LjMtOS42IDIzLjctMjUuNCA0Mi44LTM5LjMgNTYuNyAuMiAzLjUgLjMgNyAuMyAxMC42ek0zNjggNTguOWMxMS43LTYgMjQuNS05LjYgMzcuNy0xMC42LTQyLjEtMzAuNC05My44LTQ4LjMtMTQ5LjctNDguM1MxNDguNCAxNy45IDEwNi4zIDQ4LjNjMTMuMiAxIDI2IDQuNiAzNy43IDEwLjYgMTMuOC03LjEgMjkuMy0xMC45IDQ1LjEtMTAuOWwyLjkgMGM4LjkgMCAxNy42IDEuMiAyNS44IDMuNSAxMi40LTIuMyAyNS4yLTMuNSAzOC4yLTMuNXMyNS44IDEuMiAzOC4yIDMuNWM4LjItMi4zIDE2LjktMy41IDI1LjgtMy41bDIuOSAwYzE1LjggMCAzMS4zIDMuOCA0NS4xIDEwLjl6bTQuMiAyNDMuNGMtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggMTkuOCA1NS45IDczLjEgOTUuOSAxMzUuOCA5NS45IDYyLjcgMCAxMTYtNDAuMSAxMzUuOC05NiA0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3Ljh6TTMyMi45IDk2TDMyMCA5NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA1My40IDY2LjkgOTUuNyA4OSAxMDguMiA0LjQgMi41IDkuNiAyLjUgMTQgMCAyMi4xLTEyLjUgODktNTQuOCA4OS0xMDguMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMi45IDBjLTEzLjUgMC0yNi41IDUuNC0zNiAxNC45bC05LjEgOS4xLTkuMS05LjFjLTkuNS05LjUtMjIuNS0xNC45LTM2LTE0Ljl6bS0xODggMTQuOWMtOS41LTkuNS0yMi41LTE0LjktMzYtMTQuOUw5NiA5NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA1My40IDY2LjkgOTUuNyA4OSAxMDguMiA0LjQgMi41IDkuNiAyLjUgMTQgMCAyMi4xLTEyLjUgODktNTQuOCA4OS0xMDguMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMi45IDBjLTEzLjUgMC0yNi41IDUuNC0zNiAxNC45bC05LjEgOS4xLTkuMS05LjF6Il19LG85cj1mUGUsaFBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Uta2lzcy1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MzcsImtpc3MtYmVhbSJdLCJmNTk3IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjQwIDE2bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS02NC05MmMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LGw5cj1oUGUsYzlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtcGRmIixpY29uOls1NzYsNTEyLFtdLCJmMWMxIiwiTTIwOCA0OEw5NiA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmw4MCAwIDAgNDgtODAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwyMjkuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM5Ny4zIDE0MS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNsMCAxNDkuNS00OCAwIDAtMTI4LTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTM0OC4xIDE2MEwyNTYgNjcuOSAyNTYgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMjQwIDM4MGwzMiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwcy0yNi45IDYwLTYwIDYwbC0xMiAwIDAgMjhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTI4YzAtMTEgOS0yMCAyMC0yMHptMzIgODBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC0xMiAwIDAgNDAgMTIgMHptOTYtODBsMzIgMGMyOC43IDAgNTIgMjMuMyA1MiA1MmwwIDY0YzAgMjguNy0yMy4zIDUyLTUyIDUybC0zMiAwYy0xMSAwLTIwLTktMjAtMjBsMC0xMjhjMC0xMSA5LTIwIDIwLTIwem0zMiAxMjhjNi42IDAgMTItNS40IDEyLTEybDAtNjRjMC02LjYtNS40LTEyLTEyLTEybC0xMiAwIDAgODggMTIgMHptNzYtMTA4YzAtMTEgOS0yMCAyMC0yMGw0OCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtMjggMCAwIDI0IDI4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC0yOCAwIDAgNDRjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTI4eiJdfSxtUGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXdpZGUiLGljb246WzUxMiw1MTIsWzEyODUxNSwiZ3Jpbi1hbHQiXSwiZjU4MSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTIyNCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjQgMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0em05NiA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LGQ5cj1tUGUsZ1BlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtc3F1aW50IixpY29uOls1MTIsNTEyLFsibGF1Z2gtc3F1aW50Il0sImY1OWIiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMjUuMiA3Ni40Yy02LjUtMTQgNS0yOC40IDIwLjQtMjguNGwyMjAuOCAwYzE1LjQgMCAyNi44IDE0LjQgMjAuNCAyOC40LTIyLjggNDkuNC03Mi44IDgzLjYtMTMwLjggODMuNnMtMTA3LjktMzQuMi0xMzAuOC04My42em0tMi42LTE3My4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LHU5cj1nUGUsYlBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Uta2lzcy13aW5rLWhlYXJ0IixpY29uOls2NDAsNTEyLFsxMjg1MzYsImtpc3Mtd2luay1oZWFydCJdLCJmNTk4IiwiTTM4NiA0MzkuNWMtMjkuMiAxNS42LTYyLjUgMjQuNS05OCAyNC41LTExNC45IDAtMjA4LTkzLjEtMjA4LTIwOFMxNzMuMiA0OCAyODggNDhjMTEzLjIgMCAyMDUuMiA5MC40IDIwNy45IDIwMi45IDE0LjMgMS41IDI4LjYgNiA0MS45IDEzLjcgMiAxLjIgNCAyLjQgNS45IDMuNyAuMi00LjEgLjMtOC4yIC4zLTEyLjMgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMzMiAxMTQuNiAzMiAyNTYgMTQ2LjYgNTEyIDI4OCA1MTJjNDEuNCAwIDgwLjUtOS44IDExNS4xLTI3LjMtNS44LTEyLjktMTItMjguNS0xNy4yLTQ1LjJ6TTI1NiAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtMTIuMy00LjYtMjMuNS0xMi4yLTMyIDcuNi04LjUgMTIuMi0xOS43IDEyLjItMzIgMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLTQ4LTQ4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTUyLTQ0bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHpNNTQyLjggMzUwYy0yLjItMTguMy0xMi45LTM0LjYtMjguOS00My44LTI4LjEtMTYuMi02My45LTYuNi04MC4xIDIxLjVsLTIuNyA0LjZjLTI0LjUgNDIuNSA3LjkgMTE3LjkgMjQuNCAxNTAuOCA1LjEgMTAuMSAxNS41IDE2LjEgMjYuOCAxNS41IDM2LjctMi4yIDExOC4yLTExLjcgMTQyLjgtNTQuMmwyLjctNC42YzE2LjItMjguMSA2LjYtNjMuOS0yMS41LTgwLjEtMTYtOS4yLTM1LjQtMTAuNC01Mi40LTMuMWwtOS44IDQuMi0xLjMtMTAuNnoiXX0scDlyPWJQZSx1dWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29weSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjNSIsIk0zODQgMzM2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxMzMuNSAwYzQuMiAwIDguMyAxLjcgMTEuMyA0LjdsNTguNSA1OC41YzMgMyA0LjcgNy4xIDQuNyAxMS4zTDQwMCAzMjBjMCA4LjgtNy4yIDE2LTE2IDE2ek0xOTIgMzg0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTk3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzcwLjcgMTguN0MzNTguNyA2LjcgMzQyLjUgMCAzMjUuNSAwTDE5MiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2LTQ4IDAgMCAxNmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDAgMC00OC0xNiAweiJdfSxmOXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3Mta2luZyIsaWNvbjpbNDQ4LDUxMixbOTgxOF0sImY0M2YiLCJNMjI0LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDgwIDE2MS44IDBjMjEuMSAwIDM4LjIgMTcuMSAzOC4yIDM4LjIgMCA2LjQtMS42IDEyLjctNC43IDE4LjNMMzU3LjIgMzc0LjUgNDA1LjYgNDM1YzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNiAwIDI2LjItMjEuMiA0Ny40LTQ3LjQgNDcuNEw3OS40IDUxMmMtMjYuMiAwLTQ3LjQtMjEuMi00Ny40LTQ3LjQgMC0xMC44IDMuNy0yMS4yIDEwLjQtMjkuNkw5MC44IDM3NC41IDQuNyAyMTYuNkMxLjYgMjEwLjkgMCAyMDQuNiAwIDE5OC4yIDAgMTc3LjEgMTcuMSAxNjAgMzguMiAxNjBsMTYxLjggMCAwLTgwLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0xMzEuOCA0MDBsLTMuNiA0LjQtNDcuNiA1OS42IDI4Ni42IDAtNDcuNi01OS42LTMuNi00LjQtMTg0LjMgMHptMS4xLTQ4LjVsLjMgLjUgMTgxLjYgMCAuMy0uNSA3OC4zLTE0My41LTMzOC43IDAgNzguMyAxNDMuNXoiXX0seFBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1wbHVzIixpY29uOls0NDgsNTEyLFs2MTg0NiwicGx1cy1zcXVhcmUiXSwiZjBmZSIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMjAwIDM0NGwwLTY0LTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNjQgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LGg5cj14UGUsbTlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtY29kZSIsaWNvbjpbMzg0LDUxMixbXSwiZjFjOSIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek0xNzAuMiAyOTUuNmM4LjYtMTAuMSA3LjUtMjUuMi0yLjYtMzMuOHMtMjUuMi03LjUtMzMuOCAyLjZsLTQ4IDU2Yy03LjcgOS03LjcgMjIuMiAwIDMxLjJsNDggNTZjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOGwtMzQuNi00MC40IDM0LjYtNDAuNHptODAtMzEuMmMtOC42LTEwLjEtMjMuOC0xMS4yLTMzLjgtMi42cy0xMS4yIDIzLjgtMi42IDMzLjhsMzQuNiA0MC40LTM0LjYgNDAuNGMtOC42IDEwLjEtNy41IDI1LjIgMi42IDMzLjhzMjUuMiA3LjUgMzMuOC0yLjZsNDgtNTZjNy43LTkgNy43LTIyLjIgMC0zMS4ybC00OC01NnoiXX0sdlBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aW5rIixpY29uOls1MTIsNTEyLFsiZ3Jpbi13aW5rIl0sImY1OGMiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LGc5cj12UGUseVBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtMSIsaWNvbjpbNTEyLDUxMixbIm1vbmV5LWJpbGwtYWx0Il0sImYzZDEiLCJNMTEyIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE2MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwyODggMGMwLTM1LjMgMjguNy02NCA2NC02NGwwLTE2MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsLTI4OCAwek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0yNTYgMTZhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0em0tMTYgNDRjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNDguNC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDQ4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDB6Il19LGI5cj15UGUseDlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImV5ZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjA3MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05Ni40LTk2LjRjMi43LTIuNCA1LjQtNC44IDgtNy4yIDQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42LTU2LjggMC0xMDUuNiAxOC4yLTE0NiA0NC4yTDQxLTI0Ljl6TTE3Ni45IDExMS4xYzMyLjEtMTguOSA2OS4yLTMxLjEgMTExLjEtMzEuMSA2NS4yIDAgMTE4LjggMjkuNiAxNTkuOSA2Ny43IDM4LjUgMzUuNyA2NS4xIDc4LjMgNzguNiAxMDguMy0xMy42IDMwLTQwLjIgNzIuNS03OC42IDEwOC4zLTMuMSAyLjgtNi4yIDUuNi05LjQgOC40TDM5My44IDMyOGMxNC0yMC41IDIyLjItNDUuMyAyMi4yLTcyIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4LTI2LjcgMC01MS41IDguMi03MiAyMi4ybC0zOS4xLTM5LjF6bTE4MiAxODJsLTEwOC0xMDhjMTEuMS01LjggMjMuNy05LjEgMzcuMS05LjEgNDQuMiAwIDgwIDM1LjggODAgODAgMCAxMy40LTMuMyAyNi05LjEgMzcuMXpNMTAzLjQgMTczLjJsLTM0LTM0Yy0zMi42IDM2LjgtNTUgNzUuOC02Ni45IDEwNC41LTMuMyA3LjktMy4zIDE2LjcgMCAyNC42IDE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjEgNDcuMSA0My43IDExMS44IDgwLjYgMTkyLjYgODAuNiAzNy4zIDAgNzEuMi03LjkgMTAxLjUtMjAuNkwzNTIuMiA0MjJjLTIwIDYuNC00MS40IDEwLTY0LjIgMTAtNjUuMiAwLTExOC44LTI5LjYtMTU5LjktNjcuNy0zOC41LTM1LjctNjUuMS03OC4zLTc4LjYtMTA4LjMgMTAuNC0yMy4xIDI4LjYtNTMuNiA1NC04Mi44eiJdfSx2OXI9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS13b3JkIixpY29uOlszODQsNTEyLFtdLCJmMWMyIiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTcxLjMgMjc0LjJjLTMuMi0xMi45LTE2LjItMjAuNy0yOS4xLTE3LjVTODUuNSAyNzMgODguNyAyODUuOGwzMiAxMjhjMi41IDEwLjIgMTEuNCAxNy41IDIxLjkgMTguMXMyMC4xLTUuNyAyMy44LTE1LjVsMjUuNS02OC4xIDI1LjUgNjguMWMzLjcgOS44IDEzLjMgMTYuMSAyMy44IDE1LjVzMTkuNC03LjkgMjEuOS0xOC4xbDMyLTEyOGMzLjItMTIuOS00LjYtMjUuOS0xNy41LTI5LjFzLTI1LjkgNC42LTI5LjEgMTcuNWwtMTMuMyA1My4yLTIwLjktNTUuOEMyMTEgMjYyLjIgMjAyIDI1NiAxOTIgMjU2cy0xOSA2LjItMjIuNSAxNS42bC0yMC45IDU1LjgtMTMuMy01My4yeiJdfSx3UGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1hbmdyeSIsaWNvbjpbNTEyLDUxMixbMTI4NTQ0LCJhbmdyeSJdLCJmNTU2IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0xNDRjMjQuMSAwIDQ1LjQgMTEuOCA1OC41IDMwIDcuNyAxMC44IDIyLjcgMTMuMiAzMy41IDUuNXMxMy4yLTIyLjcgNS41LTMzLjVjLTIxLjctMzAuMi01Ny4zLTUwLTk3LjUtNTBzLTc1LjcgMTkuOC05Ny41IDUwYy03LjcgMTAuOC01LjMgMjUuOCA1LjUgMzMuNXMyNS44IDUuMyAzMy41LTUuNWMxMy4xLTE4LjIgMzQuNC0zMCA1OC41LTMwem0tODAtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0uMyA5LjcgMy4yYzEwLjUgMy41IDIxLjgtMi4yIDI1LjMtMTIuNnMtMi4yLTIxLjgtMTIuNi0yNS4zbC05Ni0zMmMtMTAuNS0zLjUtMjEuOCAyLjItMjUuMyAxMi42czIuMiAyMS44IDEyLjYgMjUuM2wyOC45IDkuNmMtNC4xIDUuNC02LjYgMTIuMS02LjYgMTkuNCAwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTkyLTMyYzAtNy4zLTIuNC0xNC02LjYtMTkuNGwyOC45LTkuNmMxMC41LTMuNSAxNi4xLTE0LjggMTIuNi0yNS4zcy0xNC44LTE2LjEtMjUuMy0xMi42bC05NiAzMmMtMTAuNSAzLjUtMTYuMSAxNC44LTEyLjYgMjUuM3MxNC44IDE2LjEgMjUuMyAxMi42bDkuNy0zLjIgMCAuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyeiJdfSx5OXI9d1BlLHc5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1rbmlnaHQiLGljb246WzQ0OCw1MTIsWzk4MjJdLCJmNDQxIiwiTTIzMi0zMmMxMTAuNSAwIDIwMCA4OS41IDIwMCAyMDBsMCAxMjcuN2MwIDE4LjktNi4xIDM3LjEtMTcuMiA1Mi4ybC01LjEgNi4yLTM2LjMgNDAuNyAzMi4xIDQwLjJjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42bC0uMiA0LjhjLTIuNCAyMy45LTIyLjYgNDIuNS00Ny4xIDQyLjVsLTI4OS4yIDAtNC44LS4yYy0yMy45LTIuNC00Mi41LTIyLjYtNDIuNS00Ny4xIDAtMTAuOCAzLjctMjEuMiAxMC40LTI5LjZsMzcuNi00NyAwLTI0LjNjMC0yNC4zIDEwLjEtNDcuNiAyNy44LTY0LjJsNjMuNS01OS41LTE3LjQgMC0uMiAuMmMtMjAuMyAyMC4zLTQ5LjYgMjguMi03Ny4xIDIxLjFsLTUuNS0xLjZjLTMwLjktMTAuMy01Mi4zLTM4LTU0LjktNzAuMWwtLjItNi40IDAtMS40YzAtMTkuNyA3LjEtMzguOCAxOS45LTUzLjhsNzYuMS04OC44IDAtNDcuMSAuMS0yLjVDMTEzLjQtMjIuNiAxMjMuNi0zMiAxMzYtMzJsOTYgMHpNODAuNyA0NjRsMjg2LjYgMC0zOC40LTQ4LTIwOS45IDAtMzguNCA0OHpNMTYwIDQ4YzAgNS43LTIuMSAxMS4zLTUuOCAxNS42TDcyLjMgMTU5LjFDNjcgMTY1LjQgNjQgMTczLjQgNjQgMTgxLjdsMCAxLjQgLjQgNS4yYzEuOSAxMS45IDEwLjMgMjEuOSAyMS45IDI1LjhsNC41IDEuMWMxMC41IDEuOSAyMS4zLTEuNCAyOS05bDcuMi03LjIgMy43LTNjMy45LTIuNiA4LjUtNCAxMy4zLTRsODggMGM5LjggMCAxOC43IDYgMjIuMyAxNS4yczEuMyAxOS42LTUuOSAyNi4zbC0xMDcuOCAxMDFjLTguMSA3LjYtMTIuNyAxOC4xLTEyLjcgMjkuMmwwIDQuMyAyMDUuMiAwIDQwLjctNDUuOCAyLjMtMi44YzUuMS02LjggNy44LTE1LjIgNy44LTIzLjdMMzg0IDE2OGMwLTgzLjktNjguMS0xNTItMTUyLTE1MmwtNzIgMCAwIDMyem0zMiA3MmEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6Il19LGtQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTE2LCJncmluLWJlYW0iXSwiZjU4MiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxrOXI9a1BlLFM5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBlYWNlIixpY29uOls0NDgsNTEyLFs5OTk2XSwiZjI1YiIsIk0yMTkgMS40Yy0zNS4yLTMuNy02Ni42IDIxLjgtNzAuMyA1N2wtNi40IDYwLjYtMTcuNC00OS40QzExMy4yIDM2LjMgNzYuNiAxOC44IDQzLjMgMzAuNVMtNy42IDc4LjggNC4xIDExMi4xTDU2LjkgMjYyLjJDNDEuNyAyNzYuNyAzMi4yIDI5Ny4zIDMyLjIgMzIwbDAgMjRjMCA5Mi44IDc1LjIgMTY4IDE2OCAxNjhsNDggMGM5Mi44IDAgMTY4LTc1LjIgMTY4LTE2OGwwLTEyMGMwLTM1LjMtMjguNy02NC02NC02NC03LjkgMC0xNS40IDEuNC0yMi40IDQtMTAuNC0yMS4zLTMyLjMtMzYtNTcuNi0zNi0uNyAwLTEuNSAwLTIuMiAwbDUuOS01Ni4zYzMuNy0zNS4yLTIxLjgtNjYuNi01Ny03MC4zem0tLjIgMTU1LjRjLTYuNiAxMC4xLTEwLjUgMjIuMi0xMC41IDM1LjJsMCA0OGMwIC43IDAgMS40IDAgMi01LjEtMS4zLTEwLjUtMi0xNi0ybC03LjQgMC01LjQtMTUuMyAxNy0xNjEuM2MuOS04LjggOC44LTE1LjIgMTcuNi0xNC4yczE1LjIgOC44IDE0LjIgMTcuNmwtOS41IDkwLjF6TTc5LjYgODUuNmw1NC4zIDE1NC40LTIxLjcgMGMtNCAwLTggLjMtMTEuOSAuOUw0OS40IDk2LjJjLTIuOS04LjMgMS41LTE3LjUgOS44LTIwLjRzMTcuNSAxLjUgMjAuNCA5Ljh6TTI1Ni4yIDE5MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OHptMzguNCAxMDhjMTAuNCAyMS4zIDMyLjMgMzYgNTcuNiAzNiA1LjUgMCAxMC45LS43IDE2LTJsMCAxMGMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtNDggMGMtNjYuMyAwLTEyMC01My43LTEyMC0xMjBsMC0yNGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw4MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0uNyAwLTEuNCAwLTIgNS4xIDEuMyAxMC41IDIgMTYgMiA3LjkgMCAxNS40LTEuNCAyMi40LTR6bTczLjYtMjhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNDh6Il19LE05cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21wYXNzIixpY29uOls1MTIsNTEyLFsxMjk1MTddLCJmMTRlIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzA2LjcgNjkuMUwxNjIuNCAzODAuNmMtMTkuNCA3LjUtMzguNS0xMS42LTMxLTMxbDU1LjUtMTQ0LjNjMy4zLTguNSA5LjktMTUuMSAxOC40LTE4LjRsMTQ0LjMtNTUuNWMxOS40LTcuNSAzOC41IDExLjYgMzEgMzFMMzI1LjEgMzA2LjdjLTMuMyA4LjUtOS45IDE1LjEtMTguNCAxOC40ek0yODggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LEM5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUiLGljb246WzQ0OCw1MTIsWzk2MzIsOTcyMyw5NzI0LDYxNTkwXSwiZjBjOCIsIk0zODQgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMzIwIDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6Il19LFNQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4iLGljb246WzUxMiw1MTIsWzEyODUxMiwiZ3JpbiJdLCJmNTgwIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSx6OXI9U1BlLE1QZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNtaWxlIixpY29uOls1MTIsNTEyLFsxMjg1NzgsInNtaWxlIl0sImYxMTgiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzcuMyA2My40QzE5Mi4zIDMzNSAyMTguNCAzNTIgMjU2IDM1MnM2My43LTE3IDc4LjctMzIuNmM5LjItOS42IDI0LjQtOS45IDMzLjktLjdzOS45IDI0LjQgLjcgMzMuOWMtMjIuMSAyMy02MCA0Ny40LTExMy4zIDQ3LjRzLTkxLjItMjQuNC0xMTMuMy00Ny40Yy05LjItOS42LTguOS0yNC44IC43LTMzLjlzMjQuOC04LjkgMzMuOSAuN3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxfOXI9TVBlLENQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNtaWxlLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUyMiwic21pbGUtYmVhbSJdLCJmNWI4IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc3LjMgNjMuNEMxOTIuMyAzMzUgMjE4LjQgMzUyIDI1NiAzNTJzNjMuNy0xNyA3OC43LTMyLjZjOS4yLTkuNiAyNC40LTkuOSAzMy45LS43czkuOSAyNC40IC43IDMzLjljLTIyLjEgMjMtNjAgNDcuNC0xMTMuMyA0Ny40cy05MS4yLTI0LjQtMTEzLjMtNDcuNGMtOS4yLTkuNi04LjktMjQuOCAuNy0zMy45czI0LjgtOC45IDMzLjkgLjd6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxUOXI9Q1BlLEw5cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb2xkZXItY2xvc2VkIixpY29uOls1MTIsNTEyLFtdLCJlMTg1IiwiTTQ0OCA0MDBMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNDQgNDE2IDAgMCAxNDRjMCA4LjgtNy4yIDE2LTE2IDE2em0xNi0yMDhsLTQxNiAwIDAtOTZjMC04LjggNy4yLTE2IDE2LTE2bDEzOC43IDBjMy41IDAgNi44IDEuMSA5LjYgMy4yTDI1MC43IDExMmMxMy44IDEwLjQgMzAuNyAxNiA0OCAxNkw0NDggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4ek02NCA0NDhsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjk4LjcgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI0MS4xIDQ0LjhDMjMwIDM2LjUgMjE2LjUgMzIgMjAyLjcgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NHoiXX0sRDlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImtleWJvYXJkIixpY29uOls1NzYsNTEyLFs5ZTNdLCJmMTFjIiwiTTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjU2YzAgOC44IDcuMiAxNiAxNiAxNmw0NDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDExMnpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHpNMTc2IDMyMGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bS03Mi03MmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2em0xNi05NmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em02NCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2em0xNi05NmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em02NCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2em0xNi05NmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em02NCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2em0xNi05NmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em02NCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2em0xNi05NmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2eiJdfSx6UGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1yb2xsaW5nLWV5ZXMiLGljb246WzUxMiw1MTIsWzEyODU4MCwibWVoLXJvbGxpbmctZXllcyJdLCJmNWE1IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDM3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0xNjAgMjY0Yy0yMi4xIDAtNDAtMTcuOS00MC00MCAwLTkuNSAzLjMtMTguMSA4LjgtMjUgMy4yIDE0LjMgMTYgMjUgMzEuMiAyNXMyOC0xMC43IDMxLjItMjVjNS41IDYuOCA4LjggMTUuNSA4LjggMjUgMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTAgNDBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTE5Mi00MGMtMjIuMSAwLTQwLTE3LjktNDAtNDAgMC05LjUgMy4zLTE4LjEgOC44LTI1IDMuMiAxNC4zIDE2IDI1IDMxLjIgMjVzMjgtMTAuNyAzMS4yLTI1YzUuNSA2LjggOC44IDE1LjUgOC44IDI1IDAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDQwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYweiJdfSwkOXI9elBlLF9QZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW1hY2UiLGljb246WzUxMiw1MTIsWzEyODU1NiwiZ3JpbWFjZSJdLCJmNTdmIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6TTUxMiAyNTZhMjU2IDI1NiAwIDEgMSAtNTEyIDAgMjU2IDI1NiAwIDEgMSA1MTIgMHpNMTUyIDM1MmMwIDExLjkgOC42IDIxLjggMjAgMjMuN2wwLTQ3LjNjLTExLjQgMS45LTIwIDExLjgtMjAgMjMuN3ptODQgMjRsMC00OC0yNCAwIDAgNDggMjQgMHptNjQgMGwwLTQ4LTI0IDAgMCA0OCAyNCAwem00MC0uM2MxMS40LTEuOSAyMC0xMS44IDIwLTIzLjdzLTguNi0yMS44LTIwLTIzLjdsMCA0Ny4zek0xNzYgMjg4bDE2MCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC0xNjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NHptMC0xMTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sQTlyPV9QZSxUUGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLWRvdCIsaWNvbjpbNTEyLDUxMixbMTI4MjgwLCJkb3QtY2lyY2xlIl0sImYxOTIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6bTAtNDY0YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnptMCAzMDRhOTYgOTYgMCAxIDEgMC0xOTIgOTYgOTYgMCAxIDEgMCAxOTJ6Il19LEU5cj1UUGUsSTlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im9iamVjdC1ncm91cCIsaWNvbjpbNTc2LDUxMixbXSwiZjI0NyIsIk00MCA2NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem00OCA1OS4zYzE2LTYuNSAyOC45LTE5LjMgMzUuMy0zNS4zbDMyOS4zIDBjNi41IDE2IDE5LjMgMjguOSAzNS4zIDM1LjNsMCAyNjUuM2MtMTYgNi41LTI4LjkgMTkuMy0zNS4zIDM1LjNsLTMyOS4zIDBjLTYuNS0xNi0xOS4zLTI4LjktMzUuMy0zNS4zbDAtMjY1LjN6TTUxMiAwYy0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBMMTIzLjMgNDBDMTEzLjkgMTYuNSA5MC45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjQgMCA5MC45IDE2LjUgMTEzLjkgNDAgMTIzLjNsMCAyNjUuM2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0IDI2LjkgMCA0OS45LTE2LjUgNTkuMy00MGwzMjkuMyAwYzkuNSAyMy41IDMyLjUgNDAgNTkuMyA0MCAzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yNjUuM2MyMy41LTkuNSA0MC0zMi41IDQwLTU5LjMgMC0zNS4zLTI4LjctNjQtNjQtNjR6TTQ4OCA2NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek02NCA0MjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MjQgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNMTkyIDE3Nmw4OCAwIDAgNTYtODggMCAwLTU2em0tOC00MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA3MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMDQgMHptNzIgMTg0bDAgMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTA0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjQgMGMwIDE0LjYtMy45IDI4LjItMTAuNyA0MGwyNi43IDAgMCA1Ni04OCAwIDAtMTYuNGMtMi42IC4zLTUuMyAuNC04IC40bC0zMiAweiJdfSxMUGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1mbHVzaGVkIixpY29uOls1MTIsNTEyLFsxMjg1NjMsImZsdXNoZWQiXSwiZjU3OSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMTYwIDI0OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTIxNi0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xOTIgMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEyOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMjggMHpNMTYwIDE3NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTAgMTI4YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xNDQtODBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMTI4IDBhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAweiJdfSxQOXI9TFBlLERQZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzdGFyLWhhbGYtc3Ryb2tlIixpY29uOls1NzYsNTEyLFsic3Rhci1oYWxmLWFsdCJdLCJmNWMwIiwiTTMwOS41LTE4LjljLTQuMS04LTEyLjQtMTMuMS0yMS40LTEzLjFzLTE3LjMgNS4xLTIxLjQgMTMuMUwxOTMuMSAxMjUuMyAzMy4yIDE1MC43Yy04LjkgMS40LTE2LjMgNy43LTE5LjEgMTYuM3MtLjUgMTggNS44IDI0LjRsMTE0LjQgMTE0LjUtMjUuMiAxNTkuOWMtMS40IDguOSAyLjMgMTcuOSA5LjYgMjMuMnMxNi45IDYuMSAyNSAyTDI4OC4xIDQxNy42IDQzMi40IDQ5MWM4IDQuMSAxNy43IDMuMyAyNS0yczExLTE0LjIgOS42LTIzLjJMNDQxLjcgMzA1LjkgNTU2LjEgMTkxLjRjNi40LTYuNCA4LjYtMTUuOCA1LjgtMjQuNHMtMTAuMS0xNC45LTE5LjEtMTYuM0wzODMgMTI1LjMgMzA5LjUtMTguOXpNMjY0LjEgOTEuOGwwIDI4NC4xLTEwMC4xIDUwLjkgMTkuOC0xMjUuNWMxLjItNy42LTEuMy0xNS4zLTYuNy0yMC43bC04OS44LTg5LjkgMTI1LjUtMjBjNy42LTEuMiAxNC4xLTYgMTcuNi0xMi44bDMzLjgtNjYuMnptNDggMjg0LjFsMC0yODQuMSAzMy44IDY2LjJjMy41IDYuOCAxMCAxMS42IDE3LjYgMTIuOGwxMjUuNSAyMC04OS44IDg5LjljLTUuNCA1LjQtNy45IDEzLjEtNi43IDIwLjdsMTkuOCAxMjUuNS0xMDAuMS01MC45eiJdfSxOOXI9RFBlLE85cj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXZpZGVvIixpY29uOlszODQsNTEyLFtdLCJmMWM4IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTgwIDI4OGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yNCAzNSAzNWMzLjIgMy4yIDcuNSA1IDEyIDUgOS40IDAgMTctNy42IDE3LTE3bDAtOTQuMWMwLTkuNC03LjYtMTctMTctMTctNC41IDAtOC44IDEuOC0xMiA1bC0zNSAzNSAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sJFBlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2giLGljb246WzUxMiw1MTIsWyJsYXVnaCJdLCJmNTk5IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTE4LjMgNTguMmMtNC4yLTEzLjcgNy4xLTI2LjIgMjEuNC0yNi4ybDIzMi42IDBjMTQuMyAwIDI1LjYgMTIuNSAyMS40IDI2LjItMTggNTguOS03Mi45IDEwMS44LTEzNy43IDEwMS44UzEzNi4zIDM3My4xIDExOC4zIDMxNC4yek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFI5cj0kUGUsRjlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjI1YSIsIk0xNjAgNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDEzNmMwIDEwLjMgNi42IDE5LjUgMTYuNCAyMi44czIwLjYtLjEgMjYuOC04LjNjMy0zLjkgNy42LTYuNCAxMi44LTYuNCA4LjggMCAxNiA3LjIgMTYgMTYgMCAxMC4zIDYuNiAxOS41IDE2LjQgMjIuOHMyMC42LS4xIDI2LjgtOC4zYzMtMy45IDcuNi02LjQgMTIuOC02LjQgNy44IDAgMTQuMyA1LjYgMTUuNyAxMyAxLjYgOC4yIDcuMyAxNS4xIDE1LjEgMThzMTYuNyAxLjYgMjMuMy0zLjZjMi43LTIuMSA2LjEtMy40IDkuOS0zLjQgOC44IDAgMTYgNy4yIDE2IDE2bDAgMTIwYzAgMzkuOC0zMi4yIDcyLTcyIDcybC0xMTYuNiAwYy0zNy40IDAtNzIuNC0xOC43LTkzLjItNDkuOUw1MC43IDMxMi45Yy00LjktNy40LTIuOS0xNy4zIDQuNC0yMi4yczE3LjMtMi45IDIyLjIgNC40TDExNiAzNTMuMmM1LjkgOC44IDE2LjggMTIuNyAyNi45IDkuN3MxNy0xMi40IDE3LTIzTDE2MCA2NHpNMTc2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMTk3LjdDOTEuMiAyMzggNTUuNSAyMzIuOCAyOC41IDI1MC43LS45IDI3MC40LTguOSAzMTAuMSAxMC44IDMzOS41TDc4LjMgNDQwLjhjMjkuNyA0NC41IDc5LjYgNzEuMiAxMzMuMSA3MS4yTDMyOCA1MTJjNjYuMyAwIDEyMC01My43IDEyMC0xMjBsMC0xMjBjMC0zNS4zLTI4LjctNjQtNjQtNjQtNC41IDAtOC44IC41LTEzIDEuMy0xMS43LTE1LjQtMzAuMi0yNS4zLTUxLTI1LjMtNi45IDAtMTMuNSAxLjEtMTkuNyAzLjEtMTEuNi0xNi40LTMwLjctMjcuMS01Mi4zLTI3LjEtMi43IDAtNS40IC4yLTggLjVMMjQwIDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0em00OCAzMDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6bTQ4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2em04MCAxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnoiXX0sQjlyPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InJlZ2lzdGVyZWQiLGljb246WzUxMiw1MTIsWzE3NF0sImYyNWQiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDAgMTQ0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTYgMzQuNCAwIDQxIDY4LjNjNi44IDExLjQgMjEuNiAxNSAzMi45IDguMnMxNS0yMS42IDguMi0zMi45bC0zMC4yLTUwLjNjMjQuNi0xMS41IDQxLjYtMzYuNCA0MS42LTY1LjMgMC0zOS44LTMyLjItNzItNzItNzJsLTgwIDB6bTcyIDk2bC00OCAwIDAtNDggNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAweiJdfSxJRWE9e2ZhU3F1YXJlTWludXM6ZEllLGZhTWludXNTcXVhcmU6UzVyLGZhQ2FsZW5kYXJDaGVjazpNNXIsZmFGYWNlS2lzczp1SWUsZmFLaXNzOkM1cixmYVBhc3RlOk1fLGZhRmlsZUNsaXBib2FyZDp6NXIsZmFIYW5kUG9pbnRMZWZ0Ol81cixmYUZpbGVFeGNlbDpUNXIsZmFFbnZlbG9wZTpMNXIsZmFTcXVhcmVDYXJldERvd246cEllLGZhQ2FyZXRTcXVhcmVEb3duOkQ1cixmYVRydWNrOiQ1cixmYUJlbGw6QTVyLGZhTWVzc2FnZTpDXyxmYUNvbW1lbnRBbHQ6RTVyLGZhRmFjZURpenp5OmZJZSxmYURpenp5Okk1cixmYUNhbGVuZGFyRGF5czpoSWUsZmFDYWxlbmRhckFsdDpQNXIsZmFIYW5kUG9pbnRVcDpONXIsZmFIYW5kTGl6YXJkOk81cixmYVNxdWFyZUZ1bGw6UjVyLGZhQ2lyY2xlUGF1c2U6bUllLGZhUGF1c2VDaXJjbGU6RjVyLGZhSGFyZERyaXZlOmdJZSxmYUhkZDpCNXIsZmFGaWxlWmlwcGVyOmJJZSxmYUZpbGVBcmNoaXZlOkg1cixmYUZsb3BweURpc2s6eEllLGZhU2F2ZTpxNXIsZmFGYWNlR3JpblRvbmd1ZVNxdWludDp2SWUsZmFHcmluVG9uZ3VlU3F1aW50OlY1cixmYUNhbWVyYTp5SWUsZmFDYW1lcmFBbHQ6ajVyLGZhRmFjZUdyaW5TdGFyczp3SWUsZmFHcmluU3RhcnM6VTVyLGZhRXllOlc1cixmYUZhY2VTYWRUZWFyOmtJZSxmYVNhZFRlYXI6RzVyLGZhU2hhcmVGcm9tU3F1YXJlOlNJZSxmYVNoYXJlU3F1YXJlOlk1cixmYU5vdGVTdGlja3k6TUllLGZhU3RpY2t5Tm90ZTpLNXIsZmFIYW5kQmFja0Zpc3Q6Q0llLGZhSGFuZFJvY2s6WjVyLGZhQ2hlc3NRdWVlbjpRNXIsZmFGYWNlR3JpblRlYXJzOnpJZSxmYUdyaW5UZWFyczpYNXIsZmFQZW5Ub1NxdWFyZTpfSWUsZmFFZGl0Oko1cixmYUZhY2VHcmluQmVhbVN3ZWF0OlRJZSxmYUdyaW5CZWFtU3dlYXQ6ZThyLGZhQ2xvY2s6TEllLGZhQ2xvY2tGb3VyOnQ4cixmYUZhY2VMYXVnaFdpbms6REllLGZhTGF1Z2hXaW5rOnI4cixmYVBhcGVyUGxhbmU6YThyLGZhSGVhcnQ6aThyLGZhRm9udEF3ZXNvbWU6cnVlLGZhRm9udEF3ZXNvbWVGbGFnOnM4cixmYUZvbnRBd2Vzb21lTG9nb0Z1bGw6bjhyLGZhQ2xvbmU6bzhyLGZhRm9sZGVyT3BlbjpsOHIsZmFXaW5kb3dNaW5pbWl6ZTpjOHIsZmFTdGFySGFsZjpkOHIsZmFBbGFybUNsb2NrOnU4cixmYU5ld3NwYXBlcjpwOHIsZmFIb3NwaXRhbDphdWUsZmFIb3NwaXRhbEFsdDpmOHIsZmFIb3NwaXRhbFdpZGU6aDhyLGZhQ2lyY2xlU3RvcDokSWUsZmFTdG9wQ2lyY2xlOm04cixmYU9iamVjdFVuZ3JvdXA6ZzhyLGZhQ29tbWVudDpiOHIsZmFDaGVzc1Bhd246eDhyLGZhQ2FsZW5kYXJQbHVzOnY4cixmYUNsaXBib2FyZDp5OHIsZmFUaHVtYnNEb3duOnc4cixmYUlkQmFkZ2U6azhyLGZhU3F1YXJlQ2hlY2s6QUllLGZhQ2hlY2tTcXVhcmU6UzhyLGZhQ2hlc3NCaXNob3A6TThyLGZhRW52ZWxvcGVPcGVuOkM4cixmYUNpcmNsZVhtYXJrOnp5LGZhVGltZXNDaXJjbGU6ejhyLGZhWG1hcmtDaXJjbGU6XzhyLGZhU3F1YXJlQ2FyZXRVcDpFSWUsZmFDYXJldFNxdWFyZVVwOlQ4cixmYUZpbGVJbWFnZTpMOHIsZmFTcXVhcmVDYXJldFJpZ2h0OklJZSxmYUNhcmV0U3F1YXJlUmlnaHQ6RDhyLGZhU3VuOmR1ZSxmYUltYWdlOiQ4cixmYUxpZ2h0YnVsYjpBOHIsZmFBZGRyZXNzQ2FyZDppdWUsZmFDb250YWN0Q2FyZDpFOHIsZmFWY2FyZDpJOHIsZmFGYWNlTWVoOlBJZSxmYU1laDpQOHIsZmFNYXA6TjhyLGZhSGFuZFBvaW50RG93bjpPOHIsZmFGYWNlTWVoQmxhbms6TkllLGZhTWVoQmxhbms6UjhyLGZhRmFjZUdyaW5Ub25ndWU6T0llLGZhR3JpblRvbmd1ZTpGOHIsZmFGdXRib2w6c3VlLGZhRnV0Ym9sQmFsbDpCOHIsZmFTb2NjZXJCYWxsOkg4cixmYUZhY2VTdXJwcmlzZTpSSWUsZmFTdXJwcmlzZTpxOHIsZmFGb2xkZXI6RkllLGZhRm9sZGVyQmxhbms6VjhyLGZhQ2xvdWQ6ajhyLGZhQ2lyY2xlOlU4cixmYUZhY2VHcmluU3F1aW50OkJJZSxmYUdyaW5TcXVpbnQ6VzhyLGZhQ2lyY2xlVXNlcjpISWUsZmFVc2VyQ2lyY2xlOkc4cixmYVJlY3RhbmdsZUxpc3Q6cUllLGZhTGlzdEFsdDpZOHIsZmFIYW5kOlZJZSxmYUhhbmRQYXBlcjpLOHIsZmFUaHVtYnNVcDpaOHIsZmFCdWlsZGluZzpROHIsZmFDaGVzc1Jvb2s6WDhyLGZhQ2lyY2xlUXVlc3Rpb246akllLGZhUXVlc3Rpb25DaXJjbGU6SjhyLGZhRmlsZTplN3IsZmFGYWNlU2FkQ3J5OlVJZSxmYVNhZENyeTp0N3IsZmFDYWxlbmRhck1pbnVzOnI3cixmYUZhY2VUaXJlZDpXSWUsZmFUaXJlZDphN3IsZmFIYW5kUG9pbnRSaWdodDppN3IsZmFDaXJjbGVVcDpHSWUsZmFBcnJvd0FsdENpcmNsZVVwOnM3cixmYUhhbmRTY2lzc29yczpuN3IsZmFHZW06bzdyLGZhUmVjdGFuZ2xlWG1hcms6a18sZmFSZWN0YW5nbGVUaW1lczpsN3IsZmFUaW1lc1JlY3RhbmdsZTpjN3IsZmFXaW5kb3dDbG9zZTpkN3IsZmFUcmFzaENhbjp6XyxmYVRyYXNoQWx0OnU3cixmYUxpZmVSaW5nOnA3cixmYUNvcHlyaWdodDpmN3IsZmFDaXJjbGVMZWZ0OllJZSxmYUFycm93QWx0Q2lyY2xlTGVmdDpoN3IsZmFDYWxlbmRhcjptN3IsZmFGYWNlRnJvd25PcGVuOktJZSxmYUZyb3duT3BlbjpnN3IsZmFDaGFydEJhcjpaSWUsZmFCYXJDaGFydDpiN3IsZmFIb3VzZTpTXyxmYUhvbWU6eDdyLGZhSG9tZUFsdDp2N3IsZmFIb21lTGdBbHQ6eTdyLGZhRmFjZUZyb3duOlFJZSxmYUZyb3duOnc3cixmYVVzZXI6bnVlLGZhVXNlckFsdDprN3IsZmFVc2VyTGFyZ2U6UzdyLGZhU25vd2ZsYWtlOk03cixmYUJvb2ttYXJrOkM3cixmYVNxdWFyZUNhcmV0TGVmdDpYSWUsZmFDYXJldFNxdWFyZUxlZnQ6ejdyLGZhSGFuZHNoYWtlOm91ZSxmYUhhbmRzaGFrZUFsdDpfN3IsZmFIYW5kc2hha2VTaW1wbGU6VDdyLGZhRmFjZVNtaWxlV2luazpKSWUsZmFTbWlsZVdpbms6TDdyLGZhRmFjZUdyaW5TcXVpbnRUZWFyczplUGUsZmFHcmluU3F1aW50VGVhcnM6RDdyLGZhRmlsZUF1ZGlvOiQ3cixmYUNhbGVuZGFyWG1hcms6dFBlLGZhQ2FsZW5kYXJUaW1lczpBN3IsZmFDaXJjbGVEb3duOnJQZSxmYUFycm93QWx0Q2lyY2xlRG93bjpFN3IsZmFGaWxlTGluZXM6bHVlLGZhRmlsZUFsdDpJN3IsZmFGaWxlVGV4dDpQN3IsZmFDb21tZW50czpON3IsZmFDaXJjbGVDaGVjazpfXyxmYUNoZWNrQ2lyY2xlOk83cixmYU1vb246UjdyLGZhQ2xvc2VkQ2FwdGlvbmluZzpGN3IsZmFJbWFnZXM6QjdyLGZhQ2lyY2xlUmlnaHQ6YVBlLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpIN3IsZmFJZENhcmQ6aVBlLGZhRHJpdmVyc0xpY2Vuc2U6cTdyLGZhQ2lyY2xlUGxheTpzUGUsZmFQbGF5Q2lyY2xlOlY3cixmYUZhY2VMYXVnaEJlYW06blBlLGZhTGF1Z2hCZWFtOmo3cixmYUFkZHJlc3NCb29rOm9QZSxmYUNvbnRhY3RCb29rOlU3cixmYUhvdXJnbGFzczpsUGUsZmFIb3VyZ2xhc3NFbXB0eTpXN3IsZmFIZWFkcGhvbmVzOmN1ZSxmYUhlYWRwaG9uZXNBbHQ6RzdyLGZhSGVhZHBob25lc1NpbXBsZTpZN3IsZmFGaWxlUG93ZXJwb2ludDpLN3IsZmFXaW5kb3dNYXhpbWl6ZTpaN3IsZmFDb21tZW50RG90czpjUGUsZmFDb21tZW50aW5nOlE3cixmYUZhY2VHcmluVG9uZ3VlV2luazpkUGUsZmFHcmluVG9uZ3VlV2luazpYN3IsZmFIb3VyZ2xhc3NIYWxmOnVQZSxmYUhvdXJnbGFzczI6SjdyLGZhQ3JlZGl0Q2FyZDpwUGUsZmFDcmVkaXRDYXJkQWx0OmU5cixmYUhhbmRTcG9jazp0OXIsZmFCZWxsU2xhc2g6cjlyLGZhU3RhcjphOXIsZmFGbGFnOmk5cixmYUxlbW9uOnM5cixmYVdpbmRvd1Jlc3RvcmU6bjlyLGZhRmFjZUdyaW5IZWFydHM6ZlBlLGZhR3JpbkhlYXJ0czpvOXIsZmFGYWNlS2lzc0JlYW06aFBlLGZhS2lzc0JlYW06bDlyLGZhRmlsZVBkZjpjOXIsZmFGYWNlR3JpbldpZGU6bVBlLGZhR3JpbkFsdDpkOXIsZmFGYWNlTGF1Z2hTcXVpbnQ6Z1BlLGZhTGF1Z2hTcXVpbnQ6dTlyLGZhRmFjZUtpc3NXaW5rSGVhcnQ6YlBlLGZhS2lzc1dpbmtIZWFydDpwOXIsZmFDb3B5OnV1ZSxmYUNoZXNzS2luZzpmOXIsZmFTcXVhcmVQbHVzOnhQZSxmYVBsdXNTcXVhcmU6aDlyLGZhRmlsZUNvZGU6bTlyLGZhRmFjZUdyaW5XaW5rOnZQZSxmYUdyaW5XaW5rOmc5cixmYU1vbmV5QmlsbDE6eVBlLGZhTW9uZXlCaWxsQWx0OmI5cixmYUV5ZVNsYXNoOng5cixmYUZpbGVXb3JkOnY5cixmYUZhY2VBbmdyeTp3UGUsZmFBbmdyeTp5OXIsZmFDaGVzc0tuaWdodDp3OXIsZmFGYWNlR3JpbkJlYW06a1BlLGZhR3JpbkJlYW06azlyLGZhSGFuZFBlYWNlOlM5cixmYUNvbXBhc3M6TTlyLGZhU3F1YXJlOkM5cixmYUZhY2VHcmluOlNQZSxmYUdyaW46ejlyLGZhRmFjZVNtaWxlOk1QZSxmYVNtaWxlOl85cixmYUZhY2VTbWlsZUJlYW06Q1BlLGZhU21pbGVCZWFtOlQ5cixmYUZvbGRlckNsb3NlZDpMOXIsZmFLZXlib2FyZDpEOXIsZmFGYWNlUm9sbGluZ0V5ZXM6elBlLGZhTWVoUm9sbGluZ0V5ZXM6JDlyLGZhRmFjZUdyaW1hY2U6X1BlLGZhR3JpbWFjZTpBOXIsZmFDaXJjbGVEb3Q6VFBlLGZhRG90Q2lyY2xlOkU5cixmYU9iamVjdEdyb3VwOkk5cixmYUZhY2VGbHVzaGVkOkxQZSxmYUZsdXNoZWQ6UDlyLGZhU3RhckhhbGZTdHJva2U6RFBlLGZhU3RhckhhbGZBbHQ6TjlyLGZhRmlsZVZpZGVvOk85cixmYUZhY2VMYXVnaDokUGUsZmFMYXVnaDpSOXIsZmFIYW5kUG9pbnRlcjpGOXIsZmFSZWdpc3RlcmVkOkI5cn19KTt2YXIgUEVhLHE5cixWOXIsajlyLFU5cixXOXIsRzlyLFk5cixLOXIsWjlyLFE5cixwdWUsWDlyLEo5cixlZ3IsdGdyLEFQZSxyZ3IsRVBlLGFncixpZ3Isc2dyLElQZSxuZ3Isb2dyLGxncixjZ3Isal8sZGdyLHVncixQUGUscGdyLGZncixoZ3IsbWdyLGdncixiZ3IseGdyLHZncixOUGUseWdyLHdncixrZ3IsT1BlLFNncixNZ3IsQ2dyLHpncixfZ3IsVV8sVGdyLFJQZSxMZ3IsRGdyLGZ1ZSwkZ3IsQWdyLEZQZSxFZ3IsQlBlLElncixQZ3IsSFBlLE5ncixxUGUsT2dyLFZQZSxSZ3IsRmdyLEJncixIZ3IscWdyLFZncixqZ3IsalBlLFVncixXZ3IsR2dyLFlncixVUGUsS2dyLFpncixRZ3IsWGdyLEpncixlYnIsaHVlLHRicixyYnIsYWJyLG11ZSxpYnIsc2JyLG5icixXUGUsb2JyLGxicixjYnIsZGJyLEdQZSx1YnIsY3BlLHBicixkcGUsZmJyLGhicixZUGUsbWJyLEtQZSxnYnIsYmJyLGd1ZSx4YnIsdmJyLHlicix3YnIsa2JyLFNicixNYnIsQ2JyLHVwZSxXXyx6YnIsX2JyLFpQZSxUYnIsTGJyLFRfLERiciwkYnIsQWJyLFFQZSxFYnIsSWJyLFBicixYUGUsTmJyLEpQZSxPYnIsUmJyLEZicixCYnIsZU5lLEhicixxYnIsVmJyLHROZSxqYnIsck5lLFVicixXYnIsR2JyLFlicixidWUsS2JyLFpicixRYnIsWGJyLEpicixleHIsdHhyLGFOZSxyeHIsYXhyLGl4cixzeHIsbnhyLGlOZSxveHIsbHhyLExfLGN4cixkeHIsdXhyLHB4cixmeHIsaHhyLHh1ZSxteHIsZ3hyLGJ4cix4eHIsdnhyLHNOZSx5eHIsd3hyLGt4cixTeHIsTXhyLEN4cixuTmUsenhyLF94cixUeHIsTHhyLG9OZSxEeHIsJHhyLEF4cixsTmUsRXhyLEl4cixjTmUsUHhyLGROZSxOeHIsT3hyLHVOZSxSeHIsRnhyLHBOZSxCeHIsZk5lLEh4cixxeHIsR18sVnhyLFlfLGp4cixVeHIsdnVlLFd4cixHeHIsWXhyLGhOZSxLeHIsWnhyLG1OZSxReHIsWHhyLEp4cixldnIsZ05lLHR2cixydnIsYXZyLGl2cixzdnIsYk5lLG52cixvdnIsbHZyLGN2cix4TmUsZHZyLHZOZSx1dnIscHZyLGZ2cixodnIsbXZyLHlOZSxndnIsYnZyLHh2cix2dnIsd05lLHl2cix3dnIsa05lLGt2cixTTmUsU3ZyLE12cixDdnIsenZyLF92cixUdnIsTU5lLEx2cixEdnIsJHZyLEF2cixFdnIsQ05lLEl2cixQdnIsTnZyLE92cix6TmUsUnZyLF9OZSxGdnIscHBlLGZwZSxUTmUsQnZyLExOZSxIdnIscXZyLFZ2cixuVCxETmUsanZyLFV2cixXdnIsR3ZyLFl2cixLdnIsJE5lLFp2cixocGUsUXZyLFh2cixKdnIsZXlyLHR5cixBTmUscnlyLEVOZSxheXIsaXlyLHN5cixueXIsSU5lLG95cix5dWUsbHlyLGN5cixkeXIsUE5lLHV5cixweXIsZnlyLGh5cixOTmUsbXlyLGd5cixieXIseHlyLE9OZSx2eXIseXlyLHd5cixreXIsU3lyLE15cixDeXIsenlyLF95cixUeXIsTHlyLER5ciwkeXIsUk5lLEF5cixFeXIsSXlyLFB5cixOeXIsT3lyLFJ5cixGTmUsRnlyLEJ5cixIeXIsX3kscXlyLFZ5cixqeXIsVXlyLFd5cixCTmUsR3lyLEhOZSxZeXIscU5lLEt5cixWTmUsWnlyLGpOZSxReXIsS18sWHlyLFVOZSxKeXIsV05lLGV3cixHTmUsdHdyLHJ3cixhd3IsaXdyLFlOZSxzd3IsbndyLEtOZSxvd3IsbHdyLFpOZSxjd3IsZHdyLHV3cixwd3IsUU5lLGZ3cixod3IsbXdyLFhOZSxnd3IsYndyLERfLHh3cix2d3IseXdyLHd3cixrd3IsU3dyLEpOZSxNd3IsZU9lLEN3cix6d3IsX3dyLHRPZSxUd3IsTHdyLER3cixyT2UsJHdyLGFPZSxBd3Isd3VlLEV3cixJd3IsUHdyLE53cixPd3IsUndyLEZ3cixCd3IsSHdyLHF3cixWd3IsandyLFV3cixXd3IsJF8sR3dyLFl3cixLd3IsWndyLFF3cixYd3IsSndyLGVrcixpT2UsdGtyLHJrcixha3IsaWtyLHNrcixua3Isb2tyLGxrcixja3IsZGtyLHNPZSx1a3IscGtyLGZrcixoa3IsbWtyLGdrcixia3Isbk9lLHhrcixvT2UsdmtyLHlrcixsT2Usd2tyLGtrcixTa3IsTWtyLGNPZSxDa3IsemtyLF9rcixkT2UsVGtyLHVPZSxMa3IsRGtyLHBPZSwka3IsQWtyLEVrcixJa3IsZk9lLFBrcixOa3IsT2tyLG1wZSxSa3IsRmtyLEJrcixoT2UsSGtyLHFrcixWa3IsamtyLFVrcixtT2UsV2tyLEdrcixZa3IsS2tyLFprcixnT2UsUWtyLFhrcixKa3IsYk9lLGVTcix0U3Isa3VlLHJTcixhU3IsaVNyLHNTcix4T2UsblNyLG9TcixsU3Isdk9lLGNTcix5T2UsZFNyLHVTcixwU3IsZlNyLFpfLGhTcix3T2UsbVNyLGdTcixiU3IseFNyLHZTcixrT2UseVNyLFNPZSx3U3IsTU9lLGtTcixTU3IsU3VlLE1TcixDU3IsQ09lLHpTcixNdWUsX1NyLFRTcixMU3IsRFNyLCRTcixBU3IsRVNyLElTcix6T2UsUFNyLE5TcixPU3IsUlNyLEZTcixfT2UsQlNyLEhTcixxU3IsVE9lLFZTcixMT2UsalNyLERPZSxVU3IsV1NyLEdTcixZU3IsS1NyLFpTcixRU3IsJE9lLFhTcixKU3IsZU1yLHRNcixBT2Usck1yLGFNcixpTXIsc01yLG5NcixvTXIsRU9lLGxNcixjTXIsSU9lLGRNcix1TXIsUE9lLHBNcixmTXIsaE1yLG1NcixOT2UsZ01yLGJNcix4TXIsT09lLHZNcixST2UseU1yLHdNcixrTXIsU01yLEZPZSxNTXIsQ01yLHpNcixfTXIsVE1yLEJPZSxMTXIsSE9lLERNcixxT2UsJE1yLEFNcixWT2UsRU1yLGpPZSxJTXIsUE1yLE5NcixPTXIsUk1yLEZNcixCTXIsSE1yLHFNcixWTXIsak1yLEN1ZSxVTXIsV01yLCR5LEdNcixZTXIsS01yLHp1ZSxaTXIsUU1yLFhNcixKTXIsZUNyLHRDcixyQ3IsVU9lLGFDcixXT2UsaUNyLHNDcixuQ3IsR09lLG9DcixZT2UsbENyLGNDcixfdWUsZENyLHVDcixwQ3IsZkNyLFR5LGhDcixtQ3IsZ0NyLGJDcix4Q3IsdkNyLHlDcixLT2Usd0NyLGtDcixTQ3IsTUNyLFpPZSxDQ3IsekNyLF9DcixUQ3IsTENyLERDciwkQ3IsUU9lLEFDcixFQ3IsSUNyLFBDcixOQ3IsT0NyLFhPZSxSQ3IsZ3BlLEpPZSxGQ3IsQkNyLEhDcixlUmUscUNyLHRSZSxWQ3IsakNyLFVDcixyUmUsV0NyLEdDcixhUmUsWUNyLEtDcixaQ3IsUUNyLGlSZSxYQ3IsSkNyLGV6cix0enIscnpyLGF6cixzUmUsaXpyLHN6cixicGUsbnpyLG96cixuUmUsbHpyLGN6cixkenIsQV8sdXpyLHB6cixmenIsaHpyLEVfLG16cixnenIsYnpyLHh6cix2enIseXpyLG9SZSx3enIsVHVlLGt6cixTenIsTXpyLGxSZSxDenIsenpyLF96cixUenIsTHpyLER6ciwkenIsY1JlLEF6cix4cGUsRXpyLEl6cixQenIsZFJlLE56cix1UmUsT3pyLFJ6cixwUmUsRnpyLElfLEJ6cixIenIscXpyLFZ6cixqenIsVXpyLFd6cixHenIsWXpyLGZSZSxLenIsWnpyLFF6cixYenIsTHVlLEp6cixlX3IsaFJlLHRfcixyX3IsYV9yLG1SZSxpX3Isc19yLG5fcixnUmUsb19yLGxfcixjX3IsZF9yLHVfcixwX3IsZl9yLGhfcixtX3IsYlJlLGdfcix4UmUsYl9yLHhfcix2X3IseV9yLHdfcixrX3IsU19yLHZSZSxNX3IsQ19yLHpfcix5UmUsX19yLFRfcix3UmUsTF9yLGtSZSxEX3IsU1JlLCRfcixBX3IsRV9yLE1SZSxJX3IsQ1JlLFBfcix6UmUsTl9yLE9fcixfUmUsUl9yLFRSZSxGX3IsTFJlLEJfcixIX3IsRFJlLHFfcixWX3Isal9yLFVfcixXX3IsR19yLFlfcixLX3IsWl9yLFFfciwkUmUsWF9yLEFSZSxKX3IsRVJlLGVUcix0VHIsdnBlLHJUcixJUmUsYVRyLGlUcixzVHIsUFJlLG5UcixvVHIsTlJlLGxUcixRXyxjVHIsZFRyLHVUcixPUmUscFRyLFJSZSxmVHIsaFRyLEZSZSxtVHIsQlJlLGdUcixIUmUsYlRyLHhUcix2VHIseVRyLHdUcixxUmUsa1RyLFZSZSxTVHIsTVRyLENUcix6VHIsalJlLF9UcixUVHIsTFRyLFVSZSxEVHIsJFRyLEFUcixXUmUsRVRyLElUcixQVHIsTlRyLEdSZSxPVHIsUlRyLFlSZSxGVHIsQlRyLEhUcixLUmUscVRyLFZUcixqVHIsWlJlLFVUcixRUmUsV1RyLER1ZSxHVHIsWVRyLEtUcixYUmUsWlRyLFFUcixYVHIsSlJlLEpUcixlTHIsdExyLGVGZSxyTHIsYUxyLGlMcixzTHIsbkxyLG9McixsTHIsY0xyLGRMcix1THIscExyLGZMcix0RmUsaExyLHlwZSxtTHIsckZlLGdMcixiTHIseExyLHZMcixhRmUseUxyLHdMcixrTHIsU0xyLE1McixDTHIsekxyLFBfLF9McixUTHIsTExyLERMcixYXywkTHIsaUZlLEFMcixFTHIsSUxyLHNGZSxQTHIsTkxyLG5GZSxPTHIsUkxyLEZMcixCTHIsSExyLG9GZSxxTHIsbEZlLFZMcixqTHIsVUxyLGNGZSxXTHIsR0xyLFlMcixkRmUsS0xyLFpMcixRTHIsWExyLEpMcixlRHIsdERyLHVGZSxyRHIsd3BlLGFEcixpRHIsc0RyLHBGZSxuRHIsb0RyLGZGZSxsRHIsaEZlLGNEcixkRHIsdURyLG1GZSxwRHIsZ0ZlLGZEcixiRmUsaERyLG1Ecix4RmUsZ0RyLGJEcix4RHIsdkRyLHZGZSx5RHIsTl8sd0RyLGtEcixTRHIsTURyLHlGZSxDRHIsd0ZlLHpEcixfRHIsVERyLExEcixrRmUsRERyLE9fLCREcixBRHIsRURyLFNGZSxJRHIsUERyLE5EcixPRHIsTUZlLFJEcixDRmUsRkRyLEJEcixIRHIsekZlLHFEcixfRmUsVkRyLGpEcixURmUsVURyLExGZSxXRHIsREZlLEdEciwkRmUsWURyLEtEcixaRHIsUURyLEFGZSxYRHIsSkRyLGUkcix0JHIsciRyLGEkcixpJHIscyRyLEVGZSxuJHIsSUZlLG8kcixsJHIsYyRyLGQkcixQRmUsdSRyLHAkciwkdWUsZiRyLGgkcixtJHIsZyRyLGIkcix4JHIsdiRyLFJfLHkkcix3JHIsayRyLFMkcixNJHIsQyRyLHokcixfJHIsVCRyLEwkcixEJHIsJCRyLEEkcixBdWUsRSRyLEkkcixQJHIsTiRyLE8kcixSJHIsTkZlLEYkcixPRmUsQiRyLEgkcixxJHIsRXVlLFYkcixqJHIsVSRyLFJGZSxXJHIsSXVlLEckcixZJHIsSyRyLFokcixrcGUsUHVlLFEkcixYJHIsRkZlLEokcixlQXIsdEFyLHJBcixCRmUsYUFyLGlBcixIRmUsc0FyLG5BcixxRmUsb0FyLGxBcixjQXIsZEFyLHVBcixwQXIsTnVlLGZBcixoQXIsVkZlLG1BcixnQXIsYkFyLHhBcix2QXIseUFyLHdBcixrQXIsakZlLFNBcixNQXIsVUZlLENBcixXRmUsekFyLF9BcixFcCxUQXIsTEFyLERBciwkQXIsR0ZlLEFBcixFQXIsSUFyLFBBcixZRmUsTkFyLEtGZSxPQXIsT3VlLFJBcixGQXIsQkFyLFpGZSxIQXIsU3BlLHFBcixWQXIsUUZlLGpBcixSdWUsVUFyLFdBcixHQXIsWUFyLEtBcixaQXIsSl8sUUFyLFhBcixYRmUsSkFyLGVFcix0RXIsSkZlLHJFcixlQmUsYUVyLEZfLGlFcixzRXIsbkVyLG9FcixsRXIsY0VyLGRFcix0QmUsdUVyLHBFcixyQmUsZkVyLGFCZSxoRXIsaUJlLG1FcixnRXIsYkVyLHhFcix2RXIseUVyLHNCZSx3RXIsa0VyLFNFcixNRXIsQ0VyLG5CZSx6RXIsb0JlLF9FcixsQmUsVEVyLExFcixERXIsRnVlLCRFcixBRXIsRUVyLElFcixQRXIsY0JlLE5FcixkQmUsT0VyLFJFcixGRXIsQkVyLHVCZSxIRXIscEJlLHFFcixWRXIsQnVlLGpFcixVRXIsV0VyLEdFcixZRXIsZkJlLEtFcixaRXIsaEJlLFFFcixtQmUsWEVyLEpFcixlSXIsdElyLHJJcixhSXIsaUlyLHNJcixuSXIsb0lyLGdCZSxsSXIsY0lyLGRJcix1SXIsSHVlLHBJcixmSXIsaElyLG1JcixiQmUsZ0lyLGJJcix4QmUseElyLHZJcix5SXIsd0lyLHZCZSxrSXIsU0lyLE1JcixlVCxDSXIseklyLHF1ZSxfSXIsVElyLHlCZSxMSXIsRElyLCRJcixBSXIsRUlyLHdCZSxJSXIsUElyLGtCZSxOSXIsU0JlLE9JcixSSXIsRklyLEJJcixISXIsTUJlLHFJcixDQmUsVklyLHpCZSxqSXIsVUlyLFdJcixHSXIsX0JlLFlJcixLSXIsVEJlLFpJcixRSXIsWElyLExCZSxKSXIsZVByLFZ1ZSx0UHIsclByLERCZSxhUHIsJEJlLGlQcixBQmUsc1ByLE1wZSxFQmUsblByLElCZSxvUHIsbFByLGNQcixkUHIsdVByLHBQcixqdWUsZlByLGhQcixtUHIsUEJlLGdQcixiUHIseFByLFV1ZSx2UHIseVByLHdQcixrUHIsV3VlLFNQcixNUHIsQ1ByLHpQcixOQmUsX1ByLE9CZSxUUHIsTFByLERQciwkUHIsQVByLEd1ZSxFUHIsSVByLFBQcixOUHIsT1ByLFJQcixZdWUsRlByLEJQcixIUHIsUkJlLHFQcixWUHIsalByLFVQcixGQmUsV1ByLEdQcixZUHIsS1ByLFpQcixRUHIsQkJlLFhQcixKUHIsZU5yLHROcixIQmUsck5yLGFOcixCXyxpTnIsc05yLG5OcixxQmUsb05yLGxOcixjTnIsZE5yLHVOcixwTnIsZk5yLGhOcixtTnIsVkJlLGdOcixiTnIsakJlLHhOcix2TnIseU5yLFVCZSx3TnIsa05yLFNOcixNTnIsQ05yLFdCZSx6TnIsQ3BlLEdCZSxfTnIsVE5yLExOcixETnIsJE5yLFlCZSxBTnIsRU5yLElOcixQTnIsTk5yLEtCZSxPTnIsUk5yLEZOcixCTnIsSE5yLEt1ZSxxTnIsVk5yLGpOcixVTnIsV05yLFpCZSxHTnIsUUJlLFlOcixLTnIsWk5yLFp1ZSxRTnIsWE5yLEpOcixYQmUsZU9yLEpCZSx0T3Isck9yLGFPcixpT3Isc09yLG5PcixlSGUsb09yLGxPcix0SGUsY09yLHJIZSxkT3IsYUhlLHVPcixwT3IsaUhlLGZPcixzSGUsaE9yLG1PcixnT3IsYk9yLHhPcix2T3IseU9yLHdPcixrT3IsbkhlLFNPcixNT3IsUXVlLENPcix6T3Isb0hlLF9PcixUT3IsTE9yLGxIZSxET3IsJE9yLEFPcixFT3IsY0hlLElPcixQT3IsTk9yLE9PcixST3IsZEhlLEZPcixCT3IsSE9yLFh1ZSxxT3IsVk9yLGpPcixVT3IsV09yLEdPcixKdWUsWU9yLEtPcixaT3IsdUhlLFFPcixwSGUsWE9yLEpPcixlUnIsdFJyLGZIZSxyUnIsaEhlLGFScixpUnIsbUhlLHNScixuUnIsZ0hlLG9ScixsUnIsY1JyLGRScixiSGUsdVJyLHBScixmUnIsaFJyLHRULG1Scix6cGUsZ1JyLGJScix4UnIsdlJyLHhIZSx5UnIsdkhlLHdScixrUnIsU1JyLE1ScixIXyxDUnIselJyLF9ScixxXyxUUnIsTFJyLERScix5SGUsJFJyLEFScixlcGUsRVJyLElScixQUnIsTlJyLHdIZSxPUnIsUlJyLEZScixrSGUsQlJyLEhScixxUnIsVlJyLGpScixTSGUsVVJyLHRwZSxXUnIsR1JyLFlScixLUnIsWlJyLFFScixNSGUsWFJyLENIZSxKUnIsekhlLGVGcix0RnIsX0hlLHJGcixfcGUsVEhlLGFGcixpRnIsc0ZyLExIZSxuRnIsb0ZyLFRwZSxESGUsbEZyLGNGcixkRnIsdUZyLEx5LHBGcixmRnIsaEZyLG1GciwkSGUsZ0ZyLGJGcix4RnIsQUhlLHZGcix5RnIsd0ZyLGtGcixFSGUsU0ZyLE1GcixDRnIsekZyLF9GcixycGUsVEZyLExGcixyVCxERnIsSUhlLCRGcixQSGUsQUZyLEVGcixJRnIsUEZyLE5IZSxORnIsT0ZyLFJGcixGRnIsT0hlLEJGcixIRnIscUZyLFJIZSxWRnIsakZyLFVGcixXRnIsRkhlLEdGcixZRnIsS0ZyLEJIZSxaRnIsUUZyLFhGcixhVCxKRnIsZUJyLEhIZSx0QnIscUhlLHJCcixWSGUsYUJyLGpIZSxpQnIsc0JyLFVIZSxuQnIsb0JyLGxCcixjQnIsZEJyLHVCcixXSGUscEJyLGZCcixHSGUsaEJyLG1CcixZSGUsZ0JyLGJCcix4QnIsS0hlLHZCcix5QnIsd0JyLGtCcixTQnIsRHksTUJyLENCcix6QnIsX0JyLFRCcixMQnIsREJyLCRCcixBQnIsRUJyLElCcixQQnIsTkJyLE9CcixSQnIsRkJyLEJCcixaSGUsSEJyLHFCcixWQnIsakJyLFFIZSxVQnIsV0JyLEdCcixWXyxZQnIsS0JyLFpCcixRQnIsWEJyLFhIZSxKQnIsaVQsZUhyLHRIcixySHIsSkhlLGFIcixpSHIsc0hyLG5IcixlcWUsb0hyLGxIcix0cWUsY0hyLGRIcix1SHIscnFlLHBIcixmSHIsYXFlLGhIcixpcWUsbUhyLGdIcixiSHIseEhyLHZIcixzcWUseUhyLHdIcixrSHIsbnFlLFNIcixNSHIsQ0hyLHpIcixfSHIsVEhyLExIcixvcWUsREhyLGxxZSwkSHIsY3FlLEFIcixhcGUsRUhyLElIcixkcWUsUEhyLHVxZSxOSHIscHFlLE9IcixSSHIsRkhyLEJIcixISHIscUhyLGZxZSxWSHIsaHFlLGpIcixVSHIsV0hyLEdIcixZSHIsbXFlLEtIcixncWUsWkhyLGJxZSxRSHIseHFlLFhIcixKSHIsZXFyLHRxcix2cWUscnFyLGFxcixpcGUsaXFyLHNxcix5cWUsbnFyLG9xcixscXIsY3FyLHdxZSxkcXIsdXFyLHBxcixmcXIsa3FlLGhxcixBeSxtcXIsZ3FyLFNxZSxicXIsTXFlLHhxcix2cXIseXFyLHNwZSx3cXIsa3FyLFNxcixDcWUsTXFyLHpxZSxDcXIsX3FlLHpxcixUcWUsX3FyLFRxcixMcXIsRHFyLCRxcixBcXIsRXFyLG5wZSxJcXIsUHFyLE5xcixPcXIsUnFyLExxZSxGcXIsQnFyLEhxcixxcXIsVnFyLGpxcixEcWUsVXFyLFdxciwkcWUsR3FyLFlxcixvcGUsS3FyLFpxcixRcXIsc1QsWHFyLEpxcixlVnIsQXFlLHRWcixFcWUsclZyLGFWcixpVnIsc1ZyLG5WcixJcWUsb1ZyLGxWcixjVnIsZFZyLHVWcixscGUscFZyLGZWcixoVnIsbVZyLGdWcixQcWUsYlZyLE5xZSx4VnIsdlZyLE9xZSx5VnIsUnFlLHdWcixGcWUsa1ZyLEJxZSxTVnIsTVZyLEhxZSxDVnIselZyLF9WcixUVnIsTFZyLERWcixORWEsJFZyPXUoKCk9PntQRWE9ImZhcyIscTlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjAiLGljb246WzMyMCw1MTIsW10sIjMwIiwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJzMTYwIDcxLjYgMTYwIDE2MGwwIDEyOGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwTDAgMTkyek0xNjAgOTZjLTUzIDAtOTYgNDMtOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2eiJdfSxWOXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMSIsaWNvbjpbMjU2LDUxMixbXSwiMzEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDY0IDAgMCAzMjAtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sajlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjIiLGljb246WzM4NCw1MTIsW10sIjMyIiwiTTQ4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE3MSAwYzYwLjIgMCAxMDkgNDguOCAxMDkgMTA5IDAgNDMuOC0yNi4yIDgzLjMtNjYuNCAxMDAuNGwtMTM5LjEgNTlDMTE5IDMxNS40IDk2IDM1MC4yIDk2IDM4OC43bDAgMjcuMyAyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuM2MwLTY0LjIgMzguNC0xMjIuMiA5Ny41LTE0Ny4zbDEzOS4xLTU5YzE2LjYtNy4xIDI3LjQtMjMuNCAyNy40LTQxLjQgMC0yNC45LTIwLjItNDUtNDUtNDVMODAgOTZDNjIuMyA5NiA0OCA4MS43IDQ4IDY0eiJdfSxVOXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMyIsaWNvbjpbMzIwLDUxMixbXSwiMzMiLCJNODAgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOCAwIDM4LjItMTYuOCA3Mi41LTQzLjMgOTYgMjYuNiAyMy41IDQzLjMgNTcuOCA0My4zIDk2IDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4TDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NEw4MCAyODh6Il19LFc5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiI0IixpY29uOlszODQsNTEyLFtdLCIzNCIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjI0LTE5MiAwIDAtMjI0eiJdfSxHOXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiNSIsaWNvbjpbMzIwLDUxMixbXSwiMzUiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDAgMCAxMTIgMTIwIDBjNzUuMSAwIDEzNiA2MC45IDEzNiAxMzZTMjU5LjEgNDgwIDE4NCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE1MiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcyTDMyIDI3MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA2NHoiXX0sWTlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjYiLGljb246WzM4NCw1MTIsW10sIjM2IiwiTTI1NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODggMGMtNDguNiAwLTg4IDM5LjQtODggODhsMCAzMi4yYzIyLjktMTUuMyA1MC40LTI0LjIgODAtMjQuMmw0OCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzI4Ny41IDQ4MCAyMDggNDgwbC00OCAwQzgwLjUgNDgwIDE2IDQxNS41IDE2IDMzNmwwLTE1MkMxNiAxMDAuMSA4NC4xIDMyIDE2OCAzMmw4OCAwek04MCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6Il19LEs5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiI3IixpY29uOlszMjAsNTEyLFtdLCIzNyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI1NiAwYzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTIyNCAzODRjLTguOSAxNS4zLTI4LjUgMjAuNC00My44IDExLjVzLTIwLjQtMjguNS0xMS41LTQzLjhMMjMyLjMgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sWjlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjgiLGljb246WzMyMCw1MTIsW10sIjM4IiwiTTMwNCAxNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTMyIDBjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4IDAgMzQuNiAxMy43IDY2IDM2IDg5LTMxLjUgMjMuMy01MiA2MC44LTUyIDEwMyAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw2NCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDIuMi0yMC41LTc5LjctNTItMTAzIDIyLjMtMjMgMzYtNTQuNCAzNi04OXpNMTc2LjEgMjg4bDE1LjkgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OC4xIDB6bTAtNjRMMTQ0IDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDM1LjMtMjguNiA2NC02NCA2NHoiXX0sUTlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjkiLGljb246WzM4NCw1MTIsW10sIjM5IiwiTTIwOCAzMjBjMjkuNiAwIDU3LjEtOC45IDgwLTI0LjJsMCAzMi4yYzAgNDguNi0zOS40IDg4LTg4IDg4TDk2IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMDQgMGM4My45IDAgMTUyLTY4LjEgMTUyLTE1MmwwLTE1Mi4xQzM1MS45IDk2LjQgMjg3LjUgMzIgMjA4IDMybC00OCAwQzgwLjUgMzIgMTYgOTYuNSAxNiAxNzZTODAuNSAzMjAgMTYwIDMyMGw0OCAwem04MC0xNDRjMCA0NC4yLTM1LjggODAtODAgODBsLTQ4IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwczM1LjgtODAgODAtODBsNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MHoiXX0scHVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvbGxhci1zaWduIixpY29uOlszMjAsNTEyLFsxMjgxNzgsNjE3ODEsImRvbGxhciIsInVzZCJdLCIyNCIsIk0xMzYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTExNC45IDBjLTI0LjkgMC00NS4xIDIwLjItNDUuMSA0NS4xIDAgMjIuNSAxNi41IDQxLjUgMzguNyA0NC43bDkxLjYgMTMuMWM1My44IDcuNyA5My43IDUzLjcgOTMuNyAxMDggMCA2MC4zLTQ4LjkgMTA5LjEtMTA5LjEgMTA5LjFsLTEwLjkgMCAwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDAtNzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMzAuOSAwYzI0LjkgMCA0NS4xLTIwLjIgNDUuMS00NS4xIDAtMjIuNS0xNi41LTQxLjUtMzguNy00NC43bC05MS42LTEzLjFDNTUuOSAyNzMuNSAxNiAyMjcuNCAxNiAxNzMuMSAxNiAxMTIuOSA2NC45IDY0IDEyNS4xIDY0bDEwLjkgMCAwLTQweiJdfSxYOXI9cHVlLEo5cj1wdWUsZWdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvZyIsaWNvbjpbNTc2LDUxMixbMTI4MDIxXSwiZjZkMyIsIk0zMiAxMTJjMTYuNiAwIDMwLjIgMTIuNiAzMS44IDI4LjdsLjMgNi42QzY1LjggMTYzLjQgNzkuNCAxNzYgOTYgMTc2bDE3OS4xIDAgMTQwLjkgNjAuNCAwIDI0My42YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzMS4zQzI5NiAzNjEgMjY4LjggMzY4IDI0MCAzNjhzLTU2LTctODAtMTkuM0wxNjAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI0NS42Yy0zNy4zLTEzLjItNjQtNDguNi02NC05MC40IDAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTUuOC0zMmM3LjcgMCAxNC45IDMuNiAxOS42IDkuOEwzOTIgMCA0NDQuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFMNDk2IDMyIDU1MiAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgNDQuMi0zNS44IDgwLTgwIDgwbC02NCAwLTcgMjgtMTI0LjctNTMuNCAzMS42LTE0Ny4yQzMzNC4zLTIzLjkgMzQ0LjItMzIgMzU1LjgtMzJ6TTQ0OCA0NGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6Il19LHRncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb3ZpbmciLGljb246WzY0MCw1MTIsW10sImY0ZGYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQyNGMwIDQ4LjYgMzkuNCA4OCA4OCA4OCAyNS4yIDAgNDgtMTAuNiA2NC0yNy42IDE2IDE3IDM4LjggMjcuNiA2NCAyNy42IDQwLjMgMCA3NC4yLTI3LjEgODQuNy02NGwxMzQuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjQgNDMgMCA3OC45LTMwLjkgODYuNS03MS43IDIwLTEwLjggMzMuNS0zMiAzMy41LTU2LjNsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1NzYgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00ODAgMTkybDUwLjcgMCA0NS4zIDQ1LjMgMCA1MC43LTk2IDAgMC05NnpNODggMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMzkyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTIxNiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxBUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm90YXRlIixpY29uOls1MTIsNTEyLFsxMjgyNjAsInN5bmMtYWx0Il0sImYyZjEiLCJNNDgwLjEgMTkybDcuOSAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTQ0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMlM0NzcuOSAuMiA0NzEgN0w0MTkuMyA1OC44QzM3NSAyMi4xIDMxOCAwIDI1NiAwIDEyNyAwIDIwLjMgOTUuNCAyLjYgMjE5LjUgLjEgMjM3IDEyLjIgMjUzLjIgMjkuNyAyNTUuN3MzMy43LTkuNyAzNi4yLTI3LjFDNzkuMiAxMzUuNSAxNTkuMyA2NCAyNTYgNjQgMzAwLjQgNjQgMzQxLjIgNzkgMzczLjcgMTA0LjNMMzI3IDE1MWMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMzMzQuMyAxOTIgMzQ0IDE5MmwxMzYuMSAwem0yOS40IDEwMC41YzIuNS0xNy41LTkuNy0zMy43LTI3LjEtMzYuMnMtMzMuNyA5LjctMzYuMiAyNy4xYy0xMy4zIDkzLTkzLjQgMTY0LjUtMTkwLjEgMTY0LjUtNDQuNCAwLTg1LjItMTUtMTE3LjctNDAuM0wxODUgMzYxYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTc3LjcgMzIwIDE2OCAzMjBMMjQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ4OGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSA1MTEuOCA0MSA1MDVsNTEuOC01MS44QzEzNyA0ODkuOSAxOTQgNTEyIDI1NiA1MTIgMzg1IDUxMiA0OTEuNyA0MTYuNiA1MDkuNCAyOTIuNXoiXX0scmdyPUFQZSxFUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLW1pbnVzIixpY29uOls0NDgsNTEyLFs2MTc2NywibWludXMtc3F1YXJlIl0sImYxNDYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNzIgMjAwbDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sYWdyPUVQZSxpZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tanVzdGlmeSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzOSIsIk00NDggNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem0wIDI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQ0OCA0NDhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyeiJdfSxzZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItY2hlY2siLGljb246WzQ0OCw1MTIsW10sImYyNzQiLCJNMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0yMiAxNjEuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMTg5LjEgMzMxLjIgMTM3IDI3OS4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS45IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzQ3LjMgMTk1LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LElQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3MiLGljb246WzUxMiw1MTIsWzEyODUzNSwia2lzcyJdLCJmNTk2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgMjg4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni04MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxuZ3I9SVBlLG9ncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXRjaGVuLXNldCIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYSIsIk0yNDAgMTQ0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptNDQuNCAzMkMyNjkuOSAyNDAuMSAyMTIuNSAyODggMTQ0IDI4OCA2NC41IDI4OCAwIDIyMy41IDAgMTQ0UzY0LjUgMCAxNDQgMGM2OC41IDAgMTI1LjkgNDcuOSAxNDAuNCAxMTJsNzEuOCAwYzguOC05LjggMjEuNi0xNiAzNS44LTE2bDEwNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xMDQgMGMtMTQuMiAwLTI3LTYuMi0zNS44LTE2bC03MS44IDB6TTE0NCA4MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDAwIDI0MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOTYgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI4OCA0NjRsMC0xMTIgMjI0IDAgMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHpNNDggMzIwbDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xNiAwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDY0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwIDAgMzIgMTYgMHpNMjQgNDY0bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sbGdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRuYSIsaWNvbjpbMzg0LDUxMixbMTI5NTE2XSwiZjQ3MSIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDU3LjgtMjQuNCAxMDQuOC01Ny40IDE0NC41LTI0LjEgMjguOS01My44IDU1LjEtODMuNiA3OS41IDI5LjggMjQuNSA1OS41IDUwLjYgODMuNiA3OS41IDMzIDM5LjYgNTcuNCA4Ni43IDU3LjQgMTQ0LjUgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBDMCA0MjIuMiAyNC40IDM3NS4yIDU3LjQgMzM1LjUgODEuNSAzMDYuNiAxMTEuMiAyODAuNSAxNDEgMjU2IDExMS4yIDIzMS41IDgxLjUgMjA1LjQgNTcuNCAxNzYuNSAyNC40IDEzNi44IDAgODkuOCAwIDMyIDAgMTQuMyAxNC4zIDAgMzIgMFM2NCAxNC4zIDY0IDMybDI1NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yODMuNSAzODRsLTE4Mi45IDBjLTguMiAxMC41LTE1LjEgMjEuMS0yMC42IDMybDIyNC4yIDBjLTUuNi0xMC45LTEyLjUtMjEuNS0yMC42LTMyek0yMzggMzM2Yy0xNC4zLTEzLTI5LjgtMjUuOC00Ni0zOS0xNi4yIDEzLjEtMzEuNyAyNi00NiAzOWw5MiAwek0xMDAuNSAxMjhsMTgyLjkgMGM4LjItMTAuNSAxNS4xLTIxLjEgMjAuNi0zMkw3OS45IDk2YzUuNiAxMC45IDEyLjUgMjEuNSAyMC42IDMyek0xNDYgMTc2YzE0LjMgMTMgMjkuOCAyNS44IDQ2IDM5IDE2LjItMTMuMSAzMS43LTI2IDQ2LTM5bC05MiAweiJdfSxjZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtcmVhY2hpbmciLGljb246WzM4NCw1MTIsW10sImU1OWQiLCJNMjU2IDY0YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMTUyLjkgMTY5LjNjLTIzLjctOC40LTQ0LjUtMjQuMy01OC44LTQ1LjhMNzQuNiA5NC4yQzY0LjggNzkuNSA0NSA3NS42IDMwLjMgODUuNFMxMS42IDExNSAyMS40IDEyOS44TDQwLjkgMTU5YzE4LjEgMjcuMSA0Mi44IDQ4LjQgNzEuMSA2Mi40TDExMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU4LjRjMjkuMS0xNC4yIDU0LjQtMzYuMiA3Mi43LTY0LjJsMTguMi0yNy45YzkuNi0xNC44IDUuNC0zNC42LTkuNC00NC4zcy0zNC42LTUuNS00NC4zIDkuNEwyOTEgMTIyLjRjLTIxLjggMzMuNC01OC45IDUzLjYtOTguOCA1My42LTEyLjYgMC0yNC45LTItMzYuNi01LjgtLjktLjMtMS44LS43LTIuNy0uOXoiXX0sal89e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzdGUiLGljb246WzUxMiw1MTIsWyJmaWxlLWNsaXBib2FyZCJdLCJmMGVhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDExMiAwIDAtMjI0YzAtNjEuOSA1MC4xLTExMiAxMTItMTEybDY0IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yNDggMTEybC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptNDAgNDhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNsLTU4LjUtNTguNWMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wyODggMTYweiJdfSxkZ3I9al8sdWdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1ldGVvciIsaWNvbjpbNTEyLDUxMixbOTczMl0sImY3NTMiLCJNNDkzLjcgLjlsLTE5NC4yIDc0LjcgMi4zLTI5LjNjMS0xMi44LTEyLjgtMjEuNS0yNC0xNS4xTDEwMS4zIDEzMy40QzM4LjYgMTY5LjcgMCAyMzYuNiAwIDMwOSAwIDQyMS4xIDkwLjkgNTEyIDIwMyA1MTIgMjc1LjQgNTEyIDM0Mi4zIDQ3My40IDM3OC42IDQxMC43TDQ4MC44IDIzNC4zYzYuNS0xMS4xLTIuMi0yNS0xNS4xLTI0bC0yOS4zIDIuMyA3NC43LTE5NC4yYy42LTEuNSAuOS0zLjIgLjktNC44IDAtNy41LTYtMTMuNS0xMy41LTEzLjUtMS43IDAtMy4zIC4zLTQuOCAuOXpNMTkyIDE5MmExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6bTAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTYgOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxQUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VhcnMiLGljb246WzY0MCw1MTIsWyJjb2dzIl0sImYwODUiLCJNNDE1LjkgMjEwLjVjMTIuMi0zLjMgMjUgMi41IDMwLjUgMTMuOEw0NjUgMjYxLjljMTAuMyAxLjQgMjAuNCA0LjIgMjkuOSA4LjFsMzUtMjMuM2MxMC41LTcgMjQuNC01LjYgMzMuMyAzLjNsMTkuMiAxOS4yYzguOSA4LjkgMTAuMyAyMi45IDMuMyAzMy4zbC0yMy4zIDM0LjljMS45IDQuNyAzLjYgOS42IDUgMTQuNyAxLjQgNS4xIDIuMyAxMC4xIDMgMTUuMmwzNy43IDE4LjZjMTEuMyA1LjYgMTcuMSAxOC40IDEzLjggMzAuNWwtNyAyNi4yYy0zLjMgMTIuMS0xNC42IDIwLjMtMjcuMiAxOS41bC00Mi0yLjdjLTYuMyA4LjEtMTMuNiAxNS42LTIxLjkgMjJsMi43IDQxLjljLjggMTIuNi03LjQgMjQtMTkuNSAyNy4ybC0yNi4yIDdjLTEyLjIgMy4zLTI0LjktMi41LTMwLjUtMTMuOGwtMTguNi0zNy42Yy0xMC4zLTEuNC0yMC40LTQuMi0yOS45LTguMWwtMzUgMjMuM2MtMTAuNSA3LTI0LjQgNS42LTMzLjMtMy4zbC0xOS4yLTE5LjJjLTguOS04LjktMTAuMy0yMi44LTMuMy0zMy4zbDIzLjMtMzVjLTEuOS00LjctMy42LTkuNi01LTE0LjdzLTIuMy0xMC4yLTMtMTUuMmwtMzcuNy0xOC42Yy0xMS4zLTUuNi0xNy0xOC40LTEzLjgtMzAuNWw3LTI2LjJjMy4zLTEyLjEgMTQuNi0yMC4zIDI3LjItMTkuNWw0MS45IDIuN2M2LjMtOC4xIDEzLjYtMTUuNiAyMS45LTIybC0yLjctNDEuOGMtLjgtMTIuNiA3LjQtMjQgMTkuNS0yNy4ybDI2LjItN3pNNDQ4LjQgMzQwYTQ0IDQ0IDAgMSAwIC4xIDg4IDQ0IDQ0IDAgMSAwIC0uMS04OHpNMjI0LjktNDUuNWwyNi4yIDdjMTIuMSAzLjMgMjAuMyAxNC43IDE5LjUgMjcuMmwtMi43IDQxLjhjOC4zIDYuNCAxNS42IDEzLjggMjEuOSAyMmw0Mi0yLjdjMTIuNS0uOCAyMy45IDcuNCAyNy4yIDE5LjVsNyAyNi4yYzMuMiAxMi4xLTIuNSAyNC45LTEzLjggMzAuNWwtMzcuNyAxOC42Yy0uNyA1LjEtMS43IDEwLjItMyAxNS4ycy0zLjEgMTAtNSAxNC43bDIzLjMgMzVjNyAxMC41IDUuNiAyNC40LTMuMyAzMy4zTDMwNy4zIDI2MmMtOC45IDguOS0yMi44IDEwLjMtMzMuMyAzLjNMMjM5IDI0MmMtOS41IDMuOS0xOS42IDYuNy0yOS45IDguMWwtMTguNiAzNy42Yy01LjYgMTEuMy0xOC40IDE3LTMwLjUgMTMuOGwtMjYuMi03Yy0xMi4yLTMuMy0yMC4zLTE0LjctMTkuNS0yNy4ybDIuNy00MS45Yy04LjMtNi40LTE1LjYtMTMuOC0yMS45LTIybC00MiAyLjdjLTEyLjUgLjgtMjMuOS03LjQtMjcuMi0xOS41bC03LTI2LjJjLTMuMi0xMi4xIDIuNS0yNC45IDEzLjgtMzAuNWwzNy43LTE4LjZjLjctNS4xIDEuNy0xMC4xIDMtMTUuMiAxLjQtNS4xIDMtMTAgNS0xNC43TDU1LjEgNDYuNWMtNy0xMC41LTUuNi0yNC40IDMuMy0zMy4zTDc3LjYtNmM4LjktOC45IDIyLjgtMTAuMyAzMy4zLTMuM2wzNSAyMy4zYzkuNS0zLjkgMTkuNi02LjcgMjkuOS04LjFsMTguNi0zNy42YzUuNi0xMS4zIDE4LjMtMTcgMzAuNS0xMy44ek0xOTIuNCA4NGE0NCA0NCAwIDEgMCAwIDg4IDQ0IDQ0IDAgMSAwIDAtODh6Il19LHBncj1QUGUsZmdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXBsdXMiLGljb246WzU3Niw1MTIsWzU4NjA2XSwiZTQ5NCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0xNi0yMDhsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2eiJdfSxoZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNpY2xlcyIsaWNvbjpbNTEyLDUxMixbXSwiZjdhZCIsIk03NS44IDMwNC44TDEgMzUuN0MuMyAzMy4yIDAgMzAuNyAwIDI4LjIgMCAxMi42IDEyLjYgMCAyOC4yIDBMNDgyLjQgMGMxNi4zIDAgMjkuNiAxMy4yIDI5LjYgMjkuNiAwIDEuNi0uMSAzLjMtLjQgNC45TDQzNC42IDQ5Ni4xYy0xLjUgOS4yLTkuNSAxNS45LTE4LjggMTUuOS05LjIgMC0xNy4xLTYuNi0xOC43LTE1LjZMMzM2IDE2MCAzMDcuMiAzMDMuOWMtMS45IDkuMy0xMC4xIDE2LjEtMTkuNiAxNi4xLTkuMiAwLTE3LjItNi4yLTE5LjQtMTUuMUwyNDAgMTkyIDIxMC42IDM2OC4yYy0xLjUgOS4xLTkuNCAxNS44LTE4LjYgMTUuOHMtMTcuMS02LjctMTguNi0xNS44TDE0NCAxOTIgMTE1LjkgMzA0LjNjLTIuMyA5LjItMTAuNiAxNS43LTIwLjEgMTUuNy05LjMgMC0xNy41LTYuMi0yMC0xNS4yeiJdfSxtZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdHJlbmQtdXAiLGljb246WzU3Niw1MTIsW10sImUwOTgiLCJNMzg0IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgyLjctMTY5LjQgMTY5LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDE5MiAyNjkuMyA1NC42IDQwNi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDMyMCAzMDYuNyA0NjYuNyAxNjAgMzg0IDE2MHoiXX0sZ2dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24tbm9kZXMtYm9sdCIsaWNvbjpbNTc2LDUxMixbXSwiZTY5YSIsIk0yNDggMTA2LjZjMTguOS05IDMyLTI4LjMgMzItNTAuNmMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NmMwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjdsLTgwLjEtNDUuOGMxLjYtMjAuOC04LjYtNDEuNi0yNy45LTUyLjhDNTcuMiA5NiAyMyAxMDUuMiA3LjUgMTMyUzEuMiAxOTMgMjggMjA4LjVjMS4zIC44IDIuNiAxLjUgNCAyLjFsMCA5MC44Yy0xLjMgLjYtMi43IDEuMy00IDIuMUMxLjIgMzE5LTggMzUzLjIgNy41IDM4MFM1Ny4yIDQxNiA4NCA0MDAuNWMxOS4zLTExLjEgMjkuNC0zMiAyNy44LTUyLjhsNTAuNS0yOC45Yy0xMS41LTExLjItMTkuOS0yNS42LTIzLjgtNDEuN0w4OCAzMDYuMWMtMi42LTEuOC01LjItMy4zLTgtNC43bDAtOTAuOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0uMSAxLjQtLjIgMi44LS4yIDQuM2MwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0xOC45IDktMzIgMjguMy0zMiA1MC42YzAgMzAuOSAyNS4xIDU2IDU2IDU2YzMwLjcgMCA1NS42LTI0LjcgNTYtNTUuMmMtNy41LTEyLjktMTMuNS0yNi44LTE3LjYtNDEuNWMtNC4yLTQtOS4xLTcuMy0xNC40LTkuOWwwLTk4LjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDEwLjUgNmM1LjUtMTUuMyAxMy4xLTI5LjUgMjIuNC00Mi41bC05LjEtNS4yYy4xLTEuNCAuMi0yLjggLjItNC4zYzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4Ljh6TTQ0MC41IDEzMkM0MjUgMTA1LjIgMzkwLjggOTYgMzY0IDExMS41Yy0xOS4zIDExLjEtMjkuNCAzMi0yNy44IDUyLjhsLTUwLjYgMjguOWMxMS41IDExLjIgMTkuOSAyNS42IDIzLjggNDEuN0wzNjAgMjA1LjljLjQgLjMgLjggLjYgMS4zIC45YzIxLjctOS41IDQ1LjYtMTQuOCA3MC44LTE0LjhjMiAwIDQgMCA1LjkgLjFjMTIuMS0xNy4zIDEzLjgtNDAuNiAyLjYtNjAuMXpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTQ3LjktMjI1YzQuMyAzLjcgNS40IDkuOSAyLjYgMTQuOUw0NTIuNCAzNTZsMzUuNiAwYzUuMiAwIDkuOCAzLjMgMTEuNCA4LjJzLS4xIDEwLjMtNC4yIDEzLjRsLTk2IDcyYy00LjUgMy40LTEwLjggMy4yLTE1LjEtLjZzLTUuNC05LjktMi42LTE0LjlMNDExLjYgMzgwIDM3NiAzODBjLTUuMiAwLTkuOC0zLjMtMTEuNC04LjJzLjEtMTAuMyA0LjItMTMuNGw5Ni03MmM0LjUtMy40IDEwLjgtMy4yIDE1LjEgLjZ6Il19LGJncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdWVzdGlvbiIsaWNvbjpbMzIwLDUxMixbMTAwNjcsMTAwNjgsNjE3MzZdLCIzZiIsIk02NCAxNjBjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDQyLjctMjcuOSA3OC45LTY2LjUgOTEuNC0yOC40IDkuMi02MS41IDM1LjMtNjEuNSA3Ni42bDAgMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0YzAtMS43IC42LTQuMSAzLjUtNy4zIDMtMy4zIDcuOS02LjUgMTMuNy04LjQgNjQuMy0yMC43IDExMC44LTgxIDExMC44LTE1Mi4zIDAtODguNC03MS42LTE2MC0xNjAtMTYwUzAgNzEuNiAwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyem05NiAzNTJjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDAtNDAgMTcuOS00MCA0MCAxNy45IDQwIDQwIDQweiJdfSx4Z3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYm91bmQiLGljb246WzU3Niw1MTIsW10sImU0ZjkiLCJNNjQgMzJDNjQgMTQuMyA0OS43IDAgMzIgMFMwIDE0LjMgMCAzMkwwIDIxMy45YzAgMTQuMiA1LjEgMjcuOSAxNC4zIDM4LjdMOTkuNiAzNTIgOTYgMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zLjYgMCA4NS4zLTk5LjVjOS4yLTEwLjggMTQuMy0yNC41IDE0LjMtMzguN0w1NzYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTIuOC02OS4zIDkyLjRjLTUuNyA3LjYtMTYuMSA5LjYtMjQuMiA0LjgtOS43LTUuNy0xMi4xLTE4LjctNS4xLTI3LjVMNDQxIDE4MGMxMC44LTEzLjUgOC45LTMzLjMtNC40LTQ0LjVzLTMzLTkuOC00NC41IDMuMmwtNDYuNyA1Mi41QzMyOSAyMDkuNyAzMjAgMjMzLjQgMzIwIDI1OC4xbDAgOTMuOS02NCAwIDAtOTMuOWMwLTI0LjYtOS00OC40LTI1LjQtNjYuOGwtNDYuNy01Mi41Yy0xMS41LTEzLTMxLjMtMTQuNC00NC41LTMuMlMxMjQuMiAxNjYuNCAxMzUgMTgwbDI3LjYgMzQuNWM3IDguOCA0LjcgMjEuOC01LjEgMjcuNS04LjEgNC44LTE4LjYgMi43LTI0LjItNC44TDY0IDE0NC44IDY0IDMyem02NCA0NDhsMCAzMiAxMjggMCAwLTMyIDY0IDAgMCAzMiAxMjggMCAwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMOTYgNDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDB6Il19LHZncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1sdWdnYWdlIixpY29uOls1MTIsNTEyLFtdLCJlNTU0IiwiTTI2NC4zIDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptLTggMTgxLjNsLTIyLjYgMjIuNmMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDEyLjMtNyAyMy0xNy4yIDI4LjQtLjkgNC4yLTIuNCA4LjQtNC4zIDEyLjNsLTY5IDEzOC4xLS44LS40LTI3LjcgNTUuM2MtOS45IDE5LjgtMzMuOSAyNy44LTUzLjcgMTcuOUwxNC42IDUyMWMtMTkuOC05LjktMjcuOC0zMy45LTE3LjktNTMuN0w0Ny4zIDM2Ni4zYzkuOS0xOS44IDMzLjktMjcuOCA1My43LTE3LjlsMzAuNyAxNS4zIDI4LjMtNTYuNmMuMy0uNiAuNC0xLjIgLjQtMS44bDAtMTYuOWMwLS4yIDAtLjMgMC0uNWwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzUuMS0zNS4xYzIyLjgtMjIuOCA1My42LTM1LjYgODUuOC0zNS42IDM2LjkgMCA3MS44IDE2LjggOTQuOCA0NS42TDQyMi4xIDE4MGM2LjEgNy42IDE1LjMgMTIgMjUgMTJsMzMuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMy4yIDBjLTI5LjIgMC01Ni43LTEzLjMtNzUtMzZsLTMuOC00LjcgMCAxMTUuMiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNMNDQ4IDUwNy41YzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4yTDM3MiA0MjguNGMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3ptLjEgMTY1LjhjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNWwtNjguMyA2OC4zYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyMzggNDIxLjFjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDI1Ni40IDM3MXoiXX0sTlBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtYXJyb3ctZG93biIsaWNvbjpbMzg0LDUxMixbImZpbGUtZG93bmxvYWQiXSwiZjU2ZCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTc1IDQ0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2NC02NGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyMyAwLTg2LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4Ni4xLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDY0IDY0eiJdfSx5Z3I9TlBlLHdncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYm9vdGgiLGljb246WzU3Niw1MTIsW10sImY3NTYiLCJNNDAgMjRBNTYgNTYgMCAxIDEgMTUyIDI0IDU2IDU2IDAgMSAxIDQwIDI0em01MS4xIDg4YzIzLjUgMCA0NS41IDExLjMgNTkuMSAzMC40bDQ4LjcgNjguMmM2IDguNCAxNS43IDEzLjQgMjYgMTMuNGwzMS4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMxLjEgMGMtMzEgMC02MC4xLTE1LTc4LjEtNDAuMmwtMi44LTMuOSAwIDgwLjEgNDEuNiAzMS4yQzIwOS44IDM3My4zIDIyNCA0MDEuOCAyMjQgNDMybDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDcwLjQgMzQ4LjhDNDYuMiAzMzAuNyAzMiAzMDIuMiAzMiAyNzJsMC0xMDAuOUMzMiAxMzguNSA1OC41IDExMiA5MS4xIDExMnpNMzIgNTEybDAtMTMyLjdjMy4xIDIuNyA2LjMgNS40IDkuNiA3LjlMOTYgNDI4IDk2IDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnptNTQ0LTg4bDAgOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi0xNjggMGMtNy4xIDAtMTMuOC0zLjEtMTguNC04LjZzLTYuNS0xMi42LTUuMy0xOS42bDMwLjctMTc2LjctNjMuMS0xMzcuNiAwIDcyYy01LjItMS0xMC41LTEuNi0xNi0xLjZsLTMyIDAgMC0xMjBjMC0zMC45IDI1LjEtNTYgNTYtNTZMNTIwIDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAzNjh6TTI4OCAzMzZjNS41IDAgMTAuOC0uNiAxNi0xLjZMMzA0IDUyMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE4NCAzMiAweiJdfSxrZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jdXN0IixpY29uOls1NzYsNTEyLFtdLCJlNTIwIiwiTTMyOCAzMmMxMzcgMCAyNDggMTExIDI0OCAyNDhsMCA0MC0uNCA4LjJDNTcxLjUgMzY4LjUgNTM3LjQgNDAwIDQ5NiA0MDBsLTEyLjMgMCAyNS4yIDQ0LjFjNi42IDExLjUgMi42IDI2LjItOC45IDMyLjhzLTI2LjIgMi42LTMyLjctOC45bC0zOC44LTY3LjktODAuNCAwLTQ4LjIgNjkuN2MtNy41IDEwLjktMjIuNSAxMy42LTMzLjQgNi4xcy0xMy42LTIyLjUtNi4xLTMzLjRsMjkuMy00Mi4zLTc0LjUgMC01MS43IDcwLjJjLTcuOSAxMC43LTIyLjkgMTIuOS0zMy42IDUuMXMtMTIuOS0yMi45LTUuMS0zMy42bDQwLjUtNTUtNDMtMTYuNC03OS4zIDEwMC41Yy04LjIgMTAuNC0yMy4zIDEyLjItMzMuNyA0cy0xMi4yLTIzLjMtNC0zMy43bDI0MC0zMDQgMi4xLTIuM2M1LjItNS4xIDEyLjUtNy41IDE5LjktNi42IDguNCAxLjEgMTUuNiA2LjUgMTguOSAxNC4zbDIxLjcgNTAuNyA0MC45LTU1LjUgMi4xLTIuNGM1LjEtNS4zIDEyLjUtOCAyMC03LjIgOC41IDEgMTUuOSA2LjUgMTkuMyAxNC40bDQxLjggOTcuNSA2NC4yIDBjMTAuMiAwIDIwIDIgMjkgNS41LTE2LjQtOTQtOTguMy0xNjUuNS0xOTctMTY1LjVsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMHpNNDg4IDI5NmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6TTQzLjUgMzMxLjFDMzYuMiAzMjEuNCAzMiAzMDkuNSAzMiAyOTYuOCAzMiAyNjUuNSA1Ny41IDI0MCA4OC45IDI0MGwyNy42IDAtNzIuOSA5MS4xek0yMjUuMSAyNDBsNDguMiAwIDEuNC0xLjktMTYuOS0zOS41LTMyLjcgNDEuNXptMTA3LjggMGw0Ni43IDAtMTcuMi00MC0yOS41IDQweiJdfSxPUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctYWx0LXJpZ2h0Il0sImYzMGIiLCJNNTY2LjYgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTEyOCAxMjhjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAzOTYuOSAzODQgMzg0bDAtNjQtMzM2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJjMC0yNi41IDIxLjUtNDggNDgtNDhsMzM2IDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDEyOCAxMjh6Il19LFNncj1PUGUsTWdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWRyb3BsZXQiLGljb246WzU3Niw1MTIsW10sImU1OGMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjA4IDMwNGMtMzkuOCAwLTcyLTMyLjItNzItNzIgMC0zMy4yIDM0LjUtNzggNTUuOC0xMDIuNCA4LjctMTAgMjMuOC0xMCAzMi41IDAgMjEuMiAyNC40IDU1LjggNjkuMSA1NS44IDEwMi40IDAgNDgtMzIuMiA3Mi03MiA3MnoiXX0sQ2dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1tZWRpY2FsIixpY29uOls1NzYsNTEyLFtdLCJlMDVjIiwiTTI0MCAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNTYgNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC01NiAwIDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNTYtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1NiAwIDAtNTZ6TTY2LjcgMzg0bDQyLjUtNDIuNWMyNC0yNCA1Ni42LTM3LjUgOTAuNS0zNy41TDM1MiAzMDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyLjYgMCAxMTkuNy04OC4yYzE3LjgtMTMuMSA0Mi44LTkuMyA1NS45IDguNXM5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM0LjcgMHoiXX0semdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNSIsIk0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmwyMDggMCAwLTY0LTIwOCAwek0xOTIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bS02NC02NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOTYgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bTg4LTk2bC0uNiAwYzUuNCA5LjQgOC42IDIwLjMgOC42IDMyIDAgMTMuMi00IDI1LjQtMTAuOCAzNS42IDI0LjkgOC43IDQyLjggMzIuNSA0Mi44IDYwLjQgMCAxMS43LTMuMSAyMi42LTguNiAzMmw4LjYgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTYxLjdjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC0xMS42LTExLjZDNDI5LjUgNzcuNSAzOTYuOSA2NCAzNjMgNjRsLTI3IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTU2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA1NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnoiXX0sX2dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGN1bGF0b3IiLGljb246WzM4NCw1MTIsWzEyODQyNV0sImYxZWMiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNOTYgNjRsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE2IDE2OGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwem04MCAyNGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyOC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek04OCAzNTJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjgtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHptODAgMjRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek02NCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMjMyLTI0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHoiXX0sVV89e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWludXMiLGljb246WzQ0OCw1MTIsWzgyMTEsODcyMiwxMDEzNCwic3VidHJhY3QiXSwiZjA2OCIsIk0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxUZ3I9VV8sUlBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXotYSIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtdXAtYWx0Il0sImY4ODIiLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgwek0yODggNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTAuNyAwLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMzA3LjEgMjI0IDMyMCAyMjRsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMCA3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDYxIDMyIDQ0OCAzMkwzMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek00MTIuNiAyNzMuN0M0MDcuMiAyNjIuOCAzOTYuMSAyNTYgMzg0IDI1NnMtMjMuMiA2LjgtMjguNiAxNy43bC04MCAxNjBjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w3LjItMTQuMyA4OC40IDAgNy4yIDE0LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45bC04MC0xNjB6TTM4NCAzNTkuNmwyMC4yIDQwLjQtNDAuNCAwIDIwLjItNDAuNHoiXX0sTGdyPVJQZSxEZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjEzMSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQyNC43IDM1OC44QzQ1OC45IDMyNC4yIDQ4MCAyNzYuNiA0ODAgMjI0bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDM5LjMtMTUuNyA3NC45LTQxLjMgMTAwLjlMMzU2LjggMjkxQzM3My42IDI3My43IDM4NCAyNTAgMzg0IDIyNGwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMwLjItMTUxLTE1MXptMjk4LjMgNDM0bC00MS40LTQxLjRjLTMuMyAuMi02LjUgLjMtOS44IC4zLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0bDAtMTAuMi00My42LTQzLjZjLTIuOCAzLjktNC40IDguNy00LjQgMTMuOGwwIDQwYzAgOTcuOSA3My4zIDE3OC43IDE2OCAxOTAuNWwwIDQ5LjUtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ5LjVjOS4zLTEuMiAxOC40LTMgMjcuMy01LjR6Il19LGZ1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGVuIixpY29uOls0NDgsNTEyLFsicGVuLXNxdWFyZSIsInBlbmNpbC1zcXVhcmUiXSwiZjE0YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjUuOCAxMzkuN2wxNC40IDE0LjRjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTIzLjggMjMuOC03MS03MSAyMy44LTIzLjhjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDB6TTExOS45IDI4OWw5MS41LTkxLjYgNzEgNzEtOTEuNiA5MS41Yy00LjEgNC4xLTkuMiA3LTE0LjkgOC40bC02MC4xIDE1Yy01LjUgMS40LTExLjItLjItMTUuMi00LjJzLTUuNi05LjctNC4yLTE1LjJsMTUtNjAuMWMxLjQtNS42IDQuMy0xMC44IDguNC0xNC45eiJdfSwkZ3I9ZnVlLEFncj1mdWUsRlBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtZmlzdCIsaWNvbjpbMzg0LDUxMixbOTk5NCwiZmlzdC1yYWlzZWQiXSwiZjZkZSIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMi02NCAwIDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgODAtNjQgMCAwLTgwem0xOTIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NnptOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDUyLjMtMjUuMSA5OC44LTY0IDEyOGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03OC40Yy0xNy4zLTcuOS0zMy4yLTE4LjgtNDYuOS0zMi41TDM3LjUgMzU3LjVDMTMuNSAzMzMuNSAwIDMwMC45IDAgMjY3bDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyeiJdfSxFZ3I9RlBlLEJQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LXNtcyIsaWNvbjpbNTEyLDUxMixbInNtcyJdLCJmN2NkIiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0xNDAuOCAxNzIuOGwxOS4yIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5LjIgMGMtNS4zIDAtOS42IDQuMy05LjYgOS42czQuMyA5LjYgOS42IDkuNmMyMyAwIDQxLjYgMTguNiA0MS42IDQxLjZzLTE4LjYgNDEuNi00MS42IDQxLjZsLTI1LjYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNS42IDBjNS4zIDAgOS42LTQuMyA5LjYtOS42cy00LjMtOS42LTkuNi05LjZjLTIzIDAtNDEuNi0xOC42LTQxLjYtNDEuNnMxOC42LTQxLjYgNDEuNi00MS42em0xODguOCA0MS42YzAtMjMgMTguNi00MS42IDQxLjYtNDEuNmwxOS4yIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5LjIgMGMtNS4zIDAtOS42IDQuMy05LjYgOS42czQuMyA5LjYgOS42IDkuNmMyMyAwIDQxLjYgMTguNiA0MS42IDQxLjZzLTE4LjYgNDEuNi00MS42IDQxLjZsLTI1LjYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNS42IDBjNS4zIDAgOS42LTQuMyA5LjYtOS42cy00LjMtOS42LTkuNi05LjZjLTIzIDAtNDEuNi0xOC42LTQxLjYtNDEuNnptLTk4LjMtMzMuOGwyNC43IDQxLjEgMjQuNy00MS4xYzMuNy02LjIgMTEuMS05LjEgMTgtNy4yczExLjcgOC4yIDExLjcgMTUuNGwwIDEwMi40YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDQuNi04LjcgMTQuNWMtMi45IDQuOC04LjEgNy44LTEzLjcgNy44cy0xMC44LTMtMTMuNy03LjhsLTguNy0xNC41IDAgNDQuNmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTEwMi40YzAtNy4yIDQuOC0xMy41IDExLjctMTUuNHMxNC4zIDEgMTggNy4yeiJdfSxJZ3I9QlBlLFBncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW0tY2FyZCIsaWNvbjpbMzg0LDUxMixbXSwiZjdjNCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyNTguNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDgwYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0MCAxMjggMCAwLTcyLTk2IDB6TTY0IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwIDAtNzItODAgMCAwIDQwem0yNTYgMGwwLTQwLTEyOCAwIDAgNzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnptMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTQ4IDAgMCA3MiA4MCAwIDAtNDB6Il19LEhQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS1iYWxhbmNlZCIsaWNvbjpbNjQwLDUxMixbOTg3OCwiYmFsYW5jZS1zY2FsZSJdLCJmMjRlIiwiTTM4NCAzMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzOTguNCA5NmMtNS4yIDI1LjgtMjIuOSA0Ny4xLTQ2LjQgNTcuM2wwIDI5NC43IDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMCAwLTI5NC43Yy0yMy41LTEwLjMtNDEuMi0zMS42LTQ2LjQtNTcuM0wxMjggOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI4IDBjMTQuNi0xOS40IDM3LjgtMzIgNjQtMzJzNDkuNCAxMi42IDY0IDMyem01NS42IDI4OEw1ODQuNCAzMjAgNTEyIDE5NS44IDQzOS42IDMyMHpNNTEyIDQxNmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45LTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjEtMTAuOCA0NC44LTYzLjEgNzguOS0xMjYgNzguOXpNMTI2LjggMTk1LjhMNTQuNCAzMjAgMTk5LjMgMzIwIDEyNi44IDE5NS44ek0uOSAzMzcuMWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45UzExLjcgMzgyIC45IDMzNy4xeiJdfSxOZ3I9SFBlLHFQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXIiLGljb246WzUxMiw1MTIsWzEyODY2NCwiYXV0b21vYmlsZSJdLCJmMWI5IiwiTTEzNS4yIDExNy40bC0yNi4xIDc0LjYgMjkzLjggMC0yNi4xLTc0LjZDMzcyLjMgMTA0LjYgMzYwLjIgOTYgMzQ2LjYgOTZMMTY1LjQgOTZjLTEzLjYgMC0yNS43IDguNi0zMC4yIDIxLjR6TTM5LjYgMTk2LjhMNzQuOCA5Ni4zQzg4LjMgNTcuOCAxMjQuNiAzMiAxNjUuNCAzMmwxODEuMiAwYzQwLjggMCA3Ny4xIDI1LjggOTAuNiA2NC4zbDM1LjIgMTAwLjVjMjMuMiA5LjYgMzkuNiAzMi41IDM5LjYgNTkuMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0zMjAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDI1NmMwLTI2LjcgMTYuNC00OS42IDM5LjYtNTkuMnpNMTI4IDMwNGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yODggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxPZ3I9cVBlLFZQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9wLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbImNyb3AtYWx0Il0sImY1NjUiLCJNMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMi0zMiAwQzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwOCAwIDAtNjQtMjA4IDAgMC0zNTJ6TTM4NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTIwOCAwIDAgNjQgMjA4IDAgMCAzNTJ6Il19LFJncj1WUGUsRmdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lZGFsIixpY29uOls0NDgsNTEyLFsxMjc5NDFdLCJmNWEyIiwiTTIyNC4zIDEyOEwxMzkuNy0xMi45Yy02LjUtMTAuOC0yMC4xLTE0LjctMzEuMy05LjFMMjEuOCAyMS4zQzkuOSAyNy4yIDUuMSA0MS42IDExIDUzLjVMODAuNiAxOTIuNmMtMzAuMSAzMy45LTQ4LjMgNzguNS00OC4zIDEyNy40IDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtNDguOS0xOC4zLTkzLjUtNDguMy0xMjcuNEw0MzcuNiA1My41YzUuOS0xMS45IDEuMS0yNi4zLTEwLjctMzIuMkwzNDAuMi0yMi4xYy0xMS4yLTUuNi0yNC45LTEuNi0zMS4zIDkuMUwyMjQuMyAxMjh6bTMwLjggMTQyLjVjMS40IDIuOCA0IDQuNyA3IDUuMWw1MC4xIDcuM2M3LjcgMS4xIDEwLjcgMTAuNSA1LjIgMTZsLTM2LjMgMzUuNGMtMi4yIDIuMi0zLjIgNS4yLTIuNyA4LjNsOC42IDQ5LjljMS4zIDcuNi02LjcgMTMuNS0xMy42IDkuOWwtNDQuOC0yMy42Yy0yLjctMS40LTYtMS40LTguNyAwbC00NC44IDIzLjZjLTYuOSAzLjYtMTQuOS0yLjItMTMuNi05LjlsOC42LTQ5LjljLjUtMy0uNS02LjEtMi43LTguM2wtMzYuMy0zNS40Yy01LjYtNS40LTIuNS0xNC44IDUuMi0xNmw1MC4xLTcuM2MzLS40IDUuNy0yLjQgNy01LjFsMjIuNC00NS40YzMuNC03IDEzLjMtNyAxNi44IDBsMjIuNCA0NS40eiJdfSxCZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsIixpY29uOls1NzYsNTEyLFsxMjgyMjBdLCJmNzBlIiwiTTAgMTEyQzAgNzAuNSAzMS42IDM2LjQgNzIgMzIuNGwwLS40IDI4MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNzYtMTc2IDBjLTM5LjggMC03MiAzMi4yLTcyIDcybDAgNjBjMCAyNC4zLTE5LjcgNDQtNDQgNDRzLTQ0LTE5LjctNDQtNDRsMC0yMjgtNjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00OHpNMjM2LjggNDgwYzcuMS0xMy4xIDExLjItMjguMSAxMS4yLTQ0bDAtNjBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjI3LjIgMHpNODAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxIZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1leGNlbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTY0IDI2Ni43Yy03LjQtMTEtMjIuMy0xNC0zMy4zLTYuN3MtMTQgMjIuMy02LjcgMzMuM0wxNjMuMiAzNTIgMTI0IDQxMC43Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMjgtNDIgMjggNDJjNy40IDExIDIyLjMgMTQgMzMuMyA2LjdzMTQtMjIuMyA2LjctMzMuM0wyMjAuOCAzNTIgMjYwIDI5My4zYzcuNC0xMSA0LjQtMjUuOS02LjctMzMuM3MtMjUuOS00LjQtMzMuMyA2LjdsLTI4IDQyLTI4LTQyeiJdfSxxZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyIixpY29uOls1MTIsNTEyLFtdLCJmMGIwIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzMyMCA0OTIuOSAzMjAgNDgwbDAtMTc4LjcgMTgyLjYtMTgyLjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0eiJdfSxWZ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bSIsaWNvbjpbNTEyLDUxMixbMTI5MzQ1XSwiZjU2OSIsIk01MDEuMiA3Ni4xYzExLjEtNy4zIDE0LjItMjIuMSA2LjktMzMuMnMtMjIuMS0xNC4yLTMzLjItNi45TDM3MC4yIDEwNC41QzMzNS44IDk4LjcgMjk3IDk2IDI1NiA5NiAxMTQuNiA5NiAwIDEyOCAwIDIwOEwwIDM2OGMwIDMxLjMgMjcuNCA1OC44IDcyIDc4LjdMNzIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMTkuNGMzMyA4LjkgNzEuMSAxNC41IDExMiAxNi4xTDIzMiAzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMy41YzQwLjktMS42IDc5LTcuMiAxMTItMTYuMUwzOTIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDIuN2M0NC42LTE5LjkgNzItNDcuNCA3Mi03OC43bDAtMTYwYzAtNDEuMS0zMC4yLTY5LjUtNzguOC04Ny40bDY3LjktNDQuNXpNMzA3LjQgMTQ1LjZsLTY0LjYgNDIuM2MtMTEuMSA3LjMtMTQuMiAyMi4xLTYuOSAzMy4yczIyLjEgMTQuMiAzMy4yIDYuOWwxMTEuMS03Mi44YzE0LjcgMy4yIDI3LjkgNyAzOS40IDExLjUgMzguOCAxNS4xIDQ0LjQgMzAuNiA0NC40IDQxLjMgMCAuOC0yLjcgMTcuMi00NiAzNS45LTM4LjkgMTYuOC05NiAyOC4xLTE2MiAyOC4xUzEzMi45IDI2MC43IDk0IDI0My45Yy00My4zLTE4LjctNDYtMzUuMS00Ni0zNS45IDAtMTAuNiA1LjYtMjYuMiA0NC40LTQxLjMgMzguMy0xNC45IDk1LjQtMjIuNyAxNjMuNi0yMi43IDE4IDAgMzUuMSAuNSA1MS40IDEuNnoiXX0samdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcC1waW4iLGljb246WzMyMCw1MTIsWzEyODIwNV0sImYyNzYiLCJNMTkyIDI4NC40QzI1Ni4xIDI2OS45IDMwNCAyMTIuNSAzMDQgMTQ0IDMwNCA2NC41IDIzOS41IDAgMTYwIDBTMTYgNjQuNSAxNiAxNDRjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40TDEyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5NS42ek0xNjggOTZjLTMwLjkgMC01NiAyNS4xLTU2IDU2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNCA0Ni42LTEwNCAxMDQtMTA0IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSxqUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NhbGUtdW5iYWxhbmNlZC1mbGlwIixpY29uOls2NDAsNTEyLFsiYmFsYW5jZS1zY2FsZS1yaWdodCJdLCJmNTE2IiwiTTExOC4yIDYyLjRDMTAxLjUgNTYuOCA5Mi40IDM4LjYgOTggMjEuOVMxMjEuNy0zLjkgMTM4LjUgMS42bDExMyAzNy43YzEzLjktMjMuNSAzOS42LTM5LjMgNjguOS0zOS4zIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMy0uMiA1LjktLjUgOC44bDEyMi42IDQwLjljMTYuOCA1LjYgMjUuOCAyMy43IDIwLjIgNDAuNXMtMjMuNyAyNS44LTQwLjUgMjAuMkwzNjYuNyAxNDUuMmMtNC41IDMuMi05LjMgNS45LTE0LjQgOC4ybDAgMzI2LjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIxLTkuMi0zNy4yLTI3LTQ0LjItNDlsLTEyNS45LTQyek0yMDAuOCAyODhMMTI4LjMgMTYzLjggNTUuOSAyODggMjAwLjggMjg4em0tNzIuNCA5NmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45LTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjEtMTAuOCA0NC44LTYzLjEgNzguOS0xMjYgNzguOXptMzgyLjgtOTIuMmwtNzIuNCAxMjQuMiAxNDQuOSAwLTcyLjQtMTI0LjJ6bTEyNiAxNDEuM0M2MjYuNCA0NzggNTc0LjEgNTEyIDUxMS4yIDUxMnMtMTE1LjItMzQtMTI2LTc4LjljLTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjF6Il19LFVncj1qUGUsV2dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImU0YmQiLCJNOS40IDkuNEMyMS45LTMuMSA0Mi4xLTMuMSA1NC42IDkuNEwxMjggODIuNyAxMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE4LjcgMC03My40LTczLjRDLTMuMSA0Mi4xLTMuMSAyMS45IDkuNCA5LjR6TTIwMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek01MDIuNiA1NC42TDQyOS4zIDEyOCA0NDggMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxOC43IDczLjQtNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0tNDUuMyA0NDhMMzg0IDQyOS4zIDM4NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC43IDAgNzMuNCA3My40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwek05LjQgNDU3LjRMODIuNyAzODQgNjQgMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjctNzMuNCA3My40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3oiXX0sR2dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlIixpY29uOls1MTIsNTEyLFsxMjgzODYsOTk5Myw2MTQ0M10sImYwZTAiLCJNNDggNjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgMTUuMSA3LjEgMjkuMyAxOS4yIDM4LjRsMjA4IDE1NmMxNy4xIDEyLjggNDAuNSAxMi44IDU3LjYgMGwyMDgtMTU2YzEyLjEtOS4xIDE5LjItMjMuMyAxOS4yLTM4LjQgMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggNjR6TTAgMTk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTg4LTE5OC40IDE0OC44Yy0zNC4xIDI1LjYtODEuMSAyNS42LTExNS4yIDBMMCAxOTZ6Il19LFlncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWJ5IixpY29uOlszODQsNTEyLFtdLCJmNzdjIiwiTTEyMCA4OGE3MiA3MiAwIDEgMSAxNDQgMCA3MiA3MiAwIDEgMSAtMTQ0IDB6TTcuNyAxNDQuNWMxMy0xNy45IDM4LTIxLjggNTUuOS04LjhMOTkuOCAxNjJjMjYuOCAxOS41IDU5LjEgMzAgOTIuMiAzMHM2NS40LTEwLjUgOTIuMi0zMGwzNi4yLTI2LjRjMTcuOS0xMyA0Mi45LTkgNTUuOSA4LjhzOSA0Mi45LTguOCA1NS45bC0zNi4yIDI2LjRjLTEzLjYgOS45LTI4LjEgMTguMi00My4zIDI1bDAgMzYuMy0xOTIgMCAwLTM2LjNjLTE1LjItNi43LTI5LjctMTUuMS00My4zLTI1TDE2LjUgMjAwLjNjLTE3LjktMTMtMjEuOC0zOC04LjgtNTUuOXpNOTcuNSAzMjkuM2w2MC42IDUzLTI2IDM3LjIgMjQuMyAyNC4zYzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42cy00MC45IDE1LjYtNTYuNiAwbC00OC00OEMzOCA0MzguNiAzNi4xIDQxNyA0Ny4yIDQwMS4xbDUwLjItNzEuOHptMTI4LjUgNTNsNjAuNi01MyA1MC4yIDcxLjhjMTEuMSAxNS45IDkuMiAzNy41LTQuNSA1MS4ybC00OCA0OGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZsMjQuMy0yNC4zLTI2LTM3LjJ6Il19LFVQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtZG93biIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1kb3duIl0sImYxNTAiLCJNMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwek0yMjQgMzUyYy02LjcgMC0xMy0yLjgtMTcuNi03LjdsLTEwNC0xMTJjLTYuNS03LTguMi0xNy4yLTQuNC0yNS45UzExMC41IDE5MiAxMjAgMTkybDIwOCAwYzkuNSAwIDE4LjIgNS43IDIyIDE0LjRzMi4xIDE4LjktNC40IDI1LjlsLTEwNCAxMTJjLTQuNSA0LjktMTAuOSA3LjctMTcuNiA3Ljd6Il19LEtncj1VUGUsWmdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQiLGljb246WzUxMiw1MTIsW10sImU1N2QiLCJNMjYuOSAyMDYuOUwzLjcgNDQ0LjlDMS44IDQ2My43IDE2LjYgNDgwIDM1LjUgNDgwbDE3Mi43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjljMC04LjMgNi43LTE1IDE1LTE1IDUuNSAwIDEwLjYgMyAxMy4yIDcuOWw4Ni4xIDE1OWM4LjQgMTUuNSAyNC42IDI1LjEgNDIuMiAyNS4xbDY0LjEgMGMxOC45IDAgMzMuNy0xNi4zIDMxLjgtMzUuMUw0ODUuNiAyMDcuMWMtMS45LTE5LjYtMTIuOC0zNy4zLTI5LjUtNDcuOEwyODAuOSA0OC4zYy0xNS43LTEwLTM1LjgtOS45LTUxLjUgLjFMNTYuMSAxNTkuMmMtMTYuNSAxMC42LTI3LjMgMjguMi0yOS4yIDQ3Ljd6Il19LFFncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhIixpY29uOlszODQsNTEyLFs5N10sIjQxIiwiTTIyMS41IDUxLjdDMjE2LjYgMzkuOCAyMDQuOSAzMiAxOTIgMzJzLTI0LjYgNy44LTI5LjUgMTkuN2MtOTMuMyAyMjQtMTQ2LjcgMzUyLTE2MCAzODQtNi44IDE2LjMgLjkgMzUgMTcuMiA0MS44czM1LS45IDQxLjgtMTcuMmwzMS44LTc2LjMgMTk3LjMgMCAzMS44IDc2LjNjNi44IDE2LjMgMjUuNSAyNCA0MS44IDE3LjJzMjQtMjUuNSAxNy4yLTQxLjhjLTEzLjMtMzItNjYuNy0xNjAtMTYwLTM4NHpNMjY0IDMyMGwtMTQ0IDAgNzItMTcyLjggNzIgMTcyLjh6Il19LFhncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXJhY2h1dGUtYm94IixpY29uOls1MTIsNTEyLFtdLCJmNGNkIiwiTTEyOCAyMjRDMTI4IDE1Mi4yIDE0NC4zIDg4LjQgMTY5LjUgNDMuNCAxOTUuMS0yLjQgMjI2LjYtMjQgMjU2LTI0czYwLjkgMjEuNiA4Ni41IDY3LjRDMzY3LjcgODguNCAzODQgMTUyLjIgMzg0IDIyNGwtMTA0IDAgMCA5NiA4IDBjOS4zIDAgMTguMSAyIDI2IDUuNWwxMTguNC0xMDEuNS0uNSAwYzAtNzguNC0xNy43LTE1MC42LTQ3LjYtMjA0LTYuMS0xMS0xMi45LTIxLjMtMjAuMy0zMC45IDg2LjUgMzUuOSAxNDcuOCAxMTUuMSAxNDcuOCAyMTguOSAwIDctMy4xIDEzLjctOC40IDE4LjJMMzQ3LjQgMzYwLjFjMyA3LjQgNC42IDE1LjQgNC42IDIzLjlsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTguNCAxLjYtMTYuNSA0LjYtMjMuOUw4LjQgMjI2LjJDMy4xIDIyMS43IDAgMjE1IDAgMjA4IDAgMTA0LjIgNjEuMyAyNC45IDE0Ny44LTEwLjkgMTQwLjUtMS40IDEzMy43IDkgMTI3LjYgMjAgOTcuNyA3My40IDgwIDE0NS42IDgwIDIyNGwtLjUgMCAxMTguNCAxMDEuNWM4LTMuNSAxNi44LTUuNSAyNi01LjVsOCAwIDAtOTYtMTA0IDB6Il19LEpncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWFycm93LWRvd24iLGljb246WzY0MCw1MTIsW10sImYyMTgiLCJNMCA4QzAtNS4zIDEwLjctMTYgMjQtMTZsNDUuMyAwYzI3LjEgMCA1MC4zIDE5LjQgNTUuMSA0NmwuNCAyIDE4Ny4yIDAgMCAxMDIuMS0zMS0zMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xIDE3Ny40IDBjMjAgMCAzNS4xIDE4LjIgMzEuNCAzNy45TDUzNy44IDIzNS44Yy01LjcgMzAuMy0zMi4xIDUyLjItNjIuOSA1Mi4ybC0zMDMuNiAwIDUuMSAyOC4zYzIuMSAxMS40IDEyIDE5LjcgMjMuNiAxOS43TDQ1NiAzMzZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1NS45IDBjLTM0LjggMC02NC42LTI0LjktNzAuOC01OS4xTDc3LjIgMzguNmMtLjctMy44LTQtNi42LTcuOS02LjZMMjQgMzJDMTAuNyAzMiAwIDIxLjMgMCA4ek0xNjAgNDY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTIyNCAwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LGVicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGNhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0saHVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLWFycm93LXVwIixpY29uOls1NzYsNTEyLFs2MjMzOCwiY2xvdWQtdXBsb2FkIiwiY2xvdWQtdXBsb2FkLWFsdCJdLCJmMGVlIiwiTTE0NCA0ODBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNjMuNCA0MS0xMTcuMiA5Ny45LTEzNi41LTEuMy03LjctMS45LTE1LjUtMS45LTIzLjUgMC03OS41IDY0LjUtMTQ0IDE0NC0xNDQgNTUuNCAwIDEwMy41IDMxLjMgMTI3LjYgNzcuMSAxNC4yLTguMyAzMC44LTEzLjEgNDguNC0xMy4xIDUzIDAgOTYgNDMgOTYgOTYgMCAxNS43LTMuOCAzMC42LTEwLjUgNDMuNyA0NCAyMC4zIDc0LjUgNjQuNyA3NC41IDExNi4zIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMHpNMzA1IDE5MWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sdGJyPWh1ZSxyYnI9aHVlLGFicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdCIsaWNvbjpbNTEyLDUxMixbNjE5NDZdLCI0MCIsIk0yNTYgNjRDMTUwIDY0IDY0IDE1MCA2NCAyNTZzODYgMTkyIDE5MiAxOTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJDMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMCA1MTIgMTE0LjYgNTEyIDI1NmwwIDMyYzAgNTMtNDMgOTYtOTYgOTYtMjkuMyAwLTU1LjYtMTMuMi03My4yLTMzLjktMjIuOCAyMS01My4zIDMzLjktODYuOCAzMy45LTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4czU3LjMtMTI4IDEyOC0xMjhjMjcuOSAwIDUzLjcgOC45IDc0LjcgMjQuMSA1LjctNSAxMy4xLTguMSAyMS4zLTguMSAxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJjMC0xMDYtODYtMTkyLTE5Mi0xOTJ6bTY0IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6Il19LG11ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmRpYW4tcnVwZWUtc2lnbiIsaWNvbjpbMzIwLDUxMixbImluZGlhbi1ydXBlZSIsImluciJdLCJlMWJjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMjY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTc2LjcgMGMxNy43IDE5LjggMzAuMSA0NC42IDM0LjcgNzJsNDIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDIgMGMtMTAuNCA2Mi4yLTYwLjggMTEwLjktMTIzLjggMTE4LjlMMjc0LjYgNDIyYzE0LjQgMTAuMyAxNy43IDMwLjMgNy40IDQ0LjZzLTMwLjMgMTcuNy00NC42IDcuNEwxMy40IDMxNEMyLjEgMzA2LTIuNyAyOTEuNSAxLjUgMjc4LjJTMTguMSAyNTYgMzIgMjU2bDgwIDBjMzUuOCAwIDY2LjEtMjMuNSA3Ni4zLTU2TDI0IDIwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNjQuMyAwYy0xMC4yLTMyLjUtNDAuNS01Ni03Ni4zLTU2TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6Il19LGlicj1tdWUsc2JyPW11ZSxuYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2siLGljb246WzU3Niw1MTIsWzEyODY2Niw5OTUxXSwiZjBkMSIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDU1Ny4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek01MTIgMjg4bDAtNTAuNy00NS4zLTQ1LjMtNTAuNyAwIDAgOTYgOTYgMHpNMTkyIDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yMzIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxXUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhbGtib2FyZC11c2VyIixpY29uOls2NDAsNTEyLFsiY2hhbGtib2FyZC10ZWFjaGVyIl0sImY1MWMiLCJNMTkyIDM4NGM1MyAwIDk2IDQzIDk2IDk2IDAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC01MyA0My05NiA5Ni05Nmw5NiAwek01NDQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzMy4xLTI1LjIgNjAuNC01Ny41IDYzLjdsLTYuNSAuMy0yMTEuMSAwYy01LjEtMjQuMi0xNi4zLTQ2LjEtMzIuMS02NGw1MS4yIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzIgMCAwLTI4OC0zNTIgMCAwIDU3LjNjLTE0LjgtNi0zMS05LjMtNDgtOS4zLTUuNCAwLTEwLjggLjMtMTYgMWwwLTQ5YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM1MiAwek0xNDQgMzUyYTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYweiJdfSxvYnI9V1BlLGxicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJmNGZjIiwiTTI4NiAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzggNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM2w1OS40IDB6TTU4NS43IDEwNS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVMNTIyLjEgMjc0LjljLTQuMiA1LjctMTAuNyA5LjQtMTcuNyA5LjhzLTE0LTIuMi0xOC45LTcuM2wtNDYuNC00OGMtOS4yLTkuNS05LTI0LjcgLjYtMzMuOSA5LjUtOS4yIDI0LjctOC45IDMzLjkgLjZsMjYuNSAyNy40IDg1LjYtMTE3Ljd6TTI1Ni4zIDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LGNicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLW5pbmphIixpY29uOls0NDgsNTEyLFsxMjkzOTldLCJmNTA0IiwiTTM1MiAxMjhjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNTcuMiAwLTEwNS42LTM3LjUtMTIyLTg5LjMtMS4xIDEuMy0yLjIgMi42LTMuNSAzLjgtMTUuOCAxNS44LTM4LjggMjAuNy01My42IDIyLjEtOC4xIC44LTE0LjYtNS43LTEzLjgtMTMuOCAxLjQtMTQuNyA2LjMtMzcuOCAyMi4xLTUzLjYgNS44LTUuOCAxMi42LTEwLjEgMTkuNi0xMy40LTctMy4yLTEzLjgtNy42LTE5LjYtMTMuNC0xNS44LTE1LjgtMjAuNy0zOC44LTIyLjEtNTMuNi0uOC04LjEgNS43LTE0LjYgMTMuOC0xMy44IDE0LjcgMS40IDM3LjggNi4zIDUzLjYgMjIuMSA0LjggNC44IDguNyAxMC40IDExLjcgMTYuMSAyMS4zLTQxLjIgNjQuMy02OS40IDExMy44LTY5LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjh6TTE0NCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDE2MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2em0tMS40IDIxMWw2NyA1MC4yYzguNSA2LjQgMjAuMyA2LjQgMjguOCAwbDY3LTUwLjJjNi41LTQuOSAxNS4yLTYuMiAyMi42LTIuOCA2MS40IDI4LjIgMTA0LjEgOTAuMiAxMDQuMSAxNjIuMSAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w0NS43IDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC03MiA0Mi43LTEzNCAxMDQuMS0xNjIuMSA3LjQtMy40IDE2LjEtMi4xIDIyLjYgMi44eiJdfSxkYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbnQtd2lsdCIsaWNvbjpbNTEyLDUxMixbXSwiZTVhYSIsIk0zNDQtMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA2LjJjMjkuMyAxMi4yIDQ4IDQxLjMgNDggNzYuOSAwIDI3LjktMjUuMyA3NC44LTY2IDExMS43LTMuOCAzLjUtOC44IDUuMy0xNCA1LjNzLTEwLjItMS44LTE0LTUuM2MtNDAuNy0zNi44LTY2LTgzLjctNjYtMTExLjcgMC0zNS42IDE4LjctNjQuNyA0OC03Ni45bDAtNi4yYzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgNDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjk2YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgMzguMmMyOS4zIDEyLjIgNDggNDEuMyA0OCA3Ni45IDAgMjcuOS0yNS4zIDc0LjgtNjYgMTExLjctMy44IDMuNS04LjggNS4zLTE0IDUuM3MtMTAuMi0xLjgtMTQtNS4zQzI1LjMgNDA1LjkgMCAzNTkgMCAzMzEuMSAwIDI5NS40IDE4LjcgMjY2LjQgNDggMjU0LjJMNDggMjE2YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwIDIwLjIgMCAzOS4zIDUgNTYgMTMuOEwyMjQgODhjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjB6Il19LEdQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3ZWlnaHQtc2NhbGUiLGljb246WzQ0OCw1MTIsWyJ3ZWlnaHQiXSwiZjQ5NiIsIk0xMTYuNiAxOTJjLTMtMTAuMS00LjYtMjAuOS00LjYtMzIgMC02MS45IDUwLjEtMTEyIDExMi0xMTJTMzM2IDk4LjEgMzM2IDE2MGMwIDExLjEtMS42IDIxLjktNC42IDMybC03MSAwIDI0LjYtNDQuM2M2LjQtMTEuNiAyLjMtMjYuMi05LjMtMzIuNnMtMjYuMi0yLjMtMzIuNiA5LjNsLTM3LjYgNjcuNy04OC44IDB6TTEyOCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwQzI5My4zIDExLjkgMjYwIDAgMjI0IDBzLTY5LjMgMTEuOS05NiAzMnoiXX0sdWJyPUdQZSxjcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyZXQtcmlnaHQiLGljb246WzI1Niw1MTIsW10sImYwZGEiLCJNMjQ5LjMgMjM1LjhjMTAuMiAxMi42IDkuNSAzMS4xLTIuMiA0Mi44bC0xMjggMTI4Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVM2NC41IDM5Ni45IDY0LjUgMzg0bDAtMjU2YzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsMTI4IDEyOCAyLjIgMi40eiJdfSxwYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxvcmluLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxODQiLCJNMzE0LjcgMzJjLTM4LjggMC03My43IDIzLjMtODguNiA1OS4xTDE3MC43IDIyNCA2NCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODAgMC00NS4xIDEwOC4zYy01IDExLjktMTYuNiAxOS43LTI5LjUgMTkuN0wzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzcuMyAwYzM4LjggMCA3My43LTIzLjMgODguNi01OS4xTDIxMy4zIDI4OCAzMjAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDQ1LjEtMTA4LjNjNS0xMS45IDE2LjYtMTkuNyAyOS41LTE5LjdMMzUyIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNy4zIDB6Il19LGRwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWxsIixpY29uOls0NDgsNTEyLFsxMjgyNzYsNjE2MDJdLCJmMGYzIiwiTTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMuMkMxMTkgNTAgNjQgMTE0LjYgNjQgMTkybDAgMjEuN2MwIDQ4LjEtMTYuNCA5NC44LTQ2LjQgMTMyLjRMNy44IDM1OC4zQzIuNyAzNjQuNiAwIDM3Mi40IDAgMzgwLjUgMCA0MDAuMSAxNS45IDQxNiAzNS41IDQxNmwzNzYuOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4ybC05LjgtMTIuMkM0MDAuNCAzMDguNSAzODQgMjYxLjggMzg0IDIxMy43bDAtMjEuN2MwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOGwwLTMuMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTYyIDQ2NGM3LjEgMjcuNiAzMi4yIDQ4IDYyIDQ4czU0LjktMjAuNCA2Mi00OGwtMTI0IDB6Il19LGZicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXJpLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxYzgiLCJNMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MS41YzcuOS0xIDE1LjktMS41IDI0LTEuNXMxNi4xIC41IDI0IDEuNUwyMTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDU0YzU4LjkgMjMuOCAxMDMuMiA3NiAxMTYuMiAxMzkuNyAzLjUgMTcuMy03LjcgMzQuMi0yNSAzNy43cy0zNC4yLTcuNy0zNy43LTI1Yy02LjctMzMuMi0yNi40LTYxLjgtNTMuNC04MC4ybDAgODEuOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwMS44Yy03LjgtMS41LTE1LjgtMi4yLTI0LTIuMnMtMTYuMiAuOC0yNCAyLjJMMTY4IDIzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgxLjhjLTMzLjggMjMtNTYgNjEuOS01NiAxMDUuOCAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYuOSAwQzE4LjUgMzUwIDAgMzA1LjIgMCAyNTYgMCAxNzUuNCA0OS42IDEwNi40IDEyMCA3OGwwLTU0YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxoYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWlsbC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWVkIiwiTTI5Ny0yMi4yYzEyLjMgNSAxOC4yIDE5IDEzLjIgMzEuM2wtMjkgNzEuM0MzMzguOCA4NS4xIDM4NCAxMzMuMyAzODQgMTkybDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4LTYuNCAwLTEyLjUgMS4yLTE4IDMuNWwtMzAgNzMuOCAwIDE3OC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjEuMi01Ny44IDE0Mi4yYy01IDEyLjMtMTkgMTguMi0zMS4zIDEzLjJzLTE4LjItMTktMTMuMi0zMS4zTDE2MCAyNTEuMyAxNjAgMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDE3LjcgMCA0MDBMMCAxMTJjMC0xNy43IDE0LjMtMzIgMzItMzIgMTAuOSAwIDIwLjUgNS40IDI2LjMgMTMuNyAxNi04LjcgMzQuMy0xMy43IDUzLjctMTMuNyAzMS4zIDAgNTkuNyAxMi45IDgwIDMzLjYgOS42LTkuOCAyMC45LTE3LjggMzMuNS0yMy41TDI2NS44LTljNS0xMi4zIDE5LTE4LjIgMzEuMy0xMy4yeiJdfSxZUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNub3dib2FyZGluZyIsaWNvbjpbNTc2LDUxMixbMTI3OTM4LCJzbm93Ym9hcmRpbmciXSwiZjdjZSIsIk00MjQuNSAxNmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTY2LjQgNDUuNWMxMC4yLTE0LjQgMzAuMi0xNy45IDQ0LjYtNy43bDI3MiAxOTJjMTQuNCAxMC4yIDE3LjkgMzAuMiA3LjcgNDQuNnMtMzAuMiAxNy45LTQ0LjYgNy43bC05Mi4yLTY1LjEtNjIuMiA1My4zIDMyLjEgMjYuN2MxOC4yIDE1LjIgMjguOCAzNy43IDI4LjggNjEuNWwwIDg3LjggNzcuNSAxNS4yYzYuMiAxLjIgMTIuNiAuOSAxOC43LS44bDQxLjItMTEuOGMxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC00MS4yIDExLjhjLTEzLjQgMy44LTI3LjQgNC40LTQxLjEgMS44TDg3LjEgNDQzLjNjLTE3LjItMy40LTMzLTExLjgtNDUuMy0yNC4xTDE1LjUgMzkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjYuMiAyNi4yYzUuNiA1LjYgMTIuOCA5LjQgMjAuNiAxMWw2NC4yIDEyLjYgMC0xMjMuN2MwLTI3LjcgMTItNTQgMzIuOC03Mi4ybDY5LTYwLjQtODguMi02Mi4zQzE1OS42IDgwIDE1Ni4yIDYwIDE2Ni40IDQ1LjV6bTU4LjEgMzc1LjdsNjQgMTIuNSAwLTc1LjNjMC00LjctMi4xLTkuMy01LjgtMTIuM2wtNTguMi00OC41IDAgMTIzLjZ6Il19LG1icj1ZUGUsS1BlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR0eSIsaWNvbjpbNTEyLDUxMixbInRlbGV0eXBlIl0sImYxZTQiLCJNNDUwLjIgMjY2LjhjMTUuOCA2LjUgMzQuMSAuMyA0Mi42LTE0LjZsMi40LTQuMmMyNy45LTQ4LjkgMjMuNi0xMTguOC0zMS4zLTE1NC41LTEyNi04Mi0yODkuNi04Mi00MTUuNiAwLTU0LjkgMzUuNy01OS4zIDEwNS43LTMxLjMgMTU0LjVsMi40IDQuMmM4LjUgMTQuOSAyNi43IDIxLjEgNDIuNiAxNC42bDgxLjktMzMuN2MxMy45LTUuNyAyMi40LTE5LjkgMjAuOS0zNC45bC01LjEtNTFjNjIuNS0yMSAxMzAuOC0xOS45IDE5Mi42IDMuM2wtNC44IDQ3LjdjLTEuNSAxNSA3IDI5LjIgMjAuOSAzNC45bDgxLjkgMzMuN3pNMzIgMzUyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTk2IDBhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHpNNjQgNDE2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMzUyIDMyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6TTI1NiAzMjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em02NCAzMmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwem0xMjgtMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek0xMjggNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LGdicj1LUGUsYmJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXJlY3RhbmdsZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMjQgNzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTAgMTUyYzUzIDAgOTYgNDMgOTYgOTZsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjRjMC01MyA0My05NiA5Ni05NnptOTYtNjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTY4IDI3Mi4zYy0xNS4yIDIyLjgtMjQgNTAuMi0yNCA3OS43bDAgMjRjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC00Ni44IDBDODkuNiA0MDAgODAgMzkwLjQgODAgMzc4LjdMODAgMzY4YzAtNTAuMyAzOC43LTkxLjYgODgtOTUuN3pNNDI3LjkgNDAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0bDAtMjRjMC0yOS41LTguOC01Ni45LTI0LTc5LjcgNDkuMyA0LjEgODggNDUuMyA4OCA5NS43bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC00Ni44IDB6TTk2IDE5MmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSxndWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlIixpY29uOlszODQsNTEyLFsxMjgyNDEsIm1vYmlsZS1hbmRyb2lkIiwibW9iaWxlLXBob25lIl0sImYzY2UiLCJNODAgMEM0NC43IDAgMTYgMjguNyAxNiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw4MCAwem03MiA0MTZsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0seGJyPWd1ZSx2YnI9Z3VlLHlicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdHVybi10by1kb3RzIixpY29uOls0NDgsNTEyLFtdLCJlNGMxIiwiTTI2NS40LTYuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDI4NS4zIDY0IDM1MiA2NGM1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjYuNyAwIDI1LjQgMjUuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDgwLTgwem0tODIuNyAyNzJsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNjIuNyA0MDAgOTYgNDAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDgxLjcgMCA0NjRsMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDY2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDB6TTMyMCAzNjhhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek02NCAxNjBhNjQgNjQgMCAxIDEgMC0xMjggNjQgNjQgMCAxIDEgMCAxMjh6Il19LHdicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleGNsYW1hdGlvbiIsaWNvbjpbMTI4LDUxMixbMTAwNjksMTAwNzEsNjE3MzhdLCIyMSIsIk02NCA0MzJjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MGMwLTIyLjEgMTcuOS00MCA0MC00MHpNNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIC42IDAgMS4xIDAgMS43bC0xNiAzMDRjLS45IDE3LTE1IDMwLjMtMzIgMzAuM1MzMyAzNzAuNyAzMiAzNTMuN0wxNiA0OS43YzAtLjYgMC0xLjEgMC0xLjcgMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LGticj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaHVyY2giLGljb246WzUxMiw1MTIsWzk5NjJdLCJmNTFkIiwiTTI4MC04YzAtMTMuMy0xMC43LTI0LTI0LTI0UzIzMi0yMS4zIDIzMi04bDAgMjQtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgNDgtOTguNiA2NS44QzEyMCAxODYuNyAxMTIgMjAxLjYgMTEyIDIxNy43bDAgMzguMy03OS44IDQ1LjZDMTIuMyAzMTMgMCAzMzQuMiAwIDM1Ny4xTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDc0LjcgMCA4NS40IDAgMzIwIDBsNjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTkwLjljMC0yMy0xMi4zLTQ0LjItMzIuMi01NS42TDQwMCAyNTYgNDAwIDIxNy43YzAtMTYtOC0zMS0yMS40LTM5LjlsLTk4LjYtNjUuOCAwLTQ4IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0yNHpNMjU2IDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDgwLTEyOCAwIDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LFNicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2dnbGUtb2ZmIixpY29uOls1NzYsNTEyLFtdLCJmMjA0IiwiTTM4NCAxMjhjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNDU0LjcgMzg0IDM4NCAzODRsLTE5MiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHM1Ny4zLTEyOCAxMjgtMTI4bDE5MiAwek01NzYgMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyTDE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OGwxOTIgMGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMTkyIDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sTWJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob2UtcHJpbnRzIixpY29uOls1NzYsNTEyLFtdLCJmNTRiIiwiTTI5NiAxOTJjLTIxLjEtMTIuMS00Mi4zLTI0LjItNzItMjkuM2wwLTE0MC4zQzI1Ny43IDEzIDMxMS40IDAgMzUyIDAgNDQ4IDAgNTc2IDQ4IDU3NiAxMjhzLTExOS42IDk2LTE3NiA5NmMtNDggMC03Ni0xNi0xMDQtMzJ6TTEyOCAzMmw0OCAwIDAgMTI4LTQ4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjR6TTIzMiAzMjBjMjgtMTYgNTYtMzIgMTA0LTMyIDU2LjQgMCAxNzYgMTYgMTc2IDk2UzM4NCA1MTIgMjg4IDUxMmMtNDAuNSAwLTk0LjMtMTMtMTI4LTIyLjRsMC0xNDAuM2MyOS43LTUuMiA1MC45LTE3LjMgNzItMjkuNHpNNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0bDQ4IDAgMCAxMjgtNDggMHoiXX0sQ2JyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGViIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LHVwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YWxsZXQiLGljb246WzUxMiw1MTIsW10sImY1NTUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw3MiAxMjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzU4LjcgODAgNzIgODBsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgMzJ6TTQxNiAyNTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxXXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZXNzYWdlIixpY29uOls1MTIsNTEyLFsiY29tbWVudC1hbHQiXSwiZjI3YSIsIk0wIDM1MkwwIDEyOEMwIDc1IDQzIDMyIDk2IDMybDMyMCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCA1My00MyA5Ni05NiA5NmwtMTIwIDBjLTUuMiAwLTEwLjIgMS43LTE0LjQgNC44TDE2Ni40IDUzOS4yYy00LjIgMy4xLTkuMiA0LjgtMTQuNCA0LjgtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC03Mi0zMiAwYy01MyAwLTk2LTQzLTk2LTk2eiJdfSx6YnI9V18sX2JyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyb3BoeSIsaWNvbjpbNTEyLDUxMixbMTI3OTQyXSwiZjA5MSIsIk0xNDQuMyAwbDIyNCAwYzI2LjUgMCA0OC4xIDIxLjggNDcuMSA0OC4yLS4yIDUuMy0uNCAxMC42LS43IDE1LjhsNDkuNiAwYzI2LjEgMCA0OS4xIDIxLjYgNDcuMSA0OS44LTcuNSAxMDMuNy02MC41IDE2MC43LTExOCAxOTAuNS0xNS44IDguMi0zMS45IDE0LjMtNDcuMiAxOC44LTIwLjIgMjguNi00MS4yIDQzLjctNTcuOSA1MS44bDAgNzMuMSA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtNzMuMWMtMTYtNy43LTM1LjktMjItNTUuMy00OC4zLTE4LjQtNC44LTM4LjQtMTIuMS01Ny45LTIzLjEtNTQuMS0zMC4zLTEwMi45LTg3LjQtMTA5LjktMTg5LjktMS45LTI4LjEgMjEtNDkuNyA0Ny4xLTQ5LjdsNDkuNiAwYy0uMy01LjItLjUtMTAuNC0uNy0xNS44LTEtMjYuNSAyMC42LTQ4LjIgNDcuMS00OC4yek0xMDEuNSAxMTJsLTUyLjQgMGM2LjIgODQuNyA0NS4xIDEyNy4xIDg1LjIgMTQ5LjYtMTQuNC0zNy4zLTI2LjMtODYtMzIuOC0xNDkuNnpNMzgwIDI1Ni44YzQwLjUtMjMuOCA3Ny4xLTY2LjEgODMuMy0xNDQuOEw0MTEgMTEyYy02LjIgNjAuOS0xNy40IDEwOC4yLTMxIDE0NC44eiJdfSxaUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1kaXp6eSIsaWNvbjpbNTEyLDUxMixbImRpenp5Il0sImY1NjciLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEzNC4xIDE1My45bDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwem0xOTIgMGwyNS45IDI1LjkgMjUuOS0yNS45YzcuOC03LjggMjAuNS03LjggMjguMyAwczcuOCAyMC41IDAgMjguM2wtMjUuOSAyNS45IDI1LjkgMjUuOWM3LjggNy44IDcuOCAyMC41IDAgMjguM3MtMjAuNSA3LjgtMjguMyAwbC0yNS45LTI1LjktMjUuOSAyNS45Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMHMtNy44LTIwLjUgMC0yOC4zbDI1LjktMjUuOS0yNS45LTI1LjljLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMHpNMjU2IDMwNGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sVGJyPVpQZSxMYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjdGVyaWEiLGljb246WzY0MCw1MTIsW10sImUwNTkiLCJNMjU2LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTFjOC42IDIuMiAxNi45IDUuNiAyNC44IDEwLjNMMzExIDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02LjMgNi4zYzQuNiA3LjggOCAxNi4yIDEwLjMgMjQuOGwxMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMSAwYy0yLjIgOC42LTUuNiAxNi45LTEwLjMgMjQuOEwzNDUgMTUxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjEtMzAuMSAzMC4xIDQuMSA0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMWMtMTAgMTAtMjAgMjAtMzAuMSAzMC4xTDIxNyAyNzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNi4zLTYuM2MtNy44IDQuNi0xNi4yIDgtMjQuOCAxMC4zbDAgMTFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMWMtOC42LTIuMi0xNi45LTUuNi0yNC44LTEwLjNMNzMgMzEzYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDYuMy02LjNjLTQuNi03LjgtOC0xNi4yLTEwLjMtMjQuOGwtMTEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMSAwYzIuMi04LjYgNS42LTE2LjkgMTAuMy0yNC44TDM5IDE2OWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjFjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDEwMyAxMDVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xIDMwLjEtMzAuMS00LjEtNC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOVMxOTEuNi0yLjMgMjAxIDdsNi4zIDYuM2M3LjgtNC42IDE2LjItOCAyNC44LTEwLjNsMC0xMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTI4IDI1NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI0MCAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjk2IDQwbDAgMTFjOC42IDIuMiAxNi45IDUuNiAyNC44IDEwLjNMNTY3IDE5OWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTYuMyA2LjNjNC42IDcuOCA4IDE2LjIgMTAuMyAyNC44bDExIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExIDBjLTIuMiA4LjYtNS42IDE2LjktMTAuMyAyNC44TDYwMSAzNDNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMS0zMC4xIDMwLjEgNC4xIDQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xYy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMNDczIDQ3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02LjMtNi4zYy03LjggNC42LTE2LjIgOC0yNC44IDEwLjNsMCAxMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExYy04LjYtMi4yLTE2LjktNS42LTI0LjgtMTAuM0wzMjkgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDYuMy02LjNjLTQuNi03LjgtOC0xNi4yLTEwLjMtMjQuOGwtMTEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMSAwYzIuMi04LjYgNS42LTE2LjkgMTAuMy0yNC44TDI5NSAzNjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xYzEwLTEwIDIwLTIwIDMwLjEtMzAuMUwzNTkgMjk3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMSAzMC4xLTMwLjEtNC4xLTQuMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDYuMyA2LjNjNy44LTQuNiAxNi4yLTggMjQuOC0xMC4zbDAtMTFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpNNDQ4IDM4NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxUXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXItZGVhZiIsaWNvbjpbNTEyLDUxMixbImRlYWYiLCJkZWFmbmVzcyIsImhhcmQtb2YtaGVhcmluZyJdLCJmMmE0IiwiTTUwMi42IDU0LjZsLTQwIDQwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w0MC00MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0tMzIwIDMyMGwtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTI4LTEyOGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0yNDAgMTI4Yy01Ny42IDAtMTA1LjEgNDMuNi0xMTEuMyA5OS41LTEuOSAxNy42LTE3LjggMzAuMi0zNS4zIDI4LjNzLTMwLjItMTcuOC0yOC4zLTM1LjNjOS43LTg4IDg0LjMtMTU2LjUgMTc0LjktMTU2LjUgOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCA0Ni0xNy43IDg3LjktNDYuNiAxMTkuMy0xMiAxMy0xNy40IDI0LjgtMTcuNCAzNC43bDAgNi4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02LjFjMC0zMi45IDE3LjQtNTkuNiAzNC40LTc4IDE4LjQtMjAgMjkuNi00Ni42IDI5LjYtNzUuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMnptMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sRGJyPVRfLCRicj1UXyxBYnI9VF8sUVBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1hcnJvd3MiLGljb246WzUxMiw1MTIsWyJwZW9wbGUtYXJyb3dzLWxlZnQtcmlnaHQiXSwiZTA2OCIsIk0zMiA2NEE2NCA2NCAwIDEgMSAxNjAgNjQgNjQgNjQgMCAxIDEgMzIgNjR6TTAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMy4yIDAgNi40IC4yIDkuNSAuN0w5My4xIDIwNS4xQzY1IDIzMy4yIDY1IDI3OC44IDkzLjEgMzA2LjlsNTYgNTZjMy40IDMuNCA3IDYuNCAxMC45IDlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyMC42QzEyLjkgMzMyLjQgMCAzMTEuNyAwIDI4OGwwLTY0ek0zNTIgNjRhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem02Ni45IDE0MS4xbC00NC40LTQ0LjRjMy4xLS41IDYuMy0uNyA5LjUtLjdsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNEw0ODAgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFjMy45LTIuNiA3LjUtNS42IDEwLjktOWw1Ni01NmMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjh6TTMwMi44IDE3Ny44YzktMy43IDE5LjMtMS43IDI2LjIgNS4ybDU2IDU2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC01NiA1NmMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMyODggMzIxLjcgMjg4IDMxMmwwLTI0LTY0IDAgMCAyNGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC01Ni01NmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNTYtNTZjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMyMjQgMTkwLjMgMjI0IDIwMGwwIDI0IDY0IDAgMC0yNGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJ6Il19LEVicj1RUGUsSWJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWNsYXBwaW5nIixpY29uOls1MTIsNTEyLFtdLCJlMWE4IiwiTTM0NCA4bDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNFMzNDQtNS4zIDM0NCA4ek0yMjAgMTAuN2wzMiA0OGM3LjQgMTEgNC40IDI1LjktNi43IDMzLjNzLTI1LjkgNC40LTMzLjMtNi43bC0zMi00OGMtNy40LTExLTQuNC0yNS45IDYuNy0zMy4zUzIxMi42LS4zIDIyMCAxMC43ek0xMzUgMTE5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI5Mi43IDI0Mi43YzEwLjEgMTAuMSAyNy4zIDIuOSAyNy4zLTExLjNsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjQtNjQgMzguNC0xNDUuOCAyOC4zLTE5OC41LTI0LjRMNyAzNjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw1MyA1M2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMUwyMyAyNjVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw5MyA5M2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMUw1NSAxODVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxMTcgMTE3YzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xbC05My05M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6TTQzMy4xIDQ4NC45Yy0yNC4yIDE0LjUtNTAuOSAyMi4xLTc3LjcgMjMuMSA0OC4xLTM5LjYgNzYuNi05OSA3Ni42LTE2Mi40bDAtOTguMWM4LjItLjEgMTYtNi40IDE2LTE2bDAtMzkuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTUzLjZjMCA1Ny4xLTMwIDExMC03OC45IDEzOS40ek00NTMuMyA0YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zbC0zMiA0OGMtNy40IDExLTIyLjMgMTQtMzMuMyA2LjdzLTE0LTIyLjMtNi43LTMzLjNsMzItNDhjNy40LTExIDIyLjMtMTQgMzMuMy02Ljd6Il19LFBicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1cy1jb3ZpZC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTRhOSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04My04MyAxMS40LTExLjRjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMTEuMyAxMS4zLTIzLjgtMjMuOGMxNy45LTIzLjUgMjkuOS01MS43IDM0LjEtODIuM2wzMy42IDAgMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0zMy42IDBjLTQuMi0zMC43LTE2LjMtNTguOC0zNC4xLTgyLjNsMjMuOC0yMy44IDExLjMgMTEuM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDQwLjcgNDYuN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxMS4zIDExLjMtMjMuOCAyMy44QzM3MC44IDk3LjkgMzQyLjcgODUuOCAzMTIgODEuNmwwLTMzLjYgMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzNDEuMyAwIDMyOCAwTDI0OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDAgMCAzMy42Yy0zMC43IDQuMi01OC44IDE2LjMtODIuMyAzNC4xTDE1Ny45IDkyIDE2OS4yIDgwLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwxMjMuOSA1OC4xIDQxLTI0Ljl6TTExMy42IDIzMmwtMzMuNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgMzMuNiAwYzQuMiAzMC43IDE2LjMgNTguOCAzNC4xIDgyLjNsLTIzLjggMjMuOC0xMS4zLTExLjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTYuNiA1Ni42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTEuMy0xMS4zIDIzLjgtMjMuOGMyMy41IDE3LjkgNTEuNyAyOS45IDgyLjMgMzQuMWwwIDMzLjYtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwIDAtMzMuNmMxMy40LTEuOCAyNi40LTUuMiAzOC43LTkuOUwxMjMuNSAxOTMuM2MtNC43IDEyLjMtOCAyNS4yLTkuOSAzOC43eiJdfSxYUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItZGF5cyIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLWFsdCJdLCJmMDczIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMjQwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTEyOCAwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE0NC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek02NCAzNjhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxOYnI9WFBlLEpQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFtb25kLXR1cm4tcmlnaHQiLGljb246WzUxMiw1MTIsWyJkaXJlY3Rpb25zIl0sImY1ZWIiLCJNMjE1IDE3TDE3IDIxNUM2LjEgMjI1LjkgMCAyNDAuNiAwIDI1NnM2LjEgMzAuMSAxNyA0MUwyMTUgNDk1YzEwLjkgMTAuOSAyNS42IDE3IDQxIDE3czMwLjEtNi4xIDQxLTE3TDQ5NSAyOTdjMTAuOS0xMC45IDE3LTI1LjYgMTctNDFzLTYuMS0zMC4xLTE3LTQxTDI5NyAxN0MyODYuMSA2LjEgMjcxLjQgMCAyNTYgMHMtMzAuMSA2LjEtNDEgMTd6TTM4NSAyNTdsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTc4LjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwYzAtMzkuOCAzMi4yLTcyIDcyLTcybDc4LjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45eiJdfSxPYnI9SlBlLFJicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LXVwIixpY29uOlszODQsNTEyLFs5NzU3XSwiZjBhNiIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwUzk2IDE0LjMgOTYgMzJsMCAyMDgtNjQgMCAwLTIwOHpNMjI0IDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTY0LTY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYwIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tOTYgODhsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNiAxMy4yIDAgMjUuNC00IDM1LjYtMTAuOCA4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44IDExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDM3LjUgNDUzLjVDMTMuNSA0MjkuNSAwIDM5Ni45IDAgMzYzbDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyeiJdfSxGYnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmV6aWVyLWN1cnZlIixpY29uOls2NDAsNTEyLFtdLCJmNTViIiwiTTI5NiAxMzZsMC00OCA0OCAwIDAgNDgtNDggMHpNMjg4IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDQtMTE4LjQgMEMxMTEuMiA2Mi43IDg5LjMgNDggNjQgNDggMjguNyA0OCAwIDc2LjcgMCAxMTJzMjguNyA2NCA2NCA2NGMyNS4zIDAgNDcuMi0xNC43IDU3LjYtMzZsNjYuOSAwYy01OC45IDM5LjYtOTguOSAxMDUtMTA0IDE4MEw4MCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zLjMgMGM1LjktNjcgNDguNS0xMjMuNCAxMDcuNS0xNDkuMSA4LjYgMTIuNyAyMy4yIDIxLjEgMzkuOCAyMS4xbDY0IDBjMTYuNiAwIDMxLjEtOC40IDM5LjgtMjEuMSA1OSAyNS43IDEwMS42IDgyLjEgMTA3LjUgMTQ5LjFsLTMuMyAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtNC41IDBjLTUtNzUtNDUuMS0xNDAuNC0xMDQtMTgwbDY2LjkgMGMxMC40IDIxLjMgMzIuMyAzNiA1Ny42IDM2IDM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0Yy0yNS4zIDAtNDcuMiAxNC43LTU3LjYgMzZsLTExOC40IDAgMC00YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek04OCAzNzZsNDggMCAwIDQ4LTQ4IDAgMC00OHptNDE2IDQ4bDAtNDggNDggMCAwIDQ4LTQ4IDB6Il19LEJicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24taGFsZi1kcmVzcyIsaWNvbjpbMzg0LDUxMixbXSwiZTU0OCIsIk0xNDMuNC0zLjljOS43LTE2LjggMjcuOC0yOC4xIDQ4LjYtMjguMSAzMC45IDAgNTYgMjUuMSA1NiA1NiAwIDI1LjQtMTYuOSA0Ni44LTQwIDUzLjdsMCAwYy01LjEgMS41LTEwLjQgMi4zLTE2IDIuMy0zMC45IDAtNTYtMjUuMS01Ni01NmwwIDBjMC0xMC4xIDIuNy0xOS43IDcuNC0yNy45ek0zMTguMyAyOTkuMUwyNzIgMjM2LjcgMjcyIDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MCAwLS40IDAtMjM4LjZjMzYuMiA0LjQgNjkuMiAyMy40IDkxLjIgNTNsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42ek0xNzYgMTEzbDAgMzk5YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTI1LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsNDMtMTI5LTQ4LjMgNjUuMWMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVjMjItMjkuNiA1NS4xLTQ4LjYgOTEuMi01M3oiXX0sZU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLWhvcml6b250YWwiLGljb246WzQ0OCw1MTIsWyJwb2xsLWgiXSwiZjY4MiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjU2IDE1MmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6bTcyIDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMDggMHpNMTkyIDM2MGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0eiJdfSxIYnI9ZU5lLHFicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTZkIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LFZicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWxpemFyZCIsaWNvbjpbNTEyLDUxMixbXSwiZjI1OCIsIk0wIDExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NGwyMzguNSAwYzM2LjggMCA3MS4yIDE4IDkyLjEgNDguMmwxMTMuNSAxNjRjMTMgMTguNyAxOS45IDQxIDE5LjkgNjMuOGwwIDc2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzLjgtNzguMS01MC4yLTE2MS45IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhMNDggMTYwYy0yNi41IDAtNDgtMjEuNS00OC00OHoiXX0sdE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYWxrYm9hcmQiLGljb246WzU3Niw1MTIsWyJibGFja2JvYXJkIl0sImY1MWIiLCJNOTYgNjRjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDY0ek00ODAgMzg0bC02NCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMTYwIDAgMC0yNTYgMzg0IDAgMCAyNTZ6Il19LGpicj10TmUsck5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLXJpZ2h0LWZyb20tc3F1YXJlIixpY29uOls1MTIsNTEyLFsiZXh0ZXJuYWwtbGluay1hbHQiXSwiZjM1ZCIsIk0yOTAuNCAxOS44QzI5NS40IDcuOCAzMDcuMSAwIDMyMCAwTDQ4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45TDQwMCAxNTcuMyAyNDYuNiAzMTAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMzU0LjcgMTEyIDI5Ny40IDU0LjZjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45ek0wIDE3NmMwLTQ0LjIgMzUuOC04MCA4MC04MGw4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDI1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA4MGMwIDQ0LjItMzUuOCA4MC04MCA4MEw4MCA1MTJjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgMTc2eiJdfSxVYnI9ck5lLFdicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtZnVsbCIsaWNvbjpbNTEyLDUxMixbMTI4OTk3LDEyODk5OCwxMjg5OTksMTI5ZTMsMTI5MDAxLDEyOTAwMiwxMjkwMDMsMTEwMzUsMTEwMzZdLCJmNDVjIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHoiXX0sR2JyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3ZlciIsaWNvbjpbNTEyLDUxMixbXSwiZTEzOSIsIk0zMTAuNCAxNkMzNDYuNiAxNiAzNzYgNDUuNCAzNzYgODEuN2wwIDUuMmMwIDExLjItMi43IDIyLjMtNy44IDMyLjJsLTIuMyA0LjItMjAuMSAzMy41Yy0xLjEgMS45LTEuMiAzLjQtMS4xIDQuNSAuMiAxLjMgLjkgMi43IDIuMSAzLjlzMi42IDEuOSAzLjkgMi4xYzEuMSAuMiAyLjYgLjEgNC41LTEuMWwzMy41LTIwLjEgNC4yLTIuM2MxMC01LjEgMjEtNy44IDMyLjItNy44bDUuMiAwYzM2LjIgMCA2NS42IDI5LjQgNjUuNiA2NS43IDAgMTcuNC02LjkgMzQuMS0xOS4yIDQ2LjRsLTEuMyAxLjNjLTMuNyAzLjctMy43IDkuNiAwIDEzLjNsMS4zIDEuM2MxMi4zIDEyLjMgMTkuMiAyOSAxOS4yIDQ2LjQgMCAzNi4yLTI5LjQgNjUuNi02NS42IDY1LjZsLTUuMiAwYy0xMi44IDAtMjUuNS0zLjUtMzYuNS0xMC4xbC0zMy41LTIwLjFjLTEuOS0xLjEtMy40LTEuMi00LjUtMS4xLTEuMyAuMi0yLjcgLjktMy45IDIuMXMtMS45IDIuNi0yLjEgMy45Yy0uMiAxLjEtLjEgMi42IDEuMSA0LjVsMjAuMSAzMy41YzYuNiAxMSAxMC4xIDIzLjYgMTAuMSAzNi41bDAgNS4yYzAgMzYuMi0yOS40IDY1LjYtNjUuNiA2NS42LTE3LjQgMC0zNC4xLTYuOS00Ni40LTE5LjJsLTEuMy0xLjNjLTMuNy0zLjctOS42LTMuNy0xMy4zIDBsLTEuMyAxLjNjLTEyLjMgMTIuMy0yOSAxOS4yLTQ2LjQgMTkuMi0zNi4yIDAtNjUuNi0yOS40LTY1LjctNjUuNmwwLTUuMmMwLTEyLjggMy41LTI1LjUgMTAuMS0zNi41bDIwLjEtMzMuNWMxLjEtMS45IDEuMi0zLjQgMS4xLTQuNS0uMi0xLjMtLjktMi43LTIuMS0zLjlzLTIuNi0xLjktMy45LTIuMWMtLjUtLjEtMS4yLS4xLTEuOSAwbC0yLjUgMS0zMy41IDIwLjFjLTExIDYuNi0yMy42IDEwLjEtMzYuNSAxMC4xbC01LjIgMEM0NS40IDM3NiAxNiAzNDYuNiAxNiAzMTAuNCAxNiAyOTMgMjIuOSAyNzYuMyAzNS4yIDI2NGwxLjMtMS4zIDEuMi0xLjVjMi4xLTMuMSAyLjEtNy4yIDAtMTAuM2wtMS4yLTEuNS0xLjMtMS4zQzIyLjkgMjM1LjggMTYgMjE5LjEgMTYgMjAxLjcgMTYgMTY1LjQgNDUuNCAxMzYgODEuNyAxMzZsNS4yIDBjMTIuOCAwIDI1LjUgMy41IDM2LjUgMTAuMWwzMy41IDIwLjEgMi41IDFjLjcgLjEgMS40IC4xIDEuOSAuMSAxLjMtLjIgMi43LS45IDMuOS0yLjFzMS45LTIuNiAyLjEtMy45Yy4xLS41IC4xLTEuMi0uMS0xLjlsLTEtMi41LTIwLjEtMzMuNWMtNi42LTExLTEwLjEtMjMuNi0xMC4xLTM2LjVsMC01LjJjMC0zNi4yIDI5LjQtNjUuNyA2NS43LTY1LjcgMTcuNCAwIDM0LjEgNi45IDQ2LjQgMTkuMmwxLjMgMS4zYzMuNyAzLjYgOS42IDMuNyAxMy4zIDBsMS4zLTEuMyA0LjgtNC40QzI4MC41IDIxLjMgMjk1LjEgMTYgMzEwLjQgMTZ6Il19LFlicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZWV0aC1vcGVuIixpY29uOls1MTIsNTEyLFtdLCJmNjJmIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA4MGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0wIDI3MmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMwNHptODAtMTYwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNHptMTI4IDBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0ek04MCAxMTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMzIwIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNHpNNDggMzg0bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6bTE0NCA0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAyNi41LTIxLjUgNDgtNDggNDh6bTExMi0xNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnoiXX0sYnVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMtc3RhZ2dlcmVkIixpY29uOls1MTIsNTEyLFsicmVvcmRlciIsInN0cmVhbSJdLCJmNTUwIiwiTTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NnpNNjQgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxLYnI9YnVlLFpicj1idWUsUWJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhcmVob3VzZSIsaWNvbjpbNTc2LDUxMixbXSwiZjQ5NCIsIk0wIDE0Mi4xTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMzNy45YzAtMjcuNS0xNy42LTUyLTQzLjgtNjAuN0wzMDMuMiA1LjFjLTkuOS0zLjMtMjAuNS0zLjMtMzAuNCAwTDQzLjggODEuNEMxNy42IDkwLjEgMCAxMTQuNiAwIDE0Mi4xek00NjQgMjU2bC0zNTIgMCAwIDY0IDM1MiAwIDAtNjR6TTExMiA0MTZsMzUyIDAgMC02NC0zNTIgMCAwIDY0em0zNTIgMzJsLTM1MiAwIDAgNjQgMzUyIDAgMC02NHoiXX0sWGJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN3YXRjaGJvb2siLGljb246WzUxMiw1MTIsW10sImY1YzMiLCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM2OGMwIDUzLTQzIDk2LTk2IDk2UzAgNDY5IDAgNDE2TDAgNDh6TTI0MCA0MDkuNmwwLTI3MS41IDQ4LjEtNDguMWMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMGw2Ny45IDY3LjljMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMMjQwIDQwOS42ek0yMDUuNSA1MTJsMTkyLTE5MiA2Ni42IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU4LjUgMHpNODAgNjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw4MCA2NHpNNjQgMjA4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTk2IDQ0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LEpicj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW1wZ3JvdW5kIixpY29uOls1MTIsNTEyLFs5OTc4XSwiZjZiYiIsIk0zNDQuOCA1Mi4zYzExLjItMTMuNyA5LjItMzMuOC00LjUtNDVzLTMzLjgtOS4yLTQ1IDQuNWwtMzkuMiA0OC0zOS4yLTQ4QzIwNS42LTEuOSAxODUuNC00IDE3MS43IDcuMnMtMTUuNyAzMS40LTQuNSA0NWw0Ny40IDU4LTIwMiAyNDYuOUM0LjUgMzY3LjEgMCAzNzkuNiAwIDM5Mi42TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzkuNGMwLTEyLjktNC41LTI1LjUtMTIuNy0zNS41bC0yMDItMjQ2LjkgNDcuNC01OHpNMjU2IDI4OGwxMTIgMTI4LTIyNCAwIDExMi0xMjh6Il19LGV4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTU1MiIsIk0xMDQuNSAyNGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bS04IDE4MS4zTDczLjkgMjI3LjljLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM3LjVjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNy41YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDM1LjEtMzUuMWMyMi44LTIyLjggNTMuNi0zNS42IDg1LjgtMzUuNiAzNi45IDAgNzEuOCAxNi44IDk0LjggNDUuNkwyNjIuMyAxODBjNi4xIDcuNiAxNS4zIDEyIDI1IDEybDMzLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzMuMiAwYy0yOS4yIDAtNTYuNy0xMy4zLTc1LTM2bC0zLjgtNC43IDAgMTE1LjIgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhMMTMwIDM0Ny41Yy0yMS4zLTE4LjItMzMuNS00NC45LTMzLjUtNzIuOWwwLTY5LjN6TTk2LjYgMzcxYzIuNCAyLjMgNC44IDQuNiA3LjQgNi44bDQ2IDM5LjQtMi4yIDcuNmMtNC41IDE1LjctMTIuOSAzMC0yNC40IDQxLjVMNTUuMSA1MzQuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjguMy02OC4zYzMuOC0zLjggNi42LTguNiA4LjEtMTMuOEw5Ni42IDM3MXpNNTA1LjUgMzQ1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MnoiXX0sdHhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzZXMiLGljb246WzU3Niw1MTIsW10sImY1MzAiLCJNMTQzLjMgOTZjLTE0IDAtMjYuNSA5LjItMzAuNiAyMi42TDcwLjQgMjU2IDIyNCAyNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsNjQgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNTMuNiAwLTQyLjMtMTM3LjRDNDU5LjIgMTA1LjIgNDQ2LjggOTYgNDMyLjcgOTZMNDAwIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyLjcgMGM0Mi4xIDAgNzkuNCAyNy41IDkxLjggNjcuOGw0NS40IDE0Ny41YzQuMSAxMy4yIDYuMSAyNi45IDYuMSA0MC43bDAgOTZjMCA1My00MyA5Ni05NiA5NmwtNjQgMGMtNTMgMC05Ni00My05Ni05NmwwLTMyLTY0IDAgMCAzMmMwIDUzLTQzIDk2LTk2IDk2bC02NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtOTZjMC0xMy44IDIuMS0yNy41IDYuMS00MC43TDUxLjUgOTkuOEM2My45IDU5LjUgMTAxLjEgMzIgMTQzLjMgMzJMMTc2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMi43IDB6TTY0IDMyMGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NC0xMjggMHptNDE2IDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjQtMTI4IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAweiJdfSxhTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBhdXNlIixpY29uOls1MTIsNTEyLFs2MjA5MiwicGF1c2UtY2lyY2xlIl0sImYyOGIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxOTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0scnhyPWFOZSxheHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVtb3J5IixpY29uOls1MTIsNTEyLFtdLCJmNTM4IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNy40QzAgMTQyLjIgNC40IDE0OCAxMC4xIDE1MS43IDIzLjMgMTYwLjMgMzIgMTc1LjEgMzIgMTkycy04LjcgMzEuNy0yMS45IDQwLjNDNC40IDIzNiAwIDI0MS44IDAgMjQ4LjZsMCA1NS40IDUxMiAwIDAtNTUuNGMwLTYuOC00LjQtMTIuNi0xMC4xLTE2LjMtMTMuMi04LjYtMjEuOS0yMy40LTIxLjktNDAuM3M4LjctMzEuNyAyMS45LTQwLjNjNS43LTMuNyAxMC4xLTkuNSAxMC4xLTE2LjNsMC03LjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTUxMiA0MTZsMC02NC01MTIgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDAgMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjQgODggMCAwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyNCA4OCAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTE2MCAxNjBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0saXhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdpZnQiLGljb246WzUxMiw1MTIsWzEyNzg3M10sImYwNmIiLCJNMzIxLjUgNjguOEMzMjkuMSA1NS45IDM0Mi45IDQ4IDM1Ny44IDQ4bDIuMiAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC03My4zIDAgMzQuOC01OS4yem0tMTMxIDBsMzQuOCA1OS4yLTczLjMgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGwyLjIgMGMxNC45IDAgMjguOCA3LjkgMzYuMyAyMC44em04OS42LTI0LjNsLTI0LjEgNDEtMjQuMS00MUMyMTUuNyAxNi45IDE4Ni4xIDAgMTU0LjIgMEwxNTIgMGMtNDguNiAwLTg4IDM5LjQtODggODggMCAxNC40IDMuNSAyOCA5LjYgNDBMMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTQxLjYgMGM2LjEtMTIgOS42LTI1LjYgOS42LTQwIDAtNDguNi0zOS40LTg4LTg4LTg4bC0yLjIgMGMtMzEuOSAwLTYxLjUgMTYuOS03Ny43IDQ0LjR6TTQ4MCAyNzJsLTIwMCAwIDAgMjA4IDEzNiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ0em0tMjQ4IDBsLTIwMCAwIDAgMTQ0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEzNiAwIDAtMjA4eiJdfSxzeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC13aGVhdCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyYSIsIk0xNzYtMTZjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtOC44IDcuMi0xNiAxNi0xNnpNNTYgMGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDU2IDQ4QzQyLjcgNDggMzIgMzcuMyAzMiAyNFM0Mi43IDAgNTYgMHpNMjQgNzJsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgMTIwQzEwLjcgMTIwIDAgMTA5LjMgMCA5NlMxMC43IDcyIDI0IDcyem04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNzIgMGMwLTguOCA3LjItMTYgMTYtMTYgNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwek00MDAtMTZjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtOC44IDcuMi0xNiAxNi0xNnptODAgMTQ0YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTM1MiAxMTJjOC44IDAgMTYgNy4yIDE2IDE2IDAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTAgMzA0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMDR6TTQ4IDQxNmwwIDQ4IDQ4IDBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTk2IDMwNGwtNDggMCAwIDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4ek00NjQgNDE2Yy0yNi41IDAtNDggMjEuNS00OCA0OGw0OCAwIDAtNDh6TTQxNiAzMDRjMCAyNi41IDIxLjUgNDggNDggNDhsMC00OC00OCAwem0tOTYgODBhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAweiJdfSxueHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVuZ2VvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjZkOSIsIk0zNDcuNSAxNDQuOGM2LjUgNS40IDEyLjUgMTEuMyAxOCAxNy43IDguNyAxMC4yIDIzLjcgMTQgMzUuMSA2LjlsNTQuMS0zMy44YzExLjItNyAxNC43LTIxLjcgNi45LTMyLjItMTUuMy0yMC41LTMzLjUtMzguNi01NC4xLTUzLjgtMTAuNC03LjYtMjQuNy00LjMtMzEuOCA2LjRsLTM1LjEgNTIuNmMtNy44IDExLjYtMy44IDI3LjMgNyAzNi4yek0zMjcuOCA0MS4xYzguNi0xMi45IDIuOS0zMC41LTEyLjItMzQuMS0xOS4xLTQuNi0zOS4xLTctNTkuNi03cy00MC40IDIuNC01OS42IDdjLTE1LjEgMy42LTIwLjggMjEuMi0xMi4yIDM0LjFsNDAgNjBjNS4yIDcuOCAxNC41IDExLjcgMjMuOSAxMS4yIDUuMi0uMyAxMC42LS4zIDE1LjggMCA5LjQgLjUgMTguNy0zLjQgMjMuOS0xMS4ybDQwLTYwek01MC41IDEwMy4zYy03LjkgMTAuNS00LjMgMjUuMyA2LjkgMzIuMmw1NC4xIDMzLjhjMTEuNCA3LjEgMjYuMyAzLjMgMzUuMS02LjkgNS41LTYuNCAxMS41LTEyLjMgMTgtMTcuNyAxMC44LTguOSAxNC44LTI0LjYgNy0zNi4yTDEzNi40IDU1LjljLTcuMS0xMC43LTIxLjUtMTQtMzEuOC02LjQtMjAuNiAxNS4xLTM4LjggMzMuMy01NC4xIDUzLjh6bTYyIDE0MS4xYy44LTkuOS0zLjMtMTkuOS0xMS44LTI1LjFMNDEgMTgyYy0xMi45LTgtMjkuOS0yLjMtMzMuNiAxMi41LTQuOSAxOS43LTcuNSA0MC4zLTcuNSA2MS42bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMy45IC4yLTcuOCAuNS0xMS42em0yODcuMSAwYy4zIDMuOCAuNSA3LjcgLjUgMTEuNmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTIxLjItMi42LTQxLjgtNy41LTYxLjYtMy42LTE0LjctMjAuNy0yMC41LTMzLjYtMTIuNWwtNTkuNyAzNy4zYy04LjQgNS4zLTEyLjYgMTUuMi0xMS44IDI1LjF6TTg4IDM1MmwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptNDAwIDBsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI4MCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMwNHptLTgwIDMyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNzJ6bTE2MCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNzJ6Il19LGlOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsibWVka2l0Il0sImYwZmEiLCJNMTkyIDU2bDAgNDAgMTI4IDAgMC00MGMwLTQuNC0zLjYtOC04LThMMjAwIDQ4Yy00LjQgMC04IDMuNi04IDh6bS00OCA4bDAtOGMwLTMwLjkgMjUuMS01NiA1Ni01NkwzMTIgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDQyNC0yMjQgMCAwLTQxNnpNOTYgMTc2bDAgMzA0LTMyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyIDAgMCA4MHpNNDE2IDQ4MGwwLTM4NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMiAwek0yNDQgMjA4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzNi0zNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMzYgMCAwIDM2YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTM2IDM2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0zNiAwIDAtMzZjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSxveHI9aU5lLGx4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2FuZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTUzYyIsIk0yMzItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE0NCAyMzYuN0w5Ny43IDI5OS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxNDIgMTMyIDE4MS43IDExMiAyMjQgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42TDMwNCAyMzYuNyAzMDQgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc1LjN6TTM5MiAzODRjLTQuNCAwLTggMy42LTggOCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTI4YzAtNC40LTMuNi04LTgtOHoiXX0sTF89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F1Z2UiLGljb246WzUxMiw1MTIsWyJkYXNoYm9hcmQiLCJnYXVnZS1tZWQiLCJ0YWNob21ldGVyLWFsdC1hdmVyYWdlIl0sImY2MjQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM0wyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0ek0xNDQgMTc2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptLTE2IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQwMCAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sY3hyPUxfLGR4cj1MXyx1eHI9TF8scHhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4tdGV4dCIsaWNvbjpbNTc2LDUxMixbXSwiZjY1OCIsIk0yODggMzMuOUw5Ni40IDE3NS44IDI1NC41IDI5M2M1LjMgMy45IDExLjIgNi45IDE3LjUgOC43TDI3MiA0NjRjMCA1LjUgLjUgMTAuOCAxLjMgMTZMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIzOS45YzAtMjAuMyA5LjYtMzkuNCAyNS45LTUxLjRMMjU0LjUtMjFjOS43LTcuMiAyMS40LTExIDMzLjUtMTFzMjMuOCAzLjkgMzMuNSAxMUw1MTguMSAxMjQuN2M3LjIgNS4zIDEzLjEgMTIgMTcuNCAxOS42LTIuNS0uMi01LS4zLTcuNS0uM0w0MzYuNiAxNDQgMjg4IDMzLjl6TTMyMCAyNDBjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyMjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTIyNHptODAgMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAweiJdfSxmeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9vbGJveCIsaWNvbjpbNTEyLDUxMixbMTI5NTIwXSwiZjU1MiIsIk0xNzYgNTZsMCA0MCAxNjAgMCAwLTQwYzAtNC40LTMuNi04LTgtOEwxODQgNDhjLTQuNCAwLTggMy42LTggOHpNMTI4IDk2bDAtNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZMMzI4IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MCAyOC4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw1MS45IDUxLjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlsMCA3Ni4xLTEzNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0xNDQgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTYtMTM2IDAgMC03Ni4xYzAtMTIuNyA1LjEtMjQuOSAxNC4xLTMzLjlsNTEuOS01MS45YzktOSAyMS4yLTE0LjEgMzMuOS0xNC4xTDEyOCA5NnpNMCA0MTZsMC05NiAxMzYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxNDQgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxMzYgMCAwIDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6Il19LGh4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb3dlci1vZmYiLGljb246WzUxMiw1MTIsWzkyMTFdLCJmMDExIiwiTTI4OCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzIyNC0xNy43IDIyNCAwbDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMMjg4IDB6TTE0Ni4zIDk4LjRjMTQuNS0xMC4xIDE4LTMwLjEgNy45LTQ0LjZzLTMwLjEtMTgtNDQuNi03LjlDNDMuNCA5Mi4xIDAgMTY5IDAgMjU2IDAgMzk3LjQgMTE0LjYgNTEyIDI1NiA1MTJTNTEyIDM5Ny40IDUxMiAyNTZjMC04Ny00My40LTE2My45LTEwOS43LTIxMC4xLTE0LjUtMTAuMS0zNC40LTYuNi00NC42IDcuOXMtNi42IDM0LjQgNy45IDQ0LjZjNDkuOCAzNC44IDgyLjMgOTIuNCA4Mi4zIDE1Ny42IDAgMTA2LTg2IDE5Mi0xOTIgMTkyUzY0IDM2MiA2NCAyNTZjMC02NS4yIDMyLjUtMTIyLjkgODIuMy0xNTcuNnoiXX0seHVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25hbCIsaWNvbjpbNTEyLDUxMixbMTI4MjQ2LCJzaWduYWwtNSIsInNpZ25hbC1wZXJmZWN0Il0sImYwMTIiLCJNNDg4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDB6TTM2MCAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI4MCAyNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHpNMTUyIDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNNDggMzg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sbXhyPXh1ZSxneHI9eHVlLGJ4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3Mtc3BpbiIsaWNvbjpbNTEyLDUxMixbXSwiZTRiYiIsIk00ODEuNyAyNDAuMWMtMTcuNi0xLjItMzIuOSAxMi0zNC4yIDI5LjctMy4zIDQ3LTIzLjYgODkuNC01NC44IDEyMUwzNjEgMzU5Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAzNjYuMyAzMjAgMzc2bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtMzUtMzVjNDEuNy00Mi4yIDY4LjktOTguOCA3My40LTE2MS44IDEuMi0xNy42LTEyLTMyLjktMjkuNy0zNC4yek0zOSA0MUw3NCA3NmMtNDEuNyA0Mi4yLTY4LjkgOTguOC03My40IDE2MS44LTEuMiAxNy42IDEyIDMyLjkgMjkuNyAzNC4yczMyLjktMTIgMzQuMi0yOS43YzMuMy00NyAyMy42LTg5LjQgNTQuOC0xMjFMMTUxIDE1M2M2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzE5MiAxNDUuNyAxOTIgMTM2bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDU2IDBDNDYuMyAwIDM3LjUgNS44IDMzLjggMTQuOFMzMi4yIDM0LjEgMzkgNDF6bTIwMS0xMC43Yy0xLjIgMTcuNiAxMiAzMi45IDI5LjcgMzQuMiA0NyAzLjMgODkuNCAyMy42IDEyMSA1NC44TDM1OSAxNTFjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJTMzY2LjMgMTkyIDM3NiAxOTJsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IDMyLjIgNDcxIDM5TDQzNiA3NGMtNDIuMi00MS43LTk4LjgtNjguOS0xNjEuOC03My40LTE3LjYtMS4yLTMyLjkgMTItMzQuMiAyOS43ek00MSA0NzNsMzUtMzVjNDIuMiA0MS43IDk4LjggNjguOSAxNjEuOCA3My40IDE3LjYgMS4yIDMyLjktMTIgMzQuMi0yOS43cy0xMi0zMi45LTI5LjctMzQuMmMtNDctMy4zLTg5LjQtMjMuNi0xMjEtNTQuOEwxNTMgMzYxYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTQ1LjcgMzIwIDEzNiAzMjBMMjQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ1NmMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSA0NzkuOCA0MSA0NzN6Il19LHh4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqb2ludCIsaWNvbjpbNTc2LDUxMixbXSwiZjU5NSIsIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0yOTIuNyAzMjBjNS42IDAgMTAuNyAyLjkgMTMuNiA3LjZMMzk0LjYgNDcxYzEuMyAyLjEgMCA0LjktMi40IDUuMi0xNi4xIDIuNS0zMi40IDMuNy00OC43IDMuN2wtMzguMSAwYy01LjYgMC0xMC43LTIuOS0xMy42LTcuNmwtNzktMTI4LjRjLTYtOS44IDAtMjIuNiAxMS41LTIzLjMgNi43LS40IDEzLjQtLjYgMjAuMi0uNmw0OC4zIDB6TTQ1OS4zIDQ2NS45Yy02LjQgMS0xMi43LTEuOS0xNi4xLTcuNEwzNzQuMSAzNDYuMWMtNi43LTEwLjkgMS41LTI0LjcgMTQuMi0yMi45IDEuMyAuMiAyLjYgLjQgMy44IC42bDEzNi40IDIxYzI3LjMgNC4yIDQ3LjQgMjcuNyA0Ny40IDU1LjNzLTIwLjEgNTEuMS00Ny40IDU1LjNsLTY5LjIgMTAuNnpNMTM4LjcgMzM2YzYuNy0xLjUgMTMuNiAxLjQgMTcuMiA3LjJsNjguOSAxMTJjNi42IDEwLjctMS4yIDI0LjQtMTMuOCAyMy4xLTEzLTEuNC0yNS45LTMuNS0zOC42LTYuNUwzMS4yIDQzOS4yQzEyLjkgNDM1IDAgNDE4LjcgMCA0MDBzMTIuOS0zNSAzMS4yLTM5LjJMMTM4LjcgMzM2eiJdfSx2eHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhaWxsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjJhMSIsIk04MCAxNDRhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAgMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wIDEzNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTAgNTZjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODAtODAgMzUuOC04MCA4MCAzNS44IDgwIDgwIDgwem0yNDgtODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0em01NiAwYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODAgODAtMzUuOCA4MC04MHpNMzA0IDIzMmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAgMTA0YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTE5MmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sc05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2tldC1zaG9wcGluZyIsaWNvbjpbNTc2LDUxMixbInNob3BwaW5nLWJhc2tldCJdLCJmMjkxIiwiTTI4OCAwYzYuNiAwIDEyLjkgMi43IDE3LjQgNy41bDE0NCAxNTIgLjUgLjUgNzguMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMTQuNS05LjYgMjYuNy0yMi44IDMwLjdMNDkxLjEgNDI5LjljLTYuNSAyOS4zLTMyLjUgNTAuMS02Mi41IDUwLjFsLTI4MS4zIDBjLTMwIDAtNTYtMjAuOC02Mi41LTUwLjFsLTQ2LTIwNy4yYy0xMy4yLTMuOS0yMi44LTE2LjItMjIuOC0zMC43IDAtMTcuNyAxNC4zLTMyIDMyLTMybDc4LjEgMCAuNS0uNSAxNDQtMTUyQzI3NS4xIDIuNyAyODEuNCAwIDI4OCAwem0wIDU4LjlMMTkyLjIgMTYwIDM4My44IDE2MCAyODggNTguOXpNMjA4IDI2NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyem04MC0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTI4IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJ6Il19LHl4cj1zTmUsd3hyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRjOCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTRjMC0zOC44IDI2LjQtNzIuNiA2NC04MmwwLTExMi00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6Il19LGt4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1hcnJpdmFsIixpY29uOls1NzYsNTEyLFsxMjg3NDhdLCJmNWFmIiwiTTM4Ni42IDE5My4xTDI2NS45IDMuN2MtNC44LTcuNi0xMi42LTEyLjgtMjEuNC0xNC4zbC00My4xLTcuNmMtMTAuOC0xLjktMjAuMiA3LjMtMTguNiAxOC4xbDI0IDE2MS42LTEwNS0xOC41LTMzLjgtNjEuOEM2NC41IDc0LjcgNTguMiA3MC4yIDUxLjEgNjlMMzQgNjZjLTkuOC0xLjctMTguOCA1LjktMTguOCAxNS44bC42IDEwNi4zYy4yIDMwLjkgMjIuNCA1Ny4zIDUyLjkgNjIuN2wxMy41IDIuNCAwIDAgNDE3LjYgNzMuNmMzMC41IDUuNCA1OS41LTE1IDY0LjktNDUuNHMtMTUtNTkuNS00NS40LTY0LjlMMzg2LjYgMTkzLjF6TTIyNCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xMzEuMi0xNS4zYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDh6Il19LFN4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXNoLXJlZ2lzdGVyIixpY29uOls1MTIsNTEyLFtdLCJmNzg4IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRzMjguNyA2NCA2NCA2NGw0OCAwIDAgMzItNTcgMGMtMzEuNiAwLTU4LjUgMjMuMS02My4zIDU0LjRMMS4xIDM2NC4xQy40IDM2OC44IDAgMzczLjYgMCAzNzguNEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY5LjZjMC00LjgtLjQtOS42LTEuMS0xNC40TDQ4OC4yIDIxNC40QzQ4My41IDE4My4xIDQ1Ni42IDE2MCA0MjUgMTYwbC0yMTcgMCAwLTMyIDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRTMjkxLjMgMCAyNTYgMEw5NiAwem0wIDQ4bDE2MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDk2IDgwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2ek02NCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNDgtMTYwYTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptMTIwLTI0YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTE2MCAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek0zMjggMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTI1NiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek00MjQgMjQwYTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTM1MiAzNDRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4eiJdfSxNeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjcwYiIsIk02NCAyMDhjMCA3LjggNC40IDE4LjcgMTcuMSAzMC4zIDQ1LjQtMjQuMiAxMDcuNy0zOC4zIDE3NC45LTM4LjNzMTI5LjUgMTQuMSAxNzQuOSAzOC4zYzEyLjgtMTEuNiAxNy4xLTIyLjUgMTcuMS0zMC4zIDAtMTIuMy0xMC44LTMyLTQ3LjktNTAuNi0zNS4yLTE3LjYtODYuMS0yOS40LTE0NC4xLTI5LjRzLTEwOC45IDExLjgtMTQ0LjEgMjkuNEM3NC44IDE3NiA2NCAxOTUuNyA2NCAyMDh6bTE5MiA0MGMtNDcgMC04OS4zIDcuNi0xMjIuOSAxOS43IDMzLjIgMTIuNCA3NS43IDIwLjMgMTIyLjkgMjAuM3M4OS43LTcuOCAxMjIuOS0yMC4zQzM0NS4zIDI1NS42IDMwMyAyNDggMjU2IDI0OHpNMCAyMDhDMCAxNTguNCAzOS40IDEyMi4yIDgzLjMgMTAwLjIgMTI5LjEgNzcuMyAxOTAuMyA2NCAyNTYgNjRzMTI2LjkgMTMuMyAxNzIuNyAzNi4yYzQzLjkgMjIgODMuMyA1OC4yIDgzLjMgMTA3LjhsMCA5NmMwIDQ5LjYtMzkuNCA4NS44LTgzLjMgMTA3LjgtNDUuOSAyMi45LTEwNyAzNi4yLTE3Mi43IDM2LjJTMTI5LjEgNDM0LjcgODMuMyA0MTEuOEMzOS40IDM4OS44IDAgMzUzLjYgMCAzMDRsMC05NnoiXX0sQ3hyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFxdWFyaXVzIixpY29uOls1NzYsNTEyLFtdLCJlODQ1IiwiTTQwMS43IDI5MS40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxMjggNjRjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM0w0MTYgMzU1LjggMzAyLjMgNDEyLjZjLTkgNC41LTE5LjYgNC41LTI4LjYgMEwxNjAgMzU1LjggNDYuMyA0MTIuNmMtMTUuOCA3LjktMzUgMS41LTQyLjktMTQuM3MtMS41LTM1IDE0LjMtNDIuOWwxMjgtNjRjOS00LjUgMTkuNi00LjUgMjguNiAwTDI4OCAzNDguMiA0MDEuNyAyOTEuNHptMy40LTE5My41YzguMi0zIDE3LjMtMi41IDI1LjIgMS41bDEyOCA2NGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zTDQxNiAxNjMuOCAzMDIuMyAyMjAuNmMtOSA0LjUtMTkuNiA0LjUtMjguNiAwTDE2MCAxNjMuOCA0Ni4zIDIyMC42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDEyOC02NCAzLjQtMS41YzguMi0zIDE3LjMtMi41IDI1LjIgMS41bDExMy43IDU2LjggMTEzLjctNTYuOCAzLjQtMS41eiJdfSxuTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtbm9kZXMiLGljb246WzUxMiw1MTIsWyJzaGFyZS1hbHQiXSwiZjFlMCIsIk0zODQgMTkyYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2YzAgNS40IC41IDEwLjggMS4zIDE2TDE1OS42IDE4NC4xYy0xNi45LTE1LTM5LjItMjQuMS02My42LTI0LjEtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyNC40IDAgNDYuNi05LjEgNjMuNi0yNC4xTDI4OS4zIDQwMGMtLjkgNS4yLTEuMyAxMC41LTEuMyAxNiAwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2LTQzLTk2LTk2LTk2Yy0yNC40IDAtNDYuNiA5LjEtNjMuNiAyNC4xTDE5MC43IDI3MmMuOS01LjIgMS4zLTEwLjUgMS4zLTE2cy0uNS0xMC44LTEuMy0xNmwxMjkuNy03Mi4xYzE2LjkgMTUgMzkuMiAyNC4xIDYzLjYgMjQuMXoiXX0senhyPW5OZSxfeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxUeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmlub2N1bGFycyIsaWNvbjpbNTEyLDUxMixbXSwiZjFlNSIsIk0xMjggMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyLTk2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptNjQgOTZsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTU5LjFjMC0zNC42IDkuNC02OC42IDI3LjItOTguMyAxMy43LTIyLjggMjIuNS00OC4yIDI1LjgtNzQuNkw2MC41IDE1NmMyLTE2IDE1LjYtMjggMzEuOC0yOGw5OS44IDB6bTIyNy44IDBjMTYuMSAwIDI5LjggMTIgMzEuOCAyOEw0NTkgMjE2YzMuMyAyNi40IDEyLjEgNTEuOCAyNS44IDc0LjYgMTcuOCAyOS43IDI3LjIgNjMuNyAyNy4yIDk4LjNsMCA1OS4xYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMjAgOTkuOCAwek0zMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyLTk2IDAgMC0zMnptLTMyIDY0bDAgMTYwLTY0IDAgMC0xNjAgNjQgMHoiXX0sTHhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpcC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWM0IiwiTTM0MC44IDg4LjNjMTMuNC0xMS41IDE1LTMxLjcgMy41LTQ1LjFzLTMxLjctMTUtNDUuMS0zLjVMMTI4IDE4Ni40IDEyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCA0Ni4zIDY0IDY0bDAgMTY4LTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDE2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTIyLjQgMTcxLjIgMTQ2LjdjMTMuNCAxMS41IDMzLjYgOS45IDQ1LjEtMy41czkuOS0zMy42LTMuNS00NS4xTDE3My4yIDI4MCAzNTIgMjgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE3My4yIDIzMiAzNDAuOCA4OC4zeiJdfSxvTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFyZC1kcml2ZSIsaWNvbjpbNDQ4LDUxMixbMTI4NDM2LCJoZGQiXSwiZjBhMCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMjYwLjFDMTguMSAyNDcuNCA0MC4yIDI0MCA2NCAyNDBsMzIwIDBjMjMuOCAwIDQ1LjkgNy40IDY0IDIwLjFMNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00NDggMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0ek0yMjQgMzg0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEyOC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LER4cj1vTmUsJHhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhbmtpbmctc3RhciIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MSIsIk0zMjEuOCA1NC4xTDI5OC4yIDYuM2MtMy45LTguMy0xNi4xLTguNi0yMC40IDBsLTIzLjYgNDcuOC01Mi4zIDcuNWMtOS4zIDEuNC0xMy4zIDEyLjktNi40IDE5LjhsMzggMzctOSA1Mi4xYy0xLjQgOS4zIDguMiAxNi41IDE2LjggMTIuMmw0Ni45LTI0LjggNDYuNiAyNC40YzguNiA0LjMgMTguMy0yLjkgMTYuOC0xMi4ybC05LTUyLjEgMzgtMzYuNmM2LjgtNi44IDIuOS0xOC4zLTYuNC0xOS44bC01Mi4zLTcuNXpNMjU2IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjBjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2MGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDggMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDE2IDQzMmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh6Il19LEF4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXRpZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwOCIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptLTMwLjUgNTZsNjEgMGM5LjcgMCAxNy41IDcuOCAxNy41IDE3LjUgMCA0LjItMS41IDguMi00LjIgMTEuNGwtMjcuNCAzMiAzMSAxMTUuMSAuNiAwIDM0LjYtMTM4LjVjMi4yLTguNyAxMS4xLTE0IDE5LjUtMTAuOCA2MS45IDIzLjYgMTA1LjkgODMuNiAxMDUuOSAxNTMuOCAwIDE1LjEtMTIuMyAyNy40LTI3LjQgMjcuNEw0My40IDUxMmMtMTUuMSAwLTI3LjQtMTIuMy0yNy40LTI3LjQgMC03MC4yIDQ0LTEzMC4yIDEwNS45LTE1My44IDguNC0zLjIgMTcuMyAyLjEgMTkuNSAxMC44bDM0LjYgMTM4LjUgLjYgMCAzMS0xMTUuMS0yNy40LTMyYy0yLjctMy4yLTQuMi03LjItNC4yLTExLjQgMC05LjcgNy44LTE3LjUgMTcuNS0xNy41eiJdfSxsTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxsaXBzaXMiLGljb246WzQ0OCw1MTIsWyJlbGxpcHNpcy1oIl0sImYxNDEiLCJNMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0xNjggMGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTIyNC01NmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0sRXhyPWxOZSxJeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzEiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTguNi01OC42YzEuMS00IDEuNi04LjIgMS42LTEyLjVsMC0xNTEuMmMtMTIuNSA0LjYtMjYuMSA3LjItNDAuNSA3LjItOC4xIDAtMTUuOS0uOC0yMy41LTIuNGwwIDY2LjQtMzAuMiAwLTEzNy41LTEzNy41YzIuOS0zLjYgNS41LTcuNCA3LjYtMTEuNSAxMS42IDIyIDM0LjcgMzcgNjEuMyAzNyAyNi44IDAgNDkuOC0xNS4xIDYxLjQtMzcuMSAxMS40IDIyLjEgMzQuNSAzNy4xIDYwLjggMzcuMSA0NS42IDAgNzguNC00My43IDY1LjYtODcuNUw1MTMuOCA3Mi4zQzUwNi44IDQ4LjQgNDg0LjkgMzIgNDYwIDMyTDExNiAzMmMtNS41IDAtMTAuOCAuOC0xNS45IDIuM0w0MS0yNC45ek0xNTEuNSAyMjEuM0w0OC43IDExOC42IDM4LjkgMTUyLjVjLTEyLjggNDMuNyAyMCA4Ny41IDY1LjYgODcuNSAxOC4xIDAgMzQuNy03LjEgNDctMTguN3pNNDEwLjIgNDgwbC0xMjgtMTI4LTE1NC4yIDAgMC02Ni40Yy03LjYgMS42LTE1LjUgMi40LTIzLjUgMi40LTE0LjQgMC0yOC0yLjYtNDAuNS03LjJMNjQgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI5OC4yIDB6Il19LGNOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJjZW50IixpY29uOls0NDgsNTEyLFs2MjEwMSw2Mjc4NSwicGVyY2VudGFnZSJdLCIyNSIsIk0xOTIgMTI4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNNDQ4IDM4NGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6TTQzOC42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTM4NCAzODRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMzg0LTM4NHoiXX0sUHhyPWNOZSxkTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS16aXBwZXIiLGljb246WzM4NCw1MTIsWyJmaWxlLWFyY2hpdmUiXSwiZjFjNiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNNjQgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA0OEM3NC43IDQ4IDY0IDU4LjcgNjQgNzJ6bTAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTY0IDcybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTE2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnoiXX0sTnhyPWROZSxPeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlzcGxheSIsaWNvbjpbNTEyLDUxMixbXSwiZTE2MyIsIk00NDggOTZsMCAyNTYtMzg0IDAgMC0yNTYgMzg0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ0IDAtMTYgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMC0xNi00OCAxNDQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sdU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imljb25zIixpY29uOls1MTIsNTEyLFsiaGVhcnQtbXVzaWMtY2FtZXJhLWJvbHQiXSwiZjg2ZCIsIk0xNzQuOSAyNzJjMTAuNyAwIDIwLjcgNS4zIDI2LjYgMTQuMmwxMS44IDE3LjggMjYuNyAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTEyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNTJjMC0yNi41IDIxLjUtNDggNDgtNDhsMjYuNyAwIDExLjgtMTcuOGM1LjktOC45IDE1LjktMTQuMiAyNi42LTE0LjJsNjEuNyAwem0yNzguNi0xMmM1LjYtNC45IDEzLjktNS4zIDE5LjktLjlzOC4zIDEyLjQgNS4zIDE5LjNMNDQwLjMgMzY4IDQ5NiAzNjhjNi43IDAgMTIuNiA0LjEgMTUgMTAuNHMuNiAxMy4zLTQuNCAxNy43bC0xMjggMTEyYy01LjYgNC45LTEzLjkgNS4zLTE5LjkgLjlzLTguMy0xMi40LTUuMy0xOS4zbDM4LjUtODkuNy01NS44IDBjLTYuNyAwLTEyLjYtNC4xLTE1LTEwLjRzLS42LTEzLjMgNC40LTE3LjdsMTI4LTExMnpNMTQ0IDM2MGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6TTQ4My44IC40YzYuNS0xLjEgMTMuMSAuNCAxOC41IDQuNCA2LjEgNC41IDkuNyAxMS43IDkuNyAxOS4ybDAgMTUyLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42bDAtNDkuMy0xMTIgMzMuNiAwIDExMC4yLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42TDMwNCA3MmMwLTEwLjYgNy0yMCAxNy4xLTIzbDE2MC00OCAyLjctLjZ6TTE4OC45IDBDMjI2IDAgMjU2IDMwIDI1NiA2Ny4xbDAgNi4xYzAgNTYuMS03NS4yIDExMi4xLTExMC4zIDEzNS4zLTEwLjggNy4xLTI0LjYgNy4xLTM1LjQgMC0zNS4xLTIzLjEtMTEwLjMtNzkuMi0xMTAuMy0xMzUuM2wwLTYuMUMwIDMwIDMwIDAgNjcuMSAwIDg4LjIgMCAxMDggOS45IDEyMC43IDI2LjhsNy4zIDkuOCA3LjMtOS44QzE0OCA5LjkgMTY3LjggMCAxODguOSAweiJdfSxSeHI9dU5lLEZ4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlci12ZXJ0aWNhbCIsaWNvbjpbMjU2LDUxMixbXSwiZjU0OCIsIk0wIDE2QzAtMTAuNSAyMS41LTMyIDQ4LTMybDE2MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjQtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4LTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgMjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTQ0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE2eiJdfSxwTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uLWRvdCIsaWNvbjpbNjQwLDUxMixbIm1hcC1tYXJrZWQtYWx0Il0sImY1YTAiLCJNNTc2IDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDQxMy41IDc3LjUgMjM0LjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzcwLjggODguOCA2NCA5OS45IDY0IDExMmwwIDM1MmMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTczLjMgNTcuOGMtNC4zLTYuNC04LjUtMTMuMS0xMi42LTE5LjktMTEtMTguMy0yMS45LTM5LjMtMzAtNjEuOGwtMTAxLjItMzMuNyAwLTI4NC41IDEyOCA0Mi43IDAgOTkuM2MzMS0zNS44IDc3LTU4LjQgMTI4LTU4LjQgMjIuNiAwIDQ0LjIgNC40IDY0IDEyLjVMNTc2IDQ4ek01MTIgMjI0Yy02Ni4zIDAtMTIwIDUyLjgtMTIwIDExNy45IDAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOXpNNDcyIDM0NGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSxCeHI9cE5lLGZOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jcmFjayIsaWNvbjpbNTEyLDUxMixbMTI4MTQ4LCJoZWFydC1icm9rZW4iXSwiZjdhOSIsIk0xMzMuMSAzMmMxNy4zIDAgMzQuMiAzLjQgNDkuOSA5LjdsNTQuOCA4NS4yLTc1LjQgNzUuNGMtMS41IDEuNS0yLjQgMy42LTIuMyA1LjhzMSA0LjIgMi42IDUuN2wxMTIgMTA0YzIuOSAyLjcgNy40IDIuOSAxMC41IC4zczMuOC03IDEuNy0xMC40bC02MC40LTk4LjEgOTAuNy03NS42YzIuNi0yLjEgMy41LTUuNyAyLjQtOC44TDI5Ni40IDYwLjZDMzE5LjYgNDIuMyAzNDguNiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxMTIuMi0xMzkuOSAyNDIuNS0yMTIuOSAyOTguMi0xMi40IDkuNC0yNy42IDE0LjEtNDMuMSAxNC4xcy0zMC44LTQuNi00My4xLTE0LjFDMTM5LjkgNDEwLjIgMCAyNzkuOSAwIDE2Ny43bDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyeiJdfSxIeHI9Zk5lLHF4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3ciLGljb246WzY0MCw1MTIsWzEyODAwNF0sImY2YzgiLCJNOTYgMjI0bDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04OC4yYzkuOSA2LjYgMjAuNiAxMiAzMiAxNi4xbDAgMjQuMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTYuOWM1LjMgLjYgMTAuNiAuOSAxNiAuOXMxMC43LS4zIDE2LS45bDAgMTYuOWMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjQuMmMxMS40LTQgMjIuMS05LjQgMzItMTYuMWwwIDg4LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MCAzMiAzMiAwIDQ5LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZMNTMwIDQyN2M4LjggMTMuMSAyMy41IDIxIDM5LjMgMjEgMjIuNSAwIDQxLjktMTUuOSA0Ni4zLTM4bDIwLjMtMTAxLjZjMi42LTEzLS4zLTI2LjUtOC0zNy4zbC0zLjktNS41IDAtODEuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE0LjQtNTIuOS03NC4xQzQ5NiA4Ni41IDQ1Mi40IDY0IDQwNS45IDY0TDE0NCA2NEM3Ny43IDY0IDI0IDExNy43IDI0IDE4NGwwIDU0QzkuNCAyNDkuOCAwIDI2Ny44IDAgMjg4bDAgMTcuNmMwIDggNi40IDE0LjQgMTQuNCAxNC40IDMxLjggMCA1Ny42LTI1LjggNTcuNi01Ny42TDcyIDE4NGMwLTI0LjMgMTIuMS00NS44IDMwLjUtNTguOS00LjIgMTAuOC02LjUgMjIuNi02LjUgMzQuOWwwIDY0ek01NjAgMzM2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTE2Ni42IDE2Ni42Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMTc4LjcgMGMxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNiAwIDYtMi40IDExLjgtNi42IDE2bC0yMy40IDIzLjRDMzMyLjIgMjExLjggMzAyLjcgMjI0IDI3MiAyMjRzLTYwLjItMTIuMi04MS45LTMzLjlsLTIzLjQtMjMuNHoiXX0sR189e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnNzIixpY29uOls0NDgsNTEyLFsiZmVlZCJdLCJmMDllIiwiTTAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzIgMjI5LjggMCA0MTYgMTg2LjIgNDE2IDQxNiAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkMzODQgMjUzLjYgMjI2LjQgOTYgMzIgOTYgMTQuMyA5NiAwIDgxLjcgMCA2NHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0zMiAxNjBjMTU5LjEgMCAyODggMTI4LjkgMjg4IDI4OCAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0LTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LFZ4cj1HXyxZXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzIixpY29uOls1MTIsNTEyLFsxMjgyNjksInNlYXJjaCJdLCJmMDAyIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDM1MmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6Il19LGp4cj1ZXyxVeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbW9vbiIsaWNvbjpbNjQwLDUxMixbXSwiZjZjMyIsIk00ODAgMGMxNC42IDAgMjguOCAxLjYgNDIuNSA0LjcgNy40IDEuNyAxMyA3LjggMTMuOSAxNS40cy0zIDE0LjktOS44IDE4LjNjLTQ1LjQgMjIuNi03Ni42IDY5LjUtNzYuNiAxMjMuNiAwIDc2LjIgNjEuOCAxMzggMTM4IDEzOCAzLjcgMCA3LjQtLjEgMTEuMS0uNCA3LjYtLjYgMTQuNyAzLjYgMTcuOCAxMC42czEuNSAxNS4xLTMuOSAyMC40Yy0yNiAyNS01OS4xIDQyLjctOTUuOSA0OS45LTExLjEtMjUuMy0zMC4yLTQ2LjMtNTQuMS01OS44LTcuNi02My40LTYxLjYtMTEyLjYtMTI3LjEtMTEyLjYtMTEuMiAwLTIyLjEgMS41LTMyLjUgNC4yLTQuOC00LjItOS45LTguMi0xNS4yLTExLjgtLjEtMi44LS4yLTUuNi0uMi04LjQgMC0xMDYgODYtMTkyIDE5Mi0xOTJ6bS0uMSA0MzEuOWMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjcxLjkgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04NyA4MC05NC42LS40LTUyLjggNDIuOS05Ny4zIDk2LTk3LjMgMzQuOSAwIDY1LjQgMTguNiA4Mi4yIDQ2LjQgMTMtOS4xIDI4LjgtMTQuNCA0NS44LTE0LjQgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjktLjYgMTEuNy0xLjkgMTcuMiAzNy40IDYuNyA2NS44IDM5LjQgNjUuOCA3OC43eiJdfSx2dWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94ZXMtc3RhY2tlZCIsaWNvbjpbNTEyLDUxMixbNjI2MjUsImJveGVzIiwiYm94ZXMtYWx0Il0sImY0NjgiLCJNMjI0IDBsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4YzAgNS41LS43IDEwLjktMiAxNmwtMjUyIDBjLTEuMy01LjEtMi0xMC41LTItMTZsMC0xMjhjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMHptOTYgNTEyYy0xMS4yIDAtMjEuOC0yLjktMzEtOCA5LjUtMTYuNSAxNS0zNS42IDE1LTU2bDAtMTI4YzAtMjAuNC01LjUtMzkuNS0xNS01NiA5LjItNS4xIDE5LjctOCAzMS04bDMyIDAgMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMjggMHpNMCAzMjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMCAwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDMyMHoiXX0sV3hyPXZ1ZSxHeHI9dnVlLFl4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWJyYW5jaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjEyNiIsIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgNzAuNyAxNzYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyLjdjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgMjIuN2MwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMTc2IDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBTMCA0NzYuMiAwIDQzMmMwLTMyLjggMTkuNy02MSA0OC03My4zbDAtMjA1LjNDMTkuNyAxNDEgMCAxMTIuOCAwIDgwIDAgMzUuOCAzNS44IDAgODAgMHM4MCAzNS44IDgwIDgwem0yMzIgMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek04MCA0NTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxoTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFuIixpY29uOls1MTIsNTEyLFsxMjg2ODMsImNhbmNlbCJdLCJmMDVlIiwiTTM2Ny4yIDQxMi41TDk5LjUgMTQ0LjhjLTIyLjQgMzEuNC0zNS41IDY5LjgtMzUuNSAxMTEuMiAwIDEwNiA4NiAxOTIgMTkyIDE5MiA0MS41IDAgNzkuOS0xMy4xIDExMS4yLTM1LjV6bTQ1LjMtNDUuM2MyMi40LTMxLjQgMzUuNS02OS44IDM1LjUtMTExLjIgMC0xMDYtODYtMTkyLTE5Mi0xOTItNDEuNSAwLTc5LjkgMTMuMS0xMTEuMiAzNS41TDQxMi41IDM2Ny4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxLeHI9aE5lLFp4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqdWctZGV0ZXJnZW50IixpY29uOlszODQsNTEyLFtdLCJlNTE5IiwiTTk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggOTZDNzQuNyA5NiA2NCA4NS4zIDY0IDcyUzc0LjcgNDggODggNDhsOCAwIDAtMjR6TTAgMjU2YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDEyOCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyNTZ6bTI1NiAwbDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSxtTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwbHkiLGljb246WzUxMiw1MTIsWzYxNzE0LCJtYWlsLXJlcGx5Il0sImYzZTUiLCJNMjA0LjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCAxMTIgMGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDExMy4zLTgxLjUgMTYzLjktMTAwLjIgMTc0LjEtMi41IDEuNC01LjMgMS45LTguMSAxLjktMTAuOSAwLTE5LjctOC45LTE5LjctMTkuNyAwLTcuNSA0LjMtMTQuNCA5LjgtMTkuNSA5LjQtOC44IDIyLjItMjYuNCAyMi4yLTU2LjcgMC01My00My05Ni05Ni05NmwtOTYgMCAwIDgwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45eiJdfSxReHI9bU5lLFh4cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdW4tcGxhbnQtd2lsdCIsaWNvbjpbNjQwLDUxMixbXSwiZTU3YSIsIk0xNjAgMGMtNS41IDAtMTAuNiAyLjgtMTMuNSA3LjRsLTEuMSAyLjEtMjQuOCA1NS40LTU2LjctMjEuN2MtNS45LTIuMi0xMi41LS44LTE3IDMuN1M0MSA1OCA0My4yIDYzLjlsMjEuNyA1Ni43LTU1LjQgMjQuOEMzLjcgMTQ4IDAgMTUzLjcgMCAxNjBzMy43IDEyIDkuNSAxNC42bDU1LjQgMjQuOC0yMS43IDU2LjdjLTIuMiA1LjktLjggMTIuNSAzLjcgMTdzMTEuMSA1LjkgMTcgMy43bDU2LjctMjEuNyAyNC44IDU1LjRjMi42IDUuOCA4LjMgOS41IDE0LjYgOS41czEyLTMuNyAxNC42LTkuNWwyNC44LTU1LjQgNTYuOCAyMS43YzUuOSAyLjIgMTIuNSAuOCAxNy0zLjdzNS45LTExLjEgMy43LTE3bC0yMS43LTU2LjcgNTUuNC0yNC44YzUuOC0yLjYgOS41LTguMyA5LjUtMTQuNnMtMy43LTEyLTkuNS0xNC42bC01NS40LTI0LjggMjEuNy01Ni43IC43LTIuMmMxLjItNS4zLS40LTEwLjktNC4zLTE0LjhzLTkuNS01LjUtMTQuOC00LjNsLTIuMiAuNy01Ni44IDIxLjctMjQuOC01NS40QzE3MiAzLjcgMTY2LjMgMCAxNjAgMHptMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzc2IDE2bDAgNTMuNGMtMTQuOCA3LjctMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtNTMuNGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDIyLjdjLTkuOC00LjMtMjAuNi02LjctMzItNi43LTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjEuNGMtMTQuOCA3LjYtMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtMjEuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2LTQyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMDQgMCAwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxKeHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjdGVyaXVtIixpY29uOls1NzYsNTEyLFtdLCJlMDVhIiwiTTQwOCAxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMzNjAgMi43IDM2MCAxNmwwIDIzLjRjLTEzLjkgNS4zLTI2LjkgMTMuNS0zOC4yIDI0LjVMMzA1IDQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE2LjggMTYuOC0zMC4xIDMwLjEtMTYuOC0xNi44Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE2LjggMTYuOGMtMTAgMTAtMjAgMjAtMzAuMSAzMC4xTDE3NyAxNzVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44LTMwLjEgMzAuMS0xNi44LTE2LjhjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44Yy0xMSAxMS4zLTE5LjIgMjQuMy0yNC41IDM4LjJMNDggMzI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2LjMgMGMxLjMgMTguMyA3LjEgMzYuNCAxNy40IDUyLjRMNzEgNDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTAuNi0xMC42YzE2IDEwLjMgMzQuMSAxNi4xIDUyLjQgMTcuNGwwIDE2LjNjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIzLjRjMTMuOS01LjMgMjYuOS0xMy41IDM4LjItMjQuNUwyNzEgNDY1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTYuOC0xNi44IDMwLjEtMzAuMSAxNi44IDE2LjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjhjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDM5OSAzMzdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjggMzAuMS0zMC4xIDE2LjggMTYuOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOGMxMS0xMS4zIDE5LjItMjQuMyAyNC41LTM4LjJsMjMuNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNi4zIDBjLTEuMy0xOC4zLTcuMS0zNi40LTE3LjQtNTIuNEw1MDUgNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0NjAuNCA0OS43Yy0xNi0xMC4zLTM0LjEtMTYuMS01Mi40LTE3LjRMNDA4IDE2ek0xNjAgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTI3MiAyNDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxldnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjb3JkLXZpbnlsIixpY29uOls1MTIsNTEyLFtdLCJmOGQ5IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMCAyNDBhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTExMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGdOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbG9wcHktZGlzayIsaWNvbjpbNDQ4LDUxMixbMTI4MTkwLDEyODQyNiwic2F2ZSJdLCJmMGM3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDIuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNTIgNTAuN0MzNDAgMzguNyAzMjMuNyAzMiAzMDYuNyAzMkw2NCAzMnptMzIgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6TTIyNCAyODhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LHR2cj1nTmUscnZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldHMtcG9ydGFibGUiLGljb246WzUxMiw1MTIsW10sImU1ODQiLCJNNjQgMGw5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMjI0IDAgMC0xNkMwIDI4LjcgMjguNyAwIDY0IDB6TTAgMTI4bDIyNCAwIDAgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xMjggMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA1MDEuMyAwIDQ4OEwwIDEyOHpNMTI4IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzUyIDBsOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTIyNCAwIDAtMTZjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTI4OCAxMjhsMjI0IDAgMCAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyOCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTM2MHpNNDE2IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sYXZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im8iLGljb246WzQ0OCw1MTIsWzExMV0sIjRmIiwiTTIyNCA5NmExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAxIDAgMC0zMjB6TTQ0OCAyNTZhMjI0IDIyNCAwIDEgMSAtNDQ4IDAgMjI0IDIyNCAwIDEgMSA0NDggMHoiXX0saXZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbGV0dGUiLGljb246WzUxMiw1MTIsWzEyNzkxMl0sImY1M2YiLCJNNTEyIDI1NmMwIC45IDAgMS44IDAgMi43LS40IDM2LjUtMzMuNiA2MS4zLTcwLjEgNjEuM0wzNDQgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDMuNCAuNCA2LjcgMSA5LjkgMi4xIDEwLjIgNi41IDIwIDEwLjggMjkuOSA2LjEgMTMuOCAxMi4xIDI3LjUgMTIuMSA0MiAwIDMxLjgtMjEuNiA2MC43LTUzLjQgNjItMy41IC4xLTcgLjItMTAuNiAuMi0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2UzExNC42IDAgMjU2IDAgNTEyIDExNC42IDUxMiAyNTZ6TTEyOCAyODhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC05NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI4OCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHN2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bmxvY2siLGljb246WzM4NCw1MTIsWzEyODI3NV0sImYwOWMiLCJNMTI4IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0IDMxLjcgMCA1OCAyMyA2My4xIDUzLjMgMi45IDE3LjQgMTkuNCAyOS4yIDM2LjkgMjYuM3MyOS4yLTE5LjQgMjYuMy0zNi45QzMwOC4xIDE0LjEgMjU1LjUtMzIgMTkyLTMyIDEyMS4zLTMyIDY0IDI1LjMgNjQgOTZsMCA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE5MiAwIDAtNjR6Il19LGJOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXItbGlzdGVuIixpY29uOls1MTIsNTEyLFsiYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zIl0sImYyYTIiLCJNMzc5LjYgLjNjLTguOSAxLjItMTcuMiA2LjItMjIuNCAxNC4xLTYuOCAxMC40LTcgMjQuMS0uNCAzNC42IDUuNiA4LjkgMTUuNSAxMi43IDIzLjggMTguNSA3LjUgNS4yIDE3LjYgMTMuMiAyNy43IDI0LjIgMjAgMjEuNyAzOS41IDU0LjMgMzkuNSAxMDAuMyAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNjYtMjguNS0xMTMuNC01Ni41LTE0My43LTEzLjktMTUuMS0yNy44LTI2LjEtMzguMy0zMy4zLTExLTcuNi0yMy41LTE2LjYtMzcuNi0xNC43ek0yNDAgMTI4Yy01Ny42IDAtMTA1LjEgNDMuNi0xMTEuMyA5OS41LTEuOSAxNy42LTE3LjggMzAuMi0zNS4zIDI4LjNzLTMwLjItMTcuOC0yOC4zLTM1LjNjOS43LTg4IDg0LjMtMTU2LjUgMTc0LjktMTU2LjUgOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCA0Ni0xNy43IDg3LjktNDYuNiAxMTkuMy0xMiAxMy0xNy40IDI0LjgtMTcuNCAzNC43bDAgNi4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02LjFjMC0zMi45IDE3LjQtNTkuNiAzNC40LTc4IDE4LjQtMjAgMjkuNi00Ni42IDI5LjYtNzUuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMnpNMCA0ODBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYwLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNODYuNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6TTI0MCAyMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LG52cj1iTmUsb3ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtcHVsbC1yZXF1ZXN0IixpY29uOls1MTIsNTEyLFtdLCJlMTNjIiwiTTMyOCAyNGMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJTMjkzLjkgLjIgMjg3IDdMMjMxIDYzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NiA1NmM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzMyOCAxNDUuNyAzMjggMTM2bDAtMjQgMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIxNC43Yy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM0w0NDggMTQ0YzAtNTMtNDMtOTYtOTYtOTZsLTI0IDAgMC0yNHpNNzIgODBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNTYgNzMuM2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zIDAtNDQuMi0zNS44LTgwLTgwLTgwUzE2IDM1LjggMTYgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDIwNS4zYy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTIwNS4zek03MiA0MzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMzQ0LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sbHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtleSIsaWNvbjpbNTEyLDUxMixbMTI4MjczXSwiZjA4NCIsIk0zMzYgMzUyYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2UzQzMy4yIDAgMzM2IDAgMTYwIDc4LjggMTYwIDE3NmMwIDE4LjcgMi45IDM2LjggOC4zIDUzLjdMNyAzOTFjLTQuNSA0LjUtNyAxMC42LTcgMTdsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwIDQwIDBjNi40IDAgMTIuNS0yLjUgMTctN2wzMy4zLTMzLjNjMTYuOSA1LjQgMzUgOC4zIDUzLjcgOC4zek0zNzYgOTZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxjdnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2t1bGwiLGljb246WzUxMiw1MTIsWzEyODEyOF0sImY1NGMiLCJNNDE2IDQyNy40YzU4LjUtNDQgOTYtMTExLjYgOTYtMTg3LjQgMC0xMzIuNS0xMTQuNi0yNDAtMjU2LTI0MFMwIDEwNy41IDAgMjQwYzAgNzUuOCAzNy41IDE0My40IDk2IDE4Ny40TDk2IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDY0IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM2LjZ6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTI1Ni02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0seE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlLXVwIixpY29uOlszODQsNTEyLFs5ODk2LCJtYXJzLXN0cm9rZS12Il0sImYyMmEiLCJNMTkyIDI1NmExMTIgMTEyIDAgMSAwIDAgMjI0IDExMiAxMTIgMCAxIDAgMC0yMjR6TTE2IDM2OGMwLTg2LjMgNjIuMS0xNTguMSAxNDQuMS0xNzMuMS0uMS0uOS0uMS0xLjktLjEtMi45bDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjEuNC0yOCAyMi40Yy0xMy44IDExLTMzLjkgOC44LTQ1LTVzLTguOC0zMy45IDUtNDVsODAtNjRjMTEuNy05LjMgMjguMy05LjMgNDAgMGw4MCA2NGMxMy44IDExIDE2IDMxLjIgNSA0NXMtMzEuMiAxNi00NSA1bC0yOC0yMi40IDAgNjEuNCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTZjMCAxIDAgMS45LS4xIDIuOSA4MiAxNSAxNDQuMSA4Ni44IDE0NC4xIDE3My4xIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzE2IDQ2NS4yIDE2IDM2OHoiXX0sZHZyPXhOZSx2TmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZS1mbGFtZS1zaW1wbGUiLGljb246WzM4NCw1MTIsWyJidXJuIl0sImY0NmEiLCJNMzcyLjUgMjU2LjVsLS43LTEuOUMzMzcuOCAxNjAuOCAyODIgNzYuNSAyMDkuMSA4LjVsLTMuMy0zQzIwMi4xIDIgMTk3LjEgMCAxOTIgMHMtMTAuMSAyLTEzLjggNS41bC0zLjMgM0MxMDIgNzYuNSA0Ni4yIDE2MC44IDEyLjIgMjU0LjZsLS43IDEuOUMzLjkgMjc3LjMgMCAyOTkuNCAwIDMyMS42IDAgNDI2LjcgODYuOCA1MTIgMTkyIDUxMnMxOTItODUuMyAxOTItMTkwLjRjMC0yMi4yLTMuOS00NC4yLTExLjUtNjUuMXptLTkwLjggNDkuNWM0LjEgOS4zIDYuMiAxOS40IDYuMiAyOS41IDAgNTMtNDMgOTYuNS05NiA5Ni41cy05Ni00My41LTk2LTk2LjVjMC0xMC4xIDIuMS0yMC4zIDYuMi0yOS41bDEuOS00LjNjMTUuOC0zNS40IDM3LjktNjcuNyA2NS4zLTk1LjFsOC45LTguOWMzLjYtMy42IDguNS01LjYgMTMuNi01LjZzMTAgMiAxMy42IDUuNmw4LjkgOC45YzI3LjQgMjcuNCA0OS42IDU5LjcgNjUuMyA5NS4xbDEuOSA0LjN6Il19LHV2cj12TmUscHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyZWUiLGljb246WzQ0OCw1MTIsWzEyNzc5NF0sImYxYmIiLCJNMjI0LTMyYzcgMCAxMy43IDMuMSAxOC4zIDguNWwxMzYgMTYwYzYuMSA3LjEgNy40IDE3LjEgMy41IDI1LjZTMzY5LjQgMTc2IDM2MCAxNzZsLTI0LjkgMCA3NS4yIDg4LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MDEuNCAzMDQgMzkyIDMwNGwtMzguNSAwIDg4LjggMTA0LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MzMuNCA0NDggNDI0IDQ0OGwtMTY4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTE2OCAwYy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42TDk0LjUgMzA0IDU2IDMwNGMtOS40IDAtMTcuOS01LjQtMjEuOC0xMy45cy0yLjYtMTguNSAzLjUtMjUuNkwxMTIuOSAxNzYgODggMTc2Yy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42bDEzNi0xNjBDMjEwLjMtMjguOSAyMTctMzIgMjI0LTMyeiJdfSxmdnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic21vZyIsaWNvbjpbNTc2LDUxMixbXSwiZjc1ZiIsIk0xNzYgMjg4Qzk2LjUgMjg4IDMyIDIyMy41IDMyIDE0NFM5Ni41IDAgMTc2IDBjMjcuMiAwIDUyLjYgNy41IDc0LjMgMjAuNiAyMC4xLTEzIDQ0LTIwLjYgNjkuNy0yMC42IDQ3LjQgMCA4OC43IDI1LjcgMTEwLjkgNjRsMS4xIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTIgMCA2MC4zLTQ3LjYgMTA5LjQtMTA3LjIgMTExLjktMjIuNiAyMC01Mi4zIDMyLjEtODQuOCAzMi4xLTMyLjUgMC02Mi4xLTEyLjEtODQuNy0zMkwxNzYgMjg4ek01MTIgMzkyYzAgMTMuMy0xMC43IDI0LTI0IDI0TDI0IDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHpNODggNDY0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTE3NiAwbDI4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yODggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0saHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InMiLGljb246WzMyMCw1MTIsWzExNV0sIjUzIiwiTTAgMTU3LjVDMCA4OC4yIDU2LjIgMzIgMTI1LjUgMzJMMjcyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDEyNS41IDk2Yy0zNCAwLTYxLjUgMjcuNS02MS41IDYxLjUgMCAzMSAyMy4xIDU3LjIgNTMuOSA2MUwyMTAuMSAyMzBDMjcyLjkgMjM3LjkgMzIwIDI5MS4yIDMyMCAzNTQuNSAzMjAgNDIzLjggMjYzLjggNDgwIDE5NC41IDQ4MEw0OCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ2LjUgMGMzNCAwIDYxLjUtMjcuNSA2MS41LTYxLjUgMC0zMS0yMy4xLTU3LjItNTMuOS02MUwxMDkuOSAyODJDNDcuMSAyNzQuMSAwIDIyMC44IDAgMTU3LjV6Il19LG12cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqZWRpIixpY29uOls1NzYsNTEyLFtdLCJmNjY5IiwiTTI0NiAzMTUuN2wtMjEuMi0zMS45Yy0yLjEtMy4yLTEuNy03LjQgMS0xMC4xczYuOS0zLjEgMTAuMS0xbDI5LjUgMTkuN2MyLjEgMS40IDQuOS0uMSA1LTIuNkwyNzkuNyA4Yy4xLTQuNSAzLjgtOCA4LjMtOHM4LjEgMy41IDguMyA4bDkuNCAyODEuOWMuMSAyLjUgMi45IDMuOSA1IDIuNmwyOS41LTE5LjdjMy4yLTIuMSA3LjQtMS43IDEwLjEgMXMzLjEgNi45IDEgMTAuMUwzMzAgMzE1LjdjLTEuMyAxLjktLjIgNC41IDIgNC45bDM3LjYgNy41YzMuNyAuNyA2LjQgNCA2LjQgNy44cy0yLjcgNy4xLTYuNCA3LjhMMzMyIDM1MS40Yy0yLjIgLjQtMy4zIDMtMiA0LjlsMjEuMiAzMS45YzIuMSAzLjIgMS43IDcuNC0xIDEwLjFzLTYuOSAzLjEtMTAuMSAxbC0yNi4zLTE3LjZjLTIuMi0xLjQtNS4xIC4yLTUgMi44bDIuMSA2MS41YzU5LjgtMTAuOCAxMDUuMS02My4xIDEwNS4xLTEyNiAwLTM3LTE1LjctNzAuNC00MC44LTkzLjctNy02LjUtNi41LTE4LjYgMS0yNC40IDM0LTI2LjMgNTUuOC02Ny41IDU1LjgtMTEzLjkgMC0xNi44LTIuOS0zMy04LjItNDgtNC42LTEzIDEwLjItMzAgMjEuNC0yMiA1My41IDM4IDkyLjcgOTQuOCAxMDcuOCAxNjAuNyAuNSAyLjEtLjIgNC4zLTEuNyA1LjlsLTI4LjQgMjguNGMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDI2IDBjMy40IDAgNi4yIDIuNiA2LjMgNiAuMSAzLjMgLjIgNi42IC4yIDEwIDAgMTcuNS0xLjcgMzQuNy00LjggNTEuMy0uMiAxLjItLjkgMi40LTEuNyAzLjNsLTQ2LjUgNDYuNWMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDE0LjYgMGM0LjYgMCA3LjcgNC44IDUuNyA5LTQ0LjUgODkuNS0xMzYuOSAxNTEtMjQzLjcgMTUxUzg4LjggNDUwLjUgNDQuMyAzNjFjLTIuMS00LjIgMS05IDUuNy05bDE0LjYgMGM1LjcgMCA4LjYtNi45IDQuNS0xMC45TDIyLjYgMjk0LjZjLS45LS45LTEuNS0yLTEuNy0zLjMtMy4yLTE2LjYtNC44LTMzLjgtNC44LTUxLjMgMC0zLjMgLjEtNi43IC4yLTEwIC4xLTMuNCAyLjktNiA2LjMtNmwyNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjQuNiAxODQuNmMtMS41LTEuNS0yLjItMy44LTEuNy01LjkgMTUuMi02NiA1NC4zLTEyMi44IDEwNy44LTE2MC43IDExLjMtOCAyNiA4LjkgMjEuNCAyMi01LjMgMTUtOC4yIDMxLjItOC4yIDQ4IDAgNDYuMyAyMS45IDg3LjUgNTUuOCAxMTMuOSA3LjUgNS44IDggMTcuOSAxIDI0LjQtMjUuMSAyMy40LTQwLjggNTYuNy00MC44IDkzLjcgMCA2Mi45IDQ1LjQgMTE1LjIgMTA1LjEgMTI2bDIuMS02MS41Yy4xLTIuNi0yLjgtNC4yLTUtMi44bC0yNi4zIDE3LjZjLTMuMiAyLjEtNy40IDEuNy0xMC4xLTFzLTMuMS02LjktMS0xMC4xTDI0NiAzNTYuM2MxLjMtMS45IC4yLTQuNS0yLTQuOWwtMzcuNi03LjVjLTMuNy0uNy02LjQtNC02LjQtNy44czIuNy03LjEgNi40LTcuOGwzNy42LTcuNWMyLjItLjQgMy4zLTMgMi00Ljl6Il19LHlOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24taGlraW5nIixpY29uOls0NDgsNTEyLFsiaGlraW5nIl0sImY2ZWMiLCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xMjggMTczLjZjMC0zNCAyNy42LTYxLjYgNjEuNi02MS42IDIwLjMgMCAzOS43IDguMSA1NCAyMi40bDQ4LjIgNDguMmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMzcuNSAwYzUuOCAwIDExLjMgMS42IDE2IDQuM2wwLTc2LjNjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI2OC4zYy00LjcgMi43LTEwLjIgNC4zLTE2IDQuM2wtMzcuNSAwYy0yNS41IDAtNDkuOS0xMC4xLTY3LjktMjguMWwtNi42LTYuNiAwIDEwOS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM2wxMi42IDg4LjFjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJsLTEyLjYtODguMWMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtMTAxem0tNC44IDIwMy43YzIuMyAyLjMgNC43IDQuNCA3LjEgNi41bDQ0LjkgMzguNWMtMy42IDguNC04LjUgMTYuMy0xNC40IDIzLjRMODguNiA1MzIuNWMtMTEuMyAxMy42LTMxLjUgMTUuNC00NS4xIDQuMXMtMTUuNC0zMS41LTQuMS00NS4xbDcyLjMtODYuN2MyLjYtMy4xIDQuNS02LjYgNS44LTEwLjRsNS43LTE3LjF6TTAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0IDE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2eiJdfSxndnI9eU5lLGJ2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdXAtdG8tbGluZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQzMy43IDAgNDE2IDBMMzIgMHptODYuNiAxMzcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDY0IDIzNy4zIDY0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQyLjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHptMjU2IDBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40IDAgMjQyLjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0Mi43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6Il19LHh2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLWRvdWJsZSIsaWNvbjpbNjQwLDUxMixbOTg5MV0sImYyMjciLCJNMjg4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNTAuNy05NSA5NWMxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzAgNDAxLjIgMCAzMDQgNzguOCAxMjggMTc2IDEyOGMzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDk1LTk1LTUwLjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE3NiA0MTZhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0xNjAgNjRjLTYuOCAwLTEzLjQtLjQtMjAtMS4xIDIzLjYtMTguOSA0My4zLTQyLjUgNTcuNi02OS40IDQzLjMtMTUuNSA3NC40LTU2LjkgNzQuNC0xMDUuNSAwLTI1LjItOC4zLTQ4LjUtMjIuNC02Ny4yIDcuMSAyLjEgMTQuNiAzLjIgMjIuNCAzLjIgMTcgMCAzMi43LTUuMyA0NS43LTE0LjMgMTEuNyAyMy42IDE4LjMgNTAuMiAxOC4zIDc4LjMgMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZ6TTUyOCAxNTcuM0w1MjggMzJjMC0xMS40LTIuNC0yMi4yLTYuNy0zMkw2MDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctNDggNDh6Il19LHZ2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aGVybW9tZXRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MSIsIk05NiAzODIuMWwwLTg4LjhjMC0xNC45IDUuOS0yOS4xIDE2LjQtMzkuNmwyMS43LTIxLjcgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA0Ni4xLTQ2LjEgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA0Ni4xLTQ2LjEgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA3LjgtNy44YzE5LjQtMTkuNCA0NS42LTMwLjIgNzMtMzAuMiA1NyAwIDEwMy4yIDQ2LjIgMTAzLjIgMTAzLjIgMCAyNy40LTEwLjkgNTMuNi0zMC4yIDczTDI1OC4zIDM5OS42Yy0xMC41IDEwLjUtMjQuNyAxNi40LTM5LjYgMTYuNGwtODguOCAwLTg5IDg5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMFMtMi4zIDQ4MC40IDcgNDcxbDg5LTg5eiJdfSx3TmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFpbnRicnVzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mzk2LCJwYWludC1icnVzaCJdLCJmMWZjIiwiTTQ4MC41IDEwLjNMMjU5LjEgMTU4Yy0yOS4xIDE5LjQtNDcuNiA1MC45LTUwLjYgODUuMyA2Mi4zIDEyLjggMTExLjQgNjEuOSAxMjQuMyAxMjQuMyAzNC41LTMgNjUuOS0yMS41IDg1LjMtNTAuNkw1NjUuNyA5NS41YzYuNy0xMC4xIDEwLjMtMjEuOSAxMC4zLTM0LjEgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjQtMTIuMSAwLTI0IDMuNi0zNC4xIDEwLjN6TTI4OCA0MDBjMC02MS45LTUwLjEtMTEyLTExMi0xMTJTNjQgMzM4LjEgNjQgNDAwYzAgMy45IC4yIDcuOCAuNiAxMS42IDEuOCAxNy41LTEwLjIgMzYuNC0yNy44IDM2LjRMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE0NCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyeiJdfSx5dnI9d05lLHd2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuZXV0ZXIiLGljb246WzM4NCw1MTIsWzk5MDZdLCJmMjJjIiwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0yMjMuOSAzNDkuMUMzMDUuOSAzMzQuMSAzNjggMjYyLjMgMzY4IDE3NiAzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NC4xIDE3My4xLS4xIDEtLjEgMS45LS4xIDIuOWwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtMSAwLTEuOS0uMS0yLjl6Il19LGtOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGhvbmUtZmxpcCIsaWNvbjpbNDQ4LDUxMixbInBob25lLXNxdWFyZS1hbHQiXSwiZjg3YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMzIgOTYuN2wyLjggLjhjMzIuMyA4LjggNTkuOSA0MC4xIDUxLjggNzguMi0xOC41IDg3LjUtODcuNCAxNTYuMy0xNzQuOSAxNzQuOS0zOC4xIDguMS02OS40LTE5LjUtNzguMi01MS44bC0uOC0yLjhjLTIuNy05LjggMi40LTIwLjEgMTEuOC0yNGw0OC43LTIwLjNjOC4zLTMuNCAxNy44LTEuMSAyMy41IDUuOWwxOS4zIDIzLjZjMzUuMS0xNy40IDYzLjQtNDYuNiA3OS42LTgyLjRsLTIyLjEtMThjLTYuOS01LjctOS4zLTE1LjItNS45LTIzLjVsMjAuMy00OC43YzMuOS05LjQgMTQuMi0xNC40IDI0LTExLjh6Il19LGt2cj1rTmUsU05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1NDEsImdyaW4tdG9uZ3VlLXNxdWludCJdLCJmNThhIiwiTTAgMjU2YzAgMTA0LjQgNjIuNSAxOTQuMiAxNTIuMiAyMzQuMS01LjMtMTMtOC4yLTI3LjItOC4yLTQyLjFsMC02MS43Yy0xNi45LTE2LjUtMzAuMS0zNi43LTM4LjMtNTkuMy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTguMyAyMi42LTIxLjUgNDIuOC0zOC4zIDU5LjNsMCA2MS43YzAgMTQuOS0yLjkgMjkuMS04LjIgNDIuMSA4OS43LTM5LjggMTUyLjItMTI5LjYgMTUyLjItMjM0LjEgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMwIDExNC42IDAgMjU2em0xMjUuOC05MS43Yy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xczEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM3ptMjYzLjYtMjEuMWM0LjUgNi44IDMuMSAxNS45LTMuMSAyMS4xTDM1MyAxOTIgMzg2LjIgMjE5LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjV6TTMyMCA0NDhsMC00NS40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgNDUuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxTdnI9U05lLE12cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LWRvbGxhciIsaWNvbjpbNTEyLDUxMixbXSwiZjY1MSIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHptNC0zNTJjMTEgMCAyMCA5IDIwIDIwbDAgNCA4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC00Ny41IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDYuMSA0LjQgMTEuMyAxMC40IDEyLjNsNDEuNyA3YzI1LjMgNC4yIDQzLjkgMjYuMSA0My45IDUxLjggMCAyNi4xLTE5IDQ3LjctNDQgNTEuOGwwIDQuN2MwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC00LTI0IDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDU1LjUgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC02LjEtNC40LTExLjMtMTAuNC0xMi4zbC00MS43LTdjLTI1LjMtNC4yLTQzLjktMjYuMS00My45LTUxLjggMC0yOC44IDIzLjItNTIuMiA1Mi01Mi41bDAtNGMwLTExIDktMjAgMjAtMjB6Il19LEN2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaXBwbyIsaWNvbjpbNjQwLDUxMixbMTI5NDM1XSwiZjZlZCIsIk00MDcgNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTcuMiAxNy4yYzEuOS0uMSAzLjktLjIgNS44LS4ybDMyIDBjMTEuMiAwIDIxLjkgMi4zIDMxLjYgNi41TDU0MyA1NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNTY0IDEwMS45YzcuNiAxMi4yIDEyIDI2LjcgMTIgNDIuMSAwIDEwLjIgNy40IDE4LjggMTYuNyAyMyAyNy45IDEyLjUgNDcuMyA0MC41IDQ3LjMgNzMgMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTYtNjQgMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTcuNmMtMTEuOC0yLjQtMjIuNy03LjQtMzItMTQuNC0xLjUtMS4xLTIuOS0yLjMtNC4zLTMuNS0xNy0xNC43LTI3LjctMzYuNC0yNy43LTYwLjUgMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZjMCA0NC43IDI2LjIgODMuMiA2NCAxMDEuMmwwIDEwLjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc2Yy0xOS44IDcuNy00MS40IDEyLTY0IDEycy00NC4yLTQuMy02NC0xMmwwIDc2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTExOC45LTE4LjEgNDAuN2MtNS40IDEyLjEtMTkuNiAxNy42LTMxLjcgMTIuMlMtMy4zIDM2Mi40IDIuMSAzNTAuM0wyNCAzMDAuOWM1LjMtMTEuOSA4LTI0LjcgOC0zNy43IDAtMTA3LjUgODUuMi0xOTUuMiAxOTEuOC0xOTkuMWwuMi0uMSA2NCAwYzQxLjcgMCA4My40IDEyLjEgMTE3LjIgMjUuNyAxLjctMS44IDMuNS0zLjYgNS4zLTUuMkw0MDcgODFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em03MyAxODVhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptODggMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek00ODAgMTQ0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnoiXX0senZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvd2wtZm9vZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRjNiIsIk0wIDE3NmMwLTM1LjMgMjguNy02NCA2NC02NCAuNSAwIDEuMSAwIDEuNiAwIDcuNC0zNi41IDM5LjctNjQgNzguNC02NCAxNSAwIDI5IDQuMSA0MC45IDExLjIgMTMuMy0yNS43IDQwLjEtNDMuMiA3MS4xLTQzLjJzNTcuOCAxNy42IDcxLjEgNDMuMmMxMi03LjEgMjYtMTEuMiA0MC45LTExLjIgMzguNyAwIDcxIDI3LjUgNzguNCA2NCAuNSAwIDEuMSAwIDEuNiAwIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMTEuNy0zLjEgMjIuNi04LjYgMzJMOC42IDIwOEMzLjEgMTk4LjYgMCAxODcuNyAwIDE3NnpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjQgMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6Il19LF92cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtdmlydXMiLGljb246WzQ0OCw1MTIsW10sImU1NzgiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMTYwIDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTkyIDI0OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFR2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zdW4tcmFpbiIsaWNvbjpbNjQwLDUxMixbMTI3NzgyXSwiZjc0MyIsIk0yNTQuOSA0NDguMmM0LjItMTIuNiAxNy44LTE5LjQgMzAuMy0xNS4yIDEyLjYgNC4yIDE5LjQgMTcuOCAxNS4yIDMwLjRsLTIxLjQgNjQuMWMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMnMtMTkuNC0xNy44LTE1LjItMzAuM2wyMS40LTY0LjJ6bTEyMCAwYzQuMi0xMi42IDE3LjgtMTkuNCAzMC4zLTE1LjIgMTIuNiA0LjIgMTkuNCAxNy44IDE1LjIgMzAuNGwtMjEuNCA2NC4xYy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4ycy0xOS40LTE3LjgtMTUuMi0zMC4zbDIxLjQtNjQuMnptMTIwIDBjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjMtMTUuMiAxMi42IDQuMiAxOS40IDE3LjggMTUuMiAzMC40bC0yMS40IDY0LjFjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJzLTE5LjQtMTcuOC0xNS4yLTMwLjNsMjEuNC02NC4yek00NDguMyAxMjhjNDQuMiAwIDgwIDM1LjggODAgODAgMCA3LjUtMS4xIDE0LjctMyAyMS41IDI5LjggMTEuNiA1MSA0MC42IDUxIDc0LjUgMCA0NC4yLTM1LjggODAtODAgODBsLTE5MiAwLTguMi0uNGMtNDAuMy00LjEtNzEuOC0zOC4yLTcxLjgtNzkuNiAwLTM5IDI3LjktNzEuNSA2NC45LTc4LjUtLjUtMy4xLS45LTYuMi0uOS05LjUgMC0zMC45IDI1LjEtNTYgNTYtNTYgMTIuNCAwIDIzLjkgNC4xIDMzLjIgMTAuOSAxMy40LTI1LjUgNDAuMS00Mi45IDcwLjgtNDIuOXpNMjQwLjMtMzEuOGM1LjMgMCAxMC4zIDIuNyAxMy4zIDcuMWw0Ny4zIDcwLjQgODMuMy0xNi4zYzUuMi0xIDEwLjYgLjcgMTQuMyA0LjQgMy44IDMuOCA1LjQgOS4yIDQuNCAxNC40bC04LjYgNDMuOGMtMTEuOSA1LjUtMjIuOCAxMi45LTMyLjQgMjEuNi01LjctMS0xMS43LTEuNS0xNy43LTEuNS0xNC4zIDAtMjggMy00MC40IDguMi0xNi45LTE1LTM5LjItMjQuMi02My42LTI0LjItNTMgMC05NiA0My05NiA5NiAwIDMwLjkgMTQuNiA1OC4yIDM3LjIgNzUuOC0zLjQgMTEuNS01LjIgMjMuNi01LjIgMzYuMiAwIDEzLjIgMiAyNS45IDUuNyAzNy45bC0yLjQtMy41LTgzLjIgMTYuM2MtNS4yIDEtMTAuNi0uNy0xNC4zLTQuNC0zLjgtMy44LTUuNC05LjItNC40LTE0LjRsMTYuMy04My4zLTcwLjQtNDcuNGMtNC40LTMtNy4xLTgtNy4xLTEzLjMgMC01LjMgMi42LTEwLjMgNy0xMy4ybDcwLjQtNDcuNC0xNi4zLTgzLjItLjItMmMtLjMtNC42IDEuMy05LjEgNC42LTEyLjQgMy44LTMuOCA5LjItNS40IDE0LjQtNC40bDgzLjIgMTYuMyA0Ny4zLTcwLjQgMS4yLTEuNmMzLTMuNSA3LjQtNS41IDEyLjEtNS41em0wIDE3NS44YzguNiAwIDE2LjYgMi4zIDIzLjYgNi4yLTkuNyAxMS45LTE2LjkgMjUuOS0yMC43IDQxLjMtMTUgOC4xLTI4LjIgMTkuMi0zOC44IDMyLjMtNy41LTguNS0xMi4yLTE5LjYtMTIuMi0zMS44IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSxNTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctcmlnaHQiXSwiZjE3OCIsIk01NjYuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDY2LjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0MzQuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxMdnI9TU5lLER2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy11biIsaWNvbjpbNTEyLDUxMixbXSwiZTRkOSIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjcyLTExMiAwYy0yMC45IDAtMzkuNSAxMC4xLTUxLjIgMjUuNi04LTYtMTgtOS42LTI4LjgtOS42LTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQgNjQgMCAwIDQ4LTE0NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NHpNMTQ0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNDQgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek00MjcuNCAzODAuNWM5LTIuMSAxOC4zIDIuMiAyMi41IDEwLjVsMjYuMSA1Mi4yIDAtNDMuM2MwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMGwwIDEyOGMwIDkuMy02LjQgMTcuMy0xNS40IDE5LjVzLTE4LjMtMi4yLTIyLjUtMTAuNUw0NTIgNDg0LjcgNDUyIDUyOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjhjMC05LjMgNi40LTE3LjMgMTUuNC0xOS41ek0zMjQgNDAwbDAgOTZjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTk2YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgOTZjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC05NmMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHoiXX0sJHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWxvdyIsaWNvbjpbNTEyLDUxMixbXSwiZjc2YiIsIk05NiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggNDQ3LjUgNDggMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDk2IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjguN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI4LjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDY0IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM1MiA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6Il19LEF2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb29yLW9wZW4iLGljb246WzQ0OCw1MTIsW10sImY1MmIiLCJNMjg4IDY0bDY0IDAgMCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NGwtOTYgMCAwIDAtMTYwIDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00MTZ6TTE2MCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sRXZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsaWduLWxlZnQiLGljb246WzQ0OCw1MTIsW10sImYwMzYiLCJNMjg4IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnptMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0sQ05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYSIsaWNvbjpbNTEyLDUxMixbNjIyNTgsImNhbWVyYS1hbHQiXSwiZjAzMCIsIk0xNDkuMSA2NC44TDEzOC43IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNzQuNyAwLTEwLjQtMzEuMkMzNTYuNCA0NS4yIDMzOC4xIDMyIDMxNy40IDMyTDE5NC42IDMyYy0yMC43IDAtMzkgMTMuMi00NS41IDMyLjh6TTI1NiAxOTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LEl2cj1DTmUsUHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXJheXMiLGljb246WzY0MCw1MTIsW10sImU1OTMiLCJNMzEtMzNDMjEuNy0yMy42IDIxLjctOC40IDMxIDFMODcgNTdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDY1LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpNNjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw1MTkgMjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEw2MDkgMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXpNNjUgNTQ1bDU2LTU2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzEgNTExYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6bTU0NCAwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC01Ni01NmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1NiA1NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHpNMzIwIDIwOGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptMCAzMmMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOGMwLTYxLjktNTAuMS0xMTItMTEyLTExMnptMjE2LTgwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNNDUxLjIgMjYwLjRDNDY5LjQgMjg2LjMgNDgwIDMxNy45IDQ4MCAzNTJsMCA4YzAgOC40LTEuNCAxNi41LTQuMSAyNGw3OC44IDBjMTEuOCAwIDIxLjMtOS42IDIxLjMtMjEuM2wwLTEwLjdjMC01My00My05Ni05Ni05Ni0xMCAwLTE5LjcgMS41LTI4LjggNC40em0tMjYyLjQgMGMtOS4xLTIuOS0xOC44LTQuNC0yOC44LTQuNC01MyAwLTk2IDQzLTk2IDk2bDAgMTAuN2MwIDExLjggOS42IDIxLjMgMjEuMyAyMS4zbDc4LjggMGMtMi43LTcuNS00LjEtMTUuNi00LjEtMjRsMC04YzAtMzQuMSAxMC42LTY1LjcgMjguOC05MS42ek0yMTYgMTYwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHoiXX0sTnZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhaW5ib3ciLGljb246WzY0MCw1MTIsWzEyNzc1Ml0sImY3NWIiLCJNMzIwIDk2QzE3OC42IDk2IDY0IDIxMC42IDY0IDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDMzLjcgMCA0MTZsMC02NEMwIDE3NS4zIDE0My4zIDMyIDMyMCAzMlM2NDAgMTc1LjMgNjQwIDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRDNTc2IDIxMC42IDQ2MS40IDk2IDMyMCA5NnptMCAxMTJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDR6TTI4OCAzNTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSxPdnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2l0ZW1hcCIsaWNvbjpbNTEyLDUxMixbXSwiZjBlOCIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04IDAgMCA2NCAxMjAgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMjAgMCAwIDgwIDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTgwLTEyMCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMzkuOCAzMi4yLTcyIDcyLTcybDEyMCAwIDAtNjQtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0eiJdfSx6TmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXN0YXJzIixpY29uOls1MTIsNTEyLFsxMjkzMjEsImdyaW4tc3RhcnMiXSwiZjU4NyIsIk0yNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTYgMC0yNC40LTMuNC00OC4xLTkuOC03MC41IDE4LjYtMzYuMS0yLjctODMuNi00Ni43LTkwLTQ2LjktNTguMy0xMTguOS05NS41LTE5OS41LTk1LjVTMTAzLjQgMzcuMyA1Ni41IDk1LjVjLTQ0IDYuNC02NS4zIDUzLjktNDYuNyA5MC02LjQgMjIuNC05LjggNDYtOS44IDcwLjUgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NnpNMzg2LjcgMzI0LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDQwNC4yIDEwNS43IDM0Mi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6bS0zMS42LTIzMWM1LjMtMTAuNyAyMC41LTEwLjcgMjUuOCAwbDIwLjkgNDIuNCA0Ni43IDYuOGMxMS44IDEuNyAxNi41IDE2LjIgOCAyNC41bC0zMy44IDMzIDggNDYuNmMyIDExLjctMTAuMyAyMC43LTIwLjkgMTUuMmwtNDEuOC0yMi00MS44IDIyYy0xMC41IDUuNS0yMi45LTMuNC0yMC45LTE1LjJsOC00Ni42LTMzLjgtMzNjLTguNS04LjMtMy44LTIyLjggOC0yNC41bDQ2LjctNi44IDIwLjktNDIuNHptLTE5OC4yIDBsMjAuOSA0Mi40IDQ2LjcgNi44YzExLjggMS43IDE2LjUgMTYuMiA4IDI0LjVsLTMzLjggMzMgOCA0Ni42YzIgMTEuNy0xMC4zIDIwLjctMjAuOSAxNS4ybC00MS44LTIyLTQxLjggMjJjLTEwLjUgNS41LTIyLjktMy40LTIwLjktMTUuMmw4LTQ2LjYtMzMuOC0zM2MtOC41LTguMy0zLjgtMjIuOCA4LTI0LjVsNDYuNy02LjggMjAuOS00Mi40YzUuMy0xMC43IDIwLjUtMTAuNyAyNS44IDB6Il19LFJ2cj16TmUsX05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQtdXAiLGljb246WzM4NCw1MTIsWyJzb3J0LWFzYyJdLCJmMGRlIiwiTTMyIDIyNGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuMiAxNzguNSA5LjQgMTY5LjRsMTYwLTE2MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzM2NC45IDIyNCAzNTIgMjI0TDMyIDIyNHoiXX0sRnZyPV9OZSxwcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllIixpY29uOls1NzYsNTEyLFsxMjgwNjVdLCJmMDZlIiwiTTI4OCAzMmMtODAuOCAwLTE0NS41IDM2LjgtMTkyLjYgODAuNi00Ni44IDQzLjUtNzguMSA5NS40LTkzIDEzMS4xLTMuMyA3LjktMy4zIDE2LjcgMCAyNC42IDE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjEgNDcuMSA0My43IDExMS44IDgwLjYgMTkyLjYgODAuNnMxNDUuNS0zNi44IDE5Mi42LTgwLjZjNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjZ6TTE0NCAyNTZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQ0LTY0YzAgMzUuMy0yOC43IDY0LTY0IDY0LTExLjUgMC0yMi4zLTMtMzEuNy04LjQtMSAxMC45LS4xIDIyLjEgMi45IDMzLjIgMTMuNyA1MS4yIDY2LjQgODEuNiAxMTcuNiA2Ny45czgxLjYtNjYuNCA2Ny45LTExNy42Yy0xMi4yLTQ1LjctNTUuNS03NC44LTEwMS4xLTcwLjggNS4zIDkuMyA4LjQgMjAuMSA4LjQgMzEuN3oiXX0sZnBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LWxlZnQiLGljb246WzI1Niw1MTIsW10sImYwZDkiLCJNNy43IDIzNS44Yy0xMC4zIDEyLjYtOS41IDMxLjEgMi4yIDQyLjhsMTI4IDEyOGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMjU2YzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC0xMjggMTI4LTIuMiAyLjR6Il19LFROZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcHBsZS13aG9sZSIsaWNvbjpbNDQ4LDUxMixbMTI3ODIyLDEyNzgyMywiYXBwbGUtYWx0Il0sImY1ZDEiLCJNMjI0IDExMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODBsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTYgMHpNMCAyODhjMC03Ni4zIDM1LjctMTYwIDExMi0xNjAgMjcuMyAwIDU5LjcgMTAuMyA4Mi43IDE5LjMgMTguOCA3LjMgMzkuOSA3LjMgNTguNyAwIDIyLjktOC45IDU1LjQtMTkuMyA4Mi43LTE5LjMgNzYuMyAwIDExMiA4My43IDExMiAxNjAgMCAxMjgtODAgMjI0LTE2MCAyMjQtMTYuNSAwLTM4LjEtNi42LTUxLjUtMTEuMy04LjEtMi44LTE2LjktMi44LTI1IDAtMTMuNCA0LjctMzUgMTEuMy01MS41IDExLjMtODAgMC0xNjAtOTYtMTYwLTIyNHoiXX0sQnZyPVROZSxMTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsLXRvcmFoIixpY29uOls1NzYsNTEyLFsidG9yYWgiXSwiZjZhMCIsIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMCA2OC45IDAgODYuNyAxMy40IDkzLjMgMzJsMzg5LjUgMGM2LjYtMTguNiAyNC40LTMyIDQ1LjMtMzIgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDgtMjAuOSAwLTM4LjctMTMuNC00NS4zLTMyTDkzLjMgNDgwYy02LjYgMTguNi0yNC40IDMyLTQ1LjMgMzItMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpNMTc3LjkgMzAxYy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yYy0yLjYtNC4yLTcuMi02LjgtMTIuMi02LjhzLTkuNiAyLjYtMTIuMiA2LjhsLTMwLjUgNDkuMi01Ni45IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDIuMyAuNiA0LjYgMS45IDYuNmwyNy44IDQ1LTI3LjggNDV6Il19LEh2cj1MTmUscXZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWxvY2siLGljb246WzY0MCw1MTIsW10sImU1MTAiLCJNNTI4IDIyNC4xYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwxODUgMTcxLjhDNDQwLjIgMTk1IDQwMCAyNDQuOCA0MDAgMzA0bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek0yNzIgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDk2IDAgMC04Ny4zYzAtMTYuNSA3LTMxLjUgMTguNC00Mi4xLTguNy05LTIwLjktMTQuNi0zNC40LTE0LjZsLTMyIDB6bTI1Ni00Ny45Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3LjljMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LFZ2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtbGVmdC1yaWdodC10by1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNGJhIiwiTTMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOEwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zOTAuNiAzNDIuNmw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMTMzLjUgMCA5LjQtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTMzLjUgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwek01NzYgMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZ6Il19LG5UPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoIixpY29uOls0NDgsNTEyLFtdLCJmMWY4IiwiTTEzNi43IDUuOUwxMjggMzIgMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwLTguNy0yNi4xQzMwNi45LTcuMiAyOTQuNy0xNiAyODAuOS0xNkwxNjcuMS0xNmMtMTMuOCAwLTI2IDguOC0zMC40IDIxLjl6TTQxNiAxNDRMMzIgMTQ0IDUzLjEgNDY3LjFDNTQuNyA0OTIuNCA3NS43IDUxMiAxMDEgNTEyTDM0NyA1MTJjMjUuMyAwIDQ2LjMtMTkuNiA0Ny45LTQ0LjlMNDE2IDE0NHoiXX0sRE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc2FkLXRlYXIiLGljb246WzUxMiw1MTIsWzEyODU0Niwic2FkLXRlYXIiXSwiZjViNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNzEgOThjNS41LTEuMyAxMS4xLTIgMTctMiAyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MC0xMi41IDAtMjQuNiAxLjktMzUuOSA1LjUgOS44IDEyLjcgMTYuNSAyNy45IDE4LjkgNDQuNnpNMTc2IDI0MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE5Mi0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xODUuNCAyOTIuOGMtMi40LTIuOS01LjctNC44LTkuNC00LjhzLTcgMS45LTkuNCA0LjhjLTYuNSA3LjgtMTIuNiAxNi4xLTE4LjMgMjQuNi05IDEzLjQtMjAuMyAzMC4yLTIwLjMgNDcuNCAwIDI4LjMgMjEuNSA1MS4yIDQ4IDUxLjJzNDgtMjIuOSA0OC01MS4yYzAtMTcuMi0xMS4yLTM0LTIwLjMtNDcuNC01LjctOC41LTExLjktMTYuNy0xOC4zLTI0LjZ6Il19LGp2cj1ETmUsVXZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZheCIsaWNvbjpbNTEyLDUxMixbMTI4MjI0LDEyODQzOV0sImYxYWMiLCJNMTYwIDY0bDAgODAgNjQgMCAwLTgwIDE0Ni43IDAgNDUuMyA0NS4zIDAgMzQuNyA2NCAwIDAtMzQuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w0MTYgMTguN0M0MDQgNi43IDM4Ny43IDAgMzcwLjcgMEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMHptNDQ4IDY0bC0zMjAgMCAwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDI4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0wIDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTMzNiAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zMTIgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTQyNCAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek00MDAgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LFd2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLXBsdXMiLGljb246WzY0MCw1MTIsW10sImU1NDEiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnoiXX0sR3ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbXNhIixpY29uOls1MTIsNTEyLFtdLCJmNjY1IiwiTTM0LjYgMjg4TDgwIDI4OGM4LjggMCAxNi03LjIgMTYtMTZMOTYgNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDEzMmMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTE2NGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTY0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTMyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMDBjMCA4LjggNy4yIDE2IDE2IDE2bDQ1LjQgMGMxOS4xIDAgMzQuNiAxNS41IDM0LjYgMzQuNiAwIDguNi0zLjIgMTYuOS05IDIzLjNMNDE2LjYgNDQxYy00MS4xIDQ1LjItOTkuNCA3MS0xNjAuNiA3MVMxMzYuNiA0ODYuMiA5NS40IDQ0MUw5IDM0NS45Yy01LjgtNi40LTktMTQuNy05LTIzLjMgMC0xOS4xIDE1LjUtMzQuNiAzNC42LTM0LjZ6TTI1NiAyODhjLTM4LjQgMC03Ni44IDM1LjgtOTAuNiA1MC4yLTMuNiAzLjctNS40IDguNy01LjQgMTMuOHMxLjggMTAuMSA1LjQgMTMuOEMxNzkuMiAzODAuMiAyMTcuNiA0MTYgMjU2IDQxNnM3Ni44LTM1LjggOTAuNi01MC4yYzMuNi0zLjcgNS40LTguNyA1LjQtMTMuOHMtMS44LTEwLjEtNS40LTEzLjhDMzMyLjggMzIzLjggMjk0LjQgMjg4IDI1NiAyODh6bTAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxZdnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LEt2cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtY2hlY2siLGljb246WzM4NCw1MTIsW10sImY0NmMiLCJNMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMHptMjYuOSAyMTIuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjZzLTkuOCAyNC40LS42IDMzLjlsNDYuNCA0OGM0LjkgNS4xIDExLjggNy44IDE4LjkgNy4zczEzLjYtNC4xIDE3LjgtOS44TDI4OC4yIDI0Ni4xYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41ek0xMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0eiJdfSwkTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtZnJvbS1zcXVhcmUiLGljb246WzU3Niw1MTIsWzYxNTA5LCJzaGFyZS1zcXVhcmUiXSwiZjE0ZCIsIk0zODQuNSAyNGwwIDcyLTY0IDBjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOTMuNCA4Mi44IDEzNC44IDEwMC42IDE0Mi42IDIuMiAxIDQuNiAxLjQgNy4xIDEuNGwyLjUgMGM5LjggMCAxNy44LTggMTcuOC0xNy44IDAtOC4zLTUuOS0xNS41LTEyLjgtMjAuMy04LjktNi4yLTE5LjItMTguMi0xOS4yLTQwLjUgMC00NSAzNi41LTgxLjUgODEuNS04MS41bDMwLjUgMCAwIDcyYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNHptLTI3MiA3MmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMjU2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMHoiXX0sWnZyPSROZSxocGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjZWlwdCIsaWNvbjpbMzg0LDUxMixbMTI5NTM0XSwiZjU0MyIsIk0xNCAyLjJDMjIuNS0xLjcgMzIuNS0uMyAzOS42IDUuOEw4MCA0MC40IDEyMC40IDUuOGM5LTcuNyAyMi4zLTcuNyAzMS4yIDBMMTkyIDQwLjQgMjMyLjQgNS44YzktNy43IDIyLjItNy43IDMxLjIgMEwzMDQgNDAuNCAzNDQuNCA1LjhjNy4xLTYuMSAxNy4xLTcuNSAyNS42LTMuNlMzODQgMTQuNiAzODQgMjRsMCA0NjRjMCA5LjQtNS41IDE3LjktMTQgMjEuOHMtMTguNSAyLjUtMjUuNi0zLjZsLTQwLjQtMzQuNi00MC40IDM0LjZjLTkgNy43LTIyLjIgNy43LTMxLjIgMGwtNDAuNC0zNC42LTQwLjQgMzQuNmMtOSA3LjctMjIuMyA3LjctMzEuMiAwTDgwIDQ3MS42IDM5LjYgNTA2LjJjLTcuMSA2LjEtMTcuMSA3LjUtMjUuNiAzLjZTMCA0OTcuNCAwIDQ4OEwwIDI0QzAgMTQuNiA1LjUgNi4xIDE0IDIuMnpNMTA0IDEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6TTgwIDM1MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNC0xMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxRdnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXF1YWxzIixpY29uOls0NDgsNTEyLFs2Mjc2NF0sIjNkIiwiTTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxMjh6bTAgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMHoiXX0sWHZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tdXAiLGljb246WzQ0OCw1MTIsW10sImYwNzciLCJNMjAxLjQgMTA1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyMjQgMTczLjMgNTQuNiAzNDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTkyLTE5MnoiXX0sSnZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDc1IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg4LjYtODguNmMxLjctMTIuMS0yLTI0LjgtMTEuMy0zNC0zMS4yLTMxLjItOS4xLTg0LjUgMzUtODQuNSAyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGMtNDQuMSAwLTY2LjEtNTMuMy0zNS04NC41IDE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42cy00MC45LTE1LjYtNTYuNiAwYy0zMS4yIDMxLjItODQuNSA5LjEtODQuNS0zNSAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDQ0LjEtNTMuMyA2Ni4xLTg0LjUgMzUtOS4zLTkuMy0yMi0xMy0zNC0xMS4zTDQxLTI0Ljl6TTcyIDIxNmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGM0NC4xIDAgNjYuMSA1My4zIDM1IDg0LjUtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZzNDAuOSAxNS42IDU2LjYgMGMzMS4yLTMxLjIgODQuNS05LjEgODQuNSAzNSAwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwYzAtMjEuNCAxMi42LTM3LjYgMjkuMS00NS4xbC0yNDAtMjQwQzEwOS42IDIwMy40IDkzLjQgMjE2IDcyIDIxNnoiXX0sZXlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNzE1IiwiTTctMjVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMNTY5IDUwM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOUMtMi4zLS40LTIuMy0xNS42IDctMjV6Il19LHR5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleHBhbmQiLGljb246WzQ0OCw1MTIsW10sImYwNjUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJTMCAzMzQuMyAwIDM1MmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTQ0OCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnoiXX0sQU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdGUtc3RpY2t5IixpY29uOls0NDgsNTEyLFs2MjAyNiwic3RpY2t5LW5vdGUiXSwiZjI0OSIsIk02NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMTMuNWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM0wzMjIuNyA0NjEuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w2NCA0ODB6TTM4OS41IDMwNEwyOTYgMzA0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDkzLjUgMTE3LjUtMTE3LjV6Il19LHJ5cj1BTmUsRU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNvbHVtbnMiLGljb246WzQ0OCw1MTIsWyJjb2x1bW5zIl0sImYwZGIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTY0IDY0bDAgMjU2IDEyOCAwIDAtMjU2LTEyOCAwem0zMjAgMGwtMTI4IDAgMCAyNTYgMTI4IDAgMC0yNTZ6Il19LGF5cj1FTmUsaXlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1zaGVsdGVyIixpY29uOls1MTIsNTEyLFtdLCJlNTRmIiwiTTI3MS45IDQuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhDNi4yIDEzNy45IDAgMTQ4LjUgMCAxNjBMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCAxNzguNiAyNTYgNjguOSA0NDggMTc4LjYgNDQ4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTEuNS02LjItMjIuMS0xNi4xLTI3LjhsLTIyNC0xMjh6TTI1NiAyMDhhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwem0tOCAxOTJsMTYgMCAwIDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNzQuNSAyNi45IDQ5LjljNi4zIDExLjcgMjAuOCAxNiAzMi41IDkuOHMxNi0yMC44IDkuOC0zMi41bC0zMy4yLTYxLjdDMzI5LjcgMjQ1LjEgMjk0LjQgMjI0IDI1NiAyMjRzLTczLjcgMjEuMS05MS45IDU0LjlsLTMzLjIgNjEuN2MtNi4zIDExLjctMS45IDI2LjIgOS44IDMyLjVzMjYuMiAxLjkgMzIuNS05LjhMMjAwIDMxMy41IDIwMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTg4eiJdfSxzeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLW5vdGNoIixpY29uOls1MTIsNTEyLFtdLCJmMWNlIiwiTTIyMi43IDMyLjFjNSAxNi45LTQuNiAzNC44LTIxLjUgMzkuOC03OS4zIDIzLjYtMTM3LjEgOTcuMS0xMzcuMSAxODQuMSAwIDEwNiA4NiAxOTIgMTkyIDE5MnMxOTItODYgMTkyLTE5MmMwLTg2LjktNTcuOC0xNjAuNC0xMzcuMS0xODQuMS0xNi45LTUtMjYuNi0yMi45LTIxLjUtMzkuOHMyMi45LTI2LjYgMzkuOC0yMS41QzQzNC45IDQyLjEgNTEyIDE0MCA1MTIgMjU2IDUxMiAzOTcuNCAzOTcuNCA1MTIgMjU2IDUxMlMwIDM5Ny40IDAgMjU2YzAtMTE2IDc3LjEtMjEzLjkgMTgyLjktMjQ1LjQgMTYuOS01IDM0LjggNC42IDM5LjggMjEuNXoiXX0sbnlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdGVyIixpY29uOls1MTIsNTEyLFtdLCJmNzczIiwiTTQxMC42IDEyNC4xYzIwLjcgMTUuNiA0NiAzMC43IDc0LjIgMzQuNSAxMy4xIDEuOCAyNS4yLTcuNSAyNy0yMC42cy03LjUtMjUuMi0yMC42LTI3Yy0xNS45LTIuMS0zMy4yLTExLjMtNTEuNy0yNS4yLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTE4LjUgMTMuOS0zNS44IDIzLjEtNTEuNyAyNS4yLTEzLjEgMS44LTIyLjQgMTMuOC0yMC42IDI3czEzLjggMjIuNCAyNyAyMC42YzI4LjItMy44IDUzLjYtMTguOSA3NC4yLTM0LjUgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHptMCAxNDRjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjctMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiAxNDRjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxJTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGVsZXRlLWxlZnQiLGljb246WzY0MCw1MTIsWzkwMDMsImJhY2tzcGFjZSJdLCJmNTVhIiwiTTU3NiAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjA1LjMgNjRjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43TDkuNCAyMzMuNGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42TDE2MCA0MjkuM2MxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43TDUxMiA0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZ6TTI4NC4xIDE4OC4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LG95cj1JTmUseXVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyb29tLWJhbGwiLGljb246WzU3Niw1MTIsWyJxdWlkZGl0Y2giLCJxdWlkZGl0Y2gtYnJvb20tYmFsbCJdLCJmNDU4IiwiTTQ5NiA1NDRhODAgODAgMCAxIDEgMC0xNjAgODAgODAgMCAxIDEgMCAxNjB6TTEwNi44IDI3Ny4yYzMwLjYtMzAuNiA3My4xLTQ1LjkgMTE1LjgtNDIuMkwzNDEgMzUzLjNjMy43IDQyLjgtMTEuNiA4NS4yLTQyLjIgMTE1LjktMjcuNCAyNy40LTY0LjYgNDIuOC0xMDMuMyA0Mi44TDIyLjEgNTEyYy0xMi4yIDAtMjIuMS05LjktMjIuMS0yMi4xIDAtNi4zIDIuNy0xMi4zIDcuMy0xNi41TDEzMy43IDM1OS43YzQuMi0zLjctLjQtMTAuNC01LjQtNy45TDc3LjIgMzc3LjRjLTYuMSAzLTEzLjItMS40LTEzLjItOC4yIDAtMzEuNSAxMi41LTYxLjggMzQuOC04NGw4LTh6bTQxNy0yNzBjMTIuNi0xMC4zIDMxLjEtOS41IDQyLjggMi4yczEyLjQgMzAuMiAyLjIgNDIuOGwtMi4yIDIuNC0xOTIgMTkyIDM0LjggMzQuN2M0LjIgNC4yIDYuNiAxMCA2LjYgMTYgMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjZsLTI5LjEgMC0xMDguMy0xMDguMyAwLTI5LjFjMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjYgNiAwIDExLjggMi40IDE2IDYuNmwzNC44IDM0LjcgMTkyLTE5MiAyLjQtMi4yeiJdfSxseXI9eXVlLGN5cj15dWUsZHlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImoiLGljb246WzMyMCw1MTIsWzEwNl0sIjRhIiwiTTI4OCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwbDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFBOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaHV0dGxlLXNwYWNlIixpY29uOls1NzYsNTEyLFsic3BhY2Utc2h1dHRsZSJdLCJmMTk3IiwiTTAgMzY4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNTAgMGM0MC42IDAgODAuNC0xMSAxMTUuMi0zMS45bDEzMy41LTgwLjEtOTMuMyAwLTY0LjkgMzguOWMtMTQgOC40LTI4LjkgMTQuNy00NC41IDE5bDAtNjYuNGM5LjctNS42IDE3LjgtMTMuNyAyMy40LTIzLjRsMTk4LjggMGM2Ny4xIDAgMTI3LjgtMjAuNiAxNzAuMy03MC42IDQuNi01LjQgNC42LTEzLjMgMC0xOC44LTQyLjUtNTAuMS0xMDMuMi03MC42LTE3MC4zLTcwLjZsLTE5OC44IDBjLTUuNi05LjctMTMuNy0xNy44LTIzLjQtMjMuNGwwLTY2LjRjMTUuNiA0LjIgMzAuNiAxMC42IDQ0LjUgMTlsNjQuOSAzOC45IDkzLjMgMC0xMzMuNS04MC4xQzE3OC40IDQzIDEzOC42IDMyIDk4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCAzNjh6bTk2IDBsMCA2NC00OCAwIDAtNjQgNDggMHpNOTYgODBsMCA2NC00OCAwIDAtNjQgNDggMHpNNDE2IDIyNGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sdXlyPVBOZSxweXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieWluLXlhbmciLGljb246WzUxMiw1MTIsWzk3NzVdLCJmNmFkIiwiTTIyNCAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgMzUyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC00NDhjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTYtOTYgNDMtOTYgOTYgNDMgOTYgOTYgOTZDMTUwIDQ0OCA2NCAzNjIgNjQgMjU2UzE1MCA2NCAyNTYgNjR6TTIyNCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sZnlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3AiLGljb246WzQ0OCw1MTIsWzkyMDldLCJmMDRkIiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnoiXX0saHlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyb3dlbCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4OSIsIk00MDcuOSAxODEuNEwyNzcuMyAzMTIgMzQyLjYgMzc3LjRjNy45IDcuOSAxMS4xIDE5LjQgOC40IDMwLjNzLTEwLjggMTkuNi0yMS41IDIyLjlsLTI1NiA4MGMtMTEuNCAzLjUtMjMuOCAuNS0zMi4yLTcuOXMtMTEuNS0yMC44LTcuOS0zMi4ybDgwLTI1NmMzLjMtMTAuNyAxMi0xOC45IDIyLjktMjEuNXMyMi40IC41IDMwLjMgOC40TDIzMiAyNjYuNyAzNjIuNiAxMzYuMWMtMTQuMy0xNC42LTE0LjItMzggLjMtNTIuNWw5NS40LTk1LjRjMjYuOS0yNi45IDcwLjUtMjYuOSA5Ny41IDBzMjYuOSA3MC41IDAgOTcuNWwtOTUuNCA5NS40Yy0xNC41IDE0LjUtMzcuOSAxNC42LTUyLjUgLjN6Il19LE5OZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWJhY2stZmlzdCIsaWNvbjpbMzg0LDUxMixbImhhbmQtcm9jayJdLCJmMjU1IiwiTTcuNCAyNTMuNkMyLjYgMjQ1LjkgMCAyMzcuMSAwIDIyOGwwLTM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OCAxNy4zIDAgMzIuNCA5LjEgNDAuOSAyMi44IDQuMy0yMi4xIDIzLjgtMzguOCA0Ny4xLTM4LjggMjMuNCAwIDQyLjkgMTYuOCA0Ny4xIDM4LjkgNy4zLTQuNCAxNS44LTYuOSAyNC45LTYuOSAyMi4xIDAgNDAuOCAxNSA0Ni4zIDM1LjQgNS41LTIuMiAxMS40LTMuNCAxNy43LTMuNCAyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2LjljMCA5LjktMi4zIDE5LjctNi44IDI4LjZsLTM5LjYgNzkuMWMtMTAuOCAyMS43LTMzIDM1LjQtNTcuMiAzNS40TDk2IDM1MmMtMTYuNSAwLTMxLjgtOC40LTQwLjYtMjIuNGwtNDgtNzZ6TTMyIDQ4MGwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sbXlyPU5OZSxneXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtaGlnaCIsaWNvbjpbNTEyLDUxMixbXSwiZjc2OSIsIk05NiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggNDQ3LjUgNDggMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDk2IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDIxNiA5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIxMi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQ2NCA4MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zNTIgODBhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAweiJdfSxieXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JlYXRlci10aGFuIixpY29uOls1MTIsNTEyLFs2Mjc2OV0sIjNlIiwiTTM0LjkgNTAuNmMtNy40IDE2LS40IDM1LjEgMTUuNiA0Mi41TDQwMy42IDI1NiA1MC42IDQxOWMtMTYgNy40LTIzLjEgMjYuNC0xNS42IDQyLjVzMjYuNCAyMyA0Mi41IDE1LjZsNDE2LTE5MmMxMS4zLTUuMiAxOC42LTE2LjYgMTguNi0yOS4xcy03LjMtMjMuOC0xOC42LTI5LjFMNzcuNCAzNWMtMTYtNy40LTM1LjEtLjQtNDIuNSAxNS42eiJdfSx4eXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3J1dGNoIixpY29uOls1MTIsNTEyLFtdLCJmN2Y3IiwiTTI5Ny40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0xLjQtMS40LTE1OC42IDE1OC42Yy0xOCAxOC00Mi40IDI4LjEtNjcuOSAyOC4xbC01OSAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNC02MS43IDYxLjctOTIuOCA5Mi44LTkzLjMgOTMuMy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNi0xNiAwIDAgNzcuMy03Ny4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTU5YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45TDI5OC43IDU2IDI5Ny40IDU0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zek0zNDQgMTAxLjNMMjYxLjMgMTg0IDMyOCAyNTAuNyA0MTAuNyAxNjggMzQ0IDEwMS4zem0tMTI4IDEyOGwtMzAuNiAzMC42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCA1My41IDUzLjUgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEwyODIuNyAyOTYgMjE2IDIyOS4zeiJdfSxPTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VwdGFnb24iLGljb246WzU3Niw1MTIsWyJoZXB0YWdvbiJdLCJlODIwIiwiTTI2Ny40LTMxLjVjMTUuOS01LjUgMzMuNS00LjYgNDguOCAyLjdsMTcyLjQgODMgNi4zIDMuNWMxNC4yIDkgMjQuNSAyMy4zIDI4LjMgMzkuOWw0Mi42IDE4Ni41IDEuMiA3LjJjMS42IDE0LjMtMS43IDI4LjgtOS40IDQxLjFsLTQuMiA1LjktMTE5LjMgMTQ5LjZjLTEyLjEgMTUuMi0zMC42IDI0LjEtNTAgMjQuMWwtMTkxLjMgMGMtMTkuNSAwLTM3LjktOC45LTUwLTI0LjFMMjMuNSAzMzguNGMtMTIuMS0xNS4yLTE2LjctMzUuMi0xMi4zLTU0LjJsNDIuNi0xODYuNSAyLTdjNS42LTE1LjkgMTcuMi0yOSAzMi42LTM2LjRsMTcyLjQtODMgNi43LTIuN3oiXX0sdnlyPU9OZSx5eXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RyZWV0LXZpZXciLGljb246WzUxMiw1MTIsW10sImYyMWQiLCJNMjU2IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTIyNCAxNjBsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xLjggMC0xMS4xIDk5LjVjLTEuOCAxNi4yLTE1LjUgMjguNS0zMS44IDI4LjVsLTM4LjcgMGMtMTYuMyAwLTMwLTEyLjMtMzEuOC0yOC41bC0xMS4xLTk5LjUtMS44IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDhjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTQxMi40IDQwMC4yYy0xNi4xLTQuMi0zNC44LTcuNi01NS40LTEwLjJsNS4zLTQ3LjdjMjIuNyAyLjkgNDMuNyA2LjcgNjIuMSAxMS41IDIyLjQgNS44IDQyLjYgMTMuMyA1Ny44IDIzLjMgMTQuNyA5LjYgMjkuOCAyNC45IDI5LjggNDdzLTE1LjEgMzcuNC0yOS44IDQ3Yy0xNS4yIDkuOS0zNS41IDE3LjUtNTcuOCAyMy4zLTQ1LjEgMTEuNy0xMDUuMyAxNy44LTE2OC40IDE3LjhzLTEyMy4zLTYuMS0xNjguNC0xNy44QzY1LjIgNDg4LjQgNDUgNDgwLjkgMjkuOCA0NzEgMTUuMSA0NjEuNCAwIDQ0Ni4xIDAgNDI0czE1LjEtMzcuNCAyOS44LTQ3YzE1LjItOS45IDM1LjUtMTcuNSA1Ny44LTIzLjMgMTguNS00LjggMzkuNS04LjYgNjIuMS0xMS41TDE1NSAzOTBjLTIwLjYgMi42LTM5LjMgNi4xLTU1LjQgMTAuMi01Ni42IDE0LjYtNTYuNiAzMi45IDAgNDcuNSAzOS45IDEwLjMgOTUuOCAxNi4yIDE1Ni40IDE2LjJzMTE2LjUtNS45IDE1Ni40LTE2LjJjNTYuNi0xNC42IDU2LjYtMzIuOSAwLTQ3LjV6Il19LHd5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YXZlLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZSIsIk02NCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI4OCA5NiAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI4OC05NiAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0xMjh6Il19LGt5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZS1sZWZ0IixpY29uOlsyNTYsNTEyLFs4MjQ5XSwiZjEwNCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHoiXX0sU3lyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyIixpY29uOls1NzYsNTEyLFsxMjk2OTFdLCJmNTRhIiwiTTM1Mi4xIDE0Ni43bDAtNDkuNmMwLTEwLjcgNS4zLTIwLjcgMTQuMi0yNi42TDQ4NS4yLTguN2M2LjMtNC4yIDE0LjgtMy40IDIwLjIgMmw0NS40IDQ1LjVjNS40IDUuNCA2LjIgMTMuOCAyIDIwLjJMNDczLjYgMTc3LjhjLTUuOSA4LjktMTUuOSAxNC4yLTI2LjYgMTQuMmwtNDkuNiAwLTkwLjcgOTAuN2MxNSAzMy4zIDguOSA3My45LTE4LjUgMTAxLjNMMTYyLjEgNTEwLjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwTDM0LjEgNDQ5LjljLTE4LjctMTguNy0xOC43LTQ5LjEgMC02Ny45TDE2MC4xIDI1NmMyNy40LTI3LjQgNjcuOS0zMy42IDEwMS4zLTE4LjVsOTAuNy05MC43eiJdfSxNeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhY3RvciIsaWNvbjpbNTc2LDUxMixbMTI4NjY4XSwiZjcyMiIsIk0xNjAgOTZsMCA5NiAxMzMuNCAwLTU3LjYtOTYtNzUuOCAwek05NiAyMjNMOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA3LjggMGMyMi41IDAgNDMuMyAxMS44IDU0LjkgMzEuMWw3Ny40IDEyOC45IDY0IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxLjVjMCAxNC4yLTYuMyAyNy44LTE3LjMgMzYuOWwtMzUgMjkuMmMyNi41IDE1LjIgNDQuMyA0My43IDQ0LjMgNzYuNCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTE0LjQgMy41LTI4IDkuNi00MGwtMTAxLjIgMGMtMyAxMy40LTcuOSAyNi0xNC40IDM3LjcgNy43IDkuNCA3LjIgMjMuNC0xLjYgMzIuMmwtMjIuNiAyMi42Yy04LjggOC44LTIyLjcgOS4zLTMyLjIgMS42LTkuMyA1LjItMTkuMyA5LjMtMjkuOCAxMi4zLTEuMiAxMi4xLTExLjQgMjEuNi0yMy45IDIxLjZsLTMyIDBjLTEyLjQgMC0yMi43LTkuNS0yMy45LTIxLjYtMTAuNS0zLTIwLjQtNy4yLTI5LjgtMTIuMy05LjQgNy43LTIzLjQgNy4yLTMyLjItMS42TDM1LjUgNDUzLjhjLTguOC04LjgtOS4zLTIyLjctMS42LTMyLjItNS4yLTkuMy05LjMtMTkuMy0xMi4zLTI5LjgtMTIuMS0xLjItMjEuNi0xMS40LTIxLjYtMjMuOWwwLTMyYzAtMTIuNCA5LjUtMjIuNyAyMS42LTIzLjkgMy0xMC41IDcuMi0yMC40IDEyLjMtMjkuOC03LjctOS40LTcuMi0yMy40IDEuNi0zMi4ybDIyLjYtMjIuNmM4LjgtOC44IDIyLjctOS4zIDMyLjItMS42IDEuOS0xIDMuNy0yIDUuNy0zem02NCA2NWE2NCA2NCAwIDEgMCAwIDEyOCA2NCA2NCAwIDEgMCAwLTEyOHpNNDQwIDQyNGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwIC04MCAweiJdfSxDeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjYiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LHp5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFscyIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MyIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMzUyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0zNTIgNjQgMCAwIDM1MmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQ5Ny43IDAgNDgwIDBMMzIgMHpNMTYwIDY0bDAgMTI4LTY0IDAgMC0xMjggNjQgMHptMjU2IDBsMCAxMjgtNjQgMCAwLTEyOCA2NCAweiJdfSxfeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RldGhvc2NvcGUiLGljb246WzU3Niw1MTIsWzEyOTY1OF0sImYwZjEiLCJNMzIgNDhDMzIgMjEuNSA1My41IDAgODAgMGw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xMjgtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMjM4LjMgMCAyNTYgMGw0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0YzAgNzcuNC01NSAxNDItMTI4IDE1Ni44bDAgMTkuMmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtODUuNWMtMzcuMy0xMy4yLTY0LTQ4LjctNjQtOTAuNSAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDEuOC0yNi43IDc3LjQtNjQgOTAuNWwwIDg1LjVjMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMTYwIDQ2NS4yIDE2MCAzNjhsMC0xOS4yQzg3IDMzNCAzMiAyNjkuNCAzMiAxOTJMMzIgNDh6TTQ4MCAyMjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxUeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9kY2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJjZSIsIk0zMzYgMzU5LjhjMzkuMS0zMi4zIDY0LTgxLjEgNjQtMTM1LjggMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZTNDggMTI2LjggNDggMjI0QzQ4IDI3OC43IDcyLjkgMzI3LjUgMTEyIDM1OS44IDExMi40IDM3Ny40IDExNS4yIDQwMC4yIDExOC40IDQyMS42IDQ4IDM4My45IDAgMzA5LjUgMCAyMjQgMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0YzAgODUuNi00OCAxNTkuOS0xMTguNSAxOTcuNiAzLjMtMjEuNCA2LTQ0LjIgNi40LTYxLjh6bS0xNC01My40Yy04LjMtMTIuNi0xOS4yLTIxLjYtMzAuNC0yNy44LTIuMS0xLjEtNC4yLTIuMi02LjMtMy4yIDExLjctMTMuOSAxOC44LTMxLjkgMTguOC01MS41IDAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMTkuNiA3LjEgMzcuNiAxOC44IDUxLjUtMi4xIDEtNC4yIDItNi4zIDMuMi0xMS4yIDYuMi0yMi4xIDE1LjItMzAuNCAyNy44LTE4LjgtMjIuMy0zMC4xLTUxLTMwLjEtODIuNCAwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4YzAgMzEuNC0xMS4zIDYwLjItMzAuMSA4Mi40ek0yMjQgMzEyYzMyLjkgMCA2NCA4LjYgNjQgNDMuOCAwIDMzLTEyLjkgMTA0LjEtMjAuNiAxMzIuOS01LjEgMTktMjQuNSAyMy40LTQzLjQgMjMuNHMtMzguMi00LjQtNDMuNC0yMy40Yy03LjgtMjguNS0yMC42LTk5LjctMjAuNi0xMzIuOCAwLTM1LjEgMzEuMS00My44IDY0LTQzLjh6bTAtMTI4YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0sTHlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXJpZ2h0LWRvdHMiLGljb246WzUxMiw1MTIsW10sImU0YjciLCJNOTYgMzJDNzguMyAzMiA2NCA0Ni4zIDY0IDY0Uzc4LjMgOTYgOTYgOTZMMTE0LjcgOTYgOS40IDIwMS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxNDEuMyAxNjAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAzMnpNNDAzLjggNzAuMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek0yNzkuNyAxOTQuMmEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwem0xNjIuMi0zOC4xYTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnpNMTU2LjIgMzE3LjhhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHptMTYxLjYtMzguMWEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6bTg2LjEgMzguMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek03MC4xIDQwMy44YTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnptODYuMSAzOC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6bTE2MS42LTM4LjFhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yem04Ni4xIDM4LjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHoiXX0sRHlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXF1ZWVuIixpY29uOls1MTIsNTEyLFs5ODE5XSwiZjQ0NSIsIk0yNTYgODBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek01LjUgMTg1TDEyOCAzODQgNzEuOCA0NTQuM2MtNSA2LjMtNy44IDE0LjEtNy44IDIyLjIgMCAxOS42IDE1LjkgMzUuNSAzNS41IDM1LjVsMzEyLjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMkwzODQgMzg0IDUwNi41IDE4NWMzLjYtNS45IDUuNS0xMi43IDUuNS0xOS42bDAtLjZjMC0yMC4zLTE2LjUtMzYuOC0zNi44LTM2LjgtNy4zIDAtMTQuNCAyLjItMjAuNCA2LjJsLTE2LjkgMTEuM2MtMTIuNyA4LjUtMjkuNiA2LjgtNDAuNC00bC0zNC4xLTM0LjFDMzU2LjEgMTAwLjEgMzQ2LjIgOTYgMzM2IDk2cy0yMC4xIDQuMS0yNy4zIDExLjNsLTMwLjEgMzAuMWMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTMwLjEtMzAuMUMxOTYuMSAxMDAuMSAxODYuMiA5NiAxNzYgOTZzLTIwLjEgNC4xLTI3LjMgMTEuM2wtMzQuMSAzNC4xYy0xMC44IDEwLjgtMjcuNyAxMi41LTQwLjQgNEw1Ny4zIDEzNC4yYy02LjEtNC0xMy4yLTYuMi0yMC40LTYuMi0yMC4zIDAtMzYuOCAxNi41LTM2LjggMzYuOGwwIC42YzAgNi45IDEuOSAxMy43IDUuNSAxOS42eiJdfSwkeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYiIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTIwOCA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxSTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxsaXBzaXMtdmVydGljYWwiLGljb246WzEyOCw1MTIsWyJlbGxpcHNpcy12Il0sImYxNDIiLCJNNjQgMTQ0YTU2IDU2IDAgMSAxIDAtMTEyIDU2IDU2IDAgMSAxIDAgMTEyem0wIDIyNGMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1Ni01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTZ6bTU2LTExMmMwIDMwLjktMjUuMSA1Ni01NiA1NnMtNTYtMjUuMS01Ni01NiAyNS4xLTU2IDU2LTU2IDU2IDI1LjEgNTYgNTZ6Il19LEF5cj1STmUsRXlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZSIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek00MzIgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyMjhhMjAgMjAgMCAxIDAgMC00MCAyMCAyMCAwIDEgMCAwIDQwem0wLTE4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sSXlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMyIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxQeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWFycm93LXVwLWZyb20tbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzOSIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTMxOC4zIDI5OS4xbC00Ni4zLTYyLjQgMCAyNDMuMyAyNzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODAgMCAwLTI0My4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVDMTEwIDEzMiAxNDkuNyAxMTIgMTkyIDExMnM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnpNMjA4IDQ4MGwwLTEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDEyOCAzMiAwek01NjYuNiAxMDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMNDk2IDc3LjMgNDk2IDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0Ni43LTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsODAtODBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjN6Il19LE55cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub3QtZXF1YWwiLGljb246WzQ0OCw1MTIsW10sImY1M2UiLCJNMzc4LjYgODEuOGM5LjgtMTQuNyA1LjgtMzQuNi04LjktNDQuNHMtMzQuNi01LjgtNDQuNCA4LjlMMjcwLjkgMTI4IDMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTYuMiAwLTg1LjMgMTI4LTExMC45IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjguMiAwLTMwLjggNDYuMmMtOS44IDE0LjctNS44IDM0LjYgOC45IDQ0LjRzMzQuNiA1LjggNDQuNC04LjlMMTc3LjEgMzg0IDQxNiAzODRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5Ni4yIDAgODUuMy0xMjggMTEwLjkgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjguMiAwIDMwLjgtNDYuMnoiXX0sT3lyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWluLXRyYW0iLGljb246WzM4NCw1MTIsWzEyODY1MF0sImU1YjQiLCJNMCA4QzAtNS4zIDEwLjctMTYgMjQtMTZsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgtMTIwIDAgMCA2NCA0MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNjBjMCAzMS4yLTE0LjkgNTktMzggNzYuNWw2NC4zIDc2YzguNiAxMC4xIDcuMyAyNS4zLTIuOCAzMy44cy0yNS4zIDcuMy0zMy44LTIuOGwtNzQuNi04OC4xYy0zLjYgLjQtNy4zIC42LTExLjEgLjZsLTEyOCAwYy0zLjggMC03LjUtLjItMTEuMS0uNkw0Mi4zIDUzNS41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw2NC4zLTc2QzQ2LjkgNDExIDMyIDM4My4yIDMyIDM1MmwwLTE2MGMwLTUzIDQzLTk2IDk2LTk2bDQwIDAgMC02NC0xMjAgMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA1My4zIDAgNDBMMCA4ek0xMjggMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwem0zMiAxOTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxSeXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtZGVwYXJ0dXJlIixpY29uOls1NzYsNTEyLFsxMjg3NDddLCJmNWIwIiwiTTM3MiAxNDMuOUwxNzIuNyA0MC4yYy04LTQuMS0xNy4zLTQuOC0yNS43LTEuN2wtNDEuMSAxNWMtMTAuMyAzLjctMTMuOCAxNi40LTcuMSAyNUwyMDAuMyAyMDYuNCAxMDAuMSAyNDIuOCA0MCAyMDYuMmMtNi4yLTMuOC0xMy44LTQuNS0yMC43LTIuMUwzIDIxMC4xYy05LjQgMy40LTEzLjQgMTQuNS04LjMgMjMuMWw1My42IDkxLjhjMTUuNiAyNi43IDQ4LjEgMzguNCA3Ny4xIDI3LjhsMTIuOS00LjcgMCAwIDM5OC40LTE0NWMyOS4xLTEwLjYgNDQtNDIuNyAzMy41LTcxLjhzLTQyLjctNDQtNzEuOC0zMy41TDM3MiAxNDMuOXpNMzIuMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUxMiAweiJdfSxGTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtdG8tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24taW4tYWx0Il0sImYyZjYiLCJNMzQ1IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyMDEgOTVjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMTYwIDEwMi4zIDE2MCAxMTJsMCA4MC0xMTIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMTIgMCAwIDgwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMkwzNDUgMjczem03IDE0M2MtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yNTZjMC01My00My05Ni05Ni05NmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAweiJdfSxGeXI9Rk5lLEJ5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZC1jYXJkIixpY29uOlszODQsNTEyLFtdLCJmN2MyIiwiTTM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEwxMjUuMyAwQzEwOC4zIDAgOTIgNi43IDgwIDE4LjdMMTguNyA4MEM2LjcgOTIgMCAxMDguMyAwIDEyNS4zTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0ek0xNjAgODhsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTg4IDBsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTg4IDBsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LEh5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1MGEiLCJNNDk2IDU0NGExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMjE3LjYgMjAyYy0xMC4yLTEuNy0yMC43LTIuNi0zMS4zLTIuNi03OC42IDAtMTQ2LjEgNDcuMi0xNzUuOCAxMTQuOC01LjEtMS44LTEwLjUtMi44LTE2LjItMi44bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDkxIDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjEgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek00OTYgNDQ0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptMC0xNDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNiA4LjggMCAxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LF95PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoZWtlbC1zaWduIixpY29uOls0NDgsNTEyLFs4MzYyLCJpbHMiLCJzaGVrZWwiLCJzaGVxZWwiLCJzaGVxZWwtc2lnbiJdLCJmMjBiIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0zMjAgNDgwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMjggMCAwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMHoiXX0scXlyPV95LFZ5cj1feSxqeXI9X3ksVXlyPV95LFd5cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyYWRpbyIsaWNvbjpbNTEyLDUxMixbMTI4MjUxXSwiZjhkNyIsIk00OTQuOCAxNWMxMi43LTMuNyAyMC0xNy4xIDE2LjMtMjkuOFM0OTQtMzQuOCA0ODEuMy0zMUw1MS44IDk0LjlDNDIuNCA5Ny42IDMzLjkgMTAyLjEgMjYuNiAxMDggMTAuNSAxMTkuNyAwIDEzOC42IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDIxOC41IDk2IDQ5NC44IDE1ek0zNjggMjA4YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek02NCAyNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggMjcyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAzNjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxCTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1kb3RzIixpY29uOls1MTIsNTEyLFsiYWxsZXJnaWVzIl0sImY0NjEiLCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjcyYzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4yIDBjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZsMC0yMDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yMDh6TTIwMCAzNTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAgODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptLTg4IDI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sR3lyPUJOZSxITmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1za3VsbCIsaWNvbjpbNDQ4LDUxMixbImJvb2stZGVhZCJdLCJmNmI3IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yNzIgMTYzLjJsMCAxMi44YzAgOC44LTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTIuOGMtMTkuNC0xMS43LTMyLTMwLjMtMzItNTEuMiAwLTM1LjMgMzUuOC02NCA4MC02NHM4MCAyOC43IDgwIDY0YzAgMjAuOS0xMi42IDM5LjUtMzIgNTEuMnpNMjA4IDExMmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTc0LjIgOTUuN2M0LjYgMTAuMSAuMSAyMS45LTkuOSAyNi41bC00Ny45IDIxLjggNDcuOSAyMS44YzEwLjEgNC42IDE0LjUgMTYuNCA5LjkgMjYuNXMtMTYuNCAxNC41LTI2LjUgOS45TDIyNCAyOTQgMTQ0LjMgMzMwLjJjLTEwLjEgNC42LTIxLjkgLjEtMjYuNS05LjlzLS4xLTIxLjkgOS45LTI2LjVsNDcuOS0yMS44LTQ3LjktMjEuOGMtMTAuMS00LjYtMTQuNS0xNi40LTkuOS0yNi41czE2LjQtMTQuNSAyNi41LTkuOUwyMjQgMjUwIDMwMy43IDIxMy44YzEwLjEtNC42IDIxLjktLjEgMjYuNSA5Ljl6Il19LFl5cj1ITmUscU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVubG9jay1rZXlob2xlIixpY29uOlszODQsNTEyLFsidW5sb2NrLWFsdCJdLCJmMTNlIiwiTTE5MiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NCAxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDAtNjRjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggNjMuNSAwIDExNi4xIDQ2LjEgMTI2LjIgMTA2LjcgMi45IDE3LjQtOC44IDMzLjktMjYuMyAzNi45cy0zMy45LTguOC0zNi45LTI2LjNDMjUwIDU1LjEgMjIzLjcgMzIgMTkyIDMyem00MCAzMjhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMHoiXX0sS3lyPXFOZSxWTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1hcnJvdy11cCIsaWNvbjpbMzg0LDUxMixbImZpbGUtdXBsb2FkIl0sImY1NzQiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTIwOSAyNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC02NCA2NGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDIzLTIzIDAgODYuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODYuMSAyMyAyM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY0LTY0eiJdfSxaeXI9Vk5lLGpOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tdGVhcnMiLGljb246WzY0MCw1MTIsWzEyODUxNCwiZ3Jpbi10ZWFycyJdLCJmNTg4IiwiTTU1NC44IDIwMy40bDE2LjMgMi4zQzU0Ny43IDg4LjQgNDQ0LjIgMCAzMjAgMFM5Mi4zIDg4LjQgNjguOSAyMDUuN2wxNi4zLTIuM2MzNy01LjMgNjguNiAyNi40IDYzLjQgNjMuNGwtNi43IDQ2LjdjLTQuMSAyOS0yMS42IDUzLjItNDUuOCA2Ni44IDQzLjcgNzguNSAxMjcuNiAxMzEuNyAyMjMuOCAxMzEuN3MxODAuMS01My4xIDIyMy44LTEzMS43Yy0yNC4xLTEzLjUtNDEuNi0zNy44LTQ1LjgtNjYuOGwtNi43LTQ2LjdjLTUuMy0zNyAyNi40LTY4LjYgNjMuNC02My40ek00NzAuMyAzMjYuOUM0NDcuOSAzODguMiAzODkuMSA0MzIgMzIwIDQzMlMxOTIuMSAzODguMiAxNjkuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xYzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMXpNMjEyIDIwOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4em0xODgtMjhjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6TTY0MCAzMDAuNmMwLTI1LjYtMTguOC00Ny4zLTQ0LjEtNTAuOUw1NDkuMSAyNDNjLTEwLjYtMS41LTE5LjYgNy41LTE4LjEgMTguMWw2LjcgNDYuN2MzLjYgMjUuMyAyNS4zIDQ0LjEgNTAuOSA0NC4xIDI4LjQgMCA1MS40LTIzIDUxLjQtNTEuNHptLTY0MCAwQzAgMzI5IDIzIDM1MiA1MS40IDM1MiA3NyAzNTIgOTguNyAzMzMuMiAxMDIuMyAzMDcuOWw2LjctNDYuN2MxLjUtMTAuNi03LjUtMTkuNi0xOC4xLTE4LjFsLTQ2LjcgNi43QzE4LjggMjUzLjMgMCAyNzUgMCAzMDAuNnoiXX0sUXlyPWpOZSxLXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4tdG8tc3F1YXJlIixpY29uOls1MTIsNTEyLFsiZWRpdCJdLCJmMDQ0IiwiTTQ3MS42IDIxLjdjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwTDM2OCA0Ni4xIDQ2NS45IDE0NCA0OTAuMyAxMTkuNmMyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NzEuNiAyMS43em0tMjk5LjIgMjIwYy02LjEgNi4xLTEwLjggMTMuNi0xMy41IDIxLjlsLTI5LjYgODguOGMtMi45IDguNi0uNiAxOC4xIDUuOCAyNC42czE1LjkgOC43IDI0LjYgNS44bDg4LjgtMjkuNmM4LjItMi43IDE1LjctNy40IDIxLjktMTMuNUw0MzIgMTc3LjkgMzM0LjEgODAgMTcyLjQgMjQxLjd6TTk2IDY0QzQzIDY0IDAgMTA3IDAgMTYwTDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDY0eiJdfSxYeXI9S18sVU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWV1cm9wZSIsaWNvbjpbNTEyLDUxMixbImdsb2JlLWV1cm9wZSJdLCJmN2EyIiwiTTI1Ni4yIDQ4YzExNC44IC4xIDIwNy44IDkzLjIgMjA3LjggMjA4IDAgMjIuMS0zLjQgNDMuNC05LjggNjMuNC0yIC40LTQuMSAuNi02LjIgLjZsLTIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC01MC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNi03LjIgMTYtMTYtNy4yLTE2LTE2LTE2bC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2cy03LjIgMTYtMTYgMTZsLTI1LjQgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmw3MC4xLTcwLjFjMi4xLTIuMSAzLjMtNSAzLjMtOCAwLTYuMi01LjEtMTEuMy0xMS4zLTExLjNsLTE0LjEgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmwyMy4xLTIzLjFjLjgtLjggMS42LTEuNSAyLjUtMi4yek00MzguNCAzNTYuMWMtMzIuOCA1OS42LTkzLjkgMTAxLjQtMTY1LjIgMTA3LjItLjctMi4zLTEuMS00LjgtMS4xLTcuMyAwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjYuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC02Ni43YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyOS4zIDI5LjNjNiA2IDE0LjEgOS40IDIyLjYgOS40bDUuNSAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDE2IDE2YzQuMiA0LjIgMTAgNi42IDE2IDYuNiA0LjggMCA5LjMgMS41IDEzIDQuMXpNMjU2IDUxMmwyNi4yLTEuM2MtOC42IC45LTE3LjMgMS4zLTI2LjIgMS4zem0yNi4yLTEuM0M0MTEuMyA0OTcuNiA1MTIgMzg4LjYgNTEyIDI1NiA1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMGwwIDBDMTE0LjYgMCAwIDExNC42IDAgMjU2IDAgMzgzLjUgOTMuMiA0ODkuMyAyMTUuMyA1MDguOCAyMjguNSA1MTAuOSAyNDIuMSA1MTIgMjU2IDUxMnpNMTg3LjMgMTIzLjNsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sSnlyPVVOZSxXTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0tc3dlYXQiLGljb246WzU3Niw1MTIsWzEyODUxNywiZ3Jpbi1iZWFtLXN3ZWF0Il0sImY1ODMiLCJNNTQ2LjItLjFjMTQuNyAxNy44IDI5LjggNDAuMSAyOS44IDY0LjEgMCAzNi40LTI3LjYgNjQtNjQgNjRzLTY0LTI3LjYtNjQtNjRjMC0yNCAxNS4yLTQ2LjMgMjkuOC02NC4xIDguOC0xMC43IDE4LjUtMjAuOCAyOS0zMCAzLTIuNiA3LjQtMi42IDEwLjQgMCAxMC41IDkuMSAyMC4xIDE5LjMgMjkgMzB6TTI4OCAwYzQyLjUgMCA4Mi42IDEwLjQgMTE3LjggMjguNy0zLjYgMTAuOS01LjggMjIuNy01LjggMzUuMyAwIDYyLjkgNDkuMSAxMTIgMTEyIDExMiA2LjQgMCAxMi43LS41IDE4LjgtMS41IDguNiAyNS42IDEzLjIgNTMgMTMuMiA4MS41IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMzIgMzk3LjQgMzIgMjU2IDE0Ni42IDAgMjg4IDB6TTQxOC43IDMwOC45QzM3OS41IDMyMS4xIDMzNS4xIDMyOCAyODggMzI4cy05MS41LTYuOS0xMzAuNy0xOS4xYy0xMS45LTMuNy0yMy45IDYuMy0xOS42IDE4LjEgMjIuNCA2MS4zIDgxLjMgMTA1LjEgMTUwLjMgMTA1LjFzMTI3LjktNDMuOCAxNTAuMy0xMDUuMWM0LjMtMTEuOC03LjctMjEuOC0xOS42LTE4LjF6TTIwOCAxODBjMTUuNSAwIDI4IDEyLjUgMjggMjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMTUuNSAxMi41LTI4IDI4LTI4em0xMzIgMjhjMC0xNS41IDEyLjUtMjggMjgtMjhzMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTh6Il19LGV3cj1XTmUsR05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1oYWxmLXN0cm9rZSIsaWNvbjpbNTEyLDUxMixbOTY4MCwiYWRqdXN0Il0sImYwNDIiLCJNNDQ4IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MmwwIDM4NGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sdHdyPUdOZSxyd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLW1pbGl0YXJ5LXRvLXBlcnNvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTU0YyIsIk03MSAxMi41Yy04LjYgMS0xNSA4LjItMTUgMTYuOCAwIDkuMyA3LjUgMTYuOCAxNi43IDE2LjlsMTExLjQgMGM4LjgtLjEgMTUuOS03LjIgMTUuOS0xNkwyMDAgMTZjMC05LjUtOC4zLTE3LTE3LjgtMTUuOUw3MSAxMi41ek0xODkuNSA3OC4xbC0xMjIuOSAwYy0xLjYgNS43LTIuNSAxMS43LTIuNSAxNy45IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC02LjItLjktMTIuMi0yLjUtMTcuOXpNMzIgMjU2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMS44IDAgMy41LS4xIDUuMi0uNEw1MyAyMDguNkM0MC4xIDIyMC4zIDMyIDIzNy4yIDMyIDI1NnptMTkwLjIgNDIuNWMxLjEtMy4zIDEuOC02LjggMS44LTEwLjVsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMGMtMy43IDAtNy40IC4zLTEwLjkgLjlMMjIyLjIgMjk4LjV6TTM4NCAxNjBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0zMiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwek0yMTUuOCA0NTAuMWM1LjItNC42IDguMi0xMS4xIDguMi0xOC4xcy0zLTEzLjUtOC4yLTE4LjFsLTY0LTU2Yy03LjEtNi4yLTE3LjEtNy43LTI1LjctMy44UzExMiAzNjYuNiAxMTIgMzc2bDAgMzItODggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4OCAwIDAgMzJjMCA5LjQgNS41IDE4IDE0LjEgMjEuOXMxOC42IDIuNCAyNS43LTMuOGw2NC01NnpNMjg4IDQzMS45YzAgNi45IDMgMTMuNSA4LjEgMTguMWw2NCA1Ni40YzcuMSA2LjIgMTcuMSA3LjggMjUuNyAzLjlTNDAwIDQ5Ny44IDQwMCA0ODguNGwwLTMyLjQgODggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODggMCAwLTMyYzAtOS40LTUuNS0xOC0xNC4xLTIxLjlzLTE4LjYtMi40LTI1LjcgMy44bC02NCA1NmMtNS4yIDQuNS04LjIgMTEuMS04LjIgMTh6Il19LGF3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1jb2x1bW4tbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY3OCIsIk0yNTYgMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptMjU2LTc5Yy00Ni43IDUuOC04NS42IDM2LjgtMTAyLjcgNzlsLTI1LjMgMCAwIDkwLjhjLTEwLjEgMTUuMi0xNiAzMy40LTE2IDUzLjFsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDEyOCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDl6TTEyOCAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem00MzIgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTQxNiAzNjhjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LGl3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1maWVsZC11biIsaWNvbjpbNjQwLDUxMixbXSwiZTU4ZSIsIk05NiAzMkM2MC43IDMyIDMyIDYwLjcgMzIgOTZsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwwIDQ4YzAgMjEuMSAxMy43IDM5LjEgMzIuNiA0NS41LS40IDMuNC0uNiA3LS42IDEwLjUgMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwxNDQuNyAwYy0uMiAyLjYtLjQgNS4zLS40IDggMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwuNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTI0LjcgMC0xLjctNC4yLTQzLjgtMTA2LjNjLTEyLjMtMzAtNDEuNi00OS41LTc0LTQ5LjVsLTQwLjQgMEMzNjQuNCA0NC45IDM0My43IDMyIDMyMCAzMkw5NiAzMnpNMzg0IDIyNGwwLTk2IDMxLjkgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOWwzNS40IDg2LjEtODIuMSAwek0xNTIgMzUyYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMjgwIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTI1Ni42IDEzMi45bDI3LjQgNDEgMC0yOS45YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgOTZjMCA4LjgtNS44IDE2LjYtMTQuMiAxOS4xcy0xNy41LS43LTIyLjQtOGwtMjcuNC00MSAwIDI5LjljMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOTZjMC04LjggNS44LTE2LjYgMTQuMi0xOS4xczE3LjUgLjcgMjIuNCA4ek0xMzIgMTQ0bDAgNjRjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTY0YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgNjRjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC02NGMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHoiXX0sWU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sc3dyPVlOZSxud3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vayIsaWNvbjpbNDQ4LDUxMixbMTI4MjEyXSwiZjAyZCIsIk0zODQgNTEyTDk2IDUxMmMtNTMgMC05Ni00My05Ni05NkwwIDk2QzAgNDMgNDMgMCA5NiAwTDQwMCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjg4YzAgMjAuOS0xMy40IDM4LjctMzIgNDUuM2wwIDY2LjdjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDB6TTk2IDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMCAwLTY0LTI1NiAwem0zMi0yMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMjQgNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxLTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC13aW5rIixpY29uOls1MTIsNTEyLFsibGF1Z2gtd2luayJdLCJmNTljIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LG93cj1LTmUsbHdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLW1lYXRiYWxsIixpY29uOls1MTIsNTEyLFtdLCJmNzNiIiwiTTAgMjI0YzAgNTMgNDMgOTYgOTYgOTZsMjYuOSAwYzMuNS0xMi4xIDEwLjEtMjMuMyAxOS4yLTMyLjRsMS40LTEuNGMxNS0xNSAzNS4zLTIyLjkgNTYuMS0yMi4yIDE0LjItMTUuMSAzNC4yLTIzLjkgNTUuNC0yMy45bDIgMGMyMS4xIDAgNDEuMSA4LjggNTUuNCAyMy45IDIwLjgtLjYgNDEuMSA3LjMgNTYuMSAyMi4ybDEuNCAxLjRjOS4yIDkuMiAxNS43IDIwLjQgMTkuMiAzMi40bDI2LjkgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMCAxLjEtNS4yIDEuNi0xMC41IDEuNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjgtMTguNy0zNS43LTU2LjEtNjAtOTkuMi02MC02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDcuMSAuNyAxNC4xIDEuOSAyMC44LTM4LjMgMTIuNi02NS45IDQ4LjctNjUuOSA5MS4yek0xNTYuNSA0MjQuM2M5LjUgNi4zIDE0LjIgMTcuNyAxMS45IDI4LjgtMS44IDkuMiAxIDE4LjcgNy43IDI1LjNsMS40IDEuNGM2LjYgNi42IDE2LjEgOS41IDI1LjMgNy43IDExLjEtMi4yIDIyLjUgMi41IDI4LjggMTEuOSA1LjIgNy44IDE0IDEyLjUgMjMuMyAxMi41bDIgMGM5LjQgMCAxOC4xLTQuNyAyMy4zLTEyLjUgNi4zLTkuNSAxNy43LTE0LjIgMjguOC0xMS45IDkuMiAxLjggMTguNy0xIDI1LjMtNy43bDEuNC0xLjRjNi42LTYuNiA5LjUtMTYuMSA3LjctMjUuMy0yLjItMTEuMSAyLjUtMjIuNSAxMS45LTI4LjggNy44LTUuMiAxMi41LTE0IDEyLjUtMjMuM2wwLTJjMC05LjQtNC43LTE4LjEtMTIuNS0yMy4zLTkuNS02LjMtMTQuMi0xNy43LTExLjktMjguOCAxLjgtOS4yLTEtMTguNy03LjctMjUuM2wtMS40LTEuNGMtNi42LTYuNi0xNi4xLTkuNS0yNS4zLTcuNy0xMS4xIDIuMi0yMi41LTIuNS0yOC44LTExLjktNS4yLTcuOC0xNC0xMi41LTIzLjMtMTIuNWwtMiAwYy05LjQgMC0xOC4xIDQuNy0yMy4zIDEyLjUtNi4zIDkuNS0xNy43IDE0LjItMjguOCAxMS45LTkuMi0xLjgtMTguNyAxLTI1LjMgNy43bC0xLjQgMS40Yy02LjYgNi42LTkuNSAxNi4xLTcuNyAyNS4zIDIuMiAxMS4xLTIuNSAyMi41LTExLjkgMjguOC03LjggNS4yLTEyLjUgMTQtMTIuNSAyMy4zbDAgMmMwIDkuNCA0LjcgMTguMSAxMi41IDIzLjN6TTQ4IDQ0OGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQxNiAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sWk5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWFyZWEiLGljb246WzUxMiw1MTIsWyJhcmVhLWNoYXJ0Il0sImYxZmUiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnpNMjQwIDk2YzYuNyAwIDEzLjEgMi44IDE3LjcgNy44TDMyOC44IDE4MS4zIDM3NSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjNC41IDQuNSA3IDEwLjYgNyAxN2wwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMzA0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTEyYzAtNiAyLjMtMTEuOCA2LjMtMTYuMmw4OC05NmM0LjUtNSAxMS03LjggMTcuNy03Ljh6Il19LGN3cj1aTmUsZHdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1cGlhaC1zaWduIixpY29uOls1MTIsNTEyLFtdLCJlMjNkIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHptMjU2LTMybDgwIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJTNDYxLjkgNDQ4IDQwMCA0NDhsLTQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptODAgMTYwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgOTYgNDggMHoiXX0sdXdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRleHQtd2lkdGgiLGljb246WzQ0OCw1MTIsW10sImYwMzUiLCJNNDAgMEMxNy45IDAgMCAxNy45IDAgNDBMMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMTI4IDAgMCAxNjAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTE2MCAxMjggMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC01NmMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAwem03OC42IDQwNi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOS40LTkuNCAyMjkuNSAwLTkuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5LjQgOS40LTIyOS41IDAgOS40LTkuNHoiXX0scHdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhdGVsbGl0ZSIsaWNvbjpbNTEyLDUxMixbMTI4NzUyXSwiZjdiZiIsIk0xOTkgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw4OS40IDg5LjQgNTUtNTVjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDggNDhjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTU1IDU1IDg5LjQgODkuNGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtOTYgOTZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC04OS40LTg5LjQtMTUuNSAxNS41YzExLjQgMjQuNiAxNy44IDUyIDE3LjggODAuOSAwIDMxLjctNy43IDYxLjUtMjEuMiA4Ny44LTQuNyA5LTE2LjcgMTAuMy0yMy44IDMuMWwtOTYuMy05Ni4zLTYwIDYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2MC02MC05Ni4zLTk2LjNjLTcuMi03LjItNS45LTE5LjIgMy4xLTIzLjggMjYuMy0xMy42IDU2LjItMjEuMiA4Ny44LTIxLjIgMjguOSAwIDU2LjMgNi40IDgwLjkgMTcuOEwxOTIuNCAyMjYuMyAxMDMgMTM3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxOTkgN3ptMTcgNTAuOWwtNjIuMSA2Mi4xIDcyLjQgNzIuNCA2Mi4xLTYyLjEtNzIuNC03Mi40ek0zOTIgMzU4LjFsNjIuMS02Mi4xLTcyLjQtNzIuNC02Mi4xIDYyLjEgNzIuNCA3Mi40eiJdfSxRTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1taW51cyIsaWNvbjpbNTEyLDUxMixbInNlYXJjaC1taW51cyJdLCJmMDEwIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMTM2IDE4NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGZ3cj1RTmUsaHdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1ncm91cCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMyIsIk0yNTYgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptOTYgMzEyYzAgMjUtMTIuNyA0Ny0zMiA1OS45bDAgOTIuMWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05Mi4xQzE3Mi43IDM1OSAxNjAgMzM3IDE2MCAzMTJsMC00MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgNDB6TTk2IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0xNiAyNDBsMCAzMmMwIDMyLjUgMTIuMSA2Mi4xIDMyIDg0LjdsMCA3NS4zYzAgMS4yIDAgMi41IC4xIDMuNy04LjUgNy42LTE5LjcgMTIuMy0zMi4xIDEyLjNsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNTYuNkMxMi45IDM2NC40IDAgMzQzLjcgMCAzMjBsMC0zMmMwLTUzIDQzLTk2IDk2LTk2IDEyLjcgMCAyNC44IDIuNSAzNS45IDYuOS0xMi42IDIxLjQtMTkuOSA0Ni40LTE5LjkgNzMuMXpNMzY4IDQ2NGwwLTc1LjNjMTkuOS0yMi41IDMyLTUyLjIgMzItODQuN2wwLTMyYzAtMjYuNy03LjMtNTEuNi0xOS45LTczLjEgMTEuMS00LjUgMjMuMi02LjkgMzUuOS02LjkgNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDU2LjZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTEyLjMgMC0yMy42LTQuNi0zMi4xLTEyLjMgMC0xLjIgLjEtMi41IC4xLTMuN3pNNDE2IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyeiJdfSxtd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWJpbmFyeSIsaWNvbjpbNDQ4LDUxMixbXSwiZTY5YiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTQ0IDRjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgNDhjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMzIgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTQ4YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0zMiAwem0tNCA0NGMwLTIuMiAxLjgtNCA0LTRsMzIgMGMyLjIgMCA0IDEuOCA0IDRsMCA0OGMwIDIuMi0xLjggNC00IDRsLTMyIDBjLTIuMiAwLTQtMS44LTQtNGwwLTQ4em0xNDAtNDRjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNzYuNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTk2YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHpNMTMyIDI5NmMwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNzYuNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTk2YzAtMTEtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIwem05NiAyNGwwIDQ4YzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDMyIDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC00OGMwLTI0LjMtMTkuNy00NC00NC00NGwtMzIgMGMtMjQuMyAwLTQ0IDE5LjctNDQgNDR6bTQ0LTRsMzIgMGMyLjIgMCA0IDEuOCA0IDRsMCA0OGMwIDIuMi0xLjggNC00IDRsLTMyIDBjLTIuMiAwLTQtMS44LTQtNGwwLTQ4YzAtMi4yIDEuOC00IDQtNHoiXX0sWE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hc2tzLXRoZWF0ZXIiLGljb246WzU3Niw1MTIsWzEyNzkxNywidGhlYXRlci1tYXNrcyJdLCJmNjMwIiwiTS01IDExOEwyMy41IDI3OS43YzE0IDc5LjUgNzYuMyAxNDEuOCAxNTUuOCAxNTUuOGwxMi43IDIuMmMtMTYuNS0yOC42LTI3LjEtNjAuNy0zMC42LTk0LjVsLTI0LjEgNC4zYy05LjcgMS43LTE4LjgtNS44LTE2LjktMTUuNSA0LjgtMjQuNyAxOS4xLTQ2LjYgMzkuNy02MC45bDAtNzQuNmMtMS40IC44LTMgMS4zLTQuNyAxLjZsLTYzIDExLjFjLTguNyAxLjUtMTcuMy00LjQtMTUuOS0xMy4xIDMuMS0xOS42IDE4LjQtMzYgMzkuMS0zOS43IDE3LjItMyAzMy45IDMuNSA0NC42IDE1LjhsMC0yMi43YzAtMjIuNSA2LjktNTIuNCAzMi4zLTczLjQgMjYtMjEuNSA2Ny43LTQzLjkgMTI0LjktNTQuMi0zMC41LTE2LjMtODYuMy0zMi0xNjMuOC0xOC40LTgwLjMgMTQuMi0xMjggNTAuMS0xNTAuMSA3Ni4xLTkgMTAuNS0xMC44IDI0LjktOC40IDM4LjV6TTIwOCAxMzguN2wwIDE3NC44YzAgODAuNyA1MC41IDE1Mi45IDEyNi40IDE4MC40TDM2Mi4xIDUwNGMxNC4xIDUuMSAyOS42IDUuMSA0My43IDBMNDMzLjYgNDk0QzUwOS41IDQ2Ni40IDU2MCAzOTQuMyA1NjAgMzEzLjVsMC0xNzQuOGMwLTYuOS0yLjEtMTMuOC03LTE4LjYtMjIuNi0yMi41LTc4LjItNTYtMTY5LTU2cy0xNDYuNCAzMy42LTE2OSA1NmMtNC45IDQuOS03IDExLjctNyAxOC42em02Ni4xIDE4Ny4xYy0xLjQtNyA3LTExIDEyLjctNi42IDI2LjkgMjAuNiA2MC42IDMyLjkgOTcuMiAzMi45czcwLjItMTIuMyA5Ny4yLTMyLjljNS43LTQuNCAxNC4xLS40IDEyLjcgNi42LTEwLjEgNTEuNC01NS41IDkwLjMtMTA5LjkgOTAuM3MtOTkuOC0zOC44LTEwOS45LTkwLjN6bS41LTEwMS41QzI4MS4yIDIwNS41IDI5OSAxOTIgMzIwIDE5MnMzOC45IDEzLjUgNDUuNCAzMi4zYzIuOSA4LjQtNC41IDE1LjctMTMuNCAxNS43bC02NCAwYy04LjggMC0xNi4zLTcuNC0xMy40LTE1Ljd6TTQ4MCAyNDBsLTY0IDBjLTguOCAwLTE2LjMtNy40LTEzLjQtMTUuNyA2LjUtMTguOCAyNC40LTMyLjMgNDUuNC0zMi4zczM4LjkgMTMuNSA0NS40IDMyLjNjMi45IDguNC00LjUgMTUuNy0xMy40IDE1Ljd6Il19LGd3cj1YTmUsYndyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZjIxNyIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmw0NS4zIDBjMjcuMSAwIDUwLjMgMTkuNCA1NS4xIDQ2bC40IDIgNDEyLjcgMGMyMCAwIDM1LjEgMTguMiAzMS40IDM3LjlMNTM3LjggMjM1LjhjLTUuNyAzMC4zLTMyLjEgNTIuMi02Mi45IDUyLjJsLTMwMy42IDAgNS4xIDI4LjNjMi4xIDExLjQgMTIgMTkuNyAyMy42IDE5LjdMNDU2IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjU1LjkgMGMtMzQuOCAwLTY0LjYtMjQuOS03MC44LTU5LjFMNzcuMiAzOC42Yy0uNy0zLjgtNC02LjYtNy45LTYuNkwyNCAzMkMxMC43IDMyIDAgMjEuMyAwIDh6TTE2MCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMjI0IDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMzM2IDc4LjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzMuNi0zMy42IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzMuNiAwIDAgMzMuNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzMuNiAzMy42IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMzLjYgMCAwLTMzLjZjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LERfPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWFzbC1pbnRlcnByZXRpbmciLGljb246WzY0MCw1MTIsWyJhbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyIsImFzbC1pbnRlcnByZXRpbmciLCJoYW5kcy1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyJdLCJmMmEzIiwiTTE1Ni42IDQ2LjNjNy45LTE1LjggMS41LTM1LTE0LjMtNDIuOXMtMzUtMS41LTQyLjkgMTQuM0wxMy41IDE4OS40QzQuNiAyMDcuMiAwIDIyNi44IDAgMjQ2LjdMMCAyNTZjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsODAgMCAwLS4zYzM1LjItMi43IDY1LjQtMjIuOCA4Mi4xLTUxLjcgOC44LTE1LjMgMy42LTM0LjktMTEuNy00My43cy0zNC45LTMuNi00My43IDExLjdjLTcgMTItMTkuOSAyMC0zNC43IDIwLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDBjMTQuOCAwIDI3LjcgOCAzNC43IDIwIDguOCAxNS4zIDI4LjQgMjAuNSA0My43IDExLjdzMjAuNS0yOC40IDExLjctNDMuN2MtMTIuOC0yMi4xLTMzLjYtMzkuMS01OC40LTQ3LjFsODAuOC0yMmMxNy00LjYgMjcuMS0yMi4yIDIyLjUtMzkuM3MtMjIuMi0yNy4xLTM5LjMtMjIuNWwtMTAwLjcgMjcuNSA4MS42LTY4YzEzLjYtMTEuMyAxNS40LTMxLjUgNC4xLTQ1LjFTMjQ5LjEtMy45IDIzNS41IDcuNGwtMTAxLjkgODQuOSAyMy00NnpNNDgzLjQgNDY1LjdjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w4NS45LTE3MS43YzguOS0xNy44IDEzLjUtMzcuNCAxMy41LTU3LjJsMC05LjNjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTgwIDAgMCAuM2MtMzUuMiAyLjctNjUuNCAyMi44LTgyLjEgNTEuNy04LjkgMTUuMy0zLjYgMzQuOSAxMS43IDQzLjdzMzQuOSAzLjYgNDMuNy0xMS43YzctMTIgMTkuOS0yMCAzNC43LTIwIDIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwYy0xNC44IDAtMjcuNy04LTM0LjctMjAtOC45LTE1LjMtMjguNC0yMC41LTQzLjctMTEuN3MtMjAuNSAyOC40LTExLjcgNDMuN2MxMi44IDIyLjEgMzMuNiAzOS4xIDU4LjQgNDcuMWwtODAuOCAyMmMtMTcuMSA0LjYtMjcuMSAyMi4yLTIyLjUgMzkuM3MyMi4yIDI3LjEgMzkuMyAyMi41bDEwMC43LTI3LjUtODEuNiA2OGMtMTMuNiAxMS4zLTE1LjQgMzEuNS00LjEgNDUuMXMzMS41IDE1LjQgNDUuMSA0LjFsMTAxLjktODQuOS0yMyA0NnoiXX0seHdyPURfLHZ3cj1EXyx5d3I9RF8sd3dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLXJvdy11bmxvY2siLGljb246WzY0MCw1MTIsW10sImU2OTEiLCJNMjU2IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTI1Ni03OWMtNDYuNyA1LjgtODUuNiAzNi44LTEwMi43IDc5bC0yNS4zIDAgMCA5MC44Yy0xMC4xIDE1LjItMTYgMzMuNC0xNiA1My4xbDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUwxMjggNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ5ek0xMjggMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptNDMyIDQ4Yy0uMS0xNy42LTE0LjQtMzEuOS0zMi0zMS45LTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDcuOSA5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODAgNDQuMiAwIDc5LjkgMzUuOCA4MCA3OS45bC00OCAweiJdfSxrd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9ja2V0IixpY29uOls1MTIsNTEyLFtdLCJmMTM1IiwiTTEyOCAzMjBMMjQuNSAzMjBjLTI0LjkgMC00MC4yLTI3LjEtMjcuNC00OC41TDUwIDE4My4zQzU4LjcgMTY4LjggNzQuMyAxNjAgOTEuMiAxNjBsOTUgMGM3Ni4xLTEyOC45IDE4OS42LTEzNS40IDI2NS41LTEyNC4zIDEyLjggMS45IDIyLjggMTEuOSAyNC42IDI0LjYgMTEuMSA3NS45IDQuNiAxODkuNC0xMjQuMyAyNjUuNWwwIDk1YzAgMTYuOS04LjggMzIuNS0yMy4zIDQxLjJsLTg4LjIgNTIuOWMtMjEuMyAxMi44LTQ4LjUtMi42LTQ4LjUtMjcuNEwxOTIgMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0uMSAwek00MDAgMTYwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LFN3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaHJpbXAiLGljb246WzUxMiw1MTIsWzEyOTQyNF0sImU0NDgiLCJNNzIgMzJDMzIuMiAzMiAwIDY0LjIgMCAxMDQgMCAxNDEuOSAyOS4zIDE3Mi45IDY2LjQgMTc1LjggNzcuNiAyNTcuMiAxNDcuNCAzMjAgMjMyIDMyMGw1NiAwIDAtMTkyLTIxNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM1OC43IDgwIDcyIDgwbDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDcyIDMyek0yMjQgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDAgMC03Mi4yLTY0LjEtMjIuNGMtMTIuNS00LjQtMjYuMiAyLjItMzAuNiAxNC43czIuMiAyNi4yIDE0LjcgMzAuNmw0LjUgMS42QzIzMyA0MzMuOSAyMjQgNDQzLjkgMjI0IDQ1NnptMTI4IDIzLjNjMzYuNC0zLjMgNjkuNS0xNy42IDk2LjEtMzkuNmwtODYuNS0zNC42Yy0zIDEuOC02LjIgMy4yLTkuNiA0LjNsMCA2OS45ek00NzIuNiA0MTVjMjQuNi0zMC4zIDM5LjQtNjguOSAzOS40LTExMSAwLTEyLjMtMS4zLTI0LjMtMy43LTM1LjlMMzgyLjggMzU1LjFjLjggMy40IDEuMiA3IDEuMiAxMC42IDAgNC42LS43IDktMS45IDEzLjFMNDcyLjYgNDE1ek0zMzYgMTI4bC0xNiAwIDAgMTkyIDE4LjMgMGM5LjkgMCAxOS4xIDMuMiAyNi42IDguNWwxMzMuNS05Mi40QzQ3MS44IDE3Mi42IDQwOS4xIDEyOCAzMzYgMTI4ek0xNjggMTkyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEpOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW5nZS1zaWduIixpY29uOlszODQsNTEyLFs4Mzc2LCJ0ZW5nZSJdLCJmN2Q3IiwiTTAgNTZDMCA0Mi43IDEwLjcgMzIgMjQgMzJsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgODBDMTAuNyA4MCAwIDY5LjMgMCA1NnpNMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwIDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjU2LTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sTXdyPUpOZSxlT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsiY2xpbmljLW1lZGljYWwiXSwiZjdmMiIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjI0IDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sQ3dyPWVPZSx6d3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtc2xhc2giLGljb246WzY0MCw1MTIsW10sImUwNzMiLCJNNzMtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMjkuNy0uMyAzOSA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzIxLjggMjI0YzU2LjYtMSAxMDIuMi00Ny4yIDEwMi4yLTEwNCAwLTU3LjQtNDYuNi0xMDQtMTA0LTEwNC01Ni44IDAtMTAzIDQ1LjYtMTA0IDEwMi4yTDczLTI0Ljl6TTUxMiAyODhjLTE3LjIgMC0zMy43IDMuNC00OC43IDkuNmwxNzAgMTcwYzQuMi01LjQgNi43LTEyLjIgNi43LTE5LjZsMC0zMmMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOHpNNTkuOSA5Ny43Yy0yMS41IDEyLjUtMzUuOSAzNS43LTM1LjkgNjIuMyAwIDM5LjggMzIuMiA3MiA3MiA3MiAyNi42IDAgNDkuOC0xNC40IDYyLjMtMzUuOUw1OS45IDk3Ljd6TTI1MC4yIDI4OEMxOTYuOCAzMTMuOSAxNjAgMzY4LjcgMTYwIDQzMmwwIDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1MC4yIDAtMTkyLTE5MnpNMTI4IDI4OEM1Ny4zIDI4OCAwIDM0NS4zIDAgNDE2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsODYuNyAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTE2YzAtNTMuMiAyMC0xMDEuOCA1Mi45LTEzOC42LTExLjctMy41LTI0LjEtNS40LTM2LjktNS40ek02MTYgMTYwYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHoiXX0sX3dyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcGVyLXBsYW5lIixpY29uOls1NzYsNTEyLFs2MTkxM10sImYxZDgiLCJNNTM2LjQtMjYuM2M5LjgtMy41IDIwLjYtMSAyOCA2LjNzOS44IDE4LjIgNi4zIDI4bC0xNzggNDk2LjljLTUgMTMuOS0xOC4xIDIzLjEtMzIuOCAyMy4xLTE0LjIgMC0yNy04LjYtMzIuMy0yMS43bC02NC4yLTE1OGMtNC41LTExLTIuNS0yMy42IDUuMi0zMi42bDk0LjUtMTEyLjRjNS4xLTYuMSA0LjctMTUtLjktMjAuNnMtMTQuNi02LTIwLjYtLjlMMjI5LjIgMjc2LjFjLTkuMSA3LjYtMjEuNiA5LjYtMzIuNiA1LjJMMzguMSAyMTYuOGMtMTMuMS01LjMtMjEuNy0xOC4xLTIxLjctMzIuMyAwLTE0LjcgOS4yLTI3LjggMjMuMS0zMi44bDQ5Ni45LTE3OHoiXX0sdE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stYXRsYXMiLGljb246WzQ0OCw1MTIsWyJhdGxhcyJdLCJmNTU4IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0zMTAuNiAyMDhMMjc5IDIwOGMtMS40IDIzLjEtNiA0NC4yLTEyLjYgNjEuMiAyMi43LTEyLjUgMzkuNC0zNC44IDQ0LjItNjEuMnptLTE3My4xIDBjNC44IDI2LjQgMjEuNSA0OC43IDQ0LjIgNjEuMi02LjctMTctMTEuMi0zOC0xMi42LTYxLjJsLTMxLjYgMHptNzYuNCA1NWM0LjUgOS42IDguMiAxMy44IDEwLjIgMTUuNSAyLTEuNyA1LjctNS44IDEwLjItMTUuNSA2LjItMTMuNCAxMS4xLTMyLjUgMTIuNy01NWwtNDUuOCAwYzEuNiAyMi41IDYuNSA0MS42IDEyLjcgNTV6bS0xMi43LTg3bDQ1LjggMGMtMS42LTIyLjUtNi41LTQxLjYtMTIuNy01NS00LjUtOS42LTguMi0xMy44LTEwLjItMTUuNS0yIDEuNy01LjcgNS44LTEwLjIgMTUuNS02LjIgMTMuNC0xMS4xIDMyLjUtMTIuNyA1NXptMTA5LjUgMGMtNC44LTI2LjQtMjEuNS00OC43LTQ0LjItNjEuMiA2LjcgMTcgMTEuMiAzOCAxMi42IDYxLjJsMzEuNiAwek0xNjkgMTc2YzEuNC0yMy4xIDYtNDQuMiAxMi42LTYxLjItMjIuNyAxMi41LTM5LjQgMzQuOC00NC4yIDYxLjJsMzEuNiAwek05NiAxOTJhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHoiXX0sVHdyPXRPZSxMd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUiLGljb246WzQ0OCw1MTIsW10sImYwY2UiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMC02LjUtLjNDMjUuMiA0NzYuNCAwIDQ0OS4xIDAgNDE2TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTY0IDMyMGwwIDk2IDEyOCAwIDAtOTYtMTI4IDB6bTE5MiAwbDAgOTYgMTI4IDAgMC05Ni0xMjggMHpNNjQgMjU2bDEyOCAwIDAtOTYtMTI4IDAgMCA5NnptMTkyIDBsMTI4IDAgMC05Ni0xMjggMCAwIDk2eiJdfSxEd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQiLGljb246WzUxMiw1MTIsWzEyODE1MywxMjgxNTQsMTI4MTU1LDEyODE1NiwxMjg0MjAsMTI5MjkzLDEyOTI5NCwxMjk1MDUsOTgyOSwxMDA4NCw2MTU3OF0sImYwMDQiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDExMi4yLTEzOS45IDI0Mi41LTIxMi45IDI5OC4yLTEyLjQgOS40LTI3LjYgMTQuMS00My4xIDE0LjFzLTMwLjgtNC42LTQzLjEtMTQuMUMxMzkuOSA0MTAuMiAwIDI3OS45IDAgMTY3LjdsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6Il19LHJPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi11cCIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLXVwIl0sImYxMzkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM3NyAyNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtODctODctODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzNzcgMjcxeiJdfSwkd3I9ck9lLGFPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWhhbGYiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTMiXSwiZjI0MiIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEF3cj1hT2Usd3VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbnQtYXdlc29tZSIsaWNvbjpbNTEyLDUxMixbNjI1MDEsNjI2OTQsImZvbnQtYXdlc29tZS1mbGFnIiwiZm9udC1hd2Vzb21lLWxvZ28tZnVsbCJdLCJmMmI0IiwiTTkxLjcgOTZDMTA2LjMgODYuOCAxMTYgNzAuNSAxMTYgNTIgMTE2IDIzLjMgOTIuNyAwIDY0IDBTMTIgMjMuMyAxMiA1MmMwIDE2LjcgNy44IDMxLjUgMjAgNDFsMCA0MTkgNjQgMCAwLTY0IDM3My42IDBjMTQuNiAwIDI2LjQtMTEuOCAyNi40LTI2LjQgMC0zLjctLjgtNy4zLTIuMy0xMC43TDQzMiAyNzIgNDkzLjcgMTMzLjFjMS41LTMuNCAyLjMtNyAyLjMtMTAuNyAwLTE0LjYtMTEuOC0yNi40LTI2LjQtMjYuNEw5MS43IDk2eiJdfSxFd3I9d3VlLEl3cj13dWUsUHdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRjdWZmcyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmOCIsIk0zMjAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyek0xOTIgNjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xNTIgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTZjMCAxIC4xIDEuOSAuMiAyLjktNzQuNyAyNi4zLTEyOC4yIDk3LjUtMTI4LjIgMTgxLjEgMCAxMDYgODYgMTkyIDE5MiAxOTJzMTkyLTg2IDE5Mi0xOTJjMC04My43LTUzLjUtMTU0LjgtMTI4LjItMTgxLjEgLjEtLjkgLjItMS45IC4yLTIuOWwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAwek02NCAzMjBhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHptNDQ4IDBjMCA2Ni45LTUxLjMgMTIxLjgtMTE2LjYgMTI3LjUtMTQuMyAyMi44LTMyLjQgNDMuMS01My40IDU5LjkgMTMuNSAzIDI3LjYgNC42IDQyIDQuNiAxMDYgMCAxOTItODYgMTkyLTE5MiAwLTgzLjctNTMuNS0xNTQuOC0xMjguMi0xODEuMSAuMS0uOSAuMi0xLjkgLjItMi45bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEyLjMgMC0yMi40IDkuMi0yMy44IDIxLjEgMzAuMyAxOS4yIDU2LjEgNDUgNzUuMiA3NS40IDY1LjQgNS44IDExNi42IDYwLjYgMTE2LjYgMTI3LjV6TTM4NCA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LE53cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtY293Ym95LXNpZGUiLGljb246WzY0MCw1MTIsW10sImY4YzEiLCJNNjQwIDM4OC4zYzAgMTYuOS03LjEgMzIuMi0xOC40IDQzLjFsLTM1LTIzLjMtMjkyLjctMTk1LjFjLTM2LjEtMjQuMS03OC42LTM2LjktMTIyLTM2LjlsLTMuOSAwYy0yLjcgMC01LjQgMC04IC4xbDIyLjItMTAwYzUuNy0yNS44IDI4LjYtNDQuMSA1NS00NC4xIDEyLjIgMCAyNC4xIDQgMzMuOCAxMS4zbDQuNyAzLjVjMjYuMyAxOS43IDYyLjQgMTkuNyA4OC42IDBsNC43LTMuNWM5LjgtNy4zIDIxLjYtMTEuMyAzMy44LTExLjMgMjYuNCAwIDQ5LjMgMTguMyA1NSA0NC4xbDMzIDE0OC41QzU3NC41IDIzMi4zIDY0MCAzMDIuNiA2NDAgMzg4LjN6TTE3MS45IDIyNGMzMy45IDAgNjcuMSAxMCA5NS40IDI4LjlMNTYwIDQ0OCA1NiA0NDhjLTMwLjkgMC01Ni0yNS4xLTU2LTU2IDAtOTIuOCA3NS4yLTE2OCAxNjgtMTY4bDMuOSAweiJdfSxPd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kdXN0cnkiLGljb246WzUxMiw1MTIsW10sImYyNzUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI3OS44YzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xbC0xNTYuNiA4NC4zIDAtNjMuMmMwLTE4LjItMTkuNC0yOS43LTM1LjQtMjEuMUwxMjggMjE1LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxSd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluZXMtbGVhbmluZyIsaWNvbjpbMzg0LDUxMixbXSwiZTUxZSIsIk0xOTAuNCA3NC4xYzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC0xMjggMzg0Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDEyOC0zODR6bTcwLjktNDEuN2MtMTcuNC0yLjktMzMuOSA4LjktMzYuOCAyNi4zbC02NCAzODRjLTIuOSAxNy40IDguOSAzMy45IDI2LjMgMzYuOHMzMy45LTguOSAzNi44LTI2LjNsNjQtMzg0YzIuOS0xNy40LTguOS0zMy45LTI2LjMtMzYuOHpNMzUyIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxGd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzc3BvcnQiLGljb246WzM4NCw1MTIsW10sImY1YWIiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek05NiA0MDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMjc4LjYgMjA4Yy00LjggMjYuNC0yMS41IDQ4LjctNDQuMiA2MS4yIDYuNy0xNyAxMS4yLTM4IDEyLjYtNjEuMmwzMS42IDB6bS0xNzMuMSAwbDMxLjYgMGMxLjQgMjMuMSA2IDQ0LjIgMTIuNiA2MS4yLTIyLjctMTIuNS0zOS40LTM0LjgtNDQuMi02MS4yem03Ni40IDU1Yy02LjItMTMuNC0xMS4xLTMyLjUtMTIuNy01NWw0NS44IDBjLTEuNiAyMi41LTYuNSA0MS42LTEyLjcgNTUtNC41IDkuNi04LjIgMTMuOC0xMC4yIDE1LjUtMi0xLjctNS43LTUuOC0xMC4yLTE1LjV6bTAtMTQyYzQuNS05LjYgOC4yLTEzLjggMTAuMi0xNS41IDIgMS43IDUuNyA1LjggMTAuMiAxNS41IDYuMiAxMy40IDExLjEgMzIuNSAxMi43IDU1bC00NS44IDBjMS42LTIyLjUgNi41LTQxLjYgMTIuNy01NXptOTYuNyA1NUwyNDcgMTc2Yy0xLjQtMjMuMS02LTQ0LjItMTIuNi02MS4yIDIyLjcgMTIuNSAzOS40IDM0LjggNDQuMiA2MS4yek0xMzcgMTc2bC0zMS42IDBjNC44LTI2LjQgMjEuNS00OC43IDQ0LjItNjEuMi02LjcgMTctMTEuMiAzOC0xMi42IDYxLjJ6bTE4MyAxNmExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAweiJdfSxCd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5maW5pdHkiLGljb246WzY0MCw1MTIsWzg3MzQsOTg1NF0sImY1MzQiLCJNMCAyNTZjMC04OC40IDcxLjYtMTYwIDE2MC0xNjAgNTAuNCAwIDk3LjggMjMuNyAxMjggNjRsMzIgNDIuNyAzMi00Mi43YzMwLjItNDAuMyA3Ny42LTY0IDEyOC02NCA4OC40IDAgMTYwIDcxLjYgMTYwIDE2MFM1NjguNCA0MTYgNDgwIDQxNmMtNTAuNCAwLTk3LjgtMjMuNy0xMjgtNjRsLTMyLTQyLjctMzIgNDIuN2MtMzAuMiA0MC4zLTc3LjYgNjQtMTI4IDY0LTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwem0yODAgMGwtNDMuMi01Ny42Yy0xOC4xLTI0LjItNDYuNi0zOC40LTc2LjgtMzguNC01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzMwLjIgMCA1OC43LTE0LjIgNzYuOC0zOC40TDI4MCAyNTZ6bTgwIDBsNDMuMiA1Ny42YzE4LjEgMjQuMiA0Ni42IDM4LjQgNzYuOCAzOC40IDUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0zMC4yIDAtNTguNyAxNC4yLTc2LjggMzguNEwzNjAgMjU2eiJdfSxId3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvbmUiLGljb246WzUxMiw1MTIsW10sImYyNGQiLCJNMjg4IDQ0OGwtMjI0IDAgMC0yMjQgNDggMCAwLTY0LTQ4IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDgtNjQgMCAwIDQ4em0tNjQtOTZsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxxd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9yd2FyZCIsaWNvbjpbNTc2LDUxMixbOTE5M10sImYwNGUiLCJNMzcxLjcgNDMuMUMzNjAuMSAzMiAzNDMgMjguOSAzMjguMyAzNS4yUzMwNCA1NiAzMDQgNzJsMCAxMzYuMy0xNzIuMy0xNjUuMUMxMjAuMSAzMiAxMDMgMjguOSA4OC4zIDM1LjJTNjQgNTYgNjQgNzJsMCAzNjhjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlMMzA0IDMwMy43IDMwNCA0NDBjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlsMTkyLTE4NGM3LjktNy41IDEyLjMtMTggMTIuMy0yOC45cy00LjUtMjEuMy0xMi4zLTI4LjlsLTE5Mi0xODR6Il19LFZ3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtIixpY29uOls0NDgsNTEyLFsxMDldLCI0ZCIsIk0yMi43IDMzLjRjMTMuNS00LjEgMjguMSAxLjEgMzUuOSAxMi45TDIyNCAyOTQuMyAzODkuNCA0Ni4zYzcuOC0xMS43IDIyLjQtMTcgMzUuOS0xMi45UzQ0OCA0OS45IDQ0OCA2NGwwIDM4NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3OC4zLTEzMy40IDIwMC4xYy01LjkgOC45LTE1LjkgMTQuMi0yNi42IDE0LjJzLTIwLjctNS4zLTI2LjYtMTQuMkw2NCAxNjkuNyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDkuOSA5LjIgMzcuNSAyMi43IDMzLjR6Il19LGp3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLXNwaWtlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTU2OCIsIk02NCAxMTYuOGMwLTE1LjggMjAuNS0yMiAyOS4zLTguOWw5OC43IDE0OCAwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45bDk4LjcgMTQ4IDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlsOTguNyAxNDggMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUw2MDYuOCAzMDIuMmMxNC4yIDIxLjMtMS4xIDQ5LjgtMjYuNiA0OS44TDY0IDM1MiA2NCAxMTYuOHpNMzIgMzg0bDU3NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sVXdyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW50YWluIixpY29uOls1MTIsNTEyLFsxMjc5NTZdLCJmNmZjIiwiTTI1Ni41IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41LTcuMiAxMi4xLTIwLjMgMTkuNS0zNC4zIDE5LjVsLTQzMiAwYy0xNC4xIDAtMjcuMS03LjQtMzQuMy0xOS41cy03LjUtMjcuMS0uOC0zOS41bDIxNi00MDAgMi45LTQuNkMyMzEuNyA2LjIgMjQzLjYgMCAyNTYuNSAwek0xNzAuNCAyNDkuOWwyNi44IDI2LjhjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNDMuMy00My4zYzYtNiAxNC4xLTkuNCAyMi42LTkuNGw0Mi44IDAtNzIuMS0xMzMuNS04Ni4xIDE1OS40eiJdfSxXd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MiLGljb246WzUxMiw1MTIsW10sImY0MzkiLCJNMTY4IDU2bDAgNDAtNzguMSAwYy0xNC4zIDAtMjUuOSAxMS42LTI1LjkgMjUuOSAwIDQgLjkgOCAyLjcgMTEuNmwzMy40IDY2LjhjLTExLjQgMS44LTIwLjIgMTEuNy0yMC4yIDIzLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRsNS42IDAtMTMuNiAxMzYtNTYuMiA3MC4zYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwyNDguOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4yTDI4OCAzODQgMjc0LjQgMjQ4IDI4MCAyNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjQgMC0xMS45LTguNy0yMS45LTIwLjItMjMuN2wzMy40LTY2LjhjMS44LTMuNiAyLjctNy42IDIuNy0xMS42IDAtMTQuMy0xMS42LTI1LjktMjUuOS0yNS45bC03OC4xIDAgMC00MCAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzI0NS4zIDggMjMyIDhsLTE2IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMxNjgtMjEuMyAxNjgtOGwwIDE2LTE2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMHpNMzI1LjggMjc5LjZsOC41IDg1LjUgNDcuNCA1OS4yIDQuMiA1LjdjOS4yIDEzLjcgMTQuMSAyOS45IDE0LjEgNDYuNSAwIDEyLjctMi44IDI0LjgtNy45IDM1LjVsODMuMSAwYzIwLjMgMCAzNi44LTE2LjUgMzYuOC0zNi44IDAtNy4zLTIuMi0xNC40LTYuMi0yMC40bC0yNS44LTM4LjcgMC02NCAxMy4zLTEzLjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1MTIgMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYtMzIgMCAwLTE2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJjMCAyMi40LTEwLjIgNDIuNC0yNi4yIDU1LjZ6Il19LCRfPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLXRocmVlLXF1YXJ0ZXJzIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMyIsInRoZXJtb21ldGVyLTMiLCJ0aGVybW9tZXRlci10aHJlZS1xdWFydGVycyJdLCJmMmM4IiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM0wxMzYgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNTYuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LEd3cj0kXyxZd3I9JF8sS3dyPSRfLFp3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiIixpY29uOlszMjAsNTEyLFs5OF0sIjQyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC00Ni41LTI0LjgtODcuMy02Mi0xMDkuNyAxOC43LTIyLjMgMzAtNTEgMzAtODIuMyAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEwzMiAzMnpNMTYwIDIyNGwtOTYgMCAwLTEyOCA5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0ek02NCAyODhsMTI4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMTI4eiJdfSxRd3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLXZpcnVzIixpY29uOls1MTIsNTEyLFtdLCJlMDZjIiwiTTI1My40IDIuOUMyNDkuMiAxIDI0NC43IDAgMjQwIDBzLTkuMiAxLTEzLjQgMi45TDM4LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjUzLjQgMi45ek0yNDAgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjA4IDI2NGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFh3cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXRlY29pbi1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWQzIiwiTTEyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCA0Ni4zIDY0IDY0bDAgMTU3LjktMzguNiAxMWMtMTIuNyAzLjYtMjAuMSAxNi45LTE2LjUgMjkuN3MxNi45IDIwLjEgMjkuNyAxNi41TDY0IDI3MS44IDY0IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0xNjIuNSAxMzQuNi0zOC41YzEyLjctMy42IDIwLjEtMTYuOSAxNi41LTI5LjdzLTE2LjktMjAuMS0yOS43LTE2LjVMMTI4IDIwMy42IDEyOCA2NHoiXX0sSndyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZDYiLGljb246WzUxMiw1MTIsW10sImY2ZDEiLCJNMjI0LjQgOC4zQzI0NC0yLjggMjY4LTIuOCAyODcuNiA4LjNsMTc2IDk5LjdjMjAgMTEuNCAzMi40IDMyLjYgMzIuNCA1NS43bDAgMTk3LjRjMCAyMy0xMi40IDQ0LjMtMzIuNCA1NS43bC0xNzYgOTkuN2MtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBsLTE3Ni05OS43QzI4LjQgNDA1LjUgMTYgMzg0LjIgMTYgMzYxLjJsMC0xOTcuNGMwLTIzIDEyLjQtNDQuMyAzMi40LTU1LjdsMTc2LTk5Ljd6TTEwMi42IDE1NS42Yy04LjgtMy4xLTE4LjggLjMtMjMuOCA4LjZzLTMuMiAxOC43IDMuNiAyNWwzLjIgMi40IDE1MC4yIDkwLjIgMCAxNDguN2MwIDExIDkgMjAgMjAgMjAgMTEgMCAyMC05IDIwLTIwbDAtMTQ4LjcgMTUwLjMtOTAuMmM5LjUtNS43IDEyLjYtMTggNi45LTI3LjRzLTE4LTEyLjUtMjcuNC02LjlsLTE0OS43IDg5LjgtMTQ5LjctODkuOC0zLjctMS43eiJdfSxla3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcC1saW5lcy12ZXJ0aWNhbCIsaWNvbjpbMTkyLDUxMixbXSwiZjdhNSIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDY0em0xMjggMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0eiJdfSxpT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ29sZi1iYWxsLXRlZSIsaWNvbjpbMzg0LDUxMixbImdvbGYtYmFsbCJdLCJmNDUwIiwiTTI5OC41IDM4NC4xYzEyLjEgMS4yIDIxLjUgMTEuNSAyMS41IDIzLjlzLTkuNCAyMi42LTIxLjUgMjMuOWwtMi41IC4xLTgwIDAgMCA4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTg4LTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTIuNCA5LjQtMjIuNiAyMS41LTIzLjlsMi41LS4xIDIwOCAwIDIuNSAuMXpNMTkyIDBjMTA2IDAgMTkyIDg2IDE5MiAxOTIgMCA1Ny40LTI1LjIgMTA4LjgtNjUuMSAxNDRMNjUuMSAzMzZDMjUuMiAzMDAuOCAwIDI0OS40IDAgMTkyIDAgODYgODYgMCAxOTIgMHptMzIgMjQwYy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6bTY0LTY0Yy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6bS04MC0xNmMtNy43IDAtMTQuMiA1LjUtMTUuNyAxMi44bC0uNiA2LjRjLTEuMyA2LjMtNi4yIDExLjItMTIuNSAxMi41bC02LjQgLjZjLTcuMyAxLjUtMTIuOCA4LTEyLjggMTUuNyAwIDguOCA3LjIgMTYgMTYgMTYgMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2eiJdfSx0a3I9aU9lLHJrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZXhhZ29uIixpY29uOls1NzYsNTEyLFsxMTA0M10sImYzMTIiLCJNMzMuNSAyMjAuM2MtMTIuNyAyMi4yLTEyLjcgNDkuNCAwIDcxLjVsOTYuMiAxNjguMWMxMi44IDIyLjQgMzYuNyAzNi4yIDYyLjUgMzYuMmwxOTEuNiAwYzI1LjggMCA0OS43LTEzLjggNjIuNS0zNi4ybDk2LjItMTY4LjFjMTIuNy0yMi4yIDEyLjctNDkuNCAwLTcxLjVMNDQ2LjMgNTIuMkM0MzMuNSAyOS44IDQwOS42IDE2IDM4My44IDE2TDE5Mi4yIDE2Yy0yNS44IDAtNDkuNyAxMy44LTYyLjUgMzYuMkwzMy41IDIyMC4zeiJdfSxha3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTU2IDIyNS42TDMyLjQgMjk2LjIgMzIuNCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRsMTE3LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTM2NS40IDBjLTQxLjMgMC03OCAyNi40LTkxLjEgNjUuNnpNNDc3LjggNDQ4TDk5IDQ0OGMtMzIuOCAwLTU1LjktMzIuMS00NS41LTYzLjJsNDgtMTQ0QzEwOCAyMjEuMiAxMjYuNCAyMDggMTQ3IDIwOGwzNzguOCAwYzMyLjggMCA1NS45IDMyLjEgNDUuNSA2My4ybC00OCAxNDRjLTYuNSAxOS42LTI0LjkgMzIuOC00NS41IDMyLjh6Il19LGlrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrYWFiYSIsaWNvbjpbNTEyLDUxMixbMTI4MzMxXSwiZjY2YiIsIk0yNTYgNTEuM0w5Mi44IDExMi40IDI0Ny41IDE3MS4xYzUuNSAyLjEgMTEuNSAyLjEgMTcgMEw0MTkuMiAxMTIuNCAyNTYgNTEuM3pNMCAxMjkuM2MwLTIwIDEyLjQtMzcuOSAzMS4xLTQ0LjlsMjA4LTc4YzEwLjktNC4xIDIyLjgtNC4xIDMzLjcgMGwyMDggNzhjMTguNyA3IDMxLjEgMjQuOSAzMS4xIDQ0LjlsMCAzNi0yNTMuMiA5NmMtMS44IC43LTMuOCAuNy01LjcgMGwtMjUzLjItOTYgMC0zNnptMCAxNDBsMC01Mi43IDIzNi4xIDg5LjZjMTIuOCA0LjkgMjYuOSA0LjkgMzkuNyAwbDIzNi4xLTg5LjYgMCA1Mi43LTEyOCA0OC42IDAgNTEuMyAxMjgtNDguNiAwIDYyLjJjMCAyMC0xMi40IDM3LjktMzEuMSA0NC45bC0yMDggNzhjLTEwLjkgNC4xLTIyLjggNC4xLTMzLjcgMGwtMjA4LTc4QzEyLjQgNDIwLjcgMCA0MDIuNyAwIDM4Mi43bDAtNjIuMiAxMjggNDguNiAwLTUxLjMtMTI4LTQ4LjZ6TTIzNi4xIDQxMC4xYzEyLjggNC45IDI2LjkgNC45IDM5LjcgMGw2MC4xLTIyLjggMC01MS4zLTc3LjIgMjkuM2MtMS44IC43LTMuOCAuNy01LjcgMGwtNzcuMi0yOS4zIDAgNTEuMyA2MC4xIDIyLjh6Il19LHNrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmciLGljb246WzU3Niw1MTIsW10sImY0YmQiLCJNNjYuNyAzODRsNDIuNS00Mi41YzI0LTI0IDU2LjYtMzcuNSA5MC41LTM3LjVMMzUyIDMwNGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41czkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzQuNyAweiJdfSxua3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luZ2xlLXF1b3RlLXJpZ2h0IixpY29uOlsxOTIsNTEyLFtdLCJlODFjIiwiTTY0IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAweiJdfSxva3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLWRyb3BsZXQiLGljb246WzMyMCw1MTIsW10sImU0YzQiLCJNODAgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTAzLjNjNjQuOSAyMC40IDExMiA4MSAxMTIgMTUyLjdsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTcxLjYgNDcuMS0xMzIuMyAxMTItMTUyLjdMMTEyIDMyQzk0LjMgMzIgODAgMTcuNyA4MCAwem04MCA0MTZjMzUuMyAwIDY0LTMyLjQgNjQtNjQgMC0yMS4yLTI4LjktNjQuNS00Ny45LTkwLjYtOC4xLTExLjEtMjQuMi0xMS4xLTMyLjMgMC0xOSAyNi4xLTQ3LjkgNjkuNC00Ny45IDkwLjYgMCAzMS42IDI4LjcgNjQgNjQgNjR6Il19LGxrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctbWluaW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ2OV0sImYyZDEiLCJNMCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sY2tyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tcmlnaHQiLGljb246WzMyMCw1MTIsWzkwMDJdLCJmMDU0IiwiTTMxMS4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDMuMiAyNTYgNzMuOSA4Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJ6Il19LGRrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlZ2ciLGljb246WzM4NCw1MTIsWzEyOTM3MF0sImY3ZmIiLCJNMTkyIDQ5NkM4NiA0OTYgMCAzOTQgMCAyODggMCAxNzYgNjQgMTYgMTkyIDE2UzM4NCAxNzYgMzg0IDI4OGMwIDEwNi04NiAyMDgtMTkyIDIwOHpNMTU0LjggMTM0YzYuNS02IDctMTYuMSAxLTIyLjZzLTE2LjEtNy0yMi42LTFjLTIzLjkgMjEuOC00MS4xIDUyLjctNTIuMyA4NC4yLTExLjIgMzEuNi0xNi45IDY1LjEtMTYuOSA5My41IDAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZjMC0yNC41IDUtNTQuNCAxNS4xLTgyLjggMTAuMS0yOC41IDI1LTU0LjEgNDMuNy03MS4yeiJdfSxzT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmstZG9tZSIsaWNvbjpbNTEyLDUxMixbImxhbmRtYXJrLWFsdCJdLCJmNzUyIiwiTTI1NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIC45IDAgMS44IC4xIDIuNi04MC41IDEzLjQtMTQ0IDc2LjktMTU3LjUgMTU3LjRMNjQgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMTYwLTUxLjIgMzguNEM0LjcgNDYwLjQgMCA0NjkuOSAwIDQ4MCAwIDQ5Ny43IDE0LjMgNTEyIDMyIDUxMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDQ0OCA0MTYgNDQ4IDI1NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMi43IDBjLTEzLjUtODAuNC03Ny0xNDMuOS0xNTcuNS0xNTcuNCAuMS0uOSAuMS0xLjcgLjEtMi42IDAtMTcuNy0xNC4zLTMyLTMyLTMyem04MCAyNTZsNjQgMCAwIDE2MC02NCAwIDAtMTYwek0yMjQgNDE2bDAtMTYwIDY0IDAgMCAxNjAtNjQgMHpNMTEyIDI1Nmw2NCAwIDAgMTYwLTY0IDAgMC0xNjB6Il19LHVrcj1zT2UscGtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Indvcm0iLGljb246WzQ0OCw1MTIsW10sImU1OTkiLCJNMjI0IDk2YzAtNTMgNDMtOTYgOTYtOTZsMzguNCAwQzQwNy45IDAgNDQ4IDQwLjEgNDQ4IDg5LjZMNDQ4IDM3NmMwIDc1LjEtNjAuOSAxMzYtMTM2IDEzNlMxNzYgNDUxLjEgMTc2IDM3NmwwLTgwYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwbDAgMTY4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4UzAgNDkwLjUgMCA0NjRMMCAyOTZjMC03NS4xIDYwLjktMTM2IDEzNi0xMzZzMTM2IDYwLjkgMTM2IDEzNmwwIDgwYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0xODQtMzIgMGMtNTMgMC05Ni00My05Ni05NnptMTQ0LThhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sZmtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItaW5qdXJlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjcyOCIsIk0yNDIuNyA4MEwzMzQgODBjLTEwLjctMjQuNi0yOS41LTQ0LjktNTIuOS01Ny42TDI0Mi43IDgwem0tLjktNzAuN0MyMzYgOC40IDIzMCA4IDIyNCA4IDE3NC44IDggMTMyLjUgMzcuNiAxMTQgODBsODAuNiAwIDQ3LjEtNzAuN3pNMjI0IDI0OGM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwtMjQwIDBjMCA2Ni4zIDUzLjcgMTIwIDEyMCAxMjB6TTk4LjcgMzQxLjhDNDkuMyAzNzAuMiAxNiA0MjMuNSAxNiA0ODQuNiAxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmwxNTEgMC05NS44LTE3MC4yem00NS4xLTE3LjdsNDIuNyA3NS45IDg1LjUgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDExLjQtMi40IDIyLjItNi43IDMybDU5LjIgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTkwLjktNzMuNy0xNjQuNi0xNjQuNi0xNjQuNmwtODYuOSAwYy0xMi42IDAtMjQuOSAxLjQtMzYuNyA0LjF6TTIxMy41IDQ0OGwzNiA2NCAyMi41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTU4LjUgMHoiXX0saGtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0cmlrZXRocm91Z2giLGljb246WzUxMiw1MTIsW10sImYwY2MiLCJNOTYgMTU3LjVDOTYgODguMiAxNTIuMiAzMiAyMjEuNSAzMkwzNjggMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMjIxLjUgOTZjLTM0IDAtNjEuNSAyNy41LTYxLjUgNjEuNSAwIDMxIDIzLjEgNTcuMiA1My45IDYxbDQ0LjEgNS41IDIyMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4My4xIDBDMTAzIDIwNC42IDk2IDE4MS44IDk2IDE1Ny41ek0zNDkuMiAzMzZsNjUuNSAwYy45IDYuMSAxLjQgMTIuMiAxLjQgMTguNSAwIDY5LjMtNTYuMiAxMjUuNS0xMjUuNSAxMjUuNUwxNDQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE0Ni41IDBjMzQgMCA2MS41LTI3LjUgNjEuNS02MS41IDAtNi40LTEtMTIuNy0yLjgtMTguNXoiXX0sbWtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJsb2ciLGljb246WzUxMiw1MTIsW10sImY3ODEiLCJNMjI0IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0IDE0NS44IDAgMjY0IDExOC4yIDI2NCAyNjQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTkuMy05Ni43LTIxNi0yMTYtMjE2LTEzLjMgMC0yNC0xMC43LTI0LTI0ek04MCA5NmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNiA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NFMyNTUuNSA1MTIgMTc2IDUxMiAzMiA0NDcuNSAzMiAzNjhsMC0yMjRjMC0yNi41IDIxLjUtNDggNDgtNDh6bTE2OCAwYzkyLjggMCAxNjggNzUuMiAxNjggMTY4IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNjYuMy01My43LTEyMC0xMjAtMTIwLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LGdrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2gtMjAiLGljb246WzQ0OCw1MTIsW10sImUwNmYiLCJNMTY4LjUgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMjUuM2MtMTA4IDExLjktMTkyIDEwMy41LTE5MiAyMTQuNyAwIDExOS4zIDk2LjcgMjE2IDIxNiAyMTZzMjE2LTk2LjcgMjE2LTIxNmMwLTM5LjgtMTAuOC03Ny4xLTI5LjYtMTA5LjJsMjguMi0yOC4yYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0yMy40IDIzLjRjLTMyLjktMzAuMi03NS4yLTUwLjMtMTIyLTU1LjVsMC0yNS4zIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwem0tNjAgMjQwYzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsMCAzLjhjMCAxMS43LTMuMiAyMy4xLTkuMyAzM2wtNDMuOCA3MS4yIDMzLjEgMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTU3LjggMGMtMTQuNSAwLTI2LjItMTEuNy0yNi4yLTI2LjIgMC00LjkgMS4zLTkuNiAzLjktMTMuOGw1Ni43LTkyLjFjMi4yLTMuNiAzLjQtNy44IDMuNC0xMi4xbDAtMy44YzAtNi42LTUuNC0xMi0xMi0xMnMtMTIgNS40LTEyIDEyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMHptMTgwLTUyYzI4LjcgMCA1MiAyMy4zIDUyIDUybDAgOTZjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC05NmMwLTI4LjcgMjMuMy01MiA1Mi01MnptLTEyIDUybDAgOTZjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTk2YzAtNi42LTUuNC0xMi0xMi0xMnMtMTIgNS40LTEyIDEyeiJdfSxia3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGlja3VwIixpY29uOls2NDAsNTEyLFsxMjg3NjNdLCJmNjNjIiwiTTM2My44IDk2bDU3LjYgOTYtMTMzLjQgMCAwLTk2IDc1LjggMHpNNDk2IDE5Mkw0MTguNiA2My4xQzQwNy4xIDQzLjggMzg2LjIgMzIgMzYzLjggMzJMMjU2IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOC0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMi40IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDE2MC43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDMyLjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek0xMTIgMzkyYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6bTM3Ni00MGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LG5PZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZWVkbGluZyIsaWNvbjpbNTEyLDUxMixbMTI3NzkzLCJzcHJvdXQiXSwiZjRkOCIsIk01MTIgMzJDNTEyIDE0MC4xIDQzNS40IDIzMC4zIDMzMy42IDI1MS40IDMyNS43IDE5My4zIDI5OS42IDE0MSAyNjEuMSAxMDAuNSAzMDEuMiA0MCAzNjkuOSAwIDQ0OCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzIgMGMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0bDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwQzEwMC4zIDMyMCAwIDIxOS43IDAgOTZ6Il19LHhrcj1uT2Usb09lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYW5zZ2VuZGVyIixpY29uOls1NzYsNTEyLFs5ODk1LCJ0cmFuc2dlbmRlci1hbHQiXSwiZjIyNSIsIk0xMjgtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMOTcuOSAzMiAxMzYgNzAuMSAxNTEgNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0xNSAxNSAxNC4yIDE0LjJjMjcuOS0yMy44IDY0LjItMzguMiAxMDMuOC0zOC4yIDM2LjcgMCA3MC42IDEyLjQgOTcuNiAzMy4yTDQ2Ni43IDMyIDQ0OCAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC43LTg0LjQgODQuNGMxMyAyMy4xIDIwLjQgNDkuOSAyMC40IDc4LjMgMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAzNS4yIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTM1LjJjLTczLTE0LjgtMTI4LTc5LjQtMTI4LTE1Ni44IDAtMzEuNCA5LTYwLjcgMjQuNy04NS40bC0xNi43LTE2LjctMTUgMTVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTUtMTUtMzguMS0zOC4xIDAgMzAuMWMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDExMy43IDAgOTZMMCAwQzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDB6TTI4OCAzMzZhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6Il19LHZrcj1vT2UseWtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZiIsaWNvbjpbNTc2LDUxMixbNjE3MzFdLCJmMDg5IiwiTTMwNC4xIDcuNmMwLTExLjEtNy42LTIwLjctMTguNC0yMy4zcy0yMS45IDIuNS0yNyAxMi40TDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjkxIDQxNi4xYzgtNC4xIDEzLjEtMTIuNCAxMy4xLTIxLjRsMC0zODcuMXoiXX0sbE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob3RvLWZpbG0iLGljb246WzY0MCw1MTIsWyJwaG90by12aWRlbyJdLCJmODdjIiwiTTE5MiA2NGMwLTM1LjMgMjguNy02NCA2NC02NEw1NzYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzIwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjI0ek0zMjAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTU2LjUgMTEuNUM0NzIuMSAxMDAuNCA0NjQuNCA5NiA0NTYgOTZzLTE2LjEgNC40LTIwLjUgMTEuNWwtNTQgODguMy0xNy45LTI1LjZjLTQuNS02LjQtMTEuOC0xMC4yLTE5LjctMTAuMnMtMTUuMiAzLjgtMTkuNyAxMC4ybC01NiA4MGMtNS4xIDcuMy01LjggMTYuOS0xLjYgMjQuOFMyNzkuMSAyODggMjg4IDI4OGwyNTYgMGM4LjcgMCAxNi43LTQuNyAyMC45LTEyLjNzNC4xLTE2LjgtLjUtMjQuM2wtODgtMTQ0ek0xNDQgMTI4bDAgMTYwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEybDE5MiAwIDAgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw4MCAwek01MiAxOTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMHptMCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSx3a3I9bE9lLGtrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWN0dXJlLWluLXBpY3R1cmUiLGljb246WzUxMiw1MTIsW10sImU4MGIiLCJNNDQ4IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTEyLTY0IDAgMC0xMTItMzg0IDAgMCAzMjAgMTQ0IDAgMCA2NC0xNDQgMC02LjUtLjNjLTMwLjEtMy4xLTU0LjEtMjctNTcuMS01Ny4xTDAgNDE2IDAgOTZDMCA2Mi45IDI1LjIgMzUuNiA1Ny41IDMyLjNMNjQgMzIgNDQ4IDMyem0xNiAyMjRjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyOGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNjAgMHoiXX0sU2tyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1bXAtbWVkaWNhbCIsaWNvbjpbMzIwLDUxMixbXSwiZTA2YSIsIk05NiAwbDAgODAgMTI4IDAgMC0yNCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzMwOS4zIDggMjk2IDhsLTcyIDAgMC04YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwQzExMC4zLTMyIDk2LTE3LjcgOTYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTY0IDEyMGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sTWtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUiLGljb246WzQ0OCw1MTIsWzEyODI5M10sImYwNmQiLCJNMTYwLjUtMjYuNGM5LjMtNy44IDIzLTcuNSAzMS45IC45IDEyLjMgMTEuNiAyMy4zIDI0LjQgMzMuOSAzNy40IDEzLjUgMTYuNSAyOS43IDM4LjMgNDUuMyA2NC4yIDUuMi02LjggMTAtMTIuOCAxNC4yLTE3LjkgMS4xLTEuMyAyLjItMi43IDMuMy00LjEgNy45LTkuOCAxNy43LTIyLjEgMzAuOC0yMi4xIDEzLjQgMCAyMi44IDExLjkgMzAuOCAyMi4xIDEuMyAxLjcgMi42IDMuMyAzLjkgNC44IDEwLjMgMTIuNCAyNCAzMC4zIDM3LjcgNTIuNCAyNy4yIDQzLjkgNTUuNiAxMDYuNCA1NS42IDE3Ni42IDAgMTIzLjctMTAwLjMgMjI0LTIyNCAyMjRTMCA0MTEuNyAwIDI4OGMwLTkxLjEgNDEuMS0xNzAgODAuNS0yMjUgMTkuOS0yNy43IDM5LjctNDkuOSA1NC42LTY1LjEgOC4yLTguNCAxNi41LTE2LjcgMjUuNS0yNC4yek0yMjUuNyA0MTZjMjUuMyAwIDQ3LjctNyA2OC44LTIxIDQyLjEtMjkuNCA1My40LTg4LjIgMjguMS0xMzQuNC00LjUtOS0xNi05LjYtMjIuNS0ybC0yNS4yIDI5LjNjLTYuNiA3LjYtMTguNSA3LjQtMjQuNy0uNS0xNy4zLTIyLjEtNDkuMS02Mi40LTY1LjMtODMtNS40LTYuOS0xNS4yLTgtMjEuNS0xLjktMTguMyAxNy44LTUxLjUgNTYuOC01MS41IDEwNC4zIDAgNjguNiA1MC42IDEwOS4yIDExMy43IDEwOS4yeiJdfSxjT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1wbHVzIixpY29uOls1MTIsNTEyLFsic2VhcmNoLXBsdXMiXSwiZjAwZSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTIwOCAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sQ2tyPWNPZSx6a3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhc2siLGljb246WzQ0OCw1MTIsW10sImYwYzMiLCJNMjg4IDBMMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMyczE0LjMgMzIgMzIgMzJMMTI4IDIxNS41IDcuNSA0MjYuM0MyLjYgNDM1IDAgNDQ0LjcgMCA0NTQuNyAwIDQ4Ni40IDI1LjYgNTEyIDU3LjMgNTEybDMzMy40IDBjMzEuNiAwIDU3LjMtMjUuNiA1Ny4zLTU3LjMgMC0xMC0yLjYtMTkuOC03LjUtMjguNEwzMjAgMjE1LjUgMzIwIDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzMzNy43IDAgMzIwIDBMMjg4IDB6TTE5MiAyMTUuNWwwLTE1MS41IDY0IDAgMCAxNTEuNWMwIDExLjEgMi45IDIyLjEgOC40IDMxLjhsNDEuNiA3Mi43LTE2NCAwIDQxLjYtNzIuN2M1LjUtOS43IDguNC0yMC42IDguNC0zMS44eiJdfSxfa3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tcmlnaHQiLGljb246WzQ0OCw1MTIsW10sImYwMzgiLCJNNDQ4IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDE5MiA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnptMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0wIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0sZE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhYmxlLWNhciIsaWNvbjpbNTEyLDUxMixbMTI4NjczLDU3NTUxLCJ0cmFtIl0sImY3ZGEiLCJNMjg4LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTYwIDI0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTMyIDI4OGMwLTM1LjMgMjguNy02NCA2NC02NGwxMzYgMCAwLTk2LjItMTkzLjQgNTUuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDIyNC02NCAwIDAgMjI0LTY0YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTIwNi42IDU5IDAgMTA5LjkgMTM2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE2MHptODAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDU2IDAgMC05Ni01NiAwem0xODQgOTZsMC05Ni04MCAwIDAgOTYgODAgMHptNDggMGw1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNmwtNTYgMCAwIDk2eiJdfSxUa3I9ZE9lLHVPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXQtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbImZpcnN0LWFpZCJdLCJmNDc5IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2IDAgMC0zODQtMTYgMHptNjQgMGwwIDM4NCAyNTYgMCAwLTM4NC0yNTYgMHpNNDQ4IDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMTYgMCAwIDM4NCAxNiAwek0yMjQgMTg0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxMa3I9dU9lLERrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLWxpbmVzIixpY29uOls0NDgsNTEyLFtdLCJmN2E0IiwiTTMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAyODh6bTAtMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE2MHoiXX0scE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cmdlciIsaWNvbjpbNTEyLDUxMixbImhhbWJ1cmdlciJdLCJmODA1IiwiTTQ4IDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDI4OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNkw0OCAzODR6TTMyIDIwMmMwIDEyLjIgOS45IDIyIDIyIDIyTDQ1OCAyMjRjMTIuMiAwIDIyLTkuOSAyMi0yMiAwLTE3LjItMi42LTM0LjQtMTAuOC00OS41LTIyLjItNDAuOC04Mi4zLTEyMC41LTIxMy4yLTEyMC41UzY1IDExMS42IDQyLjggMTUyLjVDMzQuNiAxNjcuNiAzMiAxODQuOCAzMiAyMDJ6TTAgMzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDI3MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTI1NiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTEyMCAxMjhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQ4LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sJGtyPXBPZSxBa3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic25vd21hbiIsaWNvbjpbNjQwLDUxMixbOTczMSw5OTI0XSwiZjdkMCIsIk00MDMgMjExLjdjMzIuMi0yNC45IDUzLTYzLjkgNTMtMTA3LjcgMC03NS4xLTYwLjktMTM2LTEzNi0xMzZTMTg0IDI4LjkgMTg0IDEwNGMwIDQzLjkgMjAuOCA4Mi45IDUzIDEwNy43LTMyLjIgMTYuMy01OSA0MS44LTc2LjggNzMuMUwxMTIgMjY0LjIgMTEyIDIyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE5LjYtMjIuNS05LjdjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41YzM2LjEgMTUuNSA3NS45IDMyLjUgMTE5LjQgNTEuMi0zLjkgMTQuOS02IDMwLjYtNiA0Ni43IDAgNzAgMzkuMSAxMzAuOCA5Ni42IDE2MS45IDcuOSA0LjMgMTYuOSA2LjEgMjUuOSA2LjFsMTIzIDBjOSAwIDE4LTEuOCAyNS45LTYuMSA1Ny41LTMxLjEgOTYuNi05MiA5Ni42LTE2MS45IDAtMTYuMi0yLjEtMzEuOC02LTQ2LjcgNDMuNS0xOC43IDgzLjQtMzUuNyAxMTkuNC01MS4yIDEyLjItNS4yIDE3LjgtMTkuMyAxMi42LTMxLjVzLTE5LjMtMTcuOC0zMS41LTEyLjZsLTIyLjUgOS43IDAtMTkuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLjItNDguMiAyMC42Yy0xNy45LTMxLjMtNDQuNi01Ni44LTc2LjgtNzMuMXpNMjk2IDQxNmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yNC0xMjBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yNDggODBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNMzY4IDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjkyLjIgMTU5LjNjLTIuNy00LjgtNC4yLTEwLjItNC4yLTE1LjcgMC0xNy41IDE0LjItMzEuNiAzMS42LTMxLjZsLjggMGMxNy41IDAgMzEuNiAxNC4yIDMxLjYgMzEuNiAwIDUuNS0xLjQgMTAuOS00LjIgMTUuN0wzMjcgMTk1LjhjLTMuMSA1LjQtMTAuOCA1LjQtMTMuOSAwbC0yMC45LTM2LjZ6Il19LEVrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3RlbCIsaWNvbjpbNTEyLDUxMixbMTI3OTc2XSwiZjU5NCIsIk0xNiAyNEMxNiAxMC43IDI2LjcgMCA0MCAwTDQ3MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MTYgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDQwIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MTYtOCAwQzI2LjcgNDggMTYgMzcuMyAxNiAyNHptMjA4IDg4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTEyOCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem05NiAxMTJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMzUyIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTExMiAyMDhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMjQwLTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTI4OCAzODRsNDMuOCAwYzkuOSAwIDE3LjUtOSAxNC0xOC4yLTEzLjgtMzYuMS00OC44LTYxLjgtODkuNy02MS44cy03NS45IDI1LjctODkuNyA2MS44Yy0zLjUgOS4yIDQuMSAxOC4yIDE0IDE4LjJsNDMuOCAwIDAgODAgNjQgMCAwLTgweiJdfSxJa3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJpbnQiLGljb246WzUxMiw1MTIsWzEyODQyNCwxMjg0MzgsOTExM10sImYwMmYiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzQxLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2w0Mi41IDQyLjVjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDM3LjUtMzg0IDAgMC04MHpNMCAyNTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2ek0xMjggNDE2bDAgMzIgMjU2IDAgMC05Ni0yNTYgMCAwIDY0ek00NTYgMjcyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2xsZXliYWxsIixpY29uOls1MTIsNTEyLFsxMjc5NTIsInZvbGxleWJhbGwtYmFsbCJdLCJmNDVmIiwiTTUxMiAyNTguOWMtMjMuNCA4LTQ3LjggMTMuMS03Mi42IDE1LjEgNS45LTk4LjYtMzAuNy0xOTEuMS05NC45LTI1OC4zIDk3LjggMzYgMTY3LjUgMTMwIDE2Ny41IDI0MC4zIDAgMSAwIDEuOSAwIDIuOXptLTUuOSA1MmMtNS4yIDIzLjctMTMuNiA0Ni4yLTI0LjkgNjYuOS05NC43IDUyLjItMjE0IDUwLTMwOC40LTEzLjYgMjEuNy0zMS4zIDQ5LjgtNTguOSA4My44LTgwLjUgNzkuNSA0MS42IDE2OC41IDQ5LjEgMjQ5LjUgMjcuMXpNMjc5LjcgMjQxLjZjLTMuNy04OS43LTQxLjctMTcwLjUtMTAxLjMtMjI5LjcgMjIuMy03LjEgNDYtMTEuMiA3MC41LTExLjkgOTIuNSA1NS45IDE1MC4zIDE2MC4zIDE0Mi40IDI3My44LTM4LTMuMi03NS45LTEzLjctMTExLjYtMzIuM3pNMTMwLjUgMzIuOEMxNDkuMSA0OS4xIDE2NS44IDY3LjcgMTc5LjkgODguMiA5MS41IDEzMi4zIDI5LjcgMjEwLjMgMy43IDI5OS41IDEuMyAyODUuMyAwIDI3MC44IDAgMjU2IDAgMTYwLjIgNTIuNiA3Ni43IDEzMC41IDMyLjh6bTczLjQgOTdjMTYuMyAzNC41IDI2LjEgNzIuNiAyNy45IDExMi44LTc1LjggNDgtMTI2LjggMTIxLjMtMTQ4LjMgMjAyLjUtMTcuNi0xNi4xLTMzLTM0LjYtNDUuNS01NSAyLjEtMTA4LjEgNjMuNy0yMTAuNCAxNjUuOS0yNjAuM3pNMjU2IDUxMmMtNDcuNyAwLTkyLjMtMTMtMTMwLjUtMzUuNyA0LjgtMjQuMyAxMi42LTQ4IDIzLjItNzAuNCA4Mi40IDU0LjQgMTgwLjggNjguOSAyNzEgNDctNDQuNCAzNy0xMDEuNSA1OS4yLTE2My43IDU5LjJ6Il19LFBrcj1mT2UsTmtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWZmaWMtbGlnaHQiLGljb246WzMyMCw1MTIsWzEyODY3OF0sImY2MzciLCJNNjQtMzJDMjguNy0zMiAwLTMuMyAwIDMyTDAgMzg0YzAgODguNCA3MS42IDE2MCAxNjAgMTYwczE2MC03MS42IDE2MC0xNjBsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQtMzJ6bTk2IDM5MmMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1Ni01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTZ6bTU2LTEwNGE1NiA1NiAwIDEgMSAtMTEyIDAgNTYgNTYgMCAxIDEgMTEyIDB6TTE2MCAxNTJhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6Il19LE9rcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NTUiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LG1wZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VycyIsaWNvbjpbNjQwLDUxMixbXSwiZjBjMCIsIk0zMjAgMTZhMTA0IDEwNCAwIDEgMSAwIDIwOCAxMDQgMTA0IDAgMSAxIDAtMjA4ek05NiA4OGE3MiA3MiAwIDEgMSAwIDE0NCA3MiA3MiAwIDEgMSAwLTE0NHpNMCA0MTZjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggMTIuOCAwIDI1LjIgMS45IDM2LjkgNS40LTMyLjkgMzYuOC01Mi45IDg1LjQtNTIuOSAxMzguNmwwIDE2YzAgMTEuNCAyLjQgMjIuMiA2LjcgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyem01MjEuMyA2NGM0LjMtOS44IDYuNy0yMC42IDYuNy0zMmwwLTE2YzAtNTMuMi0yMC0xMDEuOC01Mi45LTEzOC42IDExLjctMy41IDI0LjEtNS40IDM2LjktNS40IDcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTg2LjcgMHpNNDcyIDE2MGE3MiA3MiAwIDEgMSAxNDQgMCA3MiA3MiAwIDEgMSAtMTQ0IDB6TTE2MCA0MzJjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBzMTYwIDcxLjYgMTYwIDE2MGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0sUmtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNlcnRpZmljYXRlIixpY29uOls1NzYsNTEyLFtdLCJmMGEzIiwiTTIzOS4yLThjLTYuMS02LjItMTUtOC43LTIzLjQtNi40UzIwMC45LTUuNiAxOTguOCAyLjhMMTgzLjUgNjNjLTEuMSA0LjQtNS42IDctOS45IDUuN0wxMTMuOCA1MS45Yy04LjQtMi40LTE3LjQgMC0yMy41IDYuMXMtOC41IDE1LjEtNi4xIDIzLjVsMTYuOSA1OS44YzEuMiA0LjMtMS40IDguOC01LjcgOS45TDM1LjEgMTY2LjVjLTguNCAyLjEtMTUgOC43LTE3LjMgMTcuMXMuMiAxNy4zIDYuNCAyMy40bDQ0LjUgNDMuM2MzLjIgMy4xIDMuMiA4LjMgMCAxMS41TDI0LjMgMzA1LjFjLTYuMiA2LjEtOC43IDE1LTYuNCAyMy40czguOSAxNC45IDE3LjMgMTcuMWw2MC4yIDE1LjNjNC40IDEuMSA3IDUuNiA1LjcgOS45TDg0LjIgNDMwLjVjLTIuNCA4LjQgMCAxNy40IDYuMSAyMy41czE1LjEgOC41IDIzLjUgNi4xbDU5LjgtMTYuOWM0LjMtMS4yIDguOCAxLjQgOS45IDUuN2wxNS4zIDYwLjJjMi4xIDguNCA4LjcgMTUgMTcuMSAxNy4zczE3LjMtLjIgMjMuNC02LjRsNDMuMy00NC41YzMuMS0zLjIgOC4zLTMuMiAxMS41IDBMMzM3LjMgNTIwYzYuMSA2LjIgMTUgOC43IDIzLjQgNi40czE0LjktOC45IDE3LjEtMTcuM0wzOTMuMSA0NDljMS4xLTQuNCA1LjYtNyA5LjktNS43bDU5LjggMTYuOWM4LjQgMi40IDE3LjQgMCAyMy41LTYuMXM4LjUtMTUuMSA2LjEtMjMuNWwtMTYuOS01OS44Yy0xLjItNC4zIDEuNC04LjggNS43LTkuOWw2MC4yLTE1LjNjOC40LTIuMSAxNS04LjcgMTcuMy0xNy4xcy0uMi0xNy40LTYuNC0yMy40bC00NC41LTQzLjNjLTMuMi0zLjEtMy4yLTguMyAwLTExLjVsNDQuNS00My4zYzYuMi02LjEgOC43LTE1IDYuNC0yMy40cy04LjktMTQuOS0xNy4zLTE3LjFsLTYwLjItMTUuM2MtNC40LTEuMS03LTUuNi01LjctOS45bDE2LjktNTkuOGMyLjQtOC40IDAtMTcuNC02LjEtMjMuNXMtMTUuMS04LjUtMjMuNS02LjFMNDAzIDY4LjhjLTQuMyAxLjItOC44LTEuNC05LjktNS43TDM3Ny44IDIuOGMtMi4xLTguNC04LjctMTUtMTcuMS0xNy4zcy0xNy4zIC4yLTIzLjQgNi40TDI5NCAzNi41Yy0zLjEgMy4yLTguMyAzLjItMTEuNSAwTDIzOS4yLTh6Il19LEZrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGFybS1jbG9jayIsaWNvbjpbNTEyLDUxMixbOTIwMF0sImYzNGUiLCJNNTA0LjQgMTMyLjVjLTQuNSAxMC41LTE4LjQgOS44LTI0LjkgLjQtMjcuOC00MC02Ni4xLTcyLjItMTExLTkyLjYtMTAuNC00LjctMTMuNy0xOC4zLTQuMS0yNC42IDE1LTkuOSAzMy0xNS43IDUyLjMtMTUuNyA1Mi42IDAgOTUuMiA0Mi42IDk1LjIgOTUuMiAwIDEzLjItMi43IDI1LjgtNy42IDM3LjN6bS00NzEuOSAuNGMtNi41IDkuNC0yMC41IDEwLjEtMjQuOS0uNC00LjktMTEuNS03LjYtMjQuMS03LjYtMzcuMyAwLTUyLjYgNDIuNi05NS4yIDk1LjItOTUuMiAxOS4zIDAgMzcuMyA1LjggNTIuMyAxNS43IDkuNiA2LjMgNi4zIDE5LjktNC4xIDI0LjYtNDQuOCAyMC40LTgzLjEgNTIuNi0xMTEgOTIuNnpNMzkwLjIgNDY3LjRDMzUyLjggNDk1LjQgMzA2LjMgNTEyIDI1NiA1MTJzLTk2LjgtMTYuNi0xMzQuMS00NC42TDg2LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDM1LjItMzUuMkM0OC42IDM4NC44IDMyIDMzOC4zIDMyIDI4OCAzMiAxNjQuMyAxMzIuMyA2NCAyNTYgNjRTNDgwIDE2NC4zIDQ4MCAyODhjMCA1MC4zLTE2LjYgOTYuOC00NC42IDEzNC4ybDM1LjIgMzUuMmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtMzUuMi0zNS4yek0yODAgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTA0YzAgNi40IDIuNSAxMi41IDcgMTdsNTYgNTZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00OS00OSAwLTk0LjF6Il19LEJrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxpY29wdGVyLXN5bWJvbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUwMiIsIk00NDUuNCAyMjRsNjQuNyAwQzQ5NS42IDEwOC4yIDQwMy44IDE2LjQgMjg4IDJsMCA2NC43QzM2OC40IDgwLjEgNDMxLjkgMTQzLjYgNDQ1LjQgMjI0ek01MTAgMjg4bC02NC43IDBDNDMxLjkgMzY4LjQgMzY4LjQgNDMxLjkgMjg4IDQ0NS4zbDAgNjQuN2MxMTUuOC0xNC40IDIwNy42LTEwNi4yIDIyMi0yMjJ6TTIgMjg4QzE2LjQgNDAzLjggMTA4LjIgNDk1LjYgMjI0IDUxMGwwLTY0LjdDMTQzLjYgNDMxLjkgODAuMiAzNjguNCA2Ni43IDI4OEwyIDI4OHptMC02NGw2NC43IDBDODAuMiAxNDMuNiAxNDMuNiA4MC4xIDIyNCA2Ni43TDIyNCAyQzEwOC4yIDE2LjQgMTYuNCAxMDguMiAyIDIyNHptMjA2LTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA5NiAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0LTk2IDAgMC02NHoiXX0saE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXktY3JhY2siLGljb246WzUxMiw1MTIsWyJob3VzZS1kYW1hZ2UiXSwiZjZmMSIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTA1LjYgMC0zOC40LTY0IDgwLjgtNjcuM2M3LjgtNi41IDcuNi0xOC42LS40LTI0LjlMMjE4LjYgMjYzLjJjLTE0LjYtMTEuNS0zMy44IDctMjIuOCAyMkwyNTYgMzY4IDE3MC41IDQzOS4yYy02LjEgNS03LjUgMTMuOC0zLjUgMjAuNWwzMS4zIDUyLjItODYuNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6Il19LEhrcj1oT2UscWtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1taWxpdGFyeS1wb2ludGluZyIsaWNvbjpbNTEyLDUxMixbXSwiZTU0YSIsIk0yMTQuOSAxNC4xQzIwMiAxNS4yIDE5MiAyNiAxOTIgMzkgMTkyIDUyLjggMjAzLjIgNjQgMjE3IDY0bDE1MSAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMwLjZDMzg0IDggMzc2IC43IDM2Ni43IDEuNEwyMTQuOSAxNC4xek0yMDggMTEyYzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC01LjUtLjYtMTAuOC0xLjYtMTZMMjA5LjYgOTZjLTEgNS4yLTEuNiAxMC41LTEuNiAxNnpNNDAgMjI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDE1MiAwIDAgODkuNCAxNjIuOC0xNjIuOGMtMTMuMy00LjMtMjcuMy02LjUtNDEuNi02LjVMNDAgMjI0em0zNDUuNyAyMC45bC0xNzEuMSAxNzEuMSAxNjkuNCAwIDAtNDYuMyA1My42IDkwLjZjMTEuMiAxOSAzNS44IDI1LjMgNTQuOCAxNC4xczI1LjMtMzUuOCAxNC4xLTU0LjhMNDMwLjMgMjkwLjhjLTExLjItMTktMjYuNi0zNC41LTQ0LjYtNDUuOXpNMTkyIDQ0OGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzItMTkyIDB6Il19LFZrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkYXRhYmFzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjFjMCIsIk00NDggMjA1LjhjLTE0LjggOS44LTMxLjggMTcuNy00OS41IDI0LTQ3IDE2LjgtMTA4LjcgMjYuMi0xNzQuNSAyNi4yUzk2LjQgMjQ2LjUgNDkuNSAyMjkuOGMtMTcuNi02LjMtMzQuNy0xNC4yLTQ5LjUtMjRMMCAyODhjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODBsMC04Mi4yem0wLTc3LjhsMC00OEM0NDggMzUuOCAzNDcuNyAwIDIyNCAwUzAgMzUuOCAwIDgwbDAgNDhjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODB6TTM5OC41IDM4OS44QzM1MS42IDQwNi41IDI4OS45IDQxNiAyMjQgNDE2Uzk2LjQgNDA2LjUgNDkuNSAzODkuOGMtMTcuNi02LjMtMzQuNy0xNC4yLTQ5LjUtMjRMMCA0MzJjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODBsMC02Ni4yYy0xNC44IDkuOC0zMS44IDE3LjctNDkuNSAyNHoiXX0samtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ld3NwYXBlciIsaWNvbjpbNTEyLDUxMixbMTI4MjQwXSwiZjFlYSIsIk0wIDQxNkwwIDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHpNMTYwIDEyOGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTI0IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQwIDB6bS0yNC03MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zNjAgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDB6Il19LFVrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1yYWluIixpY29uOls1MTIsNTEyLFsxMjc3ODMsOTkyNl0sImY3M2QiLCJNOTYgMzIwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yLTEuMy02LjctMS45LTEzLjctMS45LTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTIgNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwIDE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjggNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOC0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiAzMjB6bTEuNiA2OC4yYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNmwzMC4yLTY4LjJ6bTE1MiAwYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNmwzMC4yLTY4LjJ6bTEyMS44IDY4LjJsMzAuMi02OC4yYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNnoiXX0sbU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1heGltaXplIixpY29uOls0NDgsNTEyLFsiZXhwYW5kLWFycm93cy1hbHQiXSwiZjMxZSIsIk0xNjggMzJMMjQgMzJDMTAuNyAzMiAwIDQyLjcgMCA1NkwwIDIwMGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSAyMjMuOCA0MSAyMTdsNDAtNDAgNzkgNzktNzkgNzktNDAtNDBjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMCAzMDIuMyAwIDMxMkwwIDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGM5LjcgMCAxOC41LTUuOCAyMi4yLTE0LjhzMS43LTE5LjMtNS4yLTI2LjJsLTQwLTQwIDc5LTc5IDc5IDc5LTQwIDQwYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yUzI3MC4zIDQ4MCAyODAgNDgwbDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTQ0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMnMtMTkuMy0xLjctMjYuMiA1LjJsLTQwIDQwLTc5LTc5IDc5LTc5IDQwIDQwYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTNDQ4IDIwOS43IDQ0OCAyMDBsMC0xNDRjMC0xMy4zLTEwLjctMjQtMjQtMjRMMjgwIDMyYy05LjcgMC0xOC41IDUuOC0yMi4yIDE0LjhTMjU2LjIgNjYuMSAyNjMgNzNsNDAgNDAtNzkgNzktNzktNzkgNDAtNDBjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNzcuNyAzMiAxNjggMzJ6Il19LFdrcj1tT2UsR2tyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLWFycm93IixpY29uOls1MTIsNTEyLFtdLCJmMTI0IiwiTTQ3Ny45IDc1LjVjNC41LTExLjggMS43LTI1LjItNy4yLTM0LjFzLTIyLjMtMTEuOC0zNC4xLTcuMmwtNDE2IDE2MEM3LjkgMTk5LS4zIDIxMS4yIDAgMjI0LjdzOS4xIDI1LjQgMjEuOSAyOS42bDE3Ni44IDU4LjkgNTguOSAxNzYuOGM0LjMgMTIuOCAxNi4xIDIxLjYgMjkuNiAyMS45czI1LjctNy45IDMwLjYtMjAuNWwxNjAtNDE2eiJdfSxZa3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2l0eSIsaWNvbjpbNTc2LDUxMixbMTI3OTYxXSwiZjY0ZiIsIk0zMjAgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMi00OCAwIDAtNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3Mi02NCAwIDAtNzJDOTYgMTAuNyA4NS4zIDAgNzIgMFM0OCAxMC43IDQ4IDI0bDAgNzRjLTI3LjYgNy4xLTQ4IDMyLjItNDggNjJMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAgMC0xMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRMMzIwIDB6bTY0IDExMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2em0tMTYgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHptMTYgMTEybDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6bTExMi0xNmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwek0yNTYgMzA0bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6TTI0MCAxOTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHpNMTI4IDMwNGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2ek0xMTIgMTkyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6Il19LEtrcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4LXJheSIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5NyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMzIwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0em0yODAgNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDAgMCA0OC04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDAgMCA0OC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDAgMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMCAwLTQ4IDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDAgMC00OCA2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwIDAtMTZ6Il19LFprcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bWJyZWxsYS1iZWFjaCIsaWNvbjpbNTEyLDUxMixbMTI3OTU4XSwiZjVjYSIsIk00OTcuNSAzNDEuMWMtNS45IDE2LjctMjUuMyAyMy00MS4xIDE1LjFsLTE3OC4yLTg5LjEtMS42IDMuMi04OC44IDE3Ny43IDI5Mi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDg0LjIgMCAxMDMuMi0yMDYuMyAxLjYtMy4yLTE2NS40LTgyLjdjLTE1LjgtNy45LTIyLjQtMjcuMy0xMi41LTQyIDQ1LjktNjguNiAxMjQuMS0xMTMuOCAyMTIuOS0xMTMuOCAxNDEuNCAwIDI1NiAxMTQuNiAyNTYgMjU2IDAgMjkuOC01LjEgNTguNS0xNC41IDg1LjF6Il19LGdPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC10by1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1pbiJdLCJmMDkwIiwiTTM1MiA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0tOS40IDE4Mi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wyNDIuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LFFrcj1nT2UsWGtyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWRzZXQiLGljb246WzQ0OCw1MTIsW10sImY1OTAiLCJNMjI0IDY0Yy03OSAwLTE0NC43IDU3LjMtMTU3LjcgMTMyLjcgOS4zLTMgMTkuMy00LjcgMjkuNy00LjdsMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwYy01MyAwLTk2LTQzLTk2LTk2bDAtNjRDMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0bDAgMTY4LjFjMCA2Ni4zLTUzLjggMTIwLTEyMC4xIDEyMGwtODcuOS0uMS0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAwIDQwIDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0yMC45Yy0xNC4xIDguMi0zMC41IDEyLjgtNDggMTIuOGwtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwYzEwLjQgMCAyMC4zIDEuNiAyOS43IDQuNy0xMy03NS4zLTc4LjYtMTMyLjctMTU3LjctMTMyLjd6Il19LEprcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGxvdGNoIixpY29uOls1MTIsNTEyLFtdLCJmNWJjIiwiTTIwOC41IDYyLjNsMjguMS0zNi45QzI0OC44IDkuNCAyNjcuOCAwIDI4OCAwIDMxNi41IDAgMzQxLjYgMTguNyAzNDkuOCA0NmwxNy44IDU5LjRjMTAuMyAzNC40IDM2LjEgNjIgNjkuOCA3NC42bDM5LjggMTQuOWMyMC45IDcuOSAzNC44IDI3LjkgMzQuOCA1MC4yIDAgMTYuOS03LjkgMzIuOC0yMS41IDQyLjlsLTY3LjMgNTAuNWMtMjQuMyAxOC4yLTM3LjIgNDcuOS0zMy44IDc4LjFsMi41IDIyLjdjNC4zIDM4LjctMjYgNzIuNi02NSA3Mi42LTE0LjggMC0yOS4zLTUuMS00MC45LTE0LjNsLTU1LjMtNDQuM2MtNC41LTMuNi05LjMtNi43LTE0LjUtOS4yLTE1LjgtNy45LTMzLjctMTAuNC01MS03LjNMODIuNCA0NTEuOWMtMzQuNiA2LjMtNjYuNC0yMC4zLTY2LjQtNTUuNCAwLTEzLjIgNC43LTI2IDEzLjEtMzYuMmwxMS4yLTEzLjRjMTQuNi0xNy40IDIyLjYtMzkuNCAyMi42LTYyLjEgMC0xOC44LTUuNS0zNy4yLTE1LjgtNTNMOC44IDE3My41QzMuMSAxNjQuNyAwIDE1NC40IDAgMTQzLjkgMCAxMTAuNSAzMC4xIDg1LjEgNjMgOTAuN2w1MS4zIDguN2MzNS45IDYuMSA3Mi4yLTguMiA5NC4yLTM3LjF6Il19LGJPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cC1sb25nIixpY29uOlszMjAsNTEyLFsibG9uZy1hcnJvdy1hbHQtdXAiXSwiZjMwYyIsIk0xMzcuNC0yMi42YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDEyOCAxMjhjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzAwLjkgMTYwIDI4OCAxNjBsLTY0IDAgMCAzMzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzM2LTY0IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhTLjIgMTE0LjUgOS40IDEwNS40bDEyOC0xMjh6Il19LGVTcj1iT2UsdFNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24tbm9kZXMiLGljb246WzQ0OCw1MTIsW10sImU2OTkiLCJNMjQ4IDEwNi42YzE4LjktOSAzMi0yOC4zIDMyLTUwLjZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMi44IDEuMy01LjUgMi45LTggNC43bC04MC4xLTQ1LjhjMS42LTIwLjgtOC42LTQxLjYtMjcuOS01Mi44QzU3LjIgOTYgMjMgMTA1LjIgNy41IDEzMlMxLjIgMTkzIDI4IDIwOC41YzEuMyAuOCAyLjYgMS41IDQgMi4xbDAgOTAuOGMtMS4zIC42LTIuNyAxLjMtNCAyLjFDMS4yIDMxOS04IDM1My4yIDcuNSAzODBTNTcuMiA0MTYgODQgNDAwLjVjMTkuMy0xMS4xIDI5LjQtMzIgMjcuOC01Mi44bDUwLjUtMjguOWMtMTEuNS0xMS4yLTE5LjktMjUuNi0yMy44LTQxLjdMODggMzA2LjFjLTIuNi0xLjgtNS4yLTMuMy04LTQuN2wwLTkwLjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtLjEgMS40LS4yIDIuOC0uMiA0LjNjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMTguOSA5LTMyIDI4LjMtMzIgNTAuNmMwIDMwLjkgMjUuMSA1NiA1NiA1NnM1Ni0yNS4xIDU2LTU2YzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4LjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtMS42IDIwLjggOC42IDQxLjYgMjcuOCA1Mi44YzI2LjggMTUuNSA2MSA2LjMgNzYuNS0yMC41czYuMy02MS0yMC41LTc2LjVjLTEuMy0uOC0yLjctMS41LTQtMi4xbDAtOTAuOGMxLjQtLjYgMi43LTEuMyA0LTIuMWMyNi44LTE1LjUgMzYtNDkuNyAyMC41LTc2LjVTMzkwLjggOTYgMzY0IDExMS41Yy0xOS4zIDExLjEtMjkuNCAzMi0yNy44IDUyLjhsLTUwLjYgMjguOWMxMS41IDExLjIgMTkuOSAyNS42IDIzLjggNDEuN0wzNjAgMjA1LjljMi42IDEuOCA1LjIgMy4zIDggNC43bDAgOTAuOGMtMi44IDEuMy01LjUgMi45LTggNC42bC04MC4xLTQ1LjhjLjEtMS40IC4yLTIuOCAuMi00LjNjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOHoiXX0sa3VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imhvc3BpdGFsIixpY29uOls1NzYsNTEyLFsxMjc5NzMsNjI1ODksImhvc3BpdGFsLWFsdCIsImhvc3BpdGFsLXdpZGUiXSwiZjBmOCIsIk0xMjggNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAwLTY0ek0yNzIgMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDgwIDk2IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMHpNMTI4IDM2OGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek0xMTIgMjU2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTUxMiAzNjhsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwek0yNjQgMTA0bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMiAzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxyU3I9a3VlLGFTcj1rdWUsaVNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oYXJhc3NpbmciLGljb246WzU3Niw1MTIsW10sImU1NDkiLCJNMTkyIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNTkuNCAzMDQuNUw4OCAyNTYuOSA4OCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDQuNyA0Ny40IDU3LjFjMTEuMyAxMy42IDMxLjUgMTUuNSA0NS4xIDQuMnMxNS41LTMxLjUgNC4yLTQ1LjFsLTczLjctODguOWMtMTguMi0yMi00NS4zLTM0LjctNzMuOS0zNC43bC0zNS45IDBjLTMzLjcgMC02NC45IDE3LjctODIuMyA0Ni42bC01OC4zIDk3Yy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45ek00ODAgMjQwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQ2NCAzNDRsMCA1OC43LTQxLjQtNDEuNGMtNy4zLTcuMy0xNy42LTEwLjYtMjcuOC05cy0xOC45IDguMS0yMy41IDE3LjNsLTQ4IDk2Yy03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsMjguMS01Ni4zIDU0LjcgNTQuN2MxMi40IDEyLjQgMjkuMSAxOS4zIDQ2LjYgMTkuMyAzNi40IDAgNjUuOS0yOS41IDY1LjktNjUuOUw1NzYgMzQ0YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2ek0yODggNDhjMCA4LjggNy4yIDE2IDE2IDE2bDU2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLS44IDQ5LjdjLTcuOS00LTE3LjUtLjctMjEuNSA3LjJzLS43IDE3LjUgNy4yIDIxLjVsNDggMjRjNy45IDQgMTcuNSAuNyAyMS41LTcuMnMuNy0xNy41LTcuMi0yMS41bC00OC0yNHoiXX0sc1NyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJlbmQtdXAiLGljb246WzUxMiw1MTIsW10sImU1MjkiLCJNNDgwIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRMMzU0LjItMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDMuOSAwLTExMS4zIDExMS4zLTk1LjEtODEuNWMtOS03LjctMjIuMi03LjctMzEuMiAwbC0xMTIgOTZjLTEwLjEgOC42LTExLjIgMjMuOC0yLjYgMzMuOHMyMy44IDExLjIgMzMuOCAyLjZsOTYuNC04Mi42IDk2LjQgODIuNmM5LjUgOC4yIDIzLjcgNy42IDMyLjYtMS4zbDEyNy0xMjcgMCA0My45YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRMNDgwIDh6TTQ4IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNjBjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMjU2em00Ny4zIDU2Yy0zLjQgMjAuMS0xOS4yIDM2LTM5LjQgMzkuNC00LjQgLjctOC0yLjktOC03LjNsMC0zMmMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4LjEgMy42IDcuMyA4em0wIDE0NC4xYy43IDQuNC0yLjkgOC03LjMgOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtMzJjMC00LjQgMy42LTguMSA4LTcuMyAyMC4xIDMuNCAzNiAxOS4yIDM5LjQgMzkuNHpNNDU2IDQxNi43YzQuNC0uNyA4IDIuOSA4IDcuM2wwIDMyYzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC4xLTMuNi03LjMtOCAzLjQtMjAuMSAxOS4yLTM2IDM5LjQtMzkuNHpNNDE2LjcgMzEyYy0uNy00LjQgMi45LTggNy4zLThsMzIgMGM0LjQgMCA4IDMuNiA4IDhsMCAzMmMwIDQuNC0zLjYgOC4xLTggNy4zLTIwLjEtMy40LTM2LTE5LjItMzkuNC0zOS40ek0xOTIgMzg0YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0seE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1ydWxlciIsaWNvbjpbNTEyLDUxMixbInBlbmNpbC1ydWxlciJdLCJmNWFlIiwiTTQwNCAwYzE5LjIgMCAzNy42IDcuNiA1MS4xIDIxLjJsMzUuNyAzNS43QzUwNC40IDcwLjQgNTEyIDg4LjggNTEyIDEwOHMtNy42IDM3LjYtMjEuMiA1MS4xTDQ0NS45IDIwNCAzMDggNjYuMSAzNTIuOSAyMS4yQzM2Ni40IDcuNiAzODQuOCAwIDQwNCAwek01OC45IDMxNS4xTDI3NC4xIDEwMCA0MTIgMjM3LjkgMTk2LjkgNDUzLjFjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTExLjFjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4ycy04LjUtMTUuMS02LjItMjMuNEwzNi40IDM1My44YzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4Ljd6TTIyNS40IDgwLjhMODAuOCAyMjUuNCAxMS43IDE1Ni4zYy0xNS42LTE1LjYtMTUuNi00MC45IDAtNTYuNmw4OC04OGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMGw1LjkgNS45LTU2LjMgNTYuM2MtNy44IDcuOC03LjggMjAuNSAwIDI4LjNzMjAuNSA3LjggMjguMyAwbDU2LjMtNTYuMyAzNC45IDM0Ljl6TTQzMS4yIDI4Ni42bDM0LjkgMzQuOS01Ni4zIDU2LjNjLTcuOCA3LjgtNy44IDIwLjUgMCAyOC4zczIwLjUgNy44IDI4LjMgMGw1Ni4zLTU2LjMgNS45IDUuOWMxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNmwtODggODhjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwbC02OS4xLTY5LjEgMTQ0LjYtMTQ0LjZ6Il19LG5Tcj14T2Usb1NyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcGVhdCIsaWNvbjpbNTEyLDUxMixbMTI4MjU3XSwiZjM2MyIsIk00NzAuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzM1MiAxOS4xIDM1MiAzMmwwIDMyLTE2MCAwQzg2IDY0IDAgMTUwIDAgMjU2IDAgMjczLjcgMTQuMyAyODggMzIgMjg4czMyLTE0LjMgMzItMzJjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsMTYwIDAgMCAzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0ek00MS40IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOVMxNjAgNDkyLjkgMTYwIDQ4MGwwLTMyIDE2MCAwYzEwNiAwIDE5Mi04NiAxOTItMTkyIDAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0xNjAgMCAwLTMyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC02NCA2NHoiXX0sbFNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbmUiLGljb246WzY0MCw1MTIsWzEyOTQ2MF0sImY1ZDciLCJNMTk3LjQgMTYwYy0zLjkgMC03LjItMi44LTguMS02LjYtMTAuMi00Mi4xLTQ4LjEtNzMuNC05My4zLTczLjQtNTMgMC05NiA0My05NiA5NiAwIDI5LjEgMTIuOSA1NS4xIDMzLjMgNzIuNyA0LjMgMy43IDQuMyAxMC44IDAgMTQuNS0yMC40IDE3LjYtMzMuMyA0My43LTMzLjMgNzIuNyAwIDUzIDQzIDk2IDk2IDk2IDQ1LjIgMCA4My4xLTMxLjMgOTMuMy03My40IC45LTMuOCA0LjItNi42IDguMS02LjZsMjQ1LjEgMGMzLjkgMCA3LjIgMi44IDguMSA2LjYgMTAuMiA0Mi4xIDQ4LjEgNzMuNCA5My4zIDczLjQgNTMgMCA5Ni00MyA5Ni05NiAwLTI5LjEtMTIuOS01NS4xLTMzLjMtNzIuNy00LjMtMy43LTQuMy0xMC44IDAtMTQuNSAyMC40LTE3LjYgMzMuMy00My43IDMzLjMtNzIuNyAwLTUzLTQzLTk2LTk2LTk2LTQ1LjIgMC04My4xIDMxLjMtOTMuMyA3My40LS45IDMuOC00LjIgNi42LTguMSA2LjZsLTI0NS4xIDB6Il19LHZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWZsYW1lLWN1cnZlZCIsaWNvbjpbMzg0LDUxMixbImZpcmUtYWx0Il0sImY3ZTQiLCJNMTUzLjYgMjkuOWwxNi0yMS4zQzE3My42IDMuMiAxODAgMCAxODYuNyAwIDE5OC40IDAgMjA4IDkuNiAyMDggMjEuM2wwIDIyLjFjMCAxMy4xIDUuNCAyNS43IDE0LjkgMzQuN0wzMDcuNiAxNTlDMzU2LjQgMjA1LjYgMzg0IDI3MC4yIDM4NCAzMzcuNyAzODQgNDM0IDMwNiA1MTIgMjA5LjcgNTEyTDE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwbDAtMy44YzAtNDguOCAxOS40LTk1LjYgNTMuOS0xMzAuMWwzLjUtMy41YzQuMi00LjIgMTAtNi42IDE2LTYuNiAxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNkw5NiAyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTMuOWMwLTE4LTcuMi0zNS4zLTE5LjktNDhsLTM4LjYtMzguNmMtMjQtMjQtMzcuNS01Ni43LTM3LjUtOTAuNyAwLTI3LjcgOS01NC44IDI1LjYtNzYuOXoiXX0sY1NyPXZPZSx5T2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzLXNpbXBsZSIsaWNvbjpbNDQ4LDUxMixbImJ1cy1hbHQiXSwiZjU1ZSIsIk05NiAwQzQzIDAgMCA0MyAwIDk2TDAgMzg0YzAgMjkuOCAyMC40IDU0LjkgNDggNjJsMCAzNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMTkyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzRjMjcuNi03LjEgNDgtMzIuMiA0OC02MmwwLTI4OGMwLTUzLTQzLTk2LTk2LTk2TDk2IDB6TTY0IDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NnpNOTYgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjU2IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxkU3I9eU9lLHVTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZW51cy1tYXJzIixpY29uOls2NDAsNTEyLFs5ODkyXSwiZjIyOCIsIk00ODAtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyUzQ2Mi4zIDAgNDgwIDBMNTMwLjcgMCA0NzQgNTYuN2MtMjYuMy0xNS43LTU3LjEtMjQuNy05MC0yNC43LTM1LjQgMC02OC40IDEwLjUtOTYgMjguNS0yNy42LTE4LTYwLjYtMjguNS05Ni0yOC41LTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45YzIzLjMtNC4zIDQ0LjktMTMuMSA2NC0yNS42IDI3LjYgMTggNjAuNiAyOC41IDk2IDI4LjUgOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzYgMC00MS4xLTE0LjEtNzktMzcuOC0xMDlMNTc2IDQ1LjMgNTc2IDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMNDgwLTY0ek0zMzYgMzA5LjJjMjAuMi0yOC42IDMyLTYzLjUgMzItMTAxLjJzLTExLjgtNzIuNi0zMi0xMDEuMmMxNC42LTYuOSAzMC44LTEwLjggNDgtMTAuOCA2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM0NDUuOSAzMjAgMzg0IDMyMGMtMTcuMiAwLTMzLjUtMy45LTQ4LTEwLjh6TTI4OCAxNTAuM2MxMC4yIDE2LjkgMTYgMzYuNiAxNiA1Ny43cy01LjggNDAuOS0xNiA1Ny43Yy0xMC4yLTE2LjktMTYtMzYuNi0xNi01Ny43czUuOC00MC45IDE2LTU3Ljd6bS00OC00My41Yy0yMC4yIDI4LjYtMzIgNjMuNS0zMiAxMDEuMnMxMS44IDcyLjYgMzIgMTAxLjJjLTE0LjUgNi45LTMwLjggMTAuOC00OCAxMC44LTYxLjkgMC0xMTItNTAuMS0xMTItMTEyUzEzMC4xIDk2IDE5MiA5NmMxNy4yIDAgMzMuNSAzLjkgNDggMTAuOHoiXX0scFNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJsZW5kZXIiLGljb246WzUxMiw1MTIsW10sImY1MTciLCJNMCA1NkMwIDI1LjEgMjUuMSAwIDU2IDBMNDM3LjYgMGMyMS4zIDAgMzYuNiAyMC4zIDMwLjggNDAuOEw0NTcuMSA4MCAzNDQgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTkuNCAwLTE4LjMgNjQtODEuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjQgMC0yNy40IDk2LTI1NiAwLTkuMS05Ni02Mi45IDBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgNTZ6TTExNC4zIDE5MkwxMDAuNiA0OCA1NiA0OGMtNC40IDAtOCAzLjYtOCA4bDAgMTI4YzAgNC40IDMuNiA4IDggOGw1OC4zIDB6TTEzNiAzODRsMjQwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQwIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6bTEyMCA4OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LGZTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1IixpY29uOlszODQsNTEyLFsxMTddLCI1NSIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIyNGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4bDAtMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyMjRjMCAxMDYtODYgMTkyLTE5MiAxOTJTMCAzOTQgMCAyODhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnoiXX0sWl89e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUiLGljb246WzUxMiw1MTIsWyJtYWlsLWZvcndhcmQiXSwiZjA2NCIsIk0zMDcuOCAxOC40Yy0xMiA1LTE5LjggMTYuNi0xOS44IDI5LjZsMCA4MC0xMTIgMGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCAxMTMuMyA4MS41IDE2My45IDEwMC4yIDE3NC4xIDIuNSAxLjQgNS4zIDEuOSA4LjEgMS45IDEwLjkgMCAxOS43LTguOSAxOS43LTE5LjcgMC03LjUtNC4zLTE0LjQtOS44LTE5LjUtOS40LTguOC0yMi4yLTI2LjQtMjIuMi01Ni43IDAtNTMgNDMtOTYgOTYtOTZsOTYgMCAwIDgwYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02Ljl6Il19LGhTcj1aXyx3T2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUtZmxpcCIsaWNvbjpbNTEyLDUxMixbMTI4MzgxLCJwaG9uZS1hbHQiXSwiZjg3OSIsIk0zNTEuOCAyNWM3LjgtMTguOCAyOC40LTI4LjkgNDguMS0yMy41bDUuNSAxLjVjNjQuNiAxNy42IDExOS44IDgwLjIgMTAzLjcgMTU2LjQtMzcuMSAxNzUtMTc0LjggMzEyLjctMzQ5LjggMzQ5LjgtNzYuMyAxNi4yLTEzOC44LTM5LjEtMTU2LjQtMTAzLjdsLTEuNS01LjVjLTUuNC0xOS43IDQuNy00MC4zIDIzLjUtNDguMWw5Ny4zLTQwLjVjMTYuNS02LjkgMzUuNi0yLjEgNDcgMTEuOGwzOC42IDQ3LjJjNzAuMy0zNC45IDEyNi44LTkzLjMgMTU5LjMtMTY0LjlsLTQ0LjEtMzYuMWMtMTMuOS0xMS4zLTE4LjYtMzAuNC0xMS44LTQ3TDM1MS44IDI1eiJdfSxtU3I9d09lLGdTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQtcG9ydGFibGUiLGljb246WzMyMCw1MTIsW10sImU1ODMiLCJNMCA2NGwwIDE2IDMyMCAwIDAtMTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMEMyOC43IDAgMCAyOC43IDAgNjR6bTI0IDY0TDAgMTI4IDAgNDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04IDIyNCAwIDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzYwLTI5NiAwem0yMjQgOTZsMjQgMCAwIDk2LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LGJTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcHJlZ25hbnQiLGljb246WzM4NCw1MTIsW10sImUzMWUiLCJNMTkyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem04MCAzMjEuMmM4LjYtNC41IDE2LjgtMTAgMjQuMy0xNi41bDQtMy40YzIyLjYtMTkuNCAzNS43LTQ3LjcgMzUuNy03Ny42IDAtMzUuOS0xOC44LTY5LjEtNDkuNi04Ny42bC0zMC40LTE4LjIgMC0xLjhjMC00Ni41LTM3LjctODQuMS04NC4xLTg0LjEtMjguMSAwLTU0LjQgMTQuMS03MCAzNy41TDIxLjQgMjcwLjJjLTkuOCAxNC43LTUuOCAzNC42IDguOSA0NC40czM0LjYgNS44IDQ0LjQtOC45bDI5LTQzLjUtMzAuNSAxMTMuNWMtMi42IDkuNi0uNiAxOS45IDUuNSAyNy44Uzk0IDQxNiAxMDQgNDE2bDggMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMC44eiJdfSx4U3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVzcy10aGFuIixpY29uOls1MTIsNTEyLFs2Mjc3NF0sIjNjIiwiTTQ3Ny4xIDUwLjZjNy40IDE2IC40IDM1LjEtMTUuNiA0Mi41TDEwOC40IDI1NiA0NjEuNCA0MTljMTYgNy40IDIzIDI2LjQgMTUuNiA0Mi41cy0yNi40IDIzLTQyLjUgMTUuNmwtNDE2LTE5MkM3LjMgMjc5LjggMCAyNjguNSAwIDI1NlM3LjMgMjMyLjIgMTguNiAyMjdsNDE2LTE5MmMxNi03LjQgMzUuMS0uNCA0Mi41IDE1LjZ6Il19LHZTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdXBlcnNjcmlwdCIsaWNvbjpbNTc2LDUxMixbXSwiZjEyYiIsIk01NDQgMzJjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRsLTMyIDE2QzQ0OS45IDI3LjMgNDQzLjUgNDYuNSA0NTEuNCA2Mi4zIDQ1NyA3My41IDQ2OC4zIDgwIDQ4MCA4MGwwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMjh6TTk2IDY0Qzc4LjMgNjQgNjQgNzguMyA2NCA5NnMxNC4zIDMyIDMyIDMybDE1LjMgMCA4OS42IDEyOC04OS42IDEyOC0xNS4zIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMxMC40IDAgMjAuMi01LjEgMjYuMi0xMy42TDI0MCAzMTEuOCAzMjUuOCA0MzQuNGM2IDguNiAxNS44IDEzLjYgMjYuMiAxMy42bDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1LjMgMC04OS42LTEyOCA4OS42LTEyOCAxNS4zIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTEwLjQgMC0yMC4yIDUuMS0yNi4yIDEzLjZMMjQwIDIwMC4yIDE1NC4yIDc3LjZDMTQ4LjIgNjkuMSAxMzguNCA2NCAxMjggNjRMOTYgNjR6Il19LGtPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtc3RvcCIsaWNvbjpbNTEyLDUxMixbNjIwOTQsInN0b3AtY2lyY2xlIl0sImYyOGQiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAxNjBsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0seVNyPWtPZSxTT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXVwLWRvd24iLGljb246WzI1Niw1MTIsWyJhcnJvd3MtdiJdLCJmMDdkIiwiTTE1MC42LTIyLjZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiA3Ny4zIDk2IDQzNC43IDU0LjYgMzkzLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzYgNiAxNC4xIDkuNCAyMi42IDkuNHMxNi42LTMuNCAyMi42LTkuNGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNDEuNCA0MS40IDAtMzU3LjUgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2eiJdfSx3U3I9U09lLE1PZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb28tc3Rvcm0iLGljb246WzUxMiw1MTIsWyJwb28tYm9sdCJdLCJmNzVhIiwiTTI2OC45LTMxLjhjLTUuNS0uNy0xMSAxLjQtMTQuNSA1LjdzLTQuNiAxMC4xLTIuOCAxNS4zYzIuOCA4LjIgNC4zIDE2LjkgNC4zIDI2LjEgMCAyMS43LTguNSAzNy4yLTIxLjkgNDcuNi0xMy45IDEwLjgtMzQuMSAxNy01OC4xIDE3bC0yNCAwYy00OC42IDAtODggMzkuNC04OCA4OCAwIDE0LjggMy43IDI4LjggMTAuMiA0MS4xLTQyIDYuNi03NC4yIDQzLTc0LjIgODYuOSAwIDQ2LjYgMzYuMiA4NC43IDgxLjkgODcuOCAzLjEtMTIuNCA5LjktMjMuOCAxOS42LTMyLjVMMjQyLjcgMjI1YzEyLjItMTAuOSAyOC0xNyA0NC40LTE3IDQ0LjYgMCA3Ni41IDQzIDYzLjcgODUuN2wtMTIuNyA0Mi40YzI4LjggMS4yIDUyLjcgMjEuMSA1OS44IDQ3LjlsMjYuMiAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4IDAtNDMuOS0zMi4xLTgwLjMtNzQuMi04Ni45IDYuNS0xMi4zIDEwLjItMjYuMiAxMC4yLTQxLjEgMC00OC42LTM5LjQtODgtODgtODhsLTkuNCAwYy45LTUuNCAxLjQtMTAuOSAxLjQtMTYuNiAwLTQ4LjctMzYuMS04OC45LTgzLjEtOTUuMnpNMTQ0LjYgNDE2bDYxLjggMC0zMS4yIDEwNC4xYy0zLjYgMTEuOSA1LjMgMjMuOSAxNy44IDIzLjkgNC42IDAgOS0xLjcgMTIuNC00LjdMMzQ2LjUgNDEyLjljMy41LTMuMSA1LjUtNy42IDUuNS0xMi40IDAtOS4yLTcuNC0xNi42LTE2LjYtMTYuNmwtNjEuOCAwIDMxLjItMTA0LjFjMy42LTExLjktNS4zLTIzLjktMTcuOC0yMy45LTQuNiAwLTkgMS43LTEyLjQgNC43TDEzMy41IDM4Ny4xYy0zLjUgMy4xLTUuNSA3LjYtNS41IDEyLjQgMCA5LjIgNy40IDE2LjYgMTYuNiAxNi42eiJdfSxrU3I9TU9lLFNTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWRlby1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjRlMiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNTMtMTUzIDAtMjIyLjJjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTI5LjggNjQgNDEtMjQuOXpNMzIgMTI4bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzcuOCAwIDE1LjMtMS40IDIyLjItNEwzNiAxMDUuOGMtMi42IDYuOS00IDE0LjQtNCAyMi4yek00NjQgMzM2bDczLjUgNTguOGM0LjIgMy40IDkuNCA1LjIgMTQuOCA1LjIgMTMuMSAwIDIzLjctMTAuNiAyMy43LTIzLjdsMC0yNDAuNmMwLTEzLjEtMTAuNi0yMy43LTIzLjctMjMuNy01LjQgMC0xMC42IDEuOC0xNC44IDUuMkw0NjQgMTc2IDQ2NCAzMzZ6Il19LFN1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUteG1hcmsiLGljb246WzQ0OCw1MTIsWzEwMDYyLCJ0aW1lcy1zcXVhcmUiLCJ4bWFyay1zcXVhcmUiXSwiZjJkMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LE1Tcj1TdWUsQ1NyPVN1ZSxDT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWRyb3BsZXQiLGljb246WzU3Niw1MTIsWyJoYW5kLWhvbGRpbmctd2F0ZXIiXSwiZjRjMSIsIk0yNzUuNSA2LjZMMjA5LjIgMTAzQzE5OCAxMTkuMyAxOTIgMTM4LjYgMTkyIDE1OC4zbDAgMS43YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xLjdjMC0xOS44LTYtMzktMTcuMi01NS4zTDMwMC41IDYuNkMyOTcuNyAyLjUgMjkzIDAgMjg4IDBzLTkuNyAyLjUtMTIuNSA2LjZ6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSx6U3I9Q09lLE11ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3b24tc2lnbiIsaWNvbjpbNTEyLDUxMixbODM2MSwia3J3Iiwid29uIl0sImYxNTkiLCJNNjIuNCA1My45QzU2LjggMzcuMSAzOC43IDI4LjEgMjEuOSAzMy42Uy0zLjkgNTcuNCAxLjcgNzQuMUw1Ni45IDI0MCAzMiAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAuOSAwIDU2LjcgMTcwLjFjNC41IDEzLjUgMTcuNCAyMi40IDMxLjYgMjEuOXMyNi40LTEwLjQgMjkuOC0yNC4yTDIzMyAyODggMjc5IDI4OCAzMjEgNDU1LjhjMy40IDEzLjggMTUuNiAyMy43IDI5LjggMjQuMnMyNy4xLTguNCAzMS42LTIxLjlMNDM5LjEgMjg4IDQ4MCAyODhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0LjkgMCA1NS4zLTE2NS45YzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC02MiAxODYuMS01NC42IDAtNDUuOS0xODMuOEMyODMuNSA0MiAyNzAuNyAzMiAyNTYgMzJzLTI3LjUgMTAtMzEgMjQuMkwxNzkgMjQwIDEyNC40IDI0MCA2Mi40IDUzLjl6bTc4IDIzNC4xbDI2LjYgMC0xMS40IDQ1LjYtMTUuMi00NS42ek0yNDUgMjQwbDExLTQ0LjEgMTEgNDQuMS0yMiAwem0xMDAgNDhsMjYuNiAwLTE1LjIgNDUuNi0xMS40LTQ1LjZ6Il19LF9Tcj1NdWUsVFNyPU11ZSxMU3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib2JqZWN0LXVuZ3JvdXAiLGljb246WzY0MCw1MTIsW10sImYyNDgiLCJNMzIgMTE5LjRDMTIuOSAxMDguNCAwIDg3LjcgMCA2NCAwIDI4LjcgMjguNyAwIDY0IDAgODcuNyAwIDEwOC40IDEyLjkgMTE5LjQgMzJsMjA5LjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDExMy4xYzE5LjEgMTEuMSAzMiAzMS43IDMyIDU1LjQgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTExMy4xek0xMTkuNCA5NmMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40bDAgMTEzLjFjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDIwOS4xIDBjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40bDAtMTEzLjFjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNEwxMTkuNCA5NnpNNTQ0IDI3OS40Yy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRsLTI5LjIgMGMtNS4zLTE3LjctMTQuOC0zMy41LTI3LjQtNDYuNGwwLTE3LjYgNTYuNiAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTIwOS4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjQuNiA2NCAwIDAgMjQuNmM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjA5LjEgMGM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRsMC0xMTMuMXoiXX0sRFNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQiLGljb246WzUxMiw1MTIsWzEyODQ4OSw2MTY2OV0sImYwNzUiLCJNNTEyIDI0MGMwIDEzMi41LTExNC42IDI0MC0yNTYgMjQwLTM3LjEgMC03Mi4zLTcuNC0xMDQuMS0yMC43TDMzLjUgNTEwLjFjLTkuNCA0LTIwLjIgMS43LTI3LjEtNS44Uy0yIDQ4NS44IDIuOCA0NzYuOGw0OC44LTkyLjJDMTkuMiAzNDQuMyAwIDI5NC4zIDAgMjQwIDAgMTA3LjUgMTE0LjYgMCAyNTYgMFM1MTIgMTA3LjUgNTEyIDI0MHoiXX0sJFNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpbGwtYXZhbGFuY2hlIixpY29uOls1NzYsNTEyLFtdLCJlNTA3IiwiTTQ0MC4xIDQwMS45YzM0LjIgMjMuMSA4MS4xIDE5LjUgMTExLjQtMTAuOCAzNC40LTM0LjQgMzQuNC05MC4xIDAtMTI0LjUtMjcuOC0yNy44LTY5LjUtMzMuMS0xMDIuNi0xNi0xMS44IDYuMS0xNi40IDIwLjYtMTAuMyAzMi4zczIwLjYgMTYuNCAzMi4zIDEwLjNjMTUuMS03LjggMzQtNS4zIDQ2LjYgNy4zIDE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42cy00MC45IDE1LjYtNTYuNiAwbC04MS43LTgxLjdjMjIuMy0xNC4yIDM3LjEtMzkuMSAzNy4xLTY3LjUgMC0zMy45LTIxLjEtNjIuOS01MC45LTc0LjUgMS45LTYuOCAyLjktMTQgMi45LTIxLjUgMC00NC4yLTM1LjgtODAtODAtODAtMjcuMyAwLTUxLjUgMTMuNy02NS45IDM0LjYtNS44LTIwLTI0LjItMzQuNi00Ni4xLTM0LjYtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA0IC41IDcuOSAxLjQgMTEuNkw0NDAuMSA0MDEuOXpNNDgwLjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMCAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek02OC43IDg3QzQzLjUgNjEuOCAuNCA3OS43IC40IDExNS4zTC40IDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMTYuNyAwYzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zTDY4LjcgODd6Il19LEFTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdG8tZXllIixpY29uOls2NDAsNTEyLFtdLCJlNGJmIiwiTTE3NiA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDM4LjEtNjMtNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUzIxLjcgNTUuNiAzMSA2NWw2MyA2My0zOC4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTk2em0wIDQwMGwwLTk2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDM4LjEgMC02MyA2M2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDYzLTYzIDAgMzguMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0em0zMTIgMjRjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0zOC4xIDYzIDYzYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjMtNjMgMzguMSAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0ek00NjQgNTZsMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zOC4xIDAgNjMtNjNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNjMgNjMgMC0zOC4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0ek0zMjAgMTIwYy01Ny4zIDAtOTkuNCAzNC0xMjUuNiA2NC4zLTIwIDIzLjEtMzIuNCA0NS44LTM3LjYgNTYuMS0yLjUgNS00LjkgOS43LTQuOSAxNS42czIuMyAxMC42IDQuOSAxNS42YzUuMiAxMC4zIDE3LjYgMzMgMzcuNiA1Ni4xIDI2LjIgMzAuMyA2OC4yIDY0LjMgMTI1LjYgNjQuM3M5OS40LTM0IDEyNS42LTY0LjNjMjAtMjMuMSAzMi40LTQ1LjggMzcuNi01Ni4xIDIuNS01IDQuOS05LjcgNC45LTE1LjZzLTIuMy0xMC42LTQuOS0xNS42Yy01LjItMTAuMy0xNy42LTMzLTM3LjYtNTYuMS0yNi4yLTMwLjMtNjguMi02NC4zLTEyNS42LTY0LjN6TTI1NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSxFU3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic25vd3Bsb3ciLGljb246WzY0MCw1MTIsW10sImY3ZDIiLCJNMTI4IDE2MGwwLTk2YzAtMzUuMyAyOC43LTY0IDY0LTY0TDI5Ni40IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsODcuNiAxNzUuMWM0LjQgOC45IDYuOCAxOC43IDYuOCAyOC42bDAgNTYuOSA4MCAwIDAtODBjMC00OC42IDM5LjQtODggODgtODggMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgMjA4YzAgMjIuMSAxNy45IDQwIDQwIDQwIDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy00OC42IDAtODgtMzkuNC04OC04OGwwLTgwLTYzIDBjOS41IDE2LjUgMTUgMzUuNiAxNSA1NiAwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMjI0IDBjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyIDAtMzAuNSAxMi4yLTU4LjIgMzItNzguNEw2NCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6bTkxLjcgMzQuOWw0My42IDI5LjEgMTEzLjIgMC04MC0xNjAtMTA0LjQgMCAwIDEwOC44IDI3LjcgMjIuMXpNNDE2IDQwMGMwLTI2LjUtMjEuNS00OC00OC00OGwtMjI0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6bS0yODAgMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yMTYtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yMzIgNDAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LElTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1nYW50dCIsaWNvbjpbNTEyLDUxMixbXSwiZTBlNCIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQwMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MDAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCA0MTZjLTguOCAwLTE2LTcuMi0xNi0xNkw2NCA2NHptOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwem02NCAxMTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwek0zODQgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6Il19LHpPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWRlbyIsaWNvbjpbNTc2LDUxMixbInZpZGVvLWNhbWVyYSJdLCJmMDNkIiwiTTk2IDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw5NiA2NHpNNDY0IDMzNmw3My41IDU4LjhjNC4yIDMuNCA5LjQgNS4yIDE0LjggNS4yIDEzLjEgMCAyMy43LTEwLjYgMjMuNy0yMy43bDAtMjQwLjZjMC0xMy4xLTEwLjYtMjMuNy0yMy43LTIzLjctNS40IDAtMTAuNiAxLjgtMTQuOCA1LjJMNDY0IDE3NiA0NjQgMzM2eiJdfSxQU3I9ek9lLE5Tcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1wYXduIixpY29uOlszODQsNTEyLFs5ODIzXSwiZjQ0MyIsIk0xOTItMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAyNy04LjkgNTEuOS0yNCA3MiAxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTAuNyAwIDI2LjcgMTYwIDU2LjIgNzAuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUw1MS41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMODAgMzg0IDEwNi43IDIyNCA5NiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjLTE1LjEtMjAuMS0yNC00NS0yNC03MiAwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHoiXX0sT1NyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN5bmFnb2d1ZSIsaWNvbjpbNTc2LDUxMixbMTI4MzMzXSwiZjY5YiIsIk0xNiA4MGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgMzItMTI4IDAgMC0zMnptMCAzNjhsMC0yODggMTI4IDAgMTI2LjItODQuMmMxMC43LTcuMiAyNC44LTcuMiAzNS41IDBsMTI2LjIgODQuMiAxMjggMCAwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0ek01NjAgMTEybC0xMjggMCAwLTMyYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMnpNMjI0IDM4NGwwIDgwIDEyOCAwIDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjR6bTY0LTE1MmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LFJTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU0ZDIiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sRlNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXBsdXMiLGljb246WzQ0OCw1MTIsW10sImYyNzEiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sX09lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWVsY2hhaXItbW92ZSIsaWNvbjpbNDQ4LDUxMixbIndoZWVsY2hhaXItYWx0Il0sImUyY2UiLCJNMzEyIDU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMjA1LjQgMTI0LjFjLTYuNC01LjItMTUuNi00LjctMjEuNCAxLjFsLTMzLjQgMzMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTM4LjggODBjMjktMjkgNzUuMi0zMS40IDEwNy01LjVsODEuMyA2NmMyMS40IDE3LjQgMjMuOCA0OS4yIDUuMiA2OS41bC00MS44IDQ2IDk4IDBjMzAuMyAwIDUzIDI3LjcgNDcuMSA1Ny40TDQwNy40IDQ1NC4zYy0zLjUgMTcuMy0yMC4zIDI4LjYtMzcuNyAyNS4xcy0yOC42LTIwLjMtMjUuMS0zNy43TDM2OSAzMjAgMzE2LjggMzIwYzIuMSAxMC4zIDMuMiAyMSAzLjIgMzIgMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0NDAuNCAwIDM1MiA3MS42IDE5MiAxNjAgMTkyYzYgMCAxMS45IC4zIDE3LjggMWw1MC40LTUwLjQtMjIuNy0xOC41ek0xNjAgNDQ4YTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyeiJdfSxCU3I9X09lLEhTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZjUwNSIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDAgMC0yNDAgMTIwIDEyMCAwIDEgMCAwIDI0MHptLTI5LjcgNTZDOTUuOCAzMDQgMTYgMzgzLjggMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMjUxLjUgMEMyNjEgNDY5LjQgMjQwIDQxNC41IDI0MCAzNTYuNGwwLTMxLjFjMC03LjMgMS0xNC41IDIuOS0yMS4zbC00OC42IDB6bTI1MSAxODQuNWwtMTMuMyA2LjMgMC0xODguMSA5NiAzMiAwIDE5LjZjMCA1NS44LTMyLjIgMTA2LjUtODIuNyAxMzAuM3pNNDIxLjkgMjU5LjVsLTExMiAzNy4zYy0xMy4xIDQuNC0yMS45IDE2LjYtMjEuOSAzMC40bDAgMzEuMWMwIDc0LjQgNDMgMTQyLjEgMTEwLjIgMTczLjdsMTguNSA4LjdjNC44IDIuMiAxMCAzLjQgMTUuMiAzLjRzMTAuNS0xLjIgMTUuMi0zLjRsMTguNS04LjdDNTMzIDUwMC4zIDU3NiA0MzIuNiA1NzYgMzU4LjJsMC0zMS4xYzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC0xMTItMzcuM2MtNi42LTIuMi0xMy43LTIuMi0yMC4yIDB6Il19LHFTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib2xkIixpY29uOlszODQsNTEyLFtdLCJmMDMyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NmwzMiAwIDAgMzIwLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC00Ni41LTI0LjgtODcuMy02Mi0xMDkuNyAxOC43LTIyLjMgMzAtNTEgMzAtODIuMyAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEwzMiAzMnpNMjg4IDE2MGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMCAwLTEyOCA5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0ek0xMjggNDE2bDAtMTI4IDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC0xMjggMHoiXX0sVE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LXB1bHNlIixpY29uOls1MTIsNTEyLFsiaGVhcnRiZWF0Il0sImYyMWUiLCJNMjU2IDEwNy45TDI0MSA4Ny4xQzIxNiA1Mi41IDE3NS45IDMyIDEzMy4xIDMyIDU5LjYgMzIgMCA5MS42IDAgMTY1LjFsMCAyLjZjMCAyMy42IDYuMiA0OCAxNi42IDcyLjNsMTA2IDBjMy4yIDAgNi4xLTEuOSA3LjQtNC45bDMxLjgtNzYuM2MzLjctOC44IDEyLjMtMTQuNiAyMS44LTE0LjhzMTguMyA1LjQgMjIuMiAxNC4xbDUxLjMgMTEzLjkgNDEuNC04Mi44YzQuMS04LjEgMTIuNC0xMy4zIDIxLjUtMTMuM3MxNy40IDUuMSAyMS41IDEzLjNsMjMuMiA0Ni4zYzEuNCAyLjcgNC4xIDQuNCA3LjIgNC40bDEyMy42IDBjMTAuNS0yNC4zIDE2LjYtNDguNyAxNi42LTcyLjNsMC0yLjZDNTEyIDkxLjYgNDUyLjQgMzIgMzc4LjkgMzIgMzM2LjIgMzIgMjk2IDUyLjUgMjcxIDg3LjFsLTE1IDIwLjd6TTQ2OS42IDI4OGwtOTcuOCAwYy0yMS4yIDAtNDAuNi0xMi01MC4xLTMxbC0xLjctMy40LTQyLjUgODUuMWMtNC4xIDguMy0xMi43IDEzLjUtMjIgMTMuM3MtMTcuNi01LjctMjEuNC0xNC4xbC00OS4zLTEwOS41LTEwLjUgMjUuMmMtOC43IDIwLjktMjkuMSAzNC41LTUxLjcgMzQuNWwtODAuMiAwYzQ3LjIgNzMuOCAxMjMgMTQxLjcgMTcwLjQgMTc3LjkgMTIuNCA5LjQgMjcuNiAxNC4xIDQzLjEgMTQuMXMzMC44LTQuNiA0My4xLTE0LjFDMzQ2LjYgNDI5LjcgNDIyLjQgMzYxLjggNDY5LjYgMjg4eiJdfSxWU3I9VE9lLExPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcm9vdC12YXJpYWJsZSIsaWNvbjpbNTc2LDUxMixbInNxdWFyZS1yb290LWFsdCJdLCJmNjk4IiwiTTI4Mi42IDc4LjFjOC0yNy4zIDMzLTQ2LjEgNjEuNC00Ni4xbDIwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDM0NCA5NiAyMzguNyA0NTdjLTMuNiAxMi4zLTE0LjEgMjEuMi0yNi44IDIyLjhzLTI1LjEtNC42LTMxLjUtMTUuNkw3Ny42IDI4OCAzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDUuNiAwYzIyLjggMCA0My44IDEyLjEgNTUuMyAzMS44bDY1LjIgMTExLjggODQuNC0yODkuNXpNMzkzLjQgMjMzLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDEuNCA0MS40IDQxLjQtNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC00MS40IDQxLjQgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC00MS40LTQxLjQtNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w0MS40LTQxLjQtNDEuNC00MS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3oiXX0salNyPUxPZSxET2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYnViYmxlcyIsaWNvbjpbNTEyLDUxMixbImhhbmRzLXdhc2giXSwiZTA1ZSIsIk0zODQgNjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em05NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xMjggNDY0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTAgMTYwbC4xIDcyLjZjMCA0NC44IDE3LjYgODcuMSA0Ny45IDExOC40IC4zLTc3IDQwLjEtMTQ4LjQgMTA1LjQtMTg5LjNsMS45LTEuMmMtMi41LTMuNy0yLjgtOC42LS40LTEyLjdsNjItMTA3LjRjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhTMTgyIDUgMTc1LjQgMTYuNWwtNjggMTE3LjggMCAwIDAgMC00My4zIDc1IDAtNDkuM2MwLTE3LjctMTQuNC0zMi0zMi0zMlMwIDE0Mi40IDAgMTYwem0yMTMuNi0zNS45YzE0LjEtOC44IDI5LjgtMTIuNyA0NS4yLTEyLjFsMzYuNS02My4zYzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOGwtNjcuMSAxMTYuMiAyNy0xNi45em04Ni41LTM1LjdsLTE2LjQgMjguNGMxNS4xIDUuNSAyOC42IDE1LjYgMzguMyAyOS43bDE5LjctMzQuMmM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4Ljh6bTQ2LjQgNjMuN2wtMTIuNSAyMS43YzIgOC42IDIuNSAxNy41IDEuNyAyNi4xbDQuMyAwIDAgMCAzNC40IDAgMTMuNy0yMy44YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHpNMjgzLjEgMTc1Yy05LjQtMTUtMjkuMS0xOS41LTQ0LjEtMTAuMmwtNjAuMiAzNy42QzEyNy4zIDIzNC43IDk2IDI5MS4yIDk2IDM1MmwwIDhjMCA4LjkgLjggMTcuNiAyLjIgMjYuMSAzNS40IDguMiA2MS44IDQwIDYxLjggNzcuOSAwIDYuMy0uNyAxMi41LTIuMSAxOC40IDI1LjIgMTguNiA1Ni40IDI5LjYgOTAuMSAyOS42bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05MiAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDEyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMjQgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxNTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTU2IDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEzNiAwIDAgMCAwIDAtOTMuMiAwIDQ2LjItMjguOWMxNS05LjQgMTkuNS0yOS4xIDEwLjItNDQuMXoiXX0sVVNyPURPZSxXU3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFya2VyIixpY29uOls1MTIsNTEyLFtdLCJmNWExIiwiTTQwOC44IDBjLTI3LjQgMC01My42IDEwLjktNzMgMzAuMkwzMTguMSA0OCAzMDUgMzQuOWMtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwTDEwMyAxMzVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwyMzcuMSA2OC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI4NC4xIDgxLjkgMTg0IDE4Mi4xIDMyOS45IDMyOCA0ODEuOCAxNzYuMmMxOS40LTE5LjQgMzAuMi00NS42IDMwLjItNzMgMC01Ny00Ni4yLTEwMy4yLTEwMy4yLTEwMy4yek0xMDIuNCAyNjMuN2MtNDkuOSA0OS45LTgzLjMgMTE0LTk1LjUgMTgzLjVMLjQgNDgzLjhDLTEgNDkxLjYgMS41IDQ5OS40IDcgNTA1czEzLjQgOCAyMS4xIDYuN2wzNi43LTYuNWM2OS41LTEyLjMgMTMzLjYtNDUuNiAxODMuNS05NS41TDI5NiAzNjEuOSAxNTAuMSAyMTYgMTAyLjQgMjYzLjd6Il19LEdTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQiLGljb246WzM4NCw1MTIsWzEyODIwM10sImYzMjgiLCJNMzIwIDMybC04LjYgMEMzMDAuNCAxMi45IDI3OS43IDAgMjU2IDBMMTI4IDBDMTA0LjMgMCA4My42IDEyLjkgNzIuNiAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xMzYgMTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMTIgMHoiXX0sWVNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYWNlLW9mLXdvcnNoaXAiLGljb246WzUxMiw1MTIsW10sImY2N2YiLCJNMTYwIDc5bDAgODEtNDQuOCAzMy42QzEwMy4xIDIwMi43IDk2IDIxNi45IDk2IDIzMmwwIDQwLTYwLjYgMzAuM0MxMy43IDMxMy4yIDAgMzM1LjMgMCAzNTkuNkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCA3NC43IDAgODUuNCAwIDMyMCAwbDY0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC04OC40YzAtMjQuMi0xMy43LTQ2LjQtMzUuNC01Ny4yTDQxNiAyNzIgNDE2IDIzMmMwLTE1LjEtNy4xLTI5LjMtMTkuMi0zOC40TDM1MiAxNjAgMzUyIDc5YzAtOS41LTQuMi0xOC41LTExLjUtMjQuNkwyNzEuNC0zLjJjLTguOS03LjQtMjEuOC03LjQtMzAuNyAwTDE3MS41IDU0LjRDMTY0LjIgNjAuNSAxNjAgNjkuNSAxNjAgNzl6bTk2IDI0MWMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDgwLTEyOCAwIDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LEtTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW5uYWJpcyIsaWNvbjpbNTEyLDUxMixbXSwiZjU1ZiIsIk0yNTYgMGM1LjMgMCAxMC4zIDIuNyAxMy4zIDcuMSAxNS44IDIzLjUgMzYuNyA2My43IDQ5LjIgMTA5IDcuMyAyNi40IDExLjggNTUuMyAxMC4zIDg0IDExLjYtOC45IDIzLjctMTYuNyAzNS45LTIzLjcgNDEtMjMuMyA4NC40LTM2LjkgMTEyLjItNDIuNSA1LjItMSAxMC43IC42IDE0LjQgNC40czUuNCA5LjIgNC40IDE0LjVjLTUuNiAyNy43LTE5LjMgNzAuOS00Mi43IDExMS43LTkuMSAxNS45LTE5LjkgMzEuNy0zMi41IDQ2LjMgMjcuOSA2LjYgNTIuNSAxNy4yIDY3LjMgMjUuNCA1LjEgMi44IDguMiA4LjIgOC4yIDE0cy0zLjIgMTEuMi04LjIgMTRjLTE1LjIgOC40LTQwLjkgMTkuNS02OS44IDI2LjEtMjAuMiA0LjYtNDIuOSA3LjItNjUuMiA0LjZsOC4zIDMzLjJjMS41IDYuMS0uNiAxMi41LTUuNSAxNi40cy0xMS42IDQuNi0xNy4yIDEuOEwyODAgNDE3LjIgMjgwIDQ4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTcwLjgtNTguNSAyOS4xYy01LjYgMi44LTEyLjMgMi4xLTE3LjItMS44cy03LTEwLjMtNS41LTE2LjRsOC4zLTMzLjJjLTIyLjIgMi42LTQ1IDAtNjUuMi00LjYtMjguOS02LjYtNTQuNS0xNy42LTY5LjgtMjYuMS01LjEtMi44LTguMi04LjItOC4yLTE0czMuMi0xMS4yIDguMi0xNGw2LjItMy4zYzE1LTcuNiAzNi44LTE2LjQgNjEuMS0yMi4yLTEyLjUtMTQuNS0yMy4zLTMwLjQtMzIuNC00Ni4yLTIzLjQtNDAuOC0zNy4xLTg0LTQyLjctMTExLjctMS4xLTUuMiAuNi0xMC43IDQuNC0xNC41czkuMi01LjQgMTQuNC00LjRjMjcuOSA1LjUgNzEuMiAxOS4yIDExMi4yIDQyLjUgMTIuMiA2LjkgMjQuMyAxNC44IDM1LjggMjMuNy0xLjQtMjguNyAzLjEtNTcuNiAxMC4zLTg0IDEyLjUtNDUuMyAzMy40LTg1LjUgNDkuMi0xMDlsMS4yLTEuNkMyNDYuOSAyIDI1MS4zIDAgMjU2IDB6Il19LFpTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtcm9vZiIsaWNvbjpbNTc2LDUxMixbXSwiZTUzNyIsIk0zMDIuMy0xMi42Yy05LTQuNS0xOS42LTQuNS0yOC42IDBsLTI1NiAxMjhDMS45IDEyMy4zLTQuNSAxNDIuNSAzLjQgMTU4LjNzMjcuMSAyMi4yIDQyLjkgMTQuM0wyODggNTEuOCA1MjkuNyAxNzIuNmMxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlsLTI1Ni0xMjh6TTI4OCAyNzJhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTAgNDhjLTUzIDAtOTYgNDMtOTYgOTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtNTMtNDMtOTYtOTYtOTZ6TTE2MCAyNTZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptMzUyIDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMTEyIDMzNmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAzMy4xYzAgMTcgMTMuOCAzMC45IDMwLjkgMzAuOWw4Ny44IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtNDhjMC0xOC40IDMuNS0zNiA5LjgtNTIuMi0xMi4yLTcuNS0yNi41LTExLjgtNDEuOC0xMS44ek00MjUuNCA0ODBsODcuOCAwYzE3IDAgMzAuOS0xMy44IDMwLjktMzAuOWwwLTMzLjFjMC00NC4yLTM1LjgtODAtODAtODAtMTUuMyAwLTI5LjYgNC4zLTQxLjggMTEuOCA2LjMgMTYuMiA5LjggMzMuOCA5LjggNTIuMmwwIDQ4YzAgMTEuNC0yLjQgMjIuMi02LjcgMzJ6Il19LFFTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaXNlYXNlIixpY29uOls1MTIsNTEyLFtdLCJmN2ZhIiwiTTIzNi41IDI5LjRMMjI0IDQ4Yy0yMCAzMC01My42IDQ4LTg5LjcgNDhMNjggOTZjLTM3LjUgMC02Ny45IDMwLjQtNjcuOSA2Ny45IDAgMTggNy4yIDM1LjIgMTkuOSA0Ny45bDI3IDI3YzExIDExIDE3LjIgMjUuOSAxNy4yIDQxLjUgMCAxNS44LTYuNCAzMC45LTE3LjcgNDJMMzMuNCAzMzUuMWMtMTEuMSAxMC44LTE3LjMgMjUuNy0xNy4zIDQxLjIgMCAzNi44IDM0LjEgNjQuMiA3MC4xIDU2LjJsNjIuMy0xMy44YzcuNy0xLjcgMTUuNy0yLjYgMjMuNi0yLjYgMzIuOCAwIDY0LjIgMTQuNiA4NS4yIDM5LjhsMzAuNSAzNi42YzEwLjQgMTIuNCAyNS43IDE5LjYgNDEuOSAxOS42IDMwLjEgMCA1NC41LTI0LjQgNTQuNS01NC41bDAtNTEuMmMwLTQxLjQgMjUuNC03OC41IDY0LTkzLjVsMjIuMi04LjZjMjUuMi05LjggNDEuOC0zNC4xIDQxLjgtNjEuMSAwLTI2LjQtMTUuOS01MC4zLTQwLjMtNjAuNUw0MjkgMTY0LjhjLTMzLjItMTMuOS01Ny42LTQzLTY1LjUtNzguMWwtNy45LTM1LjJjLTYuOC0zMC4xLTMzLjUtNTEuNS02NC4zLTUxLjUtMjIgMC00Mi42IDExLTU0LjggMjkuNHpNMTYwIDE5MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSwkT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1iaWJsZSIsaWNvbjpbNDQ4LDUxMixbImJpYmxlIl0sImY2NDciLCJNOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyMC45LTEzLjQgMzguNy0zMiA0NS4zbDAgNjYuN2MxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5NiA1MTJ6bTAtMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjQtMjU2IDB6TTE5MiA4MGwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTExMiA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxYU3I9JE9lLEpTcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1ib2FyZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjQzYyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA2NGwwIDY0IDY0IDAgMC02NCA2NCAwIDAgNjQgNjQgMCAwLTY0IDY0IDAgMCA2NC02NCAwIDAgNjQgNjQgMCAwIDY0LTY0IDAgMCA2NCA2NCAwIDAgNjQtNjQgMCAwLTY0LTY0IDAgMCA2NC02NCAwIDAtNjQtNjQgMCAwIDY0LTY0IDAgMC02NCA2NCAwIDAtNjQtNjQgMCAwLTY0IDY0IDAgMC02NC02NCAwIDAtNjQgNjQgMHptNjQgMTI4bDY0IDAgMC02NC02NCAwIDAgNjR6bTAgNjRsMC02NC02NCAwIDAgNjQgNjQgMHptNjQgMGwtNjQgMCAwIDY0IDY0IDAgMC02NHptMCAwbDY0IDAgMC02NC02NCAwIDAgNjR6Il19LGVNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzIixpY29uOls1MTIsNTEyLFs5Nzk0XSwiZjIyMiIsIk0zMjAgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC01MC43LTk1IDk1YzE5LjUgMjguNCAzMSA2Mi43IDMxIDk5LjggMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMzIgNDAxLjIgMzIgMzA0IDExMC44IDEyOCAyMDggMTI4YzM3IDAgNzEuNCAxMS40IDk5LjggMzFsOTUtOTUtNTAuNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMjA4IDQxNmExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LHRNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AiLGljb246WzY0MCw1MTIsWzEyODE4N10sImYxMDkiLCJNMTI4IDMyQzkyLjcgMzIgNjQgNjAuNyA2NCA5NmwwIDI0MCA2NCAwIDAtMjQwIDM4NCAwIDAgMjQwIDY0IDAgMC0yNDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTI4IDMyek0xOS4yIDM4NEM4LjYgMzg0IDAgMzkyLjYgMCA0MDMuMiAwIDQ0NS42IDM0LjQgNDgwIDc2LjggNDgwbDQ4Ni40IDBjNDIuNCAwIDc2LjgtMzQuNCA3Ni44LTc2LjggMC0xMC42LTguNi0xOS4yLTE5LjItMTkuMkwxOS4yIDM4NHoiXX0sQU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXIteG1hcmsiLGljb246WzU3Niw1MTIsWyJ1c2VyLXRpbWVzIl0sImYyMzUiLCJNMjU0LjEgMzA0Yzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDQ2LjEgNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM2w1OS40IDB6TTUzMC4zIDEwOC4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzMuOSAzMy45IDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zMy45LTMzLjktMzMuOSAzMy45Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOS0zMy45LTMzLjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMy45IDMzLjkgMzMuOS0zMy45ek0yMjQuNCAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQweiJdfSxyTXI9QU9lLGFNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnLXVzYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc0ZCIsIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMzYuMS00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTIwLjMtOS00MS44LTE0LjctNjMuNi0xNi45bDAgMzIuMmMxNy40IDIuMSAzNC40IDYuNyA1MC42IDEzLjlsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCA2Mi00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNsLTYzLjUgMTMuNiAwIDMyLjcgNzAuMi0xNS4xYzM2LjQtNy44IDc0LjMtMy45IDEwOC40IDExLjNsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCA2MS45LTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtNDAuMi0xNy45LTg1LTIyLjUtMTI4LjEtMTMuM2wtNjMuNSAxMy42IDAgMzIuNyA3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40bDMzLjctMTIuMyAwIDMzLjVjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgNDAwIDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwem04MCA5NmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zMiAwYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptLTMyIDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTMyIDBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxpTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1taWRkbGUtZmluZ2VyIixpY29uOls0NDgsNTEyLFsxMjg0MDVdLCJmODA2IiwiTTIzMiAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDE2NC4yYy04LjUtNy42LTE5LjctMTIuMi0zMi0xMi4yLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC01NS43Yy0yIDEuNC0zLjkgMy01LjggNC41TDU1IDI4NC44QzQwLjQgMjk3IDMyIDMxNSAzMiAzMzRMMzIgMzcyYzAgMzggMTYuOSA3NCA0Ni4xIDk4LjNsNS40IDQuNWMyOC44IDI0IDY1IDM3LjEgMTAyLjQgMzcuMUwzMDQgNTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDgtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuMy0xLjktMjQuOC0yMi42LTQ0LjMtNDcuOS00NC4zLTEyLjMgMC0yMy41IDQuNi0zMiAxMi4yTDI3MiA0MGMwLTIyLjEtMTcuOS00MC00MC00MHoiXX0sc01yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vcnRhci1wZXN0bGUiLGljb246WzUxMiw1MTIsW10sImY1YTciLCJNNTA0LjMgMTEuMUM0OTMuMy0xLjYgNDc0LjUtMy43IDQ2MSA2LjJMMjUyLjMgMTYwIDM5Ny4zIDE2MCA1MDIuNiA1NC42YzExLjgtMTEuOCAxMi42LTMwLjggMS42LTQzLjV6TTMyIDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmMwIDgyLjUgNDMuNCAxNDcuNyAxMjMuOSAxNzYuMi0xMS4xIDEzLjktMTkuNCAzMC4zLTIzLjkgNDguMS00LjQgMTcuMSAxMC40IDMxLjcgMjguMSAzMS43bDE5MiAwYzE3LjcgMCAzMi40LTE0LjYgMjguMS0zMS43LTQuNS0xNy44LTEyLjgtMzQuMS0yMy45LTQ4LjEgODAuNS0yOC42IDEyMy45LTkzLjcgMTIzLjktMTc2LjIgMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTkyeiJdfSxuTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLWNvdWdoIixpY29uOls1MTIsNTEyLFtdLCJlMDYxIiwiTTk2IDUxMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZsMSAwYzI2IDAgNDctMjEgNDctNDcgMC0xMS0zLjktMjEuNi0xMC45LTMwLjFMMjczLjMgMjAwQzI3MS40IDE5Ny42IDI3MC4xIDE5NC43IDI2OS43IDE5MS43IDI1NCA4My4zIDE2MC43IDAgNDggMCA0MC40IDAgMzIuOSAuNCAyNS40IDEuMSAxMC41IDIuNiAwIDE1LjkgMCAzMC45TDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDB6bTE2LTMyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem02My4xIDIzNy4ybC00MS41LTMuNWMtMTIuMi0xLTIxLjYtMTEuMi0yMS42LTIzLjQgMC0xMC44IDcuMy0yMC4yIDE3LjgtMjIuOGw0MC40LTEwLjFjMTkuMi00LjggMzcuOCA5LjcgMzcuOCAyOS41IDAgMTcuOC0xNS4yIDMxLjgtMzIuOSAzMC4zek00ODAgMzEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwIDI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS02NCA0OGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0xMjggMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek00ODAgNTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwLTcyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LG9Ncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNTU4IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgODIuMSA3NS4yQzQwOS43IDI0OC4xIDQwMCAyNzQuOSA0MDAgMzA0bDAgMjQuNGMtNy4zIDYuNi0xMy42IDE0LjItMTguNyAyMi43bC0zNy4zLTEyLjQgMCA5OS43IDI0IDE5LjIgMCAzOC4zYzAgMTMuNSAyLjggMjYuNCA3LjggMzguMUwyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNTYwIDMwNC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sRU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktdGhyZWUtcXVhcnRlcnMiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTQiXSwiZjI0MSIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjI0IDB6Il19LGxNcj1FT2UsY01yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZyYW5jLXNpZ24iLGljb246WzMyMCw1MTIsW10sImUxOGYiLCJNODAgMzJDNjIuMyAzMiA0OCA0Ni4zIDQ4IDY0bDAgMjU2LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCA4OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04OCAwIDAtNjQgMTQ0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE0NCAwIDAtOTYgMTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgMzJ6Il19LElPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWx0ZXItY2lyY2xlLWRvbGxhciIsaWNvbjpbNTc2LDUxMixbImZ1bm5lbC1kb2xsYXIiXSwiZjY2MiIsIk0zMiA2NEMxOS4xIDY0IDcuNCA3MS44IDIuNCA4My44Uy4yIDEwOS41IDkuNCAxMTguNkwxOTIgMzAxLjMgMTkyIDQxNmMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMyLjUgMi41IDUuMyA0LjUgOC4zIDYtMjEuMi0zMC45LTMzLjYtNjguMy0zMy42LTEwOC42IDAtOTkuNCA3NS41LTE4MS4xIDE3Mi4zLTE5MWw5MC40LTkwLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQxNiAzMjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDUuOCAwYy01LjYgMC0xMC4yIDQuNi0xMC4yIDEwLjIgMCA0LjkgMy41IDkuMSA4LjMgMTBsNDUgOC4yYzIwIDMuNiAzNC42IDIxLjEgMzQuNiA0MS41IDAgMjMuMy0xOC45IDQyLjItNDIuMiA0Mi4ybC01LjggMCAwIDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04LTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNTMuOCAwYzUuNiAwIDEwLjItNC42IDEwLjItMTAuMiAwLTQuOS0zLjUtOS4xLTguMy0xMGwtNDUtOC4yYy0yMC0zLjYtMzQuNi0yMS4xLTM0LjYtNDEuNSAwLTIyLjYgMTcuNy00MSA0MC00Mi4xbDAtOC4xeiJdfSxkTXI9SU9lLHVNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVlc2UiLGljb246WzUxMiw1MTIsW10sImY3ZWYiLCJNNTEyIDI0MC4ybDAgMTUuOC01MTIgMGMwLTIwIDEwLTM4LjcgMjYuNi00OS44TDI3NC45IDQwLjdjOC42LTUuNyAxOC42LTguNyAyOC45LTguNyAxMTUgMCAyMDguMiA5My4yIDIwOC4yIDIwOC4yem0wIDYzLjhsMCAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTExMiA1MTIgMHoiXX0sUE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1oIixpY29uOls1MTIsNTEyLFs5NDA1LCJob3NwaXRhbC1zeW1ib2wiXSwiZjQ3ZSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptOTYtMzQ0bDAgMTc2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNjQtOTYgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA5NiAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0scE1yPVBPZSxmTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sIixpY29uOls1NzYsNTEyLFsxMjc5NzldLCJmNTQ5IiwiTTAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDAgMTI3LjktMTE1LjFjMTguMy0xNi40IDQ2LTE2LjQgNjQuMiAwTDQ0OCAxMjggNTEyIDEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyek0yMjQgMzc2bDAgODggMTI4IDAgMC04OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6bS0xMTIgOGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDM4NGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNMjg4IDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHoiXX0saE1yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZml2ZSIsaWNvbjpbNDQ4LDUxMixbOTg2MF0sImY1MjMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek05NiAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0LTY0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LG1Ncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3JuYWRvIixpY29uOls0NDgsNTEyLFsxMjc3ODZdLCJmNzZmIiwiTTAgMzJMMCA0NS42QzAgNjIuNyAxLjcgNzkuNiA1IDk2bDM1Mi44IDBjMy4yLTYuOSA3LjUtMTMuMyAxMy0xOC44bDM4LjYtMzguNmM0LjItNC4yIDYuNi0xMCA2LjYtMTYgMC0xMi41LTEwLjEtMjIuNi0yMi42LTIyLjZMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJ6TTM1NS43IDE0NGwtMzM2IDBjMTIuNCAyOS43IDMwLjIgNTYuOCA1Mi43IDgwbDMzOS42IDAtNDcuMi02Mi45Yy0zLjktNS4yLTctMTEtOS4yLTE3LjF6TTI0Mi42IDMzNC43YzguMiA0LjggMTUuOCAxMC43IDIyLjUgMTcuM0w0NDUgMzUyYzItOS44IDMtMTkuOSAzLTMwLjEgMC0xNy4xLTIuOS0zNC04LjYtNDkuOUwxMzYgMjcyIDI0Mi42IDMzNC43ek0yOTQuMyA0MDBjNS4zIDE3IDYuNSAzNS4yIDMuNiA1M2wtNS45IDM1LjdjLTIgMTIuMiA3LjQgMjMuNCAxOS44IDIzLjQgNS4zIDAgMTAuNC0yLjEgMTQuMi01LjlsNzguMi03OC4yYzguNS04LjUgMTUuOC0xNy44IDIxLjktMjcuOWwtMTMxLjggMHoiXX0sTk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImpldC1maWdodGVyIixpY29uOls1NzYsNTEyLFsiZmlnaHRlci1qZXQiXSwiZjBmYiIsIk00OTYuMiAyMDYuOGMtMTAuNy00LjUtMjIuMi02LjgtMzMuOC02LjhMMzYyIDIwMCAyNDggNDggMjk2IDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0UzMwOS4zIDAgMjk2IDBMMTUyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOCAwIDAgMTUyLTU0LjQgMC01Mi44LTY2Yy0zLTMuOC03LjYtNi0xMi41LTZMMTYgMTI4Yy04LjggMC0xNiA3LjItMTYgMTZsMCA4OCA0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgODhjMCA4LjggNy4yIDE2IDE2IDE2bDI0LjMgMGM0LjkgMCA5LjUtMi4yIDEyLjUtNmw1Mi44LTY2IDU0LjQgMCAwIDE1Mi04IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMTE0LTE1MiAxMDAuNCAwYzExLjYgMCAyMy4xLTIuMyAzMy44LTYuOGw2NS0yNy4xYzguOS0zLjcgMTQuOC0xMi41IDE0LjgtMjIuMnMtNS44LTE4LjQtMTQuOC0yMi4ybC02NS0yNy4xeiJdfSxnTXI9Tk9lLGJNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnMtZG93biIsaWNvbjpbNTEyLDUxMixbMTI4MDc4LDYxNTc2XSwiZjE2NSIsIk0zODQgMzJjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCA2LjMtMS4zIDEyLjItMy40IDE3LjcgMjAuNCA1LjUgMzUuNCAyNC4xIDM1LjQgNDYuMyAwIDkuMS0yLjYgMTcuNi03IDI0LjkgMjIuMiA0LjIgMzkgMjMuNyAzOSA0Ny4xIDAgMTkuNy0xMS45IDM2LjYtMjguOSA0NCAxNyA3LjQgMjguOSAyNC4zIDI4LjkgNDQgMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwIDI4LjIgNzAuNGMyLjUgNi4zIDMuOCAxMy4xIDMuOCAxOS45bDAgNC4yYzAgMjcuMy0yMi4xIDQ5LjQtNDkuNCA0OS40LTE4LjcgMC0zNS44LTEwLjYtNDQuMi0yNy4zTDE3MC4xIDM1Ni4zYy02LjctMTMuMy0xMC4xLTI4LTEwLjEtNDIuOWwwLTE4Ni42YzAtMTkuNCA4LjktMzcuOCAyNC01MGwxMi4yLTkuN0MyMjQuNiA0NC40IDI1OS44IDMyIDI5Ni4xIDMyTDM4NCAzMnpNODAgOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDQ4IDB6Il19LHhNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicm9vbSIsaWNvbjpbNTc2LDUxMixbMTI5NTI5XSwiZjUxYSIsIk01NjYuNiA1NC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xOTIgMTkyLTM0LjctMzQuN2MtNC4yLTQuMi0xMC02LjYtMTYtNi42LTEyLjUgMC0yMi42IDEwLjEtMjIuNiAyMi42bDAgMjkuMSAxMDguMyAxMDguMyAyOS4xIDBjMTIuNSAwIDIyLjYtMTAuMSAyMi42LTIyLjYgMC02LTIuNC0xMS44LTYuNi0xNmwtMzQuNy0zNC43IDE5Mi0xOTJ6TTM0MS4xIDM1My40TDIyMi42IDIzNC45Yy00Mi43LTMuNy04NS4yIDExLjctMTE1LjggNDIuM2wtOCA4Yy0yMi4zIDIyLjMtMzQuOCA1Mi41LTM0LjggODQgMCA2LjggNy4xIDExLjIgMTMuMiA4LjJsNTEuMS0yNS41YzUtMi41IDkuNSA0LjEgNS40IDcuOUw3LjMgNDczLjRDMi43IDQ3Ny42IDAgNDgzLjYgMCA0ODkuOSAwIDUwMi4xIDkuOSA1MTIgMjIuMSA1MTJsMTczLjMgMGMzOC44IDAgNzUuOS0xNS40IDEwMy40LTQyLjggMzAuNi0zMC42IDQ1LjktNzMuMSA0Mi4zLTExNS44eiJdfSxPT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbXBvcnQiLGljb246WzM4NCw1MTIsWyJhcnJvdy1yaWdodC10by1maWxlIl0sImY1NmYiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCAyNDAgMTgyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xODIuMSAwIDAgOTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnoiXX0sdk1yPU9PZSxST2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXRlbnNpbHMiLGljb246WzUxMiw1MTIsWzEyNzg2MCw2MTY4NSwiY3V0bGVyeSJdLCJmMmU3IiwiTTYzLjkgMTQuNEM2My4xIDYuMiA1Ni4yIDAgNDggMHMtMTUuMSA2LjItMTYgMTQuM0wxNy45IDE0OS43Yy0xLjMgNi0xLjkgMTIuMS0xLjkgMTguMiAwIDQ1LjkgMzUuMSA4My42IDgwIDg3LjdMOTYgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjQuNGM0NC45LTQuMSA4MC00MS44IDgwLTg3LjcgMC02LjEtLjYtMTIuMi0xLjktMTguMkwyMjMuOSAxNC4zQzIyMy4xIDYuMiAyMTYuMiAwIDIwOCAwcy0xNS4xIDYuMi0xNS45IDE0LjRMMTc4LjUgMTQ5LjljLS42IDUuNy01LjQgMTAuMS0xMS4xIDEwLjEtNS44IDAtMTAuNi00LjQtMTEuMi0xMC4yTDE0My45IDE0LjZDMTQzLjIgNi4zIDEzNi4zIDAgMTI4IDBzLTE1LjIgNi4zLTE1LjkgMTQuNkw5OS44IDE0OS44Yy0uNSA1LjgtNS40IDEwLjItMTEuMiAxMC4yLTUuOCAwLTEwLjYtNC40LTExLjEtMTAuMUw2My45IDE0LjR6TTQ0OCAwQzQzMiAwIDMyMCAzMiAzMjAgMTc2bDAgMTEyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyIDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ0OGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0seU1yPVJPZSx3TXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWQtYmFkZ2UiLGljb246WzM4NCw1MTIsW10sImYyYzEiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHptOTYgMzUybDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xNTIgNjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sa01yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwaWRlciIsaWNvbjpbNTEyLDUxMixbMTI4Mzc1XSwiZjcxNyIsIk0zNjkuMy0zMWMxMS45LTMuNSAyNC40IDIuNyAyOSAxMy45bC44IDIuMyA0MCAxMzZjMi41IDguNCAuMSAxNy41LTYuMSAyMy43bC02NC4xIDY0LjEgNzYuNC0yMC44IDE5LjktNTkuOCAuOS0yLjNjNS0xMS4xIDE3LjctMTYuOCAyOS41LTEyLjkgMTEuOCAzLjkgMTguNSAxNi4xIDE1LjggMjhsLS43IDIuNC0yNCA3MmMtMi41IDcuNi04LjcgMTMuNC0xNi41IDE1LjZsLTkxLjEgMjQuOCA5MS4xIDI0LjhjNy43IDIuMSAxMy45IDggMTYuNSAxNS42bDI0IDcyIC43IDIuNGMyLjcgMTEuOS00LjEgMjQuMS0xNS44IDI4LTExLjggMy45LTI0LjUtMS44LTI5LjUtMTIuOWwtLjktMi4zLTE5LjktNTkuOC03Ni40LTIwLjggNjQuMSA2NC4xYzYuMSA2LjEgOC41IDE1LjEgNi4yIDIzLjRsLTQwIDE0NC0uOCAyLjNjLTQuNCAxMS4zLTE2LjggMTcuNy0yOC44IDE0LjQtMTItMy4zLTE5LjMtMTUuMi0xNy4yLTI3LjJsLjUtMi40IDM2LjItMTMwLjUtMzcuMi0zNy4yQzM1MSA0MDYgMzA4LjQgNDQ4IDI1NiA0NDhzLTk1LTQyLTk2LTk0LjFsLTM3IDM3IDM2IDEyMi4zIC42IDIuNGMyLjIgMTEuOS00LjkgMjMuOS0xNi44IDI3LjQtMTEuOSAzLjUtMjQuNC0yLjctMjktMTMuOWwtLjgtMi4zLTQwLTEzNmMtMi41LTguNC0uMS0xNy41IDYuMS0yMy44bDY0LjEtNjQuMS03Ni40IDIwLjgtMTkuOSA1OS44LS45IDIuM2MtNSAxMS4xLTE3LjcgMTYuOC0yOS41IDEyLjlzLTE4LjUtMTYuMS0xNS44LTI4bC43LTIuNCAyNC03MmMyLjUtNy42IDguNy0xMy40IDE2LjUtMTUuNmw5MS4xLTI0LjgtOTEuMS0yNC44Yy03LjctMi4xLTEzLjktOC0xNi41LTE1LjZsLTI0LTcyLS43LTIuNGMtMi43LTExLjkgNC4xLTI0LjEgMTUuOC0yOHMyNC41IDEuOCAyOS41IDEyLjlsLjkgMi4zIDE5LjkgNTkuOCA3Ni40IDIwLjgtNjQuMS02NC4xYy02LjItNi4yLTguNS0xNS4zLTYuMS0yMy43bDQwLTEzNiAuOC0yLjNjNC42LTExLjMgMTcuMS0xNy40IDI5LTEzLjkgMTEuOSAzLjUgMTkgMTUuNSAxNi44IDI3LjRsLS42IDIuNC0zNiAxMjIuMyA1MyA1M2MxLTQzLjMgMzYuNC03OC4xIDc5LjktNzguMXM3OC45IDM0LjggNzkuOSA3OC4ybDUzLjEtNTMuMS0zNi0xMjIuMy0uNi0yLjRjLTIuMi0xMiA0LjktMjMuOSAxNi44LTI3LjR6Il19LFNNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtcmV0cm8iLGljb246WzM4NCw1MTIsW10sImU1MjciLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0em04MCA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOCAxOTJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNCAxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjR6bTY0LTcyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjQgMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0em02NC03MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0IDEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNHpNMTY4IDQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LEZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWducy1wb3N0IixpY29uOls1MTIsNTEyLFsibWFwLXNpZ25zIl0sImYyNzciLCJNMjU2LjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMCAwIDY0LTE1My40IDBjLTQuMiAwLTguMyAxLjctMTEuMyA0LjdsLTQ4IDQ4Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmw0OCA0OGMzIDMgNy4xIDQuNyAxMS4zIDQuN2wxNTMuNCAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2MCAwIDAtNjQgMTUzLjQgMGM0LjIgMCA4LjMtMS43IDExLjMtNC43bDQ4LTQ4YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC00OC00OGMtMy0zLTcuMS00LjctMTEuMy00LjdsLTE1My40IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sTU1yPUZPZSxDTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JvdXAtYXJyb3dzLXJvdGF0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRmNiIsIk0zNy42IDEyMi4zYy0xMS41IDE4LjctMjAuNiAzOS0yNyA2MC41LTUgMTYuOSA0LjYgMzQuOCAyMS41IDM5LjhzMzQuOC00LjYgMzkuOC0yMS41YzE4LjQtNjEuOSA2Ny4zLTExMC44IDEyOS4yLTEyOS4yIDE2LjktNSAyNi42LTIyLjkgMjEuNS0zOS44UzE5OS44IDUuNiAxODIuOSAxMC42QzE2MS40IDE3IDE0MS4xIDI2LjEgMTIyLjMgMzcuNiAxMTIuMyAxNS40IDg5LjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NCAwIDg5LjkgMTUuNCAxMTIuMyAzNy42IDEyMi4zem00MzYuNyAwYzIyLjItMTAgMzcuNi0zMi40IDM3LjYtNTguMyAwLTM1LjMtMjguNy02NC02NC02NC0yNS45IDAtNDguMyAxNS40LTU4LjMgMzcuNi0xOC43LTExLjUtMzktMjAuNi02MC41LTI3LTE2LjktNS0zNC44IDQuNi0zOS44IDIxLjVzNC42IDM0LjggMjEuNSAzOS44YzYxLjkgMTguNCAxMTAuOCA2Ny4zIDEyOS4yIDEyOS4yIDUgMTYuOSAyMi45IDI2LjYgMzkuOCAyMS41czI2LjYtMjIuOSAyMS41LTM5LjhjLTYuNC0yMS41LTE1LjUtNDEuOC0yNy02MC41ek01MTIgNDQ4YzAtMjUuOS0xNS40LTQ4LjMtMzcuNi01OC4zIDExLjUtMTguNyAyMC42LTM5IDI3LTYwLjUgNS0xNi45LTQuNi0zNC44LTIxLjUtMzkuOHMtMzQuOCA0LjYtMzkuOCAyMS41Yy0xOC40IDYxLjktNjcuMyAxMTAuOC0xMjkuMiAxMjkuMi0xNi45IDUtMjYuNiAyMi45LTIxLjUgMzkuOHMyMi45IDI2LjYgMzkuOCAyMS41YzIxLjUtNi40IDQxLjgtMTUuNSA2MC41LTI3IDEwIDIyLjIgMzIuNCAzNy42IDU4LjMgMzcuNiAzNS4zIDAgNjQtMjguNyA2NC02NHpNMzcuNiAzODkuN2MtMjIuMiAxMC0zNy42IDMyLjQtMzcuNiA1OC4zIDAgMzUuMyAyOC43IDY0IDY0IDY0IDI1LjkgMCA0OC4zLTE1LjQgNTguMy0zNy42IDE4LjcgMTEuNSAzOSAyMC42IDYwLjUgMjcgMTYuOSA1IDM0LjgtNC42IDM5LjgtMjEuNXMtNC42LTM0LjgtMjEuNS0zOS44Yy02MS45LTE4LjQtMTEwLjgtNjcuMy0xMjkuMi0xMjkuMi01LTE2LjktMjIuOS0yNi42LTM5LjgtMjEuNVM1LjYgMzEyLjIgMTAuNiAzMjkuMWM2LjQgMjEuNSAxNS41IDQxLjggMjcgNjAuNXpNMjU2IDE5MmMxNS42IDAgMzAgNS42IDQxLjEgMTQuOWwtMTUuMyAxNS4zYy02LjYgNi42LTEuOSAxNy44IDcuNCAxNy44bDYwLjUgMGM1LjcgMCAxMC40LTQuNyAxMC40LTEwLjRsMC02MC41YzAtOS4zLTExLjItMTMuOS0xNy44LTcuNGwtMTEuMiAxMS4yYy0xOS44LTE3LjktNDYuMi0yOC45LTc1LjEtMjguOS00My42IDAtODEuMyAyNC45LTk5LjggNjEuMS02IDExLjgtMS40IDI2LjMgMTAuNCAzMi4zczI2LjMgMS40IDMyLjMtMTAuNGMxMC42LTIwLjggMzIuMi0zNC45IDU3LTM0Ljl6bTU4LjYgOTMuMWMtMTAuNiAyMC44LTMyLjIgMzQuOS01NyAzNC45LTE1LjcgMC0zMC01LjYtNDEuMS0xNC45bDE1LjMtMTUuM2M2LjYtNi42IDEuOS0xNy44LTcuNC0xNy44TDE2NCAyNzJjLTUuNyAwLTEwLjQgNC43LTEwLjQgMTAuNGwwIDYwLjVjMCA5LjMgMTEuMiAxMy45IDE3LjggNy40bDExLjItMTEuMmMxOS44IDE3LjkgNDYuMiAyOC45IDc1LjEgMjguOSA0My42IDAgODEuMy0yNC45IDk5LjgtNjEuMSA2LTExLjggMS40LTI2LjMtMTAuNC0zMi4zcy0yNi4zLTEuNC0zMi4zIDEwLjR6Il19LHpNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3Mtc3BsaXQtdXAtYW5kLWxlZnQiLGljb246WzUxMiw1MTIsW10sImU0YmMiLCJNMzQyLjYtMjIuNmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDQxLjQtNDEuNCAwIDE5NS45Yy0xOC44LTEwLjktNDAuNy0xNy4xLTY0LTE3LjFsLTExNC43IDAgNDEuNC00MS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAzMjAgMjI0IDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnoiXX0sX01yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGwtZHJpcCIsaWNvbjpbNTc2LDUxMixbXSwiZjU3NiIsIk0zMDkuNyA3MS42bC02NC40IDY0LjQgMzMuNCAzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0zMy40LTMzLjQtOTYuNCA5Ni40Yy0yLjkgMi45LTUuMSA2LjUtNi4zIDEwLjNsMzIxLjUgMCA1My43LTUzLjdjNC45LTQuOSA3LjYtMTEuNSA3LjYtMTguM3MtMi43LTEzLjUtNy42LTE4LjNMMzQ2LjMgNzEuNkMzNDEuNSA2Ni43IDMzNC45IDY0IDMyOCA2NHMtMTMuNSAyLjctMTguMyA3LjZ6TTU4LjMgMjMyLjRsOTYuNC05Ni40LTQ5LjQtNDkuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwyMDAgOTAuNyAyNjQuNCAyNi4zQzI4MS4zIDkuNSAzMDQuMSAwIDMyOCAwczQ2LjcgOS41IDYzLjYgMjYuM0w1MTcuNyAxNTIuNEM1MzQuNSAxNjkuMyA1NDQgMTkyLjEgNTQ0IDIxNnMtOS41IDQ2LjctMjYuMyA2My42TDMxMS42IDQ4NS43QzI5NC43IDUwMi41IDI3MS45IDUxMiAyNDggNTEycy00Ni43LTkuNS02My42LTI2LjNMNTguMyAzNTkuNkM0MS41IDM0Mi43IDMyIDMxOS45IDMyIDI5NnM5LjUtNDYuNyAyNi4zLTYzLjZ6TTUxMiA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjUuMiAzMi42LTc5LjYgNTEuMi0xMDguNyA2LTkuNCAxOS41LTkuNCAyNS41IDAgMTguNyAyOS4xIDUxLjIgODMuNSA1MS4yIDEwOC43IDAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSxUTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWhlYXJ0IixpY29uOls1MTIsNTEyLFtdLCJlNTc0IiwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0yNDkuNiAxODMuNWw2LjQgOC41IDYuNC04LjVjMTEuMS0xNC44IDI4LjUtMjMuNSA0Ni45LTIzLjUgMzIuNCAwIDU4LjcgMjYuMyA1OC43IDU4LjdsMCA1LjNjMCA0OS4xLTY1LjggOTguMS05Ni41IDExOC4zLTkuNSA2LjItMjEuNSA2LjItMzAuOSAwLTMwLjctMjAuMi05Ni41LTY5LjMtOTYuNS0xMTguM2wwLTUuM2MwLTMyLjQgMjYuMy01OC43IDU4LjctNTguNyAxOC41IDAgMzUuOSA4LjcgNDYuOSAyMy41eiJdfSxCT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNraWluZy1ub3JkaWMiLGljb246WzU3Niw1MTIsWyJza2lpbmctbm9yZGljIl0sImY3Y2EiLCJNNDI0LjggMTZhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTk5LjggMTkzLjdjNy42IDE1LjIgMS45IDMzLjYtMTIuNiA0MmwwIDE4MC4zLTMyIDAgMC0xNjQuMi0xMC4xIDVjLTI3LjQgMTMuNy02MC43IDYuMS03OS40LTE4LjJsLTE5LjYtMjUuNS0zOS41IDY4LjggMjQuOCAxMi40YzI5LjUgMTQuNyA0Mi45IDQ5LjUgMzEuMSA4MC4ybC0yOC4yIDczLjQgMTQ5LjQgMGM3LjkgMCAxNS42LTIuMyAyMi4yLTYuN2w3LjktNS4zYzExLTcuNCAyNS45LTQuNCAzMy4zIDYuN3M0LjQgMjUuOS02LjcgMzMuM2wtNy45IDUuM0M1NDMgNTA2LjkgNTI2IDUxMiA1MDguNiA1MTJsLTE4OS4xIDBjLS41IDAtMSAwLTEuNSAwTDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4OCAwYzAtOC4yIDMuMS0xNi40IDkuNC0yMi42bDc0LjEtNzQuMSAxMC4yLTM1LjljMTEuMyAxOC4zIDI3LjcgMzMuOCA0OC40IDQ0LjJsNC44IDIuNC0xLjkgNi44Yy0zIDEwLjUtOC42IDIwLTE2LjMgMjcuN2wtNTEuNSA1MS41IDEwMS4zIDAgMzcuMS05Ni40LTU1LjYtMjcuOEMyMzAuNCAzMTkgMjE1LjMgMjY3IDIzOS4zIDIyNy4xbDM3LjctNjIuNy0yNy43LTcuN2MtOS0yLjUtMTguMSAzLjItMjAgMTIuM2wtNS45IDI5LjNjLTMuMSAxNS42LTE3LjEgMjYuMy0zMi41IDI1LjdsLTEzMCAyMDgtMzcuNyAwIDE0MC42LTIyNWMtMy40LTYuMy00LjYtMTMuOC0zLjEtMjEuM2w1LjktMjkuM2M5LjEtNDUuNiA1NS4xLTczLjggOTkuOS02MS40bDMyLjUgOWM0Ni43IDEzIDg4IDQwLjggMTE3LjYgNzkuM2wyNC45IDMyLjMgNDAuNC0yMC4yYzE1LjgtNy45IDM1LTEuNSA0Mi45IDE0LjN6Il19LExNcj1CT2UsSE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jaGVjayIsaWNvbjpbNDQ4LDUxMixbOTc0NSw5OTg5LDYxNTEwLCJjaGVjay1zcXVhcmUiXSwiZjE0YSIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0zNDIgMTQ1LjdjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zTDE4OS4xIDMxNS4yIDEzNyAyNjMuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM1IDUgMTEuOSA3LjUgMTguOCA3czEzLjQtNC4xIDE3LjUtOS44TDM0Ny4zIDE3OS4yYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41eiJdfSxETXI9SE9lLHFPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXRoIixpY29uOls1MTIsNTEyLFsxMjg3MDUsImJhdGh0dWIiXSwiZjJjZCIsIk05NiA3Ny4zYzAtNy4zIDUuOS0xMy4zIDEzLjMtMTMuMyAzLjUgMCA2LjkgMS40IDkuNCAzLjlsMTQuOSAxNC45Yy0zLjYgOS4xLTUuNSAxOC45LTUuNSAyOS4yIDAgMTkuOSA3LjIgMzggMTkuMiA1Mi01LjMgOS4yLTQgMjEuMSAzLjggMjkgOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMjg5IDg5YzkuNC05LjQgOS40LTI0LjYgMC0zMy45LTcuOC03LjktMTkuOC05LjEtMjktMy44LTE0LTEyLTMyLjEtMTkuMi01Mi0xOS4yLTEwLjMgMC0yMC4yIDItMjkuMiA1LjVMMTYzLjkgMjIuNkMxNDkuNCA4LjEgMTI5LjcgMCAxMDkuMyAwIDY2LjYgMCAzMiAzNC42IDMyIDc3LjNMMzIgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgNDhjMCAyOC40IDEyLjQgNTQgMzIgNzEuNkw2NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2IDI1NiAwIDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQwLjRjMTkuNi0xNy42IDMyLTQzLjEgMzItNzEuNmwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDI1NiA5NiA3Ny4zeiJdfSwkTXI9cU9lLEFNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1iaXNob3AiLGljb246WzMyMCw1MTIsWzk4MjFdLCJmNDNhIiwiTTY0IDM4NEw0OC4zIDM2OC4zQzE3LjQgMzM3LjQgMCAyOTUuNCAwIDI1MS43IDAgMjEzLjEgMTMuNSAxNzUuOCAzOC4yIDE0Ni4xTDEwNi43IDY0IDk2IDY0Qzc4LjMgNjQgNjQgNDkuNyA2NCAzMlM3OC4zIDAgOTYgMEwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTAuNyAwIDQ3LjYgNTcuMS04NS45IDg1LjljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw4Mi4zLTgyLjNjMTguNyAyNy4zIDI4LjcgNTkuNyAyOC43IDkzIDAgNDMuNy0xNy40IDg1LjctNDguMyAxMTYuNkwyNTYgMzg0IDMxMi4yIDQ1NC4zYzUgNi4zIDcuOCAxNC4xIDcuOCAyMi4yIDAgMTkuNi0xNS45IDM1LjUtMzUuNSAzNS41TDM1LjUgNTEyYy0xOS42IDAtMzUuNS0xNS45LTM1LjUtMzUuNSAwLTguMSAyLjctMTUuOSA3LjgtMjIuMkw2NCAzODR6Il19LFZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmVzY3JpcHRpb24tYm90dGxlLW1lZGljYWwiLGljb246WzM4NCw1MTIsWyJwcmVzY3JpcHRpb24tYm90dGxlLWFsdCJdLCJmNDg2IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NEwwIDMyek0zMiAxNDRsMzIwIDAgMCAzMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMwNHpNMTYwIDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sRU1yPVZPZSxqT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJhdy1wb2x5Z29uIixpY29uOls1MTIsNTEyLFs1ODA1NSwidmVjdG9yLXBvbHlnb24iXSwiZjVlZSIsIk02NCAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmwyNzMuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAzNC0yNi41IDYxLjgtNjAgNjMuOWwtMi4xIDIuOS03MS41IDk5LjFjMy42IDggNS42IDE2LjkgNS42IDI2LjJzLTIgMTguMi01LjYgMjYuMmwyLjIgMy4xIDY5LjMgOTYgMi4xIDIuOWMzMy41IDIuMSA2MCAyOS45IDYwIDYzLjkgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yNzMuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTI3My4xQzEyLjkgMTA4LjQgMCA4Ny43IDAgNjQgMCAyOC43IDI4LjcgMCA2NCAwek0zOTQuMiA0MTMuNGwtNjUuNS05MC42LTIuMi0zLjFjLTIuMSAuMi00LjMgLjMtNi41IC4zLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMi4yIDAgNC40IC4xIDYuNSAuM2w2Ny43LTkzLjdjLS42LS45LTEuMS0xLjctMS42LTIuNkwxMTkuNCA5NmMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40bDAgMjczLjFjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDI3My4xIDBjLjUtLjkgMS4xLTEuOCAxLjYtMi42eiJdfSxJTXI9ak9lLFBNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpLWN1cnNvciIsaWNvbjpbMjU2LDUxMixbXSwiZjI0NiIsIk0uMSAyOS4zQy0xLjQgNDcgMTEuNyA2Mi40IDI5LjMgNjMuOWw4IC43QzcwLjUgNjcuMyA5NiA5NSA5NiAxMjguM2wwIDk1LjctMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgOTUuN2MwIDMzLjMtMjUuNSA2MS01OC43IDYzLjhsLTggLjdDMTEuNyA0NDkuNi0xLjQgNDY1IC4xIDQ4Mi43UzE3IDUxMy40IDM0LjcgNTExLjlsOC0uN2MzNC4xLTIuOCA2NC4yLTE4LjkgODUuNC00Mi45IDIxLjIgMjQgNTEuMiA0MCA4NS40IDQyLjlsOCAuN2MxNy42IDEuNSAzMy4xLTExLjYgMzQuNS0yOS4ycy0xMS42LTMzLjEtMjkuMi0zNC41bC04LS43QzE4NS41IDQ0NC43IDE2MCA0MTcgMTYwIDM4My43bDAtOTUuNyAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtOTUuN2MwLTMzLjMgMjUuNS02MSA1OC43LTYzLjhsOC0uN2MxNy42LTEuNSAzMC43LTE2LjkgMjkuMi0zNC41UzIzOS0xLjQgMjIxLjMgLjFsLTggLjdjLTM0LjEgMi44LTY0LjIgMTguOS04NS40IDQyLjktMjEuMi0yNC01MS4yLTQwLTg1LjQtNDIuOWwtOC0uN0MxNy0xLjQgMS42IDExLjcgLjEgMjkuM3oiXX0sTk1yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1wbHVzIixpY29uOls1NzYsNTEyLFtdLCJlNTAwIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0xNiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNDggMCAwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDh6Il19LE9Ncj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtZG9nIixpY29uOls1MTIsNTEyLFtdLCJlNTczIiwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0xNjAuOSAyODYuMmM0LjggMS4yIDkuOSAxLjggMTUuMSAxLjggMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NCA0NC4yIDBjMTIuMSAwIDIzLjIgNi44IDI4LjYgMTcuN2w3LjIgMTQuMyA2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgNDQuMi0zNS44IDgwLTgwIDgwbC00OCAwIDAgNTAuN2MwIDcuMy01LjkgMTMuMy0xMy4zIDEzLjMtMS44IDAtMy42LS40LTUuMi0xLjFsLTk4LjctNDIuM2MtNi42LTIuOC0xMC44LTkuMy0xMC44LTE2LjQgMC0yLjggLjYtNS41IDEuOS04bDE1LTMwek0xNjAgMTYwbDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LFJNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmVhdGVyLXRoYW4tZXF1YWwiLGljb246WzQ0OCw1MTIsW10sImY1MzIiLCJNMjEuOSA5NC40QzUuMSA4OC44LTMuOSA3MC42IDEuNyA1My45UzI1LjQgMjguMSA0Mi4xIDMzLjZsMzg0IDEyOEM0MzkuMiAxNjYgNDQ4IDE3OC4yIDQ0OCAxOTJzLTguOCAyNi0yMS45IDMwLjRsLTM4NCAxMjhjLTE2LjggNS42LTM0LjktMy41LTQwLjUtMjAuMnMzLjUtMzQuOSAyMC4yLTQwLjVMMzE0LjggMTkyIDIxLjkgOTQuNHpNNDE2IDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDB6Il19LEZNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZS1vcGVuIixpY29uOls1MTIsNTEyLFs2MjEzNV0sImYyYjYiLCJNNjQuNCAxNzUuOEwyNTYgMzMuOSA0NDcuNiAxNzUuOCAyODkuNSAyOTNjLTkuNyA3LjItMjEuNCAxMS0zMy41IDExcy0yMy44LTMuOS0zMy41LTExTDY0LjQgMTc1Ljh6TTI1Ni0zMmMtMTIuMSAwLTIzLjggMy45LTMzLjUgMTFMMjUuOSAxMjQuN0M5LjYgMTM2LjggMCAxNTUuOCAwIDE3Ni4xTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjM5LjljMC0yMC4zLTkuNi0zOS40LTI1LjktNTEuNEwyODkuNS0yMWMtOS43LTcuMi0yMS40LTExLTMzLjUtMTF6Il19LEJNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VuZCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyZCIsIk0xMTIuNCAxNzkuMkMxNDIgMTI3LjcgMTk2LjggOTYgMjU2LjIgOTZzMTE0LjIgMzEuNyAxNDMuOSA4My4yTDUwOC43IDM2OGMxMi4zIDIxLjMtMy4xIDQ4LTI3LjcgNDhMMzEuNSA0MTZjLTI0LjYgMC00MC0yNi42LTI3LjctNDhMMTEyLjQgMTc5LjJ6Il19LEhNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2ljZW1haWwiLGljb246WzY0MCw1MTIsW10sImY4OTciLCJNMTQ0IDE2MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMjYzLjggMzIwYzE1LjMtMjIuOSAyNC4yLTUwLjQgMjQuMi04MCAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDE2MC41IDAgMjQwIDY0LjUgMzg0IDE0NCAzODRsMzUyIDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTNTc1LjUgOTYgNDk2IDk2IDM1MiAxNjAuNSAzNTIgMjQwYzAgMjkuNiA4LjkgNTcuMSAyNC4yIDgwbC0xMTIuNSAwek00OTYgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYweiJdfSxxTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4NSIsIk0yMDAgNDY0bDAtMTcwLjFjMC0zLjktLjUtNy44LTEuNC0xMS42TDE0NC40IDY1LjRDMTYyLjEgNzcuMiAxODguMiA4OCAyMjQgODhzNjEuOS0xMC44IDc5LjYtMjIuNkwyNDkuNCAyODIuM2MtMSAzLjgtMS40IDcuNy0xLjQgMTEuNkwyNDggNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkzLjVjMC05LjUtMi44LTE4LjctOC4xLTI2LjZsLTQ3LjktNzEuOGMtNS4zLTcuOS04LjEtMTcuMS04LjEtMjYuNkwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMuNSAwYy0uMyAwLS42IDAtMSAwLS42IDAtMS4yIDAtMS44IDAtMTguOCAwLTM0LjEgOS43LTQ0LjEgMTguOC05LjMgOC40LTI4LjUgMjEuMi02MS43IDIxLjJzLTUyLjQtMTIuOC02MS43LTIxLjJjLTEwLTkuMS0yNS4zLTE4LjgtNDQuMS0xOC44LS42IDAtMS4yIDAtMS44IDAtLjMgMC0uNiAwLTEgMEwxMTIgMEM4NS41IDAgNjQgMjEuNSA2NCA0OGwwIDk3LjVjMCA5LjUtMi44IDE4LjctOC4xIDI2LjZMOC4xIDI0My45QzIuOCAyNTEuOCAwIDI2MS4xIDAgMjcwLjVMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTA0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6Il19LFZNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdWRpby1kZXNjcmlwdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjI5ZSIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA5NmwwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQgNDggMCAwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0em00OCAzMmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyLTQ4IDB6bTE1Mi05NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTQ4YzAtMzkuOC0zMi4yLTcyLTcyLTcybC00OCAwem00OCAxNDRsLTI0IDAgMC05NiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjR6Il19LGpNcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3IixpY29uOls1NzYsNTEyLFsxMTldLCI1NyIsIk0yMC44IDM0YzE2LjUtNi4yIDM1IDIuMiA0MS4yIDE4LjdMMTcyLjIgMzQ2LjcgMjU3LjMgNTVjNC0xMy43IDE2LjUtMjMgMzAuNy0yM3MyNi43IDkuNCAzMC43IDIzTDQwMy44IDM0Ni43IDUxNCA1Mi44YzYuMi0xNi41IDI0LjYtMjQuOSA0MS4yLTE4LjdTNTgwLjIgNTguNyA1NzQgNzUuMmwtMTQ0IDM4NGMtNC44IDEyLjktMTcuNCAyMS4zLTMxLjIgMjAuN3MtMjUuNy05LjgtMjkuNS0yM0wyODggMTc4LjMgMjA2LjcgNDU3Yy0zLjkgMTMuMi0xNS44IDIyLjUtMjkuNSAyM3MtMjYuMy03LjgtMzEuMi0yMC43TDIgNzUuMkMtNC4yIDU4LjcgNC4yIDQwLjIgMjAuOCAzNHoiXX0sQ3VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1kcm9wcGVyIixpY29uOls1MTIsNTEyLFsiZXllLWRyb3BwZXItZW1wdHkiLCJleWVkcm9wcGVyIl0sImYxZmIiLCJNMzQxLjYgMjkuMmwtMTAxLjYgMTAxLjYtOS40LTkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDEwMS42LTEwMS42YzM5LTM5IDM5LTEwMi4yIDAtMTQxLjFzLTEwMi4yLTM5LTE0MS4xIDB6TTU1LjQgMzIzLjNjLTE1IDE1LTIzLjQgMzUuNC0yMy40IDU2LjZsMCA0Mi40LTI2LjYgMzkuOWMtOC41IDEyLjctNi44IDI5LjYgNCA0MC40czI3LjcgMTIuNSA0MC40IDRsMzkuOS0yNi42IDQyLjQgMGMyMS4yIDAgNDEuNi04LjQgNTYuNi0yMy40bDEwOS40LTEwOS40LTQ1LjMtNDUuMy0xMDkuNCAxMDkuNGMtMyAzLTcuMSA0LjctMTEuMyA0LjdsLTM2LjEgMCAwLTM2LjFjMC00LjIgMS43LTguMyA0LjctMTEuM2wxMDkuNC0xMDkuNC00NS4zLTQ1LjMtMTA5LjQgMTA5LjR6Il19LFVNcj1DdWUsV01yPUN1ZSwkeT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYxNTMyLCJ0aW1lcy1jaXJjbGUiLCJ4bWFyay1jaXJjbGUiXSwiZjA1NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY3IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sR01yPSR5LFlNcj0keSxLTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaWxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTA0MSIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOTYuNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOEw5NiA0MTZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDk2em00MDggMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTExMiAxMzZsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptMTc2LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0yNjQgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6Il19LHp1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dXJraXNoLWxpcmEtc2lnbiIsaWNvbjpbNDQ4LDUxMixbInRyeSIsInR1cmtpc2gtbGlyYSJdLCJlMmJiIiwiTTE2MCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQzLjYgMTIxLjQtMzQuN2MxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC0xMzQuNiAzOC41IDAgNDYuMSAxMjEuNC0zNC43YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTEzNC42IDM4LjUgMCAxNjIuNSA3MiAwYzUzIDAgOTYtNDMgOTYtOTYgMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtMTA0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTc2LjItMjUuNCA3LjNjLTEyLjcgMy42LTI2LTMuNy0yOS43LTE2LjVzMy43LTI2IDE2LjUtMjkuN2wzOC42LTExIDAtNDYuMS0yNS40IDcuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDM4LjYtMTEgMC02MS45YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxaTXI9enVlLFFNcj16dWUsWE1yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbGNhbm8iLGljb246WzUxMiw1MTIsWzEyNzc1NV0sImY3NzAiLCJNMTYwIDE0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMxNS43IDAgMzAgNS42IDQxLjIgMTUgMTEuMi0xOC42IDMxLjYtMzEgNTQuOC0zMXM0My42IDEyLjQgNTQuOCAzMWMxMS4xLTkuNCAyNS41LTE1IDQxLjItMTUgMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRjLTE0LjcgMC0yOC4zLTUtMzkuMS0xMy4zbC0zMiA0OEMyNzUuMyAxODcgMjY2IDE5MiAyNTYgMTkycy0xOS4zLTUtMjQuOS0xMy4zbC0zMi00OEMxODguMyAxMzkgMTc0LjcgMTQ0IDE2MCAxNDR6TTE0NCAzNTJsNDguNC0yNC4yYzEwLjItNS4xIDIxLjYtNy44IDMzLTcuOCAxOS42IDAgMzguNCA3LjggNTIuMiAyMS42bDMyLjUgMzIuNWM2LjMgNi4zIDE0LjkgOS45IDIzLjggOS45IDExLjMgMCAyMS44LTUuNiAyOC0xNWw5LjctMTQuNi01OS02Ni4zYy05LjEtMTAuMi0yMi4yLTE2LjEtMzUuOS0xNi4xbC00MS44IDBjLTEzLjcgMC0yNi44IDUuOS0zNS45IDE2LjFsLTU5LjkgNjcuNCA0LjctMy41em0xOS40LTk1LjhjMTguMi0yMC41IDQ0LjMtMzIuMiA3MS44LTMyLjJsNDEuOCAwYzI3LjQgMCA1My41IDExLjcgNzEuOCAzMi4ybDE1MC4yIDE2OWM4LjUgOS41IDEzLjIgMjEuOSAxMy4yIDM0LjcgMCAyOC44LTIzLjQgNTIuMi01Mi4yIDUyLjJMNTIuMiA1MTJDMjMuNCA1MTIgMCA0ODguNiAwIDQ1OS44IDAgNDQ3LjEgNC43IDQzNC43IDEzLjIgNDI1LjJsMTUwLjItMTY5eiJdfSxKTXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1zcGFya2xlcyIsaWNvbjpbNTEyLDUxMixbXSwiZjcyYiIsIk00NjQgNi4xYzkuNS04LjUgMjQtOC4xIDMzIC45bDggOGM5IDkgOS40IDIzLjUgLjkgMzNsLTg1LjggOTUuOWMtMi42IDIuOS00LjEgNi43LTQuMSAxMC43bDAgMjEuNGMwIDguOC03LjIgMTYtMTYgMTZsLTE1LjggMGMtNC42IDAtOC45IDEuOS0xMS45IDUuM0wxMDAuNyA1MDAuOWMtNi4zIDcuMS0xNS4zIDExLjEtMjQuOCAxMS4xLTguOCAwLTE3LjMtMy41LTIzLjUtOS44TDkuNyA0NTkuN2MtNi4yLTYuMi05LjctMTQuNy05LjctMjMuNSAwLTkuNSA0LTE4LjUgMTEuMS0yNC44bDExMS42LTk5LjhjMy40LTMgNS4zLTcuNCA1LjMtMTEuOWwwLTI3LjZjMC04LjggNy4yLTE2IDE2LTE2bDM0LjYgMGMzLjkgMCA3LjctMS41IDEwLjctNC4xTDQ2NCA2LjF6TTQzMiAyODhjMy42IDAgNi43IDIuNCA3LjcgNS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOC0xNC44IDUxLjdjLTEgMy40LTQuMSA1LjgtNy43IDUuOHMtNi43LTIuNC03LjctNS44bC0xNC44LTUxLjctNTEuNy0xNC44Yy0zLjQtMS01LjgtNC4xLTUuOC03LjdzMi40LTYuNyA1LjgtNy43bDUxLjctMTQuOCAxNC44LTUxLjdjMS0zLjQgNC4xLTUuOCA3LjctNS44ek04Ny43IDY5LjhsMTQuOCA1MS43IDUxLjcgMTQuOGMzLjQgMSA1LjggNC4xIDUuOCA3LjdzLTIuNCA2LjctNS44IDcuN2wtNTEuNyAxNC44LTE0LjggNTEuN2MtMSAzLjQtNC4xIDUuOC03LjcgNS44cy02LjctMi40LTcuNy01LjhMNTcuNSAxNjYuNSA1LjggMTUxLjdjLTMuNC0xLTUuOC00LjEtNS44LTcuN3MyLjQtNi43IDUuOC03LjdsNTEuNy0xNC44IDE0LjgtNTEuN2MxLTMuNCA0LjEtNS44IDcuNy01LjhzNi43IDIuNCA3LjcgNS44ek0yMDggMGMzLjcgMCA2LjkgMi41IDcuOCA2LjFsNi44IDI3LjMgMjcuMyA2LjhjMy42IC45IDYuMSA0LjEgNi4xIDcuOHMtMi41IDYuOS02LjEgNy44bC0yNy4zIDYuOC02LjggMjcuM2MtLjkgMy42LTQuMSA2LjEtNy44IDYuMXMtNi45LTIuNS03LjgtNi4xbC02LjgtMjcuMy0yNy4zLTYuOGMtMy42LS45LTYuMS00LjEtNi4xLTcuOHMyLjUtNi45IDYuMS03LjhsMjcuMy02LjggNi44LTI3LjNjLjktMy42IDQuMS02LjEgNy44LTYuMXoiXX0sZUNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUiLGljb246WzM4NCw1MTIsW10sImYxMzAiLCJNMTkyIDBDMTM5IDAgOTYgNDMgOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2ek00OCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxNzAuNyAwIDE4NGwwIDQwYzAgOTcuOSA3My4zIDE3OC43IDE2OCAxOTAuNWwwIDQ5LjUtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ5LjVjOTQuNy0xMS44IDE2OC05Mi42IDE2OC0xOTAuNWwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggMzAzLjUgNDggMjI0bDAtNDB6Il19LHRDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm93biIsaWNvbjpbNTc2LDUxMixbMTI4MDgxXSwiZjUyMSIsIk0zMTMgODcuMmM5LjItNy4zIDE1LTE4LjYgMTUtMzEuMiAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDEyLjYgNS45IDIzLjkgMTUgMzEuMkwxOTQuNiAxOTQuOGMtMTAgMTUuNy0zMS4zIDE5LjYtNDYuMiA4LjRMODguOSAxNTguN2M0LjUtNi40IDcuMS0xNC4zIDcuMS0yMi43IDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgMjEuOCAxNy41IDM5LjYgMzkuMiA0MEw4Ny44IDM5My41YzQuNyAzMS4zIDMxLjYgNTQuNSA2My4zIDU0LjVsMjczLjggMGMzMS43IDAgNTguNi0yMy4yIDYzLjMtNTQuNUw1MjAuOCAxNzZjMjEuNy0uNCAzOS4yLTE4LjIgMzkuMi00MCAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDguNCAyLjYgMTYuMyA3LjEgMjIuN2wtNTkuNCA0NC42Yy0xNC45IDExLjItMzYuMiA3LjMtNDYuMi04LjRMMzEzIDg3LjJ6Il19LHJDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LXR1cm4tbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU4MCIsIk0tLjUgMTEzbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzEtMzEgMzUwLjEgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OGwtMzUwLjEgMCAzMS0zMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOVM4MC45LTIuMyA3MS41IDdMLS41IDc5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXpNNjAuMyAyOTIuNkwzNy4xIDQ3NmMtMi40IDE5LjEgMTIuNSAzNiAzMS43IDM2bDE1NC41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMTcuNGMwLTUuOSA0LjctMTAuNiAxMC42LTEwLjYgNCAwIDcuNyAyLjMgOS41IDUuOWw2OC4yIDEzNi41YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdsNzEuOSAwYzE5LjMgMCAzNC4yLTE2LjkgMzEuNy0zNkw0NTIuNyAyOTIuN2MtMS4yLTkuNy02LjktMTguNC0xNS4zLTIzLjRMMjcxLjkgMTY5LjljLTEwLjItNi4xLTIyLjktNi4xLTMzLjEgLjFMNzUuNCAyNjkuM2MtOC4zIDUuMS0xMy45IDEzLjctMTUuMSAyMy4zeiJdfSxVT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZmFzdCIsaWNvbjpbNjQwLDUxMixbInNoaXBwaW5nLWZhc3QiXSwiZjQ4YiIsIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyIDUwLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w2MjEuMyAxOTJjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0w2NDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zLjMgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRsLTEwMi42IDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0zLjMgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC00OC00MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDI0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCAxNDRjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzEwLjcgOTYgMjQgOTZsNDAgMHpNNTc2IDI4OGwwLTUwLjctNDUuMy00NS4zLTUwLjcgMCAwIDk2IDk2IDB6TTI1NiA0MjRhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHptMjMyIDQwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sYUNyPVVPZSxXT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1wZW4iLGljb246WzY0MCw1MTIsWyJ1c2VyLWVkaXQiXSwiZjRmZiIsIk0yNTYuMSAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NmMtOTguNSAwLTE3OC4zIDc5LjgtMTc4LjMgMTc4LjMgMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMTk2LjUgMCAxMC45LTU0LjVjNC4zLTIxLjcgMTUtNDEuNiAzMC42LTU3LjJsNjcuMy02Ny4zYy0yOC0xOC4zLTYxLjQtMjguOS05Ny40LTI4LjlsLTU5LjQgMHpNMzMyLjMgNDY2LjlsLTExLjkgNTkuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42IDEgMCAxLjktLjEgMi45LS4zbDU5LjYtMTEuOWMxMi40LTIuNSAyMy44LTguNiAzMi43LTE3LjVsMTE4LjktMTE4LjktODAtODAtMTE4LjkgMTE4LjljLTguOSA4LjktMTUgMjAuMy0xNy41IDMyLjd6bTI2Ny44LTEyM2MyMi4xLTIyLjEgMjIuMS01Ny45IDAtODBzLTU3LjktMjIuMS04MCAwbC0yOC44IDI4LjggODAgODAgMjguOC0yOC44eiJdfSxpQ3I9V09lLHNDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWNsb2NrIixpY29uOls1NzYsNTEyLFtdLCJmNGZkIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMTk0LjMgMzA0bDU5LjQgMGMzLjkgMCA3LjkgLjEgMTEuOCAuNC0xNi4yIDI4LjItMjUuNSA2MC44LTI1LjUgOTUuNiAwIDQxLjggMTMuNCA4MC41IDM2IDExMkw0NS43IDUxMkMyOS4zIDUxMiAxNiA0OTguNyAxNiA0ODIuMyAxNiAzODMuOCA5NS44IDMwNCAxOTQuMyAzMDR6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQ0LTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzIgMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sbkNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob3dlciIsaWNvbjpbNTEyLDUxMixbMTI4NzAzXSwiZjJjYyIsIk02NCAxMzEuOWMwLTE5LjggMTYuMS0zNS45IDM1LjktMzUuOSA5LjUgMCAxOC42IDMuOCAyNS40IDEwLjVsMTYuMiAxNi4yYy0yMSAzOC45LTE3LjQgODcuNSAxMC45IDEyM0wxNTEgMjQ3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBMMzQ1IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xLjMgMS4zYy0zNS41LTI4LjMtODQuMS0zMS45LTEyMy0xMC45TDE3MC41IDYxLjNDMTUxLjggNDIuNSAxMjYuNCAzMiA5OS45IDMyIDQ0LjcgMzIgMCA3Ni43IDAgMTMxLjlMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMxNi4xek0yNTYgMzUyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC0xMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMyLTMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sR09lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC11cCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS11cCJdLCJmMTUxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAxNjBjNi43IDAgMTMgMi44IDE3LjYgNy43bDEwNCAxMTJjNi41IDcgOC4yIDE3LjIgNC40IDI1LjlTMzM3LjUgMzIwIDMyOCAzMjBsLTIwOCAwYy05LjUgMC0xOC4yLTUuNy0yMi0xNC40cy0yLjEtMTguOSA0LjQtMjUuOWwxMDQtMTEyYzQuNS00LjkgMTAuOS03LjcgMTcuNi03Ljd6Il19LG9Dcj1HT2UsWU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcC1sb2NhdGlvbiIsaWNvbjpbNjQwLDUxMixbIm1hcC1tYXJrZWQiXSwiZjU5ZiIsIk01NzYgNDhjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRMNDEzLjUgNzcuNSAyMzQuMSAxNy42Yy04LjEtMi43LTE2LjgtMi4xLTI0LjQgMS43bC0xMjggNjRDNzAuOCA4OC44IDY0IDk5LjkgNjQgMTEybDAgMzUyYzAgMTEuMSA1LjcgMjEuNCAxNS4yIDI3LjJzMjEuMiA2LjQgMzEuMSAxLjRsMTE2LjEtNTguMSAxNzMuMyA1Ny44Yy00LjMtNi40LTguNS0xMy4xLTEyLjYtMTkuOS0xMS0xOC4zLTIxLjktMzkuMy0zMC02MS44bC0xMDEuMi0zMy43IDAtMjg0LjUgMTI4IDQyLjcgMCA5OS4zYzMxLTM1LjggNzctNTguNCAxMjgtNTguNCAyMi42IDAgNDQuMiA0LjQgNjQgMTIuNUw1NzYgNDh6TTM5MiAzNDEuOWMwIDY4LjkgNjQuMSAxNTAuNCA5OC42IDE4OS4zIDExLjYgMTMgMzEuMyAxMyA0Mi45IDAgMzQuNS0zOC45IDk4LjYtMTIwLjQgOTguNi0xODkuMyAwLTY1LjEtNTMuNy0xMTcuOS0xMjAtMTE3LjlTMzkyIDI3Ni44IDM5MiAzNDEuOXoiXX0sbENyPVlPZSxjQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLWZhbmN5IixpY29uOls1MTIsNTEyLFsxMjgzOTUsMTAwMDJdLCJmNWFjIiwiTTM3My41IDI3LjFjMTUtMTcuMiAzNi43LTI3LjEgNTkuNi0yNy4xIDQzLjYgMCA3OSAzNS40IDc5IDc5IDAgMjIuOC05LjkgNDQuNi0yNy4xIDU5LjZMMjgzLjcgMzEzLjggMjczIDMwMyAyMDkgMjM5IDE5OC4yIDIyOC4zIDM3My41IDI3LjF6TTE2MS4xIDI1OUMxNjIgMjYwIDE4OCAyODYgMjM5IDMzN2wxMy45IDEzLjktMTcuMSA3NC4yYy0zLjkgMTcuMS0xNi45IDMwLjctMzMuOCAzNS40bC0xNjkuOCA0Ny41IDkyLjMtOTIuM2MxLjIgLjEgMi4zIC4yIDMuNSAuMiAxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyYzAgMS4yIC4xIDIuNCAuMiAzLjVMMy45IDQ3OS44IDUxLjUgMzEwYzQuNy0xNi45IDE4LjMtMjkuOSAzNS40LTMzLjhMMTYxLjEgMjU5eiJdfSxfdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXVyby1zaWduIixpY29uOls0NDgsNTEyLFs4MzY0LCJldXIiLCJldXJvIl0sImYxNTMiLCJNNzMuMyAxOTJDMTAwLjggOTkuNSAxODYuNSAzMiAyODggMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtNjUuNiAwLTEyMiAzOS41LTE0Ni43IDk2TDI3MiAxOTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0My4yIDBjLS41IDUuMy0uOCAxMC42LS44IDE2cy4zIDEwLjcgLjggMTZMMjcyIDI3MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTMwLjcgMGMyNC43IDU2LjUgODEuMSA5NiAxNDYuNyA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xMDEuNSAwLTE4Ny4yLTY3LjUtMjE0LjctMTYwTDQwIDMyMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNC42IDBjLS43LTEwLjUtLjctMjEuNSAwLTMyTDQwIDI0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwzMy4zIDB6Il19LGRDcj1fdWUsdUNyPV91ZSxwQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTBiIiwiTTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDIxNy42IDIwMmMtMTAuMi0xLjctMjAuNy0yLjYtMzEuMy0yLjYtNzguNiAwLTE0Ni4yIDQ3LjItMTc1LjkgMTE0LjgtNS0xLjgtMTAuNS0yLjgtMTYuMS0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTAuOSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4yIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNTU1LjMgMzQwLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnoiXX0sZkNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpcmEtc2lnbiIsaWNvbjpbMzg0LDUxMixbODM1Nl0sImYxOTUiLCJNODQuOSAyNTZsLTI4LjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMS42IDBDNTMuMiAxMjQuNyAxMTYuOCA0MiAyMDcuNiA0Mmw4LjIgMGMzMy42IDAgNjYuMiAxMS4zIDkyLjUgMzIuMmwxNi4xIDEyLjdjMTMuOSAxMSAxNi4yIDMxLjEgNS4yIDQ1cy0zMS4xIDE2LjItNDUgNS4ybC0xNi4xLTEyLjdjLTE1LTExLjktMzMuNi0xOC40LTUyLjgtMTguNGwtOC4yIDBjLTUzLjggMC05MC4xIDUyLjktNzMuNSAxMDJsMTYyLjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ1LjEgMGMyLjMgMTAuNiAzLjYgMjEuMyAzLjkgMzJsMTQxLjIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwxNTAgMzM2Yy00LjggMTguNi0xMi42IDM2LjUtMjMuNiA1Mi45bC0xOC4xIDI3LjEgMjEyLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjcyIDBjLTExLjggMC0yMi42LTYuNS0yOC4yLTE2LjlzLTUtMjMgMS42LTMyLjlsNTEuMi03Ni44YzMuNy01LjYgNi45LTExLjQgOS40LTE3LjRsLTI2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMzQuOCAwYy0uNS0xMC44LTIuNi0yMS42LTYuNC0zMnoiXX0sVHk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieWVuLXNpZ24iLGljb246WzM4NCw1MTIsWzE2NSwiY255IiwianB5Iiwicm1iIiwieWVuIl0sImYxNTciLCJNNzQuOSA0Ni43Yy05LjYtMTQuOS0yOS40LTE5LjItNDQuMi05LjZTMTEuNSA2Ni40IDIxLjEgODEuM0wxNDMuNyAyNzIgODggMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCAzMi03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDggNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTMyIDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU1LjcgMCAxMjIuNi0xOTAuN2M5LjYtMTQuOSA1LjMtMzQuNy05LjYtNDQuMnMtMzQuNy01LjMtNDQuMiA5LjZMMTkyIDIyOC44IDc0LjkgNDYuN3oiXX0saENyPVR5LG1Dcj1UeSxnQ3I9VHksYkNyPVR5LHhDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3gtb3BlbiIsaWNvbjpbNjQwLDUxMixbXSwiZjQ5ZSIsIk01NjAuMyAyMzcuMmMxMC40IDExLjggMjguMyAxNC40IDQxLjggNS41IDE0LjctOS44IDE4LjctMjkuNyA4LjktNDQuNGwtNDgtNzJjLTIuOC00LjItNi42LTcuNy0xMS4xLTEwLjJMMzUxLjQgNC43Yy0xOS4zLTEwLjctNDIuOC0xMC43LTYyLjIgMEw4OC44IDExNmMtNS40IDMtOS43IDcuNC0xMi42IDEyLjhMMjcuNyAyMTguN2MtMTIuNiAyMy40LTMuOCA1Mi41IDE5LjYgNjUuMWwzMyAxNy43IDAgNTMuM2MwIDIzIDEyLjQgNDQuMyAzMi40IDU1LjdsMTc2IDk5LjdjMTkuNiAxMS4xIDQzLjUgMTEuMSA2My4xIDBsMTc2LTk5LjdjMjAuMS0xMS40IDMyLjQtMzIuNiAzMi40LTU1LjdsMC0xMTcuNXptLTI0MC05LjhMMTcwLjIgMTQ0IDMyMC4zIDYwLjYgNDcwLjQgMTQ0IDMyMC4zIDIyNy40em0tNDEuNSA1MC4ybC0yMS4zIDQ2LjItMTY1LjgtODguOCAyNS40LTQ3LjIgMTYxLjcgODkuOHoiXX0sdkNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZpZWxkIixpY29uOls2NDAsNTEyLFtdLCJlNThkIiwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDIyNCAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmw0MC40IDBjMzIuNCAwIDYxLjYgMTkuNiA3NCA0OS41bDQzLjggMTA2LjMgMS43IDQuMiAyNC43IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtLjQgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0yLjcgLjEtNS40IC40LThsLTE0NC43IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMy42IC4yLTcuMSAuNi0xMC41LTE5LTYuNC0zMi42LTI0LjQtMzIuNi00NS41bDAtNDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMC0zMnptMzUyIDMybDAgOTYgODIuMSAwLTM1LjQtODYuMWMtMi41LTYtOC4zLTkuOS0xNC44LTkuOUwzODQgMTI4ek0xOTIgMzkyYTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTI4MCA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LHlDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1waW4tbG9jayIsaWNvbjpbNTEyLDUxMixbXSwiZTUxZiIsIk0wIDE4OC42QzAgODQuNCA4NiAwIDE5MiAwIDI5NC4xIDAgMzc3LjYgNzguMyAzODMuNiAxNzcgMzIwLjcgMTg1LjEgMjcyIDIzOC44IDI3MiAzMDRsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgNzUuN2MtOS45IDExLjYtMTguOSAyMS43LTI2LjQgMjkuOC0xMS44IDEyLjgtMzEuNSAxMi44LTQzLjMgMC01MC4yLTU0LjUtMTcwLjQtMTk3LjUtMTcwLjQtMzE2Ljh6TTE5MiAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bTI0MCA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMjg4IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sS09lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1wcmF5aW5nIixpY29uOlszODQsNTEyLFsxMjg3MjAsInByYXkiXSwiZjY4MyIsIk0zMjAgNjRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek0yMDAuNyAyNjRsMjIuOSAzMS41YzYuNSA4LjkgMTYuMyAxNC43IDI3LjIgMTYuMXMyMS45LTEuNyAzMC40LTguN2w4OC03MmMxNy4xLTE0IDE5LjYtMzkuMiA1LjYtNTYuM3MtMzkuMi0xOS42LTU2LjMtNS42bC01NS4yIDQ1LjItMjYuMi0zNmMtMTUuNi0yMS41LTQwLjYtMzQuMi02Ny4yLTM0LjItMzAuOSAwLTU5LjIgMTcuMS03My42IDQ0LjRMNDcuOCAyODAuOWMtMjAuMiAzOC41LTkuNCA4NS45IDI1LjYgMTExLjhMMTI2LjYgNDMyIDQwIDQzMmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwyMDggMGMxNy4zIDAgMzIuNi0xMS4xIDM4LTI3LjVzLS4zLTM0LjQtMTQuMi00NC43bC0xMTYuMS04NS44IDQ1LTkweiJdfSx3Q3I9S09lLGtDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtbGlzdCIsaWNvbjpbMzg0LDUxMixbXSwiZjQ2ZCIsIk0zMTEuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyek0yNDggMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMHpNMTI4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zMiAwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTAgMTI4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTk2IDQxNmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFNDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWNrLWRvbGxhciIsaWNvbjpbNTEyLDUxMixbMTI4MTc2XSwiZjgxZCIsIk0zMjggMTEybC0xNDQgMC0zNy4zLTc0LjVjLTEuOC0zLjYtMi43LTcuNi0yLjctMTEuNiAwLTE0LjMgMTEuNi0yNS45IDI1LjktMjUuOUwzNDIuMSAwYzE0LjMgMCAyNS45IDExLjYgMjUuOSAyNS45IDAgNC0uOSA4LTIuNyAxMS42TDMyOCAxMTJ6TTE2OS42IDE2MGwxNzIuOCAwIDQ4LjcgNDAuNkM0NTcuNiAyNTYgNDk2IDMzOCA0OTYgNDI0LjUgNDk2IDQ3Mi44IDQ1Ni44IDUxMiA0MDguNSA1MTJsLTMwNS4xIDBDNTUuMiA1MTIgMTYgNDcyLjggMTYgNDI0LjUgMTYgMzM4IDU0LjQgMjU2IDEyMC45IDIwMC42TDE2OS42IDE2MHpNMjYwIDIyNGMtMTEgMC0yMCA5LTIwIDIwbDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDIxNiAzODRjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjB6Il19LE1Dcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VudGFpbi1zdW4iLGljb246WzU3Niw1MTIsW10sImU1MmYiLCJNMjU2LjUgMGMxNC43IDAgMjguMiA4LjEgMzUuMiAyMWwyMTYgNDAwYzYuNyAxMi40IDYuNCAyNy40LS44IDM5LjUtNy4yIDEyLjEtMjAuMyAxOS41LTM0LjMgMTkuNWwtNDMyIDBjLTE0LjEgMC0yNy4xLTcuNC0zNC4zLTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMCAyLjktNC42QzIzMS43IDYuMiAyNDMuNiAwIDI1Ni41IDB6TTE3MC40IDI0OS45bDI2LjggMjYuOGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw0My4zLTQzLjNjNi02IDE0LjEtOS40IDIyLjYtOS40bDQyLjggMC03Mi4xLTEzMy41LTg2LjEgMTU5LjR6TTQ5Ni41IDE2MGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHoiXX0sWk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXdpZGUtc2hvcnQiLGljb246WzU3Niw1MTIsWyJzb3J0LWFtb3VudC11cCJdLCJmMTYxIiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNMzIwIDQ4MGwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4bDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnoiXX0sQ0NyPVpPZSx6Q3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU5MiIsIk0yMjQgMTI4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTc2IDMzNmMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEybDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOHpNMzkyIDE0NGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI3LjIgMTAwLjRjOS4xLTIuOSAxOC44LTQuNCAyOC44LTQuNCA1MyAwIDk2IDQzIDk2IDk2bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC03OC44IDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC04YzAtMzQuMS0xMC42LTY1LjctMjguOC05MS42em0tMjYyLjQgMGMtMTguMiAyNi0yOC44IDU3LjUtMjguOCA5MS42bDAgOGMwIDguNCAxLjQgMTYuNSA0LjEgMjRsLTc4LjggMEM0MS42IDM2OCAzMiAzNTguNCAzMiAzNDYuN0wzMiAzMzZjMC01MyA0My05NiA5Ni05NiAxMCAwIDE5LjcgMS41IDI4LjggNC40ek03MiAxNDRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0wIDQ0MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxfQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1vZi1kYXZpZCIsaWNvbjpbNTEyLDUxMixbMTAwMTddLCJmNjlhIiwiTTQxNS45IDMxMS45bC0yNy44IDQ4LjEgNTUuNyAwLTI3LjgtNDguMXpNMzgzLjYgMjU2bC02MC4yLTEwNC0xMzQuOCAwLTYwLjIgMTA0IDYwLjIgMTA0IDEzNC44IDAgNjAuMi0xMDR6bTY0LjcgMGw1OC40IDEwMC45YzMuNSA2IDUuMyAxMi44IDUuMyAxOS43IDAgMjEuNy0xNy42IDM5LjQtMzkuNCAzOS40bC0xMTcgMC02MS4zIDEwNS44QzI4Ni41IDUzNS42IDI3MS44IDU0NCAyNTYgNTQ0cy0zMC41LTguNC0zOC40LTIyLjJsLTYxLjMtMTA1LjgtMTE3IDBjLTIxLjcgMC0zOS40LTE3LjYtMzkuNC0zOS40IDAtNi45IDEuOC0xMy43IDUuMy0xOS43TDYzLjcgMjU2IDUuMyAxNTUuMUMxLjggMTQ5LjEgMCAxNDIuMyAwIDEzNS40IDAgMTEzLjYgMTcuNiA5NiAzOS40IDk2bDExNyAwIDYxLjMtMTA1LjhDMjI1LjUtMjMuNiAyNDAuMi0zMiAyNTYtMzJzMzAuNSA4LjQgMzguNCAyMi4ybDYxLjMgMTA1LjggMTE3IDBjMjEuNyAwIDM5LjQgMTcuNiAzOS40IDM5LjQgMCA2LjktMS44IDEzLjctNS4zIDE5LjdMNDQ4LjMgMjU2ek0zODguMSAxNTJsMjcuOCA0OC4xIDI3LjgtNDguMS01NS43IDB6TTI5MSA5NmwtMzUtNjAuNC0zNSA2MC40IDcwIDB6TTEyMy45IDE1MmwtNTUuNyAwIDI3LjggNDguMSAyNy44LTQ4LjF6TTk2LjEgMzExLjlsLTI3LjggNDguMSA1NS43IDAtMjcuOC00OC4xek0yMjEgNDE2bDM1IDYwLjQgMzUtNjAuNC03MCAweiJdfSxUQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZXMtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjQ4MSIsIk05NiAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgxLjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0OTMuMyAyOTAuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiA2NGMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMEMxMjQuNyAwIDk2IDI4LjcgOTYgNjRsMCAyODh6TTI4OCAxMTJsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZ6TTQ4IDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEwNi43IDAgMTIwTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzI4eiJdfSxMQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXVzdHJhbC1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMGE5IiwiTTI2Ni41IDI0MGwtODUgMCA0Mi41LTEwNi40IDQyLjUgMTA2LjR6bTY4LjkgMEwyNjIuOSA1OC4zQzI1Ni41IDQyLjQgMjQxLjEgMzIgMjI0IDMycy0zMi41IDEwLjQtMzguOSAyNi4zTDExMi42IDI0MCAzMiAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjEuNCAwLTE5LjIgNDgtNDIuMyAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDIzLjEgMC0yMC44IDUyLjFjLTYuNiAxNi40IDEuNCAzNSAxNy45IDQxLjZzMzUtMS40IDQxLjYtMTcuOWwzMC4zLTc1LjkgMjAwIDAgMzAuMyA3NS45YzYuNiAxNi40IDI1LjIgMjQuNCA0MS42IDE3LjlzMjQuNC0yNS4yIDE3LjktNDEuNkwzOTIuOSAzODQgNDE2IDM4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDIuMyAwLTE5LjItNDggNjEuNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MC42IDB6bS00OS43IDQ4bDE5LjIgNDgtMTYxLjYgMCAxOS4yLTQ4IDEyMy4zIDB6Il19LERDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtdXNlciIsaWNvbjpbMzg0LDUxMixbXSwiZjdmMyIsIk0zMTEuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyek0yNDggMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMHpNMTkyIDM0NGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNOTguMyA0MTNjLTEyLjkgMTUuNiAyLjIgMzUgMjIuNCAzNWwxNDIuNSAwYzIwLjIgMCAzNS4zLTE5LjQgMjIuNC0zNS0xNC43LTE3LjctMzYuOS0yOS02MS43LTI5bC02NCAwYy0yNC44IDAtNDcgMTEuMy02MS43IDI5eiJdfSwkQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTI4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05Mi42IDQ0OGwxOTguOCAwYzE1LjggMCAyOC42LTEyLjggMjguNi0yOC42IDAtNy4zLTIuOC0xNC40LTcuOS0xOS43TDIxNS4zIDI5Ny45Yy02LTYuMy0xNC40LTkuOS0yMy4yLTkuOWwtLjMgMGMtOC44IDAtMTcuMSAzLjYtMjMuMiA5LjlMNzEuOSAzOTkuN0M2Ni44IDQwNSA2NCA0MTIuMSA2NCA0MTkuNCA2NCA0MzUuMiA3Ni44IDQ0OCA5Mi42IDQ0OHoiXX0sUU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1yaWdodCJdLCJmMTUyIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zMjAgMjU2YzAgNi43LTIuOCAxMy03LjcgMTcuNmwtMTEyIDEwNGMtNyA2LjUtMTcuMiA4LjItMjUuOSA0LjRTMTYwIDM2OS41IDE2MCAzNjBsMC0yMDhjMC05LjUgNS43LTE4LjIgMTQuNC0yMnMxOC45LTIuMSAyNS45IDQuNGwxMTIgMTA0YzQuOSA0LjUgNy43IDEwLjkgNy43IDE3LjZ6Il19LEFDcj1RT2UsRUNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWwiLGljb246WzUxMiw1MTIsWzEyOTUxNF0sImY0OTIiLCJNMzQyLjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wzMDYuNyA2NCAyOC4xIDM0Mi42QzEwLjEgMzYwLjYgMCAzODUgMCA0MTAuNUwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDUuNSAwYzI1LjUgMCA0OS45LTEwLjEgNjcuOS0yOC4xbDI3OC42LTI3OC42IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHpNMjA1LjMgMjU2bDE0Ni43LTE0Ni43IDUwLjcgNTAuNy05NiA5Ni0xMDEuNSAweiJdfSxJQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVsaWNvcHRlciIsaWNvbjpbNTc2LDUxMixbMTI4NjQxXSwiZjUzMyIsIk0xNzYgMzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTUyIDAgMCA0OC0yMjAuOCAwLTMyLjgtMzkuNEM2OS45IDgzLjIgNjMuMSA4MCA1NiA4MEwyNCA4MEMxNS43IDgwIDggODQuMyAzLjYgOTEuNHMtNC44IDE1LjktMS4xIDIzLjRsNDggOTZDNTQuNiAyMTguOSA2Mi45IDIyNCA3MiAyMjRsMTA3LjggMCAxMDQgMTQzLjFjMTUuMSAyMC43IDM5LjEgMzIuOSA2NC43IDMyLjlsNzUuNSAwYzc1LjEgMCAxMzYtNjAuOSAxMzYtMTM2UzQ5OS4xIDEyOCA0MjQgMTI4bC00OCAwIDAtNDggMTUyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTc2IDMyek0zNzYgMTkybDQ4IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJzLTMyLjIgNzItNzIgNzJsLTQ4IDAgMC0xNDR6TTU1MiA0MTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0IDAgNC40LTMuNiA4LTggOGwtMjcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFBDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaXR0ZW4iLGljb246WzQ0OCw1MTIsW10sImY3YjUiLCJNMzUyIDM4NEw2NCAzODQgNS40IDE3OC45QzEuOCAxNjYuNCAwIDE1My40IDAgMTQwLjMgMCA2Mi44IDYyLjggMCAxNDAuMyAwbDMuNCAwYzY2IDAgMTIzLjUgNDQuOSAxMzkuNSAxMDguOWwzMS40IDEyNS44IDE3LjYtMjAuMUMzNDQuOCAyMDAuMiAzNjIuOSAxOTIgMzgyIDE5MmwyLjggMGMzNC45IDAgNjMuMyAyOC4zIDYzLjMgNjMuMyAwIDE1LjktNiAzMS4yLTE2LjggNDIuOUwzNTIgMzg0ek0zMiA0NjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZ6Il19LE5Dcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXMtcHVtcCIsaWNvbjpbNTEyLDUxMixbOTk4MV0sImY1MmYiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwyNTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MiA4IDBjNDguNiAwIDg4IDM5LjQgODggODhsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTU0Yy0yNy42LTcuMS00OC0zMi4yLTQ4LTYybDAtNTkuNS0yNS44LTI4LjNjLTguOS05LjgtOC4yLTI1IDEuNi0zMy45czI1LTguMiAzMy45IDEuNmw3MS43IDc4LjhjOS40IDEwLjMgMTQuNiAyMy43IDE0LjYgMzcuN0w1MTIgMzc2YzAgMzkuOC0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcybDAtMzJjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTggMCAwIDE2MS40YzkuMyAzLjMgMTYgMTIuMiAxNiAyMi42IDAgMTMuMy0xMC43IDI0LTI0IDI0TDQwIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC41IDYuNy0xOS4zIDE2LTIyLjZMMzIgNjR6TTk2IDgwbDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNkwxMTIgNjRjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sT0NyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTRlOCIsIk02NCAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhsNDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA4MS40Yy0yNC40LTExLjItNTEuNC0xNy40LTgwLTE3LjQtODcuNyAwLTE2MS43IDU4LjgtMTg0LjcgMTM5LjItNy4xLTEuMy0xNC4xLTQuMi0yMC4xLTguOGwtMjA4LTE1NkM3MS4xIDE0MS4zIDY0IDEyNy4xIDY0IDExMnpNMzA0IDM2OGMwIDI4LjYgNi4yIDU1LjYgMTcuNCA4MEwxMjggNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE4OCAxOTguNCAxNDguOGMxMi42IDkuNCAyNi45IDE1LjQgNDEuNyAxNy45IDAgMS44LS4xIDMuNS0uMSA1LjN6bTQ4IDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LFhPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc2thdGluZyIsaWNvbjpbNTEyLDUxMixbInNrYXRpbmciXSwiZjdjNSIsIk0zNjggNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMjggMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE1MC4xIDBjNDkuOSAwIDc0LjkgNjAuMyAzOS42IDk1LjZsLTYzLjkgNjMuOSA2OS44IDMxYzE3LjMgNy43IDI4LjUgMjQuOSAyOC41IDQzLjlsMCA4NS42YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNzUuMi04Mi40LTM2LjZjLTQxLTE4LjItNTEtNzItMTkuMy0xMDMuN2w0MC40LTQwLjQtOTguNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNODkuNCAzNjEuNGw3NS45LTc1LjljNy43IDE5LjcgMjEuNiAzNy4zIDQxIDQ5LjZsLTcxLjYgNzEuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6bTM0Ni41IDg3LjFjOC42IDIuMSAxMy44IDEwLjggMTEuNiAxOS40bC0uNCAxLjdjLTYuMiAyNC45LTI4LjYgNDIuNC01NC4zIDQyLjRMMzA0IDUxMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4OC44IDBjMTEgMCAyMC42LTcuNSAyMy4zLTE4LjJsLjQtMS43YzIuMS04LjYgMTAuOC0xMy44IDE5LjQtMTEuNnpNMTQzLjIgNDg2LjNsLTYuMiAzLjFjLTIxLjYgMTAuOC00Ny42IDYuNi02NC42LTEwLjVMMTIuNyA0MTkuM2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDU5LjYgNTkuNmM3LjMgNy4zIDE4LjUgOS4xIDI3LjcgNC41bDYuMi0zLjFjNy45LTQgMTcuNS0uNyAyMS41IDcuMnMuNyAxNy41LTcuMiAyMS41eiJdfSxSQ3I9WE9lLGdwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdW4iLGljb246WzU3Niw1MTIsWzk3MjhdLCJmMTg1IiwiTTI4OC0zMmM4LjQgMCAxNi4zIDQuNCAyMC42IDExLjdMMzY0LjEgNzIuMyA0NjguOSA0NmM4LjItMiAxNi45IC40IDIyLjggNi4zUzUwMCA2NyA0OTggNzUuMWwtMjYuMyAxMDQuNyA5Mi43IDU1LjVjNy4yIDQuMyAxMS43IDEyLjIgMTEuNyAyMC42cy00LjQgMTYuMy0xMS43IDIwLjZMNDcxLjcgMzMyLjEgNDk4IDQzNi44YzIgOC4yLS40IDE2LjktNi4zIDIyLjhTNDc3IDQ2OCA0NjguOSA0NjZsLTEwNC43LTI2LjMtNTUuNSA5Mi43Yy00LjMgNy4yLTEyLjIgMTEuNy0yMC42IDExLjdzLTE2LjMtNC40LTIwLjYtMTEuN0wyMTEuOSA0MzkuNyAxMDcuMiA0NjZjLTguMiAyLTE2LjgtLjQtMjIuOC02LjNTNzYgNDQ1IDc4IDQzNi44bDI2LjItMTA0LjctOTIuNi01NS41QzQuNCAyNzIuMiAwIDI2NC40IDAgMjU2czQuNC0xNi4zIDExLjctMjAuNkwxMDQuMyAxNzkuOSA3OCA3NS4xYy0yLTguMiAuMy0xNi44IDYuMy0yMi44Uzk5IDQ0IDEwNy4yIDQ2bDEwNC43IDI2LjIgNTUuNS05Mi42IDEuOC0yLjZjNC41LTUuNyAxMS40LTkuMSAxOC44LTkuMXptMCAxNDRhMTQ0IDE0NCAwIDEgMCAwIDI4OCAxNDQgMTQ0IDAgMSAwIDAtMjg4em0wIDI0MGE5NiA5NiAwIDEgMSAwLTE5MiA5NiA5NiAwIDEgMSAwIDE5MnoiXX0sSk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsIixpY29uOls1MTIsNTEyLFsxMjkzNTgsOTkxOCwiYmFzZWJhbGwtYmFsbCJdLCJmNDMzIiwiTTIzMi40IDEuMWMtMTIyLjIgMTEuNC0yMTkuNSAxMDguNy0yMzAuOSAyMzAuOSAxNi4yLS4xIDMyLTEuOCA0Ny4yLTUgMTMtMi43IDI1LjcgNS41IDI4LjQgMTguNXMtNS41IDI1LjctMTguNSAyOC40Yy0xOC40IDMuOS0zNy42IDYtNTcuMSA2LjEgMTEuNCAxMjIuMiAxMDguNyAyMTkuNSAyMzAuOSAyMzAuOSAuMS0xOS41IDIuMi0zOC43IDYuMS01Ny4xIDIuNy0xMyAxNS41LTIxLjMgMjguNC0xOC41czIxLjMgMTUuNSAxOC41IDI4LjRjLTMuMiAxNS4yLTQuOSAzMS01IDQ3LjIgMTIyLjItMTEuNCAyMTkuNS0xMDguNyAyMzAuOS0yMzAuOS0xNi4yIC4xLTMyIDEuOC00Ny4yIDUtMTMgMi43LTI1LjctNS41LTI4LjQtMTguNXM1LjUtMjUuNyAxOC41LTI4LjRjMTguNC0zLjkgMzcuNi02IDU3LjEtNi4xLTExLjQtMTIyLjItMTA4LjctMjE5LjUtMjMwLjktMjMwLjktLjEgMTkuNS0yLjIgMzguNy02LjEgNTcuMS0yLjcgMTMtMTUuNSAyMS4zLTI4LjQgMTguNXMtMjEuMy0xNS41LTE4LjUtMjguNGMzLjItMTUuMiA0LjktMzEgNS00Ny4yem0yLjggMTUxLjRjLTIxLjQgMzIuOS00OS41IDYwLjktODIuMyA4Mi4zLTExLjEgNy4yLTI2IDQuMS0zMy4yLTdzLTQuMS0yNiA3LTMzLjJjMjcuMi0xNy43IDUwLjUtNDEgNjguMy02OC4zIDcuMi0xMS4xIDIyLjEtMTQuMyAzMy4yLTdzMTQuMyAyMi4xIDcgMzMuMnpNMzkzLjEgMjg0LjJjNy4yIDExLjEgNC4xIDI2LTcgMzMuMi0yNy4yIDE3LjctNTAuNSA0MS02OC4zIDY4LjMtNy4yIDExLjEtMjIuMSAxNC4zLTMzLjIgN3MtMTQuMy0yMi4xLTctMzMuMmMyMS40LTMyLjkgNDkuNS02MC45IDgyLjMtODIuMyAxMS4xLTcuMiAyNi00LjEgMzMuMiA3eiJdfSxGQ3I9Sk9lLEJDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzZSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA4MGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTI3MiAyMjRjOC40IDAgMTYuMSA0LjQgMjAuNSAxMS41bDg4IDE0NGM0LjUgNy40IDQuNyAxNi43IC41IDI0LjNTMzY4LjcgNDE2IDM2MCA0MTZMODggNDE2Yy04LjkgMC0xNy4yLTUtMjEuMy0xMi45cy0zLjUtMTcuNSAxLjYtMjQuOGw1Ni04MGM0LjUtNi40IDExLjgtMTAuMiAxOS43LTEwLjJzMTUuMiAzLjggMTkuNyAxMC4ybDI2LjQgMzcuOCA2MS40LTEwMC41YzQuNC03LjEgMTIuMS0xMS41IDIwLjUtMTEuNXoiXX0sSENyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdGRlZiIsaWNvbjpbMzg0LDUxMixbXSwiZTFmZSIsIk02NCAzOTAuM0wxNTMuNSAyNTYgNjQgMTIxLjcgNjQgMzkwLjN6TTEwMi41IDQ0OEwyODEuNSA0NDggMTkyIDMxMy43IDEwMi41IDQ0OHptMTI4LTE5MkwzMjAgMzkwLjMgMzIwIDEyMS43IDIzMC41IDI1NnpNMjgxLjUgNjRMMTAyLjUgNjQgMTkyIDE5OC4zIDI4MS41IDY0ek0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxNmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgNDh6Il19LGVSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXNrZXRiYWxsIixpY29uOls1MTIsNTEyLFsxMjc5MzYsImJhc2tldGJhbGwtYmFsbCJdLCJmNDM0IiwiTTkyLjcgNTguOGw3OC40IDc4LjRjMTguMi0yNSAyOC45LTU1LjkgMjguOS04OS4yIDAtMTQuMS0xLjktMjcuNy01LjUtNDAuNi0zOCA5LjQtNzIuNiAyNy4yLTEwMS44IDUxLjR6TTU4LjggOTIuN2MtMjQuMiAyOS4yLTQyIDYzLjgtNTEuNCAxMDEuOCAxMi45IDMuNiAyNi41IDUuNSA0MC42IDUuNSAzMy4zIDAgNjQuMS0xMC43IDg5LjItMjguOUw1OC44IDkyLjd6TTI1NiAwYy00LjYgMC05LjIgLjEtMTMuNyAuNCAzLjcgMTUuMyA1LjcgMzEuMiA1LjcgNDcuNiAwIDQ2LjYtMTUuOSA4OS40LTQyLjYgMTIzLjRMMjU2IDIyMi4xIDQxOS4zIDU4LjhDMzc0LjkgMjIuMSAzMTguMSAwIDI1NiAwek00OCAyNDhjLTE2LjQgMC0zMi40LTItNDcuNi01LjctLjIgNC41LS40IDkuMS0uNCAxMy43IDAgNjIuMSAyMi4xIDExOC45IDU4LjggMTYzLjNMMjIyLjEgMjU2IDE3MS40IDIwNS40QzEzNy40IDIzMi4xIDk0LjYgMjQ4IDQ4IDI0OHptNDYzLjYgMjEuN2MuMi00LjUgLjQtOS4xIC40LTEzLjcgMC02Mi4xLTIyLjEtMTE4LjktNTguOC0xNjMuM0wyODkuOSAyNTYgMzQwLjYgMzA2LjZjMzQtMjYuNyA3Ni45LTQyLjYgMTIzLjQtNDIuNiAxNi40IDAgMzIuNCAyIDQ3LjYgNS43em0tNy4xIDQ3LjhjLTEyLjktMy42LTI2LjUtNS41LTQwLjYtNS41LTMzLjMgMC02NC4xIDEwLjctODkuMiAyOC45bDc4LjQgNzguNGMyNC4yLTI5LjIgNDItNjMuOCA1MS40LTEwMS44ek0zNDAuOSAzNzQuOGMtMTguMiAyNS0yOC45IDU1LjktMjguOSA4OS4yIDAgMTQuMSAxLjkgMjcuNyA1LjUgNDAuNiAzOC05LjQgNzIuNi0yNy4yIDEwMS44LTUxLjRsLTc4LjQtNzguNHptLTM0LjMtMzQuM0wyNTYgMjg5LjkgOTIuNyA0NTMuMmM0NC4zIDM2LjcgMTAxLjIgNTguOCAxNjMuMyA1OC44IDQuNiAwIDkuMi0uMSAxMy43LS40LTMuNy0xNS4zLTUuNy0zMS4yLTUuNy00Ny42IDAtNDYuNiAxNS45LTg5LjQgNDIuNi0xMjMuNHoiXX0scUNyPWVSZSx0UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuY2lsIixpY29uOls1MTIsNTEyLFs5OTk5LDYxNTA0LCJwZW5jaWwtYWx0Il0sImYzMDMiLCJNMzYuNCAzNTMuMmM0LjEtMTQuNiAxMS44LTI3LjkgMjIuNi0zOC43bDE4MS4yLTE4MS4yIDMzLjktMzMuOWMxNi42IDE2LjYgNTEuMyA1MS4zIDEwNCAxMDRsMzMuOSAzMy45LTMzLjkgMzMuOS0xODEuMiAxODEuMmMtMTAuNyAxMC43LTI0LjEgMTguNS0zOC43IDIyLjZMMzAuNCA1MTAuNmMtOC4zIDIuMy0xNy4zIDAtMjMuNC02LjJTLTEuNCA0ODkuMyAuOSA0ODFMMzYuNCAzNTMuMnptNTUuNi0zLjdjLTQuNCA0LjctNy42IDEwLjQtOS4zIDE2LjZsLTI0LjEgODYuOSA4Ni45LTI0LjFjNi40LTEuOCAxMi4yLTUuMSAxNy05LjdMOTEuOSAzNDkuNXptMzU0LTE0Ni4xYy0xNi42LTE2LjYtNTEuMy01MS4zLTEwNC0xMDRMMzA4IDY1LjVDMzM0LjUgMzkgMzQ5LjQgMjQuMSAzNTIuOSAyMC42IDM2Ni40IDcgMzg0LjgtLjYgNDA0LS42UzQ0MS42IDcgNDU1LjEgMjAuNmwzNS43IDM1LjdDNTA0LjQgNjkuOSA1MTIgODguMyA1MTIgMTA3LjRzLTcuNiAzNy42LTIxLjIgNTEuMWMtMy41IDMuNS0xOC40IDE4LjQtNDQuOSA0NC45eiJdfSxWQ3I9dFJlLGpDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1hcnJvdy1sb29wLWxlZnQiLGljb246WzY0MCw1MTIsW10sImU1NTEiLCJNMTYwIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek03My40IDIyNy45bDIyLjYtMjIuNiAwIDY5LjNjMCAyOCAxMi4yIDU0LjcgMzMuNSA3Mi45bDcxLjQgNjEuMmM1LjkgNS4xIDkuOCAxMi4xIDEwLjkgMTkuOGwxMi42IDg4LjFjMi41IDE3LjUgMTguNyAyOS43IDM2LjIgMjcuMnMyOS43LTE4LjcgMjcuMi0zNi4ybC0xMi42LTg4LjFjLTMuMy0yMy4xLTE0LjktNDQuMS0zMi42LTU5LjNsLTM0LjUtMjkuNiAwLTExNS4yIDMuOCA0LjdjMTguMiAyMi44IDQ1LjggMzYgNzUgMzZsMzMuMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMy4yIDBjLTkuNyAwLTE4LjktNC40LTI1LTEybC0xNy45LTIyLjRjLTIzLTI4LjgtNTcuOS00NS42LTk0LjgtNDUuNi0zMi4yIDAtNjMuMSAxMi44LTg1LjggMzUuNkwyOC4xIDE4Mi42QzEwLjEgMjAwLjYgMCAyMjUgMCAyNTAuNUwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcuNWMwLTguNSAzLjQtMTYuNiA5LjQtMjIuNnpNODUuOCA0MDcuM2MtMS41IDUuMi00LjMgMTAtOC4xIDEzLjhMOS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOEw4NS44IDQwNy4zek0zNTkgMzM1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMxLTMxIDEwMi4xIDBjMS4yIDAgMi40LS4xIDMuNS0uMyA1Ni4xLTMuOSAxMDAuNS01MC42IDEwMC41LTEwNy43IDAtNTkuNi00OC40LTEwOC0xMDgtMTA4bC05MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDkyIDBjMzMuMSAwIDYwIDI2LjkgNjAgNjBzLTI2LjkgNjAtNjAgNjBsLTk4LjEgMCAzMS0zMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC03MiA3MnoiXX0sVUNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2Utc2l4IixpY29uOls0NDgsNTEyLFs5ODYxXSwiZjUyNiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTYwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHJSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtZG93biIsaWNvbjpbMzg0LDUxMixbImFuZ2xlLWRvdWJsZS1kb3duIl0sImYxMDMiLCJNMjE0LjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE5MiA0MDIuNyAzMjkuNCAyNjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwem0xNjAtMzUybC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxOTIgMjEwLjcgMzI5LjQgNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zeiJdfSxXQ3I9clJlLEdDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzeXJpbmdlIixpY29uOls1NzYsNTEyLFsxMjgxMzddLCJmNDhlIiwiTTQ5Ny41LTE3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE1IDE1LTQ2LjEgNDYuMS02My02M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3IDctNzguMSA3OC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQxLTQxLTQ2LjEgNDYuMSA0MSA0MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00MS00MS0zNy43IDM3LjdjLTEwLjUgMTAuNS0xNi40IDI0LjctMTYuNCAzOS42bDAgODguOC01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU3LTU3IDg4LjggMGMxNC45IDAgMjkuMS01LjkgMzkuNi0xNi40bDIyOS43LTIyOS43IDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTYzLTYzIDQ2LjEtNDYuMSAxNSAxNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY0LTY0eiJdfSxhUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlYXQtYXduIixpY29uOls1NzYsNTEyLFsid2hlYXQtYWx0Il0sImUyY2QiLCJNNzkuNyAyMzQuNmM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjIgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDQ2LjEgNDYuMWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNy40IDcuNGMtMzcuNSAzNy41LTk4LjMgMzcuNS0xMzUuOCAwTDEzNC4xIDQ0NC4zIDQ5LjQgNTI5Yy05LjQgOS40LTI0LjUgOS40LTMzLjkgMC05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4NC43LTg0LjctMzAuNS0zMC41Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xem0xMDQtMTA0YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMiA4My45IDMxLjctNy43IDY2LjIgMSA5MC42IDI1LjNsNDYuMSA0Ni4xYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03LjQgNy40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNDk1LjIgMTVjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjJMNTI5LjIgNDkgNDE0LjcgMTYzLjRjNy43IDEgMTUuMiAzIDIyLjUgNS45TDQ5NS41IDExMWM5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01Mi43IDUyLjcgMzkgMzljNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcuNCA3LjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMGwtOTQuOS05NC45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xYzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsMzkgMzkgNTIuNy01Mi43YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xbC0xLjcgMS44LTU4LjMgNTguM2MyLjggNy4xIDQuNyAxNC41IDUuNyAyMi4xTDQ5NS4yIDE1eiJdfSxZQ3I9YVJlLEtDcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS11cCIsaWNvbjpbNTEyLDUxMixbXSwiZTIyZCIsIk0yMDAgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDE3My42IDE1OS4yYzYuNiA2LjEgMTAuNCAxNC42IDEwLjQgMjMuNmwwIDQzLjdjMCAxMC45LTEwLjcgMTguNi0yMS4xIDE1LjJsLTE2Mi45LTU0LjMgMCA5OS43IDY2IDUyLjhjMy44IDMgNiA3LjYgNiAxMi41bDAgMTkuOGMwIDEwLjQtOS44IDE4LTE5LjkgMTUuNUwyNTYgNTEyIDE0Ny45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzI2LjcgMzk2LjQgMTYgMzg4LjcgMTYgMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjAwIDE1MS4zIDIwMCAyNHoiXX0sWkNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsaWduLWNlbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNyIsIk0zNTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTI4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem05NiAxMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNTIgMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnoiXX0sUUNyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvY2tleS1wdWNrIixpY29uOls1MTIsNTEyLFtdLCJmNDUzIiwiTTI1NiAyNTZDMTE0LjYgMjU2IDAgMjEzIDAgMTYwczExNC42LTk2IDI1Ni05NiAyNTYgNDMgMjU2IDk2LTExNC42IDk2LTI1NiA5NnpNMCAzNTJMMCAyNDIuN2MxNi45IDEyLjMgMzcgMjIuMiA1OC4xIDMwLjEgNTMgMTkuOSAxMjMgMzEuMiAxOTcuOSAzMS4yczE0NC45LTExLjMgMTk3LjktMzEuMmMyMS4yLTcuOSA0MS4yLTE3LjggNTguMS0zMC4xTDUxMiAzNTJjMCA1My0xMTQuNiA5Ni0yNTYgOTZTMCA0MDUgMCAzNTJ6Il19LGlSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctbGVmdCIsaWNvbjpbNTEyLDUxMixbImFycm93LWNpcmNsZS1sZWZ0Il0sImYwYTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEzNSAyMzlsODAtODBjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zOSAzOSAxNTAuMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNTAuMSAwIDM5IDM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sWENyPWlSZSxKQ3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtYm9sdCIsaWNvbjpbNjQwLDUxMixbXSwiZTU1YiIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTc3LjQtNzdjLTUuOC00LjItMTMuOC00LTE5LjQgLjVsLTgwIDY0Yy01LjMgNC4yLTcuNCAxMS40LTUuMSAxNy44UzQzMy4yIDQxNiA0NDAgNDE2bDMyLjkgMC0xNS45IDQyLjRjLTIuNSA2LjctLjIgMTQuMyA1LjYgMTguNnMxMy44IDQgMTkuNC0uNWw4MC02NGM1LjMtNC4yIDcuNC0xMS40IDUuMS0xNy44UzU1OC44IDM4NCA1NTIgMzg0bC0zMi45IDAgMTUuOS00Mi40YzIuNS02LjcgLjItMTQuMy01LjYtMTguNnoiXX0sZXpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlc3Ryb29tIixpY29uOls2NDAsNTEyLFtdLCJmN2JkIiwiTTgwIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE1NC44Yy04LjEgOS4yLTIxLjEgMTMuMi0zMy41IDkuNC0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwyOS43LTk1LjJDNDQuNCAxNTYuOSA4My42IDEyOCAxMjggMTI4czgzLjYgMjguOSA5Ni44IDcxLjJsMjkuNyA5NS4yYzUuMyAxNi45LTQuMSAzNC44LTIxIDQwLjEtMTIuNCAzLjktMjUuNC0uMi0zMy41LTkuNEwyMDAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTE2IDB6TTMyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDY0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00NjQgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNDQwIDQ4MGwwLTk2LTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsOS0yNi45Yy0zLjIgMC02LjQtLjUtOS41LTEuNS0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwyOS43LTk1LjJDNDI4LjQgMTU2LjkgNDY3LjYgMTI4IDUxMiAxMjhzODMuNiAyOC45IDk2LjggNzEuMmwyOS43IDk1LjJjNS4zIDE2LjktNC4xIDM0LjgtMjEgNDAuMS0zLjIgMS02LjQgMS41LTkuNSAxLjVsOSAyNi45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMWwtMTcuOCAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0xNiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6Il19LHR6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhZCIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMjguMyAwIDU1LjQtNS43IDgwLTE1LjlsMC0uMiAwLTcyLjJjLTE0LjQgOS42LTMwLjYgMTYuNy00OCAyMC43bDAtMjU3LjljMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2em0yNzIgMzA0LjFsMCA0Ny45LTY0IDAgMC00Ny45YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTQxNi41IDQwMGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0scnpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpbWVsaW5lIixpY29uOls1NzYsNTEyLFtdLCJlMjljIiwiTTE2MCAxNjkuM2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zIDAtNDQuMi0zNS44LTgwLTgwLTgwUzQ4IDUxLjggNDggOTZjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDU0LjctNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMCAwIDU0LjdjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtNTQuNyAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTU0LjdjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgNTQuNy0yNTYgMCAwLTU0Ljd6Il19LGF6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWdodGJ1bGIiLGljb246WzM4NCw1MTIsWzEyODE2MV0sImYwZWIiLCJNMjkyLjkgMzg0YzcuMy0yMi4zIDIxLjktNDIuNSAzOC40LTU5LjkgMzIuNy0zNC40IDUyLjctODAuOSA1Mi43LTEzMi4xIDAtMTA2LTg2LTE5Mi0xOTItMTkyUzAgODYgMCAxOTJjMCA1MS4yIDIwIDk3LjcgNTIuNyAxMzIuMSAxNi41IDE3LjQgMzEuMiAzNy42IDM4LjQgNTkuOWwyMDEuNyAwek0yODggNDMybC0xOTIgMCAwIDE2YzAgNDQuMiAzNS44IDgwIDgwIDgwbDMyIDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0xNnpNMTg0IDExMmMtMzkuOCAwLTcyIDMyLjItNzIgNzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjAgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LHNSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtcmlnaHQiXSwiZjBhOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNDEtMTU5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDM5LTM5LTE1MC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTUwLjEgMC0zOS0zOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04MCA4MHoiXX0saXpyPXNSZSxzenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1hbmQtdmVudXMiLGljb246WzUxMiw1MTIsWzk4OTNdLCJmMjI0IiwiTTM2OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzQuNy02MyA2M2MxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgODYuMy02Mi4xIDE1OC4xLTE0NCAxNzMuMWwwIDM0LjkgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzQuOWMtODEuOS0xNS0xNDQtODYuOC0xNDQtMTczLjEgMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzYgMzcgMCA3MS40IDExLjQgOTkuOCAzMWw2My02My0zNC43IDB6TTM1MiAyMDhhMTEyIDExMiAwIDEgMCAtMjI0IDAgMTEyIDExMiAwIDEgMCAyMjQgMHoiXX0sYnBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ldHdvcmstd2lyZWQiLGljb246WzU3Niw1MTIsW10sImY2ZmYiLCJNMjQ4IDg4bDgwIDAgMCA0OC04MCAwIDAtNDh6bS04LTU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDAgMCAzMi0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMzItMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDAgMC0zMiAxOTIgMCAwIDMyLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwIDAtMzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0zMiAxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTk2IDB6TTQ0OCAzNzZsOCAwIDAgNDgtODAgMCAwLTQ4IDcyIDB6bS0yNTYgMGw4IDAgMCA0OC04MCAwIDAtNDggNzIgMHoiXX0sbnpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRkOCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwMS4yIDBjLTEyLjUtMTQuNy0yMy4yLTMwLjgtMzEuOC00OGwtODkuNSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMCAwLTI2LjdjMC0xOC4xIDYuMS0zNS4yIDE2LjYtNDguOC0uNC0xLjQtLjYtMi45LS42LTQuNWwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDEgODYuNy0yOC45YzMuMS0xIDYuMi0xLjggOS4zLTIuNUw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQ0NS4zIDQ4OC41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0sb3pyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUiLGljb246WzU3Niw1MTIsW10sImYxMjEiLCJNMzYwLjggMS4yYy0xNy00LjktMzQuNyA1LTM5LjYgMjJsLTEyOCA0NDhjLTQuOSAxNyA1IDM0LjcgMjIgMzkuNnMzNC43LTUgMzkuNi0yMmwxMjgtNDQ4YzQuOS0xNy01LTM0LjctMjItMzkuNnptNjQuNiAxMzYuMWMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNzMuNCA3My40LTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwem0tMjc0LjcgMGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDE1MC42IDE4Mi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zeiJdfSxuUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVhdGhlci1wb2ludGVkIixpY29uOls1MTIsNTEyLFsiZmVhdGhlci1hbHQiXSwiZjU2YiIsIk00NzUuMyAuMWM5LjktLjggMTkuNiAzIDI2LjYgMTBzMTAuOCAxNi43IDEwIDI2LjZjLTQgNDkuMy0xNy40IDEyNi4yLTQ2LjMgMTk5LjctMS44IDQuNS01LjUgNy45LTEwLjIgOS4zTDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDM4LjYgMGMxMiAwIDE5LjcgMTIuOCAxMy41IDIzLjEtNCA2LjctOC4zIDEzLjItMTIuNyAxOS42LTIgMi45LTUgNS04LjQgNi4xTDMxMC41IDM2NmMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDE2IDBjMTQuNiAwIDIxIDE3LjQgOC44IDI1LjQtNjggNDUtMTM3LjcgNDMuMy0xODIuNCAzMS4zLTEyLjctMy40LTI0LTkuOS0zNC40LTE3LjlMNDggNDk2Yy04LjggOC44LTIzLjIgOC44LTMyIDBzLTguOC0yMy4yIDAtMzJsODAtODAgLjUgLjVjLjctMS4zIDEuNi0yLjUgMi43LTMuNkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw4OS43IDMyNi4yYy04LjkgOC45LTI0IDQuNC0yNS04LjItNC4zLTUzLjIgOS4zLTEyMy4xIDcyLjYtMTg2LjQgOTEuMS05MS4xIDI1NC4yLTEyNC43IDMzNy45LTEzMS41eiJdfSxsenI9blJlLGN6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LGR6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWduYXR1cmUiLGljb246WzY0MCw1MTIsW10sImY1YjciLCJNMTkyIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNy44YzAgMjcuNy0yLjQgNTUuMy03LjEgODIuNWwtODQuNCAyNS4zYy00MC42IDEyLjItNjguNCA0OS42LTY4LjQgOTJsMCAzMi40LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIuNSAwYzQuMiAzNiAzNC44IDY0IDcyIDY0IDI2IDAgNTAtMTMuOSA2Mi45LTM2LjVsMTMuOS0yNC4zYzI2LjgtNDcgNDYuNS05Ny43IDU4LjQtMTUwLjVsOTQuNC0yOC4zLTEyLjUgMzcuNWMtMy4zIDkuOC0xLjYgMjAuNSA0LjQgMjguOFM0MDUuNyAzMjAgNDE2IDMyMGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODMuNiAwIDE4LTUzLjljMy44LTExLjMgLjktMjMuOC03LjQtMzIuNHMtMjAuNy0xMS44LTMyLjItOC40TDMxNi40IDE5OC4xYzIuNC0yMC43IDMuNi00MS40IDMuNi02Mi4zbDAtNy44YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyem0tOS4yIDE3N2w0OS0xNC43Yy0xMC40IDMzLjgtMjQuNSA2Ni40LTQyLjEgOTcuMmwtMTMuOSAyNC4zYy0xLjUgMi42LTQuMyA0LjMtNy40IDQuMy00LjcgMC04LjUtMy44LTguNS04LjVsMC03MS45YzAtMTQuMSA5LjMtMjYuNiAyMi44LTMwLjd6TTYxNiA0MTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI5Mi45IDBjLTYuNSAxNi4zLTEzLjcgMzIuMy0yMS42IDQ4TDYxNiA0MTZ6Il19LEFfPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWFtZXJpY2FzIixpY29uOls1MTIsNTEyLFsxMjc3NTgsImVhcnRoIiwiZWFydGgtYW1lcmljYSIsImdsb2JlLWFtZXJpY2FzIl0sImY1N2QiLCJNNTUuNyAxOTkuN2wzMC45IDMwLjljNiA2IDE0LjEgOS40IDIyLjYgOS40bDIxLjUgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyOS4zIDI5LjNjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgMzcuNWMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmwxMy4zIDEzLjNjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgMTguN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMi43YzAtOC41IDMuNC0xNi42IDkuNC0yMi42bDQ1LjMtNDUuM2M2LTYgOS40LTE0LjEgOS40LTIyLjZsMC0zNC43YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2IDAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDM0LjcgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNiAwLTYtMi40LTExLjgtNi42LTE2bC0xOS43LTE5LjdDMjQyIDEzMCAyNDAgMTI1LjEgMjQwIDEyMHMyLTEwIDUuNy0xMy43bDE3LjMtMTcuM2M1LjgtNS44IDkuMS0xMy43IDkuMS0yMS45IDAtNy4yLTIuNC0xMy43LTYuNC0xOC45LTMuMi0uMS02LjQtLjItOS42LS4yLTk1LjQgMC0xNzUuNyA2NC4yLTIwMC4zIDE1MS43ek00NjQgMjU2YzAtMzQuNi04LjQtNjcuMi0yMy40LTk1LjgtNi40IC45LTEyLjcgMy45LTE3LjkgOS4xbC0xMy40IDEzLjRjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjQuMSAwYzIuNSAwIDUtLjMgNy4zLS44IC40LTUgLjUtMTAuMSAuNS0xNS4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSx1enI9QV8scHpyPUFfLGZ6cj1BXyxoenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fycm90IixpY29uOls2NDAsNTEyLFsxMjkzNjVdLCJmNzg3IiwiTTQ1My4xLTM2LjdMNDQwLjktMjQuNmMtMzEuMiAzMS4yLTMxLjIgODEuOSAwIDExMy4xIDE1LjYgMTUuNiAzMS4yIDMxLjIgNDYuOSA0Ni45IDMxLjIgMzEuMiA4MS45IDMxLjIgMTEzLjEgMGwxMi4xLTEyLjFjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZMNjAwLjkgODguNmMtMzEuMi0zMS4yLTgxLjktMzEuMi0xMTMuMSAwIDMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMUw0NzUuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNMzMxLjYgOTZjLTQ1LjIgMC04Ny4xIDIwLjQtMTE1IDU0LjNMMjczLjMgMjA3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTkxLjYgMTkzLjIgNjcuMiA0NjYuOGMtNS41IDEyLjEtMi45IDI2LjQgNi41IDM1LjlzMjMuNyAxMiAzNS45IDYuNWwxNDEuNi02NC40LTQzLjgtNDMuOGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDU2LjUgNTYuNSA5NS4zLTQzLjNjNTMuMS0yNC4xIDg3LjItNzcuMSA4Ny4yLTEzNS41IDAtODIuMi02Ni42LTE0OC44LTE0OC44LTE0OC44eiJdfSxFXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1mdWxsIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtNCIsInRoZXJtb21ldGVyLTQiLCJ0aGVybW9tZXRlci1mdWxsIl0sImYyYzciLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zTDEzNiA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjEyLjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSxtenI9RV8sZ3pyPUVfLGJ6cj1FXyx4enI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtcm93LWxvY2siLGljb246WzY0MCw1MTIsW10sImU2N2EiLCJNMjU2IDI4OGwwLTY0IDE1My4zIDBjMTcuMS00Mi4yIDU2LTczLjIgMTAyLjctNzlsMC00OWMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2bDAgMzIwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0MS4zIDBjLS45LTUuMi0xLjMtMTAuNi0xLjMtMTYuMWwwLTQ3LjktMTEyIDAgMC02NCAxMTMuMyAwYzMuNy0yMiAxNC44LTQxLjQgMzAuNy01NS42bDAtOC40LTE0NCAwem0wLTE5MmwxOTIgMCAwIDY0LTE5MiAwIDAtNjR6TTU2MCAyNzIuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDE2IDM2OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sdnpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbHQtbGlnaHRuaW5nIixpY29uOlszODQsNTEyLFtdLCJlMGI3IiwiTTAgMjU2TDI4LjUgMjhjMi0xNiAxNS42LTI4IDMxLjgtMjhMMjI4LjkgMGMxNSAwIDI3LjEgMTIuMSAyNy4xIDI3LjEgMCAzLjItLjYgNi41LTEuNyA5LjVMMjA4IDE2MCAzNDcuMyAxNjBjMjAuMiAwIDM2LjcgMTYuNCAzNi43IDM2LjcgMCA3LjQtMi4yIDE0LjYtNi40IDIwLjdsLTE5Mi4yIDI4MWMtNS45IDguNi0xNS42IDEzLjctMjUuOSAxMy43bC0yLjkgMGMtMTUuNyAwLTI4LjUtMTIuOC0yOC41LTI4LjUgMC0yLjMgLjMtNC42IC45LTYuOUwxNzYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHl6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zaG93ZXJzLXdhdGVyIixpY29uOls1MTIsNTEyLFtdLCJlNGU0IiwiTTI3OS4yIDU1LjdDMjYzLjkgMjIuOCAyMzAuNiAwIDE5MiAwIDEzOSAwIDk2IDQzIDk2IDk2IDYwLjcgOTYgMzIgMTI0LjcgMzIgMTYwczI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRsLTEuNiAwYy03LjQtMzYuNS0zOS43LTY0LTc4LjQtNjQtMjIuMiAwLTQyLjMgOS4xLTU2LjggMjMuN3pNNDEwLjYgNDc2LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwek0xMDAuMSAzMDMuNmM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NEMyOSAzNjUgMzUuOCAzNzguNiA0OC40IDM4Mi44czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMjAgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMTIgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMjAgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0eiJdfSxvUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctdXAiXSwiZjE3NiIsIk0xODIuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMjggNzcuMyAxMjggNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00MzQuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHoiXX0sd3pyPW9SZSxUdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWRkcmVzcy1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0MCwiY29udGFjdC1jYXJkIiwidmNhcmQiXSwiZjJiYiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04MCAyNTZsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMODAgMzg0Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI0MC00OGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgOTZsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxrenI9VHVlLFN6cj1UdWUsTXpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLXJpZ2h0IixpY29uOlsyNTYsNTEyLFs4MjUwXSwiZjEwNSIsIk0yNDcuMSAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTc5LjIgMjU2IDQxLjkgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MHoiXX0sbFJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbWVoIixpY29uOls1MTIsNTEyLFsxMjg1MjgsIm1laCJdLCJmMTFhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTE3NiAzMjBsMTYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxDenI9bFJlLHp6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1mcm9tLWdyb3VuZC13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRiNSIsIk0zMDMgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw4OCA4OGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00NyAwIDI3OC4xYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjc4LjEtNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMzAzIDd6TTI0MCAxOTJsMCAxNjMuMWMtMTAuNi0yLjItMjEuMy0zLjItMzItMy4xLTMyLjUgLjItNjQuOSAxMC43LTkyLjMgMzEuNC04LjggNi42LTE1LjkgMTAuOS0yMS43IDEzLjVsLS44IC40Yy0zLjcgMS43LTYuNCAyLjktOS44IC4zLTYtNC41LTEyLjYtOC0xOS4zLTEwLjRMNjQgMjQwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDEyOCAwem0zMzYgNDhsMCAxNTUuMmMtMS4xIC44LTIuMiAxLjUtMy4zIDIuNC00LjEgMy4xLTguMyAuOC0xMi42LTEuNS0uNi0uMy0xLjItLjYtMS44LTEtNS4yLTIuNy0xMS4xLTYuNi0xOC0xMS43LTI4LjEtMjEuMS02MS4zLTMxLjYtOTQuNC0zMS40LTE1LjUgLjEtMzEgMi41LTQ2IDcuM2wwLTE2Ny4zIDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek00MDMuNCA0NzYuMUMzNzkuMSA0OTQuMyAzNTEuMSA1MTIgMzIwIDUxMnMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LF96cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXAiLGljb246WzUxMiw1MTIsWzEyODUwNiw2MjA3Ml0sImYyNzkiLCJNNTEyIDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDM0OS41IDc3LjUgMTcwLjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzYuOCA4OC44IDAgOTkuOSAwIDExMkwwIDQ2NGMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTc5LjQgNTkuOGM4LjEgMi43IDE2LjggMi4xIDI0LjQtMS43bDEyOC02NGMxMC44LTUuNCAxNy43LTE2LjUgMTcuNy0yOC42bDAtMzUyek0xOTIgMzc2LjlsMC0yODQuNSAxMjggNDIuNyAwIDI4NC41LTEyOC00Mi43eiJdfSxUenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJmMjM0IiwiTTI4NS43IDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3Ny43IDUxMkM2MS4zIDUxMiA0OCA0OTguNyA0OCA0ODIuMyA0OCAzODMuOCAxMjcuOCAzMDQgMjI2LjMgMzA0bDU5LjQgMHpNNTI4IDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDggNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDgtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI1NiAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQweiJdfSxMenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVudXMiLGljb246WzM4NCw1MTIsWzk3OTJdLCJmMjIxIiwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0yMjMuOSAzNDkuMUMzMDUuOSAzMzQuMSAzNjggMjYyLjMgMzY4IDE3NiAzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NC4xIDE3My4xLS4xIDEtLjEgMS45LS4xIDIuOWwwIDY0LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtNjRjMC0xIDAtMS45LS4xLTIuOXoiXX0sRHpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tc3VjY2Vzc29yIixpY29uOls0NDgsNTEyLFtdLCJlNDdhIiwiTTI4OS4yIDEzNy45YzIuNS02IDguMy05LjkgMTQuOC05LjlsNDAgMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05OCAwYzEuMyA1LjEgMiAxMC41IDIgMTZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDI0IDQwIDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTY0IDY0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjR6TTM4NCA0ODBMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE2MCAxNjBsMC02NC05NiAwIDAgNjQgOTYgMHoiXX0sJHpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS1jb3VnaC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA2MiIsIk01MzUtMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNDEgNTM3LjFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMjUtMjUgMC00NDcuMmMwLTE1IDEwLjUtMjguMyAyNS40LTI5LjggNy40LS43IDE0LjktMS4xIDIyLjYtMS4xIDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMi4yIDIuNiAyMjcuNS0yMjcuNXpNMTMzLjggNTEyTDI4OCAzNTcuOCAyODggNDE2YzAgNTMtNDMgOTYtOTYgOTZsLTU4LjIgMHpNMTc2IDIyNGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMzNiA0MGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS04OCA3MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0tNjQgNDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTI4IDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tODgtMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sY1JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tcHJvamVjdCIsaWNvbjpbNTEyLDUxMixbInByb2plY3QtZGlhZ3JhbSJdLCJmNTQyIiwiTTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2IDEyOCAwIDAtMTZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2LTEyOCAwIDAgMTZjMCA3LjMtMS43IDE0LjMtNC42IDIwLjVsNjguNiA5MS41IDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTcuMyAxLjctMTQuMyA0LjYtMjAuNUwxMjggMjI0IDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHoiXX0sQXpyPWNSZSx4cGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVybWluYWwiLGljb246WzUxMiw1MTIsW10sImYxMjAiLCJNOS40IDExOC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE2MCAxNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDE0Ni43IDI1NiA5LjQgMTE4LjZ6TTIyNCAzODRsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxFenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtZmlyZSIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYyIsIk00NDggMTkyYzE0LjEgLjQgMjMuOCAxMS40IDMyLjcgMjEuNyAyIDIuMyA0IDQuNiA2IDYuN2wxOSAxOS45IDEyLjItMTMuOGM1LjQtNi4xIDEzLjMtOC45IDIwLjktOC45IDcuMiAwIDE0LjMgMi42IDE5LjkgNy44IDE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNiAxNS4xIDI3LjIgMjYuMiA1OC4yIDI2LjIgODguMiAwIDg4LjctNzEuMyAxNTkuOC0xNjAgMTU5LjgtODkuNiAwLTE2MC03MS4zLTE2MC0xNTkuOCAwLTM3LjMgMTYtNzMuNCAzNi44LTEwNC41IDIwLjktMzEuMyA0Ny41LTU5IDcwLjktODAuMSA1LjctNS4yIDEzLjEtNy43IDIwLjMtNy41ek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDE0Ny41IDEzN2MtMTkuMi00LjMtNDAgLjUtNTUuNSAxNC40LTM2LjQgMzIuNi02Ny43IDY5LjgtOTAuMyAxMDYuNC0xMC4zIDE2LjYtMTkuNyAzNC45LTI2LjggNTMuN0wyNzIgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDY0LjYgMGM3LjMgMTcuMiAxNi44IDMzLjQgMjguMiA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTQ4OS4zIDM0My43Yy01LjQtNC43LTEzLjEtNC43LTE4LjUgMC0xNy43IDE1LjQtNTQuNyA1MS45LTU0LjcgODguNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtMzYuNS0zNy03My01NC43LTg4LjR6Il19LEl6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrIixpY29uOls1NzYsNTEyLFtdLCJmNmZhIiwiTTI4OCA2NEM2NCA2NCAwIDE2MCAwIDI3MlM4MCA0NDggMTc2IDQ0OGw4LjQgMGMyNC4yIDAgNDYuNC0xMy43IDU3LjItMzUuNGwyMy4yLTQ2LjNjNC40LTguOCAxMy4zLTE0LjMgMjMuMi0xNC4zczE4LjggNS41IDIzLjIgMTQuM2wyMy4yIDQ2LjNjMTAuOCAyMS43IDMzIDM1LjQgNTcuMiAzNS40bDguNCAwYzk2IDAgMTc2LTY0IDE3Ni0xNzZTNTEyIDY0IDI4OCA2NHpNOTYgMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMzIwLTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxQenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaHVycmljYW5lIixpY29uOlszODQsNTEyLFtdLCJmNzUxIiwiTTAgMjA4QzAgMTA0LjQgNzUuNyAxOC41IDE3NC45IDIuNiAxODQgMS4yIDE5MiA4LjYgMTkyIDE3LjlsMCA2My4zYzAgOC40IDYuNSAxNS4zIDE0LjcgMTYuNSAxMDAuMyAxNC45IDE3Ny4zIDEwMS4zIDE3Ny4zIDIwNS43IDAgMTAzLjYtNzUuNyAxODkuNS0xNzQuOSAyMDUuNC05LjIgMS41LTE3LjEtNS45LTE3LjEtMTUuMmwwLTYzLjNDMTkyIDQyMS45IDE4NS41IDQxNSAxNzcuMyA0MTMuNyA3NyAzOTguOSAwIDMxMi40IDAgMjA4em0yODggNDhhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwem0tOTYtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxkUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYWZyaWNhIixpY29uOls1MTIsNTEyLFsxMjc3NTcsImdsb2JlLWFmcmljYSJdLCJmNTdjIiwiTTQ0Ny42IDE3NWMtMzEuNi03NC42LTEwNS41LTEyNy0xOTEuNi0xMjctMjIuMSAwLTQzLjQgMy41LTYzLjQgOS44LS40IDItLjYgNC4xLS42IDYuMmwwIDczLjRjMCAxMi41IDEwLjEgMjIuNiAyMi42IDIyLjYgNiAwIDExLjgtMi40IDE2LTYuNmwxNi0xNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsNS41IDBjMjguNSAwIDQyLjggMzQuNSAyMi42IDU0LjYtNiA2LTE0LjEgOS40LTIyLjYgOS40bC02MS41IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40bC0yMS4zIDIxLjNjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDQyLjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDIuNyAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40bDI5LjMtMjkuM2M2LTYgOS40LTE0LjEgOS40LTIyLjZsMC0xOC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNi03LjIgMTYtMTZsMC0zNC43YzAtOC41LTMuNC0xNi42LTkuNC0yMi42bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2IDAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDQ1IDBjMTIuNCAwIDIyLjctNy4xIDI4LTE3ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxOenI9ZFJlLHVSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnRhY2siLGljb246WzM4NCw1MTIsWzEyODIwNCwxMjgzOTIsInRodW1iLXRhY2siXSwiZjA4ZCIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOS41IDAgMTAuMyAxMzQuMWMzNy4xIDIxLjIgNjUuOCA1Ni40IDc4LjIgOTkuN2wzLjggMTMuNGMyLjggOS43IC44IDIwLTUuMiAyOC4xUzM2MiAzNTIgMzUyIDM1MkwzMiAzNTJjLTEwIDAtMTkuNS00LjctMjUuNS0xMi43cy04LTE4LjQtNS4yLTI4LjFMNSAyOTcuOGMxMi40LTQzLjMgNDEtNzguNSA3OC4yLTk5LjdMOTMuNSA2NCA2NCA2NEM0Ni4zIDY0IDMyIDQ5LjcgMzIgMzJ6TTE2MCA0MDBsNjQgMCAwIDExMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTExMnoiXX0sT3pyPXVSZSxSenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludC1kb3duIixpY29uOlszODQsNTEyLFtdLCJmMGE3IiwiTTMyIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjA4LTY0IDAgMCAyMDh6TTIyNCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjR6bS02NCA2NGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE2MC05NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NHptLTk2LTg4bDAgLjZjOS40LTUuNCAyMC4zLTguNiAzMi04LjYgMTMuMiAwIDI1LjQgNCAzNS42IDEwLjggOC43LTI0LjkgMzIuNS00Mi44IDYwLjQtNDIuOCAxMS43IDAgMjIuNiAzLjEgMzIgOC42bDAtOC42QzM4NCA3MS42IDMxMi40IDAgMjI0IDBMMTYyLjMgMEMxMTkuOCAwIDc5LjEgMTYuOSA0OS4xIDQ2LjlMMzcuNSA1OC41QzEzLjUgODIuNSAwIDExNS4xIDAgMTQ5bDAgMjdjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODggMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGwtNTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcyeiJdfSxwUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1tZWgtYmxhbmsiLGljb246WzUxMiw1MTIsWzEyODU2NiwibWVoLWJsYW5rIl0sImY1YTQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjA4LTQ4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTEyOCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEZ6cj1wUmUsSV89e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtZW1wdHkiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS0wIiwidGhlcm1vbWV0ZXItMCIsInRoZXJtb21ldGVyLWVtcHR5Il0sImYyY2IiLCJNNjQgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTQyLjYgMTguNS04MSA0OC0xMDcuM0w2NCA5NnptOTYgMzM2YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHoiXX0sQnpyPUlfLEh6cj1JXyxxenI9SV8sVnpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci1ub25lIixpY29uOls0NDgsNTEyLFtdLCJmODUwIiwiTTMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6TTE2MCAzMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTI4OCA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyek0xNjAgNDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnpNMjg4IDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNNDE2IDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTAtMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMzIgMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek00MTYgMzUyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMzIgMTYwYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMCAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek00MTYgMTYwYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHoiXX0sanpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpZ2hsaWdodGVyIixpY29uOls1NzYsNTEyLFtdLCJmNTkxIiwiTTMxNSAzMTVMNDczLjQgOTkuOSA0NDQuMSA3MC42IDIyOSAyMjkgMzE1IDMxNXptLTE4NyA1bDAgMCAwLTcxLjdjMC0xNS4zIDcuMi0yOS42IDE5LjUtMzguNkw0MjAuNiA4LjRDNDI4IDIuOSA0MzcgMCA0NDYuMiAwIDQ1Ny42IDAgNDY4LjUgNC41IDQ3Ni42IDEyLjZsNTQuOCA1NC44YzguMSA4LjEgMTIuNiAxOSAxMi42IDMwLjUgMCA5LjItMi45IDE4LjItOC40IDI1LjZMMzM0LjQgMzk2LjVjLTkgMTIuMy0yMy40IDE5LjUtMzguNiAxOS41bC03MS43IDAtMjUuNCAyNS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNTAuNy01MC43Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wxMjggMzIwek03IDQ2Ni4zbDUxLjctNTEuNyA3MC42IDcwLjYtMTkuNyAxOS43Yy00LjUgNC41LTEwLjYgNy0xNyA3TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjdjMC02LjQgMi41LTEyLjUgNy0xN3oiXX0sVXpyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtd2F2ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjUzYSIsIk0wIDQxOS42TDAgMTA5LjVjMC0yMy4yIDI0LjEtMzguNiA0Ni4zLTMyIDg3LjcgMjYuMiAxNDkuNyA1LjUgMjEyLjEtMTUuMyA2NC41LTIxLjUgMTI5LjQtNDMuMSAyMjMuMy0xMy4xIDE4LjUgNS45IDMwLjMgMjMuOCAzMC4zIDQzLjNsMCAzMTAuMWMwIDIzLjItMjQuMSAzOC42LTQ2LjIgMzItODcuNy0yNi4yLTE0OS44LTUuNS0yMTIuMSAxNS4zLTY0LjUgMjEuNS0xMjkuNCA0My4xLTIyMy4zIDEzLjEtMTguNS01LjktMzAuMy0yMy44LTMwLjMtNDMuM3pNMzM2IDI1NmMwLTUzLTM1LjgtOTYtODAtOTZzLTgwIDQzLTgwIDk2IDM1LjggOTYgODAgOTYgODAtNDMgODAtOTZ6TTEyMCA0MTMuNmM0LjQgMCA3LjktMy44IDcuMi04LjEtNC42LTI3LjgtMjctNDkuNS01NS4yLTUzLTQuNC0uNS04IDMuMS04IDcuNWwwIDM5LjljMCAzLjYgMi40IDYuOCA2IDcuNyAxNy45IDQuMiAzNC4zIDYuMSA1MCA2LjF6bTMxOC41LTUxLjFjNSAuOCA5LjUtMyA5LjUtOGwwLTQyLjZjMC00LjQtMy42LTguMS04LTcuNS0yNS4yIDMuMS00NS45IDIwLjktNTMuMiA0NC42LTEuNCA0LjcgMi4zIDkuMSA3LjIgOS4yIDE0LjIgLjQgMjkgMS43IDQ0LjQgNC4zek00NDggMTUybDAtMzkuOWMwLTMuNi0yLjUtNi44LTYtNy43LTE3LjktNC4yLTM0LjMtNi4xLTUwLTYuMS00LjQgMC03LjkgMy44LTcuMiA4LjEgNC42IDI3LjggMjcgNDkuNSA1NS4yIDUzIDQuNCAuNSA4LTMuMSA4LTcuNXpNMTI1LjIgMTYyLjljMS40LTQuNy0yLjMtOS4xLTcuMi05LjItMTQuMi0uNC0yOS0xLjctNDQuNC00LjMtNS0uOC05LjUgMy05LjUgOEw2NCAyMDBjMCA0LjQgMy42IDguMSA4IDcuNSAyNS4yLTMuMSA0NS45LTIwLjkgNTMuMi00NC42eiJdfSxXenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9pbGV0LXBhcGVyLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDcyIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk0LjUtOTQuNWM0MC4yLTIzIDY5LjUtOTYuOSA2OS41LTE4NC42IDAtMTA2LTQzLTE5Mi05Ni0xOTJzLTk2IDg2LTk2IDE5MmMwIDI0LjEgMi4yIDQ3LjIgNi4zIDY4LjRMMzA0IDIzOC4yIDMwNCAyMjRjMC01OC45IDExLjgtMTE0LjUgMzMuMi0xNTcuMiA1LjktMTEuNyAxMy4xLTIzLjcgMjEuOS0zNC44TDEyOCAzMmMtOC4zIDAtMTYuNCAyLjEtMjQuMSA2LjFsLTYzLTYzek0zMiAyMjRsMCAyNjRjMCAzMC45IDI1LjEgNTYgNTYgNTZsMTYwIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC0xMTQuMi0yNTYtMjU2QzM3LjkgMTQ4LjIgMzIgMTg0LjcgMzIgMjI0em00MTYgNjRjLTE3LjcgMC0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjQgMzIgMjguNyAzMiA2NC0xNC4zIDY0LTMyIDY0eiJdfSxHenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1zaGllbGQiLGljb246WzU3Niw1MTIsW10sImU0ZjAiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMDEuMiAwQzI2MSA0NjkuNCAyNDAgNDE0LjUgMjQwIDM1Ni40bDAtMzEuMWMwLTM0LjQgMjItNjUgNTQuNy03NS45bDExMi0zNy4zYzMuMS0xIDYuMi0xLjggOS4zLTIuNWwwLTM5LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6bTg3LjggMzEyLjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAweiJdfSxZenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGV4dC1oZWlnaHQiLGljb246WzU3Niw1MTIsW10sImYwMzQiLCJNNDAgMzJDMTcuOSAzMiAwIDQ5LjkgMCA3MmwwIDU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiA2NCAwIDAgMzIwLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMjAgNjQgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC01NmMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAzMnpNNDM4LjYgMzYxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05LjQgOS40IDAtMjI5LjUgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NGMtNi02LTE0LjEtOS40LTIyLjYtOS40cy0xNi42IDMuNC0yMi42IDkuNGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOS40LTkuNCAwIDIyOS41LTkuNC05LjR6Il19LGZSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlIixpY29uOls1MTIsNTEyLFsxMjg1MzksImdyaW4tdG9uZ3VlIl0sImY1ODkiLCJNMCAyNTZjMCAxMDQuNCA2Mi41IDE5NC4yIDE1Mi4yIDIzNC4xLTUuMy0xMy04LjItMjcuMi04LjItNDIuMWwwLTYxLjdjLTE2LjktMTYuNS0zMC4xLTM2LjctMzguMy01OS4zLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtOC4zIDIyLjYtMjEuNSA0Mi44LTM4LjMgNTkuM2wwIDYxLjdjMCAxNC45LTIuOSAyOS4xLTguMiA0Mi4xIDg5LjctMzkuOCAxNTIuMi0xMjkuNiAxNTIuMi0yMzQuMSAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzAgMTE0LjYgMCAyNTZ6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNiAyNDBsMC00NS40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgNDUuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxLenI9ZlJlLFp6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXNpZ25hdHVyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjU3MyIsIk02NC4xIDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDI3Ny42IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNDI5LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDk3LjUtMTMyIDEzMi00Mi4xIDAtMTYuMS01My42Yy00LjctMTUuNy0xOS4xLTI2LjQtMzUuNS0yNi40LTExLjMgMC0yMS45IDUuMS0yOC45IDEzLjlMMTMzLjMgNDA5Yy04LjMgMTAuMy02LjYgMjUuNSAzLjcgMzMuN3MyNS41IDYuNiAzMy43LTMuOGw0Ny4xLTU4LjggMTUuMiA1MC43YzMgMTAuMiAxMi40IDE3LjEgMjMgMTcuMWwzMS41IDBjLS45IDMuMS0xLjcgNi4zLTIuMyA5LjVsLTEwLjkgNTQuNS0xNDYuMiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTM4NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRsOTMuNSAwLTExNy41LTExNy41em02MC4yIDQwOC40YzIuNS0xMi40IDguNi0yMy44IDE3LjUtMzIuN2wxMTguOS0xMTguOSA4MCA4MC0xMTguOSAxMTguOWMtOC45IDguOS0yMC4zIDE1LTMyLjcgMTcuNWwtNTkuNiAxMS45Yy0uOSAuMi0xLjkgLjMtMi45IC4zLTggMC0xNC42LTYuNS0xNC42LTE0LjYgMC0xIC4xLTEuOSAuMy0yLjlsMTEuOS01OS42em0yNjcuOC0xMjNsLTI4LjggMjguOC04MC04MCAyOC44LTI4LjhjMjIuMS0yMi4xIDU3LjktMjIuMSA4MCAwczIyLjEgNTcuOSAwIDgweiJdfSxRenI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctd2hlYXQiLGljb246WzY0MCw1MTIsW10sImU0ZGIiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNDkuMyAwYy02LTE0LjgtOS4zLTMxLTkuMy00OCAwLTE3LjcgNy4yLTMzLjcgMTguOC00NS4zLTExLjktMTkuNC0xOC44LTQyLjMtMTguOC02Ni43IDAtMTcuNyA3LjItMzMuNyAxOC44LTQ1LjMtMTEuOS0xOS40LTE4LjgtNDIuMy0xOC44LTY2LjcgMC0yNS4yIDE0LjUtNDYuOSAzNS42LTU3LjQtMi40LTcuMS0zLjYtMTQuNy0zLjYtMjIuNmwwLTMyQzM2OCA5Ni43IDM4OCA3MC4xIDQxNS45IDYwLjEgNDEzLjkgMjYuNiAzODYgMCAzNTIgMEw5NiAwek0yMDggMzUybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC05NiAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEyOCAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTM1MiAwbC0xNiAwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTguOC03LjItMTYtMTYtMTZ6bTE2IDEyOGMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwem0wIDExMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwek00OTYgNTI4YzAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA0NC4yIDM1LjggODAgODAgODBsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZ6bS0xNi05NmM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxNiAwem0xNi0xMjhjMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNTEyIDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTA0YzAtMTMuMy0xMC43LTI0LTI0LTI0em05NiA2NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnpNNDQwIDEwNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFh6cj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1taW51cyIsaWNvbjpbNjQwLDUxMixbXSwiZTU1ZSIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjI0IDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xMjggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZ6Il19LEx1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmdXRib2wiLGljb246WzUxMiw1MTIsWzk5MTcsImZ1dGJvbC1iYWxsIiwic29jY2VyLWJhbGwiXSwiZjFlMyIsIk00MTcuMyAzNjAuMWwtNzEuNi00LjhjLTUuMi0uMy0xMC4zIDEuMS0xNC41IDQuMnMtNy4yIDcuNC04LjQgMTIuNWwtMTcuNiA2OS42QzI4OS41IDQ0NS44IDI3MyA0NDggMjU2IDQ0OHMtMzMuNS0yLjItNDkuMi02LjRMMTg5LjIgMzcyYy0xLjMtNS00LjMtOS40LTguNC0xMi41cy05LjMtNC41LTE0LjUtNC4ybC03MS42IDQuOGMtMTcuNi0yNy4yLTI4LjUtNTkuMi0zMC40LTkzLjZMMTI1IDIyOC4zYzQuNC0yLjggNy42LTcgOS4yLTExLjlzMS40LTEwLjItLjUtMTVsLTI2LjctNjYuNkMxMjggMTA5LjIgMTU1LjMgODkgMTg2LjcgNzYuOWw1NS4yIDQ2YzQgMy4zIDkgNS4xIDE0LjEgNS4xczEwLjItMS44IDE0LjEtNS4xbDU1LjItNDZjMzEuMyAxMi4xIDU4LjcgMzIuMyA3OS42IDU3LjlsLTI2LjcgNjYuNmMtMS45IDQuOC0yLjEgMTAuMS0uNSAxNXM0LjkgOS4xIDkuMiAxMS45bDYwLjcgMzguMmMtMS45IDM0LjQtMTIuOCA2Ni40LTMwLjQgOTMuNnpNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTE0LjEtMzI1LjdjLTguNC02LjEtMTkuOC02LjEtMjguMiAwTDE5NCAyMjFjLTguNCA2LjEtMTEuOSAxNi45LTguNyAyNi44bDE4LjMgNTYuM2MzLjIgOS45IDEyLjQgMTYuNiAyMi44IDE2LjZsNTkuMiAwYzEwLjQgMCAxOS42LTYuNyAyMi44LTE2LjZsMTguMy01Ni4zYzMuMi05LjktLjMtMjAuNy04LjctMjYuOGwtNDcuOS0zNC44eiJdfSxKenI9THVlLGVfcj1MdWUsaFJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1wbHVzIixpY29uOls1MTIsNTEyLFsicGx1cy1jaXJjbGUiXSwiZjA1NSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjMyIDM0NGwwLTY0LTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNjQgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LHRfcj1oUmUscl9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyYXppbGlhbi1yZWFsLXNpZ24iLGljb246WzUxMiw1MTIsW10sImU0NmMiLCJNNDAwIDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNDguOSAwYy0yNiAwLTQ3LjEgMjEuMS00Ny4xIDQ3LjEgMCAyMi41IDE1LjkgNDEuOCAzNy45IDQ2LjJsMzIuOCA2LjZjNTEuOSAxMC40IDg5LjMgNTYgODkuMyAxMDkgMCA1MC42LTMzLjggOTMuMy04MCAxMDYuN2wwIDIwLjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0LjkgMGMyNiAwIDQ3LjEtMjEuMSA0Ny4xLTQ3LjEgMC0yMi41LTE1LjktNDEuOC0zNy45LTQ2LjJsLTMyLjgtNi42Yy01MS45LTEwLjQtODkuMy01Ni04OS4zLTEwOSAwLTUwLjYgMzMuOC05My4yIDgwLTEwNi43TDM2OCA0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNTQuMy0zMCAxMDEuNS03NC40IDEyNi4xbDQxIDEzNi43YzUuMSAxNi45LTQuNSAzNC44LTIxLjUgMzkuOHMtMzQuOC00LjUtMzkuOC0yMS41TDEyMC4xIDMxOS44Yy0yLjcgLjEtNS40IC4yLTguMSAuMmwtNDggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwIDAgMTYweiJdfSxhX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1hbmQtY3Jlc2NlbnQiLGljb246WzUxMiw1MTIsWzk3NzBdLCJmNjk5IiwiTTAgMjU2YzAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTYgMzMgMCA2NC42IDYuMyA5My42IDE3LjcgNy40IDIuOSAxMS41IDEwLjcgOS44IDE4LjRzLTguOCAxMy0xNi43IDEyLjRjLTQuOC0uMy05LjctLjUtMTQuNi0uNS0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOGM0LjkgMCA5LjgtLjIgMTQuNi0uNSA3LjktLjUgMTUgNC43IDE2LjcgMTIuNHMtMi40IDE1LjUtOS44IDE4LjRDMzIwLjYgNTA1LjcgMjg5IDUxMiAyNTYgNTEyIDExNC42IDUxMiAwIDM5Ny40IDAgMjU2ek0zNzUuNCAxMzcuNGMzLjUtNy4xIDEzLjctNy4xIDE3LjIgMGwzMS41IDYzLjhjMS40IDIuOCA0LjEgNC44IDcuMiA1LjNsNzAuNCAxMC4yYzcuOSAxLjEgMTEgMTAuOCA1LjMgMTYuNGwtNTAuOSA0OS42Yy0yLjMgMi4yLTMuMyA1LjQtMi44IDguNWwxMiA3MC4xYzEuMyA3LjgtNi45IDEzLjgtMTMuOSAxMC4xbC02My0zMy4xYy0yLjgtMS41LTYuMS0xLjUtOC45IDBsLTYzIDMzLjFjLTcgMy43LTE1LjMtMi4zLTEzLjktMTAuMWwxMi03MC4xYy41LTMuMS0uNS02LjMtMi44LTguNUwyNjEgMjMzLjFjLTUuNy01LjYtMi42LTE1LjIgNS4zLTE2LjRsNzAuNC0xMC4yYzMuMS0uNSA1LjgtMi40IDcuMi01LjNsMzEuNS02My44eiJdfSxtUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zdXJwcmlzZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU4LCJzdXJwcmlzZSJdLCJmNWMyIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS00OCA4MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0saV9yPW1SZSxzX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9zcGl0YWwtdXNlciIsaWNvbjpbNjQwLDUxMixbXSwiZjgwZCIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyMS4zYy00Ni45IDE5LTgwIDY1LTgwIDExOC43IDAgMjcuNyA4LjggNTMuNCAyMy44IDc0LjQtNTEuNSAyMS04Ny44IDcxLjYtODcuOCAxMzAuNyAwIDEgMCAxLjkgMCAyLjlsLTE3NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA2NHpNMjA4IDQwMGwwIDY0IDUzLjQgMGM3LjItMjkuNCAyMS4zLTU2LjEgNDAuNC03OC4zLTYuMS0xOS41LTI0LjMtMzMuNy00NS44LTMzLjctMjYuNSAwLTQ4IDIxLjUtNDggNDh6TTI0OCA4OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMiAzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMHpNNDE2IDMwNGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6TTM1MiA1MTJjMC01MyA0My05NiA5Ni05Nmw5NiAwYzUzIDAgOTYgNDMgOTYgOTYgMCAxNy43LTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sbl9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tdXAtbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZTRiMCIsIk0yNjIuNiA0MjIuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwyNS40IDI1LjQgMC0xMTQuNy02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDI1NiAwIDAtMTE0LjctMjUuNCAyNS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w4MC04MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtMjUuNC0yNS40IDAgOTQuOGMtMjUuMyAyMC4zLTQyLjggNTAuMS00NyA4My45bC0xNDUgMCAwIDExNC43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0xOTIgMzJsMCAxNDQtNjQgMCAwLTE0NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00OTYgMzA0LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0zNTIgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxnUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyIixpY29uOls1MTIsNTEyLFsxMjgxOTMsMTI4NDQ3LDYxNzE2LCJmb2xkZXItYmxhbmsiXSwiZjA3YiIsIk02NCA0NDhsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjk4LjcgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI0MS4xIDQ0LjhDMjMwIDM2LjUgMjE2LjUgMzIgMjAyLjcgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NHoiXX0sb19yPWdSZSxsX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9sbHktYmVycnkiLGljb246WzUxMiw1MTIsW10sImY3YWEiLCJNMjU2LjIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0yNzcgMzgzLjhjMSAuMSAyLjEgLjIgMy4yIC4yIDM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjIuN2MwIDE2LjQgMTYgMjcuOSAzMS42IDIyLjhsMTIuOC00LjNjMTgtNiAzNy4zLTYuNSA1NS42LTEuNWwxOS40IDUuM2MxNy45IDQuOSAzNC40LTExLjYgMjkuNS0yOS41TDQ5NS45IDQ1MmMtNS0xOC4zLTQuNC0zNy42IDEuNS01NS42bDQuMy0xMi44YzUuMi0xNS41LTYuNC0zMS42LTIyLjgtMzEuNi0zNC42IDAtNjIuNy0yOC4xLTYyLjctNjIuN2wwLTMyYzAtMTYuNC0xNi0yNy45LTMxLjYtMjIuOGwtMTIuOCA0LjNjLTE4IDYtMzcuMyA2LjUtNTUuNiAxLjVsLTI5LjYtOC4xYy0yLjktLjgtNS45LTEtOC43LS43IDQuMiA5LjcgNS44IDIwLjggMy43IDMyLjNsLTYuMyAzNC44Yy0xLjUgOC40LTEuNCAxNyAuNSAyNS4zbDUuMyAyMy45YzIuOCAxMi43IDEuMSAyNS4yLTQgMzUuOXpNMTI3LjggMjM0LjVjLTE1LjUtNS4yLTMxLjYgNi40LTMxLjYgMjIuOGwwIDMyYzAgMzQuNi0yOC4xIDYyLjctNjIuNyA2Mi43LTE2LjQgMC0yNy45IDE2LTIyLjggMzEuNkwxNSAzOTYuNGM2IDE4IDYuNSAzNy4zIDEuNSA1NS42bC01LjMgMTkuNEM2LjQgNDg5LjQgMjIuOCA1MDUuOCA0MC43IDUwMWwxOS40LTUuM2MxOC4zLTUgMzcuNi00LjUgNTUuNiAxLjVsMTIuOCA0LjNjMTUuNSA1LjIgMzEuNi02LjQgMzEuNi0yMi44bDAtMzJjMC0zNC42IDI4LjEtNjIuNyA2Mi43LTYyLjcgMTYuNCAwIDI3LjktMTYgMjIuOC0zMS42bC00LjMtMTIuOGMtNi0xOC02LjUtMzcuMy0xLjUtNTUuNmw1LjMtMTkuNGM0LjktMTcuOS0xMS42LTM0LjQtMjkuNS0yOS41bC0xOS40IDUuM2MtMTguMyA1LTM3LjYgNC40LTU1LjYtMS41bC0xMi44LTQuM3pNMzg0LjIgMTQ0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LGNfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZW51cy1kb3VibGUiLGljb246WzY0MCw1MTIsWzk4OTBdLCJmMjI2IiwiTTE5MiAyODhhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0zNjggMTc2YzAgODYuMy02Mi4xIDE1OC4xLTE0NC4xIDE3My4xIC4xIDEgLjEgMS45IC4xIDIuOWwwIDY0IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTY0YzAtMSAwLTEuOSAuMS0yLjktODItMTUtMTQ0LjEtODYuOC0xNDQuMS0xNzMuMSAwLTk3LjIgNzguOC0xNzYgMTc2LTE3NlMzNjggNzguOCAzNjggMTc2ek0zNTcuNSAzMjdjMTQuNC0xNS44IDI2LjYtMzMuNyAzNi4xLTUzLjEgMTYuMSA5IDM0LjcgMTQuMSA1NC41IDE0LjEgNjEuOSAwIDExMi01MC4xIDExMi0xMTJTNTA5LjkgNjQgNDQ4IDY0Yy0xOS44IDAtMzguMyA1LjEtNTQuNSAxNC4xLTkuNS0xOS40LTIxLjYtMzcuMy0zNi4xLTUzLjEgMjYuNC0xNS45IDU3LjQtMjUgOTAuNS0yNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDg2LjMtNjIuMSAxNTguMS0xNDQuMSAxNzMuMSAuMSAuOSAuMSAxLjkgLjEgMi45bDAgNjQgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjRjMC0xIDAtMS45IC4xLTIuOS0yMS4xLTMuOS00MC45LTExLjUtNTguNi0yMi4yeiJdfSxkX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkLXF1ZXN0aW9uIixpY29uOlszODQsNTEyLFtdLCJlNGUzIiwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xOTIgMjQ4YzE2LjEgMCAyOS4yIDEzLjEgMjkuMiAyOS4yIDAgOC43LTMuMSAxMy45LTYuOSAxNy43LTQuNSA0LjQtMTAuNyA3LjUtMTYuOCA5LjUtMTQuOSA1LTI5LjUgMTkuMy0yOS41IDM5LjUgMCAxMy4zIDEwLjcgMjQgMjQgMjQgMTEuNSAwIDIxLjItOC4xIDIzLjUtMTkgMTkuMi03LjEgNTMuNy0yNi4zIDUzLjctNzEuOCAwLTQyLjYtMzQuNi03Ny4yLTc3LjItNzcuMnMtNzcuMiAzNC42LTc3LjIgNzcuMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTYuMSAxMy4xLTI5LjIgMjkuMi0yOS4yem0yOCAxNjhjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4eiJdfSx1X3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG90ZG9nIixpY29uOls1MTIsNTEyLFsxMjc3ODldLCJmODBmIiwiTTI4OCAwYy0yMC41IDAtNDAuMSA4LjEtNTQuNiAyMi42TDIyLjYgMjMzLjRDOC4xIDI0Ny45IDAgMjY3LjUgMCAyODggMCAzMDAuMiAyLjkgMzEyLjEgOC4yIDMyMi43TDMyMi43IDguMkMzMTIuMSAyLjkgMzAwLjIgMCAyODggMHpNMjI0IDUxMmMyMC41IDAgNDAuMS04LjEgNTQuNi0yMi42TDQ4OS40IDI3OC42YzE0LjUtMTQuNSAyMi42LTM0LjEgMjIuNi01NC42IDAtMTIuMi0yLjktMjQuMS04LjItMzQuN0wxODkuMyA1MDMuOGMxMC43IDUuNCAyMi42IDguMiAzNC43IDguMnpNNDU2LjYgMTY4LjZjMzEuMi0zMS4yIDMxLjItODEuOSAwLTExMy4xcy04MS45LTMxLjItMTEzLjEgMGwtMjg4IDI4OGMtMzEuMiAzMS4yLTMxLjIgODEuOSAwIDExMy4xczgxLjkgMzEuMiAxMTMuMSAwbDI4OC0yODh6Il19LHBfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1mcm9tLWJyYWNrZXQiLGljb246WzQ0OCw1MTIsW10sImUwOWEiLCJNMjQ2LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMTA5LjMgMTkyIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjEwLjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjh6TTY0IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDMzNC4zIDAgMzUybDAgNjRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6Il19LGZfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Njb3BlIixpY29uOls1MTIsNTEyLFsxMjgzMDBdLCJmNjEwIiwiTTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDIwOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjQgMzIgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFMzOTAuNyA0NDggMzIwIDQ0OEwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2LjkgMGMzMC40LTM0IDQ4LjktNzguOCA0OC45LTEyOCAwLTEwNi04Ni0xOTItMTkyLTE5MmwtMzIgMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDE3NiAwek0xMjAgMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMHoiXX0saF9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkIixpY29uOls1NzYsNTEyLFs5NzI5XSwiZjBjMiIsIk0wIDMzNmMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NGwzMDQgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTUxLjYtMzAuNS05Ni4xLTc0LjUtMTE2LjMgNi43LTEzLjEgMTAuNS0yOCAxMC41LTQzLjcgMC01My00My05Ni05Ni05Ni0xNy43IDAtMzQuMiA0LjgtNDguNCAxMy4xLTI0LjEtNDUuOC03Mi4yLTc3LjEtMTI3LjYtNzcuMS03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDggLjcgMTUuOSAxLjkgMjMuNS01Ni45IDE5LjItOTcuOSA3My4xLTk3LjkgMTM2LjV6Il19LG1fcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXNlYmFsbC1iYXQtYmFsbCIsaWNvbjpbNTc2LDUxMixbXSwiZjQzMiIsIk00NjQuMSA1NDRhODAgODAgMCAxIDEgMC0xNjAgODAgODAgMCAxIDEgMCAxNjB6bTguNC01NzZjMTUuMSAwIDI5LjcgNS44IDQwLjcgMTYuMmw0Ny4yIDQ0LjhjMTIuNiAxMiAxOS4xIDI5IDE3LjUgNDYuMy0xLjIgMTMuMy03IDI1LjgtMTYuNSAzNS4yTDM2My4xIDMwOWMtNy4zIDcuMy0xNS43IDEzLjQtMjUgMThMMjA2IDM5M2MtOS4yIDQuNi0xNy43IDEwLjctMjUgMThsLTkyIDkyIDEuNyAxLjhjNy43IDkuNCA3LjEgMjMuMy0xLjcgMzIuMXMtMjIuNyA5LjMtMzIuMSAxLjdsLTEuOC0xLjctNDgtNDgtMS43LTEuOGMtNy43LTkuNC03LjEtMjMuMyAxLjctMzIuMXMyMi43LTkuMyAzMi4xLTEuN2wxLjggMS43IDkyLTkyYzcuMy03LjMgMTMuNC0xNS43IDE4LTI1bDY2LjEtMTMyLjFjNC42LTkuMiAxMC43LTE3LjcgMTgtMjVMNDMwLjgtMTQuN0M0NDEuOS0yNS44IDQ1Ni45LTMyIDQ3Mi41LTMyeiJdfSxiUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLXJlYXIiLGljb246WzUxMiw1MTIsWyJjYXItYWx0Il0sImY1ZGUiLCJNMTY1LjQgOTZsMTgxLjIgMGMxMy42IDAgMjUuNyA4LjYgMzAuMiAyMS40bDI2LjEgNzQuNi0yOTMuOCAwIDI2LjEtNzQuNmM0LjUtMTIuOCAxNi42LTIxLjQgMzAuMi0yMS40em0tOTAuNiAuM0wzOS42IDE5Ni44QzE2LjQgMjA2LjQgMCAyMjkuMyAwIDI1NmwwIDk2YzAgMjMuNyAxMi45IDQ0LjQgMzIgNTUuNEwzMiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDI1NiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQwLjZjMTkuMS0xMS4xIDMyLTMxLjcgMzItNTUuNGwwLTk2YzAtMjYuNy0xNi40LTQ5LjYtMzkuNi01OS4yTDQzNy4yIDk2LjNDNDIzLjcgNTcuOCAzODcuNCAzMiAzNDYuNiAzMkwxNjUuNCAzMmMtNDAuOCAwLTc3LjEgMjUuOC05MC42IDY0LjN6TTIwOCAyODhsOTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTk2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDggMjgwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0zNjAtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sZ19yPWJSZSx4UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJ0YWNrLXNsYXNoIixpY29uOls1NzYsNTEyLFsidGh1bWItdGFjay1zbGFzaCJdLCJlNjhmIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDE3LjggMzUyIDQ0OCAzNTJjMTAgMCAxOS41LTQuNyAyNS41LTEyLjdzOC0xOC40IDUuMi0yOC4xTDQ3NSAyOTcuOGMtMTIuNC00My4zLTQxLTc4LjUtNzguMi05OS43TDM4Ni41IDY0IDQxNiA2NGMxNy43IDAgMzItMTQuMyAzMi0zMlM0MzMuNyAwIDQxNiAwTDE2MCAwYy03LjQgMC0xNC4xIDIuNS0xOS41IDYuNkwxOTAuMSA1Ni4zIDE4NS4zIDExOS40IDQxLTI0Ljl6TTI4Mi4yIDM1MkwxNDkuNyAyMTkuNmMtMjIuNyAyMC41LTM5LjggNDcuNC00OC43IDc4LjNsLTMuOCAxMy40Yy0yLjggOS43LS44IDIwIDUuMiAyOC4xUzExOCAzNTIgMTI4IDM1MmwxNTQuMiAwek0yNTYgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMTItNjQgMCAwIDExMnoiXX0sYl9yPXhSZSx4X3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1cy1taW51cyIsaWNvbjpbMzg0LDUxMixbXSwiZTQzYyIsIk0yMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMjgtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDAgMC0xMjh6TTAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LHZfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1MDkiLCJNNDk2IDU0NGExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMjE3LjYgMjAyYy0xMC4yLTEuNy0yMC43LTIuNi0zMS4zLTIuNi03OC42IDAtMTQ2LjEgNDcuMi0xNzUuOCAxMTQuOC01LjEtMS44LTEwLjUtMi44LTE2LjItMi44bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDkxIDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjEgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek01NTMuNCAzMzkuMWMtNy4xLTUuMi0xNy4xLTMuNi0yMi4zIDMuNWwtNTMgNzIuOC0yNi43LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjdzOC45LTIuOCAxMS43LTYuNmw2NC04OGM1LjItNy4xIDMuNi0xNy4xLTMuNS0yMi4zeiJdfSx5X3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItZGF5IixpY29uOls0NDgsNTEyLFtdLCJmNzgzIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAweiJdfSx3X3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlicmEiLGljb246WzUxMiw1MTIsW10sImU4NGIiLCJNNDgwIDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDQ4IDB6TTI1NiAzMmM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDE2LjYtMi40IDMyLjctNi43IDQ4bDU0LjcgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTA0LjIgMGMtMTEuOCAwLTIyLjctNi41LTI4LjItMTYuOXMtNC45LTIzLjEgMS42LTMyLjljMTEuOS0xNy44IDE4LjgtMzkuMSAxOC44LTYyLjIgMC02MS45LTUwLjEtMTEyLTExMi0xMTJTMTQ0IDE0Ni4xIDE0NCAyMDhjMCAyMy4xIDYuOSA0NC40IDE4LjggNjIuMiA2LjYgOS44IDcuMiAyMi41IDEuNiAzMi45UzE0OC4xIDMyMCAxMzYuMiAzMjBMMzIgMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDU0LjggMGMtNC4zLTE1LjMtNi44LTMxLjQtNi44LTQ4IDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2eiJdfSxrX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlIixpY29uOls1MTIsNTEyLFsxMjgzMDgsMTI4MzA5LDEyODk5MiwxMjg5OTMsMTI4OTk0LDEyODk5NSwxMjg5OTYsOTY3OSw5ODk4LDk4OTksMTEwNDQsNjE3MDgsNjE5MTVdLCJmMTExIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LFNfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtdmlicmF0ZSIsaWNvbjpbNTc2LDUxMixbXSwiZTgxNiIsIk0zODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTkyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzg0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDM4NCAwek0yNDggNDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6TTQ4LjggMTMzLjRjOS40LTcuNyAyMy4zLTcuMSAzMi4xIDEuNyA5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMzEgMzEgMjUuNCAyNS40IDIuOSAzLjJjNi4zIDcuNyA5LjggMTcuNCA5LjggMjcuNCAwIDExLjUtNC42IDIyLjUtMTIuNyAzMC42bC0yNS40IDI1LjQgMzEgMzEgMS43IDEuOGM3LjcgOS40IDcuMSAyMy4zLTEuNyAzMi4xcy0yMi43IDkuMy0zMi4xIDEuN0w0NyAzNzcgMTIuNyAzNDIuNkM1LjYgMzM1LjUgMS4yIDMyNi4yIC4yIDMxNi4zTDAgMzEyIC4yIDMwNy43YzEtOS45IDUuNC0xOS4yIDEyLjUtMjYuM0wzOC4xIDI1NiAxMi43IDIzMC42QzUuNiAyMjMuNSAxLjIgMjE0LjIgLjIgMjA0LjNMMCAyMDAgLjIgMTk1LjdjMS05LjkgNS40LTE5LjIgMTIuNS0yNi4zTDQ3IDEzNSA0OC44IDEzMy40ek00OTUgMTM1YzguOC04LjggMjIuNy05LjMgMzIuMS0xLjdsMS44IDEuNyAzNC4zIDM0LjNjNy4xIDcuMSAxMS41IDE2LjQgMTIuNSAyNi4zbC4yIDQuMy0uMiA0LjNjLTEgOS45LTUuNCAxOS4yLTEyLjUgMjYuM2wtMjUuNCAyNS40IDI1LjQgMjUuNGM3LjEgNy4xIDExLjUgMTYuNCAxMi41IDI2LjNsLjIgNC4zLS4yIDQuM2MtMSA5LjktNS40IDE5LjItMTIuNSAyNi4zbC0zNC4zIDM0LjMtMS44IDEuN2MtOS40IDcuNy0yMy4zIDcuMS0zMi4xLTEuN3MtOS4zLTIyLjctMS43LTMyLjFsMS43LTEuOCAzMS0zMS0yNS40LTI1LjRjLTguMS04LjEtMTIuNy0xOS4xLTEyLjctMzAuNiAwLTEwIDMuNS0xOS43IDkuOC0yNy40bDIuOS0zLjIgMjUuNC0yNS40LTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sdlJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODUxOCwiZ3Jpbi1zcXVpbnQiXSwiZjU4NSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg2LjcgMzA4LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDM4OC4yIDEwNS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTEyMi42IDE0My4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMTkyIDEyNS44IDE2NC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAxOTIgMzg2LjIgMjE5LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LE1fcj12UmUsQ19yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLWJldHdlZW4tbGluZXMiLGljb246WzU3Niw1MTIsW10sImU1OTEiLCJNMjQgMTZsNTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNjRDMTAuNyA2NCAwIDUzLjMgMCA0MFMxMC43IDE2IDI0IDE2em0wIDQ0OGw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTM5MiAxOTJhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0yNy4yIDEwMC40YzkuMS0yLjkgMTguOC00LjQgMjguOC00LjQgNTMgMCA5NiA0MyA5NiA5NmwwIDEwLjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtNzguOCAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0bDAtOGMwLTM0LjEtMTAuNi02NS43LTI4LjgtOTEuNnptLTI2Mi40IDBDMTM4LjYgMzE4LjMgMTI4IDM0OS45IDEyOCAzODRsMCA4YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNzguOCAwQzQxLjYgNDE2IDMyIDQwNi40IDMyIDM5NC43TDMyIDM4NGMwLTUzIDQzLTk2IDk2LTk2IDEwIDAgMTkuNyAxLjUgMjguOCA0LjR6TTcyIDE5MmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTE1Mi0xNmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTE3NiAzODRjMC02MS45IDUwLjEtMTEyIDExMi0xMTJzMTEyIDUwLjEgMTEyIDExMmwwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTh6Il19LHpfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTUxMyIsIk0zMDkuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzUwLjggMjcyIDY0IDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5NiAwYy0yMS4yLTI5LjUtMzQuMy02NS4zLTM1LjktMTA0TDI3MiA0MDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgMjAgMGMzNC45LTQ4LjUgOTEuNy04MCAxNTYtODAgMTAuNyAwIDIxLjEgLjkgMzEuMyAyLjVMMzA5LjggOC42ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDUxOC42IDQwMHoiXX0seVJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWxpc3QiLGljb246WzQ0OCw1MTIsWyJ0aC1saXN0Il0sImYwMGIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTY0IDBsMCA2NCA2NCAwIDAtNjQtNjQgMHptMzIwIDBsLTE5MiAwIDAgNjQgMTkyIDAgMC02NHpNNjQgMjI0bDAgNjQgNjQgMCAwLTY0LTY0IDB6bTMyMCAwbC0xOTIgMCAwIDY0IDE5MiAwIDAtNjR6TTY0IDM1MmwwIDY0IDY0IDAgMC02NC02NCAwem0zMjAgMGwtMTkyIDAgMCA2NCAxOTIgMCAwLTY0eiJdfSxfX3I9eVJlLFRfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFzay12aWFsIixpY29uOls2NDAsNTEyLFtdLCJlNGYzIiwiTTE4NC42IDQxMS41Yy0zLjEgNy4zLTUuNCAxNC45LTYuOCAyMi42LTE0LjUgOC44LTMxLjUgMTMuOS00OS44IDEzLjktNTMgMC05Ni00My05Ni05NkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwTDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMjU1LjYtMzkuNCA5MS45ek05NiA2NGwwIDEyOCA2NCAwIDAtMTI4LTY0IDB6TTM1MiAwTDUxMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTUzLjQgOTEuMyAyMTNjMi4zIDUuNCAzLjggMTEuMSA0LjQgMTdsLjMgLjYtLjMgMGMuMiAxLjggLjMgMy42IC4zIDUuNCAwIDMyLjMtMjYuMiA1OC42LTU4LjYgNTguNmwtMjY2LjkgMGMtMzIuMyAwLTU4LjYtMjYuMi01OC42LTU4LjYgMC0xLjggLjEtMy42IC4zLTUuNGwtLjMgMCAuMy0uNmMuNi01LjggMi4xLTExLjYgNC40LTE3TDMyMCAyMTcuNCAzMjAgNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzMwMi4zIDAgMzIwIDBsMzIgMHpNNDUzLjIgMjQyLjZjLTMuNC04LTUuMi0xNi41LTUuMi0yNS4ybDAtMTUzLjQtNjQgMCAwIDE1My40YzAgOC43LTEuOCAxNy4yLTUuMiAyNS4ybC0zMy4yIDc3LjQgMTQwLjcgMC0zMy4yLTc3LjR6Il19LHdSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzUxMiw1MTIsWyJleGNsYW1hdGlvbi1jaXJjbGUiXSwiZjA2YSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnptMC0xOTJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wLTE5MmMtMTguMiAwLTMyLjcgMTUuNS0zMS40IDMzLjdsNy40IDEwNGMuOSAxMi42IDExLjQgMjIuMyAyMy45IDIyLjMgMTIuNiAwIDIzLTkuNyAyMy45LTIyLjNsNy40LTEwNGMxLjMtMTguMi0xMy4xLTMzLjctMzEuNC0zMy43eiJdfSxMX3I9d1JlLGtSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXhpIixpY29uOls1MTIsNTEyLFsxMjg2NjIsImNhYiJdLCJmMWJhIiwiTTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTguOSAwYy00MiAwLTc5LjEgMjcuMy05MS42IDY3LjRsLTIzIDczLjVDMTQuNSAyMTkuMSAwIDI0My45IDAgMjcyTDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAzMjAgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNzZjMC0yOC4xLTE0LjUtNTIuOS0zNi40LTY3LjFsLTIzLTczLjVDNDQwLjEgOTEuMyA0MDIuOSA2NCAzNjAuOSA2NGwtOC45IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxOTIgMHpNMTUxLjEgMTI4bDIwOS45IDBjMTQgMCAyNi40IDkuMSAzMC41IDIyLjVsMTMgNDEuNS0yOTYuOSAwIDEzLTQxLjVjNC4yLTEzLjQgMTYuNS0yMi41IDMwLjUtMjIuNXpNOTYgMjcyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjg4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LERfcj1rUmUsU1JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRleHQtc2xhc2giLGljb246WzU3Niw1MTIsWyJyZW1vdmUtZm9ybWF0Il0sImY4N2QiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMjIuNyAyNTYuOSAzNjguMiA5NiA0NzEgOTYgNDY1IDEyMC4yYy00LjMgMTcuMSA2LjEgMzQuNSAyMy4zIDM4LjhzMzQuNS02LjEgMzguOC0yMy4zbDExLTQ0LjFDNTQ1LjYgNjEuMyA1MjIuNyAzMiA0OTEuNSAzMmwtMzE5IDBjLTE5LjggMC0zNy4zIDEyLjEtNDQuNSAzMC4xbC04Ny04N3pNMTgwLjQgMTE0LjVsNC42LTE4LjUgMTE2LjcgMC0zMC44IDEwOS05MC41LTkwLjV6TTI0MSAzMTAuOEwyMTEuMyA0MTYgMTYwIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDIuMiAwIDE1LjEtNTMuMy01MS45LTUxLjl6Il19LCRfcj1TUmUsQV9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1wdWxsaW5nIixpY29uOls1NzYsNTEyLFtdLCJlNTM1IiwiTTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMiA5LjggMCAxOC41LTQuNCAyNC40LTExLjJMODAuNCA0ODUuM2MyLjkgMTcuNCAxOS40IDI5LjIgMzYuOCAyNi4zczI5LjItMTkuNCAyNi4zLTM2LjhsLTIwLjUtMTIyLjcgMTUuNyAwIDMwIDEzNC45YzMuOCAxNy4zIDIwLjkgMjguMSAzOC4yIDI0LjNzMjguMS0yMC45IDI0LjMtMzguMmwtNTcuMy0yNTggMTE2LjMgNTMuOGMuNSAuMyAxLjEgLjUgMS42IC43IDguNiAzLjYgMTggMy4xIDI1LjktLjcgMy40LTEuNiA2LjYtMy45IDkuMy02LjcgMy4xLTMuMiA1LjUtNyA3LjEtMTEuNCAuMS0uMyAuMi0uNyAuMy0xbDIuNS03LjVjNS43LTE3LjEgMTguMy0zMC45IDM0LjctMzguMmw4LTMuNWMxLS40IDEuOS0uOCAyLjktMS4ybC0xNi45IDYzLjVjLTUuNiAyMS4xLS4xIDQzLjYgMTQuNyA1OS43bDcwLjcgNzcuMSAyMiA4OC4xYzQuMyAxNy4xIDIxLjcgMjcuNiAzOC44IDIzLjNzMjcuNi0yMS43IDIzLjMtMzguOGwtMjMtOTIuMWMtMS45LTcuOC01LjgtMTQuOS0xMS4yLTIwLjhsLTQ5LjUtNTQgMTkuMy02NS41IDkuNiAyM2M0LjQgMTAuNiAxMi41IDE5LjMgMjIuOCAyNC41bDI2LjcgMTMuM2MxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlsLTIxLjQtMTAuNy0xNS4zLTM2LjhjLTE3LjEtNDEuMS01Ny4zLTY3LjktMTAxLjktNjcuOS0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTI0LjQgMTAuOS00NC42IDI5LTU4LjEgNTEuNkwxNTcuMyAxMzYuOUMxNDQuNyAxMzEgMTMwLjkgMTI4IDExNyAxMjhsLTUzIDB6TTQ2NCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTM0OS43IDMzNS42bC0yNSA2Mi40LTU5LjQgNTkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwzNzIuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42eiJdfSxFX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFja3dhcmQiLGljb246WzU3Niw1MTIsWzkxOTRdLCJmMDRhIiwiTTIwNC4zIDQzLjFDMjE1LjkgMzIgMjMzIDI4LjkgMjQ3LjcgMzUuMlMyNzIgNTYgMjcyIDcybDAgMTM2LjMgMTcyLjMtMTY1LjFDNDU1LjkgMzIgNDczIDI4LjkgNDg3LjcgMzUuMlM1MTIgNTYgNTEyIDcybDAgMzY4YzAgMTYtOS42IDMwLjUtMjQuMyAzNi44cy0zMS44IDMuMi00My40LTcuOUwyNzIgMzAzLjcgMjcyIDQ0MGMwIDE2LTkuNiAzMC41LTI0LjMgMzYuOHMtMzEuOCAzLjItNDMuNC03LjlsLTE5Mi0xODRDNC41IDI3Ny4zIDAgMjY2LjkgMCAyNTZzNC41LTIxLjMgMTIuMy0yOC45bDE5Mi0xODR6Il19LE1SZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItYnVyc3QiLGljb246WzY0MCw1MTIsWyJjYXItY3Jhc2giXSwiZjVlMSIsIk0yMzIgMTYuMWwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHpNMzIgMTY4LjFsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHpNMjgxLjUgNzAuNmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwyODEuNSAzNi42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXptLTE4MSAyMTVsMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNjYuNiAyNTEuNmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwek02Ni42IDIuN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwxMDAuNSAyLjdDOTEuMS02LjcgNzYtNi43IDY2LjYgMi43ek0zNTIuOSAxNzUuNEw1MDUgMjE2LjJjNi40IDEuNyAxMS4xIDcuMyAxMS44IDEzLjlsNy4yIDc0LTIzMS41LTYyIDQzLjItNjAuNWMzLjktNS40IDEwLjctNy45IDE3LjItNi4yek0yMjMuNiAyMjguNWwtMi4xIDIuOWMtMjEuNyA1LjUtMzkuOSAyMi4zLTQ2LjEgNDUuNS00LjEgMTUuNS0xMi40IDQ2LjQtMjQuOCA5Mi43bC04LjMgMzAuOWMtNC42IDE3LjEgNS42IDM0LjYgMjIuNiAzOS4ybDE1LjUgNC4xYzE3LjEgNC42IDM0LjYtNS42IDM5LjItMjIuNmw4LjMtMzAuOSAyNzguMiA3NC41LTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42IDQuMS0xNS41IDEyLjQtNDYuNCAyNC44LTkyLjdsOC4zLTMwLjljNi4yLTIzLjItMS4xLTQ2LjgtMTcuMi02Mi41bC0uMy0zLjYtMTAtMTAzYy0zLjItMzMuMi0yNi43LTYwLjktNTguOS02OS41TDM2OS41IDExMy42Yy0zMi4yLTguNi02Ni40IDMuNi04NS44IDMwLjhsLTYwLjIgODQuMnptNDguNyA1Ny44YTMyIDMyIDAgMSAxIC0xNi42IDYxLjggMzIgMzIgMCAxIDEgMTYuNi02MS44em0yMDguMSA4OC45YTMyIDMyIDAgMSAxIDYxLjggMTYuNiAzMiAzMiAwIDEgMSAtNjEuOC0xNi42eiJdfSxJX3I9TVJlLENSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5rIixpY29uOls1NzYsNTEyLFsxMjgyNzksImNoYWluIl0sImYwYzEiLCJNNDE5LjUgOTZjLTE2LjYgMC0zMi43IDQuNS00Ni44IDEyLjctMTUuOC0xNi0zNC4yLTI5LjQtNTQuNS0zOS41IDI4LjItMjQgNjQuMS0zNy4yIDEwMS4zLTM3LjIgODYuNCAwIDE1Ni41IDcwIDE1Ni41IDE1Ni41IDAgNDEuNS0xNi41IDgxLjMtNDUuOCAxMTAuNmwtNzEuMSA3MS4xYy0yOS4zIDI5LjMtNjkuMSA0NS44LTExMC42IDQ1LjgtODYuNCAwLTE1Ni41LTcwLTE1Ni41LTE1Ni41IDAtMS41IDAtMyAuMS00LjUgLjUtMTcuNyAxNS4yLTMxLjYgMzIuOS0zMS4xczMxLjYgMTUuMiAzMS4xIDMyLjljMCAuOSAwIDEuOCAwIDIuNiAwIDUxLjEgNDEuNCA5Mi41IDkyLjUgOTIuNSAyNC41IDAgNDgtOS43IDY1LjQtMjcuMWw3MS4xLTcxLjFjMTcuMy0xNy4zIDI3LjEtNDAuOSAyNy4xLTY1LjQgMC01MS4xLTQxLjQtOTIuNS05Mi41LTkyLjV6TTI3NS4yIDE3My4zYy0xLjktLjgtMy44LTEuOS01LjUtMy4xLTEyLjYtNi41LTI3LTEwLjItNDIuMS0xMC4yLTI0LjUgMC00OCA5LjctNjUuNCAyNy4xTDkxLjEgMjU4LjJjLTE3LjMgMTcuMy0yNy4xIDQwLjktMjcuMSA2NS40IDAgNTEuMSA0MS40IDkyLjUgOTIuNSA5Mi41IDE2LjUgMCAzMi42LTQuNCA0Ni43LTEyLjYgMTUuOCAxNiAzNC4yIDI5LjQgNTQuNiAzOS41LTI4LjIgMjMuOS02NCAzNy4yLTEwMS4zIDM3LjItODYuNCAwLTE1Ni41LTcwLTE1Ni41LTE1Ni41IDAtNDEuNSAxNi41LTgxLjMgNDUuOC0xMTAuNmw3MS4xLTcxLjFjMjkuMy0yOS4zIDY5LjEtNDUuOCAxMTAuNi00NS44IDg2LjYgMCAxNTYuNSA3MC42IDE1Ni41IDE1Ni45IDAgMS4zIDAgMi42IDAgMy45LS40IDE3LjctMTUuMSAzMS42LTMyLjggMzEuMnMtMzEuNi0xNS4xLTMxLjItMzIuOGMwLS44IDAtMS41IDAtMi4zIDAtMzMuNy0xOC02My4zLTQ0LjgtNzkuNnoiXX0sUF9yPUNSZSx6UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFja3dhcmQtc3RlcCIsaWNvbjpbMzg0LDUxMixbInN0ZXAtYmFja3dhcmQiXSwiZjA0OCIsIk0zNjMgMzYuOGMtMTIuOS03LTI4LjctNi4zLTQxIDEuOEw2NCAyMDguMSA2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTQ0LjEgMjU4IDE2OS42YzEyLjMgOC4xIDI4IDguOCA0MSAxLjhzMjEtMjAuNSAyMS0zNS4ybDAtMzY4YzAtMTQuNy04LjEtMjguMi0yMS0zNS4yeiJdfSxOX3I9elJlLE9fcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4IixpY29uOlszODQsNTEyLFsxMjBdLCI1OCIsIk0zNzYuNiA4NC41YzExLjMtMTMuNiA5LjUtMzMuOC00LjEtNDUuMXMtMzMuOC05LjUtNDUuMSA0LjFMMTkyIDIwNiA1Ni42IDQzLjVDNDUuMyAyOS45IDI1LjEgMjguMSAxMS41IDM5LjRTLTMuOSA3MC45IDcuNCA4NC41TDE1MC4zIDI1NiA3LjQgNDI3LjVjLTExLjMgMTMuNi05LjUgMzMuOCA0LjEgNDUuMXMzMy44IDkuNSA0NS4xLTQuMUwxOTIgMzA2IDMyNy40IDQ2OC41YzExLjMgMTMuNiAzMS41IDE1LjQgNDUuMSA0LjFzMTUuNC0zMS41IDQuMS00NS4xTDIzMy43IDI1NiAzNzYuNiA4NC41eiJdfSxfUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXVzZXIiLGljb246WzUxMiw1MTIsWzYyMTQyLCJ1c2VyLWNpcmNsZSJdLCJmMmJkIiwiTTM5OSAzODQuMkMzNzYuOSAzNDUuOCAzMzUuNCAzMjAgMjg4IDMyMGwtNjQgMGMtNDcuNCAwLTg4LjkgMjUuOC0xMTEgNjQuMiAzNS4yIDM5LjIgODYuMiA2My44IDE0MyA2My44czEwNy44LTI0LjcgMTQzLTYzLjh6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiAxNmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHoiXX0sUl9yPV9SZSxUUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLWxpc3QiLGljb246WzUxMiw1MTIsWyJsaXN0LWFsdCJdLCJmMDIyIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em05NiAyNTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTIwLTU2bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCAxMjhsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxGX3I9VFJlLExSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kIixpY29uOls1MTIsNTEyLFsxMjkzMDYsOTk5NSwiaGFuZC1wYXBlciJdLCJmMjU2IiwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDIwOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI3MmMwIDEuNSAwIDMuMSAuMSA0LjZMNjcuNiAyODNjLTE2LTE1LjItNDEuMy0xNC42LTU2LjYgMS40Uy0zLjYgMzI1LjcgMTIuNCAzNDFMMTI0LjggNDQ4YzQzLjEgNDEuMSAxMDAuNCA2NCAxNjAgNjRsMTkuMiAwYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2bDAtMjA4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTEyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMjA4eiJdfSxCX3I9TFJlLEhfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW5jZXIiLGljb246WzUxMiw1MTIsW10sImU4NDciLCJNNDA4IDE1MmM1Ny40IDAgMTA0IDQ2LjYgMTA0IDEwNCAwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2LTU0LjMgMC0xMDQuOC0xNy0xNDYuMy00NS45LTE0LjUtMTAuMS0xOC0zMC4xLTcuOS00NC42czMwLjEtMTggNDQuNi03LjljMzEuMSAyMS43IDY4LjkgMzQuNCAxMDkuNyAzNC40IDY3LjkgMCAxMjcuNS0zNS4zIDE2MS43LTg4LjUtMy4yIC4zLTYuNCAuNS05LjcgLjUtNTcuNCAwLTEwNC00Ni42LTEwNC0xMDRzNDYuNi0xMDQgMTA0LTEwNHpNMjU2IDBjNTQuMyAwIDEwNC44IDE3IDE0Ni4zIDQ1LjkgMTQuNSAxMC4xIDE4IDMwLjEgNy45IDQ0LjZzLTMwLjEgMTgtNDQuNiA3LjljLTMxLjEtMjEuNy02OC45LTM0LjQtMTA5LjctMzQuNC02Ny45IDAtMTI3LjUgMzUuMi0xNjEuNyA4OC40IDMuMi0uMyA2LjQtLjQgOS43LS40IDU3LjQgMCAxMDQgNDYuNiAxMDQgMTA0UzE2MS40IDM2MCAxMDQgMzYwIDAgMzEzLjQgMCAyNTZDMCAyNTQuMSAwIDI1Mi4yIC4xIDI1MC40IDMuMSAxMTEuNiAxMTYuNSAwIDI1NiAwek0xMDQgMjE2YTQwIDQwIDAgMSAwIDAgODAgNDAgNDAgMCAxIDAgMC04MHptMzA0IDBhNDAgNDAgMCAxIDAgMCA4MCA0MCA0MCAwIDEgMCAwLTgweiJdfSxEUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmFuLXNodXR0bGUiLGljb246WzU3Niw1MTIsWzEyODY1Niwic2h1dHRsZS12YW4iXSwiZjViNiIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDMzNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwuNCAwYzQgNDQuOSA0MS43IDgwIDg3LjYgODBzODMuNi0zNS4xIDg3LjYtODBsMTA0LjcgMGM0IDQ0LjkgNDEuNyA4MCA4Ny42IDgwIDQ2LjEgMCA4My45LTM1LjQgODcuNy04MC41IDMxLjctMy44IDU2LjMtMzAuOCA1Ni4zLTYzLjVsMC0xMDEuM2MwLTEzLjgtNC41LTI3LjMtMTIuOC0zOC40bC04MC0xMDYuN0M0NzEuMSA3My41IDQ1Mi4xIDY0IDQzMiA2NEw2NCA2NHpNNTA0IDIyNGwtMTIwIDAgMC05NiA0OCAwIDcyIDk2ek02NCAyMjRsMC05NiA5NiAwIDAgOTYtOTYgMHptMTYwIDBsMC05NiA5NiAwIDAgOTYtOTYgMHpNMzkyIDM5MmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0xNTIgMzUyYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0scV9yPURSZSxWX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhaXJzIixpY29uOls1NzYsNTEyLFtdLCJlMjg5IiwiTTM4NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZ6Il19LGpfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3JzZS1oZWFkIixpY29uOls1MTIsNTEyLFtdLCJmN2FiIiwiTTAgNDY0TDAgMzE2LjlDMCAyMDguNSA2OC4zIDExMS44IDE3MC41IDc1LjZMMzQwLjIgMTUuNWMyMS40LTcuNiA0My44IDguMyA0My44IDMwLjkgMCAxMS01LjUgMjEuMi0xNC42IDI3LjNMMzM2IDk2YzQ4LjEgMCA5MS4yIDI5LjggMTA4LjEgNzQuOWw0OC42IDEyOS41YzExLjggMzEuNCA0LjEgNjYuOC0xOS42IDkwLjUtMTYgMTYtMzcuOCAyNS4xLTYwLjUgMjUuMWwtMy40IDBjLTI2LjEgMC01MC45LTExLjYtNjcuNi0zMS43bC0zMi4zLTM4LjdjLTExLjcgNC4xLTI0LjIgNi40LTM3LjMgNi40bC0uMSAwYy02LjMgMC0xMi41LS41LTE4LjYtMS41LTMuNi0uNi03LjItMS40LTEwLjctMi4zbDAgMGMtMjguOS03LjgtNTMuMS0yNi44LTY3LjgtNTIuMi00LjQtNy43LTE0LjItMTAuMy0yMS45LTUuOHMtMTAuMyAxNC4yLTUuOCAyMS45YzI0IDQxLjUgNjguMyA3MCAxMTkuMyA3MS45bDQ3LjIgNzAuOGM0IDYuMSA2LjIgMTMuMiA2LjIgMjAuNCAwIDIwLjMtMTYuNSAzNi44LTM2LjggMzYuOEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4ek0zMjggMjI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sVV9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZhdWx0IixpY29uOls1MTIsNTEyLFtdLCJlMmM1IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjQgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwyNTYgMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yNTYgMjU2YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNNjQgMjU2YTEyOCAxMjggMCAxIDEgMjU2IDAgMTI4IDEyOCAwIDEgMSAtMjU2IDB6bTM4NC00OGMwIDE3LjgtOS43IDMzLjMtMjQgNDEuNmwwIDc4LjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03OC40Yy0xNC4zLTguMy0yNC0yMy44LTI0LTQxLjYgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHoiXX0sV19yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3NlZC1jYXB0aW9uaW5nLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMTM1IiwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwxMjkuOCA2NCA0ODAgNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAyNS41LTE0LjkgNDcuNC0zNi40IDU3LjhMNTY5IDUwMy4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5LjFDLTIuMy0uMy0yLjMtMTUuNSA3LTI0Ljl6bTM0NSAzMTFsMC03MC4yYzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDIyLjIgNDggNDh6bTYxLjUgNjEuNWMyMC4yLTguNCAzNC41LTI4LjQgMzQuNS01MS43IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMjIuMiAwIDQzLjcgNDMuN3pNMTMwLjMgMjAwLjFjLTEuNSA1LTIuMyAxMC40LTIuMyAxNS45bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMxOC4xIDAgMzQuMS04LjUgNDQuNC0yMS44TDM3OC4yIDQ0OCA5NiA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjU2YzAtNy44IDEuNC0xNS4zIDQtMjIuMmw5NC4zIDk0LjN6bTkzLjggOTMuOGMtLjEgLjctLjEgMS40LS4xIDIuMSAwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTUwLjIgNDguMSA0OC4xeiJdfSxHX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bS1zdGVlbHBhbiIsaWNvbjpbNTc2LDUxMixbXSwiZjU2YSIsIk0yODggMzJjMTU5LjEgMCAyODggNDggMjg4IDEyOGwwIDE5MmMwIDgwLTEyOC45IDEyOC0yODggMTI4UzAgNDMyIDAgMzUyTDAgMTYwQzAgODAgMTI4LjkgMzIgMjg4IDMyek01MjggMTYwYzAtOS45LTgtMjkuOS01NS00OS44LTE4LjYtNy45LTQwLjktMTQuNC02Ni0xOS40bC0yNy44IDQzLjZjLTcuMyAxMS41LTExLjIgMjQuOC0xMS4yIDM4LjQgMCAxNy41IDYuNCAzNC40IDE4LjEgNDcuNWw5LjggMTFjMjkuOC01LjIgNTUuOS0xMi41IDc3LjItMjEuNSA0Ny4xLTE5LjkgNTUtMzkuOSA1NS00OS44ek0zNDkuMiAyMzcuM2MtOC0yNi4yLTMyLjQtNDUuMy02MS4yLTQ1LjNzLTUzLjMgMTkuMS02MS4yIDQ1LjNjMTkuNCAxLjcgMzkuOSAyLjcgNjEuMiAyLjdzNDEuOC0uOSA2MS4yLTIuN3pNMTY5IDkwLjhjLTI1LjIgNS00Ny40IDExLjYtNjYgMTkuNC00Ny4xIDE5LjktNTUgMzkuOS01NSA0OS44czggMjkuOSA1NSA0OS44YzIxLjMgOSA0Ny40IDE2LjMgNzcuMiAyMS41bDkuOC0xMWMxMS42LTEzLjEgMTguMS0zMCAxOC4xLTQ3LjUgMC0xMy42LTMuOS0yNi45LTExLjItMzguNEwxNjkgOTAuOHptNTYuMy04Yy0uOSA0LjMtMS40IDguNy0xLjQgMTMuMiAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtNC41LS41LTktMS40LTEzLjItMTkuOC0xLjgtNDAuOC0yLjgtNjIuNi0yLjhzLTQyLjggMS02Mi42IDIuOHoiXX0sWV9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRodW1icy11cCIsaWNvbjpbNTEyLDUxMixbMTI4MDc3LDYxNTc1XSwiZjE2NCIsIk04MCAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDQ4IDB6TTI3MC42IDE2QzI5Ny45IDE2IDMyMCAzOC4xIDMyMCA2NS40bDAgNC4yYzAgNi44LTEuMyAxMy42LTMuOCAxOS45TDI4OCAxNjAgNDQ4IDE2MGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDE5LjctMTEuOSAzNi42LTI4LjkgNDQgMTcgNy40IDI4LjkgMjQuMyAyOC45IDQ0IDAgMjMuNC0xNi44IDQyLjktMzkgNDcuMSA0LjQgNy4zIDcgMTUuOCA3IDI0LjkgMCAyMi4yLTE1IDQwLjgtMzUuNCA0Ni4zIDIuMiA1LjUgMy40IDExLjUgMy40IDE3LjcgMCAyNi41LTIxLjUgNDgtNDggNDhsLTg3LjkgMGMtMzYuMyAwLTcxLjYtMTIuNC05OS45LTM1LjFMMTg0IDQzNS4yYy0xNS4yLTEyLjEtMjQtMzAuNS0yNC01MGwwLTE4Ni42YzAtMTQuOSAzLjUtMjkuNiAxMC4xLTQyLjlMMjI2LjMgNDMuM0MyMzQuNyAyNi42IDI1MS44IDE2IDI3MC42IDE2eiJdfSxLX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhbXAiLGljb246WzUxMiw1MTIsW10sImY1YmYiLCJNMzEyIDIwMS44YzAtMTcuNCA5LjItMzMuMiAxOS45LTQ3IDEyLjYtMTYuMiAyMC4xLTM2LjYgMjAuMS01OC44IDAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMjIuMSA3LjUgNDIuNSAyMC4xIDU4LjggMTAuNyAxMy44IDE5LjkgMjkuNiAxOS45IDQ3IDAgMjkuOS0yNC4zIDU0LjItNTQuMiA1NC4yTDExMiAyNTZjLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtNjEuOS01MC4xLTExMi0xMTItMTEybC0zMy44IDBjLTI5LjkgMC01NC4yLTI0LjMtNTQuMi01NC4yek01NiA0NjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNTYgNDY0eiJdfSxaX3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVub3JhaCIsaWNvbjpbNjQwLDUxMixbXSwiZjY3NiIsIk0yMC44IDcuNEMyMi44IDIuOSAyNy4xIDAgMzIgMHM5LjIgMi45IDExLjIgNy40TDYxLjMgNDkuN2MxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFMNjQgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA4MS43IDAgNjRsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDIwLjggNy40em05NiAwQzExOC44IDIuOSAxMjMuMSAwIDEyOCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMlM5NiA4MS43IDk2IDY0bDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwxMTYuOCA3LjR6bTc3LjggNDIuNEwyMTIuOCA3LjRDMjE0LjggMi45IDIxOS4xIDAgMjI0IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNMzA4LjggNy40QzMxMC44IDIuOSAzMTUuMSAwIDMyMCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMMzA4LjggNy40em03Ny44IDQyLjRMNDA0LjggNy40QzQwNi44IDIuOSA0MTEuMSAwIDQxNiAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTUwMC44IDcuNEM1MDIuOCAyLjkgNTA3LjEgMCA1MTIgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDUwMC44IDcuNHptNzcuOCA0Mi40TDU5Ni44IDcuNEM1OTguOCAyLjkgNjAzLjEgMCA2MDggMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek0zMiAxMjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDAgMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE2MCAxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTI4YzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwIDAgNjQgMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEyOCAwIDAtNjQtMTkyIDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFFfcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZHJlbiIsaWNvbjpbNjQwLDUxMixbXSwiZTRlMSIsIk0xNjAuNSAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0tNzIgNDgwbDAtODAtMTcuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMUw4Ni43IDI4NS41IDU4IDMyMy4zYy0xMC43IDE0LjEtMzAuOCAxNi44LTQ0LjggNi4yUy0zLjcgMjk4LjcgNyAyODQuN0w2NS45IDIwN2MyMi40LTI5LjYgNTcuNS00NyA5NC42LTQ3czcyLjIgMTcuNCA5NC42IDQ3TDMxNCAyODQuN2MxMC43IDE0LjEgNy45IDM0LjItNi4yIDQ0LjhzLTM0LjIgNy45LTQ0LjgtNi4ybC0yOC43LTM3LjggMzEuMSA5My40YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMWwtMTcuOCAwIDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MC0xNiAwIDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6TTQ4MC41IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bS04IDM4NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTc5LjUtMTIuOSAyMC41Yy05LjQgMTUtMjkuMiAxOS40LTQ0LjEgMTBzLTE5LjQtMjkuMi0xMC00NC4xbDUxLjctODIuMWMxNy42LTI3LjkgNDguMy00NC45IDgxLjItNDQuOWwxMi4zIDBjMzMgMCA2My43IDE2LjkgODEuMiA0NC45TDYxOS42IDI4N2M5LjQgMTUgNC45IDM0LjctMTAgNDQuMXMtMzQuNyA0LjktNDQuMS0xMGwtMTIuOS0yMC41IDAgMTc5LjVjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0xNiAweiJdfSwkUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtbGluZSIsaWNvbjpbNTEyLDUxMixbImxpbmUtY2hhcnQiXSwiZjIwMSIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQwMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MDAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCA0MTZjLTguOCAwLTE2LTcuMi0xNi0xNkw2NCA2NHptNDA2LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwzMjAgMjEwLjcgMjYyLjYgMTUzLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw3My40LTczLjQgNTcuNCA1Ny40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LFhfcj0kUmUsQVJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1lbnZlbG9wZSIsaWNvbjpbNDQ4LDUxMixbImVudmVsb3BlLXNxdWFyZSJdLCJmMTk5IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOS4xIDI2Ny45TDEwOC40IDIwNy40Yy03LjctNC42LTEyLjQtMTIuOS0xMi40LTIxLjkgMC0xNC4xIDExLjQtMjUuNSAyNS41LTI1LjVsMjA0LjkgMGMxNC4xIDAgMjUuNSAxMS40IDI1LjUgMjUuNSAwIDktNC43IDE3LjMtMTIuNCAyMS45TDIzOC45IDI2Ny45Yy00LjUgMi43LTkuNiA0LjEtMTQuOSA0LjFzLTEwLjQtMS40LTE0LjktNC4xek0zNTIgMjM3LjNsMCA4Mi43YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC04Mi43IDk2LjcgNThDMjAyLjEgMzAxIDIxMyAzMDQgMjI0IDMwNHMyMS45LTMgMzEuMy04LjdsOTYuNy01OHoiXX0sSl9yPUFSZSxFUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFuLXNtb2tpbmciLGljb246WzUxMiw1MTIsWzEyODY4NSwic21va2luZy1iYW4iXSwiZjU0ZCIsIk05OS41IDE0NC44bDc5LjIgNzkuMi01MC43IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTQ2LjcgMCA5Mi41IDkyLjVjLTMxLjQgMjIuNC02OS44IDM1LjUtMTExLjIgMzUuNS0xMDYgMC0xOTItODYtMTkyLTE5MiAwLTQxLjUgMTMuMS03OS45IDM1LjUtMTExLjJ6TTMzMy4zIDI4OGwtMzItMzIgODIuNyAwIDAgMzItNTAuNyAwem0zMiAzMmwxOC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwyNjkuMyAyMjQgMTQ0LjggOTkuNWMzMS40LTIyLjQgNjkuOC0zNS41IDExMS4yLTM1LjUgMTA2IDAgMTkyIDg2IDE5MiAxOTIgMCA0MS41LTEzLjEgNzkuOS0zNS41IDExMS4yTDM2NS4zIDMyMHpNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI3MiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2czcuMiAxNiAxNiAxNiAxNi03LjIgMTYtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnMtNy4yLTE2LTE2LTE2eiJdfSxlVHI9RVJlLHRUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1mcm9udCIsaWNvbjpbNDQ4LDUxMixbXSwiZTJiNyIsIk0wIDExMkMwIDY3LjggMzUuOCAzMiA4MCAzMmwyODggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDI1NmMwIDI2LjItMTIuNiA0OS40LTMyIDY0bDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzItMTkyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00OEMxMi42IDQxNy40IDAgMzk0LjIgMCAzNjhMMCAxMTJ6bTk2IDgwbDAgNjQgMjU2IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0zMiAxNjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjI0IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sdnBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTE3NiAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNOTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LHJUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWxsc2V5ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjE0MCIsIk00NDggMjU2YTE5MiAxOTIgMCAxIDAgLTM4NCAwIDE5MiAxOTIgMCAxIDAgMzg0IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiA4MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMC0yMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4ek0yMjQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LElSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1sZWZ0LWxvbmciLGljb246WzU3Niw1MTIsWyJsb25nLWFycm93LWxlZnQiXSwiZjE3NyIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDEyOCAxMjhjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyODggNTQ0IDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDM0LjcgMCA3My40LTczLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjh6Il19LGFUcj1JUmUsaVRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXJvb2siLGljb246WzM4NCw1MTIsWzk4MjBdLCJmNDQ3IiwiTTAgMzJMMCAxMzMuNWMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM0w2NCAyMjQgNjQgMzg0IDcuOCA0NTQuM0MyLjcgNDYwLjYgMCA0NjguNCAwIDQ3Ni41IDAgNDk2LjEgMTUuOSA1MTIgMzUuNSA1MTJsMzEyLjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMmwtNTYuMi03MC4zIDAtMTYwIDQ1LjMtNDUuM2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDM4NCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi00OCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItNDggMCAwLTMyQzk2IDE0LjMgODEuNyAwIDY0IDBMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJ6Il19LHNUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJibGVuZGVyLXBob25lIixpY29uOls1NzYsNTEyLFtdLCJmNmI2IiwiTTE1MS40IDEzLjJjMTAuMiA1LjggMTQuNSAxOC40IDEwIDI5LjNMMTM4LjIgOTguOGMtMy45IDkuNi0xMy43IDE1LjQtMjQgMTQuNGwtMjAuMi0yQzc4LjcgMTUyLjkgNzggMTk4LjkgOTEuOSAyNDEuMWwyMi40LTIuMmMxMC4zLTEgMjAgNC44IDI0IDE0LjRsMjMuMiA1Ni4zYzQuNSAxMC45IC4yIDIzLjQtMTAgMjkuM2wtMi45IDEuNmMtMzMuNiAxOS4yLTgxLjcgMTYuMi0xMDYuMi0yMS42LTU2LjMtODYuNi01Ni4zLTE5OS4xIDAtMjg1LjcgMjQuNi0zNy43IDcyLjctNDAuNyAxMDYuMi0yMS42bDIuOSAxLjZ6TTIyNCAzMzZMMTkzLjcgMTcuNUMxOTIuOCA4LjEgMjAwLjIgMCAyMDkuNiAwbDMyNCAwYzIxLjMgMCAzNi42IDIwLjMgMzAuOCA0MC44TDU1My4xIDgwIDQ0MCA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5OS40IDAtMTguMyA2NC04MS4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjcuNCAwLTI3LjQgOTYtMjU2IDB6bTggNDhsMjQwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQwIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6bTEyMCA4OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFBSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10dXJuLXVwIixpY29uOlszODQsNTEyLFsibGV2ZWwtdXAiXSwiZjE0OCIsIk0zMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzA2LjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMDkuMyAxNjAgNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAweiJdfSxuVHI9UFJlLG9Ucj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaWN5Y2xlIixpY29uOls2NDAsNTEyLFsxMjg2OTBdLCJmMjA2IiwiTTMzMS43IDQzLjNDMzM2IDM2LjMgMzQzLjcgMzIgMzUyIDMybDEwNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NS42IDAgNzIuMiAxNDguNGMxMC43LTIuOSAyMS45LTQuNCAzMy40LTQuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHMtNTcuMyAxMjgtMTI4IDEyOC0xMjgtNTcuMy0xMjgtMTI4YzAtNDIgMjAuMi03OS4yIDUxLjQtMTAyLjZsLTIwLjQtNDEuOS03My41IDE0N2MtMi4zIDQuOC02LjMgOC44LTExLjQgMTEuMi0uNiAuMy0xLjIgLjUtMS44IC43LTIuOSAxLjEtNS45IDEuNi04LjkgMS41TDI3MSAzNjhjLTcuOSA2My4xLTYxLjcgMTEyLTEyNyAxMTItNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhTNzMuMyAyMjQgMTQ0IDIyNGMxMC44IDAgMjEuMiAxLjMgMzEuMiAzLjhsMjguNS01Ni45LTExLjUtMjYuOS00MC4yIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNTYgMGM5LjYgMCAxOC4zIDUuNyAyMi4xIDE0LjVsMTQuMyAzMy41IDEyMy43IDAtMzcuNy03Ny41Yy0zLjYtNy40LTMuMi0xNi4yIDEuMi0yMy4yek0yMjguNSAyMjguN2wtNDUuNiA5MS4zIDg0LjggMC0zOS4xLTkxLjN6TTMwNS43IDI4N2w0Ny41LTk1LTg4LjIgMCA0MC43IDk1em0xNjguNyA3NS41bC0yOS43LTYxYy0xMi44IDEzLTIwLjcgMzAuOC0yMC43IDUwLjUgMCAzOS44IDMyLjIgNzIgNzIgNzJzNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyYy0yLjcgMC01LjUgLjItOC4xIC41bDI5LjcgNjFjNS44IDExLjkgLjggMjYuMy0xMS4xIDMyLjFzLTI2LjMgLjgtMzIuMS0xMS4xek0xNDkuMiAzNjhjLTIwLjIgMC0zMy40LTIxLjMtMjQuMy0zOS40bDI0LjItNDguNWMtMS43LS4xLTMuNC0uMi01LjEtLjItMzkuOCAwLTcyIDMyLjItNzIgNzJzMzIuMiA3MiA3MiA3MmMzNC4zIDAgNjIuOS0yMy45IDcwLjItNTZsLTY1IDB6Il19LE5SZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctZG93biIsaWNvbjpbNTEyLDUxMixbImFycm93LWNpcmNsZS1kb3duIl0sImYwYWIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIzOSAzNzdsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzkgMzkgMC0xNTAuMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTUwLjEgMzktMzljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC04MCA4MGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDB6Il19LGxUcj1OUmUsUV89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VhciIsaWNvbjpbNTEyLDUxMixbOTg4MSwiY29nIl0sImYwMTMiLCJNMTk1LjEgOS41QzE5OC4xLTUuMyAyMTEuMi0xNiAyMjYuNC0xNmw1OS44IDBjMTUuMiAwIDI4LjMgMTAuNyAzMS4zIDI1LjVMMzMyIDc5LjVjMTQuMSA2IDI3LjMgMTMuNyAzOS4zIDIyLjhsNjcuOC0yMi41YzE0LjQtNC44IDMwLjIgMS4yIDM3LjggMTQuNGwyOS45IDUxLjhjNy42IDEzLjIgNC45IDI5LjgtNi41IDM5LjlMNDQ3IDIzMy4zYy45IDcuNCAxLjMgMTUgMS4zIDIyLjdzLS41IDE1LjMtMS4zIDIyLjdsNTMuNCA0Ny41YzExLjQgMTAuMSAxNCAyNi44IDYuNSAzOS45bC0yOS45IDUxLjhjLTcuNiAxMy4xLTIzLjQgMTkuMi0zNy44IDE0LjRsLTY3LjgtMjIuNWMtMTIuMSA5LjEtMjUuMyAxNi43LTM5LjMgMjIuOGwtMTQuNCA2OS45Yy0zLjEgMTQuOS0xNi4yIDI1LjUtMzEuMyAyNS41bC01OS44IDBjLTE1LjIgMC0yOC4zLTEwLjctMzEuMy0yNS41bC0xNC40LTY5LjljLTE0LjEtNi0yNy4yLTEzLjctMzkuMy0yMi44TDczLjUgNDMyLjNjLTE0LjQgNC44LTMwLjItMS4yLTM3LjgtMTQuNEw1LjggMzY2LjFjLTcuNi0xMy4yLTQuOS0yOS44IDYuNS0zOS45bDUzLjQtNDcuNWMtLjktNy40LTEuMy0xNS0xLjMtMjIuN3MuNS0xNS4zIDEuMy0yMi43TDEyLjMgMTg1LjhjLTExLjQtMTAuMS0xNC0yNi44LTYuNS0zOS45TDM1LjcgOTQuMWM3LjYtMTMuMiAyMy40LTE5LjIgMzcuOC0xNC40bDY3LjggMjIuNWMxMi4xLTkuMSAyNS4zLTE2LjcgMzkuMy0yMi44TDE5NS4xIDkuNXpNMjU2LjMgMzM2YTgwIDgwIDAgMSAwIC0uNi0xNjAgODAgODAgMCAxIDAgLjYgMTYweiJdfSxjVHI9UV8sZFRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtYW5kLXZlbnVzLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTIzIiwiTTQ2NC0zMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzNC43IDAtNjMgNjNjLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzEtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC0zNy0xMS40LTcxLjQtMzEtOTkuOGw2My02MyAwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNjggOTZhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0ek0xOTAuOS0yMS45QzE4OC40LTI4IDE4Mi42LTMyIDE3Ni0zMnMtMTIuNCA0LTE0LjkgMTAuMWwtMjkuNCA3NC03Ni4yLTIzLjFjLTYuMy0xLjktMTMuMSAuMi0xNy4yIDUuM1MzMy44IDQ2LjUgMzcgNTIuMmwzOS41IDY5LjEtNjUuNiA0NS4xYy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yLTUuNiA3OS40Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE1Mi4xIDI2OGMtNS4zLTE5LjEtOC4xLTM5LjItOC4xLTYwIDAtNjUuNCAyOC0xMjQuMiA3Mi42LTE2NS4xTDE5MC45LTIxLjl6Il19LHVUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvdHRlciIsaWNvbjpbNjQwLDUxMixbMTI5NDQ2XSwiZjcwMCIsIk0xODEuNSAxOTcuMWwxMi45IDYuNGM1LjkgMyAxMi40IDQuNSAxOS4xIDQuNSAyMy41IDAgNDIuNi0xOS4xIDQyLjYtNDIuNmwwLTIxLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjEuNGMwIDIzLjUgMTkuMSA0Mi42IDQyLjYgNDIuNiA2LjYgMCAxMy4xLTEuNSAxOS4xLTQuNSA5LjMtNC43IDE2LjQtOC4yIDIxLjItMTAuNkwxMzUuMSAxODVjLTQuNS0zLTcuMS04LTcuMS0xMy4zbDAtMy43YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAzLjdjMCA1LjMtMi43IDEwLjMtNy4xIDEzLjNsLTExLjggNy45IDguNCA0LjJ6bS04LjYgNDkuNGwtMTIuOS02LjQtMTIuOSA2LjRjLTEyLjYgNi4zLTI2LjUgOS42LTQwLjUgOS42LTMuNiAwLTcuMS0uMi0xMC42LS42bDAgLjZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwxNjAgMCAwLTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNCA5LjQtNS40IDIwLjMtOC42IDMyLTguNmwwLTE2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4IDguOCAwIDE2IDcuMiAxNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05OS43YzAtNDguMi0zMC44LTkxLTc2LjYtMTA2LjNsLTguNS0yLjhjLTgtMi43LTEyLjYtMTEuMS0xMC40LTE5LjNzMTAuMy0xMy4yIDE4LjYtMTEuNmwxOS45IDRDNTc2IDg2LjEgNjQwIDE2NC4yIDY0MCAyNTQuOWwwIDEuMSAwIDBjMCAxMjMuNy0xMDAuMyAyMjQtMjI0IDIyNGwtMTYwLjYgMEMxMzIgNDgwIDMyIDM4MCAzMiAyNTYuNmwwLTM5LjhjLTEwLjEtMTQuNi0xNi0zMi4zLTE2LTUxLjRsMC0yMS40IDAtMS40QzYuNyAxMzkuMyAwIDEzMC41IDAgMTIwIDAgMTA2LjcgMTAuNyA5NiAyNCA5NmwyLjggMEM0NC44IDU4LjIgODMuMyAzMiAxMjggMzJsNjQgMGM0NC43IDAgODMuMiAyNi4yIDEwMS4yIDY0bDIuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTAuNS02LjcgMTkuMy0xNiAyMi42bDAgMS40IDAgMjEuNGMwIDEuNCAwIDIuOC0uMSA0LjMgMTItNi4yIDI1LjctOS42IDQwLjEtOS42bDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDggNTYuNCAwYy0xNS4yIDE3LTI0LjQgMzkuNC0yNC40IDY0bC0zMiAwYy00Mi4zIDAtNzguMi0yNy40LTkxLTY1LjMtNS4xIC45LTEwLjMgMS4zLTE1LjYgMS4zLTE0LjEgMC0yNy45LTMuMy00MC41LTkuNnpNOTYgMTI4YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptMTEyIDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6Il19LE9SZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi1sZWZ0IixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtbGVmdCJdLCJmMTM3IiwiTTUxMiAyNTZhMjU2IDI1NiAwIDEgMCAtNTEyIDAgMjU2IDI1NiAwIDEgMCA1MTIgMHpNMjcxIDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDg3IDg3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTY3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMjcxIDEzNXoiXX0scFRyPU9SZSxSUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1MTIsNTEyLFs2MjEwOCwicXVlc3Rpb24tY2lyY2xlIl0sImYwNTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzM2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgNDcuMi0zNiA2Ny4yLTU2IDc0LjVsMCAzLjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LjFjMC0yMC41IDE0LjgtMzUuMiAzMC4xLTQwLjIgNi40LTIuMSAxMy4yLTUuNSAxOC4yLTEwLjMgNC4zLTQuMiA3LjctMTAgNy43LTE5LjYgMC0xNy43LTE0LjMtMzItMzItMzJ6TTIyNCAzNjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sZlRyPVJSZSxoVHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2Fsa2llLXRhbGtpZSIsaWNvbjpbMzg0LDUxMixbXSwiZjhlZiIsIk04OC0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDcyIDQ4IDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwzMiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MC45YzAgOS45LTIuMyAxOS43LTYuOCAyOC42bC0yMC4yIDQwLjRjLTMuMyA2LjctNS4xIDE0LTUuMSAyMS41bDAgODQuN2MwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtODQuN2MwLTcuNS0xLjctMTQuOC01LjEtMjEuNUw2LjggMzAxLjVDMi4zIDI5Mi42IDAgMjgyLjggMCAyNzIuOUwwIDExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NGwxNiAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTMyIDE3NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxGUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1ncm91cCIsaWNvbjpbNTc2LDUxMixbMTI4MTAxLCJ1c2VyLWZyaWVuZHMiXSwiZjUwMCIsIk02NCAxMjhhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHpNMCA0NjRjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZzMTc2IDc4LjggMTc2IDE3NmwwIDZjMCAyMy4yLTE4LjggNDItNDIgNDJMNDIgNTEyYy0yMy4yIDAtNDItMTguOC00Mi00MmwwLTZ6TTQzMiA2NGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMCAyNDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRsMCAyMi40YzAgMjMtMTguNiA0MS42LTQxLjYgNDEuNmwtMTQ0LjggMGM2LjYtMTIuNSAxMC40LTI2LjggMTAuNC00MmwwLTZjMC01MS41LTE3LjQtOTguOS00Ni41LTEzNi43IDIyLjYtMTQuNyA0OS42LTIzLjMgNzguNS0yMy4zeiJdfSxtVHI9RlJlLEJSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5IixpY29uOls1MTIsNTEyLFs2MzQ5OSwiaG9tZS1sZyJdLCJlM2FmIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yNDAgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDEyOCAwIDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDB6Il19LGdUcj1CUmUsSFJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWZyb20tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24tb3V0LWFsdCJdLCJmMmY1IiwiTTUwNSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMzYxIDk1Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAxMDIuMyAzMjAgMTEybDAgODAtMTEyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsMTEyIDAgMCA4MGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJzMTkuMyAxLjcgMjYuMi01LjJMNTA1IDI3M3pNMTYwIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5Nmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAweiJdfSxiVHI9SFJlLHhUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlIixpY29uOlszODQsNTEyLFsxMjgxOTYsMTI4NDU5LDYxNDYyXSwiZjE1YiIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2eiJdfSx2VHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNjkiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTgzLjQtMTgzLjQgNy4xLTcuNyAxMjcuMyAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2cy0yNS4xLTU2LTU2LTU2TDM5Mi43IDIwMCAyMzMuNSAyNi40QzIyNy41IDE5LjggMjE4LjkgMTYgMjA5LjkgMTZsLTQzLjcgMGMtMTAuOSAwLTE4LjYgMTAuNy0xNS4yIDIxLjFMMTc1LjEgMTA5LjIgNDEtMjQuOXpNMTMwLjIgMjAwbC0yNC42IDAtNTIuOC02NmMtMy0zLjgtNy42LTYtMTIuNS02bC0xOS44IDBjLTEwLjQgMC0xOCA5LjgtMTUuNSAxOS45TDMyIDI1NiA1IDM2NC4xQzIuNCAzNzQuMiAxMC4xIDM4NCAyMC41IDM4NGwxOS44IDBjNC45IDAgOS41LTIuMiAxMi41LTZsNTIuOC02NiA5OS43IDAtNTQuMyAxNjIuOWMtMy41IDEwLjQgNC4zIDIxLjEgMTUuMiAyMS4xbDQzLjcgMGM5IDAgMTcuNS0zLjggMjMuNi0xMC40TDMyMC43IDM5MC41IDEzMC4yIDIwMHoiXX0seVRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXNob3dlcnMtaGVhdnkiLGljb246WzUxMiw1MTIsW10sImY3NDAiLCJNOTYgMzIwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yLTEuMy02LjctMS45LTEzLjctMS45LTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTIgNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwIDE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjggNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOC0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiAzMjB6bTYuOCA3OS42bC0zMiA5NkM2Ni42IDUwOC4yIDUzIDUxNSA0MC40IDUxMC44UzIxIDQ5MyAyNS4yIDQ4MC40bDMyLTk2QzYxLjQgMzcxLjggNzUgMzY1IDg3LjYgMzY5LjJTMTA3IDM4NyAxMDIuOCAzOTkuNnptMTIwIDBsLTMyIDk2Yy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4yUzE0MSA0OTMgMTQ1LjIgNDgwLjRsMzItOTZjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjQtMTUuMlMyMjcgMzg3IDIyMi44IDM5OS42em0xMTIgMGwtMzIgOTZjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJTMjUzIDQ5MyAyNTcuMiA0ODAuNGwzMi05NmM0LjItMTIuNiAxNy44LTE5LjQgMzAuNC0xNS4yUzMzOSAzODcgMzM0LjggMzk5LjZ6bTEyMCAwbC0zMiA5NmMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMlMzNzMgNDkzIDM3Ny4yIDQ4MC40bDMyLTk2YzQuMi0xMi42IDE3LjgtMTkuNCAzMC40LTE1LjJTNDU5IDM4NyA0NTQuOCAzOTkuNnoiXX0sd1RyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1mYWxsaW5nIixpY29uOls1MTIsNTEyLFtdLCJlNTQ2IiwiTTMyMCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUuNGMwIDQ1LTIzLjYgODYuNi02Mi4xIDEwOS44bC00LjYgMi44QzEzMS40IDE4NC43IDk2IDI0Ny4xIDk2IDMxNC42TDk2IDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjkuNGMwLTE2LjcgMy4zLTMzIDkuNC00OEwzNTkuMiA1MDAuMmMxMS4xIDEzLjcgMzEuMyAxNS44IDQ1IDQuN3MxNS44LTMxLjMgNC43LTQ1TDI5NS4yIDMyMCA0MDAgMzIwIDQzOC40IDM3MS4yYzEwLjYgMTQuMSAzMC43IDE3IDQ0LjggNi40czE3LTMwLjcgNi40LTQ0LjhsLTQzLjItNTcuNkM0MzcuMyAyNjMuMSA0MjMuMSAyNTYgNDA4IDI1NmwtODkgMC02Mi45LTc1LjVjNDAuMy0zNiA2My45LTg3LjkgNjMuOS0xNDMuMWwwLTUuNHpNMTA0IDE0NGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnoiXX0scVJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cm4tZG93biIsaWNvbjpbMzg0LDUxMixbMTA1NDksImxldmVsLWRvd24tYWx0Il0sImYzYmUiLCJNMTY5LjQgNTAyLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMzIuOSAzMjAgMzIwIDMyMGwtNjQgMCAwLTE2MEMyNTYgNzEuNiAxODQuNCAwIDk2IDBMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJMMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwLTY0IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDEyOCAxMjh6Il19LGtUcj1xUmUsVlJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLXJpZ2h0LWFuZC1kb3duLWxlZnQtZnJvbS1jZW50ZXIiLGljb246WzUxMiw1MTIsWyJleHBhbmQtYWx0Il0sImY0MjQiLCJNMzQ0IDBMNDg4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0zMi0zMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODctMzktMzljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTMzM0LjMgMCAzNDQgMHpNMTY4IDUxMkwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDAgMzQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMlMzNC4xIDMyMC4yIDQxIDMyN2wzOSAzOSA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwzMiAzMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODcgODcgMzkgMzljNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMlMxNzcuNyA1MTIgMTY4IDUxMnoiXX0sU1RyPVZSZSxNVHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci10YWciLGljb246WzY0MCw1MTIsW10sImY1MDciLCJNMjU2LjEgOGExMjAgMTIwIDAgMSAxIDAgMjQwIDEyMCAxMjAgMCAxIDEgMC0yNDB6TTIyNi40IDMwNGw1OS40IDBjNi43IDAgMTMuMiAuNCAxOS43IDEuMS0uOSA0LjktMS40IDkuOS0xLjQgMTVsMCA5Mi4xYzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45bDMxLjkgMzEuOS0yODYuMyAwYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM3pNMzUyLjEgNDEyLjJsMC05Mi4xYzAtMTcuNyAxNC4zLTMyIDMyLTMybDkyLjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xbDk2IDk2YzE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45bC03Ni4xIDc2LjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwbC05Ni05NmMtOS05LTE0LjEtMjEuMi0xNC4xLTMzLjl6bTEwNC00NC4yYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LENUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNwYXJrbGVzIixpY29uOls2NDAsNTEyLFtdLCJlMDVkIiwiTTMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xNzZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE3NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzguMmMtMTkuMiA1LjQtMzQuNyAyMC40LTQwLjQgNDAuM2wtNi41IDIyLjctMjIuNyA2LjVjLTI1LjIgNy4yLTQyLjUgMzAuMi00Mi41IDU2LjQgMCAyMi4xIDEyLjQgNDIgMzEuNCA1MS45LTI3LjUgMTcuOC02MC4yIDI4LjEtOTUuNCAyOC4xbC0xOS4yIDBjLTU5LjYgMC0xMTYuOS0yMi45LTE2MC02NEw3Ni40IDM0MWMtMTYtMTUuMi0xNi42LTQwLjYtMS40LTU2LjZzNDAuNi0xNi42IDU2LjYtMS40bDYwLjUgNTcuNmMwLTEuNS0uMS0zLjEtLjEtNC42bDAtMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTIwOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTcuMyAzMjYuNmMtMS4xLTMuOS00LjctNi42LTguNy02LjZzLTcuNiAyLjctOC43IDYuNmwtNy4zIDI1LjQtMjUuNCA3LjNjLTMuOSAxLjEtNi42IDQuNy02LjYgOC43czIuNyA3LjYgNi42IDguN2wyNS40IDcuMyA3LjMgMjUuNGMxLjEgMy45IDQuNyA2LjYgOC43IDYuNnM3LjYtMi43IDguNy02LjZsNy4zLTI1LjQgMjUuNC03LjNjMy45LTEuMSA2LjYtNC43IDYuNi04LjdzLTIuNy03LjYtNi42LTguN2wtMjUuNC03LjMtNy4zLTI1LjR6TTEwNCAxMjBsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkwxMDQgMTY4IDkwLjIgMjE2LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1NiAxNjggNy43IDE1NC4yQzMuMSAxNTIuOSAwIDE0OC43IDAgMTQ0czMuMS04LjkgNy43LTEwLjJMNTYgMTIwIDY5LjggNzEuN0M3MS4xIDY3LjEgNzUuMyA2NCA4MCA2NHM4LjkgMy4xIDEwLjIgNy43TDEwNCAxMjB6TTU4NCA0MDhsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkw1ODQgNDU2IDU3MC4yIDUwNC4zYy0xLjMgNC42LTUuNSA3LjctMTAuMiA3LjdzLTguOS0zLjEtMTAuMi03LjdMNTM2IDQ1NiA0ODcuNyA0NDIuMmMtNC42LTEuMy03LjctNS41LTcuNy0xMC4yczMuMS04LjkgNy43LTEwLjJMNTM2IDQwOCA1NDkuOCAzNTkuN2MxLjMtNC42IDUuNS03LjcgMTAuMi03LjdzOC45IDMuMSAxMC4yIDcuN0w1ODQgNDA4eiJdfSx6VHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXRvLWRvdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRiZSIsIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOWwtNjQgNjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC02NC02NGMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0LjlTMTc5LjEgNjQgMTkyIDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTY5LjQgMzkzLjRsNjQtNjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNjQgNjRjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzMyLjkgNDQ4IDMyMCA0NDhsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45ek0zMiAyMjRsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVM2NCAzMzIuOSA2NCAzMjBsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0yOTcuNCA1NC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w2NC02NGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVM0NDggMTc5LjEgNDQ4IDE5MmwwIDMyIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtNjQtNjR6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxqUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk0zNTIgNDkzLjRjLTI5LjYgMTItNjIuMSAxOC42LTk2IDE4LjZzLTY2LjQtNi42LTk2LTE4LjZMMTYwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3MS43QzQ0LjQgNDIxLjYgMCAzNDQgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2YzAgODgtNDQuNCAxNjUuNi0xMTIgMjExLjdMNDAwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE5Ny40ek0xNTIgMTk2bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTcyIDIwYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwek0yMDggMzM2bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4eiJdfSxfVHI9alJlLFRUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb25nLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxNjkiLCJNMjg4LTE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgNzIuMmMtMjIuOS0xNS4zLTUwLjQtMjQuMi04MC0yNC4yLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0Uzk2LjUgNDMyIDE3NiA0MzJjMzAgMCA1Ny44LTkuMSA4MC44LTI0LjggMy4zIDE0LjIgMTYgMjQuOCAzMS4yIDI0LjggMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMDQgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek05NiAyODhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek0yNCA0NjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzM2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgNDY0eiJdfSxMVHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1MzQiLCJNMjg4IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bTk2IDMxMmMwIDI1LTEyLjcgNDctMzIgNTkuOWwwIDQ0LjEtMTI4IDAgMC00NC4xQzIwNC43IDM1OSAxOTIgMzM3IDE5MiAzMTJsMC00MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgNDB6bTE2IDEwNGwwLTI3LjNjMTkuOS0yMi41IDMyLTUyLjIgMzItODQuN2wwLTMyYzAtMjYuNy03LjMtNTEuNi0xOS45LTczLjEgMTEuMS00LjUgMjMuMi02LjkgMzUuOS02LjkgNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDQwLjYtMTEyIDB6TTY0IDM3NS40QzQ0LjkgMzY0LjQgMzIgMzQzLjcgMzIgMzIwbDAtMzJjMC01MyA0My05NiA5Ni05NiAxMi43IDAgMjQuOCAyLjUgMzUuOSA2LjktMTIuNiAyMS40LTE5LjkgNDYuNC0xOS45IDczLjFsMCAzMmMwIDMyLjUgMTIuMSA2Mi4xIDMyIDg0LjdsMCAyNy4zLTExMiAwIDAtNDAuNnpNMTI4IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0zMjAgMGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMjQgNDY0bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sVVJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1yc3MiLGljb246WzQ0OCw1MTIsWyJyc3Mtc3F1YXJlIl0sImYxNDMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTYgMTM2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDEzNyAwIDI0OCAxMTEgMjQ4IDI0OCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTExMC41LTg5LjUtMjAwLTIwMC0yMDAtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjQgODMuOSAwIDE1MiA2OC4xIDE1MiAxNTIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC01Ny40LTQ2LjYtMTA0LTEwNC0xMDQtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgMTIwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LERUcj1VUmUsJFRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLW1pbnVzIixpY29uOls0NDgsNTEyLFtdLCJmMjcyIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMjQgMjY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sQVRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWRpYWdyYW0iLGljb246WzUxMiw1MTIsW10sImU2OTUiLCJNODAgMzJDNTMuNSAzMiAzMiA1My41IDMyIDgwczIxLjUgNDggNDggNDhsMTUyIDAgMCA0MC00OCA0OC03MiAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDY0LTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTggMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDcyIDAgNDggNDggMCA0MC04IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04IDAgMC00MCA0OC00OCA3MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNjQtOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOCAwIDAtNjRjMC0zOS44LTMyLjItNzItNzItNzJsLTcyIDAtNDgtNDggMC00MCAxNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw4MCAzMnoiXX0sV1JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtdGlyZWQiLGljb246WzUxMiw1MTIsWzEyODU1NSwidGlyZWQiXSwiZjVjOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY0LjcgMzI4LjdjMjItMjIgNTMuOS00MC43IDkxLjMtNDAuN3M2OS4zIDE4LjcgOTEuMyA0MC43YzExLjEgMTEuMSAyMC4xIDIzLjQgMjYuNCAzNS40IDYuMiAxMS43IDEwLjMgMjQuNCAxMC4zIDM1LjkgMCA1LjItMi42IDEwLjItNi45IDEzLjJzLTkuOCAzLjctMTQuNyAxLjhsLTIwLjUtNy43Yy0yNi45LTEwLjEtNTUuNS0xNS4zLTg0LjMtMTUuM2wtMy4yIDBjLTI4LjggMC01Ny4zIDUuMi04NC4zIDE1LjNMMTQ5LjYgNDE1Yy00LjkgMS44LTEwLjQgMS4yLTE0LjctMS44UzEyOCA0MDUuMiAxMjggNDAwYzAtMTEuNiA0LjItMjQuMiAxMC4zLTM1LjkgNi4zLTEyIDE1LjMtMjQuMyAyNi40LTM1LjR6TTEyMi42IDE1OS4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LEVUcj1XUmUsSVRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImYwYTQiLCJNNDgwIDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMDggMCAwLTY0IDIwOCAwek0zMjAgMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bTY0LTY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTI4OCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMHptLTg4LTk2bC42IDBjLTUuNCA5LjQtOC42IDIwLjMtOC42IDMyIDAgMTMuMiA0IDI1LjQgMTAuOCAzNS42LTI0LjkgOC43LTQyLjggMzIuNS00Mi44IDYwLjQgMCAxMS43IDMuMSAyMi42IDguNiAzMmwtOC42IDBDNzEuNiA0NDggMCAzNzYuNCAwIDI4OGwwLTYxLjdjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xbDExLjYtMTEuNkM4Mi41IDc3LjUgMTE1LjEgNjQgMTQ5IDY0bDI3IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4OGMwIDIyLjEtMTcuOSA0MC00MCA0MHMtNDAtMTcuOS00MC00MGwwLTU2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNTZjMCAzOS44IDMyLjIgNzIgNzIgNzJ6Il19LFBUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cCIsaWNvbjpbMzg0LDUxMixbODU5M10sImYwNjIiLCJNMjE0LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTA5LjMgMTYwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcwLjcgMTA1LjQgMTA1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHoiXX0sTlRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmVzLXN0YWNrZWQiLGljb246WzUxMiw1MTIsW10sImU0ZTYiLCJNMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHptMzIgMzUybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMjAgMTkybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTE4Mi42LTMuOWMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0NS4zIDQ1LjNjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTQ1LjMgNDUuM2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMOTIuMSAyNzguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsNDUuMy00NS4zek0zMiAzODRsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxHUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtY29tYmF0YW50IixpY29uOls1NzYsNTEyLFsiY2hpbGQtcmlmbGUiXSwiZTRlMCIsIk0xNzYuNSAxMjhhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0xNiAzNTJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5Mi4yIDIwLjkgMzMuMmM5LjQgMTUgMjkuMiAxOS40IDQ0LjEgMTBzMTkuNC0yOS4yIDEwLTQ0LjFsLTM5LjktNjMuM0MyNjYuOCAxODQgMjIzLjMgMTYwIDE3Ni41IDE2MFM4Ni4yIDE4NCA2MS4zIDIyMy42TDIxLjQgMjg3Yy05LjQgMTUtNC45IDM0LjcgMTAgNDQuMXMzNC43IDQuOSA0NC4xLTEwbDIwLjktMzMuMiAwIDE5Mi4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTQ0OC41IDBsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN2wwLTExNi4zYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sT1RyPUdSZSxSVHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVzdC1wYXRjaGVzIixpY29uOls0NDgsNTEyLFtdLCJlMDg2IiwiTTIwMCAyOTMuOUwyMDAgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAyNzAuNWMwLTkuNSAyLjgtMTguNyA4LjEtMjYuNmw0Ny45LTcxLjhjNS4zLTcuOSA4LjEtMTcuMSA4LjEtMjYuNkw2NCA0OEM2NCAyMS41IDg1LjUgMCAxMTIgMGwzLjUgMGMuMyAwIC42IDAgMSAwIC42IDAgMS4yIDAgMS44IDAgMTguOCAwIDM0LjEgOS43IDQ0LjEgMTguOCA5LjMgOC40IDI4LjUgMjEuMiA2MS43IDIxLjJzNTIuNC0xMi44IDYxLjctMjEuMmMxMC05LjEgMjUuMy0xOC44IDQ0LjEtMTguOCAuNiAwIDEuMiAwIDEuOCAwIC4zIDAgLjYgMCAxIDBMMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5Ny41YzAgOS41IDIuOCAxOC43IDguMSAyNi42bDQ3LjkgNzEuOGM1LjMgNy45IDguMSAxNy4xIDguMSAyNi42TDQ0OCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEwNCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3MC4xYzAtMy45IC41LTcuOCAxLjQtMTEuNkwzMDMuNiA2NS40QzI4NS45IDc3LjIgMjU5LjggODggMjI0IDg4cy02MS45LTEwLjgtNzkuNi0yMi42bDU0LjIgMjE2LjhjMSAzLjggMS40IDcuNyAxLjQgMTEuNnpNOTYgNDU2YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpNNjMuNSAyNTUuNWMtNC43IDQuNy00LjcgMTIuMyAwIDE3TDc5IDI4OCA2My41IDMwMy41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdzMTIuMyA0LjcgMTcgMEw5NiAzMDUgMTExLjUgMzIwLjVjNC43IDQuNyAxMi4zIDQuNyAxNyAwczQuNy0xMi4zIDAtMTdMMTEzIDI4OCAxMjguNSAyNzIuNWM0LjctNC43IDQuNy0xMi4zIDAtMTdzLTEyLjMtNC43LTE3IDBMOTYgMjcxIDgwLjUgMjU1LjVjLTQuNy00LjctMTIuMy00LjctMTcgMHpNMzA0IDI4MGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxZUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFydGluaS1nbGFzcy1lbXB0eSIsaWNvbjpbNTEyLDUxMixbImdsYXNzLW1hcnRpbmkiXSwiZjAwMCIsIk0zMiAzMkMxOS4xIDMyIDcuNCAzOS44IDIuNCA1MS44Uy4yIDc3LjUgOS40IDg2LjZsMjE0LjYgMjE0LjYgMCAxNDYuNy02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtMTQ2LjcgMjE0LjYtMjE0LjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzIgNDgwIDMyTDMyIDMyek0yNTYgMjQyLjdMMTA5LjMgOTYgNDAyLjcgOTYgMjU2IDI0Mi43eiJdfSxGVHI9WVJlLEJUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduZXQiLGljb246WzQ0OCw1MTIsWzEyOTUyMl0sImYwNzYiLCJNMCAxNzZMMCAyODhDMCA0MTEuNyAxMDAuMyA1MTIgMjI0IDUxMlM0NDggNDExLjcgNDQ4IDI4OGwwLTExMi0xMjggMCAwIDExMmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExMi0xMjggMHptMC00OGwxMjggMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRsMCA2NHptMzIwIDBsMTI4IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NHoiXX0sSFRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtYmFycmllciIsaWNvbjpbNjQwLDUxMixbXSwiZTU2MiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgMjY2LjMgMTQ5LjIgOTYgNjQgOTYgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQwNS4yIDk2bC03NC4zIDAtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuM3pNMzYyLjggMjg4bDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zLTc0LjMgMC01LjQgMTAuNy05MC42IDE4MS4zek0yMDIuOCA5NmwtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuMy03NC4zIDB6bTI4OCAxOTJsODUuMiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My43LTg1LjIgMTcwLjN6Il19LEtSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYXNzLWRyYWZ0aW5nIixpY29uOls1MTIsNTEyLFsiZHJhZnRpbmctY29tcGFzcyJdLCJmNTY4IiwiTTk5LjMgMjU2LjFsNjkuNC0xMTkuOWMtNS42LTEyLjItOC44LTI1LjgtOC44LTQwLjIgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDE0LjMtMy4xIDI3LjktOC44IDQwLjJsNDQuNCA3Ni43Yy0yMy4xIDI2LTUzLjcgNDUuMS04OC40IDUzLjhMMjU2IDE5MS45IDE4Ny45IDMwOS41YzIxLjUgNi44IDQ0LjMgMTAuNSA2OC4xIDEwLjUgNzAuNyAwIDEzMy44LTMyLjcgMTc0LjktODQgMTEuMS0xMy44IDMxLjItMTYgNDUtNXMxNiAzMS4yIDUgNDVjLTUyLjcgNjUuOC0xMzMuOSAxMDgtMjI0LjggMTA4LTM1LjQgMC02OS40LTYuNC0xMDAuNy0xOC4xTDk4LjcgNDYzLjdDOTQgNDcxLjggODcgNDc4LjQgNzguNiA0ODIuNkwyMy4yIDUxMC4zYy01IDIuNS0xMC45IDIuMi0xNS42LS43UzAgNTAxLjUgMCA0OTZsMC01NS40YzAtOC40IDIuMi0xNi43IDYuNS0yNC4xbDYwLTEwMy43Yy0xMi44LTExLjItMjQuNi0yMy41LTM1LjMtMzYuOC0xMS4xLTEzLjgtOC44LTMzLjkgNS00NXMzMy45LTguOCA0NSA1YzUuNyA3LjEgMTEuOCAxMy44IDE4LjIgMjAuMXpNMzgxLjEgNDA3LjljMzIuNS0xMyA2Mi40LTMxIDg4LjktNTIuOWwzNS42IDYxLjVjNC4yIDcuMyA2LjUgMTUuNiA2LjUgMjQuMWwwIDU1LjRjMCA1LjUtMi45IDEwLjctNy42IDEzLjZzLTEwLjYgMy4yLTE1LjYgLjdsLTU1LjQtMjcuN2MtOC40LTQuMi0xNS40LTEwLjgtMjAuMS0xOC45bC0zMi4zLTU1Ljh6TTI1NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxxVHI9S1JlLFZUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGVyc29uLWNvbmZpbmVkIixpY29uOls0NDgsNTEyLFtdLCJlNTc3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTk2IDExMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem04MCAxMDRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEwMi4xYzAgMzYuNC0yOS41IDY1LjktNjUuOSA2NS45LTE3LjUgMC0zNC4zLTYuOS00Ni42LTE5LjNsLTU0LjctNTQuNy0yOC4xIDU2LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsNDgtOTZjNC42LTkuMiAxMy4zLTE1LjYgMjMuNS0xNy4zczIwLjUgMS43IDI3LjggOWw0MS40IDQxLjQgMC01OC43eiJdfSxqVHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhdGUtd2hlYXQiLGljb246WzUxMiw1MTIsW10sImU1NWEiLCJNMTc2IDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTZjMC04LjggNy4yLTE2IDE2LTE2ek01NiA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM0Mi43IDY0IDU2IDY0ek0yNCAxMzZsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgMTg0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNzIgNDhjMC04LjggNy4yLTE2IDE2LTE2IDQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTZ6TTQwMCAzMmM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTYwbDAgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODAgOC44IDAgMTYgNy4yIDE2IDE2ek0zNTIgMTc2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MC04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTMuNSAzNDcuNkMxLjYgMzMyLjkgMTMgMzIwIDI3LjggMzIwbDQ1Ni40IDBjMTQuOCAwIDI2LjIgMTIuOSAyNC40IDI3LjYtNi4zIDUwLjItNDQuNCA4OS40LTkyLjYgOTguNGwwIDJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTJjLTQ4LjItOS04Ni4zLTQ4LjItOTIuNS05OC40eiJdfSxaUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2lnbi1oYW5naW5nIixpY29uOls1MTIsNTEyLFsic2lnbiJdLCJmNGQ5IiwiTTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzUyIDAgMCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNTItMzIgMEMxNC4zIDEyOCAwIDExMy43IDAgOTZTMTQuMyA2NCAzMiA2NGwzMiAwIDAtMzJDNjQgMTQuMyA3OC4zIDAgOTYgMHpNMjA4IDE3NmwyNDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE0NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjQwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxVVHI9WlJlLFFSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItYmF0dGVyeSIsaWNvbjpbNTEyLDUxMixbImJhdHRlcnktY2FyIl0sImY1ZGYiLCJNODAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDE2IDB6TTM5MiAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMi0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzIgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMCAwLTMyek02NCAyNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggMjE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sV1RyPVFSZSxEdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpcnQiLGljb246WzY0MCw1MTIsWzEyODA4NSwidC1zaGlydCIsInRzaGlydCJdLCJmNTUzIiwiTTMyMC4yIDExMmM0NC4yIDAgODAtMzUuOCA4MC04MGw1My41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNjE3LjYgMTY5LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTUwLjcgNTAuN2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNCAwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTkyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjI0LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMMjIuOSAyMTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMTQxLjUgNTAuN2MxMi0xMiAyOC4zLTE4LjcgNDUuMy0xOC43bDUzLjUgMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHoiXX0sR1RyPUR1ZSxZVHI9RHVlLEtUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXJhZ3JhcGgiLGljb246WzQ0OCw1MTIsWzE4Ml0sImYxZGQiLCJNMTYwIDBMNDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00MTYtNDggMCAwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MC00OCAwQzcxLjYgMzIwIDAgMjQ4LjQgMCAxNjBTNzEuNiAwIDE2MCAweiJdfSxYUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGVzLWJ1bGsiLGljb246WzU3Niw1MTIsWyJtYWlsLWJ1bGsiXSwiZjY3NCIsIk0xMTIgMEM4NS41IDAgNjQgMjEuNSA2NCA0OGwwIDE2MCA4MCAwIDAtMzJjMC01MyA0My05NiA5Ni05NmwyMDggMCAwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDExMiAwek0yNDAgMTI4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyIDgwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDExMiAxNjAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5MmMwLTI2LjUtMjEuNS00OC00OC00OGwtMjg4IDB6bTIwMCA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQ4IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMC40IDE1Ni42IDg2LjJjMS4xIC42IDIuMiAuOSAzLjQgLjlzMi40LS4zIDMuNC0uOUwzMjAgMzE0LjQgMzIwIDMwNGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAyNTZ6TTMyMCAzNjkuMkwxODYuNiA0NDIuNmMtOC4xIDQuNS0xNy4zIDYuOC0yNi42IDYuOHMtMTguNC0yLjQtMjYuNi02LjhMMCAzNjkuMiAwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk0Ljh6Il19LFpUcj1YUmUsUVRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imd1aXRhciIsaWNvbjpbNTEyLDUxMixbXSwiZjdhNiIsIk00NjUgN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMzgzIDU1Yy0yLjQgMi40LTQuMyA1LjMtNS41IDguNWwtMTUuNCA0MS03Ny41IDc3LjZjLTQ1LjEtMjkuNC05OS4zLTMwLjItMTMxIDEuNi0xMSAxMS0xOCAyNC42LTIxLjQgMzkuNi0zLjcgMTYuNi0xOS4xIDMwLjctMzYuMSAzMS42LTI1LjYgMS4zLTQ5LjMgMTAuNy02Ny4zIDI4LjYtNDQuOCA0NC44LTM2LjQgMTI1LjggMTguNyAxODAuOVMxODMuNiA1MjggMjI4LjQgNDgzLjJjMTcuOS0xNy45IDI3LjQtNDEuNyAyOC42LTY3LjMgLjktMTcgMTUtMzIuMyAzMS42LTM2LjEgMTUtMy40IDI4LjYtMTAuNSAzOS42LTIxLjQgMzEuOC0zMS44IDMxLTg1LjkgMS42LTEzMWw3Ny42LTc3LjYgNDEtMTUuNGMzLjItMS4yIDYuMS0zLjEgOC41LTUuNWw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUw0NjUgN3pNMjA4IDI1NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6Il19LFhUcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZSIsaWNvbjpbNTEyLDUxMixbMTI5NTIzXSwiZjBmMiIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDI0IDIyNCAwIDAtNDI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2TDIwMCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnpNNDE2IDk2bDAgMzg0IDMyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDB6TTk2IDQ4MGwwLTM4NC0zMiAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMiAweiJdfSxKUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXVwIixpY29uOls1MTIsNTEyLFs2MTQ2NywiYXJyb3ctYWx0LWNpcmNsZS11cCJdLCJmMzViIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zbDEwNCAxMDRjNC42IDQuNiA1LjkgMTEuNSAzLjUgMTcuNFMzNjYuNSAyNTYgMzYwIDI1NmwtNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTU2IDBjLTYuNSAwLTEyLjMtMy45LTE0LjgtOS45cy0xLjEtMTIuOSAzLjUtMTcuNGwxMDQtMTA0YzYuMi02LjIgMTYuNC02LjIgMjIuNiAweiJdfSxKVHI9SlJlLGVMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmIixpY29uOlszMjAsNTEyLFsxMDJdLCI0NiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTI4IDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSx0THI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieG1hcmtzLWxpbmVzIixpY29uOls2NDAsNTEyLFtdLCJlNTlhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnptMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2ek03IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpNMjY1IDE2N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTV6TTQ1NSAxNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6Il19LGVGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXJ0aC1vY2VhbmlhIixpY29uOls1MTIsNTEyLFsiZ2xvYmUtb2NlYW5pYSJdLCJlNDdiIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMTUwLjZjMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsNDEuNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2ek00MzIgMjU2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00MTEuMyAzNzkuM2wtMzIgMzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzItMzJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42ek0yMjQgNDMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6bS05Ni04MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOC43YzAtOC41IDMuNC0xNi42IDkuNC0yMi42bDQ4LTQ4YzQuMi00LjIgMTAtNi42IDE2LTYuNmw2LjYgMGM4LjggMCAxNiA3LjIgMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNiA3LjItMTYgMTYtMTZsNi42IDBjNiAwIDExLjggMi40IDE2IDYuNmw0OCA0OGM2IDYgOS40IDE0LjEgOS40IDIyLjZsMCA1MC43YzAgMTcuNy0xNC4zIDMyLTMyIDMybC01MC43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xMy4zLTEzLjNjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEwxMjggMzUyeiJdfSxyTHI9ZUZlLGFMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNGIzIiwiTTQxLTI1QzMxLjYtMzQuMyAxNi40LTM0LjMgNy0yNVMtMi4zLS40IDcgOUw1MzUgNTM3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNi05Ni42YzQ0LjQtNDMuMiA3MS42LTEwMS44IDcxLjYtMTY2LjUgMC0xMzIuNS0xMTQuNi0yNDAtMjU2LTI0MC02MyAwLTEyMC44IDIxLjQtMTY1LjQgNTYuOEw0MS0yNXptMTkuNCAxNTVDNDIuMiAxNjMgMzIgMjAwLjMgMzIgMjM5LjkgMzIgMjk0LjIgNTEuMiAzNDQuMiA4My42IDM4NC40TDM0LjggNDc2LjdjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNVM1Ni4xIDUxNCA2NS41IDUxMGwxMTguNC01MC43YzMxLjggMTMuMyA2Ny4xIDIwLjcgMTA0LjEgMjAuNyAzNi40IDAgNzAuOS03LjEgMTAyLjMtMTkuOUw2MC4zIDEzMC4xeiJdfSxpTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxheSIsaWNvbjpbNDQ4LDUxMixbOTY1NF0sImYwNGIiLCJNOTEuMiAzNi45Yy0xMi40LTYuOC0yNy40LTYuNS0zOS42IC43UzMyIDU3LjkgMzIgNzJsMCAzNjhjMCAxNC4xIDcuNSAyNy4yIDE5LjYgMzQuNHMyNy4yIDcuNSAzOS42IC43bDMzNi0xODRjMTIuOC03IDIwLjgtMjAuNSAyMC44LTM1LjFzLTgtMjguMS0yMC44LTM1LjFsLTMzNi0xODR6Il19LHNMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFsLWNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbXSwiZTU5NiIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTYxLjRjLTY2LjEgMzAuMy0xMTIgOTcuMS0xMTIgMTc0LjYgMCAzOS43IDEyIDc2LjYgMzIuNyAxMDcuMi0xMC4zIDMuMS0yMS4zIDQuOC0zMi43IDQuOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw2NCA2NEM0Ni4zIDY0IDMyIDQ5LjcgMzIgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHptOTYgMzM2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxuTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjOSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LG9Mcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZWRpLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUwZGYiLCJNMjMyIDMyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjYuNUM4OC44IDczLjkgMTYgMTU2LjQgMTYgMjU2Uzg4LjggNDM4LjEgMTg0IDQ1My41bDAgMjYuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQuNmM0Ni44LTMuNyA4OS4xLTIzLjYgMTIxLjMtNTMuOSAxMi45LTEyLjEgMTMuNC0zMi40IDEuMy00NS4ycy0zMi40LTEzLjQtNDUuMi0xLjNjLTIwLjcgMTkuNi00Ny42IDMyLjctNzcuMyAzNi4ybDAtMjcwLjFjMjkuOCAzLjUgNTYuNiAxNi42IDc3LjMgMzYuMiAxMi45IDEyLjEgMzMuMSAxMS41IDQ1LjItMS4zczExLjUtMzMuMS0xLjMtNDUuMkMzMjEuMSA4MC4yIDI3OC44IDYwLjMgMjMyIDU2LjZMMjMyIDMyem0tNDggOTEuOGwwIDI2NC40QzEyNC4zIDM3My44IDgwIDMyMC4xIDgwIDI1NnM0NC4zLTExNy44IDEwNC0xMzIuMnoiXX0sbExyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1enpsZS1waWVjZSIsaWNvbjpbNTEyLDUxMixbMTI5NTEzXSwiZjEyZSIsIk0yMjQgMGMzNS4zIDAgNjQgMjEuNSA2NCA0OCAwIDEwLjQtNC40IDIwLTEyIDI3LjktNi42IDYuOS0xMiAxNS4zLTEyIDI0LjkgMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4ybDQ0LjggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ0LjhjMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4yIDkuNSAwIDE4LTUuNCAyNC45LTEyIDcuOS03LjUgMTcuNS0xMiAyNy45LTEyIDI2LjUgMCA0OCAyOC43IDQ4IDY0cy0yMS41IDY0LTQ4IDY0Yy0xMC40IDAtMjAuMS00LjQtMjcuOS0xMi02LjktNi42LTE1LjMtMTItMjQuOS0xMi0xNSAwLTI3LjIgMTIuMi0yNy4yIDI3LjJMMzg0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNTYuOCAwYy0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMiAwLTkuMiA1LjgtMTcuMyAxMy4yLTIyLjggMTEuNi04LjcgMTguOC0yMC43IDE4LjgtMzQgMC0yNi41LTI4LjctNDgtNjQtNDhzLTY0IDIxLjUtNjQgNDhjMCAxMy4zIDcuMiAyNS4zIDE4LjggMzQgNy40IDUuNSAxMy4yIDEzLjUgMTMuMiAyMi44IDAgMTIuOC0xMC40IDIzLjItMjMuMiAyMy4yTDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNDMuMmMwLTEyLjggMTAuNC0yMy4yIDIzLjItMjMuMiA5LjIgMCAxNy4zIDUuOCAyMi44IDEzLjIgOC43IDExLjYgMjAuNyAxOC44IDM0IDE4LjggMjYuNSAwIDQ4LTI4LjcgNDgtNjRzLTIxLjUtNjQtNDgtNjRjLTEzLjMgMC0yNS4zIDcuMi0zNCAxOC44LTUuNSA3LjQtMTMuNSAxMy4yLTIyLjggMTMuMi0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMkwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwxMDguOCAwYzE1IDAgMjcuMi0xMi4yIDI3LjItMjcuMiAwLTkuNS01LjQtMTgtMTItMjQuOS03LjUtNy45LTEyLTE3LjUtMTItMjcuOSAwLTI2LjUgMjguNy00OCA2NC00OHoiXX0sY0xyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbG1ldC11biIsaWNvbjpbNTEyLDUxMixbXSwiZTUwMyIsIk00NzkuNSAyMjRDNDcxLjIgOTguOSAzNjcuMiAwIDI0MCAwIDEwNy41IDAgMCAxMDcuNSAwIDI0MGwwIDU2LjNDMCAzNDQuOCAzOS4yIDM4NCA4Ny43IDM4NGwxMjcuMyAwIDEyOC42IDEyMS40YzQuNSA0LjIgMTAuNCA2LjYgMTYuNSA2LjZsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODYuNSAwLTEuNS0xLjUgMC0xNzQuNSAxMTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtLjUgMHpNMzIwIDQxNy4ybC03OC03My43IDMyLjQtNTUuNSA0NS42IDAgMCAxMjkuMnpNMjg1LjMgMTAzLjFsMzQuNyA1MiAwLTQzLjJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDk2YzAgNy4xLTQuNiAxMy4zLTExLjQgMTUuM3MtMTQtLjYtMTcuOS02LjRsLTM0LjctNTIgMCA0My4yYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC03LjEgNC42LTEzLjMgMTEuNC0xNS4zczE0IC42IDE3LjkgNi40ek0xNjAgMTEybDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6Il19LGRMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbGFzcy13YXRlciIsaWNvbjpbMzg0LDUxMixbXSwiZTRmNCIsIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNsMTY2LjYgMGM0MiAwIDc2LjgtMzIuNCA3OS44LTc0LjNMMzgzLjkgMzQuM2MuNi04LjktMi40LTE3LjYtOC41LTI0LjFTMzYwLjkgMCAzNTIgMEwzMiAwek03MyAxNTYuNWwtNi42LTkyLjUgMjUxLjMgMC02LjYgOTIuNS0yNC4yIDEyLjFjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMC0yMC45LTEwLjQtNDUuNS0xMC40LTY2LjQgMC0xOS40IDkuNy00Mi4yIDkuNy02MS42IDBMNzMgMTU2LjV6Il19LHVMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtYm9sdCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmYyIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFMzNjkuMiA0MTYgMzc2IDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM0OTQuOCAzODQgNDg4IDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6Il19LHBMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwdW1wLXNvYXAiLGljb246WzMyMCw1MTIsW10sImUwNmIiLCJNOTYgMGwwIDgwIDEyOCAwIDAtMjQgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyA4IDI5NiA4bC03MiAwIDAtOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMEMxMTAuMy0zMiA5Ni0xNy43IDk2IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTI4ek0yMjQgMzQ0YzAgMzUuMy0yOC43IDU2LTY0IDU2cy02NC0yMC43LTY0LTU2YzAtMzIuNSAzNy04MC45IDUwLjktOTcuOSAzLjItMy45IDguMS02LjEgMTMuMS02LjFzOS45IDIuMiAxMy4xIDYuMUMxODcgMjYzLjEgMjI0IDMxMS41IDIyNCAzNDR6Il19LGZMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNjaXNzb3JzIixpY29uOls1MTIsNTEyLFtdLCJmMjU3IiwiTTQwIDIwOGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxODAuMiAwYy03LjYgOC41LTEyLjIgMTkuNy0xMi4yIDMyIDAgMjUuMyAxOS41IDQ2IDQ0LjMgNDcuOS03LjcgOC41LTEyLjMgMTkuOC0xMi4zIDMyLjEgMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTExMy4xYzAtNDAuMi0xNi03OC44LTQ0LjQtMTA3LjMtMjIuOC0yMi44LTUzLjYtMzUuNi04NS44LTM1LjZMMzM2IDY0Yy0yMS4zIDAtMzkuMyAxMy45LTQ1LjYgMzMuMWw3NC41IDIzLjdjOC40IDIuNyAxMy4xIDExLjcgMTAuNCAyMC4xcy0xMS43IDEzLjEtMjAuMSAxMC40bC02Ny4xLTIxLjQgMCAuMS0yMDQtNjQuMUM2Mi45IDU5LjIgNDAuNSA3MC45IDMzLjkgOTJzNS4xIDQzLjUgMjYuMiA1MC4yTDI2OS41IDIwOCA0MCAyMDh6Il19LHRGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb2xseSIsaWNvbjpbNTc2LDUxMixbImRvbGx5LWJveCJdLCJmNDcyIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsNzIuOSAwIDkyLjEgMjc2LjJjLTIyLjUgMTcuNi0zNyA0NS0zNyA3NS44IDAgNTMgNDMgOTYgOTYgOTYgNTIuNCAwIDk1LjEtNDIgOTYtOTQuM2wyMDIuMS02Ny40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJMMzMxLjggMzU3Yy0xNy4yLTIyLjEtNDMuOS0zNi41LTc0LTM3TDE2NS43IDQzLjhDMTU2LjkgMTcuNiAxMzIuNSAwIDEwNC45IDBMMzIgMHpNMjA4IDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0yODAuNSA4OS4zYy0yNS4yIDguMi0zOSAzNS4zLTMwLjggNjAuNWwzOS42IDEyMS43YzguMiAyNS4yIDM1LjMgMzkgNjAuNSAzMC44bDEyMS43LTM5LjZjMjUuMi04LjIgMzktMzUuMyAzMC44LTYwLjVMNDYyLjggODAuNWMtOC4yLTI1LjItMzUuMy0zOS02MC41LTMwLjhMMjgwLjUgODkuM3oiXX0saExyPXRGZSx5cGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXJjbGlwIixpY29uOls1MTIsNTEyLFsxMjgyMDZdLCJmMGM2IiwiTTIyNC42IDEyLjhjNTYuMi01Ni4yIDE0Ny40LTU2LjIgMjAzLjYgMHM1Ni4yIDE0Ny40IDAgMjAzLjZsLTE2NCAxNjRjLTM0LjQgMzQuNC05MC4xIDM0LjQtMTI0LjUgMHMtMzQuNC05MC4xIDAtMTI0LjVMMjkyLjUgMTAzLjNjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wxODUgMzAxLjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxNjQtMTY0YzMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMXMtODEuOS0zMS4yLTExMy4xIDBsLTE2NCAxNjRjLTUzLjEgNTMuMS01My4xIDEzOS4yIDAgMTkyLjNzMTM5LjIgNTMuMSAxOTIuMyAwTDQyOC4zIDI4NC4zYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMzQzLjQgNDU5LjZjLTc4LjEgNzguMS0yMDQuNyA3OC4xLTI4Mi44IDBzLTc4LjEtMjA0LjcgMC0yODIuOGwxNjQtMTY0eiJdfSxtTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGVtb2NyYXQiLGljb246WzY0MCw1MTIsW10sImY3NDciLCJNNjQgMzJjMC04LjkgMy44LTIwLjkgNi4yLTI3LjMgMS0yLjggMy44LTQuNyA2LjgtNC43IDEuOSAwIDMuOCAuNyA1LjIgMi4xTDEyOCA0NS43IDE3My44IDIuMWMxLjQtMS4zIDMuMi0yLjEgNS4yLTIuMSAzIDAgNS44IDEuOCA2LjggNC43IDIuNCA2LjUgNi4yIDE4LjQgNi4yIDI3LjMgMCAyNi41LTIxLjkgNDItMjkuNSA0Ni42bDc2LjIgNzIuNmM2IDUuNyAxMy45IDguOCAyMi4xIDguOGwyMTkuMiAwIDMyIDBjNDAuMyAwIDc4LjIgMTkgMTAyLjQgNTEuMmwxOS4yIDI1LjZjMTAuNiAxNC4xIDcuNyAzNC4yLTYuNCA0NC44cy0zNC4yIDcuNy00NC44LTYuNGwtMTkuMi0yNS42Yy01LjMtNy0xMS44LTEyLjgtMTkuMi0xN2wwIDg3LjQtMzUyIDAtNDAuNC05NC4zYy0zLjktOS4yLTE1LjMtMTIuNi0yMy42LTdsLTQyLjEgMjhjLTkuMSA2LjEtMTkuNyA5LjMtMzAuNyA5LjNsLTIgMEMyMy45IDI1NiAwIDIzMi4xIDAgMjAyLjcgMCAxOTAuNiA0LjEgMTc4LjkgMTEuNyAxNjkuNEw4Ny42IDc0LjZDNzguMSA2Ny40IDY0IDUzLjIgNjQgMzJ6TTU0NCAzNTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjQtMTYwIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjggMzUyIDB6TTI1NiAyODBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNDgtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMzY4IDI4MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHJGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtYXJyb3ctdXAtcmlnaHQiLGljb246WzQ0OCw1MTIsWyJleHRlcm5hbC1saW5rLXNxdWFyZSJdLCJmMTRjIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTI3MiAyOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTQuMSAwLTEwMyAxMDNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMDMtMTAzIDAgNTQuMXoiXX0sZ0xyPXJGZSxiTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVycnkiLGljb246WzY0MCw1MTIsW10sImU0ZWEiLCJNMjI0IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyOC0uMSAwYy4xIC43IC4xIDEuMyAuMSAyIDAgMzAuMi03LjYgNTkuOC0yMiA4Ni4zbC0xMi43IDIzLjMtLjYgMWMtMjIuMy0xMS4zLTQ2LjUtMTYuOC03MC44LTE2LjctMzIuNSAuMi02NC45IDEwLjctOTIuNCAzMS40LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI4LjEtMjEuMS02MS4zLTMxLjYtOTQuNC0zMS40LTIzLjYgLjItNDcuMSA1LjctNjguNyAxNi43bC0uNi0xLTEyLjctMjMuM2MtMTQuNC0yNi41LTIyLTU2LjItMjItODYuMyAwLS43IDAtMS40IC4xLTJsLS4xIDAgMC0xMjhjMC00NC4yIDM1LjgtODAgODAtODBsNDggMCAwLTMyek0xNjAgMjU2bDMyMCAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNmwtMjg4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMnpNNDAzLjQgNDc2LjFDMzc5LjEgNDk0LjMgMzUxLjEgNTEyIDMyMCA1MTJzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSx4THI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9zcXVpdG8iLGljb246WzU3Niw1MTIsW10sImU1MmIiLCJNMTc4LjUgNDk1LjJjLTcuNSA5LjYtMjEgMTIuMS0zMS4zIDUuM1MxMzMuNSA0ODAgMTM4LjkgNDY5bDEuMi0yLjIgMzYuMi01OCAwLTQxIC4zLTRjLjYtMy45IDIuMi03LjcgNC42LTEwLjlsMzkuMy01Mi4yLTY2LjIgNTkuNWMtMTcgMTUuMy0zOSAyMy43LTYxLjkgMjMuOGwtOC4xIDBjLTQ2LjYgMC04NC40LTM3LjgtODQuNC04NC40IDAtNDMgMzIuNC03OS4yIDc1LjEtODMuOWwxMzAuNS0xNC41LTQ0LjgtMzguMy0yLjQtMi40Yy01LjMtNi03LjMtMTQuNC01LjMtMjIuM2wxMy4zLTUzLjQtMjUuOS0zOC45LTEuMy0yLjFjLTUuOC0xMC44LTIuNy0yNC42IDcuNC0zMS43IDEwLjEtNy4xIDIzLjctNS4xIDMxLjQgNC4zbDEuNSAyIDMyIDQ4IDEuNCAyLjJjMi44IDUuMyAzLjUgMTEuNiAyLjEgMTcuNmwtMTIuMyA0OS4yIDUzLjMgNDUuNyAwLTI4LjhjMC0xMS44IDYuNS0yMi4xIDE2LTI3LjdsMC02MC41IC4zLTMuM2MxLjUtNy4zIDgtMTIuNyAxNS43LTEyLjdzMTQuMiA1LjUgMTUuNyAxMi43bC4zIDMuMiAwIDYwLjVjOS42IDUuNSAxNiAxNS44IDE2IDI3LjdsMCAyOC45IDUzLjQtNDUuOC0xMi4zLTQ5LjJjLTEuNS01LjktLjctMTIuMiAyLjEtMTcuNmwxLjQtMi4yIDMyLTQ4IDEuNS0yYzcuNy05LjQgMjEuMy0xMS41IDMxLjQtNC4zIDEwLjEgNy4xIDEzLjEgMjAuOSA3LjQgMzEuN2wtMS4zIDIuMS0yNS45IDM4LjkgMTMuMyA1My40YzIgOC0uMSAxNi4zLTUuMyAyMi4zbC0yLjQgMi40LTQ0LjcgMzguMyAxMzAuNSAxNC41YzQyLjggNC44IDc1LjEgNDAuOSA3NS4xIDgzLjkgMCA0Ni42LTM3LjggODQuNC04NC40IDg0LjRsLTguMSAwYy0yMi44IDAtNDQuOS04LjUtNjEuOS0yMy44bC02Ni4xLTU5LjUgMzkuMiA1Mi4yYzIuNCAzLjIgNCA3IDQuNiAxMC45bC4zIDQgMCA0MSAzNi4yIDU4IDEuMiAyLjFjNS40IDExIDIgMjQuNy04LjMgMzEuNXMtMjMuOCA0LjQtMzEuMy01LjNsLTEuNC0yLTQwLTY0LTEuNi0zLjFjLTEuNC0zLjEtMi4xLTYuNi0yLjEtMTAuMWwwLTM5LjgtMzIuNC00My4xIDAgNzQuN2MwIDE3LjctMTQuMyAzMi0zMiAzMi0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc0LjYtMzIuMyA0MyAwIDM5LjhjMCAzLjUtLjcgNi45LTIuMSAxMC4xbC0xLjYgMy4xLTQwIDY0LTEuNCAyeiJdfSx2THI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY2lyY2xlLWFycm93LXJpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJlNGQxIiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNDQuN2MtMzUuNyAyLjktNjguNSAxNS42LTk2IDM1LjRsMC00YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQgMGMtMTMuOCAxOS4yLTI0LjEgNDEtMzAuMSA2NC41LTEuOS0uNC0zLjktLjUtNS45LS41bC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDgwIDc0LjkgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDAuNy02Ny4zYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwyOC43IDI4LjctODkuNCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDg5LjQgMC0yOC43IDI4LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni01NmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNTYtNTZjLTYuMi02LjItMTYuNC02LjItMjIuNiAweiJdfSxhRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbODU5NiwiYXJyb3dzLWFsdC1oIl0sImYzMzciLCJNNTAyLjYgNDA2LjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzNTIgNDkyLjkgMzUyIDQ4MGwwLTY0LTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyMCAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3pNOS40IDE1MC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMxNjAgMTkuMSAxNjAgMzJsMCA2NCAzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtOTYtOTZ6Il19LHlMcj1hRmUsd0xyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzIixpY29uOls1MTIsNTEyLFtdLCJlMDc0IiwiTTI5NiA0MGMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDQ0LjEtNTMuMyA2Ni4xLTg0LjUgMzUtMTUuNi0xNS42LTQwLjktMTUuNi01Ni42IDBzLTE1LjYgNDAuOSAwIDU2LjZjMzEuMiAzMS4yIDkuMSA4NC41LTM1IDg0LjUtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGM0NC4xIDAgNjYuMSA1My4zIDM1IDg0LjUtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZzNDAuOSAxNS42IDU2LjYgMGMzMS4yLTMxLjIgODQuNS05LjEgODQuNSAzNSAwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwYzAtNDQuMSA1My4zLTY2LjEgODQuNS0zNSAxNS42IDE1LjYgNDAuOSAxNS42IDU2LjYgMHMxNS42LTQwLjkgMC01Ni42Yy0zMS4yLTMxLjItOS4xLTg0LjUgMzUtODQuNSAyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGMtNDQuMSAwLTY2LjEtNTMuMy0zNS04NC41IDE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42cy00MC45LTE1LjYtNTYuNiAwQzM0OS4zIDEwNi4xIDI5NiA4NC4xIDI5NiA0MHpNMTYwIDIyNGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxrTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VtIixpY29uOls1MTIsNTEyLFsxMjgxNDJdLCJmM2E1IiwiTTExNi43IDMzLjhjNC41LTYuMSAxMS43LTkuOCAxOS4zLTkuOGwyNDAgMGM3LjYgMCAxNC44IDMuNiAxOS4zIDkuOGwxMTIgMTUyYzYuOCA5LjIgNi4xIDIxLjktMS41IDMwLjRsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MnptMzguNSAzOS44Yy0zLjMgMi41LTQuMiA3LTIuMSAxMC41TDIxMC41IDE3OS44IDYzLjMgMTkyYy00LjEgLjMtNy4zIDMuOC03LjMgOHMzLjIgNy42IDcuMyA4bDE5MiAxNmMuNCAwIC45IDAgMS4zIDBsMTkyLTE2YzQuMS0uMyA3LjMtMy44IDcuMy04cy0zLjItNy42LTcuMy04bC0xNDcuMi0xMi4zIDU3LjQtOTUuNmMyLjEtMy41IDEuMi04LjEtMi4xLTEwLjVzLTcuOS0yLTEwLjcgMUwyNTYgMTcyLjIgMTY1LjkgNzQuNmMtMi44LTMtNy40LTMuNC0xMC43LTF6Il19LFNMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQiLGljb246WzQ0OCw1MTIsWzEyODcwMV0sImY3ZDgiLCJNMjQgMEMxMC43IDAgMCAxMC43IDAgMjRTMTAuNyA0OCAyNCA0OGw4IDAgMCAxNDguOWMtMS45IDEuNC0zLjggMi45LTUuNiA0LjQtMTUuNSAxMy4yLTI2LjQgMzEuNi0yNi40IDU0LjYgMCA0Ni45IDE0LjMgODQuMSAzNyAxMTIuNSAxNC4yIDE3LjcgMzEuMSAzMS4zIDQ4LjUgNDEuOEw2NS42IDQ2OS45Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44Uzg1LjcgNTEyIDk2IDUxMmwyNTYgMGMxMC4zIDAgMTkuOS00LjkgMjYtMTMuM3M3LjctMTkuMSA0LjQtMjguOGwtMTkuOC01OS41YzE3LjQtMTAuNSAzNC4zLTI0LjEgNDguNS00MS44IDIyLjctMjguNCAzNy02NS41IDM3LTExMi41IDAtMjMuMS0xMC45LTQxLjUtMjYuNC01NC42LTEuOC0xLjUtMy43LTMtNS42LTQuNGwwLTE0OC45IDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFM0MzcuMyAwIDQyNCAwTDI0IDB6TTk2IDgwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTIyNCAyODhjLTg4LjQgMC0xNjAtMTQuMy0xNjAtMzJzNzEuNi0zMiAxNjAtMzIgMTYwIDE0LjMgMTYwIDMyLTcxLjYgMzItMTYwIDMyeiJdfSxNTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luZ2xlLXF1b3RlLWxlZnQiLGljb246WzE5Miw1MTIsW10sImU4MWIiLCJNMTI4IDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjE2QzAgMTQ5LjcgNTMuNyA5NiAxMjAgOTZsOCAweiJdfSxDTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbHMiLGljb246WzU3Niw1MTIsW10sImUxZjMiLCJNMTYwIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMzJ6bTE3NiA5NmE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMTYwIDE1MmwwLTQ4YzAtNC40IDMuNi04IDgtOGw0OCAwYzQuNCAwIDguMSAzLjYgNy41IDgtMy42IDI5LTI2LjYgNTEuOS01NS41IDU1LjUtNC40IC41LTgtMy4xLTgtNy41em0wIDExMmMwLTQuNCAzLjYtOC4xIDgtNy41IDI5IDMuNiA1MS45IDI2LjYgNTUuNSA1NS41IC41IDQuNC0zLjEgOC03LjUgOGwtNDggMGMtNC40IDAtOC0zLjYtOC04bDAtNDh6TTUwNCAxNTkuNWMtMjktMy42LTUxLjktMjYuNi01NS41LTU1LjUtLjUtNC40IDMuMS04IDcuNS04bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDhjMCA0LjQtMy42IDguMS04IDcuNXpNNTEyIDI2NGwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNSA0LjQtLjUgOCAzLjEgOCA3LjV6TTQ4IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEzOC43IDAgMTUyTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM5MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjY0eiJdfSx6THI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGV0LWJ1dHRvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjEwYSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yMjQgNDAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sUF89e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MjE2NCwicmVjdGFuZ2xlLXRpbWVzIiwidGltZXMtcmVjdGFuZ2xlIiwid2luZG93LWNsb3NlIl0sImY0MTAiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTE2NyAxNjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LF9Mcj1QXyxUTHI9UF8sTExyPVBfLERMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3cmVuY2giLGljb246WzU3Niw1MTIsWzEyODI5NV0sImYwYWQiLCJNNTA5LjQgOTguNmM3LjYtNy42IDIwLjMtNS43IDI0LjEgNC4zIDYuOCAxNy43IDEwLjUgMzcgMTAuNSA1Ny4xIDAgODguNC03MS42IDE2MC0xNjAgMTYwLTE3LjUgMC0zNC40LTIuOC01MC4yLThMMTQ2LjkgNDk4LjljLTI4LjEgMjguMS03My43IDI4LjEtMTAxLjggMHMtMjguMS03My43IDAtMTAxLjhMMjMyIDIxMC4yYy01LjItMTUuOC04LTMyLjYtOC01MC4yIDAtODguNCA3MS42LTE2MCAxNjAtMTYwIDIwLjEgMCAzOS40IDMuNyA1Ny4xIDEwLjUgMTAgMy44IDExLjggMTYuNSA0LjMgMjQuMWwtODguNyA4OC43Yy0zIDMtNC43IDcuMS00LjcgMTEuM2wwIDQxLjRjMCA4LjggNy4yIDE2IDE2IDE2bDQxLjQgMGM0LjIgMCA4LjMtMS43IDExLjMtNC43bDg4LjctODguN3oiXX0sWF89e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhc2gtY2FuIixpY29uOls0NDgsNTEyLFs2MTQ2MCwidHJhc2gtYWx0Il0sImYyZWQiLCJNMTM2LjcgNS45QzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjF6TTMyIDE0NGwzODQgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA0em04OCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xOTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTkyYzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSwkTHI9WF8saUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzIixpY29uOls0NDgsNTEyLFsidGgiXSwiZjAwYSIsIk0zODQgOTZsMCA2NC02NCAwIDAtNjQgNjQgMHptMCAxMjhsMCA2NC02NCAwIDAtNjQgNjQgMHptMCAxMjhsMCA2NC02NCAwIDAtNjQgNjQgMHpNMjU2IDI4OGwtNjQgMCAwLTY0IDY0IDAgMCA2NHptLTY0IDY0bDY0IDAgMCA2NC02NCAwIDAtNjR6bS02NC02NGwtNjQgMCAwLTY0IDY0IDAgMCA2NHpNNjQgMzUybDY0IDAgMCA2NC02NCAwIDAtNjR6bTAtMTkybDAtNjQgNjQgMCAwIDY0LTY0IDB6bTEyOCAwbDAtNjQgNjQgMCAwIDY0LTY0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6Il19LEFMcj1pRmUsRUxyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpYmJvbiIsaWNvbjpbMzg0LDUxMixbMTI3ODk1XSwiZjRkNiIsIk0yMzUuMSAwYzMzLjQgMCA2NC41IDE3LjQgODEuOSA0NS45IDEuMiAyIDEzIDIxLjMgMzUuMyA1Ny44IDIxLjEgMzQuNSAxOC4zIDc4LjUtNyAxMTBMMjc4LjMgMjk3LjcgMzY0LjUgNDA2YzUuNSA2LjkgNC40IDE2LjktMi41IDIyLjVsLTgwIDY0Yy02LjkgNS41LTE3IDQuNC0yMi41LTIuNUwzOC42IDIxMy44QzEzLjMgMTgyLjMgMTAuNSAxMzguMyAzMS42IDEwMy44IDU0IDY3LjIgNjUuNyA0Ny45IDY3IDQ1LjkgODQuNCAxNy40IDExNS40IDAgMTQ4LjkgMGw4Ni4zIDB6TTE5MiAxODkuMmw0OC42LTYxLjItOTcuMyAwIDQ4LjYgNjEuMnpNNzUgMzM2LjJsODYuMiAxMDcuOC0zNi44IDQ2Yy01LjUgNi45LTE1LjYgOC0yMi41IDIuNWwtODAtNjRjLTYuOS01LjUtOC0xNS42LTIuNS0yMi41TDc1IDMzNi4yeiJdfSxJTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmstZmxhZyIsaWNvbjpbNTEyLDUxMixbXSwiZTUxYyIsIk0zNTItMzJMMjQwLTMyYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNDQtMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMCAwIDIyNC01MS4yIDM4LjRDNC43IDQ2MC40IDAgNDY5LjkgMCA0ODAgMCA0OTcuNyAxNC4zIDUxMiAzMiA1MTJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNmwtNTEuMi0zOC40IDAtMjI0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5MiAwIDAtNjQgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6bTQ4IDIyNGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6Il19LHNGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cC1kb3duLWxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvd3MtYWx0Il0sImYwYjIiLCJNMjc4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzE3OS4xIDEyOCAxOTIgMTI4bDMyIDAgMCA5Ni05NiAwIDAtMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOVMxMjggMzMyLjkgMTI4IDMyMGwwLTMyIDk2IDAgMCA5Ni0zMiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWw2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMzIuOSAzODQgMzIwIDM4NGwtMzIgMCAwLTk2IDk2IDAgMCAzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMzg0IDE3OS4xIDM4NCAxOTJsMCAzMi05NiAwIDAtOTYgMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NHoiXX0sUExyPXNGZSxOTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLXNpZGUiLGljb246WzY0MCw1MTIsWzEyODY2M10sImY1ZTQiLCJNMTQ3IDEwNi43bC0yOS44IDg1LjMgMTIyLjkgMCAwLTk2LTc3LjkgMGMtNi44IDAtMTIuOSA0LjMtMTUuMSAxMC43ek00OC42IDE5My45TDg2LjUgODUuNkM5Ny44IDUzLjUgMTI4LjEgMzIgMTYyLjEgMzJMMzYwIDMyYzI1LjIgMCA0OC45IDExLjkgNjQgMzJsOTYuMiAxMjguM0M1ODcuMSAxOTYuNSA2NDAgMjUyLjEgNjQwIDMyMGwwIDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xNi40IDBjLTQgNDQuOS00MS43IDgwLTg3LjYgODBzLTgzLjYtMzUuMS04Ny42LTgwbC0xNDQuNyAwYy00IDQ0LjktNDEuNyA4MC04Ny42IDgwcy04My42LTM1LjEtODcuNi04MGwtLjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC04MGMwLTMwLjEgMjAuNy01NS4zIDQ4LjYtNjIuMXpNNDQwIDE5MmwtNjcuMi04OS42Yy0zLTQtNy44LTYuNC0xMi44LTYuNGwtNzIgMCAwIDk2IDE1MiAwek0xNTIgNDMyYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMzYwLTQwYTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6Il19LG5GZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUiXSwiZjgyOSIsIk0xNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjFDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2ek0zMiAxNDRsMzg0IDAtMjEuMSAzMjMuMUMzOTMuMyA0OTIuNCAzNzIuMyA1MTIgMzQ3IDUxMkwxMDEgNTEyYy0yNS4zIDAtNDYuMy0xOS42LTQ3LjktNDQuOUwzMiAxNDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sT0xyPW5GZSxSTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlmZS1yaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMWNkIiwiTTM2Ny4yIDQxMi41QzMzNS45IDQzNC45IDI5Ny41IDQ0OCAyNTYgNDQ4cy03OS45LTEzLjEtMTExLjItMzUuNWw1OC01OGMxNS44IDguNiAzNCAxMy41IDUzLjMgMTMuNXMzNy40LTQuOSA1My4zLTEzLjVsNTggNTh6bTkwLjcgLjhjMzMuOC00My40IDU0LTk4IDU0LTE1Ny4zUzQ5MS44IDE0Mi4xIDQ1OCA5OC43YzktMTIuNSA3LjktMzAuMS0zLjQtNDEuM1M0MjUuOCA0NSA0MTMuMyA1NEMzNjkuOSAyMC4yIDMxNS4zIDAgMjU2IDBTMTQyLjEgMjAuMiA5OC43IDU0Yy0xMi41LTktMzAuMS03LjktNDEuMyAzLjRTNDUgODYuMiA1NCA5OC43QzIwLjIgMTQyLjEgMCAxOTYuNyAwIDI1NlMyMC4yIDM2OS45IDU0IDQxMy4zYy05IDEyLjUtNy45IDMwLjEgMy40IDQxLjNTODYuMiA0NjcgOTguNyA0NThjNDMuNCAzMy44IDk4IDU0IDE1Ny4zIDU0czExMy45LTIwLjIgMTU3LjMtNTRjMTIuNSA5IDMwLjEgNy45IDQxLjMtMy40czEyLjQtMjguOCAzLjQtNDEuM3ptLTQ1LjUtNDYuMWwtNTgtNThjOC42LTE1LjggMTMuNS0zNCAxMy41LTUzLjNzLTQuOS0zNy40LTEzLjUtNTMuM2w1OC01OEM0MzQuOSAxNzYuMSA0NDggMjE0LjUgNDQ4IDI1NnMtMTMuMSA3OS45LTM1LjUgMTExLjJ6TTM2Ny4yIDk5LjVsLTU4IDU4Yy0xNS44LTguNi0zNC0xMy41LTUzLjMtMTMuNXMtMzcuNCA0LjktNTMuMyAxMy41bC01OC01OEMxNzYuMSA3Ny4xIDIxNC41IDY0IDI1NiA2NHM3OS45IDEzLjEgMTExLjIgMzUuNXpNMTU3LjUgMzA5LjNsLTU4IDU4Qzc3LjEgMzM1LjkgNjQgMjk3LjUgNjQgMjU2czEzLjEtNzkuOSAzNS41LTExMS4ybDU4IDU4Yy04LjYgMTUuOC0xMy41IDM0LTEzLjUgNTMuM3M0LjkgMzcuNCAxMy41IDUzLjN6TTIwOCAyNTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sRkxyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvcHlyaWdodCIsaWNvbjpbNTEyLDUxMixbMTY5XSwiZjFmOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjA1LjEgMzA2LjljMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtNDYuOSA0Ni45LTEyMi44IDQ2LjktMTY5LjcgMHMtNDYuOS0xMjIuOCAwLTE2OS43IDEyMi44LTQ2LjkgMTY5LjcgMGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0yOC4xLTI4LjEtNzMuNy0yOC4xLTEwMS44IDBzLTI4LjEgNzMuNyAwIDEwMS44eiJdfSxCTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wcmVzY3JpcHRpb24iLGljb246WzM4NCw1MTIsW10sImY1NzIiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTg4IDE5MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDIyLjUgMCA1OC40IDU1LTMzLjQgMzEuNmMtOS42IDkuMS0xMC4xIDI0LjMtLjkgMzMuOXMyNC4zIDEwLjEgMzMuOSAuOWwzNS40LTMzLjUgMzUuNiAzMy41YzkuNyA5LjEgMjQuOCA4LjYgMzMuOS0xczguNi0yNC44LTEtMzMuOWwtMzMuNi0zMS42IDMzLjYtMzEuOGM5LjYtOS4xIDEwLjEtMjQuMyAuOS0zMy45cy0yNC4zLTEwLjEtMzMuOS0uOWwtMzUuNyAzMy43LTQwLjktMzguNWMxMi45LTExLjcgMjEuMS0yOC42IDIxLjEtNDcuNSAwLTM1LjMtMjguNy02NC02NC02NGwtNTYgMHptMzIgODBsLTggMCAwLTMyIDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTI0IDB6Il19LEhMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlcmFzZXIiLGljb246WzU3Niw1MTIsW10sImYxMmQiLCJNMTc4LjUgNDE2bDEyMyAwIDY1LjMtNjUuMy0xNzMuNS0xNzMuNS0xMjYuNyAxMjYuNyAxMTIgMTEyek0yMjQgNDgwbC00NS41IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDE3IDM0NUM2LjEgMzM0LjEgMCAzMTkuNCAwIDMwNHM2LjEtMzAuMSAxNy00MUwyNjMgMTdDMjczLjkgNi4xIDI4OC42IDAgMzA0IDBzMzAuMSA2LjEgNDEgMTdMNTI3IDE5OWMxMC45IDEwLjkgMTcgMjUuNiAxNyA0MXMtNi4xIDMwLjEtMTcgNDFsLTEzNSAxMzUgMTIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI4OCAweiJdfSxvRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzLXN0YXJ0IixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTEiXSwiZjI1MSIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNMjg4IDQzN2wwIDExLTE5MiAwIDAtMTFjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsNjcuOS02Ny45IDY3LjkgNjcuOWMxOCAxOCAyOC4xIDQyLjQgMjguMSA2Ny45eiJdfSxxTHI9b0ZlLGxGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbNjE4NDAsImFycm93LWFsdC1jaXJjbGUtbGVmdCJdLCJmMzU5IiwiTTUxMiAyNTZhMjU2IDI1NiAwIDEgMCAtNTEyIDAgMjU2IDI1NiAwIDEgMCA1MTIgMHpNMTI0LjcgMjQ0LjdsMTA0LTEwNGM0LjYtNC42IDExLjUtNS45IDE3LjQtMy41czkuOSA4LjMgOS45IDE0LjhsMCA1NiA5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA1NmMwIDYuNS0zLjkgMTIuMy05LjkgMTQuOHMtMTIuOSAxLjEtMTcuNC0zLjVsLTEwNC0xMDRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42eiJdfSxWTHI9bEZlLGpMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcnV6ZWlyby1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMTUyIiwiTTI0MCA5NmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCA3MS42IDQ3LjEgMTMyLjMgMTEyIDE1Mi43TDE5MiAyNTZjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTIuOCAwIDIzLjMgMTAuMSAyNCAyMi43IDE1LjUtOS41IDMzLjUtMTQuNyA1Mi4zLTE0LjdsMTEuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMS44IDBjLTE4LjggMC0zNi4xIDEwLTQ1LjQgMjYuMy00LjUgNy45LTYuOSAxNi44LTYuOSAyNS45bDAgNzUuOGM0Mi41IDAgODEuMS0xNi42IDEwOS44LTQzLjYgMTIuOS0xMi4xIDMzLjEtMTEuNSA0NS4yIDEuM3MxMS41IDMzLjEtMS4zIDQ1LjJDMzUzLjcgNDU2LjggMjk5LjUgNDgwIDI0MCA0ODAgMTE2LjMgNDgwIDE2IDM3OS43IDE2IDI1NlMxMTYuMyAzMiAyNDAgMzJjNTkuNSAwIDExMy43IDIzLjIgMTUzLjcgNjEuMSAxMi45IDEyLjEgMTMuNCAzMi40IDEuMyA0NS4ycy0zMi40IDEzLjQtNDUuMiAxLjNDMzIxLjEgMTEyLjYgMjgyLjUgOTYgMjQwIDk2eiJdfSxVTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic21va2luZyIsaWNvbjpbNTc2LDUxMixbMTI4Njg0XSwiZjQ4ZCIsIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0zMjAgNDQ4bDk2IDAgMC0zMi05NiAwIDAgMzJ6TTAgNDE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyem01NzYtNDBsMCAxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sY0ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLXZlcnRpY2FsIixpY29uOls0NDgsNTEyLFsicG9sbCJdLCJmNjgxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTU2IDE5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMTg0IDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4ek0yMjQgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjA4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxXTHI9Y0ZlLEdMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJlNTQwIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNjQgMGMwIDguOC03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnoiXX0sWUxyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJpb2hhemFyZCIsaWNvbjpbNTc2LDUxMixbOTc2M10sImY3ODAiLCJNMjYwIDEyLjZjMC04LjMtNy42LTE0LjUtMTUuNS0xMi4xLTYwLjkgMTguOC0xMDUuMSA3NS44LTEwNS4xIDE0My4xIDAgMjUuMSA2LjEgNDguNyAxNyA2OS41LTIxIDEuOC00MiA4LjItNjEuNSAxOS41LTU3LjkgMzMuNi04NC44IDEwMC4yLTcwLjkgMTYyLjUgMS45IDguNCAxMS40IDEyIDE4LjkgNy42IDUtMi45IDcuNi04LjYgNy4xLTE0LjQtLjMtMy4zLS40LTYuNi0uNC0xMC4xIDAtMTIzLjUgMTg0LjQtMTIzLjUgMTg0LjQgMCAwIDg4LjQtOTQuNSAxMTMuNi0xNDguMiA3NS40LTQuNS0zLjItMTAuNS0zLjktMTUuMy0xLjEtNyA0LjEtOC42IDEzLjYtMi43IDE5LjEgNDYuNiA0My44IDExOCA1My45IDE3Ni4xIDIwLjIgMTcuOS0xMC40IDMyLjgtMjMuOSA0NC41LTM5LjQgMTEuNyAxNS42IDI2LjYgMjkuMSA0NC41IDM5LjQgNTguMSAzMy43IDEyOS41IDIzLjYgMTc2LjEtMjAuMiA1LjktNS41IDQuMy0xNS4xLTIuNy0xOS4xLTQuOC0yLjgtMTAuOC0yLjEtMTUuMyAxLjEtNTMuNyAzOC4yLTE0OC4yIDEzLTE0OC4yLTc1LjQgMC0xMjMuNSAxODQuNC0xMjMuNSAxODQuNCAwIDAgMy40LS4xIDYuOC0uNCAxMC4xLS41IDUuOCAyLjEgMTEuNSA3LjEgMTQuNCA3LjQgNC4zIDE3IC44IDE4LjktNy42IDEzLjktNjIuMi0xMy0xMjguOS03MC45LTE2Mi41LTE5LjUtMTEuMy00MC40LTE3LjctNjEuNS0xOS41IDEwLjktMjAuOCAxNy00NC40IDE3LTY5LjUgMC02Ny4zLTQ0LjItMTI0LjMtMTA1LjEtMTQzLjEtNy45LTIuNC0xNS41IDMuOC0xNS41IDEyLjEgMCA1LjkgNCAxMSA5LjUgMTMuMiA4My40IDMzLjYgNzAuOCAxNzguNC0zNy44IDE3OC40UzE2Ny4xIDU5LjQgMjUwLjUgMjUuOGM1LjUtMi4yIDkuNS03LjMgOS41LTEzLjJ6TTI0OC40IDI4OGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek00MzUgMzE3LjdjLTE2LjIgMC0zMS40IDUuNS00Mi4xIDE1LTEwLjEgOS4xLTE4LjEgMjMuNC0xOC4xIDQ1LjYgMCAyMS4xIDcuMiAzNSAxNi41IDQ0LjEgMzIuMi0yNC42IDU1LjUtNjAuNSA2My45LTEwMS44LTYuMy0xLjktMTMuMi0zLTIwLjItM3pNMjAyIDM3OC4zYzAtMjIuMy04LTM2LjYtMTguMS00NS42LTEwLjctOS42LTI1LjktMTUtNDIuMS0xNS03IDAtMTMuOSAxLTIwLjIgMyA4LjQgNDEuMyAzMS42IDc3LjIgNjMuOSAxMDEuOCA5LjQtOS4xIDE2LjUtMjMuMSAxNi41LTQ0LjJ6bTQxLjItMjI0LjNjOSAxMC4yIDIzLjIgMTguMiA0NS4yIDE4LjJzMzYuMi04IDQ1LjItMTguMmM2LjctNy42IDExLjUtMTcuNSAxMy42LTI4LjQtMTguMy02LjgtMzguMi0xMC41LTU4LjgtMTAuNXMtNDAuNSAzLjctNTguOCAxMC41YzIuMiAxMC45IDYuOSAyMC44IDEzLjYgMjguNXoiXX0sZEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlbGwtY29uY2llcmdlIixpY29uOls1MTIsNTEyLFsxMjg3MTgsImNvbmNpZXJnZS1iZWxsIl0sImY1NjIiLCJNMjE2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDAgMCAzMy4zQzEyNC44IDE1Ni43IDQwLjIgMjQzLjcgMzIuNiAzNTJsNDQ2LjkgMEM0NzEuOCAyNDMuNyAzODcuMiAxNTYuNyAyODAgMTQ1LjNsMC0zMy4zIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6TTI0IDQwMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0NjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCA0MDB6Il19LEtMcj1kRmUsWkxyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLWhvcml6b250YWwiLGljb246WzU3Niw1MTIsW10sImY1NDciLCJNNDggMzg0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgMjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAzODR6Il19LFFMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3JzZSIsaWNvbjpbNTc2LDUxMixbMTI4MDE0XSwiZjZmMCIsIk00NDggMjM4LjFsMC03OC4xIDE2IDAgOS44IDE5LjZjMTIuNSAyNS4xIDQyLjIgMzYuNCA2OC4zIDI2IDIwLjUtOC4yIDMzLjktMjggMzMuOS01MC4xTDU3NiA4MGMwLTE5LjEtOC40LTM2LjMtMjEuNy00OGw1LjcgMGM4LjggMCAxNi03LjIgMTYtMTZTNTY4LjggMCA1NjAgMEw0NDggMEMzNzcuMyAwIDMyMCA1Ny4zIDMyMCAxMjhsLTE3MS4yIDBDMTE4LjEgMTI4IDkxLjIgMTQ0LjMgNzYuMyAxNjguOCAzMy4yIDE3NC41IDAgMjExLjQgMCAyNTZsMCA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTZjMC0xMy40IDYuNi0yNS4yIDE2LjctMzIuNSAxLjYgMTMgNi4zIDI1LjQgMTMuNiAzNi40bDI4LjIgNDIuNGM4LjMgMTIuNCA2LjQgMjguNy0xLjIgNDEuNi0xNi41IDI4LTIwLjYgNjIuMi0xMCA5My45bDE3LjUgNTIuNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDMzLjcgMGMyMS44IDAgMzcuMy0yMS40IDMwLjQtNDIuMWwtMjAuOC02Mi41Yy0yLjEtNi40LS41LTEzLjQgNC4zLTE4LjJsMTIuNy0xMi43YzEzLjItMTMuMiAyMC42LTMxLjEgMjAuNi00OS43IDAtMi4zLS4xLTQuNi0uMy02LjlsODQgMjRjNC4xIDEuMiA4LjIgMi4xIDEyLjMgMi44TDMyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2NC4zYzE5LjItMTkuMiAzMS41LTQ1LjcgMzItNzUuN2wwIDAgMC0xLjl6TTQ5NiA2NGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6Il19LFhMcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMybDAgMzItMzIgMEMyOC43IDY0IDAgOTIuNyAwIDEyOGwwIDQ4IDQ0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyLTEyOCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTAgMjI0TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyLTQ0OCAweiJdfSxKTHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZy1jaGlsZCIsaWNvbjpbNjQwLDUxMixbXSwiZTRmYSIsIk0zMjAtMzJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDE2MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMSAxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjgtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjJsMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4ybDAgNzguOWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjYuNyAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyOC4xIDM5My40QzEwLjEgMzc1LjQgMCAzNTEgMCAzMjUuNUwwIDEwNEMwIDgxLjkgMTcuOSA2NCA0MCA2NHptNTYwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyMjEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDBjNy4zLTcuMyAyMy4xLTIzLjEgNDcuMi00Ny4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4yLTExIDExLTkuMiAyOS4yIDMuNyAzNy44IDkuNyA2LjUgMjIuNyA1LjIgMzEtMy4xbDUxLjEtNTEuMWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDU2MCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTM4NC41IDE0OWwtMTkuOC0xNi43IDExLjEgODguOGMxLjYgMTMuMi03LjcgMjUuMS0yMC44IDI2LjhzLTI1LjEtNy43LTI2LjgtMjAuOGwtNC40LTM1LTcuNiAwLTQuNCAzNWMtMS42IDEzLjItMTMuNiAyMi41LTI2LjggMjAuOHMtMjIuNS0xMy42LTIwLjgtMjYuOGwxMS4xLTg4LjgtMTkuOCAxNi43Yy0xMC4xIDguNi0yNS4zIDcuMy0zMy44LTIuOHMtNy4zLTI1LjMgMi44LTMzLjhsMjcuOS0yMy42QzI3MS4zIDcyLjggMjk1LjMgNjQgMzIwIDY0czQ4LjcgOC44IDY3LjYgMjQuN2wyNy45IDIzLjZjMTAuMSA4LjYgMTEuNCAyMy43IDIuOCAzMy44cy0yMy43IDExLjQtMzMuOCAyLjh6Il19LGVEcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpdGFsaWMiLGljb246WzM4NCw1MTIsW10sImYwMzMiLCJNMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC01OC43IDAtMTMzLjMgMzIwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDU4LjcgMCAxMzMuMy0zMjAtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHREcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraGFuZGEiLGljb246WzUxMiw1MTIsWzk3NzJdLCJmNjZkIiwiTTI0MC43IDhjOC45LTcuNCAyMS44LTcuNCAzMC43IDBsMzcuOCAzMS41YzguNyA3LjMgMTEuMSAxOS42IDYgMjkuNi0xLjIgMi40LTIuOCA1LjUtNC42IDkuMiAzNC4yIDE5LjIgNTcuMyA1NS44IDU3LjMgOTcuOHMtMjMuMSA3OC42LTU3LjMgOTcuOGMxLjggMy43IDMuMyA2LjggNC42IDkuMiA1LjEgMTAgMi43IDIyLjMtNiAyOS42bC0zNy4yIDMxIDAgMTkuOGMyMi45LTE1LjcgNDguNC0zMy4zIDc2LjctNTIuNyA0Mi44LTI5LjQgNjguNC03OCA2OC40LTEzMGwwLTExLjFjMC0yMy45LTcuMS00Ny4zLTIwLjQtNjcuMi01LjEtNy43LTQuNi0xNy44IDEuNy0yNC42IDYuNi03LjEgMTcuMi04LjEgMjUuMi0yLjggMjcuNSAxOC4xIDg5LjQgNjcuNSA4OS40IDE0OS4xIDAgNDYuNS0yMC4yIDg4LjYtNDEuOCAxMjAuNC0yMS42IDMyLTQ1LjYgNTUtNTUuMyA2My44LTcuOCA3LjEtMTkgNy45LTI3LjYgM2wtNzAuOC00MC4zLTMyLjcgMjIuNSA0NS41IDMxLjNjMS44LS40IDMuNy0uNyA1LjctLjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTEyLjIgMC0yMi4zLTkuMS0yMy44LTIxbC00MC4yLTI3LjYgMCAyOC45YzkuNiA1LjUgMTYgMTUuOSAxNiAyNy43IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTEuOCA2LjQtMjIuMiAxNi0yNy43bDAtMjguMS00MC4zIDI3LjdjLTEuOCAxMS40LTExLjggMjAuMS0yMy43IDIwLjEtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyLjIgMCA0LjQgLjMgNi41IC45bDQ1LjgtMzEuNS0zMi43LTIyLjUtNzAuOCA0MC4zYy04LjcgNC45LTE5LjggNC4xLTI3LjYtMy05LjctOC44LTMzLjctMzEuOS01NS4zLTYzLjgtMjEuNS0zMS44LTQxLjgtNzMuOS00MS44LTEyMC40IDAtODEuNyA2MS45LTEzMS4xIDg5LjQtMTQ5LjEgOC4xLTUuMyAxOC42LTQuMyAyNS4yIDIuOCA2LjQgNi45IDYuOCAxNyAxLjcgMjQuNi0xMy4zIDE5LjktMjAuNCA0My4zLTIwLjQgNjcuMmwwIDExLjFjMCA1MS45IDI1LjYgMTAwLjYgNjguNCAxMzAgMjguNCAxOS42IDUzLjcgMzYuOSA3NS42IDUybDAtMTkuMS0zNy4yLTMxYy04LjctNy4zLTExLjEtMTkuNi02LTI5LjYgMS4yLTIuNCAyLjgtNS41IDQuNi05LjItMzQuMi0xOS4yLTU3LjMtNTUuOC01Ny4zLTk3LjhzMjMuMS03OC42IDU3LjMtOTcuOGMtMS44LTMuNy0zLjMtNi44LTQuNi05LjItNS4xLTEwLTIuNy0yMi4zIDYtMjkuNkwyNDAuNyA4ek0yMjAuMyAxMjIuOWMtMTcgMTEuNS0yOC4yIDMxLTI4LjIgNTMuMXMxMS4yIDQxLjYgMjguMiA1My4xYzYuOC0xOS4yIDExLjgtMzguNCAxMS44LTUzLjFzLTQuOS0zMy45LTExLjgtNTMuMXptNzEuNSAxMDYuMmMxNy0xMS41IDI4LjItMzEgMjguMi01My4xcy0xMS4yLTQxLjYtMjguMi01My4xYy02LjggMTkuMi0xMS44IDM4LjQtMTEuOCA1My4xczQuOSAzMy45IDExLjggNTMuMXoiXX0sdUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZnJvd24tb3BlbiIsaWNvbjpbNTEyLDUxMixbMTI4NTUwLCJmcm93bi1vcGVuIl0sImY1N2EiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTgyLjQgMzgyLjVjLTEyLjQgNS4yLTI2LjUtNC4xLTIxLjEtMTYuNCAxNi0zNi42IDUyLjQtNjIuMSA5NC44LTYyLjFzNzguOCAyNS42IDk0LjggNjIuMWM1LjQgMTIuMy04LjcgMjEuNi0yMS4xIDE2LjQtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44eiJdfSxyRHI9dUZlLHdwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjayIsaWNvbjpbNDQ4LDUxMixbMTAwMDMsMTAwMDRdLCJmMDBjIiwiTTQzNC44IDcwLjFjMTQuMyAxMC40IDE3LjUgMzAuNCA3LjEgNDQuN2wtMjU2IDM1MmMtNS41IDcuNi0xNCAxMi4zLTIzLjQgMTMuMXMtMTguNS0yLjctMjUuMS05LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTAxLjUgMTAxLjUgMjM0LTMyMS43YzEwLjQtMTQuMyAzMC40LTE3LjUgNDQuNy03LjF6Il19LGFEcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaW5nZXJwcmludCIsaWNvbjpbNTEyLDUxMixbXSwiZjU3NyIsIk00OCAyNTZjMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4IDYzLjEgMCAxMTkuNiAyOC4xIDE1Ny44IDcyLjUgOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOEM0MDMuMyAzNC42IDMzMy43IDAgMjU2IDAgMTE0LjYgMCAwIDExNC42IDAgMjU2bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwem00NTguNS01Mi45Yy0yLjctMTMtMTUuNS0yMS4zLTI4LjQtMTguNXMtMjEuMyAxNS41LTE4LjUgMjguNGMyLjkgMTMuOSA0LjUgMjguMyA0LjUgNDMuMWwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMwLTE4LjEtMS45LTM1LjgtNS41LTUyLjl6TTI1NiA4MGMtMTkgMC0zNy40IDMtNTQuNSA4LjYtMTUuMiA1LTE4LjcgMjMuNy04LjMgMzUuOSA3LjEgOC4zIDE4LjggMTAuOCAyOS40IDcuOSAxMC42LTIuOSAyMS44LTQuNCAzMy40LTQuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDI0LjljMCAyNS4yLTEuNSA1MC4zLTQuNCA3NS4zLTEuNyAxNC42IDkuNCAyNy44IDI0LjIgMjcuOCAxMS44IDAgMjEuOS04LjYgMjMuMy0yMC4zIDMuMy0yNy40IDUtNTUgNS04Mi43bDAtMjQuOWMwLTk3LjItNzguOC0xNzYtMTc2LTE3NnpNMTUwLjcgMTQ4LjdjLTkuMS0xMC42LTI1LjMtMTEuNC0zMy45LS40LTIzLjEgMjkuOC0zNi44IDY3LjEtMzYuOCAxMDcuN2wwIDI0LjljMCAyNC4yLTIuNiA0OC40LTcuOCA3MS45LTMuNCAxNS42IDcuOSAzMS4xIDIzLjkgMzEuMSAxMC41IDAgMTkuOS03IDIyLjItMTcuMyA2LjQtMjguMSA5LjctNTYuOCA5LjctODUuOGwwLTI0LjljMC0yNy4yIDguNS01Mi40IDIyLjktNzMuMSA3LjItMTAuNCA4LTI0LjYtLjItMzQuMnpNMjU2IDE2MGMtNTMgMC05NiA0My05NiA5NmwwIDI0LjljMCAzNS45LTQuNiA3MS41LTEzLjggMTA2LjEtMy44IDE0LjMgNi43IDI5IDIxLjUgMjkgOS41IDAgMTcuOS02LjIgMjAuNC0xNS40IDEwLjUtMzkgMTUuOS03OS4yIDE1LjktMTE5LjdsMC0yNC45YzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsMCAyNC45YzAgMzYuMy0zLjUgNzIuNC0xMC40IDEwNy45LTIuNyAxMy45IDcuNyAyNy4yIDIxLjggMjcuMiAxMC4yIDAgMTktNyAyMS0xNyA3LjctMzguOCAxMS42LTc4LjMgMTEuNi0xMTguMWwwLTI0LjljMC01My00My05Ni05Ni05NnptMjQgOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNC45YzAgNTkuOS0xMSAxMTkuMy0zMi41IDE3NS4ybC01LjkgMTUuM2MtNC44IDEyLjQgMS40IDI2LjMgMTMuOCAzMXMyNi4zLTEuNCAzMS0xMy44bDUuOS0xNS4zQzI2Ny45IDQxMS45IDI4MCAzNDYuNyAyODAgMjgwLjlsMC0yNC45eiJdfSxpRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcmdpbmctc3RhdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZjVlNyIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyYzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTI3LjdjLTMyLjUtMTAuMi01Ni00MC41LTU2LTc2LjNsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OCAzMiAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCAzNS44LTIzLjUgNjYuMS01NiA3Ni4zTDUyMCAzODBjMCAzNy42LTMwLjQgNjgtNjggNjhzLTY4LTMwLjQtNjgtNjhsMC0xMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwwIDEyOS40YzkuMyAzLjMgMTYgMTIuMiAxNiAyMi42IDAgMTMuMy0xMC43IDI0LTI0IDI0TDcyIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC41IDYuNy0xOS4zIDE2LTIyLjZMNjQgNjR6bTgyLjcgMTI1LjdsMzkgMC0yMC45IDY2LjljLTIuNCA3LjYgMy4zIDE1LjQgMTEuMyAxNS40IDIuOSAwIDUuNi0xIDcuOC0yLjlsOTQuNi04MmMzLjEtMi43IDQuOS02LjYgNC45LTEwLjcgMC03LjgtNi4zLTE0LjEtMTQuMS0xNC4xbC0zOSAwIDIwLjktNjYuOWMyLjQtNy42LTMuMy0xNS40LTExLjMtMTUuNC0yLjkgMC01LjYgMS03LjggMi45bC05NC42IDgyYy0zLjEgMi43LTQuOSA2LjYtNC45IDEwLjcgMCA3LjggNi4zIDE0LjEgMTQuMSAxNC4xeiJdfSxzRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJmNTAyIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMTk0LjMgMzA0bDU5LjQgMGMyOS43IDAgNTcuNyA3LjMgODIuMyAyMC4xbDAgNC4zYy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw0NS43IDUxMkMyOS4zIDUxMiAxNiA0OTguNyAxNiA0ODIuMyAxNiAzODMuOCA5NS44IDMwNCAxOTQuMyAzMDR6bTMwMS43IC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0scEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS1zY3JlZW4tYnV0dG9uIixpY29uOlszODQsNTEyLFsibW9iaWxlLWFsdCJdLCJmM2NkIiwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHptNjQgMGwwIDMwNCAyMjQgMCAwLTMwNC0yMjQgMHpNMTkyIDQ3MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6Il19LG5Ecj1wRmUsb0RyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvci1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU0YWEiLCJNMzIwIDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6TTI4OCAwYy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM0w4MCAzMDcuOWMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxmRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctd2l0aC1jYW5lIixpY29uOls1NzYsNTEyLFsiYmxpbmQiXSwiZjI5ZCIsIk0yMjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE2MCAyMDUuM2wtMjIuNiAyMi42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNC40LTM0LjRjMjMuMi0yMy4yIDU0LjYtMzYuMiA4Ny4zLTM2LjIgMzYuMSAwIDcwLjMgMTUuOCA5My44IDQzLjFsNjguNiA4MGMxMS41IDEzLjQgOS45IDMzLjYtMy41IDQ1LjFzLTMzLjYgOS45LTQ1LjEtMy41bC01NS43LTY1IDAgMTE4LjYgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zem0uMSAxNjUuOGMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41bC02OC4zIDY4LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY4LjMtNjguM2MzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMMTYwLjEgMzcxem0yMzMuNS02Mi4yYzEwLjYtOCAyNS42LTUuOCAzMy42IDQuOGwxNDQgMTkyYzggMTAuNiA1LjggMjUuNi00LjggMzMuNnMtMjUuNiA1LjgtMzMuNi00LjhsLTE0NC0xOTJjLTgtMTAuNi01LjgtMjUuNiA0LjgtMzMuNnoiXX0sbERyPWZGZSxoRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS13YXZlZm9ybSIsaWNvbjpbMzg0LDUxMixbImZpbGUtbWVkaWNhbC1hbHQiXSwiZjQ3OCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtOTYgNjAuMyAwIDQ4LjggNjIuN2M1LjEgNi42IDEzLjMgMTAgMjEuNiA5LjFzMTUuNS02LjEgMTkuMS0xMy42bDQyLjktOTEuMiA5LjkgMTkuOGM0LjEgOC4xIDEyLjQgMTMuMyAyMS41IDEzLjNsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTcuMiAwLTI1LjQtNTAuN2MtNC4xLTguMi0xMi42LTEzLjQtMjEuOC0xMy4zcy0xNy41IDUuNS0yMS40IDEzLjhsLTQ3LjMgMTAwLjYtMzItNDEuMUM4Ni40IDMwNy40IDc5LjQgMzA0IDcyIDMwNEwwIDMwNCAwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6Il19LGNEcj1oRmUsZERyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNyYWNrIixpY29uOls1MTIsNTEyLFtdLCJlM2IxIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODYuNCAwLTMxLjMtNTIuMmMtNC4xLTYuOC0yLjYtMTUuNSAzLjUtMjAuNUwyNTYgMzY4IDE5NS44IDI4NS4yYy0xMC45LTE1IDguMi0zMy41IDIyLjgtMjJsMTE3LjkgOTIuNmM4IDYuMyA4LjIgMTguNCAuNCAyNC45TDI1NiA0NDggMjk0LjQgNTEyIDQwMCA1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6Il19LHVEcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtd2l6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmNmU4IiwiTTY0IDQwMGw4NS43LTIwOC4yYzE3LTQxLjMgNDcuOC03NS4zIDg3LjItOTYuM0wzODMuOCAxNy4yYzEyLjMtNi42IDI2LjUgNC43IDIzIDE4LjJMMzY5LjYgMTc3LjhjLTEuMSA0LjEtMS42IDguMy0xLjYgMTIuNiAwIDYuMyAxLjIgMTIuNiAzLjYgMTguNWw3Ni40IDE5MS4xLTIwNy4xIDAgMTEuOC0zNS40IDQwLjQtMTMuNWM2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMnMtNC40LTEzLTEwLjktMTUuMmwtNDAuNC0xMy41LTEzLjUtNDAuNEMyMzcgMjYwLjQgMjMwLjkgMjU2IDIyNCAyNTZzLTEzIDQuNC0xNS4yIDEwLjlsLTEzLjUgNDAuNC00MC40IDEzLjVDMTQ4LjQgMzIzIDE0NCAzMjkuMSAxNDQgMzM2czQuNCAxMyAxMC45IDE1LjJsNDAuNCAxMy41IDExLjggMzUuNC0xNDMuMSAwek0yNzkuNiAxNDEuNWMtMS4xLTMuMy00LjEtNS41LTcuNi01LjVzLTYuNSAyLjItNy42IDUuNWwtNi43IDIwLjItMjAuMiA2LjdjLTMuMyAxLjEtNS41IDQuMS01LjUgNy42czIuMiA2LjUgNS41IDcuNmwyMC4yIDYuNyA2LjcgMjAuMmMxLjEgMy4zIDQuMSA1LjUgNy42IDUuNXM2LjUtMi4yIDcuNi01LjVsNi43LTIwLjIgMjAuMi02LjdjMy4zLTEuMSA1LjUtNC4xIDUuNS03LjZzLTIuMi02LjUtNS41LTcuNmwtMjAuMi02LjctNi43LTIwLjJ6TTMyIDQ0OGw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LG1GZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWRvY3RvciIsaWNvbjpbNDQ4LDUxMixbInVzZXItbWQiXSwiZjBmMCIsIk0yMjQgOGExMjAgMTIwIDAgMSAwIDAgMjQwIDEyMCAxMjAgMCAxIDAgMC0yNDB6bTYwIDMxMi44Yy01LjQtLjUtMTEtLjgtMTYuNi0uOGwtODYuOSAwYy01LjYgMC0xMS4xIC4zLTE2LjYgLjhsMCA2Ny41YzE2LjUgNy42IDI4IDI0LjMgMjggNDMuNiAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTE5LjQgMTEuNS0zNi4xIDI4LTQzLjZsMC01OC40QzYxIDM1MyAxNiA0MTMuNiAxNiA0ODQuNiAxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmwzNjEuMSAwYzE1LjEgMCAyNy40LTEyLjMgMjcuNC0yNy40IDAtNzEtNDUtMTMxLjUtMTA4LTE1NC42bDAgMzcuNGMyMy4zIDguMiA0MCAzMC41IDQwIDU2LjZsMCAzMmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0zMmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCAzMmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0zMmMwLTI2LjEgMTYuNy00OC4zIDQwLTU2LjZsMC00Ni42eiJdfSxwRHI9bUZlLGdGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1iYXIiLGljb246WzUxMiw1MTIsWyJiYXItY2hhcnQiXSwiZjA4MCIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyem05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA4MGwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTEybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sZkRyPWdGZSxiRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3ByYXktY2FuLXNwYXJrbGVzIixpY29uOls1NzYsNTEyLFsiYWlyLWZyZXNoZW5lciJdLCJmNWQwIiwiTTE2MCAzMmwwIDgwIDEyOCAwIDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJMMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0wIDEyOGMtNTMgMC05NiA0My05NiA5NmwwIDIwOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIwOGMwLTUzLTQzLTk2LTk2LTk2bC0xMjggMHptNjQgOTZhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTQ0OCA0OGMwLTEuNC0xLTMtMi4yLTMuNkw0MTYgMzIgNDAzLjYgMi4yQzQwMyAxIDQwMS40IDAgNDAwIDBzLTMgMS0zLjYgMi4yTDM4NCAzMiAzNTQuMiA0NC40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDM4NCA2NCAzOTYuNCA5My44QzM5NyA5NSAzOTguNiA5NiA0MDAgOTZzMy0xIDMuNi0yLjJMNDE2IDY0IDQ0NS44IDUxLjZDNDQ3IDUxIDQ0OCA0OS40IDQ0OCA0OHptNzYuNCA0NS44QzUyNSA5NSA1MjYuNiA5NiA1MjggOTZzMy0xIDMuNi0yLjJMNTQ0IDY0IDU3My44IDUxLjZjMS4yLS42IDIuMi0yLjIgMi4yLTMuNiAwLTEuNC0xLTMtMi4yLTMuNkw1NDQgMzIgNTMxLjYgMi4yQzUzMSAxIDUyOS40IDAgNTI4IDBzLTMgMS0zLjYgMi4yTDUxMiAzMiA0ODIuMiA0NC40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDUxMiA2NCA1MjQuNCA5My44em03LjIgMTAwLjRjLS42LTEuMi0yLjItMi4yLTMuNi0yLjJzLTMgMS0zLjYgMi4yTDUxMiAyMjQgNDgyLjIgMjM2LjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMNTEyIDI1NiA1MjQuNCAyODUuOGMuNiAxLjIgMi4yIDIuMiAzLjYgMi4yczMtMSAzLjYtMi4yTDU0NCAyNTYgNTczLjggMjQzLjZjMS4yLS42IDIuMi0yLjIgMi4yLTMuNiAwLTEuNC0xLTMtMi4yLTMuNkw1NDQgMjI0IDUzMS42IDE5NC4yek01MTIgMTQ0YzAtMS40LTEtMy0yLjItMy42TDQ4MCAxMjggNDY3LjYgOTguMkM0NjcgOTcgNDY1LjQgOTYgNDY0IDk2cy0zIDEtMy42IDIuMkw0NDggMTI4IDQxOC4yIDE0MC40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDQ0OCAxNjAgNDYwLjQgMTg5LjhjLjYgMS4yIDIuMiAyLjIgMy42IDIuMnMzLTEgMy42LTIuMkw0ODAgMTYwIDUwOS44IDE0Ny42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjZ6Il19LGhEcj1iRmUsbURyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhaHQtc2lnbiIsaWNvbjpbMzIwLDUxMixbXSwiZTBhYyIsIk0xMzYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MC03NC40IDBDMTYuOCA2NCAwIDgwLjggMCAxMDEuNkwwIDQwNi4zYzAgMjMgMTguNyA0MS43IDQxLjcgNDEuN2w3MC4zIDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNDggMGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMiAwLTQwLjEtMjEuMS03NS4zLTUyLjctOTUuMSAxMy4xLTE4LjMgMjAuNy00MC43IDIwLjctNjQuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMmwtMTYgMCAwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xMTIgMTI4bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtMTYgMHptLTQ4IDY0bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtNDggMHoiXX0seEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWFycm93LXVwIixpY29uOls1MTIsNTEyLFsidGVtcGVyYXR1cmUtdXAiXSwiZTA0MCIsIk02NC41IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NHMtMTQ0LTY0LjUtMTQ0LTE0NGMwLTQyLjYgMTguNS04MSA0OC0xMDcuM0w2NC41IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjEyLjdjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMTIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00MzkuMSA5LjRsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTkuNC05LjQgMCAxNzguN2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE3OC43LTkuNCA5LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY0LTY0YzYtNiAxNC4xLTkuNCAyMi42LTkuNHMxNi42IDMuNCAyMi42IDkuNHoiXX0sZ0RyPXhGZSxiRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2ViLWF3ZXNvbWUiLGljb246WzY0MCw1MTIsW10sImU2ODIiLCJNMzcyLjIgNTJjMCAyMC45LTEyLjQgMzktMzAuMiA0Ny4yTDQ0OCAxOTIgNTUyLjQgMTcxLjFjLTUuMy03LjctOC40LTE3LjEtOC40LTI3LjEgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDI2LTIwLjYgNDcuMS00Ni40IDQ4TDQ4MSA0NDIuM2MtMTAuMyAyMy0zMy4yIDM3LjctNTguNCAzNy43bC0yMDUuMiAwYy0yNS4yIDAtNDgtMTQuOC01OC40LTM3LjdMNDYuNCAxOTJDMjAuNiAxOTEuMSAwIDE3MCAwIDE0NCAwIDExNy41IDIxLjUgOTYgNDggOTZzNDggMjEuNSA0OCA0OGMwIDEwLjEtMy4xIDE5LjQtOC40IDI3LjFMMTkyIDE5MiAyOTguMSA5OS4xYy0xNy43LTguMy0zMC0yNi4zLTMwLTQ3LjEgMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MnoiXX0seERyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vbi1iaW5hcnkiLGljb246WzM4NCw1MTIsW10sImU4MDciLCJNMTkyIDU0NGMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzYgMC04Ni4zIDYyLjEtMTU4IDE0NC0xNzNsMC00Ny4yLTQ5LjcgMjQuOC0zIDEuM2MtMTUuMiA1LjctMzIuNS0uOC0zOS45LTE1LjctNy40LTE0LjgtMi4yLTMyLjYgMTEuNS00MS4zbDIuOC0xLjYgMzguOC0xOS40LTM4LjgtMTkuNGMtMTUuOC03LjktMjIuMi0yNy4xLTE0LjMtNDIuOSA3LjQtMTQuOCAyNC44LTIxLjQgNDAtMTUuNmwzIDEuMyA0OS43IDI0LjggMC00NC4yYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0NC4yIDQ5LjctMjQuOCAzLTEuM2MxNS4yLTUuOCAzMi41IC44IDM5LjkgMTUuNnMyLjIgMzIuNy0xMS41IDQxLjNsLTIuOCAxLjYtMzguNyAxOS40IDM4LjcgMTkuM2MxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45LTcuNCAxNC44LTI0LjcgMjEuNC0zOS45IDE1LjZsLTMtMS4zLTQ5LjctMjQuOCAwIDQ3LjJjODEuOSAxNS4xIDE0NCA4Ni44IDE0NCAxNzMgMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZ6bTAtNjRhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0eiJdfSx2RHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibiIsaWNvbjpbMzg0LDUxMixbMTEwXSwiNGUiLCJNMjEuMSAzMy45YzEyLjctNC42IDI2LjktLjcgMzUuNSA5LjZMMzIwIDM1OS42IDMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzg0YzAgMTMuNS04LjQgMjUuNS0yMS4xIDMwLjFzLTI2LjkgLjctMzUuNS05LjZMNjQgMTUyLjQgNjQgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NEMwIDUwLjUgOC40IDM4LjUgMjEuMSAzMy45eiJdfSx2RmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXVwLWRvd24tbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbImFycm93cyJdLCJmMDQ3IiwiTTI3OC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAxMTQuNy0xMTQuNyAwIDkuNC05LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDExNC43IDAgMCAxMTQuNy05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOS40IDkuNCAwLTExNC43IDExNC43IDAtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMTE0LjcgMCAwLTExNC43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6Il19LHlEcj12RmUsTl89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UiLGljb246WzUxMiw1MTIsWzEyNzk2OCw2MzQ5OCw2MzUwMCwiaG9tZSIsImhvbWUtYWx0IiwiaG9tZS1sZy1hbHQiXSwiZjAxNSIsIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4ek0yNDAgMzIwbDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5Ni0xMjggMCAwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSx3RHI9Tl8sa0RyPU5fLFNEcj1OXyxNRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Bpbm5lciIsaWNvbjpbNTEyLDUxMixbXSwiZjExMCIsIk0yMDggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMCA0MTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNDggMjA4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMzY4IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTc1IDM2OS4xQTQ4IDQ4IDAgMSAxIDE0Mi45IDQzNyA0OCA0OCAwIDEgMSA3NSAzNjkuMXpNNzUgNzVBNDggNDggMCAxIDEgMTQyLjkgMTQyLjkgNDggNDggMCAxIDEgNzUgNzV6TTQzNyAzNjkuMUE0OCA0OCAwIDEgMSAzNjkuMSA0MzcgNDggNDggMCAxIDEgNDM3IDM2OS4xeiJdfSx5RmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F2ZWwiLGljb246WzU3Niw1MTIsWyJsZWdhbCJdLCJmMGUzIiwiTTE2OS42IDE1My40bC0xOC43LTE4LjdjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDI2NS42LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBMMzI5LjYtNi42YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zTDIxNC45IDE1My40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHpNMjc2IDIxMS43bC0zMS40LTMxLjQgMTEyLTExMiAxMTkuNCAxMTkuNC0xMTIgMTEyLTMxLjQtMzEuNC0yMzIgMjMyYy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMHMtMTUuNi00MC45IDAtNTYuNmwyMzItMjMyek0zOTAuOSAzNzQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMNTA1LjYgMjE0LjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTguNyAxOC43YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zTDQ1NC45IDM5My40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTguNy0xOC43eiJdfSxDRHI9eUZlLHdGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aWNrZXQtc2ltcGxlIixpY29uOls1NzYsNTEyLFsidGlja2V0LWFsdCJdLCJmM2ZmIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCA4LjgtNy40IDE1LjctMTUuNyAxOC42LTE4LjggNi41LTMyLjMgMjQuNC0zMi4zIDQ1LjRzMTMuNSAzOC45IDMyLjMgNDUuNGM4LjMgMi45IDE1LjcgOS44IDE1LjcgMTguNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NEMwIDMxMS4yIDcuNCAzMDQuMyAxNS43IDMwMS40IDM0LjUgMjk0LjkgNDggMjc3IDQ4IDI1NnMtMTMuNS0zOC45LTMyLjMtNDUuNEM3LjQgMjA3LjcgMCAyMDAuOCAwIDE5MmwwLTY0eiJdfSx6RHI9d0ZlLF9Ecj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3ZlIixpY29uOls1MTIsNTEyLFsxMjgzMzBdLCJmNGJhIiwiTTQ5NiA2NGMxMy4yIDAgMjAuNyAxNS4xIDEyLjggMjUuNkw0ODAgMTI4IDQ4MCAzMDRjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRsLTExMiAwLTQ2LjMgNDYuM2MtMTAuNCAxMC40LTI2LjUgMTIuNC0zOS4xIDQuOEw0MS41IDQ0MC45Yy0xNy0xMC4yLTE1LTM1LjUgMy40LTQyLjlMMTYwIDM1MkMyMy44IDMxMS4xIDcuNSAxNjkuOCAyMiA5NS43IDI1LjYgNzcuOSA0NS4zIDcxLjQgNjEuMyA4MC4yTDMyMCAyMjQgMzIwIDE0NGMwLTQ0LjIgMzUuOC04MCA4MC04MGw5NiAwem0tOTYgNTZhMjQgMjQgMCAxIDAgMCA0OCAyNCAyNCAwIDEgMCAwLTQ4ek0xODIuNS05LjZjMTIuNC0xMy43IDMzLjMtOC45IDQyLjUgNy4xbDU2LjQgOTguM2MtNS44IDE0LjQtOS4yIDMwLjEtOS40IDQ2LjVMMTM4LjEgNjhjMTAuMS0zMS42IDI3LTU4LjQgNDQuNC03Ny42eiJdfSxURHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFycC1kcm9wbGV0IixpY29uOls1MTIsNTEyLFtdLCJlNTdjIiwiTTI1NiAxNjBjMzUuMyAwIDY0LTI2LjkgNjQtNjAgMC0yNC0zMy43LTcwLjEtNTIuMi05My41LTYuMS03LjctMTcuNS03LjctMjMuNiAwLTE4LjUgMjMuNC01Mi4yIDY5LjUtNTIuMiA5My41IDAgMzMuMSAyOC43IDYwIDY0IDYwek0zNjggOTZjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJTMTQ0IDE1Ny45IDE0NCA5NmMwLTExLjEgMS42LTIxLjkgNC42LTMyTDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI3Ny41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMNDkzLjMgMzIyLjdjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1MTIgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04NC42IDBjMyAxMC4xIDQuNiAyMC45IDQuNiAzMnptODUuNSAxNzZMMzM2IDM4OS41IDMzNiAyOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTMuNSAwek05NiAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxMRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJlZS1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNTg3IiwiTTI4OCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDggNDggMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzIwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00MTZ6bTY0IDY0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTM1MiAzMDRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNNTI4IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek01MTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTk2IDQ4MGwwLTE2MC0xNiAwYy00NC4yIDAtODAtMzUuOC04MC04MCAwLTI2LjcgMTMuMS01MC4zIDMzLjItNjQuOS0uOC00LjktMS4yLTEwLTEuMi0xNS4xIDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA5NmMwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnoiXX0sa0ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cm4tdXAiLGljb246WzM4NCw1MTIsWzEwNTQ4LCJsZXZlbC11cC1hbHQiXSwiZjNiZiIsIk0xNjkuNCA5LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMzIuOSAxOTIgMzIwIDE5MmwtNjQgMCAwIDE2MGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwLTY0IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45bDEyOC0xMjh6Il19LEREcj1rRmUsT189e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtcXVhcnRlciIsaWNvbjpbMzIwLDUxMixbInRlbXBlcmF0dXJlLTEiLCJ0aGVybW9tZXRlci0xIiwidGhlcm1vbWV0ZXItcXVhcnRlciJdLCJmMmNhIiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM2wwLTI4LjdjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI4LjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSwkRHI9T18sQURyPU9fLEVEcj1PXyxTRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2xpZGVycyIsaWNvbjpbNTEyLDUxMixbInNsaWRlcnMtaCJdLCJmMWRlIiwiTTMyIDY0QzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmw4Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwyNjUuMyA2NEMyNTMgMzUuNyAyMjQuOCAxNiAxOTIgMTZzLTYxIDE5LjctNzMuMyA0OEwzMiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjQ2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OGw1NC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTU0LjcgMGMtMTIuMy0yOC4zLTQwLjUtNDgtNzMuMy00OHMtNjEgMTkuNy03My4zIDQ4TDMyIDIyNHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTQuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDhzNjEtMTkuNyA3My4zLTQ4TDQ4MCA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI0Ni43IDBjLTEyLjMtMjguMy00MC41LTQ4LTczLjMtNDhzLTYxIDE5LjctNzMuMyA0OEwzMiAzODR6Il19LElEcj1TRmUsUERyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1ZSIsaWNvbjpbNTc2LDUxMixbMTI4MzMyXSwiZjY3OCIsIk0xNzQuOCAyMjRsMjI2LjQgMGM0My41IDAgNzguOC0zNS4zIDc4LjgtNzguOCAwLTI1LjUtMTIuMy00OS40LTMzLjEtNjQuMkwyOTcuMy0yNS40Yy01LjYtMy45LTEzLTMuOS0xOC41IDBMMTI5LjEgODFDMTA4LjMgOTUuOCA5NiAxMTkuNyA5NiAxNDUuMiA5NiAxODguNyAxMzEuMyAyMjQgMTc0LjggMjI0ek01MTIgNTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNDQ4IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDIwNi4zIDAgMjI0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwek0yNDAgMzg0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCA4MC05NiAwIDAtODB6Il19LE5Ecj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoIixpY29uOlszODQsNTEyLFsxMDRdLCI0OCIsIk0zMjAgMjg4bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAtMjU2IDAgMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAyNTYgMHoiXX0sT0RyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluZm8iLGljb246WzE5Miw1MTIsW10sImYxMjkiLCJNNDggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMjI0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxNRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmciLGljb246WzM4NCw1MTIsWzEyODY5NCwid2Fsa2luZyJdLCJmNTU0IiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMTA1LjQgMjI3LjlsMjIuNi0yMi42IDAgNjkuM2MwIDI4IDEyLjIgNTQuNyAzMy41IDcyLjlsNzEuNCA2MS4yYzUuOSA1LjEgOS44IDEyLjEgMTAuOSAxOS44bDEyLjYgODguMWMyLjUgMTcuNSAxOC43IDI5LjcgMzYuMiAyNy4yczI5LjctMTguNyAyNy4yLTM2LjJsLTEyLjYtODguMWMtMy4zLTIzLjEtMTQuOS00NC4xLTMyLjYtNTkuM2wtMzQuNS0yOS42IDAtMTE1LjIgMy44IDQuN2MxOC4yIDIyLjggNDUuOCAzNiA3NSAzNmwzMy4yIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMzLjIgMGMtOS43IDAtMTguOS00LjQtMjUtMTJsLTE3LjktMjIuNGMtMjMtMjguOC01Ny45LTQ1LjYtOTQuOC00NS42LTMyLjIgMC02My4xIDEyLjgtODUuOCAzNS42TDYwLjEgMTgyLjZDNDIuMSAyMDAuNiAzMiAyMjUgMzIgMjUwLjVMMzIgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNy41YzAtOC41IDMuNC0xNi42IDkuNC0yMi42em0xMi40IDE3OS40Yy0xLjUgNS4yLTQuMyAxMC04LjEgMTMuOEw0MS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOGwtMTAuNCAzNi4yeiJdfSxSRHI9TUZlLENGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10dXJuLWRvd24iLGljb246WzM4NCw1MTIsWyJsZXZlbC1kb3duIl0sImYxNDkiLCJNMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMlMxNC4zIDAgMzIgMGw5NiAwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMDYuNyA3My40LTczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTEyOC0xMjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMTYwIDQwMi43IDE2MCA5NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA2NHoiXX0sRkRyPUNGZSxCRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZCIsaWNvbjpbNTEyLDUxMixbMTI4NzM5XSwiZjAxOCIsIk0yMjMuOSAzMmwtNzYuMiAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkwxLjQgNDIwLjVDLTYuMSA0NTAuNyAxNi44IDQ4MCA0OCA0ODBsMTc1LjkgMCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NCAxNzYuMSAwYzMxLjIgMCA1NC4xLTI5LjMgNDYuNi01OS41TDQyNi41IDgwLjZDNDE5LjQgNTIuMSAzOTMuOCAzMiAzNjQuMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptNjQgMTkybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxIRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BpcmFsIixpY29uOls1MTIsNTEyLFtdLCJlODBhIiwiTTExNS41IDcuNGMxMy42LTExLjMgMzMuOC05LjUgNDUuMSA0LjFzOS41IDMzLjgtNC4xIDQ1LjFDMTAwLjIgMTAzLjUgNjQgMTc1LjIgNjQgMjU2IDY0IDM2MiAxNTAgNDQ4IDI1NiA0NDhzMTkyLTg2IDE5Mi0xOTJjMC03NS4xLTYwLjktMTM2LTEzNi0xMzZTMTc2IDE4MC45IDE3NiAyNTZjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTQ4LjYgMzkuNC04OCA4OC04OHM4OCAzOS40IDg4IDg4YzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzExMiAzMzUuNSAxMTIgMjU2YzAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMHMyMDAgODkuNSAyMDAgMjAwYzAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMCAzOTcuNCAwIDI1NkMwIDE1NS44IDQ1IDY2LjEgMTE1LjUgNy40eiJdfSx6RmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1mcm93biIsaWNvbjpbNTEyLDUxMixbOTc4NSwiZnJvd24iXSwiZjExOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptOTAuNi0xMTMuOWMtMjAuNC0yOC01My40LTQ2LjEtOTAuNi00Ni4xcy03MC4yIDE4LjEtOTAuNiA0Ni4xYy03LjggMTAuNy0yMi44IDEzLjEtMzMuNSA1LjNzLTEzLjEtMjIuOC01LjMtMzMuNUMxNTUuNyAzMzAgMjAyLjggMzA0IDI1NiAzMDRzMTAwLjMgMjYgMTI5LjQgNjUuOWM3LjggMTAuNyA1LjQgMjUuNy01LjMgMzMuNXMtMjUuNyA1LjQtMzMuNS01LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0scURyPXpGZSxfRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZS1nbGFzcy1lbXB0eSIsaWNvbjpbMzIwLDUxMixbIndpbmUtZ2xhc3MtYWx0Il0sImY1Y2UiLCJNNjQgMEM0OC43IDAgMzUuNiAxMC44IDMyLjYgMjUuN0wzLjIgMTczQzEuMSAxODMuNSAwIDE5NC4yIDAgMjA1bDAgM2MwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOGwwIDExNS4yLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC0xMTUuMkMyNjUgMzUwIDMyMCAyODUuNCAzMjAgMjA4bDAtM2MwLTEwLjctMS4xLTIxLjQtMy4yLTMyTDI4Ny40IDI1LjdDMjg0LjQgMTAuOCAyNzEuMyAwIDI1NiAwTDY0IDB6bTEuOSAxODUuNkw5MC4yIDY0IDIyOS44IDY0IDI1NC4xIDE4NS42YzEuMyA2LjQgMS45IDEyLjkgMS45IDE5LjRsMCAzYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bDAtM2MwLTYuNSAuNi0xMyAxLjktMTkuNHoiXX0sVkRyPV9GZSxqRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xhcHBlcmJvYXJkIixpY29uOls1MTIsNTEyLFtdLCJlMTMxIiwiTTQ0OCA2NGMyIDAgMy45IC4xIDUuOCAuM2wtOTUuNyA5NS43IDY3LjkgMCA3Mi03MmM4LjggMTEgMTQgMjQuOSAxNCA0MGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDcwLjEgMC05NiA5NiA2Ny45IDAgOTUtOTUgMS0xIDkyLjEgMC05NiA5NiA2Ny45IDAgOTUtOTUgMS0xIDg2LjEgMHoiXX0sVEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvcndhcmQtc3RlcCIsaWNvbjpbMzg0LDUxMixbInN0ZXAtZm9yd2FyZCJdLCJmMDUxIiwiTTIxIDM2LjhjMTIuOS03IDI4LjctNi4zIDQxIDEuOEwzMjAgMjA4LjEgMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzODRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDQuMS0yNTggMTY5LjZjLTEyLjMgOC4xLTI4IDguOC00MSAxLjhTMCA0NTQuNyAwIDQ0MEwwIDcyQzAgNTcuMyA4LjEgNDMuOCAyMSAzNi44eiJdfSxVRHI9VEZlLExGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtdXAtcmlnaHQiLGljb246WzQ0OCw1MTIsWzg1OTksImV4dGVybmFsLWxpbmstc3F1YXJlLWFsdCJdLCJmMzYwIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTE2OCAxNjBjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzUgMzUtNjcgNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDI0IDI0YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDY3LTY3IDM1IDM1YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMzIwIDMyMS43IDMyMCAzMTJsMC0xMjhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEyOCAweiJdfSxXRHI9TEZlLERGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLWpvdXJuYWwtd2hpbGxzIixpY29uOls0NDgsNTEyLFsiam91cm5hbC13aGlsbHMiXSwiZjY2YSIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiAwQzQzIDAgMCA0MyAwIDk2TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZ6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMCAwIDY0LTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMjc0LjEgOTkuMmMyLjYtMi42IDYuNy0zLjEgOS45LTEuMSAzMi4xIDIwIDUzLjQgNTUuNiA1My40IDk2LjIgMCA2Mi42LTUwLjcgMTEzLjMtMTEzLjMgMTEzLjNTMTEwLjcgMjU2LjkgMTEwLjcgMTk0LjNjMC00MC42IDIxLjQtNzYuMiA1My40LTk2LjIgMy4xLTIgNy4yLTEuNSA5LjkgMS4xczMuMSA2LjcgMS4yIDkuOGMtNS4yIDguNi04LjIgMTguNy04LjIgMjkuNSAwIDE1LjEgNS45IDI4LjggMTUuNSAzOS4xIDIuNSAyLjcgMi45IDYuNyAuOSA5LjctNC43IDcuNC03LjQgMTYuMS03LjQgMjUuNSAwIDIxLjYgMTQuMyAzOS45IDM0IDQ1LjlsMS0yNC44Yy03LjEtNC40LTExLjgtMTIuMi0xMS44LTIxLjEgMC05LjYgNS41LTE4IDEzLjUtMjIuMWwzLjMtODEuOGMuMi00LjMgMy43LTcuNyA4LTcuN3M3LjggMy40IDggNy43bDMuMyA4MS44YzggNC4xIDEzLjUgMTIuNCAxMy41IDIyLjEgMCA4LjktNC43IDE2LjctMTEuOCAyMS4xbDEgMjQuOGMxOS42LTYgMzMuOS0yNC4xIDM0LTQ1LjZsMC0uNmMtLjEtOS4zLTIuNy0xNy45LTcuNC0yNS4yLTEuOS0zLjEtMS42LTcuMSAuOS05LjcgOS42LTEwLjIgMTUuNS0yMy45IDE1LjUtMzkuMSAwLTEwLjgtMy0yMC45LTguMi0yOS41LTEuOS0zLjItMS40LTcuMiAxLjItOS44eiJdfSxHRHI9REZlLCRGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFtcGFnbmUtZ2xhc3NlcyIsaWNvbjpbNjQwLDUxMixbMTI5MzQ2LCJnbGFzcy1jaGVlcnMiXSwiZjc5ZiIsIk0xNTUuNiAxNy4zQzE2MyAzIDE3OS45LTMuNiAxOTUgMS45bDEyNSA0NS42IDEyNS00NS42YzE1LjEtNS41IDMyIDEuMSAzOS40IDE1LjRsNzguOCAxNTIuOWMyOC44IDU1LjggMTAuMyAxMjIuMy0zOC41IDE1Ni42bDMxLjMgODYuMiA0MS0xNWMxNi42LTYgMzUgMi41IDQxIDE5LjFzLTIuNSAzNS0xOS4xIDQxYy00Ny40IDE3LjMtOTQuOCAzNC41LTE0Mi4yIDUxLjgtMTYuNiA2LjEtMzUtMi41LTQxLTE5LjFzMi41LTM1IDE5LjEtNDFsNDEtMTUtMzEuMy04Ni4yYy01OS40IDUuMi0xMTYuMi0zMy45LTEzMC05NS4ybC0xNC42LTY0LjctMTQuNiA2NC43Yy0xMy44IDYxLjMtNzAuNiAxMDAuNC0xMzAgOTUuMmwtMzEuMyA4Ni4yIDQxIDE1YzE2LjYgNi4xIDI1LjIgMjQuNCAxOS4xIDQxcy0yNC40IDI1LjItNDEgMTkuMWMtNDcuNC0xNy4zLTk0LjgtMzQuNi0xNDIuMi01MS44LTE2LjYtNi4xLTI1LjItMjQuNC0xOS4xLTQxUzI2LjMgMzkyIDQyLjkgMzk4bDQxIDE1IDMxLjMtODYuMkM2Ni41IDI5Mi41IDQ4LjEgMjI2IDc2LjkgMTcwLjJMMTU1LjYgMTcuM3ptNDQgNTQuNGwtMjcuMiA1Mi44IDg5LjIgMzIuNSAxMy4xLTU3LjktNzUuMS0yNy40em0yNDAuOSAwbC03NS4xIDI3LjQgMTMuMSA1Ny45IDg5LjItMzIuNS0yNy4yLTUyLjh6Il19LFlEcj0kRmUsS0RyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImR1bXBzdGVyIixpY29uOls1NzYsNTEyLFtdLCJmNzkzIiwiTTEzMi4zIDY0TDEwNi43IDE5MiAyNCAxOTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNC4xYzAtMi42IC40LTUuMSAxLjItNy42TDI2LjUgODAuNEMyOS44IDcwLjYgMzkgNjQgNDkuMyA2NGw4MyAwem0yMy40IDEyOGwyNS42LTEyOCA4Mi43IDAgMCAxMjgtMTA4LjMgMHpNMzEyIDY0bDgyLjcgMCAyNS42IDEyOC0xMDguMyAwIDAtMTI4em0xMzEuNyAwbDgzIDBjMTAuMyAwIDE5LjUgNi42IDIyLjggMTYuNGwyNS4zIDc1LjljLjggMi40IDEuMiA1IDEuMiA3LjZsMCA0LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTgyLjcgMC0yNS42LTEyOHpNMjUuNyAyNDBsNTI0LjcgMGMtLjQgMi4xLTEzLjMgNzMuNC0zOC45IDIxMy43LTMgMTYuMy0xNy45IDI3LjYtMzQuNCAyNi4xUzQ0OCA0NjQuNiA0NDggNDQ4bDAtMTYtMzIwIDAgMCAxNmMwIDE2LjYtMTIuNiAzMC40LTI5LjEgMzEuOVM2Ny41IDQ3MCA2NC41IDQ1My43QzM5IDMxMy4zIDI2IDI0Mi4xIDI1LjcgMjQweiJdfSxaRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlNTAxIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43eiJdfSxRRHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcHV0ZXIiLGljb246WzU3Niw1MTIsW10sImU0ZTUiLCJNMzQ4LjggMzJDMzQwLjcgNDYuMSAzMzYgNjIuNSAzMzYgODBsMCAxNi0yNzIgMCAwIDIyNCAyNzIgMCAwIDY0LTI3MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4NC44IDB6TTMzNiA0MzJjMCAxNy41IDQuNyAzMy45IDEyLjggNDhMMTIwIDQ4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMTYgMHpNNDMyIDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em0yNCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTU2IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxBRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1tYWdpYyIsaWNvbjpbNTEyLDUxMixbIm1hZ2ljIl0sImYwZDAiLCJNMzk4LjUgMTIuMmwtODguMiA4OC4yIDEwMS4zIDEwMS4zIDg4LjItODguMkM1MDcuNiAxMDUuNiA1MTIgOTUgNTEyIDg0cy00LjQtMjEuNi0xMi4yLTI5LjVMNDU3LjUgMTIuMkM0NDkuNiA0LjQgNDM5IDAgNDI4IDBzLTIxLjYgNC40LTI5LjUgMTIuMnpNMjc2LjQgMTM0LjNMMTIuMiAzOTguNUM0LjQgNDA2LjQgMCA0MTcgMCA0MjhzNC40IDIxLjYgMTIuMiAyOS41bDQyLjMgNDIuM0M2Mi40IDUwNy42IDczIDUxMiA4NCA1MTJzMjEuNi00LjQgMjkuNS0xMi4yTDM3Ny43IDIzNS42IDI3Ni40IDEzNC4zeiJdfSxYRHI9QUZlLEpEcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmFpbiIsaWNvbjpbNTEyLDUxMixbMTI5NTA0XSwiZjVkYyIsIk0xMjAgNTZjMC0zMC45IDI1LjEtNTYgNTYtNTZsMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMjkuOCAwLTU0LjktMjAuNC02Mi00OC0uNyAwLTEuMyAwLTIgMC00NC4yIDAtODAtMzUuOC04MC04MCAwLTE4IDYtMzQuNiAxNi00OC0xOS40LTE0LjYtMzItMzcuOC0zMi02NCAwLTMwLjkgMTcuNi01Ny44IDQzLjItNzEuMS03LjEtMTItMTEuMi0yNi0xMS4yLTQwLjkgMC00NC4yIDM1LjgtODAgODAtODBsMC0yNHptMjcyIDBsMCAyNGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDE1LTQuMSAyOS0xMS4yIDQwLjkgMjUuNyAxMy4zIDQzLjIgNDAuMSA0My4yIDcxLjEgMCAyNi4yLTEyLjYgNDkuNC0zMiA2NCAxMCAxMy40IDE2IDMwIDE2IDQ4IDAgNDQuMi0zNS44IDgwLTgwIDgwLS43IDAtMS4zIDAtMiAwLTcuMSAyNy42LTMyLjIgNDgtNjIgNDhsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6Il19LGUkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmllZmNhc2UtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjQ2OSIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6bTgwIDE2MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sdCRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTEyIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxyJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1jb21taXQiLGljb246WzU3Niw1MTIsW10sImYzODYiLCJNMjg4IDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTU2LjgtNDhDNDMwIDM2MSAzNjUuNCA0MTYgMjg4IDQxNlMxNDYgMzYxIDEzMS4yIDI4OEwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTkuMiAwQzE0NiAxNTEgMjEwLjYgOTYgMjg4IDk2czE0MiA1NSAxNTYuOCAxMjhsOTkuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05OS4yIDB6Il19LGEkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnJlYXN0ZmVlZGluZyIsaWNvbjpbNDQ4LDUxMixbXSwiZTUzYSIsIk0yMjQgMGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNNDM2LjggMzgyLjhMMzczLjUgNDYyYy0xNi42IDIwLjctNDYuOCAyNC4xLTY3LjUgNy41LTE3LjYtMTQuMS0yMi43LTM4LjEtMTMuNS01Ny43bC0uNy0uMWMtMzguOS01LjYtNzQuMy0yNS4xLTk5LjctNTQuOGwwLTM2LjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMwIC44IDAgMS42IC4xIDIuNGwxMDEuNCA1MC43YzIzLjcgMTEuOSAzMy4zIDQwLjcgMjEuNSA2NC40cy00MC43IDMzLjMtNjQuNCAyMS41TDI3LjIgNDI3LjNjLTEuMS0uNS0yLjItMS4xLTMuMy0xLjctNC45LTIuOC05LjItNi40LTEyLjYtMTAuNi00LjYtNS40LTcuOC0xMS43LTkuNi0xOC40LTMuMy0xMi0xLjktMjUuMiA0LjgtMzYuNiAuNi0xLjEgMS4zLTIuMiAyLTMuMkw3NS42IDI1Ni4xYzI2LjctNDAuMSA3MS43LTY0LjEgMTE5LjgtNjQuMWw3NS4yIDBjNDYuNSAwIDkwLjEgMjIuNSAxMTcuMiA2MC4zbDUwLjcgNzAuOWMyLjIgMyA0IDYuMSA1LjUgOS40IDIuOSA2LjcgNC4zIDEzLjggNCAyMC44LS4zIDEwLjYtNC4yIDIxLTExLjIgMjkuNHpNMzIwIDMzMmE0NCA0NCAwIDEgMCAtODggMCA0NCA0NCAwIDEgMCA4OCAweiJdfSxpJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXJheXMiLGljb246WzUxMiw1MTIsW10sImU1NGQiLCJNMzEyLjUgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN2w0Ni4zIDYyLjRjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDMzM4LjUgMTMyIDI5OC44IDExMiAyNTYuNSAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNmw0Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek03LjUgN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsODAgODBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxLjUgN0MzMi4xLTIuMyAxNi45LTIuMyA3LjUgN3ptNDY0IDBsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMHpNNy41IDUwNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC04MCA4MGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjl6bTQ2NCAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODAtODBjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsODAgODB6Il19LHMkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYW5hdC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWQ1IiwiTTE5MiAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MS41QzczLjMgMTA5LjMgMCAxOTAuMSAwIDI4OEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtNjIuNSA0NC44LTExNC41IDEwNC0xMjUuOEwxNjggNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yOTMuOGM1OS4yIDExLjIgMTA0IDYzLjMgMTA0IDEyNS44bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC05Ny45LTczLjMtMTc4LjctMTY4LTE5MC41TDIxNiA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sRUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQiLGljb246WzM4NCw1MTIsWyJ1bnNvcnRlZCJdLCJmMGRjIiwiTTIuNCAyMDQuMmM1IDEyIDE2LjYgMTkuOCAyOS42IDE5LjhsMzIwIDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45em0wIDEwMy41Yy01IDEyLTIuMiAyNS43IDYuOSAzNC45bDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzNjQuOSAyODggMzUyIDI4OEwzMiAyODhjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5Ljh6Il19LG4kcj1FRmUsSUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1yYWRpYXRpb24iLGljb246WzUxMiw1MTIsWzk3NjIsInJhZGlhdGlvbi1hbHQiXSwiZjdiYSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem04MCAwbDY0LjMgMGM4LjcgMCAxNS43LTcuMSAxNy4zLTE1LjYgNC40LTI0LjQgMTguMS00NS41IDM3LjItNTkuNyA3LjQtNS41IDEwLjYtMTUuNiA2LTIzLjZsLTMyLjUtNTYuM2MtNC4zLTcuNS0xMy45LTEwLjMtMjEuMi01LjUtNDguMiAzMS41LTgxLjMgODQuMi04Ni4zIDE0NC44LS43IDguOCA2LjUgMTYgMTUuMyAxNnptMTM3LjkgODkuOGMtOC41LTMuNy0xOC44LTEuNC0yMy41IDYuNmwtMzEgNTMuOGMtNC4zIDcuNS0xLjkgMTcuMiA1LjggMjEuMSAyNi4xIDEzLjIgNTUuNSAyMC43IDg2LjggMjAuN3M2MC43LTcuNSA4Ni44LTIwLjdjNy43LTMuOSAxMC4xLTEzLjYgNS44LTIxLjFsLTMxLTUzLjhjLTQuNi04LTE1LTEwLjMtMjMuNS02LjYtMTEuNyA1LTI0LjUgNy44LTM4LjEgNy44cy0yNi40LTIuOC0zOC4xLTcuOHpNMzUwLjQgMjQwLjRjMS42IDguNiA4LjUgMTUuNiAxNy4zIDE1LjZsNjQuMyAwYzguOCAwIDE2LjEtNy4yIDE1LjMtMTYtNS02MC42LTM4LjEtMTEzLjItODYuMy0xNDQuOC03LjMtNC44LTE2LjgtMi0yMS4yIDUuNUwzMDcuMyAxNTdjLTQuNiA4LTEuNCAxOC4xIDYgMjMuNiAxOS4xIDE0LjIgMzIuNyAzNS40IDM3LjIgNTkuN3pNMjU2IDMwNS43YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sbyRyPUlGZSxsJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wLWNvZGUiLGljb246WzY0MCw1MTIsW10sImY1ZmMiLCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDAtNjQgMCAwLTI0MC0zODQgMCAwIDI0MC02NCAwIDAtMjQwek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjIgMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODEgMjA5bC0zMSAzMSAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00OC00OGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNDgtNDhjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45ek0zOTMgMTc1bDQ4IDQ4YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAweiJdfSxjJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luayIsaWNvbjpbNTEyLDUxMixbXSwiZTA2ZCIsIk0yODggOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAxOTItNjQgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtODAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwwIDY0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDAtNDBjMC00LjQgMy42LTggOC04bDU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgNDAtNjQgMCAwLTE5MnoiXX0sZCRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20td2F0ZXItcHVtcCIsaWNvbjpbNjQwLDUxMixbXSwiZTRiNiIsIk0xNDQgMzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTc2LTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNzkuNmMxNy42LTIgMzYgMi41IDUxLjMgMTQgMy40IDIuNiA2LjEgMS40IDkuOC0uM2wuOC0uNGM1LjctMi42IDEyLjktNi45IDIxLjctMTMuNSAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjMtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgMjIuMSAxNi42IDI5LjEgMTYuNiA1MS4yIDAgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDYuOSA1LjIgMTIuOCA5IDE4IDExLjcgLjYgLjMgMS4yIC42IDEuOCAxIDQuMiAyLjMgOC41IDQuNiAxMi42IDEuNSAxMC43LTguMSAyMi45LTEyLjcgMzUuMy0xNC4xbDAtNzkuNWMwLTI2LjUtMjEuNS00OC00OC00OGwtNTYgMCAwLTE0Mi4xIDQ3IDQ3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0OTcgMzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC04OCA4OGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ3LTQ3IDAgMTQyLjEtMTM2IDAgMC0xNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTQ0IDMyek00NzQuNiA0NzYuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQ4Mi4zIDE3LjYgNDkwLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAweiJdfSxQRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1saW5lcy1zbGFzaCIsaWNvbjpbNTc2LDUxMixbIm1pY3JvcGhvbmUtYWx0LXNsYXNoIl0sImY1MzkiLCJNNy0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDE1MSAxNTEgMC0zMC4yYzAtNTMgNDMtOTYgOTYtOTYgNTAuMyAwIDkxLjYgMzguNyA5NS43IDg4TDMyOCA4OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwIDAgNDgtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NS43IDBjLTEuOSAyMi45LTExLjggNDMuNC0yNi45IDU5bDMzLjkgMzMuOWMyNS41LTI2IDQxLjMtNjEuNiA0MS4zLTEwMC45bDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgNTIuNi0yMS4xIDEwMC4yLTU1LjMgMTM0LjhMNTY5IDUwMy4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5LjFDLTIuMy0uMy0yLjMtMTUuNSA3LTI0Ljl6TTI5Ny44IDM2Ny43bDQxLjQgNDEuNGMtOC44IDIuNC0xNy45IDQuMy0yNy4zIDUuNGwwIDQ5LjUgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQ5LjVDMTY5LjMgNDAyLjcgOTYgMzIxLjkgOTYgMjI0bDAtNDBjMC01LjEgMS42LTkuOSA0LjQtMTMuOGw0My42IDQzLjYgMCAxMC4yYzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0IDMuMyAwIDYuNi0uMSA5LjgtLjN6Il19LHUkcj1QRmUscCRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlcnZlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjE2IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNTYgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMjg4em0yMTYgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em01NiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSwkdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlciIsaWNvbjpbNDQ4LDUxMixbMTI4MTAwLDYyMTQ0LDYyNDcwLCJ1c2VyLWFsdCIsInVzZXItbGFyZ2UiXSwiZjAwNyIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDAgMC0yNDAgMTIwIDEyMCAwIDEgMCAwIDI0MHptLTI5LjcgNTZDOTUuOCAzMDQgMTYgMzgzLjggMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTk4LjUtNzkuOC0xNzguMy0xNzguMy0xNzguM2wtNTkuNCAweiJdfSxmJHI9JHVlLGgkcj0kdWUsbSRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNub3dmbGFrZSIsaWNvbjpbNTEyLDUxMixbMTAwNTIsMTAwNTRdLCJmMmRjIiwiTTI4OC4yIDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2Mi4xLTE1LTE1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDQ5IDQ5IDAgNzAuNi02MS4yLTM1LjMtMTcuOS02Ni45Yy0zLjQtMTIuOC0xNi42LTIwLjQtMjkuNC0xN1M5NS4zIDk4IDk4LjcgMTEwLjhsNS41IDIwLjUtNTMuNy0zMUMzNS4yIDkxLjUgMTUuNiA5Ni43IDYuOCAxMTJzLTMuNiAzNC45IDExLjcgNDMuN2w1My43IDMxLTIwLjUgNS41Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w2Ni45LTE3LjkgNjEuMiAzNS4zLTYxLjIgMzUuMy02Ni45LTE3LjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDIwLjUgNS41LTUzLjcgMzFDMy4yIDM2NS4xLTIgMzg0LjcgNi44IDQwMHMyOC40IDIwLjYgNDMuNyAxMS43bDUzLjctMzEtNS41IDIwLjVjLTMuNCAxMi44IDQuMiAyNiAxNyAyOS40czI2LTQuMiAyOS40LTE3bDE3LjktNjYuOSA2MS4yLTM1LjMgMCA3MC42LTQ5IDQ5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTUtMTUgMCA2Mi4xYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Mi4xIDE1IDE1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDktNDkgMC03MC42IDYxLjIgMzUuMyAxNy45IDY2LjljMy40IDEyLjggMTYuNiAyMC40IDI5LjQgMTdzMjAuNC0xNi42IDE3LTI5LjRsLTUuNS0yMC41IDUzLjcgMzFjMTUuMyA4LjggMzQuOSAzLjYgNDMuNy0xMS43czMuNi0zNC45LTExLjctNDMuN2wtNTMuNy0zMSAyMC41LTUuNWMxMi44LTMuNCAyMC40LTE2LjYgMTctMjkuNHMtMTYuNi0yMC40LTI5LjQtMTdsLTY2LjkgMTcuOS02MS4yLTM1LjMgNjEuMi0zNS4zIDY2LjkgMTcuOWMxMi44IDMuNCAyNi00LjIgMjkuNC0xN3MtNC4yLTI2LTE3LTI5LjRsLTIwLjUtNS41IDUzLjctMzFjMTUuMy04LjggMjAuNi0yOC40IDExLjctNDMuN3MtMjguNC0yMC41LTQzLjctMTEuN2wtNTMuNyAzMSA1LjUtMjAuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTE3LjkgNjYuOS02MS4yIDM1LjMgMC03MC42IDQ5LTQ5YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTE1IDE1IDAtNjIuMXoiXX0sZyRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhdXJ1cyIsaWNvbjpbMzg0LDUxMixbXSwiZTg0ZiIsIk0zMzYtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCA1OC41LTI4LjYgMTEwLjMtNzIuNSAxNDIuMyA1My4yIDM0LjEgODguNSA5My44IDg4LjUgMTYxLjcgMCAxMDYtODYgMTkyLTE5MiAxOTJTMCA0MjYgMCAzMjBDMCAyNTIuMSAzNS4zIDE5Mi40IDg4LjUgMTU4LjMgNDQuNiAxMjYuMyAxNiA3NC41IDE2IDE2IDE2LTEuNyAzMC4zLTE2IDQ4LTE2UzgwLTEuNyA4MCAxNmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMlMzMDQgNzcuOSAzMDQgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE5MiAxOTJhMTI4IDEyOCAwIDEgMCAwIDI1NiAxMjggMTI4IDAgMSAwIDAtMjU2eiJdfSxiJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2t1bGwtY3Jvc3Nib25lcyIsaWNvbjpbNDQ4LDUxMixbMTI4MzY5LDk3NjBdLCJmNzE0IiwiTTM4NCAxNDRDMzg0IDY0LjUgMzEyLjQgMCAyMjQgMFM2NCA2NC41IDY0IDE0NGMwIDQ3LjEgMjUuMSA4OC45IDY0IDExNS4ybDAgMjguOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4LjhjMzguOS0yNi4zIDY0LTY4LjEgNjQtMTE1LjJ6TTE2MCAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek00NDUuNSAzMzkuN2MtNi44LTE2LjMtMjUuNS0yNC00MS44LTE3LjJMMjI0IDM5Ny4zIDQ0LjMgMzIyLjVjLTE2LjMtNi44LTM1IC45LTQxLjggMTcuMnMuOSAzNSAxNy4yIDQxLjhMMTQwLjggNDMyIDE5LjcgNDgyLjVDMy40IDQ4OS4zLTQuMyA1MDggMi41IDUyNC4zczI1LjUgMjQgNDEuOCAxNy4yTDIyNCA0NjYuNyA0MDMuNyA1NDEuNWMxNi4zIDYuOCAzNS0uOSA0MS44LTE3LjJzLS45LTM1LTE3LjItNDEuOEwzMDcuMiA0MzIgNDI4LjMgMzgxLjVjMTYuMy02LjggMjQtMjUuNSAxNy4yLTQxLjh6Il19LHgkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXNvLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUyMjIiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDY0LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDMyLTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgOTYgMGM2NS42IDAgMTIyLTM5LjUgMTQ2LjctOTZsMzcuMyAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNC44IDBjLjUtNS4zIC44LTEwLjYgLjgtMTZzLS4zLTEwLjctLjgtMTZsMjQuOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zNy4zIDBDMzYyIDcxLjUgMzA1LjYgMzIgMjQwIDMyTDExMiAzMnptMTk5LjYgOTZsLTE2Ny42IDAgMC0zMiA5NiAwYzI4LjQgMCA1NCAxMi40IDcxLjYgMzJ6TTE0NCAxNzZsMTkwLjcgMGMuOSA1LjIgMS4zIDEwLjUgMS4zIDE2cy0uNSAxMC44LTEuMyAxNmwtMTkwLjcgMCAwLTMyem0xNjcuNiA4MGMtMTcuNiAxOS42LTQzLjEgMzItNzEuNiAzMmwtOTYgMCAwLTMyIDE2Ny42IDB6Il19LHYkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWdsYXNzIixpY29uOlszMjAsNTEyLFsxMjc4NjNdLCJmNGUzIiwiTTMyLjYgMjUuN0MzNS42IDEwLjggNDguNyAwIDY0IDBMMjU2IDBjMTUuMyAwIDI4LjQgMTAuOCAzMS40IDI1LjdMMzE2LjggMTczYzIuMSAxMC41IDMuMiAyMS4yIDMuMiAzMmwwIDNjMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAxMTUuMiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTE1LjJDNTUgMzUwIDAgMjg1LjQgMCAyMDhsMC0zYzAtMTAuNyAxLjEtMjEuNCAzLjItMzJMMzIuNiAyNS43ek03Ny40IDEyOGwxNjUuMSAwLTEyLjgtNjQtMTM5LjUgMC0xMi44IDY0eiJdfSxSXz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1oYWxmIixpY29uOlszMjAsNTEyLFsxMjc3NzcsInRlbXBlcmF0dXJlLTIiLCJ0aGVybW9tZXRlci0yIiwidGhlcm1vbWV0ZXItaGFsZiJdLCJmMmM5IiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM2wwLTkyLjdjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDkyLjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSx5JHI9Ul8sdyRyPVJfLGskcj1SXyxTJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGlja2V0IixpY29uOls1NzYsNTEyLFsxMjc5MDNdLCJmMTQ1IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNjRDMCAyMDAuOCA3LjQgMjA3LjcgMTUuNyAyMTAuNiAzNC41IDIxNy4xIDQ4IDIzNSA0OCAyNTZzLTEzLjUgMzguOS0zMi4zIDQ1LjRDNy40IDMwNC4zIDAgMzExLjIgMCAzMjBsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtOC44LTcuNC0xNS43LTE1LjctMTguNi0xOC44LTYuNS0zMi4zLTI0LjQtMzIuMy00NS40czEzLjUtMzguOSAzMi4zLTQ1LjRjOC4zLTIuOSAxNS43LTkuOCAxNS43LTE4LjZsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNDE2IDMzNmwwLTE2MC0yNTYgMCAwIDE2MCAyNTYgMHpNMTEyIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyeiJdfSxNJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlYXQtYXduLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU5OCIsIk00OTYgNTc2YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNODEgNTI5Yy05LjQgOS4zLTI0LjUgOS4zLTMzLjkgMC05LjQtOS40LTkuNC0yNC42IDAtMzMuOUw4MSA1Mjl6bTMwLjItMjk0LjRjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4zIDgzLjkgMzEuNy03LjcgNjYuMiAxIDkwLjYgMjUuM2wxMiAxMmMtLjggNy0xLjIgMTQuMi0xLjIgMjEuNCAwIDIwIDMgMzkuMyA4LjcgNTcuNC0zNi44IDIxLjgtODUgMTctMTE2LjYtMTQuN0wxNjUuNiA0NDQuMyA4MSA1MjlDNjkuNyA1MTcuNyA1OC40IDUwNi4zIDQ3IDQ5NWw4NC43LTg0LjctMzAuNS0zMC41Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xek00OTYgNDc2YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptMC0xNDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNiA4LjggMCAxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6TTIxNS4yIDEzMC42YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMyA4My45IDI0LjItNS45IDUwLjEtMi4xIDcxLjkgMTAuOC0zMi4yIDI0LjktNTYuMiA1OS44LTY3LjQgMTAwLjEtMy44LTIuOC03LjUtNi0xMS05LjVsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNTI2LjcgMTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDAgOC44IDguOCA5LjMgMjIuNyAxLjcgMzIuMUw1NjAuNiA0OSA0NDYuMiAxNjMuNGM3LjcgMSAxNS4zIDMgMjIuNSA1LjlMNTI3IDExMWM5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01Mi43IDUyLjcgMzkgMzljMy4yIDMuMiA0LjcgNy40IDQuNyAxMS42LTE3LjctNS40LTM2LjUtOC4zLTU1LjktOC4zLTM0LjIgMC02Ni4zIDguOS05NC4xIDI0LjZsLTkyLjctOTIuN2MtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS44bDcuNC03LjQgMi41LTIuMWM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDM5IDM5IDUyLjctNTIuN2M5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMUw0NjUgNDkgNDA2LjcgMTA3LjNjMi44IDcuMSA0LjcgMTQuNSA1LjggMjIuMUw1MjYuNyAxNXoiXX0sQyRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10dXJuLXJpZ2h0IixpY29uOls0NDgsNTEyLFtdLCJlNGMwIiwiTTMxMy40LTYuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDMzOC43IDEyOCAxMjggMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgMjQxLjcgMCAyMjRsMC0zMkMwIDEyMS4zIDU3LjMgNjQgMTI4IDY0bDIxMC43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3ptLTk2IDI1NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0Mi43IDM4NCA5NiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OGwwLTMyYzAtNTMgNDMtOTYgOTYtOTZsMTQ2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zeiJdfSx6JHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FuZHktY2FuZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4NiIsIk00MjEuOCAzOS42QzQ1MiA4NS4yIDQ1Ni41IDE0Mi45IDQzNS4xIDE5MmwtMTY1LjQgMCA0MS40LTQxLjRjLjgtLjggMS41LTEuNiAyLjItMi40TDQyMS44IDM5LjZ6TTI2OCAxMDIuOWMtLjggLjctMS42IDEuNC0yLjQgMi4ybC0yOC4xIDI4LjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNUwxNzUgMTQuNkMyMjkuOS00MC4yIDMxNC41LTQ2LjcgMzc2LjUtNS42TDI2OCAxMDIuOXpNMTI1LjcgMzM2bDgwLTgwIDE4MSAwLTgyLjUgODIuNSAwLTIuNS0xNzguNSAwem0xMTcgNjRMMTQxLjQgNTAxLjNjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNWwxMC43LTEwLjcgMTgxIDB6Il19LF8kcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGVlbGNoYWlyIixpY29uOls1MTIsNTEyLFtdLCJmMTkzIiwiTTEzNiA0MGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTExNy45IDE5Ny42bDEyLjYgNjNjLTM4LjYgMTIuNC02Ni41IDQ4LjctNjYuNSA5MS40IDAgNTMgNDMgOTYgOTYgOTYgMzUuNiAwIDY2LjctMTkuNCA4My4zLTQ4LjIgMi4zIC4xIDQuNiAuMiA3IC4ybDQuMSAwYzEgMCAyLjEgMCAzLjEgMGw1NS4yIDBjLTIwLjQgNjQuOS04MSAxMTItMTUyLjcgMTEyLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwIDAtNzMuOCA1MC0xMzUuOSAxMTcuOS0xNTQuNHptMTQ4LjYtMjguMWwyMy43IDExOC41IDYwLjUgMGMzMy4zIDAgNjMuMiAyMC43IDc0LjkgNTEuOWwyNS41IDY4IDE4LjctNi4yYzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMnMtMy41IDM0LjktMjAuMiA0MC41bC00OCAxNmMtMTYuMyA1LjQtMzQtMy00MC4xLTE5LjFsLTM2LjMtOTYuOWMtMi4zLTYuMi04LjMtMTAuNC0xNS0xMC40bC04Ni4xIDBjLS40IDAtLjggMC0xLjMgMGwtMTMuMSAwYy0zMC41IDAtNTYuOC0yMS41LTYyLjgtNTEuNEwxNjUuMyAxODkuN2MtNi40LTMxLjkgMTgtNjEuNyA1MC42LTYxLjcgMjQuNiAwIDQ1LjggMTcuNCA1MC42IDQxLjV6Il19LFQkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGVsbC1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZjg5MSIsIk0xMjAgMzJjLTQ4LjYgMC04OCAzOS40LTg4IDg4bDAgMTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2OGMwLTQ4LjYtMzkuNC04OC04OC04OGwtMTYgMHptNDAgMTI4bC02NCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwek0zMDQgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDcyIDBjNDguNiAwIDg4LTM5LjQgODgtODggMC0yMy42LTkuMy00NS0yNC40LTYwLjggMTAuMy0xNC40IDE2LjQtMzIuMSAxNi40LTUxLjIgMC00OC42LTM5LjQtODgtODgtODhsLTY0IDB6bTY0IDExMmwtMzIgMCAwLTQ4IDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6TTMzNiAyNTZsMC00OCA0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwem0yMzMgODRjMTEtMTMuOCA4LjgtMzMuOS01LTQ1cy0zMy45LTguOC00NSA1bC0xMDUuNyAxMzIuMS0zOC43LTM4LjdjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzYuNCA2LjQgMTUuMyA5LjggMjQuNCA5LjNzMTcuNS00LjkgMjMuMi0xMkw1NjkgMzQweiJdfSxMJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLW9mZiIsaWNvbjpbMzIwLDUxMixbXSwiZjAyNiIsIk05NiAzNTJsLTQ4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDhsNDggMCAxMzQuMS0xMTkuMmM2LjQtNS43IDE0LjYtOC44IDIzLjEtOC44IDE5LjIgMCAzNC44IDE1LjYgMzQuOCAzNC44bDAgMzc4LjRjMCAxOS4yLTE1LjYgMzQuOC0zNC44IDM0LjgtOC41IDAtMTYuNy0zLjEtMjMuMS04LjhMOTYgMzUyeiJdfSxEJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibHVuZ3MiLGljb246WzU3Niw1MTIsWzEyOTcyOV0sImY2MDQiLCJNMzIwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTQxLjktMzIgMTkuMiAwLTExNi43YzAtMjQuNS0xOS45LTQ0LjQtNDQuNC00NC40LTEyLjUgMC0yNC40IDUuMy0zMi44IDE0LjVsLTI2LjQgMjlDNDIuOSAxNjAuOCAwIDI3MS44IDAgMzg3bDAgMzAuNWMwIDUyLjIgNDIuMyA5NC41IDk0LjUgOTQuNSAyMiAwIDQzLjctNS4xIDYzLjQtMTVsNS0yLjVjMzcuNC0xOC43IDYxLTU2LjkgNjEtOTguOGwwLTEyOCA2NC0zOC40IDY0IDM4LjQgMCAxMjhjMCA0MS44IDIzLjYgODAuMSA2MSA5OC44bDUgMi41YzE5LjcgOS44IDQxLjQgMTUgNjMuNCAxNSA1Mi4yIDAgOTQuNS00Mi4zIDk0LjUtOTQuNWwwLTYuMmMwLTExMS4xLTM2LjctMjE5LTEwNC40LTMwN0w0MjguOSA0OC43Yy04LjEtMTAuNi0yMC43LTE2LjctMzQtMTYuNy0yMy43IDAtNDIuOSAxOS4yLTQyLjkgNDIuOWwwIDExOC4yLTMyLTE5LjIgMC0xNDEuOXoiXX0sJCRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2ttYXJrIixpY29uOlszODQsNTEyLFsxMjgyNzgsNjE1OTFdLCJmMDJlIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDgwYzAgMTEuNSA2LjIgMjIuMiAxNi4yIDI3LjhzMjIuMyA1LjUgMzIuMi0uNEwxOTIgNDIxLjMgMzM1LjUgNTA3LjRjOS45IDUuOSAyMi4yIDYuMSAzMi4yIC40UzM4NCA0OTEuNSAzODQgNDgwbDAtNDE2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6Il19LEEkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXJjb2RlIixpY29uOls0NDgsNTEyLFtdLCJmMDJhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptODggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptNzIgMzJsMCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnptMjA4LThsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptLTk2IDBsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sQXVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3Qtb2wiLGljb246WzUxMiw1MTIsWyJsaXN0LTEtMiIsImxpc3QtbnVtZXJpYyJdLCJmMGNiIiwiTTAgNzJDMCA1OC44IDEwLjcgNDggMjQgNDhsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNCAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC05NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC04MC0yNCAwQzEwLjcgOTYgMCA4NS4zIDAgNzJ6TTMwLjQgMzAxLjJDNDEuOCAyOTIuNiA1NS43IDI4OCA3MCAyODhsNC45IDBjMzMuNyAwIDYxLjEgMjcuNCA2MS4xIDYxLjEgMCAxOS42LTkuNCAzNy45LTI1LjIgNDkuNGwtMjQgMTcuNSAzMy4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTkwLjcgMEMxMy4xIDQ2NCAwIDQ1MC45IDAgNDM0LjcgMCA0MjUuMyA0LjUgNDE2LjUgMTIuMSA0MTFsNzAuNS01MS4zYzMuNC0yLjUgNS40LTYuNCA1LjQtMTAuNiAwLTcuMi01LjktMTMuMS0xMy4xLTEzLjFMNzAgMzM2Yy0zLjkgMC03LjcgMS4zLTEwLjggMy42TDM4LjQgMzU1LjJjLTEwLjYgOC0yNS42IDUuOC0zMy42LTQuOFMtMSAzMjQuOCA5LjYgMzE2LjhsMjAuOC0xNS42ek0yMjQgNjRsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDE2MGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sRSRyPUF1ZSxJJHI9QXVlLFAkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTVhMSIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxOJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3ViZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFiMiIsIk0yMjQuMy0yLjVjMTkuOC0xMS40IDQ0LjItMTEuNCA2NCAwTDQ2NC4yIDk5YzE5LjggMTEuNCAzMiAzMi42IDMyIDU1LjRsMCAyMDNjMCAyMi45LTEyLjIgNDQtMzIgNTUuNEwyODguMyA1MTQuNWMtMTkuOCAxMS40LTQ0LjIgMTEuNC02NCAwTDQ4LjUgNDEzYy0xOS44LTExLjQtMzItMzIuNi0zMi01NS40bDAtMjAzYzAtMjIuOSAxMi4yLTQ0IDMyLTU1LjRMMjI0LjMtMi41em0yMDcuOCAzNjBsMC0xNjYuMS0xNDMuOCA4MyAwIDE2Ni4xIDE0My44LTgzeiJdfSxPJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFwZSIsaWNvbjpbNTc2LDUxMixbXSwiZjRkYiIsIk00MTIuOCA0MTZjNDEuNS00MC43IDY3LjItOTcuMyA2Ny4yLTE2MCAwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0UzMyIDEzMi4zIDMyIDI1NiAxMzIuMyA0ODAgMjU2IDQ4MGwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTMxLjIgMHpNMjU2IDE2MGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptNDggOTZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sUiRyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbWIiLGljb246WzU3Niw1MTIsWzEyODE2M10sImYxZTIiLCJNNDgwLTE2YzYuOSAwIDEzIDQuNCAxNS4yIDEwLjlsMTMuNSA0MC40IDQwLjQgMTMuNUM1NTUuNiA1MSA1NjAgNTcuMSA1NjAgNjRzLTQuNCAxMy0xMC45IDE1LjJsLTQwLjQgMTMuNS0xMy41IDQwLjRDNDkzIDEzOS42IDQ4Ni45IDE0NCA0ODAgMTQ0cy0xMy00LjQtMTUuMi0xMC45bC0xMy41LTQwLjQtNDAuNC0xMy41QzQwNC40IDc3IDQwMCA3MC45IDQwMCA2NHM0LjQtMTMgMTAuOS0xNS4ybDQwLjQtMTMuNSAxMy41LTQwLjRDNDY3LTExLjYgNDczLjEtMTYgNDgwLTE2ek0zMjEuNCA5Ny40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xMC45IDEwLjljNy45IDIyIDEyLjIgNDUuNyAxMi4yIDcwLjUgMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzMyIDQxOC45IDMyIDMwNCAxMjUuMSA5NiAyNDAgOTZjMjQuNyAwIDQ4LjUgNC4zIDcwLjUgMTIuM2wxMC45LTEwLjl6TTE0NCAzMDRjMC01MyA0My05NiA5Ni05NiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHoiXX0sTkZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjYWxlLXVuYmFsYW5jZWQiLGljb246WzY0MCw1MTIsWyJiYWxhbmNlLXNjYWxlLWxlZnQiXSwiZjUxNSIsIk01MTkuOCA2Mi40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVTNTE2LjMtMy45IDQ5OS42IDEuNmwtMTEzIDM3LjdjLTEzLjktMjMuNS0zOS42LTM5LjMtNjguOS0zOS4zLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgMyAuMiA1LjkgLjUgOC44TDExNS42IDEyOS42Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsMTM1LjUtNDUuMmM0LjUgMy4yIDkuMyA1LjkgMTQuNCA4LjJsMCAzMjYuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0yOTQuN2MyMS05LjIgMzcuMi0yNyA0NC4yLTQ5bDEyNS45LTQyek00MzcuMyAyODhsNzIuNC0xMjQuMiA3Mi40IDEyNC4yLTE0NC45IDB6bTcyLjQgOTZjNjIuOSAwIDExNS4yLTM0IDEyNi03OC45IDIuNi0xMS0xLTIyLjMtNi43LTMyLjFMNTMzLjggMTA5LjhjLTUtOC42LTE0LjItMTMuOC0yNC4xLTEzLjhzLTE5LjEgNS4zLTI0LjEgMTMuOEwzOTAuNCAyNzMuMWMtNS43IDkuOC05LjMgMjEuMS02LjcgMzIuMSAxMC44IDQ0LjggNjMuMSA3OC45IDEyNiA3OC45ek0xMjYuOCAyOTEuOGw3Mi40IDEyNC4yLTE0NC45IDAgNzIuNC0xMjQuMnpNLjkgNDMzLjFDMTEuNyA0NzggNjQgNTEyIDEyNi44IDUxMnMxMTUuMi0zNCAxMjYtNzguOWMyLjYtMTEtMS0yMi4zLTYuNy0zMi4xTDE1MC45IDIzNy44Yy01LTguNi0xNC4yLTEzLjgtMjQuMS0xMy44cy0xOS4xIDUuMy0yNC4xIDEzLjhMNy42IDQwMS4xYy01LjcgOS44LTkuMyAyMS4xLTYuNyAzMi4xeiJdfSxGJHI9TkZlLE9GZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1sZWZ0Il0sImYxOTEiLCJNMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNnpNMTI4IDI1NmMwLTYuNyAyLjgtMTMgNy43LTE3LjZsMTEyLTEwNGM3LTYuNSAxNy4yLTguMiAyNS45LTQuNFMyODggMTQyLjUgMjg4IDE1MmwwIDIwOGMwIDkuNS01LjcgMTguMi0xNC40IDIycy0xOC45IDIuMS0yNS45LTQuNGwtMTEyLTEwNGMtNC45LTQuNS03LjctMTAuOS03LjctMTcuNnoiXX0sQiRyPU9GZSxIJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVsZXIiLGljb246WzU3Niw1MTIsWzEyODIwN10sImY1NDUiLCJNMjA5LjEgNTE2LjJjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwTDI4LjEgNDAzLjFjLTE4LjctMTguNy0xOC43LTQ5LjEgMC02Ny45bDE3LTE3IDczLjUgNzMuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTczLjUtNzMuNSAzMy45LTMzLjkgNTAuOSA1MC45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTAuOS01MC45IDMzLjktMzMuOSA3My41IDczLjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03My41LTczLjUgMzMuOS0zMy45IDUwLjkgNTAuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTUwLjktNTAuOSAzMy45LTMzLjkgNzMuNSA3My41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzMuNS03My41IDE3LTE3YzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwTDU0OC41IDEwOC45YzE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45TDIwOS4xIDUxNi4yeiJdfSxxJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaSIsaWNvbjpbMzIwLDUxMixbMTA1XSwiNDkiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDk2IDAgMCAzMjAtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMCAwLTMyMCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxFdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLXhtYXJrIixpY29uOls1NzYsNTEyLFsidm9sdW1lLW11dGUiLCJ2b2x1bWUtdGltZXMiXSwiZjZhOSIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNMzY3IDE3NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNDcgNDctNDcgNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0Ny00NyA0NyA0N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ3LTQ3IDQ3LTQ3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTQ3IDQ3LTQ3LTQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sViRyPUV1ZSxqJHI9RXVlLFUkcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcmNod2F5IixpY29uOls1MTIsNTEyLFtdLCJmNTU3IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnptMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDAgMC0xMjhjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDEyOCAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTI3Mi00NDggMCAwIDI3MnoiXX0sUkZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kaWdnaW5nIixpY29uOls1NzYsNTEyLFsiZGlnZ2luZyJdLCJmODVlIiwiTTIwOCA0MGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTEwLjUgMTgxLjNjNS45LTExLjkgMjAuMy0xNi43IDMyLjItMTAuN2wyNC42IDEyLjMgMTIuMi0yMC40YzE4LjktMzEuNSA1My4yLTUwLjUgODkuNi01MC41IDQ2LjIgMCA4Ny43IDMwLjUgMTAwLjUgNzUuNGwzMi4yIDExMi43IDkyLjkgNDYuNCAyNS44LTQzYzUuOC05LjYgMTYuMi0xNS41IDI3LjQtMTUuNXMyMS43IDUuOSAyNy40IDE1LjVsOTYgMTYwYzUuOSA5LjkgNi4xIDIyLjIgLjQgMzIuMlM1NTUuNSA1MTIgNTQ0IDUxMmwtMTkyIDBjLTExLjUgMC0yMi4yLTYuMi0yNy44LTE2LjJzLTUuNS0yMi4zIC40LTMyLjJMMzcwIDM4Ny44IDIxLjMgMjEzLjVjLTExLjktNS45LTE2LjctMjAuMy0xMC43LTMyLjJ6TTk0LjMgMzA3LjRsMTEyIDU2YzEwLjggNS40IDE3LjcgMTYuNSAxNy43IDI4LjZsMCA4OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY4LjItNjEuMy0zMC43LTM2LjMgMTA5Yy01LjYgMTYuOC0yMy43IDI1LjgtNDAuNSAyMC4yUy0zLjkgNDg2LjYgMS43IDQ2OS45bDQ4LTE0NGMyLjktOC44IDkuNS0xNS45IDE4LjEtMTkuNHMxOC4zLTMuMiAyNi42IC45eiJdfSxXJHI9UkZlLEl1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1oaWdoIixpY29uOls1MTIsNTEyLFs2MjQ2MSwidGFjaG9tZXRlci1hbHQiLCJ0YWNob21ldGVyLWFsdC1mYXN0Il0sImY2MjUiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTI1NiA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0xNi4yLTYtMzEuMS0xNi00Mi4zbDY5LjUtMTM4LjljNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4ycy0yNi4zLTEuMS0zMi4yIDEwLjdMMjYxLjEgMjg4LjJjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjR6TTE3NiAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNOTYgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzUyLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LEckcj1JdWUsWSRyPUl1ZSxLJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VuZGVybGVzcyIsaWNvbjpbMzg0LDUxMixbXSwiZjIyZCIsIk0xOTIgMTI4YTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnptMCAzMjBhMTkyIDE5MiAwIDEgMCAwLTM4NCAxOTIgMTkyIDAgMSAwIDAgMzg0eiJdfSxaJHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtc3VuIixpY29uOls2NDAsNTEyLFs5OTI1XSwiZjZjNCIsIk0yMDguMyAxOTJjNDMuMSAwIDgwLjUgMjQuNCA5OS4yIDYwLjEgMTQuNy0xNy4yIDM2LjQtMjguMSA2MC44LTI4LjEgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOS0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMzIwIDBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Mi41IDI3LjctNzguNSA2Ni05MS4yLTEuMy02LjgtMi0xMy43LTItMjAuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnptMTkyLTIyMy44YzUuMyAwIDEwLjMgMi43IDEzLjMgNy4xbDQ3LjMgNzAuNCA4My4zLTE2LjNjNS4yLTEgMTAuNiAuNyAxNC4zIDQuNCAzLjggMy44IDUuNCA5LjIgNC40IDE0LjRsLTE2LjMgODMuMyA3MC40IDQ3LjNjNC40IDMgNy4xIDggNy4xIDEzLjMgMCA1LjMtMi42IDEwLjMtNyAxMy4ybC03MC40IDQ3LjMgMTQuNSA3NC4yYy0xNy4yLTIxLjctNDAuNC0zOC40LTY3LjItNDcuMy0yLjUtMTIuNy02LjktMjQuNi0xMi44LTM1LjcgOS42LTE0LjkgMTUuMi0zMi43IDE1LjItNTEuNyAwLTUzLTQzLTk2LTk2LTk2LTQ3LjkgMC04Ny42IDM1LjEtOTQuOCA4MC45LTIwLjktMTYtNDUuOS0yNy03My4xLTMxLjFsMjEuNS0xNC41LTE2LjMtODMuMi0uMy0yYy0uMy00LjYgMS4zLTkuMSA0LjYtMTIuNCAzLjgtMy44IDkuMi01LjQgMTQuNC00LjRsODMuMyAxNi4zIDQ3LjMtNzAuNCAxLjItMS42YzMtMy41IDcuNC01LjUgMTIuMS01LjV6bTAgMTc1LjhjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAzLjgtLjUgNy42LTEuNCAxMS4xLTIxLjctMTYuOS00OC45LTI3LjEtNzguNi0yNy4xLTQuNiAwLTkuMSAuMi0xMy41IC43IDYuNC0xOSAyNC4zLTMyLjcgNDUuNS0zMi43eiJdfSxrcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQiLGljb246WzUxMiw1MTIsWzg1OTRdLCJmMDYxIiwiTTUwMi42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM3MC43IDAtMTA1LjQgMTA1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHoiXX0sUHVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzaGFrZSIsaWNvbjpbNTc2LDUxMixbMTI5MzA5LDYyNjYyLCJoYW5kc2hha2UtYWx0IiwiaGFuZHNoYWtlLXNpbXBsZSJdLCJmMmI1IiwiTTI2OC45IDg1LjJMMTUyLjMgMjE0LjhjLTQuNiA1LjEtNC40IDEzIC41IDE3LjkgMzAuNSAzMC41IDgwIDMwLjUgMTEwLjUgMGwzMS44LTMxLjhjNC4yLTQuMiA5LjUtNi41IDE0LjktNi45IDYuOC0uNiAxMy44IDEuNyAxOSA2LjlMNTA1LjYgMzc2IDU3NiAzMjAgNTc2IDMyIDQ2NCA5NiA0NDAuMiA4MC4xQzQyNC40IDY5LjYgNDA1LjkgNjQgMzg2LjkgNjRsLTcwLjQgMGMtMS4xIDAtMi4zIDAtMy40IC4xLTE2LjkgLjktMzIuOCA4LjUtNDQuMiAyMS4xek0xMTYuNiAxODIuN0wyMjMuNCA2NCAxODMuOCA2NGMtMjUuNSAwLTQ5LjkgMTAuMS02Ny45IDI4LjFMMTEyIDk2IDAgMzIgMCAzMjAgMTU2LjQgNDUwLjNjMjMgMTkuMiA1MiAyOS43IDgxLjkgMjkuN2wxNS43IDAtNy03Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDEgNDEgOSAwYzE5LjEgMCAzNy44LTQuMyA1NC44LTEyLjNMMzU5IDQ0MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMyIDMyIDE3LjUtMTcuNWM4LjktOC45IDExLjUtMjEuOCA3LjYtMzMuMWwtMTM3LjktMTM2LjgtMTQuOSAxNC45Yy00OS4zIDQ5LjMtMTI5LjEgNDkuMy0xNzguNCAwLTIzLTIzLTIzLjktNTkuOS0yLjItODR6Il19LFEkcj1QdWUsWCRyPVB1ZSxGRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNraWluZyIsaWNvbjpbNTc2LDUxMixbOTk3NSwic2tpaW5nIl0sImY3YzkiLCJNNDE2IDU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMi43IDMwMC45YzYuMS0xMS44IDIwLjYtMTYuMyAzMi40LTEwLjJsMTk3LjggMTAyLjcgNjIuMy04Ny4yLTgyLTkyLjJjLTExLTEyLjQtMTYuMi0yNy41LTE2LjItNDIuNGwxMTEuNiA1My40IDQyLjkgNDguMmMxNC45IDE2LjcgMTYuMiA0MS42IDMuMiA1OS44bC02NC40IDkwLjIgMTI4LjMgNjYuNmMxMy42IDcuMSAyOS44IDcuMiA0My42IC4zbDE1LjItNy42YzExLjktNS45IDI2LjMtMS4xIDMyLjIgMTAuN3MxLjEgMjYuMy0xMC43IDMyLjJsLTE1LjIgNy42Yy0yNy41IDEzLjctNTkuOSAxMy41LTg3LjItLjdMMTIuOSAzMzMuM0MxLjIgMzI3LjItMy40IDMxMi43IDIuNyAzMDAuOXpNMTAzIDQ5LjZsMTggOC43IDguNy0xNy40YzQtNy45IDEzLjYtMTEuMSAyMS41LTcuMnMxMS4xIDEzLjYgNy4yIDIxLjVsLTguNSAxNyA4NC44IDQxIC40LS4yIDc2LjEtMzMuOGMzMS4zLTEzLjkgNjcuOS0uNyA4My4yIDI5LjlsMjguOSA1Ny44IDY4LjcgMjcuNWMxNi40IDYuNiAyNC40IDI1LjIgMTcuOCA0MS42cy0yNS4yIDI0LjQtNDEuNiAxNy44TDM5My44IDIyNGMtMTAuOS00LjQtMTkuOC0xMi42LTI1LjEtMjMuMWwtMTEuNS0yMy4xYy0xNi40IDkuNC0yNS45IDE0LjgtMjguNSAxNi4zbC03LjYtMy43LTE4NS42LTg5LjYtOS4yIDE4LjNjLTQgNy45LTEzLjYgMTEuMS0yMS41IDcuMnMtMTEuMS0xMy42LTcuMi0yMS41bDktMTcuOS0xNy42LTguNUM4MS4xIDc0LjYgNzcuOCA2NSA4MS42IDU3Uzk1IDQ1LjcgMTAzIDQ5LjZ6Il19LEokcj1GRmUsZUFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRjZSIsIk02NCA2NGw1MTIgMCAwIDExMmMtMzcuNiA5LjQtNjQgNDMuMi02NCA4MmwwIDc2LjRjLTIxLTkuNy00My41LTE0LjUtNjYtMTQuNC0xMCAuMS0yMC4xIDEuMS0zMCAzLjFsMC0zNS4xYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzIuN2MtNS4zLS41LTEwLjctLjgtMTYtLjctMjcuNyAuMi01NS40IDcuOC04MCAyM2wwLTg1YzAtMzguOC0yNi40LTcyLjYtNjQtODJMNjQgNjR6TTQwMy40IDQ0NC4xQzM3OS4xIDQ2Mi4zIDM1MS4xIDQ4MCAzMjAgNDgwcy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sdEFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLW5nbyIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNyIsIk0xMjggMEM5Mi43IDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDIwOCAwIDAtMjcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMzA0IDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTUyMCAzODBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTgwYzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0xNiAwem0tNCA0NGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4MGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwem0tMTY4IDBsMCA4MGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwxNiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtMjRjMC0xMS05LTIwLTIwLTIwbC04IDBjLTExIDAtMjAgOS0yMCAyMCAwIDYuNSAzLjEgMTIuNCA4IDE2bDAgOGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwYzAtMi4yIDEuOC00IDQtNGwyMC40IDBjMS45IDkuMSA5LjkgMTYgMTkuNiAxNiAxMSAwIDIwLTkgMjAtMjAgMC0xOS45LTE2LjEtMzYtMzYtMzZsLTI0IDBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0em0tOTAuMS0zMi45Yy00LjEtOC4zLTEzLjUtMTIuNy0yMi41LTEwLjVTMjIwIDM5MC43IDIyMCA0MDBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00My4zIDI2LjEgNTIuMmM0LjEgOC4zIDEzLjUgMTIuNyAyMi41IDEwLjVTMzI0IDUzNy4zIDMyNCA1MjhsMC0xMjhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgNDMuMy0yNi4xLTUyLjJ6Il19LHJBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZ2xvbyIsaWNvbjpbNTc2LDUxMixbXSwiZjdhZSIsIk0zMjAgMzMuOGwwIDEyNi4yLTI3MS41IDBjNTEuNy03Ny4yIDEzOS42LTEyOCAyMzkuNS0xMjggMTAuOCAwIDIxLjUgLjYgMzIgMS44ek0zNjggMTYwbDAtMTE2LjdjNjYgMTkgMTIyLjIgNjEgMTU5LjUgMTE2LjdMMzY4IDE2MHpNMjIuNiAyMDhsNzMuNCAwIDAgMTEyLTk2IDBjMC0zOS43IDgtNzcuNiAyMi42LTExMnpNMTc2IDMyMGwtMzIgMCAwLTExMiAyODggMCAwIDExMi0zMiAwIDAgNDggMTc2IDAgMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjQgMTc2IDAgMC00OHptMzA0IDBsMC0xMTIgNzMuNCAwQzU2OCAyNDIuNCA1NzYgMjgwLjMgNTc2IDMyMGwtOTYgMHpNMjg4IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4MCAxMjggMCAwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0eiJdfSxCRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvbGxhci10by1zbG90IixpY29uOls1NzYsNTEyLFsiZG9uYXRlIl0sImY0YjkiLCJNOTYgMjI0YTE5MiAxOTIgMCAxIDEgMzg0IDAgMTkyIDE5MiAwIDEgMSAtMzg0IDB6bTE3Ni05MmwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwyNDggMjcyYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwek00OCAzNDRsMCAxMDRjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sYUFyPUJGZSxpQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieSIsaWNvbjpbMzg0LDUxMixbMTIxXSwiNTkiLCJNNTggNDUuNEM0Ny44IDMxIDI3LjggMjcuNyAxMy40IDM4Uy00LjMgNjguMiA2IDgyLjZMMTYwIDI5OC4zIDE2MCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0OS43IDE1NC0yMTUuN2MxMC4zLTE0LjQgNi45LTM0LjQtNy40LTQ0LjZTMzM2LjIgMzEgMzI2IDQ1LjRMMTkyIDIzMi45IDU4IDQ1LjR6Il19LEhGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLXdpbmsiLGljb246WzUxMiw1MTIsWzEyODUyMSwic21pbGUtd2luayJdLCJmNGRhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sc0FyPUhGZSxuQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1mb3VyIixpY29uOls0NDgsNTEyLFs5ODU5XSwiZjUyNCIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTYwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zNTIgMTYwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxxRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludC10ZWFycyIsaWNvbjpbNTc2LDUxMixbMTI5MzE1LCJncmluLXNxdWludC10ZWFycyJdLCJmNTg2IiwiTTU2MCAzNS40YzAgMjUuNi0xOC44IDQ3LjMtNDQuMSA1MC45TDQ2OS4xIDkzYy0xMC42IDEuNS0xOS42LTcuNS0xOC4xLTE4LjFsNi43LTQ2LjdDNDYxLjMgMi44IDQ4My0xNiA1MDguNi0xNiA1MzctMTYgNTYwIDcgNTYwIDM1LjR6TTQwMy41IDY4LjFjLTYgNDIuMiAzMC4yIDc4LjQgNzIuNCA3Mi40bDM3LjgtNS40QzU2NS43IDIzMiA1NTAuOCAzNTUuMyA0NjkgNDM3cy0yMDUgOTYuNi0zMDEuOSA0NC43bDUuNC0zNy44YzYtNDIuMi0zMC4yLTc4LjQtNzIuNC03Mi40bC0zNy44IDUuNEMxMC4zIDI4MCAyNS4yIDE1Ni43IDEwNyA3NVMzMTItMjEuNyA0MDguOSAzMC4zbC01LjQgMzcuOHpNNDE3LjggMjAxYy0xOS4xIDM2LjQtNDUuNiA3Mi43LTc4LjkgMTA2cy02OS42IDU5LjgtMTA2IDc4LjljLTExLjEgNS44LTEyLjQgMjEuNC0xLjEgMjYuNiA1OS4yIDI3LjUgMTMxLjggMTYuOCAxODAuNi0zMnM1OS41LTEyMS40IDMyLTE4MC42Yy01LjMtMTEuMy0yMC44LTEwLTI2LjYgMS4xek0xMTMuOSAyNzAuNmMxLjcgOCA5IDEzLjQgMTcuMSAxMi43bDQzLjEtMy45LTMuOSA0My4xYy0uNyA4LjEgNC43IDE1LjUgMTIuNyAxNy4xczE1LjktMi45IDE4LjQtMTAuNmwyOC04NC42YzEuOS01LjcgLjQtMTIuMS0zLjktMTYuM3MtMTAuNi01LjgtMTYuMy0zLjlsLTg0LjYgMjhjLTcuNyAyLjYtMTIuMyAxMC41LTEwLjYgMTguNXpNMzE1LjIgOTkuMWMuNy04LjEtNC43LTE1LjUtMTIuNy0xNy4xcy0xNS45IDIuOS0xOC41IDEwLjZsLTI4IDg0LjZjLTEuOSA1LjctLjQgMTIuMSAzLjkgMTYuM3MxMC42IDUuOCAxNi4zIDMuOWw4NC42LTI4YzcuNy0yLjYgMTIuMy0xMC41IDEwLjYtMTguNHMtOS0xMy40LTE3LjEtMTIuN2wtNDMuMSAzLjkgMy45LTQzLjF6TTYwLjEgNDI1LjdsNDYuNy02LjdjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0MxMTQuNyA1MDkuMiA5MyA1MjggNjcuNCA1MjggMzkgNTI4IDE2IDUwNSAxNiA0NzYuNiAxNiA0NTEgMzQuOCA0MjkuMyA2MC4xIDQyNS43eiJdfSxvQXI9cUZlLGxBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWF1ZGlvIixpY29uOlszODQsNTEyLFtdLCJmMWM3IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41em01My44IDE4NS4yYy05LjEtNi4zLTIxLjUtNC4xLTI3LjggNXMtNC4xIDIxLjUgNSAyNy44YzIzLjkgMTYuNyAzOS40IDQ0LjMgMzkuNCA3NS41cy0xNS42IDU4LjktMzkuNCA3NS41Yy05LjEgNi4zLTExLjMgMTguOC01IDI3LjhzMTguOCAxMS4zIDI3LjggNWMzNC4xLTIzLjggNTYuNi02My41IDU2LjYtMTA4LjNTMjk2IDI2Ny41IDI2MS44IDI0My43ek04MCAzMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwIDI3LjIgMzRjMyAzLjggNy42IDYgMTIuNSA2bC4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtLjMgMGMtNC45IDAtOS41IDIuMi0xMi41IDZsLTI3LjIgMzQtMjQgMHptMTI4IDcyLjJjMCAxMC43IDEwLjUgMTguMiAxOC45IDExLjYgMTIuOS0xMC4zIDIxLjEtMjYuMSAyMS4xLTQzLjhzLTguMi0zMy41LTIxLjEtNDMuOGMtOC40LTYuNy0xOC45IC45LTE4LjkgMTEuNmwwIDY0LjV6Il19LGNBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtZG93bi10by1saW5lIixpY29uOls1MTIsNTEyLFtdLCJlNGI4IiwiTTIxNC42IDMxMC42bC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDI3NC43IDk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNDIuNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTI1NiAwbC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDkuNCA5LjQgMC0yNDIuN2MwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjQyLjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0zMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyeiJdfSxkQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZyIsaWNvbjpbNDQ4LDUxMixbMTAzXSwiNDciLCJNMjI0IDk2QzEzNS42IDk2IDY0IDE2Ny42IDY0IDI1NnM3MS42IDE2MCAxNjAgMTYwYzc3LjQgMCAxNDItNTUgMTU2LjgtMTI4TDI1NiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ0IDBjMjUuOCAwIDQ5LjYgMjEuNCA0Ny4yIDUwLjYtOS41IDExNS0xMDUuOCAyMDUuNC0yMjMuMiAyMDUuNC0xMjMuNyAwLTIyNC0xMDAuMy0yMjQtMjI0UzEwMC4zIDMyIDIyNCAzMmM1Ny40IDAgMTA5LjcgMjEuNiAxNDkuMyA1NyAxMy4yIDExLjggMTQuMyAzMiAyLjUgNDUuMnMtMzIgMTQuMy00NS4yIDIuNUMzMDIuMyAxMTEuNCAyNjUgOTYgMjI0IDk2eiJdfSx1QXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmloYXJhIixpY29uOls1NzYsNTEyLFtdLCJmNmE3IiwiTTI3My42LTMuMmM4LjUtNi40IDIwLjMtNi40IDI4LjggMEw0NDMuMiAxMDIuNGM4LjMgNi4yIDE4LjQgOS42IDI4LjggOS42IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgNDggNTguNyA2NCAxMy4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQ4IDI0LjQgMzIgMTUuNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xMjggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTI4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjIuMSAwIDE3LjktMzIgMC00OC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTMuMyAwIDU4LjctNjQgMC00OC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzEwLjQgMCAyMC41LTMuNCAyOC44LTkuNkwyNzMuNi0zLjJ6TTEyOCAzNjhsMzIwIDAgMC00OC0zMjAgMCAwIDQ4ek0zODQgMTYwbC0xOTIgMCAwIDQ4IDE5MiAwIDAtNDh6Il19LHBBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnLWNoZWNrZXJlZCIsaWNvbjpbNDQ4LDUxMixbMTI3OTM3XSwiZjExZSIsIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMjc5LjdjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgMzg0IDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwek02NCAxODcuMWw2NC0xMy45IDAgNjUuNS02NCAxMy45IDAgNjUuNSA0OC44LTEyLjJjNS4xLTEuMyAxMC4xLTIuNCAxNS4yLTMuM2wwLTYzLjkgMzguOS04LjRjOC4zLTEuOCAxNi43LTIuNSAyNS4xLTIuMWwwLTY0YzEzLjYgLjQgMjcuMiAyLjYgNDAuNCA2LjRsMjMuNiA2LjkgMCA2Ni43LTQxLjctMTIuM2MtNy4zLTIuMS0xNC44LTMuNC0yMi4zLTMuOGwwIDcxLjRjMjEuOCAxLjkgNDMuMyA2LjcgNjQgMTQuNGwwLTY5LjggMjIuNyA2LjdjMTMuNSA0IDI3LjMgNi40IDQxLjMgNy40bDAtNjQuMmMtNy44LS44LTE1LjYtMi4zLTIzLjItNC41bC00MC44LTEyIDAtNjJjLTEzLTMuOC0yNS44LTguOC0zOC4yLTE1LTguMi00LjEtMTYuOS03LTI1LjgtOC44bDAgNzIuNGMtMTMtLjQtMjYgLjgtMzguNyAzLjZsLTI1LjMgNS41IDAtNzUuMi02NCAxNiAwIDczLjF6TTMyMCAzMzUuN2MxNi44IDEuNSAzMy45LS43IDUwLTYuOGwxNC01LjIgMC03MS43LTcuOSAxLjhjLTE4LjQgNC4zLTM3LjMgNS43LTU2LjEgNC41bDAgNzcuNHptNjQtMTQ5LjRsMC03MC44Yy0yMC45IDYuMS00Mi40IDkuMS02NCA5LjFsMCA2OS40YzEzLjkgMS40IDI4IC41IDQxLjctMi42bDIyLjMtNS4yeiJdfSxOdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F1Z2Utc2ltcGxlIixpY29uOls1MTIsNTEyLFsiZ2F1Z2Utc2ltcGxlLW1lZCIsInRhY2hvbWV0ZXItYXZlcmFnZSJdLCJmNjI5IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTMyMCA5NmMwLTI2LjktMTYuNS00OS45LTQwLTU5LjNMMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3Mi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sZkFyPU51ZSxoQXI9TnVlLFZGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC1sZWZ0IixpY29uOls1MTIsNTEyLFsiZXhjaGFuZ2UtYWx0Il0sImYzNjIiLCJNNTAyLjYgMTUwLjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzNTIgMjM2LjkgMzUyIDIyNGwwLTY0LTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDk2IDMyIDk2bDMyMCAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE2MCAyNzUuMSAxNjAgMjg4bDAgNjQgMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwIDAgNjRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02Ljl6Il19LG1Bcj1WRmUsZ0FyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpbGxzIixpY29uOls1MTIsNTEyLFtdLCJmNDg0IiwiTTY0IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyLTk2IDAgMC0xMTJ6TTE3NiAzNjhjMC00OC43IDE4LjEtOTMuMiA0OC0xMjdsMC0xMjlDMjI0IDUwLjEgMTczLjkgMCAxMTIgMFMwIDUwLjEgMCAxMTJMMCA0MDBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTIgMzcuMyAwIDcwLjMtMTguMiA5MC43LTQ2LjMtMTctMjguNi0yNi43LTYyLTI2LjctOTcuN3ptNjQuNyA2Ny40YzQuNiA4LjcgMTYuMyA5LjcgMjMuMyAyLjdMNDM4LjEgMjY0YzctNyA2LTE4LjctMi43LTIzLjMtMjAuMS0xMC43LTQzLTE2LjctNjcuNC0xNi43LTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMjQuMyA2IDQ3LjMgMTYuNyA2Ny40ek0yOTcuOSA0NzJjLTcgNy02IDE4LjcgMi43IDIzLjMgMjAuMSAxMC43IDQzIDE2LjcgNjcuNCAxNi43IDc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjQuMy02LTQ3LjMtMTYuNy02Ny40LTQuNi04LjctMTYuMy05LjctMjMuMy0yLjdMMjk3LjkgNDcyeiJdfSxiQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXhwbG9zaW9uIixpY29uOls1MTIsNTEyLFtdLCJlNGU5IiwiTTI1Ni0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTYwYzEyLjQgMCAyMi43IDkuNCAyMy45IDIxLjdMMjkzLjQgMjkxLjYgNDY3LjYgMTEuM2M2LjctMTAuNyAyMC41LTE0LjUgMzEuNy04LjVzMTUuOCAxOS41IDEwLjYgMzFMMzcyLjggMzM4LjZjMi4yIDIuMyA0LjMgNC43IDYuMyA3LjFsOTcuMi01NC43YzEwLjUtNS45IDIzLjYtMy4xIDMwLjkgNi40czYuMyAyMy0yLjIgMzEuNWwtODcgODctNzEuNCAwYy0xMy4yLTM3LjMtNDguNy02NC05MC41LTY0cy03Ny40IDI2LjctOTAuNSA2NGwtNzkuNiAwLTc1LjUtNTIuM0MuNiAzNTctMi44IDM0NC4xIDIuNCAzMzMuNXMxNy40LTE1LjkgMjguNy0xMi40bDk3LjIgMzAuNGMzLTMuOSA2LjEtNy42IDkuNC0xMS4zTDc1LjQgMjM2LjNjLTYuMS0xMC4xLTMuOS0yMy4xIDUuMS0zMC43czIyLjItNy41IDMxLjEgLjFMMjE0IDI5My42YzEuNS0uNCAzLS44IDQuNS0xLjFsMTMuNi0xNDIuN2MxLjItMTIuMyAxMS41LTIxLjcgMjMuOS0yMS43ek0zMiA0NjRsNDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMHoiXX0seEFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1kb3duLXRvLXBlb3BsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRiOSIsIk0xMTMgMTUzYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxNSA4OUM1LjcgNzkuNiA1LjcgNjQuNCAxNSA1NVMzOS42IDQ1LjcgNDkgNTVMNzIgNzguMSA3Mi04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4Ni4xIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjR6bTMyMCAwYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwzMzUgODljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMyAyMyAwLTg2LjFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDg2LjEgMjMtMjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02NCA2NHpNMjU2IDE5MmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnptMCAxNjBjNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTUzIDQzLTk2IDk2LTk2ek0zMiAyODhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMzUyIDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNODAgMzY4YzE1LjMgMCAyOS42IDQuMyA0MS44IDExLjgtNi4zIDE2LjItOS44IDMzLjgtOS44IDUyLjJsMCA0OGMwIDExLjQgMi40IDIyLjIgNi43IDMybC04Ny44IDBDMTMuOCA1MTIgMCA0OTguMiAwIDQ4MS4xTDAgNDQ4YzAtNDQuMiAzNS44LTgwIDgwLTgwek0zOTMuMyA1MTJjNC4zLTkuOCA2LjctMjAuNiA2LjctMzJsMC00OGMwLTE4LjQtMy41LTM2LTkuOC01Mi4yIDEyLjItNy41IDI2LjUtMTEuOCA0MS44LTExLjggNDQuMiAwIDgwIDM1LjggODAgODBsMCAzMy4xYzAgMTctMTMuOCAzMC45LTMwLjkgMzAuOWwtODcuOCAweiJdfSx2QXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtdmlld2ZpbmRlciIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTguOCA3LjItMTYgMTYtMTZsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMxNDkuMyAwIDEzNiAwTDY0IDB6TTQ0MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDQ0MCAwek00OCAzNzZjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAzNjIuNyAwIDM3NmwwIDcyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTcyem01MjggMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyYzAgOC44LTcuMiAxNi0xNiAxNmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNzJ6TTI4OCAyMTZhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTAgNDBjLTUzIDAtOTYgNDMtOTYgOTZsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtNTMtNDMtOTYtOTYtOTZ6bTE5Mi02NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNjggMjcyLjNjLTQ5LjMgNC4xLTg4IDQ1LjMtODggOTUuN2wwIDEwLjdjMCAxMS44IDkuNiAyMS4zIDIxLjMgMjEuM2w0Ni44IDBjLTIuNy03LjUtNC4xLTE1LjYtNC4xLTI0bDAtMjRjMC0yOS41IDguOC01Ni45IDI0LTc5Ljd6TTQyNy45IDQwMGw0Ni44IDBjMTEuOCAwIDIxLjMtOS42IDIxLjMtMjEuM2wwLTEwLjdjMC01MC4zLTM4LjctOTEuNi04OC05NS43IDE1LjIgMjIuOCAyNCA1MC4yIDI0IDc5LjdsMCAyNGMwIDguNC0xLjQgMTYuNS00LjEgMjR6TTE5MiAxOTJhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0seUFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1vbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTRkZCIsIk0yNDgtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMyMDAtMjEuMyAyMDAtOGwwIDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NHpNMTQ1LjMgMjA4bDE1Ny41IDBjNi43IDAgMTIuNiA0LjEgMTUgMTAuNGwyNi4xIDY5LjYtMjM5LjYgMCAyNi4xLTY5LjZjMi4zLTYuMiA4LjMtMTAuNCAxNS0xMC40ek0zNCAyOTIuOGwtMS4zIDMuNEMxMy4yIDMwNy4xIDAgMzI4IDAgMzUyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAyODggMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0yNC0xMy4yLTQ0LjktMzIuOC01NS45bC0xLjMtMy40LTM2LjMtOTYuOWMtMTEuNy0zMS4yLTQxLjYtNTEuOS03NC45LTUxLjlsLTE1Ny41IDBjLTMzLjMgMC02My4yIDIwLjctNzQuOSA1MS45TDM0IDI5Mi44ek05NiAzMzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yMjQgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNyA3Qy0yLjMgMTYuNC0yLjMgMzEuNiA3IDQxTDU1IDg5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwUzk4LjMgNjQuNCA4OSA1NUw0MSA3QzMxLjYtMi4zIDE2LjQtMi4zIDcgN3pNNDA3IDdMMzU5IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDgtNDhjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlTNDE2LjQtMi4zIDQwNyA3eiJdfSx3QXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2xlaWdoIixpY29uOls2NDAsNTEyLFtdLCJmN2NjIiwiTTY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NFM0Ni4zIDk2IDY0IDk2bDAgMTYwYzAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDY5LjUtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1MDQgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04MCAwIDAtNjRjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OC45IDBjLTQ4LjUgMC05Mi44LTI3LjQtMTE0LjUtNzAuOGwtMjUuMi01MC41QzIzNy43IDU5LjQgMTkzLjQgMzIgMTQ0LjkgMzJMNjQgMzJ6TTQzMiA0MTZsLTI1NiAwIDAtNjQgMjU2IDAgMCA2NHoiXX0sa0FyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImR1bWJiZWxsIixpY29uOls2NDAsNTEyLFtdLCJmNDRiIiwiTTk2IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyIDI1NiAwIDAtMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxNiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYgMCAwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtMTEyLTI1NiAwIDAgMTEyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtMTYtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwwLTQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMC0xNnoiXX0sakZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhYnktY2FycmlhZ2UiLGljb246WzUxMiw1MTIsWyJjYXJyaWFnZS1iYWJ5Il0sImY3N2QiLCJNNjQgMjA4bDAgODBjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTEyIDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNTYtMzM2IDB6bS4yLTQ4bDIyMy44IDAgMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMjMyIDBDMTQxLjkgMCA2OC40IDcwLjkgNjQuMiAxNjB6TTE2MCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptMjg4IDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sU0FyPWpGZSxNQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2l3aS1iaXJkIixpY29uOls1NzYsNTEyLFtdLCJmNTM1IiwiTTI5MS4yIDM4OC40YzMxLjItMTguOCA2NC43LTM2LjQgMTAxLjEtMzYuNGw1NS43IDBjNC42IDAgOS4xLS4yIDEzLjYtLjdsODUuMyAxMjEuOWM0IDUuNyAxMS4zIDguMiAxNy45IDYuMVM1NzYgNDcxIDU3NiA0NjRsMC0yNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTU1LjcgMEMzNTUuOSA5NiAzMjIuNCA3OC40IDI5MS4yIDU5LjYgMjYyLjMgNDIuMSAyMjguMyAzMiAxOTIgMzIgODYgMzIgMCAxMTggMCAyMjQgMCAyOTUuMSAzOC42IDM1Ny4xIDk2IDM5MC4zTDk2IDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDZjMTUuMyAzLjkgMzEuNCA2IDQ4IDYgNS40IDAgMTAuNy0uMiAxNi0uN2wwIDQwLjdjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTUwLjljMTIuNC00LjQgMjQuMi0xMCAzNS4yLTE2Ljd6TTQ0OCAyMDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxVRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXIteG1hcmsiLGljb246WzQ0OCw1MTIsWyJjYWxlbmRhci10aW1lcyJdLCJmMjczIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjkxLjkgMjIwLjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0zMy45IDMzLjktMzMuOS0zMy45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMy45LTMzLjkgMzMuOSAzMy45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzMuOS0zMy45IDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXoiXX0sQ0FyPVVGZSxXRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvd24iLGljb246WzUxMiw1MTIsWzYxNDY2LCJhcnJvdy1hbHQtY2lyY2xlLWRvd24iXSwiZjM1OCIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTI0NC43IDM4Ny4zbC0xMDQtMTA0Yy00LjYtNC42LTUuOS0xMS41LTMuNS0xNy40czguMy05LjkgMTQuOC05LjlsNTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiA1NiAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45czEuMSAxMi45LTMuNSAxNy40bC0xMDQgMTA0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHoiXX0sekFyPVdGZSxfQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1tZWRpY2FsIixpY29uOlszODQsNTEyLFtdLCJmNDc3IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNjAgMjgwbDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxFcD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4bWFyayIsaWNvbjpbMzg0LDUxMixbMTI4NDczLDEwMDA1LDEwMDA2LDEwMDYwLDIxNSwiY2xvc2UiLCJtdWx0aXBseSIsInJlbW92ZSIsInRpbWVzIl0sImYwMGQiLCJNNTUuMSA3My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wxNDcuMiAyNTYgOS45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5Mi41IDMwMS4zIDMyOS45IDQzOC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjM3LjggMjU2IDM3NS4xIDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5Mi41IDIxMC43IDU1LjEgNzMuNHoiXX0sVEFyPUVwLExBcj1FcCxEQXI9RXAsJEFyPUVwLEdGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFwZXMiLGljb246WzUxMiw1MTIsWyJ0cmlhbmdsZS1jaXJjbGUtc3F1YXJlIl0sImY2MWYiLCJNMjU2IDBjMTEuMiAwIDIxLjcgNS45IDI3LjQgMTUuNWw5NiAxNjBjNS45IDkuOSA2LjEgMjIuMiAuNCAzMi4yUzM2My41IDIyNCAzNTIgMjI0bC0xOTIgMGMtMTEuNSAwLTIyLjItNi4yLTI3LjgtMTYuMnMtNS41LTIyLjMgLjQtMzIuMmw5Ni0xNjBDMjM0LjMgNS45IDI0NC44IDAgMjU2IDB6TTEyOCAyNzJhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0em0yMDAgMTZsMTEyIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAxMTJjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTExMiAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTExMmMwLTIyLjEgMTcuOS00MCA0MC00MHoiXX0sQUFyPUdGZSxFQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1vbmUiLGljb246WzQ0OCw1MTIsWzk4NTZdLCJmNTI1IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxJQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jay1vcGVuIixpY29uOls1NzYsNTEyLFtdLCJmM2MxIiwiTTM4NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4UzMyMCAyNS4zIDMyMCA5NmwwIDY0LTE2MCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NGwtMzIgMCAwLTY0eiJdfSxQQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVwcGVyLWhvdCIsaWNvbjpbNTc2LDUxMixbMTI3Nzk4XSwiZjgxNiIsIk01NDUgNjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0NzguOSA2My4yQzQ1Mi4zIDQzLjYgNDE5LjUgMzIgMzg0IDMyIDM0OC45IDMyIDMxNi41IDQzLjMgMjkwLjEgNjIuNCAyNzQuMSA3NC4xIDI4NC4yIDk2IDMwNCA5NmwyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgMTkuOCAyMS45IDI5LjkgMzMuNiAxMy45IDE5LjEtMjYuNCAzMC40LTU4LjggMzAuNC05My45IDAtMzUuNS0xMS42LTY4LjMtMzEuMi05NC45TDU0NSA2NXpNMjcwIDEzNS41bC0xNTkuNiAyMjhDMTAxLjMgMzc2LjQgODYuNyAzODQgNzEgMzg0bC03IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjcuMSAwYzY1LjcgMCAxMjkuNy0yMC4yIDE4My41LTU3LjhMNDQwLjUgMzA2LjFDNDM1IDI5NS45IDQzMiAyODQuMiA0MzIgMjcybC01NiAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTU2Yy0xMi4yIDAtMjMuOS0zLTM0LTguNXoiXX0sWUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyb3BsZXQtc2xhc2giLGljb246WzU3Niw1MTIsWyJ0aW50LXNsYXNoIl0sImY1YzciLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NjMuNiAzOTcuOGMxMC41LTIzLjggMTYuNC01MC4xIDE2LjQtNzcuOCAwLTkxLjItMTMwLjItMjc0LjEtMTY2LjYtMzIzLjUtNS45LTgtMTUuMi0xMi41LTI1LjItMTIuNWwtLjQgMGMtMTAgMC0xOS4zIDQuNS0yNS4yIDEyLjUtMTUuNiAyMS4yLTQ4LjUgNjYuOS04MC45IDExOS40TDQxLTI0Ljl6bTkyIDIyNy43Yy0yMS42IDQzLjgtMzcgODUuOS0zNyAxMTcuMiAwIDEwNiA4NiAxOTIgMTkyIDE5MiA0My40IDAgODMuNC0xNC40IDExNS41LTM4LjZMMTMzIDIwMi44eiJdfSxOQXI9WUZlLEtGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcm9wbGV0IixpY29uOlszODQsNTEyLFsxMjgxNjcsInRpbnQiXSwiZjA0MyIsIk0xOTIgNTEyQzg2IDUxMiAwIDQyNiAwIDMyMCAwIDIyOC44IDEzMC4yIDQ1LjkgMTY2LjYtMy41IDE3Mi41LTExLjUgMTgxLjgtMTYgMTkxLjgtMTZsLjQgMGMxMCAwIDE5LjMgNC41IDI1LjIgMTIuNSAzNi40IDQ5LjQgMTY2LjYgMjMyLjMgMTY2LjYgMzIzLjUgMCAxMDYtODYgMTkyLTE5MiAxOTJ6TTExMiAzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA3NS4xIDYwLjkgMTM2IDEzNiAxMzYgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4eiJdfSxPQXI9S0ZlLE91ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWxpbmVzIixpY29uOlszODQsNTEyLFsxMjg0NDEsMTI4NDYyLDYxNjg2LCJmaWxlLWFsdCIsImZpbGUtdGV4dCJdLCJmMTVjIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xMjAgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LFJBcj1PdWUsRkFyPU91ZSxCQXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudHMtZG9sbGFyIixpY29uOls1NzYsNTEyLFtdLCJmNjUzIiwiTTE5MiAzMjBjMTA2IDAgMTkyLTc4LjggMTkyLTE3NlMyOTgtMzIgMTkyLTMyIDAgNDYuOCAwIDE0NGMwIDM5LjYgMTQuMyA3Ni4yIDM4LjQgMTA1LjZMMi44IDMxNi44Qy0yLjEgMzI2LjEtLjQgMzM3LjUgNyAzNDVzMTguOSA5LjIgMjguMiA0LjJMMTE2LjggMzA2YzIzLjEgOSA0OC41IDE0IDc1LjIgMTR6bTMuMiA0OGMxNi40IDgxLjkgOTQuNyAxNDQgMTg4LjggMTQ0IDI2LjcgMCA1Mi4xLTUgNzUuMi0xNGw4MS42IDQzLjJjOS4zIDQuOSAyMC43IDMuMiAyOC4yLTQuMnM5LjItMTguOSA0LjItMjguMmwtMzUuNi02Ny4yYzI0LjEtMjkuNCAzOC40LTY2IDM4LjQtMTA1LjYgMC04Mi40LTYxLjctMTUxLjUtMTQ1LTE3MC43LTExLjUgMTE1LjgtMTE1LjggMjAxLjItMjM1LjggMjAyLjd6TTE5NiAzMmMxMSAwIDIwIDkgMjAgMjBsMCA0IDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTQ3LjUgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgNi4xIDQuNCAxMS4zIDEwLjQgMTIuM2w0MS43IDdjMjUuMyA0LjIgNDMuOSAyNi4xIDQzLjkgNTEuOCAwIDI2LjEtMTkgNDcuNy00NCA1MS44bDAgNC43YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTQtMjQgMGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTUuNSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTYuMS00LjQtMTEuMy0xMC40LTEyLjNsLTQxLjctN2MtMjUuMy00LjItNDMuOS0yNi4xLTQzLjktNTEuOCAwLTI4LjggMjMuMi01Mi4yIDUyLTUyLjVsMC00YzAtMTEgOS0yMCAyMC0yMHoiXX0sWkZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtbG9jYXRpb24iLGljb246WzUxMiw1MTIsWyJzZWFyY2gtbG9jYXRpb24iXSwiZjY4OSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTI4OCAxNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCA0OC44IDQ2LjUgMTExLjYgNjguNiAxMzguNiA2IDcuMyAxNi44IDcuMyAyMi43IDAgMjIuMS0yNyA2OC42LTg5LjggNjguNi0xMzguNnptLTExMiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LEhBcj1aRmUsU3BlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW52b2ljZSIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek02NCAzODRsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTg4IDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0Uzc0LjcgNjQgODggNjR6bTAgOTZsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0scUFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbnRhZ29uIixpY29uOls1NzYsNTEyLFtdLCJlNzkwIiwiTTMxNi40LTMuMWMtMTYuOC0xMi4yLTM5LjYtMTIuMi01Ni40IDBMMzUuMyAxNjAuMmMtMTYuOCAxMi4yLTIzLjkgMzMuOS0xNy40IDUzLjdsODUuOCAyNjQuMWM2LjQgMTkuOCAyNC45IDMzLjIgNDUuNyAzMy4ybDI3Ny43IDBjMjAuOCAwIDM5LjItMTMuNCA0NS43LTMzLjJsODUuOC0yNjQuMWM2LjQtMTkuOC0uNi00MS40LTE3LjQtNTMuN0wzMTYuNC0zLjF6Il19LFZBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXB1YmxpY2FuIixpY29uOls2NDAsNTEyLFtdLCJmNzVlIiwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJsMjI0IDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBsMCA2NC01NDQgMCAwLTY0em0xNTItMzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptMjMyIDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNMjgwIDE2MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xMjggMjg4bDQxNiAwIDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBsMC00OC0zMiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjQtMTkyIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjAgMTI4IDB6Il19LFFGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0Il0sImY1NGYiLCJNMjEuNSAxODEuMUw3OC4zIDY3LjRDODkuMiA0NS43IDExMS4zIDMyIDEzNS42IDMybDMwNC45IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsNTYuOCAxMTMuN2MzLjYgNy4yIDUuNSAxNS4xIDUuNSAyMy4yIDAgMjcuMy0yMS4yIDQ5LjctNDggNTEuNkw1MTIgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTk2IDAgMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3Ni4xYy0yNi44LTEuOS00OC0yNC4zLTQ4LTUxLjYgMC04IDEuOS0xNiA1LjUtMjMuMnpNMTI4IDI1NmwwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyLTE2MCAweiJdfSxqQXI9UUZlLFJ1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxtIixpY29uOls0NDgsNTEyLFsxMjc5MDIsNjIzNjgsImZpbG0tYWx0IiwiZmlsbS1zaW1wbGUiXSwiZjAwOCIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNNDggMzY4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMwNC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek00OCAyNDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMzA0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTQ4IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek0zNTIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHoiXX0sVUFyPVJ1ZSxXQXI9UnVlLEdBcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU0ZDQiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDQ1NC42IDQwMHoiXX0sWUFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnRzIixpY29uOls1NzYsNTEyLFsxMjg0OTAsNjE2NzBdLCJmMDg2IiwiTTM4NCAxNDRjMCA5Ny4yLTg2IDE3Ni0xOTIgMTc2LTI2LjcgMC01Mi4xLTUtNzUuMi0xNEwzNS4yIDM0OS4yYy05LjMgNC45LTIwLjcgMy4yLTI4LjItNC4ycy05LjItMTguOS00LjItMjguMmwzNS42LTY3LjJDMTQuMyAyMjAuMiAwIDE4My42IDAgMTQ0IDAgNDYuOCA4Ni0zMiAxOTItMzJTMzg0IDQ2LjggMzg0IDE0NHptMCAzNjhjLTk0LjEgMC0xNzIuNC02Mi4xLTE4OC44LTE0NCAxMjAtMS41IDIyNC4zLTg2LjkgMjM1LjgtMjAyLjcgODMuMyAxOS4yIDE0NSA4OC4zIDE0NSAxNzAuNyAwIDM5LjYtMTQuMyA3Ni4yLTM4LjQgMTA1LjZsMzUuNiA2Ny4yYzQuOSA5LjMgMy4yIDIwLjctNC4yIDI4LjJzLTE4LjkgOS4yLTI4LjIgNC4yTDQ1OS4yIDQ5OGMtMjMuMSA5LTQ4LjUgMTQtNzUuMiAxNHoiXX0sS0FyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhZ3MiLGljb246WzU3Niw1MTIsW10sImYwMmMiLCJNNDAxLjIgMzkuMUw1NDkuNCAxODkuNGMyNy43IDI4LjEgMjcuNyA3My4xIDAgMTAxLjJMMzkzIDQ0OC45Yy05LjMgOS40LTI0LjUgOS41LTMzLjkgLjJzLTkuNS0yNC41LS4yLTMzLjlMNTE1LjMgMjU2LjhjOS4yLTkuMyA5LjItMjQuNCAwLTMzLjdMMzY3IDcyLjljLTkuMy05LjQtOS4yLTI0LjYgLjItMzMuOXMyNC42LTkuMiAzMy45IC4yek0zMi4xIDIyOS41TDMyLjEgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTMzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2wxNDQgMTQ0YzI1IDI1IDI1IDY1LjUgMCA5MC41TDI4NS40IDQxOC43Yy0yNSAyNS02NS41IDI1LTkwLjUgMGwtMTQ0LTE0NGMtMTItMTItMTguNy0yOC4zLTE4LjctNDUuM3ptMTQ0LTg1LjVhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sWkFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imd1biIsaWNvbjpbNTc2LDUxMixbXSwiZTE5YiIsIk01MjggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4LTQ0OCAwQzE0LjMgNjQgMCA3OC4zIDAgOTZMMCAyMDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTAgMGMyMC44IDAgMzYuMSAxOS42IDMxIDM5LjhMMzMgNDQwLjJjLTIuNCA5LjYtLjIgMTkuNyA1LjggMjcuNVM1NC4xIDQ4MCA2NCA0ODBsOTYgMGMxNC43IDAgMjcuNS0xMCAzMS0yNC4yTDIxNyAzNTIgMzIxLjQgMzUyYzIzLjcgMCA0NC44LTE0LjkgNTIuNy0zNy4ybDI2LjctNzQuOCAzMS4xIDBjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRsMjIuNi0yMi42IDY2LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOHpNMzIxLjQgMzA0bC05Mi41IDAgMTYtNjQgMTA1IDAtMjEgNTguN2MtMS4xIDMuMi00LjIgNS4zLTcuNSA1LjN6TTgwIDEyOGwzODQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw4MCAxNjBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6Il19LEpfPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbNjE1MzMsImNoZWNrLWNpcmNsZSJdLCJmMDU4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0zNzQgMTQ1LjdjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zTDIyMS4xIDMxNS4yIDE2OSAyNjMuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM1IDUgMTEuOCA3LjUgMTguOCA3czEzLjQtNC4xIDE3LjUtOS44TDM3OS4zIDE3OS4yYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41eiJdfSxRQXI9Sl8sWEFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjb3JwaW8iLGljb246WzY0MCw1MTIsW10sImU4NGUiLCJNMzY4IDMyYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEybDAgMjg5LjdjMCA3LjkgNi40IDE0LjMgMTQuMyAxNC4zIDMuOSAwIDcuNi0xLjYgMTAuMi00LjNsNDAuMS00MS4xLTkuNy05LjdjLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNTQyLjMgMzUyIDU1MiAzNTJsNjQgMCAyLjUgLjFjMTIuMSAxLjIgMjEuNSAxMS41IDIxLjUgMjMuOWwwIDY0LS4zIDMuNmMtMS4yIDguMi02LjcgMTUuMy0xNC41IDE4LjYtOSAzLjctMTkuMyAxLjYtMjYuMi01LjJsLTkuMS05LjEtMzkuNiA0MC42Yy0xNC43IDE1LjEtMzQuOSAyMy42LTU2IDIzLjYtNDMuMyAwLTc4LjMtMzUuMS03OC4zLTc4LjNMNDE2IDE0NGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMwNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDMwNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyMGMwLTE2LjYtMTIuNi0zMC4yLTI4LjctMzEuOGwtNi42LS4zQzQ0LjYgOTQuMiAzMiA4MC42IDMyIDY0IDMyIDQ2LjMgNDYuMyAzMiA2NCAzMiA5MSAzMiAxMTUuMyA0My4xIDEzMi43IDYxIDE1Mi42IDQzIDE3OSAzMiAyMDggMzIgMjM5LjMgMzIgMjY3LjcgNDQuOSAyODggNjUuNyAzMDguMyA0NC45IDMzNi42IDMyIDM2OCAzMnoiXX0sWEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImlkLWNhcmQtY2xpcCIsaWNvbjpbNTc2LDUxMixbImlkLWNhcmQtYWx0Il0sImY0N2YiLCJNMjU2LTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NC0xMjggMCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAzMmwxMTIgMCAwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzIgMTEyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyek0xNzYgNDAwYzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwek0yODggMjgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyeiJdfSxKQXI9WEZlLGVFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb29uIixpY29uOls1MTIsNTEyLFsxMjc3NjksOTIxNF0sImYxODYiLCJNMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyYzY4LjggMCAxMzEuMy0yNy4yIDE3Ny4zLTcxLjQgNy4zLTcgOS40LTE3LjkgNS4zLTI3LjFzLTEzLjctMTQuOS0yMy44LTE0LjFjLTQuOSAuNC05LjggLjYtMTQuOCAuNi0xMDEuNiAwLTE4NC04Mi40LTE4NC0xODQgMC03Mi4xIDQxLjUtMTM0LjYgMTAyLjEtMTY0LjggOS4xLTQuNSAxNC4zLTE0LjMgMTMuMS0yNC40UzMyMi42IDguNSAzMTIuNyA2LjNDMjk0LjQgMi4yIDI3NS40IDAgMjU2IDB6Il19LHRFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvaWwtd2VsbCIsaWNvbjpbNTc2LDUxMixbXSwiZTUzMiIsIk01MjguMyA2MS4zYy0xMS40LTQyLjctNTUuMy02OC05OC01Ni42TDQxNC45IDguOEMzOTcuOCAxMy40IDM4Ny43IDMxIDM5Mi4zIDQ4bDI0LjUgOTEuNC0xMDguMiAyOC4xLTYuMy0xOC4xQzI5Ny43IDEzNi42IDI4NS42IDEyOCAyNzIgMTI4cy0yNS43IDguNi0zMC4yIDIxLjRsLTEzLjYgMzktMTMyLjIgMzQuMyAwLTM4LjZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNjQtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTM3LjMgMC02MS40LTE3NS40LTYyLjIgMTYuMSAyMi4xIDYzLjItNjYuNiAwIDE5LjktNTYuOS03NC42IDE5LjMtNDYuNyAxMzMuNS00MS4zIDAgMC0xNTkuMiAzMzcuNC04Ny41IDI1LjIgOTRjNC42IDE3LjEgMjIuMSAyNy4yIDM5LjIgMjIuNmwxNS41LTQuMWM0Mi43LTExLjQgNjgtNTUuMyA1Ni42LTk4TDUyOC4zIDYxLjN6TTIwNS4xIDQ0OGwxNi44LTQ4IDEwMC4yIDAgMTYuOCA0OC0xMzMuOCAweiJdfSxKRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFjaG9ncmFwaC1kaWdpdGFsIixpY29uOls1NzYsNTEyLFsiZGlnaXRhbC10YWNob2dyYXBoIl0sImY1NjYiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptNjQgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTg4IDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCAzNTJ6bTI1NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHpNNDk2IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTg4IDMxMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTEwNC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem01NiAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHJFcj1KRmUsZUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldCIsaWNvbjpbNDQ4LDUxMixbInRhYmxldC1hbmRyb2lkIl0sImYzZmIiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTg0IDQwMGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxhRXI9ZUJlLEZfPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1YmxlLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzODEsInJvdWJsZSIsInJ1YiIsInJ1YmxlIl0sImYxNTgiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDIwOC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCA0OC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMTUyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE1MiAwIDAtNDggMTEyIDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTMzM1LjUgMzIgMjU2IDMyTDExMiAzMnpNMjU2IDI1NmwtMTEyIDAgMC0xNjAgMTEyIDBjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODB6Il19LGlFcj1GXyxzRXI9Rl8sbkVyPUZfLG9Fcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjIwYSIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0xNTIgODBsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODBjMC00LjQgMy42LTggOC04em0xNjggOGMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODB6Il19LGxFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4iLGljb246WzUxMiw1MTIsWzEyODM5NF0sImYzMDQiLCJNMzUyLjkgMjEuMkwzMDggNjYuMSA0NDUuOSAyMDQgNDkwLjggMTU5LjFDNTA0LjQgMTQ1LjYgNTEyIDEyNy4yIDUxMiAxMDhzLTcuNi0zNy42LTIxLjItNTEuMUw0NTUuMSAyMS4yQzQ0MS42IDcuNiA0MjMuMiAwIDQwNCAwcy0zNy42IDcuNi01MS4xIDIxLjJ6TTI3NC4xIDEwMEw1OC45IDMxNS4xYy0xMC43IDEwLjctMTguNSAyNC4xLTIyLjYgMzguN0wuOSA0ODEuNmMtMi4zIDguMyAwIDE3LjMgNi4yIDIzLjRzMTUuMSA4LjUgMjMuNCA2LjJsMTI3LjgtMzUuNWMxNC42LTQuMSAyNy45LTExLjggMzguNy0yMi42TDQxMiAyMzcuOSAyNzQuMSAxMDB6Il19LGNFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZSIsaWNvbjpbNTc2LDUxMixbXSwiZjA3MiIsIk01MjAgMjAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2bC0xMjcuMyAwLTE1OS4yIDE3My42Yy02LjEgNi42LTE0LjYgMTAuNC0yMy42IDEwLjRsLTQzLjcgMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsNTQuMy0xNjIuOS05OS43IDAtNTIuOCA2NmMtMyAzLjgtNy42IDYtMTIuNSA2bC0xOS44IDBjLTEwLjQgMC0xOC05LjgtMTUuNS0xOS45TDMyIDI1NiA1IDE0Ny45QzIuNCAxMzcuOCAxMC4xIDEyOCAyMC41IDEyOGwxOS44IDBjNC45IDAgOS41IDIuMiAxMi41IDZsNTIuOCA2NiA5OS43IDAtNTQuMy0xNjIuOUMxNDcuNiAyNi43IDE1NS4zIDE2IDE2Ni4yIDE2bDQzLjcgMGM5IDAgMTcuNSAzLjggMjMuNiAxMC40TDM5Mi43IDIwMCA1MjAgMjAweiJdfSxkRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW1hZ2VzIixpY29uOls1NzYsNTEyLFtdLCJmMzAyIiwiTTk2IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMOTYgOTZ6TTI0IDEyOGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDguOCA3LjIgMTYgMTYgMTZsMzYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMTY4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTk2LjUgMTEuNWMtNC40LTcuMS0xMi4xLTExLjUtMjAuNS0xMS41cy0xNi4xIDQuNC0yMC41IDExLjVsLTU2LjMgOTIuMS0yNC41LTMwLjZjLTQuNi01LjctMTEuNC05LTE4LjctOXMtMTQuMiAzLjMtMTguNyA5bC02NCA4MGMtNS44IDcuMi02LjkgMTcuMS0yLjkgMjUuNFMxNzQuOCAzNTIgMTg0IDM1MmwyNzIgMGM4LjcgMCAxNi43LTQuNyAyMC45LTEyLjNzNC4xLTE2LjgtLjUtMjQuM2wtODgtMTQ0eiJdfSx0QmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXNjcmVlbiIsaWNvbjpbMzg0LDUxMixbIm1vYmlsZS1hbmRyb2lkLWFsdCJdLCJmM2NmIiwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHpNMTI4IDQ0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzA0IDY0bC0yMjQgMCAwIDMwNCAyMjQgMCAwLTMwNHoiXX0sdUVyPXRCZSxwRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VhcmFuaS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTlhIiwiTTE5MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQxLjVDNzMuMyA3Ny4zIDAgMTU4LjEgMCAyNTZTNzMuMyA0MzQuNyAxNjggNDQ2LjVsMCA0MS41YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MS41Yzk0LjctMTEuOCAxNjgtOTIuNiAxNjgtMTkwLjUgMC0xNy43LTE0LjMtMzItMzItMzJsLTEzNiAwIDAtOTMuOGMyNS4zIDQuOCA0Ny45IDE3IDY1LjYgMzQuMyAxMi42IDEyLjQgMzIuOSAxMi4yIDQ1LjMtLjRzMTIuMi0zMi45LS41LTQ1LjNDMjk3LjIgOTAuMiAyNTguOCA3MC44IDIxNiA2NS41TDIxNiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTY4IDEzMC4ybDAgMjUxLjVDMTA4LjggMzcwLjUgNjQgMzE4LjUgNjQgMjU2czQ0LjgtMTE0LjUgMTA0LTEyNS44em00OCAyNTEuNWwwLTkzLjggMTAwIDBjLTEyLjMgNDcuNi01MS4yIDg0LjUtMTAwIDkzLjh6Il19LHJCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWctc2hvcHBpbmciLGljb246WzQ0OCw1MTIsWyJzaG9wcGluZy1iYWciXSwiZjI5MCIsIk0xNjAgODBjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDQ4LTEyOCAwIDAtNDh6bS00OCA0OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwIDAtNDhjMC02MS45LTUwLjEtMTEyLTExMi0xMTJTMTEyIDE4LjEgMTEyIDgwbDAgNDh6bTI0IDQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMTUyIDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LGZFcj1yQmUsYUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwem0zODcuMyAxMS4zbC0xMDQgMTA0Yy00LjYgNC42LTExLjUgNS45LTE3LjQgMy41UzI1NiAzNjYuNSAyNTYgMzYwbDAtNTYtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtNTZjMC02LjUgMy45LTEyLjMgOS45LTE0LjhzMTIuOS0xLjEgMTcuNCAzLjVsMTA0IDEwNGM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnoiXX0saEVyPWFCZSxpQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUtdm9sdW1lIixpY29uOls1NzYsNTEyLFsidm9sdW1lLWNvbnRyb2wtcGhvbmUiXSwiZjJhMCIsIk0zNDQtMzJjMTI4LjEgMCAyMzIgMTAzLjkgMjMyIDIzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODQtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0zMjAgODhjMC0xMy4zIDEwLjctMjQgMjQtMjQgNzUuMSAwIDEzNiA2MC45IDEzNiAxMzYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42LTM5LjQtODgtODgtODgtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTE0NC4xIDEuNGMxOS43LTUuNCA0MC4zIDQuNyA0OC4xIDIzLjVsNDAuNSA5Ny4zYzYuOSAxNi41IDIuMSAzNS42LTExLjggNDdsLTQ0LjEgMzYuMWMzMi41IDcxLjYgODkgMTMwIDE1OS4zIDE2NC45TDM3NC43IDMyM2MxMS4zLTEzLjkgMzAuNC0xOC42IDQ3LTExLjhMNTE5IDM1MS44YzE4LjggNy44IDI4LjkgMjguNCAyMy41IDQ4LjFsLTEuNSA1LjVDNTIzLjQgNDcwLjEgNDYwLjkgNTI1LjMgMzg0LjYgNTA5LjIgMjA5LjYgNDcyLjEgNzEuOSAzMzQuNCAzNC44IDE1OS40IDE4LjcgODMuMSA3My45IDIwLjYgMTM4LjUgMi45bDUuNS0xLjV6Il19LG1Fcj1pQmUsZ0VyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmVzIixpY29uOls1MTIsNTEyLFtdLCJmMWIzIiwiTTI4NC0xLjNjLTE3LjMtMTAtMzguNy0xMC01NiAwTDE0My44IDQ3LjNjLTE3LjMgMTAtMjggMjguNS0yOCA0OC41bDAgMTAxLjktODguMyA1MWMtMTcuMyAxMC0yOCAyOC41LTI4IDQ4LjVsMCA5Ny4zYzAgMjAgMTAuNyAzOC41IDI4IDQ4LjVsODQuMyA0OC42YzE3LjMgMTAgMzguNyAxMCA1NiAwbDg4LjMtNTEgODguMyA1MWMxNy4zIDEwIDM4LjcgMTAgNTYgMEw0ODQuNSA0NDNjMTcuMy0xMCAyOC0yOC41IDI4LTQ4LjVsMC05Ny4zYzAtMjAtMTAuNy0zOC41LTI4LTQ4LjVsLTg4LjMtNTEgMC0xMDEuOWMwLTIwLTEwLjctMzguNS0yOC00OC41TDI4NC0xLjN6TTIzMiAyOTIuNmwwIDEwNi41LTg4LjMgNTFjLTEuMiAuNy0yLjYgMS4xLTQgMS4xbDAtMTA1LjMgOTIuMy01My4zem0yMzEuNCAuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNGwwIDk3LjNjMCAyLjktMS41IDUuNS00IDYuOWwtODQuMyA0OC42Yy0xLjIgLjctMi42IDEuMS00IDEuMWwwLTEwNS4zIDkxLjItNTIuNnpNMzQ4LjMgOTUuOGwwIDEwMS45LTkyLjMgNTMuMyAwLTEwNi41IDkxLjItNTIuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNHoiXX0sYkVyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lIixpY29uOls1MTIsNTEyLFsxMjgyMjIsMTI4Mzc5XSwiZjA5NSIsIk0xNjAuMiAyNUMxNTIuMyA2LjEgMTMxLjctMy45IDExMi4xIDEuNGwtNS41IDEuNWMtNjQuNiAxNy42LTExOS44IDgwLjItMTAzLjcgMTU2LjQgMzcuMSAxNzUgMTc0LjggMzEyLjcgMzQ5LjggMzQ5LjggNzYuMyAxNi4yIDEzOC44LTM5LjEgMTU2LjQtMTAzLjdsMS41LTUuNWM1LjQtMTkuNy00LjctNDAuMy0yMy41LTQ4LjFsLTk3LjMtNDAuNWMtMTYuNS02LjktMzUuNi0yLjEtNDcgMTEuOGwtMzguNiA0Ny4yQzIzMy45IDMzNS40IDE3Ny4zIDI3NyAxNDQuOCAyMDUuM0wxODkgMTY5LjNjMTMuOS0xMS4zIDE4LjYtMzAuNCAxMS44LTQ3TDE2MC4yIDI1eiJdfSx4RXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9yaWktZ2F0ZSIsaWNvbjpbNDQ4LDUxMixbOTk2MV0sImY2YTEiLCJNMCA5NkwwIDI4LjVDMCAyMS42IDUuNiAxNiAxMi41IDE2IDE0LjggMTYgMTcgMTYuNiAxOSAxNy44TDU4IDQxLjJDODIuOSA1Ni4xIDExMS4zIDY0IDE0MC4zIDY0bDE2Ny40IDBjMjkgMCA1Ny41LTcuOSA4Mi4zLTIyLjhsMzktMjMuNGMxLjktMS4yIDQuMi0xLjggNi40LTEuOCA2LjkgMCAxMi41IDUuNiAxMi41IDEyLjVMNDQ4IDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgNjQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xOTIgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC02NEMyOC43IDE2MCAwIDEzMS4zIDAgOTZ6TTEyOCAyMjRsNjQgMCAwLTY0LTY0IDAgMCA2NHptMTI4IDBsNjQgMCAwLTY0LTY0IDAgMCA2NHoiXX0sdkVyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY29uIixpY29uOls1NzYsNTEyLFsxMjkzNjNdLCJmN2U1IiwiTTU1NyA5Ni43YzE0LjQgMTQuNCAxMi40IDM4LjQtNC4zIDUwLjJsLTY0LjYgNDUuN2MtNDMuNyAzMC45LTc5LjIgNzEuOS0xMDMuNCAxMTkuNmwtMjUuMyA0OS44Yy0yNS4xIDQ5LjMtNjIuMSA5MS41LTEwNy44IDEyMi42bC03NC4xIDUwLjZjLTEzLjEgOC45LTMwLjcgNy4zLTQxLjgtMy45bC00NC45LTQ0LjkgODYuNS02Ni41YzQyLjMtMzIuNSA3Ni43LTc0LjMgMTAwLjYtMTIybDI0LjUtNDkuMWMyNC41LTQ5IDYxLjgtOTAuNiAxMDcuOS0xMjAuMmwxMDguNy02OS45IDM4IDM4ek00ODQuMiAyMy45TDM4NC4zIDg4LjJjLTUzLjQgMzQuMy05Ni41IDgyLjQtMTI0LjkgMTM5LjFsLTI0LjUgNDkuMWMtMjAuNiA0MS4zLTUwLjMgNzcuMy04Ni45IDEwNS40bC05MS40IDcwLjMtMzYuOS0zNi45Yy0xNC40LTE0LjQtMTIuNC0zOC40IDQuMy01MC4ybDY0LjYtNDUuN2M0My43LTMwLjkgNzkuMi03MS45IDEwMy40LTExOS42bDI1LjMtNDkuOEMyNDIuMyAxMDAuOCAyNzkuMyA1OC42IDMyNSAyNy40bDc0LjEtNTAuNmMxMy4xLTguOSAzMC42LTcuMyA0MS44IDMuOWw0My4zIDQzLjN6Il19LHlFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZmFsbGluZy1idXJzdCIsaWNvbjpbNTc2LDUxMixbXSwiZTU0NyIsIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDUuNGMwIDU1LjItMjMuNyAxMDctNjMuOSAxNDMuMWw2Mi45IDc1LjUgODkgMGMxNS4xIDAgMjkuMyA3LjEgMzguNCAxOS4ybDQzLjIgNTcuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40TDM2OCAzMjAgMjYzLjIgMzIwIDM3Ni44IDQ1OS44YzExLjEgMTMuNyA5LjEgMzMuOS00LjcgNDVzLTMzLjkgOS4xLTQ1LTQuN0wxMzcuNCAyNjYuNmMtNi4xIDE1LTkuNCAzMS4zLTkuNCA0OGwwIDY5LjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OS40YzAtNjcuNCAzNS40LTEyOS45IDkzLjItMTY0LjZsNC42LTIuOEMyMDAuNCAxMjQgMjI0IDgyLjQgMjI0IDM3LjRsMC01LjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2IDg4QTU2IDU2IDAgMSAxIDEyOCA4OCA1NiA1NiAwIDEgMSAxNiA4OHptMzc2LTcuOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OHptMTA0IDE1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwem0tNTQuNS05Ny41Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAweiJdfSxzQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicXVvdGUtcmlnaHQiLGljb246WzQ0OCw1MTIsWzgyMjEsInF1b3RlLXJpZ2h0LWFsdCJdLCJmMTBlIiwiTTQ0OCAyOTZjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNnptLTI1NiAwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtOC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMzZ6Il19LHdFcj1zQmUsa0VyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTUxNCIsIk00ODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI2Ny41IDU5LjFMNDAwIDE4Ni45IDQwMCA1MDMuNGMtOS40IDUuNC0yMC4zIDguNi0zMiA4LjZsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE0NC0xOS45IDBDMTIuNiAzMDQgMCAyOTEuNCAwIDI3NS45IDAgMjY4LjMgMy4xIDI2MSA4LjYgMjU1LjdMMjEyLjUgNTkuMUMyMTkuOSA1MiAyMjkuNyA0OCAyNDAgNDhzMjAuMSA0IDI3LjUgMTEuMXpNMjA0LjggMjU2LjhsMCA0NC00NCAwYy05LjcgMC0xNy42IDcuOS0xNy42IDE3LjZsMCAzNS4yYzAgOS43IDcuOSAxNy42IDE3LjYgMTcuNmw0NCAwIDAgNDRjMCA5LjcgNy45IDE3LjYgMTcuNiAxNy42bDM1LjIgMGM5LjcgMCAxNy42LTcuOSAxNy42LTE3LjZsMC00NCA0NCAwYzkuNyAwIDE3LjYtNy45IDE3LjYtMTcuNmwwLTM1LjJjMC05LjctNy45LTE3LjYtMTcuNi0xNy42bC00NCAwIDAtNDRjMC05LjctNy45LTE3LjYtMTcuNi0xNy42bC0zNS4yIDBjLTkuNyAwLTE3LjYgNy45LTE3LjYgMTcuNnoiXX0sU0VyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InByZXNjcmlwdGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjViMSIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMkwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNTAuNyAwIDEyOCAxMjgtMTA1LjQgMTA1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjg4IDM5Ny4zIDM5My40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMzMzLjMgMzUyIDQzOC42IDI0Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI4OCAzMDYuNyAyMDIuMiAyMjAuOUMyNTEuNCAyMDkuMSAyODggMTY0LjggMjg4IDExMiAyODggNTAuMSAyMzcuOSAwIDE3NiAwTDMyIDB6TTE3NiAxNjBsLTExMiAwIDAtOTYgMTEyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDh6Il19LE1Fcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXRocmVlIixpY29uOls0NDgsNTEyLFs5ODU4XSwiZjUyNyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjggNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxDRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNiIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjdsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNzYgMzg0bDAgODAgODAgMCAwLTY0LjFjMC0xMy43IDEuOS0yNyA1LjUtMzkuNi01LjctNS4yLTEzLjItOC4zLTIxLjUtOC4zbC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzA3IDIyNC4zYy0xLS4yLTItLjMtMy0uM2wtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2LjcgMGMyLjEtMjIuOCA4LjQtNDQuMyAxOC4zLTYzLjd6TTE0NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTQ0IDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0zNTIgODAuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LG5CZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0NywiZHJpdmVycy1saWNlbnNlIl0sImYyYzIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NEwwIDk2em0wIDQ4bDU3NiAwIDAgMjcyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNDR6TTI0Ny4zIDQxNmMyMC4yIDAgMzUuMy0xOS40IDIyLjQtMzUtMTQuNy0xNy43LTM2LjktMjktNjEuNy0yOWwtNjQgMGMtMjQuOCAwLTQ3IDExLjMtNjEuNyAyOS0xMi45IDE1LjYgMi4yIDM1IDIyLjQgMzVsMTQyLjUgMHpNMTc2IDMxMmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMzYwIDIwOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAweiJdfSx6RXI9bkJlLG9CZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGxheSIsaWNvbjpbNTEyLDUxMixbNjE0NjksInBsYXktY2lyY2xlIl0sImYxNDQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTg4LjMgMTQ3LjFjLTcuNiA0LjItMTIuMyAxMi4zLTEyLjMgMjAuOWwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OGMtNy40LTQuNS0xNi43LTQuNy0yNC4zLS41eiJdfSxfRXI9b0JlLGxCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxMywibGF1Z2gtYmVhbSJdLCJmNTlhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNzYgMTY0Yy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sVEVyPWxCZSxMRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVhZiIsaWNvbjpbNTEyLDUxMixbXSwiZjA2YyIsIk00NzEuMyA2LjdDNDc3LjcgLjYgNDg3LTEuNiA0OTUuNiAxLjIgNTA1LjQgNC41IDUxMiAxMy43IDUxMiAyNGwwIDE4Ni45YzAgMTMxLjItMTA4LjEgMjM3LjEtMjM4LjggMjM3LjEtNzcgMC0xNDMuNC00OS41LTE2Ny41LTExOC43LTM1LjQgMzAuOC01Ny43IDc2LjEtNTcuNyAxMjYuNyAwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDQ2OS4zIDAgNDU2QzAgMzgxLjEgMzguMiAzMTUuMSA5Ni4xIDI3Ni4zIDEzMS40IDI1Mi43IDE3My41IDI0MCAyMTYgMjQwbDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTM5LjcgMC03Ny4zIDguOC0xMTEgMjQuNSAyMy4zLTcwIDg5LjItMTIwLjUgMTY3LTEyMC41IDY2LjQgMCAxMTUuOC0yMi4xIDE0OC43LTQ0IDE5LjItMTIuOCAzNS41LTI4LjEgNTAuNy00NS4zeiJdfSxERXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS11c2VyIixpY29uOls1MTIsNTEyLFtdLCJlMDY1IiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0zMTIgMjU2YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNMTQ0IDQzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHoiXX0sRnVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdGF0ZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbInJlZG8tYWx0Iiwicm90YXRlLWZvcndhcmQiXSwiZjJmOSIsIk00ODggMTkybC0xNDQgMGMtOS43IDAtMTguNS01LjgtMjIuMi0xNC44cy0xLjctMTkuMyA1LjItMjYuMmw0Ni43LTQ2LjdjLTc1LjMtNTguNi0xODQuMy01My4zLTI1My41IDE1LjktNzUgNzUtNzUgMTk2LjUgMCAyNzEuNXMxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTQuMy05NC4zIDI0My43LTk5LjYgMzQ0LjMtMTYuMkw0NzEgN2M2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzUxMiAxNC4zIDUxMiAyNGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHoiXX0sJEVyPUZ1ZSxBRXI9RnVlLEVFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b290aCIsaWNvbjpbNDQ4LDUxMixbMTI5NDYzXSwiZjVjOSIsIk0xNDUgNS43TDIyNCAzMiAzMDMgNS43QzMxNC4zIDEuOSAzMjYgMCAzMzcuOSAwIDM5OC43IDAgNDQ4IDQ5LjMgNDQ4IDExMC4xbDAgNjguNWMwIDI5LjQtOS41IDU4LjEtMjcuMiA4MS42bC0xLjEgMS41Yy0xMi45IDE3LjItMjEuMyAzNy40LTI0LjMgNTguN0wzNzMuNyA0NzEuOWMtMy4zIDIzLTIzIDQwLjEtNDYuMiA0MC4xLTIyLjggMC00Mi4zLTE2LjUtNDYtMzlMMjYxLjMgMzUxLjZjLTMtMTguMi0xOC44LTMxLjYtMzcuMy0zMS42cy0zNC4yIDEzLjQtMzcuMyAzMS42TDE2Ni41IDQ3M2MtMy44IDIyLjUtMjMuMiAzOS00NiAzOS0yMy4yIDAtNDIuOS0xNy4xLTQ2LjItNDAuMUw1Mi42IDMyMC41Yy0zLTIxLjMtMTEuNC00MS41LTI0LjMtNTguN2wtMS4xLTEuNUM5LjUgMjM2LjcgMCAyMDguMSAwIDE3OC43bDAtNjguNUMwIDQ5LjMgNDkuMyAwIDExMC4xIDAgMTIyIDAgMTMzLjcgMS45IDE0NSA1Ljd6Il19LElFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LXdpbmRvdyIsaWNvbjpbNTEyLDUxMixbXSwiZTAwZCIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjE2IDIyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LFBFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3RvcmN5Y2xlIixpY29uOls2NDAsNTEyLFsxMjc5NDldLCJmMjFjIiwiTTI4MCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1Ni42IDAgMjIuNSA0OC43LTk1LjEgNzEuM2MtMzMuNC0yNS4xLTc1LTQwLTEyMC00MGwtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwYzc4LjUgMCAxNDMuMiA1OS42IDE1MS4yIDEzNmwtMjUuNCAwYy0xMS4yLTU5LjItNjMuMy0xMDQtMTI1LjgtMTA0LTcwLjcgMC0xMjggNTcuMy0xMjggMTI4UzczLjMgNDgwIDE0NCA0ODBjNjIuNSAwIDExNC41LTQ0LjggMTI1LjgtMTA0bDUwLjIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTIyLjVjMC00NS4xIDI1LjctODUuNCA2NS41LTEwNy43bDEyLjEgMjYuMWMtMzIuNCAyMy4yLTUzLjUgNjEuMi01My41IDEwNC4xIDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjgtNTcuMy0xMjgtMTI4LTEyOGMtMTAuNyAwLTIxIDEuMy0zMC45IDMuOEw0MzMuOCAxNjAgNDg4IDE2MGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC01My4zIDBjLTYuOSAwLTEzLjcgMi4yLTE5LjIgNi40bC0xNy4xIDEyLjgtMjQuNi01My4zQzM2OS45IDIxLjQgMzYxLjQgMTYgMzUyIDE2bC03MiAwek00NDUuOCAzMDAuNGwyOC40IDYxLjZjNS42IDEyIDE5LjggMTcuMyAzMS44IDExLjdzMTcuMy0xOS44IDExLjctMzEuOGwtMjguNS02MS42YzIuMi0uMiA0LjQtLjMgNi43LS4zIDM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcyLTcyLTMyLjItNzItNzJjMC0yMC4yIDguMy0zOC41IDIxLjgtNTEuNnpNMTQ0IDQyNGMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmMzMS4zIDAgNTggMjAgNjcuOSA0OEwxNDQgMzI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjkgMGMtOS45IDI4LTM2LjYgNDgtNjcuOSA0OHoiXX0sY0JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkLWZhc3QiLGljb246WzUxMiw1MTIsWzkxOTgsImZhc3QtYmFja3dhcmQiXSwiZjA0OSIsIk00OTIuMiA0NzcuNmMtMTIgNS0yNS43IDIuMi0zNC45LTYuOUwyODggMzAxLjMgMjg4IDQ0OGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOUw2NCAzMDEuMyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyUzY0IDQ2LjMgNjQgNjRMNjQgMjEwLjcgMjMzLjQgNDEuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMyODggNTEuMSAyODggNjRsMCAxNDYuNyAxNjkuNC0xNjkuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVM1MTIgNTEuMSA1MTIgNjRsMCAzODRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnoiXX0sTkVyPWNCZSxkQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWRkcmVzcy1ib29rIixpY29uOls1MTIsNTEyLFs2MjEzOCwiY29udGFjdC1ib29rIl0sImYyYjkiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwek0yMDggMjg4bDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek01MTIgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6bTAgMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0ek00OTYgMzIwYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxPRXI9ZEJlLFJFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWlsYm9hdCIsaWNvbjpbNTEyLDUxMixbXSwiZTQ0NSIsIk0yNDAgMzUuOWwwIDM0OC4xLTIyNCAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMjg4IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTIgMC04LjgtNy4yLTE2LTE2LTE2bC0yMDggMCAwLTQ4IDE2MS43IDBjMTIuOSAwIDIwLjUtMTQuNCAxMy4yLTI1TDI2OS4yIDI2LjljLTguOS0xMy0yOS4yLTYuNy0yOS4yIDl6TTE5MiAzMjBsMC0xODQuMmMwLTE2LjEtMjEtMjIuMS0yOS42LTguNUw0Ny4zIDMxMS41Yy02LjcgMTAuNyAxIDI0LjUgMTMuNiAyNC41TDE3NiAzMzZjOC44IDAgMTYtNy4yIDE2LTE2eiJdfSxGRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1ib29rbWFyayIsaWNvbjpbNDQ4LDUxMixbXSwiZTBiYiIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDE2OS40YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42LTYgMC0xMS44LTIuNC0xNi02LjZMMjcyIDE0NCAyMzAuNiAxODUuNGMtNC4yIDQuMi0xMCA2LjYtMTYgNi42LTEyLjUgMC0yMi42LTEwLjEtMjIuNi0yMi42TDE5MiAwIDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxCRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1hcnJvdy1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyMSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTMwNSAyMjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSx1QmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI3ODk3LCJtaWNyb3Bob25lLWFsdCJdLCJmM2M5IiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTYgNTAuMyAwIDkxLjYgMzguNyA5NS43IDg4TDIzMiA4OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwIDAgNDgtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NS43IDBjLTQuMSA0OS4zLTQ1LjMgODgtOTUuNyA4OC01MyAwLTk2LTQzLTk2LTk2TDk2IDk2ek0yNCAxNjBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0bDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgOTcuOS03My4zIDE3OC43LTE2OCAxOTAuNWwwIDQ5LjUgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQ5LjVDNzMuMyA0MDIuNyAwIDMyMS45IDAgMjI0bDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LEhFcj11QmUscEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcGx5LWFsbCIsaWNvbjpbNTc2LDUxMixbIm1haWwtcmVwbHktYWxsIl0sImYxMjIiLCJNMzMyLjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCA0OCAwYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTEzLjMtODEuNSAxNjMuOS0xMDAuMiAxNzQuMS0yLjUgMS40LTUuMyAxLjktOC4xIDEuOS0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43IDAtNy41IDQuMy0xNC40IDkuOC0xOS41IDkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuNyAwLTUzLTQzLTk2LTk2LTk2bC0zMiAwIDAgODBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02Ljl6TTIwNS42IDIzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNTQuNiAyMDggMjA1LjYgMzU4LjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxMCAyMzEuMmMtNi40LTYtMTAtMTQuNC0xMC0yMy4yczMuNi0xNy4yIDEwLTIzLjJMMTcxLjYgMjMuMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0scUVyPXBCZSxWRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW5pdmVyc2FsLWFjY2VzcyIsaWNvbjpbNTEyLDUxMixbXSwiZjI5YSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNjEuNS04Ni4xYy0xMi4yLTUuMi0yNi4zIC40LTMxLjUgMTIuNnMuNCAyNi4zIDEyLjYgMzEuNWwxMS45IDUuMWMxNy4zIDcuNCAzNS4yIDEyLjkgNTMuNiAxNi4zbDAgNTAuMWMwIDQuMy0uNyA4LjYtMi4xIDEyLjZsLTI4LjcgODYuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyNC40LTczLjJjMS4zLTMuOCA0LjgtNi40IDguOC02LjRzNy42IDIuNiA4LjggNi40bDI0LjQgNzMuMmM0LjIgMTIuNiAxNy44IDE5LjQgMzAuNCAxNS4yUzMzOSAzOTcgMzM0LjggMzg0LjRsLTI4LjctODYuMWMtMS40LTQuMS0yLjEtOC4zLTIuMS0xMi42bDAtNTAuMWMxOC40LTMuNSAzNi4zLTguOSA1My42LTE2LjNsMTEuOS01LjFjMTIuMi01LjIgMTcuOC0xOS4zIDEyLjYtMzEuNXMtMTkuMy0xNy44LTMxLjUtMTIuNkwzMzguNyAxNzVjLTI2LjEgMTEuMi01NC4yIDE3LTgyLjcgMTdzLTU2LjUtNS44LTgyLjctMTdsLTExLjktNS4xek0yNTYgMTYwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sQnVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wYXBlciIsaWNvbjpbNTEyLDUxMixbMTI5NTMxLDYzMjYzLCJ0b2lsZXQtcGFwZXItYWx0IiwidG9pbGV0LXBhcGVyLWJsYW5rIl0sImY3MWUiLCJNMzI3LjEgMzJjLTguOCAxMS4xLTE2IDIzLjEtMjEuOSAzNC44LTIxLjQgNDIuNy0zMy4yIDk4LjQtMzMuMiAxNTcuMmwwIDI2NGMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA1NDRjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgMjI0QzAgMTE4IDQzIDMyIDk2IDMybDIzMS4xIDB6TTQxNiA0MTZjLTUzIDAtOTYtODYtOTYtMTkyczQzLTE5MiA5Ni0xOTIgOTYgODYgOTYgMTkyLTQzIDE5Mi05NiAxOTJ6bTAtMTI4YzE3LjcgMCAzMi0yOC43IDMyLTY0cy0xNC4zLTY0LTMyLTY0LTMyIDI4LjctMzIgNjQgMTQuMyA2NCAzMiA2NHoiXX0sakVyPUJ1ZSxVRXI9QnVlLFdFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ci1jYXJkYm9hcmQiLGljb246WzU3Niw1MTIsW10sImY3MjkiLCJNNTEyIDk2TDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxMTcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43bDMzLjktMzMuOWM3LjItNy4yIDE3LjEtMTEuMyAyNy4zLTExLjNzMjAuMSA0LjEgMjcuMyAxMS4zbDMzLjkgMzMuOWMxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43TDUxMiA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTgwIDI0MGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTM1Mi02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sR0VyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpenphLXNsaWNlIixpY29uOls1MTIsNTEyLFtdLCJmODE4IiwiTTE2OS43IC45Yy0yMi44LTEuNi00MS45IDE0LTQ3LjUgMzQuN0wxMTIuNSA3MkMyOTMuMyA3Mi4zIDQzOS43IDIxOC43IDQ0MCAzOTkuNWwzNi40LTkuN2MyMC44LTUuNSAzNi4zLTI0LjcgMzQuNy00Ny41LTEyLjYtMTgyLjgtMTU4LjYtMzI4LjgtMzQxLjQtMzQxLjR6bTIyMiA0MTEuNWMuMi00LjEgLjMtOC4yIC4zLTEyLjQgMC0xNTQuNi0xMjUuNC0yODAtMjgwLTI4MC00LjEgMC04LjMgLjEtMTIuNCAuM0wuNSA0OTEuOWMtMS41IDUuNSAuMSAxMS40IDQuMSAxNS40czkuOSA1LjYgMTUuNCA0LjFsMzcxLjYtOTkuMXpNMTc2IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDEyOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAzODRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sWUVyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwcmF5LWNhbiIsaWNvbjpbNTc2LDUxMixbXSwiZjViZCIsIk0xOTIgMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtMTI4IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMjU2YzAtNTMgNDMtOTYgOTYtOTZsMTI4IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIwOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjI0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjA4em0yNDAgODBhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek0zMjAgNjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ4IDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek01MTIgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTQ0OCAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxmQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLWxvdyIsaWNvbjpbNDQ4LDUxMixbMTI4MjY0LCJ2b2x1bWUtZG93biJdLCJmMDI3IiwiTTQ4IDM1Mmw0OCAwIDEzNC4xIDExOS4yYzYuNCA1LjcgMTQuNiA4LjggMjMuMSA4LjggMTkuMiAwIDM0LjgtMTUuNiAzNC44LTM0LjhsMC0zNzguNGMwLTE5LjItMTUuNi0zNC44LTM0LjgtMzQuOC04LjUgMC0xNi43IDMuMS0yMy4xIDguOEw5NiAxNjAgNDggMTYwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4ek0zODAuNiAxODEuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzM2MS4xIDIyNy42IDM2OCAyNDEgMzY4IDI1NnMtNi45IDI4LjQtMTcuNyAzNy4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzQwMi4xIDMxMi45IDQxNiAyODYuMSA0MTYgMjU2cy0xMy45LTU2LjktMzUuNS03NC41eiJdfSxLRXI9ZkJlLFpFcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9zcyIsaWNvbjpbMzg0LDUxMixbMTI4MzI3LDEwMDEzXSwiZjY1NCIsIk0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MC04MCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDgwIDAgMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIwOCA4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgwIDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OEwxNzYgMHoiXX0saEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbiIsaWNvbjpbMzg0LDUxMixbMTI5NDg1LCJtYWxlIl0sImYxODMiLCJNMjQ4IDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdsNDYuMyA2Mi40YzEwLjUgMTQuMiAzMC42IDE3LjIgNDQuOCA2LjZzMTcuMi0zMC42IDYuNi00NC44bC03MC41LTk1QzI3NCAxMzIgMjM0LjMgMTEyIDE5MiAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxMTIgMjM2LjcgMTEyIDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zeiJdfSxRRXI9aEJlLG1CZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTFjMCA0Mi40LTE2LjkgODMuMS00Ni45IDExMy4xbC02Ny45IDY3LjkgNjcuOSA2Ny45YzMwIDMwIDQ2LjkgNzAuNyA0Ni45IDExMy4xbDAgMTFjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtMTFjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xbDY3LjktNjcuOS02Ny45LTY3LjlDNDguOSAxNTguMSAzMiAxMTcuNCAzMiA3NWwwLTExQzE0LjMgNjQgMCA0OS43IDAgMzJ6TTk2IDY0bDAgMTFjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlsNjcuOSA2Ny45IDY3LjktNjcuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45bDAtMTEtMTkyIDB6bTAgMzg0bDE5MiAwIDAtMTFjMC0yNS41LTEwLjEtNDkuOS0yOC4xLTY3LjlsLTY3LjktNjcuOS02Ny45IDY3LjljLTE4IDE4LTI4LjEgNDIuNC0yOC4xIDY3LjlsMCAxMXoiXX0sWEVyPW1CZSxKRXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlzaCIsaWNvbjpbNTc2LDUxMixbMTI4MDMxXSwiZjU3OCIsIk0xODAuNSAxNDEuNUMyMTkuNyAxMDguNSAyNzIuNiA4MCAzMzYgODBzMTE2LjMgMjguNSAxNTUuNSA2MS41YzM5LjEgMzMgNjYuOSA3Mi40IDgxIDk5LjggNC43IDkuMiA0LjcgMjAuMSAwIDI5LjMtMTQuMSAyNy40LTQxLjkgNjYuOC04MSA5OS44LTM5LjIgMzMuMS05MiA2MS41LTE1NS41IDYxLjVzLTExNi4zLTI4LjUtMTU1LjUtNjEuNWMtMTYuMi0xMy43LTMwLjUtMjguNS00Mi43LTQzLjFMNDguMSAzNzkuNmMtMTIuNSA3LjMtMjguNCA1LjMtMzguNy00LjlzLTEyLjQtMjYtNS4zLTM4LjZMNTAgMjU2IDQuMiAxNzUuOWMtNy4yLTEyLjYtNS0yOC40IDUuMy0zOC42czI2LjEtMTIuMiAzOC43LTQuOWw4OS43IDUyLjNjMTIuMi0xNC42IDI2LjUtMjkuNCA0Mi43LTQzLjF6TTQ0OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sZUlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRydW1zdGljay1iaXRlIixpY29uOls1MTIsNTEyLFtdLCJmNmQ3IiwiTTE2MCAyNjUuMmMwIDguNS0zLjQgMTYuNi05LjQgMjIuNmwtMjYuOCAyNi44Yy0xMi4zIDEyLjMtMzIuNSAxMS40LTQ5LjQgNy4yLTQuNi0xLjEtOS41LTEuOC0xNC41LTEuOC0zMy4xIDAtNjAgMjYuOS02MCA2MHMyNi45IDYwIDYwIDYwYzYuMyAwIDEyIDUuNyAxMiAxMiAwIDMzLjEgMjYuOSA2MCA2MCA2MHM2MC0yNi45IDYwLTYwYzAtNS0uNi05LjgtMS44LTE0LjUtNC4yLTE2LjktNS4yLTM3LjEgNy4yLTQ5LjRsMjYuOC0yNi44YzYtNiAxNC4xLTkuNCAyMi42LTkuNGw4OS4yIDBjNi4zIDAgMTIuNC0uMyAxOC41LTEgMTEuOS0xLjIgMTYuNC0xNS41IDEwLjgtMjYtOC41LTE1LjgtMTMuMy0zMy44LTEzLjMtNTMgMC02MS45IDUwLjEtMTEyIDExMi0xMTIgOCAwIDE1LjcgLjggMjMuMiAyLjQgMTEuNyAyLjUgMjQuMS01LjkgMjItMTcuNi0xNC43LTgyLjMtODYuNy0xNDQuOC0xNzMuMi0xNDQuOC05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NmwwIDg5LjJ6Il19LHRJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1zaW1wbGUiLGljb246WzUxMiw1MTIsW10sImU0NzMiLCJNMTkyIDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyek0wIDI3MmMwLTI2LjUgMjEuNS00OCA0OC00OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDI3MnpNNDMyIDk2bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSxySXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXRvbSIsaWNvbjpbNDQ4LDUxMixbOTg4M10sImY1ZDIiLCJNMjI0IDM5OC44Yy0xMS44IDUuMS0yMy40IDkuNy0zNC45IDEzLjUgMTYuNyAzMy44IDMxIDM1LjcgMzQuOSAzNS43czE4LjEtMS45IDM0LjktMzUuN2MtMTEuNC0zLjktMjMuMS04LjQtMzQuOS0xMy41ek00MTQgMjU2YzMzIDQ1LjIgNDQuMyA5MC45IDIzLjYgMTI4LTIwLjIgMzYuMy02Mi41IDQ5LjMtMTE1LjIgNDMuMi0yMiA1Mi4xLTU1LjcgODQuOC05OC40IDg0LjhzLTc2LjQtMzIuNy05OC40LTg0LjhDNzIuOSA0MzMuMyAzMC42IDQyMC4zIDEwLjQgMzg0LTEwLjMgMzQ2LjkgMSAzMDEuMiAzNCAyNTYgMSAyMTAuOC0xMC4zIDE2NS4xIDEwLjQgMTI4IDMwLjYgOTEuNyA3Mi45IDc4LjcgMTI1LjYgODQuOCAxNDcuNiAzMi43IDE4MS4yIDAgMjI0IDBzNzYuNCAzMi43IDk4LjQgODQuOGM1Mi43LTYuMSA5NSA2LjggMTE1LjIgNDMuMiAyMC43IDM3LjEgOS40IDgyLjgtMjMuNiAxMjh6bS02NS44IDY3LjRjLTEuNyAxNC4yLTMuOSAyOC02LjcgNDEuMiAzMS44IDEuNCAzOC42LTguNyA0MC4yLTExLjcgMi4zLTQuMiA3LTE3LjktMTEuOS00OC4xLTYuOCA2LjMtMTQgMTIuNS0yMS42IDE4LjZ6bS02LjctMTc1LjljMi44IDEzLjEgNSAyNi45IDYuNyA0MS4yIDcuNiA2LjEgMTQuOCAxMi4zIDIxLjYgMTguNiAxOC45LTMwLjIgMTQuMi00NCAxMS45LTQ4LjEtMS42LTIuOS04LjQtMTMtNDAuMi0xMS43ek0yNTguOSA5OS43QzI0Mi4xIDY1LjkgMjI3LjkgNjQgMjI0IDY0cy0xOC4xIDEuOS0zNC45IDM1LjdjMTEuNCAzLjkgMjMuMSA4LjQgMzQuOSAxMy41IDExLjgtNS4xIDIzLjQtOS43IDM0LjktMTMuNXptLTE1OSA4OC45YzEuNy0xNC4zIDMuOS0yOCA2LjctNDEuMi0zMS44LTEuNC0zOC42IDguNy00MC4yIDExLjctMi4zIDQuMi03IDE3LjkgMTEuOSA0OC4xIDYuOC02LjMgMTQtMTIuNSAyMS42LTE4LjZ6TTc4LjIgMzA0LjhjLTE4LjkgMzAuMi0xNC4yIDQ0LTExLjkgNDguMSAxLjYgMi45IDguNCAxMyA0MC4yIDExLjctMi44LTEzLjEtNS0yNi45LTYuNy00MS4yLTcuNi02LjEtMTQuOC0xMi4zLTIxLjYtMTguNnpNMzA0IDI1NmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6bS04MC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGFJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwIixpY29uOlszMjAsNTEyLFsxMTJdLCI1MCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwUzI0OC40IDM1MiAxNjAgMzUybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyODhsOTYgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmwtOTYgMCAwIDE5MnoiXX0saUlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImpldC1maWdodGVyLXVwIixpY29uOls1MTIsNTEyLFtdLCJlNTE4IiwiTTIwNi44IDQ3LjhDMjAyLjMgNTguNSAyMDAgNzAgMjAwIDgxLjZsMCAxMDAuNC0xNTIgMTE0IDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAyMzQuNyAwIDI0OEwwIDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAxNTIgMCAwIDU0LjQtNjYgNTIuOGMtMy44IDMtNiA3LjYtNiAxMi41bDAgMjQuM2MwIDguOCA3LjIgMTYgMTYgMTZsODggMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCA4OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0LjNjMC00LjktMi4yLTkuNS02LTEyLjVsLTY2LTUyLjggMC01NC40IDE1MiAwIDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTQ0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDgtMTUyLTExNCAwLTEwMC40YzAtMTEuNi0yLjMtMjMuMS02LjgtMzMuOGwtMjcuMS02NUMyNzQuNC0yNi4yIDI2NS43LTMyIDI1Ni0zMnMtMTguNCA1LjgtMjIuMiAxNC44bC0yNy4xIDY1eiJdfSxzSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NjAiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN3oiXX0sbklyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoZWV0LXBsYXN0aWMiLGljb246WzM4NCw1MTIsW10sImU1NzEiLCJNMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ5LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0wzNjUuMyAzODYuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OHptMjA4IDUuNWwwLTkzLjVjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTMuNSAwLTExNy41IDExNy41ek0xNTMgMTA1bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6bTk2IDMyTDEzNyAyNDljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjE1IDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6Il19LG9Jcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2IixpY29uOlszODQsNTEyLFsxMThdLCI1NiIsIk0xOS43IDM0LjVjMTYuMy02LjggMzUgLjkgNDEuOCAxNy4yTDE5MiAzNjQuOCAzMjIuNSA1MS43YzYuOC0xNi4zIDI1LjUtMjQgNDEuOC0xNy4yczI0IDI1LjUgMTcuMiA0MS44bC0xNjAgMzg0Yy01IDExLjktMTYuNiAxOS43LTI5LjUgMTkuN3MtMjQuNi03LjgtMjkuNS0xOS43TDIuNSA3Ni4zYy02LjgtMTYuMyAuOS0zNSAxNy4yLTQxLjh6Il19LGdCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0IixpY29uOls1MTIsNTEyLFsibGlzdC1zcXVhcmVzIl0sImYwM2EiLCJNNDAgNDhDMjYuNyA0OCAxNiA1OC43IDE2IDcybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0TDQwIDQ4ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNMTYgMjMybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNNDAgMzY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sbElyPWdCZSxjSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGlzY2VzIixpY29uOls0NDgsNTEyLFtdLCJlODRjIiwiTTQwLjQgMTAuNGMxMS45LTEzIDMyLjItMTMuOSA0NS4yLTIgMi45IDIuNyAyOC4zIDI2LjcgNTMuNiA2Ny44IDIyLjMgMzYuMiA0NSA4Ni42IDUxLjEgMTQ3LjhsNjcuMyAwYzYuMS02MS4xIDI4LjgtMTExLjYgNTEuMS0xNDcuOCAyNS4zLTQxLjEgNTAuNy02NS4xIDUzLjYtNjcuOCAxMy0xMS45IDMzLjMtMTEuMSA0NS4yIDIgMTEuOSAxMyAxMSAzMy4zLTIgNDUuMi0xLjQgMS4zLTIyIDIxLjEtNDIuNCA1NC4yLTE3LjkgMjkuMS0zNS40IDY4LTQxLjIgMTE0LjJsOTQgMCAzLjMgLjJjMTYuMSAxLjYgMjguNyAxNS4zIDI4LjcgMzEuOHMtMTIuNiAzMC4yLTI4LjcgMzEuOGwtMy4zIC4yLTk0IDBjNS44IDQ2LjIgMjMuMyA4NS4xIDQxLjIgMTE0LjIgMjAuNCAzMy4xIDQxIDUyLjkgNDIuNCA1NC4yIDEzIDExLjkgMTMuOSAzMi4yIDIgNDUuMi0xMS45IDEzLTMyLjIgMTMuOS00NS4yIDItMi45LTIuNy0yOC4zLTI2LjctNTMuNi02Ny44LTIyLjMtMzYuMi00NS04Ni42LTUxLjEtMTQ3LjhsLTY3LjMgMGMtNi4xIDYxLjEtMjguOCAxMTEuNi01MS4xIDE0Ny44LTI1LjMgNDEuMS01MC43IDY1LjEtNTMuNiA2Ny44LTEzIDExLjktMzMuMyAxMS4xLTQ1LjItMi0xMS45LTEzLTExLTMzLjMgMi00NS4yIDEuNC0xLjMgMjItMjEuMSA0Mi40LTU0LjIgMTcuOS0yOS4xIDM1LjQtNjggNDEuMi0xMTQuMmwtOTQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NCAwYy01LjgtNDYuMi0yMy4zLTg1LjEtNDEuMi0xMTQuMi0yMC40LTMzLjEtNDEtNTIuOS00Mi40LTU0LjItMTMtMTEuOS0xMy45LTMyLjItMi00NS4yeiJdfSxkSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29sYXItcGFuZWwiLGljb246WzU3Niw1MTIsW10sImY1YmEiLCJNMTIxLjggMzJjLTMwIDAtNTYgMjAuOC02Mi41IDUwLjFMOS42IDMwNi4xQy43IDM0Ni4xIDMxLjEgMzg0IDcyIDM4NGwxODQuMSAwIDAgNjQtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0IDE4NC4xIDBjNDAuOSAwIDcxLjQtMzcuOSA2Mi41LTc3LjlsLTQ5LjgtMjI0QzUxMC40IDUyLjggNDg0LjUgMzIgNDU0LjUgMzJMMTIxLjggMzJ6TTI0NS42IDk2bDg1LjIgMCA3LjMgODgtOTkuOCAwIDcuMy04OHptLTU1LjUgODhsLTg3LjggMCAxOS42LTg4IDc1LjYgMC03LjMgODh6TTkxLjYgMjMybDk0LjUgMC03LjMgODgtMTA2LjcgMCAxOS42LTg4em0xNDIuNiAwbDEwNy44IDAgNy4zIDg4LTEyMi41IDAgNy4zLTg4em0xNTYgMGw5NC41IDAgMTkuNiA4OC0xMDYuNyAwLTcuMy04OHpNNDc0IDE4NGwtODcuOCAwLTcuMy04OCA3NS42IDAgMTkuNiA4OHoiXX0sdUlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhbmQtbWluZS1vbiIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYiIsIk0zMTIgMGwwIDEyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNEwyNjQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek0xNjAgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGw4MCAwIDAtMzJ6TTEyIDExNC43YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43bDk2IDY0YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zcy0yMi4zIDE0LTMzLjMgNi43bC05Ni02NGMtMTEtNy40LTE0LTIyLjMtNi43LTMzLjN6TTUzMC43IDEwOGMxMS03LjQgMjUuOS00LjQgMzMuMyA2LjdzNC40IDI1LjktNi43IDMzLjNsLTk2IDY0Yy0xMSA3LjQtMjUuOSA0LjQtMzMuMy02LjdzLTQuNC0yNS45IDYuNy0zMy4zbDk2LTY0eiJdfSxIdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZHBob25lcyIsaWNvbjpbNDQ4LDUxMixbMTI3OTExLDYyODYzLCJoZWFkcGhvbmVzLWFsdCIsImhlYWRwaG9uZXMtc2ltcGxlIl0sImYwMjUiLCJNNjQgMjI0YzAtODguNCA3MS42LTE2MCAxNjAtMTYwczE2MCA3MS42IDE2MCAxNjBsMCAzNy41Yy0xMC0zLjUtMjAuOC01LjUtMzItNS41bC0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xNjBDNDQ4IDEwMC4zIDM0Ny43IDAgMjI0IDBTMCAxMDAuMyAwIDIyNEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDBjLTExLjIgMC0yMiAxLjktMzIgNS41TDY0IDIyNHoiXX0scElyPUh1ZSxmSXI9SHVlLGhJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMiLGljb246WzQ0OCw1MTIsWzEyODY1M10sImYyMDciLCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM4NGMwIDI5LjggMjAuNCA1NC45IDQ4IDYybDAgMzRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE5MiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM0YzI3LjYtNy4xIDQ4LTMyLjIgNDgtNjJsMC0yODhjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxNzZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA0IDAgMCAxMTItMTA0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDh6bTE4NCA4MGwwLTExMiAxMDQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMDQgMHpNOTYgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjU2IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNTIgNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LG1Jcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXBvd2VycG9pbnQiLGljb246WzM4NCw1MTIsW10sImYxYzQiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE1MiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNCAyNCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcybC00OCAwem00OCA5NmwtMjQgMCAwLTQ4IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LGJCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdW90ZS1sZWZ0IixpY29uOls0NDgsNTEyLFs4MjIwLCJxdW90ZS1sZWZ0LWFsdCJdLCJmMTBkIiwiTTAgMjE2QzAgMTQ5LjcgNTMuNyA5NiAxMjAgOTZsOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjE2em0yNTYgMGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMGw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xMzZ6Il19LGdJcj1iQmUsYklyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tZG93biIsaWNvbjpbNDQ4LDUxMixbXSwiZjA3OCIsIk0yMDEuNCA0MDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxOTItMTkyYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMzguNyA1NC42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyeiJdfSx4QmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYXNpYSIsaWNvbjpbNTEyLDUxMixbMTI3NzU5LCJnbG9iZS1hc2lhIl0sImY1N2UiLCJNNTAgMjg0LjhjNC4yIDIuMSA5IDMuMiAxNCAzLjJsNTAuNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDEzLjMgMTMuM2M2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMTguNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQtMTAuNyAyNC0yNGwwLTQyLjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsMTMuMy0xMy4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNkwzMDQgNTdjMC0xLjItLjEtMi4zLS4yLTMuNS0xNS40LTMuNi0zMS40LTUuNS00Ny44LTUuNS0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDggMCA5LjggLjcgMTkuNCAyIDI4Ljh6bTQwMy4zIDM3LjNjLTMuMi0xLjQtNi43LTIuMS0xMC41LTIuMUw0MzIgMzIwYy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzQuNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNGwtNDUuMyA0NS4zYy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAxOC43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNCAyLjIgMi4yIDQuNyA0LjEgNy4zIDUuNSAzOS4zLTI1LjQgNjkuNS02My42IDg0LjYtMTA4Ljh6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTEyOCAzNjhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMjcyIDI1NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnptNDgtMTEybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2eiJdfSx4SXI9eEJlLHZJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZW50LXNpZ24iLGljb246WzM4NCw1MTIsW10sImUzZjUiLCJNMjA4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNS40YzQzLjYgNS4yIDgzIDI0LjUgMTEzLjMgNTMuMSAxMi45IDEyLjEgMTMuNCAzMi40IDEuMyA0NS4ycy0zMi40IDEzLjQtNDUuMiAxLjNjLTI0LjQtMjMtNTcuMi0zNy4xLTkzLjMtMzcuMS03NS4xIDAtMTM2IDYwLjktMTM2IDEzNnM2MC45IDEzNiAxMzYgMTM2YzM2LjIgMCA2OS0xNC4xIDkzLjMtMzcuMSAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMkMzMjMgNDMwLjEgMjgzLjYgNDQ5LjQgMjQwIDQ1NC42bDAgMjUuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI4Qzg0LjcgNDMzLjUgMTYgMzUyLjggMTYgMjU2Uzg0LjcgNzguNSAxNzYgNjBsMC0yOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0seUlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1jYXQiLGljb246WzUxMiw1MTIsW10sImU1NzIiLCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTE2MCAxNTQuNGMwLTUuOCA0LjctMTAuNCAxMC40LTEwLjRsLjIgMGMzLjQgMCA2LjUgMS42IDguNSA0LjNsNDAgNTMuM2MzIDQgNy44IDYuNCAxMi44IDYuNGw0OCAwYzUgMCA5LjgtMi40IDEyLjgtNi40bDQwLTUzLjNjMi0yLjcgNS4yLTQuMyA4LjUtNC4zbC4yIDBjNS44IDAgMTAuNCA0LjcgMTAuNCAxMC40TDM1MiAyNzJjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0xMTcuNnpNMjE2IDI4OGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTk2LTE2YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LHdJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTZiIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LHZCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJ0aW5pLWdsYXNzIixpY29uOls1MTIsNTEyLFsxMjc4NjQsImdsYXNzLW1hcnRpbmktYWx0Il0sImY1N2IiLCJNMi40IDUxLjhDNy40IDM5LjggMTkuMSAzMiAzMiAzMmw0NDggMGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45TDI4OCAzMDEuMyAyODggNDQ4IDM1MiA0NDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC0xNDYuNy0yMTQuNi0yMTQuNkMuMiA3Ny41LTIuNSA2My43IDIuNCA1MS44ek0zNTQuNyAxNDRsNDgtNDgtMjkzLjUgMCA0OCA0OCAxOTcuNSAweiJdfSxrSXI9dkJlLFNJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnIixpY29uOls0NDgsNTEyLFsxMjgyNjhdLCJmMWU2IiwiTTEyOC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA2NGMwIDk1LjEtNjkuMiAxNzQuMS0xNjAgMTg5LjNsMCA2Ni43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxMDEuMiAzOTguMSAzMiAzMTkuMSAzMiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LE1Jcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYW5vcmFtYSIsaWNvbjpbNTc2LDUxMixbXSwiZTIwOSIsIk00My45IDQ4QzE5LjcgNDggMCA2Ny43IDAgOTEuOUwwIDQyMC4xYzAgMjQuMyAxOS43IDQzLjkgNDMuOSA0My45IDUuNSAwIDEwLjctMSAxNS43LTIuOSAxMi45LTQuOSAxMDMuNC0zNy4xIDIyOC40LTM3LjFzMjE1LjUgMzIuMyAyMjguNCAzNy4xYzUgMS45IDEwLjIgMi45IDE1LjcgMi45IDI0LjMgMCA0My45LTE5LjcgNDMuOS00My45bDAtMzI4LjJjMC0yNC4zLTE5LjctNDMuOS00My45LTQzLjktNS41IDAtMTAuNyAxLTE1LjcgMi45LTEyLjkgNC45LTEwMy40IDM3LjEtMjI4LjQgMzcuMVM3Mi41IDU1LjcgNTkuNiA1MC45QzU0LjYgNDkgNDkuNCA0OCA0My45IDQ4ek03MiAxNzZhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHptMjY0LjEtMTZjNy41IDAgMTQuNiAzLjYgMTkuMSA5LjZMNDc5LjcgMzM2LjJjNS45IDcuOSA2LjQgMTguNSAxLjMgMjYuOXMtMTQuOCAxMi44LTI0LjUgMTEuMWMtNDUuOC03LjgtMTAzLjMtMTQuMi0xNjguNC0xNC4yLTY1LjYgMC0xMjMuNCA2LjUtMTY5LjMgMTQuNC05LjggMS43LTE5LjctMi45LTI0LjctMTEuNXMtNC4zLTE5LjQgMS45LTI3LjJMMTY1LjMgMjQ5YzQuNi01LjcgMTEuNS05IDE4LjctOXMxNC4yIDMuMyAxOC43IDlsMjcuNSAzNC40IDg2LjctMTEzLjljNC42LTYgMTEuNy05LjUgMTkuMi05LjV6Il19LGVUPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrLXJvdGF0ZS1sZWZ0IixpY29uOls1NzYsNTEyLFsiaGlzdG9yeSJdLCJmMWRhIiwiTTI4OCA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MlMzOTQgNDQ4IDI4OCA0NDhjLTY1LjIgMC0xMjIuOS0zMi41LTE1Ny42LTgyLjMtMTAuMS0xNC41LTMwLjEtMTgtNDQuNi03LjlzLTE4IDMwLjEtNy45IDQ0LjZDMTI0LjEgNDY4LjYgMjAxIDUxMiAyODggNTEyIDQyOS40IDUxMiA1NDQgMzk3LjQgNTQ0IDI1NlM0MjkuNCAwIDI4OCAwQzIwMi4zIDAgMTI2LjUgNDIuMSA4MCAxMDYuN0w4MCA4MGMwLTE3LjctMTQuMy0zMi0zMi0zMlMxNiA2Mi4zIDE2IDgwbDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDI0LjYgMGMuNSAwIDEgMCAxLjUgMGw4NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zOC4zIDBDMTU0LjkgMTAyLjYgMjE3IDY0IDI4OCA2NHptMjQgODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDRjMCA2LjQgMi41IDEyLjUgNyAxN2w3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY1LTY1IDAtOTQuMXoiXX0sQ0lyPWVULHpJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXItd2hlYXQiLGljb246WzMyMCw1MTIsW10sImU1MTciLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0xMTIgMzJsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMTYwYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6bTQ4IDExNy43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjdsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMjU2Yy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuN3pNMTEyIDM1MmwtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDIxLjggMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMiAyMS44IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMzUyYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6Il19LHF1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1hcnJvdy1kb3duIixpY29uOls1NzYsNTEyLFs2MjMzNywiY2xvdWQtZG93bmxvYWQiLCJjbG91ZC1kb3dubG9hZC1hbHQiXSwiZjBlZCIsIk0xNDQgNDgwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTYzLjQgNDEtMTE3LjIgOTcuOS0xMzYuNS0xLjMtNy43LTEuOS0xNS41LTEuOS0yMy41IDAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDU1LjQgMCAxMDMuNSAzMS4zIDEyNy42IDc3LjEgMTQuMi04LjMgMzAuOC0xMy4xIDQ4LjQtMTMuMSA1MyAwIDk2IDQzIDk2IDk2IDAgMTUuNy0zLjggMzAuNi0xMC41IDQzLjcgNDQgMjAuMyA3NC41IDY0LjcgNzQuNSAxMTYuMyAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDB6TTM3NyAzMTNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxfSXI9cXVlLFRJcj1xdWUseUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLXJhbXAtYm94IixpY29uOls1NzYsNTEyLFsidHJ1Y2stbG9hZGluZyJdLCJmNGRlIiwiTTQwMCAzMmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNDguMi0yOTcuMiA4OS4yQzUuOSA0NTQuNC0zLjcgNDcyLjMgMS40IDQ4OS4yczIyLjkgMjYuNSAzOS44IDIxLjVsMzE1LjUtOTQuNiA0My43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4bDAtMzkyLTE3NiAwek01MjggNDI0YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDBjMjIuMSAwIDM5LjkgMTcuOSA0MCAzOS45bDAgLjF6TTUxLjkgMTQ5LjVDMTguMSAxNTkuOC0uOSAxOTUuNiA5LjQgMjI5LjRsMjguMSA5MS44QzQ3LjggMzU1IDgzLjYgMzc0IDExNy40IDM2My43bDkxLjgtMjguMWMzMy44LTEwLjMgNTIuOC00Ni4xIDQyLjUtNzkuOWwtMjguMS05MS44Yy0xMC4zLTMzLjgtNDYuMS01Mi44LTc5LjktNDIuNUw1MS45IDE0OS41eiJdfSxMSXI9eUJlLERJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZS1kb3duIixpY29uOlszODQsNTEyLFs4OTY0XSwiZjEwNyIsIk0xNjkuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5MiAzMDYuNyA1NC42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiJdfSwkSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NWMiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxBSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZG93LW1heGltaXplIixpY29uOls1MTIsNTEyLFsxMjg0NzBdLCJmMmQwIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0yNCA2NGwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LEVJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nLWNpcmNsZSIsaWNvbjpbNjQwLDUxMixbXSwiZTRmYiIsIk0zMjAgMGExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMTYwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xIDEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOC03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGMyNC4xIDI0LjEgMzkuOSAzOS45IDQ3LjIgNDcuMmwwIDAgMjUuMyAyNS4zYzIxIDIxIDMyLjggNDkuNSAzMi44IDc5LjJsMCA3OC45YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC02Ni43IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDI4LjEgMzkzLjRDMTAuMSAzNzUuNCAwIDM1MSAwIDMyNS41TDAgMTA0QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDIyMS41YzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45TDUxMiA0OTMuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w0MDAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTc4LjljMC0yOS43IDExLjgtNTguMiAzMi44LTc5LjJsMjUuMy0yNS4zIDAgMGM3LjMtNy4zIDIzLjEtMjMuMSA0Ny4yLTQ3LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjItMTEgMTEtOS4yIDI5LjIgMy43IDM3LjggOS43IDYuNSAyMi43IDUuMiAzMS0zLjFsNTEuMS01MS4xYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTYwIDEwNGMwLTIyLjEgMTcuOS00MCA0MC00MHoiXX0sd0JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLXBpbiIsaWNvbjpbMzg0LDUxMixbIm1hcC1tYXJrZXIiXSwiZjA0MSIsIk0xOTIgMEM4NiAwIDAgODQuNCAwIDE4OC42IDAgMzA3LjkgMTIwLjIgNDUwLjkgMTcwLjQgNTA1LjQgMTgyLjIgNTE4LjIgMjAxLjggNTE4LjIgMjEzLjYgNTA1LjQgMjYzLjggNDUwLjkgMzg0IDMwNy45IDM4NCAxODguNiAzODQgODQuNCAyOTggMCAxOTIgMHoiXX0sSUlyPXdCZSxQSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm93bGluZy1iYWxsIixpY29uOls1MTIsNTEyLFtdLCJmNDM2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0yMDggMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS02NC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGtCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWZsYXRiZWQiLGljb246WzU3Niw1MTIsWyJkb2xseS1mbGF0YmVkIl0sImY0NzQiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI4OGMwIDM5LjggMjkuMSA3Mi44IDY3LjEgNzktMiA1LjMtMy4xIDExLTMuMSAxNyAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEtMTEtMi43LTE2bDE5Ny41IDBjLTEuOCA1LTIuNyAxMC40LTIuNyAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEtMTEtMi43LTE2bDM0LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDAwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI4OEMxMjggMzUuOCA5Mi4yIDAgNDggMEwzMiAwek0yMjQgNjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTc2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI0MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDIyNCA2NHoiXX0sTklyPWtCZSxTQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtdXNlciIsaWNvbjpbNTEyLDUxMixbImhvbWUtdXNlciJdLCJlMWIwIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTIwMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xNDQgNDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2eiJdfSxPSXI9U0JlLFJJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnaG9zdCIsaWNvbjpbMzg0LDUxMixbMTI4MTIzXSwiZjZlMiIsIk00MC4xIDQ2Ny4xbC0xMS4yIDlDMjUuNyA0NzguNiAyMS44IDQ4MCAxNy44IDQ4MCA4IDQ4MCAwIDQ3MiAwIDQ2Mi4yTDAgMTkyQzAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MmwwIDI3MC4yYzAgOS44LTggMTcuOC0xNy44IDE3LjgtNCAwLTcuOS0xLjQtMTEuMS0zLjlsLTExLjItOWMtMTMuNC0xMC43LTMyLjgtOS00NC4xIDMuOUwyNjkuMyA1MDZjLTMuMyAzLjgtOC4yIDYtMTMuMyA2cy05LjktMi4yLTEzLjMtNmwtMjYuNi0zMC41Yy0xMi43LTE0LjYtMzUuNC0xNC42LTQ4LjIgMEwxNDEuMyA1MDZjLTMuMyAzLjgtOC4yIDYtMTMuMyA2cy05LjktMi4yLTEzLjMtNkw4NC4yIDQ3MWMtMTEuMy0xMi45LTMwLjctMTQuNi00NC4xLTMuOXpNMTYwIDE5MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEZJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LW5vZGVzIixpY29uOls2NDAsNTEyLFtdLCJlNjk2IiwiTTQ4MCAyMDhDNTAzLjcgMjA4IDUyNS42IDIxNS4zIDU0My43IDIyNy45IDUzNi45IDEwMC45IDQyNSAwIDI4OCAwIDE0Ni42IDAgMzIgMTA3LjUgMzIgMjQwIDMyIDI5NC4zIDUxLjIgMzQ0LjMgODMuNiAzODQuNUwzNC44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN2MyNy4yIDExLjQgNTYuOSAxOC40IDg4LjEgMjAuMiAuMS0xOC45IDQuOS0zOCAxNS01NS41IDE3LjEtMjkuNyA0NS44LTQ4LjUgNzctNTQuMmw5LjItMTZjLTMuNC0xMC43LTUuMi0yMi01LjItMzMuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnpNMzI4LjYgNDQ4Yy0xNy43IDMwLjYtNy4yIDY5LjcgMjMuNCA4Ny40czY5LjcgNy4yIDg3LjQtMjMuNGMxLjUtMi42IDIuOC01LjMgMy45LThsNzMuMyAwYzEuMSAyLjcgMi40IDUuNCAzLjkgOCAxNy43IDMwLjYgNTYuOCA0MS4xIDg3LjQgMjMuNHM0MS4xLTU2LjggMjMuNC04Ny40Yy0xMy40LTIzLjItMzkuMS0zNC44LTY0LTMxLjRsLTE3LjYtMzAuN2MtMTEgMTEuNy0yNSAyMC42LTQwLjYgMjUuNmwxNi41IDI4LjljLTMuOCA0LjgtNi44IDEwLTkgMTUuNmwtNzMuNCAwYy0yLjItNS42LTUuMy0xMC44LTktMTUuNmwzMy01Ny43YzQuMSAuOCA4LjQgMS4zIDEyLjggMS4zIDM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjRjMCAxMy40IDQuMSAyNS44IDExLjIgMzYuMWwtMzQuNiA2MC41Yy0yNS0zLjQtNTAuNiA4LjMtNjQgMzEuNHoiXX0sQklyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1hcnJvdy1kb3duLXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1MzgiLCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0zMTguMyAyOTkuMWwtNDYuMy02Mi40IDAgMjQzLjMgMjcyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgwIDAgMC0yNDMuMy00Ni4zIDYyLjRjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTE3NiA0ODBsMzIgMCAwLTEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDEyOHpNNTY2LjYgMTY2LjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMNDMyIDE0Ni43IDQzMiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3oiXX0sSElyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLXBsdXMiLGljb246WzY0MCw1MTIsW10sImU1NWYiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMTYgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA0OC00OCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDQ4IDAgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4eiJdfSxNQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXN3aW1taW5nIixpY29uOls2NDAsNTEyLFsxMjc5NDYsInN3aW1tZXIiXSwiZjVjNCIsIk01NTIgMTUyYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNMjkzLjQgMTk4LjJsLTg4LjYgNzMuOWMxLjEgMCAyLjItLjEgMy4zLS4xIDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCA0LjggMCA5LjcgLjIgMTQuNSAuNi04LjMtMzAtMjQuMy01Ny43LTQ2LjgtODAuMi0xOC40LTE4LjQtNDAuNi0zMi43LTY1LTQxLjhsLTY4LjYtMjUuN2MtMjcuNC0xMC4zLTU4LTcuNS04My4xIDcuNmwtNTMuNSAzMi4xYy0xNS4yIDkuMS0yMC4xIDI4LjctMTEgNDMuOXMyOC43IDIwLjEgNDMuOSAxMUwyMzAgMTg3LjNjOC40LTUgMTguNi01LjkgMjcuNy0yLjVsMzUuNyAxMy40em0xMTAgMTgxLjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyAzODYuMyAxNy42IDM5NC4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0scUlyPU1CZSxDQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1kb3RzIixpY29uOls1MTIsNTEyLFsxMjgxNzIsNjIwNzUsImNvbW1lbnRpbmciXSwiZjRhZCIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMTI4IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sVklyPUNCZSx6QmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtcGllIixpY29uOls1NzYsNTEyLFsicGllLWNoYXJ0Il0sImYyMDAiLCJNNTEyLjQgMjQwbC0xNzYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzZjMC0xNy43IDE0LjQtMzIuMiAzMS45LTI5LjkgMTA3IDE0LjIgMTkxLjggOTkgMjA2IDIwNiAyLjMgMTcuNS0xMi4yIDMxLjktMjkuOSAzMS45ek0yMjIuNiAzNy4yYzE4LjEtMy44IDMzLjggMTEgMzMuOCAyOS41bDAgMTk3LjNjMCA1LjYgMiAxMSA1LjUgMTUuM0wzOTQgNDM4LjdjMTEuNyAxNC4xIDkuMiAzNS40LTYuOSA0NC4xLTM0LjEgMTguNi03My4yIDI5LjItMTE0LjcgMjkuMi0xMzIuNSAwLTI0MC0xMDcuNS0yNDAtMjQwIDAtMTE1LjUgODEuNS0yMTEuOSAxOTAuMi0yMzQuOHpNNDc3LjggMjg4bDY0IDBjMTguNSAwIDMzLjMgMTUuNyAyOS41IDMzLjgtMTAuMiA0OC40LTM1IDkxLjQtNjkuNiAxMjQuMi0xMi4zIDExLjctMzEuNiA5LjItNDIuNC0zLjlMMzc0LjkgMzQwLjRjLTE3LjMtMjAuOS0yLjQtNTIuNCAyNC42LTUyLjRsNzguMiAweiJdfSxqSXI9ekJlLFVJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmcm9nIixpY29uOls1NzYsNTEyLFtdLCJmNTJlIiwiTTM2OCAzMmM0MS43IDAgNzUuOSAzMS44IDc5LjcgNzIuNWw4NS42IDI2LjNjMjUuNCA3LjggNDIuOCAzMS4zIDQyLjggNTcuOSAwIDIxLjgtMTEuNyA0MS45LTMwLjcgNTIuN2wtMTQ0LjUgODIuMSA5Mi41IDkyLjUgNTAuNyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNEwzNDYuOSAzNjAuMmMxMS43LTM2IDMuMi03Ny4xLTI1LjQtMTA1LjctNDAuNi00MC42LTEwNi4zLTQwLjYtMTQ2LjktLjFMMTAxIDMyNC40Yy02LjQgNi4xLTYuNyAxNi4yLS42IDIyLjZzMTYuMiA2LjYgMjIuNiAuNmw3My44LTcwLjIgLjEtLjEgLjEtLjFjMy41LTMuNSA3LjMtNi42IDExLjMtOS4yIDI3LjktMTguNSA2NS45LTE1LjQgOTAuNSA5LjIgMjQuNyAyNC43IDI3LjcgNjIuOSA5IDkwLjktMi42IDMuOC01LjYgNy41LTkgMTAuOUwyNjEuOCA0MTYgMzUyIDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBDMjguNyA0ODAgMCA0NTEuMyAwIDQxNiAwIDI0OS42IDEyNyAxMTIuOSAyODkuMyA5Ny41IDI5Ni4yIDYwLjIgMzI4LjggMzIgMzY4IDMyem0wIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFdJcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWJvdHRsZSIsaWNvbjpbMzIwLDUxMixbXSwiZjcyZiIsIk04MC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMTEuOC02LjQgMjIuMi0xNiAyNy43bDAgMTQ1LjZjNTYuNSAyNC43IDk2IDgxLjEgOTYgMTQ2LjdsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTc2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTY1LjYgMzkuNS0xMjIgOTYtMTQ2LjdMOTYtNC4zQzg2LjQtOS44IDgwLTIwLjIgODAtMzJ6TTk2IDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMjg4eiJdfSxHSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5ib3giLGljb246WzUxMiw1MTIsW10sImYwMWMiLCJNOTEuOCAzMkM1OS45IDMyIDMyLjkgNTUuNCAyOC40IDg2LjlMLjYgMjgxLjJjLS40IDMtLjYgNi0uNiA5LjFMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xMjUuN2MwLTMtLjItNi4xLS42LTkuMUw0ODMuNiA4Ni45QzQ3OS4xIDU1LjQgNDUyLjEgMzIgNDIwLjIgMzJMOTEuOCAzMnptMCA2NGwzMjguNSAwIDI3LjQgMTkyLTU5LjkgMGMtMTIuMSAwLTIzLjIgNi44LTI4LjYgMTcuN2wtMTQuMyAyOC42Yy01LjQgMTAuOC0xNi41IDE3LjctMjguNiAxNy43bC0xMjAuNCAwYy0xMi4xIDAtMjMuMi02LjgtMjguNi0xNy43bC0xNC4zLTI4LjZjLTUuNC0xMC44LTE2LjUtMTcuNy0yOC42LTE3LjdMNjQuMyAyODggOTEuOCA5NnoiXX0sX0JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1oIixpY29uOls0NDgsNTEyLFsiaC1zcXVhcmUiXSwiZjBmZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjAgMTY4bDAgMTc2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNjQtOTYgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA5NiAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sWUlyPV9CZSxLSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTNiMiIsIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4ek0yMjQgMjQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxUQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tcmlnaHQiLGljb246WzUxMiw1MTIsWyJjaGV2cm9uLWNpcmNsZS1yaWdodCJdLCJmMTM4IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTI0MSAzNzdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsODctODctODctODdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMEwzNDUgMjM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDI0MSAzNzd6Il19LFpJcj1UQmUsUUlyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY3N2IixpY29uOls1NzYsNTEyLFtdLCJmNmRkIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNjQgMzgwYy0yNC4zIDAtNDQgMTkuNy00NCA0NGwwIDgwYzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDE2IDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC04YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDhjMCAyLjItMS44IDQtNCA0bC0xNiAwYy0yLjIgMC00LTEuOC00LTRsMC04MGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTI0LjMtMTkuNy00NC00NC00NGwtMTYgMHptMTM2IDBjLTI4LjcgMC01MiAyMy4zLTUyIDUyczIzLjMgNTIgNTIgNTJjNi42IDAgMTIgNS40IDEyIDEycy01LjQgMTItMTIgMTJsLTMyIDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDMyIDBjMjguNyAwIDUyLTIzLjMgNTItNTJzLTIzLjMtNTItNTItNTJjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMjQgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTI0IDB6bTk2IDBjLTExIDAtMjAgOS0yMCAyMGwwIDMxLjZjMCAzNS41IDEwLjUgNzAuMyAzMC4yIDk5LjhsNS4xIDcuN2MzLjcgNS42IDEwIDguOSAxNi42IDguOXMxMi45LTMuMyAxNi42LTguOWw1LjEtNy43YzE5LjctMjkuNiAzMC4yLTY0LjMgMzAuMi05OS44bDAtMzEuNmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCAzMS42YzAgMTkuNi00LjEgMzguOS0xMiA1Ni43LTcuOS0xNy44LTEyLTM3LjEtMTItNTYuN2wwLTMxLjZjMC0xMS05LTIwLTIwLTIweiJdfSxYSXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGF0LWNvd2JveSIsaWNvbjpbNjQwLDUxMixbXSwiZjhjMCIsIk0xODIuMiA3Ni4xTDEzMC44IDMwNy41QzE0NS41IDMyNC45IDE2Ny40IDMzNiAxOTIgMzM2bDI1NiAwYzI0LjYgMCA0Ni41LTExLjEgNjEuMi0yOC41TDQ1Ny44IDc2LjFjLTUuNy0yNS44LTI4LjYtNDQuMS01NS00NC4xLTEyLjIgMC0yNC4xIDQtMzMuOCAxMS4zbC00LjcgMy41Yy0yNi4zIDE5LjctNjIuNCAxOS43LTg4LjYgMEwyNzEgNDMuM2MtOS44LTcuMy0yMS42LTExLjMtMzMuOC0xMS4zLTI2LjQgMC00OS4zIDE4LjMtNTUgNDQuMXpNNjQgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjM4LjMgMCAyNTZDMCAzNjIgODYgNDQ4IDE5MiA0NDhsMjU2IDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTIgMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTI1NiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHoiXX0sTEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTQwLCJncmluLXRvbmd1ZS13aW5rIl0sImY1OGIiLCJNMTUyLjIgNDkwLjFDNjIuNSA0NTAuMiAwIDM2MC40IDAgMjU2IDAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NmMwIDEwNC40LTYyLjUgMTk0LjItMTUyLjIgMjM0LjEgNS4zLTEzIDguMi0yNy4yIDguMi00Mi4xbDAtNjEuN2MxNi45LTE2LjUgMzAuMS0zNi43IDM4LjMtNTkuMyA0LjMtMTEuOC03LjctMjEuOC0xOS42LTE4LjEtMzkuMiAxMi4yLTgzLjcgMTkuMS0xMzAuNyAxOS4xcy05MS41LTYuOS0xMzAuNy0xOS4xYy0xMS45LTMuNy0yMy45IDYuMy0xOS42IDE4LjEgOC4zIDIyLjYgMjEuNSA0Mi44IDM4LjMgNTkuM2wwIDYxLjdjMCAxNC45IDIuOSAyOS4xIDguMiA0Mi4xek0xNTIgMjEybDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTg0IDYwYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4ek0zMjAgNDAyLjZsMCA0NS40YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0bDAtNDUuNGMwLTE0LjcgMTEuOS0yNi42IDI2LjYtMjYuNmwyIDBjMTEuMyAwIDIxLjEgNy45IDIzLjYgMTguOSAyLjggMTIuNiAyMC44IDEyLjYgMjMuNiAwIDIuNS0xMS4xIDEyLjMtMTguOSAyMy42LTE4LjlsMiAwYzE0LjcgMCAyNi42IDExLjkgMjYuNiAyNi42ek0zMzYgMTg0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sSklyPUxCZSxlUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibCIsaWNvbjpbMzIwLDUxMixbMTA4XSwiNGMiLCJNNjQgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNTIgMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sVnVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tc2hvcnQtd2lkZSIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LWRlc2MiLCJzb3J0LWFtb3VudC1kb3duLWFsdCJdLCJmODg0IiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSx0UHI9VnVlLHJQcj1WdWUsREJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcy1oYWxmIixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTIiXSwiZjI1MiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMTktNS42IDM3LjQtMTYgNTNMMTEyIDEyOGMtMTAuMy0xNS42LTE2LTM0LTE2LTUzem0xNiAzMDljMy41LTUuMyA3LjYtMTAuMyAxMi4xLTE0LjlsNjcuOS02Ny45IDY3LjkgNjcuOWM0LjYgNC42IDguNiA5LjYgMTIuMiAxNC45TDExMiAzODR6Il19LGFQcj1EQmUsJEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwb29uIixpY29uOls1MTIsNTEyLFsxMjkzNDgsNjE4NzMsInV0ZW5zaWwtc3Bvb24iXSwiZjJlNSIsIk0yNDUuOCAyMjAuOWMtMTQuNS0xNy42LTIxLjgtMzkuMi0yMS44LTYwLjggMC04MC4yIDk2LTE2MC4yIDE5Mi0xNjAuMiA1MyAwIDk2IDQzIDk2IDk2IDAgOTYtODAgMTkyLTE2MC4yIDE5Mi0yMS42IDAtNDMuMi03LjMtNjAuOC0yMS44TDU0LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0NS44IDIyMC45eiJdfSxpUHI9JEJlLEFCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcmVkaXQtY2FyZCIsaWNvbjpbNTEyLDUxMixbMTI4MTc5LDYyMDgzLCJjcmVkaXQtY2FyZC1hbHQiXSwiZjA5ZCIsIk0wIDEyOGwwIDMyIDUxMiAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjh6bTAgODBMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYtNTEyIDB6TTY0IDM2MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTQ0IDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LHNQcj1BQmUsTXBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW52b2ljZS1kb2xsYXIiLGljb246WzM4NCw1MTIsW10sImY1NzEiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTY0IDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjRDNzQuNyA2NCA2NCA3NC43IDY0IDg4em0wIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0xMTIgNzZsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMTUyIDQwMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMHoiXX0sRUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwYWdoZXR0aS1tb25zdGVyLWZseWluZyIsaWNvbjpbNjQwLDUxMixbInBhc3RhZmFyaWFuaXNtIl0sImY2N2IiLCJNMjA4IDY0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDBjMCAxNi4yLTYgMzEuMS0xNiA0Mi4zbDE1LjYgMzEuMmMxOC43LTYgMzkuOS05LjUgNjQuNC05LjVzNDUuOCAzLjUgNjQuNCA5LjVMNDAwIDEwNi4zYy0xMC0xMS4zLTE2LTI2LjEtMTYtNDIuMyAwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjRjLTEuNyAwLTMuNC0uMS01LjEtLjJMNDI3LjggMTU4YzIxLjEgMTMuNiAzNy43IDMwLjIgNTEuNCA0Ni40IDcuMSA4LjMgMTMuNSAxNi42IDE5LjMgMjRsMS40IDEuOGM2LjMgOC4xIDExLjYgMTQuOCAxNi43IDIwLjQgMTAuNyAxMS43IDE2LjEgMTMuNCAxOS40IDEzLjQgMi41IDAgNC4zLS42IDcuMS0zLjMgMy43LTMuNSA3LjEtOC44IDEyLjUtMTcuNGwuNi0uOWM0LjYtNy40IDExLTE3LjYgMTkuNC0yNS43IDkuNy05LjMgMjIuOS0xNi43IDQwLjQtMTYuNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMi41IDAtNC4zIC42LTcuMSAzLjMtMy43IDMuNS03LjEgOC44LTEyLjUgMTcuNGwtLjYgLjljLTQuNiA3LjQtMTEgMTcuNi0xOS40IDI1LjctOS43IDkuMy0yMi45IDE2LjctNDAuNCAxNi43LTE4LjUgMC0zMi45LTguNS00NC4zLTE4LjYtMy4xIDQtNi42IDguMy0xMC41IDEyLjcgMS40IDQuMyAyLjggOC41IDQgMTIuNSAuOSAzIDEuOCA1LjggMi42IDguNiAzIDkuOCA1LjUgMTguMiA4LjYgMjUuOSAzLjkgOS44IDcuNCAxNS40IDEwLjggMTguNSAyLjYgMi40IDUuOSA0LjMgMTIuOCA0LjMgOC43IDAgMTYuOS00LjIgMzMuNy0xMy4yIDE1LTggMzUuNy0xOC44IDYyLjMtMTguOCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTMuNCAwLTI0LjcgNS4yLTM5LjcgMTMuMi0xIC42LTIuMSAxLjEtMy4yIDEuNy0xMy4xIDcuMS0zMS42IDE3LjEtNTMuMSAxNy4xLTE4LjQgMC0zMy42LTYuMS00NS41LTE3LjItMTEuMS0xMC4zLTE3LjktMjMuNy0yMi43LTM2LTMuNi05LTYuNy0xOS4xLTkuNS0yOC41LTE2LjQgMTIuMy0zNi4xIDIzLjYtNTguOSAzMS4zIDMuNiAxMC44IDguNCAyMy41IDE0LjQgMzYuMiA3LjUgMTUuOSAxNi4yIDMwLjQgMjUuOCA0MC41IDkuNiAxMC4yIDE3LjcgMTMuNyAyNC41IDEzLjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI1LjIgMC00NS0xMy41LTU5LjUtMjguOC0xNC41LTE1LjQtMjUuNy0zNC45LTM0LjItNTMtOC0xNy0xNC4xLTMzLjgtMTguMy00Ni45LTUuMiAuNC0xMC42IC42LTE2IC42cy0xMC44LS4yLTE2LS42Yy00LjIgMTMtMTAuMyAyOS45LTE4LjMgNDYuOS04LjUgMTguMS0xOS44IDM3LjYtMzQuMiA1My0xNC40IDE1LjMtMzQuMyAyOC44LTU5LjUgMjguOC0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzYuOCAwIDE1LTMuNSAyNC41LTEzLjcgOS41LTEwLjEgMTguMy0yNC42IDI1LjgtNDAuNSA1LjktMTIuNiAxMC43LTI1LjQgMTQuNC0zNi4yLTIyLjgtNy43LTQyLjUtMTktNTguOS0zMS4zLTIuOSA5LjQtNiAxOS41LTkuNSAyOC41LTQuOCAxMi4yLTExLjYgMjUuNi0yMi43IDM2LTExLjkgMTEuMS0yNy4xIDE3LjItNDUuNSAxNy4yLTEzLjEgMC0yNC41LTQuMS0zMy44LTguOS03LjktNC0xNS43LTkuMi0yMi4xLTEzLjVsMCAwLTIuNC0xLjZjLTE1LjMtMTAuMi0yNS44LTE2LTM3LjctMTYtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyOC4xIDAgNDkuNiAxNC4yIDY0LjMgMjRsMi40IDEuNmM2LjkgNC42IDEyLjEgOC4xIDE3LjIgMTAuNyA1LjUgMi44IDkuMSAzLjYgMTIgMy42IDYuOCAwIDEwLjItMS45IDEyLjgtNC4zIDMuNC0zLjIgNy04LjggMTAuOC0xOC41IDMtNy43IDUuNi0xNi4xIDguNi0yNS45IC44LTIuNyAxLjctNS42IDIuNi04LjYgMS4yLTQgMi42LTguMiA0LTEyLjUtMy45LTQuNS03LjQtOC44LTEwLjUtMTIuNy0xMS40IDEwLjEtMjUuOSAxOC42LTQ0LjMgMTguNi0xNy41IDAtMzAuNy03LjQtNDAuNC0xNi43LTguNC04LjEtMTQuOC0xOC4zLTE5LjQtMjUuN2wtLjYtLjljLTUuNC04LjYtOC44LTEzLjktMTIuNS0xNy40LTIuOC0yLjctNC42LTMuMy03LjEtMy4zLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMTcuNSAwIDMwLjcgNy40IDQwLjQgMTYuNyA4LjQgOC4xIDE0LjggMTguMyAxOS40IDI1LjdsLjYgLjljNS40IDguNiA4LjggMTMuOSAxMi41IDE3LjQgMi44IDIuNyA0LjYgMy4zIDcuMSAzLjMgMy4zIDAgOC43LTEuNyAxOS40LTEzLjQgNS4xLTUuNiAxMC40LTEyLjMgMTYuNy0yMC40bDEuNC0xLjhjNS44LTcuNCAxMi4yLTE1LjcgMTkuMy0yNCAxMy44LTE2LjIgMzAuMy0zMi44IDUxLjQtNDYuNGwtMTUuMS0zMC4yYy0xLjcgLjEtMy40IC4yLTUuMSAuMi0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0IDY0IDI4LjcgNjQgNjR6bTIwOCAwYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LG5Qcj1FQmUsSUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MtY2l0cnVzIixpY29uOls2NDAsNTEyLFsiY29ja3RhaWwiXSwiZjU2MSIsIk01NzYgODBjMC00NC4yLTM1LjgtODAtODAtODAtMTggMC0zNC42IDYtNDggMTZsLTgxIDBjMjMuNi00Ny40IDcyLjUtODAgMTI5LTgwIDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzU3NS41IDIyNCA0OTYgMjI0Yy02LjUgMC0xMy0uNC0xOS4zLTEuM2w2NC03NC43YzEuMS0xLjMgMi4yLTIuNyAzLjMtNC4xIDE5LjQtMTQuNiAzMi0zNy44IDMyLTY0ek02Ni45IDgyLjZDNzIuMiA3MS4zIDgzLjUgNjQgOTYgNjRsMzg0IDBjMTIuNSAwIDIzLjggNy4zIDI5LjEgMTguNnMzLjQgMjQuNy00LjggMzQuMmwtMTg0LjMgMjE1IDAgMTE2LjIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTExNi4yLTE4NC4zLTIxNWMtOC4xLTkuNS0xMC0yMi44LTQuOC0zNC4yek0xNjUuNiAxMjhMMjg4IDI3MC44IDQxMC40IDEyOCAxNjUuNiAxMjh6Il19LG9Qcj1JQmUsbFByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1bGxob3JuIixpY29uOls1MTIsNTEyLFsxMjgyMjYsMTI4MzYzXSwiZjBhMSIsIk00NjEuMiAxOC45QzQ3Mi43IDI0IDQ4MCAzNS40IDQ4MCA0OGwwIDQxNmMwIDEyLjYtNy4zIDI0LTE4LjggMjkuMXMtMjQuOCAzLjItMzQuMy01LjFsLTQ2LjYtNDAuN2MtNDMuNi0zOC4xLTk4LjctNjAuMy0xNTYuNC02M2wwIDk1LjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZDNTcuMyAzODQgMCAzMjYuNyAwIDI1NlM1Ny4zIDEyOCAxMjggMTI4bDg0LjUgMGM2MS44LS4yIDEyMS40LTIyLjcgMTY3LjktNjMuM2w0Ni42LTQwLjdjOS40LTguMyAyMi45LTEwLjIgMzQuMy01LjF6TTIyNCAzMjBsMCAuMmM3MC4zIDIuNyAxMzcuOCAyOC41IDE5MiA3My40bDAtMjc1LjNjLTU0LjIgNDQuOS0xMjEuNyA3MC43LTE5MiA3My40TDIyNCAzMjB6Il19LGNQcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3gtdGlzc3VlIixpY29uOls1MTIsNTEyLFtdLCJlMDViIiwiTTEwMy45IDMybDE2MSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45bDE3LjQgNTIuMmM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDYwLjUgMGMyMS44IDAgMzcuMyAyMS40IDMwLjQgNDIuMUwzODQgMzIwIDEyOCAzMjAgNzIuNyA3MC45QzY4LjIgNTEgODMuNCAzMiAxMDMuOSAzMnpNNDggMjU2bDE2LjYgMCAxNi41IDc0LjRDODYgMzUyLjQgMTA1LjUgMzY4IDEyOCAzNjhsMjU2IDBjMjAuNyAwIDM5LTEzLjIgNDUuNS0zMi44bDI2LjQtNzkuMiA4LjEgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzA0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSxkUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWF0dHJlc3MtcGlsbG93IixpY29uOls1NzYsNTEyLFtdLCJlNTI1IiwiTTI1NiA2NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwLTM4NHptNDggMzg0bDIwOCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yMDggMCAwIDM4NHpNNjQgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyeiJdfSx1UHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi1sZWZ0IixpY29uOlszMjAsNTEyLFs5MDAxXSwiZjA1MyIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE5MiAxOTJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyNDYuNiA4Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xOTIgMTkyeiJdfSxwUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbW9vbi1yYWluIixpY29uOls1NzYsNTEyLFtdLCJmNzNjIiwiTTQ0OCAwYy02OC42IDAtMTI3LjEgNDMuMS0xNDkuOCAxMDMuOCAxNy4xIDE0LjEgMjkuNiAzMy41IDM0LjkgNTUuOCAzOS45IDIxLjcgNjYuOSA2My45IDY2LjkgMTEyLjUgMCAxMy41LTIuMSAyNi41LTUuOSAzOC43IDE2LjkgNiAzNSA5LjMgNTMuOSA5LjMgNDMgMCA4Mi4xLTE3IDExMC44LTQ0LjYgNC42LTQuNCA1LjktMTEuMiAzLjMtMTdzLTguNi05LjMtMTQuOS04LjhjLTMgLjItNi4xIC40LTkuMiAuNC02My41IDAtMTE1LTUxLjUtMTE1LTExNSAwLTQ1LjEgMjYtODQuMiA2My44LTEwMyA1LjctMi44IDktOC45IDguMi0xNS4yUzQ4OS42IDUuMyA0ODMuNCAzLjlDNDcyIDEuNCA0NjAuMiAwIDQ0OCAwek0yNzIgMzUyYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMzktMjcuOS03MS41LTY0LjgtNzguNiAuNS0zLjEgLjgtNi4yIC44LTkuNCAwLTMwLjktMjUuMS01Ni01Ni01Ni0xMi40IDAtMjMuOSA0LTMzLjEgMTAuOC0xMy40LTI1LjUtNDAuMS00Mi44LTcwLjktNDIuOC00NC4yIDAtODAgMzUuOC04MCA4MCAwIDcuNCAxIDE0LjYgMi45IDIxLjUtMjkuOCAxMS42LTUwLjkgNDAuNi01MC45IDc0LjUgMCA0NC4yIDM1LjggODAgODAgODBsMTkyIDB6TTY5IDQwMS4xYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJMMTcuMiA0ODAuNEMxMyA0OTMgMTkuOCA1MDYuNiAzMi40IDUxMC44czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40em0xMjAgMGMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS40IDY0LjFjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHptMTIwIDBjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuNCA2NC4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6Il19LGp1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLTEtOSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy1hc2MiLCJzb3J0LW51bWVyaWMtZG93biJdLCJmMTYyIiwiTTQxOC43IDM4YzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40ek0zNjUuMSA0MzAuNmwxMS43LTE4Yy0zMi45LTkuOS01Ni44LTQwLjUtNTYuOC03Ni42IDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAyMi45LTYuNiA0NS4zLTE5LjEgNjQuNWwtNDIuMSA2NC45Yy05LjYgMTQuOC0yOS40IDE5LjEtNDQuMyA5LjRzLTE5LjEtMjkuNC05LjQtNDQuM3pNNDI0IDMzNmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xNTAuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZ6Il19LGZQcj1qdWUsaFByPWp1ZSxtUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1zcG9jayIsaWNvbjpbNTEyLDUxMixbMTI4NDA2XSwiZjI1OSIsIk0yMTQuOSAyMy43QzIxMC4zIDYuNiAxOTIuOC0zLjUgMTc1LjcgMS4xcy0yNy4yIDIyLjEtMjIuNiAzOS4yTDIwNiAyMzcuOGMyLjUgOS4yLTQuNSAxOC4yLTE0IDE4LjItNi40IDAtMTItNC4yLTEzLjktMTAuM0wxMzQuNiAxMDIuN2MtNS4xLTE2LjktMjMtMjYuNC0zOS45LTIxLjNzLTI2LjQgMjMtMjEuMyAzOS45bDYyLjggMjA2LjRjMi40IDcuOS03LjIgMTMuOC0xMy4yIDguMUw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4xIDBjLjEgMCAuMS0uMSAuMS0uMXMuMS0uMSAuMS0uMWM1OC4zLTMuNSAxMDguNi00My4yIDEyNS4zLTk5LjdsODEuMi0yNzVjNS0xNi45LTQuNy0zNC43LTIxLjYtMzkuOHMtMzQuNyA0LjctMzkuOCAyMS42TDQxMS41IDI0Ny4xYy0xLjYgNS4zLTYuNCA4LjktMTIgOC45LTcuOSAwLTEzLjgtNy4zLTEyLjItMTUuMWwzNi0xNzAuM2MzLjctMTcuMy03LjQtMzQuMy0yNC43LTM3LjlzLTM0LjMgNy40LTM3LjkgMjQuN0wzMjMuMSAyMzUuMWMtMi42IDEyLjItMTMuMyAyMC45LTI1LjggMjAuOS0xMS45IDAtMjIuNC04LTI1LjQtMTkuNWwtNTctMjEyLjh6Il19LFBCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YW5kLW1hZ2ljLXNwYXJrbGVzIixpY29uOls1NzYsNTEyLFsibWFnaWMtd2FuZC1zcGFya2xlcyJdLCJlMmNhIiwiTTI2My40LTI3TDI3OC4yIDkuOCAzMTUgMjQuNmMzIDEuMiA1IDQuMiA1IDcuNHMtMiA2LjItNSA3LjRMMjc4LjIgNTQuMiAyNjMuNCA5MWMtMS4yIDMtNC4yIDUtNy40IDVzLTYuMi0yLTcuNC01TDIzMy44IDU0LjIgMTk3IDM5LjRjLTMtMS4yLTUtNC4yLTUtNy40czItNi4yIDUtNy40TDIzMy44IDkuOCAyNDguNi0yN2MxLjItMyA0LjItNSA3LjQtNXM2LjIgMiA3LjQgNXpNMTEwLjcgNDEuN2wyMS41IDUwLjEgNTAuMSAyMS41YzUuOSAyLjUgOS43IDguMyA5LjcgMTQuN3MtMy44IDEyLjItOS43IDE0LjdsLTUwLjEgMjEuNS0yMS41IDUwLjFjLTIuNSA1LjktOC4zIDkuNy0xNC43IDkuN3MtMTIuMi0zLjgtMTQuNy05LjdMNTkuOCAxNjQuMiA5LjcgMTQyLjdDMy44IDE0MC4yIDAgMTM0LjQgMCAxMjhzMy44LTEyLjIgOS43LTE0LjdMNTkuOCA5MS44IDgxLjMgNDEuN0M4My44IDM1LjggODkuNiAzMiA5NiAzMnMxMi4yIDMuOCAxNC43IDkuN3pNNDY0IDMwNGM2LjQgMCAxMi4yIDMuOCAxNC43IDkuN2wyMS41IDUwLjEgNTAuMSAyMS41YzUuOSAyLjUgOS43IDguMyA5LjcgMTQuN3MtMy44IDEyLjItOS43IDE0LjdsLTUwLjEgMjEuNS0yMS41IDUwLjFjLTIuNSA1LjktOC4zIDkuNy0xNC43IDkuN3MtMTIuMi0zLjgtMTQuNy05LjdsLTIxLjUtNTAuMS01MC4xLTIxLjVjLTUuOS0yLjUtOS43LTguMy05LjctMTQuN3MzLjgtMTIuMiA5LjctMTQuN2w1MC4xLTIxLjUgMjEuNS01MC4xYzIuNS01LjkgOC4zLTkuNyAxNC43LTkuN3pNNDYwIDBjMTEgMCAyMS42IDQuNCAyOS41IDEyLjJsNDIuMyA0Mi4zQzUzOS42IDYyLjQgNTQ0IDczIDU0NCA4NHMtNC40IDIxLjYtMTIuMiAyOS41bC04OC4yIDg4LjItMTAxLjMtMTAxLjMgODguMi04OC4yQzQzOC40IDQuNCA0NDkgMCA0NjAgMHpNNDQuMiAzOTguNUwzMDguNCAxMzQuMyA0MDkuNyAyMzUuNiAxNDUuNSA0OTkuOEMxMzcuNiA1MDcuNiAxMjcgNTEyIDExNiA1MTJzLTIxLjYtNC40LTI5LjUtMTIuMkw0NC4yIDQ1Ny41QzM2LjQgNDQ5LjYgMzIgNDM5IDMyIDQyOHM0LjQtMjEuNiAxMi4yLTI5LjV6Il19LGdQcj1QQmUsYlByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjdmNSIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMjE3LjYgMTUzLjZjMC0xMC42IDguNi0xOS4yIDE5LjItMTkuMmwzOC40IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmwwIDQ4IDQ4IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmwwIDM4LjRjMCAxMC42LTguNiAxOS4yLTE5LjIgMTkuMmwtNDggMCAwIDQ4YzAgMTAuNi04LjYgMTkuMi0xOS4yIDE5LjJsLTM4LjQgMGMtMTAuNiAwLTE5LjItOC42LTE5LjItMTkuMmwwLTQ4LTQ4IDBjLTEwLjYgMC0xOS4yLTguNi0xOS4yLTE5LjJsMC0zOC40YzAtMTAuNiA4LjYtMTkuMiAxOS4yLTE5LjJsNDggMCAwLTQ4eiJdfSx4UHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVsbC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjc3LDYxOTQzXSwiZjFmNiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04Ny41LTg3LjVjMTcuMi0yLjQgMzAuNS0xNy4zIDMwLjUtMzUuMiAwLTguMS0yLjctMTUuOS03LjgtMjIuMmwtOS44LTEyLjJDNDY0LjQgMzA4LjUgNDQ4IDI2MS44IDQ0OCAyMTMuN2wwLTIxLjdjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhsMC0zLjJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzLjJjLTM4LjYgNy44LTcyLjIgMjkuNi05NS4yIDU5LjdMNDEtMjQuOXptODcgMjM4LjVjMCA0OC4xLTE2LjQgOTQuOC00Ni40IDEzMi40bC05LjggMTIuMmMtNSA2LjMtNy44IDE0LjEtNy44IDIyLjIgMCAxOS42IDE1LjkgMzUuNSAzNS41IDM1LjVsMjM1LjMgMC0yMDYuOS0yMDYuOSAwIDQuNXpNMjg4IDUxMmMyOS44IDAgNTQuOS0yMC40IDYyLTQ4bC0xMjQgMGM3LjEgMjcuNiAzMi4yIDQ4IDYyIDQ4eiJdfSxVdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlLXNsYXNoIixpY29uOls1NzYsNTEyLFs1NzQzOSwiaGFuZHNoYWtlLWFsdC1zbGFzaCIsImhhbmRzaGFrZS1zaW1wbGUtc2xhc2giXSwiZTA2MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0yODgtMjg4IDE0LjItMTQuMmM0LjItNC4yIDkuNS02LjUgMTQuOS02LjkgNi44LS42IDEzLjggMS43IDE5IDYuOUw1MDUuNiAzNzYgNTc2IDMyMCA1NzYgMzIgNDY0IDk2IDQ0MC4yIDgwLjFDNDI0LjQgNjkuNiA0MDUuOSA2NCAzODYuOSA2NGwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjFsLTU1LjggNjIuMS0zNC0zNCA0NC4zLTQ5LjItMzkuNyAwYy0xNS4zIDAtMzAuMSAzLjYtNDMuNSAxMC40TDQxLTI0Ljl6TTAgNjkuOEwwIDMyMCAxNTYuNCA0NTAuM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMjIuMiAwIDQzLjgtNS44IDYyLjgtMTYuNEwwIDY5Ljh6Il19LHZQcj1VdWUseVByPVV1ZSx3UHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLXdhdGVyIixpY29uOlszMjAsNTEyLFtdLCJlNGM1IiwiTTExMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwQzk0LjMgMzIgODAgMTcuNyA4MCAwczE0LjMtMzIgMzItMzJ6TTE2IDE0NGMwLTM1LjMgMjguNy02NCA2NC02NGwxNjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDI0LjEtMTMuMyA0NS4xLTMzIDU2IDE5LjcgMTAuOSAzMyAzMS45IDMzIDU2cy0xMy4zIDQ1LjEtMzMgNTZjMTkuNyAxMC45IDMzIDMxLjkgMzMgNTZzLTEzLjMgNDUuMS0zMyA1NmMxOS43IDEwLjkgMzMgMzEuOSAzMyA1NiAwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjQuMSAxMy4zLTQ1LjEgMzMtNTYtMTkuNy0xMC45LTMzLTMxLjktMzMtNTZzMTMuMy00NS4xIDMzLTU2Yy0xOS43LTEwLjktMzMtMzEuOS0zMy01NnMxMy4zLTQ1LjEgMzMtNTZjLTE5LjctMTAuOS0zMy0zMS45LTMzLTU2eiJdfSxrUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1kMjAiLGljb246WzUxMiw1MTIsW10sImY2Y2YiLCJNMjI0LjQtOC4yYzE5LjYtMTEuMSA0My42LTExLjEgNjMuMSAwbDE5MiAxMDguOGMyMCAxMS40IDMyLjQgMzIuNiAzMi40IDU1LjdsMCAyMTUuNmMwIDIzLTEyLjQgNDQuMy0zMi40IDU1LjdsLTE5MiAxMDguOGMtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBMMzIuNCA0MjcuNUMxMi40IDQxNi4xIDAgMzk0LjggMCAzNzEuOEwwIDE1Ni4yYzAtMjMgMTIuNC00NC4zIDMyLjQtNTUuN0wyMjQuNC04LjJ6bTUyIDczLjJDMjY3IDQ5LjggMjQ1IDQ5LjggMjM1LjYgNjVsLTc2LjYgMTIzLjctODUuNC00Ni4zLTMuOC0xLjZjLTguOS0yLjctMTguOCAxLjEtMjMuNCA5LjZzLTIuNCAxOC45IDQuNyAyNC44bDMuMyAyLjMgODMuNCA0NS4yLTc0LjYgMTIwLjZDNTUuMyAzNTYuMiA2MSAzNzMgNzUgMzc4LjRsMTYxIDYxLjkgMCAzOS43YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMzkuNyAxNjEtNjEuOWMxNC01LjQgMTkuNy0yMi4yIDExLjgtMzVsLTc0LjctMTIwLjYgODMuNC00NS4yYzkuNy01LjMgMTMuMy0xNy40IDguMS0yNy4xcy0xNy40LTEzLjMtMjcuMS04LjFMMzUzIDE4OC43IDI3Ni40IDY1em0tNDcgMzI5LjlsLTEyMi00Ni45IDU0LjUtODguMSA2Ny41IDEzNXpNNDA0LjYgMzQ4bC0xMjIgNDYuOSA2Ny41LTEzNSA1NC41IDg4LjF6TTMxOS4zIDIzMkwyNTYgMzU4LjYgMTkyLjcgMjMyIDMxOS4zIDIzMnpNMzA4IDE5MmwtMTA0LjEgMCA1Mi04NCA1MiA4NHoiXX0sV3VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tei1hIixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS1kZXNjIiwic29ydC1hbHBoYS1kb3duLWFsdCJdLCJmODgxIiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMjg4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMzk3LjMgMTYwIDQ0OCAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOUwzNzAuOCA5NiAzMjAgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00MTIuNiAyNzMuN2w4MCAxNjBjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtNy4yLTE0LjMtODguNCAwLTcuMiAxNC4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDgwLTE2MGM1LjQtMTAuOCAxNi41LTE3LjcgMjguNi0xNy43czIzLjIgNi44IDI4LjYgMTcuN3pNMzg0IDM1OS42bC0yMC4yIDQwLjQgNDAuNCAwLTIwLjItNDAuNHoiXX0sU1ByPVd1ZSxNUHI9V3VlLENQcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicnVzaCIsaWNvbjpbMzg0LDUxMixbXSwiZjU1ZCIsIk0xNjIuNCA2Yy0xLjUtMy42LTUtNi04LjktNmwtMTkgMGMtMy45IDAtNy41IDIuNC04LjkgNkwxMDQuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDY2LjQgNmMtMS41LTMuNi01LTYtOC45LTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhsMCAyMDggMzg0IDAgMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjMwLjUgMGMtMy45IDAtNy41IDIuNC04LjkgNkwyMDAuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDE2Mi40IDZ6TTAgMzA0bDAgMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMCAwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC02NCA2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTYtMzg0IDB6TTE5MiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnoiXX0selByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWRhc2hlZC1saW5lLWFycm93LXJpZ2h0IixpY29uOls2NDAsNTEyLFtdLCJlNTUzIiwiTTE2MCA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNNzMuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMMjguMSAxODIuNkMxMC4xIDIwMC42IDAgMjI1IDAgMjUwLjVMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6TTg1LjggNDA3LjNjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDkuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhMODUuOCA0MDcuM3pNNDMyIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMzg0LTUuMyAzODQgOGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnptMCAxMjhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTQwOCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTYwOSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxOQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtc2hvcnQtd2lkZSIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LXVwLWFsdCJdLCJmODg1IiwiTTMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwem0wIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwem0wIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMHpNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2eiJdfSxfUHI9TkJlLE9CZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLXZlcnRpY2FsIixpY29uOlszMjAsNTEyLFsiZ3JpZC12ZXJ0aWNhbCJdLCJmNThlIiwiTTEyOCA0MGMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAwQzE3LjkgMCAwIDE3LjkgMCA0MEwwIDg4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHptMCAxOTJjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4ek0wIDQyNGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6TTMyMCA0MGMwLTIyLjEtMTcuOS00MC00MC00MEwyMzIgMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6TTE5MiAyMzJsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek0zMjAgNDI0YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHoiXX0sVFByPU9CZSxMUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLXR1bm5lbCIsaWNvbjpbNTEyLDUxMixbXSwiZTRkZSIsIk0yNTYgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDIuOCAwYy02LjYtNS45LTEwLjgtMTQuNC0xMC44LTI0bDAtMTEzLjFjMC0xMy41IDMuMS0yNi44IDktMzguOWwzOS43LTgwLjhjOS40LTE5LjEgMjguOS0zMS4zIDUwLjItMzEuM0wzMTcgMjI0YzIxLjMgMCA0MC44IDEyLjEgNTAuMiAzMS4zTDQwNyAzMzZjNS45IDEyLjEgOSAyNS40IDkgMzguOUw0MTYgNDg4YzAgOS42LTQuMiAxOC4xLTEwLjggMjRsNDIuOCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyQzUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwek0zNjIuOCA1MTJjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRsMC0yNC0xOTIgMCAwIDI0YzAgOS42LTQuMiAxOC4xLTEwLjggMjRsMjEzLjcgMHptLTE3NS0yMzUuNWwtMjkuMyA1OS41IDE5NC45IDAtMjkuMy01OS41Yy0xLjMtMi43LTQuMS00LjUtNy4yLTQuNUwxOTUgMjcyYy0zIDAtNS44IDEuNy03LjIgNC41ek0xNzYgNDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMTg0LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LERQcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1jb2x1bW4iLGljb246WzUxMiw1MTIsW10sImUwZTMiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnpNMTQ0IDIyNGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE0NC02NGwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem04MCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTUxMiA5NmwwIDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSwkUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fwcmljb3JuIixpY29uOls1NzYsNTEyLFtdLCJlODQ4IiwiTTI0MCAzMmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGwwIDY1LjJjMTguOC0xMC45IDQwLjctMTcuMiA2NC0xNy4yIDcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzUxOC43IDQ4MCA0NDggNDgwYy0zNS44IDAtNjguMi0xNC43LTkxLjQtMzguNC0yOC44IDQyLjUtNzcuNCA3MC40LTEzMi42IDcwLjQtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmM1MyAwIDk2LTQzIDk2LTk2bDAtMTc2YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0LTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgMzIgMzIgMzJDNzIuNiAzMiAxMDguOCA1MSAxMzIuMiA4MC41IDE1OC42IDUwLjcgMTk3LjEgMzIgMjQwIDMyek00NDggMjg4YTY0IDY0IDAgMSAwIDAgMTI4IDY0IDY0IDAgMSAwIDAtMTI4eiJdfSxBUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stYXJyb3ctcmlnaHQiLGljb246WzU3Niw1MTIsW10sImU1OGIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMzA1IDIyNWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMDIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjl6Il19LEd1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0diIsaWNvbjpbNTc2LDUxMixbNjM3MTcsInRlbGV2aXNpb24iLCJ0di1hbHQiXSwiZjI2YyIsIk02NCA5NmwwIDI0MCA0NDggMCAwLTI0MC00NDggMHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0MDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTE2MCA0NDhsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxFUHI9R3VlLElQcj1HdWUsUFByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlY3Rpb24iLGljb246WzI1Niw1MTIsW10sImU0NDciLCJNMTEwIDBDNDkuMiAwIDAgNDkuMiAwIDExMCAwIDEzMy43IDcuNiAxNTUuOCAyMC41IDE3NCA3LjYgMTkyIDAgMjE0LjEgMCAyMzggMCAyOTEuNyAzOC45IDMzNy42IDkxLjkgMzQ2LjRsNjEuNyAxMC4zYzIyLjIgMy43IDM4LjQgMjIuOSAzOC40IDQ1LjMgMCAyNS40LTIwLjYgNDYtNDYgNDZsLTk4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTggMGM2MC43IDAgMTEwLTQ5LjIgMTEwLTExMCAwLTIzLjctNy42LTQ1LjktMjAuNS02NCAxMi45LTE4IDIwLjUtNDAuMSAyMC41LTY0IDAtNTMuOC0zOC45LTk5LjYtOTEuOS0xMDguNWwtNjEuNy0xMC4zQzgwLjIgMTUxLjYgNjQgMTMyLjQgNjQgMTEwIDY0IDg0LjYgODQuNiA2NCAxMTAgNjRsOTggMGMxNy43IDAgMzItMTQuMyAzMi0zMlMyMjUuNyAwIDIwOCAwTDExMCAwem03NC43IDI5OS4xYy02LjUtMi40LTEzLjQtNC4zLTIwLjUtNS41bC02MS43LTEwLjNjLTIyLjItMy43LTM4LjQtMjIuOS0zOC40LTQ1LjMgMC05LjIgMi43LTE3LjggNy40LTI1IDYuNSAyLjQgMTMuNCA0LjMgMjAuNSA1LjVsNjEuNyAxMC4zYzIyLjIgMy43IDM4LjQgMjIuOSAzOC40IDQ1LjMgMCA5LjItMi43IDE3LjgtNy40IDI1eiJdfSxOUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVhY2UiLGljb246WzUxMiw1MTIsWzk3NzRdLCJmNjdjIiwiTTIyNCA0NDUuM2wwLTEyMS44LTk0LjMgNzcuMWMyNi4xIDIyLjggNTguNSAzOC43IDk0LjMgNDQuN3pNODkuMiAzNTEuMUwyMjQgMjQwLjggMjI0IDY2LjdjLTkwLjggMTUuMi0xNjAgOTQuMi0xNjAgMTg5LjMgMCAzNC42IDkuMiA2Ny4xIDI1LjIgOTUuMXptMjkzLjEgNDkuNWwtOTQuMy03Ny4xIDAgMTIxLjhjMzUuNy02IDY4LjEtMjEuOSA5NC4zLTQ0Ljd6bTQwLjYtNDkuNWMxNi0yOCAyNS4yLTYwLjUgMjUuMi05NS4xIDAtOTUuMS02OS4yLTE3NC4xLTE2MC0xODkuM2wwIDE3NC4yIDEzNC44IDExMC4zek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxPUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhciIsaWNvbjpbNTc2LDUxMixbMTEwODgsNjE0NDZdLCJmMDA1IiwiTTMwOS41LTE4LjljLTQuMS04LTEyLjQtMTMuMS0yMS40LTEzLjFzLTE3LjMgNS4xLTIxLjQgMTMuMUwxOTMuMSAxMjUuMyAzMy4yIDE1MC43Yy04LjkgMS40LTE2LjMgNy43LTE5LjEgMTYuM3MtLjUgMTggNS44IDI0LjRsMTE0LjQgMTE0LjUtMjUuMiAxNTkuOWMtMS40IDguOSAyLjMgMTcuOSA5LjYgMjMuMnMxNi45IDYuMSAyNSAyTDI4OC4xIDQxNy42IDQzMi40IDQ5MWM4IDQuMSAxNy43IDMuMyAyNS0yczExLTE0LjIgOS42LTIzLjJMNDQxLjcgMzA1LjkgNTU2LjEgMTkxLjRjNi40LTYuNCA4LjYtMTUuOCA1LjgtMjQuNHMtMTAuMS0xNC45LTE5LjEtMTYuM0wzODMgMTI1LjMgMzA5LjUtMTguOXoiXX0sUlByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYWciLGljb246WzQ0OCw1MTIsWzEyNzk4OCw2MTcyNV0sImYwMjQiLCJNNjQgMzJDNjQgMTQuMyA0OS43IDAgMzIgMFMwIDE0LjMgMCAzMkwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTIxLjYgNjIuNy0xOC44YzQxLjktMTIuNiA4Ny4xLTguNyAxMjYuMiAxMC45IDQyLjcgMjEuNCA5Mi41IDI0IDEzNy4yIDcuMmwzNy4xLTEzLjljMTIuNS00LjcgMjAuOC0xNi42IDIwLjgtMzBsMC0yNDcuN2MwLTIzLTI0LjItMzgtNDQuOC0yNy43bC0xMS44IDUuOWMtNDQuOSAyMi41LTk3LjggMjIuNS0xNDIuOCAwLTM2LjQtMTguMi03OC4zLTIxLjgtMTE3LjItMTAuMUw2NCA1NC40IDY0IDMyeiJdfSxZdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJpYW5nbGUtZXhjbGFtYXRpb24iLGljb246WzUxMiw1MTIsWzk4ODgsImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIiwid2FybmluZyJdLCJmMDcxIiwiTTI1NiAwYzE0LjcgMCAyOC4yIDguMSAzNS4yIDIxbDIxNiA0MDBjNi43IDEyLjQgNi40IDI3LjQtLjggMzkuNVM0ODYuMSA0ODAgNDcyIDQ4MEw0MCA0ODBjLTE0LjEgMC0yNy4yLTcuNC0zNC40LTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMGM3LTEyLjkgMjAuNS0yMSAzNS4yLTIxem0wIDM1MmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAtMTkyYy0xOC4yIDAtMzIuNyAxNS41LTMxLjQgMzMuN2w3LjQgMTA0Yy45IDEyLjUgMTEuNCAyMi4zIDIzLjkgMjIuMyAxMi42IDAgMjMtOS43IDIzLjktMjIuM2w3LjQtMTA0YzEuMy0xOC4yLTEzLjEtMzMuNy0zMS40LTMzLjd6Il19LEZQcj1ZdWUsQlByPVl1ZSxIUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU2YyIsIk02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI3NiAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC05MC45IDAgMC04OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzEgMCAxLjkgMCAyLjkgLjEgMjYuMy03NC42IDk3LjUtMTI4LjEgMTgxLjEtMTI4LjEgMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC0zMy40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwLTEyNy45LTExNS4xYy0xOC4zLTE2LjQtNDYtMTYuNC02NC4yIDBMMTI4IDEyOCA2NCAxMjh6bTY0IDI0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyek0xMTIgMjU2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZ6TTI4OCAxMjhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxSQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JhZHVhdGlvbi1jYXAiLGljb246WzU3Niw1MTIsWzEyNzg5MSwibW9ydGFyLWJvYXJkIl0sImYxOWQiLCJNNDggMTk1LjhsMjA5LjIgODYuMWM5LjggNCAyMC4yIDYuMSAzMC44IDYuMXMyMS0yLjEgMzAuOC02LjFsMjQyLjQtOTkuOGM5LTMuNyAxNC44LTEyLjQgMTQuOC0yMi4xcy01LjgtMTguNC0xNC44LTIyLjFMMzE4LjggMzguMUMzMDkgMzQuMSAyOTguNiAzMiAyODggMzJzLTIxIDIuMS0zMC44IDYuMUwxNC44IDEzNy45QzUuOCAxNDEuNiAwIDE1MC4zIDAgMTYwTDAgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNjAuMnptNDggNzEuN0w5NiAzODRjMCA1MyA4NiA5NiAxOTIgOTZzMTkyLTQzIDE5Mi05NmwwLTExNi42LTE0Mi45IDU4LjljLTE1LjYgNi40LTMyLjIgOS43LTQ5LjEgOS43cy0zMy41LTMuMy00OS4xLTkuN0w5NiAyNjcuNHoiXX0scVByPVJCZSxWUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcmUiLGljb246WzUxMiw1MTIsW10sImY1NGUiLCJNMzAuNyA3Mi4zQzM3LjYgNDguNCA1OS41IDMyIDg0LjQgMzJsMzQ0IDBjMjQuOSAwIDQ2LjggMTYuNCA1My44IDQwLjNsMjMuNCA4MC4yYzEyLjggNDMuNy0yMC4xIDg3LjUtNjUuNiA4Ny41LTI2LjMgMC00OS40LTE0LjktNjAuOC0zNy4xLTExLjYgMjEuOS0zNC42IDM3LjEtNjEuNCAzNy4xLTI2LjYgMC00OS43LTE1LTYxLjMtMzctMTEuNiAyMi0zNC43IDM3LTYxLjMgMzctMjYuOCAwLTQ5LjgtMTUuMS02MS40LTM3LjEtMTEuNCAyMi4xLTM0LjUgMzcuMS02MC44IDM3LjEtNDUuNiAwLTc4LjQtNDMuNy02NS42LTg3LjVMMzAuNyA3Mi4zek05Ni40IDM1MmwzMjAgMCAwLTY2LjRjNy42IDEuNiAxNS41IDIuNCAyMy41IDIuNCAxNC4zIDAgMjgtMi42IDQwLjUtNy4ybDAgMTUxLjJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTM1MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE1MS4yYzEyLjUgNC42IDI2LjEgNy4yIDQwLjUgNy4yIDguMSAwIDE1LjktLjggMjMuNS0yLjRsMCA2Ni40eiJdfSxqUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1hc3Ryb25hdXQiLGljb246WzQ0OCw1MTIsW10sImY0ZmIiLCJNMjI0IDMzNmM3NC42IDAgMTM4LjQtNDYuNCAxNjQtMTEybDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC00IDBDMzYyLjQgMzAuNCAyOTguNi0xNiAyMjQtMTZTODUuNiAzMC40IDYwIDk2bC00IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNCAwYzI1LjYgNjUuNiA4OS40IDExMiAxNjQgMTEyek0yMDggODBsMzIgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMzIgMGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NnpNMTYgNDg0LjZDMTYgNDk5LjcgMjguMyA1MTIgNDMuNCA1MTJsNTIuNiAwIDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OCA1Mi42IDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC01OS44LTMxLjktMTEyLjItNzkuNi0xNDEtMzYuNCAyNS41LTgwLjYgNDAuNC0xMjguNCA0MC40cy05Mi0xNC45LTEyOC40LTQwLjRDNDcuOSAzNzIuNCAxNiA0MjQuOCAxNiA0ODQuNnpNMTgzLjMgMTQxLjVjLS45LTMuMy0zLjktNS41LTcuMy01LjVzLTYuNCAyLjItNy4zIDUuNWwtNiAyMS4yLTIxLjIgNmMtMy4zIC45LTUuNSAzLjktNS41IDcuM3MyLjIgNi40IDUuNSA3LjNsMjEuMiA2IDYgMjEuMmMuOSAzLjMgMy45IDUuNSA3LjMgNS41czYuNC0yLjIgNy4zLTUuNWw2LTIxLjIgMjEuMi02YzMuMy0uOSA1LjUtMy45IDUuNS03LjNzLTIuMi02LjQtNS41LTcuM2wtMjEuMi02LTYtMjEuMnpNMTUyIDQ4OGwwIDI0IDQ4IDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptMTIwLTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDI0IDQ4IDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sVVByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWZsYWciLGljb246WzY0MCw1MTIsW10sImU0ZDUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTc2IDM1MmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtOTYgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjQwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTk2IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yODggMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEZCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtdWctc2F1Y2VyIixpY29uOls1NzYsNTEyLFsiY29mZmVlIl0sImYwZjQiLCJNNjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzUyIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNTE4LjcgMjg4IDQ0OCAyODhjMCA1My00MyA5Ni05NiA5NmwtMTkyIDBjLTUzIDAtOTYtNDMtOTYtOTZMNjQgNjR6bTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NGwwIDEyOGMzNS4zIDAgNjQtMjguNyA2NC02NHpNNjQgNDQ4bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sV1ByPUZCZSxHUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVtb24iLGljb246WzQ0OCw1MTIsWzEyNzgxOV0sImYwOTQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0LTYuNiAwLTEzIDEtMTkgMi45LTIyLjUgNy00OC4xIDE0LjktNzEgOS03NS4yLTE5LjEtMTU2LjQgMTEtMjEzLjcgNjguM1MtNy4yIDI1MC44IDExLjkgMzI2YzUuOCAyMi45LTIgNDguNC05IDcxLTEuOSA2LTIuOSAxMi40LTIuOSAxOSAwIDM1LjMgMjguNyA2NCA2NCA2NCA2LjYgMCAxMy0xIDE5LjEtMi45IDIyLjUtNyA0OC4xLTE0LjkgNzEtOSA3NS4yIDE5LjEgMTU2LjQtMTEgMjEzLjctNjguM1M0NTUuMiAyNjEuMiA0MzYuMSAxODZjLTUuOC0yMi45IDItNDguNCA5LTcxIDEuOS02IDIuOS0xMi40IDIuOS0xOS4xek0yMjIuNyAxNDNjLTUyIDE1LjItOTYuNSA1OS43LTExMS43IDExMS43LTMuNyAxMi43LTE3LjEgMjAtMjkuOCAxNi4zUzYxLjIgMjU0IDY1IDI0MS4zYzE5LjgtNjcuNyA3Ni42LTEyNC41IDE0NC4zLTE0NC4zIDEyLjctMy43IDI2LjEgMy42IDI5LjggMTYuM3MtMy42IDI2LjEtMTYuMyAyOS44eiJdfSxZUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyYXZhbiIsaWNvbjpbNjQwLDUxMixbXSwiZjhmZiIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDE5MiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOTYuNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOEw5NiA0MTZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDk2ek0zNTIgMzUybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00OC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJ6TTE2MCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwem02NCAzMzZhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxLUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicSIsaWNvbjpbNDQ4LDUxMixbMTEzXSwiNTEiLCJNNjQgMjU2YzAgODguNCA3MS42IDE2MCAxNjAgMTYwIDI4LjkgMCA1Ni03LjcgNzkuNC0yMS4xbC03Mi04Ni40Yy0xMS4zLTEzLjYtOS41LTMzLjggNC4xLTQ1LjFzMzMuOC05LjUgNDUuMSA0LjFsNzAuOSA4NS4xYzIwLjQtMjYuOCAzMi41LTYwLjMgMzIuNS05Ni42IDAtODguNC03MS42LTE2MC0xNjAtMTYwUzY0IDE2Ny42IDY0IDI1NnpNMzQ0LjkgNDQ0LjZDMzEwIDQ2NyAyNjguNSA0ODAgMjI0IDQ4MCAxMDAuMyA0ODAgMCAzNzkuNyAwIDI1NlMxMDAuMyAzMiAyMjQgMzIgNDQ4IDEzMi4zIDQ0OCAyNTZjMCA1Ni4xLTIwLjYgMTA3LjQtNTQuNyAxNDYuN2w0Ny4zIDU2LjhjMTEuMyAxMy42IDkuNSAzMy44LTQuMSA0NS4xcy0zMy44IDkuNS00NS4xLTQuMWwtNDYuNi01NS45eiJdfSxaUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc0XSwiZjAyMyIsIk0xMjggOTZsMCA2NCAxMjggMCAwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0ek02NCAxNjBsMC02NEM2NCAyNS4zIDEyMS4zLTMyIDE5Mi0zMlMzMjAgMjUuMyAzMjAgOTZsMCA2NGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0eiJdfSxRUHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFpbnQtcm9sbGVyIixpY29uOls1MTIsNTEyLFtdLCJmNWFhIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDE2IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCA5NmMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTYwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE4LjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtMTguN2MwLTQ0LjIgMzUuOC04MCA4MC04MGwxNjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0eiJdfSxCQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLWhpZ2giLGljb246WzY0MCw1MTIsWzEyODI2Niwidm9sdW1lLXVwIl0sImYwMjgiLCJNNTMzLjYgMzIuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzU1Ny41IDExMy44IDU5MiAxODAuOCA1OTIgMjU2cy0zNC41IDE0Mi4yLTg4LjcgMTg2LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNTk4LjUgNDI2LjcgNjQwIDM0Ni4yIDY0MCAyNTZTNTk4LjUgODUuMiA1MzMuNiAzMi41ek00NzMuMSAxMDdjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEM0NzUuMyAxNzAuNyA0OTYgMjEwLjkgNDk2IDI1NnMtMjAuNyA4NS4zLTUzLjIgMTExLjhjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVjNDMuMi0zNS4yIDcwLjktODguOSA3MC45LTE0OXMtMjcuNy0xMTMuOC03MC45LTE0OXptLTYwLjUgNzQuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzM5My4xIDIyNy42IDQwMCAyNDEgNDAwIDI1NnMtNi45IDI4LjQtMTcuNyAzNy4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzQzNC4xIDMxMi45IDQ0OCAyODYuMSA0NDggMjU2cy0xMy45LTU2LjktMzUuNC03NC41ek04MCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMMTI4IDE2MCA4MCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6Il19LFhQcj1CQmUsSlByPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1wbHVzIixpY29uOls1MTIsNTEyLFtdLCJmNjVlIiwiTTUxMiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNEw0NDggODBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDB6TTI1NiAxNjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sZU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lcmN1cnkiLGljb246WzM4NCw1MTIsWzk3OTFdLCJmMjIzIiwiTTExNy00QzEwNi0xNy44IDg1LjgtMjAgNzIuMS05cy0xNiAzMS4yLTUgNDVDNzQuOSA0NS43IDgzLjcgNTQuNSA5My41IDYyLjEgNDYuNyA5My43IDE2IDE0Ny4zIDE2IDIwOCAxNiAyOTQuMyA3OC4xIDM2Ni4xIDE2MCAzODEuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45YzgxLjktMTUgMTQ0LTg2LjggMTQ0LTE3My4xIDAtNjAuNy0zMC43LTExNC4zLTc3LjUtMTQ1LjkgOS44LTcuNyAxOC43LTE2LjQgMjYuNC0yNi4xIDExLjEtMTMuOCA4LjgtMzMuOS01LTQ1UzI3OC0xNy44IDI2Ny00Yy0xNy42IDIyLTQ0LjcgMzYtNzUgMzZTMTM0LjcgMTggMTE3LTR6bTc1IDMyNGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTJTMTMwLjEgOTYgMTkyIDk2IDMwNCAxNDYuMSAzMDQgMjA4YzAgNjEuOC01MC4xIDExMi0xMTEuOSAxMTJsLS4xIDB6Il19LHROcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3IiLGljb246WzU3Niw1MTIsWzk4NzVdLCJmMTNkIiwiTTI4OCA2NGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTE5MiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDEuOC0yNi43IDc3LjQtNjQgOTAuNWwwIDI1Ny45YzYyLjktMTQuMyAxMTAuMi02OS43IDExMS45LTEzNi41bC0xNi4xIDE0LjFjLTEwIDguNy0yNS4xIDcuNy0zMy45LTIuM3MtNy43LTI1LjEgMi4zLTMzLjlsNjQtNTZjOS03LjkgMjIuNi03LjkgMzEuNiAwbDY0IDU2YzEwIDguNyAxMSAyMy45IDIuMyAzMy45cy0yMy45IDExLTMzLjkgMi4zTDQ5NiAzMDcuOUM0OTMuOSA0MjEgNDAxLjYgNTEyIDI4OCA1MTJTODIuMSA0MjEgODAgMzA3LjlMNjMuOCAzMjIuMWMtMTAgOC43LTI1LjEgNy43LTMzLjktMi4zcy03LjctMjUuMSAyLjMtMzMuOWw2NC01NmM5LTcuOSAyMi42LTcuOSAzMS42IDBsNjQgNTZjMTAgOC43IDExIDIzLjkgMi4zIDMzLjlzLTIzLjkgMTEtMzMuOSAyLjNsLTE2LjEtMTQuMWMxLjggNjYuOCA0OS4xIDEyMi4yIDExMS45IDEzNi41bDAtMjU3LjljLTM3LjMtMTMuMi02NC00OC43LTY0LTkwLjV6Il19LEhCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGFya2luZyIsaWNvbjpbNDQ4LDUxMixbMTI3MzU5LCJwYXJraW5nIl0sImY1NDAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMTkyIDI1Nmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwIDAgNjR6bTQ4IDY0bC00OCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xODRjMC0yMi4xIDE3LjktNDAgNDAtNDBsNzIgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NnoiXX0sck5yPUhCZSxhTnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFudWtpYWgiLGljb246WzY0MCw1MTIsWzEyODMzNF0sImY2ZTYiLCJNMzE0LjIgMy4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zem0tMjg4IDQ4QzIxLjEgNjAuMSA4IDg0LjYgOCAxMDQgOCAxMTcuMyAxOC43IDEyOCAzMiAxMjhzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek04OCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzEwMS4xIDYwLjEgODggODQuNiA4OCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNMjE2IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDMjI5LjEgNjAuMSAyMTYgODQuNiAyMTYgMTA0ek0zOTQuMiA1MS4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek00NDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0M0NTMuMSA2MC4xIDQ0MCA4NC42IDQ0MCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNTg0IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDNTk3LjEgNjAuMSA1ODQgODQuNiA1ODQgMTA0ek0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnpNMzUyIDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3Ni0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDE3NC4zIDAgMTkybDAgOTZjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMCAwIDY0LTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMCAwLTY0IDE5MiAwYzUzIDAgOTYtNDMgOTYtOTZsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xOTIgMCAwLTE3NnoiXX0sQl89e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm90YXRlLWxlZnQiLGljb246WzUxMiw1MTIsWyJyb3RhdGUtYmFjayIsInJvdGF0ZS1iYWNrd2FyZCIsInVuZG8tYWx0Il0sImYyZWEiLCJNMjQgMTkybDE0NCAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtNDYuNy00Ni43Yzc1LjMtNTguNiAxODQuMy01My4zIDI1My41IDE1LjkgNzUgNzUgNzUgMTk2LjUgMCAyNzEuNXMtMTk2LjUgNzUtMjcxLjUgMGMtMTAuMi0xMC4yLTE5LTIxLjMtMjYuNC0zMy05LjUtMTQuOS0yOS4zLTE5LjMtNDQuMi05LjhzLTE5LjMgMjkuMy05LjggNDQuMkM0OS43IDQwOC43IDYxLjQgNDIzLjUgNzUgNDM3IDE3NSA1MzcgMzM3IDUzNyA0MzcgNDM3UzUzNyAxNzUgNDM3IDc1QzM0Mi44LTE5LjMgMTkzLjMtMjQuNyA5Mi43IDU4LjhMNDEgN0MzNC4xIC4yIDIzLjgtMS45IDE0LjggMS44UzAgMTQuMyAwIDI0TDAgMTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0eiJdfSxpTnI9Ql8sc05yPUJfLG5Ocj1CXyxxQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZGluZyIsaWNvbjpbNDQ4LDUxMixbImhlYWRlciJdLCJmMWRjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDExMiAyMjQgMCAwLTExMi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAzMjAgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMTQ0LTIyNCAwIDAgMTQ0IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTMyMC0xNiAwQzE0LjMgOTYgMCA4MS43IDAgNjR6Il19LG9Ocj1xQmUsbE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3NzaGFpcnMiLGljb246WzU3Niw1MTIsW10sImYwNWIiLCJNMjg4LTE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTguM2M5OC4xIDE0IDE3NS43IDkxLjYgMTg5LjcgMTg5LjdsMTguMyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC4zIDBjLTE0IDk4LjEtOTEuNiAxNzUuNy0xODkuNyAxODkuN2wwIDE4LjNjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC4zQzE1Ny45IDQ2My43IDgwLjMgMzg2LjEgNjYuMyAyODhMNDggMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE4LjMgMEM4MC4zIDEyNS45IDE1Ny45IDQ4LjMgMjU2IDM0LjNMMjU2IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xMzEuMiAyODhjMTIuNyA2Mi43IDYyLjEgMTEyLjEgMTI0LjggMTI0LjhsMC0xMi44YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMi44YzYyLjctMTIuNyAxMTIuMS02Mi4xIDEyNC44LTEyNC44TDQzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTIuOCAwQzQzMi4xIDE2MS4zIDM4Mi43IDExMS45IDMyMCA5OS4ybDAgMTIuOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyLjhDMTkzLjMgMTExLjkgMTQzLjkgMTYxLjMgMTMxLjIgMjI0bDEyLjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTIuOCAwek0yODggMjA4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnoiXX0sY05yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1ub2RlcyIsaWNvbjpbNTEyLDUxMixbXSwiZTRlMiIsIk00MTguNCAxNTcuOWMzNS4zLTguMyA2MS42LTQwIDYxLjYtNzcuOSAwLTQ0LjItMzUuOC04MC04MC04MC00My40IDAtNzguNyAzNC41LTgwIDc3LjVMMTM2LjIgMTUxLjFDMTIxLjcgMTM2LjggMTAxLjkgMTI4IDgwIDEyOCAzNS44IDEyOCAwIDE2My44IDAgMjA4czM1LjggODAgODAgODBjMTIuMiAwIDIzLjgtMi43IDM0LjEtNy42TDI1OS43IDQwNy44Yy0yLjQgNy42LTMuNyAxNS44LTMuNyAyNC4yIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0yNy43LTE0LTUyLjEtMzUuNC02Ni40bDM3LjgtMjA3Ljd6TTE1Ni4zIDIzMi4yYzIuMi02LjkgMy41LTE0LjIgMy43LTIxLjdsMTgzLjgtNzMuNWMzLjYgMy41IDcuNCA2LjcgMTEuNiA5LjVMMzE3LjYgMzU0LjFjLTUuNSAxLjMtMTAuOCAzLjEtMTUuOCA1LjVMMTU2LjMgMjMyLjJ6Il19LGROcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctcmVzdG9yZSIsaWNvbjpbNTc2LDUxMixbXSwiZjJkMiIsIk01MTIgOTZMMTYwIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OCAwIDAtNjQgNDggMCAwLTE5MnpNMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNHptNjQgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sdU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InIiLGljb246WzMyMCw1MTIsWzExNF0sIjUyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCA5NS4zIDAgMTAyLjQgMTQ2LjRjMTAuMSAxNC41IDMwLjEgMTggNDQuNiA3LjlzMTgtMzAuMSA3LjktNDQuNkwyMzAuMSAzMDkuNUMyODIuOCAyODguMSAzMjAgMjM2LjQgMzIwIDE3NiAzMjAgOTYuNSAyNTUuNSAzMiAxNzYgMzJMMzIgMzJ6TTE3NiAyNTZsLTExMiAwIDAtMTYwIDExMiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgweiJdfSxwTnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTE3YiIsIk0zMiA2NEMxOS4xIDY0IDcuNCA3MS44IDIuNCA4My44Uy4yIDEwOS41IDkuNCAxMTguNkwxOTIgMzAxLjMgMTkyIDQxNmMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMyLjUgMi41IDUuMyA0LjUgOC4zIDYtMjEuMi0zMC45LTMzLjYtNjguMy0zMy42LTEwOC42IDAtOTkuNCA3NS41LTE4MS4xIDE3Mi4zLTE5MWw5MC40LTkwLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sZk5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdvcHVyYW0iLGljb246WzUxMiw1MTIsW10sImY2NjQiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4IDQwIDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4IDQ4IDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4IDQwIDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMzZjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA4MGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNDggMCAwLTIyNC0zMiAwIDAtMTI4LTQ4IDAgMCAxMjggMzIgMCAwIDIyNC0yMjQgMCAwLTIyNCAzMiAwIDAtMTI4LTQ4IDAgMCAxMjgtMzIgMCAwIDIyNC00OCAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMzNmMwLTI2LjUgMjEuNS00OCA0OC00OGwwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4TDk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek0yNTYgMjA4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjA4IDQwMGwwIDY0IDk2IDAgMC02NGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNMjU2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyIDY0IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0saE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1taW51cyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZiIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIyNCAwYzAtOC44LTcuMi0xNi0xNi0xNmwtMTI4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2eiJdfSxtTnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1vZi1saWZlIixpY29uOls1MTIsNTEyLFtdLCJmNjIxIiwiTTIwOC41IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNDAuOSAxMjItNzAuNGMxNS4zLTguOCAzNC45LTMuNiA0My43IDExLjdsMTYgMjcuN2M4LjggMTUuMyAzLjYgMzQuOS0xMS43IDQzLjdsLTEyMiA3MC40IDEyMiA3MC40YzE1LjMgOC44IDIwLjYgMjguNCAxMS43IDQzLjdsLTE2IDI3LjdjLTguOCAxNS4zLTI4LjQgMjAuNi00My43IDExLjdsLTEyMi03MC40IDAgMTQwLjljMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQwLjktMTIyIDcwLjRjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN2wtMTYtMjcuN2MtOC44LTE1LjMtMy42LTM0LjkgMTEuNy00My43bDEyMi03MC40LTEyMi03MC40Yy0xNS4zLTguOC0yMC41LTI4LjQtMTEuNy00My43bDE2LTI3LjdjOC44LTE1LjMgMjguNC0yMC41IDQzLjctMTEuN2wxMjIgNzAuNCAwLTE0MC45eiJdfSxWQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzaW5lc3MtdGltZSIsaWNvbjpbNjQwLDUxMixbImJyaWVmY2FzZS1jbG9jayJdLCJmNjRhIiwiTTI2NCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2IDMwNSAwYzMzLjgtMjkuOSA3OC4zLTQ4IDEyNy00OCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyNjQgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6bTgwIDI5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNi0xOTIgMCAwIDExMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTMuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0xNi42IDIuMS0zMi43IDYtNDhsLTIyIDB6bTM1MiA0OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwek00OTYgMzIwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sZ05yPVZCZSxiTnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZS1leHRpbmd1aXNoZXIiLGljb246WzUxMiw1MTIsWzEyOTUxOV0sImYxMzQiLCJNNTEyIDMyYzAtOS42LTQuMy0xOC43LTExLjctMjQuN1M0ODMuMS0xLjMgNDczLjcgLjZsLTE2MCAzMkMzMDEuNSAzNS4xIDI5MiA0NC4zIDI4OSA1NmwtNjUgMCAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI4LjRjLTU1LjMgMTIuMy0xMDEuMyA0OS41LTEyNS41IDk5LjEtNS44IDExLjktLjkgMjYuMyAxMS4xIDMyLjFzMjYuMyAuOSAzMi4xLTExLjFDNjIgMTQ2LjkgOTEuOCAxMjEuMSAxMjggMTEwbDAgMjguOGMtMzcuOCAxOC02NCA1Ni41LTY0IDEwMS4ybDAgMTI4IDIyNCAwIDAtMTI4YzAtNDQuNy0yNi4yLTgzLjItNjQtMTAxLjJsMC0zNC44IDY1IDBjMyAxMS43IDEyLjUgMjAuOSAyNC43IDIzLjRsMTYwIDMyYzkuNCAxLjkgMTkuMS0uNiAyNi42LTYuNlM1MTIgMTM3LjYgNTEyIDEyOGwwLTk2ek0yODggNDQ4bDAtMzItMjI0IDAgMCAzMmMwIDM1LjMgMjguNyA2NCA2NCA2NGw5NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0eiJdfSxqQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi1sb25nIixpY29uOlszMjAsNTEyLFsibG9uZy1hcnJvdy1kb3duIl0sImYxNzUiLCJNMTM3LjQgNTM0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIgNDM0LjcgMTkyIDBjMC0xNy43LTE0LjMtMzItMzItMzJTMTI4LTE3LjcgMTI4IDBsMCA0MzQuNy03My40LTczLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDEyOCAxMjh6Il19LHhOcj1qQmUsdk5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbWludXMiLGljb246WzY0MCw1MTIsW10sImY1MDMiLCJNMjg1LjcgMzA0Yzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDc3LjcgNTEyQzYxLjMgNTEyIDQ4IDQ5OC43IDQ4IDQ4Mi4zIDQ4IDM4My44IDEyNy44IDMwNCAyMjYuMyAzMDRsNTkuNCAwek0yNTYgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptMzQ0LTk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNDQgMHoiXX0seU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWNoZWNrIixpY29uOls1MTIsNTEyLFtdLCJmNTNjIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTk2IDMxMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNC0xMzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI3MiAweiJdfSxVQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbGFwdG9wIixpY29uOls2NDAsNTEyLFsibGFwdG9wLWhvdXNlIl0sImUwNjYiLCJNNDQ4IDI0MGwxOS45IDBjMTUuNSAwIDI4LjEtMTIuNiAyOC4xLTI4LjEgMC03LjYtMy4xLTE0LjktOC42LTIwLjJMMjgzLjUtNC45QzI3Ni4xLTEyIDI2Ni4zLTE2IDI1Ni0xNnMtMjAuMSA0LTI3LjUgMTEuMUwyNC42IDE5MS43QzE5LjEgMTk3IDE2IDIwNC4zIDE2IDIxMS45IDE2IDIyNy40IDI4LjYgMjQwIDQ0LjEgMjQwbDE5LjkgMCAwIDE0NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw4NS43IDBjNy40LTYuNiAxNi40LTExLjQgMjYuMy0xNGwwLTEzMGMwLTUuNSAuNy0xMC45IDItMTZsLTEwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0IDE0NCAwek0zNTIgMzUybDE2MCAwIDAgMTI4LTE2MCAwIDAtMTI4em0tNjQtMzJsMCAxNjAtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI4OCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSx3TnI9VUJlLGtOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3dubG9hZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAxOSIsIk0yNTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMTAuNy00MS40LTQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI1NiAyNDIuNyAyNTYgMzJ6TTY0IDMyMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC00Ni45IDAtNTYuNiA1Ni42Yy0zMS4yIDMxLjItODEuOSAzMS4yLTExMy4xIDBMMTEwLjkgMzIwIDY0IDMyMHptMzA0IDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sU05yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhZ2l0dGFyaXVzIixpY29uOls0NDgsNTEyLFtdLCJlODRkIiwiTTQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgyLjgtMTQ2LjggMTQ2LjggNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4ycy0zMi44IDEyLjUtNDUuMyAwTDE5MiAzMzMuMyA1NC42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjIgMHMtMTIuNS0zMi44IDAtNDUuMkwxNDYuOCAyODggMTA1LjQgMjQ2LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4yczMyLjgtMTIuNSA0NS4yIDBMMTkyIDI0Mi44IDMzOC44IDk2IDI1NiA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMHoiXX0sTU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvdWNoIixpY29uOls2NDAsNTEyLFtdLCJmNGI4IiwiTTE0NCAyNzJDMTQ0IDIyNC43IDEwOS44IDE4NS40IDY0LjggMTc3LjUgNzIgMTEzLjYgMTI2LjIgNjQgMTkyIDY0bDI1NiAwYzY1LjggMCAxMjAgNDkuNiAxMjcuMiAxMTMuNS00NSA4LTc5LjIgNDcuMi03OS4yIDk0LjVsMCAzMi0zNTIgMCAwLTMyek0wIDM4NEwwIDI3MmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgODAgNDQ4IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6Il19LENOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWxvY2siLGljb246WzU3Niw1MTIsW10sImU1NjciLCJNMjU2IDMybC03Ni4zIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDMzLjQgNDIwLjVDMjUuOSA0NTAuNyA0OC44IDQ4MCA4MCA0ODBsMTc1LjkgMCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyIDYuMSAwIDExLjggMS43IDE2LjcgNC43IDIuOC0yMy45IDE0LjMtNDUuMSAzMS40LTYwLjNsMC0yNC40YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4IDYuMiAwIDEyLjQgLjQgMTguNCAxLjNMNDU4LjUgODAuNkM0NTEuNCA1Mi4xIDQyNS44IDMyIDM5Ni4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em02NCAxOTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTE3NiA4MC4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek0zNTIgNDAwbDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTIwLjktMTMuNC0zOC43LTMyLTQ1LjNsMC01MC42YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgNTAuNmMtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zeiJdfSxXQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Npc3NvcnMiLGljb246WzUxMiw1MTIsWzk5ODQsOTk4Niw5OTg4LCJjdXQiXSwiZjBjNCIsIk0xOTIgMjU2bC0zOS41IDM5LjVjLTEyLjYtNC45LTI2LjItNy41LTQwLjUtNy41LTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyczUwLjEgMTEyIDExMiAxMTIgMTEyLTUwLjEgMTEyLTExMmMwLTE0LjMtMi43LTI3LjktNy41LTQwLjVMNDk5LjIgNzYuOGM3LjEtNy4xIDcuMS0xOC41IDAtMjUuNi0yOC4zLTI4LjMtNzQuMS0yOC4zLTEwMi40IDBMMjU2IDE5MiAyMTYuNSAxNTIuNWM0LjktMTIuNiA3LjUtMjYuMiA3LjUtNDAuNSAwLTYxLjktNTAuMS0xMTItMTEyLTExMlMwIDUwLjEgMCAxMTIgNTAuMSAyMjQgMTEyIDIyNGMxNC4zIDAgMjcuOS0yLjcgNDAuNS03LjVMMTkyIDI1NnptOTcuOSA5Ny45TDM5Ni44IDQ2MC44YzI4LjMgMjguMyA3NC4xIDI4LjMgMTAyLjQgMCA3LjEtNy4xIDcuMS0xOC41IDAtMjUuNmwtMTQ1LjMtMTQ1LjMtNjQgNjR6TTY0IDExMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00OCAyNDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2eiJdfSx6TnI9V0JlLENwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWciLGljb246WzU3Niw1MTIsW10sImYxODgiLCJNMTkyIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAzLjZjMCAxNS43LTEyLjcgMjguNC0yOC40IDI4LjRsLTEzNS4xIDBjLTE1LjcgMC0yOC40LTEyLjctMjguNC0yOC40bDAtMy42em0zNDUuNiAxMi44YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOGwtOTcuOCA3My4zYzUuMyA4LjkgOS4zIDE4LjcgMTEuOCAyOS4xbDk4LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDMyYzAgMi42LS4xIDUuMy0uMiA3LjlsODMuNCA2Mi41YzE0LjEgMTAuNiAxNyAzMC43IDYuNCA0NC44cy0zMC43IDE3LTQ0LjggNi40bC02My4xLTQ3LjNjLTIzLjIgNDQuMi02Ni41IDc2LjItMTE3LjcgODMuOUwzMTIgMjgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjMwLjJjLTUxLjItNy43LTk0LjUtMzkuNy0xMTcuNy04My45TDgzLjIgNDczLjZjLTE0LjEgMTAuNi0zNC4yIDcuNy00NC44LTYuNHMtNy43LTM0LjIgNi40LTQ0LjhsODMuNC02Mi41Yy0uMS0yLjYtLjItNS4yLS4yLTcuOWwwLTMyLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTguOCAwYzIuNS0xMC40IDYuNS0yMC4yIDExLjgtMjkuMUw0NC44IDE1My42Yy0xNC4xLTEwLjYtMTctMzAuNy02LjQtNDQuOHMzMC43LTE3IDQ0LjgtNi40TDE5MiAxODRjMTIuMy01LjEgMjUuOC04IDQwLThsMTEyIDBjMTQuMiAwIDI3LjcgMi44IDQwIDhsMTA4LjgtODEuNmMxNC4xLTEwLjYgMzQuMi03LjcgNDQuOCA2LjR6Il19LEdCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1mcm9tLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLW91dCJdLCJmMDhiIiwiTTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAxOTIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LF9Ocj1HQmUsVE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1oYW5kIixpY29uOls1NzYsNTEyLFtdLCJlNGY3IiwiTTQ2Ni44IDE4Ni41bDQyLjUtNDIuNSAzNC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwyMjMuNiAxNmMtMjkgMC01Ny4zIDkuMy04MC43IDI2LjVMMTYuMyAxMzUuOGMtMTcuOCAxMy4xLTIxLjYgMzguMS04LjUgNTUuOXMzOC4xIDIxLjYgNTUuOSA4LjVMMTgzLjQgMTEyIDI5NiAxMTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTcyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTUyLjIgMGMzMy45IDAgNjYuNS0xMy41IDkwLjUtMzcuNXptLTM1Ny41IDEzOUw2Ni43IDM2OCAzMiAzNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MDAgMjgwIDQwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNTIuMiAwYy0zMy45IDAtNjYuNSAxMy41LTkwLjUgMzcuNXoiXX0sTE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0cm9vcHdhZmVsIixpY29uOls1MTIsNTEyLFtdLCJmNTUxIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTMxMi42IDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI1NiA5Ny42IDIyMi4xIDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzMuOSAzMy45LTQ1LjMgNDUuMy01Ni42LTU2LjZjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNTYuNiA1Ni42LTQ1LjMgNDUuMy0zMy45LTMzLjljLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMOTcuNiAyNTYgNjMuNyAyODkuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMzLjktMzMuOSA0NS4zIDQ1LjMtNTYuNiA1Ni42Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNTYuNi01Ni42IDQ1LjMgNDUuMy0zMy45IDMzLjljLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzMy45LTMzLjkgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzMuOS0zMy45IDQ1LjMtNDUuMyA1Ni42IDU2LjZjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC01Ni42LTU2LjYgNDUuMy00NS4zIDMzLjkgMzMuOWM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTMzLjktMzMuOSAzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzMuOSAzMy45LTQ1LjMtNDUuMyA1Ni42LTU2LjZjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtNTYuNiA1Ni42LTQ1LjMtNDUuMyAzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6TTE0Mi45IDI1Nmw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6bTY3LjkgNjcuOWw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6TTI3OC42IDI1Nmw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6bTIyLjYtNjcuOWwtNDUuMyA0NS4zLTQ1LjMtNDUuMyA0NS4zLTQ1LjMgNDUuMyA0NS4zeiJdfSxETnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQiLGljb246WzMyMCw1MTIsW10sImYxYWUiLCJNOTYgNjRBNjQgNjQgMCAxIDEgMjI0IDY0IDY0IDY0IDAgMSAxIDk2IDY0em00OCAzMjBsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkw4MCAyODcuOCA1OS4xIDMyMWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwUy00LjUgMzAxLjkgNC45IDI4N2wzOS45LTYzLjNDNjkuNyAxODQgMTEzLjIgMTYwIDE2MCAxNjBzOTAuMyAyNCAxMTUuMiA2My42TDMxNS4xIDI4N2M5LjQgMTUgNC45IDM0LjctMTAgNDQuMXMtMzQuNyA0LjktNDQuMS0xMEwyNDAgMjg3LjggMjQwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTMyIDB6Il19LCROcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpY2UtY3JlYW0iLGljb246WzM4NCw1MTIsWzEyNzg0OF0sImY4MTAiLCJNMzM1LjEgMTYwYy42LTUuMyAuOS0xMC42IC45LTE2IDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0UzQ4IDY0LjUgNDggMTQ0YzAgNS40IC4zIDEwLjcgLjkgMTZsLS45IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjg4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLS45IDB6TTY0IDMwNEwxNjkuMiA1MjkuNWM0LjEgOC44IDEzIDE0LjUgMjIuOCAxNC41czE4LjYtNS43IDIyLjgtMTQuNUwzMjAgMzA0IDY0IDMwNHoiXX0sWUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXB1dGVyLW1vdXNlIixpY29uOlszODQsNTEyLFsxMjg0MzMsIm1vdXNlIl0sImY4Y2MiLCJNMCAxOTJsMTY4IDAgMC0xOTItOCAwQzcxLjYgMCAwIDcxLjYgMCAxNjBsMCAzMnptMCA0OEwwIDM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGw2NCAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwbDAtMTEyLTM4NCAwem0zODQtNDhsMC0zMkMzODQgNzEuNiAzMTIuNCAwIDIyNCAwbC04IDAgMCAxOTIgMTY4IDB6Il19LEFOcj1ZQmUsRU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhdWNldCIsaWNvbjpbNTEyLDUxMixbXSwiZTAwNSIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgNjQgMTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDIyLjYgMjIuNiAzMiAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwIDAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzYuMSAwYy0yMC4yIDI5LTUzLjkgNDgtOTEuOSA0OHMtNzEuNy0xOS05MS45LTQ4TDMyIDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDIyLjYtMjIuNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsMTguNyAwIDAtNjQtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA2NCA5NiA2NGw5NiAweiJdfSxJTnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXdhcmQiLGljb246WzQ0OCw1MTIsW10sImY1NTkiLCJNMjQ1LjktMjUuOWMtMTMuNC04LjItMzAuMy04LjItNDMuNyAwLTI0LjQgMTQuOS0zOS41IDE4LjktNjguMSAxOC4zLTE1LjctLjQtMzAuMyA4LjEtMzcuOSAyMS45LTEzLjcgMjUuMS0yNC44IDM2LjItNDkuOSA0OS45LTEzLjggNy41LTIyLjIgMjIuMi0yMS45IDM3LjkgLjcgMjguNi0zLjQgNDMuNy0xOC4zIDY4LjEtOC4yIDEzLjQtOC4yIDMwLjMgMCA0My43IDE0LjkgMjQuNCAxOC45IDM5LjUgMTguMyA2OC4xLS40IDE1LjcgOC4xIDMwLjMgMjEuOSAzNy45IDIyLjEgMTIuMSAzMy4zIDIyLjEgNDUuMSA0MS41TDQyLjcgNDU4LjVjLTUuOSAxMS45LTEuMSAyNi4zIDEwLjcgMzIuMmw4NiA0M2MxMS41IDUuNyAyNS41IDEuNCAzMS43LTkuOGw1Mi44LTk1LjEgNTIuOCA5NS4xYzYuMiAxMS4yIDIwLjIgMTUuNiAzMS43IDkuOGw4Ni00M2MxMS45LTUuOSAxNi43LTIwLjMgMTAuNy0zMi4ybC00OC42LTk3LjJjMTEuNy0xOS40IDIzLTI5LjQgNDUuMS00MS41IDEzLjgtNy41IDIyLjItMjIuMiAyMS45LTM3LjktLjctMjguNiAzLjQtNDMuNyAxOC4zLTY4LjEgOC4yLTEzLjQgOC4yLTMwLjMgMC00My43LTE0LjktMjQuNC0xOC45LTM5LjUtMTguMy02OC4xIC40LTE1LjctOC4xLTMwLjMtMjEuOS0zNy45LTI1LjEtMTMuNy0zNi4yLTI0LjgtNDkuOS00OS45LTcuNS0xMy44LTIyLjItMjIuMi0zNy45LTIxLjktMjguNiAuNy00My43LTMuNC02OC4xLTE4LjN6TTIyNCA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sUE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kcm93bmluZyIsaWNvbjpbNjQwLDUxMixbXSwiZTU0NSIsIk0yNjQgODhhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMzMuOSA2NS42YzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMmwxMC45IDMyLjhjOS40IDI4LjMgMzMuMiA0OS41IDYyLjUgNTUuNiA1LjYgMS4yIDExLjMgMS44IDE3LjEgMS44bDg4IDBjMTcuMiAwIDM0LjMtMi44IDUwLjYtOC4ybDExNC40LTM4LjFjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVMNDIzLjcgMjI4LjVjLTguNCAyLjgtMTcgNS4xLTI1LjcgNi45bC0yNi41IDg4LjNjLTYuMSAzLjQtMTIuMSA3LjMtMTcuOSAxMS43LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI2LjItMTkuNy01Ni45LTMwLjItODcuOC0zMS4zbDIwLjItNjcuMmMtNTEuNS0xMC43LTkzLjUtNDguMS0xMTAuMi05OGwtMTAuOS0zMi44Yy01LjYtMTYuOCAzLjUtMzQuOSAyMC4yLTQwLjV6TTQwMy40IDQxMi4xQzM3OS4xIDQzMC4zIDM1MS4xIDQ0OCAzMjAgNDQ4cy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sTk5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYS1yb3RhdGUiLGljb246WzUxMiw1MTIsW10sImUwZDgiLCJNMTM4LjcgOTZsMTAuNC0zMS4yQzE1NS42IDQ1LjIgMTczLjkgMzIgMTk0LjYgMzJsMTIyLjggMGMyMC43IDAgMzkgMTMuMiA0NS41IDMyLjhMMzczLjMgOTYgNDQ4IDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsNzQuNyAwek05NiAzMDUuOWMwIDMuOSAxLjQgNy43IDQgMTAuNmw0OCA1NGM2LjQgNy4yIDE3LjYgNy4yIDIzLjkgMGw0OC01NGMyLjYtMi45IDQtNi43IDQtMTAuNmwwLTEuOWMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjMC0zOS44IDMyLjItNzIgNzItNzIgNC40IDAgOC43IC40IDEyLjkgMS4ybDM0LjktMzkuM2MtMTQuNi02LjQtMzAuOC05LjktNDcuOC05LjktNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDEuOXptMTk2LTQ2LjVjLTIuNiAyLjktNCA2LjctNCAxMC42bDAgMS45YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzAgMzkuOC0zMi4yIDcyLTcyIDcyLTQuNCAwLTguNy0uNC0xMi45LTEuMmwtMzQuOSAzOS4zYzE0LjcgNi40IDMwLjggOS45IDQ3LjggOS45IDY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMS45YzAtMy45LTEuNC03LjctNC0xMC42bC00OC01NGMtNi40LTcuMi0xNy42LTcuMi0yMy45IDBsLTQ4IDU0eiJdfSxLQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWhlYXJ0cyIsaWNvbjpbNTEyLDUxMixbMTI4NTI1LCJncmluLWhlYXJ0cyJdLCJmNTg0IiwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTIzLjMtMy4xLTQ1LjktOC45LTY3LjMgNS41LTEzLjUgOC45LTI4LjQgOC45LTQ0LjcgMC01My00My05Ni05Ni05NmwtMi45IDBjLTIuNSAwLTUgLjEtNy40IC4zLTQyLjEtMzAuNC05My44LTQ4LjMtMTQ5LjctNDguM1MxNDguNCAxNy45IDEwNi4zIDQ4LjNjLTIuNS0uMi00LjktLjMtNy40LS4zTDk2IDQ4Yy01MyAwLTk2IDQzLTk2IDk2IDAgMTYuMyAzLjUgMzEuMiA4LjkgNDQuNy01LjggMjEuNC04LjkgNDQtOC45IDY3LjMgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NnpNMzg2LjcgMzI0LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDQwNC4yIDEwNS43IDM0Mi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTMyMi45IDk2YzEzLjUgMCAyNi41IDUuNCAzNiAxNC45bDkuMSA5LjEgOS4xLTkuMWM5LjUtOS41IDIyLjUtMTQuOSAzNi0xNC45bDIuOSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNTMuNC02Ni45IDk1LjctODkgMTA4LjItNC40IDIuNS05LjYgMi41LTE0IDAtMjIuMS0xMi41LTg5LTU0LjgtODktMTA4LjIgMC0yNi41IDIxLjUtNDggNDgtNDhsMi45IDB6bS0xODggMTQuOWw5LjEgOS4xIDkuMS05LjFjOS41LTkuNSAyMi41LTE0LjkgMzYtMTQuOWwyLjkgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDUzLjQtNjYuOSA5NS43LTg5IDEwOC4yLTQuNCAyLjUtOS42IDIuNS0xNCAwLTIyLjEtMTIuNS04OS01NC44LTg5LTEwOC4yIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDIuOSAwYzEzLjUgMCAyNi41IDUuNCAzNiAxNC45eiJdfSxPTnI9S0JlLFJOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWZyYWdtZW50IixpY29uOlszODQsNTEyLFtdLCJlNjk3IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjQwIDEyOCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTI4IDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTMyIDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6Il19LEZOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tbWlsaXRhcnktcmlmbGUiLGljb246WzQ0OCw1MTIsW10sImU1NGIiLCJNMTI4IDM5YzAtMTMgMTAtMjMuOCAyMi45LTI0LjlMMzAyLjcgMS40QzMxMiAuNyAzMjAgOCAzMjAgMTcuNEwzMjAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2TDE1MyA2NGMtMTMuOCAwLTI1LTExLjItMjUtMjV6bTE3LjYgNTdsMTU2LjggMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTYgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC01LjUgLjYtMTAuOCAxLjYtMTZ6bTIyOCAzNjQuM0wzMjAgMzY5LjcgMzIwIDQ4MGMwIDEuMy0uMSAyLjUtLjIgMy44TDE0NS41IDIzNC45YzE2LjYtNy4xIDM0LjYtMTAuOSA1My4zLTEwLjlsNTAuNCAwYzE1LjkgMCAzMS4zIDIuOCA0NS44IDcuOUwzODkuOSA2Ny43Yy03LjctNC40LTEwLjMtMTQuMi01LjktMjEuOXMxNC4yLTEwLjMgMjEuOS01LjlsMjcuNyAxNmM3LjcgNC40IDEwLjMgMTQuMiA1LjkgMjEuOWwtNTUuNSA5Ni4xIDEuNiAuOWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43TDM2MC43IDI4MmMyIDIuOCAzLjkgNS44IDUuNyA4LjhsNzYuMSAxMjguOGMxMS4yIDE5IDQuOSA0My41LTE0LjEgNTQuOHMtNDMuNSA0LjktNTQuOC0xNC4xek0yODggNTEybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTAuMy01My42IDkwLjZjLTExLjIgMTktMzUuOCAyNS4zLTU0LjggMTQuMVMtNS43IDQzOC43IDUuNiA0MTkuN0w4MS43IDI5MC44YzkuNC0xNS44IDIxLjctMjkuMyAzNi00MEwyOTkuMSA1MTBjLTMuNSAxLjMtNy4yIDItMTEuMSAyek0yNjQgMzIwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sQk5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvZ2dsZS1vbiIsaWNvbjpbNTc2LDUxMixbXSwiZjIwNSIsIk0xOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhsMTkyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJTNDkwIDY0IDM4NCA2NEwxOTIgNjR6bTE5MiA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sSE5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imx1bmdzLXZpcnVzIixpY29uOls1NzYsNTEyLFtdLCJlMDY3IiwiTTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE1MS4zYzkuNi00LjggMjAuNS03LjUgMzItNy41czIyLjQgMi43IDMyIDcuNUwzMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ1MC4xIDQ1MWM4IDE4LjMgOC4xIDM5LjIgLjIgNTcuNSAxMC4yIDIuMyAyMC42IDMuNSAzMS4yIDMuNSA1Mi4yIDAgOTQuNS00Mi4zIDk0LjUtOTQuNWwwLTYuMmMwLTExMS4xLTM2LjctMjE5LTEwNC40LTMwN0w0MjguOSA0OC43Yy04LjEtMTAuNi0yMC43LTE2LjctMzQtMTYuNy0yMy43IDAtNDIuOSAxOS4yLTQyLjkgNDIuOWwwIDEzOS45YzEuMiAyLjIgMi4yIDQuNiAzLjEgNi45IDI2LjQtMTEuNiA1OC4zLTYuNiA3OS45IDE1czI2LjYgNTMuNiAxNSA3OS45QzQ3NyAzMjcuMiA0OTYgMzUzLjMgNDk2IDM4My44cy0xOSA1Ni43LTQ1LjkgNjcuMXpNMjIwLjkgMjIxLjhjLjktMi40IDItNC43IDMuMS02LjlsMC0xMzguNWMwLTI0LjUtMTkuOS00NC40LTQ0LjQtNDQuNC0xMi41IDAtMjQuNCA1LjMtMzIuOCAxNC41bC0yNi40IDI5QzQyLjkgMTYwLjggMCAyNzEuOCAwIDM4N2wwIDMwLjVjMCA1Mi4yIDQyLjMgOTQuNSA5NC41IDk0LjUgMTAuNSAwIDIxLTEuMiAzMS4yLTMuNS03LjktMTguMy03LjgtMzkuMyAuMi01Ny41LTI2LjktMTAuNC00NS45LTM2LjYtNDUuOS02Ny4xczE5LTU2LjcgNDUuOS02Ny4xYy0xMS42LTI2LjQtNi42LTU4LjMgMTUtNzkuOXM1My42LTI2LjYgNzkuOS0xNXpNMTUyIDQwOGMyOC44IDAgNDMuMiAzNC44IDIyLjkgNTUuMi05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBjMjAuNC0yMC40IDU1LjItNS45IDU1LjIgMjIuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMjguOCAzNC44LTQzLjIgNTUuMi0yMi45IDkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtMjAuNC0yMC40LTUuOS01NS4yIDIyLjktNTUuMiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtMjguOCAwLTQzLjItMzQuOC0yMi45LTU1LjIgOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGMtMjAuNCAyMC40LTU1LjIgNS45LTU1LjItMjIuOSAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDI4LjgtMzQuOCA0My4yLTU1LjIgMjIuOS05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45YzIwLjQgMjAuNCA1LjkgNTUuMi0yMi45IDU1LjItMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHptMTA0LTgwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAgODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sS3VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLXRlbm5pcy1wYWRkbGUtYmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTU1LCJwaW5nLXBvbmctcGFkZGxlLWJhbGwiLCJ0YWJsZS10ZW5uaXMiXSwiZjQ1ZCIsIk05NyAxMjdsNjcuNC02Ny40YzM4LjItMzguMiA5MC01OS42IDE0NC01OS42IDExMi41IDAgMjAzLjcgOTEuMiAyMDMuNyAyMDMuNiAwIDQ2LjQtMTUuOCA5MS4xLTQ0LjUgMTI3LTIzLjYtMTYuOC01Mi40LTI2LjctODMuNS0yNi43LTMxLjEgMC01OS45IDkuOS04My40IDI2LjZMOTcgMTI3ek0yNDAgNDQ4YzAgOS43IDEgMTkuMSAyLjggMjguMi0xOS44LTUuMi0zOC0xNS41LTUyLjctMzAuMi0xMi4yLTEyLjItMzEuOS0xMi4yLTQ0LjEgMEw5Ni42IDQ5NS40Yy0xMC42IDEwLjYtMjUgMTYuNi00MCAxNi42LTMxLjIgMC01Ni42LTI1LjMtNTYuNi01Ni42IDAtMTUgNi0yOS40IDE2LjYtNDBsNDkuNC00OS40YzEyLjItMTIuMiAxMi4yLTMxLjkgMC00NC4xLTIxLjctMjEuNy0zMy45LTUxLjItMzMuOS04MS45IDAtMjkuNCAxMS4xLTU3LjYgMzEuMS03OUwyNjYuNiAzNjQuNkMyNDkuOSAzODguMSAyNDAgNDE2LjkgMjQwIDQ0OHptMTQ0LTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxxTnI9S3VlLFZOcj1LdWUsak5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveGVzLXBhY2tpbmciLGljb246WzU3Niw1MTIsW10sImU0YzciLCJNMjA4IDBsODAgMCAwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC01NiA4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMDguOCAwYzguMi0xNC4xIDEyLjgtMzAuNSAxMi44LTQ4bDAtMTYwYzEwLTEzLjQgMTYtMzAgMTYtNDhsMC0zMmMwLTQ0LjItMzUuOC04MC04MC04MGwtMTc2IDAgMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHpNMzIgMzM2bDMyMCAwIDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xMjh6TTQ4IDE5MmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sVU5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaGFsa2JvYXJkIixpY29uOls2NDAsNTEyLFtdLCJlNTNkIiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMTc2IDUxMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMzYgMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC00OCAxOTIgMCAwIDE5Mi0xOTIgMCAwLTMyLTY0IDAgMCA0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEwzNjggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NC0xMjIuNyAwYy00NS42IDAtODguNSAyMS42LTExNS42IDU4LjJMMTQuMyAyNjAuOWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDExMiAyMzYuNyAxMTIgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LFdOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXR3byIsaWNvbjpbNDQ4LDUxMixbOTg1N10sImY1MjgiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTM1MiAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFpCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1hcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjQ0LCJleGNoYW5nZSJdLCJmMGVjIiwiTTUwMi42IDE1MC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDAyLjcgMTYwIDMyIDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5NmwzNzAuNyAwLTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMTA5LjMgMzUyIDQ4MCAzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM3MC43IDAgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxHTnI9WkJlLFFCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb290YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTQ0LCJmb290YmFsbC1iYWxsIl0sImY0NGUiLCJNMjYxLjEgMjIuNmMtODkgMTgtMTUwLjUgNjMuNC0xOTAgMTIzLjktMjMuMyAzNS42LTM4LjEgNzUuMy00Ni43IDExNS41TDI1MS45IDQ4OS40Yzg5LTE4IDE1MC41LTYzLjQgMTkwLjEtMTIzLjkgMjMuMy0zNS42IDM4LjEtNzUuMyA0Ni43LTExNS41TDI2MS4xIDIyLjZ6bTIzNiAxNjguMWMzLjItNDIuMyAuNy04My4zLTQuOC0xMTguNy00LjQtMjcuOC0yNi44LTQ4LTUzLjEtNTEuNi00My01LjktODIuMi03LjUtMTE3LjgtNS40TDQ5Ny4xIDE5MC42ek0xOTEuNyA0OTcuMUwxNS45IDMyMS40Yy0zLjIgNDIuMy0uNyA4My4zIDQuOCAxMTguNyA0LjQgMjcuOCAyNi44IDQ4IDUzLjEgNTEuNiA0MyA1LjkgODIuMiA3LjUgMTE3LjggNS40ek0yNzEuNSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxZTnI9UUJlLEtOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb25zdGVyIixpY29uOls1NzYsNTEyLFtdLCJmNjNiIiwiTTMzNiA5Nmw0OCA2NC0xMjggMCAwLTY0IDgwIDB6bTEyOCA2NEwzODcuMiA1Ny42QzM3NS4xIDQxLjUgMzU2LjEgMzIgMzM2IDMyTDIyNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5Ni0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDE4LjEgMTAuMSAzMy45IDI0LjkgNDIuMS0uNSA1LjcgMS4xIDExLjYgNC43IDE2LjQtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4zIDMxLjNsMTEuMyAxMS4zYzguNiA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS43LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4zLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMi40LTMuMiAzLjktNi44IDQuNS0xMC41bDExNC4yIDBjLjYgMy43IDIuMSA3LjMgNC41IDEwLjUtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4yIDMxLjNsMTEuMyAxMS4zYzguNSA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS44LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4yLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMy42LTQuOCA1LjItMTAuNyA0LjctMTYuNCAxNC44LTguMiAyNC45LTIzLjkgMjQuOS00Mi4xbDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTEyOCAzMzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNzIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sWk5yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFzdGVyaXNrIixpY29uOls0NDgsNTEyLFsxMDAzMyw2MTU0NV0sIjJhIiwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTY4LjYgMTQ0LTgzLjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43czMuNiAzNC45LTExLjcgNDMuN0wyODggMjU2IDQzMiAzMzkuMWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43cy0yOC40IDIwLjYtNDMuNyAxMS43TDI1NiAzMTEuNCAyNTYgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTY4LjYtMTQ0IDgzLjFjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN1MuNyAzNDggMTYgMzM5LjFMMTYwIDI1NiAxNiAxNzIuOUMuNyAxNjQtNC41IDE0NC41IDQuMyAxMjkuMVMzMi43IDEwOC42IDQ4IDExNy40TDE5MiAyMDAuNiAxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFp1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWZ1bGwiLGljb246WzY0MCw1MTIsWzEyODI2NywiYmF0dGVyeSIsImJhdHRlcnktNSJdLCJmMjQwIiwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDMwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0zMDQgMHoiXX0sUU5yPVp1ZSxYTnI9WnVlLEpOcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1kcmVzcyIsaWNvbjpbMzIwLDUxMixbXSwiZTU5YyIsIk0yMjQgNjRBNjQgNjQgMCAxIDAgOTYgNjQgNjQgNjQgMCAxIDAgMjI0IDY0ek04OCA0MDBsMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgMTYgMCAwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCAxNy44IDBjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTMxLjEtOTMuNCAyOC43IDM3LjhjMTAuNyAxNC4xIDMwLjggMTYuOCA0NC44IDYuMnMxNi44LTMwLjcgNi4yLTQ0LjhMMjU0LjYgMjA3Yy0yMi40LTI5LjYtNTcuNS00Ny05NC42LTQ3cy03Mi4yIDE3LjQtOTQuNiA0N0w2LjUgMjg0LjdjLTEwLjcgMTQuMS03LjkgMzQuMiA2LjIgNDQuOHMzNC4yIDcuOSA0NC44LTYuMkw4Ni4yIDI4NS41IDU1IDM3OC45QzUxLjYgMzg5LjMgNTkuMyA0MDAgNzAuMiA0MDBMODggNDAweiJdfSxYQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1raXNzLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUzNywia2lzcy1iZWFtIl0sImY1OTciLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCAyODhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LGVPcj1YQmUsSkJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoLWNhbi1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUtYWx0Il0sImY4MmEiLCJNMTY3LjEtMTZsMTEzLjkgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOUwzMjAgMzIgNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDguNy0yNi4xQzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNnpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sdE9yPUpCZSxyT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9udCIsaWNvbjpbNTEyLDUxMixbXSwiZjAzMSIsIk0yODUuMSA1MC43QzI3OS45IDM5LjMgMjY4LjUgMzIgMjU2IDMycy0yMy45IDcuMy0yOS4xIDE4LjdMNTkuNSA0MTYgNDggNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTYuMSAwIDIyLTQ4IDIwOC4zIDAgMjIgNDgtNi4xIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTEuNSAwLTE2Ny40LTM2NS4zek0zMzAuOCAzMDRMMTgxLjIgMzA0IDI1NiAxNDAuOCAzMzAuOCAzMDR6Il19LGFPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JlLWhvbGUiLGljb246WzUxMiw1MTIsW10sImU0YzMiLCJNMjU2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjMyLjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTIzLjctMTIuOS00NC40LTMyLTU1LjRMMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0wIDM4NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjcyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE0NGMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMxNDQgMzgxLjkgMTQ0IDMyMGwwLTE0NGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCAzODR6Il19LGlPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1cy1jb3ZpZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRhOCIsIk0xOTIgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDMzLjZjMzAuNyA0LjIgNTguOCAxNi4zIDgyLjMgMzQuMUwzODYuMSA5MiAzNzQuOCA4MC42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTYuNiA1Ni42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTExLjMtMTEuMy0yMy44IDIzLjhjMTcuOSAyMy41IDI5LjkgNTEuNyAzNC4xIDgyLjNsMzMuNiAwIDAtMTZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTYtMzMuNiAwYy00LjIgMzAuNy0xNi4zIDU4LjgtMzQuMSA4Mi4zbDIzLjggMjMuOCAxMS4zLTExLjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01Ni42IDU2LjZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTEuMy0xMS4zLTIzLjgtMjMuOGMtMjMuNSAxNy45LTUxLjcgMjkuOS04Mi4zIDM0LjFsMCAzMy42IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTMzLjZjLTMwLjctNC4yLTU4LjgtMTYuMy04Mi4zLTM0LjFsLTIzLjggMjMuOCAxMS4zIDExLjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw0Ni43IDQwOC43Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMTEuMyAxMS4zIDIzLjgtMjMuOEM5Ny45IDMzOC44IDg1LjggMzEwLjcgODEuNiAyODBsLTMzLjYgMCAwIDE2YzAgMTMuMy0xMC43IDI0LTI0IDI0UzAgMzA5LjMgMCAyOTZsMC04MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTYgMzMuNiAwYzQuMi0zMC43IDE2LjMtNTguOCAzNC4xLTgyLjNMOTIgMTI1LjkgODAuNiAxMzcuMmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1Ni42LTU2LjZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDEyNS45IDkyIDE0OS43IDExNS43YzIzLjUtMTcuOSA1MS43LTI5LjkgODIuMy0zNC4xbDAtMzMuNi0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMzIgMjAwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sc09yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtcGRmIixpY29uOls1NzYsNTEyLFtdLCJmMWMxIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNDAgMzgwYy0xMSAwLTIwIDktMjAgMjBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0yOCAxMiAwYzMzLjEgMCA2MC0yNi45IDYwLTYwcy0yNi45LTYwLTYwLTYwbC0zMiAwem0zMiA4MGwtMTIgMCAwLTQwIDEyIDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwem05Ni04MGMtMTEgMC0yMCA5LTIwIDIwbDAgMTI4YzAgMTEgOSAyMCAyMCAyMGwzMiAwYzI4LjcgMCA1Mi0yMy4zIDUyLTUybDAtNjRjMC0yOC43LTIzLjMtNTItNTItNTJsLTMyIDB6bTIwIDEyOGwwLTg4IDEyIDBjNi42IDAgMTIgNS40IDEyIDEybDAgNjRjMCA2LjYtNS40IDEyLTEyIDEybC0xMiAwem04OC0xMDhsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00NCAyOCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtMjggMCAwLTI0IDI4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00OCAwYy0xMSAwLTIwIDktMjAgMjB6Il19LG5Pcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5ndWFnZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFhYiIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05LjYgMC04LjQgMjMuMWMtMTYuNCA0NS4yLTQxLjEgODYuNS03Mi4yIDEyMiAxNC4yIDguOCAyOSAxNi42IDQ0LjQgMjMuNWw1MC40IDIyLjQgNjIuMi0xNDBjNS4xLTExLjYgMTYuNi0xOSAyOS4yLTE5czI0LjEgNy40IDI5LjIgMTlsMTI4IDI4OGM3LjIgMTYuMi0uMSAzNS4xLTE2LjIgNDIuMnMtMzUuMS0uMS00Mi4yLTE2LjJsLTIwLTQ1LTE1Ny41IDAtMjAgNDVjLTcuMiAxNi4yLTI2LjEgMjMuNC00Mi4yIDE2LjJzLTIzLjQtMjYuMS0xNi4yLTQyLjJsMzkuOC04OS41LTUwLjQtMjIuNGMtMjMtMTAuMi00NS0yMi40LTY1LjgtMzYuNC0yMS4zIDE3LjItNDQuNiAzMi4yLTY5LjUgNDQuN0w3OC4zIDM4MC42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDM0LjUtMTcuM2MxNi4zLTguMiAzMS44LTE3LjcgNDYuNC0yOC4zLTEzLjgtMTIuNy0yNi44LTI2LjQtMzguOS00MC45TDgxLjYgMjI0LjdjLTExLjMtMTMuNi05LjUtMzMuOCA0LjEtNDUuMXMzMy44LTkuNSA0NS4xIDQuMWwxMC4yIDEyLjJjMTEuNSAxMy45IDI0LjEgMjYuOCAzNy40IDM4LjcgMjcuNS0zMC40IDQ5LjItNjYuMSA2My41LTEwNS40bC41LTEuMi0yMTAuMyAwQzE0LjMgMTI4IDAgMTEzLjcgMCA5NlMxNC4zIDY0IDMyIDY0bDk2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDE2IDI3MC44TDM2NS43IDM4NCA0NjYuMyAzODQgNDE2IDI3MC44eiJdfSxlSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWhhbHZlZCIsaWNvbjpbNTEyLDUxMixbInNoaWVsZC1hbHQiXSwiZjNlZCIsIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuOCA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMi0uNSA5OS4yLTQxLjMgMjgwLjctMjEzLjYgMzYzLjItMTYuNyA4LTM2LjEgOC01Mi44IDAtMTcyLjQtODIuNS0yMTMuMS0yNjQtMjEzLjYtMzYzLjItLjEtMjYuMiAxNi4zLTQ3LjkgMzguMy01Ny4yTDI0Mi43IDIuOUMyNDYuOSAxIDI1MS40IDAgMjU2IDB6bTAgNjYuOGwwIDM3OC4xYzEzOC02Ni44IDE3NS4xLTIxNC44IDE3Ni0zMDMuNGwtMTc2LTc0LjYgMCAweiJdfSxvT3I9ZUhlLGxPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC11cCIsaWNvbjpbMzIwLDUxMixbXSwiZjBkOCIsIk0xNDAuMyAxMzUuMmMxMi42LTEwLjMgMzEuMS05LjUgNDIuOCAyLjJsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMDEuNCAzMjAgMjg4LjUgMzIwbC0yNTYgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuNyAyNzQuNSA5LjkgMjY1LjRsMTI4LTEyOCAyLjQtMi4yeiJdfSx0SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wZW4iLGljb246WzY0MCw1MTIsWzEyODIyMSwiZmlsZS1lZGl0Il0sImYzMWMiLCJNMTI4LjEgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ2LjIgMCAxMC45LTU0LjVjNC4zLTIxLjcgMTUtNDEuNiAzMC42LTU3LjJsMTMyLjItMTMyLjIgMC05Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDMyMi44IDE4LjdDMzEwLjggNi43IDI5NC41IDAgMjc3LjYgMEwxMjguMSAwek0zODkuNiAxNzZsLTkzLjUgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC05My41IDExNy41IDExNy41ek0zMzIuMyA0NjYuOWwtMTEuOSA1OS42Yy0uMiAuOS0uMyAxLjktLjMgMi45IDAgOCA2LjUgMTQuNiAxNC42IDE0LjYgMSAwIDEuOS0uMSAyLjktLjNsNTkuNi0xMS45YzEyLjQtMi41IDIzLjgtOC42IDMyLjctMTcuNWwxMTguOS0xMTguOS04MC04MC0xMTguOSAxMTguOWMtOC45IDguOS0xNSAyMC4zLTE3LjUgMzIuN3ptMjY3LjgtMTIzYzIyLjEtMjIuMSAyMi4xLTU3LjkgMC04MHMtNTcuOS0yMi4xLTgwIDBsLTI4LjggMjguOCA4MCA4MCAyOC44LTI4Ljh6Il19LGNPcj10SGUsckhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1iaWtpbmciLGljb246WzU3Niw1MTIsWzEyODY5MiwiYmlraW5nIl0sImY4NGEiLCJNMzY4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjcuMiA2NGwtNjEuOC00OC44Yy0xNy4zLTEzLjYtNDEuNy0xMy44LTU5LjEtLjNsLTgzLjEgNjQuMmMtMzAuNyAyMy44LTI4LjUgNzAuOCA0LjMgOTEuNkwyNTYgMzA1LjEgMjU2IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTAuNy01LjMtMjAuNy0xNC4yLTI2LjZMMjYzIDIzMi45IDMyMy4zIDE4NC40IDM2NCAyMTdjNS43IDQuNSAxMi43IDcgMjAgN2w2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi44IDB6TTExMiA1MTJhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0zNTIgMGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LGRPcj1ySGUsYUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stb3Blbi1yZWFkZXIiLGljb246WzUxMiw1MTIsWyJib29rLXJlYWRlciJdLCJmNWRhIiwiTTI1NiAxNTJhODggODggMCAxIDAgMC0xNzYgODggODggMCAxIDAgMCAxNzZ6bTAgMjk4LjdsMC0xNDkuM2MxNi4zLTYuOCAzMi45LTEzLjcgNDkuNy0yMC43IDM5LTE2LjIgODAuOC0yNC42IDEyMy4xLTI0LjZsMTkuMiAwIDAgMTYwLTE5LjIgMGMtNTkuMSAwLTExNy43IDExLjctMTcyLjMgMzQuNWwtLjUgLjJ6TTI1NiAyMzJsLTI1LjEtMTAuNUMxODQuMSAyMDIgMTMzLjkgMTkyIDgzLjIgMTkyTDQ4IDE5MmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUuMiAwYzUwLjcgMCAxMDAuOSAxMCAxNDcuNyAyOS41bDEyLjggNS4zYzcuOSAzLjMgMTYuNyAzLjMgMjQuNiAwbDEyLjgtNS4zYzQ2LjgtMTkuNSA5Ny0yOS41IDE0Ny43LTI5LjVsMzUuMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zNS4yIDBjLTUwLjcgMC0xMDAuOSAxMC0xNDcuNyAyOS41TDI1NiAyMzJ6Il19LHVPcj1hSGUscE9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzLXdhdGVyLWRyb3BsZXQiLGljb246WzM4NCw1MTIsW10sImU0ZjUiLCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zbDE2Ni42IDBjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBMMzIgMHpNODMgMjk3LjVMNjYuNCA2NCAzMTcuNiA2NCAzMDEgMjk3LjUgMjg4IDMwNGMtMjAuMSAxMC4xLTQzLjkgMTAuMS02NCAwcy00My45LTEwLjEtNjQgMC00My45IDEwLjEtNjQgMGwtMTMtNi41ek0yNTYgMTk2YzAtMjQtMzMuNy03MC4xLTUyLjItOTMuNS02LjEtNy43LTE3LjUtNy43LTIzLjYgMC0xOC41IDIzLjQtNTIuMiA2OS41LTUyLjIgOTMuNSAwIDMzLjEgMjguNyA2MCA2NCA2MHM2NC0yNi45IDY0LTYweiJdfSxpSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItYnJvYWRjYXN0IixpY29uOls1NzYsNTEyLFsiYnJvYWRjYXN0LXRvd2VyIl0sImY1MTkiLCJNODcuOSAxMS41Yy0xMS4zLTYuOS0yNi4xLTMuMi0zMyA4LjEtMjQuOCA0MS0zOSA4OS4xLTM5IDE0MC40czE0LjIgOTkuNCAzOSAxNDAuNGM2LjkgMTEuMyAyMS42IDE1IDMzIDguMXMxNS0yMS42IDguMS0zM0M3NS43IDI0MS45IDY0IDIwMi4zIDY0IDE2MFM3NS43IDc4LjEgOTYuMSA0NC40YzYuOS0xMS4zIDMuMi0yNi4xLTguMS0zM3ptNDAwLjEgMGMtMTEuMyA2LjktMTUgMjEuNi04LjEgMzMgMjAuNCAzMy43IDMyLjEgNzMuMyAzMi4xIDExNS42cy0xMS43IDgxLjktMzIuMSAxMTUuNmMtNi45IDExLjMtMy4yIDI2LjEgOC4xIDMzczI2LjEgMy4yIDMzLTguMWMyNC44LTQxIDM5LTg5LjEgMzktMTQwLjRTNTQ1LjggNjAuNiA1MjEgMTkuNmMtNi45LTExLjMtMjEuNi0xNS0zMy04LjF6TTMyMCAyMTUuNGMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40IDAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0YzAgMjMuNyAxMi45IDQ0LjQgMzIgNTUuNEwyNTYgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNjQuNnpNMTgwLjIgOTFjNy4yLTExLjIgMy45LTI2LTcuMi0zMy4ycy0yNi0zLjktMzMuMiA3LjJjLTE3LjYgMjcuNC0yNy44IDYwLTI3LjggOTVzMTAuMiA2Ny42IDI3LjggOTVjNy4yIDExLjIgMjIgMTQuNCAzMy4yIDcuMnMxNC40LTIyIDcuMi0zMy4yYy0xMi44LTE5LjktMjAuMi00My42LTIwLjItNjlzNy40LTQ5LjEgMjAuMi02OXpNNDM2LjIgNjVjLTcuMi0xMS4yLTIyLTE0LjQtMzMuMi03LjJzLTE0LjQgMjItNy4yIDMzLjJjMTIuOCAxOS45IDIwLjIgNDMuNiAyMC4yIDY5cy03LjQgNDkuMS0yMC4yIDY5Yy03LjIgMTEuMi0zLjkgMjYgNy4yIDMzLjJzMjYgMy45IDMzLjItNy4yYzE3LjYtMjcuNCAyNy44LTYwIDI3LjgtOTVzLTEwLjItNjcuNi0yNy44LTk1eiJdfSxmT3I9aUhlLHNIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFycm93cy1hbHQiXSwiZjc4YyIsIk00NTYgMjI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yUzMyMi4xIDMyLjIgMzI5IDM5bDQwIDQwIDczLjQtNzMuNEM0NDYgMiA0NTAuOSAwIDQ1NiAwczEwIDIgMTMuNyA1LjdsMzYuNyAzNi43QzUxMCA0NiA1MTIgNTAuOSA1MTIgNTZzLTIgMTAtNS43IDEzLjdMNDMzIDE0MyA0NzMgMTgzYzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDY1LjcgMjI0IDQ1NiAyMjR6bTAgNjRjOS43IDAgMTguNSA1LjggMjIuMiAxNC44czEuNyAxOS4zLTUuMiAyNi4ybC00MCA0MCA3My40IDczLjRjMy42IDMuNiA1LjcgOC41IDUuNyAxMy43cy0yIDEwLTUuNyAxMy43bC0zNi43IDM2LjdDNDY2IDUxMCA0NjEuMSA1MTIgNDU2IDUxMnMtMTAtMi0xMy43LTUuN0wzNjkgNDMzIDMyOSA0NzNjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJTMjg4IDQ2NS43IDI4OCA0NTZsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTQ0IDB6bS0yNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC00MC00MC03My40IDczLjRDNjYgNTEwIDYxLjEgNTEyIDU2IDUxMnMtMTAtMi0xMy43LTUuN0w1LjcgNDY5LjdDMiA0NjYgMCA0NjEuMSAwIDQ1NnMyLTEwIDUuNy0xMy43TDc5IDM2OSAzOSAzMjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNDYuMyAyODggNTYgMjg4bDE0NCAwek01NiAyMjRjLTkuNyAwLTE4LjUtNS44LTIyLjItMTQuOFMzMi4yIDE4OS45IDM5IDE4M0w3OSAxNDMgNS43IDY5LjdDMiA2NiAwIDYxLjEgMCA1NlMyIDQ2IDUuNyA0Mi4zTDQyLjMgNS43QzQ2IDIgNTAuOSAwIDU2IDBTNjYgMiA2OS43IDUuN0wxNDMgNzkgMTgzIDM5YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJTMjI0IDQ2LjMgMjI0IDU2bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0TDU2IDIyNHoiXX0saE9yPXNIZSxtT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtdG8tY2l0eSIsaWNvbjpbNjQwLDUxMixbXSwiZTRiMyIsIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgwIDQ4IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDE2em02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0zNTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE3Ni04MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek01MTIgMzM2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE1MyAxNjdsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAweiJdfSxnT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wLW1lZGljYWwiLGljb246WzY0MCw1MTIsW10sImY4MTIiLCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDAtNjQgMCAwLTI0MC0zODQgMCAwIDI0MC02NCAwIDAtMjQwek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjIgMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODggMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxiT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJlYWQtc2xpY2UiLGljb246WzUxMiw1MTIsW10sImY3ZWMiLCJNNjQgNDMybDAtMTc2Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIxNi41IDUxMi0yMTYuNSA1MTIgMCAwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjg4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSx4T3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xvYmUiLGljb246WzUxMiw1MTIsWzEyNzc2MF0sImYwYWMiLCJNMzUxLjkgMjgwbC0xOTAuOSAwYzIuOSA2NC41IDE3LjIgMTIzLjkgMzcuNSAxNjcuNCAxMS40IDI0LjUgMjMuNyA0MS44IDM1LjEgNTIuNCAxMS4yIDEwLjUgMTguOSAxMi4yIDIyLjkgMTIuMnMxMS43LTEuNyAyMi45LTEyLjJjMTEuNC0xMC42IDIzLjctMjggMzUuMS01Mi40IDIwLjMtNDMuNSAzNC42LTEwMi45IDM3LjUtMTY3LjR6TTE2MC45IDIzMmwxOTAuOSAwQzM0OSAxNjcuNSAzMzQuNyAxMDguMSAzMTQuNCA2NC42IDMwMyA0MC4yIDI5MC43IDIyLjggMjc5LjMgMTIuMiAyNjguMSAxLjcgMjYwLjQgMCAyNTYuNCAwcy0xMS43IDEuNy0yMi45IDEyLjJjLTExLjQgMTAuNi0yMy43IDI4LTM1LjEgNTIuNC0yMC4zIDQzLjUtMzQuNiAxMDIuOS0zNy41IDE2Ny40em0tNDggMEMxMTYuNCAxNDYuNCAxMzguNSA2Ni45IDE3MC44IDE0LjcgNzguNyA0Ny4zIDEwLjkgMTMxLjIgMS41IDIzMmwxMTEuNCAwek0xLjUgMjgwYzkuNCAxMDAuOCA3Ny4yIDE4NC43IDE2OS4zIDIxNy4zLTMyLjMtNTIuMi01NC40LTEzMS43LTU3LjktMjE3LjNMMS41IDI4MHptMzk4LjQgMGMtMy41IDg1LjYtMjUuNiAxNjUuMS01Ny45IDIxNy4zIDkyLjEtMzIuNyAxNTkuOS0xMTYuNSAxNjkuMy0yMTcuM2wtMTExLjQgMHptMTExLjQtNDhDNTAxLjkgMTMxLjIgNDM0LjEgNDcuMyAzNDIgMTQuNyAzNzQuMyA2Ni45IDM5Ni40IDE0Ni40IDM5OS45IDIzMmwxMTEuNCAweiJdfSx2T3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW1pbnVzIixpY29uOls1MTIsNTEyLFtdLCJmNjVkIiwiTTQ0OCA0NDhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNEw0NDggODBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE4NCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSx5T3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFzay1mYWNlIixpY29uOls2NDAsNTEyLFtdLCJlMWQ3IiwiTTMyMCA2NGMtMjcuMiAwLTUzLjggOC03Ni40IDIzLjFsLTM3LjEgMjQuOGMtMTUuOCAxMC41LTM0LjMgMTYuMS01My4zIDE2LjFMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDc4LjdjMCA2Mi42IDQ1LjIgMTE2IDEwNyAxMjYuM2w5Ny45IDE2LjNjMzMgMjIgNzIuNiAzNC43IDExNS4xIDM0LjdzODIuMi0xMi44IDExNS4xLTM0LjdMNTMzIDM5Ni45YzYxLjctMTAuMyAxMDctNjMuNyAxMDctMTI2LjNsMC03OC43YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04OS4yIDBjLTE5IDAtMzcuNS01LjYtNTMuMy0xNi4xTDM5Ni40IDg3LjFDMzczLjggNzIgMzQ3LjIgNjQgMzIwIDY0ek0xMzUuOSAzMzYuOWwtMTguNC0zLjFDODYuNiAzMjguNyA2NCAzMDIgNjQgMjcwLjdsMC03OC43IDQ4IDAgMCA0OGMwIDM1IDguNiA2Ny45IDIzLjkgOTYuOXptMzg2LjYtMy4xbC0xOC40IDMuMUM1MTkuNCAzMDcuOSA1MjggMjc1IDUyOCAyNDBsMC00OCA0OCAwIDAgNzguN2MwIDMxLjMtMjIuNiA1OC01My41IDYzLjF6TTE5MiAyMzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNTYgNTZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSx3T3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9uZyIsaWNvbjpbNTEyLDUxMixbXSwiZjU1YyIsIk00NDguNSAzODRjMCA0MS41LTEzLjEgNzkuOS0zNS41IDExMS4zLTcuOSAxMS4xLTIxLjIgMTYuNy0zNC44IDE2LjdsLTI0My4zIDBjLTEzLjcgMC0yNi45LTUuNi0zNC44LTE2LjctMjIuNC0zMS40LTM1LjUtNjkuOC0zNS41LTExMS4zIDAtNzEuMSAzOC42LTEzMy4xIDk2LTE2Ni4zbDAtMTUzLjdjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTMuN2MxNC4yIDguMiAyNy4yIDE4LjIgMzguOCAyOS42bDM5LjMtMzkuMy03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNiAxNiAzMiAzMiA0OCA0OCA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03LTctNDMuMyA0My4zYzE3LjMgMjguOSAyNy4zIDYyLjYgMjcuMyA5OC44ek0yODguNSA2NGwtNjQgMCAwIDE5MC42LTMyIDE4LjVjLTE5LjUgMTEuMy0zNS43IDI3LjUtNDYuOSA0Ni45bDIyMS44IDBjLTExLjItMTkuNC0yNy40LTM1LjYtNDYuOS00Ni45bC0zMi0xOC41IDAtMTkwLjZ6Il19LGtPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWJyaWRnZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MyIsIk0zMiAzMmwyMDggMCAwIDY0LTI0IDAgMCA2NCAyNCAwIDAgMTI5LjNjLTQ1LjQgNy42LTgwIDQ3LjEtODAgOTQuN2wwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk0YzAtMzguOC0yNi40LTcyLjYtNjQtODJsMC0xMTIgNDAgMCAwLTY0LTggMEMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJ6TTg4IDk2bDAgNjQgODAgMCAwLTY0LTgwIDB6TTMzNiAzMmw3MiAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDcyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTcyIDAgMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTcyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em05NiAxNjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxuSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtOS0xIixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLXVwLWFsdCJdLCJmODg3IiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNMzY1LjEgMjA2LjZjLTkuNiAxNC44LTUuNCAzNC42IDkuNCA0NC4zczM0LjYgNS40IDQ0LjMtOS40bDQyLjEtNjQuOWMxMi40LTE5LjIgMTkuMS00MS42IDE5LjEtNjQuNSAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDM2LjEgMjMuOSA2Ni43IDU2LjggNzYuNmwtMTEuNyAxOHpNMzc2IDExMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem00Mi43IDE4MmMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTk2YzAtMTAuMy00LjktMTkuOS0xMy4zLTI2eiJdfSxTT3I9bkhlLE1Pcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VudGFpbi1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNTJlIiwiTTI1Ni4zIDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTc3LjggMGM0LTE1LjQgMi40LTMyLjYtNi43LTQ4LjJMMzU0LjYgMjU2IDM2OC4zIDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTYuMSAwLTExLjQgMy40LTE0LjEgOC41bC00Mi42LTczYy02LTEwLjItMTQuMS0xOC0yMy4zLTIzLjNsMC01Ni4yem02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNjAgOTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptLTI3Mi02NC43bC02NS4xIDExMS42IDMzLjEgMzMuMSA0OC00OCA0MC40IDAtNTYuNC05Ni43em0tMjcuNi00Ny45YzEyLjMtMjEuMiA0Mi45LTIxLjIgNTUuMyAwTDQyMC4zIDQ2My45YzEyLjQgMjEuMy0yLjkgNDguMS0yNy42IDQ4LjFMNTYgNTEyYy0yNC43IDAtNDAuMS0yNi44LTI3LjYtNDguMUwxOTYuNyAxNzUuNHoiXX0sUXVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tOS0xIixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLWRlc2MiLCJzb3J0LW51bWVyaWMtZG93bi1hbHQiXSwiZjg4NiIsIk0yMzAuNiAzOTAuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTEzNC41LTE4NGwxMS43LTE4Yy0zMi45LTkuOS01Ni44LTQwLjUtNTYuOC03Ni42IDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAyMi45LTYuNiA0NS4zLTE5LjEgNjQuNWwtNDIuMSA2NC45Yy05LjYgMTQuOC0yOS40IDE5LjEtNDQuMyA5LjRzLTE5LjEtMjkuNC05LjQtNDQuM3pNNDI0IDExMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0tNS4zIDE4MmM4LjMgNiAxMy4zIDE1LjcgMTMuMyAyNmwwIDk2IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTUxLjYtNS45IDJjLTE2LjggNS42LTM0LjktMy41LTQwLjUtMjAuMnMzLjUtMzQuOSAyMC4yLTQwLjVsNDgtMTZjOS44LTMuMyAyMC41LTEuNiAyOC44IDQuNHoiXX0sQ09yPVF1ZSx6T3I9UXVlLG9IZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4td2lkZSIsaWNvbjpbNTEyLDUxMixbMTI4NTE1LCJncmluLWFsdCJdLCJmNTgxIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMjA4IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NCAxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjR6bTEyOCA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LF9Pcj1vSGUsVE9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvb3AiLGljb246WzUxMiw1MTIsW10sImY2MTkiLCJNMjU0LjQgNi42YzMuNS00LjMgOS02LjUgMTQuNS01LjcgNDYuOSA2LjMgODMuMSA0Ni41IDgzLjEgOTUuMSAwIDExLjItMS45IDIyLTUuNSAzMmw1LjUgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDE5LjEtOC40IDM2LjMtMjEuNyA0OGwxMy43IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzIgMCAyMy4yLTExIDQzLjgtMjggNTcgMzQuMSA1LjcgNjAgMzUuMyA2MCA3MSAwIDM5LjgtMzIuMiA3Mi03MiA3Mkw3MiA1MTJjLTM5LjggMC03Mi0zMi4yLTcyLTcyIDAtMzUuNyAyNS45LTY1LjMgNjAtNzEtMTctMTMuMi0yOC0zMy44LTI4LTU3IDAtMzkuOCAzMi4yLTcyIDcyLTcybDEzLjcgMGMtMTMuMy0xMS43LTIxLjctMjguOS0yMS43LTQ4IDAtMzUuMyAyOC43LTY0IDY0LTY0bDE2LjIgMGM0NC4xLS4xIDc5LjgtMzUuOSA3OS44LTgwIDAtOS4yLTEuNS0xNy45LTQuMy0yNi4xLTEuOC01LjItLjgtMTEuMSAyLjgtMTUuNHoiXX0sTE9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRoYXJtYWNoYWtyYSIsaWNvbjpbNTEyLDUxMixbOTc4NF0sImY2NTUiLCJNMzM3LjggMjA1LjdsNDguNi00Mi41YzEzLjggMTkuMyAyMy40IDQxLjkgMjcuNCA2Ni4ybC02NC40IDQuM2MtMi40LTEwLjEtNi40LTE5LjUtMTEuNi0yOHptMTQwLjEgMTkuNWMtNS4zLTM4LjgtMjAuNi03NC41LTQzLjItMTA0LjNsLjgtLjdDNDQ5IDEwOC40IDQ0OS43IDg3LjYgNDM3IDc1cy0zMy40LTEyLTQ1LjIgMS41bC0uNyAuOGMtMjkuOC0yMi42LTY1LjUtMzcuOS0xMDQuMy00My4ybC4xLTEuMWMxLjItMTcuOS0xMy0zMy0zMC45LTMzcy0zMi4xIDE1LjItMzAuOSAzM2wuMSAxLjFjLTM4LjggNS4zLTc0LjUgMjAuNi0xMDQuMyA0My4ybC0uNy0uOEMxMDguNCA2MyA4Ny42IDYyLjMgNzUgNzVzLTEyIDMzLjQgMS41IDQ1LjJsLjggLjdjLTIyLjYgMjkuOC0zNy45IDY1LjUtNDMuMiAxMDQuM2wtMS4xLS4xYy0xNy45LTEuMi0zMyAxMy0zMyAzMC45czE1LjIgMzIuMSAzMyAzMC45bDEuMS0uMWM1LjMgMzguOCAyMC42IDc0LjUgNDMuMiAxMDQuM2wtLjggLjdDNjMgNDAzLjYgNjIuMyA0MjQuNCA3NSA0MzdzMzMuNCAxMiA0NS4yLTEuNWwuNy0uOGMyOS44IDIyLjYgNjUuNSAzNy45IDEwNC4zIDQzLjJsLS4xIDEuMWMtMS4yIDE3LjkgMTMgMzMgMzAuOSAzM3MzMi4xLTE1LjIgMzAuOS0zM2wtLjEtMS4xYzM4LjgtNS4zIDc0LjUtMjAuNiAxMDQuMy00My4ybC43IC44YzExLjggMTMuNSAzMi41IDE0LjIgNDUuMiAxLjVzMTItMzMuNC0xLjUtNDUuMmwtLjgtLjdjMjIuNi0yOS44IDM3LjktNjUuNSA0My4yLTEwNC4zbDEuMSAuMWMxNy45IDEuMiAzMy0xMyAzMy0zMC45cy0xNS4yLTMyLjEtMzMtMzAuOWwtMS4xIC4xek0xNjMuMiAxMjUuNmMxOS4zLTEzLjggNDEuOS0yMy40IDY2LjItMjcuNWw0LjMgNjQuNGMtMTAgMi40LTE5LjUgNi40LTI4IDExLjZsLTQyLjUtNDguNnptLTY1IDEwMy44YzQuMS0yNC40IDEzLjctNDYuOSAyNy41LTY2LjJsNDguNiA0Mi41Yy01LjMgOC41LTkuMiAxOC0xMS42IDI4bC02NC40LTQuM3ptMjcuNSAxMTkuNGMtMTMuOC0xOS4zLTIzLjQtNDEuOS0yNy41LTY2LjJsNjQuNC00LjNjMi40IDEwLjEgNi40IDE5LjUgMTEuNiAyOGwtNDguNiA0Mi41em0xMDMuOCA2NWMtMjQuNC00LjEtNDYuOS0xMy43LTY2LjItMjcuNGw0Mi41LTQ4LjZjOC41IDUuMyAxOCA5LjIgMjggMTEuNmwtNC4zIDY0LjR6bTExOS40LTI3LjRjLTE5LjMgMTMuOC00MS45IDIzLjQtNjYuMiAyNy40bC00LjMtNjQuNGMxMC0yLjQgMTkuNS02LjQgMjgtMTEuNmw0Mi41IDQ4LjZ6bTY1LTEwMy44Yy00LjEgMjQuNC0xMy43IDQ2LjktMjcuNCA2Ni4ybC00OC42LTQyLjVjNS4zLTguNiA5LjItMTggMTEuNi0yOGw2NC40IDQuM3ptLTY1LTE1Ni45bC00Mi41IDQ4LjZjLTguNi01LjMtMTgtOS4yLTI4LTExLjZsNC4zLTY0LjRjMjQuNCA0LjEgNDYuOSAxMy43IDY2LjIgMjcuNXpNMjU2IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGxIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LXF1YXJ0ZXIiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTIiXSwiZjI0MyIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC02NCAweiJdfSxET3I9bEhlLCRPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmtoIixpY29uOlszMjAsNTEyLFs5NzY1XSwiZjY0NCIsIk05NiAxMjhjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGMwIDQxLjYtMjAuNyA3Ni42LTQ2LjYgMTA0LjEtNS45IDYuMi0xMS44IDExLjgtMTcuNCAxNi43LTUuNi00LjktMTEuNS0xMC41LTE3LjQtMTYuNy0yNS45LTI3LjUtNDYuNi02Mi42LTQ2LjYtMTA0LjF6TTE2MCAwQzg5LjMgMCAzMiA1Ny4zIDMyIDEyOCAzMiAxODAuNCA1My41IDIyMy41IDc4LjggMjU2TDMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDYuOCAwQzI2Ni41IDIyMy41IDI4OCAxODAuNCAyODggMTI4IDI4OCA1Ny4zIDIzMC43IDAgMTYwIDB6Il19LEFPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFtb25kIixpY29uOls1MTIsNTEyLFs5ODMwXSwiZjIxOSIsIk0xNyAyMTVMMjE1IDE3QzIyNS45IDYuMSAyNDAuNiAwIDI1NiAwczMwLjEgNi4xIDQxIDE3TDQ5NSAyMTVjMTAuOSAxMC45IDE3IDI1LjYgMTcgNDFzLTYuMSAzMC4xLTE3IDQxTDI5NyA0OTVjLTEwLjkgMTAuOS0yNS42IDE3LTQxIDE3cy0zMC4xLTYuMS00MS0xN0wxNyAyOTdDNi4xIDI4Ni4xIDAgMjcxLjQgMCAyNTZzNi4xLTMwLjEgMTctNDF6Il19LEVPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWJzY3JpcHQiLGljb246WzU3Niw1MTIsW10sImYxMmMiLCJNOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsMTUuMyAwIDg5LjYgMTI4LTg5LjYgMTI4LTE1LjMgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMjQwIDMxMS44IDMyNS44IDQzNC40YzYgOC42IDE1LjggMTMuNiAyNi4yIDEzLjZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUuMyAwLTg5LjYtMTI4IDg5LjYtMTI4IDE1LjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwyNDAgMjAwLjIgMTU0LjIgNzcuNkMxNDguMiA2OS4xIDEzOC40IDY0IDEyOCA2NEw5NiA2NHpNNTQ0IDMyMGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZjLTE1LjggNy45LTIyLjIgMjcuMS0xNC4zIDQyLjkgNS42IDExLjIgMTYuOSAxNy43IDI4LjYgMTcuN2wwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMjh6Il19LGNIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydXBlZS1zaWduIixpY29uOls0NDgsNTEyLFs4MzYwLCJydXBlZSJdLCJmMTU2IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHptMjg1LjEtMzJsMzQuOSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNC45IDBjLTcuMiAwLTEzLjEgNS45LTEzLjEgMTMuMSAwIDUuNyAzLjcgMTAuNyA5LjEgMTIuNWw0OS40IDE1LjljMzEuOSAxMC4zIDUzLjUgMzkuOSA1My41IDczLjQgMCA0Mi42LTM0LjUgNzcuMS03Ny4xIDc3LjFMMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw1MC45IDBjNy4yIDAgMTMuMS01LjkgMTMuMS0xMy4xIDAtNS43LTMuNy0xMC43LTkuMS0xMi41bC00OS40LTE1LjljLTMxLjktMTAuMy01My41LTM5LjktNTMuNS03My40IDAtNDIuNiAzNC41LTc3LjEgNzcuMS03Ny4xeiJdfSxJT3I9Y0hlLFBPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcmlmbGUiLGljb246WzUxMiw1MTIsW10sImU1NGUiLCJNNDE2IDBMMzg0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN0w0MzIgMTZjMC04LjgtNy4yLTE2LTE2LTE2ek0yMjQgMjA4QzExOCAyMDggMzIgMjk0IDMyIDQwMGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OGMwLTMyLjUgMTIuMS02Mi4xIDMyLTg0LjdsMCAxOTYuNyAxNjAgMCAwLTI5My4xYy0yMC03LjEtNDEuNi0xMC45LTY0LTEwLjl6TTI4MCA4OGE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6Il19LE5Pcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkIixpY29uOlszODQsNTEyLFsxMDBdLCI0NCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRTMjgzLjcgNDgwIDE2MCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDY0ek02NCA5NmwwIDMyMCA5NiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwUzI0OC40IDk2IDE2MCA5Nkw2NCA5NnoiXX0sT09yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1uZmkiLGljb246WzQ0OCw1MTIsW10sImU1NzYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTMgMTcyLjNsMzUgNjMgMC01MS40YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNDRjMCAxMC45LTcuNCAyMC41LTE4IDIzLjJzLTIxLjctMi0yNy0xMS42bC0zNS02MyAwIDUxLjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMC45IDcuNC0yMC41IDE4LTIzLjJzMjEuNyAyIDI3IDExLjZ6TTIwOCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwIDMyIDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE0NHptMTkyIDBsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sUk9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlZXRoIixpY29uOls1MTIsNTEyLFtdLCJmNjJlIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNDQgMjA4bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4em0xMjggMGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNODAgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnptMzIwIDMybDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyek00OCAzMzZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZ6bTE0NCA0OGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAyNi41IDIxLjUgNDggNDggNDh6bTEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OHptMTEyLTE2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnoiXX0sZEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtZG9sbGFyIixpY29uOls1MTIsNTEyLFsic2VhcmNoLWRvbGxhciJdLCJmNjg4IiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjEyIDk2Yy0xMSAwLTIwIDktMjAgMjBsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMTY4IDI1NmMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHoiXX0sRk9yPWRIZSxCT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtcHN0ZXItZmlyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjc5NCIsIk0xNjQuMyA2NEwxMzguNyAxOTIgNTYgMTkyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuMWMwLTIuNiAuNC01LjEgMS4yLTcuNkw1OC41IDgwLjRDNjEuOCA3MC42IDcxIDY0IDgxLjMgNjRsODMgMHptMjMuNCAxMjhsMjUuNi0xMjggODIuNyAwIDAgMTI4LTEwOC4zIDB6TTM0NCA2NGw4Mi43IDAgMTYgODBjLTE0LjcgLjItMjkuMyA1LjUtNDAuOSAxNS45LTExLjUgMTAuMy0yMi41IDIxLTMyLjggMzIuMWwtMjQuOSAwIDAtMTI4ek05NiAyNDBsMjMzLjIgMGMtNi40IDguOC0xMi4zIDE3LjYtMTcuNyAyNi4zLTIxLjQgMzQuNy0zOS41IDc2LjEtMzkuNSAxMTUuOCAwIDE3LjEgMi4xIDMzLjggNiA0OS45bC0xMjAuNCAwIDEuOSAxMC4zYzMuMiAxNy40LTguNCAzNC0yNS44IDM3LjJzLTM0LTguNC0zNy4yLTI1LjhDNzEgMzEzLjMgNTggMjQyLjEgNTcuNyAyNDBMOTYgMjQwem01MTItNzJjMCAxMS03LjQgMjAuMy0xNy41IDIzLjEtLjktLjgtMS43LTEuNi0yLjYtMi40LTIxLjgtMjAtNTQuMy0yMS44LTc4LTUuNS00LjItNC4zLTguNS04LjUtMTIuOS0xMi42bC0yMS4zLTEwNi42IDgzIDBjMTAuMyAwIDE5LjUgNi42IDIyLjggMTYuNGwyNS4zIDc1LjljLjggMi40IDEuMiA1IDEuMiA3LjZsMCA0LjF6TTUwNS43IDI0MC4zTDUxOCAyMjYuNWM1LjQtNi4xIDEzLjMtOC44IDIwLjktOC45IDcuMiAwIDE0LjMgMi42IDE5LjkgNy44IDE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNiAxNS4xIDI3LjIgMjYuMiA1OC4xIDI2LjIgODguMSAwIDg4LjctNzEuMyAxNTkuOC0xNjAgMTU5LjgtODkuNiAwLTE2MC03MS4zLTE2MC0xNTkuOCAwLTM3LjMgMTYtNzMuNCAzNi44LTEwNC41IDIwLjktMzEuMyA0Ny41LTU5IDcwLjktODAuMiA1LjctNS4yIDEzLjEtNy43IDIwLjMtNy41czEzLjQgMy4yIDE4LjggNy41YzE0LjQgMTEuNCAzOC45IDQwLjcgMzguOSA0MC43ek01NDQgNDMyLjJjMC0zNi41LTM3LTczLTU0LjgtODguNC01LjQtNC43LTEzLjEtNC43LTE4LjUgMC0xNy43IDE1LjQtNTQuOCA1MS45LTU0LjggODguNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxIT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXBsb2FkIixpY29uOls0NDgsNTEyLFtdLCJmMDkzIiwiTTI1NiAxMDkuM0wyNTYgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjEwLjctNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyNTYgMTA5LjN6TTIyNCA0MDBjNDQuMiAwIDgwLTM1LjggODAtODBsODAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMmMwLTM1LjMgMjguNy02NCA2NC02NGw4MCAwYzAgNDQuMiAzNS44IDgwIDgwIDgwem0xNDQgMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxYdWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zbGFzaCIsaWNvbjpbNTc2LDUxMixbNjI3MTQsInVzZXItYWx0LXNsYXNoIiwidXNlci1sYXJnZS1zbGFzaCJdLCJmNTA2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzExLjUgMjQ1LjdjNTUtMTAuOSA5Ni41LTU5LjUgOTYuNS0xMTcuNyAwLTY2LjMtNTMuNy0xMjAtMTIwLTEyMC01OC4yIDAtMTA2LjggNDEuNS0xMTcuNyA5Ni41TDQxLTI0Ljl6TTIzNS42IDMwNS40QzE0Ny45IDMxNi42IDgwIDM5MS41IDgwIDQ4Mi4zIDgwIDQ5OC43IDkzLjMgNTEyIDEwOS43IDUxMmwzMzIuNSAwLTIwNi42LTIwNi42eiJdfSxxT3I9WHVlLFZPcj1YdWUsak9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWxlZnQiLGljb246WzUxMiw1MTIsWzg1OTJdLCJmMDYwIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI4OCA0ODAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNzAuNyAwIDEwNS40LTEwNS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYweiJdfSxVT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlhbC12aXJ1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NyIsIk02NCAzMkM2NCAxNC4zIDc4LjMgMCA5NiAwTDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTUxLjdjLTE4LjUgMC0zNyA3LTUxLjEgMjEuMS0yMS42IDIxLjYtMjYuNiA1My42LTE1IDc5LjktMjYuOSAxMC40LTQ1LjkgMzYuNi00NS45IDY3LjFzMTkgNTYuNyA0NS45IDY3LjFjLTcuMyAxNi41LTggMzUuMi0yLjMgNTIuMi0xMy40IDUuNy0yOC4yIDguOC00My42IDguOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw5NiA2NEM3OC4zIDY0IDY0IDQ5LjcgNjQgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHpNMjgwIDQwOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyOC44IDAgNDMuMi0zNC44IDIyLjktNTUuMi05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMjAuNCAyMC40IDU1LjIgNS45IDU1LjItMjIuOSAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMjguOCAzNC44IDQzLjIgNTUuMiAyMi45IDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMjAuNCAyMC40LTUuOSA1NS4yIDIyLjkgNTUuMiAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjguOCAwLTQzLjIgMzQuOC0yMi45IDU1LjIgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMjAuNC0yMC40LTU1LjItNS45LTU1LjIgMjIuOSAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTI4LjgtMzQuOC00My4yLTU1LjItMjIuOS05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzIwLjQtMjAuNCA1LjktNTUuMi0yMi45LTU1LjJ6bTEwNC0zMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFdPcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjay1kb3VibGUiLGljb246WzM4NCw1MTIsW10sImY1NjAiLCJNMjQ5LjkgNjYuOGMxMC40LTE0LjMgNy4yLTM0LjMtNy4xLTQ0LjdzLTM0LjMtNy4yLTQ0LjcgNy4xbC0xMDYgMTQ1LjctMzcuNS0zNy41Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM2LjYgNi42IDE1LjggMTAgMjUuMSA5LjNzMTcuOS01LjUgMjMuNC0xMy4xbDEyOC0xNzZ6bTEyOCAxMzZjMTAuNC0xNC4zIDcuMi0zNC4zLTcuMS00NC43cy0zNC4zLTcuMi00NC43IDcuMWwtMTcwIDIzMy43LTY5LjUtNjkuNWMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjNi42IDYuNiAxNS44IDEwIDI1LjEgOS4zczE3LjktNS41IDIzLjQtMTMuMWwxOTItMjY0eiJdfSxHT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGF3IixpY29uOls1MTIsNTEyLFtdLCJmMWIwIiwiTTIzNC41IDkyLjljMTQuMyA0Mi45LS4zIDg2LjItMzIuNiA5Ni44cy03MC4xLTE1LjYtODQuNC01OC41IC4zLTg2LjIgMzIuNi05Ni44IDcwLjEgMTUuNiA4NC40IDU4LjV6TTEwMC40IDE5OC42YzE4LjkgMzIuNCAxNC4zIDcwLjEtMTAuMiA4NC4xcy01OS43LS45LTc4LjUtMzMuMy0xNC4zLTcwLjEgMTAuMi04NC4xIDU5LjcgLjkgNzguNSAzMy4zek02OS4yIDQwMS4yQzEyMS42IDI1OS45IDIxNC43IDIyNCAyNTYgMjI0czEzNC40IDM1LjkgMTg2LjggMTc3LjJjMy42IDkuNyA1LjIgMjAuMSA1LjIgMzAuNWwwIDEuNmMwIDI1LjgtMjAuOSA0Ni43LTQ2LjcgNDYuNy0xMS41IDAtMjIuOS0xLjQtMzQtNC4ybC04OC0yMmMtMTUuMy0zLjgtMzEuMy0zLjgtNDYuNiAwbC04OCAyMmMtMTEuMSAyLjgtMjIuNSA0LjItMzQgNC4yLTI1LjggMC00Ni43LTIwLjktNDYuNy00Ni43bDAtMS42YzAtMTAuNCAxLjYtMjAuOCA1LjItMzAuNXpNNDIxLjggMjgyLjdjLTI0LjUtMTQtMjkuMS01MS43LTEwLjItODQuMXM1NC00Ny4zIDc4LjUtMzMuMyAyOS4xIDUxLjcgMTAuMiA4NC4xLTU0IDQ3LjMtNzguNSAzMy4zek0zMTAuMSAxODkuN2MtMzIuMy0xMC42LTQ2LjktNTMuOS0zMi42LTk2LjhzNTIuMS02OS4xIDg0LjQtNTguNSA0Ni45IDUzLjkgMzIuNiA5Ni44LTUyLjEgNjkuMS04NC40IDU4LjV6Il19LEp1ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxtZXQtc2FmZXR5IixpY29uOls1NzYsNTEyLFsiaGFyZC1oYXQiLCJoYXQtaGFyZCJdLCJmODA3IiwiTTM1MiAyNjRsMC0yMDBjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjAwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTg1LjlDOTAgMTA5LjggMzIgMTkxLjggMzIgMjg4bDAgNjQgNTEyIDAgMC02NGMtMS05NS4yLTU4LjQtMTc3LjctMTQ0LTIwOS44TDQwMCAyNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6TTQwIDQwMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGw0OTYgMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MEw0MCA0MDB6Il19LFlPcj1KdWUsS09yPUp1ZSxaT3I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZSIsaWNvbjpbMzIwLDUxMixbMTAxXSwiNDUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0xMjggMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTI4IDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSx1SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC1zcXVpbnQiLGljb246WzUxMiw1MTIsWyJsYXVnaC1zcXVpbnQiXSwiZjU5YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTA3LjcgMzMyLjFDMTAyIDMxOCAxMTMuNCAzMDQgMTI4LjYgMzA0bDI1NC45IDBjMTUuMiAwIDI2LjYgMTQgMjAuOSAyOC4xLTIzLjggNTguNi04MS4yIDk5LjktMTQ4LjMgOTkuOXMtMTI0LjYtNDEuMy0xNDguMy05OS45em0xNS0xODguOGM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMTkyIDM4Ni4yIDIxOS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxRT3I9dUhlLHBIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3duLWxlZnQtYW5kLXVwLXJpZ2h0LXRvLWNlbnRlciIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFsdCJdLCJmNDIyIiwiTTQzOS41IDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDUwLjIgMjQwIDQ0MC41IDI0MGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnMxOS4zLTEuNyAyNi4yIDUuMmwzOSAzOSA4Ny04N3pNNzIuNSAyNzJsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0zMi0zMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODctMzktMzljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNjIuOCAyNzIgNzIuNSAyNzJ6Il19LFhPcj1wSGUsSk9yPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdpZnRzIixpY29uOls1NzYsNTEyLFtdLCJmNzljIiwiTTIwMi0zMC42YzEyLjUgNC40IDE5IDE4LjEgMTQuNiAzMC42bC04LjIgMjMuMSAyNS40LTE4LjVjMTAuNy03LjggMjUuNy01LjQgMzMuNSA1LjNzNS40IDI1LjctNS4zIDMzLjVMMjMzLjggNjQgMjcyIDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMi4xYy01NC43IDEwLjQtOTYgNTguNC05NiAxMTZsMCAxLjljMCA4LjkgMSAxNy41IDIuOCAyNS45LTExLjkgMTcuOC0xOC44IDM5LjEtMTguOCA2Mi4xbDAgMTI4YzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMzguMiAwLTI4LjMtMjAuNkM0Ny4yIDM1LjYgNDQuOCAyMC42IDUyLjYgOS45Uzc1LjQtMy4yIDg2LjEgNC42bDI3LjQgMjAtOC4zLTI1QzEwMS0xMyAxMDcuOC0yNi42IDEyMC40LTMwLjhzMjYuMiAyLjYgMzAuNCAxNS4ybDkuOSAyOS44IDEwLjctMzAuMmM0LjQtMTIuNSAxOC4xLTE5IDMwLjYtMTQuNnpNNDg5LjkgMjA4Yy03LjUgMC0xNC41IDMuOC0xOC42IDEwLjFMNDQ2LjkgMjU2IDQ4OCAyNTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xLjljMC0xMi4yLTkuOS0yMi4xLTIyLjEtMjIuMXpNMzg1LjEgMjU2bC0yNC40LTM3LjljLTQuMS02LjMtMTEuMS0xMC4xLTE4LjYtMTAuMS0xMi4yIDAtMjIuMSA5LjktMjIuMSAyMi4xbDAgMS45YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQxLjEgMHpNMjgxLjkgMjY4LjVjLTYuMy0xMC43LTkuOS0yMy4yLTkuOS0zNi41bDAtMS45YzAtMzguNyAzMS40LTcwLjEgNzAuMS03MC4xIDIzLjggMCA0NiAxMi4xIDU4LjkgMzIuMWwxNSAyMy4yIDE1LTIzLjJjMTIuOS0yMCAzNS4xLTMyLjEgNTguOS0zMi4xIDM4LjcgMCA3MC4xIDMxLjQgNzAuMSA3MC4xbDAgMS45YzAgMTMuMy0zLjYgMjUuOC05LjkgMzYuNSAxNS43IDExLjcgMjUuOSAzMC40IDI1LjkgNTEuNWwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNzIgMCAwLTIwOC00OCAwIDAgMjA4LTcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTI4YzAtMjEuMSAxMC4yLTM5LjggMjUuOS01MS41eiJdfSxlUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVkIixpY29uOls1NzYsNTEyLFsxMjg3MTZdLCJmMjM2IiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0IDIyNCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NC00NDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptODAgMTYwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sdFJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJhbnNmZXIiLGljb246WzY0MCw1MTIsW10sImU1MjgiLCJNMzEgMTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxMDMtMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDY3LjcgMCAwIDAgMzM4LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE3OC4yLTUuMS01LjFjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMC0yNy4yIDI3LjItMjguMSA3MC42LTIuOCA5OC45bDY3LjcgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS00MDYuMSAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3OC4yIDUuMSA1LjFjMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDI3LjItMjcuMiAyOC4xLTcwLjYgMi44LTk4LjlsLTY3LjcgMCAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDMxIDEwNXpNNDE2IDI1NmE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bTg4LTY0LjVjNC40IC41IDgtMy4xIDgtNy41bDAtNDhjMC00LjQtMy42LTgtOC04bC00OCAwYy00LjQgMC04LjEgMy42LTcuNSA4IDMuNiAyOSAyNi42IDUxLjkgNTUuNSA1NS41em0tMzY4IDEyOWMtNC40LS41LTggMy4xLTggNy41bDAgNDhjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC4xLTMuNiA3LjUtOC0zLjYtMjktMjYuNi01MS45LTU1LjUtNTUuNXoiXX0sZkhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1ydW5uaW5nIixpY29uOls0NDgsNTEyLFsxMjc5MzksInJ1bm5pbmciXSwiZjcwYyIsIk0yNTYuNS0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTIzLjYgMTc2Yy0zLjMgMC02LjIgMi03LjQgNUw5NC4yIDIzNS45Yy02LjYgMTYuNC0yNS4yIDI0LjQtNDEuNiAxNy44cy0yNC40LTI1LjItMTcuOC00MS42bDIxLjktNTQuOUM2Ny43IDEyOS45IDk0LjEgMTEyIDEyMy42IDExMmw5Ny4zIDBjMjguNSAwIDU0LjggMTUuMSA2OS4xIDM5LjdsMzIuOCA1Ni4zIDYxLjYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjEuNiAwYy0yMi44IDAtNDMuOC0xMi4xLTU1LjMtMzEuOGwtMTAtMTcuMS0yMC43IDcwLjQgNzUuNCAyMi42YzI3LjcgOC4zIDQxLjggMzkgMzAuMSA2NS41TDI4NS43IDUwOWMtNy4yIDE2LjItMjYuMSAyMy40LTQyLjIgMTYuMnMtMjMuNC0yNi4xLTE2LjItNDIuMmw0OS4yLTExMC44LTk1LjktMjguOGMtMzIuNy05LjgtNTItNDMuNy00My43LTc2LjhsMjIuNy05MC42LTM1LjkgMHptLTggMTgxYzEzLjMgMTQuOSAzMC43IDI2LjMgNTEuMiAzMi40bDQuNyAxLjQtNi45IDE5LjNjLTUuOCAxNi4zLTE2IDMwLjgtMjkuMyA0MS44TDUyLjkgNTE5LjhjLTEzLjYgMTEuMi0zMy44IDkuMy00NS00LjNzLTkuMy0zMy44IDQuMy00NWw4Mi40LTY3LjljNC41LTMuNyA3LjgtOC41IDkuOC0xMy45TDExNS42IDM1N3oiXX0sclJyPWZIZSxoSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tZG93biIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLWRvd24iXSwiZjEzYSIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTEzNSAyNDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4NyA4NyA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMjczIDM0NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTM1IDI0MXoiXX0sYVJyPWhIZSxpUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1udXJzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjgyZiIsIk05NiA0NC45YzAtMTIuNyA3LjUtMjQuMiAxOS4yLTI5LjNsOTYtNDJjOC4yLTMuNiAxNy41LTMuNiAyNS43IDBsOTYgNDJDMzQ0LjUgMjAuNyAzNTIgMzIuMiAzNTIgNDQuOWwwIDk5LjFjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhTOTYgMjE0LjcgOTYgMTQ0bDAtOTkuMXpNMzA0IDEyOGwtMTExLjYgMC0uNCAwLTQ4IDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwbDAtMTZ6TTIwOCAxNmwwIDE2LTE2IDBjLTQuNCAwLTggMy42LTggOGwwIDE2YzAgNC40IDMuNiA4IDggOGwxNiAwIDAgMTZjMCA0LjQgMy42IDggOCA4bDE2IDBjNC40IDAgOC0zLjYgOC04bDAtMTYgMTYgMGM0LjQgMCA4LTMuNiA4LThsMC0xNmMwLTQuNC0zLjYtOC04LThsLTE2IDAgMC0xNmMwLTQuNC0zLjYtOC04LThMMjE2IDhjLTQuNCAwLTggMy42LTggOHpNMTQyLjYgMzIzYy02LjUtNC45LTE1LjItNi4yLTIyLjYtMi44LTYxLjQgMjguMi0xMDQuMSA5MC4yLTEwNC4xIDE2Mi4xIDAgMTYuNCAxMy4zIDI5LjcgMjkuNyAyOS43bDM1Ni42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC03Mi00Mi43LTEzNC0xMDQuMS0xNjIuMS03LjQtMy40LTE2LjEtMi4xLTIyLjYgMi44bC02NyA1MC4yYy04LjUgNi40LTIwLjMgNi40LTI4LjggMGwtNjctNTAuMnoiXX0sbUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Uta2lzcy13aW5rLWhlYXJ0IixpY29uOls2NDAsNTEyLFsxMjg1MzYsImtpc3Mtd2luay1oZWFydCJdLCJmNTk4IiwiTTU0My43IDI2OC4zYy4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy03LjYtMTcuMS0xNi4xLTM4LjgtMjEuOC02MS43LTcuNy0zMC41LTE0LjEtNzYuMiA4LjItMTE0LjdsMi43LTQuNmMyOS41LTUxIDk0LjctNjguNSAxNDUuNy0zOSAyIDEuMiA0IDIuNCA1LjkgMy43ek0yNDAgMzA0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTIwOCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xNTIgMjBjLTExIDAtMjAgOS0yMCAyMHMtOSAyMC0yMCAyMC0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDB6TTU0Mi44IDM1MGMtMi4yLTE4LjMtMTIuOS0zNC42LTI4LjktNDMuOC0yOC4xLTE2LjItNjMuOS02LjYtODAuMSAyMS41bC0yLjcgNC42Yy0yNC41IDQyLjUgNy45IDExNy45IDI0LjQgMTUwLjggNS4xIDEwLjEgMTUuNSAxNi4xIDI2LjggMTUuNSAzNi43LTIuMiAxMTguMi0xMS43IDE0Mi44LTU0LjJsMi43LTQuNmMxNi4yLTI4LjEgNi42LTYzLjktMjEuNS04MC4xLTE2LTkuMi0zNS40LTEwLjQtNTIuNC0zLjFsLTkuOCA0LjItMS4zLTEwLjZ6Il19LHNScj1tSGUsblJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGwiLGljb246WzUxMiw1MTIsW10sImY1NzUiLCJNMjk2IDY0YzYuOSAwIDEzLjUgMi43IDE4LjMgNy42TDQ0MC40IDE5Ny43YzQuOSA0LjkgNy42IDExLjUgNy42IDE4LjNzLTIuNyAxMy41LTcuNiAxOC4zTDM4Ni43IDI4OCA2NS4zIDI4OGMxLjMtMy45IDMuNC03LjQgNi4zLTEwLjNsOTYuNC05Ni40IDMzLjQgMzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIxMy4zIDEzNiAyNzcuNyA3MS42YzQuOS00LjkgMTEuNS03LjYgMTguMy03LjZ6TTEyMi43IDEzNkwyNi4zIDIzMi40QzkuNSAyNDkuMyAwIDI3Mi4xIDAgMjk2czkuNSA0Ni43IDI2LjMgNjMuNkwxNTIuNCA0ODUuN0MxNjkuMyA1MDIuNSAxOTIuMSA1MTIgMjE2IDUxMnM0Ni43LTkuNSA2My42LTI2LjNMNDg1LjcgMjc5LjZDNTAyLjUgMjYyLjcgNTEyIDIzOS45IDUxMiAyMTZzLTkuNS00Ni43LTI2LjMtNjMuNkwzNTkuNiAyNi4zQzM0Mi43IDkuNSAzMTkuOSAwIDI5NiAwcy00Ni43IDkuNS02My42IDI2LjNMMTY4IDkwLjcgMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTIyLjcgMTM2eiJdfSxnSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC0xLXdhdmUiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLXdhdmUtYWx0Il0sImY1M2IiLCJNMCAxMDkuNUwwIDQxOS42YzAgMTkuNCAxMS44IDM3LjMgMzAuMyA0My4zIDk0IDMwIDE1OC44IDguNCAyMjMuMy0xMy4xIDYyLjQtMjAuOCAxMjQuNC00MS41IDIxMi4xLTE1LjMgMjIuMiA2LjYgNDYuMi04LjggNDYuMi0zMmwwLTMxMC4xYzAtMTkuNC0xMS44LTM3LjMtMzAuMy00My4zLTk0LTMwLTE1OC44LTguNC0yMjMuMyAxMy4xLTYyLjQgMjAuOC0xMjQuNCA0MS41LTIxMi4xIDE1LjMtMjIuMi02LjYtNDYuMyA4LjgtNDYuMyAzMnpNMjU2IDM2OGMtNTMgMC05Ni01MC4xLTk2LTExMnM0My0xMTIgOTYtMTEyIDk2IDUwLjEgOTYgMTEyLTQzIDExMi05NiAxMTJ6TTEyNy4xIDQwNS41Yy43IDQuNC0yLjggOC4xLTcuMiA4LjEtMTUuNyAwLTMyLjEtMS44LTUwLTYuMS0zLjUtLjgtNi00LTYtNy43TDY0IDM2MGMwLTQuNCAzLjYtOC4xIDgtNy41IDI4LjEgMy41IDUwLjYgMjUuMiA1NS4yIDUzek00NDggMzU0LjZjMCA1LTQuNiA4LjgtOS41IDgtMTUuNC0yLjUtMzAuMi0zLjktNDQuNC00LjMtNC45LS4xLTguNy00LjUtNy4yLTkuMiA3LjMtMjMuNyAyOC00MS40IDUzLjItNDQuNiA0LjQtLjUgOCAzLjEgOCA3LjVsMCA0Mi42em0tOC0xOTUuMWMtMjguMS0zLjUtNTAuNi0yNS4yLTU1LjItNTMtLjctNC40IDIuOC04LjEgNy4yLTguMSAxNS43IDAgMzIuMSAxLjggNTAgNi4xIDMuNSAuOCA2IDQgNiA3LjdsMCAzOS45YzAgNC40LTMuNiA4LjEtOCA3LjV6bS0zMjIuMS01LjhjNC45IC4xIDguNyA0LjUgNy4yIDkuMi03LjMgMjMuNy0yOCA0MS40LTUzLjIgNDQuNi00LjQgLjUtOC0zLjEtOC03LjVsMC00Mi42YzAtNSA0LjYtOC44IDkuNS04IDE1LjQgMi41IDMwLjIgMy45IDQ0LjQgNC4zek0yNDAgMTg4Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSxvUnI9Z0hlLGxScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyayIsaWNvbjpbNTEyLDUxMixbMTI3OTYzXSwiZjY2ZiIsIk0yMzguNyA1LjFjMTAuNS02LjggMjQuMS02LjggMzQuNiAwbDIyNCAxNDRjMTEuOSA3LjcgMTcuNCAyMi4zIDEzLjQgMzUuOXMtMTYuNSAyMy0zMC43IDIzbC0zMiAwIDAgMjA4IDUxLjIgMzguNGM4LjEgNiAxMi44IDE1LjUgMTIuOCAyNS42IDAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC0xMC4xIDQuNy0xOS42IDEyLjgtMjUuNmw1MS4yLTM4LjQgMCAwIDAtMjA4LTMyIDBjLTE0LjIgMC0yNi43LTkuNC0zMC43LTIzczEuNS0yOC4zIDEzLjQtMzUuOWwyMjQtMTQ0ek0zMzYgMjA4bDAgMjA4IDY0IDAgMC0yMDgtNjQgMHpNMjI0IDQxNmw2NCAwIDAtMjA4LTY0IDAgMCAyMDh6TTExMiAyMDhsMCAyMDggNjQgMCAwLTIwOC02NCAweiJdfSxjUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibXVzaWMiLGljb246WzUxMiw1MTIsWzEyNzkyNV0sImYwMDEiLCJNNDY4IDdjNy42IDYuMSAxMiAxNS4zIDEyIDI1bDAgMzA0YzAgNDQuMi00MyA4MC05NiA4MHMtOTYtMzUuOC05Ni04MCA0My04MCA5Ni04MGMxMS4yIDAgMjIgMS42IDMyIDQuNmwwLTExNi43LTIyNCA0OS44IDAgMjA2LjNjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwIDQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42TDEyOCA5NmMwLTE1IDEwLjQtMjggMjUuMS0zMS4ybDI4OC02NGM5LjUtMi4xIDE5LjQgLjIgMjcgNi4zeiJdfSxkUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1tZWRpY2FsIixpY29uOls0NDgsNTEyLFtdLCJmN2U2IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xOTIgMTIwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxiSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2h1ZmZsZSIsaWNvbjpbNTEyLDUxMixbMTI4MjU2LCJyYW5kb20iXSwiZjA3NCIsIk00MDMuOCAzNC40YzEyLTUgMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAyMDQuOSAzODQgMTkybDAtMzItMzIgMGMtMTAuMSAwLTE5LjYgNC43LTI1LjYgMTIuOGwtMzIuNCA0My4yLTQwLTUzLjMgMjEuMi0yOC4zQzI5My4zIDExMC4yIDMyMS44IDk2IDM1MiA5NmwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnpNMTU0IDI5Nmw0MCA1My4zLTIxLjIgMjguM0MxNTQuNyA0MDEuOCAxMjYuMiA0MTYgOTYgNDE2bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDBjMTAuMSAwIDE5LjYtNC43IDI1LjYtMTIuOEwxNTQgMjk2ek00MzguNiA0NzAuNmMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDQ2MC45IDM4NCA0NDhsMC0zMi0zMiAwYy0zMC4yIDAtNTguNy0xNC4yLTc2LjgtMzguNEwxMjEuNiAxNzIuOGMtNi04LjEtMTUuNS0xMi44LTI1LjYtMTIuOGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwYzMwLjIgMCA1OC43IDE0LjIgNzYuOCAzOC40TDMyNi40IDMzOS4yYzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjR6Il19LHVScj1iSGUscFJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVuZGVybGluZSIsaWNvbjpbMzg0LDUxMixbXSwiZjBjZCIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyUzExMy43IDY0IDk2IDY0bDAgMTYwYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzI3MC4zIDAgMjg4IDBsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE2MGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMzMiAzMTIuNCAzMiAyMjRMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNMCA0ODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sZlJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXVzZXIiLGljb246WzY0MCw1MTIsW10sImU0ZGEiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguNyAwIDI3LjcgOC44IDUzLjQgMjMuOCA3NC40LTUxLjUgMjEtODcuOCA3MS42LTg3LjggMTMwLjcgMCAxIDAgMS45IDAgMi45bC0xNzYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgNjR6TTIwOCA0MDBsMCA2NCA1My40IDBjNy4yLTI5LjQgMjEuMy01Ni4xIDQwLjQtNzguMy02LjEtMTkuNS0yNC4zLTMzLjctNDUuOC0zMy43LTI2LjUgMC00OCAyMS41LTQ4IDQ4ek0zMzkgMjI0LjNjLTEtLjItMi0uMy0zLS4zbC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYuNyAwYzIuMS0yMi44IDguNC00NC4zIDE4LjMtNjMuN3pNMTc2IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNzYgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTI0MCA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6TTM1MiA1MTJjMC01MyA0My05NiA5Ni05Nmw5NiAwYzUzIDAgOTYgNDMgOTYgOTYgMCAxNy43LTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0saFJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYm90IixpY29uOls2NDAsNTEyLFsxMjkzMDJdLCJmNTQ0IiwiTTM1MiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzI4OC0xNy43IDI4OCAwbDAgNjQtOTYgMGMtNTMgMC05NiA0My05NiA5NmwwIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yMjRjMC01My00My05Ni05Ni05NmwtOTYgMCAwLTY0ek0xNjAgMzY4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xMjAgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTIwIDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTIyNCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0xNDQgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNjQgMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjA2LjMgMCAyMjRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZ6bTU0NC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LHRUPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdXMiLGljb246WzQ0OCw1MTIsWzEwMTMzLDYxNTQzLCJhZGQiXSwiMmIiLCJNMjU2IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYwLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTYweiJdfSxtUnI9dFQsenBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvcHkiLGljb246WzQ0OCw1MTIsW10sImYwYzUiLCJNMTkyIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjAwLjZjMC0xNy40LTcuMS0zNC4xLTE5LjctNDYuMkwzNzAuNiAxNy44QzM1OC43IDYuNCAzNDIuOCAwIDMyNi4zIDBMMTkyIDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNi02NCAwIDAgMTYtMTkyIDAgMC0yNTYgMTYgMCAwLTY0LTE2IDB6Il19LGdScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1raW5nIixpY29uOls0NDgsNTEyLFs5ODE4XSwiZjQzZiIsIk0yMjQtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjQgMTUzLjggMGMyMS4xIDAgMzguMiAxNy4xIDM4LjIgMzguMiAwIDYuNC0xLjYgMTIuNy00LjcgMTguM0wzNTIgMzg0IDQwOC4yIDQ1NC4zYzUgNi4zIDcuOCAxNC4xIDcuOCAyMi4yIDAgMTkuNi0xNS45IDM1LjUtMzUuNSAzNS41TDY3LjUgNTEyYy0xOS42IDAtMzUuNS0xNS45LTM1LjUtMzUuNSAwLTguMSAyLjctMTUuOSA3LjgtMjIuMkw5NiAzODQgNC43IDIxNi42QzEuNiAyMTAuOSAwIDIwNC42IDAgMTk4LjIgMCAxNzcuMSAxNy4xIDE2MCAzOC4yIDE2MGwxNTMuOCAwIDAtNjQtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGJScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1mbG9vZC13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZSIsIk00OTYgMjA4bDQuNSAwYzE1LjIgMCAyNy41LTEyLjMgMjcuNS0yNy41IDAtNy45LTMuNC0xNS41LTkuNC0yMC43TDM0OCAxMC41QzM0MC4zIDMuNyAzMzAuMyAwIDMyMCAwcy0yMC4zIDMuNy0yOCAxMC41TDEyMS40IDE1OS44Yy02IDUuMi05LjQgMTIuOC05LjQgMjAuNyAwIDE1LjIgMTIuMyAyNy41IDI3LjUgMjcuNWw0LjUgMCAwIDk0LjRjMjAuMy05LjQgNDIuMS0xNC4yIDY0LTE0LjQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDE2LjktLjEgMzMuOCAyLjYgNTAgOGwwLTg4em0tMjI0LThjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4ek00NzQuNiA0MTIuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQxOC4zIDE3LjYgNDI2LjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiA5NmMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDUxNC4zIDE3LjYgNTIyLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSx4UnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYml0Y29pbi1zaWduIixpY29uOlszMjAsNTEyLFtdLCJlMGI0IiwiTTY0IDI0QzY0IDEwLjcgNzQuNyAwIDg4IDBzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDEuMWM1NC4zIDcuOCA5NiA1NC40IDk2IDExMC45IDAgMjQuMi03LjcgNDYuNi0yMC43IDY0LjkgMzEuNyAxOS44IDUyLjcgNTUgNTIuNyA5NS4xIDAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0xNiAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC0zMiAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC0yMi4zIDBDMTguNyA0NDggMCA0MjkuMyAwIDQwNi4zTDAgMTAxLjZDMCA4MC44IDE2LjggNjQgMzcuNiA2NEw2NCA2NCA2NCAyNHptMCAyMDBsMTEyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTExMiAwIDAgOTZ6bTExMiA2NGwtMTEyIDAgMCA5NiAxNDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtMzIgMHoiXX0sdlJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveCIsaWNvbjpbNDQ4LDUxMixbMTI4MjMwXSwiZjQ2NiIsIk0zNjkuNCAxMjhsLTM0LjMtNDgtMjIyLjEgMC0zNC4zIDQ4IDI5MC43IDB6TTAgMTQ4LjVjMC0xMy4zIDQuMi0yNi4zIDExLjktMzcuMkw2MC45IDQyLjhDNzIuOSAyNiA5Mi4zIDE2IDExMi45IDE2bDIyMi4xIDBjMjAuNyAwIDQwLjEgMTAgNTIuMSAyNi44bDQ4LjkgNjguNWM3LjggMTAuOSAxMS45IDIzLjkgMTEuOSAzNy4yTDQ0OCA0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE0OC41eiJdfSx4SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBsdXMiLGljb246WzQ0OCw1MTIsWzYxODQ2LCJwbHVzLXNxdWFyZSJdLCJmMGZlIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwMCAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSx5UnI9eEhlLHZIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtbGVmdC1yaWdodCIsaWNvbjpbNTc2LDUxMixbImFycm93cy1oIl0sImYwN2UiLCJNNDcwLjYgMzc0LjZsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w0MS40IDQxLjQtMzU3LjUgMCA0MS40LTQxLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNDEuNC00MS40IDM1Ny41IDAtNDEuNCA0MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAweiJdfSx3UnI9dkhlLGtScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYW4iLGljb246WzUxMiw1MTIsW10sImY4NjMiLCJNMTYwIDE0NGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxNTIuMmMxNS01LjMgMzEuMi04LjIgNDgtOC4yIDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgOC44LTcuMiAxNi0xNiAxNmwtMTUyLjIgMGM1LjMgMTUgOC4yIDMxLjIgOC4yIDQ4IDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0LTguOCAwLTE2LTcuMi0xNi0xNmwwLTE1Mi4yYy0xNSA1LjMtMzEuMiA4LjItNDggOC4yLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtOC44IDcuMi0xNiAxNi0xNmwxNTIuMiAwYy01LjMtMTUtOC4yLTMxLjItOC4yLTQ4em05NiAxNDRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxTUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvdyIsaWNvbjpbNjQwLDUxMixbXSwiZjUyMCIsIk00NTYuNSAwYy00OC42IDAtODggMzkuNC04OCA4OGwwIDM2LTM1NS4yIDI2Ni40Qy0uOCA0MDEtMy43IDQyMSA2LjkgNDM1LjJzMzAuNiAxNyA0NC44IDYuNGw3Ni44LTU3LjYgMTMxLjMgMCA0Ni42IDExMy4xIDEgMi4yYzUuNyAxMC43IDE4LjggMTUuNSAzMC4zIDEwLjhzMTcuMy0xNy4zIDEzLjktMjlsLS44LTIuMy0zOS4xLTk0LjkgNDAuOSAwYzEuMSAwIDIuMiAwIDMuMiAwbDQ2LjYgMTEzLjIgMSAyLjJjNS43IDEwLjcgMTguOCAxNS41IDMwLjMgMTAuOHMxNy4zLTE3LjMgMTMuOS0yOWwtLjgtMi4zLTQyLTEwMkM0ODUuMyAzNTQuMSA1NDQuNSAyODAgNTQ0LjUgMTkybDAtNzIgODAuNS0yMC4xYzguNi0yLjEgMTMuOC0xMC44IDExLjYtMTkuNC03LjEtMjguNS0zMi43LTQ4LjUtNjIuMS00OC41bC01MC4xIDBDNTA4LjIgMTIuNSA0ODMuOCAwIDQ1Ni41IDB6bTAgNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxNUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU1YTAiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sSF89e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluay1zbGFzaCIsaWNvbjpbNTc2LDUxMixbImNoYWluLWJyb2tlbiIsImNoYWluLXNsYXNoIiwidW5saW5rIl0sImYxMjciLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTIyLTEyMmM0LjItMy40IDguMy03LjEgMTIuMS0xMC45bDcxLjEtNzEuMWMyOS4zLTI5LjMgNDUuOC02OS4xIDQ1LjgtMTEwLjYgMC04Ni40LTcwLTE1Ni41LTE1Ni41LTE1Ni41LTM3LjMgMC03My4xIDEzLjMtMTAxLjMgMzcuMiAyMC4zIDEwLjEgMzguNyAyMy41IDU0LjUgMzkuNSAxNC4xLTguMyAzMC4yLTEyLjcgNDYuOC0xMi43IDUxLjEgMCA5Mi41IDQxLjQgOTIuNSA5Mi41IDAgMjQuNS05LjcgNDgtMjcuMSA2NS40bC03MS4xIDcxLjFjLTMuOSAzLjktOC4xIDcuNC0xMi42IDEwLjVsLTQ3LjUtNDcuNWMxNi41LS45IDI5LjctMTQuNCAzMC4yLTMxLjEgMC0xLjMgMC0yLjYgMC0zLjkgMC04Ni4zLTY5LjktMTU2LjktMTU2LjUtMTU2LjktMTkuMiAwLTM3LjkgMy41LTU1LjUgMTAuMkw0MS0yNC45ek0yMjUuOSAxNjBjLjYgMCAxLjEgMCAxLjcgMCAxNS4xIDAgMjkuNSAzLjcgNDIuMSAxMC4yIDEuOCAxLjIgMy42IDIuMyA1LjUgMy4xIDI2LjggMTYuMyA0NC44IDQ1LjkgNDQuOCA3OS42IDAgLjQgMCAuOCAwIDEuMkwyMjUuOSAxNjB6TTM0Ni4yIDQxNkwxOTIgMjYxLjhjMS4yIDg0LjYgNjkuNiAxNTIuOSAxNTQuMSAxNTQuMXpNMTM5LjcgMjA5LjVsLTQ1LjMtNDUuMy00OC42IDQ4LjZjLTI5LjMgMjkuMy00NS44IDY5LjEtNDUuOCAxMTAuNiAwIDg2LjQgNzAgMTU2LjUgMTU2LjUgMTU2LjUgMzcuMiAwIDczLjEtMTMuMyAxMDEuMy0zNy4yLTIwLjMtMTAuMS0zOC44LTIzLjUtNTQuNi0zOS41LTE0IDguMi0zMC4xIDEyLjYtNDYuNyAxMi42LTUxLjEgMC05Mi41LTQxLjQtOTIuNS05Mi41IDAtMjQuNSA5LjctNDggMjcuMS02NS40bDQ4LjYtNDguNnoiXX0sQ1JyPUhfLHpScj1IXyxfUnI9SF8scV89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcm90YXRlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs4NjM1LCJhcnJvdy1yaWdodC1yb3RhdGUiLCJhcnJvdy1yb3RhdGUtZm9yd2FyZCIsInJlZG8iXSwiZjAxZSIsIk00MzYuNyA3NC43TDQ0OCA4NS40IDQ0OCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0Ny45IDAtNy42LTcuMmMtLjItLjItLjQtLjQtLjYtLjYtNzUtNzUtMTk2LjUtNzUtMjcxLjUgMHMtNzUgMTk2LjUgMCAyNzEuNSAxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTkuOS05OS45IDI2MS43LTEwMCAzNjEuNy0uM3oiXX0sVFJyPXFfLExScj1xXyxEUnI9cV8seUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1jbGlwIixpY29uOls1MTIsNTEyLFsicGVuLWFsdCJdLCJmMzA1IiwiTTQwNCAwYzE5LjIgMCAzNy42IDcuNiA1MS4xIDIxLjJsMzUuNyAzNS43QzUwNC40IDcwLjQgNTEyIDg4LjggNTEyIDEwOHMtNy42IDM3LjYtMjEuMiA1MS4xTDQ0NS45IDIwNCAzMDggNjYuMSAzNTIuOSAyMS4yQzM2Ni40IDcuNiAzODQuOCAwIDQwNCAwek0yNzQuMSAxMDBsMCAwIDEzNy45IDEzNy45LTIxNS4xIDIxNS4xYy0xMC43IDEwLjctMjQuMSAxOC41LTM4LjcgMjIuNkwzMC40IDUxMS4xYy04LjMgMi4zLTE3LjMgMC0yMy40LTYuMnMtOC41LTE1LjEtNi4yLTIzLjRMMzYuNCAzNTMuOGM0LjEtMTQuNiAxMS44LTI3LjkgMjIuNi0zOC43TDI0MC4xIDEzMy45IDIyMyAxMTYuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMODkgMjE3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDE1NS4xIDgyLjljMjguMS0yOC4xIDczLjctMjguMSAxMDEuOCAwTDI3NC4xIDEwMHoiXX0sJFJyPXlIZSxBUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9vci1jbG9zZWQiLGljb246WzQ0OCw1MTIsWzEyODY4Ml0sImY1MmEiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgNjR6TTMyMCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxlcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi13aWRlLXNob3J0IixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtYXNjIiwic29ydC1hbW91bnQtZG93biJdLCJmMTYwIiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYwIDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyMCA5NnoiXX0sRVJyPWVwZSxJUnI9ZXBlLFBScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC1kb3duIixpY29uOlszMjAsNTEyLFtdLCJmMGQ3IiwiTTE0MC4zIDM3Ni44YzEyLjYgMTAuMiAzMS4xIDkuNSA0Mi44LTIuMmwxMjgtMTI4YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMwMS40IDE5MiAyODguNSAxOTJsLTI1NiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44Uy43IDIzNy41IDkuOSAyNDYuNmwxMjggMTI4IDIuNCAyLjJ6Il19LE5Scj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrIixpY29uOlszMjAsNTEyLFsxMDddLCI0YiIsIk0zMTEgODYuM2MxMi4zLTEyLjcgMTItMzIuOS0uNy00NS4ycy0zMi45LTEyLTQ1LjIgLjdDMTQzLjQgMTY3LjIgNzYuNCAyMzYuMyA2NCAyNDlMNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEwNyA2NC43LTY2LjcgMTMzIDE5MmMxMC4xIDE0LjUgMzAgMTguMSA0NC41IDguMXMxOC4xLTMwIDguMS00NC41TDE3NC4xIDIyNy40IDMxMSA4Ni4zeiJdfSx3SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2stdG8tc2xvdCIsaWNvbjpbNTc2LDUxMixbInZvdGUteWVhIl0sImY3NzIiLCJNNTUyIDI4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzEyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDE2IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjU2IDB6bS0zNy4xIDg0LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zbC04NS42IDExNy43LTI2LjUtMjcuNGMtOS4yLTkuNS0yNC40LTkuOC0zMy45LS42LTkuNSA5LjItOS44IDI0LjQtLjYgMzMuOWw0Ni40IDQ4YzQuOSA1LjEgMTEuOCA3LjggMTguOSA3LjNzMTMuNi00LjEgMTcuOC05LjhMMzg0LjIgMTUwLjFjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LE9Scj13SGUsUlJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpc2gtZmlucyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmMiIsIk0yNzUuMiAzOC40Yy0xMC42LTgtMjUtOC41LTM2LjMtMS41UzIyMiA1Ny4zIDIyNC42IDcwLjNsOS43IDQ4LjZjLTE5LjQgOS0zNi45IDE5LjktNTIuNCAzMS41LTE1LjMgMTEuNS0yOSAyMy45LTQwLjcgMzYuM0w0OC4xIDEzMi40Yy0xMi41LTcuMy0yOC40LTUuMy0zOC43IDQuOXMtMTIuNCAyNi01LjMgMzguNkw1MCAyNTYgNC4yIDMzNi4xYy03LjIgMTIuNi01IDI4LjQgNS4zIDM4LjZzMjYuMSAxMi4yIDM4LjcgNC45bDkzLjEtNTQuM2MxMS44IDEyLjMgMjUuNCAyNC44IDQwLjcgMzYuMyAxNS41IDExLjYgMzMgMjIuNSA1Mi40IDMxLjVsLTkuNyA0OC42Yy0yLjYgMTMgMy4xIDI2LjMgMTQuMyAzMy4zczI1LjYgNi41IDM2LjMtMS41bDc3LjYtNTguMmM1NC45LTQgMTAxLjUtMjcgMTM3LjItNTMuOCAzOS4yLTI5LjQgNjcuMi02NC43IDgxLjYtODkuNSA1LjgtOS45IDUuOC0yMi4yIDAtMzIuMS0xNC40LTI0LjgtNDIuNS02MC4xLTgxLjYtODkuNS0zNS44LTI2LjgtODIuMy00OS44LTEzNy4yLTUzLjhMMjc1LjIgMzguNHpNMzg0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxGUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcHJlc3MiLGljb246WzQ0OCw1MTIsW10sImYwNjYiLCJNMTYwIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzk2IDQ2LjMgOTYgNjRsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnpNMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTM1MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMHoiXX0sa0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWEteiIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtdXAiXSwiZjE1ZSIsIk00MTIuNiA0OS43QzQwNy4yIDM4LjggMzk2LjEgMzIgMzg0IDMycy0yMy4yIDYuOC0yOC42IDE3LjdjLTUwLjcgMTAxLjMtNzcuMyAxNTQuNy04MCAxNjAtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjljLTIuNy01LjMtMjkuMy01OC43LTgwLTE2MHpNMzg0IDEzNS42bDIwLjIgNDAuNC00MC40IDAgMjAuMi00MC40ek0yODggMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDUwLjcgMC03My40IDczLjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzMwNy4xIDQ4MCAzMjAgNDgwbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01MC43IDAgNzMuNC03My40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ2MC45IDI4OCA0NDggMjg4bC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDI1LjQgMjUuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC04MC04MHoiXX0sQlJyPWtIZSxIUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1ncmFkdWF0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwMSIsIk0yNDEuMy0xM2MtMTEuNC0yLjMtMjMuMS0yLjMtMzQuNSAwTDE5LjMgMjQuNUM4LjEgMjYuNyAwIDM2LjYgMCA0OCAwIDU4LjMgNi41IDY3LjMgMTYgNzAuNkwxNiAxNDQgLjMgMjIyLjZjLS4yIC45LS4zIDEuOS0uMyAyLjkgMCA4IDYuNSAxNC42IDE0LjYgMTQuNmwzNC45IDBjOCAwIDE0LjYtNi41IDE0LjYtMTQuNiAwLTEtLjEtMS45LS4zLTIuOUw0OCAxNDQgNDggNzcuMyA5NiA4Ni45IDk2IDE0NGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4bDAtNTcuMSA3Ni43LTE1LjNDNDM5LjkgNjkuMyA0NDggNTkuNCA0NDggNDhzLTguMS0yMS4zLTE5LjMtMjMuNUwyNDEuMy0xM3pNMjI0IDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMTYwIDBjMCA0NC4yLTM1LjggODAtODAgODB6TTEyMC4xIDMyMC4xQzU4LjcgMzQ4LjMgMTYgNDEwLjMgMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMTU0LjMgMCAwLTE0Ni01Ny40LTQzYy02LjUtNC45LTE1LjItNi4yLTIyLjYtMi44ek0yNDggNTEybDE1NC4zIDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC03Mi00Mi43LTEzNC0xMDQuMS0xNjIuMS03LjQtMy40LTE2LjEtMi4xLTIyLjYgMi44bC01Ny40IDQzIDAgMTQ2eiJdfSxxUnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jb2RlIixpY29uOlszODQsNTEyLFtdLCJmMWM5IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNTQuMiAyOTUuNmM4LjYtMTAuMSA3LjUtMjUuMi0yLjYtMzMuOHMtMjUuMi03LjUtMzMuOCAyLjZsLTQ4IDU2Yy03LjcgOS03LjcgMjIuMiAwIDMxLjJsNDggNTZjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOGwtMzQuNi00MC40IDM0LjYtNDAuNHptMTEyLTMxLjJjLTguNi0xMC4xLTIzLjgtMTEuMi0zMy44LTIuNnMtMTEuMiAyMy44LTIuNiAzMy44bDM0LjYgNDAuNC0zNC42IDQwLjRjLTguNiAxMC4xLTcuNSAyNS4yIDIuNiAzMy44czI1LjIgNy41IDMzLjgtMi42bDQ4LTU2YzcuNy05IDcuNy0yMi4yIDAtMzEuMmwtNDgtNTZ6Il19LFZScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2FwIixpY29uOls1MTIsNTEyLFsxMjk1MzJdLCJlMDZlIiwiTTIwOC0zMmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTMyMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMzUyIDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNOTYgMTYwbDExMiAwYzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDE2MCAyMjRjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZsMTkyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTM1LjEtMTguOS02NS45LTQ3LTgyLjYgMTktMTkuOCAzMC43LTQ2LjYgMzEtNzYuMSA0NS40IDcuNiA4MCA0Ny4xIDgwIDk0LjdsMCAxMjhjMCA1My00MyA5Ni05NiA5Nkw5NiA0ODBjLTUzIDAtOTYtNDMtOTYtOTZMMCAyNTZjMC01MyA0My05NiA5Ni05NnptNjQgMTEybDE5MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xOTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OHoiXX0salJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3ljbGUiLGljb246WzUxMiw1MTIsWzk4NDIsOTg1MCw5ODUxXSwiZjFiOCIsIk0xNTIuMyA2MEMxOTguNS0yMCAzMTQtMjAgMzYwLjIgNjBsMzcuMyA2NC42IDI3LjctMTZjOC40LTQuOSAxOC45LTQuMiAyNi42IDEuN3MxMS4xIDE1LjkgOC42IDI1LjNMNDM2LjkgMjIzYy0zLjQgMTIuOC0xNi42IDIwLjQtMjkuNCAxN2wtODcuNC0yMy40Yy05LjQtMi41LTE2LjMtMTAuNC0xNy42LTIwczMuNC0xOS4xIDExLjgtMjMuOWwyNy43LTE2LTM3LjMtNjQuNmMtMjEuNi0zNy4zLTc1LjQtMzcuMy05NyAwbC01LjMgOS4xYy04LjggMTUuMy0yOC40IDIwLjUtNDMuNyAxMS43UzEzOC4yIDg0LjUgMTQ3IDY5LjFsNS4zLTkuMXpNNDQ5LjcgMjc5LjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43bDUuMyA5LjFjNDYuMiA4MC0xMS41IDE4MC0xMDMuOSAxODBsLTc0LjYgMCAwIDMyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw2NC02NGM2LjktNi45IDE3LjItOC45IDI2LjItNS4yczE0LjggMTIuNSAxNC44IDIyLjJsMCAzMiA3NC42IDBjNDMuMSAwIDcwLjEtNDYuNyA0OC41LTg0bC01LjMtOS4xYy04LjgtMTUuMy0zLjYtMzQuOSAxMS43LTQzLjd6TTUxIDIzNS40bC0yNy43LTE2Yy04LjQtNC45LTEzLjEtMTQuMy0xMS44LTIzLjlzOC4yLTE3LjUgMTcuNi0yMEwxMTYuNSAxNTJjMTIuOC0zLjQgMjYgNC4yIDI5LjQgMTdsMjMuNCA4Ny40YzIuNSA5LjQtLjkgMTkuMy04LjYgMjUuM3MtMTguMiA2LjYtMjYuNiAxLjdsLTI3LjctMTYtMzcuMyA2NC42Yy0yMS42IDM3LjMgNS40IDg0IDQ4LjUgODRsMTAuNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC42IDBDMjUuMyA0ODAtMzIuNCAzODAgMTMuOCAzMDBMNTEgMjM1LjR6Il19LFNIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4td2luayIsaWNvbjpbNTEyLDUxMixbImdyaW4td2luayJdLCJmNThjIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMzI4IDE5NmMtMTEgMC0yMCA5LTIwIDIwcy05IDIwLTIwIDIwLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMHpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFVScj1TSGUsdHBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdGVyLWxhZGRlciIsaWNvbjpbNjQwLDUxMixbImxhZGRlci13YXRlciIsInN3aW1taW5nLXBvb2wiXSwiZjVjNSIsIk0zNzQuNSA0MDUuN2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOCAyNS43LTQuOCAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTI0LjIgMTguMy01Mi4zIDM1LjktODMuNCAzNS45cy01OS4xLTE3LjctODMuMy0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC42LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjN6TTUxMS44IDMyYzQ4LjMgMCA4OSAzNiA5NSA4My45bDEgOC4yYzIuMiAxNy41LTEwLjIgMzMuNS0yNy44IDM1LjdzLTMzLjUtMTAuMi0zNS43LTI3LjhsLTEtOC4yYy0yLTE1LjktMTUuNS0yNy44LTMxLjUtMjcuOC0xNy41IDAtMzEuOCAxNC4yLTMxLjggMzEuOGwwIDIxMS44Yy0yMy4xLTUuMS00NC45LTQuNC02NC0uNGwwLTUxLjItMTkyIDAgMCA0OC43Yy01LjMtLjUtMTAuNy0uOC0xNi0uNy0xNi4yIC4xLTMyLjQgMi43LTQ4IDhsMC0yMTYuMmMwLTUyLjkgNDIuOS05NS44IDk1LjctOTUuOCA0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjgtMTcuNSAwLTMxLjcgMTQuMi0zMS43IDMxLjhsMCA5Ni4yIDE5MiAwIDAtOTYuMkM0MTYgNzQuOSA0NTguOSAzMiA1MTEuOCAzMnoiXX0sV1JyPXRwZSxHUnI9dHBlLFlScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW1pbmkiLGljb246WzQ0OCw1MTIsW10sImU4NDkiLCJNMzk1LjQgOGMxMy4yLTExLjcgMzMuMy0xMC41IDQ1LjEgMi43IDExLjcgMTMuMiAxMC41IDMzLjQtMi43IDQ1LjItMi43IDIuNC0yMy4xIDE5LjgtNTguMyAzNi44LTguMiA0LTE3LjIgNy45LTI3IDExLjZsMCAzMDMuMmM5LjggMy44IDE4LjggNy42IDI3IDExLjYgMTguMiA4LjggMzIuNCAxNy43IDQyLjIgMjQuNSAzIDIuMSA1LjUgNC4xIDcuNyA1LjcgMS4yIC45IDIuMyAxLjYgMy4yIDIuNCAuMiAuMSAuMyAuMiAuNSAuNCAxLjMgMS4xIDIuNCAyIDMuMiAyLjYgLjQgLjMgLjcgLjYgLjkgLjggLjEgLjEgLjMgLjIgLjMgLjMgMCAwIC4xIC4xIC4xIC4xbC4xIDAgMCAwIDAgMGMzLjMgMi45IDUuOSA2LjQgNy43IDEwLjIgNS40IDExLjMgMy44IDI1LjEtNSAzNS0uMyAuNC0uNyAuNy0xLjEgMS4xLTExLjkgMTIuMi0zMS4yIDEzLjEtNDQgMS43LS4zLS4zLTEuNS0xLjMtMy41LTIuOC0uNC0uMy0uOS0uNy0xLjUtMS4xLTEuOS0xLjQtNC4yLTMuMS03LjEtNS4xLTIuMi0xLjUtNC43LTMuMS03LjQtNC44LTYuNi00LjEtMTQuOC04LjgtMjQuNC0xMy41LTcuNC0zLjYtMTUuNi03LjItMjQuNy0xMC41LTEzLjYtNS4xLTI5LTkuNi00Ni4xLTEyLjktNS43LTEuMS0xMS42LTIuMS0xNy43LTIuOC0xMi4xLTEuNi0yNS0yLjUtMzguNi0yLjUtNTQuMiAwLTk3LjQgMTQuNC0xMjcgMjguOC0zLjQgMS42LTYuNSAzLjMtOS41IDQuOS01LjEgMi44LTkuNyA1LjQtMTMuOCA3LjktMy4zIDIuMS02LjMgNC04LjkgNS43LTEuNyAxLjItMy4yIDIuMy00LjYgMy4zLTEuOSAxLjQtMy41IDIuNS00LjYgMy40LTEuNCAxLjEtMi4yIDEuOC0yLjUgMi0xMy4yIDExLjctMzMuMyAxMC41LTQ1LjEtMi44LTIuMi0yLjUtNC01LjItNS4yLTguMXMtMi4xLTUuOS0yLjUtOC45Yy0xLjQtMTAuMiAyLjItMjAuOCAxMC40LTI4LjIgLjItLjIgLjYtLjUgMS4yLTEgLjEtLjEgLjItLjIgLjMtLjNsMy4yLTIuNmMxLjctMS4zIDMuNy0yLjggNi4yLTQuNiAxLjYtMS4yIDMuMy0yLjUgNS4yLTMuOCA5LjgtNi44IDI0LTE1LjcgNDIuMi0yNC41IDguMi00IDE3LjItNy45IDI3LTExLjZsMC0zMDMuMkM4Ni43IDEwMC42IDc3LjcgOTYuNyA2OS41IDkyLjggMzQuMyA3NS43IDE0IDU4LjMgMTEuMyA1NS45LTEuOSA0NC4yLTMuMSAyNCA4LjYgMTAuNyAyMC4zLTIuNSA0MC41LTMuNyA1My43IDggNTUuMSA5LjIgNzAuNyAyMi4yIDk3LjUgMzUuMiAxMjcuMSA0OS42IDE3MC4zIDY0IDIyNC41IDY0czk3LjQtMTQuNCAxMjctMjguOGMyNi44LTEzIDQyLjQtMjYgNDMuOC0yNy4yek0yODguNSAxMjIuM2MtMTkuNyAzLjUtNDEgNS43LTY0IDUuN3MtNDQuMy0yLjItNjQtNS43bDAgMjY3LjRjMTIuNi0yLjMgMjUuOS00IDM5LjktNC45IDcuOC0uNSAxNS44LS44IDI0LS44IDIzIDAgNDQuNCAyLjIgNjQgNS43bDAtMjY3LjR6Il19LEtScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3dlci1jZWxsIixpY29uOls1NzYsNTEyLFtdLCJlNTg1IiwiTTU5LjYgOS44QzQ3LjMgNC44IDMzLjMgMTAuNyAyOC40IDIzIDE1LjIgNTUuNSA4IDkwLjkgOCAxMjhzNy4yIDcyLjUgMjAuNCAxMDVjNSAxMi4zIDE5IDE4LjIgMzEuMyAxMy4yczE4LjItMTkgMTMuMi0zMS4zQzYyIDE4OC4yIDU2IDE1OC44IDU2IDEyOHM2LTYwLjIgMTYuOS04N2M1LTEyLjMtMS0yNi4zLTEzLjItMzEuM3ptNDU2LjggMGMtMTIuMyA1LTE4LjIgMTktMTMuMiAzMS4zIDEwLjkgMjYuOCAxNi45IDU2LjIgMTYuOSA4N3MtNiA2MC4yLTE2LjkgODdjLTUgMTIuMyAxIDI2LjMgMTMuMiAzMS4zczI2LjMtMSAzMS4zLTEzLjJjMTMuMS0zMi41IDIwLjQtNjcuOSAyMC40LTEwNXMtNy4yLTcyLjUtMjAuNC0xMDVjLTUtMTIuMy0xOS0xOC4yLTMxLjMtMTMuMnpNMzQwLjEgMTY1LjJjNy41LTEwLjUgMTEuOS0yMy4zIDExLjktMzcuMiAwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NGMwIDEzLjkgNC40IDI2LjcgMTEuOSAzNy4yTDk4LjkgNDY2LjhjLTcuMyAxNi4xLS4yIDM1LjEgMTUuOSA0Mi40czM1LjEgLjIgNDIuNC0xNS45bDIwLjYtNDUuMiAyMjAuNiAwIDIwLjYgNDUuMmM3LjMgMTYuMSAyNi4zIDIzLjIgNDIuNCAxNS45czIzLjItMjYuMyAxNS45LTQyLjRMMzQwLjEgMTY1LjJ6TTM3Ni41IDQwMGwtMTc3IDAgMjEuOC00OCAxMzMuMyAwIDIxLjggNDh6TTI4OCAyMDUuM2w0NC44IDk4LjctODkuNyAwIDQ0LjgtOTguN3pNMTYzLjMgNzMuNmM1LjMtMTIuMS0uMi0yNi4zLTEyLjQtMzEuNnMtMjYuMyAuMi0zMS42IDEyLjRDMTA5LjUgNzcgMTA0IDEwMS45IDEwNCAxMjhzNS41IDUxIDE1LjMgNzMuNmM1LjMgMTIuMSAxOS41IDE3LjcgMzEuNiAxMi40czE3LjctMTkuNSAxMi40LTMxLjZDMTU2IDE2NS44IDE1MiAxNDcuNCAxNTIgMTI4czQtMzcuOCAxMS4zLTU0LjR6TTQ1Ni43IDU0LjRjLTUuMy0xMi4xLTE5LjUtMTcuNy0zMS42LTEyLjRzLTE3LjcgMTkuNS0xMi40IDMxLjZDNDIwIDkwLjIgNDI0IDEwOC42IDQyNCAxMjhzLTQgMzcuOC0xMS4zIDU0LjRjLTUuMyAxMi4xIC4yIDI2LjMgMTIuNCAzMS42czI2LjMtLjIgMzEuNi0xMi40QzQ2Ni41IDE3OSA0NzIgMTU0LjEgNDcyIDEyOHMtNS41LTUxLTE1LjMtNzMuNnoiXX0sWlJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbG9uLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxNDAiLCJNMjEzLjggOC43YzEyLjkgMy4yIDIwLjcgMTYuMiAxNy41IDI5LjFsLTQuNiAxOC41YzE1LjQgLjggMzAuNCAzLjQgNDQuNyA3LjVsOS40LTM3LjZDMjgzLjkgMTMuMyAyOTcgNS41IDMwOS44IDguN1MzMzAuNSAyNSAzMjcuMyAzNy44TDMxNiA4Mi44YzEzLjUgNy44IDI2IDE3LjEgMzcuMiAyNy44IDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM2MtMy4xLTIuOS02LjQtNS44LTkuOC04LjRMMjM5LjIgMzkwYzI2LjktNC42IDUxLjEtMTcuMSA3MC4xLTM1LjEgMTIuOS0xMi4xIDMzLjEtMTEuNSA0NS4yIDEuM3MxMS41IDMzLjEtMS4zIDQ1LjJjLTM0LjMgMzIuMy04MCA1Mi44LTEzMC41IDU0LjRsLTcuNSAyOS45Yy0zLjIgMTIuOS0xNi4yIDIwLjctMjkuMSAxNy41cy0yMC43LTE2LjItMTcuNS0yOS4xbDUuNi0yMi41Yy0xNS0zLjItMjkuNC04LTQyLjktMTQuNGwtMTIuMSA0OC41Yy0zLjIgMTIuOS0xNi4yIDIwLjctMjkuMSAxNy41UzY5LjUgNDg3IDcyLjcgNDc0LjJsMTYtNjMuOUM0NC4zIDM3My42IDE2IDMxOC4xIDE2IDI1NiAxNiAxNTkuMiA4NC44IDc4LjQgMTc2LjMgNjBsOC40LTMzLjhDMTg3LjkgMTMuMyAyMDEgNS41IDIxMy44IDguN3pNMTU4IDEzMi45Yy00Ni4xIDIxLjgtNzggNjguNy03OCAxMjMuMSAwIDMwLjUgMTAgNTguNiAyNi45IDgxLjNMMTU4IDEzMi45ek0xNDcuNCAzNzMuNGMxMyA3LjYgMjcuMyAxMy4xIDQyLjUgMTYuMWw2NS45LTI2My42Yy0xMi42LTMuOC0yNS45LTUuOS0zOS44LTUuOS0xLjggMC0zLjUgMC01LjMgLjFMMTQ3LjQgMzczLjR6Il19LFFScj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtZmlsZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUxZCIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEw0MTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ4LTY0IDAgMC00OC0yODggMCAwIDE5MiAxMTIgMCAwIDk2LTE2My4yIDBDMzQuNCAzNTIgMCAzMTcuNiAwIDI3NS4yIDAgMjY0LjYgOC42IDI1NiAxOS4yIDI1Nkw2NCAyNTYgNjQgNjR6TTUyOS45IDI1Ny45YzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45TDU0NCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTI1NmMwLTI2LjUgMjEuNS00OCA0OC00OGw3Ni4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMSAyMCAyMCA0Ny45IDQ3LjkgODMuOSA4My45ek00MTYgMjcyYzAgOC44IDcuMiAxNiAxNiAxNmw2MC4xIDAtNzYuMS03Ni4xIDAgNjAuMXoiXX0sTUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhaGFpIixpY29uOls1NzYsNTEyLFsiaGF5a2FsIl0sImY2NjYiLCJNMjg4LjQtOGMxMy4yIDAgMjUgOC4xIDI5LjggMjAuNGwzMS45IDgyIDc3LjItNDIuM2MxMS42LTYuMyAyNS44LTQuOSAzNS45IDMuNXMxNCAyMi4zIDkuNyAzNC44bC0yOC4yIDgzLjMgODYuMyAxNy4yYzEyLjkgMi42IDIzIDEyLjggMjUuMyAyNS44cy0zLjYgMjYuMS0xNC45IDMyLjlsLTc1LjIgNDUuNyA1NSA2OC42YzguMyAxMC4zIDkuMyAyNC42IDIuNyAzNnMtMTkuNSAxNy42LTMyLjYgMTUuNmwtODctMTMuMy0yIDg4Yy0uMyAxMy4yLTguNiAyNC44LTIxIDI5LjRzLTI2LjMgMS0zNS05bC01OC02Ni4xLTU4IDY2LjFjLTguNyA5LjktMjIuNiAxMy41LTM1IDlzLTIwLjgtMTYuMi0yMS0yOS40bC0yLTg4LTg3IDEzLjNjLTEzIDItMjYtNC4yLTMyLjYtMTUuNnMtNS41LTI1LjcgMi43LTM2bDU1LTY4LjYtNzUuMi00NS43Yy0xMS4zLTYuOC0xNy4yLTE5LjktMTQuOS0zMi45czEyLjMtMjMuMiAyNS4zLTI1LjhsODYuMy0xNy4yLTI4LjItODMuM2MtNC4yLTEyLjUtLjQtMjYuMyA5LjctMzQuOHMyNC40LTkuOSAzNS45LTMuNWw3Ny4xIDQyLjMgMzEuOS04MkMyNjMuMyAuMSAyNzUuMi04IDI4OC40LTh6bTAgMTIwLjJMMjczIDE1MS42Yy0zLjMgOC42LTEwLjIgMTUuMy0xOC45IDE4LjVzLTE4LjIgMi40LTI2LjMtMmwtMzctMjAuMyAxMy42IDQwYzMgOC43IDIgMTguMy0yLjYgMjYuM3MtMTIuNCAxMy42LTIxLjUgMTUuNGwtNDEuNCA4LjMgMzYuMSAyMS45YzcuOSA0LjggMTMuMyAxMi43IDE0LjkgMjEuOHMtLjggMTguNC02LjUgMjUuNmwtMjYuNCAzMyA0MS44LTYuNGM5LjEtMS40IDE4LjQgMS4yIDI1LjQgNy4xczExLjIgMTQuNiAxMS40IDIzLjhsLjkgNDIuMiAyNy45LTMxLjhjNi4xLTYuOSAxNC44LTEwLjkgMjQuMS0xMC45czE4IDQgMjQuMSAxMC45bDI3LjkgMzEuOCAuOS00Mi4yYy4yLTkuMiA0LjQtMTcuOSAxMS40LTIzLjhzMTYuMy04LjUgMjUuNC03LjFsNDEuOCA2LjQtMjYuNC0zM2MtNS44LTcuMi04LjItMTYuNS02LjYtMjUuNnM3LTE3IDE0LjktMjEuOGwzNi4xLTIxLjktNDEuNC04LjNjLTktMS44LTE2LjktNy40LTIxLjUtMTUuNHMtNS41LTE3LjYtMi42LTI2LjNsMTMuNi00MC0zNyAyMC4zYy04LjEgNC40LTE3LjcgNS4yLTI2LjMgMnMtMTUuNS05LjktMTguOS0xOC41bC0xNS4zLTM5LjR6Il19LFhScj1NSGUsQ0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtMSIsaWNvbjpbNTEyLDUxMixbIm1vbmV5LWJpbGwtYWx0Il0sImYzZDEiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE5MiA4MGExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6TTY0IDE4NGwwLTQ4YzAtNC40IDMuNi04IDgtOGw0OCAwYzQuNCAwIDguMSAzLjYgNy41IDgtMy42IDI5LTI2LjYgNTEuOS01NS41IDU1LjUtNC40IC41LTgtMy4xLTgtNy41em0wIDE0NGMwLTQuNCAzLjYtOC4xIDgtNy41IDI5IDMuNiA1MS45IDI2LjYgNTUuNSA1NS41IC41IDQuNC0zLjEgOC03LjUgOGwtNDggMGMtNC40IDAtOC0zLjYtOC04bDAtNDh6TTQ0MCAxOTEuNWMtMjktMy42LTUxLjktMjYuNi01NS41LTU1LjUtLjUtNC40IDMuMS04IDcuNS04bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDhjMCA0LjQtMy42IDguMS04IDcuNXpNNDQ4IDMyOGwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNSA0LjQtLjUgOCAzLjEgOCA3LjV6TTI0MCAxODhjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNDguNC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDQ4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDB6Il19LEpScj1DSGUsekhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLWJvbHQiLGljb246WzUxMiw1MTIsWzEyNzc4NSwidGh1bmRlcnN0b3JtIl0sImY3NmMiLCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwzOC42IDAgMTI0LjEtMTExYzEyLjItMTAuOSAyOC0xNyA0NC40LTE3IDQ0LjYgMCA3Ni41IDQzIDYzLjcgODUuN0wzNTQuMSAzMjAgNDE2IDMyMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMCAxLjEtNS4yIDEuNi0xMC41IDEuNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjgtMTguNy0zNS43LTU2LjEtNjAtOTkuMi02MC02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDcuMSAuNyAxNC4xIDEuOSAyMC44LTM4LjMgMTIuNi02NS45IDQ4LjctNjUuOSA5MS4yek0xNjAuNiA0MDBsNjEuOCAwLTMxLjIgMTA0LjFjLTMuNiAxMS45IDUuMyAyMy45IDE3LjggMjMuOSA0LjYgMCA5LTEuNyAxMi40LTQuN0wzNjIuNSAzOTYuOWMzLjUtMy4xIDUuNS03LjYgNS41LTEyLjQgMC05LjItNy40LTE2LjYtMTYuNi0xNi42bC02MS44IDAgMzEuMi0xMDQuMWMzLjYtMTEuOS01LjMtMjMuOS0xNy44LTIzLjktNC42IDAtOSAxLjctMTIuNCA0LjdMMTQ5LjUgMzcxLjFjLTMuNSAzLjEtNS41IDcuNi01LjUgMTIuNCAwIDkuMiA3LjQgMTYuNiAxNi42IDE2LjZ6Il19LGVGcj16SGUsdEZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV0aGVybmV0IixpY29uOls1MTIsNTEyLFtdLCJmNzk2IiwiTTAgMjI0TDAgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCA2NCAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgNjQgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDY0IDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNjAgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sX0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhyeXZuaWEtc2lnbiIsaWNvbjpbMzg0LDUxMixbODM3MiwiaHJ5dm5pYSJdLCJmNmYyIiwiTTMzNiAxNDkuNEMzMzYgNzcgMjY4LjUgMjMuNSAxOTggNDAuMUw5My4yIDY0LjlDNzYgNjguOSA2NS40IDg2LjIgNjkuNCAxMDMuNHMyMS4zIDI3LjkgMzguNSAyMy44bDEwNC44LTI0LjdjMzAuMy03LjEgNTkuMyAxNS44IDU5LjMgNDYuOSAwIDE3LjYtOS42IDMzLjgtMjUgNDIuM2wtLjcgLjQtMjIyLjMgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIuNCAwYzUuNS0xMy4zIDguNC0yNy44IDguNC00Mi42ek0zNjAgMjcyTDI0IDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMy4zIDBjLTYuMSAxMy40LTkuMyAyOC4xLTkuMyA0My4zIDAgNjQuMSA1Ni45IDExMy40IDEyMC40IDEwNC4ybDEzNy45LTE5LjljMTcuNS0yLjUgMjkuNi0xOC43IDI3LjEtMzYuMnMtMTguOC0yOS42LTM2LjItMjcuMUwxNTkuMiA0MDQuMmMtMjQuOSAzLjYtNDcuMi0xNS43LTQ3LjItNDAuOSAwLTE1LjEgOC4yLTI4LjkgMjEuNC0zNi4ybDEzLTcuMSAyMTMuNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0eiJdfSxyRnI9X0hlLF9wZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleWUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImYwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNC05Ni40YzIuNy0yLjQgNS40LTQuOCA4LTcuMiA0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNi01Ni44IDAtMTA1LjYgMTguMi0xNDYgNDQuMkw0MS0yNC45ek0yMDQuNSAxMzguN2MyMy41LTE2LjggNTIuNC0yNi43IDgzLjUtMjYuNyA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDMxLjEtOS45IDU5LjktMjYuNyA4My41bC0zNC43LTM0LjdjMTIuNy0yMS40IDE3LTQ3LjcgMTAuMS03My43LTEzLjctNTEuMi02Ni40LTgxLjYtMTE3LjYtNjcuOS04LjYgMi4zLTE2LjcgNS43LTI0IDEwbC0zNC43LTM0Ljd6TTMyNS4zIDM5NS4xYy0xMS45IDMuMi0yNC40IDQuOS0zNy4zIDQuOS03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTEyLjkgMS43LTI1LjQgNC45LTM3LjNMNjkuNCAxMzkuMmMtMzIuNiAzNi44LTU1IDc1LjgtNjYuOSAxMDQuNS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjYgMzcuMyAwIDcxLjItNy45IDEwMS41LTIwLjZsLTY0LjItNjQuMnoiXX0sVEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtZmxhdGJlZC1zdWl0Y2FzZSIsaWNvbjpbNTc2LDUxMixbImx1Z2dhZ2UtY2FydCJdLCJmNTlkIiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDQ4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNC43IDBjMS44IDUgMi43IDEwLjQgMi43IDE2IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNS42IDEtMTEgMi43LTE2bC0xOTcuNSAwYzEuOCA1IDIuNyAxMC40IDIuNyAxNiAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTYgMS4xLTExLjcgMy4xLTE3LTM4LjEtNi4yLTY3LjEtMzkuMi02Ny4xLTc5TDY0IDgwYzAtOC44LTcuMi0xNi0xNi0xNkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyek0xNzYgMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDAgMC0yNGMwLTMwLjkgMjUuMS01NiA1Ni01Nmw2NCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgMjQgMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE0NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjQwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTQ0ek0zODQgOTZsMC0yNGMwLTQuNC0zLjYtOC04LThsLTY0IDBjLTQuNCAwLTggMy42LTggOGwwIDI0IDgwIDB6Il19LGFGcj1USGUsaUZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhZGlhdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZjdiOSIsIk00NDYuMiAzNC41Yy0xNC4yLTEwLjEtMzMuNS00LjYtNDIuMiAxMC41TDMzMS42IDE3MC4zYzMxLjMgMTUuOCA1Mi44IDQ4LjMgNTIuOCA4NS43bDE0NCAwYzE3LjcgMCAzMi4yLTE0LjQgMzAuMS0zMS45LTkuMS03OC4xLTUxLjQtMTQ2LjEtMTEyLjMtMTg5LjZ6TTE3Mi43IDQ0LjlDMTY0IDI5LjggMTQ0LjcgMjQuMyAxMzAuNSAzNC41IDY5LjYgNzcuOSAyNy4zIDE0NS45IDE4LjIgMjI0LjEgMTYuMSAyNDEuNiAzMC43IDI1NiA0OC4zIDI1NmwxNDQgMGMwLTM3LjUgMjEuNS02OS45IDUyLjgtODUuN0wxNzIuNyA0NC45em0tOS40IDQxNi44Yy04LjcgMTUuMS0zLjggMzQuNSAxMiA0MS44IDM0LjQgMTUuNyA3Mi43IDI0LjUgMTEzIDI0LjVzNzguNi04LjggMTEzLTI0LjVjMTUuOC03LjIgMjAuNy0yNi43IDEyLTQxLjhMMzQxIDMzNi4zYy0xNS4xIDkuOS0zMy4yIDE1LjctNTIuNiAxNS43cy0zNy41LTUuOC01Mi42LTE1LjdMMTYzLjMgNDYxLjd6TTI4OC4zIDMwNGE0OCA0OCAwIDEgMCAtLjctOTYgNDggNDggMCAxIDAgLjcgOTZ6Il19LHNGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXdvcmQiLGljb246WzM4NCw1MTIsW10sImYxYzIiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTEzNS40IDI3NC44Yy0yLjktMTIuOS0xNS43LTIxLjEtMjguNi0xOC4ycy0yMS4xIDE1LjctMTguMiAyOC42bDMyIDE0NGMyLjMgMTAuNSAxMS40IDE4LjIgMjIuMiAxOC44czIwLjYtNi4xIDI0LTE2LjRsMjUuMi03NS43IDI1LjIgNzUuN2MzLjQgMTAuMiAxMy4yIDE2LjkgMjQgMTYuNHMxOS45LTguMiAyMi4yLTE4LjhsMzItMTQ0YzIuOS0xMi45LTUuMy0yNS44LTE4LjItMjguNnMtMjUuOCA1LjMtMjguNiAxOC4ybC0xMy4yIDU5LjQtMjAuNi02MS44Yy0zLjMtOS44LTEyLjQtMTYuNC0yMi44LTE2LjRzLTE5LjUgNi42LTIyLjggMTYuNGwtMjAuNiA2MS44LTEzLjItNTkuNHoiXX0sTEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlZC1wdWxzZSIsaWNvbjpbNjQwLDUxMixbInByb2NlZHVyZXMiXSwiZjQ4NyIsIk01MzEuMi0yMi40TDU3MiAzMiA2MTYgMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTU2IDBjLTcuNiAwLTE0LjctMy42LTE5LjItOS42bC0yNC4xLTMyLjEtNDcgOTkuOWMtMy43IDcuOC0xMS4zIDEzLjEtMTkuOSAxMy43cy0xNi45LTMuNC0yMS43LTEwLjZMMzg3LjIgODAgMzQ0IDgwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDU2IDBjOCAwIDE1LjUgNCAyMCAxMC43bDI0LjQgMzYuNiA0NS45LTk3LjVjMy42LTcuNiAxMC45LTEyLjggMTkuMy0xMy43czE2LjYgMi43IDIxLjYgOS41ek0zMjAgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDkuNSAwIDI2LjYgMzkuOWMxNC40IDIxLjYgMzkuMyAzMy44IDY1LjIgMzEuOXM0OC44LTE3LjYgNTkuOC00MS4xTDUyNyAxMjkuMmM0NS45IDcuMiA4MSA0Ni45IDgxIDk0LjhsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NC00NDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyUzk2IDQ2LjMgOTYgNjRsMCAyMjQgMjI0IDAgMC0xMjh6TTE0NCAxOTJhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSxuRnI9TEhlLG9Gcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50cyIsaWNvbjpbNTc2LDUxMixbXSwiZTU4MiIsIk01MzkuOSAzNTJsLTk1LjYgMC04LjQtNjYuMWMtMi45LTIzLjItMTUuOS00My45LTM1LjQtNTYuOEwyNTIuMiAxMzEuNWMtMTgtMTEuOS0zOS43LTE1LjctNjAuMS0xMS41IDIuNS00LjMgNS45LTcuOSAxMC4xLTEwLjdMMzUwLjYgMTEuNmMxMC43LTcgMjQuNS03IDM1LjIgMGwxNDguNCA5Ny43YzcuOCA1LjEgMTMgMTMuNCAxNC4yIDIyLjdsMjMuMyAxODRjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2ek00LjggNDc2bDIzLjMtMTg0YzEuMi05LjMgNi4zLTE3LjYgMTQuMi0yMi43bDE0OC40LTk3LjdjMTAuNy03IDI0LjUtNyAzNS4yIDBsMTQ4LjQgOTcuN2M3LjggNS4xIDEzIDEzLjQgMTQuMiAyMi43bDIzLjMgMTg0YzIuNCAxOS4xLTEyLjUgMzYtMzEuNyAzNmwtNDkuNyAwYy0xMS4yIDAtMjEuNS01LjgtMjcuMy0xNS40bC03Ny0xMjYuN2MtMS43LTIuOC00LjgtNC42LTguMS00LjYtNS4zIDAtOS41IDQuMy05LjUgOS41bDAgMTA1LjJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzYuNSA1MTJjLTE5LjMgMC0zNC4yLTE2LjktMzEuNy0zNnoiXX0sVHBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11Zy1ob3QiLGljb246WzU3Niw1MTIsWzk3NDldLCJmN2I2IiwiTTE1Mi0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAzOC45IDIzLjQgNTkuNCAzOS4xIDczLjFsMS4xIDFjMTYuMyAxNC4zIDIzLjggMjEuOCAyMy44IDM3LjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTM4LjktMjMuNC01OS40LTM5LjEtNzMuMWwtMS4xLTFDMTgzLjUgMzEuNyAxNzYgMjQuMSAxNzYgOCAxNzYtNS4zIDE2NS4zLTE2IDE1Mi0xNnpNOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwYzQxLjggMCA3Ny40LTI2LjcgOTAuNS02NGw1LjUgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFM1MTguNyAxOTIgNDQ4IDE5Mkw5NiAxOTJ6TTQ0OCAzODRsMC0xMjhjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTI4OCA4YzAtMTMuMy0xMC43LTI0LTI0LTI0UzI0MC01LjMgMjQwIDhjMCAzOC45IDIzLjQgNTkuNCAzOS4xIDczLjFsMS4xIDFjMTYuMyAxNC4zIDIzLjggMjEuOCAyMy44IDM3LjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTM4LjktMjMuNC01OS40LTM5LjEtNzMuMWwtMS4xLTFDMjk1LjUgMzEuNyAyODggMjQuMSAyODggOHoiXX0sREhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbHQiLGljb246WzQ0OCw1MTIsWzk4ODksInphcCJdLCJmMGU3IiwiTTMzOC44LTkuOWMxMS45IDguNiAxNi4zIDI0LjIgMTAuOSAzNy44TDI3MS4zIDIyNCA0MTYgMjI0YzEzLjUgMCAyNS41IDguNCAzMC4xIDIxLjFzLjcgMjYuOS05LjYgMzUuNWwtMjg4IDI0MGMtMTEuMyA5LjQtMjcuNCA5LjktMzkuMyAxLjNzLTE2LjMtMjQuMi0xMC45LTM3LjhMMTc2LjcgMjg4IDMyIDI4OGMtMTMuNSAwLTI1LjUtOC40LTMwLjEtMjEuMXMtLjctMjYuOSA5LjYtMzUuNWwyODgtMjQwYzExLjMtOS40IDI3LjQtOS45IDM5LjMtMS4zeiJdfSxsRnI9REhlLGNGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXIiLGljb246WzMyMCw1MTIsW10sImU1MTYiLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTkyeiJdfSxkRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGxhbmUiLGljb246WzY0MCw1MTIsW10sImU1OGYiLCJNMTQ0IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAzMjBjMCAzMi41IDEyLjEgNjIuMSAzMiA4NC43bDAgMjcuM2MwIDcuMSAuOSAxNC4xIDIuNyAyMC43TDE5MiA0ODAgODMuOSA1MDdDNzMuOCA1MDkuNiA2NCA1MDEuOSA2NCA0OTEuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNzQtNTkuMiAwLTU3LjYtMTIyLjEgNDguOEMxMS40IDM5NS40IDAgMzg3LjcgMCAzNzYuNGwwLTQ0YzAtOCAzLTE1LjYgOC4zLTIxLjVMMTQ0IDE2MS42IDE0NCA0OHptMjI0IDgwbDE5MiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTYwYzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMtMTkuNC0xNC42LTMyLTM3LjgtMzItNjRsMC0xNjBjMC00NC4yIDM1LjgtODAgODAtODB6bTAgMTc2bDE5MiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyem0wIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjE2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LHVGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctaGVhcnQiLGljb246WzU3Niw1MTIsW10sImY0YmUiLCJNMjc5LjYgMzFDMjY1LjUgMTEuNSAyNDIuOSAwIDIxOC45IDAgMTc3LjUgMCAxNDQgMzMuNSAxNDQgNzQuOWwwIDIuNGMwIDY0LjQgODIgMTMzLjQgMTIyLjIgMTYzLjMgMTMgOS43IDMwLjUgOS43IDQzLjUgMCA0MC4yLTMwIDEyMi4yLTk4LjkgMTIyLjItMTYzLjNsMC0yLjRjMC00MS40LTMzLjUtNzQuOS03NC45LTc0LjktMjQgMC00Ni42IDExLjUtNjAuNyAzMUwyODggNDIuNyAyNzkuNiAzMXpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LEx5PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJvdGF0ZS1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjM0LCJhcnJvdy1sZWZ0LXJvdGF0ZSIsImFycm93LXJvdGF0ZS1iYWNrIiwiYXJyb3ctcm90YXRlLWJhY2t3YXJkIiwidW5kbyJdLCJmMGUyIiwiTTI1NiA2NGMtNTYuOCAwLTEwNy45IDI0LjctMTQzLjEgNjRsNDcuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBTNjQgMTQuMyA2NCAzMmwwIDU0LjdDMTEwLjkgMzMuNiAxNzkuNSAwIDI1NiAwIDM5Ny40IDAgNTEyIDExNC42IDUxMiAyNTZTMzk3LjQgNTEyIDI1NiA1MTJjLTg3IDAtMTYzLjktNDMuNC0yMTAuMS0xMDkuNy0xMC4xLTE0LjUtNi42LTM0LjQgNy45LTQ0LjZzMzQuNC02LjYgNDQuNiA3LjljMzQuOCA0OS44IDkyLjQgODIuMyAxNTcuNiA4Mi4zIDEwNiAwIDE5Mi04NiAxOTItMTkyUzM2MiA2NCAyNTYgNjR6Il19LHBGcj1MeSxmRnI9THksaEZyPUx5LG1Gcj1MeSwkSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1hbmdyeSIsaWNvbjpbNTEyLDUxMixbMTI4NTQ0LCJhbmdyeSJdLCJmNTU2IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTI1NiAzNjhjMjQuMSAwIDQ1LjQgMTEuOCA1OC41IDMwIDcuNyAxMC44IDIyLjcgMTMuMiAzMy41IDUuNXMxMy4yLTIyLjcgNS41LTMzLjVjLTIxLjctMzAuMi01Ny4zLTUwLTk3LjUtNTBzLTc1LjcgMTkuOC05Ny41IDUwYy03LjcgMTAuOC01LjMgMjUuOCA1LjUgMzMuNXMyNS44IDUuMyAzMy41LTUuNWMxMy4xLTE4LjIgMzQuNC0zMCA1OC41LTMwem0tODAtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0uMyA5LjcgMy4yYzEwLjUgMy41IDIxLjgtMi4yIDI1LjMtMTIuNnMtMi4yLTIxLjgtMTIuNi0yNS4zbC05Ni0zMmMtMTAuNS0zLjUtMjEuOCAyLjItMjUuMyAxMi42czIuMiAyMS44IDEyLjYgMjUuM2wyOC45IDkuNmMtNC4xIDUuNC02LjYgMTIuMS02LjYgMTkuNCAwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTkyLTMyYzAtNy4zLTIuNC0xNC02LjYtMTkuNGwyOC45LTkuNmMxMC41LTMuNSAxNi4xLTE0LjggMTIuNi0yNS4zcy0xNC44LTE2LjEtMjUuMy0xMi42bC05NiAzMmMtMTAuNSAzLjUtMTYuMSAxNC44LTEyLjYgMjUuM3MxNC44IDE2LjEgMjUuMyAxMi42bDkuNy0zLjIgMCAuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyeiJdfSxnRnI9JEhlLGJGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXJzdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRkYyIsIk0zNy42IDQuMkMyOC0yLjMgMTUuMi0xLjEgNyA3Uy0yLjMgMjggNC4yIDM3LjZsMTEyIDE2My4zLTk5LjYgMzIuM0M2LjcgMjM2LjQgMCAyNDUuNiAwIDI1NnM2LjcgMTkuNiAxNi42IDIyLjhsMTAzLjEgMzMuNC01Mi45IDEwMC42Yy00LjkgOS4zLTMuMiAyMC43IDQuMyAyOC4xczE4LjggOS4yIDI4LjEgNC4zbDEwMC42LTUyLjkgMzMuNCAxMDMuMWMzLjIgOS45IDEyLjQgMTYuNiAyMi44IDE2LjZzMTkuNi02LjcgMjIuOC0xNi42bDMzLjQtMTAzLjEgMTAwLjYgNTIuOWM5LjMgNC45IDIwLjcgMy4yIDI4LjEtNC4zczkuMi0xOC44IDQuMy0yOC4xbC01Mi45LTEwMC42IDEwMy4xLTMzLjRjOS45LTMuMiAxNi42LTEyLjQgMTYuNi0yMi44cy02LjctMTkuNi0xNi42LTIyLjhsLTEwNi41LTM0LjUgMjUuNy03MC40YzMuMi04LjggMS0xOC42LTUuNi0yNS4ycy0xNi40LTguOC0yNS4yLTUuNmwtNzAuNCAyNS43LTM0LjUtMTA2LjVDMjc1LjYgNi43IDI2Ni40IDAgMjU2IDBzLTE5LjYgNi43LTIyLjggMTYuNkwyMDAuOSAxMTYuMiAzNy42IDQuMnoiXX0seEZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InoiLGljb246WzM4NCw1MTIsWzEyMl0sIjVhIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzIwIDBjMTIuNCAwIDIzLjcgNy4yIDI5IDE4LjRzMy42IDI0LjUtNC40IDM0LjFMMTAwLjMgNDE2IDM1MiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xMi40IDAtMjMuNy03LjItMjktMTguNHMtMy42LTI0LjUgNC40LTM0LjFMMjgzLjcgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sQUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmRhZ2UiLGljb246WzU3Niw1MTIsWzEyOTY1NywiYmFuZC1haWQiXSwiZjQ2MiIsIk00NjQgNDE2bDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMCAzMjB6TTQxNiA5NmwtMjU2IDAgMCAzMjAgMjU2IDAgMC0zMjB6TTY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMzIwLTQ4IDB6TTIxNiAyMDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjE2IDMwNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSx2RnI9QUhlLHlGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1NTYiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSx3RnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzLXNpZGUiLGljb246WzY0MCw1MTIsW10sImU4MWQiLCJNNDgwIDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTUuNiAwYy0xMy4yIDM3LjMtNDguNiA2NC05MC40IDY0cy03Ny4zLTI2LjctOTAuNC02NGwtMTM5LjEgMGMtMTMuMiAzNy4zLTQ4LjcgNjQtOTAuNCA2NHMtNzcuMi0yNi43LTkwLjQtNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNDMgNDMgMCA5NiAwTDQ4MCAwek0xNjAgMzY4YTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnptMzIwIDBhNDggNDggMCAxIDAgMCA5NiA0OCA0OCAwIDEgMCAwLTk2em0wLTMwNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2ek0yNDggMjI0bDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTEwNCAwIDAgMTYwek05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMCAwLTE2MC0xMDQgMHoiXX0sa0ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1Z3MiLGljb246WzU3Niw1MTIsW10sImU0ZDAiLCJNNDQ3LjUgMTc0LjZjOC44LTguNCAyMi43LTguOSAzMi4yLS44czExIDIxLjkgNC4xIDMxLjlsLTEuNSAxLjktMjMgMjYuN2MyNi43IDEzLjUgNDYuMyAzOS4xIDUxLjQgNjkuNmwyNS4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI0IDAgMCAzMiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNS4zIDBjLTcuNiA0NS40LTQ3LjEgODAtOTQuNyA4MHMtODctMzQuNi05NC43LTgwTDI5NiA0MzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTMyLTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjUuMyAwYzUuMS0zMC41IDI0LjctNTYuMSA1MS40LTY5LjZsLTIyLjktMjYuN2MtOC42LTEwLjEtNy41LTI1LjIgMi42LTMzLjhzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44em0tMjU2LTE5MmM4LjgtOC40IDIyLjctOC45IDMyLjItLjhzMTEgMjEuOSA0LjEgMzEuOWwtMS41IDEuOS0yMyAyNi43QzIzMCA1NS45IDI0OS41IDgxLjUgMjU0LjcgMTEybDI1LjMgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQgMCAwIDMyIDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1LjMgMGMtNy42IDQ1LjQtNDcuMSA4MC05NC43IDgwcy04Ny0zNC42LTk0LjctODBMNDAgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC0zMi0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI1LjMgMEM3MC41IDgxLjUgOTAgNTUuOSAxMTYuNyA0Mi40TDkzLjggMTUuNkM4NS4yIDUuNiA4Ni4zLTkuNiA5Ni40LTE4LjJzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44eiJdfSxFSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVlci1tdWctZW1wdHkiLGljb246WzU3Niw1MTIsWyJiZWVyIl0sImYwZmMiLCJNNjQgODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMjg4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNiA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTA4LjJjMCAyNC4yLTEzLjcgNDYuNC0zNS40IDU3LjJMNDQ4IDM3MS44IDQ0OCAzODRjMCA1My00MyA5Ni05NiA5NmwtMTkyIDBjLTUzIDAtOTYtNDMtOTYtOTZMNjQgODB6TTQ0OCAzMDAuMmw2NC0zMiAwLTEwOC4yLTY0IDAgMCAxNDAuMnpNMTkyIDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4em04OCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6bTg4IDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHoiXX0sU0ZyPUVIZSxNRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZSIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxDRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhcGxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTVhZiIsIk02NDAgMjk5LjNMNjQwIDQzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDAgMC00OC0zNTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTYuNi0zMC4yLTUuNGMtMTkuNi0zLjUtMzMuOC0yMC41LTMzLjgtNDAuNCAwLTguOSAyLjktMTcuNSA4LjItMjQuNmwzNS42LTQ3LjVjMzIuOC00My44IDg0LjQtNjkuNiAxMzkuMS02OS42IDI3IDAgNTMuNiA2LjMgNzcuOCAxOC40TDU4Ni45IDIxMy41QzYxOS41IDIyOS43IDY0MCAyNjMgNjQwIDI5OS4zek00NDggMzA0bDAtMTYtMzIwLTU3LjEgMCA3My4xIDMyMCAweiJdfSx6RnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1MTEiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LF9Gcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuYWlyYS1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMWY2IiwiTTEyMi42IDQ2LjNjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzY0IDQ5LjkgNjQgNjRsMCAxOTItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQgODkuNSAwIDEwNy44IDE2MS44YzcuOCAxMS43IDIyLjQgMTcgMzUuOSAxMi45UzM4NCA0NjIuMSAzODQgNDQ4bDAtMTQ0IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTItNTcuNSAwLTEzOS44LTIwOS43ek0yOTQuNSAzMDRsMjUuNSAwIDAgMzguMy0yNS41LTM4LjN6TTE4NS41IDI1NmwtNTcuNSAwIDAtODYuMyA1Ny41IDg2LjN6Il19LHJwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aWZpIixpY29uOls1NzYsNTEyLFsid2lmaS0zIiwid2lmaS1zdHJvbmciXSwiZjFlYiIsIk0yODggOTZjLTkwLjkgMC0xNzMuMiAzNi0yMzMuNyA5NC42LTEyLjcgMTIuMy0zMyAxMi00NS4yLS43cy0xMi0zMyAuNy00NS4yQzgxLjcgNzQuOSAxNzkuOSAzMiAyODggMzJTNDk0LjMgNzQuOSA1NjYuMyAxNDQuN2MxMi43IDEyLjMgMTMgMzIuNiAuNyA0NS4ycy0zMi42IDEzLTQ1LjIgLjdDNDYxLjIgMTMyIDM3OC45IDk2IDI4OCA5NnpNMjQwIDQzMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0xNjggMzI2LjJjLTExLjcgMTMuMy0zMS45IDE0LjUtNDUuMiAyLjhzLTE0LjUtMzEuOS0yLjgtNDUuMkMxNjEgMjM3LjQgMjIxLjEgMjA4IDI4OCAyMDhzMTI3IDI5LjQgMTY4IDc1LjhjMTEuNyAxMy4zIDEwLjQgMzMuNS0yLjggNDUuMnMtMzMuNSAxMC40LTQ1LjItMi44QzM3OC42IDI5Mi45IDMzNS44IDI3MiAyODggMjcycy05MC42IDIwLjktMTIwIDU0LjJ6Il19LFRGcj1ycGUsTEZyPXJwZSxyVD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1jaGVjay1kb2xsYXIiLGljb246WzUxMiw1MTIsWyJtb25leS1jaGVjay1hbHQiXSwiZjUzZCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMjk2IDI4OGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bS0yNC04OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xNDggMTQ0YzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Qzk0LjUgMjY4IDc2IDI0Ni4xIDc2IDIyMC41IDc2IDE5MS43IDk5LjIgMTY4LjMgMTI4IDE2OGwwLTRjMC0xMSA5LTIwIDIwLTIweiJdfSxERnI9clQsSUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1sb3ctdmlzaW9uIixpY29uOls1NzYsNTEyLFsibG93LXZpc2lvbiJdLCJmMmE4IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMjA0LjUgMTM4LjdjMjMuNS0xNi44IDUyLjQtMjYuNyA4My41LTI2LjcgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCAzMS4xLTkuOSA1OS45LTI2LjcgODMuNWwtMzQuNy0zNC43YzEyLjctMjEuNCAxNy00Ny43IDEwLjEtNzMuNy0xMy43LTUxLjItNjYuNC04MS42LTExNy42LTY3LjktOC42IDIuMy0xNi43IDUuNy0yNCAxMGwtMzQuNy0zNC43ek04OCAxNTcuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwzMjguMiA0NjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDg4IDE1Ny45ek00NS43IDI1MS4zYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDE4MS45IDQ1NS41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NS43IDI1MS4zeiJdfSwkRnI9SUhlLFBIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtdXAiXSwiZjBhYSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTctMzc3bDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTM5LTM5IDAgMTUwLjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNTAuMS0zOSAzOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sQUZyPVBIZSxFRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtZXJhLXJldHJvIixpY29uOls1MTIsNTEyLFsxMjgyNDddLCJmMDgzIiwiTTAgNDE2bDAtMjA4IDEzNi4yIDBjMTMuNS0yMC4yIDMyLTM2LjggNTMuNy00OEwwIDE2MCAwIDEyNS43YzAtMzUuMyAyOC43LTY0IDY0LTY0bC4xIDBDNjUuMyA0NS4xIDc5LjEgMzIgOTYgMzJsMzIgMGMxNi45IDAgMzAuNyAxMy4xIDMxLjkgMjkuN2wzMi4xIDAgNTEuMi0yMy44YzguNC0zLjkgMTcuNi02IDI2LjktNkw0NDggMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NC0xOTAgMGMyMS43IDExLjIgNDAuMiAyNy44IDUzLjcgNDhsMTM2LjIgMCAwIDIwOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0ek0yNTYgMTkyYTk2LjEgOTYuMSAwIDEgMCAwIDE5Mi4xIDk2LjEgOTYuMSAwIDEgMCAwLTE5Mi4xeiJdfSxJRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fwc3VsZXMiLGljb246WzU3Niw1MTIsW10sImY0NmIiLCJNOTYgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTItOTYgMCAwLTExMnptLTY0IDBsMCAyODhjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmwwLTEwNS44IDExNi4zIDE2OS41YzM1LjUgNTEuNyAxMDUuMyA2NC4zIDE1NiAyOC4xczYzLTEwNy41IDI3LjUtMTU5LjJMNDI3LjMgMTQ1LjNjLTM1LjUtNTEuNy0xMDUuMy02NC4zLTE1Ni0yOC4xLTUuNiA0LTEwLjcgOC40LTE1LjMgMTMuMWwwLTE4LjNDMjU2IDUwLjEgMjA1LjkgMCAxNDQgMFMzMiA1MC4xIDMyIDExMnpNMjk2LjYgMjQwLjJjLTE2LTIzLjMtMTAtNTUuMyAxMS45LTcxIDIxLjItMTUuMSA1MC41LTEwLjMgNjYgMTIuMmw2NyA5Ny42LTc5LjkgNTUuOS02NS05NC44eiJdfSxQRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9vIixpY29uOls1MTIsNTEyLFsxMjgxNjldLCJmMmZlIiwiTTI2OC45IC45Yy01LjUtLjctMTEgMS40LTE0LjUgNS43cy00LjYgMTAuMS0yLjggMTUuNGMyLjggOC4yIDQuMyAxNi45IDQuMyAyNi4xIDAgNDQuMS0zNS43IDc5LjktNzkuOCA4MEwxNjAgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDE5LjEgOC40IDM2LjMgMjEuNyA0OEwxMDQgMjQwYy0zOS44IDAtNzIgMzIuMi03MiA3MiAwIDIzLjIgMTEgNDMuOCAyOCA1Ny0zNC4xIDUuNy02MCAzNS4zLTYwIDcxIDAgMzkuOCAzMi4yIDcyIDcyIDcybDM2OCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyIDAtMzUuNy0yNS45LTY1LjMtNjAtNzEgMTctMTMuMiAyOC0zMy44IDI4LTU3IDAtMzkuOC0zMi4yLTcyLTcyLTcybC0xMy43IDBjMTMuMy0xMS43IDIxLjctMjguOSAyMS43LTQ4IDAtMzUuMy0yOC43LTY0LTY0LTY0bC01LjUgMGMzLjUtMTAgNS41LTIwLjggNS41LTMyIDAtNDguNi0zNi4yLTg4LjgtODMuMS05NS4xek0xOTIgMjU2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptNjQgMTA4LjNjMCAyLjQtLjcgNC44LTIuMiA2LjctOC4yIDEwLjUtMzkuNSA0NS05My44IDQ1cy04NS42LTM0LjYtOTMuOC00NWMtMS41LTEuOS0yLjItNC4zLTIuMi02LjcgMC02LjggNS41LTEyLjMgMTIuMy0xMi4zbDE2Ny40IDBjNi44IDAgMTIuMyA1LjUgMTIuMyAxMi4zeiJdfSxOSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lIixpY29uOls1MTIsNTEyLFsxMjgyNjUsInZvbHVtZS1tZWRpdW0iXSwiZjZhOCIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNNDQxLjEgMTA3Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDNDQzLjMgMTcwLjcgNDY0IDIxMC45IDQ2NCAyNTZzLTIwLjcgODUuMy01My4yIDExMS44Yy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41YzQzLjItMzUuMiA3MC45LTg4LjkgNzAuOS0xNDlzLTI3LjctMTEzLjgtNzAuOS0xNDl6bS02MC41IDc0LjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEMzNjEuMSAyMjcuNiAzNjggMjQxIDM2OCAyNTZzLTYuOSAyOC40LTE3LjcgMzcuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM0MDIuMSAzMTIuOSA0MTYgMjg2LjEgNDE2IDI1NnMtMTMuOS01Ni45LTM1LjUtNzQuNXoiXX0sTkZyPU5IZSxPRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxldmF0b3IiLGljb246WzUxMiw1MTIsW10sImUxNmQiLCJNMjkyLjctNC43bDY0IDY0YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTNDM4LjUtMzIgNDMyLTMyTDMwNC0zMmMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40em0tMTYwLTIyLjZsLTY0IDY0Yy00LjYgNC42LTUuOSAxMS41LTMuNSAxNy40UzczLjUgNjQgODAgNjRsMTI4IDBjNi41IDAgMTIuMy0zLjkgMTQuOC05LjlzMS4xLTEyLjktMy41LTE3LjRsLTY0LTY0Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTk2IDk2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNODAgNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnptMTkyIDBjMC0yNi41IDIxLjUtNDggNDgtNDhsNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2em0zMi0xMjhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sUkZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhZyIsaWNvbjpbNTEyLDUxMixbMTI3OTkxXSwiZjAyYiIsIk0zMi41IDk2bDAgMTQ5LjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsMTkyIDE5MmMyNSAyNSA2NS41IDI1IDkwLjUgMEw0ODMuMiAzMzMuM2MyNS0yNSAyNS02NS41IDAtOTAuNWwtMTkyLTE5MkMyNzkuMiAzOC43IDI2MyAzMiAyNDYgMzJMOTYuNSAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTExMiAxNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEZGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1taW51cyIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZ6Il19LE9IZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3duLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LWFsdC1kb3duIl0sImYzMDkiLCJNMTM3LjQgNTM0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMDAuOSAzNTIgMjg4IDM1MmwtNjQgMCAwLTMzNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMzYtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzOTcuNSA5LjQgNDA2LjZsMTI4IDEyOHoiXX0sQkZyPU9IZSxIRnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcGFjdC1kaXNjIixpY29uOls1MTIsNTEyLFsxMjgxOTEsMTI4MTkyLDEyODQ0MF0sImY1MWYiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDMyYTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptLTk2LTMyYTk2IDk2IDAgMSAwIDE5MiAwIDk2IDk2IDAgMSAwIC0xOTIgMHptLTU2LTE2YzAtMzIuNCAxNi4zLTY2LjYgNDIuOC05My4yUzIwNy42IDEwNCAyNDAgMTA0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy00Ny45IDAtOTMuNyAyMy41LTEyNy4xIDU2LjlTNTYgMTkyLjEgNTYgMjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6Il19LHFGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZS1yb2xsaW5nIixpY29uOlszODQsNTEyLFtdLCJmNWMxIiwiTTE0NCAyNGMwLTQuNCAzLjYtOCA4LThsODAgMGM0LjQgMCA4IDMuNiA4IDhsMCA3Mi05NiAwIDAtNzJ6TTMyMCA5NmwtMzIgMCAwLTcyYzAtMzAuOS0yNS4xLTU2LTU2LTU2bC04MCAwQzEyMS4xLTMyIDk2LTYuOSA5NiAyNGwwIDcyLTMyIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OGMwLTM1LjMtMjguNy02NC02NC02NHpNMTIwIDIwOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sUkhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stcXVyYW4iLGljb246WzQ0OCw1MTIsWyJxdXJhbiJdLCJmNjg3IiwiTTY0IDUxMmwyODggMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzIwYzAtNTMtNDMtOTYtOTYtOTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCAzMzZjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zTDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwek0zNTIgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMCAwLTY0IDI1NiAwek0yNzMuMSAxNDQuNGMyLjUtNi4xIDExLjItNi4xIDEzLjcgMGwxMC4zIDI0LjggMjYuOCAyLjFjNi42IC41IDkuMiA4LjcgNC4yIDEzTDMwNy44IDIwMS45IDMxNCAyMjhjMS41IDYuNC01LjUgMTEuNS0xMS4xIDguMWwtMjIuOS0xNC0yMi45IDE0Yy01LjYgMy40LTEyLjYtMS42LTExLjEtOC4xbDYuMi0yNi4xLTIwLjQtMTcuNWMtNS00LjMtMi4zLTEyLjUgNC4yLTEzbDI2LjgtMi4xIDEwLjMtMjQuOHpNMTAwIDE5MmMwLTY4LjUgNTUuNS0xMjQgMTI0LTEyNCAyMy44IDAgNDYuMSA2LjcgNjUgMTguNCA0LjggMi45IDYuOSA4LjggNSAxNC4xcy03LjEgOC42LTEyLjcgOGMtMy4xLS4zLTYuMi0uNS05LjQtLjUtNDYuNCAwLTg0IDM3LjYtODQgODRzMzcuNiA4NCA4NCA4NGMzLjIgMCA2LjMtLjIgOS40LS41IDUuNi0uNiAxMC44IDIuNyAxMi43IDhzLS4zIDExLjItNSAxNC4xYy0xOC45IDExLjctNDEuMiAxOC40LTY1IDE4LjQtNjguNSAwLTEyNC01NS41LTEyNC0xMjR6Il19LFZGcj1SSGUsakZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmM2RkIiwiTTUzNS0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw0MSA1MzcuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwxNDEuNSAzNjguNkM4OS4yIDMxMC41IDUxLjYgMjM4LjggMzQuOCAxNTkuNCAxOC43IDgzLjEgNzMuOSAyMC42IDEzOC41IDIuOWw1LjUtMS41YzE5LjctNS40IDQwLjMgNC43IDQ4LjEgMjMuNWw0MC41IDk3LjNjNi45IDE2LjUgMi4xIDM1LjYtMTEuOCA0N2wtNDQuMSAzNi4xYzEyLjkgMjguNSAyOS42IDU0LjggNDkuNSA3OC41TDUzNS0yNC45em0tMTUwLjQgNTM0Yy02My0xMy40LTEyMS4zLTM5LjgtMTcxLjctNzYuM0wyOTcuOCAzNDhjMTIuMiA4LjIgMjUgMTUuNiAzOC4zIDIyLjJMMzc0LjcgMzIzYzExLjMtMTMuOSAzMC40LTE4LjYgNDctMTEuOEw1MTkgMzUxLjhjMTguOCA3LjggMjguOSAyOC40IDIzLjUgNDguMWwtMS41IDUuNWMtMTcuNiA2NC42LTgwLjIgMTE5LjgtMTU2LjQgMTAzLjd6Il19LFVGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NCIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LFdGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLWxvY2siLGljb246WzY0MCw1MTIsW10sImU0YTUiLCJNMjEuNSAxODEuMUw3OC4zIDY3LjRDODkuMiA0NS43IDExMS4zIDMyIDEzNS42IDMybDMwNC45IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsNTUuNiAxMTEuMWMtOC4yLTEuNi0xNi42LTIuNS0yNS4yLTIuNS01My43IDAtOTkuNyAzMy4xLTExOC43IDgwbC01Ny4zIDAgMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3Ni4xYy0yNi44LTEuOS00OC0yNC4zLTQ4LTUxLjYgMC04IDEuOS0xNiA1LjUtMjMuMnpNMTI4IDI1NmwwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyLTE2MCAwem00MzIgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTQxNiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LEZIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZS1wb3J0cmFpdCIsaWNvbjpbMzg0LDUxMixbInBvcnRyYWl0Il0sImYzZTAiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek04MCAzNjhjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6TTE5MiAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6Il19LEdGcj1GSGUsWUZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMCAwIDMyLjJjMTMuOCAuNiAyNy4yIDIuOCA0MCA2LjRsMCA1MC43Yy0xNC44LTYtMzEtOS4zLTQ4LTkuMy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLS40IC4zLS43IC42LTEuMSAxLTE3LjMtMjUtNDYuMi00MS4zLTc4LjktNDEuMy01MyAwLTk2IDQzLTk2IDk2bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTRjMC0zOC44LTI2LjQtNzIuNi02NC04MmwwLTExMiA0MCAwIDAtNjQtOCAwQzE0LjMgOTYgMCA4MS43IDAgNjR6bTQyNCA2OC42bDAtMzYuNi04MCAwIDAgNjQgMTguOCAwYzE4LjItMTIuOCAzOC45LTIyLjIgNjEuMi0yNy40ek0yMTYgOTZsMCA2NCA4MCAwIDAtNjQtODAgMHptLTQ4IDBsLTgwIDAgMCA2NCA4MCAwIDAtNjR6TTQ5NiAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LEtGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW1tZXIiLGljb246WzY0MCw1MTIsWzEyODI5Nl0sImY2ZTMiLCJNMjQ2LjkgMTguM0wyNzEgMy44YzIxLjYtMTMgNDYuMy0xOS44IDcxLjUtMTkuOCAzNi44IDAgNzIuMiAxNC42IDk4LjIgNDAuN2w2My45IDYzLjljMTUgMTUgMjMuNCAzNS40IDIzLjQgNTYuNmwwIDMwLjkgMTkuNyAxOS43IDAgMGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMHMxNS42IDQwLjkgMCA1Ni42bC02NCA2NGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZMNDY0IDI0MCA0MzMuMSAyNDBjLTIxLjIgMC00MS42LTguNC01Ni42LTIzLjRsLTQ5LjEtNDkuMWMtMTUtMTUtMjMuNC0zNS40LTIzLjQtNTYuNmwwLTEyLjdjMC0xMS4yLTUuOS0yMS43LTE1LjUtMjcuNGwtNDEuNi0yNWMtMTAuNC02LjItMTAuNC0yMS4yIDAtMjcuNHpNNTAuNyA0MDIuN2wyMjIuMS0yMjIuMSA5MC41IDkwLjUtMjIyLjEgMjIyLjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNXoiXX0sQkhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLTEtOSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy11cCJdLCJmMTYzIiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNNDE4LjcgMzhjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yIDAgNTEuNi0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC05NmMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnpNMzY1LjEgNDMwLjZjLTkuNiAxNC44LTUuNCAzNC42IDkuNCA0NC4zczM0LjYgNS40IDQ0LjMtOS40bDQyLjEtNjQuOWMxMi40LTE5LjIgMTkuMS00MS42IDE5LjEtNjQuNSAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDM2LjEgMjMuOSA2Ni43IDU2LjggNzYuNmwtMTEuNyAxOHpNMzc2IDMzNmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxaRnI9QkhlLFFGcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1rbmlnaHQiLGljb246WzM4NCw1MTIsWzk4MjJdLCJmNDQxIiwiTTE5Mi0zMmMxMDYgMCAxOTIgODYgMTkyIDE5MmwwIDEzMy41YzAgMTctNi44IDMzLjItMTguNyA0NS4yTDMyMCAzODQgMzcwLjggNDM0LjdjOC41IDguNSAxMy4yIDIwIDEzLjIgMzIgMCAyNS0yMC4zIDQ1LjItNDUuMiA0NS4zTDQ1LjMgNTEyYy0yNSAwLTQ1LjItMjAuMy00NS4yLTQ1LjMgMC0xMiA0LjgtMjMuNSAxMy4yLTMyTDY0IDM4NCA2NCAzNDkuNGMwLTE4LjcgOC4yLTM2LjQgMjIuMy00OC42bDg5LjctNzYuOC00OCAwLTEyLjEgMTIuMWMtMTIuNyAxMi43LTMwIDE5LjktNDggMTkuOS0zNy41IDAtNjcuOS0zMC40LTY3LjktNjcuOWwwLTguN2MwLTIyLjggOC4yLTQ0LjkgMjMuMS02Mi4zTDk2IDMyIDk2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNMTYwIDcyYTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHoiXX0sWEZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsb29kLXdhdGVyLWNpcmNsZS1hcnJvdy1yaWdodCIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZiIsIk0yODguNSAxMTJhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNMTQxLjIgNDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGw1NiA1NmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNTYgNTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMjguNy0yOC43LTg5LjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4OS40IDAtMjguNy0yOC43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnpNMzM2LjUgMTEyYzAgNzEuMS0zOC42IDEzMy4xLTk2IDE2Ni4zbDAgMTIuOGMyMi4xIDQuNSA0My40IDEzLjkgNjIuNCAyOC4yIDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCA2LjkgNS4yIDEyLjggOSAxOCAxMS43IC42IC4zIDEuMiAuNiAxLjggMSA0LjIgMi4zIDguNSA0LjYgMTIuNiAxLjUgNi00LjUgMTIuNi04IDE5LjMtMTAuNGwwLTExNS4yIDQuNSAwYzE1LjIgMCAyNy41LTEyLjMgMjcuNS0yNy41IDAtNy45LTMuNC0xNS41LTkuNC0yMC43TDQ0NC41IDEwLjVDNDM2LjggMy43IDQyNi44IDAgNDE2LjUgMHMtMjAuMyAzLjctMjggMTAuNUwzMjkuOSA2MS44YzQuMyAxNiA2LjYgMzIuOCA2LjYgNTAuMnptMzIgODhjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4ek00NzUuMSA0MTIuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDM5MS44IDI2NiAzNzMuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiA5NmMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDQ4Ny44IDI2NiA0NjkuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxhVD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1yaWdodC1mcm9tLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImV4dGVybmFsLWxpbmsiXSwiZjA4ZSIsIk0zMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4Mi43IDAtMjAxLjQgMjAxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDQ4IDEwOS4zIDQ0OCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMHpNODAgOTZDMzUuOCA5NiAwIDEzMS44IDAgMTc2TDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDI1NiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZMODAgNDQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDgwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgOTZ6Il19LEpGcj1hVCxlQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi11cC1hY3Jvc3MtbGluZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRhZiIsIk0yNjUuNCAxMDUuNGw5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40IDAgMTE0LjcgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCAxMTQuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiA0MDIuNyA5NiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyMCAwIDAtMTE0LjctNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3pNNDE2IDMzNmwwIDE0NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0NCA2NCAwek05NiAxNzZMOTYgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE0NC02NCAweiJdfSxISGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxNiwiZ3Jpbi1iZWFtIl0sImY1ODIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sdEJyPUhIZSxxSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLWFkIixpY29uOls1MTIsNTEyLFsiYWQiXSwiZjY0MSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNDE2IDE4NGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNC03LjEgMC0xMy41LTMuMS0xNy45LTgtMTAuMiA1LjEtMjEuOCA4LTM0LjEgOC00MiAwLTc2LTM0LTc2LTc2czM0LTc2IDc2LTc2YzkuOSAwIDE5LjMgMS45IDI4IDUuM2wwLTIxLjNjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptLTQ4IDkyYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTE2MCAyMDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyIDQ4IDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDB6bTMyIDk2bC00OCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEwNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI0eiJdfSxyQnI9cUhlLFZIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXRhbmFraCIsaWNvbjpbNDQ4LDUxMixbInRhbmFraCJdLCJmODI3IiwiTTM1MiA1MTJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjYuN0MxMy40IDM3NC43IDAgMzU2LjkgMCAzMzZMMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzUyIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDMyMGMwIDUzLTQzIDk2LTk2IDk2em0zMi05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjU2IDAgMCA2NCAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTEzLjkgMjI5Yy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yQzIzMy42IDY2LjYgMjI5IDY0IDIyNCA2NHMtOS42IDIuNi0xMi4yIDYuOGwtMzAuNSA0OS4yLTU2LjkgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgMi4zIC42IDQuNiAxLjkgNi42bDI3LjggNDUtMjcuOCA0NXoiXX0sYUJyPVZIZSxqSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG90LXR1Yi1wZXJzb24iLGljb246WzQ0OCw1MTIsWyJob3QtdHViIl0sImY1OTMiLCJNMjQwIDQwYzAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMjAzLjUgOTMuMSAxOTIgNjcuMiAxOTIgNDAgMTkyIDI2LjcgMjAyLjcgMTYgMjE2IDE2czI0IDEwLjcgMjQgMjR6TTAgMzM2bDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTkuNyAwYzguMSAwIDE2LjIgMS42IDIzLjggNC42bDEzNy4xIDU0LjhjNy42IDMgMTUuNiA0LjYgMjMuOCA0LjZMMzg0IDI1NmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzM2em05Ni0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTE1MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MHptMTA0LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMzI4IDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMzE1LjUgOTMuMSAzMDQgNjcuMiAzMDQgNDAgMzA0IDI2LjcgMzE0LjcgMTYgMzI4IDE2ek02NCA0MGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0saUJyPWpIZSxzQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1oYWxmLWRhc2hlZCIsaWNvbjpbMzg0LDUxMixbXSwiZTY5OCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI1NiAzODQgMCAwLTE0OS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek0wIDM1MmwwIDY0IDY0IDAgMC02NC02NCAwek02NCA1MTJsMC02NC02NCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0em0zMiAwbDgwIDAgMC02NC04MCAwIDAgNjR6bTExMiAwbDgwIDAgMC02NC04MCAwIDAgNjR6bTExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bC02NCAwIDAgNjR6bTY0LTE2MGwtNjQgMCAwIDY0IDY0IDAgMC02NHoiXX0sVUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im91dGRlbnQiLGljb246WzQ0OCw1MTIsWyJkZWRlbnQiXSwiZjAzYiIsIk0uNCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzg0IDBDMTQuOCA5NiAuNCA4MS43IC40IDY0em0xOTIgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDk2bDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNLjQgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TS43IDI2OC42Yy04LjItNi40LTguMi0xOC45IDAtMjUuM2wxMDEuOS03OS4zYzEwLjUtOC4yIDI1LjgtLjcgMjUuOCAxMi42bDAgMTU4LjZjMCAxMy4zLTE1LjMgMjAuOC0yNS44IDEyLjZMLjcgMjY4LjZ6Il19LG5Ccj1VSGUsb0JyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4LTY0IDAgMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek02MS4zIDUxLjJMMTQzLjkgMjQwIDc0LjEgMjQwIDIuNyA3Ni44Qy00LjQgNjAuNiAzIDQxLjggMTkuMiAzNC43UzU0LjIgMzUgNjEuMyA1MS4yem0yNyAyMjEuM2wtLjItLjUgOTUuOSAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNiAxMy4yIDAgMjUuNC00IDM1LjYtMTAuOCA4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44IDExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDY5LjUgNDUzLjVDNDUuNSA0MjkuNSAzMiAzOTYuOSAzMiAzNjNsMC0yN2MwLTMyLjcgMjQuNi01OS43IDU2LjMtNjMuNXoiXX0sbEJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS12aXJ1cyIsaWNvbjpbNTEyLDUxMixbXSwiZTA2NCIsIk0zMjkuNyA0NDhjLTUuMSAwLTkuNyAzLjctOS43IDguOGwwIDcuMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjMuNmMwLTEyLjYtNS4xLTI0LjUtMTMuMS0zNC4yLTMxLjgtMzguNy01MC45LTg4LjItNTAuOS0xNDIuMiAwLTEyMy43IDEwMC4zLTIyNCAyMjQtMjI0IDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMzUuOCA0Mi45YzcgOC40IDEwLjkgMTkuMSAxMC45IDMwLjEgMCAyNS45LTIxIDQ3LTQ3IDQ3bC0xIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zOC4zIDB6TTIyNCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAyMi45LTI3LjcgMzQuNC00My45IDE4LjItOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMxNi4yIDE2LjIgNC43IDQzLjktMTguMiA0My45LTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRjMjIuOSAwIDM0LjQgMjcuNyAxOC4yIDQzLjktOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwYzE2LjItMTYuMiA0My45LTQuNyA0My45IDE4LjIgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTIyLjkgMjcuNy0zNC40IDQzLjktMTguMiA5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTE2LjItMTYuMi00LjctNDMuOSAxOC4yLTQzLjkgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTIyLjkgMC0zNC40LTI3LjctMTguMi00My45IDkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTE2LjIgMTYuMi00My45IDQuNy00My45LTE4LjIgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS0zMiA4OGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LGNCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYXNzIixpY29uOls1MTIsNTEyLFsxMjk1MTddLCJmMTRlIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem01MC43LTE4Ni45TDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4yIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sZEJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1uaWIiLGljb246WzUxMiw1MTIsWzEwMDAxXSwiZjVhZCIsIk0zNjguNSAxOC4zbC01MC4xIDUwLjEgMTI1LjMgMTI1LjMgNTAuMS01MC4xYzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ0Ny43IDE4LjNjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwek0yNzkuMyA5Ny4ybC0uNSAuMS0xNDQuMSA0My4yYy0xOS45IDYtMzUuNyAyMS4yLTQyLjMgNDFMMy44IDQ0NS44Yy0yLjkgOC43LTEuOSAxOC4yIDIuNSAyNkwxNjEuNyAzMTYuNGMtMS4xLTQtMS42LTguMS0xLjYtMTIuNCAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDhjLTQuMyAwLTguNS0uNi0xMi40LTEuNkw0MC4zIDUwNS43YzcuOCA0LjQgMTcuMiA1LjQgMjYgMi41bDI2NC4zLTg4LjZjMTkuNy02LjYgMzUtMjIuNCA0MS00Mi4zbDQzLjItMTQ0LjEgLjEtLjUtMTM1LjUtMTM1LjV6Il19LHVCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93cy1kb3duIixpY29uOls1MTIsNTEyLFtdLCJlNTgxIiwiTTE4NS41IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6bTI0OCA3Mmw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDB6TTYwLjMgMjkyLjZMMzcuMSA0NzZjLTIuNCAxOS4xIDEyLjUgMzYgMzEuNyAzNmwxNTQuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTE3LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlsNjguMiAxMzYuNWM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43bDcxLjkgMGMxOS4zIDAgMzQuMi0xNi45IDMxLjctMzZMNDUyLjcgMjkyLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDI3MS45IDE2OS45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDc1LjQgMjY5LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3oiXX0sV0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvcndhcmQtZmFzdCIsaWNvbjpbNTEyLDUxMixbOTE5NywiZmFzdC1mb3J3YXJkIl0sImYwNTAiLCJNMTkuOCA0NzcuNmMxMiA1IDI1LjcgMi4yIDM0LjktNi45TDIyNCAzMDEuMyAyMjQgNDQ4YzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlMNDQ4IDMwMS4zIDQ0OCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0Ni43LTE2OS40LTE2OS40Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMyMjQgNTEuMSAyMjQgNjRMMjI0IDIxMC43IDU0LjYgNDEuNGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMCA1MS4xIDAgNjRMMCA0NDhjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnoiXX0scEJyPVdIZSxmQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvcCIsaWNvbjpbNTEyLDUxMixbXSwiZjEyNSIsIk00NDggMTA5LjNsNTQuNi01NC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDQwMi43IDY0IDE3NiA2NCAxNzYgMTI4IDMzOC43IDEyOCAxMjggMzM4LjcgMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMi0zMiAwQzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwOCAwIDAtNjQtMTYyLjcgMCAyMTAuNy0yMTAuNyAwIDMwNi43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjc0Ljd6Il19LEdIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGlza2V5LWdsYXNzIixpY29uOls0NDgsNTEyLFsxMjkzNDcsImdsYXNzLXdoaXNrZXkiXSwiZjdhMCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE5MiAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAyNTZsMC0xNjAgMzIwIDAgMCAxNjAtMzIwIDB6Il19LGhCcj1HSGUsbUJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZSIsaWNvbjpbNDQ4LDUxMixbOTYzMiw5NzIzLDk3MjQsNjE1OTBdLCJmMGM4IiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnoiXX0sWUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3JpbiIsaWNvbjpbNTEyLDUxMixbMTI4NTEyLCJncmluIl0sImY1ODAiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGdCcj1ZSGUsYkJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY29udHJhY3QiLGljb246WzM4NCw1MTIsW10sImY1NmMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTg4IDY0Qzc0LjcgNjQgNjQgNzQuNyA2NCA4OHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNzAuMyAxNjBjLTExLjMgMC0yMS45IDUuMS0yOC45IDEzLjlMNjkuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04Ni4xIDAtMTYuMS01My42Yy00LjctMTUuNy0xOS4xLTI2LjQtMzUuNS0yNi40eiJdfSx4QnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtdXAiLGljb246WzM4NCw1MTIsWzg5NjNdLCJmMTA2IiwiTTE2OS40IDEzNy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMTkyIDIwNS4zIDU0LjYgMzQyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjB6Il19LEtIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlIixpY29uOls1MTIsNTEyLFsxMjg1NzgsInNtaWxlIl0sImYxMTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NS40IDMyMS45YzIwLjQgMjggNTMuNCA0Ni4xIDkwLjYgNDYuMXM3MC4yLTE4LjEgOTAuNi00Ni4xYzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVDMzU2LjMgMzkwIDMwOS4yIDQxNiAyNTYgNDE2cy0xMDAuMy0yNi0xMjkuNC02NS45Yy03LjgtMTAuNy01LjQtMjUuNyA1LjMtMzMuNXMyNS43LTUuNCAzMy41IDUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSx2QnI9S0hlLHlCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MtYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1NDQiLCJNMjA4IDQwLjFjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0ek04IDE0NC4xYzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em05Mi41IDE0MS40bDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDY2LjYgMjUxLjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHpNNjYuNiAyLjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMTAwLjUgMi43QzkxLjEtNi43IDc2LTYuNyA2Ni42IDIuN3pNMzUyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0yNDYuMiAzODRsMjUuOCAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDI1LjggMGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMWwtNDMtMTI5IDQ4LjMgNjUuMWMxMC41IDE0LjIgMzAuNiAxNy4yIDQ0LjggNi42czE3LjItMzAuNiA2LjYtNDQuOGwtNzAuNS05NUM0MzQgMTMyIDM5NC4zIDExMiAzNTIgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZsNDguMy02NS4xLTQzIDEyOWMtMy41IDEwLjQgNC4zIDIxLjEgMTUuMiAyMS4xeiJdfSx3QnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGl2aWRlIixpY29uOls0NDgsNTEyLFsxMDEzNSwyNDddLCJmNTI5IiwiTTIyNCA0OGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTY4IDQwOGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6Il19LGtCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWZvcmsiLGljb246WzQ0OCw1MTIsW10sImUxM2IiLCJNODAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODAtMjRjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMi43Yy0yOC4zLTEyLjMtNDgtNDAuNS00OC03My4zIDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTMyIDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM2wwLTcwLjctMzIgMEM5OC4xIDI4OCA0OCAyMzcuOSA0OCAxNzZsMC0yMi43QzE5LjcgMTQxIDAgMTEyLjggMCA4MCAwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MHptMjA4IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNMjQ4IDQzMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxTQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZCIsIk00NzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI4My41IDU5LjFsMTAwLjUgOTYuOSAwIDM1Ni0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNDQtMTkuOSAwYy0xNS41IDAtMjguMS0xMi42LTI4LjEtMjguMSAwLTcuNiAzLjEtMTQuOSA4LjYtMjAuMkwyMjguNSA1OS4xQzIzNS45IDUyIDI0NS43IDQ4IDI1NiA0OHMyMC4xIDQgMjcuNSAxMS4xek0yMzIgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sRHk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY29sdW1ucyIsaWNvbjpbNTEyLDUxMixbImJhbmsiLCJpbnN0aXR1dGlvbiIsIm11c2V1bSIsInVuaXZlcnNpdHkiXSwiZjE5YyIsIk0yNzEuOSAyMC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOGMtMTIuNiA3LjItMTguOCAyMi0xNS4xIDM2UzE3LjUgMjA4IDMyIDIwOGwzMiAwIDAgMjA4IDAgMC01MS4yIDM4LjRDNC43IDQ2MC40IDAgNDY5LjkgMCA0ODAgMCA0OTcuNyAxNC4zIDUxMiAzMiA1MTJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNmwtNTEuMi0zOC40IDAtMjA4IDMyIDBjMTQuNSAwIDI3LjItOS44IDMwLjktMjMuOHMtMi41LTI4LjgtMTUuMS0zNmwtMjI0LTEyOHpNNDAwIDIwOGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6bS0xMTIgMGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6bS0xMTIgMGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6TTI1NiA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LE1Ccj1EeSxDQnI9RHksekJyPUR5LF9Ccj1EeSxUQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVnIixpY29uOls1NzYsNTEyLFtdLCJlNTY5IiwiTTI0IDY0bDU2IDAgMCAzODQtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMzItOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTMyLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MC04IDBDMTAuNyAxMTIgMCAxMDEuMyAwIDg4UzEwLjcgNjQgMjQgNjR6bTEwNCAwbDMyMCAwIDAgMzg0LTMyMCAwIDAtMzg0ek01NzYgODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMzIgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAzMiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwLTM4NCA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0eiJdfSxMQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1tZXJnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4NyIsIk04MCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTMyLjQgOTcuMmMyOC0xMi40IDQ3LjYtNDAuNSA0Ny42LTczLjIgMC00NC4yLTM1LjgtODAtODAtODBTMCAzNS44IDAgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDIwNS4zQzE5LjcgMzcxIDAgMzk5LjIgMCA0MzIgMCA0NzYuMiAzNS44IDUxMiA4MCA1MTJzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtODYuNmMyNi43IDIwLjEgNjAgMzIgOTYgMzJsODYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDggNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBjLTMyLjggMC02MSAxOS43LTczLjMgNDhMMjA4IDI0MGMtNDkuOSAwLTkxLTM4LjEtOTUuNi04Ni44ek04MCA0MDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zNDQgMjcyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LERCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS10c3VuYW1pIixpY29uOls2NDAsNTEyLFtdLCJlNTE1IiwiTTI4OCAxNkMxNTUuNSAxNiA0OCAxMjMuNSA0OCAyNTZTMTU1LjUgNDk2IDI4OCA0OTZjNy40IDAgMTkuNy0yLjMgMzMuNy03LjMgMTMuOC00LjkgMjcuMS0xMS43IDM2LjctMTguOSAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTUuNCAxMS42IDM1LjMgMjEuMSA1NSAyNC40IDE5LjUgMy4zIDM3IC40IDUxLjEtMTAuMiAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI3LjMgMjAuNS01OS4yIDI0LTg3LjkgMTkuMi0yOC41LTQuOC01NS40LTE4LTc1LjktMzMuNC0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0xNC41IDEwLjktMzIuNCAxOS43LTQ5LjUgMjUuOC0xNi44IDYtMzQuOSAxMC4xLTQ5LjkgMTAuMWwtLjEgMEMxMjguOSA1NDMuOSAwIDQxNSAwIDI1NiAwIDk2LjkgMTI4LjktMzIgMjg4LTMyIDMwMS4zLTMyIDMxMi0yMS4zIDMxMi04cy0xMC43IDI0LTI0IDI0em00NC44IDE2Ni40bDk2LTcyYzExLjQtOC41IDI3LjEtOC41IDM4LjUgMGw5NS41IDcyYzggNiAxMi43IDE1LjUgMTIuNyAyNS41bC4zIDEyMS41Yy0yLjIgMS4zLTQuMyAyLjYtNi40IDQuMi00LjMgMy4xLTguNyAuOC0xMy4yLTEuNWwtMS4yLS42LS43LS4zYy01LjQtMi43LTExLjctNi42LTE4LjktMTEuNy0yOS41LTIxLjEtNjQuMy0zMS42LTk5LjEtMzEuNC0zNC4xIC4yLTY4LjEgMTAuNy05NyAzMS40LTcuOCA1LjYtMTMuOCA5LjMtMTkuMyAxMS4yTDMyMCAyMDhjMC0xMC4xIDQuNy0xOS42IDEyLjgtMjUuNnptNTQuNiAyMjkuN2MtMTQuNSAxMC45LTMyLjQgMTkuNy00OS41IDI1LjgtMTYuOCA2LTM0LjkgMTAuMS00OS45IDEwLjEtMTA2IDAtMTkyLTg2LTE5Mi0xOTJTMTgyIDY0IDI4OCA2NGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRzNjQuNSAxNDQgMTQ0IDE0NGM3LjQgMCAxOS43LTIuMyAzMy43LTcuMyAxMy44LTQuOSAyNy4xLTExLjcgMzYuNy0xOC45IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNS40IDExLjYgMzUuMyAyMS4xIDU1IDI0LjQgMTkuNSAzLjMgMzcgLjQgNTEuMS0xMC4yIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjcuMyAyMC41LTU5LjIgMjQtODcuOSAxOS4yLTI4LjUtNC44LTU1LjQtMTgtNzUuOS0zMy40LTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSwkQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1jaGFydCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyMiIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6bS0zMTIgOGwwIDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptODAtOTZsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptODAgNjRsMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LEFCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bWJyZWxsYSIsaWNvbjpbNTEyLDUxMixbXSwiZjBlOSIsIk0yNTYtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyYzEyNi4zIDE1LjcgMjI0IDEyMy41IDIyNCAyNTQgMCAzLjgtLjEgNy41LS4yIDExLjMtLjMgNi45LTUgMTIuOC0xMS43IDE0LjdzLTEzLjgtLjctMTcuNi02LjVjLTE0LjQtMjEuNC0zOC44LTM1LjUtNjYuNS0zNS41LTI5LjMgMC01NC45IDE1LjctNjguOSAzOS4zLTIuNyA0LjYtNy42IDcuNi0xMyA3LjhzLTEwLjUtMi4yLTEzLjctNi41Yy0xNC42LTE5LjgtMzgtMzIuNi02NC41LTMyLjZzLTQ5LjkgMTIuOC02NC41IDMyLjZjLTMuMiA0LjMtOC4zIDYuOC0xMy43IDYuNXMtMTAuMi0zLjItMTMtNy44Yy0xNC0yMy42LTM5LjYtMzkuMy02OC45LTM5LjMtMjcuNyAwLTUyLjEgMTQuMS02Ni41IDM1LjUtMy45IDUuNy0xMSA4LjQtMTcuNiA2LjVTLjUgMjc0LjIgLjIgMjY3LjNDLjEgMjYzLjUgMCAyNTkuOCAwIDI1NiAwIDEyNS41IDk3LjcgMTcuNyAyMjQgMmwwLTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTMyIDM2MGwwIDEwMi42YzAgNDUtMzYuNSA4MS40LTgxLjQgODEuNC0zMC44IDAtNTktMTcuNC03Mi44LTQ1bC0yLjMtNC43Yy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45czM1LTEuNSA0Mi45IDE0LjNsMi4zIDQuN2MzIDUuOSA5IDkuNiAxNS42IDkuNiA5LjYgMCAxNy40LTcuOCAxNy40LTE3LjRMMjI0IDMyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxFQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlsbC1yb2Nrc2xpZGUiLGljb246WzU3Niw1MTIsW10sImU1MDgiLCJNMjUyLjQgMTAzLjhsMjcgNDhjMi44IDUgOC4yIDguMiAxMy45IDguMmw1My4zIDBjNS44IDAgMTEuMS0zLjEgMTMuOS04LjJsMjctNDhjMi43LTQuOSAyLjctMTAuOCAwLTE1LjdsLTI3LTQ4Yy0yLjgtNS04LjItOC4yLTEzLjktOC4ybC01My4zIDBjLTUuOCAwLTExLjEgMy4xLTEzLjkgOC4ybC0yNyA0OGMtMi43IDQuOS0yLjcgMTAuOCAwIDE1Ljd6TTY4LjMgODdDNDMuMSA2MS44IDAgNzkuNyAwIDExNS4zTDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguMyA4N3pNNTA0LjIgNDAzLjZjNC45IDIuNyAxMC44IDIuNyAxNS43IDBsNDgtMjdjNS0yLjggOC4yLTguMiA4LjItMTMuOWwwLTUzLjNjMC01LjgtMy4xLTExLjEtOC4yLTEzLjlsLTQ4LTI3Yy00LjktMi43LTEwLjgtMi43LTE1LjcgMGwtNDggMjdjLTUgMi44LTguMiA4LjItOC4yIDEzLjlsMCA1My4zYzAgNS44IDMuMSAxMS4xIDguMiAxMy45bDQ4IDI3ek0xOTIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzg0IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LElCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNlY3JldCIsaWNvbjpbNDQ4LDUxMixbMTI4MzczXSwiZjIxYiIsIk0xNzEtMTZjLTM2LjQgMC01Ny44IDU4LjMtNjguMyAxMTJMNzIgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDMyYzAgMTcgMy4zIDMzLjIgOS4zIDQ4bC05LjMgMCAwIDAtMjAuNSAwYy0xNS4yIDAtMjcuNSAxMi4zLTI3LjUgMjcuNSAwIDMgLjUgNS45IDEuNCA4LjdsMjguOSA4Ni42QzQwLjIgMzc5LjYgMTYgNDI4LjEgMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTU0LjItMjQuMi0xMDIuNy02Mi4zLTEzNS40bDI4LjktODYuNmMuOS0yLjggMS40LTUuNyAxLjQtOC43IDAtMTUuMi0xMi4zLTI3LjUtMjcuNS0yNy41bC0yMC41IDAgMCAwLTkuMyAwYzYtMTQuOCA5LjMtMzEgOS4zLTQ4bDAtMzIgMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzAuNyAwYy0xMC40LTUzLjctMzEuOS0xMTItNjguMy0xMTItOS42IDAtMTkgMy45LTI3LjUgOC4yLTguMiA0LjEtMTguNCA3LjgtMjUuNSA3LjhzLTE3LjMtMy43LTI1LjUtNy44QzE5MC0xMi4xIDE4MC42LTE2IDE3MS0xNnptOTMuNyA0ODQuNGwtMjQuOC03MC45IDI3LjktMzIuNWMyLjctMy4yIDQuMi03LjIgNC4yLTExLjQgMC05LjctNy44LTE3LjUtMTcuNS0xNy41bC02MSAwYy05LjcgMC0xNy41IDcuOC0xNy41IDE3LjUgMCA0LjIgMS41IDguMiA0LjIgMTEuNGwyNy45IDMyLjUtMjQuOCA3MC45LTU3LTE4MC40IDM1LjcgMGMxOC40IDEwLjIgMzkuNSAxNiA2MiAxNnM0My42LTUuOCA2Mi0xNmwzNS43IDAtNTcgMTgwLjR6TTIyNCAyNTZjLTM0LjcgMC02NC4yLTIyLjEtNzUuMy01MyA1LjcgMy4yIDEyLjMgNSAxOS4zIDVsMTIuNCAwYzE2LjUgMCAzMS4xLTEwLjYgMzYuMy0yNi4yIDIuMy03IDEyLjItNyAxNC41IDAgNS4yIDE1LjYgMTkuOSAyNi4yIDM2LjMgMjYuMmwxMi40IDBjNyAwIDEzLjYtMS44IDE5LjMtNS0xMS4xIDMwLjktNDAuNiA1My03NS4zIDUzeiJdfSxQQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFnZXIiLGljb246WzUxMiw1MTIsWzEyODIyM10sImY4MTUiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptNjQgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTg4IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem0xMjggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAweiJdfSxOQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZWZjYXNlIixpY29uOls1MTIsNTEyLFsxMjgxODhdLCJmMGIxIiwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MGwwIDk2IDUxMiAwIDAtOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6TTUxMiAzMDRsLTE5MiAwIDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtMTkyIDAgMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xMTJ6Il19LE9Ccj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cm93ZWwtYnJpY2tzIixpY29uOls1MTIsNTEyLFtdLCJlNThhIiwiTTIyNCAzMmMwLTExLjUtNi4yLTIyLjItMTYuMi0yNy44cy0yMi4zLTUuNS0zMi4yIC40bC0xNjAgOTZDNS45IDEwNi4zIDAgMTE2LjggMCAxMjhzNS45IDIxLjcgMTUuNSAyNy40bDE2MCA5NmM5LjkgNS45IDIyLjIgNi4xIDMyLjIgLjRTMjI0IDIzNS41IDIyNCAyMjRsMC02NCAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjU2IDAgMC02NHptOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2MCAwek0wIDQxNmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTIyNC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNTYgMHoiXX0sUkJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvY2tzIixpY29uOls1MTIsNTEyLFsxMjk1MTBdLCJmNjk2IiwiTTI1Mi44IDBMMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYgMTEyIDAgMC0xNmMwLTE3LjUgNC43LTMzLjkgMTIuOC00OHpNMTI4IDExMmwwIDEyOGMwIDIwLjEtOS41IDM5LjEtMjUuNiA1MS4ybC02NCA0OGMtMjQuMiAxOC4xLTM4LjQgNDYuNi0zOC40IDc2LjggMCA1MyA0MyA5NiA5NiA5NiAxNS40IDAgMzAuNS0zLjcgNDQtMTAuNy0xNy42LTIzLjktMjgtNTMuNC0yOC04NS4zIDAtNDUuMyAyMS4zLTg4IDU3LjYtMTE1LjJsNjQtNDhjNC0zIDYuNC03LjggNi40LTEyLjhsMC0xMjgtMTEyIDB6bTE2MCAwbDAgMTI4YzAgMjAuMS05LjUgMzkuMS0yNS42IDUxLjJsLTY0IDQ4Yy0yNC4yIDE4LjEtMzguNCA0Ni42LTM4LjQgNzYuOCAwIDUzIDQzIDk2IDk2IDk2IDIwLjggMCA0MS02LjcgNTcuNi0xOS4ybDExNS4yLTg2LjRDNDYxIDM4Mi4yIDQ4MCAzNDQuMyA0ODAgMzA0bDAtMTkyLTE5MiAwek00ODAgNjRsMC0xNmMwLTI2LjUtMjEuNS00OC00OC00OEwzMzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNiAxOTIgMHoiXX0sRkJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InQiLGljb246WzM4NCw1MTIsWzExNl0sIjU0IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NmwxMjggMCAwIDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxCQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9jaGlwIixpY29uOls1MTIsNTEyLFtdLCJmMmRiIiwiTTE3NiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNTYgMCAwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMzNS4zIDAgNjQtMjguNyA2NC02NGw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtNTYgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDBjMC0zNS4zLTI4LjctNjQtNjQtNjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MHpNMTYwIDEyOGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNiA0OGwwIDE2MCAxNjAgMCAwLTE2MC0xNjAgMHoiXX0sWkhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLW1lZGljYWwiLGljb246WzU3Niw1MTIsWzEyODY1NywiYW1idWxhbmNlIl0sImYwZjkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTc2IDEzNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sSEJyPVpIZSxxQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib20iLGljb246WzU3Niw1MTIsWzEyODMyOV0sImY2NzkiLCJNMzg4LjcgNC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDE2IDE2YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC0xNiAxNmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTE2LTE2Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNmwxNi0xNnpNMTc2IDE2MGMtMTAuOCAwLTIwLjggMy42LTI4LjggOS42LTE0LjEgMTAuNi0zNC4yIDcuOC00NC44LTYuNHMtNy44LTM0LjIgNi40LTQ0LjhjMTguNy0xNC4xIDQyLTIyLjQgNjcuMi0yMi40IDYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyIDAgMTcuMi0zLjkgMzMuNS0xMC44IDQ4bDQ5LjcgMGMxMi43IDAgMjQuOS01IDMzLjktMTQuMWwyMC43LTIwLjdjMTguNy0xOC43IDQ0LjEtMjkuMyA3MC42LTI5LjMgNTUuMiAwIDk5LjkgNDQuNyA5OS45IDk5LjlsMCA5Ni4xYzAgNTUuMi00NC44IDEwMC0xMDAgMTAwUzM1MiA0NDMuMiAzNTIgMzg4bDAtNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNGMwIDE5LjkgMTYuMSAzNiAzNiAzNnMzNi0xNi4xIDM2LTM2bDAtOTYuMWMwLTE5LjgtMTYuMS0zNS45LTM1LjktMzUuOS05LjUgMC0xOC42IDMuOC0yNS40IDEwLjVsLTIwLjcgMjAuN2MtMjEgMjEtNDkuNCAzMi44LTc5LjEgMzIuOGwtMjYuOCAwYzEyLjYgMTkuNiAxOS45IDQyLjggMTkuOSA2OCAwIDc1LjItNjUgMTMyLTE0MCAxMzJTNDAgNDYzLjIgNDAgMzg4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJjMCAzNS4zIDMxLjcgNjggNzYgNjhzNzYtMzIuNyA3Ni02OC0zMS43LTY4LTc2LTY4bC0yMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDh6TTMzNy4xIDYwLjFjLTExLTEzLjgtMzEuMS0xNi4yLTQ1LTUuMnMtMTYuMiAzMS4xLTUuMiA0NUMzMTIuNiAxMzIuMiAzNTQuNCAxNTIgNDAwIDE1MnM4Ny40LTE5LjggMTEzLjEtNTIuMWMxMS0xMy44IDguNy0zNC01LjItNDVzLTM0LTguNy00NSA1LjJDNDUwLjMgNzYgNDI3LjUgODggNDAwIDg4cy01MC4zLTEyLTYyLjktMjcuOXoiXX0sVkJyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1aXRvLW5ldCIsaWNvbjpbNjQwLDUxMixbXSwiZTUyYyIsIk01NzYgMzUyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTYgMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDQ4IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgMCAxNi0uMSAyLjVDNTk4LjYgNTY2LjYgNTg4LjQgNTc2IDU3NiA1NzZzLTIyLjYtOS40LTIzLjktMjEuNWwtLjEtMi41IDAtMTYtNDggMCAwIDE2LS4xIDIuNUM1MDIuNiA1NjYuNiA0OTIuNCA1NzYgNDgwIDU3NnMtMjIuNi05LjQtMjMuOS0yMS41bC0uMS0yLjUgMC0xNi0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC00OC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTYgNDggMCAwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MjkuOSAxNi4zYzcuNy05LjQgMjEuMy0xMS41IDMxLjQtNC4zIDEwLjEgNy4xIDEzLjEgMjAuOSA3LjQgMzEuN2wtMS4zIDIuMS0yNS45IDM4LjkgMTMuMyA1My40YzIgOC0uMSAxNi4zLTUuMyAyMi4zbC0yLjQgMi40LTQ0LjcgMzguMyAxMzAuNSAxNC41YzQyLjggNC44IDc1LjEgNDAuOSA3NS4xIDgzLjkgMCAzLjktLjQgNy43LS45IDExLjUtNy4zLTMuNS0xNS4zLTUuOC0yMy44LTYuN0w1NzYgMzA0Yy0xOC41IDAtMzUuMyA3LTQ4IDE4LjQtMTEtOS45LTI1LjEtMTYuNS00MC42LTE4LjFMNDgwIDMwNGMtMzAuMyAwLTU2LjEgMTguNy02Ni44IDQ1LjItMTIuNSA1LTIzLjIgMTMuNC0zMS4xIDI0bC0zMC4yLTQwLjEgMCA3NC43YzAgMTcuNy0xNC4zIDMyLTMyIDMyLTE2LjYgMC0zMC4yLTEyLjYtMzEuOC0yOC43bC0uMi0zLjMgMC03NC42LTMyLjMgNDMgMCAzOS44YzAgMy41LS43IDYuOS0yLjEgMTAuMWwtMS42IDMuMS00MCA2NC0xLjQgMmMtNy41IDkuNi0yMSAxMi4xLTMxLjMgNS4zLTEwLjMtNi44LTEzLjctMjAuNS04LjMtMzEuNWwxLjItMi4yIDM2LjItNTggMC00MSAuMy00Yy42LTMuOSAyLjItNy43IDQuNi0xMC45bDM5LjMtNTIuMi02Ni4yIDU5LjVjLTE3IDE1LjMtMzkgMjMuNy02MS45IDIzLjhsLTguMSAwYy00Ni42IDAtODQuNC0zNy44LTg0LjQtODQuNCAwLTQzIDMyLjQtNzkuMiA3NS4xLTgzLjlsMTMwLjUtMTQuNS00NC43LTM4LjMtMi40LTIuNGMtNS4yLTYtNy4zLTE0LjQtNS4zLTIyLjNsMTMuMy01My40LTI1LjktMzguOS0xLjItMi4xYy01LjctMTAuOC0yLjctMjQuNiA3LjQtMzEuNyAxMC4xLTcuMSAyMy43LTUuMSAzMS40IDQuM2wxLjUgMiAzMiA0OCAxLjQgMi4yYzIuOCA1LjMgMy41IDExLjYgMi4xIDE3LjZsLTEyLjMgNDkuMiA1My4zIDQ1LjcgMC0yOC44IC4yLTMuMmMxLjEtMTAuNCA3LjItMTkuNCAxNS44LTI0LjRsMC02MC41IC4zLTMuMmMxLjUtNy4zIDgtMTIuNyAxNS43LTEyLjggNy43IDAgMTQuMiA1LjUgMTUuNyAxMi44bC4zIDMuMiAwIDYwLjVjOC43IDUgMTQuOCAxNCAxNS44IDI0LjRsLjIgMy4yIDAgMjguOSA1My40LTQ1LjctMTIuMy00OS4yYy0xLjUtNS45LS43LTEyLjIgMi4xLTE3LjZsMS40LTIuMiAzMi00OCAxLjUtMnpNNTA0IDQ4OGw0OCAwIDAtNDgtNDggMCAwIDQ4eiJdfSxqQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJlc2NyaXB0aW9uLWJvdHRsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjQ4NSIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRMMCAzMnpNMzIgMTQ0bDMyMCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtNjR6Il19LFFIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1nZWFyIixpY29uOls2NDAsNTEyLFsidXNlcnMtY29nIl0sImY1MDkiLCJNMzIwIDIyNGExMDQgMTA0IDAgMSAwIDAtMjA4IDEwNCAxMDQgMCAxIDAgMCAyMDh6TTk2IDIzMmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHpNMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjQtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAwek0xNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTU2LjggMGMtNy4xLTIxLjYtNi4zLTQ0LjQgMTAuNy02NC0xNC0xNi4yLTIwLjUtMzkuNy0xMS40LTYzLjMgNi42LTE3LjEgMTUuOS0zMy4xIDI3LjQtNDcuMyA1LjQtNi42IDExLjYtMTEuNyAxOC4zLTE1LjQtMjIuMS0xMS41LTQ3LjItMTgtNzMuOC0xOC04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHptNDY0LjYtNDQuMWM2LjMtMy42IDkuNS0xMS4xIDYuOC0xOC00LjgtMTIuNC0xMS41LTI0LjEtMTkuOS0zNC40LTQuNi01LjctMTIuNy02LjctMTktMy0yMS44IDEyLjYtNDguNi0yLjgtNDguNi0yOC4xIDAtNy4zLTQuOS0xMy44LTEyLjEtMTQuOS0xMi45LTItMjYuOC0yLTM5LjcgMC03LjIgMS4xLTEyLjEgNy42LTEyLjEgMTQuOSAwIDI1LjItMjYuOCA0MC43LTQ4LjYgMjguMS02LjMtMy42LTE0LjQtMi42LTE5IDMtOC40IDEwLjMtMTUuMSAyMi0xOS45IDM0LjQtMi42IDYuOCAuNSAxNC4zIDYuOCAxNy45IDIxLjkgMTIuNiAyMS45IDQzLjUgMCA1Ni4yLTYuMyAzLjYtOS41IDExLjEtNi44IDE3LjkgNC44IDEyLjQgMTEuNSAyNC4xIDE5LjkgMzQuNCA0LjYgNS43IDEyLjcgNi43IDE5IDMgMjEuOC0xMi42IDQ4LjYgMi45IDQ4LjYgMjguMSAwIDcuMyA0LjkgMTMuOCAxMi4xIDE0LjkgMTIuOSAyIDI2LjggMiAzOS43IDAgNy4yLTEuMSAxMi4xLTcuNiAxMi4xLTE0LjkgMC0yNS4yIDI2LjgtNDAuNyA0OC42LTI4LjEgNi4zIDMuNiAxNC40IDIuNiAxOS0zIDguNC0xMC4zIDE1LjEtMjIgMTkuOS0zNC40IDIuNi02LjgtLjUtMTQuMy02LjgtMTcuOS0yMS45LTEyLjYtMjEuOS00My41IDAtNTYuMnpNNDcyIDQxNmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSxVQnI9UUhlLFdCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NSIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LEdCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXVzZSIsaWNvbjpbMzg0LDUxMixbOTIwOF0sImYwNGMiLCJNNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyem0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzNTJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHoiXX0sVl89e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhZmYtc25ha2UiLGljb246WzQ0OCw1MTIsWyJyb2QtYXNjbGVwaXVzIiwicm9kLXNuYWtlIiwic3RhZmYtYWVzY3VsYXBpdXMiXSwiZTU3OSIsIk0xOTIgMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjQgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMTYgMCAwLTY0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMCAxOTIgMzIgMGM1MyAwIDk2IDQzIDk2IDk2IDAgNDcuNi0zNC42IDg3LjEtODAgOTQuN2wwLTY3YzkuNi01LjUgMTYtMTUuOSAxNi0yNy43IDAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjQtMzIgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04Ny4xIDgwLTk0LjdsMCA2N2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjcgMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTE5Mi03Mi42IDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJsLTE2IDBDMjEuNSAxMjggMCAxMDYuNSAwIDgwUzIxLjUgMzIgNDggMzJsMTQ0IDB6Il19LFlCcj1WXyxLQnI9Vl8sWkJyPVZfLFFCcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWdneS1iYW5rIixpY29uOls1NzYsNTEyLFtdLCJmNGQzIiwiTTI4OC0zMmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpNNDggMzA0YzAtNzAuMSA0Ny0xMzEuNCAxMTcuMS0xNjQuOSAyNS4zIDQxLjMgNzAuOSA2OC45IDEyMi45IDY4LjkgNTUuNyAwIDEwNC4xLTMxLjcgMTI4LTc4IDE1LjgtMTEuMyAzNS4xLTE4IDU2LTE4bDE5LjUgMGMxMC40IDAgMTggOS44IDE1LjUgMTkuOWwtMTcuMSA2OC4zYzkuOSAxMi40IDE4LjIgMjUuNyAyNC40IDM5LjhsMjEuNyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00MCAwYy0xNi41IDIyLTM4LjUgMzkuNi02NCA1MC43bDAgMjkuM2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzMgMGMtMTQuMyAwLTI2LjgtOS41LTMwLjgtMjMuMmwtNy4xLTI0LjgtODIuMyAwLTcuMSAyNC44QzIzNS44IDUwMi41IDIyMy4zIDUxMiAyMDkgNTEybC0zMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI5LjNDODcuNSA0MjYgNDggMzY5LjYgNDggMzA0em0zNzYgMTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxYQnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9udW1lbnQiLGljb246WzM4NCw1MTIsW10sImY1YTYiLCJNMjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw5NSA0N2MtNC4xIDQuMS02LjUgOS40LTcgMTUuMUw1OC40IDQ0OCA0OCA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjQgMC0yOS43LTM4NS44Yy0uNC01LjctMi45LTExLjEtNy0xNS4xTDIwOS0zM3pNMTI4IDI5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sWEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy1yaWdodCIsaWNvbjpbNDQ4LDUxMixbMTg3LCJhbmdsZS1kb3VibGUtcmlnaHQiXSwiZjEwMSIsIk00MzkuMSAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzcxLjIgMjU2IDIzMy45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6bS0zNTIgMTYwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDE3OS4yIDI1NiA0MS45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAweiJdfSxKQnI9WEhlLGlUPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRlc2t0b3AiLGljb246WzUxMiw1MTIsWzEyODQyMSw2MTcwNCwiZGVza3RvcC1hbHQiXSwiZjM5MCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE0NCAwLTE2IDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAtMTYtNDggMTQ0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDk2bDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGVIcj1pVCx0SHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTU3IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgNzggNzEuNWMtNjkuMyAyOS0xMTggOTcuNC0xMTggMTc3LjIgMCA0OS4zIDE4LjYgOTQuMyA0OS4xIDEyOC4zTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN3oiXX0sckhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJldHdlZXQiLGljb246WzU3Niw1MTIsW10sImYwNzkiLCJNMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsMzIgMCAwIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yMjQgMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NHpNNDU3LjQgNDcwLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNTU2LjkgMzUyIDU0NCAzNTJsLTMyIDAgMC0yMjRjMC01My00My05Ni05Ni05NkwyODggMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjQtMzIgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsNjQgNjR6Il19LEpIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdlYXIiLGljb246WzY0MCw1MTIsWyJ1c2VyLWNvZyJdLCJmNGZlIiwiTTI1Ni41IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNyAzMDRsNTkuNCAwIDEuNSAwYy0xMi45IDI2LjgtNy44IDU4LjIgMTEuNSA3OS41LTIwLjIgMjIuMy0yNC44IDU1LjgtOS40IDgzLjRsMjIuNSA0MC40Yy45IDEuNiAxLjkgMy4yIDIuOSA0LjdsLTIzNyAwYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM3ptMjA1LjktNTYuNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNi4xYzAgMTguOSAyNC4xIDMyLjggNDAuNSAyMy40bDUtMi45YzExLjYtNi43IDI2LjUtMi42IDMzIDkuMWwyMi40IDQwLjJjNi4yIDExLjIgMi42IDI1LjItOC4yIDMybC00LjcgMi45Yy0xNi4yIDEwLjEtMTYuMiAzOS45IDAgNTAuMWw0LjYgMi45YzEwLjggNi44IDE0LjUgMjAuOCA4LjMgMzJMNjA3IDQ4My44Yy02LjUgMTEuNy0yMS40IDE1LjktMzMgOS4xbC00LjktMi45Yy0xNi40LTkuNS00MC41IDQuNS00MC41IDIzLjRsMCA2LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNS45YzAtMTktMjQuMi0zMy00MC43LTIzLjVsLTQuOCAyLjhjLTExLjYgNi43LTI2LjQgMi42LTMzLTkuMWwtMjIuNi00MC40Yy02LjItMTEuMi0yLjYtMjUuMyA4LjMtMzIuMWw0LjQtMi43YzE2LjMtMTAuMSAxNi4zLTQwLjEgMC01MC4ybC00LjUtMi44Yy0xMC45LTYuOC0xNC41LTIwLjktOC4zLTMyLjFsMjIuNS00MC4zYzYuNS0xMS43IDIxLjQtMTUuOCAzMi45LTkuMWw0LjggMi44YzE2LjUgOS41IDQwLjctNC41IDQwLjctMjMuNWwwLTUuOXptOTkuOSAxMzYuMmE1MiA1MiAwIDEgMCAtMTA0IDAgNTIgNTIgMCAxIDAgMTA0IDB6Il19LGFIcj1KSGUsaUhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci1hbGwiLGljb246WzQ0OCw1MTIsW10sImY4NGMiLCJNMzg0IDk2bDAgMTI4LTEyOCAwIDAtMTI4IDEyOCAwem0wIDE5MmwwIDEyOC0xMjggMCAwLTEyOCAxMjggMHpNMTkyIDIyNGwtMTI4IDAgMC0xMjggMTI4IDAgMCAxMjh6TTY0IDI4OGwxMjggMCAwIDEyOC0xMjggMCAwLTEyOHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sc0hyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvaW5zIixpY29uOls1MTIsNTEyLFtdLCJmNTFlIiwiTTEyOCA5NmwwLTE2YzAtNDQuMiA4Ni04MCAxOTItODBTNTEyIDM1LjggNTEyIDgwbDAgMTZjMCAzMC42LTQxLjMgNTcuMi0xMDIgNzAuNy0yLjQtMi44LTQuOS01LjUtNy40LTgtMTUuNS0xNS4zLTM1LjUtMjYuOS01Ni40LTM1LjUtNDEuOS0xNy41LTk2LjUtMjcuMS0xNTQuMi0yNy4xLTIxLjkgMC00My4zIDEuNC02My44IDQuMS0uMi0xLjMtLjItMi43LS4yLTQuMXpNNDMyIDM1M2wwLTQ2LjJjMTUuMS0zLjkgMjkuMy04LjUgNDIuMi0xMy45IDEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40YzAgMjYuOC0zMS41IDUwLjUtODAgNjV6bTAtOTZsMC0zM2MwLTQuNS0uNC04LjgtMS0xMyAxNS41LTMuOSAzMC04LjYgNDMuMi0xNC4yczI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40YzAgMjYuOC0zMS41IDUwLjUtODAgNjV6TTAgMjQwbDAtMTZjMC00NC4yIDg2LTgwIDE5Mi04MHMxOTIgMzUuOCAxOTIgODBsMCAxNmMwIDQ0LjItODYgODAtMTkyIDgwUzAgMjg0LjIgMCAyNDB6bTM4NCA5NmMwIDQ0LjItODYgODAtMTkyIDgwUzAgMzgwLjIgMCAzMzZsMC0xNS40YzExLjYgOC4xIDI0LjUgMTQuNyAzNy44IDIwLjMgNDEuOSAxNy41IDk2LjUgMjcuMSAxNTQuMiAyNy4xczExMi4zLTkuNyAxNTQuMi0yNy4xYzEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40em0wIDgwLjZsMCAxNS40YzAgNDQuMi04NiA4MC0xOTIgODBTMCA0NzYuMiAwIDQzMmwwLTE1LjRjMTEuNiA4LjEgMjQuNSAxNC43IDM3LjggMjAuMyA0MS45IDE3LjUgOTYuNSAyNy4xIDE1NC4yIDI3LjFzMTEyLjMtOS43IDE1NC4yLTI3LjFjMTMuMi01LjUgMjYuMS0xMi4yIDM3LjgtMjAuM3oiXX0sbkhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlIixpY29uOls1NzYsNTEyLFs5ODk0XSwiZjIyOSIsIk00MTYtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTAuNyAwLTU4LjcgNTguNy0xNy40LTE3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE3LjQgMTcuNC0yMyAyM2MtMjguNC0xOS41LTYyLjctMzEtOTkuOC0zMS05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzZjMC0zNy0xMS40LTcxLjQtMzEtOTkuOGwyMy0yMyAxNy40IDE3LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w0NTMuMyAxMzYgNTEyIDc3LjMgNTEyIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDU3NiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDQxNi0zMnpNMTI4IDMwNGExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAweiJdfSxlcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlLWFuZ2xlIixpY29uOls1NzYsNTEyLFsiaGFuZHMtaGVscGluZyJdLCJmNGM0IiwiTTI2OC45IDUzLjJMMTUyLjMgMTgyLjhjLTQuNiA1LjEtNC40IDEzIC41IDE3LjkgMzAuNSAzMC41IDgwIDMwLjUgMTEwLjUgMGwzMS44LTMxLjhjNC4yLTQuMiA5LjUtNi41IDE0LjktNi45IDYuOC0uNiAxMy44IDEuNyAxOSA2LjlMNTA1LjYgMzQ0IDU3NiAyODggNTc2IDAgNDY0IDY0IDQ0MC4yIDQ4LjFDNDI0LjQgMzcuNiA0MDUuOSAzMiAzODYuOSAzMmwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjF6TTExNi42IDE1MC43TDIyMy40IDMyIDE4My44IDMyYy0yNS41IDAtNDkuOSAxMC4xLTY3LjkgMjguMUwwIDE5MiAwIDU0NCAxNDQgNDA4IDE1Ni40IDQxOC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMxOS4xIDAgMzcuOC00LjMgNTQuOC0xMi4zTDM1OSA0MDljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMiAzMiAxNy41LTE3LjVjOC45LTguOSAxMS41LTIxLjggNy42LTMzLjFsLTEzNy45LTEzNi44LTE0LjkgMTQuOWMtNDkuMyA0OS4zLTEyOS4xIDQ5LjMtMTc4LjQgMC0yMy0yMy0yMy45LTU5LjktMi4yLTg0eiJdfSxvSHI9ZXFlLGxIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duIixpY29uOlszODQsNTEyLFs4NTk1XSwiZjA2MyIsIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCA0MDIuNyAyMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzNzAuNy0xMDUuNC0xMDUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHoiXX0sdHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLWRvdCIsaWNvbjpbMzg0LDUxMixbIm1hcC1tYXJrZXItYWx0Il0sImYzYzUiLCJNMCAxODguNkMwIDg0LjQgODYgMCAxOTIgMFMzODQgODQuNCAzODQgMTg4LjZjMCAxMTkuMy0xMjAuMiAyNjIuMy0xNzAuNCAzMTYuOC0xMS44IDEyLjgtMzEuNSAxMi44LTQzLjMgMC01MC4yLTU0LjUtMTcwLjQtMTk3LjUtMTcwLjQtMzE2Ljh6TTE5MiAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6Il19LGNIcj10cWUsZEhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTVkIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjI4YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAxIDAgMCA0MHptMC0xODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LHVIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb29raWUtYml0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjU2NCIsIk0yNTcuNSAyNy42Yy0uOC01LjQtNC45LTkuOC0xMC4zLTEwLjYtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45LS45LTUuMy01LjMtOS4zLTEwLjYtMTAuMS01MS41LTguMi05Mi44LTQ3LjEtMTA0LjUtOTcuNC0xLjgtNy42LTgtMTMuNC0xNS43LTE0LjYtNTQuNi04LjctOTcuNy01Mi0xMDYuMi0xMDYuOHpNMjA4IDE0NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE0NCAzMzZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjI0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0scnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyLXdyZW5jaCIsaWNvbjpbNTc2LDUxMixbInRvb2xzIl0sImY3ZDkiLCJNNzAuOC02LjdjNS40LTUuNCAxMy44LTYuMiAyMC4yLTJMMjA5LjkgNzAuNWM4LjkgNS45IDE0LjIgMTUuOSAxNC4yIDI2LjZsMCA0OS42IDkwLjggOTAuOGMzMy4zLTE1IDczLjktOC45IDEwMS4yIDE4LjVMNTQyLjIgMzgyLjFjMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlsLTYwLjEgNjAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjg4LjEgMzg0Yy0yNy40LTI3LjQtMzMuNS02Ny45LTE4LjUtMTAxLjJsLTkwLjgtOTAuOC00OS42IDBjLTEwLjcgMC0yMC43LTUuMy0yNi42LTE0LjJMMjMuNCA1OC45Yy00LjItNi4zLTMuNC0xNC44IDItMjAuMkw3MC44LTYuN3ptMTQ1IDMwMy41Yy02LjMgMzYuOSAyLjMgNzUuOSAyNi4yIDEwNy4ybC05NC45IDk1Yy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDBzLTI4LjEtNzMuNyAwLTEwMS44bDEzNS40LTEzNS41IDM1LjIgMzUuMXpNMzg0LjEgMGMyMC4xIDAgMzkuNCAzLjcgNTcuMSAxMC41IDEwIDMuOCAxMS44IDE2LjUgNC4zIDI0LjFMMzg4LjggOTEuM2MtMyAzLTQuNyA3LjEtNC43IDExLjNsMCA0MS40YzAgOC44IDcuMiAxNiAxNiAxNmw0MS40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w1Ni43LTU2LjdjNy42LTcuNSAyMC4zLTUuNyAyNC4xIDQuMyA2LjggMTcuNyAxMC41IDM3IDEwLjUgNTcuMSAwIDQzLjItMTcuMiA4Mi4zLTQ1IDExMS4xbC00OS4xLTQ5LjFjLTMzLjEtMzMtNzguNS00NS43LTEyMS4xLTM4LjRsLTU2LjgtNTYuOCAwLTI5LjctLjItNWMtLjgtMTIuNC00LjQtMjQuMy0xMC41LTM0LjkgMjkuNC0zNSA3My40LTU3LjIgMTIyLjctNTcuM3oiXX0scEhyPXJxZSxmSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kZW50IixpY29uOls0NDgsNTEyLFtdLCJmMDNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTEyNy44IDI2OC42TDI1LjggMzQ3LjlDMTUuMyAzNTYuMSAwIDM0OC42IDAgMzM1LjNMMCAxNzYuN2MwLTEzLjMgMTUuMy0yMC44IDI1LjgtMTIuNmwxMDEuOSA3OS4zYzguMiA2LjQgOC4yIDE4LjkgMCAyNS4zeiJdfSxhcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFycyIsaWNvbjpbNDQ4LDUxMixbIm5hdmljb24iXSwiZjBjOSIsIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxoSHI9YXFlLGlxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1wcmF5aW5nIixpY29uOls2NDAsNTEyLFsicHJheWluZy1oYW5kcyJdLCJmNjg0IiwiTTIyNCAyOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTIuNiA4OC4yLTExOS43YzEzLjEtMTcuOCA5LjMtNDIuOC04LjUtNTUuOXMtNDIuOC05LjMtNTUuOSA4LjVMMTA2LjUgMTQyLjlDODkuMyAxNjYuMiA4MCAxOTQuNSA4MCAyMjMuNmwwIDExMC43LTU4LjEgMTkuNEM4LjggMzU4IDAgMzcwLjIgMCAzODRsMCA5NmMwIDEwIDQuNyAxOS41IDEyLjcgMjUuNXMxOC40IDggMjguMSA1LjJsMTU0LjQtNDQuMWM1NS0xNS43IDkyLjgtNjUuOSA5Mi44LTEyMy4xTDI4OCAyMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA3MnptMTkyIDBsMC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExOS42YzAgNTcuMiAzNy45IDEwNy40IDkyLjggMTIzLjFsMTU0LjQgNDQuMWM5LjcgMi44IDIwIC44IDI4LjEtNS4yUzY0MCA0OTAgNjQwIDQ4MGwwLTk2YzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC01OC4xLTE5LjQgMC0xMTAuN2MwLTI5LTkuMy01Ny4zLTI2LjUtODAuN0w0NDAuMiAxNi4zQzQyNy4xLTEuNSA0MDIuMS01LjMgMzg0LjMgNy44cy0yMS42IDM4LjEtOC41IDU1LjlMNDY0IDE4My40IDQ2NCAyOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LG1Icj1pcWUsZ0hyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzZXMiLGljb246WzY0MCw1MTIsW10sImUwNzYiLCJNMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAzMC41IDM2LjkgNDUuOCA1OC41IDI0LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjEuNiAyMS42LTYuMyA1OC41IDI0LjIgNTguNSAxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmMtMzAuNSAwLTQ1LjggMzYuOS0yNC4yIDU4LjUgMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBjLTIxLjYtMjEuNi01OC41LTYuMy01OC41IDI0LjIgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0zMC41LTM2LjktNDUuOC01OC41LTI0LjItMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNDNzcuOCAyNjAuOSA2Mi41IDIyNCAzMiAyMjQgMTQuMyAyMjQgMCAyMDkuNyAwIDE5MnMxNC4zLTMyIDMyLTMyYzMwLjUgMCA0NS44LTM2LjkgMjQuMi01OC41LTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBDMTIzLjEgNzcuOCAxNjAgNjIuNSAxNjAgMzIgMTYwIDE0LjMgMTc0LjMgMCAxOTIgMHpNMTQ0IDE3NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTEyOCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yNDggNDBjMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTUwNCAzODRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sYkhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1mbGFnIixpY29uOls1NzYsNTEyLFtdLCJlNTZlIiwiTTI1Ni04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTcyIDAgMCAxOS4yIDEyOCA3Ni44IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyOC03Ni44IDAtOTEuMnpNMjQwIDM4NGwwIDgwIDk2IDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNMTEyIDQxNmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDQxNmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnptLTIyNCAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0seEhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWRlbWFyayIsaWNvbjpbNjQwLDUxMixbODQ4Ml0sImYyNWMiLCJNMzQ2LjYgMTEwLjJjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzI4OCAxMTMuOSAyODggMTI4bDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNTAuMyA2OS40IDEwNC4xYzUuOSA4LjkgMTUuOSAxNC4yIDI2LjYgMTQuMnMyMC43LTUuMyAyNi42LTE0LjJMNTQ0IDIzMy43IDU0NCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1NmMwLTE0LjEtOS4yLTI2LjUtMjIuNy0zMC42cy0yOC4xIDEuMS0zNS45IDEyLjlMNDQ4IDI2Mi4zIDM0Ni42IDExMC4yek0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmw2NCAwIDAgMjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA5NnoiXX0sdkhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtYnVybmVyIixpY29uOls1MTIsNTEyLFtdLCJlNGYxIiwiTTI4MS43IDQ4LjNMMjk0IDM0LjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMSAyNi4yIDg4LjEgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjIgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXMxMy40IDMuMiAxOC44IDcuNWMxNC40IDExLjQgMzguOSA0MC43IDM4LjkgNDAuN3pNMzIwIDI0MC4yYzAtMzYuNS0zNy03My01NC44LTg4LjQtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjggNTEuOS01NC44IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpNOTIuOCAzMjBjMzcuNyA0OC4zIDk2LjEgODAgMTYzLjIgODAgNjYuNSAwIDEyNS4xLTMxLjcgMTYzLTgwbDQ1IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDQuOCAwek00NTYgNDAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LHNxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUyMiwic21pbGUtYmVhbSJdLCJmNWI4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSx5SHI9c3FlLHdIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LWxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImU1N2YiLCJNLS41IDExM2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNzItNzJjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMSAzMSAzMTAuMSAwIDU0LjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwLS4xIDAtMjYyIDAgMzEgMzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNzItNzJ6TTM3LjEgNDc2TDYwLjMgMjkyLjZjMS4yLTkuNyA2LjgtMTguMyAxNS4xLTIzLjNMMjM4LjggMTcwYzEwLjItNi4yIDIyLjktNi4yIDMzLjEtLjFsMTY1LjUgOTkuNGM4LjQgNSAxNCAxMy43IDE1LjMgMjMuNEw0NzUuOSA0NzZjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2bC03MS45IDBjLTEyLjEgMC0yMy4yLTYuOC0yOC42LTE3LjdMMjc1LjQgMzU3LjljLTEuOC0zLjYtNS41LTUuOS05LjUtNS45LTUuOSAwLTEwLjYgNC43LTEwLjYgMTAuNmwwIDExNy40YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY4LjggNTEyYy0xOS4zIDAtMzQuMi0xNi45LTMxLjctMzZ6Il19LGtIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3V0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjRkNyIsIk01MTIgOTZjMCA1MC4yLTU5LjEgMTI1LjEtODQuNiAxNTUtMy44IDQuNC05LjQgNi4xLTE0LjUgNUwzMjAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTI3Ni40IDBjOC43LTkuOSAxOS4zLTIyLjYgMzAtMzYuOCA2LjMtOC40IDEyLjgtMTcuNiAxOS0yNy4yTDQxNiA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZsMzkuOCAwYy0yMS0zMS41LTM5LjgtNjcuNy0zOS44LTk2IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZ6TTExNy4xIDQ4OS4xYy0zLjggNC4zLTcuMiA4LjEtMTAuMSAxMS4zbC0xLjggMi0uMi0uMmMtNiA0LjYtMTQuNiA0LTIwLTEuOC0yNS4yLTI3LjQtODUtOTcuOS04NS0xNDguNCAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgMzAtMjEuMSA2Ny00My41IDk3LjktMTAuNyAxNC43LTIxLjcgMjgtMzAuOCAzOC41bC0uNiAuN3pNMTI4IDM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek00MTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sbnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy11cCIsaWNvbjpbMzg0LDUxMixbImFuZ2xlLWRvdWJsZS11cCJdLCJmMTAyIiwiTTIxNC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAxMDkuMyAzMjkuNCAyNDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwem0xNjAgMzUybC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMzAxLjMgMzI5LjQgNDM4LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM3oiXX0sU0hyPW5xZSxNSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVja2V0IixpY29uOls0NDgsNTEyLFtdLCJlNGNmIiwiTTQ0My43IDIwOGMyLjcgNC43IDQuMyAxMC4yIDQuMyAxNiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtNS4xIDAtMjIuNCAyMTNjLTIuNiAyNC40LTIzLjIgNDMtNDcuOCA0M2wtMjMzLjYgMGMtMjQuNiAwLTQ1LjItMTguNS00Ny44LTQzTDM3LjEgMjU2IDMyIDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC01LjggMS42LTExLjMgNC4zLTE2bDQzOS40IDB6TTIyNC0xNmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGwwIDMyLTQ4IDAgMC0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMyLTQ4IDAgMC0zMkM4MCA0OC41IDE0NC41LTE2IDIyNC0xNnoiXX0sQ0hyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxlc3MtdGhhbi1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzNyIsIk00MjYuMSA5NC40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJsLTM4NCAxMjhDOC44IDE2NiAwIDE3OC4yIDAgMTkyczguOCAyNiAyMS45IDMwLjRsMzg0IDEyOGMxNi44IDUuNiAzNC45LTMuNSA0MC41LTIwLjJzLTMuNS0zNC45LTIwLjItNDAuNUwxMzMuMiAxOTIgNDI2LjEgOTQuNHpNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNnoiXX0sekhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2IDUxMiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0em02NC0yODhMMCAxNjAgMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTZ6Il19LF9Icj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tdGhyb3VnaC13aW5kb3ciLGljb246WzY0MCw1MTIsW10sImU1YTkiLCJNNjQgNjRsMjI0IDAgMCA5LjhjMCAzOS0yMy43IDc0LTU5LjkgODguNC02MC41IDI0LjItMTAwLjEgODIuNy0xMDAuMSAxNDcuOWwwIDczLjgtNjQgMCAwLTMyMHptMjg4IDBsMjI0IDAgMCAzMjAtNjcuNyAwLTMuNy00LjUtNzUuMi05MC4yYy05LjEtMTAuOS0yMi42LTE3LjMtMzYuOS0xNy4zbC03MS4xIDAtNDEtNjMuMWMtLjMtLjUtLjYtMS0xLTEuNCA0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHptNzMgMzIwbC0yNi42IDAgNDIuNyA2NCAxNTAuOSAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI2MC4yIDAgMzMuMiA0OS44YzkuOCAxNC43IDI5LjcgMTguNyA0NC40IDguOXMxOC43LTI5LjcgOC45LTQ0LjRsLTg0LjItMTI2LjIgNzQuNiAwIDQwIDQ4em0tMTU5LjUgMGwtNzMuNSAwIDAtNzMuOGMwLTEwLjIgMS42LTIwLjEgNC43LTI5LjVMMjY1LjUgMzg0ek0xOTIgMTI4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LFRIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2ZiIsIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyNy45LTExNS4xYzE4LjMtMTYuNCA0Ni0xNi40IDY0LjIgMEw0NDggMTI4IDUxMiAxMjhjMzMgMCA2MC4yIDI1IDYzLjYgNTcuMi0xNC43LTUuOS0zMC44LTkuMi00Ny42LTkuMi03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6TTMzMi4zIDM0MS41Yy02LTMuNS0xMi45LTUuNS0yMC4zLTUuNWwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA4OCA5NiAwIDAtNjQuMWMwLTIwLjggNC40LTQwLjUgMTIuMy01OC40ek0xMTIgMzg0YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2em0yMjQtNDhhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek01NjAgMzUybDAtNDcuOWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMHptLTExMiAyLjdsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjN6Il19LExIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1M2IiLCJNMjA0IDQwLjFjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0ek00IDE0NC4xYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek05Ni41IDI4NS41Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMOTYuNSAyODUuNXpNNjIuNiAyLjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNjIuNiAzNi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNMzUyLjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTQ3OC43IDI5OS4xbC00Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3NS4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVjMjUuMi0zMy45IDY1LTUzLjkgMTA3LjItNTMuOXM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnoiXX0sb3FlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlZnQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctYWx0LWxlZnQiXSwiZjMwYSIsIk05LjQgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTMTkyIDExNS4xIDE5MiAxMjhsMCA2NCAzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMzYgMCAwIDY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xMjgtMTI4eiJdfSxESHI9b3FlLGxxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1jcm9zc2hhaXJzIixpY29uOls1NzYsNTEyLFsibG9jYXRpb24iXSwiZjYwMSIsIk0yODgtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOC4zYzk4LjEgMTQgMTc1LjcgOTEuNiAxODkuNyAxODkuN2wxOC4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjMgMGMtMTQgOTguMS05MS42IDE3NS43LTE4OS43IDE4OS43bDAgMTguM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjNDMTU3LjkgNDYzLjcgODAuMyAzODYuMSA2Ni4zIDI4OEw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguMyAwQzgwLjMgMTI1LjkgMTU3LjkgNDguMyAyNTYgMzQuM0wyNTYgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEyOCAyNTZhMTYwIDE2MCAwIDEgMCAzMjAgMCAxNjAgMTYwIDAgMSAwIC0zMjAgMHptMTYwLTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSwkSHI9bHFlLGNxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZG90cy1mcm9tLWxpbmUiLGljb246WzUxMiw1MTIsWyJkaWFnbm9zZXMiXSwiZjQ3MCIsIk0xODQgNzJhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwek0xNjAgMjk5LjNjLTE5LjkgMjIuNi0zMiA1Mi4yLTMyIDg0LjdsMCAzMi02NCAwIDAtMzJjMC0xMDYgODYtMTkyIDE5Mi0xOTJzMTkyIDg2IDE5MiAxOTJsMCAzMi02NCAwIDAtMzJjMC0zMi41LTEyLjEtNjIuMS0zMi04NC43bDAgMTE2LjctMTkyIDAgMC0xMTYuN3pNMjMyIDM4NGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4LTEwNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0yNCA0NjRsNDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek02NCAxODRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDI0IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sQUhyPWNxZSxhcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F1Z2Utc2ltcGxlLWhpZ2giLGljb246WzUxMiw1MTIsWzYxNjY4LCJ0YWNob21ldGVyIiwidGFjaG9tZXRlci1mYXN0Il0sImY2MmEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMTYuMi02LTMxLjEtMTYtNDIuM2w2OS41LTEzOC45YzUuOS0xMS45IDEuMS0yNi4zLTEwLjctMzIuMnMtMjYuMy0xLjEtMzIuMiAxMC43TDI2MS4xIDI4OC4yYy0xLjctLjEtMy40LS4yLTUuMS0uMi0zNS4zIDAtNjQgMjguNy02NCA2NHMyOC43IDY0IDY0IDY0IDY0LTI4LjcgNjQtNjR6Il19LEVIcj1hcGUsSUhyPWFwZSxkcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLWxlZnQiLGljb246WzQ0OCw1MTIsWzE3MSwiYW5nbGUtZG91YmxlLWxlZnQiXSwiZjEwMCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHptMzUyLTE2MGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDI2OS4zIDI1NiA0MDYuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMHoiXX0sUEhyPWRxZSx1cWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtZG93biIsaWNvbjpbNTEyLDUxMixbODU5NywxMTAyMSwiYXJyb3dzLWFsdC12Il0sImYzMzgiLCJNNDA2LjYgNTAyLjZsOTYtOTZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzUyIDQ4MCAzNTJsLTY0IDAgMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMjAtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDB6TTE1MC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsNjQgMCAwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwIDY0IDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtOTYtOTZ6Il19LE5Icj11cWUscHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktZW1wdHkiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTAiXSwiZjI0NCIsIk0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyMjRjMCA4LjggNy4yIDE2IDE2IDE2bDQxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTIyNGMwLTguOC03LjItMTYtMTYtMTZsLTQxNiAwek0zMiAxNzZjMC00NC4yIDM1LjgtODAgODAtODBsNDE2IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgNDhjMCA0NC4yLTM1LjggODAtODAgODBsLTQxNiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTIyNHoiXX0sT0hyPXBxZSxSSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE2IDY0bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0xNzYgMTI4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MC0xNzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sRkhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvb2tpZSIsaWNvbjpbNTEyLDUxMixbMTI3ODUwXSwiZjU2MyIsIk0yNDcuMiAxN2MtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45bC0xNC42LTgyLjhjLTMuOS0yMi4xLTE0LjYtNDIuMy0zMC43LTU3LjlMMzg4LjkgNTcuNWMtMTYuMS0xNS42LTM2LjYtMjUuNi01OC43LTI4LjdMMjQ3LjIgMTd6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEJIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2giLGljb246WzQ0OCw1MTIsWzkyMDFdLCJmMmYyIiwiTTE2OC41IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDI1LjNjLTEwOCAxMS45LTE5MiAxMDMuNS0xOTIgMjE0LjcgMCAxMTkuMyA5Ni43IDIxNiAyMTYgMjE2czIxNi05Ni43IDIxNi0yMTZjMC0zOS44LTEwLjgtNzcuMS0yOS42LTEwOS4ybDI4LjItMjguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMjMuNCAyMy40Yy0zMi45LTMwLjItNzUuMi01MC4zLTEyMi01NS41bDAtMjUuMyAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptODAgMTg0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LEhIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlamVjdCIsaWNvbjpbNDQ4LDUxMixbOTE2N10sImYwNTIiLCJNMjI0IDMyYzEzLjUgMCAyNi4zIDUuNiAzNS40IDE1LjZsMTc2IDE5MmMxMi45IDE0IDE2LjIgMzQuMyA4LjYgNTEuOFM0MTkgMzIwIDQwMCAzMjBMNDggMzIwYy0xOSAwLTM2LjMtMTEuMi00My45LTI4LjdzLTQuMy0zNy43IDguNi01MS44bDE3Ni0xOTJDMTk3LjcgMzcuNiAyMTAuNSAzMiAyMjQgMzJ6TTAgNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6Il19LHFIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYXRlbGxpdGUtZGlzaCIsaWNvbjpbNTEyLDUxMixbMTI4MjI1XSwiZjdjMCIsIk0yMzIgMGMxNTQuNiAwIDI4MCAxMjUuNCAyODAgMjgwIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTI4LjEtMTAzLjktMjMyLTIzMi0yMzItMTMuMyAwLTI0LTEwLjctMjQtMjRTMjE4LjcgMCAyMzIgMHpNMjA4IDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMDEuNiAwIDE4NCA4Mi40IDE4NCAxODQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC03NS4xLTYwLjktMTM2LTEzNi0xMzYtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI2LjQgMTQyLjdjOC44LTE3LjkgMzIuNC0xOS45IDQ2LjUtNS44bDEyOC41IDEyOC41IDMyLTMyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTMyIDMyIDEyOC41IDEyOC41YzE0LjEgMTQuMSAxMiAzNy42LTUuOCA0Ni41LTM0LjIgMTYuOS03Mi42IDI2LjQtMTEzLjMgMjYuNC0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2IDAtNDAuNyA5LjUtNzkuMiAyNi40LTExMy4zeiJdfSxmcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1yb2xsaW5nLWV5ZXMiLGljb246WzUxMiw1MTIsWzEyODU4MCwibWVoLXJvbGxpbmctZXllcyJdLCJmNWE1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMzUybDEyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMzItMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40em0xMjggNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40IDAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSxWSHI9ZnFlLGhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0LWNoZWNrIixpY29uOls1MTIsNTEyLFsidGFza3MiXSwiZjBhZSIsIk0xMzMuOCAzNi4zYzEwLjkgNy42IDEzLjUgMjIuNiA1LjkgMzMuNGwtNTYgODBjLTQuMSA1LjgtMTAuNSA5LjUtMTcuNiAxMC4xUzUyIDE1OCA0NyAxNTNMNyAxMTNDLTIuMyAxMDMuNi0yLjMgODguNCA3IDc5UzMxLjYgNjkuNyA0MSA3OWwxOS44IDE5LjggMzkuNi01Ni42YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXptMCAxNjBjMTAuOSA3LjYgMTMuNSAyMi42IDUuOSAzMy40bC01NiA4MGMtNC4xIDUuOC0xMC41IDkuNS0xNy42IDEwLjFTNTIgMzE4IDQ3IDMxM0w3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDE5LjggMTkuOCAzOS42LTU2LjZjNy42LTEwLjkgMjIuNi0xMy41IDMzLjQtNS45ek0yMjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTYwIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek02NCAzNzZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxqSHI9aHFlLFVIcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWNrLXhtYXJrIixpY29uOls1MTIsNTEyLFtdLCJlNTZhIiwiTTMyOCAxMTJsLTE0NCAwLTM3LjMtNzQuNWMtMS44LTMuNi0yLjctNy42LTIuNy0xMS42IDAtMTQuMyAxMS42LTI1LjkgMjUuOS0yNS45TDM0Mi4xIDBjMTQuMyAwIDI1LjkgMTEuNiAyNS45IDI1LjkgMCA0LS45IDgtMi43IDExLjZMMzI4IDExMnpNMTY5LjYgMTYwbDE3Mi44IDAgNDguNyA0MC42QzQ1Ny42IDI1NiA0OTYgMzM4IDQ5NiA0MjQuNSA0OTYgNDcyLjggNDU2LjggNTEyIDQwOC41IDUxMmwtMzA1LjEgMEM1NS4yIDUxMiAxNiA0NzIuOCAxNiA0MjQuNSAxNiAzMzggNTQuNCAyNTYgMTIwLjkgMjAwLjZMMTY5LjYgMTYwek0zMjMuOSAyODQuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTMzLjkgMzMuOS0zMy45LTMzLjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45LTMzLjkgMzMuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOSAzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMy45LTMzLjkgMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45eiJdfSxXSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFzaHRhZyIsaWNvbjpbNTEyLDUxMixbNjIwOThdLCIyMyIsIk0yMTQuNyAuN2MxNy4zIDMuNyAyOC4zIDIwLjcgMjQuNiAzOGwtMTkuMSA4OS4zIDEyNi41IDAgMjItMTAyLjdDMzcyLjQgOCAzODkuNC0zIDQwNi43IC43czI4LjMgMjAuNyAyNC42IDM4TDQxMi4yIDEyOCA0ODAgMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MS42IDAtMjcuNCAxMjggNjcuOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MS42IDAtMjIgMTAyLjdjLTMuNyAxNy4zLTIwLjcgMjguMy0zOCAyNC42cy0yOC4zLTIwLjctMjQuNi0zOGwxOS4xLTg5LjMtMTI2LjUgMC0yMiAxMDIuN2MtMy43IDE3LjMtMjAuNyAyOC4zLTM4IDI0LjZzLTI4LjMtMjAuNy0yNC42LTM4TDk5LjggMzg0IDMyIDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MS42IDAgMjcuNC0xMjgtNjcuOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgxLjYgMCAyMi0xMDIuN0MxODAuNCA4IDE5Ny40LTMgMjE0LjcgLjd6TTIwNi40IDE5MmwtMjcuNCAxMjggMTI2LjUgMCAyNy40LTEyOC0xMjYuNSAweiJdfSxHSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4iLGljb246WzM4NCw1MTIsWzEyODY0Nl0sImYyMzgiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTE5MiAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxZSHI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2FtZXBhZCIsaWNvbjpbNjQwLDUxMixbXSwiZjExYiIsIk00NDggNjRjMTA2IDAgMTkyIDg2IDE5MiAxOTJTNTU0IDQ0OCA0NDggNDQ4bC0yNTYgMEM4NiA0NDggMCAzNjIgMCAyNTZTODYgNjQgMTkyIDY0bDI1NiAwek0xOTIgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyLTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMiAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMzJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0MCA5NmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTY0LTk2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHoiXX0sbXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtZXhwb3J0IixpY29uOls1NzYsNTEyLFsiYXJyb3ctcmlnaHQtZnJvbS1maWxlIl0sImY1NmUiLCJNOTYuNSAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTk2IDc4LjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC03Mi03MmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMS03OC4xIDAgMC0xMzMuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTEuMiAxOC43QzI3OS4yIDYuNyAyNjMgMCAyNDYgMEw5Ni41IDB6TTM1OCAxNzZsLTkzLjUgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwLjUgNTguNSAzNTggMTc2ek0yMjQuNSAzMjhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTA0IDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LEtIcj1tcWUsZ3FlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3JpbWFjZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU2LCJncmltYWNlIl0sImY1N2YiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTQwMCAzNTJjMCAyNS4yLTE5LjQgNDUuOC00NCA0Ny44bDAtOTUuN2MyNC42IDIgNDQgMjIuNyA0NCA0Ny44ek0yNzYgMzA0bDQwIDAgMCA5Ni00MCAwIDAtOTZ6bS04MCA5NmwwLTk2IDQwIDAgMCA5Ni00MCAwem0tNDAtOTUuOGwwIDk1LjdjLTI0LjYtMi00NC0yMi43LTQ0LTQ3LjhzMTkuNC00NS44IDQ0LTQ3Ljh6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sWkhyPWdxZSxicWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4tc3Vid2F5IixpY29uOlszODQsNTEyLFsic3Vid2F5Il0sImYyMzkiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMCAwLTE2MC03MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjE2IDI1Nmw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTcyIDAgMCAxNjB6TTk2IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTIyNC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxRSHI9YnFlLHhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG90IixpY29uOls1MTIsNTEyLFsxMjgyODAsImRvdC1jaXJjbGUiXSwiZjE5MiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0zNTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LFhIcj14cWUsSkhyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9iamVjdC1ncm91cCIsaWNvbjpbNTc2LDUxMixbXSwiZjI0NyIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwzMzcuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMjczLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTMzNy4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjczLjF6bTQ0OCAwYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwzMzcuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTI3My4xek0xNDQgMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTExMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0yNTYgMzIwbDMyIDBjNDQuMiAwIDgwLTM1LjggODAtODBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0sZXFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaXAiLGljb246WzY0MCw1MTIsWzEyODY3NF0sImYyMWEiLCJNMjcyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAxMDguOC0yMS42IDguNmMtMTQuOCA1LjktMjIuNSAyMi40LTE3LjQgMzcuNSAxMC40IDMxLjMgMjYuOCA1OS4zIDQ3LjcgODMuMSAyMC4xLTkuMiA0MS43LTEzLjkgNjMuMy0xNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjRsMS42IDEuMiAwLTIxNS0xMDQgNDEuNiAwLTgzLjJjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgzLjItMTA0LTQxLjYgMCAyMTUgMS42LTEuMmMyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAyMi4zLS4xIDQ0LjYgNC41IDY1LjMgMTQgMjAuOS0yMy43IDM3LjMtNTEuOCA0Ny43LTgzLjEgNS0xNS4yLTIuNi0zMS42LTE3LjQtMzcuNUw1MTIgMjUyLjggNTEyIDE0NGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMCAwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDI3MiAwek00MDMuNCA0NzYuMWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQ4Mi4zIDE3LjYgNDkwLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSx0cXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYyIsaWNvbjpbMzg0LDUxMixbOTldLCI0MyIsIk0zMjkuMSAxNDIuOWMtNjIuNS02Mi41LTE1NS44LTYyLjUtMjE4LjMgMHMtNjIuNSAxNjMuOCAwIDIyNi4zIDE1NS44IDYyLjUgMjE4LjMgMGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy04Ny41IDg3LjUtMjIxLjMgODcuNS0zMDguOCAwcy04Ny41LTIyOS4zIDAtMzE2LjggMjIxLjMtODcuNSAzMDguOCAwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSx2cWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBob25lIixpY29uOls0NDgsNTEyLFsicGhvbmUtc3F1YXJlIl0sImYwOTgiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptODggOTYuN2M5LjgtMi43IDIwLjEgMi40IDI0IDExLjhsMjAuMyA0OC43YzMuNCA4LjMgMS4xIDE3LjgtNS45IDIzLjVsLTIyLjEgMThjMTYuMiAzNS44IDQ0LjUgNjUgNzkuNiA4Mi40bDE5LjMtMjMuNmM1LjctNi45IDE1LjItOS4zIDIzLjUtNS45bDQ4LjcgMjAuM2M5LjQgMy45IDE0LjQgMTQuMiAxMS44IDI0bC0uOCAyLjhjLTguOCAzMi4zLTQwLjEgNTkuOS03OC4yIDUxLjgtODcuNS0xOC41LTE1Ni4zLTg3LjQtMTc0LjktMTc0LjktOC4xLTM4LjEgMTkuNS02OS40IDUxLjgtNzguMmwyLjgtLjh6Il19LHJxcj12cWUsYXFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLWNvbWJpbmVkIixpY29uOls0NDgsNTEyLFtdLCJmNTQ2IiwiTTEgNDQxLjdDNS41IDQ2My41IDI0LjggNDgwIDQ4IDQ4MGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi02NCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC02NC03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC00OGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMy4zIC4zIDYuNiAxIDkuN3oiXX0saXBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1yb3RhdGUiLGljb246WzUxMiw1MTIsWzEyODQ3MiwicmVmcmVzaCIsInN5bmMiXSwiZjAyMSIsIk02NS45IDIyOC41YzEzLjMtOTMgOTMuNC0xNjQuNSAxOTAuMS0xNjQuNSA1MyAwIDEwMSAyMS41IDEzNS44IDU2LjIgLjIgLjIgLjQgLjQgLjYgLjZsNy42IDcuMi00Ny45IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My40LTExLjMtMTAuN0MzOTAuNSAyOC42IDMyNi41IDAgMjU2IDAgMTI3IDAgMjAuMyA5NS40IDIuNiAyMTkuNSAuMSAyMzcgMTIuMiAyNTMuMiAyOS43IDI1NS43czMzLjctOS43IDM2LjItMjcuMXptNDQzLjUgNjRjMi41LTE3LjUtOS43LTMzLjctMjcuMS0zNi4ycy0zMy43IDkuNy0zNi4yIDI3LjFjLTEzLjMgOTMtOTMuNCAxNjQuNS0xOTAuMSAxNjQuNS01MyAwLTEwMS0yMS41LTEzNS44LTU2LjItLjItLjItLjQtLjQtLjYtLjZsLTcuNi03LjIgNDcuOSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMGMtOC41IDAtMTYuNyAzLjQtMjIuNyA5LjVTLS4xIDM0My43IDAgMzUyLjNsMSAxMjdjLjEgMTcuNyAxNC42IDMxLjkgMzIuMyAzMS43UzY1LjIgNDk2LjQgNjUgNDc4LjdsLS40LTUxLjUgMTAuNyAxMC4xYzQ2LjMgNDYuMSAxMTAuMiA3NC43IDE4MC43IDc0LjcgMTI5IDAgMjM1LjctOTUuNCAyNTMuNC0yMTkuNXoiXX0saXFyPWlwZSxzcXI9aXBlLHlxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MiLGljb246WzM4NCw1MTIsWyJmZW1hbGUiXSwiZjE4MiIsIk0xMzYgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMTIgMzg0bC0yNS44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDQzLTEyOS00OC4zIDY1LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZMMjcwIDIzNCAzMTMgMzYyLjljMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0yNS44IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMzIgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOHoiXX0sbnFyPXlxZSxvcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1vcGVuIixpY29uOls1MTIsNTEyLFsxMjgyMTQsMTI4MzY2XSwiZjUxOCIsIk0yNTYgMTQxLjNsMCAzMDkuMyAuNS0uMkMzMTEuMSA0MjcuNyAzNjkuNyA0MTYgNDI4LjggNDE2bDE5LjIgMCAwLTMyMC0xOS4yIDBjLTQyLjIgMC04NC4xIDguNC0xMjMuMSAyNC42LTE2LjggNy0zMy40IDEzLjktNDkuNyAyMC43ek0yMzAuOSA2MS41TDI1NiA3MiAyODEuMSA2MS41QzMyNy45IDQyIDM3OC4xIDMyIDQyOC44IDMyTDQ2NCAzMmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzUuMiAwYy01MC43IDAtMTAwLjkgMTAtMTQ3LjcgMjkuNWwtMTIuOCA1LjNjLTcuOSAzLjMtMTYuNyAzLjMtMjQuNiAwbC0xMi44LTUuM0MxODQuMSA0OTAgMTMzLjkgNDgwIDgzLjIgNDgwTDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNS4yIDBjNTAuNyAwIDEwMC45IDEwIDE0Ny43IDI5LjV6Il19LGxxcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItdHJlZSIsaWNvbjpbNTc2LDUxMixbXSwiZjgwMiIsIk00OCAyNEM0OCAxMC43IDM3LjMgMCAyNCAwUzAgMTAuNyAwIDI0TDAgMzkyYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDE4NCAwIDAtNDgtMTg0IDBjLTQuNCAwLTgtMy42LTgtOGwwLTIzMiAxOTIgMCAwLTQ4LTE5MiAwIDAtODh6TTMzNiAyMjRsMTkyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtODIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtOC42LTguNmMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFMMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4em0wIDI4OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC04LjYtOC42Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUwzMzYgMjg4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OHoiXX0sY3FyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcmdvIixpY29uOls2NDAsNTEyLFtdLCJlODUwIiwiTTM2OCAzMmM2MS45IDAgMTEyIDUwLjEgMTEyIDExMmwwIDI2LjhjMTQuNS02LjkgMzAuOC0xMC44IDQ4LTEwLjggNjEuOSAwIDExMiA1MC4xIDExMiAxMTJTNTg5LjkgMzg0IDUyOCAzODRsLTQ4IDAgMCAzMmMwIDE2LjYgMTIuNiAzMC4yIDI4LjcgMzEuOGw2LjYgLjNjMTYuMSAxLjYgMjguNyAxNS4zIDI4LjcgMzEuOCAwIDE3LjctMTQuMyAzMi0zMiAzMi01MyAwLTk2LTQzLTk2LTk2bDAtMzItMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzIwYzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiA5NC4yIDMyIDgwLjYgMzIgNjQgMzIgNDYuMyA0Ni4zIDMyIDY0IDMyIDkxIDMyIDExNS4zIDQzLjEgMTMyLjcgNjEgMTUyLjYgNDMgMTc5IDMyIDIwOCAzMiAyMzkuMyAzMiAyNjcuNyA0NC45IDI4OCA2NS43IDMwOC4zIDQ0LjkgMzM2LjYgMzIgMzY4IDMyek01MjggMjI0Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDQ4IDQ4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDh6Il19LHdxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3gtYXJjaGl2ZSIsaWNvbjpbNTEyLDUxMixbImFyY2hpdmUiXSwiZjE4NyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NkwwIDY0ek0zMiAxNzZsNDQ4IDAgMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTI0MHptMTUyIDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sZHFyPXdxZSx1cXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvdy1kb3duLXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1N2UiLCJNMTg1IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xQzEyMCAyLjcgMTA5LjMtOCA5Ni04UzcyIDIuNyA3MiAxNmwwIDEwMi4xLTMxLTMxQzMxLjYgNzcuNyAxNi40IDc3LjcgNyA4N1MtMi4zIDExMS42IDcgMTIxbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyek0xNTUuOCAyNjAuNkwxMzIuMSA0NDggMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMi44LS40LTUuNS0xLThMNTQ4LjIgMjYwLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDM2Ny40IDEzNy45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDE3MC45IDIzNy4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6TTQ0OCA0NDhsLTk3LjEgMCAwLTE0OS40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45TDQ0OCA0NDh6Il19LHBxcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxcmNvZGUiLGljb246WzQ0OCw1MTIsW10sImYwMjkiLCJNNjQgMTYwbDY0IDAgMC02NC02NCAwIDAgNjR6TTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwek02NCA0MTZsNjQgMCAwLTY0LTY0IDAgMCA2NHpNMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2ek0zMjAgOTZsMCA2NCA2NCAwIDAtNjQtNjQgMHpNMzA0IDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHpNMjg4IDM1MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem05NiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMnptMzItOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0tMzIgMzJhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHoiXX0sZnFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyYWdvbiIsaWNvbjpbNjQwLDUxMixbMTI4MDA5XSwiZjZkNSIsIk0zNTIgMTI0LjVsLTUxLjktMTNjLTYuNS0xLjYtMTEuMy03LjEtMTItMTMuOHMyLjgtMTMuMSA4LjctMTYuMWw0MC44LTIwLjQtNDMuMy0zMi41Yy01LjUtNC4xLTcuOC0xMS4zLTUuNi0xNy45UzI5Ny4xIDAgMzA0IDBMNDY0IDBjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRsNTcuNiA3Ni44YzYuMiA4LjMgOS42IDE4LjQgOS42IDI4LjggMCAyNi41LTIxLjUgNDgtNDggNDhsLTIxLjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdsLTEzLjMtMTMuMy0zMiAwIDAgMjEuNWMwIDI0LjggMTIuOCA0Ny45IDMzLjggNjEuMWwxMDYuNiA2Ni42YzMyLjEgMjAuMSA1MS42IDU1LjIgNTEuNiA5My4xIDAgNjAuNi00OS4xIDEwOS44LTEwOS44IDEwOS44TDMyLjMgNTEyYy0zLjMgMC02LjYtLjQtOS42LTEuNC05LjItMi44LTE2LjctOS42LTIwLjQtMTguNi0xLjMtMy4zLTIuMi02LjktMi4zLTEwLjctLjItMy43IC4zLTcuMyAxLjMtMTAuNyAyLjgtOS4yIDkuNi0xNi43IDE4LjYtMjAuNCAzLTEuMiA2LjItMiA5LjUtMi4yTDQzMy4zIDQxMmM4LjMtLjcgMTQuNy03LjcgMTQuNy0xNi4xIDAtNC4zLTEuNy04LjQtNC43LTExLjRsLTQ0LjQtNDQuNGMtMzAtMzAtNDYuOS03MC43LTQ2LjktMTEzLjFsMC0xMDIuNXpNNTEyIDcyLjNjMC0uMSAwLS4yIDAtLjNzMC0uMiAwLS4zbDAgLjZ6bS0xLjMgNy40TDQ2NC4zIDY4LjFjLS4yIDEuMy0uMyAyLjYtLjMgMy45IDAgMTMuMyAxMC43IDI0IDI0IDI0IDEwLjYgMCAxOS41LTYuOCAyMi43LTE2LjN6TTEzMC45IDExNi41YzE2LjMtMTQuNSA0MC40LTE2LjIgNTguNS00LjFsMTMwLjYgODcgMCAyNy41YzAgMzIuOCA4LjQgNjQuOCAyNCA5M2wtMjMyIDBjLTYuNyAwLTEyLjctNC4yLTE1LTEwLjRzLS41LTEzLjMgNC42LTE3LjdMMTcxIDIzMi4zIDE4LjQgMjU1LjhjLTcgMS4xLTEzLjktMi42LTE2LjktOVMuMSAyMzIuOCA1LjQgMjI4TDEzMC45IDExNi41eiJdfSxrcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzLWVuZCIsaWNvbjpbMzg0LDUxMixbODk4NywiaG91cmdsYXNzLTMiXSwiZjI1MyIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45bC02Ny45IDY3LjktNjcuOS02Ny45QzEwNi4xIDEyNC45IDk2IDEwMC40IDk2IDc1eiJdfSxocXI9a3FlLEF5PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyaXAiLGljb246WzUxMiw1MTIsWzU4MTE5LCJncmlkLWhvcml6b250YWwiLCJncmlwLWhvcml6b250YWwiXSwiZjU4ZCIsIk04OCA5NmMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDB6TTI4MCAyMjRsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwem0xOTIgMGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTAgMTkybC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHpNMjgwIDI4OGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDB6TTg4IDQxNmwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6Il19LG1xcj1BeSxncXI9QXksU3FlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci10b3AtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImJvcmRlci1zdHlsZSJdLCJmODUzIiwiTTAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNTIgMzUyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OHptMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJ6bTEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyem0xNjAgMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyek0zODQgMTkyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGJxcj1TcWUsTXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3QtdWwiLGljb246WzUxMiw1MTIsWyJsaXN0LWRvdHMiXSwiZjBjYSIsIk00OCAxNDRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNNDggNDY0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNOTYgMjU2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LHhxcj1NcWUsdnFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1yb2JiZXJ5IixpY29uOls1NzYsNTEyLFtdLCJlNTM2IiwiTTQ4OC4yIDU5LjFDNDc4LjEgOTkuNiA0NDEuNyAxMjggNDAwIDEyOHMtNzguMS0yOC40LTg4LjItNjguOUwzMDMgMjQuMkMyOTguOCA3LjEgMjgxLjQtMy4zIDI2NC4yIDFTMjM2LjcgMjIuNiAyNDEgMzkuOGw4LjcgMzQuOWMxMSA0NCA0MC4yIDc5LjYgNzguMyA5OS42TDMyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDUuN2MzOC4xLTIwIDY3LjMtNTUuNiA3OC4zLTk5LjZMNTU5IDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzUwMS4yIDcuMSA0OTcgMjQuMmwtOC43IDM0Ljl6TTQwMCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTggMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgOTYgMCAuNiAwIDE5MS40YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI3LjMgMTMgMjAuNWM1LjkgOS4yIDE2LjEgMTQuOSAyNyAxNC45bDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMwLjQgMC0zNy40LTU4LjlDMTU3LjYgMTQyIDEzMi4xIDEyOCAxMDQuNyAxMjhMNzIgMTI4eiJdfSx5cXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLWJ1dHRvbiIsaWNvbjpbMzg0LDUxMixbXSwiZjEwYiIsIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6TTE5MiA0NjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyeiJdfSxzcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi1hLXoiLGljb246WzUxMiw1MTIsWyJzb3J0LWFscGhhLWFzYyIsInNvcnQtYWxwaGEtZG93biJdLCJmMTVkIiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptMTgyLTM0MC45YzUwLjcgMTAxLjMgNzcuMyAxNTQuNyA4MCAxNjAgNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtNy4yLTE0LjMtODguNCAwLTcuMiAxNC4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45YzIuNy01LjMgMjkuMy01OC43IDgwLTE2MCA1LjQtMTAuOCAxNi41LTE3LjcgMjguNi0xNy43czIzLjIgNi44IDI4LjYgMTcuN3pNMzg0IDEzNS42bC0yMC4yIDQwLjQgNDAuNCAwLTIwLjItNDAuNHpNMjg4IDMyMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMGMxMi45IDAgMjQuNiA3LjggMjkuNiAxOS44czIuMiAyNS43LTYuOSAzNC45TDM5Ny4zIDQxNiA0NDggNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlsNzMuNC03My40LTUwLjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHdxcj1zcGUsa3FyPXNwZSxTcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjBkNiIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTkyIDk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0xOTIgMjRjMCA0LjQtMy42IDguMS04IDcuNS0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OHpNNjQgMzI4YzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHptOC0xMzYuNWMtNC40IC41LTgtMy4xLTgtNy41bDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNXptMzY4IDEyOWM0LjQtLjUgOCAzLjEgOCA3LjVsMCA0OGMwIDQuNC0zLjYgOC04IDhsLTQ4IDBjLTQuNCAwLTguMS0zLjYtNy41LTggMy42LTI5IDI2LjYtNTEuOSA1NS41LTU1LjV6Il19LENxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbWludXMiLGljb246WzUxMiw1MTIsWyJtaW51cy1jaXJjbGUiXSwiZjA1NiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY4IDIzMmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LE1xcj1DcWUsenFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXBvaW50ZXIiLGljb246WzQ0OCw1MTIsWyJtb3VzZS1wb2ludGVyIl0sImYyNDUiLCJNNzcuMyAyLjVjOC4xLTQuMSAxNy45LTMuMiAyNS4xIDIuM2wzMjAgMjM5LjljOC4zIDYuMiAxMS42IDE3IDguNCAyNi44cy0xMi40IDE2LjQtMjIuOCAxNi40bC0xNTIuMyAwIDg4LjkgMTc3LjdjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtODguOS0xNzcuNy05MS4zIDEyMS44Yy02LjIgOC4zLTE3IDExLjYtMjYuOCA4LjRTNjQgNDM0LjMgNjQgNDI0TDY0IDI0YzAtOS4xIDUuMS0xNy40IDEzLjMtMjEuNXoiXX0sQ3FyPXpxZSxfcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXNoYXJlLW5vZGVzIixpY29uOls0NDgsNTEyLFsic2hhcmUtYWx0LXNxdWFyZSJdLCJmMWUxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTM2OCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjQtMTUuNCAwLTI5LjUtNS40LTQwLjYtMTQuNWwtODUuMyA0Ni41IDg1LjMgNDYuNWMxMS05LjEgMjUuMi0xNC41IDQwLjYtMTQuNSAzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0YzAtMi41IC4xLTQuOSAuNC03LjNMMTU4LjUgMzAwYy0xMS43IDEyLjMtMjguMiAyMC00Ni41IDIwLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMTguMyAwIDM0LjggNy43IDQ2LjUgMjBsODEuOS00NC43Yy0uMy0yLjQtLjQtNC45LS40LTcuMyAwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0eiJdfSx6cXI9X3FlLFRxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1sYXJnZSIsaWNvbjpbNDQ4LDUxMixbInRoLWxhcmdlIl0sImYwMDkiLCJNMzg0IDk2bC0xMjggMCAwIDEyOCAxMjggMCAwLTEyOHptNjQgMTI4bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOHpNNjQgMjg4bDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwem0xMjgtNjRsMC0xMjgtMTI4IDAgMCAxMjggMTI4IDB6bTY0IDY0bDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAweiJdfSxfcXI9VHFlLFRxcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXQiLGljb246WzU3Niw1MTIsWzEyODAwOF0sImY2YmUiLCJNNjQgOTZjNTMgMCA5NiA0MyA5NiA5NmwwIDg1LjhjMjkuNy00NC43IDc3LjgtNzYuMiAxMzMuNC04NCAyNS42IDYwIDg1LjIgMTAyLjEgMTU0LjYgMTAyLjEgMTAuOSAwIDIxLjYtMS4xIDMyLTMuMUw0ODAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQwLjgtMTM2IDEwOC44IDU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE0NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtMjI0YzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiAxNTguMiAzMiAxNDQuNiAzMiAxMjggMzIgMTEwLjMgNDYuMyA5NiA2NCA5NnpNNTMzLjggMy4yQzU0NC4yLTUuNSA1NjAgMS45IDU2MCAxNS41TDU2MCAxMjhjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJTMzM2IDE4OS45IDMzNiAxMjhsMC0xMTIuNWMwLTEzLjYgMTUuOC0yMSAyNi4yLTEyLjNMNDE2IDQ4IDQ4MCA0OCA1MzMuOCAzLjJ6TTQwMCAxMDhhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem05NiAwYTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHoiXX0sTHFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXdlZWsiLGljb246WzQ0OCw1MTIsW10sImY3ODQiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMHoiXX0sRHFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtY29tcGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZTEzYSIsIk0xOTguOCAxLjhjOS0zLjcgMTkuMy0xLjcgMjYuMiA1LjJsNTYgNTZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTU2IDU2Yy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4yUzE4NCAxNDUuNyAxODQgMTM2bDAtMjQtMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMTQuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zIDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNMNjQgMTQ0YzAtNTMgNDMtOTYgOTYtOTZsMjQgMCAwLTI0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnpNMzkyIDgwYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6bS04IDczLjNjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zTDQ0OCAzNjhjMCA1My00MyA5Ni05NiA5NmwtMjQgMCAwIDI0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTU2LTU2Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw1Ni01NmM2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzMyOCAzNjYuMyAzMjggMzc2bDAgMjQgMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIxNC43ek03MiA0MzJhMjQgMjQgMCAxIDAgNDggMCAyNCAyNCAwIDEgMCAtNDggMHoiXX0sJHFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlbyIsaWNvbjpbNTEyLDUxMixbXSwiZTg0YSIsIk0yNjAgMGM3Mi45IDAgMTMyIDU5LjEgMTMyIDEzMmwwIDUuNC0uMSAxLjQtMjMuOCAyNzBjLjQgMjEuNyAxOC4yIDM5LjIgNDAgMzkuMiAyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0MGMwIDU3LjQtNDYuNiAxMDQtMTA0IDEwNFMzMDQgNDY1LjQgMzA0IDQwOGwwLTEuNCAuMS0xLjQgMjMuOS0yNzAuNiAwLTIuNmMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDRjMCAzLjcgLjMgNy4zIC44IDExbDI5LjcgMTkzLjRjLjkgNi4xIDEuNCAxMi4yIDEuNCAxOC40bDAgOS4yYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzAgNDI5LjkgMCAzNjggNTAuMSAyNTYgMTEyIDI1NmMxMS43IDAgMjMgMS44IDMzLjcgNS4xTDEyOS42IDE1Ni43Yy0xLjEtNi44LTEuNi0xMy44LTEuNi0yMC43bDAtNEMxMjggNTkuMSAxODcuMSAwIDI2MCAwek0xMTIgMzIwYTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnoiXX0sQXFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTY2IiwiTTI4Ny45IDMybC03Ni4yIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDY1LjQgNDIwLjVDNTcuOSA0NTAuNyA4MC44IDQ4MCAxMTIgNDgwbDIwOS40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTI4LjYgNi4yLTU1LjcgMTcuNC04MC0uNSAwLTEgMC0xLjYgMC0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OS4yYzM1LjItNDAgODYuNy02NS4yIDE0NC4yLTY1LjIgOSAwIDE3LjggLjYgMjYuNCAxLjhsLTMyLTEyOS4yQzQ4My40IDUyLjEgNDU3LjggMzIgNDI4LjMgMzJsLTc2LjUgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxFcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFsbGV0IixpY29uOls1NzYsNTEyLFtdLCJmNDgyIiwiTTMyIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjQtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTY0IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIwem05NiA2NGwxMjggMCAwIDY0LTEyOCAwIDAtNjR6bTE5MiAwbDEyOCAwIDAgNjQtMTI4IDAgMC02NHoiXX0sbnBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNha2UtY2FuZGxlcyIsaWNvbjpbNDQ4LDUxMixbMTI3ODc0LCJiaXJ0aGRheS1jYWtlIiwiY2FrZSJdLCJmMWZkIiwiTTg2LjQtMTAuNUw2MS44IDMxLjZDNTggMzguMSA1NiA0NS42IDU2IDUzLjJMNTYgNTZjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDEwNS42LTEwLjVjLTItMy40LTUuNy01LjUtOS42LTUuNXMtNy42IDIuMS05LjYgNS41em0xMjggMEwxODkuOCAzMS42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMjMzLjYtMTAuNWMtMi0zLjQtNS43LTUuNS05LjYtNS41cy03LjYgMi4xLTkuNiA1LjV6TTMxNy44IDMxLjZjLTMuOCA2LjUtNS44IDE0LTUuOCAyMS42bDAgMi44YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0yLjhjMC03LjYtMi0xNS01LjgtMjEuNkwzNjEuNi0xMC41Yy0yLTMuNC01LjctNS41LTkuNi01LjVzLTcuNiAyLjEtOS42IDUuNUwzMTcuOCAzMS42ek0xMjggMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNTMuNUMyNi43IDIyNi42IDAgMjYyLjIgMCAzMDRsMCAyMC44YzIwLjkgMS4zIDQxLjYgNy4zIDYwLjMgMThsNy4xIDQuMWMyNi4zIDE1IDU4LjkgMTMuNCA4My42LTQuMiA0My43LTMxLjIgMTAyLjMtMzEuMiAxNDYgMCAyNC42IDE3LjYgNTcuMyAxOS4zIDgzLjYgNC4ybDcuMS00LjFjMTguNy0xMC43IDM5LjMtMTYuNyA2MC4zLTE4bDAtMjAuOGMwLTQxLjgtMjYuNy03Ny40LTY0LTkwLjVsMC01My41YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4ek00NDggMzczYy0xMi43IDEuMi0yNS4xIDUtMzYuNSAxMS41bC03LjEgNC4xYy00Mi42IDI0LjMtOTUuNCAyMS43LTEzNS4zLTYuOC0yNy0xOS4zLTYzLjItMTkuMy05MC4yIDAtMzkuOSAyOC41LTkyLjcgMzEuMi0xMzUuMyA2LjhsLTcuMS00LjFDMjUuMSAzNzggMTIuNyAzNzQuMSAwIDM3M2wwIDc1YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNzV6Il19LElxcj1ucGUsUHFyPW5wZSxOcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVnLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlNDkwIiwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwyNDEuOCAxNzYgMzQ0IDE3NmMxNC4yIDAgMjcuNyAyLjggNDAgOGwxMDguOC04MS42YzE0LjEtMTAuNiAzNC4yLTcuNyA0NC44IDYuNHM3LjcgMzQuMi02LjQgNDQuOGwtOTcuOCA3My4zYzUuMyA4LjkgOS4zIDE4LjcgMTEuOCAyOS4xbDk4LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDMyYzAgOS41LS44IDE4LjctMi40IDI3LjhMNTY5IDUwMy4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5LjFDLTIuMy0uMy0yLjMtMTUuNSA3LTI0Ljl6TTM5OC4yIDQ2OGMtMjMuMiAyMi4xLTUzIDM3LjItODYuMiA0Mi4ybDAtMTI4LjQgODYuMiA4Ni4yek0yNjQgMzMzLjhsMCAxNzYuNGMtNTEuMi03LjctOTQuNS0zOS43LTExNy43LTgzLjlMODMuMiA0NzMuNmMtMTQuMSAxMC42LTM0LjIgNy43LTQ0LjgtNi40cy03LjctMzQuMiA2LjQtNDQuOGw4My40LTYyLjVjLS4xLTIuNi0uMi01LjItLjItNy45bDAtMzItOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5OC44IDBjMy4zLTEzLjkgOS4zLTI2LjcgMTcuNi0zNy44TDI2NCAzMzMuOHpNMzU1LjYgMTI4bC04Mi40IDAtNzIuMy03Mi4zQzIxNi4xIDIyLjggMjQ5LjQgMCAyODggMCAzNDEgMCAzODQgNDMgMzg0IDk2bDAgMy42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40eiJdfSxPcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFycCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3YiIsIk00NDggNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNDkuNWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM0wzODYuNyA0MjkuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwem01LjUgMjA4TDM2MCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXpNOTYgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUnFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tcHJlZGVjZXNzb3IiLGljb246WzQ0OCw1MTIsW10sImU0NzciLCJNMjg5LjIgMTM3LjljMi41LTYgOC4zLTkuOSAxNC44LTkuOWw0MCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk4IDBjMS4zIDUuMSAyIDEwLjUgMiAxNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC05NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjQgNDAgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtNjQgNjRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC02NC02NGMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHpNMzg0IDM1MmwtMzIwIDAgMCA2NCAzMjAgMCAwLTY0em02NCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NHoiXX0sTHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZmx1c2hlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTYzLCJmbHVzaGVkIl0sImY1NzkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTY4IDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0tOC05NmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHptMjY0LTcyYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHptLTI4OCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTE5MiAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEZxcj1McWUsQnFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tbmV4dCIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ3NiIsIk0zODQgMjI0YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEyOCAwIDAgNjQtMzIgMGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDY0IDY0YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTMjk0LjUgMjg4IDI4OCAyODhsLTMyIDAgMC02NCAxMjggMHpNNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTM0IDBjNS42IDIxLjctLjUgNDUuMS0xNi43IDYxLjNsLTY0IDY0Yy0yNSAyNS02NS41IDI1LTkwLjUgMGwtNjQtNjRDOTguNiAzMzMuMSA5Mi40IDMwOS43IDk4IDI4OGwtMzQgMHoiXX0sSHFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvci1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU0YWMiLCJNMzIwLjUgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2Yy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM2wxNi4yLTE0LjJjMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDE2LjYgMCAzMi43LTEuOSA0OC4yLTUuNi0yMC4zLTMwLjUtMzIuMi02Ny0zMi4yLTEwNi40IDAtMjcuMyA1LjctNTMuMyAxNi03Ni45bDAtMTM2LjZjMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2em0yMDggNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0scXFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NDMiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDUxOC42IDQwMHoiXX0sVnFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwYSIsaWNvbjpbNTc2LDUxMixbXSwiZjViYiIsIk0xNjkuNyAyMjcuNWMzNC4zIDE4LjcgNjQuNSA0NC4xIDg4LjggNzQuNSAxMS4xIDEzLjkgMjEgMjguOSAyOS40IDQ0LjggOC41LTE1LjkgMTguMy0zMC44IDI5LjQtNDQuOCAyNC4zLTMwLjUgNTQuNS01NS45IDg4LjgtNzQuNSA0MS43LTIyLjcgODkuNC0zNS41IDEzOS43LTM1LjVsOS45IDBjMTEuMSAwIDIwLjEgOSAyMC4xIDIwLjEgMCAxNDgtMTE5LjkgMjY3LjktMjY3LjkgMjY3LjlsLTQwLjIgMEMxMTkuOSA0ODAgMCAzNjAuMSAwIDIxMi4xIDAgMjAxIDkgMTkyIDIwLjEgMTkybDkuOSAwYzUwLjQgMCA5OC4xIDEyLjggMTM5LjcgMzUuNXpNMzAzLjkgMzhjMTYuOSAxNS45IDYxLjQgNjMuNCA4OSAxNDIuMy00MC4xIDIwLjItNzUuOCA0OC4yLTEwNC45IDgyLjEtMjkuMi0zMy45LTY0LjgtNjEuOC0xMDQuOS04Mi4xIDI3LjYtNzguOSA3Mi4yLTEyNi40IDg5LTE0Mi4zIDQuMy00LjEgMTAtNiAxNS45LTZzMTEuNiAyIDE1LjkgNnoiXX0sanFyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFyaWVzIixpY29uOls1MTIsNTEyLFtdLCJlODQ2IiwiTTQwMS42IDBjNjEuMyAwIDExMC40IDUwLjMgMTEwLjQgMTExIDAgMjkuNC0xMS42IDU3LjktMzIuNiA3OC44bC04LjggOC44Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjIgMHMtMTIuNS0zMi44IDAtNDUuMmw4LjgtOC44YzguOC04LjggMTMuOC0yMSAxMy44LTMzLjYgMC0yNS45LTIxLjEtNDctNDYuNC00Ny0yMi41IDAtNDEuNyAxNi4xLTQ1LjcgMzguMkwyODcuNSA0ODUuNmMwIC4xLS4xIC4zLS4xIC40LS4yIC44LS4zIDEuNi0uNSAyLjMtLjEgLjMtLjEgLjUtLjIgLjctLjIgLjYtLjQgMS4zLS43IDEuOS0uMiAuNS0uNCAxLS42IDEuNS0uMSAuMy0uMyAuNi0uNCAuOS0xLjYgMy41LTMuOCA2LjUtNi40IDkuMi0yIDItNC4yIDMuNy02LjYgNS4xLS4yIC4xLS4zIC4yLS41IC4zLS43IC40LTEuNCAuNy0yLjEgMS0uMyAuMS0uNiAuMy0uOSAuNC0uNSAuMi0xIC40LTEuNSAuNi0uNiAuMi0xLjIgLjUtMS45IC43LS4yIC4xLS41IC4yLS43IC4yLS44IC4yLTEuNiAuNC0yLjMgLjUtLjIgMC0uMyAuMS0uNCAuMS0uMiAwLS40IDAtLjYgLjEtLjcgLjEtMS4zIC4yLTIgLjItLjQgMC0uOCAuMS0xLjIgLjEtLjYgMC0xLjIgLjEtMS44IC4xLS42IDAtMS4yIDAtMS44LS4xLS40IDAtLjgtLjEtMS4yLS4xLS43LS4xLTEuNC0uMS0yLS4yLS4yIDAtLjQgMC0uNi0uMS0uMiAwLS4zLS4xLS41LS4xLS44LS4yLTEuNi0uMy0yLjMtLjUtLjMtLjEtLjUtLjEtLjgtLjItLjYtLjItMS4zLS40LTEuOS0uNy0uNS0uMi0xLS40LTEuNS0uNi0uMy0uMS0uNi0uMy0uOS0uNC0uNy0uMy0xLjQtLjctMi4xLTEtLjItLjEtLjMtLjItLjUtLjMtMi40LTEuNC00LjctMy4xLTYuNi01LjEtMi42LTIuNi00LjgtNS43LTYuNC05LjItLjEtLjItLjItLjMtLjItLjVsLS41LTEuMWMtLjEtLjMtLjItLjUtLjMtLjgtLjItLjYtLjUtMS4yLS43LTEuOS0uMS0uMi0uMi0uNS0uMi0uNy0uMi0uOC0uNC0xLjYtLjUtMi4zIDAtLjEtLjEtLjMtLjEtLjRMMTU2IDEwMi4yYy00LTIyLjEtMjMuMi0zOC4yLTQ1LjctMzguMi0yNS4zIDAtNDYuNCAyMS4xLTQ2LjQgNDcgMCAxMi42IDUgMjQuOCAxMy44IDMzLjZsOC44IDguOGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuMnMtMzIuOCAxMi41LTQ1LjIgMGwtOC44LTguOEMxMS42IDE2OC45IDAgMTQwLjMgMCAxMTEgMCA1MC4zIDQ5LjEgMCAxMTAuNCAwIDE2My44IDAgMjA5LjYgMzguMyAyMTkgOTFsMzcgMjA3IDM3LTIwN2M5LjQtNTIuNiA1NS4yLTkxIDEwOC43LTkxeiJdfSxEcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFycy1wcm9ncmVzcyIsaWNvbjpbNDQ4LDUxMixbInRhc2tzLWFsdCJdLCJmODI4IiwiTTI4OCAxNjBsOTYgMCAwLTY0LTk2IDAgMCA2NHpNMCAxNjBMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNnpNMTYwIDQxNmwyMjQgMCAwLTY0LTIyNCAwIDAgNjR6TTAgNDE2bDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZ6Il19LFVxcj1EcWUsV3FyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSwkcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1zdHJva2UtcmlnaHQiLGljb246WzY0MCw1MTIsWzk4OTcsIm1hcnMtc3Ryb2tlLWgiXSwiZjIyYiIsIk0zMjAuNSAyNTZhMTEyIDExMiAwIDEgMCAtMjI0IDAgMTEyIDExMiAwIDEgMCAyMjQgMHpNMjA4LjUgODBjODYuMyAwIDE1OC4xIDYyLjEgMTczLjEgMTQ0LjEgMS0uMSAxLjktLjEgMi45LS4xbDE2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjEuNCAwLTIyLjQtMjhjLTExLTEzLjgtOC44LTMzLjkgNS00NXMzMy45LTguOCA0NSA1bDY0IDgwYzkuMyAxMS43IDkuMyAyOC4zIDAgNDBsLTY0IDgwYy0xMSAxMy44LTMxLjIgMTYtNDUgNXMtMTYtMzEuMi01LTQ1bDIyLjQtMjgtNjEuNCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xNiAwYy0xIDAtMS45IDAtMi45LS4xLTE1IDgyLTg2LjggMTQ0LjEtMTczLjEgMTQ0LjEtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NnoiXX0sR3FyPSRxZSxZcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItb2JzZXJ2YXRpb24iLGljb246WzQ0OCw1MTIsW10sImU1ODYiLCJNMjA5LjcgMy40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxNjAgODBjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOS01LjYgMTEuMi0xNi45IDE3LjctMjguNiAxNy43bDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEzIDAgMzIgMTkyIDQ1IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ1IDAgMzItMTkyLTEzIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBjLTExLjcgMC0yMy02LjUtMjguNi0xNy43LTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlsMTYwLTgwek0zMTAuNyA0NDhsLTg2LjctNjEuOS04Ni43IDYxLjkgMTczLjQgMHptLTE1My0xOTJsLTMuNSAyMS4yIDY5LjkgNDkuOSA2OS45LTQ5LjktMy41LTIxLjItMTMyLjcgMHptLTEyLjMgNzMuOWwtMTAuMSA2MC42IDQ3LjUtMzMuOS0zNy40LTI2Ljd6bTExOS45IDI2LjdsNDcuNSAzMy45LTEwLjEtNjAuNi0zNy40IDI2Ljd6TTE1MiAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxvcGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rlcmxpbmctc2lnbiIsaWNvbjpbMzg0LDUxMixbMTYzLCJnYnAiLCJwb3VuZC1zaWduIl0sImYxNTQiLCJNOTEuMyAyODhsLTM0LjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMS40IDBDMzcuMyAxNDcuMyAxMDUuMSA0MiAyMDcuNiA0Mmw4LjIgMGMzMy42IDAgNjYuMiAxMS4zIDkyLjUgMzIuMmwxNi4xIDEyLjdjMTMuOSAxMSAxNi4yIDMxLjEgNS4yIDQ1cy0zMS4xIDE2LjItNDUgNS4ybC0xNi4xLTEyLjdjLTE1LTExLjktMzMuNi0xOC40LTUyLjgtMTguNGwtOC4yIDBjLTU3LjMgMC05NC43IDU5LjktNjkuNyAxMTEuNCAzLjYgNy40IDYuNiAxNC45IDkuMSAyMi42bDE0OS41IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0MS4yIDBjMSAzNS4zLTguNyA3MC42LTI4LjkgMTAwLjlsLTE4LjEgMjcuMSAyMTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNzIgMGMtMTEuOCAwLTIyLjYtNi41LTI4LjItMTYuOXMtNS0yMyAxLjYtMzIuOWw1MS4yLTc2LjhjMTMuMS0xOS42IDE5LjItNDIuNiAxOC4yLTY1LjR6Il19LEtxcj1vcGUsWnFyPW9wZSxRcXI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmF1Y2V0LWRyaXAiLGljb246WzUxMiw1MTIsWzEyODY4OF0sImUwMDYiLCJNMjI0IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMkw5NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmw5NiAwIDAgNjQtMTguNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNEwxMjggMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDAuMSAwYzIwLjIgMjkgNTMuOSA0OCA5MS45IDQ4czcxLjctMTkgOTEuOS00OGwzNi4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtODguNC03MS42LTE2MC0xNjAtMTYwbC0zMiAwLTIyLjYtMjIuNmMtNi02LTE0LjEtOS40LTIyLjYtOS40bC0xOC43IDAgMC02NCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MzYuOCA0NTUuNGwtMTguMiA0Mi40Yy0xLjggNC4xLTIuNyA4LjYtMi43IDEzLjFsMCAxLjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEuMmMwLTQuNS0uOS04LjktMi43LTEzLjFsLTE4LjItNDIuNGMtMS45LTQuNS02LjMtNy40LTExLjItNy40cy05LjIgMi45LTExLjIgNy40eiJdfSxzVD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtaW5mbyIsaWNvbjpbNTEyLDUxMixbImluZm8tY2lyY2xlIl0sImYwNWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTggNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDg4IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtNjQtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sWHFyPXNULEpxcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmZWF0aGVyIixpY29uOls1MTIsNTEyLFsxMjk3MThdLCJmNTJkIiwiTTM1MiAwYzQxIDAgODAuMyAxNi4zIDEwOS4yIDQ1LjJsNS41IDUuNWMyOSAyOSA0NS4zIDY4LjMgNDUuMyAxMDkuMiAwIDI0LjEtNS43IDQ3LjYtMTYuMiA2OC44LTEuOSAzLjctNS4zIDYuNS05LjMgNy43TDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDMyLjIgMGMxNC4zIDAgMjEuNCAxNy4yIDExLjMgMjcuM2wtMjIuNCAyMi40Yy0xLjkgMS45LTQuMiAzLjItNi43IDRsLTgxIDI0LjNjLTMuOSAxLjItNi41IDQuNy02LjUgOC44IDAgNS4xIDQuMSA5LjIgOS4yIDkuMiAxMy4yIDAgMTguOSAxNS43IDcuOCAyMi45LTQxLjEgMjYuNi04OS4zIDQxLjEtMTM5IDQxLjFsLTg2IDAtNDggNDhjLTguOCA4LjgtMjMuMiA4LjgtMzIgMHMtOC44LTIzLjIgMC0zMkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw3OS41IDMzNi41Yy01LjcgNS43LTE1LjUgMS43LTE1LjUtNi40IDAtNjcuOSAyNy0xMzMgNzUtMTgxTDI0Mi44IDQ1LjJDMjcxLjcgMTYuMyAzMTEgMCAzNTIgMHoiXX0sZVZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvd2wtcmljZSIsaWNvbjpbNTEyLDUxMixbXSwiZTJlYiIsIk0xNzYgNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTI0IDQ4bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTU2IDE2MGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0wIDI4My40QzAgMjY4LjMgMTIuMyAyNTYgMjcuNCAyNTZsNDU3LjEgMGMxNS4xIDAgMjcuNCAxMi4zIDI3LjQgMjcuNCAwIDcwLjUtNDQuNCAxMzAuNy0xMDYuNyAxNTQuMUw0MDMuNSA0NTJjLTIgMTYtMTUuNiAyOC0zMS44IDI4bC0yMzEuNSAwYy0xNi4xIDAtMjkuOC0xMi0zMS44LTI4bC0xLjgtMTQuNEM0NC40IDQxNC4xIDAgMzUzLjkgMCAyODMuNHpNMjI0IDE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptLTk2IDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTEwNCA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0yMTYgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI5NiA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0xMjAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTM5MiA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yOTYgMTZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sQXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMjg4LjEgMzUzLjZjMTAgMCAxOS45IDIuMyAyOSA3bDc0LjQgMzcuOS0xMy04Mi41Yy0zLjItMjAuMiAzLjUtNDAuNyAxNy45LTU1LjJsNTktNTkuMS04Mi41LTEzLjFjLTIwLjItMy4yLTM3LjctMTUuOS00Ny0zNC4xbC0zOC03NC40IDAgMjczLjZ6TTQ1Ny40IDQ4OWMtNy4zIDUuMy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXMxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4yeiJdfSx0VnI9QXFlLEVxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1hcnJvdy1kb3duIixpY29uOls1MTIsNTEyLFsidGVtcGVyYXR1cmUtZG93biJdLCJlMDNmIiwiTTY0LjUgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0cy0xNDQtNjQuNS0xNDQtMTQ0YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0LjUgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yOC43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjguN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00MzkuMSAzMTAuNmMtNiA2LTE0LjEgOS40LTIyLjYgOS40cy0xNi42LTMuNC0yMi42LTkuNGwtNjQtNjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsOS40IDkuNCAwLTE3OC43YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzguNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0eiJdfSxyVnI9RXFlLGFWcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrLXZlbnRpbGF0b3IiLGljb246WzY0MCw1MTIsW10sImU1MjQiLCJNMTUyLjIgMTkyYy0xNS40IDM4LjMtMjQuMiA3Ny4yLTI0LjIgMTA4LjggMCAxMy4zIDEuNSAyNi4yIDQuNCAzOC43bC0xNy0zLjRjLTI5LjktNi01MS40LTMyLjItNTEuNC02Mi44bDAtODEuMyA4OC4yIDB6bTMyLjktNjRMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDgxLjNjMCA2MSA0My4xIDExMy41IDEwMi45IDEyNS41bDY2LjMgMTMuM2MxOC43IDIyLjEgNDIuOSA0MCA3MC44IDUxLjhsMC04Ny44Yy0xMC4xLTE0LjItMTYtMzEuMy0xNi00OS43IDAtNDkuNSA0My0xMzQuNCA5Ni0xMzQuNCA1Mi41IDAgOTYgODQuOSA5NiAxMzQuNCAwIDE4LjQtNS45IDM1LjQtMTYgNDkuNmwwIDg3LjdjMjcuNi0xMS44IDUxLjctMjkuNiA3MC40LTUxLjZsNjYuNy0xMy4zYzU5LjgtMTIgMTAyLjktNjQuNSAxMDIuOS0xMjUuNWwwLTgxLjNjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTEyMS41IDBjLTM0LjgtNTQuMi04Mi41LTk2LTEzNC41LTk2LTUyLjYgMC0xMDAuMiA0MS44LTEzNC45IDk2em0zMDIuNSA2NGw4OC40IDAgMCA4MS4zYzAgMzAuNS0yMS41IDU2LjgtNTEuNCA2Mi44bC0xNyAzLjRjMi45LTEyLjQgNC41LTI1LjQgNC41LTM4LjcgMC0zMS42LTguOS03MC41LTI0LjQtMTA4Ljh6TTI4OCAzMjBsMCAxOTIgNjQgMCAwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnoiXX0saVZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtdmlkZW8iLGljb246WzM4NCw1MTIsW10sImYxYzgiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTgwIDMwNGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yNCAzNSAzNWMzLjIgMy4yIDcuNSA1IDEyIDUgOS40IDAgMTctNy42IDE3LTE3bDAtOTQuMWMwLTkuNC03LjYtMTctMTctMTctNC41IDAtOC44IDEuOC0xMiA1bC0zNSAzNSAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sc1ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXRyZW5kLWRvd24iLGljb246WzU3Niw1MTIsW10sImUwOTciLCJNMzg0IDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDgyLjctMTY5LjQtMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwTDE5MiAyNDIuNyA1NC42IDEwNS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwTDMyMCAyMDUuMyA0NjYuNyAzNTIgMzg0IDM1MnoiXX0sblZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9pbC1jYW4iLGljb246WzY0MCw1MTIsW10sImY2MTMiLCJNMzIwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyLTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0LjhjMCAxOSAxMS4yIDM2LjIgMjguNSA0My45bDY3LjUgMzAgMCAyMS4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI1OS4xIDBjMTguNCAwIDM1LjgtNy45IDQ4LTIxLjdMNjMzLjUgMTg3LjdjMTIuMy0xMy45LS4zLTM1LjQtMTguNC0zMS41TDQ0OCAxOTIgMzk3LjUgMTY2LjhjLTguOS00LjQtMTguNy02LjgtMjguNi02LjhsLTgwLjkgMCAwLTMyIDMyIDB6TTk2IDIwOGwwIDg2LjEtNDgtMjEuMyAwLTY0LjggNDggMHoiXX0sSXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1jYXJyeS1ib3giLGljb246WzU3Niw1MTIsWyJwZW9wbGUtY2FycnkiXSwiZjRjZSIsIk02NC0zMkE1NiA1NiAwIDEgMSA2NCA4MCA1NiA1NiAwIDEgMSA2NC0zMnpNMCAxNzEuMWMwLTMyLjYgMjYuNS01OS4xIDU5LjEtNTkuMSAyMy41IDAgNDUuNSAxMS4zIDU5LjEgMzAuNGw0OC43IDY4LjJjNS44IDguMiAxNS4xIDEzLjEgMjUuMSAxMy40bDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMxMC0uMyAxOS4zLTUuMiAyNS4xLTEzLjRsNDguNy02OC4yYzEzLjYtMTkuMSAzNS42LTMwLjQgNTkuMS0zMC40IDMyLjYgMCA1OS4xIDI2LjUgNTkuMSA1OS4xTDU3NiAyNzJjMCAzMC4yLTE0LjIgNTguNy0zOC40IDc2LjhsLTc2LjggNTcuNmMtOC4xIDYtMTIuOCAxNS41LTEyLjggMjUuNmwwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODBjMC0zMC4yIDE0LjItNTguNyAzOC40LTc2LjhsNDEuNi0zMS4yIDAtODAuMS0yLjggMy45Yy0xOCAyNS4yLTQ3LjEgNDAuMi03OC4xIDQwLjJMMzUyIDI4OGMtLjYgMC0xLjMgMC0xLjktLjEtLjYgMC0xLjMgLjEtMS45IC4xbC0xMjAuNCAwYy0uNiAwLTEuMyAwLTEuOS0uMS0uNiAwLTEuMyAuMS0xLjkgLjFsLTMxLjEgMGMtMzEgMC02MC4xLTE1LTc4LjEtNDAuMmwtMi44LTMuOSAwIDgwLjEgNDEuNiAzMS4yQzE3Ny44IDM3My4zIDE5MiA0MDEuOCAxOTIgNDMybDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDM4LjQgMzQ4LjhDMTQuMiAzMzAuNyAwIDMwMi4yIDAgMjcyTDAgMTcxLjF6TTAgMzc5LjNjMy4xIDIuNyA2LjMgNS40IDkuNiA3LjlMNjQgNDI4IDY0IDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDUyOS43IDAgNTEyTDAgMzc5LjN6TTU2OCAyNGE1NiA1NiAwIDEgMSAtMTEyIDAgNTYgNTYgMCAxIDEgMTEyIDB6bTggNDg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODQgNTQuNC00MC44YzMuMy0yLjUgNi41LTUuMSA5LjYtNy45TDU3NiA1MTJ6Il19LG9Wcj1JcWUsbFZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYWlyIixpY29uOls0NDgsNTEyLFsxMjk2ODFdLCJmNmMwIiwiTTE1MiAyNTZsMC0xODEuOGMtMjQuNSAyMC41LTQwIDUxLjQtNDAgODUuOGwwIDk2IDQwIDB6bTQ4IDBsNDggMCAwLTIwNS40Yy03LjctMS43LTE1LjgtMi42LTI0LTIuNnMtMTYuMyAuOS0yNCAyLjZMMjAwIDI1NnpNMjk2IDc0LjJsMCAxODEuOCA0MCAwIDAtOTZjMC0zNC40LTE1LjUtNjUuMi00MC04NS44ek0zMiAyNTZsMzIgMCAwLTk2QzY0IDcxLjYgMTM1LjYgMCAyMjQgMFMzODQgNzEuNiAzODQgMTYwbDAgOTYgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0yNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGNWcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kIixpY29uOls1MTIsNTEyLFtdLCJmNzJlIiwiTTI4OCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDMyIDExMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjggMGM0OC42IDAgODgtMzkuNCA4OC04OFM0MDguNiAwIDM2MCAwTDMyMCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNjQgMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZMMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTI4IDUxMmw0MCAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4cy0zOS40LTg4LTg4LTg4TDMyIDMzNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnoiXX0sZFZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxheWVyLWdyb3VwIixpY29uOls1MTIsNTEyLFtdLCJmNWZkIiwiTTIzMi41IDUuMmMxNC45LTYuOSAzMi4xLTYuOSA0NyAwbDIxOC42IDEwMWM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgMTQ5LjhDNS40IDE0NS44IDAgMTM3LjMgMCAxMjhzNS40LTE3LjkgMTMuOS0yMS44TDIzMi41IDUuMnpNNDguMSAyMTguNGwxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSAyNzcuOEM1LjQgMjczLjggMCAyNjUuMyAwIDI1NnM1LjQtMTcuOSAxMy45LTIxLjhsMzQuMS0xNS44ek0xMy45IDM2Mi4ybDM0LjEtMTUuOCAxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSA0MDUuOEM1LjQgNDAxLjggMCAzOTMuMyAwIDM4NHM1LjQtMTcuOSAxMy45LTIxLjh6Il19LHVWcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtbWFzayIsaWNvbjpbNTEyLDUxMixbXSwiZTA2MyIsIk00NDUuOSAxOTNjLS4xLS40LS4yLS45LS4yLTEuMy0xNS43LTEwOC40LTEwOC45LTE5MS43LTIyMS43LTE5MS43LTg1IDAtMTU5IDQ3LjQtMTk2LjkgMTE3LjJMMjgzLjMgMjg4IDQ1NiAyODggNDQyLjkgMzM2IDMzNiAzMzZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsOTguMiAwLTguNyAzMi04OS41IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAuNiAwYy02LjcgMTkuMS0yNC44IDMyLTQ1LjMgMzJMMjg4IDQ2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMDQuNS0yNDcuNS0xNjVDMyAxODIuMSAwIDIwMi43IDAgMjI0IDAgMjc4IDE5LjEgMzI3LjUgNTAuOSAzNjYuMiA1OC45IDM3NS45IDY0IDM4Ny44IDY0IDQwMC40TDY0IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjcuMyAwIC43IDAgMTMxLjMgMGM0NC45IDAgODMuOC0zMS4xIDkzLjYtNzQuOWwzMy45LTE1MC4zYzMuMy0xNC40LS4zLTI5LjUtOS43LTQxTDQ0NS45IDE5M3pNMjg4IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxscGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMiLGljb246WzUxMiw1MTIsWyJzaWduLWxhbmd1YWdlIiwic2lnbmluZyJdLCJmMmE3IiwiTTUxMiAxNjBsLS4xIDcyLjZjMCA0NC44LTE3LjYgODcuMS00Ny45IDExOC40LS4zLTc3LTQwLjEtMTQ4LjQtMTA1LjQtMTg5LjNsLTEuOS0xLjJjMi41LTMuNyAyLjgtOC42IC40LTEyLjdsLTYyLTEwNy40Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOFMzMzAgNSAzMzYuNiAxNi41bDY4IDExNy44IDAgMCAwIDAgNDMuMyA3NSAuMS00OS4zYzAtMTcuNyAxNC40LTMyIDMyLTMyczMyIDE0LjQgMzIgMzJ6TTI5OC40IDEyNC4yYy0xNC4xLTguOC0yOS44LTEyLjctNDUuMi0xMi4xTDIxNi43IDQ4LjhjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44bDY3LjEgMTE2LjItMjctMTYuOXpNMjExLjkgODguNWwxNi40IDI4LjRjLTE1LjEgNS41LTI4LjYgMTUuNi0zOC4zIDI5LjdsLTE5LjctMzQuMmMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4Ljh6bS00Ni40IDYzLjdsMTIuNSAyMS43Yy0yIDguNi0yLjUgMTcuNS0xLjcgMjYuMWwtNC4zIDAgMCAwLTM0LjQgMC0xMy43LTIzLjhjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44ek0yMjguOSAxNzVjOS40LTE1IDI5LjEtMTkuNSA0NC4xLTEwLjJsNjAuMiAzNy42QzM4NC43IDIzNC43IDQxNiAyOTEuMiA0MTYgMzUybDAgOGMwIDgzLjktNjguMSAxNTItMTUyIDE1Mkw4OCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOTIgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkw1NiA0NDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTI0IDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMMjQgMzY4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE1NiAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDU2IDI5NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMzYgMCAwIDAgMCAwIDkzLjIgMC00Ni4yLTI4LjljLTE1LTkuNC0xOS41LTI5LjEtMTAuMi00NC4xeiJdfSxwVnI9bHBlLGZWcj1scGUsaFZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldHMiLGljb246WzUxMiw1MTIsW10sImY0OTAiLCJNNDk1LjMgNzYuNmMtNC42LTguNy0xNi4zLTkuNy0yMy4zLTIuN0wyOTcuOSAyNDhjLTcgNy02IDE4LjcgMi43IDIzLjMgMjAuMSAxMC43IDQzIDE2LjcgNjcuNCAxNi43IDc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjQuMy02LTQ3LjMtMTYuNy02Ny40ek0yNDAuNyAyMTEuNGM0LjYgOC43IDE2LjMgOS43IDIzLjMgMi43TDQzOC4xIDQwYzctNyA2LTE4LjctMi43LTIzLjMtMjAuMS0xMC43LTQzLTE2LjctNjcuNC0xNi43LTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMjQuMyA2IDQ3LjMgMTYuNyA2Ny40ek0xNDQgMjI0Qzc5LjIgMjI0IDI0LjQgMjY2LjggNi4zIDMyNS42IDMuNCAzMzUuMSAxMSAzNDQgMjAuOSAzNDRsMjQ2LjIgMGM5LjkgMCAxNy41LTguOSAxNC42LTE4LjQtLjktMy0xLjktNS45LTMtOC43LTM3LjQtMTguMS02OC00OC04Ny04NC44LTE0LjktNS4yLTMwLjktOC4xLTQ3LjYtOC4xek0yODEuNyA0MTAuNGMyLjktOS41LTQuNy0xOC40LTE0LjYtMTguNEwyMC45IDM5MkMxMSAzOTIgMy40IDQwMC45IDYuMyA0MTAuNCAyNC40IDQ2OS4yIDc5LjIgNTEyIDE0NCA1MTJzMTE5LjYtNDIuOCAxMzcuNy0xMDEuNnoiXX0sbVZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlaWdodC1oYW5naW5nIixpY29uOls1MTIsNTEyLFtdLCJmNWNkIiwiTTIyNCA5NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjIuNSAzMmMzLjUtMTAgNS41LTIwLjggNS41LTMyIDAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMTEuMiAxLjkgMjIgNS41IDMybC0yMS44IDBjLTI4LjMgMC01My4yIDE4LjUtNjEuMyA0NS42TDIuNCA0NDAuMkMuOCA0NDUuNCAwIDQ1MC44IDAgNDU2LjIgMCA0ODcgMjUgNTEyIDU1LjggNTEybDQwMC40IDBjMzAuOCAwIDU1LjgtMjUgNTUuOC01NS44IDAtNS40LS44LTEwLjgtMi40LTE2bC04MC0yNjYuNWMtOC4xLTI3LjEtMzMtNDUuNi02MS4zLTQ1LjZsLTIxLjggMHoiXX0sZ1ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UiLGljb246WzUxMiw1MTIsWzEyNzkyMl0sImY1MjIiLCJNMTQxLjQgMi4zQzEwMy04IDYzLjUgMTQuOCA1My4zIDUzLjJMMi41IDI0Mi43Qy03LjggMjgxLjEgMTUgMzIwLjYgNTMuNCAzMzAuOWwxODkuNSA1MC44YzM4LjQgMTAuMyA3Ny45LTEyLjUgODguMi01MC45bDUwLjgtMTg5LjVjMTAuMy0zOC40LTEyLjUtNzcuOS01MC45LTg4LjJMMTQxLjQgMi4zem0yMyAyMDUuN2EzMiAzMiAwIDEgMSA1NS40LTMyIDMyIDMyIDAgMSAxIC01NS40IDMyek03OS4yIDIyMC4zYTMyIDMyIDAgMSAxIDMyIDU1LjQgMzIgMzIgMCAxIDEgLTMyLTU1LjR6bTE4NSA5Ni40YTMyIDMyIDAgMSAxIC0zMi01NS40IDMyIDMyIDAgMSAxIDMyIDU1LjR6bTktMjA4LjRhMzIgMzIgMCAxIDEgMzIgNTUuNCAzMiAzMiAwIDEgMSAtMzItNTUuNHptLTEyMSAxNC40YTMyIDMyIDAgMSAxIC0zMi01NS40IDMyIDMyIDAgMSAxIDMyIDU1LjR6TTQxOCAxOTJMMzc3LjQgMzQzLjJjLTE3LjIgNjQtODMgMTAyLTE0NyA4NC45bC0zOC4zLTEwLjMgMCAzMC4yYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDQxOCAxOTJ6Il19LFBxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLXNsYXNoIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0LXNsYXNoIl0sImUwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTctNTcgMC0xOTAuM2MyNi44LTEuOSA0OC0yNC4zIDQ4LTUxLjYgMC04LTEuOS0xNi01LjUtMjMuMkw0OTcuNyA2Ny40QzQ4Ni44IDQ1LjcgNDY0LjcgMzIgNDQwLjQgMzJMMTM1LjYgMzJjLTEwLjcgMC0yMSAyLjctMzAuMiA3LjZMNDEtMjQuOXpNMzIxLjggMjU2TDQ0OCAyNTYgNDQ4IDM4Mi4yIDMyMS44IDI1NnpNMzUyIDQyMS44bC02NC02NCAwIDEwLjJjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTEyIDU4LjIgMC0xMzQuOC0xMzQuOC0yOS45IDU5LjljLTMuNiA3LjItNS41IDE1LjEtNS41IDIzLjIgMCAyNy4zIDIxLjIgNDkuNyA0OCA1MS42TDY0IDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEwLjJ6Il19LGJWcj1QcWUsTnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQtZG93biIsaWNvbjpbMzg0LDUxMixbInNvcnQtZGVzYyJdLCJmMGRkIiwiTTMyIDI4OGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzMzMuNSA5LjQgMzQyLjZsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzM2NC45IDI4OCAzNTIgMjg4TDMyIDI4OHoiXX0seFZyPU5xZSx2VnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVzZXRhLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUyMjEiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDEwNC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAyMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjODAuMiAwIDE0Ni42LTU5IDE1OC4yLTEzNmwyNS44IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI1LjggMEMzODYuNiA5MSAzMjAuMiAzMiAyNDAgMzJMMTEyIDMyek0zMzMgMTY4bC0xODkgMCAwLTcyIDk2IDBjNDQuNyAwIDgyLjMgMzAuNiA5MyA3MnpNMTQ0IDIxNmwxODkgMGMtMTAuNyA0MS40LTQ4LjIgNzItOTMgNzJsLTk2IDAgMC03MnoiXX0sT3FlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldC1zY3JlZW4tYnV0dG9uIixpY29uOls0NDgsNTEyLFsidGFibGV0LWFsdCJdLCJmM2ZhIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNMjU2IDQzMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zODQgNjRsLTMyMCAwIDAgMjg4IDMyMCAwIDAtMjg4eiJdfSx5VnI9T3FlLFJxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctZG9sbGFyIixpY29uOls1NzYsNTEyLFsiaGFuZC1ob2xkaW5nLXVzZCJdLCJmNGMwIiwiTTI4OC0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMi0xLjggMGMtMzYuNiAwLTY2LjIgMjkuNy02Ni4yIDY2LjIgMCAzMy40IDI0LjkgNjEuNiA1OCA2NS43bDYxIDcuNmM1LjEgLjYgOSA1IDkgMTAuMiAwIDUuNy00LjYgMTAuMi0xMC4yIDEwLjJMMjQwIDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhzMTIuNSAyOCAyOCAyOGwyNCAwIDAgMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEyIDEuOCAwYzM2LjYgMCA2Ni4yLTI5LjcgNjYuMi02Ni4yIDAtMzMuNC0yNC45LTYxLjYtNTgtNjUuN2wtNjEtNy42Yy01LjEtLjYtOS01LTktMTAuMiAwLTUuNyA0LjYtMTAuMiAxMC4yLTEwLjJMMzI4IDc2YzE1LjUgMCAyOC0xMi41IDI4LTI4cy0xMi41LTI4LTI4LTI4bC0xNiAwIDAtMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSx3VnI9UnFlLEZxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQiLGljb246WzUxMiw1MTIsWzEyODczNywic2hpZWxkLWJsYW5rIl0sImYxMzIiLCJNMjU2IDBjNC42IDAgOS4yIDEgMTMuNCAyLjlMNDU3LjggODIuOGMyMiA5LjMgMzguNCAzMSAzOC4zIDU3LjItLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yLTE2LjcgOC0zNi4xIDgtNTIuOCAwLTE3Mi40LTgyLjUtMjEzLjEtMjY0LTIxMy42LTM2My4yLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjkgMSAyNTEuNCAwIDI1NiAweiJdfSxrVnI9RnFlLEJxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoIixpY29uOls1MTIsNTEyLFsibGF1Z2giXSwiZjU5OSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTAxLjYgMzE0Yy0zLjctMTMuNyA3LjUtMjYgMjEuNy0yNmwyNjUuNCAwYzE0LjIgMCAyNS40IDEyLjMgMjEuNyAyNi0xOC41IDY4LTgwLjYgMTE4LTE1NC40IDExOFMxMjAgMzgyIDEwMS42IDMxNHpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxTVnI9QnFlLE1Wcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nIixpY29uOls2NDAsNTEyLFtdLCJmNGMyIiwiTTgwIDEwNGMwLTIyLjEtMTcuOS00MC00MC00MFMwIDgxLjkgMCAxMDRMMCAzMjUuNWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOUwxMjggNDkzLjNjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN2w2Ni43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC03OC45YzAtMjkuNy0xMS44LTU4LjItMzIuOC03OS4ybC0yNS4zLTI1LjMgMCAwYy03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjIgMTEgMTEgOS4yIDI5LjItMy43IDM3LjgtOS43IDYuNS0yMi43IDUuMi0zMS0zLjFMOTguNyAzMDkuNWMtMTItMTItMTguNy0yOC4zLTE4LjctNDUuM0w4MCAxMDR6bTQ4MCAwbDAgMTYwLjJjMCAxNy02LjcgMzMuMy0xOC43IDQ1LjNsLTUxLjEgNTEuMWMtOC4zIDguMy0yMS4zIDkuNi0zMSAzLjEtMTIuOS04LjYtMTQuNy0yNi45LTMuNy0zNy44IDcuMy03LjMgMjMuMS0yMy4xIDQ3LjItNDcuMiAxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGMtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjJsMCAwLTI1LjMgMjUuM2MtMjEgMjEtMzIuOCA0OS41LTMyLjggNzkuMmwwIDc4LjljMCAyNi41IDIxLjUgNDggNDggNDhsNjYuNyAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43bDk5LjktOTkuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45TDY0MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB6Il19LEhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LXNob3BwaW5nIixpY29uOls2NDAsNTEyLFsxMjg3MjIsInNob3BwaW5nLWNhcnQiXSwiZjA3YSIsIk0yNC0xNkMxMC43LTE2IDAtNS4zIDAgOFMxMC43IDMyIDI0IDMybDQ1LjMgMGMzLjkgMCA3LjIgMi44IDcuOSA2LjZsNTIuMSAyODYuM2M2LjIgMzQuMiAzNiA1OS4xIDcwLjggNTkuMUw0NTYgMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNTUuOSAwYy0xMS42IDAtMjEuNS04LjMtMjMuNi0xOS43bC01LjEtMjguMyAzMDMuNiAwYzMwLjggMCA1Ny4yLTIxLjkgNjIuOS01Mi4yTDU2OC45IDY5LjlDNTcyLjYgNTAuMiA1NTcuNSAzMiA1MzcuNCAzMmwtNDEyLjcgMC0uNC0yYy00LjgtMjYuNi0yOC00Ni01NS4xLTQ2TDI0LTE2ek0yMDggNTEyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjI0IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxDVnI9SHFlLHpWcj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvY3RhZ29uIixpY29uOls1MTIsNTEyLFsxMjg3MjFdLCJmMzA2IiwiTTE4OC42IC4xYy0xNyAwLTMzLjMgNi43LTQ1LjMgMTguN0wxOS4yIDE0M0M3LjIgMTU1IC41IDE3MS4yIC41IDE4OC4ybDAgMTM1LjZjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMMTQzLjQgNDkzLjJjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN2wxMzUuNiAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My42IDM2OWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zbDAtMTM1LjZjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzY5LjUgMTguOGMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wxODguNiAuMXoiXX0sX1ZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjI1YSIsIk0xMjggNDBjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDE0OC4yYzguNS03LjYgMTkuNy0xMi4yIDMyLTEyLjIgMjAuNiAwIDM4LjIgMTMgNDUgMzEuMiA4LjgtOS4zIDIxLjItMTUuMiAzNS0xNS4yIDI1LjMgMCA0NiAxOS41IDQ3LjkgNDQuMyA4LjUtNy43IDE5LjgtMTIuMyAzMi4xLTEyLjMgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMTJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTg1LjMgMGMtNSAwLTkuOS0uMy0xNC43LTEtNTUuMy01LjYtMTA2LjItMzQtMTQwLTc5TDggMzM2Yy0xMy4zLTE3LjctOS43LTQyLjcgOC01NnM0Mi43LTkuNyA1NiA4bDU2IDc0LjcgMC0zMjIuN3pNMjQwIDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2eiJdfSxUVnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVnaXN0ZXJlZCIsaWNvbjpbNTEyLDUxMixbMTc0XSwiZjI1ZCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDE0NGw4MCAwYzM5LjggMCA3MiAzMi4yIDcyIDcyIDAgMjguOS0xNyA1My44LTQxLjYgNjUuM2wzMC4yIDUwLjNjNi44IDExLjQgMy4xIDI2LjEtOC4yIDMyLjlzLTI2LjEgMy4xLTMyLjktOC4ybC00MS02OC4zLTM0LjQgMCAwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0em03MiA5Nmw4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDAgMCA0OCA0OCAweiJdfSxMVnI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2Utc2lnbmFsIixpY29uOls1NzYsNTEyLFtdLCJlMDEyIiwiTTUxNS45IDI0MGwtMTkuOSAwIDAgMTQ0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMzcgMGMtMjQtOTEuNy05My41LTE2NS0xODMtMTk0LjNsMC0xMy43LTE5LjkgMGMtMTUuNSAwLTI4LjEtMTIuNi0yOC4xLTI4LjEgMC03LjYgMy4xLTE0LjkgOC42LTIwLjJMMjc2LjUtNC45QzI4My45LTEyIDI5My43LTE2IDMwNC0xNnMyMC4xIDQgMjcuNSAxMS4xTDUzNS40IDE5MS43YzUuNSA1LjMgOC42IDEyLjYgOC42IDIwLjIgMCAxNS41LTEyLjYgMjguMS0yOC4xIDI4LjF6TTI4MCAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwek0yNCAyODhjMTI4LjEgMCAyMzIgMTAzLjkgMjMyIDIzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODQtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0wIDQwOGMwLTEzLjMgMTAuNy0yNCAyNC0yNCA3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OC0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sRFZyPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmdsYWRlc2hpLXRha2Etc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTJlNiIsIk0zNiAzMi4zQzE4LjQgMzAuMSAyLjQgNDIuNSAuMyA2MFMxMC41IDkzLjYgMjggOTUuOGw3LjkgMWMxNiAyIDI4IDE1LjYgMjggMzEuOGwwIDMxLjUtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgMTc2YzAgNTMgNDMgOTYgOTYgOTZsMzIgMGMxMDYgMCAxOTItODYgMTkyLTE5MmwwLTMyYzAtNTMtNDMtOTYtOTYtOTZsLTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE3NiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtMzEuNUMxMjggODAuMSA5MiAzOS4yIDQzLjkgMzMuMmwtNy45LTF6Il19LE5FYT17ZmEwOnE5cixmYTE6VjlyLGZhMjpqOXIsZmEzOlU5cixmYTQ6VzlyLGZhNTpHOXIsZmE2Olk5cixmYTc6SzlyLGZhODpaOXIsZmE5OlE5cixmYURvbGxhclNpZ246cHVlLGZhRG9sbGFyOlg5cixmYVVzZDpKOXIsZmFEb2c6ZWdyLGZhVHJ1Y2tNb3Zpbmc6dGdyLGZhUm90YXRlOkFQZSxmYVN5bmNBbHQ6cmdyLGZhU3F1YXJlTWludXM6RVBlLGZhTWludXNTcXVhcmU6YWdyLGZhQWxpZ25KdXN0aWZ5OmlncixmYUNhbGVuZGFyQ2hlY2s6c2dyLGZhRmFjZUtpc3M6SVBlLGZhS2lzczpuZ3IsZmFLaXRjaGVuU2V0Om9ncixmYURuYTpsZ3IsZmFDaGlsZFJlYWNoaW5nOmNncixmYVBhc3RlOmpfLGZhRmlsZUNsaXBib2FyZDpkZ3IsZmFNZXRlb3I6dWdyLGZhR2VhcnM6UFBlLGZhQ29nczpwZ3IsZmFGaWxlQ2lyY2xlUGx1czpmZ3IsZmFJY2ljbGVzOmhncixmYUFycm93VHJlbmRVcDptZ3IsZmFIZXhhZ29uTm9kZXNCb2x0OmdncixmYVF1ZXN0aW9uOmJncixmYUhhbmRzQm91bmQ6eGdyLGZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2U6dmdyLGZhRmlsZUFycm93RG93bjpOUGUsZmFGaWxlRG93bmxvYWQ6eWdyLGZhUGVyc29uQm9vdGg6d2dyLGZhTG9jdXN0OmtncixmYVJpZ2h0TG9uZzpPUGUsZmFMb25nQXJyb3dBbHRSaWdodDpTZ3IsZmFUcnVja0Ryb3BsZXQ6TWdyLGZhSGFuZEhvbGRpbmdNZWRpY2FsOkNncixmYUhhbmRQb2ludExlZnQ6emdyLGZhQ2FsY3VsYXRvcjpfZ3IsZmFNaW51czpVXyxmYVN1YnRyYWN0OlRncixmYUFycm93VXBaQTpSUGUsZmFTb3J0QWxwaGFVcEFsdDpMZ3IsZmFNaWNyb3Bob25lU2xhc2g6RGdyLGZhU3F1YXJlUGVuOmZ1ZSxmYVBlblNxdWFyZTokZ3IsZmFQZW5jaWxTcXVhcmU6QWdyLGZhSGFuZEZpc3Q6RlBlLGZhRmlzdFJhaXNlZDpFZ3IsZmFDb21tZW50U21zOkJQZSxmYVNtczpJZ3IsZmFTaW1DYXJkOlBncixmYVNjYWxlQmFsYW5jZWQ6SFBlLGZhQmFsYW5jZVNjYWxlOk5ncixmYUNhcjpxUGUsZmFBdXRvbW9iaWxlOk9ncixmYUNyb3BTaW1wbGU6VlBlLGZhQ3JvcEFsdDpSZ3IsZmFNZWRhbDpGZ3IsZmFTY3JvbGw6QmdyLGZhRmlsZUV4Y2VsOkhncixmYUZpbHRlcjpxZ3IsZmFEcnVtOlZncixmYU1hcFBpbjpqZ3IsZmFTY2FsZVVuYmFsYW5jZWRGbGlwOmpQZSxmYUJhbGFuY2VTY2FsZVJpZ2h0OlVncixmYUFycm93c1RvQ2lyY2xlOldncixmYUVudmVsb3BlOkdncixmYUJhYnk6WWdyLGZhU3F1YXJlQ2FyZXREb3duOlVQZSxmYUNhcmV0U3F1YXJlRG93bjpLZ3IsZmFUZW50OlpncixmYUE6UWdyLGZhUGFyYWNodXRlQm94OlhncixmYUNhcnRBcnJvd0Rvd246SmdyLGZhQnJpZGdlQ2lyY2xlRXhjbGFtYXRpb246ZWJyLGZhQ2xvdWRBcnJvd1VwOmh1ZSxmYUNsb3VkVXBsb2FkOnRicixmYUNsb3VkVXBsb2FkQWx0OnJicixmYUF0OmFicixmYUluZGlhblJ1cGVlU2lnbjptdWUsZmFJbmRpYW5SdXBlZTppYnIsZmFJbnI6c2JyLGZhVHJ1Y2s6bmJyLGZhQ2hhbGtib2FyZFVzZXI6V1BlLGZhQ2hhbGtib2FyZFRlYWNoZXI6b2JyLGZhVXNlckNoZWNrOmxicixmYVVzZXJOaW5qYTpjYnIsZmFQbGFudFdpbHQ6ZGJyLGZhV2VpZ2h0U2NhbGU6R1BlLGZhV2VpZ2h0OnVicixmYUNhcmV0UmlnaHQ6Y3BlLGZhRmxvcmluU2lnbjpwYnIsZmFCZWxsOmRwZSxmYUxhcmlTaWduOmZicixmYU1pbGxTaWduOmhicixmYVBlcnNvblNub3dib2FyZGluZzpZUGUsZmFTbm93Ym9hcmRpbmc6bWJyLGZhVHR5OktQZSxmYVRlbGV0eXBlOmdicixmYVVzZXJzUmVjdGFuZ2xlOmJicixmYU1vYmlsZTpndWUsZmFNb2JpbGVBbmRyb2lkOnhicixmYU1vYmlsZVBob25lOnZicixmYUFycm93c1R1cm5Ub0RvdHM6eWJyLGZhRXhjbGFtYXRpb246d2JyLGZhQ2h1cmNoOmticixmYVRvZ2dsZU9mZjpTYnIsZmFTaG9lUHJpbnRzOk1icixmYUZpbGVDaXJjbGVFeGNsYW1hdGlvbjpDYnIsZmFXYWxsZXQ6dXBlLGZhTWVzc2FnZTpXXyxmYUNvbW1lbnRBbHQ6emJyLGZhVHJvcGh5Ol9icixmYUZhY2VEaXp6eTpaUGUsZmFEaXp6eTpUYnIsZmFCYWN0ZXJpYTpMYnIsZmFFYXJEZWFmOlRfLGZhRGVhZjpEYnIsZmFEZWFmbmVzczokYnIsZmFIYXJkT2ZIZWFyaW5nOkFicixmYVBlb3BsZUFycm93czpRUGUsZmFQZW9wbGVBcnJvd3NMZWZ0UmlnaHQ6RWJyLGZhSGFuZHNDbGFwcGluZzpJYnIsZmFWaXJ1c0NvdmlkU2xhc2g6UGJyLGZhQ2FsZW5kYXJEYXlzOlhQZSxmYUNhbGVuZGFyQWx0Ok5icixmYURpYW1vbmRUdXJuUmlnaHQ6SlBlLGZhRGlyZWN0aW9uczpPYnIsZmFIYW5kUG9pbnRVcDpSYnIsZmFCZXppZXJDdXJ2ZTpGYnIsZmFQZXJzb25IYWxmRHJlc3M6QmJyLGZhU3F1YXJlUG9sbEhvcml6b250YWw6ZU5lLGZhUG9sbEg6SGJyLGZhU2Nob29sQ2lyY2xlWG1hcms6cWJyLGZhSGFuZExpemFyZDpWYnIsZmFDaGFsa2JvYXJkOnROZSxmYUJsYWNrYm9hcmQ6amJyLGZhVXBSaWdodEZyb21TcXVhcmU6ck5lLGZhRXh0ZXJuYWxMaW5rQWx0OlVicixmYVNxdWFyZUZ1bGw6V2JyLGZhQ2xvdmVyOkdicixmYVRlZXRoT3BlbjpZYnIsZmFCYXJzU3RhZ2dlcmVkOmJ1ZSxmYVJlb3JkZXI6S2JyLGZhU3RyZWFtOlpicixmYVdhcmVob3VzZTpRYnIsZmFTd2F0Y2hib29rOlhicixmYUNhbXBncm91bmQ6SmJyLGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQ6ZXhyLGZhR2xhc3Nlczp0eHIsZmFDaXJjbGVQYXVzZTphTmUsZmFQYXVzZUNpcmNsZTpyeHIsZmFNZW1vcnk6YXhyLGZhR2lmdDppeHIsZmFNb25leUJpbGxXaGVhdDpzeHIsZmFEdW5nZW9uOm54cixmYVN1aXRjYXNlTWVkaWNhbDppTmUsZmFNZWRraXQ6b3hyLGZhUGVyc29uQ2FuZTpseHIsZmFHYXVnZTpMXyxmYURhc2hib2FyZDpjeHIsZmFHYXVnZU1lZDpkeHIsZmFUYWNob21ldGVyQWx0QXZlcmFnZTp1eHIsZmFFbnZlbG9wZU9wZW5UZXh0OnB4cixmYVRvb2xib3g6ZnhyLGZhUG93ZXJPZmY6aHhyLGZhU2lnbmFsOnh1ZSxmYVNpZ25hbDU6bXhyLGZhU2lnbmFsUGVyZmVjdDpneHIsZmFBcnJvd3NTcGluOmJ4cixmYUpvaW50Onh4cixmYUJyYWlsbGU6dnhyLGZhQmFza2V0U2hvcHBpbmc6c05lLGZhU2hvcHBpbmdCYXNrZXQ6eXhyLGZhQnJpZGdlOnd4cixmYVBsYW5lQXJyaXZhbDpreHIsZmFDYXNoUmVnaXN0ZXI6U3hyLGZhUmluZzpNeHIsZmFBcXVhcml1czpDeHIsZmFTaGFyZU5vZGVzOm5OZSxmYVNoYXJlQWx0Onp4cixmYVBlcnNvbkNpcmNsZUV4Y2xhbWF0aW9uOl94cixmYUJpbm9jdWxhcnM6VHhyLGZhS2lwU2lnbjpMeHIsZmFIYXJkRHJpdmU6b05lLGZhSGRkOkR4cixmYVJhbmtpbmdTdGFyOiR4cixmYVVzZXJUaWU6QXhyLGZhRWxsaXBzaXM6bE5lLGZhRWxsaXBzaXNIOkV4cixmYVN0b3JlU2xhc2g6SXhyLGZhUGVyY2VudDpjTmUsZmFQZXJjZW50YWdlOlB4cixmYUZpbGVaaXBwZXI6ZE5lLGZhRmlsZUFyY2hpdmU6TnhyLGZhRGlzcGxheTpPeHIsZmFJY29uczp1TmUsZmFIZWFydE11c2ljQ2FtZXJhQm9sdDpSeHIsZmFSdWxlclZlcnRpY2FsOkZ4cixmYU1hcExvY2F0aW9uRG90OnBOZSxmYU1hcE1hcmtlZEFsdDpCeHIsZmFIZWFydENyYWNrOmZOZSxmYUhlYXJ0QnJva2VuOkh4cixmYUNvdzpxeHIsZmFSc3M6R18sZmFGZWVkOlZ4cixmYU1hZ25pZnlpbmdHbGFzczpZXyxmYVNlYXJjaDpqeHIsZmFDbG91ZE1vb246VXhyLGZhQm94ZXNTdGFja2VkOnZ1ZSxmYUJveGVzOld4cixmYUJveGVzQWx0Okd4cixmYUNvZGVCcmFuY2g6WXhyLGZhQmFuOmhOZSxmYUNhbmNlbDpLeHIsZmFKdWdEZXRlcmdlbnQ6WnhyLGZhUmVwbHk6bU5lLGZhTWFpbFJlcGx5OlF4cixmYVN1blBsYW50V2lsdDpYeHIsZmFCYWN0ZXJpdW06SnhyLGZhUmVjb3JkVmlueWw6ZXZyLGZhRmxvcHB5RGlzazpnTmUsZmFTYXZlOnR2cixmYVRvaWxldHNQb3J0YWJsZTpydnIsZmFPOmF2cixmYVBhbGV0dGU6aXZyLGZhVW5sb2NrOnN2cixmYUVhckxpc3RlbjpiTmUsZmFBc3Npc3RpdmVMaXN0ZW5pbmdTeXN0ZW1zOm52cixmYUNvZGVQdWxsUmVxdWVzdDpvdnIsZmFLZXk6bHZyLGZhU2t1bGw6Y3ZyLGZhTWFyc1N0cm9rZVVwOnhOZSxmYU1hcnNTdHJva2VWOmR2cixmYUZpcmVGbGFtZVNpbXBsZTp2TmUsZmFCdXJuOnV2cixmYVRyZWU6cHZyLGZhU21vZzpmdnIsZmFTOmh2cixmYUplZGk6bXZyLGZhUGVyc29uSGlraW5nOnlOZSxmYUhpa2luZzpndnIsZmFBcnJvd3NVcFRvTGluZTpidnIsZmFNYXJzRG91YmxlOnh2cixmYVRoZXJtb21ldGVyOnZ2cixmYVBhaW50YnJ1c2g6d05lLGZhUGFpbnRCcnVzaDp5dnIsZmFOZXV0ZXI6d3ZyLGZhU3F1YXJlUGhvbmVGbGlwOmtOZSxmYVBob25lU3F1YXJlQWx0Omt2cixmYUZhY2VHcmluVG9uZ3VlU3F1aW50OlNOZSxmYUdyaW5Ub25ndWVTcXVpbnQ6U3ZyLGZhQ29tbWVudERvbGxhcjpNdnIsZmFIaXBwbzpDdnIsZmFCb3dsRm9vZDp6dnIsZmFTcXVhcmVWaXJ1czpfdnIsZmFDbG91ZFN1blJhaW46VHZyLGZhQXJyb3dSaWdodExvbmc6TU5lLGZhTG9uZ0Fycm93UmlnaHQ6THZyLGZhQnVpbGRpbmdVbjpEdnIsZmFUZW1wZXJhdHVyZUxvdzokdnIsZmFEb29yT3BlbjpBdnIsZmFBbGlnbkxlZnQ6RXZyLGZhQ2FtZXJhOkNOZSxmYUNhbWVyYUFsdDpJdnIsZmFVc2Vyc1JheXM6UHZyLGZhUmFpbmJvdzpOdnIsZmFTaXRlbWFwOk92cixmYUZhY2VHcmluU3RhcnM6ek5lLGZhR3JpblN0YXJzOlJ2cixmYVNvcnRVcDpfTmUsZmFTb3J0QXNjOkZ2cixmYUV5ZTpwcGUsZmFDYXJldExlZnQ6ZnBlLGZhQXBwbGVXaG9sZTpUTmUsZmFBcHBsZUFsdDpCdnIsZmFTY3JvbGxUb3JhaDpMTmUsZmFUb3JhaDpIdnIsZmFIb3VzZUxvY2s6cXZyLGZhQXJyb3dzTGVmdFJpZ2h0VG9MaW5lOlZ2cixmYVRyYXNoOm5ULGZhRmFjZVNhZFRlYXI6RE5lLGZhU2FkVGVhcjpqdnIsZmFGYXg6VXZyLGZhUGVyc29uQ2lyY2xlUGx1czpXdnIsZmFIYW1zYTpHdnIsZmFQZXJzb25DaXJjbGVRdWVzdGlvbjpZdnIsZmFDbGlwYm9hcmRDaGVjazpLdnIsZmFTaGFyZUZyb21TcXVhcmU6JE5lLGZhU2hhcmVTcXVhcmU6WnZyLGZhUmVjZWlwdDpocGUsZmFFcXVhbHM6UXZyLGZhQ2hldnJvblVwOlh2cixmYVZpcnVzU2xhc2g6SnZyLGZhU2xhc2g6ZXlyLGZhRXhwYW5kOnR5cixmYU5vdGVTdGlja3k6QU5lLGZhU3RpY2t5Tm90ZTpyeXIsZmFUYWJsZUNvbHVtbnM6RU5lLGZhQ29sdW1uczpheXIsZmFQZXJzb25TaGVsdGVyOml5cixmYUNpcmNsZU5vdGNoOnN5cixmYVdhdGVyOm55cixmYURlbGV0ZUxlZnQ6SU5lLGZhQmFja3NwYWNlOm95cixmYUJyb29tQmFsbDp5dWUsZmFRdWlkZGl0Y2g6bHlyLGZhUXVpZGRpdGNoQnJvb21CYWxsOmN5cixmYUo6ZHlyLGZhU2h1dHRsZVNwYWNlOlBOZSxmYVNwYWNlU2h1dHRsZTp1eXIsZmFZaW5ZYW5nOnB5cixmYVN0b3A6ZnlyLGZhVHJvd2VsOmh5cixmYUhhbmRCYWNrRmlzdDpOTmUsZmFIYW5kUm9jazpteXIsZmFUZW1wZXJhdHVyZUhpZ2g6Z3lyLGZhR3JlYXRlclRoYW46YnlyLGZhQ3J1dGNoOnh5cixmYVNlcHRhZ29uOk9OZSxmYUhlcHRhZ29uOnZ5cixmYVN0cmVldFZpZXc6eXlyLGZhV2F2ZVNxdWFyZTp3eXIsZmFBbmdsZUxlZnQ6a3lyLGZhU2NyZXdkcml2ZXI6U3lyLGZhVHJhY3RvcjpNeXIsZmFCcmlkZ2VDaXJjbGVYbWFyazpDeXIsZmFWaWFsczp6eXIsZmFTdGV0aG9zY29wZTpfeXIsZmFQb2RjYXN0OlR5cixmYUFycm93VXBSaWdodERvdHM6THlyLGZhQ2hlc3NRdWVlbjpEeXIsZmFBbmNob3JDaXJjbGVFeGNsYW1hdGlvbjokeXIsZmFFbGxpcHNpc1ZlcnRpY2FsOlJOZSxmYUVsbGlwc2lzVjpBeXIsZmFIZWFydENpcmNsZUV4Y2xhbWF0aW9uOkV5cixmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb246SXlyLGZhUGVyc29uQXJyb3dVcEZyb21MaW5lOlB5cixmYU5vdEVxdWFsOk55cixmYVRyYWluVHJhbTpPeXIsZmFQbGFuZURlcGFydHVyZTpSeXIsZmFSaWdodFRvQnJhY2tldDpGTmUsZmFTaWduSW5BbHQ6RnlyLGZhU2RDYXJkOkJ5cixmYUhvdXNlQ2lyY2xlRXhjbGFtYXRpb246SHlyLGZhU2hla2VsU2lnbjpfeSxmYUlsczpxeXIsZmFTaGVrZWw6VnlyLGZhU2hlcWVsOmp5cixmYVNoZXFlbFNpZ246VXlyLGZhUmFkaW86V3lyLGZhSGFuZERvdHM6Qk5lLGZhQWxsZXJnaWVzOkd5cixmYUJvb2tTa3VsbDpITmUsZmFCb29rRGVhZDpZeXIsZmFVbmxvY2tLZXlob2xlOnFOZSxmYVVubG9ja0FsdDpLeXIsZmFGaWxlQXJyb3dVcDpWTmUsZmFGaWxlVXBsb2FkOlp5cixmYUZhY2VHcmluVGVhcnM6ak5lLGZhR3JpblRlYXJzOlF5cixmYVBlblRvU3F1YXJlOktfLGZhRWRpdDpYeXIsZmFFYXJ0aEV1cm9wZTpVTmUsZmFHbG9iZUV1cm9wZTpKeXIsZmFGYWNlR3JpbkJlYW1Td2VhdDpXTmUsZmFHcmluQmVhbVN3ZWF0OmV3cixmYUNpcmNsZUhhbGZTdHJva2U6R05lLGZhQWRqdXN0OnR3cixmYVBlcnNvbk1pbGl0YXJ5VG9QZXJzb246cndyLGZhVGFibGVDZWxsc0NvbHVtbkxvY2s6YXdyLGZhVHJ1Y2tGaWVsZFVuOml3cixmYUNsb2NrOllOZSxmYUNsb2NrRm91cjpzd3IsZmFCb29rOm53cixmYUZhY2VMYXVnaFdpbms6S05lLGZhTGF1Z2hXaW5rOm93cixmYUNsb3VkTWVhdGJhbGw6bHdyLGZhQ2hhcnRBcmVhOlpOZSxmYUFyZWFDaGFydDpjd3IsZmFSdXBpYWhTaWduOmR3cixmYVRleHRXaWR0aDp1d3IsZmFTYXRlbGxpdGU6cHdyLGZhTWFnbmlmeWluZ0dsYXNzTWludXM6UU5lLGZhU2VhcmNoTWludXM6ZndyLGZhUGVvcGxlR3JvdXA6aHdyLGZhU3F1YXJlQmluYXJ5Om13cixmYU1hc2tzVGhlYXRlcjpYTmUsZmFUaGVhdGVyTWFza3M6Z3dyLGZhQ2FydFBsdXM6YndyLGZhSGFuZHNBc2xJbnRlcnByZXRpbmc6RF8sZmFBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZzp4d3IsZmFBc2xJbnRlcnByZXRpbmc6dndyLGZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZzp5d3IsZmFUYWJsZUNlbGxzUm93VW5sb2NrOnd3cixmYVJvY2tldDprd3IsZmFTaHJpbXA6U3dyLGZhVGVuZ2VTaWduOkpOZSxmYVRlbmdlOk13cixmYUhvdXNlQ2hpbW5leU1lZGljYWw6ZU9lLGZhQ2xpbmljTWVkaWNhbDpDd3IsZmFVc2Vyc1NsYXNoOnp3cixmYVBhcGVyUGxhbmU6X3dyLGZhQm9va0F0bGFzOnRPZSxmYUF0bGFzOlR3cixmYVRhYmxlOkx3cixmYUhlYXJ0OkR3cixmYUNpcmNsZUNoZXZyb25VcDpyT2UsZmFDaGV2cm9uQ2lyY2xlVXA6JHdyLGZhQmF0dGVyeUhhbGY6YU9lLGZhQmF0dGVyeTM6QXdyLGZhRm9udEF3ZXNvbWU6d3VlLGZhRm9udEF3ZXNvbWVGbGFnOkV3cixmYUZvbnRBd2Vzb21lTG9nb0Z1bGw6SXdyLGZhSGFuZGN1ZmZzOlB3cixmYUhhdENvd2JveVNpZGU6TndyLGZhSW5kdXN0cnk6T3dyLGZhTGluZXNMZWFuaW5nOlJ3cixmYVBhc3Nwb3J0OkZ3cixmYUluZmluaXR5OkJ3cixmYUNsb25lOkh3cixmYUZvcndhcmQ6cXdyLGZhTTpWd3IsZmFSb2FkU3Bpa2VzOmp3cixmYU1vdW50YWluOlV3cixmYUNoZXNzOld3cixmYVRlbXBlcmF0dXJlVGhyZWVRdWFydGVyczokXyxmYVRlbXBlcmF0dXJlMzpHd3IsZmFUaGVybW9tZXRlcjM6WXdyLGZhVGhlcm1vbWV0ZXJUaHJlZVF1YXJ0ZXJzOkt3cixmYUI6WndyLGZhU2hpZWxkVmlydXM6UXdyLGZhTGl0ZWNvaW5TaWduOlh3cixmYURpY2VENjpKd3IsZmFHcmlwTGluZXNWZXJ0aWNhbDpla3IsZmFHb2xmQmFsbFRlZTppT2UsZmFHb2xmQmFsbDp0a3IsZmFIZXhhZ29uOnJrcixmYUZvbGRlck9wZW46YWtyLGZhS2FhYmE6aWtyLGZhSGFuZEhvbGRpbmc6c2tyLGZhU2luZ2xlUXVvdGVSaWdodDpua3IsZmFCb3R0bGVEcm9wbGV0Om9rcixmYVdpbmRvd01pbmltaXplOmxrcixmYUNoZXZyb25SaWdodDpja3IsZmFFZ2c6ZGtyLGZhTGFuZG1hcmtEb21lOnNPZSxmYUxhbmRtYXJrQWx0OnVrcixmYVdvcm06cGtyLGZhVXNlckluanVyZWQ6ZmtyLGZhU3RyaWtldGhyb3VnaDpoa3IsZmFCbG9nOm1rcixmYVN0b3B3YXRjaDIwOmdrcixmYVRydWNrUGlja3VwOmJrcixmYVNlZWRsaW5nOm5PZSxmYVNwcm91dDp4a3IsZmFUcmFuc2dlbmRlcjpvT2UsZmFUcmFuc2dlbmRlckFsdDp2a3IsZmFTdGFySGFsZjp5a3IsZmFQaG90b0ZpbG06bE9lLGZhUGhvdG9WaWRlbzp3a3IsZmFQaWN0dXJlSW5QaWN0dXJlOmtrcixmYVB1bXBNZWRpY2FsOlNrcixmYUZpcmU6TWtyLGZhTWFnbmlmeWluZ0dsYXNzUGx1czpjT2UsZmFTZWFyY2hQbHVzOkNrcixmYUZsYXNrOnprcixmYUFsaWduUmlnaHQ6X2tyLGZhQ2FibGVDYXI6ZE9lLGZhVHJhbTpUa3IsZmFLaXRNZWRpY2FsOnVPZSxmYUZpcnN0QWlkOkxrcixmYUdyaXBMaW5lczpEa3IsZmFCdXJnZXI6cE9lLGZhSGFtYnVyZ2VyOiRrcixmYVNub3dtYW46QWtyLGZhSG90ZWw6RWtyLGZhUHJpbnQ6SWtyLGZhVm9sbGV5YmFsbDpmT2UsZmFWb2xsZXliYWxsQmFsbDpQa3IsZmFUcmFmZmljTGlnaHQ6TmtyLGZhUGxhbmVDaXJjbGVDaGVjazpPa3IsZmFVc2VyczptcGUsZmFDZXJ0aWZpY2F0ZTpSa3IsZmFBbGFybUNsb2NrOkZrcixmYUhlbGljb3B0ZXJTeW1ib2w6QmtyLGZhSG91c2VDaGltbmV5Q3JhY2s6aE9lLGZhSG91c2VEYW1hZ2U6SGtyLGZhUGVyc29uTWlsaXRhcnlQb2ludGluZzpxa3IsZmFEYXRhYmFzZTpWa3IsZmFOZXdzcGFwZXI6amtyLGZhQ2xvdWRSYWluOlVrcixmYU1heGltaXplOm1PZSxmYUV4cGFuZEFycm93c0FsdDpXa3IsZmFMb2NhdGlvbkFycm93OkdrcixmYUNpdHk6WWtyLGZhWFJheTpLa3IsZmFVbWJyZWxsYUJlYWNoOlprcixmYUFycm93UmlnaHRUb0JyYWNrZXQ6Z09lLGZhU2lnbkluOlFrcixmYUhlYWRzZXQ6WGtyLGZhU3Bsb3RjaDpKa3IsZmFVcExvbmc6Yk9lLGZhTG9uZ0Fycm93QWx0VXA6ZVNyLGZhSGV4YWdvbk5vZGVzOnRTcixmYUhvc3BpdGFsOmt1ZSxmYUhvc3BpdGFsQWx0OnJTcixmYUhvc3BpdGFsV2lkZTphU3IsZmFQZXJzb25IYXJhc3Npbmc6aVNyLGZhTW9uZXlCaWxsVHJlbmRVcDpzU3IsZmFQZW5SdWxlcjp4T2UsZmFQZW5jaWxSdWxlcjpuU3IsZmFSZXBlYXQ6b1NyLGZhQm9uZTpsU3IsZmFGaXJlRmxhbWVDdXJ2ZWQ6dk9lLGZhRmlyZUFsdDpjU3IsZmFCdXNTaW1wbGU6eU9lLGZhQnVzQWx0OmRTcixmYVZlbnVzTWFyczp1U3IsZmFCbGVuZGVyOnBTcixmYVU6ZlNyLGZhU2hhcmU6Wl8sZmFNYWlsRm9yd2FyZDpoU3IsZmFQaG9uZUZsaXA6d09lLGZhUGhvbmVBbHQ6bVNyLGZhVG9pbGV0UG9ydGFibGU6Z1NyLGZhUGVyc29uUHJlZ25hbnQ6YlNyLGZhTGVzc1RoYW46eFNyLGZhU3VwZXJzY3JpcHQ6dlNyLGZhQ2lyY2xlU3RvcDprT2UsZmFTdG9wQ2lyY2xlOnlTcixmYUFycm93c1VwRG93bjpTT2UsZmFBcnJvd3NWOndTcixmYVBvb1N0b3JtOk1PZSxmYVBvb0JvbHQ6a1NyLGZhVmlkZW9TbGFzaDpTU3IsZmFTcXVhcmVYbWFyazpTdWUsZmFUaW1lc1NxdWFyZTpNU3IsZmFYbWFya1NxdWFyZTpDU3IsZmFIYW5kSG9sZGluZ0Ryb3BsZXQ6Q09lLGZhSGFuZEhvbGRpbmdXYXRlcjp6U3IsZmFXb25TaWduOk11ZSxmYUtydzpfU3IsZmFXb246VFNyLGZhT2JqZWN0VW5ncm91cDpMU3IsZmFDb21tZW50OkRTcixmYUhpbGxBdmFsYW5jaGU6JFNyLGZhQXJyb3dzVG9FeWU6QVNyLGZhU25vd3Bsb3c6RVNyLGZhQ2hhcnRHYW50dDpJU3IsZmFWaWRlbzp6T2UsZmFWaWRlb0NhbWVyYTpQU3IsZmFDaGVzc1Bhd246TlNyLGZhU3luYWdvZ3VlOk9TcixmYUJ1aWxkaW5nQ2lyY2xlQ2hlY2s6UlNyLGZhQ2FsZW5kYXJQbHVzOkZTcixmYVdoZWVsY2hhaXJNb3ZlOl9PZSxmYVdoZWVsY2hhaXJBbHQ6QlNyLGZhVXNlclNoaWVsZDpIU3IsZmFCb2xkOnFTcixmYUhlYXJ0UHVsc2U6VE9lLGZhSGVhcnRiZWF0OlZTcixmYVNxdWFyZVJvb3RWYXJpYWJsZTpMT2UsZmFTcXVhcmVSb290QWx0OmpTcixmYUhhbmRzQnViYmxlczpET2UsZmFIYW5kc1dhc2g6VVNyLGZhTWFya2VyOldTcixmYUNsaXBib2FyZDpHU3IsZmFQbGFjZU9mV29yc2hpcDpZU3IsZmFDYW5uYWJpczpLU3IsZmFQZW9wbGVSb29mOlpTcixmYURpc2Vhc2U6UVNyLGZhQm9va0JpYmxlOiRPZSxmYUJpYmxlOlhTcixmYUNoZXNzQm9hcmQ6SlNyLGZhTWFyczplTXIsZmFMYXB0b3A6dE1yLGZhVXNlclhtYXJrOkFPZSxmYVVzZXJUaW1lczpyTXIsZmFGbGFnVXNhOmFNcixmYUhhbmRNaWRkbGVGaW5nZXI6aU1yLGZhTW9ydGFyUGVzdGxlOnNNcixmYUhlYWRTaWRlQ291Z2g6bk1yLGZhUGxhbmVMb2NrOm9NcixmYUJhdHRlcnlUaHJlZVF1YXJ0ZXJzOkVPZSxmYUJhdHRlcnk0OmxNcixmYUZyYW5jU2lnbjpjTXIsZmFGaWx0ZXJDaXJjbGVEb2xsYXI6SU9lLGZhRnVubmVsRG9sbGFyOmRNcixmYUNoZWVzZTp1TXIsZmFDaXJjbGVIOlBPZSxmYUhvc3BpdGFsU3ltYm9sOnBNcixmYVNjaG9vbDpmTXIsZmFEaWNlRml2ZTpoTXIsZmFUb3JuYWRvOm1NcixmYUpldEZpZ2h0ZXI6Tk9lLGZhRmlnaHRlckpldDpnTXIsZmFUaHVtYnNEb3duOmJNcixmYUJyb29tOnhNcixmYUZpbGVJbXBvcnQ6T09lLGZhQXJyb3dSaWdodFRvRmlsZTp2TXIsZmFVdGVuc2lsczpST2UsZmFDdXRsZXJ5OnlNcixmYUlkQmFkZ2U6d01yLGZhU3BpZGVyOmtNcixmYU1vYmlsZVJldHJvOlNNcixmYVNpZ25zUG9zdDpGT2UsZmFNYXBTaWduczpNTXIsZmFHcm91cEFycm93c1JvdGF0ZTpDTXIsZmFBcnJvd3NTcGxpdFVwQW5kTGVmdDp6TXIsZmFGaWxsRHJpcDpfTXIsZmFTaGllbGRIZWFydDpUTXIsZmFQZXJzb25Ta2lpbmdOb3JkaWM6Qk9lLGZhU2tpaW5nTm9yZGljOkxNcixmYVNxdWFyZUNoZWNrOkhPZSxmYUNoZWNrU3F1YXJlOkRNcixmYUJhdGg6cU9lLGZhQmF0aHR1YjokTXIsZmFDaGVzc0Jpc2hvcDpBTXIsZmFQcmVzY3JpcHRpb25Cb3R0bGVNZWRpY2FsOlZPZSxmYVByZXNjcmlwdGlvbkJvdHRsZUFsdDpFTXIsZmFEcmF3UG9seWdvbjpqT2UsZmFWZWN0b3JQb2x5Z29uOklNcixmYUlDdXJzb3I6UE1yLGZhSGVhcnRDaXJjbGVQbHVzOk5NcixmYVNoaWVsZERvZzpPTXIsZmFHcmVhdGVyVGhhbkVxdWFsOlJNcixmYUVudmVsb3BlT3BlbjpGTXIsZmFNb3VuZDpCTXIsZmFWb2ljZW1haWw6SE1yLGZhVmVzdDpxTXIsZmFBdWRpb0Rlc2NyaXB0aW9uOlZNcixmYVc6ak1yLGZhRXllRHJvcHBlcjpDdWUsZmFFeWVEcm9wcGVyRW1wdHk6VU1yLGZhRXllZHJvcHBlcjpXTXIsZmFDaXJjbGVYbWFyazokeSxmYVRpbWVzQ2lyY2xlOkdNcixmYVhtYXJrQ2lyY2xlOllNcixmYVRyYWlsZXI6S01yLGZhVHVya2lzaExpcmFTaWduOnp1ZSxmYVRyeTpaTXIsZmFUdXJraXNoTGlyYTpRTXIsZmFWb2xjYW5vOlhNcixmYVdhbmRTcGFya2xlczpKTXIsZmFNaWNyb3Bob25lOmVDcixmYUNyb3duOnRDcixmYVRlbnRBcnJvd1R1cm5MZWZ0OnJDcixmYVRydWNrRmFzdDpVT2UsZmFTaGlwcGluZ0Zhc3Q6YUNyLGZhVXNlclBlbjpXT2UsZmFVc2VyRWRpdDppQ3IsZmFVc2VyQ2xvY2s6c0NyLGZhU2hvd2VyOm5DcixmYVNxdWFyZUNhcmV0VXA6R09lLGZhQ2FyZXRTcXVhcmVVcDpvQ3IsZmFNYXBMb2NhdGlvbjpZT2UsZmFNYXBNYXJrZWQ6bENyLGZhUGVuRmFuY3k6Y0NyLGZhRXVyb1NpZ246X3VlLGZhRXVyOmRDcixmYUV1cm86dUNyLGZhSG91c2VDaXJjbGVYbWFyazpwQ3IsZmFMaXJhU2lnbjpmQ3IsZmFZZW5TaWduOlR5LGZhQ255OmhDcixmYUpweTptQ3IsZmFSbWI6Z0NyLGZhWWVuOmJDcixmYUJveE9wZW46eENyLGZhVHJ1Y2tGaWVsZDp2Q3IsZmFMb2NhdGlvblBpbkxvY2s6eUNyLGZhUGVyc29uUHJheWluZzpLT2UsZmFQcmF5OndDcixmYUNsaXBib2FyZExpc3Q6a0NyLGZhU2Fja0RvbGxhcjpTQ3IsZmFNb3VudGFpblN1bjpNQ3IsZmFBcnJvd1VwV2lkZVNob3J0OlpPZSxmYVNvcnRBbW91bnRVcDpDQ3IsZmFVc2Vyc0xpbmU6ekNyLGZhU3Rhck9mRGF2aWQ6X0NyLGZhTm90ZXNNZWRpY2FsOlRDcixmYUF1c3RyYWxTaWduOkxDcixmYUNsaXBib2FyZFVzZXI6RENyLGZhRmlsZUltYWdlOiRDcixmYVNxdWFyZUNhcmV0UmlnaHQ6UU9lLGZhQ2FyZXRTcXVhcmVSaWdodDpBQ3IsZmFWaWFsOkVDcixmYUhlbGljb3B0ZXI6SUNyLGZhTWl0dGVuOlBDcixmYUdhc1B1bXA6TkNyLGZhRW52ZWxvcGVDaXJjbGVDaGVjazpPQ3IsZmFQZXJzb25Ta2F0aW5nOlhPZSxmYVNrYXRpbmc6UkNyLGZhU3VuOmdwZSxmYUJhc2ViYWxsOkpPZSxmYUJhc2ViYWxsQmFsbDpGQ3IsZmFJbWFnZTpCQ3IsZmFOb3RkZWY6SENyLGZhQmFza2V0YmFsbDplUmUsZmFCYXNrZXRiYWxsQmFsbDpxQ3IsZmFQZW5jaWw6dFJlLGZhUGVuY2lsQWx0OlZDcixmYVBlcnNvbldhbGtpbmdBcnJvd0xvb3BMZWZ0OmpDcixmYURpY2VTaXg6VUNyLGZhQW5nbGVzRG93bjpyUmUsZmFBbmdsZURvdWJsZURvd246V0NyLGZhU3lyaW5nZTpHQ3IsZmFXaGVhdEF3bjphUmUsZmFXaGVhdEFsdDpZQ3IsZmFQbGFuZVVwOktDcixmYUFsaWduQ2VudGVyOlpDcixmYUhvY2tleVB1Y2s6UUNyLGZhQ2lyY2xlQXJyb3dMZWZ0OmlSZSxmYUFycm93Q2lyY2xlTGVmdDpYQ3IsZmFQbHVnQ2lyY2xlQm9sdDpKQ3IsZmFSZXN0cm9vbTplenIsZmFBbmNob3JMb2NrOnR6cixmYVRpbWVsaW5lOnJ6cixmYUxpZ2h0YnVsYjphenIsZmFDaXJjbGVBcnJvd1JpZ2h0OnNSZSxmYUFycm93Q2lyY2xlUmlnaHQ6aXpyLGZhTWFyc0FuZFZlbnVzOnN6cixmYU5ldHdvcmtXaXJlZDpicGUsZmFCdWlsZGluZ1NoaWVsZDpuenIsZmFDb2RlOm96cixmYUZlYXRoZXJQb2ludGVkOm5SZSxmYUZlYXRoZXJBbHQ6bHpyLGZhRmlsZUNpcmNsZVF1ZXN0aW9uOmN6cixmYVNpZ25hdHVyZTpkenIsZmFFYXJ0aEFtZXJpY2FzOkFfLGZhRWFydGg6dXpyLGZhRWFydGhBbWVyaWNhOnB6cixmYUdsb2JlQW1lcmljYXM6ZnpyLGZhQ2Fycm90Omh6cixmYVRlbXBlcmF0dXJlRnVsbDpFXyxmYVRlbXBlcmF0dXJlNDptenIsZmFUaGVybW9tZXRlcjQ6Z3pyLGZhVGhlcm1vbWV0ZXJGdWxsOmJ6cixmYVRhYmxlQ2VsbHNSb3dMb2NrOnh6cixmYUJvbHRMaWdodG5pbmc6dnpyLGZhQ2xvdWRTaG93ZXJzV2F0ZXI6eXpyLGZhQXJyb3dVcExvbmc6b1JlLGZhTG9uZ0Fycm93VXA6d3pyLGZhQWRkcmVzc0NhcmQ6VHVlLGZhQ29udGFjdENhcmQ6a3pyLGZhVmNhcmQ6U3pyLGZhQW5nbGVSaWdodDpNenIsZmFGYWNlTWVoOmxSZSxmYU1laDpDenIsZmFBcnJvd1VwRnJvbUdyb3VuZFdhdGVyOnp6cixmYU1hcDpfenIsZmFVc2VyUGx1czpUenIsZmFWZW51czpMenIsZmFEaWFncmFtU3VjY2Vzc29yOkR6cixmYUhlYWRTaWRlQ291Z2hTbGFzaDokenIsZmFEaWFncmFtUHJvamVjdDpjUmUsZmFQcm9qZWN0RGlhZ3JhbTpBenIsZmFUZXJtaW5hbDp4cGUsZmFIb3VzZUZpcmU6RXpyLGZhTWFzazpJenIsZmFIdXJyaWNhbmU6UHpyLGZhRWFydGhBZnJpY2E6ZFJlLGZhR2xvYmVBZnJpY2E6TnpyLGZhVGh1bWJ0YWNrOnVSZSxmYVRodW1iVGFjazpPenIsZmFIYW5kUG9pbnREb3duOlJ6cixmYUZhY2VNZWhCbGFuazpwUmUsZmFNZWhCbGFuazpGenIsZmFUZW1wZXJhdHVyZUVtcHR5OklfLGZhVGVtcGVyYXR1cmUwOkJ6cixmYVRoZXJtb21ldGVyMDpIenIsZmFUaGVybW9tZXRlckVtcHR5OnF6cixmYUJvcmRlck5vbmU6VnpyLGZhSGlnaGxpZ2h0ZXI6anpyLGZhTW9uZXlCaWxsV2F2ZTpVenIsZmFUb2lsZXRQYXBlclNsYXNoOld6cixmYUZpbGVTaGllbGQ6R3pyLGZhVGV4dEhlaWdodDpZenIsZmFGYWNlR3JpblRvbmd1ZTpmUmUsZmFHcmluVG9uZ3VlOkt6cixmYUZpbGVTaWduYXR1cmU6WnpyLGZhQnVpbGRpbmdXaGVhdDpRenIsZmFQbHVnQ2lyY2xlTWludXM6WHpyLGZhRnV0Ym9sOkx1ZSxmYUZ1dGJvbEJhbGw6SnpyLGZhU29jY2VyQmFsbDplX3IsZmFDaXJjbGVQbHVzOmhSZSxmYVBsdXNDaXJjbGU6dF9yLGZhQnJhemlsaWFuUmVhbFNpZ246cl9yLGZhU3RhckFuZENyZXNjZW50OmFfcixmYUZhY2VTdXJwcmlzZTptUmUsZmFTdXJwcmlzZTppX3IsZmFIb3NwaXRhbFVzZXI6c19yLGZhQXJyb3dEb3duVXBMb2NrOm5fcixmYUZvbGRlcjpnUmUsZmFGb2xkZXJCbGFuazpvX3IsZmFIb2xseUJlcnJ5OmxfcixmYVZlbnVzRG91YmxlOmNfcixmYUNsaXBib2FyZFF1ZXN0aW9uOmRfcixmYUhvdGRvZzp1X3IsZmFBcnJvd1VwRnJvbUJyYWNrZXQ6cF9yLGZhTWljcm9zY29wZTpmX3IsZmFDbG91ZDpoX3IsZmFCYXNlYmFsbEJhdEJhbGw6bV9yLGZhQ2FyUmVhcjpiUmUsZmFDYXJBbHQ6Z19yLGZhVGh1bWJ0YWNrU2xhc2g6eFJlLGZhVGh1bWJUYWNrU2xhc2g6Yl9yLGZhUGx1c01pbnVzOnhfcixmYUhvdXNlQ2lyY2xlQ2hlY2s6dl9yLGZhQ2FsZW5kYXJEYXk6eV9yLGZhTGlicmE6d19yLGZhQ2lyY2xlOmtfcixmYU1vYmlsZVZpYnJhdGU6U19yLGZhRmFjZUdyaW5TcXVpbnQ6dlJlLGZhR3JpblNxdWludDpNX3IsZmFVc2Vyc0JldHdlZW5MaW5lczpDX3IsZmFIb3VzZU1lZGljYWxDaXJjbGVYbWFyazp6X3IsZmFUYWJsZUxpc3Q6eVJlLGZhVGhMaXN0Ol9fcixmYUZsYXNrVmlhbDpUX3IsZmFDaXJjbGVFeGNsYW1hdGlvbjp3UmUsZmFFeGNsYW1hdGlvbkNpcmNsZTpMX3IsZmFUYXhpOmtSZSxmYUNhYjpEX3IsZmFUZXh0U2xhc2g6U1JlLGZhUmVtb3ZlRm9ybWF0OiRfcixmYVBlb3BsZVB1bGxpbmc6QV9yLGZhQmFja3dhcmQ6RV9yLGZhQ2FyQnVyc3Q6TVJlLGZhQ2FyQ3Jhc2g6SV9yLGZhTGluazpDUmUsZmFDaGFpbjpQX3IsZmFCYWNrd2FyZFN0ZXA6elJlLGZhU3RlcEJhY2t3YXJkOk5fcixmYVg6T19yLGZhQ2lyY2xlVXNlcjpfUmUsZmFVc2VyQ2lyY2xlOlJfcixmYVJlY3RhbmdsZUxpc3Q6VFJlLGZhTGlzdEFsdDpGX3IsZmFIYW5kOkxSZSxmYUhhbmRQYXBlcjpCX3IsZmFDYW5jZXI6SF9yLGZhVmFuU2h1dHRsZTpEUmUsZmFTaHV0dGxlVmFuOnFfcixmYVN0YWlyczpWX3IsZmFIb3JzZUhlYWQ6al9yLGZhVmF1bHQ6VV9yLGZhQ2xvc2VkQ2FwdGlvbmluZ1NsYXNoOldfcixmYURydW1TdGVlbHBhbjpHX3IsZmFUaHVtYnNVcDpZX3IsZmFTdGFtcDpLX3IsZmFNZW5vcmFoOlpfcixmYUNoaWxkcmVuOlFfcixmYUNoYXJ0TGluZTokUmUsZmFMaW5lQ2hhcnQ6WF9yLGZhU3F1YXJlRW52ZWxvcGU6QVJlLGZhRW52ZWxvcGVTcXVhcmU6Sl9yLGZhQmFuU21va2luZzpFUmUsZmFTbW9raW5nQmFuOmVUcixmYVRydWNrRnJvbnQ6dFRyLGZhQnVpbGRpbmc6dnBlLGZhQnVsbHNleWU6clRyLGZhQXJyb3dMZWZ0TG9uZzpJUmUsZmFMb25nQXJyb3dMZWZ0OmFUcixmYUNoZXNzUm9vazppVHIsZmFCbGVuZGVyUGhvbmU6c1RyLGZhQXJyb3dUdXJuVXA6UFJlLGZhTGV2ZWxVcDpuVHIsZmFCaWN5Y2xlOm9UcixmYUNpcmNsZUFycm93RG93bjpOUmUsZmFBcnJvd0NpcmNsZURvd246bFRyLGZhR2VhcjpRXyxmYUNvZzpjVHIsZmFNYXJzQW5kVmVudXNCdXJzdDpkVHIsZmFPdHRlcjp1VHIsZmFDaXJjbGVDaGV2cm9uTGVmdDpPUmUsZmFDaGV2cm9uQ2lyY2xlTGVmdDpwVHIsZmFDaXJjbGVRdWVzdGlvbjpSUmUsZmFRdWVzdGlvbkNpcmNsZTpmVHIsZmFXYWxraWVUYWxraWU6aFRyLGZhVXNlckdyb3VwOkZSZSxmYVVzZXJGcmllbmRzOm1UcixmYUhvdXNlQ2hpbW5leTpCUmUsZmFIb21lTGc6Z1RyLGZhUmlnaHRGcm9tQnJhY2tldDpIUmUsZmFTaWduT3V0QWx0OmJUcixmYUZpbGU6eFRyLGZhUGxhbmVTbGFzaDp2VHIsZmFDbG91ZFNob3dlcnNIZWF2eTp5VHIsZmFQZXJzb25GYWxsaW5nOndUcixmYVR1cm5Eb3duOnFSZSxmYUxldmVsRG93bkFsdDprVHIsZmFVcFJpZ2h0QW5kRG93bkxlZnRGcm9tQ2VudGVyOlZSZSxmYUV4cGFuZEFsdDpTVHIsZmFVc2VyVGFnOk1UcixmYUhhbmRTcGFya2xlczpDVHIsZmFBcnJvd3NUb0RvdDp6VHIsZmFGYWNlU2FkQ3J5OmpSZSxmYVNhZENyeTpfVHIsZmFEb25nU2lnbjpUVHIsZmFQZW9wbGVMaW5lOkxUcixmYVNxdWFyZVJzczpVUmUsZmFSc3NTcXVhcmU6RFRyLGZhQ2FsZW5kYXJNaW51czokVHIsZmFDaGFydERpYWdyYW06QVRyLGZhRmFjZVRpcmVkOldSZSxmYVRpcmVkOkVUcixmYUhhbmRQb2ludFJpZ2h0OklUcixmYUFycm93VXA6UFRyLGZhQ3ViZXNTdGFja2VkOk5UcixmYUNoaWxkQ29tYmF0YW50OkdSZSxmYUNoaWxkUmlmbGU6T1RyLGZhVmVzdFBhdGNoZXM6UlRyLGZhTWFydGluaUdsYXNzRW1wdHk6WVJlLGZhR2xhc3NNYXJ0aW5pOkZUcixmYU1hZ25ldDpCVHIsZmFSb2FkQmFycmllcjpIVHIsZmFDb21wYXNzRHJhZnRpbmc6S1JlLGZhRHJhZnRpbmdDb21wYXNzOnFUcixmYVNxdWFyZVBlcnNvbkNvbmZpbmVkOlZUcixmYVBsYXRlV2hlYXQ6alRyLGZhU2lnbkhhbmdpbmc6WlJlLGZhU2lnbjpVVHIsZmFDYXJCYXR0ZXJ5OlFSZSxmYUJhdHRlcnlDYXI6V1RyLGZhU2hpcnQ6RHVlLGZhVFNoaXJ0OkdUcixmYVRzaGlydDpZVHIsZmFQYXJhZ3JhcGg6S1RyLGZhRW52ZWxvcGVzQnVsazpYUmUsZmFNYWlsQnVsazpaVHIsZmFHdWl0YXI6UVRyLGZhU3VpdGNhc2U6WFRyLGZhQ2lyY2xlVXA6SlJlLGZhQXJyb3dBbHRDaXJjbGVVcDpKVHIsZmFGOmVMcixmYVhtYXJrc0xpbmVzOnRMcixmYUVhcnRoT2NlYW5pYTplRmUsZmFHbG9iZU9jZWFuaWE6ckxyLGZhQ29tbWVudFNsYXNoOmFMcixmYVBsYXk6aUxyLGZhVmlhbENpcmNsZUNoZWNrOnNMcixmYUJyaWRnZUNpcmNsZUNoZWNrOm5McixmYUNlZGlTaWduOm9McixmYVB1enpsZVBpZWNlOmxMcixmYUhlbG1ldFVuOmNMcixmYUdsYXNzV2F0ZXI6ZExyLGZhSGVhcnRDaXJjbGVCb2x0OnVMcixmYVB1bXBTb2FwOnBMcixmYUhhbmRTY2lzc29yczpmTHIsZmFEb2xseTp0RmUsZmFEb2xseUJveDpoTHIsZmFQYXBlcmNsaXA6eXBlLGZhRGVtb2NyYXQ6bUxyLGZhU3F1YXJlQXJyb3dVcFJpZ2h0OnJGZSxmYUV4dGVybmFsTGlua1NxdWFyZTpnTHIsZmFGZXJyeTpiTHIsZmFNb3NxdWl0bzp4THIsZmFCdWlsZGluZ0NpcmNsZUFycm93UmlnaHQ6dkxyLGZhTGVmdFJpZ2h0OmFGZSxmYUFycm93c0FsdEg6eUxyLGZhVmlydXM6d0xyLGZhR2VtOmtMcixmYVRvaWxldDpTTHIsZmFTaW5nbGVRdW90ZUxlZnQ6TUxyLGZhTW9uZXlCaWxsczpDTHIsZmFUYWJsZXRCdXR0b246ekxyLGZhUmVjdGFuZ2xlWG1hcms6UF8sZmFSZWN0YW5nbGVUaW1lczpfTHIsZmFUaW1lc1JlY3RhbmdsZTpUTHIsZmFXaW5kb3dDbG9zZTpMTHIsZmFXcmVuY2g6RExyLGZhVHJhc2hDYW46WF8sZmFUcmFzaEFsdDokTHIsZmFUYWJsZUNlbGxzOmlGZSxmYVRoOkFMcixmYVJpYmJvbjpFTHIsZmFMYW5kbWFya0ZsYWc6SUxyLGZhVXBEb3duTGVmdFJpZ2h0OnNGZSxmYUFycm93c0FsdDpQTHIsZmFDYXJTaWRlOk5McixmYVRyYXNoQXJyb3dVcDpuRmUsZmFUcmFzaFJlc3RvcmU6T0xyLGZhTGlmZVJpbmc6UkxyLGZhQ29weXJpZ2h0OkZMcixmYUZpbGVQcmVzY3JpcHRpb246QkxyLGZhRXJhc2VyOkhMcixmYUhvdXJnbGFzc1N0YXJ0Om9GZSxmYUhvdXJnbGFzczE6cUxyLGZhQ2lyY2xlTGVmdDpsRmUsZmFBcnJvd0FsdENpcmNsZUxlZnQ6VkxyLGZhQ3J1emVpcm9TaWduOmpMcixmYVNtb2tpbmc6VUxyLGZhU3F1YXJlUG9sbFZlcnRpY2FsOmNGZSxmYVBvbGw6V0xyLGZhUGVyc29uQ2lyY2xlTWludXM6R0xyLGZhQmlvaGF6YXJkOllMcixmYUJlbGxDb25jaWVyZ2U6ZEZlLGZhQ29uY2llcmdlQmVsbDpLTHIsZmFSdWxlckhvcml6b250YWw6WkxyLGZhSG9yc2U6UUxyLGZhQ2FsZW5kYXI6WExyLGZhSGFuZHNIb2xkaW5nQ2hpbGQ6SkxyLGZhSXRhbGljOmVEcixmYUtoYW5kYTp0RHIsZmFGYWNlRnJvd25PcGVuOnVGZSxmYUZyb3duT3BlbjpyRHIsZmFDaGVjazp3cGUsZmFGaW5nZXJwcmludDphRHIsZmFDaGFyZ2luZ1N0YXRpb246aURyLGZhVXNlckxvY2s6c0RyLGZhTW9iaWxlU2NyZWVuQnV0dG9uOnBGZSxmYU1vYmlsZUFsdDpuRHIsZmFBbmNob3JDaXJjbGVDaGVjazpvRHIsZmFQZXJzb25XYWxraW5nV2l0aENhbmU6ZkZlLGZhQmxpbmQ6bERyLGZhRmlsZVdhdmVmb3JtOmhGZSxmYUZpbGVNZWRpY2FsQWx0OmNEcixmYUhvdXNlQ3JhY2s6ZERyLGZhSGF0V2l6YXJkOnVEcixmYVVzZXJEb2N0b3I6bUZlLGZhVXNlck1kOnBEcixmYUNoYXJ0QmFyOmdGZSxmYUJhckNoYXJ0OmZEcixmYVNwcmF5Q2FuU3BhcmtsZXM6YkZlLGZhQWlyRnJlc2hlbmVyOmhEcixmYUJhaHRTaWduOm1EcixmYVRlbXBlcmF0dXJlQXJyb3dVcDp4RmUsZmFUZW1wZXJhdHVyZVVwOmdEcixmYVdlYkF3ZXNvbWU6YkRyLGZhTm9uQmluYXJ5OnhEcixmYU46dkRyLGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0OnZGZSxmYUFycm93czp5RHIsZmFIb3VzZTpOXyxmYUhvbWU6d0RyLGZhSG9tZUFsdDprRHIsZmFIb21lTGdBbHQ6U0RyLGZhU3Bpbm5lcjpNRHIsZmFHYXZlbDp5RmUsZmFMZWdhbDpDRHIsZmFUaWNrZXRTaW1wbGU6d0ZlLGZhVGlja2V0QWx0OnpEcixmYURvdmU6X0RyLGZhVGFycERyb3BsZXQ6VERyLGZhVHJlZUNpdHk6TERyLGZhVHVyblVwOmtGZSxmYUxldmVsVXBBbHQ6RERyLGZhVGVtcGVyYXR1cmVRdWFydGVyOk9fLGZhVGVtcGVyYXR1cmUxOiREcixmYVRoZXJtb21ldGVyMTpBRHIsZmFUaGVybW9tZXRlclF1YXJ0ZXI6RURyLGZhU2xpZGVyczpTRmUsZmFTbGlkZXJzSDpJRHIsZmFNb3NxdWU6UERyLGZhSDpORHIsZmFJbmZvOk9EcixmYVBlcnNvbldhbGtpbmc6TUZlLGZhV2Fsa2luZzpSRHIsZmFBcnJvd1R1cm5Eb3duOkNGZSxmYUxldmVsRG93bjpGRHIsZmFSb2FkOkJEcixmYVNwaXJhbDpIRHIsZmFGYWNlRnJvd246ekZlLGZhRnJvd246cURyLGZhV2luZUdsYXNzRW1wdHk6X0ZlLGZhV2luZUdsYXNzQWx0OlZEcixmYUNsYXBwZXJib2FyZDpqRHIsZmFGb3J3YXJkU3RlcDpURmUsZmFTdGVwRm9yd2FyZDpVRHIsZmFTcXVhcmVVcFJpZ2h0OkxGZSxmYUV4dGVybmFsTGlua1NxdWFyZUFsdDpXRHIsZmFCb29rSm91cm5hbFdoaWxsczpERmUsZmFKb3VybmFsV2hpbGxzOkdEcixmYUNoYW1wYWduZUdsYXNzZXM6JEZlLGZhR2xhc3NDaGVlcnM6WURyLGZhRHVtcHN0ZXI6S0RyLGZhSGVhcnRDaXJjbGVYbWFyazpaRHIsZmFDb21wdXRlcjpRRHIsZmFXYW5kTWFnaWM6QUZlLGZhTWFnaWM6WERyLGZhQnJhaW46SkRyLGZhQnJpZWZjYXNlTWVkaWNhbDplJHIsZmFIb3VzZU1lZGljYWxDaXJjbGVFeGNsYW1hdGlvbjp0JHIsZmFDb2RlQ29tbWl0OnIkcixmYVBlcnNvbkJyZWFzdGZlZWRpbmc6YSRyLGZhUGVyc29uUmF5czppJHIsZmFNYW5hdFNpZ246cyRyLGZhU29ydDpFRmUsZmFVbnNvcnRlZDpuJHIsZmFDaXJjbGVSYWRpYXRpb246SUZlLGZhUmFkaWF0aW9uQWx0Om8kcixmYUxhcHRvcENvZGU6bCRyLGZhU2luazpjJHIsZmFBcnJvd1VwRnJvbVdhdGVyUHVtcDpkJHIsZmFNaWNyb3Bob25lTGluZXNTbGFzaDpQRmUsZmFNaWNyb3Bob25lQWx0U2xhc2g6dSRyLGZhU2VydmVyOnAkcixmYVVzZXI6JHVlLGZhVXNlckFsdDpmJHIsZmFVc2VyTGFyZ2U6aCRyLGZhU25vd2ZsYWtlOm0kcixmYVRhdXJ1czpnJHIsZmFTa3VsbENyb3NzYm9uZXM6YiRyLGZhUGVzb1NpZ246eCRyLGZhV2luZUdsYXNzOnYkcixmYVRlbXBlcmF0dXJlSGFsZjpSXyxmYVRlbXBlcmF0dXJlMjp5JHIsZmFUaGVybW9tZXRlcjI6dyRyLGZhVGhlcm1vbWV0ZXJIYWxmOmskcixmYVRpY2tldDpTJHIsZmFXaGVhdEF3bkNpcmNsZUV4Y2xhbWF0aW9uOk0kcixmYUFycm93c1R1cm5SaWdodDpDJHIsZmFDYW5keUNhbmU6eiRyLGZhV2hlZWxjaGFpcjpfJHIsZmFTcGVsbENoZWNrOlQkcixmYVZvbHVtZU9mZjpMJHIsZmFMdW5nczpEJHIsZmFCb29rbWFyazokJHIsZmFCYXJjb2RlOkEkcixmYUxpc3RPbDpBdWUsZmFMaXN0MTI6RSRyLGZhTGlzdE51bWVyaWM6SSRyLGZhRmlsZUNpcmNsZVhtYXJrOlAkcixmYUN1YmU6TiRyLGZhVGFwZTpPJHIsZmFCb21iOlIkcixmYVNjYWxlVW5iYWxhbmNlZDpORmUsZmFCYWxhbmNlU2NhbGVMZWZ0OkYkcixmYVNxdWFyZUNhcmV0TGVmdDpPRmUsZmFDYXJldFNxdWFyZUxlZnQ6QiRyLGZhUnVsZXI6SCRyLGZhSTpxJHIsZmFWb2x1bWVYbWFyazpFdWUsZmFWb2x1bWVNdXRlOlYkcixmYVZvbHVtZVRpbWVzOmokcixmYUFyY2h3YXk6VSRyLGZhUGVyc29uRGlnZ2luZzpSRmUsZmFEaWdnaW5nOlckcixmYUdhdWdlSGlnaDpJdWUsZmFUYWNob21ldGVyQWx0OkckcixmYVRhY2hvbWV0ZXJBbHRGYXN0OlkkcixmYUdlbmRlcmxlc3M6SyRyLGZhQ2xvdWRTdW46WiRyLGZhQXJyb3dSaWdodDprcGUsZmFIYW5kc2hha2U6UHVlLGZhSGFuZHNoYWtlQWx0OlEkcixmYUhhbmRzaGFrZVNpbXBsZTpYJHIsZmFQZXJzb25Ta2lpbmc6RkZlLGZhU2tpaW5nOkokcixmYUJyaWRnZVdhdGVyOmVBcixmYUJ1aWxkaW5nTmdvOnRBcixmYUlnbG9vOnJBcixmYUNpcmNsZURvbGxhclRvU2xvdDpCRmUsZmFEb25hdGU6YUFyLGZhWTppQXIsZmFGYWNlU21pbGVXaW5rOkhGZSxmYVNtaWxlV2luazpzQXIsZmFEaWNlRm91cjpuQXIsZmFGYWNlR3JpblNxdWludFRlYXJzOnFGZSxmYUdyaW5TcXVpbnRUZWFyczpvQXIsZmFGaWxlQXVkaW86bEFyLGZhQXJyb3dzRG93blRvTGluZTpjQXIsZmFHOmRBcixmYVZpaGFyYTp1QXIsZmFGbGFnQ2hlY2tlcmVkOnBBcixmYUdhdWdlU2ltcGxlOk51ZSxmYUdhdWdlU2ltcGxlTWVkOmZBcixmYVRhY2hvbWV0ZXJBdmVyYWdlOmhBcixmYVJpZ2h0TGVmdDpWRmUsZmFFeGNoYW5nZUFsdDptQXIsZmFQaWxsczpnQXIsZmFFeHBsb3Npb246YkFyLGZhQXJyb3dzRG93blRvUGVvcGxlOnhBcixmYVVzZXJzVmlld2ZpbmRlcjp2QXIsZmFDYXJPbjp5QXIsZmFTbGVpZ2g6d0FyLGZhRHVtYmJlbGw6a0FyLGZhQmFieUNhcnJpYWdlOmpGZSxmYUNhcnJpYWdlQmFieTpTQXIsZmFLaXdpQmlyZDpNQXIsZmFDYWxlbmRhclhtYXJrOlVGZSxmYUNhbGVuZGFyVGltZXM6Q0FyLGZhQ2lyY2xlRG93bjpXRmUsZmFBcnJvd0FsdENpcmNsZURvd246ekFyLGZhRmlsZU1lZGljYWw6X0FyLGZhWG1hcms6RXAsZmFDbG9zZTpUQXIsZmFNdWx0aXBseTpMQXIsZmFSZW1vdmU6REFyLGZhVGltZXM6JEFyLGZhU2hhcGVzOkdGZSxmYVRyaWFuZ2xlQ2lyY2xlU3F1YXJlOkFBcixmYURpY2VPbmU6RUFyLGZhTG9ja09wZW46SUFyLGZhUGVwcGVySG90OlBBcixmYURyb3BsZXRTbGFzaDpZRmUsZmFUaW50U2xhc2g6TkFyLGZhRHJvcGxldDpLRmUsZmFUaW50Ok9BcixmYUZpbGVMaW5lczpPdWUsZmFGaWxlQWx0OlJBcixmYUZpbGVUZXh0OkZBcixmYUNvbW1lbnRzRG9sbGFyOkJBcixmYU1hZ25pZnlpbmdHbGFzc0xvY2F0aW9uOlpGZSxmYVNlYXJjaExvY2F0aW9uOkhBcixmYUZpbGVJbnZvaWNlOlNwZSxmYVBlbnRhZ29uOnFBcixmYVJlcHVibGljYW46VkFyLGZhU2hvcDpRRmUsZmFTdG9yZUFsdDpqQXIsZmFGaWxtOlJ1ZSxmYUZpbG1BbHQ6VUFyLGZhRmlsbVNpbXBsZTpXQXIsZmFCdWlsZGluZ0NpcmNsZVhtYXJrOkdBcixmYUNvbW1lbnRzOllBcixmYVRhZ3M6S0FyLGZhR3VuOlpBcixmYUNpcmNsZUNoZWNrOkpfLGZhQ2hlY2tDaXJjbGU6UUFyLGZhU2NvcnBpbzpYQXIsZmFJZENhcmRDbGlwOlhGZSxmYUlkQ2FyZEFsdDpKQXIsZmFNb29uOmVFcixmYU9pbFdlbGw6dEVyLGZhVGFjaG9ncmFwaERpZ2l0YWw6SkZlLGZhRGlnaXRhbFRhY2hvZ3JhcGg6ckVyLGZhVGFibGV0OmVCZSxmYVRhYmxldEFuZHJvaWQ6YUVyLGZhUnVibGVTaWduOkZfLGZhUm91YmxlOmlFcixmYVJ1YjpzRXIsZmFSdWJsZTpuRXIsZmFDbG9zZWRDYXB0aW9uaW5nOm9FcixmYVBlbjpsRXIsZmFQbGFuZTpjRXIsZmFJbWFnZXM6ZEVyLGZhTW9iaWxlU2NyZWVuOnRCZSxmYU1vYmlsZUFuZHJvaWRBbHQ6dUVyLGZhR3VhcmFuaVNpZ246cEVyLGZhQmFnU2hvcHBpbmc6ckJlLGZhU2hvcHBpbmdCYWc6ZkVyLGZhQ2lyY2xlUmlnaHQ6YUJlLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpoRXIsZmFQaG9uZVZvbHVtZTppQmUsZmFWb2x1bWVDb250cm9sUGhvbmU6bUVyLGZhQ3ViZXM6Z0VyLGZhUGhvbmU6YkVyLGZhVG9yaWlHYXRlOnhFcixmYUJhY29uOnZFcixmYVBlcnNvbkZhbGxpbmdCdXJzdDp5RXIsZmFRdW90ZVJpZ2h0OnNCZSxmYVF1b3RlUmlnaHRBbHQ6d0VyLGZhSG91c2VNZWRpY2FsRmxhZzprRXIsZmFQcmVzY3JpcHRpb246U0VyLGZhRGljZVRocmVlOk1FcixmYUJ1aWxkaW5nTG9jazpDRXIsZmFJZENhcmQ6bkJlLGZhRHJpdmVyc0xpY2Vuc2U6ekVyLGZhQ2lyY2xlUGxheTpvQmUsZmFQbGF5Q2lyY2xlOl9FcixmYUZhY2VMYXVnaEJlYW06bEJlLGZhTGF1Z2hCZWFtOlRFcixmYUxlYWY6TEVyLGZhSG91c2VDaGltbmV5VXNlcjpERXIsZmFSb3RhdGVSaWdodDpGdWUsZmFSZWRvQWx0OiRFcixmYVJvdGF0ZUZvcndhcmQ6QUVyLGZhVG9vdGg6RUVyLGZhSG91c2VDaGltbmV5V2luZG93OklFcixmYU1vdG9yY3ljbGU6UEVyLGZhQmFja3dhcmRGYXN0OmNCZSxmYUZhc3RCYWNrd2FyZDpORXIsZmFBZGRyZXNzQm9vazpkQmUsZmFDb250YWN0Qm9vazpPRXIsZmFTYWlsYm9hdDpSRXIsZmFCb29rQm9va21hcms6RkVyLGZhTWFnbmlmeWluZ0dsYXNzQXJyb3dSaWdodDpCRXIsZmFNaWNyb3Bob25lTGluZXM6dUJlLGZhTWljcm9waG9uZUFsdDpIRXIsZmFSZXBseUFsbDpwQmUsZmFNYWlsUmVwbHlBbGw6cUVyLGZhVW5pdmVyc2FsQWNjZXNzOlZFcixmYVRvaWxldFBhcGVyOkJ1ZSxmYVRvaWxldFBhcGVyQWx0OmpFcixmYVRvaWxldFBhcGVyQmxhbms6VUVyLGZhVnJDYXJkYm9hcmQ6V0VyLGZhUGl6emFTbGljZTpHRXIsZmFTcHJheUNhbjpZRXIsZmFWb2x1bWVMb3c6ZkJlLGZhVm9sdW1lRG93bjpLRXIsZmFDcm9zczpaRXIsZmFQZXJzb246aEJlLGZhTWFsZTpRRXIsZmFIb3VyZ2xhc3M6bUJlLGZhSG91cmdsYXNzRW1wdHk6WEVyLGZhRmlzaDpKRXIsZmFEcnVtc3RpY2tCaXRlOmVJcixmYUNoYXJ0U2ltcGxlOnRJcixmYUF0b206cklyLGZhUDphSXIsZmFKZXRGaWdodGVyVXA6aUlyLGZhUGx1Z0NpcmNsZVhtYXJrOnNJcixmYVNoZWV0UGxhc3RpYzpuSXIsZmFWOm9JcixmYUxpc3Q6Z0JlLGZhTGlzdFNxdWFyZXM6bElyLGZhUGlzY2VzOmNJcixmYVNvbGFyUGFuZWw6ZElyLGZhTGFuZE1pbmVPbjp1SXIsZmFIZWFkcGhvbmVzOkh1ZSxmYUhlYWRwaG9uZXNBbHQ6cElyLGZhSGVhZHBob25lc1NpbXBsZTpmSXIsZmFCdXM6aElyLGZhRmlsZVBvd2VycG9pbnQ6bUlyLGZhUXVvdGVMZWZ0OmJCZSxmYVF1b3RlTGVmdEFsdDpnSXIsZmFDaGV2cm9uRG93bjpiSXIsZmFFYXJ0aEFzaWE6eEJlLGZhR2xvYmVBc2lhOnhJcixmYUNlbnRTaWduOnZJcixmYVNoaWVsZENhdDp5SXIsZmFTY2hvb2xDaXJjbGVDaGVjazp3SXIsZmFNYXJ0aW5pR2xhc3M6dkJlLGZhR2xhc3NNYXJ0aW5pQWx0OmtJcixmYVBsdWc6U0lyLGZhUGFub3JhbWE6TUlyLGZhQ2xvY2tSb3RhdGVMZWZ0OmVULGZhSGlzdG9yeTpDSXIsZmFKYXJXaGVhdDp6SXIsZmFDbG91ZEFycm93RG93bjpxdWUsZmFDbG91ZERvd25sb2FkOl9JcixmYUNsb3VkRG93bmxvYWRBbHQ6VElyLGZhVHJ1Y2tSYW1wQm94OnlCZSxmYVRydWNrTG9hZGluZzpMSXIsZmFBbmdsZURvd246RElyLGZhUGx1Z0NpcmNsZUNoZWNrOiRJcixmYVdpbmRvd01heGltaXplOkFJcixmYUhhbmRzSG9sZGluZ0NpcmNsZTpFSXIsZmFMb2NhdGlvblBpbjp3QmUsZmFNYXBNYXJrZXI6SUlyLGZhQm93bGluZ0JhbGw6UElyLGZhQ2FydEZsYXRiZWQ6a0JlLGZhRG9sbHlGbGF0YmVkOk5JcixmYUhvdXNlVXNlcjpTQmUsZmFIb21lVXNlcjpPSXIsZmFHaG9zdDpSSXIsZmFDb21tZW50Tm9kZXM6RklyLGZhUGVyc29uQXJyb3dEb3duVG9MaW5lOkJJcixmYVBsdWdDaXJjbGVQbHVzOkhJcixmYVBlcnNvblN3aW1taW5nOk1CZSxmYVN3aW1tZXI6cUlyLGZhQ29tbWVudERvdHM6Q0JlLGZhQ29tbWVudGluZzpWSXIsZmFDaGFydFBpZTp6QmUsZmFQaWVDaGFydDpqSXIsZmFGcm9nOlVJcixmYVdpbmVCb3R0bGU6V0lyLGZhSW5ib3g6R0lyLGZhU3F1YXJlSDpfQmUsZmFIU3F1YXJlOllJcixmYUhvdXNlTWVkaWNhbDpLSXIsZmFDaXJjbGVDaGV2cm9uUmlnaHQ6VEJlLGZhQ2hldnJvbkNpcmNsZVJpZ2h0OlpJcixmYUZpbGVDc3Y6UUlyLGZhSGF0Q293Ym95OlhJcixmYUZhY2VHcmluVG9uZ3VlV2luazpMQmUsZmFHcmluVG9uZ3VlV2luazpKSXIsZmFMOmVQcixmYUFycm93RG93blNob3J0V2lkZTpWdWUsZmFTb3J0QW1vdW50RGVzYzp0UHIsZmFTb3J0QW1vdW50RG93bkFsdDpyUHIsZmFIb3VyZ2xhc3NIYWxmOkRCZSxmYUhvdXJnbGFzczI6YVByLGZhU3Bvb246JEJlLGZhVXRlbnNpbFNwb29uOmlQcixmYUNyZWRpdENhcmQ6QUJlLGZhQ3JlZGl0Q2FyZEFsdDpzUHIsZmFGaWxlSW52b2ljZURvbGxhcjpNcGUsZmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nOkVCZSxmYVBhc3RhZmFyaWFuaXNtOm5QcixmYU1hcnRpbmlHbGFzc0NpdHJ1czpJQmUsZmFDb2NrdGFpbDpvUHIsZmFCdWxsaG9ybjpsUHIsZmFCb3hUaXNzdWU6Y1ByLGZhTWF0dHJlc3NQaWxsb3c6ZFByLGZhQ2hldnJvbkxlZnQ6dVByLGZhQ2xvdWRNb29uUmFpbjpwUHIsZmFBcnJvd0Rvd24xOTpqdWUsZmFTb3J0TnVtZXJpY0FzYzpmUHIsZmFTb3J0TnVtZXJpY0Rvd246aFByLGZhSGFuZFNwb2NrOm1QcixmYVdhbmRNYWdpY1NwYXJrbGVzOlBCZSxmYU1hZ2ljV2FuZFNwYXJrbGVzOmdQcixmYUNvbW1lbnRNZWRpY2FsOmJQcixmYUJlbGxTbGFzaDp4UHIsZmFIYW5kc2hha2VTbGFzaDpVdWUsZmFIYW5kc2hha2VBbHRTbGFzaDp2UHIsZmFIYW5kc2hha2VTaW1wbGVTbGFzaDp5UHIsZmFCb3R0bGVXYXRlcjp3UHIsZmFEaWNlRDIwOmtQcixmYUFycm93RG93blpBOld1ZSxmYVNvcnRBbHBoYURlc2M6U1ByLGZhU29ydEFscGhhRG93bkFsdDpNUHIsZmFCcnVzaDpDUHIsZmFQZXJzb25XYWxraW5nRGFzaGVkTGluZUFycm93UmlnaHQ6elByLGZhQXJyb3dVcFNob3J0V2lkZTpOQmUsZmFTb3J0QW1vdW50VXBBbHQ6X1ByLGZhR3JpcFZlcnRpY2FsOk9CZSxmYUdyaWRWZXJ0aWNhbDpUUHIsZmFDYXJUdW5uZWw6TFByLGZhQ2hhcnRDb2x1bW46RFByLGZhQ2Fwcmljb3JuOiRQcixmYVRydWNrQXJyb3dSaWdodDpBUHIsZmFUdjpHdWUsZmFUZWxldmlzaW9uOkVQcixmYVR2QWx0OklQcixmYVNlY3Rpb246UFByLGZhUGVhY2U6TlByLGZhU3RhcjpPUHIsZmFGbGFnOlJQcixmYVRyaWFuZ2xlRXhjbGFtYXRpb246WXVlLGZhRXhjbGFtYXRpb25UcmlhbmdsZTpGUHIsZmFXYXJuaW5nOkJQcixmYVNjaG9vbENpcmNsZUV4Y2xhbWF0aW9uOkhQcixmYUdyYWR1YXRpb25DYXA6UkJlLGZhTW9ydGFyQm9hcmQ6cVByLGZhU3RvcmU6VlByLGZhVXNlckFzdHJvbmF1dDpqUHIsZmFCdWlsZGluZ0ZsYWc6VVByLGZhTXVnU2F1Y2VyOkZCZSxmYUNvZmZlZTpXUHIsZmFMZW1vbjpHUHIsZmFDYXJhdmFuOllQcixmYVE6S1ByLGZhTG9jazpaUHIsZmFQYWludFJvbGxlcjpRUHIsZmFWb2x1bWVIaWdoOkJCZSxmYVZvbHVtZVVwOlhQcixmYUZvbGRlclBsdXM6SlByLGZhTWVyY3VyeTplTnIsZmFBbmNob3I6dE5yLGZhU3F1YXJlUGFya2luZzpIQmUsZmFQYXJraW5nOnJOcixmYUhhbnVraWFoOmFOcixmYVJvdGF0ZUxlZnQ6Ql8sZmFSb3RhdGVCYWNrOmlOcixmYVJvdGF0ZUJhY2t3YXJkOnNOcixmYVVuZG9BbHQ6bk5yLGZhSGVhZGluZzpxQmUsZmFIZWFkZXI6b05yLGZhQ3Jvc3NoYWlyczpsTnIsZmFDaXJjbGVOb2RlczpjTnIsZmFXaW5kb3dSZXN0b3JlOmROcixmYVI6dU5yLGZhRmlsdGVyQ2lyY2xlWG1hcms6cE5yLGZhR29wdXJhbTpmTnIsZmFIZWFydENpcmNsZU1pbnVzOmhOcixmYVN0YXJPZkxpZmU6bU5yLGZhQnVzaW5lc3NUaW1lOlZCZSxmYUJyaWVmY2FzZUNsb2NrOmdOcixmYUZpcmVFeHRpbmd1aXNoZXI6Yk5yLGZhQXJyb3dEb3duTG9uZzpqQmUsZmFMb25nQXJyb3dEb3duOnhOcixmYVVzZXJNaW51czp2TnIsZmFNb25leUNoZWNrOnlOcixmYUhvdXNlTGFwdG9wOlVCZSxmYUxhcHRvcEhvdXNlOndOcixmYURvd25sb2FkOmtOcixmYVNhZ2l0dGFyaXVzOlNOcixmYUNvdWNoOk1OcixmYVJvYWRMb2NrOkNOcixmYVNjaXNzb3JzOldCZSxmYUN1dDp6TnIsZmFCdWc6Q3BlLGZhQXJyb3dSaWdodEZyb21CcmFja2V0OkdCZSxmYVNpZ25PdXQ6X05yLGZhSGFuZEhvbGRpbmdIYW5kOlROcixmYVN0cm9vcHdhZmVsOkxOcixmYUNoaWxkOkROcixmYUljZUNyZWFtOiROcixmYUNvbXB1dGVyTW91c2U6WUJlLGZhTW91c2U6QU5yLGZhRmF1Y2V0OkVOcixmYUF3YXJkOklOcixmYVBlcnNvbkRyb3duaW5nOlBOcixmYUNhbWVyYVJvdGF0ZTpOTnIsZmFGYWNlR3JpbkhlYXJ0czpLQmUsZmFHcmluSGVhcnRzOk9OcixmYUZpbGVGcmFnbWVudDpSTnIsZmFQZXJzb25NaWxpdGFyeVJpZmxlOkZOcixmYVRvZ2dsZU9uOkJOcixmYUx1bmdzVmlydXM6SE5yLGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsOkt1ZSxmYVBpbmdQb25nUGFkZGxlQmFsbDpxTnIsZmFUYWJsZVRlbm5pczpWTnIsZmFCb3hlc1BhY2tpbmc6ak5yLGZhUGVyc29uQ2hhbGtib2FyZDpVTnIsZmFEaWNlVHdvOldOcixmYUFycm93UmlnaHRBcnJvd0xlZnQ6WkJlLGZhRXhjaGFuZ2U6R05yLGZhRm9vdGJhbGw6UUJlLGZhRm9vdGJhbGxCYWxsOllOcixmYVRydWNrTW9uc3RlcjpLTnIsZmFBc3RlcmlzazpaTnIsZmFCYXR0ZXJ5RnVsbDpadWUsZmFCYXR0ZXJ5OlFOcixmYUJhdHRlcnk1OlhOcixmYUNoaWxkRHJlc3M6Sk5yLGZhRmFjZUtpc3NCZWFtOlhCZSxmYUtpc3NCZWFtOmVPcixmYVRyYXNoQ2FuQXJyb3dVcDpKQmUsZmFUcmFzaFJlc3RvcmVBbHQ6dE9yLGZhRm9udDpyT3IsZmFCb3JlSG9sZTphT3IsZmFWaXJ1c0NvdmlkOmlPcixmYUZpbGVQZGY6c09yLGZhTGFuZ3VhZ2U6bk9yLGZhU2hpZWxkSGFsdmVkOmVIZSxmYVNoaWVsZEFsdDpvT3IsZmFDYXJldFVwOmxPcixmYUZpbGVQZW46dEhlLGZhRmlsZUVkaXQ6Y09yLGZhUGVyc29uQmlraW5nOnJIZSxmYUJpa2luZzpkT3IsZmFCb29rT3BlblJlYWRlcjphSGUsZmFCb29rUmVhZGVyOnVPcixmYUdsYXNzV2F0ZXJEcm9wbGV0OnBPcixmYVRvd2VyQnJvYWRjYXN0OmlIZSxmYUJyb2FkY2FzdFRvd2VyOmZPcixmYU1pbmltaXplOnNIZSxmYUNvbXByZXNzQXJyb3dzQWx0OmhPcixmYUFycm93UmlnaHRUb0NpdHk6bU9yLGZhTGFwdG9wTWVkaWNhbDpnT3IsZmFCcmVhZFNsaWNlOmJPcixmYUdsb2JlOnhPcixmYUZvbGRlck1pbnVzOnZPcixmYU1hc2tGYWNlOnlPcixmYUJvbmc6d09yLGZhUm9hZEJyaWRnZTprT3IsZmFBcnJvd1VwOTE6bkhlLGZhU29ydE51bWVyaWNVcEFsdDpTT3IsZmFNb3VudGFpbkNpdHk6TU9yLGZhQXJyb3dEb3duOTE6UXVlLGZhU29ydE51bWVyaWNEZXNjOkNPcixmYVNvcnROdW1lcmljRG93bkFsdDp6T3IsZmFGYWNlR3JpbldpZGU6b0hlLGZhR3JpbkFsdDpfT3IsZmFQb29wOlRPcixmYURoYXJtYWNoYWtyYTpMT3IsZmFCYXR0ZXJ5UXVhcnRlcjpsSGUsZmFCYXR0ZXJ5MjpET3IsZmFBbmtoOiRPcixmYURpYW1vbmQ6QU9yLGZhU3Vic2NyaXB0OkVPcixmYVJ1cGVlU2lnbjpjSGUsZmFSdXBlZTpJT3IsZmFQZXJzb25SaWZsZTpQT3IsZmFEOk5PcixmYVNxdWFyZU5maTpPT3IsZmFUZWV0aDpST3IsZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXI6ZEhlLGZhU2VhcmNoRG9sbGFyOkZPcixmYUR1bXBzdGVyRmlyZTpCT3IsZmFVcGxvYWQ6SE9yLGZhVXNlclNsYXNoOlh1ZSxmYVVzZXJBbHRTbGFzaDpxT3IsZmFVc2VyTGFyZ2VTbGFzaDpWT3IsZmFBcnJvd0xlZnQ6ak9yLGZhVmlhbFZpcnVzOlVPcixmYUNoZWNrRG91YmxlOldPcixmYVBhdzpHT3IsZmFIZWxtZXRTYWZldHk6SnVlLGZhSGFyZEhhdDpZT3IsZmFIYXRIYXJkOktPcixmYUU6Wk9yLGZhRmFjZUxhdWdoU3F1aW50OnVIZSxmYUxhdWdoU3F1aW50OlFPcixmYURvd25MZWZ0QW5kVXBSaWdodFRvQ2VudGVyOnBIZSxmYUNvbXByZXNzQWx0OlhPcixmYUdpZnRzOkpPcixmYUJlZDplUnIsZmFNb25leUJpbGxUcmFuc2Zlcjp0UnIsZmFQZXJzb25SdW5uaW5nOmZIZSxmYVJ1bm5pbmc6clJyLGZhQ2lyY2xlQ2hldnJvbkRvd246aEhlLGZhQ2hldnJvbkNpcmNsZURvd246YVJyLGZhVXNlck51cnNlOmlScixmYUZhY2VLaXNzV2lua0hlYXJ0Om1IZSxmYUtpc3NXaW5rSGVhcnQ6c1JyLGZhRmlsbDpuUnIsZmFNb25leUJpbGwxV2F2ZTpnSGUsZmFNb25leUJpbGxXYXZlQWx0Om9ScixmYUxhbmRtYXJrOmxScixmYU11c2ljOmNScixmYUJvb2tNZWRpY2FsOmRScixmYVNodWZmbGU6YkhlLGZhUmFuZG9tOnVScixmYVVuZGVybGluZTpwUnIsZmFCdWlsZGluZ1VzZXI6ZlJyLGZhUm9ib3Q6aFJyLGZhUGx1czp0VCxmYUFkZDptUnIsZmFDb3B5OnpwZSxmYUNoZXNzS2luZzpnUnIsZmFIb3VzZUZsb29kV2F0ZXI6YlJyLGZhQml0Y29pblNpZ246eFJyLGZhQm94OnZScixmYVNxdWFyZVBsdXM6eEhlLGZhUGx1c1NxdWFyZTp5UnIsZmFBcnJvd3NMZWZ0UmlnaHQ6dkhlLGZhQXJyb3dzSDp3UnIsZmFGYW46a1JyLGZhQ3JvdzpTUnIsZmFGaWxlQ2lyY2xlQ2hlY2s6TVJyLGZhTGlua1NsYXNoOkhfLGZhQ2hhaW5Ccm9rZW46Q1JyLGZhQ2hhaW5TbGFzaDp6UnIsZmFVbmxpbms6X1JyLGZhQXJyb3dSb3RhdGVSaWdodDpxXyxmYUFycm93UmlnaHRSb3RhdGU6VFJyLGZhQXJyb3dSb3RhdGVGb3J3YXJkOkxScixmYVJlZG86RFJyLGZhUGVuQ2xpcDp5SGUsZmFQZW5BbHQ6JFJyLGZhRG9vckNsb3NlZDpBUnIsZmFBcnJvd0Rvd25XaWRlU2hvcnQ6ZXBlLGZhU29ydEFtb3VudEFzYzpFUnIsZmFTb3J0QW1vdW50RG93bjpJUnIsZmFDYXJldERvd246UFJyLGZhSzpOUnIsZmFDaGVja1RvU2xvdDp3SGUsZmFWb3RlWWVhOk9ScixmYUZpc2hGaW5zOlJScixmYUNvbXByZXNzOkZScixmYUFycm93VXBBWjprSGUsZmFTb3J0QWxwaGFVcDpCUnIsZmFVc2VyR3JhZHVhdGU6SFJyLGZhRmlsZUNvZGU6cVJyLGZhU29hcDpWUnIsZmFSZWN5Y2xlOmpScixmYUZhY2VHcmluV2luazpTSGUsZmFHcmluV2luazpVUnIsZmFXYXRlckxhZGRlcjp0cGUsZmFMYWRkZXJXYXRlcjpXUnIsZmFTd2ltbWluZ1Bvb2w6R1JyLGZhR2VtaW5pOllScixmYVRvd2VyQ2VsbDpLUnIsZmFDb2xvblNpZ246WlJyLGZhTGFwdG9wRmlsZTpRUnIsZmFCYWhhaTpNSGUsZmFIYXlrYWw6WFJyLGZhTW9uZXlCaWxsMTpDSGUsZmFNb25leUJpbGxBbHQ6SlJyLGZhQ2xvdWRCb2x0OnpIZSxmYVRodW5kZXJzdG9ybTplRnIsZmFFdGhlcm5ldDp0RnIsZmFIcnl2bmlhU2lnbjpfSGUsZmFIcnl2bmlhOnJGcixmYUV5ZVNsYXNoOl9wZSxmYUNhcnRGbGF0YmVkU3VpdGNhc2U6VEhlLGZhTHVnZ2FnZUNhcnQ6YUZyLGZhUmFkaWF0aW9uOmlGcixmYUZpbGVXb3JkOnNGcixmYUJlZFB1bHNlOkxIZSxmYVByb2NlZHVyZXM6bkZyLGZhVGVudHM6b0ZyLGZhTXVnSG90OlRwZSxmYUJvbHQ6REhlLGZhWmFwOmxGcixmYUphcjpjRnIsZmFUcnVja1BsYW5lOmRGcixmYUhhbmRIb2xkaW5nSGVhcnQ6dUZyLGZhQXJyb3dSb3RhdGVMZWZ0Okx5LGZhQXJyb3dMZWZ0Um90YXRlOnBGcixmYUFycm93Um90YXRlQmFjazpmRnIsZmFBcnJvd1JvdGF0ZUJhY2t3YXJkOmhGcixmYVVuZG86bUZyLGZhRmFjZUFuZ3J5OiRIZSxmYUFuZ3J5OmdGcixmYUJ1cnN0OmJGcixmYVo6eEZyLGZhQmFuZGFnZTpBSGUsZmFCYW5kQWlkOnZGcixmYVBsYW5lQ2lyY2xlRXhjbGFtYXRpb246eUZyLGZhQnVzU2lkZTp3RnIsZmFCdWdzOmtGcixmYUJlZXJNdWdFbXB0eTpFSGUsZmFCZWVyOlNGcixmYVBlcnNvbkNpcmNsZUNoZWNrOk1GcixmYVN0YXBsZXI6Q0ZyLGZhSG91c2VNZWRpY2FsQ2lyY2xlQ2hlY2s6ekZyLGZhTmFpcmFTaWduOl9GcixmYVdpZmk6cnBlLGZhV2lmaTM6VEZyLGZhV2lmaVN0cm9uZzpMRnIsZmFNb25leUNoZWNrRG9sbGFyOnJULGZhTW9uZXlDaGVja0FsdDpERnIsZmFFeWVMb3dWaXNpb246SUhlLGZhTG93VmlzaW9uOiRGcixmYUNpcmNsZUFycm93VXA6UEhlLGZhQXJyb3dDaXJjbGVVcDpBRnIsZmFDYW1lcmFSZXRybzpFRnIsZmFDYXBzdWxlczpJRnIsZmFQb286UEZyLGZhVm9sdW1lOk5IZSxmYVZvbHVtZU1lZGl1bTpORnIsZmFFbGV2YXRvcjpPRnIsZmFUYWc6UkZyLGZhRmlsZUNpcmNsZU1pbnVzOkZGcixmYURvd25Mb25nOk9IZSxmYUxvbmdBcnJvd0FsdERvd246QkZyLGZhQ29tcGFjdERpc2M6SEZyLGZhU3VpdGNhc2VSb2xsaW5nOnFGcixmYUJvb2tRdXJhbjpSSGUsZmFRdXJhbjpWRnIsZmFQaG9uZVNsYXNoOmpGcixmYVJvYWRDaXJjbGVDaGVjazpVRnIsZmFTaG9wTG9jazpXRnIsZmFJbWFnZVBvcnRyYWl0OkZIZSxmYVBvcnRyYWl0OkdGcixmYUJyaWRnZUxvY2s6WUZyLGZhSGFtbWVyOktGcixmYUFycm93VXAxOTpCSGUsZmFTb3J0TnVtZXJpY1VwOlpGcixmYUNoZXNzS25pZ2h0OlFGcixmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQ6WEZyLGZhQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTphVCxmYUV4dGVybmFsTGluazpKRnIsZmFBcnJvd0Rvd25VcEFjcm9zc0xpbmU6ZUJyLGZhRmFjZUdyaW5CZWFtOkhIZSxmYUdyaW5CZWFtOnRCcixmYVJlY3RhbmdsZUFkOnFIZSxmYUFkOnJCcixmYUJvb2tUYW5ha2g6VkhlLGZhVGFuYWtoOmFCcixmYUhvdFR1YlBlcnNvbjpqSGUsZmFIb3RUdWI6aUJyLGZhRmlsZUhhbGZEYXNoZWQ6c0JyLGZhT3V0ZGVudDpVSGUsZmFEZWRlbnQ6bkJyLGZhSGFuZFBlYWNlOm9CcixmYUhlYWRTaWRlVmlydXM6bEJyLGZhQ29tcGFzczpjQnIsZmFQZW5OaWI6ZEJyLGZhVGVudEFycm93c0Rvd246dUJyLGZhRm9yd2FyZEZhc3Q6V0hlLGZhRmFzdEZvcndhcmQ6cEJyLGZhQ3JvcDpmQnIsZmFXaGlza2V5R2xhc3M6R0hlLGZhR2xhc3NXaGlza2V5OmhCcixmYVNxdWFyZTptQnIsZmFGYWNlR3JpbjpZSGUsZmFHcmluOmdCcixmYUZpbGVDb250cmFjdDpiQnIsZmFBbmdsZVVwOnhCcixmYUZhY2VTbWlsZTpLSGUsZmFTbWlsZTp2QnIsZmFQZXJzb25EcmVzc0J1cnN0OnlCcixmYURpdmlkZTp3QnIsZmFDb2RlRm9yazprQnIsZmFIb3VzZUZsYWc6U0JyLGZhQnVpbGRpbmdDb2x1bW5zOkR5LGZhQmFuazpNQnIsZmFJbnN0aXR1dGlvbjpDQnIsZmFNdXNldW06ekJyLGZhVW5pdmVyc2l0eTpfQnIsZmFSdWc6VEJyLGZhQ29kZU1lcmdlOkxCcixmYUhvdXNlVHN1bmFtaTpEQnIsZmFNYWduaWZ5aW5nR2xhc3NDaGFydDokQnIsZmFVbWJyZWxsYTpBQnIsZmFIaWxsUm9ja3NsaWRlOkVCcixmYVVzZXJTZWNyZXQ6SUJyLGZhUGFnZXI6UEJyLGZhQnJpZWZjYXNlOk5CcixmYVRyb3dlbEJyaWNrczpPQnIsZmFTb2NrczpSQnIsZmFUOkZCcixmYU1pY3JvY2hpcDpCQnIsZmFUcnVja01lZGljYWw6WkhlLGZhQW1idWxhbmNlOkhCcixmYU9tOnFCcixmYU1vc3F1aXRvTmV0OlZCcixmYVByZXNjcmlwdGlvbkJvdHRsZTpqQnIsZmFVc2Vyc0dlYXI6UUhlLGZhVXNlcnNDb2c6VUJyLGZhUm9hZENpcmNsZUV4Y2xhbWF0aW9uOldCcixmYVBhdXNlOkdCcixmYVN0YWZmU25ha2U6Vl8sZmFSb2RBc2NsZXBpdXM6WUJyLGZhUm9kU25ha2U6S0JyLGZhU3RhZmZBZXNjdWxhcGl1czpaQnIsZmFQaWdneUJhbms6UUJyLGZhTW9udW1lbnQ6WEJyLGZhQW5nbGVzUmlnaHQ6WEhlLGZhQW5nbGVEb3VibGVSaWdodDpKQnIsZmFEZXNrdG9wOmlULGZhRGVza3RvcEFsdDplSHIsZmFQbGFuZUNpcmNsZVhtYXJrOnRIcixmYVJldHdlZXQ6ckhyLGZhVXNlckdlYXI6SkhlLGZhVXNlckNvZzphSHIsZmFCb3JkZXJBbGw6aUhyLGZhQ29pbnM6c0hyLGZhTWFyc1N0cm9rZTpuSHIsZmFIYW5kc2hha2VBbmdsZTplcWUsZmFIYW5kc0hlbHBpbmc6b0hyLGZhQXJyb3dEb3duOmxIcixmYUxvY2F0aW9uRG90OnRxZSxmYU1hcE1hcmtlckFsdDpjSHIsZmFQbHVnQ2lyY2xlRXhjbGFtYXRpb246ZEhyLGZhQ29va2llQml0ZTp1SHIsZmFTY3Jld2RyaXZlcldyZW5jaDpycWUsZmFUb29sczpwSHIsZmFJbmRlbnQ6ZkhyLGZhQmFyczphcWUsZmFOYXZpY29uOmhIcixmYUhhbmRzUHJheWluZzppcWUsZmFQcmF5aW5nSGFuZHM6bUhyLGZhVmlydXNlczpnSHIsZmFTY2hvb2xGbGFnOmJIcixmYVRyYWRlbWFyazp4SHIsZmFGaXJlQnVybmVyOnZIcixmYUZhY2VTbWlsZUJlYW06c3FlLGZhU21pbGVCZWFtOnlIcixmYVRlbnRBcnJvd0xlZnRSaWdodDp3SHIsZmFSb3V0ZTprSHIsZmFBbmdsZXNVcDpucWUsZmFBbmdsZURvdWJsZVVwOlNIcixmYUJ1Y2tldDpNSHIsZmFMZXNzVGhhbkVxdWFsOkNIcixmYUZvbGRlckNsb3NlZDp6SHIsZmFQZXJzb25UaHJvdWdoV2luZG93Ol9IcixmYVNjaG9vbExvY2s6VEhyLGZhUGVyc29uQnVyc3Q6TEhyLGZhTGVmdExvbmc6b3FlLGZhTG9uZ0Fycm93QWx0TGVmdDpESHIsZmFMb2NhdGlvbkNyb3NzaGFpcnM6bHFlLGZhTG9jYXRpb246JEhyLGZhUGVyc29uRG90c0Zyb21MaW5lOmNxZSxmYURpYWdub3NlczpBSHIsZmFHYXVnZVNpbXBsZUhpZ2g6YXBlLGZhVGFjaG9tZXRlcjpFSHIsZmFUYWNob21ldGVyRmFzdDpJSHIsZmFBbmdsZXNMZWZ0OmRxZSxmYUFuZ2xlRG91YmxlTGVmdDpQSHIsZmFVcERvd246dXFlLGZhQXJyb3dzQWx0VjpOSHIsZmFCYXR0ZXJ5RW1wdHk6cHFlLGZhQmF0dGVyeTA6T0hyLGZhS2V5Ym9hcmQ6UkhyLGZhQ29va2llOkZIcixmYVN0b3B3YXRjaDpCSHIsZmFFamVjdDpISHIsZmFTYXRlbGxpdGVEaXNoOnFIcixmYUZhY2VSb2xsaW5nRXllczpmcWUsZmFNZWhSb2xsaW5nRXllczpWSHIsZmFMaXN0Q2hlY2s6aHFlLGZhVGFza3M6akhyLGZhU2Fja1htYXJrOlVIcixmYUhhc2h0YWc6V0hyLGZhVHJhaW46R0hyLGZhR2FtZXBhZDpZSHIsZmFGaWxlRXhwb3J0Om1xZSxmYUFycm93UmlnaHRGcm9tRmlsZTpLSHIsZmFGYWNlR3JpbWFjZTpncWUsZmFHcmltYWNlOlpIcixmYVRyYWluU3Vid2F5OmJxZSxmYVN1YndheTpRSHIsZmFDaXJjbGVEb3Q6eHFlLGZhRG90Q2lyY2xlOlhIcixmYU9iamVjdEdyb3VwOkpIcixmYVNoaXA6ZXFyLGZhQzp0cXIsZmFTcXVhcmVQaG9uZTp2cWUsZmFQaG9uZVNxdWFyZTpycXIsZmFSdWxlckNvbWJpbmVkOmFxcixmYUFycm93c1JvdGF0ZTppcGUsZmFSZWZyZXNoOmlxcixmYVN5bmM6c3FyLGZhUGVyc29uRHJlc3M6eXFlLGZhRmVtYWxlOm5xcixmYUJvb2tPcGVuOm9xcixmYUZvbGRlclRyZWU6bHFyLGZhVmlyZ286Y3FyLGZhQm94QXJjaGl2ZTp3cWUsZmFBcmNoaXZlOmRxcixmYVRlbnRBcnJvd0Rvd25Ub0xpbmU6dXFyLGZhUXJjb2RlOnBxcixmYURyYWdvbjpmcXIsZmFIb3VyZ2xhc3NFbmQ6a3FlLGZhSG91cmdsYXNzMzpocXIsZmFHcmlwOkF5LGZhR3JpZEhvcml6b250YWw6bXFyLGZhR3JpcEhvcml6b250YWw6Z3FyLGZhQm9yZGVyVG9wTGVmdDpTcWUsZmFCb3JkZXJTdHlsZTpicXIsZmFMaXN0VWw6TXFlLGZhTGlzdERvdHM6eHFyLGZhUGVvcGxlUm9iYmVyeTp2cXIsZmFNb2JpbGVCdXR0b246eXFyLGZhQXJyb3dEb3duQVo6c3BlLGZhU29ydEFscGhhQXNjOndxcixmYVNvcnRBbHBoYURvd246a3FyLGZhTW9uZXlCaWxsOlNxcixmYUNpcmNsZU1pbnVzOkNxZSxmYU1pbnVzQ2lyY2xlOk1xcixmYUFycm93UG9pbnRlcjp6cWUsZmFNb3VzZVBvaW50ZXI6Q3FyLGZhU3F1YXJlU2hhcmVOb2RlczpfcWUsZmFTaGFyZUFsdFNxdWFyZTp6cXIsZmFUYWJsZUNlbGxzTGFyZ2U6VHFlLGZhVGhMYXJnZTpfcXIsZmFDYXQ6VHFyLGZhQ2FsZW5kYXJXZWVrOkxxcixmYUNvZGVDb21wYXJlOkRxcixmYUxlbzokcXIsZmFSb2FkQ2lyY2xlWG1hcms6QXFyLGZhUGFsbGV0OkVxcixmYUNha2VDYW5kbGVzOm5wZSxmYUJpcnRoZGF5Q2FrZTpJcXIsZmFDYWtlOlBxcixmYUJ1Z1NsYXNoOk5xcixmYVRhcnA6T3FyLGZhRGlhZ3JhbVByZWRlY2Vzc29yOlJxcixmYUZhY2VGbHVzaGVkOkxxZSxmYUZsdXNoZWQ6RnFyLGZhRGlhZ3JhbU5leHQ6QnFyLGZhQW5jaG9yQ2lyY2xlWG1hcms6SHFyLGZhUGVyc29uQ2lyY2xlWG1hcms6cXFyLGZhU3BhOlZxcixmYUFyaWVzOmpxcixmYUJhcnNQcm9ncmVzczpEcWUsZmFUYXNrc0FsdDpVcXIsZmFIZWFydENpcmNsZUNoZWNrOldxcixmYU1hcnNTdHJva2VSaWdodDokcWUsZmFNYXJzU3Ryb2tlSDpHcXIsZmFUb3dlck9ic2VydmF0aW9uOllxcixmYVN0ZXJsaW5nU2lnbjpvcGUsZmFHYnA6S3FyLGZhUG91bmRTaWduOlpxcixmYUZhdWNldERyaXA6UXFyLGZhQ2lyY2xlSW5mbzpzVCxmYUluZm9DaXJjbGU6WHFyLGZhRmVhdGhlcjpKcXIsZmFCb3dsUmljZTplVnIsZmFTdGFySGFsZlN0cm9rZTpBcWUsZmFTdGFySGFsZkFsdDp0VnIsZmFUZW1wZXJhdHVyZUFycm93RG93bjpFcWUsZmFUZW1wZXJhdHVyZURvd246clZyLGZhTWFza1ZlbnRpbGF0b3I6YVZyLGZhRmlsZVZpZGVvOmlWcixmYUFycm93VHJlbmREb3duOnNWcixmYU9pbENhbjpuVnIsZmFQZW9wbGVDYXJyeUJveDpJcWUsZmFQZW9wbGVDYXJyeTpvVnIsZmFDaGFpcjpsVnIsZmFXaW5kOmNWcixmYUxheWVyR3JvdXA6ZFZyLGZhSGVhZFNpZGVNYXNrOnVWcixmYUhhbmRzOmxwZSxmYVNpZ25MYW5ndWFnZTpwVnIsZmFTaWduaW5nOmZWcixmYVRhYmxldHM6aFZyLGZhV2VpZ2h0SGFuZ2luZzptVnIsZmFEaWNlOmdWcixmYVNob3BTbGFzaDpQcWUsZmFTdG9yZUFsdFNsYXNoOmJWcixmYVNvcnREb3duOk5xZSxmYVNvcnREZXNjOnhWcixmYVBlc2V0YVNpZ246dlZyLGZhVGFibGV0U2NyZWVuQnV0dG9uOk9xZSxmYVRhYmxldEFsdDp5VnIsZmFIYW5kSG9sZGluZ0RvbGxhcjpScWUsZmFIYW5kSG9sZGluZ1VzZDp3VnIsZmFTaGllbGQ6RnFlLGZhU2hpZWxkQmxhbms6a1ZyLGZhRmFjZUxhdWdoOkJxZSxmYUxhdWdoOlNWcixmYUhhbmRzSG9sZGluZzpNVnIsZmFDYXJ0U2hvcHBpbmc6SHFlLGZhU2hvcHBpbmdDYXJ0OkNWcixmYU9jdGFnb246elZyLGZhSGFuZFBvaW50ZXI6X1ZyLGZhUmVnaXN0ZXJlZDpUVnIsZmFIb3VzZVNpZ25hbDpMVnIsZmFCYW5nbGFkZXNoaVRha2FTaWduOkRWcn19KTt2YXIgb1QscXFlPXUoKCk9PntvVD17eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsInN0cm9rZS13aWR0aCI6Miwic3Ryb2tlLWxpbmVjYXAiOiJyb3VuZCIsInN0cm9rZS1saW5lam9pbiI6InJvdW5kIn19KTt2YXIgQVZyLElwLFZxZT11KCgpPT57cXFlKCk7QVZyPWkoKFt0LGUscl0pPT57bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdCk7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gocz0+e2Euc2V0QXR0cmlidXRlKHMsU3RyaW5nKGVbc10pKX0pLHI/Lmxlbmd0aCYmci5mb3JFYWNoKHM9PntsZXQgbj1BVnIocyk7YS5hcHBlbmRDaGlsZChuKX0pLGF9LCJjcmVhdGVTVkdFbGVtZW50IiksSXA9aSgodCxlPXt9KT0+e2xldCBhPXsuLi5vVCwuLi5lfTtyZXR1cm4gQVZyKFsic3ZnIixhLHRdKX0sImNyZWF0ZUVsZW1lbnQiKX0pO3ZhciBqcWUsRVZyPXUoKCk9PntqcWU9aSh0PT57Zm9yKGxldCBlIGluIHQpaWYoZS5zdGFydHNXaXRoKCJhcmlhLSIpfHxlPT09InJvbGUifHxlPT09InRpdGxlIilyZXR1cm4hMDtyZXR1cm4hMX0sImhhc0ExMXlQcm9wIil9KTt2YXIgVXFlLElWcj11KCgpPT57VXFlPWkoKC4uLnQpPT50LmZpbHRlcigoZSxyLGEpPT4hIWUmJmUudHJpbSgpIT09IiImJmEuaW5kZXhPZihlKT09PXIpLmpvaW4oIiAiKS50cmltKCksIm1lcmdlQ2xhc3NlcyIpfSk7dmFyIFdxZSxQVnI9dSgoKT0+e1dxZT1pKHQ9PnQucmVwbGFjZSgvXihbQS1aXSl8W1xzLV9dKyhcdykvZywoZSxyLGEpPT5hP2EudG9VcHBlckNhc2UoKTpyLnRvTG93ZXJDYXNlKCkpLCJ0b0NhbWVsQ2FzZSIpfSk7dmFyIEdxZSxOVnI9dSgoKT0+e1BWcigpO0dxZT1pKHQ9PntsZXQgZT1XcWUodCk7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX0sInRvUGFzY2FsQ2FzZSIpfSk7dmFyIE9WcixZcWUsTHBlLFJWcj11KCgpPT57VnFlKCk7cXFlKCk7RVZyKCk7SVZyKCk7TlZyKCk7T1ZyPWkodD0+QXJyYXkuZnJvbSh0LmF0dHJpYnV0ZXMpLnJlZHVjZSgoZSxyKT0+KGVbci5uYW1lXT1yLnZhbHVlLGUpLHt9KSwiZ2V0QXR0cnMiKSxZcWU9aSh0PT50eXBlb2YgdD09InN0cmluZyI/dDohdHx8IXQuY2xhc3M/IiI6dC5jbGFzcyYmdHlwZW9mIHQuY2xhc3M9PSJzdHJpbmciP3QuY2xhc3Muc3BsaXQoIiAiKTp0LmNsYXNzJiZBcnJheS5pc0FycmF5KHQuY2xhc3MpP3QuY2xhc3M6IiIsImdldENsYXNzTmFtZXMiKSxMcGU9aSgodCx7bmFtZUF0dHI6ZSxpY29uczpyLGF0dHJzOmF9KT0+e2xldCBzPXQuZ2V0QXR0cmlidXRlKGUpO2lmKHM9PW51bGwpcmV0dXJuO2xldCBuPUdxZShzKSxvPXJbbl07aWYoIW8pcmV0dXJuIGNvbnNvbGUud2FybihgJHt0Lm91dGVySFRNTH0gaWNvbiBuYW1lIHdhcyBub3QgZm91bmQgaW4gdGhlIHByb3ZpZGVkIGljb25zIG9iamVjdC5gKTtsZXQgbD1PVnIodCksYz1qcWUobCk/e306eyJhcmlhLWhpZGRlbiI6InRydWUifSxkPXsuLi5vVCwiZGF0YS1sdWNpZGUiOnMsLi4uYywuLi5hLC4uLmx9LGY9WXFlKGwpLHA9WXFlKGEpLGg9VXFlKCJsdWNpZGUiLGBsdWNpZGUtJHtzfWAsLi4uZiwuLi5wKTtoJiZPYmplY3QuYXNzaWduKGQse2NsYXNzOmh9KTtsZXQgbT1JcChvLGQpO3JldHVybiB0LnBhcmVudE5vZGU/LnJlcGxhY2VDaGlsZChtLHQpfSwicmVwbGFjZUVsZW1lbnQiKX0pO3ZhciBsVCxLcWU9dSgoKT0+e2xUPVtbInBhdGgiLHtkOiJtMTQgMTIgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZWNyJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV19KTt2YXIgY1QsWnFlPXUoKCk9PntjVD1bWyJwYXRoIix7ZDoibTE0IDExIDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE4IDE2VjcifV0sWyJwYXRoIix7ZDoibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV1dfSk7dmFyIGRULFFxZT11KCgpPT57ZFQ9W1sicGF0aCIse2Q6Im0xNSAxNiAyLjUzNi03LjMyOGExLjAyIDEuMDIgMSAwIDEgMS45MjggMEwyMiAxNiJ9XSxbInBhdGgiLHtkOiJNMTUuNjk3IDE0aDUuNjA2In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXX0pO3ZhciB1VCxYcWU9dSgoKT0+e3VUPVtbImNpcmNsZSIse2N4OiIxNiIsY3k6IjQiLHI6IjEifV0sWyJwYXRoIix7ZDoibTE4IDE5IDEtNy02IDEifV0sWyJwYXRoIix7ZDoibTUgOCAzLTMgNS41IDMtMi4zNiAzLjUifV0sWyJwYXRoIix7ZDoiTTQuMjQgMTQuNWE1IDUgMCAwIDAgNi44OCA2In1dLFsicGF0aCIse2Q6Ik0xMy43NiAxNy41YTUgNSAwIDAgMC02Ljg4LTYifV1dfSk7dmFyIHBULEpxZT11KCgpPT57cFQ9W1sicGF0aCIse2Q6Ik0yMiAxMmgtMi40OGEyIDIgMCAwIDAtMS45MyAxLjQ2bC0yLjM1IDguMzZhLjI1LjI1IDAgMCAxLS40OCAwTDkuMjQgMi4xOGEuMjUuMjUgMCAwIDAtLjQ4IDBsLTIuMzUgOC4zNkEyIDIgMCAwIDEgNC40OSAxMkgyIn1dXX0pO3ZhciBmVCxlVmU9dSgoKT0+e2ZUPVtbInBhdGgiLHtkOiJNMTggMTcuNWEyLjUgMi41IDAgMSAxLTQgMi4wM1YxMiJ9XSxbInBhdGgiLHtkOiJNNiAxMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik02IDhoMTIifV0sWyJwYXRoIix7ZDoiTTYuNiAxNS41NzJBMiAyIDAgMSAwIDEwIDE3di01In1dXX0pO3ZhciBoVCx0VmU9dSgoKT0+e2hUPVtbInBhdGgiLHtkOiJNNSAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtMSJ9XSxbInBhdGgiLHtkOiJtMTIgMTUgNSA2SDdaIn1dXX0pO3ZhciBubSxyVmU9dSgoKT0+e25tPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dLFsicGF0aCIse2Q6Im05IDEzIDIgMiA0LTQifV1dfSk7dmFyIG1ULGFWZT11KCgpPT57bVQ9W1sicGF0aCIse2Q6Ik02Ljg3IDYuODdhOCA4IDAgMSAwIDExLjI2IDExLjI2In1dLFsicGF0aCIse2Q6Ik0xOS45IDE0LjI1YTggOCAwIDAgMC05LjE1LTkuMTUifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjI2IDE4LjY3IDQgMjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCA0IDIgNiJ9XV19KTt2YXIgb20saVZlPXUoKCk9PntvbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dXX0pO3ZhciBsbSxzVmU9dSgoKT0+e2xtPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dLFsicGF0aCIse2Q6Ik05IDEzaDYifV1dfSk7dmFyIGdULG5WZT11KCgpPT57Z1Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTEyIDl2NGwyIDIifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV1dfSk7dmFyIGJULG9WZT11KCgpPT57YlQ9W1sicGF0aCIse2Q6Ik0xMSAyMWMwLTIuNSAyLTIuNSAyLTUifV0sWyJwYXRoIix7ZDoiTTE2IDIxYzAtMi41IDItMi41IDItNSJ9XSxbInBhdGgiLHtkOiJtMTkgOC0uOCAzYTEuMjUgMS4yNSAwIDAgMS0xLjIgMUg3YTEuMjUgMS4yNSAwIDAgMS0xLjItMUw1IDgifV0sWyJwYXRoIix7ZDoiTTIxIDNhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgMjFjMC0yLjUgMi0yLjUgMi01In1dXX0pO3ZhciB4VCxsVmU9dSgoKT0+e3hUPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIxMSAzIDExIDExIDE0IDggMTcgMTEgMTcgMyJ9XV19KTt2YXIgdlQsY1ZlPXUoKCk9Pnt2VD1bWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTEwIDE2djRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTQifV0sWyJwYXRoIix7ZDoiTTEwIDhWNGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY0In1dLFsicGF0aCIse2Q6Ik0yMCAxNnYxYTIgMiAwIDAgMS0yIDJoLTJhMiAyIDAgMCAxLTItMnYtMSJ9XSxbInBhdGgiLHtkOiJNMTQgOFY3YzAtMS4xLjktMiAyLTJoMmEyIDIgMCAwIDEgMiAydjEifV1dfSk7dmFyIHlULGRWZT11KCgpPT57eVQ9W1sicGF0aCIse2Q6Ik0xMiAydjIwIn1dLFsicGF0aCIse2Q6Ik04IDEwSDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoNCJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoNGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtNCJ9XSxbInBhdGgiLHtkOiJNOCAyMEg3YTIgMiAwIDAgMS0yLTJ2LTJjMC0xLjEuOS0yIDItMmgxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGgxYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAyaC0xIn1dXX0pO3ZhciB3VCx1VmU9dSgoKT0+e3dUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiOSIseDoiMTQiLHk6IjkiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMkgyIn1dXX0pO3ZhciBrVCxwVmU9dSgoKT0+e2tUPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiMiIseToiNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNiIseDoiOSIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMlYyIn1dXX0pO3ZhciBTVCxmVmU9dSgoKT0+e1NUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE3IDdWMiJ9XSxbInBhdGgiLHtkOiJNNyAyMnYtMyJ9XSxbInBhdGgiLHtkOiJNNyA1VjIifV1dfSk7dmFyIE1ULGhWZT11KCgpPT57TVQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI0Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTQiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMCAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMCAydjIwIn1dXX0pO3ZhciBDVCxtVmU9dSgoKT0+e0NUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAydjIwIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIwIn1dXX0pO3ZhciB6VCxnVmU9dSgoKT0+e3pUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE2Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XV19KTt2YXIgX1QsYlZlPXUoKCk9PntfVD1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxMiIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDJ2MjAifV1dfSk7dmFyIFRULHhWZT11KCgpPT57VFQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI2Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTYiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDJ2MjAifV1dfSk7dmFyIExULHZWZT11KCgpPT57TFQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiI5Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAyMlYyIn1dLFsicGF0aCIse2Q6Ik0yMCAyMlYyIn1dXX0pO3ZhciBEVCx5VmU9dSgoKT0+e0RUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMyIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE1Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAydjIwIn1dXX0pO3ZhciAkVCx3VmU9dSgoKT0+eyRUPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiOSIseDoiMTQiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAySDIifV1dfSk7dmFyIEFULGtWZT11KCgpPT57QVQ9W1sicmVjdCIse3dpZHRoOiI5IixoZWlnaHQ6IjYiLHg6IjYiLHk6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiNiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMnYyMCJ9XV19KTt2YXIgRVQsU1ZlPXUoKCk9PntFVD1bWyJwYXRoIix7ZDoiTTIyIDE3aC0zIn1dLFsicGF0aCIse2Q6Ik0yMiA3aC01In1dLFsicGF0aCIse2Q6Ik01IDE3SDIifV0sWyJwYXRoIix7ZDoiTTcgN0gyIn1dLFsicmVjdCIse3g6IjUiLHk6IjE0Iix3aWR0aDoiMTQiLGhlaWdodDoiNiIscng6IjIifV0sWyJyZWN0Iix7eDoiNyIseToiNCIsd2lkdGg6IjEwIixoZWlnaHQ6IjYiLHJ4OiIyIn1dXX0pO3ZhciBJVCxNVmU9dSgoKT0+e0lUPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNMiA0aDIwIn1dXX0pO3ZhciBQVCxDVmU9dSgoKT0+e1BUPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyMGgyMCJ9XSxbInBhdGgiLHtkOiJNMiAxMGgyMCJ9XV19KTt2YXIgTlQselZlPXUoKCk9PntOVD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE2IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV1dfSk7dmFyIE9ULF9WZT11KCgpPT57T1Q9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDIyaDIwIn1dXX0pO3ZhciBSVCxUVmU9dSgoKT0+e1JUPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyaDIwIn1dXX0pO3ZhciBGVCxMVmU9dSgoKT0+e0ZUPVtbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiOSIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDIwSDIifV0sWyJwYXRoIix7ZDoiTTIyIDRIMiJ9XV19KTt2YXIgQlQsRFZlPXUoKCk9PntCVD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV0sWyJwYXRoIix7ZDoiTTIgM2gyMCJ9XV19KTt2YXIgSFQsJFZlPXUoKCk9PntIVD1bWyJwYXRoIix7ZDoiTTEwIDEwSDYifV0sWyJwYXRoIix7ZDoiTTE0IDE4VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTFhMSAxIDAgMCAwIDEgMWgyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOGgyYTEgMSAwIDAgMCAxLTF2LTMuMjhhMSAxIDAgMCAwLS42ODQtLjk0OGwtMS45MjMtLjY0MWExIDEgMCAwIDEtLjU3OC0uNTAybC0xLjUzOS0zLjA3NkExIDEgMCAwIDAgMTYuMzgyIDhIMTQifV0sWyJwYXRoIix7ZDoiTTggOHY0In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV1dfSk7dmFyIHFULEFWZT11KCgpPT57cVQ9W1sicGF0aCIse2Q6Ik0xNiAxMmgzIn1dLFsicGF0aCIse2Q6Ik0xNy41IDEyYTggOCAwIDAgMS04IDhBNC41IDQuNSAwIDAgMSA1IDE1LjVjMC02IDgtNCA4LTguNWEzIDMgMCAxIDAtNiAwYzAgMyAyLjUgOC41IDEyIDEzIn1dXX0pO3ZhciBWVCxFVmU9dSgoKT0+e1ZUPVtbInBhdGgiLHtkOiJNMTAgMTdjLTUtMy03LTctNy05YTIgMiAwIDAgMSA0IDBjMCAyLjUtNSAyLjUtNSA2IDAgMS43IDEuMyAzIDMgMyAyLjggMCA1LTIuMiA1LTUifV0sWyJwYXRoIix7ZDoiTTIyIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01In1dXX0pO3ZhciBqVCxJVmU9dSgoKT0+e2pUPVtbInBhdGgiLHtkOiJNMTAgMnY1LjYzMmMwIC40MjQtLjI3Mi43OTUtLjY1My45ODJBNiA2IDAgMCAwIDYgMTRjLjAwNiA0IDMgNyA1IDgifV0sWyJwYXRoIix7ZDoiTTEwIDVIOGEyIDIgMCAwIDAgMCA0aC42OCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1LjYzMmMwIC40MjQuMjcyLjc5NS42NTIuOTgyQTYgNiAwIDAgMSAxOCAxNGMwIDQtMyA3LTUgOCJ9XSxbInBhdGgiLHtkOiJNMTQgNWgyYTIgMiAwIDAgMSAwIDRoLS42OCJ9XSxbInBhdGgiLHtkOiJNMTggMjJINiJ9XSxbInBhdGgiLHtkOiJNOSAyaDYifV1dfSk7dmFyIFVULFBWZT11KCgpPT57VVQ9W1sicGF0aCIse2Q6Ik0xMiA2djE2In1dLFsicGF0aCIse2Q6Im0xOSAxMyAyLTFhOSA5IDAgMCAxLTE4IDBsMiAxIn1dLFsicGF0aCIse2Q6Ik05IDExaDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dXX0pO3ZhciBXVCxOVmU9dSgoKT0+e1dUPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIn1dLFsicGF0aCIse2Q6Ik03LjUgOCAxMCA5In1dLFsicGF0aCIse2Q6Im0xNCA5IDIuNS0xIn1dLFsicGF0aCIse2Q6Ik05IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBoLjAxIn1dXX0pO3ZhciBHVCxPVmU9dSgoKT0+e0dUPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg4In1dLFsicGF0aCIse2Q6Ik04IDloMiJ9XSxbInBhdGgiLHtkOiJNMTQgOWgyIn1dXX0pO3ZhciBZVCxSVmU9dSgoKT0+e1lUPVtbInBhdGgiLHtkOiJNNyAxMEg2YTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWg0In1dLFsicGF0aCIse2Q6Ik03IDVhMSAxIDAgMCAxIDEtMWgxM2ExIDEgMCAwIDEgMSAxIDcgNyAwIDAgMS03IDdIOGExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOSAxMnY1In1dLFsicGF0aCIse2Q6Ik0xNSAxMnY1In1dLFsicGF0aCIse2Q6Ik01IDIwYTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzIDEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xIn1dXX0pO3ZhciBLVCxGVmU9dSgoKT0+e0tUPVtbInBhdGgiLHtkOiJNMiAxMiA3IDIifV0sWyJwYXRoIix7ZDoibTcgMTIgNS0xMCJ9XSxbInBhdGgiLHtkOiJtMTIgMTIgNS0xMCJ9XSxbInBhdGgiLHtkOiJtMTcgMTIgNS0xMCJ9XSxbInBhdGgiLHtkOiJNNC41IDdoMTUifV0sWyJwYXRoIix7ZDoiTTEyIDE2djYifV1dfSk7dmFyIFpULEJWZT11KCgpPT57WlQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNC4zMSA4IDUuNzQgOS45NCJ9XSxbInBhdGgiLHtkOiJNOS42OSA4aDExLjQ4In1dLFsicGF0aCIse2Q6Im03LjM4IDEyIDUuNzQtOS45NCJ9XSxbInBhdGgiLHtkOiJNOS42OSAxNiAzLjk1IDYuMDYifV0sWyJwYXRoIix7ZDoiTTE0LjMxIDE2SDIuODMifV0sWyJwYXRoIix7ZDoibTE2LjYyIDEyLTUuNzQgOS45NCJ9XV19KTt2YXIgUVQsSFZlPXUoKCk9PntRVD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dXX0pO3ZhciBYVCxxVmU9dSgoKT0+e1hUPVtbInBhdGgiLHtkOiJNMTIgNi41MjhWM2ExIDEgMCAwIDEgMS0xaDAifV0sWyJwYXRoIix7ZDoiTTE4LjIzNyAyMUExNSAxNSAwIDAgMCAyMiAxMWE2IDYgMCAwIDAtMTAtNC40NzJBNiA2IDAgMCAwIDIgMTFhMTUuMSAxNS4xIDAgMCAwIDMuNzYzIDEwIDMgMyAwIDAgMCAzLjY0OC42NDggNS41IDUuNSAwIDAgMSA1LjE3OCAwQTMgMyAwIDAgMCAxOC4yMzcgMjEifV1dfSk7dmFyIEpULFZWZT11KCgpPT57SlQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgOHYxMWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Im05IDE1IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTEyIDEydjkifV1dfSk7dmFyIGVMLGpWZT11KCgpPT57ZUw9W1sicmVjdCIse3g6IjIiLHk6IjQiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDR2NCJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsicGF0aCIse2Q6Ik02IDR2NCJ9XV19KTt2YXIgdEwsVVZlPXUoKCk9Pnt0TD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjUiLHg6IjIiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik00IDh2MTFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjgifV0sWyJwYXRoIix7ZDoibTkuNSAxNyA1LTUifV0sWyJwYXRoIix7ZDoibTkuNSAxMiA1IDUifV1dfSk7dmFyIHJMLFdWZT11KCgpPT57ckw9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4In1dLFsicGF0aCIse2Q6Ik0xMCAxMmg0In1dXX0pO3ZhciBhTCxHVmU9dSgoKT0+e2FMPVtbInBhdGgiLHtkOiJNMTkgOVY2YTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTMgMTZhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41VjExYTIgMiAwIDAgMC00IDB6In1dLFsicGF0aCIse2Q6Ik01IDE4djIifV0sWyJwYXRoIix7ZDoiTTE5IDE4djIifV1dfSk7dmFyIGlMLFlWZT11KCgpPT57aUw9W1sicGF0aCIse2Q6Ik0xNCA4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDAgMSAxaDMuMjkzYS43MDcuNzA3IDAgMCAxIC41IDEuMjA3bC02LjkzOSA2LjkzOWExLjIwNyAxLjIwNyAwIDAgMS0xLjcwOCAwbC02Ljk0LTYuOTRhLjcwNy43MDcgMCAwIDEgLjUtMS4yMDZIOGExIDEgMCAwIDAgMS0xVjlhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTkgNGg2In1dXX0pO3ZhciBzTCxLVmU9dSgoKT0+e3NMPVtbInBhdGgiLHtkOiJNOSA1YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjZhMSAxIDAgMCAwIDEgMWgzLjI5M2EuNzA3LjcwNyAwIDAgMSAuNSAxLjIwN2wtNy4wODYgNy4wODZhMSAxIDAgMCAxLTEuNDE0IDBsLTcuMDg2LTcuMDg2YS43MDcuNzA3IDAgMCAxIC41LTEuMjA3SDhhMSAxIDAgMCAwIDEtMXoifV1dfSk7dmFyIG5MLFpWZT11KCgpPT57bkw9W1sicGF0aCIse2Q6Ik0xMyA5YTEgMSAwIDAgMS0xLTFWNC43MDdhLjcwNy43MDcgMCAwIDAtMS4yMDctLjVsLTYuOTQgNi45NGExLjIwNyAxLjIwNyAwIDAgMCAwIDEuNzA3bDYuOTQgNi45NGEuNzA3LjcwNyAwIDAgMCAxLjIwNy0uNVYxNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMjAgOXY2In1dXX0pO3ZhciBvTCxRVmU9dSgoKT0+e29MPVtbInBhdGgiLHtkOiJNMTAuNzkzIDE5Ljc5M2EuNzA3LjcwNyAwIDAgMCAxLjIwNy0uNVYxNmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC02YTEgMSAwIDAgMS0xLTFWNC43MDdhLjcwNy43MDcgMCAwIDAtMS4yMDctLjVsLTYuOTQgNi45NGExLjIwNyAxLjIwNyAwIDAgMCAwIDEuNzA3eiJ9XV19KTt2YXIgbEwsWFZlPXUoKCk9PntsTD1bWyJwYXRoIix7ZDoiTTExIDlhMSAxIDAgMCAwIDEtMVY0LjcwN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy0uNWw2Ljk0IDYuOTRhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi45NCA2Ljk0YS43MDcuNzA3IDAgMCAxLTEuMjA3LS41VjE2YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik00IDl2NiJ9XV19KTt2YXIgY0wsSlZlPXUoKCk9PntjTD1bWyJwYXRoIix7ZDoiTTEzLjIwNyAxOS43OTNhLjcwNy43MDcgMCAwIDEtMS4yMDctLjVWMTZhMSAxIDAgMCAwLTEtMUg1YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMCAxLTFWNC43MDdhLjcwNy43MDcgMCAwIDEgMS4yMDctLjVsNi45NCA2Ljk0YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDd6In1dXX0pO3ZhciBkTCxlamU9dSgoKT0+e2RMPVtbInBhdGgiLHtkOiJNMTQgMTZhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDEgMS0xaDMuMjkzYS43MDcuNzA3IDAgMCAwIC41LTEuMjA3bC02LjkzOS02LjkzOWExLjIwNyAxLjIwNyAwIDAgMC0xLjcwOCAwbC02Ljk0IDYuOTRhLjcwNy43MDcgMCAwIDAgLjUgMS4yMDZIOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAwIDEgMXoifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV19KTt2YXIgdUwsdGplPXUoKCk9Pnt1TD1bWyJwYXRoIix7ZDoiTTkgMTlhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTF2LTZhMSAxIDAgMCAxIDEtMWgzLjI5M2EuNzA3LjcwNyAwIDAgMCAuNS0xLjIwN2wtNy4wODYtNy4wODZhMSAxIDAgMCAwLTEuNDE0IDBsLTcuMDg2IDcuMDg2YS43MDcuNzA3IDAgMCAwIC41IDEuMjA3SDhhMSAxIDAgMCAxIDEgMXoifV1dfSk7dmFyIHBMLHJqZT11KCgpPT57cEw9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInJlY3QiLHt4OiIxNSIseToiNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDIwdi02aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAyMGg0In1dXX0pO3ZhciBmTCxhamU9dSgoKT0+e2ZMPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoiTTE3IDEwVjRoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDEwaDQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XV19KTt2YXIgY20saWplPXUoKCk9PntjbT1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0yMCA4aC01In1dLFsicGF0aCIse2Q6Ik0xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAifV0sWyJwYXRoIix7ZDoiTTE1IDE0aDVsLTUgNmg1In1dXX0pO3ZhciBoTCxzamU9dSgoKT0+e2hMPVtbInBhdGgiLHtkOiJNMTkgM0g1In1dLFsicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im02IDE1IDYgNiA2LTYifV1dfSk7dmFyIG1MLG5qZT11KCgpPT57bUw9W1sicGF0aCIse2Q6Ik0xNyA3IDcgMTcifV0sWyJwYXRoIix7ZDoiTTE3IDE3SDdWNyJ9XV19KTt2YXIgZ0wsb2plPXUoKCk9PntnTD1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0xMSA0aDQifV0sWyJwYXRoIix7ZDoiTTExIDhoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoMTAifV1dfSk7dmFyIGJMLGxqZT11KCgpPT57Ykw9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAifV0sWyJwYXRoIix7ZDoiTTE3IDd2MTBINyJ9XV19KTt2YXIgeEwsY2plPXUoKCk9Pnt4TD1bWyJwYXRoIix7ZDoiTTEyIDJ2MTQifV0sWyJwYXRoIix7ZDoibTE5IDktNyA3LTctNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjIxIixyOiIxIn1dXX0pO3ZhciB2TCxkamU9dSgoKT0+e3ZMPVtbInBhdGgiLHtkOiJNMTIgMTdWMyJ9XSxbInBhdGgiLHtkOiJtNiAxMSA2IDYgNi02In1dLFsicGF0aCIse2Q6Ik0xOSAyMUg1In1dXX0pO3ZhciB5TCx1amU9dSgoKT0+e3lMPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoibTIxIDgtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTcgNHYxNiJ9XV19KTt2YXIgZG0scGplPXUoKCk9PntkbT1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0xMSA0aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSA4aDcifV0sWyJwYXRoIix7ZDoiTTExIDEyaDQifV1dfSk7dmFyIHVtLGZqZT11KCgpPT57dW09W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTUgNGg1bC01IDZoNSJ9XSxbInBhdGgiLHtkOiJNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMThoLTUifV1dfSk7dmFyIHdMLGhqZT11KCgpPT57d0w9W1sicGF0aCIse2Q6Ik0xMiA1djE0In1dLFsicGF0aCIse2Q6Im0xOSAxMi03IDctNy03In1dXX0pO3ZhciBrTCxtamU9dSgoKT0+e2tMPVtbInBhdGgiLHtkOiJtOSA2LTYgNiA2IDYifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTQifV0sWyJwYXRoIix7ZDoiTTIxIDE5VjUifV1dfSk7dmFyIFNMLGdqZT11KCgpPT57U0w9W1sicGF0aCIse2Q6Ik04IDMgNCA3bDQgNCJ9XSxbInBhdGgiLHtkOiJNNCA3aDE2In1dLFsicGF0aCIse2Q6Im0xNiAyMSA0LTQtNC00In1dLFsicGF0aCIse2Q6Ik0yMCAxN0g0In1dXX0pO3ZhciBNTCxiamU9dSgoKT0+e01MPVtbInBhdGgiLHtkOiJNMyAxOVY1In1dLFsicGF0aCIse2Q6Im0xMyA2LTYgNiA2IDYifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTQifV1dfSk7dmFyIENMLHhqZT11KCgpPT57Q0w9W1sicGF0aCIse2Q6Im0xMiAxOS03LTcgNy03In1dLFsicGF0aCIse2Q6Ik0xOSAxMkg1In1dXX0pO3ZhciB6TCx2amU9dSgoKT0+e3pMPVtbInBhdGgiLHtkOiJNMyA1djE0In1dLFsicGF0aCIse2Q6Ik0yMSAxMkg3In1dLFsicGF0aCIse2Q6Im0xNSAxOCA2LTYtNi02In1dXX0pO3ZhciBfTCx5amU9dSgoKT0+e19MPVtbInBhdGgiLHtkOiJtMTYgMyA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yMCA3SDQifV0sWyJwYXRoIix7ZDoibTggMjEtNC00IDQtNCJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV19KTt2YXIgVEwsd2plPXUoKCk9PntUTD1bWyJwYXRoIix7ZDoiTTE3IDEySDMifV0sWyJwYXRoIix7ZDoibTExIDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dfSk7dmFyIExMLGtqZT11KCgpPT57TEw9W1sicGF0aCIse2Q6Ik01IDEyaDE0In1dLFsicGF0aCIse2Q6Im0xMiA1IDcgNy03IDcifV1dfSk7dmFyIERMLFNqZT11KCgpPT57REw9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicmVjdCIse3g6IjE1Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjB2LTZoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDIwaDQifV1dfSk7dmFyICRMLE1qZT11KCgpPT57JEw9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyAxMFY0aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGg0In1dLFsicmVjdCIse3g6IjE1Iix5OiIxNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV1dfSk7dmFyIHBtLENqZT11KCgpPT57cG09W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0yMCA4aC01In1dLFsicGF0aCIse2Q6Ik0xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAifV0sWyJwYXRoIix7ZDoiTTE1IDE0aDVsLTUgNmg1In1dXX0pO3ZhciBBTCx6amU9dSgoKT0+e0FMPVtbInBhdGgiLHtkOiJtMjEgMTYtNCA0LTQtNCJ9XSxbInBhdGgiLHtkOiJNMTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XV19KTt2YXIgRUwsX2plPXUoKCk9PntFTD1bWyJwYXRoIix7ZDoibTUgOSA3LTcgNyA3In1dLFsicGF0aCIse2Q6Ik0xMiAxNlYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjEiLHI6IjEifV1dfSk7dmFyIElMLFRqZT11KCgpPT57SUw9W1sicGF0aCIse2Q6Im0xOCA5LTYtNi02IDYifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTQifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dfSk7dmFyIFBMLExqZT11KCgpPT57UEw9W1sicGF0aCIse2Q6Ik03IDE3VjdoMTAifV0sWyJwYXRoIix7ZDoiTTE3IDE3IDcgNyJ9XV19KTt2YXIgZm0sRGplPXUoKCk9PntmbT1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTExIDEyaDQifV0sWyJwYXRoIix7ZDoiTTExIDE2aDcifV0sWyJwYXRoIix7ZDoiTTExIDIwaDEwIn1dXX0pO3ZhciBOTCwkamU9dSgoKT0+e05MPVtbInBhdGgiLHtkOiJNNyA3aDEwdjEwIn1dLFsicGF0aCIse2Q6Ik03IDE3IDE3IDcifV1dfSk7dmFyIE9MLEFqZT11KCgpPT57T0w9W1sicGF0aCIse2Q6Ik01IDNoMTQifV0sWyJwYXRoIix7ZDoibTE4IDEzLTYtNi02IDYifV0sWyJwYXRoIix7ZDoiTTEyIDd2MTQifV1dfSk7dmFyIFJMLEVqZT11KCgpPT57Ukw9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTZoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjBoNCJ9XV19KTt2YXIgaG0sSWplPXUoKCk9PntobT1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE1IDRoNWwtNSA2aDUifV0sWyJwYXRoIix7ZDoiTTE1IDIwdi0zLjVhMi41IDIuNSAwIDAgMSA1IDBWMjAifV0sWyJwYXRoIix7ZDoiTTIwIDE4aC01In1dXX0pO3ZhciBGTCxQamU9dSgoKT0+e0ZMPVtbInBhdGgiLHtkOiJtNSAxMiA3LTcgNyA3In1dLFsicGF0aCIse2Q6Ik0xMiAxOVY1In1dXX0pO3ZhciBCTCxOamU9dSgoKT0+e0JMPVtbInBhdGgiLHtkOiJtNCA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTcgMTdWMyJ9XSxbInBhdGgiLHtkOiJtMTQgNiAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxN1YzIn1dLFsicGF0aCIse2Q6Ik00IDIxaDE2In1dXX0pO3ZhciBITCxPamU9dSgoKT0+e0hMPVtbInBhdGgiLHtkOiJNMTIgNnYxMiJ9XSxbInBhdGgiLHtkOiJNMTcuMTk2IDkgNi44MDQgMTUifV0sWyJwYXRoIix7ZDoibTYuODA0IDkgMTAuMzkyIDYifV1dfSk7dmFyIHFMLFJqZT11KCgpPT57cUw9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE2IDh2NWEzIDMgMCAwIDAgNiAwdi0xYTEwIDEwIDAgMSAwLTQgOCJ9XV19KTt2YXIgVkwsRmplPXUoKCk9PntWTD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMjAuMiAyMC4yYzIuMDQtMi4wMy4wMi03LjM2LTQuNS0xMS45LTQuNTQtNC41Mi05Ljg3LTYuNTQtMTEuOS00LjUtMi4wNCAyLjAzLS4wMiA3LjM2IDQuNSAxMS45IDQuNTQgNC41MiA5Ljg3IDYuNTQgMTEuOSA0LjVaIn1dLFsicGF0aCIse2Q6Ik0xNS43IDE1LjdjNC41Mi00LjU0IDYuNTQtOS44NyA0LjUtMTEuOS0yLjAzLTIuMDQtNy4zNi0uMDItMTEuOSA0LjUtNC41MiA0LjU0LTYuNTQgOS44Ny00LjUgMTEuOSAyLjAzIDIuMDQgNy4zNi4wMiAxMS45LTQuNVoifV1dfSk7dmFyIGpMLEJqZT11KCgpPT57akw9W1sicGF0aCIse2Q6Ik0yIDEwdjMifV0sWyJwYXRoIix7ZDoiTTYgNnYxMSJ9XSxbInBhdGgiLHtkOiJNMTAgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTQgOHY3In1dLFsicGF0aCIse2Q6Ik0xOCA1djEzIn1dLFsicGF0aCIse2Q6Ik0yMiAxMHYzIn1dXX0pO3ZhciBVTCxIamU9dSgoKT0+e1VMPVtbInBhdGgiLHtkOiJtMTUuNDc3IDEyLjg5IDEuNTE1IDguNTI2YS41LjUgMCAwIDEtLjgxLjQ3bC0zLjU4LTIuNjg3YTEgMSAwIDAgMC0xLjE5NyAwbC0zLjU4NiAyLjY4NmEuNS41IDAgMCAxLS44MS0uNDY5bDEuNTE0LTguNTI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiNiJ9XV19KTt2YXIgV0wscWplPXUoKCk9PntXTD1bWyJwYXRoIix7ZDoiTTIgMTNhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMFY0YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgMi0yIn1dXX0pO3ZhciBHTCxWamU9dSgoKT0+e0dMPVtbInBhdGgiLHtkOiJtMTQgMTItOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5In1dLFsicGF0aCIse2Q6Ik0xNSAxNS41YS41LjUgMCAwIDAgLjUuNUE2LjUgNi41IDAgMCAwIDIyIDkuNWEuNS41IDAgMCAwLS41LS41aC0xLjY3MmEyIDIgMCAwIDEtMS40MTQtLjU4NmwtNS4wNjItNS4wNjJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw5LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDUuMDYyIDUuMDYyQTIgMiAwIDAgMSAxNSAxMy44Mjh6In1dXX0pO3ZhciBZTCxqamU9dSgoKT0+e1lMPVtbInBhdGgiLHtkOiJNMTAgMTZjLjUuMyAxLjIuNSAyIC41czEuNS0uMiAyLS41In1dLFsicGF0aCIse2Q6Ik0xNSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5LjM4IDYuODEzQTkgOSAwIDAgMSAyMC44IDEwLjJhMiAyIDAgMCAxIDAgMy42IDkgOSAwIDAgMS0xNy42IDAgMiAyIDAgMCAxIDAtMy42QTkgOSAwIDAgMSAxMiAzYzIgMCAzLjUgMS4xIDMuNSAyLjVzLS45IDIuNS0yIDIuNWMtLjggMC0xLjUtLjQtMS41LTEifV0sWyJwYXRoIix7ZDoiTTkgMTJoLjAxIn1dXX0pO3ZhciBtbSxVamU9dSgoKT0+e21tPVtbInBhdGgiLHtkOiJNMTMuNSAxMC41IDE1IDkifV0sWyJwYXRoIix7ZDoiTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1In1dLFsicGF0aCIse2Q6Ik00LjI5MyAxOS43MDcgNiAxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNSAxLjUtMS41In1dXX0pO3ZhciBLTCxXamU9dSgoKT0+e0tMPVtbInBhdGgiLHtkOiJNNCAxMGE0IDQgMCAwIDEgNC00aDhhNCA0IDAgMCAxIDQgNHYxMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoiTTggMTBoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg4In1dLFsicGF0aCIse2Q6Ik04IDIydi02YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTkgNlY0YTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIFpMLEdqZT11KCgpPT57Wkw9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIFFMLFlqZT11KCgpPT57UUw9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTUuNCAxMGE0IDQgMCAxIDAgMCA0In1dXX0pO3ZhciBnbSxLamU9dSgoKT0+e2dtPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgWEwsWmplPXUoKCk9PntYTD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dfSk7dmFyIEpMLFFqZT11KCgpPT57Skw9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNNyAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNSA5LjRhNCA0IDAgMSAwIDAgNS4yIn1dXX0pO3ZhciBlRCxYamU9dSgoKT0+e2VEPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTggOGg4In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTEzIDE3LTUtMWgxYTQgNCAwIDAgMCAwLTgifV1dfSk7dmFyIHRELEpqZT11KCgpPT57dEQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE2Iix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiI4Iix5MjoiOCJ9XV19KTt2YXIgckQsZVVlPXUoKCk9PntyRD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im05IDggMyAzdjcifV0sWyJwYXRoIix7ZDoibTEyIDExIDMtMyJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik05IDE2aDYifV1dfSk7dmFyIGFELHRVZT11KCgpPT57YUQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgaUQsclVlPXUoKCk9PntpRD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciBzRCxhVWU9dSgoKT0+e3NEPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTYifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIG5ELGlVZT11KCgpPT57bkQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMCAxNlY5LjVhMi41IDIuNSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XV19KTt2YXIgYm0sc1VlPXUoKCk9PntibT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE3Iix5MjoiMTcifV1dfSk7dmFyIG9ELG5VZT11KCgpPT57b0Q9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOSAxNmg1In1dLFsicGF0aCIse2Q6Ik05IDEyaDVhMiAyIDAgMSAwIDAtNGgtM3Y5In1dXX0pO3ZhciBsRCxvVWU9dSgoKT0+e2xEPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTExIDE3VjhoNCJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoMyJ9XSxbInBhdGgiLHtkOiJNOSAxNmg0In1dXX0pO3ZhciBjRCxsVWU9dSgoKT0+e2NEPVtbInBhdGgiLHtkOiJNMTEgN3YxMGE1IDUgMCAwIDAgNS01In1dLFsicGF0aCIse2Q6Im0xNSA4LTYgMyJ9XSxbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NiJ9XV19KTt2YXIgZEQsY1VlPXUoKCk9PntkRD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgdUQsZFVlPXUoKCk9Pnt1RD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dXX0pO3ZhciBwRCx1VWU9dSgoKT0+e3BEPVtbInBhdGgiLHtkOiJNMjIgMThINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAwLTItMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWNGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MTAifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjgiLHg6IjgiLHk6IjYiLHJ4OiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBmRCxwVWU9dSgoKT0+e2ZEPVtbInBhdGgiLHtkOiJNMTIgMTZ2MWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDhjMCA0LTMuNSA4LTYgOHMtNi00LTYtOGE2IDYgMCAwIDEgMTIgMCJ9XV19KTt2YXIgaEQsZlVlPXUoKCk9PntoRD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTQuOTI5IDQuOTI5IDE5LjA3IDE5LjA3MSJ9XV19KTt2YXIgbUQsaFVlPXUoKCk9PnttRD1bWyJwYXRoIix7ZDoiTTQgMTNjMy41LTIgOC0yIDEwIDJhNS41IDUuNSAwIDAgMSA4IDUifV0sWyJwYXRoIix7ZDoiTTUuMTUgMTcuODljNS41Mi0xLjUyIDguNjUtNi44OSA3LTEyQzExLjU1IDQgMTEuNSAyIDEzIDJjMy4yMiAwIDUgNS41IDUgOCAwIDYuNS00LjIgMTItMTAuNDkgMTJDNS4xMSAyMiAyIDIyIDIgMjBjMC0xLjUgMS4xNC0xLjU1IDMuMTUtMi4xMVoifV1dfSk7dmFyIGdELG1VZT11KCgpPT57Z0Q9W1sicGF0aCIse2Q6Ik0xMCAxMC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE0LjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTAuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZ2MTIifV0sWyJwYXRoIix7ZDoiTTYgNnYxMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXX0pO3ZhciBiRCxnVWU9dSgoKT0+e2JEPVtbInBhdGgiLHtkOiJNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDMgMyAzLTMifV0sWyJwYXRoIix7ZDoiTTE4IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgeEQsYlVlPXUoKCk9Pnt4RD1bWyJwYXRoIix7ZDoiTTEyIDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5IDIydi02In1dLFsicGF0aCIse2Q6Im0yMiAxOS0zLTMtMyAzIn1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciB2RCx4VWU9dSgoKT0+e3ZEPVtbInBhdGgiLHtkOiJNMTMgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAxNy01IDUifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIHlELHZVZT11KCgpPT57eUQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDFNMTggMTJoLjAxIn1dXX0pO3ZhciB3RCx5VWU9dSgoKT0+e3dEPVtbInBhdGgiLHtkOiJNMyA1djE0In1dLFsicGF0aCIse2Q6Ik04IDV2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDV2MTQifV0sWyJwYXRoIix7ZDoiTTE3IDV2MTQifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dfSk7dmFyIGtELHdVZT11KCgpPT57a0Q9W1sicGF0aCIse2Q6Ik0xMCAzYTQxIDQxIDAgMCAwIDAgMTgifV0sWyJwYXRoIix7ZDoiTTE0IDNhNDEgNDEgMCAwIDEgMCAxOCJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMS42OC45MiAxNS4yNSAxNS4yNSAwIDAgMSAwIDE2LjE2QTIgMiAwIDAgMSAxNyAyMUg3YTIgMiAwIDAgMS0xLjY4LS45MiAxNS4yNSAxNS4yNSAwIDAgMSAwLTE2LjE2QTIgMiAwIDAgMSA3IDN6In1dLFsicGF0aCIse2Q6Ik0zLjg0IDE3aDE2LjMyIn1dLFsicGF0aCIse2Q6Ik0zLjg0IDdoMTYuMzIifV1dfSk7dmFyIFNELGtVZT11KCgpPT57U0Q9W1sicGF0aCIse2Q6Ik00IDIwaDE2In1dLFsicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBNRCxTVWU9dSgoKT0+e01EPVtbInBhdGgiLHtkOiJNMTAgNCA4IDYifV0sWyJwYXRoIix7ZDoiTTE3IDE5djIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XSxbInBhdGgiLHtkOiJNOSA1IDcuNjIxIDMuNjIxQTIuMTIxIDIuMTIxIDAgMCAwIDQgNXYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTUifV1dfSk7dmFyIENELE1VZT11KCgpPT57Q0Q9W1sicGF0aCIse2Q6Im0xMSA3LTMgNWg0bC0zIDUifV0sWyJwYXRoIix7ZDoiTTE0Ljg1NiA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjkzNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTUuMTQgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyLjkzNiJ9XV19KTt2YXIgekQsQ1VlPXUoKCk9Pnt6RD1bWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDE0di00In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIF9ELHpVZT11KCgpPT57X0Q9W1sicGF0aCIse2Q6Ik0xMCAxMHY0In1dLFsicGF0aCIse2Q6Ik0xNCAxMHY0In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNiAxMHY0In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIFRELF9VZT11KCgpPT57VEQ9W1sicGF0aCIse2Q6Ik0xMCAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMTR2LTQifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgTEQsVFVlPXUoKCk9PntMRD1bWyJwYXRoIix7ZDoiTTEwIDl2NiJ9XSxbInBhdGgiLHtkOiJNMTIuNTQzIDZIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTMuNjA1In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNyAxMmg2In1dLFsicGF0aCIse2Q6Ik03LjYwNiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDMuNjA2In1dXX0pO3ZhciBERCxMVWU9dSgoKT0+e0REPVtbInBhdGgiLHtkOiJNMTAgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA3djYifV0sWyJwYXRoIix7ZDoiTTE0IDZoMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dXX0pO3ZhciAkRCxEVWU9dSgoKT0+eyREPVtbInBhdGgiLHtkOiJNIDIyIDE0IEwgMjIgMTAifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgQUQsJFVlPXUoKCk9PntBRD1bWyJwYXRoIix7ZDoiTTQuNSAzaDE1In1dLFsicGF0aCIse2Q6Ik02IDN2MTZhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMyJ9XSxbInBhdGgiLHtkOiJNNiAxNGgxMiJ9XV19KTt2YXIgRUQsQVVlPXUoKCk9PntFRD1bWyJwYXRoIix7ZDoiTTkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmExMy45NiAxMy45NiAwIDAgMCA5LjktNC4xIn1dLFsicGF0aCIse2Q6Ik0xMC43NSA1LjA5M0E2IDYgMCAwIDEgMjIgOGMwIDIuNDExLS42MSA0LjY4LTEuNjgzIDYuNjYifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDAgMCA2LjQ4NyAxLjIwOE0xMC42MiA1LjM0MWE0LjAxNSA0LjAxNSAwIDAgMSAyLjAzOSAyLjA0In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIElELEVVZT11KCgpPT57SUQ9W1sicGF0aCIse2Q6Ik0xMC4xNjUgNi41OThDOS45NTQgNy40NzggOS42NCA4LjM2IDkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmM3LjczMiAwIDE0LTYuMjY4IDE0LTE0YTYgNiAwIDAgMC0xMS44MzUtMS40MDJaIn1dLFsicGF0aCIse2Q6Ik01LjM0MSAxMC42MmE0IDQgMCAxIDAgNS4yNzktNS4yOCJ9XV19KTt2YXIgUEQsSVVlPXUoKCk9PntQRD1bWyJwYXRoIix7ZDoiTTIgMjB2LThhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjgifV0sWyJwYXRoIix7ZDoiTTQgMTBWNmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTIgNHY2In1dLFsicGF0aCIse2Q6Ik0yIDE4aDIwIn1dXX0pO3ZhciBORCxQVWU9dSgoKT0+e05EPVtbInBhdGgiLHtkOiJNMyAyMHYtOGEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNSAxMFY2YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDE4aDE4In1dXX0pO3ZhciBPRCxOVWU9dSgoKT0+e09EPVtbInBhdGgiLHtkOiJNMTEuNzcxIDYuMTA5YTIuNSAyLjUgMCAwIDEgMy4xMiAzLjEyIn1dLFsicGF0aCIse2Q6Ik0xNy44NTIgMTIuMTg1YTYuNSA2LjUgMCAwIDAtOS4wMzUtOS4wNCJ9XSxbInBhdGgiLHtkOiJNMTguMDEzIDE4LjAxM0MxNS4wMjkgMjAuMzQ5IDEwLjgzMSAyMiA3IDIyYTMgMyAwIDAgMS0yLjY4LTEuNjZMMi40IDE2LjUifV0sWyJwYXRoIix7ZDoibTE4LjUgNiAyLjE5IDQuNWE2LjQ4IDYuNDggMCAwIDEtLjEzOSA0LjM5MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik02LjM1NSA2LjM3YTcgNyAwIDAgMC0uMDc1LjIzYy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGMzLjM1NiAwIDYuOTkzLTEuMjY3IDkuODUtMy4xNTEifV1dfSk7dmFyIFJELE9VZT11KCgpPT57UkQ9W1sicGF0aCIse2Q6Ik0yIDR2MTYifV0sWyJwYXRoIix7ZDoiTTIgOGgxOGEyIDIgMCAwIDEgMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0yIDE3aDIwIn1dLFsicGF0aCIse2Q6Ik02IDh2OSJ9XV19KTt2YXIgRkQsUlVlPXUoKCk9PntGRD1bWyJwYXRoIix7ZDoiTTE2LjQgMTMuN0E2LjUgNi41IDAgMSAwIDYuMjggNi42Yy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGM0IDAgOC40LTEuOCAxMS40LTQuMyJ9XSxbInBhdGgiLHtkOiJtMTguNSA2IDIuMTkgNC41YTYuNDggNi40OCAwIDAgMS0yLjI5IDcuMkMxNS40IDIwLjIgMTEgMjIgNyAyMmEzIDMgMCAwIDEtMi42OC0xLjY2TDIuNCAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjEyLjUiLGN5OiI4LjUiLHI6IjIuNSJ9XV19KTt2YXIgQkQsRlVlPXUoKCk9PntCRD1bWyJwYXRoIix7ZDoiTTEzIDEzdjUifV0sWyJwYXRoIix7ZDoiTTE3IDExLjQ3VjgifV0sWyJwYXRoIix7ZDoiTTE3IDExaDFhMyAzIDAgMCAxIDIuNzQ1IDQuMjExIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNNy41MzYgNy41MzVDNi43NjYgNy42NDkgNi4xNTQgOCA1LjUgOGEyLjUgMi41IDAgMCAxLTEuNzY4LTQuMjY4In1dLFsicGF0aCIse2Q6Ik04LjcyNyAzLjIwNEM5LjMwNiAyLjc2NyA5Ljg4NSAyIDExIDJjMS41NiAwIDIgMS41IDMgMS41czEuNzItLjUgMi41LS41YTEgMSAwIDEgMSAwIDVjLS43OCAwLTEuNS0uNS0yLjUtLjVhMy4xNDkgMy4xNDkgMCAwIDAtLjg0Mi4xMiJ9XSxbInBhdGgiLHtkOiJNOSAxNC42VjE4In1dXX0pO3ZhciBIRCxCVWU9dSgoKT0+e0hEPVtbInBhdGgiLHtkOiJNMTcgMTFoMWEzIDMgMCAwIDEgMCA2aC0xIn1dLFsicGF0aCIse2Q6Ik05IDEydjYifV0sWyJwYXRoIix7ZDoiTTEzIDEydjYifV0sWyJwYXRoIix7ZDoiTTE0IDcuNWMtMSAwLTEuNDQuNS0zIC41cy0yLS41LTMtLjUtMS43Mi41LTIuNS41YTIuNSAyLjUgMCAwIDEgMC01Yy43OCAwIDEuNTcuNSAyLjUuNVM5LjQ0IDIgMTEgMnMyIDEuNSAzIDEuNSAxLjcyLS41IDIuNS0uNWEyLjUgMi41IDAgMCAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNVoifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4In1dXX0pO3ZhciBxRCxIVWU9dSgoKT0+e3FEPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xMS42OCAyLjAwOUE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M2MtLjgyNC0uODUtMS42NzgtMS43MzEtMi4yMS0zLjM0OCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjUiLHI6IjMifV1dfSk7dmFyIFZELHFVZT11KCgpPT57VkQ9W1sicGF0aCIse2Q6Ik0xOC41MTggMTcuMzQ3QTcgNyAwIDAgMSAxNCAxOSJ9XSxbInBhdGgiLHtkOiJNMTguOCA0QTExIDExIDAgMCAxIDIwIDkifV0sWyJwYXRoIix7ZDoiTTkgOWguMDEifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxNiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiNyJ9XSxbInJlY3QiLHt4OiI0Iix5OiIxNiIsd2lkdGg6IjEwIixoZWlnaHQ6IjYiLHJ4OiIyIn1dXX0pO3ZhciBqRCxWVWU9dSgoKT0+e2pEPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4aDYifV0sWyJwYXRoIix7ZDoiTTE2LjI0MyAzLjc1N0E2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0E5LjQgOS40IDAgMCAxIDE4LjY2NyAxMiJ9XV19KTt2YXIgVUQsalVlPXUoKCk9PntVRD1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTdINGExIDEgMCAwIDEtLjc0LTEuNjczQzQuNTkgMTMuOTU2IDYgMTIuNDk5IDYgOGE2IDYgMCAwIDEgLjI1OC0xLjc0MiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY2OCAzLjAxQTYgNiAwIDAgMSAxOCA4YzAgMi42ODcuNzcgNC42NTMgMS43MDcgNi4wNSJ9XV19KTt2YXIgV0QsVVVlPXUoKCk9PntXRD1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMTUgOGg2In1dLFsicGF0aCIse2Q6Ik0xOCA1djYifV0sWyJwYXRoIix7ZDoiTTIwLjAwMiAxNC40NjRhOSA5IDAgMCAwIC43MzguODYzQTEgMSAwIDAgMSAyMCAxN0g0YTEgMSAwIDAgMS0uNzQtMS42NzNDNC41OSAxMy45NTYgNiAxMi40OTkgNiA4YTYgNiAwIDAgMSA4Ljc1LTUuMzMyIn1dXX0pO3ZhciBHRCxXVWU9dSgoKT0+e0dEPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi4zLS44LTQuMy0yLTYifV0sWyJwYXRoIix7ZDoiTTMuMjYyIDE1LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQzE5LjQxIDEzLjk1NiAxOCAxMi40OTkgMTggOEE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjYifV0sWyJwYXRoIix7ZDoiTTQgMkMyLjggMy43IDIgNS43IDIgOCJ9XV19KTt2YXIgWUQsR1VlPXUoKCk9PntZRD1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNDMTkuNDEgMTMuOTU2IDE4IDEyLjQ5OSAxOCA4QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNiJ9XV19KTt2YXIgeG0sWVVlPXUoKCk9Pnt4bT1bWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0yMiAxNS0zLTMgMy0zIn1dLFsicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV1dfSk7dmFyIHZtLEtVZT11KCgpPT57dm09W1sicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI3Iix4OiI4Iix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJtMiA5IDMgMy0zIDMifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjgiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgS0QsWlVlPXUoKCk9PntLRD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im05IDIyIDMtMyAzIDMifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjE0Iix5OiIzIixyeDoiMSJ9XV19KTt2YXIgWkQsUVVlPXUoKCk9PntaRD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0xNSAyLTMgMy0zLTMifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjE0Iix5OiI4IixyeDoiMSJ9XV19KTt2YXIgUUQsWFVlPXUoKCk9PntRRD1bWyJwYXRoIix7ZDoiTTEyLjQwOSAxMy4wMTdBNSA1IDAgMCAxIDIyIDE1YzAgMy44NjYtNCA3LTkgNy00LjA3NyAwLTguMTUzLS44Mi0xMC4zNzEtMi40NjItLjQyNi0uMzE2LS42MzEtLjgzMi0uNjItMS4zNjJDMi4xMTggMTIuNzIzIDIuNjI3IDIgMTAgMmEzIDMgMCAwIDEgMyAzIDIgMiAwIDAgMS0yIDJjLTEuMTA1IDAtMS42NC0uNDQ0LTItMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTRhNSA1IDAgMCAwLTcuNTg0IDIifV0sWyJwYXRoIix7ZDoiTTkuOTY0IDYuODI1QzguMDE5IDcuOTc3IDkuNSAxMyA4IDE1In1dXX0pO3ZhciBYRCxKVWU9dSgoKT0+e1hEPVtbImNpcmNsZSIse2N4OiIxOC41IixjeToiMTcuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjUuNSIsY3k6IjE3LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjUiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTEyIDE3LjVWMTRsLTMtMyA0LTMgMiAzaDIifV1dfSk7dmFyIEpELGVXZT11KCgpPT57SkQ9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscng6IjIifV0sWyJyZWN0Iix7eDoiNiIseToiNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMjBoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTBoNCJ9XSxbInBhdGgiLHtkOiJNNiAxNGgydjYifV0sWyJwYXRoIix7ZDoiTTE0IDRoMnY2In1dXX0pO3ZhciBlJCx0V2U9dSgoKT0+e2UkPVtbInBhdGgiLHtkOiJNMTAgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzIn1dLFsicGF0aCIse2Q6Ik0yMCAyMWEyIDIgMCAwIDAgMi0ydi0zLjg1MWMwLTEuMzktMi0yLjk2Mi0yLTQuODI5VjhhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjExYTIgMiAwIDAgMCAyIDJ6In1dLFsicGF0aCIse2Q6Ik0gMjIgMTYgTCAyIDE2In1dLFsicGF0aCIse2Q6Ik00IDIxYTIgMiAwIDAgMS0yLTJ2LTMuODUxYzAtMS4zOSAyLTIuOTYyIDItNC44MjlWOGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYxMWEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNOSA3VjRhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIgdCQscldlPXUoKCk9Pnt0JD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMS45IixyOiIyIn1dLFsicGF0aCIse2Q6Ik02LjcgMy40Yy0uOSAyLjUgMCA1LjIgMi4yIDYuN0M2LjUgOSAzLjcgOS42IDIgMTEuNiJ9XSxbInBhdGgiLHtkOiJtOC45IDEwLjEgMS40LjgifV0sWyJwYXRoIix7ZDoiTTE3LjMgMy40Yy45IDIuNSAwIDUuMi0yLjIgNi43IDIuNC0xLjIgNS4yLS42IDYuOSAxLjUifV0sWyJwYXRoIix7ZDoibTE1LjEgMTAuMS0xLjQuOCJ9XSxbInBhdGgiLHtkOiJNMTYuNyAyMC44Yy0yLjYtLjQtNC42LTIuNi00LjctNS4zLS4yIDIuNi0yLjEgNC44LTQuNyA1LjIifV0sWyJwYXRoIix7ZDoiTTEyIDEzLjl2MS42In1dLFsicGF0aCIse2Q6Ik0xMy41IDUuNGMtMS0uMi0yLS4yLTMgMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTYuNGMuNy0uNyAxLjItMS42IDEuNS0yLjUifV0sWyJwYXRoIix7ZDoiTTUuNSAxMy45Yy4zLjkuOCAxLjggMS41IDIuNSJ9XV19KTt2YXIgciQsYVdlPXUoKCk9PntyJD1bWyJwYXRoIix7ZDoiTTE2IDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zLjQgMThIMTJhOCA4IDAgMCAwIDgtOFY3YTQgNCAwIDAgMC03LjI4LTIuM0wyIDIwIn1dLFsicGF0aCIse2Q6Im0yMCA3IDIgLjUtMiAuNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTh2MyJ9XSxbInBhdGgiLHtkOiJNMTQgMTcuNzVWMjEifV0sWyJwYXRoIix7ZDoiTTcgMThhNiA2IDAgMCAwIDMuODQtMTAuNjEifV1dfSk7dmFyIGEkLGlXZT11KCgpPT57YSQ9W1sicGF0aCIse2Q6Ik0xMiAxOHY0In1dLFsicGF0aCIse2Q6Im0xNyAxOCAxLjk1Ni0xMS40NjgifV0sWyJwYXRoIix7ZDoibTMgOCA3LjgyLTUuNjE1YTIgMiAwIDAgMSAyLjM2IDBMMjEgOCJ9XSxbInBhdGgiLHtkOiJNNCAxOGgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxOCA1LjA0NCA2LjUzMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIyIn1dXX0pO3ZhciBpJCxzV2U9dSgoKT0+e2kkPVtbInBhdGgiLHtkOiJNMTEuNzY3IDE5LjA4OWM0LjkyNC44NjggNi4xNC02LjAyNSAxLjIxNi02Ljg5NG0tMS4yMTYgNi44OTRMNS44NiAxOC4wNDdtNS45MDggMS4wNDItLjM0NyAxLjk3bTEuNTYzLTguODY0YzQuOTI0Ljg2OSA2LjE0LTYuMDI1IDEuMjE1LTYuODkzbS0xLjIxNSA2Ljg5My0zLjk0LS42OTRtNS4xNTUtNi4yTDguMjkgNC4yNm01LjkwOCAxLjA0Mi4zNDgtMS45N003LjQ4IDIwLjM2NGwzLjEyNi0xNy43MjcifV1dfSk7dmFyIHMkLG5XZT11KCgpPT57cyQ9W1siY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiI3In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTUiLHI6IjcifV1dfSk7dmFyIG4kLG9XZT11KCgpPT57biQ9W1sicGF0aCIse2Q6Ik0zIDNoMTgifV0sWyJwYXRoIix7ZDoiTTIwIDdIOCJ9XSxbInBhdGgiLHtkOiJNMjAgMTFIOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTloMTAifV0sWyJwYXRoIix7ZDoiTTggMTVoMTIifV0sWyJwYXRoIix7ZDoiTTQgM3YxNCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIG8kLGxXZT11KCgpPT57byQ9W1sicGF0aCIse2Q6Ik0xMCAyMlY3YTEgMSAwIDAgMC0xLTFINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtNWExIDEgMCAwIDAtMS0xSDIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXX0pO3ZhciBsJCxjV2U9dSgoKT0+e2wkPVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dLFsibGluZSIse3gxOiIxOCIseDI6IjIxIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjYiLHkxOiIxMiIseTI6IjEyIn1dXX0pO3ZhciBjJCxkV2U9dSgoKT0+e2MkPVtbInBhdGgiLHtkOiJtMTcgMTctNSA1VjEybC01IDUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMTQuNSA5LjUgMTcgN2wtNS01djQuNSJ9XV19KTt2YXIgZCQsdVdlPXUoKCk9PntkJD1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMC01IDVWMmw1IDVMNyAxNyJ9XV19KTt2YXIgdSQscFdlPXUoKCk9Pnt1JD1bWyJwYXRoIix7ZDoiTTYgMTJoOWE0IDQgMCAwIDEgMCA4SDdhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoN2E0IDQgMCAwIDEgMCA4In1dXX0pO3ZhciBwJCxmV2U9dSgoKT0+e3AkPVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dLFsicGF0aCIse2Q6Ik0yMC44MyAxNC44M2E0IDQgMCAwIDAgMC01LjY2In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dfSk7dmFyIGYkLGhXZT11KCgpPT57ZiQ9W1sicGF0aCIse2Q6Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV19KTt2YXIgaCQsbVdlPXUoKCk9PntoJD1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMyIscjoiOSJ9XSxbInBhdGgiLHtkOiJNMTQuMzUgNC42NSAxNi4zIDIuN2EyLjQxIDIuNDEgMCAwIDEgMy40IDBsMS42IDEuNmEyLjQgMi40IDAgMCAxIDAgMy40bC0xLjk1IDEuOTUifV0sWyJwYXRoIix7ZDoibTIyIDItMS41IDEuNSJ9XV19KTt2YXIgbSQsZ1dlPXUoKCk9PnttJD1bWyJwYXRoIix7ZDoiTTE3IDEwYy43LS43IDEuNjkgMCAyLjUgMGEyLjUgMi41IDAgMSAwIDAtNSAuNS41IDAgMCAxLS41LS41IDIuNSAyLjUgMCAxIDAtNSAwYzAgLjgxLjcgMS44IDAgMi41bC03IDdjLS43LjctMS42OSAwLTIuNSAwYTIuNSAyLjUgMCAwIDAgMCA1Yy4yOCAwIC41LjIyLjUuNWEyLjUgMi41IDAgMSAwIDUgMGMwLS44MS0uNy0xLjggMC0yLjVaIn1dXX0pO3ZhciBnJCxiV2U9dSgoKT0+e2ckPVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOCAxMyA0LTcgNCA3In1dLFsicGF0aCIse2Q6Ik05LjEgMTFoNS43In1dXX0pO3ZhciBiJCx4V2U9dSgoKT0+e2IkPVtbInBhdGgiLHtkOiJNMTIgMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA2djMifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dfSk7dmFyIHgkLHZXZT11KCgpPT57eCQ9W1sicGF0aCIse2Q6Ik0xMiA2djcifV0sWyJwYXRoIix7ZDoiTTE2IDh2MyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOCA4djMifV1dfSk7dmFyIHYkLHlXZT11KCgpPT57diQ9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im05IDkuNSAyIDIgNC00In1dXX0pO3ZhciB5JCx3V2U9dSgoKT0+e3kkPVtbInBhdGgiLHtkOiJNNSA3YTIgMiAwIDAgMC0yIDJ2MTEifV0sWyJwYXRoIix7ZDoiTTUuODAzIDE4SDVhMiAyIDAgMCAwIDAgNGg5LjVhLjUuNSAwIDAgMCAuNS0uNVYyMSJ9XSxbInBhdGgiLHtkOiJNOSAxNVY0YTIgMiAwIDAgMSAyLTJoOS41YS41LjUgMCAwIDEgLjUuNXYxNGEuNS41IDAgMCAxLS41LjVIMTFhMiAyIDAgMCAxIDAtNGgxMCJ9XV19KTt2YXIgeW0sa1dlPXUoKCk9Pnt5bT1bWyJwYXRoIix7ZDoiTTEyIDE3aDEuNSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJoMS41In1dLFsicGF0aCIse2Q6Ik0xMiAyaDEuNSJ9XSxbInBhdGgiLHtkOiJNMTcuNSAyMkgxOWExIDEgMCAwIDAgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNy41IDJIMTlhMSAxIDAgMCAxIDEgMXYxLjUifV0sWyJwYXRoIix7ZDoiTTIwIDE0djNoLTIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgOC41VjEwIn1dLFsicGF0aCIse2Q6Ik00IDEwVjguNSJ9XSxbInBhdGgiLHtkOiJNNCAxOS41VjE0In1dLFsicGF0aCIse2Q6Ik00IDQuNUEyLjUgMi41IDAgMCAxIDYuNSAySDgifV0sWyJwYXRoIix7ZDoiTTggMjJINi41YTEgMSAwIDAgMSAwLTVIOCJ9XV19KTt2YXIgdyQsU1dlPXUoKCk9Pnt3JD1bWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgMTAgMyAzIDMtMyJ9XV19KTt2YXIgayQsTVdlPXUoKCk9PntrJD1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTggMTJ2LTJhNCA0IDAgMCAxIDggMHYyIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIxIn1dXX0pO3ZhciBTJCxDV2U9dSgoKT0+e1MkPVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOC42MiA5LjhBMi4yNSAyLjI1IDAgMSAxIDEyIDYuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV19KTt2YXIgTSQseldlPXUoKCk9PntNJD1bWyJwYXRoIix7ZDoibTIwIDEzLjctMi4xLTIuMWEyIDIgMCAwIDAtMi44IDBMOS43IDE3In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiMiJ9XV19KTt2YXIgQyQsX1dlPXUoKCk9PntDJD1bWyJwYXRoIix7ZDoiTTEzIDJINi41QTIuNSAyLjUgMCAwIDAgNCA0LjV2MTUifV0sWyJwYXRoIix7ZDoiTTE3IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTcgNGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNS4yVjIxYTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxMCIscjoiMiJ9XV19KTt2YXIgeiQsVFdlPXUoKCk9Pnt6JD1bWyJwYXRoIix7ZDoiTTE4IDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTIwIDE1djZhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDEwIn1dLFsicmVjdCIse3g6IjEyIix5OiI2Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgXyQsTFdlPXUoKCk9PntfJD1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV19KTt2YXIgVCQsRFdlPXUoKCk9PntUJD1bWyJwYXRoIix7ZDoiTTEwIDJ2OGwzLTMgMyAzVjIifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dfSk7dmFyIEwkLCRXZT11KCgpPT57TCQ9W1sicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im0xNiAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik0yMiA2VjRhMSAxIDAgMCAwLTEtMWgtNWE0IDQgMCAwIDAtNCA0IDQgNCAwIDAgMC00LTRIM2ExIDEgMCAwIDAtMSAxdjEzYTEgMSAwIDAgMCAxIDFoNmEzIDMgMCAwIDEgMyAzIDMgMyAwIDAgMSAzLTNoNmExIDEgMCAwIDAgMS0xdi0xLjMifV1dfSk7dmFyIEQkLEFXZT11KCgpPT57RCQ9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aDIifV0sWyJwYXRoIix7ZDoiTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgyIn1dLFsicGF0aCIse2Q6Ik02IDhoMiJ9XV19KTt2YXIgJCQsRVdlPXUoKCk9PnskJD1bWyJwYXRoIix7ZDoiTTEyIDd2MTQifV0sWyJwYXRoIix7ZDoiTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiJ9XV19KTt2YXIgQSQsSVdlPXUoKCk9PntBJD1bWyJwYXRoIix7ZDoiTTEyIDd2NiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXX0pO3ZhciBFJCxQV2U9dSgoKT0+e0UkPVtbInBhdGgiLHtkOiJNMTEgMjJINS41YTEgMSAwIDAgMSAwLTVoNC41MDEifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuODc5LTEuODc4In1dLFsicGF0aCIse2Q6Ik0zIDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNS41IDJIMThhMSAxIDAgMCAxIDEgMXY4In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIEkkLE5XZT11KCgpPT57SSQ9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04IDExaDgifV0sWyJwYXRoIix7ZDoiTTggN2g2In1dXX0pO3ZhciBQJCxPV2U9dSgoKT0+e1AkPVtbInBhdGgiLHtkOiJNMTAgMTNoNCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY3In1dLFsicGF0aCIse2Q6Ik0xNiA4VjZIOHYyIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dXX0pO3ZhciBOJCxSV2U9dSgoKT0+e04kPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNMTggMmgxYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAyIn1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgNSAzLTMgMyAzIn1dXX0pO3ZhciBPJCxGV2U9dSgoKT0+e08kPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzLTMgMyAzIn1dXX0pO3ZhciBSJCxCV2U9dSgoKT0+e1IkPVtbInBhdGgiLHtkOiJNMTUgMTNhMyAzIDAgMSAwLTYgMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV1dfSk7dmFyIEYkLEhXZT11KCgpPT57RiQ9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dXX0pO3ZhciBCJCxxV2U9dSgoKT0+e0IkPVtbInBhdGgiLHtkOiJtMTQuNSA3LTUgNSJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOS41IDcgNSA1In1dXX0pO3ZhciBIJCxWV2U9dSgoKT0+e0gkPVtbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV1dfSk7dmFyIHEkLGpXZT11KCgpPT57cSQ9W1sicGF0aCIse2Q6Ik0xOSAxOXYxYTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTguNjU2IDNIMTdhMiAyIDAgMCAxIDIgMnY4LjM0NCJ9XV19KTt2YXIgViQsVVdlPXUoKCk9PntWJD1bWyJwYXRoIix7ZDoiTTE1IDEwSDkifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XV19KTt2YXIgaiQsV1dlPXUoKCk9PntqJD1bWyJwYXRoIix7ZDoiTTEyIDd2NiJ9XSxbInBhdGgiLHtkOiJNMTUgMTBIOSJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dXX0pO3ZhciBVJCxHV2U9dSgoKT0+e1UkPVtbInBhdGgiLHtkOiJtMTQuNSA3LjUtNSA1In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoibTkuNSA3LjUgNSA1In1dXX0pO3ZhciBXJCxZV2U9dSgoKT0+e1ckPVtbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dXX0pO3ZhciBHJCxLV2U9dSgoKT0+e0ckPVtbInBhdGgiLHtkOiJNNCA5VjVhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTggOHYxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djEifV0sWyJwYXRoIix7ZDoiTTE2IDh2MSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjkiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciBZJCxaV2U9dSgoKT0+e1kkPVtbInBhdGgiLHtkOiJNMTIgNlYySDgifV0sWyJwYXRoIix7ZDoiTTE1IDExdjIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTZhMiAyIDAgMCAxLTIgMkg4LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgNCAyMC4yODZWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik05IDExdjIifV1dfSk7dmFyIEskLFFXZT11KCgpPT57SyQ9W1sicGF0aCIse2Q6Ik0xMy42NyA4SDE4YTIgMiAwIDAgMSAyIDJ2NC4zMyJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGgyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMiAyIDIifV0sWyJwYXRoIix7ZDoiTTggOEg2YTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAxLjQxNC0uNTg2In1dLFsicGF0aCIse2Q6Ik05IDEzdjIifV0sWyJwYXRoIix7ZDoiTTkuNjcgNEgxMnYyLjMzIn1dXX0pO3ZhciBaJCxYV2U9dSgoKT0+e1okPVtbInBhdGgiLHtkOiJNMTIgOFY0SDgifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEyIix4OiI0Iix5OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAxM3YyIn1dLFsicGF0aCIse2Q6Ik05IDEzdjIifV1dfSk7dmFyIFEkLEpXZT11KCgpPT57USQ9W1sicGF0aCIse2Q6Ik0xMCAzYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhNiA2IDAgMCAwIDEuMiAzLjZsLjYuOEE2IDYgMCAwIDEgMTcgMTN2OGExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMXYtOGE2IDYgMCAwIDEgMS4yLTMuNmwuNi0uOEE2IDYgMCAwIDAgMTAgNXoifV0sWyJwYXRoIix7ZDoiTTE3IDEzaC00YTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAwIDAgMSAxaDQifV1dfSk7dmFyIFgkLGVHZT11KCgpPT57WCQ9W1sicGF0aCIse2Q6Ik0xNyAzaDR2NCJ9XSxbInBhdGgiLHtkOiJNMTguNTc1IDExLjA4MmExMyAxMyAwIDAgMSAxLjA0OCA5LjAyNyAxLjE3IDEuMTcgMCAwIDEtMS45MTQuNTk3TDE0IDE3In1dLFsicGF0aCIse2Q6Ik03IDEwIDMuMjkgNi4yOWExLjE3IDEuMTcgMCAwIDEgLjYtMS45MSAxMyAxMyAwIDAgMSA5LjAzIDEuMDUifV0sWyJwYXRoIix7ZDoiTTcgMTRhMS43IDEuNyAwIDAgMC0xLjIwNy41bC0yLjY0NiAyLjY0NkEuNS41IDAgMCAwIDMuNSAxOEg1YTEgMSAwIDAgMSAxIDF2MS41YS41LjUgMCAwIDAgLjg1NC4zNTRMOS41IDE4LjIwN0ExLjcgMS43IDAgMCAwIDEwIDE3di0yYTEgMSAwIDAgMC0xLTF6In1dLFsicGF0aCIse2Q6Ik05LjcwNyAxNC4yOTMgMjEgMyJ9XV19KTt2YXIgSiQsdEdlPXUoKCk9PntKJD1bWyJwYXRoIix7ZDoiTTIxIDhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2WiJ9XSxbInBhdGgiLHtkOiJtMy4zIDcgOC43IDUgOC43LTUifV0sWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dXX0pO3ZhciBlQSxyR2U9dSgoKT0+e2VBPVtbInBhdGgiLHtkOiJNMi45NyAxMi45MkEyIDIgMCAwIDAgMiAxNC42M3YzLjI0YTIgMiAwIDAgMCAuOTcgMS43MWwzIDEuOGEyIDIgMCAwIDAgMi4wNiAwTDEyIDE5di01LjVsLTUtMy00LjAzIDIuNDJaIn1dLFsicGF0aCIse2Q6Im03IDE2LjUtNC43NC0yLjg1In1dLFsicGF0aCIse2Q6Im03IDE2LjUgNS0zIn1dLFsicGF0aCIse2Q6Ik03IDE2LjV2NS4xNyJ9XSxbInBhdGgiLHtkOiJNMTIgMTMuNVYxOWwzLjk3IDIuMzhhMiAyIDAgMCAwIDIuMDYgMGwzLTEuOGEyIDIgMCAwIDAgLjk3LTEuNzF2LTMuMjRhMiAyIDAgMCAwLS45Ny0xLjcxTDE3IDEwLjVsLTUgM1oifV0sWyJwYXRoIix7ZDoibTE3IDE2LjUtNS0zIn1dLFsicGF0aCIse2Q6Im0xNyAxNi41IDQuNzQtMi44NSJ9XSxbInBhdGgiLHtkOiJNMTcgMTYuNXY1LjE3In1dLFsicGF0aCIse2Q6Ik03Ljk3IDQuNDJBMiAyIDAgMCAwIDcgNi4xM3Y0LjM3bDUgMyA1LTNWNi4xM2EyIDIgMCAwIDAtLjk3LTEuNzFsLTMtMS44YTIgMiAwIDAgMC0yLjA2IDBsLTMgMS44WiJ9XSxbInBhdGgiLHtkOiJNMTIgOCA3LjI2IDUuMTUifV0sWyJwYXRoIix7ZDoibTEyIDggNC43NC0yLjg1In1dLFsicGF0aCIse2Q6Ik0xMiAxMy41VjgifV1dfSk7dmFyIHRBLGFHZT11KCgpPT57dEE9W1sicGF0aCIse2Q6Ik0xNiAzaDNhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik04IDIxSDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMyJ9XV19KTt2YXIgd20saUdlPXUoKCk9Pnt3bT1bWyJwYXRoIix7ZDoiTTggM0g3YTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMSAyIDJ2NWMwIDEuMS45IDIgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE2IDIxaDFhMiAyIDAgMCAwIDItMnYtNWMwLTEuMS45LTIgMi0yYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDAtMi0yaC0xIn1dXX0pO3ZhciByQSxzR2U9dSgoKT0+e3JBPVtbInBhdGgiLHtkOiJNMTIgNWEzIDMgMCAxIDAtNS45OTcuMTI1IDQgNCAwIDAgMC0yLjUyNiA1Ljc3IDQgNCAwIDAgMCAuNTU2IDYuNTg4QTQgNCAwIDEgMCAxMiAxOFoifV0sWyJwYXRoIix7ZDoiTTkgMTNhNC41IDQuNSAwIDAgMCAzLTQifV0sWyJwYXRoIix7ZDoiTTYuMDAzIDUuMTI1QTMgMyAwIDAgMCA2LjQwMSA2LjUifV0sWyJwYXRoIix7ZDoiTTMuNDc3IDEwLjg5NmE0IDQgMCAwIDEgLjU4NS0uMzk2In1dLFsicGF0aCIse2Q6Ik02IDE4YTQgNCAwIDAgMS0xLjk2Ny0uNTE2In1dLFsicGF0aCIse2Q6Ik0xMiAxM2g0In1dLFsicGF0aCIse2Q6Ik0xMiAxOGg2YTIgMiAwIDAgMSAyIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTIgOGg4In1dLFsicGF0aCIse2Q6Ik0xNiA4VjVhMiAyIDAgMCAxIDItMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEzIixyOiIuNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjMiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMjEiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiOCIscjoiLjUifV1dfSk7dmFyIGFBLG5HZT11KCgpPT57YUE9W1sicGF0aCIse2Q6Im0xMC44NTIgMTQuNzcyLS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xMC44NTIgOS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy4xNDggMTQuNzcyLjM4Mi45MjQifV0sWyJwYXRoIix7ZDoibTEzLjUzMSA4LjMwNS0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDAgMC01LjYzLTEuNDQ2IDMgMyAwIDAgMC0uMzY4IDEuNTcxIDQgNCAwIDAgMC0yLjUyNSA1Ljc3MSJ9XSxbInBhdGgiLHtkOiJNMTcuOTk4IDUuMTI1YTQgNCAwIDAgMSAyLjUyNSA1Ljc3MSJ9XSxbInBhdGgiLHtkOiJNMTkuNTA1IDEwLjI5NGE0IDQgMCAwIDEtMS41IDcuNzA2In1dLFsicGF0aCIse2Q6Ik00LjAzMiAxNy40ODNBNCA0IDAgMCAwIDExLjQ2NCAyMGMuMTgtLjMxMS44OTItLjMxMSAxLjA3MiAwYTQgNCAwIDAgMCA3LjQzMi0yLjUxNiJ9XSxbInBhdGgiLHtkOiJNNC41IDEwLjI5MUE0IDQgMCAwIDAgNiAxOCJ9XSxbInBhdGgiLHtkOiJNNi4wMDIgNS4xMjVhMyAzIDAgMCAwIC40IDEuMzc1In1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV19KTt2YXIgaUEsb0dlPXUoKCk9PntpQT1bWyJwYXRoIix7ZDoiTTEyIDE4VjUifV0sWyJwYXRoIix7ZDoiTTE1IDEzYTQuMTcgNC4xNyAwIDAgMS0zLTQgNC4xNyA0LjE3IDAgMCAxLTMgNCJ9XSxbInBhdGgiLHtkOiJNMTcuNTk4IDYuNUEzIDMgMCAxIDAgMTIgNWEzIDMgMCAxIDAtNS41OTggMS41In1dLFsicGF0aCIse2Q6Ik0xNy45OTcgNS4xMjVhNCA0IDAgMCAxIDIuNTI2IDUuNzcifV0sWyJwYXRoIix7ZDoiTTE4IDE4YTQgNCAwIDAgMCAyLTcuNDY0In1dLFsicGF0aCIse2Q6Ik0xOS45NjcgMTcuNDgzQTQgNCAwIDEgMSAxMiAxOGE0IDQgMCAxIDEtNy45NjctLjUxNyJ9XSxbInBhdGgiLHtkOiJNNiAxOGE0IDQgMCAwIDEtMi03LjQ2NCJ9XSxbInBhdGgiLHtkOiJNNi4wMDMgNS4xMjVhNCA0IDAgMCAwLTIuNTI2IDUuNzcifV1dfSk7dmFyIHNBLGxHZT11KCgpPT57c0E9W1sicGF0aCIse2Q6Ik0xNiAzdjIuMTA3In1dLFsicGF0aCIse2Q6Ik0xNyA5YzEgMyAyLjUgMy41IDMuNSA0LjVBNSA1IDAgMCAxIDIyIDE3YTUgNSAwIDAgMS0xMCAwYzAtLjMgMC0uNi4xLS45YTIgMiAwIDEgMCAzLjMtMkMxMyAxMS41IDE2IDkgMTcgOSJ9XSxbInBhdGgiLHtkOiJNMjEgOC4yNzRWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDMuOTM4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDUuMjUzIn1dLFsicGF0aCIse2Q6Ik0zIDloOC4yMjgifV0sWyJwYXRoIix7ZDoiTTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNOCAzdjYifV1dfSk7dmFyIG5BLGNHZT11KCgpPT57bkE9W1sicGF0aCIse2Q6Ik0xMiA5djEuMjU4In1dLFsicGF0aCIse2Q6Ik0xNiAzdjUuNDYifV0sWyJwYXRoIix7ZDoiTTIxIDkuMTE4VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg1Ljc1In1dLFsicGF0aCIse2Q6Ik0yMiAxNy41YzAgMi40OTktMS43NSAzLjc0OS0zLjgzIDQuNDc0YS41LjUgMCAwIDEtLjMzNS0uMDA1Yy0yLjA4NS0uNzItMy44MzUtMS45Ny0zLjgzNS00LjQ3VjE0YS41LjUgMCAwIDEgLjUtLjQ5OWMxIDAgMi4yNS0uNiAzLjEyLTEuMzZhLjYuNiAwIDAgMSAuNzYtLjAwMWMuODc1Ljc2NSAyLjEyIDEuMzYgMy4xMiAxLjM2YS41LjUgMCAwIDEgLjUuNXoifV0sWyJwYXRoIix7ZDoiTTMgMTVoNyJ9XSxbInBhdGgiLHtkOiJNMyA5aDEyLjE0MiJ9XSxbInBhdGgiLHtkOiJNOCAxNXY2In1dLFsicGF0aCIse2Q6Ik04IDN2NiJ9XV19KTt2YXIgb0EsZEdlPXUoKCk9PntvQT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOXY2In1dLFsicGF0aCIse2Q6Ik0xNiAxNXY2In1dLFsicGF0aCIse2Q6Ik0xNiAzdjYifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNOCAxNXY2In1dLFsicGF0aCIse2Q6Ik04IDN2NiJ9XV19KTt2YXIgbEEsdUdlPXUoKCk9PntsQT1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgNlY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMiAxM2ExOC4xNSAxOC4xNSAwIDAgMS0yMCAwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIGNBLHBHZT11KCgpPT57Y0E9W1sicGF0aCIse2Q6Ik0xMCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xNCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0yMSAyMEgzIn1dLFsicGF0aCIse2Q6Ik02IDIwdjIifV0sWyJwYXRoIix7ZDoiTTggMTZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxMiJ9XSxbInJlY3QiLHt4OiI0Iix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTAiLHJ4OiIyIn1dXX0pO3ZhciBkQSxmR2U9dSgoKT0+e2RBPVtbInBhdGgiLHtkOiJNMTIgMTF2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTNoLTQifV0sWyJwYXRoIix7ZDoiTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTggNnYxNCJ9XSxbInBhdGgiLHtkOiJNNiA2djE0In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIHVBLGhHZT11KCgpPT57dUE9W1sicGF0aCIse2Q6Ik0xNiAyMFY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYxNiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXX0pO3ZhciBwQSxtR2U9dSgoKT0+e3BBPVtbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE0IDIwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTIifV1dfSk7dmFyIGZBLGdHZT11KCgpPT57ZkE9W1sicGF0aCIse2Q6Im0xNiAyMi0xLTQifV0sWyJwYXRoIix7ZDoiTTE5IDE0YTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwLTItMmgtM2ExIDEgMCAwIDEtMS0xVjRhMiAyIDAgMCAwLTQgMHY1YTEgMSAwIDAgMS0xIDFINmEyIDIgMCAwIDAtMiAydjFhMSAxIDAgMCAwIDEgMSJ9XSxbInBhdGgiLHtkOiJNMTkgMTRINWwtMS45NzMgNi43NjdBMSAxIDAgMCAwIDQgMjJoMTZhMSAxIDAgMCAwIC45NzMtMS4yMzN6In1dLFsicGF0aCIse2Q6Im04IDIyIDEtNCJ9XV19KTt2YXIgaEEsYkdlPXUoKCk9PntoQT1bWyJwYXRoIix7ZDoibTExIDEwIDMgMyJ9XSxbInBhdGgiLHtkOiJNNi41IDIxQTMuNSAzLjUgMCAxIDAgMyAxNy41YTIuNjIgMi42MiAwIDAgMS0uNzA4IDEuNzkyQTEgMSAwIDAgMCAzIDIxeiJ9XSxbInBhdGgiLHtkOiJNOS45NjkgMTcuMDMxIDIxLjM3OCA1LjYyNGExIDEgMCAwIDAtMy4wMDItMy4wMDJMNi45NjcgMTQuMDMxIn1dXX0pO3ZhciBtQSx4R2U9dSgoKT0+e21BPVtbInBhdGgiLHtkOiJNNy4wMDEgMTUuMDg1QTEuNSAxLjUgMCAwIDEgOSAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiI4LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiI1LjUifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNC41IixyOiIyLjUifV1dfSk7dmFyIGdBLHZHZT11KCgpPT57Z0E9W1sicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XSxbInBhdGgiLHtkOiJNMTIuNjU2IDdIMTRhNCA0IDAgMCAxIDQgNHYxLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMy44OCAxNiAyIn1dLFsicGF0aCIse2Q6Ik0xNy4xMjMgMTcuMTIzQTYgNiAwIDAgMSA2IDE0di0zYTQgNCAwIDAgMSAxLjcyLTMuMjg3In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMjIgMTNoLTMuMzQ0In1dLFsicGF0aCIse2Q6Ik0zIDIxYTQgNCAwIDAgMSAzLjgxLTQifV0sWyJwYXRoIix7ZDoiTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik02IDEzSDIifV0sWyJwYXRoIix7ZDoibTggMiAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTkuNzEyIDQuMDZBMyAzIDAgMCAxIDE1IDZ2MS4xMyJ9XV19KTt2YXIgYkEseUdlPXUoKCk9PntiQT1bWyJwYXRoIix7ZDoiTTEwIDE5LjY1NUE2IDYgMCAwIDEgNiAxNHYtM2E0IDQgMCAwIDEgNC00aDRhNCA0IDAgMCAxIDQgMy45NyJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMy44OCAxNiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA1YTQgNCAwIDAgMS0zLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTMgMjFhNCA0IDAgMCAxIDMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTYgMTNIMiJ9XSxbInBhdGgiLHtkOiJtOCAyIDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNOSA3LjEzVjZhMyAzIDAgMSAxIDYgMHYxLjEzIn1dXX0pO3ZhciB4QSx3R2U9dSgoKT0+e3hBPVtbInBhdGgiLHtkOiJNMTIgMjB2LTkifV0sWyJwYXRoIix7ZDoiTTE0IDdhNCA0IDAgMCAxIDQgNHYzYTYgNiAwIDAgMS0xMiAwdi0zYTQgNCAwIDAgMSA0LTR6In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAzLjg4IDE2IDIifV0sWyJwYXRoIix7ZDoiTTIxIDIxYTQgNCAwIDAgMC0zLjgxLTQifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMjIgMTNoLTQifV0sWyJwYXRoIix7ZDoiTTMgMjFhNCA0IDAgMCAxIDMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTYgMTNIMiJ9XSxbInBhdGgiLHtkOiJtOCAyIDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNOSA3LjEzVjZhMyAzIDAgMSAxIDYgMHYxLjEzIn1dXX0pO3ZhciB2QSxrR2U9dSgoKT0+e3ZBPVtbInBhdGgiLHtkOiJNMTAgMTJoNCJ9XSxbInBhdGgiLHtkOiJNMTAgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTYgMTBINGEyIDIgMCAwIDAtMiAydjdhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMmgtMiJ9XSxbInBhdGgiLHtkOiJNNiAyMVY1YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjE2In1dXX0pO3ZhciB5QSxTR2U9dSgoKT0+e3lBPVtbInBhdGgiLHtkOiJNMTIgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgNmguMDEifV0sWyJwYXRoIix7ZDoiTTggMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNOSAyMnYtM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYzIn1dLFsicmVjdCIse3g6IjQiLHk6IjIiLHdpZHRoOiIxNiIsaGVpZ2h0OiIyMCIscng6IjIifV1dfSk7dmFyIHdBLE1HZT11KCgpPT57d0E9W1sicGF0aCIse2Q6Ik00IDYgMiA3In1dLFsicGF0aCIse2Q6Ik0xMCA2aDQifV0sWyJwYXRoIix7ZDoibTIyIDctMi0xIn1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTFoMTYifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMTggMjF2LTIifV1dfSk7dmFyIGtBLENHZT11KCgpPT57a0E9W1sicGF0aCIse2Q6Ik04IDZ2NiJ9XSxbInBhdGgiLHtkOiJNMTUgNnY2In1dLFsicGF0aCIse2Q6Ik0yIDEyaDE5LjYifV0sWyJwYXRoIix7ZDoiTTE4IDE4aDNzLjUtMS43LjgtMi44Yy4xLS40LjItLjguMi0xLjIgMC0uNC0uMS0uOC0uMi0xLjJsLTEuNC01QzIwLjEgNi44IDE5LjEgNiAxOCA2SDRhMiAyIDAgMCAwLTIgMnYxMGgzIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxOGg1In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTgiLHI6IjIifV1dfSk7dmFyIFNBLHpHZT11KCgpPT57U0E9W1sicGF0aCIse2Q6Ik0xMCAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMmguMDEifV0sWyJwYXRoIix7ZDoibTIgOSAyMC01In1dLFsicGF0aCIse2Q6Ik0xMiAxMlY2LjUifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEwIix4OiI0Iix5OiIxMiIscng6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV19KTt2YXIgTUEsX0dlPXUoKCk9PntNQT1bWyJwYXRoIix7ZDoiTTE3IDE5YTEgMSAwIDAgMS0xLTF2LTJhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MmExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTE5IDE0VjYuNWExIDEgMCAwIDAtNyAwdjExYTEgMSAwIDAgMS03IDBWMTAifV0sWyJwYXRoIix7ZDoiTTIxIDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0zIDVWMyJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjZhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNNyA1VjMifV1dfSk7dmFyIENBLFRHZT11KCgpPT57Q0E9W1sicGF0aCIse2Q6Ik0xNiAxM0gzIn1dLFsicGF0aCIse2Q6Ik0xNiAxN0gzIn1dLFsicGF0aCIse2Q6Im03LjIgNy45LTMuMzg4IDIuNUEyIDIgMCAwIDAgMyAxMi4wMVYyMGExIDEgMCAwIDAgMSAxaDE2YTEgMSAwIDAgMCAxLTF2LTguNjU0YzAtMi0yLjQ0LTYuMDI2LTYuNDQtOC4wMjZhMSAxIDAgMCAwLTEuMDgyLjA1N0wxMC40IDUuNiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiMiJ9XV19KTt2YXIgekEsTEdlPXUoKCk9Pnt6QT1bWyJwYXRoIix7ZDoiTTIwIDIxdi04YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjgifV0sWyJwYXRoIix7ZDoiTTQgMTZzLjUtMSAyLTEgMi41IDIgNCAyIDIuNS0yIDQtMiAyLjUgMiA0IDIgMi0xIDItMSJ9XSxbInBhdGgiLHtkOiJNMiAyMWgyMCJ9XSxbInBhdGgiLHtkOiJNNyA4djMifV0sWyJwYXRoIix7ZDoiTTEyIDh2MyJ9XSxbInBhdGgiLHtkOiJNMTcgOHYzIn1dLFsicGF0aCIse2Q6Ik03IDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgNGguMDEifV1dfSk7dmFyIF9BLERHZT11KCgpPT57X0E9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjYiLHkyOiI2In1dLFsibGluZSIse3gxOiIxNiIseDI6IjE2Iix5MToiMTQiLHkyOiIxOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMThoLjAxIn1dXX0pO3ZhciBUQSwkR2U9dSgoKT0+e1RBPVtbInBhdGgiLHtkOiJNMTEgMTRoMXY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicmVjdCIse3g6IjMiLHk6IjQiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIExBLEFHZT11KCgpPT57TEE9W1sicGF0aCIse2Q6Im0xNCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djgifV0sWyJwYXRoIix7ZDoiTTIxIDExLjM1NFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4zNDMifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBEQSxFR2U9dSgoKT0+e0RBPVtbInBhdGgiLHtkOiJtMTQgMTggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMzQzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg5In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV19KTt2YXIgJEEsSUdlPXUoKCk9PnskQT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDE0VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Im0xNiAyMCAyIDIgNC00In1dXX0pO3ZhciBBQSxQR2U9dSgoKT0+e0FBPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Im05IDE2IDIgMiA0LTQifV1dfSk7dmFyIEVBLE5HZT11KCgpPT57RUE9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgNy41VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjUifV0sWyJwYXRoIix7ZDoiTTMgMTBoNSJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxNiIscjoiNiJ9XV19KTt2YXIgSUEsT0dlPXUoKCk9PntJQT1bWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTkuMTQ4LS45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoibTE2LjQ3IDE0LjMwNS4zODIuOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjU5MlY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgUEEsUkdlPXUoKCk9PntQQT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOGguMDEifV1dfSk7dmFyIE5BLEZHZT11KCgpPT57TkE9W1sicGF0aCIse2Q6Ik0zIDIwYTIgMiAwIDAgMCAyIDJoMTBhMi40IDIuNCAwIDAgMCAxLjcwNi0uNzA2bDMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMjEgMTZWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE1IDIydi01YTEgMSAwIDAgMSAxLTFoNSJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XV19KTt2YXIgT0EsQkdlPXUoKCk9PntPQT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTZoNCJ9XV19KTt2YXIgUkEsSEdlPXUoKCk9PntSQT1bWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIEZBLHFHZT11KCgpPT57RkE9W1sicGF0aCIse2Q6Ik0xMi4xMjcgMjJINWEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjUuMTI1In1dLFsicGF0aCIse2Q6Ik0xNC42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSAxOCAxNS44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBCQSxWR2U9dSgoKT0+e0JBPVtbInBhdGgiLHtkOiJNNC4yIDQuMkEyIDIgMCAwIDAgMyA2djE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDEuODItMS4xOCJ9XSxbInBhdGgiLHtkOiJNMjEgMTUuNVY2YTIgMiAwIDAgMC0yLTJIOS41In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoNyJ9XSxbInBhdGgiLHtkOiJNMjEgMTBoLTUuNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBIQSxqR2U9dSgoKT0+e0hBPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik0xMCAxNmg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNHY0In1dXX0pO3ZhciBxQSxVR2U9dSgoKT0+e3FBPVtbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMi41OThWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIFZBLFdHZT11KCgpPT57VkE9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC02In1dLFsicGF0aCIse2Q6Ik0xMyAxOEg3In1dLFsicGF0aCIse2Q6Ik03IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMThoLjAxIn1dXX0pO3ZhciBqQSxHR2U9dSgoKT0+e2pBPVtbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxMS43NVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4yNSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS44NzUtMS44NzUifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIFVBLFlHZT11KCgpPT57VUE9W1sicGF0aCIse2Q6Ik0xMSAxMHY0aDQifV0sWyJwYXRoIix7ZDoibTExIDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Im0yMSAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUifV0sWyJwYXRoIix7ZDoiTTIxIDIydi00aC00In1dLFsicGF0aCIse2Q6Ik0yMSA4LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDQuMyJ9XSxbInBhdGgiLHtkOiJNMyAxMGg0In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV19KTt2YXIgV0EsS0dlPXUoKCk9PntXQT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDEzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Im0xNyAyMiA1LTUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XV19KTt2YXIgR0EsWkdlPXUoKCk9PntHQT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtMTQgMTQtNCA0In1dLFsicGF0aCIse2Q6Im0xMCAxNCA0IDQifV1dfSk7dmFyIFlBLFFHZT11KCgpPT57WUE9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV1dfSk7dmFyIEtBLFhHZT11KCgpPT57S0E9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE1LjcyNiAyMS4wMUEyIDIgMCAwIDEgMTQgMjJINGEyIDIgMCAwIDEtMi0yVjEwYTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoiTTE4IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMiAxM2gyIn1dLFsicGF0aCIse2Q6Ik04IDhoMTQifV0sWyJyZWN0Iix7eDoiOCIseToiMyIsd2lkdGg6IjE0IixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgWkEsSkdlPXUoKCk9PntaQT1bWyJwYXRoIix7ZDoiTTEzLjk5NyA0YTIgMiAwIDAgMSAxLjc2IDEuMDVsLjQ4Ni45QTIgMiAwIDAgMCAxOC4wMDMgN0gyMGEyIDIgMCAwIDEgMiAydjlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDEuOTk3YTIgMiAwIDAgMCAxLjc1OS0xLjA0OGwuNDg5LS45MDRBMiAyIDAgMCAxIDEwLjAwNCA0eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIzIn1dXX0pO3ZhciBRQSxlWWU9dSgoKT0+e1FBPVtbInBhdGgiLHtkOiJNMTQuNTY0IDE0LjU1OGEzIDMgMCAxIDEtNC4xMjItNC4xMjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgLjgxOS0uMTc1In1dLFsicGF0aCIse2Q6Ik05LjY5NSA0LjAyNEEyIDIgMCAwIDEgMTAuMDA0IDRoMy45OTNhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2Ny4zNDQifV1dfSk7dmFyIFhBLHRZZT11KCgpPT57WEE9W1sicGF0aCIse2Q6Ik01LjcgMjFhMiAyIDAgMCAxLTMuNS0ybDguNi0xNGE2IDYgMCAwIDEgMTAuNCA2IDIgMiAwIDEgMS0zLjQ2NC0yIDIgMiAwIDEgMC0zLjQ2NC0yWiJ9XSxbInBhdGgiLHtkOiJNMTcuNzUgNyAxNSAyLjEifV0sWyJwYXRoIix7ZDoiTTEwLjkgNC44IDEzIDkifV0sWyJwYXRoIix7ZDoibTcuOSA5LjcgMiA0LjQifV0sWyJwYXRoIix7ZDoiTTQuOSAxNC43IDcgMTguOSJ9XV19KTt2YXIgSkEsclllPXUoKCk9PntKQT1bWyJwYXRoIix7ZDoiTTEwIDEwdjcuOSJ9XSxbInBhdGgiLHtkOiJNMTEuODAyIDYuMTQ1YTUgNSAwIDAgMSA2LjA1MyA2LjA1MyJ9XSxbInBhdGgiLHtkOiJNMTQgNi4xdjIuMjQzIn1dLFsicGF0aCIse2Q6Im0xNS41IDE1LjU3MS0uOTY0Ljk2NGE1IDUgMCAwIDEtNy4wNzEgMCA1IDUgMCAwIDEgMC03LjA3bC45NjQtLjk2NSJ9XSxbInBhdGgiLHtkOiJNMTYgN1YzYTEgMSAwIDAgMSAxLjcwNy0uNzA3IDIuNSAyLjUgMCAwIDAgMi4xNTIuNzE3IDEgMSAwIDAgMSAxLjEzMSAxLjEzMSAyLjUgMi41IDAgMCAwIC43MTcgMi4xNTJBMSAxIDAgMCAxIDIxIDhoLTQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOCAxN3Y0YTEgMSAwIDAgMS0xLjcwNy43MDcgMi41IDIuNSAwIDAgMC0yLjE1Mi0uNzE3IDEgMSAwIDAgMS0xLjEzMS0xLjEzMSAyLjUgMi41IDAgMCAwLS43MTctMi4xNTJBMSAxIDAgMCAxIDMgMTZoNCJ9XV19KTt2YXIgZUUsYVllPXUoKCk9PntlRT1bWyJwYXRoIix7ZDoiTTEwIDd2MTAuOSJ9XSxbInBhdGgiLHtkOiJNMTQgNi4xVjE3In1dLFsicGF0aCIse2Q6Ik0xNiA3VjNhMSAxIDAgMCAxIDEuNzA3LS43MDcgMi41IDIuNSAwIDAgMCAyLjE1Mi43MTcgMSAxIDAgMCAxIDEuMTMxIDEuMTMxIDIuNSAyLjUgMCAwIDAgLjcxNyAyLjE1MkExIDEgMCAwIDEgMjEgOGgtNCJ9XSxbInBhdGgiLHtkOiJNMTYuNTM2IDcuNDY1YTUgNSAwIDAgMC03LjA3MiAwbC0yIDJhNSA1IDAgMCAwIDAgNy4wNyA1IDUgMCAwIDAgNy4wNzIgMGwyLTJhNSA1IDAgMCAwIDAtNy4wNyJ9XSxbInBhdGgiLHtkOiJNOCAxN3Y0YTEgMSAwIDAgMS0xLjcwNy43MDcgMi41IDIuNSAwIDAgMC0yLjE1Mi0uNzE3IDEgMSAwIDAgMS0xLjEzMS0xLjEzMSAyLjUgMi41IDAgMCAwLS43MTctMi4xNTJBMSAxIDAgMCAxIDMgMTZoNCJ9XV19KTt2YXIgdEUsaVllPXUoKCk9Pnt0RT1bWyJwYXRoIix7ZDoiTTEyIDIydi00YzEuNSAxLjUgMy41IDMgNiAzIDAtMS41LS41LTMuNS0yLTUifV0sWyJwYXRoIix7ZDoiTTEzLjk4OCA4LjMyN0MxMy45MDIgNi4wNTQgMTMuMzY1IDMuODIgMTIgMmE5LjMgOS4zIDAgMCAwLTEuNDQ1IDIuOSJ9XSxbInBhdGgiLHtkOiJNMTcuMzc1IDExLjcyNUMxOC44ODIgMTAuNTMgMjEgNy44NDEgMjEgNmMtMi4zMjQgMC01LjA4IDEuMjk2LTYuNjYyIDIuNjg0In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxLjAyNCAxNS4zNzhBMTUgMTUgMCAwIDAgMjIgMTVjLS40MjYtMS4yNzktMi42Ny0yLjU1Ny00LjI1LTIuOTA3In1dLFsicGF0aCIse2Q6Ik02Ljk5NSA2Ljk5MkM1LjcxNCA2LjQgNC4yOSA2IDMgNmMwIDIgMi41IDUgNCA2LTEuNSAwLTQuNSAxLjUtNSAzIDMuNSAxLjUgNiAxIDYgMS0xLjUgMS41LTIgMy41LTIgNSAyLjUgMCA0LjUtMS41IDYtMyJ9XV19KTt2YXIgckUsc1llPXUoKCk9PntyRT1bWyJwYXRoIix7ZDoiTTEyIDIydi00In1dLFsicGF0aCIse2Q6Ik03IDEyYy0xLjUgMC00LjUgMS41LTUgMyAzLjUgMS41IDYgMSA2IDEtMS41IDEuNS0yIDMuNS0yIDUgMi41IDAgNC41LTEuNSA2LTMgMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSAwIDAgMi41LjUgNi0xLS41LTEuNS0zLjUtMy01LTMgMS41LTEgNC00IDQtNi0yLjUgMC01LjUgMS41LTcgMyAwLTIuNS0uNS01LTItNy0xLjUgMi0yIDQuNS0yIDctMS41LTEuNS00LjUtMy03LTMgMCAyIDIuNSA1IDQgNiJ9XV19KTt2YXIgYUUsblllPXUoKCk9PnthRT1bWyJwYXRoIix7ZDoiTTEwLjUgNUgxOWEyIDIgMCAwIDEgMiAydjguNSJ9XSxbInBhdGgiLHtkOiJNMTcgMTFoLS41In1dLFsicGF0aCIse2Q6Ik0xOSAxOUg1YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTcgMTFoNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWgyLjUifV1dfSk7dmFyIGttLG9ZZT11KCgpPT57a209W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxNCIseDoiMyIseToiNSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDE1aDRNMTUgMTVoMk03IDExaDJNMTMgMTFoNCJ9XV19KTt2YXIgaUUsbFllPXUoKCk9PntpRT1bWyJwYXRoIix7ZDoibTIxIDgtMiAyLTEuNS0zLjdBMiAyIDAgMCAwIDE1LjY0NiA1SDguNGEyIDIgMCAwIDAtMS45MDMgMS4yNTdMNSAxMCAzIDgifV0sWyJwYXRoIix7ZDoiTTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNGguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXX0pO3ZhciBzRSxjWWU9dSgoKT0+e3NFPVtbInBhdGgiLHtkOiJNMTkgMTdoMmMuNiAwIDEtLjQgMS0xdi0zYzAtLjktLjctMS43LTEuNS0xLjlDMTguNyAxMC42IDE2IDEwIDE2IDEwcy0xLjMtMS40LTIuMi0yLjNjLS41LS40LTEuMS0uNy0xLjgtLjdINWMtLjYgMC0xLjEuNC0xLjQuOWwtMS40IDIuOUEzLjcgMy43IDAgMCAwIDIgMTJ2NGMwIC42LjQgMSAxIDFoMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTciLHI6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTdoNiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiIyIn1dXX0pO3ZhciBuRSxkWWU9dSgoKT0+e25FPVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Im0yMSA4LTIgMi0xLjUtMy43QTIgMiAwIDAgMCAxNS42NDYgNUg4LjRhMiAyIDAgMCAwLTEuOTAzIDEuMjU3TDUgMTAgMyA4In1dLFsicGF0aCIse2Q6Ik03IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTRoLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI4Iix4OiIzIix5OiIxMCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTUgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTkgMTh2MiJ9XV19KTt2YXIgb0UsdVllPXUoKCk9PntvRT1bWyJwYXRoIix7ZDoiTTE4IDE5VjlhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2OGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIgOWgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDIifV0sWyJwYXRoIix7ZDoiTTIyIDE3djFhMSAxIDAgMCAxLTEgMUgxMHYtOWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY5In1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgbEUscFllPXUoKCk9PntsRT1bWyJwYXRoIix7ZDoiTTEyIDE0djQifV0sWyJwYXRoIix7ZDoiTTE0LjE3MiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsMy44MjggMy44MjhBMiAyIDAgMCAxIDIwIDcuODI4VjIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInJlY3QiLHt4OiI4Iix5OiIxMCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIGNFLGZZZT11KCgpPT57Y0U9W1sicGF0aCIse2Q6Ik0yLjI3IDIxLjdzOS44Ny0zLjUgMTIuNzMtNi4zNmE0LjUgNC41IDAgMCAwLTYuMzYtNi4zN0M1Ljc3IDExLjg0IDIuMjcgMjEuNyAyLjI3IDIxLjd6TTguNjQgMTRsLTIuMDUtMi4wNE0xNS4zNCAxNWwtMi40Ni0yLjQ2In1dLFsicGF0aCIse2Q6Ik0yMiA5cy0xLjMzLTItMy41LTJDMTYuODYgNyAxNSA5IDE1IDlzMS4zMyAyIDMuNSAyUzIyIDkgMjIgOXoifV0sWyJwYXRoIix7ZDoiTTE1IDJzLTIgMS4zMy0yIDMuNVMxNSA5IDE1IDlzMi0xLjg0IDItMy41QzE3IDMuMzMgMTUgMiAxNSAyeiJ9XV19KTt2YXIgZEUsaFllPXUoKCk9PntkRT1bWyJwYXRoIix7ZDoiTTEwIDl2NyJ9XSxbInBhdGgiLHtkOiJNMTQgNnYxMCJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTIuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XV19KTt2YXIgdUUsbVllPXUoKCk9Pnt1RT1bWyJwYXRoIix7ZDoibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNMjIgOXY3In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XSxbImNpcmNsZSIse2N4OiIxOC41IixjeToiMTIuNSIscjoiMy41In1dXX0pO3ZhciBwRSxnWWU9dSgoKT0+e3BFPVtbInBhdGgiLHtkOiJNMTUgMTFoNC41YTEgMSAwIDAgMSAwIDVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtOWEuNS41IDAgMCAxIC41LS41aDNhMSAxIDAgMCAxIDAgNSJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV19KTt2YXIgZkUsYlllPXUoKCk9PntmRT1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTAiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEwIixyOiIyIn1dLFsicGF0aCIse2Q6Im02IDIwIC43LTIuOUExLjQgMS40IDAgMCAxIDguMSAxNmg3LjhhMS40IDEuNCAwIDAgMSAxLjQgMWwuNyAzIn1dXX0pO3ZhciBoRSx4WWU9dSgoKT0+e2hFPVtbInBhdGgiLHtkOiJNMiA4VjZhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJoLTYifV0sWyJwYXRoIix7ZDoiTTIgMTJhOSA5IDAgMCAxIDggOCJ9XSxbInBhdGgiLHtkOiJNMiAxNmE1IDUgMCAwIDEgNCA0In1dLFsibGluZSIse3gxOiIyIix4MjoiMi4wMSIseTE6IjIwIix5MjoiMjAifV1dfSk7dmFyIG1FLHZZZT11KCgpPT57bUU9W1sicGF0aCIse2Q6Ik0xMCA1VjMifV0sWyJwYXRoIix7ZDoiTTE0IDVWMyJ9XSxbInBhdGgiLHtkOiJNMTUgMjF2LTNhMyAzIDAgMCAwLTYgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCAzdjgifV0sWyJwYXRoIix7ZDoiTTE4IDVINiJ9XSxbInBhdGgiLHtkOiJNMjIgMTFIMiJ9XSxbInBhdGgiLHtkOiJNMjIgOXYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5In1dLFsicGF0aCIse2Q6Ik02IDN2OCJ9XV19KTt2YXIgZ0UseVllPXUoKCk9PntnRT1bWyJwYXRoIix7ZDoiTTEyIDVjLjY3IDAgMS4zNS4wOSAyIC4yNiAxLjc4LTIgNS4wMy0yLjg0IDYuNDItMi4yNiAxLjQuNTgtLjQyIDctLjQyIDcgLjU3IDEuMDcgMSAyLjI0IDEgMy40NEMyMSAxNy45IDE2Ljk3IDIxIDEyIDIxcy05LTMtOS03LjU2YzAtMS4yNS41LTIuNCAxLTMuNDQgMCAwLTEuODktNi40Mi0uNS03IDEuMzktLjU4IDQuNzIuMjMgNi41IDIuMjNBOS4wNCA5LjA0IDAgMCAxIDEyIDVaIn1dLFsicGF0aCIse2Q6Ik04IDE0di41In1dLFsicGF0aCIse2Q6Ik0xNiAxNHYuNSJ9XSxbInBhdGgiLHtkOiJNMTEuMjUgMTYuMjVoMS41TDEyIDE3bC0uNzUtLjc1WiJ9XV19KTt2YXIgYkUsd1llPXUoKCk9PntiRT1bWyJwYXRoIix7ZDoibTEyLjMwOSA2LjY1MiA0Ljc5NyAyLjQwMWExIDEgMCAwIDEgLjQ0NyAxLjM0MWwtLjUwMSAxLjAwMS42MDUuNjA1aDIuNzI1YTEgMSAwIDAgMSAuODk0IDEuNDQ3bC0uNzI0IDEuNDQ4In1dLFsicGF0aCIse2Q6Im0xNS4xNjYgMTUuMTY2LS43MTkgMS40MzlhMSAxIDAgMCAxLTEuMzQyLjQ0N0wzLjYxIDEyLjNhMi45MiAyLjkyIDAgMCAxLTEuMy0zLjkxTDMuNjkgNS42YTIuOSAyLjkgMCAwIDEgLjg3My0xLjAzNyJ9XSxbInBhdGgiLHtkOiJNMiAxOWgzLjc2YTIgMiAwIDAgMCAxLjgtMS4xbDEuNDQxLTIuOTAyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIgMjF2LTQifV0sWyJwYXRoIix7ZDoiTTcgOWguMDEifV1dfSk7dmFyIHhFLGtZZT11KCgpPT57eEU9W1sicGF0aCIse2Q6Ik0xNi43NSAxMmgzLjYzMmExIDEgMCAwIDEgLjg5NCAxLjQ0N2wtMi4wMzQgNC4wNjlhMSAxIDAgMCAxLTEuNzA4LjEzNGwtMi4xMjQtMi45NyJ9XSxbInBhdGgiLHtkOiJNMTcuMTA2IDkuMDUzYTEgMSAwIDAgMSAuNDQ3IDEuMzQxbC0zLjEwNiA2LjIxMWExIDEgMCAwIDEtMS4zNDIuNDQ3TDMuNjEgMTIuM2EyLjkyIDIuOTIgMCAwIDEtMS4zLTMuOTFMMy42OSA1LjZhMi45MiAyLjkyIDAgMCAxIDMuOTItMS4zeiJ9XSxbInBhdGgiLHtkOiJNMiAxOWgzLjc2YTIgMiAwIDAgMCAxLjgtMS4xTDkgMTUifV0sWyJwYXRoIix7ZDoiTTIgMjF2LTQifV0sWyJwYXRoIix7ZDoiTTcgOWguMDEifV1dfSk7dmFyIFNtLFNZZT11KCgpPT57U209W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxMS4yMDdhLjUuNSAwIDAgMSAuMTQ2LS4zNTNsMi0yYS41LjUgMCAwIDEgLjcwOCAwbDMuMjkyIDMuMjkyYS41LjUgMCAwIDAgLjcwOCAwbDQuMjkyLTQuMjkyYS41LjUgMCAwIDEgLjg1NC4zNTNWMTZhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBNbSxNWWU9dSgoKT0+e01tPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgdkUsQ1llPXUoKCk9Pnt2RT1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDExaDgifV0sWyJwYXRoIix7ZDoiTTcgMTZoMyJ9XSxbInBhdGgiLHtkOiJNNyA2aDEyIn1dXX0pO3ZhciB5RSx6WWU9dSgoKT0+e3lFPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTFoOCJ9XSxbInBhdGgiLHtkOiJNNyAxNmgxMiJ9XSxbInBhdGgiLHtkOiJNNyA2aDMifV1dfSk7dmFyIENtLF9ZZT11KCgpPT57Q209W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxNmg4In1dLFsicGF0aCIse2Q6Ik03IDExaDEyIn1dLFsicGF0aCIse2Q6Ik03IDZoMyJ9XV19KTt2YXIgd0UsVFllPXUoKCk9Pnt3RT1bWyJwYXRoIix7ZDoiTTExIDEzdjQifV0sWyJwYXRoIix7ZDoiTTE1IDV2NCJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgem0sTFllPXUoKCk9Pnt6bT1bWyJwYXRoIix7ZDoiTTkgNXY0In1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjYiLHg6IjciLHk6IjkiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik05IDE1djIifV0sWyJwYXRoIix7ZDoiTTE3IDN2MiJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI4Iix4OiIxNSIseToiNSIscng6IjEifV0sWyJwYXRoIix7ZDoiTTE3IDEzdjMifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dXX0pO3ZhciBfbSxEWWU9dSgoKT0+e19tPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjUiLHdpZHRoOiI0IixoZWlnaHQ6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt4OiI3Iix5OiI4Iix3aWR0aDoiNCIsaGVpZ2h0OiI5IixyeDoiMSJ9XV19KTt2YXIga0UsJFllPXUoKCk9PntrRT1bWyJwYXRoIix7ZDoiTTEzIDE3VjkifV0sWyJwYXRoIix7ZDoiTTE4IDE3di0zIn1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxN1Y1In1dXX0pO3ZhciBUbSxBWWU9dSgoKT0+e1RtPVtbInBhdGgiLHtkOiJNMTMgMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTggMTdWNSJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTd2LTMifV1dfSk7dmFyIFNFLEVZZT11KCgpPT57U0U9W1sicGF0aCIse2Q6Ik0xMSAxM0g3In1dLFsicGF0aCIse2Q6Ik0xOSA5aC00In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiIxNSIseToiNSIsd2lkdGg6IjQiLGhlaWdodDoiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjgiLHdpZHRoOiI0IixoZWlnaHQ6IjkiLHJ4OiIxIn1dXX0pO3ZhciBMbSxJWWU9dSgoKT0+e0xtPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTE4IDE3VjkifV0sWyJwYXRoIix7ZDoiTTEzIDE3VjUifV0sWyJwYXRoIix7ZDoiTTggMTd2LTMifV1dfSk7dmFyIE1FLFBZZT11KCgpPT57TUU9W1sicGF0aCIse2Q6Ik0xMCA2aDgifV0sWyJwYXRoIix7ZDoiTTEyIDE2aDYifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik04IDExaDcifV1dfSk7dmFyIERtLE5ZZT11KCgpPT57RG09W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJtMTkgOS01IDUtNC00LTMgMyJ9XV19KTt2YXIgQ0UsT1llPXUoKCk9PntDRT1bWyJwYXRoIix7ZDoibTEzLjExIDcuNjY0IDEuNzggMi42NzIifV0sWyJwYXRoIix7ZDoibTE0LjE2MiAxMi43ODgtMy4zMjQgMS40MjQifV0sWyJwYXRoIix7ZDoibTIwIDQtNi4wNiAxLjUxNSJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI2IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciB6RSxSWWU9dSgoKT0+e3pFPVtbInBhdGgiLHtkOiJNNSAyMVYzIn1dLFsicGF0aCIse2Q6Ik0xMiAyMVY5In1dLFsicGF0aCIse2Q6Ik0xOSAyMXYtNiJ9XV19KTt2YXIgJG0sRlllPXUoKCk9PnskbT1bWyJwYXRoIix7ZDoiTTUgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxVjkifV1dfSk7dmFyIF9FLEJZZT11KCgpPT57X0U9W1sicGF0aCIse2Q6Ik0xMiAxNnY1In1dLFsicGF0aCIse2Q6Ik0xNiAxNHY3In1dLFsicGF0aCIse2Q6Ik0yMCAxMHYxMSJ9XSxbInBhdGgiLHtkOiJtMjIgMy04LjY0NiA4LjY0NmEuNS41IDAgMCAxLS43MDggMEw5LjM1NCA4LjM1NGEuNS41IDAgMCAwLS43MDcgMEwyIDE1In1dLFsicGF0aCIse2Q6Ik00IDE4djMifV0sWyJwYXRoIix7ZDoiTTggMTR2NyJ9XV19KTt2YXIgQW0sSFllPXUoKCk9PntBbT1bWyJwYXRoIix7ZDoiTTUgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjkifV0sWyJwYXRoIix7ZDoiTTE5IDIxVjMifV1dfSk7dmFyIEVtLHFZZT11KCgpPT57RW09W1sicGF0aCIse2Q6Ik02IDVoMTIifV0sWyJwYXRoIix7ZDoiTTQgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE5aDgifV1dfSk7dmFyIEltLFZZZT11KCgpPT57SW09W1sicGF0aCIse2Q6Ik0yMSAxMmMuNTUyIDAgMS4wMDUtLjQ0OS45NS0uOTk4YTEwIDEwIDAgMCAwLTguOTUzLTguOTUxYy0uNTUtLjA1NS0uOTk4LjM5OC0uOTk4Ljk1djhhMSAxIDAgMCAwIDEgMXoifV0sWyJwYXRoIix7ZDoiTTIxLjIxIDE1Ljg5QTEwIDEwIDAgMSAxIDggMi44MyJ9XV19KTt2YXIgUG0salllPXUoKCk9PntQbT1bWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiI1LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjExLjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTQuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV1dfSk7dmFyIFRFLFVZZT11KCgpPT57VEU9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxNmMuNS0yIDEuNS03IDQtNyAyIDAgMiAzIDQgMyAyLjUgMCA0LjUtNSA1LTcifV1dfSk7dmFyIExFLFdZZT11KCgpPT57TEU9W1sicGF0aCIse2Q6Ik0xOCA2IDcgMTdsLTUtNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTAtNy41IDcuNUwxMyAxNiJ9XV19KTt2YXIgREUsR1llPXUoKCk9PntERT1bWyJwYXRoIix7ZDoiTTIwIDRMOSAxNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlMMyAxOSJ9XSxbInBhdGgiLHtkOiJNOSAxNUw0IDEwIn1dXX0pO3ZhciAkRSxZWWU9dSgoKT0+eyRFPVtbInBhdGgiLHtkOiJNMjAgNiA5IDE3bC01LTUifV1dfSk7dmFyIEFFLEtZZT11KCgpPT57QUU9W1sicGF0aCIse2Q6Ik0xNyAyMWExIDEgMCAwIDAgMS0xdi01LjM1YzAtLjQ1Ny4zMTYtLjg0NC43MjctMS4wNDFhNCA0IDAgMCAwLTIuMTM0LTcuNTg5IDUgNSAwIDAgMC05LjE4NiAwIDQgNCAwIDAgMC0yLjEzNCA3LjU4OGMuNDExLjE5OC43MjcuNTg1LjcyNyAxLjA0MVYyMGExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNNiAxN2gxMiJ9XV19KTt2YXIgRUUsWlllPXUoKCk9PntFRT1bWyJwYXRoIix7ZDoiTTIgMTdhNSA1IDAgMCAwIDEwIDBjMC0yLjc2LTIuNS01LTUtMy0yLjUtMi01IC4yNC01IDNaIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1oifV0sWyJwYXRoIix7ZDoiTTcgMTRjMy4yMi0yLjkxIDQuMjktOC43NSA1LTEyIDEuNjYgMi4zOCA0Ljk0IDkgNSAxMiJ9XSxbInBhdGgiLHtkOiJNMjIgOWMtNC4yOSAwLTcuMTQtMi4zMy0xMC03IDUuNzEgMCAxMCA0LjY3IDEwIDdaIn1dXX0pO3ZhciBJRSxRWWU9dSgoKT0+e0lFPVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTE1IDE4YzEuNS0uNjE1IDMtMi40NjEgMy00LjkyM0MxOCA4Ljc2OSAxNC41IDQuNDYyIDEyIDIgOS41IDQuNDYyIDYgOC43NyA2IDEzLjA3NyA2IDE1LjUzOSA3LjUgMTcuMzg1IDkgMTgifV0sWyJwYXRoIix7ZDoibTE2IDctMi41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAyaDYifV1dfSk7dmFyIFBFLFhZZT11KCgpPT57UEU9W1sicGF0aCIse2Q6Ik00IDIwYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtNi43IDE4LTEtMUM0LjM1IDE1LjY4MiAzIDE0LjA5IDMgMTJhNSA1IDAgMCAxIDQuOTUtNWMxLjU4NCAwIDIuNy40NTUgNC4wNSAxLjgxOEMxMy4zNSA3LjQ1NSAxNC40NjYgNyAxNi4wNSA3QTUgNSAwIDAgMSAyMSAxMmMwIDIuMDgyLTEuMzU5IDMuNjczLTIuNyA1bC0xIDEifV0sWyJwYXRoIix7ZDoiTTEwIDRoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY2LjgxOCJ9XV19KTt2YXIgTkUsSlllPXUoKCk9PntORT1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Im0xNC41IDEwIDEuNSA4In1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Im04IDE4IDEuNS04In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiNCJ9XV19KTt2YXIgT0UsZUtlPXUoKCk9PntPRT1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xNi41IDE4YzEtMiAyLjUtNSAyLjUtOWE3IDcgMCAwIDAtNy03SDYuNjM1YTEgMSAwIDAgMC0uNzY4IDEuNjRMNyA1bC0yLjMyIDUuODAyYTIgMiAwIDAgMCAuOTUgMi41MjZsMi44NyAxLjQ1NiJ9XSxbInBhdGgiLHtkOiJtMTUgNSAxLjQyNS0xLjQyNSJ9XSxbInBhdGgiLHtkOiJtMTcgOCAxLjUzLTEuNTMifV0sWyJwYXRoIix7ZDoiTTkuNzEzIDEyLjE4NSA3IDE4In1dXX0pO3ZhciBSRSx0S2U9dSgoKT0+e1JFPVtbInBhdGgiLHtkOiJNNCAyMGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoibTEyLjQ3NCA1Ljk0MyAxLjU2NyA1LjM0YTEgMSAwIDAgMCAxLjc1LjMyOGwyLjYxNi0zLjQwMiJ9XSxbInBhdGgiLHtkOiJtMjAgOS0zIDkifV0sWyJwYXRoIix7ZDoibTUuNTk0IDguMjA5IDIuNjE1IDMuNDAzYTEgMSAwIDAgMCAxLjc1LS4zMjlsMS41NjctNS4zNCJ9XSxbInBhdGgiLHtkOiJNNyAxOCA0IDkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiNyIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiNyIscjoiMiJ9XV19KTt2YXIgRkUscktlPXUoKCk9PntGRT1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xMCAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MiJ9XSxbInBhdGgiLHtkOiJtMTcgMTgtMS05In1dLFsicGF0aCIse2Q6Ik02IDJ2NWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyIn1dLFsicGF0aCIse2Q6Ik02IDRoMTIifV0sWyJwYXRoIix7ZDoibTcgMTggMS05In1dXX0pO3ZhciBCRSxhS2U9dSgoKT0+e0JFPVtbInBhdGgiLHtkOiJtNiA5IDYgNiA2LTYifV1dfSk7dmFyIEhFLGlLZT11KCgpPT57SEU9W1sicGF0aCIse2Q6Im0xNyAxOC02LTYgNi02In1dLFsicGF0aCIse2Q6Ik03IDZ2MTIifV1dfSk7dmFyIHFFLHNLZT11KCgpPT57cUU9W1sicGF0aCIse2Q6Im03IDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoiTTE3IDZ2MTIifV1dfSk7dmFyIFZFLG5LZT11KCgpPT57VkU9W1sicGF0aCIse2Q6Im0xNSAxOC02LTYgNi02In1dXX0pO3ZhciBqRSxvS2U9dSgoKT0+e2pFPVtbInBhdGgiLHtkOiJtOSAxOCA2LTYtNi02In1dXX0pO3ZhciBVRSxsS2U9dSgoKT0+e1VFPVtbInBhdGgiLHtkOiJtMTggMTUtNi02LTYgNiJ9XV19KTt2YXIgV0UsY0tlPXUoKCk9PntXRT1bWyJwYXRoIix7ZDoibTcgMjAgNS01IDUgNSJ9XSxbInBhdGgiLHtkOiJtNyA0IDUgNSA1LTUifV1dfSk7dmFyIEdFLGRLZT11KCgpPT57R0U9W1sicGF0aCIse2Q6Im03IDYgNSA1IDUtNSJ9XSxbInBhdGgiLHtkOiJtNyAxMyA1IDUgNS01In1dXX0pO3ZhciBZRSx1S2U9dSgoKT0+e1lFPVtbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV0sWyJwYXRoIix7ZDoibTE3IDcgNSA1LTUgNSJ9XSxbInBhdGgiLHtkOiJtNyA3LTUgNSA1IDUifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dXX0pO3ZhciBLRSxwS2U9dSgoKT0+e0tFPVtbInBhdGgiLHtkOiJtOSA3LTUgNSA1IDUifV0sWyJwYXRoIix7ZDoibTE1IDcgNSA1LTUgNSJ9XV19KTt2YXIgWkUsZktlPXUoKCk9PntaRT1bWyJwYXRoIix7ZDoibTIwIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTQgMTcgNS01LTUtNSJ9XV19KTt2YXIgUUUsaEtlPXUoKCk9PntRRT1bWyJwYXRoIix7ZDoibTExIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTE4IDE3LTUtNSA1LTUifV1dfSk7dmFyIFhFLG1LZT11KCgpPT57WEU9W1sicGF0aCIse2Q6Im02IDE3IDUtNS01LTUifV0sWyJwYXRoIix7ZDoibTEzIDE3IDUtNS01LTUifV1dfSk7dmFyIEpFLGdLZT11KCgpPT57SkU9W1sicGF0aCIse2Q6Im03IDE1IDUgNSA1LTUifV0sWyJwYXRoIix7ZDoibTcgOSA1LTUgNSA1In1dXX0pO3ZhciBlSSxiS2U9dSgoKT0+e2VJPVtbInBhdGgiLHtkOiJtMTcgMTEtNS01LTUgNSJ9XSxbInBhdGgiLHtkOiJtMTcgMTgtNS01LTUgNSJ9XV19KTt2YXIgdEkseEtlPXUoKCk9Pnt0ST1bWyJwYXRoIix7ZDoiTTEwIDloNCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y1In1dLFsicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoibTE4IDkgMy41MiAyLjE0N2ExIDEgMCAwIDEgLjQ4Ljg1NFYxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtNi45OTlhMSAxIDAgMCAxIC40OC0uODU0TDYgOSJ9XSxbInBhdGgiLHtkOiJNNiAyMVY3YTEgMSAwIDAgMSAuMzc2LS43ODJsNS0zLjk5OWExIDEgMCAwIDEgMS4yNDkuMDAxbDUgNEExIDEgMCAwIDEgMTggN3YxNCJ9XV19KTt2YXIgckksdktlPXUoKCk9PntyST1bWyJwYXRoIix7ZDoiTTEyIDEySDNhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMTMifV0sWyJwYXRoIix7ZDoiTTE4IDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtLjUuODY2In1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNNyAxMnY0In1dXX0pO3ZhciBhSSx5S2U9dSgoKT0+e2FJPVtbInBhdGgiLHtkOiJNMTcgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxNCJ9XSxbInBhdGgiLHtkOiJNMTggOGMwLTIuNS0yLTIuNS0yLTUifV0sWyJwYXRoIix7ZDoiTTIxIDE2YTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjIgOGMwLTIuNS0yLTIuNS0yLTUifV0sWyJwYXRoIix7ZDoiTTcgMTJ2NCJ9XV19KTt2YXIgTm0sd0tlPXUoKCk9PntObT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxNiIseTI6IjE2In1dXX0pO3ZhciBPbSxrS2U9dSgoKT0+e09tPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04IDEyIDQgNCA0LTQifV1dfSk7dmFyIFJtLFNLZT11KCgpPT57Um09W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xMiA4LTQgNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV1dfSk7dmFyIEZtLE1LZT11KCgpPT57Rm09W1sicGF0aCIse2Q6Ik0yIDEyYTEwIDEwIDAgMSAxIDEwIDEwIn1dLFsicGF0aCIse2Q6Im0yIDIyIDEwLTEwIn1dLFsicGF0aCIse2Q6Ik04IDIySDJ2LTYifV1dfSk7dmFyIEJtLENLZT11KCgpPT57Qm09W1sicGF0aCIse2Q6Ik0xMiAyMmExMCAxMCAwIDEgMSAxMC0xMCJ9XSxbInBhdGgiLHtkOiJNMjIgMjIgMTIgMTIifV0sWyJwYXRoIix7ZDoiTTIyIDE2djZoLTYifV1dfSk7dmFyIEhtLHpLZT11KCgpPT57SG09W1sicGF0aCIse2Q6Ik0yIDhWMmg2In1dLFsicGF0aCIse2Q6Im0yIDIgMTAgMTAifV0sWyJwYXRoIix7ZDoiTTEyIDJBMTAgMTAgMCAxIDEgMiAxMiJ9XV19KTt2YXIgcW0sX0tlPXUoKCk9PntxbT1bWyJwYXRoIix7ZDoiTTIyIDEyQTEwIDEwIDAgMSAxIDEyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDIgMTIgMTIifV0sWyJwYXRoIix7ZDoiTTE2IDJoNnY2In1dXX0pO3ZhciBWbSxUS2U9dSgoKT0+e1ZtPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTIgMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBqbSxMS2U9dSgoKT0+e2ptPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTYgMTItNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWOCJ9XV19KTt2YXIgVW0sREtlPXUoKCk9PntVbT1bWyJwYXRoIix7ZDoiTTIxLjgwMSAxMEExMCAxMCAwIDEgMSAxNyAzLjMzNSJ9XSxbInBhdGgiLHtkOiJtOSAxMSAzIDNMMjIgNCJ9XV19KTt2YXIgV20sJEtlPXUoKCk9PntXbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgR20sQUtlPXUoKCk9PntHbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE2IDEwLTQgNC00LTQifV1dfSk7dmFyIFltLEVLZT11KCgpPT57WW09W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNCAxNi00LTQgNC00In1dXX0pO3ZhciBLbSxJS2U9dSgoKT0+e0ttPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXX0pO3ZhciBabSxQS2U9dSgoKT0+e1ptPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtOCAxNCA0LTQgNCA0In1dXX0pO3ZhciBpSSxOS2U9dSgoKT0+e2lJPVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyMWExMCAxMCAwIDAgMSAyLjY5IDIuNyJ9XSxbInBhdGgiLHtkOiJNMi4xODIgMTMuOWExMCAxMCAwIDAgMSAwLTMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjc5IDE3LjYwOWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Ik02LjM5MSAyMC4yNzlhMTAgMTAgMCAwIDEtMi42OS0yLjcifV1dfSk7dmFyIFFtLE9LZT11KCgpPT57UW09W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTYiLHkyOiIxNiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiI4In1dXX0pO3ZhciBzSSxSS2U9dSgoKT0+e3NJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgOGgtNmEyIDIgMCAxIDAgMCA0aDRhMiAyIDAgMSAxIDAgNEg4In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dXX0pO3ZhciBuSSxGS2U9dSgoKT0+e25JPVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4YTkuOTMgOS45MyAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTcuNiAzLjcxYTkuOTUgOS45NSAwIDAgMSAyLjY5IDIuNyJ9XSxbInBhdGgiLHtkOiJNMjEuODIgMTAuMWE5LjkzIDkuOTMgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTIwLjI5IDE3LjZhOS45NSA5Ljk1IDAgMCAxLTIuNyAyLjY5In1dLFsicGF0aCIse2Q6Ik0xMy45IDIxLjgyYTkuOTQgOS45NCAwIDAgMS0zLjggMCJ9XSxbInBhdGgiLHtkOiJNNi40IDIwLjI5YTkuOTUgOS45NSAwIDAgMS0yLjY5LTIuNyJ9XSxbInBhdGgiLHtkOiJNMi4xOCAxMy45YTkuOTMgOS45MyAwIDAgMSAwLTMuOCJ9XSxbInBhdGgiLHtkOiJNMy43MSA2LjRhOS45NSA5Ljk1IDAgMCAxIDIuNy0yLjY5In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIG9JLEJLZT11KCgpPT57b0k9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIGxJLEhLZT11KCgpPT57bEk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNyAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dfSk7dmFyIGNJLHFLZT11KCgpPT57Y0k9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE0aDEwIn1dXX0pO3ZhciBkSSxWS2U9dSgoKT0+e2RJPVtbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1In1dLFsicGF0aCIse2Q6Im0xNiAxMi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAxNlY4In1dLFsicGF0aCIse2Q6Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyJ9XSxbInBhdGgiLHtkOiJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCJ9XSxbInBhdGgiLHtkOiJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3In1dLFsicGF0aCIse2Q6Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgifV1dfSk7dmFyIHVJLGpLZT11KCgpPT57dUk9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXX0pO3ZhciBYbSxVS2U9dSgoKT0+e1htPVtbInBhdGgiLHtkOiJNMTUuNiAyLjdhMTAgMTAgMCAxIDAgNS43IDUuNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMy40IDEwLjYgMTkgNSJ9XV19KTt2YXIgSm0sV0tlPXUoKCk9PntKbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgcEksR0tlPXUoKCk9PntwST1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC4zNSAyLjY5QTEwIDEwIDAgMCAxIDIxLjMgMTUuNjUifV0sWyJwYXRoIix7ZDoiTTE5LjA4IDE5LjA4QTEwIDEwIDAgMSAxIDQuOTIgNC45MiJ9XV19KTt2YXIgZTUsWUtlPXUoKCk9PntlNT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOSJ9XV19KTt2YXIgdDUsS0tlPXUoKCk9Pnt0NT1bWyJwYXRoIix7ZDoiTTEyLjY1NiA3SDEzYTMgMyAwIDAgMSAyLjk4NCAzLjMwNyJ9XSxbInBhdGgiLHtkOiJNMTMgMTNIOSJ9XSxbInBhdGgiLHtkOiJNMTkuMDcxIDE5LjA3MUExIDEgMCAwIDEgNC45MyA0LjkzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTguMzU3IDIuNjg3YTEwIDEwIDAgMCAxIDEyLjk1NiAxMi45NTYifV0sWyJwYXRoIix7ZDoiTTkgMTdWOSJ9XV19KTt2YXIgcjUsWktlPXUoKCk9PntyNT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dfSk7dmFyIGE1LFFLZT11KCgpPT57YTU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiIxMCIseDI6IjEwIix5MToiMTUiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNCIseDI6IjE0Iix5MToiMTUiLHkyOiI5In1dXX0pO3ZhciBmSSxYS2U9dSgoKT0+e2ZJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEyIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgaTUsSktlPXUoKCk9PntpNT1bWyJwYXRoIix7ZDoiTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIHM1LGVaZT11KCgpPT57czU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XV19KTt2YXIgaEksdFplPXUoKCk9PntoST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEwIDE2VjkuNWExIDEgMCAwIDEgNSAwIn1dLFsicGF0aCIse2Q6Ik04IDEyaDQifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XV19KTt2YXIgbjUsclplPXUoKCk9PntuNT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNNy45OTggOS4wMDNhNSA1IDAgMSAwIDgtLjAwNSJ9XV19KTt2YXIgSDQsYVplPXUoKCk9PntIND1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dfSk7dmFyIG81LGlaZT11KCgpPT57bzU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0yMiAyIDIgMjIifV1dfSk7dmFyIG1JLHNaZT11KCgpPT57bUk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiI5Iix4MjoiMTUiLHkxOiIxNSIseTI6IjkifV1dfSk7dmFyIGdJLG5aZT11KCgpPT57Z0k9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjYifV1dfSk7dmFyIGJJLG9aZT11KCgpPT57Ykk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMS4wNTEgNy42MTZhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjdsLTEuMTU2LTEuMTUyYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV1dfSk7dmFyIGw1LGxaZT11KCgpPT57bDU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicmVjdCIse3g6IjkiLHk6IjkiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dXX0pO3ZhciBjNSxjWmU9dSgoKT0+e2M1PVtbInBhdGgiLHtkOiJNMTcuOTI1IDIwLjA1NmE2IDYgMCAwIDAtMTEuODUxLjAwMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExIixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBkNSxkWmU9dSgoKT0+e2Q1PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik03IDIwLjY2MlYxOWEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYxLjY2MiJ9XV19KTt2YXIgdTUsdVplPXUoKCk9Pnt1NT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Im05IDkgNiA2In1dXX0pO3ZhciB4SSxwWmU9dSgoKT0+e3hJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgdkksZlplPXUoKCk9Pnt2ST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTEgOWg0YTIgMiAwIDAgMCAyLTJWMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNyAyMXYtNGEyIDIgMCAwIDEgMi0yaDQifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxNSIscjoiMiJ9XV19KTt2YXIgeUksaFplPXUoKCk9Pnt5ST1bWyJwYXRoIix7ZDoibTEyLjI5NiAzLjQ2NCAzLjAyIDMuOTU2In1dLFsicGF0aCIse2Q6Ik0yMC4yIDYgMyAxMWwtLjktMi40Yy0uMy0xLjEuMy0yLjIgMS4zLTIuNWwxMy41LTRjMS4xLS4zIDIuMi4zIDIuNSAxLjN6In1dLFsicGF0aCIse2Q6Ik0zIDExaDE4djhhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dLFsicGF0aCIse2Q6Im02LjE4IDUuMjc2IDMuMSAzLjg5OSJ9XV19KTt2YXIgd0ksbVplPXUoKCk9Pnt3ST1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJtOSAxNCAyIDIgNC00In1dXX0pO3ZhciBrSSxnWmU9dSgoKT0+e2tJPVtbInBhdGgiLHtkOiJNMjEuNjYgMTcuNjdhMS4wOCAxLjA4IDAgMCAxLS4wNCAxLjZBMTIgMTIgMCAwIDEgNC43MyAyLjM4YTEuMSAxLjEgMCAwIDEgMS42MS0uMDR6In1dLFsicGF0aCIse2Q6Ik0xOS42NSAxNS42NkE4IDggMCAwIDEgOC4zNSA0LjM0In1dLFsicGF0aCIse2Q6Im0xNCAxMC01LjUgNS41In1dLFsicGF0aCIse2Q6Ik0xNCAxNy44NVYxMEg2LjE1In1dXX0pO3ZhciBTSSxiWmU9dSgoKT0+e1NJPVtbInBhdGgiLHtkOiJNMTYgMTR2Mi4ybDEuNiAxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYuODMyIn1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciBNSSx4WmU9dSgoKT0+e01JPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxNEgxMSJ9XSxbInBhdGgiLHtkOiJtMTUgMTAtNCA0IDQgNCJ9XV19KTt2YXIgQ0ksdlplPXUoKCk9PntDST1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoNCJ9XSxbInBhdGgiLHtkOiJNOCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dXX0pO3ZhciB6SSx5WmU9dSgoKT0+e3pJPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDE0aDYifV1dfSk7dmFyIF9JLHdaZT11KCgpPT57X0k9W1sicGF0aCIse2Q6Ik0xMSAxNGgxMCJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MS4zNDQifV0sWyJwYXRoIix7ZDoibTE3IDE4IDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMS43OTMtMS4xMTMifV0sWyJyZWN0Iix7eDoiOCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIHA1LGtaZT11KCgpPT57cDU9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtLjUifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMS43MyAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aDEifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxMi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV19KTt2YXIgZjUsU1plPXUoKCk9PntmNT1bWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxLjM0IDE1LjY2NGExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsicGF0aCIse2Q6Ik04IDIySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgVEksTVplPXUoKCk9PntUST1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNOSAxNGg2In1dLFsicGF0aCIse2Q6Ik0xMiAxN3YtNiJ9XV19KTt2YXIgTEksQ1plPXUoKCk9PntMST1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNOSAxMnYtMWg2djEifV0sWyJwYXRoIix7ZDoiTTExIDE3aDIifV0sWyJwYXRoIix7ZDoiTTEyIDExdjYifV1dfSk7dmFyIERJLHpaZT11KCgpPT57REk9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoibTE1IDExLTYgNiJ9XSxbInBhdGgiLHtkOiJtOSAxMSA2IDYifV1dfSk7dmFyICRJLF9aZT11KCgpPT57JEk9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV1dfSk7dmFyIEFJLFRaZT11KCgpPT57QUk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsMi00In1dXX0pO3ZhciBFSSxMWmU9dSgoKT0+e0VJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bC00LTIifV1dfSk7dmFyIElJLERaZT11KCgpPT57SUk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsLTItNCJ9XV19KTt2YXIgUEksJFplPXUoKCk9PntQST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NiJ9XV19KTt2YXIgTkksQVplPXUoKCk9PntOST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0LTIifV1dfSk7dmFyIE9JLEVaZT11KCgpPT57T0k9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZoNCJ9XV19KTt2YXIgUkksSVplPXUoKCk9PntSST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV1dfSk7dmFyIEZJLFBaZT11KCgpPT57Rkk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZsMiA0In1dXX0pO3ZhciBCSSxOWmU9dSgoKT0+e0JJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnYxMCJ9XV19KTt2YXIgSEksT1plPXUoKCk9PntIST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NmwtMiA0In1dXX0pO3ZhciBxSSxSWmU9dSgoKT0+e3FJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bC00IDIifV1dfSk7dmFyIFZJLEZaZT11KCgpPT57Vkk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA2djZIOCJ9XV19KTt2YXIgakksQlplPXUoKCk9PntqST1bWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJwYXRoIix7ZDoiTTIwIDEydjUifV0sWyJwYXRoIix7ZDoiTTIwIDIxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEuMjUgOC4yQTEwIDEwIDAgMSAwIDE2IDIxLjE2In1dXX0pO3ZhciBVSSxIWmU9dSgoKT0+e1VJPVtbInBhdGgiLHtkOiJNMTIgNnY2bDIgMSJ9XSxbInBhdGgiLHtkOiJNMTIuMzM3IDIxLjk5NGExMCAxMCAwIDEgMSA5LjU4OC04Ljc2NyJ9XSxbInBhdGgiLHtkOiJtMTQgMTggNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTR2OCJ9XV19KTt2YXIgV0kscVplPXUoKCk9PntXST1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwxLjU2Ljc4In1dLFsicGF0aCIse2Q6Ik0xMy4yMjcgMjEuOTI1YTEwIDEwIDAgMSAxIDguNzY3LTkuNTg4In1dLFsicGF0aCIse2Q6Im0xNCAxOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtOCJ9XV19KTt2YXIgR0ksVlplPXUoKCk9PntHST1bWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJwYXRoIix7ZDoiTTIyIDEyYTEwIDEwIDAgMSAwLTExIDkuOTUifV0sWyJwYXRoIix7ZDoibTIyIDE2LTUuNSA1LjVMMTQgMTkifV1dfSk7dmFyIFlJLGpaZT11KCgpPT57WUk9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJwYXRoIix7ZDoiTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIn1dLFsicGF0aCIse2Q6Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40In1dLFsicGF0aCIse2Q6Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTcifV0sWyJwYXRoIix7ZDoiTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCJ9XV19KTt2YXIgS0ksVVplPXUoKCk9PntLST1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwzLjY0NCAxLjgyMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMjEuOTIgMTMuMjY3YTEwIDEwIDAgMSAwLTguNjUzIDguNjUzIn1dXX0pO3ZhciBaSSxXWmU9dSgoKT0+e1pJPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XV19KTt2YXIgUUksR1plPXUoKCk9PntRST1bWyJwYXRoIix7ZDoiTTEwIDkuMTdhMyAzIDAgMSAwIDAgNS42NiJ9XSxbInBhdGgiLHtkOiJNMTcgOS4xN2EzIDMgMCAxIDAgMCA1LjY2In1dLFsicmVjdCIse3g6IjIiLHk6IjUiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dfSk7dmFyIFhJLFlaZT11KCgpPT57WEk9W1sicGF0aCIse2Q6Ik0xMiAxMnY0In1dLFsicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTguMTI4IDE2Ljk0OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTEgMSAwIDAgMSAwIDloLTEuNjQyIn1dXX0pO3ZhciBKSSxLWmU9dSgoKT0+e0pJPVtbInBhdGgiLHtkOiJNMjEgMTUuMjUxQTQuNSA0LjUgMCAwIDAgMTcuNSA4aC0xLjc5QTcgNyAwIDEgMCAzIDEzLjYwNyJ9XSxbInBhdGgiLHtkOiJNNyAxMXY0aDQifV0sWyJwYXRoIix7ZDoiTTggMTlhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjUgNC44MiA0LjgyIDAgMCAwLTMuNDEgMS40MUw3IDE1In1dXX0pO3ZhciBlUCxaWmU9dSgoKT0+e2VQPVtbInBhdGgiLHtkOiJtMTcgMTUtNS41IDUuNUw5IDE4In1dLFsicGF0aCIse2Q6Ik01LjUxNiAxNi4wN0E3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMy41MDEgNy4zMjcifV1dfSk7dmFyIHRQLFFaZT11KCgpPT57dFA9W1sicGF0aCIse2Q6Im0xMC44NTIgMTkuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xMy4xNDggMTQuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Ik0xMy4xNDggMTkuNzcyYTMgMyAwIDEgMC0yLjI5Ni01LjU0NGwtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAyMC42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDE1Ljg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDE4LjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjIgMTUuMWE3IDcgMCAxIDEgOS45My05Ljg1OEE3IDcgMCAwIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMiJ9XSxbInBhdGgiLHtkOiJtOS4yMjggMTUuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtOS4yMjggMTguMTQ4LS45MjMuMzgzIn1dXX0pO3ZhciBoNSxYWmU9dSgoKT0+e2g1PVtbInBhdGgiLHtkOiJNMTIgMTN2OGwtNC00In1dLFsicGF0aCIse2Q6Im0xMiAyMSA0LTQifV0sWyJwYXRoIix7ZDoiTTQuMzkzIDE1LjI2OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi40MzYgOC4yODQifV1dfSk7dmFyIHJQLEpaZT11KCgpPT57clA9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik04IDE5djEifV0sWyJwYXRoIix7ZDoiTTggMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTYgMTl2MSJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMjF2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2MSJ9XV19KTt2YXIgYVAsZVFlPXUoKCk9PnthUD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDcifV0sWyJwYXRoIix7ZDoiTTE3IDIxSDkifV1dfSk7dmFyIGlQLHRRZT11KCgpPT57aVA9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHYyIn1dLFsicGF0aCIse2Q6Ik04IDE0djIifV0sWyJwYXRoIix7ZDoiTTE2IDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE2djIifV0sWyJwYXRoIix7ZDoiTTEyIDIyaC4wMSJ9XV19KTt2YXIgc1AsclFlPXUoKCk9PntzUD1bWyJwYXRoIix7ZDoiTTYgMTYuMzI2QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAuNSA4Ljk3MyJ9XSxbInBhdGgiLHtkOiJtMTMgMTItMyA1aDRsLTMgNSJ9XV19KTt2YXIgblAsYVFlPXUoKCk9PntuUD1bWyJwYXRoIix7ZDoiTTExIDIwdjIifV0sWyJwYXRoIix7ZDoiTTE4LjM3NiAxNC41MTJhNiA2IDAgMCAwIDMuNDYxLTQuMTI3Yy4xNDgtLjYyNS0uNjU5LS45Ny0xLjI0OC0uNzE0YTQgNCAwIDAgMS01LjI1OS01LjI2Yy4yNTUtLjU4OS0uMDktMS4zOTUtLjcxNi0xLjI0OGE2IDYgMCAwIDAtNC41OTQgNS4zNiJ9XSxbInBhdGgiLHtkOiJNMyAyMGE1IDUgMCAxIDEgOC45LTRIMTNhMyAzIDAgMCAxIDIgNS4yNCJ9XSxbInBhdGgiLHtkOiJNNyAxOXYyIn1dXX0pO3ZhciBvUCxpUWU9dSgoKT0+e29QPVtbInBhdGgiLHtkOiJNMTMgMTZhMyAzIDAgMCAxIDAgNkg3YTUgNSAwIDEgMSA0LjktNnoifV0sWyJwYXRoIix7ZDoiTTE4LjM3NiAxNC41MTJhNiA2IDAgMCAwIDMuNDYxLTQuMTI3Yy4xNDgtLjYyNS0uNjU5LS45Ny0xLjI0OC0uNzE0YTQgNCAwIDAgMS01LjI1OS01LjI2Yy4yNTUtLjU4OS0uMDktMS4zOTUtLjcxNi0xLjI0OGE2IDYgMCAwIDAtNC41OTQgNS4zNiJ9XV19KTt2YXIgbFAsc1FlPXUoKCk9PntsUD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoibTkuMiAyMiAzLTcifV0sWyJwYXRoIix7ZDoibTkgMTMtMyA3In1dLFsicGF0aCIse2Q6Im0xNyAxMy0zIDcifV1dfSk7dmFyIGNQLG5RZT11KCgpPT57Y1A9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHY2In1dLFsicGF0aCIse2Q6Ik04IDE0djYifV0sWyJwYXRoIix7ZDoiTTEyIDE2djYifV1dfSk7dmFyIGRQLG9RZT11KCgpPT57ZFA9W1sicGF0aCIse2Q6Ik0xMC45NCA1LjI3NEE3IDcgMCAwIDEgMTUuNzEgMTBoMS43OWE0LjUgNC41IDAgMCAxIDQuMjIyIDYuMDU3In1dLFsicGF0aCIse2Q6Ik0xOC43OTYgMTguODFBNC41IDQuNSAwIDAgMSAxNy41IDE5SDlBNyA3IDAgMCAxIDUuNzkgNS43OCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciB1UCxsUWU9dSgoKT0+e3VQPVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTloLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWguMDEifV1dfSk7dmFyIHBQLGNRZT11KCgpPT57cFA9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0xNS45NDcgMTIuNjVhNCA0IDAgMCAwLTUuOTI1LTQuMTI4In1dLFsicGF0aCIse2Q6Ik0zIDIwYTUgNSAwIDEgMSA4LjktNEgxM2EzIDMgMCAwIDEgMiA1LjI0In1dLFsicGF0aCIse2Q6Ik0xMSAyMHYyIn1dLFsicGF0aCIse2Q6Ik03IDE5djIifV1dfSk7dmFyIGZQLGRRZT11KCgpPT57ZlA9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0xNS45NDcgMTIuNjVhNCA0IDAgMCAwLTUuOTI1LTQuMTI4In1dLFsicGF0aCIse2Q6Ik0xMyAyMkg3YTUgNSAwIDEgMSA0LjktNkgxM2EzIDMgMCAwIDEgMCA2WiJ9XV19KTt2YXIgaFAsdVFlPXUoKCk9PntoUD1bWyJwYXRoIix7ZDoibTE3IDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIwLjk5NiAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy40OTUgOGgtMS43OWE3IDcgMCAxIDAtMTIuNzA5IDUuNjA3In1dLFsicGF0aCIse2Q6Ik03IDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtNyAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUifV1dfSk7dmFyIG01LHBRZT11KCgpPT57bTU9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4In1dLFsicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Im04IDE3IDQtNCA0IDQifV1dfSk7dmFyIG1QLGZRZT11KCgpPT57bVA9W1sicGF0aCIse2Q6Ik0xNy41IDEyYTEgMSAwIDEgMSAwIDlIOS4wMDZhNyA3IDAgMSAxIDYuNzAyLTl6In1dLFsicGF0aCIse2Q6Ik0yMS44MzIgOUEzIDMgMCAwIDAgMTkgN2gtMi4yMDdhNS41IDUuNSAwIDAgMC0xMC43Mi42MSJ9XV19KTt2YXIgZ1AsaFFlPXUoKCk9PntnUD1bWyJwYXRoIix7ZDoiTTE3LjUgMTlIOWE3IDcgMCAxIDEgNi43MS05aDEuNzlhNC41IDQuNSAwIDEgMSAwIDlaIn1dXX0pO3ZhciBiUCxtUWU9dSgoKT0+e2JQPVtbInBhdGgiLHtkOiJNMTYuMTcgNy44MyAyIDIyIn1dLFsicGF0aCIse2Q6Ik00LjAyIDEyYTIuODI3IDIuODI3IDAgMSAxIDMuODEtNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiA0LjAyYTIuODI3IDIuODI3IDAgMSAxIDQuMTcgMy44MUEyLjgyNyAyLjgyNyAwIDEgMSAxOS45OCAxMmEyLjgyNyAyLjgyNyAwIDEgMS0zLjgxIDQuMTdBMi44MjcgMi44MjcgMCAxIDEgMTIgMTkuOThhMi44MjcgMi44MjcgMCAxIDEtNC4xNy0zLjgxQTEgMSAwIDEgMSA0IDEyIn1dLFsicGF0aCIse2Q6Im03LjgzIDcuODMgOC4zNCA4LjM0In1dXX0pO3ZhciB4UCxnUWU9dSgoKT0+e3hQPVtbInBhdGgiLHtkOiJNMTcuMjggOS4wNWE1LjUgNS41IDAgMSAwLTEwLjU2IDBBNS41IDUuNSAwIDEgMCAxMiAxNy42NmE1LjUgNS41IDAgMSAwIDUuMjgtOC42WiJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNjZMMTIgMjIifV1dfSk7dmFyIGc1LGJRZT11KCgpPT57ZzU9W1sicGF0aCIse2Q6Im0xOCAxNiA0LTQtNC00In1dLFsicGF0aCIse2Q6Im02IDgtNCA0IDQgNCJ9XSxbInBhdGgiLHtkOiJtMTQuNSA0LTUgMTYifV1dfSk7dmFyIHZQLHhRZT11KCgpPT57dlA9W1sicGF0aCIse2Q6Im0xNiAxOCA2LTYtNi02In1dLFsicGF0aCIse2Q6Im04IDYtNiA2IDYgNiJ9XV19KTt2YXIgeVAsdlFlPXUoKCk9Pnt5UD1bWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNiA4YTEgMSAwIDAgMSAxIDF2OGE0IDQgMCAwIDEtNCA0SDdhNCA0IDAgMCAxLTQtNFY5YTEgMSAwIDAgMSAxLTFoMTRhNCA0IDAgMSAxIDAgOGgtMSJ9XSxbInBhdGgiLHtkOiJNNiAydjIifV1dfSk7dmFyIHdQLHlRZT11KCgpPT57d1A9W1sicGF0aCIse2Q6Ik0xMy43NDQgMTcuNzM2YTYgNiAwIDEgMS03LjQ4LTcuNDgifV0sWyJwYXRoIix7ZDoiTTE1IDZoMXY0In1dLFsicGF0aCIse2Q6Im02LjEzNCAxNC43NjguODY2LS41IDIgMy40NjQifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiI4IixyOiI2In1dXX0pO3ZhciBrUCx3UWU9dSgoKT0+e2tQPVtbInBhdGgiLHtkOiJNMTEgMTAuMjcgNyAzLjM0In1dLFsicGF0aCIse2Q6Im0xMSAxMy43My00IDYuOTMifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDEyaDgifV0sWyJwYXRoIix7ZDoibTE3IDIwLjY2LTEtMS43MyJ9XSxbInBhdGgiLHtkOiJtMTcgMy4zNC0xIDEuNzMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJtMjAuNjYgMTctMS43My0xIn1dLFsicGF0aCIse2Q6Im0yMC42NiA3LTEuNzMgMSJ9XSxbInBhdGgiLHtkOiJtMy4zNCAxNyAxLjczLTEifV0sWyJwYXRoIix7ZDoibTMuMzQgNyAxLjczIDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dXX0pO3ZhciBxNCxrUWU9dSgoKT0+e3E0PVtbInBhdGgiLHtkOiJNMTAuNSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NS41In1dLFsicGF0aCIse2Q6Im0xNC4zIDE5LjYgMS0uNCJ9XSxbInBhdGgiLHtkOiJNMTUgM3Y3LjUifV0sWyJwYXRoIix7ZDoibTE1LjIgMTYuOS0uOS0uMyJ9XSxbInBhdGgiLHtkOiJtMTYuNiAyMS43LjMtLjkifV0sWyJwYXRoIix7ZDoibTE2LjggMTUuMy0uNC0xIn1dLFsicGF0aCIse2Q6Im0xOS4xIDE1LjIuMy0uOSJ9XSxbInBhdGgiLHtkOiJtMTkuNiAyMS43LS40LTEifV0sWyJwYXRoIix7ZDoibTIwLjcgMTYuOCAxLS40In1dLFsicGF0aCIse2Q6Im0yMS43IDE5LjQtLjktLjMifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBiNSxTUWU9dSgoKT0+e2I1PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dfSk7dmFyIHg1LE1RZT11KCgpPT57eDU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV1dfSk7dmFyIFNQLENRZT11KCgpPT57U1A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcuNSAzdjE4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNi41IDN2MTgifV1dfSk7dmFyIE1QLHpRZT11KCgpPT57TVA9W1sicGF0aCIse2Q6Ik0xNCAzYTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Im03IDE1IDMgMyJ9XSxbInBhdGgiLHtkOiJtNyAyMSAzLTNINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIENQLF9RZT11KCgpPT57Q1A9W1sicGF0aCIse2Q6Ik0xNSA2djEyYTMgMyAwIDEgMCAzLTNINmEzIDMgMCAxIDAgMyAzVjZhMyAzIDAgMSAwLTMgM2gxMmEzIDMgMCAxIDAtMy0zIn1dXX0pO3ZhciB6UCxUUWU9dSgoKT0+e3pQPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTYuMjQgNy43Ni0xLjgwNCA1LjQxMWEyIDIgMCAwIDEtMS4yNjUgMS4yNjVMNy43NiAxNi4yNGwxLjgwNC01LjQxMWEyIDIgMCAwIDEgMS4yNjUtMS4yNjV6In1dXX0pO3ZhciBfUCxMUWU9dSgoKT0+e19QPVtbInBhdGgiLHtkOiJNMTUuNTM2IDExLjI5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NiAyLjM3N2ExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3N2ExIDEgMCAwIDAgMC0xLjQxNGwtMi4zNzctMi4zNzdhMSAxIDAgMCAwLTEuNDE0IDB6In1dLFsicGF0aCIse2Q6Ik0yLjI5NyAxMS4yOTNhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzcgMi4zNzdhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzdhMSAxIDAgMCAwIDAtMS40MTRMNi4wODggOC45MTZhMSAxIDAgMCAwLTEuNDE0IDB6In1dLFsicGF0aCIse2Q6Ik04LjkxNiAxNy45MTJhMSAxIDAgMCAwIDAgMS40MTVsMi4zNzcgMi4zNzZhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzZhMSAxIDAgMCAwIDAtMS40MTVsLTIuMzc3LTIuMzc2YTEgMSAwIDAgMC0xLjQxNCAweiJ9XSxbInBhdGgiLHtkOiJNOC45MTYgNC42NzRhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzcgMi4zNzZhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzZhMSAxIDAgMCAwIDAtMS40MTRsLTIuMzc3LTIuMzc3YTEgMSAwIDAgMC0xLjQxNCAweiJ9XV19KTt2YXIgVFAsRFFlPXUoKCk9PntUUD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjgiLHg6IjUiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMThoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoNiJ9XV19KTt2YXIgTFAsJFFlPXUoKCk9PntMUD1bWyJwYXRoIix7ZDoiTTMgMjBhMSAxIDAgMCAxLTEtMXYtMWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxWiJ9XSxbInBhdGgiLHtkOiJNMjAgMTZhOCA4IDAgMSAwLTE2IDAifV0sWyJwYXRoIix7ZDoiTTEyIDR2NCJ9XSxbInBhdGgiLHtkOiJNMTAgNGg0In1dXX0pO3ZhciBEUCxBUWU9dSgoKT0+e0RQPVtbInBhdGgiLHtkOiJtMjAuOSAxOC41NS04LTE1Ljk4YTEgMSAwIDAgMC0xLjggMGwtOCAxNS45OCJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxOSIscng6IjkiLHJ5OiIzIn1dXX0pO3ZhciB2NSxFUWU9dSgoKT0+e3Y1PVtbInBhdGgiLHtkOiJNMTYgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNy45MTUgMjJhNiA2IDAgMCAwLTEyIDAifV0sWyJwYXRoIix7ZDoiTTggMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgJFAsSVFlPXUoKCk9PnskUD1bWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjIwIixoZWlnaHQ6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHY3In1dLFsicGF0aCIse2Q6Ik03IDE0djcifV0sWyJwYXRoIix7ZDoiTTE3IDN2MyJ9XSxbInBhdGgiLHtkOiJNNyAzdjMifV0sWyJwYXRoIix7ZDoiTTEwIDE0IDIuMyA2LjMifV0sWyJwYXRoIix7ZDoibTE0IDYgNy43IDcuNyJ9XSxbInBhdGgiLHtkOiJtOCA2IDggOCJ9XV19KTt2YXIgQVAsUFFlPXUoKCk9PntBUD1bWyJwYXRoIix7ZDoiTTIyIDcuN2MwLS42LS40LTEuMi0uOC0xLjVsLTYuMy0zLjlhMS43MiAxLjcyIDAgMCAwLTEuNyAwbC0xMC4zIDZjLS41LjItLjkuOC0uOSAxLjR2Ni42YzAgLjUuNCAxLjIuOCAxLjVsNi4zIDMuOWExLjcyIDEuNzIgMCAwIDAgMS43IDBsMTAuMy02Yy41LS4zLjktMSAuOS0xLjVaIn1dLFsicGF0aCIse2Q6Ik0xMCAyMS45VjE0TDIuMSA5LjEifV0sWyJwYXRoIix7ZDoibTEwIDE0IDExLjktNi45In1dLFsicGF0aCIse2Q6Ik0xNCAxOS44di04LjEifV0sWyJwYXRoIix7ZDoiTTE4IDE3LjVWOS40In1dXX0pO3ZhciBFUCxOUWU9dSgoKT0+e0VQPVtbInBhdGgiLHtkOiJNMTYgMnYyIn1dLFsicGF0aCIse2Q6Ik03IDIydi0yYTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTggMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjMifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgSVAsT1FlPXUoKCk9PntJUD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE4YTYgNiAwIDAgMCAwLTEydjEyeiJ9XV19KTt2YXIgUFAsUlFlPXUoKCk9PntQUD1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAxIDAgMTAgMTAgNCA0IDAgMCAxLTUtNSA0IDQgMCAwIDEtNS01In1dLFsicGF0aCIse2Q6Ik04LjUgOC41di4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTUuNXYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEydi4wMSJ9XSxbInBhdGgiLHtkOiJNMTEgMTd2LjAxIn1dLFsicGF0aCIse2Q6Ik03IDE0di4wMSJ9XV19KTt2YXIgTlAsRlFlPXUoKCk9PntOUD1bWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTIwIDEydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTgifV0sWyJwYXRoIix7ZDoibTQgOCAxNi00In1dLFsicGF0aCIse2Q6Im04Ljg2IDYuNzgtLjQ1LTEuODFhMiAyIDAgMCAxIDEuNDUtMi40M2wxLjk0LS40OGEyIDIgMCAwIDEgMi40MyAxLjQ2bC40NSAxLjgifV1dfSk7dmFyIE9QLEJRZT11KCgpPT57T1A9W1sicGF0aCIse2Q6Im0xMiAxNSAyIDIgNC00In1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIFJQLEhRZT11KCgpPT57UlA9W1sibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTUiLHkyOiIxNSJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXX0pO3ZhciBGUCxxUWU9dSgoKT0+e0ZQPVtbImxpbmUiLHt4MToiMTUiLHgyOiIxNSIseTE6IjEyIix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxNSIseTI6IjE1In1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIEJQLFZRZT11KCgpPT57QlA9W1sibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTgiLHkyOiIxMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXX0pO3ZhciBIUCxqUWU9dSgoKT0+e0hQPVtbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjEyIix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxOCIseTI6IjEyIn1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIHFQLFVRZT11KCgpPT57cVA9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dfSk7dmFyIFZQLFdRZT11KCgpPT57VlA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik05LjE3IDE0LjgzYTQgNCAwIDEgMCAwLTUuNjYifV1dfSk7dmFyIGpQLEdRZT11KCgpPT57alA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNC44MyAxNC44M2E0IDQgMCAxIDEgMC01LjY2In1dXX0pO3ZhciBVUCxZUWU9dSgoKT0+e1VQPVtbInBhdGgiLHtkOiJNMjAgNHY3YTQgNCAwIDAgMS00IDRINCJ9XSxbInBhdGgiLHtkOiJtOSAxMC01IDUgNSA1In1dXX0pO3ZhciBXUCxLUWU9dSgoKT0+e1dQPVtbInBhdGgiLHtkOiJtMTUgMTAgNSA1LTUgNSJ9XSxbInBhdGgiLHtkOiJNNCA0djdhNCA0IDAgMCAwIDQgNGgxMiJ9XV19KTt2YXIgR1AsWlFlPXUoKCk9PntHUD1bWyJwYXRoIix7ZDoibTE0IDE1LTUgNS01LTUifV0sWyJwYXRoIix7ZDoiTTIwIDRoLTdhNCA0IDAgMCAwLTQgNHYxMiJ9XV19KTt2YXIgWVAsUVFlPXUoKCk9PntZUD1bWyJwYXRoIix7ZDoiTTE0IDkgOSA0IDQgOSJ9XSxbInBhdGgiLHtkOiJNMjAgMjBoLTdhNCA0IDAgMCAxLTQtNFY0In1dXX0pO3ZhciBLUCxYUWU9dSgoKT0+e0tQPVtbInBhdGgiLHtkOiJtMTAgMTUgNSA1IDUtNSJ9XSxbInBhdGgiLHtkOiJNNCA0aDdhNCA0IDAgMCAxIDQgNHYxMiJ9XV19KTt2YXIgWlAsSlFlPXUoKCk9PntaUD1bWyJwYXRoIix7ZDoibTEwIDkgNS01IDUgNSJ9XSxbInBhdGgiLHtkOiJNNCAyMGg3YTQgNCAwIDAgMCA0LTRWNCJ9XV19KTt2YXIgUVAsZVhlPXUoKCk9PntRUD1bWyJwYXRoIix7ZDoiTTIwIDIwdi03YTQgNCAwIDAgMC00LTRINCJ9XSxbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dXX0pO3ZhciBYUCx0WGU9dSgoKT0+e1hQPVtbInBhdGgiLHtkOiJtMTUgMTQgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNNCAyMHYtN2E0IDQgMCAwIDEgNC00aDEyIn1dXX0pO3ZhciBKUCxyWGU9dSgoKT0+e0pQPVtbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xNyAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMiAxN2gyIn1dLFsicGF0aCIse2Q6Ik0yIDdoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMjAgN2gyIn1dLFsicGF0aCIse2Q6Ik03IDIwdjIifV0sWyJwYXRoIix7ZDoiTTcgMnYyIn1dLFsicmVjdCIse3g6IjQiLHk6IjQiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxNiIscng6IjIifV0sWyJyZWN0Iix7eDoiOCIseToiOCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIGVOLGFYZT11KCgpPT57ZU49W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjEwIix5MjoiMTAifV1dfSk7dmFyIHROLGlYZT11KCgpPT57dE49W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMCA5LjNhMi44IDIuOCAwIDAgMC0zLjUgMSAzLjEgMy4xIDAgMCAwIDAgMy40IDIuNyAyLjcgMCAwIDAgMy41IDEifV0sWyJwYXRoIix7ZDoiTTE3IDkuM2EyLjggMi44IDAgMCAwLTMuNSAxIDMuMSAzLjEgMCAwIDAgMCAzLjQgMi43IDIuNyAwIDAgMCAzLjUgMSJ9XV19KTt2YXIgck4sc1hlPXUoKCk9PntyTj1bWyJwYXRoIix7ZDoiTTEwLjIgMThINC43NzRhMS41IDEuNSAwIDAgMS0xLjM1Mi0uOTcgMTEgMTEgMCAwIDEgLjEzMi02LjQ4NyJ9XSxbInBhdGgiLHtkOiJNMTggMTAuMlY0Ljc3NGExLjUgMS41IDAgMCAwLS45Ny0xLjM1MiAxMSAxMSAwIDAgMC02LjQ4Ni4xMzIifV0sWyJwYXRoIix7ZDoiTTE4IDVhNCAzIDAgMCAxIDQgMyAyIDIgMCAwIDEtMiAyIDEwIDEwIDAgMCAwLTUuMTM5IDEuNDIifV0sWyJwYXRoIix7ZDoiTTUgMThhMyA0IDAgMCAwIDMgNCAyIDIgMCAwIDAgMi0yIDEwIDEwIDAgMCAxIDEuNDItNS4xNCJ9XSxbInBhdGgiLHtkOiJNOC43MDkgMi41NTRhMTAgMTAgMCAwIDAtNi4xNTUgNi4xNTUgMS41IDEuNSAwIDAgMCAuNjc2IDEuNjI2bDkuODA3IDUuNDJhMiAyIDAgMCAwIDIuNzE4LTIuNzE4bC01LjQyLTkuODA3YTEuNSAxLjUgMCAwIDAtMS42MjYtLjY3NiJ9XV19KTt2YXIgYU4sblhlPXUoKCk9PnthTj1bWyJwYXRoIix7ZDoiTTYgMnYxNGEyIDIgMCAwIDAgMiAyaDE0In1dLFsicGF0aCIse2Q6Ik0xOCAyMlY4YTIgMiAwIDAgMC0yLTJIMiJ9XV19KTt2YXIgaU4sb1hlPXUoKCk9PntpTj1bWyJwYXRoIix7ZDoiTTQgOWEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMCAwIDIgMmg0YTEgMSAwIDAgMSAxIDF2NGEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtNGExIDEgMCAwIDEgMS0xaDRhMiAyIDAgMCAwIDItMnYtMmEyIDIgMCAwIDAtMi0yaC00YTEgMSAwIDAgMS0xLTFWNGEyIDIgMCAwIDAtMi0yaC0yYTIgMiAwIDAgMC0yIDJ2NGExIDEgMCAwIDEtMSAxeiJ9XV19KTt2YXIgc04sbFhlPXUoKCk9PntzTj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTgiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiI2Iix4MjoiMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI2Iix5MjoiMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTgifV1dfSk7dmFyIG5OLGNYZT11KCgpPT57bk49W1sicGF0aCIse2Q6Ik0xMS41NjIgMy4yNjZhLjUuNSAwIDAgMSAuODc2IDBMMTUuMzkgOC44N2ExIDEgMCAwIDAgMS41MTYuMjk0TDIxLjE4MyA1LjVhLjUuNSAwIDAgMSAuNzk4LjUxOWwtMi44MzQgMTAuMjQ2YTEgMSAwIDAgMS0uOTU2LjczNEg1LjgxYTEgMSAwIDAgMS0uOTU3LS43MzRMMi4wMiA2LjAyYS41LjUgMCAwIDEgLjc5OC0uNTE5bDQuMjc2IDMuNjY0YTEgMSAwIDAgMCAxLjUxNi0uMjk0eiJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV19KTt2YXIgb04sZFhlPXUoKCk9PntvTj1bWyJwYXRoIix7ZDoiTTEwIDIydi04In1dLFsicGF0aCIse2Q6Ik0yLjMzNiA4Ljg5IDEwIDE0bDExLjcxNS03LjAyOSJ9XSxbInBhdGgiLHtkOiJNMjIgMTRhMiAyIDAgMCAxLS45NzEgMS43MTVsLTEwIDZhMiAyIDAgMCAxLTIuMTM4LS4wNWwtNi00QTIgMiAwIDAgMSAyIDE2di02YTIgMiAwIDAgMSAuOTcxLTEuNzE1bDEwLTZhMiAyIDAgMCAxIDIuMTM4LjA1bDYgNEEyIDIgMCAwIDEgMjIgOHoifV1dfSk7dmFyIGxOLHVYZT11KCgpPT57bE49W1sicGF0aCIse2Q6Im02IDggMS43NSAxMi4yOGEyIDIgMCAwIDAgMiAxLjcyaDQuNTRhMiAyIDAgMCAwIDItMS43MkwxOCA4In1dLFsicGF0aCIse2Q6Ik01IDhoMTQifV0sWyJwYXRoIix7ZDoiTTcgMTVhNi40NyA2LjQ3IDAgMCAxIDUgMCA2LjQ3IDYuNDcgMCAwIDAgNSAwIn1dLFsicGF0aCIse2Q6Im0xMiA4IDEtNmgyIn1dXX0pO3ZhciBjTixwWGU9dSgoKT0+e2NOPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dLFsibGluZSIse3gxOiIzIix4MjoiNiIseTE6IjMiLHkyOiI2In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE4Iix5MToiMyIseTI6IjYifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI2Iix5MToiMjEiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxOCIseTE6IjIxIix5MjoiMTgifV1dfSk7dmFyIGROLGZYZT11KCgpPT57ZE49W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1djE0YTkgMyAwIDAgMCAxOCAwVjUifV1dfSk7dmFyIHVOLGhYZT11KCgpPT57dU49W1sicGF0aCIse2Q6Ik0xMSAxMS4zMWMxLjE3LjU2IDEuNTQgMS42OSAzLjUgMS42OSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTExLjc1IDE4Yy4zNS41IDEuNDUgMSAyLjc1IDEgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDEwaDQifV0sWyJwYXRoIix7ZDoiTTIgMTRoNCJ9XSxbInBhdGgiLHtkOiJNMiAxOGg0In1dLFsicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNNyAzYTEgMSAwIDAgMC0xIDF2MTZhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTFMMTAgNGExIDEgMCAwIDAtMS0xeiJ9XV19KTt2YXIgcE4sbVhlPXUoKCk9PntwTj1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgMyAwIDAgMCA1IDIuNjkifV0sWyJwYXRoIix7ZDoiTTIxIDkuM1Y1In1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDYuNDcgMi44OCJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NGg0In1dLFsicGF0aCIse2Q6Ik0xMyAyMGE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNWMtMS4zMyAwLTIuNTQuNTQtMy40MSAxLjQxTDEyIDE2In1dXX0pO3ZhciBmTixnWGU9dSgoKT0+e2ZOPVtbInBhdGgiLHtkOiJNMjEgMTEuNjkzVjUifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODc1LTEuODc1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgMyAwIDAgMCA4LjY5NyAyLjk5OCJ9XSxbInBhdGgiLHtkOiJNMyA1djE0YTkgMyAwIDAgMCA5LjI4IDIuOTk5In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dXX0pO3ZhciBoTixiWGU9dSgoKT0+e2hOPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgNVYxOUE5IDMgMCAwIDAgMTUgMjEuODQifV0sWyJwYXRoIix7ZDoiTTIxIDVWOCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJMMTggMTdIMjJMMTkgMjIifV0sWyJwYXRoIix7ZDoiTTMgMTJBOSAzIDAgMCAwIDE0LjU5IDE0Ljg3In1dXX0pO3ZhciBtTix4WGU9dSgoKT0+e21OPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgNVYxOUE5IDMgMCAwIDAgMjEgMTlWNSJ9XSxbInBhdGgiLHtkOiJNMyAxMkE5IDMgMCAwIDAgMjEgMTIifV1dfSk7dmFyIGdOLHZYZT11KCgpPT57Z049W1sicGF0aCIse2Q6Im0xMyAyMS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0yMCAxOEgxMCJ9XSxbInBhdGgiLHtkOiJNMyAxMWguMDEifV0sWyJyZWN0Iix7eDoiNiIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiOCIscng6IjIuNSJ9XV19KTt2YXIgYk4seVhlPXUoKCk9PntiTj1bWyJwYXRoIix7ZDoiTTEwIDE4aDEwIn1dLFsicGF0aCIse2Q6Im0xNyAyMSAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt4OiIxNSIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiOCIscng6IjIuNSJ9XSxbInJlY3QiLHt4OiI2Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dXX0pO3ZhciB4Tix3WGU9dSgoKT0+e3hOPVtbInBhdGgiLHtkOiJNMTAgNWEyIDIgMCAwIDAtMS4zNDQuNTE5bC02LjMyOCA1Ljc0YTEgMSAwIDAgMCAwIDEuNDgxbDYuMzI4IDUuNzQxQTIgMiAwIDAgMCAxMCAxOWgxMGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMnoifV0sWyJwYXRoIix7ZDoibTEyIDkgNiA2In1dLFsicGF0aCIse2Q6Im0xOCA5LTYgNiJ9XV19KTt2YXIgdk4sa1hlPXUoKCk9Pnt2Tj1bWyJwYXRoIix7ZDoiTTEwLjE2MiAzLjE2N0ExMCAxMCAwIDAgMCAyIDEzYTIgMiAwIDAgMCA0IDB2LTFhMiAyIDAgMCAxIDQgMHY0YTIgMiAwIDAgMCA0IDB2LTRhMiAyIDAgMCAxIDQgMHYxYTIgMiAwIDAgMCA0LS4wMDYgMTAgMTAgMCAwIDAtOC4xNjEtOS44MjYifV0sWyJwYXRoIix7ZDoiTTIwLjgwNCAxNC44NjlhOSA5IDAgMCAxLTE3LjYwOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNCIscjoiMiJ9XV19KTt2YXIgeU4sU1hlPXUoKCk9Pnt5Tj1bWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiNSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNi40OCAzLjY2YTEwIDEwIDAgMCAxIDEzLjg2IDEzLjg2In1dLFsicGF0aCIse2Q6Im02LjQxIDYuNDEgMTEuMTggMTEuMTgifV0sWyJwYXRoIix7ZDoiTTMuNjYgNi40OGExMCAxMCAwIDAgMCAxMy44NiAxMy44NiJ9XV19KTt2YXIgd04sTVhlPXUoKCk9Pnt3Tj1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDB6In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dfSk7dmFyIHk1LENYZT11KCgpPT57eTU9W1sicGF0aCIse2Q6Ik0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAwWiJ9XSxbInBhdGgiLHtkOiJNOS4yIDkuMmguMDEifV0sWyJwYXRoIix7ZDoibTE0LjUgOS41LTUgNSJ9XSxbInBhdGgiLHtkOiJNMTQuNyAxNC44aC4wMSJ9XV19KTt2YXIga04selhlPXUoKCk9PntrTj1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFsLTcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAtMy40MSAwWiJ9XV19KTt2YXIgU04sX1hlPXUoKCk9PntTTj1bWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgTU4sVFhlPXUoKCk9PntNTj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV19KTt2YXIgQ04sTFhlPXUoKCk9PntDTj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDloLjAxIn1dLFsicGF0aCIse2Q6Ik05IDE1aC4wMSJ9XV19KTt2YXIgek4sRFhlPXUoKCk9Pnt6Tj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dXX0pO3ZhciBfTiwkWGU9dSgoKT0+e19OPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV19KTt2YXIgVE4sQVhlPXUoKCk9PntUTj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dXX0pO3ZhciBMTixFWGU9dSgoKT0+e0xOPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIEROLElYZT11KCgpPT57RE49W1sicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxMiIseDoiMiIseToiMTAiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTcuOTIgMTQgMy41LTMuNWEyLjI0IDIuMjQgMCAwIDAgMC0zbC01LTQuOTJhMi4yNCAyLjI0IDAgMCAwLTMgMEwxMCA2In1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOWguMDEifV1dfSk7dmFyICROLFBYZT11KCgpPT57JE49W1sicGF0aCIse2Q6Ik0xMiAzdjE0In1dLFsicGF0aCIse2Q6Ik01IDEwaDE0In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXX0pO3ZhciBBTixOWGU9dSgoKT0+e0FOPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dfSk7dmFyIEVOLE9YZT11KCgpPT57RU49W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik02IDEyYzAtMS43LjctMy4yIDEuOC00LjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTggMTJjMCAxLjctLjcgMy4yLTEuOCA0LjIifV1dfSk7dmFyIElOLFJYZT11KCgpPT57SU49W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXX0pO3ZhciBQTixGWGU9dSgoKT0+e1BOPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBOTixCWGU9dSgoKT0+e05OPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjEifV0sWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjEyIix5MjoiMTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOCIscjoiMSJ9XV19KTt2YXIgT04sSFhlPXUoKCk9PntPTj1bWyJwYXRoIix7ZDoibTEwIDE2IDEuNSAxLjUifV0sWyJwYXRoIix7ZDoibTE0IDgtMS41LTEuNSJ9XSxbInBhdGgiLHtkOiJNMTUgMmMtMS43OTggMS45OTgtMi41MTggMy45OTUtMi44MDcgNS45OTMifV0sWyJwYXRoIix7ZDoibTE2LjUgMTAuNSAxIDEifV0sWyJwYXRoIix7ZDoibTE3IDYtMi44OTEtMi44OTEifV0sWyJwYXRoIix7ZDoiTTIgMTVjNi42NjctNiAxMy4zMzMgMCAyMC02In1dLFsicGF0aCIse2Q6Im0yMCA5IC44OTEuODkxIn1dLFsicGF0aCIse2Q6Ik0zLjEwOSAxNC4xMDkgNCAxNSJ9XSxbInBhdGgiLHtkOiJtNi41IDEyLjUgMSAxIn1dLFsicGF0aCIse2Q6Im03IDE4IDIuODkxIDIuODkxIn1dLFsicGF0aCIse2Q6Ik05IDIyYzEuNzk4LTEuOTk4IDIuNTE4LTMuOTk1IDIuODA3LTUuOTkzIn1dXX0pO3ZhciBSTixxWGU9dSgoKT0+e1JOPVtbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMTZoMTIifV1dfSk7dmFyIEZOLFZYZT11KCgpPT57Rk49W1sicGF0aCIse2Q6Ik0xNSAyYy0xLjM1IDEuNS0yLjA5MiAzLTIuNSA0LjVMMTQgOCJ9XSxbInBhdGgiLHtkOiJtMTcgNi0yLjg5MS0yLjg5MSJ9XSxbInBhdGgiLHtkOiJNMiAxNWMzLjMzMy0zIDYuNjY3LTMgMTAtMyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Im0yMCA5IC44OTEuODkxIn1dLFsicGF0aCIse2Q6Ik0yMiA5Yy0xLjUgMS4zNS0zIDIuMDkyLTQuNSAyLjVsLTEtMSJ9XSxbInBhdGgiLHtkOiJNMy4xMDkgMTQuMTA5IDQgMTUifV0sWyJwYXRoIix7ZDoibTYuNSAxMi41IDEgMSJ9XSxbInBhdGgiLHtkOiJtNyAxOCAyLjg5MSAyLjg5MSJ9XSxbInBhdGgiLHtkOiJNOSAyMmMxLjM1LTEuNSAyLjA5Mi0zIDIuNS00LjVMMTAgMTYifV1dfSk7dmFyIEJOLGpYZT11KCgpPT57Qk49W1sicGF0aCIse2Q6Ik0xMS4yNSAxNi4yNWgxLjVMMTIgMTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxNHYuNSJ9XSxbInBhdGgiLHtkOiJNNC40MiAxMS4yNDdBMTMuMTUyIDEzLjE1MiAwIDAgMCA0IDE0LjU1NkM0IDE4LjcyOCA3LjU4MiAyMSAxMiAyMXM4LTIuMjcyIDgtNi40NDRhMTEuNzAyIDExLjcwMiAwIDAgMC0uNDkzLTMuMzA5In1dLFsicGF0aCIse2Q6Ik04IDE0di41In1dLFsicGF0aCIse2Q6Ik04LjUgOC41Yy0uMzg0IDEuMDUtMS4wODMgMi4wMjgtMi4zNDQgMi41LTEuOTMxLjcyMi0zLjU3Ni0uMjk3LTMuNjU2LTEtLjExMy0uOTk0IDEuMTc3LTYuNTMgNC03IDEuOTIzLS4zMjEgMy42NTEuODQ1IDMuNjUxIDIuMjM1QTcuNDk3IDcuNDk3IDAgMCAxIDE0IDUuMjc3YzAtMS4zOSAxLjg0NC0yLjU5OCAzLjc2Ny0yLjI3NyAyLjgyMy40NyA0LjExMyA2LjAwNiA0IDctLjA4LjcwMy0xLjcyNSAxLjcyMi0zLjY1NiAxLTEuMjYxLS40NzItMS44NTUtMS40NS0yLjIzOS0yLjUifV1dfSk7dmFyIEhOLFVYZT11KCgpPT57SE49W1sibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMiIseTI6IjIyIn1dLFsicGF0aCIse2Q6Ik0xNyA1SDkuNWEzLjUgMy41IDAgMCAwIDAgN2g1YTMuNSAzLjUgMCAwIDEgMCA3SDYifV1dfSk7dmFyIHFOLFdYZT11KCgpPT57cU49W1sicGF0aCIse2Q6Ik0yMC41IDEwYTIuNSAyLjUgMCAwIDEtMi40LTNIMThhMi45NSAyLjk1IDAgMCAxLTIuNi00LjQgMTAgMTAgMCAxIDAgNi4zIDcuMWMtLjMuMi0uOC4zLTEuMi4zIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dfSk7dmFyIFZOLEdYZT11KCgpPT57Vk49W1sicGF0aCIse2Q6Ik0xMSAyMEgyIn1dLFsicGF0aCIse2Q6Ik0xMSA0LjU2MnYxNi4xNTdhMSAxIDAgMCAwIDEuMjQyLjk3TDE5IDIwVjUuNTYyYTIgMiAwIDAgMC0xLjUxNS0xLjk0bC00LTFBMiAyIDAgMCAwIDExIDQuNTYxeiJ9XSxbInBhdGgiLHtkOiJNMTEgNEg4YTIgMiAwIDAgMC0yIDJ2MTQifV0sWyJwYXRoIix7ZDoiTTE0IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBoLTMifV1dfSk7dmFyIGpOLFlYZT11KCgpPT57ak49W1sicGF0aCIse2Q6Ik0xMCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDlWNmEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMiAyMGg4In1dLFsicGF0aCIse2Q6Ik0yMCAxN3YtMmEyIDIgMCAxIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE3Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgVU4sS1hlPXUoKCk9PntVTj1bWyJwYXRoIix7ZDoiTTEwIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggMjBWNmEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMiAyMGgyMCJ9XV19KTt2YXIgV04sWlhlPXUoKCk9PntXTj1bWyJjaXJjbGUiLHtjeDoiMTIuMSIsY3k6IjEyLjEiLHI6IjEifV1dfSk7dmFyIEdOLFFYZT11KCgpPT57R049W1sicGF0aCIse2Q6Ik0xMiAxNVYzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00In1dLFsicGF0aCIse2Q6Im03IDEwIDUgNSA1LTUifV1dfSk7dmFyIFlOLFhYZT11KCgpPT57WU49W1sicGF0aCIse2Q6Im0xMi45OSA2Ljc0IDEuOTMgMy40NCJ9XSxbInBhdGgiLHtkOiJNMTkuMTM2IDEyYTEwIDEwIDAgMCAxLTE0LjI3MSAwIn1dLFsicGF0aCIse2Q6Im0yMSAyMS0yLjE2LTMuODQifV0sWyJwYXRoIix7ZDoibTMgMjEgOC4wMi0xNC4yNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjIifV1dfSk7dmFyIEtOLEpYZT11KCgpPT57S049W1sicGF0aCIse2Q6Ik0xMCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNNi41IDEzLjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMiA1YzAgOS00IDEyLTYgMTJzLTYtMy02LTEyYzAtMiAyLTMgNi0zczYgMSA2IDMifV0sWyJwYXRoIix7ZDoiTTE3LjQgOS45Yy0uOC44LTIgLjgtMi44IDAifV0sWyJwYXRoIix7ZDoiTTEwLjEgNy4xQzkgNy4yIDcuNyA3LjcgNiA4LjZjLTMuNSAyLTQuNyAzLjktMy43IDUuNiA0LjUgNy44IDkuNSA4LjQgMTEuMiA3LjQuOS0uNSAxLjktMi4xIDEuOS00LjcifV0sWyJwYXRoIix7ZDoiTTkuMSAxNi41Yy4zLTEuMSAxLjQtMS43IDIuNC0xLjQifV1dfSk7dmFyIFpOLGVKZT11KCgpPT57Wk49W1sicGF0aCIse2Q6Ik0xMCAxOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg1YTMgMyAwIDAgMS0zLTMgMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTEzIDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOWExIDEgMCAwIDEgMSAxdjZhMSAxIDAgMCAxLTEgMWwtLjgxIDMuMjQyYTEgMSAwIDAgMS0uOTcuNzU4SDgifV0sWyJwYXRoIix7ZDoiTTE0IDRoM2ExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNMTggNmg0In1dLFsicGF0aCIse2Q6Im01IDEwLTIgOCJ9XSxbInBhdGgiLHtkOiJtNyAxOCAyLTgifV1dfSk7dmFyIFFOLHRKZT11KCgpPT57UU49W1sicGF0aCIse2Q6Ik0xMCAxMCA3IDcifV0sWyJwYXRoIix7ZDoibTEwIDE0LTMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTAgMy0zIn1dLFsicGF0aCIse2Q6Im0xNCAxNCAzIDMifV0sWyJwYXRoIix7ZDoiTTE0LjIwNSA0LjEzOWE0IDQgMCAxIDEgNS40MzkgNS44NjMifV0sWyJwYXRoIix7ZDoiTTE5LjYzNyAxNGE0IDQgMCAxIDEtNS40MzIgNS44NjgifV0sWyJwYXRoIix7ZDoiTTQuMzY3IDEwYTQgNCAwIDEgMSA1LjQzOC01Ljg2MiJ9XSxbInBhdGgiLHtkOiJNOS43OTUgMTkuODYyYTQgNCAwIDEgMS01LjQyOS01Ljg3MyJ9XSxbInJlY3QiLHt4OiIxMCIseToiOCIsd2lkdGg6IjQiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIFhOLHJKZT11KCgpPT57WE49W1sicGF0aCIse2Q6Ik0xOC43MTUgMTMuMTg2QzE4LjI5IDExLjg1OCAxNy4zODQgMTAuNjA3IDE2IDkuNWMtMi0xLjYtMy41LTQtNC02LjVhMTAuNyAxMC43IDAgMCAxLS44ODQgMi41ODYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC43OTUgOC43OTdBMTEgMTEgMCAwIDEgOCA5LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgMTMuMjIyIDMuMjA4In1dXX0pO3ZhciBKTixhSmU9dSgoKT0+e0pOPVtbInBhdGgiLHtkOiJNMTIgMjJhNyA3IDAgMCAwIDctN2MwLTItMS0zLjktMy01LjVzLTMuNS00LTQtNi41Yy0uNSAyLjUtMiA0LjktNCA2LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgNyA3eiJ9XV19KTt2YXIgZU8saUplPXUoKCk9PntlTz1bWyJwYXRoIix7ZDoiTTcgMTYuM2MyLjIgMCA0LTEuODMgNC00LjA1IDAtMS4xNi0uNTctMi4yNi0xLjcxLTMuMTlTNy4yOSA2Ljc1IDcgNS4zYy0uMjkgMS40NS0xLjE0IDIuODQtMi4yOSAzLjc2UzMgMTEuMSAzIDEyLjI1YzAgMi4yMiAxLjggNC4wNSA0IDQuMDV6In1dLFsicGF0aCIse2Q6Ik0xMi41NiA2LjZBMTAuOTcgMTAuOTcgMCAwIDAgMTQgMy4wMmMuNSAyLjUgMiA0LjkgNCA2LjVzMyAzLjUgMyA1LjVhNi45OCA2Ljk4IDAgMCAxLTExLjkxIDQuOTcifV1dfSk7dmFyIHRPLHNKZT11KCgpPT57dE89W1sicGF0aCIse2Q6Ik0xNS40IDE1LjYzYTcuODc1IDYgMTM1IDEgMSA2LjIzLTYuMjMgNC41IDMuNDMgMTM1IDAgMC02LjIzIDYuMjMifV0sWyJwYXRoIix7ZDoibTguMjkgMTIuNzEtMi42IDIuNmEyLjUgMi41IDAgMSAwLTEuNjUgNC42NUEyLjUgMi41IDAgMSAwIDguNyAxOC4zbDIuNTktMi41OSJ9XV19KTt2YXIgck8sbkplPXUoKCk9PntyTz1bWyJwYXRoIix7ZDoibTIgMiA4IDgifV0sWyJwYXRoIix7ZDoibTIyIDItOCA4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjkiLHJ4OiIxMCIscnk6IjUifV0sWyJwYXRoIix7ZDoiTTcgMTMuNHY3LjkifV0sWyJwYXRoIix7ZDoiTTEyIDE0djgifV0sWyJwYXRoIix7ZDoiTTE3IDEzLjR2Ny45In1dLFsicGF0aCIse2Q6Ik0yIDl2OGExMCA1IDAgMCAwIDIwIDBWOSJ9XV19KTt2YXIgYU8sb0plPXUoKCk9PnthTz1bWyJwYXRoIix7ZDoiTTE3LjU5NiAxMi43NjhhMiAyIDAgMSAwIDIuODI5LTIuODI5bC0xLjc2OC0xLjc2N2EyIDIgMCAwIDAgMi44MjgtMi44MjlsLTIuODI4LTIuODI4YTIgMiAwIDAgMC0yLjgyOSAyLjgyOGwtMS43NjctMS43NjhhMiAyIDAgMSAwLTIuODI5IDIuODI5eiJ9XSxbInBhdGgiLHtkOiJtMi41IDIxLjUgMS40LTEuNCJ9XSxbInBhdGgiLHtkOiJtMjAuMSAzLjkgMS40LTEuNCJ9XSxbInBhdGgiLHtkOiJNNS4zNDMgMjEuNDg1YTIgMiAwIDEgMCAyLjgyOS0yLjgyOGwxLjc2NyAxLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTYuMzY0LTYuMzY0YTIgMiAwIDEgMC0yLjgyOSAyLjgyOWwxLjc2OCAxLjc2N2EyIDIgMCAwIDAtMi44MjggMi44Mjl6In1dLFsicGF0aCIse2Q6Im05LjYgMTQuNCA0LjgtNC44In1dXX0pO3ZhciBpTyxsSmU9dSgoKT0+e2lPPVtbInBhdGgiLHtkOiJNNiAxOC41YTMuNSAzLjUgMCAxIDAgNyAwYzAtMS41Ny45Mi0yLjUyIDIuMDQtMy40NiJ9XSxbInBhdGgiLHtkOiJNNiA4LjVjMC0uNzUuMTMtMS40Ny4zNi0yLjE0In1dLFsicGF0aCIse2Q6Ik04LjggMy4xNUE2LjUgNi41IDAgMCAxIDE5IDguNWMwIDEuNjMtLjQ0IDIuODEtMS4wOSAzLjc2In1dLFsicGF0aCIse2Q6Ik0xMi41IDZBMi41IDIuNSAwIDAgMSAxNSA4LjVNMTAgMTNhMiAyIDAgMCAwIDEuODItMS4xOCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBzTyxjSmU9dSgoKT0+e3NPPVtbInBhdGgiLHtkOiJNNiA4LjVhNi41IDYuNSAwIDEgMSAxMyAwYzAgNi02IDYtNiAxMGEzLjUgMy41IDAgMSAxLTcgMCJ9XSxbInBhdGgiLHtkOiJNMTUgOC41YTIuNSAyLjUgMCAwIDAtNSAwdjFhMiAyIDAgMSAxIDAgNCJ9XV19KTt2YXIgbk8sZEplPXUoKCk9PntuTz1bWyJwYXRoIix7ZDoiTTcgMy4zNFY1YTMgMyAwIDAgMCAzIDMifV0sWyJwYXRoIix7ZDoiTTExIDIxLjk1VjE4YTIgMiAwIDAgMC0yLTIgMiAyIDAgMCAxLTItMnYtMWEyIDIgMCAwIDAtMi0ySDIuMDUifV0sWyJwYXRoIix7ZDoiTTIxLjU0IDE1SDE3YTIgMiAwIDAgMC0yIDJ2NC41NCJ9XSxbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDEgMCA5LjU0IDEzIn1dLFsicGF0aCIse2Q6Ik0yMCA2VjRhMiAyIDAgMSAwLTQgMHYyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiI2IixyeDoiMSJ9XV19KTt2YXIgdzUsdUplPXUoKCk9Pnt3NT1bWyJwYXRoIix7ZDoiTTIxLjU0IDE1SDE3YTIgMiAwIDAgMC0yIDJ2NC41NCJ9XSxbInBhdGgiLHtkOiJNNyAzLjM0VjVhMyAzIDAgMCAwIDMgM2EyIDIgMCAwIDEgMiAyYzAgMS4xLjkgMiAyIDJhMiAyIDAgMCAwIDItMmMwLTEuMS45LTIgMi0yaDMuMTcifV0sWyJwYXRoIix7ZDoiTTExIDIxLjk1VjE4YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAxLTItMnYtMWEyIDIgMCAwIDAtMi0ySDIuMDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIG9PLHBKZT11KCgpPT57b089W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyYTcgNyAwIDEgMCAxMCAxMCJ9XV19KTt2YXIgbE8sZkplPXUoKCk9PntsTz1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMTQuMzQ3VjE0YzAtNi00LTEyLTgtMTItMS4wNzggMC0yLjE1Ny40MzYtMy4xNTcgMS4xOSJ9XSxbInBhdGgiLHtkOiJNNi4yMDYgNi4yMUM0Ljg3MSA4LjQgNCAxMS4yIDQgMTRhOCA4IDAgMCAwIDE0LjU2OCA0LjU2OCJ9XV19KTt2YXIgY08saEplPXUoKCk9PntjTz1bWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XSxbInBhdGgiLHtkOiJNMyA4YzAtMy41IDIuNS02IDYuNS02IDUgMCA0LjgzIDMgNy41IDVzNSAyIDUgNmMwIDQuNS0yLjUgNi41LTcgNi41LTIuNSAwLTIuNSAyLjUtNiAyLjVzLTctMi03LTUuNWMwLTMgMS41LTMgMS41LTVDMy41IDEwIDMgOSAzIDhaIn1dXX0pO3ZhciBkTyxtSmU9dSgoKT0+e2RPPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMiIscng6IjEwIixyeToiNiJ9XV19KTt2YXIgdU8sZ0plPXUoKCk9Pnt1Tz1bWyJwYXRoIix7ZDoiTTEyIDJDOCAyIDQgOCA0IDE0YTggOCAwIDAgMCAxNiAwYzAtNi00LTEyLTgtMTIifV1dfSk7dmFyIGs1LGJKZT11KCgpPT57azU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTkiLHI6IjEifV1dfSk7dmFyIFM1LHhKZT11KCgpPT57UzU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTIiLHI6IjEifV1dfSk7dmFyIHBPLHZKZT11KCgpPT57cE89W1sicGF0aCIse2Q6Ik01IDE1YTYuNSA2LjUgMCAwIDEgNyAwIDYuNSA2LjUgMCAwIDAgNyAwIn1dLFsicGF0aCIse2Q6Ik01IDlhNi41IDYuNSAwIDAgMSA3IDAgNi41IDYuNSAwIDAgMCA3IDAifV1dfSk7dmFyIGZPLHlKZT11KCgpPT57Zk89W1sibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTUiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiI1Iix5MToiNSIseTI6IjE5In1dXX0pO3ZhciBoTyx3SmU9dSgoKT0+e2hPPVtbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjE1Iix5MjoiMTUifV1dfSk7dmFyIG1PLGtKZT11KCgpPT57bU89W1sicGF0aCIse2Q6Ik0yMSAyMUg4YTIgMiAwIDAgMS0xLjQyLS41ODdsLTMuOTk0LTMuOTk5YTIgMiAwIDAgMSAwLTIuODI4bDEwLTEwYTIgMiAwIDAgMSAyLjgyOSAwbDUuOTk5IDZhMiAyIDAgMCAxIDAgMi44MjhMMTIuODM0IDIxIn1dLFsicGF0aCIse2Q6Im01LjA4MiAxMS4wOSA4LjgyOCA4LjgyOCJ9XV19KTt2YXIgZ08sU0plPXUoKCk9PntnTz1bWyJwYXRoIix7ZDoibTE1IDIwIDMtM2gyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY5YTIgMiAwIDAgMCAyIDJoMmwzIDN6In1dLFsicGF0aCIse2Q6Ik02IDh2MSJ9XSxbInBhdGgiLHtkOiJNMTAgOHYxIn1dLFsicGF0aCIse2Q6Ik0xNCA4djEifV0sWyJwYXRoIix7ZDoiTTE4IDh2MSJ9XV19KTt2YXIgYk8sTUplPXUoKCk9PntiTz1bWyJwYXRoIix7ZDoiTTQgMTBoMTIifV0sWyJwYXRoIix7ZDoiTTQgMTRoOSJ9XSxbInBhdGgiLHtkOiJNMTkgNmE3LjcgNy43IDAgMCAwLTUuMi0yQTcuOSA3LjkgMCAwIDAgNiAxMmMwIDQuNCAzLjUgOCA3LjggOCAyIDAgMy44LS44IDUuMi0yIn1dXX0pO3ZhciB4TyxDSmU9dSgoKT0+e3hPPVtbInBhdGgiLHtkOiJNMTQgMTNoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAwIDQgMHYtNi45OThhMiAyIDAgMCAwLS41OS0xLjQyTDE4IDUifV0sWyJwYXRoIix7ZDoiTTE0IDIxVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTYifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTMifV0sWyJwYXRoIix7ZDoiTTMgN2gxMSJ9XSxbInBhdGgiLHtkOiJtOSAxMS0yIDNoM2wtMiAzIn1dXX0pO3ZhciB2Tyx6SmU9dSgoKT0+e3ZPPVtbInBhdGgiLHtkOiJtMTUgMTUgNiA2In1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dLFsicGF0aCIse2Q6Ik0zIDE2djVoNSJ9XSxbInBhdGgiLHtkOiJtMyAyMSA2LTYifV0sWyJwYXRoIix7ZDoiTTMgOFYzaDUifV0sWyJwYXRoIix7ZDoiTTkgOSAzIDMifV1dfSk7dmFyIHlPLF9KZT11KCgpPT57eU89W1sicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJNMTAgMTQgMjEgMyJ9XSxbInBhdGgiLHtkOiJNMTggMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoNiJ9XV19KTt2YXIgd08sVEplPXUoKCk9Pnt3Tz1bWyJwYXRoIix7ZDoiTTEwLjczMyA1LjA3NmExMC43NDQgMTAuNzQ0IDAgMCAxIDExLjIwNSA2LjU3NSAxIDEgMCAwIDEgMCAuNjk2IDEwLjc0NyAxMC43NDcgMCAwIDEtMS40NDQgMi40OSJ9XSxbInBhdGgiLHtkOiJNMTQuMDg0IDE0LjE1OGEzIDMgMCAwIDEtNC4yNDItNC4yNDIifV0sWyJwYXRoIix7ZDoiTTE3LjQ3OSAxNy40OTlhMTAuNzUgMTAuNzUgMCAwIDEtMTUuNDE3LTUuMTUxIDEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgNC40NDYtNS4xNDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIga08sTEplPXUoKCk9PntrTz1bWyJwYXRoIix7ZDoibTE1IDE4LS43MjItMy4yNSJ9XSxbInBhdGgiLHtkOiJNMiA4YTEwLjY0NSAxMC42NDUgMCAwIDAgMjAgMCJ9XSxbInBhdGgiLHtkOiJtMjAgMTUtMS43MjYtMi4wNSJ9XSxbInBhdGgiLHtkOiJtNCAxNSAxLjcyNi0yLjA1In1dLFsicGF0aCIse2Q6Im05IDE4IC43MjItMy4yNSJ9XV19KTt2YXIgU08sREplPXUoKCk9PntTTz1bWyJwYXRoIix7ZDoiTTIuMDYyIDEyLjM0OGExIDEgMCAwIDEgMC0uNjk2IDEwLjc1IDEwLjc1IDAgMCAxIDE5Ljg3NiAwIDEgMSAwIDAgMSAwIC42OTYgMTAuNzUgMTAuNzUgMCAwIDEtMTkuODc2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV19KTt2YXIgTU8sJEplPXUoKCk9PntNTz1bWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDE5YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY4LjVhLjUuNSAwIDAgMC0uNzY5LS40MjJsLTQuNDYyIDIuODQ0QS41LjUgMCAwIDEgMTUgMTAuNXYtMmEuNS41IDAgMCAwLS43NjktLjQyMkw5Ljc3IDEwLjkyMkEuNS41IDAgMCAxIDkgMTAuNVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIENPLEFKZT11KCgpPT57Q089W1sicGF0aCIse2Q6Ik0xMC44MjcgMTYuMzc5YTYuMDgyIDYuMDgyIDAgMCAxLTguNjE4LTcuMDAybDUuNDEyIDEuNDVhNi4wODIgNi4wODIgMCAwIDEgNy4wMDItOC42MThsLTEuNDUgNS40MTJhNi4wODIgNi4wODIgMCAwIDEgOC42MTggNy4wMDJsLTUuNDEyLTEuNDVhNi4wODIgNi4wODIgMCAwIDEtNy4wMDIgOC42MThsMS40NS01LjQxMloifV0sWyJwYXRoIix7ZDoiTTEyIDEydi4wMSJ9XV19KTt2YXIgek8sRUplPXUoKCk9Pnt6Tz1bWyJwYXRoIix7ZDoiTTEyIDZhMiAyIDAgMCAxIDMuNDE0LTEuNDE0bDYgNmEyIDIgMCAwIDEgMCAyLjgyOGwtNiA2QTIgMiAwIDAgMSAxMiAxOHoifV0sWyJwYXRoIix7ZDoiTTIgNmEyIDIgMCAwIDEgMy40MTQtMS40MTRsNiA2YTIgMiAwIDAgMSAwIDIuODI4bC02IDZBMiAyIDAgMCAxIDIgMTh6In1dXX0pO3ZhciBfTyxJSmU9dSgoKT0+e19PPVtbInBhdGgiLHtkOiJNMTIuNjcgMTlhMiAyIDAgMCAwIDEuNDE2LS41ODhsNi4xNTQtNi4xNzJhNiA2IDAgMCAwLTguNDktOC40OUw1LjU4NiA5LjkxNEEyIDIgMCAwIDAgNSAxMS4zMjhWMThhMSAxIDAgMCAwIDEgMXoifV0sWyJwYXRoIix7ZDoiTTE2IDggMiAyMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxNUg5In1dXX0pO3ZhciBUTyxQSmU9dSgoKT0+e1RPPVtbInBhdGgiLHtkOiJNNCAzIDIgNXYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIn1dLFsicGF0aCIse2Q6Ik02IDhoNCJ9XSxbInBhdGgiLHtkOiJNNiAxOGg0In1dLFsicGF0aCIse2Q6Im0xMiAzLTIgMnYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIn1dLFsicGF0aCIse2Q6Ik0xNCA4aDQifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDQifV0sWyJwYXRoIix7ZDoibTIwIDMtMiAydjE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoifV1dfSk7dmFyIExPLE5KZT11KCgpPT57TE89W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtNi44IDE1LTMuNSAyIn1dLFsicGF0aCIse2Q6Im0yMC43IDctMy41IDIifV0sWyJwYXRoIix7ZDoiTTYuOCA5IDMuMyA3In1dLFsicGF0aCIse2Q6Im0yMC43IDE3LTMuNS0yIn1dLFsicGF0aCIse2Q6Im05IDIyIDMtOCAzIDgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTggMTguN2E5IDkgMCAxIDAtMTIgMCJ9XV19KTt2YXIgRE8sT0plPXUoKCk9PntETz1bWyJwYXRoIix7ZDoiTTEzLjY1OSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjExLjUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTJ2LTEifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJwYXRoIix7ZDoiTTggN1Y2In1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIyMCIscjoiMiJ9XV19KTt2YXIgTTUsUkplPXUoKCk9PntNNT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTggMTggNC00In1dLFsicGF0aCIse2Q6Ik04IDEwdjhoOCJ9XV19KTt2YXIgQzUsRkplPXUoKCk9PntDNT1bWyJwYXRoIix7ZDoiTTEzIDIyaDVhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTcuNjkgMTYuNDc5IDEuMjkgNC44OGEuNS41IDAgMCAxLS42OTguNTkxbC0xLjg0My0uODQ5YTEgMSAwIDAgMC0uODc5LjAwMWwtMS44NDYuODVhLjUuNSAwIDAgMS0uNjkyLS41OTNsMS4yOS00Ljg4In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxNCIscjoiMyJ9XV19KTt2YXIgJE8sQkplPXUoKCk9PnskTz1bWyJwYXRoIix7ZDoiTTE0LjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjgifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTExLjcgMTQuMiA3IDE3bC00LjctMi44In1dLFsicGF0aCIse2Q6Ik0zIDEzLjFhMiAyIDAgMCAwLS45OTkgMS43NnYzLjI0YTIgMiAwIDAgMCAuOTY5IDEuNzhMNiAyMS43YTIgMiAwIDAgMCAyLjAzLjAxTDExIDE5LjlhMiAyIDAgMCAwIDEtMS43NlYxNC45YTIgMiAwIDAgMC0uOTctMS43OEw4IDExLjNhMiAyIDAgMCAwLTIuMDMtLjAxeiJ9XSxbInBhdGgiLHtkOiJNNyAxN3Y1In1dXX0pO3ZhciB6NSxISmU9dSgoKT0+e3o1PVtbInBhdGgiLHtkOiJNMTQgMjJoNGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTUgMTRhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMCAxIDEifV0sWyJwYXRoIix7ZDoiTTkgMjJhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDEgMS0xIDEgMSAwIDAgMS0xLTF2LTJhMSAxIDAgMCAwLTEtMSJ9XV19KTt2YXIgXzUscUplPXUoKCk9PntfNT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDEyYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxOGExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTEgMSAxIDAgMCAxLTEtMXYtMWExIDEgMCAwIDAtMS0xIn1dXX0pO3ZhciBUNSxWSmU9dSgoKT0+e1Q1PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTYifV0sWyJwYXRoIix7ZDoiTTE2IDE4di0zIn1dXX0pO3ZhciBMNSxqSmU9dSgoKT0+e0w1PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTQifV0sWyJwYXRoIix7ZDoiTTE2IDE4di02In1dXX0pO3ZhciBENSxVSmU9dSgoKT0+e0Q1PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTYgMTMtMy41IDMuNS0yLTJMOCAxNyJ9XV19KTt2YXIgJDUsV0plPXUoKCk9PnskNT1bWyJwYXRoIix7ZDoiTTE1Ljk0MSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA0bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuNTEyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik00LjAxNyAxMS41MTJhNiA2IDAgMSAwIDguNDY2IDguNDc1In1dLFsicGF0aCIse2Q6Ik05IDE2YTEgMSAwIDAgMS0xLTF2LTRjMC0uNTUyLjQ1LTEuMDA4Ljk5NS0uOTE3YTYgNiAwIDAgMSA0LjkyMiA0LjkyMmMuMDkxLjU0NC0uMzY1Ljk5NS0uOTE3Ljk5NXoifV1dfSk7dmFyIEE1LEdKZT11KCgpPT57QTU9W1sicGF0aCIse2Q6Ik0xMC41IDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTQgMjAgMiAyIDQtNCJ9XV19KTt2YXIgQU8sWUplPXUoKCk9PntBTz1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTkgMTUgMiAyIDQtNCJ9XV19KTt2YXIgRU8sS0plPXUoKCk9PntFTz1bWyJwYXRoIix7ZDoiTTE2IDIyaDJhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYyLjg1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE0djIuMmwxLjYgMSJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTYiLHI6IjYifV1dfSk7dmFyIEU1LFpKZT11KCgpPT57RTU9W1sicGF0aCIse2Q6Ik00IDEyLjE1VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0zLjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im01IDE2LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgMjIgMy0zLTMtMyJ9XV19KTt2YXIgSU8sUUplPXUoKCk9PntJTz1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDEyLjUgOCAxNWwyIDIuNSJ9XSxbInBhdGgiLHtkOiJtMTQgMTIuNSAyIDIuNS0yIDIuNSJ9XV19KTt2YXIgUE8sWEplPXUoKCk9PntQTz1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dXX0pO3ZhciBJNSxKSmU9dSgoKT0+e0k1PVtbInBhdGgiLHtkOiJNMTUgOGExIDEgMCAwIDEtMS0xVjJhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4eiJ9XSxbInBhdGgiLHtkOiJNMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC00LjE4MiJ9XSxbInBhdGgiLHtkOiJtMy4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoiTTQgMTAuNTkyVjRhMiAyIDAgMCAxIDItMmg4In1dLFsicGF0aCIse2Q6Im00LjIyOCAxNi44NTItLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im01Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im01Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTguMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtOC41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im05Ljc3MyAxNi44NTIuOTIyLS4zODMifV0sWyJwYXRoIix7ZDoibTkuNzczIDE5LjE0OC45MjIuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgTk8sZWV0PXUoKCk9PntOTz1bWyJwYXRoIix7ZDoiTTQgMTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDE2aDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTAgMjJoNCJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNiIsd2lkdGg6IjQiLGhlaWdodDoiNiIscng6IjIifV1dfSk7dmFyIE9PLHRldD11KCgpPT57T089W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzIDMgMy0zIn1dXX0pO3ZhciBQNSxyZXQ9dSgoKT0+e1A1PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgOXY0In1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dfSk7dmFyIFJPLGFldD11KCgpPT57Uk89W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoibTIwIDE3LTEuMjk2LTEuMjk2YTIuNDEgMi40MSAwIDAgMC0zLjQwOCAwTDkgMjIifV1dfSk7dmFyIEZPLGlldD11KCgpPT57Rk89W1sicGF0aCIse2Q6Ik0xMyAyMmg1YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMy42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSA3IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhMSAxIDAgMCAxLTEuNTA3IDB6In1dXX0pO3ZhciBWNCxzZXQ9dSgoKT0+e1Y0PVtbInBhdGgiLHtkOiJNNCA2LjgzNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtLjM0MyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMiAxOWEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAxLTQgMHYtNGE2IDYgMCAwIDEgMTIgMHY0YTIgMiAwIDAgMS00IDB2LTFhMiAyIDAgMCAxIDQgMCJ9XV19KTt2YXIgQk8sbmV0PXUoKCk9PntCTz1bWyJwYXRoIix7ZDoiTTQgMTFWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0xIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0yIDE1aDEwIn1dLFsicGF0aCIse2Q6Im05IDE4IDMtMy0zLTMifV1dfSk7dmFyIE41LG9ldD11KCgpPT57TjU9W1sicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik00IDEydjYifV0sWyJwYXRoIix7ZDoiTTQgMTRoMiJ9XSxbInBhdGgiLHtkOiJNOS42NSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjQifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBPNSxjZXQ9dSgoKT0+e081PVtbInBhdGgiLHtkOiJNNCA5LjhWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTkgMTd2LTJhMiAyIDAgMCAwLTQgMHYyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjE3IixyeDoiMSJ9XV19KTt2YXIgUjUsZGV0PXUoKCk9PntSNT1bWyJwYXRoIix7ZDoiTTIwIDE0VjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDYifV1dfSk7dmFyIEhPLHVldD11KCgpPT57SE89W1sicGF0aCIse2Q6Ik0xMS42NSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjEwLjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDIwdi03bDMgMS40NzQifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBxTyxwZXQ9dSgoKT0+e3FPPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dXX0pO3ZhciBWTyxmZXQ9dSgoKT0+e1ZPPVtbInBhdGgiLHtkOiJNNC4yMjYgMjAuOTI1QTIgMiAwIDAgMCA2IDIyaDEyYTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My4xMjcifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTUgMTEtMyAzIn1dLFsicGF0aCIse2Q6Im01IDE3LTMtM2gxMCJ9XV19KTt2YXIgRjUsaGV0PXUoKCk9PntGNT1bWyJwYXRoIix7ZDoiTTE0LjM2NCAxMy42MzRhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZsNC4wMTMtNC4wMDlhMSAxIDAgMCAwLTMuMDA0LTMuMDA0eiJ9XSxbInBhdGgiLHtkOiJNMTQuNDg3IDcuODU4QTEgMSAwIDAgMSAxNCA3VjIifV0sWyJwYXRoIix7ZDoiTTIwIDE5LjY0NVYyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwyLjUxNiAyLjUxNiJ9XSxbInBhdGgiLHtkOiJNOCAxOGgxIn1dXX0pO3ZhciBCNSxtZXQ9dSgoKT0+e0I1PVtbInBhdGgiLHtkOiJNMTIuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2OS4zNCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAuMzc4IDEyLjYyMmExIDEgMCAwIDEgMyAzLjAwM0w4LjM2IDIwLjYzN2EyIDIgMCAwIDEtLjg1NC41MDZsLTIuODY3LjgzN2EuNS41IDAgMCAxLS42Mi0uNjJsLjgzNi0yLjg2OWEyIDIgMCAwIDEgLjUwNi0uODUzeiJ9XV19KTt2YXIgSDUsZ2V0PXUoKCk9PntINT1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE1LjAzMyAxMy40NGEuNjQ3LjY0NyAwIDAgMSAwIDEuMTJsLTQuMDY1IDIuMzUyYS42NDUuNjQ1IDAgMCAxLS45NjgtLjU2di00LjcwNGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnoifV1dfSk7dmFyIHE1LGJldD11KCgpPT57cTU9W1sicGF0aCIse2Q6Ik0xMS4zNSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE0IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE3IDE2djYifV1dfSk7dmFyIGpPLHhldD11KCgpPT57ak89W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik05IDE1aDYifV0sWyJwYXRoIix7ZDoiTTEyIDE4di02In1dXX0pO3ZhciBWNSx2ZXQ9dSgoKT0+e1Y1PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik05LjEgOWEzIDMgMCAwIDEgNS44MiAxYzAgMi0zIDMtMyAzIn1dXX0pO3ZhciBqNSx5ZXQ9dSgoKT0+e2o1PVtbInBhdGgiLHtkOiJNMTEuMSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODkgMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djMuMjUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTIxIDIyLTIuODgtMi44OCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE3IixyOiIzIn1dXX0pO3ZhciBVTyx3ZXQ9dSgoKT0+e1VPPVtbInBhdGgiLHtkOiJNMjAgMTBWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmg0LjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNiAxNGEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMmEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMCAyMmEyIDIgMCAwIDAgMi0yIn1dXX0pO3ZhciBXTyxrZXQ9dSgoKT0+e1dPPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTQuNSIscjoiMi41In1dLFsicGF0aCIse2Q6Ik0xMy4zIDE2LjMgMTUgMTgifV1dfSk7dmFyIFU1LE1ldD11KCgpPT57VTU9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTEuNSAxMy41YTIuNSAyLjUgMCAwIDEgMCAzIn1dLFsicGF0aCIse2Q6Ik0xNSAxMmE1IDUgMCAwIDEgMCA2In1dXX0pO3ZhciBHTyxDZXQ9dSgoKT0+e0dPPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMCAxMXYyIn1dLFsicGF0aCIse2Q6Ik04IDE3aDgifV0sWyJwYXRoIix7ZDoiTTE0IDE2djIifV1dfSk7dmFyIFlPLHpldD11KCgpPT57WU89W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDEzaDIifV0sWyJwYXRoIix7ZDoiTTE0IDEzaDIifV0sWyJwYXRoIix7ZDoiTTggMTdoMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTdoMiJ9XV19KTt2YXIgS08sX2V0PXUoKCk9PntLTz1bWyJwYXRoIix7ZDoiTTExIDIxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xdi04YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTE2IDE2YTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xVjhhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgNmEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtMi0yQTIgMiAwIDAgMCAxNyAyaC0zYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMXoifV1dfSk7dmFyIFpPLFRldD11KCgpPT57Wk89W1sicGF0aCIse2Q6Ik00IDExVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTEwIDE4IDMtMy0zLTMifV1dfSk7dmFyIFFPLExldD11KCgpPT57UU89W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im04IDE2IDItMi0yLTIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aDQifV1dfSk7dmFyIFhPLERldD11KCgpPT57WE89W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMCA5SDgifV0sWyJwYXRoIix7ZDoiTTE2IDEzSDgifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDgifV1dfSk7dmFyIFc1LCRldD11KCgpPT57VzU9W1sicGF0aCIse2Q6Ik0xMiAyMmg2YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMyAxNnYtMS41YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIC41LjVWMTYifV0sWyJwYXRoIix7ZDoiTTYgMjJoMiJ9XSxbInBhdGgiLHtkOiJNNyAxNHY4In1dXX0pO3ZhciBKTyxBZXQ9dSgoKT0+e0pPPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTEgMThoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM3YtLjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgLjUuNXYuNSJ9XV19KTt2YXIgZVIsRWV0PXUoKCk9PntlUj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV0sWyJwYXRoIix7ZDoibTE1IDE1LTMtMy0zIDMifV1dfSk7dmFyIHRSLElldD11KCgpPT57dFI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNiAyMmE0IDQgMCAwIDAtOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTUiLHI6IjMifV1dfSk7dmFyIEc1LFBldD11KCgpPT57RzU9W1sicGF0aCIse2Q6Ik00IDEyVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xMCAxNy44NDMgMy4wMzMtMS43NTVhLjY0LjY0IDAgMCAxIC45NjcuNTZ2NC43MDRhLjY1LjY1IDAgMCAxLS45NjcuNTZMMTAgMjAuMTU3In1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjYiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XV19KTt2YXIgclIsTmV0PXUoKCk9PntyUj1bWyJwYXRoIix7ZDoiTTQgMTEuNTVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTEuOTUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDE1YTUgNSAwIDAgMSAwIDYifV0sWyJwYXRoIix7ZDoiTTggMTQuNTAyYS41LjUgMCAwIDAtLjgyNi0uMzgxbC0xLjg5MyAxLjYzMWExIDEgMCAwIDEtLjY1MS4yNDNIMy41YS41LjUgMCAwIDAtLjUuNTAxdjMuMDA2YS41LjUgMCAwIDAgLjUuNTAxaDEuMTI5YTEgMSAwIDAgMSAuNjUyLjI0M2wxLjg5MyAxLjYzM2EuNS41IDAgMCAwIC44MjYtLjM4eiJ9XV19KTt2YXIgWTUsT2V0PXUoKCk9PntZNT1bWyJwYXRoIix7ZDoiTTExIDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTUgMTcgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNy01IDUifV1dfSk7dmFyIGFSLFJldD11KCgpPT57YVI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNC41IDEyLjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgMTIuNSA1IDUifV1dfSk7dmFyIGlSLEZldD11KCgpPT57aVI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dXX0pO3ZhciBzUixCZXQ9dSgoKT0+e3NSPVtbInBhdGgiLHtkOiJNMTUgMmgtNGEyIDIgMCAwIDAtMiAydjExYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjgifV0sWyJwYXRoIix7ZDoiTTE2LjcwNiAyLjcwNkEyLjQgMi40IDAgMCAwIDE1IDJ2NWExIDEgMCAwIDAgMSAxaDVhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2eiJ9XSxbInBhdGgiLHtkOiJNNSA3YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAxLjczMi0xIn1dXX0pO3ZhciBuUixIZXQ9dSgoKT0+e25SPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDN2MTgifV0sWyJwYXRoIix7ZDoiTTMgNy41aDQifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJwYXRoIix7ZDoiTTMgMTYuNWg0In1dLFsicGF0aCIse2Q6Ik0xNyAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNyA3LjVoNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTYuNWg0In1dXX0pO3ZhciBLNSxxZXQ9dSgoKT0+e0s1PVtbInBhdGgiLHtkOiJNMTIgMTBhMiAyIDAgMCAwLTIgMmMwIDEuMDItLjEgMi41MS0uMjYgNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTMuMTJjMCAyLjM4IDAgNi4zOC0xIDguODgifV0sWyJwYXRoIix7ZDoiTTE3LjI5IDIxLjAyYy4xMi0uNi40My0yLjMuNS0zLjAyIn1dLFsicGF0aCIse2Q6Ik0yIDEyYTEwIDEwIDAgMCAxIDE4LTYifV0sWyJwYXRoIix7ZDoiTTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMS44IDE2Yy4yLTIgLjEzMS01LjM1NCAwLTYifV0sWyJwYXRoIix7ZDoiTTUgMTkuNUM1LjUgMTggNiAxNSA2IDEyYTYgNiAwIDAgMSAuMzQtMiJ9XSxbInBhdGgiLHtkOiJNOC42NSAyMmMuMjEtLjY2LjQ1LTEuMzIuNTctMiJ9XSxbInBhdGgiLHtkOiJNOSA2LjhhNiA2IDAgMCAxIDkgNS4ydjIifV1dfSk7dmFyIG9SLFZldD11KCgpPT57b1I9W1sicGF0aCIse2Q6Ik0xNSA2LjVWM2ExIDEgMCAwIDAtMS0xaC0yYTEgMSAwIDAgMC0xIDF2My41In1dLFsicGF0aCIse2Q6Ik05IDE4aDgifV0sWyJwYXRoIix7ZDoiTTE4IDNoLTMifV0sWyJwYXRoIix7ZDoiTTExIDNhNiA2IDAgMCAwLTYgNnYxMSJ9XSxbInBhdGgiLHtkOiJNNSAxM2g0In1dLFsicGF0aCIse2Q6Ik0xNyAxMGE0IDQgMCAwIDAtOCAwdjEwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0yWiJ9XV19KTt2YXIgbFIsamV0PXUoKCk9PntsUj1bWyJwYXRoIix7ZDoiTTE4IDEyLjQ3di4wM20wLS41di40N20tLjQ3NSA1LjA1NkE2Ljc0NCA2Ljc0NCAwIDAgMSAxNSAxOGMtMy41NiAwLTcuNTYtMi41My04LjUtNiAuMzQ4LTEuMjggMS4xMTQtMi40MzMgMi4xMjEtMy4zOG0zLjQ0NC0yLjA4OEE4LjgwMiA4LjgwMiAwIDAgMSAxNSA2YzMuNTYgMCA2LjA2IDIuNTQgNyA2LS4zMDkgMS4xNC0uNzg2IDIuMTc3LTEuNDEzIDMuMDU4In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzbTcuNDgtNC4zNzJBOS43NyA5Ljc3IDAgMCAxIDE2IDYuMDdtMCAxMS44NmE5Ljc3IDkuNzcgMCAwIDEtMS43MjgtMy42MTgifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOThNOC41MyAzaDUuMjdhMiAyIDAgMCAxIDEuOTggMS42N2wuMjMgMS40TTIgMmwyMCAyMCJ9XV19KTt2YXIgY1IsVWV0PXUoKCk9PntjUj1bWyJwYXRoIix7ZDoiTTIgMTZzOS0xNSAyMC00QzExIDIzIDIgOCAyIDgifV1dfSk7dmFyIGRSLFdldD11KCgpPT57ZFI9W1sicGF0aCIse2Q6Ik02LjUgMTJjLjk0LTMuNDYgNC45NC02IDguNS02IDMuNTYgMCA2LjA2IDIuNTQgNyA2LS45NCAzLjQ3LTMuNDQgNi03IDZzLTcuNTYtMi41My04LjUtNloifV0sWyJwYXRoIix7ZDoiTTE4IDEydi41In1dLFsicGF0aCIse2Q6Ik0xNiAxNy45M2E5Ljc3IDkuNzcgMCAwIDEgMC0xMS44NiJ9XSxbInBhdGgiLHtkOiJNNyAxMC42N0M3IDggNS41OCA1Ljk3IDIuNzMgNS41Yy0xIDEuNS0xIDUgLjIzIDYuNS0xLjI0IDEuNS0xLjI0IDUtLjIzIDYuNUM1LjU4IDE4LjAzIDcgMTYgNyAxMy4zMyJ9XSxbInBhdGgiLHtkOiJNMTAuNDYgNy4yNkMxMC4yIDUuODggOS4xNyA0LjI0IDggM2g1LjhhMiAyIDAgMCAxIDEuOTggMS42N2wuMjMgMS40In1dLFsicGF0aCIse2Q6Im0xNi4wMSAxNy45My0uMjMgMS40QTIgMiAwIDAgMSAxMy44IDIxSDkuNWE1Ljk2IDUuOTYgMCAwIDAgMS40OS0zLjk4In1dXX0pO3ZhciB1UixHZXQ9dSgoKT0+e3VSPVtbInBhdGgiLHtkOiJtMTcuNTg2IDExLjQxNC01LjkzIDUuOTNhMSAxIDAgMCAxLTgtOGwzLjEzNy0zLjEzN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy41VjEwIn1dLFsicGF0aCIse2Q6Ik0yMC40MTQgOC41ODYgMjIgNyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEwIixyOiIyIn1dXX0pO3ZhciBwUixZZXQ9dSgoKT0+e3BSPVtbInBhdGgiLHtkOiJNNCAxMWgxIn1dLFsicGF0aCIse2Q6Ik04IDE1YTIgMiAwIDAgMS00IDBWM2ExIDEgMCAwIDEgMS0xaC41QzE0IDIgMjAgOSAyMCAxOHY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjIifV1dfSk7dmFyIGZSLEtldD11KCgpPT57ZlI9W1sicGF0aCIse2Q6Ik0xNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCAyMlY0In1dLFsicGF0aCIse2Q6Ik03LjY1NiAySDhjMyAwIDUgMiA3LjMzMyAycTIgMCAzLjA2Ny0uOEExIDEgMCAwIDEgMjAgNHYxMC4zNDcifV1dfSk7dmFyIGhSLFpldD11KCgpPT57aFI9W1sicGF0aCIse2Q6Ik0xOCAyMlYyLjhhLjguOCAwIDAgMC0xLjE3LS43MUw1LjQ1IDcuNzhhLjguOCAwIDAgMCAwIDEuNDRMMTggMTUuNSJ9XV19KTt2YXIgbVIsUWV0PXUoKCk9PnttUj1bWyJwYXRoIix7ZDoiTTQgMjJWNGExIDEgMCAwIDEgLjQtLjhBNiA2IDAgMCAxIDggMmMzIDAgNSAyIDcuMzMzIDJxMiAwIDMuMDY3LS44QTEgMSAwIDAgMSAyMCA0djEwYTEgMSAwIDAgMS0uNC44QTYgNiAwIDAgMSAxNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV1dfSk7dmFyIGdSLFhldD11KCgpPT57Z1I9W1sicGF0aCIse2Q6Ik02IDIyVjIuOGEuOC44IDAgMCAxIDEuMTctLjcxbDExLjM4IDUuNjlhLjguOCAwIDAgMSAwIDEuNDRMNiAxNS41In1dXX0pO3ZhciBiUixKZXQ9dSgoKT0+e2JSPVtbInBhdGgiLHtkOiJNMTIgMmMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAxNyAxMGE1IDUgMCAxIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDOCA0LjUgMTEgMiAxMiAyWiJ9XSxbInBhdGgiLHtkOiJtNSAyMiAxNC00In1dLFsicGF0aCIse2Q6Im01IDE4IDE0IDQifV1dfSk7dmFyIHhSLGV0dD11KCgpPT57eFI9W1sicGF0aCIse2Q6Ik0xMiAzcTEgNCA0IDYuNXQzIDUuNWExIDEgMCAwIDEtMTQgMCA1IDUgMCAwIDEgMS0zIDEgMSAwIDAgMCA1IDBjMC0yLTEuNS0zLTEuNS01cTAtMiAyLjUtNCJ9XV19KTt2YXIgdlIsdHR0PXUoKCk9Pnt2Uj1bWyJwYXRoIix7ZDoiTTExLjY1MiA2SDE4In1dLFsicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnY0YTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy42NDkgMkgxN2ExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOGE0IDQgMCAwIDAtLjU1IDEuMDA3In1dXX0pO3ZhciB5UixydHQ9dSgoKT0+e3lSPVtbInBhdGgiLHtkOiJNMTIgMTN2MSJ9XSxbInBhdGgiLHtkOiJNMTcgMmExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOEE0IDQgMCAwIDAgMTYgMTJ2OGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LThhNCA0IDAgMCAwLS44LTIuNGwtLjYtLjhBMyAzIDAgMCAxIDYgN1YzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDZoMTIifV1dfSk7dmFyIHdSLGF0dD11KCgpPT57d1I9W1sicGF0aCIse2Q6Ik0xMCAydjIuMzQzIn1dLFsicGF0aCIse2Q6Ik0xNCAydjYuMzQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMS43NTUtMi45Nmw1LjIyNy05LjU2MyJ9XSxbInBhdGgiLHtkOiJNNi40NTMgMTVIMTUifV0sWyJwYXRoIix7ZDoiTTguNSAyaDcifV1dfSk7dmFyIGtSLGl0dD11KCgpPT57a1I9W1sicGF0aCIse2Q6Ik0xMCAydjYuMjkyYTcgNyAwIDEgMCA0IDBWMiJ9XSxbInBhdGgiLHtkOiJNNSAxNWgxNCJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XV19KTt2YXIgU1Isc3R0PXUoKCk9PntTUj1bWyJwYXRoIix7ZDoiTTE0IDJ2NmEyIDIgMCAwIDAgLjI0NS45Nmw1LjUxIDEwLjA4QTIgMiAwIDAgMSAxOCAyMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuNTEtMTAuMDhBMiAyIDAgMCAwIDEwIDhWMiJ9XSxbInBhdGgiLHtkOiJNNi40NTMgMTVoMTEuMDk0In1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dXX0pO3ZhciBNUixudHQ9dSgoKT0+e01SPVtbInBhdGgiLHtkOiJtMyA3IDUgNS01IDVWNyJ9XSxbInBhdGgiLHtkOiJtMjEgNy01IDUgNSA1VjcifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDE0djIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dXX0pO3ZhciBDUixvdHQ9dSgoKT0+e0NSPVtbInBhdGgiLHtkOiJtMTcgMy01IDUtNS01aDEwIn1dLFsicGF0aCIse2Q6Im0xNyAyMS01LTUtNSA1aDEwIn1dLFsicGF0aCIse2Q6Ik00IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwIDEySDgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XV19KTt2YXIgelIsbHR0PXUoKCk9Pnt6Uj1bWyJwYXRoIix7ZDoiTTEyIDVhMyAzIDAgMSAxIDMgM20tMy0zYTMgMyAwIDEgMC0zIDNtMy0zdjFNOSA4YTMgMyAwIDEgMCAzIDNNOSA4aDFtNSAwYTMgMyAwIDEgMS0zIDNtMy0zaC0xbS0yIDN2LTEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHYxMiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJjNC4yIDAgNy0xLjY2NyA3LTUtNC4yIDAtNyAxLjY2Ny03IDVaIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmMtNC4yIDAtNy0xLjY2Ny03LTUgNC4yIDAgNyAxLjY2NyA3IDVaIn1dXX0pO3ZhciBfUixjdHQ9dSgoKT0+e19SPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNi41QTQuNSA0LjUgMCAxIDEgNy41IDEyIDQuNSA0LjUgMCAxIDEgMTIgNy41YTQuNSA0LjUgMCAxIDEgNC41IDQuNSA0LjUgNC41IDAgMSAxLTQuNSA0LjUifV0sWyJwYXRoIix7ZDoiTTEyIDcuNVY5In1dLFsicGF0aCIse2Q6Ik03LjUgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMTYuNSAxMkgxNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTYuNVYxNSJ9XSxbInBhdGgiLHtkOiJtOCA4IDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgOS44OCAxNiA4In1dLFsicGF0aCIse2Q6Im04IDE2IDEuODgtMS44OCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMTQuMTIgMTYgMTYifV1dfSk7dmFyIFRSLGR0dD11KCgpPT57VFI9W1sicGF0aCIse2Q6Ik0yIDEyaDYifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC02In1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgOS0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im01IDE1IDMtMy0zLTMifV1dfSk7dmFyIExSLHV0dD11KCgpPT57TFI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgRFIscHR0PXUoKCk9PntEUj1bWyJwYXRoIix7ZDoiTTEyIDIydi02In1dLFsicGF0aCIse2Q6Ik0xMiA4VjIifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zLTMtMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA1LTMgMy0zLTMifV1dfSk7dmFyICRSLGZ0dD11KCgpPT57JFI9W1siY2lyY2xlIix7Y3g6IjE1IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTIwLjkgMTkuOEEyIDIgMCAwIDAgMjIgMThWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyaDUuMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTF2LTEifV0sWyJwYXRoIix7ZDoiTTE1IDE3di0yIn1dXX0pO3ZhciBBUixodHQ9dSgoKT0+e0FSPVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Im05IDEzIDIgMiA0LTQifV1dfSk7dmFyIEVSLG10dD11KCgpPT57RVI9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTcgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dXX0pO3ZhciBJUixndHQ9dSgoKT0+e0lSPVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0yIDEwaDIwIn1dXX0pO3ZhciBQUixidHQ9dSgoKT0+e1BSPVtbInBhdGgiLHtkOiJNMTAgMTAuNSA4IDEzbDIgMi41In1dLFsicGF0aCIse2Q6Im0xNCAxMC41IDIgMi41LTIgMi41In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMnoifV1dfSk7dmFyIFo1LHh0dD11KCgpPT57WjU9W1sicGF0aCIse2Q6Ik0xMC4zIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45OGEyIDIgMCAwIDEgMS42OS45bC42NiAxLjJBMiAyIDAgMCAwIDEyIDZoOGEyIDIgMCAwIDEgMiAydjMuMyJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDE5LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDE1LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBOUix2dHQ9dSgoKT0+e05SPVtbInBhdGgiLHtkOiJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIxIn1dXX0pO3ZhciBPUix5dHQ9dSgoKT0+e09SPVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Im0xNSAxMy0zIDMtMy0zIn1dXX0pO3ZhciBSUix3dHQ9dSgoKT0+e1JSPVtbInBhdGgiLHtkOiJNMTggMTlhNSA1IDAgMCAxLTUtNXY4In1dLFsicGF0aCIse2Q6Ik05IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2NSJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjEyIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTkiLHI6IjIifV1dfSk7dmFyIEZSLGt0dD11KCgpPT57RlI9W1sicGF0aCIse2Q6Ik0xMC42MzggMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYzLjQxNyJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV19KTt2YXIgQlIsU3R0PXUoKCk9PntCUj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xNCAxM2gzIn1dLFsicGF0aCIse2Q6Ik03IDEzaDMifV1dfSk7dmFyIEhSLE10dD11KCgpPT57SFI9W1sicGF0aCIse2Q6Ik0yIDlWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0xIn1dLFsicGF0aCIse2Q6Ik0yIDEzaDEwIn1dLFsicGF0aCIse2Q6Im05IDE2IDMtMy0zLTMifV1dfSk7dmFyIHFSLEN0dD11KCgpPT57cVI9W1sicGF0aCIse2Q6Ik00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIn1dLFsicGF0aCIse2Q6Ik04IDEwdjQifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjIifV0sWyJwYXRoIix7ZDoiTTE2IDEwdjYifV1dfSk7dmFyIFZSLHp0dD11KCgpPT57VlI9W1sicGF0aCIse2Q6Ik0xMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEuMzYifV0sWyJwYXRoIix7ZDoiTTE5IDEydjYifV0sWyJwYXRoIix7ZDoiTTE5IDE0aDIifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIyMCIscjoiMiJ9XV19KTt2YXIgalIsX3R0PXUoKCk9PntqUj1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMTQiLHk6IjE3IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTAgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYyLjUifV0sWyJwYXRoIix7ZDoiTTIwIDE3di0yYTIgMiAwIDEgMC00IDB2MiJ9XV19KTt2YXIgVVIsVHR0PXUoKCk9PntVUj1bWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dXX0pO3ZhciBXUixMdHQ9dSgoKT0+e1dSPVtbInBhdGgiLHtkOiJtNiAxNCAxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxNCIsY3k6IjE1IixyOiIxIn1dXX0pO3ZhciBHUixEdHQ9dSgoKT0+e0dSPVtbInBhdGgiLHtkOiJtNiAxNCAxLjUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NCA2YTIgMiAwIDAgMS0xLjk1IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgxOGEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIFlSLCR0dD11KCgpPT57WVI9W1sicGF0aCIse2Q6Ik0yIDcuNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTEuNSJ9XSxbInBhdGgiLHtkOiJNMiAxM2gxMCJ9XSxbInBhdGgiLHtkOiJtNSAxMC0zIDMgMyAzIn1dXX0pO3ZhciBRNSxBdHQ9dSgoKT0+e1E1PVtbInBhdGgiLHtkOiJNMiAxMS41VjVhMiAyIDAgMCAxIDItMmgzLjljLjcgMCAxLjMuMyAxLjcuOWwuOCAxLjJjLjQuNiAxIC45IDEuNy45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtOS41In1dLFsicGF0aCIse2Q6Ik0xMS4zNzggMTMuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV1dfSk7dmFyIEtSLEV0dD11KCgpPT57S1I9W1sicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Ik05IDEzaDYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV19KTt2YXIgWlIsSXR0PXUoKCk9PntaUj1bWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjEyLjUiLHI6IjIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xMy4zIDE0LjMgMTUgMTYifV1dfSk7dmFyIFFSLFB0dD11KCgpPT57UVI9W1sicGF0aCIse2Q6Ik00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE1djUifV1dfSk7dmFyIFhSLE50dD11KCgpPT57WFI9W1sicGF0aCIse2Q6Ik0xMC43IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2NC4xIn1dLFsicGF0aCIse2Q6Im0yMSAyMS0xLjktMS45In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjMifV1dfSk7dmFyIEpSLE90dD11KCgpPT57SlI9W1sicGF0aCIse2Q6Ik0yIDkuMzVWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoNyJ9XSxbInBhdGgiLHtkOiJtOCAxNiAzLTMtMy0zIn1dXX0pO3ZhciBlRixSdHQ9dSgoKT0+e2VGPVtbInBhdGgiLHtkOiJNOSAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydi41In1dLFsicGF0aCIse2Q6Ik0xMiAxMHY0aDQifV0sWyJwYXRoIix7ZDoibTEyIDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSJ9XSxbInBhdGgiLHtkOiJNMjIgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoibTIyIDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XV19KTt2YXIgdEYsRnR0PXUoKCk9Pnt0Rj1bWyJwYXRoIix7ZDoiTTIwIDEwYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC0yLjVhMSAxIDAgMCAxLS44LS40bC0uOS0xLjJBMSAxIDAgMCAwIDE1IDNoLTJhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFaIn1dLFsicGF0aCIse2Q6Ik0yMCAyMWExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFoLTIuOWExIDEgMCAwIDEtLjg4LS41NWwtLjQyLS44NWExIDEgMCAwIDAtLjkyLS42SDEzYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNMyA1YTIgMiAwIDAgMCAyIDJoMyJ9XSxbInBhdGgiLHtkOiJNMyAzdjEzYTIgMiAwIDAgMCAyIDJoMyJ9XV19KTt2YXIgckYsQnR0PXUoKCk9PntyRj1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJtOSAxMyAzLTMgMyAzIn1dXX0pO3ZhciBhRixIdHQ9dSgoKT0+e2FGPVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTAuNSA1IDUifV0sWyJwYXRoIix7ZDoibTE0LjUgMTAuNS01IDUifV1dfSk7dmFyIGlGLHF0dD11KCgpPT57aUY9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV1dfSk7dmFyIHNGLFZ0dD11KCgpPT57c0Y9W1sicGF0aCIse2Q6Ik0yMCA1YTIgMiAwIDAgMSAyIDJ2N2EyIDIgMCAwIDEtMiAySDlhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMi41YTEuNSAxLjUgMCAwIDEgMS4yLjZsLjYuOGExLjUgMS41IDAgMCAwIDEuMi42eiJ9XSxbInBhdGgiLHtkOiJNMyA4LjI2OGEyIDIgMCAwIDAtMSAxLjczOFYxOWEyIDIgMCAwIDAgMiAyaDExYTIgMiAwIDAgMCAxLjczMi0xIn1dXX0pO3ZhciBuRixqdHQ9dSgoKT0+e25GPVtbInBhdGgiLHtkOiJNNCAxNnYtMi4zOEM0IDExLjUgMi45NyAxMC41IDMgOGMuMDMtMi43MiAxLjQ5LTYgNC41LTZDOS4zNyAyIDEwIDMuOCAxMCA1LjVjMCAzLjExLTIgNS42Ni0yIDguNjhWMTZhMiAyIDAgMSAxLTQgMFoifV0sWyJwYXRoIix7ZDoiTTIwIDIwdi0yLjM4YzAtMi4xMiAxLjAzLTMuMTIgMS01LjYyLS4wMy0yLjcyLTEuNDktNi00LjUtNkMxNC42MyA2IDE0IDcuOCAxNCA5LjVjMCAzLjExIDIgNS42NiAyIDguNjhWMjBhMiAyIDAgMSAwIDQgMFoifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDQifV0sWyJwYXRoIix7ZDoiTTQgMTNoNCJ9XV19KTt2YXIgb0YsVXR0PXUoKCk9PntvRj1bWyJwYXRoIix7ZDoiTTEyIDEySDVhMiAyIDAgMCAwLTIgMnY1In1dLFsicGF0aCIse2Q6Ik0xNSAxOWg3In1dLFsicGF0aCIse2Q6Ik0xNiAxOVYyIn1dLFsicGF0aCIse2Q6Ik02IDEyVjdhMiAyIDAgMCAxIDItMmgyLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDMuODI4IDMuODI4QTIgMiAwIDAgMSAxNiAxMC44MjgifV0sWyJwYXRoIix7ZDoiTTcgMTloNCJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgbEYsV3R0PXUoKCk9PntsRj1bWyJwYXRoIix7ZDoiTTQgMTRoNiJ9XSxbInBhdGgiLHtkOiJNNCAyaDEwIn1dLFsicmVjdCIse3g6IjQiLHk6IjE4Iix3aWR0aDoiMTYiLGhlaWdodDoiNCIscng6IjEifV0sWyJyZWN0Iix7eDoiNCIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciBjRixHdHQ9dSgoKT0+e2NGPVtbInBhdGgiLHtkOiJtMTUgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNNCAxOHYtMmE0IDQgMCAwIDEgNC00aDEyIn1dXX0pO3ZhciBkRixZdHQ9dSgoKT0+e2RGPVtbImxpbmUiLHt4MToiMjIiLHgyOiIyIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMiIseTE6IjE4Iix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiMiIseTI6IjIyIn1dLFsibGluZSIse3gxOiIxOCIseDI6IjE4Iix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciB1RixLdHQ9dSgoKT0+e3VGPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dfSk7dmFyIHBGLFp0dD11KCgpPT57cEY9W1sicGF0aCIse2Q6Ik0xNCAxM2gyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDAgNCAwdi02Ljk5OGEyIDIgMCAwIDAtLjU5LTEuNDJMMTggNSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNiJ9XSxbInBhdGgiLHtkOiJNMiAyMWgxMyJ9XSxbInBhdGgiLHtkOiJNMyA5aDExIn1dXX0pO3ZhciBmRixRdHQ9dSgoKT0+e2ZGPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI4Iix4OiI3Iix5OiI4IixyeDoiMSJ9XV19KTt2YXIgaEYsWHR0PXUoKCk9PntoRj1bWyJwYXRoIix7ZDoiTTEzLjM1NCAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR2NmExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MWwxLjIxOC0xLjM0OCJ9XSxbInBhdGgiLHtkOiJNMTYgNmg2In1dLFsicGF0aCIse2Q6Ik0xOSAzdjYifV1dfSk7dmFyIFg1LEp0dD11KCgpPT57WDU9W1sicGF0aCIse2Q6Ik0xMi41MzEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0djZhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFsLjQyNy0uNDczIn1dLFsicGF0aCIse2Q6Im0xNi41IDMuNSA1IDUifV0sWyJwYXRoIix7ZDoibTIxLjUgMy41LTUgNSJ9XV19KTt2YXIgSjUsZXJ0PXUoKCk9PntKNT1bWyJwYXRoIix7ZDoiTTEwIDIwYTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxTDIxLjc0IDQuNjdBMSAxIDAgMCAwIDIxIDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHoifV1dfSk7dmFyIG1GLHRydD11KCgpPT57bUY9W1sicGF0aCIse2Q6Ik0yIDd2MTAifV0sWyJwYXRoIix7ZDoiTTYgNXYxNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMTgiLHg6IjEwIix5OiIzIixyeDoiMiJ9XV19KTt2YXIgZ0YscnJ0PXUoKCk9PntnRj1bWyJwYXRoIix7ZDoiTTIgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMTgiLHg6IjYiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAzdjE4In1dXX0pO3ZhciBiRixhcnQ9dSgoKT0+e2JGPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTkgMjFoMSJ9XV19KTt2YXIgeEYsaXJ0PXUoKCk9Pnt4Rj1bWyJwYXRoIix7ZDoiTTcgMmgxMCJ9XSxbInBhdGgiLHtkOiJNNSA2aDE0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiMTAiLHJ4OiIyIn1dXX0pO3ZhciB2RixzcnQ9dSgoKT0+e3ZGPVtbInBhdGgiLHtkOiJNMyAyaDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMjJoMTgifV1dfSk7dmFyIHlGLG5ydD11KCgpPT57eUY9W1sibGluZSIse3gxOiI2Iix4MjoiMTAiLHkxOiIxMSIseTI6IjExIn1dLFsibGluZSIse3gxOiI4Iix4MjoiOCIseTE6IjkiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMTguMDEiLHkxOiIxMCIseTI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNy4zMiA1SDYuNjhhNCA0IDAgMCAwLTMuOTc4IDMuNTljLS4wMDYuMDUyLS4wMS4xMDEtLjAxNy4xNTJDMi42MDQgOS40MTYgMiAxNC40NTYgMiAxNmEzIDMgMCAwIDAgMyAzYzEgMCAxLjUtLjUgMi0xbDEuNDE0LTEuNDE0QTIgMiAwIDAgMSA5LjgyOCAxNmg0LjM0NGEyIDIgMCAwIDEgMS40MTQuNTg2TDE3IDE4Yy41LjUgMSAxIDIgMWEzIDMgMCAwIDAgMy0zYzAtMS41NDUtLjYwNC02LjU4NC0uNjg1LTcuMjU4LS4wMDctLjA1LS4wMTEtLjEtLjAxNy0uMTUxQTQgNCAwIDAgMCAxNy4zMiA1eiJ9XV19KTt2YXIgd0Ysb3J0PXUoKCk9Pnt3Rj1bWyJwYXRoIix7ZDoiTTExLjE0NiAxNS44NTRhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDggMGwxLjU2IDEuNTZBMiAyIDAgMCAxIDE1IDE4LjgyOFYyMWExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF2LTIuMTcyYTIgMiAwIDAgMSAuNTg2LTEuNDE0eiJ9XSxbInBhdGgiLHtkOiJNMTguODI4IDE1YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC0xLjU2LTEuNTZhMS4yMDcgMS4yMDcgMCAwIDEgMC0xLjcwOGwxLjU2LTEuNTZBMiAyIDAgMCAxIDE4LjgyOCA5SDIxYTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNNi41ODYgMTQuNDE0QTIgMiAwIDAgMSA1LjE3MiAxNUgzYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMWgyLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDEuNTYgMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA4eiJ9XSxbInBhdGgiLHtkOiJNOSAzYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjIuMTcyYTIgMiAwIDAgMS0uNTg2IDEuNDE0bC0xLjU2IDEuNTZhMS4yMDcgMS4yMDcgMCAwIDEtMS43MDggMGwtMS41Ni0xLjU2QTIgMiAwIDAgMSA5IDUuMTcyeiJ9XV19KTt2YXIga0YsbHJ0PXUoKCk9PntrRj1bWyJsaW5lIix7eDE6IjYiLHgyOiIxMCIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiMTAiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjEzIix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMTguMDEiLHkxOiIxMSIseTI6IjExIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIFNGLGNydD11KCgpPT57U0Y9W1sicGF0aCIse2Q6Im0xMiAxNCA0LTQifV0sWyJwYXRoIix7ZDoiTTMuMzQgMTlhMTAgMTAgMCAxIDEgMTcuMzIgMCJ9XV19KTt2YXIgTUYsZHJ0PXUoKCk9PntNRj1bWyJwYXRoIix7ZDoibTE0IDEzLTguMzgxIDguMzhhMSAxIDAgMCAxLTMuMDAxLTNsOC4zODQtOC4zODEifV0sWyJwYXRoIix7ZDoibTE2IDE2IDYtNiJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxMC41LTgtOCJ9XSxbInBhdGgiLHtkOiJtOCA4IDYtNiJ9XSxbInBhdGgiLHtkOiJtOC41IDcuNSA4IDgifV1dfSk7dmFyIENGLHVydD11KCgpPT57Q0Y9W1sicGF0aCIse2Q6Ik0xMC41IDMgOCA5bDQgMTMgNC0xMy0yLjUtNiJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMS42LjhsMyA0YTIgMiAwIDAgMSAuMDEzIDIuMzgybC03Ljk5IDEwLjk4NmEyIDIgMCAwIDEtMy4yNDcgMGwtNy45OS0xMC45ODZBMiAyIDAgMCAxIDIuNCA3LjhsMi45OTgtMy45OTdBMiAyIDAgMCAxIDcgM3oifV0sWyJwYXRoIix7ZDoiTTIgOWgyMCJ9XV19KTt2YXIgekYscHJ0PXUoKCk9Pnt6Rj1bWyJwYXRoIix7ZDoiTTExLjUgMjFhNy41IDcuNSAwIDEgMSA3LjM1LTkifV0sWyJwYXRoIix7ZDoiTTEzIDEyVjMifV0sWyJwYXRoIix7ZDoiTTQgMjFoMTYifV0sWyJwYXRoIix7ZDoiTTkgMTJWMyJ9XV19KTt2YXIgX0YsZnJ0PXUoKCk9PntfRj1bWyJwYXRoIix7ZDoiTTkgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDJhOCA4IDAgMCAwLTggOHYxMmwzLTMgMi41IDIuNUwxMiAxOWwyLjUgMi41TDE3IDE5bDMgM1YxMGE4IDggMCAwIDAtOC04eiJ9XV19KTt2YXIgVEYsaHJ0PXUoKCk9PntURj1bWyJwYXRoIix7ZDoiTTEyIDd2MTQifV0sWyJwYXRoIix7ZDoiTTIwIDExdjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTgifV0sWyJwYXRoIix7ZDoiTTcuNSA3YTEgMSAwIDAgMSAwLTVBNC44IDggMCAwIDEgMTIgN2E0LjggOCAwIDAgMSA0LjUtNSAxIDEgMCAwIDEgMCA1In1dLFsicmVjdCIse3g6IjMiLHk6IjciLHdpZHRoOiIxOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgTEYsbXJ0PXUoKCk9PntMRj1bWyJwYXRoIix7ZDoiTTE1IDZhOSA5IDAgMCAwLTkgOVYzIn1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBERixncnQ9dSgoKT0+e0RGPVtbInBhdGgiLHtkOiJNNiAzdjEyIn1dLFsicGF0aCIse2Q6Ik0xOCA5YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnoifV0sWyJwYXRoIix7ZDoiTTYgMjFhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eiJ9XSxbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5In1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XV19KTt2YXIgJEYsYnJ0PXUoKCk9PnskRj1bWyJwYXRoIix7ZDoiTTE1IDZhOSA5IDAgMCAwLTkgOVYzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIGU4LHhydD11KCgpPT57ZTg9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI5Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIyMSIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIEFGLHZydD11KCgpPT57QUY9W1sicGF0aCIse2Q6Ik0xMiAzdjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NiJ9XV19KTt2YXIgRUYseXJ0PXUoKCk9PntFRj1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcifV0sWyJwYXRoIix7ZDoibTE1IDktMy0zIDMtMyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOEg3YTIgMiAwIDAgMS0yLTJWOSJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzIDMtMyAzIn1dXX0pO3ZhciBJRix3cnQ9dSgoKT0+e0lGPVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Ik0xMSAxOEg4YTIgMiAwIDAgMS0yLTJWOSJ9XV19KTt2YXIgUEYsa3J0PXUoKCk9PntQRj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE4IDl2MmMwIC42LS40IDEtMSAxSDdjLS42IDAtMS0uNC0xLTFWOSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2MyJ9XV19KTt2YXIgTkYsU3J0PXUoKCk9PntORj1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXY2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE2IDE1LjdBOSA5IDAgMCAwIDE5IDkifV1dfSk7dmFyIE9GLE1ydD11KCgpPT57T0Y9W1sicGF0aCIse2Q6Ik0xMiA2aDRhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Ik02IDEydjkifV0sWyJwYXRoIix7ZDoiTTkgMyAzIDkifV0sWyJwYXRoIix7ZDoiTTkgOSAzIDMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgUkYsQ3J0PXUoKCk9PntSRj1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiAyMVY5YTkgOSAwIDAgMCA5IDkifV1dfSk7dmFyIEZGLHpydD11KCgpPT57RkY9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik01IDl2MTIifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTUgOS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0xMiA2aDVhMiAyIDAgMCAxIDIgMnY3In1dXX0pO3ZhciBCRixfcnQ9dSgoKT0+e0JGPVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiA5djEyIn1dLFsicGF0aCIse2Q6Im0yMSAzLTYgNiJ9XSxbInBhdGgiLHtkOiJtMjEgOS02LTYifV0sWyJwYXRoIix7ZDoiTTE4IDExLjVWMTUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgSEYsVHJ0PXUoKCk9PntIRj1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXYxMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0xMiA2aDVhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMiAxOGgtNiJ9XV19KTt2YXIgcUYsTHJ0PXUoKCk9PntxRj1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYgOXYxMiJ9XSxbInBhdGgiLHtkOiJNMTMgNmgzYTIgMiAwIDAgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTYifV1dfSk7dmFyIFZGLERydD11KCgpPT57VkY9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE4IDZWNSJ9XSxbInBhdGgiLHtkOiJNMTggMTF2LTEifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiOSIseTI6IjIxIn1dXX0pO3ZhciBqRiwkcnQ9dSgoKT0+e2pGPVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3In1dLFsibGluZSIse3gxOiI2Iix4MjoiNiIseTE6IjkiLHkyOiIyMSJ9XV19KTt2YXIgVUYsQXJ0PXUoKCk9PntVRj1bWyJwYXRoIix7ZDoiTTUuMTE2IDQuMTA0QTEgMSAwIDAgMSA2LjExIDNoMTEuNzhhMSAxIDAgMCAxIC45OTQgMS4xMDVMMTcuMTkgMjAuMjFBMiAyIDAgMCAxIDE1LjIgMjJIOC44YTIgMiAwIDAgMS0yLTEuNzl6In1dLFsicGF0aCIse2Q6Ik02IDEyYTUgNSAwIDAgMSA2IDAgNSA1IDAgMCAwIDYgMCJ9XV19KTt2YXIgV0YsRXJ0PXUoKCk9PntXRj1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE1IixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTUiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE0IDE1YTIgMiAwIDAgMC0yLTIgMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMi41IDEzIDUgN2MuNy0xLjMgMS40LTIgMy0yIn1dLFsicGF0aCIse2Q6Ik0yMS41IDEzIDE5IDdjLS43LTEuMy0xLjUtMi0zLTIifV1dfSk7dmFyIEdGLElydD11KCgpPT57R0Y9W1sicGF0aCIse2Q6Ik0xNS42ODYgMTVBMTQuNSAxNC41IDAgMCAxIDEyIDIyYTE0LjUgMTQuNSAwIDAgMSAwLTIwIDEwIDEwIDAgMSAwIDkuNTQyIDEzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDguNSJ9XSxbInBhdGgiLHtkOiJNMjAgNlY0YTIgMiAwIDEgMC00IDB2MiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiNiIscng6IjEifV1dfSk7dmFyIFlGLFBydD11KCgpPT57WUY9W1sicGF0aCIse2Q6Ik0xMC4xMTQgNC40NjJBMTQuNSAxNC41IDAgMCAxIDEyIDJhMTAgMTAgMCAwIDEgOS4zMTMgMTMuNjQzIn1dLFsicGF0aCIse2Q6Ik0xNS41NTcgMTUuNTU2QTE0LjUgMTQuNSAwIDAgMSAxMiAyMiAxMCAxMCAwIDAgMSA0LjkyOSA0LjkyOSJ9XSxbInBhdGgiLHtkOiJNMTUuODkyIDEwLjIzNEExNC41IDE0LjUgMCAwIDAgMTIgMmExMCAxMCAwIDAgMC0zLjY0My42ODcifV0sWyJwYXRoIix7ZDoiTTE3LjY1NiAxMkgyMiJ9XSxbInBhdGgiLHtkOiJNMTkuMDcxIDE5LjA3MUExMCAxMCAwIDAgMSAxMiAyMiAxNC41IDE0LjUgMCAwIDEgOC40NCA4LjQ1In1dLFsicGF0aCIse2Q6Ik0yIDEyaDEwIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIEtGLE5ydD11KCgpPT57S0Y9W1sicGF0aCIse2Q6Im0xNiAzIDUgNSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMEExMCAxMCAwIDEgMSAxMiAyYTE0LjUgMTQuNSAwIDAgMCAwIDIwIDE0LjUgMTQuNSAwIDAgMCA0LTEwIn1dLFsicGF0aCIse2Q6Im0yMSAzLTUgNSJ9XV19KTt2YXIgWkYsT3J0PXUoKCk9PntaRj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDAtMjAifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV1dfSk7dmFyIFFGLFJydD11KCgpPT57UUY9W1sicGF0aCIse2Q6Ik0xMiAxM1YybDggNC04IDQifV0sWyJwYXRoIix7ZDoiTTIwLjU2MSAxMC4yMjJhOSA5IDAgMSAxLTEyLjU1LTUuMjkifV0sWyJwYXRoIix7ZDoiTTguMDAyIDkuOTk3YTUgNSAwIDEgMCA4LjkgMi4wMiJ9XV19KTt2YXIgWEYsRnJ0PXUoKCk9PntYRj1bWyJwYXRoIix7ZDoiTTIgMTdoMThhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJIMiJ9XSxbInBhdGgiLHtkOiJNMiAyMVYzIn1dLFsicGF0aCIse2Q6Ik03IDE3djNhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTMifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTEiLHI6IjIifV1dfSk7dmFyIEpGLEJydD11KCgpPT57SkY9W1sicGF0aCIse2Q6Ik0yMS40MiAxMC45MjJhMSAxIDAgMCAwLS4wMTktMS44MzhMMTIuODMgNS4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA5LjA4YTEgMSAwIDAgMCAwIDEuODMybDguNTcgMy45MDhhMiAyIDAgMCAwIDEuNjYgMHoifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTYgMTIuNVYxNmE2IDMgMCAwIDAgMTIgMHYtMy41In1dXX0pO3ZhciBlQixIcnQ9dSgoKT0+e2VCPVtbInBhdGgiLHtkOiJNMjIgNVYybC01Ljg5IDUuODkifV0sWyJjaXJjbGUiLHtjeDoiMTYuNiIsY3k6IjE1Ljg5IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjguMTEiLGN5OiI3LjQiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTIuMzUiLGN5OiIxMS42NSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMy45MSIsY3k6IjUuODUiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTguMTUiLGN5OiIxMC4wOSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2LjU2IixjeToiMTMuMiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMC44IixjeToiMTcuNDQiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIzIn1dXX0pO3ZhciB0OCxxcnQ9dSgoKT0+e3Q4PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAyIDQtNCJ9XV19KTt2YXIgcjgsVnJ0PXUoKCk9PntyOD1bWyJwYXRoIix7ZDoiTTEyIDN2MTdhMSAxIDAgMCAxLTEgMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NmExIDEgMCAwIDEtMSAxSDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE5IDIydi02In1dXX0pO3ZhciBhOCxqcnQ9dSgoKT0+e2E4PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTYgNSA1In1dLFsicGF0aCIse2Q6Im0xNiAyMSA1LTUifV1dfSk7dmFyIGk4LFVydD11KCgpPT57aTg9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIHRCLFdydD11KCgpPT57dEI9W1sicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgajQsR3J0PXUoKCk9PntqND1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dfSk7dmFyIHJCLFlydD11KCgpPT57ckI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxNSIscjoiMSJ9XV19KTt2YXIgYUIsS3J0PXUoKCk9PnthQj1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjE5IixyOiIxIn1dXX0pO3ZhciBpQixacnQ9dSgoKT0+e2lCPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV19KTt2YXIgc0IsUXJ0PXUoKCk9PntzQj1bWyJwYXRoIix7ZDoiTTMgN1Y1YzAtMS4xLjktMiAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYzEuMSAwIDIgLjkgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJjMCAxLjEtLjkgMi0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWMtMS4xIDAtMi0uOS0yLTJ2LTIifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNSIseDoiNyIseToiNyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNSIseDoiMTAiLHk6IjEyIixyeDoiMSJ9XV19KTt2YXIgbkIsWHJ0PXUoKCk9PntuQj1bWyJwYXRoIix7ZDoibTExLjkgMTIuMSA0LjUxNC00LjUxNCJ9XSxbInBhdGgiLHtkOiJNMjAuMSAyLjNhMSAxIDAgMCAwLTEuNCAwbC0xLjExNCAxLjExNEEyIDIgMCAwIDAgMTcgNC44Mjh2MS4zNDRhMiAyIDAgMCAxLS41ODYgMS40MTRBMiAyIDAgMCAxIDE3LjgyOCA3aDEuMzQ0YTIgMiAwIDAgMCAxLjQxNC0uNTg2TDIxLjcgNS4zYTEgMSAwIDAgMCAwLTEuNHoifV0sWyJwYXRoIix7ZDoibTYgMTYgMiAyIn1dLFsicGF0aCIse2Q6Ik04LjIzIDkuODVBMyAzIDAgMCAxIDExIDhhNSA1IDAgMCAxIDUgNSAzIDMgMCAwIDEtMS44NSAyLjc3bC0uOTIuMzhBMiAyIDAgMCAwIDEyIDE4YTQgNCAwIDAgMS00IDQgNiA2IDAgMCAxLTYtNiA0IDQgMCAwIDEgNC00IDIgMiAwIDAgMCAxLjg1LTEuMjN6In1dXX0pO3ZhciBvQixKcnQ9dSgoKT0+e29CPVtbInBhdGgiLHtkOiJNMTMuMTQ0IDIxLjE0NEE3LjI3NCAxMC40NDUgNDUgMSAwIDIuODU2IDEwLjg1NiJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ0IDIxLjE0NEE3LjI3NCA0LjM2NSA0NSAwIDAgMi44NTYgMTAuODU2YTcuMjc0IDQuMzY1IDQ1IDAgMCAxMC4yODggMTAuMjg4In1dLFsicGF0aCIse2Q6Ik0xNi41NjUgMTAuNDM1IDE4LjYgOC40YTIuNTAxIDIuNTAxIDAgMSAwIDEuNjUtNC42NSAyLjUgMi41IDAgMSAwLTQuNjYgMS42NmwtMi4wMjQgMi4wMjUifV0sWyJwYXRoIix7ZDoibTguNSAxNi41LTEtMSJ9XV19KTt2YXIgbEIsZWF0PXUoKCk9PntsQj1bWyJwYXRoIix7ZDoiTTEyIDE2SDRhMiAyIDAgMSAxIDAtNGgxNmEyIDIgMCAxIDEgMCA0aC00LjI1In1dLFsicGF0aCIse2Q6Ik01IDEyYTIgMiAwIDAgMS0yLTIgOSA3IDAgMCAxIDE4IDAgMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNNSAxNmEyIDIgMCAwIDAtMiAyIDMgMyAwIDAgMCAzIDNoMTJhMyAzIDAgMCAwIDMtMyAyIDIgMCAwIDAtMi0ycTAgMCAwIDAifV0sWyJwYXRoIix7ZDoibTYuNjcgMTIgNi4xMyA0LjZhMiAyIDAgMCAwIDIuOC0uNGwzLjE1LTQuMiJ9XV19KTt2YXIgY0IsdGF0PXUoKCk9PntjQj1bWyJwYXRoIix7ZDoibTE1IDEyLTkuMzczIDkuMzczYTEgMSAwIDAgMS0zLjAwMS0zTDEyIDkifV0sWyJwYXRoIix7ZDoibTE4IDE1IDQtNCJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxMS41LTEuOTE0LTEuOTE0QTIgMiAwIDAgMSAxOSA4LjE3MnYtLjM0NGEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtMS42NTctMS42NTdBNiA2IDAgMCAwIDEyLjUxNiAzSDlsMS4yNDMgMS4yNDNBNiA2IDAgMCAxIDEyIDguNDg1VjEwbDIgMmgxLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2TDE4LjUgMTQuNSJ9XV19KTt2YXIgZEIscmF0PXUoKCk9PntkQj1bWyJwYXRoIix7ZDoiTTExIDE1aDJhMiAyIDAgMSAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE3In1dLFsicGF0aCIse2Q6Im03IDIxIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTIgMiAwIDAgMC0yLjc1LTIuOTFsLTQuMiAzLjkifV0sWyJwYXRoIix7ZDoibTIgMTYgNiA2In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiOSIscjoiMi45In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI1IixyOiIzIn1dXX0pO3ZhciB1QixhYXQ9dSgoKT0+e3VCPVtbInBhdGgiLHtkOiJNMTIuMDM1IDE3LjAxMmEzIDMgMCAwIDAtMy0zbC0uMzExLS4wMDJhLjcyLjcyIDAgMCAxLS41MDUtMS4yMjlsMS4xOTUtMS4xOTVBMiAyIDAgMCAxIDEwLjgyOCAxMUgxMmEyIDIgMCAwIDAgMC00SDkuMjQzYTMgMyAwIDAgMC0yLjEyMi44NzlsLTIuNzA3IDIuNzA3QTQuODMgNC44MyAwIDAgMCAzIDE0YTggOCAwIDAgMCA4IDhoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHYyYTIgMiAwIDEgMCA0IDAifV0sWyJwYXRoIix7ZDoiTTEzLjg4OCA5LjY2MkEyIDIgMCAwIDAgMTcgOFY1QTIgMiAwIDEgMCAxMyA1In1dLFsicGF0aCIse2Q6Ik05IDVBMiAyIDAgMSAwIDUgNVYxMCJ9XSxbInBhdGgiLHtkOiJNOSA3VjRBMiAyIDAgMSAxIDEzIDRWNy4yNjgifV1dfSk7dmFyIHM4LGlhdD11KCgpPT57czg9W1sicGF0aCIse2Q6Ik0xOCAxMS41VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEuNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTAgOS45VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjUifV0sWyJwYXRoIix7ZDoiTTYgMTRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtNGE4IDggMCAwIDEtOC04IDIgMiAwIDEgMSA0IDAifV1dfSk7dmFyIHBCLHNhdD11KCgpPT57cEI9W1sicGF0aCIse2Q6Ik0xMSAxNGgyYTIgMiAwIDAgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNiJ9XSxbInBhdGgiLHtkOiJtMTQuNDUgMTMuMzkgNS4wNS00LjY5NEMyMC4xOTYgOCAyMSA2Ljg1IDIxIDUuNzVhMi43NSAyLjc1IDAgMCAwLTQuNzk3LTEuODM3LjI3Ni4yNzYgMCAwIDEtLjQwNiAwQTIuNzUgMi43NSAwIDAgMCAxMSA1Ljc1YzAgMS4yLjgwMiAyLjI0OCAxLjUgMi45NDZMMTYgMTEuOTUifV0sWyJwYXRoIix7ZDoibTIgMTUgNiA2In1dLFsicGF0aCIse2Q6Im03IDIwIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTEgMSAwIDAgMC0yLjc1LTIuOTEifV1dfSk7dmFyIG44LG5hdD11KCgpPT57bjg9W1sicGF0aCIse2Q6Ik0xMSAxMmgyYTIgMiAwIDEgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNCJ9XSxbInBhdGgiLHtkOiJtNyAxOCAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGEyIDIgMCAwIDAtMi43NS0yLjkxbC00LjIgMy45In1dLFsicGF0aCIse2Q6Im0yIDEzIDYgNiJ9XV19KTt2YXIgZkIsb2F0PXUoKCk9PntmQj1bWyJwYXRoIix7ZDoiTTE4IDEyLjVWMTBhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEuNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTFWOWEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTEwIDEwLjVWNWEyIDIgMCAxIDAtNCAwdjkifV0sWyJwYXRoIix7ZDoibTcgMTUtMS43Ni0xLjc2YTIgMiAwIDAgMC0yLjgzIDIuODJsMy42IDMuNkM3LjUgMjEuMTQgOS4yIDIyIDEyIDIyaDJhOCA4IDAgMCAwIDgtOFY3YTIgMiAwIDEgMC00IDB2NSJ9XV19KTt2YXIgaEIsbGF0PXUoKCk9PntoQj1bWyJwYXRoIix7ZDoiTTEyIDNWMiJ9XSxbInBhdGgiLHtkOiJtMTUuNCAxNy40IDMuMi0yLjhhMiAyIDAgMSAxIDIuOCAyLjlsLTMuNiAzLjNjLS43LjgtMS43IDEuMi0yLjggMS4yaC00Yy0xLjEgMC0yLjEtLjQtMi44LTEuMmwtMS4zMDItMS40NjRBMSAxIDAgMCAwIDYuMTUxIDE5SDUifV0sWyJwYXRoIix7ZDoiTTIgMTRoMTJhMiAyIDAgMCAxIDAgNGgtMiJ9XSxbInBhdGgiLHtkOiJNNCAxMGgxNiJ9XSxbInBhdGgiLHtkOiJNNSAxMGE3IDcgMCAwIDEgMTQgMCJ9XSxbInBhdGgiLHtkOiJNNSAxNHY2YTEgMSAwIDAgMS0xIDFIMiJ9XV19KTt2YXIgbUIsY2F0PXUoKCk9PnttQj1bWyJwYXRoIix7ZDoiTTE4IDExVjZhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMFY0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMC41VjZhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjgifV0sWyJwYXRoIix7ZDoiTTE4IDhhMiAyIDAgMSAxIDQgMHY2YTggOCAwIDAgMS04IDhoLTJjLTIuOCAwLTQuNS0uODYtNS45OS0yLjM0bC0zLjYtMy42YTIgMiAwIDAgMSAyLjgzLTIuODJMNyAxNSJ9XV19KTt2YXIgZ0IsZGF0PXUoKCk9PntnQj1bWyJwYXRoIix7ZDoiTTIuMDQ4IDE4LjU2NkEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45NTItMi40MzRsLTItOUEyIDIgMCAwIDAgMTggOEg2YTIgMiAwIDAgMC0xLjk1MiAxLjU2NnoifV0sWyJwYXRoIix7ZDoiTTggMTFWNmE0IDQgMCAwIDEgOCAwdjUifV1dfSk7dmFyIGJCLHVhdD11KCgpPT57YkI9W1sicGF0aCIse2Q6Im0xMSAxNyAyIDJhMSAxIDAgMSAwIDMtMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTQgMi41IDIuNWExIDEgMCAxIDAgMy0zbC0zLjg4LTMuODhhMyAzIDAgMCAwLTQuMjQgMGwtLjg4Ljg4YTEgMSAwIDEgMS0zLTNsMi44MS0yLjgxYTUuNzkgNS43OSAwIDAgMSA3LjA2LS44N2wuNDcuMjhhMiAyIDAgMCAwIDEuNDIuMjVMMjEgNCJ9XSxbInBhdGgiLHtkOiJtMjEgMyAxIDExaC0yIn1dLFsicGF0aCIse2Q6Ik0zIDMgMiAxNGw2LjUgNi41YTEgMSAwIDEgMCAzLTMifV0sWyJwYXRoIix7ZDoiTTMgNGg4In1dXX0pO3ZhciB4QixwYXQ9dSgoKT0+e3hCPVtbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicGF0aCIse2Q6Im0xNiA2LTQgNC00LTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE4aC4wMSJ9XV19KTt2YXIgdkIsZmF0PXUoKCk9Pnt2Qj1bWyJwYXRoIix7ZDoibTE2IDYtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOGguMDEifV1dfSk7dmFyIHlCLGhhdD11KCgpPT57eUI9W1sicGF0aCIse2Q6Ik0xMCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTIuMjEyIDExLjU3N2EyIDIgMCAwIDAtLjIxMi44OTZWMThhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01LjUyN2EyIDIgMCAwIDAtLjIxMi0uODk2TDE4LjU1IDUuMTFBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeiJ9XSxbInBhdGgiLHtkOiJNMjEuOTQ2IDEyLjAxM0gyLjA1NCJ9XSxbInBhdGgiLHtkOiJNNiAxNmguMDEifV1dfSk7dmFyIHdCLG1hdD11KCgpPT57d0I9W1sicGF0aCIse2Q6Ik0xMCAxMFY1YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE0IDZhNiA2IDAgMCAxIDYgNnYzIn1dLFsicGF0aCIse2Q6Ik00IDE1di0zYTYgNiAwIDAgMSA2LTYifV0sWyJyZWN0Iix7eDoiMiIseToiMTUiLHdpZHRoOiIyMCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIga0IsZ2F0PXUoKCk9PntrQj1bWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxMCIseDI6IjgiLHkxOiIzIix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMTQiLHkxOiIzIix5MjoiMjEifV1dfSk7dmFyIFNCLGJhdD11KCgpPT57U0I9W1sicGF0aCIse2Q6Ik0xNCAxOGEyIDIgMCAwIDAtNCAwIn1dLFsicGF0aCIse2Q6Im0xOSAxMS0yLjExLTYuNjU3YTIgMiAwIDAgMC0yLjc1Mi0xLjE0OGwtMS4yNzYuNjFBMiAyIDAgMCAxIDEyIDRIOC41YTIgMiAwIDAgMC0xLjkyNSAxLjQ1Nkw1IDExIn1dLFsicGF0aCIse2Q6Ik0yIDExaDIwIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBNQix4YXQ9dSgoKT0+e01CPVtbInBhdGgiLHtkOiJtNS4yIDYuMiAxLjQgMS40In1dLFsicGF0aCIse2Q6Ik0yIDEzaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEzaDIifV0sWyJwYXRoIix7ZDoibTE3LjQgNy42IDEuNC0xLjQifV0sWyJwYXRoIix7ZDoiTTIyIDE3SDIifV0sWyJwYXRoIix7ZDoiTTIyIDIxSDIifV0sWyJwYXRoIix7ZDoiTTE2IDEzYTQgNCAwIDAgMC04IDAifV0sWyJwYXRoIix7ZDoiTTEyIDVWMi41In1dXX0pO3ZhciBDQix2YXQ9dSgoKT0+e0NCPVtbInBhdGgiLHtkOiJNMTAgMTJINiJ9XSxbInBhdGgiLHtkOiJNMTAgMTVWOSJ9XSxbInBhdGgiLHtkOiJNMTQgMTQuNWEuNS41IDAgMCAwIC41LjVoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFBMi41IDIuNSAwIDAgMCAxNS41IDloLTFhLjUuNSAwIDAgMC0uNS41eiJ9XSxbInBhdGgiLHtkOiJNNiAxNVY5In1dLFsicmVjdCIse3g6IjIiLHk6IjUiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dfSk7dmFyIHpCLHlhdD11KCgpPT57ekI9W1sicGF0aCIse2Q6Ik0yMiA5YTEgMSAwIDAgMC0xLTFIM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWgxbDIgMmgxMmwyLTJoMWExIDEgMCAwIDAgMS0xWiJ9XSxbInBhdGgiLHtkOiJNNy41IDEyaDkifV1dfSk7dmFyIF9CLHdhdD11KCgpPT57X0I9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTRjMC00IDQtMyA0LTYgMC0xLjUtMi0yLjUtNC0xIn1dXX0pO3ZhciBUQixrYXQ9dSgoKT0+e1RCPVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoiTTE3LjUgMTAuNWMxLjctMSAzLjUgMCAzLjUgMS41YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE3IDE3LjVjMiAxLjUgNCAuMyA0LTEuNWEyIDIgMCAwIDAtMi0yIn1dXX0pO3ZhciBMQixTYXQ9dSgoKT0+e0xCPVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoibTE3IDEyIDMtMnY4In1dXX0pO3ZhciBEQixNYXQ9dSgoKT0+e0RCPVtbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTB2M2ExIDEgMCAwIDAgMSAxaDMifV0sWyJwYXRoIix7ZDoiTTIxIDEwdjgifV0sWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dXX0pO3ZhciAkQixDYXQ9dSgoKT0+eyRCPVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoiTTE3IDEzdi0zaDQifV0sWyJwYXRoIix7ZDoiTTE3IDE3LjdjLjQuMi44LjMgMS4zLjMgMS41IDAgMi43LTEuMSAyLjctMi41UzE5LjggMTMgMTguMyAxM0gxNyJ9XV19KTt2YXIgQUIsemF0PXUoKCk9PntBQj1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTIwIDEwYy0yIDItMyAzLjUtMyA2In1dXX0pO3ZhciBFQixfYXQ9dSgoKT0+e0VCPVtbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNNiAyMFY0In1dLFsicGF0aCIse2Q6Ik0xOCAyMFY0In1dXX0pO3ZhciBJQixUYXQ9dSgoKT0+e0lCPVtbInBhdGgiLHtkOiJNMjEgMTRoLTEuMzQzIn1dLFsicGF0aCIse2Q6Ik05LjEyOCAzLjQ3QTkgOSAwIDAgMSAyMSAxMnYzLjM0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMC40MTQgMjAuNDE0QTIgMiAwIDAgMSAxOSAyMWgtMWEyIDIgMCAwIDEtMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAyLjYzNi02LjM2NCJ9XV19KTt2YXIgUEIsTGF0PXUoKCk9PntQQj1bWyJwYXRoIix7ZDoiTTMgMTRoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTdhOSA5IDAgMCAxIDE4IDB2N2EyIDIgMCAwIDEtMiAyaC0xYTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmgzIn1dXX0pO3ZhciBOQixEYXQ9dSgoKT0+e05CPVtbInBhdGgiLHtkOiJNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaIn1dLFsicGF0aCIse2Q6Ik0yMSAxNnYyYTQgNCAwIDAgMS00IDRoLTUifV1dfSk7dmFyIE9CLCRhdD11KCgpPT57T0I9W1sicGF0aCIse2Q6Ik0xMi40MDkgNS44MjRjLS43MDIuNzkyLTEuMTUgMS40OTYtMS40MTUgMi4xNjZsMi4xNTMgMi4xNTZhLjUuNSAwIDAgMSAwIC43MDdsLTIuMjkzIDIuMjkzYS41LjUgMCAwIDAgMCAuNzA3TDEyIDE1In1dLFsicGF0aCIse2Q6Ik0xMy41MDggMjAuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc3LjYuNiAwIDAgMCAuODE4LjAwMUE1LjUgNS41IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjV6In1dXX0pO3ZhciBSQixBYXQ9dSgoKT0+e1JCPVtbInBhdGgiLHtkOiJNMTkuNDE0IDE0LjQxNEMyMSAxMi44MjggMjIgMTEuNSAyMiA5LjVhNS41IDUuNSAwIDAgMC05LjU5MS0zLjY3Ni42LjYgMCAwIDEtLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyIDkuNWMwIDIuMyAxLjUgNCAzIDUuNWw1LjUzNSA1LjM2MmEyIDIgMCAwIDAgMi44NzkuMDUyIDIuMTIgMi4xMiAwIDAgMC0uMDA0LTMgMi4xMjQgMi4xMjQgMCAxIDAgMy0zIDIuMTI0IDIuMTI0IDAgMCAwIDMuMDA0IDAgMiAyIDAgMCAwIDAtMi44MjhsLTEuODgxLTEuODgyYTIuNDEgMi40MSAwIDAgMC0zLjQwOSAwbC0xLjcxIDEuNzFhMiAyIDAgMCAxLTIuODI4IDAgMiAyIDAgMCAxIDAtMi44MjhsMi44MjMtMi43NjIifV1dfSk7dmFyIEZCLEVhdD11KCgpPT57RkI9W1sicGF0aCIse2Q6Im0xNC44NzYgMTguOTktMS4zNjggMS4zMjNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVhNS4yIDUuMiAwIDAgMS0uMjQ0IDEuNTcyIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWg2In1dXX0pO3ZhciBCQixJYXQ9dSgoKT0+e0JCPVtbInBhdGgiLHtkOiJNMTAuNSA0Ljg5M2E1LjUgNS41IDAgMCAxIDEuMDkxLjkzMS41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDEuODcyLTEuMDAyIDMuMzU2LTIuMTg3IDQuNjU1In1dLFsicGF0aCIse2Q6Im0xNi45NjcgMTYuOTY3LTMuNDU5IDMuMzQ2YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDIuNzQ3LTQuNzYxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIEhCLFBhdD11KCgpPT57SEI9W1sicGF0aCIse2Q6Im0xNC40NzkgMTkuMzc0LS45NzEuOTM5YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YTUuMiA1LjIgMCAwIDEtLjIxOSAxLjQ5In1dLFsicGF0aCIse2Q6Ik0xNSAxNWg2In1dLFsicGF0aCIse2Q6Ik0xOCAxMnY2In1dXX0pO3ZhciBxQixOYXQ9dSgoKT0+e3FCPVtbInBhdGgiLHtkOiJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSJ9XV19KTt2YXIgVkIsT2F0PXUoKCk9PntWQj1bWyJwYXRoIix7ZDoiTTIgOS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVjMCAyLjI5LTEuNSA0LTMgNS41bC01LjQ5MiA1LjMxM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjUifV0sWyJwYXRoIix7ZDoiTTMuMjIgMTNIOS41bC41LTEgMiA0LjUgMi03IDEuNSAzLjVoNS4yNyJ9XV19KTt2YXIgakIsUmF0PXUoKCk9PntqQj1bWyJwYXRoIix7ZDoiTTExIDhjMi0zLTItMyAwLTYifV0sWyJwYXRoIix7ZDoiTTE1LjUgOGMyLTMtMi0zIDAtNiJ9XSxbInBhdGgiLHtkOiJNNiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTZ2LTQifV0sWyJwYXRoIix7ZDoiTTE4IDE2di00In1dLFsicGF0aCIse2Q6Ik0yMCA2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDMifV0sWyJwYXRoIix7ZDoiTTUgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTkgMjB2MiJ9XV19KTt2YXIgVUIsRmF0PXUoKCk9PntVQj1bWyJwYXRoIix7ZDoiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiJ9XV19KTt2YXIgV0IsQmF0PXUoKCk9PntXQj1bWyJwYXRoIix7ZDoiTTExIDE3djQifV0sWyJwYXRoIix7ZDoiTTE0IDN2OGEyIDIgMCAwIDAgMiAyaDUuODY1In1dLFsicGF0aCIse2Q6Ik0xNyAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xOCAxN2E0IDQgMCAwIDAgNC00IDggNiAwIDAgMC04LTYgNiA1IDAgMCAwLTYgNXYzYTIgMiAwIDAgMCAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yIDEwdjUifV0sWyJwYXRoIix7ZDoiTTYgM2gxNiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxNCJ9XSxbInBhdGgiLHtkOiJNOCAxM0gyIn1dXX0pO3ZhciBHQixIYXQ9dSgoKT0+e0dCPVtbInBhdGgiLHtkOiJtOSAxMS02IDZ2M2g5bDMtMyJ9XSxbInBhdGgiLHtkOiJtMjIgMTItNC42IDQuNmEyIDIgMCAwIDEtMi44IDBsLTUuMi01LjJhMiAyIDAgMCAxIDAtMi44TDE0IDQifV1dfSk7dmFyIFlCLHFhdD11KCgpPT57WUI9W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDEgMCA5LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDgifV0sWyJwYXRoIix7ZDoiTTMgM3Y1aDUifV0sWyJwYXRoIix7ZDoiTTEyIDd2NWw0IDIifV1dfSk7dmFyIEtCLFZhdD11KCgpPT57S0I9W1sicGF0aCIse2Q6Ik0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjI4LjAxLjUzLS4wOS43LS4yNyJ9XSxbInBhdGgiLHtkOiJNMTEuMTQgMjAuNTdjLjUyLjI0IDIuNDQgMS4xMiA0LjA4IDEuMzcuNDYuMDYuODYtLjI1LjktLjcxLjEyLTEuNTItLjMtMy40My0uNS00LjI4In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC43LS4yNiJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MyAyMC44MyAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTEuMTcuMS0yLjUuMDItMy45LS4yNSJ9XSxbInBhdGgiLHtkOiJNMjAuNTcgMTEuMTRjLjI0LjUyIDEuMTIgMi40NCAxLjM3IDQuMDguMDQuMy0uMDguNTktLjMxLjc1In1dLFsicGF0aCIse2Q6Ik00LjkzIDQuOTNhMTAgMTAgMCAwIDAtLjY3IDEzLjRjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODUuODUgMCAwIDAgLjQ4LS4yNCJ9XSxbInBhdGgiLHtkOiJNNS41MiAxNy45OWMxLjA1Ljk1IDIuOTEgMi40MiA0LjUgMy4xNWEuOC44IDAgMCAwIDEuMTMtLjY4Yy4yLTIuMzQtLjMzLTUuMy0xLjU3LTguMjgifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OGExMCAxMCAwIDAgMSA5Ljk4IDEuNThjLjQzLjM1LjQuOTYtLjEyIDEuMTctMS41LjYtNC4zLjk4LTYuMDcgMS4wNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBaQixqYXQ9dSgoKT0+e1pCPVtbInBhdGgiLHtkOiJNMTAuODIgMTYuMTJjMS42OS42IDMuOTEuNzkgNS4xOC44NS41NS4wMyAxLS40Mi45Ny0uOTctLjA2LTEuMjctLjI2LTMuNS0uODUtNS4xOCJ9XSxbInBhdGgiLHtkOiJNMTEuNSA2LjVjMS42NCAwIDUtLjM4IDYuNzEtMS4wNy41Mi0uMi41NS0uODIuMTItMS4xN0ExMCAxMCAwIDAgMCA0LjI2IDE4LjMzYy4zNS40My45Ni40IDEuMTctLjEyLjY5LTEuNzEgMS4wNy01LjA3IDEuMDctNi43MSAxLjM0LjQ1IDMuMS45IDQuODguNjJhLjg4Ljg4IDAgMCAwIC43My0uNzRjLjMtMi4xNC0uMTUtMy41LS42MS00Ljg4In1dLFsicGF0aCIse2Q6Ik0xNS42MiAxNi45NWMuMi44NS42MiAyLjc2LjUgNC4yOGEuNzcuNzcgMCAwIDEtLjkuNyAxNi42NCAxNi42NCAwIDAgMS00LjA4LTEuMzYifV0sWyJwYXRoIix7ZDoiTTE2LjEzIDIxLjA1YzEuNjUuNjMgMy42OC44NCA0Ljg3LjkxYS45LjkgMCAwIDAgLjk2LS45NiAxNy42OCAxNy42OCAwIDAgMC0uOS00Ljg3In1dLFsicGF0aCIse2Q6Ik0xNi45NCAxNS42MmMuODYuMiAyLjc3LjYyIDQuMjkuNWEuNzcuNzcgMCAwIDAgLjctLjkgMTYuNjQgMTYuNjQgMCAwIDAtMS4zNi00LjA4In1dLFsicGF0aCIse2Q6Ik0xNy45OSA1LjUyYTIwLjgyIDIwLjgyIDAgMCAxIDMuMTUgNC41LjguOCAwIDAgMS0uNjggMS4xM2MtMi4zMy4yLTUuMy0uMzItOC4yNy0xLjU3In1dLFsicGF0aCIse2Q6Ik00LjkzIDQuOTMgMyAzYS43LjcgMCAwIDEgMC0xIn1dLFsicGF0aCIse2Q6Ik05LjU4IDEyLjE4YzEuMjQgMi45OCAxLjc3IDUuOTUgMS41NyA4LjI4YS44LjggMCAwIDEtMS4xMy42OCAyMC44MiAyMC44MiAwIDAgMS00LjUtMy4xNSJ9XV19KTt2YXIgUUIsVWF0PXUoKCk9PntRQj1bWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xNCA5aC00In1dLFsicGF0aCIse2Q6Ik0xOCAxMWgyYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE4IDIxVjVhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTYifV1dfSk7dmFyIFhCLFdhdD11KCgpPT57WEI9W1sicGF0aCIse2Q6Ik0xMCAyMnYtNi41NyJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDNWMjIifV0sWyJwYXRoIix7ZDoiTTE1IDE2YTUgNSAwIDAgMC02IDAifV0sWyJwYXRoIix7ZDoiTTE2IDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgN2guMDEifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDdoLjAxIn1dLFsicmVjdCIse3g6IjQiLHk6IjIiLHdpZHRoOiIxNiIsaGVpZ2h0OiIyMCIscng6IjIifV1dfSk7dmFyIEpCLEdhdD11KCgpPT57SkI9W1sicGF0aCIse2Q6Ik01IDIyaDE0In1dLFsicGF0aCIse2Q6Ik01IDJoMTQifV0sWyJwYXRoIix7ZDoiTTE3IDIydi00LjE3MmEyIDIgMCAwIDAtLjU4Ni0xLjQxNEwxMiAxMmwtNC40MTQgNC40MTRBMiAyIDAgMCAwIDcgMTcuODI4VjIyIn1dLFsicGF0aCIse2Q6Ik03IDJ2NC4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRMMTIgMTJsNC40MTQtNC40MTRBMiAyIDAgMCAwIDE3IDYuMTcyVjIifV1dfSk7dmFyIGVILFlhdD11KCgpPT57ZUg9W1sicGF0aCIse2Q6Ik04LjYyIDEzLjhBMi4yNSAyLjI1IDAgMSAxIDEyIDEwLjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHoifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV1dfSk7dmFyIHRILEthdD11KCgpPT57dEg9W1sicGF0aCIse2Q6Ik0xMCAxMlY4Ljk2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJWOC45NjQifV0sWyJwYXRoIix7ZDoiTTE1IDEyYTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0yLTJ2LTJhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTguNSAyMUg1YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAyaC01YTIgMiAwIDAgMS0yLTJ2LTIifV1dfSk7dmFyIHJILFphdD11KCgpPT57ckg9W1sicGF0aCIse2Q6Ik0xMi4zNSAyMUg1YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIC43MS0xLjUzbDctNmEyIDIgMCAwIDEgMi41OCAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2Mi4zNSJ9XSxbInBhdGgiLHtkOiJNMTQuOCAxMi40QTEgMSAwIDAgMCAxNCAxMmgtNGExIDEgMCAwIDAtMSAxdjgifV0sWyJwYXRoIix7ZDoiTTE1IDE4aDYifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV1dfSk7dmFyIGFILFFhdD11KCgpPT57YUg9W1sicGF0aCIse2Q6Ik05LjUgMTMuODY2YTQgNCAwIDAgMSA1IC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dLFsicGF0aCIse2Q6Ik03IDEwLjc1NGE4IDggMCAwIDEgMTAgMCJ9XV19KTt2YXIgbzgsWGF0PXUoKCk9PntvOD1bWyJwYXRoIix7ZDoiTTE1IDIxdi04YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXY4In1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dXX0pO3ZhciBsOCxKYXQ9dSgoKT0+e2w4PVtbInBhdGgiLHtkOiJNMTIgMTdjNSAwIDgtMi42OSA4LTZINGMwIDMuMzEgMyA2IDggNm0tNCA0aDhtLTQtM3YzTTUuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAifV0sWyJwYXRoIix7ZDoiTTEyLjE0IDExYTMuNSAzLjUgMCAxIDEgNi43MSAwIn1dLFsicGF0aCIse2Q6Ik0xNS41IDYuNWEzLjUgMy41IDAgMSAwLTcgMCJ9XV19KTt2YXIgYzgsZWl0PXUoKCk9PntjOD1bWyJwYXRoIix7ZDoibTcgMTEgNC4wOCAxMC4zNWExIDEgMCAwIDAgMS44NCAwTDE3IDExIn1dLFsicGF0aCIse2Q6Ik0xNyA3QTUgNSAwIDAgMCA3IDcifV0sWyJwYXRoIix7ZDoiTTE3IDdhMiAyIDAgMCAxIDAgNEg3YTIgMiAwIDAgMSAwLTQifV1dfSk7dmFyIGlILHRpdD11KCgpPT57aUg9W1sicGF0aCIse2Q6Ik0xMy41IDhoLTMifV0sWyJwYXRoIix7ZDoibTE1IDItMSAyaDNhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYuODk5IDIyQTUgNSAwIDAgMCA3LjEgMjIifV0sWyJwYXRoIix7ZDoibTkgMiAzIDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMyJ9XV19KTt2YXIgc0gscml0PXUoKCk9PntzSD1bWyJwYXRoIix7ZDoiTTE2IDEwaDIifV0sWyJwYXRoIix7ZDoiTTE2IDE0aDIifV0sWyJwYXRoIix7ZDoiTTYuMTcgMTVhMyAzIDAgMCAxIDUuNjYgMCJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTEiLHI6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgbkgsYWl0PXUoKCk9PntuSD1bWyJwYXRoIix7ZDoiTTEwLjMgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjEwbC0zLjEtMy4xYTIgMiAwIDAgMC0yLjgxNC4wMTRMNiAyMSJ9XSxbInBhdGgiLHtkOiJtMTQgMTkgMyAzdi01LjUifV0sWyJwYXRoIix7ZDoibTE3IDIyIDMtMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV19KTt2YXIgb0gsaWl0PXUoKCk9PntvSD1bWyJwYXRoIix7ZDoiTTIxIDl2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMjIiLHkxOiI1Iix5MjoiNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSJ9XV19KTt2YXIgbEgsc2l0PXUoKCk9PntsSD1bWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XSxbInBhdGgiLHtkOiJNMTAuNDEgMTAuNDFhMiAyIDAgMSAxLTIuODMtMi44MyJ9XSxbImxpbmUiLHt4MToiMTMuNSIseDI6IjYiLHkxOiIxMy41Iix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMjEiLHkxOiIxMiIseTI6IjE1In1dLFsicGF0aCIse2Q6Ik0zLjU5IDMuNTlBMS45OSAxLjk5IDAgMCAwIDMgNXYxNGEyIDIgMCAwIDAgMiAyaDE0Yy41NSAwIDEuMDUyLS4yMiAxLjQxLS41OSJ9XSxbInBhdGgiLHtkOiJNMjEgMTVWNWEyIDIgMCAwIDAtMi0ySDkifV1dfSk7dmFyIGNILG5pdD11KCgpPT57Y0g9W1sicGF0aCIse2Q6Ik0xNSAxNS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dLFsicGF0aCIse2Q6Ik0yMSAxMi4xN1Y1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XSxbInBhdGgiLHtkOiJtNiAyMSA1LTUifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dfSk7dmFyIGRILG9pdD11KCgpPT57ZEg9W1sicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuNVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNy41In1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciB1SCxsaXQ9dSgoKT0+e3VIPVtbInBhdGgiLHtkOiJNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxIn1dLFsicGF0aCIse2Q6Im0xNCAxOS41IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDIydi01LjUifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dfSk7dmFyIHBILGNpdD11KCgpPT57cEg9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNMTcgMjFoMmEyIDIgMCAwIDAgMi0yIn1dLFsicGF0aCIse2Q6Ik0yMSAxMnYzIn1dLFsicGF0aCIse2Q6Im0yMSAzLTUgNSJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJtNSAyMSA0LjE0NC00LjE0NGExLjIxIDEuMjEgMCAwIDEgMS43MTIgMEwxMyAxOSJ9XSxbInBhdGgiLHtkOiJNOSAzaDMifV0sWyJyZWN0Iix7eDoiMyIseToiMTEiLHdpZHRoOiIxMCIsaGVpZ2h0OiIxMCIscng6IjEifV1dfSk7dmFyIGZILGRpdD11KCgpPT57Zkg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dXX0pO3ZhciBoSCx1aXQ9dSgoKT0+e2hIPVtbInBhdGgiLHtkOiJtMjIgMTEtMS4yOTYtMS4yOTZhMi40IDIuNCAwIDAgMC0zLjQwOCAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik00IDhhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTIifV0sWyJjaXJjbGUiLHtjeDoiMTMiLGN5OiI3IixyOiIxIixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJyZWN0Iix7eDoiOCIseToiMiIsd2lkdGg6IjE0IixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgbUgscGl0PXUoKCk9PnttSD1bWyJwYXRoIix7ZDoiTTEyIDN2MTIifV0sWyJwYXRoIix7ZDoibTggMTEgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNOCA1SDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC00In1dXX0pO3ZhciBnSCxmaXQ9dSgoKT0+e2dIPVtbInBvbHlsaW5lIix7cG9pbnRzOiIyMiAxMiAxNiAxMiAxNCAxNSAxMCAxNSA4IDEyIDIgMTIifV0sWyJwYXRoIix7ZDoiTTUuNDUgNS4xMSAyIDEydjZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi02bC0zLjQ1LTYuODlBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeiJ9XV19KTt2YXIgYkgsaGl0PXUoKCk9PntiSD1bWyJwYXRoIix7ZDoiTTYgM2gxMiJ9XSxbInBhdGgiLHtkOiJNNiA4aDEyIn1dLFsicGF0aCIse2Q6Im02IDEzIDguNSA4In1dLFsicGF0aCIse2Q6Ik02IDEzaDMifV0sWyJwYXRoIix7ZDoiTTkgMTNjNi42NjcgMCA2LjY2Ny0xMCAwLTEwIn1dXX0pO3ZhciB4SCxtaXQ9dSgoKT0+e3hIPVtbInBhdGgiLHtkOiJNNiAxNmM1IDAgNy04IDEyLThhNCA0IDAgMCAxIDAgOGMtNSAwLTctOC0xMi04YTQgNCAwIDEgMCAwIDgifV1dfSk7dmFyIHZILGdpdD11KCgpPT57dkg9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgOGguMDEifV1dfSk7dmFyIHlILGJpdD11KCgpPT57eUg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgN2guMDEifV0sWyJwYXRoIix7ZDoiTTE3IDdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTdoLjAxIn1dXX0pO3ZhciB3SCx4aXQ9dSgoKT0+e3dIPVtbImxpbmUiLHt4MToiMTkiLHgyOiIxMCIseTE6IjQiLHkyOiI0In1dLFsibGluZSIse3gxOiIxNCIseDI6IjUiLHkxOiIyMCIseTI6IjIwIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI0Iix5MjoiMjAifV1dfSk7dmFyIGtILHZpdD11KCgpPT57a0g9W1sicGF0aCIse2Q6Im0xNiAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yMCAxMGE4IDggMCAxIDAtOCA4aDgifV1dfSk7dmFyIFNILHlpdD11KCgpPT57U0g9W1sicGF0aCIse2Q6Ik00IDEwYTggOCAwIDEgMSA4IDhINCJ9XSxbInBhdGgiLHtkOiJtOCAyMi00LTQgNC00In1dXX0pO3ZhciBNSCx3aXQ9dSgoKT0+e01IPVtbInBhdGgiLHtkOiJNMTIgOS41VjIxbTAtMTEuNUw2IDNtNiA2LjVMMTggMyJ9XSxbInBhdGgiLHtkOiJNNiAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNNiAxMWgxMiJ9XV19KTt2YXIgQ0gsa2l0PXUoKCk9PntDSD1bWyJwYXRoIix7ZDoiTTIxIDE3YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi0yWiJ9XSxbInBhdGgiLHtkOiJNNiAxNXYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTVWOSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIHpILFNpdD11KCgpPT57ekg9W1sicGF0aCIse2Q6Ik01IDN2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDN2OCJ9XSxbInBhdGgiLHtkOiJNMTkgM3YxOCJ9XV19KTt2YXIgX0gsTWl0PXUoKCk9PntfSD1bWyJwYXRoIix7ZDoiTTE4IDE3YTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNMjAuOTcgMy42MWEuNDUuNDUgMCAwIDAtLjU4LS41OEMxMC4yIDYuNiA2LjYgMTAuMiAzLjAzIDIwLjM5YS40NS40NSAwIDAgMCAuNTguNThDMTMuOCAxNy40IDE3LjQgMTMuOCAyMC45NyAzLjYxIn1dLFsicGF0aCIse2Q6Im02LjcwNyA2LjcwNyAxMC41ODYgMTAuNTg2In1dLFsicGF0aCIse2Q6Ik03IDVhMiAyIDAgMSAwLTIgMmgxYTEgMSAwIDAgMCAxLTF6In1dXX0pO3ZhciBUSCxDaXQ9dSgoKT0+e1RIPVtbInBhdGgiLHtkOiJNMi41ODYgMTcuNDE0QTIgMiAwIDAgMCAyIDE4LjgyOFYyMWExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaC4xNzJhMiAyIDAgMCAwIDEuNDE0LS41ODZsLjgxNC0uODE0YTYuNSA2LjUgMCAxIDAtNC00eiJ9XSxbImNpcmNsZSIse2N4OiIxNi41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBMSCx6aXQ9dSgoKT0+e0xIPVtbInBhdGgiLHtkOiJNMTIuNCAyLjdhMi41IDIuNSAwIDAgMSAzLjQgMGw1LjUgNS41YTIuNSAyLjUgMCAwIDEgMCAzLjRsLTMuNyAzLjdhMi41IDIuNSAwIDAgMS0zLjQgMEw4LjcgOS44YTIuNSAyLjUgMCAwIDEgMC0zLjR6In1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJtOS40IDEwLjYtNi44MTQgNi44MTRBMiAyIDAgMCAwIDIgMTguODI4VjIxYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoLjE3MmEyIDIgMCAwIDAgMS40MTQtLjU4NmwuODE0LS44MTQifV1dfSk7dmFyIERILF9pdD11KCgpPT57REg9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTYgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTAgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2NCJ9XV19KTt2YXIgJEgsVGl0PXUoKCk9PnskSD1bWyJwYXRoIix7ZDoibTE1LjUgNy41IDIuMyAyLjNhMSAxIDAgMCAwIDEuNCAwbDIuMS0yLjFhMSAxIDAgMCAwIDAtMS40TDE5IDQifV0sWyJwYXRoIix7ZDoibTIxIDItOS42IDkuNiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNS41IixyOiI1LjUifV1dfSk7dmFyIEFILExpdD11KCgpPT57QUg9W1sicGF0aCIse2Q6Ik0gMjAgNCBBMiAyIDAgMCAxIDIyIDYifV0sWyJwYXRoIix7ZDoiTSAyMiA2IEwgMjIgMTYuNDEifV0sWyJwYXRoIix7ZDoiTSA3IDE2IEwgMTYgMTYifV0sWyJwYXRoIix7ZDoiTSA5LjY5IDQgTCAyMCA0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV1dfSk7dmFyIEVILERpdD11KCgpPT57RUg9W1sicGF0aCIse2Q6Ik0xMCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxNmgxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XV19KTt2YXIgSUgsJGl0PXUoKCk9PntJSD1bWyJwYXRoIix7ZDoiTTEyIDJ2NSJ9XSxbInBhdGgiLHtkOiJNMTQuODI5IDE1Ljk5OGEzIDMgMCAxIDEtNS42NTggMCJ9XSxbInBhdGgiLHtkOiJNMjAuOTIgMTQuNjA2QTEgMSAwIDAgMSAyMCAxNkg0YTEgMSAwIDAgMS0uOTItMS4zOTRsMy03QTEgMSAwIDAgMSA3IDdoMTBhMSAxIDAgMCAxIC45Mi42MDZ6In1dXX0pO3ZhciBQSCxBaXQ9dSgoKT0+e1BIPVtbInBhdGgiLHtkOiJNMTAuMjkzIDIuMjkzYTEgMSAwIDAgMSAxLjQxNCAwbDIuNSAyLjUgNS45OTQgMS4yMjdhMSAxIDAgMCAxIC41MDYgMS42ODdsLTcgN2ExIDEgMCAwIDEtMS42ODctLjUwNmwtMS4yMjctNS45OTQtMi41LTIuNWExIDEgMCAwIDEgMC0xLjQxNHoifV0sWyJwYXRoIix7ZDoibTE0LjIwNyA0Ljc5My0zLjQxNCAzLjQxNCJ9XSxbInBhdGgiLHtkOiJNMyAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtOS4wODYgNi41LTQuNzkzIDQuNzkzYTEgMSAwIDAgMC0uMTggMS4xN0w3IDE4In1dXX0pO3ZhciBOSCxFaXQ9dSgoKT0+e05IPVtbInBhdGgiLHtkOiJNMTIgMTB2MTIifV0sWyJwYXRoIix7ZDoiTTE3LjkyOSA3LjYyOUExIDEgMCAwIDEgMTcgOUg3YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgOSAyaDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNOSAyMmg2In1dXX0pO3ZhciBPSCxJaXQ9dSgoKT0+e09IPVtbInBhdGgiLHtkOiJNMTkuOTI5IDE4LjYyOUExIDEgMCAwIDEgMTkgMjBIOWExIDEgMCAwIDEtLjkyOC0xLjM3MWwyLTVBMSAxIDAgMCAxIDExIDEzaDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNNiAzYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik04IDZoNGEyIDIgMCAwIDEgMiAydjUifV1dfSk7dmFyIFJILFBpdD11KCgpPT57Ukg9W1sicGF0aCIse2Q6Ik0xOS45MjkgOS42MjlBMSAxIDAgMCAxIDE5IDExSDlhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSAxMSA0aDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNNiAxNWEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMkg1YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTggMThoNGEyIDIgMCAwIDAgMi0ydi01In1dXX0pO3ZhciBGSCxOaXQ9dSgoKT0+e0ZIPVtbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNNC4wNzcgMTAuNjE1QTEgMSAwIDAgMCA1IDEyaDE0YTEgMSAwIDAgMCAuOTIzLTEuMzg1bC0zLjA3Ny03LjM4NEEyIDIgMCAwIDAgMTUgMkg5YTIgMiAwIDAgMC0xLjg0NiAxLjIzWiJ9XSxbInBhdGgiLHtkOiJNOCAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xeiJ9XV19KTt2YXIgQkgsT2l0PXUoKCk9PntCSD1bWyJwYXRoIix7ZDoibTEyIDggNi0zLTYtM3YxMCJ9XSxbInBhdGgiLHtkOiJtOCAxMS45OS01LjUgMy4xNGExIDEgMCAwIDAgMCAxLjc0bDguNSA0Ljg2YTIgMiAwIDAgMCAyIDBsOC41LTQuODZhMSAxIDAgMCAwIDAtMS43NEwxNiAxMiJ9XSxbInBhdGgiLHtkOiJtNi40OSAxMi44NSAxMS4wMiA2LjMifV0sWyJwYXRoIix7ZDoiTTE3LjUxIDEyLjg1IDYuNSAxOS4xNSJ9XV19KTt2YXIgSEgsUml0PXUoKCk9PntISD1bWyJwYXRoIix7ZDoiTTEwIDE4di03In1dLFsicGF0aCIse2Q6Ik0xMS4xMiAyLjE5OGEyIDIgMCAwIDEgMS43Ni4wMDZsNy44NjYgMy44NDdjLjQ3Ni4yMzMuMzEuOTQ5LS4yMi45NDlIMy40NzRjLS41MyAwLS42OTUtLjcxNi0uMjItLjk0OXoifV0sWyJwYXRoIix7ZDoiTTE0IDE4di03In1dLFsicGF0aCIse2Q6Ik0xOCAxOHYtNyJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XSxbInBhdGgiLHtkOiJNNiAxOHYtNyJ9XV19KTt2YXIgcUgsRml0PXUoKCk9PntxSD1bWyJwYXRoIix7ZDoibTUgOCA2IDYifV0sWyJwYXRoIix7ZDoibTQgMTQgNi02IDItMyJ9XSxbInBhdGgiLHtkOiJNMiA1aDEyIn1dLFsicGF0aCIse2Q6Ik03IDJoMSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItNS0xMC01IDEwIn1dLFsicGF0aCIse2Q6Ik0xNCAxOGg2In1dXX0pO3ZhciBWSCxCaXQ9dSgoKT0+e1ZIPVtbInBhdGgiLHtkOiJNMiAyMGgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dLFsicmVjdCIse3g6IjMiLHk6IjQiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIGQ4LEhpdD11KCgpPT57ZDg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiNCIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyMCIseTI6IjIwIn1dXX0pO3ZhciBqSCxxaXQ9dSgoKT0+e2pIPVtbInBhdGgiLHtkOiJNMTggNWEyIDIgMCAwIDEgMiAydjguNTI2YTIgMiAwIDAgMCAuMjEyLjg5N2wxLjA2OCAyLjEyN2ExIDEgMCAwIDEtLjkgMS40NUgzLjYyYTEgMSAwIDAgMS0uOS0xLjQ1bDEuMDY4LTIuMTI3QTIgMiAwIDAgMCA0IDE1LjUyNlY3YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik0yMC4wNTQgMTUuOTg3SDMuOTQ2In1dXX0pO3ZhciBVSCxWaXQ9dSgoKT0+e1VIPVtbInBhdGgiLHtkOiJNNyAyMmE1IDUgMCAwIDEtMi00In1dLFsicGF0aCIse2Q6Ik03IDE2LjkzYy45Ni40MyAxLjk2Ljc0IDIuOTkuOTEifV0sWyJwYXRoIix7ZDoiTTMuMzQgMTRBNi44IDYuOCAwIDAgMSAyIDEwYzAtNC40MiA0LjQ4LTggMTAtOHMxMCAzLjU4IDEwIDhhNy4xOSA3LjE5IDAgMCAxLS4zMyAyIn1dLFsicGF0aCIse2Q6Ik01IDE4YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHoifV0sWyJwYXRoIix7ZDoiTTE0LjMzIDIyaC0uMDlhLjM1LjM1IDAgMCAxLS4yNC0uMzJ2LTEwYS4zNC4zNCAwIDAgMSAuMzMtLjM0Yy4wOCAwIC4xNS4wMy4yMS4wOGw3LjM0IDZhLjMzLjMzIDAgMCAxLS4yMS41OWgtNC40OWwtMi41NyAzLjg1YS4zNS4zNSAwIDAgMS0uMjguMTR6In1dXX0pO3ZhciBXSCxqaXQ9dSgoKT0+e1dIPVtbInBhdGgiLHtkOiJNMy43MDQgMTQuNDY3YTEwIDggMCAxIDEgMy4xMTUgMi4zNzUifV0sWyJwYXRoIix7ZDoiTTcgMjJhNSA1IDAgMCAxLTItMy45OTQifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE2IixyOiIyIn1dXX0pO3ZhciBHSCxVaXQ9dSgoKT0+e0dIPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTggMTNhNiA2IDAgMCAxLTYgNSA2IDYgMCAwIDEtNi01aDEyWiJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkuMDEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjkiLHkyOiI5In1dXX0pO3ZhciBZSCxXaXQ9dSgoKT0+e1lIPVtbInBhdGgiLHtkOiJNMTMgMTMuNzRhMiAyIDAgMCAxLTIgMEwyLjUgOC44N2ExIDEgMCAwIDEgMC0xLjc0TDExIDIuMjZhMiAyIDAgMCAxIDIgMGw4LjUgNC44N2ExIDEgMCAwIDEgMCAxLjc0eiJ9XSxbInBhdGgiLHtkOiJtMjAgMTQuMjg1IDEuNS44NDVhMSAxIDAgMCAxIDAgMS43NEwxMyAyMS43NGEyIDIgMCAwIDEtMiAwbC04LjUtNC44N2ExIDEgMCAwIDEgMC0xLjc0bDEuNS0uODQ1In1dXX0pO3ZhciB1OCxHaXQ9dSgoKT0+e3U4PVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAxLjY2IDBsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44M3oifV0sWyJwYXRoIix7ZDoiTTIgMTJhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDguNTgtMy45QTEgMSAwIDAgMCAyMiAxMiJ9XSxbInBhdGgiLHtkOiJNMiAxN2ExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDE3In1dXX0pO3ZhciBLSCxZaXQ9dSgoKT0+e0tIPVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44MzF6In1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0xOSAxNHY2In1dLFsicGF0aCIse2Q6Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIC44MjUuMTc4In1dLFsicGF0aCIse2Q6Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGwyLjExNi0uOTYyIn1dXX0pO3ZhciBaSCxLaXQ9dSgoKT0+e1pIPVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjE0IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV1dfSk7dmFyIFFILFppdD11KCgpPT57UUg9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTQgNGg3In1dLFsicGF0aCIse2Q6Ik0xNCA5aDcifV0sWyJwYXRoIix7ZDoiTTE0IDE1aDcifV0sWyJwYXRoIix7ZDoiTTE0IDIwaDcifV1dfSk7dmFyIFhILFFpdD11KCgpPT57WEg9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjkiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIxNCIseToiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XV19KTt2YXIgSkgsWGl0PXUoKCk9PntKSD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dXX0pO3ZhciBlcSxKaXQ9dSgoKT0+e2VxPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIxNCIscng6IjEifV1dfSk7dmFyIHRxLGVzdD11KCgpPT57dHE9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiOSIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNyIseDoiMTYiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgcnEsdHN0PXUoKCk9PntycT1bWyJwYXRoIix7ZDoiTTIgMjJjMS4yNS0uOTg3IDIuMjctMS45NzUgMy45LTIuMmE1LjU2IDUuNTYgMCAwIDEgMy44IDEuNSA0IDQgMCAwIDAgNi4xODctMi4zNTMgMy41IDMuNSAwIDAgMCAzLjY5LTUuMTE2QTMuNSAzLjUgMCAwIDAgMjAuOTUgOCAzLjUgMy41IDAgMSAwIDE2IDMuMDVhMy41IDMuNSAwIDAgMC01LjgzMSAxLjM3MyAzLjUgMy41IDAgMCAwLTUuMTE2IDMuNjkgNCA0IDAgMCAwLTIuMzQ4IDYuMTU1QzMuNDk5IDE1LjQyIDQuNDA5IDE2LjcxMiA0LjIgMTguMSAzLjkyNiAxOS43NDMgMy4wMTQgMjAuNzMyIDIgMjIifV0sWyJwYXRoIix7ZDoiTTIgMjIgMTcgNyJ9XV19KTt2YXIgYXEscnN0PXUoKCk9PnthcT1bWyJwYXRoIix7ZDoiTTExIDIwQTcgNyAwIDAgMSA5LjggNi4xQzE1LjUgNSAxNyA0LjQ4IDE5IDJjMSAyIDIgNC4xOCAyIDggMCA1LjUtNC43OCAxMC0xMCAxMFoifV0sWyJwYXRoIix7ZDoiTTIgMjFjMC0zIDEuODUtNS4zNiA1LjA4LTZDOS41IDE0LjUyIDEyIDEzIDEzIDEyIn1dXX0pO3ZhciBpcSxhc3Q9dSgoKT0+e2lxPVtbInBhdGgiLHtkOiJNMTYgMTJoM2EyIDIgMCAwIDAgMS45MDItMS4zOGwxLjA1Ni0zLjMzM0ExIDEgMCAwIDAgMjEgNkgzYTEgMSAwIDAgMC0uOTU4IDEuMjg3bDEuMDU2IDMuMzM0QTIgMiAwIDAgMCA1IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjEyIix4OiI4Iix5OiIxMCIscng6IjEifV1dfSk7dmFyIHNxLGlzdD11KCgpPT57c3E9W1sicGF0aCIse2Q6Ik03IDJhMSAxIDAgMCAwLS44IDEuNiAxNCAxNCAwIDAgMSAwIDE2LjhBMSAxIDAgMCAwIDcgMjJoMTBhMSAxIDAgMCAwIC44LTEuNiAxNCAxNCAwIDAgMSAwLTE2LjhBMSAxIDAgMCAwIDE3IDJ6In1dXX0pO3ZhciBucSxzc3Q9dSgoKT0+e25xPVtbInBhdGgiLHtkOiJNMTMuNDMzIDJhMSAxIDAgMCAxIC44MjQuNDQ4IDE4IDE4IDAgMCAxIDAgMTkuMTA0IDEgMSAwIDAgMS0uODI0LjQ0OGgtMi44NjZhMSAxIDAgMCAxLS44MjQtLjQ0OCAxOCAxOCAwIDAgMSAwLTE5LjEwNEExIDEgMCAwIDEgMTAuNTY3IDJ6In1dXX0pO3ZhciBvcSxuc3Q9dSgoKT0+e29xPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMjAuNCAxOC45Yy4yLjUtLjEgMS4xLS42IDEuM2wtMS45LjdjLS41LjItMS4xLS4xLTEuMy0uNkwxMS4xIDUuMWMtLjItLjUuMS0xLjEuNi0xLjNsMS45LS43Yy41LS4yIDEuMS4xIDEuMy42WiJ9XV19KTt2YXIgbHEsb3N0PXUoKCk9PntscT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyA0LjI0IDQuMjQifV0sWyJwYXRoIix7ZDoibTE0LjgzIDkuMTcgNC4yNC00LjI0In1dLFsicGF0aCIse2Q6Im0xNC44MyAxNC44MyA0LjI0IDQuMjQifV0sWyJwYXRoIix7ZDoibTkuMTcgMTQuODMtNC4yNCA0LjI0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV1dfSk7dmFyIGNxLGxzdD11KCgpPT57Y3E9W1sicGF0aCIse2Q6Im0xNiA2IDQgMTQifV0sWyJwYXRoIix7ZDoiTTEyIDZ2MTQifV0sWyJwYXRoIix7ZDoiTTggOHYxMiJ9XSxbInBhdGgiLHtkOiJNNCA0djE2In1dXX0pO3ZhciBkcSxjc3Q9dSgoKT0+e2RxPVtbInBhdGgiLHtkOiJNMTQgMTJoMnY4In1dLFsicGF0aCIse2Q6Ik0xNCAyMGg0In1dLFsicGF0aCIse2Q6Ik02IDEyaDQifV0sWyJwYXRoIix7ZDoiTTYgMjBoNCJ9XSxbInBhdGgiLHtkOiJNOCAyMFY4YTQgNCAwIDAgMSA3LjQ2NC0yIn1dXX0pO3ZhciB1cSxkc3Q9dSgoKT0+e3VxPVtbInBhdGgiLHtkOiJNMTYuOCAxMS4yYy44LS45IDEuMi0yIDEuMi0zLjJhNiA2IDAgMCAwLTkuMy01In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTYuMyA2LjNhNC42NyA0LjY3IDAgMCAwIDEuMiA1LjJjLjcuNyAxLjMgMS41IDEuNSAyLjUifV0sWyJwYXRoIix7ZDoiTTkgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTAgMjJoNCJ9XV19KTt2YXIgcHEsdXN0PXUoKCk9PntwcT1bWyJwYXRoIix7ZDoiTTE1IDE0Yy4yLTEgLjctMS43IDEuNS0yLjUgMS0uOSAxLjUtMi4yIDEuNS0zLjVBNiA2IDAgMCAwIDYgOGMwIDEgLjIgMi4yIDEuNSAzLjUuNy43IDEuMyAxLjUgMS41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dXX0pO3ZhciBmcSxwc3Q9dSgoKT0+e2ZxPVtbInBhdGgiLHtkOiJNIDMgMTIgTCAxNSAxMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBocSxmc3Q9dSgoKT0+e2hxPVtbInBhdGgiLHtkOiJNNyAzLjVjNS0yIDcgMi41IDMgNEMxLjUgMTAgMiAxNSA1IDE2YzUgMiA5LTEwIDE0LTdzLjUgMTMuNS00IDEyYy01LTIuNS41LTExIDYtMiJ9XV19KTt2YXIgbXEsaHN0PXUoKCk9PnttcT1bWyJwYXRoIix7ZDoiTTExIDVoMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMTkgNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoiTTMgNWgyIn1dXX0pO3ZhciBncSxtc3Q9dSgoKT0+e2dxPVtbInBhdGgiLHtkOiJNOSAxN0g3QTUgNSAwIDAgMSA3IDcifV0sWyJwYXRoIix7ZDoiTTE1IDdoMmE1IDUgMCAwIDEgNCA4In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTIiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIGJxLGdzdD11KCgpPT57YnE9W1sicGF0aCIse2Q6Ik05IDE3SDdBNSA1IDAgMCAxIDcgN2gyIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMSAxIDAgMTBoLTIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIHhxLGJzdD11KCgpPT57eHE9W1sicGF0aCIse2Q6Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Ik0xNCAxMWE1IDUgMCAwIDAtNy41NC0uNTRsLTMgM2E1IDUgMCAwIDAgNy4wNyA3LjA3bDEuNzEtMS43MSJ9XV19KTt2YXIgdnEseHN0PXUoKCk9Pnt2cT1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTlIMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggMiAyIDQtNCJ9XV19KTt2YXIgeXEsdnN0PXUoKCk9Pnt5cT1bWyJwYXRoIix7ZDoiTTEzIDVoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMyAxNyAyIDIgNC00In1dLFsicGF0aCIse2Q6Im0zIDcgMiAyIDQtNCJ9XV19KTt2YXIgd3EseXN0PXUoKCk9Pnt3cT1bWyJwYXRoIix7ZDoiTTMgNWg4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAzLTMgMyAzIn1dXX0pO3ZhciBrcSx3c3Q9dSgoKT0+e2txPVtbInBhdGgiLHtkOiJNMyA1aDgifV0sWyJwYXRoIix7ZDoiTTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWg4In1dLFsicGF0aCIse2Q6Im0xNSA4IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE1IDE2IDMgMyAzLTMifV1dfSk7dmFyIFNxLGtzdD11KCgpPT57U3E9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTE2IDEySDMifV0sWyJwYXRoIix7ZDoiTTkgMTlIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTYtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMjEgNXYxMmEyIDIgMCAwIDEtMiAyaC02In1dXX0pO3ZhciBNcSxTc3Q9dSgoKT0+e01xPVtbInBhdGgiLHtkOiJNMTAgNWgxMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTJoMTEifV0sWyJwYXRoIix7ZDoiTTEwIDE5aDExIn1dLFsicGF0aCIse2Q6Im0zIDEwIDMtMy0zLTMifV0sWyJwYXRoIix7ZDoibTMgMjAgMy0zLTMtMyJ9XV19KTt2YXIgQ3EsTXN0PXUoKCk9PntDcT1bWyJwYXRoIix7ZDoiTTEyIDVIMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDhWMiJ9XV19KTt2YXIgenEsQ3N0PXUoKCk9Pnt6cT1bWyJwYXRoIix7ZDoiTTIgNWgyMCJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dXX0pO3ZhciBVNCx6c3Q9dSgoKT0+e1U0PVtbInBhdGgiLHtkOiJNMjEgNUgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDExIn1dLFsicGF0aCIse2Q6Im03IDgtNCA0IDQgNCJ9XV19KTt2YXIgVzQsX3N0PXUoKCk9PntXND1bWyJwYXRoIix7ZDoiTTIxIDVIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDEySDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxOUgxMSJ9XSxbInBhdGgiLHtkOiJtMyA4IDQgNC00IDQifV1dfSk7dmFyIF9xLFRzdD11KCgpPT57X3E9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXX0pO3ZhciBUcSxMc3Q9dSgoKT0+e1RxPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNlY1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dfSk7dmFyIExxLERzdD11KCgpPT57THE9W1sicGF0aCIse2Q6Ik0xMSA1aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTloMTAifV0sWyJwYXRoIix7ZDoiTTQgNGgxdjUifV0sWyJwYXRoIix7ZDoiTTQgOWgyIn1dLFsicGF0aCIse2Q6Ik02LjUgMjBIMy40YzAtMSAyLjYtMS45MjUgMi42LTMuNWExLjUgMS41IDAgMCAwLTIuNi0xLjAyIn1dXX0pO3ZhciBEcSwkc3Q9dSgoKT0+e0RxPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xOCA5djYifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXX0pO3ZhciAkcSxBc3Q9dSgoKT0+eyRxPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik03IDEySDMifV0sWyJwYXRoIix7ZDoiTTcgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTIgMThhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjVjLTEuMzMgMC0yLjU0LjU0LTMuNDEgMS40MUwxMSAxNCJ9XSxbInBhdGgiLHtkOiJNMTEgMTB2NGg0In1dXX0pO3ZhciBBcSxFc3Q9dSgoKT0+e0FxPVtbInBhdGgiLHtkOiJNMyA1aDYifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTMifV0sWyJwYXRoIix7ZDoiTTMgMTloMTMifV0sWyJwYXRoIix7ZDoibTE2IDgtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWN2EyIDIgMCAwIDAtMi0yaC02In1dXX0pO3ZhciBFcSxJc3Q9dSgoKT0+e0VxPVtbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Im0zIDE3IDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIElxLFBzdD11KCgpPT57SXE9W1sicGF0aCIse2Q6Ik04IDVoMTMifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAwIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTJhMiAyIDAgMCAwIDIgMmgzIn1dXX0pO3ZhciBQcSxOc3Q9dSgoKT0+e1BxPVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNS41IDkuNSA1IDUifV0sWyJwYXRoIix7ZDoibTIwLjUgOS41LTUgNSJ9XV19KTt2YXIgTnEsT3N0PXUoKCk9PntOcT1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTIuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiJ9XV19KTt2YXIgT3EsUnN0PXUoKCk9PntPcT1bWyJwYXRoIix7ZDoiTTMgNWguMDEifV0sWyJwYXRoIix7ZDoiTTMgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDE5aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA1aDEzIn1dLFsicGF0aCIse2Q6Ik04IDEyaDEzIn1dLFsicGF0aCIse2Q6Ik04IDE5aDEzIn1dXX0pO3ZhciBwOCxGc3Q9dSgoKT0+e3A4PVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYifV1dfSk7dmFyIFJxLEJzdD11KCgpPT57UnE9W1sicGF0aCIse2Q6Ik0yMiAxMmExIDEgMCAwIDEtMTAgMCAxIDEgMCAwIDAtMTAgMCJ9XSxbInBhdGgiLHtkOiJNNyAyMC43YTEgMSAwIDEgMSA1LTguNyAxIDEgMCAxIDAgNS04LjYifV0sWyJwYXRoIix7ZDoiTTcgMy4zYTEgMSAwIDEgMSA1IDguNiAxIDEgMCAxIDAgNSA4LjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIEZxLEhzdD11KCgpPT57RnE9W1sicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoibTE2LjIgNy44IDIuOS0yLjkifV0sWyJwYXRoIix7ZDoiTTE4IDEyaDQifV0sWyJwYXRoIix7ZDoibTE2LjIgMTYuMiAyLjkgMi45In1dLFsicGF0aCIse2Q6Ik0xMiAxOHY0In1dLFsicGF0aCIse2Q6Im00LjkgMTkuMSAyLjktMi45In1dLFsicGF0aCIse2Q6Ik0yIDEyaDQifV0sWyJwYXRoIix7ZDoibTQuOSA0LjkgMi45IDIuOSJ9XV19KTt2YXIgQnEscXN0PXUoKCk9PntCcT1bWyJsaW5lIix7eDE6IjIiLHgyOiI1Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiNSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE5Iix5MjoiMjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXX0pO3ZhciBIcSxWc3Q9dSgoKT0+e0hxPVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yNGE3IDcgMCAwIDAtOC4xMy04LjEzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMmgzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy4wNSA3LjA1YTcgNyAwIDAgMCA5LjkgOS45In1dXX0pO3ZhciBxcSxqc3Q9dSgoKT0+e3FxPVtbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTkiLHkyOiIyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI3In1dXX0pO3ZhciBmOCxVc3Q9dSgoKT0+e2Y4PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDkuMzMtMi41In1dXX0pO3ZhciBWcSxXc3Q9dSgoKT0+e1ZxPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3g6IjMiLHk6IjEwIix3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDEwIDB2MyJ9XV19KTt2YXIgaDgsR3N0PXUoKCk9PntoOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjExIix4OiIzIix5OiIxMSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExVjdhNSA1IDAgMCAxIDkuOS0xIn1dXX0pO3ZhciBqcSxZc3Q9dSgoKT0+e2pxPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTEiLHg6IjMiLHk6IjExIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0In1dXX0pO3ZhciBVcSxLc3Q9dSgoKT0+e1VxPVtbInBhdGgiLHtkOiJtMTAgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTUgM2g0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNCJ9XV19KTt2YXIgV3EsWnN0PXUoKCk9PntXcT1bWyJwYXRoIix7ZDoiTTMgNWgxIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDEifV0sWyJwYXRoIix7ZDoiTTMgMTloMSJ9XSxbInBhdGgiLHtkOiJNOCA1aDEifV0sWyJwYXRoIix7ZDoiTTggMTJoMSJ9XSxbInBhdGgiLHtkOiJNOCAxOWgxIn1dLFsicGF0aCIse2Q6Ik0xMyA1aDgifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV1dfSk7dmFyIEdxLFFzdD11KCgpPT57R3E9W1sicGF0aCIse2Q6Ik02IDIwYTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOCAxOFY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjE0In1dLFsicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBZcSxYc3Q9dSgoKT0+e1lxPVtbInBhdGgiLHtkOiJtMTYgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOSJ9XSxbInBhdGgiLHtkOiJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQifV1dfSk7dmFyIEtxLEpzdD11KCgpPT57S3E9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTExIDExYTIgMiAwIDAgMCA0IDAgNCA0IDAgMCAwLTggMCA2IDYgMCAwIDAgMTIgMCJ9XV19KTt2YXIgWnEsZW50PXUoKCk9PntacT1bWyJwYXRoIix7ZDoiTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dXX0pO3ZhciBRcSx0bnQ9dSgoKT0+e1FxPVtbInBhdGgiLHtkOiJtMTIgMTUgNCA0In1dLFsicGF0aCIse2Q6Ik0yLjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDYuMDI5LTYuMDI5YTEgMSAwIDEgMSAzIDNsLTYuMDI5IDYuMDI5YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw2LjM2NS02LjM2N0ExIDEgMCAwIDAgOC43MTYgNC4yODJ6In1dLFsicGF0aCIse2Q6Im01IDggNCA0In1dXX0pO3ZhciBYcSxybnQ9dSgoKT0+e1hxPVtbInBhdGgiLHtkOiJNMjIgMTVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE2IDE5aDYifV1dfSk7dmFyIEpxLGFudD11KCgpPT57SnE9W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XV19KTt2YXIgZVYsaW50PXUoKCk9PntlVj1bWyJwYXRoIix7ZDoiTTIxLjIgOC40Yy41LjM4LjguOTcuOCAxLjZ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMTBhMiAyIDAgMCAxIC44LTEuNmw4LTZhMiAyIDAgMCAxIDIuNCAwbDggNloifV0sWyJwYXRoIix7ZDoibTIyIDEwLTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiAxMCJ9XV19KTt2YXIgbTgsc250PXUoKCk9PnttOD1bWyJwYXRoIix7ZDoiTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE4IDE1LjI4Yy4yLS40LjUtLjguOS0xYTIuMSAyLjEgMCAwIDEgMi42LjRjLjMuNC41LjguNSAxLjMgMCAxLjMtMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjJ2LjAxIn1dXX0pO3ZhciB0VixubnQ9dSgoKT0+e3RWPVtbInBhdGgiLHtkOiJNMjIgMTIuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNy41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOCAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuNS0xLjUifV1dfSk7dmFyIHJWLG9udD11KCgpPT57clY9W1sicGF0aCIse2Q6Ik0yMiAxMC41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMi41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0yMCAxNHY0In1dLFsicGF0aCIse2Q6Ik0yMCAyMnYuMDEifV1dfSk7dmFyIGFWLGxudD11KCgpPT57YVY9W1sicGF0aCIse2Q6Im0yMiA3LTguOTkxIDUuNzI3YTIgMiAwIDAgMS0yLjAwOSAwTDIgNyJ9XSxbInJlY3QiLHt4OiIyIix5OiI0Iix3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHJ4OiIyIn1dXX0pO3ZhciBpVixjbnQ9dSgoKT0+e2lWPVtbInBhdGgiLHtkOiJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDkifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoibTE3IDE3IDQgNCJ9XSxbInBhdGgiLHtkOiJtMjEgMTctNCA0In1dXX0pO3ZhciBzVixkbnQ9dSgoKT0+e3NWPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOS41QzIgNyA0IDUgNi41IDVIMThjMi4yIDAgNCAxLjggNCA0djhaIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjE1LDkgMTgsOSAxOCwxMSJ9XSxbInBhdGgiLHtkOiJNNi41IDVDOSA1IDExIDcgMTEgOS41VjE3YTIgMiAwIDAgMS0yIDIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI3Iix5MToiMTAiLHkyOiIxMCJ9XV19KTt2YXIgblYsdW50PXUoKCk9PntuVj1bWyJwYXRoIix7ZDoiTTE3IDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAxLTEuNzMyIn1dLFsicGF0aCIse2Q6Im0yMiA1LjUtNi40MTkgNC4xNzlhMiAyIDAgMCAxLTIuMTYyIDBMNyA1LjUifV0sWyJyZWN0Iix7eDoiNyIseToiMyIsd2lkdGg6IjE1IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgb1YscG50PXUoKCk9PntvVj1bWyJwYXRoIix7ZDoibTExIDE5LTEuMTA2LS41NTJhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDBsNC4yMTIgMi4xMDZhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTlWMTQifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0VjE0In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV19KTt2YXIgbFYsZm50PXUoKCk9PntsVj1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dXX0pO3ZhciBjVixobnQ9dSgoKT0+e2NWPVtbInBhdGgiLHtkOiJNMTkuNDMgMTIuOTM1Yy4zNTctLjk2Ny41Ny0xLjk1NS41Ny0yLjkzNWE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIuMTk3IDMyLjE5NyAwIDAgMCAuODEzLS43MjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTggMiAyIDQtNCJ9XV19KTt2YXIgZFYsbW50PXUoKCk9PntkVj1bWyJwYXRoIix7ZDoiTTE1IDIyYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIC40NDUtLjgzMmwzLTJhMSAxIDAgMCAxIDEuMTEgMGwzIDJBMSAxIDAgMCAxIDIyIDE3djRhMSAxIDAgMCAxLTEgMXoifV0sWyJwYXRoIix7ZDoiTTE4IDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgLjYwMS4yIn1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtMyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEwIixyOiIzIn1dXX0pO3ZhciB1VixnbnQ9dSgoKT0+e3VWPVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dfSk7dmFyIHBWLGJudD11KCgpPT57cFY9W1sicGF0aCIse2Q6Ik0xOC45NzcgMTRDMTkuNiAxMi43MDEgMjAgMTEuMzQzIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XV19KTt2YXIgZlYseG50PXUoKCk9PntmVj1bWyJwYXRoIix7ZDoiTTEyLjc1IDcuMDlhMyAzIDAgMCAxIDIuMTYgMi4xNiJ9XSxbInBhdGgiLHtkOiJNMTcuMDcyIDE3LjA3MmMtMS42MzQgMi4xNy0zLjUyNyAzLjkxMi00LjQ3MSA0LjcyN2ExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMS40MzItNC41NjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC40NzUgMi44MThBOCA4IDAgMCAxIDIwIDEwYzAgMS4xODMtLjMxIDIuMzc3LS44MSAzLjUzMyJ9XSxbInBhdGgiLHtkOiJNOS4xMyA5LjEzYTMgMyAwIDAgMCAzLjc0IDMuNzQifV1dfSk7dmFyIGc4LHZudD11KCgpPT57Zzg9W1sicGF0aCIse2Q6Ik0xNy45NyA5LjMwNEE4IDggMCAwIDAgMiAxMGMwIDQuNjkgNC44ODcgOS41NjIgNy4wMjIgMTEuNDY4In1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMCIscjoiMyJ9XV19KTt2YXIgaFYseW50PXUoKCk9PntoVj1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dfSk7dmFyIG1WLHdudD11KCgpPT57bVY9W1sicGF0aCIse2Q6Ik0xOS45MTQgMTEuMTA1QTcuMjk4IDcuMjk4IDAgMCAwIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTV2NiJ9XV19KTt2YXIgZ1Ysa250PXUoKCk9PntnVj1bWyJwYXRoIix7ZDoiTSAxMi4yNDggMjEuOTY5IGEgMSAxIDAgMCAxIC0wLjg0OSAtMC4xNyBDIDkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwIGEgOCA4IDAgMCAxIDE2IDAgQyAyMCAxMC40MiAxOS45NjEgMTAuODQxIDE5Ljg4OCAxMS4yNjIifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODgtMS44OCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIGJWLFNudD11KCgpPT57YlY9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJwYXRoIix7ZDoibTE0LjUgNy41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOS41IDcuNSA1IDUifV1dfSk7dmFyIHhWLE1udD11KCgpPT57eFY9W1sicGF0aCIse2Q6Ik0xOS43NTIgMTEuOTAxQTcuNzggNy43OCAwIDAgMCAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMTkgMTkgMCAwIDAgLjA5LS4wNzcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxNS41LTUgNSJ9XSxbInBhdGgiLHtkOiJtMjEuNSAyMC41LTUtNSJ9XV19KTt2YXIgdlYsQ250PXUoKCk9Pnt2Vj1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dXX0pO3ZhciB5Vix6bnQ9dSgoKT0+e3lWPVtbInBhdGgiLHtkOiJNMTggOGMwIDMuNjEzLTMuODY5IDcuNDI5LTUuMzkzIDguNzk1YTEgMSAwIDAgMS0xLjIxNCAwQzkuODcgMTUuNDI5IDYgMTEuNjEzIDYgOGE2IDYgMCAwIDEgMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTguNzE0IDE0aC0zLjcxYTEgMSAwIDAgMC0uOTQ4LjY4M2wtMi4wMDQgNkExIDEgMCAwIDAgMyAyMmgxOGExIDEgMCAwIDAgLjk0OC0xLjMxNmwtMi02YTEgMSAwIDAgMC0uOTQ5LS42ODRoLTMuNzEyIn1dXX0pO3ZhciB3VixfbnQ9dSgoKT0+e3dWPVtbInBhdGgiLHtkOiJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxMiJ9XSxbInBhdGgiLHtkOiJNMTUgNS43NjRWMTIifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXX0pO3ZhciBrVixUbnQ9dSgoKT0+e2tWPVtbInBhdGgiLHtkOiJNMTQuMTA2IDUuNTUzYTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5djEyLjc2NGExIDEgMCAwIDEtLjU1My44OTRsLTQuNTUzIDIuMjc3YTIgMiAwIDAgMS0xLjc4OCAwbC00LjIxMi0yLjEwNmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMHoifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0djE1In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXX0pO3ZhciBTVixMbnQ9dSgoKT0+e1NWPVtbInBhdGgiLHtkOiJtMTQgNiA0IDQifV0sWyJwYXRoIix7ZDoiTTE3IDNoNHY0In1dLFsicGF0aCIse2Q6Im0yMSAzLTcuNzUgNy43NSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjYifV1dfSk7dmFyIE1WLERudD11KCgpPT57TVY9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJtMjEgMy02Ljc1IDYuNzUifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxNCIscjoiNiJ9XV19KTt2YXIgQ1YsJG50PXUoKCk9PntDVj1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2MTEifV0sWyJwYXRoIix7ZDoibTE5IDMtNyA4LTctOFoifV1dfSk7dmFyIHpWLEFudD11KCgpPT57elY9W1sicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMjEgMy03IDcifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik05IDIxSDN2LTYifV1dfSk7dmFyIF9WLEVudD11KCgpPT57X1Y9W1sicGF0aCIse2Q6Ik04IDNINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDhWNWEyIDIgMCAwIDAtMi0yaC0zIn1dLFsicGF0aCIse2Q6Ik0zIDE2djNhMiAyIDAgMCAwIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0xNiAyMWgzYTIgMiAwIDAgMCAyLTJ2LTMifV1dfSk7dmFyIFRWLEludD11KCgpPT57VFY9W1sicGF0aCIse2Q6Ik03LjIxIDE1IDIuNjYgNy4xNGEyIDIgMCAwIDEgLjEzLTIuMkw0LjQgMi44QTIgMiAwIDAgMSA2IDJoMTJhMiAyIDAgMCAxIDEuNi44bDEuNiAyLjE0YTIgMiAwIDAgMSAuMTQgMi4yTDE2Ljc5IDE1In1dLFsicGF0aCIse2Q6Ik0xMSAxMiA1LjEyIDIuMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNS44OC05LjgifV0sWyJwYXRoIix7ZDoiTTggN2g4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE4di0yaC0uNSJ9XV19KTt2YXIgTFYsUG50PXUoKCk9PntMVj1bWyJwYXRoIix7ZDoiTTExLjYzNiA2QTEzIDEzIDAgMCAwIDE5LjQgMy4yIDEgMSAwIDAgMSAyMSA0djExLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMzc4IDE0LjM1N0ExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djYifV1dfSk7dmFyIERWLE5udD11KCgpPT57RFY9W1sicGF0aCIse2Q6Ik0xMSA2YTEzIDEzIDAgMCAwIDguNC0yLjhBMSAxIDAgMCAxIDIxIDR2MTJhMSAxIDAgMCAxLTEuNi44QTEzIDEzIDAgMCAwIDExIDE0SDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik02IDE0YTEyIDEyIDAgMCAwIDIuNCA3LjIgMiAyIDAgMCAwIDMuMi0yLjRBOCA4IDAgMCAxIDEwIDE0In1dLFsicGF0aCIse2Q6Ik04IDZ2OCJ9XV19KTt2YXIgJFYsT250PXUoKCk9PnskVj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgQVYsUm50PXUoKCk9PntBVj1bWyJwYXRoIix7ZDoiTTEyIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDE4di0yIn1dLFsicGF0aCIse2Q6Ik0yIDExaDEuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTIwLjUgMTFIMjIifV0sWyJwYXRoIix7ZDoiTTQgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTggMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjIwIixoZWlnaHQ6IjEwIixyeDoiMiJ9XV19KTt2YXIgRVYsRm50PXUoKCk9PntFVj1bWyJwYXRoIix7ZDoiTTQgNWgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxOWgxNiJ9XV19KTt2YXIgSVYsQm50PXUoKCk9PntJVj1bWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjEwLjNhNCA0IDAgMCAxLTEuMTcyIDIuODcyTDQgMjIifV0sWyJwYXRoIix7ZDoibTIwIDIyLTUtNSJ9XV19KTt2YXIgUFYsSG50PXUoKCk9PntQVj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIE5WLHFudD11KCgpPT57TlY9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBPVixWbnQ9dSgoKT0+e09WPVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yOCAxNy42MWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Im02LjE2MyAyMS4xMTctMi45MDYuODVhMSAxIDAgMCAxLTEuMjM2LTEuMTY5bC45NjUtMi45OCJ9XV19KTt2YXIgUlYsam50PXUoKCk9PntSVj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDUuMDA0IDIuMjI0IDMgMyAwIDAgMS0uODMyIDIuMDgzbC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ1LS4wMDF6In1dXX0pO3ZhciBGVixVbnQ9dSgoKT0+e0ZWPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgQlYsV250PXUoKCk9PntCVj1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkyOWExMCAxMCAwIDAgMC0xLjkzOCAxMS40MTIgMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDAgMCAxMS4zMDItMS45ODkifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OUExMCAxMCAwIDAgMSAyMS4zIDE1LjY1In1dXX0pO3ZhciBIVixHbnQ9dSgoKT0+e0hWPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciBiOCxZbnQ9dSgoKT0+e2I4PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dfSk7dmFyIHFWLEtudD11KCgpPT57cVY9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJtMTAgMTUtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNNyAxMmg4YTIgMiAwIDAgMSAyIDJ2MSJ9XV19KTt2YXIgVlYsWm50PXUoKCk9PntWVj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV19KTt2YXIgalYsUW50PXUoKCk9PntqVj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV19KTt2YXIgVVYsWG50PXUoKCk9PntVVj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBXVixKbnQ9dSgoKT0+e1dWPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNy43IDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJtOSAxMSAyIDIgNC00In1dXX0pO3ZhciBHVixlb3Q9dSgoKT0+e0dWPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDMtMy0zLTMifV1dfSk7dmFyIFlWLHRvdD11KCgpPT57WVY9W1sicGF0aCIse2Q6Ik0xNCAzaDIifV0sWyJwYXRoIix7ZDoiTTE2IDE5aC0yIn1dLFsicGF0aCIse2Q6Ik0yIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0yIDE2djUuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMS4xNDktMS4xNDkifV0sWyJwYXRoIix7ZDoiTTIwIDE5YTIgMiAwIDAgMCAyLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjIifV0sWyJwYXRoIix7ZDoiTTIyIDZWNWEyIDIgMCAwIDAtMi0yIn1dLFsicGF0aCIse2Q6Ik00IDNhMiAyIDAgMCAwLTIgMnYxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDIifV0sWyJwYXRoIix7ZDoiTTggM2gyIn1dXX0pO3ZhciBLVixyb3Q9dSgoKT0+e0tWPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMCAxNWg0In1dLFsicGF0aCIse2Q6Ik0xMCA5aDQifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XV19KTt2YXIgWlYsYW90PXUoKCk9PntaVj1bWyJwYXRoIix7ZDoiTTEyLjcgM0g0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDIwYTIgMiAwIDAgMCAyLTJ2LTQuNyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIFFWLGlvdD11KCgpPT57UVY9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcuNSA5LjVjMCAuNjg3LjI2NSAxLjM4My42OTcgMS44NDRsMy4wMDkgMy4yNjRhMS4xNCAxLjE0IDAgMCAwIC40MDcuMzE0IDEgMSAwIDAgMCAuNzgzLS4wMDQgMS4xNCAxLjE0IDAgMCAwIC4zOTgtLjMxbDMuMDA4LTMuMjY0QTIuNzcgMi43NyAwIDAgMCAxNi41IDkuNSAyLjUgMi41IDAgMCAwIDEyIDhhMi41IDIuNSAwIDAgMC00LjUgMS41In1dXX0pO3ZhciBYVixzb3Q9dSgoKT0+e1hWPVtbInBhdGgiLHtkOiJNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwIn1dLFsicGF0aCIse2Q6Ik0yMCAxNXYtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE1Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgSlYsbm90PXUoKCk9PntKVj1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dXX0pO3ZhciBlaixvb3Q9dSgoKT0+e2VqPVtbInBhdGgiLHtkOiJNMTkgMTlINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcuNyAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTEuMzQ0In1dXX0pO3ZhciB0aixsb3Q9dSgoKT0+e3RqPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA4djYifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XV19KTt2YXIgcmosY290PXUoKCk9Pntyaj1bWyJwYXRoIix7ZDoiTTE0IDE0YTIgMiAwIDAgMCAyLTJWOGgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik04IDE0YTIgMiAwIDAgMCAyLTJWOEg4In1dXX0pO3ZhciBhaixkb3Q9dSgoKT0+e2FqPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE0di0xYTIgMiAwIDAgMC0yLTJINyJ9XV19KTt2YXIgaWosdW90PXUoKCk9Pntpaj1bWyJwYXRoIix7ZDoiTTEyIDNINGEyIDIgMCAwIDAtMiAydjE2LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUgyMGEyIDIgMCAwIDAgMi0ydi00In1dLFsicGF0aCIse2Q6Ik0xNiAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMTYgOSA2LTYifV1dfSk7dmFyIHNqLHBvdD11KCgpPT57c2o9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcgMTFoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTVoNiJ9XSxbInBhdGgiLHtkOiJNNyA3aDgifV1dfSk7dmFyIG5qLGZvdD11KCgpPT57bmo9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dXX0pO3ZhciBvaixob3Q9dSgoKT0+e29qPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xNC41IDguNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSA4LjUgNSA1In1dXX0pO3ZhciBsaixtb3Q9dSgoKT0+e2xqPVtbInBhdGgiLHtkOiJNMTYgMTBhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAxNC4yODZWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yMCA5YTIgMiAwIDAgMSAyIDJ2MTAuMjg2YS43MS43MSAwIDAgMS0xLjIxMi41MDJsLTIuMjAyLTIuMjAyQTIgMiAwIDAgMCAxNy4xNzIgMTlIMTBhMiAyIDAgMCAxLTItMnYtMSJ9XV19KTt2YXIgY2osZ290PXUoKCk9Pntjaj1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XV19KTt2YXIgZGosYm90PXUoKCk9Pntkaj1bWyJwYXRoIix7ZDoiTTEyIDExLjRWOS4xIn1dLFsicGF0aCIse2Q6Im0xMiAxNyA2LjU5LTYuNTkifV0sWyJwYXRoIix7ZDoibTE1LjA1IDUuNy0uMjE4LS42OTFhMyAzIDAgMCAwLTUuNjYzIDBMNC40MTggMTkuNjk1QTEgMSAwIDAgMCA1LjM3IDIxaDEzLjI1M2ExIDEgMCAwIDAgLjk1MS0xLjMxTDE4LjQ1IDE2LjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciB1aix4b3Q9dSgoKT0+e3VqPVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMifV0sWyJwYXRoIix7ZDoiTTE2Ljk1IDE2Ljk1QTcgNyAwIDAgMSA1IDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yM0E3IDcgMCAwIDAgMTkgMTJ2LTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOSA5djNhMyAzIDAgMCAwIDUuMTIgMi4xMiJ9XV19KTt2YXIgcGosdm90PXUoKCk9Pntwaj1bWyJwYXRoIix7ZDoiTTEyIDE5djMifV0sWyJwYXRoIix7ZDoiTTE5IDEwdjJhNyA3IDAgMCAxLTE0IDB2LTIifV0sWyJyZWN0Iix7eDoiOSIseToiMiIsd2lkdGg6IjYiLGhlaWdodDoiMTMiLHJ4OiIzIn1dXX0pO3ZhciB4OCx5b3Q9dSgoKT0+e3g4PVtbInBhdGgiLHtkOiJtMTEgNy42MDEtNS45OTQgOC4xOWExIDEgMCAwIDAgLjEgMS4yOThsLjgxNy44MThhMSAxIDAgMCAwIDEuMzE0LjA4N0wxNS4wOSAxMiJ9XSxbInBhdGgiLHtkOiJNMTYuNSAyMS4xNzRDMTUuNSAyMC41IDE0LjM3MiAyMCAxMyAyMGMtMi4wNTggMC0zLjkyOCAyLjM1Ni02IDItMi4wNzItLjM1Ni0yLjc3NS0zLjM2OS0xLjUtNC41In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiNyIscjoiNSJ9XV19KTt2YXIgZmosd290PXUoKCk9Pntmaj1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDE3aDQifV0sWyJwYXRoIix7ZDoiTTEwIDdoNCJ9XSxbInBhdGgiLHtkOiJNMTggMTJoMiJ9XSxbInBhdGgiLHtkOiJNMTggMThoMiJ9XSxbInBhdGgiLHtkOiJNMTggNmgyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDIifV0sWyJwYXRoIix7ZDoiTTQgMThoMiJ9XSxbInBhdGgiLHtkOiJNNCA2aDIifV0sWyJyZWN0Iix7eDoiNiIseToiMiIsd2lkdGg6IjEyIixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgaGosa290PXUoKCk9Pntoaj1bWyJwYXRoIix7ZDoiTTYgMThoOCJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XSxbInBhdGgiLHtkOiJNMTQgMjJhNyA3IDAgMSAwIDAtMTRoLTEifV0sWyJwYXRoIix7ZDoiTTkgMTRoMiJ9XSxbInBhdGgiLHtkOiJNOSAxMmEyIDIgMCAwIDEtMi0yVjZoNnY0YTIgMiAwIDAgMS0yIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiA2VjNhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIgbWosU290PXUoKCk9Pnttaj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE1Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI3Iix4OiI2Iix5OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTggOHY3In1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJwYXRoIix7ZDoiTTE4IDE5djIifV1dfSk7dmFyIGdqLE1vdD11KCgpPT57Z2o9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjMifV0sWyJwYXRoIix7ZDoiTTE4LjE3MiA2YTIgMiAwIDAgMSAxLjQxNC41ODZsMi4wNiAyLjA2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDhsLTIuMDYgMi4wNmEyIDIgMCAwIDEtMS40MTQuNTg2SDRhMSAxIDAgMCAxLTEtMVY3YTEgMSAwIDAgMSAxLTF6In1dXX0pO3ZhciBiaixDb3Q9dSgoKT0+e2JqPVtbInBhdGgiLHtkOiJNOCAyaDgifV0sWyJwYXRoIix7ZDoiTTkgMnYxLjM0M00xNSAydjIuNzg5YTQgNCAwIDAgMCAuNjcyIDIuMjE5bC42NTYuOTg0YTQgNCAwIDAgMSAuNjcyIDIuMjJ2MS4xMzFNNy44IDcuOGwtLjEyOC4xOTJBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NzIgNi40NzIgMCAwIDAgMy40MzUuNDM1In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIHhqLHpvdD11KCgpPT57eGo9W1sicGF0aCIse2Q6Ik04IDJoOCJ9XSxbInBhdGgiLHtkOiJNOSAydjIuNzg5YTQgNCAwIDAgMS0uNjcyIDIuMjE5bC0uNjU2Ljk4NEE0IDQgMCAwIDAgNyAxMC4yMTJWMjBhMiAyIDAgMCAwIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTkuNzg5YTQgNCAwIDAgMC0uNjcyLTIuMjE5bC0uNjU2LS45ODRBNCA0IDAgMCAxIDE1IDQuNzg4VjIifV0sWyJwYXRoIix7ZDoiTTcgMTVhNi40NzIgNi40NzIgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAifV1dfSk7dmFyIHZqLF9vdD11KCgpPT57dmo9W1sicGF0aCIse2Q6Im0xNCAxMCA3LTcifV0sWyJwYXRoIix7ZDoiTTIwIDEwaC02VjQifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik00IDE0aDZ2NiJ9XV19KTt2YXIgeWosVG90PXUoKCk9Pnt5aj1bWyJwYXRoIix7ZDoiTTggM3YzYTIgMiAwIDAgMS0yIDJIMyJ9XSxbInBhdGgiLHtkOiJNMjEgOGgtM2EyIDIgMCAwIDEtMi0yVjMifV0sWyJwYXRoIix7ZDoiTTMgMTZoM2EyIDIgMCAwIDEgMiAydjMifV0sWyJwYXRoIix7ZDoiTTE2IDIxdi0zYTIgMiAwIDAgMSAyLTJoMyJ9XV19KTt2YXIgd2osTG90PXUoKCk9Pnt3aj1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV1dfSk7dmFyIGtqLERvdD11KCgpPT57a2o9W1sicGF0aCIse2Q6Ik0xMSA2IDggOSJ9XSxbInBhdGgiLHtkOiJtMTYgNy04IDgifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV19KTt2YXIgU2osJG90PXUoKCk9PntTaj1bWyJwYXRoIix7ZDoiTTEwIDYuNiA4LjYgOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJNMTUgNy41IDkuNSAxMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiI4In1dXX0pO3ZhciBNaixBb3Q9dSgoKT0+e01qPVtbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgQ2osRW90PXUoKCk9PntDaj1bWyJwYXRoIix7ZDoiTTExIDEzYTMgMyAwIDEgMSAyLjgzLTRIMTRhMiAyIDAgMCAxIDAgNHoifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInJlY3QiLHt4OiIyIix5OiIzIix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciB6aixJb3Q9dSgoKT0+e3pqPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDcuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAzLjIyOC0uMzgzLS45MjQifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDMuMjI4LjM4My0uOTI0In1dLFsicGF0aCIse2Q6Im0xOS41MyA5LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiA0Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDcuMTQ4LjkyNC4zODMifV0sWyJwYXRoIix7ZDoiTTIyIDEzdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIF9qLFBvdD11KCgpPT57X2o9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0yMiAxMi4zMDdWMTVhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDguNjkzIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI2IixyOiIzIn1dXX0pO3ZhciBUaixOb3Q9dSgoKT0+e1RqPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJtMTUgMTAtMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dfSk7dmFyIExqLE9vdD11KCgpPT57TGo9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xNyAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMS4xODQtMS44MjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLS4yOTMgMS4wNDIifV1dfSk7dmFyIERqLFJvdD11KCgpPT57RGo9W1sicGF0aCIse2Q6Ik0xMCAxM1Y3In1dLFsicGF0aCIse2Q6Ik0xNCAxM1Y3In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgJGosRm90PXUoKCk9Pnskaj1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgQWosQm90PXUoKCk9PntBaj1bWyJwYXRoIix7ZDoiTTE4IDhWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTl2LTMuOTYgMy4xNSJ9XSxbInBhdGgiLHtkOiJNNyAxOWg1In1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiMTIiLHJ4OiIyIn1dXX0pO3ZhciBFaixIb3Q9dSgoKT0+e0VqPVtbInBhdGgiLHtkOiJNNS41IDIwSDgifV0sWyJwYXRoIix7ZDoiTTE3IDloLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiIxNiIseDoiMTIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDZINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmg0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTUiLHI6IjEifV1dfSk7dmFyIElqLHFvdD11KCgpPT57SWo9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI5Iix5OiI3Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV19KTt2YXIgUGosVm90PXUoKCk9PntQaj1bWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dfSk7dmFyIE5qLGpvdD11KCgpPT57Tmo9W1sicGF0aCIse2Q6Im0xNC41IDEyLjUtNS01In1dLFsicGF0aCIse2Q6Im05LjUgMTIuNSA1LTUifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXX0pO3ZhciBPaixVb3Q9dSgoKT0+e09qPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIyMSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTciLHkyOiIyMSJ9XV19KTt2YXIgUmosV290PXUoKCk9PntSaj1bWyJwYXRoIix7ZDoiTTE4IDVoNCJ9XSxbInBhdGgiLHtkOiJNMjAgM3Y0In1dLFsicGF0aCIse2Q6Ik0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIn1dXX0pO3ZhciBGaixHb3Q9dSgoKT0+e0ZqPVtbInBhdGgiLHtkOiJNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMSJ9XV19KTt2YXIgQmosWW90PXUoKCk9PntCaj1bWyJwYXRoIix7ZDoibTE4IDE0LTEtMyJ9XSxbInBhdGgiLHtkOiJtMyA5IDYgMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDEuOTkgMS44MSJ9XSxbInBhdGgiLHtkOiJNOCAxN2gzYTEgMSAwIDAgMCAxLTEgNiA2IDAgMCAxIDYtNiAxIDEgMCAwIDAgMS0xdi0uNzVBNSA1IDAgMCAwIDE3IDUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTciLHI6IjMifV1dfSk7dmFyIEhqLEtvdD11KCgpPT57SGo9W1sicGF0aCIse2Q6Im04IDMgNCA4IDUtNSA1IDE1SDJMOCAzeiJ9XSxbInBhdGgiLHtkOiJNNC4xNCAxNS4wOGMyLjYyLTEuNTcgNS4yNC0xLjQzIDcuODYuNDIgMi43NCAxLjk0IDUuNDkgMiA4LjIzLjE5In1dXX0pO3ZhciBxaixab3Q9dSgoKT0+e3FqPVtbInBhdGgiLHtkOiJtOCAzIDQgOCA1LTUgNSAxNUgyTDggM3oifV1dfSk7dmFyIFZqLFFvdD11KCgpPT57Vmo9W1sicGF0aCIse2Q6Ik0xMiA3LjMxOFYxMCJ9XSxbInBhdGgiLHtkOiJNNSAxMHY1YTcgNyAwIDAgMCAxNCAwVjljMC0zLjUyNy0yLjYwOC02LjUxNS02LTcifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjQiLHI6IjIifV1dfSk7dmFyIGpqLFhvdD11KCgpPT57amo9W1sicGF0aCIse2Q6Ik0xMiA2di4zNDMifV0sWyJwYXRoIix7ZDoiTTE4LjIxOCAxOC4yMThBNyA3IDAgMCAxIDUgMTVWOWE3IDcgMCAwIDEgLjc4Mi0zLjIxOCJ9XSxbInBhdGgiLHtkOiJNMTkgMTMuMzQzVjlBNyA3IDAgMCAwIDguNTYgMi45MDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XV19KTt2YXIgVWosSm90PXUoKCk9PntVaj1bWyJwYXRoIix7ZDoibTE1LjU1IDguNDUgNS4xMzggMi4wODdhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjNMOC40NSAxNS41NTEifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbInBhdGgiLHtkOiJtNi44MTYgMTEuNTI4LTIuNzc5LTYuODRhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDYuODQgMi43NzkifV1dfSk7dmFyIFdqLGUxdD11KCgpPT57V2o9W1sicGF0aCIse2Q6Ik0yLjAzNCAyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0NEw4LjIwNCA3LjU0NWExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NiAzLjQ0M2EuNS41IDAgMCAxLS45NDQuMDMzeiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dLFsicGF0aCIse2Q6Im0xMS44IDExLjggOC40IDguNCJ9XV19KTt2YXIgR2osdDF0PXUoKCk9PntHaj1bWyJwYXRoIix7ZDoiTTQuMDM3IDQuNjg4YS40OTUuNDk1IDAgMCAxIC42NTEtLjY1MWwxNiA2LjVhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjN6In1dXX0pO3ZhciBZaixyMXQ9dSgoKT0+e1lqPVtbInBhdGgiLHtkOiJNMTQgNC4xIDEyIDYifV0sWyJwYXRoIix7ZDoibTUuMSA4LTIuOS0uOCJ9XSxbInBhdGgiLHtkOiJtNiAxMi0xLjkgMiJ9XSxbInBhdGgiLHtkOiJNNy4yIDIuMiA4IDUuMSJ9XSxbInBhdGgiLHtkOiJNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eiJ9XV19KTt2YXIgS2osYTF0PXUoKCk9PntLaj1bWyJwYXRoIix7ZDoiTTEyIDcuMzE4VjEwIn1dLFsicGF0aCIse2Q6Ik0xOSAxMHY1YTcgNyAwIDAgMS0xNCAwVjljMC0zLjUyNyAyLjYwOC02LjUxNSA2LTcifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiI0IixyOiIyIn1dXX0pO3ZhciBaaixpMXQ9dSgoKT0+e1pqPVtbInBhdGgiLHtkOiJNMTIuNTg2IDEyLjU4NiAxOSAxOSJ9XSxbInBhdGgiLHtkOiJNMy42ODggMy4wMzdhLjQ5Ny40OTcgMCAwIDAtLjY1MS42NTFsNi41IDE1Ljk5OWEuNTAxLjUwMSAwIDAgMCAuOTQ3LS4wNjJsMS41NjktNi4wODNhMiAyIDAgMCAxIDEuNDQ4LTEuNDc5bDYuMTI0LTEuNTc5YS41LjUgMCAwIDAgLjA2My0uOTQ3eiJ9XV19KTt2YXIgUWosczF0PXUoKCk9PntRaj1bWyJyZWN0Iix7eDoiNSIseToiMiIsd2lkdGg6IjE0IixoZWlnaHQ6IjIwIixyeDoiNyJ9XSxbInBhdGgiLHtkOiJNMTIgNnY0In1dXX0pO3ZhciB2OCxuMXQ9dSgoKT0+e3Y4PVtbInBhdGgiLHtkOiJNNSAzdjE2aDE2In1dLFsicGF0aCIse2Q6Im01IDE5IDYtNiJ9XSxbInBhdGgiLHtkOiJtMiA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE4IDE2IDMgMy0zIDMifV1dfSk7dmFyIFhqLG8xdD11KCgpPT57WGo9W1sicGF0aCIse2Q6Ik0xMSAxOUg1di02In1dLFsicGF0aCIse2Q6Ik0xMyA1aDZ2NiJ9XSxbInBhdGgiLHtkOiJNMTkgNSA1IDE5In1dXX0pO3ZhciBKaixsMXQ9dSgoKT0+e0pqPVtbInBhdGgiLHtkOiJNMTkgMTN2NmgtNiJ9XSxbInBhdGgiLHtkOiJNNSAxMVY1aDYifV0sWyJwYXRoIix7ZDoibTUgNSAxNCAxNCJ9XV19KTt2YXIgZVUsYzF0PXUoKCk9PntlVT1bWyJwYXRoIix7ZDoiTTExIDE5SDVWMTMifV0sWyJwYXRoIix7ZDoiTTE5IDVMNSAxOSJ9XV19KTt2YXIgdFUsZDF0PXUoKCk9Pnt0VT1bWyJwYXRoIix7ZDoiTTE5IDEzVjE5SDEzIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dfSk7dmFyIHJVLHUxdD11KCgpPT57clU9W1sicGF0aCIse2Q6Ik04IDE4TDEyIDIyTDE2IDE4In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXX0pO3ZhciBhVSxwMXQ9dSgoKT0+e2FVPVtbInBhdGgiLHtkOiJNNiA4TDIgMTJMNiAxNiJ9XSxbInBhdGgiLHtkOiJNMiAxMkgyMiJ9XV19KTt2YXIgaVUsZjF0PXUoKCk9PntpVT1bWyJwYXRoIix7ZDoiTTE4IDhMMjIgMTJMMTggMTYifV0sWyJwYXRoIix7ZDoiTTIgMTJIMjIifV1dfSk7dmFyIHNVLGgxdD11KCgpPT57c1U9W1sicGF0aCIse2Q6Im0xOCA4IDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0In1dXX0pO3ZhciBuVSxtMXQ9dSgoKT0+e25VPVtbInBhdGgiLHtkOiJNNSAxMVY1SDExIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dfSk7dmFyIG9VLGcxdD11KCgpPT57b1U9W1sicGF0aCIse2Q6Ik0xMyA1SDE5VjExIn1dLFsicGF0aCIse2Q6Ik0xOSA1TDUgMTkifV1dfSk7dmFyIGxVLGIxdD11KCgpPT57bFU9W1sicGF0aCIse2Q6Ik04IDZMMTIgMkwxNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXX0pO3ZhciBjVSx4MXQ9dSgoKT0+e2NVPVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XV19KTt2YXIgZFUsdjF0PXUoKCk9PntkVT1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoibTE1IDE5LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoibTE5IDkgMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgNSAzLTMgMyAzIn1dXX0pO3ZhciB1VSx5MXQ9dSgoKT0+e3VVPVtbImNpcmNsZSIse2N4OiI4IixjeToiMTgiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjJsNyA0In1dXX0pO3ZhciBwVSx3MXQ9dSgoKT0+e3BVPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xNiAxOFYyIn1dXX0pO3ZhciBmVSxrMXQ9dSgoKT0+e2ZVPVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJwYXRoIix7ZDoibTkgOSAxMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE2IixyOiIzIn1dXX0pO3ZhciBoVSxTMXQ9dSgoKT0+e2hVPVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dfSk7dmFyIG1VLE0xdD11KCgpPT57bVU9W1sicGF0aCIse2Q6Ik05LjMxIDkuMzEgNSAyMWw3LTQgNyA0LTEuMTctMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTQuNTMgOC44OCAxMiAybC0xLjE3IDMuMTcifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgZ1UsQzF0PXUoKCk9PntnVT1bWyJwb2x5Z29uIix7cG9pbnRzOiIxMiAyIDE5IDIxIDEyIDE3IDUgMjEgMTIgMiJ9XV19KTt2YXIgYlUsejF0PXUoKCk9PntiVT1bWyJwYXRoIix7ZDoiTTguNDMgOC40MyAzIDExbDggMiAyIDggMi41Ny01LjQzIn1dLFsicGF0aCIse2Q6Ik0xNy4zOSAxMS43MyAyMiAybC05LjczIDQuNjEifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgeFUsXzF0PXUoKCk9Pnt4VT1bWyJwb2x5Z29uIix7cG9pbnRzOiIzIDExIDIyIDIgMTMgMjEgMTEgMTMgMyAxMSJ9XV19KTt2YXIgdlUsVDF0PXUoKCk9Pnt2VT1bWyJyZWN0Iix7eDoiMTYiLHk6IjE2Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJyZWN0Iix7eDoiOSIseToiMiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTUgMTZ2LTNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjMifV0sWyJwYXRoIix7ZDoiTTEyIDEyVjgifV1dfSk7dmFyIHlVLEwxdD11KCgpPT57eVU9W1sicGF0aCIse2Q6Ik0xNSAxOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTggMTRoLTgifV0sWyJwYXRoIix7ZDoiTTQgMjJoMTZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMS00IDB2LTlhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjEwIix5OiI2IixyeDoiMSJ9XV19KTt2YXIgd1UsRDF0PXUoKCk9Pnt3VT1bWyJwYXRoIix7ZDoiTTEyIDJ2MTAifV0sWyJwYXRoIix7ZDoibTguNSA0IDcgNCJ9XSxbInBhdGgiLHtkOiJtOC41IDggNy00In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjUifV1dfSk7dmFyIGtVLCQxdD11KCgpPT57a1U9W1sicGF0aCIse2Q6Ik02IDguMzJhNy40MyA3LjQzIDAgMCAxIDAgNy4zNiJ9XSxbInBhdGgiLHtkOiJNOS40NiA2LjIxYTExLjc2IDExLjc2IDAgMCAxIDAgMTEuNTgifV0sWyJwYXRoIix7ZDoiTTEyLjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCJ9XSxbInBhdGgiLHtkOiJNMTYuMzcgMmEyMC4xNiAyMC4xNiAwIDAgMSAwIDIwIn1dXX0pO3ZhciBTVSxBMXQ9dSgoKT0+e1NVPVtbInBhdGgiLHtkOiJNMTMuNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTcuNCJ9XSxbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCA1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXX0pO3ZhciBNVSxFMXQ9dSgoKT0+e01VPVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMTUgN2g1In1dLFsicGF0aCIse2Q6Ik0xNSAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNSAxN2g1In1dXX0pO3ZhciBDVSxJMXQ9dSgoKT0+e0NVPVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOS41IDhoNSJ9XSxbInBhdGgiLHtkOiJNOS41IDEySDE2In1dLFsicGF0aCIse2Q6Ik05LjUgMTZIMTQifV1dfSk7dmFyIHpVLFAxdD11KCgpPT57elU9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiAydjIwIn1dXX0pO3ZhciBfVSxOMXQ9dSgoKT0+e19VPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOHYyYTIgMiAwIDAgMS0yIDJoLTEifV0sWyJwYXRoIix7ZDoiTTEzIDIyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIySDZhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNCAxNHYtMiJ9XSxbInBhdGgiLHtkOiJNNCA4VjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDYifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg1In1dXX0pO3ZhciBUVSxPMXQ9dSgoKT0+e1RVPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxOCIseDoiNCIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTBoNiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicGF0aCIse2Q6Ik04IDE4aDUifV1dfSk7dmFyIExVLFIxdD11KCgpPT57TFU9W1sicGF0aCIse2Q6Ik0xMiA0VjIifV0sWyJwYXRoIix7ZDoiTTUgMTB2NGE3LjAwNCA3LjAwNCAwIDAgMCA1LjI3NyA2Ljc4N2MuNDEyLjEwNC44MDIuMjkyIDEuMTAyLjU5MkwxMiAyMmwuNjIxLS42MjFjLjMtLjMuNjktLjQ4OCAxLjEwMi0uNTkyYTcuMDEgNy4wMSAwIDAgMCA0LjEyNS0yLjkzOSJ9XSxbInBhdGgiLHtkOiJNMTkgMTB2My4zNDMifV0sWyJwYXRoIix7ZDoiTTEyIDEyYy0xLjM0OS0uNTczLTEuOTA1LTEuMDA1LTIuNS0yLS41NDYuOTAyLTEuMDQ4IDEuMzUzLTIuNSAyLTEuMDE4LS42NDQtMS40Ni0xLjA4LTItMi0xLjAyOC43MS0xLjY5LjkxOC0zIDEgMS4wODEtMS4wNDggMS43NTctMi4wMyAyLTMgLjE5NC0uNzc2Ljg0LTEuNTUxIDEuNzktMi4yMW0xMS42NTQgNS45OTdjLjg4Ny0uNDU3IDEuMjgtLjg5MSAxLjU1Ni0xLjc4NyAxLjAzMi45MTYgMS42ODMgMS4xNTcgMyAxLTEuMjk3LTEuMDM2LTEuNzU4LTIuMDMtMi0zLS41LTItNC00LTgtNC0uNzQgMC0xLjQ2MS4wNjgtMi4xNS4xOTIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgRFUsRjF0PXUoKCk9PntEVT1bWyJwYXRoIix7ZDoiTTEyIDRWMiJ9XSxbInBhdGgiLHtkOiJNNSAxMHY0YTcuMDA0IDcuMDA0IDAgMCAwIDUuMjc3IDYuNzg3Yy40MTIuMTA0LjgwMi4yOTIgMS4xMDIuNTkyTDEyIDIybC42MjEtLjYyMWMuMy0uMy42OS0uNDg4IDEuMTAyLS41OTJBNy4wMDMgNy4wMDMgMCAwIDAgMTkgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTEyIDRDOCA0IDQuNSA2IDQgOGMtLjI0My45Ny0uOTE5IDEuOTUyLTIgMyAxLjMxLS4wODIgMS45NzItLjI5IDMtMSAuNTQuOTIuOTgyIDEuMzU2IDIgMiAxLjQ1Mi0uNjQ3IDEuOTU0LTEuMDk4IDIuNS0yIC41OTUuOTk1IDEuMTUxIDEuNDI3IDIuNSAyIDEuMzEtLjYyMSAxLjg2Mi0xLjA1OCAyLjUtMiAuNjI5Ljk3NyAxLjE2MiAxLjQyMyAyLjUgMiAxLjIwOS0uNTQ4IDEuNjgtLjk2NyAyLTIgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTRaIn1dXX0pO3ZhciB5OCxCMXQ9dSgoKT0+e3k4PVtbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6In1dXX0pO3ZhciAkVSxIMXQ9dSgoKT0+eyRVPVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgdzgscTF0PXUoKCk9Pnt3OD1bWyJwYXRoIix7ZDoiTTEwIDE1VjkifV0sWyJwYXRoIix7ZDoiTTE0IDE1VjkifV0sWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dXX0pO3ZhciBrOCxWMXQ9dSgoKT0+e2s4PVtbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dLFsicGF0aCIse2Q6Im05IDkgNiA2In1dXX0pO3ZhciBBVSxqMXQ9dSgoKT0+e0FVPVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dfSk7dmFyIEVVLFUxdD11KCgpPT57RVU9W1sicGF0aCIse2Q6Ik0zIDIwaDQuNWEuNS41IDAgMCAwIC41LS41di0uMjgyYS41Mi41MiAwIDAgMC0uMjQ3LS40MzcgOCA4IDAgMSAxIDguNDk0LS4wMDEuNTIuNTIgMCAwIDAtLjI0Ny40Mzh2LjI4MmEuNS41IDAgMCAwIC41LjVIMjEifV1dfSk7dmFyIElVLFcxdD11KCgpPT57SVU9W1sicGF0aCIse2Q6Ik0zIDNoNmw2IDE4aDYifV0sWyJwYXRoIix7ZDoiTTE0IDNoNyJ9XV19KTt2YXIgUFUsRzF0PXUoKCk9PntQVT1bWyJwYXRoIix7ZDoiTTEyIDEyVjRhMSAxIDAgMCAxIDEtMWg2LjI5N2ExIDEgMCAwIDEgLjY1MSAxLjc1OWwtNC42OTYgNC4wMjUifV0sWyJwYXRoIix7ZDoibTEyIDIxLTcuNDE0LTcuNDE0QTIgMiAwIDAgMSA0IDEyLjE3MlY2LjQxNWExLjAwMiAxLjAwMiAwIDAgMSAxLjcwNy0uNzA3TDIwIDIwLjAwOSJ9XSxbInBhdGgiLHtkOiJtMTIuMjE0IDMuMzgxIDguNDE0IDE0Ljk2NmExIDEgMCAwIDEtLjE2NyAxLjE5OWwtMS4xNjggMS4xNjNhMSAxIDAgMCAxLS43MDYuMjkxSDYuMzUxYTEgMSAwIDAgMS0uNjI1LS4yMTlMMy4yNSAxOC44YTEgMSAwIDAgMSAuNjMxLTEuNzgxbDQuMTY1LjAyNyJ9XV19KTt2YXIgTlUsWTF0PXUoKCk9PntOVT1bWyJwYXRoIix7ZDoiTTIwLjM0MSA2LjQ4NEExMCAxMCAwIDAgMSAxMC4yNjYgMjEuODUifV0sWyJwYXRoIix7ZDoiTTMuNjU5IDE3LjUxNkExMCAxMCAwIDAgMSAxMy43NCAyLjE1MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIE9VLEsxdD11KCgpPT57T1U9W1sicGF0aCIse2Q6Ik0xMiAzdjYifV0sWyJwYXRoIix7ZDoiTTE2Ljc2IDNhMiAyIDAgMCAxIDEuOCAxLjFsMi4yMyA0LjQ3OWEyIDIgMCAwIDEgLjIxLjg5MVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY5LjQ3MmEyIDIgMCAwIDEgLjIxMS0uODk0TDUuNDUgNC4xQTIgMiAwIDAgMSA3LjI0IDN6In1dLFsicGF0aCIse2Q6Ik0zLjA1NCA5LjAxM2gxNy44OTMifV1dfSk7dmFyIFJVLFoxdD11KCgpPT57UlU9W1sicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTcgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMTI3VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43MjlsNyA0YTIgMiAwIDAgMCAyIC4wMDFsMS4zMi0uNzUzIn1dLFsicGF0aCIse2Q6Ik0zLjI5IDcgMTIgMTJsOC43MS01In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA4Ljk5NyA1LjE0OCJ9XV19KTt2YXIgRlUsUTF0PXUoKCk9PntGVT1bWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0yMSAxM1Y4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbDEuNjc1LS45NTUifV0sWyJwYXRoIix7ZDoiTTMuMjkgNyAxMiAxMmw4LjcxLTUifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDguOTk3IDUuMTQ4In1dXX0pO3ZhciBCVSxYMXQ9dSgoKT0+e0JVPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTkifV0sWyJwYXRoIix7ZDoiTTE1LjE3IDIuMjFhMS42NyAxLjY3IDAgMCAxIDEuNjMgMEwyMSA0LjU3YTEuOTMgMS45MyAwIDAgMSAwIDMuMzZMOC44MiAxNC43OWExLjY1NSAxLjY1NSAwIDAgMS0xLjY0IDBMMyAxMi40M2ExLjkzIDEuOTMgMCAwIDEgMC0zLjM2eiJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2My44N2EyLjA2IDIuMDYgMCAwIDEtMS4xMSAxLjgzbC02IDMuMDhhMS45MyAxLjkzIDAgMCAxLTEuNzggMGwtNi0zLjA4QTIuMDYgMi4wNiAwIDAgMSA0IDE2Ljg3VjEzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMi40M2ExLjkzIDEuOTMgMCAwIDAgMC0zLjM2TDguODMgMi4yYTEuNjQgMS42NCAwIDAgMC0xLjYzIDBMMyA0LjU3YTEuOTMgMS45MyAwIDAgMCAwIDMuMzZsMTIuMTggNi44NmExLjYzNiAxLjYzNiAwIDAgMCAxLjYzIDB6In1dXX0pO3ZhciBIVSxKMXQ9dSgoKT0+e0hVPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDYifV0sWyJwYXRoIix7ZDoiTTE5IDE0djYifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjUzNVY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbDEuNjc1LS45NTUifV0sWyJwYXRoIix7ZDoiTTMuMjkgNyAxMiAxMmw4LjcxLTUifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDguOTk3IDUuMTQ4In1dXX0pO3ZhciBxVSxlbHQ9dSgoKT0+e3FVPVtbInBhdGgiLHtkOiJNMTIgMjJWMTIifV0sWyJwYXRoIix7ZDoibTE2LjUgMTQuNSA1IDUifV0sWyJwYXRoIix7ZDoibTE2LjUgMTkuNSA1LTUifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjVWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjcyOWw3IDRhMiAyIDAgMCAwIDIgLjAwMWwuMTMtLjA3NCJ9XSxbInBhdGgiLHtkOiJNMy4yOSA3IDEyIDEybDguNzEtNSJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOC45OTcgNS4xNDgifV1dfSk7dmFyIFZVLHRsdD11KCgpPT57VlU9W1sicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBhdGgiLHtkOiJNMjAuMjcgMTguMjcgMjIgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDEwLjQ5OFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbC45OC0uNTU5In1dLFsicGF0aCIse2Q6Ik0zLjI5IDcgMTIgMTJsOC43MS01In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA4Ljk5NyA1LjE0OCJ9XSxbImNpcmNsZSIse2N4OiIxOC41IixjeToiMTYuNSIscjoiMi41In1dXX0pO3ZhciBqVSxybHQ9dSgoKT0+e2pVPVtbInBhdGgiLHtkOiJNMTEgMjEuNzNhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M3oifV0sWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjkgNyAxMiAxMiAyMC43MSA3In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV1dfSk7dmFyIFVVLGFsdD11KCgpPT57VVU9W1sicGF0aCIse2Q6Ik0xMSA3IDYgMiJ9XSxbInBhdGgiLHtkOiJNMTguOTkyIDEySDIuMDQxIn1dLFsicGF0aCIse2Q6Ik0yMS4xNDUgMTguMzhBMy4zNCAzLjM0IDAgMCAxIDIwIDE2LjVhMy4zIDMuMyAwIDAgMS0xLjE0NSAxLjg4Yy0uNTc1LjQ2LS44NTUgMS4wMi0uODU1IDEuNTk1QTIgMiAwIDAgMCAyMCAyMmEyIDIgMCAwIDAgMi0yLjAyNWMwLS41OC0uMjg1LTEuMTMtLjg1NS0xLjU5NSJ9XSxbInBhdGgiLHtkOiJtOC41IDQuNSAyLjE0OC0yLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAxLjcwNCAwbDcuMjk2IDcuMjk2YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTcuNTkyIDcuNTkyYTMuNjE1IDMuNjE1IDAgMCAxLTUuMTEyIDBsLTMuODg4LTMuODg4YTMuNjE1IDMuNjE1IDAgMCAxIDAtNS4xMTJMNS42NyA3LjMzIn1dXX0pO3ZhciBXVSxpbHQ9dSgoKT0+e1dVPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiMiIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDE2di0yYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI2Iix4OiI4Iix5OiIxNiIscng6IjEifV1dfSk7dmFyIFM4LHNsdD11KCgpPT57Uzg9W1sicGF0aCIse2Q6Ik0xMCAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMmExIDEgMCAwIDEgMSAxdjlINlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDEyYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAwIDAgMiAyaDJhMSAxIDAgMCAxIDEgMXYyLjlhMiAyIDAgMSAwIDQgMFYxN2ExIDEgMCAwIDEgMS0xaDJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xIn1dXX0pO3ZhciBHVSxubHQ9dSgoKT0+e0dVPVtbInBhdGgiLHtkOiJtMTQuNjIyIDE3Ljg5Ny0xMC42OC0yLjkxMyJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDIuNjIyYTEgMSAwIDEgMSAzLjAwMiAzLjAwMkwxNy4zNiA5LjY0M2EuNS41IDAgMCAwIDAgLjcwN2wuOTQ0Ljk0NGEyLjQxIDIuNDEgMCAwIDEgMCAzLjQwOGwtLjk0NC45NDRhLjUuNSAwIDAgMS0uNzA3IDBMOC4zNTQgNy4zNDhhLjUuNSAwIDAgMSAwLS43MDdsLjk0NC0uOTQ0YTIuNDEgMi40MSAwIDAgMSAzLjQwOCAwbC45NDQuOTQ0YS41LjUgMCAwIDAgLjcwNyAweiJ9XSxbInBhdGgiLHtkOiJNOSA4Yy0xLjgwNCAyLjcxLTMuOTcgMy40Ni02LjU4MyAzLjk0OGEuNTA3LjUwNyAwIDAgMC0uMzAyLjgxOWw3LjMyIDguODgzYTEgMSAwIDAgMCAxLjE4NS4yMDRDMTIuNzM1IDIwLjQwNSAxNiAxNi43OTIgMTYgMTUifV1dfSk7dmFyIFlVLG9sdD11KCgpPT57WVU9W1sicGF0aCIse2Q6Ik0xMiAyMmExIDEgMCAwIDEgMC0yMCAxMCA5IDAgMCAxIDEwIDkgNSA1IDAgMCAxLTUgNWgtMi4yNWExLjc1IDEuNzUgMCAwIDAtMS40IDIuOGwuMy40YTEuNzUgMS43NSAwIDAgMS0xLjQgMi44eiJ9XSxbImNpcmNsZSIse2N4OiIxMy41IixjeToiNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjEyLjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiOC41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBLVSxsbHQ9dSgoKT0+e0tVPVtbInBhdGgiLHtkOiJNMTEuMjUgMTcuMjVoMS41TDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJtMTUgMTIgMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCA2LjVhLjUuNSAwIDAgMC0uNS0uNSJ9XSxbInBhdGgiLHtkOiJNMjAuNjkgOS42N2E0LjUgNC41IDAgMSAwLTcuMDQtNS41IDguMzUgOC4zNSAwIDAgMC0zLjMgMCA0LjUgNC41IDAgMSAwLTcuMDQgNS41QzIuNDkgMTEuMiAyIDEyLjg4IDIgMTQuNSAyIDE5LjQ3IDYuNDggMjIgMTIgMjJzMTAtMi41MyAxMC03LjVjMC0xLjYyLS40OC0zLjMtMS4zLTQuODMifV0sWyJwYXRoIix7ZDoiTTYgNi41YS40OTUuNDk1IDAgMCAxIC41LS41In1dLFsicGF0aCIse2Q6Im05IDEyLTIgMiJ9XV19KTt2YXIgWlUsY2x0PXUoKCk9PntaVT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJtMTUgOC0zIDMtMy0zIn1dXX0pO3ZhciBNOCxkbHQ9dSgoKT0+e004PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDIifV0sWyJwYXRoIix7ZDoiTTkgMTVoMSJ9XV19KTt2YXIgUVUsdWx0PXUoKCk9PntRVT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XV19KTt2YXIgWFUscGx0PXUoKCk9PntYVT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzLTMgMyAzIn1dXX0pO3ZhciBDOCxmbHQ9dSgoKT0+e0M4PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE1LTMtMyAzLTMifV1dfSk7dmFyIHo4LGhsdD11KCgpPT57ejg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTR2MSJ9XSxbInBhdGgiLHtkOiJNOSAxOXYyIn1dLFsicGF0aCIse2Q6Ik05IDN2MiJ9XSxbInBhdGgiLHtkOiJNOSA5djEifV1dfSk7dmFyIF84LG1sdD11KCgpPT57Xzg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTQgOSAzIDMtMyAzIn1dXX0pO3ZhciBKVSxnbHQ9dSgoKT0+e0pVPVtbInBhdGgiLHtkOiJNMTUgMTBWOSJ9XSxbInBhdGgiLHtkOiJNMTUgMTV2LTEifV0sWyJwYXRoIix7ZDoiTTE1IDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0xNSA1VjMifV0sWyJwYXRoIix7ZDoiTTkgMTBWOSJ9XSxbInBhdGgiLHtkOiJNOSAxNXYtMSJ9XSxbInBhdGgiLHtkOiJNOSAyMXYtMiJ9XSxbInBhdGgiLHtkOiJNOSA1VjMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgVDgsYmx0PXUoKCk9PntUOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dXX0pO3ZhciBlVyx4bHQ9dSgoKT0+e2VXPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Im04IDkgMyAzLTMgMyJ9XV19KTt2YXIgTDgsdmx0PXUoKCk9PntMOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTUgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YyIn1dLFsicGF0aCIse2Q6Ik0xNSA5djEifV1dfSk7dmFyIHRXLHlsdD11KCgpPT57dFc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoibTEwIDE1LTMtMyAzLTMifV1dfSk7dmFyIHJXLHdsdD11KCgpPT57clc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dfSk7dmFyIGFXLGtsdD11KCgpPT57YVc9W1sicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDEifV0sWyJwYXRoIix7ZDoiTTE5IDE1aDIifV0sWyJwYXRoIix7ZDoiTTE5IDloMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDloMiJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBpVyxTbHQ9dSgoKT0+e2lXPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoibTkgMTYgMy0zIDMgMyJ9XV19KTt2YXIgRDgsTWx0PXUoKCk9PntEOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTQgOWgxIn1dLFsicGF0aCIse2Q6Ik0xOSA5aDIifV0sWyJwYXRoIix7ZDoiTTMgOWgyIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XV19KTt2YXIgc1csQ2x0PXUoKCk9PntzVz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Im0xNSAxNC0zIDMtMy0zIn1dXX0pO3ZhciBuVyx6bHQ9dSgoKT0+e25XPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV1dfSk7dmFyIG9XLF9sdD11KCgpPT57b1c9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxMiJ9XV19KTt2YXIgbFcsVGx0PXUoKCk9PntsVz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV19KTt2YXIgJDgsTGx0PXUoKCk9PnskOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik05IDIxVjkifV1dfSk7dmFyIGNXLERsdD11KCgpPT57Y1c9W1sicGF0aCIse2Q6Im0xNiA2LTguNDE0IDguNTg2YTIgMiAwIDAgMCAyLjgyOSAyLjgyOWw4LjQxNC04LjU4NmE0IDQgMCAxIDAtNS42NTctNS42NTdsLTguMzc5IDguNTUxYTYgNiAwIDEgMCA4LjQ4NSA4LjQ4NWw4LjM3OS04LjU1MSJ9XV19KTt2YXIgZFcsJGx0PXUoKCk9PntkVz1bWyJwYXRoIix7ZDoiTTggMjFzLTQtMy00LTkgNC05IDQtOSJ9XSxbInBhdGgiLHtkOiJNMTYgM3M0IDMgNCA5LTQgOS00IDkifV1dfSk7dmFyIHVXLEFsdD11KCgpPT57dVc9W1sicGF0aCIse2Q6Ik0xMSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xNS4yODIgMTlhMSAxIDAgMCAwIC45NDgtLjY4bDIuMzctNi45ODhhNyA3IDAgMSAwLTEzLjIgMGwyLjM3IDYuOTg4YTEgMSAwIDAgMCAuOTQ4LjY4eiJ9XSxbInBhdGgiLHtkOiJNOSA5YTMgMyAwIDEgMSA2IDAifV1dfSk7dmFyIHBXLEVsdD11KCgpPT57cFc9W1sicmVjdCIse3g6IjE0Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiIxOCIscng6IjEifV0sWyJyZWN0Iix7eDoiNSIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiMTgiLHJ4OiIxIn1dXX0pO3ZhciBmVyxJbHQ9dSgoKT0+e2ZXPVtbInBhdGgiLHtkOiJNNS44IDExLjMgMiAyMmwxMC43LTMuNzkifV0sWyJwYXRoIix7ZDoiTTQgM2guMDEifV0sWyJwYXRoIix7ZDoiTTIyIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAyLTIuMjQuNzVhMi45IDIuOSAwIDAgMC0xLjk2IDMuMTJjLjEuODYtLjU3IDEuNjMtMS40NSAxLjYzaC0uMzhjLS44NiAwLTEuNi42LTEuNzYgMS40NEwxNCAxMCJ9XSxbInBhdGgiLHtkOiJtMjIgMTMtLjgyLS4zM2MtLjg2LS4zNC0xLjgyLjItMS45OCAxLjExYy0uMTEuNy0uNzIgMS4yMi0xLjQzIDEuMjJIMTcifV0sWyJwYXRoIix7ZDoibTExIDIgLjMzLjgyYy4zNC44Ni0uMiAxLjgyLTEuMTEgMS45OEM5LjUyIDQuOSA5IDUuNTIgOSA2LjIzVjcifV0sWyJwYXRoIix7ZDoiTTExIDEzYzEuOTMgMS45MyAyLjgzIDQuMTcgMiA1LS44My44My0zLjA3LS4wNy01LTItMS45My0xLjkzLTIuODMtNC4xNy0yLTUgLjgzLS44MyAzLjA3LjA3IDUgMloifV1dfSk7dmFyIGhXLFBsdD11KCgpPT57aFc9W1siY2lyY2xlIix7Y3g6IjExIixjeToiNCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxMGE1IDUgMCAwIDEgNSA1djMuNWEzLjUgMy41IDAgMCAxLTYuODQgMS4wNDVRNi41MiAxNy40OCA0LjQ2IDE2Ljg0QTMuNSAzLjUgMCAwIDEgNS41IDEwWiJ9XV19KTt2YXIgbVcsTmx0PXUoKCk9PnttVz1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik05IDZoNiJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXX0pO3ZhciBBOCxPbHQ9dSgoKT0+e0E4PVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XV19KTt2YXIgZ1csUmx0PXUoKCk9PntnVz1bWyJwYXRoIix7ZDoibTEwIDEwLTYuMTU3IDYuMTYyYTIgMiAwIDAgMC0uNS44MzNsLTEuMzIyIDQuMzZhLjUuNSAwIDAgMCAuNjIyLjYyNGw0LjM1OC0xLjMyM2EyIDIgMCAwIDAgLjgzLS41TDE0IDEzLjk4MiJ9XSxbInBhdGgiLHtkOiJtMTIuODI5IDcuMTcyIDQuMzU5LTQuMzQ2YTEgMSAwIDEgMSAzLjk4NiAzLjk4NmwtNC4zNTMgNC4zNTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgRTgsRmx0PXUoKCk9PntFOD1bWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dfSk7dmFyIGJXLEJsdD11KCgpPT57Ylc9W1sicGF0aCIse2Q6Ik0xNS43MDcgMjEuMjkzYTEgMSAwIDAgMS0xLjQxNCAwbC0xLjU4Ni0xLjU4NmExIDEgMCAwIDEgMC0xLjQxNGw1LjU4Ni01LjU4NmExIDEgMCAwIDEgMS40MTQgMGwxLjU4NiAxLjU4NmExIDEgMCAwIDEgMCAxLjQxNHoifV0sWyJwYXRoIix7ZDoibTE4IDEzLTEuMzc1LTYuODc0YTEgMSAwIDAgMC0uNzQ2LS43NzZMMy4yMzUgMi4wMjhhMSAxIDAgMCAwLTEuMjA3IDEuMjA3TDUuMzUgMTUuODc5YTEgMSAwIDAgMCAuNzc2Ljc0NkwxMyAxOCJ9XSxbInBhdGgiLHtkOiJtMi4zIDIuMyA3LjI4NiA3LjI4NiJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiIyIn1dXX0pO3ZhciB4VyxIbHQ9dSgoKT0+e3hXPVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dfSk7dmFyIHZXLHFsdD11KCgpPT57dlc9W1sicGF0aCIse2Q6Im0xMCAxMC02LjE1NyA2LjE2MmEyIDIgMCAwIDAtLjUuODMzbC0xLjMyMiA0LjM2YS41LjUgMCAwIDAgLjYyMi42MjRsNC4zNTgtMS4zMjNhMiAyIDAgMCAwIC44My0uNUwxNCAxMy45ODIifV0sWyJwYXRoIix7ZDoibTEyLjgyOSA3LjE3MiA0LjM1OS00LjM0NmExIDEgMCAxIDEgMy45ODYgMy45ODZsLTQuMzUzIDQuMzUzIn1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciB5VyxWbHQ9dSgoKT0+e3lXPVtbInBhdGgiLHtkOiJNMTMgNyA4LjcgMi43YTIuNDEgMi40MSAwIDAgMC0zLjQgMEwyLjcgNS4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNEw3IDEzIn1dLFsicGF0aCIse2Q6Im04IDYgMi0yIn1dLFsicGF0aCIse2Q6Im0xOCAxNiAyLTIifV0sWyJwYXRoIix7ZDoibTE3IDExIDQuMyA0LjNjLjk0Ljk0Ljk0IDIuNDYgMCAzLjRsLTIuNiAyLjZjLS45NC45NC0yLjQ2Ljk0LTMuNCAwTDExIDE3In1dLFsicGF0aCIse2Q6Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6In1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XV19KTt2YXIgd1csamx0PXUoKCk9Pnt3Vz1bWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dXX0pO3ZhciBrVyxVbHQ9dSgoKT0+e2tXPVtbInBhdGgiLHtkOiJNMTAuODMgMi4zOGEyIDIgMCAwIDEgMi4zNCAwbDggNS43NGEyIDIgMCAwIDEgLjczIDIuMjVsLTMuMDQgOS4yNmEyIDIgMCAwIDEtMS45IDEuMzdINy4wNGEyIDIgMCAwIDEtMS45LTEuMzdMMi4xIDEwLjM3YTIgMiAwIDAgMSAuNzMtMi4yNXoifV1dfSk7dmFyIFNXLFdsdD11KCgpPT57U1c9W1sibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiNi41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjIuNSJ9XV19KTt2YXIgTVcsR2x0PXUoKCk9PntNVz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIxIn1dLFsicGF0aCIse2Q6Im05IDIwIDMtNiAzIDYifV0sWyJwYXRoIix7ZDoibTYgOCA2IDIgNi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY0In1dXX0pO3ZhciBDVyxZbHQ9dSgoKT0+e0NXPVtbInBhdGgiLHtkOiJNMjAgMTFINCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g0In1dLFsicGF0aCIse2Q6Ik03IDIxVjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAwIDEySDcifV1dfSk7dmFyIHpXLEtsdD11KCgpPT57elc9W1sicGF0aCIse2Q6Ik0xMyAyYTkgOSAwIDAgMSA5IDkifV0sWyJwYXRoIix7ZDoiTTEzIDZhNSA1IDAgMCAxIDUgNSJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIF9XLFpsdD11KCgpPT57X1c9W1sicGF0aCIse2Q6Ik0xNCA2aDgifV0sWyJwYXRoIix7ZDoibTE4IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIFRXLFFsdD11KCgpPT57VFc9W1sicGF0aCIse2Q6Ik0xNiAydjZoNiJ9XSxbInBhdGgiLHtkOiJtMjIgMi02IDYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXX0pO3ZhciBMVyxYbHQ9dSgoKT0+e0xXPVtbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoibTIyIDItNiA2In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV19KTt2YXIgRFcsSmx0PXUoKCk9PntEVz1bWyJwYXRoIix7ZDoiTTEwLjEgMTMuOWExNCAxNCAwIDAgMCAzLjczMiAyLjY2OCAxIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDIgMTggMTggMCAwIDEtMTIuNzI4LTUuMjcyIn1dLFsicGF0aCIse2Q6Ik0yMiAyIDIgMjIifV0sWyJwYXRoIix7ZDoiTTQuNzYgMTMuNTgyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIC4yNDQuNDczIn1dXX0pO3ZhciAkVyxlMnQ9dSgoKT0+eyRXPVtbInBhdGgiLHtkOiJtMTYgOCA2LTYifV0sWyJwYXRoIix7ZDoiTTIyIDhWMmgtNiJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIEFXLHQydD11KCgpPT57QVc9W1sicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV19KTt2YXIgRVcscjJ0PXUoKCk9PntFVz1bWyJsaW5lIix7eDE6IjkiLHgyOiI5Iix5MToiNCIseTI6IjIwIn1dLFsicGF0aCIse2Q6Ik00IDdjMC0xLjcgMS4zLTMgMy0zaDEzIn1dLFsicGF0aCIse2Q6Ik0xOCAyMGMtMS43IDAtMy0xLjMtMy0zVjQifV1dfSk7dmFyIElXLGEydD11KCgpPT57SVc9W1sicGF0aCIse2Q6Ik0xOC41IDhjLTEuNCAwLTIuNi0uOC0zLjItMkE2Ljg3IDYuODcgMCAwIDAgMiA5djExYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtOC41QzIyIDkuNiAyMC40IDggMTguNSA4In1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik02IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDE0djQifV0sWyJwYXRoIix7ZDoiTTE0IDE0djQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djQifV1dfSk7dmFyIFBXLGkydD11KCgpPT57UFc9W1sicGF0aCIse2Q6Im0xNCAxMy04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zTDExIDkuOTk5In1dLFsicGF0aCIse2Q6Ik0xNS45NzMgNC4wMjdBMTMgMTMgMCAwIDAgNS45MDIgMi4zNzNjLTEuMzk4LjM0Mi0xLjA5MiAyLjE1OC4yNzcgMi42MDFhMTkuOSAxOS45IDAgMCAxIDUuODIyIDMuMDI0In1dLFsicGF0aCIse2Q6Ik0xNi4wMDEgMTEuOTk5YTE5LjkgMTkuOSAwIDAgMSAzLjAyNCA1LjgyNGMuNDQ0IDEuMzY5IDIuMjYgMS42NzYgMi42MDMuMjc4QTEzIDEzIDAgMCAwIDIwIDguMDY5In1dLFsicGF0aCIse2Q6Ik0xOC4zNTIgMy4zNTJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMGwtNS4yOTYgNS4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDUuMjk2LTUuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDR6In1dXX0pO3ZhciBOVyxzMnQ9dSgoKT0+e05XPVtbInBhdGgiLHtkOiJNMjEgOVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNyIseDoiMTIiLHk6IjEzIixyeDoiMiJ9XV19KTt2YXIgT1csbjJ0PXUoKCk9PntPVz1bWyJwYXRoIix7ZDoiTTIgMTBoNlY0In1dLFsicGF0aCIse2Q6Im0yIDQgNiA2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY3YTIgMiAwIDAgMC0yLTJoLTcifV0sWyJwYXRoIix7ZDoiTTMgMTR2MmEyIDIgMCAwIDAgMiAyaDMifV0sWyJyZWN0Iix7eDoiMTIiLHk6IjE0Iix3aWR0aDoiMTAiLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIFJXLG8ydD11KCgpPT57Ulc9W1sicGF0aCIse2Q6Ik0xMSAxN2gzdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhMy4xNiAzLjE2IDAgMCAwIDItMmgxYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMWgtMWE1IDUgMCAwIDAtMi00VjNhNCA0IDAgMCAwLTMuMiAxLjZsLS4zLjRIMTFhNiA2IDAgMCAwLTYgNnYxYTUgNSAwIDAgMCAyIDR2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXoifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4djFhMiAyIDAgMCAwIDIgMmgxIn1dXX0pO3ZhciBGVyxsMnQ9dSgoKT0+e0ZXPVtbInBhdGgiLHtkOiJNMTQgM3YxMSJ9XSxbInBhdGgiLHtkOiJNMTQgOWgtM2EzIDMgMCAwIDEgMC02aDkifV0sWyJwYXRoIix7ZDoiTTE4IDN2MTEifV0sWyJwYXRoIix7ZDoiTTIyIDE4SDJsNC00In1dLFsicGF0aCIse2Q6Im02IDIyLTQtNCJ9XV19KTt2YXIgQlcsYzJ0PXUoKCk9PntCVz1bWyJwYXRoIix7ZDoiTTEwIDN2MTEifV0sWyJwYXRoIix7ZDoiTTEwIDlIN2ExIDEgMCAwIDEgMC02aDgifV0sWyJwYXRoIix7ZDoiTTE0IDN2MTEifV0sWyJwYXRoIix7ZDoibTE4IDE0IDQgNEgyIn1dLFsicGF0aCIse2Q6Im0yMiAxOC00IDQifV1dfSk7dmFyIEhXLGQydD11KCgpPT57SFc9W1sicGF0aCIse2Q6Ik0xMyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0SDkuNWE0LjUgNC41IDAgMCAwIDAgOUgxMyJ9XV19KTt2YXIgcVcsdTJ0PXUoKCk9PntxVz1bWyJwYXRoIix7ZDoiTTE4IDExaC00YTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDQifV0sWyJwYXRoIix7ZDoiTTYgN3YxM2EyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY3In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI1Iix4OiI0Iix5OiIyIixyeDoiMSJ9XV19KTt2YXIgVlcscDJ0PXUoKCk9PntWVz1bWyJwYXRoIix7ZDoiTTEyIDE3djUifV0sWyJwYXRoIix7ZDoiTTE1IDkuMzRWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRINy44OSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik05IDl2MS43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMSJ9XV19KTt2YXIgalcsZjJ0PXUoKCk9PntqVz1bWyJwYXRoIix7ZDoibTEwLjUgMjAuNSAxMC0xMGE0Ljk1IDQuOTUgMCAxIDAtNy03bC0xMCAxMGE0Ljk1IDQuOTUgMCAxIDAgNyA3WiJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA3IDcifV1dfSk7dmFyIFVXLGgydD11KCgpPT57VVc9W1sicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik05IDEwLjc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNFYxNmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LS43NmEyIDIgMCAwIDAtMS4xMS0xLjc5bC0xLjc4LS45QTIgMiAwIDAgMSAxNSAxMC43NlY3YTEgMSAwIDAgMSAxLTEgMiAyIDAgMCAwIDAtNEg4YTIgMiAwIDAgMCAwIDQgMSAxIDAgMCAxIDEgMXoifV1dfSk7dmFyIFdXLG0ydD11KCgpPT57V1c9W1sicGF0aCIse2Q6Im0xMiA5LTguNDE0IDguNDE0QTIgMiAwIDAgMCAzIDE4LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMy44MjggMjFoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMTUgMTIifV0sWyJwYXRoIix7ZDoibTE4IDkgLjQuNGExIDEgMCAxIDEtMyAzbC0zLjgtMy44YTEgMSAwIDEgMSAzLTNsLjQuNCAzLjQtMy40YTEgMSAwIDEgMSAzIDN6In1dLFsicGF0aCIse2Q6Im0yIDIyIC40MTQtLjQxNCJ9XV19KTt2YXIgR1csZzJ0PXUoKCk9PntHVz1bWyJwYXRoIix7ZDoibTEyIDE0LTEgMSJ9XSxbInBhdGgiLHtkOiJtMTMuNzUgMTguMjUtMS4yNSAxLjQyIn1dLFsicGF0aCIse2Q6Ik0xNy43NzUgNS42NTRhMTUuNjggMTUuNjggMCAwIDAtMTIuMTIxIDEyLjEyIn1dLFsicGF0aCIse2Q6Ik0xOC44IDkuM2ExIDEgMCAwIDAgMi4xIDcuNyJ9XSxbInBhdGgiLHtkOiJNMjEuOTY0IDIwLjczMmExIDEgMCAwIDEtMS4yMzIgMS4yMzJsLTE4LTVhMSAxIDAgMCAxLS42OTUtMS4yMzJBMTkuNjggMTkuNjggMCAwIDEgMTUuNzMyIDIuMDM3YTEgMSAwIDAgMSAxLjIzMi42OTV6In1dXX0pO3ZhciBZVyxiMnQ9dSgoKT0+e1lXPVtbInBhdGgiLHtkOiJNMiAyMmgyMCJ9XSxbInBhdGgiLHtkOiJNMy43NyAxMC43NyAyIDlsMi00LjUgMS4xLjU1Yy41NS4yOC45Ljg0LjkgMS40NXMuMzUgMS4xNy45IDEuNDVMOCA4LjVsMy02IDEuMDUuNTNhMiAyIDAgMCAxIDEuMDkgMS41MmwuNzIgNS40YTIgMiAwIDAgMCAxLjA5IDEuNTJsNC40IDIuMmMuNDIuMjIuNzguNTUgMS4wMS45NmwuNiAxLjAzYy40OS44OC0uMDYgMS45OC0xLjA2IDIuMWwtMS4xOC4xNWMtLjQ3LjA2LS45NS0uMDItMS4zNy0uMjRMNC4yOSAxMS4xNWEyIDIgMCAwIDEtLjUyLS4zOFoifV1dfSk7dmFyIEtXLHgydD11KCgpPT57S1c9W1sicGF0aCIse2Q6Ik0yIDIyaDIwIn1dLFsicGF0aCIse2Q6Ik02LjM2IDE3LjQgNCAxN2wtMi00IDEuMS0uNTVhMiAyIDAgMCAxIDEuOCAwbC4xNy4xYTIgMiAwIDAgMCAxLjggMEw4IDEyIDUgNmwuOS0uNDVhMiAyIDAgMCAxIDIuMDkuMmw0LjAyIDNhMiAyIDAgMCAwIDIuMS4ybDQuMTktMi4wNmEyLjQxIDIuNDEgMCAwIDEgMS43My0uMTdMMjEgN2ExLjQgMS40IDAgMCAxIC44NyAxLjk5bC0uMzguNzZjLS4yMy40Ni0uNi44NC0xLjA3IDEuMDhMNy41OCAxNy4yYTIgMiAwIDAgMS0xLjIyLjE4WiJ9XV19KTt2YXIgWlcsdjJ0PXUoKCk9PntaVz1bWyJwYXRoIix7ZDoiTTE3LjggMTkuMiAxNiAxMWwzLjUtMy41QzIxIDYgMjEuNSA0IDIxIDNjLTEtLjUtMyAwLTQuNSAxLjVMMTMgOCA0LjggNi4yYy0uNS0uMS0uOS4xLTEuMS41bC0uMy41Yy0uMi41LS4xIDEgLjMgMS4zTDkgMTJsLTIgM0g0bC0xIDEgMyAyIDIgMyAxLTF2LTNsMy0yIDMuNSA1LjNjLjMuNC44LjUgMS4zLjNsLjUtLjJjLjQtLjMuNi0uNy41LTEuMnoifV1dfSk7dmFyIFFXLHkydD11KCgpPT57UVc9W1sicGF0aCIse2Q6Ik01IDVhMiAyIDAgMCAxIDMuMDA4LTEuNzI4bDExLjk5NyA2Ljk5OGEyIDIgMCAwIDEgLjAwMyAzLjQ1OGwtMTIgN0EyIDIgMCAwIDEgNSAxOXoifV1dfSk7dmFyIFhXLHcydD11KCgpPT57WFc9W1sicGF0aCIse2Q6Ik05IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTUgMnY2In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik01IDhoMTQifV0sWyJwYXRoIix7ZDoiTTYgMTFWOGgxMnYzYTYgNiAwIDEgMS0xMiAwWiJ9XV19KTt2YXIgSTgsazJ0PXUoKCk9PntJOD1bWyJwYXRoIix7ZDoiTTYuMyAyMC4zYTIuNCAyLjQgMCAwIDAgMy40IDBMMTIgMThsLTYtNi0yLjMgMi4zYTIuNCAyLjQgMCAwIDAgMCAzLjRaIn1dLFsicGF0aCIse2Q6Im0yIDIyIDMtMyJ9XSxbInBhdGgiLHtkOiJNNy41IDEzLjUgMTAgMTEifV0sWyJwYXRoIix7ZDoiTTEwLjUgMTYuNSAxMyAxNCJ9XSxbInBhdGgiLHtkOiJtMTggMy00IDRoNmwtNCA0In1dXX0pO3ZhciBKVyxTMnQ9dSgoKT0+e0pXPVtbInBhdGgiLHtkOiJNNSAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNXYxNCJ9XV19KTt2YXIgZUcsTTJ0PXUoKCk9PntlRz1bWyJwYXRoIix7ZDoiTTMgMnYxYzAgMSAyIDEgMiAyUzMgNiAzIDdzMiAxIDIgMi0yIDEtMiAyIDIgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjAuODMgOC44M2E0IDQgMCAwIDAtNS42Ni01LjY2bC0xMiAxMmE0IDQgMCAxIDAgNS42NiA1LjY2WiJ9XSxbInBhdGgiLHtkOiJNMTggMTEuNjZWMjJhNCA0IDAgMCAwIDQtNFY2In1dXX0pO3ZhciB0RyxDMnQ9dSgoKT0+e3RHPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE1IDhWMiJ9XSxbInBhdGgiLHtkOiJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTkgOFYyIn1dXX0pO3ZhciByRyx6MnQ9dSgoKT0+e3JHPVtbInBhdGgiLHtkOiJNMTMgMTdhMSAxIDAgMSAwLTIgMGwuNSA0LjVhMC41IDAuNSAwIDAgMCAxIDB6IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoiTTE2Ljg1IDE4LjU4YTkgOSAwIDEgMC05LjcgMCJ9XSxbInBhdGgiLHtkOiJNOCAxNGE1IDUgMCAxIDEgOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV19KTt2YXIgYUcsXzJ0PXUoKCk9PnthRz1bWyJwYXRoIix7ZDoiTTEwIDQuNVY0YTIgMiAwIDAgMC0yLjQxLTEuOTU3In1dLFsicGF0aCIse2Q6Ik0xMy45IDguNGEyIDIgMCAwIDAtMS4yNi0xLjI5NSJ9XSxbInBhdGgiLHtkOiJNMjEuNyAxNi4yQTggOCAwIDAgMCAyMiAxNHYtM2EyIDIgMCAxIDAtNCAwdi0xYTIgMiAwIDAgMC0zLjYzLTEuMTU4In1dLFsicGF0aCIse2Q6Im03IDE1LTEuOC0xLjhhMiAyIDAgMCAwLTIuNzkgMi44Nkw2IDE5LjdhNy43NCA3Ljc0IDAgMCAwIDYgMi4zaDJhOCA4IDAgMCAwIDUuNjU3LTIuMzQzIn1dLFsicGF0aCIse2Q6Ik02IDZ2OCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBpRyxUMnQ9dSgoKT0+e2lHPVtbInBhdGgiLHtkOiJNMTggOGEyIDIgMCAwIDAgMC00IDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMCAwIDQifV0sWyJwYXRoIix7ZDoiTTEwIDIyIDkgOCJ9XSxbInBhdGgiLHtkOiJtMTQgMjIgMS0xNCJ9XSxbInBhdGgiLHtkOiJNMjAgOGMuNSAwIC45LjQuOCAxbC0yLjYgMTJjLS4xLjUtLjcgMS0xLjIgMUg3Yy0uNiAwLTEuMS0uNC0xLjItMUwzLjIgOWMtLjEtLjYuMy0xIC44LTFaIn1dXX0pO3ZhciBzRyxMMnQ9dSgoKT0+e3NHPVtbInBhdGgiLHtkOiJNMTguNiAxNC40Yy44LS44LjgtMiAwLTIuOGwtOC4xLTguMWE0Ljk1IDQuOTUgMCAxIDAtNy4xIDcuMWw4LjEgOC4xYy45LjcgMi4xLjcgMi45LS4xWiJ9XSxbInBhdGgiLHtkOiJtMjIgMjItNS41LTUuNSJ9XV19KTt2YXIgbkcsRDJ0PXUoKCk9PntuRz1bWyJwYXRoIix7ZDoiTTIyIDE0YTggOCAwIDAgMS04IDgifV0sWyJwYXRoIix7ZDoiTTE4IDExdi0xYTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTAgOS41VjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1In1dXX0pO3ZhciBvRywkMnQ9dSgoKT0+e29HPVtbInBhdGgiLHtkOiJNMTggN2MwLTUuMzMzLTgtNS4zMzMtOCAwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djE0In1dLFsicGF0aCIse2Q6Ik02IDIxaDEyIn1dLFsicGF0aCIse2Q6Ik02IDEzaDEwIn1dXX0pO3ZhciBsRyxBMnQ9dSgoKT0+e2xHPVtbInBhdGgiLHtkOiJNMTIgMnYxMCJ9XSxbInBhdGgiLHtkOiJNMTguNCA2LjZhOSA5IDAgMSAxLTEyLjc3LjA0In1dXX0pO3ZhciBjRyxFMnQ9dSgoKT0+e2NHPVtbInBhdGgiLHtkOiJNMTguMzYgNi42NEE5IDkgMCAwIDEgMjAuNzcgMTUifV0sWyJwYXRoIix7ZDoiTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBkRyxJMnQ9dSgoKT0+e2RHPVtbInBhdGgiLHtkOiJNMiAzaDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAzdjExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjMifV0sWyJwYXRoIix7ZDoibTcgMjEgNS01IDUgNSJ9XV19KTt2YXIgdUcsUDJ0PXUoKCk9Pnt1Rz1bWyJwYXRoIix7ZDoiTTEzLjUgMjJIN2ExIDEgMCAwIDEtMS0xdi02YTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXYuNSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dXX0pO3ZhciBwRyxOMnQ9dSgoKT0+e3BHPVtbInBhdGgiLHtkOiJNMTIuNTMxIDIySDdhMSAxIDAgMCAxLTEtMXYtNmExIDEgMCAwIDEgMS0xaDYuMzc3In1dLFsicGF0aCIse2Q6Im0xNi41IDE2LjUgNSA1In1dLFsicGF0aCIse2Q6Im0xNi41IDIxLjUgNS01In1dLFsicGF0aCIse2Q6Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MS41In1dLFsicGF0aCIse2Q6Ik02IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NiJ9XV19KTt2YXIgZkcsTzJ0PXUoKCk9PntmRz1bWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dLFsicmVjdCIse3g6IjYiLHk6IjE0Iix3aWR0aDoiMTIiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIGhHLFIydD11KCgpPT57aEc9W1sicGF0aCIse2Q6Ik01IDcgMyA1In1dLFsicGF0aCIse2Q6Ik05IDZWMyJ9XSxbInBhdGgiLHtkOiJtMTMgNyAyLTIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEzIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMS44MyAxMkgyMGEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTRhMiAyIDAgMCAxIDItMmgyLjE3In1dLFsicGF0aCIse2Q6Ik0xNiAxNmgyIn1dXX0pO3ZhciBtRyxGMnQ9dSgoKT0+e21HPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA5djExIn1dLFsicGF0aCIse2Q6Ik0yIDloMTNhMiAyIDAgMCAxIDIgMnY5In1dXX0pO3ZhciBnRyxCMnQ9dSgoKT0+e2dHPVtbInBhdGgiLHtkOiJNMTUuMzkgNC4zOWExIDEgMCAwIDAgMS42OC0uNDc0IDIuNSAyLjUgMCAxIDEgMy4wMTQgMy4wMTUgMSAxIDAgMCAwLS40NzQgMS42OGwxLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwIDMuNDE0TDE5LjYxIDE1LjM5YTEgMSAwIDAgMS0xLjY4LS40NzQgMi41IDIuNSAwIDEgMC0zLjAxNCAzLjAxNSAxIDEgMCAwIDEgLjQ3NCAxLjY4bC0xLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMS0zLjQxNCAwTDguNjEgMTkuNjFhMSAxIDAgMCAwLTEuNjguNDc0IDIuNSAyLjUgMCAxIDEtMy4wMTQtMy4wMTUgMSAxIDAgMCAwIC40NzQtMS42OGwtMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMC0zLjQxNEw0LjM5IDguNjFhMSAxIDAgMCAxIDEuNjguNDc0IDIuNSAyLjUgMCAxIDAgMy4wMTQtMy4wMTUgMSAxIDAgMCAxLS40NzQtMS42OGwxLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAzLjQxNCAweiJ9XV19KTt2YXIgYkcsSDJ0PXUoKCk9PntiRz1bWyJwYXRoIix7ZDoiTTIuNSAxNi44OGExIDEgMCAwIDEtLjMyLTEuNDNsOS0xMy4wMmExIDEgMCAwIDEgMS42NCAwbDkgMTMuMDFhMSAxIDAgMCAxLS4zMiAxLjQ0bC04LjUxIDQuODZhMiAyIDAgMCAxLTEuOTggMFoifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV1dfSk7dmFyIHhHLHEydD11KCgpPT57eEc9W1sicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjUiLHg6IjE2Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNSIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTIxIDE2aC0zYTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMjEgMjF2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA3djNhMiAyIDAgMCAxLTIgMkg3In1dLFsicGF0aCIse2Q6Ik0zIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgM2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE2di4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMXYtMSJ9XV19KTt2YXIgdkcsVjJ0PXUoKCk9Pnt2Rz1bWyJwYXRoIix7ZDoiTTE2IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6In1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6In1dXX0pO3ZhciB5RyxqMnQ9dSgoKT0+e3lHPVtbInBhdGgiLHtkOiJNMTMgMTZhMyAzIDAgMCAxIDIuMjQgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAyMWgtOGE0IDQgMCAwIDEtNC00IDcgNyAwIDAgMSA3LTdoLjJMOS42IDYuNGExIDEgMCAxIDEgMi44LTIuOEwxNS44IDdoLjJjMy4zIDAgNiAyLjcgNiA2djFhMiAyIDAgMCAxLTIgMmgtMWEzIDMgMCAwIDAtMyAzIn1dLFsicGF0aCIse2Q6Ik0yMCA4LjU0VjRhMiAyIDAgMSAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik03LjYxMiAxMi41MjRhMyAzIDAgMSAwLTEuNiA0LjMifV1dfSk7dmFyIHdHLFUydD11KCgpPT57d0c9W1sicGF0aCIse2Q6Ik0xOS4wNyA0LjkzQTEwIDEwIDAgMCAwIDYuOTkgMy4zNCJ9XSxbInBhdGgiLHtkOiJNNCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMi4yOSA5LjYyQTEwIDEwIDAgMSAwIDIxLjMxIDguMzUifV0sWyJwYXRoIix7ZDoiTTE2LjI0IDcuNzZBNiA2IDAgMSAwIDguMjMgMTYuNjcifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgMTEuNjZBNiA2IDAgMCAxIDE1Ljc3IDE2LjY3In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoibTEzLjQxIDEwLjU5IDUuNjYtNS42NiJ9XV19KTt2YXIga0csVzJ0PXUoKCk9PntrRz1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDY0MWE0IDQgMCAwIDEtNCAwTDcuNTI3ODYgMTkuNzQ1OTcgQSAxIDEgMCAwIDAgNy45OTMwMyAyMS4xNjIxMSAxMCAxMCAwIDAgMCAxNi4wMDY5NyAyMS4xNjIxMSAxIDEgMCAwIDAgMTYuNDcyMTQgMTkuNzQ1OTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxMmE0IDQgMCAwIDAtMi0zLjQ2NGwyLjQ3Mi00LjI4MmExIDEgMCAwIDEgMS40Ni0uMzA1IDEwIDEwIDAgMCAxIDQuMDA2IDYuOTRBMSAxIDAgMCAxIDIxIDEyeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmE0IDQgMCAwIDEgMi0zLjQ2NEw3LjUyOCA0LjI1NGExIDEgMCAwIDAtMS40Ni0uMzA1IDEwIDEwIDAgMCAwLTQuMDA2IDYuOTRBMSAxIDAgMCAwIDMgMTJ6In1dXX0pO3ZhciBTRyxHMnQ9dSgoKT0+e1NHPVtbInBhdGgiLHtkOiJNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMSJ9XV19KTt2YXIgTUcsWTJ0PXUoKCk9PntNRz1bWyJwYXRoIix7ZDoiTTEzLjQxNCAxMy40MTRhMiAyIDAgMSAxLTIuODI4LTIuODI4In1dLFsicGF0aCIse2Q6Ik0xNi4yNDcgNy43NjFhNiA2IDAgMCAxIDEuNzQ0IDQuNTcyIn1dLFsicGF0aCIse2Q6Ik0xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMi4yMzQgMTAuNzIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MjUgMTkuMDY3YTEwIDEwIDAgMCAxIDAtMTQuMTM0In1dLFsicGF0aCIse2Q6Ik03Ljc1MyAxNi4yMzlhNiA2IDAgMCAxIDAtOC40NzgifV1dfSk7dmFyIENHLEsydD11KCgpPT57Q0c9W1sicGF0aCIse2Q6Ik01IDE2djIifV0sWyJwYXRoIix7ZDoiTTE5IDE2djIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dfSk7dmFyIHpHLFoydD11KCgpPT57ekc9W1sicGF0aCIse2Q6Ik0xNi4yNDcgNy43NjFhNiA2IDAgMCAxIDAgOC40NzgifV0sWyJwYXRoIix7ZDoiTTE5LjA3NSA0LjkzM2ExMCAxMCAwIDAgMSAwIDE0LjEzNCJ9XSxbInBhdGgiLHtkOiJNNC45MjUgMTkuMDY3YTEwIDEwIDAgMCAxIDAtMTQuMTM0In1dLFsicGF0aCIse2Q6Ik03Ljc1MyAxNi4yMzlhNiA2IDAgMCAxIDAtOC40NzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgX0csUTJ0PXUoKCk9PntfRz1bWyJwYXRoIix7ZDoiTTQuOSAxNi4xQzEgMTIuMiAxIDUuOCA0LjkgMS45In1dLFsicGF0aCIse2Q6Ik03LjggNC43YTYuMTQgNi4xNCAwIDAgMC0uOCA3LjUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xNi4yIDQuOGMyIDIgMi4yNiA1LjExLjggNy40NyJ9XSxbInBhdGgiLHtkOiJNMTkuMSAxLjlhOS45NiA5Ljk2IDAgMCAxIDAgMTQuMSJ9XSxbInBhdGgiLHtkOiJNOS41IDE4aDUifV0sWyJwYXRoIix7ZDoibTggMjIgNC0xMSA0IDExIn1dXX0pO3ZhciBURyxYMnQ9dSgoKT0+e1RHPVtbInBhdGgiLHtkOiJNMjAuMzQgMTcuNTJhMTAgMTAgMCAxIDAtMi44MiAyLjgyIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoibTEzLjQxIDEzLjQxIDQuMTggNC4xOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBMRyxKMnQ9dSgoKT0+e0xHPVtbInBhdGgiLHtkOiJNMjIgMTdhMTAgMTAgMCAwIDAtMjAgMCJ9XSxbInBhdGgiLHtkOiJNNiAxN2E2IDYgMCAwIDEgMTIgMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdhMiAyIDAgMCAxIDQgMCJ9XV19KTt2YXIgREcsZWN0PXUoKCk9PntERz1bWyJwYXRoIix7ZDoiTTEzIDIySDRhMiAyIDAgMCAxIDAtNGgxMiJ9XSxbInBhdGgiLHtkOiJNMTMuMjM2IDE4YTMgMyAwIDAgMC0yLjItNSJ9XSxbInBhdGgiLHtkOiJNMTYgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE2LjgyIDMuOTRhMyAzIDAgMSAxIDMuMjM3IDQuODY4bDEuODE1IDIuNTg3YTEuNSAxLjUgMCAwIDEtMS41IDIuMWwtMi44NzItLjQ1M2EzIDMgMCAwIDAtMy41IDMifV0sWyJwYXRoIix7ZDoiTTE3IDQuOTg4YTMgMyAwIDEgMC01LjIgMi4wNTJBNyA3IDAgMCAwIDQgMTQuMDE1IDQgNCAwIDAgMCA4IDE4In1dXX0pO3ZhciAkRyx0Y3Q9dSgoKT0+eyRHPVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHg6IjYiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIEFHLHJjdD11KCgpPT57QUc9W1sicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNC44MjggMTQuODI5YTQgNCAwIDAgMS01LjY1NiAwIDQgNCAwIDAgMSAwLTUuNjU3IDQgNCAwIDAgMSA1LjY1NiAwIn1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBFRyxhY3Q9dSgoKT0+e0VHPVtbInBhdGgiLHtkOiJNMTUuODI4IDE0LjgyOWE0IDQgMCAwIDEtNS42NTYgMCA0IDQgMCAwIDEgMC01LjY1NyA0IDQgMCAwIDEgNS42NTYgMCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg1In1dXX0pO3ZhciBJRyxpY3Q9dSgoKT0+e0lHPVtbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxMWg4In1dLFsicGF0aCIse2Q6Ik04IDdoOCJ9XSxbInBhdGgiLHtkOiJNOSA3YTQgNCAwIDAgMSAwIDhIOGwzIDIifV1dfSk7dmFyIFBHLHNjdD11KCgpPT57UEc9W1sicGF0aCIse2Q6Im0xMiAxMCAzLTMifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dLFsicGF0aCIse2Q6Im05IDcgMyAzdjcifV1dfSk7dmFyIE5HLG5jdD11KCgpPT57Tkc9W1sicGF0aCIse2Q6Ik0xMCAxN1Y5LjVhMSAxIDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAxM2g1In1dLFsicGF0aCIse2Q6Ik04IDE3aDcifV1dfSk7dmFyIE9HLG9jdD11KCgpPT57T0c9W1sicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDExaDVhMiAyIDAgMCAwIDAtNGgtM3YxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg1In1dXX0pO3ZhciBSRyxsY3Q9dSgoKT0+e1JHPVtbInBhdGgiLHtkOiJNMTAgMTFoNCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdWN2g1In1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDE1aDUifV1dfSk7dmFyIEZHLGNjdD11KCgpPT57Rkc9W1sicGF0aCIse2Q6Ik0xMyAxNkg4In1dLFsicGF0aCIse2Q6Ik0xNCA4SDgifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV1dfSk7dmFyIEJHLGRjdD11KCgpPT57Qkc9W1sicGF0aCIse2Q6Ik0xMiAxN1Y3In1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDAgMCAwIDRoNGEyIDIgMCAwIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV1dfSk7dmFyIEhHLHVjdD11KCgpPT57SEc9W1sicGF0aCIse2Q6Ik0xMCA3djEwYTUgNSAwIDAgMCA1LTUifV0sWyJwYXRoIix7ZDoibTE0IDgtNiAzIn1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBQOCxwY3Q9dSgoKT0+e1A4PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dfSk7dmFyIHFHLGZjdD11KCgpPT57cUc9W1sicGF0aCIse2Q6Ik0xNCA0djE2SDNhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTF6In1dLFsiY2lyY2xlIix7Y3g6IjE0IixjeToiMTIiLHI6IjgifV1dfSk7dmFyIFZHLGhjdD11KCgpPT57Vkc9W1sicGF0aCIse2Q6Ik0yMCA2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0xLjYtLjhsLTEuNi0yLjEzYTEgMSAwIDAgMC0xLjYgMEw5LjYgMTcuMkEyIDIgMCAwIDEgOCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiJ9XV19KTt2YXIgakcsbWN0PXUoKCk9PntqRz1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgVUcsZ2N0PXUoKCk9PntVRz1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjIwIix4OiI2Iix5OiIyIixyeDoiMiJ9XV19KTt2YXIgV0csYmN0PXUoKCk9PntXRz1bWyJwYXRoIix7ZDoiTTcgMTlINC44MTVhMS44MyAxLjgzIDAgMCAxLTEuNTctLjg4MSAxLjc4NSAxLjc4NSAwIDAgMS0uMDA0LTEuNzg0TDcuMTk2IDkuNSJ9XSxbInBhdGgiLHtkOiJNMTEgMTloOC4yMDNhMS44MyAxLjgzIDAgMCAwIDEuNTU2LS44OSAxLjc4NCAxLjc4NCAwIDAgMCAwLTEuNzc1bC0xLjIyNi0yLjEyIn1dLFsicGF0aCIse2Q6Im0xNCAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik04LjI5MyAxMy41OTYgNy4xOTYgOS41IDMuMSAxMC41OTgifV0sWyJwYXRoIix7ZDoibTkuMzQ0IDUuODExIDEuMDkzLTEuODkyQTEuODMgMS44MyAwIDAgMSAxMS45ODUgM2ExLjc4NCAxLjc4NCAwIDAgMSAxLjU0Ni44ODhsMy45NDMgNi44NDMifV0sWyJwYXRoIix7ZDoibTEzLjM3OCA5LjYzMyA0LjA5NiAxLjA5OCAxLjA5Ny00LjA5NiJ9XV19KTt2YXIgR0cseGN0PXUoKCk9PntHRz1bWyJwYXRoIix7ZDoibTE1IDE0IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTIwIDlIOS41QTUuNSA1LjUgMCAwIDAgNCAxNC41QTUuNSA1LjUgMCAwIDAgOS41IDIwSDEzIn1dXX0pO3ZhciBZRyx2Y3Q9dSgoKT0+e1lHPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIEtHLHljdD11KCgpPT57S0c9W1sicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIFpHLHdjdD11KCgpPT57Wkc9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIFFHLGtjdD11KCgpPT57UUc9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dXX0pO3ZhciBYRyxTY3Q9dSgoKT0+e1hHPVtbInBhdGgiLHtkOiJNMjEgOEwxOC43NCA1Ljc0QTkuNzUgOS43NSAwIDAgMCAxMiAzQzExIDMgMTAuMDMgMy4xNiA5LjEzIDMuNDcifV0sWyJwYXRoIix7ZDoiTTggMTZIM3Y1In1dLFsicGF0aCIse2Q6Ik0zIDEyQzMgOS41MSA0IDcuMjYgNS42NCA1LjY0In1dLFsicGF0aCIse2Q6Im0zIDE2IDIuMjYgMi4yNkE5Ljc1IDkuNzUgMCAwIDAgMTIgMjFjMi40OSAwIDQuNzQtMSA2LjM2LTIuNjQifV0sWyJwYXRoIix7ZDoiTTIxIDEyYzAgMS0uMTYgMS45Ny0uNDcgMi44NyJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dLFsicGF0aCIse2Q6Ik0yMiAyMiAyIDIifV1dfSk7dmFyIEpHLE1jdD11KCgpPT57Skc9W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4In1dLFsicGF0aCIse2Q6Ik0yMSAzdjVoLTUifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2In1dLFsicGF0aCIse2Q6Ik04IDE2SDN2NSJ9XV19KTt2YXIgZVksQ2N0PXUoKCk9PntlWT1bWyJwYXRoIix7ZDoiTTUgNmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDQgNHYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2WiJ9XSxbInBhdGgiLHtkOiJNNSAxMGgxNCJ9XSxbInBhdGgiLHtkOiJNMTUgN3Y2In1dXX0pO3ZhciB0WSx6Y3Q9dSgoKT0+e3RZPVtbInBhdGgiLHtkOiJNMTcgM3YxMCJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgNS41IDguNjYgNSJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgMTAuNSA4LjY2LTUifV0sWyJwYXRoIix7ZDoiTTkgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtMnoifV1dfSk7dmFyIHJZLF9jdD11KCgpPT57clk9W1sicGF0aCIse2Q6Ik00IDdWNGgxNnYzIn1dLFsicGF0aCIse2Q6Ik01IDIwaDYifV0sWyJwYXRoIix7ZDoiTTEzIDQgOCAyMCJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNS01IDUifV1dfSk7dmFyIGFZLFRjdD11KCgpPT57YVk9W1sicGF0aCIse2Q6Im0xNyAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxM3YxYTQgNCAwIDAgMS00IDRIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTBoMXY0In1dXX0pO3ZhciBpWSxMY3Q9dSgoKT0+e2lZPVtbInBhdGgiLHtkOiJtMiA5IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTEzIDE4SDdhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Im0yMiAxNS0zIDMtMy0zIn1dLFsicGF0aCIse2Q6Ik0xMSA2aDZhMiAyIDAgMCAxIDIgMnYxMCJ9XV19KTt2YXIgc1ksRGN0PXUoKCk9PntzWT1bWyJwYXRoIix7ZDoibTE3IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMyAxMXYtMWE0IDQgMCAwIDEgNC00aDE0In1dLFsicGF0aCIse2Q6Im03IDIyLTQtNCA0LTQifV0sWyJwYXRoIix7ZDoiTTIxIDEzdjFhNCA0IDAgMCAxLTQgNEgzIn1dXX0pO3ZhciBuWSwkY3Q9dSgoKT0+e25ZPVtbInBhdGgiLHtkOiJNMTQgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTE0IDRhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBhMSAxIDAgMCAxLTEtMSJ9XSxbInBhdGgiLHtkOiJNMTkgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTIxIDRhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgOWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Im0zIDcgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIG9ZLEFjdD11KCgpPT57b1k9W1sicGF0aCIse2Q6Ik0xNCA0YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTE1IDEwYTEgMSAwIDAgMS0xLTEifV0sWyJwYXRoIix7ZDoiTTIxIDRhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgOWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Im0zIDcgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIGxZLEVjdD11KCgpPT57bFk9W1sicGF0aCIse2Q6Im0xMiAxNy01LTUgNS01In1dLFsicGF0aCIse2Q6Ik0yMiAxOHYtMmE0IDQgMCAwIDAtNC00SDcifV0sWyJwYXRoIix7ZDoibTcgMTctNS01IDUtNSJ9XV19KTt2YXIgY1ksSWN0PXUoKCk9PntjWT1bWyJwYXRoIix7ZDoiTTIwIDE4di0yYTQgNCAwIDAgMC00LTRINCJ9XSxbInBhdGgiLHtkOiJtOSAxNy01LTUgNS01In1dXX0pO3ZhciBkWSxQY3Q9dSgoKT0+e2RZPVtbInBhdGgiLHtkOiJNMTIgNmEyIDIgMCAwIDAtMy40MTQtMS40MTRsLTYgNmEyIDIgMCAwIDAgMCAyLjgyOGw2IDZBMiAyIDAgMCAwIDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJNMjIgNmEyIDIgMCAwIDAtMy40MTQtMS40MTRsLTYgNmEyIDIgMCAwIDAgMCAyLjgyOGw2IDZBMiAyIDAgMCAwIDIyIDE4eiJ9XV19KTt2YXIgdVksTmN0PXUoKCk9Pnt1WT1bWyJwYXRoIix7ZDoiTTEyIDExLjIyQzExIDkuOTk3IDEwIDkgMTAgOGEyIDIgMCAwIDEgNCAwYzAgMS0uOTk4IDIuMDAyLTIuMDEgMy4yMiJ9XSxbInBhdGgiLHtkOiJtMTIgMTggMi41Ny0zLjUifV0sWyJwYXRoIix7ZDoiTTYuMjQzIDkuMDE2YTcgNyAwIDAgMSAxMS41MDctLjAwOSJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41MyAxMiAxMS4yMiJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41M0M3LjcyOCAxMi4yNDYgNiAxMC4yMjEgNiA3YTYgNSAwIDAgMSAxMiAwYy0uMDA1IDMuMjItMS43NzggNS4yMzUtMy40MyA3LjVsMy41NTcgNC41MjdhMSAxIDAgMCAxLS4yMDMgMS40M2wtMS44OTQgMS4zNmExIDEgMCAwIDEtMS4zODQtLjIxNUwxMiAxOGwtMi42NzkgMy41OTNhMSAxIDAgMCAxLTEuMzkuMjEzbC0xLjg2NS0xLjM1M2ExIDEgMCAwIDEtLjIwMy0xLjQyMnoifV1dfSk7dmFyIHBZLE9jdD11KCgpPT57cFk9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xMiA1VjMifV0sWyJwYXRoIix7ZDoiTTEyIDl2MyJ9XSxbInBhdGgiLHtkOiJNMi4wNzcgMTguNDQ5QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjkyNC0yLjU1bC00LTE0QTIgMiAwIDAgMCAxNiAzSDhhMiAyIDAgMCAwLTEuOTI0IDEuNDV6In1dXX0pO3ZhciBmWSxSY3Q9dSgoKT0+e2ZZPVtbInBhdGgiLHtkOiJNMTIgMTV2NXMzLjAzLS41NSA0LTJjMS4wOC0xLjYyIDAtNSAwLTUifV0sWyJwYXRoIix7ZDoiTTQuNSAxNi41Yy0xLjUgMS4yNi0yIDUtMiA1czMuNzQtLjUgNS0yYy43MS0uODQuNy0yLjEzLS4wOS0yLjkxYTIuMTggMi4xOCAwIDAgMC0yLjkxLS4wOSJ9XSxbInBhdGgiLHtkOiJNOSAxMmEyMiAyMiAwIDAgMSAyLTMuOTVBMTIuODggMTIuODggMCAwIDEgMjIgMmMwIDIuNzItLjc4IDcuNS02IDExYTIyLjQgMjIuNCAwIDAgMS00IDJ6In1dLFsicGF0aCIse2Q6Ik05IDEySDRzLjU1LTMuMDMgMi00YzEuNjItMS4wOCA1IC4wNSA1IC4wNSJ9XV19KTt2YXIgaFksRmN0PXUoKCk9PntoWT1bWyJwYXRoIix7ZDoibTE1IDEzIDMuNzA4IDcuNDE2In1dLFsicGF0aCIse2Q6Ik0zIDE5YTE1IDE1IDAgMCAwIDE4IDAifV0sWyJwYXRoIix7ZDoibTMgMiAzLjIxIDkuNjMzQTIgMiAwIDAgMCA4LjEwOSAxM0gxOCJ9XSxbInBhdGgiLHtkOiJtOSAxMy0zLjcwOCA3LjQxNiJ9XV19KTt2YXIgbVksQmN0PXUoKCk9PnttWT1bWyJwYXRoIix7ZDoiTTYgMTlWNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTlWNi44In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtNy44In1dLFsicGF0aCIse2Q6Ik0xOCA1djQifV0sWyJwYXRoIix7ZDoiTTE4IDE5di02In1dLFsicGF0aCIse2Q6Ik0yMiAxOVY5In1dLFsicGF0aCIse2Q6Ik0yIDE5VjlhNCA0IDAgMCAxIDQtNGMyIDAgNCAxLjMzIDYgNHM0IDQgNiA0YTQgNCAwIDEgMC0zLTYuNjUifV1dfSk7dmFyIGdZLEhjdD11KCgpPT57Z1k9W1sicGF0aCIse2Q6Ik0xNyAxMGgtMWE0IDQgMCAxIDEgNC00di41MzQifV0sWyJwYXRoIix7ZDoiTTE3IDZoMWE0IDQgMCAwIDEgMS40MiA3Ljc0bC0yLjI5Ljg3YTYgNiAwIDAgMS01LjMzOS0xMC42OGwyLjA2OS0xLjMxIn1dLFsicGF0aCIse2Q6Ik00LjUgMTdjMi44LS41IDQuNCAwIDUuNS44czEuOCAyLjIgMi4zIDMuN2MtMiAuNC0zLjUuNC00LjgtLjMtMS4yLS42LTIuMy0xLjktMy00LjIifV0sWyJwYXRoIix7ZDoiTTkuNzcgMTJDNCAxNSAyIDIyIDIgMjIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiI4IixyOiIyIn1dXX0pO3ZhciBOOCxxY3Q9dSgoKT0+e044PVtbInBhdGgiLHtkOiJNMTYuNDY2IDcuNUMxNS42NDMgNC4yMzcgMTMuOTUyIDIgMTIgMiA5LjIzOSAyIDcgNi40NzcgNyAxMnMyLjIzOSAxMCA1IDEwYy4zNDIgMCAuNjc3LS4wNjkgMS0uMiJ9XSxbInBhdGgiLHtkOiJtMTUuMTk0IDEzLjcwNyAzLjgxNCAxLjg2LTEuODYgMy44MTQifV0sWyJwYXRoIix7ZDoiTTE5IDE1LjU3Yy0xLjgwNC44ODUtNC4yNzQgMS40My03IDEuNDMtNS41MjMgMC0xMC0yLjIzOS0xMC01czQuNDc3LTUgMTAtNWM0LjgzOCAwIDguODczIDEuNzE4IDkuOCA0In1dXX0pO3ZhciBiWSxWY3Q9dSgoKT0+e2JZPVtbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik0xMiA5aDIifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc0IDkuNzQgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciB4WSxqY3Q9dSgoKT0+e3hZPVtbInBhdGgiLHtkOiJNMjAgOVY3YTIgMiAwIDAgMC0yLTJoLTYifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2NWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiJ9XV19KTt2YXIgdlksVWN0PXUoKCk9Pnt2WT1bWyJwYXRoIix7ZDoiTTEyIDVINmEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoibTkgOCAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Ik00IDE0djRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiJ9XV19KTt2YXIgeVksV2N0PXUoKCk9Pnt5WT1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XV19KTt2YXIgd1ksR2N0PXUoKCk9Pnt3WT1bWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDEgMS05LTljMi41MiAwIDQuOTMgMSA2Ljc0IDIuNzRMMjEgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dXX0pO3ZhciBrWSxZY3Q9dSgoKT0+e2tZPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTkiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTloOC41Yy40IDAgLjktLjEgMS4zLS4yIn1dLFsicGF0aCIse2Q6Ik01LjIgNS4yQTMuNSAzLjUzIDAgMCAwIDYuNSAxMkgxMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNS4zYTMuNSAzLjUgMCAwIDAtMy4zLTMuMyJ9XSxbInBhdGgiLHtkOiJNMTUgNWgtNC4zIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV19KTt2YXIgU1ksS2N0PXUoKCk9PntTWT1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE5IixyOiIzIn1dLFsicGF0aCIse2Q6Ik05IDE5aDguNWEzLjUgMy41IDAgMCAwIDAtN2gtMTFhMy41IDMuNSAwIDAgMSAwLTdIMTUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI1IixyOiIzIn1dXX0pO3ZhciBNWSxaY3Q9dSgoKT0+e01ZPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02LjAxIDE4SDYifV0sWyJwYXRoIix7ZDoiTTEwLjAxIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxMHY0In1dLFsicGF0aCIse2Q6Ik0xNy44NCA3LjE3YTQgNCAwIDAgMC01LjY2IDAifV0sWyJwYXRoIix7ZDoiTTIwLjY2IDQuMzRhOCA4IDAgMCAwLTExLjMxIDAifV1dfSk7dmFyIE84LFFjdD11KCgpPT57Tzg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV1dfSk7dmFyIFI4LFhjdD11KCgpPT57Ujg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIxIDlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVIMyJ9XV19KTt2YXIgQ1ksSmN0PXUoKCk9PntDWT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjEgNy41SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEySDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2LjVIMyJ9XV19KTt2YXIgelksZTB0PXUoKCk9Pnt6WT1bWyJwYXRoIix7ZDoiTTQgMTFhOSA5IDAgMCAxIDkgOSJ9XSxbInBhdGgiLHtkOiJNNCA0YTE2IDE2IDAgMCAxIDE2IDE2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV19KTt2YXIgX1ksdDB0PXUoKCk9PntfWT1bWyJwYXRoIix7ZDoiTTEwIDE1di0zIn1dLFsicGF0aCIse2Q6Ik0xNCAxNXYtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTV2LTMifV0sWyJwYXRoIix7ZDoiTTIgOFY0In1dLFsicGF0aCIse2Q6Ik0yMiA2SDIifV0sWyJwYXRoIix7ZDoiTTIyIDhWNCJ9XSxbInBhdGgiLHtkOiJNNiAxNXYtMyJ9XSxbInJlY3QiLHt4OiIyIix5OiIxMiIsd2lkdGg6IjIwIixoZWlnaHQ6IjgiLHJ4OiIyIn1dXX0pO3ZhciBUWSxyMHQ9dSgoKT0+e1RZPVtbInBhdGgiLHtkOiJNMjEuMyAxNS4zYTIuNCAyLjQgMCAwIDEgMCAzLjRsLTIuNiAyLjZhMi40IDIuNCAwIDAgMS0zLjQgMEwyLjcgOC43YTIuNDEgMi40MSAwIDAgMSAwLTMuNGwyLjYtMi42YTIuNDEgMi40MSAwIDAgMSAzLjQgMFoifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNSAyLTIifV0sWyJwYXRoIix7ZDoibTExLjUgOS41IDItMiJ9XSxbInBhdGgiLHtkOiJtOC41IDYuNSAyLTIifV0sWyJwYXRoIix7ZDoibTE3LjUgMTUuNSAyLTIifV1dfSk7dmFyIExZLGEwdD11KCgpPT57TFk9W1sicGF0aCIse2Q6Ik02IDExaDhhNCA0IDAgMCAwIDAtOEg5djE4In1dLFsicGF0aCIse2Q6Ik02IDE1aDgifV1dfSk7dmFyIERZLGkwdD11KCgpPT57RFk9W1sicGF0aCIse2Q6Ik0xMCAydjE1In1dLFsicGF0aCIse2Q6Ik03IDIyYTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWgxNmExIDEgMCAwIDEgMSAxIDQgNCAwIDAgMS00IDR6In1dLFsicGF0aCIse2Q6Ik05LjE1OSAyLjQ2YTEgMSAwIDAgMSAxLjUyMS0uMTkzbDkuOTc3IDguOThBMSAxIDAgMCAxIDIwIDEzSDRhMSAxIDAgMCAxLS44MjQtMS41Njd6In1dXX0pO3ZhciAkWSxzMHQ9dSgoKT0+eyRZPVtbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaIn1dLFsicGF0aCIse2Q6Ik0xMS4zOCAxMmEyLjQgMi40IDAgMCAxLS40LTQuNzcgMi40IDIuNCAwIDAgMSAzLjItMi43NyAyLjQgMi40IDAgMCAxIDMuNDctLjYzIDIuNCAyLjQgMCAwIDEgMy4zNyAzLjM3IDIuNCAyLjQgMCAwIDEtMS4xIDMuNyAyLjUxIDIuNTEgMCAwIDEgLjAzIDEuMSJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNC00In1dLFsicGF0aCIse2Q6Ik0xMC45IDcuMjVBMy45OSAzLjk5IDAgMCAwIDQgMTBjMCAuNzMuMiAxLjQxLjU0IDIifV1dfSk7dmFyIEFZLG4wdD11KCgpPT57QVk9W1sicGF0aCIse2Q6Im0yLjM3IDExLjIyMyA4LjM3Mi02Ljc3N2EyIDIgMCAwIDEgMi41MTYgMGw4LjM3MSA2Ljc3NyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTUuMjUifV0sWyJwYXRoIix7ZDoiTTMgMTVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoOSJ9XSxbInBhdGgiLHtkOiJtNi42NyAxNSA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI0Iix4OiIyIix5OiIxMSIscng6IjEifV1dfSk7dmFyIEVZLG8wdD11KCgpPT57RVk9W1sicGF0aCIse2Q6Ik00IDEwYTcuMzEgNy4zMSAwIDAgMCAxMCAxMFoifV0sWyJwYXRoIix7ZDoibTkgMTUgMy0zIn1dLFsicGF0aCIse2Q6Ik0xNyAxM2E2IDYgMCAwIDAtNi02In1dLFsicGF0aCIse2Q6Ik0yMSAxM0ExMCAxMCAwIDAgMCAxMSAzIn1dXX0pO3ZhciBJWSxsMHQ9dSgoKT0+e0lZPVtbInBhdGgiLHtkOiJtMTMuNSA2LjUtMy4xNDgtMy4xNDhhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw2LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0TDkuNSAxMC41In1dLFsicGF0aCIse2Q6Ik0xNi41IDcuNSAxOSA1In1dLFsicGF0aCIse2Q6Im0xNy41IDEwLjUgMy4xNDggMy4xNDhhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDEtMS43MDQgMEwxMy41IDE0LjUifV0sWyJwYXRoIix7ZDoiTTkgMjFhNiA2IDAgMCAwLTYtNiJ9XSxbInBhdGgiLHtkOiJNOS4zNTIgMTAuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw0LjI5Ni00LjI5NmExLjIwNSAxLjIwNSAwIDAgMCAwLTEuNzA0bC0yLjI5Ni0yLjI5NmExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAweiJ9XV19KTt2YXIgUFksYzB0PXUoKCk9PntQWT1bWyJwYXRoIix7ZDoibTIwIDE5LjUtNS41IDEuMiJ9XSxbInBhdGgiLHtkOiJNMTQuNSA0djExLjIyYTEgMSAwIDAgMCAxLjI0Mi45N0wyMCAxNS4yIn1dLFsicGF0aCIse2Q6Im0yLjk3OCAxOS4zNTEgNS41NDktMS4zNjNBMiAyIDAgMCAwIDEwIDE2VjIifV0sWyJwYXRoIix7ZDoiTTIwIDEwIDQgMTMuNSJ9XV19KTt2YXIgTlksZDB0PXUoKCk9PntOWT1bWyJwYXRoIix7ZDoiTTEwIDJ2M2ExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE4IDE4di02YTEgMSAwIDAgMC0xLTFoLTZhMSAxIDAgMCAwLTEgMXY2In1dLFsicGF0aCIse2Q6Ik0xOCAyMkg0YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNOCAxOGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5LjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDIuODI4IDIuODI4QTIgMiAwIDAgMSAyMiA2LjgyOFYxNmEyIDIgMCAwIDEtMi4wMSAyeiJ9XV19KTt2YXIgT1ksdTB0PXUoKCk9PntPWT1bWyJwYXRoIix7ZDoiTTEzIDEzSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik0xNCA4aDEifV0sWyJwYXRoIix7ZDoiTTE3IDIxdi00In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwLjQxIDIwLjQxQTIgMiAwIDAgMSAxOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgLjU5LTEuNDEifV0sWyJwYXRoIix7ZDoiTTI5LjUgMTEuNXM1IDUgNCA1In1dLFsicGF0aCIse2Q6Ik05IDNoNi4yYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTUifV1dfSk7dmFyIFJZLHAwdD11KCgpPT57Ulk9W1sicGF0aCIse2Q6Ik0xNS4yIDNhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNyAyMXYtN2ExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik03IDN2NGExIDEgMCAwIDAgMSAxaDcifV1dfSk7dmFyIEY4LGYwdD11KCgpPT57Rjg9W1sicGF0aCIse2Q6Ik01IDd2MTFhMSAxIDAgMCAwIDEgMWgxMSJ9XSxbInBhdGgiLHtkOiJNNS4yOTMgMTguNzA3IDExIDEzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjUiLHI6IjIifV1dfSk7dmFyIEZZLGgwdD11KCgpPT57Rlk9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Im0xOSA4IDMgOGE1IDUgMCAwIDEtNiAwelY3In1dLFsicGF0aCIse2Q6Ik0zIDdoMWExNyAxNyAwIDAgMCA4LTIgMTcgMTcgMCAwIDAgOCAyaDEifV0sWyJwYXRoIix7ZDoibTUgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XV19KTt2YXIgQlksbTB0PXUoKCk9PntCWT1bWyJwYXRoIix7ZDoiTTEyIDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTVIOXYtNSJ9XSxbInBhdGgiLHtkOiJNMTYgM2g1djUifV0sWyJwYXRoIix7ZDoiTTIxIDMgOSAxNSJ9XV19KTt2YXIgSFksZzB0PXUoKCk9PntIWT1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNyA3djEwIn1dXX0pO3ZhciBxWSxiMHQ9dSgoKT0+e3FZPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV19KTt2YXIgVlkseDB0PXUoKCk9PntWWT1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV1dfSk7dmFyIGpZLHYwdD11KCgpPT57alk9W1sicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTcuODI4IDEzLjA3QTMgMyAwIDAgMSAxMiA4Ljc2NGEzIDMgMCAwIDEgNC4xNzIgNC4zMDZsLTMuNDQ3IDMuNjJhMSAxIDAgMCAxLTEuNDQ5IDB6In1dXX0pO3ZhciBVWSx5MHQ9dSgoKT0+e1VZPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dXX0pO3ZhciBXWSx3MHQ9dSgoKT0+e1dZPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoibTE2IDE2LTEuOS0xLjkifV1dfSk7dmFyIEdZLGswdD11KCgpPT57R1k9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTcgOGg4In1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE2aDYifV1dfSk7dmFyIFlZLFMwdD11KCgpPT57WVk9W1sicGF0aCIse2Q6Ik0xNyAxMnY0YTEgMSAwIDAgMS0xIDFoLTQifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTE3IDhWNyJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTcgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInJlY3QiLHt4OiI3Iix5OiI3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgS1ksTTB0PXUoKCk9PntLWT1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV19KTt2YXIgWlksQzB0PXUoKCk9PntaWT1bWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTggNC45MzNWMjEifV0sWyJwYXRoIix7ZDoibTQgNiA3LjEwNi0zLjc5YTIgMiAwIDAgMSAxLjc4OCAwTDIwIDYifV0sWyJwYXRoIix7ZDoibTYgMTEtMy41MiAyLjE0N2ExIDEgMCAwIDAtLjQ4Ljg1NFYxOWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTVhMSAxIDAgMCAwLS40OC0uODUzTDE4IDExIn1dLFsicGF0aCIse2Q6Ik02IDQuOTMzVjIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XV19KTt2YXIgUVksejB0PXUoKCk9PntRWT1bWyJwYXRoIix7ZDoiTTUuNDIgOS40MiA4IDEyIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiI4IixyOiIyIn1dLFsicGF0aCIse2Q6Im0xNCA2LTguNTggOC41OCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEwLjggMTQuOCAxNCAxOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBYWSxfMHQ9dSgoKT0+e1hZPVtbInBhdGgiLHtkOiJNMjEgNGgtMy41bDIgMTEuMDUifV0sWyJwYXRoIix7ZDoiTTYuOTUgMTdoNS4xNDJjLjUyMyAwIC45NS0uNDA2IDEuMDYzLS45MTZhNi41IDYuNSAwIDAgMSA1LjM0NS01LjAwOSJ9XSxbImNpcmNsZSIse2N4OiIxOS41IixjeToiMTcuNSIscjoiMi41In1dLFsiY2lyY2xlIix7Y3g6IjQuNSIsY3k6IjE3LjUiLHI6IjIuNSJ9XV19KTt2YXIgSlksVDB0PXUoKCk9PntKWT1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTguMTIgOC4xMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMjAgNCA4LjEyIDE1Ljg4In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTQuOCAxNC44IDIwIDIwIn1dXX0pO3ZhciBlSyxMMHQ9dSgoKT0+e2VLPVtbInBhdGgiLHtkOiJNMTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoibTIyIDMtNSA1In1dLFsicGF0aCIse2Q6Im0xNyAzIDUgNSJ9XV19KTt2YXIgdEssRDB0PXUoKCk9Pnt0Sz1bWyJwYXRoIix7ZDoiTTEzIDNINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0xNyA4IDUtNSJ9XSxbInBhdGgiLHtkOiJNMTcgM2g1djUifV1dfSk7dmFyIHJLLCQwdD11KCgpPT57cks9W1sicGF0aCIse2Q6Ik0xNSAxMmgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQifV0sWyJwYXRoIix7ZDoiTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMyJ9XV19KTt2YXIgYUssQTB0PXUoKCk9PnthSz1bWyJwYXRoIix7ZDoiTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0In1dLFsicGF0aCIse2Q6Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMifV1dfSk7dmFyIGlLLEUwdD11KCgpPT57aUs9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTExIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTEgMTVoLjAxIn1dXX0pO3ZhciBzSyxJMHQ9dSgoKT0+e3NLPVtbInBhdGgiLHtkOiJtOCAxMSAyIDIgNC00In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV1dfSk7dmFyIG5LLFAwdD11KCgpPT57bks9W1sicGF0aCIse2Q6Im0xMyAxMy41IDItMi41LTItMi41In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dLFsicGF0aCIse2Q6Ik05IDguNSA3IDExbDIgMi41In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV1dfSk7dmFyIG9LLE4wdD11KCgpPT57b0s9W1sicGF0aCIse2Q6Im0xMy41IDguNS01IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIgbEssTzB0PXUoKCk9PntsSz1bWyJwYXRoIix7ZDoibTEzLjUgOC41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA1IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIgY0ssUjB0PXUoKCk9PntjSz1bWyJwYXRoIix7ZDoibTIxIDIxLTQuMzQtNC4zNCJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dXX0pO3ZhciBkSyxGMHQ9dSgoKT0+e2RLPVtbInBhdGgiLHtkOiJNMTYgNWE0IDMgMCAwIDAtOCAwYzAgNCA4IDMgOCA3YTQgMyAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTggMTlhNCAzIDAgMCAwIDggMGMwLTQtOC0zLTgtN2E0IDMgMCAwIDEgOCAwIn1dXX0pO3ZhciBCOCxCMHQ9dSgoKT0+e0I4PVtbInBhdGgiLHtkOiJNMy43MTQgMy4wNDhhLjQ5OC40OTggMCAwIDAtLjY4My42MjdsMi44NDMgNy42MjdhMiAyIDAgMCAxIDAgMS4zOTZsLTIuODQyIDcuNjI3YS40OTguNDk4IDAgMCAwIC42ODIuNjI3bDE4LTguNWEuNS41IDAgMCAwIDAtLjkwNHoifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTYifV1dfSk7dmFyIHVLLEgwdD11KCgpPT57dUs9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTR2MWEyIDIgMCAwIDAgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE0IDdoMWEyIDIgMCAwIDEgMiAydjEifV1dfSk7dmFyIHBLLHEwdD11KCgpPT57cEs9W1sicGF0aCIse2Q6Ik0xNC41MzYgMjEuNjg2YS41LjUgMCAwIDAgLjkzNy0uMDI0bDYuNS0xOWEuNDk2LjQ5NiAwIDAgMC0uNjM1LS42MzVsLTE5IDYuNWEuNS41IDAgMCAwLS4wMjQuOTM3bDcuOTMgMy4xOGEyIDIgMCAwIDEgMS4xMTIgMS4xMXoifV0sWyJwYXRoIix7ZDoibTIxLjg1NCAyLjE0Ny0xMC45NCAxMC45MzkifV1dfSk7dmFyIGZLLFYwdD11KCgpPT57Zks9W1sicGF0aCIse2Q6Im0xNiAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Im04IDggNC00IDQgNCJ9XV19KTt2YXIgaEssajB0PXUoKCk9PntoSz1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTggOC00IDQgNCA0In1dXX0pO3ZhciBtSyxVMHQ9dSgoKT0+e21LPVtbInBhdGgiLHtkOiJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ4IDE0Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTMuMTQ4IDkuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAxNS42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjUgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtLjUifV0sWyJwYXRoIix7ZDoiTTQuNSAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtLjUifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDZoLjAxIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV1dfSk7dmFyIGdLLFcwdD11KCgpPT57Z0s9W1sicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMTRINGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgNmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0xMyA2LTQgNmg2bC00IDYifV1dfSk7dmFyIGJLLEcwdD11KCgpPT57Yks9W1sicGF0aCIse2Q6Ik03IDJoMTNhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTUifV0sWyJwYXRoIix7ZDoiTTEwIDEwIDIuNSAyLjVDMiAyIDIgMi41IDIgNXYzYTIgMiAwIDAgMCAyIDJoNnoifV0sWyJwYXRoIix7ZDoiTTIyIDE3di0xYTIgMiAwIDAgMC0yLTJoLTEifV0sWyJwYXRoIix7ZDoiTTQgMTRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTYuNWwxLS41LjUuNS04LThINHoifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIHhLLFkwdD11KCgpPT57eEs9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiMTgiLHkyOiIxOCJ9XV19KTt2YXIgdkssSzB0PXUoKCk9Pnt2Sz1bWyJwYXRoIix7ZDoiTTE0IDE3SDUifV0sWyJwYXRoIix7ZDoiTTE5IDdoLTkifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiNyIscjoiMyJ9XV19KTt2YXIgeUssWjB0PXUoKCk9Pnt5Sz1bWyJwYXRoIix7ZDoiTTkuNjcxIDQuMTM2YTIuMzQgMi4zNCAwIDAgMSA0LjY1OSAwIDIuMzQgMi4zNCAwIDAgMCAzLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEgMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAgMCAzLjgzMSAyLjM0IDIuMzQgMCAwIDEtMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAtMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxLTQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwLTMuMzItMS45MTUgMi4zNCAyLjM0IDAgMCAxLTIuMzMtNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAtMy44MzFBMi4zNCAyLjM0IDAgMCAxIDYuMzUgNi4wNTFhMi4zNCAyLjM0IDAgMCAwIDMuMzE5LTEuOTE1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dfSk7dmFyIHdLLFEwdD11KCgpPT57d0s9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTIiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOSIscjoiMyJ9XSxbImxpbmUiLHt4MToiOC41OSIseDI6IjE1LjQyIix5MToiMTMuNTEiLHkyOiIxNy40OSJ9XSxbImxpbmUiLHt4MToiMTUuNDEiLHgyOiI4LjU5Iix5MToiNi41MSIseTI6IjEwLjQ5In1dXX0pO3ZhciBrSyxYMHQ9dSgoKT0+e2tLPVtbInBhdGgiLHtkOiJNOC4zIDEwYS43LjcgMCAwIDEtLjYyNi0xLjA3OUwxMS40IDNhLjcuNyAwIDAgMSAxLjE5OC0uMDQzTDE2LjMgOC45YS43LjcgMCAwIDEtLjU3MiAxLjFaIn1dLFsicmVjdCIse3g6IjMiLHk6IjE0Iix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTcuNSIscjoiMy41In1dXX0pO3ZhciBTSyxKMHQ9dSgoKT0+e1NLPVtbInBhdGgiLHtkOiJNMTIgMnYxMyJ9XSxbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04In1dXX0pO3ZhciBNSyxlZHQ9dSgoKT0+e01LPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjIxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjMiLHgyOiIyMSIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5Iix5MToiOSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1Iix5MToiOSIseTI6IjIxIn1dXX0pO3ZhciBDSyx0ZHQ9dSgoKT0+e0NLPVtbInBhdGgiLHtkOiJNMTQgMTFhMiAyIDAgMSAxLTQgMCA0IDQgMCAwIDEgOCAwIDYgNiAwIDAgMS0xMiAwIDggOCAwIDAgMSAxNiAwIDEwIDEwIDAgMSAxLTIwIDAgMTEuOTMgMTEuOTMgMCAwIDEgMi40Mi03LjIyIDIgMiAwIDEgMSAzLjE2IDIuNDQifV1dfSk7dmFyIHpLLHJkdD11KCgpPT57eks9W1sicGF0aCIse2Q6Ik0xMiAxMlY5YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMifV0sWyJwYXRoIix7ZDoiTTE2IDIwdi0zYTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzIn1dLFsicGF0aCIse2Q6Ik0yMCAyMlYyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDE2In1dLFsicGF0aCIse2Q6Ik00IDIwaDE2In1dLFsicGF0aCIse2Q6Ik00IDJ2MjAifV0sWyJwYXRoIix7ZDoiTTQgNGgxNiJ9XV19KTt2YXIgX0ssYWR0PXUoKCk9PntfSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV19KTt2YXIgVEssaWR0PXUoKCk9PntUSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im00LjI0MyA1LjIxIDE0LjM5IDEyLjQ3MiJ9XV19KTt2YXIgTEssc2R0PXUoKCk9PntMSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIERLLG5kdD11KCgpPT57REs9W1sicGF0aCIse2Q6Ik0xMSAyMmMtMy44MDYtMS40NS03LTMuOTY2LTctOVY2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXY0In1dLFsicGF0aCIse2Q6Ik0xNC45MjMgMTYuNTQ3IDE0IDE2LjE2NCJ9XSxbInBhdGgiLHtkOiJtMTQuOTIzIDE4Ljg0My0uOTIzLjM4MyJ9XSxbInBhdGgiLHtkOiJNMTYuNTQ3IDE0LjkyMyAxNi4xNjQgMTQifV0sWyJwYXRoIix7ZDoibTE2LjU0NyAyMC40NjctLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE4Ljg0MyAxNC45MjMuMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjIyNSAyMS4zOTEtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC40NjcgMTYuNTQ3LjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC40NjcgMTguODQzLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTcuNjk1IixjeToiMTcuNjk1IixyOiIzIn1dXX0pO3ZhciAkSyxvZHQ9dSgoKT0+eyRLPVtbInBhdGgiLHtkOiJtMTAuOTI5IDE0LjQ2Ny0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJNMTAuOTI5IDguOTIzIDEwLjU0NiA4In1dLFsicGF0aCIse2Q6Ik0xMy4yMjUgOC45MjMgMTMuNjA4IDgifV0sWyJwYXRoIix7ZDoibTEzLjYwNyAxNS4zOTEtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0xNC44NDkgMTAuNTQ3LjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC44NDkgMTIuODQzLjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im05LjMwNSAxMC41NDctLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjMwNSAxMi44NDMtLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTIuMDc3IixjeToiMTEuNjk1IixyOiIzIn1dXX0pO3ZhciBBSyxsZHQ9dSgoKT0+e0FLPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgRUssY2R0PXUoKCk9PntFSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYyIn1dXX0pO3ZhciBJSyxkZHQ9dSgoKT0+e0lLPVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik01IDVhMSAxIDAgMCAwLTEgMXY3YzAgNSAzLjUgNy41IDcuNjcgOC45NGExIDEgMCAwIDAgLjY3LjAxYzIuMzUtLjgyIDQuNDgtMS45NyA1LjktMy43MSJ9XSxbInBhdGgiLHtkOiJNOS4zMDkgMy42NTJBMTIuMjUyIDEyLjI1MiAwIDAgMCAxMS4yNCAyLjI4YTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXY3YTkuNzg0IDkuNzg0IDAgMCAxLS4wOCAxLjI2NCJ9XV19KTt2YXIgUEssdWR0PXUoKCk9PntQSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV0sWyJwYXRoIix7ZDoiTTEyIDl2NiJ9XV19KTt2YXIgTksscGR0PXUoKCk9PntOSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV1dfSk7dmFyIEg4LGZkdD11KCgpPT57SDg9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXX0pO3ZhciBPSyxoZHQ9dSgoKT0+e09LPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjQifV1dfSk7dmFyIHE4LG1kdD11KCgpPT57cTg9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgOS41IDUgNSJ9XV19KTt2YXIgUkssZ2R0PXUoKCk9PntSSz1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dXX0pO3ZhciBGSyxiZHQ9dSgoKT0+e0ZLPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dLFsicGF0aCIse2Q6Ik0xMiAydjcuNSJ9XSxbInBhdGgiLHtkOiJtMTkgNS01LjIzIDUuMjMifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC03LjUifV0sWyJwYXRoIix7ZDoibTE5IDE5LTUuMjMtNS4yMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTQuNVYyMiJ9XSxbInBhdGgiLHtkOiJNMTAuMjMgMTMuNzcgNSAxOSJ9XSxbInBhdGgiLHtkOiJNOS41IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwLjIzIDEwLjIzIDUgNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyLjUifV1dfSk7dmFyIEJLLHhkdD11KCgpPT57Qks9W1sicGF0aCIse2Q6Ik0xMiAxMC4xODlWMTQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTNWN2EyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xOS4zOCAyMEExMS42IDExLjYgMCAwIDAgMjEgMTRsLTguMTg4LTMuNjM5YTIgMiAwIDAgMC0xLjYyNCAwTDMgMTRhMTEuNiAxMS42IDAgMCAwIDIuODEgNy43NiJ9XSxbInBhdGgiLHtkOiJNMiAyMWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMXMxLjIgMSAyLjUgMWMyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV1dfSk7dmFyIEhLLHZkdD11KCgpPT57SEs9W1sicGF0aCIse2Q6Ik0yMC4zOCAzLjQ2IDE2IDJhNCA0IDAgMCAxLTggMEwzLjYyIDMuNDZhMiAyIDAgMCAwLTEuMzQgMi4yM2wuNTggMy40N2ExIDEgMCAwIDAgLjk5Ljg0SDZ2MTBjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWMTBoMi4xNWExIDEgMCAwIDAgLjk5LS44NGwuNTgtMy40N2EyIDIgMCAwIDAtMS4zNC0yLjIzeiJ9XV19KTt2YXIgcUsseWR0PXUoKCk9PntxSz1bWyJwYXRoIix7ZDoiTTE2IDEwYTQgNCAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTMuMTAzIDYuMDM0aDE3Ljc5NCJ9XSxbInBhdGgiLHtkOiJNMy40IDUuNDY3YTIgMiAwIDAgMC0uNCAxLjJWMjBhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjYuNjY3YTIgMiAwIDAgMC0uNC0xLjJsLTItMi42NjdBMiAyIDAgMCAwIDE3IDJIN2EyIDIgMCAwIDAtMS42Ljh6In1dXX0pO3ZhciBWSyx3ZHQ9dSgoKT0+e1ZLPVtbInBhdGgiLHtkOiJtMTUgMTEtMSA5In1dLFsicGF0aCIse2Q6Im0xOSAxMS00LTcifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJwYXRoIix7ZDoibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQifV0sWyJwYXRoIix7ZDoiTTQuNSAxNS41aDE1In1dLFsicGF0aCIse2Q6Im01IDExIDQtNyJ9XSxbInBhdGgiLHtkOiJtOSAxMSAxIDkifV1dfSk7dmFyIGpLLGtkdD11KCgpPT57aks9W1siY2lyY2xlIix7Y3g6IjgiLGN5OiIyMSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIxIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yLjA1IDIuMDVoMmwyLjY2IDEyLjQyYTIgMiAwIDAgMCAyIDEuNThoOS43OGEyIDIgMCAwIDAgMS45NS0xLjU3bDEuNjUtNy40M0g1LjEyIn1dXX0pO3ZhciBVSyxTZHQ9dSgoKT0+e1VLPVtbInBhdGgiLHtkOiJNMjEuNTYgNC41NmExLjUgMS41IDAgMCAxIDAgMi4xMjJsLS40Ny40N2EzIDMgMCAwIDEtNC4yMTItLjAzIDMgMyAwIDAgMSAwLTQuMjQzbC40NC0uNDRhMS41IDEuNSAwIDAgMSAyLjEyMSAweiJ9XSxbInBhdGgiLHtkOiJNMyAyMmExIDEgMCAwIDEtMS0xdi0zLjU4NmExIDEgMCAwIDEgLjI5My0uNzA3bDMuMzU1LTMuMzU1YTEuMjA1IDEuMjA1IDAgMCAxIDEuNzA0IDBsMy4yOTYgMy4yOTZhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMy4zNTUgMy4zNTVhMSAxIDAgMCAxLS43MDcuMjkzeiJ9XSxbInBhdGgiLHtkOiJtOSAxNSA3Ljg3OS03Ljg3OCJ9XV19KTt2YXIgV0ssTWR0PXUoKCk9PntXSz1bWyJwYXRoIix7ZDoibTQgNCAyLjUgMi41In1dLFsicGF0aCIse2Q6Ik0xMy41IDYuNWE0Ljk1IDQuOTUgMCAwIDAtNyA3In1dLFsicGF0aCIse2Q6Ik0xNSA1IDUgMTUifV0sWyJwYXRoIix7ZDoiTTE0IDE3di4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAxM3YuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEwdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTEgMjB2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHYuMDEifV0sWyJwYXRoIix7ZDoiTTIwIDExdi4wMSJ9XV19KTt2YXIgR0ssQ2R0PXUoKCk9PntHSz1bWyJwYXRoIix7ZDoiTTQgMTNWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDIydi01In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtMiJ9XSxbInBhdGgiLHtkOiJNMTggMjB2LTMifV0sWyJwYXRoIix7ZDoiTTIgMTNoMjAifV0sWyJwYXRoIix7ZDoiTTYgMjB2LTMifV1dfSk7dmFyIFlLLHpkdD11KCgpPT57WUs9W1sicGF0aCIse2Q6Ik0xMSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEzIDIyYy41LS41IDEuMTItMSAyLjUtMS0xLjM4IDAtMi0uNS0yLjUtMSJ9XSxbInBhdGgiLHtkOiJNMTQgMmEzLjI4IDMuMjggMCAwIDEtMy4yMjcgMS43OThsLTYuMTctLjU2MUEyLjM4NyAyLjM4NyAwIDEgMCA0LjM4NyA4SDE1LjVhMSAxIDAgMCAxIDAgMTMgMSAxIDAgMCAwIDAtNUgxMmE3IDcgMCAwIDEtNy03VjgifV0sWyJwYXRoIix7ZDoiTTE0IDhhOC41IDguNSAwIDAgMSAwIDgifV0sWyJwYXRoIix7ZDoiTTE2IDE2YzIgMCA0LjUtNCA0LTYifV1dfSk7dmFyIEtLLF9kdD11KCgpPT57S0s9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDZtLTYtNnY0LjhtMC00LjhoNC44In1dLFsicGF0aCIse2Q6Ik05IDE5LjhWMTVtMCAwSDQuMk05IDE1bC02IDYifV0sWyJwYXRoIix7ZDoiTTE1IDQuMlY5bTAgMGg0LjhNMTUgOWw2LTYifV0sWyJwYXRoIix7ZDoiTTkgNC4yVjltMCAwSDQuMk05IDkgMyAzIn1dXX0pO3ZhciBaSyxUZHQ9dSgoKT0+e1pLPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDkuNSAxMy41In1dLFsicGF0aCIse2Q6Ik0xNC41IDE0LjUgMTIgMTcifV0sWyJwYXRoIix7ZDoiTTE3IDguOEE2IDYgMCAwIDEgMTMuOCAyMEgxMEE2LjUgNi41IDAgMCAxIDcgOGE1IDUgMCAwIDEgMTAgMHoifV1dfSk7dmFyIFFLLExkdD11KCgpPT57UUs9W1sicGF0aCIse2Q6Im0xOCAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Im0xOCAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMThoMS45NzNhNCA0IDAgMCAwIDMuMy0xLjdsNS40NTQtOC42YTQgNCAwIDAgMSAzLjMtMS43SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDZoMS45NzJhNCA0IDAgMCAxIDMuNiAyLjIifV0sWyJwYXRoIix7ZDoiTTIyIDE4aC02LjA0MWE0IDQgMCAwIDEtMy4zLTEuOGwtLjM1OS0uNDUifV1dfSk7dmFyIFhLLERkdD11KCgpPT57WEs9W1sicGF0aCIse2Q6Ik0xOCA3VjVhMSAxIDAgMCAwLTEtMUg2LjVhLjUuNSAwIDAgMC0uNC44bDQuNSA2YTIgMiAwIDAgMSAwIDIuNGwtNC41IDZhLjUuNSAwIDAgMCAuNC44SDE3YTEgMSAwIDAgMCAxLTF2LTIifV1dfSk7dmFyIEpLLCRkdD11KCgpPT57Sks9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTE3IDIwVjgifV1dfSk7dmFyIGVaLEFkdD11KCgpPT57ZVo9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XV19KTt2YXIgdFosRWR0PXUoKCk9Pnt0Wj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XV19KTt2YXIgclosSWR0PXUoKCk9PntyWj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dXX0pO3ZhciBhWixQZHQ9dSgoKT0+e2FaPVtbInBhdGgiLHtkOiJNMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTcgMjB2LTQifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi04In1dLFsicGF0aCIse2Q6Ik0xNyAyMFY4In1dLFsicGF0aCIse2Q6Ik0yMiA0djE2In1dXX0pO3ZhciBpWixOZHQ9dSgoKT0+e2laPVtbInBhdGgiLHtkOiJtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCJ9XSxbInBhdGgiLHtkOiJNMyAyMWgxOCJ9XV19KTt2YXIgc1osT2R0PXUoKCk9PntzWj1bWyJwYXRoIix7ZDoiTTEwIDlINEwyIDdsMi0yaDYifV0sWyJwYXRoIix7ZDoiTTE0IDVoNmwyIDItMiAyaC02In1dLFsicGF0aCIse2Q6Ik0xMCAyMlY0YTIgMiAwIDEgMSA0IDB2MTgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XV19KTt2YXIgblosUmR0PXUoKCk9PntuWj1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MyJ9XSxbInBhdGgiLHtkOiJNMi4zNTQgMTAuMzU0YTEuMjA3IDEuMjA3IDAgMCAxIDAtMS43MDhsMi4wNi0yLjA2QTIgMiAwIDAgMSA1LjgyOCA2aDEyLjM0NGEyIDIgMCAwIDEgMS40MTQuNTg2bDIuMDYgMi4wNmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA4bC0yLjA2IDIuMDZhMiAyIDAgMCAxLTEuNDE0LjU4Nkg1LjgyOGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dfSk7dmFyIG9aLEZkdD11KCgpPT57b1o9W1sicGF0aCIse2Q6Ik03IDE4di02YTUgNSAwIDEgMSAxMCAwdjYifV0sWyJwYXRoIix7ZDoiTTUgMjFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMTguNSA0LjUgMTggNSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxIn1dLFsicGF0aCIse2Q6Ik0xMiAydjEifV0sWyJwYXRoIix7ZDoibTQuOTI5IDQuOTI5LjcwNy43MDcifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV1dfSk7dmFyIGxaLEJkdD11KCgpPT57bFo9W1sicGF0aCIse2Q6Ik0xNy45NzEgNC4yODVBMiAyIDAgMCAxIDIxIDZ2MTJhMiAyIDAgMCAxLTMuMDI5IDEuNzE1bC05Ljk5Ny01Ljk5OGEyIDIgMCAwIDEtLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgMjBWNCJ9XV19KTt2YXIgY1osSGR0PXUoKCk9PntjWj1bWyJwYXRoIix7ZDoiTTIxIDR2MTYifV0sWyJwYXRoIix7ZDoiTTYuMDI5IDQuMjg1QTIgMiAwIDAgMCAzIDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiJ9XV19KTt2YXIgZFoscWR0PXUoKCk9PntkWj1bWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XV19KTt2YXIgdVosVmR0PXUoKCk9Pnt1Wj1bWyJwYXRoIix7ZDoiTTExIDE2LjU4NlYxOWExIDEgMCAwIDEtMSAxSDJMMTguMzcgMy42M2ExIDEgMCAxIDEgMyAzbC05LjY2MyA5LjY2M2ExIDEgMCAwIDEtMS40MTQgMEw4IDE0In1dXX0pO3ZhciBwWixqZHQ9dSgoKT0+e3BaPVtbInBhdGgiLHtkOiJtMTIuNSAxNy0uNS0xLS41IDFoMXoifV0sWyJwYXRoIix7ZDoiTTE1IDIyYTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwIDEuNTYtMy4yNSA4IDggMCAxIDAtMTEuMTIgMEEyIDIgMCAwIDAgOCAyMHYxYTEgMSAwIDAgMCAxIDF6In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIxIn1dXX0pO3ZhciBmWixVZHQ9dSgoKT0+e2ZaPVtbInBhdGgiLHtkOiJNMTAgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xNCAzdjQifV0sWyJwYXRoIix7ZDoiTTE2IDE3djQifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC05In1dLFsicGF0aCIse2Q6Ik0yMSAxOWgtNSJ9XSxbInBhdGgiLHtkOiJNMjEgNWgtNyJ9XSxbInBhdGgiLHtkOiJNOCAxMHY0In1dLFsicGF0aCIse2Q6Ik04IDEySDMifV1dfSk7dmFyIFY4LFdkdD11KCgpPT57Vjg9W1sicGF0aCIse2Q6Ik0xMCA4aDQifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi05In1dLFsicGF0aCIse2Q6Ik0xMiA4VjMifV0sWyJwYXRoIix7ZDoiTTE3IDE2aDQifV0sWyJwYXRoIix7ZDoiTTE5IDEyVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxdi01In1dLFsicGF0aCIse2Q6Ik0zIDE0aDQifV0sWyJwYXRoIix7ZDoiTTUgMTBWMyJ9XSxbInBhdGgiLHtkOiJNNSAyMXYtNyJ9XV19KTt2YXIgaFosR2R0PXUoKCk9PntoWj1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyLjY2NyA4IDEwIDEyaDRsLTIuNjY3IDQifV1dfSk7dmFyIG1aLFlkdD11KCgpPT57bVo9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTMgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik0xNi40NiA2LjIxYTExLjc2IDExLjc2IDAgMCAxIDAgMTEuNTgifV0sWyJwYXRoIix7ZDoiTTE5LjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCJ9XV19KTt2YXIgZ1osS2R0PXUoKCk9PntnWj1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XV19KTt2YXIgYlosWmR0PXUoKCk9PntiWj1bWyJwYXRoIix7ZDoiTTIyIDExdjFhMTAgMTAgMCAxIDEtOS0xMCJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkuMDEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjkiLHkyOiI5In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDJ2NiJ9XV19KTt2YXIgeFosUWR0PXUoKCk9Pnt4Wj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTRzMS41IDIgNCAyIDQtMiA0LTIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgdlosWGR0PXUoKCk9Pnt2Wj1bWyJwYXRoIix7ZDoiTTIgMTNhNiA2IDAgMSAwIDEyIDAgNCA0IDAgMSAwLTggMCAyIDIgMCAwIDAgNCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTJjNC40IDAgOC0zLjYgOC04VjdhMiAyIDAgMSAwLTQgMHY2In1dLFsicGF0aCIse2Q6Ik0xOCAzIDE5LjEgNS4yIn1dLFsicGF0aCIse2Q6Ik0yMiAzIDIwLjkgNS4yIn1dXX0pO3ZhciB5WixKZHQ9dSgoKT0+e3laPVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoibTE0IDIwIDEuMjUtMi41TDE4IDE4In1dLFsicGF0aCIse2Q6Im0xNCA0IDEuMjUgMi41TDE4IDYifV0sWyJwYXRoIix7ZDoibTE3IDIxLTMtNmgtNCJ9XSxbInBhdGgiLHtkOiJtMTcgMy0zIDYgMS41IDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoNi41TDEwIDkifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtNi41TDE0IDE1In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDQifV1dfSk7dmFyIHdaLGU0dD11KCgpPT57d1o9W1sicGF0aCIse2Q6Ik0xMC41IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMkg3YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5LjI5IDE0Ljc2QTYuNjcgNi42NyAwIDAgMSAxNyAxMWE2LjYgNi42IDAgMCAxLTIuMjkgMy43NmMtMS4xNS45Mi0xLjcxIDIuMDQtMS43MSAzLjE5IDAgMi4yMiAxLjggNC4wNSA0IDQuMDVzNC0xLjgzIDQtNC4wNWMwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5In1dLFsicGF0aCIse2Q6Ik05LjYwNyAyMUg2YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIDItMmg3VjdhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV19KTt2YXIga1osdDR0PXUoKCk9PntrWj1bWyJwYXRoIix7ZDoiTTIwIDlWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yIDE2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjVWMTFhMiAyIDAgMCAwLTQgMHoifV0sWyJwYXRoIix7ZDoiTTQgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgNHY5In1dXX0pO3ZhciBTWixyNHQ9dSgoKT0+e1NaPVtbInBhdGgiLHtkOiJNMTEgMmgyIn1dLFsicGF0aCIse2Q6Im0xNC4yOCAxNC00LjU2IDgifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuNTU4LTRINC41NTgifV0sWyJwYXRoIix7ZDoiTTMgMTB2MiJ9XSxbInBhdGgiLHtkOiJNNi4yNDUgMTUuMDRBMiAyIDAgMCAxIDggMTRoMTJhMSAxIDAgMCAxIC44NjQgMS41MDVsLTMuMTEgNS40NTdBMiAyIDAgMCAxIDE2IDIySDRhMSAxIDAgMCAxLS44NjMtMS41MDZ6In1dLFsicGF0aCIse2Q6Ik03IDJhNCA0IDAgMCAxLTQgNCJ9XSxbInBhdGgiLHtkOiJtOC42NiA3LjY2IDEuNDEgMS40MSJ9XV19KTt2YXIgTVosYTR0PXUoKCk9PntNWj1bWyJwYXRoIix7ZDoiTTEyIDIxYTkgOSAwIDAgMCA5LTlIM2E5IDkgMCAwIDAgOSA5WiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTkuNSAxMiAyMiA2In1dLFsicGF0aCIse2Q6Ik0xNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzMgMS42MiJ9XSxbInBhdGgiLHtkOiJNMTEuMjUgM2MuMjcuMS44LjUzLjc0IDEuMzYtLjA1LjgzLS45MyAxLjItLjk4IDIuMDItLjA2Ljc4LjMzIDEuMjQuNzIgMS42MiJ9XSxbInBhdGgiLHtkOiJNNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzQgMS42MiJ9XV19KTt2YXIgQ1osaTR0PXUoKCk9PntDWj1bWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXX0pO3ZhciB6WixzNHQ9dSgoKT0+e3paPVtbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJNMiAxNC40OTlhNS41IDUuNSAwIDAgMCA5LjU5MSAzLjY3NS42LjYgMCAwIDEgLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyMiAxNC41YzAtMi4yOS0xLjUtNC0zLTUuNWwtNS40OTItNS4zMTJhMiAyIDAgMCAwLTMtLjAyTDUgOC45OTljLTEuNSAxLjUtMyAzLjItMyA1LjUifV1dfSk7dmFyIF9aLG40dD11KCgpPT57X1o9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV1dfSk7dmFyIGo4LG80dD11KCgpPT57ajg9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV0sWyJwYXRoIix7ZDoiTTIwIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjIgNGgtNCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjIifV1dfSk7dmFyIFRaLGw0dD11KCgpPT57VFo9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XV19KTt2YXIgTFosYzR0PXUoKCk9PntMWj1bWyJwYXRoIix7ZDoiTTguOCAyMHYtNC4xbDEuOS4yYTIuMyAyLjMgMCAwIDAgMi4xNjQtMi4xVjguM0E1LjM3IDUuMzcgMCAwIDAgMiA4LjI1YzAgMi44LjY1NiAzLjA1NCAxIDQuNTVhNS43NyA1Ljc3IDAgMCAxIC4wMjkgMi43NThMMiAyMCJ9XSxbInBhdGgiLHtkOiJNMTkuOCAxNy44YTcuNSA3LjUgMCAwIDAgLjAwMy0xMC42MDMifV0sWyJwYXRoIix7ZDoiTTE3IDE1YTMuNSAzLjUgMCAwIDAtLjAyNS00Ljk3NSJ9XV19KTt2YXIgRFosZDR0PXUoKCk9PntEWj1bWyJwYXRoIix7ZDoibTYgMTYgNi0xMiA2IDEyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMjFjMS4xIDAgMS4xLTEgMi4zLTFzMS4xIDEgMi4zIDFjMS4xIDAgMS4xLTEgMi4zLTEgMS4xIDAgMS4xIDEgMi4zIDEgMS4xIDAgMS4xLTEgMi4zLTEgMS4xIDAgMS4xIDEgMi4zIDEgMS4xIDAgMS4xLTEgMi4zLTEifV1dfSk7dmFyICRaLHU0dD11KCgpPT57JFo9W1sicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Im0xNiAyMCAyIDIgNC00In1dXX0pO3ZhciBBWixwNHQ9dSgoKT0+e0FaPVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBFWixmNHQ9dSgoKT0+e0VaPVtbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik01IDE3QTEyIDEyIDAgMCAxIDE3IDUifV1dfSk7dmFyIElaLGg0dD11KCgpPT57SVo9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNOCAzSDN2NSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTguM2E0IDQgMCAwIDAtMS4xNzItMi44NzJMMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XV19KTt2YXIgUFosbTR0PXUoKCk9PntQWj1bWyJwYXRoIix7ZDoiTTE3IDEzLjQ0IDQuNDQyIDE3LjA4MkEyIDIgMCAwIDAgNC45ODIgMjFIMTlhMiAyIDAgMCAwIC41NTgtMy45MjFsLTEuMTE1LS4zMkEyIDIgMCAwIDEgMTcgMTQuODM3VjcuNjYifV0sWyJwYXRoIix7ZDoibTcgMTAuNTYgMTIuNTU4LTMuNjQyQTIgMiAwIDAgMCAxOS4wMTggM0g1YTIgMiAwIDAgMC0uNTU4IDMuOTIxbDEuMTE1LjMyQTIgMiAwIDAgMSA3IDkuMTYzdjcuMTc4In1dXX0pO3ZhciBOWixnNHQ9dSgoKT0+e05aPVtbInBhdGgiLHtkOiJtMTUgMTAuNDIgNC44LTUuMDcifV0sWyJwYXRoIix7ZDoiTTE5IDE4aDMifV0sWyJwYXRoIix7ZDoiTTkuNSAyMiAyMS40MTQgOS40MTVBMiAyIDAgMCAwIDIxLjIgNi40bC01LjYxLTQuMjA4QTEgMSAwIDAgMCAxNCAzdjJhMiAyIDAgMCAxLTEuMzk0IDEuOTA2TDguNjc3IDguMDUzQTEgMSAwIDAgMCA4IDljLS4xNTUgNi4zOTMtMi4wODIgOS00IDlhMiAyIDAgMCAwIDAgNGgxNCJ9XV19KTt2YXIgT1osYjR0PXUoKCk9PntPWj1bWyJwYXRoIix7ZDoiTTE1LjI5NSAxOS41NjIgMTYgMjIifV0sWyJwYXRoIix7ZDoibTE3IDE2IDMuNzU4IDIuMDk4In1dLFsicGF0aCIse2Q6Im0xOSAxMi41IDMuMDI2LS41OTgifV0sWyJwYXRoIix7ZDoiTTcuNjEgNi4zYTMgMyAwIDAgMC0zLjkyIDEuM2wtMS4zOCAyLjc5YTMgMyAwIDAgMCAxLjMgMy45MWw2Ljg5IDMuNTk3YTEgMSAwIDAgMCAxLjM0Mi0uNDQ3bDMuMTA2LTYuMjExYTEgMSAwIDAgMC0uNDQ3LTEuMzQxeiJ9XSxbInBhdGgiLHtkOiJNOCA5VjIifV1dfSk7dmFyIFJaLHg0dD11KCgpPT57Ulo9W1sicGF0aCIse2Q6Ik0zIDNoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMSA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxMWguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNCIseDoiMTUiLHk6IjUifV0sWyJwYXRoIix7ZDoibTE5IDkgMiAydjEwYzAgLjYtLjQgMS0xIDFoLTZjLS42IDAtMS0uNC0xLTFWMTFsMi0yIn1dLFsicGF0aCIse2Q6Im0xMyAxNCA4LTIifV0sWyJwYXRoIix7ZDoibTEzIDE5IDgtMiJ9XV19KTt2YXIgRlosdjR0PXUoKCk9PntGWj1bWyJwYXRoIix7ZDoiTTE0IDkuNTM2VjdhNCA0IDAgMCAxIDQtNGgxLjVhLjUuNSAwIDAgMSAuNS41VjVhNCA0IDAgMCAxLTQgNCA0IDQgMCAwIDAtNCA0YzAgMiAxIDMgMSA1YTUgNSAwIDAgMS0xIDMifV0sWyJwYXRoIix7ZDoiTTQgOWE1IDUgMCAwIDEgOCA0IDUgNSAwIDAgMS04LTQifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dfSk7dmFyIFU4LHk0dD11KCgpPT57VTg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC0ybC0yIDUtMi0xMC0yIDVINyJ9XV19KTt2YXIgVzgsdzR0PXUoKCk9PntXOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgOC04IDgifV0sWyJwYXRoIix7ZDoiTTE2IDE2SDhWOCJ9XV19KTt2YXIgRzgsazR0PXUoKCk9PntHOD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtOCA4IDggOCJ9XSxbInBhdGgiLHtkOiJNMTYgOHY4SDgifV1dfSk7dmFyIFk4LFM0dD11KCgpPT57WTg9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJtOCAxMiA0IDQgNC00In1dXX0pO3ZhciBLOCxNNHQ9dSgoKT0+e0s4PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xMiA4LTQgNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV1dfSk7dmFyIFo4LEM0dD11KCgpPT57Wjg9W1sicGF0aCIse2Q6Ik0xMyAyMWg2YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Im0zIDIxIDktOSJ9XSxbInBhdGgiLHtkOiJNOSAyMUgzdi02In1dXX0pO3ZhciBROCx6NHQ9dSgoKT0+e1E4PVtbInBhdGgiLHtkOiJNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoibTIxIDIxLTktOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTV2NmgtNiJ9XV19KTt2YXIgWDgsXzR0PXUoKCk9PntYOD1bWyJwYXRoIix7ZDoiTTEzIDNoNmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi02In1dLFsicGF0aCIse2Q6Im0zIDMgOSA5In1dLFsicGF0aCIse2Q6Ik0zIDlWM2g2In1dXX0pO3ZhciBCWixUNHQ9dSgoKT0+e0JaPVtbInBhdGgiLHtkOiJtMTAgMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxMSJ9XSxbInBhdGgiLHtkOiJNMyA4VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0zIn1dXX0pO3ZhciBKOCxMNHQ9dSgoKT0+e0o4PVtbInBhdGgiLHtkOiJNMjEgMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNiJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDkifV0sWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dXX0pO3ZhciBIWixENHQ9dSgoKT0+e0haPVtbInBhdGgiLHtkOiJNMTAgMTJoMTEifV0sWyJwYXRoIix7ZDoibTE3IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTIxIDYuMzQ0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi0xLjM0NCJ9XV19KTt2YXIgZTcsJDR0PXUoKCk9PntlNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Im0xMiAxNiA0LTQtNC00In1dXX0pO3ZhciB0NyxBNHQ9dSgoKT0+e3Q3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDE2VjhoOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTYgOCA4In1dXX0pO3ZhciByNyxFNHQ9dSgoKT0+e3I3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDhoOHY4In1dLFsicGF0aCIse2Q6Im04IDE2IDgtOCJ9XV19KTt2YXIgYTcsSTR0PXUoKCk9PnthNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTItNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWOCJ9XV19KTt2YXIgaTcsUDR0PXUoKCk9PntpNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04LjUgMTQgNy00In1dLFsicGF0aCIse2Q6Im04LjUgMTAgNyA0In1dXX0pO3ZhciBzNyxONHQ9dSgoKT0+e3M3PVtbImxpbmUiLHt4MToiNSIseTE6IjMiLHgyOiIxOSIseTI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHkxOiI1Iix4MjoiMyIseTI6IjE5In1dLFsibGluZSIse3gxOiIyMSIseTE6IjUiLHgyOiIyMSIseTI6IjE5In1dLFsibGluZSIse3gxOiI5Iix5MToiMjEiLHgyOiIxMCIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNCIseTE6IjIxIix4MjoiMTUiLHkyOiIyMSJ9XSxbInBhdGgiLHtkOiJNIDMgNSBBMiAyIDAgMCAxIDUgMyJ9XSxbInBhdGgiLHtkOiJNIDE5IDMgQTIgMiAwIDAgMSAyMSA1In1dLFsicGF0aCIse2Q6Ik0gNSAyMSBBMiAyIDAgMCAxIDMgMTkifV0sWyJwYXRoIix7ZDoiTSAyMSAxOSBBMiAyIDAgMCAxIDE5IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXX0pO3ZhciBuNyxPNHQ9dSgoKT0+e243PVtbInBhdGgiLHtkOiJNOCAzSDVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTE2IDNoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTMifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDE0djIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dXX0pO3ZhciBvNyxSNHQ9dSgoKT0+e283PVtbInBhdGgiLHtkOiJNMjEgOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDE2djNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBHNCxGNHQ9dSgoKT0+e0c0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDhoNyJ9XSxbInBhdGgiLHtkOiJNOCAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMSAxNmg1In1dXX0pO3ZhciBsNyxCNHQ9dSgoKT0+e2w3PVtbInBhdGgiLHtkOiJNMjEgMTAuNjU2VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMi4zNDQifV0sWyJwYXRoIix7ZDoibTkgMTEgMyAzTDIyIDQifV1dfSk7dmFyIGM3LEg0dD11KCgpPT57Yzc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgZDcscTR0PXUoKCk9PntkNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTAtNCA0LTQtNCJ9XV19KTt2YXIgdTcsVjR0PXUoKCk9Pnt1Nz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtNC00IDQtNCJ9XV19KTt2YXIgcDcsajR0PXUoKCk9PntwNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXX0pO3ZhciBmNyxVNHQ9dSgoKT0+e2Y3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dfSk7dmFyIGg3LFc0dD11KCgpPT57aDc9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgcVosRzR0PXUoKCk9PntxWj1bWyJwYXRoIix7ZDoiTTEwIDkuNSA4IDEybDIgMi41In1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Im0xNCA5LjUgMiAyLjUtMiAyLjUifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV1dfSk7dmFyIFZaLFk0dD11KCgpPT57Vlo9W1sicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dXX0pO3ZhciBtNyxLNHQ9dSgoKT0+e203PVtbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTE0IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTkgM2EyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dXX0pO3ZhciBnNyxaNHQ9dSgoKT0+e2c3PVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMiJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYyIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV1dfSk7dmFyIFk0LFE0dD11KCgpPT57WTQ9W1sicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE2aDYifV0sWyJwYXRoIix7ZDoiTTcgOGg4In1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgM2gxIn1dXX0pO3ZhciBqWixYNHQ9dSgoKT0+e2paPVtbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XV19KTt2YXIgYjcsSjR0PXUoKCk9PntiNz1bWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV1dfSk7dmFyIHg3LGUzdD11KCgpPT57eDc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTYiLHkyOiIxNiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiI4In1dXX0pO3ZhciB2Nyx0M3Q9dSgoKT0+e3Y3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIHk3LHIzdD11KCgpPT57eTc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTRoMTAifV1dfSk7dmFyIHc3LGEzdD11KCgpPT57dzc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik05IDE3YzIgMCAyLjgtMSAyLjgtMi44VjEwYzAtMiAxLTMuMyAzLjItMyJ9XSxbInBhdGgiLHtkOiJNOSAxMS4yaDUuNyJ9XV19KTt2YXIgazcsaTN0PXUoKCk9PntrNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dXX0pO3ZhciBTNyxzM3Q9dSgoKT0+e1M3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDd2MTAifV0sWyJwYXRoIix7ZDoiTTExIDd2MTAifV0sWyJwYXRoIix7ZDoibTE1IDcgMiAxMCJ9XV19KTt2YXIgTTcsbjN0PXUoKCk9PntNNz1bWyJwYXRoIix7ZDoiTTggMTZWOC41YS41LjUgMCAwIDEgLjktLjNsMi43IDMuNTk5YS41LjUgMCAwIDAgLjggMGwyLjctMy42YS41LjUgMCAwIDEgLjkuM1YxNiJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBDNyxvM3Q9dSgoKT0+e0M3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDhoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoMTAifV1dfSk7dmFyIHo3LGwzdD11KCgpPT57ejc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgXzcsYzN0PXUoKCk9PntfNz1bWyJwYXRoIix7ZDoiTTEyLjAzNCAxMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDNsLTMuNDQ0IDEuMDY4YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY3IDMuNDQzYS41LjUgMCAwIDEtLjk0My4wMzN6In1dLFsicGF0aCIse2Q6Ik0yMSAxMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XV19KTt2YXIgVDcsZDN0PXUoKCk9PntUNz1bWyJwYXRoIix7ZDoiTTMuNiAzLjZBMiAyIDAgMCAxIDUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0uNTkgMS40MSJ9XSxbInBhdGgiLHtkOiJNMyA4LjdWMTlhMiAyIDAgMCAwIDIgMmgxMC4zIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTEzIDEzYTMgMyAwIDEgMCAwLTZIOXYyIn1dLFsicGF0aCIse2Q6Ik05IDE3di0yLjMifV1dfSk7dmFyIEw3LHUzdD11KCgpPT57TDc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOSJ9XV19KTt2YXIgVVoscDN0PXUoKCk9PntVWj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgZGMsZjN0PXUoKCk9PntkYz1bWyJwYXRoIix7ZDoiTTEyIDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyJ9XSxbInBhdGgiLHtkOiJNMTguMzc1IDIuNjI1YTEgMSAwIDAgMSAzIDNsLTkuMDEzIDkuMDE0YTIgMiAwIDAgMS0uODUzLjUwNWwtMi44NzMuODRhLjUuNSAwIDAgMS0uNjItLjYybC44NC0yLjg3M2EyIDIgMCAwIDEgLjUwNi0uODUyeiJ9XV19KTt2YXIgRDcsaDN0PXUoKCk9PntENz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoiTTkgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDE1aC4wMSJ9XV19KTt2YXIgJDcsbTN0PXUoKCk9PnskNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aDEwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2EyIDIgMCAwIDEtMi0yVjcifV1dfSk7dmFyIEE3LGczdD11KCgpPT57QTc9W1sicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnoifV1dfSk7dmFyIEU3LGIzdD11KCgpPT57RTc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciBJNyx4M3Q9dSgoKT0+e0k3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMkg5LjVhMi41IDIuNSAwIDAgMSAwLTVIMTcifV0sWyJwYXRoIix7ZDoiTTEyIDd2MTAifV0sWyJwYXRoIix7ZDoiTTE2IDd2MTAifV1dfSk7dmFyIFA3LHYzdD11KCgpPT57UDc9W1sicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTcuOTk4IDkuMDAzYTUgNSAwIDEgMCA4LS4wMDUifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgV1oseTN0PXUoKCk9PntXWj1bWyJwYXRoIix7ZDoiTTcgMTJoMmwyIDUgMi0xMGg0In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIEdaLHczdD11KCgpPT57R1o9W1sicGF0aCIse2Q6Ik0yMSAxMWE4IDggMCAwIDAtOC04In1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0In1dXX0pO3ZhciBONyxrM3Q9dSgoKT0+e043PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXX0pO3ZhciBPNyxTM3Q9dSgoKT0+e083PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4LjlWN0g4bDQgNS00IDVoOHYtMS45In1dXX0pO3ZhciBSNyxNM3Q9dSgoKT0+e1I3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI5Iix4MjoiMTUiLHkxOiIxNSIseTI6IjkifV1dfSk7dmFyIEY3LEMzdD11KCgpPT57Rjc9W1sicGF0aCIse2Q6Ik04IDE5SDVjLTEgMC0yLTEtMi0yVjdjMC0xIDEtMiAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYgNWgzYzEgMCAyIDEgMiAydjEwYzAgMS0xIDItMiAyaC0zIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiNCIseTI6IjIwIn1dXX0pO3ZhciBCNyx6M3Q9dSgoKT0+e0I3PVtbInBhdGgiLHtkOiJNNSA4VjVjMC0xIDEtMiAyLTJoMTBjMSAwIDIgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2M2MwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMnYtMyJ9XSxbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgWVosXzN0PXUoKCk9PntZWj1bWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIgS1osVDN0PXUoKCk9PntLWj1bWyJwYXRoIix7ZDoiTTQgMTBjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicGF0aCIse2Q6Ik0xMCAxNmMtMS4xIDAtMi0uOS0yLTJ2LTRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjE0Iix5OiIxNCIscng6IjIifV1dfSk7dmFyIFpaLEwzdD11KCgpPT57Wlo9W1sicGF0aCIse2Q6Ik0xMS4wMzUgNy42OWExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2NmwtMS4xNTYtMS4xNTNhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBRWixEM3Q9dSgoKT0+e1FaPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjkiLHk6IjkiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dXX0pO3ZhciBINywkM3Q9dSgoKT0+e0g3PVtbInBhdGgiLHtkOiJtNyAxMSAyLTItMi0yIn1dLFsicGF0aCIse2Q6Ik0xMSAxM2g0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dXX0pO3ZhciBxNyxBM3Q9dSgoKT0+e3E3PVtbInBhdGgiLHtkOiJNMTggMjFhNiA2IDAgMCAwLTEyIDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBWNyxFM3Q9dSgoKT0+e1Y3PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIGo3LEkzdD11KCgpPT57ajc9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMXYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBYWixQM3Q9dSgoKT0+e1haPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBKWixOM3Q9dSgoKT0+e0paPVtbInBhdGgiLHtkOiJNMTYgMTJ2MmEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAwLTEgMXYzYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yaDAifV0sWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMS0xIDFoLTVhMiAyIDAgMCAwLTIgMnYyIn1dXX0pO3ZhciBlUSxPM3Q9dSgoKT0+e2VRPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTQgMmEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMmgtMiJ9XSxbInBhdGgiLHtkOiJNMiAxMFY4In1dLFsicGF0aCIse2Q6Ik0yIDRhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNMjAgOGEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTggMTBhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMSAxIDF2NWEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTggMmgyIn1dXX0pO3ZhciB0USxSM3Q9dSgoKT0+e3RRPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTYgMjJoLTIifV0sWyJwYXRoIix7ZDoiTTE2IDRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgzYTEgMSAwIDAgMCAxLTF2LTVhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMCAxLTF6In1dLFsicGF0aCIse2Q6Ik0yMCA4YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDE0djIifV0sWyJwYXRoIix7ZDoiTTIyIDIwYTIgMiAwIDAgMS0yIDIifV1dfSk7dmFyIHJRLEYzdD11KCgpPT57clE9W1sicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2M2ExIDEgMCAwIDAgMSAxaDNhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LTNhMSAxIDAgMCAwLTEtMXoifV1dfSk7dmFyIGFRLEIzdD11KCgpPT57YVE9W1sicGF0aCIse2Q6Ik0xMiAzYzcuMiAwIDkgMS44IDkgOXMtMS44IDktOSA5LTktMS44LTktOSAxLjgtOSA5LTkifV1dfSk7dmFyIGlRLEgzdD11KCgpPT57aVE9W1sicGF0aCIse2Q6Ik0xMy43NyAzLjA0M2EzNCAzNCAwIDAgMC0zLjU0IDAifV0sWyJwYXRoIix7ZDoiTTEzLjc3MSAyMC45NTZhMzMgMzMgMCAwIDEtMy41NDEuMDAxIn1dLFsicGF0aCIse2Q6Ik0yMC4xOCAxNy43NGMtLjUxIDEuMTUtMS4yOSAxLjkzLTIuNDM5IDIuNDQifV0sWyJwYXRoIix7ZDoiTTIwLjE4IDYuMjU5Yy0uNTEtMS4xNDgtMS4yOTEtMS45MjktMi40NC0yLjQzOCJ9XSxbInBhdGgiLHtkOiJNMjAuOTU3IDEwLjIzYTMzIDMzIDAgMCAxIDAgMy41NCJ9XSxbInBhdGgiLHtkOiJNMy4wNDMgMTAuMjNhMzQgMzQgMCAwIDAgLjAwMSAzLjU0MSJ9XSxbInBhdGgiLHtkOiJNNi4yNiAyMC4xNzljLTEuMTUtLjUwOC0xLjkzLTEuMjktMi40NC0yLjQzOCJ9XSxbInBhdGgiLHtkOiJNNi4yNiAzLjgyYy0xLjE0OS41MS0xLjkzIDEuMjkxLTIuNDQgMi40NCJ9XV19KTt2YXIgc1EscTN0PXUoKCk9PntzUT1bWyJwYXRoIix7ZDoiTTE1LjIzNiAyMmEzIDMgMCAwIDAtMi4yLTUifV0sWyJwYXRoIix7ZDoiTTE2IDIwYTMgMyAwIDAgMSAzLTNoMWEyIDIgMCAwIDAgMi0ydi0yYTQgNCAwIDAgMC00LTRWNCJ9XSxbInBhdGgiLHtkOiJNMTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA2YTQgNCAwIDAgMC00IDQgNyA3IDAgMCAwLTcgN2MwLTUgNC01IDQtMTAuNWE0LjUgNC41IDAgMSAwLTkgMCAyLjUgMi41IDAgMCAwIDUgMEM3IDEwIDMgMTEgMyAxN2MwIDIuOCAyLjIgNSA1IDVoMTAifV1dfSk7dmFyIG5RLFYzdD11KCgpPT57blE9W1sicGF0aCIse2Q6Ik0xNCAxM1Y4LjVDMTQgNyAxNSA3IDE1IDVhMyAzIDAgMCAwLTYgMGMwIDIgMSAyIDEgMy41VjEzIn1dLFsicGF0aCIse2Q6Ik0yMCAxNS41YTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtMTFBMi41IDIuNSAwIDAgMCA0IDE1LjVWMTdhMSAxIDAgMCAwIDEgMWgxNGExIDEgMCAwIDAgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNSAyMmgxNCJ9XV19KTt2YXIgb1EsajN0PXUoKCk9PntvUT1bWyJwYXRoIix7ZDoiTTEyIDE4LjMzOGEyLjEgMi4xIDAgMCAwLS45ODcuMjQ0TDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMiAyLjEyIDAgMCAwIDEuNTk3LTEuMTZsMi4zMDktNC42NzlBLjUzLjUzIDAgMCAxIDEyIDIifV1dfSk7dmFyIGxRLFUzdD11KCgpPT57bFE9W1sicGF0aCIse2Q6Im0xMC4zNDQgNC42ODggMS4xODEtMi4zOTNhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMiAyLjEyIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy4yMzcgMy4xNTIifV0sWyJwYXRoIix7ZDoibTE3Ljk0NSAxNy45NDUuNDMgMi41MDVhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIgMi4xMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhOCA4IDAgMCAwIC40LS4wOTkifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgY1EsVzN0PXUoKCk9PntjUT1bWyJwYXRoIix7ZDoiTTExLjUyNSAyLjI5NWEuNTMuNTMgMCAwIDEgLjk1IDBsMi4zMSA0LjY3OWEyLjEyMyAyLjEyMyAwIDAgMCAxLjU5NSAxLjE2bDUuMTY2Ljc1NmEuNTMuNTMgMCAwIDEgLjI5NC45MDRsLTMuNzM2IDMuNjM4YTIuMTIzIDIuMTIzIDAgMCAwLS42MTEgMS44NzhsLjg4MiA1LjE0YS41My41MyAwIDAgMS0uNzcxLjU2bC00LjYxOC0yLjQyOGEyLjEyMiAyLjEyMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMjIgMi4xMjIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWEyLjEyMiAyLjEyMiAwIDAgMCAxLjU5Ny0xLjE2eiJ9XV19KTt2YXIgZFEsRzN0PXUoKCk9PntkUT1bWyJwYXRoIix7ZDoiTTEzLjk3MSA0LjI4NUEyIDIgMCAwIDEgMTcgNnYxMmEyIDIgMCAwIDEtMy4wMjkgMS43MTVsLTkuOTk3LTUuOTk4YTIgMiAwIDAgMS0uMDAzLTMuNDMyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMjBWNCJ9XV19KTt2YXIgdVEsWTN0PXUoKCk9Pnt1UT1bWyJwYXRoIix7ZDoiTTEwLjAyOSA0LjI4NUEyIDIgMCAwIDAgNyA2djEyYTIgMiAwIDAgMCAzLjAyOSAxLjcxNWw5Ljk5Ny01Ljk5OGEyIDIgMCAwIDAgLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgNHYxNiJ9XV19KTt2YXIgcFEsSzN0PXUoKCk9PntwUT1bWyJwYXRoIix7ZDoiTTExIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNSAydjIifV0sWyJwYXRoIix7ZDoiTTUgM0g0YTIgMiAwIDAgMC0yIDJ2NGE2IDYgMCAwIDAgMTIgMFY1YTIgMiAwIDAgMC0yLTJoLTEifV0sWyJwYXRoIix7ZDoiTTggMTVhNiA2IDAgMCAwIDEyIDB2LTMifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxMCIscjoiMiJ9XV19KTt2YXIgZlEsWjN0PXUoKCk9PntmUT1bWyJwYXRoIix7ZDoiTTIxIDlhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE1IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnoifV0sWyJwYXRoIix7ZDoiTTE1IDN2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2cy44IDEgMiAxYzEuMyAwIDItMSAyLTEifV1dfSk7dmFyIGhRLFEzdD11KCgpPT57aFE9W1sicGF0aCIse2Q6Ik0xMS4yNjQgMi4yMDVBNCA0IDAgMCAwIDYuNDIgNC4yMTFsLTQgOGE0IDQgMCAwIDAgMS4zNTkgNS4xMTdsNiA0YTQgNCAwIDAgMCA0LjQzOCAwbDYtNGE0IDQgMCAwIDAgMS41NzYtNC41OTJsLTItNmE0IDQgMCAwIDAtMi41My0yLjUzeiJ9XSxbInBhdGgiLHtkOiJNMTEuOTkgMjIgMTQgMTJsNy44MjIgMy4xODQifV0sWyJwYXRoIix7ZDoiTTE0IDEyIDguNDcgMi4zMDIifV1dfSk7dmFyIG1RLFgzdD11KCgpPT57bVE9W1sicGF0aCIse2Q6Ik0yMSA5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1In1dXX0pO3ZhciBnUSxKM3Q9dSgoKT0+e2dRPVtbInBhdGgiLHtkOiJNMTUgMjF2LTVhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCJ9XSxbInBhdGgiLHtkOiJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUifV1dfSk7dmFyIGJRLGV1dD11KCgpPT57YlE9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIyMCIseDoiMTQiLHk6IjIiLHJ4OiIyIn1dXX0pO3ZhciB4USx0dXQ9dSgoKT0+e3hRPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNiIseDoiMiIseToiNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjYiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XV19KTt2YXIgdlEscnV0PXUoKCk9Pnt2UT1bWyJwYXRoIix7ZDoiTTE2IDRIOWEzIDMgMCAwIDAtMi44MyA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmE0IDQgMCAwIDEgMCA4SDYifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIHlRLGF1dD11KCgpPT57eVE9W1sicGF0aCIse2Q6Im00IDUgOCA4In1dLFsicGF0aCIse2Q6Im0xMiA1LTggOCJ9XSxbInBhdGgiLHtkOiJNMjAgMTloLTRjMC0xLjUuNDQtMiAxLjUtMi41UzIwIDE1LjMzIDIwIDE0YzAtLjQ3LS4xNy0uOTMtLjQ4LTEuMjlhMi4xMSAyLjExIDAgMCAwLTIuNjItLjQ0Yy0uNDIuMjQtLjc0LjYyLS45IDEuMDcifV1dfSk7dmFyIHdRLGl1dD11KCgpPT57d1E9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3LjY1NyA2LjM0M2guMDEifV0sWyJwYXRoIix7ZDoiTTE3LjY1NyAxNy42NTdoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjM0MyAxNy42NTdoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjM0MyA2LjM0M2guMDEifV1dfSk7dmFyIGtRLHN1dD11KCgpPT57a1E9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDN2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MSJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgxIn1dLFsicGF0aCIse2Q6Im0xOC4zNjQgNS42MzYtLjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTYuMzQzIDE3LjY1Ny0uNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtNS42MzYgNS42MzYuNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtMTcuNjU3IDE3LjY1Ny43MDcuNzA3In1dXX0pO3ZhciBTUSxudXQ9dSgoKT0+e1NRPVtbInBhdGgiLHtkOiJNMTAgMjF2LTEifV0sWyJwYXRoIix7ZDoiTTEwIDRWMyJ9XSxbInBhdGgiLHtkOiJNMTAgOWEzIDMgMCAwIDAgMCA2In1dLFsicGF0aCIse2Q6Im0xNCAyMCAxLjI1LTIuNUwxOCAxOCJ9XSxbInBhdGgiLHtkOiJtMTQgNCAxLjI1IDIuNUwxOCA2In1dLFsicGF0aCIse2Q6Im0xNyAyMS0zLTYgMS41LTNIMjIifV0sWyJwYXRoIix7ZDoibTE3IDMtMyA2IDEuNSAzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDEifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Im0zLjY0IDE4LjM2LjctLjcifV0sWyJwYXRoIix7ZDoibTQuMzQgNi4zNC0uNy0uNyJ9XV19KTt2YXIgTVEsb3V0PXUoKCk9PntNUT1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQuODM3IDE2LjM4NWE2IDYgMCAxIDEtNy4yMjMtNy4yMjJjLjYyNC0uMTQ3Ljk3LjY2LjcxNSAxLjI0OGE0IDQgMCAwIDAgNS4yNiA1LjI1OWMuNTg5LS4yNTUgMS4zOTYuMDkgMS4yNDguNzE1In1dLFsicGF0aCIse2Q6Ik0xNiAxMmE0IDQgMCAwIDAtNC00In1dLFsicGF0aCIse2Q6Im0xOSA1LTEuMjU2IDEuMjU2In1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dXX0pO3ZhciBDUSxsdXQ9dSgoKT0+e0NRPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTE3LjY2IDE3LjY2IDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Im02LjM0IDE3LjY2LTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV1dfSk7dmFyIHpRLGN1dD11KCgpPT57elE9W1sicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJwYXRoIix7ZDoibTQuOTMgMTAuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yIDE4aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE4aDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDEwLjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XSxbInBhdGgiLHtkOiJtOCA2IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDE4YTQgNCAwIDAgMC04IDAifV1dfSk7dmFyIF9RLGR1dD11KCgpPT57X1E9W1sicGF0aCIse2Q6Ik0xMiAxMFYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDEwLjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxOGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgyIn1dLFsicGF0aCIse2Q6Im0xOS4wNyAxMC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIyIDIySDIifV0sWyJwYXRoIix7ZDoibTE2IDYtNCA0LTQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMThhNCA0IDAgMCAwLTggMCJ9XV19KTt2YXIgVFEsdXV0PXUoKCk9PntUUT1bWyJwYXRoIix7ZDoibTQgMTkgOC04In1dLFsicGF0aCIse2Q6Im0xMiAxOS04LTgifV0sWyJwYXRoIix7ZDoiTTIwIDEyaC00YzAtMS41LjQ0Mi0yIDEuNS0yLjVTMjAgOC4zMzQgMjAgNy4wMDJjMC0uNDcyLS4xNy0uOTMtLjQ4NC0xLjI5YTIuMTA1IDIuMTA1IDAgMCAwLTIuNjE3LS40MzZjLS40Mi4yMzktLjczOC42MTQtLjg5OSAxLjA2In1dXX0pO3ZhciBMUSxwdXQ9dSgoKT0+e0xRPVtbInBhdGgiLHtkOiJNMTAgMjFWM2g4In1dLFsicGF0aCIse2Q6Ik02IDE2aDkifV0sWyJwYXRoIix7ZDoiTTEwIDkuNWg3In1dXX0pO3ZhciBEUSxmdXQ9dSgoKT0+e0RRPVtbInBhdGgiLHtkOiJNMTEgMTdhNCA0IDAgMCAxLTggMFY1YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTYuNyAxM0gxOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg3In1dLFsicGF0aCIse2Q6Ik0gNyAxN2guMDEifV0sWyJwYXRoIix7ZDoibTExIDggMi4zLTIuM2EyLjQgMi40IDAgMCAxIDMuNDA0LjAwNEwxOC42IDcuNmEyLjQgMi40IDAgMCAxIC4wMjYgMy40MzRMOS45IDE5LjgifV1dfSk7dmFyICRRLGh1dD11KCgpPT57JFE9W1sicGF0aCIse2Q6Ik0xMSAxOUg0YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDUifV0sWyJwYXRoIix7ZDoiTTEzIDVoN2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTggMjItMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJtNiAyIDMgMy0zIDMifV1dfSk7dmFyIEFRLG11dD11KCgpPT57QVE9W1sicGF0aCIse2Q6Im0xMSAxOS02LTYifV0sWyJwYXRoIix7ZDoibTUgMjEtMi0yIn1dLFsicGF0aCIse2Q6Im04IDE2LTQgNCJ9XSxbInBhdGgiLHtkOiJNOS41IDE3LjUgMjEgNlYzaC0zTDYuNSAxNC41In1dXX0pO3ZhciBFUSxndXQ9dSgoKT0+e0VRPVtbInBhdGgiLHtkOiJtMTggMiA0IDQifV0sWyJwYXRoIix7ZDoibTE3IDcgMy0zIn1dLFsicGF0aCIse2Q6Ik0xOSA5IDguNyAxOS4zYy0xIDEtMi41IDEtMy40IDBsLS42LS42Yy0xLTEtMS0yLjUgMC0zLjRMMTUgNSJ9XSxbInBhdGgiLHtkOiJtOSAxMSA0IDQifV0sWyJwYXRoIix7ZDoibTUgMTktMyAzIn1dLFsicGF0aCIse2Q6Im0xNCA0IDYgNiJ9XV19KTt2YXIgSVEsYnV0PXUoKCk9PntJUT1bWyJwb2x5bGluZSIse3BvaW50czoiMTQuNSAxNy41IDMgNiAzIDMgNiAzIDE3LjUgMTQuNSJ9XSxbImxpbmUiLHt4MToiMTMiLHgyOiIxOSIseTE6IjE5Iix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMjAiLHkxOiIxNiIseTI6IjIwIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIxIix5MToiMjEiLHkyOiIxOSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIxNC41IDYuNSAxOCAzIDIxIDMgMjEgNiAxNy41IDkuNSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjkiLHkxOiIxNCIseTI6IjE4In1dLFsibGluZSIse3gxOiI3Iix4MjoiNCIseTE6IjE3Iix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI1Iix5MToiMTkiLHkyOiIyMSJ9XV19KTt2YXIgUFEseHV0PXUoKCk9PntQUT1bWyJwYXRoIix7ZDoiTTkgM0g1YTIgMiAwIDAgMC0yIDJ2NG02LTZoMTBhMiAyIDAgMCAxIDIgMnY0TTkgM3YxOG0wIDBoMTBhMiAyIDAgMCAwIDItMlY5TTkgMjFINWEyIDIgMCAwIDEtMi0yVjltMCAwaDE4In1dXX0pO3ZhciBOUSx2dXQ9dSgoKT0+e05RPVtbInBhdGgiLHtkOiJNMTIgMTVWOSJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dfSk7dmFyIE9RLHl1dD11KCgpPT57T1E9W1sicGF0aCIse2Q6Ik0xMiAyMXYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgOVYzIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XV19KTt2YXIgUlEsd3V0PXUoKCk9PntSUT1bWyJwYXRoIix7ZDoiTTE0IDE0djIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgOHYyIn1dLFsicGF0aCIse2Q6Ik0yIDE1aDgifV0sWyJwYXRoIix7ZDoiTTIgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkgyIn1dLFsicGF0aCIse2Q6Ik0yIDloOCJ9XSxbInBhdGgiLHtkOiJNMjIgMTVoLTQifV0sWyJwYXRoIix7ZDoiTTIyIDNoLTJhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIyIDloLTQifV0sWyJwYXRoIix7ZDoiTTUgM3YxOCJ9XV19KTt2YXIgRlEsa3V0PXUoKCk9PntGUT1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgNWguMDEifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTloLjAxIn1dXX0pO3ZhciBCUSxTdXQ9dSgoKT0+e0JRPVtbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMSA5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE1SDMifV1dfSk7dmFyIEhRLE11dD11KCgpPT57SFE9W1sicGF0aCIse2Q6Ik0xNCAxMGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNMTUgMnY0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEwaDIifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoiTTMgMjJ2LTZhMiAyIDEzNSAwIDEgMi0yaDE0YTIgMiA0NSAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTMgMnYyYTIgMiA0NSAwIDAgMiAyaDE0YTIgMiAxMzUgMCAwIDItMlYyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDIifV0sWyJwYXRoIix7ZDoiTTkgMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTkgMnY0In1dXX0pO3ZhciBxUSxDdXQ9dSgoKT0+e3FRPVtbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV1dfSk7dmFyIFZRLHp1dD11KCgpPT57VlE9W1sicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiIxNCIseDoiMyIseToiOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTUgNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTZhMiAyIDAgMCAxLTIgMmgtMi40In1dLFsicGF0aCIse2Q6Ik04IDE4aC4wMSJ9XV19KTt2YXIgalEsX3V0PXUoKCk9PntqUT1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxOCIseTI6IjE4In1dXX0pO3ZhciBVUSxUdXQ9dSgoKT0+e1VRPVtbImNpcmNsZSIse2N4OiI3IixjeToiNyIscjoiNSJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxN2gxMCJ9XSxbInBhdGgiLHtkOiJtMy40NiAxMC41NCA3LjA4LTcuMDgifV1dfSk7dmFyIFdRLEx1dD11KCgpPT57V1E9W1sicGF0aCIse2Q6Ik0xMi41ODYgMi41ODZBMiAyIDAgMCAwIDExLjE3MiAySDRhMiAyIDAgMCAwLTIgMnY3LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw4LjcwNCA4LjcwNGEyLjQyNiAyLjQyNiAwIDAgMCAzLjQyIDBsNi41OC02LjU4YTIuNDI2IDIuNDI2IDAgMCAwIDAtMy40MnoifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBHUSxEdXQ9dSgoKT0+e0dRPVtbInBhdGgiLHtkOiJNMTMuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4Nmw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMSAwIDMuNDA4bC00LjU5MiA0LjU5MmEyLjQgMi40IDAgMCAxLTMuNDA4IDBsLTYuNzEtNi43MUEyIDIgMCAwIDEgNiA5LjE3MlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik0yIDd2Ni4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsNi43MSA2LjcxYTIuNCAyLjQgMCAwIDAgMy4xOTEuMTkzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjUiLGN5OiI2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV1dfSk7dmFyIFlRLCR1dD11KCgpPT57WVE9W1sicGF0aCIse2Q6Ik00IDR2MTYifV1dfSk7dmFyIEtRLEF1dD11KCgpPT57S1E9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XV19KTt2YXIgWlEsRXV0PXUoKCk9PntaUT1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dXX0pO3ZhciBRUSxJdXQ9dSgoKT0+e1FRPVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE0IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE5IDR2MTYifV1dfSk7dmFyIFhRLFB1dD11KCgpPT57WFE9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTkgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMjIgNiAyIDE4In1dXX0pO3ZhciBKUSxOdXQ9dSgoKT0+e0pRPVtbImNpcmNsZSIse2N4OiIxNyIsY3k6IjQiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTE1LjU5IDUuNDEgNS40MSAxNS41OSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTciLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDIycy00LTktMS41LTExLjVTMjIgMTIgMjIgMTIifV1dfSk7dmFyIGVYLE91dD11KCgpPT57ZVg9W1sicGF0aCIse2Q6Im0xMC4wNjUgMTIuNDkzLTYuMTggMS4zMThhLjkzNC45MzQgMCAwIDEtMS4xMDgtLjcwMmwtLjUzNy0yLjE1YTEuMDcgMS4wNyAwIDAgMSAuNjkxLTEuMjY1bDEzLjUwNC00LjQ0In1dLFsicGF0aCIse2Q6Im0xMy41NiAxMS43NDcgNC4zMzItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTYgMjEtMy4xMDUtNi4yMSJ9XSxbInBhdGgiLHtkOiJNMTYuNDg1IDUuOTRhMiAyIDAgMCAxIDEuNDU1LTIuNDI1bDEuMDktLjI3MmExIDEgMCAwIDEgMS4yMTIuNzI3bDEuNTE1IDYuMDZhMSAxIDAgMCAxLS43MjcgMS4yMTNsLTEuMDkuMjcyYTIgMiAwIDAgMS0yLjQyNS0xLjQ1NXoifV0sWyJwYXRoIix7ZDoibTYuMTU4IDguNjMzIDEuMTE0IDQuNDU2In1dLFsicGF0aCIse2Q6Im04IDIxIDMuMTA1LTYuMjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XV19KTt2YXIgdFgsUnV0PXUoKCk9Pnt0WD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciByWCxGdXQ9dSgoKT0+e3JYPVtbImNpcmNsZSIse2N4OiI0IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgNSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxMCAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxNFYyIn1dLFsicGF0aCIse2Q6Ik0xNyAxNEg3bC01IDhoMjBaIn1dLFsicGF0aCIse2Q6Ik04IDE0djgifV0sWyJwYXRoIix7ZDoibTkgMTQgNSA4In1dXX0pO3ZhciBhWCxCdXQ9dSgoKT0+e2FYPVtbInBhdGgiLHtkOiJNMy41IDIxIDE0IDMifV0sWyJwYXRoIix7ZDoiTTIwLjUgMjEgMTAgMyJ9XSxbInBhdGgiLHtkOiJNMTUuNSAyMSAxMiAxNWwtMy41IDYifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV1dfSk7dmFyIGlYLEh1dD11KCgpPT57aVg9W1sicGF0aCIse2Q6Ik0xMiAxOWg4In1dLFsicGF0aCIse2Q6Im00IDE3IDYtNi02LTYifV1dfSk7dmFyIFU3LHF1dD11KCgpPT57VTc9W1sicGF0aCIse2Q6Ik0yMSA3IDYuODIgMjEuMThhMi44MyAyLjgzIDAgMCAxLTMuOTktLjAxYTIuODMgMi44MyAwIDAgMSAwLTRMMTcgMyJ9XSxbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoiTTEyIDE2SDQifV1dfSk7dmFyIHNYLFZ1dD11KCgpPT57c1g9W1sicGF0aCIse2Q6Ik0xNC41IDJ2MTcuNWMwIDEuNC0xLjEgMi41LTIuNSAyLjVjLTEuNCAwLTIuNS0xLjEtMi41LTIuNVYyIn1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dLFsicGF0aCIse2Q6Ik0xNC41IDE2aC01In1dXX0pO3ZhciBXNyxqdXQ9dSgoKT0+e1c3PVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNyAxMkg3In1dLFsicGF0aCIse2Q6Ik0xOSAxOUg1In1dXX0pO3ZhciBuWCxVdXQ9dSgoKT0+e25YPVtbInBhdGgiLHtkOiJNOSAydjE3LjVBMi41IDIuNSAwIDAgMSA2LjUgMjJBMi41IDIuNSAwIDAgMSA0IDE5LjVWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMnYxNy41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWEyLjUgMi41IDAgMCAxLTIuNS0yLjVWMiJ9XSxbInBhdGgiLHtkOiJNMyAyaDcifV0sWyJwYXRoIix7ZDoiTTE0IDJoNyJ9XSxbInBhdGgiLHtkOiJNOSAxNkg0In1dLFsicGF0aCIse2Q6Ik0yMCAxNmgtNSJ9XV19KTt2YXIgRzcsV3V0PXUoKCk9PntHNz1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlINyJ9XV19KTt2YXIgWTcsR3V0PXUoKCk9PntZNz1bWyJwYXRoIix7ZDoiTTMgNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XV19KTt2YXIgSzQsWXV0PXUoKCk9PntLND1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTlIMyJ9XV19KTt2YXIgb1gsS3V0PXUoKCk9PntvWD1bWyJwYXRoIix7ZDoiTTEyIDIwaC0xYTIgMiAwIDAgMS0yLTIgMiAyIDAgMCAxLTIgMkg2In1dLFsicGF0aCIse2Q6Ik0xMyA4aDdhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTcifV0sWyJwYXRoIix7ZDoiTTUgMTZINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMSJ9XSxbInBhdGgiLHtkOiJNNiA0aDFhMiAyIDAgMCAxIDIgMiAyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTkgNnYxMiJ9XV19KTt2YXIgbFgsWnV0PXUoKCk9PntsWD1bWyJwYXRoIix7ZDoiTTE3IDIyaC0xYTQgNCAwIDAgMS00LTRWNmE0IDQgMCAwIDEgNC00aDEifV0sWyJwYXRoIix7ZDoiTTcgMjJoMWE0IDQgMCAwIDAgNC00di0xIn1dLFsicGF0aCIse2Q6Ik03IDJoMWE0IDQgMCAwIDEgNCA0djEifV1dfSk7dmFyIEs3LFF1dD11KCgpPT57Szc9W1sicGF0aCIse2Q6Ik0xNSA1aDYifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoibTMgMTIgMy41NTMtNy43MjRhLjUuNSAwIDAgMSAuODk0IDBMMTEgMTIifV0sWyJwYXRoIix7ZDoiTTMuOTIgMTBoNi4xNiJ9XV19KTt2YXIgY1gsWHV0PXUoKCk9PntjWD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTlIMyJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE1IixyOiIzIn1dLFsicGF0aCIse2Q6Im0yMSAxOS0xLjktMS45In1dXX0pO3ZhciBkWCxKdXQ9dSgoKT0+e2RYPVtbInBhdGgiLHtkOiJNMTcgNUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkg4In1dLFsicGF0aCIse2Q6Ik0yMSAxOUg4In1dLFsicGF0aCIse2Q6Ik0zIDEydjcifV1dfSk7dmFyIFo3LGVwdD11KCgpPT57Wjc9W1sicGF0aCIse2Q6Im0xNiAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDE0LjVhMSAxIDAgMCAxIDAgN0gxMyJ9XSxbInBhdGgiLHtkOiJNMyAxOWg2In1dLFsicGF0aCIse2Q6Ik0zIDVoMTgifV1dfSk7dmFyIHVYLHRwdD11KCgpPT57dVg9W1sicGF0aCIse2Q6Ik0yIDEwczMtMyAzLTgifV0sWyJwYXRoIix7ZDoiTTIyIDEwcy0zLTMtMy04In1dLFsicGF0aCIse2Q6Ik0xMCAyYzAgNC40LTMuNiA4LTggOCJ9XSxbInBhdGgiLHtkOiJNMTQgMmMwIDQuNCAzLjYgOCA4IDgifV0sWyJwYXRoIix7ZDoiTTIgMTBzMiAyIDIgNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTBzLTIgMi0yIDUifV0sWyJwYXRoIix7ZDoiTTggMTVoOCJ9XSxbInBhdGgiLHtkOiJNMiAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dXX0pO3ZhciBwWCxycHQ9dSgoKT0+e3BYPVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoiTTEwLjU4NSAxNUgxMCJ9XSxbInBhdGgiLHtkOiJNMiAxMmg2LjVMMTAgOSJ9XSxbInBhdGgiLHtkOiJNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDIifV1dfSk7dmFyIGZYLGFwdD11KCgpPT57Zlg9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDhhNCA0IDAgMCAwLTEuNjQ1IDcuNjQ3In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAweiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtNi4zNCAxNy42Ni0xLjQxIDEuNDEifV1dfSk7dmFyIGhYLGlwdD11KCgpPT57aFg9W1sicGF0aCIse2Q6Ik0xNCA0djEwLjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAwWiJ9XV19KTt2YXIgbVgsc3B0PXUoKCk9PnttWD1bWyJwYXRoIix7ZDoiTTkgMTguMTIgMTAgMTRINC4xN2EyIDIgMCAwIDEtMS45Mi0yLjU2bDIuMzMtOEEyIDIgMCAwIDEgNi41IDJIMjBhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIuNzZhMiAyIDAgMCAwLTEuNzkgMS4xMUwxMiAyMmEzLjEzIDMuMTMgMCAwIDEtMy0zLjg4WiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWMiJ9XV19KTt2YXIgZ1gsbnB0PXUoKCk9PntnWD1bWyJwYXRoIix7ZDoiTTE1IDUuODggMTQgMTBoNS44M2EyIDIgMCAwIDEgMS45MiAyLjU2bC0yLjMzIDhBMiAyIDAgMCAxIDE3LjUgMjJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAyLTJoMi43NmEyIDIgMCAwIDAgMS43OS0xLjExTDEyIDJhMy4xMyAzLjEzIDAgMCAxIDMgMy44OFoifV0sWyJwYXRoIix7ZDoiTTcgMTB2MTIifV1dfSk7dmFyIGJYLG9wdD11KCgpPT57Ylg9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIHhYLGxwdD11KCgpPT57eFg9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV1dfSk7dmFyIHZYLGNwdD11KCgpPT57dlg9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMSAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAxIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciB5WCxkcHQ9dSgoKT0+e3lYPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dfSk7dmFyIHdYLHVwdD11KCgpPT57d1g9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTQuNSA1LTUifV0sWyJwYXRoIix7ZDoibTkuNSA5LjUgNSA1In1dXX0pO3ZhciBrWCxwcHQ9dSgoKT0+e2tYPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJtOS41IDE0LjUgNS01In1dXX0pO3ZhciBTWCxmcHQ9dSgoKT0+e1NYPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTMgNXYyIn1dLFsicGF0aCIse2Q6Ik0xMyAxN3YyIn1dLFsicGF0aCIse2Q6Ik0xMyAxMXYyIn1dXX0pO3ZhciBNWCxocHQ9dSgoKT0+e01YPVtbInBhdGgiLHtkOiJNMTAuNSAxN2gxLjIyN2EyIDIgMCAwIDAgMS4zNDUtLjUyTDE4IDEyIn1dLFsicGF0aCIse2Q6Im0xMiAxMy41IDMuNzk0LjUwNiJ9XSxbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXX0pO3ZhciBDWCxtcHQ9dSgoKT0+e0NYPVtbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXX0pO3ZhciB6WCxncHQ9dSgoKT0+e3pYPVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Ik00LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjcifV0sWyJwYXRoIix7ZDoiTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYtMiJ9XV19KTt2YXIgX1gsYnB0PXUoKCk9PntfWD1bWyJwYXRoIix7ZDoiTTEwIDJoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTQgMTNhOCA4IDAgMCAxIDgtNyA4IDggMCAxIDEtNS4zIDE0TDQgMTcuNiJ9XSxbInBhdGgiLHtkOiJNOSAxN0g0djUifV1dfSk7dmFyIFRYLHhwdD11KCgpPT57VFg9W1sibGluZSIse3gxOiIxMCIseDI6IjE0Iix5MToiMiIseTI6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTUiLHkxOiIxNCIseTI6IjExIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjgifV1dfSk7dmFyIExYLHZwdD11KCgpPT57TFg9W1siY2lyY2xlIix7Y3g6IjkiLGN5OiIxMiIscjoiMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiI3In1dXX0pO3ZhciBEWCx5cHQ9dSgoKT0+e0RYPVtbImNpcmNsZSIse2N4OiIxNSIsY3k6IjEyIixyOiIzIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjcifV1dfSk7dmFyICRYLHdwdD11KCgpPT57JFg9W1sicGF0aCIse2Q6Ik03IDEyaDEzYTEgMSAwIDAgMSAxIDEgNSA1IDAgMCAxLTUgNWgtLjU5OGEuNS41IDAgMCAwLS40MjQuNzY1bDEuNTQ0IDIuNDdhLjUuNSAwIDAgMS0uNDI0Ljc2NUg1LjQwMmEuNS41IDAgMCAxLS40MjQtLjc2NUw3IDE4In1dLFsicGF0aCIse2Q6Ik04IDE4YTUgNSAwIDAgMS01LTVWNGEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnY4In1dXX0pO3ZhciBBWCxrcHQ9dSgoKT0+e0FYPVtbInBhdGgiLHtkOiJNMTAgMTVoNCJ9XSxbInBhdGgiLHtkOiJtMTQuODE3IDEwLjk5NS0uOTcxLTEuNDUgMS4wMzQtMS4yMzJhMiAyIDAgMCAwLTIuMDI1LTMuMjM4bC0xLjgyLjM2NEw5LjkxIDMuODg1YTIgMiAwIDAgMC0zLjYyNS43NDhMNi4xNDEgNi41NWwtMS43MjUuNDI2YTIgMiAwIDAgMC0uMTkgMy43NTZsLjY1Ny4yNyJ9XSxbInBhdGgiLHtkOiJtMTguODIyIDEwLjk5NSAyLjI2LTUuMzhhMSAxIDAgMCAwLS41NTctMS4zMThMMTYuOTU0IDIuOWExIDEgMCAwIDAtMS4yODEuNTMzbC0uOTI0IDIuMTIyIn1dLFsicGF0aCIse2Q6Ik00IDEyLjAwNkExIDEgMCAwIDEgNC45OTQgMTFIMTlhMSAxIDAgMCAxIDEgMXY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiJ9XV19KTt2YXIgRVgsU3B0PXUoKCk9PntFWD1bWyJwYXRoIix7ZDoiTTE2IDEydjQifV0sWyJwYXRoIix7ZDoiTTE2IDZhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0IDRBMiAyIDAgMCAxIDIyIDEydjdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIC41ODYtMS40MTRsNC00QTIgMiAwIDAgMSA4IDZ6In1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTggMTJ2NCJ9XV19KTt2YXIgSVgsTXB0PXUoKCk9PntJWD1bWyJwYXRoIix7ZDoiTTIxIDRIMyJ9XSxbInBhdGgiLHtkOiJNMTggOEg2In1dLFsicGF0aCIse2Q6Ik0xOSAxMkg5In1dLFsicGF0aCIse2Q6Ik0xNiAxNmgtNiJ9XSxbInBhdGgiLHtkOiJNMTEgMjBIOSJ9XV19KTt2YXIgUFgsQ3B0PXUoKCk9PntQWD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiMTEiLHJ4OiIzIixyeToiMiJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMi41IixyeDoiMTAiLHJ5OiI4LjUifV1dfSk7dmFyIE5YLHpwdD11KCgpPT57Tlg9W1sicGF0aCIse2Q6Ik0xMiAyMHYtNiJ9XSxbInBhdGgiLHtkOiJNMTkuNjU2IDE0SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDEyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoiTTkuNjU2IDRIMjBhMiAyIDAgMCAxIDIgMnYxMC4zNDQifV1dfSk7dmFyIE9YLF9wdD11KCgpPT57T1g9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi02In1dXX0pO3ZhciBSWCxUcHQ9dSgoKT0+e1JYPVtbInBhdGgiLHtkOiJNMjIgN2gtMiJ9XSxbInBhdGgiLHtkOiJNNi41IDNoMTFBMi41IDIuNSAwIDAgMSAyMCA1LjVWMjBhMSAxIDAgMCAxLTEgMWgtOWExIDEgMCAwIDEtMS0xVjUuNWExIDEgMCAwIDAtNSAwVjE3YTEgMSAwIDAgMCAxIDFoNCJ9XSxbInBhdGgiLHtkOiJNOSA3SDIifV1dfSk7dmFyIEZYLExwdD11KCgpPT57Rlg9W1sicGF0aCIse2Q6Ik0xOC4yIDEyLjI3IDIwIDZINGwxLjggNi4yN2ExIDEgMCAwIDAgLjk1LjczaDEwLjVhMSAxIDAgMCAwIC45Ni0uNzNaIn1dLFsicGF0aCIse2Q6Ik04IDEzdjkifV0sWyJwYXRoIix7ZDoiTTE2IDIydi05In1dLFsicGF0aCIse2Q6Im05IDYgMSA3In1dLFsicGF0aCIse2Q6Im0xNSA2LTEgNyJ9XSxbInBhdGgiLHtkOiJNMTIgNlYyIn1dLFsicGF0aCIse2Q6Ik0xMyAyaC0yIn1dXX0pO3ZhciBCWCxEcHQ9dSgoKT0+e0JYPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyJ9XSxbInBhdGgiLHtkOiJNMTkgOFY1YzAtLjYtLjQtMS0xLTFoLTNhMSAxIDAgMCAwLTEgMXYzIn1dXX0pO3ZhciBIWCwkcHQ9dSgoKT0+e0hYPVtbInBhdGgiLHtkOiJtMTAgMTEgMTEgLjlhMSAxIDAgMCAxIC44IDEuMWwtLjY2NSA0LjE1OGExIDEgMCAwIDEtLjk4OC44NDJIMjAifV0sWyJwYXRoIix7ZDoiTTE2IDE4aC01In1dLFsicGF0aCIse2Q6Ik0xOCA1YTEgMSAwIDAgMC0xIDF2NS41NzMifV0sWyJwYXRoIix7ZDoiTTMgNGg4LjEyOWExIDEgMCAwIDEgLjk5Ljg2M0wxMyAxMS4yNDYifV0sWyJwYXRoIix7ZDoiTTQgMTFWNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTAuMVY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE1IixyOiI1In1dXX0pO3ZhciBxWCxBcHQ9dSgoKT0+e3FYPVtbInBhdGgiLHtkOiJNMTYuMDUgMTAuOTY2YTUgMi41IDAgMCAxLTguMSAwIn1dLFsicGF0aCIse2Q6Im0xNi45MjMgMTQuMDQ5IDQuNDggMi4wNGExIDEgMCAwIDEgLjAwMSAxLjgzMWwtOC41NzQgMy45YTIgMiAwIDAgMS0xLjY2IDBsLTguNTc0LTMuOTFhMSAxIDAgMCAxIDAtMS44M2w0LjQ4NC0yLjA0In1dLFsicGF0aCIse2Q6Ik0xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHoifV0sWyJwYXRoIix7ZDoiTTkuMTk0IDYuNTdhNSAyLjUgMCAwIDAgNS42MSAwIn1dXX0pO3ZhciBWWCxFcHQ9dSgoKT0+e1ZYPVtbInBhdGgiLHtkOiJNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwIn1dLFsicGF0aCIse2Q6Ik0xNSA2Ljh2MS40YTMgMi44IDAgMSAxLTYgMFY2LjgifV0sWyJwYXRoIix7ZDoiTTEwIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOWE0IDQgMCAwIDEtNC00di0zYTYgNiAwIDEgMSAxMiAwdjNhNCA0IDAgMCAxLTQgNFoifV0sWyJwYXRoIix7ZDoibTkgMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAyIDMifV1dfSk7dmFyIGpYLElwdD11KCgpPT57alg9W1sicGF0aCIse2Q6Ik04IDMuMVY3YTQgNCAwIDAgMCA4IDBWMy4xIn1dLFsicGF0aCIse2Q6Im05IDE1LTEtMSJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgMS0xIn1dLFsicGF0aCIse2Q6Ik05IDE5Yy0yLjggMC01LTIuMi01LTV2LTRhOCA4IDAgMCAxIDE2IDB2NGMwIDIuOC0yLjIgNS01IDVaIn1dLFsicGF0aCIse2Q6Im04IDE5LTIgMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAzIn1dXX0pO3ZhciBVWCxQcHQ9dSgoKT0+e1VYPVtbInBhdGgiLHtkOiJNMiAxNyAxNyAyIn1dLFsicGF0aCIse2Q6Im0yIDE0IDggOCJ9XSxbInBhdGgiLHtkOiJtNSAxMSA4IDgifV0sWyJwYXRoIix7ZDoibTggOCA4IDgifV0sWyJwYXRoIix7ZDoibTExIDUgOCA4In1dLFsicGF0aCIse2Q6Im0xNCAyIDggOCJ9XSxbInBhdGgiLHtkOiJNNyAyMiAyMiA3In1dXX0pO3ZhciBRNyxOcHQ9dSgoKT0+e1E3PVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDExaDE2In1dLFsicGF0aCIse2Q6Ik0xMiAzdjgifV0sWyJwYXRoIix7ZDoibTggMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xOCAyMi0yLTMifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV1dfSk7dmFyIFdYLE9wdD11KCgpPT57V1g9W1sicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNCAyMGgtNCJ9XSxbInBhdGgiLHtkOiJNMTggMmg0djQifV0sWyJwYXRoIix7ZDoibTIgMiA3LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTIgNS4zNTVWMmgzLjM1NyJ9XSxbInBhdGgiLHtkOiJtMjIgMi03LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTggNSA1IDgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV19KTt2YXIgR1gsUnB0PXUoKCk9PntHWD1bWyJwYXRoIix7ZDoiTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNMyA2aDE4In1dLFsicGF0aCIse2Q6Ik04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBZWCxGcHQ9dSgoKT0+e1lYPVtbInBhdGgiLHtkOiJNMTAgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMTQgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Ik0zIDZoMTgifV0sWyJwYXRoIix7ZDoiTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIEtYLEJwdD11KCgpPT57S1g9W1sicGF0aCIse2Q6Ik04IDE5YTQgNCAwIDAgMS0yLjI0LTcuMzJBMy41IDMuNSAwIDAgMSA5IDYuMDNWNmEzIDMgMCAxIDEgNiAwdi4wNGEzLjUgMy41IDAgMCAxIDMuMjQgNS42NUE0IDQgMCAwIDEgMTYgMTlaIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dXX0pO3ZhciBYNyxIcHQ9dSgoKT0+e1g3PVtbInBhdGgiLHtkOiJNMTMgOGMwLTIuNzYtMi40Ni01LTUuNS01UzIgNS4yNCAyIDhoMmwxLTEgMSAxaDQifV0sWyJwYXRoIix7ZDoiTTEzIDcuMTRBNS44MiA1LjgyIDAgMCAxIDE2LjUgNmMzLjA0IDAgNS41IDIuMjQgNS41IDVoLTNsLTEtMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTUuODkgOS43MWMtMi4xNSAyLjE1LTIuMyA1LjQ3LS4zNSA3LjQzbDQuMjQtNC4yNS43LS43LjcxLS43MSAyLjEyLTIuMTJjLTEuOTUtMS45Ni01LjI3LTEuOC03LjQyLjM1In1dLFsicGF0aCIse2Q6Ik0xMSAxNS41Yy41IDIuNS0uMTcgNC41LTEgNi41aDRjMi01LjUtLjUtMTItMS0xNCJ9XV19KTt2YXIgWlgscXB0PXUoKCk9PntaWD1bWyJwYXRoIix7ZDoibTE3IDE0IDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdINC43YTEgMSAwIDAgMS0uNy0xLjdMNyAxNGgtLjNhMSAxIDAgMCAxLS43LTEuN0w5IDloLS4yQTEgMSAwIDAgMSA4IDcuM0wxMiAzbDQgNC4zYTEgMSAwIDAgMS0uOCAxLjdIMTVsMyAzLjNhMSAxIDAgMCAxLS43IDEuN0gxN1oifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0zIn1dXX0pO3ZhciBRWCxWcHQ9dSgoKT0+e1FYPVtbInBhdGgiLHtkOiJNMTAgMTB2LjJBMyAzIDAgMCAxIDguOSAxNkg1YTMgMyAwIDAgMS0xLTUuOFYxMGEzIDMgMCAwIDEgNiAwWiJ9XSxbInBhdGgiLHtkOiJNNyAxNnY2In1dLFsicGF0aCIse2Q6Ik0xMyAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOWg4LjNhMSAxIDAgMCAwIC43LTEuN0wxOCAxNGguM2ExIDEgMCAwIDAgLjctMS43TDE2IDloLjJhMSAxIDAgMCAwIC44LTEuN0wxMyAzbC0xLjQgMS41In1dXX0pO3ZhciBYWCxqcHQ9dSgoKT0+e1hYPVtbInBhdGgiLHtkOiJNMTYgMTdoNnYtNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTctOC41LTguNS01IDVMMiA3In1dXX0pO3ZhciBKWCxVcHQ9dSgoKT0+e0pYPVtbInBhdGgiLHtkOiJNMTQuODI4IDE0LjgyOCAyMSAyMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDktNC00LTYgNiJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dXX0pO3ZhciBlSixXcHQ9dSgoKT0+e2VKPVtbInBhdGgiLHtkOiJNMTYgN2g2djYifV0sWyJwYXRoIix7ZDoibTIyIDctOC41IDguNS01LTVMMiAxNyJ9XV19KTt2YXIgSjcsR3B0PXUoKCk9PntKNz1bWyJwYXRoIix7ZDoibTIxLjczIDE4LTgtMTRhMiAyIDAgMCAwLTMuNDggMGwtOCAxNEEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS43My0zIn1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgdEosWXB0PXUoKCk9Pnt0Sj1bWyJwYXRoIix7ZDoiTTEwLjE3IDQuMTkzYTIgMiAwIDAgMSAzLjY2Ni4wMTMifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDIifV0sWyJwYXRoIix7ZDoibTE1Ljg3NCA3Ljc0MyAxIDEuNzMyIn1dLFsicGF0aCIse2Q6Im0xOC44NDkgMTIuOTUyIDEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTIxLjgyNCAxOC4xOGEyIDIgMCAwIDEtMS44MzUgMi44MjQifV0sWyJwYXRoIix7ZDoiTTQuMDI0IDIxYTIgMiAwIDAgMS0xLjgzOS0yLjgzOSJ9XSxbInBhdGgiLHtkOiJtNS4xMzYgMTIuOTUyLTEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTggMjFoMiJ9XSxbInBhdGgiLHtkOiJtOC4xMDIgNy43NDMtMSAxLjczMiJ9XV19KTt2YXIgckosS3B0PXUoKCk9PntySj1bWyJwYXRoIix7ZDoiTTIyIDE4YTIgMiAwIDAgMS0yIDJIM2MtMS4xIDAtMS4zLS42LS40LTEuM0wyMC40IDQuM2MuOS0uNyAxLjYtLjQgMS42LjdaIn1dXX0pO3ZhciBhSixacHQ9dSgoKT0+e2FKPVtbInBhdGgiLHtkOiJNMTMuNzMgNGEyIDIgMCAwIDAtMy40NiAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIn1dXX0pO3ZhciBpSixRcHQ9dSgoKT0+e2lKPVtbInBhdGgiLHtkOiJNMTAgMTQuNjZ2MS42MjZhMiAyIDAgMCAxLS45NzYgMS42OTZBNSA1IDAgMCAwIDcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xNCAxNC42NnYxLjYyNmEyIDIgMCAwIDAgLjk3NiAxLjY5NkE1IDUgMCAwIDEgMTcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xOCA5aDEuNWExIDEgMCAwIDAgMC01SDE4In1dLFsicGF0aCIse2Q6Ik00IDIyaDE2In1dLFsicGF0aCIse2Q6Ik02IDlhNiA2IDAgMCAwIDEyIDBWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXoifV0sWyJwYXRoIix7ZDoiTTYgOUg0LjVhMSAxIDAgMCAxIDAtNUg2In1dXX0pO3ZhciBzSixYcHQ9dSgoKT0+e3NKPVtbInBhdGgiLHtkOiJNMTQgMTlWN2EyIDIgMCAwIDAtMi0ySDkifV0sWyJwYXRoIix7ZDoiTTE1IDE5SDkifV0sWyJwYXRoIix7ZDoiTTE5IDE5aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MkwxOC4zIDkuMzhhMSAxIDAgMCAwLS43OC0uMzhIMTQifV0sWyJwYXRoIix7ZDoiTTIgMTN2NWExIDEgMCAwIDAgMSAxaDIifV0sWyJwYXRoIix7ZDoiTTQgMyAyLjE1IDUuMTVhLjQ5NS40OTUgMCAwIDAgLjM1Ljg2aDIuMTVhLjQ3LjQ3IDAgMCAxIC4zNS44NkwzIDkuMDIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIG5KLEpwdD11KCgpPT57bko9W1sicGF0aCIse2Q6Ik0xNCAxOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFoMiJ9XSxbInBhdGgiLHtkOiJNMTUgMThIOSJ9XSxbInBhdGgiLHtkOiJNMTkgMThoMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyNGwtMy40OC00LjM1QTEgMSAwIDAgMCAxNy41MiA4SDE0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXX0pO3ZhciBvSixlZnQ9dSgoKT0+e29KPVtbInBhdGgiLHtkOiJNMTUgNCA1IDkifV0sWyJwYXRoIix7ZDoibTE1IDguNS0xMCA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmE5IDkgMCAwIDEtOSA5VjMifV1dfSk7dmFyIGxKLHRmdD11KCgpPT57bEo9W1sicGF0aCIse2Q6Ik0xMCAxMi4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDh2NGE4IDggMCAwIDEtMS4wNyA0In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV19KTt2YXIgY0oscmZ0PXUoKCk9PntjSj1bWyJwYXRoIix7ZDoibTEyIDEwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTggOCAwIDEgMC0xNiAwdjNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNsMi00aDRaIn1dLFsicGF0aCIse2Q6Ik00LjgyIDcuOSA4IDEwIn1dLFsicGF0aCIse2Q6Ik0xNS4xOCA3LjkgMTIgMTAifV0sWyJwYXRoIix7ZDoiTTE2LjkzIDEwSDIwYTIgMiAwIDAgMSAwIDRIMiJ9XV19KTt2YXIgZEosYWZ0PXUoKCk9PntkSj1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIGU5LGlmdD11KCgpPT57ZTk9W1sicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIHVKLHNmdD11KCgpPT57dUo9W1sicGF0aCIse2Q6Ik0xNCAxNi41YS41LjUgMCAwIDAgLjUuNWguNWEyIDIgMCAwIDEgMCA0SDlhMiAyIDAgMCAxIDAtNGguNWEuNS41IDAgMCAwIC41LS41di05YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41VjhhMiAyIDAgMCAxLTQgMFY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS00IDB2LS41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41WiJ9XV19KTt2YXIgcEosbmZ0PXUoKCk9PntwSj1bWyJwYXRoIix7ZDoibTE3IDItNSA1LTUtNSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTUiLHg6IjIiLHk6IjciLHJ4OiIyIn1dXX0pO3ZhciBmSixvZnQ9dSgoKT0+e2ZKPVtbInBhdGgiLHtkOiJNMTIgNHYxNiJ9XSxbInBhdGgiLHtkOiJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV19KTt2YXIgaEosbGZ0PXUoKCk9PntoSj1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMC45OTIgMTNhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTE5LjkyMyAwQTEgMSAwIDAgMCAzIDEzeiJ9XV19KTt2YXIgbUosY2Z0PXUoKCk9PnttSj1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOC42NTYgMTNoMi4zMzZhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTEyLjA3LTcuNTEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNS45NjEgNS45NTdhMTAuMjggMTAuMjggMCAwIDAtMy45MjIgNS43NjlBMSAxIDAgMCAwIDMgMTNoMTAifV1dfSk7dmFyIGdKLGRmdD11KCgpPT57Z0o9W1sicGF0aCIse2Q6Ik02IDR2NmE2IDYgMCAwIDAgMTIgMFY0In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIyMCIseTI6IjIwIn1dXX0pO3ZhciBiSix1ZnQ9dSgoKT0+e2JKPVtbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dLFsicGF0aCIse2Q6Ik00IDloMTAuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVhNS41IDUuNSAwIDAgMS01LjUgNS41SDExIn1dXX0pO3ZhciB4SixwZnQ9dSgoKT0+e3hKPVtbInBhdGgiLHtkOiJNMjEgMTdhOSA5IDAgMCAwLTE1LTYuN0wzIDEzIn1dLFsicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjEifV1dfSk7dmFyIHZKLGZmdD11KCgpPT57dko9W1sicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsicGF0aCIse2Q6Ik0yMSAxN2E5IDkgMCAwIDAtOS05IDkgOSAwIDAgMC02IDIuM0wzIDEzIn1dXX0pO3ZhciB5SixoZnQ9dSgoKT0+e3lKPVtbInBhdGgiLHtkOiJNMTYgMTJoNiJ9XSxbInBhdGgiLHtkOiJNOCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgMTUgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV1dfSk7dmFyIHdKLG1mdD11KCgpPT57d0o9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjYiLHg6IjExIix5OiIxNCIscng6IjEifV1dfSk7dmFyIGtKLGdmdD11KCgpPT57a0o9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgOFYyIn1dLFsicGF0aCIse2Q6Ik00IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwIDEySDgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTktMyAzLTMtMyJ9XSxbInBhdGgiLHtkOiJtMTUgNS0zLTMtMyAzIn1dXX0pO3ZhciB0OSxiZnQ9dSgoKT0+e3Q5PVtbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgN2ExIDEgMCAwIDAtMS0xaC0yYTIgMiAwIDAgMS0xLjE0My0uMzU5TDEzLjE0MyAyLjM2YTIgMiAwIDAgMC0yLjI4Ni0uMDAxTDYuMTQzIDUuNjRBMiAyIDAgMCAxIDUgNkgzYTEgMSAwIDAgMC0xIDF2MTJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIFNKLHhmdD11KCgpPT57U0o9W1sicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMCAxIDAgMTBoLTJtLTYgMEg3QTUgNSAwIDAgMSA3IDdoMiJ9XV19KTt2YXIgTUosdmZ0PXUoKCk9PntNSj1bWyJwYXRoIix7ZDoibTE4Ljg0IDEyLjI1IDEuNzItMS43MWgtLjAyYTUuMDA0IDUuMDA0IDAgMCAwLS4xMi03LjA3IDUuMDA2IDUuMDA2IDAgMCAwLTYuOTUgMGwtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Im01LjE3IDExLjc1LTEuNzEgMS43MWE1LjAwNCA1LjAwNCAwIDAgMCAuMTIgNy4wNyA1LjAwNiA1LjAwNiAwIDAgMCA2Ljk1IDBsMS43MS0xLjcxIn1dLFsibGluZSIse3gxOiI4Iix4MjoiOCIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIyIix4MjoiNSIseTE6IjgiLHkyOiI4In1dLFsibGluZSIse3gxOiIxNiIseDI6IjE2Iix5MToiMTkiLHkyOiIyMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIENKLHlmdD11KCgpPT57Q0o9W1sicGF0aCIse2Q6Ik0xMiAzdjEyIn1dLFsicGF0aCIse2Q6Im0xNyA4LTUtNS01IDUifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV1dfSk7dmFyIHpKLHdmdD11KCgpPT57eko9W1sicGF0aCIse2Q6Im0xOSA1IDMtMyJ9XSxbInBhdGgiLHtkOiJtMiAyMiAzLTMifV0sWyJwYXRoIix7ZDoiTTYuMyAyMC4zYTIuNCAyLjQgMCAwIDAgMy40IDBMMTIgMThsLTYtNi0yLjMgMi4zYTIuNCAyLjQgMCAwIDAgMCAzLjRaIn1dLFsicGF0aCIse2Q6Ik03LjUgMTMuNSAxMCAxMSJ9XSxbInBhdGgiLHtkOiJNMTAuNSAxNi41IDEzIDE0In1dLFsicGF0aCIse2Q6Im0xMiA2IDYgNiAyLjMtMi4zYTIuNCAyLjQgMCAwIDAgMC0zLjRsLTIuNi0yLjZhMi40IDIuNCAwIDAgMC0zLjQgMFoifV1dfSk7dmFyIF9KLGtmdD11KCgpPT57X0o9W1siY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTQuNyAxOS4zIDE5IDUifV0sWyJwYXRoIix7ZDoibTIxIDMtMyAxIDIgMloifV0sWyJwYXRoIix7ZDoiTTkuMjYgNy42OCA1IDEybDIgNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgNSAyIDMuNS0zLjUifV0sWyJwYXRoIix7ZDoibTE4IDEyIDEtMSAxIDEtMSAxWiJ9XV19KTt2YXIgVEosU2Z0PXUoKCk9PntUSj1bWyJwYXRoIix7ZDoiTTEwIDE1SDZhNCA0IDAgMCAwLTQgNHYyIn1dLFsicGF0aCIse2Q6Im0xNC4zMDUgMTYuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxMy44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTIuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDE3Ljc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDEyLjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMTguNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDEzLjg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2LjE0OC45MjQuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTUiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dfSk7dmFyIExKLE1mdD11KCgpPT57TEo9W1sicGF0aCIse2Q6Ik0yMCAxMXY2In1dLFsicGF0aCIse2Q6Ik0yMCAxM2gyIn1dLFsicGF0aCIse2Q6Ik0zIDIxdi0yYTQgNCAwIDAgMSA0LTRoNmE0IDQgMCAwIDEgMi4wNzIuNTc4In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiNCJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBESixDZnQ9dSgoKT0+e0RKPVtbInBhdGgiLHtkOiJtMTYgMTEgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XV19KTt2YXIgJEosemZ0PXUoKCk9PnskSj1bWyJwYXRoIix7ZDoiTTE5IDE2di0yYTIgMiAwIDAgMC00IDB2MiJ9XSxbInBhdGgiLHtkOiJNOS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiNCJ9XSxbInJlY3QiLHt4OiIxMyIseToiMTYiLHdpZHRoOiI4IixoZWlnaHQ6IjUiLHJ4OiIuODk5In1dXX0pO3ZhciBBSixfZnQ9dSgoKT0+e0FKPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIEVKLFRmdD11KCgpPT57RUo9W1sicGF0aCIse2Q6Ik0xMS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBJSixMZnQ9dSgoKT0+e0lKPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIxOSIseTE6IjgiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIHI5LERmdD11KCgpPT57cjk9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dfSk7dmFyIGE5LCRmdD11KCgpPT57YTk9W1sicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTAuNDM0LTcuNjIifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgUEosQWZ0PXUoKCk9PntQSj1bWyJwYXRoIix7ZDoiTTE5IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDEzaDIifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEyLjg2OC02LjM0OSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgaTksRWZ0PXUoKCk9PntpOT1bWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTloLTYifV1dfSk7dmFyIE5KLElmdD11KCgpPT57Tko9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMC44MjEtNy40ODcifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV1dfSk7dmFyIHM5LFBmdD11KCgpPT57czk9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTIyIDE5aC02In1dXX0pO3ZhciBPSixOZnQ9dSgoKT0+e09KPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuOS0xLjkifV1dfSk7dmFyIG45LE9mdD11KCgpPT57bjk9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMS44NzMtNyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTctNSA1In1dXX0pO3ZhciBvOSxSZnQ9dSgoKT0+e285PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTggOCAwIDAgMC0xNiAwIn1dXX0pO3ZhciBSSixGZnQ9dSgoKT0+e1JKPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEwLjMgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMS45LTEuOSJ9XV19KTt2YXIgRkosQmZ0PXUoKCk9PntGSj1bWyJwYXRoIix7ZDoiTTE2LjA1MSAxMi42MTZhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV0sWyJwYXRoIix7ZDoiTTggMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBCSixIZnQ9dSgoKT0+e0JKPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMTciLHgyOiIyMiIseTE6IjgiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNyIseTE6IjgiLHkyOiIxMyJ9XV19KTt2YXIgSEoscWZ0PXUoKCk9PntISj1bWyJwYXRoIix7ZDoiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBsOSxWZnQ9dSgoKT0+e2w5PVtbInBhdGgiLHtkOiJNMTggMjFhOCA4IDAgMCAwLTE2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Ik0yMiAyMGMwLTMuMzctMi02LjUtNC04YTUgNSAwIDAgMC0uNDUtOC4zIn1dXX0pO3ZhciBxSixqZnQ9dSgoKT0+e3FKPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQifV0sWyJwYXRoIix7ZDoiTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODcifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dfSk7dmFyIGM5LFVmdD11KCgpPT57Yzk9W1sicGF0aCIse2Q6Im0xNiAyLTIuMyAyLjNhMyAzIDAgMCAwIDAgNC4ybDEuOCAxLjhhMyAzIDAgMCAwIDQuMiAwTDIyIDgifV0sWyJwYXRoIix7ZDoiTTE1IDE1IDMuMyAzLjNhNC4yIDQuMiAwIDAgMCAwIDZsNy4zIDcuM2MuNy43IDIgLjcgMi44IDBMMTUgMTVabTAgMCA3IDcifV0sWyJwYXRoIix7ZDoibTIuMSAyMS44IDYuNC02LjMifV0sWyJwYXRoIix7ZDoibTE5IDUtNyA3In1dXX0pO3ZhciBkOSxXZnQ9dSgoKT0+e2Q5PVtbInBhdGgiLHtkOiJNMyAydjdjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNVYyYTUgNSAwIDAgMC01IDV2NmMwIDEuMS45IDIgMiAyaDNabTAgMHY3In1dXX0pO3ZhciBWSixHZnQ9dSgoKT0+e1ZKPVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMiA1aDIwIn1dLFsicGF0aCIse2Q6Ik0zIDN2MiJ9XSxbInBhdGgiLHtkOiJNNyAzdjIifV0sWyJwYXRoIix7ZDoiTTE3IDN2MiJ9XSxbInBhdGgiLHtkOiJNMjEgM3YyIn1dLFsicGF0aCIse2Q6Im0xOSA1LTcgNy03LTcifV1dfSk7dmFyIGpKLFlmdD11KCgpPT57ako9W1sicGF0aCIse2Q6Ik0xMyA2djVhMSAxIDAgMCAwIDEgMWg2LjEwMmExIDEgMCAwIDEgLjcxMi4yOThsLjg5OC45MWExIDEgMCAwIDEgLjI4OC43MDJWMTdhMSAxIDAgMCAxLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNNSAxOEgzYTEgMSAwIDAgMS0xLTFWOGEyIDIgMCAwIDEgMi0yaDEyYzEuMSAwIDIuMS44IDIuNCAxLjhsMS4xNzYgNC4yIn1dLFsicGF0aCIse2Q6Ik05IDE4aDUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV1dfSk7dmFyIFVKLEtmdD11KCgpPT57VUo9W1sicGF0aCIse2Q6Ik04IDIxcy00LTMtNC05IDQtOSA0LTkifV0sWyJwYXRoIix7ZDoiTTE2IDNzNCAzIDQgOS00IDktNCA5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgV0osWmZ0PXUoKCk9PntXSj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoibTcuOSA3LjkgMi43IDIuNyJ9XSxbImNpcmNsZSIse2N4OiIxNi41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im0xMy40IDEwLjYgMi43LTIuNyJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im03LjkgMTYuMSAyLjctMi43In1dLFsiY2lyY2xlIix7Y3g6IjE2LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im0xMy40IDEzLjQgMi43IDIuNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBHSixRZnQ9dSgoKT0+e0dKPVtbInBhdGgiLHtkOiJNMTkuNSA3YTI0IDI0IDAgMCAxIDAgMTAifV0sWyJwYXRoIix7ZDoiTTQuNSA3YTI0IDI0IDAgMCAwIDAgMTAifV0sWyJwYXRoIix7ZDoiTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwIn1dLFsicGF0aCIse2Q6Ik03IDQuNWEyNCAyNCAwIDAgMSAxMCAwIn1dLFsicmVjdCIse3g6IjE3Iix5OiIxNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV0sWyJyZWN0Iix7eDoiMTciLHk6IjIiLHdpZHRoOiI1IixoZWlnaHQ6IjUiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjIiLHk6IjE3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIyIix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgWUosWGZ0PXUoKCk9PntZSj1bWyJwYXRoIix7ZDoiTTE2IDhxNiAwIDYtNi02IDAtNiA2In1dLFsicGF0aCIse2Q6Ik0xNy40MSAzLjU5YTEwIDEwIDAgMSAwIDMgMyJ9XSxbInBhdGgiLHtkOiJNMiAyYTI2LjYgMjYuNiAwIDAgMSAxMCAyMGMuOS02LjgyIDEuNS05LjUgNC0xNCJ9XV19KTt2YXIgS0osSmZ0PXUoKCk9PntLSj1bWyJwYXRoIix7ZDoiTTE4IDExYy0xLjUgMC0yLjUuNS0zIDIifV0sWyJwYXRoIix7ZDoiTTQgNmEyIDIgMCAwIDAtMiAydjRhNSA1IDAgMCAwIDUgNSA4IDggMCAwIDEgNSAyIDggOCAwIDAgMSA1LTIgNSA1IDAgMCAwIDUtNVY4YTIgMiAwIDAgMC0yLTJoLTNhOCA4IDAgMCAwLTUgMiA4IDggMCAwIDAtNS0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxMWMxLjUgMCAyLjUuNSAzIDIifV1dfSk7dmFyIFpKLGVodD11KCgpPT57Wko9W1sicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNyAyaDR2NCJ9XSxbInBhdGgiLHtkOiJtMjEgMi01LjQ2IDUuNDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNSJ9XV19KTt2YXIgUUosdGh0PXUoKCk9PntRSj1bWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTkgMTloNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjkiLHI6IjYifV1dfSk7dmFyIFhKLHJodD11KCgpPT57WEo9W1sicGF0aCIse2Q6Im0yIDggMiAyLTIgMiAyIDItMiAyIn1dLFsicGF0aCIse2Q6Im0yMiA4LTIgMiAyIDItMiAyIDIgMiJ9XSxbInBhdGgiLHtkOiJNOCA4djEwYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xdi0yIn1dLFsicGF0aCIse2Q6Ik0xNiAxMC4zNFY2YzAtLjU1LS40NS0xLTEtMWgtNC4zNCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBKSixhaHQ9dSgoKT0+e0pKPVtbInBhdGgiLHtkOiJtMiA4IDIgMi0yIDIgMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJtMjIgOC0yIDIgMiAyLTIgMiAyIDIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjUiLHJ4OiIxIn1dXX0pO3ZhciBlZWUsaWh0PXUoKCk9PntlZWU9W1sicGF0aCIse2Q6Ik0xMC42NiA2SDE0YTIgMiAwIDAgMSAyIDJ2Mi41bDUuMjQ4LTMuMDYyQS41LjUgMCAwIDEgMjIgNy44N3Y4LjE5NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgdGVlLHNodD11KCgpPT57dGVlPVtbInBhdGgiLHtkOiJtMTYgMTMgNS4yMjMgMy40ODJhLjUuNSAwIDAgMCAuNzc3LS40MTZWNy44N2EuNS41IDAgMCAwLS43NTItLjQzMkwxNiAxMC41In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNCIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIHJlZSxuaHQ9dSgoKT0+e3JlZT1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTQiLHI6IjIifV1dfSk7dmFyIGFlZSxvaHQ9dSgoKT0+e2FlZT1bWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTIxIDdWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV19KTt2YXIgaWVlLGxodD11KCgpPT57aWVlPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTIiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxMiIscjoiNCJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjE4Iix5MToiMTYiLHkyOiIxNiJ9XV19KTt2YXIgc2VlLGNodD11KCgpPT57c2VlPVtbInBhdGgiLHtkOiJNMTEuMSA3LjFhMTYuNTUgMTYuNTUgMCAwIDEgMTAuOSA0In1dLFsicGF0aCIse2Q6Ik0xMiAxMmExMi42IDEyLjYgMCAwIDEtOC43IDUifV0sWyJwYXRoIix7ZDoiTTE2LjggMTMuNmExNi41NSAxNi41NSAwIDAgMS05IDcuNSJ9XSxbInBhdGgiLHtkOiJNMjAuNyAxN2ExMi44IDEyLjggMCAwIDAtOC43LTUgMTMuMyAxMy4zIDAgMCAxIDAtMTAifV0sWyJwYXRoIix7ZDoiTTYuMyAzLjhhMTYuNTUgMTYuNTUgMCAwIDAgMS45IDExLjUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIG5lZSxkaHQ9dSgoKT0+e25lZT1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAwIDYifV1dfSk7dmFyIG9lZSx1aHQ9dSgoKT0+e29lZT1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAwIDYifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCAxOC4zNjRhOSA5IDAgMCAwIDAtMTIuNzI4In1dXX0pO3ZhciBsZWUscGh0PXUoKCk9PntsZWU9W1sicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAuOTUgMi4yOTMifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCA1LjYzNmE5IDkgMCAwIDEgMS44ODkgOS45NiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Im03IDctLjU4Ny41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOThWMTEifV0sWyJwYXRoIix7ZDoiTTkuODI4IDQuMTcyQS42ODYuNjg2IDAgMCAxIDExIDQuNjU3di42ODYifV1dfSk7dmFyIGNlZSxmaHQ9dSgoKT0+e2NlZT1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsibGluZSIse3gxOiIyMiIseDI6IjE2Iix5MToiOSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxNiIseDI6IjIyIix5MToiOSIseTI6IjE1In1dXX0pO3ZhciBkZWUsaGh0PXUoKCk9PntkZWU9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XV19KTt2YXIgdWVlLG1odD11KCgpPT57dWVlPVtbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik01IDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEySDVWN1oifV0sWyJwYXRoIix7ZDoiTTIyIDE5SDIifV1dfSk7dmFyIHBlZSxnaHQ9dSgoKT0+e3BlZT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMyAxMWgzYy44IDAgMS42LjMgMi4xLjlsMS4xLjljMS42IDEuNiA0LjEgMS42IDUuNyAwbDEuMS0uOWMuNS0uNSAxLjMtLjkgMi4xLS45SDIxIn1dXX0pO3ZhciB1OSxiaHQ9dSgoKT0+e3U5PVtbInBhdGgiLHtkOiJNMTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDdoMTJhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTQifV1dfSk7dmFyIGZlZSx4aHQ9dSgoKT0+e2ZlZT1bWyJwYXRoIix7ZDoiTTE5IDdWNGExIDEgMCAwIDAtMS0xSDVhMiAyIDAgMCAwIDAgNGgxNWExIDEgMCAwIDEgMSAxdjRoLTNhMiAyIDAgMCAwIDAgNGgzYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMyA1djE0YTIgMiAwIDAgMCAyIDJoMTVhMSAxIDAgMCAwIDEtMXYtNCJ9XV19KTt2YXIgaGVlLHZodD11KCgpPT57aGVlPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Im05IDE3IDYuMS02LjFhMiAyIDAgMCAxIDIuODEuMDFMMjIgMTUifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjkiLHI6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgcDkseWh0PXUoKCk9PntwOT1bWyJwYXRoIix7ZDoibTIxLjY0IDMuNjQtMS4yOC0xLjI4YTEuMjEgMS4yMSAwIDAgMC0xLjcyIDBMMi4zNiAxOC42NGExLjIxIDEuMjEgMCAwIDAgMCAxLjcybDEuMjggMS4yOGExLjIgMS4yIDAgMCAwIDEuNzIgMEwyMS42NCA1LjM2YTEuMiAxLjIgMCAwIDAgMC0xLjcyIn1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJNNSA2djQifV0sWyJwYXRoIix7ZDoiTTE5IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNyA4SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2aC00In1dLFsicGF0aCIse2Q6Ik0xMSAzSDkifV1dfSk7dmFyIG1lZSx3aHQ9dSgoKT0+e21lZT1bWyJwYXRoIix7ZDoiTTE1IDRWMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTZ2LTIifV0sWyJwYXRoIix7ZDoiTTggOWgyIn1dLFsicGF0aCIse2Q6Ik0yMCA5aDIifV0sWyJwYXRoIix7ZDoiTTE3LjggMTEuOCAxOSAxMyJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE3LjggNi4yIDE5IDUifV0sWyJwYXRoIix7ZDoibTMgMjEgOS05In1dLFsicGF0aCIse2Q6Ik0xMi4yIDYuMiAxMSA1In1dXX0pO3ZhciBnZWUsa2h0PXUoKCk9PntnZWU9W1sicGF0aCIse2Q6Ik0xOCAyMVYxMGExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxMSJ9XSxbInBhdGgiLHtkOiJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMS4xMzItMS44MDNsNy45NS0zLjk3NGEyIDIgMCAwIDEgMS44MzcgMGw3Ljk0OCAzLjk3NEEyIDIgMCAwIDEgMjIgOHoifV0sWyJwYXRoIix7ZDoiTTYgMTNoMTIifV0sWyJwYXRoIix7ZDoiTTYgMTdoMTIifV1dfSk7dmFyIGJlZSxTaHQ9dSgoKT0+e2JlZT1bWyJwYXRoIix7ZDoiTTMgNmgzIn1dLFsicGF0aCIse2Q6Ik0xNyA2aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMjAiLHg6IjMiLHk6IjIiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE4YTIuNSAyLjUgMCAwIDAgMC01IDIuNSAyLjUgMCAwIDEgMC01In1dXX0pO3ZhciB4ZWUsTWh0PXUoKCk9Pnt4ZWU9W1sicGF0aCIse2Q6Ik0xMiAxMHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoibTE2LjEzIDcuNjYtLjgxLTQuMDVhMiAyIDAgMCAwLTItMS42MWgtMi42OGEyIDIgMCAwIDAtMiAxLjYxbC0uNzggNC4wNSJ9XSxbInBhdGgiLHtkOiJtNy44OCAxNi4zNi44IDRhMiAyIDAgMCAwIDIgMS42MWgyLjcyYTIgMiAwIDAgMCAyLTEuNjFsLjgxLTQuMDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XV19KTt2YXIgdmVlLENodD11KCgpPT57dmVlPVtbInBhdGgiLHtkOiJNMTIgMTBMMTIgMiJ9XSxbInBhdGgiLHtkOiJNMTYgNkwxMiAxMEw4IDYifV0sWyJwYXRoIix7ZDoiTTIgMTVDMi42IDE1LjUgMy4yIDE2IDQuNSAxNkM3IDE2IDcgMTQgOS41IDE0QzEyLjEgMTQgMTEuOSAxNiAxNC41IDE2QzE3IDE2IDE3IDE0IDE5LjUgMTRDMjAuOCAxNCAyMS40IDE0LjUgMjIgMTUifV0sWyJwYXRoIix7ZDoiTTIgMjFDMi42IDIxLjUgMy4yIDIyIDQuNSAyMkM3IDIyIDcgMjAgOS41IDIwQzEyLjEgMjAgMTEuOSAyMiAxNC41IDIyQzE3IDIyIDE3IDIwIDE5LjUgMjBDMjAuOCAyMCAyMS40IDIwLjUgMjIgMjEifV1dfSk7dmFyIHllZSx6aHQ9dSgoKT0+e3llZT1bWyJwYXRoIix7ZDoiTTEyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMiAxNWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDIxYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dXX0pO3ZhciB3ZWUsX2h0PXUoKCk9Pnt3ZWU9W1sicGF0aCIse2Q6Ik0xOSA1YTIgMiAwIDAgMC0yIDJ2MTEifV0sWyJwYXRoIix7ZDoiTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNNyAxM2gxMCJ9XSxbInBhdGgiLHtkOiJNNyA5aDEwIn1dLFsicGF0aCIse2Q6Ik05IDVhMiAyIDAgMCAwLTIgMnYxMSJ9XV19KTt2YXIga2VlLFRodD11KCgpPT57a2VlPVtbInBhdGgiLHtkOiJNMiA2Yy42LjUgMS4yIDEgMi41IDFDNyA3IDcgNSA5LjUgNWMyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDEyYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XV19KTt2YXIgU2VlLExodD11KCgpPT57U2VlPVtbInBhdGgiLHtkOiJtMTAuNTg2IDUuNDE0LTUuMTcyIDUuMTcyIn1dLFsicGF0aCIse2Q6Im0xOC41ODYgMTMuNDE0LTUuMTcyIDUuMTcyIn1dLFsicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBNZWUsRGh0PXUoKCk9PntNZWU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTQifV1dfSk7dmFyIENlZSwkaHQ9dSgoKT0+e0NlZT1bWyJwYXRoIix7ZDoiTTE3IDE3aC01Yy0xLjA5LS4wMi0xLjk0LjkyLTIuNSAxLjlBMyAzIDAgMSAxIDIuNTcgMTUifV0sWyJwYXRoIix7ZDoiTTkgMy40YTQgNCAwIDAgMSA2LjUyLjY2In1dLFsicGF0aCIse2Q6Im02IDE3IDMuMS01LjhhMi41IDIuNSAwIDAgMCAuMDU3LTIuMDUifV0sWyJwYXRoIix7ZDoiTTIwLjMgMjAuM2E0IDQgMCAwIDEtMi4zLjcifV0sWyJwYXRoIix7ZDoiTTE4LjYgMTNhNCA0IDAgMCAxIDMuMzU3IDMuNDE0In1dLFsicGF0aCIse2Q6Im0xMiA2IC42IDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgemVlLEFodD11KCgpPT57emVlPVtbInBhdGgiLHtkOiJNMTggMTYuOThoLTUuOTljLTEuMSAwLTEuOTUuOTQtMi40OCAxLjlBNCA0IDAgMCAxIDIgMTdjLjAxLS43LjItMS40LjU3LTIifV0sWyJwYXRoIix7ZDoibTYgMTcgMy4xMy01Ljc4Yy41My0uOTcuMS0yLjE4LS41LTMuMWE0IDQgMCAxIDEgNi44OS00LjA2In1dLFsicGF0aCIse2Q6Im0xMiA2IDMuMTMgNS43M0MxNS42NiAxMi43IDE2LjkgMTMgMTggMTNhNCA0IDAgMCAxIDAgOCJ9XV19KTt2YXIgX2VlLEVodD11KCgpPT57X2VlPVtbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA2IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDh6In1dLFsicGF0aCIse2Q6Ik03Ljk5OSAxNWEyLjUgMi41IDAgMCAxIDQgMCAyLjUgMi41IDAgMCAwIDQgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjMifV1dfSk7dmFyIFRlZSxJaHQ9dSgoKT0+e1RlZT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIzIn1dLFsicGF0aCIse2Q6Ik02LjUgOGEyIDIgMCAwIDAtMS45MDUgMS40NkwyLjEgMTguNUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjUtMi41NEwxOS40IDkuNUEyIDIgMCAwIDAgMTcuNDggOFoifV1dfSk7dmFyIExlZSxQaHQ9dSgoKT0+e0xlZT1bWyJwYXRoIix7ZDoibTIgMjIgMTAtMTAifV0sWyJwYXRoIix7ZDoibTE2IDgtMS4xNyAxLjE3In1dLFsicGF0aCIse2Q6Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoibTggOC0uNTMuNTNhMy41IDMuNSAwIDAgMCAwIDQuOTRMOSAxNWwxLjUzLTEuNTNjLjU1LS41NS44OC0xLjI1Ljk4LTEuOTcifV0sWyJwYXRoIix7ZDoiTTEwLjkxIDUuMjZjLjE1LS4yNi4zNC0uNTEuNTYtLjczTDEzIDNsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgLjI4IDQuNjIifV0sWyJwYXRoIix7ZDoiTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoibTE2IDE2LS41My41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw5IDE1bDEuNTMtMS41M2EzLjQ5IDMuNDkgMCAwIDEgMS45Ny0uOTgifV0sWyJwYXRoIix7ZDoiTTE4Ljc0IDEzLjA5Yy4yNi0uMTUuNTEtLjM0LjczLS41NkwyMSAxMWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDAtNC42Mi0uMjgifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgRGVlLE5odD11KCgpPT57RGVlPVtbInBhdGgiLHtkOiJNMiAyMiAxNiA4In1dLFsicGF0aCIse2Q6Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTcuNDcgOC41MyA5IDdsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDkgMTVsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTExLjQ3IDQuNTMgMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMMTMgMTFsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoiTTE1LjQ3IDEzLjQ3IDE3IDE1bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMOSAxNWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIn1dLFsicGF0aCIse2Q6Ik0xOS40NyA5LjQ3IDIxIDExbC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMMTMgMTFsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XV19KTt2YXIgJGVlLE9odD11KCgpPT57JGVlPVtbImNpcmNsZSIse2N4OiI3IixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEwIDl2NiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNCA3djgifV0sWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXX0pO3ZhciBBZWUsUmh0PXUoKCk9PntBZWU9W1sicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJNMiA3LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNNSAxMS44NThhMTAgMTAgMCAwIDEgMTEuNS0xLjc4NSJ9XSxbInBhdGgiLHtkOiJNOC41IDE1LjQyOWE1IDUgMCAwIDEgMi40MTMtMS4zMSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBFZWUsRmh0PXUoKCk9PntFZWU9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV19KTt2YXIgSWVlLEJodD11KCgpPT57SWVlPVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV1dfSk7dmFyIFBlZSxIaHQ9dSgoKT0+e1BlZT1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIn1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSA1LjE3LTIuNjkifV0sWyJwYXRoIix7ZDoiTTE5IDEyLjg1OWExMCAxMCAwIDAgMC0yLjAwNy0xLjUyMyJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDQuMTc3LTIuNjQzIn1dLFsicGF0aCIse2Q6Ik0yMiA4LjgyYTE1IDE1IDAgMCAwLTExLjI4OC0zLjc2NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBOZWUscWh0PXUoKCk9PntOZWU9W1sicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxMC41LTIuMjIyIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSAzLTEuNDA2In1dXX0pO3ZhciBPZWUsVmh0PXUoKCk9PntPZWU9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV1dfSk7dmFyIFJlZSxqaHQ9dSgoKT0+e1JlZT1bWyJwYXRoIix7ZDoiTTExLjk2NSAxMC4xMDV2NEwxMy41IDEyLjVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0xMS45NjUgMTQuMTA1aDQifV0sWyJwYXRoIix7ZDoiTTE3Ljk2NSAxOC4xMDVoNEwyMC40MyAxOS43MWE1IDUgMCAwIDEtOC0xLjUifV0sWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Ik0yMS45NjUgMjIuMTA1di00In1dLFsicGF0aCIse2Q6Ik01IDEyLjg2YTEwIDEwIDAgMCAxIDMtMi4wMzIifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjloLjAxIn1dXX0pO3ZhciBGZWUsVWh0PXUoKCk9PntGZWU9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxNCAwIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV1dfSk7dmFyIEJlZSxXaHQ9dSgoKT0+e0JlZT1bWyJwYXRoIix7ZDoiTTEwIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMTIuOCAyMS42QTIgMiAwIDEgMCAxNCAxOEgyIn1dLFsicGF0aCIse2Q6Ik0xNy41IDEwYTIuNSAyLjUgMCAxIDEgMiA0SDIifV0sWyJwYXRoIix7ZDoibTYgNiA0IDQgNC00In1dXX0pO3ZhciBIZWUsR2h0PXUoKCk9PntIZWU9W1sicGF0aCIse2Q6Ik0xMi44IDE5LjZBMiAyIDAgMSAwIDE0IDE2SDIifV0sWyJwYXRoIix7ZDoiTTE3LjUgOGEyLjUgMi41IDAgMSAxIDIgNEgyIn1dLFsicGF0aCIse2Q6Ik05LjggNC40QTIgMiAwIDEgMSAxMSA4SDIifV1dfSk7dmFyIHFlZSxZaHQ9dSgoKT0+e3FlZT1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NyJ9XSxbInBhdGgiLHtkOiJNMTIgMTVhNSA1IDAgMCAwIDUtNWMwLTItLjUtNC0yLThIOWMtMS41IDQtMiA2LTIgOGE1IDUgMCAwIDAgNSA1WiJ9XV19KTt2YXIgVmVlLEtodD11KCgpPT57VmVlPVtbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik03IDEwaDNtNyAwaC0xLjM0MyJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NyJ9XSxbInBhdGgiLHtkOiJNNy4zMDcgNy4zMDdBMTIuMzMgMTIuMzMgMCAwIDAgNyAxMGE1IDUgMCAwIDAgNy4zOTEgNC4zOTFNOC42MzggMi45ODFDOC43NSAyLjY2OCA4Ljg3MiAyLjM0IDkgMmg2YzEuNSA0IDIgNiAyIDggMCAuNDA3LS4wNS44MDktLjE0NSAxLjE5OCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBqZWUsWmh0PXUoKCk9PntqZWU9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExdjRhMiAyIDAgMCAwIDIgMmg0In1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjEzIix5OiIxMyIscng6IjIifV1dfSk7dmFyIFVlZSxRaHQ9dSgoKT0+e1VlZT1bWyJwYXRoIix7ZDoibTE5IDEyLTEuNSAzIn1dLFsicGF0aCIse2Q6Ik0xOS42MyAxOC44MSAyMiAyMCJ9XSxbInBhdGgiLHtkOiJNNi40NyA4LjIzYTEuNjggMS42OCAwIDAgMSAyLjQ0IDEuOTNsLS42NCAyLjA4YTYuNzYgNi43NiAwIDAgMCAxMC4xNiA3LjY3bC40Mi0uMjdhMSAxIDAgMSAwLTIuNzMtNC4yMWwtLjQyLjI3YTEuNzYgMS43NiAwIDAgMS0yLjYzLTEuOTlsLjY0LTIuMDhBNi42NiA2LjY2IDAgMCAwIDMuOTQgMy45bC0uNy40YTEgMSAwIDEgMCAyLjU1IDQuMzR6In1dXX0pO3ZhciBXZWUsWGh0PXUoKCk9PntXZWU9W1sicGF0aCIse2Q6Ik0xNC43IDYuM2ExIDEgMCAwIDAgMCAxLjRsMS42IDEuNmExIDEgMCAwIDAgMS40IDBsMy4xMDYtMy4xMDVjLjMyLS4zMjIuODYzLS4yMi45ODMuMjE4YTYgNiAwIDAgMS04LjI1OSA3LjA1N2wtNy45MSA3LjkxYTEgMSAwIDAgMS0yLjk5OS0zbDcuOTEtNy45MWE2IDYgMCAwIDEgNy4wNTctOC4yNTljLjQzOC4xMi41NC42NjIuMjE5Ljk4NHoifV1dfSk7dmFyIEdlZSxKaHQ9dSgoKT0+e0dlZT1bWyJwYXRoIix7ZDoiTTE4IDYgNiAxOCJ9XSxbInBhdGgiLHtkOiJtNiA2IDEyIDEyIn1dXX0pO3ZhciBZZWUsZTZ0PXUoKCk9PntZZWU9W1sicGF0aCIse2Q6Ik0xOCA0SDYifV0sWyJwYXRoIix7ZDoiTTE4IDggNiAyMCJ9XSxbInBhdGgiLHtkOiJtNiA4IDEyIDEyIn1dXX0pO3ZhciBLZWUsdDZ0PXUoKCk9PntLZWU9W1sicGF0aCIse2Q6Ik0xMC41MTMgNC44NTYgMTMuMTIgMi4xN2EuNS41IDAgMCAxIC44Ni40NmwtMS4zNzcgNC4zMTcifV0sWyJwYXRoIix7ZDoiTTE1LjY1NiAxMEgyMGExIDEgMCAwIDEgLjc4IDEuNjNsLTEuNzIgMS43NzMifV0sWyJwYXRoIix7ZDoiTTE2LjI3MyAxNi4yNzMgMTAuODggMjEuODNhLjUuNSAwIDAgMS0uODYtLjQ2bDEuOTItNi4wMkExIDEgMCAwIDAgMTEgMTRINGExIDEgMCAwIDEtLjc4LTEuNjNsNC41MDctNC42NDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgWmVlLHI2dD11KCgpPT57WmVlPVtbInBhdGgiLHtkOiJNNCAxNGExIDEgMCAwIDEtLjc4LTEuNjNsOS45LTEwLjJhLjUuNSAwIDAgMSAuODYuNDZsLTEuOTIgNi4wMkExIDEgMCAwIDAgMTMgMTBoN2ExIDEgMCAwIDEgLjc4IDEuNjNsLTkuOSAxMC4yYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0eiJ9XV19KTt2YXIgUWVlLGE2dD11KCgpPT57UWVlPVtbInBhdGgiLHtkOiJtMiAxMCAyLjQ1Ni0zLjY4NGEuNy43IDAgMCAxIDEuMTA2LS4wMTNsMi4zOSAzLjQxM2EuNy43IDAgMCAwIDEuMDk2LS4wMDFsMi40MDItMy40MzJhLjcuNyAwIDAgMSAxLjA5OCAwbDIuNDAyIDMuNDMyYS43LjcgMCAwIDAgMS4wOTggMGwyLjM4OS0zLjQxM2EuNy43IDAgMCAxIDEuMTA2LjAxM0wyMiAxMCJ9XSxbInBhdGgiLHtkOiJtMiAxOC4wMDIgMi40NTYtMy42ODRhLjcuNyAwIDAgMSAxLjEwNi0uMDEzbDIuMzkgMy40MTNhLjcuNyAwIDAgMCAxLjA5NyAwbDIuNDAyLTMuNDMyYS43LjcgMCAwIDEgMS4wOTggMGwyLjQwMiAzLjQzMmEuNy43IDAgMCAwIDEuMDk4IDBsMi4zODktMy40MTNhLjcuNyAwIDAgMSAxLjEwNi4wMTNMMjIgMTguMDAyIn1dXX0pO3ZhciBYZWUsaTZ0PXUoKCk9PntYZWU9W1sicGF0aCIse2Q6Ik0xMiA3LjVhNC41IDQuNSAwIDEgMSA1IDQuNSJ9XSxbInBhdGgiLHtkOiJNNyAxMmE0LjUgNC41IDAgMSAxIDUtNC41VjIxIn1dXX0pO3ZhciBKZWUsczZ0PXUoKCk9PntKZWU9W1sicGF0aCIse2Q6Ik0yMSAxNC41QTkgNi41IDAgMCAxIDUuNSAxOSJ9XSxbInBhdGgiLHtkOiJNMyA5LjVBOSA2LjUgMCAwIDEgMTguNSA1In1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxNC41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiOS41IixyOiIzLjUifV1dfSk7dmFyIGV0ZSxuNnQ9dSgoKT0+e2V0ZT1bWyJwYXRoIix7ZDoiTTExIDIxYTMgMyAwIDAgMCAzLTNWNi41YTEgMSAwIDAgMC03IDAifV0sWyJwYXRoIix7ZDoiTTcgMTlWNmEzIDMgMCAwIDAtMy0zaDAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XV19KTt2YXIgdHRlLG82dD11KCgpPT57dHRlPVtbInBhdGgiLHtkOiJNMTYgNC41MjV2MTQuOTQ4In1dLFsicGF0aCIse2Q6Ik0yMCAzQTE3IDE3IDAgMCAxIDQgMyJ9XSxbInBhdGgiLHtkOiJNNCAyMWExNyAxNyAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Ik04IDQuNTI1djE0Ljk0OCJ9XV19KTt2YXIgcnRlLGw2dD11KCgpPT57cnRlPVtbInBhdGgiLHtkOiJNMTAgMTZjMC00LTMtNC41LTMtOGE1IDUgMCAwIDEgMTAgMGMwIDMuNDY2LTMgNi4xOTYtMyAxMGEzIDMgMCAwIDAgNiAwIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxNiIscjoiMyJ9XV19KTt2YXIgYXRlLGM2dD11KCgpPT57YXRlPVtbInBhdGgiLHtkOiJNMyAxNmg2Ljg1N2MuMTYyLS4wMTIuMTktLjMyMy4wMzgtLjM4YTYgNiAwIDEgMSA0LjIxMiAwYy0uMTUzLjA1Ny0uMTI1LjM2OC4wMzguMzhIMjEifV0sWyJwYXRoIix7ZDoiTTMgMjBoMTgifV1dfSk7dmFyIGl0ZSxkNnQ9dSgoKT0+e2l0ZT1bWyJwYXRoIix7ZDoiTTMgMTBBNi4wNiA2LjA2IDAgMCAxIDEyIDEwIEE2LjA2IDYuMDYgMCAwIDAgMjEgMTAifV0sWyJwYXRoIix7ZDoiTTYgM3YxMmE2IDYgMCAwIDAgMTIgMFYzIn1dXX0pO3ZhciBzdGUsdTZ0PXUoKCk9PntzdGU9W1sicGF0aCIse2Q6Ik0xOSAyMWExNSAxNSAwIDAgMSAwLTE4In1dLFsicGF0aCIse2Q6Ik0yMCAxMkg0In1dLFsicGF0aCIse2Q6Ik01IDNhMTUgMTUgMCAwIDEgMCAxOCJ9XV19KTt2YXIgbnRlLHA2dD11KCgpPT57bnRlPVtbInBhdGgiLHtkOiJNMTUgM2g2djYifV0sWyJwYXRoIix7ZDoiTTIxIDMgMyAyMSJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV19KTt2YXIgb3RlLGY2dD11KCgpPT57b3RlPVtbInBhdGgiLHtkOiJNMTAgMTlWNS41YTEgMSAwIDAgMSA1IDBWMTdhMiAyIDAgMCAwIDIgMmg1bC0zLTMifV0sWyJwYXRoIix7ZDoibTIyIDE5LTMgMyJ9XSxbInBhdGgiLHtkOiJNNSAxOVY1LjVhMSAxIDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNNSA1LjVBMi41IDIuNSAwIDAgMCAyLjUgMyJ9XV19KTt2YXIgbHRlLGg2dD11KCgpPT57bHRlPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiI2In1dLFsicGF0aCIse2Q6Ik0xOCAzQTYgNiAwIDAgMSA2IDMifV1dfSk7dmFyIGN0ZSxtNnQ9dSgoKT0+e2N0ZT1bWyJwYXRoIix7ZDoiTTExIDUuNWExIDEgMCAwIDEgNSAwVjE2YTUgNSAwIDAgMCA1IDUifV0sWyJwYXRoIix7ZDoiTTE2IDExLjVhMSAxIDAgMCAxIDUgMFYxNmE1IDUgMCAwIDEtNSA1In1dLFsicGF0aCIse2Q6Ik02IDE5VjZhMyAzIDAgMCAwLTMtM2gwIn1dLFsicGF0aCIse2Q6Ik02IDUuNWExIDEgMCAwIDEgNSAwVjE5In1dXX0pO3ZhciBkdGUsZzZ0PXUoKCk9PntkdGU9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJsaW5lIix7eDE6IjIxIix4MjoiMTYuNjUiLHkxOiIyMSIseTI6IjE2LjY1In1dLFsibGluZSIse3gxOiIxMSIseDI6IjExIix5MToiOCIseTI6IjE0In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTQiLHkxOiIxMSIseTI6IjExIn1dXX0pO3ZhciB1dGUsYjZ0PXUoKCk9Pnt1dGU9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJsaW5lIix7eDE6IjIxIix4MjoiMTYuNjUiLHkxOiIyMSIseTI6IjE2LjY1In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTQiLHkxOiIxMSIseTI6IjExIn1dXX0pO3ZhciBmOT17fTtWZShmOSx7QUFycm93RG93bjooKT0+bFQsQUFycm93VXA6KCk9PmNULEFMYXJnZVNtYWxsOigpPT5kVCxBY2Nlc3NpYmlsaXR5OigpPT51VCxBY3Rpdml0eTooKT0+cFQsQWN0aXZpdHlTcXVhcmU6KCk9PlU4LEFpclZlbnQ6KCk9PmZULEFpcnBsYXk6KCk9PmhULEFsYXJtQ2hlY2s6KCk9Pm5tLEFsYXJtQ2xvY2s6KCk9PmdULEFsYXJtQ2xvY2tDaGVjazooKT0+bm0sQWxhcm1DbG9ja01pbnVzOigpPT5sbSxBbGFybUNsb2NrT2ZmOigpPT5tVCxBbGFybUNsb2NrUGx1czooKT0+b20sQWxhcm1NaW51czooKT0+bG0sQWxhcm1QbHVzOigpPT5vbSxBbGFybVNtb2tlOigpPT5iVCxBbGJ1bTooKT0+eFQsQWxlcnRDaXJjbGU6KCk9Pk5tLEFsZXJ0T2N0YWdvbjooKT0+eTgsQWxlcnRUcmlhbmdsZTooKT0+SjcsQWxpZ25DZW50ZXI6KCk9Plc3LEFsaWduQ2VudGVySG9yaXpvbnRhbDooKT0+dlQsQWxpZ25DZW50ZXJWZXJ0aWNhbDooKT0+eVQsQWxpZ25FbmRIb3Jpem9udGFsOigpPT53VCxBbGlnbkVuZFZlcnRpY2FsOigpPT5rVCxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlQ2VudGVyOigpPT5TVCxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlRW5kOigpPT5NVCxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQ6KCk9PkNULEFsaWduSG9yaXpvbnRhbEp1c3RpZnlDZW50ZXI6KCk9PnpULEFsaWduSG9yaXpvbnRhbEp1c3RpZnlFbmQ6KCk9Pl9ULEFsaWduSG9yaXpvbnRhbEp1c3RpZnlTdGFydDooKT0+VFQsQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQ6KCk9PkxULEFsaWduSG9yaXpvbnRhbFNwYWNlQmV0d2VlbjooKT0+RFQsQWxpZ25KdXN0aWZ5OigpPT5ZNyxBbGlnbkxlZnQ6KCk9Pks0LEFsaWduUmlnaHQ6KCk9Pkc3LEFsaWduU3RhcnRIb3Jpem9udGFsOigpPT4kVCxBbGlnblN0YXJ0VmVydGljYWw6KCk9PkFULEFsaWduVmVydGljYWxEaXN0cmlidXRlQ2VudGVyOigpPT5FVCxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZDooKT0+UFQsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVTdGFydDooKT0+SVQsQWxpZ25WZXJ0aWNhbEp1c3RpZnlDZW50ZXI6KCk9Pk5ULEFsaWduVmVydGljYWxKdXN0aWZ5RW5kOigpPT5PVCxBbGlnblZlcnRpY2FsSnVzdGlmeVN0YXJ0OigpPT5SVCxBbGlnblZlcnRpY2FsU3BhY2VBcm91bmQ6KCk9PkZULEFsaWduVmVydGljYWxTcGFjZUJldHdlZW46KCk9PkJULEFtYnVsYW5jZTooKT0+SFQsQW1wZXJzYW5kOigpPT5xVCxBbXBlcnNhbmRzOigpPT5WVCxBbXBob3JhOigpPT5qVCxBbmNob3I6KCk9PlVULEFuZ3J5OigpPT5XVCxBbm5veWVkOigpPT5HVCxBbnRlbm5hOigpPT5LVCxBbnZpbDooKT0+WVQsQXBlcnR1cmU6KCk9PlpULEFwcFdpbmRvdzooKT0+ZUwsQXBwV2luZG93TWFjOigpPT5RVCxBcHBsZTooKT0+WFQsQXJjaGl2ZTooKT0+ckwsQXJjaGl2ZVJlc3RvcmU6KCk9PkpULEFyY2hpdmVYOigpPT50TCxBcmVhQ2hhcnQ6KCk9PlNtLEFybWNoYWlyOigpPT5hTCxBcnJvd0JpZ0Rvd246KCk9PnNMLEFycm93QmlnRG93bkRhc2g6KCk9PmlMLEFycm93QmlnTGVmdDooKT0+b0wsQXJyb3dCaWdMZWZ0RGFzaDooKT0+bkwsQXJyb3dCaWdSaWdodDooKT0+Y0wsQXJyb3dCaWdSaWdodERhc2g6KCk9PmxMLEFycm93QmlnVXA6KCk9PnVMLEFycm93QmlnVXBEYXNoOigpPT5kTCxBcnJvd0Rvd246KCk9PndMLEFycm93RG93bjAxOigpPT5wTCxBcnJvd0Rvd24xMDooKT0+ZkwsQXJyb3dEb3duQVo6KCk9PmNtLEFycm93RG93bkF6OigpPT5jbSxBcnJvd0Rvd25DaXJjbGU6KCk9Pk9tLEFycm93RG93bkZyb21MaW5lOigpPT5oTCxBcnJvd0Rvd25MZWZ0OigpPT5tTCxBcnJvd0Rvd25MZWZ0RnJvbUNpcmNsZTooKT0+Rm0sQXJyb3dEb3duTGVmdEZyb21TcXVhcmU6KCk9Plo4LEFycm93RG93bkxlZnRTcXVhcmU6KCk9Plc4LEFycm93RG93bk5hcnJvd1dpZGU6KCk9PmdMLEFycm93RG93blJpZ2h0OigpPT5iTCxBcnJvd0Rvd25SaWdodEZyb21DaXJjbGU6KCk9PkJtLEFycm93RG93blJpZ2h0RnJvbVNxdWFyZTooKT0+UTgsQXJyb3dEb3duUmlnaHRTcXVhcmU6KCk9Pkc4LEFycm93RG93blNxdWFyZTooKT0+WTgsQXJyb3dEb3duVG9Eb3Q6KCk9PnhMLEFycm93RG93blRvTGluZTooKT0+dkwsQXJyb3dEb3duVXA6KCk9PnlMLEFycm93RG93bldpZGVOYXJyb3c6KCk9PmRtLEFycm93RG93blpBOigpPT51bSxBcnJvd0Rvd25aYTooKT0+dW0sQXJyb3dMZWZ0OigpPT5DTCxBcnJvd0xlZnRDaXJjbGU6KCk9PlJtLEFycm93TGVmdEZyb21MaW5lOigpPT5rTCxBcnJvd0xlZnRSaWdodDooKT0+U0wsQXJyb3dMZWZ0U3F1YXJlOigpPT5LOCxBcnJvd0xlZnRUb0xpbmU6KCk9Pk1MLEFycm93UmlnaHQ6KCk9PkxMLEFycm93UmlnaHRDaXJjbGU6KCk9PlZtLEFycm93UmlnaHRGcm9tTGluZTooKT0+ekwsQXJyb3dSaWdodExlZnQ6KCk9Pl9MLEFycm93UmlnaHRTcXVhcmU6KCk9PmU3LEFycm93UmlnaHRUb0xpbmU6KCk9PlRMLEFycm93VXA6KCk9PkZMLEFycm93VXAwMTooKT0+REwsQXJyb3dVcDEwOigpPT4kTCxBcnJvd1VwQVo6KCk9PnBtLEFycm93VXBBejooKT0+cG0sQXJyb3dVcENpcmNsZTooKT0+am0sQXJyb3dVcERvd246KCk9PkFMLEFycm93VXBGcm9tRG90OigpPT5FTCxBcnJvd1VwRnJvbUxpbmU6KCk9PklMLEFycm93VXBMZWZ0OigpPT5QTCxBcnJvd1VwTGVmdEZyb21DaXJjbGU6KCk9PkhtLEFycm93VXBMZWZ0RnJvbVNxdWFyZTooKT0+WDgsQXJyb3dVcExlZnRTcXVhcmU6KCk9PnQ3LEFycm93VXBOYXJyb3dXaWRlOigpPT5mbSxBcnJvd1VwUmlnaHQ6KCk9Pk5MLEFycm93VXBSaWdodEZyb21DaXJjbGU6KCk9PnFtLEFycm93VXBSaWdodEZyb21TcXVhcmU6KCk9Pko4LEFycm93VXBSaWdodFNxdWFyZTooKT0+cjcsQXJyb3dVcFNxdWFyZTooKT0+YTcsQXJyb3dVcFRvTGluZTooKT0+T0wsQXJyb3dVcFdpZGVOYXJyb3c6KCk9PlJMLEFycm93VXBaQTooKT0+aG0sQXJyb3dVcFphOigpPT5obSxBcnJvd3NVcEZyb21MaW5lOigpPT5CTCxBc3RlcmlzazooKT0+SEwsQXN0ZXJpc2tTcXVhcmU6KCk9Pmk3LEF0U2lnbjooKT0+cUwsQXRvbTooKT0+VkwsQXVkaW9MaW5lczooKT0+akwsQXVkaW9XYXZlZm9ybTooKT0+V0wsQXdhcmQ6KCk9PlVMLEF4ZTooKT0+R0wsQXhpczNEOigpPT5tbSxBeGlzM2Q6KCk9Pm1tLEJhYnk6KCk9PllMLEJhY2twYWNrOigpPT5LTCxCYWRnZTooKT0+dUQsQmFkZ2VBbGVydDooKT0+WkwsQmFkZ2VDZW50OigpPT5RTCxCYWRnZUNoZWNrOigpPT5nbSxCYWRnZURvbGxhclNpZ246KCk9PlhMLEJhZGdlRXVybzooKT0+SkwsQmFkZ2VIZWxwOigpPT5ibSxCYWRnZUluZGlhblJ1cGVlOigpPT5lRCxCYWRnZUluZm86KCk9PnRELEJhZGdlSmFwYW5lc2VZZW46KCk9PnJELEJhZGdlTWludXM6KCk9PmFELEJhZGdlUGVyY2VudDooKT0+aUQsQmFkZ2VQbHVzOigpPT5zRCxCYWRnZVBvdW5kU3Rlcmxpbmc6KCk9Pm5ELEJhZGdlUXVlc3Rpb25NYXJrOigpPT5ibSxCYWRnZVJ1c3NpYW5SdWJsZTooKT0+b0QsQmFkZ2VTd2lzc0ZyYW5jOigpPT5sRCxCYWRnZVR1cmtpc2hMaXJhOigpPT5jRCxCYWRnZVg6KCk9PmRELEJhZ2dhZ2VDbGFpbTooKT0+cEQsQmFsbG9vbjooKT0+ZkQsQmFuOigpPT5oRCxCYW5hbmE6KCk9Pm1ELEJhbmRhZ2U6KCk9PmdELEJhbmtub3RlOigpPT55RCxCYW5rbm90ZUFycm93RG93bjooKT0+YkQsQmFua25vdGVBcnJvd1VwOigpPT54RCxCYW5rbm90ZVg6KCk9PnZELEJhckNoYXJ0OigpPT5BbSxCYXJDaGFydDI6KCk9PiRtLEJhckNoYXJ0MzooKT0+TG0sQmFyQ2hhcnQ0OigpPT5UbSxCYXJDaGFydEJpZzooKT0+X20sQmFyQ2hhcnRIb3Jpem9udGFsOigpPT5DbSxCYXJDaGFydEhvcml6b250YWxCaWc6KCk9Pk1tLEJhcmNvZGU6KCk9PndELEJhcnJlbDooKT0+a0QsQmFzZWxpbmU6KCk9PlNELEJhdGg6KCk9Pk1ELEJhdHRlcnk6KCk9PiRELEJhdHRlcnlDaGFyZ2luZzooKT0+Q0QsQmF0dGVyeUZ1bGw6KCk9Pl9ELEJhdHRlcnlMb3c6KCk9PnpELEJhdHRlcnlNZWRpdW06KCk9PlRELEJhdHRlcnlQbHVzOigpPT5MRCxCYXR0ZXJ5V2FybmluZzooKT0+REQsQmVha2VyOigpPT5BRCxCZWFuOigpPT5JRCxCZWFuT2ZmOigpPT5FRCxCZWQ6KCk9PlJELEJlZERvdWJsZTooKT0+UEQsQmVkU2luZ2xlOigpPT5ORCxCZWVmOigpPT5GRCxCZWVmT2ZmOigpPT5PRCxCZWVyOigpPT5IRCxCZWVyT2ZmOigpPT5CRCxCZWxsOigpPT5ZRCxCZWxsRG90OigpPT5xRCxCZWxsRWxlY3RyaWM6KCk9PlZELEJlbGxNaW51czooKT0+akQsQmVsbE9mZjooKT0+VUQsQmVsbFBsdXM6KCk9PldELEJlbGxSaW5nOigpPT5HRCxCZXR3ZWVuSG9yaXpvbmFsRW5kOigpPT54bSxCZXR3ZWVuSG9yaXpvbmFsU3RhcnQ6KCk9PnZtLEJldHdlZW5Ib3Jpem9udGFsRW5kOigpPT54bSxCZXR3ZWVuSG9yaXpvbnRhbFN0YXJ0OigpPT52bSxCZXR3ZWVuVmVydGljYWxFbmQ6KCk9PktELEJldHdlZW5WZXJ0aWNhbFN0YXJ0OigpPT5aRCxCaWNlcHNGbGV4ZWQ6KCk9PlFELEJpa2U6KCk9PlhELEJpbmFyeTooKT0+SkQsQmlub2N1bGFyczooKT0+ZSQsQmlvaGF6YXJkOigpPT50JCxCaXJkOigpPT5yJCxCaXJkaG91c2U6KCk9PmEkLEJpdGNvaW46KCk9PmkkLEJsZW5kOigpPT5zJCxCbGluZHM6KCk9Pm4kLEJsb2NrczooKT0+byQsQmx1ZXRvb3RoOigpPT5kJCxCbHVldG9vdGhDb25uZWN0ZWQ6KCk9PmwkLEJsdWV0b290aE9mZjooKT0+YyQsQmx1ZXRvb3RoU2VhcmNoaW5nOigpPT5wJCxCb2xkOigpPT51JCxCb2x0OigpPT5mJCxCb21iOigpPT5oJCxCb25lOigpPT5tJCxCb29rOigpPT5GJCxCb29rQTooKT0+ZyQsQm9va0FsZXJ0OigpPT5iJCxCb29rQXVkaW86KCk9PngkLEJvb2tDaGVjazooKT0+diQsQm9va0NvcHk6KCk9PnkkLEJvb2tEYXNoZWQ6KCk9PnltLEJvb2tEb3duOigpPT53JCxCb29rSGVhZHBob25lczooKT0+ayQsQm9va0hlYXJ0OigpPT5TJCxCb29rSW1hZ2U6KCk9Pk0kLEJvb2tLZXk6KCk9PkMkLEJvb2tMb2NrOigpPT56JCxCb29rTWFya2VkOigpPT5UJCxCb29rTWludXM6KCk9Pl8kLEJvb2tPcGVuOigpPT4kJCxCb29rT3BlbkNoZWNrOigpPT5MJCxCb29rT3BlblRleHQ6KCk9PkQkLEJvb2tQbHVzOigpPT5BJCxCb29rU2VhcmNoOigpPT5FJCxCb29rVGVtcGxhdGU6KCk9PnltLEJvb2tUZXh0OigpPT5JJCxCb29rVHlwZTooKT0+UCQsQm9va1VwOigpPT5PJCxCb29rVXAyOigpPT5OJCxCb29rVXNlcjooKT0+UiQsQm9va1g6KCk9PkIkLEJvb2ttYXJrOigpPT5XJCxCb29rbWFya0NoZWNrOigpPT5IJCxCb29rbWFya01pbnVzOigpPT5WJCxCb29rbWFya09mZjooKT0+cSQsQm9va21hcmtQbHVzOigpPT5qJCxCb29rbWFya1g6KCk9PlUkLEJvb21Cb3g6KCk9PkckLEJvdDooKT0+WiQsQm90TWVzc2FnZVNxdWFyZTooKT0+WSQsQm90T2ZmOigpPT5LJCxCb3R0bGVXaW5lOigpPT5RJCxCb3dBcnJvdzooKT0+WCQsQm94OigpPT5KJCxCb3hTZWxlY3Q6KCk9PmI3LEJveGVzOigpPT5lQSxCcmFjZXM6KCk9PndtLEJyYWNrZXRzOigpPT50QSxCcmFpbjooKT0+aUEsQnJhaW5DaXJjdWl0OigpPT5yQSxCcmFpbkNvZzooKT0+YUEsQnJpY2tXYWxsOigpPT5vQSxCcmlja1dhbGxGaXJlOigpPT5zQSxCcmlja1dhbGxTaGllbGQ6KCk9Pm5BLEJyaWVmY2FzZTooKT0+dUEsQnJpZWZjYXNlQnVzaW5lc3M6KCk9PmxBLEJyaWVmY2FzZUNvbnZleW9yQmVsdDooKT0+Y0EsQnJpZWZjYXNlTWVkaWNhbDooKT0+ZEEsQnJpbmdUb0Zyb250OigpPT5wQSxCcnVzaDooKT0+aEEsQnJ1c2hDbGVhbmluZzooKT0+ZkEsQnViYmxlczooKT0+bUEsQnVnOigpPT54QSxCdWdPZmY6KCk9PmdBLEJ1Z1BsYXk6KCk9PmJBLEJ1aWxkaW5nOigpPT55QSxCdWlsZGluZzI6KCk9PnZBLEJ1czooKT0+a0EsQnVzRnJvbnQ6KCk9PndBLENhYmxlOigpPT5NQSxDYWJsZUNhcjooKT0+U0EsQ2FrZTooKT0+ekEsQ2FrZVNsaWNlOigpPT5DQSxDYWxjdWxhdG9yOigpPT5fQSxDYWxlbmRhcjooKT0+WUEsQ2FsZW5kYXIxOigpPT5UQSxDYWxlbmRhckFycm93RG93bjooKT0+TEEsQ2FsZW5kYXJBcnJvd1VwOigpPT5EQSxDYWxlbmRhckNoZWNrOigpPT5BQSxDYWxlbmRhckNoZWNrMjooKT0+JEEsQ2FsZW5kYXJDbG9jazooKT0+RUEsQ2FsZW5kYXJDb2c6KCk9PklBLENhbGVuZGFyRGF5czooKT0+UEEsQ2FsZW5kYXJGb2xkOigpPT5OQSxDYWxlbmRhckhlYXJ0OigpPT5GQSxDYWxlbmRhck1pbnVzOigpPT5SQSxDYWxlbmRhck1pbnVzMjooKT0+T0EsQ2FsZW5kYXJPZmY6KCk9PkJBLENhbGVuZGFyUGx1czooKT0+cUEsQ2FsZW5kYXJQbHVzMjooKT0+SEEsQ2FsZW5kYXJSYW5nZTooKT0+VkEsQ2FsZW5kYXJTZWFyY2g6KCk9PmpBLENhbGVuZGFyU3luYzooKT0+VUEsQ2FsZW5kYXJYOigpPT5HQSxDYWxlbmRhclgyOigpPT5XQSxDYWxlbmRhcnM6KCk9PktBLENhbWVyYTooKT0+WkEsQ2FtZXJhT2ZmOigpPT5RQSxDYW5kbGVzdGlja0NoYXJ0OigpPT56bSxDYW5keTooKT0+ZUUsQ2FuZHlDYW5lOigpPT5YQSxDYW5keU9mZjooKT0+SkEsQ2FubmFiaXM6KCk9PnJFLENhbm5hYmlzT2ZmOigpPT50RSxDYXB0aW9uczooKT0+a20sQ2FwdGlvbnNPZmY6KCk9PmFFLENhcjooKT0+c0UsQ2FyRnJvbnQ6KCk9PmlFLENhclRheGlGcm9udDooKT0+bkUsQ2FyYXZhbjooKT0+b0UsQ2FyZFNpbTooKT0+bEUsQ2Fycm90OigpPT5jRSxDYXNlTG93ZXI6KCk9PmRFLENhc2VTZW5zaXRpdmU6KCk9PnVFLENhc2VVcHBlcjooKT0+cEUsQ2Fzc2V0dGVUYXBlOigpPT5mRSxDYXN0OigpPT5oRSxDYXN0bGU6KCk9Pm1FLENhdDooKT0+Z0UsQ2N0djooKT0+eEUsQ2N0dk9mZjooKT0+YkUsQ2hhcnRBcmVhOigpPT5TbSxDaGFydEJhcjooKT0+Q20sQ2hhcnRCYXJCaWc6KCk9Pk1tLENoYXJ0QmFyRGVjcmVhc2luZzooKT0+dkUsQ2hhcnRCYXJJbmNyZWFzaW5nOigpPT55RSxDaGFydEJhclN0YWNrZWQ6KCk9PndFLENoYXJ0Q2FuZGxlc3RpY2s6KCk9PnptLENoYXJ0Q29sdW1uOigpPT5MbSxDaGFydENvbHVtbkJpZzooKT0+X20sQ2hhcnRDb2x1bW5EZWNyZWFzaW5nOigpPT5rRSxDaGFydENvbHVtbkluY3JlYXNpbmc6KCk9PlRtLENoYXJ0Q29sdW1uU3RhY2tlZDooKT0+U0UsQ2hhcnRHYW50dDooKT0+TUUsQ2hhcnRMaW5lOigpPT5EbSxDaGFydE5ldHdvcms6KCk9PkNFLENoYXJ0Tm9BeGVzQ29sdW1uOigpPT4kbSxDaGFydE5vQXhlc0NvbHVtbkRlY3JlYXNpbmc6KCk9PnpFLENoYXJ0Tm9BeGVzQ29sdW1uSW5jcmVhc2luZzooKT0+QW0sQ2hhcnROb0F4ZXNDb21iaW5lZDooKT0+X0UsQ2hhcnROb0F4ZXNHYW50dDooKT0+RW0sQ2hhcnRQaWU6KCk9PkltLENoYXJ0U2NhdHRlcjooKT0+UG0sQ2hhcnRTcGxpbmU6KCk9PlRFLENoZWNrOigpPT4kRSxDaGVja0NoZWNrOigpPT5MRSxDaGVja0NpcmNsZTooKT0+VW0sQ2hlY2tDaXJjbGUyOigpPT5XbSxDaGVja0xpbmU6KCk9PkRFLENoZWNrU3F1YXJlOigpPT5sNyxDaGVja1NxdWFyZTI6KCk9PmM3LENoZWZIYXQ6KCk9PkFFLENoZXJyeTooKT0+RUUsQ2hlc3NCaXNob3A6KCk9PklFLENoZXNzS2luZzooKT0+UEUsQ2hlc3NLbmlnaHQ6KCk9Pk9FLENoZXNzUGF3bjooKT0+TkUsQ2hlc3NRdWVlbjooKT0+UkUsQ2hlc3NSb29rOigpPT5GRSxDaGV2cm9uRG93bjooKT0+QkUsQ2hldnJvbkRvd25DaXJjbGU6KCk9PkdtLENoZXZyb25Eb3duU3F1YXJlOigpPT5kNyxDaGV2cm9uRmlyc3Q6KCk9PkhFLENoZXZyb25MYXN0OigpPT5xRSxDaGV2cm9uTGVmdDooKT0+VkUsQ2hldnJvbkxlZnRDaXJjbGU6KCk9PlltLENoZXZyb25MZWZ0U3F1YXJlOigpPT51NyxDaGV2cm9uUmlnaHQ6KCk9PmpFLENoZXZyb25SaWdodENpcmNsZTooKT0+S20sQ2hldnJvblJpZ2h0U3F1YXJlOigpPT5wNyxDaGV2cm9uVXA6KCk9PlVFLENoZXZyb25VcENpcmNsZTooKT0+Wm0sQ2hldnJvblVwU3F1YXJlOigpPT5mNyxDaGV2cm9uc0Rvd246KCk9PkdFLENoZXZyb25zRG93blVwOigpPT5XRSxDaGV2cm9uc0xlZnQ6KCk9PlFFLENoZXZyb25zTGVmdFJpZ2h0OigpPT5LRSxDaGV2cm9uc0xlZnRSaWdodEVsbGlwc2lzOigpPT5ZRSxDaGV2cm9uc1JpZ2h0OigpPT5YRSxDaGV2cm9uc1JpZ2h0TGVmdDooKT0+WkUsQ2hldnJvbnNVcDooKT0+ZUksQ2hldnJvbnNVcERvd246KCk9PkpFLENodXJjaDooKT0+dEksQ2lnYXJldHRlOigpPT5hSSxDaWdhcmV0dGVPZmY6KCk9PnJJLENpcmNsZTooKT0+eEksQ2lyY2xlQWxlcnQ6KCk9Pk5tLENpcmNsZUFycm93RG93bjooKT0+T20sQ2lyY2xlQXJyb3dMZWZ0OigpPT5SbSxDaXJjbGVBcnJvd091dERvd25MZWZ0OigpPT5GbSxDaXJjbGVBcnJvd091dERvd25SaWdodDooKT0+Qm0sQ2lyY2xlQXJyb3dPdXRVcExlZnQ6KCk9PkhtLENpcmNsZUFycm93T3V0VXBSaWdodDooKT0+cW0sQ2lyY2xlQXJyb3dSaWdodDooKT0+Vm0sQ2lyY2xlQXJyb3dVcDooKT0+am0sQ2lyY2xlQ2hlY2s6KCk9PldtLENpcmNsZUNoZWNrQmlnOigpPT5VbSxDaXJjbGVDaGV2cm9uRG93bjooKT0+R20sQ2lyY2xlQ2hldnJvbkxlZnQ6KCk9PlltLENpcmNsZUNoZXZyb25SaWdodDooKT0+S20sQ2lyY2xlQ2hldnJvblVwOigpPT5abSxDaXJjbGVEYXNoZWQ6KCk9PmlJLENpcmNsZURpdmlkZTooKT0+UW0sQ2lyY2xlRG9sbGFyU2lnbjooKT0+c0ksQ2lyY2xlRG90OigpPT5vSSxDaXJjbGVEb3REYXNoZWQ6KCk9Pm5JLENpcmNsZUVsbGlwc2lzOigpPT5sSSxDaXJjbGVFcXVhbDooKT0+Y0ksQ2lyY2xlRmFkaW5nQXJyb3dVcDooKT0+ZEksQ2lyY2xlRmFkaW5nUGx1czooKT0+dUksQ2lyY2xlR2F1Z2U6KCk9PlhtLENpcmNsZUhlbHA6KCk9Pkg0LENpcmNsZU1pbnVzOigpPT5KbSxDaXJjbGVPZmY6KCk9PnBJLENpcmNsZVBhcmtpbmc6KCk9PmU1LENpcmNsZVBhcmtpbmdPZmY6KCk9PnQ1LENpcmNsZVBhdXNlOigpPT5hNSxDaXJjbGVQZXJjZW50OigpPT5yNSxDaXJjbGVQaWxlOigpPT5mSSxDaXJjbGVQbGF5OigpPT5pNSxDaXJjbGVQbHVzOigpPT5zNSxDaXJjbGVQb3VuZFN0ZXJsaW5nOigpPT5oSSxDaXJjbGVQb3dlcjooKT0+bjUsQ2lyY2xlUXVlc3Rpb25NYXJrOigpPT5INCxDaXJjbGVTbGFzaDooKT0+bUksQ2lyY2xlU2xhc2gyOigpPT5vNSxDaXJjbGVTbGFzaGVkOigpPT5vNSxDaXJjbGVTbWFsbDooKT0+Z0ksQ2lyY2xlU3RhcjooKT0+YkksQ2lyY2xlU3RvcDooKT0+bDUsQ2lyY2xlVXNlcjooKT0+ZDUsQ2lyY2xlVXNlclJvdW5kOigpPT5jNSxDaXJjbGVYOigpPT51NSxDaXJjdWl0Qm9hcmQ6KCk9PnZJLENpdHJ1czooKT0+a0ksQ2xhcHBlcmJvYXJkOigpPT55SSxDbGlwYm9hcmQ6KCk9PiRJLENsaXBib2FyZENoZWNrOigpPT53SSxDbGlwYm9hcmRDbG9jazooKT0+U0ksQ2xpcGJvYXJkQ29weTooKT0+TUksQ2xpcGJvYXJkRWRpdDooKT0+ZjUsQ2xpcGJvYXJkTGlzdDooKT0+Q0ksQ2xpcGJvYXJkTWludXM6KCk9PnpJLENsaXBib2FyZFBhc3RlOigpPT5fSSxDbGlwYm9hcmRQZW46KCk9PmY1LENsaXBib2FyZFBlbkxpbmU6KCk9PnA1LENsaXBib2FyZFBsdXM6KCk9PlRJLENsaXBib2FyZFNpZ25hdHVyZTooKT0+cDUsQ2xpcGJvYXJkVHlwZTooKT0+TEksQ2xpcGJvYXJkWDooKT0+REksQ2xvY2s6KCk9PlpJLENsb2NrMTooKT0+QUksQ2xvY2sxMDooKT0+RUksQ2xvY2sxMTooKT0+SUksQ2xvY2sxMjooKT0+UEksQ2xvY2syOigpPT5OSSxDbG9jazM6KCk9Pk9JLENsb2NrNDooKT0+UkksQ2xvY2s1OigpPT5GSSxDbG9jazY6KCk9PkJJLENsb2NrNzooKT0+SEksQ2xvY2s4OigpPT5xSSxDbG9jazk6KCk9PlZJLENsb2NrQWxlcnQ6KCk9PmpJLENsb2NrQXJyb3dEb3duOigpPT5VSSxDbG9ja0Fycm93VXA6KCk9PldJLENsb2NrQ2hlY2s6KCk9PkdJLENsb2NrRmFkaW5nOigpPT5ZSSxDbG9ja1BsdXM6KCk9PktJLENsb3NlZENhcHRpb246KCk9PlFJLENsb3VkOigpPT5nUCxDbG91ZEFsZXJ0OigpPT5YSSxDbG91ZEJhY2t1cDooKT0+SkksQ2xvdWRDaGVjazooKT0+ZVAsQ2xvdWRDb2c6KCk9PnRQLENsb3VkRG93bmxvYWQ6KCk9Pmg1LENsb3VkRHJpenpsZTooKT0+clAsQ2xvdWRGb2c6KCk9PmFQLENsb3VkSGFpbDooKT0+aVAsQ2xvdWRMaWdodG5pbmc6KCk9PnNQLENsb3VkTW9vbjooKT0+b1AsQ2xvdWRNb29uUmFpbjooKT0+blAsQ2xvdWRPZmY6KCk9PmRQLENsb3VkUmFpbjooKT0+Y1AsQ2xvdWRSYWluV2luZDooKT0+bFAsQ2xvdWRTbm93OigpPT51UCxDbG91ZFN1bjooKT0+ZlAsQ2xvdWRTdW5SYWluOigpPT5wUCxDbG91ZFN5bmM6KCk9PmhQLENsb3VkVXBsb2FkOigpPT5tNSxDbG91ZHk6KCk9Pm1QLENsb3ZlcjooKT0+YlAsQ2x1YjooKT0+eFAsQ29kZTooKT0+dlAsQ29kZTI6KCk9Pmc1LENvZGVTcXVhcmU6KCk9Pmg3LENvZGVYbWw6KCk9Pmc1LENvZmZlZTooKT0+eVAsQ29nOigpPT5rUCxDb2luczooKT0+d1AsQ29sdW1uczooKT0+eDUsQ29sdW1uczI6KCk9Png1LENvbHVtbnMzOigpPT5iNSxDb2x1bW5zM0NvZzooKT0+cTQsQ29sdW1uczQ6KCk9PlNQLENvbHVtbnNTZXR0aW5nczooKT0+cTQsQ29tYmluZTooKT0+TVAsQ29tbWFuZDooKT0+Q1AsQ29tcGFzczooKT0+elAsQ29tcG9uZW50OigpPT5fUCxDb21wdXRlcjooKT0+VFAsQ29uY2llcmdlQmVsbDooKT0+TFAsQ29uZTooKT0+RFAsQ29uc3RydWN0aW9uOigpPT4kUCxDb250YWN0OigpPT5FUCxDb250YWN0MjooKT0+djUsQ29udGFjdFJvdW5kOigpPT52NSxDb250YWluZXI6KCk9PkFQLENvbnRyYXN0OigpPT5JUCxDb29raWU6KCk9PlBQLENvb2tpbmdQb3Q6KCk9Pk5QLENvcHk6KCk9PnFQLENvcHlDaGVjazooKT0+T1AsQ29weU1pbnVzOigpPT5SUCxDb3B5UGx1czooKT0+RlAsQ29weVNsYXNoOigpPT5CUCxDb3B5WDooKT0+SFAsQ29weWxlZnQ6KCk9PlZQLENvcHlyaWdodDooKT0+alAsQ29ybmVyRG93bkxlZnQ6KCk9PlVQLENvcm5lckRvd25SaWdodDooKT0+V1AsQ29ybmVyTGVmdERvd246KCk9PkdQLENvcm5lckxlZnRVcDooKT0+WVAsQ29ybmVyUmlnaHREb3duOigpPT5LUCxDb3JuZXJSaWdodFVwOigpPT5aUCxDb3JuZXJVcExlZnQ6KCk9PlFQLENvcm5lclVwUmlnaHQ6KCk9PlhQLENwdTooKT0+SlAsQ3JlYXRpdmVDb21tb25zOigpPT50TixDcmVkaXRDYXJkOigpPT5lTixDcm9pc3NhbnQ6KCk9PnJOLENyb3A6KCk9PmFOLENyb3NzOigpPT5pTixDcm9zc2hhaXI6KCk9PnNOLENyb3duOigpPT5uTixDdWJvaWQ6KCk9Pm9OLEN1cFNvZGE6KCk9PmxOLEN1cmx5QnJhY2VzOigpPT53bSxDdXJyZW5jeTooKT0+Y04sQ3lsaW5kZXI6KCk9PmROLERhbTooKT0+dU4sRGF0YWJhc2U6KCk9Pm1OLERhdGFiYXNlQmFja3VwOigpPT5wTixEYXRhYmFzZVNlYXJjaDooKT0+Zk4sRGF0YWJhc2VaYXA6KCk9PmhOLERlY2ltYWxzQXJyb3dMZWZ0OigpPT5nTixEZWNpbWFsc0Fycm93UmlnaHQ6KCk9PmJOLERlbGV0ZTooKT0+eE4sRGVzc2VydDooKT0+dk4sRGlhbWV0ZXI6KCk9PnlOLERpYW1vbmQ6KCk9PmtOLERpYW1vbmRNaW51czooKT0+d04sRGlhbW9uZFBlcmNlbnQ6KCk9Pnk1LERpYW1vbmRQbHVzOigpPT5TTixEaWNlMTooKT0+TU4sRGljZTI6KCk9PkNOLERpY2UzOigpPT5UTixEaWNlNDooKT0+ek4sRGljZTU6KCk9Pl9OLERpY2U2OigpPT5MTixEaWNlczooKT0+RE4sRGlmZjooKT0+JE4sRGlzYzooKT0+UE4sRGlzYzI6KCk9PkFOLERpc2MzOigpPT5FTixEaXNjQWxidW06KCk9PklOLERpdmlkZTooKT0+Tk4sRGl2aWRlQ2lyY2xlOigpPT5RbSxEaXZpZGVTcXVhcmU6KCk9Png3LERuYTooKT0+T04sRG5hT2ZmOigpPT5GTixEb2NrOigpPT5STixEb2c6KCk9PkJOLERvbGxhclNpZ246KCk9PkhOLERvbnV0OigpPT5xTixEb29yQ2xvc2VkOigpPT5VTixEb29yQ2xvc2VkTG9ja2VkOigpPT5qTixEb29yT3BlbjooKT0+Vk4sRG90OigpPT5XTixEb3RTcXVhcmU6KCk9PnY3LERvd25sb2FkOigpPT5HTixEb3dubG9hZENsb3VkOigpPT5oNSxEcmFmdGluZ0NvbXBhc3M6KCk9PllOLERyYW1hOigpPT5LTixEcmlsbDooKT0+Wk4sRHJvbmU6KCk9PlFOLERyb3BsZXQ6KCk9PkpOLERyb3BsZXRPZmY6KCk9PlhOLERyb3BsZXRzOigpPT5lTyxEcnVtOigpPT5yTyxEcnVtc3RpY2s6KCk9PnRPLER1bWJiZWxsOigpPT5hTyxFYXI6KCk9PnNPLEVhck9mZjooKT0+aU8sRWFydGg6KCk9Pnc1LEVhcnRoTG9jazooKT0+bk8sRWNsaXBzZTooKT0+b08sRWRpdDooKT0+ZGMsRWRpdDI6KCk9PkU4LEVkaXQzOigpPT5BOCxFZ2c6KCk9PnVPLEVnZ0ZyaWVkOigpPT5jTyxFZ2dPZmY6KCk9PmxPLEVsbGlwc2U6KCk9PmRPLEVsbGlwc2lzOigpPT5TNSxFbGxpcHNpc1ZlcnRpY2FsOigpPT5rNSxFcXVhbDooKT0+aE8sRXF1YWxBcHByb3hpbWF0ZWx5OigpPT5wTyxFcXVhbE5vdDooKT0+Zk8sRXF1YWxTcXVhcmU6KCk9Pnk3LEVyYXNlcjooKT0+bU8sRXRoZXJuZXRQb3J0OigpPT5nTyxFdXJvOigpPT5iTyxFdkNoYXJnZXI6KCk9PnhPLEV4cGFuZDooKT0+dk8sRXh0ZXJuYWxMaW5rOigpPT55TyxFeWU6KCk9PlNPLEV5ZUNsb3NlZDooKT0+a08sRXllT2ZmOigpPT53TyxGYWN0b3J5OigpPT5NTyxGYW46KCk9PkNPLEZhc3RGb3J3YXJkOigpPT56TyxGZWF0aGVyOigpPT5fTyxGZW5jZTooKT0+VE8sRmVycmlzV2hlZWw6KCk9PkxPLEZpbGU6KCk9PmlSLEZpbGVBcmNoaXZlOigpPT5ETyxGaWxlQXVkaW86KCk9PlY0LEZpbGVBdWRpbzI6KCk9PlY0LEZpbGVBeGlzM0Q6KCk9Pk01LEZpbGVBeGlzM2Q6KCk9Pk01LEZpbGVCYWRnZTooKT0+QzUsRmlsZUJhZGdlMjooKT0+QzUsRmlsZUJhckNoYXJ0OigpPT5MNSxGaWxlQmFyQ2hhcnQyOigpPT5UNSxGaWxlQm94OigpPT4kTyxGaWxlQnJhY2VzOigpPT5fNSxGaWxlQnJhY2VzQ29ybmVyOigpPT56NSxGaWxlQ2hhcnRDb2x1bW46KCk9PlQ1LEZpbGVDaGFydENvbHVtbkluY3JlYXNpbmc6KCk9Pkw1LEZpbGVDaGFydExpbmU6KCk9PkQ1LEZpbGVDaGFydFBpZTooKT0+JDUsRmlsZUNoZWNrOigpPT5BTyxGaWxlQ2hlY2syOigpPT5BNSxGaWxlQ2hlY2tDb3JuZXI6KCk9PkE1LEZpbGVDbG9jazooKT0+RU8sRmlsZUNvZGU6KCk9PklPLEZpbGVDb2RlMjooKT0+RTUsRmlsZUNvZGVDb3JuZXI6KCk9PkU1LEZpbGVDb2c6KCk9Pkk1LEZpbGVDb2cyOigpPT5JNSxGaWxlRGlmZjooKT0+UE8sRmlsZURpZ2l0OigpPT5OTyxGaWxlRG93bjooKT0+T08sRmlsZUVkaXQ6KCk9PkI1LEZpbGVFeGNsYW1hdGlvblBvaW50OigpPT5QNSxGaWxlSGVhZHBob25lOigpPT5WNCxGaWxlSGVhcnQ6KCk9PkZPLEZpbGVJbWFnZTooKT0+Uk8sRmlsZUlucHV0OigpPT5CTyxGaWxlSnNvbjooKT0+XzUsRmlsZUpzb24yOigpPT56NSxGaWxlS2V5OigpPT5ONSxGaWxlS2V5MjooKT0+TjUsRmlsZUxpbmVDaGFydDooKT0+RDUsRmlsZUxvY2s6KCk9Pk81LEZpbGVMb2NrMjooKT0+TzUsRmlsZU1pbnVzOigpPT5xTyxGaWxlTWludXMyOigpPT5SNSxGaWxlTWludXNDb3JuZXI6KCk9PlI1LEZpbGVNdXNpYzooKT0+SE8sRmlsZU91dHB1dDooKT0+Vk8sRmlsZVBlbjooKT0+QjUsRmlsZVBlbkxpbmU6KCk9PkY1LEZpbGVQaWVDaGFydDooKT0+JDUsRmlsZVBsYXk6KCk9Pkg1LEZpbGVQbHVzOigpPT5qTyxGaWxlUGx1czI6KCk9PnE1LEZpbGVQbHVzQ29ybmVyOigpPT5xNSxGaWxlUXVlc3Rpb246KCk9PlY1LEZpbGVRdWVzdGlvbk1hcms6KCk9PlY1LEZpbGVTY2FuOigpPT5VTyxGaWxlU2VhcmNoOigpPT5XTyxGaWxlU2VhcmNoMjooKT0+ajUsRmlsZVNlYXJjaENvcm5lcjooKT0+ajUsRmlsZVNpZ25hbDooKT0+VTUsRmlsZVNpZ25hdHVyZTooKT0+RjUsRmlsZVNsaWRlcnM6KCk9PkdPLEZpbGVTcHJlYWRzaGVldDooKT0+WU8sRmlsZVN0YWNrOigpPT5LTyxGaWxlU3ltbGluazooKT0+Wk8sRmlsZVRlcm1pbmFsOigpPT5RTyxGaWxlVGV4dDooKT0+WE8sRmlsZVR5cGU6KCk9PkpPLEZpbGVUeXBlMjooKT0+VzUsRmlsZVR5cGVDb3JuZXI6KCk9Plc1LEZpbGVVcDooKT0+ZVIsRmlsZVVzZXI6KCk9PnRSLEZpbGVWaWRlbzooKT0+SDUsRmlsZVZpZGVvMjooKT0+RzUsRmlsZVZpZGVvQ2FtZXJhOigpPT5HNSxGaWxlVm9sdW1lOigpPT5yUixGaWxlVm9sdW1lMjooKT0+VTUsRmlsZVdhcm5pbmc6KCk9PlA1LEZpbGVYOigpPT5hUixGaWxlWDI6KCk9Plk1LEZpbGVYQ29ybmVyOigpPT5ZNSxGaWxlczooKT0+c1IsRmlsbTooKT0+blIsRmlsdGVyOigpPT5KNSxGaWx0ZXJYOigpPT5YNSxGaW5nZXJwcmludDooKT0+SzUsRmluZ2VycHJpbnRQYXR0ZXJuOigpPT5LNSxGaXJlRXh0aW5ndWlzaGVyOigpPT5vUixGaXNoOigpPT5kUixGaXNoT2ZmOigpPT5sUixGaXNoU3ltYm9sOigpPT5jUixGaXNoaW5nSG9vazooKT0+dVIsRmlzaGluZ1JvZDooKT0+cFIsRmxhZzooKT0+bVIsRmxhZ09mZjooKT0+ZlIsRmxhZ1RyaWFuZ2xlTGVmdDooKT0+aFIsRmxhZ1RyaWFuZ2xlUmlnaHQ6KCk9PmdSLEZsYW1lOigpPT54UixGbGFtZUtpbmRsaW5nOigpPT5iUixGbGFzaGxpZ2h0OigpPT55UixGbGFzaGxpZ2h0T2ZmOigpPT52UixGbGFza0NvbmljYWw6KCk9PlNSLEZsYXNrQ29uaWNhbE9mZjooKT0+d1IsRmxhc2tSb3VuZDooKT0+a1IsRmxpcEhvcml6b250YWw6KCk9Pm43LEZsaXBIb3Jpem9udGFsMjooKT0+TVIsRmxpcFZlcnRpY2FsOigpPT5vNyxGbGlwVmVydGljYWwyOigpPT5DUixGbG93ZXI6KCk9Pl9SLEZsb3dlcjI6KCk9PnpSLEZvY3VzOigpPT5MUixGb2xkSG9yaXpvbnRhbDooKT0+VFIsRm9sZFZlcnRpY2FsOigpPT5EUixGb2xkZXI6KCk9PmlGLEZvbGRlckFyY2hpdmU6KCk9PiRSLEZvbGRlckNoZWNrOigpPT5BUixGb2xkZXJDbG9jazooKT0+RVIsRm9sZGVyQ2xvc2VkOigpPT5JUixGb2xkZXJDb2RlOigpPT5QUixGb2xkZXJDb2c6KCk9Plo1LEZvbGRlckNvZzI6KCk9Plo1LEZvbGRlckRvdDooKT0+TlIsRm9sZGVyRG93bjooKT0+T1IsRm9sZGVyRWRpdDooKT0+UTUsRm9sZGVyR2l0OigpPT5CUixGb2xkZXJHaXQyOigpPT5SUixGb2xkZXJIZWFydDooKT0+RlIsRm9sZGVySW5wdXQ6KCk9PkhSLEZvbGRlckthbmJhbjooKT0+cVIsRm9sZGVyS2V5OigpPT5WUixGb2xkZXJMb2NrOigpPT5qUixGb2xkZXJNaW51czooKT0+VVIsRm9sZGVyT3BlbjooKT0+R1IsRm9sZGVyT3BlbkRvdDooKT0+V1IsRm9sZGVyT3V0cHV0OigpPT5ZUixGb2xkZXJQZW46KCk9PlE1LEZvbGRlclBsdXM6KCk9PktSLEZvbGRlclJvb3Q6KCk9PlFSLEZvbGRlclNlYXJjaDooKT0+WFIsRm9sZGVyU2VhcmNoMjooKT0+WlIsRm9sZGVyU3ltbGluazooKT0+SlIsRm9sZGVyU3luYzooKT0+ZUYsRm9sZGVyVHJlZTooKT0+dEYsRm9sZGVyVXA6KCk9PnJGLEZvbGRlclg6KCk9PmFGLEZvbGRlcnM6KCk9PnNGLEZvb3RwcmludHM6KCk9Pm5GLEZvcmtLbmlmZTooKT0+ZDksRm9ya0tuaWZlQ3Jvc3NlZDooKT0+YzksRm9ya2xpZnQ6KCk9Pm9GLEZvcm06KCk9PmxGLEZvcm1JbnB1dDooKT0+UDgsRm9yd2FyZDooKT0+Y0YsRnJhbWU6KCk9PmRGLEZyb3duOigpPT51RixGdWVsOigpPT5wRixGdWxsc2NyZWVuOigpPT5mRixGdW5jdGlvblNxdWFyZTooKT0+dzcsRnVubmVsOigpPT5KNSxGdW5uZWxQbHVzOigpPT5oRixGdW5uZWxYOigpPT5YNSxHYWxsZXJ5SG9yaXpvbnRhbDooKT0+Z0YsR2FsbGVyeUhvcml6b250YWxFbmQ6KCk9Pm1GLEdhbGxlcnlUaHVtYm5haWxzOigpPT5iRixHYWxsZXJ5VmVydGljYWw6KCk9PnZGLEdhbGxlcnlWZXJ0aWNhbEVuZDooKT0+eEYsR2FtZXBhZDooKT0+a0YsR2FtZXBhZDI6KCk9PnlGLEdhbWVwYWREaXJlY3Rpb25hbDooKT0+d0YsR2FudHRDaGFydDooKT0+RW0sR2FudHRDaGFydFNxdWFyZTooKT0+RzQsR2F1Z2U6KCk9PlNGLEdhdWdlQ2lyY2xlOigpPT5YbSxHYXZlbDooKT0+TUYsR2VtOigpPT5DRixHZW9yZ2lhbkxhcmk6KCk9PnpGLEdob3N0OigpPT5fRixHaWZ0OigpPT5URixHaXRCcmFuY2g6KCk9PiRGLEdpdEJyYW5jaE1pbnVzOigpPT5MRixHaXRCcmFuY2hQbHVzOigpPT5ERixHaXRDb21taXQ6KCk9PmU4LEdpdENvbW1pdEhvcml6b250YWw6KCk9PmU4LEdpdENvbW1pdFZlcnRpY2FsOigpPT5BRixHaXRDb21wYXJlOigpPT5JRixHaXRDb21wYXJlQXJyb3dzOigpPT5FRixHaXRGb3JrOigpPT5QRixHaXRHcmFwaDooKT0+TkYsR2l0TWVyZ2U6KCk9PlJGLEdpdE1lcmdlQ29uZmxpY3Q6KCk9Pk9GLEdpdFB1bGxSZXF1ZXN0OigpPT5qRixHaXRQdWxsUmVxdWVzdEFycm93OigpPT5GRixHaXRQdWxsUmVxdWVzdENsb3NlZDooKT0+QkYsR2l0UHVsbFJlcXVlc3RDcmVhdGU6KCk9PnFGLEdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3c6KCk9PkhGLEdpdFB1bGxSZXF1ZXN0RHJhZnQ6KCk9PlZGLEdsYXNzV2F0ZXI6KCk9PlVGLEdsYXNzZXM6KCk9PldGLEdsb2JlOigpPT5aRixHbG9iZTI6KCk9Pnc1LEdsb2JlTG9jazooKT0+R0YsR2xvYmVPZmY6KCk9PllGLEdsb2JlWDooKT0+S0YsR29hbDooKT0+UUYsR3B1OigpPT5YRixHcmFiOigpPT5zOCxHcmFkdWF0aW9uQ2FwOigpPT5KRixHcmFwZTooKT0+ZUIsR3JpZDooKT0+ajQsR3JpZDJYMjooKT0+aTgsR3JpZDJYMkNoZWNrOigpPT50OCxHcmlkMlgyUGx1czooKT0+cjgsR3JpZDJYMlg6KCk9PmE4LEdyaWQyeDI6KCk9Pmk4LEdyaWQyeDJDaGVjazooKT0+dDgsR3JpZDJ4MlBsdXM6KCk9PnI4LEdyaWQyeDJYOigpPT5hOCxHcmlkM1gzOigpPT5qNCxHcmlkM3gyOigpPT50QixHcmlkM3gzOigpPT5qNCxHcmlwOigpPT5pQixHcmlwSG9yaXpvbnRhbDooKT0+ckIsR3JpcFZlcnRpY2FsOigpPT5hQixHcm91cDooKT0+c0IsR3VpdGFyOigpPT5uQixIYW06KCk9Pm9CLEhhbWJ1cmdlcjooKT0+bEIsSGFtbWVyOigpPT5jQixIYW5kOigpPT5tQixIYW5kQ29pbnM6KCk9PmRCLEhhbmRGaXN0OigpPT51QixIYW5kR3JhYjooKT0+czgsSGFuZEhlYXJ0OigpPT5wQixIYW5kSGVscGluZzooKT0+bjgsSGFuZE1ldGFsOigpPT5mQixIYW5kUGxhdHRlcjooKT0+aEIsSGFuZGJhZzooKT0+Z0IsSGFuZHNoYWtlOigpPT5iQixIYXJkRHJpdmU6KCk9PnlCLEhhcmREcml2ZURvd25sb2FkOigpPT54QixIYXJkRHJpdmVVcGxvYWQ6KCk9PnZCLEhhcmRIYXQ6KCk9PndCLEhhc2g6KCk9PmtCLEhhdEdsYXNzZXM6KCk9PlNCLEhhemU6KCk9Pk1CLEhkOigpPT5DQixIZG1pUG9ydDooKT0+ekIsSGVhZGluZzooKT0+RUIsSGVhZGluZzE6KCk9PkxCLEhlYWRpbmcyOigpPT5fQixIZWFkaW5nMzooKT0+VEIsSGVhZGluZzQ6KCk9PkRCLEhlYWRpbmc1OigpPT4kQixIZWFkaW5nNjooKT0+QUIsSGVhZHBob25lT2ZmOigpPT5JQixIZWFkcGhvbmVzOigpPT5QQixIZWFkc2V0OigpPT5OQixIZWFydDooKT0+cUIsSGVhcnRDcmFjazooKT0+T0IsSGVhcnRIYW5kc2hha2U6KCk9PlJCLEhlYXJ0TWludXM6KCk9PkZCLEhlYXJ0T2ZmOigpPT5CQixIZWFydFBsdXM6KCk9PkhCLEhlYXJ0UHVsc2U6KCk9PlZCLEhlYXRlcjooKT0+akIsSGVsaWNvcHRlcjooKT0+V0IsSGVscENpcmNsZTooKT0+SDQsSGVscGluZ0hhbmQ6KCk9Pm44LEhleGFnb246KCk9PlVCLEhpZ2hsaWdodGVyOigpPT5HQixIaXN0b3J5OigpPT5ZQixIb21lOigpPT5vOCxIb3A6KCk9PlpCLEhvcE9mZjooKT0+S0IsSG9zcGl0YWw6KCk9PlFCLEhvdGVsOigpPT5YQixIb3VyZ2xhc3M6KCk9PkpCLEhvdXNlOigpPT5vOCxIb3VzZUhlYXJ0OigpPT5lSCxIb3VzZVBsdWc6KCk9PnRILEhvdXNlUGx1czooKT0+ckgsSG91c2VXaWZpOigpPT5hSCxJY2VDcmVhbTooKT0+YzgsSWNlQ3JlYW0yOigpPT5sOCxJY2VDcmVhbUJvd2w6KCk9Pmw4LEljZUNyZWFtQ29uZTooKT0+YzgsSWRDYXJkOigpPT5zSCxJZENhcmRMYW55YXJkOigpPT5pSCxJbWFnZTooKT0+ZkgsSW1hZ2VEb3duOigpPT5uSCxJbWFnZU1pbnVzOigpPT5vSCxJbWFnZU9mZjooKT0+bEgsSW1hZ2VQbGF5OigpPT5jSCxJbWFnZVBsdXM6KCk9PmRILEltYWdlVXA6KCk9PnVILEltYWdlVXBzY2FsZTooKT0+cEgsSW1hZ2VzOigpPT5oSCxJbXBvcnQ6KCk9Pm1ILEluYm94OigpPT5nSCxJbmRlbnQ6KCk9Plc0LEluZGVudERlY3JlYXNlOigpPT5VNCxJbmRlbnRJbmNyZWFzZTooKT0+VzQsSW5kaWFuUnVwZWU6KCk9PmJILEluZmluaXR5OigpPT54SCxJbmZvOigpPT52SCxJbnNwZWN0OigpPT5fNyxJbnNwZWN0aW9uUGFuZWw6KCk9PnlILEl0YWxpYzooKT0+d0gsSXRlcmF0aW9uQ2N3OigpPT5rSCxJdGVyYXRpb25DdzooKT0+U0gsSmFwYW5lc2VZZW46KCk9Pk1ILEpveXN0aWNrOigpPT5DSCxLYW5iYW46KCk9PnpILEthbmJhblNxdWFyZTooKT0+azcsS2FuYmFuU3F1YXJlRGFzaGVkOigpPT5tNyxLYXlhazooKT0+X0gsS2V5OigpPT4kSCxLZXlSb3VuZDooKT0+VEgsS2V5U3F1YXJlOigpPT5MSCxLZXlib2FyZDooKT0+RUgsS2V5Ym9hcmRNdXNpYzooKT0+REgsS2V5Ym9hcmRPZmY6KCk9PkFILExhbXA6KCk9PkZILExhbXBDZWlsaW5nOigpPT5JSCxMYW1wRGVzazooKT0+UEgsTGFtcEZsb29yOigpPT5OSCxMYW1wV2FsbERvd246KCk9Pk9ILExhbXBXYWxsVXA6KCk9PlJILExhbmRQbG90OigpPT5CSCxMYW5kbWFyazooKT0+SEgsTGFuZ3VhZ2VzOigpPT5xSCxMYXB0b3A6KCk9PmpILExhcHRvcDI6KCk9PmQ4LExhcHRvcE1pbmltYWw6KCk9PmQ4LExhcHRvcE1pbmltYWxDaGVjazooKT0+VkgsTGFzc286KCk9PldILExhc3NvU2VsZWN0OigpPT5VSCxMYXVnaDooKT0+R0gsTGF5ZXJzOigpPT51OCxMYXllcnMyOigpPT5ZSCxMYXllcnMzOigpPT51OCxMYXllcnNQbHVzOigpPT5LSCxMYXlvdXQ6KCk9PiQ4LExheW91dERhc2hib2FyZDooKT0+WEgsTGF5b3V0R3JpZDooKT0+WkgsTGF5b3V0TGlzdDooKT0+UUgsTGF5b3V0UGFuZWxMZWZ0OigpPT5KSCxMYXlvdXRQYW5lbFRvcDooKT0+ZXEsTGF5b3V0VGVtcGxhdGU6KCk9PnRxLExlYWY6KCk9PmFxLExlYWZ5R3JlZW46KCk9PnJxLExlY3Rlcm46KCk9PmlxLExlbnNDb25jYXZlOigpPT5zcSxMZW5zQ29udmV4OigpPT5ucSxMZXR0ZXJUZXh0OigpPT5LNyxMaWJyYXJ5OigpPT5jcSxMaWJyYXJ5QmlnOigpPT5vcSxMaWJyYXJ5U3F1YXJlOigpPT5TNyxMaWZlQnVveTooKT0+bHEsTGlnYXR1cmU6KCk9PmRxLExpZ2h0YnVsYjooKT0+cHEsTGlnaHRidWxiT2ZmOigpPT51cSxMaW5lQ2hhcnQ6KCk9PkRtLExpbmVEb3RSaWdodEhvcml6b250YWw6KCk9PmZxLExpbmVTcXVpZ2dsZTooKT0+aHEsTGluZVN0eWxlOigpPT5tcSxMaW5rOigpPT54cSxMaW5rMjooKT0+YnEsTGluazJPZmY6KCk9PmdxLExpc3Q6KCk9Pk9xLExpc3RDaGVjazooKT0+dnEsTGlzdENoZWNrczooKT0+eXEsTGlzdENoZXZyb25zRG93blVwOigpPT53cSxMaXN0Q2hldnJvbnNVcERvd246KCk9PmtxLExpc3RDb2xsYXBzZTooKT0+TXEsTGlzdEVuZDooKT0+U3EsTGlzdEZpbHRlcjooKT0+enEsTGlzdEZpbHRlclBsdXM6KCk9PkNxLExpc3RJbmRlbnREZWNyZWFzZTooKT0+VTQsTGlzdEluZGVudEluY3JlYXNlOigpPT5XNCxMaXN0TWludXM6KCk9Pl9xLExpc3RNdXNpYzooKT0+VHEsTGlzdE9yZGVyZWQ6KCk9PkxxLExpc3RQbHVzOigpPT5EcSxMaXN0UmVzdGFydDooKT0+JHEsTGlzdFN0YXJ0OigpPT5BcSxMaXN0VG9kbzooKT0+RXEsTGlzdFRyZWU6KCk9PklxLExpc3RWaWRlbzooKT0+TnEsTGlzdFg6KCk9PlBxLExvYWRlcjooKT0+RnEsTG9hZGVyMjooKT0+cDgsTG9hZGVyQ2lyY2xlOigpPT5wOCxMb2FkZXJQaW53aGVlbDooKT0+UnEsTG9jYXRlOigpPT5xcSxMb2NhdGVGaXhlZDooKT0+QnEsTG9jYXRlT2ZmOigpPT5IcSxMb2NhdGlvbkVkaXQ6KCk9Pmc4LExvY2s6KCk9PmpxLExvY2tLZXlob2xlOigpPT5WcSxMb2NrS2V5aG9sZU9wZW46KCk9PmY4LExvY2tPcGVuOigpPT5oOCxMb2dJbjooKT0+VXEsTG9nT3V0OigpPT5ZcSxMb2dzOigpPT5XcSxMb2xsaXBvcDooKT0+S3EsTHVnZ2FnZTooKT0+R3EsTVNxdWFyZTooKT0+TTcsTWFnbmV0OigpPT5RcSxNYWlsOigpPT5hVixNYWlsQ2hlY2s6KCk9PlpxLE1haWxNaW51czooKT0+WHEsTWFpbE9wZW46KCk9PmVWLE1haWxQbHVzOigpPT5KcSxNYWlsUXVlc3Rpb246KCk9Pm04LE1haWxRdWVzdGlvbk1hcms6KCk9Pm04LE1haWxTZWFyY2g6KCk9PnRWLE1haWxXYXJuaW5nOigpPT5yVixNYWlsWDooKT0+aVYsTWFpbGJveDooKT0+c1YsTWFpbHM6KCk9Pm5WLE1hcDooKT0+a1YsTWFwTWludXM6KCk9Pm9WLE1hcFBpbjooKT0+dlYsTWFwUGluQ2hlY2s6KCk9PmNWLE1hcFBpbkNoZWNrSW5zaWRlOigpPT5sVixNYXBQaW5Ib3VzZTooKT0+ZFYsTWFwUGluTWludXM6KCk9PnBWLE1hcFBpbk1pbnVzSW5zaWRlOigpPT51VixNYXBQaW5PZmY6KCk9PmZWLE1hcFBpblBlbjooKT0+ZzgsTWFwUGluUGx1czooKT0+bVYsTWFwUGluUGx1c0luc2lkZTooKT0+aFYsTWFwUGluU2VhcmNoOigpPT5nVixNYXBQaW5YOigpPT54VixNYXBQaW5YSW5zaWRlOigpPT5iVixNYXBQaW5uZWQ6KCk9PnlWLE1hcFBsdXM6KCk9PndWLE1hcnM6KCk9Pk1WLE1hcnNTdHJva2U6KCk9PlNWLE1hcnRpbmk6KCk9PkNWLE1heGltaXplOigpPT5fVixNYXhpbWl6ZTI6KCk9PnpWLE1lZGFsOigpPT5UVixNZWdhcGhvbmU6KCk9PkRWLE1lZ2FwaG9uZU9mZjooKT0+TFYsTWVoOigpPT4kVixNZW1vcnlTdGljazooKT0+QVYsTWVudTooKT0+RVYsTWVudVNxdWFyZTooKT0+QzcsTWVyZ2U6KCk9PklWLE1lc3NhZ2VDaXJjbGU6KCk9PlVWLE1lc3NhZ2VDaXJjbGVDaGVjazooKT0+UFYsTWVzc2FnZUNpcmNsZUNvZGU6KCk9Pk5WLE1lc3NhZ2VDaXJjbGVEYXNoZWQ6KCk9Pk9WLE1lc3NhZ2VDaXJjbGVIZWFydDooKT0+UlYsTWVzc2FnZUNpcmNsZU1vcmU6KCk9PkZWLE1lc3NhZ2VDaXJjbGVPZmY6KCk9PkJWLE1lc3NhZ2VDaXJjbGVQbHVzOigpPT5IVixNZXNzYWdlQ2lyY2xlUXVlc3Rpb246KCk9PmI4LE1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcms6KCk9PmI4LE1lc3NhZ2VDaXJjbGVSZXBseTooKT0+cVYsTWVzc2FnZUNpcmNsZVdhcm5pbmc6KCk9PlZWLE1lc3NhZ2VDaXJjbGVYOigpPT5qVixNZXNzYWdlU3F1YXJlOigpPT5jaixNZXNzYWdlU3F1YXJlQ2hlY2s6KCk9PldWLE1lc3NhZ2VTcXVhcmVDb2RlOigpPT5HVixNZXNzYWdlU3F1YXJlRGFzaGVkOigpPT5ZVixNZXNzYWdlU3F1YXJlRGlmZjooKT0+S1YsTWVzc2FnZVNxdWFyZURvdDooKT0+WlYsTWVzc2FnZVNxdWFyZUhlYXJ0OigpPT5RVixNZXNzYWdlU3F1YXJlTG9jazooKT0+WFYsTWVzc2FnZVNxdWFyZU1vcmU6KCk9PkpWLE1lc3NhZ2VTcXVhcmVPZmY6KCk9PmVqLE1lc3NhZ2VTcXVhcmVQbHVzOigpPT50aixNZXNzYWdlU3F1YXJlUXVvdGU6KCk9PnJqLE1lc3NhZ2VTcXVhcmVSZXBseTooKT0+YWosTWVzc2FnZVNxdWFyZVNoYXJlOigpPT5paixNZXNzYWdlU3F1YXJlVGV4dDooKT0+c2osTWVzc2FnZVNxdWFyZVdhcm5pbmc6KCk9Pm5qLE1lc3NhZ2VTcXVhcmVYOigpPT5vaixNZXNzYWdlc1NxdWFyZTooKT0+bGosTWV0cm9ub21lOigpPT5kaixNaWM6KCk9PnBqLE1pYzI6KCk9Png4LE1pY09mZjooKT0+dWosTWljVm9jYWw6KCk9Png4LE1pY3JvY2hpcDooKT0+ZmosTWljcm9zY29wZTooKT0+aGosTWljcm93YXZlOigpPT5taixNaWxlc3RvbmU6KCk9PmdqLE1pbGs6KCk9PnhqLE1pbGtPZmY6KCk9PmJqLE1pbmltaXplOigpPT55aixNaW5pbWl6ZTI6KCk9PnZqLE1pbnVzOigpPT53aixNaW51c0NpcmNsZTooKT0+Sm0sTWludXNTcXVhcmU6KCk9Pno3LE1pcnJvclJlY3Rhbmd1bGFyOigpPT5raixNaXJyb3JSb3VuZDooKT0+U2osTW9uaXRvcjooKT0+T2osTW9uaXRvckNoZWNrOigpPT5NaixNb25pdG9yQ2xvdWQ6KCk9PkNqLE1vbml0b3JDb2c6KCk9PnpqLE1vbml0b3JEb3Q6KCk9Pl9qLE1vbml0b3JEb3duOigpPT5UaixNb25pdG9yT2ZmOigpPT5MaixNb25pdG9yUGF1c2U6KCk9PkRqLE1vbml0b3JQbGF5OigpPT4kaixNb25pdG9yU21hcnRwaG9uZTooKT0+QWosTW9uaXRvclNwZWFrZXI6KCk9PkVqLE1vbml0b3JTdG9wOigpPT5JaixNb25pdG9yVXA6KCk9PlBqLE1vbml0b3JYOigpPT5OaixNb29uOigpPT5GaixNb29uU3RhcjooKT0+UmosTW9yZUhvcml6b250YWw6KCk9PlM1LE1vcmVWZXJ0aWNhbDooKT0+azUsTW90b3JiaWtlOigpPT5CaixNb3VudGFpbjooKT0+cWosTW91bnRhaW5Tbm93OigpPT5IaixNb3VzZTooKT0+UWosTW91c2VMZWZ0OigpPT5WaixNb3VzZU9mZjooKT0+amosTW91c2VQb2ludGVyOigpPT5aaixNb3VzZVBvaW50ZXIyOigpPT5HaixNb3VzZVBvaW50ZXIyT2ZmOigpPT5VaixNb3VzZVBvaW50ZXJCYW46KCk9PldqLE1vdXNlUG9pbnRlckNsaWNrOigpPT5ZaixNb3VzZVBvaW50ZXJTcXVhcmVEYXNoZWQ6KCk9Pmc3LE1vdXNlUmlnaHQ6KCk9PktqLE1vdmU6KCk9PmRVLE1vdmUzRDooKT0+djgsTW92ZTNkOigpPT52OCxNb3ZlRGlhZ29uYWw6KCk9PlhqLE1vdmVEaWFnb25hbDI6KCk9PkpqLE1vdmVEb3duOigpPT5yVSxNb3ZlRG93bkxlZnQ6KCk9PmVVLE1vdmVEb3duUmlnaHQ6KCk9PnRVLE1vdmVIb3Jpem9udGFsOigpPT5zVSxNb3ZlTGVmdDooKT0+YVUsTW92ZVJpZ2h0OigpPT5pVSxNb3ZlVXA6KCk9PmxVLE1vdmVVcExlZnQ6KCk9Pm5VLE1vdmVVcFJpZ2h0OigpPT5vVSxNb3ZlVmVydGljYWw6KCk9PmNVLE11c2ljOigpPT5oVSxNdXNpYzI6KCk9PnVVLE11c2ljMzooKT0+cFUsTXVzaWM0OigpPT5mVSxOYXZpZ2F0aW9uOigpPT54VSxOYXZpZ2F0aW9uMjooKT0+Z1UsTmF2aWdhdGlvbjJPZmY6KCk9Pm1VLE5hdmlnYXRpb25PZmY6KCk9PmJVLE5ldHdvcms6KCk9PnZVLE5ld3NwYXBlcjooKT0+eVUsTmZjOigpPT5rVSxOb25CaW5hcnk6KCk9PndVLE5vdGVib29rOigpPT56VSxOb3RlYm9va1BlbjooKT0+U1UsTm90ZWJvb2tUYWJzOigpPT5NVSxOb3RlYm9va1RleHQ6KCk9PkNVLE5vdGVwYWRUZXh0OigpPT5UVSxOb3RlcGFkVGV4dERhc2hlZDooKT0+X1UsTnV0OigpPT5EVSxOdXRPZmY6KCk9PkxVLE9jdGFnb246KCk9PkFVLE9jdGFnb25BbGVydDooKT0+eTgsT2N0YWdvbk1pbnVzOigpPT4kVSxPY3RhZ29uUGF1c2U6KCk9Pnc4LE9jdGFnb25YOigpPT5rOCxPbWVnYTooKT0+RVUsT3B0aW9uOigpPT5JVSxPcmJpdDooKT0+TlUsT3JpZ2FtaTooKT0+UFUsT3V0ZGVudDooKT0+VTQsUGFja2FnZTooKT0+alUsUGFja2FnZTI6KCk9Pk9VLFBhY2thZ2VDaGVjazooKT0+UlUsUGFja2FnZU1pbnVzOigpPT5GVSxQYWNrYWdlT3BlbjooKT0+QlUsUGFja2FnZVBsdXM6KCk9PkhVLFBhY2thZ2VTZWFyY2g6KCk9PlZVLFBhY2thZ2VYOigpPT5xVSxQYWludEJ1Y2tldDooKT0+VVUsUGFpbnRSb2xsZXI6KCk9PldVLFBhaW50YnJ1c2g6KCk9PkdVLFBhaW50YnJ1c2gyOigpPT5TOCxQYWludGJydXNoVmVydGljYWw6KCk9PlM4LFBhbGV0dGU6KCk9PllVLFBhbG10cmVlOigpPT5YNyxQYW5kYTooKT0+S1UsUGFuZWxCb3R0b206KCk9PlFVLFBhbmVsQm90dG9tQ2xvc2U6KCk9PlpVLFBhbmVsQm90dG9tRGFzaGVkOigpPT5NOCxQYW5lbEJvdHRvbUluYWN0aXZlOigpPT5NOCxQYW5lbEJvdHRvbU9wZW46KCk9PlhVLFBhbmVsTGVmdDooKT0+VDgsUGFuZWxMZWZ0Q2xvc2U6KCk9PkM4LFBhbmVsTGVmdERhc2hlZDooKT0+ejgsUGFuZWxMZWZ0SW5hY3RpdmU6KCk9Pno4LFBhbmVsTGVmdE9wZW46KCk9Pl84LFBhbmVsTGVmdFJpZ2h0RGFzaGVkOigpPT5KVSxQYW5lbFJpZ2h0OigpPT5yVyxQYW5lbFJpZ2h0Q2xvc2U6KCk9PmVXLFBhbmVsUmlnaHREYXNoZWQ6KCk9Pkw4LFBhbmVsUmlnaHRJbmFjdGl2ZTooKT0+TDgsUGFuZWxSaWdodE9wZW46KCk9PnRXLFBhbmVsVG9wOigpPT5uVyxQYW5lbFRvcEJvdHRvbURhc2hlZDooKT0+YVcsUGFuZWxUb3BDbG9zZTooKT0+aVcsUGFuZWxUb3BEYXNoZWQ6KCk9PkQ4LFBhbmVsVG9wSW5hY3RpdmU6KCk9PkQ4LFBhbmVsVG9wT3BlbjooKT0+c1csUGFuZWxzTGVmdEJvdHRvbTooKT0+b1csUGFuZWxzTGVmdFJpZ2h0OigpPT5iNSxQYW5lbHNSaWdodEJvdHRvbTooKT0+bFcsUGFuZWxzVG9wQm90dG9tOigpPT5SOCxQYW5lbHNUb3BMZWZ0OigpPT4kOCxQYXBlcmNsaXA6KCk9PmNXLFBhcmVudGhlc2VzOigpPT5kVyxQYXJraW5nQ2lyY2xlOigpPT5lNSxQYXJraW5nQ2lyY2xlT2ZmOigpPT50NSxQYXJraW5nTWV0ZXI6KCk9PnVXLFBhcmtpbmdTcXVhcmU6KCk9Pkw3LFBhcmtpbmdTcXVhcmVPZmY6KCk9PlQ3LFBhcnR5UG9wcGVyOigpPT5mVyxQYXVzZTooKT0+cFcsUGF1c2VDaXJjbGU6KCk9PmE1LFBhdXNlT2N0YWdvbjooKT0+dzgsUGF3UHJpbnQ6KCk9PmhXLFBjQ2FzZTooKT0+bVcsUGVuOigpPT5FOCxQZW5Cb3g6KCk9PmRjLFBlbkxpbmU6KCk9PkE4LFBlbk9mZjooKT0+Z1csUGVuU3F1YXJlOigpPT5kYyxQZW5Ub29sOigpPT5iVyxQZW5jaWw6KCk9PndXLFBlbmNpbExpbmU6KCk9PnhXLFBlbmNpbE9mZjooKT0+dlcsUGVuY2lsUnVsZXI6KCk9PnlXLFBlbnRhZ29uOigpPT5rVyxQZXJjZW50OigpPT5TVyxQZXJjZW50Q2lyY2xlOigpPT5yNSxQZXJjZW50RGlhbW9uZDooKT0+eTUsUGVyY2VudFNxdWFyZTooKT0+RDcsUGVyc29uU3RhbmRpbmc6KCk9Pk1XLFBoaWxpcHBpbmVQZXNvOigpPT5DVyxQaG9uZTooKT0+QVcsUGhvbmVDYWxsOigpPT56VyxQaG9uZUZvcndhcmRlZDooKT0+X1csUGhvbmVJbmNvbWluZzooKT0+VFcsUGhvbmVNaXNzZWQ6KCk9PkxXLFBob25lT2ZmOigpPT5EVyxQaG9uZU91dGdvaW5nOigpPT4kVyxQaTooKT0+RVcsUGlTcXVhcmU6KCk9PiQ3LFBpYW5vOigpPT5JVyxQaWNrYXhlOigpPT5QVyxQaWN0dXJlSW5QaWN0dXJlOigpPT5PVyxQaWN0dXJlSW5QaWN0dXJlMjooKT0+TlcsUGllQ2hhcnQ6KCk9PkltLFBpZ2d5QmFuazooKT0+UlcsUGlsY3JvdzooKT0+SFcsUGlsY3Jvd0xlZnQ6KCk9PkZXLFBpbGNyb3dSaWdodDooKT0+QlcsUGlsY3Jvd1NxdWFyZTooKT0+STcsUGlsbDooKT0+alcsUGlsbEJvdHRsZTooKT0+cVcsUGluOigpPT5VVyxQaW5PZmY6KCk9PlZXLFBpcGV0dGU6KCk9PldXLFBpenphOigpPT5HVyxQbGFuZTooKT0+WlcsUGxhbmVMYW5kaW5nOigpPT5ZVyxQbGFuZVRha2VvZmY6KCk9PktXLFBsYXk6KCk9PlFXLFBsYXlDaXJjbGU6KCk9Pmk1LFBsYXlTcXVhcmU6KCk9PkE3LFBsdWc6KCk9PnRHLFBsdWcyOigpPT5YVyxQbHVnWmFwOigpPT5JOCxQbHVnWmFwMjooKT0+STgsUGx1czooKT0+SlcsUGx1c0NpcmNsZTooKT0+czUsUGx1c1NxdWFyZTooKT0+RTcsUG9ja2V0S25pZmU6KCk9PmVHLFBvZGNhc3Q6KCk9PnJHLFBvaW50ZXI6KCk9Pm5HLFBvaW50ZXJPZmY6KCk9PmFHLFBvcGNvcm46KCk9PmlHLFBvcHNpY2xlOigpPT5zRyxQb3VuZFN0ZXJsaW5nOigpPT5vRyxQb3dlcjooKT0+bEcsUG93ZXJDaXJjbGU6KCk9Pm41LFBvd2VyT2ZmOigpPT5jRyxQb3dlclNxdWFyZTooKT0+UDcsUHJlc2VudGF0aW9uOigpPT5kRyxQcmludGVyOigpPT5mRyxQcmludGVyQ2hlY2s6KCk9PnVHLFByaW50ZXJYOigpPT5wRyxQcm9qZWN0b3I6KCk9PmhHLFByb3BvcnRpb25zOigpPT5tRyxQdXp6bGU6KCk9PmdHLFB5cmFtaWQ6KCk9PmJHLFFyQ29kZTooKT0+eEcsUXVvdGU6KCk9PnZHLFJhYmJpdDooKT0+eUcsUmFkYXI6KCk9PndHLFJhZGlhdGlvbjooKT0+a0csUmFkaWNhbDooKT0+U0csUmFkaW86KCk9PnpHLFJhZGlvT2ZmOigpPT5NRyxSYWRpb1JlY2VpdmVyOigpPT5DRyxSYWRpb1Rvd2VyOigpPT5fRyxSYWRpdXM6KCk9PlRHLFJhaW5ib3c6KCk9PkxHLFJhdDooKT0+REcsUmF0aW86KCk9PiRHLFJlY2VpcHQ6KCk9PkJHLFJlY2VpcHRDZW50OigpPT5BRyxSZWNlaXB0RXVybzooKT0+RUcsUmVjZWlwdEluZGlhblJ1cGVlOigpPT5JRyxSZWNlaXB0SmFwYW5lc2VZZW46KCk9PlBHLFJlY2VpcHRQb3VuZFN0ZXJsaW5nOigpPT5ORyxSZWNlaXB0UnVzc2lhblJ1YmxlOigpPT5PRyxSZWNlaXB0U3dpc3NGcmFuYzooKT0+UkcsUmVjZWlwdFRleHQ6KCk9PkZHLFJlY2VpcHRUdXJraXNoTGlyYTooKT0+SEcsUmVjdGFuZ2xlQ2lyY2xlOigpPT5xRyxSZWN0YW5nbGVFbGxpcHNpczooKT0+UDgsUmVjdGFuZ2xlR29nZ2xlczooKT0+VkcsUmVjdGFuZ2xlSG9yaXpvbnRhbDooKT0+akcsUmVjdGFuZ2xlVmVydGljYWw6KCk9PlVHLFJlY3ljbGU6KCk9PldHLFJlZG86KCk9PktHLFJlZG8yOigpPT5HRyxSZWRvRG90OigpPT5ZRyxSZWZyZXNoQ2N3OigpPT5RRyxSZWZyZXNoQ2N3RG90OigpPT5aRyxSZWZyZXNoQ3c6KCk9PkpHLFJlZnJlc2hDd09mZjooKT0+WEcsUmVmcmlnZXJhdG9yOigpPT5lWSxSZWdleDooKT0+dFksUmVtb3ZlRm9ybWF0dGluZzooKT0+clksUmVwZWF0OigpPT5zWSxSZXBlYXQxOigpPT5hWSxSZXBlYXQyOigpPT5pWSxSZXBsYWNlOigpPT5vWSxSZXBsYWNlQWxsOigpPT5uWSxSZXBseTooKT0+Y1ksUmVwbHlBbGw6KCk9PmxZLFJld2luZDooKT0+ZFksUmliYm9uOigpPT51WSxSb2FkOigpPT5wWSxSb2NrZXQ6KCk9PmZZLFJvY2tpbmdDaGFpcjooKT0+aFksUm9sbGVyQ29hc3RlcjooKT0+bVksUm9zZTooKT0+Z1ksUm90YXRlM0Q6KCk9Pk44LFJvdGF0ZTNkOigpPT5OOCxSb3RhdGVDY3c6KCk9PnlZLFJvdGF0ZUNjd0tleTooKT0+YlksUm90YXRlQ2N3U3F1YXJlOigpPT54WSxSb3RhdGVDdzooKT0+d1ksUm90YXRlQ3dTcXVhcmU6KCk9PnZZLFJvdXRlOigpPT5TWSxSb3V0ZU9mZjooKT0+a1ksUm91dGVyOigpPT5NWSxSb3dzOigpPT5POCxSb3dzMjooKT0+TzgsUm93czM6KCk9PlI4LFJvd3M0OigpPT5DWSxSc3M6KCk9PnpZLFJ1bGVyOigpPT5UWSxSdWxlckRpbWVuc2lvbkxpbmU6KCk9Pl9ZLFJ1c3NpYW5SdWJsZTooKT0+TFksU2FpbGJvYXQ6KCk9PkRZLFNhbGFkOigpPT4kWSxTYW5kd2ljaDooKT0+QVksU2F0ZWxsaXRlOigpPT5JWSxTYXRlbGxpdGVEaXNoOigpPT5FWSxTYXVkaVJpeWFsOigpPT5QWSxTYXZlOigpPT5SWSxTYXZlQWxsOigpPT5OWSxTYXZlT2ZmOigpPT5PWSxTY2FsZTooKT0+RlksU2NhbGUzRDooKT0+RjgsU2NhbGUzZDooKT0+RjgsU2NhbGluZzooKT0+QlksU2NhbjooKT0+S1ksU2NhbkJhcmNvZGU6KCk9PkhZLFNjYW5FeWU6KCk9PnFZLFNjYW5GYWNlOigpPT5WWSxTY2FuSGVhcnQ6KCk9PmpZLFNjYW5MaW5lOigpPT5VWSxTY2FuUXJDb2RlOigpPT5ZWSxTY2FuU2VhcmNoOigpPT5XWSxTY2FuVGV4dDooKT0+R1ksU2NhdHRlckNoYXJ0OigpPT5QbSxTY2hvb2w6KCk9PlpZLFNjaG9vbDI6KCk9PnQ5LFNjaXNzb3JzOigpPT5KWSxTY2lzc29yc0xpbmVEYXNoZWQ6KCk9PlFZLFNjaXNzb3JzU3F1YXJlOigpPT5ONyxTY2lzc29yc1NxdWFyZURhc2hlZEJvdHRvbTooKT0+czcsU2Nvb3RlcjooKT0+WFksU2NyZWVuU2hhcmU6KCk9PnRLLFNjcmVlblNoYXJlT2ZmOigpPT5lSyxTY3JvbGw6KCk9PmFLLFNjcm9sbFRleHQ6KCk9PnJLLFNlYXJjaDooKT0+Y0ssU2VhcmNoQWxlcnQ6KCk9PmlLLFNlYXJjaENoZWNrOigpPT5zSyxTZWFyY2hDb2RlOigpPT5uSyxTZWFyY2hTbGFzaDooKT0+b0ssU2VhcmNoWDooKT0+bEssU2VjdGlvbjooKT0+ZEssU2VuZDooKT0+cEssU2VuZEhvcml6b25hbDooKT0+QjgsU2VuZEhvcml6b250YWw6KCk9PkI4LFNlbmRUb0JhY2s6KCk9PnVLLFNlcGFyYXRvckhvcml6b250YWw6KCk9PmZLLFNlcGFyYXRvclZlcnRpY2FsOigpPT5oSyxTZXJ2ZXI6KCk9PnhLLFNlcnZlckNvZzooKT0+bUssU2VydmVyQ3Jhc2g6KCk9PmdLLFNlcnZlck9mZjooKT0+YkssU2V0dGluZ3M6KCk9PnlLLFNldHRpbmdzMjooKT0+dkssU2hhcGVzOigpPT5rSyxTaGFyZTooKT0+U0ssU2hhcmUyOigpPT53SyxTaGVldDooKT0+TUssU2hlbGw6KCk9PkNLLFNoZWx2aW5nVW5pdDooKT0+ekssU2hpZWxkOigpPT5SSyxTaGllbGRBbGVydDooKT0+X0ssU2hpZWxkQmFuOigpPT5USyxTaGllbGRDaGVjazooKT0+TEssU2hpZWxkQ2xvc2U6KCk9PnE4LFNoaWVsZENvZzooKT0+JEssU2hpZWxkQ29nQ29ybmVyOigpPT5ESyxTaGllbGRFbGxpcHNpczooKT0+QUssU2hpZWxkSGFsZjooKT0+RUssU2hpZWxkTWludXM6KCk9Pk5LLFNoaWVsZE9mZjooKT0+SUssU2hpZWxkUGx1czooKT0+UEssU2hpZWxkUXVlc3Rpb246KCk9Pkg4LFNoaWVsZFF1ZXN0aW9uTWFyazooKT0+SDgsU2hpZWxkVXNlcjooKT0+T0ssU2hpZWxkWDooKT0+cTgsU2hpcDooKT0+QkssU2hpcFdoZWVsOigpPT5GSyxTaGlydDooKT0+SEssU2hvcHBpbmdCYWc6KCk9PnFLLFNob3BwaW5nQmFza2V0OigpPT5WSyxTaG9wcGluZ0NhcnQ6KCk9PmpLLFNob3ZlbDooKT0+VUssU2hvd2VySGVhZDooKT0+V0ssU2hyZWRkZXI6KCk9PkdLLFNocmltcDooKT0+WUssU2hyaW5rOigpPT5LSyxTaHJ1YjooKT0+WkssU2h1ZmZsZTooKT0+UUssU2lkZWJhcjooKT0+VDgsU2lkZWJhckNsb3NlOigpPT5DOCxTaWRlYmFyT3BlbjooKT0+XzgsU2lnbWE6KCk9PlhLLFNpZ21hU3F1YXJlOigpPT5PNyxTaWduYWw6KCk9PmFaLFNpZ25hbEhpZ2g6KCk9PkpLLFNpZ25hbExvdzooKT0+ZVosU2lnbmFsTWVkaXVtOigpPT50WixTaWduYWxaZXJvOigpPT5yWixTaWduYXR1cmU6KCk9PmlaLFNpZ25wb3N0OigpPT5uWixTaWducG9zdEJpZzooKT0+c1osU2lyZW46KCk9Pm9aLFNraXBCYWNrOigpPT5sWixTa2lwRm9yd2FyZDooKT0+Y1osU2t1bGw6KCk9PnBaLFNsYXNoOigpPT5kWixTbGFzaFNxdWFyZTooKT0+UjcsU2xpY2U6KCk9PnVaLFNsaWRlcnM6KCk9PlY4LFNsaWRlcnNIb3Jpem9udGFsOigpPT5mWixTbGlkZXJzVmVydGljYWw6KCk9PlY4LFNtYXJ0cGhvbmU6KCk9PmdaLFNtYXJ0cGhvbmVDaGFyZ2luZzooKT0+aFosU21hcnRwaG9uZU5mYzooKT0+bVosU21pbGU6KCk9PnhaLFNtaWxlUGx1czooKT0+YlosU25haWw6KCk9PnZaLFNub3dmbGFrZTooKT0+eVosU29hcERpc3BlbnNlckRyb3BsZXQ6KCk9PndaLFNvZmE6KCk9PmtaLFNvbGFyUGFuZWw6KCk9PlNaLFNvcnRBc2M6KCk9PmZtLFNvcnREZXNjOigpPT5kbSxTb3VwOigpPT5NWixTcGFjZTooKT0+Q1osU3BhZGU6KCk9PnpaLFNwYXJrbGU6KCk9Pl9aLFNwYXJrbGVzOigpPT5qOCxTcGVha2VyOigpPT5UWixTcGVlY2g6KCk9PkxaLFNwZWxsQ2hlY2s6KCk9PiRaLFNwZWxsQ2hlY2syOigpPT5EWixTcGxpbmU6KCk9PkVaLFNwbGluZVBvaW50ZXI6KCk9PkFaLFNwbGl0OigpPT5JWixTcGxpdFNxdWFyZUhvcml6b250YWw6KCk9PkY3LFNwbGl0U3F1YXJlVmVydGljYWw6KCk9PkI3LFNwb29sOigpPT5QWixTcG9ydFNob2U6KCk9Pk5aLFNwb3RsaWdodDooKT0+T1osU3ByYXlDYW46KCk9PlJaLFNwcm91dDooKT0+RlosU3F1YXJlOigpPT5YWixTcXVhcmVBY3Rpdml0eTooKT0+VTgsU3F1YXJlQXJyb3dEb3duOigpPT5ZOCxTcXVhcmVBcnJvd0Rvd25MZWZ0OigpPT5XOCxTcXVhcmVBcnJvd0Rvd25SaWdodDooKT0+RzgsU3F1YXJlQXJyb3dMZWZ0OigpPT5LOCxTcXVhcmVBcnJvd091dERvd25MZWZ0OigpPT5aOCxTcXVhcmVBcnJvd091dERvd25SaWdodDooKT0+UTgsU3F1YXJlQXJyb3dPdXRVcExlZnQ6KCk9Plg4LFNxdWFyZUFycm93T3V0VXBSaWdodDooKT0+SjgsU3F1YXJlQXJyb3dSaWdodDooKT0+ZTcsU3F1YXJlQXJyb3dSaWdodEVudGVyOigpPT5CWixTcXVhcmVBcnJvd1JpZ2h0RXhpdDooKT0+SFosU3F1YXJlQXJyb3dVcDooKT0+YTcsU3F1YXJlQXJyb3dVcExlZnQ6KCk9PnQ3LFNxdWFyZUFycm93VXBSaWdodDooKT0+cjcsU3F1YXJlQXN0ZXJpc2s6KCk9Pmk3LFNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzOigpPT5zNyxTcXVhcmVDZW50ZXJsaW5lRGFzaGVkSG9yaXpvbnRhbDooKT0+bjcsU3F1YXJlQ2VudGVybGluZURhc2hlZFZlcnRpY2FsOigpPT5vNyxTcXVhcmVDaGFydEdhbnR0OigpPT5HNCxTcXVhcmVDaGVjazooKT0+YzcsU3F1YXJlQ2hlY2tCaWc6KCk9Pmw3LFNxdWFyZUNoZXZyb25Eb3duOigpPT5kNyxTcXVhcmVDaGV2cm9uTGVmdDooKT0+dTcsU3F1YXJlQ2hldnJvblJpZ2h0OigpPT5wNyxTcXVhcmVDaGV2cm9uVXA6KCk9PmY3LFNxdWFyZUNvZGU6KCk9Pmg3LFNxdWFyZURhc2hlZDooKT0+YjcsU3F1YXJlRGFzaGVkQm90dG9tOigpPT5WWixTcXVhcmVEYXNoZWRCb3R0b21Db2RlOigpPT5xWixTcXVhcmVEYXNoZWRLYW5iYW46KCk9Pm03LFNxdWFyZURhc2hlZE1vdXNlUG9pbnRlcjooKT0+ZzcsU3F1YXJlRGFzaGVkVGV4dDooKT0+WTQsU3F1YXJlRGFzaGVkVG9wU29saWQ6KCk9PmpaLFNxdWFyZURpdmlkZTooKT0+eDcsU3F1YXJlRG90OigpPT52NyxTcXVhcmVFcXVhbDooKT0+eTcsU3F1YXJlRnVuY3Rpb246KCk9Pnc3LFNxdWFyZUdhbnR0Q2hhcnQ6KCk9Pkc0LFNxdWFyZUthbmJhbjooKT0+azcsU3F1YXJlTGlicmFyeTooKT0+UzcsU3F1YXJlTTooKT0+TTcsU3F1YXJlTWVudTooKT0+QzcsU3F1YXJlTWludXM6KCk9Pno3LFNxdWFyZU1vdXNlUG9pbnRlcjooKT0+XzcsU3F1YXJlUGFya2luZzooKT0+TDcsU3F1YXJlUGFya2luZ09mZjooKT0+VDcsU3F1YXJlUGF1c2U6KCk9PlVaLFNxdWFyZVBlbjooKT0+ZGMsU3F1YXJlUGVyY2VudDooKT0+RDcsU3F1YXJlUGk6KCk9PiQ3LFNxdWFyZVBpbGNyb3c6KCk9Pkk3LFNxdWFyZVBsYXk6KCk9PkE3LFNxdWFyZVBsdXM6KCk9PkU3LFNxdWFyZVBvd2VyOigpPT5QNyxTcXVhcmVSYWRpY2FsOigpPT5XWixTcXVhcmVSb3VuZENvcm5lcjooKT0+R1osU3F1YXJlU2Npc3NvcnM6KCk9Pk43LFNxdWFyZVNpZ21hOigpPT5PNyxTcXVhcmVTbGFzaDooKT0+UjcsU3F1YXJlU3BsaXRIb3Jpem9udGFsOigpPT5GNyxTcXVhcmVTcGxpdFZlcnRpY2FsOigpPT5CNyxTcXVhcmVTcXVhcmU6KCk9PllaLFNxdWFyZVN0YWNrOigpPT5LWixTcXVhcmVTdGFyOigpPT5aWixTcXVhcmVTdG9wOigpPT5RWixTcXVhcmVUZXJtaW5hbDooKT0+SDcsU3F1YXJlVXNlcjooKT0+ajcsU3F1YXJlVXNlclJvdW5kOigpPT5xNyxTcXVhcmVYOigpPT5WNyxTcXVhcmVzRXhjbHVkZTooKT0+SlosU3F1YXJlc0ludGVyc2VjdDooKT0+ZVEsU3F1YXJlc1N1YnRyYWN0OigpPT50USxTcXVhcmVzVW5pdGU6KCk9PnJRLFNxdWlyY2xlOigpPT5hUSxTcXVpcmNsZURhc2hlZDooKT0+aVEsU3F1aXJyZWw6KCk9PnNRLFN0YW1wOigpPT5uUSxTdGFyOigpPT5jUSxTdGFySGFsZjooKT0+b1EsU3Rhck9mZjooKT0+bFEsU3RhcnM6KCk9Pmo4LFN0ZXBCYWNrOigpPT5kUSxTdGVwRm9yd2FyZDooKT0+dVEsU3RldGhvc2NvcGU6KCk9PnBRLFN0aWNrZXI6KCk9PmZRLFN0aWNreU5vdGU6KCk9Pm1RLFN0b25lOigpPT5oUSxTdG9wQ2lyY2xlOigpPT5sNSxTdG9yZTooKT0+Z1EsU3RyZXRjaEhvcml6b250YWw6KCk9PnhRLFN0cmV0Y2hWZXJ0aWNhbDooKT0+YlEsU3RyaWtldGhyb3VnaDooKT0+dlEsU3Vic2NyaXB0OigpPT55USxTdWJ0aXRsZXM6KCk9PmttLFN1bjooKT0+Q1EsU3VuRGltOigpPT53USxTdW5NZWRpdW06KCk9PmtRLFN1bk1vb246KCk9Pk1RLFN1blNub3c6KCk9PlNRLFN1bnJpc2U6KCk9PnpRLFN1bnNldDooKT0+X1EsU3VwZXJzY3JpcHQ6KCk9PlRRLFN3YXRjaEJvb2s6KCk9PkRRLFN3aXNzRnJhbmM6KCk9PkxRLFN3aXRjaENhbWVyYTooKT0+JFEsU3dvcmQ6KCk9PkFRLFN3b3JkczooKT0+SVEsU3lyaW5nZTooKT0+RVEsVGFibGU6KCk9PnFRLFRhYmxlMjooKT0+UFEsVGFibGVDZWxsc01lcmdlOigpPT5PUSxUYWJsZUNlbGxzU3BsaXQ6KCk9Pk5RLFRhYmxlQ29sdW1uc1NwbGl0OigpPT5SUSxUYWJsZUNvbmZpZzooKT0+cTQsVGFibGVPZkNvbnRlbnRzOigpPT5GUSxUYWJsZVByb3BlcnRpZXM6KCk9PkJRLFRhYmxlUm93c1NwbGl0OigpPT5IUSxUYWJsZXQ6KCk9PmpRLFRhYmxldFNtYXJ0cGhvbmU6KCk9PlZRLFRhYmxldHM6KCk9PlVRLFRhZzooKT0+V1EsVGFnczooKT0+R1EsVGFsbHkxOigpPT5ZUSxUYWxseTI6KCk9PktRLFRhbGx5MzooKT0+WlEsVGFsbHk0OigpPT5RUSxUYWxseTU6KCk9PlhRLFRhbmdlbnQ6KCk9PkpRLFRhcmdldDooKT0+dFgsVGVsZXNjb3BlOigpPT5lWCxUZW50OigpPT5hWCxUZW50VHJlZTooKT0+clgsVGVybWluYWw6KCk9PmlYLFRlcm1pbmFsU3F1YXJlOigpPT5INyxUZXN0VHViZTooKT0+c1gsVGVzdFR1YmUyOigpPT5VNyxUZXN0VHViZURpYWdvbmFsOigpPT5VNyxUZXN0VHViZXM6KCk9Pm5YLFRleHQ6KCk9Pks0LFRleHRBbGlnbkNlbnRlcjooKT0+VzcsVGV4dEFsaWduRW5kOigpPT5HNyxUZXh0QWxpZ25KdXN0aWZ5OigpPT5ZNyxUZXh0QWxpZ25TdGFydDooKT0+SzQsVGV4dEN1cnNvcjooKT0+bFgsVGV4dEN1cnNvcklucHV0OigpPT5vWCxUZXh0SW5pdGlhbDooKT0+SzcsVGV4dFF1b3RlOigpPT5kWCxUZXh0U2VhcmNoOigpPT5jWCxUZXh0U2VsZWN0OigpPT5ZNCxUZXh0U2VsZWN0aW9uOigpPT5ZNCxUZXh0V3JhcDooKT0+WjcsVGhlYXRlcjooKT0+dVgsVGhlcm1vbWV0ZXI6KCk9PmhYLFRoZXJtb21ldGVyU25vd2ZsYWtlOigpPT5wWCxUaGVybW9tZXRlclN1bjooKT0+ZlgsVGh1bWJzRG93bjooKT0+bVgsVGh1bWJzVXA6KCk9PmdYLFRpY2tldDooKT0+U1gsVGlja2V0Q2hlY2s6KCk9PmJYLFRpY2tldE1pbnVzOigpPT54WCxUaWNrZXRQZXJjZW50OigpPT52WCxUaWNrZXRQbHVzOigpPT55WCxUaWNrZXRTbGFzaDooKT0+a1gsVGlja2V0WDooKT0+d1gsVGlja2V0czooKT0+Q1gsVGlja2V0c1BsYW5lOigpPT5NWCxUaW1lcjooKT0+VFgsVGltZXJPZmY6KCk9PnpYLFRpbWVyUmVzZXQ6KCk9Pl9YLFRvZ2dsZUxlZnQ6KCk9PkxYLFRvZ2dsZVJpZ2h0OigpPT5EWCxUb2lsZXQ6KCk9PiRYLFRvb2xDYXNlOigpPT5BWCxUb29sYm94OigpPT5FWCxUb3JuYWRvOigpPT5JWCxUb3J1czooKT0+UFgsVG91Y2hwYWQ6KCk9Pk9YLFRvdWNocGFkT2ZmOigpPT5OWCxUb3dlbFJhY2s6KCk9PlJYLFRvd2VyQ29udHJvbDooKT0+RlgsVG95QnJpY2s6KCk9PkJYLFRyYWN0b3I6KCk9PkhYLFRyYWZmaWNDb25lOigpPT5xWCxUcmFpbjooKT0+UTcsVHJhaW5Gcm9udDooKT0+algsVHJhaW5Gcm9udFR1bm5lbDooKT0+VlgsVHJhaW5UcmFjazooKT0+VVgsVHJhbUZyb250OigpPT5RNyxUcmFuc2dlbmRlcjooKT0+V1gsVHJhc2g6KCk9PkdYLFRyYXNoMjooKT0+WVgsVHJlZURlY2lkdW91czooKT0+S1gsVHJlZVBhbG06KCk9Plg3LFRyZWVQaW5lOigpPT5aWCxUcmVlczooKT0+UVgsVHJlbmRpbmdEb3duOigpPT5YWCxUcmVuZGluZ1VwOigpPT5lSixUcmVuZGluZ1VwRG93bjooKT0+SlgsVHJpYW5nbGU6KCk9PmFKLFRyaWFuZ2xlQWxlcnQ6KCk9Pko3LFRyaWFuZ2xlRGFzaGVkOigpPT50SixUcmlhbmdsZVJpZ2h0OigpPT5ySixUcm9waHk6KCk9PmlKLFRydWNrOigpPT5uSixUcnVja0VsZWN0cmljOigpPT5zSixUdXJraXNoTGlyYTooKT0+b0osVHVybnRhYmxlOigpPT5sSixUdXJ0bGU6KCk9PmNKLFR2OigpPT5wSixUdjI6KCk9PmU5LFR2TWluaW1hbDooKT0+ZTksVHZNaW5pbWFsUGxheTooKT0+ZEosVHlwZTooKT0+ZkosVHlwZU91dGxpbmU6KCk9PnVKLFVtYnJlbGxhOigpPT5oSixVbWJyZWxsYU9mZjooKT0+bUosVW5kZXJsaW5lOigpPT5nSixVbmRvOigpPT52SixVbmRvMjooKT0+YkosVW5kb0RvdDooKT0+eEosVW5mb2xkSG9yaXpvbnRhbDooKT0+eUosVW5mb2xkVmVydGljYWw6KCk9PmtKLFVuZ3JvdXA6KCk9PndKLFVuaXZlcnNpdHk6KCk9PnQ5LFVubGluazooKT0+TUosVW5saW5rMjooKT0+U0osVW5sb2NrOigpPT5oOCxVbmxvY2tLZXlob2xlOigpPT5mOCxVbnBsdWc6KCk9PnpKLFVwbG9hZDooKT0+Q0osVXBsb2FkQ2xvdWQ6KCk9Pm01LFVzYjooKT0+X0osVXNlcjooKT0+SEosVXNlcjI6KCk9Pm85LFVzZXJDaGVjazooKT0+REosVXNlckNoZWNrMjooKT0+cjksVXNlckNpcmNsZTooKT0+ZDUsVXNlckNpcmNsZTI6KCk9PmM1LFVzZXJDb2c6KCk9PlRKLFVzZXJDb2cyOigpPT5hOSxVc2VyS2V5OigpPT5MSixVc2VyTG9jazooKT0+JEosVXNlck1pbnVzOigpPT5BSixVc2VyTWludXMyOigpPT5pOSxVc2VyUGVuOigpPT5FSixVc2VyUGx1czooKT0+SUosVXNlclBsdXMyOigpPT5zOSxVc2VyUm91bmQ6KCk9Pm85LFVzZXJSb3VuZENoZWNrOigpPT5yOSxVc2VyUm91bmRDb2c6KCk9PmE5LFVzZXJSb3VuZEtleTooKT0+UEosVXNlclJvdW5kTWludXM6KCk9Pmk5LFVzZXJSb3VuZFBlbjooKT0+TkosVXNlclJvdW5kUGx1czooKT0+czksVXNlclJvdW5kU2VhcmNoOigpPT5PSixVc2VyUm91bmRYOigpPT5uOSxVc2VyU2VhcmNoOigpPT5SSixVc2VyU3F1YXJlOigpPT5qNyxVc2VyU3F1YXJlMjooKT0+cTcsVXNlclN0YXI6KCk9PkZKLFVzZXJYOigpPT5CSixVc2VyWDI6KCk9Pm45LFVzZXJzOigpPT5xSixVc2VyczI6KCk9Pmw5LFVzZXJzUm91bmQ6KCk9Pmw5LFV0ZW5zaWxzOigpPT5kOSxVdGVuc2lsc0Nyb3NzZWQ6KCk9PmM5LFV0aWxpdHlQb2xlOigpPT5WSixWYW46KCk9PmpKLFZhcmlhYmxlOigpPT5VSixWYXVsdDooKT0+V0osVmVjdG9yU3F1YXJlOigpPT5HSixWZWdhbjooKT0+WUosVmVuZXRpYW5NYXNrOigpPT5LSixWZW51czooKT0+UUosVmVudXNBbmRNYXJzOigpPT5aSixWZXJpZmllZDooKT0+Z20sVmlicmF0ZTooKT0+SkosVmlicmF0ZU9mZjooKT0+WEosVmlkZW86KCk9PnRlZSxWaWRlb09mZjooKT0+ZWVlLFZpZGVvdGFwZTooKT0+cmVlLFZpZXc6KCk9PmFlZSxWb2ljZW1haWw6KCk9PmllZSxWb2xsZXliYWxsOigpPT5zZWUsVm9sdW1lOigpPT5kZWUsVm9sdW1lMTooKT0+bmVlLFZvbHVtZTI6KCk9Pm9lZSxWb2x1bWVPZmY6KCk9PmxlZSxWb2x1bWVYOigpPT5jZWUsVm90ZTooKT0+dWVlLFdhbGxldDooKT0+ZmVlLFdhbGxldDI6KCk9PnU5LFdhbGxldENhcmRzOigpPT5wZWUsV2FsbGV0TWluaW1hbDooKT0+dTksV2FsbHBhcGVyOigpPT5oZWUsV2FuZDooKT0+bWVlLFdhbmQyOigpPT5wOSxXYW5kU3BhcmtsZXM6KCk9PnA5LFdhcmVob3VzZTooKT0+Z2VlLFdhc2hpbmdNYWNoaW5lOigpPT5iZWUsV2F0Y2g6KCk9PnhlZSxXYXZlczooKT0+a2VlLFdhdmVzQXJyb3dEb3duOigpPT52ZWUsV2F2ZXNBcnJvd1VwOigpPT55ZWUsV2F2ZXNMYWRkZXI6KCk9PndlZSxXYXlwb2ludHM6KCk9PlNlZSxXZWJjYW06KCk9Pk1lZSxXZWJob29rOigpPT56ZWUsV2ViaG9va09mZjooKT0+Q2VlLFdlaWdodDooKT0+VGVlLFdlaWdodFRpbGRlOigpPT5fZWUsV2hlYXQ6KCk9PkRlZSxXaGVhdE9mZjooKT0+TGVlLFdob2xlV29yZDooKT0+JGVlLFdpZmk6KCk9PkZlZSxXaWZpQ29nOigpPT5BZWUsV2lmaUhpZ2g6KCk9PkVlZSxXaWZpTG93OigpPT5JZWUsV2lmaU9mZjooKT0+UGVlLFdpZmlQZW46KCk9Pk5lZSxXaWZpU3luYzooKT0+UmVlLFdpZmlaZXJvOigpPT5PZWUsV2luZDooKT0+SGVlLFdpbmRBcnJvd0Rvd246KCk9PkJlZSxXaW5lOigpPT5xZWUsV2luZU9mZjooKT0+VmVlLFdvcmtmbG93OigpPT5qZWUsV29ybTooKT0+VWVlLFdyYXBUZXh0OigpPT5aNyxXcmVuY2g6KCk9PldlZSxYOigpPT5HZWUsWENpcmNsZTooKT0+dTUsWExpbmVUb3A6KCk9PlllZSxYT2N0YWdvbjooKT0+azgsWFNxdWFyZTooKT0+VjcsWmFwOigpPT5aZWUsWmFwT2ZmOigpPT5LZWUsWm9kaWFjQXF1YXJpdXM6KCk9PlFlZSxab2RpYWNBcmllczooKT0+WGVlLFpvZGlhY0NhbmNlcjooKT0+SmVlLFpvZGlhY0NhcHJpY29ybjooKT0+ZXRlLFpvZGlhY0dlbWluaTooKT0+dHRlLFpvZGlhY0xlbzooKT0+cnRlLFpvZGlhY0xpYnJhOigpPT5hdGUsWm9kaWFjT3BoaXVjaHVzOigpPT5pdGUsWm9kaWFjUGlzY2VzOigpPT5zdGUsWm9kaWFjU2FnaXR0YXJpdXM6KCk9Pm50ZSxab2RpYWNTY29ycGlvOigpPT5vdGUsWm9kaWFjVGF1cnVzOigpPT5sdGUsWm9kaWFjVmlyZ286KCk9PmN0ZSxab29tSW46KCk9PmR0ZSxab29tT3V0OigpPT51dGV9KTt2YXIgRlZyPXUoKCk9PntLcWUoKTtacWUoKTtRcWUoKTtYcWUoKTtKcWUoKTtlVmUoKTt0VmUoKTtyVmUoKTthVmUoKTtpVmUoKTtzVmUoKTtuVmUoKTtvVmUoKTtsVmUoKTtjVmUoKTtkVmUoKTt1VmUoKTtwVmUoKTtmVmUoKTtoVmUoKTttVmUoKTtnVmUoKTtiVmUoKTt4VmUoKTt2VmUoKTt5VmUoKTt3VmUoKTtrVmUoKTtTVmUoKTtNVmUoKTtDVmUoKTt6VmUoKTtfVmUoKTtUVmUoKTtMVmUoKTtEVmUoKTskVmUoKTtBVmUoKTtFVmUoKTtJVmUoKTtQVmUoKTtOVmUoKTtPVmUoKTtSVmUoKTtGVmUoKTtCVmUoKTtIVmUoKTtxVmUoKTtWVmUoKTtqVmUoKTtVVmUoKTtXVmUoKTtHVmUoKTtZVmUoKTtLVmUoKTtaVmUoKTtRVmUoKTtYVmUoKTtKVmUoKTtlamUoKTt0amUoKTtyamUoKTthamUoKTtpamUoKTtzamUoKTtuamUoKTtvamUoKTtsamUoKTtjamUoKTtkamUoKTt1amUoKTtwamUoKTtmamUoKTtoamUoKTttamUoKTtnamUoKTtiamUoKTt4amUoKTt2amUoKTt5amUoKTt3amUoKTtramUoKTtTamUoKTtNamUoKTtDamUoKTt6amUoKTtfamUoKTtUamUoKTtMamUoKTtEamUoKTskamUoKTtBamUoKTtFamUoKTtJamUoKTtQamUoKTtOamUoKTtPamUoKTtSamUoKTtGamUoKTtCamUoKTtIamUoKTtxamUoKTtWamUoKTtqamUoKTtVamUoKTtXamUoKTtHamUoKTtZamUoKTtLamUoKTtaamUoKTtRamUoKTtYamUoKTtKamUoKTtlVWUoKTt0VWUoKTtyVWUoKTthVWUoKTtpVWUoKTtzVWUoKTtuVWUoKTtvVWUoKTtsVWUoKTtjVWUoKTtkVWUoKTt1VWUoKTtwVWUoKTtmVWUoKTtoVWUoKTttVWUoKTtnVWUoKTtiVWUoKTt4VWUoKTt2VWUoKTt5VWUoKTt3VWUoKTtrVWUoKTtTVWUoKTtNVWUoKTtDVWUoKTt6VWUoKTtfVWUoKTtUVWUoKTtMVWUoKTtEVWUoKTskVWUoKTtBVWUoKTtFVWUoKTtJVWUoKTtQVWUoKTtOVWUoKTtPVWUoKTtSVWUoKTtGVWUoKTtCVWUoKTtIVWUoKTtxVWUoKTtWVWUoKTtqVWUoKTtVVWUoKTtXVWUoKTtHVWUoKTtZVWUoKTtLVWUoKTtaVWUoKTtRVWUoKTtYVWUoKTtKVWUoKTtlV2UoKTt0V2UoKTtyV2UoKTthV2UoKTtpV2UoKTtzV2UoKTtuV2UoKTtvV2UoKTtsV2UoKTtjV2UoKTtkV2UoKTt1V2UoKTtwV2UoKTtmV2UoKTtoV2UoKTttV2UoKTtnV2UoKTtiV2UoKTt4V2UoKTt2V2UoKTt5V2UoKTt3V2UoKTtrV2UoKTtTV2UoKTtNV2UoKTtDV2UoKTt6V2UoKTtfV2UoKTtUV2UoKTtMV2UoKTtEV2UoKTskV2UoKTtBV2UoKTtFV2UoKTtJV2UoKTtQV2UoKTtOV2UoKTtPV2UoKTtSV2UoKTtGV2UoKTtCV2UoKTtIV2UoKTtxV2UoKTtWV2UoKTtqV2UoKTtVV2UoKTtXV2UoKTtHV2UoKTtZV2UoKTtLV2UoKTtaV2UoKTtRV2UoKTtYV2UoKTtKV2UoKTtlR2UoKTt0R2UoKTtyR2UoKTthR2UoKTtpR2UoKTtzR2UoKTtuR2UoKTtvR2UoKTtsR2UoKTtjR2UoKTtkR2UoKTt1R2UoKTtwR2UoKTtmR2UoKTtoR2UoKTttR2UoKTtnR2UoKTtiR2UoKTt4R2UoKTt2R2UoKTt5R2UoKTt3R2UoKTtrR2UoKTtTR2UoKTtNR2UoKTtDR2UoKTt6R2UoKTtfR2UoKTtUR2UoKTtMR2UoKTtER2UoKTskR2UoKTtBR2UoKTtFR2UoKTtJR2UoKTtQR2UoKTtOR2UoKTtPR2UoKTtSR2UoKTtGR2UoKTtCR2UoKTtIR2UoKTtxR2UoKTtWR2UoKTtqR2UoKTtVR2UoKTtXR2UoKTtHR2UoKTtZR2UoKTtLR2UoKTtaR2UoKTtRR2UoKTtYR2UoKTtKR2UoKTtlWWUoKTt0WWUoKTtyWWUoKTthWWUoKTtpWWUoKTtzWWUoKTtuWWUoKTtvWWUoKTtsWWUoKTtjWWUoKTtkWWUoKTt1WWUoKTtwWWUoKTtmWWUoKTtoWWUoKTttWWUoKTtnWWUoKTtiWWUoKTt4WWUoKTt2WWUoKTt5WWUoKTt3WWUoKTtrWWUoKTtTWWUoKTtNWWUoKTtDWWUoKTt6WWUoKTtfWWUoKTtUWWUoKTtMWWUoKTtEWWUoKTskWWUoKTtBWWUoKTtFWWUoKTtJWWUoKTtQWWUoKTtOWWUoKTtPWWUoKTtSWWUoKTtGWWUoKTtCWWUoKTtIWWUoKTtxWWUoKTtWWWUoKTtqWWUoKTtVWWUoKTtXWWUoKTtHWWUoKTtZWWUoKTtLWWUoKTtaWWUoKTtRWWUoKTtYWWUoKTtKWWUoKTtlS2UoKTt0S2UoKTtyS2UoKTthS2UoKTtpS2UoKTtzS2UoKTtuS2UoKTtvS2UoKTtsS2UoKTtjS2UoKTtkS2UoKTt1S2UoKTtwS2UoKTtmS2UoKTtoS2UoKTttS2UoKTtnS2UoKTtiS2UoKTt4S2UoKTt2S2UoKTt5S2UoKTt3S2UoKTtrS2UoKTtTS2UoKTtNS2UoKTtDS2UoKTt6S2UoKTtfS2UoKTtUS2UoKTtMS2UoKTtES2UoKTskS2UoKTtBS2UoKTtFS2UoKTtJS2UoKTtQS2UoKTtOS2UoKTtPS2UoKTtSS2UoKTtGS2UoKTtCS2UoKTtIS2UoKTtxS2UoKTtWS2UoKTtqS2UoKTtVS2UoKTtXS2UoKTtHS2UoKTtZS2UoKTtLS2UoKTtaS2UoKTtRS2UoKTtYS2UoKTtKS2UoKTtlWmUoKTt0WmUoKTtyWmUoKTthWmUoKTtpWmUoKTtzWmUoKTtuWmUoKTtvWmUoKTtsWmUoKTtjWmUoKTtkWmUoKTt1WmUoKTtwWmUoKTtmWmUoKTtoWmUoKTttWmUoKTtnWmUoKTtiWmUoKTt4WmUoKTt2WmUoKTt5WmUoKTt3WmUoKTtrWmUoKTtTWmUoKTtNWmUoKTtDWmUoKTt6WmUoKTtfWmUoKTtUWmUoKTtMWmUoKTtEWmUoKTskWmUoKTtBWmUoKTtFWmUoKTtJWmUoKTtQWmUoKTtOWmUoKTtPWmUoKTtSWmUoKTtGWmUoKTtCWmUoKTtIWmUoKTtxWmUoKTtWWmUoKTtqWmUoKTtVWmUoKTtXWmUoKTtHWmUoKTtZWmUoKTtLWmUoKTtaWmUoKTtRWmUoKTtYWmUoKTtKWmUoKTtlUWUoKTt0UWUoKTtyUWUoKTthUWUoKTtpUWUoKTtzUWUoKTtuUWUoKTtvUWUoKTtsUWUoKTtjUWUoKTtkUWUoKTt1UWUoKTtwUWUoKTtmUWUoKTtoUWUoKTttUWUoKTtnUWUoKTtiUWUoKTt4UWUoKTt2UWUoKTt5UWUoKTt3UWUoKTtrUWUoKTtTUWUoKTtNUWUoKTtDUWUoKTt6UWUoKTtfUWUoKTtUUWUoKTtMUWUoKTtEUWUoKTskUWUoKTtBUWUoKTtFUWUoKTtJUWUoKTtQUWUoKTtOUWUoKTtPUWUoKTtSUWUoKTtGUWUoKTtCUWUoKTtIUWUoKTtxUWUoKTtWUWUoKTtqUWUoKTtVUWUoKTtXUWUoKTtHUWUoKTtZUWUoKTtLUWUoKTtaUWUoKTtRUWUoKTtYUWUoKTtKUWUoKTtlWGUoKTt0WGUoKTtyWGUoKTthWGUoKTtpWGUoKTtzWGUoKTtuWGUoKTtvWGUoKTtsWGUoKTtjWGUoKTtkWGUoKTt1WGUoKTtwWGUoKTtmWGUoKTtoWGUoKTttWGUoKTtnWGUoKTtiWGUoKTt4WGUoKTt2WGUoKTt5WGUoKTt3WGUoKTtrWGUoKTtTWGUoKTtNWGUoKTtDWGUoKTt6WGUoKTtfWGUoKTtUWGUoKTtMWGUoKTtEWGUoKTskWGUoKTtBWGUoKTtFWGUoKTtJWGUoKTtQWGUoKTtOWGUoKTtPWGUoKTtSWGUoKTtGWGUoKTtCWGUoKTtIWGUoKTtxWGUoKTtWWGUoKTtqWGUoKTtVWGUoKTtXWGUoKTtHWGUoKTtZWGUoKTtLWGUoKTtaWGUoKTtRWGUoKTtYWGUoKTtKWGUoKTtlSmUoKTt0SmUoKTtySmUoKTthSmUoKTtpSmUoKTtzSmUoKTtuSmUoKTtvSmUoKTtsSmUoKTtjSmUoKTtkSmUoKTt1SmUoKTtwSmUoKTtmSmUoKTtoSmUoKTttSmUoKTtnSmUoKTtiSmUoKTt4SmUoKTt2SmUoKTt5SmUoKTt3SmUoKTtrSmUoKTtTSmUoKTtNSmUoKTtDSmUoKTt6SmUoKTtfSmUoKTtUSmUoKTtMSmUoKTtESmUoKTskSmUoKTtBSmUoKTtFSmUoKTtJSmUoKTtQSmUoKTtOSmUoKTtPSmUoKTtSSmUoKTtGSmUoKTtCSmUoKTtISmUoKTtxSmUoKTtWSmUoKTtqSmUoKTtVSmUoKTtXSmUoKTtHSmUoKTtZSmUoKTtLSmUoKTtaSmUoKTtRSmUoKTtYSmUoKTtKSmUoKTtlZXQoKTt0ZXQoKTtyZXQoKTthZXQoKTtpZXQoKTtzZXQoKTtuZXQoKTtvZXQoKTtjZXQoKTtkZXQoKTt1ZXQoKTtwZXQoKTtmZXQoKTtoZXQoKTttZXQoKTtnZXQoKTtiZXQoKTt4ZXQoKTt2ZXQoKTt5ZXQoKTt3ZXQoKTtrZXQoKTtNZXQoKTtDZXQoKTt6ZXQoKTtfZXQoKTtUZXQoKTtMZXQoKTtEZXQoKTskZXQoKTtBZXQoKTtFZXQoKTtJZXQoKTtQZXQoKTtOZXQoKTtPZXQoKTtSZXQoKTtGZXQoKTtCZXQoKTtIZXQoKTtxZXQoKTtWZXQoKTtqZXQoKTtVZXQoKTtXZXQoKTtHZXQoKTtZZXQoKTtLZXQoKTtaZXQoKTtRZXQoKTtYZXQoKTtKZXQoKTtldHQoKTt0dHQoKTtydHQoKTthdHQoKTtpdHQoKTtzdHQoKTtudHQoKTtvdHQoKTtsdHQoKTtjdHQoKTtkdHQoKTt1dHQoKTtwdHQoKTtmdHQoKTtodHQoKTttdHQoKTtndHQoKTtidHQoKTt4dHQoKTt2dHQoKTt5dHQoKTt3dHQoKTtrdHQoKTtTdHQoKTtNdHQoKTtDdHQoKTt6dHQoKTtfdHQoKTtUdHQoKTtMdHQoKTtEdHQoKTskdHQoKTtBdHQoKTtFdHQoKTtJdHQoKTtQdHQoKTtOdHQoKTtPdHQoKTtSdHQoKTtGdHQoKTtCdHQoKTtIdHQoKTtxdHQoKTtWdHQoKTtqdHQoKTtVdHQoKTtXdHQoKTtHdHQoKTtZdHQoKTtLdHQoKTtadHQoKTtRdHQoKTtYdHQoKTtKdHQoKTtlcnQoKTt0cnQoKTtycnQoKTthcnQoKTtpcnQoKTtzcnQoKTtucnQoKTtvcnQoKTtscnQoKTtjcnQoKTtkcnQoKTt1cnQoKTtwcnQoKTtmcnQoKTtocnQoKTttcnQoKTtncnQoKTticnQoKTt4cnQoKTt2cnQoKTt5cnQoKTt3cnQoKTtrcnQoKTtTcnQoKTtNcnQoKTtDcnQoKTt6cnQoKTtfcnQoKTtUcnQoKTtMcnQoKTtEcnQoKTskcnQoKTtBcnQoKTtFcnQoKTtJcnQoKTtQcnQoKTtOcnQoKTtPcnQoKTtScnQoKTtGcnQoKTtCcnQoKTtIcnQoKTtxcnQoKTtWcnQoKTtqcnQoKTtVcnQoKTtXcnQoKTtHcnQoKTtZcnQoKTtLcnQoKTtacnQoKTtRcnQoKTtYcnQoKTtKcnQoKTtlYXQoKTt0YXQoKTtyYXQoKTthYXQoKTtpYXQoKTtzYXQoKTtuYXQoKTtvYXQoKTtsYXQoKTtjYXQoKTtkYXQoKTt1YXQoKTtwYXQoKTtmYXQoKTtoYXQoKTttYXQoKTtnYXQoKTtiYXQoKTt4YXQoKTt2YXQoKTt5YXQoKTt3YXQoKTtrYXQoKTtTYXQoKTtNYXQoKTtDYXQoKTt6YXQoKTtfYXQoKTtUYXQoKTtMYXQoKTtEYXQoKTskYXQoKTtBYXQoKTtFYXQoKTtJYXQoKTtQYXQoKTtOYXQoKTtPYXQoKTtSYXQoKTtGYXQoKTtCYXQoKTtIYXQoKTtxYXQoKTtWYXQoKTtqYXQoKTtVYXQoKTtXYXQoKTtHYXQoKTtZYXQoKTtLYXQoKTtaYXQoKTtRYXQoKTtYYXQoKTtKYXQoKTtlaXQoKTt0aXQoKTtyaXQoKTthaXQoKTtpaXQoKTtzaXQoKTtuaXQoKTtvaXQoKTtsaXQoKTtjaXQoKTtkaXQoKTt1aXQoKTtwaXQoKTtmaXQoKTtoaXQoKTttaXQoKTtnaXQoKTtiaXQoKTt4aXQoKTt2aXQoKTt5aXQoKTt3aXQoKTtraXQoKTtTaXQoKTtNaXQoKTtDaXQoKTt6aXQoKTtfaXQoKTtUaXQoKTtMaXQoKTtEaXQoKTskaXQoKTtBaXQoKTtFaXQoKTtJaXQoKTtQaXQoKTtOaXQoKTtPaXQoKTtSaXQoKTtGaXQoKTtCaXQoKTtIaXQoKTtxaXQoKTtWaXQoKTtqaXQoKTtVaXQoKTtXaXQoKTtHaXQoKTtZaXQoKTtLaXQoKTtaaXQoKTtRaXQoKTtYaXQoKTtKaXQoKTtlc3QoKTt0c3QoKTtyc3QoKTthc3QoKTtpc3QoKTtzc3QoKTtuc3QoKTtvc3QoKTtsc3QoKTtjc3QoKTtkc3QoKTt1c3QoKTtwc3QoKTtmc3QoKTtoc3QoKTttc3QoKTtnc3QoKTtic3QoKTt4c3QoKTt2c3QoKTt5c3QoKTt3c3QoKTtrc3QoKTtTc3QoKTtNc3QoKTtDc3QoKTt6c3QoKTtfc3QoKTtUc3QoKTtMc3QoKTtEc3QoKTskc3QoKTtBc3QoKTtFc3QoKTtJc3QoKTtQc3QoKTtOc3QoKTtPc3QoKTtSc3QoKTtGc3QoKTtCc3QoKTtIc3QoKTtxc3QoKTtWc3QoKTtqc3QoKTtVc3QoKTtXc3QoKTtHc3QoKTtZc3QoKTtLc3QoKTtac3QoKTtRc3QoKTtYc3QoKTtKc3QoKTtlbnQoKTt0bnQoKTtybnQoKTthbnQoKTtpbnQoKTtzbnQoKTtubnQoKTtvbnQoKTtsbnQoKTtjbnQoKTtkbnQoKTt1bnQoKTtwbnQoKTtmbnQoKTtobnQoKTttbnQoKTtnbnQoKTtibnQoKTt4bnQoKTt2bnQoKTt5bnQoKTt3bnQoKTtrbnQoKTtTbnQoKTtNbnQoKTtDbnQoKTt6bnQoKTtfbnQoKTtUbnQoKTtMbnQoKTtEbnQoKTskbnQoKTtBbnQoKTtFbnQoKTtJbnQoKTtQbnQoKTtObnQoKTtPbnQoKTtSbnQoKTtGbnQoKTtCbnQoKTtIbnQoKTtxbnQoKTtWbnQoKTtqbnQoKTtVbnQoKTtXbnQoKTtHbnQoKTtZbnQoKTtLbnQoKTtabnQoKTtRbnQoKTtYbnQoKTtKbnQoKTtlb3QoKTt0b3QoKTtyb3QoKTthb3QoKTtpb3QoKTtzb3QoKTtub3QoKTtvb3QoKTtsb3QoKTtjb3QoKTtkb3QoKTt1b3QoKTtwb3QoKTtmb3QoKTtob3QoKTttb3QoKTtnb3QoKTtib3QoKTt4b3QoKTt2b3QoKTt5b3QoKTt3b3QoKTtrb3QoKTtTb3QoKTtNb3QoKTtDb3QoKTt6b3QoKTtfb3QoKTtUb3QoKTtMb3QoKTtEb3QoKTskb3QoKTtBb3QoKTtFb3QoKTtJb3QoKTtQb3QoKTtOb3QoKTtPb3QoKTtSb3QoKTtGb3QoKTtCb3QoKTtIb3QoKTtxb3QoKTtWb3QoKTtqb3QoKTtVb3QoKTtXb3QoKTtHb3QoKTtZb3QoKTtLb3QoKTtab3QoKTtRb3QoKTtYb3QoKTtKb3QoKTtlMXQoKTt0MXQoKTtyMXQoKTthMXQoKTtpMXQoKTtzMXQoKTtuMXQoKTtvMXQoKTtsMXQoKTtjMXQoKTtkMXQoKTt1MXQoKTtwMXQoKTtmMXQoKTtoMXQoKTttMXQoKTtnMXQoKTtiMXQoKTt4MXQoKTt2MXQoKTt5MXQoKTt3MXQoKTtrMXQoKTtTMXQoKTtNMXQoKTtDMXQoKTt6MXQoKTtfMXQoKTtUMXQoKTtMMXQoKTtEMXQoKTskMXQoKTtBMXQoKTtFMXQoKTtJMXQoKTtQMXQoKTtOMXQoKTtPMXQoKTtSMXQoKTtGMXQoKTtCMXQoKTtIMXQoKTtxMXQoKTtWMXQoKTtqMXQoKTtVMXQoKTtXMXQoKTtHMXQoKTtZMXQoKTtLMXQoKTtaMXQoKTtRMXQoKTtYMXQoKTtKMXQoKTtlbHQoKTt0bHQoKTtybHQoKTthbHQoKTtpbHQoKTtzbHQoKTtubHQoKTtvbHQoKTtsbHQoKTtjbHQoKTtkbHQoKTt1bHQoKTtwbHQoKTtmbHQoKTtobHQoKTttbHQoKTtnbHQoKTtibHQoKTt4bHQoKTt2bHQoKTt5bHQoKTt3bHQoKTtrbHQoKTtTbHQoKTtNbHQoKTtDbHQoKTt6bHQoKTtfbHQoKTtUbHQoKTtMbHQoKTtEbHQoKTskbHQoKTtBbHQoKTtFbHQoKTtJbHQoKTtQbHQoKTtObHQoKTtPbHQoKTtSbHQoKTtGbHQoKTtCbHQoKTtIbHQoKTtxbHQoKTtWbHQoKTtqbHQoKTtVbHQoKTtXbHQoKTtHbHQoKTtZbHQoKTtLbHQoKTtabHQoKTtRbHQoKTtYbHQoKTtKbHQoKTtlMnQoKTt0MnQoKTtyMnQoKTthMnQoKTtpMnQoKTtzMnQoKTtuMnQoKTtvMnQoKTtsMnQoKTtjMnQoKTtkMnQoKTt1MnQoKTtwMnQoKTtmMnQoKTtoMnQoKTttMnQoKTtnMnQoKTtiMnQoKTt4MnQoKTt2MnQoKTt5MnQoKTt3MnQoKTtrMnQoKTtTMnQoKTtNMnQoKTtDMnQoKTt6MnQoKTtfMnQoKTtUMnQoKTtMMnQoKTtEMnQoKTskMnQoKTtBMnQoKTtFMnQoKTtJMnQoKTtQMnQoKTtOMnQoKTtPMnQoKTtSMnQoKTtGMnQoKTtCMnQoKTtIMnQoKTtxMnQoKTtWMnQoKTtqMnQoKTtVMnQoKTtXMnQoKTtHMnQoKTtZMnQoKTtLMnQoKTtaMnQoKTtRMnQoKTtYMnQoKTtKMnQoKTtlY3QoKTt0Y3QoKTtyY3QoKTthY3QoKTtpY3QoKTtzY3QoKTtuY3QoKTtvY3QoKTtsY3QoKTtjY3QoKTtkY3QoKTt1Y3QoKTtwY3QoKTtmY3QoKTtoY3QoKTttY3QoKTtnY3QoKTtiY3QoKTt4Y3QoKTt2Y3QoKTt5Y3QoKTt3Y3QoKTtrY3QoKTtTY3QoKTtNY3QoKTtDY3QoKTt6Y3QoKTtfY3QoKTtUY3QoKTtMY3QoKTtEY3QoKTskY3QoKTtBY3QoKTtFY3QoKTtJY3QoKTtQY3QoKTtOY3QoKTtPY3QoKTtSY3QoKTtGY3QoKTtCY3QoKTtIY3QoKTtxY3QoKTtWY3QoKTtqY3QoKTtVY3QoKTtXY3QoKTtHY3QoKTtZY3QoKTtLY3QoKTtaY3QoKTtRY3QoKTtYY3QoKTtKY3QoKTtlMHQoKTt0MHQoKTtyMHQoKTthMHQoKTtpMHQoKTtzMHQoKTtuMHQoKTtvMHQoKTtsMHQoKTtjMHQoKTtkMHQoKTt1MHQoKTtwMHQoKTtmMHQoKTtoMHQoKTttMHQoKTtnMHQoKTtiMHQoKTt4MHQoKTt2MHQoKTt5MHQoKTt3MHQoKTtrMHQoKTtTMHQoKTtNMHQoKTtDMHQoKTt6MHQoKTtfMHQoKTtUMHQoKTtMMHQoKTtEMHQoKTskMHQoKTtBMHQoKTtFMHQoKTtJMHQoKTtQMHQoKTtOMHQoKTtPMHQoKTtSMHQoKTtGMHQoKTtCMHQoKTtIMHQoKTtxMHQoKTtWMHQoKTtqMHQoKTtVMHQoKTtXMHQoKTtHMHQoKTtZMHQoKTtLMHQoKTtaMHQoKTtRMHQoKTtYMHQoKTtKMHQoKTtlZHQoKTt0ZHQoKTtyZHQoKTthZHQoKTtpZHQoKTtzZHQoKTtuZHQoKTtvZHQoKTtsZHQoKTtjZHQoKTtkZHQoKTt1ZHQoKTtwZHQoKTtmZHQoKTtoZHQoKTttZHQoKTtnZHQoKTtiZHQoKTt4ZHQoKTt2ZHQoKTt5ZHQoKTt3ZHQoKTtrZHQoKTtTZHQoKTtNZHQoKTtDZHQoKTt6ZHQoKTtfZHQoKTtUZHQoKTtMZHQoKTtEZHQoKTskZHQoKTtBZHQoKTtFZHQoKTtJZHQoKTtQZHQoKTtOZHQoKTtPZHQoKTtSZHQoKTtGZHQoKTtCZHQoKTtIZHQoKTtxZHQoKTtWZHQoKTtqZHQoKTtVZHQoKTtXZHQoKTtHZHQoKTtZZHQoKTtLZHQoKTtaZHQoKTtRZHQoKTtYZHQoKTtKZHQoKTtlNHQoKTt0NHQoKTtyNHQoKTthNHQoKTtpNHQoKTtzNHQoKTtuNHQoKTtvNHQoKTtsNHQoKTtjNHQoKTtkNHQoKTt1NHQoKTtwNHQoKTtmNHQoKTtoNHQoKTttNHQoKTtnNHQoKTtiNHQoKTt4NHQoKTt2NHQoKTt5NHQoKTt3NHQoKTtrNHQoKTtTNHQoKTtNNHQoKTtDNHQoKTt6NHQoKTtfNHQoKTtUNHQoKTtMNHQoKTtENHQoKTskNHQoKTtBNHQoKTtFNHQoKTtJNHQoKTtQNHQoKTtONHQoKTtPNHQoKTtSNHQoKTtGNHQoKTtCNHQoKTtINHQoKTtxNHQoKTtWNHQoKTtqNHQoKTtVNHQoKTtXNHQoKTtHNHQoKTtZNHQoKTtLNHQoKTtaNHQoKTtRNHQoKTtYNHQoKTtKNHQoKTtlM3QoKTt0M3QoKTtyM3QoKTthM3QoKTtpM3QoKTtzM3QoKTtuM3QoKTtvM3QoKTtsM3QoKTtjM3QoKTtkM3QoKTt1M3QoKTtwM3QoKTtmM3QoKTtoM3QoKTttM3QoKTtnM3QoKTtiM3QoKTt4M3QoKTt2M3QoKTt5M3QoKTt3M3QoKTtrM3QoKTtTM3QoKTtNM3QoKTtDM3QoKTt6M3QoKTtfM3QoKTtUM3QoKTtMM3QoKTtEM3QoKTskM3QoKTtBM3QoKTtFM3QoKTtJM3QoKTtQM3QoKTtOM3QoKTtPM3QoKTtSM3QoKTtGM3QoKTtCM3QoKTtIM3QoKTtxM3QoKTtWM3QoKTtqM3QoKTtVM3QoKTtXM3QoKTtHM3QoKTtZM3QoKTtLM3QoKTtaM3QoKTtRM3QoKTtYM3QoKTtKM3QoKTtldXQoKTt0dXQoKTtydXQoKTthdXQoKTtpdXQoKTtzdXQoKTtudXQoKTtvdXQoKTtsdXQoKTtjdXQoKTtkdXQoKTt1dXQoKTtwdXQoKTtmdXQoKTtodXQoKTttdXQoKTtndXQoKTtidXQoKTt4dXQoKTt2dXQoKTt5dXQoKTt3dXQoKTtrdXQoKTtTdXQoKTtNdXQoKTtDdXQoKTt6dXQoKTtfdXQoKTtUdXQoKTtMdXQoKTtEdXQoKTskdXQoKTtBdXQoKTtFdXQoKTtJdXQoKTtQdXQoKTtOdXQoKTtPdXQoKTtSdXQoKTtGdXQoKTtCdXQoKTtIdXQoKTtxdXQoKTtWdXQoKTtqdXQoKTtVdXQoKTtXdXQoKTtHdXQoKTtZdXQoKTtLdXQoKTtadXQoKTtRdXQoKTtYdXQoKTtKdXQoKTtlcHQoKTt0cHQoKTtycHQoKTthcHQoKTtpcHQoKTtzcHQoKTtucHQoKTtvcHQoKTtscHQoKTtjcHQoKTtkcHQoKTt1cHQoKTtwcHQoKTtmcHQoKTtocHQoKTttcHQoKTtncHQoKTticHQoKTt4cHQoKTt2cHQoKTt5cHQoKTt3cHQoKTtrcHQoKTtTcHQoKTtNcHQoKTtDcHQoKTt6cHQoKTtfcHQoKTtUcHQoKTtMcHQoKTtEcHQoKTskcHQoKTtBcHQoKTtFcHQoKTtJcHQoKTtQcHQoKTtOcHQoKTtPcHQoKTtScHQoKTtGcHQoKTtCcHQoKTtIcHQoKTtxcHQoKTtWcHQoKTtqcHQoKTtVcHQoKTtXcHQoKTtHcHQoKTtZcHQoKTtLcHQoKTtacHQoKTtRcHQoKTtYcHQoKTtKcHQoKTtlZnQoKTt0ZnQoKTtyZnQoKTthZnQoKTtpZnQoKTtzZnQoKTtuZnQoKTtvZnQoKTtsZnQoKTtjZnQoKTtkZnQoKTt1ZnQoKTtwZnQoKTtmZnQoKTtoZnQoKTttZnQoKTtnZnQoKTtiZnQoKTt4ZnQoKTt2ZnQoKTt5ZnQoKTt3ZnQoKTtrZnQoKTtTZnQoKTtNZnQoKTtDZnQoKTt6ZnQoKTtfZnQoKTtUZnQoKTtMZnQoKTtEZnQoKTskZnQoKTtBZnQoKTtFZnQoKTtJZnQoKTtQZnQoKTtOZnQoKTtPZnQoKTtSZnQoKTtGZnQoKTtCZnQoKTtIZnQoKTtxZnQoKTtWZnQoKTtqZnQoKTtVZnQoKTtXZnQoKTtHZnQoKTtZZnQoKTtLZnQoKTtaZnQoKTtRZnQoKTtYZnQoKTtKZnQoKTtlaHQoKTt0aHQoKTtyaHQoKTthaHQoKTtpaHQoKTtzaHQoKTtuaHQoKTtvaHQoKTtsaHQoKTtjaHQoKTtkaHQoKTt1aHQoKTtwaHQoKTtmaHQoKTtoaHQoKTttaHQoKTtnaHQoKTtiaHQoKTt4aHQoKTt2aHQoKTt5aHQoKTt3aHQoKTtraHQoKTtTaHQoKTtNaHQoKTtDaHQoKTt6aHQoKTtfaHQoKTtUaHQoKTtMaHQoKTtEaHQoKTskaHQoKTtBaHQoKTtFaHQoKTtJaHQoKTtQaHQoKTtOaHQoKTtPaHQoKTtSaHQoKTtGaHQoKTtCaHQoKTtIaHQoKTtxaHQoKTtWaHQoKTtqaHQoKTtVaHQoKTtXaHQoKTtHaHQoKTtZaHQoKTtLaHQoKTtaaHQoKTtRaHQoKTtYaHQoKTtKaHQoKTtlNnQoKTt0NnQoKTtyNnQoKTthNnQoKTtpNnQoKTtzNnQoKTtuNnQoKTtvNnQoKTtsNnQoKTtjNnQoKTtkNnQoKTt1NnQoKTtwNnQoKTtmNnQoKTtoNnQoKTttNnQoKTtnNnQoKTtiNnQoKTt9KTt2YXIgYWQ9e307VmUoYWQse0FBcnJvd0Rvd246KCk9PmxULEFBcnJvd1VwOigpPT5jVCxBTGFyZ2VTbWFsbDooKT0+ZFQsQWNjZXNzaWJpbGl0eTooKT0+dVQsQWN0aXZpdHk6KCk9PnBULEFjdGl2aXR5U3F1YXJlOigpPT5VOCxBaXJWZW50OigpPT5mVCxBaXJwbGF5OigpPT5oVCxBbGFybUNoZWNrOigpPT5ubSxBbGFybUNsb2NrOigpPT5nVCxBbGFybUNsb2NrQ2hlY2s6KCk9Pm5tLEFsYXJtQ2xvY2tNaW51czooKT0+bG0sQWxhcm1DbG9ja09mZjooKT0+bVQsQWxhcm1DbG9ja1BsdXM6KCk9Pm9tLEFsYXJtTWludXM6KCk9PmxtLEFsYXJtUGx1czooKT0+b20sQWxhcm1TbW9rZTooKT0+YlQsQWxidW06KCk9PnhULEFsZXJ0Q2lyY2xlOigpPT5ObSxBbGVydE9jdGFnb246KCk9Pnk4LEFsZXJ0VHJpYW5nbGU6KCk9Pko3LEFsaWduQ2VudGVyOigpPT5XNyxBbGlnbkNlbnRlckhvcml6b250YWw6KCk9PnZULEFsaWduQ2VudGVyVmVydGljYWw6KCk9PnlULEFsaWduRW5kSG9yaXpvbnRhbDooKT0+d1QsQWxpZ25FbmRWZXJ0aWNhbDooKT0+a1QsQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUNlbnRlcjooKT0+U1QsQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUVuZDooKT0+TVQsQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZVN0YXJ0OigpPT5DVCxBbGlnbkhvcml6b250YWxKdXN0aWZ5Q2VudGVyOigpPT56VCxBbGlnbkhvcml6b250YWxKdXN0aWZ5RW5kOigpPT5fVCxBbGlnbkhvcml6b250YWxKdXN0aWZ5U3RhcnQ6KCk9PlRULEFsaWduSG9yaXpvbnRhbFNwYWNlQXJvdW5kOigpPT5MVCxBbGlnbkhvcml6b250YWxTcGFjZUJldHdlZW46KCk9PkRULEFsaWduSnVzdGlmeTooKT0+WTcsQWxpZ25MZWZ0OigpPT5LNCxBbGlnblJpZ2h0OigpPT5HNyxBbGlnblN0YXJ0SG9yaXpvbnRhbDooKT0+JFQsQWxpZ25TdGFydFZlcnRpY2FsOigpPT5BVCxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUNlbnRlcjooKT0+RVQsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVFbmQ6KCk9PlBULEFsaWduVmVydGljYWxEaXN0cmlidXRlU3RhcnQ6KCk9PklULEFsaWduVmVydGljYWxKdXN0aWZ5Q2VudGVyOigpPT5OVCxBbGlnblZlcnRpY2FsSnVzdGlmeUVuZDooKT0+T1QsQWxpZ25WZXJ0aWNhbEp1c3RpZnlTdGFydDooKT0+UlQsQWxpZ25WZXJ0aWNhbFNwYWNlQXJvdW5kOigpPT5GVCxBbGlnblZlcnRpY2FsU3BhY2VCZXR3ZWVuOigpPT5CVCxBbWJ1bGFuY2U6KCk9PkhULEFtcGVyc2FuZDooKT0+cVQsQW1wZXJzYW5kczooKT0+VlQsQW1waG9yYTooKT0+alQsQW5jaG9yOigpPT5VVCxBbmdyeTooKT0+V1QsQW5ub3llZDooKT0+R1QsQW50ZW5uYTooKT0+S1QsQW52aWw6KCk9PllULEFwZXJ0dXJlOigpPT5aVCxBcHBXaW5kb3c6KCk9PmVMLEFwcFdpbmRvd01hYzooKT0+UVQsQXBwbGU6KCk9PlhULEFyY2hpdmU6KCk9PnJMLEFyY2hpdmVSZXN0b3JlOigpPT5KVCxBcmNoaXZlWDooKT0+dEwsQXJlYUNoYXJ0OigpPT5TbSxBcm1jaGFpcjooKT0+YUwsQXJyb3dCaWdEb3duOigpPT5zTCxBcnJvd0JpZ0Rvd25EYXNoOigpPT5pTCxBcnJvd0JpZ0xlZnQ6KCk9Pm9MLEFycm93QmlnTGVmdERhc2g6KCk9Pm5MLEFycm93QmlnUmlnaHQ6KCk9PmNMLEFycm93QmlnUmlnaHREYXNoOigpPT5sTCxBcnJvd0JpZ1VwOigpPT51TCxBcnJvd0JpZ1VwRGFzaDooKT0+ZEwsQXJyb3dEb3duOigpPT53TCxBcnJvd0Rvd24wMTooKT0+cEwsQXJyb3dEb3duMTA6KCk9PmZMLEFycm93RG93bkFaOigpPT5jbSxBcnJvd0Rvd25BejooKT0+Y20sQXJyb3dEb3duQ2lyY2xlOigpPT5PbSxBcnJvd0Rvd25Gcm9tTGluZTooKT0+aEwsQXJyb3dEb3duTGVmdDooKT0+bUwsQXJyb3dEb3duTGVmdEZyb21DaXJjbGU6KCk9PkZtLEFycm93RG93bkxlZnRGcm9tU3F1YXJlOigpPT5aOCxBcnJvd0Rvd25MZWZ0U3F1YXJlOigpPT5XOCxBcnJvd0Rvd25OYXJyb3dXaWRlOigpPT5nTCxBcnJvd0Rvd25SaWdodDooKT0+YkwsQXJyb3dEb3duUmlnaHRGcm9tQ2lyY2xlOigpPT5CbSxBcnJvd0Rvd25SaWdodEZyb21TcXVhcmU6KCk9PlE4LEFycm93RG93blJpZ2h0U3F1YXJlOigpPT5HOCxBcnJvd0Rvd25TcXVhcmU6KCk9Plk4LEFycm93RG93blRvRG90OigpPT54TCxBcnJvd0Rvd25Ub0xpbmU6KCk9PnZMLEFycm93RG93blVwOigpPT55TCxBcnJvd0Rvd25XaWRlTmFycm93OigpPT5kbSxBcnJvd0Rvd25aQTooKT0+dW0sQXJyb3dEb3duWmE6KCk9PnVtLEFycm93TGVmdDooKT0+Q0wsQXJyb3dMZWZ0Q2lyY2xlOigpPT5SbSxBcnJvd0xlZnRGcm9tTGluZTooKT0+a0wsQXJyb3dMZWZ0UmlnaHQ6KCk9PlNMLEFycm93TGVmdFNxdWFyZTooKT0+SzgsQXJyb3dMZWZ0VG9MaW5lOigpPT5NTCxBcnJvd1JpZ2h0OigpPT5MTCxBcnJvd1JpZ2h0Q2lyY2xlOigpPT5WbSxBcnJvd1JpZ2h0RnJvbUxpbmU6KCk9PnpMLEFycm93UmlnaHRMZWZ0OigpPT5fTCxBcnJvd1JpZ2h0U3F1YXJlOigpPT5lNyxBcnJvd1JpZ2h0VG9MaW5lOigpPT5UTCxBcnJvd1VwOigpPT5GTCxBcnJvd1VwMDE6KCk9PkRMLEFycm93VXAxMDooKT0+JEwsQXJyb3dVcEFaOigpPT5wbSxBcnJvd1VwQXo6KCk9PnBtLEFycm93VXBDaXJjbGU6KCk9PmptLEFycm93VXBEb3duOigpPT5BTCxBcnJvd1VwRnJvbURvdDooKT0+RUwsQXJyb3dVcEZyb21MaW5lOigpPT5JTCxBcnJvd1VwTGVmdDooKT0+UEwsQXJyb3dVcExlZnRGcm9tQ2lyY2xlOigpPT5IbSxBcnJvd1VwTGVmdEZyb21TcXVhcmU6KCk9Plg4LEFycm93VXBMZWZ0U3F1YXJlOigpPT50NyxBcnJvd1VwTmFycm93V2lkZTooKT0+Zm0sQXJyb3dVcFJpZ2h0OigpPT5OTCxBcnJvd1VwUmlnaHRGcm9tQ2lyY2xlOigpPT5xbSxBcnJvd1VwUmlnaHRGcm9tU3F1YXJlOigpPT5KOCxBcnJvd1VwUmlnaHRTcXVhcmU6KCk9PnI3LEFycm93VXBTcXVhcmU6KCk9PmE3LEFycm93VXBUb0xpbmU6KCk9Pk9MLEFycm93VXBXaWRlTmFycm93OigpPT5STCxBcnJvd1VwWkE6KCk9PmhtLEFycm93VXBaYTooKT0+aG0sQXJyb3dzVXBGcm9tTGluZTooKT0+QkwsQXN0ZXJpc2s6KCk9PkhMLEFzdGVyaXNrU3F1YXJlOigpPT5pNyxBdFNpZ246KCk9PnFMLEF0b206KCk9PlZMLEF1ZGlvTGluZXM6KCk9PmpMLEF1ZGlvV2F2ZWZvcm06KCk9PldMLEF3YXJkOigpPT5VTCxBeGU6KCk9PkdMLEF4aXMzRDooKT0+bW0sQXhpczNkOigpPT5tbSxCYWJ5OigpPT5ZTCxCYWNrcGFjazooKT0+S0wsQmFkZ2U6KCk9PnVELEJhZGdlQWxlcnQ6KCk9PlpMLEJhZGdlQ2VudDooKT0+UUwsQmFkZ2VDaGVjazooKT0+Z20sQmFkZ2VEb2xsYXJTaWduOigpPT5YTCxCYWRnZUV1cm86KCk9PkpMLEJhZGdlSGVscDooKT0+Ym0sQmFkZ2VJbmRpYW5SdXBlZTooKT0+ZUQsQmFkZ2VJbmZvOigpPT50RCxCYWRnZUphcGFuZXNlWWVuOigpPT5yRCxCYWRnZU1pbnVzOigpPT5hRCxCYWRnZVBlcmNlbnQ6KCk9PmlELEJhZGdlUGx1czooKT0+c0QsQmFkZ2VQb3VuZFN0ZXJsaW5nOigpPT5uRCxCYWRnZVF1ZXN0aW9uTWFyazooKT0+Ym0sQmFkZ2VSdXNzaWFuUnVibGU6KCk9Pm9ELEJhZGdlU3dpc3NGcmFuYzooKT0+bEQsQmFkZ2VUdXJraXNoTGlyYTooKT0+Y0QsQmFkZ2VYOigpPT5kRCxCYWdnYWdlQ2xhaW06KCk9PnBELEJhbGxvb246KCk9PmZELEJhbjooKT0+aEQsQmFuYW5hOigpPT5tRCxCYW5kYWdlOigpPT5nRCxCYW5rbm90ZTooKT0+eUQsQmFua25vdGVBcnJvd0Rvd246KCk9PmJELEJhbmtub3RlQXJyb3dVcDooKT0+eEQsQmFua25vdGVYOigpPT52RCxCYXJDaGFydDooKT0+QW0sQmFyQ2hhcnQyOigpPT4kbSxCYXJDaGFydDM6KCk9PkxtLEJhckNoYXJ0NDooKT0+VG0sQmFyQ2hhcnRCaWc6KCk9Pl9tLEJhckNoYXJ0SG9yaXpvbnRhbDooKT0+Q20sQmFyQ2hhcnRIb3Jpem9udGFsQmlnOigpPT5NbSxCYXJjb2RlOigpPT53RCxCYXJyZWw6KCk9PmtELEJhc2VsaW5lOigpPT5TRCxCYXRoOigpPT5NRCxCYXR0ZXJ5OigpPT4kRCxCYXR0ZXJ5Q2hhcmdpbmc6KCk9PkNELEJhdHRlcnlGdWxsOigpPT5fRCxCYXR0ZXJ5TG93OigpPT56RCxCYXR0ZXJ5TWVkaXVtOigpPT5URCxCYXR0ZXJ5UGx1czooKT0+TEQsQmF0dGVyeVdhcm5pbmc6KCk9PkRELEJlYWtlcjooKT0+QUQsQmVhbjooKT0+SUQsQmVhbk9mZjooKT0+RUQsQmVkOigpPT5SRCxCZWREb3VibGU6KCk9PlBELEJlZFNpbmdsZTooKT0+TkQsQmVlZjooKT0+RkQsQmVlZk9mZjooKT0+T0QsQmVlcjooKT0+SEQsQmVlck9mZjooKT0+QkQsQmVsbDooKT0+WUQsQmVsbERvdDooKT0+cUQsQmVsbEVsZWN0cmljOigpPT5WRCxCZWxsTWludXM6KCk9PmpELEJlbGxPZmY6KCk9PlVELEJlbGxQbHVzOigpPT5XRCxCZWxsUmluZzooKT0+R0QsQmV0d2Vlbkhvcml6b25hbEVuZDooKT0+eG0sQmV0d2Vlbkhvcml6b25hbFN0YXJ0OigpPT52bSxCZXR3ZWVuSG9yaXpvbnRhbEVuZDooKT0+eG0sQmV0d2Vlbkhvcml6b250YWxTdGFydDooKT0+dm0sQmV0d2VlblZlcnRpY2FsRW5kOigpPT5LRCxCZXR3ZWVuVmVydGljYWxTdGFydDooKT0+WkQsQmljZXBzRmxleGVkOigpPT5RRCxCaWtlOigpPT5YRCxCaW5hcnk6KCk9PkpELEJpbm9jdWxhcnM6KCk9PmUkLEJpb2hhemFyZDooKT0+dCQsQmlyZDooKT0+ciQsQmlyZGhvdXNlOigpPT5hJCxCaXRjb2luOigpPT5pJCxCbGVuZDooKT0+cyQsQmxpbmRzOigpPT5uJCxCbG9ja3M6KCk9Pm8kLEJsdWV0b290aDooKT0+ZCQsQmx1ZXRvb3RoQ29ubmVjdGVkOigpPT5sJCxCbHVldG9vdGhPZmY6KCk9PmMkLEJsdWV0b290aFNlYXJjaGluZzooKT0+cCQsQm9sZDooKT0+dSQsQm9sdDooKT0+ZiQsQm9tYjooKT0+aCQsQm9uZTooKT0+bSQsQm9vazooKT0+RiQsQm9va0E6KCk9PmckLEJvb2tBbGVydDooKT0+YiQsQm9va0F1ZGlvOigpPT54JCxCb29rQ2hlY2s6KCk9PnYkLEJvb2tDb3B5OigpPT55JCxCb29rRGFzaGVkOigpPT55bSxCb29rRG93bjooKT0+dyQsQm9va0hlYWRwaG9uZXM6KCk9PmskLEJvb2tIZWFydDooKT0+UyQsQm9va0ltYWdlOigpPT5NJCxCb29rS2V5OigpPT5DJCxCb29rTG9jazooKT0+eiQsQm9va01hcmtlZDooKT0+VCQsQm9va01pbnVzOigpPT5fJCxCb29rT3BlbjooKT0+JCQsQm9va09wZW5DaGVjazooKT0+TCQsQm9va09wZW5UZXh0OigpPT5EJCxCb29rUGx1czooKT0+QSQsQm9va1NlYXJjaDooKT0+RSQsQm9va1RlbXBsYXRlOigpPT55bSxCb29rVGV4dDooKT0+SSQsQm9va1R5cGU6KCk9PlAkLEJvb2tVcDooKT0+TyQsQm9va1VwMjooKT0+TiQsQm9va1VzZXI6KCk9PlIkLEJvb2tYOigpPT5CJCxCb29rbWFyazooKT0+VyQsQm9va21hcmtDaGVjazooKT0+SCQsQm9va21hcmtNaW51czooKT0+ViQsQm9va21hcmtPZmY6KCk9PnEkLEJvb2ttYXJrUGx1czooKT0+aiQsQm9va21hcmtYOigpPT5VJCxCb29tQm94OigpPT5HJCxCb3Q6KCk9PlokLEJvdE1lc3NhZ2VTcXVhcmU6KCk9PlkkLEJvdE9mZjooKT0+SyQsQm90dGxlV2luZTooKT0+USQsQm93QXJyb3c6KCk9PlgkLEJveDooKT0+SiQsQm94U2VsZWN0OigpPT5iNyxCb3hlczooKT0+ZUEsQnJhY2VzOigpPT53bSxCcmFja2V0czooKT0+dEEsQnJhaW46KCk9PmlBLEJyYWluQ2lyY3VpdDooKT0+ckEsQnJhaW5Db2c6KCk9PmFBLEJyaWNrV2FsbDooKT0+b0EsQnJpY2tXYWxsRmlyZTooKT0+c0EsQnJpY2tXYWxsU2hpZWxkOigpPT5uQSxCcmllZmNhc2U6KCk9PnVBLEJyaWVmY2FzZUJ1c2luZXNzOigpPT5sQSxCcmllZmNhc2VDb252ZXlvckJlbHQ6KCk9PmNBLEJyaWVmY2FzZU1lZGljYWw6KCk9PmRBLEJyaW5nVG9Gcm9udDooKT0+cEEsQnJ1c2g6KCk9PmhBLEJydXNoQ2xlYW5pbmc6KCk9PmZBLEJ1YmJsZXM6KCk9Pm1BLEJ1ZzooKT0+eEEsQnVnT2ZmOigpPT5nQSxCdWdQbGF5OigpPT5iQSxCdWlsZGluZzooKT0+eUEsQnVpbGRpbmcyOigpPT52QSxCdXM6KCk9PmtBLEJ1c0Zyb250OigpPT53QSxDYWJsZTooKT0+TUEsQ2FibGVDYXI6KCk9PlNBLENha2U6KCk9PnpBLENha2VTbGljZTooKT0+Q0EsQ2FsY3VsYXRvcjooKT0+X0EsQ2FsZW5kYXI6KCk9PllBLENhbGVuZGFyMTooKT0+VEEsQ2FsZW5kYXJBcnJvd0Rvd246KCk9PkxBLENhbGVuZGFyQXJyb3dVcDooKT0+REEsQ2FsZW5kYXJDaGVjazooKT0+QUEsQ2FsZW5kYXJDaGVjazI6KCk9PiRBLENhbGVuZGFyQ2xvY2s6KCk9PkVBLENhbGVuZGFyQ29nOigpPT5JQSxDYWxlbmRhckRheXM6KCk9PlBBLENhbGVuZGFyRm9sZDooKT0+TkEsQ2FsZW5kYXJIZWFydDooKT0+RkEsQ2FsZW5kYXJNaW51czooKT0+UkEsQ2FsZW5kYXJNaW51czI6KCk9Pk9BLENhbGVuZGFyT2ZmOigpPT5CQSxDYWxlbmRhclBsdXM6KCk9PnFBLENhbGVuZGFyUGx1czI6KCk9PkhBLENhbGVuZGFyUmFuZ2U6KCk9PlZBLENhbGVuZGFyU2VhcmNoOigpPT5qQSxDYWxlbmRhclN5bmM6KCk9PlVBLENhbGVuZGFyWDooKT0+R0EsQ2FsZW5kYXJYMjooKT0+V0EsQ2FsZW5kYXJzOigpPT5LQSxDYW1lcmE6KCk9PlpBLENhbWVyYU9mZjooKT0+UUEsQ2FuZGxlc3RpY2tDaGFydDooKT0+em0sQ2FuZHk6KCk9PmVFLENhbmR5Q2FuZTooKT0+WEEsQ2FuZHlPZmY6KCk9PkpBLENhbm5hYmlzOigpPT5yRSxDYW5uYWJpc09mZjooKT0+dEUsQ2FwdGlvbnM6KCk9PmttLENhcHRpb25zT2ZmOigpPT5hRSxDYXI6KCk9PnNFLENhckZyb250OigpPT5pRSxDYXJUYXhpRnJvbnQ6KCk9Pm5FLENhcmF2YW46KCk9Pm9FLENhcmRTaW06KCk9PmxFLENhcnJvdDooKT0+Y0UsQ2FzZUxvd2VyOigpPT5kRSxDYXNlU2Vuc2l0aXZlOigpPT51RSxDYXNlVXBwZXI6KCk9PnBFLENhc3NldHRlVGFwZTooKT0+ZkUsQ2FzdDooKT0+aEUsQ2FzdGxlOigpPT5tRSxDYXQ6KCk9PmdFLENjdHY6KCk9PnhFLENjdHZPZmY6KCk9PmJFLENoYXJ0QXJlYTooKT0+U20sQ2hhcnRCYXI6KCk9PkNtLENoYXJ0QmFyQmlnOigpPT5NbSxDaGFydEJhckRlY3JlYXNpbmc6KCk9PnZFLENoYXJ0QmFySW5jcmVhc2luZzooKT0+eUUsQ2hhcnRCYXJTdGFja2VkOigpPT53RSxDaGFydENhbmRsZXN0aWNrOigpPT56bSxDaGFydENvbHVtbjooKT0+TG0sQ2hhcnRDb2x1bW5CaWc6KCk9Pl9tLENoYXJ0Q29sdW1uRGVjcmVhc2luZzooKT0+a0UsQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5UbSxDaGFydENvbHVtblN0YWNrZWQ6KCk9PlNFLENoYXJ0R2FudHQ6KCk9Pk1FLENoYXJ0TGluZTooKT0+RG0sQ2hhcnROZXR3b3JrOigpPT5DRSxDaGFydE5vQXhlc0NvbHVtbjooKT0+JG0sQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOigpPT56RSxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6KCk9PkFtLENoYXJ0Tm9BeGVzQ29tYmluZWQ6KCk9Pl9FLENoYXJ0Tm9BeGVzR2FudHQ6KCk9PkVtLENoYXJ0UGllOigpPT5JbSxDaGFydFNjYXR0ZXI6KCk9PlBtLENoYXJ0U3BsaW5lOigpPT5URSxDaGVjazooKT0+JEUsQ2hlY2tDaGVjazooKT0+TEUsQ2hlY2tDaXJjbGU6KCk9PlVtLENoZWNrQ2lyY2xlMjooKT0+V20sQ2hlY2tMaW5lOigpPT5ERSxDaGVja1NxdWFyZTooKT0+bDcsQ2hlY2tTcXVhcmUyOigpPT5jNyxDaGVmSGF0OigpPT5BRSxDaGVycnk6KCk9PkVFLENoZXNzQmlzaG9wOigpPT5JRSxDaGVzc0tpbmc6KCk9PlBFLENoZXNzS25pZ2h0OigpPT5PRSxDaGVzc1Bhd246KCk9Pk5FLENoZXNzUXVlZW46KCk9PlJFLENoZXNzUm9vazooKT0+RkUsQ2hldnJvbkRvd246KCk9PkJFLENoZXZyb25Eb3duQ2lyY2xlOigpPT5HbSxDaGV2cm9uRG93blNxdWFyZTooKT0+ZDcsQ2hldnJvbkZpcnN0OigpPT5IRSxDaGV2cm9uTGFzdDooKT0+cUUsQ2hldnJvbkxlZnQ6KCk9PlZFLENoZXZyb25MZWZ0Q2lyY2xlOigpPT5ZbSxDaGV2cm9uTGVmdFNxdWFyZTooKT0+dTcsQ2hldnJvblJpZ2h0OigpPT5qRSxDaGV2cm9uUmlnaHRDaXJjbGU6KCk9PkttLENoZXZyb25SaWdodFNxdWFyZTooKT0+cDcsQ2hldnJvblVwOigpPT5VRSxDaGV2cm9uVXBDaXJjbGU6KCk9PlptLENoZXZyb25VcFNxdWFyZTooKT0+ZjcsQ2hldnJvbnNEb3duOigpPT5HRSxDaGV2cm9uc0Rvd25VcDooKT0+V0UsQ2hldnJvbnNMZWZ0OigpPT5RRSxDaGV2cm9uc0xlZnRSaWdodDooKT0+S0UsQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczooKT0+WUUsQ2hldnJvbnNSaWdodDooKT0+WEUsQ2hldnJvbnNSaWdodExlZnQ6KCk9PlpFLENoZXZyb25zVXA6KCk9PmVJLENoZXZyb25zVXBEb3duOigpPT5KRSxDaHVyY2g6KCk9PnRJLENpZ2FyZXR0ZTooKT0+YUksQ2lnYXJldHRlT2ZmOigpPT5ySSxDaXJjbGU6KCk9PnhJLENpcmNsZUFsZXJ0OigpPT5ObSxDaXJjbGVBcnJvd0Rvd246KCk9Pk9tLENpcmNsZUFycm93TGVmdDooKT0+Um0sQ2lyY2xlQXJyb3dPdXREb3duTGVmdDooKT0+Rm0sQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6KCk9PkJtLENpcmNsZUFycm93T3V0VXBMZWZ0OigpPT5IbSxDaXJjbGVBcnJvd091dFVwUmlnaHQ6KCk9PnFtLENpcmNsZUFycm93UmlnaHQ6KCk9PlZtLENpcmNsZUFycm93VXA6KCk9PmptLENpcmNsZUNoZWNrOigpPT5XbSxDaXJjbGVDaGVja0JpZzooKT0+VW0sQ2lyY2xlQ2hldnJvbkRvd246KCk9PkdtLENpcmNsZUNoZXZyb25MZWZ0OigpPT5ZbSxDaXJjbGVDaGV2cm9uUmlnaHQ6KCk9PkttLENpcmNsZUNoZXZyb25VcDooKT0+Wm0sQ2lyY2xlRGFzaGVkOigpPT5pSSxDaXJjbGVEaXZpZGU6KCk9PlFtLENpcmNsZURvbGxhclNpZ246KCk9PnNJLENpcmNsZURvdDooKT0+b0ksQ2lyY2xlRG90RGFzaGVkOigpPT5uSSxDaXJjbGVFbGxpcHNpczooKT0+bEksQ2lyY2xlRXF1YWw6KCk9PmNJLENpcmNsZUZhZGluZ0Fycm93VXA6KCk9PmRJLENpcmNsZUZhZGluZ1BsdXM6KCk9PnVJLENpcmNsZUdhdWdlOigpPT5YbSxDaXJjbGVIZWxwOigpPT5INCxDaXJjbGVNaW51czooKT0+Sm0sQ2lyY2xlT2ZmOigpPT5wSSxDaXJjbGVQYXJraW5nOigpPT5lNSxDaXJjbGVQYXJraW5nT2ZmOigpPT50NSxDaXJjbGVQYXVzZTooKT0+YTUsQ2lyY2xlUGVyY2VudDooKT0+cjUsQ2lyY2xlUGlsZTooKT0+ZkksQ2lyY2xlUGxheTooKT0+aTUsQ2lyY2xlUGx1czooKT0+czUsQ2lyY2xlUG91bmRTdGVybGluZzooKT0+aEksQ2lyY2xlUG93ZXI6KCk9Pm41LENpcmNsZVF1ZXN0aW9uTWFyazooKT0+SDQsQ2lyY2xlU2xhc2g6KCk9Pm1JLENpcmNsZVNsYXNoMjooKT0+bzUsQ2lyY2xlU2xhc2hlZDooKT0+bzUsQ2lyY2xlU21hbGw6KCk9PmdJLENpcmNsZVN0YXI6KCk9PmJJLENpcmNsZVN0b3A6KCk9Pmw1LENpcmNsZVVzZXI6KCk9PmQ1LENpcmNsZVVzZXJSb3VuZDooKT0+YzUsQ2lyY2xlWDooKT0+dTUsQ2lyY3VpdEJvYXJkOigpPT52SSxDaXRydXM6KCk9PmtJLENsYXBwZXJib2FyZDooKT0+eUksQ2xpcGJvYXJkOigpPT4kSSxDbGlwYm9hcmRDaGVjazooKT0+d0ksQ2xpcGJvYXJkQ2xvY2s6KCk9PlNJLENsaXBib2FyZENvcHk6KCk9Pk1JLENsaXBib2FyZEVkaXQ6KCk9PmY1LENsaXBib2FyZExpc3Q6KCk9PkNJLENsaXBib2FyZE1pbnVzOigpPT56SSxDbGlwYm9hcmRQYXN0ZTooKT0+X0ksQ2xpcGJvYXJkUGVuOigpPT5mNSxDbGlwYm9hcmRQZW5MaW5lOigpPT5wNSxDbGlwYm9hcmRQbHVzOigpPT5USSxDbGlwYm9hcmRTaWduYXR1cmU6KCk9PnA1LENsaXBib2FyZFR5cGU6KCk9PkxJLENsaXBib2FyZFg6KCk9PkRJLENsb2NrOigpPT5aSSxDbG9jazE6KCk9PkFJLENsb2NrMTA6KCk9PkVJLENsb2NrMTE6KCk9PklJLENsb2NrMTI6KCk9PlBJLENsb2NrMjooKT0+TkksQ2xvY2szOigpPT5PSSxDbG9jazQ6KCk9PlJJLENsb2NrNTooKT0+RkksQ2xvY2s2OigpPT5CSSxDbG9jazc6KCk9PkhJLENsb2NrODooKT0+cUksQ2xvY2s5OigpPT5WSSxDbG9ja0FsZXJ0OigpPT5qSSxDbG9ja0Fycm93RG93bjooKT0+VUksQ2xvY2tBcnJvd1VwOigpPT5XSSxDbG9ja0NoZWNrOigpPT5HSSxDbG9ja0ZhZGluZzooKT0+WUksQ2xvY2tQbHVzOigpPT5LSSxDbG9zZWRDYXB0aW9uOigpPT5RSSxDbG91ZDooKT0+Z1AsQ2xvdWRBbGVydDooKT0+WEksQ2xvdWRCYWNrdXA6KCk9PkpJLENsb3VkQ2hlY2s6KCk9PmVQLENsb3VkQ29nOigpPT50UCxDbG91ZERvd25sb2FkOigpPT5oNSxDbG91ZERyaXp6bGU6KCk9PnJQLENsb3VkRm9nOigpPT5hUCxDbG91ZEhhaWw6KCk9PmlQLENsb3VkTGlnaHRuaW5nOigpPT5zUCxDbG91ZE1vb246KCk9Pm9QLENsb3VkTW9vblJhaW46KCk9Pm5QLENsb3VkT2ZmOigpPT5kUCxDbG91ZFJhaW46KCk9PmNQLENsb3VkUmFpbldpbmQ6KCk9PmxQLENsb3VkU25vdzooKT0+dVAsQ2xvdWRTdW46KCk9PmZQLENsb3VkU3VuUmFpbjooKT0+cFAsQ2xvdWRTeW5jOigpPT5oUCxDbG91ZFVwbG9hZDooKT0+bTUsQ2xvdWR5OigpPT5tUCxDbG92ZXI6KCk9PmJQLENsdWI6KCk9PnhQLENvZGU6KCk9PnZQLENvZGUyOigpPT5nNSxDb2RlU3F1YXJlOigpPT5oNyxDb2RlWG1sOigpPT5nNSxDb2ZmZWU6KCk9PnlQLENvZzooKT0+a1AsQ29pbnM6KCk9PndQLENvbHVtbnM6KCk9Png1LENvbHVtbnMyOigpPT54NSxDb2x1bW5zMzooKT0+YjUsQ29sdW1uczNDb2c6KCk9PnE0LENvbHVtbnM0OigpPT5TUCxDb2x1bW5zU2V0dGluZ3M6KCk9PnE0LENvbWJpbmU6KCk9Pk1QLENvbW1hbmQ6KCk9PkNQLENvbXBhc3M6KCk9PnpQLENvbXBvbmVudDooKT0+X1AsQ29tcHV0ZXI6KCk9PlRQLENvbmNpZXJnZUJlbGw6KCk9PkxQLENvbmU6KCk9PkRQLENvbnN0cnVjdGlvbjooKT0+JFAsQ29udGFjdDooKT0+RVAsQ29udGFjdDI6KCk9PnY1LENvbnRhY3RSb3VuZDooKT0+djUsQ29udGFpbmVyOigpPT5BUCxDb250cmFzdDooKT0+SVAsQ29va2llOigpPT5QUCxDb29raW5nUG90OigpPT5OUCxDb3B5OigpPT5xUCxDb3B5Q2hlY2s6KCk9Pk9QLENvcHlNaW51czooKT0+UlAsQ29weVBsdXM6KCk9PkZQLENvcHlTbGFzaDooKT0+QlAsQ29weVg6KCk9PkhQLENvcHlsZWZ0OigpPT5WUCxDb3B5cmlnaHQ6KCk9PmpQLENvcm5lckRvd25MZWZ0OigpPT5VUCxDb3JuZXJEb3duUmlnaHQ6KCk9PldQLENvcm5lckxlZnREb3duOigpPT5HUCxDb3JuZXJMZWZ0VXA6KCk9PllQLENvcm5lclJpZ2h0RG93bjooKT0+S1AsQ29ybmVyUmlnaHRVcDooKT0+WlAsQ29ybmVyVXBMZWZ0OigpPT5RUCxDb3JuZXJVcFJpZ2h0OigpPT5YUCxDcHU6KCk9PkpQLENyZWF0aXZlQ29tbW9uczooKT0+dE4sQ3JlZGl0Q2FyZDooKT0+ZU4sQ3JvaXNzYW50OigpPT5yTixDcm9wOigpPT5hTixDcm9zczooKT0+aU4sQ3Jvc3NoYWlyOigpPT5zTixDcm93bjooKT0+bk4sQ3Vib2lkOigpPT5vTixDdXBTb2RhOigpPT5sTixDdXJseUJyYWNlczooKT0+d20sQ3VycmVuY3k6KCk9PmNOLEN5bGluZGVyOigpPT5kTixEYW06KCk9PnVOLERhdGFiYXNlOigpPT5tTixEYXRhYmFzZUJhY2t1cDooKT0+cE4sRGF0YWJhc2VTZWFyY2g6KCk9PmZOLERhdGFiYXNlWmFwOigpPT5oTixEZWNpbWFsc0Fycm93TGVmdDooKT0+Z04sRGVjaW1hbHNBcnJvd1JpZ2h0OigpPT5iTixEZWxldGU6KCk9PnhOLERlc3NlcnQ6KCk9PnZOLERpYW1ldGVyOigpPT55TixEaWFtb25kOigpPT5rTixEaWFtb25kTWludXM6KCk9PndOLERpYW1vbmRQZXJjZW50OigpPT55NSxEaWFtb25kUGx1czooKT0+U04sRGljZTE6KCk9Pk1OLERpY2UyOigpPT5DTixEaWNlMzooKT0+VE4sRGljZTQ6KCk9PnpOLERpY2U1OigpPT5fTixEaWNlNjooKT0+TE4sRGljZXM6KCk9PkROLERpZmY6KCk9PiROLERpc2M6KCk9PlBOLERpc2MyOigpPT5BTixEaXNjMzooKT0+RU4sRGlzY0FsYnVtOigpPT5JTixEaXZpZGU6KCk9Pk5OLERpdmlkZUNpcmNsZTooKT0+UW0sRGl2aWRlU3F1YXJlOigpPT54NyxEbmE6KCk9Pk9OLERuYU9mZjooKT0+Rk4sRG9jazooKT0+Uk4sRG9nOigpPT5CTixEb2xsYXJTaWduOigpPT5ITixEb251dDooKT0+cU4sRG9vckNsb3NlZDooKT0+VU4sRG9vckNsb3NlZExvY2tlZDooKT0+ak4sRG9vck9wZW46KCk9PlZOLERvdDooKT0+V04sRG90U3F1YXJlOigpPT52NyxEb3dubG9hZDooKT0+R04sRG93bmxvYWRDbG91ZDooKT0+aDUsRHJhZnRpbmdDb21wYXNzOigpPT5ZTixEcmFtYTooKT0+S04sRHJpbGw6KCk9PlpOLERyb25lOigpPT5RTixEcm9wbGV0OigpPT5KTixEcm9wbGV0T2ZmOigpPT5YTixEcm9wbGV0czooKT0+ZU8sRHJ1bTooKT0+ck8sRHJ1bXN0aWNrOigpPT50TyxEdW1iYmVsbDooKT0+YU8sRWFyOigpPT5zTyxFYXJPZmY6KCk9PmlPLEVhcnRoOigpPT53NSxFYXJ0aExvY2s6KCk9Pm5PLEVjbGlwc2U6KCk9Pm9PLEVkaXQ6KCk9PmRjLEVkaXQyOigpPT5FOCxFZGl0MzooKT0+QTgsRWdnOigpPT51TyxFZ2dGcmllZDooKT0+Y08sRWdnT2ZmOigpPT5sTyxFbGxpcHNlOigpPT5kTyxFbGxpcHNpczooKT0+UzUsRWxsaXBzaXNWZXJ0aWNhbDooKT0+azUsRXF1YWw6KCk9PmhPLEVxdWFsQXBwcm94aW1hdGVseTooKT0+cE8sRXF1YWxOb3Q6KCk9PmZPLEVxdWFsU3F1YXJlOigpPT55NyxFcmFzZXI6KCk9Pm1PLEV0aGVybmV0UG9ydDooKT0+Z08sRXVybzooKT0+Yk8sRXZDaGFyZ2VyOigpPT54TyxFeHBhbmQ6KCk9PnZPLEV4dGVybmFsTGluazooKT0+eU8sRXllOigpPT5TTyxFeWVDbG9zZWQ6KCk9PmtPLEV5ZU9mZjooKT0+d08sRmFjdG9yeTooKT0+TU8sRmFuOigpPT5DTyxGYXN0Rm9yd2FyZDooKT0+ek8sRmVhdGhlcjooKT0+X08sRmVuY2U6KCk9PlRPLEZlcnJpc1doZWVsOigpPT5MTyxGaWxlOigpPT5pUixGaWxlQXJjaGl2ZTooKT0+RE8sRmlsZUF1ZGlvOigpPT5WNCxGaWxlQXVkaW8yOigpPT5WNCxGaWxlQXhpczNEOigpPT5NNSxGaWxlQXhpczNkOigpPT5NNSxGaWxlQmFkZ2U6KCk9PkM1LEZpbGVCYWRnZTI6KCk9PkM1LEZpbGVCYXJDaGFydDooKT0+TDUsRmlsZUJhckNoYXJ0MjooKT0+VDUsRmlsZUJveDooKT0+JE8sRmlsZUJyYWNlczooKT0+XzUsRmlsZUJyYWNlc0Nvcm5lcjooKT0+ejUsRmlsZUNoYXJ0Q29sdW1uOigpPT5UNSxGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5MNSxGaWxlQ2hhcnRMaW5lOigpPT5ENSxGaWxlQ2hhcnRQaWU6KCk9PiQ1LEZpbGVDaGVjazooKT0+QU8sRmlsZUNoZWNrMjooKT0+QTUsRmlsZUNoZWNrQ29ybmVyOigpPT5BNSxGaWxlQ2xvY2s6KCk9PkVPLEZpbGVDb2RlOigpPT5JTyxGaWxlQ29kZTI6KCk9PkU1LEZpbGVDb2RlQ29ybmVyOigpPT5FNSxGaWxlQ29nOigpPT5JNSxGaWxlQ29nMjooKT0+STUsRmlsZURpZmY6KCk9PlBPLEZpbGVEaWdpdDooKT0+Tk8sRmlsZURvd246KCk9Pk9PLEZpbGVFZGl0OigpPT5CNSxGaWxlRXhjbGFtYXRpb25Qb2ludDooKT0+UDUsRmlsZUhlYWRwaG9uZTooKT0+VjQsRmlsZUhlYXJ0OigpPT5GTyxGaWxlSW1hZ2U6KCk9PlJPLEZpbGVJbnB1dDooKT0+Qk8sRmlsZUpzb246KCk9Pl81LEZpbGVKc29uMjooKT0+ejUsRmlsZUtleTooKT0+TjUsRmlsZUtleTI6KCk9Pk41LEZpbGVMaW5lQ2hhcnQ6KCk9PkQ1LEZpbGVMb2NrOigpPT5PNSxGaWxlTG9jazI6KCk9Pk81LEZpbGVNaW51czooKT0+cU8sRmlsZU1pbnVzMjooKT0+UjUsRmlsZU1pbnVzQ29ybmVyOigpPT5SNSxGaWxlTXVzaWM6KCk9PkhPLEZpbGVPdXRwdXQ6KCk9PlZPLEZpbGVQZW46KCk9PkI1LEZpbGVQZW5MaW5lOigpPT5GNSxGaWxlUGllQ2hhcnQ6KCk9PiQ1LEZpbGVQbGF5OigpPT5INSxGaWxlUGx1czooKT0+ak8sRmlsZVBsdXMyOigpPT5xNSxGaWxlUGx1c0Nvcm5lcjooKT0+cTUsRmlsZVF1ZXN0aW9uOigpPT5WNSxGaWxlUXVlc3Rpb25NYXJrOigpPT5WNSxGaWxlU2NhbjooKT0+VU8sRmlsZVNlYXJjaDooKT0+V08sRmlsZVNlYXJjaDI6KCk9Pmo1LEZpbGVTZWFyY2hDb3JuZXI6KCk9Pmo1LEZpbGVTaWduYWw6KCk9PlU1LEZpbGVTaWduYXR1cmU6KCk9PkY1LEZpbGVTbGlkZXJzOigpPT5HTyxGaWxlU3ByZWFkc2hlZXQ6KCk9PllPLEZpbGVTdGFjazooKT0+S08sRmlsZVN5bWxpbms6KCk9PlpPLEZpbGVUZXJtaW5hbDooKT0+UU8sRmlsZVRleHQ6KCk9PlhPLEZpbGVUeXBlOigpPT5KTyxGaWxlVHlwZTI6KCk9Plc1LEZpbGVUeXBlQ29ybmVyOigpPT5XNSxGaWxlVXA6KCk9PmVSLEZpbGVVc2VyOigpPT50UixGaWxlVmlkZW86KCk9Pkg1LEZpbGVWaWRlbzI6KCk9Pkc1LEZpbGVWaWRlb0NhbWVyYTooKT0+RzUsRmlsZVZvbHVtZTooKT0+clIsRmlsZVZvbHVtZTI6KCk9PlU1LEZpbGVXYXJuaW5nOigpPT5QNSxGaWxlWDooKT0+YVIsRmlsZVgyOigpPT5ZNSxGaWxlWENvcm5lcjooKT0+WTUsRmlsZXM6KCk9PnNSLEZpbG06KCk9Pm5SLEZpbHRlcjooKT0+SjUsRmlsdGVyWDooKT0+WDUsRmluZ2VycHJpbnQ6KCk9Pks1LEZpbmdlcnByaW50UGF0dGVybjooKT0+SzUsRmlyZUV4dGluZ3Vpc2hlcjooKT0+b1IsRmlzaDooKT0+ZFIsRmlzaE9mZjooKT0+bFIsRmlzaFN5bWJvbDooKT0+Y1IsRmlzaGluZ0hvb2s6KCk9PnVSLEZpc2hpbmdSb2Q6KCk9PnBSLEZsYWc6KCk9Pm1SLEZsYWdPZmY6KCk9PmZSLEZsYWdUcmlhbmdsZUxlZnQ6KCk9PmhSLEZsYWdUcmlhbmdsZVJpZ2h0OigpPT5nUixGbGFtZTooKT0+eFIsRmxhbWVLaW5kbGluZzooKT0+YlIsRmxhc2hsaWdodDooKT0+eVIsRmxhc2hsaWdodE9mZjooKT0+dlIsRmxhc2tDb25pY2FsOigpPT5TUixGbGFza0NvbmljYWxPZmY6KCk9PndSLEZsYXNrUm91bmQ6KCk9PmtSLEZsaXBIb3Jpem9udGFsOigpPT5uNyxGbGlwSG9yaXpvbnRhbDI6KCk9Pk1SLEZsaXBWZXJ0aWNhbDooKT0+bzcsRmxpcFZlcnRpY2FsMjooKT0+Q1IsRmxvd2VyOigpPT5fUixGbG93ZXIyOigpPT56UixGb2N1czooKT0+TFIsRm9sZEhvcml6b250YWw6KCk9PlRSLEZvbGRWZXJ0aWNhbDooKT0+RFIsRm9sZGVyOigpPT5pRixGb2xkZXJBcmNoaXZlOigpPT4kUixGb2xkZXJDaGVjazooKT0+QVIsRm9sZGVyQ2xvY2s6KCk9PkVSLEZvbGRlckNsb3NlZDooKT0+SVIsRm9sZGVyQ29kZTooKT0+UFIsRm9sZGVyQ29nOigpPT5aNSxGb2xkZXJDb2cyOigpPT5aNSxGb2xkZXJEb3Q6KCk9Pk5SLEZvbGRlckRvd246KCk9Pk9SLEZvbGRlckVkaXQ6KCk9PlE1LEZvbGRlckdpdDooKT0+QlIsRm9sZGVyR2l0MjooKT0+UlIsRm9sZGVySGVhcnQ6KCk9PkZSLEZvbGRlcklucHV0OigpPT5IUixGb2xkZXJLYW5iYW46KCk9PnFSLEZvbGRlcktleTooKT0+VlIsRm9sZGVyTG9jazooKT0+alIsRm9sZGVyTWludXM6KCk9PlVSLEZvbGRlck9wZW46KCk9PkdSLEZvbGRlck9wZW5Eb3Q6KCk9PldSLEZvbGRlck91dHB1dDooKT0+WVIsRm9sZGVyUGVuOigpPT5RNSxGb2xkZXJQbHVzOigpPT5LUixGb2xkZXJSb290OigpPT5RUixGb2xkZXJTZWFyY2g6KCk9PlhSLEZvbGRlclNlYXJjaDI6KCk9PlpSLEZvbGRlclN5bWxpbms6KCk9PkpSLEZvbGRlclN5bmM6KCk9PmVGLEZvbGRlclRyZWU6KCk9PnRGLEZvbGRlclVwOigpPT5yRixGb2xkZXJYOigpPT5hRixGb2xkZXJzOigpPT5zRixGb290cHJpbnRzOigpPT5uRixGb3JrS25pZmU6KCk9PmQ5LEZvcmtLbmlmZUNyb3NzZWQ6KCk9PmM5LEZvcmtsaWZ0OigpPT5vRixGb3JtOigpPT5sRixGb3JtSW5wdXQ6KCk9PlA4LEZvcndhcmQ6KCk9PmNGLEZyYW1lOigpPT5kRixGcm93bjooKT0+dUYsRnVlbDooKT0+cEYsRnVsbHNjcmVlbjooKT0+ZkYsRnVuY3Rpb25TcXVhcmU6KCk9Pnc3LEZ1bm5lbDooKT0+SjUsRnVubmVsUGx1czooKT0+aEYsRnVubmVsWDooKT0+WDUsR2FsbGVyeUhvcml6b250YWw6KCk9PmdGLEdhbGxlcnlIb3Jpem9udGFsRW5kOigpPT5tRixHYWxsZXJ5VGh1bWJuYWlsczooKT0+YkYsR2FsbGVyeVZlcnRpY2FsOigpPT52RixHYWxsZXJ5VmVydGljYWxFbmQ6KCk9PnhGLEdhbWVwYWQ6KCk9PmtGLEdhbWVwYWQyOigpPT55RixHYW1lcGFkRGlyZWN0aW9uYWw6KCk9PndGLEdhbnR0Q2hhcnQ6KCk9PkVtLEdhbnR0Q2hhcnRTcXVhcmU6KCk9Pkc0LEdhdWdlOigpPT5TRixHYXVnZUNpcmNsZTooKT0+WG0sR2F2ZWw6KCk9Pk1GLEdlbTooKT0+Q0YsR2VvcmdpYW5MYXJpOigpPT56RixHaG9zdDooKT0+X0YsR2lmdDooKT0+VEYsR2l0QnJhbmNoOigpPT4kRixHaXRCcmFuY2hNaW51czooKT0+TEYsR2l0QnJhbmNoUGx1czooKT0+REYsR2l0Q29tbWl0OigpPT5lOCxHaXRDb21taXRIb3Jpem9udGFsOigpPT5lOCxHaXRDb21taXRWZXJ0aWNhbDooKT0+QUYsR2l0Q29tcGFyZTooKT0+SUYsR2l0Q29tcGFyZUFycm93czooKT0+RUYsR2l0Rm9yazooKT0+UEYsR2l0R3JhcGg6KCk9Pk5GLEdpdE1lcmdlOigpPT5SRixHaXRNZXJnZUNvbmZsaWN0OigpPT5PRixHaXRQdWxsUmVxdWVzdDooKT0+akYsR2l0UHVsbFJlcXVlc3RBcnJvdzooKT0+RkYsR2l0UHVsbFJlcXVlc3RDbG9zZWQ6KCk9PkJGLEdpdFB1bGxSZXF1ZXN0Q3JlYXRlOigpPT5xRixHaXRQdWxsUmVxdWVzdENyZWF0ZUFycm93OigpPT5IRixHaXRQdWxsUmVxdWVzdERyYWZ0OigpPT5WRixHbGFzc1dhdGVyOigpPT5VRixHbGFzc2VzOigpPT5XRixHbG9iZTooKT0+WkYsR2xvYmUyOigpPT53NSxHbG9iZUxvY2s6KCk9PkdGLEdsb2JlT2ZmOigpPT5ZRixHbG9iZVg6KCk9PktGLEdvYWw6KCk9PlFGLEdwdTooKT0+WEYsR3JhYjooKT0+czgsR3JhZHVhdGlvbkNhcDooKT0+SkYsR3JhcGU6KCk9PmVCLEdyaWQ6KCk9Pmo0LEdyaWQyWDI6KCk9Pmk4LEdyaWQyWDJDaGVjazooKT0+dDgsR3JpZDJYMlBsdXM6KCk9PnI4LEdyaWQyWDJYOigpPT5hOCxHcmlkMngyOigpPT5pOCxHcmlkMngyQ2hlY2s6KCk9PnQ4LEdyaWQyeDJQbHVzOigpPT5yOCxHcmlkMngyWDooKT0+YTgsR3JpZDNYMzooKT0+ajQsR3JpZDN4MjooKT0+dEIsR3JpZDN4MzooKT0+ajQsR3JpcDooKT0+aUIsR3JpcEhvcml6b250YWw6KCk9PnJCLEdyaXBWZXJ0aWNhbDooKT0+YUIsR3JvdXA6KCk9PnNCLEd1aXRhcjooKT0+bkIsSGFtOigpPT5vQixIYW1idXJnZXI6KCk9PmxCLEhhbW1lcjooKT0+Y0IsSGFuZDooKT0+bUIsSGFuZENvaW5zOigpPT5kQixIYW5kRmlzdDooKT0+dUIsSGFuZEdyYWI6KCk9PnM4LEhhbmRIZWFydDooKT0+cEIsSGFuZEhlbHBpbmc6KCk9Pm44LEhhbmRNZXRhbDooKT0+ZkIsSGFuZFBsYXR0ZXI6KCk9PmhCLEhhbmRiYWc6KCk9PmdCLEhhbmRzaGFrZTooKT0+YkIsSGFyZERyaXZlOigpPT55QixIYXJkRHJpdmVEb3dubG9hZDooKT0+eEIsSGFyZERyaXZlVXBsb2FkOigpPT52QixIYXJkSGF0OigpPT53QixIYXNoOigpPT5rQixIYXRHbGFzc2VzOigpPT5TQixIYXplOigpPT5NQixIZDooKT0+Q0IsSGRtaVBvcnQ6KCk9PnpCLEhlYWRpbmc6KCk9PkVCLEhlYWRpbmcxOigpPT5MQixIZWFkaW5nMjooKT0+X0IsSGVhZGluZzM6KCk9PlRCLEhlYWRpbmc0OigpPT5EQixIZWFkaW5nNTooKT0+JEIsSGVhZGluZzY6KCk9PkFCLEhlYWRwaG9uZU9mZjooKT0+SUIsSGVhZHBob25lczooKT0+UEIsSGVhZHNldDooKT0+TkIsSGVhcnQ6KCk9PnFCLEhlYXJ0Q3JhY2s6KCk9Pk9CLEhlYXJ0SGFuZHNoYWtlOigpPT5SQixIZWFydE1pbnVzOigpPT5GQixIZWFydE9mZjooKT0+QkIsSGVhcnRQbHVzOigpPT5IQixIZWFydFB1bHNlOigpPT5WQixIZWF0ZXI6KCk9PmpCLEhlbGljb3B0ZXI6KCk9PldCLEhlbHBDaXJjbGU6KCk9Pkg0LEhlbHBpbmdIYW5kOigpPT5uOCxIZXhhZ29uOigpPT5VQixIaWdobGlnaHRlcjooKT0+R0IsSGlzdG9yeTooKT0+WUIsSG9tZTooKT0+bzgsSG9wOigpPT5aQixIb3BPZmY6KCk9PktCLEhvc3BpdGFsOigpPT5RQixIb3RlbDooKT0+WEIsSG91cmdsYXNzOigpPT5KQixIb3VzZTooKT0+bzgsSG91c2VIZWFydDooKT0+ZUgsSG91c2VQbHVnOigpPT50SCxIb3VzZVBsdXM6KCk9PnJILEhvdXNlV2lmaTooKT0+YUgsSWNlQ3JlYW06KCk9PmM4LEljZUNyZWFtMjooKT0+bDgsSWNlQ3JlYW1Cb3dsOigpPT5sOCxJY2VDcmVhbUNvbmU6KCk9PmM4LElkQ2FyZDooKT0+c0gsSWRDYXJkTGFueWFyZDooKT0+aUgsSW1hZ2U6KCk9PmZILEltYWdlRG93bjooKT0+bkgsSW1hZ2VNaW51czooKT0+b0gsSW1hZ2VPZmY6KCk9PmxILEltYWdlUGxheTooKT0+Y0gsSW1hZ2VQbHVzOigpPT5kSCxJbWFnZVVwOigpPT51SCxJbWFnZVVwc2NhbGU6KCk9PnBILEltYWdlczooKT0+aEgsSW1wb3J0OigpPT5tSCxJbmJveDooKT0+Z0gsSW5kZW50OigpPT5XNCxJbmRlbnREZWNyZWFzZTooKT0+VTQsSW5kZW50SW5jcmVhc2U6KCk9Plc0LEluZGlhblJ1cGVlOigpPT5iSCxJbmZpbml0eTooKT0+eEgsSW5mbzooKT0+dkgsSW5zcGVjdDooKT0+XzcsSW5zcGVjdGlvblBhbmVsOigpPT55SCxJdGFsaWM6KCk9PndILEl0ZXJhdGlvbkNjdzooKT0+a0gsSXRlcmF0aW9uQ3c6KCk9PlNILEphcGFuZXNlWWVuOigpPT5NSCxKb3lzdGljazooKT0+Q0gsS2FuYmFuOigpPT56SCxLYW5iYW5TcXVhcmU6KCk9Pms3LEthbmJhblNxdWFyZURhc2hlZDooKT0+bTcsS2F5YWs6KCk9Pl9ILEtleTooKT0+JEgsS2V5Um91bmQ6KCk9PlRILEtleVNxdWFyZTooKT0+TEgsS2V5Ym9hcmQ6KCk9PkVILEtleWJvYXJkTXVzaWM6KCk9PkRILEtleWJvYXJkT2ZmOigpPT5BSCxMYW1wOigpPT5GSCxMYW1wQ2VpbGluZzooKT0+SUgsTGFtcERlc2s6KCk9PlBILExhbXBGbG9vcjooKT0+TkgsTGFtcFdhbGxEb3duOigpPT5PSCxMYW1wV2FsbFVwOigpPT5SSCxMYW5kUGxvdDooKT0+QkgsTGFuZG1hcms6KCk9PkhILExhbmd1YWdlczooKT0+cUgsTGFwdG9wOigpPT5qSCxMYXB0b3AyOigpPT5kOCxMYXB0b3BNaW5pbWFsOigpPT5kOCxMYXB0b3BNaW5pbWFsQ2hlY2s6KCk9PlZILExhc3NvOigpPT5XSCxMYXNzb1NlbGVjdDooKT0+VUgsTGF1Z2g6KCk9PkdILExheWVyczooKT0+dTgsTGF5ZXJzMjooKT0+WUgsTGF5ZXJzMzooKT0+dTgsTGF5ZXJzUGx1czooKT0+S0gsTGF5b3V0OigpPT4kOCxMYXlvdXREYXNoYm9hcmQ6KCk9PlhILExheW91dEdyaWQ6KCk9PlpILExheW91dExpc3Q6KCk9PlFILExheW91dFBhbmVsTGVmdDooKT0+SkgsTGF5b3V0UGFuZWxUb3A6KCk9PmVxLExheW91dFRlbXBsYXRlOigpPT50cSxMZWFmOigpPT5hcSxMZWFmeUdyZWVuOigpPT5ycSxMZWN0ZXJuOigpPT5pcSxMZW5zQ29uY2F2ZTooKT0+c3EsTGVuc0NvbnZleDooKT0+bnEsTGV0dGVyVGV4dDooKT0+SzcsTGlicmFyeTooKT0+Y3EsTGlicmFyeUJpZzooKT0+b3EsTGlicmFyeVNxdWFyZTooKT0+UzcsTGlmZUJ1b3k6KCk9PmxxLExpZ2F0dXJlOigpPT5kcSxMaWdodGJ1bGI6KCk9PnBxLExpZ2h0YnVsYk9mZjooKT0+dXEsTGluZUNoYXJ0OigpPT5EbSxMaW5lRG90UmlnaHRIb3Jpem9udGFsOigpPT5mcSxMaW5lU3F1aWdnbGU6KCk9PmhxLExpbmVTdHlsZTooKT0+bXEsTGluazooKT0+eHEsTGluazI6KCk9PmJxLExpbmsyT2ZmOigpPT5ncSxMaXN0OigpPT5PcSxMaXN0Q2hlY2s6KCk9PnZxLExpc3RDaGVja3M6KCk9PnlxLExpc3RDaGV2cm9uc0Rvd25VcDooKT0+d3EsTGlzdENoZXZyb25zVXBEb3duOigpPT5rcSxMaXN0Q29sbGFwc2U6KCk9Pk1xLExpc3RFbmQ6KCk9PlNxLExpc3RGaWx0ZXI6KCk9PnpxLExpc3RGaWx0ZXJQbHVzOigpPT5DcSxMaXN0SW5kZW50RGVjcmVhc2U6KCk9PlU0LExpc3RJbmRlbnRJbmNyZWFzZTooKT0+VzQsTGlzdE1pbnVzOigpPT5fcSxMaXN0TXVzaWM6KCk9PlRxLExpc3RPcmRlcmVkOigpPT5McSxMaXN0UGx1czooKT0+RHEsTGlzdFJlc3RhcnQ6KCk9PiRxLExpc3RTdGFydDooKT0+QXEsTGlzdFRvZG86KCk9PkVxLExpc3RUcmVlOigpPT5JcSxMaXN0VmlkZW86KCk9Pk5xLExpc3RYOigpPT5QcSxMb2FkZXI6KCk9PkZxLExvYWRlcjI6KCk9PnA4LExvYWRlckNpcmNsZTooKT0+cDgsTG9hZGVyUGlud2hlZWw6KCk9PlJxLExvY2F0ZTooKT0+cXEsTG9jYXRlRml4ZWQ6KCk9PkJxLExvY2F0ZU9mZjooKT0+SHEsTG9jYXRpb25FZGl0OigpPT5nOCxMb2NrOigpPT5qcSxMb2NrS2V5aG9sZTooKT0+VnEsTG9ja0tleWhvbGVPcGVuOigpPT5mOCxMb2NrT3BlbjooKT0+aDgsTG9nSW46KCk9PlVxLExvZ091dDooKT0+WXEsTG9nczooKT0+V3EsTG9sbGlwb3A6KCk9PktxLEx1Z2dhZ2U6KCk9PkdxLE1TcXVhcmU6KCk9Pk03LE1hZ25ldDooKT0+UXEsTWFpbDooKT0+YVYsTWFpbENoZWNrOigpPT5acSxNYWlsTWludXM6KCk9PlhxLE1haWxPcGVuOigpPT5lVixNYWlsUGx1czooKT0+SnEsTWFpbFF1ZXN0aW9uOigpPT5tOCxNYWlsUXVlc3Rpb25NYXJrOigpPT5tOCxNYWlsU2VhcmNoOigpPT50VixNYWlsV2FybmluZzooKT0+clYsTWFpbFg6KCk9PmlWLE1haWxib3g6KCk9PnNWLE1haWxzOigpPT5uVixNYXA6KCk9PmtWLE1hcE1pbnVzOigpPT5vVixNYXBQaW46KCk9PnZWLE1hcFBpbkNoZWNrOigpPT5jVixNYXBQaW5DaGVja0luc2lkZTooKT0+bFYsTWFwUGluSG91c2U6KCk9PmRWLE1hcFBpbk1pbnVzOigpPT5wVixNYXBQaW5NaW51c0luc2lkZTooKT0+dVYsTWFwUGluT2ZmOigpPT5mVixNYXBQaW5QZW46KCk9Pmc4LE1hcFBpblBsdXM6KCk9Pm1WLE1hcFBpblBsdXNJbnNpZGU6KCk9PmhWLE1hcFBpblNlYXJjaDooKT0+Z1YsTWFwUGluWDooKT0+eFYsTWFwUGluWEluc2lkZTooKT0+YlYsTWFwUGlubmVkOigpPT55VixNYXBQbHVzOigpPT53VixNYXJzOigpPT5NVixNYXJzU3Ryb2tlOigpPT5TVixNYXJ0aW5pOigpPT5DVixNYXhpbWl6ZTooKT0+X1YsTWF4aW1pemUyOigpPT56VixNZWRhbDooKT0+VFYsTWVnYXBob25lOigpPT5EVixNZWdhcGhvbmVPZmY6KCk9PkxWLE1laDooKT0+JFYsTWVtb3J5U3RpY2s6KCk9PkFWLE1lbnU6KCk9PkVWLE1lbnVTcXVhcmU6KCk9PkM3LE1lcmdlOigpPT5JVixNZXNzYWdlQ2lyY2xlOigpPT5VVixNZXNzYWdlQ2lyY2xlQ2hlY2s6KCk9PlBWLE1lc3NhZ2VDaXJjbGVDb2RlOigpPT5OVixNZXNzYWdlQ2lyY2xlRGFzaGVkOigpPT5PVixNZXNzYWdlQ2lyY2xlSGVhcnQ6KCk9PlJWLE1lc3NhZ2VDaXJjbGVNb3JlOigpPT5GVixNZXNzYWdlQ2lyY2xlT2ZmOigpPT5CVixNZXNzYWdlQ2lyY2xlUGx1czooKT0+SFYsTWVzc2FnZUNpcmNsZVF1ZXN0aW9uOigpPT5iOCxNZXNzYWdlQ2lyY2xlUXVlc3Rpb25NYXJrOigpPT5iOCxNZXNzYWdlQ2lyY2xlUmVwbHk6KCk9PnFWLE1lc3NhZ2VDaXJjbGVXYXJuaW5nOigpPT5WVixNZXNzYWdlQ2lyY2xlWDooKT0+alYsTWVzc2FnZVNxdWFyZTooKT0+Y2osTWVzc2FnZVNxdWFyZUNoZWNrOigpPT5XVixNZXNzYWdlU3F1YXJlQ29kZTooKT0+R1YsTWVzc2FnZVNxdWFyZURhc2hlZDooKT0+WVYsTWVzc2FnZVNxdWFyZURpZmY6KCk9PktWLE1lc3NhZ2VTcXVhcmVEb3Q6KCk9PlpWLE1lc3NhZ2VTcXVhcmVIZWFydDooKT0+UVYsTWVzc2FnZVNxdWFyZUxvY2s6KCk9PlhWLE1lc3NhZ2VTcXVhcmVNb3JlOigpPT5KVixNZXNzYWdlU3F1YXJlT2ZmOigpPT5laixNZXNzYWdlU3F1YXJlUGx1czooKT0+dGosTWVzc2FnZVNxdWFyZVF1b3RlOigpPT5yaixNZXNzYWdlU3F1YXJlUmVwbHk6KCk9PmFqLE1lc3NhZ2VTcXVhcmVTaGFyZTooKT0+aWosTWVzc2FnZVNxdWFyZVRleHQ6KCk9PnNqLE1lc3NhZ2VTcXVhcmVXYXJuaW5nOigpPT5uaixNZXNzYWdlU3F1YXJlWDooKT0+b2osTWVzc2FnZXNTcXVhcmU6KCk9PmxqLE1ldHJvbm9tZTooKT0+ZGosTWljOigpPT5waixNaWMyOigpPT54OCxNaWNPZmY6KCk9PnVqLE1pY1ZvY2FsOigpPT54OCxNaWNyb2NoaXA6KCk9PmZqLE1pY3Jvc2NvcGU6KCk9PmhqLE1pY3Jvd2F2ZTooKT0+bWosTWlsZXN0b25lOigpPT5naixNaWxrOigpPT54aixNaWxrT2ZmOigpPT5iaixNaW5pbWl6ZTooKT0+eWosTWluaW1pemUyOigpPT52aixNaW51czooKT0+d2osTWludXNDaXJjbGU6KCk9PkptLE1pbnVzU3F1YXJlOigpPT56NyxNaXJyb3JSZWN0YW5ndWxhcjooKT0+a2osTWlycm9yUm91bmQ6KCk9PlNqLE1vbml0b3I6KCk9Pk9qLE1vbml0b3JDaGVjazooKT0+TWosTW9uaXRvckNsb3VkOigpPT5DaixNb25pdG9yQ29nOigpPT56aixNb25pdG9yRG90OigpPT5faixNb25pdG9yRG93bjooKT0+VGosTW9uaXRvck9mZjooKT0+TGosTW9uaXRvclBhdXNlOigpPT5EaixNb25pdG9yUGxheTooKT0+JGosTW9uaXRvclNtYXJ0cGhvbmU6KCk9PkFqLE1vbml0b3JTcGVha2VyOigpPT5FaixNb25pdG9yU3RvcDooKT0+SWosTW9uaXRvclVwOigpPT5QaixNb25pdG9yWDooKT0+TmosTW9vbjooKT0+RmosTW9vblN0YXI6KCk9PlJqLE1vcmVIb3Jpem9udGFsOigpPT5TNSxNb3JlVmVydGljYWw6KCk9Pms1LE1vdG9yYmlrZTooKT0+QmosTW91bnRhaW46KCk9PnFqLE1vdW50YWluU25vdzooKT0+SGosTW91c2U6KCk9PlFqLE1vdXNlTGVmdDooKT0+VmosTW91c2VPZmY6KCk9PmpqLE1vdXNlUG9pbnRlcjooKT0+WmosTW91c2VQb2ludGVyMjooKT0+R2osTW91c2VQb2ludGVyMk9mZjooKT0+VWosTW91c2VQb2ludGVyQmFuOigpPT5XaixNb3VzZVBvaW50ZXJDbGljazooKT0+WWosTW91c2VQb2ludGVyU3F1YXJlRGFzaGVkOigpPT5nNyxNb3VzZVJpZ2h0OigpPT5LaixNb3ZlOigpPT5kVSxNb3ZlM0Q6KCk9PnY4LE1vdmUzZDooKT0+djgsTW92ZURpYWdvbmFsOigpPT5YaixNb3ZlRGlhZ29uYWwyOigpPT5KaixNb3ZlRG93bjooKT0+clUsTW92ZURvd25MZWZ0OigpPT5lVSxNb3ZlRG93blJpZ2h0OigpPT50VSxNb3ZlSG9yaXpvbnRhbDooKT0+c1UsTW92ZUxlZnQ6KCk9PmFVLE1vdmVSaWdodDooKT0+aVUsTW92ZVVwOigpPT5sVSxNb3ZlVXBMZWZ0OigpPT5uVSxNb3ZlVXBSaWdodDooKT0+b1UsTW92ZVZlcnRpY2FsOigpPT5jVSxNdXNpYzooKT0+aFUsTXVzaWMyOigpPT51VSxNdXNpYzM6KCk9PnBVLE11c2ljNDooKT0+ZlUsTmF2aWdhdGlvbjooKT0+eFUsTmF2aWdhdGlvbjI6KCk9PmdVLE5hdmlnYXRpb24yT2ZmOigpPT5tVSxOYXZpZ2F0aW9uT2ZmOigpPT5iVSxOZXR3b3JrOigpPT52VSxOZXdzcGFwZXI6KCk9PnlVLE5mYzooKT0+a1UsTm9uQmluYXJ5OigpPT53VSxOb3RlYm9vazooKT0+elUsTm90ZWJvb2tQZW46KCk9PlNVLE5vdGVib29rVGFiczooKT0+TVUsTm90ZWJvb2tUZXh0OigpPT5DVSxOb3RlcGFkVGV4dDooKT0+VFUsTm90ZXBhZFRleHREYXNoZWQ6KCk9Pl9VLE51dDooKT0+RFUsTnV0T2ZmOigpPT5MVSxPY3RhZ29uOigpPT5BVSxPY3RhZ29uQWxlcnQ6KCk9Pnk4LE9jdGFnb25NaW51czooKT0+JFUsT2N0YWdvblBhdXNlOigpPT53OCxPY3RhZ29uWDooKT0+azgsT21lZ2E6KCk9PkVVLE9wdGlvbjooKT0+SVUsT3JiaXQ6KCk9Pk5VLE9yaWdhbWk6KCk9PlBVLE91dGRlbnQ6KCk9PlU0LFBhY2thZ2U6KCk9PmpVLFBhY2thZ2UyOigpPT5PVSxQYWNrYWdlQ2hlY2s6KCk9PlJVLFBhY2thZ2VNaW51czooKT0+RlUsUGFja2FnZU9wZW46KCk9PkJVLFBhY2thZ2VQbHVzOigpPT5IVSxQYWNrYWdlU2VhcmNoOigpPT5WVSxQYWNrYWdlWDooKT0+cVUsUGFpbnRCdWNrZXQ6KCk9PlVVLFBhaW50Um9sbGVyOigpPT5XVSxQYWludGJydXNoOigpPT5HVSxQYWludGJydXNoMjooKT0+UzgsUGFpbnRicnVzaFZlcnRpY2FsOigpPT5TOCxQYWxldHRlOigpPT5ZVSxQYWxtdHJlZTooKT0+WDcsUGFuZGE6KCk9PktVLFBhbmVsQm90dG9tOigpPT5RVSxQYW5lbEJvdHRvbUNsb3NlOigpPT5aVSxQYW5lbEJvdHRvbURhc2hlZDooKT0+TTgsUGFuZWxCb3R0b21JbmFjdGl2ZTooKT0+TTgsUGFuZWxCb3R0b21PcGVuOigpPT5YVSxQYW5lbExlZnQ6KCk9PlQ4LFBhbmVsTGVmdENsb3NlOigpPT5DOCxQYW5lbExlZnREYXNoZWQ6KCk9Pno4LFBhbmVsTGVmdEluYWN0aXZlOigpPT56OCxQYW5lbExlZnRPcGVuOigpPT5fOCxQYW5lbExlZnRSaWdodERhc2hlZDooKT0+SlUsUGFuZWxSaWdodDooKT0+clcsUGFuZWxSaWdodENsb3NlOigpPT5lVyxQYW5lbFJpZ2h0RGFzaGVkOigpPT5MOCxQYW5lbFJpZ2h0SW5hY3RpdmU6KCk9Pkw4LFBhbmVsUmlnaHRPcGVuOigpPT50VyxQYW5lbFRvcDooKT0+blcsUGFuZWxUb3BCb3R0b21EYXNoZWQ6KCk9PmFXLFBhbmVsVG9wQ2xvc2U6KCk9PmlXLFBhbmVsVG9wRGFzaGVkOigpPT5EOCxQYW5lbFRvcEluYWN0aXZlOigpPT5EOCxQYW5lbFRvcE9wZW46KCk9PnNXLFBhbmVsc0xlZnRCb3R0b206KCk9Pm9XLFBhbmVsc0xlZnRSaWdodDooKT0+YjUsUGFuZWxzUmlnaHRCb3R0b206KCk9PmxXLFBhbmVsc1RvcEJvdHRvbTooKT0+UjgsUGFuZWxzVG9wTGVmdDooKT0+JDgsUGFwZXJjbGlwOigpPT5jVyxQYXJlbnRoZXNlczooKT0+ZFcsUGFya2luZ0NpcmNsZTooKT0+ZTUsUGFya2luZ0NpcmNsZU9mZjooKT0+dDUsUGFya2luZ01ldGVyOigpPT51VyxQYXJraW5nU3F1YXJlOigpPT5MNyxQYXJraW5nU3F1YXJlT2ZmOigpPT5UNyxQYXJ0eVBvcHBlcjooKT0+ZlcsUGF1c2U6KCk9PnBXLFBhdXNlQ2lyY2xlOigpPT5hNSxQYXVzZU9jdGFnb246KCk9Pnc4LFBhd1ByaW50OigpPT5oVyxQY0Nhc2U6KCk9Pm1XLFBlbjooKT0+RTgsUGVuQm94OigpPT5kYyxQZW5MaW5lOigpPT5BOCxQZW5PZmY6KCk9PmdXLFBlblNxdWFyZTooKT0+ZGMsUGVuVG9vbDooKT0+YlcsUGVuY2lsOigpPT53VyxQZW5jaWxMaW5lOigpPT54VyxQZW5jaWxPZmY6KCk9PnZXLFBlbmNpbFJ1bGVyOigpPT55VyxQZW50YWdvbjooKT0+a1csUGVyY2VudDooKT0+U1csUGVyY2VudENpcmNsZTooKT0+cjUsUGVyY2VudERpYW1vbmQ6KCk9Pnk1LFBlcmNlbnRTcXVhcmU6KCk9PkQ3LFBlcnNvblN0YW5kaW5nOigpPT5NVyxQaGlsaXBwaW5lUGVzbzooKT0+Q1csUGhvbmU6KCk9PkFXLFBob25lQ2FsbDooKT0+elcsUGhvbmVGb3J3YXJkZWQ6KCk9Pl9XLFBob25lSW5jb21pbmc6KCk9PlRXLFBob25lTWlzc2VkOigpPT5MVyxQaG9uZU9mZjooKT0+RFcsUGhvbmVPdXRnb2luZzooKT0+JFcsUGk6KCk9PkVXLFBpU3F1YXJlOigpPT4kNyxQaWFubzooKT0+SVcsUGlja2F4ZTooKT0+UFcsUGljdHVyZUluUGljdHVyZTooKT0+T1csUGljdHVyZUluUGljdHVyZTI6KCk9Pk5XLFBpZUNoYXJ0OigpPT5JbSxQaWdneUJhbms6KCk9PlJXLFBpbGNyb3c6KCk9PkhXLFBpbGNyb3dMZWZ0OigpPT5GVyxQaWxjcm93UmlnaHQ6KCk9PkJXLFBpbGNyb3dTcXVhcmU6KCk9Pkk3LFBpbGw6KCk9PmpXLFBpbGxCb3R0bGU6KCk9PnFXLFBpbjooKT0+VVcsUGluT2ZmOigpPT5WVyxQaXBldHRlOigpPT5XVyxQaXp6YTooKT0+R1csUGxhbmU6KCk9PlpXLFBsYW5lTGFuZGluZzooKT0+WVcsUGxhbmVUYWtlb2ZmOigpPT5LVyxQbGF5OigpPT5RVyxQbGF5Q2lyY2xlOigpPT5pNSxQbGF5U3F1YXJlOigpPT5BNyxQbHVnOigpPT50RyxQbHVnMjooKT0+WFcsUGx1Z1phcDooKT0+STgsUGx1Z1phcDI6KCk9Pkk4LFBsdXM6KCk9PkpXLFBsdXNDaXJjbGU6KCk9PnM1LFBsdXNTcXVhcmU6KCk9PkU3LFBvY2tldEtuaWZlOigpPT5lRyxQb2RjYXN0OigpPT5yRyxQb2ludGVyOigpPT5uRyxQb2ludGVyT2ZmOigpPT5hRyxQb3Bjb3JuOigpPT5pRyxQb3BzaWNsZTooKT0+c0csUG91bmRTdGVybGluZzooKT0+b0csUG93ZXI6KCk9PmxHLFBvd2VyQ2lyY2xlOigpPT5uNSxQb3dlck9mZjooKT0+Y0csUG93ZXJTcXVhcmU6KCk9PlA3LFByZXNlbnRhdGlvbjooKT0+ZEcsUHJpbnRlcjooKT0+ZkcsUHJpbnRlckNoZWNrOigpPT51RyxQcmludGVyWDooKT0+cEcsUHJvamVjdG9yOigpPT5oRyxQcm9wb3J0aW9uczooKT0+bUcsUHV6emxlOigpPT5nRyxQeXJhbWlkOigpPT5iRyxRckNvZGU6KCk9PnhHLFF1b3RlOigpPT52RyxSYWJiaXQ6KCk9PnlHLFJhZGFyOigpPT53RyxSYWRpYXRpb246KCk9PmtHLFJhZGljYWw6KCk9PlNHLFJhZGlvOigpPT56RyxSYWRpb09mZjooKT0+TUcsUmFkaW9SZWNlaXZlcjooKT0+Q0csUmFkaW9Ub3dlcjooKT0+X0csUmFkaXVzOigpPT5URyxSYWluYm93OigpPT5MRyxSYXQ6KCk9PkRHLFJhdGlvOigpPT4kRyxSZWNlaXB0OigpPT5CRyxSZWNlaXB0Q2VudDooKT0+QUcsUmVjZWlwdEV1cm86KCk9PkVHLFJlY2VpcHRJbmRpYW5SdXBlZTooKT0+SUcsUmVjZWlwdEphcGFuZXNlWWVuOigpPT5QRyxSZWNlaXB0UG91bmRTdGVybGluZzooKT0+TkcsUmVjZWlwdFJ1c3NpYW5SdWJsZTooKT0+T0csUmVjZWlwdFN3aXNzRnJhbmM6KCk9PlJHLFJlY2VpcHRUZXh0OigpPT5GRyxSZWNlaXB0VHVya2lzaExpcmE6KCk9PkhHLFJlY3RhbmdsZUNpcmNsZTooKT0+cUcsUmVjdGFuZ2xlRWxsaXBzaXM6KCk9PlA4LFJlY3RhbmdsZUdvZ2dsZXM6KCk9PlZHLFJlY3RhbmdsZUhvcml6b250YWw6KCk9PmpHLFJlY3RhbmdsZVZlcnRpY2FsOigpPT5VRyxSZWN5Y2xlOigpPT5XRyxSZWRvOigpPT5LRyxSZWRvMjooKT0+R0csUmVkb0RvdDooKT0+WUcsUmVmcmVzaENjdzooKT0+UUcsUmVmcmVzaENjd0RvdDooKT0+WkcsUmVmcmVzaEN3OigpPT5KRyxSZWZyZXNoQ3dPZmY6KCk9PlhHLFJlZnJpZ2VyYXRvcjooKT0+ZVksUmVnZXg6KCk9PnRZLFJlbW92ZUZvcm1hdHRpbmc6KCk9PnJZLFJlcGVhdDooKT0+c1ksUmVwZWF0MTooKT0+YVksUmVwZWF0MjooKT0+aVksUmVwbGFjZTooKT0+b1ksUmVwbGFjZUFsbDooKT0+blksUmVwbHk6KCk9PmNZLFJlcGx5QWxsOigpPT5sWSxSZXdpbmQ6KCk9PmRZLFJpYmJvbjooKT0+dVksUm9hZDooKT0+cFksUm9ja2V0OigpPT5mWSxSb2NraW5nQ2hhaXI6KCk9PmhZLFJvbGxlckNvYXN0ZXI6KCk9Pm1ZLFJvc2U6KCk9PmdZLFJvdGF0ZTNEOigpPT5OOCxSb3RhdGUzZDooKT0+TjgsUm90YXRlQ2N3OigpPT55WSxSb3RhdGVDY3dLZXk6KCk9PmJZLFJvdGF0ZUNjd1NxdWFyZTooKT0+eFksUm90YXRlQ3c6KCk9PndZLFJvdGF0ZUN3U3F1YXJlOigpPT52WSxSb3V0ZTooKT0+U1ksUm91dGVPZmY6KCk9PmtZLFJvdXRlcjooKT0+TVksUm93czooKT0+TzgsUm93czI6KCk9Pk84LFJvd3MzOigpPT5SOCxSb3dzNDooKT0+Q1ksUnNzOigpPT56WSxSdWxlcjooKT0+VFksUnVsZXJEaW1lbnNpb25MaW5lOigpPT5fWSxSdXNzaWFuUnVibGU6KCk9PkxZLFNhaWxib2F0OigpPT5EWSxTYWxhZDooKT0+JFksU2FuZHdpY2g6KCk9PkFZLFNhdGVsbGl0ZTooKT0+SVksU2F0ZWxsaXRlRGlzaDooKT0+RVksU2F1ZGlSaXlhbDooKT0+UFksU2F2ZTooKT0+UlksU2F2ZUFsbDooKT0+TlksU2F2ZU9mZjooKT0+T1ksU2NhbGU6KCk9PkZZLFNjYWxlM0Q6KCk9PkY4LFNjYWxlM2Q6KCk9PkY4LFNjYWxpbmc6KCk9PkJZLFNjYW46KCk9PktZLFNjYW5CYXJjb2RlOigpPT5IWSxTY2FuRXllOigpPT5xWSxTY2FuRmFjZTooKT0+VlksU2NhbkhlYXJ0OigpPT5qWSxTY2FuTGluZTooKT0+VVksU2NhblFyQ29kZTooKT0+WVksU2NhblNlYXJjaDooKT0+V1ksU2NhblRleHQ6KCk9PkdZLFNjYXR0ZXJDaGFydDooKT0+UG0sU2Nob29sOigpPT5aWSxTY2hvb2wyOigpPT50OSxTY2lzc29yczooKT0+SlksU2Npc3NvcnNMaW5lRGFzaGVkOigpPT5RWSxTY2lzc29yc1NxdWFyZTooKT0+TjcsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206KCk9PnM3LFNjb290ZXI6KCk9PlhZLFNjcmVlblNoYXJlOigpPT50SyxTY3JlZW5TaGFyZU9mZjooKT0+ZUssU2Nyb2xsOigpPT5hSyxTY3JvbGxUZXh0OigpPT5ySyxTZWFyY2g6KCk9PmNLLFNlYXJjaEFsZXJ0OigpPT5pSyxTZWFyY2hDaGVjazooKT0+c0ssU2VhcmNoQ29kZTooKT0+bkssU2VhcmNoU2xhc2g6KCk9Pm9LLFNlYXJjaFg6KCk9PmxLLFNlY3Rpb246KCk9PmRLLFNlbmQ6KCk9PnBLLFNlbmRIb3Jpem9uYWw6KCk9PkI4LFNlbmRIb3Jpem9udGFsOigpPT5COCxTZW5kVG9CYWNrOigpPT51SyxTZXBhcmF0b3JIb3Jpem9udGFsOigpPT5mSyxTZXBhcmF0b3JWZXJ0aWNhbDooKT0+aEssU2VydmVyOigpPT54SyxTZXJ2ZXJDb2c6KCk9Pm1LLFNlcnZlckNyYXNoOigpPT5nSyxTZXJ2ZXJPZmY6KCk9PmJLLFNldHRpbmdzOigpPT55SyxTZXR0aW5nczI6KCk9PnZLLFNoYXBlczooKT0+a0ssU2hhcmU6KCk9PlNLLFNoYXJlMjooKT0+d0ssU2hlZXQ6KCk9Pk1LLFNoZWxsOigpPT5DSyxTaGVsdmluZ1VuaXQ6KCk9PnpLLFNoaWVsZDooKT0+UkssU2hpZWxkQWxlcnQ6KCk9Pl9LLFNoaWVsZEJhbjooKT0+VEssU2hpZWxkQ2hlY2s6KCk9PkxLLFNoaWVsZENsb3NlOigpPT5xOCxTaGllbGRDb2c6KCk9PiRLLFNoaWVsZENvZ0Nvcm5lcjooKT0+REssU2hpZWxkRWxsaXBzaXM6KCk9PkFLLFNoaWVsZEhhbGY6KCk9PkVLLFNoaWVsZE1pbnVzOigpPT5OSyxTaGllbGRPZmY6KCk9PklLLFNoaWVsZFBsdXM6KCk9PlBLLFNoaWVsZFF1ZXN0aW9uOigpPT5IOCxTaGllbGRRdWVzdGlvbk1hcms6KCk9Pkg4LFNoaWVsZFVzZXI6KCk9Pk9LLFNoaWVsZFg6KCk9PnE4LFNoaXA6KCk9PkJLLFNoaXBXaGVlbDooKT0+RkssU2hpcnQ6KCk9PkhLLFNob3BwaW5nQmFnOigpPT5xSyxTaG9wcGluZ0Jhc2tldDooKT0+VkssU2hvcHBpbmdDYXJ0OigpPT5qSyxTaG92ZWw6KCk9PlVLLFNob3dlckhlYWQ6KCk9PldLLFNocmVkZGVyOigpPT5HSyxTaHJpbXA6KCk9PllLLFNocmluazooKT0+S0ssU2hydWI6KCk9PlpLLFNodWZmbGU6KCk9PlFLLFNpZGViYXI6KCk9PlQ4LFNpZGViYXJDbG9zZTooKT0+QzgsU2lkZWJhck9wZW46KCk9Pl84LFNpZ21hOigpPT5YSyxTaWdtYVNxdWFyZTooKT0+TzcsU2lnbmFsOigpPT5hWixTaWduYWxIaWdoOigpPT5KSyxTaWduYWxMb3c6KCk9PmVaLFNpZ25hbE1lZGl1bTooKT0+dFosU2lnbmFsWmVybzooKT0+closU2lnbmF0dXJlOigpPT5pWixTaWducG9zdDooKT0+blosU2lnbnBvc3RCaWc6KCk9PnNaLFNpcmVuOigpPT5vWixTa2lwQmFjazooKT0+bFosU2tpcEZvcndhcmQ6KCk9PmNaLFNrdWxsOigpPT5wWixTbGFzaDooKT0+ZFosU2xhc2hTcXVhcmU6KCk9PlI3LFNsaWNlOigpPT51WixTbGlkZXJzOigpPT5WOCxTbGlkZXJzSG9yaXpvbnRhbDooKT0+ZlosU2xpZGVyc1ZlcnRpY2FsOigpPT5WOCxTbWFydHBob25lOigpPT5nWixTbWFydHBob25lQ2hhcmdpbmc6KCk9PmhaLFNtYXJ0cGhvbmVOZmM6KCk9Pm1aLFNtaWxlOigpPT54WixTbWlsZVBsdXM6KCk9PmJaLFNuYWlsOigpPT52WixTbm93Zmxha2U6KCk9PnlaLFNvYXBEaXNwZW5zZXJEcm9wbGV0OigpPT53WixTb2ZhOigpPT5rWixTb2xhclBhbmVsOigpPT5TWixTb3J0QXNjOigpPT5mbSxTb3J0RGVzYzooKT0+ZG0sU291cDooKT0+TVosU3BhY2U6KCk9PkNaLFNwYWRlOigpPT56WixTcGFya2xlOigpPT5fWixTcGFya2xlczooKT0+ajgsU3BlYWtlcjooKT0+VFosU3BlZWNoOigpPT5MWixTcGVsbENoZWNrOigpPT4kWixTcGVsbENoZWNrMjooKT0+RFosU3BsaW5lOigpPT5FWixTcGxpbmVQb2ludGVyOigpPT5BWixTcGxpdDooKT0+SVosU3BsaXRTcXVhcmVIb3Jpem9udGFsOigpPT5GNyxTcGxpdFNxdWFyZVZlcnRpY2FsOigpPT5CNyxTcG9vbDooKT0+UFosU3BvcnRTaG9lOigpPT5OWixTcG90bGlnaHQ6KCk9Pk9aLFNwcmF5Q2FuOigpPT5SWixTcHJvdXQ6KCk9PkZaLFNxdWFyZTooKT0+WFosU3F1YXJlQWN0aXZpdHk6KCk9PlU4LFNxdWFyZUFycm93RG93bjooKT0+WTgsU3F1YXJlQXJyb3dEb3duTGVmdDooKT0+VzgsU3F1YXJlQXJyb3dEb3duUmlnaHQ6KCk9Pkc4LFNxdWFyZUFycm93TGVmdDooKT0+SzgsU3F1YXJlQXJyb3dPdXREb3duTGVmdDooKT0+WjgsU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ6KCk9PlE4LFNxdWFyZUFycm93T3V0VXBMZWZ0OigpPT5YOCxTcXVhcmVBcnJvd091dFVwUmlnaHQ6KCk9Pko4LFNxdWFyZUFycm93UmlnaHQ6KCk9PmU3LFNxdWFyZUFycm93UmlnaHRFbnRlcjooKT0+QlosU3F1YXJlQXJyb3dSaWdodEV4aXQ6KCk9PkhaLFNxdWFyZUFycm93VXA6KCk9PmE3LFNxdWFyZUFycm93VXBMZWZ0OigpPT50NyxTcXVhcmVBcnJvd1VwUmlnaHQ6KCk9PnI3LFNxdWFyZUFzdGVyaXNrOigpPT5pNyxTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczooKT0+czcsU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWw6KCk9Pm43LFNxdWFyZUNlbnRlcmxpbmVEYXNoZWRWZXJ0aWNhbDooKT0+bzcsU3F1YXJlQ2hhcnRHYW50dDooKT0+RzQsU3F1YXJlQ2hlY2s6KCk9PmM3LFNxdWFyZUNoZWNrQmlnOigpPT5sNyxTcXVhcmVDaGV2cm9uRG93bjooKT0+ZDcsU3F1YXJlQ2hldnJvbkxlZnQ6KCk9PnU3LFNxdWFyZUNoZXZyb25SaWdodDooKT0+cDcsU3F1YXJlQ2hldnJvblVwOigpPT5mNyxTcXVhcmVDb2RlOigpPT5oNyxTcXVhcmVEYXNoZWQ6KCk9PmI3LFNxdWFyZURhc2hlZEJvdHRvbTooKT0+VlosU3F1YXJlRGFzaGVkQm90dG9tQ29kZTooKT0+cVosU3F1YXJlRGFzaGVkS2FuYmFuOigpPT5tNyxTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI6KCk9Pmc3LFNxdWFyZURhc2hlZFRleHQ6KCk9Plk0LFNxdWFyZURhc2hlZFRvcFNvbGlkOigpPT5qWixTcXVhcmVEaXZpZGU6KCk9Png3LFNxdWFyZURvdDooKT0+djcsU3F1YXJlRXF1YWw6KCk9Pnk3LFNxdWFyZUZ1bmN0aW9uOigpPT53NyxTcXVhcmVHYW50dENoYXJ0OigpPT5HNCxTcXVhcmVLYW5iYW46KCk9Pms3LFNxdWFyZUxpYnJhcnk6KCk9PlM3LFNxdWFyZU06KCk9Pk03LFNxdWFyZU1lbnU6KCk9PkM3LFNxdWFyZU1pbnVzOigpPT56NyxTcXVhcmVNb3VzZVBvaW50ZXI6KCk9Pl83LFNxdWFyZVBhcmtpbmc6KCk9Pkw3LFNxdWFyZVBhcmtpbmdPZmY6KCk9PlQ3LFNxdWFyZVBhdXNlOigpPT5VWixTcXVhcmVQZW46KCk9PmRjLFNxdWFyZVBlcmNlbnQ6KCk9PkQ3LFNxdWFyZVBpOigpPT4kNyxTcXVhcmVQaWxjcm93OigpPT5JNyxTcXVhcmVQbGF5OigpPT5BNyxTcXVhcmVQbHVzOigpPT5FNyxTcXVhcmVQb3dlcjooKT0+UDcsU3F1YXJlUmFkaWNhbDooKT0+V1osU3F1YXJlUm91bmRDb3JuZXI6KCk9PkdaLFNxdWFyZVNjaXNzb3JzOigpPT5ONyxTcXVhcmVTaWdtYTooKT0+TzcsU3F1YXJlU2xhc2g6KCk9PlI3LFNxdWFyZVNwbGl0SG9yaXpvbnRhbDooKT0+RjcsU3F1YXJlU3BsaXRWZXJ0aWNhbDooKT0+QjcsU3F1YXJlU3F1YXJlOigpPT5ZWixTcXVhcmVTdGFjazooKT0+S1osU3F1YXJlU3RhcjooKT0+WlosU3F1YXJlU3RvcDooKT0+UVosU3F1YXJlVGVybWluYWw6KCk9Pkg3LFNxdWFyZVVzZXI6KCk9Pmo3LFNxdWFyZVVzZXJSb3VuZDooKT0+cTcsU3F1YXJlWDooKT0+VjcsU3F1YXJlc0V4Y2x1ZGU6KCk9PkpaLFNxdWFyZXNJbnRlcnNlY3Q6KCk9PmVRLFNxdWFyZXNTdWJ0cmFjdDooKT0+dFEsU3F1YXJlc1VuaXRlOigpPT5yUSxTcXVpcmNsZTooKT0+YVEsU3F1aXJjbGVEYXNoZWQ6KCk9PmlRLFNxdWlycmVsOigpPT5zUSxTdGFtcDooKT0+blEsU3RhcjooKT0+Y1EsU3RhckhhbGY6KCk9Pm9RLFN0YXJPZmY6KCk9PmxRLFN0YXJzOigpPT5qOCxTdGVwQmFjazooKT0+ZFEsU3RlcEZvcndhcmQ6KCk9PnVRLFN0ZXRob3Njb3BlOigpPT5wUSxTdGlja2VyOigpPT5mUSxTdGlja3lOb3RlOigpPT5tUSxTdG9uZTooKT0+aFEsU3RvcENpcmNsZTooKT0+bDUsU3RvcmU6KCk9PmdRLFN0cmV0Y2hIb3Jpem9udGFsOigpPT54USxTdHJldGNoVmVydGljYWw6KCk9PmJRLFN0cmlrZXRocm91Z2g6KCk9PnZRLFN1YnNjcmlwdDooKT0+eVEsU3VidGl0bGVzOigpPT5rbSxTdW46KCk9PkNRLFN1bkRpbTooKT0+d1EsU3VuTWVkaXVtOigpPT5rUSxTdW5Nb29uOigpPT5NUSxTdW5Tbm93OigpPT5TUSxTdW5yaXNlOigpPT56USxTdW5zZXQ6KCk9Pl9RLFN1cGVyc2NyaXB0OigpPT5UUSxTd2F0Y2hCb29rOigpPT5EUSxTd2lzc0ZyYW5jOigpPT5MUSxTd2l0Y2hDYW1lcmE6KCk9PiRRLFN3b3JkOigpPT5BUSxTd29yZHM6KCk9PklRLFN5cmluZ2U6KCk9PkVRLFRhYmxlOigpPT5xUSxUYWJsZTI6KCk9PlBRLFRhYmxlQ2VsbHNNZXJnZTooKT0+T1EsVGFibGVDZWxsc1NwbGl0OigpPT5OUSxUYWJsZUNvbHVtbnNTcGxpdDooKT0+UlEsVGFibGVDb25maWc6KCk9PnE0LFRhYmxlT2ZDb250ZW50czooKT0+RlEsVGFibGVQcm9wZXJ0aWVzOigpPT5CUSxUYWJsZVJvd3NTcGxpdDooKT0+SFEsVGFibGV0OigpPT5qUSxUYWJsZXRTbWFydHBob25lOigpPT5WUSxUYWJsZXRzOigpPT5VUSxUYWc6KCk9PldRLFRhZ3M6KCk9PkdRLFRhbGx5MTooKT0+WVEsVGFsbHkyOigpPT5LUSxUYWxseTM6KCk9PlpRLFRhbGx5NDooKT0+UVEsVGFsbHk1OigpPT5YUSxUYW5nZW50OigpPT5KUSxUYXJnZXQ6KCk9PnRYLFRlbGVzY29wZTooKT0+ZVgsVGVudDooKT0+YVgsVGVudFRyZWU6KCk9PnJYLFRlcm1pbmFsOigpPT5pWCxUZXJtaW5hbFNxdWFyZTooKT0+SDcsVGVzdFR1YmU6KCk9PnNYLFRlc3RUdWJlMjooKT0+VTcsVGVzdFR1YmVEaWFnb25hbDooKT0+VTcsVGVzdFR1YmVzOigpPT5uWCxUZXh0OigpPT5LNCxUZXh0QWxpZ25DZW50ZXI6KCk9Plc3LFRleHRBbGlnbkVuZDooKT0+RzcsVGV4dEFsaWduSnVzdGlmeTooKT0+WTcsVGV4dEFsaWduU3RhcnQ6KCk9Pks0LFRleHRDdXJzb3I6KCk9PmxYLFRleHRDdXJzb3JJbnB1dDooKT0+b1gsVGV4dEluaXRpYWw6KCk9Pks3LFRleHRRdW90ZTooKT0+ZFgsVGV4dFNlYXJjaDooKT0+Y1gsVGV4dFNlbGVjdDooKT0+WTQsVGV4dFNlbGVjdGlvbjooKT0+WTQsVGV4dFdyYXA6KCk9Plo3LFRoZWF0ZXI6KCk9PnVYLFRoZXJtb21ldGVyOigpPT5oWCxUaGVybW9tZXRlclNub3dmbGFrZTooKT0+cFgsVGhlcm1vbWV0ZXJTdW46KCk9PmZYLFRodW1ic0Rvd246KCk9Pm1YLFRodW1ic1VwOigpPT5nWCxUaWNrZXQ6KCk9PlNYLFRpY2tldENoZWNrOigpPT5iWCxUaWNrZXRNaW51czooKT0+eFgsVGlja2V0UGVyY2VudDooKT0+dlgsVGlja2V0UGx1czooKT0+eVgsVGlja2V0U2xhc2g6KCk9PmtYLFRpY2tldFg6KCk9PndYLFRpY2tldHM6KCk9PkNYLFRpY2tldHNQbGFuZTooKT0+TVgsVGltZXI6KCk9PlRYLFRpbWVyT2ZmOigpPT56WCxUaW1lclJlc2V0OigpPT5fWCxUb2dnbGVMZWZ0OigpPT5MWCxUb2dnbGVSaWdodDooKT0+RFgsVG9pbGV0OigpPT4kWCxUb29sQ2FzZTooKT0+QVgsVG9vbGJveDooKT0+RVgsVG9ybmFkbzooKT0+SVgsVG9ydXM6KCk9PlBYLFRvdWNocGFkOigpPT5PWCxUb3VjaHBhZE9mZjooKT0+TlgsVG93ZWxSYWNrOigpPT5SWCxUb3dlckNvbnRyb2w6KCk9PkZYLFRveUJyaWNrOigpPT5CWCxUcmFjdG9yOigpPT5IWCxUcmFmZmljQ29uZTooKT0+cVgsVHJhaW46KCk9PlE3LFRyYWluRnJvbnQ6KCk9PmpYLFRyYWluRnJvbnRUdW5uZWw6KCk9PlZYLFRyYWluVHJhY2s6KCk9PlVYLFRyYW1Gcm9udDooKT0+UTcsVHJhbnNnZW5kZXI6KCk9PldYLFRyYXNoOigpPT5HWCxUcmFzaDI6KCk9PllYLFRyZWVEZWNpZHVvdXM6KCk9PktYLFRyZWVQYWxtOigpPT5YNyxUcmVlUGluZTooKT0+WlgsVHJlZXM6KCk9PlFYLFRyZW5kaW5nRG93bjooKT0+WFgsVHJlbmRpbmdVcDooKT0+ZUosVHJlbmRpbmdVcERvd246KCk9PkpYLFRyaWFuZ2xlOigpPT5hSixUcmlhbmdsZUFsZXJ0OigpPT5KNyxUcmlhbmdsZURhc2hlZDooKT0+dEosVHJpYW5nbGVSaWdodDooKT0+ckosVHJvcGh5OigpPT5pSixUcnVjazooKT0+bkosVHJ1Y2tFbGVjdHJpYzooKT0+c0osVHVya2lzaExpcmE6KCk9Pm9KLFR1cm50YWJsZTooKT0+bEosVHVydGxlOigpPT5jSixUdjooKT0+cEosVHYyOigpPT5lOSxUdk1pbmltYWw6KCk9PmU5LFR2TWluaW1hbFBsYXk6KCk9PmRKLFR5cGU6KCk9PmZKLFR5cGVPdXRsaW5lOigpPT51SixVbWJyZWxsYTooKT0+aEosVW1icmVsbGFPZmY6KCk9Pm1KLFVuZGVybGluZTooKT0+Z0osVW5kbzooKT0+dkosVW5kbzI6KCk9PmJKLFVuZG9Eb3Q6KCk9PnhKLFVuZm9sZEhvcml6b250YWw6KCk9PnlKLFVuZm9sZFZlcnRpY2FsOigpPT5rSixVbmdyb3VwOigpPT53SixVbml2ZXJzaXR5OigpPT50OSxVbmxpbms6KCk9Pk1KLFVubGluazI6KCk9PlNKLFVubG9jazooKT0+aDgsVW5sb2NrS2V5aG9sZTooKT0+ZjgsVW5wbHVnOigpPT56SixVcGxvYWQ6KCk9PkNKLFVwbG9hZENsb3VkOigpPT5tNSxVc2I6KCk9Pl9KLFVzZXI6KCk9PkhKLFVzZXIyOigpPT5vOSxVc2VyQ2hlY2s6KCk9PkRKLFVzZXJDaGVjazI6KCk9PnI5LFVzZXJDaXJjbGU6KCk9PmQ1LFVzZXJDaXJjbGUyOigpPT5jNSxVc2VyQ29nOigpPT5USixVc2VyQ29nMjooKT0+YTksVXNlcktleTooKT0+TEosVXNlckxvY2s6KCk9PiRKLFVzZXJNaW51czooKT0+QUosVXNlck1pbnVzMjooKT0+aTksVXNlclBlbjooKT0+RUosVXNlclBsdXM6KCk9PklKLFVzZXJQbHVzMjooKT0+czksVXNlclJvdW5kOigpPT5vOSxVc2VyUm91bmRDaGVjazooKT0+cjksVXNlclJvdW5kQ29nOigpPT5hOSxVc2VyUm91bmRLZXk6KCk9PlBKLFVzZXJSb3VuZE1pbnVzOigpPT5pOSxVc2VyUm91bmRQZW46KCk9Pk5KLFVzZXJSb3VuZFBsdXM6KCk9PnM5LFVzZXJSb3VuZFNlYXJjaDooKT0+T0osVXNlclJvdW5kWDooKT0+bjksVXNlclNlYXJjaDooKT0+UkosVXNlclNxdWFyZTooKT0+ajcsVXNlclNxdWFyZTI6KCk9PnE3LFVzZXJTdGFyOigpPT5GSixVc2VyWDooKT0+QkosVXNlclgyOigpPT5uOSxVc2VyczooKT0+cUosVXNlcnMyOigpPT5sOSxVc2Vyc1JvdW5kOigpPT5sOSxVdGVuc2lsczooKT0+ZDksVXRlbnNpbHNDcm9zc2VkOigpPT5jOSxVdGlsaXR5UG9sZTooKT0+VkosVmFuOigpPT5qSixWYXJpYWJsZTooKT0+VUosVmF1bHQ6KCk9PldKLFZlY3RvclNxdWFyZTooKT0+R0osVmVnYW46KCk9PllKLFZlbmV0aWFuTWFzazooKT0+S0osVmVudXM6KCk9PlFKLFZlbnVzQW5kTWFyczooKT0+WkosVmVyaWZpZWQ6KCk9PmdtLFZpYnJhdGU6KCk9PkpKLFZpYnJhdGVPZmY6KCk9PlhKLFZpZGVvOigpPT50ZWUsVmlkZW9PZmY6KCk9PmVlZSxWaWRlb3RhcGU6KCk9PnJlZSxWaWV3OigpPT5hZWUsVm9pY2VtYWlsOigpPT5pZWUsVm9sbGV5YmFsbDooKT0+c2VlLFZvbHVtZTooKT0+ZGVlLFZvbHVtZTE6KCk9Pm5lZSxWb2x1bWUyOigpPT5vZWUsVm9sdW1lT2ZmOigpPT5sZWUsVm9sdW1lWDooKT0+Y2VlLFZvdGU6KCk9PnVlZSxXYWxsZXQ6KCk9PmZlZSxXYWxsZXQyOigpPT51OSxXYWxsZXRDYXJkczooKT0+cGVlLFdhbGxldE1pbmltYWw6KCk9PnU5LFdhbGxwYXBlcjooKT0+aGVlLFdhbmQ6KCk9Pm1lZSxXYW5kMjooKT0+cDksV2FuZFNwYXJrbGVzOigpPT5wOSxXYXJlaG91c2U6KCk9PmdlZSxXYXNoaW5nTWFjaGluZTooKT0+YmVlLFdhdGNoOigpPT54ZWUsV2F2ZXM6KCk9PmtlZSxXYXZlc0Fycm93RG93bjooKT0+dmVlLFdhdmVzQXJyb3dVcDooKT0+eWVlLFdhdmVzTGFkZGVyOigpPT53ZWUsV2F5cG9pbnRzOigpPT5TZWUsV2ViY2FtOigpPT5NZWUsV2ViaG9vazooKT0+emVlLFdlYmhvb2tPZmY6KCk9PkNlZSxXZWlnaHQ6KCk9PlRlZSxXZWlnaHRUaWxkZTooKT0+X2VlLFdoZWF0OigpPT5EZWUsV2hlYXRPZmY6KCk9PkxlZSxXaG9sZVdvcmQ6KCk9PiRlZSxXaWZpOigpPT5GZWUsV2lmaUNvZzooKT0+QWVlLFdpZmlIaWdoOigpPT5FZWUsV2lmaUxvdzooKT0+SWVlLFdpZmlPZmY6KCk9PlBlZSxXaWZpUGVuOigpPT5OZWUsV2lmaVN5bmM6KCk9PlJlZSxXaWZpWmVybzooKT0+T2VlLFdpbmQ6KCk9PkhlZSxXaW5kQXJyb3dEb3duOigpPT5CZWUsV2luZTooKT0+cWVlLFdpbmVPZmY6KCk9PlZlZSxXb3JrZmxvdzooKT0+amVlLFdvcm06KCk9PlVlZSxXcmFwVGV4dDooKT0+WjcsV3JlbmNoOigpPT5XZWUsWDooKT0+R2VlLFhDaXJjbGU6KCk9PnU1LFhMaW5lVG9wOigpPT5ZZWUsWE9jdGFnb246KCk9Pms4LFhTcXVhcmU6KCk9PlY3LFphcDooKT0+WmVlLFphcE9mZjooKT0+S2VlLFpvZGlhY0FxdWFyaXVzOigpPT5RZWUsWm9kaWFjQXJpZXM6KCk9PlhlZSxab2RpYWNDYW5jZXI6KCk9PkplZSxab2RpYWNDYXByaWNvcm46KCk9PmV0ZSxab2RpYWNHZW1pbmk6KCk9PnR0ZSxab2RpYWNMZW86KCk9PnJ0ZSxab2RpYWNMaWJyYTooKT0+YXRlLFpvZGlhY09waGl1Y2h1czooKT0+aXRlLFpvZGlhY1Bpc2NlczooKT0+c3RlLFpvZGlhY1NhZ2l0dGFyaXVzOigpPT5udGUsWm9kaWFjU2NvcnBpbzooKT0+b3RlLFpvZGlhY1RhdXJ1czooKT0+bHRlLFpvZGlhY1ZpcmdvOigpPT5jdGUsWm9vbUluOigpPT5kdGUsWm9vbU91dDooKT0+dXRlLGNyZWF0ZUVsZW1lbnQ6KCk9PklwLGNyZWF0ZUljb25zOigpPT54NnQsaWNvbnM6KCk9PmY5fSk7dmFyIHg2dCxEcGU9dSgoKT0+e1JWcigpO0ZWcigpO1ZxZSgpO0txZSgpO1pxZSgpO1FxZSgpO1hxZSgpO0pxZSgpO2VWZSgpO3RWZSgpO3JWZSgpO2FWZSgpO2lWZSgpO3NWZSgpO25WZSgpO29WZSgpO2xWZSgpO2NWZSgpO2RWZSgpO3VWZSgpO3BWZSgpO2ZWZSgpO2hWZSgpO21WZSgpO2dWZSgpO2JWZSgpO3hWZSgpO3ZWZSgpO3lWZSgpO3dWZSgpO2tWZSgpO1NWZSgpO01WZSgpO0NWZSgpO3pWZSgpO19WZSgpO1RWZSgpO0xWZSgpO0RWZSgpOyRWZSgpO0FWZSgpO0VWZSgpO0lWZSgpO1BWZSgpO05WZSgpO09WZSgpO1JWZSgpO0ZWZSgpO0JWZSgpO0hWZSgpO3FWZSgpO1ZWZSgpO2pWZSgpO1VWZSgpO1dWZSgpO0dWZSgpO1lWZSgpO0tWZSgpO1pWZSgpO1FWZSgpO1hWZSgpO0pWZSgpO2VqZSgpO3RqZSgpO3JqZSgpO2FqZSgpO2lqZSgpO3NqZSgpO25qZSgpO29qZSgpO2xqZSgpO2NqZSgpO2RqZSgpO3VqZSgpO3BqZSgpO2ZqZSgpO2hqZSgpO21qZSgpO2dqZSgpO2JqZSgpO3hqZSgpO3ZqZSgpO3lqZSgpO3dqZSgpO2tqZSgpO1NqZSgpO01qZSgpO0NqZSgpO3pqZSgpO19qZSgpO1RqZSgpO0xqZSgpO0RqZSgpOyRqZSgpO0FqZSgpO0VqZSgpO0lqZSgpO1BqZSgpO05qZSgpO09qZSgpO1JqZSgpO0ZqZSgpO0JqZSgpO0hqZSgpO3FqZSgpO1ZqZSgpO2pqZSgpO1VqZSgpO1dqZSgpO0dqZSgpO1lqZSgpO0tqZSgpO1pqZSgpO1FqZSgpO1hqZSgpO0pqZSgpO2VVZSgpO3RVZSgpO3JVZSgpO2FVZSgpO2lVZSgpO3NVZSgpO25VZSgpO29VZSgpO2xVZSgpO2NVZSgpO2RVZSgpO3VVZSgpO3BVZSgpO2ZVZSgpO2hVZSgpO21VZSgpO2dVZSgpO2JVZSgpO3hVZSgpO3ZVZSgpO3lVZSgpO3dVZSgpO2tVZSgpO1NVZSgpO01VZSgpO0NVZSgpO3pVZSgpO19VZSgpO1RVZSgpO0xVZSgpO0RVZSgpOyRVZSgpO0FVZSgpO0VVZSgpO0lVZSgpO1BVZSgpO05VZSgpO09VZSgpO1JVZSgpO0ZVZSgpO0JVZSgpO0hVZSgpO3FVZSgpO1ZVZSgpO2pVZSgpO1VVZSgpO1dVZSgpO0dVZSgpO1lVZSgpO0tVZSgpO1pVZSgpO1FVZSgpO1hVZSgpO0pVZSgpO2VXZSgpO3RXZSgpO3JXZSgpO2FXZSgpO2lXZSgpO3NXZSgpO25XZSgpO29XZSgpO2xXZSgpO2NXZSgpO2RXZSgpO3VXZSgpO3BXZSgpO2ZXZSgpO2hXZSgpO21XZSgpO2dXZSgpO2JXZSgpO3hXZSgpO3ZXZSgpO3lXZSgpO3dXZSgpO2tXZSgpO1NXZSgpO01XZSgpO0NXZSgpO3pXZSgpO19XZSgpO1RXZSgpO0xXZSgpO0RXZSgpOyRXZSgpO0FXZSgpO0VXZSgpO0lXZSgpO1BXZSgpO05XZSgpO09XZSgpO1JXZSgpO0ZXZSgpO0JXZSgpO0hXZSgpO3FXZSgpO1ZXZSgpO2pXZSgpO1VXZSgpO1dXZSgpO0dXZSgpO1lXZSgpO0tXZSgpO1pXZSgpO1FXZSgpO1hXZSgpO0pXZSgpO2VHZSgpO3RHZSgpO3JHZSgpO2FHZSgpO2lHZSgpO3NHZSgpO25HZSgpO29HZSgpO2xHZSgpO2NHZSgpO2RHZSgpO3VHZSgpO3BHZSgpO2ZHZSgpO2hHZSgpO21HZSgpO2dHZSgpO2JHZSgpO3hHZSgpO3ZHZSgpO3lHZSgpO3dHZSgpO2tHZSgpO1NHZSgpO01HZSgpO0NHZSgpO3pHZSgpO19HZSgpO1RHZSgpO0xHZSgpO0RHZSgpOyRHZSgpO0FHZSgpO0VHZSgpO0lHZSgpO1BHZSgpO05HZSgpO09HZSgpO1JHZSgpO0ZHZSgpO0JHZSgpO0hHZSgpO3FHZSgpO1ZHZSgpO2pHZSgpO1VHZSgpO1dHZSgpO0dHZSgpO1lHZSgpO0tHZSgpO1pHZSgpO1FHZSgpO1hHZSgpO0pHZSgpO2VZZSgpO3RZZSgpO3JZZSgpO2FZZSgpO2lZZSgpO3NZZSgpO25ZZSgpO29ZZSgpO2xZZSgpO2NZZSgpO2RZZSgpO3VZZSgpO3BZZSgpO2ZZZSgpO2hZZSgpO21ZZSgpO2dZZSgpO2JZZSgpO3hZZSgpO3ZZZSgpO3lZZSgpO3dZZSgpO2tZZSgpO1NZZSgpO01ZZSgpO0NZZSgpO3pZZSgpO19ZZSgpO1RZZSgpO0xZZSgpO0RZZSgpOyRZZSgpO0FZZSgpO0VZZSgpO0lZZSgpO1BZZSgpO05ZZSgpO09ZZSgpO1JZZSgpO0ZZZSgpO0JZZSgpO0hZZSgpO3FZZSgpO1ZZZSgpO2pZZSgpO1VZZSgpO1dZZSgpO0dZZSgpO1lZZSgpO0tZZSgpO1pZZSgpO1FZZSgpO1hZZSgpO0pZZSgpO2VLZSgpO3RLZSgpO3JLZSgpO2FLZSgpO2lLZSgpO3NLZSgpO25LZSgpO29LZSgpO2xLZSgpO2NLZSgpO2RLZSgpO3VLZSgpO3BLZSgpO2ZLZSgpO2hLZSgpO21LZSgpO2dLZSgpO2JLZSgpO3hLZSgpO3ZLZSgpO3lLZSgpO3dLZSgpO2tLZSgpO1NLZSgpO01LZSgpO0NLZSgpO3pLZSgpO19LZSgpO1RLZSgpO0xLZSgpO0RLZSgpOyRLZSgpO0FLZSgpO0VLZSgpO0lLZSgpO1BLZSgpO05LZSgpO09LZSgpO1JLZSgpO0ZLZSgpO0JLZSgpO0hLZSgpO3FLZSgpO1ZLZSgpO2pLZSgpO1VLZSgpO1dLZSgpO0dLZSgpO1lLZSgpO0tLZSgpO1pLZSgpO1FLZSgpO1hLZSgpO0pLZSgpO2VaZSgpO3RaZSgpO3JaZSgpO2FaZSgpO2laZSgpO3NaZSgpO25aZSgpO29aZSgpO2xaZSgpO2NaZSgpO2RaZSgpO3VaZSgpO3BaZSgpO2ZaZSgpO2haZSgpO21aZSgpO2daZSgpO2JaZSgpO3haZSgpO3ZaZSgpO3laZSgpO3daZSgpO2taZSgpO1NaZSgpO01aZSgpO0NaZSgpO3paZSgpO19aZSgpO1RaZSgpO0xaZSgpO0RaZSgpOyRaZSgpO0FaZSgpO0VaZSgpO0laZSgpO1BaZSgpO05aZSgpO09aZSgpO1JaZSgpO0ZaZSgpO0JaZSgpO0haZSgpO3FaZSgpO1ZaZSgpO2paZSgpO1VaZSgpO1daZSgpO0daZSgpO1laZSgpO0taZSgpO1paZSgpO1FaZSgpO1haZSgpO0paZSgpO2VRZSgpO3RRZSgpO3JRZSgpO2FRZSgpO2lRZSgpO3NRZSgpO25RZSgpO29RZSgpO2xRZSgpO2NRZSgpO2RRZSgpO3VRZSgpO3BRZSgpO2ZRZSgpO2hRZSgpO21RZSgpO2dRZSgpO2JRZSgpO3hRZSgpO3ZRZSgpO3lRZSgpO3dRZSgpO2tRZSgpO1NRZSgpO01RZSgpO0NRZSgpO3pRZSgpO19RZSgpO1RRZSgpO0xRZSgpO0RRZSgpOyRRZSgpO0FRZSgpO0VRZSgpO0lRZSgpO1BRZSgpO05RZSgpO09RZSgpO1JRZSgpO0ZRZSgpO0JRZSgpO0hRZSgpO3FRZSgpO1ZRZSgpO2pRZSgpO1VRZSgpO1dRZSgpO0dRZSgpO1lRZSgpO0tRZSgpO1pRZSgpO1FRZSgpO1hRZSgpO0pRZSgpO2VYZSgpO3RYZSgpO3JYZSgpO2FYZSgpO2lYZSgpO3NYZSgpO25YZSgpO29YZSgpO2xYZSgpO2NYZSgpO2RYZSgpO3VYZSgpO3BYZSgpO2ZYZSgpO2hYZSgpO21YZSgpO2dYZSgpO2JYZSgpO3hYZSgpO3ZYZSgpO3lYZSgpO3dYZSgpO2tYZSgpO1NYZSgpO01YZSgpO0NYZSgpO3pYZSgpO19YZSgpO1RYZSgpO0xYZSgpO0RYZSgpOyRYZSgpO0FYZSgpO0VYZSgpO0lYZSgpO1BYZSgpO05YZSgpO09YZSgpO1JYZSgpO0ZYZSgpO0JYZSgpO0hYZSgpO3FYZSgpO1ZYZSgpO2pYZSgpO1VYZSgpO1dYZSgpO0dYZSgpO1lYZSgpO0tYZSgpO1pYZSgpO1FYZSgpO1hYZSgpO0pYZSgpO2VKZSgpO3RKZSgpO3JKZSgpO2FKZSgpO2lKZSgpO3NKZSgpO25KZSgpO29KZSgpO2xKZSgpO2NKZSgpO2RKZSgpO3VKZSgpO3BKZSgpO2ZKZSgpO2hKZSgpO21KZSgpO2dKZSgpO2JKZSgpO3hKZSgpO3ZKZSgpO3lKZSgpO3dKZSgpO2tKZSgpO1NKZSgpO01KZSgpO0NKZSgpO3pKZSgpO19KZSgpO1RKZSgpO0xKZSgpO0RKZSgpOyRKZSgpO0FKZSgpO0VKZSgpO0lKZSgpO1BKZSgpO05KZSgpO09KZSgpO1JKZSgpO0ZKZSgpO0JKZSgpO0hKZSgpO3FKZSgpO1ZKZSgpO2pKZSgpO1VKZSgpO1dKZSgpO0dKZSgpO1lKZSgpO0tKZSgpO1pKZSgpO1FKZSgpO1hKZSgpO0pKZSgpO2VldCgpO3RldCgpO3JldCgpO2FldCgpO2lldCgpO3NldCgpO25ldCgpO29ldCgpO2NldCgpO2RldCgpO3VldCgpO3BldCgpO2ZldCgpO2hldCgpO21ldCgpO2dldCgpO2JldCgpO3hldCgpO3ZldCgpO3lldCgpO3dldCgpO2tldCgpO01ldCgpO0NldCgpO3pldCgpO19ldCgpO1RldCgpO0xldCgpO0RldCgpOyRldCgpO0FldCgpO0VldCgpO0lldCgpO1BldCgpO05ldCgpO09ldCgpO1JldCgpO0ZldCgpO0JldCgpO0hldCgpO3FldCgpO1ZldCgpO2pldCgpO1VldCgpO1dldCgpO0dldCgpO1lldCgpO0tldCgpO1pldCgpO1FldCgpO1hldCgpO0pldCgpO2V0dCgpO3R0dCgpO3J0dCgpO2F0dCgpO2l0dCgpO3N0dCgpO250dCgpO290dCgpO2x0dCgpO2N0dCgpO2R0dCgpO3V0dCgpO3B0dCgpO2Z0dCgpO2h0dCgpO210dCgpO2d0dCgpO2J0dCgpO3h0dCgpO3Z0dCgpO3l0dCgpO3d0dCgpO2t0dCgpO1N0dCgpO010dCgpO0N0dCgpO3p0dCgpO190dCgpO1R0dCgpO0x0dCgpO0R0dCgpOyR0dCgpO0F0dCgpO0V0dCgpO0l0dCgpO1B0dCgpO050dCgpO090dCgpO1J0dCgpO0Z0dCgpO0J0dCgpO0h0dCgpO3F0dCgpO1Z0dCgpO2p0dCgpO1V0dCgpO1d0dCgpO0d0dCgpO1l0dCgpO0t0dCgpO1p0dCgpO1F0dCgpO1h0dCgpO0p0dCgpO2VydCgpO3RydCgpO3JydCgpO2FydCgpO2lydCgpO3NydCgpO25ydCgpO29ydCgpO2xydCgpO2NydCgpO2RydCgpO3VydCgpO3BydCgpO2ZydCgpO2hydCgpO21ydCgpO2dydCgpO2JydCgpO3hydCgpO3ZydCgpO3lydCgpO3dydCgpO2tydCgpO1NydCgpO01ydCgpO0NydCgpO3pydCgpO19ydCgpO1RydCgpO0xydCgpO0RydCgpOyRydCgpO0FydCgpO0VydCgpO0lydCgpO1BydCgpO05ydCgpO09ydCgpO1JydCgpO0ZydCgpO0JydCgpO0hydCgpO3FydCgpO1ZydCgpO2pydCgpO1VydCgpO1dydCgpO0dydCgpO1lydCgpO0tydCgpO1pydCgpO1FydCgpO1hydCgpO0pydCgpO2VhdCgpO3RhdCgpO3JhdCgpO2FhdCgpO2lhdCgpO3NhdCgpO25hdCgpO29hdCgpO2xhdCgpO2NhdCgpO2RhdCgpO3VhdCgpO3BhdCgpO2ZhdCgpO2hhdCgpO21hdCgpO2dhdCgpO2JhdCgpO3hhdCgpO3ZhdCgpO3lhdCgpO3dhdCgpO2thdCgpO1NhdCgpO01hdCgpO0NhdCgpO3phdCgpO19hdCgpO1RhdCgpO0xhdCgpO0RhdCgpOyRhdCgpO0FhdCgpO0VhdCgpO0lhdCgpO1BhdCgpO05hdCgpO09hdCgpO1JhdCgpO0ZhdCgpO0JhdCgpO0hhdCgpO3FhdCgpO1ZhdCgpO2phdCgpO1VhdCgpO1dhdCgpO0dhdCgpO1lhdCgpO0thdCgpO1phdCgpO1FhdCgpO1hhdCgpO0phdCgpO2VpdCgpO3RpdCgpO3JpdCgpO2FpdCgpO2lpdCgpO3NpdCgpO25pdCgpO29pdCgpO2xpdCgpO2NpdCgpO2RpdCgpO3VpdCgpO3BpdCgpO2ZpdCgpO2hpdCgpO21pdCgpO2dpdCgpO2JpdCgpO3hpdCgpO3ZpdCgpO3lpdCgpO3dpdCgpO2tpdCgpO1NpdCgpO01pdCgpO0NpdCgpO3ppdCgpO19pdCgpO1RpdCgpO0xpdCgpO0RpdCgpOyRpdCgpO0FpdCgpO0VpdCgpO0lpdCgpO1BpdCgpO05pdCgpO09pdCgpO1JpdCgpO0ZpdCgpO0JpdCgpO0hpdCgpO3FpdCgpO1ZpdCgpO2ppdCgpO1VpdCgpO1dpdCgpO0dpdCgpO1lpdCgpO0tpdCgpO1ppdCgpO1FpdCgpO1hpdCgpO0ppdCgpO2VzdCgpO3RzdCgpO3JzdCgpO2FzdCgpO2lzdCgpO3NzdCgpO25zdCgpO29zdCgpO2xzdCgpO2NzdCgpO2RzdCgpO3VzdCgpO3BzdCgpO2ZzdCgpO2hzdCgpO21zdCgpO2dzdCgpO2JzdCgpO3hzdCgpO3ZzdCgpO3lzdCgpO3dzdCgpO2tzdCgpO1NzdCgpO01zdCgpO0NzdCgpO3pzdCgpO19zdCgpO1RzdCgpO0xzdCgpO0RzdCgpOyRzdCgpO0FzdCgpO0VzdCgpO0lzdCgpO1BzdCgpO05zdCgpO09zdCgpO1JzdCgpO0ZzdCgpO0JzdCgpO0hzdCgpO3FzdCgpO1ZzdCgpO2pzdCgpO1VzdCgpO1dzdCgpO0dzdCgpO1lzdCgpO0tzdCgpO1pzdCgpO1FzdCgpO1hzdCgpO0pzdCgpO2VudCgpO3RudCgpO3JudCgpO2FudCgpO2ludCgpO3NudCgpO25udCgpO29udCgpO2xudCgpO2NudCgpO2RudCgpO3VudCgpO3BudCgpO2ZudCgpO2hudCgpO21udCgpO2dudCgpO2JudCgpO3hudCgpO3ZudCgpO3ludCgpO3dudCgpO2tudCgpO1NudCgpO01udCgpO0NudCgpO3pudCgpO19udCgpO1RudCgpO0xudCgpO0RudCgpOyRudCgpO0FudCgpO0VudCgpO0ludCgpO1BudCgpO05udCgpO09udCgpO1JudCgpO0ZudCgpO0JudCgpO0hudCgpO3FudCgpO1ZudCgpO2pudCgpO1VudCgpO1dudCgpO0dudCgpO1ludCgpO0tudCgpO1pudCgpO1FudCgpO1hudCgpO0pudCgpO2VvdCgpO3RvdCgpO3JvdCgpO2FvdCgpO2lvdCgpO3NvdCgpO25vdCgpO29vdCgpO2xvdCgpO2NvdCgpO2RvdCgpO3VvdCgpO3BvdCgpO2ZvdCgpO2hvdCgpO21vdCgpO2dvdCgpO2JvdCgpO3hvdCgpO3ZvdCgpO3lvdCgpO3dvdCgpO2tvdCgpO1NvdCgpO01vdCgpO0NvdCgpO3pvdCgpO19vdCgpO1RvdCgpO0xvdCgpO0RvdCgpOyRvdCgpO0FvdCgpO0VvdCgpO0lvdCgpO1BvdCgpO05vdCgpO09vdCgpO1JvdCgpO0ZvdCgpO0JvdCgpO0hvdCgpO3FvdCgpO1ZvdCgpO2pvdCgpO1VvdCgpO1dvdCgpO0dvdCgpO1lvdCgpO0tvdCgpO1pvdCgpO1FvdCgpO1hvdCgpO0pvdCgpO2UxdCgpO3QxdCgpO3IxdCgpO2ExdCgpO2kxdCgpO3MxdCgpO24xdCgpO28xdCgpO2wxdCgpO2MxdCgpO2QxdCgpO3UxdCgpO3AxdCgpO2YxdCgpO2gxdCgpO20xdCgpO2cxdCgpO2IxdCgpO3gxdCgpO3YxdCgpO3kxdCgpO3cxdCgpO2sxdCgpO1MxdCgpO00xdCgpO0MxdCgpO3oxdCgpO18xdCgpO1QxdCgpO0wxdCgpO0QxdCgpOyQxdCgpO0ExdCgpO0UxdCgpO0kxdCgpO1AxdCgpO04xdCgpO08xdCgpO1IxdCgpO0YxdCgpO0IxdCgpO0gxdCgpO3ExdCgpO1YxdCgpO2oxdCgpO1UxdCgpO1cxdCgpO0cxdCgpO1kxdCgpO0sxdCgpO1oxdCgpO1ExdCgpO1gxdCgpO0oxdCgpO2VsdCgpO3RsdCgpO3JsdCgpO2FsdCgpO2lsdCgpO3NsdCgpO25sdCgpO29sdCgpO2xsdCgpO2NsdCgpO2RsdCgpO3VsdCgpO3BsdCgpO2ZsdCgpO2hsdCgpO21sdCgpO2dsdCgpO2JsdCgpO3hsdCgpO3ZsdCgpO3lsdCgpO3dsdCgpO2tsdCgpO1NsdCgpO01sdCgpO0NsdCgpO3psdCgpO19sdCgpO1RsdCgpO0xsdCgpO0RsdCgpOyRsdCgpO0FsdCgpO0VsdCgpO0lsdCgpO1BsdCgpO05sdCgpO09sdCgpO1JsdCgpO0ZsdCgpO0JsdCgpO0hsdCgpO3FsdCgpO1ZsdCgpO2psdCgpO1VsdCgpO1dsdCgpO0dsdCgpO1lsdCgpO0tsdCgpO1psdCgpO1FsdCgpO1hsdCgpO0psdCgpO2UydCgpO3QydCgpO3IydCgpO2EydCgpO2kydCgpO3MydCgpO24ydCgpO28ydCgpO2wydCgpO2MydCgpO2QydCgpO3UydCgpO3AydCgpO2YydCgpO2gydCgpO20ydCgpO2cydCgpO2IydCgpO3gydCgpO3YydCgpO3kydCgpO3cydCgpO2sydCgpO1MydCgpO00ydCgpO0MydCgpO3oydCgpO18ydCgpO1QydCgpO0wydCgpO0QydCgpOyQydCgpO0EydCgpO0UydCgpO0kydCgpO1AydCgpO04ydCgpO08ydCgpO1IydCgpO0YydCgpO0IydCgpO0gydCgpO3EydCgpO1YydCgpO2oydCgpO1UydCgpO1cydCgpO0cydCgpO1kydCgpO0sydCgpO1oydCgpO1EydCgpO1gydCgpO0oydCgpO2VjdCgpO3RjdCgpO3JjdCgpO2FjdCgpO2ljdCgpO3NjdCgpO25jdCgpO29jdCgpO2xjdCgpO2NjdCgpO2RjdCgpO3VjdCgpO3BjdCgpO2ZjdCgpO2hjdCgpO21jdCgpO2djdCgpO2JjdCgpO3hjdCgpO3ZjdCgpO3ljdCgpO3djdCgpO2tjdCgpO1NjdCgpO01jdCgpO0NjdCgpO3pjdCgpO19jdCgpO1RjdCgpO0xjdCgpO0RjdCgpOyRjdCgpO0FjdCgpO0VjdCgpO0ljdCgpO1BjdCgpO05jdCgpO09jdCgpO1JjdCgpO0ZjdCgpO0JjdCgpO0hjdCgpO3FjdCgpO1ZjdCgpO2pjdCgpO1VjdCgpO1djdCgpO0djdCgpO1ljdCgpO0tjdCgpO1pjdCgpO1FjdCgpO1hjdCgpO0pjdCgpO2UwdCgpO3QwdCgpO3IwdCgpO2EwdCgpO2kwdCgpO3MwdCgpO24wdCgpO28wdCgpO2wwdCgpO2MwdCgpO2QwdCgpO3UwdCgpO3AwdCgpO2YwdCgpO2gwdCgpO20wdCgpO2cwdCgpO2IwdCgpO3gwdCgpO3YwdCgpO3kwdCgpO3cwdCgpO2swdCgpO1MwdCgpO00wdCgpO0MwdCgpO3owdCgpO18wdCgpO1QwdCgpO0wwdCgpO0QwdCgpOyQwdCgpO0EwdCgpO0UwdCgpO0kwdCgpO1AwdCgpO04wdCgpO08wdCgpO1IwdCgpO0YwdCgpO0IwdCgpO0gwdCgpO3EwdCgpO1YwdCgpO2owdCgpO1UwdCgpO1cwdCgpO0cwdCgpO1kwdCgpO0swdCgpO1owdCgpO1EwdCgpO1gwdCgpO0owdCgpO2VkdCgpO3RkdCgpO3JkdCgpO2FkdCgpO2lkdCgpO3NkdCgpO25kdCgpO29kdCgpO2xkdCgpO2NkdCgpO2RkdCgpO3VkdCgpO3BkdCgpO2ZkdCgpO2hkdCgpO21kdCgpO2dkdCgpO2JkdCgpO3hkdCgpO3ZkdCgpO3lkdCgpO3dkdCgpO2tkdCgpO1NkdCgpO01kdCgpO0NkdCgpO3pkdCgpO19kdCgpO1RkdCgpO0xkdCgpO0RkdCgpOyRkdCgpO0FkdCgpO0VkdCgpO0lkdCgpO1BkdCgpO05kdCgpO09kdCgpO1JkdCgpO0ZkdCgpO0JkdCgpO0hkdCgpO3FkdCgpO1ZkdCgpO2pkdCgpO1VkdCgpO1dkdCgpO0dkdCgpO1lkdCgpO0tkdCgpO1pkdCgpO1FkdCgpO1hkdCgpO0pkdCgpO2U0dCgpO3Q0dCgpO3I0dCgpO2E0dCgpO2k0dCgpO3M0dCgpO240dCgpO280dCgpO2w0dCgpO2M0dCgpO2Q0dCgpO3U0dCgpO3A0dCgpO2Y0dCgpO2g0dCgpO200dCgpO2c0dCgpO2I0dCgpO3g0dCgpO3Y0dCgpO3k0dCgpO3c0dCgpO2s0dCgpO1M0dCgpO000dCgpO0M0dCgpO3o0dCgpO180dCgpO1Q0dCgpO0w0dCgpO0Q0dCgpOyQ0dCgpO0E0dCgpO0U0dCgpO0k0dCgpO1A0dCgpO040dCgpO080dCgpO1I0dCgpO0Y0dCgpO0I0dCgpO0g0dCgpO3E0dCgpO1Y0dCgpO2o0dCgpO1U0dCgpO1c0dCgpO0c0dCgpO1k0dCgpO0s0dCgpO1o0dCgpO1E0dCgpO1g0dCgpO0o0dCgpO2UzdCgpO3QzdCgpO3IzdCgpO2EzdCgpO2kzdCgpO3MzdCgpO24zdCgpO28zdCgpO2wzdCgpO2MzdCgpO2QzdCgpO3UzdCgpO3AzdCgpO2YzdCgpO2gzdCgpO20zdCgpO2czdCgpO2IzdCgpO3gzdCgpO3YzdCgpO3kzdCgpO3czdCgpO2szdCgpO1MzdCgpO00zdCgpO0MzdCgpO3ozdCgpO18zdCgpO1QzdCgpO0wzdCgpO0QzdCgpOyQzdCgpO0EzdCgpO0UzdCgpO0kzdCgpO1AzdCgpO04zdCgpO08zdCgpO1IzdCgpO0YzdCgpO0IzdCgpO0gzdCgpO3EzdCgpO1YzdCgpO2ozdCgpO1UzdCgpO1czdCgpO0czdCgpO1kzdCgpO0szdCgpO1ozdCgpO1EzdCgpO1gzdCgpO0ozdCgpO2V1dCgpO3R1dCgpO3J1dCgpO2F1dCgpO2l1dCgpO3N1dCgpO251dCgpO291dCgpO2x1dCgpO2N1dCgpO2R1dCgpO3V1dCgpO3B1dCgpO2Z1dCgpO2h1dCgpO211dCgpO2d1dCgpO2J1dCgpO3h1dCgpO3Z1dCgpO3l1dCgpO3d1dCgpO2t1dCgpO1N1dCgpO011dCgpO0N1dCgpO3p1dCgpO191dCgpO1R1dCgpO0x1dCgpO0R1dCgpOyR1dCgpO0F1dCgpO0V1dCgpO0l1dCgpO1B1dCgpO051dCgpO091dCgpO1J1dCgpO0Z1dCgpO0J1dCgpO0h1dCgpO3F1dCgpO1Z1dCgpO2p1dCgpO1V1dCgpO1d1dCgpO0d1dCgpO1l1dCgpO0t1dCgpO1p1dCgpO1F1dCgpO1h1dCgpO0p1dCgpO2VwdCgpO3RwdCgpO3JwdCgpO2FwdCgpO2lwdCgpO3NwdCgpO25wdCgpO29wdCgpO2xwdCgpO2NwdCgpO2RwdCgpO3VwdCgpO3BwdCgpO2ZwdCgpO2hwdCgpO21wdCgpO2dwdCgpO2JwdCgpO3hwdCgpO3ZwdCgpO3lwdCgpO3dwdCgpO2twdCgpO1NwdCgpO01wdCgpO0NwdCgpO3pwdCgpO19wdCgpO1RwdCgpO0xwdCgpO0RwdCgpOyRwdCgpO0FwdCgpO0VwdCgpO0lwdCgpO1BwdCgpO05wdCgpO09wdCgpO1JwdCgpO0ZwdCgpO0JwdCgpO0hwdCgpO3FwdCgpO1ZwdCgpO2pwdCgpO1VwdCgpO1dwdCgpO0dwdCgpO1lwdCgpO0twdCgpO1pwdCgpO1FwdCgpO1hwdCgpO0pwdCgpO2VmdCgpO3RmdCgpO3JmdCgpO2FmdCgpO2lmdCgpO3NmdCgpO25mdCgpO29mdCgpO2xmdCgpO2NmdCgpO2RmdCgpO3VmdCgpO3BmdCgpO2ZmdCgpO2hmdCgpO21mdCgpO2dmdCgpO2JmdCgpO3hmdCgpO3ZmdCgpO3lmdCgpO3dmdCgpO2tmdCgpO1NmdCgpO01mdCgpO0NmdCgpO3pmdCgpO19mdCgpO1RmdCgpO0xmdCgpO0RmdCgpOyRmdCgpO0FmdCgpO0VmdCgpO0lmdCgpO1BmdCgpO05mdCgpO09mdCgpO1JmdCgpO0ZmdCgpO0JmdCgpO0hmdCgpO3FmdCgpO1ZmdCgpO2pmdCgpO1VmdCgpO1dmdCgpO0dmdCgpO1lmdCgpO0tmdCgpO1pmdCgpO1FmdCgpO1hmdCgpO0pmdCgpO2VodCgpO3RodCgpO3JodCgpO2FodCgpO2lodCgpO3NodCgpO25odCgpO29odCgpO2xodCgpO2NodCgpO2RodCgpO3VodCgpO3BodCgpO2ZodCgpO2hodCgpO21odCgpO2dodCgpO2JodCgpO3hodCgpO3ZodCgpO3lodCgpO3dodCgpO2todCgpO1NodCgpO01odCgpO0NodCgpO3podCgpO19odCgpO1RodCgpO0xodCgpO0RodCgpOyRodCgpO0FodCgpO0VodCgpO0lodCgpO1BodCgpO05odCgpO09odCgpO1JodCgpO0ZodCgpO0JodCgpO0hodCgpO3FodCgpO1ZodCgpO2podCgpO1VodCgpO1dodCgpO0dodCgpO1lodCgpO0todCgpO1podCgpO1FodCgpO1hodCgpO0podCgpO2U2dCgpO3Q2dCgpO3I2dCgpO2E2dCgpO2k2dCgpO3M2dCgpO242dCgpO282dCgpO2w2dCgpO2M2dCgpO2Q2dCgpO3U2dCgpO3A2dCgpO2Y2dCgpO2g2dCgpO202dCgpO2c2dCgpO2I2dCgpO3g2dD1pKCh7aWNvbnM6dD17fSxuYW1lQXR0cjplPSJkYXRhLWx1Y2lkZSIsYXR0cnM6cj17fSxyb290OmE9ZG9jdW1lbnQsaW5UZW1wbGF0ZXM6c309e30pPT57aWYoIU9iamVjdC52YWx1ZXModCkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgUGxlYXNlIHByb3ZpZGUgYW4gaWNvbnMgb2JqZWN0LgpJZiB5b3Ugd2FudCB0byB1c2UgYWxsIHRoZSBpY29ucyB5b3UgY2FuIGltcG9ydCBpdCBsaWtlOgogXGBpbXBvcnQgeyBjcmVhdGVJY29ucywgaWNvbnMgfSBmcm9tICdsdWNpZGUnOwpsdWNpZGUuY3JlYXRlSWNvbnMoe2ljb25zfSk7XGBgKTtpZih0eXBlb2YgYT4idSIpdGhyb3cgbmV3IEVycm9yKCJgY3JlYXRlSWNvbnMoKWAgb25seSB3b3JrcyBpbiBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIik7aWYoQXJyYXkuZnJvbShhLnF1ZXJ5U2VsZWN0b3JBbGwoYFske2V9XWApKS5mb3JFYWNoKG89PkxwZShvLHtuYW1lQXR0cjplLGljb25zOnQsYXR0cnM6cn0pKSxzJiZBcnJheS5mcm9tKGEucXVlcnlTZWxlY3RvckFsbCgidGVtcGxhdGUiKSkuZm9yRWFjaChsPT54NnQoe2ljb25zOnQsbmFtZUF0dHI6ZSxhdHRyczpyLHJvb3Q6bC5jb250ZW50LGluVGVtcGxhdGVzOnN9KSksZT09PSJkYXRhLWx1Y2lkZSIpe2xldCBvPWEucXVlcnlTZWxlY3RvckFsbCgiW2ljb24tbmFtZV0iKTtvLmxlbmd0aD4wJiYoY29uc29sZS53YXJuKCJbTHVjaWRlXSBTb21lIGljb25zIHdlcmUgZm91bmQgd2l0aCB0aGUgbm93IGRlcHJlY2F0ZWQgaWNvbi1uYW1lIGF0dHJpYnV0ZS4gVGhlc2Ugd2lsbCBzdGlsbCBiZSByZXBsYWNlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGJ1dCB3aWxsIG5vIGxvbmdlciBiZSBzdXBwb3J0ZWQgaW4gdjEuMCBhbmQgeW91IHNob3VsZCBzd2l0Y2ggdG8gZGF0YS1sdWNpZGUiKSxBcnJheS5mcm9tKG8pLmZvckVhY2gobD0+THBlKGwse25hbWVBdHRyOiJpY29uLW5hbWUiLGljb25zOnQsYXR0cnM6cn0pKSl9fSwiY3JlYXRlSWNvbnMiKX0pO3ZhciBCVnIsSFZyPXUoKCk9Pnt2ZSgpO0tyKCk7RHBlKCk7QlZyPWkoKCk9PntsZXQgdD1PYmplY3Qua2V5cygkcGUuZmEpO2NvbnNvbGUubG9nKCJGaXJzdCBmZXcgTHVjaWRlIGtleXM6IixPYmplY3Qua2V5cyhhZCkuc2xpY2UoMCw1KSk7bGV0IGU9T2JqZWN0LmtleXMoYWQpLmZpbHRlcihuPT57bGV0IG89blswXT09PW5bMF0udG9VcHBlckNhc2UoKSYmblswXSE9PW5bMF0udG9Mb3dlckNhc2UoKSxsPXR5cGVvZiBhZFtuXT09ImZ1bmN0aW9uIixjPSFbImNyZWF0ZUVsZW1lbnQiLCJjcmVhdGVJY29ucyIsImRlZmF1bHQiXS5pbmNsdWRlcyhuKTtyZXR1cm4gbCYmbyYmY30pLm1hcChuPT5uLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpK24uc2xpY2UoMSkpO2lmKGNvbnNvbGUubG9nKGBGb3VuZCAke2UubGVuZ3RofSBMdWNpZGUgaWNvbnNgKSxlLmxlbmd0aD09PTAmJihjb25zb2xlLmxvZygiVHJ5aW5nIGFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIGZpbmQgTHVjaWRlIGljb25zIiksZjkpKXtsZXQgbj1mOXx8e307ZS5wdXNoKC4uLk9iamVjdC5rZXlzKG4pKSxjb25zb2xlLmxvZyhgRm91bmQgJHtlLmxlbmd0aH0gaWNvbnMgdmlhIGFsdGVybmF0aXZlIG1ldGhvZGApfWxldCByPWkoKCk9PntsZXQgbj10Lm1hcChkPT5gZmE6JHtkfWApLG89ZS5tYXAoZD0+YGx1Y2lkZToke2R9YCksbD1bLi4ubiwuLi5vXSxjPWwuam9pbihgCmApO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGMpLnRoZW4oKCk9PntsZXQgZj13aW5kb3cuZXZlbnQuY3VycmVudFRhcmdldCxwPWYudGV4dENvbnRlbnQ7Zi50ZXh0Q29udGVudD1gXHUyNzEzIENvcGllZCAke2wubGVuZ3RofSBpY29uIG5hbWVzIWAsc2V0VGltZW91dCgoKT0+e2YudGV4dENvbnRlbnQ9cH0sMmUzKX0pfSwiY29weUFsbEljb25OYW1lcyIpLGE9aShuPT57bGV0IG89bi50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCksbD1uLnRhcmdldC5jbG9zZXN0KCIuZGVtb0NvbnRhaW5lciIpO2wucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXIiKS5mb3JFYWNoKGQ9PntsZXQgZj1kLmdldEF0dHJpYnV0ZSgiZGF0YS1uYW1lIik7bz09PSIifHxmJiZmLmluY2x1ZGVzKG8pP2QuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6ZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pLGwucXVlcnlTZWxlY3RvckFsbCgiLnNlY3Rpb24tY29udGFpbmVyIikuZm9yRWFjaChkPT57bGV0IGY9ZC5xdWVyeVNlbGVjdG9yQWxsKCIuaWNvbkNvbnRhaW5lcjpub3QoLmhpZGRlbikiKS5sZW5ndGgscD1kLnF1ZXJ5U2VsZWN0b3IoIi5pY29uLWNvdW50Iik7aWYocCl7bGV0IGg9ZC5jbGFzc0xpc3QuY29udGFpbnMoImZhLXNlY3Rpb24iKT90Lmxlbmd0aDplLmxlbmd0aDtwLnRleHRDb250ZW50PWY9PT1oP2Ake2h9IGljb25zYDpgJHtmfSBvZiAke2h9IGljb25zYH19KX0sInNlYXJjaEljb25zIikscz1pKChuLG8pPT57bGV0IGw9YCR7b306JHtufWA7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQobCkudGhlbigoKT0+e2xldCBmPXdpbmRvdy5ldmVudC5jdXJyZW50VGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRvb2x0aXAiKTtmJiYoZi50ZXh0Q29udGVudD0iQ29waWVkISIsc2V0VGltZW91dCgoKT0+e2YudGV4dENvbnRlbnQ9IkNsaWNrIHRvIGNvcHkifSwyZTMpKX0pfSwiY29weUljb25OYW1lIik7cmV0dXJuIHdgCiAgPHN0eWxlPgogICAgLmRlbW9Db250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBiYWNrZ3JvdW5kOiAjMTExMTExOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmOwogICAgfQogICAgCiAgICAuc2VhcmNoLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDEwcHg7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoIHsKICAgICAgZmxleDogMTsKICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgIH0KICAgIAogICAgI2ljb25TZWFyY2g6Zm9jdXMgewogICAgICBvdXRsaW5lOiBub25lOwogICAgICBib3JkZXItY29sb3I6ICNlNDAwMmI7CiAgICB9CiAgICAKICAgIC5jb3B5LWFsbC1idXR0b24gewogICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICNlNDAwMmI7CiAgICAgIGNvbG9yOiAjZmZmOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogI2M0MDAxYjsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIH0KICAgIAogICAgZGVlcy1pY29uIHsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICB9CgogICAgLmljb25Db250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAyMHB4IDE2cHggMHB4IDE2cHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgICB9CgogICAgLmljb25OYW1lIHsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGNvbG9yOiAjY2NjOwogICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzOwogICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4OwogICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4OwogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgbWF4LXdpZHRoOiAxMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzMzMzsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogICAgCiAgICAuYXBpLW5vdGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjZTQwMDJiOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBwYWRkaW5nOiAxMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTQwMDJiOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI4LCAwLCA0MywgMC4xKTsKICAgIH0KICAgIAogICAgLmljb24tY291bnQgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjODg4OwogICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgIH0KICAgIAogICAgLmljb25zLWdyaWQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgIH0KICAgIAogICAgLmNvcHktdG9vbHRpcCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYmFja2dyb3VuZDogIzMzMzsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHRvcDogLTMwcHg7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CiAgICAKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIC5jb3B5LXRvb2x0aXAgewogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgIH0KICAgIAogICAgLmhpZGRlbiB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW9Db250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VhcmNoLWNvbnRhaW5lciI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaWNvblNlYXJjaCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBpY29ucy4uLiIgQGlucHV0PSR7YX0+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYWxsLWJ1dHRvbiIgQGNsaWNrPSR7cn0+8J+TiyBDb3B5IEFsbCBJY29uIE5hbWVzPC9idXR0b24+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iYXBpLW5vdGUiPgogICAgICBOZXcgQVBJOiBVc2UgPGNvZGU+aWNvbj0iZmE6aWNvbk5hbWUiPC9jb2RlPiBvciA8Y29kZT5pY29uPSJsdWNpZGU6aWNvbk5hbWUiPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmljb25GQTwvY29kZT4uIAogICAgICBDbGljayBhbnkgaWNvbiB0byBjb3B5IGl0cyBuZXcgZm9ybWF0IHRvIGNsaXBib2FyZC4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBmYS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgRm9udEF3ZXNvbWUgSWNvbnMKICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1jb3VudCI+JHt0Lmxlbmd0aH0gaWNvbnM8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpY29ucy1ncmlkIj4KICAgICAgICAke3QubWFwKG49PntsZXQgbz1gZmE6JHtufWA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBmYS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5zKG4sImZhIil9PgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke299IGljb25TaXplPSIyNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uTmFtZSI+ZmE6JHtufTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGFpbmVyIGx1Y2lkZS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgTHVjaWRlIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7ZS5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHtlLm1hcChuPT57bGV0IG89YGx1Y2lkZToke259YDtyZXR1cm4gd2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uQ29udGFpbmVyIGx1Y2lkZS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5zKG4sImx1Y2lkZSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtvfSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmx1Y2lkZToke259PC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29weS10b29sdGlwIj5DbGljayB0byBjb3B5PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CiAgYH0sImRlbW9GdW5jIil9KTtmdW5jdGlvbiBSRWEoKXtJeS5zaXplPnFWciYmQXJyYXkuZnJvbShJeS5rZXlzKCkpLnNsaWNlKDAscVZyLzUpLmZvckVhY2goZT0+SXkuZGVsZXRlKGUpKX12YXIgRXksdWMsT0VhLCRwZSxJeSxxVnIsVlZyLEtyPXUoKCk9Pnt2ZSgpO01yKCk7bHQoKTtiMHIoKTtrNXIoKTtIOXIoKTskVnIoKTtIVnIoKTtEcGUoKTtEcGUoKTtFeT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdWM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LE9FYT17YXJyb3dSaWdodDprcGUsYXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTphVCxiZWxsOmRwZSxidWc6Q3BlLGJ1aWxkaW5nOnZwZSxjYXJldExlZnQ6ZnBlLGNhcmV0UmlnaHQ6Y3BlLGNoZWNrOndwZSxjaXJjbGVJbmZvOnNULGNpcmNsZUNoZWNrOl9fLGNpcmNsZUNoZWNrU29saWQ6Sl8sY2lyY2xlWG1hcms6enksY2lyY2xlWG1hcmtTb2xpZDokeSxjbG9ja1JvdGF0ZUxlZnQ6ZVQsY29weTp1dWUsY29weVNvbGlkOnpwZSxkZXNrdG9wOmlULGV5ZTpwcGUsZXllU2xhc2g6X3BlLGZpbGVJbnZvaWNlOlNwZSxmaWxlSW52b2ljZURvbGxlcjpNcGUsZ2VhcjpRXyxncmlwOkF5LG1hZ25pZnlpbmdHbGFzczpZXyxtZXNzYWdlOkNfLG1lc3NhZ2VTb2xpZDpXXyxtb25leUNoZWNrRG9sbGFyOnJULG11Z0hvdDpUcGUsbWludXM6VV8sbmV0d29ya1dpcmVkOmJwZSxwYXBlcmNsaXA6eXBlLHBhc3RlOk1fLHBhc3RlU29saWQ6al8scGVuVG9TcXVhcmU6S18scGx1czp0VCxyZWNlaXB0OmhwZSxyc3M6R18sc2hhcmU6Wl8sc3VuOmR1ZSxzdW5Tb2xpZDpncGUsdGVybWluYWw6eHBlLHRyYXNoOm5ULHRyYXNoU29saWQ6blQsdHJhc2hDYW46el8sdHJhc2hDYW5Tb2xpZDpYXyx1c2VyczptcGUsd2FsbGV0OnVwZSx4bWFyazpFcCxmYWNlYm9vazpRM2UsZ29vZ2xlOkszZSxpbnN0YWdyYW06ZXVlLGxpbmtlZGluOlozZSxtZWRpdW06d18sc2xhY2s6WDNlLHRpa3RvazpKM2UsdHdpdHRlcjp0dWV9LCRwZT17ZmE6T0VhfSxJeT1uZXcgTWFwLHFWcj01MDA7aShSRWEsImxpbWl0Q2FjaGVTaXplIik7VlZyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pY29uIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJY29uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOmkoUz0+UywiZnJvbUF0dHJpYnV0ZSIpLHRvQXR0cmlidXRlOmkoUz0+UywidG9BdHRyaWJ1dGUiKX19KV0sYz1bUCh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOmkoUz0+UywiZnJvbUF0dHJpYnV0ZSIpLHRvQXR0cmlidXRlOmkoUz0+UywidG9BdHRyaWJ1dGUiKX19KV0scD1bUCh7dHlwZTpOdW1iZXJ9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpOdW1iZXJ9KV0sRXkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uRkEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Imljb25GQSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmljb25GQSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmljb25GQT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksRXkodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpY29uImluIFMsImhhcyIpLGdldDppKFM9PlMuaWNvbiwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmljb249T30sInNldCIpfSxtZXRhZGF0YTpffSxkLGYpLEV5KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Imljb25TaXplImluIFMsImhhcyIpLGdldDppKFM9PlMuaWNvblNpemUsImdldCIpLHNldDppKChTLE8pPT57Uy5pY29uU2l6ZT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGgsbSksRXkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY29sb3IiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jb2xvciwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmNvbG9yPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxFeSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0cm9rZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzdHJva2VXaWR0aCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnN0cm9rZVdpZHRoLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc3Ryb2tlV2lkdGg9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLE0pLEV5KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksTj1hPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89QlZyO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPXVjKHRoaXMsbyx2b2lkIDApO2dldCBpY29uRkEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaWNvbkZBKF8pe3RoaXMuI2U9X30jdD0odWModGhpcyxsKSx1Yyh0aGlzLGQsdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgaWNvbihfKXt0aGlzLiN0PV99I3I9KHVjKHRoaXMsZiksdWModGhpcyxoLHZvaWQgMCkpO2dldCBpY29uU2l6ZSgpe3JldHVybiB0aGlzLiNyfXNldCBpY29uU2l6ZShfKXt0aGlzLiNyPV99I2E9KHVjKHRoaXMsbSksdWModGhpcyxiLCJjdXJyZW50Q29sb3IiKSk7Z2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGNvbG9yKF8pe3RoaXMuI2E9X30jaT0odWModGhpcyxnKSx1Yyh0aGlzLGssMikpO2dldCBzdHJva2VXaWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCBzdHJva2VXaWR0aChfKXt0aGlzLiNpPV99bGFzdEljb249KHVjKHRoaXMsTSksbnVsbCk7bGFzdEljb25TaXplPW51bGw7bGFzdENvbG9yPW51bGw7bGFzdFN0cm9rZVdpZHRoPW51bGw7Y29uc3RydWN0b3IoKXtzdXBlcigpLFphLnNldHVwKCl9Z2V0RWZmZWN0aXZlSWNvbigpe3JldHVybiB0aGlzLmljb24/dGhpcy5pY29uOnRoaXMuaWNvbkZBP3RoaXMuaWNvbkZBLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT90aGlzLmljb25GQTpgZmE6JHt0aGlzLmljb25GQX1gOm51bGx9cGFyc2VJY29uU3RyaW5nKF8pe2xldCBTPV8udG9Mb3dlckNhc2UoKTtyZXR1cm4gUy5zdGFydHNXaXRoKCJmYToiKT97dHlwZToiZmEiLG5hbWU6Xy5zdWJzdHJpbmcoMyl9OlMuc3RhcnRzV2l0aCgibHVjaWRlOiIpP3t0eXBlOiJsdWNpZGUiLG5hbWU6Xy5zdWJzdHJpbmcoNyl9Ont0eXBlOiJsdWNpZGUiLG5hbWU6X319cmVuZGVyTHVjaWRlSWNvbihfKXtsZXQgUz1gbHVjaWRlOiR7X306JHt0aGlzLmljb25TaXplfToke3RoaXMuY29sb3J9OiR7dGhpcy5zdHJva2VXaWR0aH1gO2lmKEl5LmhhcyhTKSlyZXR1cm4gSXkuZ2V0KFMpfHwiIjt0cnl7bGV0IE89Xy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStfLnNsaWNlKDEpO2lmKCFhZFtPXSlyZXR1cm4gY29uc29sZS53YXJuKGBMdWNpZGUgaWNvbiAnJHtPfScgbm90IGZvdW5kIGluIGx1Y2lkZUljb25zIG9iamVjdGApLCIiO2xldCBMPUlwKGFkW09dLHtjb2xvcjp0aGlzLmNvbG9yLHNpemU6dGhpcy5pY29uU2l6ZSxzdHJva2VXaWR0aDp0aGlzLnN0cm9rZVdpZHRofSk7aWYoIUwpcmV0dXJuIGNvbnNvbGUud2FybihgY3JlYXRlRWxlbWVudCByZXR1cm5lZCBlbXB0eSByZXN1bHQgZm9yICR7T31gKSwiIjtsZXQgRT1MLm91dGVySFRNTDtyZXR1cm4gSXkuc2V0KFMsRSksUkVhKCksRX1jYXRjaChPKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIEx1Y2lkZSBpY29uICR7X306YCxPKSxgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIke3RoaXMuaWNvblNpemV9IiBoZWlnaHQ9IiR7dGhpcy5pY29uU2l6ZX0iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIke3RoaXMuY29sb3J9IiBzdHJva2Utd2lkdGg9IiR7dGhpcy5zdHJva2VXaWR0aH0iIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGZvbnQtc2l6ZT0iNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgZmlsbD0iJHt0aGlzLmNvbG9yfSI+JHtffTwvdGV4dD4KICAgICAgPC9zdmc+YH19c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAvKiBJbXByb3ZlIHJlbmRlcmluZyBwZXJmb3JtYW5jZSAqLwogICAgICAjaWNvbkNvbnRhaW5lciBzdmcgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyAvKiBIZWxwcyB3aXRoIGFuaW1hdGlvbnMgKi8KICAgICAgICBjb250YWluOiBzdHJpY3Q7IC8qIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiAqLwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHtaYS5zdHlsZXN9CiAgICAgIDxzdHlsZT4KICAgICAgICAjaWNvbkNvbnRhaW5lciB7CiAgICAgICAgICB3aWR0aDogJHt0aGlzLmljb25TaXplfXB4OwogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuaWNvblNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGlkPSJpY29uQ29udGFpbmVyIj48L2Rpdj4KICAgIGB9dXBkYXRlZCgpe3RoaXMuaWNvblNpemV8fCh0aGlzLmljb25TaXplPXBhcnNlSW50KGdsb2JhbFRoaXMuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5mb250U2l6ZS5yZXBsYWNlKC9cRC9nLCIiKSkpO2xldCBfPXRoaXMuZ2V0RWZmZWN0aXZlSWNvbigpO2lmKHRoaXMubGFzdEljb249PT1fJiZ0aGlzLmxhc3RJY29uU2l6ZT09PXRoaXMuaWNvblNpemUmJnRoaXMubGFzdENvbG9yPT09dGhpcy5jb2xvciYmdGhpcy5sYXN0U3Ryb2tlV2lkdGg9PT10aGlzLnN0cm9rZVdpZHRoKXJldHVybjt0aGlzLmxhc3RJY29uPV8sdGhpcy5sYXN0SWNvblNpemU9dGhpcy5pY29uU2l6ZSx0aGlzLmxhc3RDb2xvcj10aGlzLmNvbG9yLHRoaXMubGFzdFN0cm9rZVdpZHRoPXRoaXMuc3Ryb2tlV2lkdGg7bGV0IFM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIjaWNvbkNvbnRhaW5lciIpO2lmKCEoIVN8fCFfKSl0cnl7bGV0e3R5cGU6TyxuYW1lOkx9PXRoaXMucGFyc2VJY29uU3RyaW5nKF8pO2lmKE89PT0ibHVjaWRlIil7Uy5pbm5lckhUTUw9IiI7dHJ5e2xldCBFPUwuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrTC5zbGljZSgxKTtpZihhZFtFXSl7bGV0IEI9SXAoYWRbRV0se2NvbG9yOnRoaXMuY29sb3Isc2l6ZTp0aGlzLmljb25TaXplLHN0cm9rZVdpZHRoOnRoaXMuc3Ryb2tlV2lkdGh9KTtpZihCKXtTLmFwcGVuZENoaWxkKEIpO3JldHVybn19dGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIGVsZW1lbnQgZm9yICR7RX1gKX1jYXRjaChFKXtjb25zb2xlLmVycm9yKCJFcnJvciByZW5kZXJpbmcgTHVjaWRlIGljb246IixFKTtsZXQgQj10aGlzLnJlbmRlckx1Y2lkZUljb24oTCk7QiYmKFMuaW5uZXJIVE1MPUIpfX1lbHNle2xldCBFPSRwZS5mYVtMXTtpZihFKXtsZXQgQj1MRWUoRSkuaHRtbFswXTtTLmlubmVySFRNTD1CfWVsc2UgY29uc29sZS53YXJuKGBGb250QXdlc29tZSBpY29uIG5vdCBmb3VuZDogJHtMfWApfX1jYXRjaChPKXtjb25zb2xlLmVycm9yKGBFcnJvciB1cGRhdGluZyBpY29uICR7X306YCxPKX19YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMubGFzdEljb249bnVsbCx0aGlzLmxhc3RJY29uU2l6ZT1udWxsLHRoaXMubGFzdENvbG9yPW51bGwsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9bnVsbH1zdGF0aWN7dWMoYSxyKX19O3JldHVybiBOPWF9KSgpfSk7dmFyIGpWcix2NnQsQ3Isc3M9dSgoKT0+e3ZuKCk7TjJyKCk7dmUoKTtNcigpO25jKCk7T28oKTtLcigpO2x0KCk7alZyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSx2NnQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LENyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1jb250ZXh0bWVudSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQ29udGV4dG1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGpWcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibWVudUl0ZW1zImluIGYsImhhcyIpLGdldDppKGY9PmYubWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YubWVudUl0ZW1zPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxqVnIobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1QMnI7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGNvbnRleHRNZW51RGVhY3RpdmF0ZWQ9ITE7c3RhdGljIGFjY3VtdWxhdGVkTWVudUl0ZW1zPVtdO3N0YXRpYyBpbml0aWFsaXplR2xvYmFsTGlzdGVuZXIoKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsZD0+e2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47ZC5wcmV2ZW50RGVmYXVsdCgpLGMuYWNjdW11bGF0ZWRNZW51SXRlbXM9W107bGV0IGY9ZC5jb21wb3NlZFBhdGgoKTtmb3IobGV0IHAgb2YgZilpZihwLmdldENvbnRleHRNZW51SXRlbXMpe2xldCBoPXAuZ2V0Q29udGV4dE1lbnVJdGVtcygpO2gmJmgubGVuZ3RoPjAmJihjLmFjY3VtdWxhdGVkTWVudUl0ZW1zLmxlbmd0aD4wJiZjLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goe2RpdmlkZXI6ITB9KSxjLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goLi4uaCkpfWMub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZCxjLmFjY3VtdWxhdGVkTWVudUl0ZW1zKX0pfXN0YXRpYyBhc3luYyBvcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhkLGYpe2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHA9bmV3IGM7cC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHAuc3R5bGUuekluZGV4PVN0cmluZyhqcy5vdmVybGF5LmNvbnRleHRNZW51KSxwLnN0eWxlLm9wYWNpdHk9IjAiLHAuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIscC5tZW51SXRlbXM9ZixwLndpbmRvd0xheWVyPWF3YWl0IHluLmNyZWF0ZUFuZFNob3coKSxwLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYyB5PT57eS50YXJnZXQuY2xvc2VzdCgiZGVlcy1jb250ZXh0bWVudSIpfHxhd2FpdCBwLmRlc3Ryb3koKX0pLGRvY3VtZW50LmJvZHkuYXBwZW5kKHApLGF3YWl0IGNyLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IGg9cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPXdpbmRvdy5pbm5lcldpZHRoLHY9d2luZG93LmlubmVySGVpZ2h0LGI9ZC5jbGllbnRZLGc9ZC5jbGllbnRYO2craC53aWR0aD5tJiYoZz1tLWgud2lkdGgtMTApLGIraC5oZWlnaHQ+diYmKGI9di1oLmhlaWdodC0xMCksZzwxMCYmKGc9MTApLGI8MTAmJihiPTEwKSxwLnN0eWxlLnRvcD1gJHtifXB4YCxwLnN0eWxlLmxlZnQ9YCR7Z31weGAscC5zdHlsZS50cmFuc2Zvcm1PcmlnaW49InRvcCBsZWZ0Iixhd2FpdCBjci5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHAuc3R5bGUub3BhY2l0eT0iMSIscC5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkifSNlPXY2dCh0aGlzLG8sW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKGQpe3RoaXMuI2U9ZH13aW5kb3dMYXllcj12NnQodGhpcyxsKTtzdWJtZW51PW51bGw7c3VibWVudVRpbWVvdXQ9bnVsbDtwYXJlbnRNZW51PW51bGw7aXNEZXN0cm95aW5nPSExO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRhYkluZGV4PTB9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDI4MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7eC5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWVudWl0ZW0uaGFzLXN1Ym1lbnU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAn4oC6JzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAubWVudWl0ZW06YWN0aXZlOm5vdCguaGFzLXN1Ym1lbnUpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tZW51aXRlbS5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubWVudWl0ZW0tc2hvcnRjdXQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChkPT57aWYoImRpdmlkZXIiaW4gZCYmZC5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9Im1lbnUtZGl2aWRlciI+PC9kaXY+YDtsZXQgZj1kLHA9Zi5zdWJtZW51JiZmLnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9Im1lbnVpdGVtICR7Zi5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSAke3A/Imhhcy1zdWJtZW51IjoiIn0iIAogICAgICAgICAgICAgIEBjbGljaz0keygpPT4hZi5kaXNhYmxlZCYmIXAmJnRoaXMuaGFuZGxlQ2xpY2soZil9CiAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUhvdmVyKGYscCl9CiAgICAgICAgICAgICAgQG1vdXNlbGVhdmU9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke2YuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Zi5pY29uTmFtZX0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnVpdGVtLXRleHQiPiR7Zi5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAke2Yuc2hvcnRjdXQmJiFwP3dgCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tc2hvcnRjdXQiPiR7Zi5zaG9ydGN1dH08L3NwYW4+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSl9CiAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5sZW5ndGg9PT0wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIiBAY2xpY2s9JHsoKT0+e2MuY29udGV4dE1lbnVEZWFjdGl2YXRlZD0hMCx0aGlzLmRlc3Ryb3koKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249Imx1Y2lkZTp4Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tdGV4dCI+QWxsb3cgbmF0aXZlIGNvbnRleHQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6d2BgfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5mb2N1cygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlkb3duKX1oYW5kbGVLZXlkb3duPWkoZD0+e2xldCBmPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51aXRlbTpub3QoLmRpc2FibGVkKSIpKSxwPWYuZmluZEluZGV4KGg9PmgubWF0Y2hlcygiOmhvdmVyIikpO3N3aXRjaChkLmtleSl7Y2FzZSJBcnJvd0Rvd24iOmQucHJldmVudERlZmF1bHQoKTtsZXQgaD1wKzE8Zi5sZW5ndGg/cCsxOjA7ZltoXS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJtb3VzZWVudGVyIikpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6ZC5wcmV2ZW50RGVmYXVsdCgpO2xldCBtPXAtMT49MD9wLTE6Zi5sZW5ndGgtMTtmW21dLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoIm1vdXNlZW50ZXIiKSk7YnJlYWs7Y2FzZSJFbnRlciI6ZC5wcmV2ZW50RGVmYXVsdCgpLHA+PTAmJmZbcF0uY2xpY2soKTticmVhaztjYXNlIkVzY2FwZSI6ZC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVzdHJveSgpO2JyZWFrfX0sImhhbmRsZUtleWRvd24iKTthc3luYyBoYW5kbGVDbGljayhkKXtkLmFjdGlvbigpLGF3YWl0IHRoaXMuZGVzdHJveUFsbCgpfWFzeW5jIGhhbmRsZU1lbnVJdGVtSG92ZXIoZCxmKXt0aGlzLnN1Ym1lbnVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9bnVsbCksdGhpcy5zdWJtZW51JiZhd2FpdCB0aGlzLmhpZGVTdWJtZW51KCksZiYmZC5zdWJtZW51JiYodGhpcy5zdWJtZW51VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zaG93U3VibWVudShkKX0sMjAwKSl9aGFuZGxlTWVudUl0ZW1MZWF2ZSgpe3RoaXMuc3VibWVudVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnN1Ym1lbnUmJiF0aGlzLnN1Ym1lbnUubWF0Y2hlcygiOmhvdmVyIikmJnRoaXMuaGlkZVN1Ym1lbnUoKX0sMzAwKX1hc3luYyBzaG93U3VibWVudShkKXtpZighZC5zdWJtZW51fHxkLnN1Ym1lbnUubGVuZ3RoPT09MClyZXR1cm47bGV0IHA9QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLm1lbnVpdGVtIikpLmZpbmQoaz0+ay5xdWVyeVNlbGVjdG9yKCIubWVudWl0ZW0tdGV4dCIpPy50ZXh0Q29udGVudD09PWQubmFtZSk7aWYoIXApcmV0dXJuO3RoaXMuc3VibWVudT1uZXcgYyx0aGlzLnN1Ym1lbnUubWVudUl0ZW1zPWQuc3VibWVudSx0aGlzLnN1Ym1lbnUucGFyZW50TWVudT10aGlzLHRoaXMuc3VibWVudS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3VibWVudS5zdHlsZS56SW5kZXg9U3RyaW5nKHBhcnNlSW50KHRoaXMuc3R5bGUuekluZGV4KSsxKSx0aGlzLnN1Ym1lbnUuc3R5bGUub3BhY2l0eT0iMCIsdGhpcy5zdWJtZW51LnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMC45NSkiLGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMuc3VibWVudSksYXdhaXQgY3Iuc21hcnRkZWxheS5kZWxheUZvcigwKTtsZXQgaD1wLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG09dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PXRoaXMuc3VibWVudS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPXdpbmRvdy5pbm5lcldpZHRoLGc9bS5yaWdodC00LHk9aC50b3A7Zyt2LndpZHRoPmItMTAmJihnPW0ubGVmdC12LndpZHRoKzQpLHkrdi5oZWlnaHQ+d2luZG93LmlubmVySGVpZ2h0LTEwJiYoeT13aW5kb3cuaW5uZXJIZWlnaHQtdi5oZWlnaHQtMTApLHRoaXMuc3VibWVudS5zdHlsZS5sZWZ0PWAke2d9cHhgLHRoaXMuc3VibWVudS5zdHlsZS50b3A9YCR7eX1weGAsYXdhaXQgY3Iuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnN1Ym1lbnUuc3R5bGUub3BhY2l0eT0iMSIsdGhpcy5zdWJtZW51LnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMSkiLHRoaXMuc3VibWVudS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwoKT0+e3RoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKX0pLHRoaXMuc3VibWVudS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwoKT0+e3RoaXMuaGFuZGxlTWVudUl0ZW1MZWF2ZSgpfSl9YXN5bmMgaGlkZVN1Ym1lbnUoKXt0aGlzLnN1Ym1lbnUmJihhd2FpdCB0aGlzLnN1Ym1lbnUuZGVzdHJveSgpLHRoaXMuc3VibWVudT1udWxsKX1hc3luYyBkZXN0cm95KCl7dGhpcy5pc0Rlc3Ryb3lpbmd8fCh0aGlzLmlzRGVzdHJveWluZz0hMCx0aGlzLnN1Ym1lbnVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9bnVsbCksdGhpcy5zdWJtZW51JiYoYXdhaXQgdGhpcy5zdWJtZW51LmRlc3Ryb3koKSx0aGlzLnN1Ym1lbnU9bnVsbCksdGhpcy53aW5kb3dMYXllciYmIXRoaXMucGFyZW50TWVudSYmdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksdGhpcy5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMC45NSkgdHJhbnNsYXRlWSgtMTBweCkiLGF3YWl0IGNyLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTAwKSx0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKSl9YXN5bmMgZGVzdHJveUFsbCgpe2xldCBkPXRoaXM7Zm9yKDtkLnBhcmVudE1lbnU7KWQ9ZC5wYXJlbnRNZW51O2F3YWl0IGQuZGVzdHJveSgpfXN0YXRpY3t2NnQoYSxyKX19O3JldHVybiBjPWF9KSgpO0NyLmluaXRpYWxpemVHbG9iYWxMaXN0ZW5lcigpfSk7dmFyIFVWcix5NnQsRkVhLFdWcj11KCgpPT57dmUoKTtVVnI9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHk2dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sRkVhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1kZW1vd3JhcHBlciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzRGVtb1dyYXBwZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHthdHRyaWJ1dGU6ITF9KV0sVVZyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InJ1bkFmdGVyUmVuZGVyImluIGYsImhhcyIpLGdldDppKGY9PmYucnVuQWZ0ZXJSZW5kZXIsImdldCIpLHNldDppKChmLHApPT57Zi5ydW5BZnRlclJlbmRlcj1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksVVZyKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9I2U9eTZ0KHRoaXMsbyx2b2lkIDApO2dldCBydW5BZnRlclJlbmRlcigpe3JldHVybiB0aGlzLiNlfXNldCBydW5BZnRlclJlbmRlcihkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bcmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBuZXcgUHJvbWlzZShkPT5zZXRUaW1lb3V0KGQsNTApKSx0aGlzLmNoaWxkcmVuLmxlbmd0aD4wJiZ0aGlzLnJ1bkFmdGVyUmVuZGVyKXRyeXthd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNhdGNoKGQpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGluIHJ1bkFmdGVyUmVuZGVyOiIsZCl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx5NnQodGhpcyxsKX1zdGF0aWN7eTZ0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciB3YT11KCgpPT57V1ZyKCl9KTt2YXIgR1ZyLFlWcj11KCgpPT57dmUoKTt3YSgpO0dWcj1pKCgpPT57bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpO3JldHVybiBzZXRUaW1lb3V0KCgpPT57dC5hZGRNYW55KFt7dHlwZToibG9naW4iLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJsb2dnZWQgaW4gZnJvbSBDaHJvbWUgb24gbWFjT1MifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZTonY3JlYXRlZCBhIG5ldyBwcm9qZWN0ICJGcm9udGVuZCBBcHAiJ30se3R5cGU6InVwZGF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToidXBkYXRlZCBBUEkgZG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJ2aWV3Iix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToidmlld2VkIGRhc2hib2FyZCBhbmFseXRpY3MifSx7dHlwZToiZGVsZXRlIix1c2VyOiJBZG1pbiIsbWVzc2FnZToicmVtb3ZlZCBkZXByZWNhdGVkIGVuZHBvaW50In0se3R5cGU6ImN1c3RvbSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJzY2hlZHVsZWQgYmFja3VwIGNvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSJ9LHt0eXBlOiJsb2dvdXQiLHVzZXI6IkFsaWNlIEJyb3duIixtZXNzYWdlOiJsb2dnZWQgb3V0In0se3R5cGU6ImNyZWF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToiY3JlYXRlZCBpbnZvaWNlICMxMjM0In1dKSx0LmVudHJpZXMkLnN1YnNjcmliZShlPT57Y29uc29sZS5sb2coIkFjdGl2aXR5IGxvZyB1cGRhdGVkOiIsZS5sZW5ndGgsImVudHJpZXMiKX0pfSwxMDApLHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzA5MDkwYiIpfTsKICAgICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgICAgJHt0fQogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBBcGUsaDksS1ZyLHc2dD11KCgpPT57dmUoKTtNcigpO3NzKCk7S3IoKTtZVnIoKTtsdCgpO0FwZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0saDk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEtWcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpQWN0aXZpdHlsb2ciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtpZSgpXSxjPVtpZSgpXSxwPVtpZSgpXSxBcGUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJlbnRyaWVzImluIGcsImhhcyIpLGdldDppKGc9PmcuZW50cmllcywiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmVudHJpZXM9eX0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLEFwZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJzZWFyY2hRdWVyeSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuc2VhcmNoUXVlcnk9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLEFwZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlckNyaXRlcmlhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJmaWx0ZXJDcml0ZXJpYSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmZpbHRlckNyaXRlcmlhLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuZmlsdGVyQ3JpdGVyaWE9eX0sInNldCIpfSxtZXRhZGF0YTpifSxoLG0pLEFwZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHIpLHY9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPUdWcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPWg5KHRoaXMsbyxbXSk7Z2V0IGVudHJpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50cmllcyhiKXt0aGlzLiNlPWJ9I3Q9KGg5KHRoaXMsbCksaDkodGhpcyxkLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KGIpe3RoaXMuI3Q9Yn0jcj0oaDkodGhpcyxmKSxoOSh0aGlzLGgse30pKTtnZXQgZmlsdGVyQ3JpdGVyaWEoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsdGVyQ3JpdGVyaWEoYil7dGhpcy4jcj1ifWVudHJpZXMkPShoOSh0aGlzLG0pLG5ldyBjci5zbWFydHJ4LnJ4anMuU3ViamVjdCk7c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgLyogQ1NTIFZhcmlhYmxlcyBhbGlnbmVkIHdpdGggc2Vjb25kYXJ5IG1lbnUgKi8KICAgICAgICAtLWFjdGl2aXR5bG9nLWJnOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZzogJHt4LmJkVGhlbWUoIiM1MjUyNTIiLCIjYTNhM2EzIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQ6ICR7eC5iZFRoZW1lKCIjNzM3MzczIiwiIzczNzM3MyIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZTogJHt4LmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctYm9yZGVyOiAke3guYmRUaGVtZSgiI2U1ZTVlNSIsIiMxYTFhMWEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1ob3ZlcjogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctYWNjZW50OiAke3guYmRUaGVtZSgiIzc4NzE2YyIsIiNiNWE5OWEiKX07CgogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAyODBweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyIHdpdGggc3RyZWFtaW5nIGluZGljYXRvciAqLwogICAgICAudG9wYmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50b3BiYXIgLmhlYWRpbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubGl2ZS1pbmRpY2F0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLmxpdmUtaW5kaWNhdG9yIC5kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHB1bHNlIHsKICAgICAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuNTsgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOyB9CiAgICAgICAgNTAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGNvbnRhaW5lciAqLwogICAgICAuYWN0aXZpdHlDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDQ4cHg7CiAgICAgICAgYm90dG9tOiA0OHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkNCIsIiMzMzMzMzMiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Q0ZDRkNCIsIiMzMzMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2EzYTNhMyIsIiM1MjUyNTIiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4IDE2cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLyogRGF0ZSBzZXBhcmF0b3IgLSB3YXJtIHRhdXBlIHN0eWxpbmcgKi8KICAgICAgLmRhdGUtc2VwYXJhdG9yIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1hY2NlbnQpOwogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICB9CgogICAgICAvKiBBY3Rpdml0eSBlbnRyeSAtIG1vZGVybiBzdGFja2VkIGxheW91dCAqLwogICAgICAuYWN0aXZpdHllbnRyeSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIG1hcmdpbjogMnB4IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4ycyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW4gewogICAgICAgIGZyb20gewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eWVudHJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgbWFyZ2luLXRvcDogMXB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5sb2dpbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMzQsIDE5NywgOTQsIDAuMDgpIiwicmdiYSgzNCwgMTk3LCA5NCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzRhZGU4MCIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24ubG9nb3V0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4wOCkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi52aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDgpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmNyZWF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjA4KSIsInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM5MzMzZWEiLCIjYzA4NGZjIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi51cGRhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDI1MSwgMTQ2LCA2MCwgMC4wOCkiLCJyZ2JhKDI1MSwgMTQ2LCA2MCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uZGVsZXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4wOCkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5jdXN0b20gewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDEwMCwgMTE2LCAxMzksIDAuMDgpIiwicmdiYSgxMDAsIDExNiwgMTM5LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM0NzU1NjkiLCIjOTRhM2I4Iil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS11c2VyIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXNlcGFyYXRvciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IE1vbm8nLCBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmcpOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC8qIFNlYXJjaCBib3ggLSByZWZpbmVkIHN0eWxpbmcgKi8KICAgICAgLnNlYXJjaGJveCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWFjdGl2aXR5bG9nLWJvcmRlcik7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlYXJjaC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0IHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCkiKX07CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4IDAgMzRweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjE1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLXdyYXBwZXI6aGFzKGlucHV0OmZvY3VzKSAuc2VhcmNoLWljb24gewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBiPXRoaXMuZ2V0RmlsdGVyZWRFbnRyaWVzKCksZz10aGlzLmdyb3VwRW50cmllc0J5RGF0ZShiKTtyZXR1cm4gd2AKICAgICAgJHtaYS5zdHlsZXN9CiAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyI+QWN0aXZpdHkgTG9nPC9kaXY+CiAgICAgICAgICAke2IubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJsaXZlLWluZGljYXRvciI+PHNwYW4gY2xhc3M9ImRvdCI+PC9zcGFuPkxpdmU8L2Rpdj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5Q29udGFpbmVyIj4KICAgICAgICAgICR7Yi5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIGFjdGl2aXR5IGVudHJpZXM8L2Rpdj5gOmcubWFwKHk9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtc2VwYXJhdG9yIj4ke3kubGFiZWx9PC9kaXY+CiAgICAgICAgICAgICAgICAgICR7eS5lbnRyaWVzLm1hcChrPT50aGlzLnJlbmRlckFjdGl2aXR5RW50cnkoaykpfQogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0ic2VhcmNoLWljb24iIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGFjdGl2aXRpZXMsIHVzZXJzLi4uIgogICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VhcmNoUXVlcnl9CiAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVTZWFyY2hJbnB1dH0KICAgICAgICAgICAgLz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aXZpdHlFbnRyeShiKXtsZXQgZz1iLnRpbWVzdGFtcHx8bmV3IERhdGUseT10aGlzLmZvcm1hdFRpbWUoZyksaz1iLmljb25OYW1lfHx0aGlzLmdldEljb25Gb3JUeXBlKGIudHlwZSk7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYWN0aXZpdHllbnRyeSIKICAgICAgICBAY29udGV4dG1lbnU9JHtNPT50aGlzLmhhbmRsZUNvbnRleHRNZW51KE0sYil9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1pY29uICR7Yi50eXBlfSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7a30+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1oZWFkZXIiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWN0aXZpdHktdXNlciI+JHtiLnVzZXJ9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWN0aXZpdHktc2VwYXJhdG9yIj7Ctzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpbWVzdGFtcCI+JHt5fTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktbWVzc2FnZSI+JHtiLm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hZGQoYil7bGV0IGc9ey4uLmIsaWQ6Yi5pZHx8dGhpcy5nZW5lcmF0ZUlkKCksdGltZXN0YW1wOmIudGltZXN0YW1wfHxuZXcgRGF0ZX07dGhpcy5lbnRyaWVzPVtnLC4uLnRoaXMuZW50cmllc10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9YWRkTWFueShiKXtsZXQgZz1iLm1hcCh5PT4oey4uLnksaWQ6eS5pZHx8dGhpcy5nZW5lcmF0ZUlkKCksdGltZXN0YW1wOnkudGltZXN0YW1wfHxuZXcgRGF0ZX0pKTt0aGlzLmVudHJpZXM9Wy4uLmcucmV2ZXJzZSgpLC4uLnRoaXMuZW50cmllc10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9Y2xlYXIoKXt0aGlzLmVudHJpZXM9W10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9Z2V0RW50cmllcygpe3JldHVyblsuLi50aGlzLmVudHJpZXNdfWZpbHRlcihiKXtyZXR1cm4gdGhpcy5lbnRyaWVzLmZpbHRlcihnPT4hKGIudXNlciYmZy51c2VyIT09Yi51c2VyfHxiLnR5cGUmJmcudHlwZSE9PWIudHlwZSkpfXNlYXJjaChiKXtsZXQgZz1iLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHRoaXMuZW50cmllcy5maWx0ZXIoeT0+eS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZyl8fHkudXNlci50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGcpKX1nZW5lcmF0ZUlkKCl7cmV0dXJuYGFjdGl2aXR5LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiw5KX1gfWdldEZpbHRlcmVkRW50cmllcygpe2xldCBiPXRoaXMuZW50cmllcztpZih0aGlzLnNlYXJjaFF1ZXJ5KXtsZXQgZz10aGlzLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCk7Yj1iLmZpbHRlcih5PT55Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhnKXx8eS51c2VyLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZykpfXJldHVybih0aGlzLmZpbHRlckNyaXRlcmlhLnVzZXJ8fHRoaXMuZmlsdGVyQ3JpdGVyaWEudHlwZSkmJihiPWIuZmlsdGVyKGc9PiEodGhpcy5maWx0ZXJDcml0ZXJpYS51c2VyJiZnLnVzZXIhPT10aGlzLmZpbHRlckNyaXRlcmlhLnVzZXJ8fHRoaXMuZmlsdGVyQ3JpdGVyaWEudHlwZSYmZy50eXBlIT09dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlKSkpLGJ9Z3JvdXBFbnRyaWVzQnlEYXRlKGIpe2xldCBnPW5ldyBNYXAseT1uZXcgRGF0ZSxrPW5ldyBEYXRlKHkpO2suc2V0RGF0ZShrLmdldERhdGUoKS0xKTtmb3IobGV0IE0gb2YgYil7bGV0IE49TS50aW1lc3RhbXB8fG5ldyBEYXRlLF87dGhpcy5pc1NhbWVEYXkoTix5KT9fPSJUb2RheSI6dGhpcy5pc1NhbWVEYXkoTixrKT9fPSJZZXN0ZXJkYXkiOl89Ti50b0xvY2FsZURhdGVTdHJpbmcoImVuLVVTIix7bW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLHllYXI6Ti5nZXRGdWxsWWVhcigpIT09eS5nZXRGdWxsWWVhcigpPyJudW1lcmljIjp2b2lkIDB9KSxnLmhhcyhfKXx8Zy5zZXQoXyxbXSksZy5nZXQoXykucHVzaChNKX1yZXR1cm4gQXJyYXkuZnJvbShnLmVudHJpZXMoKSkubWFwKChbTSxOXSk9Pih7bGFiZWw6TSxlbnRyaWVzOk59KSl9aXNTYW1lRGF5KGIsZyl7cmV0dXJuIGIuZ2V0RnVsbFllYXIoKT09PWcuZ2V0RnVsbFllYXIoKSYmYi5nZXRNb250aCgpPT09Zy5nZXRNb250aCgpJiZiLmdldERhdGUoKT09PWcuZ2V0RGF0ZSgpfWZvcm1hdFRpbWUoYil7cmV0dXJuIGIudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbi1VUyIse2hvdXI6IjItZGlnaXQiLG1pbnV0ZToiMi1kaWdpdCIsaG91cjEyOiExfSl9Z2V0SWNvbkZvclR5cGUoYil7bGV0IGc9e2xvZ2luOiJsdWNpZGU6bG9nSW4iLGxvZ291dDoibHVjaWRlOmxvZ091dCIsdmlldzoibHVjaWRlOmV5ZSIsY3JlYXRlOiJsdWNpZGU6cGx1cyIsdXBkYXRlOiJsdWNpZGU6ZWRpdCIsZGVsZXRlOiJsdWNpZGU6dHJhc2gyIixjdXN0b206Imx1Y2lkZTphY3Rpdml0eSJ9O3JldHVybiBnW2JdfHxnLmN1c3RvbX1oYW5kbGVTZWFyY2hJbnB1dChiKXtsZXQgZz1iLnRhcmdldDt0aGlzLnNlYXJjaFF1ZXJ5PWcudmFsdWV9aGFuZGxlQ29udGV4dE1lbnUoYixnKXtiLnByZXZlbnREZWZhdWx0KCksQ3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoYixbe25hbWU6IkNvcHkgYWN0aXZpdHkiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGAke2cudXNlcn0gJHtnLm1lc3NhZ2V9YCl9LCJhY3Rpb24iKX0se25hbWU6IkZpbHRlciBieSB1c2VyIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt1c2VyOmcudXNlcn19LCJhY3Rpb24iKX0se25hbWU6IkZpbHRlciBieSB0eXBlIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e3R5cGU6Zy50eXBlfX0sImFjdGlvbiIpfSx7bmFtZToiQ2xlYXIgZmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTp4IixhY3Rpb246aShhc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17fSx0aGlzLnNlYXJjaFF1ZXJ5PSIifSwiYWN0aW9uIil9XSl9c3RhdGlje2g5KGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBaVnI9dSgoKT0+e3c2dCgpfSk7dmFyIFFWcj11KCgpPT57fSk7dmFyIFhWcj11KCgpPT57dm4oKX0pO3ZhciBKVnI9dSgoKT0+e30pO3ZhciBlanI9dSgoKT0+e30pO3ZhciB0anI9dSgoKT0+e30pO3ZhciBQcD11KCgpPT57UVZyKCk7WFZyKCk7SlZyKCk7ZWpyKCk7dGpyKCl9KTt2YXIgcmpyLGFqcj11KCgpPT57dmUoKTt3YSgpO2s2dCgpO3Jqcj1pKCgpPT57bGV0IHQ9W3tuYW1lOiJGaWxlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyBGaWxlIixzaG9ydGN1dDoiQ21kK04iLGljb25OYW1lOiJmaWxlLXBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXcgZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4uLi4iLHNob3J0Y3V0OiJDbWQrTyIsaWNvbk5hbWU6ImZvbGRlci1vcGVuIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4gUmVjZW50IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6InByb2plY3QtYWxwaGEudHMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAxIiksImFjdGlvbiIpfSx7bmFtZToiY29uZmlnLmpzb24iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAyIiksImFjdGlvbiIpfSx7bmFtZToicmVhZG1lLm1kIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiByZWNlbnQgMyIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNhdmUiLHNob3J0Y3V0OiJDbWQrUyIsaWNvbk5hbWU6InNhdmUiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIiksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSBBcy4uLiIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtTIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSBhcyIpLCJhY3Rpb24iKSxkaXNhYmxlZDohMH0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeGl0IixzaG9ydGN1dDoiQ21kK1EiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeGl0IiksImFjdGlvbiIpfV19LHtuYW1lOiJFZGl0IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlVuZG8iLHNob3J0Y3V0OiJDbWQrWiIsaWNvbk5hbWU6InVuZG8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJVbmRvIiksImFjdGlvbiIpfSx7bmFtZToiUmVkbyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtaIixpY29uTmFtZToicmVkbyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlZG8iKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQ3V0IixzaG9ydGN1dDoiQ21kK1giLGljb25OYW1lOiJzY2lzc29ycyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkN1dCIpLCJhY3Rpb24iKX0se25hbWU6IkNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsaWNvbk5hbWU6ImNvcHkiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb3B5IiksImFjdGlvbiIpfSx7bmFtZToiUGFzdGUiLHNob3J0Y3V0OiJDbWQrViIsaWNvbk5hbWU6ImNsaXBib2FyZCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlBhc3RlIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZpbmQiLHNob3J0Y3V0OiJDbWQrRiIsaWNvbk5hbWU6InNlYXJjaCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkZpbmQiKSwiYWN0aW9uIil9LHtuYW1lOiJSZXBsYWNlIixzaG9ydGN1dDoiQ21kK0giLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBsYWNlIiksImFjdGlvbiIpfV19LHtuYW1lOiJWaWV3IixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IlRvZ2dsZSBGdWxsc2NyZWVuIixzaG9ydGN1dDoiRjExIixpY29uTmFtZToiZXhwYW5kIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiRnVsbHNjcmVlbiIpLCJhY3Rpb24iKX0se25hbWU6Ilpvb20gSW4iLHNob3J0Y3V0OiJDbWQrKyIsaWNvbk5hbWU6Inpvb20taW4iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIGluIiksImFjdGlvbiIpfSx7bmFtZToiWm9vbSBPdXQiLHNob3J0Y3V0OiJDbWQrLSIsaWNvbk5hbWU6Inpvb20tb3V0IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiWm9vbSBvdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJSZXNldCBab29tIixzaG9ydGN1dDoiQ21kKzAiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXNldCB6b29tIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlRvZ2dsZSBTaWRlYmFyIixzaG9ydGN1dDoiQ21kK0IiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgc2lkZWJhciIpLCJhY3Rpb24iKX0se25hbWU6IlRvZ2dsZSBUZXJtaW5hbCIsc2hvcnRjdXQ6IkNtZCtKIixpY29uTmFtZToidGVybWluYWwiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgdGVybWluYWwiKSwiYWN0aW9uIil9XX0se25hbWU6IkhlbHAiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRG9jdW1lbnRhdGlvbiIsaWNvbk5hbWU6ImJvb2siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb2N1bWVudGF0aW9uIiksImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsaWNvbk5hbWU6ImZpbGUtdGV4dCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlJlbGVhc2Ugbm90ZXMiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiUmVwb3J0IElzc3VlIixpY29uTmFtZToiYnVnIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUmVwb3J0IGlzc3VlIiksImFjdGlvbiIpfSx7bmFtZToiQWJvdXQiLGljb25OYW1lOiJpbmZvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQWJvdXQiKSwiYWN0aW9uIil9XX1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCByPWUucXVlcnlTZWxlY3RvcigiI2FwcGJhciIpLGE9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuc3RhdHVzLXRvZ2dsZSBkZWVzLWJ1dHRvbiIpO2FbMF0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci51c2VyPXsuLi5yLnVzZXIsc3RhdHVzOiJvbmxpbmUifX0pLGFbMV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci51c2VyPXsuLi5yLnVzZXIsc3RhdHVzOiJidXN5In19KSxhWzJdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IudXNlcj17Li4uci51c2VyLHN0YXR1czoiYXdheSJ9fSksYVszXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLnVzZXI9ey4uLnIudXNlcixzdGF0dXM6Im9mZmxpbmUifX0pLGUucXVlcnlTZWxlY3RvcigiLndpbmRvdy1jb250cm9scy10b2dnbGUgZGVlcy1idXR0b24iKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLnNob3dXaW5kb3dDb250cm9scz0hci5zaG93V2luZG93Q29udHJvbHN9KTtsZXQgbj1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5icmVhZGNydW1iLXRvZ2dsZSBkZWVzLWJ1dHRvbiIpO25bMF0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci5icmVhZGNydW1icz0iSG9tZSA+IERvY3VtZW50cyA+IFByb2plY3RzID4gTXlBcHAgPiBzcmMgPiBpbmRleC50cyJ9KSxuWzFdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IuYnJlYWRjcnVtYnM9IkRhc2hib2FyZCJ9KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udGVudCB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGNvbG9yOiAjY2NjOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIGxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtYXBwdWktYXBwYmFyCiAgICAgICAgaWQ9ImFwcGJhciIKICAgICAgICAubWVudUl0ZW1zPSR7dH0KICAgICAgICAuYnJlYWRjcnVtYnM9JHsiUHJvamVjdCA+IHNyYyA+IGNvbXBvbmVudHMgPiBBcHBCYXIudHMifQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7IiA+ICJ9CiAgICAgICAgLnNob3dXaW5kb3dDb250cm9scz0keyEwfQogICAgICAgIC5zaG93U2VhcmNoPSR7ITB9CiAgICAgICAgLnRoZW1lPSR7ImRhcmsifQogICAgICAgIC51c2VyPSR7e25hbWU6IkpvaG4gRG9lIixzdGF0dXM6Im9ubGluZSJ9fQogICAgICAgIEBtZW51LXNlbGVjdD0ke2U9PmNvbnNvbGUubG9nKCJNZW51IHNlbGVjdGVkOiIsZS5kZXRhaWwuaXRlbSl9CiAgICAgICAgQGJyZWFkY3J1bWItbmF2aWdhdGU9JHtlPT5jb25zb2xlLmxvZygiQnJlYWRjcnVtYiBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICAgIEBzZWFyY2gtY2xpY2s9JHsoKT0+Y29uc29sZS5sb2coIlNlYXJjaCBjbGlja2VkIil9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PmNvbnNvbGUubG9nKCJVc2VyIG1lbnUgY2xpY2tlZCIpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxoMj5BcHAgQmFyIERlbW88L2gyPgogICAgICAgIDxwPlRoaXMgZGVtbyBzaG93cyB2YXJpb3VzIGZlYXR1cmVzIG9mIHRoZSBhcHAgYmFyIGNvbXBvbmVudDo8L3A+CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPkR5bmFtaWMgbWVudSBpdGVtcyB3aXRoIGljb25zLCBzaG9ydGN1dHMsIGFuZCBzdWJtZW51czwvbGk+CiAgICAgICAgICA8bGk+QnJlYWRjcnVtYiBuYXZpZ2F0aW9uPC9saT4KICAgICAgICAgIDxsaT5Vc2VyIGFjY291bnQgc2VjdGlvbiB3aXRoIHN0YXR1cyBpbmRpY2F0b3I8L2xpPgogICAgICAgICAgPGxpPlNlYXJjaCBpY29uPC9saT4KICAgICAgICAgIDxsaT5XaW5kb3cgY29udHJvbHMgKHBsYXRmb3JtLXNwZWNpZmljKTwvbGk+CiAgICAgICAgICA8bGk+RGFyay9saWdodCB0aGVtZSBzdXBwb3J0PC9saT4KICAgICAgICAgIDxsaT5LZXlib2FyZCBuYXZpZ2F0aW9uIChUYWIsIEVudGVyLCBFc2NhcGUpPC9saT4KICAgICAgICAgIDxsaT5DdXN0b20gZXZlbnRzIGZvciBhbGwgaW50ZXJhY3Rpb25zPC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5UaGVtZTwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9InRoZW1lLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXJrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkxpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VXNlciBTdGF0dXM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJzdGF0dXMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9ubGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5CdXN5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkF3YXk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+T2ZmbGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPldpbmRvdyBDb250cm9sczwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9IndpbmRvdy1jb250cm9scy10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+QnJlYWRjcnVtYnM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJicmVhZGNydW1iLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Mb25nIFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2hvcnQgUGF0aDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIGlqcixzanI9dSgoKT0+e3ZlKCk7aWpyPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciB0aGVtaW5nICovCiAgICAgICAgLS1hcHBiYXItaGVpZ2h0OiA0MHB4OwogICAgICAgIC0tYXBwYmFyLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1hcHBiYXItaGVpZ2h0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBmb250LXNpemU6IHZhcigtLWFwcGJhci1mb250LXNpemUpOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvOwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogZHJhZzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBtYXJnaW46IDhweCAwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogbm8tZHJhZzsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLyogT3B0aW9uYWw6IFN0eWxlIGZvciBtZW51IGl0ZW1zIHdpdGggaWNvbnMgKG5vdCB0eXBpY2FsbHkgdXNlZCBmb3IgdG9wLWxldmVsIGl0ZW1zKSAqLwogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMwMDAwMDAyMCIsIiNmZmZmZmYzMCIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW1bZGlzYWJsZWRdIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmZvY3VzLXZpc2libGUgewogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3guYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICB9CgoKICAgICAgLyogRHJvcGRvd24gc3R5bGVzICovCiAgICAgIC5kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24ub3BlbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWl0ZW06aG92ZXIsCiAgICAgIC5kcm9wZG93bi1pdGVtLmZvY3VzZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbSAuc2hvcnRjdXQgewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC8qIEJyZWFkY3J1bWJzICovCiAgICAgIC5icmVhZGNydW1icyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yczsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItc2VwYXJhdG9yIHsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogQWNjb3VudCBzZWN0aW9uICovCiAgICAgIC5hY2NvdW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuc2VhcmNoLWljb246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CgogICAgICAudXNlci1pbmZvOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMDAwMDAwMjAiLCIjZmZmZmZmMzAiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMnB4OwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vbmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM0Y2FmNTA7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vZmZsaW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNzU3NTc1OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYnVzeSB7CiAgICAgICAgYmFja2dyb3VuZDogI2Y0NDMzNjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmF3YXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjk4MDA7CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGxvZyB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5hY3Rpdml0eS10b2dnbGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICAtd2Via2l0LWFwcC1yZWdpb246IG5vLWRyYWc7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwNjAiLCIjZmZmZmZmNjAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYxNSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS10b2dnbGUuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzAwMDAwMDE1IiwiI2ZmZmZmZjIwIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWJhZGdlIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDsKICAgICAgICBtaW4td2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjNTI1MjUyIiwiIzUyNTI1MiIpfTsKICAgICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB9CiAgICBgXX0pO3ZhciBuanIsb2pyPXUoKCk9Pnt2ZSgpO25qcj1pKHQ9PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudXMiPgogICAgICAgICAgJHt0LnNob3dXaW5kb3dDb250cm9scz93YDxkZWVzLXdpbmRvd2NvbnRyb2xzPjwvZGVlcy13aW5kb3djb250cm9scz5gOiIifQogICAgICAgICAgJHt0LnJlbmRlck1lbnVJdGVtcygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJyZWFkY3J1bWJzIj4KICAgICAgICAgICR7dC5yZW5kZXJCcmVhZGNydW1icygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjY291bnQiPgogICAgICAgICAgJHt0LnJlbmRlckFjY291bnRTZWN0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGAsInJlbmRlckFwcHVpQXBwYmFyIil9KTt2YXIgUzZ0LHB0ZSxsanIsTTZ0PXUoKCk9Pnt2ZSgpO2x0KCk7UzZ0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxwdGU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGxqcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtd2luZG93Y29udHJvbHMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1dpbmRvd0NvbnRyb2xzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7cmVmbGVjdDohMH0pXSxjPVtQKHtyZWZsZWN0OiEwfSldLFM2dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InR5cGUiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS50eXBlLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20udHlwZT12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksUzZ0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InBvc2l0aW9uImluIG0sImhhcyIpLGdldDppKG09Pm0ucG9zaXRpb24sImdldCIpLHNldDppKChtLHYpPT57bS5wb3NpdGlvbj12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksUzZ0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89aSgoKT0+d2A8ZGVlcy13aW5kb3djb250cm9scz48L2RlZXMtd2luZG93Y29udHJvbHM+YCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPXB0ZSh0aGlzLG8sIm1hYyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoaCl7dGhpcy4jZT1ofSN0PShwdGUodGhpcyxsKSxwdGUodGhpcyxkLCJsZWZ0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBwb3NpdGlvbihoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYgewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjIyMjIyOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LmNsb3NlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY1ZjU3OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdi50b0RvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmJkMmU7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2Lm1pbk1heCB7CiAgICAgICAgYmFja2dyb3VuZDogIzI3YzkzZjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy50eXBlPT09Im1hYyImJnRoaXMucG9zaXRpb249PT0ibGVmdCJ8fCh0aGlzLnR5cGU9PT0ibGludXgifHx0aGlzLnR5cGU9PT0id2luZG93cyIpJiZ0aGlzLnBvc2l0aW9uPT09InJpZ2h0Ij93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3dDb250cm9scyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xvc2UiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvRG9jayI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWluTWF4Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHB0ZSh0aGlzLGYpfXN0YXRpY3twdGUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIGZ0ZSxaNCxjanIsQzZ0PXUoKCk9Pnt2bigpO09vKCk7dmUoKTtsdCgpO2Z0ZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sWjQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGNqcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aVByb2ZpbGVEcm9wZG93biIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6QXJyYXl9KV0scD1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0sZnRlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4idXNlciJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLnVzZXIsImdldCIpLHNldDppKChNLE4pPT57TS51c2VyPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxmdGUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+Im1lbnVJdGVtcyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLm1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLm1lbnVJdGVtcz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsZiksZnRlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNPcGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJpc09wZW4iaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5pc09wZW4sImdldCIpLHNldDppKChNLE4pPT57TS5pc09wZW49Tn0sInNldCIpfSxtZXRhZGF0YTprfSxoLG0pLGZ0ZSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJwb3NpdGlvbiJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLnBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00ucG9zaXRpb249Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLGZ0ZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgLnVzZXI9JHt7bmFtZToiSm9obiBEb2UiLGVtYWlsOiJqb2huLmRvZUBleGFtcGxlLmNvbSIsYXZhdGFyOiJodHRwczovL3JhbmRvbXVzZXIubWUvYXBpL3BvcnRyYWl0cy9tZW4vMS5qcGciLHN0YXR1czoib25saW5lIn19CiAgICAgIC5tZW51SXRlbXM9JHtbe25hbWU6IlByb2ZpbGUgU2V0dGluZ3MiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6IkFjY291bnQiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkFjY291bnQiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiSGVscCAmIFN1cHBvcnQiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiSGVscCIpLCJhY3Rpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixzaG9ydGN1dDoiQ21kK0siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsb2dPdXQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpLCJhY3Rpb24iKX1dfQogICAgICAuaXNPcGVuPSR7ITB9CiAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1aNCh0aGlzLG8sdm9pZCAwKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNlfXNldCB1c2VyKGspe3RoaXMuI2U9a30jdD0oWjQodGhpcyxsKSxaNCh0aGlzLGQsW10pKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1lbnVJdGVtcyhrKXt0aGlzLiN0PWt9I3I9KFo0KHRoaXMsZiksWjQodGhpcyxoLCExKSk7Z2V0IGlzT3Blbigpe3JldHVybiB0aGlzLiNyfXNldCBpc09wZW4oayl7dGhpcy4jcj1rfSNhPShaNCh0aGlzLG0pLFo0KHRoaXMsYiwidG9wLXJpZ2h0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBwb3NpdGlvbihrKXt0aGlzLiNhPWt9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7eC5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB6LWluZGV4OiAke2pzLm92ZXJsYXkuZHJvcGRvd259OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CgogICAgICA6aG9zdChbaXNvcGVuXSkgLmRyb3Bkb3duIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmJhY2tkcm9wIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBQb3NpdGlvbiB2YXJpYW50cyAqLwogICAgICAuZHJvcGRvd24udG9wLXJpZ2h0IHsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24udG9wLWxlZnQgewogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLmJvdHRvbS1yaWdodCB7CiAgICAgICAgYm90dG9tOiAxMDAlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLmJvdHRvbS1sZWZ0IHsKICAgICAgICBib3R0b206IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIFVzZXIgc2VjdGlvbiAqLwogICAgICAudXNlci1zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub25saW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNGNhZjUwOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub2ZmbGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzc1NzU3NTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmJ1c3kgewogICAgICAgIGJhY2tncm91bmQ6ICNmNDQzMzY7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5hd2F5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY5ODAwOwogICAgICB9CgogICAgICAudXNlci1kZXRhaWxzIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnVzZXItbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC51c2VyLWVtYWlsIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAvKiBNZW51IHNlY3Rpb24gKi8KICAgICAgLm1lbnUtc2VjdGlvbiB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzMzMyIsIiNjY2MiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudS1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW06YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1pdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51LXNob3J0Y3V0IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51LWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAvKiBCYWNrZHJvcCBmb3IgbW9iaWxlICovCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5iYWNrZHJvcCB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgICBib3R0b206IDA7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgICAgICAgICB6LWluZGV4OiAke2pzLmJhY2tkcm9wLmRyb3Bkb3dufTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2lzb3Blbl0pIC5iYWNrZHJvcCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB9CgogICAgICAgIC5kcm9wZG93biB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHJpZ2h0OiBhdXRvOwogICAgICAgICAgYm90dG9tOiBhdXRvOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC45NSk7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTsKICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzMnB4KTsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2lzb3Blbl0pIC5kcm9wZG93biB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJiYWNrZHJvcCIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2UoKX0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duICR7dGhpcy5wb3NpdGlvbn0iPgogICAgICAgICR7dGhpcy51c2VyP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItYXZhdGFyIj4KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj93YDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOnRoaXMuZ2V0SW5pdGlhbHModGhpcy51c2VyLm5hbWUpfQogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuc3RhdHVzP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItc3RhdHVzICR7dGhpcy51c2VyLnN0YXR1c30iPjwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWRldGFpbHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1uYW1lIj4ke3RoaXMudXNlci5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuZW1haWw/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1lbWFpbCI+JHt0aGlzLnVzZXIuZW1haWx9PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1zZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKGs9PnRoaXMucmVuZGVyTWVudUl0ZW0oaykpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTWVudUl0ZW0oayl7aWYoImRpdmlkZXIiaW4gayYmay5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9Im1lbnUtZGl2aWRlciI+PC9kaXY+YDtsZXQgTT1rO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtZW51LWl0ZW0iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1lbnVDbGljayhNKX0+CiAgICAgICAgJHtNLmljb25OYW1lP3dgCiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtNLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LWl0ZW0tdGV4dCI+JHtNLm5hbWV9PC9zcGFuPgogICAgICAgICR7TS5zaG9ydGN1dD93YAogICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnUtc2hvcnRjdXQiPiR7TS5zaG9ydGN1dH08L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldEluaXRpYWxzKGspe3JldHVybiBrLnNwbGl0KCIgIikubWFwKE09Pk1bMF0pLmpvaW4oIiIpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMCwyKX1hc3luYyBoYW5kbGVNZW51Q2xpY2soayl7YXdhaXQgay5hY3Rpb24oKSx0aGlzLmNsb3NlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWVudS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06a30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1vcGVuKCl7dGhpcy5pc09wZW49ITB9Y2xvc2UoKXt0aGlzLmlzT3Blbj0hMX10b2dnbGUoKXt0aGlzLmlzT3Blbj0hdGhpcy5pc09wZW59YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrPXRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrLmJpbmQodGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrKX1oYW5kbGVPdXRzaWRlQ2xpY2soayl7aWYodGhpcy5pc09wZW4mJiF0aGlzLmNvbnRhaW5zKGsudGFyZ2V0KSl7bGV0IE09dGhpcy5wYXJlbnRFbGVtZW50O2lmKE0mJk0uY29udGFpbnMoay50YXJnZXQpKXJldHVybjt0aGlzLmNsb3NlKCl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxaNCh0aGlzLGcpfXN0YXRpY3taNChhLHIpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgd28sa2EsZGpyLGs2dD11KCgpPT57dmUoKTtNcigpO1BwKCk7dm4oKTthanIoKTtzanIoKTtvanIoKTtLcigpO002dCgpO0M2dCgpO3dvPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxrYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZGpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1hcHB1aS1hcHBiYXIiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdO3ZhciB4ZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpQmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOkJvb2xlYW59KV0seT1bUCh7dHlwZTpPYmplY3R9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOkJvb2xlYW59KV0sQj1bUCh7dHlwZTpCb29sZWFufSldLEE9W1Aoe3R5cGU6TnVtYmVyfSldLFk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxkZT1baWUoKV0sZmU9W2llKCldLHBlPVtpZSgpXSxIPVtpZSgpXSxhZT1baWUoKV0sd28odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+Im1lbnVJdGVtcyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLm1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5tZW51SXRlbXM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sbyxsKSx3byh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJyZWFkY3J1bWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJicmVhZGNydW1icyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmJyZWFkY3J1bWJzLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmJyZWFkY3J1bWJzPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGQsZiksd28odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJicmVhZGNydW1iU2VwYXJhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJicmVhZGNydW1iU2VwYXJhdG9yImluIFYsImhhcyIpLGdldDppKFY9PlYuYnJlYWRjcnVtYlNlcGFyYXRvciwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5icmVhZGNydW1iU2VwYXJhdG9yPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGgsbSksd28odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V2luZG93Q29udHJvbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InNob3dXaW5kb3dDb250cm9scyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLnNob3dXaW5kb3dDb250cm9scywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5zaG93V2luZG93Q29udHJvbHM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sYixnKSx3byh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InVzZXIiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi51c2VyLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLnVzZXI9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sayxNKSx3byh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2ZpbGVNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InByb2ZpbGVNZW51SXRlbXMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5wcm9maWxlTWVudUl0ZW1zLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLnByb2ZpbGVNZW51SXRlbXM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sXyxTKSx3byh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InNob3dTZWFyY2giaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5zaG93U2VhcmNoLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLnNob3dTZWFyY2g9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sTCxFKSx3byh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dBY3Rpdml0eUxvZ1RvZ2dsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4ic2hvd0FjdGl2aXR5TG9nVG9nZ2xlImluIFYsImhhcyIpLGdldDppKFY9PlYuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxDLHopLHdvKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmFjdGl2aXR5TG9nQ291bnQsImdldCIpLHNldDppKChWLGxlKT0+e1YuYWN0aXZpdHlMb2dDb3VudD1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSwkLEYpLHdvKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImFjdGl2aXR5TG9nQWN0aXZlImluIFYsImhhcyIpLGdldDppKFY9PlYuYWN0aXZpdHlMb2dBY3RpdmUsImdldCIpLHNldDppKChWLGxlKT0+e1YuYWN0aXZpdHlMb2dBY3RpdmU9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sRyxaKSx3byh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVNZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJhY3RpdmVNZW51ImluIFYsImhhcyIpLGdldDppKFY9PlYuYWN0aXZlTWVudSwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5hY3RpdmVNZW51PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LEQsUSksd28odGhpcyxudWxsLGZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkRyb3Bkb3ducyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4ib3BlbkRyb3Bkb3ducyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLm9wZW5Ecm9wZG93bnMsImdldCIpLHNldDppKChWLGxlKT0+e1Yub3BlbkRyb3Bkb3ducz1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxULFcpLHdvKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvY3VzZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJmb2N1c2VkSXRlbSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmZvY3VzZWRJdGVtLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmZvY3VzZWRJdGVtPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LG1lLHEpLHdvKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZm9jdXNlZERyb3Bkb3duSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iZm9jdXNlZERyb3Bkb3duSXRlbSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmZvY3VzZWREcm9wZG93bkl0ZW0sImdldCIpLHNldDppKChWLGxlKT0+e1YuZm9jdXNlZERyb3Bkb3duSXRlbT1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxVLGopLHdvKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvZmlsZURyb3Bkb3duT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iaXNQcm9maWxlRHJvcGRvd25PcGVuImluIFYsImhhcyIpLGdldDppKFY9PlYuaXNQcm9maWxlRHJvcGRvd25PcGVuLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmlzUHJvZmlsZURyb3Bkb3duT3Blbj1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxYLEopLHdvKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkt9LG51bGwscikseGU9YT1lLnZhbHVlLEsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6S30pfXN0YXRpYyBkZW1vPXJqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPWthKHRoaXMsbyxbXSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNlfXNldCBtZW51SXRlbXMoSyl7dGhpcy4jZT1LfSN0PShrYSh0aGlzLGwpLGthKHRoaXMsZCwiIikpO2dldCBicmVhZGNydW1icygpe3JldHVybiB0aGlzLiN0fXNldCBicmVhZGNydW1icyhLKXt0aGlzLiN0PUt9I3I9KGthKHRoaXMsZiksa2EodGhpcyxoLCIgPiAiKSk7Z2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYnJlYWRjcnVtYlNlcGFyYXRvcihLKXt0aGlzLiNyPUt9I2E9KGthKHRoaXMsbSksa2EodGhpcyxiLCEwKSk7Z2V0IHNob3dXaW5kb3dDb250cm9scygpe3JldHVybiB0aGlzLiNhfXNldCBzaG93V2luZG93Q29udHJvbHMoSyl7dGhpcy4jYT1LfSNpPShrYSh0aGlzLGcpLGthKHRoaXMsayx2b2lkIDApKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNpfXNldCB1c2VyKEspe3RoaXMuI2k9S30jcz0oa2EodGhpcyxNKSxrYSh0aGlzLF8sW10pKTtnZXQgcHJvZmlsZU1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNzfXNldCBwcm9maWxlTWVudUl0ZW1zKEspe3RoaXMuI3M9S30jbj0oa2EodGhpcyxTKSxrYSh0aGlzLEwsITEpKTtnZXQgc2hvd1NlYXJjaCgpe3JldHVybiB0aGlzLiNufXNldCBzaG93U2VhcmNoKEspe3RoaXMuI249S30jbz0oa2EodGhpcyxFKSxrYSh0aGlzLEMsITEpKTtnZXQgc2hvd0FjdGl2aXR5TG9nVG9nZ2xlKCl7cmV0dXJuIHRoaXMuI299c2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZShLKXt0aGlzLiNvPUt9I2w9KGthKHRoaXMseiksa2EodGhpcywkLDApKTtnZXQgYWN0aXZpdHlMb2dDb3VudCgpe3JldHVybiB0aGlzLiNsfXNldCBhY3Rpdml0eUxvZ0NvdW50KEspe3RoaXMuI2w9S30jYz0oa2EodGhpcyxGKSxrYSh0aGlzLEcsITEpKTtnZXQgYWN0aXZpdHlMb2dBY3RpdmUoKXtyZXR1cm4gdGhpcy4jY31zZXQgYWN0aXZpdHlMb2dBY3RpdmUoSyl7dGhpcy4jYz1LfSNkPShrYSh0aGlzLFopLGthKHRoaXMsRCxudWxsKSk7Z2V0IGFjdGl2ZU1lbnUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlTWVudShLKXt0aGlzLiNkPUt9I3U9KGthKHRoaXMsUSksa2EodGhpcyxULG5ldyBTZXQpKTtnZXQgb3BlbkRyb3Bkb3ducygpe3JldHVybiB0aGlzLiN1fXNldCBvcGVuRHJvcGRvd25zKEspe3RoaXMuI3U9S30jcD0oa2EodGhpcyxXKSxrYSh0aGlzLG1lLG51bGwpKTtnZXQgZm9jdXNlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jcH1zZXQgZm9jdXNlZEl0ZW0oSyl7dGhpcy4jcD1LfSNmPShrYSh0aGlzLHEpLGthKHRoaXMsVSwtMSkpO2dldCBmb2N1c2VkRHJvcGRvd25JdGVtKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGZvY3VzZWREcm9wZG93bkl0ZW0oSyl7dGhpcy4jZj1LfSNoPShrYSh0aGlzLGopLGthKHRoaXMsWCwhMSkpO2dldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4oKXtyZXR1cm4gdGhpcy4jaH1zZXQgaXNQcm9maWxlRHJvcGRvd25PcGVuKEspe3RoaXMuI2g9S31zdGF0aWMgc3R5bGVzPWlqcjtyZW5kZXIoKXtyZXR1cm4gbmpyKHRoaXMpfXJlbmRlck1lbnVJdGVtcygpe3JldHVybiB3YAogICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgoSyxWKT0+dGhpcy5yZW5kZXJNZW51SXRlbShLLGBtZW51LSR7Vn1gKSl9CiAgICBgfXJlbmRlck1lbnVJdGVtKEssVil7aWYoImRpdmlkZXIiaW4gSyYmSy5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IGxlPUssbmU9dGhpcy5hY3RpdmVNZW51PT09VixlZT1sZS5zdWJtZW51JiZsZS5zdWJtZW51Lmxlbmd0aD4wO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtICR7bmU/ImFjdGl2ZSI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke2xlLmRpc2FibGVkfQogICAgICAgIHRhYmluZGV4PSIke2xlLmRpc2FibGVkPy0xOjB9IgogICAgICAgIGRhdGEtaXRlbS1pZD0iJHtWfSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2sobGUsVil9CiAgICAgICAgQGtleWRvd249JHt6ZT0+dGhpcy5oYW5kbGVNZW51S2V5ZG93bih6ZSxsZSxWKX0KICAgICAgICByb2xlPSJtZW51aXRlbSIKICAgICAgICBhcmlhLWhhc3BvcHVwPSIke2VlfSIKICAgICAgICBhcmlhLWV4cGFuZGVkPSIke25lfSIKICAgICAgPgogICAgICAgICR7bGUuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtsZS5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAke2xlLm5hbWV9CiAgICAgICAgJHtlZT90aGlzLnJlbmRlckRyb3Bkb3duKGxlLnN1Ym1lbnUsVixuZSk6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bihLLFYsbGUpe3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJkcm9wZG93biAke2xlPyJvcGVuIjoiIn0iIAogICAgICAgIEBjbGljaz0ke25lPT5uZS5zdG9wUHJvcGFnYXRpb24oKX0KICAgICAgICBAa2V5ZG93bj0ke25lPT50aGlzLmhhbmRsZURyb3Bkb3duS2V5ZG93bihuZSxLLFYpfQogICAgICAgIHRhYmluZGV4PSIke2xlPzA6LTF9IgogICAgICAgIHJvbGU9Im1lbnUiCiAgICAgID4KICAgICAgICAke0subWFwKChuZSxlZSk9PnRoaXMucmVuZGVyRHJvcGRvd25JdGVtKG5lLGAke1Z9LSR7ZWV9YCkpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRHJvcGRvd25JdGVtKEssVil7aWYoImRpdmlkZXIiaW4gSyYmSy5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IGxlPUssbmU9cGFyc2VJbnQoVi5zcGxpdCgiLSIpLnBvcCgpfHwiMCIpLGVlPXRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT09PW5lO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWl0ZW0gJHtlZT8iZm9jdXNlZCI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke2xlLmRpc2FibGVkfQogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURyb3Bkb3duSXRlbUNsaWNrKGxlKX0KICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09bmV9CiAgICAgICAgcm9sZT0ibWVudWl0ZW0iCiAgICAgICAgdGFiaW5kZXg9IiR7bGUuZGlzYWJsZWQ/LTE6MH0iCiAgICAgID4KICAgICAgICAke2xlLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHtgbHVjaWRlOiR7bGUuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4+JHtsZS5uYW1lfTwvc3Bhbj4KICAgICAgICAke2xlLnNob3J0Y3V0P3dgPHNwYW4gY2xhc3M9InNob3J0Y3V0Ij4ke2xlLnNob3J0Y3V0fTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQnJlYWRjcnVtYnMoKXtpZighdGhpcy5icmVhZGNydW1icylyZXR1cm4gd2BgO2xldCBLPXRoaXMuYnJlYWRjcnVtYnMuc3BsaXQodGhpcy5icmVhZGNydW1iU2VwYXJhdG9yKTtyZXR1cm4gd2AKICAgICAgJHtLLm1hcCgoVixsZSk9PndgCiAgICAgICAgJHtsZT4wP3dgPHNwYW4gY2xhc3M9ImJyZWFkY3J1bWItc2VwYXJhdG9yIj4ke3RoaXMuYnJlYWRjcnVtYlNlcGFyYXRvcn08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiAKICAgICAgICAgIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0iIAogICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQnJlYWRjcnVtYkNsaWNrKFYsbGUpfQogICAgICAgID4KICAgICAgICAgICR7Vn0KICAgICAgICA8L3NwYW4+CiAgICAgIGApfQogICAgYH1yZW5kZXJBY2NvdW50U2VjdGlvbigpe3JldHVybiB3YAogICAgICAke3RoaXMuc2hvd1NlYXJjaD93YAogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaWNvbiIKICAgICAgICAgIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifQogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWFyY2hDbGlja30KICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIGA6IiJ9CiAgICAgICR7dGhpcy51c2VyP3dgCiAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iIEBjbGljaz0ke3RoaXMuaGFuZGxlVXNlckNsaWNrfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj93YDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOndgJHt0aGlzLnVzZXIubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX1gfQogICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxzcGFuPiR7dGhpcy51c2VyLm5hbWV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgICAgICAgLnVzZXI9JHt0aGlzLnVzZXJ9CiAgICAgICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLnByb2ZpbGVNZW51SXRlbXN9CiAgICAgICAgICAgIC5pc09wZW49JHt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbn0KICAgICAgICAgICAgLnBvc2l0aW9uPSR7InRvcC1yaWdodCJ9CiAgICAgICAgICAgIEBtZW51LXNlbGVjdD0ke0s9PnRoaXMuaGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoSyl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT93YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJhY3Rpdml0eS10b2dnbGUgJHt0aGlzLmFjdGl2aXR5TG9nQWN0aXZlPyJhY3RpdmUiOiIifSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQWN0aXZpdHlUb2dnbGV9CiAgICAgICAgICB0aXRsZT0iQWN0aXZpdHkgTG9nIgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmFjdGl2aXR5In0+PC9kZWVzLWljb24+CiAgICAgICAgICAke3RoaXMuYWN0aXZpdHlMb2dDb3VudD4wP3dgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1iYWRnZSI+JHt0aGlzLmFjdGl2aXR5TG9nQ291bnQ+OTk/Ijk5KyI6dGhpcy5hY3Rpdml0eUxvZ0NvdW50fTwvc3Bhbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWhhbmRsZU1lbnVDbGljayhLLFYpe0suZGlzYWJsZWR8fChLLnN1Ym1lbnUmJksuc3VibWVudS5sZW5ndGg+MD90aGlzLmFjdGl2ZU1lbnU9PT1WP3RoaXMuYWN0aXZlTWVudT1udWxsOnRoaXMuYWN0aXZlTWVudT1WOih0aGlzLmFjdGl2ZU1lbnU9bnVsbCxLLmFjdGlvbiYmSy5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTpLfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKSl9aGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soSyl7Sy5kaXNhYmxlZHx8KHRoaXMuYWN0aXZlTWVudT1udWxsLEsuYWN0aW9uJiZLLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOkt9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZU1lbnVLZXlkb3duKEssVixsZSl7c3dpdGNoKEsua2V5KXtjYXNlIkVudGVyIjpjYXNlIiAiOksucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1lbnVDbGljayhWLGxlKTticmVhaztjYXNlIkFycm93RG93biI6aWYoVi5zdWJtZW51JiZ0aGlzLmFjdGl2ZU1lbnU9PT1sZSl7Sy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0wO2xldCBuZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFYuc3VibWVudSwtMSwxKTtuZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPW5lLHNldFRpbWVvdXQoKCk9PntsZXQgZWU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5kcm9wZG93bi5vcGVuIik7ZWUmJmVlLmZvY3VzKCl9LDApKX1icmVhaztjYXNlIkVzY2FwZSI6dGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2JyZWFrO2Nhc2UiVGFiIjp0aGlzLmFjdGl2ZU1lbnU9PT1sZSYmKHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMSk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0IjpLLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRNZW51SXRlbShsZSwxKTticmVhaztjYXNlIkFycm93TGVmdCI6Sy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNOZXh0TWVudUl0ZW0obGUsLTEpO2JyZWFrfX1oYW5kbGVCcmVhZGNydW1iQ2xpY2soSyxWKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJicmVhZGNydW1iLW5hdmlnYXRlIix7ZGV0YWlsOnticmVhZGNydW1iOkssaW5kZXg6Vn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aXZpdHlUb2dnbGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpdml0eS10b2dnbGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVVzZXJDbGljaygpe3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuPSF0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoSyl7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49ITEsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpLLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUdsb2JhbENsaWNrKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlRG9jdW1lbnRDbGljayl9aGFuZGxlR2xvYmFsQ2xpY2s9KGthKHRoaXMsSiksSz0+e0suc3RvcFByb3BhZ2F0aW9uKCl9KTtoYW5kbGVEb2N1bWVudENsaWNrPWkoKCk9Pnt0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTF9LCJoYW5kbGVEb2N1bWVudENsaWNrIik7aGFuZGxlRHJvcGRvd25LZXlkb3duKEssVixsZSl7bGV0IG5lPVYuZmlsdGVyKGVlPT4hKCJkaXZpZGVyImluIGVlJiZlZS5kaXZpZGVyKSk7c3dpdGNoKEsua2V5KXtjYXNlIkFycm93RG93biI6Sy5wcmV2ZW50RGVmYXVsdCgpO2xldCBlZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFYsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLDEpO2VlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09ZWUpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6Sy5wcmV2ZW50RGVmYXVsdCgpO2xldCB6ZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFYsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLC0xKTt6ZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPXplKTticmVhaztjYXNlIkVudGVyIjppZihLLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtIT09LTEpe2xldCBEZT1uZVt0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW1dO0RlJiYiYWN0aW9uImluIERlJiYhRGUuZGlzYWJsZWQmJnRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soRGUpfWJyZWFrO2Nhc2UiSG9tZSI6Sy5wcmV2ZW50RGVmYXVsdCgpO2xldCBIZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFYsLTEsMSk7SGUhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1IZSk7YnJlYWs7Y2FzZSJFbmQiOksucHJldmVudERlZmF1bHQoKTtsZXQgR2U9dGhpcy5maW5kTmV4dFZhbGlkSXRlbShWLFYubGVuZ3RoLC0xKTtHZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPUdlKTticmVhaztjYXNlIkVzY2FwZSI6Sy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMTtsZXQgb3Q9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5tZW51SXRlbS5hY3RpdmUiKTtvdCYmb3QuZm9jdXMoKTticmVha319ZmluZE5leHRWYWxpZEl0ZW0oSyxWLGxlKXtsZXQgbmU9VitsZTtmb3IoO25lPj0wJiZuZTxLLmxlbmd0aDspe2xldCBlZT1LW25lXTtpZighKCJkaXZpZGVyImluIGVlJiZlZS5kaXZpZGVyKSYmISgiZGlzYWJsZWQiaW4gZWUmJmVlLmRpc2FibGVkKSlyZXR1cm4gbmU7bmUrPWxlfXJldHVybi0xfWZvY3VzTmV4dE1lbnVJdGVtKEssVil7bGV0IGxlPUFycmF5LmZyb20odGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51SXRlbSIpKSxuZT1sZS5maW5kSW5kZXgoSGU9PkhlLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLWlkIik9PT1LKTtpZihuZT09PS0xKXJldHVybjtsZXQgZWU9bmUrVjtlZTwwP2VlPWxlLmxlbmd0aC0xOmVlPj1sZS5sZW5ndGgmJihlZT0wKTtsZXQgemU9MDtmb3IoO3plPGxlLmxlbmd0aDspe2xldCBIZT1sZVtlZV07aWYoIUhlLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7SGUuZm9jdXMoKSx0aGlzLmFjdGl2ZU1lbnUmJih0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTEpO2JyZWFrfWVlPShlZStWK2xlLmxlbmd0aCklbGUubGVuZ3RoLHplKyt9fXN0YXRpY3trYShhLHIpfX07cmV0dXJuIHhlPWF9KSgpfSk7dmFyIHo2dD11KCgpPT57azZ0KCl9KTt2YXIgdWpyLHBqcixmanI9dSgoKT0+e3ZlKCk7d2EoKTtwanI9aSgoKT0+dyh1anJ8fCh1anI9RGcoW2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1sYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzczNzM3MzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ib3R0b21iYXItd3JhcHBlciB7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCAwJSAyMCUpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Qm90dG9tIGJhciB3aXRoIHN0YXR1cyB3aWRnZXRzIGFuZCBhY3Rpb25zPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWJvdHRvbWJhci13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyCiAgICAgICAgICAgICAgaWQ9ImRlbW8tYm90dG9tYmFyIgogICAgICAgICAgICA+PC9kZWVzLWFwcHVpLWJvdHRvbWJhcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Q29udHJvbHM8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7Ij4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRTdWNjZXNzV2lkZ2V0KCkiPkFkZCBTdWNjZXNzIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFdhcm5pbmdXaWRnZXQoKSI+QWRkIFdhcm5pbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkRXJyb3JXaWRnZXQoKSI+QWRkIEVycm9yIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZExvYWRpbmdXaWRnZXQoKSI+QWRkIExvYWRpbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkUmlnaHRXaWRnZXQoKSI+QWRkIFJpZ2h0IFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZEFjdGlvbigpIj5BZGQgQWN0aW9uPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iY2xlYXJBbGwoKSI+Q2xlYXIgQWxsPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KICAgICAgICBjb25zdCBib3R0b21iYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVtby1ib3R0b21iYXInKTsKCiAgICAgICAgLy8gV2FpdCBmb3IgY29tcG9uZW50IHRvIGluaXRpYWxpemUKICAgICAgICBhd2FpdCBib3R0b21iYXIudXBkYXRlQ29tcGxldGU7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIHdpZGdldHMKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnc3RhdHVzJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmFjdGl2aXR5JywKICAgICAgICAgIGxhYmVsOiAnU3lzdGVtIE9ubGluZScsCiAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJywKICAgICAgICAgIHRvb2x0aXA6ICdBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnU3RhdHVzIGNsaWNrZWQnKSwKICAgICAgICAgIGNvbnRleHRNZW51SXRlbXM6IFsKICAgICAgICAgICAgeyBuYW1lOiAnVmlldyBEZXRhaWxzJywgaWNvbk5hbWU6ICdsdWNpZGU6aW5mbycsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ1N5c3RlbSBkZXRhaWxzJykgfSwKICAgICAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sCiAgICAgICAgICAgIHsgbmFtZTogJ1JlZnJlc2ggU3RhdHVzJywgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaEN3JywgYWN0aW9uOiAoKSA9PiBhbGVydCgnUmVmcmVzaGluZy4uLicpIH0sCiAgICAgICAgICBdLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnbm90aWZpY2F0aW9ucycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpiZWxsJywKICAgICAgICAgIGxhYmVsOiAnMyBub3RpZmljYXRpb25zJywKICAgICAgICAgIHN0YXR1czogJ3dhcm5pbmcnLAogICAgICAgICAgdG9vbHRpcDogJ1lvdSBoYXZlIHVucmVhZCBub3RpZmljYXRpb25zJywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdOb3RpZmljYXRpb25zIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICBpZDogJ3ZlcnNpb24nLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Z2l0QnJhbmNoJywKICAgICAgICAgIGxhYmVsOiAndjEuMi4zJywKICAgICAgICAgIHRvb2x0aXA6ICdDdXJyZW50IHZlcnNpb24nLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnVmVyc2lvbiBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIGFjdGlvbnMKICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgIGlkOiAnc2V0dGluZ3MnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6c2V0dGluZ3MnLAogICAgICAgICAgdG9vbHRpcDogJ1NldHRpbmdzJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gYWxlcnQoJ1NldHRpbmdzIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZEFjdGlvbih7CiAgICAgICAgICBpZDogJ2hlbHAnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aGVscENpcmNsZScsCiAgICAgICAgICB0b29sdGlwOiAnSGVscCcsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFsZXJ0KCdIZWxwIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgLy8gRGVtbyBjb250cm9sIGZ1bmN0aW9ucwogICAgICAgIGxldCB3aWRnZXRDb3VudGVyID0gMDsKICAgICAgICBsZXQgYWN0aW9uQ291bnRlciA9IDA7CgogICAgICAgIHdpbmRvdy5hZGRTdWNjZXNzV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnc3VjY2Vzcy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2tDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ1N1Y2Nlc3MgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICB0b29sdGlwOiAnU3VjY2VzcyB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdzdWNjZXNzLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRXYXJuaW5nV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnd2FybmluZy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YWxlcnRUcmlhbmdsZScsCiAgICAgICAgICAgIGxhYmVsOiAnV2FybmluZyAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnd2FybmluZycsCiAgICAgICAgICAgIHRvb2x0aXA6ICdXYXJuaW5nIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3dhcm5pbmctJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZEVycm9yV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnZXJyb3ItJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnhDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ0Vycm9yICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsCiAgICAgICAgICAgIHRvb2x0aXA6ICdFcnJvciB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdlcnJvci0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkTG9hZGluZ1dpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGNvbnN0IGlkID0gJ2xvYWRpbmctJyArIHdpZGdldENvdW50ZXI7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6IGlkLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpsb2FkZXIyJywKICAgICAgICAgICAgbGFiZWw6ICdMb2FkaW5nLi4uJywKICAgICAgICAgICAgc3RhdHVzOiAnYWN0aXZlJywKICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgICAgICAgdG9vbHRpcDogJ0xvYWRpbmcgaW4gcHJvZ3Jlc3MnLAogICAgICAgICAgfSk7CgogICAgICAgICAgLy8gU2ltdWxhdGUgY29tcGxldGlvbiBhZnRlciAzIHNlY29uZHMKICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICBib3R0b21iYXIudXBkYXRlV2lkZ2V0KGlkLCB7CiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2snLAogICAgICAgICAgICAgIGxhYmVsOiAnRG9uZSEnLAogICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sIDMwMDApOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRSaWdodFdpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTppbmZvJywKICAgICAgICAgICAgbGFiZWw6ICdSaWdodCAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRBY3Rpb24gPSAoKSA9PiB7CiAgICAgICAgICBhY3Rpb25Db3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgICAgaWQ6ICdhY3Rpb24tJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnphcCcsCiAgICAgICAgICAgIHRvb2x0aXA6ICdBY3Rpb24gJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHsKICAgICAgICAgICAgICBhbGVydCgnQWN0aW9uICcgKyBhY3Rpb25Db3VudGVyICsgJyBjbGlja2VkJyk7CiAgICAgICAgICAgICAgYm90dG9tYmFyLnJlbW92ZUFjdGlvbignYWN0aW9uLScgKyBhY3Rpb25Db3VudGVyKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5jbGVhckFsbCA9ICgpID0+IHsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhcldpZGdldHMoKTsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhckFjdGlvbnMoKTsKICAgICAgICAgIHdpZGdldENvdW50ZXIgPSAwOwogICAgICAgICAgYWN0aW9uQ291bnRlciA9IDA7CiAgICAgICAgfTsKICAgICAgPFwvc2NyaXB0PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGBdKSkpLCJkZW1vRnVuYyIpfSk7dmFyIF82dCxodGUsaGpyLFQ2dD11KCgpPT57dmUoKTtsdCgpO0tyKCk7c3MoKTtmanIoKTtfNnQ9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGh0ZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0saGpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1hcHB1aS1ib3R0b21iYXIiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpQm90dG9tYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baWUoKV0sYz1baWUoKV0sXzZ0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4id2lkZ2V0cyJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLndpZGdldHMsImdldCIpLHNldDppKChtLHYpPT57bS53aWRnZXRzPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxfNnQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJhY3Rpb25zImluIG0sImhhcyIpLGdldDppKG09Pm0uYWN0aW9ucywiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmFjdGlvbnM9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLF82dChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPXBqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPWh0ZSh0aGlzLG8sW10pO2dldCB3aWRnZXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHdpZGdldHMoaCl7dGhpcy4jZT1ofSN0PShodGUodGhpcyxsKSxodGUodGhpcyxkLFtdKSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWN0aW9ucyhoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tLWJhciB7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAud2lkZ2V0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2lkZ2V0OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC53aWRnZXQgZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLndpZGdldC1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLyogU3RhdHVzIGNvbG9ycyBtYXRjaGluZyBkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIgKi8KICAgICAgLndpZGdldC5hY3RpdmUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5zdWNjZXNzIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0Lndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LmVycm9yIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5zcGlubmluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgLnNwYWNlciB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgaD10aGlzLndpZGdldHMuZmlsdGVyKGc9PmcucG9zaXRpb24hPT0icmlnaHQiKS5zb3J0KChnLHkpPT4oZy5vcmRlcnx8MCktKHkub3JkZXJ8fDApKSxtPXRoaXMud2lkZ2V0cy5maWx0ZXIoZz0+Zy5wb3NpdGlvbj09PSJyaWdodCIpLnNvcnQoKGcseSk9PihnLm9yZGVyfHwwKS0oeS5vcmRlcnx8MCkpLHY9dGhpcy5hY3Rpb25zLmZpbHRlcihnPT5nLnBvc2l0aW9uPT09ImxlZnQiKSxiPXRoaXMuYWN0aW9ucy5maWx0ZXIoZz0+Zy5wb3NpdGlvbiE9PSJsZWZ0Iik7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1iYXIiPgogICAgICAgIDwhLS0gTGVmdCBhY3Rpb25zIC0tPgogICAgICAgICR7di5tYXAoZz0+dGhpcy5yZW5kZXJBY3Rpb24oZykpfQoKICAgICAgICA8IS0tIExlZnQgd2lkZ2V0cyAtLT4KICAgICAgICAke2gubWFwKChnLHkpPT53YAogICAgICAgICAgJHt5PjB8fHYubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj5gOiIifQogICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldChnKX0KICAgICAgICBgKX0KCiAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCiAgICAgICAgPCEtLSBSaWdodCB3aWRnZXRzIC0tPgogICAgICAgICR7bS5tYXAoKGcseSk9PndgCiAgICAgICAgICAke3RoaXMucmVuZGVyV2lkZ2V0KGcpfQogICAgICAgICAgJHt5PG0ubGVuZ3RoLTF8fGIubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj5gOiIifQogICAgICAgIGApfQoKICAgICAgICA8IS0tIFJpZ2h0IGFjdGlvbnMgLS0+CiAgICAgICAgJHtiLm1hcChnPT50aGlzLnJlbmRlckFjdGlvbihnKSl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJXaWRnZXQoaCl7bGV0IG09aC5zdGF0dXMmJmguc3RhdHVzIT09ImlkbGUiP2guc3RhdHVzOiIiLHY9aC5pY29uTmFtZT9oLmljb25OYW1lLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9oLmljb25OYW1lOmBsdWNpZGU6JHtoLmljb25OYW1lfWA6IiI7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0id2lkZ2V0ICR7bX0iCiAgICAgICAgdGl0bGU9IiR7aC50b29sdGlwfHwiIn0iCiAgICAgICAgQGNsaWNrPSR7KCk9Pmgub25DbGljaz8uKCl9CiAgICAgICAgQGNvbnRleHRtZW51PSR7Yj0+dGhpcy5oYW5kbGVXaWRnZXRDb250ZXh0TWVudShiLGgpfQogICAgICA+CiAgICAgICAgJHt2P3dgCiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7dn0KICAgICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgICAgICBjbGFzcz0iJHtoLmxvYWRpbmc/InNwaW5uaW5nIjoiIn0iCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICAke2gubGFiZWw/d2A8c3Bhbj4ke2gubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb24oaCl7bGV0IG09aC5pY29uTmFtZS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/aC5pY29uTmFtZTpgbHVjaWRlOiR7aC5pY29uTmFtZX1gO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImFjdGlvbi1idXR0b24gJHtoLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIHRpdGxlPSIke2gudG9vbHRpcHx8IiJ9IgogICAgICAgIEBjbGljaz0keygpPT4haC5kaXNhYmxlZCYmaC5vbkNsaWNrPy4oKX0KICAgICAgPgogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIC5pY29uPSR7bX0KICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBoYW5kbGVXaWRnZXRDb250ZXh0TWVudShoLG0pe2lmKCFtLmNvbnRleHRNZW51SXRlbXN8fG0uY29udGV4dE1lbnVJdGVtcy5sZW5ndGg9PT0wKXJldHVybjtoLnByZXZlbnREZWZhdWx0KCk7bGV0IHY9W107Zm9yKGxldCBiIG9mIG0uY29udGV4dE1lbnVJdGVtcyliLmRpdmlkZXI/di5wdXNoKHtkaXZpZGVyOiEwfSk6di5wdXNoKHtuYW1lOmIubmFtZSxpY29uTmFtZTpiLmljb25OYW1lLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBiLmFjdGlvbigpfSwiYWN0aW9uIiksZGlzYWJsZWQ6Yi5kaXNhYmxlZH0pO2F3YWl0IENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGgsdil9YWRkV2lkZ2V0KGgpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMuZmlsdGVyKG09Pm0uaWQhPT1oLmlkKSx0aGlzLndpZGdldHM9Wy4uLnRoaXMud2lkZ2V0cyxoXX11cGRhdGVXaWRnZXQoaCxtKXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcCh2PT52LmlkPT09aD97Li4udiwuLi5tfTp2KX1yZW1vdmVXaWRnZXQoaCl7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5maWx0ZXIobT0+bS5pZCE9PWgpfWdldFdpZGdldChoKXtyZXR1cm4gdGhpcy53aWRnZXRzLmZpbmQobT0+bS5pZD09PWgpfWNsZWFyV2lkZ2V0cygpe3RoaXMud2lkZ2V0cz1bXX1hZGRBY3Rpb24oaCl7dGhpcy5hY3Rpb25zPXRoaXMuYWN0aW9ucy5maWx0ZXIobT0+bS5pZCE9PWguaWQpLHRoaXMuYWN0aW9ucz1bLi4udGhpcy5hY3Rpb25zLGhdfXJlbW92ZUFjdGlvbihoKXt0aGlzLmFjdGlvbnM9dGhpcy5hY3Rpb25zLmZpbHRlcihtPT5tLmlkIT09aCl9Y2xlYXJBY3Rpb25zKCl7dGhpcy5hY3Rpb25zPVtdfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxodGUodGhpcyxmKX1zdGF0aWN7aHRlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBtanI9dSgoKT0+e1Q2dCgpfSk7dmFyIGdqcixianI9dSgoKT0+e3ZlKCk7Z2pyPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtyZWAKICAgICAgLmRlbW8tYmFja2dyb3VuZCB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbWFyZ2luOiAzMnB4IDAgMTZweCAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWN0aW9uLXRpdGxlOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk2OHB4KSB7CiAgICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1iYWNrZ3JvdW5kIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5EZWZhdWx0IFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUGFuZWwgQ29tcG9uZW50In0gLnN1YnRpdGxlPSR7IlRoZSBkZWZhdWx0IHBhbmVsIHZhcmlhbnQgd2l0aCBzaGFkY24taW5zcGlyZWQgc3R5bGluZyJ9PgogICAgICAgIDxwPlRoZSBwYW5lbCBjb21wb25lbnQgYXV0b21hdGljYWxseSBmb2xsb3dzIHRoZSB0aGVtZSBhbmQgcHJvdmlkZXMgY29uc2lzdGVudCBzdHlsaW5nIGZvciBncm91cGVkIGNvbnRlbnQuPC9wPgogICAgICAgIDxwPkl0J3MgcGVyZmVjdCBmb3IgY3JlYXRpbmcgc2VjdGlvbnMgaW4geW91ciBhcHBsaWNhdGlvbiB3aXRoIHByb3BlciBzcGFjaW5nIGFuZCBib3JkZXJzLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIE92ZXJ2aWV3In0gLnN1YnRpdGxlPSR7IktleSBjYXBhYmlsaXRpZXMifT4KICAgICAgICAgIDxwPkdyaWQgbGF5b3V0cyB3b3JrIGdyZWF0IHdpdGggcGFuZWxzIGZvciBjcmVhdGluZyBkYXNoYm9hcmRzIGFuZCBmZWF0dXJlIHNlY3Rpb25zLjwvcD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MZWFybiBNb3JlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlF1aWNrIEFjdGlvbnMifSAuc3VidGl0bGU9JHsiQ29tbW9uIHRhc2tzIn0+CiAgICAgICAgICA8cD5FYWNoIHBhbmVsIG1haW50YWlucyBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHN0eWxpbmcgYWNyb3NzIHlvdXIgYXBwbGljYXRpb24uPC9wPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkdldCBTdGFydGVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBWYXJpYW50czwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGVmYXVsdCBWYXJpYW50In0gLnZhcmlhbnQ9JHsiZGVmYXVsdCJ9PgogICAgICAgIDxwPlRoZSBkZWZhdWx0IHZhcmlhbnQgaGFzIGEgd2hpdGUgYmFja2dyb3VuZCwgc3VidGxlIGJvcmRlciwgYW5kIG1pbmltYWwgc2hhZG93LiBJdCdzIHRoZSBzdGFuZGFyZCBjaG9pY2UgZm9yIG1vc3QgY29udGVudC48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9ImRlZmF1bHQiPC9jb2RlPiBvciBvbWl0IHRoZSB2YXJpYW50IHByb3BlcnR5LjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik91dGxpbmUgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJUcmFuc3BhcmVudCBiYWNrZ3JvdW5kIHdpdGggYm9yZGVyIn0gLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgIDxwPlRoZSBvdXRsaW5lIHZhcmlhbnQgcmVtb3ZlcyB0aGUgYmFja2dyb3VuZCBjb2xvciBhbmQgc2hhZG93LCBrZWVwaW5nIG9ubHkgdGhlIGJvcmRlci48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9Im91dGxpbmUiPC9jb2RlPiBmb3IgYSBsaWdodGVyIHZpc3VhbCB3ZWlnaHQuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiR2hvc3QgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJNaW5pbWFsIHN0eWxpbmcgZm9yIHN1YnRsZSBzZWN0aW9ucyJ9IC52YXJpYW50PSR7Imdob3N0In0+CiAgICAgICAgPHA+VGhlIGdob3N0IHZhcmlhbnQgaGFzIG5vIGJvcmRlciBvciBiYWNrZ3JvdW5kIGJ5IGRlZmF1bHQsIG9ubHkgc2hvd2luZyBhIHN1YnRsZSBiYWNrZ3JvdW5kIG9uIGhvdmVyLjwvcD4KICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD0iZ2hvc3QiPC9jb2RlPiBmb3IgdGhlIG1vc3QgbWluaW1hbCBhcHBlYXJhbmNlLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBTaXplczwvaDI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLTNjb2wiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTbWFsbCBQYW5lbCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5Db21wYWN0IHBhZGRpbmcgZm9yIGRlbnNlIGxheW91dHMuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9InNtIjwvY29kZT48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJNZWRpdW0gUGFuZWwifSAuc2l6ZT0keyJtZCJ9PgogICAgICAgICAgPHA+RGVmYXVsdCBzaXplIHdpdGggYmFsYW5jZWQgc3BhY2luZy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibWQiPC9jb2RlPiBvciBvbWl0LjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkxhcmdlIFBhbmVsIn0gLnNpemU9JHsibGcifT4KICAgICAgICAgIDxwPkdlbmVyb3VzIHBhZGRpbmcgZm9yIHByb21pbmVudCBzZWN0aW9ucy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibGciPC9jb2RlPjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db21wbGV4IEV4YW1wbGVzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiUGFuZWxzIHdvcmsgZ3JlYXQgZm9yIG9yZ2FuaXppbmcgZm9ybSBzZWN0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQcm9qZWN0IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJEZXNjcmlwdGlvbiJ9IC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIAogICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcnkifSAKICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIERldmVsb3BtZW50IixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHAiLGtleToibW9iaWxlIn0se29wdGlvbjoiRGVza3RvcCBTb2Z0d2FyZSIsa2V5OiJkZXNrdG9wIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNyZWF0ZSBQcm9qZWN0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVscyJ9IC5zdWJ0aXRsZT0keyJQYW5lbHMgY2FuIGJlIG5lc3RlZCBmb3IgaGllcmFyY2hpY2FsIG9yZ2FuaXphdGlvbiJ9PgogICAgICAgIDxwPllvdSBjYW4gbmVzdCBwYW5lbHMgdG8gY3JlYXRlIG1vcmUgY29tcGxleCBsYXlvdXRzOjwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDEifSAudmFyaWFudD0keyJvdXRsaW5lIn0gLnNpemU9JHsic20ifT4KICAgICAgICAgIDxwPlRoaXMgaXMgYSBuZXN0ZWQgcGFuZWwgd2l0aCBvdXRsaW5lIHZhcmlhbnQgYW5kIHNtYWxsIHNpemUuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDIifSAudmFyaWFudD0keyJnaG9zdCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5UaGlzIGlzIGFub3RoZXIgbmVzdGVkIHBhbmVsIHdpdGggZ2hvc3QgdmFyaWFudC48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlVudGl0bGVkIFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICA8cD5QYW5lbHMgd29yayBncmVhdCBldmVuIHdpdGhvdXQgYSB0aXRsZSBmb3Igc2ltcGxlIGNvbnRlbnQgZ3JvdXBpbmcuPC9wPgogICAgICAgIDxwPlRoZXkgcHJvdmlkZSB2aXN1YWwgc2VwYXJhdGlvbiBhbmQgY29uc2lzdGVudCBwYWRkaW5nIHRocm91Z2hvdXQgeW91ciBpbnRlcmZhY2UuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+Q3VzdG9tIENvbnRlbnQ8L2g0PgogICAgICAgICAgPHA+WW91IGNhbiBhZGQgeW91ciBvd24gaGVhZGluZ3MgYW5kIHN0cnVjdHVyZSB3aXRoaW4gdW50aXRsZWQgcGFuZWxzLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsiZ2hvc3QifT4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luLXRvcDogMDsiPk1pbmltYWwgU3R5bGU8L2g0PgogICAgICAgICAgPHA+R2hvc3QgcGFuZWxzIHdpdGhvdXQgdGl0bGVzIGNyZWF0ZSB2ZXJ5IHN1YnRsZSBjb250ZW50IHNlY3Rpb25zLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgQkVhLEhFYSxMNnQsRXBlLEhyLG05LHFFYSxWRWEseGpyLGpFYSxVRWEsWXIxLEtyMSxfcz11KCgpPT57dmUoKTtCRWE9IkdlaXN0IFNhbnMiLEhFYT0iSW50ZWwgT25lIE1vbm8iLEw2dD1gJyR7QkVhfScsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWZgLEVwZT1gJyR7SEVhfScsICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCAnRmlyYSBNb25vJywgJ0Ryb2lkIFNhbnMgTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZWAsSHI9R3IoTDZ0KSxtOT1HcihFcGUpLHFFYT0iQ2FsIFNhbnMiLFZFYT1gJyR7cUVhfScsICR7TDZ0fWAseGpyPUdyKFZFYSksakVhPSJSb2JvdG8gU2xhYiIsVUVhPWAnJHtqRWF9JywgR2VvcmdpYSwgc2VyaWZgLFlyMT1HcihVRWEpLEtyMT1HcihgCiAgZm9udC1mYW1pbHk6ICR7TDZ0fTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2N2MTEnLCAndG51bScsICdjdjA1JyAxOwpgKX0pO3ZhciBQeSxwYyx2anIsd249dSgoKT0+e3ZlKCk7YmpyKCk7X3MoKTtsdCgpO1B5PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxwYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sdmpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1wYW5lbCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzUGFuZWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOlN0cmluZ30pXSx5PVtQKHthdHRyaWJ1dGU6ITF9KV0sUHkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idGl0bGUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy50aXRsZSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnRpdGxlPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbyxsKSxQeSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1YnRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzdWJ0aXRsZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnN1YnRpdGxlLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc3VidGl0bGU9T30sInNldCIpfSxtZXRhZGF0YTpffSxkLGYpLFB5KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFyaWFudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idmFyaWFudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnZhcmlhbnQsImdldCIpLHNldDppKChTLE8pPT57Uy52YXJpYW50PU99LCJzZXQiKX0sbWV0YWRhdGE6X30saCxtKSxQeSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNpemUiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaXplLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc2l6ZT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksUHkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJydW5BZnRlclJlbmRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4icnVuQWZ0ZXJSZW5kZXIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5ydW5BZnRlclJlbmRlciwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnJ1bkFmdGVyUmVuZGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxQeShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPWdqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPXBjKHRoaXMsbywiIik7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpdGxlKF8pe3RoaXMuI2U9X30jdD0ocGModGhpcyxsKSxwYyh0aGlzLGQsIiIpKTtnZXQgc3VidGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3VidGl0bGUoXyl7dGhpcy4jdD1ffSNyPShwYyh0aGlzLGYpLHBjKHRoaXMsaCwiZGVmYXVsdCIpKTtnZXQgdmFyaWFudCgpe3JldHVybiB0aGlzLiNyfXNldCB2YXJpYW50KF8pe3RoaXMuI3I9X30jYT0ocGModGhpcyxtKSxwYyh0aGlzLGIsIm1kIikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNpemUoXyl7dGhpcy4jYT1ffSNpPShwYyh0aGlzLGcpLHBjKHRoaXMsayx2b2lkIDApKTtnZXQgcnVuQWZ0ZXJSZW5kZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcnVuQWZ0ZXJSZW5kZXIoXyl7dGhpcy4jaT1ffXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGRlZmF1bHQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9ImRlZmF1bHQiXSkgewogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIGhzbCgwIDAlIDAlIC8gMC4wNSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IG91dGxpbmUgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Im91dGxpbmUiXSkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGdob3N0ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJnaG9zdCJdKSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmhlYWRlcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBUaXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgbWFyZ2luOiA0cHggMCAwIDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTdWJ0aXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA4NC45JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC8qIENvbnRlbnQgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLmNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgfQoKICAgICAgLyogUmVtb3ZlIG1hcmdpbnMgZnJvbSBmaXJzdCBhbmQgbGFzdCBjaGlsZHJlbiAqLwogICAgICAuY29udGVudCA6OnNsb3R0ZWQoKjpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIGRlZmF1bHQgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZGVmYXVsdCJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIG91dGxpbmUgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0ib3V0bGluZSJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgNy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3IgZ2hvc3QgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZ2hvc3QiXTpob3ZlcikgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlcyAqLwogICAgICA6aG9zdCg6Zm9jdXMtd2l0aGluKSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAvKiBOZXN0ZWQgcGFuZWxzIHNwYWNpbmcgKi8KICAgICAgOjpzbG90dGVkKGRlZXMtcGFuZWwpIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbDpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICR7dGhpcy50aXRsZT93YDxoMyBjbGFzcz0idGl0bGUiPiR7dGhpcy50aXRsZX08L2gzPmA6IiJ9CiAgICAgICAgJHt0aGlzLnN1YnRpdGxlP3dgPHAgY2xhc3M9InN1YnRpdGxlIj4ke3RoaXMuc3VidGl0bGV9PC9wPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJ1bkFmdGVyUmVuZGVyJiZhd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxwYyh0aGlzLE0pfXN0YXRpY3twYyhhLHIpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgeWpyLEQ2dCx3anIsa2pyPXUoKCk9Pnt2ZSgpO3dhKCk7d24oKTtENnQ9aSh0PT5BcnJheS5mcm9tKHtsZW5ndGg6dH0sKGUscik9Pih7aWQ6cix1c2FnZTpNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMTAwKSxsYWJlbDpgJHtyfWB9KSksImdlbmVyYXRlQ3B1Q29yZXMiKSx3anI9aSgoKT0+dyh5anJ8fCh5anI9RGcoW2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgYCxgCiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5ncmlkQWN0aW9ucz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImFjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiBgLCI7IGJvcmRlci1yYWRpdXM6IDZweDsgZm9udC1zaXplOiAxNHB4OyBmb250LWZhbWlseTogbW9ub3NwYWNlOyBjb2xvcjogIixgOyI+CiAgICAgICAgICA8ZW0+Q2xpY2sgb24gdGlsZSBhY3Rpb25zIG9yIGdyaWQgYWN0aW9ucyB0byBzZWUgdGhlIHJlc3VsdC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29uZmlnIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXRpdGxlIj5Db25maWd1cmF0aW9uIE9wdGlvbnM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICBFYWNoIHRpbGUgdHlwZSBzdXBwb3J0cyBkaWZmZXJlbnQgcHJvcGVydGllczoKICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+TnVtYmVyOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPkdhdWdlOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgZ2F1Z2VPcHRpb25zIChtaW4sIG1heCwgdGhyZXNob2xkcyk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+UGVyY2VudGFnZTo8L3N0cm9uZz4gdmFsdWUgKDAtMTAwKSwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlRyZW5kOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgdHJlbmREYXRhIGFycmF5LCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UZXh0Ojwvc3Ryb25nPiB2YWx1ZSAoc3RyaW5nKSwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCAxNnB4IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsiPkNvbXBhY3QgTGF5b3V0ICgxODBweCB0aWxlcyk8L2g0PgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgICAgCiAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDI0cHggMCAxNnB4IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsiPlNwYWNpb3VzIExheW91dCAoMzIwcHggdGlsZXMpPC9oND4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICBpZD0iY3B1LWNvcmVzLWdyaWQiCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLWdyaWQiCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2siPmAsYDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1jb25maWciPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPlBhcnRpdGlvbiBUaWxlIFByb3BlcnRpZXM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS51c2VkOjwvc3Ryb25nPiBVc2VkIHNwYWNlIGluIGJ5dGVzIChhdXRvLWZvcm1hdHRlZCk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS50b3RhbDo8L3N0cm9uZz4gVG90YWwgY2FwYWNpdHkgaW4gYnl0ZXM8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS5maWxlc3lzdGVtOjwvc3Ryb25nPiBGaWxlc3lzdGVtIHR5cGUgKGV4dDQsIHhmcywgbnRmcyk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cGFydGl0aW9uRGF0YS5tb3VudFBvaW50Ojwvc3Ryb25nPiBNb3VudCBwb2ludCBwYXRoIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgQ29sb3IgdGhyZXNob2xkczogTm9ybWFsICgmbHQ7NzUlKSwgV2FybmluZyAoNzUtOTAlKSwgQ3JpdGljYWwgKCZndDs5MCUpCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy10aXRsZSI+RGlzayBUaWxlIFByb3BlcnRpZXM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjogOHB4IDA7IHBhZGRpbmctbGVmdDogMjBweDsiPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEuY2FwYWNpdHk6PC9zdHJvbmc+IFRvdGFsIGNhcGFjaXR5IGluIGJ5dGVzPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLm1vZGVsOjwvc3Ryb25nPiBEaXNrIG1vZGVsIG5hbWUgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS50eXBlOjwvc3Ryb25nPiBEaXNrIHR5cGU6ICdzc2QnLCAnaGRkJywgb3IgJ252bWUnPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmlvcHM6PC9zdHJvbmc+IFJlYWQvd3JpdGUgSU9QUyAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmhlYWx0aDo8L3N0cm9uZz4gSGVhbHRoIHBlcmNlbnRhZ2UgMC0xMDAgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICBIZWFsdGggdGhyZXNob2xkczogR29vZCAoNzAtMTAwJSksIFdhcm5pbmcgKDMwLTcwJSksIENyaXRpY2FsICgmbHQ7MzAlKQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KCiAgICA8c2NyaXB0PgogICAgICAvLyBDbGVhbnVwIGxpdmUgdXBkYXRlcyBvbiBwYWdlIHVubG9hZAogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgKCkgPT4gewogICAgICAgIGlmICgod2luZG93IGFzIGFueSkubGl2ZVVwZGF0ZUludGVydmFsKSB7CiAgICAgICAgICBjbGVhckludGVydmFsKCh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwpOwogICAgICAgIH0KICAgICAgfSk7CiAgICA8XC9zY3JpcHQ+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGBdKSkscmVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aWxlLWNvbmZpZyB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLXNlY3Rpb24gewogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvZGUtYmxvY2sgewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgICAgfQogICAgICBgLCIxLiBDb21wcmVoZW5zaXZlIERhc2hib2FyZCIsIkZ1bGwtZmVhdHVyZWQgc3RhdHMgZ3JpZCB3aXRoIHZhcmlvdXMgdGlsZSB0eXBlcywgYWN0aW9ucywgYW5kIEx1Y2lkZSBpY29ucyIsW3tpZDoicmV2ZW51ZSIsdGl0bGU6IlRvdGFsIFJldmVudWUiLHZhbHVlOjEyNTQyMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpkb2xsYXItc2lnbiIsZGVzY3JpcHRpb246IisxMi41JSBmcm9tIGxhc3QgbW9udGgiLGFjdGlvbnM6W3tuYW1lOiJWaWV3IERldGFpbHMiLGljb25OYW1lOiJsdWNpZGU6dHJlbmRpbmctdXAiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PSJWaWV3aW5nIHJldmVudWUgZGV0YWlsczogJDEyNSw0MjAgKCsxMi41JSkiKX0sImFjdGlvbiIpfSx7bmFtZToiRXhwb3J0IERhdGEiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PSJFeHBvcnRpbmcgcmV2ZW51ZSBkYXRhIHRvIENTVi4uLiIpfSwiYWN0aW9uIil9XX0se2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6Mzg0Nyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyIsZGVzY3JpcHRpb246IjMyNCBuZXcgdGhpcyB3ZWVrIixhY3Rpb25zOlt7bmFtZToiVmlldyBVc2VyIExpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7dCYmKHQudGV4dENvbnRlbnQ9Ik9wZW5pbmcgdXNlciBsaXN0Li4uIil9LCJhY3Rpb24iKX1dfSx7aWQ6ImNwdSIsdGl0bGU6IkNQVSBVc2FnZSIsdmFsdWU6NzMsdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpjcHUiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6MCxjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9LHt2YWx1ZTo2MCxjb2xvcjoiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMCA4NC4yJSA2MC4yJSkifV19fSx7aWQ6InN0b3JhZ2UiLHRpdGxlOiJTdG9yYWdlIFVzZWQiLHZhbHVlOjY1LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixkZXNjcmlwdGlvbjoiNjUwIEdCIG9mIDEgVEIifSx7aWQ6ImxhdGVuY3kiLHRpdGxlOiJSZXNwb25zZSBUaW1lIix2YWx1ZToxNDIsdW5pdDoibXMiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLHRyZW5kRGF0YTpbMTUwLDE0NSwxNDgsMTQyLDEzOCwxNDAsMTM1LDE0NSwxNDJdLGRlc2NyaXB0aW9uOiJQOTUifSx7aWQ6InVwdGltZSIsdGl0bGU6IlN5c3RlbSBVcHRpbWUiLHZhbHVlOiI5OS45NSUiLHR5cGU6InRleHQiLGljb246Imx1Y2lkZTpjaGVjay1jaXJjbGUiLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIixkZXNjcmlwdGlvbjoiTGFzdCAzMCBkYXlzIn1dLFt7bmFtZToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoLWN3IixhY3Rpb246aShhc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1zdGF0c2dyaWQiKTt0JiYodC5zdHlsZS5vcGFjaXR5PSIwLjUiLHNldFRpbWVvdXQoKCk9Pnt0LnN0eWxlLm9wYWNpdHk9IjEifSwzMDApKX0sImFjdGlvbiIpfSx7bmFtZToiRXhwb3J0IixpY29uTmFtZToibHVjaWRlOnNoYXJlIixhY3Rpb246aShhc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTt0JiYodC50ZXh0Q29udGVudD0iRXhwb3J0aW5nIGRhc2hib2FyZCByZXBvcnQuLi4iKX0sImFjdGlvbiIpfSx7bmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PSJPcGVuaW5nIGRhc2hib2FyZCBzZXR0aW5ncy4uLiIpfSwiYWN0aW9uIil9XSwyNTAsMTYseC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpLHguYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKSwiMi4gVGlsZSBUeXBlcyIsIkRpZmZlcmVudCB2aXN1YWxpemF0aW9uIHR5cGVzIGF2YWlsYWJsZSBpbiB0aGUgc3RhdHMgZ3JpZCIsW3tpZDoibnVtYmVyLWV4YW1wbGUiLHRpdGxlOiJOdW1iZXIgVGlsZSIsdmFsdWU6NDIxOTUsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6aGFzaCIsZGVzY3JpcHRpb246IlNpbXBsZSBudW1lcmljIGRpc3BsYXkifSx7aWQ6ImdhdWdlLWV4YW1wbGUiLHRpdGxlOiJHYXVnZSBUaWxlIix2YWx1ZTo2OCx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmdhdWdlIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NTAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJwZXJjZW50YWdlLWV4YW1wbGUiLHRpdGxlOiJQZXJjZW50YWdlIFRpbGUiLHZhbHVlOjc4LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpwZXJjZW50IixkZXNjcmlwdGlvbjoiUHJvZ3Jlc3MgYmFyIHZpc3VhbGl6YXRpb24ifSx7aWQ6InRyZW5kLWV4YW1wbGUiLHRpdGxlOiJUcmVuZCBUaWxlIix2YWx1ZTo4OTIsdW5pdDoib3BzL3MiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6dHJlbmRpbmctdXAiLHRyZW5kRGF0YTpbNzIwLDc1MCw3ODAsNzk1LDgxMCw4MzUsODUwLDg2NSw4ODAsODkyXSxkZXNjcmlwdGlvbjoiYXZnIn0se2lkOiJ0ZXh0LWV4YW1wbGUiLHRpdGxlOiJUZXh0IFRpbGUiLHZhbHVlOiJPcGVyYXRpb25hbCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmluZm8iLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIixkZXNjcmlwdGlvbjoiU3RhdHVzIGRpc3BsYXkifV0sMjgwLDE2LCIzLiBHcmlkIENvbmZpZ3VyYXRpb25zIiwiRGlmZmVyZW50IGxheW91dCBvcHRpb25zIGFuZCByZXNwb25zaXZlIGJlaGF2aW9yIixbe2lkOiIxIix0aXRsZToiT3JkZXJzIix2YWx1ZToxNTYsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6c2hvcHBpbmctY2FydCJ9LHtpZDoiMiIsdGl0bGU6IlJldmVudWUiLHZhbHVlOjg0MjAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6ZG9sbGFyLXNpZ24ifSx7aWQ6IjMiLHRpdGxlOiJVc2VycyIsdmFsdWU6NDIzLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnVzZXJzIn0se2lkOiI0Iix0aXRsZToiR3Jvd3RoIix2YWx1ZToxMi41LHVuaXQ6IiUiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnRyZW5kaW5nLXVwIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9XSwxODAsMTIsW3tpZDoic3BhY2lvdXMxIix0aXRsZToiTW9udGhseSBSZXZlbnVlIix2YWx1ZToxODQ1MDAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y3JlZGl0LWNhcmQiLGRlc2NyaXB0aW9uOiJUb3RhbCByZXZlbnVlIHRoaXMgbW9udGgifSx7aWQ6InNwYWNpb3VzMiIsdGl0bGU6IkN1c3RvbWVyIFNhdGlzZmFjdGlvbiIsdmFsdWU6OTQsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOnNtaWxlIixkZXNjcmlwdGlvbjoiQmFzZWQgb24gMSwyMzQgcmV2aWV3cyJ9LHtpZDoic3BhY2lvdXMzIix0aXRsZToiU2VydmVyIFJlc3BvbnNlIix2YWx1ZTo5OCx1bml0OiJtcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLHRyZW5kRGF0YTpbMTA1LDEwMiwxMDAsOTksOTgsOTgsOTcsOThdLGRlc2NyaXB0aW9uOiJhdmcgcmVzcG9uc2UgdGltZSJ9XSwzMjAsMjAsIjQuIENQVSBDb3JlcyBWaXN1YWxpemF0aW9uIiwiVmVydGljYWwgYmFyIHZpc3VhbGl6YXRpb24gZm9yIG11bHRpLWNvcmUgQ1BVIHVzYWdlIHdpdGggY29sdW1uIHNwYW5uaW5nIixbe2lkOiJjcHUtY29yZXMtOCIsdGl0bGU6IkNQVSBDb3JlcyAoOC1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOmNwdSIsY29sdW1uU3BhbjoyLGNvcmVzRGF0YTpENnQoOCksZGVzY3JpcHRpb246IkludGVsIGk3IC0gOCBjb3JlcyJ9LHtpZDoibWVtb3J5Iix0aXRsZToiTWVtb3J5IFVzYWdlIix2YWx1ZTo2OCx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6ZGF0YWJhc2UiLGRlc2NyaXB0aW9uOiIxMy42IEdCIG9mIDIwIEdCIn0se2lkOiJjcHUtY29yZXMtMTYiLHRpdGxlOiJDUFUgQ29yZXMgKDE2LWNvcmUpIix2YWx1ZTowLHR5cGU6ImNwdUNvcmVzIixpY29uOiJsdWNpZGU6Y3B1Iixjb2x1bW5TcGFuOjIsY29yZXNEYXRhOkQ2dCgxNiksZGVzY3JpcHRpb246IkFNRCBSeXplbiA5IC0gMTYgY29yZXMifSx7aWQ6Im5ldHdvcmsiLHRpdGxlOiJOZXR3b3JrIEkvTyIsdmFsdWU6MjQ1LHVuaXQ6Ik1CL3MiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6bmV0d29yayIsdHJlbmREYXRhOlsyMDAsMjIwLDIzNSwyNDAsMjM4LDI0NV0sZGVzY3JpcHRpb246InRocm91Z2hwdXQifSx7aWQ6ImNwdS1jb3Jlcy0zMiIsdGl0bGU6IlNlcnZlciBDUFUgKDMyLWNvcmUpIix2YWx1ZTowLHR5cGU6ImNwdUNvcmVzIixpY29uOiJsdWNpZGU6c2VydmVyIixjb2x1bW5TcGFuOjMsY29yZXNEYXRhOkQ2dCgzMiksZGVzY3JpcHRpb246IkFNRCBFUFlDIC0gMzIgY29yZXMifSx7aWQ6ImRpc2siLHRpdGxlOiJEaXNrIFVzYWdlIix2YWx1ZTo0Mix0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsZGVzY3JpcHRpb246IjQyMCBHQiBvZiAxIFRCIn1dLFt7bmFtZToiUmFuZG9taXplIixpY29uTmFtZToibHVjaWRlOnNodWZmbGUiLGFjdGlvbjppKGFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY3B1LWNvcmVzLWdyaWQiKTtpZighdClyZXR1cm47bGV0IGU9dC50aWxlcy5tYXAocj0+ci50eXBlPT09ImNwdUNvcmVzIiYmci5jb3Jlc0RhdGE/ey4uLnIsY29yZXNEYXRhOnIuY29yZXNEYXRhLm1hcChhPT4oey4uLmEsdXNhZ2U6TWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjEwMCl9KSl9OnIpO3QudGlsZXM9ZX0sImFjdGlvbiIpfV0sMjUwLDE2LCI1LiBJbnRlcmFjdGl2ZSBGZWF0dXJlcyIsIlRpbGVzIHdpdGggYWN0aW9ucyBhbmQgcmVhbC10aW1lIHVwZGF0ZXMiLFt7aWQ6ImxpdmUtY3B1Iix0aXRsZToiTGl2ZSBDUFUiLHZhbHVlOjQ1LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Y3B1IixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NjAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJsaXZlLXJlcXVlc3RzIix0aXRsZToiUmVxdWVzdHMvc2VjIix2YWx1ZTo4OTIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTphY3Rpdml0eSIsdHJlbmREYXRhOls4NTAsODYwLDg3MCw4ODAsODg1LDg5MCw4OTJdfSx7aWQ6ImxpdmUtbWVtb3J5Iix0aXRsZToiTWVtb3J5IFVzYWdlIix2YWx1ZTo2Mix0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6ZGF0YWJhc2UifSx7aWQ6ImNvdW50ZXIiLHRpdGxlOiJFdmVudCBDb3VudGVyIix2YWx1ZTowLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnphcCIsYWN0aW9uczpbe25hbWU6IkluY3JlbWVudCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aShhc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2ludGVyYWN0aXZlLWdyaWQiKTtpZighdClyZXR1cm47bGV0IGU9dC50aWxlcy5maW5kKHI9PnIuaWQ9PT0iY291bnRlciIpO2UudmFsdWU9dHlwZW9mIGUudmFsdWU9PSJudW1iZXIiP2UudmFsdWUrMToxLHQudGlsZXM9Wy4uLnQudGlsZXNdfSwiYWN0aW9uIil9LHtuYW1lOiJSZXNldCIsaWNvbk5hbWU6Imx1Y2lkZTpyb3RhdGUtY2N3IixhY3Rpb246aShhc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2ludGVyYWN0aXZlLWdyaWQiKTtpZighdClyZXR1cm47bGV0IGU9dC50aWxlcy5maW5kKHI9PnIuaWQ9PT0iY291bnRlciIpO2UudmFsdWU9MCx0LnRpbGVzPVsuLi50LnRpbGVzXX0sImFjdGlvbiIpfV19XSxbe25hbWU6IlN0YXJ0IExpdmUgVXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpwbGF5IixhY3Rpb246aShhc3luYyBmdW5jdGlvbigpe3dpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw/KGNsZWFySW50ZXJ2YWwod2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbCksd2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD1udWxsLHRoaXMubmFtZT0iU3RhcnQgTGl2ZSBVcGRhdGVzIix0aGlzLmljb25OYW1lPSJsdWNpZGU6cGxheSIpOih3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPXNldEludGVydmFsKCgpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2ludGVyYWN0aXZlLWdyaWQiKTtpZih0KXtsZXQgZT1bLi4udC50aWxlc10scj1lLmZpbmQobz0+by5pZD09PSJsaXZlLWNwdSIpO3IudmFsdWU9TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsci52YWx1ZSsoTWF0aC5yYW5kb20oKSoyMC0xMCkpKTtsZXQgYT1lLmZpbmQobz0+by5pZD09PSJsaXZlLXJlcXVlc3RzIikscz1hLnZhbHVlK01hdGgucm91bmQoTWF0aC5yYW5kb20oKSo1MC0yNSk7YS52YWx1ZT1NYXRoLm1heCg4MDAscyksYS50cmVuZERhdGE9Wy4uLmEudHJlbmREYXRhLnNsaWNlKDEpLGEudmFsdWVdO2xldCBuPWUuZmluZChvPT5vLmlkPT09ImxpdmUtbWVtb3J5Iik7bi52YWx1ZT1NYXRoLm1heCgwLE1hdGgubWluKDEwMCxuLnZhbHVlKyhNYXRoLnJhbmRvbSgpKjEwLTUpKSksdC50aWxlcz1lfX0sMWUzKSx0aGlzLm5hbWU9IlN0b3AgTGl2ZSBVcGRhdGVzIix0aGlzLmljb25OYW1lPSJsdWNpZGU6cGF1c2UiKX0sImFjdGlvbiIpfV0sMjUwLDE2LCI2LiBDb2RlIEV4YW1wbGUiLCJIb3cgdG8gaW1wbGVtZW50IGEgc3RhdHMgZ3JpZCB3aXRoIFR5cGVTY3JpcHQiLGBjb25zdCB0aWxlczogSVN0YXRzVGlsZVtdID0gWwogIHsKICAgIGlkOiAncmV2ZW51ZScsCiAgICB0aXRsZTogJ1RvdGFsIFJldmVudWUnLAogICAgdmFsdWU6IDEyNTQyMCwKICAgIHVuaXQ6ICckJywKICAgIHR5cGU6ICdudW1iZXInLAogICAgaWNvbjogJ2x1Y2lkZTpkb2xsYXItc2lnbicsCiAgICBkZXNjcmlwdGlvbjogJysxMi41JSBmcm9tIGxhc3QgbW9udGgnLAogICAgYWN0aW9uczogWwogICAgICB7CiAgICAgICAgbmFtZTogJ1ZpZXcgRGV0YWlscycsCiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6dHJlbmRpbmctdXAnLAogICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gewogICAgICAgICAgY29uc29sZS5sb2coJ1ZpZXcgcmV2ZW51ZSBkZXRhaWxzJyk7CiAgICAgICAgfQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogJ2NwdScsCiAgICB0aXRsZTogJ0NQVSBVc2FnZScsCiAgICB2YWx1ZTogNzMsCiAgICB1bml0OiAnJScsCiAgICB0eXBlOiAnZ2F1Z2UnLAogICAgaWNvbjogJ2x1Y2lkZTpjcHUnLAogICAgZ2F1Z2VPcHRpb25zOiB7CiAgICAgIG1pbjogMCwKICAgICAgbWF4OiAxMDAsCiAgICAgIHRocmVzaG9sZHM6IFsKICAgICAgICB7IHZhbHVlOiAwLCBjb2xvcjogJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknIH0sCiAgICAgICAgeyB2YWx1ZTogNjAsIGNvbG9yOiAnaHNsKDQ1LjQgOTMuNCUgNDcuNSUpJyB9LAogICAgICAgIHsgdmFsdWU6IDgwLCBjb2xvcjogJ2hzbCgwIDg0LjIlIDYwLjIlKScgfQogICAgICBdCiAgICB9CiAgfQpdOwoKLy8gUmVuZGVyIHRoZSBzdGF0cyBncmlkCmh0bWxcYAogIDxkZWVzLXN0YXRzZ3JpZAogICAgLnRpbGVzPVwke3RpbGVzfQogICAgLm1pblRpbGVXaWR0aD1cJHsyNTB9CiAgICAuZ2FwPVwkezE2fQogICAgLmdyaWRBY3Rpb25zPVwke1sKICAgICAgewogICAgICAgIG5hbWU6ICdSZWZyZXNoJywKICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpyZWZyZXNoLWN3JywKICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdSZWZyZXNoJykKICAgICAgfQogICAgXX0KICA+PC9kZWVzLXN0YXRzZ3JpZD4KXGA7YCwiNy4gRGlzayAmIFN0b3JhZ2UgVGlsZXMiLCJQYXJ0aXRpb24gYW5kIHBoeXNpY2FsIGRpc2sgdmlzdWFsaXphdGlvbiB0aWxlcyIsW3tpZDoicm9vdC1wYXJ0aXRpb24iLHRpdGxlOiJSb290IFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpmb2xkZXItcm9vdCIscGFydGl0aW9uRGF0YTp7dXNlZDo2OTgzNDE0MjUxNTIsdG90YWw6MTA3Mzc0MTgyNGUzLGZpbGVzeXN0ZW06ImV4dDQiLG1vdW50UG9pbnQ6Ii8ifX0se2lkOiJob21lLXBhcnRpdGlvbiIsdGl0bGU6IkhvbWUgUGFydGl0aW9uIix2YWx1ZTowLHR5cGU6InBhcnRpdGlvbiIsaWNvbjoibHVjaWRlOmhvbWUiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6MjE0NzQ4MzY0ODAwLHRvdGFsOjUzNjg3MDkxMmUzLGZpbGVzeXN0ZW06ImV4dDQiLG1vdW50UG9pbnQ6Ii9ob21lIn19LHtpZDoiZGF0YS1wYXJ0aXRpb24iLHRpdGxlOiJEYXRhIFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpkYXRhYmFzZSIscGFydGl0aW9uRGF0YTp7dXNlZDoxOTMyNzM1MjgzMjAwLHRvdGFsOjIxNDc0ODM2NDhlMyxmaWxlc3lzdGVtOiJ4ZnMiLG1vdW50UG9pbnQ6Ii9kYXRhIn19LHtpZDoibnZtZS1zc2QiLHRpdGxlOiJQcmltYXJ5IE5WTWUiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGNvbHVtblNwYW46MixkaXNrRGF0YTp7Y2FwYWNpdHk6MmUxMixtb2RlbDoiU2Ftc3VuZyA5OTAgUHJvIix0eXBlOiJudm1lIixpb3BzOntyZWFkOjc0NTAsd3JpdGU6NjkwMH0saGVhbHRoOjk4fX0se2lkOiJzYXRhLXNzZCIsdGl0bGU6IlNlY29uZGFyeSBTU0QiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRpc2tEYXRhOntjYXBhY2l0eToxZTEyLG1vZGVsOiJDcnVjaWFsIE1YNTAwIix0eXBlOiJzc2QiLGlvcHM6e3JlYWQ6NTYwLHdyaXRlOjUxMH0saGVhbHRoOjg1fX0se2lkOiJoZGQtc3RvcmFnZSIsdGl0bGU6IkJhY2t1cCBIREQiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmFyY2hpdmUiLGRpc2tEYXRhOntjYXBhY2l0eTo4ZTEyLG1vZGVsOiJTZWFnYXRlIElyb25Xb2xmIix0eXBlOiJoZGQiLGlvcHM6e3JlYWQ6MjEwLHdyaXRlOjE5NX0saGVhbHRoOjQyfX1dLDI4MCwxNiksImRlbW9GdW5jIil9KTt2YXIgTnAsa28sRXQsQ2k9dSgoKT0+e3ZlKCk7TXIoKTtOcD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sa289ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEV0PSgoKT0+e2xldCB0PXllLGUscj1bXSxhPVtdLHMsbj1bXSxvPVtdLGwsYz1bXSxkPVtdLGYscD1bXSxoPVtdLG0sdj1bXSxiPVtdLGcseT1bXSxrPVtdLE0sTj1bXSxfPVtdLFMsTz1bXSxMPVtdO3JldHVybiBjbGFzcyBleHRlbmRzIHR7c3RhdGlje2kodGhpcywiRGVlc0lucHV0QmFzZSIpfXN0YXRpY3tsZXQgQj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZSh0W1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtQKHt0eXBlOlN0cmluZ30pXSxzPVtQKHt0eXBlOlN0cmluZ30pXSxsPVtQKHt0eXBlOlN0cmluZ30pXSxmPVtQKHt0eXBlOlN0cmluZ30pXSxtPVtQKHt0eXBlOkJvb2xlYW59KV0sZz1bUCh7dHlwZTpCb29sZWFufSldLE09W1Aoe3R5cGU6U3RyaW5nfSldLFM9W1Aoe3R5cGU6U3RyaW5nfSldLE5wKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGF5b3V0TW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDPT4ibGF5b3V0TW9kZSJpbiBDLCJoYXMiKSxnZXQ6aShDPT5DLmxheW91dE1vZGUsImdldCIpLHNldDppKChDLHopPT57Qy5sYXlvdXRNb2RlPXp9LCJzZXQiKX0sbWV0YWRhdGE6Qn0scixhKSxOcCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQz0+ImxhYmVsUG9zaXRpb24iaW4gQywiaGFzIiksZ2V0OmkoQz0+Qy5sYWJlbFBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoQyx6KT0+e0MubGFiZWxQb3NpdGlvbj16fSwic2V0Iil9LG1ldGFkYXRhOkJ9LG4sbyksTnAodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJrZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQz0+ImtleSJpbiBDLCJoYXMiKSxnZXQ6aShDPT5DLmtleSwiZ2V0Iiksc2V0OmkoKEMseik9PntDLmtleT16fSwic2V0Iil9LG1ldGFkYXRhOkJ9LGMsZCksTnAodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDPT4ibGFiZWwiaW4gQywiaGFzIiksZ2V0OmkoQz0+Qy5sYWJlbCwiZ2V0Iiksc2V0OmkoKEMseik9PntDLmxhYmVsPXp9LCJzZXQiKX0sbWV0YWRhdGE6Qn0scCxoKSxOcCh0aGlzLG51bGwsbSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlcXVpcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEM9PiJyZXF1aXJlZCJpbiBDLCJoYXMiKSxnZXQ6aShDPT5DLnJlcXVpcmVkLCJnZXQiKSxzZXQ6aSgoQyx6KT0+e0MucmVxdWlyZWQ9en0sInNldCIpfSxtZXRhZGF0YTpCfSx2LGIpLE5wKHRoaXMsbnVsbCxnLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQz0+ImRpc2FibGVkImluIEMsImhhcyIpLGdldDppKEM9PkMuZGlzYWJsZWQsImdldCIpLHNldDppKChDLHopPT57Qy5kaXNhYmxlZD16fSwic2V0Iil9LG1ldGFkYXRhOkJ9LHksayksTnAodGhpcyxudWxsLE0se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmZvVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDPT4iaW5mb1RleHQiaW4gQywiaGFzIiksZ2V0OmkoQz0+Qy5pbmZvVGV4dCwiZ2V0Iiksc2V0OmkoKEMseik9PntDLmluZm9UZXh0PXp9LCJzZXQiKX0sbWV0YWRhdGE6Qn0sTixfKSxOcCh0aGlzLG51bGwsUyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRlc2NyaXB0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEM9PiJkZXNjcmlwdGlvbiJpbiBDLCJoYXMiKSxnZXQ6aShDPT5DLmRlc2NyaXB0aW9uLCJnZXQiKSxzZXQ6aSgoQyx6KT0+e0MuZGVzY3JpcHRpb249en0sInNldCIpfSxtZXRhZGF0YTpCfSxPLEwpLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfSNlPWtvKHRoaXMsciwiYXV0byIpO2dldCBsYXlvdXRNb2RlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxheW91dE1vZGUoQil7dGhpcy4jZT1CfSN0PShrbyh0aGlzLGEpLGtvKHRoaXMsbiwidG9wIikpO2dldCBsYWJlbFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhYmVsUG9zaXRpb24oQil7dGhpcy4jdD1CfSNyPShrbyh0aGlzLG8pLGtvKHRoaXMsYyx2b2lkIDApKTtnZXQga2V5KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGtleShCKXt0aGlzLiNyPUJ9I2E9KGtvKHRoaXMsZCksa28odGhpcyxwLHZvaWQgMCkpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNhfXNldCBsYWJlbChCKXt0aGlzLiNhPUJ9I2k9KGtvKHRoaXMsaCksa28odGhpcyx2LCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHJlcXVpcmVkKEIpe3RoaXMuI2k9Qn0jcz0oa28odGhpcyxiKSxrbyh0aGlzLHksITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgZGlzYWJsZWQoQil7dGhpcy4jcz1CfSNuPShrbyh0aGlzLGspLGtvKHRoaXMsTix2b2lkIDApKTtnZXQgaW5mb1RleHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaW5mb1RleHQoQil7dGhpcy4jbj1CfSNvPShrbyh0aGlzLF8pLGtvKHRoaXMsTyx2b2lkIDApKTtnZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy4jb31zZXQgZGVzY3JpcHRpb24oQil7dGhpcy4jbz1CfXN0YXRpYyBnZXQgYmFzZVN0eWxlcygpe3JldHVybltyZWAKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgKi8KICAgICAgICA6aG9zdCB7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtc3BhY2luZy11bml0OiA4cHg7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwOiB2YXIoLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdCk7IC8qIDhweCAqLwogICAgICAgIH0KCiAgICAgICAgLyogRGVmYXVsdCBibG9jayBkaXNwbGF5IHdpdGggbm8gbWFyZ2lucyAtIHNwYWNpbmcgaXMgY29udGFpbmVyLWRyaXZlbiAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIH0KCiAgICAgICAgLyogSG9yaXpvbnRhbCBsYXlvdXQgbW9kZSAtIGFjdGl2YXRlZCBieSBhdHRyaWJ1dGUgKi8KICAgICAgICA6aG9zdChbbGF5b3V0LW1vZGU9Imhvcml6b250YWwiXSkgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLyogTGFiZWwgcG9zaXRpb24gdmFyaWF0aW9ucyAqLwogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjsKICAgICAgICAgIGdhcDogdmFyKC0tZGVlcy1pbnB1dC1sYWJlbC1nYXApOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87CiAgICAgICAgICBnYXA6IHZhcigtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwKTsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InRvcCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibm9uZSJdKSBkZWVzLWxhYmVsIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAvKiBEZXNjcmlwdGlvbiB0ZXh0IGJlbG93IGlucHV0ICovCiAgICAgICAgLmRlc2NyaXB0aW9uVGV4dCB7CiAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgfQogICAgICBgXX1jaGFuZ2VTdWJqZWN0PShrbyh0aGlzLEwpLG5ldyBjci5zbWFydHJ4LnJ4anMuU3ViamVjdCk7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuZGV0ZWN0TGF5b3V0TW9kZSgpfWRldGVjdExheW91dE1vZGUoKXtpZih0aGlzLmxheW91dE1vZGUhPT0iYXV0byIpe3RoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsdGhpcy5sYXlvdXRNb2RlKTtyZXR1cm59bGV0IEI9dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtCJiZCLmhhc0F0dHJpYnV0ZSgiaG9yaXpvbnRhbC1sYXlvdXQiKT90aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLCJob3Jpem9udGFsIik6dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIiwidmVydGljYWwiKX11cGRhdGVkKEIpe3N1cGVyLnVwZGF0ZWQoQiksQi5oYXMoImxheW91dE1vZGUiKSYmdGhpcy5kZXRlY3RMYXlvdXRNb2RlKCksQi5oYXMoImxhYmVsUG9zaXRpb24iKSYmdGhpcy5zZXRBdHRyaWJ1dGUoImxhYmVsLXBvc2l0aW9uIix0aGlzLmxhYmVsUG9zaXRpb24pfWFzeW5jIGZyZWV6ZSgpe3RoaXMuZGlzYWJsZWQ9ITB9YXN5bmMgdW5mcmVlemUoKXt0aGlzLmRpc2FibGVkPSExfXJlbmRlckRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuZGVzY3JpcHRpb24/d2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvblRleHQiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifX19KSgpfSk7dmFyIFNqcixNanI9dSgoKT0+e3ZlKCk7d2EoKTt3bigpO2c5KCk7U2pyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1jaGVja2JveCIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0LWFsbC1idG4iKSxhPXQucXVlcnlTZWxlY3RvcigiI2NsZWFyLWFsbC1idG4iKTtyJiZhJiYoci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmZvckVhY2gocz0+eyFzLmRpc2FibGVkJiZzLmtleT8uc3RhcnRzV2l0aCgiZmVhdHVyZSIpJiYocy52YWx1ZT0hMCl9KX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5mb3JFYWNoKHM9Pnshcy5kaXNhYmxlZCYmcy5rZXk/LnN0YXJ0c1dpdGgoImZlYXR1cmUiKSYmKHMudmFsdWU9ITEpfSl9KSl9fT4KICAgIDxzdHlsZT4KICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoZWNrYm94LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1jaGVja2JveGVzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIENoZWNrYm94ZXMifSAuc3VidGl0bGU9JHsiU2ltcGxlIGNoZWNrYm94IGV4YW1wbGVzIHdpdGggdmFyaW91cyBsYWJlbHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsidGVybXMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaWJlIHRvIG5ld3NsZXR0ZXIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmtleT0keyJuZXdzbGV0dGVyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJSZWNlaXZlIGVtYWlsIHVwZGF0ZXMgYWJvdXQgeW91ciBhY2NvdW50In0KICAgICAgICAgICAgLmtleT0keyJub3RpZmljYXRpb25zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDaGVja2JveCBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGNoZWNrYm94IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRlZmF1bHQgc3RhdGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkNoZWNrZWQgc3RhdGUifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIHVuY2hlY2tlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIGNoZWNrZWQifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBjaGVja2JveCJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7InJlcXVpcmVkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJDaGVja2JveGVzIGFycmFuZ2VkIGhvcml6b250YWxseSBmb3IgY29tcGFjdCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWNoZWNrYm94ZXMiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25BIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBCIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Im9wdGlvbkIifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEMifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gRCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJvcHRpb25EIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZSBTZWxlY3Rpb24gRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJDb21tb24gdXNlIGNhc2UgZm9yIGZlYXR1cmUgdG9nZ2xlcyB3aXRoIGJhdGNoIG9wZXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJzZWxlY3QtYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5TZWxlY3QgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0iY2xlYXItYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5DbGVhciBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbGlzdCI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJEYXJrIE1vZGUgU3VwcG9ydCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBOb3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlR3by1GYWN0b3IgQXV0aGVudGljYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiQVBJIEFjY2VzcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlNCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZHZhbmNlZCBBbmFseXRpY3MifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcml2YWN5IFNldHRpbmdzIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ2hlY2tib3hlcyBpbiBhIHR5cGljYWwgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHJpdmFjeSBQcmVmZXJlbmNlczwvaDQ+CgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiU2hhcmUgYW5hbHl0aWNzIGRhdGEifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJIZWxwIHVzIGltcHJvdmUgYnkgc2hhcmluZyBhbm9ueW1vdXMgdXNhZ2UgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgIC5sYWJlbD0keyJQZXJzb25hbGl6ZWQgcmVjb21tZW5kYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiR2V0IHN1Z2dlc3Rpb25zIGJhc2VkIG9uIHlvdXIgYWN0aXZpdHkifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAubGFiZWw9JHsiTWFya2V0aW5nIGNvbW11bmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwcm9tb3Rpb25hbCBlbWFpbHMgYW5kIHNwZWNpYWwgb2ZmZXJzIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRoaXJkLXBhcnR5IGludGVncmF0aW9ucyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFsbG93IGFwcHJvdmVkIHBhcnRuZXJzIHRvIGFjY2VzcyB5b3VyIGRhdGEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNoZWNrYm94ZXMgdG8gc2VlIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgLmxhYmVsPSR7IkZlYXR1cmUgdG9nZ2xlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGVja2JveC1vdXRwdXQiKTtpZihlJiZ0LmRldGFpbCl7bGV0IHI9dC5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBGZWF0dXJlIGlzICR7cj8iZW5hYmxlZCI6ImRpc2FibGVkIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgoKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5sYWJlbD0keyJEZWJ1ZyBtb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkZWJ1Zy1vdXRwdXQiKTtpZihlJiZ0LmRldGFpbCl7bGV0IHI9dC5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBEZWJ1ZyBtb2RlOiAke3I/Ik9OIjoiT0ZGIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImNoZWNrYm94LW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5GZWF0dXJlIGlzIGRpc2FibGVkPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkZWJ1Zy1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRlYnVnIG1vZGU6IE9GRjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgJDZ0LG10ZSxJcGUsUHBlPXUoKCk9Pnt2ZSgpO0NpKCk7TWpyKCk7X3MoKTtsdCgpOyQ2dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sbXRlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxJcGU9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWlucHV0LWNoZWNrYm94IildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dENoZWNrYm94Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpCb29sZWFufSldLGM9W1Aoe3R5cGU6Qm9vbGVhbn0pXSwkNnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4idmFsdWUiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS52YWx1ZSwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnZhbHVlPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSwkNnQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmRldGVybWluYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJpbmRldGVybWluYXRlImluIG0sImhhcyIpLGdldDppKG09Pm0uaW5kZXRlcm1pbmF0ZSwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmluZGV0ZXJtaW5hdGU9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLCQ2dChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPVNqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9bXRlKHRoaXMsbywhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGgpe3RoaXMuI2U9aH0jdD0obXRlKHRoaXMsbCksbXRlKHRoaXMsZCwhMSkpO2dldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluZGV0ZXJtaW5hdGUoaCl7dGhpcy4jdD1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxtdGUodGhpcyxmKSx0aGlzLmxhYmVsUG9zaXRpb249InJpZ2h0In1zdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAgICogewogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CgogICAgICAgIDpob3N0IHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3ggewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgbWFyZ2luLXRvcDogMXB4OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLmNoZWNrYm94IHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveDpmb2N1cy12aXNpYmxlIHsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICAgIH0KCiAgICAgICAgLyogQ2hlY2ttYXJrIHVzaW5nIEx1Y2lkZSBpY29uIHN0eWxlICovCiAgICAgICAgLmNoZWNrYm94IC5jaGVja21hcmsgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3guc2VsZWN0ZWQgLmNoZWNrbWFyayB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94IC5jaGVja21hcmsgc3ZnIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgc3Ryb2tlOiB3aGl0ZTsKICAgICAgICAgIHN0cm9rZS13aWR0aDogMzsKICAgICAgICB9CgogICAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5kaXNhYmxlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLyogTGFiZWwgKi8KICAgICAgICAubGFiZWwtY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LWxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQ6aG92ZXIgLmNoZWNrYm94LWxhYmVsIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgfQoKICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgQGNsaWNrPSIke3RoaXMudG9nZ2xlU2VsZWN0ZWR9Ij4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJjaGVja2JveCAke3RoaXMudmFsdWU/InNlbGVjdGVkIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiAKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlS2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZT93YAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hlY2ttYXJrIj4KICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMCA2TDkgMTdMNCAxMiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBgOnRoaXMuaW5kZXRlcm1pbmF0ZT93YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGVja21hcmsiPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDEySDE5IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGl2IGNsYXNzPSJjaGVja2JveC1sYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyB0b2dnbGVTZWxlY3RlZCgpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnZhbHVlPSF0aGlzLnZhbHVlLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShoKXt0aGlzLnZhbHVlPWh9Zm9jdXMoKXtsZXQgaD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoZWNrYm94Iik7aCYmaC5mb2N1cygpfWhhbmRsZUtleWRvd24oaCl7KGgua2V5PT09IiAifHxoLmtleT09PSJFbnRlciIpJiYoaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlU2VsZWN0ZWQoKSl9c3RhdGlje210ZShhLHIpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgTnk9e307VmUoTnkse2JyaWdodDooKT0+UnAsZGFyazooKT0+T3B9KTt2YXIgT3AsUnAsZmM9dSgoKT0+e09wPXtibHVlOiIjMDA1MGI5IixibHVlQWN0aXZlOiIjMDA2OWYyIixibHVlTXV0ZWQ6IiMwMTI0NTIiLHRleHQ6IiNmZmZmZmYifSxScD17Ymx1ZToiIzAwNTBiOSIsYmx1ZUFjdGl2ZToiIzAwNjlmMiIsYmx1ZU11dGVkOiIjMDA2OWYyIix0ZXh0OiIjMzMzMzMzIn19KTt2YXIgQ2pyLHpqcj11KCgpPT57dmUoKTtRNCgpO0Nqcj1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7cmVgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tc2VjdGlvbiBwIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SGVhZGVyIEJ1dHRvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgb3B0aW9uYWwgaGVhZGVyIGJ1dHRvbnMgZm9yIGhlbHAgYW5kIGNsb3NpbmcuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBIZWxwIEJ1dHRvbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmkoYXN5bmMoKT0+e2F3YWl0IGVhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkhlbHAiLHdpZHRoOiJzbWFsbCIsc2hvd0Nsb3NlQnV0dG9uOiEwLHNob3dIZWxwQnV0dG9uOiExLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICAgICAgPHA+VGhpcyBpcyB0aGUgaGVscCBjb250ZW50IGZvciB0aGUgbW9kYWwuPC9wPgogICAgICAgICAgICAgICAgICA8cD5Zb3UgY2FuIHByb3ZpZGUgY29udGV4dC1zcGVjaWZpYyBoZWxwIGhlcmUuPC9wPgogICAgICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX0sIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBhIGhlbHAgYnV0dG9uIGluIHRoZSBoZWFkZXIuIENsaWNrIGl0IHRvIHNlZSBoZWxwIGNvbnRlbnQuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjbG9zZSBidXR0b24gaXMgYWxzbyB2aXNpYmxlIGJ5IGRlZmF1bHQuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5XaXRoIEhlbHAgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBDbG9zZSBCdXR0b24iLHNob3dDbG9zZUJ1dHRvbjohMSxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIuPC9wPgogICAgICAgICAgICAgIDxwPllvdSBtdXN0IHVzZSB0aGUgYWN0aW9uIGJ1dHRvbnMgb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBpdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk5vIENsb3NlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQm90aCBCdXR0b25zIixzaG93SGVscEJ1dHRvbjohMCxzaG93Q2xvc2VCdXR0b246ITAsb25IZWxwOmkoKCk9PmFsZXJ0KCJIZWxwIGNsaWNrZWQhIiksIm9uSGVscCIpLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBib3RoIGhlbHAgYW5kIGNsb3NlIGJ1dHRvbnMuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiRG9uZSIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkJvdGggQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ2xlYW4gSGVhZGVyIixzaG93Q2xvc2VCdXR0b246ITEsc2hvd0hlbHBCdXR0b246ITEsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY2xlYW4gaGVhZGVyIHdpdGggbm8gYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkNsZWFuIEhlYWRlcjwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Nb2RhbCBXaWR0aCBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCB3aWR0aHM6IHNtYWxsLCBtZWRpdW0sIGxhcmdlLCBmdWxsc2NyZWVuLCBvciBjdXN0b20gcGl4ZWwgdmFsdWVzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlNtYWxsIE1vZGFsIix3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc21hbGwgbW9kYWwgd2l0aCBhIHdpZHRoIG9mIDM4MHB4LiBQZXJmZWN0IGZvciBzaW1wbGUgY29uZmlybWF0aW9ucyBvciBicmllZiBtZXNzYWdlcy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6Ik9LIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+U21hbGwgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik1lZGl1bSBNb2RhbCAoRGVmYXVsdCkiLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUGFzc3dvcmQifSAuaW5wdXRUeXBlPSR7InBhc3N3b3JkIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IlNpZ24gVXAiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5NZWRpdW0gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkxhcmdlIE1vZGFsIix3aWR0aDoibGFyZ2UiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8aDQ+V2lkZSBDb250ZW50IEFyZWE8L2g0PgogICAgICAgICAgICAgIDxwPlRoaXMgbGFyZ2UgbW9kYWwgaXMgODAwcHggd2lkZSBhbmQgcGVyZmVjdCBmb3IgZGlzcGxheWluZyBtb3JlIGNvbXBsZXggY29udGVudCBsaWtlIGZvcm1zIHdpdGggbXVsdGlwbGUgY29sdW1ucywgdGFibGVzLCBvciBkZXRhaWxlZCBpbmZvcm1hdGlvbi48L3A+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDE2cHg7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkZpcnN0IE5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7Ikxhc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ29tcGFueSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUG9zaXRpb24ifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkxhcmdlIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJGdWxsc2NyZWVuIEVkaXRvciIsd2lkdGg6ImZ1bGxzY3JlZW4iLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDppKGFzeW5jKCk9PnthbGVydCgiSW4gYSByZWFsIGFwcCwgdGhpcyB3b3VsZCBzaG93IGVkaXRvciBkb2N1bWVudGF0aW9uIil9LCJvbkhlbHAiKSxjb250ZW50OndgCiAgICAgICAgICAgICAgPGg0PkZ1bGxzY3JlZW4gRXhwZXJpZW5jZSB3aXRoIEhlYWRlciBDb250cm9sczwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB0YWtlcyB1cCBhbG1vc3QgdGhlIGVudGlyZSB2aWV3cG9ydCB3aXRoIGEgMjBweCBtYXJnaW4gb24gYWxsIHNpZGVzLiBUaGUgaGVhZGVyIGJ1dHRvbnMgYXJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gZnVsbHNjcmVlbiBtb2RlLjwvcD4KICAgICAgICAgICAgICA8cD5UaGUgY29udGVudCBhcmVhIGNhbiBiZSBhcyB0YWxsIGFzIG5lZWRlZCBhbmQgd2lsbCBzY3JvbGwgaWYgbmVjZXNzYXJ5LjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YwZjBmMCIsIiMyYTJhMmEiKX07IGJvcmRlci1yYWRpdXM6IDhweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogJHt4LmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9Ij5MYXJnZSBjb250ZW50IGFyZWE8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJTYXZlIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJDYW5jZWwiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5GdWxsc2NyZWVuIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkN1c3RvbSBXaWR0aCAmIENvbnN0cmFpbnRzPC9oMz4KICAgICAgPHA+WW91IGNhbiBhbHNvIHNldCBjdXN0b20gcGl4ZWwgd2lkdGhzIGFuZCBtaW4vbWF4IGNvbnN0cmFpbnRzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkN1c3RvbSBXaWR0aCAoNzAwcHgpIix3aWR0aDo3MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY3VzdG9tIHdpZHRoIG9mIGV4YWN0bHkgNzAwIHBpeGVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19PkN1c3RvbSA3MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNYXggV2lkdGgiLHdpZHRoOiJsYXJnZSIsbWF4V2lkdGg6NjAwLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGlzIHNldCB0byAnbGFyZ2UnIGJ1dCBjb25zdHJhaW5lZCBieSBhIG1heFdpZHRoIG9mIDYwMHB4LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfV19KX19Pk1heCBXaWR0aCA2MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNaW4gV2lkdGgiLHdpZHRoOjMwMCxtaW5XaWR0aDo0MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgd2lkdGggaXMgc2V0IHRvIDMwMHB4IGJ1dCBoYXMgYSBtaW5XaWR0aCBvZiA0MDBweCwgc28gaXQgd2lsbCBiZSA0MDBweCB3aWRlLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6Ik9LIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TWluIFdpZHRoIDQwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCBidXR0b24gY29uZmlndXJhdGlvbnMgd2l0aCBwcm9wZXIgc3BhY2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJNdWx0aXBsZSBBY3Rpb25zIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBkZW1vbnN0cmF0ZXMgbXVsdGlwbGUgYnV0dG9ucyB3aXRoIHByb3BlciBzcGFjaW5nIGJldHdlZW4gdGhlbS48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEZWxldGUiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU2F2ZSBDaGFuZ2VzIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+VGhyZWUgQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2luZ2xlIEFjdGlvbiIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlNvbWV0aW1lcyB5b3UganVzdCBuZWVkIG9uZSBidXR0b24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQWNrbm93bGVkZ2UiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5TaW5nbGUgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBBY3Rpb25zIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gYm90dG9tIGJ1dHRvbnMuIFVzZSB0aGUgWCBidXR0b24gb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZS48L3A+CiAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IGNvbG9yOiAke3guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07Ij5UaGlzIGlzIHVzZWZ1bCBmb3IgaW5mb3JtYXRpb25hbCBtb2RhbHMgdGhhdCBkb24ndCByZXF1aXJlIHVzZXIgYWN0aW9uLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbXX0pfX0+Tm8gQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBCdXR0b24gTGFiZWxzIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGVzdGluZyBidXR0b24gbGF5b3V0IHdpdGggbG9uZ2VyIGxhYmVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEaXNjYXJkIEFsbCBDaGFuZ2VzIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TG9uZyBMYWJlbHM8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVzcG9uc2l2ZSBCZWhhdmlvcjwvaDM+CiAgICAgIDxwPkFsbCBtb2RhbHMgYXV0b21hdGljYWxseSBiZWNvbWUgZnVsbC13aWR0aCBvbiBtb2JpbGUgZGV2aWNlcyAoPCA3NjhweCB2aWV3cG9ydCB3aWR0aCkgZm9yIGJldHRlciB1c2FiaWxpdHkuPC9wPgogICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJSZXNwb25zaXZlIE1vZGFsIix3aWR0aDoibGFyZ2UiLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDppKCgpPT5jb25zb2xlLmxvZygiSGVscCByZXF1ZXN0ZWQgZm9yIHJlc3BvbnNpdmUgbW9kYWwiKSwib25IZWxwIiksY29udGVudDp3YAogICAgICAgICAgICA8cD5SZXNpemUgeW91ciBicm93c2VyIHdpbmRvdyB0byBzZWUgaG93IHRoaXMgbW9kYWwgYWRhcHRzLiBPbiBtb2JpbGUgdmlld3BvcnRzLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgdGFrZSB0aGUgZnVsbCB3aWR0aCBtaW51cyBtYXJnaW5zLjwvcD4KICAgICAgICAgICAgPHA+VGhlIGhlYWRlciBidXR0b25zIHJlbWFpbiBhY2Nlc3NpYmxlIGF0IGFsbCB2aWV3cG9ydCBzaXplcy48L3A+CiAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2xvc2UiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5UZXN0IFJlc3BvbnNpdmU8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNjcm9sbGFibGUgQ29udGVudDwvaDM+CiAgICAgIDxwPldoZW4gY29udGVudCBleGNlZWRzIHRoZSBtb2RhbCdzIG1heC1oZWlnaHQgKDxjb2RlPmNhbGMoMTAwdmggLSA4MHB4KTwvY29kZT4pLCB0aGUgdGlsZSBjYXBzIGF0IHRoYXQgaGVpZ2h0IGFuZCB0aGUgY29udGVudCBhcmVhIHNjcm9sbHMgaW5zaWRlLiBUaGUgaGVhZGluZyBhbmQgYm90dG9tIGJ1dHRvbnMgc3RheSBwaW5uZWQuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBBcnRpY2xlIix3aWR0aDoibWVkaXVtIixjb250ZW50OndgCiAgICAgICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2g0PgogICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjQwfSwodCxlKT0+d2AKICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICA8c3Ryb25nPsKnICR7ZSsxfS48L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gU2VkIGRvCiAgICAgICAgICAgICAgICAgIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0CiAgICAgICAgICAgICAgICAgIGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcwogICAgICAgICAgICAgICAgICBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvcgogICAgICAgICAgICAgICAgICBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0CiAgICAgICAgICAgICAgICAgIG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LAogICAgICAgICAgICAgICAgICBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9LHtuYW1lOiJBY2NlcHQiLGFjdGlvbjppKGFzeW5jIHQ9PnQuZGVzdHJveSgpLCJhY3Rpb24iKX1dfSl9fT5Mb25nIEFydGljbGU8L2RlZXMtYnV0dG9uPgoKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJMb25nIExpc3QiLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlNlbGVjdGVkIGl0ZW1zOjwvcD4KICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmctbGVmdDogMjBweDsgbWFyZ2luOiAwOyI+CiAgICAgICAgICAgICAgICAke0FycmF5LmZyb20oe2xlbmd0aDo4MH0sKHQsZSk9PndgCiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0icGFkZGluZzogNHB4IDA7Ij5JdGVtICR7ZSsxfSDigJQgb3B0aW9uIGxhYmVsPC9saT4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+TG9uZyBMaXN0PC9kZWVzLWJ1dHRvbj4KCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiVGFsbCBGb3JtIix3aWR0aDoibWVkaXVtIixjb250ZW50OndgCiAgICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOjI1fSwodCxlKT0+d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHtgRmllbGQgJHtlKzF9YH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgdD0+dC5kZXN0cm95KCksImFjdGlvbiIpfSx7bmFtZToiU3VibWl0IixhY3Rpb246aShhc3luYyB0PT50LmRlc3Ryb3koKSwiYWN0aW9uIil9XX0pfX0+VGFsbCBGb3JtPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBfanIsVGpyPXUoKCk9Pnt2ZSgpO25zKCk7X2pyPWkoKCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgICR7cmVgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAudGlsZS1kZW1vLWNvbnRlbnQgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NSUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgfQogICAgICAgICAgLmZvb3Rlci1zdGF0cyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIH0KICAgICAgICAgIC5mb290ZXItc3RhdHMgLnN0YXQgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgIH0KICAgICAgICAgIC5mb290ZXItc3RhdHMgLnN0YXQgc3Ryb25nIHsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGVlcy10aWxlIGhlYWRpbmc9IlNpbXBsZSBUaWxlIiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1kZW1vLWNvbnRlbnQiPkNvbnRlbnQgYXJlYSB3aXRoIHJvdW5kZWQgY29ybmVyczwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICA8ZGVlcy10aWxlIGhlYWRpbmc9IlRpbGUgd2l0aCBGb290ZXIiIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWRlbW8tY29udGVudCI+Q29udGVudCBnb2VzIGhlcmU8L2Rpdj4KICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZm9vdGVyLXN0YXRzIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQiPmxhdGVzdCA8c3Ryb25nPjQyPC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdCI+bWluIDxzdHJvbmc+MTI8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0Ij5tYXggPHN0cm9uZz44Nzwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQiPmF2ZyA8c3Ryb25nPjQ1LjM8L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgPGRlZXMtdGlsZSBzdHlsZT0iaGVpZ2h0OiAyMDBweDsiPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3dpZHRoOjEwMCU7Ij4KICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OjUwMDsiPkN1c3RvbSBIZWFkZXI8L3NwYW4+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoLi4uIiBzdHlsZT0iZmxleDoxO21heC13aWR0aDoyMDBweDtwYWRkaW5nOjJweCA4cHg7Ym9yZGVyOjFweCBzb2xpZDtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6MTJweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ij4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1kZW1vLWNvbnRlbnQiPkN1c3RvbSBoZWFkZXIgc2xvdCB3aXRoIHNlYXJjaCBpbnB1dDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIE5wZSxiOSxManIsbnM9dSgoKT0+e3ZlKCk7VGpyKCk7X3MoKTtsdCgpO05wZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sYjk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LExqcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtdGlsZSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdO3ZhciB2PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGlsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scD1baWUoKV0sTnBlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iaGVhZGluZyJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmhlYWRpbmcsImdldCIpLHNldDppKChnLHkpPT57Zy5oZWFkaW5nPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxOcGUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdmVyc2Nyb2xsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJvdmVyc2Nyb2xsImluIGcsImhhcyIpLGdldDppKGc9Pmcub3ZlcnNjcm9sbCwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLm92ZXJzY3JvbGw9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLE5wZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhhc0Zvb3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iaGFzRm9vdGVyImluIGcsImhhcyIpLGdldDppKGc9PmcuaGFzRm9vdGVyLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuaGFzRm9vdGVyPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSxOcGUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1fanI7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1iOSh0aGlzLG8sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcoYil7dGhpcy4jZT1ifSN0PShiOSh0aGlzLGwpLGI5KHRoaXMsZCwiYXV0byIpKTtnZXQgb3ZlcnNjcm9sbCgpe3JldHVybiB0aGlzLiN0fXNldCBvdmVyc2Nyb2xsKGIpe3RoaXMuI3Q9Yn0jcj0oYjkodGhpcyxmKSxiOSh0aGlzLGgsITEpKTtnZXQgaGFzRm9vdGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGhhc0Zvb3RlcihiKXt0aGlzLiNyPWJ9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAvKiAtLS0gVGhlIGZyYW1lIC0tLSAqLwogICAgICAudGlsZS1vdXRlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLyogLS0tIEhlYWRlcjogYmFyZSBjb250YWluZXIsIG9ubHkgdGhlIGRlZmF1bHQgaGVhZGluZyBnZXRzIHN0eWxlZCAtLS0gKi8KICAgICAgLnRpbGUtaGVhZGVyIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRpbGUtaGVhZGluZyB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC8qIC0tLSBDb250ZW50OiB0aGUgcm91bmRlZCBpbnNldCAtLS0KICAgICAgICAgVXNlcyBvdmVyZmxvdy15OiBhdXRvIHNvIHRoYXQgd2hlbiBhIGNvbnN1bWVyIChlLmcuIGRlZXMtbW9kYWwpIGNhcHMKICAgICAgICAgdGhlIHRpbGUgd2l0aCBtYXgtaGVpZ2h0LCBsb25nIGNvbnRlbnQgc2Nyb2xscyBpbnNpZGUgdGhlIHRpbGUKICAgICAgICAgaW5zdGVhZCBvZiBiZWluZyBjbGlwcGVkLiBGb3IgY29uc3VtZXJzIHdpdGhvdXQgbWF4LWhlaWdodAogICAgICAgICAoZS5nLiBkZWVzLXN0ZXBwZXIpLCB0aGUgdGlsZSBncm93cyB3aXRoIGNvbnRlbnQgYW5kIHRoZSBzY3JvbGwKICAgICAgICAgbmV2ZXIgYWN0aXZhdGVzLiBIb3Jpem9udGFsIG92ZXJmbG93IHN0YXlzIGNsaXBwZWQgdG8gcHJlc2VydmUgdGhlCiAgICAgICAgIHJvdW5kZWQgY29ybmVycy4gKi8KICAgICAgLnRpbGUtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iKSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgOmhvc3QoW292ZXJzY3JvbGw9ImNvbnRhaW4iXSkgLnRpbGUtY29udGVudCB7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgLnRpbGUtY29udGVudC5uby1mb290ZXIgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsKICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsKICAgICAgfQoKICAgICAgLyogLS0tIEZvb3RlcjogYmFyZSBjb250YWluZXIsIGNvbnN1bWVyIHN0eWxlcyB0aGUgc2xvdHRlZCBjb250ZW50IC0tLSAqLwogICAgICAudGlsZS1mb290ZXIgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGlsZS1mb290ZXIuaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdXRlciIgcGFydD0ib3V0ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtaGVhZGVyIiBwYXJ0PSJoZWFkZXIiPgogICAgICAgICAgPHNsb3QgbmFtZT0iaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1oZWFkaW5nIj4ke3RoaXMuaGVhZGluZ308L2Rpdj4KICAgICAgICAgIDwvc2xvdD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbnRlbnQgJHt0aGlzLmhhc0Zvb3Rlcj8iIjoibm8tZm9vdGVyIn0iIHBhcnQ9ImNvbnRlbnQiPgogICAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZm9vdGVyICR7dGhpcy5oYXNGb290ZXI/IiI6ImhpZGRlbiJ9IiBwYXJ0PSJmb290ZXIiPgogICAgICAgICAgPHNsb3QgbmFtZT0iZm9vdGVyIiBAc2xvdGNoYW5nZT0ke3RoaXMub25Gb290ZXJTbG90Q2hhbmdlfT48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1vbkZvb3RlclNsb3RDaGFuZ2UoYil7bGV0IGc9Yi50YXJnZXQ7dGhpcy5oYXNGb290ZXI9Zy5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiEwfSkubGVuZ3RoPjB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGI5KHRoaXMsbSl9c3RhdGlje2I5KGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBubCx1aSxlYSxRND11KCgpPT57ZmMoKTt2bigpO09vKCk7X3MoKTt6anIoKTt2ZSgpO01yKCk7bmMoKTtLcigpO25zKCk7bHQoKTtubD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdWk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGVhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1tb2RhbCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W107dmFyIHBlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzTW9kYWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbWU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1baWUoe30pXSxwPVtpZSh7fSldLHY9W1Aoe3R5cGU6U3RyaW5nfSldLHk9W1Aoe3R5cGU6TnVtYmVyfSldLE49W1Aoe3R5cGU6TnVtYmVyfSldLE89W1Aoe3R5cGU6Qm9vbGVhbn0pXSxCPVtQKHt0eXBlOkJvb2xlYW59KV0sQT1bUCh7YXR0cmlidXRlOiExfSldLFk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxkZT1bUCh7dHlwZTpOdW1iZXJ9KV0sZmU9W2llKCldLG5sKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4iaGVhZGluZyJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLmhlYWRpbmcsImdldCIpLHNldDppKChxLEgpPT57cS5oZWFkaW5nPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LG8sbCksbmwodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJjb250ZW50ImluIHEsImhhcyIpLGdldDppKHE9PnEuY29udGVudCwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLmNvbnRlbnQ9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sZCxmKSxubCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJtZW51T3B0aW9ucyJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm1lbnVPcHRpb25zLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EubWVudU9wdGlvbnM9SH0sInNldCIpfSxtZXRhZGF0YTptZX0saCxtKSxubCh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJ3aWR0aCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLndpZHRoLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3Eud2lkdGg9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sYixnKSxubCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJtYXhXaWR0aCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm1heFdpZHRoLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EubWF4V2lkdGg9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sayxNKSxubCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbldpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJtaW5XaWR0aCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm1pbldpZHRoLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EubWluV2lkdGg9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sXyxTKSxubCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDbG9zZUJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4ic2hvd0Nsb3NlQnV0dG9uImluIHEsImhhcyIpLGdldDppKHE9PnEuc2hvd0Nsb3NlQnV0dG9uLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3Euc2hvd0Nsb3NlQnV0dG9uPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LEwsRSksbmwodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93SGVscEJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4ic2hvd0hlbHBCdXR0b24iaW4gcSwiaGFzIiksZ2V0OmkocT0+cS5zaG93SGVscEJ1dHRvbiwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLnNob3dIZWxwQnV0dG9uPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LEMseiksbmwodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvbkhlbHAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+Im9uSGVscCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm9uSGVscCwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLm9uSGVscD1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSwkLEYpLG5sKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9iaWxlRnVsbHNjcmVlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4ibW9iaWxlRnVsbHNjcmVlbiJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm1vYmlsZUZ1bGxzY3JlZW4sImdldCIpLHNldDppKChxLEgpPT57cS5tb2JpbGVGdWxsc2NyZWVuPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LEcsWiksbmwodGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFBhZGRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+ImNvbnRlbnRQYWRkaW5nImluIHEsImhhcyIpLGdldDppKHE9PnEuY29udGVudFBhZGRpbmcsImdldCIpLHNldDppKChxLEgpPT57cS5jb250ZW50UGFkZGluZz1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSxELFEpLG5sKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGFsWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJtb2RhbFpJbmRleCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLm1vZGFsWkluZGV4LCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EubW9kYWxaSW5kZXg9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sVCxXKSxubChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTptZX0sbnVsbCxyKSxwZT1hPWUudmFsdWUsbWUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bWV9KX1zdGF0aWMgZGVtbz1DanI7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3cobWUpe2xldCBxPWRvY3VtZW50LmJvZHksSD1uZXcgcGU7cmV0dXJuIEguaGVhZGluZz1tZS5oZWFkaW5nLEguY29udGVudD1tZS5jb250ZW50LEgubWVudU9wdGlvbnM9bWUubWVudU9wdGlvbnMsbWUud2lkdGgmJihILndpZHRoPW1lLndpZHRoKSxtZS5tYXhXaWR0aCYmKEgubWF4V2lkdGg9bWUubWF4V2lkdGgpLG1lLm1pbldpZHRoJiYoSC5taW5XaWR0aD1tZS5taW5XaWR0aCksbWUuc2hvd0Nsb3NlQnV0dG9uIT09dm9pZCAwJiYoSC5zaG93Q2xvc2VCdXR0b249bWUuc2hvd0Nsb3NlQnV0dG9uKSxtZS5zaG93SGVscEJ1dHRvbiE9PXZvaWQgMCYmKEguc2hvd0hlbHBCdXR0b249bWUuc2hvd0hlbHBCdXR0b24pLG1lLm9uSGVscCYmKEgub25IZWxwPW1lLm9uSGVscCksbWUubW9iaWxlRnVsbHNjcmVlbiE9PXZvaWQgMCYmKEgubW9iaWxlRnVsbHNjcmVlbj1tZS5tb2JpbGVGdWxsc2NyZWVuKSxtZS5jb250ZW50UGFkZGluZyE9PXZvaWQgMCYmKEguY29udGVudFBhZGRpbmc9bWUuY29udGVudFBhZGRpbmcpLEgud2luZG93TGF5ZXI9YXdhaXQgeW4uY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLEgud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9Pnthd2FpdCBILmRlc3Ryb3koKX0pLHEuYXBwZW5kKEgud2luZG93TGF5ZXIpLHEuYXBwZW5kKEgpLEgubW9kYWxaSW5kZXg9eXIuZ2V0TmV4dFpJbmRleCgpLHlyLnJlZ2lzdGVyKEgsSC5tb2RhbFpJbmRleCksSH0jZT11aSh0aGlzLG8sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcobWUpe3RoaXMuI2U9bWV9I3Q9KHVpKHRoaXMsbCksdWkodGhpcyxkLHZvaWQgMCkpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvbnRlbnQobWUpe3RoaXMuI3Q9bWV9I3I9KHVpKHRoaXMsZiksdWkodGhpcyxoLFtdKSk7Z2V0IG1lbnVPcHRpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1lbnVPcHRpb25zKG1lKXt0aGlzLiNyPW1lfSNhPSh1aSh0aGlzLG0pLHVpKHRoaXMsYiwibWVkaXVtIikpO2dldCB3aWR0aCgpe3JldHVybiB0aGlzLiNhfXNldCB3aWR0aChtZSl7dGhpcy4jYT1tZX0jaT0odWkodGhpcyxnKSx1aSh0aGlzLGssdm9pZCAwKSk7Z2V0IG1heFdpZHRoKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1heFdpZHRoKG1lKXt0aGlzLiNpPW1lfSNzPSh1aSh0aGlzLE0pLHVpKHRoaXMsXyx2b2lkIDApKTtnZXQgbWluV2lkdGgoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWluV2lkdGgobWUpe3RoaXMuI3M9bWV9I249KHVpKHRoaXMsUyksdWkodGhpcyxMLCEwKSk7Z2V0IHNob3dDbG9zZUJ1dHRvbigpe3JldHVybiB0aGlzLiNufXNldCBzaG93Q2xvc2VCdXR0b24obWUpe3RoaXMuI249bWV9I289KHVpKHRoaXMsRSksdWkodGhpcyxDLCExKSk7Z2V0IHNob3dIZWxwQnV0dG9uKCl7cmV0dXJuIHRoaXMuI299c2V0IHNob3dIZWxwQnV0dG9uKG1lKXt0aGlzLiNvPW1lfSNsPSh1aSh0aGlzLHopLHVpKHRoaXMsJCx2b2lkIDApKTtnZXQgb25IZWxwKCl7cmV0dXJuIHRoaXMuI2x9c2V0IG9uSGVscChtZSl7dGhpcy4jbD1tZX0jYz0odWkodGhpcyxGKSx1aSh0aGlzLEcsITEpKTtnZXQgbW9iaWxlRnVsbHNjcmVlbigpe3JldHVybiB0aGlzLiNjfXNldCBtb2JpbGVGdWxsc2NyZWVuKG1lKXt0aGlzLiNjPW1lfSNkPSh1aSh0aGlzLFopLHVpKHRoaXMsRCwxNikpO2dldCBjb250ZW50UGFkZGluZygpe3JldHVybiB0aGlzLiNkfXNldCBjb250ZW50UGFkZGluZyhtZSl7dGhpcy4jZD1tZX0jdT0odWkodGhpcyxRKSx1aSh0aGlzLFQsMWUzKSk7Z2V0IG1vZGFsWkluZGV4KCl7cmV0dXJuIHRoaXMuI3V9c2V0IG1vZGFsWkluZGV4KG1lKXt0aGlzLiN1PW1lfWNvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtIcn07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAubW9kYWxDb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KICAgICAgZGVlcy10aWxlIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDgwcHgpOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgbWFyZ2luOiA0MHB4OwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTo6cGFydChvdXRlcikgewogICAgICAgIGJveC1zaGFkb3c6CiAgICAgICAgICAwIDAgMCAxcHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wMykiLCJoc2woMCAwJSAxMDAlIC8gMC4wMykiKX0sCiAgICAgICAgICAwIDhweCA0MHB4ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMTIpIiwiaHNsKDAgMCUgMCUgLyAwLjUpIil9LAogICAgICAgICAgMCAycHggOHB4ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDYpIiwiaHNsKDAgMCUgMCUgLyAwLjI1KSIpfTsKICAgICAgfQoKICAgICAgLyogV2lkdGggdmFyaWF0aW9ucyAqLwogICAgICBkZWVzLXRpbGUud2lkdGgtc21hbGwgewogICAgICAgIHdpZHRoOiAzODBweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLndpZHRoLW1lZGl1bSB7CiAgICAgICAgd2lkdGg6IDU2MHB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUud2lkdGgtbGFyZ2UgewogICAgICAgIHdpZHRoOiA4MDBweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLndpZHRoLWZ1bGxzY3JlZW4gewogICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gNDBweCk7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7CiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQwcHgpOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICBkZWVzLXRpbGUgewogICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KSAhaW1wb3J0YW50OwogICAgICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgfQoKICAgICAgICAubW9kYWxDb250YWluZXIgewogICAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICB9CgogICAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgICBtYXJnaW46IDEwcHg7CiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjBweCk7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXRpbGUubW9iaWxlLWZ1bGxzY3JlZW4gewogICAgICAgICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIH0KCiAgICAgICAgZGVlcy10aWxlLm1vYmlsZS1mdWxsc2NyZWVuOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNob3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc2hvdy5wcmVkZXN0cm95IHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpIHNjYWxlKDAuOTgpOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLWluLCBvcGFjaXR5IDAuMTVzIGVhc2UtaW47CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTZweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkaW5nLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRlci1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRlci1idXR0b24gewogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRlci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgLmhlYWRlci1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTMlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xMikiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjEyKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IG1lPXR5cGVvZiB0aGlzLndpZHRoPT0ic3RyaW5nIj9gd2lkdGgtJHt0aGlzLndpZHRofWA6IiIscT10eXBlb2YgdGhpcy53aWR0aD09Im51bWJlciI/YCR7dGhpcy53aWR0aH1weGA6IiIsSD10aGlzLm1heFdpZHRoP2Ake3RoaXMubWF4V2lkdGh9cHhgOiIiLFU9dGhpcy5taW5XaWR0aD9gJHt0aGlzLm1pbldpZHRofXB4YDoiIixqPXRoaXMubW9iaWxlRnVsbHNjcmVlbj8ibW9iaWxlLWZ1bGxzY3JlZW4iOiIiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgJHtxP2BkZWVzLXRpbGUgeyB3aWR0aDogJHtxfTsgfWA6IiJ9CiAgICAgICAgJHtIP2BkZWVzLXRpbGUgeyBtYXgtd2lkdGg6ICR7SH07IH1gOiIifQogICAgICAgICR7VT9gZGVlcy10aWxlIHsgbWluLXdpZHRoOiAke1V9OyB9YDoiIn0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibW9kYWxDb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlT3V0c2lkZUNsaWNrfSBzdHlsZT0iei1pbmRleDogJHt0aGlzLm1vZGFsWkluZGV4fSI+CiAgICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iJHttZX0gJHtqfSIgLm92ZXJzY3JvbGw9JHsiY29udGFpbiJ9PgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy10ZXh0Ij4ke3RoaXMuaGVhZGluZ308L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbnMiPgogICAgICAgICAgICAgICR7dGhpcy5zaG93SGVscEJ1dHRvbj93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVIZWxwfSB0aXRsZT0iSGVscCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmhlbHBDaXJjbGUifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHt0aGlzLnNob3dDbG9zZUJ1dHRvbj93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuZGVzdHJveSgpfSB0aXRsZT0iQ2xvc2UiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6ICR7dGhpcy5jb250ZW50UGFkZGluZ31weDsiPiR7dGhpcy5jb250ZW50fTwvZGl2PgogICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iYm90dG9tQnV0dG9ucyI+CiAgICAgICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLm1hcCgoYWUsWCk9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJ1dHRvbiAke1g9PT10aGlzLm1lbnVPcHRpb25zLmxlbmd0aC0xPyJwcmltYXJ5IjoiIn0gJHthZS5uYW1lPT09Ik9LIj8ib2siOiIifSIgQGNsaWNrPSR7KCk9PnthZS5hY3Rpb24odGhpcyl9fT4ke2FlLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGVlcy10aWxlPgogICAgICA8L2Rpdj4KICAgIGB9d2luZG93TGF5ZXI9dWkodGhpcyxXKTthc3luYyBmaXJzdFVwZGF0ZWQobWUpe3N1cGVyLmZpcnN0VXBkYXRlZChtZSksYXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXRpbGUiKS5jbGFzc0xpc3QuYWRkKCJzaG93Iil9YXN5bmMgaGFuZGxlT3V0c2lkZUNsaWNrKG1lKXttZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgcT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1vZGFsQ29udGFpbmVyIik7bWUudGFyZ2V0PT09cSYmYXdhaXQgdGhpcy5kZXN0cm95KCl9YXN5bmMgZGVzdHJveSgpe2xldCBtZT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy10aWxlIikuY2xhc3NMaXN0LmFkZCgicHJlZGVzdHJveSIpLGF3YWl0IG1lLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjAwKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMpLGF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHlyLnVucmVnaXN0ZXIodGhpcyl9YXN5bmMgaGFuZGxlSGVscCgpe3RoaXMub25IZWxwJiZhd2FpdCB0aGlzLm9uSGVscCgpfXN0YXRpY3t1aShhLHIpfX07cmV0dXJuIHBlPWF9KSgpfSk7dmFyIERqciwkanI9dSgoKT0+e3ZlKCk7RGpyPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtyZWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOGY5ZmEiLCIjMWExYTFhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiBoMyB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gcCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmxhYmVsLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sYWJlbC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmxhYmVsLXJvdyAuYW5ub3RhdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjODg4IiwiIzY2NiIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5CYXNpYyBMYWJlbDwvaDM+CiAgICAgIDxwPkEgc2ltcGxlIHRleHQgbGFiZWwgd2l0aCBubyBhZGRpdGlvbmFsIGluZGljYXRvcnMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSJVc2VybmFtZSI8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5sYWJlbD0iRW1haWwgQWRkcmVzcyI8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVxdWlyZWQgSW5kaWNhdG9yPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5yZXF1aXJlZDwvY29kZT4gaXMgc2V0LCBhIHJlZCBhc3RlcmlzayBhcHBlYXJzIGFmdGVyIHRoZSBsYWJlbCB0ZXh0LjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZD0keyJ7dHJ1ZX0ifTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJGdWxsIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+cmVxdWlyZWQ9JHsie2ZhbHNlfSJ9IChkZWZhdWx0KTwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJOaWNrbmFtZSJ9IC5yZXF1aXJlZD0keyExfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkluZm8gVGV4dCAoSW5mbyBJY29uKTwvaDM+CiAgICAgIDxwPldoZW4gPGNvZGU+aW5mb1RleHQ8L2NvZGU+IGlzIHNldCwgYW4gaW5mbyBpY29uIGFwcGVhcnMgbmV4dCB0byB0aGUgbGFiZWwuIEhvdmVyIG92ZXIgaXQgdG8gc2VlIHRoZSB0b29sdGlwLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5pbmZvVGV4dD0iLi4uIjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJBUEkgS2V5In0gLmluZm9UZXh0PSR7IllvdXIgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIGRldmVsb3BlciBzZXR0aW5ncyBkYXNoYm9hcmQuIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+c2hvcnQgaW5mb1RleHQ8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiUmVnaW9uIn0gLmluZm9UZXh0PSR7IlNlbGVjdCB5b3VyIG5lYXJlc3QgZGF0YWNlbnRlci4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlJlcXVpcmVkICsgSW5mbyBUZXh0PC9oMz4KICAgICAgPHA+Qm90aCBpbmRpY2F0b3JzIGNhbiBiZSBjb21iaW5lZC4gVGhlIGFzdGVyaXNrIGFwcGVhcnMgZmlyc3QsIHRoZW4gdGhlIGluZm8gaWNvbi48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsLXJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYW5ub3RhdGlvbiI+cmVxdWlyZWQgKyBpbmZvVGV4dDwvc3Bhbj4KICAgICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJQYXNzd29yZCJ9IC5yZXF1aXJlZD0keyEwfSAuaW5mb1RleHQ9JHsiTXVzdCBiZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMgd2l0aCBvbmUgdXBwZXJjYXNlIGxldHRlciBhbmQgb25lIG51bWJlci4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJhbm5vdGF0aW9uIj5yZXF1aXJlZCArIGluZm9UZXh0PC9zcGFuPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7IkVtYWlsIEFkZHJlc3MifSAucmVxdWlyZWQ9JHshMH0gLmluZm9UZXh0PSR7IldlIHdpbGwgc2VuZCBhIHZlcmlmaWNhdGlvbiBsaW5rIHRvIHRoaXMgYWRkcmVzcy4ifT48L2RlZXMtbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkVtcHR5IExhYmVsPC9oMz4KICAgICAgPHA+V2hlbiA8Y29kZT5sYWJlbDwvY29kZT4gaXMgZW1wdHkgb3Igbm90IHNldCwgbm90aGluZyBpcyByZW5kZXJlZC4gVGhlIGVsZW1lbnQgYmVsb3cgaGFzIG5vIGxhYmVsIHRleHQ6PC9wPgogICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImFubm90YXRpb24iPmxhYmVsPSIiIChlbXB0eSk8L3NwYW4+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiIn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIE9wZSx4OSxBanIsT3k9dSgoKT0+e3ZuKCk7ZmMoKTt2ZSgpOyRqcigpO2x0KCk7T3BlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSx4OT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sQWpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1sYWJlbCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdO3ZhciB2PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzTGFiZWwiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGM9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scD1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sT3BlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImxhYmVsImluIGcsImhhcyIpLGdldDppKGc9PmcubGFiZWwsImdldCIpLHNldDppKChnLHkpPT57Zy5sYWJlbD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksT3BlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5mb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImluZm9UZXh0ImluIGcsImhhcyIpLGdldDppKGc9PmcuaW5mb1RleHQsImdldCIpLHNldDppKChnLHkpPT57Zy5pbmZvVGV4dD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsZiksT3BlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InJlcXVpcmVkImluIGcsImhhcyIpLGdldDppKGc9PmcucmVxdWlyZWQsImdldCIpLHNldDppKChnLHkpPT57Zy5yZXF1aXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSksT3BlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89RGpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0IiwiSW5wdXQiXTsjZT14OSh0aGlzLG8sIiIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChiKXt0aGlzLiNlPWJ9I3Q9KHg5KHRoaXMsbCkseDkodGhpcyxkLHZvaWQgMCkpO2dldCBpbmZvVGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCBpbmZvVGV4dChiKXt0aGlzLiN0PWJ9I3I9KHg5KHRoaXMsZikseDkodGhpcyxoLCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHJlcXVpcmVkKGIpe3RoaXMuI3I9Yn1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmxhYmVsIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAucmVxdWlyZWQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbi1pY29uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBtYXJnaW46IC02cHggMCAtNnB4IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uLWljb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDYpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMjUlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbi1pY29uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmxhYmVsP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsIj4KICAgICAgICAgICAgICAke3RoaXMubGFiZWx9CiAgICAgICAgICAgICAgJHt0aGlzLnJlcXVpcmVkP3dgPHNwYW4gY2xhc3M9InJlcXVpcmVkIj4qPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgJHt0aGlzLmluZm9UZXh0P3dgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24taWNvbiI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTppbmZvIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtc3BlZWNoYnViYmxlIC50ZXh0PSR7dGhpcy5pbmZvVGV4dH0+PC9kZWVzLXNwZWVjaGJ1YmJsZT4KICAgICAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YGB9CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx4OSh0aGlzLG0pfXN0YXRpY3t4OShhLHIpfX07cmV0dXJuIHY9YX0pKCl9KTt2YXIgUnBlLEE2dD11KCgpPT57UnBlPSIwLjU1LjEifSk7dmFyIFJ5LGhjLEVqcix2OT11KCgpPT57dmUoKTtNcigpO0E2dCgpO2x0KCk7Unk9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGhjPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxFanI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZU1vbmFjbyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6T2JqZWN0fSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxSeSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNvbnRlbnQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jb250ZW50LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuY29udGVudD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksUnkodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYW5ndWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibGFuZ3VhZ2UiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5sYW5ndWFnZSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmxhbmd1YWdlPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sZCxmKSxSeSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJmaWxlUGF0aCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmZpbGVQYXRoLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuZmlsZVBhdGg9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLFJ5KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFN1YmplY3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImNvbnRlbnRTdWJqZWN0ImluIFMsImhhcyIpLGdldDppKFM9PlMuY29udGVudFN1YmplY3QsImdldCIpLHNldDppKChTLE8pPT57Uy5jb250ZW50U3ViamVjdD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksUnkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkV3JhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4id29yZFdyYXAiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy53b3JkV3JhcCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLndvcmRXcmFwPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxSeShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPWkoKCk9PndgPGRlZXMtd29ya3NwYWNlLW1vbmFjbz48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz5gLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtzdGF0aWMgbW9uYWNvRGVmZXJyZWQ7ZWRpdG9yRGVmZXJyZWQ9Y3Iuc21hcnRwcm9taXNlLmRlZmVyKCk7I2U9aGModGhpcyxvLGBmdW5jdGlvbiBoZWxsbygpIHsKCWFsZXJ0KCdIZWxsbyB3b3JsZCEnKTsKfWApO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGNvbnRlbnQoXyl7dGhpcy4jZT1ffSN0PShoYyh0aGlzLGwpLGhjKHRoaXMsZCwidHlwZXNjcmlwdCIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFuZ3VhZ2UoXyl7dGhpcy4jdD1ffSNyPShoYyh0aGlzLGYpLGhjKHRoaXMsaCwiIikpO2dldCBmaWxlUGF0aCgpe3JldHVybiB0aGlzLiNyfXNldCBmaWxlUGF0aChfKXt0aGlzLiNyPV99I2E9KGhjKHRoaXMsbSksaGModGhpcyxiLG5ldyBjci5zbWFydHJ4LnJ4anMuU3ViamVjdCkpO2dldCBjb250ZW50U3ViamVjdCgpe3JldHVybiB0aGlzLiNhfXNldCBjb250ZW50U3ViamVjdChfKXt0aGlzLiNhPV99I2k9KGhjKHRoaXMsZyksaGModGhpcyxrLCJvZmYiKSk7Z2V0IHdvcmRXcmFwKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHdvcmRXcmFwKF8pe3RoaXMuI2k9X31tb25hY29UaGVtZVN1YnNjcmlwdGlvbj0oaGModGhpcyxNKSxudWxsKTtpc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx2by5zZXR1cERvbVRvb2xzKCl9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICNjb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKF8pe3N1cGVyLmZpcnN0VXBkYXRlZChfKTtsZXQgUz10aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLE89YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbW9uYWNvLWVkaXRvckAke1JwZX1gO2lmKCFOLm1vbmFjb0RlZmVycmVkKXtOLm1vbmFjb0RlZmVycmVkPWNyLnNtYXJ0cHJvbWlzZS5kZWZlcigpO2xldCBDPWAke099L21pbi92cy9sb2FkZXIuanNgLHo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ei5zcmM9Qyx6Lm9ubG9hZD0oKT0+e04ubW9uYWNvRGVmZXJyZWQucmVzb2x2ZSgpfSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHopfWF3YWl0IE4ubW9uYWNvRGVmZXJyZWQucHJvbWlzZSx3aW5kb3cucmVxdWlyZS5jb25maWcoe3BhdGhzOnt2czpgJHtPfS9taW4vdnNgfX0pLHdpbmRvdy5yZXF1aXJlKFsidnMvZWRpdG9yL2VkaXRvci5tYWluIl0sYXN5bmMoKT0+e2xldCBDPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLEE9Qy50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuPyJ2cyI6InZzLWRhcmsiLCQ9d2luZG93Lm1vbmFjbyxGPW51bGw7aWYodGhpcy5maWxlUGF0aCl7bGV0IEc9JC5VcmkucGFyc2UoYGZpbGU6Ly8ke3RoaXMuZmlsZVBhdGh9YCk7Rj0kLmVkaXRvci5nZXRNb2RlbChHKSxGP0Yuc2V0VmFsdWUodGhpcy5jb250ZW50KTpGPSQuZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMuY29udGVudCx0aGlzLmxhbmd1YWdlLEcpfWxldCBZPSQuZWRpdG9yLmNyZWF0ZShTLHttb2RlbDpGfHx2b2lkIDAsdmFsdWU6Rj92b2lkIDA6dGhpcy5jb250ZW50LGxhbmd1YWdlOkY/dm9pZCAwOnRoaXMubGFuZ3VhZ2UsdGhlbWU6QSx1c2VTaGFkb3dET006ITAsZm9udFNpemU6MTYsYXV0b21hdGljTGF5b3V0OiEwLHdvcmRXcmFwOnRoaXMud29yZFdyYXAsaG92ZXI6e2VuYWJsZWQ6ITAsZGVsYXk6MzAwLHN0aWNreTohMCxhYm92ZTohMX19KTt0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPUMudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoRz0+e2xldCBaPUc/InZzIjoidnMtZGFyayI7WS51cGRhdGVPcHRpb25zKHt0aGVtZTpafSl9KSx0aGlzLmVkaXRvckRlZmVycmVkLnJlc29sdmUoWSl9KTtsZXQgTD1hd2FpdChhd2FpdCBmZXRjaChgJHtPfS9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzc2ApKS50ZXh0KCksRT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0UudGV4dENvbnRlbnQ9TCx0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kKEUpO2xldCBCPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtCLm9uRGlkQ2hhbmdlTW9kZWxDb250ZW50KGFzeW5jIEM9PntpZih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWwpcmV0dXJuO2xldCB6PUIuZ2V0VmFsdWUoKTt0aGlzLmNvbnRlbnRTdWJqZWN0Lm5leHQoeiksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC1jaGFuZ2UiLHtkZXRhaWw6eixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSksdGhpcy5jb250ZW50U3ViamVjdC5uZXh0KEIuZ2V0VmFsdWUoKSl9YXN5bmMgdXBkYXRlZChfKXtzdXBlci51cGRhdGVkKF8pO2xldCBTPXdpbmRvdy5tb25hY287aWYoUyl7aWYoXy5oYXMoImZpbGVQYXRoIikmJnRoaXMuZmlsZVBhdGgpe2xldCBPPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSxMPVMuVXJpLnBhcnNlKGBmaWxlOi8vJHt0aGlzLmZpbGVQYXRofWApLEU9Uy5lZGl0b3IuZ2V0TW9kZWwoTCk7RT9FLmdldFZhbHVlKCkhPT10aGlzLmNvbnRlbnQmJih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsRS5zZXRWYWx1ZSh0aGlzLmNvbnRlbnQpLHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMSk6RT1TLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLmNvbnRlbnQsdGhpcy5sYW5ndWFnZSxMKSxPLmdldE1vZGVsKCk/LnVyaS50b1N0cmluZygpIT09TC50b1N0cmluZygpJiZPLnNldE1vZGVsKEUpO3JldHVybn1pZihfLmhhcygiY29udGVudCIpKXtsZXQgTz1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7Ty5nZXRWYWx1ZSgpIT09dGhpcy5jb250ZW50JiYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLE8uc2V0VmFsdWUodGhpcy5jb250ZW50KSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEpfWlmKF8uaGFzKCJsYW5ndWFnZSIpKXtsZXQgTD0oYXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRNb2RlbCgpO0wmJlMuZWRpdG9yLnNldE1vZGVsTGFuZ3VhZ2UoTCx0aGlzLmxhbmd1YWdlKX19fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbCl9YXN5bmMgc2V0Q29udGVudEV4dGVybmFsKF8sUz0hMCl7bGV0IE89YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO2lmKE8uZ2V0VmFsdWUoKT09PV8pcmV0dXJuO2xldCBFPVM/Ty5nZXRQb3NpdGlvbigpOm51bGwsQj1TP08uZ2V0U2VsZWN0aW9ucygpOm51bGwsQz1TP08uZ2V0U2Nyb2xsVG9wKCk6MCx6PVM/Ty5nZXRTY3JvbGxMZWZ0KCk6MDtpZih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsTy5zZXRWYWx1ZShfKSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEsUyl7aWYoRSl7bGV0IEE9Ty5nZXRNb2RlbCgpLCQ9QT8uZ2V0TGluZUNvdW50KCl8fDEsRj1NYXRoLm1pbihFLmxpbmVOdW1iZXIsJCksWT1BPy5nZXRMaW5lTWF4Q29sdW1uKEYpfHwxLEc9TWF0aC5taW4oRS5jb2x1bW4sWSk7Ty5zZXRQb3NpdGlvbih7bGluZU51bWJlcjpGLGNvbHVtbjpHfSl9aWYoQiYmQi5sZW5ndGg+MCl0cnl7Ty5zZXRTZWxlY3Rpb25zKEIpfWNhdGNoe31PLnNldFNjcm9sbFBvc2l0aW9uKHtzY3JvbGxUb3A6QyxzY3JvbGxMZWZ0Onp9KX19c3RhdGlje2hjKGEscil9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBpZCxlbix5OSxGcGUsRTZ0PXUoKCk9PntDaSgpO3ZlKCk7bHQoKTtRNCgpO0tyKCk7T3koKTtucygpO3Y5KCk7djkoKTtpZD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZW49ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHk5PVt7a2V5OiJ0eXBlc2NyaXB0IixsYWJlbDoiVHlwZVNjcmlwdCJ9LHtrZXk6ImphdmFzY3JpcHQiLGxhYmVsOiJKYXZhU2NyaXB0In0se2tleToianNvbiIsbGFiZWw6IkpTT04ifSx7a2V5OiJodG1sIixsYWJlbDoiSFRNTCJ9LHtrZXk6ImNzcyIsbGFiZWw6IkNTUyJ9LHtrZXk6InNjc3MiLGxhYmVsOiJTQ1NTIn0se2tleToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biJ9LHtrZXk6InlhbWwiLGxhYmVsOiJZQU1MIn0se2tleToieG1sIixsYWJlbDoiWE1MIn0se2tleToic3FsIixsYWJlbDoiU1FMIn0se2tleToicHl0aG9uIixsYWJlbDoiUHl0aG9uIn0se2tleToiamF2YSIsbGFiZWw6IkphdmEifSx7a2V5OiJjc2hhcnAiLGxhYmVsOiJDIyJ9LHtrZXk6ImNwcCIsbGFiZWw6IkMrKyJ9LHtrZXk6ImdvIixsYWJlbDoiR28ifSx7a2V5OiJydXN0IixsYWJlbDoiUnVzdCJ9LHtrZXk6InNoZWxsIixsYWJlbDoiU2hlbGwifSx7a2V5OiJwbGFpbnRleHQiLGxhYmVsOiJQbGFpbiBUZXh0In1dLEZwZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtY29kZSIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdO3ZhciBZPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRDb2RlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpTdHJpbmd9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpCb29sZWFufSldLE49W2llKCldLE89W2llKCldLEI9W2llKCldLEE9W2llKCldLGlkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InZhbHVlImluIFosImhhcyIpLGdldDppKFo9PloudmFsdWUsImdldCIpLHNldDppKChaLGRlKT0+e1oudmFsdWU9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sbyxsKSxpZCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJsYW5ndWFnZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmxhbmd1YWdlPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LGQsZiksaWQodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImhlaWdodCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmhlaWdodCwiZ2V0Iiksc2V0OmkoKFosZGUpPT57Wi5oZWlnaHQ9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30saCxtKSxpZCh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJ3b3JkV3JhcCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLndvcmRXcmFwLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLndvcmRXcmFwPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LGIsZyksaWQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGluZU51bWJlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InNob3dMaW5lTnVtYmVycyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnNob3dMaW5lTnVtYmVycywiZ2V0Iiksc2V0OmkoKFosZGUpPT57Wi5zaG93TGluZU51bWJlcnM9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sayxNKSxpZCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5pc0xhbmd1YWdlRHJvcGRvd25PcGVuLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sXyxTKSxpZCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvcHlTdWNjZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJjb3B5U3VjY2VzcyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmNvcHlTdWNjZXNzLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmNvcHlTdWNjZXNzPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LEwsRSksaWQodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsaW5lQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImxpbmVDb3VudCJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmxpbmVDb3VudCwiZ2V0Iiksc2V0OmkoKFosZGUpPT57Wi5saW5lQ291bnQ9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sQyx6KSxpZCh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnNvclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJjdXJzb3JQb3NpdGlvbiJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmN1cnNvclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmN1cnNvclBvc2l0aW9uPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LCQsRiksaWQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6R30sbnVsbCxyKSxZPWE9ZS52YWx1ZSxHJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkd9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtaW5wdXQtY29kZQogICAgICBsYWJlbD0iVHlwZVNjcmlwdCBDb2RlIgogICAgICBrZXk9ImNvZGUiCiAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICBoZWlnaHQ9IjMwMHB4IgogICAgICAudmFsdWU9JHtgY29uc3QgZ3JlZXRpbmc6IHN0cmluZyA9ICJIZWxsbyBXb3JsZCI7CmNvbnNvbGUubG9nKGdyZWV0aW5nKTtgfQogICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0IiwiV29ya3NwYWNlIl07I2U9ZW4odGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoRyl7dGhpcy4jZT1HfSN0PShlbih0aGlzLGwpLGVuKHRoaXMsZCwidHlwZXNjcmlwdCIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFuZ3VhZ2UoRyl7dGhpcy4jdD1HfSNyPShlbih0aGlzLGYpLGVuKHRoaXMsaCwiMjAwcHgiKSk7Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLiNyfXNldCBoZWlnaHQoRyl7dGhpcy4jcj1HfSNhPShlbih0aGlzLG0pLGVuKHRoaXMsYiwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNhfXNldCB3b3JkV3JhcChHKXt0aGlzLiNhPUd9I2k9KGVuKHRoaXMsZyksZW4odGhpcyxrLCEwKSk7Z2V0IHNob3dMaW5lTnVtYmVycygpe3JldHVybiB0aGlzLiNpfXNldCBzaG93TGluZU51bWJlcnMoRyl7dGhpcy4jaT1HfSNzPShlbih0aGlzLE0pLGVuKHRoaXMsXywhMSkpO2dldCBpc0xhbmd1YWdlRHJvcGRvd25PcGVuKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4oRyl7dGhpcy4jcz1HfSNuPShlbih0aGlzLFMpLGVuKHRoaXMsTCwhMSkpO2dldCBjb3B5U3VjY2Vzcygpe3JldHVybiB0aGlzLiNufXNldCBjb3B5U3VjY2VzcyhHKXt0aGlzLiNuPUd9I289KGVuKHRoaXMsRSksZW4odGhpcyxDLDApKTtnZXQgbGluZUNvdW50KCl7cmV0dXJuIHRoaXMuI299c2V0IGxpbmVDb3VudChHKXt0aGlzLiNvPUd9I2w9KGVuKHRoaXMseiksZW4odGhpcywkLHtsaW5lOjEsY29sdW1uOjF9KSk7Z2V0IGN1cnNvclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGN1cnNvclBvc2l0aW9uKEcpe3RoaXMuI2w9R31lZGl0b3JFbGVtZW50PShlbih0aGlzLEYpLG51bGwpO3N0YXRpYyBzdHlsZXM9W05lLC4uLkV0LmJhc2VTdHlsZXMseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyLAogICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InRvcCJdKSAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJsZWZ0Il0pIC5pbnB1dC13cmFwcGVyLAogICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InJpZ2h0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLnRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWxlZnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItcmlnaHQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICBjb2xvcjogaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKTsKICAgICAgfQoKICAgICAgLmVkaXRvci13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaW5zZXQ6IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLW1vbmFjbyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAvKiBNYXRjaCBNb25hY28gYmFja2dyb3VuZCB0byB0aWxlICovCiAgICAgIGRlZXMtd29ya3NwYWNlLW1vbmFjbzo6cGFydChjb250YWluZXIpIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICB9CgogICAgICAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICAvKiBGb290ZXIgKi8KICAgICAgLmVkaXRvci1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmZvb3Rlci1sZWZ0LAogICAgICAuZm9vdGVyLXJpZ2h0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuZm9vdGVyLXNlcGFyYXRvciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5jb2RlLWNvbnRhaW5lciB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgRz15OS5maW5kKFo9Ploua2V5PT09dGhpcy5sYW5ndWFnZSl8fHk5WzBdO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuaGVpZ2h0fTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1sZWZ0Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1idXR0b24iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTGFuZ3VhZ2VEcm9wZG93bn0KICAgICAgICAgICAgICAgICAgQGJsdXI9JHt0aGlzLmhhbmRsZUxhbmd1YWdlQmx1cn0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHtHLmxhYmVsfQogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpDaGV2cm9uRG93biJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICR7dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAke3k5Lm1hcChaPT53YAogICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2Utb3B0aW9uICR7Wi5rZXk9PT10aGlzLmxhbmd1YWdlPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7ZGU9PnRoaXMuc2VsZWN0TGFuZ3VhZ2UoZGUsWi5rZXkpfQogICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAke1oubGFiZWx9CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1yaWdodCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy53b3JkV3JhcD09PSJvbiI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IldvcmQgV3JhcCIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlV29yZFdyYXB9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6V3JhcFRleHQifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiAke3RoaXMuc2hvd0xpbmVOdW1iZXJzPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgIHRpdGxlPSJMaW5lIE51bWJlcnMiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxpbmVOdW1iZXJzfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOkhhc2gifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5jb3B5U3VjY2Vzcz8ic3VjY2VzcyI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IkNvcHkgQ29kZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuY29weUNvZGV9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuY29weVN1Y2Nlc3M/Imx1Y2lkZTpDaGVjayI6Imx1Y2lkZTpDb3B5In0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICB0aXRsZT0iRXhwYW5kIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5vcGVuRnVsbHNjcmVlbn0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpNYXhpbWl6ZTIifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgICAgLmNvbnRlbnQ9JHt0aGlzLnZhbHVlfQogICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMubGFuZ3VhZ2V9CiAgICAgICAgICAgICAgLndvcmRXcmFwPSR7dGhpcy53b3JkV3JhcH0KICAgICAgICAgICAgICBAY29udGVudC1jaGFuZ2U9JHt0aGlzLmhhbmRsZUNvbnRlbnRDaGFuZ2V9CiAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJlZGl0b3ItZm9vdGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWxlZnQiPgogICAgICAgICAgICAgIDxzcGFuPkxuICR7dGhpcy5jdXJzb3JQb3NpdGlvbi5saW5lfSwgQ29sICR7dGhpcy5jdXJzb3JQb3NpdGlvbi5jb2x1bW59PC9zcGFuPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zZXBhcmF0b3IiPjwvZGl2PgogICAgICAgICAgICAgIDxzcGFuPiR7dGhpcy5saW5lQ291bnR9IGxpbmUke3RoaXMubGluZUNvdW50IT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXJpZ2h0Ij4KICAgICAgICAgICAgICA8c3Bhbj4keyh5OS5maW5kKFo9Ploua2V5PT09dGhpcy5sYW5ndWFnZSl8fHk5WzBdKS5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZih0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSx0aGlzLmVkaXRvckVsZW1lbnQpe3RoaXMuZWRpdG9yRWxlbWVudC5jb250ZW50U3ViamVjdC5zdWJzY3JpYmUoUT0+e3RoaXMudmFsdWUhPT1RJiYodGhpcy52YWx1ZT1RLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX0pO2xldCBHPWF3YWl0IHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlLFo9Ry5nZXRNb2RlbCgpO1omJih0aGlzLmxpbmVDb3VudD1aLmdldExpbmVDb3VudCgpLFoub25EaWRDaGFuZ2VDb250ZW50KCgpPT57dGhpcy5saW5lQ291bnQ9Wi5nZXRMaW5lQ291bnQoKX0pKSxHLm9uRGlkQ2hhbmdlQ3Vyc29yUG9zaXRpb24oUT0+e3RoaXMuY3Vyc29yUG9zaXRpb249e2xpbmU6US5wb3NpdGlvbi5saW5lTnVtYmVyLGNvbHVtbjpRLnBvc2l0aW9uLmNvbHVtbn19KTtsZXQgZGU9YXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmRvbXRvb2xzUHJvbWlzZSxEPWkoUT0+e2xldCBmZT1RPyIjZmZmZmZmIjoiIzBhMGEwYSI7Ry51cGRhdGVPcHRpb25zKHt9KSx3aW5kb3cubW9uYWNvPy5lZGl0b3I/LmRlZmluZVRoZW1lPy4oImRlZXMtbGlnaHQiLHtiYXNlOiJ2cyIsaW5oZXJpdDohMCxydWxlczpbXSxjb2xvcnM6eyJlZGl0b3IuYmFja2dyb3VuZCI6ZmV9fSksd2luZG93Lm1vbmFjbz8uZWRpdG9yPy5kZWZpbmVUaGVtZT8uKCJkZWVzLWRhcmsiLHtiYXNlOiJ2cy1kYXJrIixpbmhlcml0OiEwLHJ1bGVzOltdLGNvbG9yczp7ImVkaXRvci5iYWNrZ3JvdW5kIjpmZX19KSxHLnVwZGF0ZU9wdGlvbnMoe3RoZW1lOlE/ImRlZXMtbGlnaHQiOiJkZWVzLWRhcmsifSl9LCJ1cGRhdGVFZGl0b3JCZyIpO0QoZGUudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbiksZGUudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoUT0+e0QoUSl9KX19dG9nZ2xlTGFuZ3VhZ2VEcm9wZG93bigpe3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj0hdGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVufWhhbmRsZUxhbmd1YWdlQmx1cigpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49ITF9LDE1MCl9YXN5bmMgc2VsZWN0TGFuZ3VhZ2UoRyxaKXtpZihHLnByZXZlbnREZWZhdWx0KCksdGhpcy5sYW5ndWFnZT1aLHRoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj0hMSx0aGlzLmVkaXRvckVsZW1lbnQpe3RoaXMuZWRpdG9yRWxlbWVudC5sYW5ndWFnZT1aO2xldCBEPShhd2FpdCB0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTtEJiZ3aW5kb3cubW9uYWNvLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKEQsWil9fXRvZ2dsZVdvcmRXcmFwKCl7dGhpcy53b3JkV3JhcD10aGlzLndvcmRXcmFwPT09Im9uIj8ib2ZmIjoib24iLHRoaXMudXBkYXRlRWRpdG9yT3B0aW9uKCJ3b3JkV3JhcCIsdGhpcy53b3JkV3JhcCl9dG9nZ2xlTGluZU51bWJlcnMoKXt0aGlzLnNob3dMaW5lTnVtYmVycz0hdGhpcy5zaG93TGluZU51bWJlcnMsdGhpcy51cGRhdGVFZGl0b3JPcHRpb24oImxpbmVOdW1iZXJzIix0aGlzLnNob3dMaW5lTnVtYmVycz8ib24iOiJvZmYiKX1hc3luYyB1cGRhdGVFZGl0b3JPcHRpb24oRyxaKXt0aGlzLmVkaXRvckVsZW1lbnQmJihhd2FpdCB0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkudXBkYXRlT3B0aW9ucyh7W0ddOlp9KX1hc3luYyBjb3B5Q29kZSgpe3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLnZhbHVlKSx0aGlzLmNvcHlTdWNjZXNzPSEwLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvcHlTdWNjZXNzPSExfSwyZTMpfWNhdGNoKEcpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjb3B5IGNvZGU6IixHKX19aGFuZGxlQ29udGVudENoYW5nZShHKXtsZXQgWj1HLmRldGFpbDt0aGlzLnZhbHVlIT09WiYmKHRoaXMudmFsdWU9Wix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9YXN5bmMgb3BlbkZ1bGxzY3JlZW4oKXtsZXQgRz10aGlzLnZhbHVlLFo9bnVsbCxkZT10aGlzLmxhbmd1YWdlLEQ9dGhpcy53b3JkV3JhcCxRPXRoaXMuc2hvd0xpbmVOdW1iZXJzLGZlPSExLFQ9ITEsVz1pKCgpPT57bGV0IFg9eTkuZmluZChKPT5KLmtleT09PWRlKTtyZXR1cm4gWD9YLmxhYmVsOiJUeXBlU2NyaXB0In0sImdldExhbmd1YWdlTGFiZWwiKSxwZT1pKFg9PntsZXQgSj1YLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoIUopcmV0dXJuO2xldCB4ZT1KLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24gc3BhbiIpO3hlJiYoeGUudGV4dENvbnRlbnQ9VygpKTtsZXQgSz1KLnF1ZXJ5U2VsZWN0b3IoIi53cmFwLWJ0biIpO0smJksuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixEPT09Im9uIik7bGV0IFY9Si5xdWVyeVNlbGVjdG9yKCIubGluZXMtYnRuIik7ViYmVi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLFEpO2xldCBsZT1KLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LWJ0biIpLG5lPWxlPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKTtsZSYmbmUmJihsZS5jbGFzc0xpc3QudG9nZ2xlKCJzdWNjZXNzIixUKSxuZS5pY29uPVQ/Imx1Y2lkZTpDaGVjayI6Imx1Y2lkZTpDb3B5Iik7bGV0IGVlPUoucXVlcnlTZWxlY3RvcigiLmxhbmd1YWdlLWRyb3Bkb3duIik7ZWUmJihlZS5zdHlsZS5kaXNwbGF5PWZlPyJibG9jayI6Im5vbmUiKX0sInVwZGF0ZVRvb2xiYXJVSSIpLG1lPWkoWD0+e2xldCBKPVguc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm1vZGFsLWZvb3RlciIpO2lmKCFKKXJldHVybjtsZXQgeGU9Si5xdWVyeVNlbGVjdG9yKCIuZm9vdGVyLWN1cnNvciIpLEs9Si5xdWVyeVNlbGVjdG9yKCIuZm9vdGVyLWxpbmVzIiksVj1KLnF1ZXJ5U2VsZWN0b3IoIi5mb290ZXItbGFuZyIpO3hlJiYoeGUudGV4dENvbnRlbnQ9YExuICR7cX0sIENvbCAke0h9YCksSyYmKEsudGV4dENvbnRlbnQ9YCR7VX0gbGluZSR7VSE9PTE/InMiOiIifWApLFYmJihWLnRleHRDb250ZW50PVcoKSl9LCJ1cGRhdGVGb290ZXJVSSIpLHE9MSxIPTEsVT1HLnNwbGl0KGAKYCkubGVuZ3RoLGo9YXdhaXQgZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzp0aGlzLmxhYmVsfHwiQ29kZSBFZGl0b3IiLHdpZHRoOiJmdWxsc2NyZWVuIixjb250ZW50UGFkZGluZzowLGNvbnRlbnQ6d2AKICAgICAgICA8c3R5bGU+CiAgICAgICAgICAubW9kYWwtdG9vbGJhciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItbGVmdCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItcmlnaHQgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1zZWxlY3RvciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1idXR0b24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1idXR0b246aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2UtZHJvcGRvd24gewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMTAwJTsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgICAgICBtYXgtaGVpZ2h0OiAyNTBweDsKICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgICAgbWluLXdpZHRoOiAxNDBweDsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb24gewogICAgICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb246aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2Utb3B0aW9uLnNlbGVjdGVkIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24uc3VjY2VzcyB7CiAgICAgICAgICAgIGNvbG9yOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItZGl2aWRlciB7CiAgICAgICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLWVkaXRvci13cmFwcGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLWZvb3RlciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NSUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZm9vdGVyIC5mb290ZXItbGVmdCwKICAgICAgICAgIC5tb2RhbC1mb290ZXIgLmZvb3Rlci1yaWdodCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC1mb290ZXIgLmZvb3Rlci1zZXBhcmF0b3IgewogICAgICAgICAgICB3aWR0aDogMXB4OwogICAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLXRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1sZWZ0Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiI+CiAgICAgICAgICAgICAgICA8c3Bhbj4ke1coKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpDaGV2cm9uRG93biJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZHJvcGRvd24iPgogICAgICAgICAgICAgICAgJHt5OS5tYXAoWD0+d2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1vcHRpb24gJHtYLmtleT09PWRlPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIGRhdGEtbGFuZz0iJHtYLmtleX0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAke1gubGFiZWx9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXJpZ2h0Ij4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24gd3JhcC1idG4gJHtEPT09Im9uIj8iYWN0aXZlIjoiIn0iIHRpdGxlPSJXb3JkIFdyYXAiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOldyYXBUZXh0In0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIGxpbmVzLWJ0biAke1E/ImFjdGl2ZSI6IiJ9IiB0aXRsZT0iTGluZSBOdW1iZXJzIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpIYXNoIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIGNvcHktYnRuIiB0aXRsZT0iQ29weSBDb2RlIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpDb3B5In0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1lZGl0b3Itd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgIC5jb250ZW50PSR7R30KICAgICAgICAgICAgLmxhbmd1YWdlPSR7ZGV9CiAgICAgICAgICAgIC53b3JkV3JhcD0ke0R9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1sZWZ0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1jdXJzb3IiPkxuICR7cX0sIENvbCAke0h9PC9zcGFuPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItc2VwYXJhdG9yIj48L2Rpdj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci1saW5lcyI+JHtVfSBsaW5lJHtVIT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItcmlnaHQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLWxhbmciPiR7VygpfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBYPT57YXdhaXQgWC5kZXN0cm95KCl9LCJhY3Rpb24iKX0se25hbWU6IlNhdmUgJiBDbG9zZSIsYWN0aW9uOmkoYXN5bmMgWD0+e2lmKFo9WC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSxaKXtsZXQgeGU9KGF3YWl0IFouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0VmFsdWUoKTt0aGlzLnNldFZhbHVlKHhlKX1hd2FpdCBYLmRlc3Ryb3koKX0sImFjdGlvbiIpfV19KTtpZihhd2FpdCBuZXcgUHJvbWlzZShYPT5zZXRUaW1lb3V0KFgsMTAwKSksWj1qLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLFope2xldCBYPWF3YWl0IFouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSxKPWF3YWl0IFouZG9tdG9vbHNQcm9taXNlLHhlPWkoVj0+e2xldCBsZT1WPyIjZmZmZmZmIjoiIzBhMGEwYSI7d2luZG93Lm1vbmFjbz8uZWRpdG9yPy5kZWZpbmVUaGVtZT8uKCJkZWVzLWxpZ2h0Iix7YmFzZToidnMiLGluaGVyaXQ6ITAscnVsZXM6W10sY29sb3JzOnsiZWRpdG9yLmJhY2tncm91bmQiOmxlfX0pLHdpbmRvdy5tb25hY28/LmVkaXRvcj8uZGVmaW5lVGhlbWU/LigiZGVlcy1kYXJrIix7YmFzZToidnMtZGFyayIsaW5oZXJpdDohMCxydWxlczpbXSxjb2xvcnM6eyJlZGl0b3IuYmFja2dyb3VuZCI6bGV9fSksWC51cGRhdGVPcHRpb25zKHt0aGVtZTpWPyJkZWVzLWxpZ2h0IjoiZGVlcy1kYXJrIn0pfSwiYXBwbHlNb2RhbFRoZW1lIik7eGUoSi50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuKSxKLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKFY9Pnt4ZShWKX0pLFgub25EaWRDaGFuZ2VDdXJzb3JQb3NpdGlvbihWPT57cT1WLnBvc2l0aW9uLmxpbmVOdW1iZXIsSD1WLnBvc2l0aW9uLmNvbHVtbixtZShqKX0pO2xldCBLPVguZ2V0TW9kZWwoKTtLJiYoVT1LLmdldExpbmVDb3VudCgpLG1lKGopLEsub25EaWRDaGFuZ2VDb250ZW50KCgpPT57VT1LLmdldExpbmVDb3VudCgpLG1lKGopfSkpfWxldCBhZT1qLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoYWUpe2xldCBYPWFlLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24iKTtYPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntmZT0hZmUscGUoail9KTtsZXQgSj1hZS5xdWVyeVNlbGVjdG9yQWxsKCIubGFuZ3VhZ2Utb3B0aW9uIik7Si5mb3JFYWNoKGxlPT57bGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntsZXQgbmU9bGUuZGF0YXNldC5sYW5nO2lmKG5lJiZaKXtkZT1uZSxmZT0hMTtsZXQgemU9KGF3YWl0IFouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTt6ZSYmd2luZG93Lm1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZSh6ZSxuZSksSi5mb3JFYWNoKEhlPT5IZS5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpKSxsZS5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpLHBlKGopLG1lKGopfX0pfSksYWUucXVlcnlTZWxlY3RvcigiLndyYXAtYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57RD1EPT09Im9uIj8ib2ZmIjoib24iLFomJihhd2FpdCBaLmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe3dvcmRXcmFwOkR9KSxwZShqKX0pLGFlLnF1ZXJ5U2VsZWN0b3IoIi5saW5lcy1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntRPSFRLFomJihhd2FpdCBaLmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe2xpbmVOdW1iZXJzOlE/Im9uIjoib2ZmIn0pLHBlKGopfSksYWUucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57aWYoWil7bGV0IG5lPShhd2FpdCBaLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KG5lKSxUPSEwLHBlKGopLHNldFRpbWVvdXQoKCk9PntUPSExLHBlKGopfSwyZTMpfWNhdGNoKGVlKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weSBjb2RlOiIsZWUpfX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbGU9PntmZSYmIVg/LmNvbnRhaW5zKGxlLnRhcmdldCkmJihmZT0hMSxwZShqKSl9LHtvbmNlOiEwfSl9fWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoRyl7dGhpcy52YWx1ZT1HLHRoaXMuZWRpdG9yRWxlbWVudCYmKHRoaXMuZWRpdG9yRWxlbWVudC5jb250ZW50PUcsdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UudGhlbihaPT57Wi5nZXRWYWx1ZSgpIT09RyYmWi5zZXRWYWx1ZShHKX0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1zdGF0aWN7ZW4oYSxyKX19O3JldHVybiBZPWF9KSgpfSk7dmFyIElqcixQanI9dSgoKT0+e3ZlKCk7d2EoKTt3bigpO0k2dCgpO0lqcj1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7cmVgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CiAgICAgIAogICAgICAuZGF0ZS1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChyPT57Y29uc29sZS5sb2coIkJhc2ljIGRhdGUgc2VsZWN0ZWQ6IixyLnRhcmdldC52YWx1ZSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIERhdGUgUGlja2VyIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBkYXRlIHNlbGVjdGlvbiB3aXRob3V0IHRpbWUifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iU2VsZWN0IERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2hvb3NlIGEgZGF0ZSBmcm9tIHRoZSBjYWxlbmRhciIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IkV2ZW50IERhdGUgJiBUaW1lIl0nKSxyPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJBcHBvaW50bWVudCJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHM9YS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjI0aCBmb3JtYXQgZGF0ZXRpbWU6IixzKX0pKSxyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PntsZXQgcz1hLnRhcmdldC52YWx1ZTtjb25zb2xlLmxvZygiMTJoIGZvcm1hdCBkYXRldGltZToiLHMpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIGFuZCBUaW1lIFNlbGVjdGlvbiJ9IC5zdWJ0aXRsZT0keyJEYXRlIHBpY2tlcnMgd2l0aCB0aW1lIHNlbGVjdGlvbiBpbiBkaWZmZXJlbnQgZm9ybWF0cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBEYXRlICYgVGltZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYm90aCBkYXRlIGFuZCB0aW1lICgyNC1ob3VyIGZvcm1hdCkiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMjRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQXBwb2ludG1lbnQiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF0ZSBhbmQgdGltZSB3aXRoIEFNL1BNIHNlbGVjdG9yICgxNS1taW51dGUgaW5jcmVtZW50cykiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMTJoIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezE1fQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCBzPWEudGFyZ2V0O2NvbnNvbGUubG9nKGAke3MubGFiZWx9IHZhbHVlOmAscy52YWx1ZSk7bGV0IG49cy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZGF0ZS1pbnB1dCIpO24mJmNvbnNvbGUubG9nKGAke3MubGFiZWx9IGZvcm1hdHRlZDpgLG4udmFsdWUpfSkpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlRpbWV6b25lIFN1cHBvcnQifSAuc3VidGl0bGU9JHsiRGF0ZSBhbmQgdGltZSBzZWxlY3Rpb24gd2l0aCB0aW1lem9uZSBhd2FyZW5lc3MifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iTWVldGluZyBUaW1lICh3aXRoIFRpbWV6b25lKSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYSBkYXRlL3RpbWUgYW5kIHRpbWV6b25lIGZvciB0aGUgbWVldGluZyIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICAuZW5hYmxlVGltZXpvbmU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjI0aCIKICAgICAgICAgIHRpbWV6b25lPSJBbWVyaWNhL05ld19Zb3JrIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iR2xvYmFsIEV2ZW50IFNjaGVkdWxlIgogICAgICAgICAgZGVzY3JpcHRpb249IlNjaGVkdWxlIGFuIGV2ZW50IGFjcm9zcyBkaWZmZXJlbnQgdGltZXpvbmVzIgogICAgICAgICAgLmVuYWJsZVRpbWU9JHshMH0KICAgICAgICAgIC5lbmFibGVUaW1lem9uZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMTJoIgogICAgICAgICAgdGltZXpvbmU9IkV1cm9wZS9Mb25kb24iCiAgICAgICAgICAubWludXRlSW5jcmVtZW50PSR7MzB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChyPT57bGV0IGE9ci50YXJnZXQudmFsdWU7aWYoYSl7bGV0IHM9bmV3IERhdGUoYSksbj1uZXcgRGF0ZSxvPU1hdGguZmxvb3IoKHMuZ2V0VGltZSgpLW4uZ2V0VGltZSgpKS8oMWUzKjYwKjYwKjI0KSk7Y29uc29sZS5sb2coYFNlbGVjdGVkIGRhdGUgaXMgJHtvfSBkYXlzIGZyb20gdG9kYXlgKX19KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRhdGUgUmFuZ2UgQ29uc3RyYWludHMifSAuc3VidGl0bGU9JHsiTGltaXQgc2VsZWN0YWJsZSBkYXRlcyB3aXRoIG1pbiBhbmQgbWF4IHZhbHVlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJGdXR1cmUgRGF0ZSBPbmx5IgogICAgICAgICAgZGVzY3JpcHRpb249IkNhbiBvbmx5IHNlbGVjdCBkYXRlcyBmcm9tIHRvZGF5IHRvIDkwIGRheXMgaW4gdGhlIGZ1dHVyZSIKICAgICAgICAgIC5taW5EYXRlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgLm1heERhdGU9JHtuZXcgRGF0ZShEYXRlLm5vdygpKzIxNjAqNjAqNjAqMWUzKS50b0lTT1N0cmluZygpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT17IkREL01NL1lZWVkiOiJFdXJvcGVhbiIsIk1NL0REL1lZWVkiOiJVUyIsIllZWVktTU0tREQiOiJJU08ifTt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwocz0+e2xldCBuPXMudGFyZ2V0LG89bi5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZGF0ZS1pbnB1dCIpO28mJmNvbnNvbGUubG9nKGAke24ubGFiZWx9IGZvcm1hdDpgLG8udmFsdWUpfSkpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRhdGUgRm9ybWF0cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgZGF0ZSBkaXNwbGF5IGZvcm1hdHMgZm9yIHZhcmlvdXMgcmVnaW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRXVyb3BlYW4gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJERC9NTS9ZWVlZIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iTU0vREQvWVlZWSIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJJU08gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJZWVlZLU1NLUREIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXJbcmVxdWlyZWRdIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2UuZ2V0VmFsdWUoKXx8Y29uc29sZS5sb2coIlJlcXVpcmVkIGRhdGUgZmllbGQgaXMgZW1wdHkiKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJSZXF1aXJlZCBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkJpcnRoIERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBmaWVsZCBpcyByZXF1aXJlZCIKICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgcGxhY2Vob2xkZXI9IlNlbGVjdCB5b3VyIGJpcnRoIGRhdGUiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgY2Fubm90IGJlIGVkaXRlZCIKICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iVVMgQ2FsZW5kYXIiXScpLHI9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IkVVIENhbGVuZGFyIl0nKTtlJiZjb25zb2xlLmxvZygiVVMgQ2FsZW5kYXIgc3RhcnRzIG9uIFN1bmRheSAoMCkiKSxyJiZjb25zb2xlLmxvZygiRVUgQ2FsZW5kYXIgc3RhcnRzIG9uIE1vbmRheSAoMSkiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2FsZW5kYXIgQ3VzdG9taXphdGlvbiJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgd2VlayBzdGFydCBkYXlzIGZvciB2YXJpb3VzIHJlZ2lvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIENhbGVuZGFyIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV2VlayBzdGFydHMgb24gU3VuZGF5IgogICAgICAgICAgICAud2Vla1N0YXJ0c09uPSR7MH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRVUgQ2FsZW5kYXIiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrIHN0YXJ0cyBvbiBNb25kYXkiCiAgICAgICAgICAgIC53ZWVrU3RhcnRzT249JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPWkoKCk9PntsZXQgYT1bXSxzPW5ldyBEYXRlLG49cy5nZXRGdWxsWWVhcigpLG89cy5nZXRNb250aCgpLGw9bmV3IERhdGUobixvLDEpO2Zvcig7bC5nZXRNb250aCgpPT09bzspKGwuZ2V0RGF5KCk9PT0wfHxsLmdldERheSgpPT09NikmJmEucHVzaChuZXcgRGF0ZShsKS50b0lTT1N0cmluZygpKSxsLnNldERhdGUobC5nZXREYXRlKCkrMSk7cmV0dXJuIGF9LCJnZW5lcmF0ZVdlZWtlbmRzIikscj10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO3ImJihyLmRpc2FibGVkRGF0ZXM9ZSgpLGNvbnNvbGUubG9nKCJEaXNhYmxlZCB3ZWVrZW5kIGRhdGVzIGZvciBjdXJyZW50IG1vbnRoIikpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEaXNhYmxlZCBEYXRlcyJ9IC5zdWJ0aXRsZT0keyJDYWxlbmRhciB3aXRoIHNwZWNpZmljIGRhdGVzIGRpc2FibGVkICh3ZWVrZW5kcyBpbiBjdXJyZW50IG1vbnRoKSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJBdmFpbGFiaWxpdHkgQ2FsZW5kYXIiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iV2Vla2VuZHMgYXJlIGRpc2FibGVkIGZvciB0aGUgY3VycmVudCBtb250aCIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9bmV3IERhdGUscj1lLmdldE1vbnRoKCksYT1lLmdldEZ1bGxZZWFyKCkscz1be2RhdGU6YCR7YX0tJHsocisxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHtlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJUZWFtIE1lZXRpbmciLHR5cGU6ImluZm8iLGNvdW50OjJ9LHtkYXRlOmAke2F9LSR7KHIrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlByb2plY3QgRGVhZGxpbmUiLHR5cGU6Indhcm5pbmcifSx7ZGF0ZTpgJHthfS0keyhyKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSsyKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJSZWxlYXNlIERheSIsdHlwZToic3VjY2VzcyJ9LHtkYXRlOmAke2F9LSR7KHIrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzUpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlVyZ2VudCBGaXggUmVxdWlyZWQiLHR5cGU6ImVycm9yIn0se2RhdGU6YCR7YX0tJHsocisxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrNykudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiTXVsdGlwbGUgRXZlbnRzIFRvZGF5Iix0eXBlOiJpbmZvIixjb3VudDo1fSx7ZGF0ZTpgJHthfS0keyhyKzIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0xNWAsdGl0bGU6IkZ1dHVyZSBQbGFubmluZyBTZXNzaW9uIix0eXBlOiJpbmZvIn1dLG49dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKTtuJiYobi5ldmVudHM9cyxjb25zb2xlLmxvZygiQ2FsZW5kYXIgZXZlbnRzIGxvYWRlZDoiLHMpKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2FsZW5kYXIgd2l0aCBFdmVudHMifSAuc3VidGl0bGU9JHsiVmlzdWFsIGZlZWRiYWNrIGZvciBzY2hlZHVsZWQgZXZlbnRzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkV2ZW50IENhbGVuZGFyIgogICAgICAgICAgZGVzY3JpcHRpb249IkRheXMgd2l0aCBjb2xvcmVkIGRvdHMgaGF2ZSBldmVudHMuIEhvdmVyIHRvIHNlZSBkZXRhaWxzLiIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8c3Ryb25nPkV2ZW50IExlZ2VuZDo8L3N0cm9uZz48YnI+CiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICMwOTY5ZGE7Ij7il48gSW5mbzwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogI2QyOTkyMjsiPuKXjyBXYXJuaW5nPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjMmVhMDQzOyI+4pePIFN1Y2Nlc3M8L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICNjZjIyMmU7Ij7il48gRXJyb3I8L3NwYW4+PGJyPgogICAgICAgICAgPGVtPkRheXMgd2l0aCBtb3JlIHRoYW4gMyBldmVudHMgc2hvdyBhIGNvdW50IGJhZGdlPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjZXZlbnQtb3V0cHV0Iik7ZSYmciYmKGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCBzPWEudGFyZ2V0LG49cy52YWx1ZTtpZihuKXtsZXQgbz1uZXcgRGF0ZShuKSxjPXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKT8udmFsdWV8fCJOL0EiO3IuaW5uZXJIVE1MPWAKICAgICAgICAgICAgICA8c3Ryb25nPkV2ZW50IHRyaWdnZXJlZCE8L3N0cm9uZz48YnI+CiAgICAgICAgICAgICAgSVNPIFZhbHVlOiAke259PGJyPgogICAgICAgICAgICAgIEZvcm1hdHRlZDogJHtjfTxicj4KICAgICAgICAgICAgICBEYXRlIG9iamVjdDogJHtvLnRvTG9jYWxlU3RyaW5nKCl9CiAgICAgICAgICAgIGB9ZWxzZSByLmlubmVySFRNTD0iPGVtPkRhdGUgY2xlYXJlZDwvZW0+In0pKSxlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coIkRhdGVwaWNrZXIgbG9zdCBmb2N1cyIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBkZW1vbnN0cmF0aW9uIG9mIGNoYW5nZSBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgRGVtbyIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYSBkYXRlIHRvIHNlZSB0aGUgZXZlbnQgZGV0YWlscyIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iZXZlbnQtb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPlNlbGVjdCBhIGRhdGUgdG8gc2VlIGV2ZW50IGRldGFpbHMuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgTmpyLE9qcj11KCgpPT57dmUoKTtDaSgpO05qcj1bLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmZvY3VzLAogICAgICAuZGF0ZS1pbnB1dC5vcGVuIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSkiLCJoc2woMjEwIDIwJSA5OCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmljb24tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuaWNvbi1jb250YWluZXIgPiAqIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLWljb24gewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CiAgICBgXX0pO3ZhciBSanIsRmpyPXUoKCk9Pnt2ZSgpO1Jqcj1pKHQ9PndgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0LmxhYmVsfSAuaW5mb1RleHQ9JHt0LmluZm9UZXh0fSAucmVxdWlyZWQ9JHt0LnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1jb250YWluZXIiPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIGNsYXNzPSJkYXRlLWlucHV0ICR7dC5pc09wZW5lZD8ib3BlbiI6IiJ9IgogICAgICAgICAgICAgIC52YWx1ZT0ke3QuZm9ybWF0RGF0ZSh0LnZhbHVlKX0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0LnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgID9kaXNhYmxlZD0ke3QuZGlzYWJsZWR9CiAgICAgICAgICAgICAgQGNsaWNrPSR7dC50b2dnbGVDYWxlbmRhcn0KICAgICAgICAgICAgICBAa2V5ZG93bj0ke3QuaGFuZGxlS2V5ZG93bn0KICAgICAgICAgICAgICBAaW5wdXQ9JHt0LmhhbmRsZU1hbnVhbElucHV0fQogICAgICAgICAgICAgIEBibHVyPSR7dC5oYW5kbGVJbnB1dEJsdXJ9CiAgICAgICAgICAgICAgc3R5bGU9InBhZGRpbmctcmlnaHQ6ICR7dC52YWx1ZT8iNjRweCI6IjQwcHgifSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1jb250YWluZXIiPgogICAgICAgICAgICAgICR7dC52YWx1ZSYmIXQuZGlzYWJsZWQ/d2AKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsZWFyLWJ1dHRvbiIgQGNsaWNrPSR7dC5jbGVhclZhbHVlfSB0aXRsZT0iQ2xlYXIiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYWxlbmRhci1pY29uIiBpY29uPSJsdWNpZGU6Y2FsZW5kYXIiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3QucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgYCwicmVuZGVyRGF0ZXBpY2tlciIpfSk7dmFyIFRzLExyLEJwZSxQNnQ9dSgoKT0+e3ZlKCk7TXIoKTtPbygpO2x0KCk7bmMoKTtLcigpO1RzPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxMcj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sQnBlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC1kYXRlcGlja2VyLXBvcHVwIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdLGZlLFQ9W10sVz1bXSxwZSxtZT1bXSxxPVtdLEgsVT1bXSxqPVtdLGFlLFg9W10sSj1bXSx4ZSxLPVtdLFY9W10sbGUsbmU9W10sZWU9W10semUsSGU9W10sR2U9W10sb3QsRGU9W10sX2U9W107dmFyIG9lPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREYXRlcGlja2VyUG9wdXAiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgc2U9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7YXR0cmlidXRlOiExfSldLGM9W1Aoe2F0dHJpYnV0ZTohMX0pXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpOdW1iZXJ9KV0sTj1bUCh7dHlwZTpOdW1iZXJ9KV0sTz1bUCh7dHlwZTpTdHJpbmd9KV0sQj1bUCh7dHlwZTpTdHJpbmd9KV0sQT1bUCh7dHlwZTpBcnJheX0pXSxZPVtQKHt0eXBlOkJvb2xlYW59KV0sZGU9W1Aoe3R5cGU6U3RyaW5nfSldLGZlPVtQKHt0eXBlOkFycmF5fSldLHBlPVtQKHt0eXBlOkJvb2xlYW59KV0sSD1baWUoKV0sYWU9W2llKCldLHhlPVtpZSgpXSxsZT1baWUoKV0semU9W2llKCldLG90PVtpZSgpXSxUcyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRyaWdnZXJSZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4idHJpZ2dlclJlY3QiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS50cmlnZ2VyUmVjdCwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLnRyaWdnZXJSZWN0PVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxvLGwpLFRzKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3duZXJDb21wb25lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoY2U9PiJvd25lckNvbXBvbmVudCJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLm93bmVyQ29tcG9uZW50LCJnZXQiKSxzZXQ6aSgoY2UsVGUpPT57Y2Uub3duZXJDb21wb25lbnQ9VGV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LGQsZiksVHModGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4iZW5hYmxlVGltZSJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLmVuYWJsZVRpbWUsImdldCIpLHNldDppKChjZSxUZSk9PntjZS5lbmFibGVUaW1lPVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxoLG0pLFRzKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZUZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+InRpbWVGb3JtYXQiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS50aW1lRm9ybWF0LCJnZXQiKSxzZXQ6aSgoY2UsVGUpPT57Y2UudGltZUZvcm1hdD1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sYixnKSxUcyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbnV0ZUluY3JlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+Im1pbnV0ZUluY3JlbWVudCJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLm1pbnV0ZUluY3JlbWVudCwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLm1pbnV0ZUluY3JlbWVudD1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sayxNKSxUcyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndlZWtTdGFydHNPbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+IndlZWtTdGFydHNPbiJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLndlZWtTdGFydHNPbiwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLndlZWtTdGFydHNPbj1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sXyxTKSxUcyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkRhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoY2U9PiJtaW5EYXRlImluIGNlLCJoYXMiKSxnZXQ6aShjZT0+Y2UubWluRGF0ZSwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLm1pbkRhdGU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LEwsRSksVHModGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhEYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4ibWF4RGF0ZSJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLm1heERhdGUsImdldCIpLHNldDppKChjZSxUZSk9PntjZS5tYXhEYXRlPVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxDLHopLFRzKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWREYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+ImRpc2FibGVkRGF0ZXMiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS5kaXNhYmxlZERhdGVzLCJnZXQiKSxzZXQ6aSgoY2UsVGUpPT57Y2UuZGlzYWJsZWREYXRlcz1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sJCxGKSxUcyh0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVRpbWV6b25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4iZW5hYmxlVGltZXpvbmUiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS5lbmFibGVUaW1lem9uZSwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLmVuYWJsZVRpbWV6b25lPVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxHLFopLFRzKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWV6b25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4idGltZXpvbmUiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS50aW1lem9uZSwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLnRpbWV6b25lPVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxELFEpLFRzKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+ImV2ZW50cyJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLmV2ZW50cywiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLmV2ZW50cz1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sVCxXKSxUcyh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuc1RvVG9wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4ib3BlbnNUb1RvcCJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLm9wZW5zVG9Ub3AsImdldCIpLHNldDppKChjZSxUZSk9PntjZS5vcGVuc1RvVG9wPVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxtZSxxKSxUcyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+InNlbGVjdGVkRGF0ZSJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLnNlbGVjdGVkRGF0ZSwiZ2V0Iiksc2V0OmkoKGNlLFRlKT0+e2NlLnNlbGVjdGVkRGF0ZT1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sVSxqKSxUcyh0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3RGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+InZpZXdEYXRlImluIGNlLCJoYXMiKSxnZXQ6aShjZT0+Y2Uudmlld0RhdGUsImdldCIpLHNldDppKChjZSxUZSk9PntjZS52aWV3RGF0ZT1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sWCxKKSxUcyh0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEhvdXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoY2U9PiJzZWxlY3RlZEhvdXIiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS5zZWxlY3RlZEhvdXIsImdldCIpLHNldDppKChjZSxUZSk9PntjZS5zZWxlY3RlZEhvdXI9VGV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LEssViksVHModGhpcyxudWxsLGxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRNaW51dGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoY2U9PiJzZWxlY3RlZE1pbnV0ZSJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLnNlbGVjdGVkTWludXRlLCJnZXQiKSxzZXQ6aSgoY2UsVGUpPT57Y2Uuc2VsZWN0ZWRNaW51dGU9VGV9LCJzZXQiKX0sbWV0YWRhdGE6c2V9LG5lLGVlKSxUcyh0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51WkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGNlPT4ibWVudVpJbmRleCJpbiBjZSwiaGFzIiksZ2V0OmkoY2U9PmNlLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChjZSxUZSk9PntjZS5tZW51WkluZGV4PVRlfSwic2V0Iil9LG1ldGFkYXRhOnNlfSxIZSxHZSksVHModGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShjZT0+InZpc2libGUiaW4gY2UsImhhcyIpLGdldDppKGNlPT5jZS52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoY2UsVGUpPT57Y2UudmlzaWJsZT1UZX0sInNldCIpfSxtZXRhZGF0YTpzZX0sRGUsX2UpLFRzKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOnNlfSxudWxsLHIpLG9lPWE9ZS52YWx1ZSxzZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpzZX0pfSNlPUxyKHRoaXMsbyxudWxsKTtnZXQgdHJpZ2dlclJlY3QoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHJpZ2dlclJlY3Qoc2Upe3RoaXMuI2U9c2V9I3Q9KExyKHRoaXMsbCksTHIodGhpcyxkLG51bGwpKTtnZXQgb3duZXJDb21wb25lbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgb3duZXJDb21wb25lbnQoc2Upe3RoaXMuI3Q9c2V9I3I9KExyKHRoaXMsZiksTHIodGhpcyxoLCExKSk7Z2V0IGVuYWJsZVRpbWUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZW5hYmxlVGltZShzZSl7dGhpcy4jcj1zZX0jYT0oTHIodGhpcyxtKSxMcih0aGlzLGIsIjI0aCIpKTtnZXQgdGltZUZvcm1hdCgpe3JldHVybiB0aGlzLiNhfXNldCB0aW1lRm9ybWF0KHNlKXt0aGlzLiNhPXNlfSNpPShMcih0aGlzLGcpLExyKHRoaXMsaywxKSk7Z2V0IG1pbnV0ZUluY3JlbWVudCgpe3JldHVybiB0aGlzLiNpfXNldCBtaW51dGVJbmNyZW1lbnQoc2Upe3RoaXMuI2k9c2V9I3M9KExyKHRoaXMsTSksTHIodGhpcyxfLDEpKTtnZXQgd2Vla1N0YXJ0c09uKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHdlZWtTdGFydHNPbihzZSl7dGhpcy4jcz1zZX0jbj0oTHIodGhpcyxTKSxMcih0aGlzLEwsIiIpKTtnZXQgbWluRGF0ZSgpe3JldHVybiB0aGlzLiNufXNldCBtaW5EYXRlKHNlKXt0aGlzLiNuPXNlfSNvPShMcih0aGlzLEUpLExyKHRoaXMsQywiIikpO2dldCBtYXhEYXRlKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heERhdGUoc2Upe3RoaXMuI289c2V9I2w9KExyKHRoaXMseiksTHIodGhpcywkLFtdKSk7Z2V0IGRpc2FibGVkRGF0ZXMoKXtyZXR1cm4gdGhpcy4jbH1zZXQgZGlzYWJsZWREYXRlcyhzZSl7dGhpcy4jbD1zZX0jYz0oTHIodGhpcyxGKSxMcih0aGlzLEcsITEpKTtnZXQgZW5hYmxlVGltZXpvbmUoKXtyZXR1cm4gdGhpcy4jY31zZXQgZW5hYmxlVGltZXpvbmUoc2Upe3RoaXMuI2M9c2V9I2Q9KExyKHRoaXMsWiksTHIodGhpcyxELEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSkpO2dldCB0aW1lem9uZSgpe3JldHVybiB0aGlzLiNkfXNldCB0aW1lem9uZShzZSl7dGhpcy4jZD1zZX0jdT0oTHIodGhpcyxRKSxMcih0aGlzLFQsW10pKTtnZXQgZXZlbnRzKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGV2ZW50cyhzZSl7dGhpcy4jdT1zZX0jcD0oTHIodGhpcyxXKSxMcih0aGlzLG1lLCExKSk7Z2V0IG9wZW5zVG9Ub3AoKXtyZXR1cm4gdGhpcy4jcH1zZXQgb3BlbnNUb1RvcChzZSl7dGhpcy4jcD1zZX0jZj0oTHIodGhpcyxxKSxMcih0aGlzLFUsbnVsbCkpO2dldCBzZWxlY3RlZERhdGUoKXtyZXR1cm4gdGhpcy4jZn1zZXQgc2VsZWN0ZWREYXRlKHNlKXt0aGlzLiNmPXNlfSNoPShMcih0aGlzLGopLExyKHRoaXMsWCxuZXcgRGF0ZSkpO2dldCB2aWV3RGF0ZSgpe3JldHVybiB0aGlzLiNofXNldCB2aWV3RGF0ZShzZSl7dGhpcy4jaD1zZX0jbT0oTHIodGhpcyxKKSxMcih0aGlzLEssMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2VsZWN0ZWRIb3VyKHNlKXt0aGlzLiNtPXNlfSNnPShMcih0aGlzLFYpLExyKHRoaXMsbmUsMCkpO2dldCBzZWxlY3RlZE1pbnV0ZSgpe3JldHVybiB0aGlzLiNnfXNldCBzZWxlY3RlZE1pbnV0ZShzZSl7dGhpcy4jZz1zZX0jYj0oTHIodGhpcyxlZSksTHIodGhpcyxIZSwxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNifXNldCBtZW51WkluZGV4KHNlKXt0aGlzLiNiPXNlfSN4PShMcih0aGlzLEdlKSxMcih0aGlzLERlLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jeH1zZXQgdmlzaWJsZShzZSl7dGhpcy4jeD1zZX13aW5kb3dMYXllcj0oTHIodGhpcyxfZSksbnVsbCk7aXNEZXN0cm95aW5nPSExO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgMTBweCAxNXB4IC0zcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDRweCA2cHggLTRweCBoc2woMCAwJSAwJSAvIDAuMSkiLCIwIDEwcHggMTVweCAtM3B4IGhzbCgwIDAlIDAlIC8gMC4yKSwgMCA0cHggNnB4IC00cHggaHNsKDAgMCUgMCUgLyAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogMjgwcHg7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cC50b3AgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpOwogICAgICB9CgogICAgICAuY2FsZW5kYXItcG9wdXAuc2hvdyB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIENhbGVuZGFyIEhlYWRlciAqLwogICAgICAuY2FsZW5kYXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb250aC15ZWFyLWRpc3BsYXkgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgZmxleDogMTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdlZWtkYXkgaGVhZGVycyAqLwogICAgICAud2Vla2RheXMgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC53ZWVrZGF5IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgcGFkZGluZzogMCAwIDhweCAwOwogICAgICB9CgogICAgICAvKiBEYXlzIGdyaWQgKi8KICAgICAgLmRheXMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuZGF5IHsKICAgICAgICBhc3BlY3QtcmF0aW86IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmRheTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLmRheS5vdGhlci1tb250aCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAuZGF5LnRvZGF5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuZGlzYWJsZWQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAvKiBFdmVudCBpbmRpY2F0b3JzICovCiAgICAgIC5ldmVudC1pbmRpY2F0b3IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QgewogICAgICAgIHdpZHRoOiA0cHg7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QuaW5mbyB7IGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjExIDcwJSA1MiUpIiwiaHNsKDIxMSA3MCUgNjIlKSIpfTsgfQogICAgICAuZXZlbnQtZG90Lndhcm5pbmcgeyBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDQ1IDkwJSA0NSUpIiwiaHNsKDQ1IDkwJSA1NSUpIil9OyB9CiAgICAgIC5ldmVudC1kb3Quc3VjY2VzcyB7IGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyIDY5JSA0NSUpIiwiaHNsKDE0MiA2OSUgNTUlKSIpfTsgfQogICAgICAuZXZlbnQtZG90LmVycm9yIHsgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDcyJSA1MSUpIiwiaHNsKDAgNzIlIDYxJSkiKX07IH0KCiAgICAgIC5ldmVudC1jb3VudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMnB4OwogICAgICAgIHJpZ2h0OiAycHg7CiAgICAgICAgbWluLXdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzIlIDUxJSkiLCJoc2woMCA3MiUgNjElKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmV2ZW50LXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IGNhbGMoMTAwJSArIDhweCk7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLmRheS5oYXMtZXZlbnQ6aG92ZXIgLmV2ZW50LXRvb2x0aXAgeyBvcGFjaXR5OiAxOyB9CgogICAgICAvKiBUaW1lIHNlbGVjdG9yICovCiAgICAgIC50aW1lLXNlbGVjdG9yIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLXNlbGVjdG9yLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAudGltZS1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDY1cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlIC8gMC4xKSIsImhzbCgyMTAgMjAlIDk4JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLXNlcGFyYXRvciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1zZWxlY3RvciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNHB4OyBtYXJnaW4tbGVmdDogOHB4OyB9CgogICAgICAuYW0tcG0tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuYW0tcG0tYnV0dG9uOmhvdmVyOm5vdCguc2VsZWN0ZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAvKiBUaW1lem9uZSBzZWxlY3RvciAqLwogICAgICAudGltZXpvbmUtc2VsZWN0b3IgewogICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdG9yLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lem9uZS1zZWxlY3QgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLyogQWN0aW9uIGJ1dHRvbnMgKi8KICAgICAgLmNhbGVuZGFyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5jbGVhci1hY3Rpb24tYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSAzMC42JSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KICAgIGBdO3N0YXRpYyBNT05USF9OQU1FUz1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl07c3RhdGljIFRJTUVaT05FUz1be3ZhbHVlOiJVVEMiLGxhYmVsOiJVVEMgKENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lKSJ9LHt2YWx1ZToiQW1lcmljYS9OZXdfWW9yayIsbGFiZWw6IkVhc3Rlcm4gVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0NoaWNhZ28iLGxhYmVsOiJDZW50cmFsIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9EZW52ZXIiLGxhYmVsOiJNb3VudGFpbiBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvTG9zX0FuZ2VsZXMiLGxhYmVsOiJQYWNpZmljIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiRXVyb3BlL0xvbmRvbiIsbGFiZWw6IkxvbmRvbiJ9LHt2YWx1ZToiRXVyb3BlL1BhcmlzIixsYWJlbDoiUGFyaXMifSx7dmFsdWU6IkV1cm9wZS9CZXJsaW4iLGxhYmVsOiJCZXJsaW4ifSx7dmFsdWU6IkV1cm9wZS9Nb3Njb3ciLGxhYmVsOiJNb3Njb3cifSx7dmFsdWU6IkFzaWEvRHViYWkiLGxhYmVsOiJEdWJhaSJ9LHt2YWx1ZToiQXNpYS9Lb2xrYXRhIixsYWJlbDoiSW5kaWEgU3RhbmRhcmQgVGltZSJ9LHt2YWx1ZToiQXNpYS9TaGFuZ2hhaSIsbGFiZWw6IkNoaW5hIFN0YW5kYXJkIFRpbWUifSx7dmFsdWU6IkFzaWEvVG9reW8iLGxhYmVsOiJUb2t5byJ9LHt2YWx1ZToiQXVzdHJhbGlhL1N5ZG5leSIsbGFiZWw6IlN5ZG5leSJ9LHt2YWx1ZToiUGFjaWZpYy9BdWNrbGFuZCIsbGFiZWw6IkF1Y2tsYW5kIn1dO3JlbmRlcigpe2lmKCF0aGlzLnRyaWdnZXJSZWN0KXJldHVybiB3YGA7bGV0IHNlPXRoaXMuY29tcHV0ZVBvc2l0aW9uU3R5bGUoKSxjZT10aGlzLndlZWtTdGFydHNPbj09PTE/WyJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiLCJTdSJdOlsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIsIkZyIiwiU2EiXSxUZT10aGlzLmdldERheXNJbk1vbnRoKCkscWU9dGhpcy5zZWxlY3RlZEhvdXI8MTI7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iY2FsZW5kYXItcG9wdXAgJHt0aGlzLnZpc2libGU/InNob3ciOiIifSAke3RoaXMub3BlbnNUb1RvcD8idG9wIjoiYm90dG9tIn0iCiAgICAgICAgc3R5bGU9IiR7c2V9OyB6LWluZGV4OiAke3RoaXMubWVudVpJbmRleH07IgogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FsZW5kYXItaGVhZGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3RoaXMucHJldmlvdXNNb250aH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25MZWZ0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtb250aC15ZWFyLWRpc3BsYXkiPgogICAgICAgICAgICAke29lLk1PTlRIX05BTUVTW3RoaXMudmlld0RhdGUuZ2V0TW9udGgoKV19ICR7dGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLm5leHRNb250aH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25SaWdodCIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ3ZWVrZGF5cyI+CiAgICAgICAgICAke2NlLm1hcChudD0+d2A8ZGl2IGNsYXNzPSJ3ZWVrZGF5Ij4ke250fTwvZGl2PmApfQogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJkYXlzLWdyaWQiPgogICAgICAgICAgJHtUZS5tYXAobnQ9PntsZXQgdnQ9dGhpcy5pc1RvZGF5KG50KSxMZT10aGlzLmlzU2VsZWN0ZWQobnQpLHdlPW50LmdldE1vbnRoKCkhPT10aGlzLnZpZXdEYXRlLmdldE1vbnRoKCksT2U9dGhpcy5pc0RheURpc2FibGVkKG50KSxnZT10aGlzLmdldEV2ZW50c0ZvckRhdGUobnQpLGJlPWdlLmxlbmd0aD4wLEllPWdlLnJlZHVjZSgoeXQsd3QpPT55dCsod3QuY291bnR8fDEpLDApO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJkYXkgJHt3ZT8ib3RoZXItbW9udGgiOiIifSAke3Z0PyJ0b2RheSI6IiJ9ICR7TGU/InNlbGVjdGVkIjoiIn0gJHtPZT8iZGlzYWJsZWQiOiIifSAke2JlPyJoYXMtZXZlbnQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT4hT2UmJnRoaXMuaGFuZGxlU2VsZWN0RGF0ZShudCl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtudC5nZXREYXRlKCl9CiAgICAgICAgICAgICAgICAke2JlP3dgCiAgICAgICAgICAgICAgICAgICR7SWU+Mz93YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWNvdW50Ij4ke0llfTwvZGl2PgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtaW5kaWNhdG9yIj4KICAgICAgICAgICAgICAgICAgICAgICR7Z2Uuc2xpY2UoMCwzKS5tYXAoeXQ9PndgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWRvdCAke3l0LnR5cGV8fCJpbmZvIn0iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICR7Z2VbMF0udGl0bGU/d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC10b29sdGlwIj4KICAgICAgICAgICAgICAgICAgICAgICR7Z2VbMF0udGl0bGV9CiAgICAgICAgICAgICAgICAgICAgICAke0llPjE/d2AgKCske0llLTF9IG1vcmUpYDoiIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmVuYWJsZVRpbWU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3IiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNlbGVjdG9yLXRpdGxlIj5UaW1lPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtaW5wdXRzIj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0idGltZS1pbnB1dCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyh0aGlzLnNlbGVjdGVkSG91cj09PTA/MTI6dGhpcy5zZWxlY3RlZEhvdXI+MTI/dGhpcy5zZWxlY3RlZEhvdXItMTI6dGhpcy5zZWxlY3RlZEhvdXIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpOnRoaXMuc2VsZWN0ZWRIb3VyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVIb3VySW5wdXR9CiAgICAgICAgICAgICAgICBtaW49IiR7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/MTowfSIKICAgICAgICAgICAgICAgIG1heD0iJHt0aGlzLnRpbWVGb3JtYXQ9PT0iMTJoIj8xMjoyM30iCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1zZXBhcmF0b3IiPjo8L3NwYW4+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3M9InRpbWUtaW5wdXQiCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlbGVjdGVkTWludXRlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVNaW51dGVJbnB1dH0KICAgICAgICAgICAgICAgIG1pbj0iMCIgbWF4PSI1OSIgc3RlcD0iJHt0aGlzLm1pbnV0ZUluY3JlbWVudHx8MX0iCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAke3RoaXMudGltZUZvcm1hdD09PSIxMmgiP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbS1wbS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFtLXBtLWJ1dHRvbiAke3FlPyJzZWxlY3RlZCI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5zZXRBTVBNKCJhbSIpfT5BTTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhbS1wbS1idXR0b24gJHtxZT8iIjoic2VsZWN0ZWQifSIgQGNsaWNrPSR7KCk9PnRoaXMuc2V0QU1QTSgicG0iKX0+UE08L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHt0aGlzLmVuYWJsZVRpbWV6b25lP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lem9uZS1zZWxlY3RvciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWV6b25lLXNlbGVjdG9yLXRpdGxlIj5UaW1lem9uZTwvZGl2PgogICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJ0aW1lem9uZS1zZWxlY3QiIC52YWx1ZT0ke3RoaXMudGltZXpvbmV9IEBjaGFuZ2U9JHt0aGlzLmhhbmRsZVRpbWV6b25lQ2hhbmdlfT4KICAgICAgICAgICAgICAke29lLlRJTUVaT05FUy5tYXAobnQ9PndgCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIke250LnZhbHVlfSIgP3NlbGVjdGVkPSR7bnQudmFsdWU9PT10aGlzLnRpbWV6b25lfT4ke250LmxhYmVsfTwvb3B0aW9uPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWFjdGlvbnMiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiB0b2RheS1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlU2VsZWN0VG9kYXl9PlRvZGF5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNsZWFyLWFjdGlvbi1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xlYXJ9PkNsZWFyPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb21wdXRlUG9zaXRpb25TdHlsZSgpe2xldCBzZT10aGlzLnRyaWdnZXJSZWN0LGNlPXNlLmxlZnQ7aWYodGhpcy5vcGVuc1RvVG9wKXtsZXQgVGU9d2luZG93LmlubmVySGVpZ2h0LXNlLnRvcCs0O3JldHVybmBsZWZ0OiAke2NlfXB4OyBib3R0b206ICR7VGV9cHg7IHRvcDogYXV0b2B9ZWxzZXtsZXQgVGU9c2UuYm90dG9tKzQ7cmV0dXJuYGxlZnQ6ICR7Y2V9cHg7IHRvcDogJHtUZX1weGB9fWdldERheXNJbk1vbnRoKCl7bGV0IHNlPXRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSxjZT10aGlzLnZpZXdEYXRlLmdldE1vbnRoKCksVGU9bmV3IERhdGUoc2UsY2UsMSkscWU9bmV3IERhdGUoc2UsY2UrMSwwKSxudD1bXSx2dD10aGlzLndlZWtTdGFydHNPbj09PTE/VGUuZ2V0RGF5KCk9PT0wPzY6VGUuZ2V0RGF5KCktMTpUZS5nZXREYXkoKTtmb3IobGV0IHdlPXZ0O3dlPjA7d2UtLSludC5wdXNoKG5ldyBEYXRlKHNlLGNlLDEtd2UpKTtmb3IobGV0IHdlPTE7d2U8PXFlLmdldERhdGUoKTt3ZSsrKW50LnB1c2gobmV3IERhdGUoc2UsY2Usd2UpKTtsZXQgTGU9NDItbnQubGVuZ3RoO2ZvcihsZXQgd2U9MTt3ZTw9TGU7d2UrKyludC5wdXNoKG5ldyBEYXRlKHNlLGNlKzEsd2UpKTtyZXR1cm4gbnR9aXNUb2RheShzZSl7bGV0IGNlPW5ldyBEYXRlO3JldHVybiBzZS5nZXREYXRlKCk9PT1jZS5nZXREYXRlKCkmJnNlLmdldE1vbnRoKCk9PT1jZS5nZXRNb250aCgpJiZzZS5nZXRGdWxsWWVhcigpPT09Y2UuZ2V0RnVsbFllYXIoKX1pc1NlbGVjdGVkKHNlKXtyZXR1cm4gdGhpcy5zZWxlY3RlZERhdGU/c2UuZ2V0RGF0ZSgpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpJiZzZS5nZXRNb250aCgpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSYmc2UuZ2V0RnVsbFllYXIoKT09PXRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCk6ITF9aXNEYXlEaXNhYmxlZChzZSl7aWYodGhpcy5taW5EYXRlKXtsZXQgY2U9bmV3IERhdGUodGhpcy5taW5EYXRlKTtpZihzZTxjZSlyZXR1cm4hMH1pZih0aGlzLm1heERhdGUpe2xldCBjZT1uZXcgRGF0ZSh0aGlzLm1heERhdGUpO2lmKHNlPmNlKXJldHVybiEwfXJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXM/Lmxlbmd0aD90aGlzLmRpc2FibGVkRGF0ZXMuc29tZShjZT0+e3RyeXtsZXQgVGU9bmV3IERhdGUoY2UpO3JldHVybiBzZS5nZXREYXRlKCk9PT1UZS5nZXREYXRlKCkmJnNlLmdldE1vbnRoKCk9PT1UZS5nZXRNb250aCgpJiZzZS5nZXRGdWxsWWVhcigpPT09VGUuZ2V0RnVsbFllYXIoKX1jYXRjaHtyZXR1cm4hMX19KTohMX1nZXRFdmVudHNGb3JEYXRlKHNlKXtpZighdGhpcy5ldmVudHM/Lmxlbmd0aClyZXR1cm5bXTtsZXQgY2U9YCR7c2UuZ2V0RnVsbFllYXIoKX0tJHsoc2UuZ2V0TW9udGgoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHtzZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YDtyZXR1cm4gdGhpcy5ldmVudHMuZmlsdGVyKFRlPT5UZS5kYXRlPT09Y2UpfXByZXZpb3VzTW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCktMSwxKX1uZXh0TW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCkrMSwxKX1oYW5kbGVTZWxlY3REYXRlKHNlKXt0aGlzLnNlbGVjdGVkRGF0ZT1uZXcgRGF0ZShzZS5nZXRGdWxsWWVhcigpLHNlLmdldE1vbnRoKCksc2UuZ2V0RGF0ZSgpLHRoaXMuc2VsZWN0ZWRIb3VyLHRoaXMuc2VsZWN0ZWRNaW51dGUpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRhdGUtc2VsZWN0ZWQiLHtkZXRhaWw6dGhpcy5zZWxlY3RlZERhdGV9KSksdGhpcy5lbmFibGVUaW1lfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbG9zZS1yZXF1ZXN0IikpfWhhbmRsZVNlbGVjdFRvZGF5KCl7bGV0IHNlPW5ldyBEYXRlO3RoaXMuc2VsZWN0ZWREYXRlPXNlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoc2UpLHRoaXMuc2VsZWN0ZWRIb3VyPXNlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1zZS5nZXRNaW51dGVzKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGF0ZS1zZWxlY3RlZCIse2RldGFpbDp0aGlzLnNlbGVjdGVkRGF0ZX0pKSx0aGlzLmVuYWJsZVRpbWV8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSl9aGFuZGxlQ2xlYXIoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkYXRlLWNsZWFyZWQiKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX1oYW5kbGVIb3VySW5wdXQ9aShzZT0+e2xldCBjZT1zZS50YXJnZXQsVGU9cGFyc2VJbnQoY2UudmFsdWUpfHwwO3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyhUZT1NYXRoLm1heCgxLE1hdGgubWluKDEyLFRlKSksdGhpcy5zZWxlY3RlZEhvdXI+PTEyJiZUZSE9PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPVRlKzEyOnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiZUZT09PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPTA6dGhpcy5zZWxlY3RlZEhvdXI9VGUpOnRoaXMuc2VsZWN0ZWRIb3VyPU1hdGgubWF4KDAsTWF0aC5taW4oMjMsVGUpKSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9LCJoYW5kbGVIb3VySW5wdXQiKTtoYW5kbGVNaW51dGVJbnB1dD1pKHNlPT57bGV0IGNlPXNlLnRhcmdldCxUZT1wYXJzZUludChjZS52YWx1ZSl8fDA7VGU9TWF0aC5tYXgoMCxNYXRoLm1pbig1OSxUZSkpLHRoaXMubWludXRlSW5jcmVtZW50PjEmJihUZT1NYXRoLnJvdW5kKFRlL3RoaXMubWludXRlSW5jcmVtZW50KSp0aGlzLm1pbnV0ZUluY3JlbWVudCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1UZSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9LCJoYW5kbGVNaW51dGVJbnB1dCIpO3NldEFNUE0oc2Upe3NlPT09ImFtIiYmdGhpcy5zZWxlY3RlZEhvdXI+PTEyP3RoaXMuc2VsZWN0ZWRIb3VyLT0xMjpzZT09PSJwbSImJnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiYodGhpcy5zZWxlY3RlZEhvdXIrPTEyKSx0aGlzLmVtaXRUaW1lVXBkYXRlKCl9aGFuZGxlVGltZXpvbmVDaGFuZ2U9aShzZT0+e3RoaXMudGltZXpvbmU9c2UudGFyZ2V0LnZhbHVlLHRoaXMuZW1pdFRpbWVVcGRhdGUoKX0sImhhbmRsZVRpbWV6b25lQ2hhbmdlIik7ZW1pdFRpbWVVcGRhdGUoKXt0aGlzLnNlbGVjdGVkRGF0ZSYmKHRoaXMuc2VsZWN0ZWREYXRlPW5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksdGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSx0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCksdGhpcy5zZWxlY3RlZEhvdXIsdGhpcy5zZWxlY3RlZE1pbnV0ZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGF0ZS1zZWxlY3RlZCIse2RldGFpbDp0aGlzLnNlbGVjdGVkRGF0ZX0pKSl9YXN5bmMgc2hvdygpe3RoaXMud2luZG93TGF5ZXI9YXdhaXQgeW4uY3JlYXRlQW5kU2hvdygpLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xvc2UtcmVxdWVzdCIpKX0pLHRoaXMubWVudVpJbmRleD15ci5nZXROZXh0WkluZGV4KCkseXIucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcyksYXdhaXQgY3Iuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITAsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7Y2FwdHVyZTohMCxwYXNzaXZlOiEwfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSx7cGFzc2l2ZTohMH0pfWFzeW5jIGhpZGUoKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITB9KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplKSx5ci51bnJlZ2lzdGVyKHRoaXMpLHRoaXMud2luZG93TGF5ZXImJih0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLndpbmRvd0xheWVyPW51bGwpLHRoaXMudmlzaWJsZT0hMSxhd2FpdCBjci5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyksdGhpcy5pc0Rlc3Ryb3lpbmc9ITEpfWhhbmRsZVNjcm9sbE9yUmVzaXplPWkoKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXBvc2l0aW9uLXJlcXVlc3QiKSl9LCJoYW5kbGVTY3JvbGxPclJlc2l6ZSIpO2FzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSkseXIudW5yZWdpc3Rlcih0aGlzKX1zdGF0aWN7THIoYSxyKX19O3JldHVybiBvZT1hfSkoKX0pO3ZhciB0bixacixIcGUsSTZ0PXUoKCk9Pnt2ZSgpO0NpKCk7UGpyKCk7T2pyKCk7RmpyKCk7UDZ0KCk7S3IoKTtPeSgpO3RuPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxacj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sSHBlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdLGZlLFQ9W10sVz1bXSxwZSxtZT1bXSxxPVtdLEgsVT1bXSxqPVtdLGFlLFg9W10sSj1bXSx4ZSxLPVtdLFY9W10sbGUsbmU9W10sZWU9W10semUsSGU9W10sR2U9W107dmFyIG90PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREYXRlcGlja2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IERlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOk51bWJlcn0pXSx5PVtQKHt0eXBlOlN0cmluZ30pXSxOPVtQKHt0eXBlOlN0cmluZ30pXSxPPVtQKHt0eXBlOlN0cmluZ30pXSxCPVtQKHt0eXBlOkFycmF5fSldLEE9W1Aoe3R5cGU6TnVtYmVyfSldLFk9W1Aoe3R5cGU6U3RyaW5nfSldLGRlPVtQKHt0eXBlOkJvb2xlYW59KV0sZmU9W1Aoe3R5cGU6U3RyaW5nfSldLHBlPVtQKHt0eXBlOkFycmF5fSldLEg9W2llKCldLGFlPVtpZSgpXSx4ZT1baWUoKV0sbGU9W2llKCldLHplPVtpZSgpXSx0bih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4idmFsdWUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS52YWx1ZSwiZ2V0Iiksc2V0OmkoKF9lLG9lKT0+e19lLnZhbHVlPW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxvLGwpLHRuKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+ImVuYWJsZVRpbWUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5lbmFibGVUaW1lLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UuZW5hYmxlVGltZT1vZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sZCxmKSx0bih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWVGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJ0aW1lRm9ybWF0ImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UudGltZUZvcm1hdCwiZ2V0Iiksc2V0OmkoKF9lLG9lKT0+e19lLnRpbWVGb3JtYXQ9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LGgsbSksdG4odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW51dGVJbmNyZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJtaW51dGVJbmNyZW1lbnQiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5taW51dGVJbmNyZW1lbnQsImdldCIpLHNldDppKChfZSxvZSk9PntfZS5taW51dGVJbmNyZW1lbnQ9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LGIsZyksdG4odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRlRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iZGF0ZUZvcm1hdCJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmRhdGVGb3JtYXQsImdldCIpLHNldDppKChfZSxvZSk9PntfZS5kYXRlRm9ybWF0PW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxrLE0pLHRuKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+Im1pbkRhdGUiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5taW5EYXRlLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UubWluRGF0ZT1vZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sXyxTKSx0bih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJtYXhEYXRlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UubWF4RGF0ZSwiZ2V0Iiksc2V0OmkoKF9lLG9lKT0+e19lLm1heERhdGU9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LEwsRSksdG4odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZERhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iZGlzYWJsZWREYXRlcyJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmRpc2FibGVkRGF0ZXMsImdldCIpLHNldDppKChfZSxvZSk9PntfZS5kaXNhYmxlZERhdGVzPW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxDLHopLHRuKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2Vla1N0YXJ0c09uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4id2Vla1N0YXJ0c09uImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2Uud2Vla1N0YXJ0c09uLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2Uud2Vla1N0YXJ0c09uPW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSwkLEYpLHRuKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJwbGFjZWhvbGRlciJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UucGxhY2Vob2xkZXI9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LEcsWiksdG4odGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJlbmFibGVUaW1lem9uZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLmVuYWJsZVRpbWV6b25lLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UuZW5hYmxlVGltZXpvbmU9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LEQsUSksdG4odGhpcyxudWxsLGZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJ0aW1lem9uZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnRpbWV6b25lLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UudGltZXpvbmU9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LFQsVyksdG4odGhpcyxudWxsLHBlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXZlbnRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iZXZlbnRzImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2UuZXZlbnRzLCJnZXQiKSxzZXQ6aSgoX2Usb2UpPT57X2UuZXZlbnRzPW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxtZSxxKSx0bih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKF9lPT4iaXNPcGVuZWQiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5pc09wZW5lZCwiZ2V0Iiksc2V0OmkoKF9lLG9lKT0+e19lLmlzT3BlbmVkPW9lfSwic2V0Iil9LG1ldGFkYXRhOkRlfSxVLGopLHRuKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InNlbGVjdGVkRGF0ZSJpbiBfZSwiaGFzIiksZ2V0OmkoX2U9Pl9lLnNlbGVjdGVkRGF0ZSwiZ2V0Iiksc2V0OmkoKF9lLG9lKT0+e19lLnNlbGVjdGVkRGF0ZT1vZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sWCxKKSx0bih0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3RGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InZpZXdEYXRlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2Uudmlld0RhdGUsImdldCIpLHNldDppKChfZSxvZSk9PntfZS52aWV3RGF0ZT1vZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sSyxWKSx0bih0aGlzLG51bGwsbGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEhvdXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoX2U9PiJzZWxlY3RlZEhvdXIiaW4gX2UsImhhcyIpLGdldDppKF9lPT5fZS5zZWxlY3RlZEhvdXIsImdldCIpLHNldDppKChfZSxvZSk9PntfZS5zZWxlY3RlZEhvdXI9b2V9LCJzZXQiKX0sbWV0YWRhdGE6RGV9LG5lLGVlKSx0bih0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE1pbnV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShfZT0+InNlbGVjdGVkTWludXRlImluIF9lLCJoYXMiKSxnZXQ6aShfZT0+X2Uuc2VsZWN0ZWRNaW51dGUsImdldCIpLHNldDppKChfZSxvZSk9PntfZS5zZWxlY3RlZE1pbnV0ZT1vZX0sInNldCIpfSxtZXRhZGF0YTpEZX0sSGUsR2UpLHRuKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkRlfSxudWxsLHIpLG90PWE9ZS52YWx1ZSxEZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEZX0pfXN0YXRpYyBkZW1vPUlqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9WnIodGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoRGUpe3RoaXMuI2U9RGV9I3Q9KFpyKHRoaXMsbCksWnIodGhpcyxkLCExKSk7Z2V0IGVuYWJsZVRpbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZW5hYmxlVGltZShEZSl7dGhpcy4jdD1EZX0jcj0oWnIodGhpcyxmKSxacih0aGlzLGgsIjI0aCIpKTtnZXQgdGltZUZvcm1hdCgpe3JldHVybiB0aGlzLiNyfXNldCB0aW1lRm9ybWF0KERlKXt0aGlzLiNyPURlfSNhPShacih0aGlzLG0pLFpyKHRoaXMsYiwxKSk7Z2V0IG1pbnV0ZUluY3JlbWVudCgpe3JldHVybiB0aGlzLiNhfXNldCBtaW51dGVJbmNyZW1lbnQoRGUpe3RoaXMuI2E9RGV9I2k9KFpyKHRoaXMsZyksWnIodGhpcyxrLCJZWVlZLU1NLUREIikpO2dldCBkYXRlRm9ybWF0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGRhdGVGb3JtYXQoRGUpe3RoaXMuI2k9RGV9I3M9KFpyKHRoaXMsTSksWnIodGhpcyxfLCIiKSk7Z2V0IG1pbkRhdGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWluRGF0ZShEZSl7dGhpcy4jcz1EZX0jbj0oWnIodGhpcyxTKSxacih0aGlzLEwsIiIpKTtnZXQgbWF4RGF0ZSgpe3JldHVybiB0aGlzLiNufXNldCBtYXhEYXRlKERlKXt0aGlzLiNuPURlfSNvPShacih0aGlzLEUpLFpyKHRoaXMsQyxbXSkpO2dldCBkaXNhYmxlZERhdGVzKCl7cmV0dXJuIHRoaXMuI299c2V0IGRpc2FibGVkRGF0ZXMoRGUpe3RoaXMuI289RGV9I2w9KFpyKHRoaXMseiksWnIodGhpcywkLDEpKTtnZXQgd2Vla1N0YXJ0c09uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHdlZWtTdGFydHNPbihEZSl7dGhpcy4jbD1EZX0jYz0oWnIodGhpcyxGKSxacih0aGlzLEcsIllZWVktTU0tREQiKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHBsYWNlaG9sZGVyKERlKXt0aGlzLiNjPURlfSNkPShacih0aGlzLFopLFpyKHRoaXMsRCwhMSkpO2dldCBlbmFibGVUaW1lem9uZSgpe3JldHVybiB0aGlzLiNkfXNldCBlbmFibGVUaW1lem9uZShEZSl7dGhpcy4jZD1EZX0jdT0oWnIodGhpcyxRKSxacih0aGlzLFQsSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lKSk7Z2V0IHRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHRpbWV6b25lKERlKXt0aGlzLiN1PURlfSNwPShacih0aGlzLFcpLFpyKHRoaXMsbWUsW10pKTtnZXQgZXZlbnRzKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGV2ZW50cyhEZSl7dGhpcy4jcD1EZX0jZj0oWnIodGhpcyxxKSxacih0aGlzLFUsITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jZn1zZXQgaXNPcGVuZWQoRGUpe3RoaXMuI2Y9RGV9I2g9KFpyKHRoaXMsaiksWnIodGhpcyxYLG51bGwpKTtnZXQgc2VsZWN0ZWREYXRlKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHNlbGVjdGVkRGF0ZShEZSl7dGhpcy4jaD1EZX0jbT0oWnIodGhpcyxKKSxacih0aGlzLEssbmV3IERhdGUpKTtnZXQgdmlld0RhdGUoKXtyZXR1cm4gdGhpcy4jbX1zZXQgdmlld0RhdGUoRGUpe3RoaXMuI209RGV9I2c9KFpyKHRoaXMsViksWnIodGhpcyxuZSwwKSk7Z2V0IHNlbGVjdGVkSG91cigpe3JldHVybiB0aGlzLiNnfXNldCBzZWxlY3RlZEhvdXIoRGUpe3RoaXMuI2c9RGV9I2I9KFpyKHRoaXMsZWUpLFpyKHRoaXMsSGUsMCkpO2dldCBzZWxlY3RlZE1pbnV0ZSgpe3JldHVybiB0aGlzLiNifXNldCBzZWxlY3RlZE1pbnV0ZShEZSl7dGhpcy4jYj1EZX1wb3B1cEluc3RhbmNlPShacih0aGlzLEdlKSxudWxsKTtzdGF0aWMgc3R5bGVzPU5qcjtyZW5kZXIoKXtyZXR1cm4gUmpyKHRoaXMpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsdWV8fCh0aGlzLnZhbHVlPSIiKSx0aGlzLnZhbHVlKXRyeXtsZXQgRGU9bmV3IERhdGUodGhpcy52YWx1ZSk7aXNOYU4oRGUuZ2V0VGltZSgpKXx8KHRoaXMuc2VsZWN0ZWREYXRlPURlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoRGUpLHRoaXMuc2VsZWN0ZWRIb3VyPURlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1EZS5nZXRNaW51dGVzKCkpfWNhdGNoe31lbHNle2xldCBEZT1uZXcgRGF0ZTt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKERlKSx0aGlzLnNlbGVjdGVkSG91cj1EZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9MH19Zm9ybWF0RGF0ZShEZSl7aWYoIURlKXJldHVybiIiO3RyeXtsZXQgX2U9bmV3IERhdGUoRGUpO2lmKGlzTmFOKF9lLmdldFRpbWUoKSkpcmV0dXJuIiI7bGV0IG9lPXRoaXMuZGF0ZUZvcm1hdCxzZT1fZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksY2U9KF9lLmdldE1vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksVGU9X2UuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpO2lmKG9lPW9lLnJlcGxhY2UoIllZWVkiLFRlKSxvZT1vZS5yZXBsYWNlKCJZWSIsVGUuc2xpY2UoLTIpKSxvZT1vZS5yZXBsYWNlKCJNTSIsY2UpLG9lPW9lLnJlcGxhY2UoIkREIixzZSksdGhpcy5lbmFibGVUaW1lKXtsZXQgcWU9X2UuZ2V0SG91cnMoKSxudD1xZT09PTA/MTI6cWU+MTI/cWUtMTI6cWUsdnQ9X2UuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLExlPXFlPj0xMj8iUE0iOiJBTSI7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/b2UrPWAgJHtudH06JHt2dH0gJHtMZX1gOm9lKz1gICR7cWUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7dnR9YH1pZih0aGlzLmVuYWJsZVRpbWV6b25lKXtsZXQgdnQ9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmVOYW1lOiJzaG9ydCIsdGltZVpvbmU6dGhpcy50aW1lem9uZX0pLmZvcm1hdFRvUGFydHMoX2UpLmZpbmQoTGU9PkxlLnR5cGU9PT0idGltZVpvbmVOYW1lIik7dnQmJihvZSs9YCAke3Z0LnZhbHVlfWApfXJldHVybiBvZX1jYXRjaHtyZXR1cm4iIn19YXN5bmMgdG9nZ2xlQ2FsZW5kYXIoKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtpZih0aGlzLmlzT3BlbmVkKXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59dGhpcy5pc09wZW5lZD0hMDtsZXQgX2U9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb250YWluZXIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvZT13aW5kb3cuaW5uZXJIZWlnaHQtX2UuYm90dG9tLHNlPV9lLnRvcCxjZT1vZTw0MDAmJnNlPm9lO3RoaXMucG9wdXBJbnN0YW5jZXx8KHRoaXMucG9wdXBJbnN0YW5jZT1uZXcgQnBlKSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9X2UsdGhpcy5wb3B1cEluc3RhbmNlLm93bmVyQ29tcG9uZW50PXRoaXMsdGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9Y2UsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVRpbWU9dGhpcy5lbmFibGVUaW1lLHRoaXMucG9wdXBJbnN0YW5jZS50aW1lRm9ybWF0PXRoaXMudGltZUZvcm1hdCx0aGlzLnBvcHVwSW5zdGFuY2UubWludXRlSW5jcmVtZW50PXRoaXMubWludXRlSW5jcmVtZW50LHRoaXMucG9wdXBJbnN0YW5jZS53ZWVrU3RhcnRzT249dGhpcy53ZWVrU3RhcnRzT24sdGhpcy5wb3B1cEluc3RhbmNlLm1pbkRhdGU9dGhpcy5taW5EYXRlLHRoaXMucG9wdXBJbnN0YW5jZS5tYXhEYXRlPXRoaXMubWF4RGF0ZSx0aGlzLnBvcHVwSW5zdGFuY2UuZGlzYWJsZWREYXRlcz10aGlzLmRpc2FibGVkRGF0ZXMsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVRpbWV6b25lPXRoaXMuZW5hYmxlVGltZXpvbmUsdGhpcy5wb3B1cEluc3RhbmNlLnRpbWV6b25lPXRoaXMudGltZXpvbmUsdGhpcy5wb3B1cEluc3RhbmNlLmV2ZW50cz10aGlzLmV2ZW50cyx0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWREYXRlPXRoaXMuc2VsZWN0ZWREYXRlLHRoaXMucG9wdXBJbnN0YW5jZS52aWV3RGF0ZT1uZXcgRGF0ZSh0aGlzLnZpZXdEYXRlKSx0aGlzLnBvcHVwSW5zdGFuY2Uuc2VsZWN0ZWRIb3VyPXRoaXMuc2VsZWN0ZWRIb3VyLHRoaXMucG9wdXBJbnN0YW5jZS5zZWxlY3RlZE1pbnV0ZT10aGlzLnNlbGVjdGVkTWludXRlLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJkYXRlLXNlbGVjdGVkIix0aGlzLmhhbmRsZURhdGVTZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoImRhdGUtY2xlYXJlZCIsdGhpcy5oYW5kbGVEYXRlQ2xlYXJlZCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSxhd2FpdCB0aGlzLnBvcHVwSW5zdGFuY2Uuc2hvdygpfWNsb3NlUG9wdXAoKXt0aGlzLmlzT3BlbmVkPSExLHRoaXMucG9wdXBJbnN0YW5jZSYmKHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLXNlbGVjdGVkIix0aGlzLmhhbmRsZURhdGVTZWxlY3RlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRhdGUtY2xlYXJlZCIsdGhpcy5oYW5kbGVEYXRlQ2xlYXJlZCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsb3NlLXJlcXVlc3QiLHRoaXMuaGFuZGxlQ2xvc2VSZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVwb3NpdGlvbi1yZXF1ZXN0Iix0aGlzLmhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0KSx0aGlzLnBvcHVwSW5zdGFuY2UuaGlkZSgpKX1oYW5kbGVEYXRlU2VsZWN0ZWQ9aShEZT0+e2xldCBfZT1EZS5kZXRhaWw7dGhpcy5zZWxlY3RlZERhdGU9X2UsdGhpcy5zZWxlY3RlZEhvdXI9X2UuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPV9lLmdldE1pbnV0ZXMoKSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKF9lKSx0aGlzLnZhbHVlPXRoaXMuZm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoX2UpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSwiaGFuZGxlRGF0ZVNlbGVjdGVkIik7aGFuZGxlRGF0ZUNsZWFyZWQ9aSgoKT0+e3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0sImhhbmRsZURhdGVDbGVhcmVkIik7aGFuZGxlQ2xvc2VSZXF1ZXN0PWkoKCk9Pnt0aGlzLmNsb3NlUG9wdXAoKX0sImhhbmRsZUNsb3NlUmVxdWVzdCIpO2hhbmRsZVJlcG9zaXRpb25SZXF1ZXN0PWkoKCk9PntpZighdGhpcy5wb3B1cEluc3RhbmNlfHwhdGhpcy5pc09wZW5lZClyZXR1cm47bGV0IERlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29udGFpbmVyIik7aWYoIURlKXJldHVybjtsZXQgX2U9RGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoX2UuYm90dG9tPDB8fF9lLnRvcD53aW5kb3cuaW5uZXJIZWlnaHQpe3RoaXMuY2xvc2VQb3B1cCgpO3JldHVybn1sZXQgb2U9d2luZG93LmlubmVySGVpZ2h0LV9lLmJvdHRvbSxzZT1fZS50b3A7dGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9b2U8NDAwJiZzZT5vZSx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9X2V9LCJoYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCIpO2hhbmRsZUtleWRvd24oRGUpe0RlLmtleT09PSJFbnRlciJ8fERlLmtleT09PSIgIj8oRGUucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZUNhbGVuZGFyKCkpOkRlLmtleT09PSJFc2NhcGUiJiZ0aGlzLmlzT3BlbmVkJiYoRGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlUG9wdXAoKSl9Y2xlYXJWYWx1ZShEZSl7RGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWhhbmRsZU1hbnVhbElucHV0KERlKXtsZXQgb2U9RGUudGFyZ2V0LnZhbHVlLnRyaW0oKTtpZighb2Upe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbDtyZXR1cm59bGV0IHNlPXRoaXMucGFyc2VNYW51YWxEYXRlKG9lKTtzZSYmIWlzTmFOKHNlLmdldFRpbWUoKSkmJih0aGlzLnZhbHVlPXNlLnRvSVNPU3RyaW5nKCksdGhpcy5zZWxlY3RlZERhdGU9c2UsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShzZSksdGhpcy5zZWxlY3RlZEhvdXI9c2UuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPXNlLmdldE1pbnV0ZXMoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9aGFuZGxlSW5wdXRCbHVyKERlKXtsZXQgX2U9RGUudGFyZ2V0LG9lPV9lLnZhbHVlLnRyaW0oKTtpZighb2Upe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtyZXR1cm59bGV0IHNlPXRoaXMucGFyc2VNYW51YWxEYXRlKG9lKTtzZSYmIWlzTmFOKHNlLmdldFRpbWUoKSk/KHRoaXMudmFsdWU9c2UudG9JU09TdHJpbmcoKSx0aGlzLnNlbGVjdGVkRGF0ZT1zZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHNlKSx0aGlzLnNlbGVjdGVkSG91cj1zZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9c2UuZ2V0TWludXRlcygpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLF9lLnZhbHVlPXRoaXMuZm9ybWF0RGF0ZSh0aGlzLnZhbHVlKSk6X2UudmFsdWU9dGhpcy5mb3JtYXREYXRlKHRoaXMudmFsdWUpfXBhcnNlTWFudWFsRGF0ZShEZSl7aWYoIURlKXJldHVybiBudWxsO2xldCBfZT1EZS5zcGxpdCgiICIpLG9lPV9lWzBdLHNlPV9lWzFdfHwiIixjZT1udWxsLFRlPW9lLm1hdGNoKC9eKFxkezR9KS0oXGR7MSwyfSktKFxkezEsMn0pJC8pO2lmKFRlKXtsZXRbcWUsbnQsdnQsTGVdPVRlO2NlPW5ldyBEYXRlKHBhcnNlSW50KG50KSxwYXJzZUludCh2dCktMSxwYXJzZUludChMZSkpfWlmKCFjZSl7bGV0IHFlPW9lLm1hdGNoKC9eKFxkezEsMn0pXC4oXGR7MSwyfSlcLihcZHs0fSkkLyk7aWYocWUpe2xldFtudCx2dCxMZSx3ZV09cWU7Y2U9bmV3IERhdGUocGFyc2VJbnQod2UpLHBhcnNlSW50KExlKS0xLHBhcnNlSW50KHZ0KSl9fWlmKCFjZSl7bGV0IHFlPW9lLm1hdGNoKC9eKFxkezEsMn0pXC8oXGR7MSwyfSlcLyhcZHs0fSkkLyk7aWYocWUpe2xldFtudCx2dCxMZSx3ZV09cWU7Y2U9bmV3IERhdGUocGFyc2VJbnQod2UpLHBhcnNlSW50KHZ0KS0xLHBhcnNlSW50KExlKSl9fWlmKCFjZXx8aXNOYU4oY2UuZ2V0VGltZSgpKSlyZXR1cm4gbnVsbDtpZihzZSl7bGV0IHFlPXNlLm1hdGNoKC9eKFxkezEsMn0pOihcZHsyfSkkLyk7aWYocWUpe2xldFtudCx2dCxMZV09cWU7Y2Uuc2V0SG91cnMocGFyc2VJbnQodnQpKSxjZS5zZXRNaW51dGVzKHBhcnNlSW50KExlKSl9fWVsc2UgaWYoIXRoaXMuZW5hYmxlVGltZSl7bGV0IHFlPW5ldyBEYXRlO2NlLnNldEhvdXJzKHFlLmdldEhvdXJzKCkpLGNlLnNldE1pbnV0ZXMocWUuZ2V0TWludXRlcygpKSxjZS5zZXRTZWNvbmRzKDApLGNlLnNldE1pbGxpc2Vjb25kcygwKX1yZXR1cm4gY2V9Zm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoRGUpe2lmKCF0aGlzLmVuYWJsZVRpbWV6b25lKXJldHVybiBEZS50b0lTT1N0cmluZygpO2xldCBvZT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tVVMiLHt5ZWFyOiJudW1lcmljIixtb250aDoiMi1kaWdpdCIsZGF5OiIyLWRpZ2l0Iixob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsaG91cjEyOiExLHRpbWVab25lOnRoaXMudGltZXpvbmUsdGltZVpvbmVOYW1lOiJzaG9ydCJ9KS5mb3JtYXRUb1BhcnRzKERlKSxzZT17fTtvZS5mb3JFYWNoKHFlPT57c2VbcWUudHlwZV09cWUudmFsdWV9KTtsZXQgY2U9YCR7c2UueWVhcn0tJHtzZS5tb250aH0tJHtzZS5kYXl9VCR7c2UuaG91cn06JHtzZS5taW51dGV9OiR7c2Uuc2Vjb25kfWAsVGU9dGhpcy5nZXRUaW1lem9uZU9mZnNldChEZSx0aGlzLnRpbWV6b25lKTtyZXR1cm5gJHtjZX0ke1RlfWB9Z2V0VGltZXpvbmVPZmZzZXQoRGUsX2Upe2xldCBvZT1uZXcgRGF0ZShEZS50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZTpfZX0pKSxzZT1uZXcgRGF0ZShEZS50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZToiVVRDIn0pKSxjZT0ob2UuZ2V0VGltZSgpLXNlLmdldFRpbWUoKSkvKDFlMyo2MCksVGU9TWF0aC5mbG9vcihNYXRoLmFicyhjZSkvNjApLHFlPU1hdGguYWJzKGNlKSU2MDtyZXR1cm5gJHtjZT49MD8iKyI6Ii0ifSR7VGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7cWUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKERlKXtpZih0aGlzLnZhbHVlPURlLERlKXRyeXtsZXQgX2U9bmV3IERhdGUoRGUpO2lzTmFOKF9lLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1fZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKF9lKSx0aGlzLnNlbGVjdGVkSG91cj1fZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9X2UuZ2V0TWludXRlcygpKX1jYXRjaHt9fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGF0ZS1zZWxlY3RlZCIsdGhpcy5oYW5kbGVEYXRlU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkYXRlLWNsZWFyZWQiLHRoaXMuaGFuZGxlRGF0ZUNsZWFyZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSx0aGlzLnBvcHVwSW5zdGFuY2U9bnVsbCl9c3RhdGlje1pyKGEscil9fTtyZXR1cm4gb3Q9YX0pKCl9KTt2YXIgcXBlPXUoKCk9PntJNnQoKTtQNnQoKX0pO3ZhciBCanIsSGpyPXUoKCk9Pnt2ZSgpO3dhKCk7d24oKTtCanI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke3JlYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAuaW50ZXJhY3RpdmUtc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5vdXRwdXQtdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTAgNDAlIDgwJSkiKX07CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLChzPT57Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBjaGFuZ2VkIHRvOmAsYS5nZXRWYWx1ZSgpKX0pKSxhLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBsb3N0IGZvY3VzYCl9KX0pLHQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0icGFzc3dvcmQiXScpJiZjb25zb2xlLmxvZygiUGFzc3dvcmQgaW5wdXQgaW5jbHVkZXMgdmlzaWJpbGl0eSB0b2dnbGUiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVGV4dCBJbnB1dHMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgdGV4dCBpbnB1dHMgd2l0aCBsYWJlbHMgYW5kIGRlc2NyaXB0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJVc2VybmFtZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJqb2huZG9lIn0KICAgICAgICAgICAgLmtleT0keyJ1c2VybmFtZSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJZb3VyIHVzZXJuYW1lIHdpbGwgYmUgdmlzaWJsZSB0byBvdGhlciB1c2VycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJqb2huQGV4YW1wbGUuY29tIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IldlIHdpbGwgbmV2ZXIgc2hhcmUgeW91ciBlbWFpbCB3aXRoIGFueW9uZSJ9CiAgICAgICAgICAgIC5rZXk9JHsiZW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlBhc3N3b3JkIn0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJzZWNyZXQxMjMifQogICAgICAgICAgICAua2V5PSR7InBhc3N3b3JkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKHM9PntsZXQgbj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzKTtjb25zb2xlLmxvZyhgSG9yaXpvbnRhbCBpbnB1dCAiJHtzLmxhYmVsfSIgZGlzcGxheTpgLG4uZGlzcGxheSl9KTtsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dFtrZXk9ImZpcnN0TmFtZSJdJyksYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dFtrZXk9Imxhc3ROYW1lIl0nKTtpZihyJiZhKXtsZXQgcz1pKCgpPT57bGV0IG49ci5nZXRWYWx1ZSgpLG89YS5nZXRWYWx1ZSgpO2NvbnNvbGUubG9nKGBGdWxsIG5hbWU6ICR7bn0gJHtvfWApfSwidXBkYXRlRnVsbE5hbWUiKTtyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLHMpLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIscyl9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBpbnB1dHMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkZpcnN0IE5hbWUifQogICAgICAgICAgICAgIC52YWx1ZT0keyJKb2huIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7ImZpcnN0TmFtZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAubGFiZWw9JHsiTGFzdCBOYW1lIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiRG9lIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAua2V5PSR7Imxhc3ROYW1lIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZ2UifQogICAgICAgICAgICAgIC52YWx1ZT0keyIyOCJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJhZ2UifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKS5mb3JFYWNoKGE9PntsZXQgcz1hLmxhYmVsUG9zaXRpb247Y29uc29sZS5sb2coYElucHV0ICIke2EubGFiZWx9IiBoYXMgbGFiZWwgcG9zaXRpb246ICR7c31gKX0pO2xldCByPXQucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1pbnB1dC10ZXh0W2xhYmVsUG9zaXRpb249ImxlZnQiXScpO3IubGVuZ3RoPjAmJmNvbnNvbGUubG9nKGAke3IubGVuZ3RofSBpbnB1dHMgaGF2ZSBsZWZ0LWFsaWduZWQgbGFiZWxzIGZvciBpbmxpbmUgbGF5b3V0YCl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkxhYmVsIFBvc2l0aW9ucyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgbGFiZWwgcG9zaXRpb25pbmcgb3B0aW9ucyBmb3IgdmFyaW91cyBsYXlvdXRzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkxhYmVsIG9uIFRvcCAoRGVmYXVsdCkifQogICAgICAgICAgICAudmFsdWU9JHsiU3RhbmRhcmQgbGF5b3V0In0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsidG9wIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJMYWJlbCBvbiBMZWZ0In0KICAgICAgICAgICAgLnZhbHVlPSR7IklubGluZSBsYWJlbCJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkNpdHkifQogICAgICAgICAgICAudmFsdWU9JHsiTmV3IFlvcmsifQogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJaSVAgQ29kZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyIxMDAwMSJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVmFsaWRhdGlvbiAmIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmFsaWRhdGlvbiBzdGF0ZXMgYW5kIGlucHV0IGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIEZpZWxkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWRGaWVsZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgRmllbGQifQogICAgICAgICAgICAudmFsdWU9JHsiQ2Fubm90IGVkaXQgdGhpcyJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIHdpdGggVmFsaWRhdGlvbiJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJpbnZhbGlkQCJ9CiAgICAgICAgICAgIC52YWxpZGF0aW9uRnVuY3Rpb249JHt0PT4vXlteXHNAXStAW15cc0BdK1wuW15cc0BdKyQvLnRlc3QodCk/e3ZhbGlkOiEwLG1lc3NhZ2U6IkVtYWlsIGFkZHJlc3MgaXMgdmFsaWQifTp7dmFsaWQ6ITEsbWVzc2FnZToiUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dFtpc1Bhc3N3b3JkQm9vbF0iKS5mb3JFYWNoKHI9PntsZXQgYT1yLHM9aSgoKT0+e2xldCBuPWEuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiaW5wdXQiKTtuJiZjb25zb2xlLmxvZyhgUGFzc3dvcmQgZmllbGQgIiR7YS5sYWJlbH0iIHR5cGU6YCxuLnR5cGUpfSwiY2hlY2tUb2dnbGUiKTtpZihhLnNoYWRvd1Jvb3Qpe2xldCBuPW5ldyBNdXRhdGlvbk9ic2VydmVyKHMpLG89YS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7byYmbi5vYnNlcnZlKG8se2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsidHlwZSJdfSl9fSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkFkdmFuY2VkIEZlYXR1cmVzIn0gLnN1YnRpdGxlPSR7IlBhc3N3b3JkIHZpc2liaWxpdHkgdG9nZ2xlIGFuZCBvdGhlciBhZHZhbmNlZCBmZWF0dXJlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQYXNzd29yZCB3aXRoIFRvZ2dsZSJ9CiAgICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHsibXlTZWN1cmVQYXNzd29yZDEyMyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJDbGljayB0aGUgZXllIGljb24gdG8gc2hvdy9oaWRlIHBhc3N3b3JkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJBUEkgS2V5In0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJzay0xMjM0NTY3ODkwYWJjZGVmIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IktlZXAgdGhpcyBrZXkgc2VjdXJlIGFuZCBuZXZlciBzaGFyZSBpdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iikscj10LnF1ZXJ5U2VsZWN0b3IoIiN0ZXh0LWlucHV0LW91dHB1dCIpO2UmJnImJmUuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9PntyLnRleHRDb250ZW50PWBDdXJyZW50IHZhbHVlOiAiJHtlLmdldFZhbHVlKCl9ImB9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSW50ZXJhY3RpdmUgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJUcnkgdHlwaW5nIGluIHRoZSBpbnB1dCB0byBzZWUgcmVhbC10aW1lIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAubGFiZWw9JHsiRHluYW1pYyBJbnB1dCJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSBzb21ldGhpbmcgaGVyZS4uLiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9InRleHQtaW5wdXQtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiPkN1cnJlbnQgdmFsdWU6ICIiPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBYNCwkbixWcGUsRnA9dSgoKT0+e2ZjKCk7Q2koKTtIanIoKTtfcygpO3ZlKCk7bHQoKTtzcygpO1g0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSwkbj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sVnBlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC10ZXh0IildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W107dmFyIEE9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFRleHQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGM9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHA9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHY9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0seT1bUCh7cmVmbGVjdDohMH0pXSxOPVtQKHthdHRyaWJ1dGU6ITF9KV0sTz1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sQj1bUCh7YXR0cmlidXRlOiExfSldLFg0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InZhbHVlImluIEYsImhhcyIpLGdldDppKEY9PkYudmFsdWUsImdldCIpLHNldDppKChGLFkpPT57Ri52YWx1ZT1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksWDQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Bhc3N3b3JkQm9vbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4iaXNQYXNzd29yZEJvb2wiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5pc1Bhc3N3b3JkQm9vbCwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLmlzUGFzc3dvcmRCb29sPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCxmKSxYNCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dQYXNzd29yZEJvb2wiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InNob3dQYXNzd29yZEJvb2wiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5zaG93UGFzc3dvcmRCb29sLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0Yuc2hvd1Bhc3N3b3JkQm9vbD1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LGgsbSksWDQodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InZhbGlkYXRpb25TdGF0ZSJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLnZhbGlkYXRpb25TdGF0ZSwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnZhbGlkYXRpb25TdGF0ZT1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LGIsZyksWDQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4idmFsaWRhdGlvblRleHQiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri52YWxpZGF0aW9uVGV4dCwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnZhbGlkYXRpb25UZXh0PVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sayxNKSxYNCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25GdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4idmFsaWRhdGlvbkZ1bmN0aW9uImluIEYsImhhcyIpLGdldDppKEY9PkYudmFsaWRhdGlvbkZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YudmFsaWRhdGlvbkZ1bmN0aW9uPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sXyxTKSxYNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpbnRlZ3JhdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJ2aW50ZWdyYXRlZCJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLnZpbnRlZ3JhdGVkLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YudmludGVncmF0ZWQ9WX0sInNldCIpfSxtZXRhZGF0YTokfSxMLEUpLFg0KHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRDb25maXJtZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InZhbGlkQ29uZmlybWVkImluIEYsImhhcyIpLGdldDppKEY9PkYudmFsaWRDb25maXJtZWQsImdldCIpLHNldDppKChGLFkpPT57Ri52YWxpZENvbmZpcm1lZD1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMseiksWDQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCxyKSxBPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1CanI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPSRuKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKCQpe3RoaXMuI2U9JH0jdD0oJG4odGhpcyxsKSwkbih0aGlzLGQsITEpKTtnZXQgaXNQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXNQYXNzd29yZEJvb2woJCl7dGhpcy4jdD0kfSNyPSgkbih0aGlzLGYpLCRuKHRoaXMsaCwhMSkpO2dldCBzaG93UGFzc3dvcmRCb29sKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dQYXNzd29yZEJvb2woJCl7dGhpcy4jcj0kfSNhPSgkbih0aGlzLG0pLCRuKHRoaXMsYix2b2lkIDApKTtnZXQgdmFsaWRhdGlvblN0YXRlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHZhbGlkYXRpb25TdGF0ZSgkKXt0aGlzLiNhPSR9I2k9KCRuKHRoaXMsZyksJG4odGhpcyxrLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHZhbGlkYXRpb25UZXh0KCQpe3RoaXMuI2k9JH0jcz0oJG4odGhpcyxNKSwkbih0aGlzLF8sdm9pZCAwKSk7Z2V0IHZhbGlkYXRpb25GdW5jdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCB2YWxpZGF0aW9uRnVuY3Rpb24oJCl7dGhpcy4jcz0kfSNuPSgkbih0aGlzLFMpLCRuKHRoaXMsTCwhMSkpO2dldCB2aW50ZWdyYXRlZCgpe3JldHVybiB0aGlzLiNufXNldCB2aW50ZWdyYXRlZCgkKXt0aGlzLiNuPSR9I289KCRuKHRoaXMsRSksJG4odGhpcyxDLCExKSk7Z2V0IHZhbGlkQ29uZmlybWVkKCl7cmV0dXJuIHRoaXMuI299c2V0IHZhbGlkQ29uZmlybWVkKCQpe3RoaXMuI289JH12YWxpZFRpbWVvdXQ9JG4odGhpcyx6KTtzdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiBhdXRvOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICBpbnB1dCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KDpmb2N1cykgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBQYXNzd29yZCB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5zaG93UGFzc3dvcmQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMXB4OwogICAgICAgIHRvcDogMjBweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAzOHB4OwogICAgICAgIGhlaWdodDogMzhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA1cHggNXB4IDA7CiAgICAgIH0KCiAgICAgIC5zaG93UGFzc3dvcmQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAvKiBWYWxpZCBjaGVja21hcmsgaWNvbiAqLwogICAgICAudmFsaWRJY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDEwcHg7CiAgICAgICAgdG9wOiAyMHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAudmFsaWRJY29uLnNob3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC52YWxpZEljb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci5pbnZhbGlkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUgLyAwLjEpIiwiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci53YXJuIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjEpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEVycm9yIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJpbnZhbGlkIl0pIGlucHV0IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9ImludmFsaWQiXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4wNSkiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAvKiBXYXJuaW5nIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJ3YXJuIl0pIGlucHV0IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uc3RhdGU9Indhcm4iXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlIC8gMC4wNSkiLCJoc2woMjUgOTUlIDYzJSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAvKiBWYWxpZCBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25zdGF0ZT0idmFsaWQiXSkgaW5wdXQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbnN0YXRlPSJ2YWxpZCJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjA1KSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAvKiBWaXN1YWxseSBpbnRlZ3JhdGVkIG1vZGU6IHNoZWQgY2hyb21lIHRvIGJsZW5kIGludG8gYSBob3N0IGNvbXBvbmVudAogICAgICAgICAoZS5nLiBhIGRlZXMtdGFibGUgY2VsbCBpbiBlZGl0IG1vZGUpLiAqLwogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSBkZWVzLWxhYmVsLAogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICB9CiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KDpmb2N1cyksCiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2hvd1Bhc3N3b3JkIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIGlucHV0IHsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAke3RoaXMuaXNQYXNzd29yZEJvb2w/bTk6ImluaGVyaXQifTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAke3RoaXMuaXNQYXNzd29yZEJvb2w/IjAuNXB4Ijoibm9ybWFsIn07CiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAke3RoaXMuaXNQYXNzd29yZEJvb2w/IjQ4cHgiOnRoaXMudmFsaWRDb25maXJtZWQ/IjQwcHgiOiIxMnB4In07CiAgICAgICAgfQogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dCYmIXRoaXMudmFsaWRDb25maXJtZWQ/cmVgCiAgICAgICAgICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGA6cmVgCiAgICAgICAgICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgICAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSIke3RoaXMuaXNQYXNzd29yZEJvb2wmJiF0aGlzLnNob3dQYXNzd29yZEJvb2w/InBhc3N3b3JkIjoidGV4dCJ9IgogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9IiR7dGhpcy51cGRhdGVWYWx1ZX0iCiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIke3RoaXMubGFiZWw/IiI6IkVudGVyIHRleHQuLi4ifSIKICAgICAgICAgIC8+CiAgICAgICAgICAke3RoaXMuaXNQYXNzd29yZEJvb2w/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3dQYXNzd29yZCIgQGNsaWNrPSR7dGhpcy50b2dnbGVQYXNzd29yZFZpZXd9PgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5zaG93UGFzc3dvcmRCb29sPyJsdWNpZGU6RXllIjoibHVjaWRlOkV5ZU9mZiJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZEljb24gJHt0aGlzLnZhbGlkQ29uZmlybWVkPyJzaG93IjoiIn0iPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpDaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkYXRpb25Db250YWluZXIgJHt0aGlzLnZhbGlkYXRpb25TdGF0ZXx8ImludmFsaWQifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dH0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6d2A8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uQ29udGFpbmVyIj48L2Rpdj5gfQogICAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoKXtpZih0aGlzLnZhbGlkYXRpb25GdW5jdGlvbiYmdGhpcy52YWx1ZSl7bGV0ICQ9dGhpcy52YWxpZGF0aW9uRnVuY3Rpb24odGhpcy52YWx1ZSk7dGhpcy52YWxpZGF0aW9uU3RhdGU9JC52YWxpZD8idmFsaWQiOiJpbnZhbGlkIix0aGlzLnZhbGlkYXRpb25UZXh0PSQubWVzc2FnZXx8IiIsJC52YWxpZCYmKHRoaXMudmFsaWRDb25maXJtZWQ9ITEsdGhpcy52YWxpZFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudmFsaWRDb25maXJtZWQ9ITAsdGhpcy52YWxpZGF0aW9uU3RhdGU9dm9pZCAwfSw1MDApKX19YXN5bmMgdXBkYXRlVmFsdWUoJCl7bGV0IEY9JC50YXJnZXQ7aWYodGhpcy52YWx1ZT1GLnZhbHVlLHRoaXMudmFsaWRhdGlvbkZ1bmN0aW9uKXtsZXQgWT10aGlzLnZhbGlkYXRpb25GdW5jdGlvbih0aGlzLnZhbHVlKTt0aGlzLnZhbGlkYXRpb25TdGF0ZT1ZLnZhbGlkPyJ2YWxpZCI6ImludmFsaWQiLHRoaXMudmFsaWRhdGlvblRleHQ9WS5tZXNzYWdlfHwiIixZLnZhbGlkPyh0aGlzLnZhbGlkQ29uZmlybWVkPSExLGNsZWFyVGltZW91dCh0aGlzLnZhbGlkVGltZW91dCksdGhpcy52YWxpZFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudmFsaWRDb25maXJtZWQ9ITAsdGhpcy52YWxpZGF0aW9uU3RhdGU9dm9pZCAwfSw1MDApKTooY2xlYXJUaW1lb3V0KHRoaXMudmFsaWRUaW1lb3V0KSx0aGlzLnZhbGlkQ29uZmlybWVkPSExKX10aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0ICQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IiksRj0kLnNlbGVjdGlvblN0YXJ0IT09JC5zZWxlY3Rpb25FbmQ7cmV0dXJuW3tuYW1lOiJDdXQiLGljb25OYW1lOiJsdWNpZGU6U2Npc3NvcnMiLHNob3J0Y3V0OiJDbWQrWCIsZGlzYWJsZWQ6IUYsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBZPXRoaXMudmFsdWUuc3Vic3RyaW5nKCQuc2VsZWN0aW9uU3RhcnQsJC5zZWxlY3Rpb25FbmQpO2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KFkpO2xldCBHPSQuc2VsZWN0aW9uU3RhcnQ7dGhpcy52YWx1ZT10aGlzLnZhbHVlLnN1YnN0cmluZygwLEcpK3RoaXMudmFsdWUuc3Vic3RyaW5nKCQuc2VsZWN0aW9uRW5kKSwkLnZhbHVlPXRoaXMudmFsdWUsJC5zZXRTZWxlY3Rpb25SYW5nZShHLEcpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToibHVjaWRlOkNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsZGlzYWJsZWQ6IUYsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBZPXRoaXMudmFsdWUuc3Vic3RyaW5nKCQuc2VsZWN0aW9uU3RhcnQsJC5zZWxlY3Rpb25FbmQpO2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KFkpfSwiYWN0aW9uIil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6Imx1Y2lkZTpDbGlwYm9hcmRQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246aShhc3luYygpPT57bGV0IFk9YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC5yZWFkVGV4dCgpLEc9JC5zZWxlY3Rpb25TdGFydCxaPSQuc2VsZWN0aW9uRW5kO3RoaXMudmFsdWU9dGhpcy52YWx1ZS5zdWJzdHJpbmcoMCxHKStZK3RoaXMudmFsdWUuc3Vic3RyaW5nKFopLCQudmFsdWU9dGhpcy52YWx1ZSwkLnNldFNlbGVjdGlvblJhbmdlKEcrWS5sZW5ndGgsRytZLmxlbmd0aCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTZWxlY3QgQWxsIixpY29uTmFtZToibHVjaWRlOlRleHRDdXJzb3JJbnB1dCIsc2hvcnRjdXQ6IkNtZCtBIixhY3Rpb246aShhc3luYygpPT57JC5zZWxlY3QoKX0sImFjdGlvbiIpfV19Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZSgkKXt0aGlzLnZhbHVlPSR9YXN5bmMgdG9nZ2xlUGFzc3dvcmRWaWV3KCl7dGhpcy5zaG93UGFzc3dvcmRCb29sPSF0aGlzLnNob3dQYXNzd29yZEJvb2x9YXN5bmMgZm9jdXMoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpfWFzeW5jIGJsdXIoKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5ibHVyKCl9c3RhdGljeyRuKGEscil9fTtyZXR1cm4gQT1hfSkoKX0pO3ZhciBxanIsVmpyPXUoKCk9Pnt2ZSgpO3dhKCk7d24oKTtxanI9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByb2R1Y3QtZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAyMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5LXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC10b3RhbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3RlZC1wcm9kdWN0cyB7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgUHJvZHVjdCBDYXJkcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgcHJvZHVjdCBkaXNwbGF5IHdpdGggdmFyaW91cyBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiV2lyZWxlc3MgQmx1ZXRvb3RoIEhlYWRwaG9uZXMiLGNhdGVnb3J5OiJBdWRpbyIsZGVzY3JpcHRpb246IlByZW1pdW0gc291bmQgcXVhbGl0eSB3aXRoIGFjdGl2ZSBub2lzZSBjYW5jZWxsYXRpb24iLHByaWNlOjE0OS45OSxvcmlnaW5hbFByaWNlOjE5OS45OSxpY29uTmFtZToibHVjaWRlOmhlYWRwaG9uZXMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNtYXJ0IFdhdGNoIFNlcmllcyA3IixjYXRlZ29yeToiV2VhcmFibGVzIixkZXNjcmlwdGlvbjoiVHJhY2sgeW91ciBmaXRuZXNzIGFuZCBzdGF5IGNvbm5lY3RlZCBvbiB0aGUgZ28iLHByaWNlOjM5OSxpY29uTmFtZToibHVjaWRlOndhdGNoIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJVU0ItQyBIdWIiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIscHJpY2U6NDkuOTksaWNvbk5hbWU6Imx1Y2lkZTp1c2IiLGluU3RvY2s6ITF9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIFNob3BwaW5nIENhcnQifSAuc3VidGl0bGU9JHsiUHJvZHVjdCBjYXJkcyB3aXRoIGR5bmFtaWMgY2FydCBjYWxjdWxhdGlvbiJ9IC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT1be2lkOiJsYXB0b3AiLGVsZW1lbnQ6bnVsbCxkYXRhOntuYW1lOidNYWNCb29rIFBybyAxNCInLGNhdGVnb3J5OiJDb21wdXRlcnMiLGRlc2NyaXB0aW9uOiJNMyBQcm8gY2hpcCB3aXRoIDE4R0IgUkFNIixwcmljZToxOTk5LG9yaWdpbmFsUHJpY2U6MjE5OSxpY29uTmFtZToibHVjaWRlOmxhcHRvcCJ9fSx7aWQ6ImlwYWQiLGVsZW1lbnQ6bnVsbCxkYXRhOntuYW1lOiJpUGFkIEFpciIsY2F0ZWdvcnk6IlRhYmxldHMiLGRlc2NyaXB0aW9uOicxMC45IiBMaXF1aWQgUmV0aW5hIGRpc3BsYXknLHByaWNlOjU5OSxpY29uTmFtZToibHVjaWRlOnRhYmxldCJ9fSx7aWQ6ImtleWJvYXJkIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZToiTWFnaWMgS2V5Ym9hcmQiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IldpcmVsZXNzIGtleWJvYXJkIHdpdGggVG91Y2ggSUQiLHByaWNlOjE0OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19XSxyPWkoKCk9PntsZXQgYT0wLHM9W107ZS5mb3JFYWNoKG89PntsZXQgbD10LnF1ZXJ5U2VsZWN0b3IoYCMke28uaWR9YCk7aWYobCYmbC5xdWFudGl0eT4wKXtsZXQgYz1vLmRhdGEucHJpY2UqbC5xdWFudGl0eTthKz1jLHMucHVzaChgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3Bhbj4ke28uZGF0YS5uYW1lfSAoJHtsLnF1YW50aXR5fSk8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuPiQke2MudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX19KTtsZXQgbj10LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1jYXJ0LXN1bW1hcnkiKTtuJiYobi5pbm5lckhUTUw9YAogICAgICAgICAgICAgICR7cy5qb2luKCIiKX0KICAgICAgICAgICAgICAke3MubGVuZ3RoPT09MD8nPGRpdiBjbGFzcz0iY2FydC1pdGVtIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzk5OTsiPllvdXIgY2FydCBpcyBlbXB0eTwvZGl2Pic6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC10b3RhbCI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Ub3RhbDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2EudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfSwidXBkYXRlQ2FydFN1bW1hcnkiKTtzZXRUaW1lb3V0KHIsMTAwKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQiKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoInF1YW50aXR5Q2hhbmdlIixyKX0pfX0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJsYXB0b3AiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOidNYWNCb29rIFBybyAxNCInLGNhdGVnb3J5OiJDb21wdXRlcnMiLGRlc2NyaXB0aW9uOiJNMyBQcm8gY2hpcCB3aXRoIDE4R0IgUkFNIixwcmljZToxOTk5LG9yaWdpbmFsUHJpY2U6MjE5OSxpY29uTmFtZToibHVjaWRlOmxhcHRvcCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0iaXBhZCIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6ImlQYWQgQWlyIixjYXRlZ29yeToiVGFibGV0cyIsZGVzY3JpcHRpb246JzEwLjkiIExpcXVpZCBSZXRpbmEgZGlzcGxheScscHJpY2U6NTk5LGljb25OYW1lOiJsdWNpZGU6dGFibGV0In19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezB9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJrZXlib2FyZCIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6Ik1hZ2ljIEtleWJvYXJkIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJXaXJlbGVzcyBrZXlib2FyZCB3aXRoIFRvdWNoIElEIixwcmljZToxNDksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1zdW1tYXJ5Ij4KICAgICAgICAgIDxoMyBjbGFzcz0iY2FydC1zdW1tYXJ5LXRpdGxlIj5TaG9wcGluZyBDYXJ0PC9oMz4KICAgICAgICAgIDxkaXYgaWQ9ImludGVyYWN0aXZlLWNhcnQtc3VtbWFyeSI+CiAgICAgICAgICAgIDwhLS0gRHluYW1pY2FsbHkgdXBkYXRlZCAtLT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2VsZWN0YWJsZSBQcm9kdWN0IENhcmRzIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNhcmRzIG9yIGNoZWNrYm94ZXMgdG8gc2VsZWN0IHByb2R1Y3RzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTb255IEFscGhhIDcgSVYiLGNhdGVnb3J5OiJDYW1lcmFzIixkZXNjcmlwdGlvbjoiRnVsbC1mcmFtZSBtaXJyb3JsZXNzIGNhbWVyYSIscHJpY2U6MjQ5OCxpY29uTmFtZToibHVjaWRlOmNhbWVyYSJ9fQogICAgICAgICAgICAuc2VsZWN0YWJsZT0keyEwfQogICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHshMX0KICAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0ke3Q9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2lmKGUpe2xldCByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRbc2VsZWN0YWJsZV0iKSxhPVtdO3IuZm9yRWFjaChzPT57cy5zZWxlY3RlZCYmYS5wdXNoKHMucHJvZHVjdERhdGEubmFtZSl9KSxlLnRleHRDb250ZW50PWEubGVuZ3RoPjA/YFNlbGVjdGVkOiAke2Euam9pbigiLCAiKX1gOiJObyBwcm9kdWN0cyBzZWxlY3RlZCJ9fX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkRKSSBNaW5pIDMgUHJvIixjYXRlZ29yeToiRHJvbmVzIixkZXNjcmlwdGlvbjoiTGlnaHR3ZWlnaHQgZHJvbmUgd2l0aCA0SyBjYW1lcmEiLHByaWNlOjc1OSxpY29uTmFtZToibHVjaWRlOnBsYW5lIn19CiAgICAgICAgICAgIC5zZWxlY3RhYmxlPSR7ITB9CiAgICAgICAgICAgIC5zaG93UXVhbnRpdHlTZWxlY3Rvcj0keyExfQogICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7aWYoZSl7bGV0IHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXSIpLGE9W107ci5mb3JFYWNoKHM9PntzLnNlbGVjdGVkJiZhLnB1c2gocy5wcm9kdWN0RGF0YS5uYW1lKX0pLGUudGV4dENvbnRlbnQ9YS5sZW5ndGg+MD9gU2VsZWN0ZWQ6ICR7YS5qb2luKCIsICIpfWA6Ik5vIHByb2R1Y3RzIHNlbGVjdGVkIn19fQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiR29Qcm8gSEVSTzEyIixjYXRlZ29yeToiQWN0aW9uIENhbWVyYXMiLGRlc2NyaXB0aW9uOiI1LjNLIHZpZGVvIHdpdGggSHlwZXJTbW9vdGggNi4wIixwcmljZTozOTksb3JpZ2luYWxQcmljZTo0NDksaWNvbk5hbWU6Imx1Y2lkZTp2aWRlbyJ9fQogICAgICAgICAgICAuc2VsZWN0YWJsZT0keyEwfQogICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHshMX0KICAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0ke3Q9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2lmKGUpe2xldCByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRbc2VsZWN0YWJsZV0iKSxhPVtdO3IuZm9yRWFjaChzPT57cy5zZWxlY3RlZCYmYS5wdXNoKHMucHJvZHVjdERhdGEubmFtZSl9KSxlLnRleHRDb250ZW50PWEubGVuZ3RoPjA/YFNlbGVjdGVkOiAke2Euam9pbigiLCAiKX1gOiJObyBwcm9kdWN0cyBzZWxlY3RlZCJ9fX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0ZWQtcHJvZHVjdHMiIGlkPSJzZWxlY3Rpb24tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgTm8gcHJvZHVjdHMgc2VsZWN0ZWQKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlByb2R1Y3QgVmFyaWF0aW9ucyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTGltaXRlZCBFZGl0aW9uIFNuZWFrZXJzIixjYXRlZ29yeToiRm9vdHdlYXIiLGRlc2NyaXB0aW9uOiJFeGNsdXNpdmUgY29sb3J3YXkgLSBPbmx5IDUwMCBwYWlycyIscHJpY2U6Mjk5LGljb25OYW1lOiJsdWNpZGU6Zm9vdHByaW50cyIsaW5TdG9jazohMSxzdG9ja1RleHQ6IlNvbGQgT3V0In19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezB9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJNaW5pbWFsaXN0IFdhbGxldCIscHJpY2U6MzkuOTksaWNvbk5hbWU6Imx1Y2lkZTp3YWxsZXQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlByZW1pdW0gQ29mZmVlIEJlYW5zIixjYXRlZ29yeToiRm9vZCAmIEJldmVyYWdlIixkZXNjcmlwdGlvbjoiU2luZ2xlIG9yaWdpbiwgbWVkaXVtIHJvYXN0IixwcmljZToxOC41LGljb25OYW1lOiJsdWNpZGU6Y29mZmVlIixjdXJyZW5jeToiXHUyMEFDIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezJ9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgRnksbWMsampyLE42dD11KCgpPT57dmUoKTtWanIoKTtsdCgpO25zKCk7Rnk9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG1jPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxqanI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTaG9wcGluZ1Byb2R1Y3RjYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sYz1bUCh7dHlwZTpOdW1iZXJ9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sRnkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm9kdWN0RGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4icHJvZHVjdERhdGEiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5wcm9kdWN0RGF0YSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnByb2R1Y3REYXRhPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbyxsKSxGeSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InF1YW50aXR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJxdWFudGl0eSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnF1YW50aXR5LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MucXVhbnRpdHk9T30sInNldCIpfSxtZXRhZGF0YTpffSxkLGYpLEZ5KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1F1YW50aXR5U2VsZWN0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNob3dRdWFudGl0eVNlbGVjdG9yImluIFMsImhhcyIpLGdldDppKFM9PlMuc2hvd1F1YW50aXR5U2VsZWN0b3IsImdldCIpLHNldDppKChTLE8pPT57Uy5zaG93UXVhbnRpdHlTZWxlY3Rvcj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGgsbSksRnkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RhYmxlImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0YWJsZSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnNlbGVjdGFibGU9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEZ5KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0ZWQsImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3RlZD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGssTSksRnkobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxyKSxOPWE9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1xanI7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT1tYyh0aGlzLG8se25hbWU6IlByb2R1Y3QgTmFtZSIscHJpY2U6MH0pO2dldCBwcm9kdWN0RGF0YSgpe3JldHVybiB0aGlzLiNlfXNldCBwcm9kdWN0RGF0YShfKXt0aGlzLiNlPV99I3Q9KG1jKHRoaXMsbCksbWModGhpcyxkLDApKTtnZXQgcXVhbnRpdHkoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcXVhbnRpdHkoXyl7dGhpcy4jdD1ffSNyPShtYyh0aGlzLGYpLG1jKHRoaXMsaCwhMCkpO2dldCBzaG93UXVhbnRpdHlTZWxlY3Rvcigpe3JldHVybiB0aGlzLiNyfXNldCBzaG93UXVhbnRpdHlTZWxlY3RvcihfKXt0aGlzLiNyPV99I2E9KG1jKHRoaXMsbSksbWModGhpcyxiLCExKSk7Z2V0IHNlbGVjdGFibGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0YWJsZShfKXt0aGlzLiNhPV99I2k9KG1jKHRoaXMsZyksbWModGhpcyxrLCExKSk7Z2V0IHNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkKF8pe3RoaXMuI2k9X31zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNlbGVjdGFibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnNlbGVjdGVkOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94LmNoZWNrZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWhlYWRlci1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2F0ZWdvcnkgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucHJvZHVjdC1ib2R5IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJvZHVjdC1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5wcm9kdWN0LWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucHJvZHVjdC1wcmljZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAucHJpY2UtY3VycmVudCB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnByaWNlLW9yaWdpbmFsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5pbi1zdG9jayB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5vdXQtb2Ytc3RvY2sgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXR7bmFtZTpfLGNhdGVnb3J5OlMsZGVzY3JpcHRpb246TyxwcmljZTpMLG9yaWdpbmFsUHJpY2U6RSxjdXJyZW5jeTpCPSIkIixpblN0b2NrOkM9ITAsc3RvY2tUZXh0Ono9Qz8iSW4gU3RvY2siOiJPdXQgb2YgU3RvY2siLGltYWdlVXJsOkEsaWNvbk5hbWU6JD0ibHVjaWRlOnBhY2thZ2UifT10aGlzLnByb2R1Y3REYXRhLEY9aShZPT5gJHtCfSR7WS50b0ZpeGVkKDIpfWAsImZvcm1hdFByaWNlIik7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUKICAgICAgICBjbGFzcz0iJHt0aGlzLnNlbGVjdGFibGU/InNlbGVjdGFibGUiOiIifSAke3RoaXMuc2VsZWN0ZWQ/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDYXJkQ2xpY2t9CiAgICAgID4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InByb2R1Y3QtaGVhZGVyLWJhciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1uYW1lIj4ke199PC9zcGFuPgogICAgICAgICAgJHtTP3dgPHNwYW4gY2xhc3M9InByb2R1Y3QtY2F0ZWdvcnkiPiR7U308L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWJvZHkiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1pbWFnZSI+CiAgICAgICAgICAgICR7QT93YAogICAgICAgICAgICAgIDxpbWcgc3JjPSIke0F9IiBhbHQ9IiR7X30iPgogICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyR9PjwvZGVlcy1pY29uPgogICAgICAgICAgICBgfQogICAgICAgICAgICAke3RoaXMuc2VsZWN0YWJsZT93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJzZWxlY3Rpb24tY2hlY2tib3ggJHt0aGlzLnNlbGVjdGVkPyJjaGVja2VkIjoiIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHtZPT57WS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnQiPgogICAgICAgICAgICAke08/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWRlc2NyaXB0aW9uIj4ke099PC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0b2NrLXN0YXR1cyAke0M/ImluLXN0b2NrIjoib3V0LW9mLXN0b2NrIn0iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtDPyJsdWNpZGU6Y2hlY2stY2lyY2xlIjoibHVjaWRlOngtY2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgJHt6fQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0icHJvZHVjdC1mb290ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1wcmljZSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1jdXJyZW50Ij4ke0YoTCl9PC9zcGFuPgogICAgICAgICAgICAke0UmJkU+TD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1vcmlnaW5hbCI+JHtGKEUpfTwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLnNob3dRdWFudGl0eVNlbGVjdG9yP3dgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnF1YW50aXR5fQogICAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7WT0+e3RoaXMucXVhbnRpdHk9WS5kZXRhaWwuZ2V0VmFsdWUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJxdWFudGl0eUNoYW5nZSIse2RldGFpbDp7cXVhbnRpdHk6dGhpcy5xdWFudGl0eSxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWhhbmRsZUNhcmRDbGljaygpe3RoaXMuc2VsZWN0YWJsZSYmKHRoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpe3RoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG1jKHRoaXMsTSl9c3RhdGlje21jKGEscil9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBVanIsV2pyPXUoKCk9Pnt2ZSgpO042dCgpO1Vqcj1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3JlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hvcHBpbmctZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAyMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5LXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC10b3RhbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBRdWFudGl0eSBTZWxlY3RvciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgcXVhbnRpdHkgaW5wdXQgd2l0aCBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2VsZWN0IHRoZSBkZXNpcmVkIHF1YW50aXR5In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ik1pbmltdW0gb3JkZXIgcXVhbnRpdHkgaXMgMSBpdGVtIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJJdGVtcyBpbiBDYXJ0In0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkanVzdCB0aGUgcXVhbnRpdHkgb2YgaXRlbXMifQogICAgICAgICAgICAudmFsdWU9JHszfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2hvcHBpbmcgQ2FydCJ9IC5zdWJ0aXRsZT0keyJNb2Rlcm4gZS1jb21tZXJjZSBwcm9kdWN0IGNhcmRzIHdpdGggaW50ZXJhY3RpdmUgcXVhbnRpdHkgc2VsZWN0b3JzIn0gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPWkoKCk9PntsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIiNoZWFkcGhvbmVzLXF0eSIpLGE9dC5xdWVyeVNlbGVjdG9yKCIjbW91c2UtcXR5Iikscz10LnF1ZXJ5U2VsZWN0b3IoIiNrZXlib2FyZC1xdHkiKSxuPXI/LnF1YW50aXR5fHwwLG89YT8ucXVhbnRpdHl8fDAsbD1zPy5xdWFudGl0eXx8MCxjPTM0OS45OSpuLGQ9OTkuOTkqbyxmPTc5Ljk5KmwscD1jK2QrZixoPXQucXVlcnlTZWxlY3RvcigiI2NhcnQtc3VtbWFyeS1jb250ZW50Iik7aCYmKGguaW5uZXJIVE1MPWAKICAgICAgICAgICAgICAke24+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPlNvbnkgV0gtMTAwMFhNNSAoJHtufSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtjLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtvPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Mb2dpdGVjaCBNWCBNYXN0ZXIgM1MgKCR7b30pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7ZC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7bD4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+S2V5Y2hyb24gSzIgKCR7bH0pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7Zi50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7cD09PTA/JzxkaXYgY2xhc3M9ImNhcnQtaXRlbSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM5OTk7Ij5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4nOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtdG90YWwiPgogICAgICAgICAgICAgICAgPHNwYW4+VG90YWw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtwLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0sInVwZGF0ZUNhcnRTdW1tYXJ5Iik7c2V0VGltZW91dChlLDEwMCksdC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJxdWFudGl0eUNoYW5nZSIsZSl9KX19PgogICAgICAgIDxkaXYgY2xhc3M9InNob3BwaW5nLWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImhlYWRwaG9uZXMtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU29ueSBXSC0xMDAwWE01IFdpcmVsZXNzIEhlYWRwaG9uZXMiLGNhdGVnb3J5OiJBdWRpbyIsZGVzY3JpcHRpb246IkluZHVzdHJ5LWxlYWRpbmcgbm9pc2UgY2FuY2VsaW5nIHdpdGggQXV0byBOQyBPcHRpbWl6ZXIiLHByaWNlOjM0OS45OSxvcmlnaW5hbFByaWNlOjM5OS45OSxpY29uTmFtZToibHVjaWRlOmhlYWRwaG9uZXMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJtb3VzZS1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJMb2dpdGVjaCBNWCBNYXN0ZXIgM1MiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IlBlcmZvcm1hbmNlIHdpcmVsZXNzIG1vdXNlIHdpdGggdWx0cmEtZmFzdCBzY3JvbGxpbmciLHByaWNlOjk5Ljk5LGljb25OYW1lOiJsdWNpZGU6bW91c2UtcG9pbnRlciJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImtleWJvYXJkLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IktleWNocm9uIEsyIFdpcmVsZXNzIE1lY2hhbmljYWwgS2V5Ym9hcmQiLGNhdGVnb3J5OiJLZXlib2FyZHMiLGRlc2NyaXB0aW9uOiJDb21wYWN0IDc1JSBsYXlvdXQgd2l0aCBob3Qtc3dhcHBhYmxlIHN3aXRjaGVzIixwcmljZTo3OS45OSxvcmlnaW5hbFByaWNlOjk0Ljk5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtc3VtbWFyeSI+CiAgICAgICAgICA8aDMgY2xhc3M9ImNhcnQtc3VtbWFyeS10aXRsZSI+T3JkZXIgU3VtbWFyeTwvaDM+CiAgICAgICAgICA8ZGl2IGlkPSJjYXJ0LXN1bW1hcnktY29udGVudCI+CiAgICAgICAgICAgIDwhLS0gQ29udGVudCB3aWxsIGJlIGR5bmFtaWNhbGx5IHVwZGF0ZWQgLS0+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24gYW5kIHJlc3RyaWN0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJOdW1iZXIgb2YgTGljZW5zZXMifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2VsZWN0IGhvdyBtYW55IGxpY2Vuc2VzIHlvdSBuZWVkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0kezF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiRml4ZWQgUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiVGhpcyBxdWFudGl0eSBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHs1fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiT3JkZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBvcmRlciBmb3JtIHdpdGggcXVhbnRpdHkgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkN1c3RvbWVyIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyBQbGFuIiwiUHJvIFBsYW4iLCJFbnRlcnByaXNlIFBsYW4iXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiTnVtYmVyIG9mIGxpY2Vuc2VzIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWNpYWwgSW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBHanIsTzZ0LGpwZSxSNnQ9dSgoKT0+e3ZlKCk7TXIoKTtDaSgpO1dqcigpO2x0KCk7R2pyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxPNnQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGpwZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvciIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRRdWFudGl0eVNlbGVjdG9yIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpOdW1iZXJ9KV0sR2pyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InZhbHVlImluIGYsImhhcyIpLGdldDppKGY9PmYudmFsdWUsImdldCIpLHNldDppKChmLHApPT57Zi52YWx1ZT1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksR2pyKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89VWpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1PNnQodGhpcyxvLDEpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgICA6aG9zdCB7CiAgICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lciB7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgcGFkZGluZzogMDsKICAgICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3RvciB7CiAgICAgICAgICBmbGV4OiAwIDAgNDBweDsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3Rvcjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yOmFjdGl2ZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDExJSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IubWludXMgewogICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3Rvci5wbHVzIHsKICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgfQoKICAgICAgICAvKiBLZXlib2FyZCBuYXZpZ2F0aW9uIGZvY3VzIHN0eWxlcyAqLwogICAgICAgIC5zZWxlY3Rvcjpmb2N1cyB7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgei1pbmRleDogMTsKICAgICAgICB9CgogICAgICAgIC8qIE1pbiB2YWx1ZSBzdGF0ZSAqLwogICAgICAgIC5xdWFudGl0eS1jb250YWluZXJbZGF0YS1taW49InRydWUiXSAuc2VsZWN0b3IubWludXMgewogICAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXJbZGF0YS1taW49InRydWUiXSAuc2VsZWN0b3IubWludXM6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB9CgogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIDxkaXYgCiAgICAgICAgICBjbGFzcz0icXVhbnRpdHktY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgIGRhdGEtbWluPSIke3RoaXMudmFsdWU8PTB9IgogICAgICAgID4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJzZWxlY3RvciBtaW51cyIgCiAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+e3RoaXMuZGVjcmVhc2UoKX19IgogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7ZD0+eyhkLmtleT09PSJFbnRlciJ8fGQua2V5PT09IiAiKSYmKGQucHJldmVudERlZmF1bHQoKSx0aGlzLmRlY3JlYXNlKCkpfX0iCiAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgYXJpYS1sYWJlbD0iRGVjcmVhc2UgcXVhbnRpdHkiCiAgICAgICAgICA+4oiSPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJxdWFudGl0eSIgYXJpYS1saXZlPSJwb2xpdGUiIGFyaWEtYXRvbWljPSJ0cnVlIj4ke3RoaXMudmFsdWV9PC9kaXY+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0ic2VsZWN0b3IgcGx1cyIgCiAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+e3RoaXMuaW5jcmVhc2UoKX19IgogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7ZD0+eyhkLmtleT09PSJFbnRlciJ8fGQua2V5PT09IiAiKSYmKGQucHJldmVudERlZmF1bHQoKSx0aGlzLmluY3JlYXNlKCkpfX0iCiAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgYXJpYS1sYWJlbD0iSW5jcmVhc2UgcXVhbnRpdHkiCiAgICAgICAgICA+KzwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aW5jcmVhc2UoKXt0aGlzLmRpc2FibGVkfHwodGhpcy52YWx1ZSsrLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1kZWNyZWFzZSgpeyF0aGlzLmRpc2FibGVkJiZ0aGlzLnZhbHVlPjAmJih0aGlzLnZhbHVlLS0sdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoZCl7dGhpcy52YWx1ZT1kfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxPNnQodGhpcyxsKX1zdGF0aWN7TzZ0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBZanIsS2pyPXUoKCk9Pnt2ZSgpO3dhKCk7d24oKTtZanI9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtZGlzcGxheSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJhZGlvIEdyb3VwcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgc3RyaW5nIG9wdGlvbnMgZm9yIGNvbW1vbiB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJTdWJzY3JpcHRpb24gUGxhbiJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJhc2ljIC0gJDkvbW9udGgiLCJQcm8gLSAkMjkvbW9udGgiLCJFbnRlcnByaXNlIC0gJDk5L21vbnRoIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlBybyAtICQyOS9tb250aCJ9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB5b3VyIHN1YnNjcmlwdGlvbiB0aWVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAgIC5sYWJlbD0keyJQcmlvcml0eSBMZXZlbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkhpZ2giLCJNZWRpdW0iLCJMb3ciXX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTWVkaXVtIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJSYWRpbyBncm91cHMgd2l0aCBob3Jpem9udGFsIGFycmFuZ2VtZW50In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkRvIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcz8ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siWWVzIiwiTm8iLCJNYXliZSJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiWWVzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFeHBlcmllbmNlIExldmVsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJlZ2lubmVyIiwiSW50ZXJtZWRpYXRlIiwiRXhwZXJ0Il19CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbnRlcm1lZGlhdGUifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IHlvdXIgZXhwZXJpZW5jZSBsZXZlbCB3aXRoIHdlYiBkZXZlbG9wbWVudCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBBZHZhbmNlZCBPcHRpb25zIn0gLnN1YnRpdGxlPSR7IlVzaW5nIG9iamVjdCBmb3JtYXQgd2l0aCBrZXlzIGFuZCBwYXlsb2FkcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgIGlkPSJhZHZhbmNlZC1yYWRpbyIKICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUmVnaW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMgKFVTIEVhc3QpIixrZXk6InVzLWVhc3QiLHBheWxvYWQ6e3JlZ2lvbjoidXMtZWFzdC0xIixsYXRlbmN5OjIwfX0se29wdGlvbjoiRXVyb3BlIChGcmFua2Z1cnQpIixrZXk6ImV1LWNlbnRyYWwiLHBheWxvYWQ6e3JlZ2lvbjoiZXUtY2VudHJhbC0xIixsYXRlbmN5OjUwfX0se29wdGlvbjoiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpIixrZXk6ImFwLXNvdXRoZWFzdCIscGF5bG9hZDp7cmVnaW9uOiJhcC1zb3V0aGVhc3QtMSIsbGF0ZW5jeToxMjB9fV19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZXUtY2VudHJhbCJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIHRoZSBjbG9zZXN0IHJlZ2lvbiBmb3Igb3B0aW1hbCBwZXJmb3JtYW5jZSJ9CiAgICAgICAgICBAY2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWdpb24tcmVzdWx0Iik7ZSYmKGUudGV4dENvbnRlbnQ9IlNlbGVjdGVkOiAiK0pTT04uc3RyaW5naWZ5KHQuZGV0YWlsLnZhbHVlLG51bGwsMikpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPGRpdiBpZD0icmVnaW9uLXJlc3VsdCIgY2xhc3M9InJlc3VsdC1kaXNwbGF5Ij5TZWxlY3RlZDogeyAicmVnaW9uIjogImV1LWNlbnRyYWwtMSIsICJsYXRlbmN5IjogNTAgfTwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3VydmV5IEV4YW1wbGUifSAuc3VidGl0bGU9JHsiTXVsdGlwbGUgcmFkaW8gZ3JvdXBzIGZvciBzdXJ2ZXlzIGFuZCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkhvdyBzYXRpc2ZpZWQgYXJlIHlvdT8ifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7WyJWZXJ5IFNhdGlzZmllZCIsIlNhdGlzZmllZCIsIk5ldXRyYWwiLCJEaXNzYXRpc2ZpZWQiLCJWZXJ5IERpc3NhdGlzZmllZCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJTYXRpc2ZpZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IldvdWxkIHlvdSByZWNvbW1lbmQgdXM/In0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRGVmaW5pdGVseSIsIlByb2JhYmx5IiwiTm90IFN1cmUiLCJQcm9iYWJseSBOb3QiLCJEZWZpbml0ZWx5IE5vdCJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcm9iYWJseSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gU3RhdGVzICYgVmFsaWRhdGlvbiJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCB2YWxpZGF0aW9uIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgU2VsZWN0aW9uIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siT3B0aW9uIEEiLCJPcHRpb24gQiIsIk9wdGlvbiBDIl19CiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIFN0YXRlIn0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1siRGlzYWJsZWQgT3B0aW9uIDEiLCJEaXNhYmxlZCBPcHRpb24gMiIsIkRpc2FibGVkIE9wdGlvbiAzIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRpc2FibGVkIE9wdGlvbiAyIn0KICAgICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiBwYXR0ZXJucyBpbiBhcHBsaWNhdGlvbiBzZXR0aW5ncyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJUaGVtZSBQcmVmZXJlbmNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTGlnaHQgVGhlbWUiLGtleToibGlnaHQiLHBheWxvYWQ6ImxpZ2h0In0se29wdGlvbjoiRGFyayBUaGVtZSIsa2V5OiJkYXJrIixwYXlsb2FkOiJkYXJrIn0se29wdGlvbjoiU3lzdGVtIERlZmF1bHQiLGtleToic3lzdGVtIixwYXlsb2FkOiJhdXRvIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZGFyayJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgaG93IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgYXBwZWFyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb24gRnJlcXVlbmN5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkFsbCBOb3RpZmljYXRpb25zIiwiSW1wb3J0YW50IE9ubHkiLCJOb25lIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbXBvcnRhbnQgT25seSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDb250cm9sIGhvdyBvZnRlbiB5b3UgcmVjZWl2ZSBub3RpZmljYXRpb25zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJMYW5ndWFnZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbmdsaXNoIiwiR2VybWFuIiwiRnJlbmNoIiwiU3BhbmlzaCIsIkphcGFuZXNlIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmdsaXNoIn0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiV29ya3Mgc2VhbWxlc3NseSB3aXRoIGRlZXMtZm9ybSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IE5hbWUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJwcm9kdWN0TmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgQ2F0ZWdvcnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1siRWxlY3Ryb25pY3MiLCJDbG90aGluZyIsIkJvb2tzIiwiSG9tZSAmIEdhcmRlbiIsIlNwb3J0cyJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJjYXRlZ29yeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkNvbmRpdGlvbiJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJOZXciLCJMaWtlIE5ldyIsIkdvb2QiLCJGYWlyIiwiUG9vciJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7ImNvbmRpdGlvbiJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJOZXcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJTaGlwcGluZyBTcGVlZCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlN0YW5kYXJkICg1LTcgZGF5cykiLGtleToic3RhbmRhcmQiLHBheWxvYWQ6e2RheXM6NyxwcmljZTowfX0se29wdGlvbjoiRXhwcmVzcyAoMi0zIGRheXMpIixrZXk6ImV4cHJlc3MiLHBheWxvYWQ6e2RheXM6MyxwcmljZToxMH19LHtvcHRpb246Ik92ZXJuaWdodCIsa2V5OiJvdmVybmlnaHQiLHBheWxvYWQ6e2RheXM6MSxwcmljZToyNX19XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7InN0YW5kYXJkIn0KICAgICAgICAgICAgLmtleT0keyJzaGlwcGluZyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlN1Ym1pdCBQcm9kdWN0In0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgZ3RlLEo0LFVwZSxXcGU9dSgoKT0+e3ZlKCk7Q2koKTtLanIoKTtsdCgpO2d0ZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sSjQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFVwZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtcmFkaW9ncm91cCIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRSYWRpb2dyb3VwIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKCldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sZ3RlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ib3B0aW9ucyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLm9wdGlvbnMsImdldCIpLHNldDppKChNLE4pPT57TS5vcHRpb25zPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxndGUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE9wdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic2VsZWN0ZWRPcHRpb24iaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5zZWxlY3RlZE9wdGlvbiwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnNlbGVjdGVkT3B0aW9uPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxndGUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXJlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImRpcmVjdGlvbiJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmRpcmVjdGlvbiwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmRpcmVjdGlvbj1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGgsbSksZ3RlKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJ2YWxpZGF0aW9uU3RhdGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS52YWxpZGF0aW9uU3RhdGUsImdldCIpLHNldDppKChNLE4pPT57TS52YWxpZGF0aW9uU3RhdGU9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLGd0ZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPVlqcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9SjQodGhpcyxvLFtdKTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBvcHRpb25zKGspe3RoaXMuI2U9a30jdD0oSjQodGhpcyxsKSxKNCh0aGlzLGQsIiIpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRPcHRpb24oayl7dGhpcy4jdD1rfSNyPShKNCh0aGlzLGYpLEo0KHRoaXMsaCwidmVydGljYWwiKSk7Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBkaXJlY3Rpb24oayl7dGhpcy4jcj1rfSNhPShKNCh0aGlzLG0pLEo0KHRoaXMsYixudWxsKSk7Z2V0IHZhbGlkYXRpb25TdGF0ZSgpe3JldHVybiB0aGlzLiNhfXNldCB2YWxpZGF0aW9uU3RhdGUoayl7dGhpcy4jYT1rfWdldCB2YWx1ZSgpe2xldCBrPXRoaXMuZ2V0T3B0aW9uQnlLZXkodGhpcy5zZWxlY3RlZE9wdGlvbik7cmV0dXJuIHR5cGVvZiBrPT0ib2JqZWN0IiYmay5wYXlsb2FkIT09dm9pZCAwP2sucGF5bG9hZDp0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZShrKXtpZih0eXBlb2Ygaz09InN0cmluZyIpdGhpcy5zZWxlY3RlZE9wdGlvbj1rO2Vsc2V7bGV0IE09dGhpcy5vcHRpb25zLmZpbmQoTj0+dHlwZW9mIE49PSJvYmplY3QiJiZOLnBheWxvYWQ9PT1rKTtNJiZ0eXBlb2YgTT09Im9iamVjdCImJih0aGlzLnNlbGVjdGVkT3B0aW9uPU0ua2V5KX19c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogNnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuaG9yaXpvbnRhbCAucmFkaW8tb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMjBweCA2cHggMDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1jaXJjbGUgewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLWNpcmNsZTpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSAzLjklKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYWJlbC10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAvKiBWYWxpZGF0aW9uIHN0eWxlcyAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIl0pIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCJdKSAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJ2YWxpZCJdKSAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0id2FybiJdKSAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICB9CgogICAgICAvKiBPdmVycmlkZSBiYXNlIGdyaWQgbGF5b3V0IGZvciByYWRpb2dyb3VwIHRvIHByZXZlbnQgbGFyZ2UgZ2FwcyAqLwogICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249ImxlZnQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InJpZ2h0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bzsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkaXYgY2xhc3M9ImxhYmVsLXRleHQiPiR7dGhpcy5sYWJlbH08L2Rpdj5gOiIifQogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIgJHt0aGlzLmRpcmVjdGlvbn0iPgogICAgICAgICAgJHt0aGlzLm9wdGlvbnMubWFwKGs9PntsZXQgTT10aGlzLmdldE9wdGlvbktleShrKSxOPXRoaXMuZ2V0T3B0aW9uTGFiZWwoayksXz10aGlzLnNlbGVjdGVkT3B0aW9uPT09TTtyZXR1cm4gd2AKICAgICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgICAgY2xhc3M9InJhZGlvLW9wdGlvbiAke18/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuc2VsZWN0T3B0aW9uKE0pfSIKICAgICAgICAgICAgICAgIEBrZXlkb3duPSIke1M9PnRoaXMuaGFuZGxlS2V5ZG93bihTLE0pfSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgICAgICBjbGFzcz0icmFkaW8tY2lyY2xlIiAKICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgICAgICAgIHJvbGU9InJhZGlvIgogICAgICAgICAgICAgICAgICBhcmlhLWNoZWNrZWQ9IiR7X30iCiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IiR7Tn0iCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpby1sYWJlbCI+JHtOfTwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1nZXRPcHRpb25LZXkoayl7cmV0dXJuIHR5cGVvZiBrPT0ic3RyaW5nIj9rOmsua2V5fWdldE9wdGlvbkxhYmVsKGspe3JldHVybiB0eXBlb2Ygaz09InN0cmluZyI/azprLm9wdGlvbn1nZXRPcHRpb25CeUtleShrKXtyZXR1cm4gdGhpcy5vcHRpb25zLmZpbmQoTT0+dGhpcy5nZXRPcHRpb25LZXkoTSk9PT1rKX1zZWxlY3RPcHRpb24oayl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IE09dGhpcy5zZWxlY3RlZE9wdGlvbjt0aGlzLnNlbGVjdGVkT3B0aW9uPWssTSE9PWsmJih0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaW5wdXQiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoayl7dGhpcy52YWx1ZT1rfWFzeW5jIHZhbGlkYXRlKCl7cmV0dXJuIHRoaXMucmVxdWlyZWQmJiF0aGlzLnNlbGVjdGVkT3B0aW9uPyh0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsITEpOih0aGlzLnZhbGlkYXRpb25TdGF0ZT0idmFsaWQiLCEwKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZighdGhpcy5zZWxlY3RlZE9wdGlvbiYmdGhpcy5vcHRpb25zLmxlbmd0aD4wJiYhdGhpcy5yZXF1aXJlZCl7bGV0IGs9dGhpcy5vcHRpb25zWzBdO3RoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5nZXRPcHRpb25LZXkoayl9fWhhbmRsZUtleWRvd24oayxNKXt0aGlzLmRpc2FibGVkfHwoay5rZXk9PT0iICJ8fGsua2V5PT09IkVudGVyIj8oay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2VsZWN0T3B0aW9uKE0pKTprLmtleT09PSJBcnJvd0Rvd24ifHxrLmtleT09PSJBcnJvd1JpZ2h0Ij8oay5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNOZXh0T3B0aW9uKCkpOihrLmtleT09PSJBcnJvd1VwInx8ay5rZXk9PT0iQXJyb3dMZWZ0IikmJihrLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c1ByZXZpb3VzT3B0aW9uKCkpKX1mb2N1c05leHRPcHRpb24oKXtsZXQgaz1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIucmFkaW8tY2lyY2xlIikpLE49KGsuZmluZEluZGV4KF89Pl89PT10aGlzLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCkrMSklay5sZW5ndGg7a1tOXS5mb2N1cygpfWZvY3VzUHJldmlvdXNPcHRpb24oKXtsZXQgaz1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIucmFkaW8tY2lyY2xlIikpLE09ay5maW5kSW5kZXgoXz0+Xz09PXRoaXMuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KSxOPU08PTA/ay5sZW5ndGgtMTpNLTE7a1tOXS5mb2N1cygpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxKNCh0aGlzLGcpfXN0YXRpY3tKNChhLHIpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgWmpyLFFqcj11KCgpPT57dmUoKTtaanI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDI0cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiBoMyB7CiAgICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAjODg4OwogICAgfQogICAgLmRlbW8tcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxMnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QmFzaWMgVXNhZ2U8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdGV4dD0iV2l0aCBUZXh0IFByb3BlcnR5Ij48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPldpdGggSWNvbnMgKGluaGVyaXRlZCBmcm9tIERlZXNCdXR0b24pPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzZW5kIj5TdWJtaXQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNhdmUiIGljb25Qb3NpdGlvbj0ibGVmdCI+U2F2ZSBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTphcnJvdy1yaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBUeXBlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJoaWdobGlnaHRlZCIgaWNvbj0ibHVjaWRlOnNlbmQiPkhpZ2hsaWdodGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHR5cGU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJkaXNjcmVldCIgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2NyZWV0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJzbWFsbCIgaWNvbj0ibHVjaWRlOnNlbmQiPlNtYWxsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHNpemU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJsYXJnZSIgaWNvbj0ibHVjaWRlOnNlbmQiPkxhcmdlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TdGF0ZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJwZW5kaW5nIiBpY29uPSJsdWNpZGU6c2VuZCI+UGVuZGluZzwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9InN1Y2Nlc3MiIGljb249Imx1Y2lkZTpjaGVjayI+U3VjY2VzczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9ImVycm9yIiBpY29uPSJsdWNpZGU6eCI+RXJyb3I8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgZGlzYWJsZWQgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2FibGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5JbiBhIEZvcm0gQ29udGV4dDwvaDM+CiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTmFtZSIga2V5PSJuYW1lIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNlbmQiIHR5cGU9ImhpZ2hsaWdodGVkIj5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kZWVzLWZvcm0+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBCcCxIbyxHcGUsdzk9dSgoKT0+e1FqcigpO3ZlKCk7bHQoKTtCcD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sSG89ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEdwZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtZm9ybS1zdWJtaXQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0Zvcm1TdWJtaXQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHk9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sTj1bUCh7dHlwZTpTdHJpbmd9KV0sTz1bUCh7dHlwZTpTdHJpbmd9KV0sQnAodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZGlzYWJsZWQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5kaXNhYmxlZCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmRpc2FibGVkPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxCcCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRleHQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei50ZXh0LCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudGV4dD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsZiksQnAodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InN0YXR1cyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnN0YXR1cywiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnN0YXR1cz1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGgsbSksQnAodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0eXBlImluIHosImhhcyIpLGdldDppKHo9PnoudHlwZSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnR5cGU9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxiLGcpLEJwKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2l6ZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNpemUsImdldCIpLHNldDppKCh6LEEpPT57ei5zaXplPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sayxNKSxCcCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Imljb24iaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pY29uLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouaWNvbj1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LF8sUyksQnAodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Imljb25Qb3NpdGlvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lmljb25Qb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6Lmljb25Qb3NpdGlvbj1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LEwsRSksQnAobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxyKSxCPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1aanI7c3RhdGljIGRlbW9Hcm91cHM9WyJGb3JtIiwiQnV0dG9uIl07I2U9SG8odGhpcyxvLCExKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGlzYWJsZWQoQyl7dGhpcy4jZT1DfSN0PShIbyh0aGlzLGwpLEhvKHRoaXMsZCx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KEMpe3RoaXMuI3Q9Q30jcj0oSG8odGhpcyxmKSxIbyh0aGlzLGgsIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHN0YXR1cyhDKXt0aGlzLiNyPUN9I2E9KEhvKHRoaXMsbSksSG8odGhpcyxiLCJkZWZhdWx0IikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHR5cGUoQyl7dGhpcy4jYT1DfSNpPShIbyh0aGlzLGcpLEhvKHRoaXMsaywiZGVmYXVsdCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNpfXNldCBzaXplKEMpe3RoaXMuI2k9Q30jcz0oSG8odGhpcyxNKSxIbyh0aGlzLF8sdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jc31zZXQgaWNvbihDKXt0aGlzLiNzPUN9I249KEhvKHRoaXMsUyksSG8odGhpcyxMLCJsZWZ0IikpO2dldCBpY29uUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgaWNvblBvc2l0aW9uKEMpe3RoaXMuI249Q31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksSG8odGhpcyxFKX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KICAgICAgZGVlcy1idXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgLnN0YXR1cz0ke3RoaXMuc3RhdHVzfQogICAgICAgIC50eXBlPSR7dGhpcy50eXBlfQogICAgICAgIC5zaXplPSR7dGhpcy5zaXplfQogICAgICAgIC5pY29uPSR7dGhpcy5pY29ufQogICAgICAgIC5pY29uUG9zaXRpb249JHt0aGlzLmljb25Qb3NpdGlvbn0KICAgICAgICAudGV4dD0ke3RoaXMudGV4dH0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgIEBjbGlja2VkPSR7dGhpcy5zdWJtaXR9CiAgICAgID48L2RlZXMtYnV0dG9uPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZighdGhpcy50ZXh0KXtsZXQgQz10aGlzLnRleHRDb250ZW50Py50cmltKCk7QyYmKHRoaXMudGV4dD1DKX19YXN5bmMgc3VibWl0KCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IEM9dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtDJiZDLmdhdGhlckFuZERpc3BhdGNoJiZDLmdhdGhlckFuZERpc3BhdGNoKCl9YXN5bmMgZm9jdXMoKXtsZXQgQz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmRpc2FibGVkfHwoYXdhaXQgQy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWl0KCkpfXN0YXRpY3tIbyhhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgWGpyLEpqcj11KCgpPT57dmUoKTt3YSgpO3duKCk7QnkoKTt3OSgpO1hqcj1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7cmVgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLnNwYWNlciB7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltsYWJlbD0iU2VsZWN0IENvdW50cnkiXScpLHI9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2xhYmVsPSJTZWxlY3QgUm9sZSJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKGE9Pntjb25zb2xlLmxvZygiQ291bnRyeSBzZWxlY3RlZDoiLGEuZGV0YWlsKX0pKSxyJiZyLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwoYT0+e2NvbnNvbGUubG9nKCJSb2xlIHNlbGVjdGVkOiIsYS5kZXRhaWwpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCYXNpYyBEcm9wZG93bnMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgZHJvcGRvd24gd2l0aCBzZWFyY2ggZnVuY3Rpb25hbGl0eSBhbmQgdmFyaW91cyBvcHRpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgQ291bnRyeSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgdGhlIGNvdW50cnkgd2hlcmUgeW91ciBidXNpbmVzcyBpcyByZWdpc3RlcmVkIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiVW5pdGVkIFN0YXRlcyIsa2V5OiJ1cyJ9LHtvcHRpb246IkNhbmFkYSIsa2V5OiJjYSJ9LHtvcHRpb246Ikdlcm1hbnkiLGtleToiZGUifSx7b3B0aW9uOiJGcmFuY2UiLGtleToiZnIifSx7b3B0aW9uOiJVbml0ZWQgS2luZ2RvbSIsa2V5OiJ1ayJ9LHtvcHRpb246IkF1c3RyYWxpYSIsa2V5OiJhdSJ9LHtvcHRpb246IkphcGFuIixrZXk6ImpwIn0se29wdGlvbjoiQnJhemlsIixrZXk6ImJyIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUm9sZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkFkbWluaXN0cmF0b3IiLGtleToiYWRtaW4ifSx7b3B0aW9uOiJFZGl0b3IiLGtleToiZWRpdG9yIn0se29wdGlvbjoiVmlld2VyIixrZXk6InZpZXdlciJ9LHtvcHRpb246Ikd1ZXN0IixrZXk6Imd1ZXN0In1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsKHI9Pntjb25zb2xlLmxvZyhgUHJpb3JpdHkgY2hhbmdlZCB0bzogJHtyLmRldGFpbC5vcHRpb259YCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIFdpdGhvdXQgU2VhcmNoIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdpdGggc2VhcmNoIGZ1bmN0aW9uYWxpdHkgZGlzYWJsZWQgZm9yIHNpbXBsZXIgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJQcmlvcml0eSBMZXZlbCJ9CiAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJIaWdoIixrZXk6ImhpZ2gifSx7b3B0aW9uOiJNZWRpdW0iLGtleToibWVkaXVtIn0se29wdGlvbjoiTG93IixrZXk6ImxvdyJ9XX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246Ik1lZGl1bSIsa2V5OiJtZWRpdW0ifX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZHJvcGRvd24iKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIiwoYT0+e2xldCBzPXIuZ2V0QXR0cmlidXRlKCJsYWJlbCIpO2NvbnNvbGUubG9nKGAke3N9OiAke2EuZGV0YWlsLm9wdGlvbn1gKX0pKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBkcm9wZG93bnMgaW4gYSBob3Jpem9udGFsIGxheW91dCBmb3IgY29tcGFjdCBmb3JtcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICAubGFiZWw9JHsiRGVwYXJ0bWVudCJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRW5naW5lZXJpbmciLGtleToiZW5nIn0se29wdGlvbjoiRGVzaWduIixrZXk6ImRlc2lnbiJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlRlYW0gU2l6ZSJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IjEtNSIsa2V5OiJzbWFsbCJ9LHtvcHRpb246IjYtMjAiLGtleToibWVkaXVtIn0se29wdGlvbjoiMjEtNTAiLGtleToibGFyZ2UifSx7b3B0aW9uOiI1MCsiLGtleToieGxhcmdlIn1dfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICAubGFiZWw9JHsiTG9jYXRpb24ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlJlbW90ZSIsa2V5OiJyZW1vdGUifSx7b3B0aW9uOiJPbi1zaXRlIixrZXk6Im9uc2l0ZSJ9LHtvcHRpb246Ikh5YnJpZCIsa2V5OiJoeWJyaWQifV19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duW3JlcXVpcmVkXSIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZygiUmVxdWlyZWQgZHJvcGRvd24gbG9zdCBmb2N1cyIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgRmllbGQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiT3B0aW9uIEEiLGtleToiYSJ9LHtvcHRpb246Ik9wdGlvbiBCIixrZXk6ImIifSx7b3B0aW9uOiJPcHRpb24gQyIsa2V5OiJjIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgRHJvcGRvd24ifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQ2Fubm90IFNlbGVjdCIsa2V5OiJkaXNhYmxlZCJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiQ2Fubm90IFNlbGVjdCIsa2V5OiJkaXNhYmxlZCJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICAoU3BhY2VyIHRvIHRlc3QgZHJvcGRvd24gcG9zaXRpb25pbmcpCiAgICA8L2Rpdj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kcm9wZG93biIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChyPT57Y29uc29sZS5sb2coIkJvdHRvbSBkcm9wZG93biBzZWxlY3RlZDoiLHIuZGV0YWlsKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gQm90dG9tIFBvc2l0aW9uaW5nIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHRoYXQgb3BlbnMgdXB3YXJkIHdoZW4gbmVhciBib3R0b20gb2Ygdmlld3BvcnQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7Ik9wZW5zIFVwd2FyZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJGaXJzdCBPcHRpb24iLGtleToiZmlyc3QifSx7b3B0aW9uOiJTZWNvbmQgT3B0aW9uIixrZXk6InNlY29uZCJ9LHtvcHRpb246IlRoaXJkIE9wdGlvbiIsa2V5OiJ0aGlyZCJ9LHtvcHRpb246IkZvdXJ0aCBPcHRpb24iLGtleToiZm91cnRoIn0se29wdGlvbjoiRmlmdGggT3B0aW9uIixrZXk6ImZpZnRoIn1dfQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIikscj10LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7ZSYmciYmKHIuaW5uZXJIVE1MPSI8ZW0+U2VsZWN0IGEgcHJvZHVjdCB0byBzZWUgZGV0YWlscy4uLjwvZW0+IixlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGE9PnthLmRldGFpbC52YWx1ZSYmKHIuaW5uZXJIVE1MPWAKICAgICAgICAgICAgICA8c3Ryb25nPlNlbGVjdGVkOjwvc3Ryb25nPiAke2EuZGV0YWlsLnZhbHVlLm9wdGlvbn08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5LZXk6PC9zdHJvbmc+ICR7YS5kZXRhaWwudmFsdWUua2V5fTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPlByaWNlOjwvc3Ryb25nPiAkJHthLmRldGFpbC52YWx1ZS5wYXlsb2FkPy5wcmljZXx8Ik4vQSJ9PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+RmVhdHVyZXM6PC9zdHJvbmc+ICR7YS5kZXRhaWwudmFsdWUucGF5bG9hZD8uZmVhdHVyZXM/LmpvaW4oIiwgIil8fCJOL0EifQogICAgICAgICAgICBgKX0pKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEV2ZW50IEhhbmRsaW5nICYgUGF5bG9hZCJ9IC5zdWJ0aXRsZT0keyJEcm9wZG93biB3aXRoIHBheWxvYWQgZGF0YSBhbmQgY2hhbmdlIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUHJvZHVjdCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJCYXNpYyBQbGFuIixrZXk6ImJhc2ljIixwYXlsb2FkOntwcmljZTo5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIl19fSx7b3B0aW9uOiJQcm8gUGxhbiIsa2V5OiJwcm8iLHBheWxvYWQ6e3ByaWNlOjE5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIiwiRmVhdHVyZSBCIl19fSx7b3B0aW9uOiJFbnRlcnByaXNlIFBsYW4iLGtleToiZW50ZXJwcmlzZSIscGF5bG9hZDp7cHJpY2U6NDkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiLCJGZWF0dXJlIEIiLCJGZWF0dXJlIEMiXX19XX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InNlbGVjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOyBib3JkZXItcmFkaXVzOiA0cHg7IGZvbnQtc2l6ZTogMTRweDsiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikscj10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJwcm9qZWN0VHlwZSJdJyksYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJmcmFtZXdvcmsiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLChzPT57Y29uc29sZS5sb2coIkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YToiLHMuZGV0YWlsLmRhdGEpfSkpLHImJmEmJnIuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLChzPT57bGV0IG49cy5kZXRhaWwua2V5O2NvbnNvbGUubG9nKGBQcm9qZWN0IHR5cGUgY2hhbmdlZCB0bzogJHtufWApfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdvcmtpbmcgd2l0aGluIGEgZm9ybSB3aXRoIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgVHlwZSJ9CiAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdFR5cGUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIEFwcGxpY2F0aW9uIixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHBsaWNhdGlvbiIsa2V5OiJtb2JpbGUifSx7b3B0aW9uOiJEZXNrdG9wIEFwcGxpY2F0aW9uIixrZXk6ImRlc2t0b3AifSx7b3B0aW9uOiJBUEkgU2VydmljZSIsa2V5OiJhcGkifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGV2ZWxvcG1lbnQgRnJhbWV3b3JrIn0KICAgICAgICAgICAgLmtleT0keyJmcmFtZXdvcmsifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiUmVhY3QiLGtleToicmVhY3QiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJWdWUuanMiLGtleToidnVlIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiQW5ndWxhciIsa2V5OiJhbmd1bGFyIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiUmVhY3QgTmF0aXZlIixrZXk6InJlYWN0LW5hdGl2ZSIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkZsdXR0ZXIiLGtleToiZmx1dHRlciIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkVsZWN0cm9uIixrZXk6ImVsZWN0cm9uIixwYXlsb2FkOnt0eXBlOiJkZXNrdG9wIn19XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IkNyZWF0ZSBQcm9qZWN0In0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgZ2MsbHMsWXBlLEY2dD11KCgpPT57dmUoKTtNcigpO09vKCk7X3MoKTtsdCgpO25jKCk7Z2M9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGxzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxZcGU9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWlucHV0LWRyb3Bkb3duLXBvcHVwIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W107dmFyIGRlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREcm9wZG93blBvcHVwIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOkJvb2xlYW59KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe2F0dHJpYnV0ZTohMX0pXSx5PVtQKHthdHRyaWJ1dGU6ITF9KV0sTj1baWUoKV0sTz1baWUoKV0sQj1baWUoKV0sQT1baWUoKV0sWT1baWUoKV0sZ2ModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJvcHRpb25zImluIFEsImhhcyIpLGdldDppKFE9PlEub3B0aW9ucywiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5vcHRpb25zPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LG8sbCksZ2ModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImVuYWJsZVNlYXJjaCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmVuYWJsZVNlYXJjaCwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5lbmFibGVTZWFyY2g9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZCxmKSxnYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5zVG9Ub3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Im9wZW5zVG9Ub3AiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5vcGVuc1RvVG9wLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLm9wZW5zVG9Ub3A9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0saCxtKSxnYyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRyaWdnZXJSZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJ0cmlnZ2VyUmVjdCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnRyaWdnZXJSZWN0LCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLnRyaWdnZXJSZWN0PWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGIsZyksZ2ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvd25lckNvbXBvbmVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ib3duZXJDb21wb25lbnQiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5vd25lckNvbXBvbmVudCwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5vd25lckNvbXBvbmVudD1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxrLE0pLGdjKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyZWRPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJmaWx0ZXJlZE9wdGlvbnMiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5maWx0ZXJlZE9wdGlvbnMsImdldCIpLHNldDppKChRLGZlKT0+e1EuZmlsdGVyZWRPcHRpb25zPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LF8sUyksZ2ModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJoaWdobGlnaHRlZEluZGV4ImluIFEsImhhcyIpLGdldDppKFE9PlEuaGlnaGxpZ2h0ZWRJbmRleCwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5oaWdobGlnaHRlZEluZGV4PWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LEwsRSksZ2ModGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic2VhcmNoVmFsdWUiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5zZWFyY2hWYWx1ZSwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5zZWFyY2hWYWx1ZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxDLHopLGdjKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibWVudVpJbmRleCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChRLGZlKT0+e1EubWVudVpJbmRleD1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSwkLEYpLGdjKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4idmlzaWJsZSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnZpc2libGUsImdldCIpLHNldDppKChRLGZlKT0+e1EudmlzaWJsZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxHLFopLGdjKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkR9LG51bGwsciksZGU9YT1lLnZhbHVlLEQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RH0pfSNlPWxzKHRoaXMsbyxbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhEKXt0aGlzLiNlPUR9I3Q9KGxzKHRoaXMsbCksbHModGhpcyxkLCEwKSk7Z2V0IGVuYWJsZVNlYXJjaCgpe3JldHVybiB0aGlzLiN0fXNldCBlbmFibGVTZWFyY2goRCl7dGhpcy4jdD1EfSNyPShscyh0aGlzLGYpLGxzKHRoaXMsaCwhMSkpO2dldCBvcGVuc1RvVG9wKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG9wZW5zVG9Ub3AoRCl7dGhpcy4jcj1EfSNhPShscyh0aGlzLG0pLGxzKHRoaXMsYixudWxsKSk7Z2V0IHRyaWdnZXJSZWN0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRyaWdnZXJSZWN0KEQpe3RoaXMuI2E9RH0jaT0obHModGhpcyxnKSxscyh0aGlzLGssbnVsbCkpO2dldCBvd25lckNvbXBvbmVudCgpe3JldHVybiB0aGlzLiNpfXNldCBvd25lckNvbXBvbmVudChEKXt0aGlzLiNpPUR9I3M9KGxzKHRoaXMsTSksbHModGhpcyxfLFtdKSk7Z2V0IGZpbHRlcmVkT3B0aW9ucygpe3JldHVybiB0aGlzLiNzfXNldCBmaWx0ZXJlZE9wdGlvbnMoRCl7dGhpcy4jcz1EfSNuPShscyh0aGlzLFMpLGxzKHRoaXMsTCwwKSk7Z2V0IGhpZ2hsaWdodGVkSW5kZXgoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaGlnaGxpZ2h0ZWRJbmRleChEKXt0aGlzLiNuPUR9I289KGxzKHRoaXMsRSksbHModGhpcyxDLCIiKSk7Z2V0IHNlYXJjaFZhbHVlKCl7cmV0dXJuIHRoaXMuI299c2V0IHNlYXJjaFZhbHVlKEQpe3RoaXMuI289RH0jbD0obHModGhpcyx6KSxscyh0aGlzLCQsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbWVudVpJbmRleChEKXt0aGlzLiNsPUR9I2M9KGxzKHRoaXMsRiksbHModGhpcyxHLCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmlzaWJsZShEKXt0aGlzLiNjPUR9d2luZG93TGF5ZXI9KGxzKHRoaXMsWiksbnVsbCk7aXNEZXN0cm95aW5nPSExO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25Cb3ggewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHNjYWxlKDAuOTgpOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbkJveC50b3AgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uQm94LnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAub3B0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luOiAycHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb24uaGlnaGxpZ2h0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAubm8tb3B0aW9ucyB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuc2VhcmNoIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoIGlucHV0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7aWYoIXRoaXMudHJpZ2dlclJlY3QpcmV0dXJuIHdgYDtsZXQgRD10aGlzLmNvbXB1dGVQb3NpdGlvblN0eWxlKCk7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ic2VsZWN0aW9uQm94ICR7dGhpcy52aXNpYmxlPyJzaG93IjoiIn0gJHt0aGlzLm9wZW5zVG9Ub3A/InRvcCI6ImJvdHRvbSJ9IgogICAgICAgIHN0eWxlPSIke0R9OyB6LWluZGV4OiAke3RoaXMubWVudVpJbmRleH07IgogICAgICA+CiAgICAgICAgJHt0aGlzLmVuYWJsZVNlYXJjaD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaCI+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCBvcHRpb25zLi4uIgogICAgICAgICAgICAgICAgICAudmFsdWU9IiR7dGhpcy5zZWFyY2hWYWx1ZX0iCiAgICAgICAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLmhhbmRsZVNlYXJjaH0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHtRPT5RLnN0b3BQcm9wYWdhdGlvbigpfSIKICAgICAgICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3dufSIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6bnVsbH0KICAgICAgICA8ZGl2IGNsYXNzPSJvcHRpb25zLWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJuby1vcHRpb25zIj5ObyBvcHRpb25zIGZvdW5kPC9kaXY+YDp0aGlzLmZpbHRlcmVkT3B0aW9ucy5tYXAoKFEsZmUpPT57bGV0IFQ9dGhpcy5oaWdobGlnaHRlZEluZGV4PT09ZmU7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3B0aW9uICR7VD8iaGlnaGxpZ2h0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuc2VsZWN0T3B0aW9uKFEpfSIKICAgICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0iJHsoKT0+dGhpcy5oaWdobGlnaHRlZEluZGV4PWZlfSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7US5vcHRpb259CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Y29tcHV0ZVBvc2l0aW9uU3R5bGUoKXtsZXQgRD10aGlzLnRyaWdnZXJSZWN0LFE9RC5sZWZ0LGZlPUQud2lkdGg7aWYodGhpcy5vcGVuc1RvVG9wKXtsZXQgVD13aW5kb3cuaW5uZXJIZWlnaHQtRC50b3ArNDtyZXR1cm5gbGVmdDogJHtRfXB4OyB3aWR0aDogJHtmZX1weDsgYm90dG9tOiAke1R9cHg7IHRvcDogYXV0b2B9ZWxzZXtsZXQgVD1ELmJvdHRvbSs0O3JldHVybmBsZWZ0OiAke1F9cHg7IHdpZHRoOiAke2ZlfXB4OyB0b3A6ICR7VH1weGB9fWFzeW5jIHNob3coKXt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy5oaWdobGlnaHRlZEluZGV4PTAsdGhpcy5zZWFyY2hWYWx1ZT0iIix0aGlzLndpbmRvd0xheWVyPWF3YWl0IHluLmNyZWF0ZUFuZFNob3coKSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSl9KSx0aGlzLm1lbnVaSW5kZXg9eXIuZ2V0TmV4dFpJbmRleCgpLHlyLnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMpLGF3YWl0IGNyLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy52aXNpYmxlPSEwLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse2NhcHR1cmU6ITAscGFzc2l2ZTohMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuaGFuZGxlU2Nyb2xsT3JSZXNpemUse3Bhc3NpdmU6ITB9KX1hc3luYyBoaWRlKCl7dGhpcy5pc0Rlc3Ryb3lpbmd8fCh0aGlzLmlzRGVzdHJveWluZz0hMCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSkseXIudW5yZWdpc3Rlcih0aGlzKSx0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MCx0aGlzLndpbmRvd0xheWVyJiYodGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksdGhpcy53aW5kb3dMYXllcj1udWxsKSx0aGlzLnZpc2libGU9ITEsYXdhaXQgY3Iuc21hcnRkZWxheS5kZWxheUZvcigxNTApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpLHRoaXMuaXNEZXN0cm95aW5nPSExKX1hc3luYyBmb2N1c1NlYXJjaElucHV0KCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgRD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlYXJjaCBpbnB1dCIpO0QmJkQuZm9jdXMoKX11cGRhdGVPcHRpb25zKEQpe2lmKHRoaXMub3B0aW9ucz1ELHRoaXMuc2VhcmNoVmFsdWUpe2xldCBRPXRoaXMuc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKTt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMuZmlsdGVyKGZlPT5mZS5vcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhRKSl9ZWxzZSB0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnM7dGhpcy5oaWdobGlnaHRlZEluZGV4PTB9c2VsZWN0T3B0aW9uKEQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm9wdGlvbi1zZWxlY3RlZCIse2RldGFpbDpEfSkpfWhhbmRsZVNlYXJjaD1pKEQ9PntsZXQgUT1ELnRhcmdldC52YWx1ZTt0aGlzLnNlYXJjaFZhbHVlPVE7bGV0IGZlPVEudG9Mb3dlckNhc2UoKTt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMuZmlsdGVyKFQ9PlQub3B0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmUpKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MH0sImhhbmRsZVNlYXJjaCIpO2hhbmRsZVNlYXJjaEtleWRvd249aShEPT57bGV0IFE9RC5rZXksZmU9dGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoLTE7UT09PSJBcnJvd0Rvd24iPyhELnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZEluZGV4PXRoaXMuaGlnaGxpZ2h0ZWRJbmRleCsxPmZlPzA6dGhpcy5oaWdobGlnaHRlZEluZGV4KzEpOlE9PT0iQXJyb3dVcCI/KEQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9dGhpcy5oaWdobGlnaHRlZEluZGV4LTE8MD9mZTp0aGlzLmhpZ2hsaWdodGVkSW5kZXgtMSk6UT09PSJFbnRlciI/KEQucHJldmVudERlZmF1bHQoKSx0aGlzLmZpbHRlcmVkT3B0aW9uc1t0aGlzLmhpZ2hsaWdodGVkSW5kZXhdJiZ0aGlzLnNlbGVjdE9wdGlvbih0aGlzLmZpbHRlcmVkT3B0aW9uc1t0aGlzLmhpZ2hsaWdodGVkSW5kZXhdKSk6UT09PSJFc2NhcGUiJiYoRC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsb3NlLXJlcXVlc3QiKSkpfSwiaGFuZGxlU2VhcmNoS2V5ZG93biIpO2hhbmRsZVNjcm9sbE9yUmVzaXplPWkoKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXBvc2l0aW9uLXJlcXVlc3QiKSl9LCJoYW5kbGVTY3JvbGxPclJlc2l6ZSIpO2FzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZVNjcm9sbE9yUmVzaXplLHtjYXB0dXJlOiEwfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5oYW5kbGVTY3JvbGxPclJlc2l6ZSkseXIudW5yZWdpc3Rlcih0aGlzKX1zdGF0aWN7bHMoYSxyKX19O3JldHVybiBkZT1hfSkoKX0pO3ZhciBIeSxiYyxLcGUsWnBlPXUoKCk9Pnt2ZSgpO0pqcigpO0NpKCk7X3MoKTtsdCgpO0Y2dCgpO0h5PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxiYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sS3BlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC1kcm9wZG93biIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXREcm9wZG93biIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCgpXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sdj1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seT1baWUoKV0sSHkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJvcHRpb25zImluIFMsImhhcyIpLGdldDppKFM9PlMub3B0aW9ucywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLm9wdGlvbnM9T30sInNldCIpfSxtZXRhZGF0YTpffSxvLGwpLEh5KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRPcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNlbGVjdGVkT3B0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0ZWRPcHRpb24sImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3RlZE9wdGlvbj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksSHkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImVuYWJsZVNlYXJjaCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmVuYWJsZVNlYXJjaCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmVuYWJsZVNlYXJjaD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGgsbSksSHkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aW50ZWdyYXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4idmludGVncmF0ZWQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy52aW50ZWdyYXRlZCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnZpbnRlZ3JhdGVkPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxIeSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpc09wZW5lZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmlzT3BlbmVkLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuaXNPcGVuZWQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLE0pLEh5KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksTj1hPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89WGpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1iYyh0aGlzLG8sW10pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoXyl7dGhpcy4jZT1ffSN0PShiYyh0aGlzLGwpLGJjKHRoaXMsZCxudWxsKSk7Z2V0IHNlbGVjdGVkT3B0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkT3B0aW9uKF8pe3RoaXMuI3Q9X31nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbn1zZXQgdmFsdWUoXyl7dGhpcy5zZWxlY3RlZE9wdGlvbj1ffSNyPShiYyh0aGlzLGYpLGJjKHRoaXMsaCwhMCkpO2dldCBlbmFibGVTZWFyY2goKXtyZXR1cm4gdGhpcy4jcn1zZXQgZW5hYmxlU2VhcmNoKF8pe3RoaXMuI3I9X30jYT0oYmModGhpcyxtKSxiYyh0aGlzLGIsITEpKTtnZXQgdmludGVncmF0ZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmludGVncmF0ZWQoXyl7dGhpcy4jYT1ffSNpPShiYyh0aGlzLGcpLGJjKHRoaXMsaywhMSkpO2dldCBpc09wZW5lZCgpe3JldHVybiB0aGlzLiNpfXNldCBpc09wZW5lZChfKXt0aGlzLiNpPV99cG9wdXBJbnN0YW5jZT0oYmModGhpcyxNKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94IHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNDBweCAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3g6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94OmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94LmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogRHJvcGRvd24gYXJyb3cgKi8KICAgICAgLnNlbGVjdGVkQm94OjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94Lm9wZW46OmFmdGVyIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7CiAgICAgIH0KCiAgICAgIC8qIFZpc3VhbGx5IGludGVncmF0ZWQgbW9kZTogc2hlZCBjaHJvbWUgdG8gYmxlbmQgaW50byBhIGhvc3QgY29tcG9uZW50CiAgICAgICAgIChlLmcuIGEgZGVlcy10YWJsZSBjZWxsIGluIGVkaXQgbW9kZSkuICovCiAgICAgIDpob3N0KFt2aW50ZWdyYXRlZF0pIGRlZXMtbGFiZWwgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLm1haW5jb250YWluZXIgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2VsZWN0ZWRCb3ggewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBsaW5lLWhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDMycHggMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OmhvdmVyOm5vdCguZGlzYWJsZWQpLAogICAgICA6aG9zdChbdmludGVncmF0ZWRdKSAuc2VsZWN0ZWRCb3g6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KICAgICAgOmhvc3QoW3ZpbnRlZ3JhdGVkXSkgLnNlbGVjdGVkQm94OjphZnRlciB7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0ic2VsZWN0ZWRCb3ggJHt0aGlzLmlzT3BlbmVkPyJvcGVuIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PiF0aGlzLmRpc2FibGVkJiZ0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpfSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGVkT3B0aW9uPy5vcHRpb258fCJTZWxlY3QgYW4gb3B0aW9uIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLnNlbGVjdGVkT3B0aW9ufHxudWxsfXVwZGF0ZWQoXyl7c3VwZXIudXBkYXRlZChfKSxfLmhhcygib3B0aW9ucyIpJiZ0aGlzLnBvcHVwSW5zdGFuY2UmJnRoaXMuaXNPcGVuZWQmJnRoaXMucG9wdXBJbnN0YW5jZS51cGRhdGVPcHRpb25zKHRoaXMub3B0aW9ucyl9YXN5bmMgdXBkYXRlU2VsZWN0aW9uKF8pe3RoaXMuc2VsZWN0ZWRPcHRpb249Xyx0aGlzLmNsb3NlUG9wdXAoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3RlZE9wdGlvbiIse2RldGFpbDpfLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9YXN5bmMgdG9nZ2xlU2VsZWN0aW9uQm94KCl7aWYodGhpcy5pc09wZW5lZCl7dGhpcy5jbG9zZVBvcHVwKCk7cmV0dXJufXRoaXMuaXNPcGVuZWQ9ITA7bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZEJveCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE89d2luZG93LmlubmVySGVpZ2h0LVMuYm90dG9tLEw9Uy50b3AsRT1PPDMwMCYmTD5PO3RoaXMucG9wdXBJbnN0YW5jZXx8KHRoaXMucG9wdXBJbnN0YW5jZT1uZXcgWXBlKSx0aGlzLnBvcHVwSW5zdGFuY2Uub3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy5wb3B1cEluc3RhbmNlLmVuYWJsZVNlYXJjaD10aGlzLmVuYWJsZVNlYXJjaCx0aGlzLnBvcHVwSW5zdGFuY2Uub3BlbnNUb1RvcD1FLHRoaXMucG9wdXBJbnN0YW5jZS50cmlnZ2VyUmVjdD1TLHRoaXMucG9wdXBJbnN0YW5jZS5vd25lckNvbXBvbmVudD10aGlzLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJvcHRpb24tc2VsZWN0ZWQiLHRoaXMuaGFuZGxlT3B0aW9uU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLnNob3coKSx0aGlzLmVuYWJsZVNlYXJjaCYmYXdhaXQgdGhpcy5wb3B1cEluc3RhbmNlLmZvY3VzU2VhcmNoSW5wdXQoKX1jbG9zZVBvcHVwKCl7dGhpcy5pc09wZW5lZD0hMSx0aGlzLnBvcHVwSW5zdGFuY2UmJih0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3B0aW9uLXNlbGVjdGVkIix0aGlzLmhhbmRsZU9wdGlvblNlbGVjdGVkKSx0aGlzLnBvcHVwSW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xvc2UtcmVxdWVzdCIsdGhpcy5oYW5kbGVDbG9zZVJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXBvc2l0aW9uLXJlcXVlc3QiLHRoaXMuaGFuZGxlUmVwb3NpdGlvblJlcXVlc3QpLHRoaXMucG9wdXBJbnN0YW5jZS5oaWRlKCkpfWhhbmRsZU9wdGlvblNlbGVjdGVkPWkoXz0+e2xldCBTPV8uZGV0YWlsO3RoaXMudXBkYXRlU2VsZWN0aW9uKFMpfSwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQiKTtoYW5kbGVDbG9zZVJlcXVlc3Q9aSgoKT0+e3RoaXMuY2xvc2VQb3B1cCgpfSwiaGFuZGxlQ2xvc2VSZXF1ZXN0Iik7aGFuZGxlUmVwb3NpdGlvblJlcXVlc3Q9aSgoKT0+e2lmKCF0aGlzLnBvcHVwSW5zdGFuY2V8fCF0aGlzLmlzT3BlbmVkKXJldHVybjtsZXQgXz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkQm94Iik7aWYoIV8pcmV0dXJuO2xldCBTPV8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoUy5ib3R0b208MHx8Uy50b3A+d2luZG93LmlubmVySGVpZ2h0KXt0aGlzLmNsb3NlUG9wdXAoKTtyZXR1cm59bGV0IE89d2luZG93LmlubmVySGVpZ2h0LVMuYm90dG9tLEw9Uy50b3A7dGhpcy5wb3B1cEluc3RhbmNlLm9wZW5zVG9Ub3A9TzwzMDAmJkw+Tyx0aGlzLnBvcHVwSW5zdGFuY2UudHJpZ2dlclJlY3Q9U30sImhhbmRsZVJlcG9zaXRpb25SZXF1ZXN0Iik7aGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3duKF8pe3RoaXMuZGlzYWJsZWR8fChfLmtleT09PSJFbnRlciJ8fF8ua2V5PT09IiAiPyhfLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKSk6Xy5rZXk9PT0iQXJyb3dEb3duInx8Xy5rZXk9PT0iQXJyb3dVcCI/KF8ucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkfHx0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpKTpfLmtleT09PSJFc2NhcGUiJiYoXy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNPcGVuZWQmJnRoaXMuY2xvc2VQb3B1cCgpKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbn1zZXRWYWx1ZShfKXt0aGlzLnNlbGVjdGVkT3B0aW9uPV99YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucG9wdXBJbnN0YW5jZSYmKHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJvcHRpb24tc2VsZWN0ZWQiLHRoaXMuaGFuZGxlT3B0aW9uU2VsZWN0ZWQpLHRoaXMucG9wdXBJbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbG9zZS1yZXF1ZXN0Iix0aGlzLmhhbmRsZUNsb3NlUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlcG9zaXRpb24tcmVxdWVzdCIsdGhpcy5oYW5kbGVSZXBvc2l0aW9uUmVxdWVzdCksdGhpcy5wb3B1cEluc3RhbmNlLmhpZGUoKSx0aGlzLnBvcHVwSW5zdGFuY2U9bnVsbCl9c3RhdGlje2JjKGEscil9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBlVXIsdFVyPXUoKCk9Pnt2ZSgpO0I2dCgpO3duKCk7ZVVyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7cmVgCiAgICAgICAgLmRlbW8tc2hlbGwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMTYwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkgewogICAgICAgICAgLmRlbW8tZ3JpZC0tdHdvIHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc3RhY2sgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxNSAyMCUgMjYlKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEzIDEwMCUgOTclKSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUgMjUlIDMyJSkiLCJoc2woMjE1IDIwJSA4MiUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTU7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHN0cm9uZyB7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcgOTElIDQ1JSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2hlbGwiPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJNb2Rlcm4gZmlsZSB1cGxvYWRlciJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlNoYWRjbi1pbnNwaXJlZCBsYXlvdXQgd2l0aCBkcmFnICYgZHJvcCwgcHJldmlld3MgYW5kIHZhbGlkYXRpb24ifQogICAgICA+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCBkZW1vLWdyaWQtLXR3byI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJBdHRhY2htZW50cyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiVXBsb2FkIHN1cHBvcnRpbmcgZG9jdW1lbnRzIGZvciB5b3VyIHJlcXVlc3QifQogICAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFjY2VwdGVkIGZvcm1hdHM6IGltYWdlcywgUERGLCBhbmQgWklQIGFyY2hpdmVzIHVwIHRvIDEwTUIifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS8qLC5wZGYsLnppcCJ9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezEwKjEwMjQqMTAyNH0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJCcmFuZCBhc3NldHMifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IlVwbG9hZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VyeSAoSlBHL1BORykifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS9qcGVnLGltYWdlL3BuZyJ9CiAgICAgICAgICAgICAgICAubXVsdGlwbGU9JHshMX0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7NSoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgICAuYnV0dG9uVGV4dD0keyJTZWxlY3QgY292ZXIgaW1hZ2UifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXN0YWNrIj4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQXVkaW8gdXBsb2FkcyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiU2hhcmUgcG9kY2FzdCBkcmFmdHMgKE1QMy9XQVYsIG1heCAyNU1CIGVhY2gpIn0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiYXVkaW8vKiJ9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezI1KjEwMjQqMTAyNH0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBleGFtcGxlIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJVcGxvYWRlciBpcyBkaXNhYmxlZCB3aGlsZSBtb2RlcmF0aW9uIGlzIHBlbmRpbmcifQogICAgICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJGb3JtIGludGVncmF0aW9uIn0KICAgICAgICAuc3VidGl0bGU9JHsiQ29tYmluZSBmaWxlIHVwbG9hZHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgREVFUyBmb3JtIGVjb3N5c3RlbSJ9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBuYW1lIn0KICAgICAgICAgICAgICAgIC5pbmZvVGV4dD0keyJIb3cgc2hvdWxkIHdlIHJlZmVyIHRvIHRoaXMgcHJvamVjdCBpbnRlcm5hbGx5PyJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdE5hbWUifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkNvbnRhY3QgZW1haWwifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJlbWFpbCJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsiY29udGFjdEVtYWlsIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJTdGF0ZW1lbnQgb2Ygd29yayJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiVXBsb2FkIGEgc2lnbmVkIHN0YXRlbWVudCBvZiB3b3JrIChQREYsIG1heCAxNU1CKSJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiYXBwbGljYXRpb24vcGRmIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MTUqMTAyNCoxMDI0fQogICAgICAgICAgICAgICAgLm11bHRpcGxlPSR7ITF9CiAgICAgICAgICAgICAgICAua2V5PSR7InNvdyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQ3JlYXRpdmUgcmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgICAuaW5mb1RleHQ9JHsiT3B0aW9uYWwuIFVwbG9hZCB1cCB0byBmaXZlIHZpc3VhbCByZWZlcmVuY2VzIn0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiaW1hZ2UvKiJ9CiAgICAgICAgICAgICAgICAubWF4RmlsZXM9JHs1fQogICAgICAgICAgICAgICAgLm1heFNpemU9JHs4KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiTm90ZXMifQogICAgICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCBvcHRpb25hbCBjb250ZXh0IGZvciByZXZpZXdlcnMifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgICAgICAua2V5PSR7Im5vdGVzIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlN1Ym1pdCBicmllZmluZyJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tbm90ZSI+CiAgICAgICAgICAgIDxzdHJvbmc+R29vZCB0byBrbm93Ojwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkRyYWcgJiBkcm9wIGhpZ2hsaWdodHMgdGhlIGRyb3B6b25lIGFuZCBzdXBwb3J0cyBrZXlib2FyZCBhY3RpdmF0aW9uLjwvbGk+CiAgICAgICAgICAgICAgPGxpPkFjY2VwdGVkIGZpbGUgdHlwZXMgYXJlIHN1bW1hcmlzZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSA8Y29kZT5hY2NlcHQ8L2NvZGU+IGF0dHJpYnV0ZS48L2xpPgogICAgICAgICAgICAgIDxsaT5JbWFnZSB1cGxvYWRzIHNob3cgbGl2ZSBwcmV2aWV3cyBnZW5lcmF0ZWQgdmlhIDxjb2RlPlVSTC5jcmVhdGVPYmplY3RVUkw8L2NvZGU+LjwvbGk+CiAgICAgICAgICAgICAgPGxpPkZpbGUgc2l6ZSBhbmQgZmlsZS1jb3VudCBsaW1pdHMgc3VyZmFjZSBpbmxpbmUgdmFsaWRhdGlvbiBtZXNzYWdlcy48L2xpPgogICAgICAgICAgICAgIDxsaT5UaGUgY29tcG9uZW50IHN0YXlzIGNvbXBhdGlibGUgd2l0aCA8Y29kZT5kZWVzLWZvcm08L2NvZGU+IHZhbHVlIGFjY2Vzc29ycy48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciByVXIsYVVyPXUoKCk9Pnt2ZSgpO0NpKCk7bHQoKTtyVXI9W05lLC4uLkV0LmJhc2VTdHlsZXMseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgOmhvc3QgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQoKICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQoKICAgIC8qIOKUgOKUgCBUaWxlIGludGVncmF0aW9uIOKUgOKUgCAqLwogICAgZGVlcy10aWxlIHsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgfQoKICAgIGRlZXMtdGlsZTpob3Zlcjo6cGFydChvdXRlcikgewogICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICB9CgogICAgZGVlcy10aWxlLmRyYWdvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeSk7CiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlIC8gMC4xNSkiLCJoc2woMjEzIDkzJSA2OCUgLyAwLjE1KSIpfTsKICAgIH0KCiAgICA6aG9zdChbZGlzYWJsZWRdKSBkZWVzLXRpbGUgewogICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC8qIOKUgOKUgCBIZWFkZXIgc2xvdDogc2xlZWsgdG9vbGJhciDilIDilIAgKi8KICAgIC5kcm9wem9uZS1oZWFkZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICB9CgogICAgLmRyb3B6b25lLWhlYWRlciBkZWVzLWljb24gewogICAgICB3aWR0aDogMTRweDsKICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgIH0KCiAgICAuZHJvcHpvbmUtbG9hZGVyIHsKICAgICAgd2lkdGg6IDE0cHg7CiAgICAgIGhlaWdodDogMTRweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtZnVsbCk7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDE1LCAyMywgNDIsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeSk7CiAgICAgIGFuaW1hdGlvbjogbG9hZGVyLXNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgLmRyb3B6b25lLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgIH0KCiAgICAuZHJvcHpvbmUtYnJvd3NlIHsKICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICBwYWRkaW5nOiAwOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeSk7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KCiAgICAuZHJvcHpvbmUtYnJvd3NlOmhvdmVyIHsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICB9CgogICAgLmRyb3B6b25lLWJyb3dzZTpkaXNhYmxlZCB7CiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIG9wYWNpdHk6IDAuNTsKICAgIH0KCiAgICAvKiDilIDilIAgQ29udGVudCBzbG90OiBmaWxlIGxpc3QgaW4gcm91bmRlZCBpbnNldCDilIDilIAgKi8KICAgIC5maWxlLWxpc3QtZW1wdHkgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIHBhZGRpbmc6IDI0cHggMTZweDsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIH0KCiAgICAuZmlsZS1saXN0LWVtcHR5IGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgb3BhY2l0eTogMC40OwogICAgfQoKICAgIC5maWxlLWxpc3QgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgfQoKICAgIC5maWxlLWxpc3QtaGVhZGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgIH0KCiAgICAuZmlsZS1saXN0LWNsZWFyIHsKICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeSk7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBwYWRkaW5nOiAwOwogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgIH0KCiAgICAuZmlsZS1saXN0LWNsZWFyOmhvdmVyIHsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICB9CgogICAgLmZpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kZWVzLXRyYW5zaXRpb24tZmFzdCkgZWFzZTsKICAgIH0KCiAgICAuZmlsZS1yb3c6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXJvdy1ob3Zlcik7CiAgICB9CgogICAgLmZpbGUtdGh1bWIgewogICAgICB3aWR0aDogMzJweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1zbSk7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLmZpbGUtdGh1bWIgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxNnB4OwogICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAudGh1bWItaW1hZ2UgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgIH0KCiAgICAuZmlsZS1tZXRhIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAycHg7CiAgICAgIG1pbi13aWR0aDogMDsKICAgIH0KCiAgICAuZmlsZS1uYW1lIHsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIH0KCiAgICAuZmlsZS1kZXRhaWxzIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgIH0KCiAgICAuZmlsZS1zaXplIHsKICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgIH0KCiAgICAuZmlsZS10eXBlIHsKICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtZnVsbCk7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIH0KCiAgICAuZmlsZS1hY3Rpb25zIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnJlbW92ZS1idXR0b24gewogICAgICB3aWR0aDogMjRweDsKICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14cyk7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tZGVlcy10cmFuc2l0aW9uLWZhc3QpIGVhc2UsCiAgICAgICAgICAgICAgICAgIGNvbG9yIHZhcigtLWRlZXMtdHJhbnNpdGlvbi1mYXN0KSBlYXNlOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgIH0KCiAgICAucmVtb3ZlLWJ1dHRvbjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3MiUgNTAlIC8gMC4wOCkiLCJoc2woMCA2MiUgMzIlIC8gMC4xNSkiKX07CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICB9CgogICAgLnJlbW92ZS1idXR0b246YWN0aXZlIHsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTsKICAgIH0KCiAgICAucmVtb3ZlLWJ1dHRvbiBkZWVzLWljb24gewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDE0cHg7CiAgICAgIGhlaWdodDogMTRweDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLyog4pSA4pSAIEZvb3RlciBzbG90OiBtZXRhIGNoaXBzIOKUgOKUgCAqLwogICAgLmRyb3B6b25lLWZvb3RlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgZ2FwOiA2cHg7CiAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQoKICAgIC5tZXRhLWNoaXAgewogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICB9CgogICAgLyog4pSA4pSAIFZhbGlkYXRpb24g4pSA4pSAICovCiAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtZXJyb3IpOwogICAgICBsaW5lLWhlaWdodDogMS41OwogICAgfQoKICAgIEBrZXlmcmFtZXMgbG9hZGVyLXNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQogIGBdfSk7dmFyIHNkLHJuLFFwZSxCNnQ9dSgoKT0+e0NpKCk7dFVyKCk7YVVyKCk7S3IoKTtPeSgpO25zKCk7dmUoKTtzZD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0scm49ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFFwZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdO3ZhciBZPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRGaWxldXBsb2FkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7YXR0cmlidXRlOiExfSldLGM9W2llKCldLHA9W2llKCldLHY9W1Aoe3R5cGU6U3RyaW5nfSldLHk9W1Aoe3R5cGU6U3RyaW5nfSldLE49W1Aoe3R5cGU6Qm9vbGVhbn0pXSxPPVtQKHt0eXBlOk51bWJlcn0pXSxCPVtQKHt0eXBlOk51bWJlcn0pXSxBPVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHNkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InZhbHVlImluIFosImhhcyIpLGdldDppKFo9PloudmFsdWUsImdldCIpLHNldDppKChaLGRlKT0+e1oudmFsdWU9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sbyxsKSxzZCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJzdGF0ZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnN0YXRlLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLnN0YXRlPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LGQsZiksc2QodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImlzTG9hZGluZyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLmlzTG9hZGluZywiZ2V0Iiksc2V0OmkoKFosZGUpPT57Wi5pc0xvYWRpbmc9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30saCxtKSxzZCh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJ1dHRvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+ImJ1dHRvblRleHQiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5idXR0b25UZXh0LCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmJ1dHRvblRleHQ9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sYixnKSxzZCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjY2VwdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShaPT4iYWNjZXB0ImluIFosImhhcyIpLGdldDppKFo9PlouYWNjZXB0LCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLmFjY2VwdD1kZX0sInNldCIpfSxtZXRhZGF0YTpHfSxrLE0pLHNkKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXVsdGlwbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+Im11bHRpcGxlImluIFosImhhcyIpLGdldDppKFo9PloubXVsdGlwbGUsImdldCIpLHNldDppKChaLGRlKT0+e1oubXVsdGlwbGU9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sXyxTKSxzZCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+Im1heFNpemUiaW4gWiwiaGFzIiksZ2V0OmkoWj0+Wi5tYXhTaXplLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLm1heFNpemU9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sTCxFKSxzZCh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFo9PiJtYXhGaWxlcyJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLm1heEZpbGVzLCJnZXQiKSxzZXQ6aSgoWixkZSk9PntaLm1heEZpbGVzPWRlfSwic2V0Iil9LG1ldGFkYXRhOkd9LEMseiksc2QodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoWj0+InZhbGlkYXRpb25TdGF0ZSJpbiBaLCJoYXMiKSxnZXQ6aShaPT5aLnZhbGlkYXRpb25TdGF0ZSwiZ2V0Iiksc2V0OmkoKFosZGUpPT57Wi52YWxpZGF0aW9uU3RhdGU9ZGV9LCJzZXQiKX0sbWV0YWRhdGE6R30sJCxGKSxzZChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpHfSxudWxsLHIpLFk9YT1lLnZhbHVlLEcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6R30pfXN0YXRpYyBkZW1vPWVVcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9cm4odGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoRyl7dGhpcy4jZT1HfSN0PShybih0aGlzLGwpLHJuKHRoaXMsZCwiaWRsZSIpKTtnZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3RhdGUoRyl7dGhpcy4jdD1HfSNyPShybih0aGlzLGYpLHJuKHRoaXMsaCwhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNMb2FkaW5nKEcpe3RoaXMuI3I9R30jYT0ocm4odGhpcyxtKSxybih0aGlzLGIsIlNlbGVjdCBmaWxlcyIpKTtnZXQgYnV0dG9uVGV4dCgpe3JldHVybiB0aGlzLiNhfXNldCBidXR0b25UZXh0KEcpe3RoaXMuI2E9R30jaT0ocm4odGhpcyxnKSxybih0aGlzLGssIiIpKTtnZXQgYWNjZXB0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFjY2VwdChHKXt0aGlzLiNpPUd9I3M9KHJuKHRoaXMsTSkscm4odGhpcyxfLCEwKSk7Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG11bHRpcGxlKEcpe3RoaXMuI3M9R30jbj0ocm4odGhpcyxTKSxybih0aGlzLEwsMCkpO2dldCBtYXhTaXplKCl7cmV0dXJuIHRoaXMuI259c2V0IG1heFNpemUoRyl7dGhpcy4jbj1HfSNvPShybih0aGlzLEUpLHJuKHRoaXMsQywwKSk7Z2V0IG1heEZpbGVzKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heEZpbGVzKEcpe3RoaXMuI289R30jbD0ocm4odGhpcyx6KSxybih0aGlzLCQsbnVsbCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgdmFsaWRhdGlvblN0YXRlKEcpe3RoaXMuI2w9R30jYz0ocm4odGhpcyxGKSwiIik7Z2V0IHZhbGlkYXRpb25NZXNzYWdlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZhbGlkYXRpb25NZXNzYWdlKEcpe3RoaXMuI2M9R31wcmV2aWV3VXJsTWFwPW5ldyBXZWFrTWFwO2Ryb3BBcmVhPW51bGw7c3RhdGljIHN0eWxlcz1yVXI7cmVuZGVyKCl7bGV0IEc9dGhpcy5nZXRBY2NlcHRlZFN1bW1hcnkoKSxaPVt0aGlzLm11bHRpcGxlPyJNdWx0aXBsZSBmaWxlcyBzdXBwb3J0ZWQiOiJTaW5nbGUgZmlsZSBvbmx5Iix0aGlzLm1heFNpemU+MD9gTWF4ICR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLm1heFNpemUpfWA6Ik5vIHNpemUgbGltaXQiXTtyZXR1cm4gRyYmWi5wdXNoKGBBY2NlcHRzICR7R31gKSx3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbAogICAgICAgICAgLmxhYmVsPSR7dGhpcy5sYWJlbH0KICAgICAgICAgIC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgID48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtdGlsZQogICAgICAgICAgY2xhc3M9IiR7dGhpcy5zdGF0ZT09PSJkcmFnT3ZlciI/ImRyYWdvdmVyIjoiIn0iCiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZURyb3B6b25lQ2xpY2t9CiAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlRHJvcHpvbmVLZXlkb3dufQogICAgICAgICAgdGFiaW5kZXg9JHt0aGlzLmRpc2FibGVkPy0xOjB9CiAgICAgICAgICBhcmlhLWRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIGFyaWEtbGFiZWw9JHtgU2VsZWN0IGZpbGVzJHtHP2AgKCR7R30pYDoiIn1gfQogICAgICAgID4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICBjbGFzcz0iZmlsZS1pbnB1dCIKICAgICAgICAgICAgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyB0b3A6IDA7IGxlZnQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IgogICAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgICA/bXVsdGlwbGU9JHt0aGlzLm11bHRpcGxlfQogICAgICAgICAgICBhY2NlcHQ9JHt0aGlzLmFjY2VwdHx8IiJ9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVJbnB1dENoYW5nZX0KICAgICAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iZHJvcHpvbmUtaGVhZGVyIj4KICAgICAgICAgICAgJHt0aGlzLmlzTG9hZGluZz93YDxzcGFuIGNsYXNzPSJkcm9wem9uZS1sb2FkZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+YDp3YDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlVwbG9hZCI+PC9kZWVzLWljb24+YH0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRyb3B6b25lLXRpdGxlIj5Ecm9wIGZpbGVzIGhlcmUgb3I8L3NwYW4+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICB0eXBlPSJidXR0b24iCiAgICAgICAgICAgICAgY2xhc3M9ImRyb3B6b25lLWJyb3dzZSIKICAgICAgICAgICAgICBAY2xpY2s9JHtkZT0+e2RlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3BlbkZpbGVTZWxlY3RvcigpfX0KICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICA+YnJvd3NlPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJGaWxlTGlzdCgpfQogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJkcm9wem9uZS1mb290ZXIiPgogICAgICAgICAgICAke1oubWFwKGRlPT53YDxzcGFuIGNsYXNzPSJtZXRhLWNoaXAiPiR7ZGV9PC9zcGFuPmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25NZXNzYWdlP3dgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIiBhcmlhLWxpdmU9InBvbGl0ZSI+JHt0aGlzLnZhbGlkYXRpb25NZXNzYWdlfTwvZGl2PmA6d2BgfQogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZUxpc3QoKXtyZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGg9PT0wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0LWVtcHR5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVTdGFjayI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5ObyBmaWxlcyBzZWxlY3RlZDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDp3YAogICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdC1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+JHt0aGlzLnZhbHVlLmxlbmd0aH0gZmlsZSR7dGhpcy52YWx1ZS5sZW5ndGg9PT0xPyIiOiJzIn0gc2VsZWN0ZWQ8L3NwYW4+CiAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZpbGUtbGlzdC1jbGVhciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGVhckFsbH0+Q2xlYXIgJHt0aGlzLnZhbHVlLmxlbmd0aD4xPyJhbGwiOiIifTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy52YWx1ZS5tYXAoRz0+dGhpcy5yZW5kZXJGaWxlUm93KEcpKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbGVSb3coRyl7bGV0IFo9dGhpcy5nZXRGaWxlVHlwZShHKSxkZT10aGlzLmNhblNob3dQcmV2aWV3KEcpP3RoaXMuZ2V0UHJldmlld1VybChHKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJmaWxlLXJvdyAke1p9LWZpbGUiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtdGh1bWIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgICR7ZGU/d2A8aW1nIGNsYXNzPSJ0aHVtYi1pbWFnZSIgc3JjPSR7ZGV9IGFsdD0ke2BQcmV2aWV3IG9mICR7Ry5uYW1lfWB9PmA6d2A8ZGVlcy1pY29uIGljb249JHt0aGlzLmdldEZpbGVJY29uKEcpfT48L2RlZXMtaWNvbj5gfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbWV0YSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLW5hbWUiIHRpdGxlPSR7Ry5uYW1lfT4ke0cubmFtZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtZGV0YWlscyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLXNpemUiPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZShHLnNpemUpfTwvc3Bhbj4KICAgICAgICAgICAgJHtaIT09ImZpbGUiP3dgPHNwYW4gY2xhc3M9ImZpbGUtdHlwZSI+JHtafTwvc3Bhbj5gOndgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgICAgICAgY2xhc3M9InJlbW92ZS1idXR0b24iCiAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUZpbGUoRyl9CiAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtgUmVtb3ZlICR7Ry5uYW1lfWB9CiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVGaWxlSW5wdXRDaGFuZ2U9aShhc3luYyBHPT57dGhpcy5pc0xvYWRpbmc9ITE7bGV0IFo9Ry50YXJnZXQsZGU9QXJyYXkuZnJvbShaLmZpbGVzPz9bXSk7ZGUubGVuZ3RoPjAmJmF3YWl0IHRoaXMuYWRkRmlsZXMoZGUpLFoudmFsdWU9IiJ9LCJoYW5kbGVGaWxlSW5wdXRDaGFuZ2UiKTtoYW5kbGVEcm9wem9uZUNsaWNrPWkoRz0+e3RoaXMuZGlzYWJsZWR8fEcudGFyZ2V0LmNsb3Nlc3QoIi5maWxlLWxpc3QsIC5kcm9wem9uZS1oZWFkZXIsIC5kcm9wem9uZS1mb290ZXIiKXx8dGhpcy5vcGVuRmlsZVNlbGVjdG9yKCl9LCJoYW5kbGVEcm9wem9uZUNsaWNrIik7aGFuZGxlRHJvcHpvbmVLZXlkb3duPWkoRz0+e3RoaXMuZGlzYWJsZWR8fChHLmtleT09PSJFbnRlciJ8fEcua2V5PT09IiAiKSYmKEcucHJldmVudERlZmF1bHQoKSx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKSl9LCJoYW5kbGVEcm9wem9uZUtleWRvd24iKTtoYW5kbGVDbGVhckFsbD1pKEc9PntHLnByZXZlbnREZWZhdWx0KCksdGhpcy5jbGVhckFsbCgpfSwiaGFuZGxlQ2xlYXJBbGwiKTtoYW5kbGVEcmFnRXZlbnQ9aShhc3luYyBHPT57aWYoRy5wcmV2ZW50RGVmYXVsdCgpLEcuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuZGlzYWJsZWQpe2lmKEcudHlwZT09PSJkcmFnZW50ZXIifHxHLnR5cGU9PT0iZHJhZ292ZXIiKXtHLmRhdGFUcmFuc2ZlciYmKEcuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9ImNvcHkiKSx0aGlzLnN0YXRlPSJkcmFnT3ZlciI7cmV0dXJufWlmKEcudHlwZT09PSJkcmFnbGVhdmUiKXtpZighdGhpcy5kcm9wQXJlYSl7dGhpcy5zdGF0ZT0iaWRsZSI7cmV0dXJufWxldCBaPXRoaXMuZHJvcEFyZWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse2NsaWVudFg6ZGU9MCxjbGllbnRZOkQ9MH09RzsoZGU8PVoubGVmdHx8ZGU+PVoucmlnaHR8fEQ8PVoudG9wfHxEPj1aLmJvdHRvbSkmJih0aGlzLnN0YXRlPSJpZGxlIik7cmV0dXJufWlmKEcudHlwZT09PSJkcm9wIil7dGhpcy5zdGF0ZT0iaWRsZSI7bGV0IFo9QXJyYXkuZnJvbShHLmRhdGFUcmFuc2Zlcj8uZmlsZXM/P1tdKTtaLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmFkZEZpbGVzKFopfX19LCJoYW5kbGVEcmFnRXZlbnQiKTthdHRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKEc9Pnt0aGlzLmRyb3BBcmVhLmFkZEV2ZW50TGlzdGVuZXIoRyx0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1kZXRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKEc9Pnt0aGlzLmRyb3BBcmVhLnJlbW92ZUV2ZW50TGlzdGVuZXIoRyx0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl7bGV0IEc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXRpbGUiKTtHIT09dGhpcy5kcm9wQXJlYSYmKHRoaXMuZGV0YWNoRHJvcExpc3RlbmVycygpLHRoaXMuZHJvcEFyZWE9Ryx0aGlzLmF0dGFjaERyb3BMaXN0ZW5lcnMoKSl9Zm9ybWF0RmlsZVNpemUoRyl7bGV0IFo9WyJCeXRlcyIsIktCIiwiTUIiLCJHQiJdO2lmKEc9PT0wKXJldHVybiIwIEJ5dGVzIjtsZXQgZGU9TWF0aC5taW4oTWF0aC5mbG9vcihNYXRoLmxvZyhHKS9NYXRoLmxvZygxMDI0KSksWi5sZW5ndGgtMSksRD1HL01hdGgucG93KDEwMjQsZGUpO3JldHVybmAke01hdGgucm91bmQoRCoxMDApLzEwMH0gJHtaW2RlXX1gfWdldEZpbGVUeXBlKEcpe2xldCBaPUcudHlwZS50b0xvd2VyQ2FzZSgpO3JldHVybiBaLnN0YXJ0c1dpdGgoImltYWdlLyIpPyJpbWFnZSI6Wj09PSJhcHBsaWNhdGlvbi9wZGYiPyJwZGYiOlouaW5jbHVkZXMoIndvcmQiKXx8Wi5pbmNsdWRlcygiZG9jdW1lbnQiKT8iZG9jIjpaLmluY2x1ZGVzKCJzaGVldCIpfHxaLmluY2x1ZGVzKCJleGNlbCIpPyJzcHJlYWRzaGVldCI6Wi5pbmNsdWRlcygicHJlc2VudGF0aW9uIil8fFouaW5jbHVkZXMoInBvd2VycG9pbnQiKT8icHJlc2VudGF0aW9uIjpaLnN0YXJ0c1dpdGgoInZpZGVvLyIpPyJ2aWRlbyI6Wi5zdGFydHNXaXRoKCJhdWRpby8iKT8iYXVkaW8iOlouaW5jbHVkZXMoInppcCIpfHxaLmluY2x1ZGVzKCJjb21wcmVzc2VkIik/ImFyY2hpdmUiOiJmaWxlIn1nZXRGaWxlSWNvbihHKXtsZXQgWj10aGlzLmdldEZpbGVUeXBlKEcpO3JldHVybntpbWFnZToibHVjaWRlOkZpbGVJbWFnZSIscGRmOiJsdWNpZGU6RmlsZVRleHQiLGRvYzoibHVjaWRlOkZpbGVUZXh0IixzcHJlYWRzaGVldDoibHVjaWRlOkZpbGVTcHJlYWRzaGVldCIscHJlc2VudGF0aW9uOiJsdWNpZGU6RmlsZUJhckNoYXJ0Iix2aWRlbzoibHVjaWRlOkZpbGVWaWRlbyIsYXVkaW86Imx1Y2lkZTpGaWxlQXVkaW8iLGFyY2hpdmU6Imx1Y2lkZTpGaWxlQXJjaGl2ZSIsZmlsZToibHVjaWRlOkZpbGUifVtaXT8/Imx1Y2lkZTpGaWxlIn1jYW5TaG93UHJldmlldyhHKXtyZXR1cm4gRy50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiZHLnNpemU8NSoxMDI0KjEwMjR9dmFsaWRhdGVGaWxlKEcpe2lmKHRoaXMubWF4U2l6ZT4wJiZHLnNpemU+dGhpcy5tYXhTaXplKXJldHVybiB0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBGaWxlICIke0cubmFtZX0iIGV4Y2VlZHMgdGhlIG1heGltdW0gc2l6ZSBvZiAke3RoaXMuZm9ybWF0RmlsZVNpemUodGhpcy5tYXhTaXplKX1gLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMTtpZih0aGlzLmFjY2VwdCl7bGV0IFo9dGhpcy5hY2NlcHQuc3BsaXQoIiwiKS5tYXAoZGU9PmRlLnRyaW0oKSkuZmlsdGVyKGRlPT5kZS5sZW5ndGg+MCk7aWYoWi5sZW5ndGg+MCl7bGV0IGRlPSExO2ZvcihsZXQgRCBvZiBaKWlmKEQuc3RhcnRzV2l0aCgiLiIpKXtpZihHLm5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChELnRvTG93ZXJDYXNlKCkpKXtkZT0hMDticmVha319ZWxzZSBpZihELmVuZHNXaXRoKCIvKiIpKXtsZXQgUT1ELnNsaWNlKDAsLTIpO2lmKEcudHlwZS5zdGFydHNXaXRoKFEpKXtkZT0hMDticmVha319ZWxzZSBpZihHLnR5cGU9PT1EKXtkZT0hMDticmVha31pZighZGUpcmV0dXJuIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YEZpbGUgdHlwZSBub3QgYWNjZXB0ZWQuIEFsbG93ZWQ6ICR7Wi5qb2luKCIsICIpfWAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExfX1yZXR1cm4hMH1nZXRQcmV2aWV3VXJsKEcpe2xldCBaPXRoaXMucHJldmlld1VybE1hcC5nZXQoRyk7cmV0dXJuIFp8fChaPVVSTC5jcmVhdGVPYmplY3RVUkwoRyksdGhpcy5wcmV2aWV3VXJsTWFwLnNldChHLFopKSxafXJlbGVhc2VQcmV2aWV3KEcpe2xldCBaPXRoaXMucHJldmlld1VybE1hcC5nZXQoRyk7WiYmKFVSTC5yZXZva2VPYmplY3RVUkwoWiksdGhpcy5wcmV2aWV3VXJsTWFwLmRlbGV0ZShHKSl9Z2V0QWNjZXB0ZWRTdW1tYXJ5KCl7aWYoIXRoaXMuYWNjZXB0KXJldHVybiBudWxsO2xldCBHPUFycmF5LmZyb20obmV3IFNldCh0aGlzLmFjY2VwdC5zcGxpdCgiLCIpLm1hcChaPT5aLnRyaW0oKSkuZmlsdGVyKFo9PloubGVuZ3RoPjApLm1hcChaPT50aGlzLmZvcm1hdEFjY2VwdFRva2VuKFopKSkpLmZpbHRlcihCb29sZWFuKTtyZXR1cm4gRy5sZW5ndGg9PT0wP251bGw6Ry5sZW5ndGg9PT0xP0dbMF06Ry5sZW5ndGg9PT0yP2Ake0dbMF19LCAke0dbMV19YDpgJHtHLnNsaWNlKDAsMikuam9pbigiLCAiKX1cdTIwMjZgfWZvcm1hdEFjY2VwdFRva2VuKEcpe2lmKEc9PT0iKi8qIilyZXR1cm4iQWxsIGZpbGVzIjtpZihHLmVuZHNXaXRoKCIvKiIpKXtsZXQgRD1HLnNwbGl0KCIvIilbMF07cmV0dXJuIEQ/YCR7RC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke0Quc2xpY2UoMSl9IGZpbGVzYDoiQWxsIGZpbGVzIn1yZXR1cm4gRy5zdGFydHNXaXRoKCIuIik/Ry5zbGljZSgxKS50b1VwcGVyQ2FzZSgpOkcuaW5jbHVkZXMoInBkZiIpPyJQREYiOkcuaW5jbHVkZXMoInppcCIpPyJaSVAiOkcuaW5jbHVkZXMoImpzb24iKT8iSlNPTiI6Ry5pbmNsdWRlcygibXN3b3JkIik/IkRPQyI6Ry5pbmNsdWRlcygid29yZHByb2Nlc3NpbmdtbCIpPyJET0NYIjpHLmluY2x1ZGVzKCJleGNlbCIpPyJYTFMiOkcuaW5jbHVkZXMoInByZXNlbnRhdGlvbiIpPyJQUFQiOihHLnNwbGl0KCIvIikucG9wKCk/P0cpLnRvVXBwZXJDYXNlKCl9YXR0YWNoTGlmZWN5Y2xlTGlzdGVuZXJzKCl7dGhpcy5yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl9Zmlyc3RVcGRhdGVkKEcpe3N1cGVyLmZpcnN0VXBkYXRlZChHKSx0aGlzLmF0dGFjaExpZmVjeWNsZUxpc3RlbmVycygpfXVwZGF0ZWQoRyl7c3VwZXIudXBkYXRlZChHKSxHLmhhcygidmFsdWUiKSYmdGhpcy52YWxpZGF0ZSgpLHRoaXMucmViaW5kSW50ZXJhY3RpdmVFbGVtZW50cygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5kZXRhY2hEcm9wTGlzdGVuZXJzKCksdGhpcy52YWx1ZS5mb3JFYWNoKEc9PnRoaXMucmVsZWFzZVByZXZpZXcoRykpLHRoaXMucHJldmlld1VybE1hcD1uZXcgV2Vha01hcCxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIG9wZW5GaWxlU2VsZWN0b3IoKXtpZih0aGlzLmRpc2FibGVkfHx0aGlzLmlzTG9hZGluZylyZXR1cm47dGhpcy5pc0xvYWRpbmc9ITA7bGV0IEc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmlsZS1pbnB1dCIpO2lmKCFHKXt0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59bGV0IFo9aSgoKT0+e3NldFRpbWVvdXQoKCk9PnsoIUcuZmlsZXN8fEcuZmlsZXMubGVuZ3RoPT09MCkmJih0aGlzLmlzTG9hZGluZz0hMSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixaKX0sMzAwKX0sImhhbmRsZUZvY3VzIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixaKSxHLmNsaWNrKCl9cmVtb3ZlRmlsZShHKXtsZXQgWj10aGlzLnZhbHVlLmluZGV4T2YoRyk7Wj4tMSYmKHRoaXMucmVsZWFzZVByZXZpZXcoRyksdGhpcy52YWx1ZS5zcGxpY2UoWiwxKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1jbGVhckFsbCgpe2xldCBHPVsuLi50aGlzLnZhbHVlXTt0aGlzLnZhbHVlPVtdLEcuZm9yRWFjaChaPT50aGlzLnJlbGVhc2VQcmV2aWV3KFopKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIn1hc3luYyB1cGRhdGVWYWx1ZShHKXtsZXQgWj1HLnRhcmdldDt0aGlzLnZhbHVlPUFycmF5LmZyb20oWi5maWxlcz8/W10pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfXNldFZhbHVlKEcpe3RoaXMudmFsdWUuZm9yRWFjaChaPT50aGlzLnJlbGVhc2VQcmV2aWV3KFopKSx0aGlzLnZhbHVlPUcsRy5sZW5ndGg+MD90aGlzLmJ1dHRvblRleHQ9dGhpcy5tdWx0aXBsZT8iQWRkIG1vcmUgZmlsZXMiOiJSZXBsYWNlIGZpbGUiOnRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIix0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9YXN5bmMgYWRkRmlsZXMoRyl7bGV0IFo9W107Zm9yKGxldCBkZSBvZiBHKXRoaXMudmFsaWRhdGVGaWxlKGRlKSYmWi5wdXNoKGRlKTtpZihaLmxlbmd0aD09PTApe3RoaXMuaXNMb2FkaW5nPSExO3JldHVybn1pZih0aGlzLm1heEZpbGVzPjAmJnRoaXMudmFsdWUubGVuZ3RoK1oubGVuZ3RoPnRoaXMubWF4RmlsZXMpe2xldCBEPXRoaXMubWF4RmlsZXMtdGhpcy52YWx1ZS5sZW5ndGg7aWYoRDw9MCl7dGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gTWF4aW11bSAke3RoaXMubWF4RmlsZXN9IGZpbGVzIGFsbG93ZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59Wi5zcGxpY2UoRCksdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gT25seSAke0R9IG1vcmUgZmlsZShzKSBjYW4gYmUgYWRkZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJ3YXJuIn0hdGhpcy5tdWx0aXBsZSYmWi5sZW5ndGg+MD8odGhpcy52YWx1ZS5mb3JFYWNoKGRlPT50aGlzLnJlbGVhc2VQcmV2aWV3KGRlKSksdGhpcy52YWx1ZT1bWlswXV0pOnRoaXMudmFsdWUucHVzaCguLi5aKSx0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSIiLHRoaXMudmFsaWRhdGlvblN0YXRlPW51bGwsdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLGF3YWl0IHRoaXMudmFsaWRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmlzTG9hZGluZz0hMSx0aGlzLnZhbHVlLmxlbmd0aD4wP3RoaXMuYnV0dG9uVGV4dD10aGlzLm11bHRpcGxlPyJBZGQgbW9yZSBmaWxlcyI6IlJlcGxhY2UgZmlsZSI6dGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMifWFzeW5jIHZhbGlkYXRlKCl7aWYodGhpcy52YWxpZGF0aW9uTWVzc2FnZT0iIix0aGlzLnJlcXVpcmVkJiZ0aGlzLnZhbHVlLmxlbmd0aD09PTApcmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSJQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBmaWxlIiwhMTtmb3IobGV0IEcgb2YgdGhpcy52YWx1ZSlpZighdGhpcy52YWxpZGF0ZUZpbGUoRykpcmV0dXJuITE7cmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPXRoaXMudmFsdWUubGVuZ3RoPjA/InZhbGlkIjpudWxsLCEwfXN0YXRpY3tybihhLHIpfX07cmV0dXJuIFk9YX0pKCl9KTt2YXIgSDZ0PXUoKCk9PntCNnQoKX0pO2Z1bmN0aW9uIEpwZSh0LGUpe2lmKGU9PT12b2lkIDAmJihlPXthbGxvd1FSSUJBTjohMH0pLHQ9PW51bGwpcmV0dXJuITE7dmFyIHI9bmV3IFJlZ0V4cCgiXlswLTldezJ9JCIsIiIpLGE9dC5zbGljZSgwLDIpLHM9UWxbYV07cmV0dXJuIHM9PT12b2lkIDB8fHMuYmJhbl9yZWdleHA9PT12b2lkIDB8fHMuYmJhbl9yZWdleHA9PT1udWxsfHxzLmNoYXJzPT09dm9pZCAwPyExOnMuY2hhcnM9PT10Lmxlbmd0aCYmci50ZXN0KHQuc2xpY2UoMiw0KSkmJldFYSh0LnNsaWNlKDQpLGEpJiZzVXIodCkmJihlLmFsbG93UVJJQkFOfHwhaVVyKHQpKX1mdW5jdGlvbiBnbzEodCxlKXtlPT09dm9pZCAwJiYoZT17YWxsb3dRUklCQU46ITB9KTt2YXIgcj17ZXJyb3JDb2RlczpbXSx2YWxpZDohMH07aWYodCE9bnVsbCYmdCE9PSIiKXt2YXIgYT1RbFt0LnNsaWNlKDAsMildO2lmKCFhfHwhKGEuYmJhbl9yZWdleHB8fGEuY2hhcnMpKXJldHVybiByLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKHhjLk5vSUJBTkNvdW50cnkpLHI7YSYmYS5jaGFycyYmYS5jaGFycyE9PXQubGVuZ3RoJiYoci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaCh4Yy5Xcm9uZ0JCQU5MZW5ndGgpKSxhJiZhLmJiYW5fcmVnZXhwJiYhcTZ0KHQuc2xpY2UoNCksYS5iYmFuX3JlZ2V4cCkmJihyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKHhjLldyb25nQkJBTkZvcm1hdCkpLGEmJmEuYmJhbl92YWxpZGF0aW9uX2Z1bmMmJiFhLmJiYW5fdmFsaWRhdGlvbl9mdW5jKHQuc2xpY2UoNCkpJiYoci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaCh4Yy5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW0pKTt2YXIgcz1uZXcgUmVnRXhwKCJeWzAtOV17Mn0kIiwiIik7cy50ZXN0KHQuc2xpY2UoMiw0KSl8fChyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKHhjLkNoZWNrc3VtTm90TnVtYmVyKSksKHIuZXJyb3JDb2Rlcy5pbmRleE9mKHhjLldyb25nQkJBTkZvcm1hdCkhPT0tMXx8IXNVcih0KSkmJihyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKHhjLldyb25nSUJBTkNoZWNrc3VtKSksIWUuYWxsb3dRUklCQU4mJmlVcih0KSYmKHIudmFsaWQ9ITEsci5lcnJvckNvZGVzLnB1c2goeGMuUVJJQkFOTm90QWxsb3dlZCkpfWVsc2Ugci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaCh4Yy5Ob0lCQU5Qcm92aWRlZCk7cmV0dXJuIHJ9ZnVuY3Rpb24gV0VhKHQsZSl7aWYodD09bnVsbHx8ZT09PXZvaWQgMHx8ZT09PW51bGwpcmV0dXJuITE7dmFyIHI9UWxbZV07cmV0dXJuIHI9PW51bGx8fHIuYmJhbl9yZWdleHA9PT12b2lkIDB8fHIuYmJhbl9yZWdleHA9PT1udWxsfHxyLmNoYXJzPT09dm9pZCAwfHxyLmNoYXJzPT09bnVsbD8hMTpyLmNoYXJzLTQ9PT10Lmxlbmd0aCYmcTZ0KHQsci5iYmFuX3JlZ2V4cCk/ci5iYmFuX3ZhbGlkYXRpb25fZnVuYz9yLmJiYW5fdmFsaWRhdGlvbl9mdW5jKHQucmVwbGFjZSgvW1xzLl0rL2csIiIpKTohMDohMX1mdW5jdGlvbiBibzEodCl7aWYodCE9bnVsbCl7dmFyIGU9UWxbdF07aWYoZSE9PXZvaWQgMClyZXR1cm4gZS5TRVBBP2UuU0VQQTohMX1yZXR1cm4hMX1mdW5jdGlvbiBpVXIodCl7aWYodD09bnVsbClyZXR1cm4hMTt2YXIgZT10LnNsaWNlKDAsMikscj1bIkxJIiwiQ0giXTtpZighci5pbmNsdWRlcyhlKSlyZXR1cm4hMTt2YXIgYT1uZXcgUmVnRXhwKCJeM1swLTFdezF9WzAtOV17M30kIiwiIik7cmV0dXJuIGEudGVzdCh0LnNsaWNlKDQsOSkpfWZ1bmN0aW9uIHhvMSh0KXt2YXIgZT1WNnQodC5iYmFuKXx8IiI7aWYodC5jb3VudHJ5Q29kZT09PW51bGx8fHQuY291bnRyeUNvZGU9PT12b2lkIDApcmV0dXJuIG51bGw7dmFyIHI9UWxbdC5jb3VudHJ5Q29kZV07aWYoZSE9PSIiJiZyIT09dm9pZCAwJiZyLmNoYXJzJiZyLmNoYXJzIT09bnVsbCYmci5jaGFycz09PWUubGVuZ3RoKzQmJnIuYmJhbl9yZWdleHAmJnIuYmJhbl9yZWdleHAhPT1udWxsJiZxNnQoZSxyLmJiYW5fcmVnZXhwKSl7dmFyIGE9R0VhKHQuY291bnRyeUNvZGUrIjAwIitlKTtyZXR1cm4gdC5jb3VudHJ5Q29kZSsoIjAiKyg5OC1hKSkuc2xpY2UoLTIpK2V9cmV0dXJuIG51bGx9ZnVuY3Rpb24gdm8xKHQpe3ZhciBlPXt9LHI9VjZ0KHQpO2lmKGUuaWJhbj1yfHx0LHImJkpwZShyKSl7ZS5iYmFuPXIuc2xpY2UoNCksZS5jb3VudHJ5Q29kZT1yLnNsaWNlKDAsMiksZS52YWxpZD0hMDt2YXIgYT1RbFtlLmNvdW50cnlDb2RlXTtpZihhLmFjY291bnRfaW5kZW50aWZpZXIpe3ZhciBzPWEuYWNjb3VudF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoc1swXSksbz1wYXJzZUludChzWzFdKTtlLmFjY291bnROdW1iZXI9ZS5pYmFuLnNsaWNlKG4sbysxKX1pZihhLmJhbmtfaWRlbnRpZmllcil7dmFyIHM9YS5iYW5rX2lkZW50aWZpZXIuc3BsaXQoIi0iKSxuPXBhcnNlSW50KHNbMF0pLG89cGFyc2VJbnQoc1sxXSk7ZS5iYW5rSWRlbnRpZmllcj1lLmJiYW4uc2xpY2UobixvKzEpfWlmKGEuYnJhbmNoX2luZGVudGlmaWVyKXt2YXIgcz1hLmJyYW5jaF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoc1swXSksbz1wYXJzZUludChzWzFdKTtlLmJyYW5jaElkZW50aWZpZXI9ZS5iYmFuLnNsaWNlKG4sbysxKX19ZWxzZSBlLnZhbGlkPSExO3JldHVybiBlfWZ1bmN0aW9uIHE2dCh0LGUpe3ZhciByPW5ldyBSZWdFeHAoZSwiIik7cmV0dXJuIHIudGVzdCh0KX1mdW5jdGlvbiBWNnQodCl7cmV0dXJuIHR5cGVvZiB0IT0ic3RyaW5nIj9udWxsOnQucmVwbGFjZSgvWy1cIF0vZywiIikudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBqNnQodCxlKXtpZih0eXBlb2YgdCE9InN0cmluZyIpcmV0dXJuIG51bGw7ZT09bnVsbCYmKGU9IiAiKTt2YXIgcj1WNnQodCk7cmV0dXJuIHI9PT1udWxsP251bGw6ci5yZXBsYWNlKC8oLns0fSkoPyEkKS9nLCIkMSIrZSl9ZnVuY3Rpb24gc1VyKHQpe3ZhciBlPXQuc2xpY2UoMCwyKSxyPXBhcnNlSW50KHQuc2xpY2UoMiw0KSwxMCksYT10LnNsaWNlKDQpLHM9blVyKCIiLmNvbmNhdChhKS5jb25jYXQoZSwiMDAiKSksbj1YcGUocyk7cmV0dXJuIDk4LW49PT1yfWZ1bmN0aW9uIG5Vcih0KXtyZXR1cm4gdC5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKGUpe3ZhciByPWUuY2hhckNvZGVBdCgwKTtyZXR1cm4gcj49NjU/KHItNTUpLnRvU3RyaW5nKCk6ZX0pLmpvaW4oIiIpfWZ1bmN0aW9uIEdFYSh0KXtyZXR1cm4gWHBlKG5Vcih0LnNsaWNlKDQpK3Quc2xpY2UoMCw0KSkpfWZ1bmN0aW9uIHlvMSgpe3ZhciB0PXt9O2Zvcih2YXIgZSBpbiBRbCl7dmFyIHI9UWxbZV07dFtlXT17Y2hhcnM6ci5jaGFyc3x8bnVsbCxiYmFuX3JlZ2V4cDpyLmJiYW5fcmVnZXhwfHxudWxsLElCQU5SZWdpc3RyeTpyLklCQU5SZWdpc3RyeXx8ITEsU0VQQTpyLlNFUEF8fCExfX1yZXR1cm4gdH1mdW5jdGlvbiBZRWEodCl7aWYoIXQpcmV0dXJuITE7dmFyIGU9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKSxyPVFsW3QudG9VcHBlckNhc2UoKS5zbGljZSg0LDYpXTtyZXR1cm4gZS50ZXN0KHQpJiZyIT09dm9pZCAwfWZ1bmN0aW9uIHdvMSh0KXt2YXIgZT17ZXJyb3JDb2RlczpbXSx2YWxpZDohMH07aWYodCE9bnVsbCYmdCE9PSIiKXt2YXIgcj1RbFt0LnRvVXBwZXJDYXNlKCkuc2xpY2UoNCw2KV07aWYocj09PXZvaWQgMCllLnZhbGlkPSExLGUuZXJyb3JDb2Rlcy5wdXNoKGJ0ZS5Ob0JJQ0NvdW50cnkpO2Vsc2V7dmFyIGE9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKTthLnRlc3QodCl8fChlLnZhbGlkPSExLGUuZXJyb3JDb2Rlcy5wdXNoKGJ0ZS5Xcm9uZ0JJQ0Zvcm1hdCkpfX1lbHNlIGUudmFsaWQ9ITEsZS5lcnJvckNvZGVzLnB1c2goYnRlLk5vQklDUHJvdmlkZWQpO3JldHVybiBlfWZ1bmN0aW9uIGtvMSh0KXt2YXIgZT17fSxyPXQudG9VcHBlckNhc2UoKTtyZXR1cm4gWUVhKHIpPyhlLmJhbmtDb2RlPXIuc2xpY2UoMCw0KSxlLmNvdW50cnlDb2RlPXIuc2xpY2UoNCw2KSxlLmxvY2F0aW9uQ29kZT1yLnNsaWNlKDYsOCksZS50ZXN0QklDPWUubG9jYXRpb25Db2RlWzFdPT09IjAiLGUuYnJhbmNoQ29kZT1yLmxlbmd0aD44P3Iuc2xpY2UoOCk6bnVsbCxlLnZhbGlkPSEwKTplLnZhbGlkPSExLGV9dmFyIHhjLGJ0ZSxLRWEsWkVhLFhwZSxxeSxRRWEsWEVhLG9VcixKRWEsbFVyLGVJYSxjVXIsdElhLFNvMSxRbCxkVXI9dSgoKT0+eyJ1c2Ugc3RyaWN0IjtpKEpwZSwiaXNWYWxpZElCQU4iKTsoZnVuY3Rpb24odCl7dFt0Lk5vSUJBTlByb3ZpZGVkPTBdPSJOb0lCQU5Qcm92aWRlZCIsdFt0Lk5vSUJBTkNvdW50cnk9MV09Ik5vSUJBTkNvdW50cnkiLHRbdC5Xcm9uZ0JCQU5MZW5ndGg9Ml09Ildyb25nQkJBTkxlbmd0aCIsdFt0Lldyb25nQkJBTkZvcm1hdD0zXT0iV3JvbmdCQkFORm9ybWF0Iix0W3QuQ2hlY2tzdW1Ob3ROdW1iZXI9NF09IkNoZWNrc3VtTm90TnVtYmVyIix0W3QuV3JvbmdJQkFOQ2hlY2tzdW09NV09Ildyb25nSUJBTkNoZWNrc3VtIix0W3QuV3JvbmdBY2NvdW50QmFua0JyYW5jaENoZWNrc3VtPTZdPSJXcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW0iLHRbdC5RUklCQU5Ob3RBbGxvd2VkPTddPSJRUklCQU5Ob3RBbGxvd2VkIn0pKHhjfHwoeGM9e30pKTtpKGdvMSwidmFsaWRhdGVJQkFOIik7aShXRWEsImlzVmFsaWRCQkFOIik7aShibzEsImlzU0VQQUNvdW50cnkiKTtpKGlVciwiaXNRUklCQU4iKTtpKHhvMSwiY29tcG9zZUlCQU4iKTtpKHZvMSwiZXh0cmFjdElCQU4iKTtpKHE2dCwiY2hlY2tGb3JtYXRCQkFOIik7aShWNnQsImVsZWN0cm9uaWNGb3JtYXRJQkFOIik7aShqNnQsImZyaWVuZGx5Rm9ybWF0SUJBTiIpO2koc1VyLCJpc1ZhbGlkSUJBTkNoZWNrc3VtIik7aShuVXIsInJlcGxhY2VDaGFyYXRlcldpdGhDb2RlIik7aShHRWEsIm1vZDk3MTBJYmFuIik7aSh5bzEsImdldENvdW50cnlTcGVjaWZpY2F0aW9ucyIpO2koWUVhLCJpc1ZhbGlkQklDIik7KGZ1bmN0aW9uKHQpe3RbdC5Ob0JJQ1Byb3ZpZGVkPTBdPSJOb0JJQ1Byb3ZpZGVkIix0W3QuTm9CSUNDb3VudHJ5PTFdPSJOb0JJQ0NvdW50cnkiLHRbdC5Xcm9uZ0JJQ0Zvcm1hdD0yXT0iV3JvbmdCSUNGb3JtYXQifSkoYnRlfHwoYnRlPXt9KSk7aSh3bzEsInZhbGlkYXRlQklDIik7aShrbzEsImV4dHJhY3RCSUMiKTtLRWE9aShmdW5jdGlvbih0KXtmb3IodmFyIGU9WzUsNCwzLDIsNyw2LDUsNCwzLDJdLHI9dC5yZXBsYWNlKC9bXHMuXSsvZywiIiksYT1wYXJzZUludChyLmNoYXJBdCgxMCksMTApLHM9ci5zdWJzdHJpbmcoMCwxMCksbj0wLG89MDtvPDEwO28rKyluKz1wYXJzZUludChzLmNoYXJBdChvKSwxMCkqZVtvXTt2YXIgbD1uJTExO3JldHVybiBhPT09KGw9PT0wPzA6MTEtbCl9LCJjaGVja05vcndheUJCQU4iKSxaRWE9aShmdW5jdGlvbih0KXt2YXIgZT10LnJlcGxhY2UoL1tccy5dKy9nLCIiKSxyPXBhcnNlSW50KGUuc3Vic3RyaW5nKDAsZS5sZW5ndGgtMiksMTApLGE9cGFyc2VJbnQoZS5zdWJzdHJpbmcoZS5sZW5ndGgtMixlLmxlbmd0aCksMTApLHM9ciU5Nz09PTA/OTc6ciU5NztyZXR1cm4gcz09PWF9LCJjaGVja0JlbGdpYW5CQkFOIiksWHBlPWkoZnVuY3Rpb24odCl7Zm9yKDt0Lmxlbmd0aD4yOyl7dmFyIGU9dC5zbGljZSgwLDYpLHI9cGFyc2VJbnQoZSwxMCk7aWYoaXNOYU4ocikpcmV0dXJuIE5hTjt0PXIlOTcrdC5zbGljZShlLmxlbmd0aCl9cmV0dXJuIHBhcnNlSW50KHQsMTApJTk3fSwibW9kOTcxMCIpLHF5PWkoZnVuY3Rpb24odCl7dmFyIGU9dC5yZXBsYWNlKC9bXHMuXSsvZywiIikscj1YcGUoZSk7cmV0dXJuIHI9PT0xfSwiY2hlY2tNb2Q5NzEwQkJBTiIpLFFFYT1pKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bMyw5LDcsMSwzLDksN10scj1wYXJzZUludCh0LmNoYXJBdCg3KSwxMCksYT10LnN1YnN0cmluZygwLDcpLHM9MCxuPTA7bjw3O24rKylzKz1wYXJzZUludChhLmNoYXJBdChuKSwxMCkqZVtuXTt2YXIgbz1zJTEwO3JldHVybiByPT09KG89PT0wPzA6MTAtbyl9LCJjaGVja1BvbGFuZEJCQU4iKSxYRWE9aShmdW5jdGlvbih0KXtmb3IodmFyIGU9WzQsOCw1LDEwLDksNywzLDZdLHI9WzEsMiw0LDgsNSwxMCw5LDcsMyw2XSxhPXBhcnNlSW50KHQuY2hhckF0KDgpLDEwKSxzPXBhcnNlSW50KHQuY2hhckF0KDkpLDEwKSxuPXQuc3Vic3RyaW5nKDAsOCksbz10LnN1YnN0cmluZygxMCwyMCksbD0wLGM9MDtjPDg7YysrKWwrPXBhcnNlSW50KG4uY2hhckF0KGMpLDEwKSplW2NdO3ZhciBkPWwlMTE7aWYoYSE9PShkPT09MD8wOmQ9PT0xPzE6MTEtZCkpcmV0dXJuITE7bD0wO2Zvcih2YXIgYz0wO2M8MTA7YysrKWwrPXBhcnNlSW50KG8uY2hhckF0KGMpLDEwKSpyW2NdO3JldHVybiBkPWwlMTEscz09PShkPT09MD8wOmQ9PT0xPzE6MTEtZCl9LCJjaGVja1NwYWluQkJBTiIpLG9Vcj1pKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTEwLGE9MDthPHQubGVuZ3RoO2ErKylyKz1wYXJzZUludCh0LmNoYXJBdChhKSwxMCksciUxMCE9PTAmJihyPXIlMTApLHI9cioyLHI9ciUxMTtyZXR1cm4gZT09PSgxMS1yPT09MTA/MDoxMS1yKX0sImNoZWNrTW9kMTExMCIpLEpFYT1pKGZ1bmN0aW9uKHQpe3ZhciBlPXBhcnNlSW50KHQuY2hhckF0KDYpLDEwKSxyPXBhcnNlSW50KHQuY2hhckF0KDE2KSwxMCksYT10LnN1YnN0cmluZygwLDYpLHM9dC5zdWJzdHJpbmcoNywxNik7cmV0dXJuIG9VcihhLGUpJiZvVXIocyxyKX0sImNoZWNrQ3JvYXRpYW5CQkFOIiksbFVyPWkoZnVuY3Rpb24odCl7Zm9yKHZhciBlPVsxMCw1LDgsNCwyLDFdLHI9WzYsMyw3LDksMTAsNSw4LDQsMiwxXSxhPXBhcnNlSW50KHQuY2hhckF0KDkpLDEwKSxzPXBhcnNlSW50KHQuY2hhckF0KDE5KSwxMCksbj10LnN1YnN0cmluZyg0LDkpLG89dC5zdWJzdHJpbmcoMTAsMTkpLGw9MCxjPTA7YzxuLmxlbmd0aDtjKyspbCs9cGFyc2VJbnQobi5jaGFyQXQoYyksMTApKmVbY107dmFyIGQ9bCUxMTtpZihhIT09KGQ9PT0wPzA6ZD09PTE/MToxMS1kKSlyZXR1cm4hMTtsPTA7Zm9yKHZhciBjPTA7YzxvLmxlbmd0aDtjKyspbCs9cGFyc2VJbnQoby5jaGFyQXQoYyksMTApKnJbY107cmV0dXJuIGQ9bCUxMSxzPT09KGQ9PT0wPzA6ZD09PTE/MToxMS1kKX0sImNoZWNrQ3plY2hBbmRTbG92YWtCQkFOIiksZUlhPWkoZnVuY3Rpb24odCl7Zm9yKHZhciBlPVs3LDEsMyw3LDEsMyw3LDEsMyw3LDEsMyw3XSxyPXBhcnNlSW50KHQuY2hhckF0KDE1KSwxMCksYT10LnN1YnN0cmluZygyLDE1KSxzPTAsbj0wO248YS5sZW5ndGg7bisrKXMrPXBhcnNlSW50KGEuY2hhckF0KG4pLDEwKSplW25dO3ZhciBvPXMlMTA7cmV0dXJuIHI9PT0obz09PTA/MDoxMC1vKX0sImNoZWNrRXN0b25pYW5CQkFOIiksY1VyPWkoZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQucmVwbGFjZSgvW1xzLl0rL2csIiIpLHI9QXJyYXkuZnJvbShlKSxhPTA7YTxlLmxlbmd0aDthKyspe3ZhciBzPXJbYV0uY2hhckNvZGVBdCgwKTtpZihzPj02NSlzd2l0Y2gocyl7Y2FzZSA2NTpjYXNlIDc0OnJbYV09IjEiO2JyZWFrO2Nhc2UgNjY6Y2FzZSA3NTpjYXNlIDgzOnJbYV09IjIiO2JyZWFrO2Nhc2UgNjc6Y2FzZSA3NjpjYXNlIDg0OnJbYV09IjMiO2JyZWFrO2Nhc2UgNjg6Y2FzZSA3NzpjYXNlIDg1OnJbYV09IjQiO2JyZWFrO2Nhc2UgNjk6Y2FzZSA3ODpjYXNlIDg2OnJbYV09IjUiO2JyZWFrO2Nhc2UgNzA6Y2FzZSA3OTpjYXNlIDg3OnJbYV09IjYiO2JyZWFrO2Nhc2UgNzE6Y2FzZSA4MDpjYXNlIDg4OnJbYV09IjciO2JyZWFrO2Nhc2UgNzI6Y2FzZSA4MTpjYXNlIDg5OnJbYV09IjgiO2JyZWFrO2Nhc2UgNzM6Y2FzZSA4MjpjYXNlIDkwOnJbYV09IjkiO2JyZWFrfX12YXIgbj1YcGUoci5qb2luKCIiKSk7cmV0dXJuIG49PT0wfSwiY2hlY2tGcmVuY2hCQkFOIiksdElhPWkoZnVuY3Rpb24odCl7Zm9yKHZhciBlPVs5LDcsMywxLDksNywzLDEsOSw3LDMsMSw5LDcsM10scj1wYXJzZUludCh0LmNoYXJBdCg3KSwxMCksYT10LnN1YnN0cmluZygwLDcpLHM9MCxuPTA7bjxhLmxlbmd0aDtuKyspcys9cGFyc2VJbnQoYS5jaGFyQXQobiksMTApKmVbbl07dmFyIG89cyUxMDtpZihyIT09KG89PT0wPzA6MTAtbykpcmV0dXJuITE7aWYocz0wLHQuZW5kc1dpdGgoIjAwMDAwMDAwIikpe2Zvcih2YXIgbD10LnN1YnN0cmluZyg4LDE1KSxjPXBhcnNlSW50KHQuY2hhckF0KDE1KSwxMCksbj0wO248bC5sZW5ndGg7bisrKXMrPXBhcnNlSW50KGwuY2hhckF0KG4pLDEwKSplW25dO3ZhciBkPXMlMTA7cmV0dXJuIGM9PT0oZD09PTA/MDoxMC1kKX1lbHNle2Zvcih2YXIgbD10LnN1YnN0cmluZyg4LDIzKSxjPXBhcnNlSW50KHQuY2hhckF0KDIzKSwxMCksbj0wO248bC5sZW5ndGg7bisrKXMrPXBhcnNlSW50KGwuY2hhckF0KG4pLDEwKSplW25dO3ZhciBmPXMlMTA7cmV0dXJuIGM9PT0oZj09PTA/MDoxMC1mKX19LCJjaGVja0h1bmdhcmlhbkJCQU4iKSxTbzE9aShmdW5jdGlvbih0LGUpe3JldHVybiB0eXBlb2YgUWxbdF0+InUiPyExOihRbFt0XS5iYmFuX3ZhbGlkYXRpb25fZnVuYz1lLCEwKX0sInNldENvdW50cnlCQkFOVmFsaWRhdGlvbiIpLFFsPXtBRDp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXs4fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yNCJ9LEFFOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezN9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiI3LTIzIn0sQUY6e30sQUc6e30sQUk6e30sQUw6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17OH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTciLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yOCJ9LEFNOnt9LEFPOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQifSxBUTp7fSxBUjp7fSxBUzp7fSxBVDp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LEFVOnt9LEFXOnt9LEFYOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMH0sQVo6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjgifSxCQTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpxeSxJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTUiLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sQkI6e30sQkQ6e30sQkU6e2NoYXJzOjE2LGJiYW5fcmVnZXhwOiJeWzAtOV17MTJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6WkVhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTE2In0sQkY6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsyMn0kIn0sQkc6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXs2fVtBLVowLTldezh9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sQkg6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjIifSxCSTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI3In0sQko6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsyMn0kIn0sQkw6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIn0sQk06e30sQk46e30sQk86e30sQlE6e30sQlI6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9W0EtWl17MX1bQS1aMC05XXsxfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjgtMTIiLGJhbmtfaWRlbnRpZmllcjoiMC03IixhY2NvdW50X2luZGVudGlmaWVyOiIxNy0yOSJ9LEJTOnt9LEJUOnt9LEJWOnt9LEJXOnt9LEJZOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17NH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMifSxCWjp7fSxDQTp7fSxDQzp7fSxDRDp7fSxDRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sQ0c6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENIOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXlswLTldezV9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxDSTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsxfVswLTldezIzfSQifSxDSzp7fSxDTDp7fSxDTTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sQ046e30sQ086e30sQ1I6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIyIn0sQ1U6e30sQ1Y6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCJ9LENXOnt9LENYOnt9LENZOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezh9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTciLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yOCJ9LENaOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmxVcixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LERFOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC03IixhY2NvdW50X2luZGVudGlmaWVyOiIxMy0yMiJ9LERKOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQiLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjcifSxESzp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xOCJ9LERNOnt9LERPOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTI4In0sRFo6e2NoYXJzOjI2LGJiYW5fcmVnZXhwOiJeWzAtOV17MjJ9JCJ9LEVDOnt9LEVFOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmVJYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMCJ9LEVHOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXlswLTldezI1fSIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTctMjkifSxFSDp7fSxFUjp7fSxFUzp7Y2hhcnM6MjQsYmJhbl92YWxpZGF0aW9uX2Z1bmM6WEVhLGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNCJ9LEVUOnt9LEZJOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTAifSxGSjp7fSxGSzp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezEyfSQiLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI2LTE4In0sRk06e30sRk86e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE4In0sRlI6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpjVXIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQiLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNCJ9LEdBOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxHQjp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC05IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LEdEOnt9LEdFOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI2LTIyIn0sR0Y6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LEdHOnt9LEdIOnt9LEdJOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTV9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjMifSxHTDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTgifSxHTTp7fSxHTjp7fSxHUDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sR1E6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LEdSOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezd9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTYiLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiI3LTI3In0sR1M6e30sR1Q6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17MjR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTI4In0sR1U6e30sR1c6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsxOX0kIn0sR1k6e30sSEs6e30sSE06e30sSE46e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH0kIn0sSFI6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeWzAtOV17MTd9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6SkVhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC02In0sSFQ6e30sSFU6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17MjR9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6dElhLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy02IixiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LElEOnt9LElFOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTkiLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sSUw6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17MTl9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy01IixiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LElNOnt9LElOOnt9LElPOnt9LElROntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTV9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC02IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTEtMjMifSxJUjp7Y2hhcnM6MjYsYmJhbl9yZWdleHA6Il5bMC05XXsyMn0kIn0sSVM6e2NoYXJzOjI2LGJiYW5fcmVnZXhwOiJeWzAtOV17MjJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTMiLGJhbmtfaWRlbnRpZmllcjoiMC0xIn0sSVQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeW0EtWl17MX1bMC05XXsxMH1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjYtMTAiLGJhbmtfaWRlbnRpZmllcjoiMS01IixhY2NvdW50X2luZGVudGlmaWVyOiI0LTI3In0sSkU6e30sSk06e30sSk86e2NoYXJzOjMwLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXs0fVtBLVowLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiI0LTcifSxKUDp7fSxLRTp7fSxLRzp7fSxLSDp7fSxLSTp7fSxLTTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sS046e30sS1A6e30sS1I6e30sS1c6e2NoYXJzOjMwLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyMn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjIwLTMwIn0sS1k6e30sS1o6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17M31bQS1aMC05XXsxM30kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMjAifSxMQTp7fSxMQjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXs0fVtBLVowLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjgifSxMQzp7Y2hhcnM6MzIsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0zMiJ9LExJOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXlswLTldezV9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxMSzp7fSxMUjp7fSxMUzp7fSxMVDp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LExVOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezN9W0EtWjAtOV17MTN9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTIifSxMVjp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezEzfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTIxIn0sTFk6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy01IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTAtMjUifSxNQTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXsyNH0kIn0sTUM6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpjVXIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00In0sTUQ6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bQS1aMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjYtMjQifSxNRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpxeSxJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjIifSxNRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sTUc6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LE1IOnt9LE1LOntjaGFyczoxOSxiYmFuX3JlZ2V4cDoiXlswLTldezN9W0EtWjAtOV17MTB9WzAtOV17Mn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpxeSxJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIifSxNTDp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezIyfSQifSxNTTp7fSxNTjp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjAifSxNTzp7fSxNUDp7fSxNUTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sTVI6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNyJ9LE1TOnt9LE1UOntjaGFyczozMSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17NX1bQS1aMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtOCIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE1LTMxIn0sTVU6e2NoYXJzOjMwLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxOX1bQS1aXXszfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjYtNyIsYmFua19pZGVudGlmaWVyOiIwLTUiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMzAifSxNVjp7fSxNVzp7fSxNWDp7fSxNWTp7fSxNWjp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIn0sTkE6e30sTkM6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE5FOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MjJ9JCJ9LE5GOnt9LE5HOnt9LE5JOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9JCIsYmFua19pZGVudGlmaWVyOiIwLTMiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI4LTI4In0sTkw6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxMH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0xOCJ9LE5POntjaGFyczoxNSxiYmFuX3JlZ2V4cDoiXlswLTldezExfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOktFYSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xNSJ9LE5QOnt9LE5SOnt9LE5VOnt9LE5aOnt9LE9NOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezN9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITEsYmFua19pZGVudGlmaWVyOiIwLTIifSxQQTp7fSxQRTp7fSxQRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sUEc6e30sUEg6e30sUEs6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17NH1bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMifSxQTDp7Y2hhcnM6MjgsYmJhbl92YWxpZGF0aW9uX2Z1bmM6UUVhLGJiYW5fcmVnZXhwOiJeWzAtOV17MjR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIwLTciLGFjY291bnRfaW5kZW50aWZpZXI6IjItMjgifSxQTTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sUE46e30sUFI6e30sUFM6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17NH1bMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE3LTI5In0sUFQ6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6cXksSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMifSxQVzp7fSxQWTp7fSxRQTp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOSJ9LFJFOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxSTzp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTI0In0sUlM6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6cXksSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sUlU6e2NoYXJzOjMzLGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9W0EtWjAtOV17MTV9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiOS0xMyIsYmFua19pZGVudGlmaWVyOiIwLTgiLGFjY291bnRfaW5kZW50aWZpZXI6IjEzLTMzIn0sUlc6e30sU0E6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17Mn1bQS1aMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTI0In0sU0I6e30sU0M6e2NoYXJzOjMxLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH1bQS1aXXszfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjYtNyIsYmFua19pZGVudGlmaWVyOiIwLTUiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTI4In0sU0Q6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI2LTE4In0sU0U6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTIifSxTRzp7fSxTSDp7fSxTSTp7Y2hhcnM6MTksYmJhbl9yZWdleHA6Il5bMC05XXsxNX0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpxeSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItNCIsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjktMTYifSxTSjp7fSxTSzp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpsVXIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITB9LFNMOnt9LFNNOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXltBLVpdezF9WzAtOV17MTB9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTEwIn0sU046e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsyMn0kIn0sU086e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17MTl9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC02IixhY2NvdW50X2luZGVudGlmaWVyOiIxMS0yMyJ9LFNSOnt9LFNTOnt9LFNUOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyJ9LFNWOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjgifSxTWDp7fSxTWTp7fSxTWjp7fSxUQzp7fSxURDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sVEY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFRHOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MjJ9JCJ9LFRIOnt9LFRKOnt9LFRLOnt9LFRMOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI0LTIzIn0sVE06e30sVE46e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi00IixhY2NvdW50X2luZGVudGlmaWVyOiI0LTI0In0sVE86e30sVFI6e2NoYXJzOjI2LGJiYW5fcmVnZXhwOiJeWzAtOV17NX1bQS1aMC05XXsxN30kIixJQkFOUmVnaXN0cnk6ITB9LFRUOnt9LFRWOnt9LFRXOnt9LFRaOnt9LFVBOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXlswLTldezZ9W0EtWjAtOV17MTl9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjE1LTI5In0sVUc6e30sVU06e30sVVM6e30sVVk6e30sVVo6e30sVkE6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9IixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI3LTIyIn0sVkM6e30sVkU6e30sVkc6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17NH1bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yNCJ9LFZJOnt9LFZOOnt9LFZVOnt9LFdGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxXUzp7fSxYSzp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjAifSxZRTp7fSxZVDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sWkE6e30sWk06e30sWlc6e319fSk7dmFyIHVVcixwVXI9dSgoKT0+e3ZlKCk7dVVyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7cmVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYXltZW50LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIElCQU4gSW5wdXQifSAuc3VidGl0bGU9JHsiSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIHdpdGggYXV0b21hdGljIGZvcm1hdHRpbmcifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiQmFuayBBY2NvdW50IElCQU4ifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiRW50ZXIgeW91ciBJbnRlcm5hdGlvbmFsIEJhbmsgQWNjb3VudCBOdW1iZXIifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiWW91ciBJQkFOIGNhbiBiZSBmb3VuZCBvbiB5b3VyIGJhbmsgc3RhdGVtZW50In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJWZXJpZmllZCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgSUJBTiBoYXMgYmVlbiB2ZXJpZmllZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJERTg5MzcwNDAwNDQwNTMyMDEzMDAwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlBheW1lbnQgSW5mb3JtYXRpb24ifSAuc3VidGl0bGU9JHsiSUJBTiBpbnB1dCB3aXRoIGhvcml6b250YWwgbGF5b3V0IGZvciBwYXltZW50IGZvcm1zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgSG9sZGVyIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHsiSm9obiBEb2UifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgICAgLmxhYmVsPSR7IklCQU4ifQogICAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAgIC52YWx1ZT0keyJHQjgyV0VTVDEyMzQ1Njk4NzY1NDMyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJWYWxpZGF0aW9uICYgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmVkIGZpZWxkcyBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IlBheW1lbnQgQWNjb3VudCJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJSZXF1aXJlZCBmb3IgcHJvY2Vzc2luZyBwYXltZW50cyJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IkxvY2tlZCBJQkFOIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgSUJBTiBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJGUjE0MjAwNDEwMTAwNTA1MDAwMTNNMDI2MDYifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhbmsgVHJhbnNmZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmb3JtIGV4YW1wbGUgd2l0aCBJQkFOIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUmVjaXBpZW50IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIC5sYWJlbD0keyJSZWNpcGllbnQgSUJBTiJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlRyYW5zZmVyIFJlZmVyZW5jZSJ9IC5pbmZvVGV4dD0keyJPcHRpb25hbCByZWZlcmVuY2UgZm9yIHRoZSB0cmFuc2ZlciJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQW1vdW50In0gLmlucHV0VHlwZT0keyJudW1iZXIifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBlZmUsazksdGZlLFU2dD11KCgpPT57dmUoKTtNcigpO0NpKCk7ZFVyKCk7cFVyKCk7bHQoKTtlZmU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGs5PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSx0ZmU9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWlucHV0LWliYW4iKV0sZSxyPVtdLGEscz1FdCxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0lucHV0SWJhbiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLGVmZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudGVyZWRTdHJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImVudGVyZWRTdHJpbmciaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5lbnRlcmVkU3RyaW5nLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuZW50ZXJlZFN0cmluZz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksZWZlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW50ZXJlZEliYW5Jc1ZhbGlkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJlbnRlcmVkSWJhbklzVmFsaWQiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5lbnRlcmVkSWJhbklzVmFsaWQsImdldCIpLHNldDppKChnLHkpPT57Zy5lbnRlcmVkSWJhbklzVmFsaWQ9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLGVmZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJ2YWx1ZSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnZhbHVlLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cudmFsdWU9eX0sInNldCIpfSxtZXRhZGF0YTpifSxoLG0pLGVmZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHIpLHY9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfXN0YXRpYyBkZW1vPXVVcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9azkodGhpcyxvLCIiKTtnZXQgZW50ZXJlZFN0cmluZygpe3JldHVybiB0aGlzLiNlfXNldCBlbnRlcmVkU3RyaW5nKGIpe3RoaXMuI2U9Yn0jdD0oazkodGhpcyxsKSxrOSh0aGlzLGQsITEpKTtnZXQgZW50ZXJlZEliYW5Jc1ZhbGlkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGVudGVyZWRJYmFuSXNWYWxpZChiKXt0aGlzLiN0PWJ9I3I9KGs5KHRoaXMsZiksazkodGhpcyxoLCIiKSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHZhbHVlKGIpe3RoaXMuI3I9Yn1zdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogSUJBTiBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfHwiSUJBTiJ9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiREU4OSAzNzA0IDAwNDQgMDUzMiAwMTMwIDAwIn0KICAgICAgICAgIC52YWxpZGF0aW9uRnVuY3Rpb249JHtiPT57bGV0IGc9Yi5yZXBsYWNlKC8gL2csIiIpO3JldHVybiBnLmxlbmd0aD09PTA/e3ZhbGlkOiEwLG1lc3NhZ2U6IiJ9OkpwZShnKT97dmFsaWQ6ITAsbWVzc2FnZToiSUJBTiBpcyB2YWxpZCJ9Ont2YWxpZDohMSxtZXNzYWdlOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBJQkFOIn19fQogICAgICAgICAgQGlucHV0PSR7Yj0+e3RoaXMudmFsaWRhdGVJYmFuKGIpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoYil7c3VwZXIuZmlyc3RVcGRhdGVkKGIpO2xldCBnPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTtnJiZnLmNoYW5nZVN1YmplY3QmJmcuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pfWFzeW5jIHZhbGlkYXRlSWJhbihiKXtsZXQgZz1iLnRhcmdldCx5PWc/LnZhbHVlO3k9eXx8IiIsdGhpcy5lbnRlcmVkU3RyaW5nIT09eSYmKHRoaXMuZW50ZXJlZFN0cmluZz1qNnQoeSl8fCIiLGcmJihnLnZhbHVlPXRoaXMuZW50ZXJlZFN0cmluZyx0aGlzLnZhbHVlPXRoaXMuZW50ZXJlZFN0cmluZyx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSkpLHRoaXMuZW50ZXJlZEliYW5Jc1ZhbGlkPUpwZSh0aGlzLmVudGVyZWRTdHJpbmcucmVwbGFjZSgvIC9nLCIiKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShiKXt0aGlzLnZhbHVlPWIsdGhpcy5lbnRlcmVkU3RyaW5nPWo2dChiKXx8IiJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGs5KHRoaXMsbSl9c3RhdGlje2s5KGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBmVXIsaFVyPXUoKCk9Pnt2ZSgpO2ZVcj1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3JlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNldHRpbmdzLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuc2V0dGluZ3MtZ3JpZCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TXVsdGktT3B0aW9uIFRvZ2dsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNlbGVjdCBmcm9tIG11bHRpcGxlIG9wdGlvbnMgd2l0aCBhIHNtb290aCBzbGlkaW5nIGluZGljYXRvciBhbmltYXRpb24uPC9kaXY+CgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGlzcGxheSBNb2RlIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkNob29zZSBob3cgY29udGVudCBpcyBkaXNwbGF5ZWQifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBzZXR0aW5nIGFmZmVjdHMgaG93IGl0ZW1zIGFwcGVhciBvbiB5b3VyIGRhc2hib2FyZCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJMaXN0IFZpZXciLCJHcmlkIFZpZXciLCJDb21wYWN0Il19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJHcmlkIFZpZXcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiVC1TaGlydCBTaXplIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlNlbGVjdCB5b3VyIHByZWZlcnJlZCBzaXplIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIlhTIiwiUyIsIk0iLCJMIiwiWEwiLCJYWEwiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik0ifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Cb29sZWFuIFRvZ2dsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNpbXBsZSBvbi9vZmYgc3dpdGNoZXMgd2l0aCBjdXN0b21pemFibGUgbGFiZWxzIGZvciBjbGVhcmVyIGNvbnRleHQuPC9kaXY+CgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJFbmFibGUgb3IgZGlzYWJsZSBwdXNoIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7InRydWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiVGhlbWUgTW9kZSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJTd2l0Y2ggYmV0d2VlbiBsaWdodCBhbmQgZGFyayB0aGVtZSJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IkRhcmsifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJMaWdodCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJEYXJrIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2V0dGluZ3MgR3JpZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcnJhbmdlZCBpbiBhIHJlc3BvbnNpdmUgZ3JpZCBsYXlvdXQuPC9kaXY+CgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1ncmlkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQXV0by1TYXZlIn0KICAgICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IkVuYWJsZWQifQogICAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IkRpc2FibGVkIn0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW5hYmxlZCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJMYW5ndWFnZSJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVuZ2xpc2giLCJHZXJtYW4iLCJGcmVuY2giLCJTcGFuaXNoIl19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVuZ2xpc2gifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUXVhbGl0eSJ9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkxvdyIsIk1lZGl1bSIsIkhpZ2giLCJVbHRyYSJdfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJIaWdoIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlByaXZhY3kifQogICAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiUHJpdmF0ZSJ9CiAgICAgICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiUHVibGljIn0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJpdmF0ZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdGF0ZXMgJiBGb3JtIEludGVncmF0aW9uPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+RXhhbXBsZXMgb2YgZGlzYWJsZWQgc3RhdGVzIGFuZCBpbnRlZ3JhdGlvbiB3aXRoaW4gZm9ybXMuPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgIC5sYWJlbD0keyJBY2NvdW50IFR5cGUifQogICAgICAgICAgLmluZm9UZXh0PSR7IlRoaXMgc2V0dGluZyBpcyBsb2NrZWQifQogICAgICAgICAgLm9wdGlvbnM9JHtbIkZyZWUiLCJQcm8iLCJFbnRlcnByaXNlIl19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW50ZXJwcmlzZSJ9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIAogICAgICAgIDxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlByb2plY3QgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJWaXNpYmlsaXR5In0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiUHVibGljIn0KICAgICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiUHJpdmF0ZSJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcml2YXRlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiTGljZW5zZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJNSVQiLCJBcGFjaGUgMi4wIiwiR1BMIHYzIiwiUHJvcHJpZXRhcnkiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik1JVCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBTOSxvbCxyZmUsVzZ0PXUoKCk9Pnt2ZSgpO0NpKCk7ZmMoKTtoVXIoKTtsdCgpO1M5PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxvbD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0scmZlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZSIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRNdWx0aXRvZ2dsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBMPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCgpXSxwPVtQKCldLHY9W1Aoe3R5cGU6QXJyYXl9KV0seT1bUCgpXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0sUzkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ0eXBlImluIEUsImhhcyIpLGdldDppKEU9PkUudHlwZSwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnR5cGU9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxvLGwpLFM5KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm9vbGVhblRydWVOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJib29sZWFuVHJ1ZU5hbWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5ib29sZWFuVHJ1ZU5hbWUsImdldCIpLHNldDppKChFLEIpPT57RS5ib29sZWFuVHJ1ZU5hbWU9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxkLGYpLFM5KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm9vbGVhbkZhbHNlTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iYm9vbGVhbkZhbHNlTmFtZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmJvb2xlYW5GYWxzZU5hbWUsImdldCIpLHNldDppKChFLEIpPT57RS5ib29sZWFuRmFsc2VOYW1lPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0saCxtKSxTOSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im9wdGlvbnMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5vcHRpb25zLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0Uub3B0aW9ucz1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGIsZyksUzkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE9wdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2VsZWN0ZWRPcHRpb24iaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zZWxlY3RlZE9wdGlvbiwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnNlbGVjdGVkT3B0aW9uPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sayxNKSxTOSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvb2xWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iYm9vbFZhbHVlImluIEUsImhhcyIpLGdldDppKEU9PkUuYm9vbFZhbHVlLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuYm9vbFZhbHVlPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sXyxTKSxTOShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpMfSxudWxsLHIpLE89YT1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPWZVcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9b2wodGhpcyxvLCJtdWx0aSIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoTCl7dGhpcy4jZT1MfSN0PShvbCh0aGlzLGwpLG9sKHRoaXMsZCwidHJ1ZSIpKTtnZXQgYm9vbGVhblRydWVOYW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJvb2xlYW5UcnVlTmFtZShMKXt0aGlzLiN0PUx9I3I9KG9sKHRoaXMsZiksb2wodGhpcyxoLCJmYWxzZSIpKTtnZXQgYm9vbGVhbkZhbHNlTmFtZSgpe3JldHVybiB0aGlzLiNyfXNldCBib29sZWFuRmFsc2VOYW1lKEwpe3RoaXMuI3I9TH0jYT0ob2wodGhpcyxtKSxvbCh0aGlzLGIsW10pKTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNhfXNldCBvcHRpb25zKEwpe3RoaXMuI2E9TH0jaT0ob2wodGhpcyxnKSxvbCh0aGlzLGssIiIpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWRPcHRpb24oTCl7dGhpcy4jaT1MfSNzPShvbCh0aGlzLE0pLG9sKHRoaXMsXywhMSkpO2dldCBib29sVmFsdWUoKXtyZXR1cm4gdGhpcy4jc31zZXQgYm9vbFZhbHVlKEwpe3RoaXMuI3M9TH1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy50eXBlPT09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249PT10aGlzLmJvb2xlYW5UcnVlTmFtZTp0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZShMKXt0aGlzLnR5cGU9PT0iYm9vbGVhbiImJnR5cGVvZiBMPT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj1MP3RoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuYm9vbGVhbkZhbHNlTmFtZTp0aGlzLnNlbGVjdGVkT3B0aW9uPUwsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5oYXNVcGRhdGVkJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNldEluZGljYXRvcigpfSl9c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VsZWN0aW9ucyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgICAgIH0KCiAgICAgIC5vcHRpb24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwYWRkaW5nOiA4cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLm9wdGlvbjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2U0ZTRlNyIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbi5zZWxlY3RlZCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmluZGljYXRvciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4cHgpOwogICAgICAgIHRvcDogNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmluZGljYXRvci5uby10cmFuc2l0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuc2VsZWN0aW9ucyB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5vcHRpb24gewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5pbmRpY2F0b3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDExMywgMTEzLCAxMjIsIDAuMTUpIiwicmdiYSgxMTMsIDExMywgMTIyLCAwLjE1KSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5kaWNhdG9yIj48L2Rpdj4KICAgICAgICAgICR7dGhpcy5vcHRpb25zLm1hcChMPT53YDxkaXYgY2xhc3M9Im9wdGlvbiAke0w9PT10aGlzLnNlbGVjdGVkT3B0aW9uPyJzZWxlY3RlZCI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZWxlY3Rpb24oTCl9PgogICAgICAgICAgICAgICAgJHtMfQogICAgICAgICAgICAgIDwvZGl2PiBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudHlwZT09PSJib29sZWFuIiYmdGhpcy5vcHRpb25zLmxlbmd0aD09PTAmJih0aGlzLm9wdGlvbnM9W3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSIsdGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiXSx0aGlzLnNlbGVjdGVkT3B0aW9ufHwodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSIpKSwhdGhpcy5zZWxlY3RlZE9wdGlvbiYmdGhpcy5vcHRpb25zLmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLm9wdGlvbnNbMF0pfWFzeW5jIGZpcnN0VXBkYXRlZChMKXtzdXBlci5maXJzdFVwZGF0ZWQoTCksdGhpcy50eXBlPT09ImJvb2xlYW4iJiYodGhpcy5vcHRpb25zPVt0aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiLHRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIl0pLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsZG9jdW1lbnQuZm9udHMmJmF3YWl0IGRvY3VtZW50LmZvbnRzLnJlYWR5LGF3YWl0IG5ldyBQcm9taXNlKEU9PnJlcXVlc3RBbmltYXRpb25GcmFtZShFKSksdGhpcy5zZXRJbmRpY2F0b3IoKX1hc3luYyBoYW5kbGVTZWxlY3Rpb24oTCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWRPcHRpb249TCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuc2V0SW5kaWNhdG9yKCkpfWluZGljYXRvckluaXRpYWxpemVkPShvbCh0aGlzLFMpLCExKTthc3luYyBzZXRJbmRpY2F0b3IoKXtsZXQgTD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmluZGljYXRvciIpLEU9dGhpcy5vcHRpb25zLmluZGV4T2YodGhpcy5zZWxlY3RlZE9wdGlvbik7aWYoRT09PS0xfHwhTCl7TCYmKEwuc3R5bGUub3BhY2l0eT0iMCIpO3JldHVybn1sZXQgQj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgLm9wdGlvbjpudGgtY2hpbGQoJHtFKzJ9KWApO0wmJkImJih0aGlzLmluZGljYXRvckluaXRpYWxpemVkfHwoTC5jbGFzc0xpc3QuYWRkKCJuby10cmFuc2l0aW9uIiksdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZD0hMCxzZXRUaW1lb3V0KCgpPT57TC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9LDUwKSksTC5zdHlsZS53aWR0aD1gJHtCLmNsaWVudFdpZHRofXB4YCxMLnN0eWxlLmxlZnQ9YCR7Qi5vZmZzZXRMZWZ0fXB4YCxMLnN0eWxlLm9wYWNpdHk9IjEiKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0VmFsdWUoTCl7dGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0eXBlb2YgTD09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249TD90aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiOnRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIjp0aGlzLnNlbGVjdGVkT3B0aW9uPUwsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5oYXNVcGRhdGVkJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNldEluZGljYXRvcigpfSl9c3RhdGlje29sKGEscil9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBtVXIsZ1VyPXUoKCk9Pnt2ZSgpO21Vcj1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3JlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQaG9uZSBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJBdXRvbWF0aWMgZm9ybWF0dGluZyBmb3IgcGhvbmUgbnVtYmVycyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAubGFiZWw9JHsiUGhvbmUgTnVtYmVyIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkVudGVyIHlvdXIgcGhvbmUgbnVtYmVyIHdpdGggY291bnRyeSBjb2RlIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkluY2x1ZGUgY291bnRyeSBjb2RlIGZvciBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHsiNTU1MTIzNDU2NyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJDb250YWN0IFBob25lIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlJlcXVpcmVkIGZvciBhY2NvdW50IHZlcmlmaWNhdGlvbiJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDU1NSkgMDAwLTAwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik1vYmlsZSJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7IjQxNTU1NTEyMzQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgICAubGFiZWw9JHsiT2ZmaWNlIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDgwMCkgNTU1LTAwMDAifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcm5hdGlvbmFsIE51bWJlcnMifSAuc3VidGl0bGU9JHsiU3VwcG9ydHMgZm9ybWF0dGluZyBmb3IgbnVtYmVycyB3aXRoIGNvdW50cnkgY29kZXMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkludGVybmF0aW9uYWwgQ29udGFjdCJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBdXRvbWF0aWNhbGx5IGZvcm1hdHMgaW50ZXJuYXRpb25hbCBudW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7IjQ0MTIzNDU2Nzg5MCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWVyZ2VuY3kgQ29udGFjdCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyI5MTEifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0IGFzIHBhcnQgb2YgYSBjb250YWN0IGZvcm0ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRnVsbCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUgLmxhYmVsPSR7IlBob25lIE51bWJlciJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJFbWFpbCJ9IC5pbnB1dFR5cGU9JHsiZW1haWwifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIGFmZSxNOSxpZmUsRzZ0PXUoKCk9Pnt2ZSgpO01yKCk7Q2koKTtnVXIoKTtsdCgpO2FmZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sTTk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGlmZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtcGhvbmUiKV0sZSxyPVtdLGEscz1FdCxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0lucHV0UGhvbmUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtpZSgpXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSxhZmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb3JtYXR0ZWRQaG9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iZm9ybWF0dGVkUGhvbmUiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5mb3JtYXR0ZWRQaG9uZSwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmZvcm1hdHRlZFBob25lPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxhZmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4idmFsdWUiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy52YWx1ZSwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnZhbHVlPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCxmKSxhZmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4icGxhY2Vob2xkZXIiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnBsYWNlaG9sZGVyPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSxhZmUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1tVXI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPU05KHRoaXMsbywiIik7Z2V0IGZvcm1hdHRlZFBob25lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGZvcm1hdHRlZFBob25lKGIpe3RoaXMuI2U9Yn0jdD0oTTkodGhpcyxsKSxNOSh0aGlzLGQsIiIpKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdmFsdWUoYil7dGhpcy4jdD1ifSNyPShNOSh0aGlzLGYpLE05KHRoaXMsaCwiKzEgKDU1NSkgMTIzLTQ1NjciKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHBsYWNlaG9sZGVyKGIpe3RoaXMuI3I9Yn1zdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogUGhvbmUgaW5wdXQgc3BlY2lmaWMgc3R5bGVzIGNhbiBnbyBoZXJlICovCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmluZm9UZXh0PSR7dGhpcy5pbmZvVGV4dH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgIC52YWx1ZT0ke3RoaXMuZm9ybWF0dGVkUGhvbmV9CiAgICAgICAgICAuZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICBAaW5wdXQ9JHtiPT50aGlzLmhhbmRsZVBob25lSW5wdXQoYil9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKGIpe3N1cGVyLmZpcnN0VXBkYXRlZChiKSx0aGlzLnZhbHVlJiYodGhpcy5mb3JtYXR0ZWRQaG9uZT10aGlzLmZvcm1hdFBob25lTnVtYmVyKHRoaXMudmFsdWUpKTtsZXQgZz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7ZyYmZy5jaGFuZ2VTdWJqZWN0JiZnLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCgpPT57dGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9KX1oYW5kbGVQaG9uZUlucHV0KGIpe2xldCBnPWIudGFyZ2V0LHk9dGhpcy5jbGVhblBob25lTnVtYmVyKGcudmFsdWUpLGs9dGhpcy5mb3JtYXRQaG9uZU51bWJlcih5KTtpZihnLnZhbHVlIT09ayl7bGV0IE09Zy5zZWxlY3Rpb25TdGFydHx8MDtnLnZhbHVlPWs7bGV0IE49dGhpcy5jYWxjdWxhdGVDdXJzb3JQb3NpdGlvbih5LGssTSk7Zy5zZXRTZWxlY3Rpb25SYW5nZShOLE4pfXRoaXMuZm9ybWF0dGVkUGhvbmU9ayx0aGlzLnZhbHVlPXksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Y2xlYW5QaG9uZU51bWJlcihiKXtyZXR1cm4gYi5yZXBsYWNlKC9cRC9nLCIiKX1mb3JtYXRQaG9uZU51bWJlcihiKXtsZXQgZz10aGlzLmNsZWFuUGhvbmVOdW1iZXIoYik7cmV0dXJuIGcubGVuZ3RoPT09MD8iIjpnLmxlbmd0aDw9Mz9nOmcubGVuZ3RoPD02P2AoJHtnLnNsaWNlKDAsMyl9KSAke2cuc2xpY2UoMyl9YDpnLmxlbmd0aDw9MTA/YCgke2cuc2xpY2UoMCwzKX0pICR7Zy5zbGljZSgzLDYpfS0ke2cuc2xpY2UoNil9YDpgKyR7Zy5zbGljZSgwLGcubGVuZ3RoLTEwKX0gKCR7Zy5zbGljZSgtMTAsLTcpfSkgJHtnLnNsaWNlKC03LC00KX0tJHtnLnNsaWNlKC00KX1gfWNhbGN1bGF0ZUN1cnNvclBvc2l0aW9uKGIsZyx5KXtsZXQgaz0wO2ZvcihsZXQgTT0wO008eSYmTTxnLmxlbmd0aDtNKyspL1xkLy50ZXN0KGdbTV0pfHxrKys7cmV0dXJuIE1hdGgubWluKHkrayxnLmxlbmd0aCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShiKXt0aGlzLnZhbHVlPWIsdGhpcy5mb3JtYXR0ZWRQaG9uZT10aGlzLmZvcm1hdFBob25lTnVtYmVyKGIpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxNOSh0aGlzLG0pfXN0YXRpY3tNOShhLHIpfX07cmV0dXJuIHY9YX0pKCl9KTt2YXIgYlVyLHhVcj11KCgpPT57dmUoKTt3YSgpO3duKCk7YlVyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb24iKSxyPXQucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb2ZmIiksYT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi5mZWF0dXJlLXRvZ2dsZXMgZGVlcy1pbnB1dC10b2dnbGUiKTtlJiZyJiYoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnthLmZvckVhY2gocz0+e2xldCBuPXM7IW4uZGlzYWJsZWQmJiFuLnJlcXVpcmVkJiYobi52YWx1ZT0hMCl9KX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5mb3JFYWNoKHM9PntsZXQgbj1zOyFuLmRpc2FibGVkJiYhbi5yZXF1aXJlZCYmKG4udmFsdWU9ITEpfSl9KSl9fT4KICAgIDxzdHlsZT4KICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvZ2dsZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CgogICAgICAgIC5ob3Jpem9udGFsLXRvZ2dsZXMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CgogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLm91dHB1dC10ZXh0IHsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxMCA0MCUgODAlKSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgLnNldHRpbmdzLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICB9CgogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CgogICAgICAgIC5mZWF0dXJlLXRvZ2dsZXMgewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuZHJhZy1oaW50IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVG9nZ2xlIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBvbi9vZmYgdG9nZ2xlIHN3aXRjaCB3aXRoIGRyYWcgc3VwcG9ydCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBmZWF0dXJlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5rZXk9JHsiYmFzaWMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJBY3RpdmUgdG9nZ2xlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsiYWN0aXZlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiV2l0aCBkZXNjcmlwdGlvbiJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyB0b2dnbGUgaGFzIGFkZGl0aW9uYWwgaGVscGVyIHRleHQgZXhwbGFpbmluZyBpdHMgcHVycG9zZSJ9CiAgICAgICAgICAgIC5rZXk9JHsid2l0aERlc2MifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPHAgY2xhc3M9ImRyYWctaGludCI+VGlwOiBZb3UgY2FuIGRyYWcgdGhlIHRvZ2dsZSBrbm9iIHRvIHN3aXRjaCBzdGF0ZXM8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUb2dnbGUgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB0b2dnbGUgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRlZmF1bHQgKG9mZikifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlZCAob24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIChvZmYpIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCAob24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCAoYWx3YXlzIG9uKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgdG9nZ2xlIGNhbm5vdCBiZSB0dXJuZWQgb2ZmIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiVG9nZ2xlcyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgaW50ZXJmYWNlcyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLXRvZ2dsZXMiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiV2lGaSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkJsdWV0b290aCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkdQUyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7Ik5GQyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRvZ2dsZXMgaW4gYSB0eXBpY2FsIHNldHRpbmdzIGNvbnRleHQifT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm90aWZpY2F0aW9uIFNldHRpbmdzPC9oND4KCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUHVzaCBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnMgb24geW91ciBkZXZpY2UifQogICAgICAgICAgICAgIC5rZXk9JHsicHVzaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgaW1wb3J0YW50IHVwZGF0ZXMgdmlhIGVtYWlsIn0KICAgICAgICAgICAgICAua2V5PSR7ImVtYWlsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiU291bmQifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJQbGF5IGEgc291bmQgZm9yIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC5rZXk9JHsic291bmQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJWaWJyYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJWaWJyYXRlIGZvciBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAua2V5PSR7InZpYnJhdGlvbiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIFRvZ2dsZXMifSAuc3VidGl0bGU9JHsiQmF0Y2ggb3BlcmF0aW9ucyBvbiBtdWx0aXBsZSB0b2dnbGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vbiIgdHlwZT0ic2Vjb25kYXJ5Ij5FbmFibGUgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vZmYiIHR5cGU9InNlY29uZGFyeSI+RGlzYWJsZSBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLXRvZ2dsZXMiPgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRhcmsgTW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJkYXJrTW9kZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF1dG8tc2F2ZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJhdXRvU2F2ZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWxsIGNoZWNrIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7InNwZWxsQ2hlY2sifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wZXIgbW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJkZXZNb2RlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQmV0YSBmZWF0dXJlcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJiZXRhIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiVG9nZ2xlIHRvIHNlZSB2YWx1ZSBjaGFuZ2VzIGluIHJlYWwtdGltZSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkFpcnBsYW5lIG1vZGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaXJwbGFuZS1vdXRwdXQiKTtlJiYoZS50ZXh0Q29udGVudD1gQWlycGxhbmUgbW9kZTogJHt0LmRldGFpbD8iT04iOiJPRkYifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRG8gbm90IGRpc3R1cmIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkbmQtb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9YERvIG5vdCBkaXN0dXJiOiAke3QuZGV0YWlsPyJFTkFCTEVEIjoiRElTQUJMRUQifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImFpcnBsYW5lLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5BaXJwbGFuZSBtb2RlOiBPRkY8L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRuZC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRvIG5vdCBkaXN0dXJiOiBESVNBQkxFRDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgdlVyLFk2dCxzZmUsSzZ0PXUoKCk9Pnt2ZSgpO01yKCk7Q2koKTt4VXIoKTtfcygpO2x0KCk7dlVyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxZNnQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHNmZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtdG9nZ2xlIildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFRvZ2dsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHZVcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ2YWx1ZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnZhbHVlLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YudmFsdWU9cH0sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLHZVcihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWJVcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9WTZ0KHRoaXMsbywhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGQpe3RoaXMuI2U9ZH1jdXJyZW50WD0oWTZ0KHRoaXMsbCksMCk7aXNEcmFnZ2luZz0hMTtoYXNEcmFnZ2VkPSExO3N0YXJ0WD0wO3RyYWNrV2lkdGg9MzY7dHJhY2tIZWlnaHQ9MjA7a25vYlNpemU9MTQ7cGFkZGluZz0yO21heFRyYXZlbD0xNjtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5sYWJlbFBvc2l0aW9uPSJyaWdodCJ9c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC50b2dnbGUtdHJhY2sgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbHVlXSkgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4xNXMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1rbm9iLmRyYWdnaW5nIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWx1ZV0pIC50b2dnbGUta25vYiB7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgIH0KCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS10cmFjay5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFJlcXVpcmVkIHN0YXRlIChsb2NrZWQgb24pICovCiAgICAgIDpob3N0KFtyZXF1aXJlZF1bdmFsdWVdKSAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDYxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA0OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDYxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA0OS44JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW3JlcXVpcmVkXVt2YWx1ZV0pIC50b2dnbGUta25vYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAvKiBMYWJlbCAqLwogICAgICAubGFiZWwtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkOmhvdmVyIC50b2dnbGUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iIEBjbGljaz0iJHt0aGlzLmhhbmRsZUNsaWNrfSI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtdHJhY2sgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUta25vYiIKICAgICAgICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBhZGRpbmcrdGhpcy5jdXJyZW50WH1weDsiCiAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSIke3RoaXMub25Qb2ludGVyRG93bn0iCiAgICAgICAgICAgICAgQHBvaW50ZXJtb3ZlPSIke3RoaXMub25Qb2ludGVyTW92ZX0iCiAgICAgICAgICAgICAgQHBvaW50ZXJ1cD0iJHt0aGlzLm9uUG9pbnRlclVwfSIKICAgICAgICAgICAgICBAcG9pbnRlcmNhbmNlbD0iJHt0aGlzLm9uUG9pbnRlclVwfSIKICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGl2IGNsYXNzPSJ0b2dnbGUtbGFiZWwiPiR7dGhpcy5sYWJlbH08L2Rpdj5gOiIifQogICAgICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKGQpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChkKSx0aGlzLnJlcXVpcmVkJiYhdGhpcy52YWx1ZSYmKHRoaXMudmFsdWU9ITApLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFzeW5jIGhhbmRsZUNsaWNrKGQpe2lmKHRoaXMuaXNEcmFnZ2luZ3x8dGhpcy5oYXNEcmFnZ2VkKXtkLnN0b3BQcm9wYWdhdGlvbigpLGQucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoIXRoaXMuZGlzYWJsZWQpe2lmKHRoaXMucmVxdWlyZWQpe3RoaXMuY3VycmVudFg9dGhpcy5tYXhUcmF2ZWwsdGhpcy5yZXF1ZXN0VXBkYXRlKCksYXdhaXQgbmV3IFByb21pc2UoZj0+c2V0VGltZW91dChmLDEwKSksdGhpcy5jdXJyZW50WD10aGlzLm1heFRyYXZlbC0zLHRoaXMucmVxdWVzdFVwZGF0ZSgpLGF3YWl0IGNyLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwKSx0aGlzLmN1cnJlbnRYPXRoaXMubWF4VHJhdmVsLHRoaXMucmVxdWVzdFVwZGF0ZSgpO3JldHVybn1kLnN0b3BQcm9wYWdhdGlvbigpLGQucHJldmVudERlZmF1bHQoKSx0aGlzLnZhbHVlPSF0aGlzLnZhbHVlLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxjci5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLnRoZW4oKCk9Pnt0aGlzLmhhc0RyYWdnZWQ9ITF9KX19b25Qb2ludGVyRG93bihkKXt0aGlzLnJlcXVpcmVkfHx0aGlzLmRpc2FibGVkfHwodGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuc3RhcnRYPWQuY2xpZW50WC10aGlzLmN1cnJlbnRYLGQudGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKGQucG9pbnRlcklkKSl9b25Qb2ludGVyTW92ZShkKXtpZighdGhpcy5pc0RyYWdnaW5nKXJldHVybjtsZXQgZj1kLmNsaWVudFgtdGhpcy5zdGFydFg7dGhpcy5oYXNEcmFnZ2VkPSEwO2xldCBwPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRvZ2dsZS1rbm9iIik7cCYmcC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuY3VycmVudFg9TWF0aC5tYXgoMCxNYXRoLm1pbihmLHRoaXMubWF4VHJhdmVsKSksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9b25Qb2ludGVyVXAoZCl7aWYoIXRoaXMuaXNEcmFnZ2luZ3x8KGQudGFyZ2V0LnJlbGVhc2VQb2ludGVyQ2FwdHVyZShkLnBvaW50ZXJJZCksdGhpcy5pc0RyYWdnaW5nPSExLCF0aGlzLmhhc0RyYWdnZWQpKXJldHVybjtsZXQgZj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUta25vYiIpO2YmJmYuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKTtsZXQgcD10aGlzLm1heFRyYXZlbC8yO3RoaXMudmFsdWU9dGhpcy5jdXJyZW50WD5wLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxjci5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLnRoZW4oKCk9Pnt0aGlzLmhhc0RyYWdnZWQ9ITF9KX11cGRhdGVkKGQpe3N1cGVyLnVwZGF0ZWQoZCksZC5oYXMoInZhbHVlIikmJiF0aGlzLmlzRHJhZ2dpbmcmJiF0aGlzLmhhc0RyYWdnZWQmJih0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9aGFuZGxlS2V5ZG93bihkKXsoZC5rZXk9PT0iICJ8fGQua2V5PT09IkVudGVyIikmJihkLnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVDbGljayhkKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShkKXt0aGlzLnZhbHVlPWR9Zm9jdXMoKXtsZXQgZD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUtdHJhY2siKTtkJiZkLmZvY3VzKCl9c3RhdGlje1k2dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgeVVyLHdVcj11KCgpPT57dmUoKTt5VXI9aSgoKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtyZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5mby1ib3ggewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTNmMmZkOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICMxOTc2ZDI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5pbmZvLWJveCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7CiAgICAgICAgICAgIGNvbG9yOiAjOTBjYWY5OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFR5cGUgTGlzdCJ9IC5zdWJ0aXRsZT0keyJBZGQgYW5kIHJlbW92ZSBpdGVtcyBmcm9tIGEgbGlzdCJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGFncyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJBZGQgdGFncyBieSB0eXBpbmcgYW5kIHByZXNzaW5nIEVudGVyIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRhZ3MgaGVscCBjYXRlZ29yaXplIGFuZCBmaWx0ZXIgeW91ciBjb250ZW50In0KICAgICAgICAgICAgLnZhbHVlPSR7WyJqYXZhc2NyaXB0IiwidHlwZXNjcmlwdCIsIndlYi1jb21wb25lbnRzIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUZWFtIE1lbWJlcnMifQogICAgICAgICAgICAuaW5mb1RleHQ9JHsiQWRkIGVtYWlsIGFkZHJlc3NlcyBvZiB0ZWFtIG1lbWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHtbImFsaWNlQGV4YW1wbGUuY29tIiwiYm9iQGV4YW1wbGUuY29tIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2tpbGxzICYgS2V5d29yZHMifSAuc3VidGl0bGU9JHsiTWFuYWdlIGxpc3RzIG9mIHNraWxscyBhbmQga2V5d29yZHMifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IllvdXIgU2tpbGxzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7Ikxpc3QgeW91ciBwcm9mZXNzaW9uYWwgc2tpbGxzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJIVE1MIiwiQ1NTIiwiSmF2YVNjcmlwdCIsIk5vZGUuanMiLCJSZWFjdCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcmllcyJ9CiAgICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJUZWNobm9sb2d5IiwiRGVzaWduIiwiQnVzaW5lc3MiXX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IktleXdvcmRzIn0KICAgICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgICAudmFsdWU9JHtbImlubm92YXRpb24iLCJzdGFydHVwIiwiZ3Jvd3RoIl19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBpbnB1dCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgRGVwZW5kZW5jaWVzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7Ikxpc3QgYWxsIHJlcXVpcmVkIG5wbSBwYWNrYWdlcyJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHtbIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCIsIkBkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlN5c3RlbSBUYWdzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IlRoZXNlIHRhZ3MgYXJlIG1hbmFnZWQgYnkgdGhlIHN5c3RlbSJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHtbInN5c3RlbSIsInByb3RlY3RlZCIsInJlYWRvbmx5Il19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQXJ0aWNsZSBQdWJsaXNoaW5nIEZvcm0ifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZm9ybSB3aXRoIHRhZyBtYW5hZ2VtZW50In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkFydGljbGUgVGl0bGUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiU3VtbWFyeSJ9IAogICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBhcnRpY2xlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUYWdzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCByZWxldmFudCB0YWdzIGZvciBiZXR0ZXIgZGlzY292ZXJhYmlsaXR5In0KICAgICAgICAgICAgLnZhbHVlPSR7WyJ0dXRvcmlhbCIsIndlYi1kZXZlbG9wbWVudCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJDby1BdXRob3JzIn0KICAgICAgICAgICAgLmluZm9UZXh0PSR7IkFkZCBlbWFpbCBhZGRyZXNzZXMgb2YgY28tYXV0aG9ycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImluZm8tYm94Ij4KICAgICAgICAgIDxzdHJvbmc+VGlwOjwvc3Ryb25nPiBUeXBlIGEgdmFsdWUgYW5kIHByZXNzIEVudGVyIHRvIGFkZCBpdCB0byB0aGUgbGlzdC4gQ2xpY2sgb24gYW55IGl0ZW0gdG8gcmVtb3ZlIGl0LgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgWjZ0LHh0ZSxuZmUsUTZ0PXUoKCk9Pnt2ZSgpO01yKCk7Q2koKTt3VXIoKTtsdCgpO1o2dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0seHRlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxuZmU9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWlucHV0LXR5cGVsaXN0IildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFR5cGVsaXN0Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtpZSgpXSxaNnQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4idmFsdWUiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS52YWx1ZSwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnZhbHVlPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxaNnQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJpbnB1dFZhbHVlImluIG0sImhhcyIpLGdldDppKG09Pm0uaW5wdXRWYWx1ZSwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmlucHV0VmFsdWU9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLFo2dChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPXlVcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9eHRlKHRoaXMsbyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGgpe3RoaXMuI2U9aH0jdD0oeHRlKHRoaXMsbCkseHRlKHRoaXMsZCwiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlucHV0VmFsdWUoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W05lLC4uLkV0LmJhc2VTdHlsZXMseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAubWFpbmJveCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzIyMjIyMiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci10b3A6ICR7eC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHt4LmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICMyMjIiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAke3guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAke3guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7eC5iZFRoZW1lKCIwcHggMXB4IDRweCByZ2JhKDAsMCwwLDAuMykiLCJub25lIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICAKICAgICAgLm1haW5ib3g6aG92ZXIgewogICAgICAgIGZpbHRlcjogJHt4LmJkVGhlbWUoImJyaWdodG5lc3MoMC45OCkiLCJicmlnaHRuZXNzKDEuMDUpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFpbmJveDpmb2N1cy13aXRoaW4gewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiIzAwNjlmMiIsIiMwMDg0ZmYiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KCiAgICAgIC50YWdzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLm5vdGFncyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODE4Iil9OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZThmNWU5IiwiIzJkM2EyZCIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyZTdkMzIiLCIjODFjNzg0Iil9OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDNweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2M4ZTZjOSIsIiMxYjVlMjAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC50YWc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjYzhlNmM5IiwiIzNkNGYzZCIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgIH0KCiAgICAgIC50YWcgLnJlbW92ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgfQoKICAgICAgLnRhZyAucmVtb3ZlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2M2MjgyOCIsIiNlZjUzNTAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5tYWluYm94IHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRhZ3MgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50YWcgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSBpbnB1dCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuaW5mb1RleHQ9JHt0aGlzLmluZm9UZXh0fT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWdzIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9fT4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJub3RhZ3MiPk5vIHRhZ3MgeWV0PC9kaXY+YDp0aGlzLnZhbHVlLm1hcChoPT53YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgICAgICAgJHtofQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlbW92ZSIgQGNsaWNrPSR7bT0+e20uc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVUYWcoaCl9fT7Dlzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlR5cGUsIHByZXNzIEVudGVyIHRvIGFkZCBpdC4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9JHtoPT57dGhpcy5pbnB1dFZhbHVlPWgudGFyZ2V0LnZhbHVlfX0KICAgICAgICAgICAgQGtleWRvd249JHtoPT57aC5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpJiYoaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpKX19CiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAvPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9YWRkVGFnKGgpe3RoaXMudmFsdWUuaW5jbHVkZXMoaCl8fCh0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLGhdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9cmVtb3ZlVGFnKGgpe3RoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIobT0+bSE9PWgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoaCl7dGhpcy52YWx1ZT1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx4dGUodGhpcyxmKX1zdGF0aWN7eHRlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBrVXIsU1VyLE1Vcj11KCgpPT57dmUoKTt3YSgpO3duKCk7U1VyPWkoKCk9Pncoa1VyfHwoa1VyPURnKFtgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgIGAsYAogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRpc2FibGVkPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgICAgIC5tYXhUYWdzPWAsYAogICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAuaW5wdXRUeXBlPWAsYAogICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PWAsYD48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtdGFncyIKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIEBjaGFuZ2U9YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRhZy1wcmV2aWV3IiBpZD0idGFncy1wcmV2aWV3Ij4KICAgICAgICAgIDxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJ0YWdzLWpzb24iPgogICAgICAgICAgPGVtPkpTT04gb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAvLyBVcGRhdGUgSlNPTiBwcmV2aWV3CiAgICAgICAgICBjb25zdCB0YWdzSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaW50ZXJhY3RpdmUtdGFncycpOwogICAgICAgICAgdGFnc0lucHV0Py5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4gewogICAgICAgICAgICBjb25zdCBqc29uUHJldmlldyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0YWdzLWpzb24nKTsKICAgICAgICAgICAgaWYgKGpzb25QcmV2aWV3KSB7CiAgICAgICAgICAgICAganNvblByZXZpZXcudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShlLmRldGFpbC52YWx1ZSwgbnVsbCwgMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIDxcL3NjcmlwdD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgXSkpLHJlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRhZy1wcmV2aWV3IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmYWZiOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC50YWctcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZjI5Mzc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50YWctcHJldmlldy1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2UwZTdmZjsKICAgICAgICAgIGNvbG9yOiAjNDMzOGNhOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLnRhZy1wcmV2aWV3LWl0ZW0gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzEyZTgxOwogICAgICAgICAgICBjb2xvcjogI2M3ZDJmZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGAsIjEuIEJhc2ljIFRhZ3MgSW5wdXQiLCJTaW1wbGUgdGFnIGlucHV0IHdpdGggY29tbW9uIHByb2dyYW1taW5nIGxhbmd1YWdlcyIsIlByb2dyYW1taW5nIExhbmd1YWdlcyIsIkFkZCBhIGxhbmd1YWdlLi4uIixbIkphdmFTY3JpcHQiLCJUeXBlU2NyaXB0IiwiUHl0aG9uIiwiR28iXSwiUHJlc3MgRW50ZXIgb3IgY29tbWEgdG8gYWRkIHRhZ3MiLCIyLiBUYWdzIHdpdGggU3VnZ2VzdGlvbnMiLCJBdXRvLWNvbXBsZXRlIHN1Z2dlc3Rpb25zIGZvciBmYXN0ZXIgaW5wdXQiLCJUZWNoIFN0YWNrIiwiVHlwZSB0byBzZWUgc3VnZ2VzdGlvbnMuLi4iLFsiUmVhY3QiLCJWdWUiLCJBbmd1bGFyIiwiU3ZlbHRlIiwiTGl0IiwiTmV4dC5qcyIsIk51eHQiLCJTdmVsdGVLaXQiLCJOb2RlLmpzIiwiRGVubyIsIkJ1biIsIkV4cHJlc3MiLCJGYXN0aWZ5IiwiTmVzdC5qcyIsIktvYSIsIk1vbmdvREIiLCJQb3N0Z3JlU1FMIiwiUmVkaXMiLCJNeVNRTCIsIlNRTGl0ZSIsIkNhc3NhbmRyYSIsIkRvY2tlciIsIkt1YmVybmV0ZXMiLCJBV1MiLCJBenVyZSIsIkdDUCIsIlZlcmNlbCIsIk5ldGxpZnkiXSxbIlJlYWN0IiwiTm9kZS5qcyIsIlBvc3RncmVTUUwiLCJEb2NrZXIiXSwiU3RhcnQgdHlwaW5nIHRvIHNlZSBzdWdnZXN0aW9ucyBmcm9tIHBvcHVsYXIgdGVjaG5vbG9naWVzIiwiMy4gTGltaXRlZCBUYWdzIiwiUmVzdHJpY3QgdGhlIG51bWJlciBvZiB0YWdzIHVzZXJzIGNhbiBhZGQiLCJUb3AgMyBTa2lsbHMiLCJBZGQgdXAgdG8gMyBza2lsbHMuLi4iLDMsWyJEZXNpZ24iLCJEZXZlbG9wbWVudCJdLCJNYXhpbXVtIDMgdGFncyBhbGxvd2VkIiwiQ2F0ZWdvcmllcyAoTWF4IDUpIiwiU2VsZWN0IGNhdGVnb3JpZXMuLi4iLDUsWyJCbG9nIiwiVHV0b3JpYWwiLCJOZXdzIiwiUmV2aWV3IiwiR3VpZGUiLCJDYXNlIFN0dWR5IiwiSW50ZXJ2aWV3Il0sWyJUdXRvcmlhbCIsIkd1aWRlIl0sIkNob29zZSB1cCB0byA1IGNhdGVnb3JpZXMiLCI0LiBSZXF1aXJlZCAmIFZhbGlkYXRpb24iLCJUYWdzIGlucHV0IHdpdGggdmFsaWRhdGlvbiByZXF1aXJlbWVudHMiLCJQcm9qZWN0IFRhZ3MiLCJBZGQgYXQgbGVhc3Qgb25lIHRhZy4uLiIsITAsIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQgLSBhZGQgYXQgbGVhc3Qgb25lIHRhZyIsIjUuIERpc2FibGVkIFN0YXRlIiwiUmVhZC1vbmx5IHRhZ3MgZGlzcGxheSIsIlN5c3RlbSBUYWdzIixbIlN5c3RlbSIsIlByb3RlY3RlZCIsIlJlYWQtT25seSIsIkFyY2hpdmUiXSwhMCwiVGhlc2UgdGFncyBjYW5ub3QgYmUgbW9kaWZpZWQiLCI2LiBGb3JtIEludGVncmF0aW9uIiwiVGFncyBpbnB1dCB3b3JraW5nIHdpdGhpbiBhIGZvcm0gY29udGV4dCIsIlByb2plY3QgTmFtZSIsIk15IEF3ZXNvbWUgUHJvamVjdCIsITAsIm5hbWUiLCJUZWNobm9sb2dpZXMgVXNlZCIsIkFkZCB0ZWNobm9sb2dpZXMuLi4iLCEwLCJ0ZWNobm9sb2dpZXMiLFsiVHlwZVNjcmlwdCIsIkphdmFTY3JpcHQiLCJQeXRob24iLCJHbyIsIlJ1c3QiLCJSZWFjdCIsIlZ1ZSIsIkFuZ3VsYXIiLCJTdmVsdGUiLCJOb2RlLmpzIiwiRGVubyIsIkV4cHJlc3MiLCJGYXN0QVBJIl0sIlByb2plY3QgVGFncyIsIkFkZCBkZXNjcmlwdGl2ZSB0YWdzLi4uIiwidGFncyIsMTAsWyJmcm9udGVuZCIsImJhY2tlbmQiLCJmdWxsc3RhY2siLCJtb2JpbGUiLCJkZXNrdG9wIiwid2ViIiwiYXBpIiwiZGF0YWJhc2UiLCJkZXZvcHMiLCJ1aS91eCIsIm9wZW5zb3VyY2UiLCJzYWFzIiwiZW50ZXJwcmlzZSIsInN0YXJ0dXAiXSwiRGVzY3JpcHRpb24iLCJ0ZXh0YXJlYSIsIkRlc2NyaWJlIHlvdXIgcHJvamVjdC4uLiIsImRlc2NyaXB0aW9uIiwiQ3JlYXRlIFByb2plY3QiLCI3LiBJbnRlcmFjdGl2ZSBEZW1vIiwiQWRkIHRhZ3MgYW5kIHNlZSB0aGVtIGNvbGxlY3RlZCBpbiByZWFsLXRpbWUiLCJZb3VyIEludGVyZXN0cyIsIlR5cGUgeW91ciBpbnRlcmVzdHMuLi4iLFsiTXVzaWMiLCJNb3ZpZXMiLCJCb29rcyIsIlRyYXZlbCIsIlBob3RvZ3JhcGh5IiwiQ29va2luZyIsIkdhbWluZyIsIlNwb3J0cyIsIkFydCIsIlRlY2hub2xvZ3kiLCJGYXNoaW9uIiwiRml0bmVzcyIsIk5hdHVyZSIsIlNjaWVuY2UiLCJIaXN0b3J5Il0sdD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0YWdzLXByZXZpZXciKSxyPXQuZGV0YWlsLnZhbHVlO2UmJihyLmxlbmd0aD09PTA/ZS5pbm5lckhUTUw9JzxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+JzplLmlubmVySFRNTD1yLm1hcChhPT5gPHNwYW4gY2xhc3M9InRhZy1wcmV2aWV3LWl0ZW0iPiR7YX08L3NwYW4+YCkuam9pbigiIikpfSksImRlbW9GdW5jIil9KTt2YXIgZTMsQW4sb2ZlLFg2dD11KCgpPT57dmUoKTtDaSgpO0tyKCk7TVVyKCk7bHQoKTtlMz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sQW49ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LG9mZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtdGFncyIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdO3ZhciBBPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRUYWdzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOk51bWJlcn0pXSx2PVtQKHt0eXBlOkFycmF5fSldLHk9W2llKCldLE49W2llKCldLE89W2llKCldLEI9W1Aoe3R5cGU6U3RyaW5nfSldLGUzKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InZhbHVlImluIEYsImhhcyIpLGdldDppKEY9PkYudmFsdWUsImdldCIpLHNldDppKChGLFkpPT57Ri52YWx1ZT1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksZTModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4icGxhY2Vob2xkZXIiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnBsYWNlaG9sZGVyPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCxmKSxlMyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFRhZ3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+Im1heFRhZ3MiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5tYXhUYWdzLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YubWF4VGFncz1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LGgsbSksZTModGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWdnZXN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4ic3VnZ2VzdGlvbnMiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5zdWdnZXN0aW9ucywiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnN1Z2dlc3Rpb25zPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYixnKSxlMyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlucHV0VmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+ImlucHV0VmFsdWUiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5pbnB1dFZhbHVlLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YuaW5wdXRWYWx1ZT1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LGssTSksZTModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93U3VnZ2VzdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InNob3dTdWdnZXN0aW9ucyJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLnNob3dTdWdnZXN0aW9ucywiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnNob3dTdWdnZXN0aW9ucz1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LF8sUyksZTModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4iaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sTCxFKSxlMyh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJ2YWxpZGF0aW9uVGV4dCJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLnZhbGlkYXRpb25UZXh0LCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YudmFsaWRhdGlvblRleHQ9WX0sInNldCIpfSxtZXRhZGF0YTokfSxDLHopLGUzKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOiR9LG51bGwsciksQT1hPWUudmFsdWUsJCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTokfSl9c3RhdGljIGRlbW89U1VyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1Bbih0aGlzLG8sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZSgkKXt0aGlzLiNlPSR9I3Q9KEFuKHRoaXMsbCksQW4odGhpcyxkLCJBZGQgdGFncy4uLiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoJCl7dGhpcy4jdD0kfSNyPShBbih0aGlzLGYpLEFuKHRoaXMsaCwwKSk7Z2V0IG1heFRhZ3MoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWF4VGFncygkKXt0aGlzLiNyPSR9I2E9KEFuKHRoaXMsbSksQW4odGhpcyxiLFtdKSk7Z2V0IHN1Z2dlc3Rpb25zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHN1Z2dlc3Rpb25zKCQpe3RoaXMuI2E9JH0jaT0oQW4odGhpcyxnKSxBbih0aGlzLGssIiIpKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiNpfXNldCBpbnB1dFZhbHVlKCQpe3RoaXMuI2k9JH0jcz0oQW4odGhpcyxNKSxBbih0aGlzLF8sITEpKTtnZXQgc2hvd1N1Z2dlc3Rpb25zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNob3dTdWdnZXN0aW9ucygkKXt0aGlzLiNzPSR9I249KEFuKHRoaXMsUyksQW4odGhpcyxMLC0xKSk7Z2V0IGhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KCl7cmV0dXJuIHRoaXMuI259c2V0IGhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KCQpe3RoaXMuI249JH0jbz0oQW4odGhpcyxFKSxBbih0aGlzLEMsIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jb31zZXQgdmFsaWRhdGlvblRleHQoJCl7dGhpcy4jbz0kfXN0YXRpYyBzdHlsZXM9W05lLC4uLkV0LmJhc2VTdHlsZXMseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXI6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElIC8gMC4yKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElIC8gMC4zKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUgLyAwLjMpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMThweDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBhbmltYXRpb246IHRhZ0FwcGVhciAwLjE1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHRhZ0FwcGVhciB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQogICAgICB9CgogICAgICAudGFnLXJlbW92ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDQ2LjclKSIsImhzbCgyMTcuOSAxMC42JSA1NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmUgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgIH0KCiAgICAgIC50YWctaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAxMjBweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC50YWctaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRhZy1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLyogU3VnZ2VzdGlvbnMgZHJvcGRvd24gKi8KICAgICAgLnN1Z2dlc3Rpb25zLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb24uaGlnaGxpZ2h0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIC52YWxpZGF0aW9uLW1lc3NhZ2UgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgJD10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihGPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhGKSYmRi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0YWdzLWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29udGFpbmVyQ2xpY2t9CiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZS5tYXAoRj0+d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgPHNwYW4+JHtGfTwvc3Bhbj4KICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjp3YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWctcmVtb3ZlIiBAY2xpY2s9JHtZPT50aGlzLnJlbW92ZVRhZyhZLEYpfT4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIAogICAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4VGFnc3x8dGhpcy52YWx1ZS5sZW5ndGg8dGhpcy5tYXhUYWdzKT93YAogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWctaW5wdXQiCiAgICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0aGlzLnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVJbnB1dH0KICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVLZXlEb3dufQogICAgICAgICAgICAgICAgQGZvY3VzPSR7dGhpcy5oYW5kbGVGb2N1c30KICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVCbHVyfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAvPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLnNob3dTdWdnZXN0aW9ucyYmJC5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWdnZXN0aW9ucy1kcm9wZG93biI+CiAgICAgICAgICAgICAgJHskLm1hcCgoRixZKT0+d2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InN1Z2dlc3Rpb24gJHtZPT09dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD8iaGlnaGxpZ2h0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke0c9PntHLnByZXZlbnREZWZhdWx0KCksdGhpcy5hZGRUYWcoRil9fQogICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PVl9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7Rn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIj4ke3RoaXMudmFsaWRhdGlvblRleHR9PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICAke3RoaXMucmVuZGVyRGVzY3JpcHRpb24oKX0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNvbnRhaW5lckNsaWNrKCQpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCBGPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhZy1pbnB1dCIpO0YmJiQudGFyZ2V0IT09RiYmRi5mb2N1cygpfWhhbmRsZUlucHV0KCQpe2xldCBGPSQudGFyZ2V0O2lmKHRoaXMuaW5wdXRWYWx1ZT1GLnZhbHVlLHRoaXMuaW5wdXRWYWx1ZS5pbmNsdWRlcygiLCIpfHx0aGlzLmlucHV0VmFsdWUuaW5jbHVkZXMoIjsiKSl7bGV0IFk9dGhpcy5pbnB1dFZhbHVlLnJlcGxhY2UoL1ssO10vZywiIikudHJpbSgpO1kmJnRoaXMuYWRkVGFnKFkpfX1oYW5kbGVLZXlEb3duKCQpe2xldCBGPSQudGFyZ2V0O2lmKCQua2V5PT09IkVudGVyIilpZigkLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD49MCYmdGhpcy5zaG93U3VnZ2VzdGlvbnMpe2xldCBZPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKEc9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKEcpJiZHLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtZW3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXhdJiZ0aGlzLmFkZFRhZyhZW3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXhdKX1lbHNlIHRoaXMuaW5wdXRWYWx1ZS50cmltKCkmJnRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpO2Vsc2UgaWYoJC5rZXk9PT0iQmFja3NwYWNlIiYmIXRoaXMuaW5wdXRWYWx1ZSYmdGhpcy52YWx1ZS5sZW5ndGg+MCl0aGlzLnJlbW92ZVRhZygkLHRoaXMudmFsdWVbdGhpcy52YWx1ZS5sZW5ndGgtMV0pO2Vsc2UgaWYoJC5rZXk9PT0iQXJyb3dEb3duIiYmdGhpcy5zaG93U3VnZ2VzdGlvbnMpeyQucHJldmVudERlZmF1bHQoKTtsZXQgWT10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihHPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhHKSYmRy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSkubGVuZ3RoO3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9TWF0aC5taW4odGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCsxLFktMSl9ZWxzZSAkLmtleT09PSJBcnJvd1VwIiYmdGhpcy5zaG93U3VnZ2VzdGlvbnM/KCQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PU1hdGgubWF4KHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgtMSwwKSk6JC5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTEpfWhhbmRsZUZvY3VzKCl7dGhpcy5zdWdnZXN0aW9ucy5sZW5ndGg+MCYmKHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSEwKX1oYW5kbGVCbHVyKCl7c2V0VGltZW91dCgoKT0+e3RoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTF9LDIwMCl9YWRkVGFnKCQpe2lmKCEkfHx0aGlzLnZhbHVlLmluY2x1ZGVzKCQpfHx0aGlzLm1heFRhZ3MmJnRoaXMudmFsdWUubGVuZ3RoPj10aGlzLm1heFRhZ3MpcmV0dXJuO3RoaXMudmFsdWU9Wy4uLnRoaXMudmFsdWUsJF0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTE7bGV0IEY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFnLWlucHV0Iik7RiYmKEYudmFsdWU9IiIpLHRoaXMuZW1pdENoYW5nZSgpfXJlbW92ZVRhZygkLEYpeyQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy52YWx1ZT10aGlzLnZhbHVlLmZpbHRlcihZPT5ZIT09RiksdGhpcy5lbWl0Q2hhbmdlKCl9ZW1pdENoYW5nZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKCQpe3RoaXMudmFsdWU9JHx8W119YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmKCF0aGlzLnZhbHVlfHx0aGlzLnZhbHVlLmxlbmd0aD09PTApPyh0aGlzLnZhbGlkYXRpb25UZXh0PSJBdCBsZWFzdCBvbmUgdGFnIGlzIHJlcXVpcmVkIiwhMSk6KHRoaXMudmFsaWRhdGlvblRleHQ9IiIsITApfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxBbih0aGlzLHopfXN0YXRpY3tBbihhLHIpfX07cmV0dXJuIEE9YX0pKCl9KTt2YXIgQ1VyLHpVcj11KCgpPT57dmUoKTt3YSgpO3duKCk7QnkoKTtGcCgpO3c5KCk7Q1VyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7cmVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmVhdHVyZS1ub3RlIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2VmZjZmZjsKICAgICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzNiODJmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAjMWU0MGFmOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAuZmVhdHVyZS1ub3RlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlM2E1ZjsKICAgICAgICAgICAgY29sb3I6ICM5M2M1ZmQ7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgTGlzdCBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgbGlzdCBtYW5hZ2VtZW50IHdpdGggYWRkLCBlZGl0LCBhbmQgZGVsZXRlIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlNob3BwaW5nIExpc3QifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpdGVtIHRvIHlvdXIgbGlzdC4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbIk1pbGsiLCJCcmVhZCIsIkVnZ3MiLCJDaGVlc2UiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEb3VibGUtY2xpY2sgdG8gZWRpdCBpdGVtcywgb3IgdXNlIHRoZSBlZGl0IGJ1dHRvbiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5KhIERvdWJsZS1jbGljayBhbnkgaXRlbSB0byBxdWlja2x5IGVkaXQgaXQgaW5saW5lCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBTb3J0YWJsZSBMaXN0In0gLnN1YnRpdGxlPSR7IkRyYWcgYW5kIGRyb3AgdG8gcmVvcmRlciBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJUYXNrIFByaW9yaXR5In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgYSB0YXNrLi4uIn0KICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgLnZhbHVlPSR7WyJSZXZpZXcgcHVsbCByZXF1ZXN0cyIsIkZpeCBjcml0aWNhbCBidWciLCJVcGRhdGUgZG9jdW1lbnRhdGlvbiIsIkRlcGxveSB0byBwcm9kdWN0aW9uIiwiVGVhbSBzdGFuZHVwIG1lZXRpbmciXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEcmFnIGl0ZW1zIHVzaW5nIHRoZSBoYW5kbGUgdG8gcmVvcmRlciB0aGVtIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ub3RlIj4KICAgICAgICAgIPCflIQgRHJhZyB0aGUgZ3JpcCBoYW5kbGUgdG8gcmVvcmRlciB0YXNrcyBieSBwcmlvcml0eQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gVmFsaWRhdGlvbiAmIENvbnN0cmFpbnRzIn0gLnN1YnRpdGxlPSR7Ikxpc3RzIHdpdGggbWluaW11bS9tYXhpbXVtIGl0ZW1zIGFuZCBkdXBsaWNhdGUgcHJldmVudGlvbiJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBNZW1iZXJzIChNaW4gMiwgTWF4IDUpIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHRlYW0gbWVtYmVyLi4uIn0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5tYXhJdGVtcz0kezV9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyJBbGljZSIsIkJvYiJdfQogICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJBZGQgMi01IHRlYW0gbWVtYmVycyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiVW5pcXVlIFRhZ3MgKE5vIER1cGxpY2F0ZXMpIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHVuaXF1ZSB0YWcuLi4ifQogICAgICAgICAgICAgIC5hbGxvd0R1cGxpY2F0ZXM9JHshMX0KICAgICAgICAgICAgICAudmFsdWU9JHtbImZyb250ZW5kIiwiYmFja2VuZCIsImRhdGFiYXNlIl19CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkR1cGxpY2F0ZSBpdGVtcyBhcmUgbm90IGFsbG93ZWQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIERlbGV0ZSBDb25maXJtYXRpb24ifSAuc3VidGl0bGU9JHsiUmVxdWlyZSBjb25maXJtYXRpb24gYmVmb3JlIGRlbGV0aW5nIGl0ZW1zIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IkltcG9ydGFudCBEb2N1bWVudHMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBkb2N1bWVudCBuYW1lLi4uIn0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtbIkNvbnRyYWN0XzIwMjQucGRmIiwiRmluYW5jaWFsX1JlcG9ydF9RMy54bHN4IiwiUHJvamVjdF9Qcm9wb3NhbC5kb2N4IiwiTWVldGluZ19Ob3Rlcy50eHQiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEZWxldGlvbiByZXF1aXJlcyBjb25maXJtYXRpb24gZm9yIHNhZmV0eSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IGxpc3QgZGlzcGxheSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gRGVmYXVsdHMifQogICAgICAgICAgLnZhbHVlPSR7WyJEZWZhdWx0IFNldHRpbmcgMSIsIkRlZmF1bHQgU2V0dGluZyAyIiwiRGVmYXVsdCBTZXR0aW5nIDMiXX0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoZXNlIGl0ZW1zIGNhbm5vdCBiZSBtb2RpZmllZCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJMaXN0IGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlY2lwZSBOYW1lIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7Ik15IEFtYXppbmcgUmVjaXBlIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsibmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJJbmdyZWRpZW50cyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbmdyZWRpZW50Li4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5ncmVkaWVudHMifQogICAgICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgICAgIC52YWx1ZT0ke1siMiBjdXBzIGZsb3VyIiwiMSBjdXAgc3VnYXIiLCIzIGVnZ3MiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGF0IGxlYXN0IDMgaW5ncmVkaWVudHMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ikluc3RydWN0aW9ucyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbnN0cnVjdGlvbiBzdGVwLi4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgICAgICAudmFsdWU9JHtbIlByZWhlYXQgb3ZlbiB0byAzNTBceEIwRiIsIk1peCBkcnkgaW5ncmVkaWVudHMiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGNvb2tpbmcgaW5zdHJ1Y3Rpb25zIGluIG9yZGVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGVzIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBbnkgc3BlY2lhbCBub3RlcyBvciB0aXBzLi4uIn0KICAgICAgICAgICAgLmtleT0keyJub3RlcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlNhdmUgUmVjaXBlIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gSW50ZXJhY3RpdmUgRGVtbyJ9IC5zdWJ0aXRsZT0keyJCdWlsZCB5b3VyIG93biBmZWF0dXJlIGxpc3QgYW5kIHNlZSB0aGUgZGF0YSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1saXN0IgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgRmVhdHVyZXMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBhIGZlYXR1cmUuLi4ifQogICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyExfQogICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTB9CiAgICAgICAgICBAY2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNsaXN0LWpzb24iKTtpZihlKXtsZXQgcj17aXRlbXM6dC5kZXRhaWwudmFsdWUsY291bnQ6dC5kZXRhaWwudmFsdWUubGVuZ3RoLHRpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9O2UudGV4dENvbnRlbnQ9SlNPTi5zdHJpbmdpZnkocixudWxsLDIpfX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ibGlzdC1qc29uIj4KICAgICAgICAgIHsKICAgICAgICAgICAgIml0ZW1zIjogW10sCiAgICAgICAgICAgICJjb3VudCI6IDAsCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9IgogICAgICAgICAgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDinKggQWRkLCBlZGl0LCByZW1vdmUsIGFuZCByZW9yZGVyIGl0ZW1zIHRvIHNlZSB0aGUgSlNPTiBvdXRwdXQgdXBkYXRlIGluIHJlYWwtdGltZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQWR2YW5jZWQgQ29uZmlndXJhdGlvbiJ9IC5zdWJ0aXRsZT0keyJDb21iaW5lIGFsbCBmZWF0dXJlcyBmb3IgY29tcGxleCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBNaWxlc3RvbmVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgbWlsZXN0b25lLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1siUHJvamVjdCBLaWNrb2ZmIC0gV2VlayAxIiwiUmVxdWlyZW1lbnRzIEdhdGhlcmluZyAtIFdlZWsgMi0zIiwiRGVzaWduIFBoYXNlIC0gV2VlayA0LTYiLCJEZXZlbG9wbWVudCBTcHJpbnQgMSAtIFdlZWsgNy05IiwiVGVzdGluZyAmIFFBIC0gV2VlayAxMC0xMSIsIkRlcGxveW1lbnQgLSBXZWVrIDEyIl19CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTJ9CiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJNYW5hZ2UgcHJvamVjdCBtaWxlc3RvbmVzICgzLTEyIGl0ZW1zLCBzb3J0YWJsZSwgbm8gZHVwbGljYXRlcykifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIENhbmRpZGF0ZXMgd2l0aCBUYWIgQ29tcGxldGlvbiJ9IC5zdWJ0aXRsZT0keyJUZXJtaW5hbC1zdHlsZSBhdXRvY29tcGxldGUgXHUyMDE0IFRhYiBhY2NlcHRzLCBTaGlmdCtUYWIgY3ljbGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICBpZD0iY2FuZGlkYXRlLWxpc3QiCiAgICAgICAgICAgIC5sYWJlbD0keyJBc3NpZ24gVGVhbSBNZW1iZXJzIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgYSBuYW1lLi4uIChUYWIgdG8gY29tcGxldGUpIn0KICAgICAgICAgICAgLmNhbmRpZGF0ZXM9JHtbe3ZpZXdLZXk6IkFsaWNlIFNtaXRoIixwYXlsb2FkOntpZDoxLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJGcm9udGVuZCJ9fSx7dmlld0tleToiQm9iIEpvaG5zb24iLHBheWxvYWQ6e2lkOjIscm9sZToiRGVzaWduZXIiLGRlcGFydG1lbnQ6IlVYIn19LHt2aWV3S2V5OiJDYXJvbCBXaWxsaWFtcyIscGF5bG9hZDp7aWQ6Myxyb2xlOiJQcm9kdWN0IE1hbmFnZXIiLGRlcGFydG1lbnQ6IlByb2R1Y3QifX0se3ZpZXdLZXk6IkRhdmlkIEJyb3duIixwYXlsb2FkOntpZDo0LHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJCYWNrZW5kIn19LHt2aWV3S2V5OiJFdmUgRGF2aXMiLHBheWxvYWQ6e2lkOjUscm9sZToiUUEgRW5naW5lZXIiLGRlcGFydG1lbnQ6IlF1YWxpdHkifX0se3ZpZXdLZXk6IkZyYW5rIE1pbGxlciIscGF5bG9hZDp7aWQ6Nixyb2xlOiJEZXZPcHMiLGRlcGFydG1lbnQ6IkluZnJhc3RydWN0dXJlIn19LHt2aWV3S2V5OiJHcmFjZSBXaWxzb24iLHBheWxvYWQ6e2lkOjcscm9sZToiRGVzaWduZXIiLGRlcGFydG1lbnQ6IlVYIn19LHt2aWV3S2V5OiJIZW5yeSBNb29yZSIscGF5bG9hZDp7aWQ6OCxyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiRnJvbnRlbmQifX1dfQogICAgICAgICAgICAudmFsdWU9JHtbIkFsaWNlIFNtaXRoIiwiQ2Fyb2wgV2lsbGlhbXMiXX0KICAgICAgICAgICAgLm1heEl0ZW1zPSR7NX0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlR5cGUgdG8gc2VlIGdob3N0IGNvbXBsZXRpb24uIFRhYiB0byBhY2NlcHQsIFNoaWZ0K1RhYiB0byBjeWNsZSwgRW50ZXIgdG8gYWRkLiJ9CiAgICAgICAgICAgIEBjaGFuZ2U9JHt0PT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NhbmRpZGF0ZS1qc29uIik7aWYoZSl7bGV0IGE9dC50YXJnZXQuZ2V0QWRkZWRDYW5kaWRhdGVzKCk7ZS50ZXh0Q29udGVudD1KU09OLnN0cmluZ2lmeShhLG51bGwsMil9fX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KCiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA1MDA7IG1hcmdpbi1ib3R0b206IDhweDsgY29sb3I6IGluaGVyaXQ7Ij5TZWxlY3RlZCBDYW5kaWRhdGVzICh3aXRoIHBheWxvYWRzKTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtcHJldmlldyIgaWQ9ImNhbmRpZGF0ZS1qc29uIj5bXTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAgICAgIFRyeSB0eXBpbmcgIkQiIOKAlCBnaG9zdCB0ZXh0IHNob3dzICJhdmlkIEJyb3duIi4gUHJlc3MgU2hpZnQrVGFiIHRvIGN5Y2xlIHRvIG90aGVyIEQtbWF0Y2hlcy4gVGFiIGFjY2VwdHMsIEVudGVyIGFkZHMuCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxMC4gVGVjaG5vbG9neSBTdGFjayJ9IC5zdWJ0aXRsZT0keyJMYXJnZXIgY2FuZGlkYXRlIHBvb2wgd2l0aCBTaGlmdCtUYWIgY3ljbGluZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgVGVjaG5vbG9naWVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIHRvIGF1dG9jb21wbGV0ZS4uLiJ9CiAgICAgICAgICAuY2FuZGlkYXRlcz0ke1t7dmlld0tleToiVHlwZVNjcmlwdCIscGF5bG9hZDp7Y2F0ZWdvcnk6Imxhbmd1YWdlIn19LHt2aWV3S2V5OiJSZWFjdCIscGF5bG9hZDp7Y2F0ZWdvcnk6ImZyYW1ld29yayJ9fSx7dmlld0tleToiVnVlLmpzIixwYXlsb2FkOntjYXRlZ29yeToiZnJhbWV3b3JrIn19LHt2aWV3S2V5OiJBbmd1bGFyIixwYXlsb2FkOntjYXRlZ29yeToiZnJhbWV3b3JrIn19LHt2aWV3S2V5OiJOb2RlLmpzIixwYXlsb2FkOntjYXRlZ29yeToicnVudGltZSJ9fSx7dmlld0tleToiRGVubyIscGF5bG9hZDp7Y2F0ZWdvcnk6InJ1bnRpbWUifX0se3ZpZXdLZXk6IkRvY2tlciIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRldm9wcyJ9fSx7dmlld0tleToiUG9zdGdyZVNRTCIscGF5bG9hZDp7Y2F0ZWdvcnk6ImRhdGFiYXNlIn19LHt2aWV3S2V5OiJNb25nb0RCIixwYXlsb2FkOntjYXRlZ29yeToiZGF0YWJhc2UifX0se3ZpZXdLZXk6IlJlZGlzIixwYXlsb2FkOntjYXRlZ29yeToiZGF0YWJhc2UifX0se3ZpZXdLZXk6Ikt1YmVybmV0ZXMiLHBheWxvYWQ6e2NhdGVnb3J5OiJkZXZvcHMifX1dfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J1RyeSAiRCIgXHUyMDE0IGN5Y2xlcyB0aHJvdWdoIERlbm8vRG9ja2VyLiAiUiIgXHUyMDE0IGN5Y2xlcyB0aHJvdWdoIFJlYWN0L1JlZGlzLid9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMTEuIEZyZWVmb3JtICsgQ2FuZGlkYXRlcyJ9IC5zdWJ0aXRsZT0keyJBbGxvdyBhZGRpbmcgaXRlbXMgbm90IGluIHRoZSBjYW5kaWRhdGUgbGlzdCAoc2hvd24gd2l0aCBhIHF1ZXN0aW9uIG1hcmspIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgYSB0YWcuLi4gKGZyZWVmb3JtIGFsbG93ZWQpIn0KICAgICAgICAgIC5hbGxvd0ZyZWVmb3JtPSR7ITB9CiAgICAgICAgICAuY2FuZGlkYXRlcz0ke1t7dmlld0tleToiYnVnIixwYXlsb2FkOntjb2xvcjoicmVkIn19LHt2aWV3S2V5OiJmZWF0dXJlIixwYXlsb2FkOntjb2xvcjoiYmx1ZSJ9fSx7dmlld0tleToiZG9jcyIscGF5bG9hZDp7Y29sb3I6ImdyZWVuIn19LHt2aWV3S2V5OiJyZWZhY3RvciIscGF5bG9hZDp7Y29sb3I6InB1cnBsZSJ9fSx7dmlld0tleToicGVyZm9ybWFuY2UiLHBheWxvYWQ6e2NvbG9yOiJvcmFuZ2UifX0se3ZpZXdLZXk6InNlY3VyaXR5IixwYXlsb2FkOntjb2xvcjoicmVkIn19XX0KICAgICAgICAgIC52YWx1ZT0ke1siYnVnIiwibXktY3VzdG9tLXRhZyIsImZlYXR1cmUiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJLbm93biB0YWdzIGdldCBhIGNoZWNrbWFyaywgY3VzdG9tIHRhZ3MgZ2V0IGEgcXVlc3Rpb24gbWFyay4gVGFiIHRvIGNvbXBsZXRlLCBFbnRlciB0byBhZGQgZnJlZWZvcm0uIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxMi4gRW1wdHkgU3RhdGUifSAuc3VidGl0bGU9JHsiSG93IHRoZSBjb21wb25lbnQgbG9va3Mgd2l0aCBubyBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJZb3VyIElkZWFzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTaGFyZSB5b3VyIGlkZWFzLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1tdfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlN0YXJ0IGFkZGluZyBpdGVtcyB0byBidWlsZCB5b3VyIGxpc3QifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIFVpLGdyLGxmZSxKNnQ9dSgoKT0+e3ZlKCk7Q2koKTtLcigpO25zKCk7elVyKCk7bHQoKTtVaT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZ3I9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGxmZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtaW5wdXQtbGlzdCIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W10scGUsbWU9W10scT1bXSxILFU9W10saj1bXSxhZSxYPVtdLEo9W10seGUsSz1bXSxWPVtdLGxlLG5lPVtdLGVlPVtdLHplLEhlPVtdLEdlPVtdLG90LERlPVtdLF9lPVtdLG9lLHNlPVtdLGNlPVtdLFRlLHFlPVtdLG50PVtdO3ZhciB2dD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0lucHV0TGlzdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBMZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6TnVtYmVyfSldLHY9W1Aoe3R5cGU6TnVtYmVyfSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0sTz1bUCh7dHlwZTpCb29sZWFufSldLEI9W1Aoe3R5cGU6QXJyYXl9KV0sQT1bUCh7dHlwZTpCb29sZWFufSldLFk9W1Aoe3R5cGU6U3RyaW5nfSldLGRlPVtpZSgpXSxmZT1baWUoKV0scGU9W2llKCldLEg9W2llKCldLGFlPVtpZSgpXSx4ZT1baWUoKV0sbGU9W2llKCldLHplPVtpZSgpXSxvdD1baWUoKV0sb2U9W2llKCldLFRlPVtpZSgpXSxVaSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4idmFsdWUiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS52YWx1ZSwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLnZhbHVlPU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxvLGwpLFVpKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJwbGFjZWhvbGRlciJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLnBsYWNlaG9sZGVyLCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2UucGxhY2Vob2xkZXI9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LGQsZiksVWkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+Im1heEl0ZW1zImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UubWF4SXRlbXMsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5tYXhJdGVtcz1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0saCxtKSxVaSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4ibWluSXRlbXMiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5taW5JdGVtcywiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLm1pbkl0ZW1zPU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxiLGcpLFVpKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dEdXBsaWNhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4iYWxsb3dEdXBsaWNhdGVzImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UuYWxsb3dEdXBsaWNhdGVzLCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2UuYWxsb3dEdXBsaWNhdGVzPU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxrLE0pLFVpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic29ydGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJzb3J0YWJsZSJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLnNvcnRhYmxlLCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2Uuc29ydGFibGU9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LF8sUyksVWkodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb25maXJtRGVsZXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4iY29uZmlybURlbGV0ZSJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLmNvbmZpcm1EZWxldGUsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5jb25maXJtRGVsZXRlPU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxMLEUpLFVpKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuZGlkYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+ImNhbmRpZGF0ZXMiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5jYW5kaWRhdGVzLCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2UuY2FuZGlkYXRlcz1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sQyx6KSxVaSh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93RnJlZWZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJhbGxvd0ZyZWVmb3JtImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UuYWxsb3dGcmVlZm9ybSwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLmFsbG93RnJlZWZvcm09T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LCQsRiksVWkodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+InZhbGlkYXRpb25UZXh0ImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UudmFsaWRhdGlvblRleHQsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS52YWxpZGF0aW9uVGV4dD1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sRyxaKSxVaSh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4iaW5wdXRWYWx1ZSJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLmlucHV0VmFsdWUsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5pbnB1dFZhbHVlPU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxELFEpLFVpKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imdob3N0VGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+Imdob3N0VGV4dCJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLmdob3N0VGV4dCwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLmdob3N0VGV4dD1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sVCxXKSxVaSh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50Q2FuZGlkYXRlSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJjdXJyZW50Q2FuZGlkYXRlSW5kZXgiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5jdXJyZW50Q2FuZGlkYXRlSW5kZXgsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LG1lLHEpLFVpKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGluZ0luZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHdlPT4iZWRpdGluZ0luZGV4ImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UuZWRpdGluZ0luZGV4LCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2UuZWRpdGluZ0luZGV4PU9lfSwic2V0Iil9LG1ldGFkYXRhOkxlfSxVLGopLFVpKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+ImVkaXRpbmdWYWx1ZSJpbiB3ZSwiaGFzIiksZ2V0Omkod2U9PndlLmVkaXRpbmdWYWx1ZSwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLmVkaXRpbmdWYWx1ZT1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sWCxKKSxVaSh0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnZ2VkSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJkcmFnZ2VkSW5kZXgiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5kcmFnZ2VkSW5kZXgsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5kcmFnZ2VkSW5kZXg9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LEssViksVWkodGhpcyxudWxsLGxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+ImRyYWdPdmVySW5kZXgiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5kcmFnT3ZlckluZGV4LCJnZXQiKSxzZXQ6aSgod2UsT2UpPT57d2UuZHJhZ092ZXJJbmRleD1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sbmUsZWUpLFVpKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdTdGFydFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJkcmFnU3RhcnRZImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UuZHJhZ1N0YXJ0WSwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLmRyYWdTdGFydFk9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LEhlLEdlKSxVaSh0aGlzLG51bGwsb3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnQ3VycmVudFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJkcmFnQ3VycmVudFkiaW4gd2UsImhhcyIpLGdldDppKHdlPT53ZS5kcmFnQ3VycmVudFksImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS5kcmFnQ3VycmVudFk9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LERlLF9lKSxVaSh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh3ZT0+InRhcmdldEluZGV4ImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UudGFyZ2V0SW5kZXgsImdldCIpLHNldDppKCh3ZSxPZSk9Pnt3ZS50YXJnZXRJbmRleD1PZX0sInNldCIpfSxtZXRhZGF0YTpMZX0sc2UsY2UpLFVpKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Iml0ZW1IZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkod2U9PiJpdGVtSGVpZ2h0ImluIHdlLCJoYXMiKSxnZXQ6aSh3ZT0+d2UuaXRlbUhlaWdodCwiZ2V0Iiksc2V0OmkoKHdlLE9lKT0+e3dlLml0ZW1IZWlnaHQ9T2V9LCJzZXQiKX0sbWV0YWRhdGE6TGV9LHFlLG50KSxVaShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpMZX0sbnVsbCxyKSx2dD1hPWUudmFsdWUsTGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TGV9KX1zdGF0aWMgZGVtbz1DVXI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPWdyKHRoaXMsbyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKExlKXt0aGlzLiNlPUxlfSN0PShncih0aGlzLGwpLGdyKHRoaXMsZCwiQWRkIG5ldyBpdGVtLi4uIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiN0fXNldCBwbGFjZWhvbGRlcihMZSl7dGhpcy4jdD1MZX0jcj0oZ3IodGhpcyxmKSxncih0aGlzLGgsMCkpO2dldCBtYXhJdGVtcygpe3JldHVybiB0aGlzLiNyfXNldCBtYXhJdGVtcyhMZSl7dGhpcy4jcj1MZX0jYT0oZ3IodGhpcyxtKSxncih0aGlzLGIsMCkpO2dldCBtaW5JdGVtcygpe3JldHVybiB0aGlzLiNhfXNldCBtaW5JdGVtcyhMZSl7dGhpcy4jYT1MZX0jaT0oZ3IodGhpcyxnKSxncih0aGlzLGssITEpKTtnZXQgYWxsb3dEdXBsaWNhdGVzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFsbG93RHVwbGljYXRlcyhMZSl7dGhpcy4jaT1MZX0jcz0oZ3IodGhpcyxNKSxncih0aGlzLF8sITEpKTtnZXQgc29ydGFibGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgc29ydGFibGUoTGUpe3RoaXMuI3M9TGV9I249KGdyKHRoaXMsUyksZ3IodGhpcyxMLCExKSk7Z2V0IGNvbmZpcm1EZWxldGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29uZmlybURlbGV0ZShMZSl7dGhpcy4jbj1MZX0jbz0oZ3IodGhpcyxFKSxncih0aGlzLEMsW10pKTtnZXQgY2FuZGlkYXRlcygpe3JldHVybiB0aGlzLiNvfXNldCBjYW5kaWRhdGVzKExlKXt0aGlzLiNvPUxlfSNsPShncih0aGlzLHopLGdyKHRoaXMsJCwhMSkpO2dldCBhbGxvd0ZyZWVmb3JtKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGFsbG93RnJlZWZvcm0oTGUpe3RoaXMuI2w9TGV9I2M9KGdyKHRoaXMsRiksZ3IodGhpcyxHLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZhbGlkYXRpb25UZXh0KExlKXt0aGlzLiNjPUxlfWFkZGVkQ2FuZGlkYXRlc01hcD0oZ3IodGhpcyxaKSxuZXcgTWFwKTttYXRjaGluZ0NhbmRpZGF0ZXM9W107I2Q9Z3IodGhpcyxELCIiKTtnZXQgaW5wdXRWYWx1ZSgpe3JldHVybiB0aGlzLiNkfXNldCBpbnB1dFZhbHVlKExlKXt0aGlzLiNkPUxlfSN1PShncih0aGlzLFEpLGdyKHRoaXMsVCwiIikpO2dldCBnaG9zdFRleHQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZ2hvc3RUZXh0KExlKXt0aGlzLiN1PUxlfSNwPShncih0aGlzLFcpLGdyKHRoaXMsbWUsLTEpKTtnZXQgY3VycmVudENhbmRpZGF0ZUluZGV4KCl7cmV0dXJuIHRoaXMuI3B9c2V0IGN1cnJlbnRDYW5kaWRhdGVJbmRleChMZSl7dGhpcy4jcD1MZX0jZj0oZ3IodGhpcyxxKSxncih0aGlzLFUsLTEpKTtnZXQgZWRpdGluZ0luZGV4KCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGVkaXRpbmdJbmRleChMZSl7dGhpcy4jZj1MZX0jaD0oZ3IodGhpcyxqKSxncih0aGlzLFgsIiIpKTtnZXQgZWRpdGluZ1ZhbHVlKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGVkaXRpbmdWYWx1ZShMZSl7dGhpcy4jaD1MZX0jbT0oZ3IodGhpcyxKKSxncih0aGlzLEssLTEpKTtnZXQgZHJhZ2dlZEluZGV4KCl7cmV0dXJuIHRoaXMuI219c2V0IGRyYWdnZWRJbmRleChMZSl7dGhpcy4jbT1MZX0jZz0oZ3IodGhpcyxWKSxncih0aGlzLG5lLC0xKSk7Z2V0IGRyYWdPdmVySW5kZXgoKXtyZXR1cm4gdGhpcy4jZ31zZXQgZHJhZ092ZXJJbmRleChMZSl7dGhpcy4jZz1MZX0jYj0oZ3IodGhpcyxlZSksZ3IodGhpcyxIZSwwKSk7Z2V0IGRyYWdTdGFydFkoKXtyZXR1cm4gdGhpcy4jYn1zZXQgZHJhZ1N0YXJ0WShMZSl7dGhpcy4jYj1MZX0jeD0oZ3IodGhpcyxHZSksZ3IodGhpcyxEZSwwKSk7Z2V0IGRyYWdDdXJyZW50WSgpe3JldHVybiB0aGlzLiN4fXNldCBkcmFnQ3VycmVudFkoTGUpe3RoaXMuI3g9TGV9I3Y9KGdyKHRoaXMsX2UpLGdyKHRoaXMsc2UsLTEpKTtnZXQgdGFyZ2V0SW5kZXgoKXtyZXR1cm4gdGhpcy4jdn1zZXQgdGFyZ2V0SW5kZXgoTGUpe3RoaXMuI3Y9TGV9I3k9KGdyKHRoaXMsY2UpLGdyKHRoaXMscWUsMCkpO2dldCBpdGVtSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3l9c2V0IGl0ZW1IZWlnaHQoTGUpe3RoaXMuI3k9TGV9Ym91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj0oZ3IodGhpcyxudCksbnVsbCk7Ym91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPW51bGw7b3JpZ2luYWxJdGVtUmVjdHM9W107c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTpmb2N1cy13aXRoaW46OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSBkZWVzLXRpbGUgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubGlzdC1pdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubGlzdC1pdGVtOmxhc3Qtb2YtdHlwZSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6bm90KC5pcy1kcmFnZ2luZykgLmxpc3QtaXRlbTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1yb3ctaG92ZXIpOwogICAgICB9CgogICAgICAvKiBEcmFnZ2luZyBpdGVtIC0gZm9sbG93cyBjdXJzb3IgKi8KICAgICAgLmxpc3QtaXRlbS5kcmFnZ2luZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTIlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgwLCAwLCAwLCAwLjQpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMTVzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLyogSXRlbXMgdGhhdCBuZWVkIHRvIG1vdmUgdXAgdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtdXAgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0taXRlbS1oZWlnaHQsIDQ4cHgpKSk7CiAgICAgIH0KCiAgICAgIC8qIEl0ZW1zIHRoYXQgbmVlZCB0byBtb3ZlIGRvd24gdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtZG93biB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSk7CiAgICAgIH0KCgogICAgICAuY2FuZGlkYXRlLWNoZWNrIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNhbmRpZGF0ZS11bmtub3duIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDU4JSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5pdGVtLWJ1bGxldCB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmRyYWctaGFuZGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBtb3ZlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLml0ZW0tY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuaXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLml0ZW0tZWRpdC1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAzcHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLml0ZW0tYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zYXZlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zYXZlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmNhbmNlbCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmNhbmNlbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIiwiaHNsKDAgNjIuOCUgNTAuNiUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxM3B4OwogICAgICAgIGhlaWdodDogMTNweDsKICAgICAgfQoKICAgICAgLmFkZC1pdGVtLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuYWRkLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b246ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDE2cHggMTBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMzQuOSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNhYmxlIHRyYW5zaXRpb25zIGR1cmluZyBkcm9wIHRvIHByZXZlbnQgZmxhc2ggKi8KICAgICAgLmxpc3QtaXRlbXMuZHJvcHBpbmcgLmxpc3QtaXRlbSB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAvKiDilIDilIAgVGVybWluYWwtc3R5bGUgaW5saW5lIGF1dG9jb21wbGV0ZSDilIDilIAgKi8KICAgICAgLmF1dG9jb21wbGV0ZS13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdob3N0LXRleHQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZ2hvc3QtdHlwZWQgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdob3N0LWNvbXBsZXRpb24gewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIAogICAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9IiR7dGhpcy52YWx1ZS5sZW5ndGh9IGl0ZW0ke3RoaXMudmFsdWUubGVuZ3RoIT09MT8icyI6IiJ9Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9Imxpc3QtaXRlbXMiPgogICAgICAgICAgICAke3RoaXMudmFsdWUubGVuZ3RoPjA/dGhpcy52YWx1ZS5tYXAoKExlLHdlKT0+d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ibGlzdC1pdGVtICR7dGhpcy5kcmFnZ2VkSW5kZXg9PT13ZT8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iJHt0aGlzLnNvcnRhYmxlJiYhdGhpcy5kaXNhYmxlZH0iCiAgICAgICAgICAgICAgICBAZHJhZ3N0YXJ0PSR7T2U9PnRoaXMuaGFuZGxlRHJhZ1N0YXJ0KE9lLHdlKX0KICAgICAgICAgICAgICAgIEBkcmFnZW5kPSR7dGhpcy5oYW5kbGVEcmFnRW5kfQogICAgICAgICAgICAgICAgQGRyYWdvdmVyPSR7T2U9PnRoaXMuaGFuZGxlRHJhZ092ZXIoT2Usd2UpfQogICAgICAgICAgICAgICAgQGRyb3A9JHtPZT0+dGhpcy5oYW5kbGVEcm9wKE9lLHdlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke3RoaXMuc29ydGFibGUmJiF0aGlzLmRpc2FibGVkP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyYWctaGFuZGxlIj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpncmlwVmVydGljYWwifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICAgICR7dGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgICAgICR7dGhpcy5jYW5kaWRhdGVzLnNvbWUoT2U9Pk9lLnZpZXdLZXk9PT1MZSk/d2AKICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYW5kaWRhdGUtY2hlY2siIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2FuZGlkYXRlLXVua25vd24iIC5pY29uPSR7Imx1Y2lkZTpoZWxwQ2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICBgOiF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9Iml0ZW0tYnVsbGV0IiAuaWNvbj0keyJsdWNpZGU6ZG90In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXg9PT13ZT93YAogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpdGVtLWVkaXQtaW5wdXQiCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmVkaXRpbmdWYWx1ZX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke09lPT50aGlzLmVkaXRpbmdWYWx1ZT1PZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke09lPT50aGlzLmhhbmRsZUVkaXRLZXlEb3duKE9lLHdlKX0KICAgICAgICAgICAgICAgICAgICAgIEBibHVyPSR7KCk9PnRoaXMuc2F2ZUVkaXQod2UpfQogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLXRleHQiIEBkYmxjbGljaz0keygpPT4hdGhpcy5kaXNhYmxlZCYmdGhpcy5zdGFydEVkaXQod2UpfT4KICAgICAgICAgICAgICAgICAgICAgICR7TGV9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmVkaXRpbmdJbmRleD09PXdlP3dgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBzYXZlIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlRWRpdCh3ZSl9PgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2FuY2VsRWRpdCgpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjp3YAogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuc3RhcnRFZGl0KHdlKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBlbmNpbCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlSXRlbSh3ZSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0cmFzaDIifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCk6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICBObyBpdGVtcyBhZGRlZCB5ZXQKICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4SXRlbXN8fHRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWF4SXRlbXMpP3dgCiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iYWRkLWl0ZW0tY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdXRvY29tcGxldGUtd3JhcHBlciI+CiAgICAgICAgICAgICAgICAke3RoaXMuZ2hvc3RUZXh0P3dgCiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnaG9zdC10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2hvc3QtdHlwZWQiPiR7dGhpcy5pbnB1dFZhbHVlfTwvc3Bhbj48c3BhbiBjbGFzcz0iZ2hvc3QtY29tcGxldGlvbiI+JHt0aGlzLmdob3N0VGV4dH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1pbnB1dCIKICAgICAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQogICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlQWRkS2V5RG93bn0KICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFkZEl0ZW19CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5pbnB1dFZhbHVlLnRyaW0oKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpwbHVzIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiPiR7dGhpcy52YWxpZGF0aW9uVGV4dH08L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlSW5wdXQoTGUpe3RoaXMuaW5wdXRWYWx1ZT1MZS50YXJnZXQudmFsdWUsdGhpcy51cGRhdGVHaG9zdFRleHQoKX11cGRhdGVHaG9zdFRleHQoKXtpZih0aGlzLmNhbmRpZGF0ZXMubGVuZ3RoPT09MHx8IXRoaXMuaW5wdXRWYWx1ZSl7dGhpcy5naG9zdFRleHQ9IiIsdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9LTEsdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9W107cmV0dXJufWxldCBMZT10aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKTt0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcz10aGlzLmNhbmRpZGF0ZXMuZmlsdGVyKHdlPT50aGlzLnZhbHVlLmluY2x1ZGVzKHdlLnZpZXdLZXkpPyExOndlLnZpZXdLZXkudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKExlKSkuc29ydCgod2UsT2UpPT53ZS52aWV3S2V5Lmxlbmd0aC1PZS52aWV3S2V5Lmxlbmd0aCksdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXMubGVuZ3RoPjA/KHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PTAsdGhpcy5naG9zdFRleHQ9dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXNbMF0udmlld0tleS5zbGljZSh0aGlzLmlucHV0VmFsdWUubGVuZ3RoKSk6KHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMuZ2hvc3RUZXh0PSIiKX1oYW5kbGVBZGRLZXlEb3duKExlKXtpZihMZS5rZXk9PT0iVGFiIiYmdGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wJiZ0aGlzLmlucHV0VmFsdWUpe2lmKExlLnByZXZlbnREZWZhdWx0KCksTGUuc2hpZnRLZXkmJnRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aD4wKXt0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0odGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXgrMSkldGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXMubGVuZ3RoO2xldCB3ZT10aGlzLm1hdGNoaW5nQ2FuZGlkYXRlc1t0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleF07dGhpcy5naG9zdFRleHQ9d2Uudmlld0tleS5zbGljZSh0aGlzLmlucHV0VmFsdWUubGVuZ3RoKX1lbHNlIGlmKCFMZS5zaGlmdEtleSYmdGhpcy5naG9zdFRleHQmJnRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzLmxlbmd0aD4wKXtsZXQgd2U9dGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXNbdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXhdO3RoaXMuaW5wdXRWYWx1ZT13ZS52aWV3S2V5LHRoaXMuZ2hvc3RUZXh0PSIiO2xldCBPZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTtPZSYmKE9lLnZhbHVlPXdlLnZpZXdLZXkpfXJldHVybn1pZihMZS5rZXk9PT0iRXNjYXBlIiYmdGhpcy5naG9zdFRleHQpe0xlLnByZXZlbnREZWZhdWx0KCksdGhpcy5naG9zdFRleHQ9IiIsdGhpcy5jdXJyZW50Q2FuZGlkYXRlSW5kZXg9LTEsdGhpcy5tYXRjaGluZ0NhbmRpZGF0ZXM9W107cmV0dXJufWlmKExlLmtleT09PSJFbnRlciImJnRoaXMuaW5wdXRWYWx1ZS50cmltKCkpe2lmKExlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jYW5kaWRhdGVzLmxlbmd0aD4wKXtsZXQgd2U9dGhpcy5jYW5kaWRhdGVzLmZpbmQoT2U9Pk9lLnZpZXdLZXkudG9Mb3dlckNhc2UoKT09PXRoaXMuaW5wdXRWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSk7d2U/dGhpcy5zZWxlY3RDYW5kaWRhdGUod2UpOnRoaXMuYWxsb3dGcmVlZm9ybSYmKHRoaXMuZ2hvc3RUZXh0PSIiLHRoaXMuY3VycmVudENhbmRpZGF0ZUluZGV4PS0xLHRoaXMubWF0Y2hpbmdDYW5kaWRhdGVzPVtdLHRoaXMuYWRkSXRlbSgpKTtyZXR1cm59dGhpcy5hZGRJdGVtKCl9fWhhbmRsZUVkaXRLZXlEb3duKExlLHdlKXtMZS5rZXk9PT0iRW50ZXIiPyhMZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUVkaXQod2UpKTpMZS5rZXk9PT0iRXNjYXBlIiYmKExlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jYW5jZWxFZGl0KCkpfXNlbGVjdENhbmRpZGF0ZShMZSl7aWYodGhpcy5tYXhJdGVtcyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4SXRlbXMpe3RoaXMudmFsaWRhdGlvblRleHQ9YE1heGltdW0gJHt0aGlzLm1heEl0ZW1zfSBpdGVtcyBhbGxvd2VkYCxzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufWlmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmdGhpcy52YWx1ZS5pbmNsdWRlcyhMZS52aWV3S2V5KSl7dGhpcy52YWxpZGF0aW9uVGV4dD0iVGhpcyBpdGVtIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IixzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufXRoaXMuYWRkZWRDYW5kaWRhdGVzTWFwLnNldChMZS52aWV3S2V5LExlKSx0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLExlLnZpZXdLZXldLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmdob3N0VGV4dD0iIix0aGlzLmN1cnJlbnRDYW5kaWRhdGVJbmRleD0tMSx0aGlzLm1hdGNoaW5nQ2FuZGlkYXRlcz1bXSx0aGlzLnZhbGlkYXRpb25UZXh0PSIiLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCB3ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5hZGQtaW5wdXQiKTt3ZSYmKHdlLnZhbHVlPSIiLHdlLmZvY3VzKCkpfSl9Z2V0Q2FuZGlkYXRlRm9ySXRlbShMZSl7cmV0dXJuIHRoaXMuYWRkZWRDYW5kaWRhdGVzTWFwLmdldChMZSl9Z2V0QWRkZWRDYW5kaWRhdGVzKCl7cmV0dXJuIHRoaXMudmFsdWUubWFwKExlPT50aGlzLmFkZGVkQ2FuZGlkYXRlc01hcC5nZXQoTGUpKS5maWx0ZXIoTGU9PkxlIT09dm9pZCAwKX1hZGRJdGVtKCl7bGV0IExlPXRoaXMuaW5wdXRWYWx1ZS50cmltKCk7aWYoTGUpe2lmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmdGhpcy52YWx1ZS5pbmNsdWRlcyhMZSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1pZih0aGlzLm1heEl0ZW1zJiZ0aGlzLnZhbHVlLmxlbmd0aD49dGhpcy5tYXhJdGVtcyl7dGhpcy52YWxpZGF0aW9uVGV4dD1gTWF4aW11bSAke3RoaXMubWF4SXRlbXN9IGl0ZW1zIGFsbG93ZWRgLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59dGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxMZV0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMudmFsaWRhdGlvblRleHQ9IiIsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IHdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmFkZC1pbnB1dCIpO3dlJiYod2UudmFsdWU9IiIsd2UuZm9jdXMoKSl9KX19c3RhcnRFZGl0KExlKXt0aGlzLmVkaXRpbmdJbmRleD1MZSx0aGlzLmVkaXRpbmdWYWx1ZT10aGlzLnZhbHVlW0xlXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgd2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuaXRlbS1lZGl0LWlucHV0Iik7d2UmJih3ZS5mb2N1cygpLHdlLnNlbGVjdCgpKX0pfXNhdmVFZGl0KExlKXtsZXQgd2U9dGhpcy5lZGl0aW5nVmFsdWUudHJpbSgpO2lmKCF3ZSl7dGhpcy5jYW5jZWxFZGl0KCk7cmV0dXJufWlmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmd2UhPT10aGlzLnZhbHVlW0xlXSYmdGhpcy52YWx1ZS5pbmNsdWRlcyh3ZSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1sZXQgT2U9Wy4uLnRoaXMudmFsdWVdO09lW0xlXT13ZSx0aGlzLnZhbHVlPU9lLHRoaXMuZWRpdGluZ0luZGV4PS0xLHRoaXMuZWRpdGluZ1ZhbHVlPSIiLHRoaXMudmFsaWRhdGlvblRleHQ9IiIsdGhpcy5lbWl0Q2hhbmdlKCl9Y2FuY2VsRWRpdCgpe3RoaXMuZWRpdGluZ0luZGV4PS0xLHRoaXMuZWRpdGluZ1ZhbHVlPSIifWFzeW5jIHJlbW92ZUl0ZW0oTGUpe2lmKHRoaXMuY29uZmlybURlbGV0ZSYmIWF3YWl0IHRoaXMuc2hvd0NvbmZpcm1EaWFsb2coYERlbGV0ZSAiJHt0aGlzLnZhbHVlW0xlXX0iP2ApKXJldHVybjtsZXQgd2U9dGhpcy52YWx1ZVtMZV07dGhpcy5hZGRlZENhbmRpZGF0ZXNNYXAuZGVsZXRlKHdlKSx0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKChPZSxnZSk9PmdlIT09TGUpLHRoaXMuZW1pdENoYW5nZSgpfWFzeW5jIHNob3dDb25maXJtRGlhbG9nKExlKXtyZXR1cm4gY29uZmlybShMZSl9aGFuZGxlRHJhZ1N0YXJ0KExlLHdlKXtpZighdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZClyZXR1cm47dGhpcy5kcmFnZ2VkSW5kZXg9d2UsdGhpcy50YXJnZXRJbmRleD13ZSxMZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZD0ibW92ZSIsTGUuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLHdlLnRvU3RyaW5nKCkpO2xldCBPZT1uZXcgSW1hZ2U7T2Uuc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBVUVCQUFBQUN3QUFBQUFBUUFCQUFBQ0FrUUJBRHM9IixMZS5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKE9lLDAsMCksdGhpcy5kcmFnU3RhcnRZPUxlLmNsaWVudFksdGhpcy5kcmFnQ3VycmVudFk9TGUuY2xpZW50WTtsZXQgZ2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpLGJlPUFycmF5LmZyb20oZ2U/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKXx8W10pO2JlW3dlXSYmKHRoaXMuaXRlbUhlaWdodD1iZVt3ZV0ub2Zmc2V0SGVpZ2h0KSx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPWJlLm1hcChJZT0+SWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLGdlPy5jbGFzc0xpc3QuYWRkKCJpcy1kcmFnZ2luZyIpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj10aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyLmJpbmQodGhpcyksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9dGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kLmJpbmQodGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQpfWhhbmRsZUdsb2JhbERyYWdPdmVyKExlKXtpZihMZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZHJhZ2dlZEluZGV4PT09LTEpcmV0dXJuO3RoaXMuZHJhZ0N1cnJlbnRZPUxlLmNsaWVudFk7bGV0IHdlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKTtpZighd2UpcmV0dXJuO2xldCBPZT1BcnJheS5mcm9tKHdlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKSksZ2U9T2VbdGhpcy5kcmFnZ2VkSW5kZXhdO2lmKCFnZSlyZXR1cm47bGV0IGJlPXRoaXMuZHJhZ0N1cnJlbnRZLXRoaXMuZHJhZ1N0YXJ0WTtnZS5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHtiZX1weClgO2xldCBJZT10aGlzLm9yaWdpbmFsSXRlbVJlY3RzW3RoaXMuZHJhZ2dlZEluZGV4XTtpZighSWUpcmV0dXJuO2xldCB5dD1JZS50b3ArSWUuaGVpZ2h0LzIrYmUsd3Q9dGhpcy5kcmFnZ2VkSW5kZXg7Zm9yKGxldCBZdD0wO1l0PE9lLmxlbmd0aDtZdCsrKXtpZihZdD09PXRoaXMuZHJhZ2dlZEluZGV4KWNvbnRpbnVlO2xldCB6YT10aGlzLm9yaWdpbmFsSXRlbVJlY3RzW1l0XTtpZighemEpY29udGludWU7bGV0IFBhPXphLnRvcCt6YS5oZWlnaHQvMjtpZihPZVtZdF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJtb3ZlLXVwIik/UGEtPXRoaXMuaXRlbUhlaWdodDpPZVtZdF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJtb3ZlLWRvd24iKSYmKFBhKz10aGlzLml0ZW1IZWlnaHQpLHl0PFBhJiZZdDx0aGlzLmRyYWdnZWRJbmRleCl7d3Q9WXQ7YnJlYWt9ZWxzZSB5dD5QYSYmWXQ+dGhpcy5kcmFnZ2VkSW5kZXgmJih3dD1ZdCl9d3QhPT10aGlzLnRhcmdldEluZGV4JiYodGhpcy50YXJnZXRJbmRleD13dCx0aGlzLnVwZGF0ZUl0ZW1Qb3NpdGlvbnMoT2UpKX11cGRhdGVJdGVtUG9zaXRpb25zKExlKXtsZXQgd2U9dGhpcy5kcmFnZ2VkSW5kZXgsT2U9dGhpcy50YXJnZXRJbmRleCxnZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik7Z2UmJmdlLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSxMZS5mb3JFYWNoKChiZSxJZSk9PntJZSE9PXdlJiYoYmUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIpLGJlLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSx3ZTxPZT9JZT53ZSYmSWU8PU9lJiZiZS5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIik6d2U+T2UmJkllPj1PZSYmSWU8d2UmJmJlLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQoKXt0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXI9bnVsbCksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQmJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9bnVsbCk7bGV0IExlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKSx3ZT1MZT8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpLE9lPXdlPy5bdGhpcy5kcmFnZ2VkSW5kZXhdO2lmKHRoaXMuZHJhZ2dlZEluZGV4PT09LTF8fHRoaXMudGFyZ2V0SW5kZXg9PT0tMXx8dGhpcy5kcmFnZ2VkSW5kZXg9PT10aGlzLnRhcmdldEluZGV4KXtpZihPZSYmdGhpcy5kcmFnZ2VkSW5kZXghPT0tMSl7T2Uuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLE9lLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwKSI7bGV0IFl0PSExLHphPWkoKCk9PntZdHx8KFl0PSEwLE9lLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHphKSx0aGlzLmNsZWFudXBEcmFnU3RhdGUoTGUsd2UpKX0sIm9uUmV0dXJuIik7T2UuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsemEse29uY2U6ITB9KSxzZXRUaW1lb3V0KHphLDIwMCl9ZWxzZSB0aGlzLmNsZWFudXBEcmFnU3RhdGUoTGUsd2UpO3JldHVybn1sZXQgZ2U9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF0sYmU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLnRhcmdldEluZGV4XTtpZighZ2V8fCFiZXx8IU9lKXt0aGlzLmNsZWFudXBEcmFnU3RhdGUoTGUsd2UpO3JldHVybn1sZXQgSWU7dGhpcy50YXJnZXRJbmRleD50aGlzLmRyYWdnZWRJbmRleD9JZT1iZS5ib3R0b20tZ2UuYm90dG9tOkllPWJlLnRvcC1nZS50b3AsT2Uuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLE9lLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke0llfXB4KWA7bGV0IHl0PSExLHd0PWkoKCk9PntpZih5dClyZXR1cm47eXQ9ITAsT2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsd3QpLExlPy5jbGFzc0xpc3QuYWRkKCJkcm9wcGluZyIpLExlPy5vZmZzZXRIZWlnaHQsd2U/LmZvckVhY2goUGE9PntQYS5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiwiZHJhZ2dpbmciKSxQYS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIiksUGEuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pO2xldCBZdD1bLi4udGhpcy52YWx1ZV0sW3phXT1ZdC5zcGxpY2UodGhpcy5kcmFnZ2VkSW5kZXgsMSk7WXQuc3BsaWNlKHRoaXMudGFyZ2V0SW5kZXgsMCx6YSksdGhpcy52YWx1ZT1ZdCx0aGlzLmVtaXRDaGFuZ2UoKSx0aGlzLmRyYWdnZWRJbmRleD0tMSx0aGlzLmRyYWdPdmVySW5kZXg9LTEsdGhpcy50YXJnZXRJbmRleD0tMSx0aGlzLmRyYWdTdGFydFk9MCx0aGlzLmRyYWdDdXJyZW50WT0wLHRoaXMub3JpZ2luYWxJdGVtUmVjdHM9W10sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IFBhPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpO1BhPy5mb3JFYWNoKFlpPT57WWkuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSJ9KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik/Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntQYT8uZm9yRWFjaChZaT0+e1lpLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSxMZT8uY2xhc3NMaXN0LnJlbW92ZSgiZHJvcHBpbmciLCJpcy1kcmFnZ2luZyIpfSl9KX0sIm9uVHJhbnNpdGlvbkVuZCIpO09lLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHd0LHtvbmNlOiEwfSksc2V0VGltZW91dCh3dCwyMDApfWNsZWFudXBEcmFnU3RhdGUoTGUsd2Upe0xlPy5jbGFzc0xpc3QuYWRkKCJkcm9wcGluZyIpLExlPy5vZmZzZXRIZWlnaHQsd2U/LmZvckVhY2goT2U9PntPZS5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiwiZHJhZ2dpbmciKSxPZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIiksT2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLHRoaXMuZHJhZ2dlZEluZGV4PS0xLHRoaXMuZHJhZ092ZXJJbmRleD0tMSx0aGlzLnRhcmdldEluZGV4PS0xLHRoaXMuZHJhZ1N0YXJ0WT0wLHRoaXMuZHJhZ0N1cnJlbnRZPTAsdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1bXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgT2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIik7T2U/LmZvckVhY2goZ2U9PntnZS5zdHlsZS50cmFuc2l0aW9uPSJub25lIn0pLHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKT8ub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e09lPy5mb3JFYWNoKGdlPT57Z2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLExlPy5jbGFzc0xpc3QucmVtb3ZlKCJkcm9wcGluZyIsImlzLWRyYWdnaW5nIil9KX0pfWhhbmRsZURyYWdFbmQoKXt0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQoKX1oYW5kbGVEcmFnT3ZlcihMZSx3ZSl7IXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWR8fChMZS5wcmV2ZW50RGVmYXVsdCgpLExlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIil9aGFuZGxlRHJhZ0xlYXZlKCl7fWhhbmRsZURyb3AoTGUsd2UpeyF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkfHxMZS5wcmV2ZW50RGVmYXVsdCgpfWVtaXRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShMZSl7dGhpcy52YWx1ZT1MZXx8W119YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmKCF0aGlzLnZhbHVlfHx0aGlzLnZhbHVlLmxlbmd0aD09PTApPyh0aGlzLnZhbGlkYXRpb25UZXh0PSJBdCBsZWFzdCBvbmUgaXRlbSBpcyByZXF1aXJlZCIsITEpOnRoaXMubWluSXRlbXMmJnRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWluSXRlbXM/KHRoaXMudmFsaWRhdGlvblRleHQ9YEF0IGxlYXN0ICR7dGhpcy5taW5JdGVtc30gaXRlbXMgcmVxdWlyZWRgLCExKToodGhpcy52YWxpZGF0aW9uVGV4dD0iIiwhMCl9c3RhdGlje2dyKGEscil9fTtyZXR1cm4gdnQ9YX0pKCl9KTt2YXIgYUlhLGlJYSxzSWEsbklhLG9JYSxsSWEsY0lhLF9VcixUVXI9dSgoKT0+e3ZlKCk7d2EoKTt3bigpO2FJYT1pKCgpPT57bGV0IHQ9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmB0aXRsZS0ke3R9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6IlN5c3RlbSBQZXJmb3JtYW5jZSBSZXBvcnQifSx7aWQ6YGRhdGUtJHt0KzF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6YEdlbmVyYXRlZCBvbjogJHtuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCl9YH0se2lkOmBzdW1tYXJ5LWhlYWRpbmctJHt0KzJ9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkV4ZWN1dGl2ZSBTdW1tYXJ5In0se2lkOmBzdW1tYXJ5LSR7dCszfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJUaGlzIHJlcG9ydCBwcm92aWRlcyBhbiBhbmFseXNpcyBvZiBzeXN0ZW0gcGVyZm9ybWFuY2UgbWV0cmljcyBvdmVyIHRoZSBsYXN0IDMwIGRheXMuIn0se2lkOmBtZXRyaWNzLWhlYWRpbmctJHt0KzR9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IktleSBNZXRyaWNzIn0se2lkOmBtZXRyaWNzLWxpc3QtJHt0KzV9YCx0eXBlOiJsaXN0Iixjb250ZW50OmBBdmVyYWdlIHJlc3BvbnNlIHRpbWU6IDEyNG1zClVwdGltZTogOTkuOTclCkNQVSB1dGlsaXphdGlvbjogNDUlCk1lbW9yeSB1c2FnZTogMi4zR0IgLyA4R0JgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgYW5hbHlzaXMtaGVhZGluZy0ke3QrNn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiUGVyZm9ybWFuY2UgQW5hbHlzaXMifSx7aWQ6YGFuYWx5c2lzLXF1b3RlLSR7dCs3fWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6IlN5c3RlbSBwZXJmb3JtYW5jZSByZW1haW5zIHdpdGhpbiBhY2NlcHRhYmxlIHBhcmFtZXRlcnMgd2l0aCByb29tIGZvciBvcHRpbWl6YXRpb24gaW4gbWVtb3J5IG1hbmFnZW1lbnQuIn0se2lkOmBjb2RlLWhlYWRpbmctJHt0Kzh9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IlNhbXBsZSBRdWVyeSBQZXJmb3JtYW5jZSJ9LHtpZDpgY29kZS1ibG9jay0ke3QrOX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6YFNFTEVDVCBBVkcocmVzcG9uc2VfdGltZSkgYXMgYXZnX3RpbWUsCiAgICAgICBDT1VOVCgqKSBhcyB0b3RhbF9yZXF1ZXN0cywKICAgICAgIERBVEUoY3JlYXRlZF9hdCkgYXMgZGF0ZQpGUk9NIHBlcmZvcm1hbmNlX2xvZ3MKV0hFUkUgY3JlYXRlZF9hdCA+PSBOT1coKSAtIElOVEVSVkFMIDMwIERBWQpHUk9VUCBCWSBEQVRFKGNyZWF0ZWRfYXQpCk9SREVSIEJZIGRhdGUgREVTQztgLG1ldGFkYXRhOntsYW5ndWFnZToic3FsIn19LHtpZDpgZGl2aWRlci0ke3QrMTB9YCx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIifSx7aWQ6YGZvb3Rlci0ke3QrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlJlcG9ydCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBTeXN0ZW0gTW9uaXRvciB2Mi41LjAifV19LCJnZW5lcmF0ZVJlcG9ydEJsb2NrcyIpLGlJYT1pKCgpPT57bGV0IHQ9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmByZWNpcGUtdGl0bGUtJHt0fWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJDbGFzc2ljIE1hcmdoZXJpdGEgUGl6emEifSx7aWQ6YHJlY2lwZS1pbnRyby0ke3QrMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiQSB0cmFkaXRpb25hbCBJdGFsaWFuIHBpenphIHdpdGggZnJlc2ggYmFzaWwsIG1venphcmVsbGEsIGFuZCB0b21hdG8gc2F1Y2UuIn0se2lkOmBpbmdyZWRpZW50cy1oZWFkaW5nLSR7dCsyfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjM1NX0gSW5ncmVkaWVudHMifSx7aWQ6YGRvdWdoLWhlYWRpbmctJHt0KzN9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkZvciB0aGUgRG91Z2g6In0se2lkOmBkb3VnaC1saXN0LSR7dCs0fWAsdHlwZToibGlzdCIsY29udGVudDpgNTAwZyB0aXBvICIwMCIgZmxvdXIKMzI1bWwgd2FybSB3YXRlcgoxMGcgc2FsdAo3ZyBhY3RpdmUgZHJ5IHllYXN0CjIgdGJzcCBvbGl2ZSBvaWxgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgdG9wcGluZ3MtaGVhZGluZy0ke3QrNX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiRm9yIHRoZSBUb3BwaW5nczoifSx7aWQ6YHRvcHBpbmdzLWxpc3QtJHt0KzZ9YCx0eXBlOiJsaXN0Iixjb250ZW50OmA0MDBnIGNhbm5lZCBTYW4gTWFyemFubyB0b21hdG9lcwoyNTBnIGZyZXNoIG1venphcmVsbGEKRnJlc2ggYmFzaWwgbGVhdmVzCkV4dHJhIHZpcmdpbiBvbGl2ZSBvaWwKU2FsdCBhbmQgcGVwcGVyIHRvIHRhc3RlYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YGluc3RydWN0aW9ucy1oZWFkaW5nLSR7dCs3fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjQ2OH1cdTIwMERcdXsxRjM3M30gSW5zdHJ1Y3Rpb25zIn0se2lkOmBzdGVwcy1saXN0LSR7dCs4fWAsdHlwZToibGlzdCIsY29udGVudDpgRGlzc29sdmUgeWVhc3QgaW4gd2FybSB3YXRlciBhbmQgbGV0IHN0YW5kIGZvciA1IG1pbnV0ZXMKTWl4IGZsb3VyIGFuZCBzYWx0LCBjcmVhdGUgYSB3ZWxsIGluIGNlbnRlcgpBZGQgeWVhc3QgbWl4dHVyZSBhbmQgb2xpdmUgb2lsCktuZWFkIGZvciAxMCBtaW51dGVzIHVudGlsIHNtb290aApMZXQgcmlzZSBmb3IgMS0yIGhvdXJzIHVudGlsIGRvdWJsZWQKUHVuY2ggZG93biBhbmQgZGl2aWRlIGludG8gcG9ydGlvbnMKUm9sbCBvdXQgZWFjaCBwb3J0aW9uIHRvIDEyLWluY2ggY2lyY2xlcwpUb3Agd2l0aCBjcnVzaGVkIHRvbWF0b2VzLCBtb3p6YXJlbGxhLCBhbmQgYmFzaWwKQmFrZSBhdCA0NzVceEIwRiAoMjQ1XHhCMEMpIGZvciAxMC0xMiBtaW51dGVzYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOmB0aXAtJHt0Kzl9YCx0eXBlOiJxdW90ZSIsY29udGVudDoiUHJvIHRpcDogRm9yIGFuIGF1dGhlbnRpYyB0YXN0ZSwgdXNlIGEgcGl6emEgc3RvbmUgYW5kIHByZWhlYXQgaXQgaW4gdGhlIG92ZW4gZm9yIGF0IGxlYXN0IDMwIG1pbnV0ZXMgYmVmb3JlIGJha2luZy4ifSx7aWQ6YGRpdmlkZXItJHt0KzEwfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOmBzZXJ2aW5ncy0ke3QrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlNlcnZpbmdzOiA0IHBpenphcyB8IFByZXAgdGltZTogMiBob3VycyB8IENvb2sgdGltZTogMTIgbWludXRlcyJ9XX0sImdlbmVyYXRlUmVjaXBlQmxvY2tzIiksc0lhPWkodD0+e2xldCBlPXt9O3JldHVybiBlLmJhc2ljPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1iYXNpYyIpLGUuYXJ0aWNsZT10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItYXJ0aWNsZSIpLGUuZHJhZ0Ryb3A9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWRyYWdkcm9wIiksZS50dXRvcmlhbD10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItdHV0b3JpYWwiKSxlLm1lZXRpbmc9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLW1lZXRpbmciKSxlLnJlY2lwZT10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItcmVjaXBlIiksZS50ZWNobmljYWw9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXRlY2huaWNhbCIpLGUuZm9ybUludGVncmF0aW9uPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1mb3JtLWludGVncmF0aW9uIiksZS5wcm9ncmFtbWF0aWM9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXByb2dyYW1tYXRpYyIpLGUuZXhwb3J0RGVtbz10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZXhwb3J0IiksZX0sImluaXRpYWxpemVFZGl0b3JzIiksbklhPWkoKHQsZSk9PntsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tZ2VuZXJhdGUtcmVwb3J0IiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tZ2VuZXJhdGUtcmVjaXBlIikscz10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tY2xlYXItZWRpdG9yIik7ciYmci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmltcG9ydEJsb2NrcyhhSWEoKSl9KSxhJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuaW1wb3J0QmxvY2tzKGlJYSgpKX0pLHMmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5pbXBvcnRCbG9ja3MoW10pfSl9LCJzZXR1cFByb2dyYW1tYXRpY0RlbW8iKSxvSWE9aSgodCxlKT0+e2xldCByPXQucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtYmxvY2tzIiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LWh0bWwiKSxzPXQucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtbWFya2Rvd24iKSxuPXQucXVlcnlTZWxlY3RvcigiI2J0bi1zYXZlLXN0YXRlIiksbz10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tcmVzdG9yZS1zdGF0ZSIpLGw9bnVsbDtyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBjPWUuZXhwb3J0QmxvY2tzKCk7Y29uc29sZS5sb2coIkV4cG9ydGVkIGJsb2NrczoiLGMpLGFsZXJ0KGBFeHBvcnRlZCAke2MubGVuZ3RofSBibG9ja3MgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLmApfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgYz1lLmV4cG9ydEFzSHRtbCgpO2NvbnNvbGUubG9nKCJIVE1MIEV4cG9ydDoiLGMpLGFsZXJ0KCJIVE1MIGV4cG9ydGVkIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy4iKX0pLHMmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IGM9ZS5leHBvcnRBc01hcmtkb3duKCk7Y29uc29sZS5sb2coIk1hcmtkb3duIEV4cG9ydDoiLGMpLGFsZXJ0KCJNYXJrZG93biBleHBvcnRlZCB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuIil9KSxuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2w9ZS5leHBvcnRTdGF0ZSgpLGNvbnNvbGUubG9nKCJTYXZlZCBzdGF0ZToiLGwpLGFsZXJ0KCJFZGl0b3Igc3RhdGUgc2F2ZWQhIil9KSxvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2w/KGUuaW1wb3J0U3RhdGUobCksYWxlcnQoIkVkaXRvciBzdGF0ZSByZXN0b3JlZCEiKSk6YWxlcnQoIk5vIHNhdmVkIHN0YXRlIGZvdW5kLiBTYXZlIHN0YXRlIGZpcnN0ISIpfSl9LCJzZXR1cEV4cG9ydERlbW8iKSxsSWE9aSgodCxlLHIpPT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLXNob3ctaHRtbC1vdXRwdXQiKSxzPXQucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3LWh0bWwiKTthJiZzJiZlJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3MudGV4dENvbnRlbnQ9ZS5nZXRWYWx1ZSgpLHMuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSk7bGV0IG49dC5xdWVyeVNlbGVjdG9yKCIjYnRuLXNob3ctbWFya2Rvd24tb3V0cHV0Iiksbz10LnF1ZXJ5U2VsZWN0b3IoIiNvdXRwdXQtcHJldmlldy1tYXJrZG93biIpO24mJm8mJnImJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57by50ZXh0Q29udGVudD1yLmdldFZhbHVlKCksby5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9KX0sInNldHVwT3V0cHV0Rm9ybWF0RGVtbyIpLGNJYT1pKHQ9Pnt0LmFydGljbGUmJnNldFRpbWVvdXQoKCk9PntsZXQgZT1be2lkOiJpbnRyby1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkludHJvZHVjdGlvbiB0byBNb2Rlcm4gV2ViIERldmVsb3BtZW50In0se2lkOiJpbnRyby1wYXJhLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6Ik1vZGVybiB3ZWIgZGV2ZWxvcG1lbnQgaGFzIGV2b2x2ZWQgc2lnbmlmaWNhbnRseSBvdmVyIHRoZSBwYXN0IGRlY2FkZS4gSW4gdGhpcyBhcnRpY2xlLCB3ZSdsbCBleHBsb3JlIHRoZSBrZXkgdGVjaG5vbG9naWVzIGFuZCBiZXN0IHByYWN0aWNlcyB0aGF0IGRlZmluZSB3ZWIgZGV2ZWxvcG1lbnQgaW4gMjAyNC4ifSx7aWQ6InRlY2gtaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJLZXkgVGVjaG5vbG9naWVzIn0se2lkOiJ0ZWNoLWxpc3QtIitEYXRlLm5vdygpLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YFR5cGVTY3JpcHQgLSBUeXBlLXNhZmUgSmF2YVNjcmlwdCBkZXZlbG9wbWVudApXZWIgQ29tcG9uZW50cyAtIE5hdGl2ZSBjb21wb25lbnQgbW9kZWwKRVMgTW9kdWxlcyAtIE1vZGVybiBtb2R1bGUgc3lzdGVtCldlYkFzc2VtYmx5IC0gSGlnaC1wZXJmb3JtYW5jZSBjb21wdXRpbmdgLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSx7aWQ6InF1b3RlLSIrRGF0ZS5ub3coKSx0eXBlOiJxdW90ZSIsY29udGVudDoiVGhlIGJlc3Qgd2F5IHRvIHByZWRpY3QgdGhlIGZ1dHVyZSBpcyB0byBpbnZlbnQgaXQuIC0gQWxhbiBLYXkifSx7aWQ6ImV4YW1wbGUtaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJDb2RlIEV4YW1wbGUifSx7aWQ6ImNvZGUtZXhhbXBsZS0iK0RhdGUubm93KCksdHlwZToiY29kZSIsY29udGVudDpgY2xhc3MgTW9kZXJuV2ViQXBwIGV4dGVuZHMgSFRNTEVsZW1lbnQgewogIGNvbnN0cnVjdG9yKCkgewogICAgc3VwZXIoKTsKICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pOwogIH0KICAKICBjb25uZWN0ZWRDYWxsYmFjaygpIHsKICAgIHRoaXMucmVuZGVyKCk7CiAgfQp9YCxtZXRhZGF0YTp7bGFuZ3VhZ2U6ImphdmFzY3JpcHQifX1dO3QuYXJ0aWNsZS5pbXBvcnRCbG9ja3MoZSl9LDUwMCksdC5kcmFnRHJvcCYmc2V0VGltZW91dCgoKT0+e2xldCBlPVt7aWQ6ImRyYWctdGl0bGUtIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiRHJhZyAmIERyb3AgRGVtbyJ9LHtpZDoiZHJhZy1pbnRyby0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJUaGlzIGVkaXRvciBkZW1vbnN0cmF0ZXMgZHJhZyBhbmQgZHJvcCBmdW5jdGlvbmFsaXR5LiBUcnkgZHJhZ2dpbmcgdGhlc2UgYmxvY2tzIGFyb3VuZCEifSx7aWQ6ImRyYWctaGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJIb3cgSXQgV29ya3MifSx7aWQ6ImRyYWctbGlzdC0iK0RhdGUubm93KCksdHlwZToibGlzdCIsY29udGVudDpgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZQpDbGljayBhbmQgaG9sZCB0aGUgaGFuZGxlIHRvIHN0YXJ0IGRyYWdnaW5nCkRyYWcgdG8gcmVvcmRlciBibG9ja3MKUmVsZWFzZSB0byBkcm9wIGluIHRoZSBuZXcgcG9zaXRpb25gLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSx7aWQ6ImRyYWctcXVvdGUtIitEYXRlLm5vdygpLHR5cGU6InF1b3RlIixjb250ZW50OiJUaGUgZHJhZyBhbmQgZHJvcCBmZWF0dXJlIG1ha2VzIGl0IGVhc3kgdG8gcmVvcmdhbml6ZSB5b3VyIGNvbnRlbnQgd2l0aG91dCBjdXR0aW5nIGFuZCBwYXN0aW5nLiJ9LHtpZDoiZHJhZy1kaXZpZGVyLSIrRGF0ZS5ub3coKSx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIifSx7aWQ6ImRyYWctZm9vdGVyLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6Ik5vdGU6IERpdmlkZXIgYmxvY2tzIGNhbm5vdCBiZSBkcmFnZ2VkLCBidXQgb3RoZXIgYmxvY2tzIGNhbiBiZSBtb3ZlZCBhcm91bmQgdGhlbS4ifV07dC5kcmFnRHJvcC5pbXBvcnRCbG9ja3MoZSl9LDYwMCl9LCJwb3B1bGF0ZUluaXRpYWxDb250ZW50IiksX1VyPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IG5ldyBQcm9taXNlKHI9PnNldFRpbWVvdXQociw1MDApKTtsZXQgZT1zSWEodCk7ZS5wcm9ncmFtbWF0aWMmJm5JYSh0LGUucHJvZ3JhbW1hdGljKSxlLmV4cG9ydERlbW8mJm9JYSh0LGUuZXhwb3J0RGVtbyksbElhKHQsZS5tZWV0aW5nLGUucmVjaXBlKSxjSWEoZSksY29uc29sZS5sb2coIldZU0lXWUcgRGVtbyBpbml0aWFsaXplZCB3aXRoIGVkaXRvcnM6IixPYmplY3Qua2V5cyhlKSl9fT4KICA8c3R5bGU+CiAgICAke3JlYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQogICAgICAKICAgICAgLnBhbmVsLWRlc2NyaXB0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAucGFuZWwtZGVzY3JpcHRpb24gewogICAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZmVhdHVyZS1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pY29uIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmZlYXR1cmUtaXRlbSB7CiAgICAgICAgICBjb2xvcjogI2FhYTsKICAgICAgICB9CiAgICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDEwMiwgMjA0LCAwLjIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLWJveCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMyk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICBtYXJnaW46IDAgMCAxMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnNob3J0Y3V0LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dC1rZXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5zaG9ydGN1dC1pdGVtIHsKICAgICAgICAgIGNvbG9yOiAjYmJiOwogICAgICAgIH0KICAgICAgICAuc2hvcnRjdXQta2V5IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMyMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgfQoKICAgICAgLm91dHB1dC1jYXJkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3V0cHV0LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC4wNCk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgIzBmMTcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW3RoZW1lPSdkYXJrJ10pIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjA2KTsKICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4xNSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgI2Y0ZjRmNSk7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtcHJldmlldy52aXNpYmxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm91dHB1dC1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtYm94IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogI2YwZjhmZjsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAudGlwcy1ib3ggewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1ib3ggc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC50aXBzLWJveCBzdHJvbmcgewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1saXN0IHsKICAgICAgICBtYXJnaW46IDhweCAwIDAgMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWxpc3QgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjhmODsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogI2U4ZThlODsKICAgICAgICBib3JkZXItY29sb3I6ICNjY2M7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmRlbW8tYnV0dG9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM1NTU7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICM0NDQ7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM2NjY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3MgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAyLCAyMDQsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmh0bWwgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzYsIDE3NSwgODAsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLm1hcmtkb3duIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNTYsIDM5LCAxNzYsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHN0cm9uZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3Mgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuaHRtbCBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjNENBRjUwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5tYXJrZG93biBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjRkY5ODAwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjOUMyN0IwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCBwIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIFx1ezFGNjgwfSBNb2Rlcm4gV1lTSVdZRyBFZGl0b3IifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQSBwb3dlcmZ1bCBibG9jay1iYXNlZCBlZGl0b3Igd2l0aCBzbGFzaCBjb21tYW5kcywga2V5Ym9hcmQgc2hvcnRjdXRzLCBhbmQgbXVsdGlwbGUgb3V0cHV0IGZvcm1hdHMuIAogICAgICAgICAgUGVyZmVjdCBmb3IgY29udGVudCBjcmVhdGlvbiwgYmxvZyBwb3N0cywgZG9jdW1lbnRhdGlvbiwgYW5kIG1vcmUuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPlNsYXNoIGNvbW1hbmRzICgvKTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5LZXlib2FyZCBzaG9ydGN1dHM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+QmxvY2stYmFzZWQgZWRpdGluZzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5EcmFnICYgZHJvcCByZW9yZGVyaW5nPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkhUTUwgJiBNYXJrZG93biBvdXRwdXQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+RGFyayBtb2RlIHN1cHBvcnQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+TW9iaWxlIHJlc3BvbnNpdmU8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1iYXNpYyIKICAgICAgICAgIGxhYmVsPSJSaWNoIFRleHQgRWRpdG9yIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdGFydCB0eXBpbmcgb3IgdXNlICcvJyB0byBpbnNlcnQgZGlmZmVyZW50IGJsb2NrIHR5cGVzIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXRzLWJveCI+CiAgICAgICAgICA8aDQgY2xhc3M9InNob3J0Y3V0cy10aXRsZSI+4oyo77iPIEtleWJvYXJkIFNob3J0Y3V0czwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dHMtZ3JpZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi88L3NwYW4+IFNsYXNoIGNvbW1hbmRzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jPC9zcGFuPiBIZWFkaW5nIDEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjPC9zcGFuPiBIZWFkaW5nIDIKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjIzwvc3Bhbj4gSGVhZGluZyAzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4+PC9zcGFuPiBRdW90ZQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+XGBcYFxgPC9zcGFuPiBDb2RlIGJsb2NrCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4qPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4tPC9zcGFuPiBCdWxsZXQgbGlzdAogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+MS48L3NwYW4+IE51bWJlcmVkIGxpc3QKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi0tLTwvc3Bhbj4gRGl2aWRlcgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gXHV7MUY0RER9IEJsb2cgUG9zdCBFeGFtcGxlIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFBlcmZlY3QgZm9yIGNyZWF0aW5nIHJpY2ggY29udGVudCB3aXRoIG11bHRpcGxlIGJsb2NrIHR5cGVzLiAKICAgICAgICAgIFRoZSBlZGl0b3IgcHJlc2VydmVzIGZvcm1hdHRpbmcgYW5kIHByb3ZpZGVzIGEgY2xlYW4gZWRpdGluZyBleHBlcmllbmNlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1hcnRpY2xlIgogICAgICAgICAgbGFiZWw9IkJsb2cgUG9zdCBDb250ZW50IiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgdXNpbmcgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gXHV7MUY1MDB9IERyYWcgJiBEcm9wIFJlb3JkZXJpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgRWFzaWx5IHJlYXJyYW5nZSB5b3VyIGNvbnRlbnQgYmxvY2tzIGJ5IGRyYWdnaW5nIHRoZW0uIAogICAgICAgICAgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gcmV2ZWFsIHRoZSBkcmFnIGhhbmRsZSBvbiB0aGUgbGVmdCBzaWRlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1kcmFnZHJvcCIKICAgICAgICAgIGxhYmVsPSJEcmFnICYgRHJvcCBEZW1vIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUcnkgZHJhZ2dpbmcgYmxvY2tzIHRvIHJlb3JkZXIgdGhlbSAtIGhvdmVyIHRvIHNlZSBkcmFnIGhhbmRsZXMiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpcHMtYm94Ij4KICAgICAgICAgIDxzdHJvbmc+8J+SoSBUaXBzOjwvc3Ryb25nPgogICAgICAgICAgPHVsIGNsYXNzPSJ0aXBzLWxpc3QiPgogICAgICAgICAgICA8bGk+SG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZSAo4ouu4ouuKSBvbiB0aGUgbGVmdDwvbGk+CiAgICAgICAgICAgIDxsaT5DbGljayBhbmQgaG9sZCB0aGUgZHJhZyBoYW5kbGUgdG8gc3RhcnQgZHJhZ2dpbmc8L2xpPgogICAgICAgICAgICA8bGk+Qmx1ZSBpbmRpY2F0b3JzIHNob3cgd2hlcmUgdGhlIGJsb2NrIHdpbGwgYmUgZHJvcHBlZDwvbGk+CiAgICAgICAgICAgIDxsaT5EaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZDwvbGk+CiAgICAgICAgICAgIDxsaT5UaGUgZWRpdG9yIG1haW50YWlucyBmb2N1cyBvbiB0aGUgbW92ZWQgYmxvY2sgYWZ0ZXIgZHJvcHBpbmc8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFx1ezFGNERBfSBUdXRvcmlhbCAmIERvY3VtZW50YXRpb24ifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXByZWhlbnNpdmUgdHV0b3JpYWxzIGFuZCBkb2N1bWVudGF0aW9uIHdpdGggY29kZSBleGFtcGxlcywgbGlzdHMsIGFuZCBzdHJ1Y3R1cmVkIGNvbnRlbnQuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXR1dG9yaWFsIgogICAgICAgICAgbGFiZWw9IkdpdCBUdXRvcmlhbCIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RlcC1ieS1zdGVwIGd1aWRlIHdpdGggY29tbWFuZHMgYW5kIGV4cGxhbmF0aW9ucyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICB2YWx1ZT0iIyBHaXQgVHV0b3JpYWwgZm9yIEJlZ2lubmVycwoKR2l0IGlzIGEgZGlzdHJpYnV0ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbSB0aGF0IGhlbHBzIHlvdSB0cmFjayBjaGFuZ2VzIGluIHlvdXIgY29kZSBvdmVyIHRpbWUuIFRoaXMgdHV0b3JpYWwgd2lsbCBndWlkZSB5b3UgdGhyb3VnaCB0aGUgYmFzaWNzLgoKIyMgUHJlcmVxdWlzaXRlcwoKQmVmb3JlIHN0YXJ0aW5nLCBlbnN1cmUgeW91IGhhdmU6CgotIEdpdCBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0KLSBBIHRleHQgZWRpdG9yIG9yIElERQotIEJhc2ljIGNvbW1hbmQgbGluZSBrbm93bGVkZ2UKCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIDEuIENvbmZpZ3VyZSBHaXQKCkZpcnN0LCBzZXQgdXAgeW91ciBpZGVudGl0eToKClxgXGBcYGJhc2gKZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgJnF1b3Q7WW91ciBOYW1lJnF1b3Q7CmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAmcXVvdDt5b3VyLmVtYWlsQGV4YW1wbGUuY29tJnF1b3Q7ClxgXGBcYAoKIyMjIDIuIEluaXRpYWxpemUgYSBSZXBvc2l0b3J5CgpDcmVhdGUgYSBuZXcgR2l0IHJlcG9zaXRvcnk6CgpcYFxgXGBiYXNoCm1rZGlyIG15LXByb2plY3QKY2QgbXktcHJvamVjdApnaXQgaW5pdApcYFxgXGAKCiMjIyAzLiBCYXNpYyBHaXQgV29ya2Zsb3cKCiMjIyMgQWRkaW5nIEZpbGVzCgpDcmVhdGUgYSBmaWxlIGFuZCBhZGQgaXQgdG8gc3RhZ2luZzoKClxgXGBcYGJhc2gKZWNobyAmcXVvdDsjIE15IFByb2plY3QmcXVvdDsgPiBSRUFETUUubWQKZ2l0IGFkZCBSRUFETUUubWQKXGBcYFxgCgojIyMjIENvbW1pdHRpbmcgQ2hhbmdlcwoKXGBcYFxgYmFzaApnaXQgY29tbWl0IC1tICZxdW90O0luaXRpYWwgY29tbWl0JnF1b3Q7ClxgXGBcYAoKPiAqKkJlc3QgUHJhY3RpY2U6KiogV3JpdGUgY2xlYXIsIGRlc2NyaXB0aXZlIGNvbW1pdCBtZXNzYWdlcyB0aGF0IGV4cGxhaW4gd2hhdCBjaGFuZ2VzIHdlcmUgbWFkZSBhbmQgd2h5LgoKIyMjIDQuIFdvcmtpbmcgd2l0aCBCcmFuY2hlcwoKQnJhbmNoZXMgYWxsb3cgeW91IHRvIHdvcmsgb24gZmVhdHVyZXMgaW5kZXBlbmRlbnRseToKClxgXGBcYGJhc2gKIyBDcmVhdGUgYW5kIHN3aXRjaCB0byBhIG5ldyBicmFuY2gKZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUtYnJhbmNoCgojIE1ha2UgY2hhbmdlcyBhbmQgY29tbWl0CmdpdCBhZGQgLgpnaXQgY29tbWl0IC1tICZxdW90O0FkZCBuZXcgZmVhdHVyZSZxdW90OwoKIyBTd2l0Y2ggYmFjayB0byBtYWluCmdpdCBjaGVja291dCBtYWluCgojIE1lcmdlIHRoZSBmZWF0dXJlCmdpdCBtZXJnZSBmZWF0dXJlLWJyYW5jaApcYFxgXGAKCi0tLQoKIyMgQ29tbW9uIENvbW1hbmRzIFJlZmVyZW5jZQoKfCBDb21tYW5kIHwgRGVzY3JpcHRpb24gfAp8LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgXGBnaXQgc3RhdHVzXGAgfCBDaGVjayByZXBvc2l0b3J5IHN0YXR1cyB8CnwgXGBnaXQgbG9nXGAgfCBWaWV3IGNvbW1pdCBoaXN0b3J5IHwKfCBcYGdpdCBkaWZmXGAgfCBTaG93IGNoYW5nZXMgfAp8IFxgZ2l0IHB1bGxcYCB8IEZldGNoIGFuZCBtZXJnZSBjaGFuZ2VzIHwKfCBcYGdpdCBwdXNoXGAgfCBVcGxvYWQgY2hhbmdlcyB0byByZW1vdGUgfAoKIyMgTmV4dCBTdGVwcwoKMS4gTGVhcm4gYWJvdXQgcmVtb3RlIHJlcG9zaXRvcmllcwoyLiBFeHBsb3JlIGFkdmFuY2VkIEdpdCBmZWF0dXJlcwozLiBQcmFjdGljZSB3aXRoIHJlYWwgcHJvamVjdHMKNC4gQ29udHJpYnV0ZSB0byBvcGVuIHNvdXJjZQoKKipIYXBweSBjb2RpbmchKiog8J+agCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBcdXsxRjUwNH0gT3V0cHV0IEZvcm1hdHMifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2hvb3NlIGJldHdlZW4gSFRNTCBhbmQgTWFya2Rvd24gb3V0cHV0IGZvcm1hdHMgZGVwZW5kaW5nIG9uIHlvdXIgbmVlZHMuIAogICAgICAgICAgUGVyZmVjdCBmb3Igc3RhdGljIHNpdGUgZ2VuZXJhdG9ycywgZG9jdW1lbnRhdGlvbiBzeXN0ZW1zLCBvciBhbnkgY29udGVudCBtYW5hZ2VtZW50IHdvcmtmbG93LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtY2FyZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgICAgaWQ9ImVkaXRvci1tZWV0aW5nIgogICAgICAgICAgICAgIGxhYmVsPSJNZWV0aW5nIE5vdGVzIiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RydWN0dXJlZCBtZWV0aW5nIGRvY3VtZW50YXRpb24iCiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgICAgICAgIHZhbHVlPSI8aDI+UTQgUGxhbm5pbmcgTWVldGluZzwvaDI+PHA+PHN0cm9uZz5EYXRlOjwvc3Ryb25nPiBEZWNlbWJlciAxNSwgMjAyNDxicj48c3Ryb25nPkF0dGVuZGVlczo8L3N0cm9uZz4gUHJvZHVjdCBUZWFtLCBFbmdpbmVlcmluZywgRGVzaWduPC9wPjxoMz5BZ2VuZGEgSXRlbXM8L2gzPjxvbD48bGk+UmV2aWV3IFEzIGFjaGlldmVtZW50czwvbGk+PGxpPlNldCBRNCBvYmplY3RpdmVzPC9saT48bGk+UmVzb3VyY2UgYWxsb2NhdGlvbjwvbGk+PGxpPlRpbWVsaW5lIGRpc2N1c3Npb248L2xpPjwvb2w+PGgzPktleSBEZWNpc2lvbnM8L2gzPjx1bD48bGk+TGF1bmNoIG5ldyBkYXNoYm9hcmQgZmVhdHVyZSBieSBlbmQgb2YgSmFudWFyeTwvbGk+PGxpPkluY3JlYXNlIGVuZ2luZWVyaW5nIHRlYW0gYnkgMiBkZXZlbG9wZXJzPC9saT48bGk+SW1wbGVtZW50IHdlZWtseSBkZXNpZ24gcmV2aWV3czwvbGk+PC91bD48YmxvY2txdW90ZT4mcXVvdDtGb2N1cyBvbiB1c2VyIGV4cGVyaWVuY2UgaW1wcm92ZW1lbnRzIGJhc2VkIG9uIFEzIGZlZWRiYWNrJnF1b3Q7IC0gUHJvZHVjdCBNYW5hZ2VyPC9ibG9ja3F1b3RlPjxoMz5BY3Rpb24gSXRlbXM8L2gzPjx1bD48bGk+U2FyYWg6IENyZWF0ZSBkZXRhaWxlZCBwcm9qZWN0IHRpbWVsaW5lPC9saT48bGk+TWlrZTogRHJhZnQgdGVjaG5pY2FsIHJlcXVpcmVtZW50czwvbGk+PGxpPkxpc2E6IFNjaGVkdWxlIHVzZXIgcmVzZWFyY2ggc2Vzc2lvbnM8L2xpPjwvdWw+PGhyPjxwPk5leHQgbWVldGluZzogSmFudWFyeSA1LCAyMDI1PC9wPiIKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNob3ctaHRtbC1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBIVE1MIE91dHB1dDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHByZSBpZD0ib3V0cHV0LXByZXZpZXctaHRtbCIgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWNhcmQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICAgIGlkPSJlZGl0b3ItcmVjaXBlIgogICAgICAgICAgICAgIGxhYmVsPSJSZWNpcGUgQmxvZyBQb3N0IiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iRm9vZCBibG9nIHdpdGggbWl4ZWQgY29udGVudCIKICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgICAgIHZhbHVlPSIjIFVsdGltYXRlIENob2NvbGF0ZSBDaGlwIENvb2tpZXMKClRoZXJlJ3Mgbm90aGluZyBxdWl0ZSBsaWtlIHRoZSBzbWVsbCBvZiBmcmVzaGx5IGJha2VkIGNob2NvbGF0ZSBjaGlwIGNvb2tpZXMuIFRoaXMgcmVjaXBlIGhhcyBiZWVuIHBlcmZlY3RlZCBvdmVyIHllYXJzIG9mIHRlc3RpbmchCgojIyBJbmdyZWRpZW50cwoKLSAywrwgY3VwcyBhbGwtcHVycG9zZSBmbG91cgotIDEgdHNwIGJha2luZyBzb2RhCi0gMSB0c3Agc2FsdAotIDEgY3VwIGJ1dHRlciwgc29mdGVuZWQKLSDCviBjdXAgZ3JhbnVsYXRlZCBzdWdhcgotIMK+IGN1cCBwYWNrZWQgYnJvd24gc3VnYXIKLSAyIGxhcmdlIGVnZ3MKLSAyIHRzcCB2YW5pbGxhIGV4dHJhY3QKLSAyIGN1cHMgY2hvY29sYXRlIGNoaXBzCgojIyBJbnN0cnVjdGlvbnMKCiMjIyBTdGVwIDE6IFByZXBhcmF0aW9uCgpQcmVoZWF0IHlvdXIgb3ZlbiB0byAqKjM3NcKwRiAoMTkwwrBDKSoqLiBUaGlzIHRlbXBlcmF0dXJlIGlzIGNydWNpYWwgZm9yIGFjaGlldmluZyB0aGUgcGVyZmVjdCB0ZXh0dXJlLgoKIyMjIFN0ZXAgMjogTWl4IERyeSBJbmdyZWRpZW50cwoKSW4gYSBtZWRpdW0gYm93bCwgd2hpc2sgdG9nZXRoZXI6CgoxLiBGbG91cgoyLiBCYWtpbmcgc29kYQozLiBTYWx0CgojIyMgU3RlcCAzOiBDcmVhbSBCdXR0ZXIgYW5kIFN1Z2FycwoKXGBcYFxgCkNyZWFtIGJ1dHRlciBhbmQgc3VnYXJzIGZvciAzLTQgbWludXRlcwp1bnRpbCBsaWdodCBhbmQgZmx1ZmZ5ClxgXGBcYAoKPiAqKlBybyB0aXA6KiogUm9vbSB0ZW1wZXJhdHVyZSBpbmdyZWRpZW50cyBtaXggYmV0dGVyIGFuZCBjcmVhdGUgYSBtb3JlIHVuaWZvcm0gZG91Z2guCgojIyMgU3RlcCA0OiBBZGQgV2V0IEluZ3JlZGllbnRzCgpCZWF0IGluIGVnZ3Mgb25lIGF0IGEgdGltZSwgdGhlbiBhZGQgdmFuaWxsYSBleHRyYWN0LgoKIyMjIFN0ZXAgNTogQ29tYmluZSBhbmQgQmFrZQoKR3JhZHVhbGx5IGJsZW5kIGluIGZsb3VyIG1peHR1cmUsIHRoZW4gc3RpciBpbiBjaG9jb2xhdGUgY2hpcHMuIERyb3Agcm91bmRlZCB0YWJsZXNwb29ucyBvbnRvIHVuZ3JlYXNlZCBjb29raWUgc2hlZXRzLgoKLS0tCgoqKkJha2luZyB0aW1lOioqIDktMTEgbWludXRlcyBvciB1bnRpbCBnb2xkZW4gYnJvd24KCioqWWllbGQ6KiogQWJvdXQgNSBkb3plbiBjb29raWVzIgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1hY3Rpb25zIj4KICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2hvdy1tYXJrZG93bi1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBNYXJrZG93biBPdXRwdXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgaWQ9Im91dHB1dC1wcmV2aWV3LW1hcmtkb3duIiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGFyaWEtbGl2ZT0icG9saXRlIj48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gXHV7MUYzQTh9IEFkdmFuY2VkIEVkaXRpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXBsZXggZG9jdW1lbnRzIHdpdGggbWl4ZWQgY29udGVudCB0eXBlcy4gVGhlIGVkaXRvciBoYW5kbGVzIGFsbCBmb3JtYXR0aW5nIHNlYW1sZXNzbHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXRlY2huaWNhbCIKICAgICAgICAgIGxhYmVsPSJUZWNobmljYWwgRG9jdW1lbnRhdGlvbiIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ3JlYXRlIHRlY2huaWNhbCBkb2NzIHdpdGggY29kZSBleGFtcGxlcyBhbmQgc3RydWN0dXJlZCBjb250ZW50IgogICAgICAgICAgdmFsdWU9IjxoMT5BUEkgRG9jdW1lbnRhdGlvbjwvaDE+PHA+V2VsY29tZSB0byBvdXIgQVBJIGRvY3VtZW50YXRpb24uIEJlbG93IHlvdSdsbCBmaW5kIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ugb3VyIGVuZHBvaW50cy48L3A+PGgyPkF1dGhlbnRpY2F0aW9uPC9oMj48cD5BbGwgQVBJIHJlcXVlc3RzIHJlcXVpcmUgYXV0aGVudGljYXRpb24gdXNpbmcgYW4gQVBJIGtleTo8L3A+PHByZT48Y29kZT5BdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZPC9jb2RlPjwvcHJlPjxoMj5FbmRwb2ludHM8L2gyPjxoMz5HRVQgL3VzZXJzPC9oMz48cD5SZXRyaWV2ZSBhIGxpc3Qgb2YgdXNlcnMgZnJvbSB0aGUgc3lzdGVtLjwvcD48cHJlPjxjb2RlPmN1cmwgLVggR0VUIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzIFxcCiAgLUggJnF1b3Q7QXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSZxdW90OzwvY29kZT48L3ByZT48YmxvY2txdW90ZT5Ob3RlOiBSYXRlIGxpbWl0aW5nIGFwcGxpZXMgdG8gYWxsIGVuZHBvaW50cy4gWW91IGNhbiBtYWtlIHVwIHRvIDEwMCByZXF1ZXN0cyBwZXIgbWludXRlLjwvYmxvY2txdW90ZT48aDM+UE9TVCAvdXNlcnM8L2gzPjxwPkNyZWF0ZSBhIG5ldyB1c2VyIGluIHRoZSBzeXN0ZW0uPC9wPjxwcmU+PGNvZGU+ewogICZxdW90O25hbWUmcXVvdDs6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICZxdW90O2VtYWlsJnF1b3Q7OiAmcXVvdDtqb2huQGV4YW1wbGUuY29tJnF1b3Q7LAogICZxdW90O3JvbGUmcXVvdDs6ICZxdW90O3VzZXImcXVvdDsKfTwvY29kZT48L3ByZT48aHI+PHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byBvdXIgY29tcGxldGUgZG9jdW1lbnRhdGlvbi48L3A+IgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIFx1MjY5OVx1RkUwRiBGb3JtIEludGVncmF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFNlYW1sZXNzbHkgaW50ZWdyYXRlcyB3aXRoIGRlZXMtZm9ybSBmb3IgY29tcGxldGUgZm9ybSBzb2x1dGlvbnMuIAogICAgICAgICAgQWxsIHN0YW5kYXJkIGZvcm0gZmVhdHVyZXMgbGlrZSB2YWxpZGF0aW9uLCByZXF1aXJlZCBmaWVsZHMsIGFuZCBkYXRhIGJpbmRpbmcgd29yayBvdXQgb2YgdGhlIGJveC4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIGxhYmVsPSJBcnRpY2xlIFRpdGxlIiAKICAgICAgICAgICAgcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgIHZhbHVlPSJIb3cgdG8gQnVpbGQgTW9kZXJuIFdlYiBBcHBsaWNhdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgIGlkPSJlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIKICAgICAgICAgICAgbGFiZWw9IkFydGljbGUgQ29udGVudCIgCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgY29udGVudCBoZXJlIgogICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICBsYWJlbD0iVGFncyIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkFkZCByZWxldmFudCB0YWdzIGZvciB5b3VyIGFydGljbGUiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI4LiBcdXsxRjlFOX0gUHJvZ3JhbW1hdGljIEJsb2NrIENyZWF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb250ZW50IHByb2dyYW1tYXRpY2FsbHkgdXNpbmcgdGhlIGJsb2NrIEFQSSBmb3IgZHluYW1pYyBkb2N1bWVudCBnZW5lcmF0aW9uLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnCiAgICAgICAgICBpZD0iZWRpdG9yLXByb2dyYW1tYXRpYyIKICAgICAgICAgIGxhYmVsPSJQcm9ncmFtbWF0aWNhbGx5IEdlbmVyYXRlZCBDb250ZW50IgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgY29udGVudCB3YXMgY3JlYXRlZCB1c2luZyB0aGUgaW1wb3J0QmxvY2tzIEFQSSIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZXBvcnQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlcG9ydAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZWNpcGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlY2lwZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jbGVhci1lZGl0b3IiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIENsZWFyIEVkaXRvcgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI5LiBcdXsxRjRFNH0gRXhwb3J0L0ltcG9ydCBGZWF0dXJlcyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUaGUgV1lTSVdZRyBlZGl0b3IgcHJvdmlkZXMgbXVsdGlwbGUgZXhwb3J0IGZvcm1hdHMgYW5kIGxvc3NsZXNzIHNhdmUvcmVzdG9yZSBjYXBhYmlsaXRpZXMgZm9yIG1heGltdW0gZmxleGliaWxpdHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBibG9ja3MiPgogICAgICAgICAgICA8c3Ryb25nPkxvc3NsZXNzIEJsb2Nrczwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYW5kIGltcG9ydCByYXcgYmxvY2sgc3RydWN0dXJlIGZvciBwZXJmZWN0IHJvdW5kLXRyaXAgZWRpdGluZzwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBodG1sIj4KICAgICAgICAgICAgPHN0cm9uZz5IVE1MIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5HZXQgY2xlYW4sIHNlbWFudGljIEhUTUwgcmVnYXJkbGVzcyBvZiBvdXRwdXQgZm9ybWF0IHNldHRpbmc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgbWFya2Rvd24iPgogICAgICAgICAgICA8c3Ryb25nPk1hcmtkb3duIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYXMgTWFya2Rvd24gZm9yIGRvY3MsIFJFQURNRXMsIGFuZCBzdGF0aWMgc2l0ZXM8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgc3RhdGUiPgogICAgICAgICAgICA8c3Ryb25nPlN0YXRlIE1hbmFnZW1lbnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+U2F2ZSBhbmQgcmVzdG9yZSBjb21wbGV0ZSBlZGl0b3Igc3RhdGUgaW5jbHVkaW5nIHNldHRpbmdzPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZwogICAgICAgICAgaWQ9ImVkaXRvci1leHBvcnQiCiAgICAgICAgICBsYWJlbD0iRXhwb3J0IERlbW8gRWRpdG9yIgogICAgICAgICAgZGVzY3JpcHRpb249IlRyeSB0aGUgZXhwb3J0IGJ1dHRvbnMgYmVsb3cgdG8gc2VlIGRpZmZlcmVudCBvdXRwdXQgZm9ybWF0cyIKICAgICAgICAgIHZhbHVlPSI8aDE+U29mdHdhcmUgUmVsZWFzZSBOb3RlczwvaDE+PHA+PHN0cm9uZz5WZXJzaW9uIDIuNS4wPC9zdHJvbmc+IC0gUmVsZWFzZWQgRGVjZW1iZXIgMTUsIDIwMjQ8L3A+PGgyPvCfjokgTmV3IEZlYXR1cmVzPC9oMj48dWw+PGxpPkFkZGVkIGRhcmsgbW9kZSBzdXBwb3J0IGFjcm9zcyBhbGwgY29tcG9uZW50czwvbGk+PGxpPkltcGxlbWVudGVkIHJlYWwtdGltZSBjb2xsYWJvcmF0aW9uIGZlYXR1cmVzPC9saT48bGk+TmV3IGRhc2hib2FyZCBhbmFseXRpY3Mgd2lkZ2V0czwvbGk+PGxpPkV4cG9ydCBmdW5jdGlvbmFsaXR5IGZvciBhbGwgcmVwb3J0IHR5cGVzPC9saT48L3VsPjxoMj7wn5CbIEJ1ZyBGaXhlczwvaDI+PHVsPjxsaT5GaXhlZCBtZW1vcnkgbGVhayBpbiBkYXRhIHByb2Nlc3NpbmcgbW9kdWxlPC9saT48bGk+UmVzb2x2ZWQgYXV0aGVudGljYXRpb24gdGltZW91dCBpc3N1ZXM8L2xpPjxsaT5Db3JyZWN0ZWQgdGltZXpvbmUgaGFuZGxpbmcgaW4gc2NoZWR1bGVkIHRhc2tzPC9saT48L3VsPjxoMj7imqEgUGVyZm9ybWFuY2UgSW1wcm92ZW1lbnRzPC9oMj48YmxvY2txdW90ZT5QYWdlIGxvYWQgdGltZXMgcmVkdWNlZCBieSA0MCUgdGhyb3VnaCBsYXp5IGxvYWRpbmcgYW5kIGNvZGUgc3BsaXR0aW5nPC9ibG9ja3F1b3RlPjxoMj7wn5SnIFRlY2huaWNhbCBEZXRhaWxzPC9oMj48cHJlPjxjb2RlPi8vIE5ldyBBUEkgZW5kcG9pbnQgZm9yIGJhdGNoIG9wZXJhdGlvbnMKUE9TVCAvYXBpL3YyL2JhdGNoCnsKICAmcXVvdDtvcGVyYXRpb25zJnF1b3Q7OiBbCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7R0VUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvdXNlcnMvMTIzJnF1b3Q7IH0sCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7UFVUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvc2V0dGluZ3MmcXVvdDssICZxdW90O2JvZHkmcXVvdDs6IHsuLi59IH0KICBdCn08L2NvZGU+PC9wcmU+PGgyPvCfkqEgTWlncmF0aW9uIEd1aWRlPC9oMj48b2w+PGxpPlVwZGF0ZSB5b3VyIGRlcGVuZGVuY2llcyB0byB0aGUgbGF0ZXN0IHZlcnNpb25zPC9saT48bGk+UnVuIGRhdGFiYXNlIG1pZ3JhdGlvbnM6IDxjb2RlPm5wbSBydW4gbWlncmF0ZTwvY29kZT48L2xpPjxsaT5DbGVhciBjYWNoZTogPGNvZGU+bnBtIHJ1biBjYWNoZTpjbGVhcjwvY29kZT48L2xpPjxsaT5SZXN0YXJ0IGFsbCBzZXJ2aWNlczwvbGk+PC9vbD48aHI+PHA+Rm9yIHF1ZXN0aW9ucyBvciBpc3N1ZXMsIHBsZWFzZSBjb250YWN0IHRoZSBkZXZlbG9wbWVudCB0ZWFtIG9yIGZpbGUgYSB0aWNrZXQgaW4gb3VyIGlzc3VlIHRyYWNrZXIuPC9wPiIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtYmxvY2tzIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgQmxvY2tzCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4cG9ydC1odG1sIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgYXMgSFRNTAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtbWFya2Rvd24iIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEV4cG9ydCBhcyBNYXJrZG93bgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zYXZlLXN0YXRlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBTYXZlIFN0YXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXJlc3RvcmUtc3RhdGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIFJlc3RvcmUgU3RhdGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgJDE9dSgoKT0+e30pO3ZhciBjcyxDOT11KCgpPT57JDEoKTtjcz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnU2hvcnRjdXRzIil9c3RhdGljIEhFQURJTkdfUEFUVEVSTlM9W3twYXR0ZXJuOi9eI1tcc1x1MDBBMF0kLyx0eXBlOiJoZWFkaW5nLTEifSx7cGF0dGVybjovXiMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMiJ9LHtwYXR0ZXJuOi9eIyMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMyJ9XTtzdGF0aWMgTElTVF9QQVRURVJOUz1be3BhdHRlcm46L15bKi1dW1xzXHUwMEEwXSQvLHR5cGU6ImJ1bGxldCJ9LHtwYXR0ZXJuOi9eKFxkKylcLltcc1x1MDBBMF0kLyx0eXBlOiJvcmRlcmVkIn0se3BhdHRlcm46L14oXGQrKVwpW1xzXHUwMEEwXSQvLHR5cGU6Im9yZGVyZWQifV07c3RhdGljIFFVT1RFX1BBVFRFUk49L14+W1xzXHUwMEEwXSQvO3N0YXRpYyBDT0RFX1BBVFRFUk49L15gYGAkLztzdGF0aWMgRElWSURFUl9QQVRURVJOUz1bIi0tLSIsIioqKiIsIl9fXyJdO3N0YXRpYyBjaGVja0hlYWRpbmdTaG9ydGN1dChlKXtmb3IobGV0e3BhdHRlcm46cix0eXBlOmF9b2YgdGhpcy5IRUFESU5HX1BBVFRFUk5TKWlmKHIudGVzdChlKSlyZXR1cm57dHlwZTphfTtyZXR1cm4gbnVsbH1zdGF0aWMgY2hlY2tMaXN0U2hvcnRjdXQoZSl7Zm9yKGxldHtwYXR0ZXJuOnIsdHlwZTphfW9mIHRoaXMuTElTVF9QQVRURVJOUylpZihyLnRlc3QoZSkpcmV0dXJue3R5cGU6Imxpc3QiLGxpc3RUeXBlOmF9O3JldHVybiBudWxsfXN0YXRpYyBjaGVja1F1b3RlU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuUVVPVEVfUEFUVEVSTi50ZXN0KGUpfXN0YXRpYyBjaGVja0NvZGVTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5DT0RFX1BBVFRFUk4udGVzdChlKX1zdGF0aWMgY2hlY2tEaXZpZGVyU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuRElWSURFUl9QQVRURVJOUy5pbmNsdWRlcyhlKX1zdGF0aWMgZ2V0U2xhc2hNZW51SXRlbXMoKXtyZXR1cm5be3R5cGU6InBhcmFncmFwaCIsbGFiZWw6IlBhcmFncmFwaCIsaWNvbjoibHVjaWRlOnBpbGNyb3cifSx7dHlwZToiaGVhZGluZy0xIixsYWJlbDoiSGVhZGluZyAxIixpY29uOiJsdWNpZGU6aGVhZGluZzEifSx7dHlwZToiaGVhZGluZy0yIixsYWJlbDoiSGVhZGluZyAyIixpY29uOiJsdWNpZGU6aGVhZGluZzIifSx7dHlwZToiaGVhZGluZy0zIixsYWJlbDoiSGVhZGluZyAzIixpY29uOiJsdWNpZGU6aGVhZGluZzMifSx7dHlwZToicXVvdGUiLGxhYmVsOiJRdW90ZSIsaWNvbjoibHVjaWRlOnF1b3RlIn0se3R5cGU6ImNvZGUiLGxhYmVsOiJDb2RlIEJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUifSx7dHlwZToibGlzdCIsbGFiZWw6IkJ1bGxldCBMaXN0IixpY29uOiJsdWNpZGU6bGlzdCJ9LHt0eXBlOiJpbWFnZSIsbGFiZWw6IkltYWdlIixpY29uOiJsdWNpZGU6aW1hZ2UifSx7dHlwZToiZGl2aWRlciIsbGFiZWw6IkRpdmlkZXIiLGljb246Imx1Y2lkZTptaW51cyJ9LHt0eXBlOiJ5b3V0dWJlIixsYWJlbDoiWW91VHViZSIsaWNvbjoibHVjaWRlOnlvdXR1YmUifSx7dHlwZToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biIsaWNvbjoibHVjaWRlOmZpbGVUZXh0In0se3R5cGU6Imh0bWwiLGxhYmVsOiJIVE1MIixpY29uOiJsdWNpZGU6Y29kZSJ9LHt0eXBlOiJhdHRhY2htZW50IixsYWJlbDoiRmlsZSBBdHRhY2htZW50IixpY29uOiJsdWNpZGU6cGFwZXJjbGlwIn1dfXN0YXRpYyBnZW5lcmF0ZUJsb2NrSWQoKXtyZXR1cm5gYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWB9fX0pO3ZhciBWeSx2YyxjZmUsZW10PXUoKCk9Pnt2ZSgpO09vKCk7S3IoKTskMSgpO0M5KCk7bHQoKTtWeT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdmM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGNmZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtc2xhc2gtbWVudSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzU2xhc2hNZW51Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baWUoKV0sYz1baWUoKV0scD1baWUoKV0sdj1baWUoKV0seT1baWUoKV0sVnkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ2aXNpYmxlImluIFMsImhhcyIpLGdldDppKFM9PlMudmlzaWJsZSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnZpc2libGU9T30sInNldCIpfSxtZXRhZGF0YTpffSxvLGwpLFZ5KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InBvc2l0aW9uImluIFMsImhhcyIpLGdldDppKFM9PlMucG9zaXRpb24sImdldCIpLHNldDppKChTLE8pPT57Uy5wb3NpdGlvbj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksVnkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImZpbHRlciJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmZpbHRlciwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmZpbHRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGgsbSksVnkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RlZEluZGV4ImluIFMsImhhcyIpLGdldDppKFM9PlMuc2VsZWN0ZWRJbmRleCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnNlbGVjdGVkSW5kZXg9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLFZ5KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ibWVudVpJbmRleCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChTLE8pPT57Uy5tZW51WkluZGV4PU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxWeShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBpbnN0YW5jZTtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gTi5pbnN0YW5jZXx8KE4uaW5zdGFuY2U9bmV3IE4sZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChOLmluc3RhbmNlKSksTi5pbnN0YW5jZX0jZT12Yyh0aGlzLG8sITEpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZpc2libGUoXyl7dGhpcy4jZT1ffSN0PSh2Yyh0aGlzLGwpLHZjKHRoaXMsZCx7eDowLHk6MH0pKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24oXyl7dGhpcy4jdD1ffSNyPSh2Yyh0aGlzLGYpLHZjKHRoaXMsaCwiIikpO2dldCBmaWx0ZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsdGVyKF8pe3RoaXMuI3I9X30jYT0odmModGhpcyxtKSx2Yyh0aGlzLGIsMCkpO2dldCBzZWxlY3RlZEluZGV4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkSW5kZXgoXyl7dGhpcy4jYT1ffSNpPSh2Yyh0aGlzLGcpLHZjKHRoaXMsaywxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNpfXNldCBtZW51WkluZGV4KF8pe3RoaXMuI2k9X31jYWxsYmFjaz0odmModGhpcyxNKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuc2xhc2gtbWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSB7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLAogICAgICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIC5pY29uIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy52aXNpYmxlKXJldHVybiB3YGA7dGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCk7bGV0IF89dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJzbGFzaC1tZW51IiAKICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBvc2l0aW9uLnh9cHg7IHRvcDogJHt0aGlzLnBvc2l0aW9uLnl9cHg7IgogICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICBkYXRhLW1lbnUtdHlwZT0ic2xhc2giCiAgICAgID4KICAgICAgICAke18ubWFwKChTLE8pPT53YAogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNsYXNoLW1lbnUtaXRlbSAke089PT10aGlzLnNlbGVjdGVkSW5kZXg/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgIGRhdGEtaXRlbS10eXBlPSIke1MudHlwZX0iCiAgICAgICAgICAgIGRhdGEtaXRlbS1pbmRleD0iJHtPfSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iaWNvbiIgLmljb249IiR7Uy5pY29ufSIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+JHtTLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0RmlsdGVyZWRNZW51SXRlbXMoKXtyZXR1cm4gY3MuZ2V0U2xhc2hNZW51SXRlbXMoKS5maWx0ZXIoUz0+dGhpcy5maWx0ZXI9PT0iInx8Uy5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuZmlsdGVyLnRvTG93ZXJDYXNlKCkpKX1zZWxlY3RJdGVtKF8pe3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2soXyksdGhpcy5oaWRlKCl9c2hvdyhfLFMpe3RoaXMucG9zaXRpb249Xyx0aGlzLmNhbGxiYWNrPVMsdGhpcy5maWx0ZXI9IiIsdGhpcy5zZWxlY3RlZEluZGV4PTAsdGhpcy5tZW51WkluZGV4PXlyLmdldE5leHRaSW5kZXgoKSx5ci5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksdGhpcy52aXNpYmxlPSEwfWhpZGUoKXt0aGlzLnZpc2libGU9ITEsdGhpcy5jYWxsYmFjaz1udWxsLHRoaXMuZmlsdGVyPSIiLHRoaXMuc2VsZWN0ZWRJbmRleD0wLHlyLnVucmVnaXN0ZXIodGhpcyl9dXBkYXRlRmlsdGVyKF8pe3RoaXMuZmlsdGVyPV8sdGhpcy5zZWxlY3RlZEluZGV4PTB9bmF2aWdhdGUoXyl7bGV0IFM9dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO189PT0iZG93biI/dGhpcy5zZWxlY3RlZEluZGV4PSh0aGlzLnNlbGVjdGVkSW5kZXgrMSklUy5sZW5ndGg6dGhpcy5zZWxlY3RlZEluZGV4PXRoaXMuc2VsZWN0ZWRJbmRleD09PTA/Uy5sZW5ndGgtMTp0aGlzLnNlbGVjdGVkSW5kZXgtMX1zZWxlY3RDdXJyZW50KCl7bGV0IF89dGhpcy5nZXRGaWx0ZXJlZE1lbnVJdGVtcygpO19bdGhpcy5zZWxlY3RlZEluZGV4XSYmdGhpcy5zZWxlY3RJdGVtKF9bdGhpcy5zZWxlY3RlZEluZGV4XS50eXBlKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixfPT57bGV0IFM9XyxPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNsYXNoLW1lbnUiKTtPJiZPLmNvbnRhaW5zKFMudGFyZ2V0KSYmKFMucHJldmVudERlZmF1bHQoKSxTLnN0b3BQcm9wYWdhdGlvbigpKX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsXz0+e2xldCBTPV8sTD1TLnRhcmdldC5jbG9zZXN0KCIuc2xhc2gtbWVudS1pdGVtIik7aWYoTCl7Uy5wcmV2ZW50RGVmYXVsdCgpLFMuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEU9TC5nZXRBdHRyaWJ1dGUoImRhdGEtaXRlbS10eXBlIik7RSYmdGhpcy5zZWxlY3RJdGVtKEUpfX0pLHRoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixfPT57bGV0IEw9Xy50YXJnZXQuY2xvc2VzdCgiLnNsYXNoLW1lbnUtaXRlbSIpO2lmKEwpe2xldCBFPXBhcnNlSW50KEwuZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0taW5kZXgiKXx8IjAiLDEwKTt0aGlzLnNlbGVjdGVkSW5kZXg9RX19LCEwKSx0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLF89PntsZXQgUz1fLE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2xhc2gtbWVudSIpO08mJk8uY29udGFpbnMoUy50YXJnZXQpJiYoUy5wcmV2ZW50RGVmYXVsdCgpLFMuc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje3ZjKGEscil9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciBodCxuZD11KCgpPT57aHQ9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z1NlbGVjdGlvbiIpfXN0YXRpYyBnZXRTZWxlY3Rpb25JbmZvKC4uLmUpe2xldCByPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihjb25zb2xlLmxvZygiV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvIC0gc2VsZWN0aW9uOiIsciwicmFuZ2VDb3VudDoiLHI/LnJhbmdlQ291bnQpLCFyKXJldHVybiBudWxsO2lmKCJnZXRDb21wb3NlZFJhbmdlcyJpbiByJiZ0eXBlb2Ygci5nZXRDb21wb3NlZFJhbmdlcz09ImZ1bmN0aW9uIil7Y29uc29sZS5sb2coIlVzaW5nIGdldENvbXBvc2VkUmFuZ2VzIHdpdGgiLGUubGVuZ3RoLCJzaGFkb3cgcm9vdHMiKTt0cnl7bGV0IGE9ci5nZXRDb21wb3NlZFJhbmdlcyh7c2hhZG93Um9vdHM6ZX0pO2lmKGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyByZXR1cm5lZCIsYS5sZW5ndGgsInJhbmdlcyIpLGEubGVuZ3RoPjApe2xldCBzPWFbMF07cmV0dXJue3N0YXJ0Q29udGFpbmVyOnMuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6cy5zdGFydE9mZnNldCxlbmRDb250YWluZXI6cy5lbmRDb250YWluZXIsZW5kT2Zmc2V0OnMuZW5kT2Zmc2V0LGNvbGxhcHNlZDpzLmNvbGxhcHNlZH19fWNhdGNoKGEpe2NvbnNvbGUud2FybigiZ2V0Q29tcG9zZWRSYW5nZXMgZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gZ2V0UmFuZ2VBdDoiLGEpfX1lbHNlIGNvbnNvbGUubG9nKCJnZXRDb21wb3NlZFJhbmdlcyBub3QgYXZhaWxhYmxlLCB1c2luZyBmYWxsYmFjayIpO2lmKHIucmFuZ2VDb3VudD4wKXtsZXQgYT1yLmdldFJhbmdlQXQoMCk7cmV0dXJue3N0YXJ0Q29udGFpbmVyOmEuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6YS5zdGFydE9mZnNldCxlbmRDb250YWluZXI6YS5lbmRDb250YWluZXIsZW5kT2Zmc2V0OmEuZW5kT2Zmc2V0LGNvbGxhcHNlZDphLmNvbGxhcHNlZH19cmV0dXJuIG51bGx9c3RhdGljIGlzU2VsZWN0aW9uSW5FbGVtZW50KGUscil7bGV0IGE9cj90aGlzLmdldFNlbGVjdGlvbkluZm8ocik6dGhpcy5nZXRTZWxlY3Rpb25JbmZvKCk7cmV0dXJuIGE/ZS5jb250YWlucyhhLnN0YXJ0Q29udGFpbmVyKXx8ZS5jb250YWlucyhhLmVuZENvbnRhaW5lcik6ITF9c3RhdGljIGdldFNlbGVjdGVkVGV4dCgpe2xldCBlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyZXR1cm4gZT9lLnRvU3RyaW5nKCk6IiJ9c3RhdGljIGNyZWF0ZVJhbmdlRnJvbUluZm8oZSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gci5zZXRTdGFydChlLnN0YXJ0Q29udGFpbmVyLGUuc3RhcnRPZmZzZXQpLHIuc2V0RW5kKGUuZW5kQ29udGFpbmVyLGUuZW5kT2Zmc2V0KSxyfXN0YXRpYyBzZXRTZWxlY3Rpb25Gcm9tUmFuZ2UoZSl7bGV0IHI9d2luZG93LmdldFNlbGVjdGlvbigpO3ImJihyLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoZSkpfXN0YXRpYyBnZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChlLC4uLnIpe2xldCBhPXIubGVuZ3RoPjA/dGhpcy5nZXRTZWxlY3Rpb25JbmZvKC4uLnIpOnRoaXMuZ2V0U2VsZWN0aW9uSW5mbygpO2lmKCFhfHwhYS5jb2xsYXBzZWQpcmV0dXJuIG51bGw7dHJ5e2xldCBzPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYocy5zZWxlY3ROb2RlQ29udGVudHMoZSksdGhpcy5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShlLGEuc3RhcnRDb250YWluZXIpKXJldHVybiBzLnNldEVuZChhLnN0YXJ0Q29udGFpbmVyLGEuc3RhcnRPZmZzZXQpLHMudG9TdHJpbmcoKS5sZW5ndGg7e2xldCBvPWUudGV4dENvbnRlbnR8fCIiLGw9YS5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudHx8IiI7cmV0dXJuIGEuc3RhcnRPZmZzZXQ9PT0wPzA6YS5zdGFydE9mZnNldD09PWwubGVuZ3RoP28ubGVuZ3RoOihjb25zb2xlLndhcm4oIlNlbGVjdGlvbiBjb250YWluZXIgbm90IHdpdGhpbiBlbGVtZW50LCB1c2luZyB0ZXh0IG1hdGNoaW5nIGZhbGxiYWNrIiksYS5zdGFydE9mZnNldCl9fWNhdGNoKHMpe3JldHVybiBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBnZXQgY3Vyc29yIHBvc2l0aW9uOiIscyksbnVsbH19c3RhdGljIGdldEN1cnNvclBvc2l0aW9uRnJvbVBvaW50KGUscixhLC4uLnMpe2lmKCJjYXJldFBvc2l0aW9uRnJvbVBvaW50ImluIGRvY3VtZW50JiZkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KXtsZXQgbj1udWxsO3RyeXtuPWRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoZSxyLC4uLnMpfWNhdGNoe249ZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLHIpfWlmKG4mJmEuY29udGFpbnMobi5vZmZzZXROb2RlKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQobi5vZmZzZXROb2RlLG4ub2Zmc2V0LGEpfWlmKCJjYXJldFJhbmdlRnJvbVBvaW50ImluIGRvY3VtZW50KXtsZXQgbj1kb2N1bWVudC5jYXJldFJhbmdlRnJvbVBvaW50KGUscik7aWYobiYmYS5jb250YWlucyhuLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQobi5zdGFydENvbnRhaW5lcixuLnN0YXJ0T2Zmc2V0LGEpfXJldHVybiBudWxsfXN0YXRpYyBnZXRPZmZzZXRJbkVsZW1lbnQoZSxyLGEpe2xldCBzPTAsbj0hMSxvPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoYSxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxsO2Zvcig7bD1vLm5leHROb2RlKCk7KWlmKGw9PT1lKXtzKz1yLG49ITA7YnJlYWt9ZWxzZSBzKz1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuIG4/czowfXN0YXRpYyBzZXRDdXJzb3JQb3NpdGlvbihlLHIpe2xldCBhPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZSxOb2RlRmlsdGVyLlNIT1dfVEVYVCxudWxsKSxzPTAsbj1udWxsLG89MDtmb3IoO2EubmV4dE5vZGUoKTspe2xldCBsPWEuY3VycmVudE5vZGUsYz1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYocytjPj1yKXtuPWwsbz1yLXM7YnJlYWt9cys9Y31pZihuKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2wuc2V0U3RhcnQobixvKSxsLmNvbGxhcHNlKCEwKSx0aGlzLnNldFNlbGVjdGlvbkZyb21SYW5nZShsKX19c3RhdGljIGNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGUscil7aWYoIWV8fCFyKXJldHVybiExO2xldCBhPXI7Zm9yKDthOyl7aWYoYT09PWUpcmV0dXJuITA7aWYoYS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmYS5ob3N0KXtsZXQgcz1hO2lmKHMuY29udGFpbnMoZSkpcmV0dXJuITE7YT1zLmhvc3R9ZWxzZSBhPWEucGFyZW50Tm9kZX1yZXR1cm4hMX19fSk7dmFyIHQzLHRtdD11KCgpPT57dmUoKTtuZCgpO3QzPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdGb3JtYXR0aW5nIil9c3RhdGljIGZvcm1hdEJ1dHRvbnM9W3tjb21tYW5kOiJib2xkIixpY29uOiJCIixsYWJlbDoiQm9sZCIsc2hvcnRjdXQ6Ilx1MjMxOEIifSx7Y29tbWFuZDoiaXRhbGljIixpY29uOiJJIixsYWJlbDoiSXRhbGljIixzaG9ydGN1dDoiXHUyMzE4SSJ9LHtjb21tYW5kOiJ1bmRlcmxpbmUiLGljb246IlUiLGxhYmVsOiJVbmRlcmxpbmUiLHNob3J0Y3V0OiJcdTIzMThVIn0se2NvbW1hbmQ6InN0cmlrZVRocm91Z2giLGljb246IlNcdTAzMzYiLGxhYmVsOiJTdHJpa2V0aHJvdWdoIn0se2NvbW1hbmQ6ImNvZGUiLGljb246InsgfSIsbGFiZWw6IklubGluZSBDb2RlIn0se2NvbW1hbmQ6ImxpbmsiLGljb246Ilx1ezFGNTE3fSIsbGFiZWw6IkxpbmsiLHNob3J0Y3V0OiJcdTIzMThLIn1dO3N0YXRpYyByZW5kZXJGb3JtYXR0aW5nTWVudShlLHIpe3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJmb3JtYXR0aW5nLW1lbnUiIAogICAgICAgIHN0eWxlPSJ0b3A6ICR7ZS55fXB4OyBsZWZ0OiAke2UueH1weDsiCiAgICAgICAgQG1vdXNlZG93bj0iJHthPT57YS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCl9fSIKICAgICAgICBAY2xpY2s9IiR7YT0+YS5zdG9wUHJvcGFnYXRpb24oKX0iCiAgICAgID4KICAgICAgICAke3RoaXMuZm9ybWF0QnV0dG9ucy5tYXAoYT0+d2AKICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgIGNsYXNzPSJmb3JtYXQtYnV0dG9uICR7YS5jb21tYW5kfSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT5yKGEuY29tbWFuZCl9IgogICAgICAgICAgICB0aXRsZT0iJHthLmxhYmVsfSR7YS5zaG9ydGN1dD9gICgke2Euc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHthLmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke2EuaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpYyBhcHBseUZvcm1hdChlLHIsYSxzKXtsZXQgbjtpZihhKW49YTtlbHNle2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm4hMTtuPW8uZ2V0UmFuZ2VBdCgwKX1zd2l0Y2goZSl7Y2FzZSJib2xkIjp0aGlzLndyYXBTZWxlY3Rpb24obiwic3Ryb25nIik7YnJlYWs7Y2FzZSJpdGFsaWMiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJlbSIpO2JyZWFrO2Nhc2UidW5kZXJsaW5lIjp0aGlzLndyYXBTZWxlY3Rpb24obiwidSIpO2JyZWFrO2Nhc2Uic3RyaWtlVGhyb3VnaCI6dGhpcy53cmFwU2VsZWN0aW9uKG4sInMiKTticmVhaztjYXNlImNvZGUiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJjb2RlIik7YnJlYWs7Y2FzZSJsaW5rIjppZighcilyZXR1cm4hMTt0aGlzLndyYXBTZWxlY3Rpb25XaXRoTGluayhuLHIpO2JyZWFrfWlmKHMmJnMubGVuZ3RoPjApaHQuc2V0U2VsZWN0aW9uRnJvbVJhbmdlKG4pO2Vsc2V7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO28mJihvLnJlbW92ZUFsbFJhbmdlcygpLG8uYWRkUmFuZ2UobikpfXJldHVybiEwfXN0YXRpYyB3cmFwU2VsZWN0aW9uKGUscil7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtpZih0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUscikpdGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUscik7ZWxzZXtsZXQgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHIpO3RyeXtsZXQgbz1lLmV4dHJhY3RDb250ZW50cygpO24uYXBwZW5kQ2hpbGQobyksZS5pbnNlcnROb2RlKG4pLGUuc2VsZWN0Tm9kZUNvbnRlbnRzKG4pLGEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZShlKX1jYXRjaChvKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gd3JhcCBzZWxlY3Rpb246IixvKX19fXN0YXRpYyBzZWxlY3Rpb25Db250YWluc1RhZyhlLHIpe2xldCBhPWUuc3RhcnRDb250YWluZXI7Zm9yKDthJiZhIT09ZS5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoYS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZhLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PXIpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9Zm9yKGE9ZS5lbmRDb250YWluZXI7YSYmYSE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKGEubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmYS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT1yKXJldHVybiEwO2E9YS5wYXJlbnROb2RlfWxldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG49ZS5jbG9uZUNvbnRlbnRzKCk7cmV0dXJuIHMuYXBwZW5kQ2hpbGQobikscy5nZXRFbGVtZW50c0J5VGFnTmFtZShyKS5sZW5ndGg+MH1zdGF0aWMgcmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLHIpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighYSlyZXR1cm47bGV0IHM9ZS5jbG9uZVJhbmdlKCksbj1lLnN0YXJ0Q29udGFpbmVyLG89bnVsbDtmb3IoO24mJm4hPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihuLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJm4udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09cil7bz1uO2JyZWFrfW49bi5wYXJlbnROb2RlfWxldCBsPWUuZW5kQ29udGFpbmVyLGM9bnVsbDtmb3IoO2wmJmwhPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihsLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmwudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09cil7Yz1sO2JyZWFrfWw9bC5wYXJlbnROb2RlfW8mJnMuc2V0U3RhcnRCZWZvcmUobyksYyYmcy5zZXRFbmRBZnRlcihjKTtsZXQgZD1zLmV4dHJhY3RDb250ZW50cygpLGY9dGhpcy5yZW1vdmVUYWdzRnJvbUZyYWdtZW50KGQscik7cy5pbnNlcnROb2RlKGYpO2xldCBwPVtdLGg9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLG07Zm9yKDttPWgubmV4dE5vZGUoKTspcC5wdXNoKG0pO2lmKHAubGVuZ3RoPjApe2xldCB2PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7di5zZXRTdGFydChwWzBdLDApLHYuc2V0RW5kKHBbcC5sZW5ndGgtMV0scFtwLmxlbmd0aC0xXS50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxhLnJlbW92ZUFsbFJhbmdlcygpLGEuYWRkUmFuZ2Uodil9fXN0YXRpYyByZW1vdmVUYWdzRnJvbUZyYWdtZW50KGUscil7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5hcHBlbmRDaGlsZChlKTtsZXQgcz1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKHIpO0FycmF5LmZyb20ocykuZm9yRWFjaChsPT57bGV0IGM9bC5wYXJlbnROb2RlO2lmKGMpe2Zvcig7bC5maXJzdENoaWxkOyljLmluc2VydEJlZm9yZShsLmZpcnN0Q2hpbGQsbCk7Yy5yZW1vdmVDaGlsZChsKX19KTtsZXQgbz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKDthLmZpcnN0Q2hpbGQ7KW8uYXBwZW5kQ2hpbGQoYS5maXJzdENoaWxkKTtyZXR1cm4gb31zdGF0aWMgd3JhcFNlbGVjdGlvbldpdGhMaW5rKGUscil7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjt0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsImEiKSYmKHRoaXMucmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLCJhIiksYS5yYW5nZUNvdW50PjAmJihlPWEuZ2V0UmFuZ2VBdCgwKSkpO2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtzLmhyZWY9cixzLnRhcmdldD0iX2JsYW5rIixzLnJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI7dHJ5e2xldCBuPWUuZXh0cmFjdENvbnRlbnRzKCk7cy5hcHBlbmRDaGlsZChuKSxlLmluc2VydE5vZGUocyksZS5zZWxlY3ROb2RlQ29udGVudHMocyksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKGUpfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgbGluazoiLG4pfX1zdGF0aWMgZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uZSl7bGV0IHI9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5lKTtpZihjb25zb2xlLmxvZygiZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMgLSBzZWxlY3Rpb25JbmZvOiIsciksIXIpcmV0dXJuIGNvbnNvbGUubG9nKCJObyBzZWxlY3Rpb24gaW5mbyBhdmFpbGFibGUiKSxudWxsO2xldCBzPWh0LmNyZWF0ZVJhbmdlRnJvbUluZm8ocikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoY29uc29sZS5sb2coIlJhbmdlIHJlY3Q6IixzKSxzLndpZHRoPT09MCYmcy5oZWlnaHQ9PT0wKXtpZihjb25zb2xlLmxvZygiUmVjdCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwLCB0cnlpbmcgZGlmZmVyZW50IGFwcHJvYWNoIiksImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiaW4gZG9jdW1lbnQpe2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihvJiZvLnJhbmdlQ291bnQ+MCl7bGV0IGw9by5nZXRSYW5nZUF0KDApLGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2MudGV4dENvbnRlbnQ9Ilx1MjAwQiIsbC5pbnNlcnROb2RlKGMpO2xldCBkPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoYy5yZW1vdmUoKSxkLndpZHRoPjB8fGQuaGVpZ2h0PjApe2xldCBmPXt4OmQubGVmdCx5Ok1hdGgubWF4KDQ1LGQudG9wLTQ1KX07cmV0dXJuIGNvbnNvbGUubG9nKCJVc2VkIHNwYW4gdHJpY2sgZm9yIGNvb3JkczoiLGYpLGZ9fX1yZXR1cm4gbnVsbH1sZXQgbj17eDpzLmxlZnQrcy53aWR0aC8yLHk6TWF0aC5tYXgoNDUscy50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlJldHVybmluZyBjb29yZHM6IixuKSxufX19KTt2YXIgZGZlLHo5LHVmZSxybXQ9dSgoKT0+e3ZlKCk7T28oKTt0bXQoKTtsdCgpO2RmZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sejk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHVmZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtZm9ybWF0dGluZy1tZW51IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNGb3JtYXR0aW5nTWVudSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHA9W2llKCldLGRmZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InZpc2libGUiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy52aXNpYmxlLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cudmlzaWJsZT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksZGZlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InBvc2l0aW9uImluIGcsImhhcyIpLGdldDppKGc9PmcucG9zaXRpb24sImdldCIpLHNldDppKChnLHkpPT57Zy5wb3NpdGlvbj15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsZiksZGZlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4ibWVudVpJbmRleCJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLm1lbnVaSW5kZXgsImdldCIpLHNldDppKChnLHkpPT57Zy5tZW51WkluZGV4PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSxkZmUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIHYuaW5zdGFuY2V8fCh2Lmluc3RhbmNlPW5ldyB2LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodi5pbnN0YW5jZSkpLHYuaW5zdGFuY2V9I2U9ejkodGhpcyxvLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKGIpe3RoaXMuI2U9Yn0jdD0oejkodGhpcyxsKSx6OSh0aGlzLGQse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKGIpe3RoaXMuI3Q9Yn0jcj0oejkodGhpcyxmKSx6OSh0aGlzLGgsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWVudVpJbmRleChiKXt0aGlzLiNyPWJ9Y2FsbGJhY2s9KHo5KHRoaXMsbSksbnVsbCk7c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmZvcm1hdHRpbmctbWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzI2MjYyNiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2UwZTBlMCIsIiM0MDQwNDAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuMTVzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJblNjYWxlIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoNXB4KTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwMDAwMCIsIiNlMGUwZTAiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmMGYwZjAiLCIjMzMzMzMzIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24uYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24uaXRhbGljIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLnVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uIC5jb2RlLWljb24gewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMudmlzaWJsZT8odGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksd2AKICAgICAgPGRpdiAKICAgICAgICBjbGFzcz0iZm9ybWF0dGluZy1tZW51IiAKICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBvc2l0aW9uLnh9cHg7IHRvcDogJHt0aGlzLnBvc2l0aW9uLnl9cHg7IgogICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICBkYXRhLW1lbnUtdHlwZT0iZm9ybWF0dGluZyIKICAgICAgPgogICAgICAgICR7dDMuZm9ybWF0QnV0dG9ucy5tYXAoYj0+d2AKICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgIGNsYXNzPSJmb3JtYXQtYnV0dG9uICR7Yi5jb21tYW5kfSIKICAgICAgICAgICAgZGF0YS1jb21tYW5kPSIke2IuY29tbWFuZH0iCiAgICAgICAgICAgIHRpdGxlPSIke2IubGFiZWx9JHtiLnNob3J0Y3V0P2AgKCR7Yi5zaG9ydGN1dH0pYDoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke2IuY29tbWFuZD09PSJjb2RlIj8iY29kZS1pY29uIjoiIn0iPiR7Yi5pY29ufTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGApOndgYH1hcHBseUZvcm1hdChiKXt0aGlzLmNhbGxiYWNrJiZ0aGlzLmNhbGxiYWNrKGIpLGI9PT0ibGluayImJnRoaXMuaGlkZSgpfXNob3coYixnKXtjb25zb2xlLmxvZygiRm9ybWF0dGluZ01lbnUuc2hvdyBjYWxsZWQ6Iix7cG9zaXRpb246Yix2aXNpYmxlOnRoaXMudmlzaWJsZX0pLHRoaXMucG9zaXRpb249Yix0aGlzLmNhbGxiYWNrPWcsdGhpcy5tZW51WkluZGV4PXlyLmdldE5leHRaSW5kZXgoKSx5ci5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksdGhpcy52aXNpYmxlPSEwfWhpZGUoKXt0aGlzLnZpc2libGU9ITEsdGhpcy5jYWxsYmFjaz1udWxsLHlyLnVucmVnaXN0ZXIodGhpcyl9dXBkYXRlUG9zaXRpb24oYil7dGhpcy5wb3NpdGlvbj1ifWZpcnN0VXBkYXRlZCgpe3RoaXMuc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGI9PntsZXQgZz1iLHk9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZm9ybWF0dGluZy1tZW51Iik7eSYmeS5jb250YWlucyhnLnRhcmdldCkmJihnLnByZXZlbnREZWZhdWx0KCksZy5zdG9wUHJvcGFnYXRpb24oKSl9KSx0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGI9PntsZXQgZz1iLGs9Zy50YXJnZXQuY2xvc2VzdCgiLmZvcm1hdC1idXR0b24iKTtpZihrKXtnLnByZXZlbnREZWZhdWx0KCksZy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgTT1rLmdldEF0dHJpYnV0ZSgiZGF0YS1jb21tYW5kIik7TSYmdGhpcy5hcHBseUZvcm1hdChNKX19KSx0aGlzLnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGI9PntsZXQgZz1iLHk9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZm9ybWF0dGluZy1tZW51Iik7eSYmeS5jb250YWlucyhnLnRhcmdldCkmJihnLnByZXZlbnREZWZhdWx0KCksZy5zdG9wUHJvcGFnYXRpb24oKSl9LCEwKX1zdGF0aWN7ejkoYSxyKX19O3JldHVybiB2PWF9KSgpfSk7dmFyIGp5PXUoKCk9Pnt2ZSgpOyQxKCk7ZW10KCk7cm10KCl9KTt2YXIgdnRlLHBmZT11KCgpPT57dnRlPVsiSmF2YVNjcmlwdCIsIlR5cGVTY3JpcHQiLCJQeXRob24iLCJKYXZhIiwiQysrIiwiQyMiLCJHbyIsIlJ1c3QiLCJIVE1MIiwiQ1NTIiwiU1FMIiwiU2hlbGwiLCJKU09OIiwiWUFNTCIsIk1hcmtkb3duIiwiUGxhaW4gVGV4dCJdfSk7dmFyIGFtdCxMVXI9dSgoKT0+e3ZlKCk7YW10PXJlYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyIHsKICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgcGFkZGluZzogMjRweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkMWQ1ZGIiLCIjM2YzZjQ2Iil9OwogIH0KCiAgLnd5c2l3eWctY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfSwgMCAwIDAgNHB4ICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC41KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpIil9OwogICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAvKiBWaXN1YWwgaGludCBmb3IgdGV4dCBzZWxlY3Rpb24gKi8KICAuZWRpdG9yLWNvbnRlbnQ6aG92ZXIgewogICAgY3Vyc29yOiB0ZXh0OwogIH0KCiAgLmVkaXRvci1jb250ZW50IHsKICAgIG91dGxpbmU6IG5vbmU7CiAgICBtaW4taGVpZ2h0OiAxNjBweDsKICAgIG1hcmdpbjogMCAtOHB4OwogICAgcGFkZGluZzogMCA4cHg7CiAgfQoKICAuYmxvY2sgewogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogNHB4IDA7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIG1pbi1oZWlnaHQ6IDEuNmVtOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC8qIEZpcnN0IGFuZCBsYXN0IGJsb2NrcyBkb24ndCBuZWVkIGV4dHJhIHNwYWNpbmcgKi8KICAuYmxvY2std3JhcHBlcjpmaXJzdC1jaGlsZCAuYmxvY2sgewogICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogIH0KCiAgLmJsb2NrLXdyYXBwZXI6bGFzdC1jaGlsZCAuYmxvY2sgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CgogIC5ibG9jay5zZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIil9OwogICAgb3V0bGluZTogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBtYXJnaW4tbGVmdDogLThweDsKICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgIHBhZGRpbmctbGVmdDogOHB4OwogICAgcGFkZGluZy1yaWdodDogOHB4OwogIH0KCiAgLmJsb2NrW2NvbnRlbnRlZGl0YWJsZV0gewogICAgb3V0bGluZTogbm9uZTsKICB9CgogIC5ibG9jay5wYXJhZ3JhcGggewogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQoKICAuYmxvY2sucGFyYWdyYXBoOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIlR5cGUgJy8nIGZvciBjb21tYW5kcy4uLiI7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTEgewogICAgZm9udC1zaXplOiAzMnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDEiOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAzMnB4OwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0yIHsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsaW5lLWhlaWdodDogMS4zOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTI6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAyIjsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0zOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMyI7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5ibG9jay5xdW90ZSB7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBtYXJnaW4tbGVmdDogMDsKICAgIG1hcmdpbi1yaWdodDogMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgfQoKICAuYmxvY2sucXVvdGU6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiUXVvdGUiOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuY29kZS1ibG9jay1jb250YWluZXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbWFyZ2luOiAyMHB4IDA7CiAgfQoKICAuY29kZS1sYW5ndWFnZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICByaWdodDogMDsKICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDAgNHB4OwogICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsKICAgIHotaW5kZXg6IDE7CiAgfQoKICAuYmxvY2suY29kZSB7CiAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBwYWRkaW5nOiAxNnB4OwogICAgcGFkZGluZy10b3A6IDMycHg7IC8qIE1ha2Ugcm9vbSBmb3IgbGFuZ3VhZ2UgaW5kaWNhdG9yICovCiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgb3ZlcmZsb3cteDogYXV0bzsKICB9CgogIC5ibG9jay5jb2RlOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIi8vIENvZGUgYmxvY2siOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5saXN0IHsKICAgIHBhZGRpbmctbGVmdDogMDsKICB9CgogIC5ibG9jay5saXN0IHVsLAogIC5ibG9jay5saXN0IG9sIHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDAgMCAwIDI0cHg7CiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlOwogIH0KCiAgLmJsb2NrLmxpc3QgdWwgewogICAgbGlzdC1zdHlsZTogZGlzYzsKICB9CgogIC5ibG9jay5saXN0IG9sIHsKICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7CiAgfQoKICAuYmxvY2subGlzdCBsaSB7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogIH0KCiAgLmJsb2NrLmxpc3QgbGk6bGFzdC1jaGlsZCB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KCiAgLmJsb2NrLmRpdmlkZXIgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMjBweCAwOwogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQoKICAuYmxvY2suZGl2aWRlciBociB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgbWFyZ2luOiAwOwogIH0KCiAgLnNsYXNoLW1lbnUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICB6LWluZGV4OiAxMDAwOwogICAgbWluLXdpZHRoOiAyMjBweDsKICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtIHsKICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBmb250LXNpemU6IDE0cHg7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLAogIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgewogICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW0gLmljb24gewogICAgd2lkdGg6IDI0cHg7CiAgICBoZWlnaHQ6IDI0cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLAogIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgLmljb24gewogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC50b29sYmFyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTQwcHg7CiAgICBsZWZ0OiAwOwogICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgZ2FwOiA0cHg7CiAgICB6LWluZGV4OiAxMDAwOwogIH0KCiAgLnRvb2xiYXIudmlzaWJsZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KCiAgLnRvb2xiYXItYnV0dG9uIHsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAvKiBEcmFnIGFuZCBEcm9wIFN0eWxlcyAqLwogIC5ibG9jay13cmFwcGVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlOwogIH0KCiAgLyogRW5zdXJlIHByb3BlciBzcGFjaW5nIGNvbnRleHQgZm9yIGJsb2NrcyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrIHsKICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgfQoKICAvKiBPdmVycmlkZSBmb3IgaGVhZGluZ3MgZm9sbG93aW5nIG90aGVyIGJsb2NrcyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMSwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTIsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0zIHsKICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgfQoKICAvKiBDb2RlIGFuZCBxdW90ZSBibG9ja3MgbmVlZCBjb25zaXN0ZW50IHNwYWNpbmcgKi8KICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5jb2RlLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLnF1b3RlIHsKICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgfQoKICAuZHJhZy1oYW5kbGUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogLTI4cHg7CiAgICB0b3A6IDUwJTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgIHdpZHRoOiAyNHB4OwogICAgaGVpZ2h0OiAyNHB4OwogICAgY3Vyc29yOiBncmFiOwogICAgb3BhY2l0eTogMDsKICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgfQoKICAuZHJhZy1oYW5kbGU6OmJlZm9yZSB7CiAgICBjb250ZW50OiAi4ouu4ouuIjsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGxldHRlci1zcGFjaW5nOiAtMnB4OwogIH0KCiAgLmJsb2NrLXdyYXBwZXI6aG92ZXIgLmRyYWctaGFuZGxlIHsKICAgIG9wYWNpdHk6IDE7CiAgfQoKICAuZHJhZy1oYW5kbGU6aG92ZXIgewogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICB9CgogIC5kcmFnLWhhbmRsZTphY3RpdmUgewogICAgY3Vyc29yOiBncmFiYmluZzsKICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICB9CgogIC5ibG9jay13cmFwcGVyLmRyYWdnaW5nIHsKICAgIG9wYWNpdHk6IDAuODsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMjAwMTsKICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICB9CgoKICAvKiBCbG9ja3MgdGhhdCBzaG91bGQgbW92ZSBvdXQgb2YgdGhlIHdheSAqLwogIC5ibG9jay13cmFwcGVyLm1vdmUtZG93biB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tZHJhZy1vZmZzZXQsIDBweCkpOwogIH0KCiAgLmJsb2NrLXdyYXBwZXIubW92ZS11cCB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWRyYWctb2Zmc2V0LCAwcHgpKSk7CiAgfQoKICAvKiBEcm9wIGluZGljYXRvciAqLwogIC5kcm9wLWluZGljYXRvciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpIil9OwogICAgYm9yZGVyOiAycHggZGFzaGVkICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIGVhc2UsIGhlaWdodCAwLjJzIGVhc2U7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHotaW5kZXg6IDE5OTk7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogUmVtb3ZlIG9sZCBkcmFnLW92ZXIgc3R5bGVzICovCiAgLmJsb2NrLXdyYXBwZXIuZHJhZy1vdmVyLWJlZm9yZSwKICAuYmxvY2std3JhcHBlci5kcmFnLW92ZXItYWZ0ZXIgewogICAgLyogTm8gbG9uZ2VyIG5lZWRlZCwgdXNpbmcgZHJvcCBpbmRpY2F0b3IgaW5zdGVhZCAqLwogIH0KCiAgLmVkaXRvci1jb250ZW50LmRyYWdnaW5nICogewogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgfQoKICAvKiBCbG9jayBTZXR0aW5ncyBCdXR0b24gLSBSZW1vdmVkIGluIGZhdm9yIG9mIGNvbnRleHQgbWVudSAqLwoKICAvKiBUZXh0IFNlbGVjdGlvbiBTdHlsZXMgKi8KICAuYmxvY2sgOjpzZWxlY3Rpb24gewogICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICBjb2xvcjogaW5oZXJpdDsKICB9CgogIC8qIEZvcm1hdHRpbmcgTWVudSAqLwogIC5mb3JtYXR0aW5nLW1lbnUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAycHg7CiAgICB6LWluZGV4OiAxMDAxOwogICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICB9CgogIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgZnJvbSB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCkgdHJhbnNsYXRlWSgycHgpOwogICAgfQogICAgdG8gewogICAgICBvcGFjaXR5OiAxOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICB9CiAgfQoKICAuZm9ybWF0LWJ1dHRvbiB7CiAgICB3aWR0aDogMzJweDsKICAgIGhlaWdodDogMzJweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLmZvcm1hdC1idXR0b246YWN0aXZlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi5ib2xkIHsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi5pdGFsaWMgewogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KCiAgLmZvcm1hdC1idXR0b24udW5kZXJsaW5lIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KCiAgLmZvcm1hdC1idXR0b24gLmNvZGUtaWNvbiB7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTJweDsKICB9CgogIC8qIEFwcGxpZWQgZm9ybWF0IHN0eWxlcyBpbiBjb250ZW50ICovCiAgLmJsb2NrIHN0cm9uZywKICAuYmxvY2sgYiB7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jayBlbSwKICAuYmxvY2sgaSB7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuYmxvY2sgdSB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB9CgogIC5ibG9jayBzdHJpa2UsCiAgLmJsb2NrIHMgewogICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICBvcGFjaXR5OiAwLjc7CiAgfQoKICAuYmxvY2sgY29kZSB7CiAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBwYWRkaW5nOiAycHggNnB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDAuOWVtOwogICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jayBhIHsKICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICB9CgogIC5ibG9jayBhOmhvdmVyIHsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CmB9KTt2YXIgWGwsaW10PXUoKCk9PnskMSgpO1hsPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdDb252ZXJ0ZXJzIil9c3RhdGljIGVzY2FwZUh0bWwoZSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIudGV4dENvbnRlbnQ9ZSxyLmlubmVySFRNTH1zdGF0aWMgZm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCByPTEwMjQsYT1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0scz1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKHIpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyhyLHMpKS50b0ZpeGVkKDIpKSsiICIrYVtzXX1zdGF0aWMgZ2V0SHRtbE91dHB1dChlKXtyZXR1cm4gZS5tYXAocj0+e2xldCBhPXIuY29udGVudC5pbmNsdWRlcygiPCIpJiZyLmNvbnRlbnQuaW5jbHVkZXMoIj4iKT9yLmNvbnRlbnQ6dGhpcy5lc2NhcGVIdG1sKHIuY29udGVudCk7c3dpdGNoKHIudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiByLmNvbnRlbnQ/YDxwPiR7YX08L3A+YDoiIjtjYXNlImhlYWRpbmctMSI6cmV0dXJuYDxoMT4ke2F9PC9oMT5gO2Nhc2UiaGVhZGluZy0yIjpyZXR1cm5gPGgyPiR7YX08L2gyPmA7Y2FzZSJoZWFkaW5nLTMiOnJldHVybmA8aDM+JHthfTwvaDM+YDtjYXNlInF1b3RlIjpyZXR1cm5gPGJsb2NrcXVvdGU+JHthfTwvYmxvY2txdW90ZT5gO2Nhc2UiY29kZSI6cmV0dXJuYDxwcmU+PGNvZGU+JHt0aGlzLmVzY2FwZUh0bWwoci5jb250ZW50KX08L2NvZGU+PC9wcmU+YDtjYXNlImxpc3QiOmxldCBzPXIuY29udGVudC5zcGxpdChgCmApLmZpbHRlcihjPT5jLnRyaW0oKSk7aWYocy5sZW5ndGg+MCl7bGV0IGM9ci5tZXRhZGF0YT8ubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO3JldHVybmA8JHtjfT4ke3MubWFwKGQ9PmA8bGk+JHtkfTwvbGk+YCkuam9pbigiIil9PC8ke2N9PmB9cmV0dXJuIiI7Y2FzZSJkaXZpZGVyIjpyZXR1cm4iPGhyPiI7Y2FzZSJpbWFnZSI6bGV0IG49ci5tZXRhZGF0YT8udXJsO2lmKG4pe2xldCBjPXRoaXMuZXNjYXBlSHRtbChyLmNvbnRlbnR8fCJJbWFnZSIpO3JldHVybmA8aW1nIHNyYz0iJHtufSIgYWx0PSIke2N9IiAvPmB9cmV0dXJuIiI7Y2FzZSJ5b3V0dWJlIjpsZXQgbz1yLm1ldGFkYXRhPy52aWRlb0lkO3JldHVybiBvP2A8aWZyYW1lIHdpZHRoPSI1NjAiIGhlaWdodD0iMzE1IiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7b30iIGZyYW1lYm9yZGVyPSIwIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPmA6IiI7Y2FzZSJtYXJrZG93biI6cmV0dXJuYDxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPiR7dGhpcy5lc2NhcGVIdG1sKHIuY29udGVudCl9PC9kaXY+YDtjYXNlImh0bWwiOnJldHVybiByLmNvbnRlbnQ7Y2FzZSJhdHRhY2htZW50IjpsZXQgbD1yLm1ldGFkYXRhPy5maWxlc3x8W107cmV0dXJuIGwubGVuZ3RoPjA/YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnRzIj4ke2wubWFwKGM9PmA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWl0ZW0iIGRhdGEtZmlsZS1pZD0iJHtjLmlkfSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIke2MuZGF0YX0iIGRvd25sb2FkPSIke2MubmFtZX0iPiR7dGhpcy5lc2NhcGVIdG1sKGMubmFtZSl9PC9hPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtc2l6ZSI+KCR7dGhpcy5mb3JtYXRGaWxlU2l6ZShjLnNpemUpfSk8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YCkuam9pbigiIil9PC9kaXY+YDoiIjtkZWZhdWx0OnJldHVybmA8cD4ke2F9PC9wPmB9fSkuZmlsdGVyKHI9PnIhPT0iIikuam9pbihgCmApfXN0YXRpYyBnZXRNYXJrZG93bk91dHB1dChlKXtyZXR1cm4gZS5tYXAocj0+e3N3aXRjaChyLnR5cGUpe2Nhc2UicGFyYWdyYXBoIjpyZXR1cm4gci5jb250ZW50O2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gIyAke3IuY29udGVudH1gO2Nhc2UiaGVhZGluZy0yIjpyZXR1cm5gIyMgJHtyLmNvbnRlbnR9YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYCMjIyAke3IuY29udGVudH1gO2Nhc2UicXVvdGUiOnJldHVybmA+ICR7ci5jb250ZW50fWA7Y2FzZSJjb2RlIjpyZXR1cm5gXGBcYFxgCiR7ci5jb250ZW50fQpcYFxgXGBgO2Nhc2UibGlzdCI6bGV0IGE9ci5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKGQ9PmQudHJpbSgpKTtyZXR1cm4gci5tZXRhZGF0YT8ubGlzdFR5cGU9PT0ib3JkZXJlZCI/YS5tYXAoKGQsZik9PmAke2YrMX0uICR7ZH1gKS5qb2luKGAKYCk6YS5tYXAoZD0+YC0gJHtkfWApLmpvaW4oYApgKTtjYXNlImRpdmlkZXIiOnJldHVybiItLS0iO2Nhc2UiaW1hZ2UiOmxldCBzPXIubWV0YWRhdGE/LnVybCxuPXIuY29udGVudHx8IkltYWdlIjtyZXR1cm4gcz9gIVske259XSgke3N9KWA6IiI7Y2FzZSJ5b3V0dWJlIjpsZXQgbz1yLm1ldGFkYXRhPy52aWRlb0lkLGw9ci5tZXRhZGF0YT8udXJsfHwobz9gaHR0cHM6Ly95b3V0dWJlLmNvbS93YXRjaD92PSR7b31gOiIiKTtyZXR1cm4gbD9gW1lvdVR1YmUgVmlkZW9dKCR7bH0pYDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm4gci5jb250ZW50O2Nhc2UiaHRtbCI6cmV0dXJuYDwhLS0gSFRNTCBCbG9jawoke3IuY29udGVudH0KLS0+YDtjYXNlImF0dGFjaG1lbnQiOmxldCBjPXIubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gYy5sZW5ndGg+MD9jLm1hcChkPT5gLSBbJHtkLm5hbWV9XSgke2QuZGF0YX0pYCkuam9pbihgCmApOiIiO2RlZmF1bHQ6cmV0dXJuIHIuY29udGVudH19KS5maWx0ZXIocj0+ciE9PSIiKS5qb2luKGAKCmApfXN0YXRpYyBwYXJzZUh0bWxUb0Jsb2NrcyhlKXtsZXQgYT1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGUsInRleHQvaHRtbCIpLHM9W10sbj1pKG89PntpZihvLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJm8udGV4dENvbnRlbnQ/LnRyaW0oKSlzLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6by50ZXh0Q29udGVudC50cmltKCl9KTtlbHNlIGlmKG8ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7bGV0IGw9byxjPWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChjKXtjYXNlInAiOnMucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgxIjpzLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6bC5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMiI6cy5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDMiOnMucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImJsb2NrcXVvdGUiOnMucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InF1b3RlIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UicHJlIjpjYXNlImNvZGUiOnMucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6bC50ZXh0Q29udGVudHx8IiJ9KTticmVhaztjYXNlInVsIjpjYXNlIm9sIjpsZXQgZj1BcnJheS5mcm9tKGwucXVlcnlTZWxlY3RvckFsbCgibGkiKSkubWFwKGg9PmguaW5uZXJIVE1MfHwiIikuam9pbihgCmApO3MucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6ZixtZXRhZGF0YTp7bGlzdFR5cGU6Yz09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifX0pO2JyZWFrO2Nhc2UiaHIiOnMucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiAifSk7YnJlYWs7Y2FzZSJpbWciOmxldCBwPWw7cy5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6cC5hbHR8fCIiLG1ldGFkYXRhOnt1cmw6cC5zcmN9fSk7YnJlYWs7ZGVmYXVsdDpsLmNoaWxkTm9kZXMuZm9yRWFjaChoPT5uKGgpKX19fSwicHJvY2Vzc05vZGUiKTtyZXR1cm4gYS5ib2R5LmNoaWxkTm9kZXMuZm9yRWFjaChvPT5uKG8pKSxzfXN0YXRpYyBwYXJzZU1hcmtkb3duVG9CbG9ja3MoZSl7bGV0IHI9ZS5zcGxpdChgCmApLGE9W10scz1bXTtmb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl7bGV0IG89cltuXTtpZihvLnN0YXJ0c1dpdGgoIiMgIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50Om8uc3Vic3RyaW5nKDIpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIiMjICIpKWEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDpvLnN1YnN0cmluZygzKX0pO2Vsc2UgaWYoby5zdGFydHNXaXRoKCIjIyMgIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50Om8uc3Vic3RyaW5nKDQpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIj4gIikpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6by5zdWJzdHJpbmcoMil9KTtlbHNlIGlmKG8uc3RhcnRzV2l0aCgiYGBgIikpe2xldCBsPVtdO2ZvcihuKys7bjxyLmxlbmd0aCYmIXJbbl0uc3RhcnRzV2l0aCgiYGBgIik7KWwucHVzaChyW25dKSxuKys7YS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiY29kZSIsY29udGVudDpsLmpvaW4oYApgKX0pfWVsc2UgaWYoby5tYXRjaCgvXihcKnwtKSAvKSlzLnB1c2goby5zdWJzdHJpbmcoMikpLChuPT09ci5sZW5ndGgtMXx8IXJbbisxXS5tYXRjaCgvXihcKnwtKSAvKSkmJihhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJsaXN0Iixjb250ZW50OnMuam9pbihgCmApLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19KSxzPVtdKTtlbHNlIGlmKG8ubWF0Y2goL15cZCtcLiAvKSlzLnB1c2goby5yZXBsYWNlKC9eXGQrXC4gLywiIikpLChuPT09ci5sZW5ndGgtMXx8IXJbbisxXS5tYXRjaCgvXlxkK1wuIC8pKSYmKGEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6cy5qb2luKGAKYCksbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19KSxzPVtdKTtlbHNlIGlmKG89PT0iLS0tInx8bz09PSIqKioifHxvPT09Il9fXyIpYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiICJ9KTtlbHNlIGlmKG8ubWF0Y2goL14hXFsoW15cXV0qKVxdXCgoW15cKV0rKVwpJC8pKXtsZXQgbD1vLm1hdGNoKC9eIVxbKFteXF1dKilcXVwoKFteXCldKylcKSQvKTtsJiZhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJpbWFnZSIsY29udGVudDpsWzFdfHwiIixtZXRhZGF0YTp7dXJsOmxbMl19fSl9ZWxzZSBvLnRyaW0oKSYmYS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50Om99KX1yZXR1cm4gYX19fSk7dmFyIEVuLHIzPXUoKCk9Pnt2ZSgpOyQxKCk7aW10KCk7RW49Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Jsb2NrcyIpfXN0YXRpYyByZW5kZXJMaXN0Q29udGVudChlLHIpe2xldCBhPWUuc3BsaXQoYApgKS5maWx0ZXIobj0+bi50cmltKCkpO2lmKGEubGVuZ3RoPT09MClyZXR1cm4iIjtsZXQgcz1yPy5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke3N9PiR7YS5tYXAobj0+YDxsaT4ke259PC9saT5gKS5qb2luKCIiKX08LyR7c30+YH1zdGF0aWMgcmVuZGVyQmxvY2soZSxyLGEpe2lmKGUudHlwZT09PSJkaXZpZGVyIilyZXR1cm4gd2AKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iYmxvY2sgZGl2aWRlciIKICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgPgogICAgICAgICAgPGhyPgogICAgICAgIDwvZGl2PgogICAgICBgO2lmKGUudHlwZT09PSJsaXN0IilyZXR1cm4gd2AKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iYmxvY2sgbGlzdCAke3I/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgQGlucHV0PSIke2Eub25JbnB1dH0iCiAgICAgICAgICBAa2V5ZG93bj0iJHthLm9uS2V5RG93bn0iCiAgICAgICAgICBAZm9jdXM9IiR7YS5vbkZvY3VzfSIKICAgICAgICAgIEBibHVyPSIke2Eub25CbHVyfSIKICAgICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PSIke2Eub25Db21wb3NpdGlvblN0YXJ0fSIKICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHthLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgICAgQG1vdXNldXA9IiR7bj0+e2NvbnNvbGUubG9nKCJCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkIiksYS5vbk1vdXNlVXAmJmEub25Nb3VzZVVwKG4pfX0iCiAgICAgICAgICAuaW5uZXJIVE1MPSIke3RoaXMucmVuZGVyTGlzdENvbnRlbnQoZS5jb250ZW50LGUubWV0YWRhdGEpfSIKICAgICAgICA+PC9kaXY+CiAgICAgIGA7aWYoZS50eXBlPT09ImNvZGUiKXtsZXQgbj1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8InBsYWluIHRleHQiO3JldHVybiB3YAogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2stY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtbGFuZ3VhZ2UiPiR7bn08L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9ImJsb2NrICR7ZS50eXBlfSAke3I/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICAgICAgQGlucHV0PSIke2Eub25JbnB1dH0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2Eub25LZXlEb3dufSIKICAgICAgICAgICAgQGZvY3VzPSIke2Eub25Gb2N1c30iCiAgICAgICAgICAgIEBibHVyPSIke2Eub25CbHVyfSIKICAgICAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7YS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgICAgICBAY29tcG9zaXRpb25lbmQ9IiR7YS5vbkNvbXBvc2l0aW9uRW5kfSIKICAgICAgICAgICAgQG1vdXNldXA9IiR7bz0+e2NvbnNvbGUubG9nKCJCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkIiksYS5vbk1vdXNlVXAmJmEub25Nb3VzZVVwKG8pfX0iCiAgICAgICAgICAgIC50ZXh0Q29udGVudD0iJHtlLmNvbnRlbnR8fCIifSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke2UudHlwZX0gJHtyPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBAaW5wdXQ9IiR7YS5vbklucHV0fSIKICAgICAgICBAa2V5ZG93bj0iJHthLm9uS2V5RG93bn0iCiAgICAgICAgQGZvY3VzPSIke2Eub25Gb2N1c30iCiAgICAgICAgQGJsdXI9IiR7YS5vbkJsdXJ9IgogICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PSIke2Eub25Db21wb3NpdGlvblN0YXJ0fSIKICAgICAgICBAY29tcG9zaXRpb25lbmQ9IiR7YS5vbkNvbXBvc2l0aW9uRW5kfSIKICAgICAgICBAbW91c2V1cD0iJHtuPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxhLm9uTW91c2VVcCYmYS5vbk1vdXNlVXAobil9fSIKICAgICAgICAuaW5uZXJIVE1MPSIke2UuY29udGVudHx8IiJ9IgogICAgICA+PC9kaXY+CiAgICBgfXN0YXRpYyBzZXRDdXJzb3JUb0VuZChlKXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXIpcmV0dXJuO2xldCBhPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApe2xldCBzPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdTIwMEIiKTtlLmFwcGVuZENoaWxkKHMpLGEuc2V0U3RhcnQocywxKSxhLmNvbGxhcHNlKCEwKX1lbHNle2xldCBzPXRoaXMuZ2V0TGFzdE5vZGUoZSk7cy5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP2Euc2V0U3RhcnQocyxzLnRleHRDb250ZW50Py5sZW5ndGh8fDApOmEuc2V0U3RhcnRBZnRlcihzKSxhLmNvbGxhcHNlKCEwKX1yLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoYSksZS50ZXh0Q29udGVudD09PSJcdTIwMEIiJiYoZS50ZXh0Q29udGVudD0iIil9c3RhdGljIHNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHI9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFyKXJldHVybjtsZXQgYT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKWEuc2V0U3RhcnQoZSwwKSxhLmNvbGxhcHNlKCEwKTtlbHNle2xldCBzPXRoaXMuZ2V0Rmlyc3ROb2RlKGUpO3Mubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT9hLnNldFN0YXJ0KHMsMCk6YS5zZXRTdGFydEJlZm9yZShzKSxhLmNvbGxhcHNlKCEwKX1yLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoYSl9c3RhdGljIGdldExhc3ROb2RlKGUpe2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXJldHVybiBlO2xldCByPWUuY2hpbGROb2Rlc1tlLmNoaWxkTm9kZXMubGVuZ3RoLTFdO3JldHVybiByLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV8fHIuY2hpbGROb2Rlcy5sZW5ndGg9PT0wP3I6dGhpcy5nZXRMYXN0Tm9kZShyKX1zdGF0aWMgZ2V0Rmlyc3ROb2RlKGUpe2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXJldHVybiBlO2xldCByPWUuY2hpbGROb2Rlc1swXTtyZXR1cm4gci5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFfHxyLmNoaWxkTm9kZXMubGVuZ3RoPT09MD9yOnRoaXMuZ2V0Rmlyc3ROb2RlKHIpfXN0YXRpYyBmb2N1c0xpc3RJdGVtKGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigibGkiKTtpZihyKXtyLmZvY3VzKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxzPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTthLnNlbGVjdE5vZGVDb250ZW50cyhyKSxhLmNvbGxhcHNlKCEwKSxzLnJlbW92ZUFsbFJhbmdlcygpLHMuYWRkUmFuZ2UoYSl9fX19KTt2YXIgeXRlLHNtdD11KCgpPT57JDEoKTtqeSgpO0M5KCk7cjMoKTt5dGU9Y2xhc3N7c3RhdGlje2kodGhpcywiV3lzaXd5Z0Jsb2NrT3BlcmF0aW9ucyIpfWNvbXBvbmVudDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWNyZWF0ZUJsb2NrKGU9InBhcmFncmFwaCIscj0iIixhKXtyZXR1cm57aWQ6Y3MuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTplLGNvbnRlbnQ6ciwuLi5hJiZ7bWV0YWRhdGE6YX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoZSxyLGE9ITApe2xldCBzPXRoaXMuY29tcG9uZW50LmJsb2NrcyxuPXMuZmluZEluZGV4KG89Pm8uaWQ9PT1lLmlkKTtpZih0aGlzLmNvbXBvbmVudC5ibG9ja3M9Wy4uLnMuc2xpY2UoMCxuKzEpLHIsLi4ucy5zbGljZShuKzEpXSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKXtsZXQgbz10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKTtpZihvKXtsZXQgbD10aGlzLmNvbXBvbmVudC5jcmVhdGVCbG9ja0VsZW1lbnQocik7by5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixsKX19dGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxhJiZyLnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShvPT5zZXRUaW1lb3V0KG8sMCkpLGF3YWl0IHRoaXMuZm9jdXNCbG9jayhyLmlkLCJzdGFydCIpKX1yZW1vdmVCbG9jayhlKXtpZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSx0aGlzLmNvbXBvbmVudC5ibG9ja3M9dGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbHRlcihyPT5yLmlkIT09ZSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZil7bGV0IHI9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlfSJdYCk7ciYmci5yZW1vdmUoKX10aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWZpbmRCbG9jayhlKXtyZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQocj0+ci5pZD09PWUpfWdldEJsb2NrSW5kZXgoZSl7cmV0dXJuIHRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kSW5kZXgocj0+ci5pZD09PWUpfWFzeW5jIGZvY3VzQmxvY2soZSxyPSJzdGFydCIpe2xldCBhPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZX0iXWApO2lmKGEpe2xldCBzPWEucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7cyYmKGF3YWl0IG5ldyBQcm9taXNlKG49PnJlcXVlc3RBbmltYXRpb25GcmFtZShuKSkscy5mb2N1c1dpdGhDdXJzb3IocikpfX11cGRhdGVCbG9ja0NvbnRlbnQoZSxyKXtsZXQgYT10aGlzLmZpbmRCbG9jayhlKTthJiYoYS5jb250ZW50PXIsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSl9dHJhbnNmb3JtQmxvY2soZSxyLGEpe2xldCBzPXRoaXMuZmluZEJsb2NrKGUpO3MmJih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxzLnR5cGU9cixzLmNvbnRlbnQ9IiIsYSYmKHMubWV0YWRhdGE9YSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCkpfW1vdmVCbG9jayhlLHIpe2xldCBhPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLHM9dGhpcy5nZXRCbG9ja0luZGV4KGUpO2lmKHM9PT0tMXx8cjwwfHxyPj1hLmxlbmd0aClyZXR1cm47bGV0W25dPWEuc3BsaWNlKHMsMSk7YS5zcGxpY2UociwwLG4pLHRoaXMuY29tcG9uZW50LmJsb2Nrcz1hLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9Z2V0UHJldmlvdXNCbG9jayhlKXtsZXQgcj10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHI+MD90aGlzLmNvbXBvbmVudC5ibG9ja3Nbci0xXTpudWxsfWdldE5leHRCbG9jayhlKXtsZXQgcj10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIHI8dGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aC0xP3RoaXMuY29tcG9uZW50LmJsb2Nrc1tyKzFdOm51bGx9fX0pO3ZhciBwaSxsbD11KCgpPT57cGk9Y2xhc3N7c3RhdGlje2kodGhpcywiQmFzZUJsb2NrSGFuZGxlciIpfXNldHVwKGUscixhKXt9Z2V0U3R5bGVzKCl7cmV0dXJuIiJ9fX0pO3ZhciBJYSxEVXI9dSgoKT0+e0lhPWNsYXNze3N0YXRpY3tpKHRoaXMsIkJsb2NrUmVnaXN0cnkiKX1zdGF0aWMgaGFuZGxlcnM9bmV3IE1hcDtzdGF0aWMgcmVnaXN0ZXIoZSxyKXt0aGlzLmhhbmRsZXJzLnNldChlLHIpfXN0YXRpYyBnZXRIYW5kbGVyKGUpe3JldHVybiB0aGlzLmhhbmRsZXJzLmdldChlKX1zdGF0aWMgZ2V0QWxsVHlwZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmhhbmRsZXJzLmtleXMoKSl9fX0pO3ZhciAkVXI9dSgoKT0+e30pO3ZhciB3dGUsQVVyPXUoKCk9PntsbCgpO3ZlKCk7cjMoKTtuZCgpO3d0ZT1jbGFzcyBleHRlbmRzIHBpe3N0YXRpY3tpKHRoaXMsIlBhcmFncmFwaEJsb2NrSGFuZGxlciIpfXR5cGU9InBhcmFncmFwaCI7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtyZW5kZXIoZSxyKXtsZXQgYT1yPyIgc2VsZWN0ZWQiOiIiLHM9dGhpcy5nZXRQbGFjZWhvbGRlcigpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBwYXJhZ3JhcGgke2F9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke3N9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSxyLGEpe2xldCBzPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFzKXtjb25zb2xlLmVycm9yKCJQYXJhZ3JhcGhCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIHBhcmFncmFwaCBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufXIuY29udGVudCYmIXMuaW5uZXJIVE1MJiYocy5pbm5lckhUTUw9ci5jb250ZW50KSxzLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixuPT57YS5vbklucHV0KG4pO2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSkscy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbktleURvd24obil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSkscy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSkscy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHMscil9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscixhKXtsZXQgcz1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGM9ci5nZXRSb290Tm9kZSgpLmhvc3QsZj1jPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxwPWM/LnNoYWRvd1Jvb3QsaD1bXTtmJiZoLnB1c2goZikscCYmaC5wdXNoKHApO2xldCBtPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uaCk7aWYoIW0pcmV0dXJuO2xldCB2PWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsbS5zdGFydENvbnRhaW5lciksYj1odC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShyLG0uZW5kQ29udGFpbmVyKTtpZih2fHxiKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZz1odC5jcmVhdGVSYW5nZUZyb21JbmZvKG0pLHk9Zy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZyxyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIscyksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXM7bGV0IG49ZS5jbG9zZXN0KCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihuKXtsZXQgbz1uLmRpc2Nvbm5lY3RlZENhbGxiYWNrLGw9dGhpcztuLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7bC5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixsLnNlbGVjdGlvbkhhbmRsZXIpLGwuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxvJiZhd2FpdCBvLmNhbGwobil9fX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUscil7bGV0IGE9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnIsYnViYmxlczohMCxjb21wb3NlZDohMH0pO2UuZGlzcGF0Y2hFdmVudChhKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIFBhcmFncmFwaCBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnBhcmFncmFwaCB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJUeXBlICcvJyBmb3IgY29tbWFuZHMuLi4ifWdldExhc3RUZXh0Tm9kZShlKXtpZihlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIGU7Zm9yKGxldCByPWUuY2hpbGROb2Rlcy5sZW5ndGgtMTtyPj0wO3ItLSl7bGV0IGE9dGhpcy5nZXRMYXN0VGV4dE5vZGUoZS5jaGlsZE5vZGVzW3JdKTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfWdldEN1cnNvclBvc2l0aW9uKGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXI/LnNoYWRvd1Jvb3QsYz1bXTtvJiZjLnB1c2gobyksbCYmYy5wdXNoKGwpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoIWR8fCFodC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGQuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGYuc2VsZWN0Tm9kZUNvbnRlbnRzKGEpLGYuc2V0RW5kKGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksZi50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7cmV0dXJuIGEmJmEuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighcylyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXN8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXM7cy5pbm5lckhUTUw9cixuJiZzLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2EmJkVuLnNldEN1cnNvclRvU3RhcnQoYSl9c2V0Q3Vyc29yVG9FbmQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTthJiZFbi5zZXRDdXJzb3JUb0VuZChhKX1mb2N1cyhlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2EmJihhLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGEuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksYS5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hJiZlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1hJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57YS5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihlLHI9ImVuZCIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIXMpcmV0dXJuO2lmKHMuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8cy5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyPT09ImVuZCImJnMudGV4dENvbnRlbnQmJnMudGV4dENvbnRlbnQubGVuZ3RoPjApe2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihvKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGM9dGhpcy5nZXRMYXN0VGV4dE5vZGUocyl8fHM7Yy5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFPyhsLnNldFN0YXJ0KGMsYy50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxsLnNldEVuZChjLGMudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCkpOihsLnNlbGVjdE5vZGVDb250ZW50cyhjKSxsLmNvbGxhcHNlKCExKSksby5yZW1vdmVBbGxSYW5nZXMoKSxvLmFkZFJhbmdlKGwpfX1zLmZvY3VzKCk7bGV0IG49aSgoKT0+e3I9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLGEpOnI9PT0iZW5kIiYmKCFzLnRleHRDb250ZW50fHxzLnRleHRDb250ZW50Lmxlbmd0aD09PTApP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxhKTp0eXBlb2Ygcj09Im51bWJlciImJmh0LnNldEN1cnNvclBvc2l0aW9uKHMscil9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cz9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1zfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1zP24oKTpzZXRUaW1lb3V0KCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1zfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1zKSYmbigpfSwxMCl9KX1nZXRTcGxpdENvbnRlbnQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9cj8uc2hhZG93Um9vdCxjPVtdO28mJmMucHVzaChvKSxsJiZjLnB1c2gobCk7bGV0IGQ9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5jKTtpZighZCl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBrPWEudGV4dENvbnRlbnR8fCIiLE09TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixrLmxlbmd0aCk7cmV0dXJue2JlZm9yZTprLnN1YnN0cmluZygwLE0pLGFmdGVyOmsuc3Vic3RyaW5nKE0pfX1yZXR1cm4gbnVsbH1pZighaHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBrPWEudGV4dENvbnRlbnR8fCIiLE09TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixrLmxlbmd0aCk7cmV0dXJue2JlZm9yZTprLnN1YnN0cmluZygwLE0pLGFmdGVyOmsuc3Vic3RyaW5nKE0pfX1yZXR1cm4gbnVsbH1sZXQgZj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUscik7aWYoZj09PW51bGx8fGY9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6YS5pbm5lckhUTUx9O2xldCBwPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksaD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Auc2V0U3RhcnQoYSwwKSxwLnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLGguc2V0U3RhcnQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxoLnNldEVuZChhLGEuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBtPXAuY2xvbmVDb250ZW50cygpLHY9aC5jbG9uZUNvbnRlbnRzKCksYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmFwcGVuZENoaWxkKG0pO2xldCBnPWIuaW5uZXJIVE1MO2IuaW5uZXJIVE1MPSIiLGIuYXBwZW5kQ2hpbGQodik7bGV0IHk9Yi5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpnLGFmdGVyOnl9fX19KTt2YXIgXzksRVVyPXUoKCk9PntsbCgpO3ZlKCk7cjMoKTtuZCgpO185PWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiSGVhZGluZ0Jsb2NrSGFuZGxlciIpfXR5cGU7bGV2ZWw7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMudHlwZT1lLHRoaXMubGV2ZWw9cGFyc2VJbnQoZS5zcGxpdCgiLSIpWzFdKX1yZW5kZXIoZSxyKXtsZXQgYT1yPyIgc2VsZWN0ZWQiOiIiLHM9dGhpcy5nZXRQbGFjZWhvbGRlcigpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBoZWFkaW5nLSR7dGhpcy5sZXZlbH0ke2F9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke3N9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSxyLGEpe2xldCBzPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFzKXtjb25zb2xlLmVycm9yKCJIZWFkaW5nQmxvY2tIYW5kbGVyLnNldHVwOiBObyBoZWFkaW5nIGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59ci5jb250ZW50JiYhcy5pbm5lckhUTUwmJihzLmlubmVySFRNTD1yLmNvbnRlbnQpLHMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLG49PnthLm9uSW5wdXQobik7bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uS2V5RG93bihuKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57YS5vbkZvY3VzKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57YS5vbkJsdXIoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PnthLm9uQ29tcG9zaXRpb25TdGFydCgpfSkscy5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PnthLm9uQ29tcG9zaXRpb25FbmQoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGEub25Nb3VzZVVwPy4obil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuPT57c2V0VGltZW91dCgoKT0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSwwKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHRoaXMuc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscyxyKX1zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxyLGEpe2xldCBzPWkoKCk9PntsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW98fG8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBsPW8udG9TdHJpbmcoKTtpZihsLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmEuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgYz1yLmdldFJvb3ROb2RlKCkuaG9zdCxmPWM/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LHA9Yz8uc2hhZG93Um9vdCxoPVtdO2YmJmgucHVzaChmKSxwJiZoLnB1c2gocCk7bGV0IG09aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5oKTtpZighbSlyZXR1cm47bGV0IHY9aHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixtLnN0YXJ0Q29udGFpbmVyKSxiPWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsbS5lbmRDb250YWluZXIpO2lmKHZ8fGIpe2lmKGwhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1sO2xldCBnPWh0LmNyZWF0ZVJhbmdlRnJvbUluZm8obSkseT1nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OmwudHJpbSgpLGJsb2NrSWQ6YS5pZCxyYW5nZTpnLHJlY3Q6eSxoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKX0sImNoZWNrU2VsZWN0aW9uIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixzKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9cztsZXQgbj1yLmdldFJvb3ROb2RlKCkuaG9zdDtpZihuKXtsZXQgbz1uLmRpc2Nvbm5lY3RlZENhbGxiYWNrLGw9dGhpcztuLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7bC5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixsLnNlbGVjdGlvbkhhbmRsZXIpLGwuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxvJiZhd2FpdCBvLmNhbGwobil9fX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUscil7bGV0IGE9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnIsYnViYmxlczohMCxjb21wb3NlZDohMH0pO2UuZGlzcGF0Y2hFdmVudChhKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC5ibG9jay5oZWFkaW5nLTEgewogICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgICAgbWFyZ2luOiAyNHB4IDAgOHB4IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrLmhlYWRpbmctMiB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgICBtYXJnaW46IDIwcHggMCA2cHggMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYmxvY2suaGVhZGluZy0zIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIG1hcmdpbjogMTZweCAwIDRweCAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtzd2l0Y2godGhpcy5sZXZlbCl7Y2FzZSAxOnJldHVybiJIZWFkaW5nIDEiO2Nhc2UgMjpyZXR1cm4iSGVhZGluZyAyIjtjYXNlIDM6cmV0dXJuIkhlYWRpbmcgMyI7ZGVmYXVsdDpyZXR1cm4iSGVhZGluZyJ9fWdldExhc3RUZXh0Tm9kZShlKXtpZihlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIGU7Zm9yKGxldCByPWUuY2hpbGROb2Rlcy5sZW5ndGgtMTtyPj0wO3ItLSl7bGV0IGE9dGhpcy5nZXRMYXN0VGV4dE5vZGUoZS5jaGlsZE5vZGVzW3JdKTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfWdldEN1cnNvclBvc2l0aW9uKGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXI/LnNoYWRvd1Jvb3QsYz1bXTtvJiZjLnB1c2gobyksbCYmYy5wdXNoKGwpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoIWR8fCFodC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGQuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGYuc2VsZWN0Tm9kZUNvbnRlbnRzKGEpLGYuc2V0RW5kKGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksZi50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7cmV0dXJuIGEmJmEuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighcylyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXN8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXM7cy5pbm5lckhUTUw9cixuJiZzLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2EmJkVuLnNldEN1cnNvclRvU3RhcnQoYSl9c2V0Q3Vyc29yVG9FbmQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTthJiZFbi5zZXRDdXJzb3JUb0VuZChhKX1mb2N1cyhlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2EmJihhLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGEuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksYS5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hJiZlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1hJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57YS5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihlLHI9ImVuZCIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIXMpcmV0dXJuO2lmKHMuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8cy5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyPT09ImVuZCImJnMudGV4dENvbnRlbnQmJnMudGV4dENvbnRlbnQubGVuZ3RoPjApe2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihvKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGM9dGhpcy5nZXRMYXN0VGV4dE5vZGUocyl8fHM7Yy5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFPyhsLnNldFN0YXJ0KGMsYy50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxsLnNldEVuZChjLGMudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCkpOihsLnNlbGVjdE5vZGVDb250ZW50cyhjKSxsLmNvbGxhcHNlKCExKSksby5yZW1vdmVBbGxSYW5nZXMoKSxvLmFkZFJhbmdlKGwpfX1zLmZvY3VzKCk7bGV0IG49aSgoKT0+e3I9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLGEpOnI9PT0iZW5kIiYmKCFzLnRleHRDb250ZW50fHxzLnRleHRDb250ZW50Lmxlbmd0aD09PTApP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxhKTp0eXBlb2Ygcj09Im51bWJlciImJmh0LnNldEN1cnNvclBvc2l0aW9uKHMscil9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cz9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1zfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1zP24oKTpzZXRUaW1lb3V0KCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1zfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1zKSYmbigpfSwxMCl9KX1nZXRTcGxpdENvbnRlbnQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9cj8uc2hhZG93Um9vdCxjPVtdO28mJmMucHVzaChvKSxsJiZjLnB1c2gobCk7bGV0IGQ9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5jKTtpZighZCl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBrPWEudGV4dENvbnRlbnR8fCIiLE09TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixrLmxlbmd0aCk7cmV0dXJue2JlZm9yZTprLnN1YnN0cmluZygwLE0pLGFmdGVyOmsuc3Vic3RyaW5nKE0pfX1yZXR1cm4gbnVsbH1pZighaHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxkLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBrPWEudGV4dENvbnRlbnR8fCIiLE09TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixrLmxlbmd0aCk7cmV0dXJue2JlZm9yZTprLnN1YnN0cmluZygwLE0pLGFmdGVyOmsuc3Vic3RyaW5nKE0pfX1yZXR1cm4gbnVsbH1sZXQgZj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUscik7aWYoZj09PW51bGx8fGY9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6YS5pbm5lckhUTUx9O2xldCBwPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksaD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Auc2V0U3RhcnQoYSwwKSxwLnNldEVuZChkLnN0YXJ0Q29udGFpbmVyLGQuc3RhcnRPZmZzZXQpLGguc2V0U3RhcnQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxoLnNldEVuZChhLGEuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBtPXAuY2xvbmVDb250ZW50cygpLHY9aC5jbG9uZUNvbnRlbnRzKCksYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmFwcGVuZENoaWxkKG0pO2xldCBnPWIuaW5uZXJIVE1MO2IuaW5uZXJIVE1MPSIiLGIuYXBwZW5kQ2hpbGQodik7bGV0IHk9Yi5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpnLGFmdGVyOnl9fX19KTt2YXIga3RlLElVcj11KCgpPT57bGwoKTt2ZSgpO3IzKCk7bmQoKTtrdGU9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJRdW90ZUJsb2NrSGFuZGxlciIpfXR5cGU9InF1b3RlIjtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7c2VsZWN0aW9uSGFuZGxlcj1udWxsO3JlbmRlcihlLHIpe2xldCBhPXI/IiBzZWxlY3RlZCI6IiIscz10aGlzLmdldFBsYWNlaG9sZGVyKCk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIHF1b3RlJHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtzfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFzKXtjb25zb2xlLmVycm9yKCJRdW90ZUJsb2NrSGFuZGxlci5zZXR1cDogTm8gcXVvdGUgYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn1yLmNvbnRlbnQmJiFzLmlubmVySFRNTCYmKHMuaW5uZXJIVE1MPXIuY29udGVudCkscy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2Eub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGEub25LZXlEb3duKG4pfSkscy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnthLm9uRm9jdXMoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnthLm9uQmx1cigpfSkscy5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2Eub25Db21wb3NpdGlvblN0YXJ0KCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2Eub25Db21wb3NpdGlvbkVuZCgpfSkscy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksYS5vbk1vdXNlVXA/LihuKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSkscy5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxzLHIpfXNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHIsYSl7bGV0IHM9aSgoKT0+e2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IGw9by50b1N0cmluZygpO2lmKGwubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBjPXIuZ2V0Um9vdE5vZGUoKS5ob3N0LGY9Yz8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QscD1jPy5zaGFkb3dSb290LGg9W107ZiYmaC5wdXNoKGYpLHAmJmgucHVzaChwKTtsZXQgbT1odC5nZXRTZWxlY3Rpb25JbmZvKC4uLmgpO2lmKCFtKXJldHVybjtsZXQgdj1odC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShyLG0uc3RhcnRDb250YWluZXIpLGI9aHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixtLmVuZENvbnRhaW5lcik7aWYodnx8Yil7aWYobCE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PWw7bGV0IGc9aHQuY3JlYXRlUmFuZ2VGcm9tSW5mbyhtKSx5PWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6bC50cmltKCksYmxvY2tJZDphLmlkLHJhbmdlOmcscmVjdDp5LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmEuaWQsaGFzU2VsZWN0aW9uOiExfSkpfSwiY2hlY2tTZWxlY3Rpb24iKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHMpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1zO2xldCBuPXIuZ2V0Um9vdE5vZGUoKS5ob3N0O2lmKG4pe2xldCBvPW4uZGlzY29ubmVjdGVkQ2FsbGJhY2ssbD10aGlzO24uZGlzY29ubmVjdGVkQ2FsbGJhY2s9YXN5bmMgZnVuY3Rpb24oKXtsLnNlbGVjdGlvbkhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLGwuc2VsZWN0aW9uSGFuZGxlciksbC5zZWxlY3Rpb25IYW5kbGVyPW51bGwpLG8mJmF3YWl0IG8uY2FsbChuKX19fWRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSxyKXtsZXQgYT1uZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6cixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7ZS5kaXNwYXRjaEV2ZW50KGEpfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogUXVvdGUgc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5xdW90ZSB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzU1NSIsIiNiMGIwYjAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iQWRkIGEgcXVvdGUuLi4ifWdldEN1cnNvclBvc2l0aW9uKGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9cj8uc2hhZG93Um9vdCxjPVtdO28mJmMucHVzaChvKSxsJiZjLnB1c2gobCk7bGV0IGQ9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5jKTtpZighZHx8IWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IGY9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gZi5zZWxlY3ROb2RlQ29udGVudHMoYSksZi5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxmLnRvU3RyaW5nKCkubGVuZ3RofWdldENvbnRlbnQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO3JldHVybiBhJiZhLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLHIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighcylyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXN8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXM7cy5pbm5lckhUTUw9cixuJiZzLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7YSYmRW4uc2V0Q3Vyc29yVG9TdGFydChhKX1zZXRDdXJzb3JUb0VuZChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7YSYmRW4uc2V0Q3Vyc29yVG9FbmQoYSl9Zm9jdXMoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2EmJihhLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGEuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksYS5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hJiZlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1hJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57YS5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihlLHI9ImVuZCIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighcylyZXR1cm47cy5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxzLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLHMuZm9jdXMoKTtsZXQgbj1pKCgpPT57cj09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUsYSk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxhKTp0eXBlb2Ygcj09Im51bWJlciImJmh0LnNldEN1cnNvclBvc2l0aW9uKHMscil9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cz9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cykmJm4oKX0pfWdldFNwbGl0Q29udGVudChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXI/LnNoYWRvd1Jvb3QsYz1bXTtvJiZjLnB1c2gobyksbCYmYy5wdXNoKGwpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoIWQpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgaz1hLnRleHRDb250ZW50fHwiIixNPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24say5sZW5ndGgpO3JldHVybntiZWZvcmU6ay5zdWJzdHJpbmcoMCxNKSxhZnRlcjprLnN1YnN0cmluZyhNKX19cmV0dXJuIG51bGx9aWYoIWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZC5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgaz1hLnRleHRDb250ZW50fHwiIixNPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24say5sZW5ndGgpO3JldHVybntiZWZvcmU6ay5zdWJzdHJpbmcoMCxNKSxhZnRlcjprLnN1YnN0cmluZyhNKX19cmV0dXJuIG51bGx9bGV0IGY9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLHIpO2lmKGY9PT1udWxsfHxmPT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmEuaW5uZXJIVE1MfTtsZXQgcD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtwLnNldFN0YXJ0KGEsMCkscC5zZXRFbmQoZC5zdGFydENvbnRhaW5lcixkLnN0YXJ0T2Zmc2V0KSxoLnNldFN0YXJ0KGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksaC5zZXRFbmQoYSxhLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgbT1wLmNsb25lQ29udGVudHMoKSx2PWguY2xvbmVDb250ZW50cygpLGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5hcHBlbmRDaGlsZChtKTtsZXQgZz1iLmlubmVySFRNTDtiLmlubmVySFRNTD0iIixiLmFwcGVuZENoaWxkKHYpO2xldCB5PWIuaW5uZXJIVE1MO3JldHVybntiZWZvcmU6ZyxhZnRlcjp5fX19fSk7ZnVuY3Rpb24gU28odCl7dGhpcy5jb250ZW50PXR9dmFyIG5tdCxQVXI9dSgoKT0+e2koU28sIk9yZGVyZWRNYXAiKSxTby5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlNvLGZpbmQ6aShmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHRoaXMuY29udGVudC5sZW5ndGg7ZSs9MilpZih0aGlzLmNvbnRlbnRbZV09PT10KXJldHVybiBlO3JldHVybi0xfSwiZmluZCIpLGdldDppKGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmluZCh0KTtyZXR1cm4gZT09LTE/dm9pZCAwOnRoaXMuY29udGVudFtlKzFdfSwiZ2V0IiksdXBkYXRlOmkoZnVuY3Rpb24odCxlLHIpe3ZhciBhPXImJnIhPXQ/dGhpcy5yZW1vdmUocik6dGhpcyxzPWEuZmluZCh0KSxuPWEuY29udGVudC5zbGljZSgpO3JldHVybiBzPT0tMT9uLnB1c2gocnx8dCxlKToobltzKzFdPWUsciYmKG5bc109cikpLG5ldyBTbyhuKX0sInVwZGF0ZSIpLHJlbW92ZTppKGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmluZCh0KTtpZihlPT0tMSlyZXR1cm4gdGhpczt2YXIgcj10aGlzLmNvbnRlbnQuc2xpY2UoKTtyZXR1cm4gci5zcGxpY2UoZSwyKSxuZXcgU28ocil9LCJyZW1vdmUiKSxhZGRUb1N0YXJ0OmkoZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFNvKFt0LGVdLmNvbmNhdCh0aGlzLnJlbW92ZSh0KS5jb250ZW50KSl9LCJhZGRUb1N0YXJ0IiksYWRkVG9FbmQ6aShmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMucmVtb3ZlKHQpLmNvbnRlbnQuc2xpY2UoKTtyZXR1cm4gci5wdXNoKHQsZSksbmV3IFNvKHIpfSwiYWRkVG9FbmQiKSxhZGRCZWZvcmU6aShmdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcy5yZW1vdmUoZSkscz1hLmNvbnRlbnQuc2xpY2UoKSxuPWEuZmluZCh0KTtyZXR1cm4gcy5zcGxpY2Uobj09LTE/cy5sZW5ndGg6biwwLGUsciksbmV3IFNvKHMpfSwiYWRkQmVmb3JlIiksZm9yRWFjaDppKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dGhpcy5jb250ZW50Lmxlbmd0aDtlKz0yKXQodGhpcy5jb250ZW50W2VdLHRoaXMuY29udGVudFtlKzFdKX0sImZvckVhY2giKSxwcmVwZW5kOmkoZnVuY3Rpb24odCl7cmV0dXJuIHQ9U28uZnJvbSh0KSx0LnNpemU/bmV3IFNvKHQuY29udGVudC5jb25jYXQodGhpcy5zdWJ0cmFjdCh0KS5jb250ZW50KSk6dGhpc30sInByZXBlbmQiKSxhcHBlbmQ6aShmdW5jdGlvbih0KXtyZXR1cm4gdD1Tby5mcm9tKHQpLHQuc2l6ZT9uZXcgU28odGhpcy5zdWJ0cmFjdCh0KS5jb250ZW50LmNvbmNhdCh0LmNvbnRlbnQpKTp0aGlzfSwiYXBwZW5kIiksc3VidHJhY3Q6aShmdW5jdGlvbih0KXt2YXIgZT10aGlzO3Q9U28uZnJvbSh0KTtmb3IodmFyIHI9MDtyPHQuY29udGVudC5sZW5ndGg7cis9MillPWUucmVtb3ZlKHQuY29udGVudFtyXSk7cmV0dXJuIGV9LCJzdWJ0cmFjdCIpLHRvT2JqZWN0OmkoZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGUscil7dFtlXT1yfSksdH0sInRvT2JqZWN0IiksZ2V0IHNpemUoKXtyZXR1cm4gdGhpcy5jb250ZW50Lmxlbmd0aD4+MX19LFNvLmZyb209ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIFNvKXJldHVybiB0O3ZhciBlPVtdO2lmKHQpZm9yKHZhciByIGluIHQpZS5wdXNoKHIsdFtyXSk7cmV0dXJuIG5ldyBTbyhlKX07bm10PVNvfSk7ZnVuY3Rpb24gTlVyKHQsZSxyKXtmb3IobGV0IGE9MDs7YSsrKXtpZihhPT10LmNoaWxkQ291bnR8fGE9PWUuY2hpbGRDb3VudClyZXR1cm4gdC5jaGlsZENvdW50PT1lLmNoaWxkQ291bnQ/bnVsbDpyO2xldCBzPXQuY2hpbGQoYSksbj1lLmNoaWxkKGEpO2lmKHM9PW4pe3IrPXMubm9kZVNpemU7Y29udGludWV9aWYoIXMuc2FtZU1hcmt1cChuKSlyZXR1cm4gcjtpZihzLmlzVGV4dCYmcy50ZXh0IT1uLnRleHQpe2ZvcihsZXQgbz0wO3MudGV4dFtvXT09bi50ZXh0W29dO28rKylyKys7cmV0dXJuIHJ9aWYocy5jb250ZW50LnNpemV8fG4uY29udGVudC5zaXplKXtsZXQgbz1OVXIocy5jb250ZW50LG4uY29udGVudCxyKzEpO2lmKG8hPW51bGwpcmV0dXJuIG99cis9cy5ub2RlU2l6ZX19ZnVuY3Rpb24gT1VyKHQsZSxyLGEpe2ZvcihsZXQgcz10LmNoaWxkQ291bnQsbj1lLmNoaWxkQ291bnQ7Oyl7aWYocz09MHx8bj09MClyZXR1cm4gcz09bj9udWxsOnthOnIsYjphfTtsZXQgbz10LmNoaWxkKC0tcyksbD1lLmNoaWxkKC0tbiksYz1vLm5vZGVTaXplO2lmKG89PWwpe3ItPWMsYS09Yztjb250aW51ZX1pZighby5zYW1lTWFya3VwKGwpKXJldHVybnthOnIsYjphfTtpZihvLmlzVGV4dCYmby50ZXh0IT1sLnRleHQpe2xldCBkPTAsZj1NYXRoLm1pbihvLnRleHQubGVuZ3RoLGwudGV4dC5sZW5ndGgpO2Zvcig7ZDxmJiZvLnRleHRbby50ZXh0Lmxlbmd0aC1kLTFdPT1sLnRleHRbbC50ZXh0Lmxlbmd0aC1kLTFdOylkKyssci0tLGEtLTtyZXR1cm57YTpyLGI6YX19aWYoby5jb250ZW50LnNpemV8fGwuY29udGVudC5zaXplKXtsZXQgZD1PVXIoby5jb250ZW50LGwuY29udGVudCxyLTEsYS0xKTtpZihkKXJldHVybiBkfXItPWMsYS09Y319ZnVuY3Rpb24gZmZlKHQsZSl7cmV0dXJuIG9tdC5pbmRleD10LG9tdC5vZmZzZXQ9ZSxvbXR9ZnVuY3Rpb24gaGZlKHQsZSl7aWYodD09PWUpcmV0dXJuITA7aWYoISh0JiZ0eXBlb2YgdD09Im9iamVjdCIpfHwhKGUmJnR5cGVvZiBlPT0ib2JqZWN0IikpcmV0dXJuITE7bGV0IHI9QXJyYXkuaXNBcnJheSh0KTtpZihBcnJheS5pc0FycmF5KGUpIT1yKXJldHVybiExO2lmKHIpe2lmKHQubGVuZ3RoIT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErKylpZighaGZlKHRbYV0sZVthXSkpcmV0dXJuITF9ZWxzZXtmb3IobGV0IGEgaW4gdClpZighKGEgaW4gZSl8fCFoZmUodFthXSxlW2FdKSlyZXR1cm4hMTtmb3IobGV0IGEgaW4gZSlpZighKGEgaW4gdCkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gUlVyKHQsZSxyKXtsZXR7aW5kZXg6YSxvZmZzZXQ6c309dC5maW5kSW5kZXgoZSksbj10Lm1heWJlQ2hpbGQoYSkse2luZGV4Om8sb2Zmc2V0Omx9PXQuZmluZEluZGV4KHIpO2lmKHM9PWV8fG4uaXNUZXh0KXtpZihsIT1yJiYhdC5jaGlsZChvKS5pc1RleHQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlJlbW92aW5nIG5vbi1mbGF0IHJhbmdlIik7cmV0dXJuIHQuY3V0KDAsZSkuYXBwZW5kKHQuY3V0KHIpKX1pZihhIT1vKXRocm93IG5ldyBSYW5nZUVycm9yKCJSZW1vdmluZyBub24tZmxhdCByYW5nZSIpO3JldHVybiB0LnJlcGxhY2VDaGlsZChhLG4uY29weShSVXIobi5jb250ZW50LGUtcy0xLHItcy0xKSkpfWZ1bmN0aW9uIEZVcih0LGUscixhLHMsbil7bGV0e2luZGV4Om8sb2Zmc2V0Omx9PXQuZmluZEluZGV4KGUpLGM9dC5tYXliZUNoaWxkKG8pO2lmKGw9PWV8fGMuaXNUZXh0KXJldHVybiBuJiZhPD0wJiZzPD0wJiYhbi5jYW5SZXBsYWNlKG8sbyxyKT9udWxsOnQuY3V0KDAsZSkuYXBwZW5kKHIpLmFwcGVuZCh0LmN1dChlKSk7bGV0IGQ9RlVyKGMuY29udGVudCxlLWwtMSxyLG89PTA/YS0xOjAsbz09dC5jaGlsZENvdW50LTE/cy0xOjAsYyk7cmV0dXJuIGQmJnQucmVwbGFjZUNoaWxkKG8sYy5jb3B5KGQpKX1mdW5jdGlvbiBkSWEodCxlLHIpe2lmKHIub3BlblN0YXJ0PnQuZGVwdGgpdGhyb3cgbmV3IHFwKCJJbnNlcnRlZCBjb250ZW50IGRlZXBlciB0aGFuIGluc2VydGlvbiBwb3NpdGlvbiIpO2lmKHQuZGVwdGgtci5vcGVuU3RhcnQhPWUuZGVwdGgtci5vcGVuRW5kKXRocm93IG5ldyBxcCgiSW5jb25zaXN0ZW50IG9wZW4gZGVwdGhzIik7cmV0dXJuIEJVcih0LGUsciwwKX1mdW5jdGlvbiBCVXIodCxlLHIsYSl7bGV0IHM9dC5pbmRleChhKSxuPXQubm9kZShhKTtpZihzPT1lLmluZGV4KGEpJiZhPHQuZGVwdGgtci5vcGVuU3RhcnQpe2xldCBvPUJVcih0LGUscixhKzEpO3JldHVybiBuLmNvcHkobi5jb250ZW50LnJlcGxhY2VDaGlsZChzLG8pKX1lbHNlIGlmKHIuY29udGVudC5zaXplKWlmKCFyLm9wZW5TdGFydCYmIXIub3BlbkVuZCYmdC5kZXB0aD09YSYmZS5kZXB0aD09YSl7bGV0IG89dC5wYXJlbnQsbD1vLmNvbnRlbnQ7cmV0dXJuIEw5KG8sbC5jdXQoMCx0LnBhcmVudE9mZnNldCkuYXBwZW5kKHIuY29udGVudCkuYXBwZW5kKGwuY3V0KGUucGFyZW50T2Zmc2V0KSkpfWVsc2V7bGV0e3N0YXJ0Om8sZW5kOmx9PXVJYShyLHQpO3JldHVybiBMOShuLHFVcih0LG8sbCxlLGEpKX1lbHNlIHJldHVybiBMOShuLG1mZSh0LGUsYSkpfWZ1bmN0aW9uIEhVcih0LGUpe2lmKCFlLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQodC50eXBlKSl0aHJvdyBuZXcgcXAoIkNhbm5vdCBqb2luICIrZS50eXBlLm5hbWUrIiBvbnRvICIrdC50eXBlLm5hbWUpfWZ1bmN0aW9uIGxtdCh0LGUscil7bGV0IGE9dC5ub2RlKHIpO3JldHVybiBIVXIoYSxlLm5vZGUocikpLGF9ZnVuY3Rpb24gVDkodCxlKXtsZXQgcj1lLmxlbmd0aC0xO3I+PTAmJnQuaXNUZXh0JiZ0LnNhbWVNYXJrdXAoZVtyXSk/ZVtyXT10LndpdGhUZXh0KGVbcl0udGV4dCt0LnRleHQpOmUucHVzaCh0KX1mdW5jdGlvbiBTdGUodCxlLHIsYSl7bGV0IHM9KGV8fHQpLm5vZGUociksbj0wLG89ZT9lLmluZGV4KHIpOnMuY2hpbGRDb3VudDt0JiYobj10LmluZGV4KHIpLHQuZGVwdGg+cj9uKys6dC50ZXh0T2Zmc2V0JiYoVDkodC5ub2RlQWZ0ZXIsYSksbisrKSk7Zm9yKGxldCBsPW47bDxvO2wrKylUOShzLmNoaWxkKGwpLGEpO2UmJmUuZGVwdGg9PXImJmUudGV4dE9mZnNldCYmVDkoZS5ub2RlQmVmb3JlLGEpfWZ1bmN0aW9uIEw5KHQsZSl7cmV0dXJuIHQudHlwZS5jaGVja0NvbnRlbnQoZSksdC5jb3B5KGUpfWZ1bmN0aW9uIHFVcih0LGUscixhLHMpe2xldCBuPXQuZGVwdGg+cyYmbG10KHQsZSxzKzEpLG89YS5kZXB0aD5zJiZsbXQocixhLHMrMSksbD1bXTtyZXR1cm4gU3RlKG51bGwsdCxzLGwpLG4mJm8mJmUuaW5kZXgocyk9PXIuaW5kZXgocyk/KEhVcihuLG8pLFQ5KEw5KG4scVVyKHQsZSxyLGEscysxKSksbCkpOihuJiZUOShMOShuLG1mZSh0LGUscysxKSksbCksU3RlKGUscixzLGwpLG8mJlQ5KEw5KG8sbWZlKHIsYSxzKzEpKSxsKSksU3RlKGEsbnVsbCxzLGwpLG5ldyBKZShsKX1mdW5jdGlvbiBtZmUodCxlLHIpe2xldCBhPVtdO2lmKFN0ZShudWxsLHQscixhKSx0LmRlcHRoPnIpe2xldCBzPWxtdCh0LGUscisxKTtUOShMOShzLG1mZSh0LGUscisxKSksYSl9cmV0dXJuIFN0ZShlLG51bGwscixhKSxuZXcgSmUoYSl9ZnVuY3Rpb24gdUlhKHQsZSl7bGV0IHI9ZS5kZXB0aC10Lm9wZW5TdGFydCxzPWUubm9kZShyKS5jb3B5KHQuY29udGVudCk7Zm9yKGxldCBuPXItMTtuPj0wO24tLSlzPWUubm9kZShuKS5jb3B5KEplLmZyb20ocykpO3JldHVybntzdGFydDpzLnJlc29sdmVOb0NhY2hlKHQub3BlblN0YXJ0K3IpLGVuZDpzLnJlc29sdmVOb0NhY2hlKHMuY29udGVudC5zaXplLXQub3BlbkVuZC1yKX19ZnVuY3Rpb24galVyKHQsZSl7Zm9yKGxldCByPXQubGVuZ3RoLTE7cj49MDtyLS0pZT10W3JdLnR5cGUubmFtZSsiKCIrZSsiKSI7cmV0dXJuIGV9ZnVuY3Rpb24gVVVyKHQpe2xldCBlPVtdO2RvIGUucHVzaChoSWEodCkpO3doaWxlKHQuZWF0KCJ8IikpO3JldHVybiBlLmxlbmd0aD09MT9lWzBdOnt0eXBlOiJjaG9pY2UiLGV4cHJzOmV9fWZ1bmN0aW9uIGhJYSh0KXtsZXQgZT1bXTtkbyBlLnB1c2gobUlhKHQpKTt3aGlsZSh0Lm5leHQmJnQubmV4dCE9IikiJiZ0Lm5leHQhPSJ8Iik7cmV0dXJuIGUubGVuZ3RoPT0xP2VbMF06e3R5cGU6InNlcSIsZXhwcnM6ZX19ZnVuY3Rpb24gbUlhKHQpe2xldCBlPXhJYSh0KTtmb3IoOzspaWYodC5lYXQoIisiKSllPXt0eXBlOiJwbHVzIixleHByOmV9O2Vsc2UgaWYodC5lYXQoIioiKSllPXt0eXBlOiJzdGFyIixleHByOmV9O2Vsc2UgaWYodC5lYXQoIj8iKSllPXt0eXBlOiJvcHQiLGV4cHI6ZX07ZWxzZSBpZih0LmVhdCgieyIpKWU9Z0lhKHQsZSk7ZWxzZSBicmVhaztyZXR1cm4gZX1mdW5jdGlvbiBXVXIodCl7L1xELy50ZXN0KHQubmV4dCkmJnQuZXJyKCJFeHBlY3RlZCBudW1iZXIsIGdvdCAnIit0Lm5leHQrIiciKTtsZXQgZT1OdW1iZXIodC5uZXh0KTtyZXR1cm4gdC5wb3MrKyxlfWZ1bmN0aW9uIGdJYSh0LGUpe2xldCByPVdVcih0KSxhPXI7cmV0dXJuIHQuZWF0KCIsIikmJih0Lm5leHQhPSJ9Ij9hPVdVcih0KTphPS0xKSx0LmVhdCgifSIpfHx0LmVycigiVW5jbG9zZWQgYnJhY2VkIHJhbmdlIikse3R5cGU6InJhbmdlIixtaW46cixtYXg6YSxleHByOmV9fWZ1bmN0aW9uIGJJYSh0LGUpe2xldCByPXQubm9kZVR5cGVzLGE9cltlXTtpZihhKXJldHVyblthXTtsZXQgcz1bXTtmb3IobGV0IG4gaW4gcil7bGV0IG89cltuXTtvLmlzSW5Hcm91cChlKSYmcy5wdXNoKG8pfXJldHVybiBzLmxlbmd0aD09MCYmdC5lcnIoIk5vIG5vZGUgdHlwZSBvciBncm91cCAnIitlKyInIGZvdW5kIiksc31mdW5jdGlvbiB4SWEodCl7aWYodC5lYXQoIigiKSl7bGV0IGU9VVVyKHQpO3JldHVybiB0LmVhdCgiKSIpfHx0LmVycigiTWlzc2luZyBjbG9zaW5nIHBhcmVuIiksZX1lbHNlIGlmKC9cVy8udGVzdCh0Lm5leHQpKXQuZXJyKCJVbmV4cGVjdGVkIHRva2VuICciK3QubmV4dCsiJyIpO2Vsc2V7bGV0IGU9YklhKHQsdC5uZXh0KS5tYXAocj0+KHQuaW5saW5lPT1udWxsP3QuaW5saW5lPXIuaXNJbmxpbmU6dC5pbmxpbmUhPXIuaXNJbmxpbmUmJnQuZXJyKCJNaXhpbmcgaW5saW5lIGFuZCBibG9jayBjb250ZW50Iikse3R5cGU6Im5hbWUiLHZhbHVlOnJ9KSk7cmV0dXJuIHQucG9zKyssZS5sZW5ndGg9PTE/ZVswXTp7dHlwZToiY2hvaWNlIixleHByczplfX19ZnVuY3Rpb24gdklhKHQpe2xldCBlPVtbXV07cmV0dXJuIHMobih0LDApLHIoKSksZTtmdW5jdGlvbiByKCl7cmV0dXJuIGUucHVzaChbXSktMX1pKHIsIm5vZGUiKTtmdW5jdGlvbiBhKG8sbCxjKXtsZXQgZD17dGVybTpjLHRvOmx9O3JldHVybiBlW29dLnB1c2goZCksZH1pKGEsImVkZ2UiKTtmdW5jdGlvbiBzKG8sbCl7by5mb3JFYWNoKGM9PmMudG89bCl9aShzLCJjb25uZWN0Iik7ZnVuY3Rpb24gbihvLGwpe2lmKG8udHlwZT09ImNob2ljZSIpcmV0dXJuIG8uZXhwcnMucmVkdWNlKChjLGQpPT5jLmNvbmNhdChuKGQsbCkpLFtdKTtpZihvLnR5cGU9PSJzZXEiKWZvcihsZXQgYz0wOztjKyspe2xldCBkPW4oby5leHByc1tjXSxsKTtpZihjPT1vLmV4cHJzLmxlbmd0aC0xKXJldHVybiBkO3MoZCxsPXIoKSl9ZWxzZSBpZihvLnR5cGU9PSJzdGFyIil7bGV0IGM9cigpO3JldHVybiBhKGwsYykscyhuKG8uZXhwcixjKSxjKSxbYShjKV19ZWxzZSBpZihvLnR5cGU9PSJwbHVzIil7bGV0IGM9cigpO3JldHVybiBzKG4oby5leHByLGwpLGMpLHMobihvLmV4cHIsYyksYyksW2EoYyldfWVsc2V7aWYoby50eXBlPT0ib3B0IilyZXR1cm5bYShsKV0uY29uY2F0KG4oby5leHByLGwpKTtpZihvLnR5cGU9PSJyYW5nZSIpe2xldCBjPWw7Zm9yKGxldCBkPTA7ZDxvLm1pbjtkKyspe2xldCBmPXIoKTtzKG4oby5leHByLGMpLGYpLGM9Zn1pZihvLm1heD09LTEpcyhuKG8uZXhwcixjKSxjKTtlbHNlIGZvcihsZXQgZD1vLm1pbjtkPG8ubWF4O2QrKyl7bGV0IGY9cigpO2EoYyxmKSxzKG4oby5leHByLGMpLGYpLGM9Zn1yZXR1cm5bYShjKV19ZWxzZXtpZihvLnR5cGU9PSJuYW1lIilyZXR1cm5bYShsLHZvaWQgMCxvLnZhbHVlKV07dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGV4cHIgdHlwZSIpfX19aShuLCJjb21waWxlIil9ZnVuY3Rpb24gR1VyKHQsZSl7cmV0dXJuIGUtdH1mdW5jdGlvbiBZVXIodCxlKXtsZXQgcj1bXTtyZXR1cm4gYShlKSxyLnNvcnQoR1VyKTtmdW5jdGlvbiBhKHMpe2xldCBuPXRbc107aWYobi5sZW5ndGg9PTEmJiFuWzBdLnRlcm0pcmV0dXJuIGEoblswXS50byk7ci5wdXNoKHMpO2ZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXtsZXR7dGVybTpsLHRvOmN9PW5bb107IWwmJnIuaW5kZXhPZihjKT09LTEmJmEoYyl9fWkoYSwic2NhbiIpfWZ1bmN0aW9uIHlJYSh0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiByKFlVcih0LDApKTtmdW5jdGlvbiByKGEpe2xldCBzPVtdO2EuZm9yRWFjaChvPT57dFtvXS5mb3JFYWNoKCh7dGVybTpsLHRvOmN9KT0+e2lmKCFsKXJldHVybjtsZXQgZDtmb3IobGV0IGY9MDtmPHMubGVuZ3RoO2YrKylzW2ZdWzBdPT1sJiYoZD1zW2ZdWzFdKTtZVXIodCxjKS5mb3JFYWNoKGY9PntkfHxzLnB1c2goW2wsZD1bXV0pLGQuaW5kZXhPZihmKT09LTEmJmQucHVzaChmKX0pfSl9KTtsZXQgbj1lW2Euam9pbigiLCIpXT1uZXcgSHAoYS5pbmRleE9mKHQubGVuZ3RoLTEpPi0xKTtmb3IobGV0IG89MDtvPHMubGVuZ3RoO28rKyl7bGV0IGw9c1tvXVsxXS5zb3J0KEdVcik7bi5uZXh0LnB1c2goe3R5cGU6c1tvXVswXSxuZXh0OmVbbC5qb2luKCIsIildfHxyKGwpfSl9cmV0dXJuIG59fWZ1bmN0aW9uIHdJYSh0LGUpe2ZvcihsZXQgcj0wLGE9W3RdO3I8YS5sZW5ndGg7cisrKXtsZXQgcz1hW3JdLG49IXMudmFsaWRFbmQsbz1bXTtmb3IobGV0IGw9MDtsPHMubmV4dC5sZW5ndGg7bCsrKXtsZXR7dHlwZTpjLG5leHQ6ZH09cy5uZXh0W2xdO28ucHVzaChjLm5hbWUpLG4mJiEoYy5pc1RleHR8fGMuaGFzUmVxdWlyZWRBdHRycygpKSYmKG49ITEpLGEuaW5kZXhPZihkKT09LTEmJmEucHVzaChkKX1uJiZlLmVycigiT25seSBub24tZ2VuZXJhdGFibGUgbm9kZXMgKCIrby5qb2luKCIsICIpKyIpIGluIGEgcmVxdWlyZWQgcG9zaXRpb24gKHNlZSBodHRwczovL3Byb3NlbWlycm9yLm5ldC9kb2NzL2d1aWRlLyNnZW5lcmF0YWJsZSkiKX19ZnVuY3Rpb24gS1VyKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCByIGluIHQpe2xldCBhPXRbcl07aWYoIWEuaGFzRGVmYXVsdClyZXR1cm4gbnVsbDtlW3JdPWEuZGVmYXVsdH1yZXR1cm4gZX1mdW5jdGlvbiBaVXIodCxlKXtsZXQgcj1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgYSBpbiB0KXtsZXQgcz1lJiZlW2FdO2lmKHM9PT12b2lkIDApe2xldCBuPXRbYV07aWYobi5oYXNEZWZhdWx0KXM9bi5kZWZhdWx0O2Vsc2UgdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vIHZhbHVlIHN1cHBsaWVkIGZvciBhdHRyaWJ1dGUgIithKX1yW2FdPXN9cmV0dXJuIHJ9ZnVuY3Rpb24gUVVyKHQsZSxyLGEpe2ZvcihsZXQgcyBpbiBlKWlmKCEocyBpbiB0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVW5zdXBwb3J0ZWQgYXR0cmlidXRlICR7c30gZm9yICR7cn0gb2YgdHlwZSAke3N9YCk7Zm9yKGxldCBzIGluIHQpe2xldCBuPXRbc107bi52YWxpZGF0ZSYmbi52YWxpZGF0ZShlW3NdKX19ZnVuY3Rpb24gWFVyKHQsZSl7bGV0IHI9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihlKWZvcihsZXQgYSBpbiBlKXJbYV09bmV3IHBtdCh0LGEsZVthXSk7cmV0dXJuIHJ9ZnVuY3Rpb24ga0lhKHQsZSxyKXtsZXQgYT1yLnNwbGl0KCJ8Iik7cmV0dXJuIHM9PntsZXQgbj1zPT09bnVsbD8ibnVsbCI6dHlwZW9mIHM7aWYoYS5pbmRleE9mKG4pPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEV4cGVjdGVkIHZhbHVlIG9mIHR5cGUgJHthfSBmb3IgYXR0cmlidXRlICR7ZX0gb24gdHlwZSAke3R9LCBnb3QgJHtufWApfX1mdW5jdGlvbiBKVXIodCxlKXtsZXQgcj1bXTtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKyl7bGV0IHM9ZVthXSxuPXQubWFya3Nbc10sbz1uO2lmKG4pci5wdXNoKG4pO2Vsc2UgZm9yKGxldCBsIGluIHQubWFya3Mpe2xldCBjPXQubWFya3NbbF07KHM9PSJfInx8Yy5zcGVjLmdyb3VwJiZjLnNwZWMuZ3JvdXAuc3BsaXQoIiAiKS5pbmRleE9mKHMpPi0xKSYmci5wdXNoKG89Yyl9aWYoIW8pdGhyb3cgbmV3IFN5bnRheEVycm9yKCJVbmtub3duIG1hcmsgdHlwZTogJyIrZVthXSsiJyIpfXJldHVybiByfWZ1bmN0aW9uIFNJYSh0KXtyZXR1cm4gdC50YWchPW51bGx9ZnVuY3Rpb24gTUlhKHQpe3JldHVybiB0LnN0eWxlIT1udWxsfWZ1bmN0aW9uIHJXcih0LGUscil7cmV0dXJuIGUhPW51bGw/KGU/enRlOjApfChlPT09ImZ1bGwiP2ZtdDowKTp0JiZ0LndoaXRlc3BhY2U9PSJwcmUiP3p0ZXxmbXQ6ciZ+X3RlfWZ1bmN0aW9uIHpJYSh0KXtmb3IobGV0IGU9dC5maXJzdENoaWxkLHI9bnVsbDtlO2U9ZS5uZXh0U2libGluZyl7bGV0IGE9ZS5ub2RlVHlwZT09MT9lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk6bnVsbDthJiZ0V3IuaGFzT3duUHJvcGVydHkoYSkmJnI/KHIuYXBwZW5kQ2hpbGQoZSksZT1yKTphPT0ibGkiP3I9ZTphJiYocj1udWxsKX19ZnVuY3Rpb24gX0lhKHQsZSl7cmV0dXJuKHQubWF0Y2hlc3x8dC5tc01hdGNoZXNTZWxlY3Rvcnx8dC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHQubW96TWF0Y2hlc1NlbGVjdG9yKS5jYWxsKHQsZSl9ZnVuY3Rpb24gYVdyKHQpe2xldCBlPXt9O2ZvcihsZXQgciBpbiB0KWVbcl09dFtyXTtyZXR1cm4gZX1mdW5jdGlvbiBpV3IodCxlKXtsZXQgcj1lLnNjaGVtYS5ub2Rlcztmb3IobGV0IGEgaW4gcil7bGV0IHM9clthXTtpZighcy5hbGxvd3NNYXJrVHlwZSh0KSljb250aW51ZTtsZXQgbj1bXSxvPWkobD0+e24ucHVzaChsKTtmb3IobGV0IGM9MDtjPGwuZWRnZUNvdW50O2MrKyl7bGV0e3R5cGU6ZCxuZXh0OmZ9PWwuZWRnZShjKTtpZihkPT1lfHxuLmluZGV4T2YoZik8MCYmbyhmKSlyZXR1cm4hMH19LCJzY2FuIik7aWYobyhzLmNvbnRlbnRNYXRjaCkpcmV0dXJuITB9fWZ1bmN0aW9uIHNXcih0KXtsZXQgZT17fTtmb3IobGV0IHIgaW4gdCl7bGV0IGE9dFtyXS5zcGVjLnRvRE9NO2EmJihlW3JdPWEpfXJldHVybiBlfWZ1bmN0aW9uIGJmZSh0KXtyZXR1cm4gdC5kb2N1bWVudHx8d2luZG93LmRvY3VtZW50fWZ1bmN0aW9uIFRJYSh0KXtsZXQgZT1uV3IuZ2V0KHQpO3JldHVybiBlPT09dm9pZCAwJiZuV3Iuc2V0KHQsZT1MSWEodCkpLGV9ZnVuY3Rpb24gTElhKHQpe2xldCBlPW51bGw7ZnVuY3Rpb24gcihhKXtpZihhJiZ0eXBlb2YgYT09Im9iamVjdCIpaWYoQXJyYXkuaXNBcnJheShhKSlpZih0eXBlb2YgYVswXT09InN0cmluZyIpZXx8KGU9W10pLGUucHVzaChhKTtlbHNlIGZvcihsZXQgcz0wO3M8YS5sZW5ndGg7cysrKXIoYVtzXSk7ZWxzZSBmb3IobGV0IHMgaW4gYSlyKGFbc10pfXJldHVybiBpKHIsInNjYW4iKSxyKHQpLGV9ZnVuY3Rpb24geGZlKHQsZSxyLGEpe2lmKGUubm9kZVR5cGU9PTEpcmV0dXJue2RvbTplfTtpZihlLmRvbSYmZS5kb20ubm9kZVR5cGU9PTEpcmV0dXJuIGU7bGV0IHM9ZVswXSxuO2lmKHR5cGVvZiBzIT0ic3RyaW5nIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBhcnJheSBwYXNzZWQgdG8gcmVuZGVyU3BlYyIpO2lmKGEmJihuPVRJYShhKSkmJm4uaW5kZXhPZihlKT4tMSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVXNpbmcgYW4gYXJyYXkgZnJvbSBhbiBhdHRyaWJ1dGUgb2JqZWN0IGFzIGEgRE9NIHNwZWMuIFRoaXMgbWF5IGJlIGFuIGF0dGVtcHRlZCBjcm9zcyBzaXRlIHNjcmlwdGluZyBhdHRhY2suIik7bGV0IG89cy5pbmRleE9mKCIgIik7bz4wJiYocj1zLnNsaWNlKDAsbykscz1zLnNsaWNlKG8rMSkpO2xldCBsLGM9cj90LmNyZWF0ZUVsZW1lbnROUyhyLHMpOnQuY3JlYXRlRWxlbWVudChzKSxkPWVbMV0sZj0xO2lmKGQmJnR5cGVvZiBkPT0ib2JqZWN0IiYmZC5ub2RlVHlwZT09bnVsbCYmIUFycmF5LmlzQXJyYXkoZCkpe2Y9Mjtmb3IobGV0IHAgaW4gZClpZihkW3BdIT1udWxsKXtsZXQgaD1wLmluZGV4T2YoIiAiKTtoPjA/Yy5zZXRBdHRyaWJ1dGVOUyhwLnNsaWNlKDAsaCkscC5zbGljZShoKzEpLGRbcF0pOnA9PSJzdHlsZSImJmMuc3R5bGU/Yy5zdHlsZS5jc3NUZXh0PWRbcF06Yy5zZXRBdHRyaWJ1dGUocCxkW3BdKX19Zm9yKGxldCBwPWY7cDxlLmxlbmd0aDtwKyspe2xldCBoPWVbcF07aWYoaD09PTApe2lmKHA8ZS5sZW5ndGgtMXx8cD5mKXRocm93IG5ldyBSYW5nZUVycm9yKCJDb250ZW50IGhvbGUgbXVzdCBiZSB0aGUgb25seSBjaGlsZCBvZiBpdHMgcGFyZW50IG5vZGUiKTtyZXR1cm57ZG9tOmMsY29udGVudERPTTpjfX1lbHNlIGlmKHR5cGVvZiBoPT0ic3RyaW5nIiljLmFwcGVuZENoaWxkKHQuY3JlYXRlVGV4dE5vZGUoaCkpO2Vsc2V7bGV0e2RvbTptLGNvbnRlbnRET006dn09eGZlKHQsaCxyLGEpO2lmKGMuYXBwZW5kQ2hpbGQobSksdil7aWYobCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTXVsdGlwbGUgY29udGVudCBob2xlcyIpO2w9dn19fXJldHVybntkb206Yyxjb250ZW50RE9NOmx9fXZhciBKZSxvbXQsaGEscXAsbXQsTXRlLGNtdCxwSWEsVlVyLFZwLGZJYSxxbyxkbXQsSHAsdW10LEN0ZSxwbXQsV3ksR3kseWMsZVdyLENJYSx0V3IsenRlLGZtdCxfdGUsVXksZ2ZlLG9kLG5XcixqcD11KCgpPT57UFVyKCk7aShOVXIsImZpbmREaWZmU3RhcnQiKTtpKE9VciwiZmluZERpZmZFbmQiKTtKZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkZyYWdtZW50Iil9Y29uc3RydWN0b3IoZSxyKXtpZih0aGlzLmNvbnRlbnQ9ZSx0aGlzLnNpemU9cnx8MCxyPT1udWxsKWZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSsrKXRoaXMuc2l6ZSs9ZVthXS5ub2RlU2l6ZX1ub2Rlc0JldHdlZW4oZSxyLGEscz0wLG4pe2ZvcihsZXQgbz0wLGw9MDtsPHI7bysrKXtsZXQgYz10aGlzLmNvbnRlbnRbb10sZD1sK2Mubm9kZVNpemU7aWYoZD5lJiZhKGMscytsLG58fG51bGwsbykhPT0hMSYmYy5jb250ZW50LnNpemUpe2xldCBmPWwrMTtjLm5vZGVzQmV0d2VlbihNYXRoLm1heCgwLGUtZiksTWF0aC5taW4oYy5jb250ZW50LnNpemUsci1mKSxhLHMrZil9bD1kfX1kZXNjZW5kYW50cyhlKXt0aGlzLm5vZGVzQmV0d2VlbigwLHRoaXMuc2l6ZSxlKX10ZXh0QmV0d2VlbihlLHIsYSxzKXtsZXQgbj0iIixvPSEwO3JldHVybiB0aGlzLm5vZGVzQmV0d2VlbihlLHIsKGwsYyk9PntsZXQgZD1sLmlzVGV4dD9sLnRleHQuc2xpY2UoTWF0aC5tYXgoZSxjKS1jLHItYyk6bC5pc0xlYWY/cz90eXBlb2Ygcz09ImZ1bmN0aW9uIj9zKGwpOnM6bC50eXBlLnNwZWMubGVhZlRleHQ/bC50eXBlLnNwZWMubGVhZlRleHQobCk6IiI6IiI7bC5pc0Jsb2NrJiYobC5pc0xlYWYmJmR8fGwuaXNUZXh0YmxvY2spJiZhJiYobz9vPSExOm4rPWEpLG4rPWR9LDApLG59YXBwZW5kKGUpe2lmKCFlLnNpemUpcmV0dXJuIHRoaXM7aWYoIXRoaXMuc2l6ZSlyZXR1cm4gZTtsZXQgcj10aGlzLmxhc3RDaGlsZCxhPWUuZmlyc3RDaGlsZCxzPXRoaXMuY29udGVudC5zbGljZSgpLG49MDtmb3Ioci5pc1RleHQmJnIuc2FtZU1hcmt1cChhKSYmKHNbcy5sZW5ndGgtMV09ci53aXRoVGV4dChyLnRleHQrYS50ZXh0KSxuPTEpO248ZS5jb250ZW50Lmxlbmd0aDtuKyspcy5wdXNoKGUuY29udGVudFtuXSk7cmV0dXJuIG5ldyB0KHMsdGhpcy5zaXplK2Uuc2l6ZSl9Y3V0KGUscj10aGlzLnNpemUpe2lmKGU9PTAmJnI9PXRoaXMuc2l6ZSlyZXR1cm4gdGhpcztsZXQgYT1bXSxzPTA7aWYocj5lKWZvcihsZXQgbj0wLG89MDtvPHI7bisrKXtsZXQgbD10aGlzLmNvbnRlbnRbbl0sYz1vK2wubm9kZVNpemU7Yz5lJiYoKG88ZXx8Yz5yKSYmKGwuaXNUZXh0P2w9bC5jdXQoTWF0aC5tYXgoMCxlLW8pLE1hdGgubWluKGwudGV4dC5sZW5ndGgsci1vKSk6bD1sLmN1dChNYXRoLm1heCgwLGUtby0xKSxNYXRoLm1pbihsLmNvbnRlbnQuc2l6ZSxyLW8tMSkpKSxhLnB1c2gobCkscys9bC5ub2RlU2l6ZSksbz1jfXJldHVybiBuZXcgdChhLHMpfWN1dEJ5SW5kZXgoZSxyKXtyZXR1cm4gZT09cj90LmVtcHR5OmU9PTAmJnI9PXRoaXMuY29udGVudC5sZW5ndGg/dGhpczpuZXcgdCh0aGlzLmNvbnRlbnQuc2xpY2UoZSxyKSl9cmVwbGFjZUNoaWxkKGUscil7bGV0IGE9dGhpcy5jb250ZW50W2VdO2lmKGE9PXIpcmV0dXJuIHRoaXM7bGV0IHM9dGhpcy5jb250ZW50LnNsaWNlKCksbj10aGlzLnNpemUrci5ub2RlU2l6ZS1hLm5vZGVTaXplO3JldHVybiBzW2VdPXIsbmV3IHQocyxuKX1hZGRUb1N0YXJ0KGUpe3JldHVybiBuZXcgdChbZV0uY29uY2F0KHRoaXMuY29udGVudCksdGhpcy5zaXplK2Uubm9kZVNpemUpfWFkZFRvRW5kKGUpe3JldHVybiBuZXcgdCh0aGlzLmNvbnRlbnQuY29uY2F0KGUpLHRoaXMuc2l6ZStlLm5vZGVTaXplKX1lcShlKXtpZih0aGlzLmNvbnRlbnQubGVuZ3RoIT1lLmNvbnRlbnQubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgcj0wO3I8dGhpcy5jb250ZW50Lmxlbmd0aDtyKyspaWYoIXRoaXMuY29udGVudFtyXS5lcShlLmNvbnRlbnRbcl0pKXJldHVybiExO3JldHVybiEwfWdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuY29udGVudC5sZW5ndGg/dGhpcy5jb250ZW50WzBdOm51bGx9Z2V0IGxhc3RDaGlsZCgpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RoP3RoaXMuY29udGVudFt0aGlzLmNvbnRlbnQubGVuZ3RoLTFdOm51bGx9Z2V0IGNoaWxkQ291bnQoKXtyZXR1cm4gdGhpcy5jb250ZW50Lmxlbmd0aH1jaGlsZChlKXtsZXQgcj10aGlzLmNvbnRlbnRbZV07aWYoIXIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4ICIrZSsiIG91dCBvZiByYW5nZSBmb3IgIit0aGlzKTtyZXR1cm4gcn1tYXliZUNoaWxkKGUpe3JldHVybiB0aGlzLmNvbnRlbnRbZV18fG51bGx9Zm9yRWFjaChlKXtmb3IobGV0IHI9MCxhPTA7cjx0aGlzLmNvbnRlbnQubGVuZ3RoO3IrKyl7bGV0IHM9dGhpcy5jb250ZW50W3JdO2UocyxhLHIpLGErPXMubm9kZVNpemV9fWZpbmREaWZmU3RhcnQoZSxyPTApe3JldHVybiBOVXIodGhpcyxlLHIpfWZpbmREaWZmRW5kKGUscj10aGlzLnNpemUsYT1lLnNpemUpe3JldHVybiBPVXIodGhpcyxlLHIsYSl9ZmluZEluZGV4KGUpe2lmKGU9PTApcmV0dXJuIGZmZSgwLGUpO2lmKGU9PXRoaXMuc2l6ZSlyZXR1cm4gZmZlKHRoaXMuY29udGVudC5sZW5ndGgsZSk7aWYoZT50aGlzLnNpemV8fGU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgUG9zaXRpb24gJHtlfSBvdXRzaWRlIG9mIGZyYWdtZW50ICgke3RoaXN9KWApO2ZvcihsZXQgcj0wLGE9MDs7cisrKXtsZXQgcz10aGlzLmNoaWxkKHIpLG49YStzLm5vZGVTaXplO2lmKG4+PWUpcmV0dXJuIG49PWU/ZmZlKHIrMSxuKTpmZmUocixhKTthPW59fXRvU3RyaW5nKCl7cmV0dXJuIjwiK3RoaXMudG9TdHJpbmdJbm5lcigpKyI+In10b1N0cmluZ0lubmVyKCl7cmV0dXJuIHRoaXMuY29udGVudC5qb2luKCIsICIpfXRvSlNPTigpe3JldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RoP3RoaXMuY29udGVudC5tYXAoZT0+ZS50b0pTT04oKSk6bnVsbH1zdGF0aWMgZnJvbUpTT04oZSxyKXtpZighcilyZXR1cm4gdC5lbXB0eTtpZighQXJyYXkuaXNBcnJheShyKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBpbnB1dCBmb3IgRnJhZ21lbnQuZnJvbUpTT04iKTtyZXR1cm4gdC5mcm9tQXJyYXkoci5tYXAoZS5ub2RlRnJvbUpTT04pKX1zdGF0aWMgZnJvbUFycmF5KGUpe2lmKCFlLmxlbmd0aClyZXR1cm4gdC5lbXB0eTtsZXQgcixhPTA7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspe2xldCBuPWVbc107YSs9bi5ub2RlU2l6ZSxzJiZuLmlzVGV4dCYmZVtzLTFdLnNhbWVNYXJrdXAobik/KHJ8fChyPWUuc2xpY2UoMCxzKSkscltyLmxlbmd0aC0xXT1uLndpdGhUZXh0KHJbci5sZW5ndGgtMV0udGV4dCtuLnRleHQpKTpyJiZyLnB1c2gobil9cmV0dXJuIG5ldyB0KHJ8fGUsYSl9c3RhdGljIGZyb20oZSl7aWYoIWUpcmV0dXJuIHQuZW1wdHk7aWYoZSBpbnN0YW5jZW9mIHQpcmV0dXJuIGU7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdGhpcy5mcm9tQXJyYXkoZSk7aWYoZS5hdHRycylyZXR1cm4gbmV3IHQoW2VdLGUubm9kZVNpemUpO3Rocm93IG5ldyBSYW5nZUVycm9yKCJDYW4gbm90IGNvbnZlcnQgIitlKyIgdG8gYSBGcmFnbWVudCIrKGUubm9kZXNCZXR3ZWVuPyIgKGxvb2tzIGxpa2UgbXVsdGlwbGUgdmVyc2lvbnMgb2YgcHJvc2VtaXJyb3ItbW9kZWwgd2VyZSBsb2FkZWQpIjoiIikpfX07SmUuZW1wdHk9bmV3IEplKFtdLDApO29tdD17aW5kZXg6MCxvZmZzZXQ6MH07aShmZmUsInJldEluZGV4Iik7aShoZmUsImNvbXBhcmVEZWVwIik7aGE9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJNYXJrIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLnR5cGU9ZSx0aGlzLmF0dHJzPXJ9YWRkVG9TZXQoZSl7bGV0IHIsYT0hMTtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKyl7bGV0IG49ZVtzXTtpZih0aGlzLmVxKG4pKXJldHVybiBlO2lmKHRoaXMudHlwZS5leGNsdWRlcyhuLnR5cGUpKXJ8fChyPWUuc2xpY2UoMCxzKSk7ZWxzZXtpZihuLnR5cGUuZXhjbHVkZXModGhpcy50eXBlKSlyZXR1cm4gZTshYSYmbi50eXBlLnJhbms+dGhpcy50eXBlLnJhbmsmJihyfHwocj1lLnNsaWNlKDAscykpLHIucHVzaCh0aGlzKSxhPSEwKSxyJiZyLnB1c2gobil9fXJldHVybiByfHwocj1lLnNsaWNlKCkpLGF8fHIucHVzaCh0aGlzKSxyfXJlbW92ZUZyb21TZXQoZSl7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYodGhpcy5lcShlW3JdKSlyZXR1cm4gZS5zbGljZSgwLHIpLmNvbmNhdChlLnNsaWNlKHIrMSkpO3JldHVybiBlfWlzSW5TZXQoZSl7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYodGhpcy5lcShlW3JdKSlyZXR1cm4hMDtyZXR1cm4hMX1lcShlKXtyZXR1cm4gdGhpcz09ZXx8dGhpcy50eXBlPT1lLnR5cGUmJmhmZSh0aGlzLmF0dHJzLGUuYXR0cnMpfXRvSlNPTigpe2xldCBlPXt0eXBlOnRoaXMudHlwZS5uYW1lfTtmb3IobGV0IHIgaW4gdGhpcy5hdHRycyl7ZS5hdHRycz10aGlzLmF0dHJzO2JyZWFrfXJldHVybiBlfXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKCFyKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBNYXJrLmZyb21KU09OIik7bGV0IGE9ZS5tYXJrc1tyLnR5cGVdO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGVyZSBpcyBubyBtYXJrIHR5cGUgJHtyLnR5cGV9IGluIHRoaXMgc2NoZW1hYCk7bGV0IHM9YS5jcmVhdGUoci5hdHRycyk7cmV0dXJuIGEuY2hlY2tBdHRycyhzLmF0dHJzKSxzfXN0YXRpYyBzYW1lU2V0KGUscil7aWYoZT09cilyZXR1cm4hMDtpZihlLmxlbmd0aCE9ci5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspaWYoIWVbYV0uZXEoclthXSkpcmV0dXJuITE7cmV0dXJuITB9c3RhdGljIHNldEZyb20oZSl7aWYoIWV8fEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPT0wKXJldHVybiB0Lm5vbmU7aWYoZSBpbnN0YW5jZW9mIHQpcmV0dXJuW2VdO2xldCByPWUuc2xpY2UoKTtyZXR1cm4gci5zb3J0KChhLHMpPT5hLnR5cGUucmFuay1zLnR5cGUucmFuaykscn19O2hhLm5vbmU9W107cXA9Y2xhc3MgZXh0ZW5kcyBFcnJvcntzdGF0aWN7aSh0aGlzLCJSZXBsYWNlRXJyb3IiKX19LG10PWNsYXNzIHR7c3RhdGlje2kodGhpcywiU2xpY2UiKX1jb25zdHJ1Y3RvcihlLHIsYSl7dGhpcy5jb250ZW50PWUsdGhpcy5vcGVuU3RhcnQ9cix0aGlzLm9wZW5FbmQ9YX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLmNvbnRlbnQuc2l6ZS10aGlzLm9wZW5TdGFydC10aGlzLm9wZW5FbmR9aW5zZXJ0QXQoZSxyKXtsZXQgYT1GVXIodGhpcy5jb250ZW50LGUrdGhpcy5vcGVuU3RhcnQscix0aGlzLm9wZW5TdGFydCsxLHRoaXMub3BlbkVuZCsxKTtyZXR1cm4gYSYmbmV3IHQoYSx0aGlzLm9wZW5TdGFydCx0aGlzLm9wZW5FbmQpfXJlbW92ZUJldHdlZW4oZSxyKXtyZXR1cm4gbmV3IHQoUlVyKHRoaXMuY29udGVudCxlK3RoaXMub3BlblN0YXJ0LHIrdGhpcy5vcGVuU3RhcnQpLHRoaXMub3BlblN0YXJ0LHRoaXMub3BlbkVuZCl9ZXEoZSl7cmV0dXJuIHRoaXMuY29udGVudC5lcShlLmNvbnRlbnQpJiZ0aGlzLm9wZW5TdGFydD09ZS5vcGVuU3RhcnQmJnRoaXMub3BlbkVuZD09ZS5vcGVuRW5kfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29udGVudCsiKCIrdGhpcy5vcGVuU3RhcnQrIiwiK3RoaXMub3BlbkVuZCsiKSJ9dG9KU09OKCl7aWYoIXRoaXMuY29udGVudC5zaXplKXJldHVybiBudWxsO2xldCBlPXtjb250ZW50OnRoaXMuY29udGVudC50b0pTT04oKX07cmV0dXJuIHRoaXMub3BlblN0YXJ0PjAmJihlLm9wZW5TdGFydD10aGlzLm9wZW5TdGFydCksdGhpcy5vcGVuRW5kPjAmJihlLm9wZW5FbmQ9dGhpcy5vcGVuRW5kKSxlfXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKCFyKXJldHVybiB0LmVtcHR5O2xldCBhPXIub3BlblN0YXJ0fHwwLHM9ci5vcGVuRW5kfHwwO2lmKHR5cGVvZiBhIT0ibnVtYmVyInx8dHlwZW9mIHMhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBTbGljZS5mcm9tSlNPTiIpO3JldHVybiBuZXcgdChKZS5mcm9tSlNPTihlLHIuY29udGVudCksYSxzKX1zdGF0aWMgbWF4T3BlbihlLHI9ITApe2xldCBhPTAscz0wO2ZvcihsZXQgbj1lLmZpcnN0Q2hpbGQ7biYmIW4uaXNMZWFmJiYocnx8IW4udHlwZS5zcGVjLmlzb2xhdGluZyk7bj1uLmZpcnN0Q2hpbGQpYSsrO2ZvcihsZXQgbj1lLmxhc3RDaGlsZDtuJiYhbi5pc0xlYWYmJihyfHwhbi50eXBlLnNwZWMuaXNvbGF0aW5nKTtuPW4ubGFzdENoaWxkKXMrKztyZXR1cm4gbmV3IHQoZSxhLHMpfX07bXQuZW1wdHk9bmV3IG10KEplLmVtcHR5LDAsMCk7aShSVXIsInJlbW92ZVJhbmdlIik7aShGVXIsImluc2VydEludG8iKTtpKGRJYSwicmVwbGFjZSIpO2koQlVyLCJyZXBsYWNlT3V0ZXIiKTtpKEhVciwiY2hlY2tKb2luIik7aShsbXQsImpvaW5hYmxlIik7aShUOSwiYWRkTm9kZSIpO2koU3RlLCJhZGRSYW5nZSIpO2koTDksImNsb3NlIik7aShxVXIsInJlcGxhY2VUaHJlZVdheSIpO2kobWZlLCJyZXBsYWNlVHdvV2F5Iik7aSh1SWEsInByZXBhcmVTbGljZUZvclJlcGxhY2UiKTtNdGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJSZXNvbHZlZFBvcyIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLnBvcz1lLHRoaXMucGF0aD1yLHRoaXMucGFyZW50T2Zmc2V0PWEsdGhpcy5kZXB0aD1yLmxlbmd0aC8zLTF9cmVzb2x2ZURlcHRoKGUpe3JldHVybiBlPT1udWxsP3RoaXMuZGVwdGg6ZTwwP3RoaXMuZGVwdGgrZTplfWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuZGVwdGgpfWdldCBkb2MoKXtyZXR1cm4gdGhpcy5ub2RlKDApfW5vZGUoZSl7cmV0dXJuIHRoaXMucGF0aFt0aGlzLnJlc29sdmVEZXB0aChlKSozXX1pbmRleChlKXtyZXR1cm4gdGhpcy5wYXRoW3RoaXMucmVzb2x2ZURlcHRoKGUpKjMrMV19aW5kZXhBZnRlcihlKXtyZXR1cm4gZT10aGlzLnJlc29sdmVEZXB0aChlKSx0aGlzLmluZGV4KGUpKyhlPT10aGlzLmRlcHRoJiYhdGhpcy50ZXh0T2Zmc2V0PzA6MSl9c3RhcnQoZSl7cmV0dXJuIGU9dGhpcy5yZXNvbHZlRGVwdGgoZSksZT09MD8wOnRoaXMucGF0aFtlKjMtMV0rMX1lbmQoZSl7cmV0dXJuIGU9dGhpcy5yZXNvbHZlRGVwdGgoZSksdGhpcy5zdGFydChlKSt0aGlzLm5vZGUoZSkuY29udGVudC5zaXplfWJlZm9yZShlKXtpZihlPXRoaXMucmVzb2x2ZURlcHRoKGUpLCFlKXRocm93IG5ldyBSYW5nZUVycm9yKCJUaGVyZSBpcyBubyBwb3NpdGlvbiBiZWZvcmUgdGhlIHRvcC1sZXZlbCBub2RlIik7cmV0dXJuIGU9PXRoaXMuZGVwdGgrMT90aGlzLnBvczp0aGlzLnBhdGhbZSozLTFdfWFmdGVyKGUpe2lmKGU9dGhpcy5yZXNvbHZlRGVwdGgoZSksIWUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRoZXJlIGlzIG5vIHBvc2l0aW9uIGFmdGVyIHRoZSB0b3AtbGV2ZWwgbm9kZSIpO3JldHVybiBlPT10aGlzLmRlcHRoKzE/dGhpcy5wb3M6dGhpcy5wYXRoW2UqMy0xXSt0aGlzLnBhdGhbZSozXS5ub2RlU2l6ZX1nZXQgdGV4dE9mZnNldCgpe3JldHVybiB0aGlzLnBvcy10aGlzLnBhdGhbdGhpcy5wYXRoLmxlbmd0aC0xXX1nZXQgbm9kZUFmdGVyKCl7bGV0IGU9dGhpcy5wYXJlbnQscj10aGlzLmluZGV4KHRoaXMuZGVwdGgpO2lmKHI9PWUuY2hpbGRDb3VudClyZXR1cm4gbnVsbDtsZXQgYT10aGlzLnBvcy10aGlzLnBhdGhbdGhpcy5wYXRoLmxlbmd0aC0xXSxzPWUuY2hpbGQocik7cmV0dXJuIGE/ZS5jaGlsZChyKS5jdXQoYSk6c31nZXQgbm9kZUJlZm9yZSgpe2xldCBlPXRoaXMuaW5kZXgodGhpcy5kZXB0aCkscj10aGlzLnBvcy10aGlzLnBhdGhbdGhpcy5wYXRoLmxlbmd0aC0xXTtyZXR1cm4gcj90aGlzLnBhcmVudC5jaGlsZChlKS5jdXQoMCxyKTplPT0wP251bGw6dGhpcy5wYXJlbnQuY2hpbGQoZS0xKX1wb3NBdEluZGV4KGUscil7cj10aGlzLnJlc29sdmVEZXB0aChyKTtsZXQgYT10aGlzLnBhdGhbciozXSxzPXI9PTA/MDp0aGlzLnBhdGhbciozLTFdKzE7Zm9yKGxldCBuPTA7bjxlO24rKylzKz1hLmNoaWxkKG4pLm5vZGVTaXplO3JldHVybiBzfW1hcmtzKCl7bGV0IGU9dGhpcy5wYXJlbnQscj10aGlzLmluZGV4KCk7aWYoZS5jb250ZW50LnNpemU9PTApcmV0dXJuIGhhLm5vbmU7aWYodGhpcy50ZXh0T2Zmc2V0KXJldHVybiBlLmNoaWxkKHIpLm1hcmtzO2xldCBhPWUubWF5YmVDaGlsZChyLTEpLHM9ZS5tYXliZUNoaWxkKHIpO2lmKCFhKXtsZXQgbD1hO2E9cyxzPWx9bGV0IG49YS5tYXJrcztmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyluW29dLnR5cGUuc3BlYy5pbmNsdXNpdmU9PT0hMSYmKCFzfHwhbltvXS5pc0luU2V0KHMubWFya3MpKSYmKG49bltvLS1dLnJlbW92ZUZyb21TZXQobikpO3JldHVybiBufW1hcmtzQWNyb3NzKGUpe2xldCByPXRoaXMucGFyZW50Lm1heWJlQ2hpbGQodGhpcy5pbmRleCgpKTtpZighcnx8IXIuaXNJbmxpbmUpcmV0dXJuIG51bGw7bGV0IGE9ci5tYXJrcyxzPWUucGFyZW50Lm1heWJlQ2hpbGQoZS5pbmRleCgpKTtmb3IodmFyIG49MDtuPGEubGVuZ3RoO24rKylhW25dLnR5cGUuc3BlYy5pbmNsdXNpdmU9PT0hMSYmKCFzfHwhYVtuXS5pc0luU2V0KHMubWFya3MpKSYmKGE9YVtuLS1dLnJlbW92ZUZyb21TZXQoYSkpO3JldHVybiBhfXNoYXJlZERlcHRoKGUpe2ZvcihsZXQgcj10aGlzLmRlcHRoO3I+MDtyLS0paWYodGhpcy5zdGFydChyKTw9ZSYmdGhpcy5lbmQocik+PWUpcmV0dXJuIHI7cmV0dXJuIDB9YmxvY2tSYW5nZShlPXRoaXMscil7aWYoZS5wb3M8dGhpcy5wb3MpcmV0dXJuIGUuYmxvY2tSYW5nZSh0aGlzKTtmb3IobGV0IGE9dGhpcy5kZXB0aC0odGhpcy5wYXJlbnQuaW5saW5lQ29udGVudHx8dGhpcy5wb3M9PWUucG9zPzE6MCk7YT49MDthLS0paWYoZS5wb3M8PXRoaXMuZW5kKGEpJiYoIXJ8fHIodGhpcy5ub2RlKGEpKSkpcmV0dXJuIG5ldyBWcCh0aGlzLGUsYSk7cmV0dXJuIG51bGx9c2FtZVBhcmVudChlKXtyZXR1cm4gdGhpcy5wb3MtdGhpcy5wYXJlbnRPZmZzZXQ9PWUucG9zLWUucGFyZW50T2Zmc2V0fW1heChlKXtyZXR1cm4gZS5wb3M+dGhpcy5wb3M/ZTp0aGlzfW1pbihlKXtyZXR1cm4gZS5wb3M8dGhpcy5wb3M/ZTp0aGlzfXRvU3RyaW5nKCl7bGV0IGU9IiI7Zm9yKGxldCByPTE7cjw9dGhpcy5kZXB0aDtyKyspZSs9KGU/Ii8iOiIiKSt0aGlzLm5vZGUocikudHlwZS5uYW1lKyJfIit0aGlzLmluZGV4KHItMSk7cmV0dXJuIGUrIjoiK3RoaXMucGFyZW50T2Zmc2V0fXN0YXRpYyByZXNvbHZlKGUscil7aWYoIShyPj0wJiZyPD1lLmNvbnRlbnQuc2l6ZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlBvc2l0aW9uICIrcisiIG91dCBvZiByYW5nZSIpO2xldCBhPVtdLHM9MCxuPXI7Zm9yKGxldCBvPWU7Oyl7bGV0e2luZGV4Omwsb2Zmc2V0OmN9PW8uY29udGVudC5maW5kSW5kZXgobiksZD1uLWM7aWYoYS5wdXNoKG8sbCxzK2MpLCFkfHwobz1vLmNoaWxkKGwpLG8uaXNUZXh0KSlicmVhaztuPWQtMSxzKz1jKzF9cmV0dXJuIG5ldyB0KHIsYSxuKX1zdGF0aWMgcmVzb2x2ZUNhY2hlZChlLHIpe2xldCBhPVZVci5nZXQoZSk7aWYoYSlmb3IobGV0IG49MDtuPGEuZWx0cy5sZW5ndGg7bisrKXtsZXQgbz1hLmVsdHNbbl07aWYoby5wb3M9PXIpcmV0dXJuIG99ZWxzZSBWVXIuc2V0KGUsYT1uZXcgY210KTtsZXQgcz1hLmVsdHNbYS5pXT10LnJlc29sdmUoZSxyKTtyZXR1cm4gYS5pPShhLmkrMSklcElhLHN9fSxjbXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiUmVzb2x2ZUNhY2hlIil9Y29uc3RydWN0b3IoKXt0aGlzLmVsdHM9W10sdGhpcy5pPTB9fSxwSWE9MTIsVlVyPW5ldyBXZWFrTWFwLFZwPWNsYXNze3N0YXRpY3tpKHRoaXMsIk5vZGVSYW5nZSIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLiRmcm9tPWUsdGhpcy4kdG89cix0aGlzLmRlcHRoPWF9Z2V0IHN0YXJ0KCl7cmV0dXJuIHRoaXMuJGZyb20uYmVmb3JlKHRoaXMuZGVwdGgrMSl9Z2V0IGVuZCgpe3JldHVybiB0aGlzLiR0by5hZnRlcih0aGlzLmRlcHRoKzEpfWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy4kZnJvbS5ub2RlKHRoaXMuZGVwdGgpfWdldCBzdGFydEluZGV4KCl7cmV0dXJuIHRoaXMuJGZyb20uaW5kZXgodGhpcy5kZXB0aCl9Z2V0IGVuZEluZGV4KCl7cmV0dXJuIHRoaXMuJHRvLmluZGV4QWZ0ZXIodGhpcy5kZXB0aCl9fSxmSWE9T2JqZWN0LmNyZWF0ZShudWxsKSxxbz1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIk5vZGUiKX1jb25zdHJ1Y3RvcihlLHIsYSxzPWhhLm5vbmUpe3RoaXMudHlwZT1lLHRoaXMuYXR0cnM9cix0aGlzLm1hcmtzPXMsdGhpcy5jb250ZW50PWF8fEplLmVtcHR5fWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzLmNvbnRlbnQuY29udGVudH1nZXQgbm9kZVNpemUoKXtyZXR1cm4gdGhpcy5pc0xlYWY/MToyK3RoaXMuY29udGVudC5zaXplfWdldCBjaGlsZENvdW50KCl7cmV0dXJuIHRoaXMuY29udGVudC5jaGlsZENvdW50fWNoaWxkKGUpe3JldHVybiB0aGlzLmNvbnRlbnQuY2hpbGQoZSl9bWF5YmVDaGlsZChlKXtyZXR1cm4gdGhpcy5jb250ZW50Lm1heWJlQ2hpbGQoZSl9Zm9yRWFjaChlKXt0aGlzLmNvbnRlbnQuZm9yRWFjaChlKX1ub2Rlc0JldHdlZW4oZSxyLGEscz0wKXt0aGlzLmNvbnRlbnQubm9kZXNCZXR3ZWVuKGUscixhLHMsdGhpcyl9ZGVzY2VuZGFudHMoZSl7dGhpcy5ub2Rlc0JldHdlZW4oMCx0aGlzLmNvbnRlbnQuc2l6ZSxlKX1nZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy5pc0xlYWYmJnRoaXMudHlwZS5zcGVjLmxlYWZUZXh0P3RoaXMudHlwZS5zcGVjLmxlYWZUZXh0KHRoaXMpOnRoaXMudGV4dEJldHdlZW4oMCx0aGlzLmNvbnRlbnQuc2l6ZSwiIil9dGV4dEJldHdlZW4oZSxyLGEscyl7cmV0dXJuIHRoaXMuY29udGVudC50ZXh0QmV0d2VlbihlLHIsYSxzKX1nZXQgZmlyc3RDaGlsZCgpe3JldHVybiB0aGlzLmNvbnRlbnQuZmlyc3RDaGlsZH1nZXQgbGFzdENoaWxkKCl7cmV0dXJuIHRoaXMuY29udGVudC5sYXN0Q2hpbGR9ZXEoZSl7cmV0dXJuIHRoaXM9PWV8fHRoaXMuc2FtZU1hcmt1cChlKSYmdGhpcy5jb250ZW50LmVxKGUuY29udGVudCl9c2FtZU1hcmt1cChlKXtyZXR1cm4gdGhpcy5oYXNNYXJrdXAoZS50eXBlLGUuYXR0cnMsZS5tYXJrcyl9aGFzTWFya3VwKGUscixhKXtyZXR1cm4gdGhpcy50eXBlPT1lJiZoZmUodGhpcy5hdHRycyxyfHxlLmRlZmF1bHRBdHRyc3x8ZklhKSYmaGEuc2FtZVNldCh0aGlzLm1hcmtzLGF8fGhhLm5vbmUpfWNvcHkoZT1udWxsKXtyZXR1cm4gZT09dGhpcy5jb250ZW50P3RoaXM6bmV3IHQodGhpcy50eXBlLHRoaXMuYXR0cnMsZSx0aGlzLm1hcmtzKX1tYXJrKGUpe3JldHVybiBlPT10aGlzLm1hcmtzP3RoaXM6bmV3IHQodGhpcy50eXBlLHRoaXMuYXR0cnMsdGhpcy5jb250ZW50LGUpfWN1dChlLHI9dGhpcy5jb250ZW50LnNpemUpe3JldHVybiBlPT0wJiZyPT10aGlzLmNvbnRlbnQuc2l6ZT90aGlzOnRoaXMuY29weSh0aGlzLmNvbnRlbnQuY3V0KGUscikpfXNsaWNlKGUscj10aGlzLmNvbnRlbnQuc2l6ZSxhPSExKXtpZihlPT1yKXJldHVybiBtdC5lbXB0eTtsZXQgcz10aGlzLnJlc29sdmUoZSksbj10aGlzLnJlc29sdmUociksbz1hPzA6cy5zaGFyZWREZXB0aChyKSxsPXMuc3RhcnQobyksZD1zLm5vZGUobykuY29udGVudC5jdXQocy5wb3MtbCxuLnBvcy1sKTtyZXR1cm4gbmV3IG10KGQscy5kZXB0aC1vLG4uZGVwdGgtbyl9cmVwbGFjZShlLHIsYSl7cmV0dXJuIGRJYSh0aGlzLnJlc29sdmUoZSksdGhpcy5yZXNvbHZlKHIpLGEpfW5vZGVBdChlKXtmb3IobGV0IHI9dGhpczs7KXtsZXR7aW5kZXg6YSxvZmZzZXQ6c309ci5jb250ZW50LmZpbmRJbmRleChlKTtpZihyPXIubWF5YmVDaGlsZChhKSwhcilyZXR1cm4gbnVsbDtpZihzPT1lfHxyLmlzVGV4dClyZXR1cm4gcjtlLT1zKzF9fWNoaWxkQWZ0ZXIoZSl7bGV0e2luZGV4OnIsb2Zmc2V0OmF9PXRoaXMuY29udGVudC5maW5kSW5kZXgoZSk7cmV0dXJue25vZGU6dGhpcy5jb250ZW50Lm1heWJlQ2hpbGQociksaW5kZXg6cixvZmZzZXQ6YX19Y2hpbGRCZWZvcmUoZSl7aWYoZT09MClyZXR1cm57bm9kZTpudWxsLGluZGV4OjAsb2Zmc2V0OjB9O2xldHtpbmRleDpyLG9mZnNldDphfT10aGlzLmNvbnRlbnQuZmluZEluZGV4KGUpO2lmKGE8ZSlyZXR1cm57bm9kZTp0aGlzLmNvbnRlbnQuY2hpbGQociksaW5kZXg6cixvZmZzZXQ6YX07bGV0IHM9dGhpcy5jb250ZW50LmNoaWxkKHItMSk7cmV0dXJue25vZGU6cyxpbmRleDpyLTEsb2Zmc2V0OmEtcy5ub2RlU2l6ZX19cmVzb2x2ZShlKXtyZXR1cm4gTXRlLnJlc29sdmVDYWNoZWQodGhpcyxlKX1yZXNvbHZlTm9DYWNoZShlKXtyZXR1cm4gTXRlLnJlc29sdmUodGhpcyxlKX1yYW5nZUhhc01hcmsoZSxyLGEpe2xldCBzPSExO3JldHVybiByPmUmJnRoaXMubm9kZXNCZXR3ZWVuKGUscixuPT4oYS5pc0luU2V0KG4ubWFya3MpJiYocz0hMCksIXMpKSxzfWdldCBpc0Jsb2NrKCl7cmV0dXJuIHRoaXMudHlwZS5pc0Jsb2NrfWdldCBpc1RleHRibG9jaygpe3JldHVybiB0aGlzLnR5cGUuaXNUZXh0YmxvY2t9Z2V0IGlubGluZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy50eXBlLmlubGluZUNvbnRlbnR9Z2V0IGlzSW5saW5lKCl7cmV0dXJuIHRoaXMudHlwZS5pc0lubGluZX1nZXQgaXNUZXh0KCl7cmV0dXJuIHRoaXMudHlwZS5pc1RleHR9Z2V0IGlzTGVhZigpe3JldHVybiB0aGlzLnR5cGUuaXNMZWFmfWdldCBpc0F0b20oKXtyZXR1cm4gdGhpcy50eXBlLmlzQXRvbX10b1N0cmluZygpe2lmKHRoaXMudHlwZS5zcGVjLnRvRGVidWdTdHJpbmcpcmV0dXJuIHRoaXMudHlwZS5zcGVjLnRvRGVidWdTdHJpbmcodGhpcyk7bGV0IGU9dGhpcy50eXBlLm5hbWU7cmV0dXJuIHRoaXMuY29udGVudC5zaXplJiYoZSs9IigiK3RoaXMuY29udGVudC50b1N0cmluZ0lubmVyKCkrIikiKSxqVXIodGhpcy5tYXJrcyxlKX1jb250ZW50TWF0Y2hBdChlKXtsZXQgcj10aGlzLnR5cGUuY29udGVudE1hdGNoLm1hdGNoRnJhZ21lbnQodGhpcy5jb250ZW50LDAsZSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgY29udGVudE1hdGNoQXQgb24gYSBub2RlIHdpdGggaW52YWxpZCBjb250ZW50Iik7cmV0dXJuIHJ9Y2FuUmVwbGFjZShlLHIsYT1KZS5lbXB0eSxzPTAsbj1hLmNoaWxkQ291bnQpe2xldCBvPXRoaXMuY29udGVudE1hdGNoQXQoZSkubWF0Y2hGcmFnbWVudChhLHMsbiksbD1vJiZvLm1hdGNoRnJhZ21lbnQodGhpcy5jb250ZW50LHIpO2lmKCFsfHwhbC52YWxpZEVuZClyZXR1cm4hMTtmb3IobGV0IGM9cztjPG47YysrKWlmKCF0aGlzLnR5cGUuYWxsb3dzTWFya3MoYS5jaGlsZChjKS5tYXJrcykpcmV0dXJuITE7cmV0dXJuITB9Y2FuUmVwbGFjZVdpdGgoZSxyLGEscyl7aWYocyYmIXRoaXMudHlwZS5hbGxvd3NNYXJrcyhzKSlyZXR1cm4hMTtsZXQgbj10aGlzLmNvbnRlbnRNYXRjaEF0KGUpLm1hdGNoVHlwZShhKSxvPW4mJm4ubWF0Y2hGcmFnbWVudCh0aGlzLmNvbnRlbnQscik7cmV0dXJuIG8/by52YWxpZEVuZDohMX1jYW5BcHBlbmQoZSl7cmV0dXJuIGUuY29udGVudC5zaXplP3RoaXMuY2FuUmVwbGFjZSh0aGlzLmNoaWxkQ291bnQsdGhpcy5jaGlsZENvdW50LGUuY29udGVudCk6dGhpcy50eXBlLmNvbXBhdGlibGVDb250ZW50KGUudHlwZSl9Y2hlY2soKXt0aGlzLnR5cGUuY2hlY2tDb250ZW50KHRoaXMuY29udGVudCksdGhpcy50eXBlLmNoZWNrQXR0cnModGhpcy5hdHRycyk7bGV0IGU9aGEubm9uZTtmb3IobGV0IHI9MDtyPHRoaXMubWFya3MubGVuZ3RoO3IrKyl7bGV0IGE9dGhpcy5tYXJrc1tyXTthLnR5cGUuY2hlY2tBdHRycyhhLmF0dHJzKSxlPWEuYWRkVG9TZXQoZSl9aWYoIWhhLnNhbWVTZXQoZSx0aGlzLm1hcmtzKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YWxpZCBjb2xsZWN0aW9uIG9mIG1hcmtzIGZvciBub2RlICR7dGhpcy50eXBlLm5hbWV9OiAke3RoaXMubWFya3MubWFwKHI9PnIudHlwZS5uYW1lKX1gKTt0aGlzLmNvbnRlbnQuZm9yRWFjaChyPT5yLmNoZWNrKCkpfXRvSlNPTigpe2xldCBlPXt0eXBlOnRoaXMudHlwZS5uYW1lfTtmb3IobGV0IHIgaW4gdGhpcy5hdHRycyl7ZS5hdHRycz10aGlzLmF0dHJzO2JyZWFrfXJldHVybiB0aGlzLmNvbnRlbnQuc2l6ZSYmKGUuY29udGVudD10aGlzLmNvbnRlbnQudG9KU09OKCkpLHRoaXMubWFya3MubGVuZ3RoJiYoZS5tYXJrcz10aGlzLm1hcmtzLm1hcChyPT5yLnRvSlNPTigpKSksZX1zdGF0aWMgZnJvbUpTT04oZSxyKXtpZighcil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBpbnB1dCBmb3IgTm9kZS5mcm9tSlNPTiIpO2xldCBhO2lmKHIubWFya3Mpe2lmKCFBcnJheS5pc0FycmF5KHIubWFya3MpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIG1hcmsgZGF0YSBmb3IgTm9kZS5mcm9tSlNPTiIpO2E9ci5tYXJrcy5tYXAoZS5tYXJrRnJvbUpTT04pfWlmKHIudHlwZT09InRleHQiKXtpZih0eXBlb2Ygci50ZXh0IT0ic3RyaW5nIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0ZXh0IG5vZGUgaW4gSlNPTiIpO3JldHVybiBlLnRleHQoci50ZXh0LGEpfWxldCBzPUplLmZyb21KU09OKGUsci5jb250ZW50KSxuPWUubm9kZVR5cGUoci50eXBlKS5jcmVhdGUoci5hdHRycyxzLGEpO3JldHVybiBuLnR5cGUuY2hlY2tBdHRycyhuLmF0dHJzKSxufX07cW8ucHJvdG90eXBlLnRleHQ9dm9pZCAwO2RtdD1jbGFzcyB0IGV4dGVuZHMgcW97c3RhdGlje2kodGhpcywiVGV4dE5vZGUiKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXtpZihzdXBlcihlLHIsbnVsbCxzKSwhYSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRW1wdHkgdGV4dCBub2RlcyBhcmUgbm90IGFsbG93ZWQiKTt0aGlzLnRleHQ9YX10b1N0cmluZygpe3JldHVybiB0aGlzLnR5cGUuc3BlYy50b0RlYnVnU3RyaW5nP3RoaXMudHlwZS5zcGVjLnRvRGVidWdTdHJpbmcodGhpcyk6alVyKHRoaXMubWFya3MsSlNPTi5zdHJpbmdpZnkodGhpcy50ZXh0KSl9Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMudGV4dH10ZXh0QmV0d2VlbihlLHIpe3JldHVybiB0aGlzLnRleHQuc2xpY2UoZSxyKX1nZXQgbm9kZVNpemUoKXtyZXR1cm4gdGhpcy50ZXh0Lmxlbmd0aH1tYXJrKGUpe3JldHVybiBlPT10aGlzLm1hcmtzP3RoaXM6bmV3IHQodGhpcy50eXBlLHRoaXMuYXR0cnMsdGhpcy50ZXh0LGUpfXdpdGhUZXh0KGUpe3JldHVybiBlPT10aGlzLnRleHQ/dGhpczpuZXcgdCh0aGlzLnR5cGUsdGhpcy5hdHRycyxlLHRoaXMubWFya3MpfWN1dChlPTAscj10aGlzLnRleHQubGVuZ3RoKXtyZXR1cm4gZT09MCYmcj09dGhpcy50ZXh0Lmxlbmd0aD90aGlzOnRoaXMud2l0aFRleHQodGhpcy50ZXh0LnNsaWNlKGUscikpfWVxKGUpe3JldHVybiB0aGlzLnNhbWVNYXJrdXAoZSkmJnRoaXMudGV4dD09ZS50ZXh0fXRvSlNPTigpe2xldCBlPXN1cGVyLnRvSlNPTigpO3JldHVybiBlLnRleHQ9dGhpcy50ZXh0LGV9fTtpKGpVciwid3JhcE1hcmtzIik7SHA9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJDb250ZW50TWF0Y2giKX1jb25zdHJ1Y3RvcihlKXt0aGlzLnZhbGlkRW5kPWUsdGhpcy5uZXh0PVtdLHRoaXMud3JhcENhY2hlPVtdfXN0YXRpYyBwYXJzZShlLHIpe2xldCBhPW5ldyB1bXQoZSxyKTtpZihhLm5leHQ9PW51bGwpcmV0dXJuIHQuZW1wdHk7bGV0IHM9VVVyKGEpO2EubmV4dCYmYS5lcnIoIlVuZXhwZWN0ZWQgdHJhaWxpbmcgdGV4dCIpO2xldCBuPXlJYSh2SWEocykpO3JldHVybiB3SWEobixhKSxufW1hdGNoVHlwZShlKXtmb3IobGV0IHI9MDtyPHRoaXMubmV4dC5sZW5ndGg7cisrKWlmKHRoaXMubmV4dFtyXS50eXBlPT1lKXJldHVybiB0aGlzLm5leHRbcl0ubmV4dDtyZXR1cm4gbnVsbH1tYXRjaEZyYWdtZW50KGUscj0wLGE9ZS5jaGlsZENvdW50KXtsZXQgcz10aGlzO2ZvcihsZXQgbj1yO3MmJm48YTtuKyspcz1zLm1hdGNoVHlwZShlLmNoaWxkKG4pLnR5cGUpO3JldHVybiBzfWdldCBpbmxpbmVDb250ZW50KCl7cmV0dXJuIHRoaXMubmV4dC5sZW5ndGghPTAmJnRoaXMubmV4dFswXS50eXBlLmlzSW5saW5lfWdldCBkZWZhdWx0VHlwZSgpe2ZvcihsZXQgZT0wO2U8dGhpcy5uZXh0Lmxlbmd0aDtlKyspe2xldHt0eXBlOnJ9PXRoaXMubmV4dFtlXTtpZighKHIuaXNUZXh0fHxyLmhhc1JlcXVpcmVkQXR0cnMoKSkpcmV0dXJuIHJ9cmV0dXJuIG51bGx9Y29tcGF0aWJsZShlKXtmb3IobGV0IHI9MDtyPHRoaXMubmV4dC5sZW5ndGg7cisrKWZvcihsZXQgYT0wO2E8ZS5uZXh0Lmxlbmd0aDthKyspaWYodGhpcy5uZXh0W3JdLnR5cGU9PWUubmV4dFthXS50eXBlKXJldHVybiEwO3JldHVybiExfWZpbGxCZWZvcmUoZSxyPSExLGE9MCl7bGV0IHM9W3RoaXNdO2Z1bmN0aW9uIG4obyxsKXtsZXQgYz1vLm1hdGNoRnJhZ21lbnQoZSxhKTtpZihjJiYoIXJ8fGMudmFsaWRFbmQpKXJldHVybiBKZS5mcm9tKGwubWFwKGQ9PmQuY3JlYXRlQW5kRmlsbCgpKSk7Zm9yKGxldCBkPTA7ZDxvLm5leHQubGVuZ3RoO2QrKyl7bGV0e3R5cGU6ZixuZXh0OnB9PW8ubmV4dFtkXTtpZighKGYuaXNUZXh0fHxmLmhhc1JlcXVpcmVkQXR0cnMoKSkmJnMuaW5kZXhPZihwKT09LTEpe3MucHVzaChwKTtsZXQgaD1uKHAsbC5jb25jYXQoZikpO2lmKGgpcmV0dXJuIGh9fXJldHVybiBudWxsfXJldHVybiBpKG4sInNlYXJjaCIpLG4odGhpcyxbXSl9ZmluZFdyYXBwaW5nKGUpe2ZvcihsZXQgYT0wO2E8dGhpcy53cmFwQ2FjaGUubGVuZ3RoO2ErPTIpaWYodGhpcy53cmFwQ2FjaGVbYV09PWUpcmV0dXJuIHRoaXMud3JhcENhY2hlW2ErMV07bGV0IHI9dGhpcy5jb21wdXRlV3JhcHBpbmcoZSk7cmV0dXJuIHRoaXMud3JhcENhY2hlLnB1c2goZSxyKSxyfWNvbXB1dGVXcmFwcGluZyhlKXtsZXQgcj1PYmplY3QuY3JlYXRlKG51bGwpLGE9W3ttYXRjaDp0aGlzLHR5cGU6bnVsbCx2aWE6bnVsbH1dO2Zvcig7YS5sZW5ndGg7KXtsZXQgcz1hLnNoaWZ0KCksbj1zLm1hdGNoO2lmKG4ubWF0Y2hUeXBlKGUpKXtsZXQgbz1bXTtmb3IobGV0IGw9cztsLnR5cGU7bD1sLnZpYSlvLnB1c2gobC50eXBlKTtyZXR1cm4gby5yZXZlcnNlKCl9Zm9yKGxldCBvPTA7bzxuLm5leHQubGVuZ3RoO28rKyl7bGV0e3R5cGU6bCxuZXh0OmN9PW4ubmV4dFtvXTshbC5pc0xlYWYmJiFsLmhhc1JlcXVpcmVkQXR0cnMoKSYmIShsLm5hbWUgaW4gcikmJighcy50eXBlfHxjLnZhbGlkRW5kKSYmKGEucHVzaCh7bWF0Y2g6bC5jb250ZW50TWF0Y2gsdHlwZTpsLHZpYTpzfSkscltsLm5hbWVdPSEwKX19cmV0dXJuIG51bGx9Z2V0IGVkZ2VDb3VudCgpe3JldHVybiB0aGlzLm5leHQubGVuZ3RofWVkZ2UoZSl7aWYoZT49dGhpcy5uZXh0Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVGhlcmUncyBubyAke2V9dGggZWRnZSBpbiB0aGlzIGNvbnRlbnQgbWF0Y2hgKTtyZXR1cm4gdGhpcy5uZXh0W2VdfXRvU3RyaW5nKCl7bGV0IGU9W107ZnVuY3Rpb24gcihhKXtlLnB1c2goYSk7Zm9yKGxldCBzPTA7czxhLm5leHQubGVuZ3RoO3MrKyllLmluZGV4T2YoYS5uZXh0W3NdLm5leHQpPT0tMSYmcihhLm5leHRbc10ubmV4dCl9cmV0dXJuIGkociwic2NhbiIpLHIodGhpcyksZS5tYXAoKGEscyk9PntsZXQgbj1zKyhhLnZhbGlkRW5kPyIqIjoiICIpKyIgIjtmb3IobGV0IG89MDtvPGEubmV4dC5sZW5ndGg7bysrKW4rPShvPyIsICI6IiIpK2EubmV4dFtvXS50eXBlLm5hbWUrIi0+IitlLmluZGV4T2YoYS5uZXh0W29dLm5leHQpO3JldHVybiBufSkuam9pbihgCmApfX07SHAuZW1wdHk9bmV3IEhwKCEwKTt1bXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiVG9rZW5TdHJlYW0iKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc3RyaW5nPWUsdGhpcy5ub2RlVHlwZXM9cix0aGlzLmlubGluZT1udWxsLHRoaXMucG9zPTAsdGhpcy50b2tlbnM9ZS5zcGxpdCgvXHMqKD89XGJ8XFd8JCkvKSx0aGlzLnRva2Vuc1t0aGlzLnRva2Vucy5sZW5ndGgtMV09PSIiJiZ0aGlzLnRva2Vucy5wb3AoKSx0aGlzLnRva2Vuc1swXT09IiImJnRoaXMudG9rZW5zLnNoaWZ0KCl9Z2V0IG5leHQoKXtyZXR1cm4gdGhpcy50b2tlbnNbdGhpcy5wb3NdfWVhdChlKXtyZXR1cm4gdGhpcy5uZXh0PT1lJiYodGhpcy5wb3MrK3x8ITApfWVycihlKXt0aHJvdyBuZXcgU3ludGF4RXJyb3IoZSsiIChpbiBjb250ZW50IGV4cHJlc3Npb24gJyIrdGhpcy5zdHJpbmcrIicpIil9fTtpKFVVciwicGFyc2VFeHByIik7aShoSWEsInBhcnNlRXhwclNlcSIpO2kobUlhLCJwYXJzZUV4cHJTdWJzY3JpcHQiKTtpKFdVciwicGFyc2VOdW0iKTtpKGdJYSwicGFyc2VFeHByUmFuZ2UiKTtpKGJJYSwicmVzb2x2ZU5hbWUiKTtpKHhJYSwicGFyc2VFeHByQXRvbSIpO2kodklhLCJuZmEiKTtpKEdVciwiY21wIik7aShZVXIsIm51bGxGcm9tIik7aSh5SWEsImRmYSIpO2kod0lhLCJjaGVja0ZvckRlYWRFbmRzIik7aShLVXIsImRlZmF1bHRBdHRycyIpO2koWlVyLCJjb21wdXRlQXR0cnMiKTtpKFFVciwiY2hlY2tBdHRycyIpO2koWFVyLCJpbml0QXR0cnMiKTtDdGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJOb2RlVHlwZSIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLm5hbWU9ZSx0aGlzLnNjaGVtYT1yLHRoaXMuc3BlYz1hLHRoaXMubWFya1NldD1udWxsLHRoaXMuZ3JvdXBzPWEuZ3JvdXA/YS5ncm91cC5zcGxpdCgiICIpOltdLHRoaXMuYXR0cnM9WFVyKGUsYS5hdHRycyksdGhpcy5kZWZhdWx0QXR0cnM9S1VyKHRoaXMuYXR0cnMpLHRoaXMuY29udGVudE1hdGNoPW51bGwsdGhpcy5pbmxpbmVDb250ZW50PW51bGwsdGhpcy5pc0Jsb2NrPSEoYS5pbmxpbmV8fGU9PSJ0ZXh0IiksdGhpcy5pc1RleHQ9ZT09InRleHQifWdldCBpc0lubGluZSgpe3JldHVybiF0aGlzLmlzQmxvY2t9Z2V0IGlzVGV4dGJsb2NrKCl7cmV0dXJuIHRoaXMuaXNCbG9jayYmdGhpcy5pbmxpbmVDb250ZW50fWdldCBpc0xlYWYoKXtyZXR1cm4gdGhpcy5jb250ZW50TWF0Y2g9PUhwLmVtcHR5fWdldCBpc0F0b20oKXtyZXR1cm4gdGhpcy5pc0xlYWZ8fCEhdGhpcy5zcGVjLmF0b219aXNJbkdyb3VwKGUpe3JldHVybiB0aGlzLmdyb3Vwcy5pbmRleE9mKGUpPi0xfWdldCB3aGl0ZXNwYWNlKCl7cmV0dXJuIHRoaXMuc3BlYy53aGl0ZXNwYWNlfHwodGhpcy5zcGVjLmNvZGU/InByZSI6Im5vcm1hbCIpfWhhc1JlcXVpcmVkQXR0cnMoKXtmb3IobGV0IGUgaW4gdGhpcy5hdHRycylpZih0aGlzLmF0dHJzW2VdLmlzUmVxdWlyZWQpcmV0dXJuITA7cmV0dXJuITF9Y29tcGF0aWJsZUNvbnRlbnQoZSl7cmV0dXJuIHRoaXM9PWV8fHRoaXMuY29udGVudE1hdGNoLmNvbXBhdGlibGUoZS5jb250ZW50TWF0Y2gpfWNvbXB1dGVBdHRycyhlKXtyZXR1cm4hZSYmdGhpcy5kZWZhdWx0QXR0cnM/dGhpcy5kZWZhdWx0QXR0cnM6WlVyKHRoaXMuYXR0cnMsZSl9Y3JlYXRlKGU9bnVsbCxyLGEpe2lmKHRoaXMuaXNUZXh0KXRocm93IG5ldyBFcnJvcigiTm9kZVR5cGUuY3JlYXRlIGNhbid0IGNvbnN0cnVjdCB0ZXh0IG5vZGVzIik7cmV0dXJuIG5ldyBxbyh0aGlzLHRoaXMuY29tcHV0ZUF0dHJzKGUpLEplLmZyb20ociksaGEuc2V0RnJvbShhKSl9Y3JlYXRlQ2hlY2tlZChlPW51bGwscixhKXtyZXR1cm4gcj1KZS5mcm9tKHIpLHRoaXMuY2hlY2tDb250ZW50KHIpLG5ldyBxbyh0aGlzLHRoaXMuY29tcHV0ZUF0dHJzKGUpLHIsaGEuc2V0RnJvbShhKSl9Y3JlYXRlQW5kRmlsbChlPW51bGwscixhKXtpZihlPXRoaXMuY29tcHV0ZUF0dHJzKGUpLHI9SmUuZnJvbShyKSxyLnNpemUpe2xldCBvPXRoaXMuY29udGVudE1hdGNoLmZpbGxCZWZvcmUocik7aWYoIW8pcmV0dXJuIG51bGw7cj1vLmFwcGVuZChyKX1sZXQgcz10aGlzLmNvbnRlbnRNYXRjaC5tYXRjaEZyYWdtZW50KHIpLG49cyYmcy5maWxsQmVmb3JlKEplLmVtcHR5LCEwKTtyZXR1cm4gbj9uZXcgcW8odGhpcyxlLHIuYXBwZW5kKG4pLGhhLnNldEZyb20oYSkpOm51bGx9dmFsaWRDb250ZW50KGUpe2xldCByPXRoaXMuY29udGVudE1hdGNoLm1hdGNoRnJhZ21lbnQoZSk7aWYoIXJ8fCFyLnZhbGlkRW5kKXJldHVybiExO2ZvcihsZXQgYT0wO2E8ZS5jaGlsZENvdW50O2ErKylpZighdGhpcy5hbGxvd3NNYXJrcyhlLmNoaWxkKGEpLm1hcmtzKSlyZXR1cm4hMTtyZXR1cm4hMH1jaGVja0NvbnRlbnQoZSl7aWYoIXRoaXMudmFsaWRDb250ZW50KGUpKXRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhbGlkIGNvbnRlbnQgZm9yIG5vZGUgJHt0aGlzLm5hbWV9OiAke2UudG9TdHJpbmcoKS5zbGljZSgwLDUwKX1gKX1jaGVja0F0dHJzKGUpe1FVcih0aGlzLmF0dHJzLGUsIm5vZGUiLHRoaXMubmFtZSl9YWxsb3dzTWFya1R5cGUoZSl7cmV0dXJuIHRoaXMubWFya1NldD09bnVsbHx8dGhpcy5tYXJrU2V0LmluZGV4T2YoZSk+LTF9YWxsb3dzTWFya3MoZSl7aWYodGhpcy5tYXJrU2V0PT1udWxsKXJldHVybiEwO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKCF0aGlzLmFsbG93c01hcmtUeXBlKGVbcl0udHlwZSkpcmV0dXJuITE7cmV0dXJuITB9YWxsb3dlZE1hcmtzKGUpe2lmKHRoaXMubWFya1NldD09bnVsbClyZXR1cm4gZTtsZXQgcjtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKyl0aGlzLmFsbG93c01hcmtUeXBlKGVbYV0udHlwZSk/ciYmci5wdXNoKGVbYV0pOnJ8fChyPWUuc2xpY2UoMCxhKSk7cmV0dXJuIHI/ci5sZW5ndGg/cjpoYS5ub25lOmV9c3RhdGljIGNvbXBpbGUoZSxyKXtsZXQgYT1PYmplY3QuY3JlYXRlKG51bGwpO2UuZm9yRWFjaCgobixvKT0+YVtuXT1uZXcgdChuLHIsbykpO2xldCBzPXIuc3BlYy50b3BOb2RlfHwiZG9jIjtpZighYVtzXSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiU2NoZW1hIGlzIG1pc3NpbmcgaXRzIHRvcCBub2RlIHR5cGUgKCciK3MrIicpIik7aWYoIWEudGV4dCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRXZlcnkgc2NoZW1hIG5lZWRzIGEgJ3RleHQnIHR5cGUiKTtmb3IobGV0IG4gaW4gYS50ZXh0LmF0dHJzKXRocm93IG5ldyBSYW5nZUVycm9yKCJUaGUgdGV4dCBub2RlIHR5cGUgc2hvdWxkIG5vdCBoYXZlIGF0dHJpYnV0ZXMiKTtyZXR1cm4gYX19O2koa0lhLCJ2YWxpZGF0ZVR5cGUiKTtwbXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiQXR0cmlidXRlIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuaGFzRGVmYXVsdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwiZGVmYXVsdCIpLHRoaXMuZGVmYXVsdD1hLmRlZmF1bHQsdGhpcy52YWxpZGF0ZT10eXBlb2YgYS52YWxpZGF0ZT09InN0cmluZyI/a0lhKGUscixhLnZhbGlkYXRlKTphLnZhbGlkYXRlfWdldCBpc1JlcXVpcmVkKCl7cmV0dXJuIXRoaXMuaGFzRGVmYXVsdH19LFd5PWNsYXNzIHR7c3RhdGlje2kodGhpcywiTWFya1R5cGUiKX1jb25zdHJ1Y3RvcihlLHIsYSxzKXt0aGlzLm5hbWU9ZSx0aGlzLnJhbms9cix0aGlzLnNjaGVtYT1hLHRoaXMuc3BlYz1zLHRoaXMuYXR0cnM9WFVyKGUscy5hdHRycyksdGhpcy5leGNsdWRlZD1udWxsO2xldCBuPUtVcih0aGlzLmF0dHJzKTt0aGlzLmluc3RhbmNlPW4/bmV3IGhhKHRoaXMsbik6bnVsbH1jcmVhdGUoZT1udWxsKXtyZXR1cm4hZSYmdGhpcy5pbnN0YW5jZT90aGlzLmluc3RhbmNlOm5ldyBoYSh0aGlzLFpVcih0aGlzLmF0dHJzLGUpKX1zdGF0aWMgY29tcGlsZShlLHIpe2xldCBhPU9iamVjdC5jcmVhdGUobnVsbCkscz0wO3JldHVybiBlLmZvckVhY2goKG4sbyk9PmFbbl09bmV3IHQobixzKysscixvKSksYX1yZW1vdmVGcm9tU2V0KGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWVbcl0udHlwZT09dGhpcyYmKGU9ZS5zbGljZSgwLHIpLmNvbmNhdChlLnNsaWNlKHIrMSkpLHItLSk7cmV0dXJuIGV9aXNJblNldChlKXtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKylpZihlW3JdLnR5cGU9PXRoaXMpcmV0dXJuIGVbcl19Y2hlY2tBdHRycyhlKXtRVXIodGhpcy5hdHRycyxlLCJtYXJrIix0aGlzLm5hbWUpfWV4Y2x1ZGVzKGUpe3JldHVybiB0aGlzLmV4Y2x1ZGVkLmluZGV4T2YoZSk+LTF9fSxHeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTY2hlbWEiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmxpbmVicmVha1JlcGxhY2VtZW50PW51bGwsdGhpcy5jYWNoZWQ9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgcj10aGlzLnNwZWM9e307Zm9yKGxldCBzIGluIGUpcltzXT1lW3NdO3Iubm9kZXM9bm10LmZyb20oZS5ub2Rlcyksci5tYXJrcz1ubXQuZnJvbShlLm1hcmtzfHx7fSksdGhpcy5ub2Rlcz1DdGUuY29tcGlsZSh0aGlzLnNwZWMubm9kZXMsdGhpcyksdGhpcy5tYXJrcz1XeS5jb21waWxlKHRoaXMuc3BlYy5tYXJrcyx0aGlzKTtsZXQgYT1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgcyBpbiB0aGlzLm5vZGVzKXtpZihzIGluIHRoaXMubWFya3MpdGhyb3cgbmV3IFJhbmdlRXJyb3IocysiIGNhbiBub3QgYmUgYm90aCBhIG5vZGUgYW5kIGEgbWFyayIpO2xldCBuPXRoaXMubm9kZXNbc10sbz1uLnNwZWMuY29udGVudHx8IiIsbD1uLnNwZWMubWFya3M7aWYobi5jb250ZW50TWF0Y2g9YVtvXXx8KGFbb109SHAucGFyc2Uobyx0aGlzLm5vZGVzKSksbi5pbmxpbmVDb250ZW50PW4uY29udGVudE1hdGNoLmlubGluZUNvbnRlbnQsbi5zcGVjLmxpbmVicmVha1JlcGxhY2VtZW50KXtpZih0aGlzLmxpbmVicmVha1JlcGxhY2VtZW50KXRocm93IG5ldyBSYW5nZUVycm9yKCJNdWx0aXBsZSBsaW5lYnJlYWsgbm9kZXMgZGVmaW5lZCIpO2lmKCFuLmlzSW5saW5lfHwhbi5pc0xlYWYpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkxpbmVicmVhayByZXBsYWNlbWVudCBub2RlcyBtdXN0IGJlIGlubGluZSBsZWFmIG5vZGVzIik7dGhpcy5saW5lYnJlYWtSZXBsYWNlbWVudD1ufW4ubWFya1NldD1sPT0iXyI/bnVsbDpsP0pVcih0aGlzLGwuc3BsaXQoIiAiKSk6bD09IiJ8fCFuLmlubGluZUNvbnRlbnQ/W106bnVsbH1mb3IobGV0IHMgaW4gdGhpcy5tYXJrcyl7bGV0IG49dGhpcy5tYXJrc1tzXSxvPW4uc3BlYy5leGNsdWRlcztuLmV4Y2x1ZGVkPW89PW51bGw/W25dOm89PSIiP1tdOkpVcih0aGlzLG8uc3BsaXQoIiAiKSl9dGhpcy5ub2RlRnJvbUpTT049cz0+cW8uZnJvbUpTT04odGhpcyxzKSx0aGlzLm1hcmtGcm9tSlNPTj1zPT5oYS5mcm9tSlNPTih0aGlzLHMpLHRoaXMudG9wTm9kZVR5cGU9dGhpcy5ub2Rlc1t0aGlzLnNwZWMudG9wTm9kZXx8ImRvYyJdLHRoaXMuY2FjaGVkLndyYXBwaW5ncz1PYmplY3QuY3JlYXRlKG51bGwpfW5vZGUoZSxyPW51bGwsYSxzKXtpZih0eXBlb2YgZT09InN0cmluZyIpZT10aGlzLm5vZGVUeXBlKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEN0ZSl7aWYoZS5zY2hlbWEhPXRoaXMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vZGUgdHlwZSBmcm9tIGRpZmZlcmVudCBzY2hlbWEgdXNlZCAoIitlLm5hbWUrIikiKX1lbHNlIHRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIG5vZGUgdHlwZTogIitlKTtyZXR1cm4gZS5jcmVhdGVDaGVja2VkKHIsYSxzKX10ZXh0KGUscil7bGV0IGE9dGhpcy5ub2Rlcy50ZXh0O3JldHVybiBuZXcgZG10KGEsYS5kZWZhdWx0QXR0cnMsZSxoYS5zZXRGcm9tKHIpKX1tYXJrKGUscil7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIiYmKGU9dGhpcy5tYXJrc1tlXSksZS5jcmVhdGUocil9bm9kZVR5cGUoZSl7bGV0IHI9dGhpcy5ub2Rlc1tlXTtpZighcil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVW5rbm93biBub2RlIHR5cGU6ICIrZSk7cmV0dXJuIHJ9fTtpKEpVciwiZ2F0aGVyTWFya3MiKTtpKFNJYSwiaXNUYWdSdWxlIik7aShNSWEsImlzU3R5bGVSdWxlIik7eWM9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJET01QYXJzZXIiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc2NoZW1hPWUsdGhpcy5ydWxlcz1yLHRoaXMudGFncz1bXSx0aGlzLnN0eWxlcz1bXTtsZXQgYT10aGlzLm1hdGNoZWRTdHlsZXM9W107ci5mb3JFYWNoKHM9PntpZihTSWEocykpdGhpcy50YWdzLnB1c2gocyk7ZWxzZSBpZihNSWEocykpe2xldCBuPS9bXj1dKi8uZXhlYyhzLnN0eWxlKVswXTthLmluZGV4T2Yobik8MCYmYS5wdXNoKG4pLHRoaXMuc3R5bGVzLnB1c2gocyl9fSksdGhpcy5ub3JtYWxpemVMaXN0cz0hdGhpcy50YWdzLnNvbWUocz0+e2lmKCEvXih1bHxvbClcYi8udGVzdChzLnRhZyl8fCFzLm5vZGUpcmV0dXJuITE7bGV0IG49ZS5ub2Rlc1tzLm5vZGVdO3JldHVybiBuLmNvbnRlbnRNYXRjaC5tYXRjaFR5cGUobil9KX1wYXJzZShlLHI9e30pe2xldCBhPW5ldyBnZmUodGhpcyxyLCExKTtyZXR1cm4gYS5hZGRBbGwoZSxoYS5ub25lLHIuZnJvbSxyLnRvKSxhLmZpbmlzaCgpfXBhcnNlU2xpY2UoZSxyPXt9KXtsZXQgYT1uZXcgZ2ZlKHRoaXMsciwhMCk7cmV0dXJuIGEuYWRkQWxsKGUsaGEubm9uZSxyLmZyb20sci50byksbXQubWF4T3BlbihhLmZpbmlzaCgpKX1tYXRjaFRhZyhlLHIsYSl7Zm9yKGxldCBzPWE/dGhpcy50YWdzLmluZGV4T2YoYSkrMTowO3M8dGhpcy50YWdzLmxlbmd0aDtzKyspe2xldCBuPXRoaXMudGFnc1tzXTtpZihfSWEoZSxuLnRhZykmJihuLm5hbWVzcGFjZT09PXZvaWQgMHx8ZS5uYW1lc3BhY2VVUkk9PW4ubmFtZXNwYWNlKSYmKCFuLmNvbnRleHR8fHIubWF0Y2hlc0NvbnRleHQobi5jb250ZXh0KSkpe2lmKG4uZ2V0QXR0cnMpe2xldCBvPW4uZ2V0QXR0cnMoZSk7aWYobz09PSExKWNvbnRpbnVlO24uYXR0cnM9b3x8dm9pZCAwfXJldHVybiBufX19bWF0Y2hTdHlsZShlLHIsYSxzKXtmb3IobGV0IG49cz90aGlzLnN0eWxlcy5pbmRleE9mKHMpKzE6MDtuPHRoaXMuc3R5bGVzLmxlbmd0aDtuKyspe2xldCBvPXRoaXMuc3R5bGVzW25dLGw9by5zdHlsZTtpZighKGwuaW5kZXhPZihlKSE9MHx8by5jb250ZXh0JiYhYS5tYXRjaGVzQ29udGV4dChvLmNvbnRleHQpfHxsLmxlbmd0aD5lLmxlbmd0aCYmKGwuY2hhckNvZGVBdChlLmxlbmd0aCkhPTYxfHxsLnNsaWNlKGUubGVuZ3RoKzEpIT1yKSkpe2lmKG8uZ2V0QXR0cnMpe2xldCBjPW8uZ2V0QXR0cnMocik7aWYoYz09PSExKWNvbnRpbnVlO28uYXR0cnM9Y3x8dm9pZCAwfXJldHVybiBvfX19c3RhdGljIHNjaGVtYVJ1bGVzKGUpe2xldCByPVtdO2Z1bmN0aW9uIGEocyl7bGV0IG49cy5wcmlvcml0eT09bnVsbD81MDpzLnByaW9yaXR5LG89MDtmb3IoO288ci5sZW5ndGg7bysrKXtsZXQgbD1yW29dO2lmKChsLnByaW9yaXR5PT1udWxsPzUwOmwucHJpb3JpdHkpPG4pYnJlYWt9ci5zcGxpY2UobywwLHMpfWkoYSwiaW5zZXJ0Iik7Zm9yKGxldCBzIGluIGUubWFya3Mpe2xldCBuPWUubWFya3Nbc10uc3BlYy5wYXJzZURPTTtuJiZuLmZvckVhY2gobz0+e2Eobz1hV3IobykpLG8ubWFya3x8by5pZ25vcmV8fG8uY2xlYXJNYXJrfHwoby5tYXJrPXMpfSl9Zm9yKGxldCBzIGluIGUubm9kZXMpe2xldCBuPWUubm9kZXNbc10uc3BlYy5wYXJzZURPTTtuJiZuLmZvckVhY2gobz0+e2Eobz1hV3IobykpLG8ubm9kZXx8by5pZ25vcmV8fG8ubWFya3x8KG8ubm9kZT1zKX0pfXJldHVybiByfXN0YXRpYyBmcm9tU2NoZW1hKGUpe3JldHVybiBlLmNhY2hlZC5kb21QYXJzZXJ8fChlLmNhY2hlZC5kb21QYXJzZXI9bmV3IHQoZSx0LnNjaGVtYVJ1bGVzKGUpKSl9fSxlV3I9e2FkZHJlc3M6ITAsYXJ0aWNsZTohMCxhc2lkZTohMCxibG9ja3F1b3RlOiEwLGNhbnZhczohMCxkZDohMCxkaXY6ITAsZGw6ITAsZmllbGRzZXQ6ITAsZmlnY2FwdGlvbjohMCxmaWd1cmU6ITAsZm9vdGVyOiEwLGZvcm06ITAsaDE6ITAsaDI6ITAsaDM6ITAsaDQ6ITAsaDU6ITAsaDY6ITAsaGVhZGVyOiEwLGhncm91cDohMCxocjohMCxsaTohMCxub3NjcmlwdDohMCxvbDohMCxvdXRwdXQ6ITAscDohMCxwcmU6ITAsc2VjdGlvbjohMCx0YWJsZTohMCx0Zm9vdDohMCx1bDohMH0sQ0lhPXtoZWFkOiEwLG5vc2NyaXB0OiEwLG9iamVjdDohMCxzY3JpcHQ6ITAsc3R5bGU6ITAsdGl0bGU6ITB9LHRXcj17b2w6ITAsdWw6ITB9LHp0ZT0xLGZtdD0yLF90ZT00O2kocldyLCJ3c09wdGlvbnNGb3IiKTtVeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJOb2RlQ29udGV4dCIpfWNvbnN0cnVjdG9yKGUscixhLHMsbixvKXt0aGlzLnR5cGU9ZSx0aGlzLmF0dHJzPXIsdGhpcy5tYXJrcz1hLHRoaXMuc29saWQ9cyx0aGlzLm9wdGlvbnM9byx0aGlzLmNvbnRlbnQ9W10sdGhpcy5hY3RpdmVNYXJrcz1oYS5ub25lLHRoaXMubWF0Y2g9bnx8KG8mX3RlP251bGw6ZS5jb250ZW50TWF0Y2gpfWZpbmRXcmFwcGluZyhlKXtpZighdGhpcy5tYXRjaCl7aWYoIXRoaXMudHlwZSlyZXR1cm5bXTtsZXQgcj10aGlzLnR5cGUuY29udGVudE1hdGNoLmZpbGxCZWZvcmUoSmUuZnJvbShlKSk7aWYocil0aGlzLm1hdGNoPXRoaXMudHlwZS5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudChyKTtlbHNle2xldCBhPXRoaXMudHlwZS5jb250ZW50TWF0Y2gscztyZXR1cm4ocz1hLmZpbmRXcmFwcGluZyhlLnR5cGUpKT8odGhpcy5tYXRjaD1hLHMpOm51bGx9fXJldHVybiB0aGlzLm1hdGNoLmZpbmRXcmFwcGluZyhlLnR5cGUpfWZpbmlzaChlKXtpZighKHRoaXMub3B0aW9ucyZ6dGUpKXtsZXQgYT10aGlzLmNvbnRlbnRbdGhpcy5jb250ZW50Lmxlbmd0aC0xXSxzO2lmKGEmJmEuaXNUZXh0JiYocz0vWyBcdFxyXG5cdTAwMGNdKyQvLmV4ZWMoYS50ZXh0KSkpe2xldCBuPWE7YS50ZXh0Lmxlbmd0aD09c1swXS5sZW5ndGg/dGhpcy5jb250ZW50LnBvcCgpOnRoaXMuY29udGVudFt0aGlzLmNvbnRlbnQubGVuZ3RoLTFdPW4ud2l0aFRleHQobi50ZXh0LnNsaWNlKDAsbi50ZXh0Lmxlbmd0aC1zWzBdLmxlbmd0aCkpfX1sZXQgcj1KZS5mcm9tKHRoaXMuY29udGVudCk7cmV0dXJuIWUmJnRoaXMubWF0Y2gmJihyPXIuYXBwZW5kKHRoaXMubWF0Y2guZmlsbEJlZm9yZShKZS5lbXB0eSwhMCkpKSx0aGlzLnR5cGU/dGhpcy50eXBlLmNyZWF0ZSh0aGlzLmF0dHJzLHIsdGhpcy5tYXJrcyk6cn1pbmxpbmVDb250ZXh0KGUpe3JldHVybiB0aGlzLnR5cGU/dGhpcy50eXBlLmlubGluZUNvbnRlbnQ6dGhpcy5jb250ZW50Lmxlbmd0aD90aGlzLmNvbnRlbnRbMF0uaXNJbmxpbmU6ZS5wYXJlbnROb2RlJiYhZVdyLmhhc093blByb3BlcnR5KGUucGFyZW50Tm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKX19LGdmZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQYXJzZUNvbnRleHQiKX1jb25zdHJ1Y3RvcihlLHIsYSl7dGhpcy5wYXJzZXI9ZSx0aGlzLm9wdGlvbnM9cix0aGlzLmlzT3Blbj1hLHRoaXMub3Blbj0wLHRoaXMubG9jYWxQcmVzZXJ2ZVdTPSExO2xldCBzPXIudG9wTm9kZSxuLG89cldyKG51bGwsci5wcmVzZXJ2ZVdoaXRlc3BhY2UsMCl8KGE/X3RlOjApO3M/bj1uZXcgVXkocy50eXBlLHMuYXR0cnMsaGEubm9uZSwhMCxyLnRvcE1hdGNofHxzLnR5cGUuY29udGVudE1hdGNoLG8pOmE/bj1uZXcgVXkobnVsbCxudWxsLGhhLm5vbmUsITAsbnVsbCxvKTpuPW5ldyBVeShlLnNjaGVtYS50b3BOb2RlVHlwZSxudWxsLGhhLm5vbmUsITAsbnVsbCxvKSx0aGlzLm5vZGVzPVtuXSx0aGlzLmZpbmQ9ci5maW5kUG9zaXRpb25zLHRoaXMubmVlZHNCbG9jaz0hMX1nZXQgdG9wKCl7cmV0dXJuIHRoaXMubm9kZXNbdGhpcy5vcGVuXX1hZGRET00oZSxyKXtlLm5vZGVUeXBlPT0zP3RoaXMuYWRkVGV4dE5vZGUoZSxyKTplLm5vZGVUeXBlPT0xJiZ0aGlzLmFkZEVsZW1lbnQoZSxyKX1hZGRUZXh0Tm9kZShlLHIpe2xldCBhPWUubm9kZVZhbHVlLHM9dGhpcy50b3Asbj1zLm9wdGlvbnMmZm10PyJmdWxsIjp0aGlzLmxvY2FsUHJlc2VydmVXU3x8KHMub3B0aW9ucyZ6dGUpPjAse3NjaGVtYTpvfT10aGlzLnBhcnNlcjtpZihuPT09ImZ1bGwifHxzLmlubGluZUNvbnRleHQoZSl8fC9bXiBcdFxyXG5cdTAwMGNdLy50ZXN0KGEpKXtpZihuKWlmKG49PT0iZnVsbCIpYT1hLnJlcGxhY2UoL1xyXG4/L2csYApgKTtlbHNlIGlmKG8ubGluZWJyZWFrUmVwbGFjZW1lbnQmJi9bXHJcbl0vLnRlc3QoYSkmJnRoaXMudG9wLmZpbmRXcmFwcGluZyhvLmxpbmVicmVha1JlcGxhY2VtZW50LmNyZWF0ZSgpKSl7bGV0IGw9YS5zcGxpdCgvXHI/XG58XHIvKTtmb3IobGV0IGM9MDtjPGwubGVuZ3RoO2MrKyljJiZ0aGlzLmluc2VydE5vZGUoby5saW5lYnJlYWtSZXBsYWNlbWVudC5jcmVhdGUoKSxyLCEwKSxsW2NdJiZ0aGlzLmluc2VydE5vZGUoby50ZXh0KGxbY10pLHIsIS9cUy8udGVzdChsW2NdKSk7YT0iIn1lbHNlIGE9YS5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIik7ZWxzZSBpZihhPWEucmVwbGFjZSgvWyBcdFxyXG5cdTAwMGNdKy9nLCIgIiksL15bIFx0XHJcblx1MDAwY10vLnRlc3QoYSkmJnRoaXMub3Blbj09dGhpcy5ub2Rlcy5sZW5ndGgtMSl7bGV0IGw9cy5jb250ZW50W3MuY29udGVudC5sZW5ndGgtMV0sYz1lLnByZXZpb3VzU2libGluZzsoIWx8fGMmJmMubm9kZU5hbWU9PSJCUiJ8fGwuaXNUZXh0JiYvWyBcdFxyXG5cdTAwMGNdJC8udGVzdChsLnRleHQpKSYmKGE9YS5zbGljZSgxKSl9YSYmdGhpcy5pbnNlcnROb2RlKG8udGV4dChhKSxyLCEvXFMvLnRlc3QoYSkpLHRoaXMuZmluZEluVGV4dChlKX1lbHNlIHRoaXMuZmluZEluc2lkZShlKX1hZGRFbGVtZW50KGUscixhKXtsZXQgcz10aGlzLmxvY2FsUHJlc2VydmVXUyxuPXRoaXMudG9wOyhlLnRhZ05hbWU9PSJQUkUifHwvcHJlLy50ZXN0KGUuc3R5bGUmJmUuc3R5bGUud2hpdGVTcGFjZSkpJiYodGhpcy5sb2NhbFByZXNlcnZlV1M9ITApO2xldCBvPWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxsO3RXci5oYXNPd25Qcm9wZXJ0eShvKSYmdGhpcy5wYXJzZXIubm9ybWFsaXplTGlzdHMmJnpJYShlKTtsZXQgYz10aGlzLm9wdGlvbnMucnVsZUZyb21Ob2RlJiZ0aGlzLm9wdGlvbnMucnVsZUZyb21Ob2RlKGUpfHwobD10aGlzLnBhcnNlci5tYXRjaFRhZyhlLHRoaXMsYSkpO2U6aWYoYz9jLmlnbm9yZTpDSWEuaGFzT3duUHJvcGVydHkobykpdGhpcy5maW5kSW5zaWRlKGUpLHRoaXMuaWdub3JlRmFsbGJhY2soZSxyKTtlbHNlIGlmKCFjfHxjLnNraXB8fGMuY2xvc2VQYXJlbnQpe2MmJmMuY2xvc2VQYXJlbnQ/dGhpcy5vcGVuPU1hdGgubWF4KDAsdGhpcy5vcGVuLTEpOmMmJmMuc2tpcC5ub2RlVHlwZSYmKGU9Yy5za2lwKTtsZXQgZCxmPXRoaXMubmVlZHNCbG9jaztpZihlV3IuaGFzT3duUHJvcGVydHkobykpbi5jb250ZW50Lmxlbmd0aCYmbi5jb250ZW50WzBdLmlzSW5saW5lJiZ0aGlzLm9wZW4mJih0aGlzLm9wZW4tLSxuPXRoaXMudG9wKSxkPSEwLG4udHlwZXx8KHRoaXMubmVlZHNCbG9jaz0hMCk7ZWxzZSBpZighZS5maXJzdENoaWxkKXt0aGlzLmxlYWZGYWxsYmFjayhlLHIpO2JyZWFrIGV9bGV0IHA9YyYmYy5za2lwP3I6dGhpcy5yZWFkU3R5bGVzKGUscik7cCYmdGhpcy5hZGRBbGwoZSxwKSxkJiZ0aGlzLnN5bmMobiksdGhpcy5uZWVkc0Jsb2NrPWZ9ZWxzZXtsZXQgZD10aGlzLnJlYWRTdHlsZXMoZSxyKTtkJiZ0aGlzLmFkZEVsZW1lbnRCeVJ1bGUoZSxjLGQsYy5jb25zdW1pbmc9PT0hMT9sOnZvaWQgMCl9dGhpcy5sb2NhbFByZXNlcnZlV1M9c31sZWFmRmFsbGJhY2soZSxyKXtlLm5vZGVOYW1lPT0iQlIiJiZ0aGlzLnRvcC50eXBlJiZ0aGlzLnRvcC50eXBlLmlubGluZUNvbnRlbnQmJnRoaXMuYWRkVGV4dE5vZGUoZS5vd25lckRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGAKYCkscil9aWdub3JlRmFsbGJhY2soZSxyKXtlLm5vZGVOYW1lPT0iQlIiJiYoIXRoaXMudG9wLnR5cGV8fCF0aGlzLnRvcC50eXBlLmlubGluZUNvbnRlbnQpJiZ0aGlzLmZpbmRQbGFjZSh0aGlzLnBhcnNlci5zY2hlbWEudGV4dCgiLSIpLHIsITApfXJlYWRTdHlsZXMoZSxyKXtsZXQgYT1lLnN0eWxlO2lmKGEmJmEubGVuZ3RoKWZvcihsZXQgcz0wO3M8dGhpcy5wYXJzZXIubWF0Y2hlZFN0eWxlcy5sZW5ndGg7cysrKXtsZXQgbj10aGlzLnBhcnNlci5tYXRjaGVkU3R5bGVzW3NdLG89YS5nZXRQcm9wZXJ0eVZhbHVlKG4pO2lmKG8pZm9yKGxldCBsPXZvaWQgMDs7KXtsZXQgYz10aGlzLnBhcnNlci5tYXRjaFN0eWxlKG4sbyx0aGlzLGwpO2lmKCFjKWJyZWFrO2lmKGMuaWdub3JlKXJldHVybiBudWxsO2lmKGMuY2xlYXJNYXJrP3I9ci5maWx0ZXIoZD0+IWMuY2xlYXJNYXJrKGQpKTpyPXIuY29uY2F0KHRoaXMucGFyc2VyLnNjaGVtYS5tYXJrc1tjLm1hcmtdLmNyZWF0ZShjLmF0dHJzKSksYy5jb25zdW1pbmc9PT0hMSlsPWM7ZWxzZSBicmVha319cmV0dXJuIHJ9YWRkRWxlbWVudEJ5UnVsZShlLHIsYSxzKXtsZXQgbixvO2lmKHIubm9kZSlpZihvPXRoaXMucGFyc2VyLnNjaGVtYS5ub2Rlc1tyLm5vZGVdLG8uaXNMZWFmKXRoaXMuaW5zZXJ0Tm9kZShvLmNyZWF0ZShyLmF0dHJzKSxhLGUubm9kZU5hbWU9PSJCUiIpfHx0aGlzLmxlYWZGYWxsYmFjayhlLGEpO2Vsc2V7bGV0IGM9dGhpcy5lbnRlcihvLHIuYXR0cnN8fG51bGwsYSxyLnByZXNlcnZlV2hpdGVzcGFjZSk7YyYmKG49ITAsYT1jKX1lbHNle2xldCBjPXRoaXMucGFyc2VyLnNjaGVtYS5tYXJrc1tyLm1hcmtdO2E9YS5jb25jYXQoYy5jcmVhdGUoci5hdHRycykpfWxldCBsPXRoaXMudG9wO2lmKG8mJm8uaXNMZWFmKXRoaXMuZmluZEluc2lkZShlKTtlbHNlIGlmKHMpdGhpcy5hZGRFbGVtZW50KGUsYSxzKTtlbHNlIGlmKHIuZ2V0Q29udGVudCl0aGlzLmZpbmRJbnNpZGUoZSksci5nZXRDb250ZW50KGUsdGhpcy5wYXJzZXIuc2NoZW1hKS5mb3JFYWNoKGM9PnRoaXMuaW5zZXJ0Tm9kZShjLGEsITEpKTtlbHNle2xldCBjPWU7dHlwZW9mIHIuY29udGVudEVsZW1lbnQ9PSJzdHJpbmciP2M9ZS5xdWVyeVNlbGVjdG9yKHIuY29udGVudEVsZW1lbnQpOnR5cGVvZiByLmNvbnRlbnRFbGVtZW50PT0iZnVuY3Rpb24iP2M9ci5jb250ZW50RWxlbWVudChlKTpyLmNvbnRlbnRFbGVtZW50JiYoYz1yLmNvbnRlbnRFbGVtZW50KSx0aGlzLmZpbmRBcm91bmQoZSxjLCEwKSx0aGlzLmFkZEFsbChjLGEpLHRoaXMuZmluZEFyb3VuZChlLGMsITEpfW4mJnRoaXMuc3luYyhsKSYmdGhpcy5vcGVuLS19YWRkQWxsKGUscixhLHMpe2xldCBuPWF8fDA7Zm9yKGxldCBvPWE/ZS5jaGlsZE5vZGVzW2FdOmUuZmlyc3RDaGlsZCxsPXM9PW51bGw/bnVsbDplLmNoaWxkTm9kZXNbc107byE9bDtvPW8ubmV4dFNpYmxpbmcsKytuKXRoaXMuZmluZEF0UG9pbnQoZSxuKSx0aGlzLmFkZERPTShvLHIpO3RoaXMuZmluZEF0UG9pbnQoZSxuKX1maW5kUGxhY2UoZSxyLGEpe2xldCBzLG47Zm9yKGxldCBvPXRoaXMub3BlbixsPTA7bz49MDtvLS0pe2xldCBjPXRoaXMubm9kZXNbb10sZD1jLmZpbmRXcmFwcGluZyhlKTtpZihkJiYoIXN8fHMubGVuZ3RoPmQubGVuZ3RoK2wpJiYocz1kLG49YywhZC5sZW5ndGgpKWJyZWFrO2lmKGMuc29saWQpe2lmKGEpYnJlYWs7bCs9Mn19aWYoIXMpcmV0dXJuIG51bGw7dGhpcy5zeW5jKG4pO2ZvcihsZXQgbz0wO288cy5sZW5ndGg7bysrKXI9dGhpcy5lbnRlcklubmVyKHNbb10sbnVsbCxyLCExKTtyZXR1cm4gcn1pbnNlcnROb2RlKGUscixhKXtpZihlLmlzSW5saW5lJiZ0aGlzLm5lZWRzQmxvY2smJiF0aGlzLnRvcC50eXBlKXtsZXQgbj10aGlzLnRleHRibG9ja0Zyb21Db250ZXh0KCk7biYmKHI9dGhpcy5lbnRlcklubmVyKG4sbnVsbCxyKSl9bGV0IHM9dGhpcy5maW5kUGxhY2UoZSxyLGEpO2lmKHMpe3RoaXMuY2xvc2VFeHRyYSgpO2xldCBuPXRoaXMudG9wO24ubWF0Y2gmJihuLm1hdGNoPW4ubWF0Y2gubWF0Y2hUeXBlKGUudHlwZSkpO2xldCBvPWhhLm5vbmU7Zm9yKGxldCBsIG9mIHMuY29uY2F0KGUubWFya3MpKShuLnR5cGU/bi50eXBlLmFsbG93c01hcmtUeXBlKGwudHlwZSk6aVdyKGwudHlwZSxlLnR5cGUpKSYmKG89bC5hZGRUb1NldChvKSk7cmV0dXJuIG4uY29udGVudC5wdXNoKGUubWFyayhvKSksITB9cmV0dXJuITF9ZW50ZXIoZSxyLGEscyl7bGV0IG49dGhpcy5maW5kUGxhY2UoZS5jcmVhdGUociksYSwhMSk7cmV0dXJuIG4mJihuPXRoaXMuZW50ZXJJbm5lcihlLHIsYSwhMCxzKSksbn1lbnRlcklubmVyKGUscixhLHM9ITEsbil7dGhpcy5jbG9zZUV4dHJhKCk7bGV0IG89dGhpcy50b3A7by5tYXRjaD1vLm1hdGNoJiZvLm1hdGNoLm1hdGNoVHlwZShlKTtsZXQgbD1yV3IoZSxuLG8ub3B0aW9ucyk7by5vcHRpb25zJl90ZSYmby5jb250ZW50Lmxlbmd0aD09MCYmKGx8PV90ZSk7bGV0IGM9aGEubm9uZTtyZXR1cm4gYT1hLmZpbHRlcihkPT4oby50eXBlP28udHlwZS5hbGxvd3NNYXJrVHlwZShkLnR5cGUpOmlXcihkLnR5cGUsZSkpPyhjPWQuYWRkVG9TZXQoYyksITEpOiEwKSx0aGlzLm5vZGVzLnB1c2gobmV3IFV5KGUscixjLHMsbnVsbCxsKSksdGhpcy5vcGVuKyssYX1jbG9zZUV4dHJhKGU9ITEpe2xldCByPXRoaXMubm9kZXMubGVuZ3RoLTE7aWYocj50aGlzLm9wZW4pe2Zvcig7cj50aGlzLm9wZW47ci0tKXRoaXMubm9kZXNbci0xXS5jb250ZW50LnB1c2godGhpcy5ub2Rlc1tyXS5maW5pc2goZSkpO3RoaXMubm9kZXMubGVuZ3RoPXRoaXMub3BlbisxfX1maW5pc2goKXtyZXR1cm4gdGhpcy5vcGVuPTAsdGhpcy5jbG9zZUV4dHJhKHRoaXMuaXNPcGVuKSx0aGlzLm5vZGVzWzBdLmZpbmlzaCghISh0aGlzLmlzT3Blbnx8dGhpcy5vcHRpb25zLnRvcE9wZW4pKX1zeW5jKGUpe2ZvcihsZXQgcj10aGlzLm9wZW47cj49MDtyLS0pe2lmKHRoaXMubm9kZXNbcl09PWUpcmV0dXJuIHRoaXMub3Blbj1yLCEwO3RoaXMubG9jYWxQcmVzZXJ2ZVdTJiYodGhpcy5ub2Rlc1tyXS5vcHRpb25zfD16dGUpfXJldHVybiExfWdldCBjdXJyZW50UG9zKCl7dGhpcy5jbG9zZUV4dHJhKCk7bGV0IGU9MDtmb3IobGV0IHI9dGhpcy5vcGVuO3I+PTA7ci0tKXtsZXQgYT10aGlzLm5vZGVzW3JdLmNvbnRlbnQ7Zm9yKGxldCBzPWEubGVuZ3RoLTE7cz49MDtzLS0pZSs9YVtzXS5ub2RlU2l6ZTtyJiZlKyt9cmV0dXJuIGV9ZmluZEF0UG9pbnQoZSxyKXtpZih0aGlzLmZpbmQpZm9yKGxldCBhPTA7YTx0aGlzLmZpbmQubGVuZ3RoO2ErKyl0aGlzLmZpbmRbYV0ubm9kZT09ZSYmdGhpcy5maW5kW2FdLm9mZnNldD09ciYmKHRoaXMuZmluZFthXS5wb3M9dGhpcy5jdXJyZW50UG9zKX1maW5kSW5zaWRlKGUpe2lmKHRoaXMuZmluZClmb3IobGV0IHI9MDtyPHRoaXMuZmluZC5sZW5ndGg7cisrKXRoaXMuZmluZFtyXS5wb3M9PW51bGwmJmUubm9kZVR5cGU9PTEmJmUuY29udGFpbnModGhpcy5maW5kW3JdLm5vZGUpJiYodGhpcy5maW5kW3JdLnBvcz10aGlzLmN1cnJlbnRQb3MpfWZpbmRBcm91bmQoZSxyLGEpe2lmKGUhPXImJnRoaXMuZmluZClmb3IobGV0IHM9MDtzPHRoaXMuZmluZC5sZW5ndGg7cysrKXRoaXMuZmluZFtzXS5wb3M9PW51bGwmJmUubm9kZVR5cGU9PTEmJmUuY29udGFpbnModGhpcy5maW5kW3NdLm5vZGUpJiZyLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMuZmluZFtzXS5ub2RlKSYoYT8yOjQpJiYodGhpcy5maW5kW3NdLnBvcz10aGlzLmN1cnJlbnRQb3MpfWZpbmRJblRleHQoZSl7aWYodGhpcy5maW5kKWZvcihsZXQgcj0wO3I8dGhpcy5maW5kLmxlbmd0aDtyKyspdGhpcy5maW5kW3JdLm5vZGU9PWUmJih0aGlzLmZpbmRbcl0ucG9zPXRoaXMuY3VycmVudFBvcy0oZS5ub2RlVmFsdWUubGVuZ3RoLXRoaXMuZmluZFtyXS5vZmZzZXQpKX1tYXRjaGVzQ29udGV4dChlKXtpZihlLmluZGV4T2YoInwiKT4tMSlyZXR1cm4gZS5zcGxpdCgvXHMqXHxccyovKS5zb21lKHRoaXMubWF0Y2hlc0NvbnRleHQsdGhpcyk7bGV0IHI9ZS5zcGxpdCgiLyIpLGE9dGhpcy5vcHRpb25zLmNvbnRleHQscz0hdGhpcy5pc09wZW4mJighYXx8YS5wYXJlbnQudHlwZT09dGhpcy5ub2Rlc1swXS50eXBlKSxuPS0oYT9hLmRlcHRoKzE6MCkrKHM/MDoxKSxvPWkoKGwsYyk9Pntmb3IoO2w+PTA7bC0tKXtsZXQgZD1yW2xdO2lmKGQ9PSIiKXtpZihsPT1yLmxlbmd0aC0xfHxsPT0wKWNvbnRpbnVlO2Zvcig7Yz49bjtjLS0paWYobyhsLTEsYykpcmV0dXJuITA7cmV0dXJuITF9ZWxzZXtsZXQgZj1jPjB8fGM9PTAmJnM/dGhpcy5ub2Rlc1tjXS50eXBlOmEmJmM+PW4/YS5ub2RlKGMtbikudHlwZTpudWxsO2lmKCFmfHxmLm5hbWUhPWQmJiFmLmlzSW5Hcm91cChkKSlyZXR1cm4hMTtjLS19fXJldHVybiEwfSwibWF0Y2giKTtyZXR1cm4gbyhyLmxlbmd0aC0xLHRoaXMub3Blbil9dGV4dGJsb2NrRnJvbUNvbnRleHQoKXtsZXQgZT10aGlzLm9wdGlvbnMuY29udGV4dDtpZihlKWZvcihsZXQgcj1lLmRlcHRoO3I+PTA7ci0tKXtsZXQgYT1lLm5vZGUocikuY29udGVudE1hdGNoQXQoZS5pbmRleEFmdGVyKHIpKS5kZWZhdWx0VHlwZTtpZihhJiZhLmlzVGV4dGJsb2NrJiZhLmRlZmF1bHRBdHRycylyZXR1cm4gYX1mb3IobGV0IHIgaW4gdGhpcy5wYXJzZXIuc2NoZW1hLm5vZGVzKXtsZXQgYT10aGlzLnBhcnNlci5zY2hlbWEubm9kZXNbcl07aWYoYS5pc1RleHRibG9jayYmYS5kZWZhdWx0QXR0cnMpcmV0dXJuIGF9fX07aSh6SWEsIm5vcm1hbGl6ZUxpc3QiKTtpKF9JYSwibWF0Y2hlcyIpO2koYVdyLCJjb3B5Iik7aShpV3IsIm1hcmtNYXlBcHBseSIpO29kPWNsYXNzIHR7c3RhdGlje2kodGhpcywiRE9NU2VyaWFsaXplciIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5ub2Rlcz1lLHRoaXMubWFya3M9cn1zZXJpYWxpemVGcmFnbWVudChlLHI9e30sYSl7YXx8KGE9YmZlKHIpLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSk7bGV0IHM9YSxuPVtdO3JldHVybiBlLmZvckVhY2gobz0+e2lmKG4ubGVuZ3RofHxvLm1hcmtzLmxlbmd0aCl7bGV0IGw9MCxjPTA7Zm9yKDtsPG4ubGVuZ3RoJiZjPG8ubWFya3MubGVuZ3RoOyl7bGV0IGQ9by5tYXJrc1tjXTtpZighdGhpcy5tYXJrc1tkLnR5cGUubmFtZV0pe2MrKztjb250aW51ZX1pZighZC5lcShuW2xdWzBdKXx8ZC50eXBlLnNwZWMuc3Bhbm5pbmc9PT0hMSlicmVhaztsKyssYysrfWZvcig7bDxuLmxlbmd0aDspcz1uLnBvcCgpWzFdO2Zvcig7YzxvLm1hcmtzLmxlbmd0aDspe2xldCBkPW8ubWFya3NbYysrXSxmPXRoaXMuc2VyaWFsaXplTWFyayhkLG8uaXNJbmxpbmUscik7ZiYmKG4ucHVzaChbZCxzXSkscy5hcHBlbmRDaGlsZChmLmRvbSkscz1mLmNvbnRlbnRET018fGYuZG9tKX19cy5hcHBlbmRDaGlsZCh0aGlzLnNlcmlhbGl6ZU5vZGVJbm5lcihvLHIpKX0pLGF9c2VyaWFsaXplTm9kZUlubmVyKGUscil7aWYoZS5pc1RleHQpcmV0dXJuIGJmZShyKS5jcmVhdGVUZXh0Tm9kZShlLnRleHQpO2xldHtkb206YSxjb250ZW50RE9NOnN9PXhmZShiZmUociksdGhpcy5ub2Rlc1tlLnR5cGUubmFtZV0oZSksbnVsbCxlLmF0dHJzKTtpZihzKXtpZihlLmlzTGVhZil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ29udGVudCBob2xlIG5vdCBhbGxvd2VkIGluIGEgbGVhZiBub2RlIHNwZWMiKTt0aGlzLnNlcmlhbGl6ZUZyYWdtZW50KGUuY29udGVudCxyLHMpfXJldHVybiBhfXNlcmlhbGl6ZU5vZGUoZSxyPXt9KXtsZXQgYT10aGlzLnNlcmlhbGl6ZU5vZGVJbm5lcihlLHIpO2ZvcihsZXQgcz1lLm1hcmtzLmxlbmd0aC0xO3M+PTA7cy0tKXtsZXQgbj10aGlzLnNlcmlhbGl6ZU1hcmsoZS5tYXJrc1tzXSxlLmlzSW5saW5lLHIpO24mJigobi5jb250ZW50RE9NfHxuLmRvbSkuYXBwZW5kQ2hpbGQoYSksYT1uLmRvbSl9cmV0dXJuIGF9c2VyaWFsaXplTWFyayhlLHIsYT17fSl7bGV0IHM9dGhpcy5tYXJrc1tlLnR5cGUubmFtZV07cmV0dXJuIHMmJnhmZShiZmUoYSkscyhlLHIpLG51bGwsZS5hdHRycyl9c3RhdGljIHJlbmRlclNwZWMoZSxyLGE9bnVsbCxzKXtyZXR1cm4gdHlwZW9mIHI9PSJzdHJpbmciP3tkb206ZS5jcmVhdGVUZXh0Tm9kZShyKX06eGZlKGUscixhLHMpfXN0YXRpYyBmcm9tU2NoZW1hKGUpe3JldHVybiBlLmNhY2hlZC5kb21TZXJpYWxpemVyfHwoZS5jYWNoZWQuZG9tU2VyaWFsaXplcj1uZXcgdCh0aGlzLm5vZGVzRnJvbVNjaGVtYShlKSx0aGlzLm1hcmtzRnJvbVNjaGVtYShlKSkpfXN0YXRpYyBub2Rlc0Zyb21TY2hlbWEoZSl7bGV0IHI9c1dyKGUubm9kZXMpO3JldHVybiByLnRleHR8fChyLnRleHQ9YT0+YS50ZXh0KSxyfXN0YXRpYyBtYXJrc0Zyb21TY2hlbWEoZSl7cmV0dXJuIHNXcihlLm1hcmtzKX19O2koc1dyLCJnYXRoZXJUb0RPTSIpO2koYmZlLCJkb2MiKTtuV3I9bmV3IFdlYWtNYXA7aShUSWEsInN1c3BpY2lvdXNBdHRyaWJ1dGVzIik7aShMSWEsInN1c3BpY2lvdXNBdHRyaWJ1dGVzSW5uZXIiKTtpKHhmZSwicmVuZGVyU3BlYyIpfSk7ZnVuY3Rpb24gRElhKHQsZSl7cmV0dXJuIHQrZSpsV3J9ZnVuY3Rpb24gY1dyKHQpe3JldHVybiB0Jm9Xcn1mdW5jdGlvbiAkSWEodCl7cmV0dXJuKHQtKHQmb1dyKSkvbFdyfWZ1bmN0aW9uIG1tdCh0LGUscil7bGV0IGE9W107Zm9yKGxldCBzPTA7czx0LmNoaWxkQ291bnQ7cysrKXtsZXQgbj10LmNoaWxkKHMpO24uY29udGVudC5zaXplJiYobj1uLmNvcHkobW10KG4uY29udGVudCxlLG4pKSksbi5pc0lubGluZSYmKG49ZShuLHIscykpLGEucHVzaChuKX1yZXR1cm4gSmUuZnJvbUFycmF5KGEpfWZ1bmN0aW9uIGdtdCh0LGUscil7bGV0IGE9dC5yZXNvbHZlKGUpLHM9ci1lLG49YS5kZXB0aDtmb3IoO3M+MCYmbj4wJiZhLmluZGV4QWZ0ZXIobik9PWEubm9kZShuKS5jaGlsZENvdW50OyluLS0scy0tO2lmKHM+MCl7bGV0IG89YS5ub2RlKG4pLm1heWJlQ2hpbGQoYS5pbmRleEFmdGVyKG4pKTtmb3IoO3M+MDspe2lmKCFvfHxvLmlzTGVhZilyZXR1cm4hMDtvPW8uZmlyc3RDaGlsZCxzLS19fXJldHVybiExfWZ1bmN0aW9uIEFJYSh0LGUscixhKXtsZXQgcz1bXSxuPVtdLG8sbDt0LmRvYy5ub2Rlc0JldHdlZW4oZSxyLChjLGQsZik9PntpZighYy5pc0lubGluZSlyZXR1cm47bGV0IHA9Yy5tYXJrcztpZighYS5pc0luU2V0KHApJiZmLnR5cGUuYWxsb3dzTWFya1R5cGUoYS50eXBlKSl7bGV0IGg9TWF0aC5tYXgoZCxlKSxtPU1hdGgubWluKGQrYy5ub2RlU2l6ZSxyKSx2PWEuYWRkVG9TZXQocCk7Zm9yKGxldCBiPTA7YjxwLmxlbmd0aDtiKyspcFtiXS5pc0luU2V0KHYpfHwobyYmby50bz09aCYmby5tYXJrLmVxKHBbYl0pP28udG89bTpzLnB1c2gobz1uZXcgVXAoaCxtLHBbYl0pKSk7bCYmbC50bz09aD9sLnRvPW06bi5wdXNoKGw9bmV3IEt5KGgsbSxhKSl9fSkscy5mb3JFYWNoKGM9PnQuc3RlcChjKSksbi5mb3JFYWNoKGM9PnQuc3RlcChjKSl9ZnVuY3Rpb24gRUlhKHQsZSxyLGEpe2xldCBzPVtdLG49MDt0LmRvYy5ub2Rlc0JldHdlZW4oZSxyLChvLGwpPT57aWYoIW8uaXNJbmxpbmUpcmV0dXJuO24rKztsZXQgYz1udWxsO2lmKGEgaW5zdGFuY2VvZiBXeSl7bGV0IGQ9by5tYXJrcyxmO2Zvcig7Zj1hLmlzSW5TZXQoZCk7KShjfHwoYz1bXSkpLnB1c2goZiksZD1mLnJlbW92ZUZyb21TZXQoZCl9ZWxzZSBhP2EuaXNJblNldChvLm1hcmtzKSYmKGM9W2FdKTpjPW8ubWFya3M7aWYoYyYmYy5sZW5ndGgpe2xldCBkPU1hdGgubWluKGwrby5ub2RlU2l6ZSxyKTtmb3IobGV0IGY9MDtmPGMubGVuZ3RoO2YrKyl7bGV0IHA9Y1tmXSxoO2ZvcihsZXQgbT0wO208cy5sZW5ndGg7bSsrKXtsZXQgdj1zW21dO3Yuc3RlcD09bi0xJiZwLmVxKHNbbV0uc3R5bGUpJiYoaD12KX1oPyhoLnRvPWQsaC5zdGVwPW4pOnMucHVzaCh7c3R5bGU6cCxmcm9tOk1hdGgubWF4KGwsZSksdG86ZCxzdGVwOm59KX19fSkscy5mb3JFYWNoKG89PnQuc3RlcChuZXcgVXAoby5mcm9tLG8udG8sby5zdHlsZSkpKX1mdW5jdGlvbiBibXQodCxlLHIsYT1yLmNvbnRlbnRNYXRjaCxzPSEwKXtsZXQgbj10LmRvYy5ub2RlQXQoZSksbz1bXSxsPWUrMTtmb3IobGV0IGM9MDtjPG4uY2hpbGRDb3VudDtjKyspe2xldCBkPW4uY2hpbGQoYyksZj1sK2Qubm9kZVNpemUscD1hLm1hdGNoVHlwZShkLnR5cGUpO2lmKCFwKW8ucHVzaChuZXcgSW4obCxmLG10LmVtcHR5KSk7ZWxzZXthPXA7Zm9yKGxldCBoPTA7aDxkLm1hcmtzLmxlbmd0aDtoKyspci5hbGxvd3NNYXJrVHlwZShkLm1hcmtzW2hdLnR5cGUpfHx0LnN0ZXAobmV3IFVwKGwsZixkLm1hcmtzW2hdKSk7aWYocyYmZC5pc1RleHQmJnIud2hpdGVzcGFjZSE9InByZSIpe2xldCBoLG09L1xyP1xufFxyL2csdjtmb3IoO2g9bS5leGVjKGQudGV4dCk7KXZ8fCh2PW5ldyBtdChKZS5mcm9tKHIuc2NoZW1hLnRleHQoIiAiLHIuYWxsb3dlZE1hcmtzKGQubWFya3MpKSksMCwwKSksby5wdXNoKG5ldyBJbihsK2guaW5kZXgsbCtoLmluZGV4K2hbMF0ubGVuZ3RoLHYpKX19bD1mfWlmKCFhLnZhbGlkRW5kKXtsZXQgYz1hLmZpbGxCZWZvcmUoSmUuZW1wdHksITApO3QucmVwbGFjZShsLGwsbmV3IG10KGMsMCwwKSl9Zm9yKGxldCBjPW8ubGVuZ3RoLTE7Yz49MDtjLS0pdC5zdGVwKG9bY10pfWZ1bmN0aW9uIElJYSh0LGUscil7cmV0dXJuKGU9PTB8fHQuY2FuUmVwbGFjZShlLHQuY2hpbGRDb3VudCkpJiYocj09dC5jaGlsZENvdW50fHx0LmNhblJlcGxhY2UoMCxyKSl9ZnVuY3Rpb24gY2QodCl7bGV0IHI9dC5wYXJlbnQuY29udGVudC5jdXRCeUluZGV4KHQuc3RhcnRJbmRleCx0LmVuZEluZGV4KTtmb3IobGV0IGE9dC5kZXB0aCxzPTAsbj0wOzstLWEpe2xldCBvPXQuJGZyb20ubm9kZShhKSxsPXQuJGZyb20uaW5kZXgoYSkrcyxjPXQuJHRvLmluZGV4QWZ0ZXIoYSktbjtpZihhPHQuZGVwdGgmJm8uY2FuUmVwbGFjZShsLGMscikpcmV0dXJuIGE7aWYoYT09MHx8by50eXBlLnNwZWMuaXNvbGF0aW5nfHwhSUlhKG8sbCxjKSlicmVhaztsJiYocz0xKSxjPG8uY2hpbGRDb3VudCYmKG49MSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gUElhKHQsZSxyKXtsZXR7JGZyb206YSwkdG86cyxkZXB0aDpufT1lLG89YS5iZWZvcmUobisxKSxsPXMuYWZ0ZXIobisxKSxjPW8sZD1sLGY9SmUuZW1wdHkscD0wO2ZvcihsZXQgdj1uLGI9ITE7dj5yO3YtLSlifHxhLmluZGV4KHYpPjA/KGI9ITAsZj1KZS5mcm9tKGEubm9kZSh2KS5jb3B5KGYpKSxwKyspOmMtLTtsZXQgaD1KZS5lbXB0eSxtPTA7Zm9yKGxldCB2PW4sYj0hMTt2PnI7di0tKWJ8fHMuYWZ0ZXIodisxKTxzLmVuZCh2KT8oYj0hMCxoPUplLmZyb20ocy5ub2RlKHYpLmNvcHkoaCkpLG0rKyk6ZCsrO3Quc3RlcChuZXcgZHMoYyxkLG8sbCxuZXcgbXQoZi5hcHBlbmQoaCkscCxtKSxmLnNpemUtcCwhMCkpfWZ1bmN0aW9uIEU5KHQsZSxyPW51bGwsYT10KXtsZXQgcz1OSWEodCxlKSxuPXMmJk9JYShhLGUpO3JldHVybiBuP3MubWFwKGZXcikuY29uY2F0KHt0eXBlOmUsYXR0cnM6cn0pLmNvbmNhdChuLm1hcChmV3IpKTpudWxsfWZ1bmN0aW9uIGZXcih0KXtyZXR1cm57dHlwZTp0LGF0dHJzOm51bGx9fWZ1bmN0aW9uIE5JYSh0LGUpe2xldHtwYXJlbnQ6cixzdGFydEluZGV4OmEsZW5kSW5kZXg6c309dCxuPXIuY29udGVudE1hdGNoQXQoYSkuZmluZFdyYXBwaW5nKGUpO2lmKCFuKXJldHVybiBudWxsO2xldCBvPW4ubGVuZ3RoP25bMF06ZTtyZXR1cm4gci5jYW5SZXBsYWNlV2l0aChhLHMsbyk/bjpudWxsfWZ1bmN0aW9uIE9JYSh0LGUpe2xldHtwYXJlbnQ6cixzdGFydEluZGV4OmEsZW5kSW5kZXg6c309dCxuPXIuY2hpbGQoYSksbz1lLmNvbnRlbnRNYXRjaC5maW5kV3JhcHBpbmcobi50eXBlKTtpZighbylyZXR1cm4gbnVsbDtsZXQgYz0oby5sZW5ndGg/b1tvLmxlbmd0aC0xXTplKS5jb250ZW50TWF0Y2g7Zm9yKGxldCBkPWE7YyYmZDxzO2QrKyljPWMubWF0Y2hUeXBlKHIuY2hpbGQoZCkudHlwZSk7cmV0dXJuIWN8fCFjLnZhbGlkRW5kP251bGw6b31mdW5jdGlvbiBSSWEodCxlLHIpe2xldCBhPUplLmVtcHR5O2ZvcihsZXQgbz1yLmxlbmd0aC0xO28+PTA7by0tKXtpZihhLnNpemUpe2xldCBsPXJbb10udHlwZS5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudChhKTtpZighbHx8IWwudmFsaWRFbmQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIldyYXBwZXIgdHlwZSBnaXZlbiB0byBUcmFuc2Zvcm0ud3JhcCBkb2VzIG5vdCBmb3JtIHZhbGlkIGNvbnRlbnQgb2YgaXRzIHBhcmVudCB3cmFwcGVyIil9YT1KZS5mcm9tKHJbb10udHlwZS5jcmVhdGUocltvXS5hdHRycyxhKSl9bGV0IHM9ZS5zdGFydCxuPWUuZW5kO3Quc3RlcChuZXcgZHMocyxuLHMsbixuZXcgbXQoYSwwLDApLHIubGVuZ3RoLCEwKSl9ZnVuY3Rpb24gRklhKHQsZSxyLGEscyl7aWYoIWEuaXNUZXh0YmxvY2spdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlR5cGUgZ2l2ZW4gdG8gc2V0QmxvY2tUeXBlIHNob3VsZCBiZSBhIHRleHRibG9jayIpO2xldCBuPXQuc3RlcHMubGVuZ3RoO3QuZG9jLm5vZGVzQmV0d2VlbihlLHIsKG8sbCk9PntsZXQgYz10eXBlb2Ygcz09ImZ1bmN0aW9uIj9zKG8pOnM7aWYoby5pc1RleHRibG9jayYmIW8uaGFzTWFya3VwKGEsYykmJkJJYSh0LmRvYyx0Lm1hcHBpbmcuc2xpY2UobikubWFwKGwpLGEpKXtsZXQgZD1udWxsO2lmKGEuc2NoZW1hLmxpbmVicmVha1JlcGxhY2VtZW50KXtsZXQgbT1hLndoaXRlc3BhY2U9PSJwcmUiLHY9ISFhLmNvbnRlbnRNYXRjaC5tYXRjaFR5cGUoYS5zY2hlbWEubGluZWJyZWFrUmVwbGFjZW1lbnQpO20mJiF2P2Q9ITE6IW0mJnYmJihkPSEwKX1kPT09ITEmJm1Xcih0LG8sbCxuKSxibXQodCx0Lm1hcHBpbmcuc2xpY2UobikubWFwKGwsMSksYSx2b2lkIDAsZD09PW51bGwpO2xldCBmPXQubWFwcGluZy5zbGljZShuKSxwPWYubWFwKGwsMSksaD1mLm1hcChsK28ubm9kZVNpemUsMSk7cmV0dXJuIHQuc3RlcChuZXcgZHMocCxoLHArMSxoLTEsbmV3IG10KEplLmZyb20oYS5jcmVhdGUoYyxudWxsLG8ubWFya3MpKSwwLDApLDEsITApKSxkPT09ITAmJmhXcih0LG8sbCxuKSwhMX19KX1mdW5jdGlvbiBoV3IodCxlLHIsYSl7ZS5mb3JFYWNoKChzLG4pPT57aWYocy5pc1RleHQpe2xldCBvLGw9L1xyP1xufFxyL2c7Zm9yKDtvPWwuZXhlYyhzLnRleHQpOyl7bGV0IGM9dC5tYXBwaW5nLnNsaWNlKGEpLm1hcChyKzErbitvLmluZGV4KTt0LnJlcGxhY2VXaXRoKGMsYysxLGUudHlwZS5zY2hlbWEubGluZWJyZWFrUmVwbGFjZW1lbnQuY3JlYXRlKCkpfX19KX1mdW5jdGlvbiBtV3IodCxlLHIsYSl7ZS5mb3JFYWNoKChzLG4pPT57aWYocy50eXBlPT1zLnR5cGUuc2NoZW1hLmxpbmVicmVha1JlcGxhY2VtZW50KXtsZXQgbz10Lm1hcHBpbmcuc2xpY2UoYSkubWFwKHIrMStuKTt0LnJlcGxhY2VXaXRoKG8sbysxLGUudHlwZS5zY2hlbWEudGV4dChgCmApKX19KX1mdW5jdGlvbiBCSWEodCxlLHIpe2xldCBhPXQucmVzb2x2ZShlKSxzPWEuaW5kZXgoKTtyZXR1cm4gYS5wYXJlbnQuY2FuUmVwbGFjZVdpdGgocyxzKzEscil9ZnVuY3Rpb24gSElhKHQsZSxyLGEscyl7bGV0IG49dC5kb2Mubm9kZUF0KGUpO2lmKCFuKXRocm93IG5ldyBSYW5nZUVycm9yKCJObyBub2RlIGF0IGdpdmVuIHBvc2l0aW9uIik7cnx8KHI9bi50eXBlKTtsZXQgbz1yLmNyZWF0ZShhLG51bGwsc3x8bi5tYXJrcyk7aWYobi5pc0xlYWYpcmV0dXJuIHQucmVwbGFjZVdpdGgoZSxlK24ubm9kZVNpemUsbyk7aWYoIXIudmFsaWRDb250ZW50KG4uY29udGVudCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgY29udGVudCBmb3Igbm9kZSB0eXBlICIrci5uYW1lKTt0LnN0ZXAobmV3IGRzKGUsZStuLm5vZGVTaXplLGUrMSxlK24ubm9kZVNpemUtMSxuZXcgbXQoSmUuZnJvbShvKSwwLDApLDEsITApKX1mdW5jdGlvbiBBMSh0LGUscj0xLGEpe2xldCBzPXQucmVzb2x2ZShlKSxuPXMuZGVwdGgtcixvPWEmJmFbYS5sZW5ndGgtMV18fHMucGFyZW50O2lmKG48MHx8cy5wYXJlbnQudHlwZS5zcGVjLmlzb2xhdGluZ3x8IXMucGFyZW50LmNhblJlcGxhY2Uocy5pbmRleCgpLHMucGFyZW50LmNoaWxkQ291bnQpfHwhby50eXBlLnZhbGlkQ29udGVudChzLnBhcmVudC5jb250ZW50LmN1dEJ5SW5kZXgocy5pbmRleCgpLHMucGFyZW50LmNoaWxkQ291bnQpKSlyZXR1cm4hMTtmb3IobGV0IGQ9cy5kZXB0aC0xLGY9ci0yO2Q+bjtkLS0sZi0tKXtsZXQgcD1zLm5vZGUoZCksaD1zLmluZGV4KGQpO2lmKHAudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMTtsZXQgbT1wLmNvbnRlbnQuY3V0QnlJbmRleChoLHAuY2hpbGRDb3VudCksdj1hJiZhW2YrMV07diYmKG09bS5yZXBsYWNlQ2hpbGQoMCx2LnR5cGUuY3JlYXRlKHYuYXR0cnMpKSk7bGV0IGI9YSYmYVtmXXx8cDtpZighcC5jYW5SZXBsYWNlKGgrMSxwLmNoaWxkQ291bnQpfHwhYi50eXBlLnZhbGlkQ29udGVudChtKSlyZXR1cm4hMX1sZXQgbD1zLmluZGV4QWZ0ZXIobiksYz1hJiZhWzBdO3JldHVybiBzLm5vZGUobikuY2FuUmVwbGFjZVdpdGgobCxsLGM/Yy50eXBlOnMubm9kZShuKzEpLnR5cGUpfWZ1bmN0aW9uIHFJYSh0LGUscj0xLGEpe2xldCBzPXQuZG9jLnJlc29sdmUoZSksbj1KZS5lbXB0eSxvPUplLmVtcHR5O2ZvcihsZXQgbD1zLmRlcHRoLGM9cy5kZXB0aC1yLGQ9ci0xO2w+YztsLS0sZC0tKXtuPUplLmZyb20ocy5ub2RlKGwpLmNvcHkobikpO2xldCBmPWEmJmFbZF07bz1KZS5mcm9tKGY/Zi50eXBlLmNyZWF0ZShmLmF0dHJzLG8pOnMubm9kZShsKS5jb3B5KG8pKX10LnN0ZXAobmV3IEluKGUsZSxuZXcgbXQobi5hcHBlbmQobykscixyKSwhMCkpfWZ1bmN0aW9uIGNsKHQsZSl7bGV0IHI9dC5yZXNvbHZlKGUpLGE9ci5pbmRleCgpO3JldHVybiBnV3Ioci5ub2RlQmVmb3JlLHIubm9kZUFmdGVyKSYmci5wYXJlbnQuY2FuUmVwbGFjZShhLGErMSl9ZnVuY3Rpb24gVklhKHQsZSl7ZS5jb250ZW50LnNpemV8fHQudHlwZS5jb21wYXRpYmxlQ29udGVudChlLnR5cGUpO2xldCByPXQuY29udGVudE1hdGNoQXQodC5jaGlsZENvdW50KSx7bGluZWJyZWFrUmVwbGFjZW1lbnQ6YX09dC50eXBlLnNjaGVtYTtmb3IobGV0IHM9MDtzPGUuY2hpbGRDb3VudDtzKyspe2xldCBuPWUuY2hpbGQocyksbz1uLnR5cGU9PWE/dC50eXBlLnNjaGVtYS5ub2Rlcy50ZXh0Om4udHlwZTtpZihyPXIubWF0Y2hUeXBlKG8pLCFyfHwhdC50eXBlLmFsbG93c01hcmtzKG4ubWFya3MpKXJldHVybiExfXJldHVybiByLnZhbGlkRW5kfWZ1bmN0aW9uIGdXcih0LGUpe3JldHVybiEhKHQmJmUmJiF0LmlzTGVhZiYmVklhKHQsZSkpfWZ1bmN0aW9uIEk5KHQsZSxyPS0xKXtsZXQgYT10LnJlc29sdmUoZSk7Zm9yKGxldCBzPWEuZGVwdGg7O3MtLSl7bGV0IG4sbyxsPWEuaW5kZXgocyk7aWYocz09YS5kZXB0aD8obj1hLm5vZGVCZWZvcmUsbz1hLm5vZGVBZnRlcik6cj4wPyhuPWEubm9kZShzKzEpLGwrKyxvPWEubm9kZShzKS5tYXliZUNoaWxkKGwpKToobj1hLm5vZGUocykubWF5YmVDaGlsZChsLTEpLG89YS5ub2RlKHMrMSkpLG4mJiFuLmlzVGV4dGJsb2NrJiZnV3IobixvKSYmYS5ub2RlKHMpLmNhblJlcGxhY2UobCxsKzEpKXJldHVybiBlO2lmKHM9PTApYnJlYWs7ZT1yPDA/YS5iZWZvcmUocyk6YS5hZnRlcihzKX19ZnVuY3Rpb24gaklhKHQsZSxyKXtsZXQgYT1udWxsLHtsaW5lYnJlYWtSZXBsYWNlbWVudDpzfT10LmRvYy50eXBlLnNjaGVtYSxuPXQuZG9jLnJlc29sdmUoZS1yKSxvPW4ubm9kZSgpLnR5cGU7aWYocyYmby5pbmxpbmVDb250ZW50KXtsZXQgZj1vLndoaXRlc3BhY2U9PSJwcmUiLHA9ISFvLmNvbnRlbnRNYXRjaC5tYXRjaFR5cGUocyk7ZiYmIXA/YT0hMTohZiYmcCYmKGE9ITApfWxldCBsPXQuc3RlcHMubGVuZ3RoO2lmKGE9PT0hMSl7bGV0IGY9dC5kb2MucmVzb2x2ZShlK3IpO21Xcih0LGYubm9kZSgpLGYuYmVmb3JlKCksbCl9by5pbmxpbmVDb250ZW50JiZibXQodCxlK3ItMSxvLG4ubm9kZSgpLmNvbnRlbnRNYXRjaEF0KG4uaW5kZXgoKSksYT09bnVsbCk7bGV0IGM9dC5tYXBwaW5nLnNsaWNlKGwpLGQ9Yy5tYXAoZS1yKTtpZih0LnN0ZXAobmV3IEluKGQsYy5tYXAoZStyLC0xKSxtdC5lbXB0eSwhMCkpLGE9PT0hMCl7bGV0IGY9dC5kb2MucmVzb2x2ZShkKTtoV3IodCxmLm5vZGUoKSxmLmJlZm9yZSgpLHQuc3RlcHMubGVuZ3RoKX1yZXR1cm4gdH1mdW5jdGlvbiBiV3IodCxlLHIpe2xldCBhPXQucmVzb2x2ZShlKTtpZihhLnBhcmVudC5jYW5SZXBsYWNlV2l0aChhLmluZGV4KCksYS5pbmRleCgpLHIpKXJldHVybiBlO2lmKGEucGFyZW50T2Zmc2V0PT0wKWZvcihsZXQgcz1hLmRlcHRoLTE7cz49MDtzLS0pe2xldCBuPWEuaW5kZXgocyk7aWYoYS5ub2RlKHMpLmNhblJlcGxhY2VXaXRoKG4sbixyKSlyZXR1cm4gYS5iZWZvcmUocysxKTtpZihuPjApcmV0dXJuIG51bGx9aWYoYS5wYXJlbnRPZmZzZXQ9PWEucGFyZW50LmNvbnRlbnQuc2l6ZSlmb3IobGV0IHM9YS5kZXB0aC0xO3M+PTA7cy0tKXtsZXQgbj1hLmluZGV4QWZ0ZXIocyk7aWYoYS5ub2RlKHMpLmNhblJlcGxhY2VXaXRoKG4sbixyKSlyZXR1cm4gYS5hZnRlcihzKzEpO2lmKG48YS5ub2RlKHMpLmNoaWxkQ291bnQpcmV0dXJuIG51bGx9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQXRlKHQsZSxyKXtsZXQgYT10LnJlc29sdmUoZSk7aWYoIXIuY29udGVudC5zaXplKXJldHVybiBlO2xldCBzPXIuY29udGVudDtmb3IobGV0IG49MDtuPHIub3BlblN0YXJ0O24rKylzPXMuZmlyc3RDaGlsZC5jb250ZW50O2ZvcihsZXQgbj0xO248PShyLm9wZW5TdGFydD09MCYmci5zaXplPzI6MSk7bisrKWZvcihsZXQgbz1hLmRlcHRoO28+PTA7by0tKXtsZXQgbD1vPT1hLmRlcHRoPzA6YS5wb3M8PShhLnN0YXJ0KG8rMSkrYS5lbmQobysxKSkvMj8tMToxLGM9YS5pbmRleChvKSsobD4wPzE6MCksZD1hLm5vZGUobyksZj0hMTtpZihuPT0xKWY9ZC5jYW5SZXBsYWNlKGMsYyxzKTtlbHNle2xldCBwPWQuY29udGVudE1hdGNoQXQoYykuZmluZFdyYXBwaW5nKHMuZmlyc3RDaGlsZC50eXBlKTtmPXAmJmQuY2FuUmVwbGFjZVdpdGgoYyxjLHBbMF0pfWlmKGYpcmV0dXJuIGw9PTA/YS5wb3M6bDwwP2EuYmVmb3JlKG8rMSk6YS5hZnRlcihvKzEpfXJldHVybiBudWxsfWZ1bmN0aW9uIFh5KHQsZSxyPWUsYT1tdC5lbXB0eSl7aWYoZT09ciYmIWEuc2l6ZSlyZXR1cm4gbnVsbDtsZXQgcz10LnJlc29sdmUoZSksbj10LnJlc29sdmUocik7cmV0dXJuIHhXcihzLG4sYSk/bmV3IEluKGUscixhKTpuZXcgeG10KHMsbixhKS5maXQoKX1mdW5jdGlvbiB4V3IodCxlLHIpe3JldHVybiFyLm9wZW5TdGFydCYmIXIub3BlbkVuZCYmdC5zdGFydCgpPT1lLnN0YXJ0KCkmJnQucGFyZW50LmNhblJlcGxhY2UodC5pbmRleCgpLGUuaW5kZXgoKSxyLmNvbnRlbnQpfWZ1bmN0aW9uIFR0ZSh0LGUscil7cmV0dXJuIGU9PTA/dC5jdXRCeUluZGV4KHIsdC5jaGlsZENvdW50KTp0LnJlcGxhY2VDaGlsZCgwLHQuZmlyc3RDaGlsZC5jb3B5KFR0ZSh0LmZpcnN0Q2hpbGQuY29udGVudCxlLTEscikpKX1mdW5jdGlvbiBMdGUodCxlLHIpe3JldHVybiBlPT0wP3QuYXBwZW5kKHIpOnQucmVwbGFjZUNoaWxkKHQuY2hpbGRDb3VudC0xLHQubGFzdENoaWxkLmNvcHkoTHRlKHQubGFzdENoaWxkLmNvbnRlbnQsZS0xLHIpKSl9ZnVuY3Rpb24gdm10KHQsZSl7Zm9yKGxldCByPTA7cjxlO3IrKyl0PXQuZmlyc3RDaGlsZC5jb250ZW50O3JldHVybiB0fWZ1bmN0aW9uIHZXcih0LGUscil7aWYoZTw9MClyZXR1cm4gdDtsZXQgYT10LmNvbnRlbnQ7cmV0dXJuIGU+MSYmKGE9YS5yZXBsYWNlQ2hpbGQoMCx2V3IoYS5maXJzdENoaWxkLGUtMSxhLmNoaWxkQ291bnQ9PTE/ci0xOjApKSksZT4wJiYoYT10LnR5cGUuY29udGVudE1hdGNoLmZpbGxCZWZvcmUoYSkuYXBwZW5kKGEpLHI8PTAmJihhPWEuYXBwZW5kKHQudHlwZS5jb250ZW50TWF0Y2gubWF0Y2hGcmFnbWVudChhKS5maWxsQmVmb3JlKEplLmVtcHR5LCEwKSkpKSx0LmNvcHkoYSl9ZnVuY3Rpb24geW10KHQsZSxyLGEscyl7bGV0IG49dC5ub2RlKGUpLG89cz90LmluZGV4QWZ0ZXIoZSk6dC5pbmRleChlKTtpZihvPT1uLmNoaWxkQ291bnQmJiFyLmNvbXBhdGlibGVDb250ZW50KG4udHlwZSkpcmV0dXJuIG51bGw7bGV0IGw9YS5maWxsQmVmb3JlKG4uY29udGVudCwhMCxvKTtyZXR1cm4gbCYmIVVJYShyLG4uY29udGVudCxvKT9sOm51bGx9ZnVuY3Rpb24gVUlhKHQsZSxyKXtmb3IobGV0IGE9cjthPGUuY2hpbGRDb3VudDthKyspaWYoIXQuYWxsb3dzTWFya3MoZS5jaGlsZChhKS5tYXJrcykpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gV0lhKHQpe3JldHVybiB0LnNwZWMuZGVmaW5pbmd8fHQuc3BlYy5kZWZpbmluZ0ZvckNvbnRlbnR9ZnVuY3Rpb24gR0lhKHQsZSxyLGEpe2lmKCFhLnNpemUpcmV0dXJuIHQuZGVsZXRlUmFuZ2UoZSxyKTtsZXQgcz10LmRvYy5yZXNvbHZlKGUpLG49dC5kb2MucmVzb2x2ZShyKTtpZih4V3IocyxuLGEpKXJldHVybiB0LnN0ZXAobmV3IEluKGUscixhKSk7bGV0IG89d1dyKHMsbik7b1tvLmxlbmd0aC0xXT09MCYmby5wb3AoKTtsZXQgbD0tKHMuZGVwdGgrMSk7by51bnNoaWZ0KGwpO2ZvcihsZXQgaD1zLmRlcHRoLG09cy5wb3MtMTtoPjA7aC0tLG0tLSl7bGV0IHY9cy5ub2RlKGgpLnR5cGUuc3BlYztpZih2LmRlZmluaW5nfHx2LmRlZmluaW5nQXNDb250ZXh0fHx2Lmlzb2xhdGluZylicmVhaztvLmluZGV4T2YoaCk+LTE/bD1oOnMuYmVmb3JlKGgpPT1tJiZvLnNwbGljZSgxLDAsLWgpfWxldCBjPW8uaW5kZXhPZihsKSxkPVtdLGY9YS5vcGVuU3RhcnQ7Zm9yKGxldCBoPWEuY29udGVudCxtPTA7O20rKyl7bGV0IHY9aC5maXJzdENoaWxkO2lmKGQucHVzaCh2KSxtPT1hLm9wZW5TdGFydClicmVhaztoPXYuY29udGVudH1mb3IobGV0IGg9Zi0xO2g+PTA7aC0tKXtsZXQgbT1kW2hdLHY9V0lhKG0udHlwZSk7aWYodiYmIW0uc2FtZU1hcmt1cChzLm5vZGUoTWF0aC5hYnMobCktMSkpKWY9aDtlbHNlIGlmKHZ8fCFtLnR5cGUuaXNUZXh0YmxvY2spYnJlYWt9Zm9yKGxldCBoPWEub3BlblN0YXJ0O2g+PTA7aC0tKXtsZXQgbT0oaCtmKzEpJShhLm9wZW5TdGFydCsxKSx2PWRbbV07aWYodilmb3IobGV0IGI9MDtiPG8ubGVuZ3RoO2IrKyl7bGV0IGc9b1soYitjKSVvLmxlbmd0aF0seT0hMDtnPDAmJih5PSExLGc9LWcpO2xldCBrPXMubm9kZShnLTEpLE09cy5pbmRleChnLTEpO2lmKGsuY2FuUmVwbGFjZVdpdGgoTSxNLHYudHlwZSx2Lm1hcmtzKSlyZXR1cm4gdC5yZXBsYWNlKHMuYmVmb3JlKGcpLHk/bi5hZnRlcihnKTpyLG5ldyBtdCh5V3IoYS5jb250ZW50LDAsYS5vcGVuU3RhcnQsbSksbSxhLm9wZW5FbmQpKX19bGV0IHA9dC5zdGVwcy5sZW5ndGg7Zm9yKGxldCBoPW8ubGVuZ3RoLTE7aD49MCYmKHQucmVwbGFjZShlLHIsYSksISh0LnN0ZXBzLmxlbmd0aD5wKSk7aC0tKXtsZXQgbT1vW2hdO208MHx8KGU9cy5iZWZvcmUobSkscj1uLmFmdGVyKG0pKX19ZnVuY3Rpb24geVdyKHQsZSxyLGEscyl7aWYoZTxyKXtsZXQgbj10LmZpcnN0Q2hpbGQ7dD10LnJlcGxhY2VDaGlsZCgwLG4uY29weSh5V3Iobi5jb250ZW50LGUrMSxyLGEsbikpKX1pZihlPmEpe2xldCBuPXMuY29udGVudE1hdGNoQXQoMCksbz1uLmZpbGxCZWZvcmUodCkuYXBwZW5kKHQpO3Q9by5hcHBlbmQobi5tYXRjaEZyYWdtZW50KG8pLmZpbGxCZWZvcmUoSmUuZW1wdHksITApKX1yZXR1cm4gdH1mdW5jdGlvbiBZSWEodCxlLHIsYSl7aWYoIWEuaXNJbmxpbmUmJmU9PXImJnQuZG9jLnJlc29sdmUoZSkucGFyZW50LmNvbnRlbnQuc2l6ZSl7bGV0IHM9YldyKHQuZG9jLGUsYS50eXBlKTtzIT1udWxsJiYoZT1yPXMpfXQucmVwbGFjZVJhbmdlKGUscixuZXcgbXQoSmUuZnJvbShhKSwwLDApKX1mdW5jdGlvbiBLSWEodCxlLHIpe2xldCBhPXQuZG9jLnJlc29sdmUoZSkscz10LmRvYy5yZXNvbHZlKHIpLG49d1dyKGEscyk7Zm9yKGxldCBvPTA7bzxuLmxlbmd0aDtvKyspe2xldCBsPW5bb10sYz1vPT1uLmxlbmd0aC0xO2lmKGMmJmw9PTB8fGEubm9kZShsKS50eXBlLmNvbnRlbnRNYXRjaC52YWxpZEVuZClyZXR1cm4gdC5kZWxldGUoYS5zdGFydChsKSxzLmVuZChsKSk7aWYobD4wJiYoY3x8YS5ub2RlKGwtMSkuY2FuUmVwbGFjZShhLmluZGV4KGwtMSkscy5pbmRleEFmdGVyKGwtMSkpKSlyZXR1cm4gdC5kZWxldGUoYS5iZWZvcmUobCkscy5hZnRlcihsKSl9Zm9yKGxldCBvPTE7bzw9YS5kZXB0aCYmbzw9cy5kZXB0aDtvKyspaWYoZS1hLnN0YXJ0KG8pPT1hLmRlcHRoLW8mJnI+YS5lbmQobykmJnMuZW5kKG8pLXIhPXMuZGVwdGgtbyYmYS5zdGFydChvLTEpPT1zLnN0YXJ0KG8tMSkmJmEubm9kZShvLTEpLmNhblJlcGxhY2UoYS5pbmRleChvLTEpLHMuaW5kZXgoby0xKSkpcmV0dXJuIHQuZGVsZXRlKGEuYmVmb3JlKG8pLHIpO3QuZGVsZXRlKGUscil9ZnVuY3Rpb24gd1dyKHQsZSl7bGV0IHI9W10sYT1NYXRoLm1pbih0LmRlcHRoLGUuZGVwdGgpO2ZvcihsZXQgcz1hO3M+PTA7cy0tKXtsZXQgbj10LnN0YXJ0KHMpO2lmKG48dC5wb3MtKHQuZGVwdGgtcyl8fGUuZW5kKHMpPmUucG9zKyhlLmRlcHRoLXMpfHx0Lm5vZGUocykudHlwZS5zcGVjLmlzb2xhdGluZ3x8ZS5ub2RlKHMpLnR5cGUuc3BlYy5pc29sYXRpbmcpYnJlYWs7KG49PWUuc3RhcnQocyl8fHM9PXQuZGVwdGgmJnM9PWUuZGVwdGgmJnQucGFyZW50LmlubGluZUNvbnRlbnQmJmUucGFyZW50LmlubGluZUNvbnRlbnQmJnMmJmUuc3RhcnQocy0xKT09bi0xKSYmci5wdXNoKHMpfXJldHVybiByfXZhciBvV3IsbFdyLGRXcix1V3IsdmZlLHBXcixZeSxsZCxReSxobXQsYW4sa24sS3ksVXAsWnksRDksSW4sZHMseG10LER0ZSwkdGUsJDksQTksV3A9dSgoKT0+e2pwKCk7b1dyPTY1NTM1LGxXcj1NYXRoLnBvdygyLDE2KTtpKERJYSwibWFrZVJlY292ZXIiKTtpKGNXciwicmVjb3ZlckluZGV4Iik7aSgkSWEsInJlY292ZXJPZmZzZXQiKTtkV3I9MSx1V3I9Mix2ZmU9NCxwV3I9OCxZeT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJNYXBSZXN1bHQiKX1jb25zdHJ1Y3RvcihlLHIsYSl7dGhpcy5wb3M9ZSx0aGlzLmRlbEluZm89cix0aGlzLnJlY292ZXI9YX1nZXQgZGVsZXRlZCgpe3JldHVybih0aGlzLmRlbEluZm8mcFdyKT4wfWdldCBkZWxldGVkQmVmb3JlKCl7cmV0dXJuKHRoaXMuZGVsSW5mbyYoZFdyfHZmZSkpPjB9Z2V0IGRlbGV0ZWRBZnRlcigpe3JldHVybih0aGlzLmRlbEluZm8mKHVXcnx2ZmUpKT4wfWdldCBkZWxldGVkQWNyb3NzKCl7cmV0dXJuKHRoaXMuZGVsSW5mbyZ2ZmUpPjB9fSxsZD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIlN0ZXBNYXAiKX1jb25zdHJ1Y3RvcihlLHI9ITEpe2lmKHRoaXMucmFuZ2VzPWUsdGhpcy5pbnZlcnRlZD1yLCFlLmxlbmd0aCYmdC5lbXB0eSlyZXR1cm4gdC5lbXB0eX1yZWNvdmVyKGUpe2xldCByPTAsYT1jV3IoZSk7aWYoIXRoaXMuaW52ZXJ0ZWQpZm9yKGxldCBzPTA7czxhO3MrKylyKz10aGlzLnJhbmdlc1tzKjMrMl0tdGhpcy5yYW5nZXNbcyozKzFdO3JldHVybiB0aGlzLnJhbmdlc1thKjNdK3IrJElhKGUpfW1hcFJlc3VsdChlLHI9MSl7cmV0dXJuIHRoaXMuX21hcChlLHIsITEpfW1hcChlLHI9MSl7cmV0dXJuIHRoaXMuX21hcChlLHIsITApfV9tYXAoZSxyLGEpe2xldCBzPTAsbj10aGlzLmludmVydGVkPzI6MSxvPXRoaXMuaW52ZXJ0ZWQ/MToyO2ZvcihsZXQgbD0wO2w8dGhpcy5yYW5nZXMubGVuZ3RoO2wrPTMpe2xldCBjPXRoaXMucmFuZ2VzW2xdLSh0aGlzLmludmVydGVkP3M6MCk7aWYoYz5lKWJyZWFrO2xldCBkPXRoaXMucmFuZ2VzW2wrbl0sZj10aGlzLnJhbmdlc1tsK29dLHA9YytkO2lmKGU8PXApe2xldCBoPWQ/ZT09Yz8tMTplPT1wPzE6cjpyLG09YytzKyhoPDA/MDpmKTtpZihhKXJldHVybiBtO2xldCB2PWU9PShyPDA/YzpwKT9udWxsOkRJYShsLzMsZS1jKSxiPWU9PWM/dVdyOmU9PXA/ZFdyOnZmZTtyZXR1cm4ocjwwP2UhPWM6ZSE9cCkmJihifD1wV3IpLG5ldyBZeShtLGIsdil9cys9Zi1kfXJldHVybiBhP2UrczpuZXcgWXkoZStzLDAsbnVsbCl9dG91Y2hlcyhlLHIpe2xldCBhPTAscz1jV3Iociksbj10aGlzLmludmVydGVkPzI6MSxvPXRoaXMuaW52ZXJ0ZWQ/MToyO2ZvcihsZXQgbD0wO2w8dGhpcy5yYW5nZXMubGVuZ3RoO2wrPTMpe2xldCBjPXRoaXMucmFuZ2VzW2xdLSh0aGlzLmludmVydGVkP2E6MCk7aWYoYz5lKWJyZWFrO2xldCBkPXRoaXMucmFuZ2VzW2wrbl0sZj1jK2Q7aWYoZTw9ZiYmbD09cyozKXJldHVybiEwO2ErPXRoaXMucmFuZ2VzW2wrb10tZH1yZXR1cm4hMX1mb3JFYWNoKGUpe2xldCByPXRoaXMuaW52ZXJ0ZWQ/MjoxLGE9dGhpcy5pbnZlcnRlZD8xOjI7Zm9yKGxldCBzPTAsbj0wO3M8dGhpcy5yYW5nZXMubGVuZ3RoO3MrPTMpe2xldCBvPXRoaXMucmFuZ2VzW3NdLGw9by0odGhpcy5pbnZlcnRlZD9uOjApLGM9bysodGhpcy5pbnZlcnRlZD8wOm4pLGQ9dGhpcy5yYW5nZXNbcytyXSxmPXRoaXMucmFuZ2VzW3MrYV07ZShsLGwrZCxjLGMrZiksbis9Zi1kfX1pbnZlcnQoKXtyZXR1cm4gbmV3IHQodGhpcy5yYW5nZXMsIXRoaXMuaW52ZXJ0ZWQpfXRvU3RyaW5nKCl7cmV0dXJuKHRoaXMuaW52ZXJ0ZWQ/Ii0iOiIiKStKU09OLnN0cmluZ2lmeSh0aGlzLnJhbmdlcyl9c3RhdGljIG9mZnNldChlKXtyZXR1cm4gZT09MD90LmVtcHR5Om5ldyB0KGU8MD9bMCwtZSwwXTpbMCwwLGVdKX19O2xkLmVtcHR5PW5ldyBsZChbXSk7UXk9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJNYXBwaW5nIil9Y29uc3RydWN0b3IoZSxyLGE9MCxzPWU/ZS5sZW5ndGg6MCl7dGhpcy5taXJyb3I9cix0aGlzLmZyb209YSx0aGlzLnRvPXMsdGhpcy5fbWFwcz1lfHxbXSx0aGlzLm93bkRhdGE9IShlfHxyKX1nZXQgbWFwcygpe3JldHVybiB0aGlzLl9tYXBzfXNsaWNlKGU9MCxyPXRoaXMubWFwcy5sZW5ndGgpe3JldHVybiBuZXcgdCh0aGlzLl9tYXBzLHRoaXMubWlycm9yLGUscil9YXBwZW5kTWFwKGUscil7dGhpcy5vd25EYXRhfHwodGhpcy5fbWFwcz10aGlzLl9tYXBzLnNsaWNlKCksdGhpcy5taXJyb3I9dGhpcy5taXJyb3ImJnRoaXMubWlycm9yLnNsaWNlKCksdGhpcy5vd25EYXRhPSEwKSx0aGlzLnRvPXRoaXMuX21hcHMucHVzaChlKSxyIT1udWxsJiZ0aGlzLnNldE1pcnJvcih0aGlzLl9tYXBzLmxlbmd0aC0xLHIpfWFwcGVuZE1hcHBpbmcoZSl7Zm9yKGxldCByPTAsYT10aGlzLl9tYXBzLmxlbmd0aDtyPGUuX21hcHMubGVuZ3RoO3IrKyl7bGV0IHM9ZS5nZXRNaXJyb3Iocik7dGhpcy5hcHBlbmRNYXAoZS5fbWFwc1tyXSxzIT1udWxsJiZzPHI/YStzOnZvaWQgMCl9fWdldE1pcnJvcihlKXtpZih0aGlzLm1pcnJvcil7Zm9yKGxldCByPTA7cjx0aGlzLm1pcnJvci5sZW5ndGg7cisrKWlmKHRoaXMubWlycm9yW3JdPT1lKXJldHVybiB0aGlzLm1pcnJvcltyKyhyJTI/LTE6MSldfX1zZXRNaXJyb3IoZSxyKXt0aGlzLm1pcnJvcnx8KHRoaXMubWlycm9yPVtdKSx0aGlzLm1pcnJvci5wdXNoKGUscil9YXBwZW5kTWFwcGluZ0ludmVydGVkKGUpe2ZvcihsZXQgcj1lLm1hcHMubGVuZ3RoLTEsYT10aGlzLl9tYXBzLmxlbmd0aCtlLl9tYXBzLmxlbmd0aDtyPj0wO3ItLSl7bGV0IHM9ZS5nZXRNaXJyb3Iocik7dGhpcy5hcHBlbmRNYXAoZS5fbWFwc1tyXS5pbnZlcnQoKSxzIT1udWxsJiZzPnI/YS1zLTE6dm9pZCAwKX19aW52ZXJ0KCl7bGV0IGU9bmV3IHQ7cmV0dXJuIGUuYXBwZW5kTWFwcGluZ0ludmVydGVkKHRoaXMpLGV9bWFwKGUscj0xKXtpZih0aGlzLm1pcnJvcilyZXR1cm4gdGhpcy5fbWFwKGUsciwhMCk7Zm9yKGxldCBhPXRoaXMuZnJvbTthPHRoaXMudG87YSsrKWU9dGhpcy5fbWFwc1thXS5tYXAoZSxyKTtyZXR1cm4gZX1tYXBSZXN1bHQoZSxyPTEpe3JldHVybiB0aGlzLl9tYXAoZSxyLCExKX1fbWFwKGUscixhKXtsZXQgcz0wO2ZvcihsZXQgbj10aGlzLmZyb207bjx0aGlzLnRvO24rKyl7bGV0IG89dGhpcy5fbWFwc1tuXSxsPW8ubWFwUmVzdWx0KGUscik7aWYobC5yZWNvdmVyIT1udWxsKXtsZXQgYz10aGlzLmdldE1pcnJvcihuKTtpZihjIT1udWxsJiZjPm4mJmM8dGhpcy50byl7bj1jLGU9dGhpcy5fbWFwc1tjXS5yZWNvdmVyKGwucmVjb3Zlcik7Y29udGludWV9fXN8PWwuZGVsSW5mbyxlPWwucG9zfXJldHVybiBhP2U6bmV3IFl5KGUscyxudWxsKX19LGhtdD1PYmplY3QuY3JlYXRlKG51bGwpLGFuPWNsYXNze3N0YXRpY3tpKHRoaXMsIlN0ZXAiKX1nZXRNYXAoKXtyZXR1cm4gbGQuZW1wdHl9bWVyZ2UoZSl7cmV0dXJuIG51bGx9c3RhdGljIGZyb21KU09OKGUscil7aWYoIXJ8fCFyLnN0ZXBUeXBlKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBTdGVwLmZyb21KU09OIik7bGV0IGE9aG10W3Iuc3RlcFR5cGVdO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKGBObyBzdGVwIHR5cGUgJHtyLnN0ZXBUeXBlfSBkZWZpbmVkYCk7cmV0dXJuIGEuZnJvbUpTT04oZSxyKX1zdGF0aWMganNvbklEKGUscil7aWYoZSBpbiBobXQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkR1cGxpY2F0ZSB1c2Ugb2Ygc3RlcCBKU09OIElEICIrZSk7cmV0dXJuIGhtdFtlXT1yLHIucHJvdG90eXBlLmpzb25JRD1lLHJ9fSxrbj1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIlN0ZXBSZXN1bHQiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuZG9jPWUsdGhpcy5mYWlsZWQ9cn1zdGF0aWMgb2soZSl7cmV0dXJuIG5ldyB0KGUsbnVsbCl9c3RhdGljIGZhaWwoZSl7cmV0dXJuIG5ldyB0KG51bGwsZSl9c3RhdGljIGZyb21SZXBsYWNlKGUscixhLHMpe3RyeXtyZXR1cm4gdC5vayhlLnJlcGxhY2UocixhLHMpKX1jYXRjaChuKXtpZihuIGluc3RhbmNlb2YgcXApcmV0dXJuIHQuZmFpbChuLm1lc3NhZ2UpO3Rocm93IG59fX07aShtbXQsIm1hcEZyYWdtZW50Iik7S3k9Y2xhc3MgdCBleHRlbmRzIGFue3N0YXRpY3tpKHRoaXMsIkFkZE1hcmtTdGVwIil9Y29uc3RydWN0b3IoZSxyLGEpe3N1cGVyKCksdGhpcy5mcm9tPWUsdGhpcy50bz1yLHRoaXMubWFyaz1hfWFwcGx5KGUpe2xldCByPWUuc2xpY2UodGhpcy5mcm9tLHRoaXMudG8pLGE9ZS5yZXNvbHZlKHRoaXMuZnJvbSkscz1hLm5vZGUoYS5zaGFyZWREZXB0aCh0aGlzLnRvKSksbj1uZXcgbXQobW10KHIuY29udGVudCwobyxsKT0+IW8uaXNBdG9tfHwhbC50eXBlLmFsbG93c01hcmtUeXBlKHRoaXMubWFyay50eXBlKT9vOm8ubWFyayh0aGlzLm1hcmsuYWRkVG9TZXQoby5tYXJrcykpLHMpLHIub3BlblN0YXJ0LHIub3BlbkVuZCk7cmV0dXJuIGtuLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sbil9aW52ZXJ0KCl7cmV0dXJuIG5ldyBVcCh0aGlzLmZyb20sdGhpcy50byx0aGlzLm1hcmspfW1hcChlKXtsZXQgcj1lLm1hcFJlc3VsdCh0aGlzLmZyb20sMSksYT1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKTtyZXR1cm4gci5kZWxldGVkJiZhLmRlbGV0ZWR8fHIucG9zPj1hLnBvcz9udWxsOm5ldyB0KHIucG9zLGEucG9zLHRoaXMubWFyayl9bWVyZ2UoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0JiZlLm1hcmsuZXEodGhpcy5tYXJrKSYmdGhpcy5mcm9tPD1lLnRvJiZ0aGlzLnRvPj1lLmZyb20/bmV3IHQoTWF0aC5taW4odGhpcy5mcm9tLGUuZnJvbSksTWF0aC5tYXgodGhpcy50byxlLnRvKSx0aGlzLm1hcmspOm51bGx9dG9KU09OKCl7cmV0dXJue3N0ZXBUeXBlOiJhZGRNYXJrIixtYXJrOnRoaXMubWFyay50b0pTT04oKSxmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfX1zdGF0aWMgZnJvbUpTT04oZSxyKXtpZih0eXBlb2Ygci5mcm9tIT0ibnVtYmVyInx8dHlwZW9mIHIudG8hPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBBZGRNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgdChyLmZyb20sci50byxlLm1hcmtGcm9tSlNPTihyLm1hcmspKX19O2FuLmpzb25JRCgiYWRkTWFyayIsS3kpO1VwPWNsYXNzIHQgZXh0ZW5kcyBhbntzdGF0aWN7aSh0aGlzLCJSZW1vdmVNYXJrU3RlcCIpfWNvbnN0cnVjdG9yKGUscixhKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89cix0aGlzLm1hcms9YX1hcHBseShlKXtsZXQgcj1lLnNsaWNlKHRoaXMuZnJvbSx0aGlzLnRvKSxhPW5ldyBtdChtbXQoci5jb250ZW50LHM9PnMubWFyayh0aGlzLm1hcmsucmVtb3ZlRnJvbVNldChzLm1hcmtzKSksZSksci5vcGVuU3RhcnQsci5vcGVuRW5kKTtyZXR1cm4ga24uZnJvbVJlcGxhY2UoZSx0aGlzLmZyb20sdGhpcy50byxhKX1pbnZlcnQoKXtyZXR1cm4gbmV3IEt5KHRoaXMuZnJvbSx0aGlzLnRvLHRoaXMubWFyayl9bWFwKGUpe2xldCByPWUubWFwUmVzdWx0KHRoaXMuZnJvbSwxKSxhPWUubWFwUmVzdWx0KHRoaXMudG8sLTEpO3JldHVybiByLmRlbGV0ZWQmJmEuZGVsZXRlZHx8ci5wb3M+PWEucG9zP251bGw6bmV3IHQoci5wb3MsYS5wb3MsdGhpcy5tYXJrKX1tZXJnZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHQmJmUubWFyay5lcSh0aGlzLm1hcmspJiZ0aGlzLmZyb208PWUudG8mJnRoaXMudG8+PWUuZnJvbT9uZXcgdChNYXRoLm1pbih0aGlzLmZyb20sZS5mcm9tKSxNYXRoLm1heCh0aGlzLnRvLGUudG8pLHRoaXMubWFyayk6bnVsbH10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6InJlbW92ZU1hcmsiLG1hcms6dGhpcy5tYXJrLnRvSlNPTigpLGZyb206dGhpcy5mcm9tLHRvOnRoaXMudG99fXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLmZyb20hPSJudW1iZXIifHx0eXBlb2Ygci50byE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlbW92ZU1hcmtTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyB0KHIuZnJvbSxyLnRvLGUubWFya0Zyb21KU09OKHIubWFyaykpfX07YW4uanNvbklEKCJyZW1vdmVNYXJrIixVcCk7Wnk9Y2xhc3MgdCBleHRlbmRzIGFue3N0YXRpY3tpKHRoaXMsIkFkZE5vZGVNYXJrU3RlcCIpfWNvbnN0cnVjdG9yKGUscil7c3VwZXIoKSx0aGlzLnBvcz1lLHRoaXMubWFyaz1yfWFwcGx5KGUpe2xldCByPWUubm9kZUF0KHRoaXMucG9zKTtpZighcilyZXR1cm4ga24uZmFpbCgiTm8gbm9kZSBhdCBtYXJrIHN0ZXAncyBwb3NpdGlvbiIpO2xldCBhPXIudHlwZS5jcmVhdGUoci5hdHRycyxudWxsLHRoaXMubWFyay5hZGRUb1NldChyLm1hcmtzKSk7cmV0dXJuIGtuLmZyb21SZXBsYWNlKGUsdGhpcy5wb3MsdGhpcy5wb3MrMSxuZXcgbXQoSmUuZnJvbShhKSwwLHIuaXNMZWFmPzA6MSkpfWludmVydChlKXtsZXQgcj1lLm5vZGVBdCh0aGlzLnBvcyk7aWYocil7bGV0IGE9dGhpcy5tYXJrLmFkZFRvU2V0KHIubWFya3MpO2lmKGEubGVuZ3RoPT1yLm1hcmtzLmxlbmd0aCl7Zm9yKGxldCBzPTA7czxyLm1hcmtzLmxlbmd0aDtzKyspaWYoIXIubWFya3Nbc10uaXNJblNldChhKSlyZXR1cm4gbmV3IHQodGhpcy5wb3Msci5tYXJrc1tzXSk7cmV0dXJuIG5ldyB0KHRoaXMucG9zLHRoaXMubWFyayl9fXJldHVybiBuZXcgRDkodGhpcy5wb3MsdGhpcy5tYXJrKX1tYXAoZSl7bGV0IHI9ZS5tYXBSZXN1bHQodGhpcy5wb3MsMSk7cmV0dXJuIHIuZGVsZXRlZEFmdGVyP251bGw6bmV3IHQoci5wb3MsdGhpcy5tYXJrKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6ImFkZE5vZGVNYXJrIixwb3M6dGhpcy5wb3MsbWFyazp0aGlzLm1hcmsudG9KU09OKCl9fXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLnBvcyE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIEFkZE5vZGVNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgdChyLnBvcyxlLm1hcmtGcm9tSlNPTihyLm1hcmspKX19O2FuLmpzb25JRCgiYWRkTm9kZU1hcmsiLFp5KTtEOT1jbGFzcyB0IGV4dGVuZHMgYW57c3RhdGlje2kodGhpcywiUmVtb3ZlTm9kZU1hcmtTdGVwIil9Y29uc3RydWN0b3IoZSxyKXtzdXBlcigpLHRoaXMucG9zPWUsdGhpcy5tYXJrPXJ9YXBwbHkoZSl7bGV0IHI9ZS5ub2RlQXQodGhpcy5wb3MpO2lmKCFyKXJldHVybiBrbi5mYWlsKCJObyBub2RlIGF0IG1hcmsgc3RlcCdzIHBvc2l0aW9uIik7bGV0IGE9ci50eXBlLmNyZWF0ZShyLmF0dHJzLG51bGwsdGhpcy5tYXJrLnJlbW92ZUZyb21TZXQoci5tYXJrcykpO3JldHVybiBrbi5mcm9tUmVwbGFjZShlLHRoaXMucG9zLHRoaXMucG9zKzEsbmV3IG10KEplLmZyb20oYSksMCxyLmlzTGVhZj8wOjEpKX1pbnZlcnQoZSl7bGV0IHI9ZS5ub2RlQXQodGhpcy5wb3MpO3JldHVybiFyfHwhdGhpcy5tYXJrLmlzSW5TZXQoci5tYXJrcyk/dGhpczpuZXcgWnkodGhpcy5wb3MsdGhpcy5tYXJrKX1tYXAoZSl7bGV0IHI9ZS5tYXBSZXN1bHQodGhpcy5wb3MsMSk7cmV0dXJuIHIuZGVsZXRlZEFmdGVyP251bGw6bmV3IHQoci5wb3MsdGhpcy5tYXJrKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6InJlbW92ZU5vZGVNYXJrIixwb3M6dGhpcy5wb3MsbWFyazp0aGlzLm1hcmsudG9KU09OKCl9fXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLnBvcyE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlbW92ZU5vZGVNYXJrU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgdChyLnBvcyxlLm1hcmtGcm9tSlNPTihyLm1hcmspKX19O2FuLmpzb25JRCgicmVtb3ZlTm9kZU1hcmsiLEQ5KTtJbj1jbGFzcyB0IGV4dGVuZHMgYW57c3RhdGlje2kodGhpcywiUmVwbGFjZVN0ZXAiKX1jb25zdHJ1Y3RvcihlLHIsYSxzPSExKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89cix0aGlzLnNsaWNlPWEsdGhpcy5zdHJ1Y3R1cmU9c31hcHBseShlKXtyZXR1cm4gdGhpcy5zdHJ1Y3R1cmUmJmdtdChlLHRoaXMuZnJvbSx0aGlzLnRvKT9rbi5mYWlsKCJTdHJ1Y3R1cmUgcmVwbGFjZSB3b3VsZCBvdmVyd3JpdGUgY29udGVudCIpOmtuLmZyb21SZXBsYWNlKGUsdGhpcy5mcm9tLHRoaXMudG8sdGhpcy5zbGljZSl9Z2V0TWFwKCl7cmV0dXJuIG5ldyBsZChbdGhpcy5mcm9tLHRoaXMudG8tdGhpcy5mcm9tLHRoaXMuc2xpY2Uuc2l6ZV0pfWludmVydChlKXtyZXR1cm4gbmV3IHQodGhpcy5mcm9tLHRoaXMuZnJvbSt0aGlzLnNsaWNlLnNpemUsZS5zbGljZSh0aGlzLmZyb20sdGhpcy50bykpfW1hcChlKXtsZXQgcj1lLm1hcFJlc3VsdCh0aGlzLmZyb20sMSksYT1lLm1hcFJlc3VsdCh0aGlzLnRvLC0xKTtyZXR1cm4gci5kZWxldGVkQWNyb3NzJiZhLmRlbGV0ZWRBY3Jvc3M/bnVsbDpuZXcgdChyLnBvcyxNYXRoLm1heChyLnBvcyxhLnBvcyksdGhpcy5zbGljZSx0aGlzLnN0cnVjdHVyZSl9bWVyZ2UoZSl7aWYoIShlIGluc3RhbmNlb2YgdCl8fGUuc3RydWN0dXJlfHx0aGlzLnN0cnVjdHVyZSlyZXR1cm4gbnVsbDtpZih0aGlzLmZyb20rdGhpcy5zbGljZS5zaXplPT1lLmZyb20mJiF0aGlzLnNsaWNlLm9wZW5FbmQmJiFlLnNsaWNlLm9wZW5TdGFydCl7bGV0IHI9dGhpcy5zbGljZS5zaXplK2Uuc2xpY2Uuc2l6ZT09MD9tdC5lbXB0eTpuZXcgbXQodGhpcy5zbGljZS5jb250ZW50LmFwcGVuZChlLnNsaWNlLmNvbnRlbnQpLHRoaXMuc2xpY2Uub3BlblN0YXJ0LGUuc2xpY2Uub3BlbkVuZCk7cmV0dXJuIG5ldyB0KHRoaXMuZnJvbSx0aGlzLnRvKyhlLnRvLWUuZnJvbSkscix0aGlzLnN0cnVjdHVyZSl9ZWxzZSBpZihlLnRvPT10aGlzLmZyb20mJiF0aGlzLnNsaWNlLm9wZW5TdGFydCYmIWUuc2xpY2Uub3BlbkVuZCl7bGV0IHI9dGhpcy5zbGljZS5zaXplK2Uuc2xpY2Uuc2l6ZT09MD9tdC5lbXB0eTpuZXcgbXQoZS5zbGljZS5jb250ZW50LmFwcGVuZCh0aGlzLnNsaWNlLmNvbnRlbnQpLGUuc2xpY2Uub3BlblN0YXJ0LHRoaXMuc2xpY2Uub3BlbkVuZCk7cmV0dXJuIG5ldyB0KGUuZnJvbSx0aGlzLnRvLHIsdGhpcy5zdHJ1Y3R1cmUpfWVsc2UgcmV0dXJuIG51bGx9dG9KU09OKCl7bGV0IGU9e3N0ZXBUeXBlOiJyZXBsYWNlIixmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfTtyZXR1cm4gdGhpcy5zbGljZS5zaXplJiYoZS5zbGljZT10aGlzLnNsaWNlLnRvSlNPTigpKSx0aGlzLnN0cnVjdHVyZSYmKGUuc3RydWN0dXJlPSEwKSxlfXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLmZyb20hPSJudW1iZXIifHx0eXBlb2Ygci50byE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlcGxhY2VTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyB0KHIuZnJvbSxyLnRvLG10LmZyb21KU09OKGUsci5zbGljZSksISFyLnN0cnVjdHVyZSl9fTthbi5qc29uSUQoInJlcGxhY2UiLEluKTtkcz1jbGFzcyB0IGV4dGVuZHMgYW57c3RhdGlje2kodGhpcywiUmVwbGFjZUFyb3VuZFN0ZXAiKX1jb25zdHJ1Y3RvcihlLHIsYSxzLG4sbyxsPSExKXtzdXBlcigpLHRoaXMuZnJvbT1lLHRoaXMudG89cix0aGlzLmdhcEZyb209YSx0aGlzLmdhcFRvPXMsdGhpcy5zbGljZT1uLHRoaXMuaW5zZXJ0PW8sdGhpcy5zdHJ1Y3R1cmU9bH1hcHBseShlKXtpZih0aGlzLnN0cnVjdHVyZSYmKGdtdChlLHRoaXMuZnJvbSx0aGlzLmdhcEZyb20pfHxnbXQoZSx0aGlzLmdhcFRvLHRoaXMudG8pKSlyZXR1cm4ga24uZmFpbCgiU3RydWN0dXJlIGdhcC1yZXBsYWNlIHdvdWxkIG92ZXJ3cml0ZSBjb250ZW50Iik7bGV0IHI9ZS5zbGljZSh0aGlzLmdhcEZyb20sdGhpcy5nYXBUbyk7aWYoci5vcGVuU3RhcnR8fHIub3BlbkVuZClyZXR1cm4ga24uZmFpbCgiR2FwIGlzIG5vdCBhIGZsYXQgcmFuZ2UiKTtsZXQgYT10aGlzLnNsaWNlLmluc2VydEF0KHRoaXMuaW5zZXJ0LHIuY29udGVudCk7cmV0dXJuIGE/a24uZnJvbVJlcGxhY2UoZSx0aGlzLmZyb20sdGhpcy50byxhKTprbi5mYWlsKCJDb250ZW50IGRvZXMgbm90IGZpdCBpbiBnYXAiKX1nZXRNYXAoKXtyZXR1cm4gbmV3IGxkKFt0aGlzLmZyb20sdGhpcy5nYXBGcm9tLXRoaXMuZnJvbSx0aGlzLmluc2VydCx0aGlzLmdhcFRvLHRoaXMudG8tdGhpcy5nYXBUbyx0aGlzLnNsaWNlLnNpemUtdGhpcy5pbnNlcnRdKX1pbnZlcnQoZSl7bGV0IHI9dGhpcy5nYXBUby10aGlzLmdhcEZyb207cmV0dXJuIG5ldyB0KHRoaXMuZnJvbSx0aGlzLmZyb20rdGhpcy5zbGljZS5zaXplK3IsdGhpcy5mcm9tK3RoaXMuaW5zZXJ0LHRoaXMuZnJvbSt0aGlzLmluc2VydCtyLGUuc2xpY2UodGhpcy5mcm9tLHRoaXMudG8pLnJlbW92ZUJldHdlZW4odGhpcy5nYXBGcm9tLXRoaXMuZnJvbSx0aGlzLmdhcFRvLXRoaXMuZnJvbSksdGhpcy5nYXBGcm9tLXRoaXMuZnJvbSx0aGlzLnN0cnVjdHVyZSl9bWFwKGUpe2xldCByPWUubWFwUmVzdWx0KHRoaXMuZnJvbSwxKSxhPWUubWFwUmVzdWx0KHRoaXMudG8sLTEpLHM9dGhpcy5mcm9tPT10aGlzLmdhcEZyb20/ci5wb3M6ZS5tYXAodGhpcy5nYXBGcm9tLC0xKSxuPXRoaXMudG89PXRoaXMuZ2FwVG8/YS5wb3M6ZS5tYXAodGhpcy5nYXBUbywxKTtyZXR1cm4gci5kZWxldGVkQWNyb3NzJiZhLmRlbGV0ZWRBY3Jvc3N8fHM8ci5wb3N8fG4+YS5wb3M/bnVsbDpuZXcgdChyLnBvcyxhLnBvcyxzLG4sdGhpcy5zbGljZSx0aGlzLmluc2VydCx0aGlzLnN0cnVjdHVyZSl9dG9KU09OKCl7bGV0IGU9e3N0ZXBUeXBlOiJyZXBsYWNlQXJvdW5kIixmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvLGdhcEZyb206dGhpcy5nYXBGcm9tLGdhcFRvOnRoaXMuZ2FwVG8saW5zZXJ0OnRoaXMuaW5zZXJ0fTtyZXR1cm4gdGhpcy5zbGljZS5zaXplJiYoZS5zbGljZT10aGlzLnNsaWNlLnRvSlNPTigpKSx0aGlzLnN0cnVjdHVyZSYmKGUuc3RydWN0dXJlPSEwKSxlfXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLmZyb20hPSJudW1iZXIifHx0eXBlb2Ygci50byE9Im51bWJlciJ8fHR5cGVvZiByLmdhcEZyb20hPSJudW1iZXIifHx0eXBlb2Ygci5nYXBUbyE9Im51bWJlciJ8fHR5cGVvZiByLmluc2VydCE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFJlcGxhY2VBcm91bmRTdGVwLmZyb21KU09OIik7cmV0dXJuIG5ldyB0KHIuZnJvbSxyLnRvLHIuZ2FwRnJvbSxyLmdhcFRvLG10LmZyb21KU09OKGUsci5zbGljZSksci5pbnNlcnQsISFyLnN0cnVjdHVyZSl9fTthbi5qc29uSUQoInJlcGxhY2VBcm91bmQiLGRzKTtpKGdtdCwiY29udGVudEJldHdlZW4iKTtpKEFJYSwiYWRkTWFyayIpO2koRUlhLCJyZW1vdmVNYXJrIik7aShibXQsImNsZWFySW5jb21wYXRpYmxlIik7aShJSWEsImNhbkN1dCIpO2koY2QsImxpZnRUYXJnZXQiKTtpKFBJYSwibGlmdCIpO2koRTksImZpbmRXcmFwcGluZyIpO2koZldyLCJ3aXRoQXR0cnMiKTtpKE5JYSwiZmluZFdyYXBwaW5nT3V0c2lkZSIpO2koT0lhLCJmaW5kV3JhcHBpbmdJbnNpZGUiKTtpKFJJYSwid3JhcCIpO2koRklhLCJzZXRCbG9ja1R5cGUiKTtpKGhXciwicmVwbGFjZU5ld2xpbmVzIik7aShtV3IsInJlcGxhY2VMaW5lYnJlYWtzIik7aShCSWEsImNhbkNoYW5nZVR5cGUiKTtpKEhJYSwic2V0Tm9kZU1hcmt1cCIpO2koQTEsImNhblNwbGl0Iik7aShxSWEsInNwbGl0Iik7aShjbCwiY2FuSm9pbiIpO2koVklhLCJjYW5BcHBlbmRXaXRoU3Vic3RpdHV0ZWRMaW5lYnJlYWtzIik7aShnV3IsImpvaW5hYmxlIik7aShJOSwiam9pblBvaW50Iik7aShqSWEsImpvaW4iKTtpKGJXciwiaW5zZXJ0UG9pbnQiKTtpKEF0ZSwiZHJvcFBvaW50Iik7aShYeSwicmVwbGFjZVN0ZXAiKTtpKHhXciwiZml0c1RyaXZpYWxseSIpO3htdD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJGaXR0ZXIiKX1jb25zdHJ1Y3RvcihlLHIsYSl7dGhpcy4kZnJvbT1lLHRoaXMuJHRvPXIsdGhpcy51bnBsYWNlZD1hLHRoaXMuZnJvbnRpZXI9W10sdGhpcy5wbGFjZWQ9SmUuZW1wdHk7Zm9yKGxldCBzPTA7czw9ZS5kZXB0aDtzKyspe2xldCBuPWUubm9kZShzKTt0aGlzLmZyb250aWVyLnB1c2goe3R5cGU6bi50eXBlLG1hdGNoOm4uY29udGVudE1hdGNoQXQoZS5pbmRleEFmdGVyKHMpKX0pfWZvcihsZXQgcz1lLmRlcHRoO3M+MDtzLS0pdGhpcy5wbGFjZWQ9SmUuZnJvbShlLm5vZGUocykuY29weSh0aGlzLnBsYWNlZCkpfWdldCBkZXB0aCgpe3JldHVybiB0aGlzLmZyb250aWVyLmxlbmd0aC0xfWZpdCgpe2Zvcig7dGhpcy51bnBsYWNlZC5zaXplOyl7bGV0IGQ9dGhpcy5maW5kRml0dGFibGUoKTtkP3RoaXMucGxhY2VOb2RlcyhkKTp0aGlzLm9wZW5Nb3JlKCl8fHRoaXMuZHJvcE5vZGUoKX1sZXQgZT10aGlzLm11c3RNb3ZlSW5saW5lKCkscj10aGlzLnBsYWNlZC5zaXplLXRoaXMuZGVwdGgtdGhpcy4kZnJvbS5kZXB0aCxhPXRoaXMuJGZyb20scz10aGlzLmNsb3NlKGU8MD90aGlzLiR0bzphLmRvYy5yZXNvbHZlKGUpKTtpZighcylyZXR1cm4gbnVsbDtsZXQgbj10aGlzLnBsYWNlZCxvPWEuZGVwdGgsbD1zLmRlcHRoO2Zvcig7byYmbCYmbi5jaGlsZENvdW50PT0xOyluPW4uZmlyc3RDaGlsZC5jb250ZW50LG8tLSxsLS07bGV0IGM9bmV3IG10KG4sbyxsKTtyZXR1cm4gZT4tMT9uZXcgZHMoYS5wb3MsZSx0aGlzLiR0by5wb3MsdGhpcy4kdG8uZW5kKCksYyxyKTpjLnNpemV8fGEucG9zIT10aGlzLiR0by5wb3M/bmV3IEluKGEucG9zLHMucG9zLGMpOm51bGx9ZmluZEZpdHRhYmxlKCl7bGV0IGU9dGhpcy51bnBsYWNlZC5vcGVuU3RhcnQ7Zm9yKGxldCByPXRoaXMudW5wbGFjZWQuY29udGVudCxhPTAscz10aGlzLnVucGxhY2VkLm9wZW5FbmQ7YTxlO2ErKyl7bGV0IG49ci5maXJzdENoaWxkO2lmKHIuY2hpbGRDb3VudD4xJiYocz0wKSxuLnR5cGUuc3BlYy5pc29sYXRpbmcmJnM8PWEpe2U9YTticmVha31yPW4uY29udGVudH1mb3IobGV0IHI9MTtyPD0yO3IrKylmb3IobGV0IGE9cj09MT9lOnRoaXMudW5wbGFjZWQub3BlblN0YXJ0O2E+PTA7YS0tKXtsZXQgcyxuPW51bGw7YT8obj12bXQodGhpcy51bnBsYWNlZC5jb250ZW50LGEtMSkuZmlyc3RDaGlsZCxzPW4uY29udGVudCk6cz10aGlzLnVucGxhY2VkLmNvbnRlbnQ7bGV0IG89cy5maXJzdENoaWxkO2ZvcihsZXQgbD10aGlzLmRlcHRoO2w+PTA7bC0tKXtsZXR7dHlwZTpjLG1hdGNoOmR9PXRoaXMuZnJvbnRpZXJbbF0sZixwPW51bGw7aWYocj09MSYmKG8/ZC5tYXRjaFR5cGUoby50eXBlKXx8KHA9ZC5maWxsQmVmb3JlKEplLmZyb20obyksITEpKTpuJiZjLmNvbXBhdGlibGVDb250ZW50KG4udHlwZSkpKXJldHVybntzbGljZURlcHRoOmEsZnJvbnRpZXJEZXB0aDpsLHBhcmVudDpuLGluamVjdDpwfTtpZihyPT0yJiZvJiYoZj1kLmZpbmRXcmFwcGluZyhvLnR5cGUpKSlyZXR1cm57c2xpY2VEZXB0aDphLGZyb250aWVyRGVwdGg6bCxwYXJlbnQ6bix3cmFwOmZ9O2lmKG4mJmQubWF0Y2hUeXBlKG4udHlwZSkpYnJlYWt9fX1vcGVuTW9yZSgpe2xldHtjb250ZW50OmUsb3BlblN0YXJ0OnIsb3BlbkVuZDphfT10aGlzLnVucGxhY2VkLHM9dm10KGUscik7cmV0dXJuIXMuY2hpbGRDb3VudHx8cy5maXJzdENoaWxkLmlzTGVhZj8hMToodGhpcy51bnBsYWNlZD1uZXcgbXQoZSxyKzEsTWF0aC5tYXgoYSxzLnNpemUrcj49ZS5zaXplLWE/cisxOjApKSwhMCl9ZHJvcE5vZGUoKXtsZXR7Y29udGVudDplLG9wZW5TdGFydDpyLG9wZW5FbmQ6YX09dGhpcy51bnBsYWNlZCxzPXZtdChlLHIpO2lmKHMuY2hpbGRDb3VudDw9MSYmcj4wKXtsZXQgbj1lLnNpemUtcjw9citzLnNpemU7dGhpcy51bnBsYWNlZD1uZXcgbXQoVHRlKGUsci0xLDEpLHItMSxuP3ItMTphKX1lbHNlIHRoaXMudW5wbGFjZWQ9bmV3IG10KFR0ZShlLHIsMSkscixhKX1wbGFjZU5vZGVzKHtzbGljZURlcHRoOmUsZnJvbnRpZXJEZXB0aDpyLHBhcmVudDphLGluamVjdDpzLHdyYXA6bn0pe2Zvcig7dGhpcy5kZXB0aD5yOyl0aGlzLmNsb3NlRnJvbnRpZXJOb2RlKCk7aWYobilmb3IobGV0IGI9MDtiPG4ubGVuZ3RoO2IrKyl0aGlzLm9wZW5Gcm9udGllck5vZGUobltiXSk7bGV0IG89dGhpcy51bnBsYWNlZCxsPWE/YS5jb250ZW50Om8uY29udGVudCxjPW8ub3BlblN0YXJ0LWUsZD0wLGY9W10se21hdGNoOnAsdHlwZTpofT10aGlzLmZyb250aWVyW3JdO2lmKHMpe2ZvcihsZXQgYj0wO2I8cy5jaGlsZENvdW50O2IrKylmLnB1c2gocy5jaGlsZChiKSk7cD1wLm1hdGNoRnJhZ21lbnQocyl9bGV0IG09bC5zaXplK2UtKG8uY29udGVudC5zaXplLW8ub3BlbkVuZCk7Zm9yKDtkPGwuY2hpbGRDb3VudDspe2xldCBiPWwuY2hpbGQoZCksZz1wLm1hdGNoVHlwZShiLnR5cGUpO2lmKCFnKWJyZWFrO2QrKywoZD4xfHxjPT0wfHxiLmNvbnRlbnQuc2l6ZSkmJihwPWcsZi5wdXNoKHZXcihiLm1hcmsoaC5hbGxvd2VkTWFya3MoYi5tYXJrcykpLGQ9PTE/YzowLGQ9PWwuY2hpbGRDb3VudD9tOi0xKSkpfWxldCB2PWQ9PWwuY2hpbGRDb3VudDt2fHwobT0tMSksdGhpcy5wbGFjZWQ9THRlKHRoaXMucGxhY2VkLHIsSmUuZnJvbShmKSksdGhpcy5mcm9udGllcltyXS5tYXRjaD1wLHYmJm08MCYmYSYmYS50eXBlPT10aGlzLmZyb250aWVyW3RoaXMuZGVwdGhdLnR5cGUmJnRoaXMuZnJvbnRpZXIubGVuZ3RoPjEmJnRoaXMuY2xvc2VGcm9udGllck5vZGUoKTtmb3IobGV0IGI9MCxnPWw7YjxtO2IrKyl7bGV0IHk9Zy5sYXN0Q2hpbGQ7dGhpcy5mcm9udGllci5wdXNoKHt0eXBlOnkudHlwZSxtYXRjaDp5LmNvbnRlbnRNYXRjaEF0KHkuY2hpbGRDb3VudCl9KSxnPXkuY29udGVudH10aGlzLnVucGxhY2VkPXY/ZT09MD9tdC5lbXB0eTpuZXcgbXQoVHRlKG8uY29udGVudCxlLTEsMSksZS0xLG08MD9vLm9wZW5FbmQ6ZS0xKTpuZXcgbXQoVHRlKG8uY29udGVudCxlLGQpLG8ub3BlblN0YXJ0LG8ub3BlbkVuZCl9bXVzdE1vdmVJbmxpbmUoKXtpZighdGhpcy4kdG8ucGFyZW50LmlzVGV4dGJsb2NrKXJldHVybi0xO2xldCBlPXRoaXMuZnJvbnRpZXJbdGhpcy5kZXB0aF0scjtpZighZS50eXBlLmlzVGV4dGJsb2NrfHwheW10KHRoaXMuJHRvLHRoaXMuJHRvLmRlcHRoLGUudHlwZSxlLm1hdGNoLCExKXx8dGhpcy4kdG8uZGVwdGg9PXRoaXMuZGVwdGgmJihyPXRoaXMuZmluZENsb3NlTGV2ZWwodGhpcy4kdG8pKSYmci5kZXB0aD09dGhpcy5kZXB0aClyZXR1cm4tMTtsZXR7ZGVwdGg6YX09dGhpcy4kdG8scz10aGlzLiR0by5hZnRlcihhKTtmb3IoO2E+MSYmcz09dGhpcy4kdG8uZW5kKC0tYSk7KSsrcztyZXR1cm4gc31maW5kQ2xvc2VMZXZlbChlKXtlOmZvcihsZXQgcj1NYXRoLm1pbih0aGlzLmRlcHRoLGUuZGVwdGgpO3I+PTA7ci0tKXtsZXR7bWF0Y2g6YSx0eXBlOnN9PXRoaXMuZnJvbnRpZXJbcl0sbj1yPGUuZGVwdGgmJmUuZW5kKHIrMSk9PWUucG9zKyhlLmRlcHRoLShyKzEpKSxvPXltdChlLHIscyxhLG4pO2lmKG8pe2ZvcihsZXQgbD1yLTE7bD49MDtsLS0pe2xldHttYXRjaDpjLHR5cGU6ZH09dGhpcy5mcm9udGllcltsXSxmPXltdChlLGwsZCxjLCEwKTtpZighZnx8Zi5jaGlsZENvdW50KWNvbnRpbnVlIGV9cmV0dXJue2RlcHRoOnIsZml0Om8sbW92ZTpuP2UuZG9jLnJlc29sdmUoZS5hZnRlcihyKzEpKTplfX19fWNsb3NlKGUpe2xldCByPXRoaXMuZmluZENsb3NlTGV2ZWwoZSk7aWYoIXIpcmV0dXJuIG51bGw7Zm9yKDt0aGlzLmRlcHRoPnIuZGVwdGg7KXRoaXMuY2xvc2VGcm9udGllck5vZGUoKTtyLmZpdC5jaGlsZENvdW50JiYodGhpcy5wbGFjZWQ9THRlKHRoaXMucGxhY2VkLHIuZGVwdGgsci5maXQpKSxlPXIubW92ZTtmb3IobGV0IGE9ci5kZXB0aCsxO2E8PWUuZGVwdGg7YSsrKXtsZXQgcz1lLm5vZGUoYSksbj1zLnR5cGUuY29udGVudE1hdGNoLmZpbGxCZWZvcmUocy5jb250ZW50LCEwLGUuaW5kZXgoYSkpO3RoaXMub3BlbkZyb250aWVyTm9kZShzLnR5cGUscy5hdHRycyxuKX1yZXR1cm4gZX1vcGVuRnJvbnRpZXJOb2RlKGUscj1udWxsLGEpe2xldCBzPXRoaXMuZnJvbnRpZXJbdGhpcy5kZXB0aF07cy5tYXRjaD1zLm1hdGNoLm1hdGNoVHlwZShlKSx0aGlzLnBsYWNlZD1MdGUodGhpcy5wbGFjZWQsdGhpcy5kZXB0aCxKZS5mcm9tKGUuY3JlYXRlKHIsYSkpKSx0aGlzLmZyb250aWVyLnB1c2goe3R5cGU6ZSxtYXRjaDplLmNvbnRlbnRNYXRjaH0pfWNsb3NlRnJvbnRpZXJOb2RlKCl7bGV0IHI9dGhpcy5mcm9udGllci5wb3AoKS5tYXRjaC5maWxsQmVmb3JlKEplLmVtcHR5LCEwKTtyLmNoaWxkQ291bnQmJih0aGlzLnBsYWNlZD1MdGUodGhpcy5wbGFjZWQsdGhpcy5mcm9udGllci5sZW5ndGgscikpfX07aShUdGUsImRyb3BGcm9tRnJhZ21lbnQiKTtpKEx0ZSwiYWRkVG9GcmFnbWVudCIpO2kodm10LCJjb250ZW50QXQiKTtpKHZXciwiY2xvc2VOb2RlU3RhcnQiKTtpKHltdCwiY29udGVudEFmdGVyRml0cyIpO2koVUlhLCJpbnZhbGlkTWFya3MiKTtpKFdJYSwiZGVmaW5lc0NvbnRlbnQiKTtpKEdJYSwicmVwbGFjZVJhbmdlIik7aSh5V3IsImNsb3NlRnJhZ21lbnQiKTtpKFlJYSwicmVwbGFjZVJhbmdlV2l0aCIpO2koS0lhLCJkZWxldGVSYW5nZSIpO2kod1dyLCJjb3ZlcmVkRGVwdGhzIik7RHRlPWNsYXNzIHQgZXh0ZW5kcyBhbntzdGF0aWN7aSh0aGlzLCJBdHRyU3RlcCIpfWNvbnN0cnVjdG9yKGUscixhKXtzdXBlcigpLHRoaXMucG9zPWUsdGhpcy5hdHRyPXIsdGhpcy52YWx1ZT1hfWFwcGx5KGUpe2xldCByPWUubm9kZUF0KHRoaXMucG9zKTtpZighcilyZXR1cm4ga24uZmFpbCgiTm8gbm9kZSBhdCBhdHRyaWJ1dGUgc3RlcCdzIHBvc2l0aW9uIik7bGV0IGE9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IG4gaW4gci5hdHRycylhW25dPXIuYXR0cnNbbl07YVt0aGlzLmF0dHJdPXRoaXMudmFsdWU7bGV0IHM9ci50eXBlLmNyZWF0ZShhLG51bGwsci5tYXJrcyk7cmV0dXJuIGtuLmZyb21SZXBsYWNlKGUsdGhpcy5wb3MsdGhpcy5wb3MrMSxuZXcgbXQoSmUuZnJvbShzKSwwLHIuaXNMZWFmPzA6MSkpfWdldE1hcCgpe3JldHVybiBsZC5lbXB0eX1pbnZlcnQoZSl7cmV0dXJuIG5ldyB0KHRoaXMucG9zLHRoaXMuYXR0cixlLm5vZGVBdCh0aGlzLnBvcykuYXR0cnNbdGhpcy5hdHRyXSl9bWFwKGUpe2xldCByPWUubWFwUmVzdWx0KHRoaXMucG9zLDEpO3JldHVybiByLmRlbGV0ZWRBZnRlcj9udWxsOm5ldyB0KHIucG9zLHRoaXMuYXR0cix0aGlzLnZhbHVlKX10b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6ImF0dHIiLHBvczp0aGlzLnBvcyxhdHRyOnRoaXMuYXR0cix2YWx1ZTp0aGlzLnZhbHVlfX1zdGF0aWMgZnJvbUpTT04oZSxyKXtpZih0eXBlb2Ygci5wb3MhPSJudW1iZXIifHx0eXBlb2Ygci5hdHRyIT0ic3RyaW5nIil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBpbnB1dCBmb3IgQXR0clN0ZXAuZnJvbUpTT04iKTtyZXR1cm4gbmV3IHQoci5wb3Msci5hdHRyLHIudmFsdWUpfX07YW4uanNvbklEKCJhdHRyIixEdGUpOyR0ZT1jbGFzcyB0IGV4dGVuZHMgYW57c3RhdGlje2kodGhpcywiRG9jQXR0clN0ZXAiKX1jb25zdHJ1Y3RvcihlLHIpe3N1cGVyKCksdGhpcy5hdHRyPWUsdGhpcy52YWx1ZT1yfWFwcGx5KGUpe2xldCByPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBzIGluIGUuYXR0cnMpcltzXT1lLmF0dHJzW3NdO3JbdGhpcy5hdHRyXT10aGlzLnZhbHVlO2xldCBhPWUudHlwZS5jcmVhdGUocixlLmNvbnRlbnQsZS5tYXJrcyk7cmV0dXJuIGtuLm9rKGEpfWdldE1hcCgpe3JldHVybiBsZC5lbXB0eX1pbnZlcnQoZSl7cmV0dXJuIG5ldyB0KHRoaXMuYXR0cixlLmF0dHJzW3RoaXMuYXR0cl0pfW1hcChlKXtyZXR1cm4gdGhpc310b0pTT04oKXtyZXR1cm57c3RlcFR5cGU6ImRvY0F0dHIiLGF0dHI6dGhpcy5hdHRyLHZhbHVlOnRoaXMudmFsdWV9fXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLmF0dHIhPSJzdHJpbmciKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBEb2NBdHRyU3RlcC5mcm9tSlNPTiIpO3JldHVybiBuZXcgdChyLmF0dHIsci52YWx1ZSl9fTthbi5qc29uSUQoImRvY0F0dHIiLCR0ZSk7JDk9Y2xhc3MgZXh0ZW5kcyBFcnJvcntzdGF0aWN7aSh0aGlzLCJUcmFuc2Zvcm1FcnJvciIpfX07JDk9aShmdW5jdGlvbiB0KGUpe2xldCByPUVycm9yLmNhbGwodGhpcyxlKTtyZXR1cm4gci5fX3Byb3RvX189dC5wcm90b3R5cGUscn0sIlRyYW5zZm9ybUVycm9yIiksJDkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSwkOS5wcm90b3R5cGUuY29uc3RydWN0b3I9JDksJDkucHJvdG90eXBlLm5hbWU9IlRyYW5zZm9ybUVycm9yIjtBOT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUcmFuc2Zvcm0iKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmRvYz1lLHRoaXMuc3RlcHM9W10sdGhpcy5kb2NzPVtdLHRoaXMubWFwcGluZz1uZXcgUXl9Z2V0IGJlZm9yZSgpe3JldHVybiB0aGlzLmRvY3MubGVuZ3RoP3RoaXMuZG9jc1swXTp0aGlzLmRvY31zdGVwKGUpe2xldCByPXRoaXMubWF5YmVTdGVwKGUpO2lmKHIuZmFpbGVkKXRocm93IG5ldyAkOShyLmZhaWxlZCk7cmV0dXJuIHRoaXN9bWF5YmVTdGVwKGUpe2xldCByPWUuYXBwbHkodGhpcy5kb2MpO3JldHVybiByLmZhaWxlZHx8dGhpcy5hZGRTdGVwKGUsci5kb2MpLHJ9Z2V0IGRvY0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5zdGVwcy5sZW5ndGg+MH1jaGFuZ2VkUmFuZ2UoKXtsZXQgZT0xZTkscj0tMWU5O2ZvcihsZXQgYT0wO2E8dGhpcy5tYXBwaW5nLm1hcHMubGVuZ3RoO2ErKyl7bGV0IHM9dGhpcy5tYXBwaW5nLm1hcHNbYV07YSYmKGU9cy5tYXAoZSwxKSxyPXMubWFwKHIsLTEpKSxzLmZvckVhY2goKG4sbyxsLGMpPT57ZT1NYXRoLm1pbihlLGwpLHI9TWF0aC5tYXgocixjKX0pfXJldHVybiBlPT0xZTk/bnVsbDp7ZnJvbTplLHRvOnJ9fWFkZFN0ZXAoZSxyKXt0aGlzLmRvY3MucHVzaCh0aGlzLmRvYyksdGhpcy5zdGVwcy5wdXNoKGUpLHRoaXMubWFwcGluZy5hcHBlbmRNYXAoZS5nZXRNYXAoKSksdGhpcy5kb2M9cn1yZXBsYWNlKGUscj1lLGE9bXQuZW1wdHkpe2xldCBzPVh5KHRoaXMuZG9jLGUscixhKTtyZXR1cm4gcyYmdGhpcy5zdGVwKHMpLHRoaXN9cmVwbGFjZVdpdGgoZSxyLGEpe3JldHVybiB0aGlzLnJlcGxhY2UoZSxyLG5ldyBtdChKZS5mcm9tKGEpLDAsMCkpfWRlbGV0ZShlLHIpe3JldHVybiB0aGlzLnJlcGxhY2UoZSxyLG10LmVtcHR5KX1pbnNlcnQoZSxyKXtyZXR1cm4gdGhpcy5yZXBsYWNlV2l0aChlLGUscil9cmVwbGFjZVJhbmdlKGUscixhKXtyZXR1cm4gR0lhKHRoaXMsZSxyLGEpLHRoaXN9cmVwbGFjZVJhbmdlV2l0aChlLHIsYSl7cmV0dXJuIFlJYSh0aGlzLGUscixhKSx0aGlzfWRlbGV0ZVJhbmdlKGUscil7cmV0dXJuIEtJYSh0aGlzLGUsciksdGhpc31saWZ0KGUscil7cmV0dXJuIFBJYSh0aGlzLGUsciksdGhpc31qb2luKGUscj0xKXtyZXR1cm4gaklhKHRoaXMsZSxyKSx0aGlzfXdyYXAoZSxyKXtyZXR1cm4gUklhKHRoaXMsZSxyKSx0aGlzfXNldEJsb2NrVHlwZShlLHI9ZSxhLHM9bnVsbCl7cmV0dXJuIEZJYSh0aGlzLGUscixhLHMpLHRoaXN9c2V0Tm9kZU1hcmt1cChlLHIsYT1udWxsLHMpe3JldHVybiBISWEodGhpcyxlLHIsYSxzKSx0aGlzfXNldE5vZGVBdHRyaWJ1dGUoZSxyLGEpe3JldHVybiB0aGlzLnN0ZXAobmV3IER0ZShlLHIsYSkpLHRoaXN9c2V0RG9jQXR0cmlidXRlKGUscil7cmV0dXJuIHRoaXMuc3RlcChuZXcgJHRlKGUscikpLHRoaXN9YWRkTm9kZU1hcmsoZSxyKXtyZXR1cm4gdGhpcy5zdGVwKG5ldyBaeShlLHIpKSx0aGlzfXJlbW92ZU5vZGVNYXJrKGUscil7bGV0IGE9dGhpcy5kb2Mubm9kZUF0KGUpO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKCJObyBub2RlIGF0IHBvc2l0aW9uICIrZSk7aWYociBpbnN0YW5jZW9mIGhhKXIuaXNJblNldChhLm1hcmtzKSYmdGhpcy5zdGVwKG5ldyBEOShlLHIpKTtlbHNle2xldCBzPWEubWFya3MsbixvPVtdO2Zvcig7bj1yLmlzSW5TZXQocyk7KW8ucHVzaChuZXcgRDkoZSxuKSkscz1uLnJlbW92ZUZyb21TZXQocyk7Zm9yKGxldCBsPW8ubGVuZ3RoLTE7bD49MDtsLS0pdGhpcy5zdGVwKG9bbF0pfXJldHVybiB0aGlzfXNwbGl0KGUscj0xLGEpe3JldHVybiBxSWEodGhpcyxlLHIsYSksdGhpc31hZGRNYXJrKGUscixhKXtyZXR1cm4gQUlhKHRoaXMsZSxyLGEpLHRoaXN9cmVtb3ZlTWFyayhlLHIsYSl7cmV0dXJuIEVJYSh0aGlzLGUscixhKSx0aGlzfWNsZWFySW5jb21wYXRpYmxlKGUscixhKXtyZXR1cm4gYm10KHRoaXMsZSxyLGEpLHRoaXN9fX0pO2Z1bmN0aW9uIFNXcih0KXsha1dyJiYhdC5wYXJlbnQuaW5saW5lQ29udGVudCYmKGtXcj0hMCxjb25zb2xlLndhcm4oIlRleHRTZWxlY3Rpb24gZW5kcG9pbnQgbm90IHBvaW50aW5nIGludG8gYSBub2RlIHdpdGggaW5saW5lIGNvbnRlbnQgKCIrdC5wYXJlbnQudHlwZS5uYW1lKyIpIikpfWZ1bmN0aW9uIEp5KHQsZSxyLGEscyxuPSExKXtpZihlLmlubGluZUNvbnRlbnQpcmV0dXJuIGVyLmNyZWF0ZSh0LHIpO2ZvcihsZXQgbz1hLShzPjA/MDoxKTtzPjA/bzxlLmNoaWxkQ291bnQ6bz49MDtvKz1zKXtsZXQgbD1lLmNoaWxkKG8pO2lmKGwuaXNBdG9tKXtpZighbiYmSXQuaXNTZWxlY3RhYmxlKGwpKXJldHVybiBJdC5jcmVhdGUodCxyLShzPDA/bC5ub2RlU2l6ZTowKSl9ZWxzZXtsZXQgYz1KeSh0LGwscitzLHM8MD9sLmNoaWxkQ291bnQ6MCxzLG4pO2lmKGMpcmV0dXJuIGN9cis9bC5ub2RlU2l6ZSpzfXJldHVybiBudWxsfWZ1bmN0aW9uIE1Xcih0LGUscil7bGV0IGE9dC5zdGVwcy5sZW5ndGgtMTtpZihhPGUpcmV0dXJuO2xldCBzPXQuc3RlcHNbYV07aWYoIShzIGluc3RhbmNlb2YgSW58fHMgaW5zdGFuY2VvZiBkcykpcmV0dXJuO2xldCBuPXQubWFwcGluZy5tYXBzW2FdLG87bi5mb3JFYWNoKChsLGMsZCxmKT0+e289PW51bGwmJihvPWYpfSksdC5zZXRTZWxlY3Rpb24oSnQubmVhcih0LmRvYy5yZXNvbHZlKG8pLHIpKX1mdW5jdGlvbiBfV3IodCxlKXtyZXR1cm4hZXx8IXQ/dDp0LmJpbmQoZSl9ZnVuY3Rpb24gVFdyKHQsZSxyKXtmb3IobGV0IGEgaW4gdCl7bGV0IHM9dFthXTtzIGluc3RhbmNlb2YgRnVuY3Rpb24/cz1zLmJpbmQoZSk6YT09ImhhbmRsZURPTUV2ZW50cyImJihzPVRXcihzLGUse30pKSxyW2FdPXN9cmV0dXJuIHJ9ZnVuY3Rpb24gTFdyKHQpe3JldHVybiB0IGluIFNtdD90KyIkIisgKytTbXRbdF06KFNtdFt0XT0wLHQrIiQiKX12YXIgd210LEp0LE45LGtXcixlcix5ZmUsSXQsa210LE1vLFpJYSxDV3Isd2ZlLHpXcixrZmUsUDksUUlhLEV0ZSxJdGUsUWEsU210LExzLGEzPXUoKCk9PntqcCgpO1dwKCk7d210PU9iamVjdC5jcmVhdGUobnVsbCksSnQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuJGFuY2hvcj1lLHRoaXMuJGhlYWQ9cix0aGlzLnJhbmdlcz1hfHxbbmV3IE45KGUubWluKHIpLGUubWF4KHIpKV19Z2V0IGFuY2hvcigpe3JldHVybiB0aGlzLiRhbmNob3IucG9zfWdldCBoZWFkKCl7cmV0dXJuIHRoaXMuJGhlYWQucG9zfWdldCBmcm9tKCl7cmV0dXJuIHRoaXMuJGZyb20ucG9zfWdldCB0bygpe3JldHVybiB0aGlzLiR0by5wb3N9Z2V0ICRmcm9tKCl7cmV0dXJuIHRoaXMucmFuZ2VzWzBdLiRmcm9tfWdldCAkdG8oKXtyZXR1cm4gdGhpcy5yYW5nZXNbMF0uJHRvfWdldCBlbXB0eSgpe2xldCBlPXRoaXMucmFuZ2VzO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl0uJGZyb20ucG9zIT1lW3JdLiR0by5wb3MpcmV0dXJuITE7cmV0dXJuITB9Y29udGVudCgpe3JldHVybiB0aGlzLiRmcm9tLmRvYy5zbGljZSh0aGlzLmZyb20sdGhpcy50bywhMCl9cmVwbGFjZShlLHI9bXQuZW1wdHkpe2xldCBhPXIuY29udGVudC5sYXN0Q2hpbGQscz1udWxsO2ZvcihsZXQgbD0wO2w8ci5vcGVuRW5kO2wrKylzPWEsYT1hLmxhc3RDaGlsZDtsZXQgbj1lLnN0ZXBzLmxlbmd0aCxvPXRoaXMucmFuZ2VzO2ZvcihsZXQgbD0wO2w8by5sZW5ndGg7bCsrKXtsZXR7JGZyb206YywkdG86ZH09b1tsXSxmPWUubWFwcGluZy5zbGljZShuKTtlLnJlcGxhY2VSYW5nZShmLm1hcChjLnBvcyksZi5tYXAoZC5wb3MpLGw/bXQuZW1wdHk6ciksbD09MCYmTVdyKGUsbiwoYT9hLmlzSW5saW5lOnMmJnMuaXNUZXh0YmxvY2spPy0xOjEpfX1yZXBsYWNlV2l0aChlLHIpe2xldCBhPWUuc3RlcHMubGVuZ3RoLHM9dGhpcy5yYW5nZXM7Zm9yKGxldCBuPTA7bjxzLmxlbmd0aDtuKyspe2xldHskZnJvbTpvLCR0bzpsfT1zW25dLGM9ZS5tYXBwaW5nLnNsaWNlKGEpLGQ9Yy5tYXAoby5wb3MpLGY9Yy5tYXAobC5wb3MpO24/ZS5kZWxldGVSYW5nZShkLGYpOihlLnJlcGxhY2VSYW5nZVdpdGgoZCxmLHIpLE1XcihlLGEsci5pc0lubGluZT8tMToxKSl9fXN0YXRpYyBmaW5kRnJvbShlLHIsYT0hMSl7bGV0IHM9ZS5wYXJlbnQuaW5saW5lQ29udGVudD9uZXcgZXIoZSk6SnkoZS5ub2RlKDApLGUucGFyZW50LGUucG9zLGUuaW5kZXgoKSxyLGEpO2lmKHMpcmV0dXJuIHM7Zm9yKGxldCBuPWUuZGVwdGgtMTtuPj0wO24tLSl7bGV0IG89cjwwP0p5KGUubm9kZSgwKSxlLm5vZGUobiksZS5iZWZvcmUobisxKSxlLmluZGV4KG4pLHIsYSk6SnkoZS5ub2RlKDApLGUubm9kZShuKSxlLmFmdGVyKG4rMSksZS5pbmRleChuKSsxLHIsYSk7aWYobylyZXR1cm4gb31yZXR1cm4gbnVsbH1zdGF0aWMgbmVhcihlLHI9MSl7cmV0dXJuIHRoaXMuZmluZEZyb20oZSxyKXx8dGhpcy5maW5kRnJvbShlLC1yKXx8bmV3IE1vKGUubm9kZSgwKSl9c3RhdGljIGF0U3RhcnQoZSl7cmV0dXJuIEp5KGUsZSwwLDAsMSl8fG5ldyBNbyhlKX1zdGF0aWMgYXRFbmQoZSl7cmV0dXJuIEp5KGUsZSxlLmNvbnRlbnQuc2l6ZSxlLmNoaWxkQ291bnQsLTEpfHxuZXcgTW8oZSl9c3RhdGljIGZyb21KU09OKGUscil7aWYoIXJ8fCFyLnR5cGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFNlbGVjdGlvbi5mcm9tSlNPTiIpO2xldCBhPXdtdFtyLnR5cGVdO2lmKCFhKXRocm93IG5ldyBSYW5nZUVycm9yKGBObyBzZWxlY3Rpb24gdHlwZSAke3IudHlwZX0gZGVmaW5lZGApO3JldHVybiBhLmZyb21KU09OKGUscil9c3RhdGljIGpzb25JRChlLHIpe2lmKGUgaW4gd210KXRocm93IG5ldyBSYW5nZUVycm9yKCJEdXBsaWNhdGUgdXNlIG9mIHNlbGVjdGlvbiBKU09OIElEICIrZSk7cmV0dXJuIHdtdFtlXT1yLHIucHJvdG90eXBlLmpzb25JRD1lLHJ9Z2V0Qm9va21hcmsoKXtyZXR1cm4gZXIuYmV0d2Vlbih0aGlzLiRhbmNob3IsdGhpcy4kaGVhZCkuZ2V0Qm9va21hcmsoKX19O0p0LnByb3RvdHlwZS52aXNpYmxlPSEwO045PWNsYXNze3N0YXRpY3tpKHRoaXMsIlNlbGVjdGlvblJhbmdlIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLiRmcm9tPWUsdGhpcy4kdG89cn19LGtXcj0hMTtpKFNXciwiY2hlY2tUZXh0U2VsZWN0aW9uIik7ZXI9Y2xhc3MgdCBleHRlbmRzIEp0e3N0YXRpY3tpKHRoaXMsIlRleHRTZWxlY3Rpb24iKX1jb25zdHJ1Y3RvcihlLHI9ZSl7U1dyKGUpLFNXcihyKSxzdXBlcihlLHIpfWdldCAkY3Vyc29yKCl7cmV0dXJuIHRoaXMuJGFuY2hvci5wb3M9PXRoaXMuJGhlYWQucG9zP3RoaXMuJGhlYWQ6bnVsbH1tYXAoZSxyKXtsZXQgYT1lLnJlc29sdmUoci5tYXAodGhpcy5oZWFkKSk7aWYoIWEucGFyZW50LmlubGluZUNvbnRlbnQpcmV0dXJuIEp0Lm5lYXIoYSk7bGV0IHM9ZS5yZXNvbHZlKHIubWFwKHRoaXMuYW5jaG9yKSk7cmV0dXJuIG5ldyB0KHMucGFyZW50LmlubGluZUNvbnRlbnQ/czphLGEpfXJlcGxhY2UoZSxyPW10LmVtcHR5KXtpZihzdXBlci5yZXBsYWNlKGUscikscj09bXQuZW1wdHkpe2xldCBhPXRoaXMuJGZyb20ubWFya3NBY3Jvc3ModGhpcy4kdG8pO2EmJmUuZW5zdXJlTWFya3MoYSl9fWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdCYmZS5hbmNob3I9PXRoaXMuYW5jaG9yJiZlLmhlYWQ9PXRoaXMuaGVhZH1nZXRCb29rbWFyaygpe3JldHVybiBuZXcgeWZlKHRoaXMuYW5jaG9yLHRoaXMuaGVhZCl9dG9KU09OKCl7cmV0dXJue3R5cGU6InRleHQiLGFuY2hvcjp0aGlzLmFuY2hvcixoZWFkOnRoaXMuaGVhZH19c3RhdGljIGZyb21KU09OKGUscil7aWYodHlwZW9mIHIuYW5jaG9yIT0ibnVtYmVyInx8dHlwZW9mIHIuaGVhZCE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIFRleHRTZWxlY3Rpb24uZnJvbUpTT04iKTtyZXR1cm4gbmV3IHQoZS5yZXNvbHZlKHIuYW5jaG9yKSxlLnJlc29sdmUoci5oZWFkKSl9c3RhdGljIGNyZWF0ZShlLHIsYT1yKXtsZXQgcz1lLnJlc29sdmUocik7cmV0dXJuIG5ldyB0aGlzKHMsYT09cj9zOmUucmVzb2x2ZShhKSl9c3RhdGljIGJldHdlZW4oZSxyLGEpe2xldCBzPWUucG9zLXIucG9zO2lmKCghYXx8cykmJihhPXM+PTA/MTotMSksIXIucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBuPUp0LmZpbmRGcm9tKHIsYSwhMCl8fEp0LmZpbmRGcm9tKHIsLWEsITApO2lmKG4pcj1uLiRoZWFkO2Vsc2UgcmV0dXJuIEp0Lm5lYXIocixhKX1yZXR1cm4gZS5wYXJlbnQuaW5saW5lQ29udGVudHx8KHM9PTA/ZT1yOihlPShKdC5maW5kRnJvbShlLC1hLCEwKXx8SnQuZmluZEZyb20oZSxhLCEwKSkuJGFuY2hvcixlLnBvczxyLnBvcyE9czwwJiYoZT1yKSkpLG5ldyB0KGUscil9fTtKdC5qc29uSUQoInRleHQiLGVyKTt5ZmU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJUZXh0Qm9va21hcmsiKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuYW5jaG9yPWUsdGhpcy5oZWFkPXJ9bWFwKGUpe3JldHVybiBuZXcgdChlLm1hcCh0aGlzLmFuY2hvciksZS5tYXAodGhpcy5oZWFkKSl9cmVzb2x2ZShlKXtyZXR1cm4gZXIuYmV0d2VlbihlLnJlc29sdmUodGhpcy5hbmNob3IpLGUucmVzb2x2ZSh0aGlzLmhlYWQpKX19LEl0PWNsYXNzIHQgZXh0ZW5kcyBKdHtzdGF0aWN7aSh0aGlzLCJOb2RlU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSl7bGV0IHI9ZS5ub2RlQWZ0ZXIsYT1lLm5vZGUoMCkucmVzb2x2ZShlLnBvcytyLm5vZGVTaXplKTtzdXBlcihlLGEpLHRoaXMubm9kZT1yfW1hcChlLHIpe2xldHtkZWxldGVkOmEscG9zOnN9PXIubWFwUmVzdWx0KHRoaXMuYW5jaG9yKSxuPWUucmVzb2x2ZShzKTtyZXR1cm4gYT9KdC5uZWFyKG4pOm5ldyB0KG4pfWNvbnRlbnQoKXtyZXR1cm4gbmV3IG10KEplLmZyb20odGhpcy5ub2RlKSwwLDApfWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdCYmZS5hbmNob3I9PXRoaXMuYW5jaG9yfXRvSlNPTigpe3JldHVybnt0eXBlOiJub2RlIixhbmNob3I6dGhpcy5hbmNob3J9fWdldEJvb2ttYXJrKCl7cmV0dXJuIG5ldyBrbXQodGhpcy5hbmNob3IpfXN0YXRpYyBmcm9tSlNPTihlLHIpe2lmKHR5cGVvZiByLmFuY2hvciE9Im51bWJlciIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgaW5wdXQgZm9yIE5vZGVTZWxlY3Rpb24uZnJvbUpTT04iKTtyZXR1cm4gbmV3IHQoZS5yZXNvbHZlKHIuYW5jaG9yKSl9c3RhdGljIGNyZWF0ZShlLHIpe3JldHVybiBuZXcgdChlLnJlc29sdmUocikpfXN0YXRpYyBpc1NlbGVjdGFibGUoZSl7cmV0dXJuIWUuaXNUZXh0JiZlLnR5cGUuc3BlYy5zZWxlY3RhYmxlIT09ITF9fTtJdC5wcm90b3R5cGUudmlzaWJsZT0hMSxKdC5qc29uSUQoIm5vZGUiLEl0KTtrbXQ9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJOb2RlQm9va21hcmsiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmFuY2hvcj1lfW1hcChlKXtsZXR7ZGVsZXRlZDpyLHBvczphfT1lLm1hcFJlc3VsdCh0aGlzLmFuY2hvcik7cmV0dXJuIHI/bmV3IHlmZShhLGEpOm5ldyB0KGEpfXJlc29sdmUoZSl7bGV0IHI9ZS5yZXNvbHZlKHRoaXMuYW5jaG9yKSxhPXIubm9kZUFmdGVyO3JldHVybiBhJiZJdC5pc1NlbGVjdGFibGUoYSk/bmV3IEl0KHIpOkp0Lm5lYXIocil9fSxNbz1jbGFzcyB0IGV4dGVuZHMgSnR7c3RhdGlje2kodGhpcywiQWxsU2VsZWN0aW9uIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZS5yZXNvbHZlKDApLGUucmVzb2x2ZShlLmNvbnRlbnQuc2l6ZSkpfXJlcGxhY2UoZSxyPW10LmVtcHR5KXtpZihyPT1tdC5lbXB0eSl7ZS5kZWxldGUoMCxlLmRvYy5jb250ZW50LnNpemUpO2xldCBhPUp0LmF0U3RhcnQoZS5kb2MpO2EuZXEoZS5zZWxlY3Rpb24pfHxlLnNldFNlbGVjdGlvbihhKX1lbHNlIHN1cGVyLnJlcGxhY2UoZSxyKX10b0pTT04oKXtyZXR1cm57dHlwZToiYWxsIn19c3RhdGljIGZyb21KU09OKGUpe3JldHVybiBuZXcgdChlKX1tYXAoZSl7cmV0dXJuIG5ldyB0KGUpfWVxKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdH1nZXRCb29rbWFyaygpe3JldHVybiBaSWF9fTtKdC5qc29uSUQoImFsbCIsTW8pO1pJYT17bWFwKCl7cmV0dXJuIHRoaXN9LHJlc29sdmUodCl7cmV0dXJuIG5ldyBNbyh0KX19O2koSnksImZpbmRTZWxlY3Rpb25JbiIpO2koTVdyLCJzZWxlY3Rpb25Ub0luc2VydGlvbkVuZCIpO0NXcj0xLHdmZT0yLHpXcj00LGtmZT1jbGFzcyBleHRlbmRzIEE5e3N0YXRpY3tpKHRoaXMsIlRyYW5zYWN0aW9uIil9Y29uc3RydWN0b3IoZSl7c3VwZXIoZS5kb2MpLHRoaXMuY3VyU2VsZWN0aW9uRm9yPTAsdGhpcy51cGRhdGVkPTAsdGhpcy5tZXRhPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy50aW1lPURhdGUubm93KCksdGhpcy5jdXJTZWxlY3Rpb249ZS5zZWxlY3Rpb24sdGhpcy5zdG9yZWRNYXJrcz1lLnN0b3JlZE1hcmtzfWdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJTZWxlY3Rpb25Gb3I8dGhpcy5zdGVwcy5sZW5ndGgmJih0aGlzLmN1clNlbGVjdGlvbj10aGlzLmN1clNlbGVjdGlvbi5tYXAodGhpcy5kb2MsdGhpcy5tYXBwaW5nLnNsaWNlKHRoaXMuY3VyU2VsZWN0aW9uRm9yKSksdGhpcy5jdXJTZWxlY3Rpb25Gb3I9dGhpcy5zdGVwcy5sZW5ndGgpLHRoaXMuY3VyU2VsZWN0aW9ufXNldFNlbGVjdGlvbihlKXtpZihlLiRmcm9tLmRvYyE9dGhpcy5kb2MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlNlbGVjdGlvbiBwYXNzZWQgdG8gc2V0U2VsZWN0aW9uIG11c3QgcG9pbnQgYXQgdGhlIGN1cnJlbnQgZG9jdW1lbnQiKTtyZXR1cm4gdGhpcy5jdXJTZWxlY3Rpb249ZSx0aGlzLmN1clNlbGVjdGlvbkZvcj10aGlzLnN0ZXBzLmxlbmd0aCx0aGlzLnVwZGF0ZWQ9KHRoaXMudXBkYXRlZHxDV3IpJn53ZmUsdGhpcy5zdG9yZWRNYXJrcz1udWxsLHRoaXN9Z2V0IHNlbGVjdGlvblNldCgpe3JldHVybih0aGlzLnVwZGF0ZWQmQ1dyKT4wfXNldFN0b3JlZE1hcmtzKGUpe3JldHVybiB0aGlzLnN0b3JlZE1hcmtzPWUsdGhpcy51cGRhdGVkfD13ZmUsdGhpc31lbnN1cmVNYXJrcyhlKXtyZXR1cm4gaGEuc2FtZVNldCh0aGlzLnN0b3JlZE1hcmtzfHx0aGlzLnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpLGUpfHx0aGlzLnNldFN0b3JlZE1hcmtzKGUpLHRoaXN9YWRkU3RvcmVkTWFyayhlKXtyZXR1cm4gdGhpcy5lbnN1cmVNYXJrcyhlLmFkZFRvU2V0KHRoaXMuc3RvcmVkTWFya3N8fHRoaXMuc2VsZWN0aW9uLiRoZWFkLm1hcmtzKCkpKX1yZW1vdmVTdG9yZWRNYXJrKGUpe3JldHVybiB0aGlzLmVuc3VyZU1hcmtzKGUucmVtb3ZlRnJvbVNldCh0aGlzLnN0b3JlZE1hcmtzfHx0aGlzLnNlbGVjdGlvbi4kaGVhZC5tYXJrcygpKSl9Z2V0IHN0b3JlZE1hcmtzU2V0KCl7cmV0dXJuKHRoaXMudXBkYXRlZCZ3ZmUpPjB9YWRkU3RlcChlLHIpe3N1cGVyLmFkZFN0ZXAoZSxyKSx0aGlzLnVwZGF0ZWQ9dGhpcy51cGRhdGVkJn53ZmUsdGhpcy5zdG9yZWRNYXJrcz1udWxsfXNldFRpbWUoZSl7cmV0dXJuIHRoaXMudGltZT1lLHRoaXN9cmVwbGFjZVNlbGVjdGlvbihlKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24ucmVwbGFjZSh0aGlzLGUpLHRoaXN9cmVwbGFjZVNlbGVjdGlvbldpdGgoZSxyPSEwKXtsZXQgYT10aGlzLnNlbGVjdGlvbjtyZXR1cm4gciYmKGU9ZS5tYXJrKHRoaXMuc3RvcmVkTWFya3N8fChhLmVtcHR5P2EuJGZyb20ubWFya3MoKTphLiRmcm9tLm1hcmtzQWNyb3NzKGEuJHRvKXx8aGEubm9uZSkpKSxhLnJlcGxhY2VXaXRoKHRoaXMsZSksdGhpc31kZWxldGVTZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24ucmVwbGFjZSh0aGlzKSx0aGlzfWluc2VydFRleHQoZSxyLGEpe2xldCBzPXRoaXMuZG9jLnR5cGUuc2NoZW1hO2lmKHI9PW51bGwpcmV0dXJuIGU/dGhpcy5yZXBsYWNlU2VsZWN0aW9uV2l0aChzLnRleHQoZSksITApOnRoaXMuZGVsZXRlU2VsZWN0aW9uKCk7e2lmKGE9PW51bGwmJihhPXIpLCFlKXJldHVybiB0aGlzLmRlbGV0ZVJhbmdlKHIsYSk7bGV0IG49dGhpcy5zdG9yZWRNYXJrcztpZighbil7bGV0IG89dGhpcy5kb2MucmVzb2x2ZShyKTtuPWE9PXI/by5tYXJrcygpOm8ubWFya3NBY3Jvc3ModGhpcy5kb2MucmVzb2x2ZShhKSl9cmV0dXJuIHRoaXMucmVwbGFjZVJhbmdlV2l0aChyLGEscy50ZXh0KGUsbikpLCF0aGlzLnNlbGVjdGlvbi5lbXB0eSYmdGhpcy5zZWxlY3Rpb24udG89PXIrZS5sZW5ndGgmJnRoaXMuc2V0U2VsZWN0aW9uKEp0Lm5lYXIodGhpcy5zZWxlY3Rpb24uJHRvKSksdGhpc319c2V0TWV0YShlLHIpe3JldHVybiB0aGlzLm1ldGFbdHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5rZXldPXIsdGhpc31nZXRNZXRhKGUpe3JldHVybiB0aGlzLm1ldGFbdHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5rZXldfWdldCBpc0dlbmVyaWMoKXtmb3IobGV0IGUgaW4gdGhpcy5tZXRhKXJldHVybiExO3JldHVybiEwfXNjcm9sbEludG9WaWV3KCl7cmV0dXJuIHRoaXMudXBkYXRlZHw9eldyLHRoaXN9Z2V0IHNjcm9sbGVkSW50b1ZpZXcoKXtyZXR1cm4odGhpcy51cGRhdGVkJnpXcik+MH19O2koX1dyLCJiaW5kIik7UDk9Y2xhc3N7c3RhdGlje2kodGhpcywiRmllbGREZXNjIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMubmFtZT1lLHRoaXMuaW5pdD1fV3Ioci5pbml0LGEpLHRoaXMuYXBwbHk9X1dyKHIuYXBwbHksYSl9fSxRSWE9W25ldyBQOSgiZG9jIix7aW5pdCh0KXtyZXR1cm4gdC5kb2N8fHQuc2NoZW1hLnRvcE5vZGVUeXBlLmNyZWF0ZUFuZEZpbGwoKX0sYXBwbHkodCl7cmV0dXJuIHQuZG9jfX0pLG5ldyBQOSgic2VsZWN0aW9uIix7aW5pdCh0LGUpe3JldHVybiB0LnNlbGVjdGlvbnx8SnQuYXRTdGFydChlLmRvYyl9LGFwcGx5KHQpe3JldHVybiB0LnNlbGVjdGlvbn19KSxuZXcgUDkoInN0b3JlZE1hcmtzIix7aW5pdCh0KXtyZXR1cm4gdC5zdG9yZWRNYXJrc3x8bnVsbH0sYXBwbHkodCxlLHIsYSl7cmV0dXJuIGEuc2VsZWN0aW9uLiRjdXJzb3I/dC5zdG9yZWRNYXJrczpudWxsfX0pLG5ldyBQOSgic2Nyb2xsVG9TZWxlY3Rpb24iLHtpbml0KCl7cmV0dXJuIDB9LGFwcGx5KHQsZSl7cmV0dXJuIHQuc2Nyb2xsZWRJbnRvVmlldz9lKzE6ZX19KV0sRXRlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkNvbmZpZ3VyYXRpb24iKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc2NoZW1hPWUsdGhpcy5wbHVnaW5zPVtdLHRoaXMucGx1Z2luc0J5S2V5PU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5maWVsZHM9UUlhLnNsaWNlKCksciYmci5mb3JFYWNoKGE9PntpZih0aGlzLnBsdWdpbnNCeUtleVthLmtleV0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkFkZGluZyBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIGEga2V5ZWQgcGx1Z2luICgiK2Eua2V5KyIpIik7dGhpcy5wbHVnaW5zLnB1c2goYSksdGhpcy5wbHVnaW5zQnlLZXlbYS5rZXldPWEsYS5zcGVjLnN0YXRlJiZ0aGlzLmZpZWxkcy5wdXNoKG5ldyBQOShhLmtleSxhLnNwZWMuc3RhdGUsYSkpfSl9fSxJdGU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJFZGl0b3JTdGF0ZSIpfWNvbnN0cnVjdG9yKGUpe3RoaXMuY29uZmlnPWV9Z2V0IHNjaGVtYSgpe3JldHVybiB0aGlzLmNvbmZpZy5zY2hlbWF9Z2V0IHBsdWdpbnMoKXtyZXR1cm4gdGhpcy5jb25maWcucGx1Z2luc31hcHBseShlKXtyZXR1cm4gdGhpcy5hcHBseVRyYW5zYWN0aW9uKGUpLnN0YXRlfWZpbHRlclRyYW5zYWN0aW9uKGUscj0tMSl7Zm9yKGxldCBhPTA7YTx0aGlzLmNvbmZpZy5wbHVnaW5zLmxlbmd0aDthKyspaWYoYSE9cil7bGV0IHM9dGhpcy5jb25maWcucGx1Z2luc1thXTtpZihzLnNwZWMuZmlsdGVyVHJhbnNhY3Rpb24mJiFzLnNwZWMuZmlsdGVyVHJhbnNhY3Rpb24uY2FsbChzLGUsdGhpcykpcmV0dXJuITF9cmV0dXJuITB9YXBwbHlUcmFuc2FjdGlvbihlKXtpZighdGhpcy5maWx0ZXJUcmFuc2FjdGlvbihlKSlyZXR1cm57c3RhdGU6dGhpcyx0cmFuc2FjdGlvbnM6W119O2xldCByPVtlXSxhPXRoaXMuYXBwbHlJbm5lcihlKSxzPW51bGw7Zm9yKDs7KXtsZXQgbj0hMTtmb3IobGV0IG89MDtvPHRoaXMuY29uZmlnLnBsdWdpbnMubGVuZ3RoO28rKyl7bGV0IGw9dGhpcy5jb25maWcucGx1Z2luc1tvXTtpZihsLnNwZWMuYXBwZW5kVHJhbnNhY3Rpb24pe2xldCBjPXM/c1tvXS5uOjAsZD1zP3Nbb10uc3RhdGU6dGhpcyxmPWM8ci5sZW5ndGgmJmwuc3BlYy5hcHBlbmRUcmFuc2FjdGlvbi5jYWxsKGwsYz9yLnNsaWNlKGMpOnIsZCxhKTtpZihmJiZhLmZpbHRlclRyYW5zYWN0aW9uKGYsbykpe2lmKGYuc2V0TWV0YSgiYXBwZW5kZWRUcmFuc2FjdGlvbiIsZSksIXMpe3M9W107Zm9yKGxldCBwPTA7cDx0aGlzLmNvbmZpZy5wbHVnaW5zLmxlbmd0aDtwKyspcy5wdXNoKHA8bz97c3RhdGU6YSxuOnIubGVuZ3RofTp7c3RhdGU6dGhpcyxuOjB9KX1yLnB1c2goZiksYT1hLmFwcGx5SW5uZXIoZiksbj0hMH1zJiYoc1tvXT17c3RhdGU6YSxuOnIubGVuZ3RofSl9fWlmKCFuKXJldHVybntzdGF0ZTphLHRyYW5zYWN0aW9uczpyfX19YXBwbHlJbm5lcihlKXtpZighZS5iZWZvcmUuZXEodGhpcy5kb2MpKXRocm93IG5ldyBSYW5nZUVycm9yKCJBcHBseWluZyBhIG1pc21hdGNoZWQgdHJhbnNhY3Rpb24iKTtsZXQgcj1uZXcgdCh0aGlzLmNvbmZpZyksYT10aGlzLmNvbmZpZy5maWVsZHM7Zm9yKGxldCBzPTA7czxhLmxlbmd0aDtzKyspe2xldCBuPWFbc107cltuLm5hbWVdPW4uYXBwbHkoZSx0aGlzW24ubmFtZV0sdGhpcyxyKX1yZXR1cm4gcn1nZXQgdHIoKXtyZXR1cm4gbmV3IGtmZSh0aGlzKX1zdGF0aWMgY3JlYXRlKGUpe2xldCByPW5ldyBFdGUoZS5kb2M/ZS5kb2MudHlwZS5zY2hlbWE6ZS5zY2hlbWEsZS5wbHVnaW5zKSxhPW5ldyB0KHIpO2ZvcihsZXQgcz0wO3M8ci5maWVsZHMubGVuZ3RoO3MrKylhW3IuZmllbGRzW3NdLm5hbWVdPXIuZmllbGRzW3NdLmluaXQoZSxhKTtyZXR1cm4gYX1yZWNvbmZpZ3VyZShlKXtsZXQgcj1uZXcgRXRlKHRoaXMuc2NoZW1hLGUucGx1Z2lucyksYT1yLmZpZWxkcyxzPW5ldyB0KHIpO2ZvcihsZXQgbj0wO248YS5sZW5ndGg7bisrKXtsZXQgbz1hW25dLm5hbWU7c1tvXT10aGlzLmhhc093blByb3BlcnR5KG8pP3RoaXNbb106YVtuXS5pbml0KGUscyl9cmV0dXJuIHN9dG9KU09OKGUpe2xldCByPXtkb2M6dGhpcy5kb2MudG9KU09OKCksc2VsZWN0aW9uOnRoaXMuc2VsZWN0aW9uLnRvSlNPTigpfTtpZih0aGlzLnN0b3JlZE1hcmtzJiYoci5zdG9yZWRNYXJrcz10aGlzLnN0b3JlZE1hcmtzLm1hcChhPT5hLnRvSlNPTigpKSksZSYmdHlwZW9mIGU9PSJvYmplY3QiKWZvcihsZXQgYSBpbiBlKXtpZihhPT0iZG9jInx8YT09InNlbGVjdGlvbiIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRoZSBKU09OIGZpZWxkcyBgZG9jYCBhbmQgYHNlbGVjdGlvbmAgYXJlIHJlc2VydmVkIik7bGV0IHM9ZVthXSxuPXMuc3BlYy5zdGF0ZTtuJiZuLnRvSlNPTiYmKHJbYV09bi50b0pTT04uY2FsbChzLHRoaXNbcy5rZXldKSl9cmV0dXJuIHJ9c3RhdGljIGZyb21KU09OKGUscixhKXtpZighcil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBpbnB1dCBmb3IgRWRpdG9yU3RhdGUuZnJvbUpTT04iKTtpZighZS5zY2hlbWEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlJlcXVpcmVkIGNvbmZpZyBmaWVsZCAnc2NoZW1hJyBtaXNzaW5nIik7bGV0IHM9bmV3IEV0ZShlLnNjaGVtYSxlLnBsdWdpbnMpLG49bmV3IHQocyk7cmV0dXJuIHMuZmllbGRzLmZvckVhY2gobz0+e2lmKG8ubmFtZT09ImRvYyIpbi5kb2M9cW8uZnJvbUpTT04oZS5zY2hlbWEsci5kb2MpO2Vsc2UgaWYoby5uYW1lPT0ic2VsZWN0aW9uIiluLnNlbGVjdGlvbj1KdC5mcm9tSlNPTihuLmRvYyxyLnNlbGVjdGlvbik7ZWxzZSBpZihvLm5hbWU9PSJzdG9yZWRNYXJrcyIpci5zdG9yZWRNYXJrcyYmKG4uc3RvcmVkTWFya3M9ci5zdG9yZWRNYXJrcy5tYXAoZS5zY2hlbWEubWFya0Zyb21KU09OKSk7ZWxzZXtpZihhKWZvcihsZXQgbCBpbiBhKXtsZXQgYz1hW2xdLGQ9Yy5zcGVjLnN0YXRlO2lmKGMua2V5PT1vLm5hbWUmJmQmJmQuZnJvbUpTT04mJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGwpKXtuW28ubmFtZV09ZC5mcm9tSlNPTi5jYWxsKGMsZSxyW2xdLG4pO3JldHVybn19bltvLm5hbWVdPW8uaW5pdChlLG4pfX0pLG59fTtpKFRXciwiYmluZFByb3BzIik7UWE9Y2xhc3N7c3RhdGlje2kodGhpcywiUGx1Z2luIil9Y29uc3RydWN0b3IoZSl7dGhpcy5zcGVjPWUsdGhpcy5wcm9wcz17fSxlLnByb3BzJiZUV3IoZS5wcm9wcyx0aGlzLHRoaXMucHJvcHMpLHRoaXMua2V5PWUua2V5P2Uua2V5LmtleTpMV3IoInBsdWdpbiIpfWdldFN0YXRlKGUpe3JldHVybiBlW3RoaXMua2V5XX19LFNtdD1PYmplY3QuY3JlYXRlKG51bGwpO2koTFdyLCJjcmVhdGVLZXkiKTtMcz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQbHVnaW5LZXkiKX1jb25zdHJ1Y3RvcihlPSJrZXkiKXt0aGlzLmtleT1MV3IoZSl9Z2V0KGUpe3JldHVybiBlLmNvbmZpZy5wbHVnaW5zQnlLZXlbdGhpcy5rZXldfWdldFN0YXRlKGUpe3JldHVybiBlW3RoaXMua2V5XX19fSk7dmFyIFB0ZT11KCgpPT57YTMoKX0pO2Z1bmN0aW9uIERXcih0LGUscixhLHMpe2Zvcih2YXIgbjs7KXtpZih0PT1yJiZlPT1hKXJldHVybiEwO2lmKGU9PShzPDA/MDpKbCh0KSkpe2xldCBvPXQucGFyZW50Tm9kZTtpZighb3x8by5ub2RlVHlwZSE9MXx8TnRlKHQpfHxKSWEudGVzdCh0Lm5vZGVOYW1lKXx8dC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpcmV0dXJuITE7ZT1Qbih0KSsoczwwPzA6MSksdD1vfWVsc2UgaWYodC5ub2RlVHlwZT09MSl7bGV0IG89dC5jaGlsZE5vZGVzW2UrKHM8MD8tMTowKV07aWYoby5ub2RlVHlwZT09MSYmby5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpaWYoISgobj1vLnBtVmlld0Rlc2MpPT09bnVsbHx8bj09PXZvaWQgMCkmJm4uaWdub3JlRm9yU2VsZWN0aW9uKWUrPXM7ZWxzZSByZXR1cm4hMTtlbHNlIHQ9byxlPXM8MD9KbCh0KTowfWVsc2UgcmV0dXJuITF9fWZ1bmN0aW9uIEpsKHQpe3JldHVybiB0Lm5vZGVUeXBlPT0zP3Qubm9kZVZhbHVlLmxlbmd0aDp0LmNoaWxkTm9kZXMubGVuZ3RofWZ1bmN0aW9uIGVQYSh0LGUpe2Zvcig7Oyl7aWYodC5ub2RlVHlwZT09MyYmZSlyZXR1cm4gdDtpZih0Lm5vZGVUeXBlPT0xJiZlPjApe2lmKHQuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXJldHVybiBudWxsO3Q9dC5jaGlsZE5vZGVzW2UtMV0sZT1KbCh0KX1lbHNlIGlmKHQucGFyZW50Tm9kZSYmIU50ZSh0KSllPVBuKHQpLHQ9dC5wYXJlbnROb2RlO2Vsc2UgcmV0dXJuIG51bGx9fWZ1bmN0aW9uIHRQYSh0LGUpe2Zvcig7Oyl7aWYodC5ub2RlVHlwZT09MyYmZTx0Lm5vZGVWYWx1ZS5sZW5ndGgpcmV0dXJuIHQ7aWYodC5ub2RlVHlwZT09MSYmZTx0LmNoaWxkTm9kZXMubGVuZ3RoKXtpZih0LmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilyZXR1cm4gbnVsbDt0PXQuY2hpbGROb2Rlc1tlXSxlPTB9ZWxzZSBpZih0LnBhcmVudE5vZGUmJiFOdGUodCkpZT1Qbih0KSsxLHQ9dC5wYXJlbnROb2RlO2Vsc2UgcmV0dXJuIG51bGx9fWZ1bmN0aW9uIHJQYSh0LGUscil7Zm9yKGxldCBhPWU9PTAscz1lPT1KbCh0KTthfHxzOyl7aWYodD09cilyZXR1cm4hMDtsZXQgbj1Qbih0KTtpZih0PXQucGFyZW50Tm9kZSwhdClyZXR1cm4hMTthPWEmJm49PTAscz1zJiZuPT1KbCh0KX19ZnVuY3Rpb24gTnRlKHQpe2xldCBlO2ZvcihsZXQgcj10O3ImJiEoZT1yLnBtVmlld0Rlc2MpO3I9ci5wYXJlbnROb2RlKTtyZXR1cm4gZSYmZS5ub2RlJiZlLm5vZGUuaXNCbG9jayYmKGUuZG9tPT10fHxlLmNvbnRlbnRET009PXQpfWZ1bmN0aW9uIFI5KHQsZSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIHIuaW5pdEV2ZW50KCJrZXlkb3duIiwhMCwhMCksci5rZXlDb2RlPXQsci5rZXk9ci5jb2RlPWUscn1mdW5jdGlvbiBhUGEodCl7bGV0IGU9dC5hY3RpdmVFbGVtZW50O2Zvcig7ZSYmZS5zaGFkb3dSb290OyllPWUuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50O3JldHVybiBlfWZ1bmN0aW9uIGlQYSh0LGUscil7aWYodC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KXRyeXtsZXQgYT10LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoZSxyKTtpZihhKXJldHVybntub2RlOmEub2Zmc2V0Tm9kZSxvZmZzZXQ6TWF0aC5taW4oSmwoYS5vZmZzZXROb2RlKSxhLm9mZnNldCl9fWNhdGNoe31pZih0LmNhcmV0UmFuZ2VGcm9tUG9pbnQpe2xldCBhPXQuY2FyZXRSYW5nZUZyb21Qb2ludChlLHIpO2lmKGEpcmV0dXJue25vZGU6YS5zdGFydENvbnRhaW5lcixvZmZzZXQ6TWF0aC5taW4oSmwoYS5zdGFydENvbnRhaW5lciksYS5zdGFydE9mZnNldCl9fX1mdW5jdGlvbiBuUGEodCl7bGV0IGU9dC5kZWZhdWx0VmlldyYmdC5kZWZhdWx0Vmlldy52aXN1YWxWaWV3cG9ydDtyZXR1cm4gZT97bGVmdDowLHJpZ2h0OmUud2lkdGgsdG9wOjAsYm90dG9tOmUuaGVpZ2h0fTp7bGVmdDowLHJpZ2h0OnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLHRvcDowLGJvdHRvbTp0LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR9fWZ1bmN0aW9uIG4zKHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIj90OnRbZV19ZnVuY3Rpb24gb1BhKHQpe2xldCBlPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1lLndpZHRoL3Qub2Zmc2V0V2lkdGh8fDEsYT1lLmhlaWdodC90Lm9mZnNldEhlaWdodHx8MTtyZXR1cm57bGVmdDplLmxlZnQscmlnaHQ6ZS5sZWZ0K3QuY2xpZW50V2lkdGgqcix0b3A6ZS50b3AsYm90dG9tOmUudG9wK3QuY2xpZW50SGVpZ2h0KmF9fWZ1bmN0aW9uIFBXcih0LGUscil7bGV0IGE9dC5zb21lUHJvcCgic2Nyb2xsVGhyZXNob2xkIil8fDAscz10LnNvbWVQcm9wKCJzY3JvbGxNYXJnaW4iKXx8NSxuPXQuZG9tLm93bmVyRG9jdW1lbnQ7Zm9yKGxldCBvPXJ8fHQuZG9tO287KXtpZihvLm5vZGVUeXBlIT0xKXtvPWV3KG8pO2NvbnRpbnVlfWxldCBsPW8sYz1sPT1uLmJvZHksZD1jP25QYShuKTpvUGEobCksZj0wLHA9MDtpZihlLnRvcDxkLnRvcCtuMyhhLCJ0b3AiKT9wPS0oZC50b3AtZS50b3ArbjMocywidG9wIikpOmUuYm90dG9tPmQuYm90dG9tLW4zKGEsImJvdHRvbSIpJiYocD1lLmJvdHRvbS1lLnRvcD5kLmJvdHRvbS1kLnRvcD9lLnRvcCtuMyhzLCJ0b3AiKS1kLnRvcDplLmJvdHRvbS1kLmJvdHRvbStuMyhzLCJib3R0b20iKSksZS5sZWZ0PGQubGVmdCtuMyhhLCJsZWZ0Iik/Zj0tKGQubGVmdC1lLmxlZnQrbjMocywibGVmdCIpKTplLnJpZ2h0PmQucmlnaHQtbjMoYSwicmlnaHQiKSYmKGY9ZS5yaWdodC1kLnJpZ2h0K24zKHMsInJpZ2h0IikpLGZ8fHApaWYoYyluLmRlZmF1bHRWaWV3LnNjcm9sbEJ5KGYscCk7ZWxzZXtsZXQgbT1sLnNjcm9sbExlZnQsdj1sLnNjcm9sbFRvcDtwJiYobC5zY3JvbGxUb3ArPXApLGYmJihsLnNjcm9sbExlZnQrPWYpO2xldCBiPWwuc2Nyb2xsTGVmdC1tLGc9bC5zY3JvbGxUb3AtdjtlPXtsZWZ0OmUubGVmdC1iLHRvcDplLnRvcC1nLHJpZ2h0OmUucmlnaHQtYixib3R0b206ZS5ib3R0b20tZ319bGV0IGg9Yz8iZml4ZWQiOmdldENvbXB1dGVkU3R5bGUobykucG9zaXRpb247aWYoL14oZml4ZWR8c3RpY2t5KSQvLnRlc3QoaCkpYnJlYWs7bz1oPT0iYWJzb2x1dGUiP28ub2Zmc2V0UGFyZW50OmV3KG8pfX1mdW5jdGlvbiBsUGEodCl7bGV0IGU9dC5kb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1NYXRoLm1heCgwLGUudG9wKSxhLHM7Zm9yKGxldCBuPShlLmxlZnQrZS5yaWdodCkvMixvPXIrMTtvPE1hdGgubWluKGlubmVySGVpZ2h0LGUuYm90dG9tKTtvKz01KXtsZXQgbD10LnJvb3QuZWxlbWVudEZyb21Qb2ludChuLG8pO2lmKCFsfHxsPT10LmRvbXx8IXQuZG9tLmNvbnRhaW5zKGwpKWNvbnRpbnVlO2xldCBjPWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoYy50b3A+PXItMjApe2E9bCxzPWMudG9wO2JyZWFrfX1yZXR1cm57cmVmRE9NOmEscmVmVG9wOnMsc3RhY2s6TldyKHQuZG9tKX19ZnVuY3Rpb24gTldyKHQpe2xldCBlPVtdLHI9dC5vd25lckRvY3VtZW50O2ZvcihsZXQgYT10O2EmJihlLnB1c2goe2RvbTphLHRvcDphLnNjcm9sbFRvcCxsZWZ0OmEuc2Nyb2xsTGVmdH0pLHQhPXIpO2E9ZXcoYSkpO3JldHVybiBlfWZ1bmN0aW9uIGNQYSh7cmVmRE9NOnQscmVmVG9wOmUsc3RhY2s6cn0pe2xldCBhPXQ/dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A6MDtPV3IocixhPT0wPzA6YS1lKX1mdW5jdGlvbiBPV3IodCxlKXtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKyl7bGV0e2RvbTphLHRvcDpzLGxlZnQ6bn09dFtyXTthLnNjcm9sbFRvcCE9cytlJiYoYS5zY3JvbGxUb3A9cytlKSxhLnNjcm9sbExlZnQhPW4mJihhLnNjcm9sbExlZnQ9bil9fWZ1bmN0aW9uIGRQYSh0KXtpZih0LnNldEFjdGl2ZSlyZXR1cm4gdC5zZXRBY3RpdmUoKTtpZihydylyZXR1cm4gdC5mb2N1cyhydyk7bGV0IGU9TldyKHQpO3QuZm9jdXMocnc9PW51bGw/e2dldCBwcmV2ZW50U2Nyb2xsKCl7cmV0dXJuIHJ3PXtwcmV2ZW50U2Nyb2xsOiEwfSwhMH19OnZvaWQgMCkscnd8fChydz0hMSxPV3IoZSwwKSl9ZnVuY3Rpb24gUldyKHQsZSl7bGV0IHIsYT0yZTgscyxuPTAsbz1lLnRvcCxsPWUudG9wLGMsZDtmb3IobGV0IGY9dC5maXJzdENoaWxkLHA9MDtmO2Y9Zi5uZXh0U2libGluZyxwKyspe2xldCBoO2lmKGYubm9kZVR5cGU9PTEpaD1mLmdldENsaWVudFJlY3RzKCk7ZWxzZSBpZihmLm5vZGVUeXBlPT0zKWg9aTMoZikuZ2V0Q2xpZW50UmVjdHMoKTtlbHNlIGNvbnRpbnVlO2ZvcihsZXQgbT0wO208aC5sZW5ndGg7bSsrKXtsZXQgdj1oW21dO2lmKHYudG9wPD1vJiZ2LmJvdHRvbT49bCl7bz1NYXRoLm1heCh2LmJvdHRvbSxvKSxsPU1hdGgubWluKHYudG9wLGwpO2xldCBiPXYubGVmdD5lLmxlZnQ/di5sZWZ0LWUubGVmdDp2LnJpZ2h0PGUubGVmdD9lLmxlZnQtdi5yaWdodDowO2lmKGI8YSl7cj1mLGE9YixzPWImJnIubm9kZVR5cGU9PTM/e2xlZnQ6di5yaWdodDxlLmxlZnQ/di5yaWdodDp2LmxlZnQsdG9wOmUudG9wfTplLGYubm9kZVR5cGU9PTEmJmImJihuPXArKGUubGVmdD49KHYubGVmdCt2LnJpZ2h0KS8yPzE6MCkpO2NvbnRpbnVlfX1lbHNlIHYudG9wPmUudG9wJiYhYyYmdi5sZWZ0PD1lLmxlZnQmJnYucmlnaHQ+PWUubGVmdCYmKGM9ZixkPXtsZWZ0Ok1hdGgubWF4KHYubGVmdCxNYXRoLm1pbih2LnJpZ2h0LGUubGVmdCkpLHRvcDp2LnRvcH0pOyFyJiYoZS5sZWZ0Pj12LnJpZ2h0JiZlLnRvcD49di50b3B8fGUubGVmdD49di5sZWZ0JiZlLnRvcD49di5ib3R0b20pJiYobj1wKzEpfX1yZXR1cm4hciYmYyYmKHI9YyxzPWQsYT0wKSxyJiZyLm5vZGVUeXBlPT0zP3VQYShyLHMpOiFyfHxhJiZyLm5vZGVUeXBlPT0xP3tub2RlOnQsb2Zmc2V0Om59OlJXcihyLHMpfWZ1bmN0aW9uIHVQYSh0LGUpe2xldCByPXQubm9kZVZhbHVlLmxlbmd0aCxhPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCkscztmb3IobGV0IG49MDtuPHI7bisrKXthLnNldEVuZCh0LG4rMSksYS5zZXRTdGFydCh0LG4pO2xldCBvPUtwKGEsMSk7aWYoby50b3AhPW8uYm90dG9tJiZUbXQoZSxvKSl7cz17bm9kZTp0LG9mZnNldDpuKyhlLmxlZnQ+PShvLmxlZnQrby5yaWdodCkvMj8xOjApfTticmVha319cmV0dXJuIGEuZGV0YWNoKCksc3x8e25vZGU6dCxvZmZzZXQ6MH19ZnVuY3Rpb24gVG10KHQsZSl7cmV0dXJuIHQubGVmdD49ZS5sZWZ0LTEmJnQubGVmdDw9ZS5yaWdodCsxJiZ0LnRvcD49ZS50b3AtMSYmdC50b3A8PWUuYm90dG9tKzF9ZnVuY3Rpb24gcFBhKHQsZSl7bGV0IHI9dC5wYXJlbnROb2RlO3JldHVybiByJiYvXmxpJC9pLnRlc3Qoci5ub2RlTmFtZSkmJmUubGVmdDx0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ/cjp0fWZ1bmN0aW9uIGZQYSh0LGUscil7bGV0e25vZGU6YSxvZmZzZXQ6c309UldyKGUsciksbj0tMTtpZihhLm5vZGVUeXBlPT0xJiYhYS5maXJzdENoaWxkKXtsZXQgbz1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO249by5sZWZ0IT1vLnJpZ2h0JiZyLmxlZnQ+KG8ubGVmdCtvLnJpZ2h0KS8yPzE6LTF9cmV0dXJuIHQuZG9jVmlldy5wb3NGcm9tRE9NKGEscyxuKX1mdW5jdGlvbiBoUGEodCxlLHIsYSl7bGV0IHM9LTE7Zm9yKGxldCBuPWUsbz0hMTtuIT10LmRvbTspe2xldCBsPXQuZG9jVmlldy5uZWFyZXN0RGVzYyhuLCEwKSxjO2lmKCFsKXJldHVybiBudWxsO2lmKGwuZG9tLm5vZGVUeXBlPT0xJiYobC5ub2RlLmlzQmxvY2smJmwucGFyZW50fHwhbC5jb250ZW50RE9NKSYmKChjPWwuZG9tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKS53aWR0aHx8Yy5oZWlnaHQpJiYobC5ub2RlLmlzQmxvY2smJmwucGFyZW50JiYhL15UKFJ8Qk9EWXxIRUFEfEZPT1QpJC8udGVzdChsLmRvbS5ub2RlTmFtZSkmJighbyYmYy5sZWZ0PmEubGVmdHx8Yy50b3A+YS50b3A/cz1sLnBvc0JlZm9yZTooIW8mJmMucmlnaHQ8YS5sZWZ0fHxjLmJvdHRvbTxhLnRvcCkmJihzPWwucG9zQWZ0ZXIpLG89ITApLCFsLmNvbnRlbnRET00mJnM8MCYmIWwubm9kZS5pc1RleHQpKXJldHVybihsLm5vZGUuaXNCbG9jaz9hLnRvcDwoYy50b3ArYy5ib3R0b20pLzI6YS5sZWZ0PChjLmxlZnQrYy5yaWdodCkvMik/bC5wb3NCZWZvcmU6bC5wb3NBZnRlcjtuPWwuZG9tLnBhcmVudE5vZGV9cmV0dXJuIHM+LTE/czp0LmRvY1ZpZXcucG9zRnJvbURPTShlLHIsLTEpfWZ1bmN0aW9uIEZXcih0LGUscil7bGV0IGE9dC5jaGlsZE5vZGVzLmxlbmd0aDtpZihhJiZyLnRvcDxyLmJvdHRvbSlmb3IobGV0IHM9TWF0aC5tYXgoMCxNYXRoLm1pbihhLTEsTWF0aC5mbG9vcihhKihlLnRvcC1yLnRvcCkvKHIuYm90dG9tLXIudG9wKSktMikpLG49czs7KXtsZXQgbz10LmNoaWxkTm9kZXNbbl07aWYoby5ub2RlVHlwZT09MSl7bGV0IGw9by5nZXRDbGllbnRSZWN0cygpO2ZvcihsZXQgYz0wO2M8bC5sZW5ndGg7YysrKXtsZXQgZD1sW2NdO2lmKFRtdChlLGQpKXJldHVybiBGV3IobyxlLGQpfX1pZigobj0obisxKSVhKT09cylicmVha31yZXR1cm4gdH1mdW5jdGlvbiBtUGEodCxlKXtsZXQgcj10LmRvbS5vd25lckRvY3VtZW50LGEscz0wLG49aVBhKHIsZS5sZWZ0LGUudG9wKTtuJiYoe25vZGU6YSxvZmZzZXQ6c309bik7bGV0IG89KHQucm9vdC5lbGVtZW50RnJvbVBvaW50P3Qucm9vdDpyKS5lbGVtZW50RnJvbVBvaW50KGUubGVmdCxlLnRvcCksbDtpZighb3x8IXQuZG9tLmNvbnRhaW5zKG8ubm9kZVR5cGUhPTE/by5wYXJlbnROb2RlOm8pKXtsZXQgZD10LmRvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZighVG10KGUsZCl8fChvPUZXcih0LmRvbSxlLGQpLCFvKSlyZXR1cm4gbnVsbH1pZihDbylmb3IobGV0IGQ9bzthJiZkO2Q9ZXcoZCkpZC5kcmFnZ2FibGUmJihhPXZvaWQgMCk7aWYobz1wUGEobyxlKSxhKXtpZihlMiYmYS5ub2RlVHlwZT09MSYmKHM9TWF0aC5taW4ocyxhLmNoaWxkTm9kZXMubGVuZ3RoKSxzPGEuY2hpbGROb2Rlcy5sZW5ndGgpKXtsZXQgZj1hLmNoaWxkTm9kZXNbc10scDtmLm5vZGVOYW1lPT0iSU1HIiYmKHA9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkucmlnaHQ8PWUubGVmdCYmcC5ib3R0b20+ZS50b3AmJnMrK31sZXQgZDtPdGUmJnMmJmEubm9kZVR5cGU9PTEmJihkPWEuY2hpbGROb2Rlc1tzLTFdKS5ub2RlVHlwZT09MSYmZC5jb250ZW50RWRpdGFibGU9PSJmYWxzZSImJmQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wPj1lLnRvcCYmcy0tLGE9PXQuZG9tJiZzPT1hLmNoaWxkTm9kZXMubGVuZ3RoLTEmJmEubGFzdENoaWxkLm5vZGVUeXBlPT0xJiZlLnRvcD5hLmxhc3RDaGlsZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20/bD10LnN0YXRlLmRvYy5jb250ZW50LnNpemU6KHM9PTB8fGEubm9kZVR5cGUhPTF8fGEuY2hpbGROb2Rlc1tzLTFdLm5vZGVOYW1lIT0iQlIiKSYmKGw9aFBhKHQsYSxzLGUpKX1sPT1udWxsJiYobD1mUGEodCxvLGUpKTtsZXQgYz10LmRvY1ZpZXcubmVhcmVzdERlc2MobywhMCk7cmV0dXJue3BvczpsLGluc2lkZTpjP2MucG9zQXRTdGFydC1jLmJvcmRlcjotMX19ZnVuY3Rpb24gQldyKHQpe3JldHVybiB0LnRvcDx0LmJvdHRvbXx8dC5sZWZ0PHQucmlnaHR9ZnVuY3Rpb24gS3AodCxlKXtsZXQgcj10LmdldENsaWVudFJlY3RzKCk7aWYoci5sZW5ndGgpe2xldCBhPXJbZTwwPzA6ci5sZW5ndGgtMV07aWYoQldyKGEpKXJldHVybiBhfXJldHVybiBBcnJheS5wcm90b3R5cGUuZmluZC5jYWxsKHIsQldyKXx8dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1mdW5jdGlvbiBIV3IodCxlLHIpe2xldHtub2RlOmEsb2Zmc2V0OnMsYXRvbTpufT10LmRvY1ZpZXcuZG9tRnJvbVBvcyhlLHI8MD8tMToxKSxvPU90ZXx8ZTI7aWYoYS5ub2RlVHlwZT09MylpZihvJiYoZ1BhLnRlc3QoYS5ub2RlVmFsdWUpfHwocjwwPyFzOnM9PWEubm9kZVZhbHVlLmxlbmd0aCkpKXtsZXQgYz1LcChpMyhhLHMscykscik7aWYoZTImJnMmJi9ccy8udGVzdChhLm5vZGVWYWx1ZVtzLTFdKSYmczxhLm5vZGVWYWx1ZS5sZW5ndGgpe2xldCBkPUtwKGkzKGEscy0xLHMtMSksLTEpO2lmKGQudG9wPT1jLnRvcCl7bGV0IGY9S3AoaTMoYSxzLHMrMSksLTEpO2lmKGYudG9wIT1jLnRvcClyZXR1cm4gUnRlKGYsZi5sZWZ0PGQubGVmdCl9fXJldHVybiBjfWVsc2V7bGV0IGM9cyxkPXMsZj1yPDA/MTotMTtyZXR1cm4gcjwwJiYhcz8oZCsrLGY9LTEpOnI+PTAmJnM9PWEubm9kZVZhbHVlLmxlbmd0aD8oYy0tLGY9MSk6cjwwP2MtLTpkKyssUnRlKEtwKGkzKGEsYyxkKSxmKSxmPDApfWlmKCF0LnN0YXRlLmRvYy5yZXNvbHZlKGUtKG58fDApKS5wYXJlbnQuaW5saW5lQ29udGVudCl7aWYobj09bnVsbCYmcyYmKHI8MHx8cz09SmwoYSkpKXtsZXQgYz1hLmNoaWxkTm9kZXNbcy0xXTtpZihjLm5vZGVUeXBlPT0xKXJldHVybiBMbXQoYy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwhMSl9aWYobj09bnVsbCYmczxKbChhKSl7bGV0IGM9YS5jaGlsZE5vZGVzW3NdO2lmKGMubm9kZVR5cGU9PTEpcmV0dXJuIExtdChjLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCEwKX1yZXR1cm4gTG10KGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj49MCl9aWYobj09bnVsbCYmcyYmKHI8MHx8cz09SmwoYSkpKXtsZXQgYz1hLmNoaWxkTm9kZXNbcy0xXSxkPWMubm9kZVR5cGU9PTM/aTMoYyxKbChjKS0obz8wOjEpKTpjLm5vZGVUeXBlPT0xJiYoYy5ub2RlTmFtZSE9IkJSInx8IWMubmV4dFNpYmxpbmcpP2M6bnVsbDtpZihkKXJldHVybiBSdGUoS3AoZCwxKSwhMSl9aWYobj09bnVsbCYmczxKbChhKSl7bGV0IGM9YS5jaGlsZE5vZGVzW3NdO2Zvcig7Yy5wbVZpZXdEZXNjJiZjLnBtVmlld0Rlc2MuaWdub3JlRm9yQ29vcmRzOyljPWMubmV4dFNpYmxpbmc7bGV0IGQ9Yz9jLm5vZGVUeXBlPT0zP2kzKGMsMCxvPzA6MSk6Yy5ub2RlVHlwZT09MT9jOm51bGw6bnVsbDtpZihkKXJldHVybiBSdGUoS3AoZCwtMSksITApfXJldHVybiBSdGUoS3AoYS5ub2RlVHlwZT09Mz9pMyhhKTphLC1yKSxyPj0wKX1mdW5jdGlvbiBSdGUodCxlKXtpZih0LndpZHRoPT0wKXJldHVybiB0O2xldCByPWU/dC5sZWZ0OnQucmlnaHQ7cmV0dXJue3RvcDp0LnRvcCxib3R0b206dC5ib3R0b20sbGVmdDpyLHJpZ2h0OnJ9fWZ1bmN0aW9uIExtdCh0LGUpe2lmKHQuaGVpZ2h0PT0wKXJldHVybiB0O2xldCByPWU/dC50b3A6dC5ib3R0b207cmV0dXJue3RvcDpyLGJvdHRvbTpyLGxlZnQ6dC5sZWZ0LHJpZ2h0OnQucmlnaHR9fWZ1bmN0aW9uIHFXcih0LGUscil7bGV0IGE9dC5zdGF0ZSxzPXQucm9vdC5hY3RpdmVFbGVtZW50O2EhPWUmJnQudXBkYXRlU3RhdGUoZSkscyE9dC5kb20mJnQuZm9jdXMoKTt0cnl7cmV0dXJuIHIoKX1maW5hbGx5e2EhPWUmJnQudXBkYXRlU3RhdGUoYSkscyE9dC5kb20mJnMmJnMuZm9jdXMoKX19ZnVuY3Rpb24gYlBhKHQsZSxyKXtsZXQgYT1lLnNlbGVjdGlvbixzPXI9PSJ1cCI/YS4kZnJvbTphLiR0bztyZXR1cm4gcVdyKHQsZSwoKT0+e2xldHtub2RlOm59PXQuZG9jVmlldy5kb21Gcm9tUG9zKHMucG9zLHI9PSJ1cCI/LTE6MSk7Zm9yKDs7KXtsZXQgbD10LmRvY1ZpZXcubmVhcmVzdERlc2MobiwhMCk7aWYoIWwpYnJlYWs7aWYobC5ub2RlLmlzQmxvY2spe249bC5jb250ZW50RE9NfHxsLmRvbTticmVha31uPWwuZG9tLnBhcmVudE5vZGV9bGV0IG89SFdyKHQscy5wb3MsMSk7Zm9yKGxldCBsPW4uZmlyc3RDaGlsZDtsO2w9bC5uZXh0U2libGluZyl7bGV0IGM7aWYobC5ub2RlVHlwZT09MSljPWwuZ2V0Q2xpZW50UmVjdHMoKTtlbHNlIGlmKGwubm9kZVR5cGU9PTMpYz1pMyhsLDAsbC5ub2RlVmFsdWUubGVuZ3RoKS5nZXRDbGllbnRSZWN0cygpO2Vsc2UgY29udGludWU7Zm9yKGxldCBkPTA7ZDxjLmxlbmd0aDtkKyspe2xldCBmPWNbZF07aWYoZi5ib3R0b20+Zi50b3ArMSYmKHI9PSJ1cCI/by50b3AtZi50b3A+KGYuYm90dG9tLW8udG9wKSoyOmYuYm90dG9tLW8uYm90dG9tPihvLmJvdHRvbS1mLnRvcCkqMikpcmV0dXJuITF9fXJldHVybiEwfSl9ZnVuY3Rpb24gdlBhKHQsZSxyKXtsZXR7JGhlYWQ6YX09ZS5zZWxlY3Rpb247aWYoIWEucGFyZW50LmlzVGV4dGJsb2NrKXJldHVybiExO2xldCBzPWEucGFyZW50T2Zmc2V0LG49IXMsbz1zPT1hLnBhcmVudC5jb250ZW50LnNpemUsbD10LmRvbVNlbGVjdGlvbigpO3JldHVybiBsPyF4UGEudGVzdChhLnBhcmVudC50ZXh0Q29udGVudCl8fCFsLm1vZGlmeT9yPT0ibGVmdCJ8fHI9PSJiYWNrd2FyZCI/bjpvOnFXcih0LGUsKCk9PntsZXR7Zm9jdXNOb2RlOmMsZm9jdXNPZmZzZXQ6ZCxhbmNob3JOb2RlOmYsYW5jaG9yT2Zmc2V0OnB9PXQuZG9tU2VsZWN0aW9uUmFuZ2UoKSxoPWwuY2FyZXRCaWRpTGV2ZWw7bC5tb2RpZnkoIm1vdmUiLHIsImNoYXJhY3RlciIpO2xldCBtPWEuZGVwdGg/dC5kb2NWaWV3LmRvbUFmdGVyUG9zKGEuYmVmb3JlKCkpOnQuZG9tLHtmb2N1c05vZGU6dixmb2N1c09mZnNldDpifT10LmRvbVNlbGVjdGlvblJhbmdlKCksZz12JiYhbS5jb250YWlucyh2Lm5vZGVUeXBlPT0xP3Y6di5wYXJlbnROb2RlKXx8Yz09diYmZD09Yjt0cnl7bC5jb2xsYXBzZShmLHApLGMmJihjIT1mfHxkIT1wKSYmbC5leHRlbmQmJmwuZXh0ZW5kKGMsZCl9Y2F0Y2h7fXJldHVybiBoIT1udWxsJiYobC5jYXJldEJpZGlMZXZlbD1oKSxnfSk6YS5wb3M9PWEuc3RhcnQoKXx8YS5wb3M9PWEuZW5kKCl9ZnVuY3Rpb24geVBhKHQsZSxyKXtyZXR1cm4gVldyPT1lJiZqV3I9PXI/VVdyOihWV3I9ZSxqV3I9cixVV3I9cj09InVwInx8cj09ImRvd24iP2JQYSh0LGUscik6dlBhKHQsZSxyKSl9ZnVuY3Rpb24gR1dyKHQsZSxyLGEscyl7WldyKGEsZSx0KTtsZXQgbj1uZXcgWnAodm9pZCAwLHQsZSxyLGEsYSxhLHMsMCk7cmV0dXJuIG4uY29udGVudERPTSYmbi51cGRhdGVDaGlsZHJlbihzLDApLG59ZnVuY3Rpb24gWVdyKHQsZSxyKXtsZXQgYT10LmZpcnN0Q2hpbGQscz0hMTtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7bGV0IG89ZVtuXSxsPW8uZG9tO2lmKGwucGFyZW50Tm9kZT09dCl7Zm9yKDtsIT1hOylhPVFXcihhKSxzPSEwO2E9YS5uZXh0U2libGluZ31lbHNlIHM9ITAsdC5pbnNlcnRCZWZvcmUobCxhKTtpZihvIGluc3RhbmNlb2YgYXcpe2xldCBjPWE/YS5wcmV2aW91c1NpYmxpbmc6dC5sYXN0Q2hpbGQ7WVdyKG8uY29udGVudERPTSxvLmNoaWxkcmVuLHIpLGE9Yz9jLm5leHRTaWJsaW5nOnQuZmlyc3RDaGlsZH19Zm9yKDthOylhPVFXcihhKSxzPSEwO3MmJnIudHJhY2tXcml0ZXM9PXQmJihyLnRyYWNrV3JpdGVzPW51bGwpfWZ1bmN0aW9uIEFtdCh0LGUscil7aWYodC5sZW5ndGg9PTApcmV0dXJuIEg5O2xldCBhPXI/SDlbMF06bmV3IEZ0ZSxzPVthXTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7bGV0IG89dFtuXS50eXBlLmF0dHJzO2lmKG8pe28ubm9kZU5hbWUmJnMucHVzaChhPW5ldyBGdGUoby5ub2RlTmFtZSkpO2ZvcihsZXQgbCBpbiBvKXtsZXQgYz1vW2xdO2MhPW51bGwmJihyJiZzLmxlbmd0aD09MSYmcy5wdXNoKGE9bmV3IEZ0ZShlLmlzSW5saW5lPyJzcGFuIjoiZGl2IikpLGw9PSJjbGFzcyI/YS5jbGFzcz0oYS5jbGFzcz9hLmNsYXNzKyIgIjoiIikrYzpsPT0ic3R5bGUiP2Euc3R5bGU9KGEuc3R5bGU/YS5zdHlsZSsiOyI6IiIpK2M6bCE9Im5vZGVOYW1lIiYmKGFbbF09YykpfX19cmV0dXJuIHN9ZnVuY3Rpb24gS1dyKHQsZSxyLGEpe2lmKHI9PUg5JiZhPT1IOSlyZXR1cm4gZTtsZXQgcz1lO2ZvcihsZXQgbj0wO248YS5sZW5ndGg7bisrKXtsZXQgbz1hW25dLGw9cltuXTtpZihuKXtsZXQgYztsJiZsLm5vZGVOYW1lPT1vLm5vZGVOYW1lJiZzIT10JiYoYz1zLnBhcmVudE5vZGUpJiZjLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PW8ubm9kZU5hbWV8fChjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoby5ub2RlTmFtZSksYy5wbUlzRGVjbz0hMCxjLmFwcGVuZENoaWxkKHMpLGw9SDlbMF0pLHM9Y313UGEocyxsfHxIOVswXSxvKX1yZXR1cm4gc31mdW5jdGlvbiB3UGEodCxlLHIpe2ZvcihsZXQgYSBpbiBlKWEhPSJjbGFzcyImJmEhPSJzdHlsZSImJmEhPSJub2RlTmFtZSImJiEoYSBpbiByKSYmdC5yZW1vdmVBdHRyaWJ1dGUoYSk7Zm9yKGxldCBhIGluIHIpYSE9ImNsYXNzIiYmYSE9InN0eWxlIiYmYSE9Im5vZGVOYW1lIiYmclthXSE9ZVthXSYmdC5zZXRBdHRyaWJ1dGUoYSxyW2FdKTtpZihlLmNsYXNzIT1yLmNsYXNzKXtsZXQgYT1lLmNsYXNzP2UuY2xhc3Muc3BsaXQoIiAiKS5maWx0ZXIoQm9vbGVhbik6W10scz1yLmNsYXNzP3IuY2xhc3Muc3BsaXQoIiAiKS5maWx0ZXIoQm9vbGVhbik6W107Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKyspcy5pbmRleE9mKGFbbl0pPT0tMSYmdC5jbGFzc0xpc3QucmVtb3ZlKGFbbl0pO2ZvcihsZXQgbj0wO248cy5sZW5ndGg7bisrKWEuaW5kZXhPZihzW25dKT09LTEmJnQuY2xhc3NMaXN0LmFkZChzW25dKTt0LmNsYXNzTGlzdC5sZW5ndGg9PTAmJnQucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpfWlmKGUuc3R5bGUhPXIuc3R5bGUpe2lmKGUuc3R5bGUpe2xldCBhPS9ccyooW1x3XC1ceGExLVx1ZmZmZl0rKVxzKjooPzoiKD86XFwufFteIl0pKiJ8Jyg/OlxcLnxbXiddKSonfFwoLio/XCl8W147XSkqL2cscztmb3IoO3M9YS5leGVjKGUuc3R5bGUpOyl0LnN0eWxlLnJlbW92ZVByb3BlcnR5KHNbMV0pfXIuc3R5bGUmJih0LnN0eWxlLmNzc1RleHQrPXIuc3R5bGUpfX1mdW5jdGlvbiBaV3IodCxlLHIpe3JldHVybiBLV3IodCx0LEg5LEFtdChlLHIsdC5ub2RlVHlwZSE9MSkpfWZ1bmN0aW9uIF9mZSh0LGUpe2lmKHQubGVuZ3RoIT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKylpZighdFtyXS50eXBlLmVxKGVbcl0udHlwZSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gUVdyKHQpe2xldCBlPXQubmV4dFNpYmxpbmc7cmV0dXJuIHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSxlfWZ1bmN0aW9uIGtQYSh0LGUpe2xldCByPWUsYT1yLmNoaWxkcmVuLmxlbmd0aCxzPXQuY2hpbGRDb3VudCxuPW5ldyBNYXAsbz1bXTtlOmZvcig7cz4wOyl7bGV0IGw7Zm9yKDs7KWlmKGEpe2xldCBkPXIuY2hpbGRyZW5bYS0xXTtpZihkIGluc3RhbmNlb2YgYXcpcj1kLGE9ZC5jaGlsZHJlbi5sZW5ndGg7ZWxzZXtsPWQsYS0tO2JyZWFrfX1lbHNle2lmKHI9PWUpYnJlYWsgZTthPXIucGFyZW50LmNoaWxkcmVuLmluZGV4T2Yocikscj1yLnBhcmVudH1sZXQgYz1sLm5vZGU7aWYoYyl7aWYoYyE9dC5jaGlsZChzLTEpKWJyZWFrOy0tcyxuLnNldChsLHMpLG8ucHVzaChsKX19cmV0dXJue2luZGV4OnMsbWF0Y2hlZDpuLG1hdGNoZXM6by5yZXZlcnNlKCl9fWZ1bmN0aW9uIFNQYSh0LGUpe3JldHVybiB0LnR5cGUuc2lkZS1lLnR5cGUuc2lkZX1mdW5jdGlvbiBNUGEodCxlLHIsYSl7bGV0IHM9ZS5sb2NhbHModCksbj0wO2lmKHMubGVuZ3RoPT0wKXtmb3IobGV0IGQ9MDtkPHQuY2hpbGRDb3VudDtkKyspe2xldCBmPXQuY2hpbGQoZCk7YShmLHMsZS5mb3JDaGlsZChuLGYpLGQpLG4rPWYubm9kZVNpemV9cmV0dXJufWxldCBvPTAsbD1bXSxjPW51bGw7Zm9yKGxldCBkPTA7Oyl7bGV0IGYscDtmb3IoO288cy5sZW5ndGgmJnNbb10udG89PW47KXtsZXQgZz1zW28rK107Zy53aWRnZXQmJihmPyhwfHwocD1bZl0pKS5wdXNoKGcpOmY9Zyl9aWYoZilpZihwKXtwLnNvcnQoU1BhKTtmb3IobGV0IGc9MDtnPHAubGVuZ3RoO2crKylyKHBbZ10sZCwhIWMpfWVsc2UgcihmLGQsISFjKTtsZXQgaCxtO2lmKGMpbT0tMSxoPWMsYz1udWxsO2Vsc2UgaWYoZDx0LmNoaWxkQ291bnQpbT1kLGg9dC5jaGlsZChkKyspO2Vsc2UgYnJlYWs7Zm9yKGxldCBnPTA7ZzxsLmxlbmd0aDtnKyspbFtnXS50bzw9biYmbC5zcGxpY2UoZy0tLDEpO2Zvcig7bzxzLmxlbmd0aCYmc1tvXS5mcm9tPD1uJiZzW29dLnRvPm47KWwucHVzaChzW28rK10pO2xldCB2PW4raC5ub2RlU2l6ZTtpZihoLmlzVGV4dCl7bGV0IGc9djtvPHMubGVuZ3RoJiZzW29dLmZyb208ZyYmKGc9c1tvXS5mcm9tKTtmb3IobGV0IHk9MDt5PGwubGVuZ3RoO3krKylsW3ldLnRvPGcmJihnPWxbeV0udG8pO2c8diYmKGM9aC5jdXQoZy1uKSxoPWguY3V0KDAsZy1uKSx2PWcsbT0tMSl9ZWxzZSBmb3IoO288cy5sZW5ndGgmJnNbb10udG88djspbysrO2xldCBiPWguaXNJbmxpbmUmJiFoLmlzTGVhZj9sLmZpbHRlcihnPT4hZy5pbmxpbmUpOmwuc2xpY2UoKTthKGgsYixlLmZvckNoaWxkKG4saCksbSksbj12fX1mdW5jdGlvbiBDUGEodCl7aWYodC5ub2RlTmFtZT09IlVMInx8dC5ub2RlTmFtZT09Ik9MIil7bGV0IGU9dC5zdHlsZS5jc3NUZXh0O3Quc3R5bGUuY3NzVGV4dD1lKyI7IGxpc3Qtc3R5bGU6IHNxdWFyZSAhaW1wb3J0YW50Iix3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5saXN0U3R5bGUsdC5zdHlsZS5jc3NUZXh0PWV9fWZ1bmN0aW9uIHpQYSh0LGUscixhKXtmb3IobGV0IHM9MCxuPTA7czx0LmNoaWxkQ291bnQmJm48PWE7KXtsZXQgbz10LmNoaWxkKHMrKyksbD1uO2lmKG4rPW8ubm9kZVNpemUsIW8uaXNUZXh0KWNvbnRpbnVlO2xldCBjPW8udGV4dDtmb3IoO3M8dC5jaGlsZENvdW50Oyl7bGV0IGQ9dC5jaGlsZChzKyspO2lmKG4rPWQubm9kZVNpemUsIWQuaXNUZXh0KWJyZWFrO2MrPWQudGV4dH1pZihuPj1yKXtpZihuPj1hJiZjLnNsaWNlKGEtZS5sZW5ndGgtbCxhLWwpPT1lKXJldHVybiBhLWUubGVuZ3RoO2xldCBkPWw8YT9jLmxhc3RJbmRleE9mKGUsYS1sLTEpOi0xO2lmKGQ+PTAmJmQrZS5sZW5ndGgrbD49cilyZXR1cm4gbCtkO2lmKHI9PWEmJmMubGVuZ3RoPj1hK2UubGVuZ3RoLWwmJmMuc2xpY2UoYS1sLGEtbCtlLmxlbmd0aCk9PWUpcmV0dXJuIGF9fXJldHVybi0xfWZ1bmN0aW9uIEltdCh0LGUscixhLHMpe2xldCBuPVtdO2ZvcihsZXQgbz0wLGw9MDtvPHQubGVuZ3RoO28rKyl7bGV0IGM9dFtvXSxkPWwsZj1sKz1jLnNpemU7ZD49cnx8Zjw9ZT9uLnB1c2goYyk6KGQ8ZSYmbi5wdXNoKGMuc2xpY2UoMCxlLWQsYSkpLHMmJihuLnB1c2gocykscz12b2lkIDApLGY+ciYmbi5wdXNoKGMuc2xpY2Uoci1kLGMuc2l6ZSxhKSkpfXJldHVybiBufWZ1bmN0aW9uIFBtdCh0LGU9bnVsbCl7bGV0IHI9dC5kb21TZWxlY3Rpb25SYW5nZSgpLGE9dC5zdGF0ZS5kb2M7aWYoIXIuZm9jdXNOb2RlKXJldHVybiBudWxsO2xldCBzPXQuZG9jVmlldy5uZWFyZXN0RGVzYyhyLmZvY3VzTm9kZSksbj1zJiZzLnNpemU9PTAsbz10LmRvY1ZpZXcucG9zRnJvbURPTShyLmZvY3VzTm9kZSxyLmZvY3VzT2Zmc2V0LDEpO2lmKG88MClyZXR1cm4gbnVsbDtsZXQgbD1hLnJlc29sdmUobyksYyxkO2lmKFNmZShyKSl7Zm9yKGM9bztzJiYhcy5ub2RlOylzPXMucGFyZW50O2xldCBwPXMubm9kZTtpZihzJiZwLmlzQXRvbSYmSXQuaXNTZWxlY3RhYmxlKHApJiZzLnBhcmVudCYmIShwLmlzSW5saW5lJiZyUGEoci5mb2N1c05vZGUsci5mb2N1c09mZnNldCxzLmRvbSkpKXtsZXQgaD1zLnBvc0JlZm9yZTtkPW5ldyBJdChvPT1oP2w6YS5yZXNvbHZlKGgpKX19ZWxzZXtpZihyIGluc3RhbmNlb2YgdC5kb20ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5TZWxlY3Rpb24mJnIucmFuZ2VDb3VudD4xKXtsZXQgcD1vLGg9bztmb3IobGV0IG09MDttPHIucmFuZ2VDb3VudDttKyspe2xldCB2PXIuZ2V0UmFuZ2VBdChtKTtwPU1hdGgubWluKHAsdC5kb2NWaWV3LnBvc0Zyb21ET00odi5zdGFydENvbnRhaW5lcix2LnN0YXJ0T2Zmc2V0LDEpKSxoPU1hdGgubWF4KGgsdC5kb2NWaWV3LnBvc0Zyb21ET00odi5lbmRDb250YWluZXIsdi5lbmRPZmZzZXQsLTEpKX1pZihwPDApcmV0dXJuIG51bGw7W2Msb109aD09dC5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yP1toLHBdOltwLGhdLGw9YS5yZXNvbHZlKG8pfWVsc2UgYz10LmRvY1ZpZXcucG9zRnJvbURPTShyLmFuY2hvck5vZGUsci5hbmNob3JPZmZzZXQsMSk7aWYoYzwwKXJldHVybiBudWxsfWxldCBmPWEucmVzb2x2ZShjKTtpZighZCl7bGV0IHA9ZT09InBvaW50ZXIifHx0LnN0YXRlLnNlbGVjdGlvbi5oZWFkPGwucG9zJiYhbj8xOi0xO2Q9T210KHQsZixsLHApfXJldHVybiBkfWZ1bmN0aW9uIFhXcih0KXtyZXR1cm4gdC5lZGl0YWJsZT90Lmhhc0ZvY3VzKCk6c0dyKHQpJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmNvbnRhaW5zKHQuZG9tKX1mdW5jdGlvbiBvMyh0LGU9ITEpe2xldCByPXQuc3RhdGUuc2VsZWN0aW9uO2lmKHJHcih0LHIpLCEhWFdyKHQpKXtpZighZSYmdC5pbnB1dC5tb3VzZURvd24mJnQuaW5wdXQubW91c2VEb3duLmFsbG93RGVmYXVsdCYmTm4pe2xldCBhPXQuZG9tU2VsZWN0aW9uUmFuZ2UoKSxzPXQuZG9tT2JzZXJ2ZXIuY3VycmVudFNlbGVjdGlvbjtpZihhLmFuY2hvck5vZGUmJnMuYW5jaG9yTm9kZSYmTzkoYS5hbmNob3JOb2RlLGEuYW5jaG9yT2Zmc2V0LHMuYW5jaG9yTm9kZSxzLmFuY2hvck9mZnNldCkpe3QuaW5wdXQubW91c2VEb3duLmRlbGF5ZWRTZWxlY3Rpb25TeW5jPSEwLHQuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCk7cmV0dXJufX1pZih0LmRvbU9ic2VydmVyLmRpc2Nvbm5lY3RTZWxlY3Rpb24oKSx0LmN1cnNvcldyYXBwZXIpVFBhKHQpO2Vsc2V7bGV0e2FuY2hvcjphLGhlYWQ6c309cixuLG87SldyJiYhKHIgaW5zdGFuY2VvZiBlcikmJihyLiRmcm9tLnBhcmVudC5pbmxpbmVDb250ZW50fHwobj1lR3IodCxyLmZyb20pKSwhci5lbXB0eSYmIXIuJGZyb20ucGFyZW50LmlubGluZUNvbnRlbnQmJihvPWVHcih0LHIudG8pKSksdC5kb2NWaWV3LnNldFNlbGVjdGlvbihhLHMsdCxlKSxKV3ImJihuJiZ0R3IobiksbyYmdEdyKG8pKSxyLnZpc2libGU/dC5kb20uY2xhc3NMaXN0LnJlbW92ZSgiUHJvc2VNaXJyb3ItaGlkZXNlbGVjdGlvbiIpOih0LmRvbS5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uIiksIm9uc2VsZWN0aW9uY2hhbmdlImluIGRvY3VtZW50JiZfUGEodCkpfXQuZG9tT2JzZXJ2ZXIuc2V0Q3VyU2VsZWN0aW9uKCksdC5kb21PYnNlcnZlci5jb25uZWN0U2VsZWN0aW9uKCl9fWZ1bmN0aW9uIGVHcih0LGUpe2xldHtub2RlOnIsb2Zmc2V0OmF9PXQuZG9jVmlldy5kb21Gcm9tUG9zKGUsMCkscz1hPHIuY2hpbGROb2Rlcy5sZW5ndGg/ci5jaGlsZE5vZGVzW2FdOm51bGwsbj1hP3IuY2hpbGROb2Rlc1thLTFdOm51bGw7aWYoQ28mJnMmJnMuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXJldHVybiBObXQocyk7aWYoKCFzfHxzLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIikmJighbnx8bi5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpKXtpZihzKXJldHVybiBObXQocyk7aWYobilyZXR1cm4gTm10KG4pfX1mdW5jdGlvbiBObXQodCl7cmV0dXJuIHQuY29udGVudEVkaXRhYmxlPSJ0cnVlIixDbyYmdC5kcmFnZ2FibGUmJih0LmRyYWdnYWJsZT0hMSx0Lndhc0RyYWdnYWJsZT0hMCksdH1mdW5jdGlvbiB0R3IodCl7dC5jb250ZW50RWRpdGFibGU9ImZhbHNlIix0Lndhc0RyYWdnYWJsZSYmKHQuZHJhZ2dhYmxlPSEwLHQud2FzRHJhZ2dhYmxlPW51bGwpfWZ1bmN0aW9uIF9QYSh0KXtsZXQgZT10LmRvbS5vd25lckRvY3VtZW50O2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0LmlucHV0LmhpZGVTZWxlY3Rpb25HdWFyZCk7bGV0IHI9dC5kb21TZWxlY3Rpb25SYW5nZSgpLGE9ci5hbmNob3JOb2RlLHM9ci5hbmNob3JPZmZzZXQ7ZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHQuaW5wdXQuaGlkZVNlbGVjdGlvbkd1YXJkPSgpPT57KHIuYW5jaG9yTm9kZSE9YXx8ci5hbmNob3JPZmZzZXQhPXMpJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHQuaW5wdXQuaGlkZVNlbGVjdGlvbkd1YXJkKSxzZXRUaW1lb3V0KCgpPT57KCFYV3IodCl8fHQuc3RhdGUuc2VsZWN0aW9uLnZpc2libGUpJiZ0LmRvbS5jbGFzc0xpc3QucmVtb3ZlKCJQcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uIil9LDIwKSl9KX1mdW5jdGlvbiBUUGEodCl7bGV0IGU9dC5kb21TZWxlY3Rpb24oKTtpZighZSlyZXR1cm47bGV0IHI9dC5jdXJzb3JXcmFwcGVyLmRvbSxhPXIubm9kZU5hbWU9PSJJTUciO2E/ZS5jb2xsYXBzZShyLnBhcmVudE5vZGUsUG4ocikrMSk6ZS5jb2xsYXBzZShyLDApLCFhJiYhdC5zdGF0ZS5zZWxlY3Rpb24udmlzaWJsZSYmRTEmJllwPD0xMSYmKHIuZGlzYWJsZWQ9ITAsci5kaXNhYmxlZD0hMSl9ZnVuY3Rpb24gckdyKHQsZSl7aWYoZSBpbnN0YW5jZW9mIEl0KXtsZXQgcj10LmRvY1ZpZXcuZGVzY0F0KGUuZnJvbSk7ciE9dC5sYXN0U2VsZWN0ZWRWaWV3RGVzYyYmKGFHcih0KSxyJiZyLnNlbGVjdE5vZGUoKSx0Lmxhc3RTZWxlY3RlZFZpZXdEZXNjPXIpfWVsc2UgYUdyKHQpfWZ1bmN0aW9uIGFHcih0KXt0Lmxhc3RTZWxlY3RlZFZpZXdEZXNjJiYodC5sYXN0U2VsZWN0ZWRWaWV3RGVzYy5wYXJlbnQmJnQubGFzdFNlbGVjdGVkVmlld0Rlc2MuZGVzZWxlY3ROb2RlKCksdC5sYXN0U2VsZWN0ZWRWaWV3RGVzYz12b2lkIDApfWZ1bmN0aW9uIE9tdCh0LGUscixhKXtyZXR1cm4gdC5zb21lUHJvcCgiY3JlYXRlU2VsZWN0aW9uQmV0d2VlbiIscz0+cyh0LGUscikpfHxlci5iZXR3ZWVuKGUscixhKX1mdW5jdGlvbiBpR3IodCl7cmV0dXJuIHQuZWRpdGFibGUmJiF0Lmhhc0ZvY3VzKCk/ITE6c0dyKHQpfWZ1bmN0aW9uIHNHcih0KXtsZXQgZT10LmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoIWUuYW5jaG9yTm9kZSlyZXR1cm4hMTt0cnl7cmV0dXJuIHQuZG9tLmNvbnRhaW5zKGUuYW5jaG9yTm9kZS5ub2RlVHlwZT09Mz9lLmFuY2hvck5vZGUucGFyZW50Tm9kZTplLmFuY2hvck5vZGUpJiYodC5lZGl0YWJsZXx8dC5kb20uY29udGFpbnMoZS5mb2N1c05vZGUubm9kZVR5cGU9PTM/ZS5mb2N1c05vZGUucGFyZW50Tm9kZTplLmZvY3VzTm9kZSkpfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiBMUGEodCl7bGV0IGU9dC5kb2NWaWV3LmRvbUZyb21Qb3ModC5zdGF0ZS5zZWxlY3Rpb24uYW5jaG9yLDApLHI9dC5kb21TZWxlY3Rpb25SYW5nZSgpO3JldHVybiBPOShlLm5vZGUsZS5vZmZzZXQsci5hbmNob3JOb2RlLHIuYW5jaG9yT2Zmc2V0KX1mdW5jdGlvbiBSbXQodCxlKXtsZXR7JGFuY2hvcjpyLCRoZWFkOmF9PXQuc2VsZWN0aW9uLHM9ZT4wP3IubWF4KGEpOnIubWluKGEpLG49cy5wYXJlbnQuaW5saW5lQ29udGVudD9zLmRlcHRoP3QuZG9jLnJlc29sdmUoZT4wP3MuYWZ0ZXIoKTpzLmJlZm9yZSgpKTpudWxsOnM7cmV0dXJuIG4mJkp0LmZpbmRGcm9tKG4sZSl9ZnVuY3Rpb24gUXAodCxlKXtyZXR1cm4gdC5kaXNwYXRjaCh0LnN0YXRlLnRyLnNldFNlbGVjdGlvbihlKS5zY3JvbGxJbnRvVmlldygpKSwhMH1mdW5jdGlvbiBuR3IodCxlLHIpe2xldCBhPXQuc3RhdGUuc2VsZWN0aW9uO2lmKGEgaW5zdGFuY2VvZiBlcilpZihyLmluZGV4T2YoInMiKT4tMSl7bGV0eyRoZWFkOnN9PWEsbj1zLnRleHRPZmZzZXQ/bnVsbDplPDA/cy5ub2RlQmVmb3JlOnMubm9kZUFmdGVyO2lmKCFufHxuLmlzVGV4dHx8IW4uaXNMZWFmKXJldHVybiExO2xldCBvPXQuc3RhdGUuZG9jLnJlc29sdmUocy5wb3Mrbi5ub2RlU2l6ZSooZTwwPy0xOjEpKTtyZXR1cm4gUXAodCxuZXcgZXIoYS4kYW5jaG9yLG8pKX1lbHNlIGlmKGEuZW1wdHkpe2lmKHQuZW5kT2ZUZXh0YmxvY2soZT4wPyJmb3J3YXJkIjoiYmFja3dhcmQiKSl7bGV0IHM9Um10KHQuc3RhdGUsZSk7cmV0dXJuIHMmJnMgaW5zdGFuY2VvZiBJdD9RcCh0LHMpOiExfWVsc2UgaWYoISh0MiYmci5pbmRleE9mKCJtIik+LTEpKXtsZXQgcz1hLiRoZWFkLG49cy50ZXh0T2Zmc2V0P251bGw6ZTwwP3Mubm9kZUJlZm9yZTpzLm5vZGVBZnRlcixvO2lmKCFufHxuLmlzVGV4dClyZXR1cm4hMTtsZXQgbD1lPDA/cy5wb3Mtbi5ub2RlU2l6ZTpzLnBvcztyZXR1cm4gbi5pc0F0b218fChvPXQuZG9jVmlldy5kZXNjQXQobCkpJiYhby5jb250ZW50RE9NP0l0LmlzU2VsZWN0YWJsZShuKT9RcCh0LG5ldyBJdChlPDA/dC5zdGF0ZS5kb2MucmVzb2x2ZShzLnBvcy1uLm5vZGVTaXplKTpzKSk6T3RlP1FwKHQsbmV3IGVyKHQuc3RhdGUuZG9jLnJlc29sdmUoZTwwP2w6bCtuLm5vZGVTaXplKSkpOiExOiExfX1lbHNlIHJldHVybiExO2Vsc2V7aWYoYSBpbnN0YW5jZW9mIEl0JiZhLm5vZGUuaXNJbmxpbmUpcmV0dXJuIFFwKHQsbmV3IGVyKGU+MD9hLiR0bzphLiRmcm9tKSk7e2xldCBzPVJtdCh0LnN0YXRlLGUpO3JldHVybiBzP1FwKHQscyk6ITF9fX1mdW5jdGlvbiBUZmUodCl7cmV0dXJuIHQubm9kZVR5cGU9PTM/dC5ub2RlVmFsdWUubGVuZ3RoOnQuY2hpbGROb2Rlcy5sZW5ndGh9ZnVuY3Rpb24gQnRlKHQsZSl7bGV0IHI9dC5wbVZpZXdEZXNjO3JldHVybiByJiZyLnNpemU9PTAmJihlPDB8fHQubmV4dFNpYmxpbmd8fHQubm9kZU5hbWUhPSJCUiIpfWZ1bmN0aW9uIGl3KHQsZSl7cmV0dXJuIGU8MD9EUGEodCk6JFBhKHQpfWZ1bmN0aW9uIERQYSh0KXtsZXQgZT10LmRvbVNlbGVjdGlvblJhbmdlKCkscj1lLmZvY3VzTm9kZSxhPWUuZm9jdXNPZmZzZXQ7aWYoIXIpcmV0dXJuO2xldCBzLG4sbz0hMTtmb3IoZTImJnIubm9kZVR5cGU9PTEmJmE8VGZlKHIpJiZCdGUoci5jaGlsZE5vZGVzW2FdLC0xKSYmKG89ITApOzspaWYoYT4wKXtpZihyLm5vZGVUeXBlIT0xKWJyZWFrO3tsZXQgbD1yLmNoaWxkTm9kZXNbYS0xXTtpZihCdGUobCwtMSkpcz1yLG49LS1hO2Vsc2UgaWYobC5ub2RlVHlwZT09MylyPWwsYT1yLm5vZGVWYWx1ZS5sZW5ndGg7ZWxzZSBicmVha319ZWxzZXtpZihvR3IocikpYnJlYWs7e2xldCBsPXIucHJldmlvdXNTaWJsaW5nO2Zvcig7bCYmQnRlKGwsLTEpOylzPXIucGFyZW50Tm9kZSxuPVBuKGwpLGw9bC5wcmV2aW91c1NpYmxpbmc7aWYobClyPWwsYT1UZmUocik7ZWxzZXtpZihyPXIucGFyZW50Tm9kZSxyPT10LmRvbSlicmVhazthPTB9fX1vP0ZtdCh0LHIsYSk6cyYmRm10KHQscyxuKX1mdW5jdGlvbiAkUGEodCl7bGV0IGU9dC5kb21TZWxlY3Rpb25SYW5nZSgpLHI9ZS5mb2N1c05vZGUsYT1lLmZvY3VzT2Zmc2V0O2lmKCFyKXJldHVybjtsZXQgcz1UZmUociksbixvO2Zvcig7OylpZihhPHMpe2lmKHIubm9kZVR5cGUhPTEpYnJlYWs7bGV0IGw9ci5jaGlsZE5vZGVzW2FdO2lmKEJ0ZShsLDEpKW49cixvPSsrYTtlbHNlIGJyZWFrfWVsc2V7aWYob0dyKHIpKWJyZWFrO3tsZXQgbD1yLm5leHRTaWJsaW5nO2Zvcig7bCYmQnRlKGwsMSk7KW49bC5wYXJlbnROb2RlLG89UG4obCkrMSxsPWwubmV4dFNpYmxpbmc7aWYobClyPWwsYT0wLHM9VGZlKHIpO2Vsc2V7aWYocj1yLnBhcmVudE5vZGUscj09dC5kb20pYnJlYWs7YT1zPTB9fX1uJiZGbXQodCxuLG8pfWZ1bmN0aW9uIG9Hcih0KXtsZXQgZT10LnBtVmlld0Rlc2M7cmV0dXJuIGUmJmUubm9kZSYmZS5ub2RlLmlzQmxvY2t9ZnVuY3Rpb24gQVBhKHQsZSl7Zm9yKDt0JiZlPT10LmNoaWxkTm9kZXMubGVuZ3RoJiYhTnRlKHQpOyllPVBuKHQpKzEsdD10LnBhcmVudE5vZGU7Zm9yKDt0JiZlPHQuY2hpbGROb2Rlcy5sZW5ndGg7KXtsZXQgcj10LmNoaWxkTm9kZXNbZV07aWYoci5ub2RlVHlwZT09MylyZXR1cm4gcjtpZihyLm5vZGVUeXBlPT0xJiZyLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIilicmVhazt0PXIsZT0wfX1mdW5jdGlvbiBFUGEodCxlKXtmb3IoO3QmJiFlJiYhTnRlKHQpOyllPVBuKHQpLHQ9dC5wYXJlbnROb2RlO2Zvcig7dCYmZTspe2xldCByPXQuY2hpbGROb2Rlc1tlLTFdO2lmKHIubm9kZVR5cGU9PTMpcmV0dXJuIHI7aWYoci5ub2RlVHlwZT09MSYmci5jb250ZW50RWRpdGFibGU9PSJmYWxzZSIpYnJlYWs7dD1yLGU9dC5jaGlsZE5vZGVzLmxlbmd0aH19ZnVuY3Rpb24gRm10KHQsZSxyKXtpZihlLm5vZGVUeXBlIT0zKXtsZXQgbixvOyhvPUFQYShlLHIpKT8oZT1vLHI9MCk6KG49RVBhKGUscikpJiYoZT1uLHI9bi5ub2RlVmFsdWUubGVuZ3RoKX1sZXQgYT10LmRvbVNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtpZihTZmUoYSkpe2xldCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bi5zZXRFbmQoZSxyKSxuLnNldFN0YXJ0KGUsciksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKG4pfWVsc2UgYS5leHRlbmQmJmEuZXh0ZW5kKGUscik7dC5kb21PYnNlcnZlci5zZXRDdXJTZWxlY3Rpb24oKTtsZXR7c3RhdGU6c309dDtzZXRUaW1lb3V0KCgpPT57dC5zdGF0ZT09cyYmbzModCl9LDUwKX1mdW5jdGlvbiBsR3IodCxlKXtsZXQgcj10LnN0YXRlLmRvYy5yZXNvbHZlKGUpO2lmKCEoTm58fElXcikmJnIucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBzPXQuY29vcmRzQXRQb3MoZSk7aWYoZT5yLnN0YXJ0KCkpe2xldCBuPXQuY29vcmRzQXRQb3MoZS0xKSxvPShuLnRvcCtuLmJvdHRvbSkvMjtpZihvPnMudG9wJiZvPHMuYm90dG9tJiZNYXRoLmFicyhuLmxlZnQtcy5sZWZ0KT4xKXJldHVybiBuLmxlZnQ8cy5sZWZ0PyJsdHIiOiJydGwifWlmKGU8ci5lbmQoKSl7bGV0IG49dC5jb29yZHNBdFBvcyhlKzEpLG89KG4udG9wK24uYm90dG9tKS8yO2lmKG8+cy50b3AmJm88cy5ib3R0b20mJk1hdGguYWJzKG4ubGVmdC1zLmxlZnQpPjEpcmV0dXJuIG4ubGVmdD5zLmxlZnQ/Imx0ciI6InJ0bCJ9fXJldHVybiBnZXRDb21wdXRlZFN0eWxlKHQuZG9tKS5kaXJlY3Rpb249PSJydGwiPyJydGwiOiJsdHIifWZ1bmN0aW9uIGNHcih0LGUscil7bGV0IGE9dC5zdGF0ZS5zZWxlY3Rpb247aWYoYSBpbnN0YW5jZW9mIGVyJiYhYS5lbXB0eXx8ci5pbmRleE9mKCJzIik+LTF8fHQyJiZyLmluZGV4T2YoIm0iKT4tMSlyZXR1cm4hMTtsZXR7JGZyb206cywkdG86bn09YTtpZighcy5wYXJlbnQuaW5saW5lQ29udGVudHx8dC5lbmRPZlRleHRibG9jayhlPDA/InVwIjoiZG93biIpKXtsZXQgbz1SbXQodC5zdGF0ZSxlKTtpZihvJiZvIGluc3RhbmNlb2YgSXQpcmV0dXJuIFFwKHQsbyl9aWYoIXMucGFyZW50LmlubGluZUNvbnRlbnQpe2xldCBvPWU8MD9zOm4sbD1hIGluc3RhbmNlb2YgTW8/SnQubmVhcihvLGUpOkp0LmZpbmRGcm9tKG8sZSk7cmV0dXJuIGw/UXAodCxsKTohMX1yZXR1cm4hMX1mdW5jdGlvbiBkR3IodCxlKXtpZighKHQuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgZXIpKXJldHVybiEwO2xldHskaGVhZDpyLCRhbmNob3I6YSxlbXB0eTpzfT10LnN0YXRlLnNlbGVjdGlvbjtpZighci5zYW1lUGFyZW50KGEpKXJldHVybiEwO2lmKCFzKXJldHVybiExO2lmKHQuZW5kT2ZUZXh0YmxvY2soZT4wPyJmb3J3YXJkIjoiYmFja3dhcmQiKSlyZXR1cm4hMDtsZXQgbj0hci50ZXh0T2Zmc2V0JiYoZTwwP3Iubm9kZUJlZm9yZTpyLm5vZGVBZnRlcik7aWYobiYmIW4uaXNUZXh0KXtsZXQgbz10LnN0YXRlLnRyO3JldHVybiBlPDA/by5kZWxldGUoci5wb3Mtbi5ub2RlU2l6ZSxyLnBvcyk6by5kZWxldGUoci5wb3Msci5wb3Mrbi5ub2RlU2l6ZSksdC5kaXNwYXRjaChvKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiB1R3IodCxlLHIpe3QuZG9tT2JzZXJ2ZXIuc3RvcCgpLGUuY29udGVudEVkaXRhYmxlPXIsdC5kb21PYnNlcnZlci5zdGFydCgpfWZ1bmN0aW9uIElQYSh0KXtpZighQ298fHQuc3RhdGUuc2VsZWN0aW9uLiRoZWFkLnBhcmVudE9mZnNldD4wKXJldHVybiExO2xldHtmb2N1c05vZGU6ZSxmb2N1c09mZnNldDpyfT10LmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoZSYmZS5ub2RlVHlwZT09MSYmcj09MCYmZS5maXJzdENoaWxkJiZlLmZpcnN0Q2hpbGQuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXtsZXQgYT1lLmZpcnN0Q2hpbGQ7dUdyKHQsYSwidHJ1ZSIpLHNldFRpbWVvdXQoKCk9PnVHcih0LGEsImZhbHNlIiksMjApfXJldHVybiExfWZ1bmN0aW9uIFBQYSh0KXtsZXQgZT0iIjtyZXR1cm4gdC5jdHJsS2V5JiYoZSs9ImMiKSx0Lm1ldGFLZXkmJihlKz0ibSIpLHQuYWx0S2V5JiYoZSs9ImEiKSx0LnNoaWZ0S2V5JiYoZSs9InMiKSxlfWZ1bmN0aW9uIE5QYSh0LGUpe2xldCByPWUua2V5Q29kZSxhPVBQYShlKTtpZihyPT04fHx0MiYmcj09NzImJmE9PSJjIilyZXR1cm4gZEdyKHQsLTEpfHxpdyh0LC0xKTtpZihyPT00NiYmIWUuc2hpZnRLZXl8fHQyJiZyPT02OCYmYT09ImMiKXJldHVybiBkR3IodCwxKXx8aXcodCwxKTtpZihyPT0xM3x8cj09MjcpcmV0dXJuITA7aWYocj09Mzd8fHQyJiZyPT02NiYmYT09ImMiKXtsZXQgcz1yPT0zNz9sR3IodCx0LnN0YXRlLnNlbGVjdGlvbi5mcm9tKT09Imx0ciI/LTE6MTotMTtyZXR1cm4gbkdyKHQscyxhKXx8aXcodCxzKX1lbHNlIGlmKHI9PTM5fHx0MiYmcj09NzAmJmE9PSJjIil7bGV0IHM9cj09Mzk/bEdyKHQsdC5zdGF0ZS5zZWxlY3Rpb24uZnJvbSk9PSJsdHIiPzE6LTE6MTtyZXR1cm4gbkdyKHQscyxhKXx8aXcodCxzKX1lbHNle2lmKHI9PTM4fHx0MiYmcj09ODAmJmE9PSJjIilyZXR1cm4gY0dyKHQsLTEsYSl8fGl3KHQsLTEpO2lmKHI9PTQwfHx0MiYmcj09NzgmJmE9PSJjIilyZXR1cm4gSVBhKHQpfHxjR3IodCwxLGEpfHxpdyh0LDEpO2lmKGE9PSh0Mj8ibSI6ImMiKSYmKHI9PTY2fHxyPT03M3x8cj09ODl8fHI9PTkwKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBCbXQodCxlKXt0LnNvbWVQcm9wKCJ0cmFuc2Zvcm1Db3BpZWQiLG09PntlPW0oZSx0KX0pO2xldCByPVtdLHtjb250ZW50OmEsb3BlblN0YXJ0OnMsb3BlbkVuZDpufT1lO2Zvcig7cz4xJiZuPjEmJmEuY2hpbGRDb3VudD09MSYmYS5maXJzdENoaWxkLmNoaWxkQ291bnQ9PTE7KXtzLS0sbi0tO2xldCBtPWEuZmlyc3RDaGlsZDtyLnB1c2gobS50eXBlLm5hbWUsbS5hdHRycyE9bS50eXBlLmRlZmF1bHRBdHRycz9tLmF0dHJzOm51bGwpLGE9bS5jb250ZW50fWxldCBvPXQuc29tZVByb3AoImNsaXBib2FyZFNlcmlhbGl6ZXIiKXx8b2QuZnJvbVNjaGVtYSh0LnN0YXRlLnNjaGVtYSksbD14R3IoKSxjPWwuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yy5hcHBlbmRDaGlsZChvLnNlcmlhbGl6ZUZyYWdtZW50KGEse2RvY3VtZW50Omx9KSk7bGV0IGQ9Yy5maXJzdENoaWxkLGYscD0wO2Zvcig7ZCYmZC5ub2RlVHlwZT09MSYmKGY9Z0dyW2Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pOyl7Zm9yKGxldCBtPWYubGVuZ3RoLTE7bT49MDttLS0pe2xldCB2PWwuY3JlYXRlRWxlbWVudChmW21dKTtmb3IoO2MuZmlyc3RDaGlsZDspdi5hcHBlbmRDaGlsZChjLmZpcnN0Q2hpbGQpO2MuYXBwZW5kQ2hpbGQodikscCsrfWQ9Yy5maXJzdENoaWxkfWQmJmQubm9kZVR5cGU9PTEmJmQuc2V0QXR0cmlidXRlKCJkYXRhLXBtLXNsaWNlIixgJHtzfSAke259JHtwP2AgLSR7cH1gOiIifSAke0pTT04uc3RyaW5naWZ5KHIpfWApO2xldCBoPXQuc29tZVByb3AoImNsaXBib2FyZFRleHRTZXJpYWxpemVyIixtPT5tKGUsdCkpfHxlLmNvbnRlbnQudGV4dEJldHdlZW4oMCxlLmNvbnRlbnQuc2l6ZSxgCgpgKTtyZXR1cm57ZG9tOmMsdGV4dDpoLHNsaWNlOmV9fWZ1bmN0aW9uIEhtdCh0LGUscixhLHMpe2xldCBuPXMucGFyZW50LnR5cGUuc3BlYy5jb2RlLG8sbDtpZighciYmIWUpcmV0dXJuIG51bGw7bGV0IGM9ISFlJiYoYXx8bnx8IXIpO2lmKGMpe2lmKHQuc29tZVByb3AoInRyYW5zZm9ybVBhc3RlZFRleHQiLGg9PntlPWgoZSxufHxhLHQpfSksbilyZXR1cm4gbD1uZXcgbXQoSmUuZnJvbSh0LnN0YXRlLnNjaGVtYS50ZXh0KGUucmVwbGFjZSgvXHJcbj8vZyxgCmApKSksMCwwKSx0LnNvbWVQcm9wKCJ0cmFuc2Zvcm1QYXN0ZWQiLGg9PntsPWgobCx0LCEwKX0pLGw7bGV0IHA9dC5zb21lUHJvcCgiY2xpcGJvYXJkVGV4dFBhcnNlciIsaD0+aChlLHMsYSx0KSk7aWYocClsPXA7ZWxzZXtsZXQgaD1zLm1hcmtzKCkse3NjaGVtYTptfT10LnN0YXRlLHY9b2QuZnJvbVNjaGVtYShtKTtvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuc3BsaXQoLyg/OlxyXG4/fFxuKSsvKS5mb3JFYWNoKGI9PntsZXQgZz1vLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKSk7YiYmZy5hcHBlbmRDaGlsZCh2LnNlcmlhbGl6ZU5vZGUobS50ZXh0KGIsaCkpKX0pfX1lbHNlIHQuc29tZVByb3AoInRyYW5zZm9ybVBhc3RlZEhUTUwiLHA9PntyPXAocix0KX0pLG89QlBhKHIpLE90ZSYmSFBhKG8pO2xldCBkPW8mJm8ucXVlcnlTZWxlY3RvcigiW2RhdGEtcG0tc2xpY2VdIiksZj1kJiYvXihcZCspIChcZCspKD86IC0oXGQrKSk/ICguKikvLmV4ZWMoZC5nZXRBdHRyaWJ1dGUoImRhdGEtcG0tc2xpY2UiKXx8IiIpO2lmKGYmJmZbM10pZm9yKGxldCBwPStmWzNdO3A+MDtwLS0pe2xldCBoPW8uZmlyc3RDaGlsZDtmb3IoO2gmJmgubm9kZVR5cGUhPTE7KWg9aC5uZXh0U2libGluZztpZighaClicmVhaztvPWh9aWYobHx8KGw9KHQuc29tZVByb3AoImNsaXBib2FyZFBhcnNlciIpfHx0LnNvbWVQcm9wKCJkb21QYXJzZXIiKXx8eWMuZnJvbVNjaGVtYSh0LnN0YXRlLnNjaGVtYSkpLnBhcnNlU2xpY2Uobyx7cHJlc2VydmVXaGl0ZXNwYWNlOiEhKGN8fGYpLGNvbnRleHQ6cyxydWxlRnJvbU5vZGUoaCl7cmV0dXJuIGgubm9kZU5hbWU9PSJCUiImJiFoLm5leHRTaWJsaW5nJiZoLnBhcmVudE5vZGUmJiFPUGEudGVzdChoLnBhcmVudE5vZGUubm9kZU5hbWUpP3tpZ25vcmU6ITB9Om51bGx9fSkpLGYpbD1xUGEobUdyKGwsK2ZbMV0sK2ZbMl0pLGZbNF0pO2Vsc2UgaWYobD1tdC5tYXhPcGVuKFJQYShsLmNvbnRlbnQscyksITApLGwub3BlblN0YXJ0fHxsLm9wZW5FbmQpe2xldCBwPTAsaD0wO2ZvcihsZXQgbT1sLmNvbnRlbnQuZmlyc3RDaGlsZDtwPGwub3BlblN0YXJ0JiYhbS50eXBlLnNwZWMuaXNvbGF0aW5nO3ArKyxtPW0uZmlyc3RDaGlsZCk7Zm9yKGxldCBtPWwuY29udGVudC5sYXN0Q2hpbGQ7aDxsLm9wZW5FbmQmJiFtLnR5cGUuc3BlYy5pc29sYXRpbmc7aCsrLG09bS5sYXN0Q2hpbGQpO2w9bUdyKGwscCxoKX1yZXR1cm4gdC5zb21lUHJvcCgidHJhbnNmb3JtUGFzdGVkIixwPT57bD1wKGwsdCxjKX0pLGx9ZnVuY3Rpb24gUlBhKHQsZSl7aWYodC5jaGlsZENvdW50PDIpcmV0dXJuIHQ7Zm9yKGxldCByPWUuZGVwdGg7cj49MDtyLS0pe2xldCBzPWUubm9kZShyKS5jb250ZW50TWF0Y2hBdChlLmluZGV4KHIpKSxuLG89W107aWYodC5mb3JFYWNoKGw9PntpZighbylyZXR1cm47bGV0IGM9cy5maW5kV3JhcHBpbmcobC50eXBlKSxkO2lmKCFjKXJldHVybiBvPW51bGw7aWYoZD1vLmxlbmd0aCYmbi5sZW5ndGgmJmZHcihjLG4sbCxvW28ubGVuZ3RoLTFdLDApKW9bby5sZW5ndGgtMV09ZDtlbHNle28ubGVuZ3RoJiYob1tvLmxlbmd0aC0xXT1oR3Iob1tvLmxlbmd0aC0xXSxuLmxlbmd0aCkpO2xldCBmPXBHcihsLGMpO28ucHVzaChmKSxzPXMubWF0Y2hUeXBlKGYudHlwZSksbj1jfX0pLG8pcmV0dXJuIEplLmZyb20obyl9cmV0dXJuIHR9ZnVuY3Rpb24gcEdyKHQsZSxyPTApe2ZvcihsZXQgYT1lLmxlbmd0aC0xO2E+PXI7YS0tKXQ9ZVthXS5jcmVhdGUobnVsbCxKZS5mcm9tKHQpKTtyZXR1cm4gdH1mdW5jdGlvbiBmR3IodCxlLHIsYSxzKXtpZihzPHQubGVuZ3RoJiZzPGUubGVuZ3RoJiZ0W3NdPT1lW3NdKXtsZXQgbj1mR3IodCxlLHIsYS5sYXN0Q2hpbGQscysxKTtpZihuKXJldHVybiBhLmNvcHkoYS5jb250ZW50LnJlcGxhY2VDaGlsZChhLmNoaWxkQ291bnQtMSxuKSk7aWYoYS5jb250ZW50TWF0Y2hBdChhLmNoaWxkQ291bnQpLm1hdGNoVHlwZShzPT10Lmxlbmd0aC0xP3IudHlwZTp0W3MrMV0pKXJldHVybiBhLmNvcHkoYS5jb250ZW50LmFwcGVuZChKZS5mcm9tKHBHcihyLHQscysxKSkpKX19ZnVuY3Rpb24gaEdyKHQsZSl7aWYoZT09MClyZXR1cm4gdDtsZXQgcj10LmNvbnRlbnQucmVwbGFjZUNoaWxkKHQuY2hpbGRDb3VudC0xLGhHcih0Lmxhc3RDaGlsZCxlLTEpKSxhPXQuY29udGVudE1hdGNoQXQodC5jaGlsZENvdW50KS5maWxsQmVmb3JlKEplLmVtcHR5LCEwKTtyZXR1cm4gdC5jb3B5KHIuYXBwZW5kKGEpKX1mdW5jdGlvbiBxbXQodCxlLHIsYSxzLG4pe2xldCBvPWU8MD90LmZpcnN0Q2hpbGQ6dC5sYXN0Q2hpbGQsbD1vLmNvbnRlbnQ7cmV0dXJuIHQuY2hpbGRDb3VudD4xJiYobj0wKSxzPGEtMSYmKGw9cW10KGwsZSxyLGEscysxLG4pKSxzPj1yJiYobD1lPDA/by5jb250ZW50TWF0Y2hBdCgwKS5maWxsQmVmb3JlKGwsbjw9cykuYXBwZW5kKGwpOmwuYXBwZW5kKG8uY29udGVudE1hdGNoQXQoby5jaGlsZENvdW50KS5maWxsQmVmb3JlKEplLmVtcHR5LCEwKSkpLHQucmVwbGFjZUNoaWxkKGU8MD8wOnQuY2hpbGRDb3VudC0xLG8uY29weShsKSl9ZnVuY3Rpb24gbUdyKHQsZSxyKXtyZXR1cm4gZTx0Lm9wZW5TdGFydCYmKHQ9bmV3IG10KHFtdCh0LmNvbnRlbnQsLTEsZSx0Lm9wZW5TdGFydCwwLHQub3BlbkVuZCksZSx0Lm9wZW5FbmQpKSxyPHQub3BlbkVuZCYmKHQ9bmV3IG10KHFtdCh0LmNvbnRlbnQsMSxyLHQub3BlbkVuZCwwLDApLHQub3BlblN0YXJ0LHIpKSx0fWZ1bmN0aW9uIHhHcigpe3JldHVybiBiR3J8fChiR3I9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCJ0aXRsZSIpKX1mdW5jdGlvbiBGUGEodCl7bGV0IGU9d2luZG93LnRydXN0ZWRUeXBlcztyZXR1cm4gZT8oVm10fHwoVm10PWUuZGVmYXVsdFBvbGljeXx8ZS5jcmVhdGVQb2xpY3koIlByb3NlTWlycm9yQ2xpcGJvYXJkIix7Y3JlYXRlSFRNTDppKHI9PnIsImNyZWF0ZUhUTUwiKX0pKSxWbXQuY3JlYXRlSFRNTCh0KSk6dH1mdW5jdGlvbiBCUGEodCl7bGV0IGU9L14oXHMqPG1ldGEgW14+XSo+KSovLmV4ZWModCk7ZSYmKHQ9dC5zbGljZShlWzBdLmxlbmd0aCkpO2xldCByPXhHcigpLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGE9LzwoW2Etel1bXj5cc10rKS9pLmV4ZWModCkscztpZigocz1hJiZnR3JbYVsxXS50b0xvd2VyQ2FzZSgpXSkmJih0PXMubWFwKG49PiI8IituKyI+Iikuam9pbigiIikrdCtzLm1hcChuPT4iPC8iK24rIj4iKS5yZXZlcnNlKCkuam9pbigiIikpLHIuaW5uZXJIVE1MPUZQYSh0KSxzKWZvcihsZXQgbj0wO248cy5sZW5ndGg7bisrKXI9ci5xdWVyeVNlbGVjdG9yKHNbbl0pfHxyO3JldHVybiByfWZ1bmN0aW9uIEhQYSh0KXtsZXQgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoTm4/InNwYW46bm90KFtjbGFzc10pOm5vdChbc3R5bGVdKSI6InNwYW4uQXBwbGUtY29udmVydGVkLXNwYWNlIik7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2xldCBhPWVbcl07YS5jaGlsZE5vZGVzLmxlbmd0aD09MSYmYS50ZXh0Q29udGVudD09Ilx4QTAiJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQodC5vd25lckRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIiksYSl9fWZ1bmN0aW9uIHFQYSh0LGUpe2lmKCF0LnNpemUpcmV0dXJuIHQ7bGV0IHI9dC5jb250ZW50LmZpcnN0Q2hpbGQudHlwZS5zY2hlbWEsYTt0cnl7YT1KU09OLnBhcnNlKGUpfWNhdGNoe3JldHVybiB0fWxldHtjb250ZW50OnMsb3BlblN0YXJ0Om4sb3BlbkVuZDpvfT10O2ZvcihsZXQgbD1hLmxlbmd0aC0yO2w+PTA7bC09Mil7bGV0IGM9ci5ub2Rlc1thW2xdXTtpZighY3x8Yy5oYXNSZXF1aXJlZEF0dHJzKCkpYnJlYWs7cz1KZS5mcm9tKGMuY3JlYXRlKGFbbCsxXSxzKSksbisrLG8rK31yZXR1cm4gbmV3IG10KHMsbixvKX1mdW5jdGlvbiBqUGEodCl7Zm9yKGxldCBlIGluIFZvKXtsZXQgcj1Wb1tlXTt0LmRvbS5hZGRFdmVudExpc3RlbmVyKGUsdC5pbnB1dC5ldmVudEhhbmRsZXJzW2VdPWE9PntXUGEodCxhKSYmIVdtdCh0LGEpJiYodC5lZGl0YWJsZXx8IShhLnR5cGUgaW4gam8pKSYmcih0LGEpfSxWUGFbZV0/e3Bhc3NpdmU6ITB9OnZvaWQgMCl9Q28mJnQuZG9tLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+bnVsbCksVW10KHQpfWZ1bmN0aW9uIFhwKHQsZSl7dC5pbnB1dC5sYXN0U2VsZWN0aW9uT3JpZ2luPWUsdC5pbnB1dC5sYXN0U2VsZWN0aW9uVGltZT1EYXRlLm5vdygpfWZ1bmN0aW9uIFVQYSh0KXt0LmRvbU9ic2VydmVyLnN0b3AoKTtmb3IobGV0IGUgaW4gdC5pbnB1dC5ldmVudEhhbmRsZXJzKXQuZG9tLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0LmlucHV0LmV2ZW50SGFuZGxlcnNbZV0pO2NsZWFyVGltZW91dCh0LmlucHV0LmNvbXBvc2luZ1RpbWVvdXQpLGNsZWFyVGltZW91dCh0LmlucHV0Lmxhc3RJT1NFbnRlckZhbGxiYWNrVGltZW91dCl9ZnVuY3Rpb24gVW10KHQpe3Quc29tZVByb3AoImhhbmRsZURPTUV2ZW50cyIsZT0+e2ZvcihsZXQgciBpbiBlKXQuaW5wdXQuZXZlbnRIYW5kbGVyc1tyXXx8dC5kb20uYWRkRXZlbnRMaXN0ZW5lcihyLHQuaW5wdXQuZXZlbnRIYW5kbGVyc1tyXT1hPT5XbXQodCxhKSl9KX1mdW5jdGlvbiBXbXQodCxlKXtyZXR1cm4gdC5zb21lUHJvcCgiaGFuZGxlRE9NRXZlbnRzIixyPT57bGV0IGE9cltlLnR5cGVdO3JldHVybiBhP2EodCxlKXx8ZS5kZWZhdWx0UHJldmVudGVkOiExfSl9ZnVuY3Rpb24gV1BhKHQsZSl7aWYoIWUuYnViYmxlcylyZXR1cm4hMDtpZihlLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuITE7Zm9yKGxldCByPWUudGFyZ2V0O3IhPXQuZG9tO3I9ci5wYXJlbnROb2RlKWlmKCFyfHxyLm5vZGVUeXBlPT0xMXx8ci5wbVZpZXdEZXNjJiZyLnBtVmlld0Rlc2Muc3RvcEV2ZW50KGUpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEdQYSh0LGUpeyFXbXQodCxlKSYmVm9bZS50eXBlXSYmKHQuZWRpdGFibGV8fCEoZS50eXBlIGluIGpvKSkmJlZvW2UudHlwZV0odCxlKX1mdW5jdGlvbiBMZmUodCl7cmV0dXJue2xlZnQ6dC5jbGllbnRYLHRvcDp0LmNsaWVudFl9fWZ1bmN0aW9uIFlQYSh0LGUpe2xldCByPWUueC10LmNsaWVudFgsYT1lLnktdC5jbGllbnRZO3JldHVybiByKnIrYSphPDEwMH1mdW5jdGlvbiBHbXQodCxlLHIsYSxzKXtpZihhPT0tMSlyZXR1cm4hMTtsZXQgbj10LnN0YXRlLmRvYy5yZXNvbHZlKGEpO2ZvcihsZXQgbz1uLmRlcHRoKzE7bz4wO28tLSlpZih0LnNvbWVQcm9wKGUsbD0+bz5uLmRlcHRoP2wodCxyLG4ubm9kZUFmdGVyLG4uYmVmb3JlKG8pLHMsITApOmwodCxyLG4ubm9kZShvKSxuLmJlZm9yZShvKSxzLCExKSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gc3codCxlLHIpe2lmKHQuZm9jdXNlZHx8dC5mb2N1cygpLHQuc3RhdGUuc2VsZWN0aW9uLmVxKGUpKXJldHVybjtsZXQgYT10LnN0YXRlLnRyLnNldFNlbGVjdGlvbihlKTtyPT0icG9pbnRlciImJmEuc2V0TWV0YSgicG9pbnRlciIsITApLHQuZGlzcGF0Y2goYSl9ZnVuY3Rpb24gS1BhKHQsZSl7aWYoZT09LTEpcmV0dXJuITE7bGV0IHI9dC5zdGF0ZS5kb2MucmVzb2x2ZShlKSxhPXIubm9kZUFmdGVyO3JldHVybiBhJiZhLmlzQXRvbSYmSXQuaXNTZWxlY3RhYmxlKGEpPyhzdyh0LG5ldyBJdChyKSwicG9pbnRlciIpLCEwKTohMX1mdW5jdGlvbiBaUGEodCxlKXtpZihlPT0tMSlyZXR1cm4hMTtsZXQgcj10LnN0YXRlLnNlbGVjdGlvbixhLHM7ciBpbnN0YW5jZW9mIEl0JiYoYT1yLm5vZGUpO2xldCBuPXQuc3RhdGUuZG9jLnJlc29sdmUoZSk7Zm9yKGxldCBvPW4uZGVwdGgrMTtvPjA7by0tKXtsZXQgbD1vPm4uZGVwdGg/bi5ub2RlQWZ0ZXI6bi5ub2RlKG8pO2lmKEl0LmlzU2VsZWN0YWJsZShsKSl7YSYmci4kZnJvbS5kZXB0aD4wJiZvPj1yLiRmcm9tLmRlcHRoJiZuLmJlZm9yZShyLiRmcm9tLmRlcHRoKzEpPT1yLiRmcm9tLnBvcz9zPW4uYmVmb3JlKHIuJGZyb20uZGVwdGgpOnM9bi5iZWZvcmUobyk7YnJlYWt9fXJldHVybiBzIT1udWxsPyhzdyh0LEl0LmNyZWF0ZSh0LnN0YXRlLmRvYyxzKSwicG9pbnRlciIpLCEwKTohMX1mdW5jdGlvbiBRUGEodCxlLHIsYSxzKXtyZXR1cm4gR210KHQsImhhbmRsZUNsaWNrT24iLGUscixhKXx8dC5zb21lUHJvcCgiaGFuZGxlQ2xpY2siLG49Pm4odCxlLGEpKXx8KHM/WlBhKHQscik6S1BhKHQscikpfWZ1bmN0aW9uIFhQYSh0LGUscixhKXtyZXR1cm4gR210KHQsImhhbmRsZURvdWJsZUNsaWNrT24iLGUscixhKXx8dC5zb21lUHJvcCgiaGFuZGxlRG91YmxlQ2xpY2siLHM9PnModCxlLGEpKX1mdW5jdGlvbiBKUGEodCxlLHIsYSl7cmV0dXJuIEdtdCh0LCJoYW5kbGVUcmlwbGVDbGlja09uIixlLHIsYSl8fHQuc29tZVByb3AoImhhbmRsZVRyaXBsZUNsaWNrIixzPT5zKHQsZSxhKSl8fGVOYSh0LHIsYSl9ZnVuY3Rpb24gZU5hKHQsZSxyKXtpZihyLmJ1dHRvbiE9MClyZXR1cm4hMTtsZXQgYT10LnN0YXRlLmRvYztpZihlPT0tMSlyZXR1cm4gYS5pbmxpbmVDb250ZW50Pyhzdyh0LGVyLmNyZWF0ZShhLDAsYS5jb250ZW50LnNpemUpLCJwb2ludGVyIiksITApOiExO2xldCBzPWEucmVzb2x2ZShlKTtmb3IobGV0IG49cy5kZXB0aCsxO24+MDtuLS0pe2xldCBvPW4+cy5kZXB0aD9zLm5vZGVBZnRlcjpzLm5vZGUobiksbD1zLmJlZm9yZShuKTtpZihvLmlubGluZUNvbnRlbnQpc3codCxlci5jcmVhdGUoYSxsKzEsbCsxK28uY29udGVudC5zaXplKSwicG9pbnRlciIpO2Vsc2UgaWYoSXQuaXNTZWxlY3RhYmxlKG8pKXN3KHQsSXQuY3JlYXRlKGEsbCksInBvaW50ZXIiKTtlbHNlIGNvbnRpbnVlO3JldHVybiEwfX1mdW5jdGlvbiBZbXQodCl7cmV0dXJuIEh0ZSh0KX1mdW5jdGlvbiB5R3IodCxlKXtyZXR1cm4gdC5jb21wb3Npbmc/ITA6Q28mJk1hdGguYWJzKGUudGltZVN0YW1wLXQuaW5wdXQuY29tcG9zaXRpb25FbmRlZEF0KTw1MDA/KHQuaW5wdXQuY29tcG9zaXRpb25FbmRlZEF0PS0yZTgsITApOiExfWZ1bmN0aW9uIHJOYSh0KXtsZXR7Zm9jdXNOb2RlOmUsZm9jdXNPZmZzZXQ6cn09dC5kb21TZWxlY3Rpb25SYW5nZSgpO2lmKCFlfHxlLm5vZGVUeXBlIT0xfHxyPj1lLmNoaWxkTm9kZXMubGVuZ3RoKXJldHVybiExO2xldCBhPWUuY2hpbGROb2Rlc1tyXTtyZXR1cm4gYS5ub2RlVHlwZT09MSYmYS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSJ9ZnVuY3Rpb24gd0dyKHQsZSl7Y2xlYXJUaW1lb3V0KHQuaW5wdXQuY29tcG9zaW5nVGltZW91dCksZT4tMSYmKHQuaW5wdXQuY29tcG9zaW5nVGltZW91dD1zZXRUaW1lb3V0KCgpPT5IdGUodCksZSkpfWZ1bmN0aW9uIGtHcih0KXtmb3IodC5jb21wb3NpbmcmJih0LmlucHV0LmNvbXBvc2luZz0hMSx0LmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdD1pTmEoKSk7dC5pbnB1dC5jb21wb3NpdGlvbk5vZGVzLmxlbmd0aD4wOyl0LmlucHV0LmNvbXBvc2l0aW9uTm9kZXMucG9wKCkubWFya1BhcmVudHNEaXJ0eSgpfWZ1bmN0aW9uIGFOYSh0KXtsZXQgZT10LmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoIWUuZm9jdXNOb2RlKXJldHVybiBudWxsO2xldCByPWVQYShlLmZvY3VzTm9kZSxlLmZvY3VzT2Zmc2V0KSxhPXRQYShlLmZvY3VzTm9kZSxlLmZvY3VzT2Zmc2V0KTtpZihyJiZhJiZyIT1hKXtsZXQgcz1hLnBtVmlld0Rlc2Msbj10LmRvbU9ic2VydmVyLmxhc3RDaGFuZ2VkVGV4dE5vZGU7aWYocj09bnx8YT09bilyZXR1cm4gbjtpZighc3x8IXMuaXNUZXh0KGEubm9kZVZhbHVlKSlyZXR1cm4gYTtpZih0LmlucHV0LmNvbXBvc2l0aW9uTm9kZT09YSl7bGV0IG89ci5wbVZpZXdEZXNjO2lmKCEoIW98fCFvLmlzVGV4dChyLm5vZGVWYWx1ZSkpKXJldHVybiBhfX1yZXR1cm4gcnx8YX1mdW5jdGlvbiBpTmEoKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gdC5pbml0RXZlbnQoImV2ZW50IiwhMCwhMCksdC50aW1lU3RhbXB9ZnVuY3Rpb24gSHRlKHQsZT0hMSl7aWYoIShzMyYmdC5kb21PYnNlcnZlci5mbHVzaGluZ1Nvb24+PTApKXtpZih0LmRvbU9ic2VydmVyLmZvcmNlRmx1c2goKSxrR3IodCksZXx8dC5kb2NWaWV3JiZ0LmRvY1ZpZXcuZGlydHkpe2xldCByPVBtdCh0KSxhPXQuc3RhdGUuc2VsZWN0aW9uO3JldHVybiByJiYhci5lcShhKT90LmRpc3BhdGNoKHQuc3RhdGUudHIuc2V0U2VsZWN0aW9uKHIpKToodC5tYXJrQ3Vyc29yfHxlKSYmIWEuJGZyb20ubm9kZShhLiRmcm9tLnNoYXJlZERlcHRoKGEudG8pKS5pbmxpbmVDb250ZW50P3QuZGlzcGF0Y2godC5zdGF0ZS50ci5kZWxldGVTZWxlY3Rpb24oKSk6dC51cGRhdGVTdGF0ZSh0LnN0YXRlKSwhMH1yZXR1cm4hMX19ZnVuY3Rpb24gc05hKHQsZSl7aWYoIXQuZG9tLnBhcmVudE5vZGUpcmV0dXJuO2xldCByPXQuZG9tLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpO3IuYXBwZW5kQ2hpbGQoZSksci5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6IC0xMDAwMHB4OyB0b3A6IDEwcHgiO2xldCBhPWdldFNlbGVjdGlvbigpLHM9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtzLnNlbGVjdE5vZGVDb250ZW50cyhlKSx0LmRvbS5ibHVyKCksYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKHMpLHNldFRpbWVvdXQoKCk9PntyLnBhcmVudE5vZGUmJnIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSx0LmZvY3VzKCl9LDUwKX1mdW5jdGlvbiBuTmEodCl7cmV0dXJuIHQub3BlblN0YXJ0PT0wJiZ0Lm9wZW5FbmQ9PTAmJnQuY29udGVudC5jaGlsZENvdW50PT0xP3QuY29udGVudC5maXJzdENoaWxkOm51bGx9ZnVuY3Rpb24gb05hKHQsZSl7aWYoIXQuZG9tLnBhcmVudE5vZGUpcmV0dXJuO2xldCByPXQuaW5wdXQuc2hpZnRLZXl8fHQuc3RhdGUuc2VsZWN0aW9uLiRmcm9tLnBhcmVudC50eXBlLnNwZWMuY29kZSxhPXQuZG9tLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudChyPyJ0ZXh0YXJlYSI6ImRpdiIpKTtyfHwoYS5jb250ZW50RWRpdGFibGU9InRydWUiKSxhLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBmaXhlZDsgbGVmdDogLTEwMDAwcHg7IHRvcDogMTBweCIsYS5mb2N1cygpO2xldCBzPXQuaW5wdXQuc2hpZnRLZXkmJnQuaW5wdXQubGFzdEtleUNvZGUhPTQ1O3NldFRpbWVvdXQoKCk9Pnt0LmZvY3VzKCksYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSkscj9WdGUodCxhLnZhbHVlLG51bGwscyxlKTpWdGUodCxhLnRleHRDb250ZW50LGEuaW5uZXJIVE1MLHMsZSl9LDUwKX1mdW5jdGlvbiBWdGUodCxlLHIsYSxzKXtsZXQgbj1IbXQodCxlLHIsYSx0LnN0YXRlLnNlbGVjdGlvbi4kZnJvbSk7aWYodC5zb21lUHJvcCgiaGFuZGxlUGFzdGUiLGM9PmModCxzLG58fG10LmVtcHR5KSkpcmV0dXJuITA7aWYoIW4pcmV0dXJuITE7bGV0IG89bk5hKG4pLGw9bz90LnN0YXRlLnRyLnJlcGxhY2VTZWxlY3Rpb25XaXRoKG8sYSk6dC5zdGF0ZS50ci5yZXBsYWNlU2VsZWN0aW9uKG4pO3JldHVybiB0LmRpc3BhdGNoKGwuc2Nyb2xsSW50b1ZpZXcoKS5zZXRNZXRhKCJwYXN0ZSIsITApLnNldE1ldGEoInVpRXZlbnQiLCJwYXN0ZSIpKSwhMH1mdW5jdGlvbiBTR3IodCl7bGV0IGU9dC5nZXREYXRhKCJ0ZXh0L3BsYWluIil8fHQuZ2V0RGF0YSgiVGV4dCIpO2lmKGUpcmV0dXJuIGU7bGV0IHI9dC5nZXREYXRhKCJ0ZXh0L3VyaS1saXN0Iik7cmV0dXJuIHI/ci5yZXBsYWNlKC9ccj9cbi9nLCIgIik6IiJ9ZnVuY3Rpb24gTUdyKHQsZSl7bGV0IHI7cmV0dXJuIHQuc29tZVByb3AoImRyYWdDb3BpZXMiLGE9PntyPXJ8fGEoZSl9KSxyIT1udWxsPyFyOiFlW2xOYV19ZnVuY3Rpb24gY05hKHQsZSxyKXtpZighZS5kYXRhVHJhbnNmZXIpcmV0dXJuO2xldCBhPXQucG9zQXRDb29yZHMoTGZlKGUpKTtpZighYSlyZXR1cm47bGV0IHM9dC5zdGF0ZS5kb2MucmVzb2x2ZShhLnBvcyksbj1yJiZyLnNsaWNlO24/dC5zb21lUHJvcCgidHJhbnNmb3JtUGFzdGVkIixtPT57bj1tKG4sdCwhMSl9KTpuPUhtdCh0LFNHcihlLmRhdGFUcmFuc2ZlcikscXRlP251bGw6ZS5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgidGV4dC9odG1sIiksITEscyk7bGV0IG89ISEociYmTUdyKHQsZSkpO2lmKHQuc29tZVByb3AoImhhbmRsZURyb3AiLG09Pm0odCxlLG58fG10LmVtcHR5LG8pKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1pZighbilyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBsPW4/QXRlKHQuc3RhdGUuZG9jLHMucG9zLG4pOnMucG9zO2w9PW51bGwmJihsPXMucG9zKTtsZXQgYz10LnN0YXRlLnRyO2lmKG8pe2xldHtub2RlOm19PXI7bT9tLnJlcGxhY2UoYyk6Yy5kZWxldGVTZWxlY3Rpb24oKX1sZXQgZD1jLm1hcHBpbmcubWFwKGwpLGY9bi5vcGVuU3RhcnQ9PTAmJm4ub3BlbkVuZD09MCYmbi5jb250ZW50LmNoaWxkQ291bnQ9PTEscD1jLmRvYztpZihmP2MucmVwbGFjZVJhbmdlV2l0aChkLGQsbi5jb250ZW50LmZpcnN0Q2hpbGQpOmMucmVwbGFjZVJhbmdlKGQsZCxuKSxjLmRvYy5lcShwKSlyZXR1cm47bGV0IGg9Yy5kb2MucmVzb2x2ZShkKTtpZihmJiZJdC5pc1NlbGVjdGFibGUobi5jb250ZW50LmZpcnN0Q2hpbGQpJiZoLm5vZGVBZnRlciYmaC5ub2RlQWZ0ZXIuc2FtZU1hcmt1cChuLmNvbnRlbnQuZmlyc3RDaGlsZCkpYy5zZXRTZWxlY3Rpb24obmV3IEl0KGgpKTtlbHNle2xldCBtPWMubWFwcGluZy5tYXAobCk7Yy5tYXBwaW5nLm1hcHNbYy5tYXBwaW5nLm1hcHMubGVuZ3RoLTFdLmZvckVhY2goKHYsYixnLHkpPT5tPXkpLGMuc2V0U2VsZWN0aW9uKE9tdCh0LGgsYy5kb2MucmVzb2x2ZShtKSkpfXQuZm9jdXMoKSx0LmRpc3BhdGNoKGMuc2V0TWV0YSgidWlFdmVudCIsImRyb3AiKSl9ZnVuY3Rpb24ganRlKHQsZSl7aWYodD09ZSlyZXR1cm4hMDtmb3IobGV0IHIgaW4gdClpZih0W3JdIT09ZVtyXSlyZXR1cm4hMTtmb3IobGV0IHIgaW4gZSlpZighKHIgaW4gdCkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gZE5hKHQsZSxyLGEscyxuLG8pe2xldCBsPXQuc2xpY2UoKTtmb3IobGV0IGQ9MCxmPW47ZDxyLm1hcHMubGVuZ3RoO2QrKyl7bGV0IHA9MDtyLm1hcHNbZF0uZm9yRWFjaCgoaCxtLHYsYik9PntsZXQgZz1iLXYtKG0taCk7Zm9yKGxldCB5PTA7eTxsLmxlbmd0aDt5Kz0zKXtsZXQgaz1sW3krMV07aWYoazwwfHxoPmsrZi1wKWNvbnRpbnVlO2xldCBNPWxbeV0rZi1wO20+PU0/bFt5KzFdPWg8PU0/LTI6LTE6aD49ZiYmZyYmKGxbeV0rPWcsbFt5KzFdKz1nKX1wKz1nfSksZj1yLm1hcHNbZF0ubWFwKGYsLTEpfWxldCBjPSExO2ZvcihsZXQgZD0wO2Q8bC5sZW5ndGg7ZCs9MylpZihsW2QrMV08MCl7aWYobFtkKzFdPT0tMil7Yz0hMCxsW2QrMV09LTE7Y29udGludWV9bGV0IGY9ci5tYXAodFtkXStuKSxwPWYtcztpZihwPDB8fHA+PWEuY29udGVudC5zaXplKXtjPSEwO2NvbnRpbnVlfWxldCBoPXIubWFwKHRbZCsxXStuLC0xKSxtPWgtcyx7aW5kZXg6dixvZmZzZXQ6Yn09YS5jb250ZW50LmZpbmRJbmRleChwKSxnPWEubWF5YmVDaGlsZCh2KTtpZihnJiZiPT1wJiZiK2cubm9kZVNpemU9PW0pe2xldCB5PWxbZCsyXS5tYXBJbm5lcihyLGcsZisxLHRbZF0rbisxLG8pO3khPXpvPyhsW2RdPXAsbFtkKzFdPW0sbFtkKzJdPXkpOihsW2QrMV09LTIsYz0hMCl9ZWxzZSBjPSEwfWlmKGMpe2xldCBkPXVOYShsLHQsZSxyLHMsbixvKSxmPUVmZShkLGEsMCxvKTtlPWYubG9jYWw7Zm9yKGxldCBwPTA7cDxsLmxlbmd0aDtwKz0zKWxbcCsxXTwwJiYobC5zcGxpY2UocCwzKSxwLT0zKTtmb3IobGV0IHA9MCxoPTA7cDxmLmNoaWxkcmVuLmxlbmd0aDtwKz0zKXtsZXQgbT1mLmNoaWxkcmVuW3BdO2Zvcig7aDxsLmxlbmd0aCYmbFtoXTxtOyloKz0zO2wuc3BsaWNlKGgsMCxmLmNoaWxkcmVuW3BdLGYuY2hpbGRyZW5bcCsxXSxmLmNoaWxkcmVuW3ArMl0pfX1yZXR1cm4gbmV3IFVvKGUuc29ydChqOSksbCl9ZnVuY3Rpb24gQ0dyKHQsZSl7aWYoIWV8fCF0Lmxlbmd0aClyZXR1cm4gdDtsZXQgcj1bXTtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErKyl7bGV0IHM9dFthXTtyLnB1c2gobmV3IHdjKHMuZnJvbStlLHMudG8rZSxzLnR5cGUpKX1yZXR1cm4gcn1mdW5jdGlvbiB1TmEodCxlLHIsYSxzLG4sbyl7ZnVuY3Rpb24gbChjLGQpe2ZvcihsZXQgZj0wO2Y8Yy5sb2NhbC5sZW5ndGg7ZisrKXtsZXQgcD1jLmxvY2FsW2ZdLm1hcChhLHMsZCk7cD9yLnB1c2gocCk6by5vblJlbW92ZSYmby5vblJlbW92ZShjLmxvY2FsW2ZdLnNwZWMpfWZvcihsZXQgZj0wO2Y8Yy5jaGlsZHJlbi5sZW5ndGg7Zis9MylsKGMuY2hpbGRyZW5bZisyXSxjLmNoaWxkcmVuW2ZdK2QrMSl9aShsLCJnYXRoZXIiKTtmb3IobGV0IGM9MDtjPHQubGVuZ3RoO2MrPTMpdFtjKzFdPT0tMSYmbCh0W2MrMl0sZVtjXStuKzEpO3JldHVybiByfWZ1bmN0aW9uIHpHcih0LGUscil7aWYoZS5pc0xlYWYpcmV0dXJuIG51bGw7bGV0IGE9citlLm5vZGVTaXplLHM9bnVsbDtmb3IobGV0IG49MCxvO248dC5sZW5ndGg7bisrKShvPXRbbl0pJiZvLmZyb20+ciYmby50bzxhJiYoKHN8fChzPVtdKSkucHVzaChvKSx0W25dPW51bGwpO3JldHVybiBzfWZ1bmN0aW9uIF9Hcih0KXtsZXQgZT1bXTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdIT1udWxsJiZlLnB1c2godFtyXSk7cmV0dXJuIGV9ZnVuY3Rpb24gRWZlKHQsZSxyLGEpe2xldCBzPVtdLG49ITE7ZS5mb3JFYWNoKChsLGMpPT57bGV0IGQ9ekdyKHQsbCxjK3IpO2lmKGQpe249ITA7bGV0IGY9RWZlKGQsbCxyK2MrMSxhKTtmIT16byYmcy5wdXNoKGMsYytsLm5vZGVTaXplLGYpfX0pO2xldCBvPUNHcihuP19Hcih0KTp0LC1yKS5zb3J0KGo5KTtmb3IobGV0IGw9MDtsPG8ubGVuZ3RoO2wrKylvW2xdLnR5cGUudmFsaWQoZSxvW2xdKXx8KGEub25SZW1vdmUmJmEub25SZW1vdmUob1tsXS5zcGVjKSxvLnNwbGljZShsLS0sMSkpO3JldHVybiBvLmxlbmd0aHx8cy5sZW5ndGg/bmV3IFVvKG8scyk6em99ZnVuY3Rpb24gajkodCxlKXtyZXR1cm4gdC5mcm9tLWUuZnJvbXx8dC50by1lLnRvfWZ1bmN0aW9uIFFtdCh0KXtsZXQgZT10O2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGgtMTtyKyspe2xldCBhPWVbcl07aWYoYS5mcm9tIT1hLnRvKWZvcihsZXQgcz1yKzE7czxlLmxlbmd0aDtzKyspe2xldCBuPWVbc107aWYobi5mcm9tPT1hLmZyb20pe24udG8hPWEudG8mJihlPT10JiYoZT10LnNsaWNlKCkpLGVbc109bi5jb3B5KG4uZnJvbSxhLnRvKSxUR3IoZSxzKzEsbi5jb3B5KGEudG8sbi50bykpKTtjb250aW51ZX1lbHNle24uZnJvbTxhLnRvJiYoZT09dCYmKGU9dC5zbGljZSgpKSxlW3JdPWEuY29weShhLmZyb20sbi5mcm9tKSxUR3IoZSxzLGEuY29weShuLmZyb20sYS50bykpKTticmVha319fXJldHVybiBlfWZ1bmN0aW9uIFRHcih0LGUscil7Zm9yKDtlPHQubGVuZ3RoJiZqOShyLHRbZV0pPjA7KWUrKzt0LnNwbGljZShlLDAscil9ZnVuY3Rpb24gWG10KHQpe2xldCBlPVtdO3JldHVybiB0LnNvbWVQcm9wKCJkZWNvcmF0aW9ucyIscj0+e2xldCBhPXIodC5zdGF0ZSk7YSYmYSE9em8mJmUucHVzaChhKX0pLHQuY3Vyc29yV3JhcHBlciYmZS5wdXNoKFVvLmNyZWF0ZSh0LnN0YXRlLmRvYyxbdC5jdXJzb3JXcmFwcGVyLmRlY29dKSksQWZlLmZyb20oZSl9ZnVuY3Rpb24gaE5hKHQpe2lmKCFMR3IuaGFzKHQpJiYoTEdyLnNldCh0LG51bGwpLFsibm9ybWFsIiwibm93cmFwIiwicHJlLWxpbmUiXS5pbmRleE9mKGdldENvbXB1dGVkU3R5bGUodC5kb20pLndoaXRlU3BhY2UpIT09LTEpKXtpZih0LnJlcXVpcmVzR2Vja29IYWNrTm9kZT1lMixER3IpcmV0dXJuO2NvbnNvbGUud2FybigiUHJvc2VNaXJyb3IgZXhwZWN0cyB0aGUgQ1NTIHdoaXRlLXNwYWNlIHByb3BlcnR5IHRvIGJlIHNldCwgcHJlZmVyYWJseSB0byAncHJlLXdyYXAnLiBJdCBpcyByZWNvbW1lbmRlZCB0byBsb2FkIHN0eWxlL3Byb3NlbWlycm9yLmNzcyBmcm9tIHRoZSBwcm9zZW1pcnJvci12aWV3IHBhY2thZ2UuIiksREdyPSEwfX1mdW5jdGlvbiAkR3IodCxlKXtsZXQgcj1lLnN0YXJ0Q29udGFpbmVyLGE9ZS5zdGFydE9mZnNldCxzPWUuZW5kQ29udGFpbmVyLG49ZS5lbmRPZmZzZXQsbz10LmRvbUF0UG9zKHQuc3RhdGUuc2VsZWN0aW9uLmFuY2hvcik7cmV0dXJuIE85KG8ubm9kZSxvLm9mZnNldCxzLG4pJiYoW3IsYSxzLG5dPVtzLG4scixhXSkse2FuY2hvck5vZGU6cixhbmNob3JPZmZzZXQ6YSxmb2N1c05vZGU6cyxmb2N1c09mZnNldDpufX1mdW5jdGlvbiBtTmEodCxlKXtpZihlLmdldENvbXBvc2VkUmFuZ2VzKXtsZXQgcz1lLmdldENvbXBvc2VkUmFuZ2VzKHQucm9vdClbMF07aWYocylyZXR1cm4gJEdyKHQscyl9bGV0IHI7ZnVuY3Rpb24gYShzKXtzLnByZXZlbnREZWZhdWx0KCkscy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxyPXMuZ2V0VGFyZ2V0UmFuZ2VzKClbMF19cmV0dXJuIGkoYSwicmVhZCIpLHQuZG9tLmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZWlucHV0IixhLCEwKSxkb2N1bWVudC5leGVjQ29tbWFuZCgiaW5kZW50IiksdC5kb20ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmVmb3JlaW5wdXQiLGEsITApLHI/JEdyKHQscik6bnVsbH1mdW5jdGlvbiBnTmEodCxlKXtmb3IobGV0IHI9ZS5wYXJlbnROb2RlO3ImJnIhPXQuZG9tO3I9ci5wYXJlbnROb2RlKXtsZXQgYT10LmRvY1ZpZXcubmVhcmVzdERlc2MociwhMCk7aWYoYSYmYS5ub2RlLmlzQmxvY2spcmV0dXJuIHJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gYk5hKHQsZSl7dmFyIHI7bGV0e2ZvY3VzTm9kZTphLGZvY3VzT2Zmc2V0OnN9PXQuZG9tU2VsZWN0aW9uUmFuZ2UoKTtmb3IobGV0IG4gb2YgZSlpZigoKHI9bi5wYXJlbnROb2RlKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIubm9kZU5hbWUpPT0iVFIiKXtsZXQgbz1uLm5leHRTaWJsaW5nO2Zvcig7byYmby5ub2RlTmFtZSE9IlREIiYmby5ub2RlTmFtZSE9IlRIIjspbz1vLm5leHRTaWJsaW5nO2lmKG8pe2xldCBsPW87Zm9yKDs7KXtsZXQgYz1sLmZpcnN0Q2hpbGQ7aWYoIWN8fGMubm9kZVR5cGUhPTF8fGMuY29udGVudEVkaXRhYmxlPT0iZmFsc2UifHwvXihCUnxJTUcpJC8udGVzdChjLm5vZGVOYW1lKSlicmVhaztsPWN9bC5pbnNlcnRCZWZvcmUobixsLmZpcnN0Q2hpbGQpLGE9PW4mJnQuZG9tU2VsZWN0aW9uKCkuY29sbGFwc2UobixzKX1lbHNlIG4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKX19ZnVuY3Rpb24geE5hKHQsZSxyKXtsZXR7bm9kZTphLGZyb21PZmZzZXQ6cyx0b09mZnNldDpuLGZyb206byx0bzpsfT10LmRvY1ZpZXcucGFyc2VSYW5nZShlLHIpLGM9dC5kb21TZWxlY3Rpb25SYW5nZSgpLGQsZj1jLmFuY2hvck5vZGU7aWYoZiYmdC5kb20uY29udGFpbnMoZi5ub2RlVHlwZT09MT9mOmYucGFyZW50Tm9kZSkmJihkPVt7bm9kZTpmLG9mZnNldDpjLmFuY2hvck9mZnNldH1dLFNmZShjKXx8ZC5wdXNoKHtub2RlOmMuZm9jdXNOb2RlLG9mZnNldDpjLmZvY3VzT2Zmc2V0fSkpLE5uJiZ0LmlucHV0Lmxhc3RLZXlDb2RlPT09OClmb3IobGV0IGc9bjtnPnM7Zy0tKXtsZXQgeT1hLmNoaWxkTm9kZXNbZy0xXSxrPXkucG1WaWV3RGVzYztpZih5Lm5vZGVOYW1lPT0iQlIiJiYhayl7bj1nO2JyZWFrfWlmKCFrfHxrLnNpemUpYnJlYWt9bGV0IHA9dC5zdGF0ZS5kb2MsaD10LnNvbWVQcm9wKCJkb21QYXJzZXIiKXx8eWMuZnJvbVNjaGVtYSh0LnN0YXRlLnNjaGVtYSksbT1wLnJlc29sdmUobyksdj1udWxsLGI9aC5wYXJzZShhLHt0b3BOb2RlOm0ucGFyZW50LHRvcE1hdGNoOm0ucGFyZW50LmNvbnRlbnRNYXRjaEF0KG0uaW5kZXgoKSksdG9wT3BlbjohMCxmcm9tOnMsdG86bixwcmVzZXJ2ZVdoaXRlc3BhY2U6bS5wYXJlbnQudHlwZS53aGl0ZXNwYWNlPT0icHJlIj8iZnVsbCI6ITAsZmluZFBvc2l0aW9uczpkLHJ1bGVGcm9tTm9kZTp2TmEsY29udGV4dDptfSk7aWYoZCYmZFswXS5wb3MhPW51bGwpe2xldCBnPWRbMF0ucG9zLHk9ZFsxXSYmZFsxXS5wb3M7eT09bnVsbCYmKHk9Zyksdj17YW5jaG9yOmcrbyxoZWFkOnkrb319cmV0dXJue2RvYzpiLHNlbDp2LGZyb206byx0bzpsfX1mdW5jdGlvbiB2TmEodCl7bGV0IGU9dC5wbVZpZXdEZXNjO2lmKGUpcmV0dXJuIGUucGFyc2VSdWxlKCk7aWYodC5ub2RlTmFtZT09IkJSIiYmdC5wYXJlbnROb2RlKXtpZihDbyYmL14odWx8b2wpJC9pLnRlc3QodC5wYXJlbnROb2RlLm5vZGVOYW1lKSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKSkse3NraXA6cn19ZWxzZSBpZih0LnBhcmVudE5vZGUubGFzdENoaWxkPT10fHxDbyYmL14odHJ8dGFibGUpJC9pLnRlc3QodC5wYXJlbnROb2RlLm5vZGVOYW1lKSlyZXR1cm57aWdub3JlOiEwfX1lbHNlIGlmKHQubm9kZU5hbWU9PSJJTUciJiZ0LmdldEF0dHJpYnV0ZSgibWFyay1wbGFjZWhvbGRlciIpKXJldHVybntpZ25vcmU6ITB9O3JldHVybiBudWxsfWZ1bmN0aW9uIHdOYSh0LGUscixhLHMpe2xldCBuPXQuaW5wdXQuY29tcG9zaXRpb25QZW5kaW5nQ2hhbmdlc3x8KHQuY29tcG9zaW5nP3QuaW5wdXQuY29tcG9zaXRpb25JRDowKTtpZih0LmlucHV0LmNvbXBvc2l0aW9uUGVuZGluZ0NoYW5nZXM9MCxlPDApe2xldCBPPXQuaW5wdXQubGFzdFNlbGVjdGlvblRpbWU+RGF0ZS5ub3coKS01MD90LmlucHV0Lmxhc3RTZWxlY3Rpb25PcmlnaW46bnVsbCxMPVBtdCh0LE8pO2lmKEwmJiF0LnN0YXRlLnNlbGVjdGlvbi5lcShMKSl7aWYoTm4mJnMzJiZ0LmlucHV0Lmxhc3RLZXlDb2RlPT09MTMmJkRhdGUubm93KCktMTAwPHQuaW5wdXQubGFzdEtleUNvZGVUaW1lJiZ0LnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixCPT5CKHQsUjkoMTMsIkVudGVyIikpKSlyZXR1cm47bGV0IEU9dC5zdGF0ZS50ci5zZXRTZWxlY3Rpb24oTCk7Tz09InBvaW50ZXIiP0Uuc2V0TWV0YSgicG9pbnRlciIsITApOk89PSJrZXkiJiZFLnNjcm9sbEludG9WaWV3KCksbiYmRS5zZXRNZXRhKCJjb21wb3NpdGlvbiIsbiksdC5kaXNwYXRjaChFKX1yZXR1cm59bGV0IG89dC5zdGF0ZS5kb2MucmVzb2x2ZShlKSxsPW8uc2hhcmVkRGVwdGgocik7ZT1vLmJlZm9yZShsKzEpLHI9dC5zdGF0ZS5kb2MucmVzb2x2ZShyKS5hZnRlcihsKzEpO2xldCBjPXQuc3RhdGUuc2VsZWN0aW9uLGQ9eE5hKHQsZSxyKSxmPXQuc3RhdGUuZG9jLHA9Zi5zbGljZShkLmZyb20sZC50byksaCxtO3QuaW5wdXQubGFzdEtleUNvZGU9PT04JiZEYXRlLm5vdygpLTEwMDx0LmlucHV0Lmxhc3RLZXlDb2RlVGltZT8oaD10LnN0YXRlLnNlbGVjdGlvbi50byxtPSJlbmQiKTooaD10LnN0YXRlLnNlbGVjdGlvbi5mcm9tLG09InN0YXJ0IiksdC5pbnB1dC5sYXN0S2V5Q29kZT1udWxsO2xldCB2PU1OYShwLmNvbnRlbnQsZC5kb2MuY29udGVudCxkLmZyb20saCxtKTtpZih2JiZ0LmlucHV0LmRvbUNoYW5nZUNvdW50KyssKHR3JiZ0LmlucHV0Lmxhc3RJT1NFbnRlcj5EYXRlLm5vdygpLTIyNXx8czMpJiZzLnNvbWUoTz0+Ty5ub2RlVHlwZT09MSYmIXlOYS50ZXN0KE8ubm9kZU5hbWUpKSYmKCF2fHx2LmVuZEE+PXYuZW5kQikmJnQuc29tZVByb3AoImhhbmRsZUtleURvd24iLE89Pk8odCxSOSgxMywiRW50ZXIiKSkpKXt0LmlucHV0Lmxhc3RJT1NFbnRlcj0wO3JldHVybn1pZighdilpZihhJiZjIGluc3RhbmNlb2YgZXImJiFjLmVtcHR5JiZjLiRoZWFkLnNhbWVQYXJlbnQoYy4kYW5jaG9yKSYmIXQuY29tcG9zaW5nJiYhKGQuc2VsJiZkLnNlbC5hbmNob3IhPWQuc2VsLmhlYWQpKXY9e3N0YXJ0OmMuZnJvbSxlbmRBOmMudG8sZW5kQjpjLnRvfTtlbHNle2lmKGQuc2VsKXtsZXQgTz1BR3IodCx0LnN0YXRlLmRvYyxkLnNlbCk7aWYoTyYmIU8uZXEodC5zdGF0ZS5zZWxlY3Rpb24pKXtsZXQgTD10LnN0YXRlLnRyLnNldFNlbGVjdGlvbihPKTtuJiZMLnNldE1ldGEoImNvbXBvc2l0aW9uIixuKSx0LmRpc3BhdGNoKEwpfX1yZXR1cm59dC5zdGF0ZS5zZWxlY3Rpb24uZnJvbTx0LnN0YXRlLnNlbGVjdGlvbi50byYmdi5zdGFydD09di5lbmRCJiZ0LnN0YXRlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIGVyJiYodi5zdGFydD50LnN0YXRlLnNlbGVjdGlvbi5mcm9tJiZ2LnN0YXJ0PD10LnN0YXRlLnNlbGVjdGlvbi5mcm9tKzImJnQuc3RhdGUuc2VsZWN0aW9uLmZyb20+PWQuZnJvbT92LnN0YXJ0PXQuc3RhdGUuc2VsZWN0aW9uLmZyb206di5lbmRBPHQuc3RhdGUuc2VsZWN0aW9uLnRvJiZ2LmVuZEE+PXQuc3RhdGUuc2VsZWN0aW9uLnRvLTImJnQuc3RhdGUuc2VsZWN0aW9uLnRvPD1kLnRvJiYodi5lbmRCKz10LnN0YXRlLnNlbGVjdGlvbi50by12LmVuZEEsdi5lbmRBPXQuc3RhdGUuc2VsZWN0aW9uLnRvKSksRTEmJllwPD0xMSYmdi5lbmRCPT12LnN0YXJ0KzEmJnYuZW5kQT09di5zdGFydCYmdi5zdGFydD5kLmZyb20mJmQuZG9jLnRleHRCZXR3ZWVuKHYuc3RhcnQtZC5mcm9tLTEsdi5zdGFydC1kLmZyb20rMSk9PSIgXHhBMCImJih2LnN0YXJ0LS0sdi5lbmRBLS0sdi5lbmRCLS0pO2xldCBiPWQuZG9jLnJlc29sdmVOb0NhY2hlKHYuc3RhcnQtZC5mcm9tKSxnPWQuZG9jLnJlc29sdmVOb0NhY2hlKHYuZW5kQi1kLmZyb20pLHk9Zi5yZXNvbHZlKHYuc3RhcnQpLGs9Yi5zYW1lUGFyZW50KGcpJiZiLnBhcmVudC5pbmxpbmVDb250ZW50JiZ5LmVuZCgpPj12LmVuZEE7aWYoKHR3JiZ0LmlucHV0Lmxhc3RJT1NFbnRlcj5EYXRlLm5vdygpLTIyNSYmKCFrfHxzLnNvbWUoTz0+Ty5ub2RlTmFtZT09IkRJViJ8fE8ubm9kZU5hbWU9PSJQIikpfHwhayYmYi5wb3M8ZC5kb2MuY29udGVudC5zaXplJiYoIWIuc2FtZVBhcmVudChnKXx8IWIucGFyZW50LmlubGluZUNvbnRlbnQpJiZiLnBvczxnLnBvcyYmIS9cUy8udGVzdChkLmRvYy50ZXh0QmV0d2VlbihiLnBvcyxnLnBvcywiIiwiIikpKSYmdC5zb21lUHJvcCgiaGFuZGxlS2V5RG93biIsTz0+Tyh0LFI5KDEzLCJFbnRlciIpKSkpe3QuaW5wdXQubGFzdElPU0VudGVyPTA7cmV0dXJufWlmKHQuc3RhdGUuc2VsZWN0aW9uLmFuY2hvcj52LnN0YXJ0JiZTTmEoZix2LnN0YXJ0LHYuZW5kQSxiLGcpJiZ0LnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixPPT5PKHQsUjkoOCwiQmFja3NwYWNlIikpKSl7czMmJk5uJiZ0LmRvbU9ic2VydmVyLnN1cHByZXNzU2VsZWN0aW9uVXBkYXRlcygpO3JldHVybn1ObiYmdi5lbmRCPT12LnN0YXJ0JiYodC5pbnB1dC5sYXN0Q2hyb21lRGVsZXRlPURhdGUubm93KCkpLHMzJiYhayYmYi5zdGFydCgpIT1nLnN0YXJ0KCkmJmcucGFyZW50T2Zmc2V0PT0wJiZiLmRlcHRoPT1nLmRlcHRoJiZkLnNlbCYmZC5zZWwuYW5jaG9yPT1kLnNlbC5oZWFkJiZkLnNlbC5oZWFkPT12LmVuZEEmJih2LmVuZEItPTIsZz1kLmRvYy5yZXNvbHZlTm9DYWNoZSh2LmVuZEItZC5mcm9tKSxzZXRUaW1lb3V0KCgpPT57dC5zb21lUHJvcCgiaGFuZGxlS2V5RG93biIsZnVuY3Rpb24oTyl7cmV0dXJuIE8odCxSOSgxMywiRW50ZXIiKSl9KX0sMjApKTtsZXQgTT12LnN0YXJ0LE49di5lbmRBLF89aShPPT57bGV0IEw9T3x8dC5zdGF0ZS50ci5yZXBsYWNlKE0sTixkLmRvYy5zbGljZSh2LnN0YXJ0LWQuZnJvbSx2LmVuZEItZC5mcm9tKSk7aWYoZC5zZWwpe2xldCBFPUFHcih0LEwuZG9jLGQuc2VsKTtFJiYhKE5uJiZ0LmNvbXBvc2luZyYmRS5lbXB0eSYmKHYuc3RhcnQhPXYuZW5kQnx8dC5pbnB1dC5sYXN0Q2hyb21lRGVsZXRlPERhdGUubm93KCktMTAwKSYmKEUuaGVhZD09TXx8RS5oZWFkPT1MLm1hcHBpbmcubWFwKE4pLTEpfHxFMSYmRS5lbXB0eSYmRS5oZWFkPT1NKSYmTC5zZXRTZWxlY3Rpb24oRSl9cmV0dXJuIG4mJkwuc2V0TWV0YSgiY29tcG9zaXRpb24iLG4pLEwuc2Nyb2xsSW50b1ZpZXcoKX0sIm1rVHIiKSxTO2lmKGspaWYoYi5wb3M9PWcucG9zKXtFMSYmWXA8PTExJiZiLnBhcmVudE9mZnNldD09MCYmKHQuZG9tT2JzZXJ2ZXIuc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGVzKCksc2V0VGltZW91dCgoKT0+bzModCksMjApKTtsZXQgTz1fKHQuc3RhdGUudHIuZGVsZXRlKE0sTikpLEw9Zi5yZXNvbHZlKHYuc3RhcnQpLm1hcmtzQWNyb3NzKGYucmVzb2x2ZSh2LmVuZEEpKTtMJiZPLmVuc3VyZU1hcmtzKEwpLHQuZGlzcGF0Y2goTyl9ZWxzZSBpZih2LmVuZEE9PXYuZW5kQiYmKFM9a05hKGIucGFyZW50LmNvbnRlbnQuY3V0KGIucGFyZW50T2Zmc2V0LGcucGFyZW50T2Zmc2V0KSx5LnBhcmVudC5jb250ZW50LmN1dCh5LnBhcmVudE9mZnNldCx2LmVuZEEteS5zdGFydCgpKSkpKXtsZXQgTz1fKHQuc3RhdGUudHIpO1MudHlwZT09ImFkZCI/Ty5hZGRNYXJrKE0sTixTLm1hcmspOk8ucmVtb3ZlTWFyayhNLE4sUy5tYXJrKSx0LmRpc3BhdGNoKE8pfWVsc2UgaWYoYi5wYXJlbnQuY2hpbGQoYi5pbmRleCgpKS5pc1RleHQmJmIuaW5kZXgoKT09Zy5pbmRleCgpLShnLnRleHRPZmZzZXQ/MDoxKSl7bGV0IE89Yi5wYXJlbnQudGV4dEJldHdlZW4oYi5wYXJlbnRPZmZzZXQsZy5wYXJlbnRPZmZzZXQpLEw9aSgoKT0+Xyh0LnN0YXRlLnRyLmluc2VydFRleHQoTyxNLE4pKSwiZGVmbHQiKTt0LnNvbWVQcm9wKCJoYW5kbGVUZXh0SW5wdXQiLEU9PkUodCxNLE4sTyxMKSl8fHQuZGlzcGF0Y2goTCgpKX1lbHNlIHQuZGlzcGF0Y2goXygpKTtlbHNlIHQuZGlzcGF0Y2goXygpKX1mdW5jdGlvbiBBR3IodCxlLHIpe3JldHVybiBNYXRoLm1heChyLmFuY2hvcixyLmhlYWQpPmUuY29udGVudC5zaXplP251bGw6T210KHQsZS5yZXNvbHZlKHIuYW5jaG9yKSxlLnJlc29sdmUoci5oZWFkKSl9ZnVuY3Rpb24ga05hKHQsZSl7bGV0IHI9dC5maXJzdENoaWxkLm1hcmtzLGE9ZS5maXJzdENoaWxkLm1hcmtzLHM9cixuPWEsbyxsLGM7Zm9yKGxldCBmPTA7ZjxhLmxlbmd0aDtmKyspcz1hW2ZdLnJlbW92ZUZyb21TZXQocyk7Zm9yKGxldCBmPTA7ZjxyLmxlbmd0aDtmKyspbj1yW2ZdLnJlbW92ZUZyb21TZXQobik7aWYocy5sZW5ndGg9PTEmJm4ubGVuZ3RoPT0wKWw9c1swXSxvPSJhZGQiLGM9aShmPT5mLm1hcmsobC5hZGRUb1NldChmLm1hcmtzKSksInVwZGF0ZSIpO2Vsc2UgaWYocy5sZW5ndGg9PTAmJm4ubGVuZ3RoPT0xKWw9blswXSxvPSJyZW1vdmUiLGM9aShmPT5mLm1hcmsobC5yZW1vdmVGcm9tU2V0KGYubWFya3MpKSwidXBkYXRlIik7ZWxzZSByZXR1cm4gbnVsbDtsZXQgZD1bXTtmb3IobGV0IGY9MDtmPGUuY2hpbGRDb3VudDtmKyspZC5wdXNoKGMoZS5jaGlsZChmKSkpO2lmKEplLmZyb20oZCkuZXEodCkpcmV0dXJue21hcms6bCx0eXBlOm99fWZ1bmN0aW9uIFNOYSh0LGUscixhLHMpe2lmKHItZTw9cy5wb3MtYS5wb3N8fHQ1dChhLCEwLCExKTxzLnBvcylyZXR1cm4hMTtsZXQgbj10LnJlc29sdmUoZSk7aWYoIWEucGFyZW50LmlzVGV4dGJsb2NrKXtsZXQgbD1uLm5vZGVBZnRlcjtyZXR1cm4gbCE9bnVsbCYmcj09ZStsLm5vZGVTaXplfWlmKG4ucGFyZW50T2Zmc2V0PG4ucGFyZW50LmNvbnRlbnQuc2l6ZXx8IW4ucGFyZW50LmlzVGV4dGJsb2NrKXJldHVybiExO2xldCBvPXQucmVzb2x2ZSh0NXQobiwhMCwhMCkpO3JldHVybiFvLnBhcmVudC5pc1RleHRibG9ja3x8by5wb3M+cnx8dDV0KG8sITAsITEpPHI/ITE6YS5wYXJlbnQuY29udGVudC5jdXQoYS5wYXJlbnRPZmZzZXQpLmVxKG8ucGFyZW50LmNvbnRlbnQpfWZ1bmN0aW9uIHQ1dCh0LGUscil7bGV0IGE9dC5kZXB0aCxzPWU/dC5lbmQoKTp0LnBvcztmb3IoO2E+MCYmKGV8fHQuaW5kZXhBZnRlcihhKT09dC5ub2RlKGEpLmNoaWxkQ291bnQpOylhLS0scysrLGU9ITE7aWYocil7bGV0IG49dC5ub2RlKGEpLm1heWJlQ2hpbGQodC5pbmRleEFmdGVyKGEpKTtmb3IoO24mJiFuLmlzTGVhZjspbj1uLmZpcnN0Q2hpbGQscysrfXJldHVybiBzfWZ1bmN0aW9uIE1OYSh0LGUscixhLHMpe2xldCBuPXQuZmluZERpZmZTdGFydChlLHIpO2lmKG49PW51bGwpcmV0dXJuIG51bGw7bGV0e2E6byxiOmx9PXQuZmluZERpZmZFbmQoZSxyK3Quc2l6ZSxyK2Uuc2l6ZSk7aWYocz09ImVuZCIpe2xldCBjPU1hdGgubWF4KDAsbi1NYXRoLm1pbihvLGwpKTthLT1vK2Mtbn1pZihvPG4mJnQuc2l6ZTxlLnNpemUpe2xldCBjPWE8PW4mJmE+PW8/bi1hOjA7bi09YyxuJiZuPGUuc2l6ZSYmRUdyKGUudGV4dEJldHdlZW4obi0xLG4rMSkpJiYobis9Yz8xOi0xKSxsPW4rKGwtbyksbz1ufWVsc2UgaWYobDxuKXtsZXQgYz1hPD1uJiZhPj1sP24tYTowO24tPWMsbiYmbjx0LnNpemUmJkVHcih0LnRleHRCZXR3ZWVuKG4tMSxuKzEpKSYmKG4rPWM/MTotMSksbz1uKyhvLWwpLGw9bn1yZXR1cm57c3RhcnQ6bixlbmRBOm8sZW5kQjpsfX1mdW5jdGlvbiBFR3IodCl7aWYodC5sZW5ndGghPTIpcmV0dXJuITE7bGV0IGU9dC5jaGFyQ29kZUF0KDApLHI9dC5jaGFyQ29kZUF0KDEpO3JldHVybiBlPj01NjMyMCYmZTw9NTczNDMmJnI+PTU1Mjk2JiZyPD01NjMxOX1mdW5jdGlvbiBJR3IodCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gZS5jbGFzcz0iUHJvc2VNaXJyb3IiLGUuY29udGVudGVkaXRhYmxlPVN0cmluZyh0LmVkaXRhYmxlKSx0LnNvbWVQcm9wKCJhdHRyaWJ1dGVzIixyPT57aWYodHlwZW9mIHI9PSJmdW5jdGlvbiImJihyPXIodC5zdGF0ZSkpLHIpZm9yKGxldCBhIGluIHIpYT09ImNsYXNzIj9lLmNsYXNzKz0iICIrclthXTphPT0ic3R5bGUiP2Uuc3R5bGU9KGUuc3R5bGU/ZS5zdHlsZSsiOyI6IiIpK3JbYV06IWVbYV0mJmEhPSJjb250ZW50ZWRpdGFibGUiJiZhIT0ibm9kZU5hbWUiJiYoZVthXT1TdHJpbmcoclthXSkpfSksZS50cmFuc2xhdGV8fChlLnRyYW5zbGF0ZT0ibm8iKSxbd2Mubm9kZSgwLHQuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZSxlKV19ZnVuY3Rpb24gUEdyKHQpe2lmKHQubWFya0N1cnNvcil7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7ZS5jbGFzc05hbWU9IlByb3NlTWlycm9yLXNlcGFyYXRvciIsZS5zZXRBdHRyaWJ1dGUoIm1hcmstcGxhY2Vob2xkZXIiLCJ0cnVlIiksZS5zZXRBdHRyaWJ1dGUoImFsdCIsIiIpLHQuY3Vyc29yV3JhcHBlcj17ZG9tOmUsZGVjbzp3Yy53aWRnZXQodC5zdGF0ZS5zZWxlY3Rpb24uZnJvbSxlLHtyYXc6ITAsbWFya3M6dC5tYXJrQ3Vyc29yfSl9fWVsc2UgdC5jdXJzb3JXcmFwcGVyPW51bGx9ZnVuY3Rpb24gTkdyKHQpe3JldHVybiF0LnNvbWVQcm9wKCJlZGl0YWJsZSIsZT0+ZSh0LnN0YXRlKT09PSExKX1mdW5jdGlvbiBfTmEodCxlKXtsZXQgcj1NYXRoLm1pbih0LiRhbmNob3Iuc2hhcmVkRGVwdGgodC5oZWFkKSxlLiRhbmNob3Iuc2hhcmVkRGVwdGgoZS5oZWFkKSk7cmV0dXJuIHQuJGFuY2hvci5zdGFydChyKSE9ZS4kYW5jaG9yLnN0YXJ0KHIpfWZ1bmN0aW9uIE9Hcih0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIHIoYSl7Zm9yKGxldCBzIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscyl8fChlW3NdPWFbc10pfXJldHVybiBpKHIsImFkZCIpLHQuc29tZVByb3AoIm5vZGVWaWV3cyIsciksdC5zb21lUHJvcCgibWFya1ZpZXdzIixyKSxlfWZ1bmN0aW9uIFROYSh0LGUpe2xldCByPTAsYT0wO2ZvcihsZXQgcyBpbiB0KXtpZih0W3NdIT1lW3NdKXJldHVybiEwO3IrK31mb3IobGV0IHMgaW4gZSlhKys7cmV0dXJuIHIhPWF9ZnVuY3Rpb24gUkdyKHQpe2lmKHQuc3BlYy5zdGF0ZXx8dC5zcGVjLmZpbHRlclRyYW5zYWN0aW9ufHx0LnNwZWMuYXBwZW5kVHJhbnNhY3Rpb24pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlBsdWdpbnMgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSB2aWV3IG11c3Qgbm90IGhhdmUgYSBzdGF0ZSBjb21wb25lbnQiKX12YXIgUG4sZXcsTW10LGkzLFhJYSxPOSxKSWEsU2ZlLGRkLCRXcixHcCxDbXQsQVdyLHptdCxFMSxZcCxlMixfbXQsTm4sRVdyLENvLHR3LHQyLElXcixzMyxPdGUsc1BhLHJ3LGdQYSx4UGEsVldyLGpXcixVV3IscjIsV1dyLEY5LHVkLEI5LE1mZSxEbXQsYXcsWnAsQ2ZlLHpmZSwkbXQsRnRlLEg5LEVtdCxKV3IsT1BhLGdHcixiR3IsVm10LFZvLGpvLFZQYSxqbXQsdkdyLEttdCx0TmEscXRlLERmZSxsTmEsJGZlLHE5LFptdCx3YyxudyxWOSxVbyx6byxBZmUscE5hLGZOYSxKbXQsZTV0LExHcixER3IseU5hLENOYSx6TmEsb3cscjV0PXUoKCk9PnthMygpO2pwKCk7V3AoKTtQbj1pKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wOztlKyspaWYodD10LnByZXZpb3VzU2libGluZywhdClyZXR1cm4gZX0sImRvbUluZGV4IiksZXc9aShmdW5jdGlvbih0KXtsZXQgZT10LmFzc2lnbmVkU2xvdHx8dC5wYXJlbnROb2RlO3JldHVybiBlJiZlLm5vZGVUeXBlPT0xMT9lLmhvc3Q6ZX0sInBhcmVudE5vZGUiKSxNbXQ9bnVsbCxpMz1pKGZ1bmN0aW9uKHQsZSxyKXtsZXQgYT1NbXR8fChNbXQ9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSk7cmV0dXJuIGEuc2V0RW5kKHQscj8/dC5ub2RlVmFsdWUubGVuZ3RoKSxhLnNldFN0YXJ0KHQsZXx8MCksYX0sInRleHRSYW5nZSIpLFhJYT1pKGZ1bmN0aW9uKCl7TW10PW51bGx9LCJjbGVhclJldXNlZFJhbmdlIiksTzk9aShmdW5jdGlvbih0LGUscixhKXtyZXR1cm4gciYmKERXcih0LGUscixhLC0xKXx8RFdyKHQsZSxyLGEsMSkpfSwiaXNFcXVpdmFsZW50UG9zaXRpb24iKSxKSWE9L14oaW1nfGJyfGlucHV0fHRleHRhcmVhfGhyKSQvaTtpKERXciwic2NhbkZvciIpO2koSmwsIm5vZGVTaXplIik7aShlUGEsInRleHROb2RlQmVmb3JlJDEiKTtpKHRQYSwidGV4dE5vZGVBZnRlciQxIik7aShyUGEsImlzT25FZGdlIik7aShOdGUsImhhc0Jsb2NrRGVzYyIpO1NmZT1pKGZ1bmN0aW9uKHQpe3JldHVybiB0LmZvY3VzTm9kZSYmTzkodC5mb2N1c05vZGUsdC5mb2N1c09mZnNldCx0LmFuY2hvck5vZGUsdC5hbmNob3JPZmZzZXQpfSwic2VsZWN0aW9uQ29sbGFwc2VkIik7aShSOSwia2V5RXZlbnQiKTtpKGFQYSwiZGVlcEFjdGl2ZUVsZW1lbnQiKTtpKGlQYSwiY2FyZXRGcm9tUG9pbnQiKTtkZD10eXBlb2YgbmF2aWdhdG9yPCJ1Ij9uYXZpZ2F0b3I6bnVsbCwkV3I9dHlwZW9mIGRvY3VtZW50PCJ1Ij9kb2N1bWVudDpudWxsLEdwPWRkJiZkZC51c2VyQWdlbnR8fCIiLENtdD0vRWRnZVwvKFxkKykvLmV4ZWMoR3ApLEFXcj0vTVNJRSBcZC8uZXhlYyhHcCksem10PS9UcmlkZW50XC8oPzpbNy05XXxcZHsyLH0pXC4uKnJ2OihcZCspLy5leGVjKEdwKSxFMT0hIShBV3J8fHptdHx8Q210KSxZcD1BV3I/ZG9jdW1lbnQuZG9jdW1lbnRNb2RlOnptdD8rem10WzFdOkNtdD8rQ210WzFdOjAsZTI9IUUxJiYvZ2Vja29cLyhcZCspL2kudGVzdChHcCk7ZTImJisoL0ZpcmVmb3hcLyhcZCspLy5leGVjKEdwKXx8WzAsMF0pWzFdO19tdD0hRTEmJi9DaHJvbWVcLyhcZCspLy5leGVjKEdwKSxObj0hIV9tdCxFV3I9X210PytfbXRbMV06MCxDbz0hRTEmJiEhZGQmJi9BcHBsZSBDb21wdXRlci8udGVzdChkZC52ZW5kb3IpLHR3PUNvJiYoL01vYmlsZVwvXHcrLy50ZXN0KEdwKXx8ISFkZCYmZGQubWF4VG91Y2hQb2ludHM+MiksdDI9dHd8fChkZD8vTWFjLy50ZXN0KGRkLnBsYXRmb3JtKTohMSksSVdyPWRkPy9XaW4vLnRlc3QoZGQucGxhdGZvcm0pOiExLHMzPS9BbmRyb2lkIFxkLy50ZXN0KEdwKSxPdGU9ISEkV3ImJiJ3ZWJraXRGb250U21vb3RoaW5nImluICRXci5kb2N1bWVudEVsZW1lbnQuc3R5bGUsc1BhPU90ZT8rKC9cYkFwcGxlV2ViS2l0XC8oXGQrKS8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50KXx8WzAsMF0pWzFdOjA7aShuUGEsIndpbmRvd1JlY3QiKTtpKG4zLCJnZXRTaWRlIik7aShvUGEsImNsaWVudFJlY3QiKTtpKFBXciwic2Nyb2xsUmVjdEludG9WaWV3Iik7aShsUGEsInN0b3JlU2Nyb2xsUG9zIik7aShOV3IsInNjcm9sbFN0YWNrIik7aShjUGEsInJlc2V0U2Nyb2xsUG9zIik7aShPV3IsInJlc3RvcmVTY3JvbGxTdGFjayIpO3J3PW51bGw7aShkUGEsImZvY3VzUHJldmVudFNjcm9sbCIpO2koUldyLCJmaW5kT2Zmc2V0SW5Ob2RlIik7aSh1UGEsImZpbmRPZmZzZXRJblRleHQiKTtpKFRtdCwiaW5SZWN0Iik7aShwUGEsInRhcmdldEtsdWRnZSIpO2koZlBhLCJwb3NGcm9tRWxlbWVudCIpO2koaFBhLCJwb3NGcm9tQ2FyZXQiKTtpKEZXciwiZWxlbWVudEZyb21Qb2ludCIpO2kobVBhLCJwb3NBdENvb3JkcyIpO2koQldyLCJub25aZXJvIik7aShLcCwic2luZ2xlUmVjdCIpO2dQYT0vW1x1MDU5MC1cdTA1ZjRcdTA2MDAtXHUwNmZmXHUwNzAwLVx1MDhhY10vO2koSFdyLCJjb29yZHNBdFBvcyIpO2koUnRlLCJmbGF0dGVuViIpO2koTG10LCJmbGF0dGVuSCIpO2kocVdyLCJ3aXRoRmx1c2hlZFN0YXRlIik7aShiUGEsImVuZE9mVGV4dGJsb2NrVmVydGljYWwiKTt4UGE9L1tcdTA1OTAtXHUwOGFjXS87aSh2UGEsImVuZE9mVGV4dGJsb2NrSG9yaXpvbnRhbCIpO1ZXcj1udWxsLGpXcj1udWxsLFVXcj0hMTtpKHlQYSwiZW5kT2ZUZXh0YmxvY2siKTtyMj0wLFdXcj0xLEY5PTIsdWQ9MyxCOT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUscixhLHMpe3RoaXMucGFyZW50PWUsdGhpcy5jaGlsZHJlbj1yLHRoaXMuZG9tPWEsdGhpcy5jb250ZW50RE9NPXMsdGhpcy5kaXJ0eT1yMixhLnBtVmlld0Rlc2M9dGhpc31tYXRjaGVzV2lkZ2V0KGUpe3JldHVybiExfW1hdGNoZXNNYXJrKGUpe3JldHVybiExfW1hdGNoZXNOb2RlKGUscixhKXtyZXR1cm4hMX1tYXRjaGVzSGFjayhlKXtyZXR1cm4hMX1wYXJzZVJ1bGUoKXtyZXR1cm4gbnVsbH1zdG9wRXZlbnQoZSl7cmV0dXJuITF9Z2V0IHNpemUoKXtsZXQgZT0wO2ZvcihsZXQgcj0wO3I8dGhpcy5jaGlsZHJlbi5sZW5ndGg7cisrKWUrPXRoaXMuY2hpbGRyZW5bcl0uc2l6ZTtyZXR1cm4gZX1nZXQgYm9yZGVyKCl7cmV0dXJuIDB9ZGVzdHJveSgpe3RoaXMucGFyZW50PXZvaWQgMCx0aGlzLmRvbS5wbVZpZXdEZXNjPT10aGlzJiYodGhpcy5kb20ucG1WaWV3RGVzYz12b2lkIDApO2ZvcihsZXQgZT0wO2U8dGhpcy5jaGlsZHJlbi5sZW5ndGg7ZSsrKXRoaXMuY2hpbGRyZW5bZV0uZGVzdHJveSgpfXBvc0JlZm9yZUNoaWxkKGUpe2ZvcihsZXQgcj0wLGE9dGhpcy5wb3NBdFN0YXJ0OztyKyspe2xldCBzPXRoaXMuY2hpbGRyZW5bcl07aWYocz09ZSlyZXR1cm4gYTthKz1zLnNpemV9fWdldCBwb3NCZWZvcmUoKXtyZXR1cm4gdGhpcy5wYXJlbnQucG9zQmVmb3JlQ2hpbGQodGhpcyl9Z2V0IHBvc0F0U3RhcnQoKXtyZXR1cm4gdGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQucG9zQmVmb3JlQ2hpbGQodGhpcykrdGhpcy5ib3JkZXI6MH1nZXQgcG9zQWZ0ZXIoKXtyZXR1cm4gdGhpcy5wb3NCZWZvcmUrdGhpcy5zaXplfWdldCBwb3NBdEVuZCgpe3JldHVybiB0aGlzLnBvc0F0U3RhcnQrdGhpcy5zaXplLTIqdGhpcy5ib3JkZXJ9bG9jYWxQb3NGcm9tRE9NKGUscixhKXtpZih0aGlzLmNvbnRlbnRET00mJnRoaXMuY29udGVudERPTS5jb250YWlucyhlLm5vZGVUeXBlPT0xP2U6ZS5wYXJlbnROb2RlKSlpZihhPDApe2xldCBuLG87aWYoZT09dGhpcy5jb250ZW50RE9NKW49ZS5jaGlsZE5vZGVzW3ItMV07ZWxzZXtmb3IoO2UucGFyZW50Tm9kZSE9dGhpcy5jb250ZW50RE9NOyllPWUucGFyZW50Tm9kZTtuPWUucHJldmlvdXNTaWJsaW5nfWZvcig7biYmISgobz1uLnBtVmlld0Rlc2MpJiZvLnBhcmVudD09dGhpcyk7KW49bi5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIG4/dGhpcy5wb3NCZWZvcmVDaGlsZChvKStvLnNpemU6dGhpcy5wb3NBdFN0YXJ0fWVsc2V7bGV0IG4sbztpZihlPT10aGlzLmNvbnRlbnRET00pbj1lLmNoaWxkTm9kZXNbcl07ZWxzZXtmb3IoO2UucGFyZW50Tm9kZSE9dGhpcy5jb250ZW50RE9NOyllPWUucGFyZW50Tm9kZTtuPWUubmV4dFNpYmxpbmd9Zm9yKDtuJiYhKChvPW4ucG1WaWV3RGVzYykmJm8ucGFyZW50PT10aGlzKTspbj1uLm5leHRTaWJsaW5nO3JldHVybiBuP3RoaXMucG9zQmVmb3JlQ2hpbGQobyk6dGhpcy5wb3NBdEVuZH1sZXQgcztpZihlPT10aGlzLmRvbSYmdGhpcy5jb250ZW50RE9NKXM9cj5Qbih0aGlzLmNvbnRlbnRET00pO2Vsc2UgaWYodGhpcy5jb250ZW50RE9NJiZ0aGlzLmNvbnRlbnRET00hPXRoaXMuZG9tJiZ0aGlzLmRvbS5jb250YWlucyh0aGlzLmNvbnRlbnRET00pKXM9ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzLmNvbnRlbnRET00pJjI7ZWxzZSBpZih0aGlzLmRvbS5maXJzdENoaWxkKXtpZihyPT0wKWZvcihsZXQgbj1lOztuPW4ucGFyZW50Tm9kZSl7aWYobj09dGhpcy5kb20pe3M9ITE7YnJlYWt9aWYobi5wcmV2aW91c1NpYmxpbmcpYnJlYWt9aWYocz09bnVsbCYmcj09ZS5jaGlsZE5vZGVzLmxlbmd0aClmb3IobGV0IG49ZTs7bj1uLnBhcmVudE5vZGUpe2lmKG49PXRoaXMuZG9tKXtzPSEwO2JyZWFrfWlmKG4ubmV4dFNpYmxpbmcpYnJlYWt9fXJldHVybiBzPz9hPjA/dGhpcy5wb3NBdEVuZDp0aGlzLnBvc0F0U3RhcnR9bmVhcmVzdERlc2MoZSxyPSExKXtmb3IobGV0IGE9ITAscz1lO3M7cz1zLnBhcmVudE5vZGUpe2xldCBuPXRoaXMuZ2V0RGVzYyhzKSxvO2lmKG4mJighcnx8bi5ub2RlKSlpZihhJiYobz1uLm5vZGVET00pJiYhKG8ubm9kZVR5cGU9PTE/by5jb250YWlucyhlLm5vZGVUeXBlPT0xP2U6ZS5wYXJlbnROb2RlKTpvPT1lKSlhPSExO2Vsc2UgcmV0dXJuIG59fWdldERlc2MoZSl7bGV0IHI9ZS5wbVZpZXdEZXNjO2ZvcihsZXQgYT1yO2E7YT1hLnBhcmVudClpZihhPT10aGlzKXJldHVybiByfXBvc0Zyb21ET00oZSxyLGEpe2ZvcihsZXQgcz1lO3M7cz1zLnBhcmVudE5vZGUpe2xldCBuPXRoaXMuZ2V0RGVzYyhzKTtpZihuKXJldHVybiBuLmxvY2FsUG9zRnJvbURPTShlLHIsYSl9cmV0dXJuLTF9ZGVzY0F0KGUpe2ZvcihsZXQgcj0wLGE9MDtyPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3IrKyl7bGV0IHM9dGhpcy5jaGlsZHJlbltyXSxuPWErcy5zaXplO2lmKGE9PWUmJm4hPWEpe2Zvcig7IXMuYm9yZGVyJiZzLmNoaWxkcmVuLmxlbmd0aDspZm9yKGxldCBvPTA7bzxzLmNoaWxkcmVuLmxlbmd0aDtvKyspe2xldCBsPXMuY2hpbGRyZW5bb107aWYobC5zaXplKXtzPWw7YnJlYWt9fXJldHVybiBzfWlmKGU8bilyZXR1cm4gcy5kZXNjQXQoZS1hLXMuYm9yZGVyKTthPW59fWRvbUZyb21Qb3MoZSxyKXtpZighdGhpcy5jb250ZW50RE9NKXJldHVybntub2RlOnRoaXMuZG9tLG9mZnNldDowLGF0b206ZSsxfTtsZXQgYT0wLHM9MDtmb3IobGV0IG49MDthPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2ErKyl7bGV0IG89dGhpcy5jaGlsZHJlblthXSxsPW4rby5zaXplO2lmKGw+ZXx8byBpbnN0YW5jZW9mIHpmZSl7cz1lLW47YnJlYWt9bj1sfWlmKHMpcmV0dXJuIHRoaXMuY2hpbGRyZW5bYV0uZG9tRnJvbVBvcyhzLXRoaXMuY2hpbGRyZW5bYV0uYm9yZGVyLHIpO2ZvcihsZXQgbjthJiYhKG49dGhpcy5jaGlsZHJlblthLTFdKS5zaXplJiZuIGluc3RhbmNlb2YgTWZlJiZuLnNpZGU+PTA7YS0tKTtpZihyPD0wKXtsZXQgbixvPSEwO2Zvcig7bj1hP3RoaXMuY2hpbGRyZW5bYS0xXTpudWxsLCEoIW58fG4uZG9tLnBhcmVudE5vZGU9PXRoaXMuY29udGVudERPTSk7YS0tLG89ITEpO3JldHVybiBuJiZyJiZvJiYhbi5ib3JkZXImJiFuLmRvbUF0b20/bi5kb21Gcm9tUG9zKG4uc2l6ZSxyKTp7bm9kZTp0aGlzLmNvbnRlbnRET00sb2Zmc2V0Om4/UG4obi5kb20pKzE6MH19ZWxzZXtsZXQgbixvPSEwO2Zvcig7bj1hPHRoaXMuY2hpbGRyZW4ubGVuZ3RoP3RoaXMuY2hpbGRyZW5bYV06bnVsbCwhKCFufHxuLmRvbS5wYXJlbnROb2RlPT10aGlzLmNvbnRlbnRET00pO2ErKyxvPSExKTtyZXR1cm4gbiYmbyYmIW4uYm9yZGVyJiYhbi5kb21BdG9tP24uZG9tRnJvbVBvcygwLHIpOntub2RlOnRoaXMuY29udGVudERPTSxvZmZzZXQ6bj9QbihuLmRvbSk6dGhpcy5jb250ZW50RE9NLmNoaWxkTm9kZXMubGVuZ3RofX19cGFyc2VSYW5nZShlLHIsYT0wKXtpZih0aGlzLmNoaWxkcmVuLmxlbmd0aD09MClyZXR1cm57bm9kZTp0aGlzLmNvbnRlbnRET00sZnJvbTplLHRvOnIsZnJvbU9mZnNldDowLHRvT2Zmc2V0OnRoaXMuY29udGVudERPTS5jaGlsZE5vZGVzLmxlbmd0aH07bGV0IHM9LTEsbj0tMTtmb3IobGV0IG89YSxsPTA7O2wrKyl7bGV0IGM9dGhpcy5jaGlsZHJlbltsXSxkPW8rYy5zaXplO2lmKHM9PS0xJiZlPD1kKXtsZXQgZj1vK2MuYm9yZGVyO2lmKGU+PWYmJnI8PWQtYy5ib3JkZXImJmMubm9kZSYmYy5jb250ZW50RE9NJiZ0aGlzLmNvbnRlbnRET00uY29udGFpbnMoYy5jb250ZW50RE9NKSlyZXR1cm4gYy5wYXJzZVJhbmdlKGUscixmKTtlPW87Zm9yKGxldCBwPWw7cD4wO3AtLSl7bGV0IGg9dGhpcy5jaGlsZHJlbltwLTFdO2lmKGguc2l6ZSYmaC5kb20ucGFyZW50Tm9kZT09dGhpcy5jb250ZW50RE9NJiYhaC5lbXB0eUNoaWxkQXQoMSkpe3M9UG4oaC5kb20pKzE7YnJlYWt9ZS09aC5zaXplfXM9PS0xJiYocz0wKX1pZihzPi0xJiYoZD5yfHxsPT10aGlzLmNoaWxkcmVuLmxlbmd0aC0xKSl7cj1kO2ZvcihsZXQgZj1sKzE7Zjx0aGlzLmNoaWxkcmVuLmxlbmd0aDtmKyspe2xldCBwPXRoaXMuY2hpbGRyZW5bZl07aWYocC5zaXplJiZwLmRvbS5wYXJlbnROb2RlPT10aGlzLmNvbnRlbnRET00mJiFwLmVtcHR5Q2hpbGRBdCgtMSkpe249UG4ocC5kb20pO2JyZWFrfXIrPXAuc2l6ZX1uPT0tMSYmKG49dGhpcy5jb250ZW50RE9NLmNoaWxkTm9kZXMubGVuZ3RoKTticmVha31vPWR9cmV0dXJue25vZGU6dGhpcy5jb250ZW50RE9NLGZyb206ZSx0bzpyLGZyb21PZmZzZXQ6cyx0b09mZnNldDpufX1lbXB0eUNoaWxkQXQoZSl7aWYodGhpcy5ib3JkZXJ8fCF0aGlzLmNvbnRlbnRET018fCF0aGlzLmNoaWxkcmVuLmxlbmd0aClyZXR1cm4hMTtsZXQgcj10aGlzLmNoaWxkcmVuW2U8MD8wOnRoaXMuY2hpbGRyZW4ubGVuZ3RoLTFdO3JldHVybiByLnNpemU9PTB8fHIuZW1wdHlDaGlsZEF0KGUpfWRvbUFmdGVyUG9zKGUpe2xldHtub2RlOnIsb2Zmc2V0OmF9PXRoaXMuZG9tRnJvbVBvcyhlLDApO2lmKHIubm9kZVR5cGUhPTF8fGE9PXIuY2hpbGROb2Rlcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vIG5vZGUgYWZ0ZXIgcG9zICIrZSk7cmV0dXJuIHIuY2hpbGROb2Rlc1thXX1zZXRTZWxlY3Rpb24oZSxyLGEscz0hMSl7bGV0IG49TWF0aC5taW4oZSxyKSxvPU1hdGgubWF4KGUscik7Zm9yKGxldCBtPTAsdj0wO208dGhpcy5jaGlsZHJlbi5sZW5ndGg7bSsrKXtsZXQgYj10aGlzLmNoaWxkcmVuW21dLGc9ditiLnNpemU7aWYobj52JiZvPGcpcmV0dXJuIGIuc2V0U2VsZWN0aW9uKGUtdi1iLmJvcmRlcixyLXYtYi5ib3JkZXIsYSxzKTt2PWd9bGV0IGw9dGhpcy5kb21Gcm9tUG9zKGUsZT8tMToxKSxjPXI9PWU/bDp0aGlzLmRvbUZyb21Qb3MocixyPy0xOjEpLGQ9YS5yb290LmdldFNlbGVjdGlvbigpLGY9YS5kb21TZWxlY3Rpb25SYW5nZSgpLHA9ITE7aWYoKGUyfHxDbykmJmU9PXIpe2xldHtub2RlOm0sb2Zmc2V0OnZ9PWw7aWYobS5ub2RlVHlwZT09Myl7aWYocD0hISh2JiZtLm5vZGVWYWx1ZVt2LTFdPT1gCmApLHAmJnY9PW0ubm9kZVZhbHVlLmxlbmd0aClmb3IobGV0IGI9bSxnO2I7Yj1iLnBhcmVudE5vZGUpe2lmKGc9Yi5uZXh0U2libGluZyl7Zy5ub2RlTmFtZT09IkJSIiYmKGw9Yz17bm9kZTpnLnBhcmVudE5vZGUsb2Zmc2V0OlBuKGcpKzF9KTticmVha31sZXQgeT1iLnBtVmlld0Rlc2M7aWYoeSYmeS5ub2RlJiZ5Lm5vZGUuaXNCbG9jaylicmVha319ZWxzZXtsZXQgYj1tLmNoaWxkTm9kZXNbdi0xXTtwPWImJihiLm5vZGVOYW1lPT0iQlIifHxiLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIil9fWlmKGUyJiZmLmZvY3VzTm9kZSYmZi5mb2N1c05vZGUhPWMubm9kZSYmZi5mb2N1c05vZGUubm9kZVR5cGU9PTEpe2xldCBtPWYuZm9jdXNOb2RlLmNoaWxkTm9kZXNbZi5mb2N1c09mZnNldF07bSYmbS5jb250ZW50RWRpdGFibGU9PSJmYWxzZSImJihzPSEwKX1pZighKHN8fHAmJkNvKSYmTzkobC5ub2RlLGwub2Zmc2V0LGYuYW5jaG9yTm9kZSxmLmFuY2hvck9mZnNldCkmJk85KGMubm9kZSxjLm9mZnNldCxmLmZvY3VzTm9kZSxmLmZvY3VzT2Zmc2V0KSlyZXR1cm47bGV0IGg9ITE7aWYoKGQuZXh0ZW5kfHxlPT1yKSYmIShwJiZlMikpe2QuY29sbGFwc2UobC5ub2RlLGwub2Zmc2V0KTt0cnl7ZSE9ciYmZC5leHRlbmQoYy5ub2RlLGMub2Zmc2V0KSxoPSEwfWNhdGNoe319aWYoIWgpe2lmKGU+cil7bGV0IHY9bDtsPWMsYz12fWxldCBtPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bS5zZXRFbmQoYy5ub2RlLGMub2Zmc2V0KSxtLnNldFN0YXJ0KGwubm9kZSxsLm9mZnNldCksZC5yZW1vdmVBbGxSYW5nZXMoKSxkLmFkZFJhbmdlKG0pfX1pZ25vcmVNdXRhdGlvbihlKXtyZXR1cm4hdGhpcy5jb250ZW50RE9NJiZlLnR5cGUhPSJzZWxlY3Rpb24ifWdldCBjb250ZW50TG9zdCgpe3JldHVybiB0aGlzLmNvbnRlbnRET00mJnRoaXMuY29udGVudERPTSE9dGhpcy5kb20mJiF0aGlzLmRvbS5jb250YWlucyh0aGlzLmNvbnRlbnRET00pfW1hcmtEaXJ0eShlLHIpe2ZvcihsZXQgYT0wLHM9MDtzPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO3MrKyl7bGV0IG49dGhpcy5jaGlsZHJlbltzXSxvPWErbi5zaXplO2lmKGE9PW8/ZTw9byYmcj49YTplPG8mJnI+YSl7bGV0IGw9YStuLmJvcmRlcixjPW8tbi5ib3JkZXI7aWYoZT49bCYmcjw9Yyl7dGhpcy5kaXJ0eT1lPT1hfHxyPT1vP0Y5OldXcixlPT1sJiZyPT1jJiYobi5jb250ZW50TG9zdHx8bi5kb20ucGFyZW50Tm9kZSE9dGhpcy5jb250ZW50RE9NKT9uLmRpcnR5PXVkOm4ubWFya0RpcnR5KGUtbCxyLWwpO3JldHVybn1lbHNlIG4uZGlydHk9bi5kb209PW4uY29udGVudERPTSYmbi5kb20ucGFyZW50Tm9kZT09dGhpcy5jb250ZW50RE9NJiYhbi5jaGlsZHJlbi5sZW5ndGg/Rjk6dWR9YT1vfXRoaXMuZGlydHk9Rjl9bWFya1BhcmVudHNEaXJ0eSgpe2xldCBlPTE7Zm9yKGxldCByPXRoaXMucGFyZW50O3I7cj1yLnBhcmVudCxlKyspe2xldCBhPWU9PTE/Rjk6V1dyO3IuZGlydHk8YSYmKHIuZGlydHk9YSl9fWdldCBkb21BdG9tKCl7cmV0dXJuITF9Z2V0IGlnbm9yZUZvckNvb3Jkcygpe3JldHVybiExfWdldCBpZ25vcmVGb3JTZWxlY3Rpb24oKXtyZXR1cm4hMX1pc1RleHQoZSl7cmV0dXJuITF9fSxNZmU9Y2xhc3MgZXh0ZW5kcyBCOXtzdGF0aWN7aSh0aGlzLCJXaWRnZXRWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUscixhLHMpe2xldCBuLG89ci50eXBlLnRvRE9NO2lmKHR5cGVvZiBvPT0iZnVuY3Rpb24iJiYobz1vKGEsKCk9PntpZighbilyZXR1cm4gcztpZihuLnBhcmVudClyZXR1cm4gbi5wYXJlbnQucG9zQmVmb3JlQ2hpbGQobil9KSksIXIudHlwZS5zcGVjLnJhdyl7aWYoby5ub2RlVHlwZSE9MSl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2wuYXBwZW5kQ2hpbGQobyksbz1sfW8uY29udGVudEVkaXRhYmxlPSJmYWxzZSIsby5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci13aWRnZXQiKX1zdXBlcihlLFtdLG8sbnVsbCksdGhpcy53aWRnZXQ9cix0aGlzLndpZGdldD1yLG49dGhpc31tYXRjaGVzV2lkZ2V0KGUpe3JldHVybiB0aGlzLmRpcnR5PT1yMiYmZS50eXBlLmVxKHRoaXMud2lkZ2V0LnR5cGUpfXBhcnNlUnVsZSgpe3JldHVybntpZ25vcmU6ITB9fXN0b3BFdmVudChlKXtsZXQgcj10aGlzLndpZGdldC5zcGVjLnN0b3BFdmVudDtyZXR1cm4gcj9yKGUpOiExfWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiBlLnR5cGUhPSJzZWxlY3Rpb24ifHx0aGlzLndpZGdldC5zcGVjLmlnbm9yZVNlbGVjdGlvbn1kZXN0cm95KCl7dGhpcy53aWRnZXQudHlwZS5kZXN0cm95KHRoaXMuZG9tKSxzdXBlci5kZXN0cm95KCl9Z2V0IGRvbUF0b20oKXtyZXR1cm4hMH1nZXQgaWdub3JlRm9yU2VsZWN0aW9uKCl7cmV0dXJuISF0aGlzLndpZGdldC50eXBlLnNwZWMucmVsYXhlZFNpZGV9Z2V0IHNpZGUoKXtyZXR1cm4gdGhpcy53aWRnZXQudHlwZS5zaWRlfX0sRG10PWNsYXNzIGV4dGVuZHMgQjl7c3RhdGlje2kodGhpcywiQ29tcG9zaXRpb25WaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUscixhLHMpe3N1cGVyKGUsW10scixudWxsKSx0aGlzLnRleHRET009YSx0aGlzLnRleHQ9c31nZXQgc2l6ZSgpe3JldHVybiB0aGlzLnRleHQubGVuZ3RofWxvY2FsUG9zRnJvbURPTShlLHIpe3JldHVybiBlIT10aGlzLnRleHRET00/dGhpcy5wb3NBdFN0YXJ0KyhyP3RoaXMuc2l6ZTowKTp0aGlzLnBvc0F0U3RhcnQrcn1kb21Gcm9tUG9zKGUpe3JldHVybntub2RlOnRoaXMudGV4dERPTSxvZmZzZXQ6ZX19aWdub3JlTXV0YXRpb24oZSl7cmV0dXJuIGUudHlwZT09PSJjaGFyYWN0ZXJEYXRhIiYmZS50YXJnZXQubm9kZVZhbHVlPT1lLm9sZFZhbHVlfX0sYXc9Y2xhc3MgdCBleHRlbmRzIEI5e3N0YXRpY3tpKHRoaXMsIk1hcmtWaWV3RGVzYyIpfWNvbnN0cnVjdG9yKGUscixhLHMsbil7c3VwZXIoZSxbXSxhLHMpLHRoaXMubWFyaz1yLHRoaXMuc3BlYz1ufXN0YXRpYyBjcmVhdGUoZSxyLGEscyl7bGV0IG49cy5ub2RlVmlld3Nbci50eXBlLm5hbWVdLG89biYmbihyLHMsYSk7cmV0dXJuKCFvfHwhby5kb20pJiYobz1vZC5yZW5kZXJTcGVjKGRvY3VtZW50LHIudHlwZS5zcGVjLnRvRE9NKHIsYSksbnVsbCxyLmF0dHJzKSksbmV3IHQoZSxyLG8uZG9tLG8uY29udGVudERPTXx8by5kb20sbyl9cGFyc2VSdWxlKCl7cmV0dXJuIHRoaXMuZGlydHkmdWR8fHRoaXMubWFyay50eXBlLnNwZWMucmVwYXJzZUluVmlldz9udWxsOnttYXJrOnRoaXMubWFyay50eXBlLm5hbWUsYXR0cnM6dGhpcy5tYXJrLmF0dHJzLGNvbnRlbnRFbGVtZW50OnRoaXMuY29udGVudERPTX19bWF0Y2hlc01hcmsoZSl7cmV0dXJuIHRoaXMuZGlydHkhPXVkJiZ0aGlzLm1hcmsuZXEoZSl9bWFya0RpcnR5KGUscil7aWYoc3VwZXIubWFya0RpcnR5KGUsciksdGhpcy5kaXJ0eSE9cjIpe2xldCBhPXRoaXMucGFyZW50O2Zvcig7IWEubm9kZTspYT1hLnBhcmVudDthLmRpcnR5PHRoaXMuZGlydHkmJihhLmRpcnR5PXRoaXMuZGlydHkpLHRoaXMuZGlydHk9cjJ9fXNsaWNlKGUscixhKXtsZXQgcz10LmNyZWF0ZSh0aGlzLnBhcmVudCx0aGlzLm1hcmssITAsYSksbj10aGlzLmNoaWxkcmVuLG89dGhpcy5zaXplO3I8byYmKG49SW10KG4scixvLGEpKSxlPjAmJihuPUltdChuLDAsZSxhKSk7Zm9yKGxldCBsPTA7bDxuLmxlbmd0aDtsKyspbltsXS5wYXJlbnQ9cztyZXR1cm4gcy5jaGlsZHJlbj1uLHN9aWdub3JlTXV0YXRpb24oZSl7cmV0dXJuIHRoaXMuc3BlYy5pZ25vcmVNdXRhdGlvbj90aGlzLnNwZWMuaWdub3JlTXV0YXRpb24oZSk6c3VwZXIuaWdub3JlTXV0YXRpb24oZSl9ZGVzdHJveSgpe3RoaXMuc3BlYy5kZXN0cm95JiZ0aGlzLnNwZWMuZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX19LFpwPWNsYXNzIHQgZXh0ZW5kcyBCOXtzdGF0aWN7aSh0aGlzLCJOb2RlVmlld0Rlc2MiKX1jb25zdHJ1Y3RvcihlLHIsYSxzLG4sbyxsLGMsZCl7c3VwZXIoZSxbXSxuLG8pLHRoaXMubm9kZT1yLHRoaXMub3V0ZXJEZWNvPWEsdGhpcy5pbm5lckRlY289cyx0aGlzLm5vZGVET009bH1zdGF0aWMgY3JlYXRlKGUscixhLHMsbixvKXtsZXQgbD1uLm5vZGVWaWV3c1tyLnR5cGUubmFtZV0sYyxkPWwmJmwocixuLCgpPT57aWYoIWMpcmV0dXJuIG87aWYoYy5wYXJlbnQpcmV0dXJuIGMucGFyZW50LnBvc0JlZm9yZUNoaWxkKGMpfSxhLHMpLGY9ZCYmZC5kb20scD1kJiZkLmNvbnRlbnRET007aWYoci5pc1RleHQpe2lmKCFmKWY9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoci50ZXh0KTtlbHNlIGlmKGYubm9kZVR5cGUhPTMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRleHQgbXVzdCBiZSByZW5kZXJlZCBhcyBhIERPTSB0ZXh0IG5vZGUiKX1lbHNlIGZ8fCh7ZG9tOmYsY29udGVudERPTTpwfT1vZC5yZW5kZXJTcGVjKGRvY3VtZW50LHIudHlwZS5zcGVjLnRvRE9NKHIpLG51bGwsci5hdHRycykpOyFwJiYhci5pc1RleHQmJmYubm9kZU5hbWUhPSJCUiImJihmLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fChmLmNvbnRlbnRFZGl0YWJsZT0iZmFsc2UiKSxyLnR5cGUuc3BlYy5kcmFnZ2FibGUmJihmLmRyYWdnYWJsZT0hMCkpO2xldCBoPWY7cmV0dXJuIGY9WldyKGYsYSxyKSxkP2M9bmV3ICRtdChlLHIsYSxzLGYscHx8bnVsbCxoLGQsbixvKzEpOnIuaXNUZXh0P25ldyBDZmUoZSxyLGEscyxmLGgsbik6bmV3IHQoZSxyLGEscyxmLHB8fG51bGwsaCxuLG8rMSl9cGFyc2VSdWxlKCl7aWYodGhpcy5ub2RlLnR5cGUuc3BlYy5yZXBhcnNlSW5WaWV3KXJldHVybiBudWxsO2xldCBlPXtub2RlOnRoaXMubm9kZS50eXBlLm5hbWUsYXR0cnM6dGhpcy5ub2RlLmF0dHJzfTtpZih0aGlzLm5vZGUudHlwZS53aGl0ZXNwYWNlPT0icHJlIiYmKGUucHJlc2VydmVXaGl0ZXNwYWNlPSJmdWxsIiksIXRoaXMuY29udGVudERPTSllLmdldENvbnRlbnQ9KCk9PnRoaXMubm9kZS5jb250ZW50O2Vsc2UgaWYoIXRoaXMuY29udGVudExvc3QpZS5jb250ZW50RWxlbWVudD10aGlzLmNvbnRlbnRET007ZWxzZXtmb3IobGV0IHI9dGhpcy5jaGlsZHJlbi5sZW5ndGgtMTtyPj0wO3ItLSl7bGV0IGE9dGhpcy5jaGlsZHJlbltyXTtpZih0aGlzLmRvbS5jb250YWlucyhhLmRvbS5wYXJlbnROb2RlKSl7ZS5jb250ZW50RWxlbWVudD1hLmRvbS5wYXJlbnROb2RlO2JyZWFrfX1lLmNvbnRlbnRFbGVtZW50fHwoZS5nZXRDb250ZW50PSgpPT5KZS5lbXB0eSl9cmV0dXJuIGV9bWF0Y2hlc05vZGUoZSxyLGEpe3JldHVybiB0aGlzLmRpcnR5PT1yMiYmZS5lcSh0aGlzLm5vZGUpJiZfZmUocix0aGlzLm91dGVyRGVjbykmJmEuZXEodGhpcy5pbm5lckRlY28pfWdldCBzaXplKCl7cmV0dXJuIHRoaXMubm9kZS5ub2RlU2l6ZX1nZXQgYm9yZGVyKCl7cmV0dXJuIHRoaXMubm9kZS5pc0xlYWY/MDoxfXVwZGF0ZUNoaWxkcmVuKGUscil7bGV0IGE9dGhpcy5ub2RlLmlubGluZUNvbnRlbnQscz1yLG49ZS5jb21wb3Npbmc/dGhpcy5sb2NhbENvbXBvc2l0aW9uSW5mbyhlLHIpOm51bGwsbz1uJiZuLnBvcz4tMT9uOm51bGwsbD1uJiZuLnBvczwwLGM9bmV3IEVtdCh0aGlzLG8mJm8ubm9kZSxlKTtNUGEodGhpcy5ub2RlLHRoaXMuaW5uZXJEZWNvLChkLGYscCk9PntkLnNwZWMubWFya3M/Yy5zeW5jVG9NYXJrcyhkLnNwZWMubWFya3MsYSxlLGYpOmQudHlwZS5zaWRlPj0wJiYhcCYmYy5zeW5jVG9NYXJrcyhmPT10aGlzLm5vZGUuY2hpbGRDb3VudD9oYS5ub25lOnRoaXMubm9kZS5jaGlsZChmKS5tYXJrcyxhLGUsZiksYy5wbGFjZVdpZGdldChkLGUscyl9LChkLGYscCxoKT0+e2Muc3luY1RvTWFya3MoZC5tYXJrcyxhLGUsaCk7bGV0IG07Yy5maW5kTm9kZU1hdGNoKGQsZixwLGgpfHxsJiZlLnN0YXRlLnNlbGVjdGlvbi5mcm9tPnMmJmUuc3RhdGUuc2VsZWN0aW9uLnRvPHMrZC5ub2RlU2l6ZSYmKG09Yy5maW5kSW5kZXhXaXRoQ2hpbGQobi5ub2RlKSk+LTEmJmMudXBkYXRlTm9kZUF0KGQsZixwLG0sZSl8fGMudXBkYXRlTmV4dE5vZGUoZCxmLHAsZSxoLHMpfHxjLmFkZE5vZGUoZCxmLHAsZSxzKSxzKz1kLm5vZGVTaXplfSksYy5zeW5jVG9NYXJrcyhbXSxhLGUsMCksdGhpcy5ub2RlLmlzVGV4dGJsb2NrJiZjLmFkZFRleHRibG9ja0hhY2tzKCksYy5kZXN0cm95UmVzdCgpLChjLmNoYW5nZWR8fHRoaXMuZGlydHk9PUY5KSYmKG8mJnRoaXMucHJvdGVjdExvY2FsQ29tcG9zaXRpb24oZSxvKSxZV3IodGhpcy5jb250ZW50RE9NLHRoaXMuY2hpbGRyZW4sZSksdHcmJkNQYSh0aGlzLmRvbSkpfWxvY2FsQ29tcG9zaXRpb25JbmZvKGUscil7bGV0e2Zyb206YSx0bzpzfT1lLnN0YXRlLnNlbGVjdGlvbjtpZighKGUuc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgZXIpfHxhPHJ8fHM+cit0aGlzLm5vZGUuY29udGVudC5zaXplKXJldHVybiBudWxsO2xldCBuPWUuaW5wdXQuY29tcG9zaXRpb25Ob2RlO2lmKCFufHwhdGhpcy5kb20uY29udGFpbnMobi5wYXJlbnROb2RlKSlyZXR1cm4gbnVsbDtpZih0aGlzLm5vZGUuaW5saW5lQ29udGVudCl7bGV0IG89bi5ub2RlVmFsdWUsbD16UGEodGhpcy5ub2RlLmNvbnRlbnQsbyxhLXIscy1yKTtyZXR1cm4gbDwwP251bGw6e25vZGU6bixwb3M6bCx0ZXh0Om99fWVsc2UgcmV0dXJue25vZGU6bixwb3M6LTEsdGV4dDoiIn19cHJvdGVjdExvY2FsQ29tcG9zaXRpb24oZSx7bm9kZTpyLHBvczphLHRleHQ6c30pe2lmKHRoaXMuZ2V0RGVzYyhyKSlyZXR1cm47bGV0IG49cjtmb3IoO24ucGFyZW50Tm9kZSE9dGhpcy5jb250ZW50RE9NO249bi5wYXJlbnROb2RlKXtmb3IoO24ucHJldmlvdXNTaWJsaW5nOyluLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobi5wcmV2aW91c1NpYmxpbmcpO2Zvcig7bi5uZXh0U2libGluZzspbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4ubmV4dFNpYmxpbmcpO24ucG1WaWV3RGVzYyYmKG4ucG1WaWV3RGVzYz12b2lkIDApfWxldCBvPW5ldyBEbXQodGhpcyxuLHIscyk7ZS5pbnB1dC5jb21wb3NpdGlvbk5vZGVzLnB1c2gobyksdGhpcy5jaGlsZHJlbj1JbXQodGhpcy5jaGlsZHJlbixhLGErcy5sZW5ndGgsZSxvKX11cGRhdGUoZSxyLGEscyl7cmV0dXJuIHRoaXMuZGlydHk9PXVkfHwhZS5zYW1lTWFya3VwKHRoaXMubm9kZSk/ITE6KHRoaXMudXBkYXRlSW5uZXIoZSxyLGEscyksITApfXVwZGF0ZUlubmVyKGUscixhLHMpe3RoaXMudXBkYXRlT3V0ZXJEZWNvKHIpLHRoaXMubm9kZT1lLHRoaXMuaW5uZXJEZWNvPWEsdGhpcy5jb250ZW50RE9NJiZ0aGlzLnVwZGF0ZUNoaWxkcmVuKHMsdGhpcy5wb3NBdFN0YXJ0KSx0aGlzLmRpcnR5PXIyfXVwZGF0ZU91dGVyRGVjbyhlKXtpZihfZmUoZSx0aGlzLm91dGVyRGVjbykpcmV0dXJuO2xldCByPXRoaXMubm9kZURPTS5ub2RlVHlwZSE9MSxhPXRoaXMuZG9tO3RoaXMuZG9tPUtXcih0aGlzLmRvbSx0aGlzLm5vZGVET00sQW10KHRoaXMub3V0ZXJEZWNvLHRoaXMubm9kZSxyKSxBbXQoZSx0aGlzLm5vZGUscikpLHRoaXMuZG9tIT1hJiYoYS5wbVZpZXdEZXNjPXZvaWQgMCx0aGlzLmRvbS5wbVZpZXdEZXNjPXRoaXMpLHRoaXMub3V0ZXJEZWNvPWV9c2VsZWN0Tm9kZSgpe3RoaXMubm9kZURPTS5ub2RlVHlwZT09MSYmKHRoaXMubm9kZURPTS5jbGFzc0xpc3QuYWRkKCJQcm9zZU1pcnJvci1zZWxlY3RlZG5vZGUiKSwodGhpcy5jb250ZW50RE9NfHwhdGhpcy5ub2RlLnR5cGUuc3BlYy5kcmFnZ2FibGUpJiYodGhpcy5ub2RlRE9NLmRyYWdnYWJsZT0hMCkpfWRlc2VsZWN0Tm9kZSgpe3RoaXMubm9kZURPTS5ub2RlVHlwZT09MSYmKHRoaXMubm9kZURPTS5jbGFzc0xpc3QucmVtb3ZlKCJQcm9zZU1pcnJvci1zZWxlY3RlZG5vZGUiKSwodGhpcy5jb250ZW50RE9NfHwhdGhpcy5ub2RlLnR5cGUuc3BlYy5kcmFnZ2FibGUpJiZ0aGlzLm5vZGVET00ucmVtb3ZlQXR0cmlidXRlKCJkcmFnZ2FibGUiKSl9Z2V0IGRvbUF0b20oKXtyZXR1cm4gdGhpcy5ub2RlLmlzQXRvbX19O2koR1dyLCJkb2NWaWV3RGVzYyIpO0NmZT1jbGFzcyB0IGV4dGVuZHMgWnB7c3RhdGlje2kodGhpcywiVGV4dFZpZXdEZXNjIil9Y29uc3RydWN0b3IoZSxyLGEscyxuLG8sbCl7c3VwZXIoZSxyLGEscyxuLG51bGwsbyxsLDApfXBhcnNlUnVsZSgpe2xldCBlPXRoaXMubm9kZURPTS5wYXJlbnROb2RlO2Zvcig7ZSYmZSE9dGhpcy5kb20mJiFlLnBtSXNEZWNvOyllPWUucGFyZW50Tm9kZTtyZXR1cm57c2tpcDplfHwhMH19dXBkYXRlKGUscixhLHMpe3JldHVybiB0aGlzLmRpcnR5PT11ZHx8dGhpcy5kaXJ0eSE9cjImJiF0aGlzLmluUGFyZW50KCl8fCFlLnNhbWVNYXJrdXAodGhpcy5ub2RlKT8hMToodGhpcy51cGRhdGVPdXRlckRlY28ociksKHRoaXMuZGlydHkhPXIyfHxlLnRleHQhPXRoaXMubm9kZS50ZXh0KSYmZS50ZXh0IT10aGlzLm5vZGVET00ubm9kZVZhbHVlJiYodGhpcy5ub2RlRE9NLm5vZGVWYWx1ZT1lLnRleHQscy50cmFja1dyaXRlcz09dGhpcy5ub2RlRE9NJiYocy50cmFja1dyaXRlcz1udWxsKSksdGhpcy5ub2RlPWUsdGhpcy5kaXJ0eT1yMiwhMCl9aW5QYXJlbnQoKXtsZXQgZT10aGlzLnBhcmVudC5jb250ZW50RE9NO2ZvcihsZXQgcj10aGlzLm5vZGVET007cjtyPXIucGFyZW50Tm9kZSlpZihyPT1lKXJldHVybiEwO3JldHVybiExfWRvbUZyb21Qb3MoZSl7cmV0dXJue25vZGU6dGhpcy5ub2RlRE9NLG9mZnNldDplfX1sb2NhbFBvc0Zyb21ET00oZSxyLGEpe3JldHVybiBlPT10aGlzLm5vZGVET00/dGhpcy5wb3NBdFN0YXJ0K01hdGgubWluKHIsdGhpcy5ub2RlLnRleHQubGVuZ3RoKTpzdXBlci5sb2NhbFBvc0Zyb21ET00oZSxyLGEpfWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiBlLnR5cGUhPSJjaGFyYWN0ZXJEYXRhIiYmZS50eXBlIT0ic2VsZWN0aW9uIn1zbGljZShlLHIsYSl7bGV0IHM9dGhpcy5ub2RlLmN1dChlLHIpLG49ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocy50ZXh0KTtyZXR1cm4gbmV3IHQodGhpcy5wYXJlbnQscyx0aGlzLm91dGVyRGVjbyx0aGlzLmlubmVyRGVjbyxuLG4sYSl9bWFya0RpcnR5KGUscil7c3VwZXIubWFya0RpcnR5KGUsciksdGhpcy5kb20hPXRoaXMubm9kZURPTSYmKGU9PTB8fHI9PXRoaXMubm9kZURPTS5ub2RlVmFsdWUubGVuZ3RoKSYmKHRoaXMuZGlydHk9dWQpfWdldCBkb21BdG9tKCl7cmV0dXJuITF9aXNUZXh0KGUpe3JldHVybiB0aGlzLm5vZGUudGV4dD09ZX19LHpmZT1jbGFzcyBleHRlbmRzIEI5e3N0YXRpY3tpKHRoaXMsIlRyYWlsaW5nSGFja1ZpZXdEZXNjIil9cGFyc2VSdWxlKCl7cmV0dXJue2lnbm9yZTohMH19bWF0Y2hlc0hhY2soZSl7cmV0dXJuIHRoaXMuZGlydHk9PXIyJiZ0aGlzLmRvbS5ub2RlTmFtZT09ZX1nZXQgZG9tQXRvbSgpe3JldHVybiEwfWdldCBpZ25vcmVGb3JDb29yZHMoKXtyZXR1cm4gdGhpcy5kb20ubm9kZU5hbWU9PSJJTUcifX0sJG10PWNsYXNzIGV4dGVuZHMgWnB7c3RhdGlje2kodGhpcywiQ3VzdG9tTm9kZVZpZXdEZXNjIil9Y29uc3RydWN0b3IoZSxyLGEscyxuLG8sbCxjLGQsZil7c3VwZXIoZSxyLGEscyxuLG8sbCxkLGYpLHRoaXMuc3BlYz1jfXVwZGF0ZShlLHIsYSxzKXtpZih0aGlzLmRpcnR5PT11ZClyZXR1cm4hMTtpZih0aGlzLnNwZWMudXBkYXRlJiYodGhpcy5ub2RlLnR5cGU9PWUudHlwZXx8dGhpcy5zcGVjLm11bHRpVHlwZSkpe2xldCBuPXRoaXMuc3BlYy51cGRhdGUoZSxyLGEpO3JldHVybiBuJiZ0aGlzLnVwZGF0ZUlubmVyKGUscixhLHMpLG59ZWxzZSByZXR1cm4hdGhpcy5jb250ZW50RE9NJiYhZS5pc0xlYWY/ITE6c3VwZXIudXBkYXRlKGUscixhLHMpfXNlbGVjdE5vZGUoKXt0aGlzLnNwZWMuc2VsZWN0Tm9kZT90aGlzLnNwZWMuc2VsZWN0Tm9kZSgpOnN1cGVyLnNlbGVjdE5vZGUoKX1kZXNlbGVjdE5vZGUoKXt0aGlzLnNwZWMuZGVzZWxlY3ROb2RlP3RoaXMuc3BlYy5kZXNlbGVjdE5vZGUoKTpzdXBlci5kZXNlbGVjdE5vZGUoKX1zZXRTZWxlY3Rpb24oZSxyLGEscyl7dGhpcy5zcGVjLnNldFNlbGVjdGlvbj90aGlzLnNwZWMuc2V0U2VsZWN0aW9uKGUscixhLnJvb3QpOnN1cGVyLnNldFNlbGVjdGlvbihlLHIsYSxzKX1kZXN0cm95KCl7dGhpcy5zcGVjLmRlc3Ryb3kmJnRoaXMuc3BlYy5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfXN0b3BFdmVudChlKXtyZXR1cm4gdGhpcy5zcGVjLnN0b3BFdmVudD90aGlzLnNwZWMuc3RvcEV2ZW50KGUpOiExfWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiB0aGlzLnNwZWMuaWdub3JlTXV0YXRpb24/dGhpcy5zcGVjLmlnbm9yZU11dGF0aW9uKGUpOnN1cGVyLmlnbm9yZU11dGF0aW9uKGUpfX07aShZV3IsInJlbmRlckRlc2NzIik7RnRlPWkoZnVuY3Rpb24odCl7dCYmKHRoaXMubm9kZU5hbWU9dCl9LCJPdXRlckRlY29MZXZlbCIpO0Z0ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShudWxsKTtIOT1bbmV3IEZ0ZV07aShBbXQsImNvbXB1dGVPdXRlckRlY28iKTtpKEtXciwicGF0Y2hPdXRlckRlY28iKTtpKHdQYSwicGF0Y2hBdHRyaWJ1dGVzIik7aShaV3IsImFwcGx5T3V0ZXJEZWNvIik7aShfZmUsInNhbWVPdXRlckRlY28iKTtpKFFXciwicm0iKTtFbXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiVmlld1RyZWVVcGRhdGVyIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMubG9jaz1yLHRoaXMudmlldz1hLHRoaXMuaW5kZXg9MCx0aGlzLnN0YWNrPVtdLHRoaXMuY2hhbmdlZD0hMSx0aGlzLnRvcD1lLHRoaXMucHJlTWF0Y2g9a1BhKGUubm9kZS5jb250ZW50LGUpfWRlc3Ryb3lCZXR3ZWVuKGUscil7aWYoZSE9cil7Zm9yKGxldCBhPWU7YTxyO2ErKyl0aGlzLnRvcC5jaGlsZHJlblthXS5kZXN0cm95KCk7dGhpcy50b3AuY2hpbGRyZW4uc3BsaWNlKGUsci1lKSx0aGlzLmNoYW5nZWQ9ITB9fWRlc3Ryb3lSZXN0KCl7dGhpcy5kZXN0cm95QmV0d2Vlbih0aGlzLmluZGV4LHRoaXMudG9wLmNoaWxkcmVuLmxlbmd0aCl9c3luY1RvTWFya3MoZSxyLGEscyl7bGV0IG49MCxvPXRoaXMuc3RhY2subGVuZ3RoPj4xLGw9TWF0aC5taW4obyxlLmxlbmd0aCk7Zm9yKDtuPGwmJihuPT1vLTE/dGhpcy50b3A6dGhpcy5zdGFja1tuKzE8PDFdKS5tYXRjaGVzTWFyayhlW25dKSYmZVtuXS50eXBlLnNwZWMuc3Bhbm5pbmchPT0hMTspbisrO2Zvcig7bjxvOyl0aGlzLmRlc3Ryb3lSZXN0KCksdGhpcy50b3AuZGlydHk9cjIsdGhpcy5pbmRleD10aGlzLnN0YWNrLnBvcCgpLHRoaXMudG9wPXRoaXMuc3RhY2sucG9wKCksby0tO2Zvcig7bzxlLmxlbmd0aDspe3RoaXMuc3RhY2sucHVzaCh0aGlzLnRvcCx0aGlzLmluZGV4KzEpO2xldCBjPS0xLGQ9dGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoO3M8dGhpcy5wcmVNYXRjaC5pbmRleCYmKGQ9TWF0aC5taW4odGhpcy5pbmRleCszLGQpKTtmb3IobGV0IGY9dGhpcy5pbmRleDtmPGQ7ZisrKXtsZXQgcD10aGlzLnRvcC5jaGlsZHJlbltmXTtpZihwLm1hdGNoZXNNYXJrKGVbb10pJiYhdGhpcy5pc0xvY2tlZChwLmRvbSkpe2M9ZjticmVha319aWYoYz4tMSljPnRoaXMuaW5kZXgmJih0aGlzLmNoYW5nZWQ9ITAsdGhpcy5kZXN0cm95QmV0d2Vlbih0aGlzLmluZGV4LGMpKSx0aGlzLnRvcD10aGlzLnRvcC5jaGlsZHJlblt0aGlzLmluZGV4XTtlbHNle2xldCBmPWF3LmNyZWF0ZSh0aGlzLnRvcCxlW29dLHIsYSk7dGhpcy50b3AuY2hpbGRyZW4uc3BsaWNlKHRoaXMuaW5kZXgsMCxmKSx0aGlzLnRvcD1mLHRoaXMuY2hhbmdlZD0hMH10aGlzLmluZGV4PTAsbysrfX1maW5kTm9kZU1hdGNoKGUscixhLHMpe2xldCBuPS0xLG87aWYocz49dGhpcy5wcmVNYXRjaC5pbmRleCYmKG89dGhpcy5wcmVNYXRjaC5tYXRjaGVzW3MtdGhpcy5wcmVNYXRjaC5pbmRleF0pLnBhcmVudD09dGhpcy50b3AmJm8ubWF0Y2hlc05vZGUoZSxyLGEpKW49dGhpcy50b3AuY2hpbGRyZW4uaW5kZXhPZihvLHRoaXMuaW5kZXgpO2Vsc2UgZm9yKGxldCBsPXRoaXMuaW5kZXgsYz1NYXRoLm1pbih0aGlzLnRvcC5jaGlsZHJlbi5sZW5ndGgsbCs1KTtsPGM7bCsrKXtsZXQgZD10aGlzLnRvcC5jaGlsZHJlbltsXTtpZihkLm1hdGNoZXNOb2RlKGUscixhKSYmIXRoaXMucHJlTWF0Y2gubWF0Y2hlZC5oYXMoZCkpe249bDticmVha319cmV0dXJuIG48MD8hMToodGhpcy5kZXN0cm95QmV0d2Vlbih0aGlzLmluZGV4LG4pLHRoaXMuaW5kZXgrKywhMCl9dXBkYXRlTm9kZUF0KGUscixhLHMsbil7bGV0IG89dGhpcy50b3AuY2hpbGRyZW5bc107cmV0dXJuIG8uZGlydHk9PXVkJiZvLmRvbT09by5jb250ZW50RE9NJiYoby5kaXJ0eT1GOSksby51cGRhdGUoZSxyLGEsbik/KHRoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCxzKSx0aGlzLmluZGV4KyssITApOiExfWZpbmRJbmRleFdpdGhDaGlsZChlKXtmb3IoOzspe2xldCByPWUucGFyZW50Tm9kZTtpZighcilyZXR1cm4tMTtpZihyPT10aGlzLnRvcC5jb250ZW50RE9NKXtsZXQgYT1lLnBtVmlld0Rlc2M7aWYoYSl7Zm9yKGxldCBzPXRoaXMuaW5kZXg7czx0aGlzLnRvcC5jaGlsZHJlbi5sZW5ndGg7cysrKWlmKHRoaXMudG9wLmNoaWxkcmVuW3NdPT1hKXJldHVybiBzfXJldHVybi0xfWU9cn19dXBkYXRlTmV4dE5vZGUoZSxyLGEscyxuLG8pe2ZvcihsZXQgbD10aGlzLmluZGV4O2w8dGhpcy50b3AuY2hpbGRyZW4ubGVuZ3RoO2wrKyl7bGV0IGM9dGhpcy50b3AuY2hpbGRyZW5bbF07aWYoYyBpbnN0YW5jZW9mIFpwKXtsZXQgZD10aGlzLnByZU1hdGNoLm1hdGNoZWQuZ2V0KGMpO2lmKGQhPW51bGwmJmQhPW4pcmV0dXJuITE7bGV0IGY9Yy5kb20scCxoPXRoaXMuaXNMb2NrZWQoZikmJiEoZS5pc1RleHQmJmMubm9kZSYmYy5ub2RlLmlzVGV4dCYmYy5ub2RlRE9NLm5vZGVWYWx1ZT09ZS50ZXh0JiZjLmRpcnR5IT11ZCYmX2ZlKHIsYy5vdXRlckRlY28pKTtpZighaCYmYy51cGRhdGUoZSxyLGEscykpcmV0dXJuIHRoaXMuZGVzdHJveUJldHdlZW4odGhpcy5pbmRleCxsKSxjLmRvbSE9ZiYmKHRoaXMuY2hhbmdlZD0hMCksdGhpcy5pbmRleCsrLCEwO2lmKCFoJiYocD10aGlzLnJlY3JlYXRlV3JhcHBlcihjLGUscixhLHMsbykpKXJldHVybiB0aGlzLmRlc3Ryb3lCZXR3ZWVuKHRoaXMuaW5kZXgsbCksdGhpcy50b3AuY2hpbGRyZW5bdGhpcy5pbmRleF09cCxwLmNvbnRlbnRET00mJihwLmRpcnR5PUY5LHAudXBkYXRlQ2hpbGRyZW4ocyxvKzEpLHAuZGlydHk9cjIpLHRoaXMuY2hhbmdlZD0hMCx0aGlzLmluZGV4KyssITA7YnJlYWt9fXJldHVybiExfXJlY3JlYXRlV3JhcHBlcihlLHIsYSxzLG4sbyl7aWYoZS5kaXJ0eXx8ci5pc0F0b218fCFlLmNoaWxkcmVuLmxlbmd0aHx8IWUubm9kZS5jb250ZW50LmVxKHIuY29udGVudCl8fCFfZmUoYSxlLm91dGVyRGVjbyl8fCFzLmVxKGUuaW5uZXJEZWNvKSlyZXR1cm4gbnVsbDtsZXQgbD1acC5jcmVhdGUodGhpcy50b3AscixhLHMsbixvKTtpZihsLmNvbnRlbnRET00pe2wuY2hpbGRyZW49ZS5jaGlsZHJlbixlLmNoaWxkcmVuPVtdO2ZvcihsZXQgYyBvZiBsLmNoaWxkcmVuKWMucGFyZW50PWx9cmV0dXJuIGUuZGVzdHJveSgpLGx9YWRkTm9kZShlLHIsYSxzLG4pe2xldCBvPVpwLmNyZWF0ZSh0aGlzLnRvcCxlLHIsYSxzLG4pO28uY29udGVudERPTSYmby51cGRhdGVDaGlsZHJlbihzLG4rMSksdGhpcy50b3AuY2hpbGRyZW4uc3BsaWNlKHRoaXMuaW5kZXgrKywwLG8pLHRoaXMuY2hhbmdlZD0hMH1wbGFjZVdpZGdldChlLHIsYSl7bGV0IHM9dGhpcy5pbmRleDx0aGlzLnRvcC5jaGlsZHJlbi5sZW5ndGg/dGhpcy50b3AuY2hpbGRyZW5bdGhpcy5pbmRleF06bnVsbDtpZihzJiZzLm1hdGNoZXNXaWRnZXQoZSkmJihlPT1zLndpZGdldHx8IXMud2lkZ2V0LnR5cGUudG9ET00ucGFyZW50Tm9kZSkpdGhpcy5pbmRleCsrO2Vsc2V7bGV0IG49bmV3IE1mZSh0aGlzLnRvcCxlLHIsYSk7dGhpcy50b3AuY2hpbGRyZW4uc3BsaWNlKHRoaXMuaW5kZXgrKywwLG4pLHRoaXMuY2hhbmdlZD0hMH19YWRkVGV4dGJsb2NrSGFja3MoKXtsZXQgZT10aGlzLnRvcC5jaGlsZHJlblt0aGlzLmluZGV4LTFdLHI9dGhpcy50b3A7Zm9yKDtlIGluc3RhbmNlb2YgYXc7KXI9ZSxlPXIuY2hpbGRyZW5bci5jaGlsZHJlbi5sZW5ndGgtMV07KCFlfHwhKGUgaW5zdGFuY2VvZiBDZmUpfHwvXG4kLy50ZXN0KGUubm9kZS50ZXh0KXx8dGhpcy52aWV3LnJlcXVpcmVzR2Vja29IYWNrTm9kZSYmL1xzJC8udGVzdChlLm5vZGUudGV4dCkpJiYoKENvfHxObikmJmUmJmUuZG9tLmNvbnRlbnRFZGl0YWJsZT09ImZhbHNlIiYmdGhpcy5hZGRIYWNrTm9kZSgiSU1HIixyKSx0aGlzLmFkZEhhY2tOb2RlKCJCUiIsdGhpcy50b3ApKX1hZGRIYWNrTm9kZShlLHIpe2lmKHI9PXRoaXMudG9wJiZ0aGlzLmluZGV4PHIuY2hpbGRyZW4ubGVuZ3RoJiZyLmNoaWxkcmVuW3RoaXMuaW5kZXhdLm1hdGNoZXNIYWNrKGUpKXRoaXMuaW5kZXgrKztlbHNle2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZSk7ZT09IklNRyImJihhLmNsYXNzTmFtZT0iUHJvc2VNaXJyb3Itc2VwYXJhdG9yIixhLmFsdD0iIiksZT09IkJSIiYmKGEuY2xhc3NOYW1lPSJQcm9zZU1pcnJvci10cmFpbGluZ0JyZWFrIik7bGV0IHM9bmV3IHpmZSh0aGlzLnRvcCxbXSxhLG51bGwpO3IhPXRoaXMudG9wP3IuY2hpbGRyZW4ucHVzaChzKTpyLmNoaWxkcmVuLnNwbGljZSh0aGlzLmluZGV4KyssMCxzKSx0aGlzLmNoYW5nZWQ9ITB9fWlzTG9ja2VkKGUpe3JldHVybiB0aGlzLmxvY2smJihlPT10aGlzLmxvY2t8fGUubm9kZVR5cGU9PTEmJmUuY29udGFpbnModGhpcy5sb2NrLnBhcmVudE5vZGUpKX19O2koa1BhLCJwcmVNYXRjaCIpO2koU1BhLCJjb21wYXJlU2lkZSIpO2koTVBhLCJpdGVyRGVjbyIpO2koQ1BhLCJpb3NIYWNrcyIpO2koelBhLCJmaW5kVGV4dEluRnJhZ21lbnQiKTtpKEltdCwicmVwbGFjZU5vZGVzIik7aShQbXQsInNlbGVjdGlvbkZyb21ET00iKTtpKFhXciwiZWRpdG9yT3duc1NlbGVjdGlvbiIpO2kobzMsInNlbGVjdGlvblRvRE9NIik7SldyPUNvfHxObiYmRVdyPDYzO2koZUdyLCJ0ZW1wb3JhcmlseUVkaXRhYmxlTmVhciIpO2koTm10LCJzZXRFZGl0YWJsZSIpO2kodEdyLCJyZXNldEVkaXRhYmxlIik7aShfUGEsInJlbW92ZUNsYXNzT25TZWxlY3Rpb25DaGFuZ2UiKTtpKFRQYSwic2VsZWN0Q3Vyc29yV3JhcHBlciIpO2kockdyLCJzeW5jTm9kZVNlbGVjdGlvbiIpO2koYUdyLCJjbGVhck5vZGVTZWxlY3Rpb24iKTtpKE9tdCwic2VsZWN0aW9uQmV0d2VlbiIpO2koaUdyLCJoYXNGb2N1c0FuZFNlbGVjdGlvbiIpO2koc0dyLCJoYXNTZWxlY3Rpb24iKTtpKExQYSwiYW5jaG9ySW5SaWdodFBsYWNlIik7aShSbXQsIm1vdmVTZWxlY3Rpb25CbG9jayIpO2koUXAsImFwcGx5Iik7aShuR3IsInNlbGVjdEhvcml6b250YWxseSIpO2koVGZlLCJub2RlTGVuIik7aShCdGUsImlzSWdub3JhYmxlIik7aShpdywic2tpcElnbm9yZWROb2RlcyIpO2koRFBhLCJza2lwSWdub3JlZE5vZGVzQmVmb3JlIik7aSgkUGEsInNraXBJZ25vcmVkTm9kZXNBZnRlciIpO2kob0dyLCJpc0Jsb2NrTm9kZSIpO2koQVBhLCJ0ZXh0Tm9kZUFmdGVyIik7aShFUGEsInRleHROb2RlQmVmb3JlIik7aShGbXQsInNldFNlbEZvY3VzIik7aShsR3IsImZpbmREaXJlY3Rpb24iKTtpKGNHciwic2VsZWN0VmVydGljYWxseSIpO2koZEdyLCJzdG9wTmF0aXZlSG9yaXpvbnRhbERlbGV0ZSIpO2kodUdyLCJzd2l0Y2hFZGl0YWJsZSIpO2koSVBhLCJzYWZhcmlEb3duQXJyb3dCdWciKTtpKFBQYSwiZ2V0TW9kcyIpO2koTlBhLCJjYXB0dXJlS2V5RG93biIpO2koQm10LCJzZXJpYWxpemVGb3JDbGlwYm9hcmQiKTtpKEhtdCwicGFyc2VGcm9tQ2xpcGJvYXJkIik7T1BhPS9eKGF8YWJicnxhY3JvbnltfGJ8Y2l0ZXxjb2RlfGRlbHxlbXxpfGluc3xrYmR8bGFiZWx8b3V0cHV0fHF8cnVieXxzfHNhbXB8c3BhbnxzdHJvbmd8c3VifHN1cHx0aW1lfHV8dHR8dmFyKSQvaTtpKFJQYSwibm9ybWFsaXplU2libGluZ3MiKTtpKHBHciwid2l0aFdyYXBwZXJzIik7aShmR3IsImFkZFRvU2libGluZyIpO2koaEdyLCJjbG9zZVJpZ2h0Iik7aShxbXQsImNsb3NlUmFuZ2UiKTtpKG1HciwiY2xvc2VTbGljZSIpO2dHcj17dGhlYWQ6WyJ0YWJsZSJdLHRib2R5OlsidGFibGUiXSx0Zm9vdDpbInRhYmxlIl0sY2FwdGlvbjpbInRhYmxlIl0sY29sZ3JvdXA6WyJ0YWJsZSJdLGNvbDpbInRhYmxlIiwiY29sZ3JvdXAiXSx0cjpbInRhYmxlIiwidGJvZHkiXSx0ZDpbInRhYmxlIiwidGJvZHkiLCJ0ciJdLHRoOlsidGFibGUiLCJ0Ym9keSIsInRyIl19LGJHcj1udWxsO2koeEdyLCJkZXRhY2hlZERvYyIpO1ZtdD1udWxsO2koRlBhLCJtYXliZVdyYXBUcnVzdGVkIik7aShCUGEsInJlYWRIVE1MIik7aShIUGEsInJlc3RvcmVSZXBsYWNlZFNwYWNlcyIpO2kocVBhLCJhZGRDb250ZXh0Iik7Vm89e30sam89e30sVlBhPXt0b3VjaHN0YXJ0OiEwLHRvdWNobW92ZTohMH0sam10PWNsYXNze3N0YXRpY3tpKHRoaXMsIklucHV0U3RhdGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuc2hpZnRLZXk9ITEsdGhpcy5tb3VzZURvd249bnVsbCx0aGlzLmxhc3RLZXlDb2RlPW51bGwsdGhpcy5sYXN0S2V5Q29kZVRpbWU9MCx0aGlzLmxhc3RDbGljaz17dGltZTowLHg6MCx5OjAsdHlwZToiIixidXR0b246MH0sdGhpcy5sYXN0U2VsZWN0aW9uT3JpZ2luPW51bGwsdGhpcy5sYXN0U2VsZWN0aW9uVGltZT0wLHRoaXMubGFzdElPU0VudGVyPTAsdGhpcy5sYXN0SU9TRW50ZXJGYWxsYmFja1RpbWVvdXQ9LTEsdGhpcy5sYXN0Rm9jdXM9MCx0aGlzLmxhc3RUb3VjaD0wLHRoaXMubGFzdENocm9tZURlbGV0ZT0wLHRoaXMuY29tcG9zaW5nPSExLHRoaXMuY29tcG9zaXRpb25Ob2RlPW51bGwsdGhpcy5jb21wb3NpbmdUaW1lb3V0PS0xLHRoaXMuY29tcG9zaXRpb25Ob2Rlcz1bXSx0aGlzLmNvbXBvc2l0aW9uRW5kZWRBdD0tMmU4LHRoaXMuY29tcG9zaXRpb25JRD0xLHRoaXMuYmFkU2FmYXJpQ29tcG9zaXRpb249ITEsdGhpcy5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzPTAsdGhpcy5kb21DaGFuZ2VDb3VudD0wLHRoaXMuZXZlbnRIYW5kbGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuaGlkZVNlbGVjdGlvbkd1YXJkPW51bGx9fTtpKGpQYSwiaW5pdElucHV0Iik7aShYcCwic2V0U2VsZWN0aW9uT3JpZ2luIik7aShVUGEsImRlc3Ryb3lJbnB1dCIpO2koVW10LCJlbnN1cmVMaXN0ZW5lcnMiKTtpKFdtdCwicnVuQ3VzdG9tSGFuZGxlciIpO2koV1BhLCJldmVudEJlbG9uZ3NUb1ZpZXciKTtpKEdQYSwiZGlzcGF0Y2hFdmVudCIpLGpvLmtleWRvd249KHQsZSk9PntsZXQgcj1lO2lmKHQuaW5wdXQuc2hpZnRLZXk9ci5rZXlDb2RlPT0xNnx8ci5zaGlmdEtleSwheUdyKHQscikmJih0LmlucHV0Lmxhc3RLZXlDb2RlPXIua2V5Q29kZSx0LmlucHV0Lmxhc3RLZXlDb2RlVGltZT1EYXRlLm5vdygpLCEoczMmJk5uJiZyLmtleUNvZGU9PTEzKSkpaWYoci5rZXlDb2RlIT0yMjkmJnQuZG9tT2JzZXJ2ZXIuZm9yY2VGbHVzaCgpLHR3JiZyLmtleUNvZGU9PTEzJiYhci5jdHJsS2V5JiYhci5hbHRLZXkmJiFyLm1ldGFLZXkpe2xldCBhPURhdGUubm93KCk7dC5pbnB1dC5sYXN0SU9TRW50ZXI9YSx0LmlucHV0Lmxhc3RJT1NFbnRlckZhbGxiYWNrVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dC5pbnB1dC5sYXN0SU9TRW50ZXI9PWEmJih0LnNvbWVQcm9wKCJoYW5kbGVLZXlEb3duIixzPT5zKHQsUjkoMTMsIkVudGVyIikpKSx0LmlucHV0Lmxhc3RJT1NFbnRlcj0wKX0sMjAwKX1lbHNlIHQuc29tZVByb3AoImhhbmRsZUtleURvd24iLGE9PmEodCxyKSl8fE5QYSh0LHIpP3IucHJldmVudERlZmF1bHQoKTpYcCh0LCJrZXkiKX0sam8ua2V5dXA9KHQsZSk9PntlLmtleUNvZGU9PTE2JiYodC5pbnB1dC5zaGlmdEtleT0hMSl9LGpvLmtleXByZXNzPSh0LGUpPT57bGV0IHI9ZTtpZih5R3IodCxyKXx8IXIuY2hhckNvZGV8fHIuY3RybEtleSYmIXIuYWx0S2V5fHx0MiYmci5tZXRhS2V5KXJldHVybjtpZih0LnNvbWVQcm9wKCJoYW5kbGVLZXlQcmVzcyIscz0+cyh0LHIpKSl7ci5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1sZXQgYT10LnN0YXRlLnNlbGVjdGlvbjtpZighKGEgaW5zdGFuY2VvZiBlcil8fCFhLiRmcm9tLnNhbWVQYXJlbnQoYS4kdG8pKXtsZXQgcz1TdHJpbmcuZnJvbUNoYXJDb2RlKHIuY2hhckNvZGUpLG49aSgoKT0+dC5zdGF0ZS50ci5pbnNlcnRUZXh0KHMpLnNjcm9sbEludG9WaWV3KCksImRlZmx0Iik7IS9bXHJcbl0vLnRlc3QocykmJiF0LnNvbWVQcm9wKCJoYW5kbGVUZXh0SW5wdXQiLG89Pm8odCxhLiRmcm9tLnBvcyxhLiR0by5wb3MscyxuKSkmJnQuZGlzcGF0Y2gobigpKSxyLnByZXZlbnREZWZhdWx0KCl9fTtpKExmZSwiZXZlbnRDb29yZHMiKTtpKFlQYSwiaXNOZWFyIik7aShHbXQsInJ1bkhhbmRsZXJPbkNvbnRleHQiKTtpKHN3LCJ1cGRhdGVTZWxlY3Rpb24iKTtpKEtQYSwic2VsZWN0Q2xpY2tlZExlYWYiKTtpKFpQYSwic2VsZWN0Q2xpY2tlZE5vZGUiKTtpKFFQYSwiaGFuZGxlU2luZ2xlQ2xpY2siKTtpKFhQYSwiaGFuZGxlRG91YmxlQ2xpY2siKTtpKEpQYSwiaGFuZGxlVHJpcGxlQ2xpY2siKTtpKGVOYSwiZGVmYXVsdFRyaXBsZUNsaWNrIik7aShZbXQsImZvcmNlRE9NRmx1c2giKTt2R3I9dDI/Im1ldGFLZXkiOiJjdHJsS2V5IjtWby5tb3VzZWRvd249KHQsZSk9PntsZXQgcj1lO3QuaW5wdXQuc2hpZnRLZXk9ci5zaGlmdEtleTtsZXQgYT1ZbXQodCkscz1EYXRlLm5vdygpLG49InNpbmdsZUNsaWNrIjtzLXQuaW5wdXQubGFzdENsaWNrLnRpbWU8NTAwJiZZUGEocix0LmlucHV0Lmxhc3RDbGljaykmJiFyW3ZHcl0mJnQuaW5wdXQubGFzdENsaWNrLmJ1dHRvbj09ci5idXR0b24mJih0LmlucHV0Lmxhc3RDbGljay50eXBlPT0ic2luZ2xlQ2xpY2siP249ImRvdWJsZUNsaWNrIjp0LmlucHV0Lmxhc3RDbGljay50eXBlPT0iZG91YmxlQ2xpY2siJiYobj0idHJpcGxlQ2xpY2siKSksdC5pbnB1dC5sYXN0Q2xpY2s9e3RpbWU6cyx4OnIuY2xpZW50WCx5OnIuY2xpZW50WSx0eXBlOm4sYnV0dG9uOnIuYnV0dG9ufTtsZXQgbz10LnBvc0F0Q29vcmRzKExmZShyKSk7byYmKG49PSJzaW5nbGVDbGljayI/KHQuaW5wdXQubW91c2VEb3duJiZ0LmlucHV0Lm1vdXNlRG93bi5kb25lKCksdC5pbnB1dC5tb3VzZURvd249bmV3IEttdCh0LG8sciwhIWEpKToobj09ImRvdWJsZUNsaWNrIj9YUGE6SlBhKSh0LG8ucG9zLG8uaW5zaWRlLHIpP3IucHJldmVudERlZmF1bHQoKTpYcCh0LCJwb2ludGVyIikpfTtLbXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiTW91c2VEb3duIil9Y29uc3RydWN0b3IoZSxyLGEscyl7dGhpcy52aWV3PWUsdGhpcy5wb3M9cix0aGlzLmV2ZW50PWEsdGhpcy5mbHVzaGVkPXMsdGhpcy5kZWxheWVkU2VsZWN0aW9uU3luYz0hMSx0aGlzLm1pZ2h0RHJhZz1udWxsLHRoaXMuc3RhcnREb2M9ZS5zdGF0ZS5kb2MsdGhpcy5zZWxlY3ROb2RlPSEhYVt2R3JdLHRoaXMuYWxsb3dEZWZhdWx0PWEuc2hpZnRLZXk7bGV0IG4sbztpZihyLmluc2lkZT4tMSluPWUuc3RhdGUuZG9jLm5vZGVBdChyLmluc2lkZSksbz1yLmluc2lkZTtlbHNle2xldCBmPWUuc3RhdGUuZG9jLnJlc29sdmUoci5wb3MpO249Zi5wYXJlbnQsbz1mLmRlcHRoP2YuYmVmb3JlKCk6MH1sZXQgbD1zP251bGw6YS50YXJnZXQsYz1sP2UuZG9jVmlldy5uZWFyZXN0RGVzYyhsLCEwKTpudWxsO3RoaXMudGFyZ2V0PWMmJmMubm9kZURPTS5ub2RlVHlwZT09MT9jLm5vZGVET006bnVsbDtsZXR7c2VsZWN0aW9uOmR9PWUuc3RhdGU7YS5idXR0b249PTAmJihuLnR5cGUuc3BlYy5kcmFnZ2FibGUmJm4udHlwZS5zcGVjLnNlbGVjdGFibGUhPT0hMXx8ZCBpbnN0YW5jZW9mIEl0JiZkLmZyb208PW8mJmQudG8+bykmJih0aGlzLm1pZ2h0RHJhZz17bm9kZTpuLHBvczpvLGFkZEF0dHI6ISEodGhpcy50YXJnZXQmJiF0aGlzLnRhcmdldC5kcmFnZ2FibGUpLHNldFVuZWRpdGFibGU6ISEodGhpcy50YXJnZXQmJmUyJiYhdGhpcy50YXJnZXQuaGFzQXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiKSl9KSx0aGlzLnRhcmdldCYmdGhpcy5taWdodERyYWcmJih0aGlzLm1pZ2h0RHJhZy5hZGRBdHRyfHx0aGlzLm1pZ2h0RHJhZy5zZXRVbmVkaXRhYmxlKSYmKHRoaXMudmlldy5kb21PYnNlcnZlci5zdG9wKCksdGhpcy5taWdodERyYWcuYWRkQXR0ciYmKHRoaXMudGFyZ2V0LmRyYWdnYWJsZT0hMCksdGhpcy5taWdodERyYWcuc2V0VW5lZGl0YWJsZSYmc2V0VGltZW91dCgoKT0+e3RoaXMudmlldy5pbnB1dC5tb3VzZURvd249PXRoaXMmJnRoaXMudGFyZ2V0LnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwiZmFsc2UiKX0sMjApLHRoaXMudmlldy5kb21PYnNlcnZlci5zdGFydCgpKSxlLnJvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy51cD10aGlzLnVwLmJpbmQodGhpcykpLGUucm9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW92ZT10aGlzLm1vdmUuYmluZCh0aGlzKSksWHAoZSwicG9pbnRlciIpfWRvbmUoKXt0aGlzLnZpZXcucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLnVwKSx0aGlzLnZpZXcucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubW92ZSksdGhpcy5taWdodERyYWcmJnRoaXMudGFyZ2V0JiYodGhpcy52aWV3LmRvbU9ic2VydmVyLnN0b3AoKSx0aGlzLm1pZ2h0RHJhZy5hZGRBdHRyJiZ0aGlzLnRhcmdldC5yZW1vdmVBdHRyaWJ1dGUoImRyYWdnYWJsZSIpLHRoaXMubWlnaHREcmFnLnNldFVuZWRpdGFibGUmJnRoaXMudGFyZ2V0LnJlbW92ZUF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiksdGhpcy52aWV3LmRvbU9ic2VydmVyLnN0YXJ0KCkpLHRoaXMuZGVsYXllZFNlbGVjdGlvblN5bmMmJnNldFRpbWVvdXQoKCk9Pm8zKHRoaXMudmlldykpLHRoaXMudmlldy5pbnB1dC5tb3VzZURvd249bnVsbH11cChlKXtpZih0aGlzLmRvbmUoKSwhdGhpcy52aWV3LmRvbS5jb250YWlucyhlLnRhcmdldCkpcmV0dXJuO2xldCByPXRoaXMucG9zO3RoaXMudmlldy5zdGF0ZS5kb2MhPXRoaXMuc3RhcnREb2MmJihyPXRoaXMudmlldy5wb3NBdENvb3JkcyhMZmUoZSkpKSx0aGlzLnVwZGF0ZUFsbG93RGVmYXVsdChlKSx0aGlzLmFsbG93RGVmYXVsdHx8IXI/WHAodGhpcy52aWV3LCJwb2ludGVyIik6UVBhKHRoaXMudmlldyxyLnBvcyxyLmluc2lkZSxlLHRoaXMuc2VsZWN0Tm9kZSk/ZS5wcmV2ZW50RGVmYXVsdCgpOmUuYnV0dG9uPT0wJiYodGhpcy5mbHVzaGVkfHxDbyYmdGhpcy5taWdodERyYWcmJiF0aGlzLm1pZ2h0RHJhZy5ub2RlLmlzQXRvbXx8Tm4mJiF0aGlzLnZpZXcuc3RhdGUuc2VsZWN0aW9uLnZpc2libGUmJk1hdGgubWluKE1hdGguYWJzKHIucG9zLXRoaXMudmlldy5zdGF0ZS5zZWxlY3Rpb24uZnJvbSksTWF0aC5hYnMoci5wb3MtdGhpcy52aWV3LnN0YXRlLnNlbGVjdGlvbi50bykpPD0yKT8oc3codGhpcy52aWV3LEp0Lm5lYXIodGhpcy52aWV3LnN0YXRlLmRvYy5yZXNvbHZlKHIucG9zKSksInBvaW50ZXIiKSxlLnByZXZlbnREZWZhdWx0KCkpOlhwKHRoaXMudmlldywicG9pbnRlciIpfW1vdmUoZSl7dGhpcy51cGRhdGVBbGxvd0RlZmF1bHQoZSksWHAodGhpcy52aWV3LCJwb2ludGVyIiksZS5idXR0b25zPT0wJiZ0aGlzLmRvbmUoKX11cGRhdGVBbGxvd0RlZmF1bHQoZSl7IXRoaXMuYWxsb3dEZWZhdWx0JiYoTWF0aC5hYnModGhpcy5ldmVudC54LWUuY2xpZW50WCk+NHx8TWF0aC5hYnModGhpcy5ldmVudC55LWUuY2xpZW50WSk+NCkmJih0aGlzLmFsbG93RGVmYXVsdD0hMCl9fTtWby50b3VjaHN0YXJ0PXQ9Pnt0LmlucHV0Lmxhc3RUb3VjaD1EYXRlLm5vdygpLFltdCh0KSxYcCh0LCJwb2ludGVyIil9LFZvLnRvdWNobW92ZT10PT57dC5pbnB1dC5sYXN0VG91Y2g9RGF0ZS5ub3coKSxYcCh0LCJwb2ludGVyIil9LFZvLmNvbnRleHRtZW51PXQ9PlltdCh0KTtpKHlHciwiaW5Pck5lYXJDb21wb3NpdGlvbiIpO3ROYT1zMz81ZTM6LTE7am8uY29tcG9zaXRpb25zdGFydD1qby5jb21wb3NpdGlvbnVwZGF0ZT10PT57aWYoIXQuY29tcG9zaW5nKXt0LmRvbU9ic2VydmVyLmZsdXNoKCk7bGV0e3N0YXRlOmV9PXQscj1lLnNlbGVjdGlvbi4kdG87aWYoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBlciYmKGUuc3RvcmVkTWFya3N8fCFyLnRleHRPZmZzZXQmJnIucGFyZW50T2Zmc2V0JiZyLm5vZGVCZWZvcmUubWFya3Muc29tZShhPT5hLnR5cGUuc3BlYy5pbmNsdXNpdmU9PT0hMSl8fE5uJiZJV3ImJnJOYSh0KSkpdC5tYXJrQ3Vyc29yPXQuc3RhdGUuc3RvcmVkTWFya3N8fHIubWFya3MoKSxIdGUodCwhMCksdC5tYXJrQ3Vyc29yPW51bGw7ZWxzZSBpZihIdGUodCwhZS5zZWxlY3Rpb24uZW1wdHkpLGUyJiZlLnNlbGVjdGlvbi5lbXB0eSYmci5wYXJlbnRPZmZzZXQmJiFyLnRleHRPZmZzZXQmJnIubm9kZUJlZm9yZS5tYXJrcy5sZW5ndGgpe2xldCBhPXQuZG9tU2VsZWN0aW9uUmFuZ2UoKTtmb3IobGV0IHM9YS5mb2N1c05vZGUsbj1hLmZvY3VzT2Zmc2V0O3MmJnMubm9kZVR5cGU9PTEmJm4hPTA7KXtsZXQgbz1uPDA/cy5sYXN0Q2hpbGQ6cy5jaGlsZE5vZGVzW24tMV07aWYoIW8pYnJlYWs7aWYoby5ub2RlVHlwZT09Myl7bGV0IGw9dC5kb21TZWxlY3Rpb24oKTtsJiZsLmNvbGxhcHNlKG8sby5ub2RlVmFsdWUubGVuZ3RoKTticmVha31lbHNlIHM9byxuPS0xfX10LmlucHV0LmNvbXBvc2luZz0hMH13R3IodCx0TmEpfTtpKHJOYSwic2VsZWN0aW9uQmVmb3JlVW5lZGl0YWJsZSIpLGpvLmNvbXBvc2l0aW9uZW5kPSh0LGUpPT57dC5jb21wb3NpbmcmJih0LmlucHV0LmNvbXBvc2luZz0hMSx0LmlucHV0LmNvbXBvc2l0aW9uRW5kZWRBdD1lLnRpbWVTdGFtcCx0LmlucHV0LmNvbXBvc2l0aW9uUGVuZGluZ0NoYW5nZXM9dC5kb21PYnNlcnZlci5wZW5kaW5nUmVjb3JkcygpLmxlbmd0aD90LmlucHV0LmNvbXBvc2l0aW9uSUQ6MCx0LmlucHV0LmNvbXBvc2l0aW9uTm9kZT1udWxsLHQuaW5wdXQuYmFkU2FmYXJpQ29tcG9zaXRpb24/dC5kb21PYnNlcnZlci5mb3JjZUZsdXNoKCk6dC5pbnB1dC5jb21wb3NpdGlvblBlbmRpbmdDaGFuZ2VzJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50LmRvbU9ic2VydmVyLmZsdXNoKCkpLHQuaW5wdXQuY29tcG9zaXRpb25JRCsrLHdHcih0LDIwKSl9O2kod0dyLCJzY2hlZHVsZUNvbXBvc2VFbmQiKTtpKGtHciwiY2xlYXJDb21wb3NpdGlvbiIpO2koYU5hLCJmaW5kQ29tcG9zaXRpb25Ob2RlIik7aShpTmEsInRpbWVzdGFtcEZyb21DdXN0b21FdmVudCIpO2koSHRlLCJlbmRDb21wb3NpdGlvbiIpO2koc05hLCJjYXB0dXJlQ29weSIpO3F0ZT1FMSYmWXA8MTV8fHR3JiZzUGE8NjA0O1ZvLmNvcHk9am8uY3V0PSh0LGUpPT57bGV0IHI9ZSxhPXQuc3RhdGUuc2VsZWN0aW9uLHM9ci50eXBlPT0iY3V0IjtpZihhLmVtcHR5KXJldHVybjtsZXQgbj1xdGU/bnVsbDpyLmNsaXBib2FyZERhdGEsbz1hLmNvbnRlbnQoKSx7ZG9tOmwsdGV4dDpjfT1CbXQodCxvKTtuPyhyLnByZXZlbnREZWZhdWx0KCksbi5jbGVhckRhdGEoKSxuLnNldERhdGEoInRleHQvaHRtbCIsbC5pbm5lckhUTUwpLG4uc2V0RGF0YSgidGV4dC9wbGFpbiIsYykpOnNOYSh0LGwpLHMmJnQuZGlzcGF0Y2godC5zdGF0ZS50ci5kZWxldGVTZWxlY3Rpb24oKS5zY3JvbGxJbnRvVmlldygpLnNldE1ldGEoInVpRXZlbnQiLCJjdXQiKSl9O2kobk5hLCJzbGljZVNpbmdsZU5vZGUiKTtpKG9OYSwiY2FwdHVyZVBhc3RlIik7aShWdGUsImRvUGFzdGUiKTtpKFNHciwiZ2V0VGV4dCIpLGpvLnBhc3RlPSh0LGUpPT57bGV0IHI9ZTtpZih0LmNvbXBvc2luZyYmIXMzKXJldHVybjtsZXQgYT1xdGU/bnVsbDpyLmNsaXBib2FyZERhdGEscz10LmlucHV0LnNoaWZ0S2V5JiZ0LmlucHV0Lmxhc3RLZXlDb2RlIT00NTthJiZWdGUodCxTR3IoYSksYS5nZXREYXRhKCJ0ZXh0L2h0bWwiKSxzLHIpP3IucHJldmVudERlZmF1bHQoKTpvTmEodCxyKX07RGZlPWNsYXNze3N0YXRpY3tpKHRoaXMsIkRyYWdnaW5nIil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuc2xpY2U9ZSx0aGlzLm1vdmU9cix0aGlzLm5vZGU9YX19LGxOYT10Mj8iYWx0S2V5IjoiY3RybEtleSI7aShNR3IsImRyYWdNb3ZlcyIpLFZvLmRyYWdzdGFydD0odCxlKT0+e2xldCByPWUsYT10LmlucHV0Lm1vdXNlRG93bjtpZihhJiZhLmRvbmUoKSwhci5kYXRhVHJhbnNmZXIpcmV0dXJuO2xldCBzPXQuc3RhdGUuc2VsZWN0aW9uLG49cy5lbXB0eT9udWxsOnQucG9zQXRDb29yZHMoTGZlKHIpKSxvO2lmKCEobiYmbi5wb3M+PXMuZnJvbSYmbi5wb3M8PShzIGluc3RhbmNlb2YgSXQ/cy50by0xOnMudG8pKSl7aWYoYSYmYS5taWdodERyYWcpbz1JdC5jcmVhdGUodC5zdGF0ZS5kb2MsYS5taWdodERyYWcucG9zKTtlbHNlIGlmKHIudGFyZ2V0JiZyLnRhcmdldC5ub2RlVHlwZT09MSl7bGV0IHA9dC5kb2NWaWV3Lm5lYXJlc3REZXNjKHIudGFyZ2V0LCEwKTtwJiZwLm5vZGUudHlwZS5zcGVjLmRyYWdnYWJsZSYmcCE9dC5kb2NWaWV3JiYobz1JdC5jcmVhdGUodC5zdGF0ZS5kb2MscC5wb3NCZWZvcmUpKX19bGV0IGw9KG98fHQuc3RhdGUuc2VsZWN0aW9uKS5jb250ZW50KCkse2RvbTpjLHRleHQ6ZCxzbGljZTpmfT1CbXQodCxsKTsoIXIuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aHx8IU5ufHxFV3I+MTIwKSYmci5kYXRhVHJhbnNmZXIuY2xlYXJEYXRhKCksci5kYXRhVHJhbnNmZXIuc2V0RGF0YShxdGU/IlRleHQiOiJ0ZXh0L2h0bWwiLGMuaW5uZXJIVE1MKSxyLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJjb3B5TW92ZSIscXRlfHxyLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIixkKSx0LmRyYWdnaW5nPW5ldyBEZmUoZixNR3IodCxyKSxvKX0sVm8uZHJhZ2VuZD10PT57bGV0IGU9dC5kcmFnZ2luZzt3aW5kb3cuc2V0VGltZW91dCgoKT0+e3QuZHJhZ2dpbmc9PWUmJih0LmRyYWdnaW5nPW51bGwpfSw1MCl9LGpvLmRyYWdvdmVyPWpvLmRyYWdlbnRlcj0odCxlKT0+ZS5wcmV2ZW50RGVmYXVsdCgpLGpvLmRyb3A9KHQsZSk9Pnt0cnl7Y05hKHQsZSx0LmRyYWdnaW5nKX1maW5hbGx5e3QuZHJhZ2dpbmc9bnVsbH19O2koY05hLCJoYW5kbGVEcm9wIiksVm8uZm9jdXM9dD0+e3QuaW5wdXQubGFzdEZvY3VzPURhdGUubm93KCksdC5mb2N1c2VkfHwodC5kb21PYnNlcnZlci5zdG9wKCksdC5kb20uY2xhc3NMaXN0LmFkZCgiUHJvc2VNaXJyb3ItZm9jdXNlZCIpLHQuZG9tT2JzZXJ2ZXIuc3RhcnQoKSx0LmZvY3VzZWQ9ITAsc2V0VGltZW91dCgoKT0+e3QuZG9jVmlldyYmdC5oYXNGb2N1cygpJiYhdC5kb21PYnNlcnZlci5jdXJyZW50U2VsZWN0aW9uLmVxKHQuZG9tU2VsZWN0aW9uUmFuZ2UoKSkmJm8zKHQpfSwyMCkpfSxWby5ibHVyPSh0LGUpPT57bGV0IHI9ZTt0LmZvY3VzZWQmJih0LmRvbU9ic2VydmVyLnN0b3AoKSx0LmRvbS5jbGFzc0xpc3QucmVtb3ZlKCJQcm9zZU1pcnJvci1mb2N1c2VkIiksdC5kb21PYnNlcnZlci5zdGFydCgpLHIucmVsYXRlZFRhcmdldCYmdC5kb20uY29udGFpbnMoci5yZWxhdGVkVGFyZ2V0KSYmdC5kb21PYnNlcnZlci5jdXJyZW50U2VsZWN0aW9uLmNsZWFyKCksdC5mb2N1c2VkPSExKX0sVm8uYmVmb3JlaW5wdXQ9KHQsZSk9PntpZihObiYmczMmJmUuaW5wdXRUeXBlPT0iZGVsZXRlQ29udGVudEJhY2t3YXJkIil7dC5kb21PYnNlcnZlci5mbHVzaFNvb24oKTtsZXR7ZG9tQ2hhbmdlQ291bnQ6YX09dC5pbnB1dDtzZXRUaW1lb3V0KCgpPT57aWYodC5pbnB1dC5kb21DaGFuZ2VDb3VudCE9YXx8KHQuZG9tLmJsdXIoKSx0LmZvY3VzKCksdC5zb21lUHJvcCgiaGFuZGxlS2V5RG93biIsbj0+bih0LFI5KDgsIkJhY2tzcGFjZSIpKSkpKXJldHVybjtsZXR7JGN1cnNvcjpzfT10LnN0YXRlLnNlbGVjdGlvbjtzJiZzLnBvcz4wJiZ0LmRpc3BhdGNoKHQuc3RhdGUudHIuZGVsZXRlKHMucG9zLTEscy5wb3MpLnNjcm9sbEludG9WaWV3KCkpfSw1MCl9fTtmb3IobGV0IHQgaW4gam8pVm9bdF09am9bdF07aShqdGUsImNvbXBhcmVPYmpzIik7JGZlPWNsYXNzIHR7c3RhdGlje2kodGhpcywiV2lkZ2V0VHlwZSIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy50b0RPTT1lLHRoaXMuc3BlYz1yfHxWOSx0aGlzLnNpZGU9dGhpcy5zcGVjLnNpZGV8fDB9bWFwKGUscixhLHMpe2xldHtwb3M6bixkZWxldGVkOm99PWUubWFwUmVzdWx0KHIuZnJvbStzLHRoaXMuc2lkZTwwPy0xOjEpO3JldHVybiBvP251bGw6bmV3IHdjKG4tYSxuLWEsdGhpcyl9dmFsaWQoKXtyZXR1cm4hMH1lcShlKXtyZXR1cm4gdGhpcz09ZXx8ZSBpbnN0YW5jZW9mIHQmJih0aGlzLnNwZWMua2V5JiZ0aGlzLnNwZWMua2V5PT1lLnNwZWMua2V5fHx0aGlzLnRvRE9NPT1lLnRvRE9NJiZqdGUodGhpcy5zcGVjLGUuc3BlYykpfWRlc3Ryb3koZSl7dGhpcy5zcGVjLmRlc3Ryb3kmJnRoaXMuc3BlYy5kZXN0cm95KGUpfX0scTk9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJJbmxpbmVUeXBlIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLmF0dHJzPWUsdGhpcy5zcGVjPXJ8fFY5fW1hcChlLHIsYSxzKXtsZXQgbj1lLm1hcChyLmZyb20rcyx0aGlzLnNwZWMuaW5jbHVzaXZlU3RhcnQ/LTE6MSktYSxvPWUubWFwKHIudG8rcyx0aGlzLnNwZWMuaW5jbHVzaXZlRW5kPzE6LTEpLWE7cmV0dXJuIG4+PW8/bnVsbDpuZXcgd2MobixvLHRoaXMpfXZhbGlkKGUscil7cmV0dXJuIHIuZnJvbTxyLnRvfWVxKGUpe3JldHVybiB0aGlzPT1lfHxlIGluc3RhbmNlb2YgdCYmanRlKHRoaXMuYXR0cnMsZS5hdHRycykmJmp0ZSh0aGlzLnNwZWMsZS5zcGVjKX1zdGF0aWMgaXMoZSl7cmV0dXJuIGUudHlwZSBpbnN0YW5jZW9mIHR9ZGVzdHJveSgpe319LFptdD1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIk5vZGVUeXBlIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLmF0dHJzPWUsdGhpcy5zcGVjPXJ8fFY5fW1hcChlLHIsYSxzKXtsZXQgbj1lLm1hcFJlc3VsdChyLmZyb20rcywxKTtpZihuLmRlbGV0ZWQpcmV0dXJuIG51bGw7bGV0IG89ZS5tYXBSZXN1bHQoci50bytzLC0xKTtyZXR1cm4gby5kZWxldGVkfHxvLnBvczw9bi5wb3M/bnVsbDpuZXcgd2Mobi5wb3MtYSxvLnBvcy1hLHRoaXMpfXZhbGlkKGUscil7bGV0e2luZGV4OmEsb2Zmc2V0OnN9PWUuY29udGVudC5maW5kSW5kZXgoci5mcm9tKSxuO3JldHVybiBzPT1yLmZyb20mJiEobj1lLmNoaWxkKGEpKS5pc1RleHQmJnMrbi5ub2RlU2l6ZT09ci50b31lcShlKXtyZXR1cm4gdGhpcz09ZXx8ZSBpbnN0YW5jZW9mIHQmJmp0ZSh0aGlzLmF0dHJzLGUuYXR0cnMpJiZqdGUodGhpcy5zcGVjLGUuc3BlYyl9ZGVzdHJveSgpe319LHdjPWNsYXNzIHR7c3RhdGlje2kodGhpcywiRGVjb3JhdGlvbiIpfWNvbnN0cnVjdG9yKGUscixhKXt0aGlzLmZyb209ZSx0aGlzLnRvPXIsdGhpcy50eXBlPWF9Y29weShlLHIpe3JldHVybiBuZXcgdChlLHIsdGhpcy50eXBlKX1lcShlLHI9MCl7cmV0dXJuIHRoaXMudHlwZS5lcShlLnR5cGUpJiZ0aGlzLmZyb20rcj09ZS5mcm9tJiZ0aGlzLnRvK3I9PWUudG99bWFwKGUscixhKXtyZXR1cm4gdGhpcy50eXBlLm1hcChlLHRoaXMscixhKX1zdGF0aWMgd2lkZ2V0KGUscixhKXtyZXR1cm4gbmV3IHQoZSxlLG5ldyAkZmUocixhKSl9c3RhdGljIGlubGluZShlLHIsYSxzKXtyZXR1cm4gbmV3IHQoZSxyLG5ldyBxOShhLHMpKX1zdGF0aWMgbm9kZShlLHIsYSxzKXtyZXR1cm4gbmV3IHQoZSxyLG5ldyBabXQoYSxzKSl9Z2V0IHNwZWMoKXtyZXR1cm4gdGhpcy50eXBlLnNwZWN9Z2V0IGlubGluZSgpe3JldHVybiB0aGlzLnR5cGUgaW5zdGFuY2VvZiBxOX1nZXQgd2lkZ2V0KCl7cmV0dXJuIHRoaXMudHlwZSBpbnN0YW5jZW9mICRmZX19LG53PVtdLFY5PXt9LFVvPWNsYXNzIHR7c3RhdGlje2kodGhpcywiRGVjb3JhdGlvblNldCIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy5sb2NhbD1lLmxlbmd0aD9lOm53LHRoaXMuY2hpbGRyZW49ci5sZW5ndGg/cjpud31zdGF0aWMgY3JlYXRlKGUscil7cmV0dXJuIHIubGVuZ3RoP0VmZShyLGUsMCxWOSk6em99ZmluZChlLHIsYSl7bGV0IHM9W107cmV0dXJuIHRoaXMuZmluZElubmVyKGU/PzAscj8/MWU5LHMsMCxhKSxzfWZpbmRJbm5lcihlLHIsYSxzLG4pe2ZvcihsZXQgbz0wO288dGhpcy5sb2NhbC5sZW5ndGg7bysrKXtsZXQgbD10aGlzLmxvY2FsW29dO2wuZnJvbTw9ciYmbC50bz49ZSYmKCFufHxuKGwuc3BlYykpJiZhLnB1c2gobC5jb3B5KGwuZnJvbStzLGwudG8rcykpfWZvcihsZXQgbz0wO288dGhpcy5jaGlsZHJlbi5sZW5ndGg7bys9MylpZih0aGlzLmNoaWxkcmVuW29dPHImJnRoaXMuY2hpbGRyZW5bbysxXT5lKXtsZXQgbD10aGlzLmNoaWxkcmVuW29dKzE7dGhpcy5jaGlsZHJlbltvKzJdLmZpbmRJbm5lcihlLWwsci1sLGEscytsLG4pfX1tYXAoZSxyLGEpe3JldHVybiB0aGlzPT16b3x8ZS5tYXBzLmxlbmd0aD09MD90aGlzOnRoaXMubWFwSW5uZXIoZSxyLDAsMCxhfHxWOSl9bWFwSW5uZXIoZSxyLGEscyxuKXtsZXQgbztmb3IobGV0IGw9MDtsPHRoaXMubG9jYWwubGVuZ3RoO2wrKyl7bGV0IGM9dGhpcy5sb2NhbFtsXS5tYXAoZSxhLHMpO2MmJmMudHlwZS52YWxpZChyLGMpPyhvfHwobz1bXSkpLnB1c2goYyk6bi5vblJlbW92ZSYmbi5vblJlbW92ZSh0aGlzLmxvY2FsW2xdLnNwZWMpfXJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD9kTmEodGhpcy5jaGlsZHJlbixvfHxbXSxlLHIsYSxzLG4pOm8/bmV3IHQoby5zb3J0KGo5KSxudyk6em99YWRkKGUscil7cmV0dXJuIHIubGVuZ3RoP3RoaXM9PXpvP3QuY3JlYXRlKGUscik6dGhpcy5hZGRJbm5lcihlLHIsMCk6dGhpc31hZGRJbm5lcihlLHIsYSl7bGV0IHMsbj0wO2UuZm9yRWFjaCgobCxjKT0+e2xldCBkPWMrYSxmO2lmKGY9ekdyKHIsbCxkKSl7Zm9yKHN8fChzPXRoaXMuY2hpbGRyZW4uc2xpY2UoKSk7bjxzLmxlbmd0aCYmc1tuXTxjOyluKz0zO3Nbbl09PWM/c1tuKzJdPXNbbisyXS5hZGRJbm5lcihsLGYsZCsxKTpzLnNwbGljZShuLDAsYyxjK2wubm9kZVNpemUsRWZlKGYsbCxkKzEsVjkpKSxuKz0zfX0pO2xldCBvPUNHcihuP19HcihyKTpyLC1hKTtmb3IobGV0IGw9MDtsPG8ubGVuZ3RoO2wrKylvW2xdLnR5cGUudmFsaWQoZSxvW2xdKXx8by5zcGxpY2UobC0tLDEpO3JldHVybiBuZXcgdChvLmxlbmd0aD90aGlzLmxvY2FsLmNvbmNhdChvKS5zb3J0KGo5KTp0aGlzLmxvY2FsLHN8fHRoaXMuY2hpbGRyZW4pfXJlbW92ZShlKXtyZXR1cm4gZS5sZW5ndGg9PTB8fHRoaXM9PXpvP3RoaXM6dGhpcy5yZW1vdmVJbm5lcihlLDApfXJlbW92ZUlubmVyKGUscil7bGV0IGE9dGhpcy5jaGlsZHJlbixzPXRoaXMubG9jYWw7Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKz0zKXtsZXQgbyxsPWFbbl0rcixjPWFbbisxXStyO2ZvcihsZXQgZj0wLHA7ZjxlLmxlbmd0aDtmKyspKHA9ZVtmXSkmJnAuZnJvbT5sJiZwLnRvPGMmJihlW2ZdPW51bGwsKG98fChvPVtdKSkucHVzaChwKSk7aWYoIW8pY29udGludWU7YT09dGhpcy5jaGlsZHJlbiYmKGE9dGhpcy5jaGlsZHJlbi5zbGljZSgpKTtsZXQgZD1hW24rMl0ucmVtb3ZlSW5uZXIobyxsKzEpO2QhPXpvP2FbbisyXT1kOihhLnNwbGljZShuLDMpLG4tPTMpfWlmKHMubGVuZ3RoKXtmb3IobGV0IG49MCxvO248ZS5sZW5ndGg7bisrKWlmKG89ZVtuXSlmb3IobGV0IGw9MDtsPHMubGVuZ3RoO2wrKylzW2xdLmVxKG8scikmJihzPT10aGlzLmxvY2FsJiYocz10aGlzLmxvY2FsLnNsaWNlKCkpLHMuc3BsaWNlKGwtLSwxKSl9cmV0dXJuIGE9PXRoaXMuY2hpbGRyZW4mJnM9PXRoaXMubG9jYWw/dGhpczpzLmxlbmd0aHx8YS5sZW5ndGg/bmV3IHQocyxhKTp6b31mb3JDaGlsZChlLHIpe2lmKHRoaXM9PXpvKXJldHVybiB0aGlzO2lmKHIuaXNMZWFmKXJldHVybiB0LmVtcHR5O2xldCBhLHM7Zm9yKGxldCBsPTA7bDx0aGlzLmNoaWxkcmVuLmxlbmd0aDtsKz0zKWlmKHRoaXMuY2hpbGRyZW5bbF0+PWUpe3RoaXMuY2hpbGRyZW5bbF09PWUmJihhPXRoaXMuY2hpbGRyZW5bbCsyXSk7YnJlYWt9bGV0IG49ZSsxLG89bityLmNvbnRlbnQuc2l6ZTtmb3IobGV0IGw9MDtsPHRoaXMubG9jYWwubGVuZ3RoO2wrKyl7bGV0IGM9dGhpcy5sb2NhbFtsXTtpZihjLmZyb208byYmYy50bz5uJiZjLnR5cGUgaW5zdGFuY2VvZiBxOSl7bGV0IGQ9TWF0aC5tYXgobixjLmZyb20pLW4sZj1NYXRoLm1pbihvLGMudG8pLW47ZDxmJiYoc3x8KHM9W10pKS5wdXNoKGMuY29weShkLGYpKX19aWYocyl7bGV0IGw9bmV3IHQocy5zb3J0KGo5KSxudyk7cmV0dXJuIGE/bmV3IEFmZShbbCxhXSk6bH1yZXR1cm4gYXx8em99ZXEoZSl7aWYodGhpcz09ZSlyZXR1cm4hMDtpZighKGUgaW5zdGFuY2VvZiB0KXx8dGhpcy5sb2NhbC5sZW5ndGghPWUubG9jYWwubGVuZ3RofHx0aGlzLmNoaWxkcmVuLmxlbmd0aCE9ZS5jaGlsZHJlbi5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjx0aGlzLmxvY2FsLmxlbmd0aDtyKyspaWYoIXRoaXMubG9jYWxbcl0uZXEoZS5sb2NhbFtyXSkpcmV0dXJuITE7Zm9yKGxldCByPTA7cjx0aGlzLmNoaWxkcmVuLmxlbmd0aDtyKz0zKWlmKHRoaXMuY2hpbGRyZW5bcl0hPWUuY2hpbGRyZW5bcl18fHRoaXMuY2hpbGRyZW5bcisxXSE9ZS5jaGlsZHJlbltyKzFdfHwhdGhpcy5jaGlsZHJlbltyKzJdLmVxKGUuY2hpbGRyZW5bcisyXSkpcmV0dXJuITE7cmV0dXJuITB9bG9jYWxzKGUpe3JldHVybiBRbXQodGhpcy5sb2NhbHNJbm5lcihlKSl9bG9jYWxzSW5uZXIoZSl7aWYodGhpcz09em8pcmV0dXJuIG53O2lmKGUuaW5saW5lQ29udGVudHx8IXRoaXMubG9jYWwuc29tZShxOS5pcykpcmV0dXJuIHRoaXMubG9jYWw7bGV0IHI9W107Zm9yKGxldCBhPTA7YTx0aGlzLmxvY2FsLmxlbmd0aDthKyspdGhpcy5sb2NhbFthXS50eXBlIGluc3RhbmNlb2YgcTl8fHIucHVzaCh0aGlzLmxvY2FsW2FdKTtyZXR1cm4gcn1mb3JFYWNoU2V0KGUpe2UodGhpcyl9fTtVby5lbXB0eT1uZXcgVW8oW10sW10pLFVvLnJlbW92ZU92ZXJsYXA9UW10O3pvPVVvLmVtcHR5LEFmZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkRlY29yYXRpb25Hcm91cCIpfWNvbnN0cnVjdG9yKGUpe3RoaXMubWVtYmVycz1lfW1hcChlLHIpe2xldCBhPXRoaXMubWVtYmVycy5tYXAocz0+cy5tYXAoZSxyLFY5KSk7cmV0dXJuIHQuZnJvbShhKX1mb3JDaGlsZChlLHIpe2lmKHIuaXNMZWFmKXJldHVybiBVby5lbXB0eTtsZXQgYT1bXTtmb3IobGV0IHM9MDtzPHRoaXMubWVtYmVycy5sZW5ndGg7cysrKXtsZXQgbj10aGlzLm1lbWJlcnNbc10uZm9yQ2hpbGQoZSxyKTtuIT16byYmKG4gaW5zdGFuY2VvZiB0P2E9YS5jb25jYXQobi5tZW1iZXJzKTphLnB1c2gobikpfXJldHVybiB0LmZyb20oYSl9ZXEoZSl7aWYoIShlIGluc3RhbmNlb2YgdCl8fGUubWVtYmVycy5sZW5ndGghPXRoaXMubWVtYmVycy5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjx0aGlzLm1lbWJlcnMubGVuZ3RoO3IrKylpZighdGhpcy5tZW1iZXJzW3JdLmVxKGUubWVtYmVyc1tyXSkpcmV0dXJuITE7cmV0dXJuITB9bG9jYWxzKGUpe2xldCByLGE9ITA7Zm9yKGxldCBzPTA7czx0aGlzLm1lbWJlcnMubGVuZ3RoO3MrKyl7bGV0IG49dGhpcy5tZW1iZXJzW3NdLmxvY2Fsc0lubmVyKGUpO2lmKG4ubGVuZ3RoKWlmKCFyKXI9bjtlbHNle2EmJihyPXIuc2xpY2UoKSxhPSExKTtmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKylyLnB1c2gobltvXSl9fXJldHVybiByP1FtdChhP3I6ci5zb3J0KGo5KSk6bnd9c3RhdGljIGZyb20oZSl7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHpvO2Nhc2UgMTpyZXR1cm4gZVswXTtkZWZhdWx0OnJldHVybiBuZXcgdChlLmV2ZXJ5KHI9PnIgaW5zdGFuY2VvZiBVbyk/ZTplLnJlZHVjZSgocixhKT0+ci5jb25jYXQoYSBpbnN0YW5jZW9mIFVvP2E6YS5tZW1iZXJzKSxbXSkpfX1mb3JFYWNoU2V0KGUpe2ZvcihsZXQgcj0wO3I8dGhpcy5tZW1iZXJzLmxlbmd0aDtyKyspdGhpcy5tZW1iZXJzW3JdLmZvckVhY2hTZXQoZSl9fTtpKGROYSwibWFwQ2hpbGRyZW4iKTtpKENHciwibW92ZVNwYW5zIik7aSh1TmEsIm1hcEFuZEdhdGhlclJlbWFpbmluZ0RlY29yYXRpb25zIik7aSh6R3IsInRha2VTcGFuc0Zvck5vZGUiKTtpKF9Hciwid2l0aG91dE51bGxzIik7aShFZmUsImJ1aWxkVHJlZSIpO2koajksImJ5UG9zIik7aShRbXQsInJlbW92ZU92ZXJsYXAiKTtpKFRHciwiaW5zZXJ0QWhlYWQiKTtpKFhtdCwidmlld0RlY29yYXRpb25zIik7cE5hPXtjaGlsZExpc3Q6ITAsY2hhcmFjdGVyRGF0YTohMCxjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6ITAsYXR0cmlidXRlczohMCxhdHRyaWJ1dGVPbGRWYWx1ZTohMCxzdWJ0cmVlOiEwfSxmTmE9RTEmJllwPD0xMSxKbXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiU2VsZWN0aW9uU3RhdGUiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuYW5jaG9yTm9kZT1udWxsLHRoaXMuYW5jaG9yT2Zmc2V0PTAsdGhpcy5mb2N1c05vZGU9bnVsbCx0aGlzLmZvY3VzT2Zmc2V0PTB9c2V0KGUpe3RoaXMuYW5jaG9yTm9kZT1lLmFuY2hvck5vZGUsdGhpcy5hbmNob3JPZmZzZXQ9ZS5hbmNob3JPZmZzZXQsdGhpcy5mb2N1c05vZGU9ZS5mb2N1c05vZGUsdGhpcy5mb2N1c09mZnNldD1lLmZvY3VzT2Zmc2V0fWNsZWFyKCl7dGhpcy5hbmNob3JOb2RlPXRoaXMuZm9jdXNOb2RlPW51bGx9ZXEoZSl7cmV0dXJuIGUuYW5jaG9yTm9kZT09dGhpcy5hbmNob3JOb2RlJiZlLmFuY2hvck9mZnNldD09dGhpcy5hbmNob3JPZmZzZXQmJmUuZm9jdXNOb2RlPT10aGlzLmZvY3VzTm9kZSYmZS5mb2N1c09mZnNldD09dGhpcy5mb2N1c09mZnNldH19LGU1dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJET01PYnNlcnZlciIpfWNvbnN0cnVjdG9yKGUscil7dGhpcy52aWV3PWUsdGhpcy5oYW5kbGVET01DaGFuZ2U9cix0aGlzLnF1ZXVlPVtdLHRoaXMuZmx1c2hpbmdTb29uPS0xLHRoaXMub2JzZXJ2ZXI9bnVsbCx0aGlzLmN1cnJlbnRTZWxlY3Rpb249bmV3IEptdCx0aGlzLm9uQ2hhckRhdGE9bnVsbCx0aGlzLnN1cHByZXNzaW5nU2VsZWN0aW9uVXBkYXRlcz0hMSx0aGlzLmxhc3RDaGFuZ2VkVGV4dE5vZGU9bnVsbCx0aGlzLm9ic2VydmVyPXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyJiZuZXcgd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIoYT0+e2ZvcihsZXQgcz0wO3M8YS5sZW5ndGg7cysrKXRoaXMucXVldWUucHVzaChhW3NdKTtFMSYmWXA8PTExJiZhLnNvbWUocz0+cy50eXBlPT0iY2hpbGRMaXN0IiYmcy5yZW1vdmVkTm9kZXMubGVuZ3RofHxzLnR5cGU9PSJjaGFyYWN0ZXJEYXRhIiYmcy5vbGRWYWx1ZS5sZW5ndGg+cy50YXJnZXQubm9kZVZhbHVlLmxlbmd0aCk/dGhpcy5mbHVzaFNvb24oKTpDbyYmZS5jb21wb3NpbmcmJmEuc29tZShzPT5zLnR5cGU9PSJjaGlsZExpc3QiJiZzLnRhcmdldC5ub2RlTmFtZT09IlRSIik/KGUuaW5wdXQuYmFkU2FmYXJpQ29tcG9zaXRpb249ITAsdGhpcy5mbHVzaFNvb24oKSk6dGhpcy5mbHVzaCgpfSksZk5hJiYodGhpcy5vbkNoYXJEYXRhPWE9Pnt0aGlzLnF1ZXVlLnB1c2goe3RhcmdldDphLnRhcmdldCx0eXBlOiJjaGFyYWN0ZXJEYXRhIixvbGRWYWx1ZTphLnByZXZWYWx1ZX0pLHRoaXMuZmx1c2hTb29uKCl9KSx0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlPXRoaXMub25TZWxlY3Rpb25DaGFuZ2UuYmluZCh0aGlzKX1mbHVzaFNvb24oKXt0aGlzLmZsdXNoaW5nU29vbjwwJiYodGhpcy5mbHVzaGluZ1Nvb249d2luZG93LnNldFRpbWVvdXQoKCk9Pnt0aGlzLmZsdXNoaW5nU29vbj0tMSx0aGlzLmZsdXNoKCl9LDIwKSl9Zm9yY2VGbHVzaCgpe3RoaXMuZmx1c2hpbmdTb29uPi0xJiYod2luZG93LmNsZWFyVGltZW91dCh0aGlzLmZsdXNoaW5nU29vbiksdGhpcy5mbHVzaGluZ1Nvb249LTEsdGhpcy5mbHVzaCgpKX1zdGFydCgpe3RoaXMub2JzZXJ2ZXImJih0aGlzLm9ic2VydmVyLnRha2VSZWNvcmRzKCksdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMudmlldy5kb20scE5hKSksdGhpcy5vbkNoYXJEYXRhJiZ0aGlzLnZpZXcuZG9tLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNoYXJhY3RlckRhdGFNb2RpZmllZCIsdGhpcy5vbkNoYXJEYXRhKSx0aGlzLmNvbm5lY3RTZWxlY3Rpb24oKX1zdG9wKCl7aWYodGhpcy5vYnNlcnZlcil7bGV0IGU9dGhpcy5vYnNlcnZlci50YWtlUmVjb3JkcygpO2lmKGUubGVuZ3RoKXtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl0aGlzLnF1ZXVlLnB1c2goZVtyXSk7d2luZG93LnNldFRpbWVvdXQoKCk9PnRoaXMuZmx1c2goKSwyMCl9dGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCl9dGhpcy5vbkNoYXJEYXRhJiZ0aGlzLnZpZXcuZG9tLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNoYXJhY3RlckRhdGFNb2RpZmllZCIsdGhpcy5vbkNoYXJEYXRhKSx0aGlzLmRpc2Nvbm5lY3RTZWxlY3Rpb24oKX1jb25uZWN0U2VsZWN0aW9uKCl7dGhpcy52aWV3LmRvbS5vd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5vblNlbGVjdGlvbkNoYW5nZSl9ZGlzY29ubmVjdFNlbGVjdGlvbigpe3RoaXMudmlldy5kb20ub3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMub25TZWxlY3Rpb25DaGFuZ2UpfXN1cHByZXNzU2VsZWN0aW9uVXBkYXRlcygpe3RoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzPSEwLHNldFRpbWVvdXQoKCk9PnRoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzPSExLDUwKX1vblNlbGVjdGlvbkNoYW5nZSgpe2lmKGlHcih0aGlzLnZpZXcpKXtpZih0aGlzLnN1cHByZXNzaW5nU2VsZWN0aW9uVXBkYXRlcylyZXR1cm4gbzModGhpcy52aWV3KTtpZihFMSYmWXA8PTExJiYhdGhpcy52aWV3LnN0YXRlLnNlbGVjdGlvbi5lbXB0eSl7bGV0IGU9dGhpcy52aWV3LmRvbVNlbGVjdGlvblJhbmdlKCk7aWYoZS5mb2N1c05vZGUmJk85KGUuZm9jdXNOb2RlLGUuZm9jdXNPZmZzZXQsZS5hbmNob3JOb2RlLGUuYW5jaG9yT2Zmc2V0KSlyZXR1cm4gdGhpcy5mbHVzaFNvb24oKX10aGlzLmZsdXNoKCl9fXNldEN1clNlbGVjdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbi5zZXQodGhpcy52aWV3LmRvbVNlbGVjdGlvblJhbmdlKCkpfWlnbm9yZVNlbGVjdGlvbkNoYW5nZShlKXtpZighZS5mb2N1c05vZGUpcmV0dXJuITA7bGV0IHI9bmV3IFNldCxhO2ZvcihsZXQgbj1lLmZvY3VzTm9kZTtuO249ZXcobikpci5hZGQobik7Zm9yKGxldCBuPWUuYW5jaG9yTm9kZTtuO249ZXcobikpaWYoci5oYXMobikpe2E9bjticmVha31sZXQgcz1hJiZ0aGlzLnZpZXcuZG9jVmlldy5uZWFyZXN0RGVzYyhhKTtpZihzJiZzLmlnbm9yZU11dGF0aW9uKHt0eXBlOiJzZWxlY3Rpb24iLHRhcmdldDphLm5vZGVUeXBlPT0zP2EucGFyZW50Tm9kZTphfSkpcmV0dXJuIHRoaXMuc2V0Q3VyU2VsZWN0aW9uKCksITB9cGVuZGluZ1JlY29yZHMoKXtpZih0aGlzLm9ic2VydmVyKWZvcihsZXQgZSBvZiB0aGlzLm9ic2VydmVyLnRha2VSZWNvcmRzKCkpdGhpcy5xdWV1ZS5wdXNoKGUpO3JldHVybiB0aGlzLnF1ZXVlfWZsdXNoKCl7bGV0e3ZpZXc6ZX09dGhpcztpZighZS5kb2NWaWV3fHx0aGlzLmZsdXNoaW5nU29vbj4tMSlyZXR1cm47bGV0IHI9dGhpcy5wZW5kaW5nUmVjb3JkcygpO3IubGVuZ3RoJiYodGhpcy5xdWV1ZT1bXSk7bGV0IGE9ZS5kb21TZWxlY3Rpb25SYW5nZSgpLHM9IXRoaXMuc3VwcHJlc3NpbmdTZWxlY3Rpb25VcGRhdGVzJiYhdGhpcy5jdXJyZW50U2VsZWN0aW9uLmVxKGEpJiZpR3IoZSkmJiF0aGlzLmlnbm9yZVNlbGVjdGlvbkNoYW5nZShhKSxuPS0xLG89LTEsbD0hMSxjPVtdO2lmKGUuZWRpdGFibGUpZm9yKGxldCBmPTA7ZjxyLmxlbmd0aDtmKyspe2xldCBwPXRoaXMucmVnaXN0ZXJNdXRhdGlvbihyW2ZdLGMpO3AmJihuPW48MD9wLmZyb206TWF0aC5taW4ocC5mcm9tLG4pLG89bzwwP3AudG86TWF0aC5tYXgocC50byxvKSxwLnR5cGVPdmVyJiYobD0hMCkpfWlmKGMuc29tZShmPT5mLm5vZGVOYW1lPT0iQlIiKSYmKGUuaW5wdXQubGFzdEtleUNvZGU9PTh8fGUuaW5wdXQubGFzdEtleUNvZGU9PTQ2KSl7Zm9yKGxldCBmIG9mIGMpaWYoZi5ub2RlTmFtZT09IkJSIiYmZi5wYXJlbnROb2RlKXtsZXQgcD1mLm5leHRTaWJsaW5nO2Zvcig7cCYmcC5ub2RlVHlwZT09MTspe2lmKHAuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXtmLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZik7YnJlYWt9cD1wLmZpcnN0Q2hpbGR9fX1lbHNlIGlmKGUyJiZjLmxlbmd0aCl7bGV0IGY9Yy5maWx0ZXIocD0+cC5ub2RlTmFtZT09IkJSIik7aWYoZi5sZW5ndGg9PTIpe2xldFtwLGhdPWY7cC5wYXJlbnROb2RlJiZwLnBhcmVudE5vZGUucGFyZW50Tm9kZT09aC5wYXJlbnROb2RlP2gucmVtb3ZlKCk6cC5yZW1vdmUoKX1lbHNle2xldHtmb2N1c05vZGU6cH09dGhpcy5jdXJyZW50U2VsZWN0aW9uO2ZvcihsZXQgaCBvZiBmKXtsZXQgbT1oLnBhcmVudE5vZGU7bSYmbS5ub2RlTmFtZT09IkxJIiYmKCFwfHxnTmEoZSxwKSE9bSkmJmgucmVtb3ZlKCl9fX1sZXQgZD1udWxsO248MCYmcyYmZS5pbnB1dC5sYXN0Rm9jdXM+RGF0ZS5ub3coKS0yMDAmJk1hdGgubWF4KGUuaW5wdXQubGFzdFRvdWNoLGUuaW5wdXQubGFzdENsaWNrLnRpbWUpPERhdGUubm93KCktMzAwJiZTZmUoYSkmJihkPVBtdChlKSkmJmQuZXEoSnQubmVhcihlLnN0YXRlLmRvYy5yZXNvbHZlKDApLDEpKT8oZS5pbnB1dC5sYXN0Rm9jdXM9MCxvMyhlKSx0aGlzLmN1cnJlbnRTZWxlY3Rpb24uc2V0KGEpLGUuc2Nyb2xsVG9TZWxlY3Rpb24oKSk6KG4+LTF8fHMpJiYobj4tMSYmKGUuZG9jVmlldy5tYXJrRGlydHkobixvKSxoTmEoZSkpLGUuaW5wdXQuYmFkU2FmYXJpQ29tcG9zaXRpb24mJihlLmlucHV0LmJhZFNhZmFyaUNvbXBvc2l0aW9uPSExLGJOYShlLGMpKSx0aGlzLmhhbmRsZURPTUNoYW5nZShuLG8sbCxjKSxlLmRvY1ZpZXcmJmUuZG9jVmlldy5kaXJ0eT9lLnVwZGF0ZVN0YXRlKGUuc3RhdGUpOnRoaXMuY3VycmVudFNlbGVjdGlvbi5lcShhKXx8bzMoZSksdGhpcy5jdXJyZW50U2VsZWN0aW9uLnNldChhKSl9cmVnaXN0ZXJNdXRhdGlvbihlLHIpe2lmKHIuaW5kZXhPZihlLnRhcmdldCk+LTEpcmV0dXJuIG51bGw7bGV0IGE9dGhpcy52aWV3LmRvY1ZpZXcubmVhcmVzdERlc2MoZS50YXJnZXQpO2lmKGUudHlwZT09ImF0dHJpYnV0ZXMiJiYoYT09dGhpcy52aWV3LmRvY1ZpZXd8fGUuYXR0cmlidXRlTmFtZT09ImNvbnRlbnRlZGl0YWJsZSJ8fGUuYXR0cmlidXRlTmFtZT09InN0eWxlIiYmIWUub2xkVmFsdWUmJiFlLnRhcmdldC5nZXRBdHRyaWJ1dGUoInN0eWxlIikpfHwhYXx8YS5pZ25vcmVNdXRhdGlvbihlKSlyZXR1cm4gbnVsbDtpZihlLnR5cGU9PSJjaGlsZExpc3QiKXtmb3IobGV0IGY9MDtmPGUuYWRkZWROb2Rlcy5sZW5ndGg7ZisrKXtsZXQgcD1lLmFkZGVkTm9kZXNbZl07ci5wdXNoKHApLHAubm9kZVR5cGU9PTMmJih0aGlzLmxhc3RDaGFuZ2VkVGV4dE5vZGU9cCl9aWYoYS5jb250ZW50RE9NJiZhLmNvbnRlbnRET00hPWEuZG9tJiYhYS5jb250ZW50RE9NLmNvbnRhaW5zKGUudGFyZ2V0KSlyZXR1cm57ZnJvbTphLnBvc0JlZm9yZSx0bzphLnBvc0FmdGVyfTtsZXQgcz1lLnByZXZpb3VzU2libGluZyxuPWUubmV4dFNpYmxpbmc7aWYoRTEmJllwPD0xMSYmZS5hZGRlZE5vZGVzLmxlbmd0aClmb3IobGV0IGY9MDtmPGUuYWRkZWROb2Rlcy5sZW5ndGg7ZisrKXtsZXR7cHJldmlvdXNTaWJsaW5nOnAsbmV4dFNpYmxpbmc6aH09ZS5hZGRlZE5vZGVzW2ZdOyghcHx8QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChlLmFkZGVkTm9kZXMscCk8MCkmJihzPXApLCghaHx8QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChlLmFkZGVkTm9kZXMsaCk8MCkmJihuPWgpfWxldCBvPXMmJnMucGFyZW50Tm9kZT09ZS50YXJnZXQ/UG4ocykrMTowLGw9YS5sb2NhbFBvc0Zyb21ET00oZS50YXJnZXQsbywtMSksYz1uJiZuLnBhcmVudE5vZGU9PWUudGFyZ2V0P1BuKG4pOmUudGFyZ2V0LmNoaWxkTm9kZXMubGVuZ3RoLGQ9YS5sb2NhbFBvc0Zyb21ET00oZS50YXJnZXQsYywxKTtyZXR1cm57ZnJvbTpsLHRvOmR9fWVsc2UgcmV0dXJuIGUudHlwZT09ImF0dHJpYnV0ZXMiP3tmcm9tOmEucG9zQXRTdGFydC1hLmJvcmRlcix0bzphLnBvc0F0RW5kK2EuYm9yZGVyfToodGhpcy5sYXN0Q2hhbmdlZFRleHROb2RlPWUudGFyZ2V0LHtmcm9tOmEucG9zQXRTdGFydCx0bzphLnBvc0F0RW5kLHR5cGVPdmVyOmUudGFyZ2V0Lm5vZGVWYWx1ZT09ZS5vbGRWYWx1ZX0pfX0sTEdyPW5ldyBXZWFrTWFwLERHcj0hMTtpKGhOYSwiY2hlY2tDU1MiKTtpKCRHciwicmFuZ2VUb1NlbGVjdGlvblJhbmdlIik7aShtTmEsInNhZmFyaVNoYWRvd1NlbGVjdGlvblJhbmdlIik7aShnTmEsImJsb2NrUGFyZW50Iik7aShiTmEsImZpeFVwQmFkU2FmYXJpQ29tcG9zaXRpb24iKTtpKHhOYSwicGFyc2VCZXR3ZWVuIik7aSh2TmEsInJ1bGVGcm9tTm9kZSIpO3lOYT0vXihhfGFiYnJ8YWNyb255bXxifGJkW2lvXXxiaWd8YnJ8YnV0dG9ufGNpdGV8Y29kZXxkYXRhKGxpc3QpP3xkZWx8ZGZufGVtfGl8aW1nfGluc3xrYmR8bGFiZWx8bWFwfG1hcmt8bWV0ZXJ8b3V0cHV0fHF8cnVieXxzfHNhbXB8c21hbGx8c3BhbnxzdHJvbmd8c3VbYnBdfHRpbWV8dXx0dHx2YXIpJC9pO2kod05hLCJyZWFkRE9NQ2hhbmdlIik7aShBR3IsInJlc29sdmVTZWxlY3Rpb24iKTtpKGtOYSwiaXNNYXJrQ2hhbmdlIik7aShTTmEsImxvb2tzTGlrZUJhY2tzcGFjZSIpO2kodDV0LCJza2lwQ2xvc2luZ0FuZE9wZW5pbmciKTtpKE1OYSwiZmluZERpZmYiKTtpKEVHciwiaXNTdXJyb2dhdGVQYWlyIik7Q05hPUhtdCx6TmE9SHRlLG93PWNsYXNze3N0YXRpY3tpKHRoaXMsIkVkaXRvclZpZXciKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuX3Jvb3Q9bnVsbCx0aGlzLmZvY3VzZWQ9ITEsdGhpcy50cmFja1dyaXRlcz1udWxsLHRoaXMubW91bnRlZD0hMSx0aGlzLm1hcmtDdXJzb3I9bnVsbCx0aGlzLmN1cnNvcldyYXBwZXI9bnVsbCx0aGlzLmxhc3RTZWxlY3RlZFZpZXdEZXNjPXZvaWQgMCx0aGlzLmlucHV0PW5ldyBqbXQsdGhpcy5wcmV2RGlyZWN0UGx1Z2lucz1bXSx0aGlzLnBsdWdpblZpZXdzPVtdLHRoaXMucmVxdWlyZXNHZWNrb0hhY2tOb2RlPSExLHRoaXMuZHJhZ2dpbmc9bnVsbCx0aGlzLl9wcm9wcz1yLHRoaXMuc3RhdGU9ci5zdGF0ZSx0aGlzLmRpcmVjdFBsdWdpbnM9ci5wbHVnaW5zfHxbXSx0aGlzLmRpcmVjdFBsdWdpbnMuZm9yRWFjaChSR3IpLHRoaXMuZGlzcGF0Y2g9dGhpcy5kaXNwYXRjaC5iaW5kKHRoaXMpLHRoaXMuZG9tPWUmJmUubW91bnR8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUmJihlLmFwcGVuZENoaWxkP2UuYXBwZW5kQ2hpbGQodGhpcy5kb20pOnR5cGVvZiBlPT0iZnVuY3Rpb24iP2UodGhpcy5kb20pOmUubW91bnQmJih0aGlzLm1vdW50ZWQ9ITApKSx0aGlzLmVkaXRhYmxlPU5Hcih0aGlzKSxQR3IodGhpcyksdGhpcy5ub2RlVmlld3M9T0dyKHRoaXMpLHRoaXMuZG9jVmlldz1HV3IodGhpcy5zdGF0ZS5kb2MsSUdyKHRoaXMpLFhtdCh0aGlzKSx0aGlzLmRvbSx0aGlzKSx0aGlzLmRvbU9ic2VydmVyPW5ldyBlNXQodGhpcywoYSxzLG4sbyk9PndOYSh0aGlzLGEscyxuLG8pKSx0aGlzLmRvbU9ic2VydmVyLnN0YXJ0KCksalBhKHRoaXMpLHRoaXMudXBkYXRlUGx1Z2luVmlld3MoKX1nZXQgY29tcG9zaW5nKCl7cmV0dXJuIHRoaXMuaW5wdXQuY29tcG9zaW5nfWdldCBwcm9wcygpe2lmKHRoaXMuX3Byb3BzLnN0YXRlIT10aGlzLnN0YXRlKXtsZXQgZT10aGlzLl9wcm9wczt0aGlzLl9wcm9wcz17fTtmb3IobGV0IHIgaW4gZSl0aGlzLl9wcm9wc1tyXT1lW3JdO3RoaXMuX3Byb3BzLnN0YXRlPXRoaXMuc3RhdGV9cmV0dXJuIHRoaXMuX3Byb3BzfXVwZGF0ZShlKXtlLmhhbmRsZURPTUV2ZW50cyE9dGhpcy5fcHJvcHMuaGFuZGxlRE9NRXZlbnRzJiZVbXQodGhpcyk7bGV0IHI9dGhpcy5fcHJvcHM7dGhpcy5fcHJvcHM9ZSxlLnBsdWdpbnMmJihlLnBsdWdpbnMuZm9yRWFjaChSR3IpLHRoaXMuZGlyZWN0UGx1Z2lucz1lLnBsdWdpbnMpLHRoaXMudXBkYXRlU3RhdGVJbm5lcihlLnN0YXRlLHIpfXNldFByb3BzKGUpe2xldCByPXt9O2ZvcihsZXQgYSBpbiB0aGlzLl9wcm9wcylyW2FdPXRoaXMuX3Byb3BzW2FdO3Iuc3RhdGU9dGhpcy5zdGF0ZTtmb3IobGV0IGEgaW4gZSlyW2FdPWVbYV07dGhpcy51cGRhdGUocil9dXBkYXRlU3RhdGUoZSl7dGhpcy51cGRhdGVTdGF0ZUlubmVyKGUsdGhpcy5fcHJvcHMpfXVwZGF0ZVN0YXRlSW5uZXIoZSxyKXt2YXIgYTtsZXQgcz10aGlzLnN0YXRlLG49ITEsbz0hMTtlLnN0b3JlZE1hcmtzJiZ0aGlzLmNvbXBvc2luZyYmKGtHcih0aGlzKSxvPSEwKSx0aGlzLnN0YXRlPWU7bGV0IGw9cy5wbHVnaW5zIT1lLnBsdWdpbnN8fHRoaXMuX3Byb3BzLnBsdWdpbnMhPXIucGx1Z2lucztpZihsfHx0aGlzLl9wcm9wcy5wbHVnaW5zIT1yLnBsdWdpbnN8fHRoaXMuX3Byb3BzLm5vZGVWaWV3cyE9ci5ub2RlVmlld3Mpe2xldCBtPU9Hcih0aGlzKTtUTmEobSx0aGlzLm5vZGVWaWV3cykmJih0aGlzLm5vZGVWaWV3cz1tLG49ITApfShsfHxyLmhhbmRsZURPTUV2ZW50cyE9dGhpcy5fcHJvcHMuaGFuZGxlRE9NRXZlbnRzKSYmVW10KHRoaXMpLHRoaXMuZWRpdGFibGU9TkdyKHRoaXMpLFBHcih0aGlzKTtsZXQgYz1YbXQodGhpcyksZD1JR3IodGhpcyksZj1zLnBsdWdpbnMhPWUucGx1Z2lucyYmIXMuZG9jLmVxKGUuZG9jKT8icmVzZXQiOmUuc2Nyb2xsVG9TZWxlY3Rpb24+cy5zY3JvbGxUb1NlbGVjdGlvbj8idG8gc2VsZWN0aW9uIjoicHJlc2VydmUiLHA9bnx8IXRoaXMuZG9jVmlldy5tYXRjaGVzTm9kZShlLmRvYyxkLGMpOyhwfHwhZS5zZWxlY3Rpb24uZXEocy5zZWxlY3Rpb24pKSYmKG89ITApO2xldCBoPWY9PSJwcmVzZXJ2ZSImJm8mJnRoaXMuZG9tLnN0eWxlLm92ZXJmbG93QW5jaG9yPT1udWxsJiZsUGEodGhpcyk7aWYobyl7dGhpcy5kb21PYnNlcnZlci5zdG9wKCk7bGV0IG09cCYmKEUxfHxObikmJiF0aGlzLmNvbXBvc2luZyYmIXMuc2VsZWN0aW9uLmVtcHR5JiYhZS5zZWxlY3Rpb24uZW1wdHkmJl9OYShzLnNlbGVjdGlvbixlLnNlbGVjdGlvbik7aWYocCl7bGV0IHY9Tm4/dGhpcy50cmFja1dyaXRlcz10aGlzLmRvbVNlbGVjdGlvblJhbmdlKCkuZm9jdXNOb2RlOm51bGw7dGhpcy5jb21wb3NpbmcmJih0aGlzLmlucHV0LmNvbXBvc2l0aW9uTm9kZT1hTmEodGhpcykpLChufHwhdGhpcy5kb2NWaWV3LnVwZGF0ZShlLmRvYyxkLGMsdGhpcykpJiYodGhpcy5kb2NWaWV3LnVwZGF0ZU91dGVyRGVjbyhkKSx0aGlzLmRvY1ZpZXcuZGVzdHJveSgpLHRoaXMuZG9jVmlldz1HV3IoZS5kb2MsZCxjLHRoaXMuZG9tLHRoaXMpKSx2JiYoIXRoaXMudHJhY2tXcml0ZXN8fCF0aGlzLmRvbS5jb250YWlucyh0aGlzLnRyYWNrV3JpdGVzKSkmJihtPSEwKX1tfHwhKHRoaXMuaW5wdXQubW91c2VEb3duJiZ0aGlzLmRvbU9ic2VydmVyLmN1cnJlbnRTZWxlY3Rpb24uZXEodGhpcy5kb21TZWxlY3Rpb25SYW5nZSgpKSYmTFBhKHRoaXMpKT9vMyh0aGlzLG0pOihyR3IodGhpcyxlLnNlbGVjdGlvbiksdGhpcy5kb21PYnNlcnZlci5zZXRDdXJTZWxlY3Rpb24oKSksdGhpcy5kb21PYnNlcnZlci5zdGFydCgpfXRoaXMudXBkYXRlUGx1Z2luVmlld3MocyksISgoYT10aGlzLmRyYWdnaW5nKT09PW51bGx8fGE9PT12b2lkIDApJiZhLm5vZGUmJiFzLmRvYy5lcShlLmRvYykmJnRoaXMudXBkYXRlRHJhZ2dlZE5vZGUodGhpcy5kcmFnZ2luZyxzKSxmPT0icmVzZXQiP3RoaXMuZG9tLnNjcm9sbFRvcD0wOmY9PSJ0byBzZWxlY3Rpb24iP3RoaXMuc2Nyb2xsVG9TZWxlY3Rpb24oKTpoJiZjUGEoaCl9c2Nyb2xsVG9TZWxlY3Rpb24oKXtsZXQgZT10aGlzLmRvbVNlbGVjdGlvblJhbmdlKCkuZm9jdXNOb2RlO2lmKCEoIWV8fCF0aGlzLmRvbS5jb250YWlucyhlLm5vZGVUeXBlPT0xP2U6ZS5wYXJlbnROb2RlKSkpe2lmKCF0aGlzLnNvbWVQcm9wKCJoYW5kbGVTY3JvbGxUb1NlbGVjdGlvbiIscj0+cih0aGlzKSkpaWYodGhpcy5zdGF0ZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBJdCl7bGV0IHI9dGhpcy5kb2NWaWV3LmRvbUFmdGVyUG9zKHRoaXMuc3RhdGUuc2VsZWN0aW9uLmZyb20pO3Iubm9kZVR5cGU9PTEmJlBXcih0aGlzLHIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZSl9ZWxzZSBQV3IodGhpcyx0aGlzLmNvb3Jkc0F0UG9zKHRoaXMuc3RhdGUuc2VsZWN0aW9uLmhlYWQsMSksZSl9fWRlc3Ryb3lQbHVnaW5WaWV3cygpe2xldCBlO2Zvcig7ZT10aGlzLnBsdWdpblZpZXdzLnBvcCgpOyllLmRlc3Ryb3kmJmUuZGVzdHJveSgpfXVwZGF0ZVBsdWdpblZpZXdzKGUpe2lmKCFlfHxlLnBsdWdpbnMhPXRoaXMuc3RhdGUucGx1Z2luc3x8dGhpcy5kaXJlY3RQbHVnaW5zIT10aGlzLnByZXZEaXJlY3RQbHVnaW5zKXt0aGlzLnByZXZEaXJlY3RQbHVnaW5zPXRoaXMuZGlyZWN0UGx1Z2lucyx0aGlzLmRlc3Ryb3lQbHVnaW5WaWV3cygpO2ZvcihsZXQgcj0wO3I8dGhpcy5kaXJlY3RQbHVnaW5zLmxlbmd0aDtyKyspe2xldCBhPXRoaXMuZGlyZWN0UGx1Z2luc1tyXTthLnNwZWMudmlldyYmdGhpcy5wbHVnaW5WaWV3cy5wdXNoKGEuc3BlYy52aWV3KHRoaXMpKX1mb3IobGV0IHI9MDtyPHRoaXMuc3RhdGUucGx1Z2lucy5sZW5ndGg7cisrKXtsZXQgYT10aGlzLnN0YXRlLnBsdWdpbnNbcl07YS5zcGVjLnZpZXcmJnRoaXMucGx1Z2luVmlld3MucHVzaChhLnNwZWMudmlldyh0aGlzKSl9fWVsc2UgZm9yKGxldCByPTA7cjx0aGlzLnBsdWdpblZpZXdzLmxlbmd0aDtyKyspe2xldCBhPXRoaXMucGx1Z2luVmlld3Nbcl07YS51cGRhdGUmJmEudXBkYXRlKHRoaXMsZSl9fXVwZGF0ZURyYWdnZWROb2RlKGUscil7bGV0IGE9ZS5ub2RlLHM9LTE7aWYoYS5mcm9tPHRoaXMuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZSYmdGhpcy5zdGF0ZS5kb2Mubm9kZUF0KGEuZnJvbSk9PWEubm9kZSlzPWEuZnJvbTtlbHNle2xldCBuPWEuZnJvbSsodGhpcy5zdGF0ZS5kb2MuY29udGVudC5zaXplLXIuZG9jLmNvbnRlbnQuc2l6ZSk7KG4+MCYmbjx0aGlzLnN0YXRlLmRvYy5jb250ZW50LnNpemUmJnRoaXMuc3RhdGUuZG9jLm5vZGVBdChuKSk9PWEubm9kZSYmKHM9bil9dGhpcy5kcmFnZ2luZz1uZXcgRGZlKGUuc2xpY2UsZS5tb3ZlLHM8MD92b2lkIDA6SXQuY3JlYXRlKHRoaXMuc3RhdGUuZG9jLHMpKX1zb21lUHJvcChlLHIpe2xldCBhPXRoaXMuX3Byb3BzJiZ0aGlzLl9wcm9wc1tlXSxzO2lmKGEhPW51bGwmJihzPXI/cihhKTphKSlyZXR1cm4gcztmb3IobGV0IG89MDtvPHRoaXMuZGlyZWN0UGx1Z2lucy5sZW5ndGg7bysrKXtsZXQgbD10aGlzLmRpcmVjdFBsdWdpbnNbb10ucHJvcHNbZV07aWYobCE9bnVsbCYmKHM9cj9yKGwpOmwpKXJldHVybiBzfWxldCBuPXRoaXMuc3RhdGUucGx1Z2lucztpZihuKWZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXtsZXQgbD1uW29dLnByb3BzW2VdO2lmKGwhPW51bGwmJihzPXI/cihsKTpsKSlyZXR1cm4gc319aGFzRm9jdXMoKXtpZihFMSl7bGV0IGU9dGhpcy5yb290LmFjdGl2ZUVsZW1lbnQ7aWYoZT09dGhpcy5kb20pcmV0dXJuITA7aWYoIWV8fCF0aGlzLmRvbS5jb250YWlucyhlKSlyZXR1cm4hMTtmb3IoO2UmJnRoaXMuZG9tIT1lJiZ0aGlzLmRvbS5jb250YWlucyhlKTspe2lmKGUuY29udGVudEVkaXRhYmxlPT0iZmFsc2UiKXJldHVybiExO2U9ZS5wYXJlbnRFbGVtZW50fXJldHVybiEwfXJldHVybiB0aGlzLnJvb3QuYWN0aXZlRWxlbWVudD09dGhpcy5kb219Zm9jdXMoKXt0aGlzLmRvbU9ic2VydmVyLnN0b3AoKSx0aGlzLmVkaXRhYmxlJiZkUGEodGhpcy5kb20pLG8zKHRoaXMpLHRoaXMuZG9tT2JzZXJ2ZXIuc3RhcnQoKX1nZXQgcm9vdCgpe2xldCBlPXRoaXMuX3Jvb3Q7aWYoZT09bnVsbCl7Zm9yKGxldCByPXRoaXMuZG9tLnBhcmVudE5vZGU7cjtyPXIucGFyZW50Tm9kZSlpZihyLm5vZGVUeXBlPT05fHxyLm5vZGVUeXBlPT0xMSYmci5ob3N0KXJldHVybiByLmdldFNlbGVjdGlvbnx8KE9iamVjdC5nZXRQcm90b3R5cGVPZihyKS5nZXRTZWxlY3Rpb249KCk9PnIub3duZXJEb2N1bWVudC5nZXRTZWxlY3Rpb24oKSksdGhpcy5fcm9vdD1yfXJldHVybiBlfHxkb2N1bWVudH11cGRhdGVSb290KCl7dGhpcy5fcm9vdD1udWxsfXBvc0F0Q29vcmRzKGUpe3JldHVybiBtUGEodGhpcyxlKX1jb29yZHNBdFBvcyhlLHI9MSl7cmV0dXJuIEhXcih0aGlzLGUscil9ZG9tQXRQb3MoZSxyPTApe3JldHVybiB0aGlzLmRvY1ZpZXcuZG9tRnJvbVBvcyhlLHIpfW5vZGVET00oZSl7bGV0IHI9dGhpcy5kb2NWaWV3LmRlc2NBdChlKTtyZXR1cm4gcj9yLm5vZGVET006bnVsbH1wb3NBdERPTShlLHIsYT0tMSl7bGV0IHM9dGhpcy5kb2NWaWV3LnBvc0Zyb21ET00oZSxyLGEpO2lmKHM9PW51bGwpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkRPTSBwb3NpdGlvbiBub3QgaW5zaWRlIHRoZSBlZGl0b3IiKTtyZXR1cm4gc31lbmRPZlRleHRibG9jayhlLHIpe3JldHVybiB5UGEodGhpcyxyfHx0aGlzLnN0YXRlLGUpfXBhc3RlSFRNTChlLHIpe3JldHVybiBWdGUodGhpcywiIixlLCExLHJ8fG5ldyBDbGlwYm9hcmRFdmVudCgicGFzdGUiKSl9cGFzdGVUZXh0KGUscil7cmV0dXJuIFZ0ZSh0aGlzLGUsbnVsbCwhMCxyfHxuZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIikpfXNlcmlhbGl6ZUZvckNsaXBib2FyZChlKXtyZXR1cm4gQm10KHRoaXMsZSl9ZGVzdHJveSgpe3RoaXMuZG9jVmlldyYmKFVQYSh0aGlzKSx0aGlzLmRlc3Ryb3lQbHVnaW5WaWV3cygpLHRoaXMubW91bnRlZD8odGhpcy5kb2NWaWV3LnVwZGF0ZSh0aGlzLnN0YXRlLmRvYyxbXSxYbXQodGhpcyksdGhpcyksdGhpcy5kb20udGV4dENvbnRlbnQ9IiIpOnRoaXMuZG9tLnBhcmVudE5vZGUmJnRoaXMuZG9tLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5kb20pLHRoaXMuZG9jVmlldy5kZXN0cm95KCksdGhpcy5kb2NWaWV3PW51bGwsWElhKCkpfWdldCBpc0Rlc3Ryb3llZCgpe3JldHVybiB0aGlzLmRvY1ZpZXc9PW51bGx9ZGlzcGF0Y2hFdmVudChlKXtyZXR1cm4gR1BhKHRoaXMsZSl9ZG9tU2VsZWN0aW9uUmFuZ2UoKXtsZXQgZT10aGlzLmRvbVNlbGVjdGlvbigpO3JldHVybiBlP0NvJiZ0aGlzLnJvb3Qubm9kZVR5cGU9PT0xMSYmYVBhKHRoaXMuZG9tLm93bmVyRG9jdW1lbnQpPT10aGlzLmRvbSYmbU5hKHRoaXMsZSl8fGU6e2ZvY3VzTm9kZTpudWxsLGZvY3VzT2Zmc2V0OjAsYW5jaG9yTm9kZTpudWxsLGFuY2hvck9mZnNldDowfX1kb21TZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290LmdldFNlbGVjdGlvbigpfX07b3cucHJvdG90eXBlLmRpc3BhdGNoPWZ1bmN0aW9uKHQpe2xldCBlPXRoaXMuX3Byb3BzLmRpc3BhdGNoVHJhbnNhY3Rpb247ZT9lLmNhbGwodGhpcyx0KTp0aGlzLnVwZGF0ZVN0YXRlKHRoaXMuc3RhdGUuYXBwbHkodCkpfTtpKElHciwiY29tcHV0ZURvY0RlY28iKTtpKFBHciwidXBkYXRlQ3Vyc29yV3JhcHBlciIpO2koTkdyLCJnZXRFZGl0YWJsZSIpO2koX05hLCJzZWxlY3Rpb25Db250ZXh0Q2hhbmdlZCIpO2koT0dyLCJidWlsZE5vZGVWaWV3cyIpO2koVE5hLCJjaGFuZ2VkTm9kZVZpZXdzIik7aShSR3IsImNoZWNrU3RhdGVDb21wb25lbnQiKX0pO3ZhciBGR3I9dSgoKT0+e3I1dCgpfSk7ZnVuY3Rpb24gQkdyKHQpe3ZhciBlPUxOYSYmdC5tZXRhS2V5JiZ0LnNoaWZ0S2V5JiYhdC5jdHJsS2V5JiYhdC5hbHRLZXl8fEROYSYmdC5zaGlmdEtleSYmdC5rZXkmJnQua2V5Lmxlbmd0aD09MXx8dC5rZXk9PSJVbmlkZW50aWZpZWQiLHI9IWUmJnQua2V5fHwodC5zaGlmdEtleT9JZmU6bDMpW3Qua2V5Q29kZV18fHQua2V5fHwiVW5pZGVudGlmaWVkIjtyZXR1cm4gcj09IkVzYyImJihyPSJFc2NhcGUiKSxyPT0iRGVsIiYmKHI9IkRlbGV0ZSIpLHI9PSJMZWZ0IiYmKHI9IkFycm93TGVmdCIpLHI9PSJVcCImJihyPSJBcnJvd1VwIikscj09IlJpZ2h0IiYmKHI9IkFycm93UmlnaHQiKSxyPT0iRG93biImJihyPSJBcnJvd0Rvd24iKSxyfXZhciBsMyxJZmUsTE5hLEROYSxEcyxQZmUsSEdyPXUoKCk9PntsMz17ODoiQmFja3NwYWNlIiw5OiJUYWIiLDEwOiJFbnRlciIsMTI6Ik51bUxvY2siLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMjA6IkNhcHNMb2NrIiwyNzoiRXNjYXBlIiwzMjoiICIsMzM6IlBhZ2VVcCIsMzQ6IlBhZ2VEb3duIiwzNToiRW5kIiwzNjoiSG9tZSIsMzc6IkFycm93TGVmdCIsMzg6IkFycm93VXAiLDM5OiJBcnJvd1JpZ2h0Iiw0MDoiQXJyb3dEb3duIiw0NDoiUHJpbnRTY3JlZW4iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDU5OiI7Iiw2MToiPSIsOTE6Ik1ldGEiLDkyOiJNZXRhIiwxMDY6IioiLDEwNzoiKyIsMTA4OiIsIiwxMDk6Ii0iLDExMDoiLiIsMTExOiIvIiwxNDQ6Ik51bUxvY2siLDE0NToiU2Nyb2xsTG9jayIsMTYwOiJTaGlmdCIsMTYxOiJTaGlmdCIsMTYyOiJDb250cm9sIiwxNjM6IkNvbnRyb2wiLDE2NDoiQWx0IiwxNjU6IkFsdCIsMTczOiItIiwxODY6IjsiLDE4NzoiPSIsMTg4OiIsIiwxODk6Ii0iLDE5MDoiLiIsMTkxOiIvIiwxOTI6ImAiLDIxOToiWyIsMjIwOiJcXCIsMjIxOiJdIiwyMjI6IicifSxJZmU9ezQ4OiIpIiw0OToiISIsNTA6IkAiLDUxOiIjIiw1MjoiJCIsNTM6IiUiLDU0OiJeIiw1NToiJiIsNTY6IioiLDU3OiIoIiw1OToiOiIsNjE6IisiLDE3MzoiXyIsMTg2OiI6IiwxODc6IisiLDE4ODoiPCIsMTg5OiJfIiwxOTA6Ij4iLDE5MToiPyIsMTkyOiJ+IiwyMTk6InsiLDIyMDoifCIsMjIxOiJ9IiwyMjI6JyInfSxMTmE9dHlwZW9mIG5hdmlnYXRvcjwidSImJi9NYWMvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKSxETmE9dHlwZW9mIG5hdmlnYXRvcjwidSImJi9NU0lFIFxkfFRyaWRlbnRcLyg/Ols3LTldfFxkezIsfSlcLi4qcnY6KFxkKykvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudCk7Zm9yKERzPTA7RHM8MTA7RHMrKylsM1s0OCtEc109bDNbOTYrRHNdPVN0cmluZyhEcyk7Zm9yKERzPTE7RHM8PTI0O0RzKyspbDNbRHMrMTExXT0iRiIrRHM7Zm9yKERzPTY1O0RzPD05MDtEcysrKWwzW0RzXT1TdHJpbmcuZnJvbUNoYXJDb2RlKERzKzMyKSxJZmVbRHNdPVN0cmluZy5mcm9tQ2hhckNvZGUoRHMpO2ZvcihQZmUgaW4gbDMpSWZlLmhhc093blByb3BlcnR5KFBmZSl8fChJZmVbUGZlXT1sM1tQZmVdKTtpKEJHciwia2V5TmFtZSIpfSk7ZnVuY3Rpb24gRU5hKHQpe2xldCBlPXQuc3BsaXQoLy0oPyEkKS8pLHI9ZVtlLmxlbmd0aC0xXTtyPT0iU3BhY2UiJiYocj0iICIpO2xldCBhLHMsbixvO2ZvcihsZXQgbD0wO2w8ZS5sZW5ndGgtMTtsKyspe2xldCBjPWVbbF07aWYoL14oY21kfG1ldGF8bSkkL2kudGVzdChjKSlvPSEwO2Vsc2UgaWYoL15hKGx0KT8kL2kudGVzdChjKSlhPSEwO2Vsc2UgaWYoL14oY3xjdHJsfGNvbnRyb2wpJC9pLnRlc3QoYykpcz0hMDtlbHNlIGlmKC9ecyhoaWZ0KT8kL2kudGVzdChjKSluPSEwO2Vsc2UgaWYoL15tb2QkL2kudGVzdChjKSkkTmE/bz0hMDpzPSEwO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgbW9kaWZpZXIgbmFtZTogIitjKX1yZXR1cm4gYSYmKHI9IkFsdC0iK3IpLHMmJihyPSJDdHJsLSIrciksbyYmKHI9Ik1ldGEtIityKSxuJiYocj0iU2hpZnQtIityKSxyfWZ1bmN0aW9uIElOYSh0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgciBpbiB0KWVbRU5hKHIpXT10W3JdO3JldHVybiBlfWZ1bmN0aW9uIGE1dCh0LGUscj0hMCl7cmV0dXJuIGUuYWx0S2V5JiYodD0iQWx0LSIrdCksZS5jdHJsS2V5JiYodD0iQ3RybC0iK3QpLGUubWV0YUtleSYmKHQ9Ik1ldGEtIit0KSxyJiZlLnNoaWZ0S2V5JiYodD0iU2hpZnQtIit0KSx0fWZ1bmN0aW9uIGk1dCh0KXtyZXR1cm4gbmV3IFFhKHtwcm9wczp7aGFuZGxlS2V5RG93bjpOZmUodCl9fSl9ZnVuY3Rpb24gTmZlKHQpe2xldCBlPUlOYSh0KTtyZXR1cm4gZnVuY3Rpb24ocixhKXtsZXQgcz1CR3IoYSksbixvPWVbYTV0KHMsYSldO2lmKG8mJm8oci5zdGF0ZSxyLmRpc3BhdGNoLHIpKXJldHVybiEwO2lmKHMubGVuZ3RoPT0xJiZzIT0iICIpe2lmKGEuc2hpZnRLZXkpe2xldCBsPWVbYTV0KHMsYSwhMSldO2lmKGwmJmwoci5zdGF0ZSxyLmRpc3BhdGNoLHIpKXJldHVybiEwfWlmKChhLmFsdEtleXx8YS5tZXRhS2V5fHxhLmN0cmxLZXkpJiYhKEFOYSYmYS5jdHJsS2V5JiZhLmFsdEtleSkmJihuPWwzW2Eua2V5Q29kZV0pJiZuIT1zKXtsZXQgbD1lW2E1dChuLGEpXTtpZihsJiZsKHIuc3RhdGUsci5kaXNwYXRjaCxyKSlyZXR1cm4hMH19cmV0dXJuITF9fXZhciAkTmEsQU5hLHM1dD11KCgpPT57SEdyKCk7YTMoKTskTmE9dHlwZW9mIG5hdmlnYXRvcjwidSImJi9NYWN8aVAoaG9uZXxbb2FdZCkvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKSxBTmE9dHlwZW9mIG5hdmlnYXRvcjwidSImJi9XaW4vLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKTtpKEVOYSwibm9ybWFsaXplS2V5TmFtZSIpO2koSU5hLCJub3JtYWxpemUiKTtpKGE1dCwibW9kaWZpZXJzIik7aShpNXQsImtleW1hcCIpO2koTmZlLCJrZXlkb3duSGFuZGxlciIpfSk7dmFyIHFHcj11KCgpPT57czV0KCl9KTt2YXIgVkdyPXUoKCk9PntqcCgpfSk7dmFyIGpHcj11KCgpPT57V3AoKX0pO2Z1bmN0aW9uIFVHcih0LGUpe2xldHskY3Vyc29yOnJ9PXQuc2VsZWN0aW9uO3JldHVybiFyfHwoZT8hZS5lbmRPZlRleHRibG9jaygiYmFja3dhcmQiLHQpOnIucGFyZW50T2Zmc2V0PjApP251bGw6cn1mdW5jdGlvbiBXR3IodCxlLHIpe2xldCBhPWUubm9kZUJlZm9yZSxzPWEsbj1lLnBvcy0xO2Zvcig7IXMuaXNUZXh0YmxvY2s7bi0tKXtpZihzLnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITE7bGV0IGY9cy5sYXN0Q2hpbGQ7aWYoIWYpcmV0dXJuITE7cz1mfWxldCBvPWUubm9kZUFmdGVyLGw9byxjPWUucG9zKzE7Zm9yKDshbC5pc1RleHRibG9jaztjKyspe2lmKGwudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMTtsZXQgZj1sLmZpcnN0Q2hpbGQ7aWYoIWYpcmV0dXJuITE7bD1mfWxldCBkPVh5KHQuZG9jLG4sYyxtdC5lbXB0eSk7aWYoIWR8fGQuZnJvbSE9bnx8ZCBpbnN0YW5jZW9mIEluJiZkLnNsaWNlLnNpemU+PWMtbilyZXR1cm4hMTtpZihyKXtsZXQgZj10LnRyLnN0ZXAoZCk7Zi5zZXRTZWxlY3Rpb24oZXIuY3JlYXRlKGYuZG9jLG4pKSxyKGYuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9ZnVuY3Rpb24gbHcodCxlLHI9ITEpe2ZvcihsZXQgYT10O2E7YT1lPT0ic3RhcnQiP2EuZmlyc3RDaGlsZDphLmxhc3RDaGlsZCl7aWYoYS5pc1RleHRibG9jaylyZXR1cm4hMDtpZihyJiZhLmNoaWxkQ291bnQhPTEpcmV0dXJuITF9cmV0dXJuITF9ZnVuY3Rpb24gbjV0KHQpe2lmKCF0LnBhcmVudC50eXBlLnNwZWMuaXNvbGF0aW5nKWZvcihsZXQgZT10LmRlcHRoLTE7ZT49MDtlLS0pe2lmKHQuaW5kZXgoZSk+MClyZXR1cm4gdC5kb2MucmVzb2x2ZSh0LmJlZm9yZShlKzEpKTtpZih0Lm5vZGUoZSkudHlwZS5zcGVjLmlzb2xhdGluZylicmVha31yZXR1cm4gbnVsbH1mdW5jdGlvbiBHR3IodCxlKXtsZXR7JGN1cnNvcjpyfT10LnNlbGVjdGlvbjtyZXR1cm4hcnx8KGU/IWUuZW5kT2ZUZXh0YmxvY2soImZvcndhcmQiLHQpOnIucGFyZW50T2Zmc2V0PHIucGFyZW50LmNvbnRlbnQuc2l6ZSk/bnVsbDpyfWZ1bmN0aW9uIG81dCh0KXtpZighdC5wYXJlbnQudHlwZS5zcGVjLmlzb2xhdGluZylmb3IobGV0IGU9dC5kZXB0aC0xO2U+PTA7ZS0tKXtsZXQgcj10Lm5vZGUoZSk7aWYodC5pbmRleChlKSsxPHIuY2hpbGRDb3VudClyZXR1cm4gdC5kb2MucmVzb2x2ZSh0LmFmdGVyKGUrMSkpO2lmKHIudHlwZS5zcGVjLmlzb2xhdGluZylicmVha31yZXR1cm4gbnVsbH1mdW5jdGlvbiBsNXQodCl7Zm9yKGxldCBlPTA7ZTx0LmVkZ2VDb3VudDtlKyspe2xldHt0eXBlOnJ9PXQuZWRnZShlKTtpZihyLmlzVGV4dGJsb2NrJiYhci5oYXNSZXF1aXJlZEF0dHJzKCkpcmV0dXJuIHJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gWUdyKHQpe3JldHVybihlLHIpPT57bGV0eyRmcm9tOmEsJHRvOnN9PWUuc2VsZWN0aW9uO2lmKGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgSXQmJmUuc2VsZWN0aW9uLm5vZGUuaXNCbG9jaylyZXR1cm4hYS5wYXJlbnRPZmZzZXR8fCFBMShlLmRvYyxhLnBvcyk/ITE6KHImJnIoZS50ci5zcGxpdChhLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSksITApO2lmKCFhLmRlcHRoKXJldHVybiExO2xldCBuPVtdLG8sbCxjPSExLGQ9ITE7Zm9yKGxldCBtPWEuZGVwdGg7O20tLSlpZihhLm5vZGUobSkuaXNCbG9jayl7Yz1hLmVuZChtKT09YS5wb3MrKGEuZGVwdGgtbSksZD1hLnN0YXJ0KG0pPT1hLnBvcy0oYS5kZXB0aC1tKSxsPWw1dChhLm5vZGUobS0xKS5jb250ZW50TWF0Y2hBdChhLmluZGV4QWZ0ZXIobS0xKSkpO2xldCBiPXQmJnQocy5wYXJlbnQsYyxhKTtuLnVuc2hpZnQoYnx8KGMmJmw/e3R5cGU6bH06bnVsbCkpLG89bTticmVha31lbHNle2lmKG09PTEpcmV0dXJuITE7bi51bnNoaWZ0KG51bGwpfWxldCBmPWUudHI7KGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgZXJ8fGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgTW8pJiZmLmRlbGV0ZVNlbGVjdGlvbigpO2xldCBwPWYubWFwcGluZy5tYXAoYS5wb3MpLGg9QTEoZi5kb2MscCxuLmxlbmd0aCxuKTtpZihofHwoblswXT1sP3t0eXBlOmx9Om51bGwsaD1BMShmLmRvYyxwLG4ubGVuZ3RoLG4pKSwhaClyZXR1cm4hMTtpZihmLnNwbGl0KHAsbi5sZW5ndGgsbiksIWMmJmQmJmEubm9kZShvKS50eXBlIT1sKXtsZXQgbT1mLm1hcHBpbmcubWFwKGEuYmVmb3JlKG8pKSx2PWYuZG9jLnJlc29sdmUobSk7bCYmYS5ub2RlKG8tMSkuY2FuUmVwbGFjZVdpdGgodi5pbmRleCgpLHYuaW5kZXgoKSsxLGwpJiZmLnNldE5vZGVNYXJrdXAoZi5tYXBwaW5nLm1hcChhLmJlZm9yZShvKSksbCl9cmV0dXJuIHImJnIoZi5zY3JvbGxJbnRvVmlldygpKSwhMH19ZnVuY3Rpb24gTk5hKHQsZSxyKXtsZXQgYT1lLm5vZGVCZWZvcmUscz1lLm5vZGVBZnRlcixuPWUuaW5kZXgoKTtyZXR1cm4hYXx8IXN8fCFhLnR5cGUuY29tcGF0aWJsZUNvbnRlbnQocy50eXBlKT8hMTohYS5jb250ZW50LnNpemUmJmUucGFyZW50LmNhblJlcGxhY2Uobi0xLG4pPyhyJiZyKHQudHIuZGVsZXRlKGUucG9zLWEubm9kZVNpemUsZS5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKTohZS5wYXJlbnQuY2FuUmVwbGFjZShuLG4rMSl8fCEocy5pc1RleHRibG9ja3x8Y2wodC5kb2MsZS5wb3MpKT8hMToociYmcih0LnRyLmpvaW4oZS5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKX1mdW5jdGlvbiBaR3IodCxlLHIsYSl7bGV0IHM9ZS5ub2RlQmVmb3JlLG49ZS5ub2RlQWZ0ZXIsbyxsLGM9cy50eXBlLnNwZWMuaXNvbGF0aW5nfHxuLnR5cGUuc3BlYy5pc29sYXRpbmc7aWYoIWMmJk5OYSh0LGUscikpcmV0dXJuITA7bGV0IGQ9IWMmJmUucGFyZW50LmNhblJlcGxhY2UoZS5pbmRleCgpLGUuaW5kZXgoKSsxKTtpZihkJiYobz0obD1zLmNvbnRlbnRNYXRjaEF0KHMuY2hpbGRDb3VudCkpLmZpbmRXcmFwcGluZyhuLnR5cGUpKSYmbC5tYXRjaFR5cGUob1swXXx8bi50eXBlKS52YWxpZEVuZCl7aWYocil7bGV0IG09ZS5wb3Mrbi5ub2RlU2l6ZSx2PUplLmVtcHR5O2ZvcihsZXQgeT1vLmxlbmd0aC0xO3k+PTA7eS0tKXY9SmUuZnJvbShvW3ldLmNyZWF0ZShudWxsLHYpKTt2PUplLmZyb20ocy5jb3B5KHYpKTtsZXQgYj10LnRyLnN0ZXAobmV3IGRzKGUucG9zLTEsbSxlLnBvcyxtLG5ldyBtdCh2LDEsMCksby5sZW5ndGgsITApKSxnPWIuZG9jLnJlc29sdmUobSsyKm8ubGVuZ3RoKTtnLm5vZGVBZnRlciYmZy5ub2RlQWZ0ZXIudHlwZT09cy50eXBlJiZjbChiLmRvYyxnLnBvcykmJmIuam9pbihnLnBvcykscihiLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfWxldCBmPW4udHlwZS5zcGVjLmlzb2xhdGluZ3x8YT4wJiZjP251bGw6SnQuZmluZEZyb20oZSwxKSxwPWYmJmYuJGZyb20uYmxvY2tSYW5nZShmLiR0byksaD1wJiZjZChwKTtpZihoIT1udWxsJiZoPj1lLmRlcHRoKXJldHVybiByJiZyKHQudHIubGlmdChwLGgpLnNjcm9sbEludG9WaWV3KCkpLCEwO2lmKGQmJmx3KG4sInN0YXJ0IiwhMCkmJmx3KHMsImVuZCIpKXtsZXQgbT1zLHY9W107Zm9yKDt2LnB1c2gobSksIW0uaXNUZXh0YmxvY2s7KW09bS5sYXN0Q2hpbGQ7bGV0IGI9bixnPTE7Zm9yKDshYi5pc1RleHRibG9jaztiPWIuZmlyc3RDaGlsZClnKys7aWYobS5jYW5SZXBsYWNlKG0uY2hpbGRDb3VudCxtLmNoaWxkQ291bnQsYi5jb250ZW50KSl7aWYocil7bGV0IHk9SmUuZW1wdHk7Zm9yKGxldCBNPXYubGVuZ3RoLTE7TT49MDtNLS0peT1KZS5mcm9tKHZbTV0uY29weSh5KSk7bGV0IGs9dC50ci5zdGVwKG5ldyBkcyhlLnBvcy12Lmxlbmd0aCxlLnBvcytuLm5vZGVTaXplLGUucG9zK2csZS5wb3Mrbi5ub2RlU2l6ZS1nLG5ldyBtdCh5LHYubGVuZ3RoLDApLDAsITApKTtyKGsuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9fXJldHVybiExfWZ1bmN0aW9uIFFHcih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtsZXQgYT1lLnNlbGVjdGlvbixzPXQ8MD9hLiRmcm9tOmEuJHRvLG49cy5kZXB0aDtmb3IoO3Mubm9kZShuKS5pc0lubGluZTspe2lmKCFuKXJldHVybiExO24tLX1yZXR1cm4gcy5ub2RlKG4pLmlzVGV4dGJsb2NrPyhyJiZyKGUudHIuc2V0U2VsZWN0aW9uKGVyLmNyZWF0ZShlLmRvYyx0PDA/cy5zdGFydChuKTpzLmVuZChuKSkpKSwhMCk6ITF9fWZ1bmN0aW9uIHg1dCh0LGU9bnVsbCl7cmV0dXJuIGZ1bmN0aW9uKHIsYSl7bGV0eyRmcm9tOnMsJHRvOm59PXIuc2VsZWN0aW9uLG89cy5ibG9ja1JhbmdlKG4pLGw9byYmRTkobyx0LGUpO3JldHVybiBsPyhhJiZhKHIudHIud3JhcChvLGwpLnNjcm9sbEludG9WaWV3KCkpLCEwKTohMX19ZnVuY3Rpb24gWWZlKHQsZT1udWxsKXtyZXR1cm4gZnVuY3Rpb24ocixhKXtsZXQgcz0hMTtmb3IobGV0IG49MDtuPHIuc2VsZWN0aW9uLnJhbmdlcy5sZW5ndGgmJiFzO24rKyl7bGV0eyRmcm9tOntwb3M6b30sJHRvOntwb3M6bH19PXIuc2VsZWN0aW9uLnJhbmdlc1tuXTtyLmRvYy5ub2Rlc0JldHdlZW4obyxsLChjLGQpPT57aWYocylyZXR1cm4hMTtpZighKCFjLmlzVGV4dGJsb2NrfHxjLmhhc01hcmt1cCh0LGUpKSlpZihjLnR5cGU9PXQpcz0hMDtlbHNle2xldCBmPXIuZG9jLnJlc29sdmUoZCkscD1mLmluZGV4KCk7cz1mLnBhcmVudC5jYW5SZXBsYWNlV2l0aChwLHArMSx0KX19KX1pZighcylyZXR1cm4hMTtpZihhKXtsZXQgbj1yLnRyO2ZvcihsZXQgbz0wO288ci5zZWxlY3Rpb24ucmFuZ2VzLmxlbmd0aDtvKyspe2xldHskZnJvbTp7cG9zOmx9LCR0bzp7cG9zOmN9fT1yLnNlbGVjdGlvbi5yYW5nZXNbb107bi5zZXRCbG9ja1R5cGUobCxjLHQsZSl9YShuLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX1mdW5jdGlvbiBPTmEodCxlLHIsYSl7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspe2xldHskZnJvbTpuLCR0bzpvfT1lW3NdLGw9bi5kZXB0aD09MD90LmlubGluZUNvbnRlbnQmJnQudHlwZS5hbGxvd3NNYXJrVHlwZShyKTohMTtpZih0Lm5vZGVzQmV0d2VlbihuLnBvcyxvLnBvcywoYyxkKT0+e2lmKGx8fCFhJiZjLmlzQXRvbSYmYy5pc0lubGluZSYmZD49bi5wb3MmJmQrYy5ub2RlU2l6ZTw9by5wb3MpcmV0dXJuITE7bD1jLmlubGluZUNvbnRlbnQmJmMudHlwZS5hbGxvd3NNYXJrVHlwZShyKX0pLGwpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gUk5hKHQpe2xldCBlPVtdO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtsZXR7JGZyb206YSwkdG86c309dFtyXTthLmRvYy5ub2Rlc0JldHdlZW4oYS5wb3Mscy5wb3MsKG4sbyk9PntpZihuLmlzQXRvbSYmbi5jb250ZW50LnNpemUmJm4uaXNJbmxpbmUmJm8+PWEucG9zJiZvK24ubm9kZVNpemU8PXMucG9zKXJldHVybiBvKzE+YS5wb3MmJmUucHVzaChuZXcgTjkoYSxhLmRvYy5yZXNvbHZlKG8rMSkpKSxhPWEuZG9jLnJlc29sdmUobysxK24uY29udGVudC5zaXplKSwhMX0pLGEucG9zPHMucG9zJiZlLnB1c2gobmV3IE45KGEscykpfXJldHVybiBlfWZ1bmN0aW9uIEZOYSh0LGU9bnVsbCxyKXtsZXQgYT0ociYmci5yZW1vdmVXaGVuUHJlc2VudCkhPT0hMSxzPShyJiZyLmVudGVySW5saW5lQXRvbXMpIT09ITEsbj0hKHImJnIuaW5jbHVkZVdoaXRlc3BhY2UpO3JldHVybiBmdW5jdGlvbihvLGwpe2xldHtlbXB0eTpjLCRjdXJzb3I6ZCxyYW5nZXM6Zn09by5zZWxlY3Rpb247aWYoYyYmIWR8fCFPTmEoby5kb2MsZix0LHMpKXJldHVybiExO2lmKGwpaWYoZCl0LmlzSW5TZXQoby5zdG9yZWRNYXJrc3x8ZC5tYXJrcygpKT9sKG8udHIucmVtb3ZlU3RvcmVkTWFyayh0KSk6bChvLnRyLmFkZFN0b3JlZE1hcmsodC5jcmVhdGUoZSkpKTtlbHNle2xldCBwLGg9by50cjtzfHwoZj1STmEoZikpLGE/cD0hZi5zb21lKG09Pm8uZG9jLnJhbmdlSGFzTWFyayhtLiRmcm9tLnBvcyxtLiR0by5wb3MsdCkpOnA9IWYuZXZlcnkobT0+e2xldCB2PSExO3JldHVybiBoLmRvYy5ub2Rlc0JldHdlZW4obS4kZnJvbS5wb3MsbS4kdG8ucG9zLChiLGcseSk9PntpZih2KXJldHVybiExO3Y9IXQuaXNJblNldChiLm1hcmtzKSYmISF5JiZ5LnR5cGUuYWxsb3dzTWFya1R5cGUodCkmJiEoYi5pc1RleHQmJi9eXHMqJC8udGVzdChiLnRleHRCZXR3ZWVuKE1hdGgubWF4KDAsbS4kZnJvbS5wb3MtZyksTWF0aC5taW4oYi5ub2RlU2l6ZSxtLiR0by5wb3MtZykpKSl9KSwhdn0pO2ZvcihsZXQgbT0wO208Zi5sZW5ndGg7bSsrKXtsZXR7JGZyb206diwkdG86Yn09ZlttXTtpZighcCloLnJlbW92ZU1hcmsodi5wb3MsYi5wb3MsdCk7ZWxzZXtsZXQgZz12LnBvcyx5PWIucG9zLGs9di5ub2RlQWZ0ZXIsTT1iLm5vZGVCZWZvcmUsTj1uJiZrJiZrLmlzVGV4dD8vXlxzKi8uZXhlYyhrLnRleHQpWzBdLmxlbmd0aDowLF89biYmTSYmTS5pc1RleHQ/L1xzKiQvLmV4ZWMoTS50ZXh0KVswXS5sZW5ndGg6MDtnK048eSYmKGcrPU4seS09XyksaC5hZGRNYXJrKGcseSx0LmNyZWF0ZShlKSl9fWwoaC5zY3JvbGxJbnRvVmlldygpKX1yZXR1cm4hMH19ZnVuY3Rpb24gQk5hKHQsZSl7cmV0dXJuIHI9PntpZighci5pc0dlbmVyaWMpcmV0dXJuIHQocik7bGV0IGE9W107Zm9yKGxldCBuPTA7bjxyLm1hcHBpbmcubWFwcy5sZW5ndGg7bisrKXtsZXQgbz1yLm1hcHBpbmcubWFwc1tuXTtmb3IobGV0IGw9MDtsPGEubGVuZ3RoO2wrKylhW2xdPW8ubWFwKGFbbF0pO28uZm9yRWFjaCgobCxjLGQsZik9PmEucHVzaChkLGYpKX1sZXQgcz1bXTtmb3IobGV0IG49MDtuPGEubGVuZ3RoO24rPTIpe2xldCBvPWFbbl0sbD1hW24rMV0sYz1yLmRvYy5yZXNvbHZlKG8pLGQ9Yy5zaGFyZWREZXB0aChsKSxmPWMubm9kZShkKTtmb3IobGV0IHA9Yy5pbmRleEFmdGVyKGQpLGg9Yy5hZnRlcihkKzEpO2g8PWw7KytwKXtsZXQgbT1mLm1heWJlQ2hpbGQocCk7aWYoIW0pYnJlYWs7aWYocCYmcy5pbmRleE9mKGgpPT0tMSl7bGV0IHY9Zi5jaGlsZChwLTEpO3YudHlwZT09bS50eXBlJiZlKHYsbSkmJnMucHVzaChoKX1oKz1tLm5vZGVTaXplfX1zLnNvcnQoKG4sbyk9Pm4tbyk7Zm9yKGxldCBuPXMubGVuZ3RoLTE7bj49MDtuLS0pY2woci5kb2Msc1tuXSkmJnIuam9pbihzW25dKTt0KHIpfX1mdW5jdGlvbiBITmEodCxlKXtsZXQgcj1BcnJheS5pc0FycmF5KGUpP2E9PmUuaW5kZXhPZihhLnR5cGUubmFtZSk+LTE6ZTtyZXR1cm4oYSxzLG4pPT50KGEscyYmQk5hKHMsciksbil9ZnVuY3Rpb24gT2ZlKC4uLnQpe3JldHVybiBmdW5jdGlvbihlLHIsYSl7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspaWYodFtzXShlLHIsYSkpcmV0dXJuITA7cmV0dXJuITF9fXZhciBVdGUsUmZlLHA1dCxmNXQsRmZlLEJmZSxIZmUsaDV0LG01dCxnNXQscWZlLFZmZSxqZmUsVWZlLGM1dCxQTmEsYjV0LEtHcixXZmUsR2ZlLGQ1dCxYR3IscGQsdTV0LHFOYSxWTmEsSkdyPXUoKCk9PntXcCgpO2pwKCk7YTMoKTtVdGU9aSgodCxlKT0+dC5zZWxlY3Rpb24uZW1wdHk/ITE6KGUmJmUodC50ci5kZWxldGVTZWxlY3Rpb24oKS5zY3JvbGxJbnRvVmlldygpKSwhMCksImRlbGV0ZVNlbGVjdGlvbiIpO2koVUdyLCJhdEJsb2NrU3RhcnQiKTtSZmU9aSgodCxlLHIpPT57bGV0IGE9VUdyKHQscik7aWYoIWEpcmV0dXJuITE7bGV0IHM9bjV0KGEpO2lmKCFzKXtsZXQgbz1hLmJsb2NrUmFuZ2UoKSxsPW8mJmNkKG8pO3JldHVybiBsPT1udWxsPyExOihlJiZlKHQudHIubGlmdChvLGwpLnNjcm9sbEludG9WaWV3KCkpLCEwKX1sZXQgbj1zLm5vZGVCZWZvcmU7aWYoWkdyKHQscyxlLC0xKSlyZXR1cm4hMDtpZihhLnBhcmVudC5jb250ZW50LnNpemU9PTAmJihsdyhuLCJlbmQiKXx8SXQuaXNTZWxlY3RhYmxlKG4pKSlmb3IobGV0IG89YS5kZXB0aDs7by0tKXtsZXQgbD1YeSh0LmRvYyxhLmJlZm9yZShvKSxhLmFmdGVyKG8pLG10LmVtcHR5KTtpZihsJiZsLnNsaWNlLnNpemU8bC50by1sLmZyb20pe2lmKGUpe2xldCBjPXQudHIuc3RlcChsKTtjLnNldFNlbGVjdGlvbihsdyhuLCJlbmQiKT9KdC5maW5kRnJvbShjLmRvYy5yZXNvbHZlKGMubWFwcGluZy5tYXAocy5wb3MsLTEpKSwtMSk6SXQuY3JlYXRlKGMuZG9jLHMucG9zLW4ubm9kZVNpemUpKSxlKGMuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9aWYobz09MXx8YS5ub2RlKG8tMSkuY2hpbGRDb3VudD4xKWJyZWFrfXJldHVybiBuLmlzQXRvbSYmcy5kZXB0aD09YS5kZXB0aC0xPyhlJiZlKHQudHIuZGVsZXRlKHMucG9zLW4ubm9kZVNpemUscy5wb3MpLnNjcm9sbEludG9WaWV3KCkpLCEwKTohMX0sImpvaW5CYWNrd2FyZCIpLHA1dD1pKCh0LGUscik9PntsZXQgYT1VR3IodCxyKTtpZighYSlyZXR1cm4hMTtsZXQgcz1uNXQoYSk7cmV0dXJuIHM/V0dyKHQscyxlKTohMX0sImpvaW5UZXh0YmxvY2tCYWNrd2FyZCIpLGY1dD1pKCh0LGUscik9PntsZXQgYT1HR3IodCxyKTtpZighYSlyZXR1cm4hMTtsZXQgcz1vNXQoYSk7cmV0dXJuIHM/V0dyKHQscyxlKTohMX0sImpvaW5UZXh0YmxvY2tGb3J3YXJkIik7aShXR3IsImpvaW5UZXh0YmxvY2tzQXJvdW5kIik7aShsdywidGV4dGJsb2NrQXQiKTtGZmU9aSgodCxlLHIpPT57bGV0eyRoZWFkOmEsZW1wdHk6c309dC5zZWxlY3Rpb24sbj1hO2lmKCFzKXJldHVybiExO2lmKGEucGFyZW50LmlzVGV4dGJsb2NrKXtpZihyPyFyLmVuZE9mVGV4dGJsb2NrKCJiYWNrd2FyZCIsdCk6YS5wYXJlbnRPZmZzZXQ+MClyZXR1cm4hMTtuPW41dChhKX1sZXQgbz1uJiZuLm5vZGVCZWZvcmU7cmV0dXJuIW98fCFJdC5pc1NlbGVjdGFibGUobyk/ITE6KGUmJmUodC50ci5zZXRTZWxlY3Rpb24oSXQuY3JlYXRlKHQuZG9jLG4ucG9zLW8ubm9kZVNpemUpKS5zY3JvbGxJbnRvVmlldygpKSwhMCl9LCJzZWxlY3ROb2RlQmFja3dhcmQiKTtpKG41dCwiZmluZEN1dEJlZm9yZSIpO2koR0dyLCJhdEJsb2NrRW5kIik7QmZlPWkoKHQsZSxyKT0+e2xldCBhPUdHcih0LHIpO2lmKCFhKXJldHVybiExO2xldCBzPW81dChhKTtpZighcylyZXR1cm4hMTtsZXQgbj1zLm5vZGVBZnRlcjtpZihaR3IodCxzLGUsMSkpcmV0dXJuITA7aWYoYS5wYXJlbnQuY29udGVudC5zaXplPT0wJiYobHcobiwic3RhcnQiKXx8SXQuaXNTZWxlY3RhYmxlKG4pKSl7bGV0IG89WHkodC5kb2MsYS5iZWZvcmUoKSxhLmFmdGVyKCksbXQuZW1wdHkpO2lmKG8mJm8uc2xpY2Uuc2l6ZTxvLnRvLW8uZnJvbSl7aWYoZSl7bGV0IGw9dC50ci5zdGVwKG8pO2wuc2V0U2VsZWN0aW9uKGx3KG4sInN0YXJ0Iik/SnQuZmluZEZyb20obC5kb2MucmVzb2x2ZShsLm1hcHBpbmcubWFwKHMucG9zKSksMSk6SXQuY3JlYXRlKGwuZG9jLGwubWFwcGluZy5tYXAocy5wb3MpKSksZShsLnNjcm9sbEludG9WaWV3KCkpfXJldHVybiEwfX1yZXR1cm4gbi5pc0F0b20mJnMuZGVwdGg9PWEuZGVwdGgtMT8oZSYmZSh0LnRyLmRlbGV0ZShzLnBvcyxzLnBvcytuLm5vZGVTaXplKS5zY3JvbGxJbnRvVmlldygpKSwhMCk6ITF9LCJqb2luRm9yd2FyZCIpLEhmZT1pKCh0LGUscik9PntsZXR7JGhlYWQ6YSxlbXB0eTpzfT10LnNlbGVjdGlvbixuPWE7aWYoIXMpcmV0dXJuITE7aWYoYS5wYXJlbnQuaXNUZXh0YmxvY2spe2lmKHI/IXIuZW5kT2ZUZXh0YmxvY2soImZvcndhcmQiLHQpOmEucGFyZW50T2Zmc2V0PGEucGFyZW50LmNvbnRlbnQuc2l6ZSlyZXR1cm4hMTtuPW81dChhKX1sZXQgbz1uJiZuLm5vZGVBZnRlcjtyZXR1cm4hb3x8IUl0LmlzU2VsZWN0YWJsZShvKT8hMTooZSYmZSh0LnRyLnNldFNlbGVjdGlvbihJdC5jcmVhdGUodC5kb2Msbi5wb3MpKS5zY3JvbGxJbnRvVmlldygpKSwhMCl9LCJzZWxlY3ROb2RlRm9yd2FyZCIpO2kobzV0LCJmaW5kQ3V0QWZ0ZXIiKTtoNXQ9aSgodCxlKT0+e2xldCByPXQuc2VsZWN0aW9uLGE9ciBpbnN0YW5jZW9mIEl0LHM7aWYoYSl7aWYoci5ub2RlLmlzVGV4dGJsb2NrfHwhY2wodC5kb2Msci5mcm9tKSlyZXR1cm4hMTtzPXIuZnJvbX1lbHNlIGlmKHM9STkodC5kb2Msci5mcm9tLC0xKSxzPT1udWxsKXJldHVybiExO2lmKGUpe2xldCBuPXQudHIuam9pbihzKTthJiZuLnNldFNlbGVjdGlvbihJdC5jcmVhdGUobi5kb2Mscy10LmRvYy5yZXNvbHZlKHMpLm5vZGVCZWZvcmUubm9kZVNpemUpKSxlKG4uc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJqb2luVXAiKSxtNXQ9aSgodCxlKT0+e2xldCByPXQuc2VsZWN0aW9uLGE7aWYociBpbnN0YW5jZW9mIEl0KXtpZihyLm5vZGUuaXNUZXh0YmxvY2t8fCFjbCh0LmRvYyxyLnRvKSlyZXR1cm4hMTthPXIudG99ZWxzZSBpZihhPUk5KHQuZG9jLHIudG8sMSksYT09bnVsbClyZXR1cm4hMTtyZXR1cm4gZSYmZSh0LnRyLmpvaW4oYSkuc2Nyb2xsSW50b1ZpZXcoKSksITB9LCJqb2luRG93biIpLGc1dD1pKCh0LGUpPT57bGV0eyRmcm9tOnIsJHRvOmF9PXQuc2VsZWN0aW9uLHM9ci5ibG9ja1JhbmdlKGEpLG49cyYmY2Qocyk7cmV0dXJuIG49PW51bGw/ITE6KGUmJmUodC50ci5saWZ0KHMsbikuc2Nyb2xsSW50b1ZpZXcoKSksITApfSwibGlmdCIpLHFmZT1pKCh0LGUpPT57bGV0eyRoZWFkOnIsJGFuY2hvcjphfT10LnNlbGVjdGlvbjtyZXR1cm4hci5wYXJlbnQudHlwZS5zcGVjLmNvZGV8fCFyLnNhbWVQYXJlbnQoYSk/ITE6KGUmJmUodC50ci5pbnNlcnRUZXh0KGAKYCkuc2Nyb2xsSW50b1ZpZXcoKSksITApfSwibmV3bGluZUluQ29kZSIpO2kobDV0LCJkZWZhdWx0QmxvY2tBdCIpO1ZmZT1pKCh0LGUpPT57bGV0eyRoZWFkOnIsJGFuY2hvcjphfT10LnNlbGVjdGlvbjtpZighci5wYXJlbnQudHlwZS5zcGVjLmNvZGV8fCFyLnNhbWVQYXJlbnQoYSkpcmV0dXJuITE7bGV0IHM9ci5ub2RlKC0xKSxuPXIuaW5kZXhBZnRlcigtMSksbz1sNXQocy5jb250ZW50TWF0Y2hBdChuKSk7aWYoIW98fCFzLmNhblJlcGxhY2VXaXRoKG4sbixvKSlyZXR1cm4hMTtpZihlKXtsZXQgbD1yLmFmdGVyKCksYz10LnRyLnJlcGxhY2VXaXRoKGwsbCxvLmNyZWF0ZUFuZEZpbGwoKSk7Yy5zZXRTZWxlY3Rpb24oSnQubmVhcihjLmRvYy5yZXNvbHZlKGwpLDEpKSxlKGMuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJleGl0Q29kZSIpLGpmZT1pKCh0LGUpPT57bGV0IHI9dC5zZWxlY3Rpb24seyRmcm9tOmEsJHRvOnN9PXI7aWYociBpbnN0YW5jZW9mIE1vfHxhLnBhcmVudC5pbmxpbmVDb250ZW50fHxzLnBhcmVudC5pbmxpbmVDb250ZW50KXJldHVybiExO2xldCBuPWw1dChzLnBhcmVudC5jb250ZW50TWF0Y2hBdChzLmluZGV4QWZ0ZXIoKSkpO2lmKCFufHwhbi5pc1RleHRibG9jaylyZXR1cm4hMTtpZihlKXtsZXQgbz0oIWEucGFyZW50T2Zmc2V0JiZzLmluZGV4KCk8cy5wYXJlbnQuY2hpbGRDb3VudD9hOnMpLnBvcyxsPXQudHIuaW5zZXJ0KG8sbi5jcmVhdGVBbmRGaWxsKCkpO2wuc2V0U2VsZWN0aW9uKGVyLmNyZWF0ZShsLmRvYyxvKzEpKSxlKGwuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9LCJjcmVhdGVQYXJhZ3JhcGhOZWFyIiksVWZlPWkoKHQsZSk9PntsZXR7JGN1cnNvcjpyfT10LnNlbGVjdGlvbjtpZighcnx8ci5wYXJlbnQuY29udGVudC5zaXplKXJldHVybiExO2lmKHIuZGVwdGg+MSYmci5hZnRlcigpIT1yLmVuZCgtMSkpe2xldCBuPXIuYmVmb3JlKCk7aWYoQTEodC5kb2MsbikpcmV0dXJuIGUmJmUodC50ci5zcGxpdChuKS5zY3JvbGxJbnRvVmlldygpKSwhMH1sZXQgYT1yLmJsb2NrUmFuZ2UoKSxzPWEmJmNkKGEpO3JldHVybiBzPT1udWxsPyExOihlJiZlKHQudHIubGlmdChhLHMpLnNjcm9sbEludG9WaWV3KCkpLCEwKX0sImxpZnRFbXB0eUJsb2NrIik7aShZR3IsInNwbGl0QmxvY2tBcyIpO2M1dD1ZR3IoKSxQTmE9aSgodCxlKT0+YzV0KHQsZSYmKHI9PntsZXQgYT10LnN0b3JlZE1hcmtzfHx0LnNlbGVjdGlvbi4kdG8ucGFyZW50T2Zmc2V0JiZ0LnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpO2EmJnIuZW5zdXJlTWFya3MoYSksZShyKX0pKSwic3BsaXRCbG9ja0tlZXBNYXJrcyIpLGI1dD1pKCh0LGUpPT57bGV0eyRmcm9tOnIsdG86YX09dC5zZWxlY3Rpb24scyxuPXIuc2hhcmVkRGVwdGgoYSk7cmV0dXJuIG49PTA/ITE6KHM9ci5iZWZvcmUobiksZSYmZSh0LnRyLnNldFNlbGVjdGlvbihJdC5jcmVhdGUodC5kb2MscykpKSwhMCl9LCJzZWxlY3RQYXJlbnROb2RlIiksS0dyPWkoKHQsZSk9PihlJiZlKHQudHIuc2V0U2VsZWN0aW9uKG5ldyBNbyh0LmRvYykpKSwhMCksInNlbGVjdEFsbCIpO2koTk5hLCJqb2luTWF5YmVDbGVhciIpO2koWkdyLCJkZWxldGVCYXJyaWVyIik7aShRR3IsInNlbGVjdFRleHRibG9ja1NpZGUiKTtXZmU9UUdyKC0xKSxHZmU9UUdyKDEpO2koeDV0LCJ3cmFwSW4iKTtpKFlmZSwic2V0QmxvY2tUeXBlIik7aShPTmEsIm1hcmtBcHBsaWVzIik7aShSTmEsInJlbW92ZUlubGluZUF0b21zIik7aShGTmEsInRvZ2dsZU1hcmsiKTtpKEJOYSwid3JhcERpc3BhdGNoRm9ySm9pbiIpO2koSE5hLCJhdXRvSm9pbiIpO2koT2ZlLCJjaGFpbkNvbW1hbmRzIik7ZDV0PU9mZShVdGUsUmZlLEZmZSksWEdyPU9mZShVdGUsQmZlLEhmZSkscGQ9e0VudGVyOk9mZShxZmUsamZlLFVmZSxjNXQpLCJNb2QtRW50ZXIiOlZmZSxCYWNrc3BhY2U6ZDV0LCJNb2QtQmFja3NwYWNlIjpkNXQsIlNoaWZ0LUJhY2tzcGFjZSI6ZDV0LERlbGV0ZTpYR3IsIk1vZC1EZWxldGUiOlhHciwiTW9kLWEiOktHcn0sdTV0PXsiQ3RybC1oIjpwZC5CYWNrc3BhY2UsIkFsdC1CYWNrc3BhY2UiOnBkWyJNb2QtQmFja3NwYWNlIl0sIkN0cmwtZCI6cGQuRGVsZXRlLCJDdHJsLUFsdC1CYWNrc3BhY2UiOnBkWyJNb2QtRGVsZXRlIl0sIkFsdC1EZWxldGUiOnBkWyJNb2QtRGVsZXRlIl0sIkFsdC1kIjpwZFsiTW9kLURlbGV0ZSJdLCJDdHJsLWEiOldmZSwiQ3RybC1lIjpHZmV9O2ZvcihsZXQgdCBpbiBwZCl1NXRbdF09cGRbdF07cU5hPXR5cGVvZiBuYXZpZ2F0b3I8InUiPy9NYWN8aVAoaG9uZXxbb2FdZCkvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKTp0eXBlb2Ygb3M8InUiJiZvcy5wbGF0Zm9ybT9vcy5wbGF0Zm9ybSgpPT0iZGFyd2luIjohMSxWTmE9cU5hP3U1dDpwZH0pO3ZhciBlWXI9dSgoKT0+e0pHcigpfSk7ZnVuY3Rpb24gdjV0KHQsZSl7bGV0IHI9e307Zm9yKGxldCBhIGluIHQpclthXT10W2FdO2ZvcihsZXQgYSBpbiBlKXJbYV09ZVthXTtyZXR1cm4gcn1mdW5jdGlvbiBHTmEodCxlLHIpe3JldHVybiB0LmFwcGVuZCh7b3JkZXJlZF9saXN0OnY1dCh0WXIse2NvbnRlbnQ6Imxpc3RfaXRlbSsiLGdyb3VwOnJ9KSxidWxsZXRfbGlzdDp2NXQocllyLHtjb250ZW50OiJsaXN0X2l0ZW0rIixncm91cDpyfSksbGlzdF9pdGVtOnY1dChhWXIse2NvbnRlbnQ6ZX0pfSl9ZnVuY3Rpb24geTV0KHQsZT1udWxsKXtyZXR1cm4gZnVuY3Rpb24ocixhKXtsZXR7JGZyb206cywkdG86bn09ci5zZWxlY3Rpb24sbz1zLmJsb2NrUmFuZ2Uobik7aWYoIW8pcmV0dXJuITE7bGV0IGw9YT9yLnRyOm51bGw7cmV0dXJuIGlZcihsLG8sdCxlKT8oYSYmYShsLnNjcm9sbEludG9WaWV3KCkpLCEwKTohMX19ZnVuY3Rpb24gaVlyKHQsZSxyLGE9bnVsbCl7bGV0IHM9ITEsbj1lLG89ZS4kZnJvbS5kb2M7aWYoZS5kZXB0aD49MiYmZS4kZnJvbS5ub2RlKGUuZGVwdGgtMSkudHlwZS5jb21wYXRpYmxlQ29udGVudChyKSYmZS5zdGFydEluZGV4PT0wKXtpZihlLiRmcm9tLmluZGV4KGUuZGVwdGgtMSk9PTApcmV0dXJuITE7bGV0IGM9by5yZXNvbHZlKGUuc3RhcnQtMik7bj1uZXcgVnAoYyxjLGUuZGVwdGgpLGUuZW5kSW5kZXg8ZS5wYXJlbnQuY2hpbGRDb3VudCYmKGU9bmV3IFZwKGUuJGZyb20sby5yZXNvbHZlKGUuJHRvLmVuZChlLmRlcHRoKSksZS5kZXB0aCkpLHM9ITB9bGV0IGw9RTkobixyLGEsZSk7cmV0dXJuIGw/KHQmJllOYSh0LGUsbCxzLHIpLCEwKTohMX1mdW5jdGlvbiBZTmEodCxlLHIsYSxzKXtsZXQgbj1KZS5lbXB0eTtmb3IobGV0IGY9ci5sZW5ndGgtMTtmPj0wO2YtLSluPUplLmZyb20ocltmXS50eXBlLmNyZWF0ZShyW2ZdLmF0dHJzLG4pKTt0LnN0ZXAobmV3IGRzKGUuc3RhcnQtKGE/MjowKSxlLmVuZCxlLnN0YXJ0LGUuZW5kLG5ldyBtdChuLDAsMCksci5sZW5ndGgsITApKTtsZXQgbz0wO2ZvcihsZXQgZj0wO2Y8ci5sZW5ndGg7ZisrKXJbZl0udHlwZT09cyYmKG89ZisxKTtsZXQgbD1yLmxlbmd0aC1vLGM9ZS5zdGFydCtyLmxlbmd0aC0oYT8yOjApLGQ9ZS5wYXJlbnQ7Zm9yKGxldCBmPWUuc3RhcnRJbmRleCxwPWUuZW5kSW5kZXgsaD0hMDtmPHA7ZisrLGg9ITEpIWgmJkExKHQuZG9jLGMsbCkmJih0LnNwbGl0KGMsbCksYys9MipsKSxjKz1kLmNoaWxkKGYpLm5vZGVTaXplO3JldHVybiB0fWZ1bmN0aW9uIHNZcih0LGUpe3JldHVybiBmdW5jdGlvbihyLGEpe2xldHskZnJvbTpzLCR0bzpuLG5vZGU6b309ci5zZWxlY3Rpb247aWYobyYmby5pc0Jsb2NrfHxzLmRlcHRoPDJ8fCFzLnNhbWVQYXJlbnQobikpcmV0dXJuITE7bGV0IGw9cy5ub2RlKC0xKTtpZihsLnR5cGUhPXQpcmV0dXJuITE7aWYocy5wYXJlbnQuY29udGVudC5zaXplPT0wJiZzLm5vZGUoLTEpLmNoaWxkQ291bnQ9PXMuaW5kZXhBZnRlcigtMSkpe2lmKHMuZGVwdGg9PTN8fHMubm9kZSgtMykudHlwZSE9dHx8cy5pbmRleCgtMikhPXMubm9kZSgtMikuY2hpbGRDb3VudC0xKXJldHVybiExO2lmKGEpe2xldCBwPUplLmVtcHR5LGg9cy5pbmRleCgtMSk/MTpzLmluZGV4KC0yKT8yOjM7Zm9yKGxldCB5PXMuZGVwdGgtaDt5Pj1zLmRlcHRoLTM7eS0tKXA9SmUuZnJvbShzLm5vZGUoeSkuY29weShwKSk7bGV0IG09cy5pbmRleEFmdGVyKC0xKTxzLm5vZGUoLTIpLmNoaWxkQ291bnQ/MTpzLmluZGV4QWZ0ZXIoLTIpPHMubm9kZSgtMykuY2hpbGRDb3VudD8yOjM7cD1wLmFwcGVuZChKZS5mcm9tKHQuY3JlYXRlQW5kRmlsbCgpKSk7bGV0IHY9cy5iZWZvcmUocy5kZXB0aC0oaC0xKSksYj1yLnRyLnJlcGxhY2UodixzLmFmdGVyKC1tKSxuZXcgbXQocCw0LWgsMCkpLGc9LTE7Yi5kb2Mubm9kZXNCZXR3ZWVuKHYsYi5kb2MuY29udGVudC5zaXplLCh5LGspPT57aWYoZz4tMSlyZXR1cm4hMTt5LmlzVGV4dGJsb2NrJiZ5LmNvbnRlbnQuc2l6ZT09MCYmKGc9aysxKX0pLGc+LTEmJmIuc2V0U2VsZWN0aW9uKEp0Lm5lYXIoYi5kb2MucmVzb2x2ZShnKSkpLGEoYi5zY3JvbGxJbnRvVmlldygpKX1yZXR1cm4hMH1sZXQgYz1uLnBvcz09cy5lbmQoKT9sLmNvbnRlbnRNYXRjaEF0KDApLmRlZmF1bHRUeXBlOm51bGwsZD1yLnRyLmRlbGV0ZShzLnBvcyxuLnBvcyksZj1jP1tlP3t0eXBlOnQsYXR0cnM6ZX06bnVsbCx7dHlwZTpjfV06dm9pZCAwO3JldHVybiBBMShkLmRvYyxzLnBvcywyLGYpPyhhJiZhKGQuc3BsaXQocy5wb3MsMixmKS5zY3JvbGxJbnRvVmlldygpKSwhMCk6ITF9fWZ1bmN0aW9uIEtOYSh0LGUpe2xldCByPXNZcih0LGUpO3JldHVybihhLHMpPT5yKGEscyYmKG49PntsZXQgbz1hLnN0b3JlZE1hcmtzfHxhLnNlbGVjdGlvbi4kdG8ucGFyZW50T2Zmc2V0JiZhLnNlbGVjdGlvbi4kZnJvbS5tYXJrcygpO28mJm4uZW5zdXJlTWFya3MobykscyhuKX0pKX1mdW5jdGlvbiB3NXQodCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7bGV0eyRmcm9tOmEsJHRvOnN9PWUuc2VsZWN0aW9uLG49YS5ibG9ja1JhbmdlKHMsbz0+by5jaGlsZENvdW50PjAmJm8uZmlyc3RDaGlsZC50eXBlPT10KTtyZXR1cm4gbj9yP2Eubm9kZShuLmRlcHRoLTEpLnR5cGU9PXQ/Wk5hKGUscix0LG4pOlFOYShlLHIsbik6ITA6ITF9fWZ1bmN0aW9uIFpOYSh0LGUscixhKXtsZXQgcz10LnRyLG49YS5lbmQsbz1hLiR0by5lbmQoYS5kZXB0aCk7bjxvJiYocy5zdGVwKG5ldyBkcyhuLTEsbyxuLG8sbmV3IG10KEplLmZyb20oci5jcmVhdGUobnVsbCxhLnBhcmVudC5jb3B5KCkpKSwxLDApLDEsITApKSxhPW5ldyBWcChzLmRvYy5yZXNvbHZlKGEuJGZyb20ucG9zKSxzLmRvYy5yZXNvbHZlKG8pLGEuZGVwdGgpKTtsZXQgbD1jZChhKTtpZihsPT1udWxsKXJldHVybiExO3MubGlmdChhLGwpO2xldCBjPXMuZG9jLnJlc29sdmUocy5tYXBwaW5nLm1hcChuLC0xKS0xKTtyZXR1cm4gY2wocy5kb2MsYy5wb3MpJiZjLm5vZGVCZWZvcmUudHlwZT09Yy5ub2RlQWZ0ZXIudHlwZSYmcy5qb2luKGMucG9zKSxlKHMuc2Nyb2xsSW50b1ZpZXcoKSksITB9ZnVuY3Rpb24gUU5hKHQsZSxyKXtsZXQgYT10LnRyLHM9ci5wYXJlbnQ7Zm9yKGxldCBtPXIuZW5kLHY9ci5lbmRJbmRleC0xLGI9ci5zdGFydEluZGV4O3Y+Yjt2LS0pbS09cy5jaGlsZCh2KS5ub2RlU2l6ZSxhLmRlbGV0ZShtLTEsbSsxKTtsZXQgbj1hLmRvYy5yZXNvbHZlKHIuc3RhcnQpLG89bi5ub2RlQWZ0ZXI7aWYoYS5tYXBwaW5nLm1hcChyLmVuZCkhPXIuc3RhcnQrbi5ub2RlQWZ0ZXIubm9kZVNpemUpcmV0dXJuITE7bGV0IGw9ci5zdGFydEluZGV4PT0wLGM9ci5lbmRJbmRleD09cy5jaGlsZENvdW50LGQ9bi5ub2RlKC0xKSxmPW4uaW5kZXgoLTEpO2lmKCFkLmNhblJlcGxhY2UoZisobD8wOjEpLGYrMSxvLmNvbnRlbnQuYXBwZW5kKGM/SmUuZW1wdHk6SmUuZnJvbShzKSkpKXJldHVybiExO2xldCBwPW4ucG9zLGg9cCtvLm5vZGVTaXplO3JldHVybiBhLnN0ZXAobmV3IGRzKHAtKGw/MTowKSxoKyhjPzE6MCkscCsxLGgtMSxuZXcgbXQoKGw/SmUuZW1wdHk6SmUuZnJvbShzLmNvcHkoSmUuZW1wdHkpKSkuYXBwZW5kKGM/SmUuZW1wdHk6SmUuZnJvbShzLmNvcHkoSmUuZW1wdHkpKSksbD8wOjEsYz8wOjEpLGw/MDoxKSksZShhLnNjcm9sbEludG9WaWV3KCkpLCEwfWZ1bmN0aW9uIGs1dCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtsZXR7JGZyb206YSwkdG86c309ZS5zZWxlY3Rpb24sbj1hLmJsb2NrUmFuZ2UocyxkPT5kLmNoaWxkQ291bnQ+MCYmZC5maXJzdENoaWxkLnR5cGU9PXQpO2lmKCFuKXJldHVybiExO2xldCBvPW4uc3RhcnRJbmRleDtpZihvPT0wKXJldHVybiExO2xldCBsPW4ucGFyZW50LGM9bC5jaGlsZChvLTEpO2lmKGMudHlwZSE9dClyZXR1cm4hMTtpZihyKXtsZXQgZD1jLmxhc3RDaGlsZCYmYy5sYXN0Q2hpbGQudHlwZT09bC50eXBlLGY9SmUuZnJvbShkP3QuY3JlYXRlKCk6bnVsbCkscD1uZXcgbXQoSmUuZnJvbSh0LmNyZWF0ZShudWxsLEplLmZyb20obC50eXBlLmNyZWF0ZShudWxsLGYpKSkpLGQ/MzoxLDApLGg9bi5zdGFydCxtPW4uZW5kO3IoZS50ci5zdGVwKG5ldyBkcyhoLShkPzM6MSksbSxoLG0scCwxLCEwKSkuc2Nyb2xsSW50b1ZpZXcoKSl9cmV0dXJuITB9fXZhciBqTmEsVU5hLFdOYSx0WXIscllyLGFZcixuWXI9dSgoKT0+e1dwKCk7anAoKTthMygpO2pOYT1bIm9sIiwwXSxVTmE9WyJ1bCIsMF0sV05hPVsibGkiLDBdLHRZcj17YXR0cnM6e29yZGVyOntkZWZhdWx0OjEsdmFsaWRhdGU6Im51bWJlciJ9fSxwYXJzZURPTTpbe3RhZzoib2wiLGdldEF0dHJzKHQpe3JldHVybntvcmRlcjp0Lmhhc0F0dHJpYnV0ZSgic3RhcnQiKT8rdC5nZXRBdHRyaWJ1dGUoInN0YXJ0Iik6MX19fV0sdG9ET00odCl7cmV0dXJuIHQuYXR0cnMub3JkZXI9PTE/ak5hOlsib2wiLHtzdGFydDp0LmF0dHJzLm9yZGVyfSwwXX19LHJZcj17cGFyc2VET006W3t0YWc6InVsIn1dLHRvRE9NKCl7cmV0dXJuIFVOYX19LGFZcj17cGFyc2VET006W3t0YWc6ImxpIn1dLHRvRE9NKCl7cmV0dXJuIFdOYX0sZGVmaW5pbmc6ITB9O2kodjV0LCJhZGQiKTtpKEdOYSwiYWRkTGlzdE5vZGVzIik7aSh5NXQsIndyYXBJbkxpc3QiKTtpKGlZciwid3JhcFJhbmdlSW5MaXN0Iik7aShZTmEsImRvV3JhcEluTGlzdCIpO2koc1lyLCJzcGxpdExpc3RJdGVtIik7aShLTmEsInNwbGl0TGlzdEl0ZW1LZWVwTWFya3MiKTtpKHc1dCwibGlmdExpc3RJdGVtIik7aShaTmEsImxpZnRUb091dGVyTGlzdCIpO2koUU5hLCJsaWZ0T3V0T2ZMaXN0Iik7aShrNXQsInNpbmtMaXN0SXRlbSIpfSk7dmFyIG9Zcj11KCgpPT57bllyKCl9KTt2YXIgT1lyPXt9O1ZlKE9Zcix7Q29tbWFuZE1hbmFnZXI6KCk9PkpwLEVkaXRvcjooKT0+dWhlLEV4dGVuc2lvbjooKT0+a2ksSW5wdXRSdWxlOigpPT5jMyxNYXJrOigpPT5PbixOb2RlOigpPT50aSxOb2RlUG9zOigpPT50cmUsTm9kZVZpZXc6KCk9PnBoZSxQYXN0ZVJ1bGU6KCk9PlU5LFRyYWNrZXI6KCk9PmZoZSxjYWxsT3JSZXR1cm46KCk9PnByLGNhbkluc2VydE5vZGU6KCk9PnZoZSxjb21iaW5lVHJhbnNhY3Rpb25TdGVwczooKT0+aGhlLGNyZWF0ZUNoYWluYWJsZVN0YXRlOigpPT5jdyxjcmVhdGVEb2N1bWVudDooKT0+UXRlLGNyZWF0ZU5vZGVGcm9tQ29udGVudDooKT0+WTksY3JlYXRlU3R5bGVUYWc6KCk9PnE1dCxkZWZhdWx0QmxvY2tBdDooKT0+TjV0LGRlbGV0ZVByb3BzOigpPT5vaGUsZWxlbWVudEZyb21TdHJpbmc6KCk9Pkc5LGVzY2FwZUZvclJlZ0V4OigpPT5FWXIsZXh0ZW5zaW9uczooKT0+QVlyLGZpbmRDaGlsZHJlbjooKT0+U1lyLGZpbmRDaGlsZHJlbkluUmFuZ2U6KCk9Pm1oZSxmaW5kRHVwbGljYXRlczooKT0+RTV0LGZpbmRQYXJlbnROb2RlOigpPT5ndyxmaW5kUGFyZW50Tm9kZUNsb3Nlc3RUb1BvczooKT0+TzV0LGZyb21TdHJpbmc6KCk9PlQ1dCxnZW5lcmF0ZUhUTUw6KCk9Pk1ZcixnZW5lcmF0ZUpTT046KCk9PkNZcixnZW5lcmF0ZVRleHQ6KCk9PnpZcixnZXRBdHRyaWJ1dGVzOigpPT5ycmUsZ2V0QXR0cmlidXRlc0Zyb21FeHRlbnNpb25zOigpPT5YZmUsZ2V0Q2hhbmdlZFJhbmdlczooKT0+Z2hlLGdldERlYnVnSlNPTjooKT0+QjV0LGdldEV4dGVuc2lvbkZpZWxkOigpPT5rdCxnZXRIVE1MRnJvbUZyYWdtZW50OigpPT51dyxnZXRNYXJrQXR0cmlidXRlczooKT0+bGhlLGdldE1hcmtSYW5nZTooKT0+WnRlLGdldE1hcmtUeXBlOigpPT5mZCxnZXRNYXJrc0JldHdlZW46KCk9Pnh3LGdldE5vZGVBdFBvc2l0aW9uOigpPT5fWXIsZ2V0Tm9kZUF0dHJpYnV0ZXM6KCk9PlI1dCxnZXROb2RlVHlwZTooKT0+JHMsZ2V0UmVuZGVyZWRBdHRyaWJ1dGVzOigpPT5XdGUsZ2V0U2NoZW1hOigpPT5YdGUsZ2V0U2NoZW1hQnlSZXNvbHZlZEV4dGVuc2lvbnM6KCk9PnRoZSxnZXRTY2hlbWFUeXBlQnlOYW1lOigpPT5HdGUsZ2V0U2NoZW1hVHlwZU5hbWVCeU5hbWU6KCk9Pm13LGdldFNwbGl0dGVkQXR0cmlidXRlczooKT0+YncsZ2V0VGV4dDooKT0+Y2hlLGdldFRleHRCZXR3ZWVuOigpPT5haGUsZ2V0VGV4dENvbnRlbnRGcm9tTm9kZXM6KCk9Pkw1dCxnZXRUZXh0U2VyaWFsaXplcnNGcm9tU2NoZW1hOigpPT5LdGUsaW5qZWN0RXh0ZW5zaW9uQXR0cmlidXRlc1RvUGFyc2VSdWxlOigpPT5laGUsaW5wdXRSdWxlc1BsdWdpbjooKT0+RDV0LGlzQWN0aXZlOigpPT5INXQsaXNBdEVuZE9mTm9kZTooKT0+VFlyLGlzQXRTdGFydE9mTm9kZTooKT0+TFlyLGlzRW1wdHlPYmplY3Q6KCk9Pl81dCxpc0V4dGVuc2lvblJ1bGVzRW5hYmxlZDooKT0+cmhlLGlzRnVuY3Rpb246KCk9PkpmZSxpc0xpc3Q6KCk9PmRoZSxpc01hY09TOigpPT5uaGUsaXNNYXJrQWN0aXZlOigpPT5KdGUsaXNOb2RlQWN0aXZlOigpPT5LOSxpc05vZGVFbXB0eTooKT0+ZXJlLGlzTm9kZVNlbGVjdGlvbjooKT0+YmhlLGlzTnVtYmVyOigpPT4kNXQsaXNQbGFpbk9iamVjdDooKT0+cHcsaXNSZWdFeHA6KCk9Pll0ZSxpc1NhZmFyaTooKT0+STV0LGlzU3RyaW5nOigpPT5JWXIsaXNUZXh0U2VsZWN0aW9uOigpPT5paGUsaXNpT1M6KCk9Plc5LG1hcmtJbnB1dFJ1bGU6KCk9PmEyLG1hcmtQYXN0ZVJ1bGU6KCk9PkkxLG1lcmdlQXR0cmlidXRlczooKT0+c2EsbWVyZ2VEZWVwOigpPT5mdyxtaW5NYXg6KCk9PmtjLG5vZGVJbnB1dFJ1bGU6KCk9PnhoZSxub2RlUGFzdGVSdWxlOigpPT5QWXIsb2JqZWN0SW5jbHVkZXM6KCk9Pmh3LHBhc3RlUnVsZXNQbHVnaW46KCk9PkE1dCxwb3NUb0RPTVJlY3Q6KCk9PkRZcixyZW1vdmVEdXBsaWNhdGVzOigpPT5GNXQscmVzb2x2ZUZvY3VzUG9zaXRpb246KCk9PnNoZSxyZXdyaXRlVW5rbm93bkNvbnRlbnQ6KCk9PiRZcixzZWxlY3Rpb25Ub0luc2VydGlvbkVuZDooKT0+UDV0LHNwbGl0RXh0ZW5zaW9uczooKT0+ZHcsdGV4dElucHV0UnVsZTooKT0+ZmksdGV4dFBhc3RlUnVsZTooKT0+TllyLHRleHRibG9ja1R5cGVJbnB1dFJ1bGU6KCk9Plo5LHdyYXBwaW5nSW5wdXRSdWxlOigpPT5oZH0pO2Z1bmN0aW9uIGN3KHQpe2xldHtzdGF0ZTplLHRyYW5zYWN0aW9uOnJ9PXQse3NlbGVjdGlvbjphfT1yLHtkb2M6c309cix7c3RvcmVkTWFya3M6bn09cjtyZXR1cm57Li4uZSxhcHBseTplLmFwcGx5LmJpbmQoZSksYXBwbHlUcmFuc2FjdGlvbjplLmFwcGx5VHJhbnNhY3Rpb24uYmluZChlKSxwbHVnaW5zOmUucGx1Z2lucyxzY2hlbWE6ZS5zY2hlbWEscmVjb25maWd1cmU6ZS5yZWNvbmZpZ3VyZS5iaW5kKGUpLHRvSlNPTjplLnRvSlNPTi5iaW5kKGUpLGdldCBzdG9yZWRNYXJrcygpe3JldHVybiBufSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIGF9LGdldCBkb2MoKXtyZXR1cm4gc30sZ2V0IHRyKCl7cmV0dXJuIGE9ci5zZWxlY3Rpb24scz1yLmRvYyxuPXIuc3RvcmVkTWFya3Mscn19fWZ1bmN0aW9uIGt0KHQsZSxyKXtyZXR1cm4gdC5jb25maWdbZV09PT12b2lkIDAmJnQucGFyZW50P2t0KHQucGFyZW50LGUscik6dHlwZW9mIHQuY29uZmlnW2VdPT0iZnVuY3Rpb24iP3QuY29uZmlnW2VdLmJpbmQoey4uLnIscGFyZW50OnQucGFyZW50P2t0KHQucGFyZW50LGUscik6bnVsbH0pOnQuY29uZmlnW2VdfWZ1bmN0aW9uIGR3KHQpe2xldCBlPXQuZmlsdGVyKHM9PnMudHlwZT09PSJleHRlbnNpb24iKSxyPXQuZmlsdGVyKHM9PnMudHlwZT09PSJub2RlIiksYT10LmZpbHRlcihzPT5zLnR5cGU9PT0ibWFyayIpO3JldHVybntiYXNlRXh0ZW5zaW9uczplLG5vZGVFeHRlbnNpb25zOnIsbWFya0V4dGVuc2lvbnM6YX19ZnVuY3Rpb24gWGZlKHQpe2xldCBlPVtdLHtub2RlRXh0ZW5zaW9uczpyLG1hcmtFeHRlbnNpb25zOmF9PWR3KHQpLHM9Wy4uLnIsLi4uYV0sbj17ZGVmYXVsdDpudWxsLHJlbmRlcmVkOiEwLHJlbmRlckhUTUw6bnVsbCxwYXJzZUhUTUw6bnVsbCxrZWVwT25TcGxpdDohMCxpc1JlcXVpcmVkOiExfTtyZXR1cm4gdC5mb3JFYWNoKG89PntsZXQgbD17bmFtZTpvLm5hbWUsb3B0aW9uczpvLm9wdGlvbnMsc3RvcmFnZTpvLnN0b3JhZ2UsZXh0ZW5zaW9uczpzfSxjPWt0KG8sImFkZEdsb2JhbEF0dHJpYnV0ZXMiLGwpO2lmKCFjKXJldHVybjtjKCkuZm9yRWFjaChmPT57Zi50eXBlcy5mb3JFYWNoKHA9PntPYmplY3QuZW50cmllcyhmLmF0dHJpYnV0ZXMpLmZvckVhY2goKFtoLG1dKT0+e2UucHVzaCh7dHlwZTpwLG5hbWU6aCxhdHRyaWJ1dGU6ey4uLm4sLi4ubX19KX0pfSl9KX0pLHMuZm9yRWFjaChvPT57bGV0IGw9e25hbWU6by5uYW1lLG9wdGlvbnM6by5vcHRpb25zLHN0b3JhZ2U6by5zdG9yYWdlfSxjPWt0KG8sImFkZEF0dHJpYnV0ZXMiLGwpO2lmKCFjKXJldHVybjtsZXQgZD1jKCk7T2JqZWN0LmVudHJpZXMoZCkuZm9yRWFjaCgoW2YscF0pPT57bGV0IGg9ey4uLm4sLi4ucH07dHlwZW9mIGg/LmRlZmF1bHQ9PSJmdW5jdGlvbiImJihoLmRlZmF1bHQ9aC5kZWZhdWx0KCkpLGg/LmlzUmVxdWlyZWQmJmg/LmRlZmF1bHQ9PT12b2lkIDAmJmRlbGV0ZSBoLmRlZmF1bHQsZS5wdXNoKHt0eXBlOm8ubmFtZSxuYW1lOmYsYXR0cmlidXRlOmh9KX0pfSksZX1mdW5jdGlvbiAkcyh0LGUpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7aWYoIWUubm9kZXNbdF0pdGhyb3cgRXJyb3IoYFRoZXJlIGlzIG5vIG5vZGUgdHlwZSBuYW1lZCAnJHt0fScuIE1heWJlIHlvdSBmb3Jnb3QgdG8gYWRkIHRoZSBleHRlbnNpb24/YCk7cmV0dXJuIGUubm9kZXNbdF19cmV0dXJuIHR9ZnVuY3Rpb24gc2EoLi4udCl7cmV0dXJuIHQuZmlsdGVyKGU9PiEhZSkucmVkdWNlKChlLHIpPT57bGV0IGE9ey4uLmV9O3JldHVybiBPYmplY3QuZW50cmllcyhyKS5mb3JFYWNoKChbcyxuXSk9PntpZighYVtzXSl7YVtzXT1uO3JldHVybn1pZihzPT09ImNsYXNzIil7bGV0IGw9bj9TdHJpbmcobikuc3BsaXQoIiAiKTpbXSxjPWFbc10/YVtzXS5zcGxpdCgiICIpOltdLGQ9bC5maWx0ZXIoZj0+IWMuaW5jbHVkZXMoZikpO2Fbc109Wy4uLmMsLi4uZF0uam9pbigiICIpfWVsc2UgaWYocz09PSJzdHlsZSIpe2xldCBsPW4/bi5zcGxpdCgiOyIpLm1hcChmPT5mLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pOltdLGM9YVtzXT9hW3NdLnNwbGl0KCI7IikubWFwKGY9PmYudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W10sZD1uZXcgTWFwO2MuZm9yRWFjaChmPT57bGV0W3AsaF09Zi5zcGxpdCgiOiIpLm1hcChtPT5tLnRyaW0oKSk7ZC5zZXQocCxoKX0pLGwuZm9yRWFjaChmPT57bGV0W3AsaF09Zi5zcGxpdCgiOiIpLm1hcChtPT5tLnRyaW0oKSk7ZC5zZXQocCxoKX0pLGFbc109QXJyYXkuZnJvbShkLmVudHJpZXMoKSkubWFwKChbZixwXSk9PmAke2Z9OiAke3B9YCkuam9pbigiOyAiKX1lbHNlIGFbc109bn0pLGF9LHt9KX1mdW5jdGlvbiBXdGUodCxlKXtyZXR1cm4gZS5maWx0ZXIocj0+ci50eXBlPT09dC50eXBlLm5hbWUpLmZpbHRlcihyPT5yLmF0dHJpYnV0ZS5yZW5kZXJlZCkubWFwKHI9PnIuYXR0cmlidXRlLnJlbmRlckhUTUw/ci5hdHRyaWJ1dGUucmVuZGVySFRNTCh0LmF0dHJzKXx8e306e1tyLm5hbWVdOnQuYXR0cnNbci5uYW1lXX0pLnJlZHVjZSgocixhKT0+c2EocixhKSx7fSl9ZnVuY3Rpb24gSmZlKHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIn1mdW5jdGlvbiBwcih0LGU9dm9pZCAwLC4uLnIpe3JldHVybiBKZmUodCk/ZT90LmJpbmQoZSkoLi4ucik6dCguLi5yKTp0fWZ1bmN0aW9uIF81dCh0PXt9KXtyZXR1cm4gT2JqZWN0LmtleXModCkubGVuZ3RoPT09MCYmdC5jb25zdHJ1Y3Rvcj09PU9iamVjdH1mdW5jdGlvbiBUNXQodCl7cmV0dXJuIHR5cGVvZiB0IT0ic3RyaW5nIj90OnQubWF0Y2goL15bKy1dPyg/OlxkKlwuKT9cZCskLyk/TnVtYmVyKHQpOnQ9PT0idHJ1ZSI/ITA6dD09PSJmYWxzZSI/ITE6dH1mdW5jdGlvbiBlaGUodCxlKXtyZXR1cm4ic3R5bGUiaW4gdD90OnsuLi50LGdldEF0dHJzOmkocj0+e2xldCBhPXQuZ2V0QXR0cnM/dC5nZXRBdHRycyhyKTp0LmF0dHJzO2lmKGE9PT0hMSlyZXR1cm4hMTtsZXQgcz1lLnJlZHVjZSgobixvKT0+e2xldCBsPW8uYXR0cmlidXRlLnBhcnNlSFRNTD9vLmF0dHJpYnV0ZS5wYXJzZUhUTUwocik6VDV0KHIuZ2V0QXR0cmlidXRlKG8ubmFtZSkpO3JldHVybiBsPT1udWxsP246ey4uLm4sW28ubmFtZV06bH19LHt9KTtyZXR1cm57Li4uYSwuLi5zfX0sImdldEF0dHJzIil9fWZ1bmN0aW9uIGxZcih0KXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHQpLmZpbHRlcigoW2Uscl0pPT5lPT09ImF0dHJzIiYmXzV0KHIpPyExOnIhPW51bGwpKX1mdW5jdGlvbiB0aGUodCxlKXt2YXIgcjtsZXQgYT1YZmUodCkse25vZGVFeHRlbnNpb25zOnMsbWFya0V4dGVuc2lvbnM6bn09ZHcodCksbz0ocj1zLmZpbmQoZD0+a3QoZCwidG9wTm9kZSIpKSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLm5hbWUsbD1PYmplY3QuZnJvbUVudHJpZXMocy5tYXAoZD0+e2xldCBmPWEuZmlsdGVyKHk9PnkudHlwZT09PWQubmFtZSkscD17bmFtZTpkLm5hbWUsb3B0aW9uczpkLm9wdGlvbnMsc3RvcmFnZTpkLnN0b3JhZ2UsZWRpdG9yOmV9LGg9dC5yZWR1Y2UoKHksayk9PntsZXQgTT1rdChrLCJleHRlbmROb2RlU2NoZW1hIixwKTtyZXR1cm57Li4ueSwuLi5NP00oZCk6e319fSx7fSksbT1sWXIoey4uLmgsY29udGVudDpwcihrdChkLCJjb250ZW50IixwKSksbWFya3M6cHIoa3QoZCwibWFya3MiLHApKSxncm91cDpwcihrdChkLCJncm91cCIscCkpLGlubGluZTpwcihrdChkLCJpbmxpbmUiLHApKSxhdG9tOnByKGt0KGQsImF0b20iLHApKSxzZWxlY3RhYmxlOnByKGt0KGQsInNlbGVjdGFibGUiLHApKSxkcmFnZ2FibGU6cHIoa3QoZCwiZHJhZ2dhYmxlIixwKSksY29kZTpwcihrdChkLCJjb2RlIixwKSksd2hpdGVzcGFjZTpwcihrdChkLCJ3aGl0ZXNwYWNlIixwKSksbGluZWJyZWFrUmVwbGFjZW1lbnQ6cHIoa3QoZCwibGluZWJyZWFrUmVwbGFjZW1lbnQiLHApKSxkZWZpbmluZzpwcihrdChkLCJkZWZpbmluZyIscCkpLGlzb2xhdGluZzpwcihrdChkLCJpc29sYXRpbmciLHApKSxhdHRyczpPYmplY3QuZnJvbUVudHJpZXMoZi5tYXAoeT0+e3ZhciBrO3JldHVyblt5Lm5hbWUse2RlZmF1bHQ6KGs9eT8uYXR0cmlidXRlKT09PW51bGx8fGs9PT12b2lkIDA/dm9pZCAwOmsuZGVmYXVsdH1dfSkpfSksdj1wcihrdChkLCJwYXJzZUhUTUwiLHApKTt2JiYobS5wYXJzZURPTT12Lm1hcCh5PT5laGUoeSxmKSkpO2xldCBiPWt0KGQsInJlbmRlckhUTUwiLHApO2ImJihtLnRvRE9NPXk9PmIoe25vZGU6eSxIVE1MQXR0cmlidXRlczpXdGUoeSxmKX0pKTtsZXQgZz1rdChkLCJyZW5kZXJUZXh0IixwKTtyZXR1cm4gZyYmKG0udG9UZXh0PWcpLFtkLm5hbWUsbV19KSksYz1PYmplY3QuZnJvbUVudHJpZXMobi5tYXAoZD0+e2xldCBmPWEuZmlsdGVyKGc9PmcudHlwZT09PWQubmFtZSkscD17bmFtZTpkLm5hbWUsb3B0aW9uczpkLm9wdGlvbnMsc3RvcmFnZTpkLnN0b3JhZ2UsZWRpdG9yOmV9LGg9dC5yZWR1Y2UoKGcseSk9PntsZXQgaz1rdCh5LCJleHRlbmRNYXJrU2NoZW1hIixwKTtyZXR1cm57Li4uZywuLi5rP2soZCk6e319fSx7fSksbT1sWXIoey4uLmgsaW5jbHVzaXZlOnByKGt0KGQsImluY2x1c2l2ZSIscCkpLGV4Y2x1ZGVzOnByKGt0KGQsImV4Y2x1ZGVzIixwKSksZ3JvdXA6cHIoa3QoZCwiZ3JvdXAiLHApKSxzcGFubmluZzpwcihrdChkLCJzcGFubmluZyIscCkpLGNvZGU6cHIoa3QoZCwiY29kZSIscCkpLGF0dHJzOk9iamVjdC5mcm9tRW50cmllcyhmLm1hcChnPT57dmFyIHk7cmV0dXJuW2cubmFtZSx7ZGVmYXVsdDooeT1nPy5hdHRyaWJ1dGUpPT09bnVsbHx8eT09PXZvaWQgMD92b2lkIDA6eS5kZWZhdWx0fV19KSl9KSx2PXByKGt0KGQsInBhcnNlSFRNTCIscCkpO3YmJihtLnBhcnNlRE9NPXYubWFwKGc9PmVoZShnLGYpKSk7bGV0IGI9a3QoZCwicmVuZGVySFRNTCIscCk7cmV0dXJuIGImJihtLnRvRE9NPWc9PmIoe21hcms6ZyxIVE1MQXR0cmlidXRlczpXdGUoZyxmKX0pKSxbZC5uYW1lLG1dfSkpO3JldHVybiBuZXcgR3koe3RvcE5vZGU6byxub2RlczpsLG1hcmtzOmN9KX1mdW5jdGlvbiBHdGUodCxlKXtyZXR1cm4gZS5ub2Rlc1t0XXx8ZS5tYXJrc1t0XXx8bnVsbH1mdW5jdGlvbiByaGUodCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLnNvbWUocj0+KHR5cGVvZiByPT0ic3RyaW5nIj9yOnIubmFtZSk9PT10Lm5hbWUpOmV9ZnVuY3Rpb24gdXcodCxlKXtsZXQgcj1vZC5mcm9tU2NoZW1hKGUpLnNlcmlhbGl6ZUZyYWdtZW50KHQpLHM9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCkuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHMuYXBwZW5kQ2hpbGQocikscy5pbm5lckhUTUx9ZnVuY3Rpb24gWXRlKHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk9PT0iW29iamVjdCBSZWdFeHBdIn1mdW5jdGlvbiBLZmUodCl7dmFyIGU7bGV0e2VkaXRvcjpyLGZyb206YSx0bzpzLHRleHQ6bixydWxlczpvLHBsdWdpbjpsfT10LHt2aWV3OmN9PXI7aWYoYy5jb21wb3NpbmcpcmV0dXJuITE7bGV0IGQ9Yy5zdGF0ZS5kb2MucmVzb2x2ZShhKTtpZihkLnBhcmVudC50eXBlLnNwZWMuY29kZXx8ISgoZT1kLm5vZGVCZWZvcmV8fGQubm9kZUFmdGVyKT09PW51bGx8fGU9PT12b2lkIDApJiZlLm1hcmtzLmZpbmQoaD0+aC50eXBlLnNwZWMuY29kZSkpcmV0dXJuITE7bGV0IGY9ITEscD1MNXQoZCkrbjtyZXR1cm4gby5mb3JFYWNoKGg9PntpZihmKXJldHVybjtsZXQgbT1YTmEocCxoLmZpbmQpO2lmKCFtKXJldHVybjtsZXQgdj1jLnN0YXRlLnRyLGI9Y3coe3N0YXRlOmMuc3RhdGUsdHJhbnNhY3Rpb246dn0pLGc9e2Zyb206YS0obVswXS5sZW5ndGgtbi5sZW5ndGgpLHRvOnN9LHtjb21tYW5kczp5LGNoYWluOmssY2FuOk19PW5ldyBKcCh7ZWRpdG9yOnIsc3RhdGU6Yn0pO2guaGFuZGxlcih7c3RhdGU6YixyYW5nZTpnLG1hdGNoOm0sY29tbWFuZHM6eSxjaGFpbjprLGNhbjpNfSk9PT1udWxsfHwhdi5zdGVwcy5sZW5ndGh8fCh2LnNldE1ldGEobCx7dHJhbnNmb3JtOnYsZnJvbTphLHRvOnMsdGV4dDpufSksYy5kaXNwYXRjaCh2KSxmPSEwKX0pLGZ9ZnVuY3Rpb24gRDV0KHQpe2xldHtlZGl0b3I6ZSxydWxlczpyfT10LGE9bmV3IFFhKHtzdGF0ZTp7aW5pdCgpe3JldHVybiBudWxsfSxhcHBseShzLG4sbyl7bGV0IGw9cy5nZXRNZXRhKGEpO2lmKGwpcmV0dXJuIGw7bGV0IGM9cy5nZXRNZXRhKCJhcHBseUlucHV0UnVsZXMiKTtyZXR1cm4gYyYmc2V0VGltZW91dCgoKT0+e2xldHt0ZXh0OmZ9PWM7dHlwZW9mIGY9PSJzdHJpbmciP2Y9ZjpmPXV3KEplLmZyb20oZiksby5zY2hlbWEpO2xldHtmcm9tOnB9PWMsaD1wK2YubGVuZ3RoO0tmZSh7ZWRpdG9yOmUsZnJvbTpwLHRvOmgsdGV4dDpmLHJ1bGVzOnIscGx1Z2luOmF9KX0pLHMuc2VsZWN0aW9uU2V0fHxzLmRvY0NoYW5nZWQ/bnVsbDpufX0scHJvcHM6e2hhbmRsZVRleHRJbnB1dChzLG4sbyxsKXtyZXR1cm4gS2ZlKHtlZGl0b3I6ZSxmcm9tOm4sdG86byx0ZXh0OmwscnVsZXM6cixwbHVnaW46YX0pfSxoYW5kbGVET01FdmVudHM6e2NvbXBvc2l0aW9uZW5kOmkocz0+KHNldFRpbWVvdXQoKCk9PntsZXR7JGN1cnNvcjpufT1zLnN0YXRlLnNlbGVjdGlvbjtuJiZLZmUoe2VkaXRvcjplLGZyb206bi5wb3MsdG86bi5wb3MsdGV4dDoiIixydWxlczpyLHBsdWdpbjphfSl9KSwhMSksImNvbXBvc2l0aW9uZW5kIil9LGhhbmRsZUtleURvd24ocyxuKXtpZihuLmtleSE9PSJFbnRlciIpcmV0dXJuITE7bGV0eyRjdXJzb3I6b309cy5zdGF0ZS5zZWxlY3Rpb247cmV0dXJuIG8/S2ZlKHtlZGl0b3I6ZSxmcm9tOm8ucG9zLHRvOm8ucG9zLHRleHQ6YApgLHJ1bGVzOnIscGx1Z2luOmF9KTohMX19LGlzSW5wdXRSdWxlczohMH0pO3JldHVybiBhfWZ1bmN0aW9uIEpOYSh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpfWZ1bmN0aW9uIHB3KHQpe3JldHVybiBKTmEodCkhPT0iT2JqZWN0Ij8hMTp0LmNvbnN0cnVjdG9yPT09T2JqZWN0JiZPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIGZ3KHQsZSl7bGV0IHI9ey4uLnR9O3JldHVybiBwdyh0KSYmcHcoZSkmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goYT0+e3B3KGVbYV0pJiZwdyh0W2FdKT9yW2FdPWZ3KHRbYV0sZVthXSk6clthXT1lW2FdfSkscn1mdW5jdGlvbiAkNXQodCl7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIn1mdW5jdGlvbiB0T2EodCl7bGV0e2VkaXRvcjplLHN0YXRlOnIsZnJvbTphLHRvOnMscnVsZTpuLHBhc3RlRXZlbnQ6byxkcm9wRXZlbnQ6bH09dCx7Y29tbWFuZHM6YyxjaGFpbjpkLGNhbjpmfT1uZXcgSnAoe2VkaXRvcjplLHN0YXRlOnJ9KSxwPVtdO3JldHVybiByLmRvYy5ub2Rlc0JldHdlZW4oYSxzLChtLHYpPT57aWYoIW0uaXNUZXh0YmxvY2t8fG0udHlwZS5zcGVjLmNvZGUpcmV0dXJuO2xldCBiPU1hdGgubWF4KGEsdiksZz1NYXRoLm1pbihzLHYrbS5jb250ZW50LnNpemUpLHk9bS50ZXh0QmV0d2VlbihiLXYsZy12LHZvaWQgMCwiXHVGRkZDIik7ZU9hKHksbi5maW5kLG8pLmZvckVhY2goTT0+e2lmKE0uaW5kZXg9PT12b2lkIDApcmV0dXJuO2xldCBOPWIrTS5pbmRleCsxLF89TitNWzBdLmxlbmd0aCxTPXtmcm9tOnIudHIubWFwcGluZy5tYXAoTiksdG86ci50ci5tYXBwaW5nLm1hcChfKX0sTz1uLmhhbmRsZXIoe3N0YXRlOnIscmFuZ2U6UyxtYXRjaDpNLGNvbW1hbmRzOmMsY2hhaW46ZCxjYW46ZixwYXN0ZUV2ZW50Om8sZHJvcEV2ZW50Omx9KTtwLnB1c2goTyl9KX0pLHAuZXZlcnkobT0+bSE9PW51bGwpfWZ1bmN0aW9uIEE1dCh0KXtsZXR7ZWRpdG9yOmUscnVsZXM6cn09dCxhPW51bGwscz0hMSxuPSExLG89dHlwZW9mIENsaXBib2FyZEV2ZW50PCJ1Ij9uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIik6bnVsbCxsO3RyeXtsPXR5cGVvZiBEcmFnRXZlbnQ8InUiP25ldyBEcmFnRXZlbnQoImRyb3AiKTpudWxsfWNhdGNoe2w9bnVsbH1sZXQgYz1pKCh7c3RhdGU6Zixmcm9tOnAsdG86aCxydWxlOm0scGFzdGVFdnQ6dn0pPT57bGV0IGI9Zi50cixnPWN3KHtzdGF0ZTpmLHRyYW5zYWN0aW9uOmJ9KTtpZighKCF0T2Eoe2VkaXRvcjplLHN0YXRlOmcsZnJvbTpNYXRoLm1heChwLTEsMCksdG86aC5iLTEscnVsZTptLHBhc3RlRXZlbnQ6dixkcm9wRXZlbnQ6bH0pfHwhYi5zdGVwcy5sZW5ndGgpKXt0cnl7bD10eXBlb2YgRHJhZ0V2ZW50PCJ1Ij9uZXcgRHJhZ0V2ZW50KCJkcm9wIik6bnVsbH1jYXRjaHtsPW51bGx9cmV0dXJuIG89dHlwZW9mIENsaXBib2FyZEV2ZW50PCJ1Ij9uZXcgQ2xpcGJvYXJkRXZlbnQoInBhc3RlIik6bnVsbCxifX0sInByb2Nlc3NFdmVudCIpO3JldHVybiByLm1hcChmPT5uZXcgUWEoe3ZpZXcocCl7bGV0IGg9aSh2PT57dmFyIGI7YT0hKChiPXAuZG9tLnBhcmVudEVsZW1lbnQpPT09bnVsbHx8Yj09PXZvaWQgMCkmJmIuY29udGFpbnModi50YXJnZXQpP3AuZG9tLnBhcmVudEVsZW1lbnQ6bnVsbCxhJiYoWmZlPWUpfSwiaGFuZGxlRHJhZ3N0YXJ0IiksbT1pKCgpPT57WmZlJiYoWmZlPW51bGwpfSwiaGFuZGxlRHJhZ2VuZCIpO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsbSkse2Rlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixoKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsbSl9fX0scHJvcHM6e2hhbmRsZURPTUV2ZW50czp7ZHJvcDppKChwLGgpPT57aWYobj1hPT09cC5kb20ucGFyZW50RWxlbWVudCxsPWgsIW4pe2xldCBtPVpmZTttPy5pc0VkaXRhYmxlJiZzZXRUaW1lb3V0KCgpPT57bGV0IHY9bS5zdGF0ZS5zZWxlY3Rpb247diYmbS5jb21tYW5kcy5kZWxldGVSYW5nZSh7ZnJvbTp2LmZyb20sdG86di50b30pfSwxMCl9cmV0dXJuITF9LCJkcm9wIikscGFzdGU6aSgocCxoKT0+e3ZhciBtO2xldCB2PShtPWguY2xpcGJvYXJkRGF0YSk9PT1udWxsfHxtPT09dm9pZCAwP3ZvaWQgMDptLmdldERhdGEoInRleHQvaHRtbCIpO3JldHVybiBvPWgscz0hIXY/LmluY2x1ZGVzKCJkYXRhLXBtLXNsaWNlIiksITF9LCJwYXN0ZSIpfX0sYXBwZW5kVHJhbnNhY3Rpb246aSgocCxoLG0pPT57bGV0IHY9cFswXSxiPXYuZ2V0TWV0YSgidWlFdmVudCIpPT09InBhc3RlIiYmIXMsZz12LmdldE1ldGEoInVpRXZlbnQiKT09PSJkcm9wIiYmIW4seT12LmdldE1ldGEoImFwcGx5UGFzdGVSdWxlcyIpLGs9ISF5O2lmKCFiJiYhZyYmIWspcmV0dXJuO2lmKGspe2xldHt0ZXh0Ol99PXk7dHlwZW9mIF89PSJzdHJpbmciP189XzpfPXV3KEplLmZyb20oXyksbS5zY2hlbWEpO2xldHtmcm9tOlN9PXksTz1TK18ubGVuZ3RoLEw9ck9hKF8pO3JldHVybiBjKHtydWxlOmYsc3RhdGU6bSxmcm9tOlMsdG86e2I6T30scGFzdGVFdnQ6TH0pfWxldCBNPWguZG9jLmNvbnRlbnQuZmluZERpZmZTdGFydChtLmRvYy5jb250ZW50KSxOPWguZG9jLmNvbnRlbnQuZmluZERpZmZFbmQobS5kb2MuY29udGVudCk7aWYoISghJDV0KE0pfHwhTnx8TT09PU4uYikpcmV0dXJuIGMoe3J1bGU6ZixzdGF0ZTptLGZyb206TSx0bzpOLHBhc3RlRXZ0Om99KX0sImFwcGVuZFRyYW5zYWN0aW9uIil9KSl9ZnVuY3Rpb24gRTV0KHQpe2xldCBlPXQuZmlsdGVyKChyLGEpPT50LmluZGV4T2YocikhPT1hKTtyZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGUpKX1mdW5jdGlvbiBhaGUodCxlLHIpe2xldHtmcm9tOmEsdG86c309ZSx7YmxvY2tTZXBhcmF0b3I6bj1gCgpgLHRleHRTZXJpYWxpemVyczpvPXt9fT1yfHx7fSxsPSIiO3JldHVybiB0Lm5vZGVzQmV0d2VlbihhLHMsKGMsZCxmLHApPT57dmFyIGg7Yy5pc0Jsb2NrJiZkPmEmJihsKz1uKTtsZXQgbT1vPy5bYy50eXBlLm5hbWVdO2lmKG0pcmV0dXJuIGYmJihsKz1tKHtub2RlOmMscG9zOmQscGFyZW50OmYsaW5kZXg6cCxyYW5nZTplfSkpLCExO2MuaXNUZXh0JiYobCs9KGg9Yz8udGV4dCk9PT1udWxsfHxoPT09dm9pZCAwP3ZvaWQgMDpoLnNsaWNlKE1hdGgubWF4KGEsZCktZCxzLWQpKX0pLGx9ZnVuY3Rpb24gS3RlKHQpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModC5ub2RlcykuZmlsdGVyKChbLGVdKT0+ZS5zcGVjLnRvVGV4dCkubWFwKChbZSxyXSk9PltlLHIuc3BlYy50b1RleHRdKSl9ZnVuY3Rpb24gaHcodCxlLHI9e3N0cmljdDohMH0pe2xldCBhPU9iamVjdC5rZXlzKGUpO3JldHVybiBhLmxlbmd0aD9hLmV2ZXJ5KHM9PnIuc3RyaWN0P2Vbc109PT10W3NdOll0ZShlW3NdKT9lW3NdLnRlc3QodFtzXSk6ZVtzXT09PXRbc10pOiEwfWZ1bmN0aW9uIGRZcih0LGUscj17fSl7cmV0dXJuIHQuZmluZChhPT5hLnR5cGU9PT1lJiZodyhPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmtleXMocikubWFwKHM9PltzLGEuYXR0cnNbc11dKSkscikpfWZ1bmN0aW9uIHVZcih0LGUscj17fSl7cmV0dXJuISFkWXIodCxlLHIpfWZ1bmN0aW9uIFp0ZSh0LGUscil7dmFyIGE7aWYoIXR8fCFlKXJldHVybjtsZXQgcz10LnBhcmVudC5jaGlsZEFmdGVyKHQucGFyZW50T2Zmc2V0KTtpZigoIXMubm9kZXx8IXMubm9kZS5tYXJrcy5zb21lKGY9PmYudHlwZT09PWUpKSYmKHM9dC5wYXJlbnQuY2hpbGRCZWZvcmUodC5wYXJlbnRPZmZzZXQpKSwhcy5ub2RlfHwhcy5ub2RlLm1hcmtzLnNvbWUoZj0+Zi50eXBlPT09ZSl8fChyPXJ8fCgoYT1zLm5vZGUubWFya3NbMF0pPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5hdHRycyksIWRZcihbLi4ucy5ub2RlLm1hcmtzXSxlLHIpKSlyZXR1cm47bGV0IG89cy5pbmRleCxsPXQuc3RhcnQoKStzLm9mZnNldCxjPW8rMSxkPWwrcy5ub2RlLm5vZGVTaXplO2Zvcig7bz4wJiZ1WXIoWy4uLnQucGFyZW50LmNoaWxkKG8tMSkubWFya3NdLGUscik7KW8tPTEsbC09dC5wYXJlbnQuY2hpbGQobykubm9kZVNpemU7Zm9yKDtjPHQucGFyZW50LmNoaWxkQ291bnQmJnVZcihbLi4udC5wYXJlbnQuY2hpbGQoYykubWFya3NdLGUscik7KWQrPXQucGFyZW50LmNoaWxkKGMpLm5vZGVTaXplLGMrPTE7cmV0dXJue2Zyb206bCx0bzpkfX1mdW5jdGlvbiBmZCh0LGUpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7aWYoIWUubWFya3NbdF0pdGhyb3cgRXJyb3IoYFRoZXJlIGlzIG5vIG1hcmsgdHlwZSBuYW1lZCAnJHt0fScuIE1heWJlIHlvdSBmb3Jnb3QgdG8gYWRkIHRoZSBleHRlbnNpb24/YCk7cmV0dXJuIGUubWFya3NbdF19cmV0dXJuIHR9ZnVuY3Rpb24gaWhlKHQpe3JldHVybiB0IGluc3RhbmNlb2YgZXJ9ZnVuY3Rpb24ga2ModD0wLGU9MCxyPTApe3JldHVybiBNYXRoLm1pbihNYXRoLm1heCh0LGUpLHIpfWZ1bmN0aW9uIHNoZSh0LGU9bnVsbCl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHI9SnQuYXRTdGFydCh0KSxhPUp0LmF0RW5kKHQpO2lmKGU9PT0ic3RhcnQifHxlPT09ITApcmV0dXJuIHI7aWYoZT09PSJlbmQiKXJldHVybiBhO2xldCBzPXIuZnJvbSxuPWEudG87cmV0dXJuIGU9PT0iYWxsIj9lci5jcmVhdGUodCxrYygwLHMsbiksa2ModC5jb250ZW50LnNpemUscyxuKSk6ZXIuY3JlYXRlKHQsa2MoZSxzLG4pLGtjKGUscyxuKSl9ZnVuY3Rpb24gTTV0KCl7cmV0dXJuIG5hdmlnYXRvci5wbGF0Zm9ybT09PSJBbmRyb2lkInx8L2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfWZ1bmN0aW9uIFc5KCl7cmV0dXJuWyJpUGFkIFNpbXVsYXRvciIsImlQaG9uZSBTaW11bGF0b3IiLCJpUG9kIFNpbXVsYXRvciIsImlQYWQiLCJpUGhvbmUiLCJpUG9kIl0uaW5jbHVkZXMobmF2aWdhdG9yLnBsYXRmb3JtKXx8bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiTWFjIikmJiJvbnRvdWNoZW5kImluIGRvY3VtZW50fWZ1bmN0aW9uIEk1dCgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1Ij8vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOiExfWZ1bmN0aW9uIEc5KHQpe2xldCBlPWA8Ym9keT4ke3R9PC9ib2R5PmAscj1uZXcgd2luZG93LkRPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhlLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiBwWXIocil9ZnVuY3Rpb24gWTkodCxlLHIpe2lmKHQgaW5zdGFuY2VvZiBxb3x8dCBpbnN0YW5jZW9mIEplKXJldHVybiB0O3I9e3NsaWNlOiEwLHBhcnNlT3B0aW9uczp7fSwuLi5yfTtsZXQgYT10eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsLHM9dHlwZW9mIHQ9PSJzdHJpbmciO2lmKGEpdHJ5e2lmKEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjApcmV0dXJuIEplLmZyb21BcnJheSh0Lm1hcChsPT5lLm5vZGVGcm9tSlNPTihsKSkpO2xldCBvPWUubm9kZUZyb21KU09OKHQpO3JldHVybiByLmVycm9yT25JbnZhbGlkQ29udGVudCYmby5jaGVjaygpLG99Y2F0Y2gobil7aWYoci5lcnJvck9uSW52YWxpZENvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJbdGlwdGFwIGVycm9yXTogSW52YWxpZCBKU09OIGNvbnRlbnQiLHtjYXVzZTpufSk7cmV0dXJuIGNvbnNvbGUud2FybigiW3RpcHRhcCB3YXJuXTogSW52YWxpZCBjb250ZW50LiIsIlBhc3NlZCB2YWx1ZToiLHQsIkVycm9yOiIsbiksWTkoIiIsZSxyKX1pZihzKXtpZihyLmVycm9yT25JbnZhbGlkQ29udGVudCl7bGV0IG89ITEsbD0iIixjPW5ldyBHeSh7dG9wTm9kZTplLnNwZWMudG9wTm9kZSxtYXJrczplLnNwZWMubWFya3Msbm9kZXM6ZS5zcGVjLm5vZGVzLmFwcGVuZCh7X190aXB0YXBfX3ByaXZhdGVfX3Vua25vd25fX2NhdGNoX19hbGxfX25vZGU6e2NvbnRlbnQ6ImlubGluZSoiLGdyb3VwOiJibG9jayIscGFyc2VET006W3t0YWc6IioiLGdldEF0dHJzOmkoZD0+KG89ITAsbD10eXBlb2YgZD09InN0cmluZyI/ZDpkLm91dGVySFRNTCxudWxsKSwiZ2V0QXR0cnMiKX1dfX0pfSk7aWYoci5zbGljZT95Yy5mcm9tU2NoZW1hKGMpLnBhcnNlU2xpY2UoRzkodCksci5wYXJzZU9wdGlvbnMpOnljLmZyb21TY2hlbWEoYykucGFyc2UoRzkodCksci5wYXJzZU9wdGlvbnMpLHIuZXJyb3JPbkludmFsaWRDb250ZW50JiZvKXRocm93IG5ldyBFcnJvcigiW3RpcHRhcCBlcnJvcl06IEludmFsaWQgSFRNTCBjb250ZW50Iix7Y2F1c2U6bmV3IEVycm9yKGBJbnZhbGlkIGVsZW1lbnQgZm91bmQ6ICR7bH1gKX0pfWxldCBuPXljLmZyb21TY2hlbWEoZSk7cmV0dXJuIHIuc2xpY2U/bi5wYXJzZVNsaWNlKEc5KHQpLHIucGFyc2VPcHRpb25zKS5jb250ZW50Om4ucGFyc2UoRzkodCksci5wYXJzZU9wdGlvbnMpfXJldHVybiBZOSgiIixlLHIpfWZ1bmN0aW9uIFA1dCh0LGUscil7bGV0IGE9dC5zdGVwcy5sZW5ndGgtMTtpZihhPGUpcmV0dXJuO2xldCBzPXQuc3RlcHNbYV07aWYoIShzIGluc3RhbmNlb2YgSW58fHMgaW5zdGFuY2VvZiBkcykpcmV0dXJuO2xldCBuPXQubWFwcGluZy5tYXBzW2FdLG89MDtuLmZvckVhY2goKGwsYyxkLGYpPT57bz09PTAmJihvPWYpfSksdC5zZXRTZWxlY3Rpb24oSnQubmVhcih0LmRvYy5yZXNvbHZlKG8pLHIpKX1mdW5jdGlvbiBuaGUoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSI/L01hYy8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pOiExfWZ1bmN0aW9uIERPYSh0KXtsZXQgZT10LnNwbGl0KC8tKD8hJCkvKSxyPWVbZS5sZW5ndGgtMV07cj09PSJTcGFjZSImJihyPSIgIik7bGV0IGEscyxuLG87Zm9yKGxldCBsPTA7bDxlLmxlbmd0aC0xO2wrPTEpe2xldCBjPWVbbF07aWYoL14oY21kfG1ldGF8bSkkL2kudGVzdChjKSlvPSEwO2Vsc2UgaWYoL15hKGx0KT8kL2kudGVzdChjKSlhPSEwO2Vsc2UgaWYoL14oY3xjdHJsfGNvbnRyb2wpJC9pLnRlc3QoYykpcz0hMDtlbHNlIGlmKC9ecyhoaWZ0KT8kL2kudGVzdChjKSluPSEwO2Vsc2UgaWYoL15tb2QkL2kudGVzdChjKSlXOSgpfHxuaGUoKT9vPSEwOnM9ITA7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBtb2RpZmllciBuYW1lOiAke2N9YCl9cmV0dXJuIGEmJihyPWBBbHQtJHtyfWApLHMmJihyPWBDdHJsLSR7cn1gKSxvJiYocj1gTWV0YS0ke3J9YCksbiYmKHI9YFNoaWZ0LSR7cn1gKSxyfWZ1bmN0aW9uIEs5KHQsZSxyPXt9KXtsZXR7ZnJvbTphLHRvOnMsZW1wdHk6bn09dC5zZWxlY3Rpb24sbz1lPyRzKGUsdC5zY2hlbWEpOm51bGwsbD1bXTt0LmRvYy5ub2Rlc0JldHdlZW4oYSxzLChwLGgpPT57aWYocC5pc1RleHQpcmV0dXJuO2xldCBtPU1hdGgubWF4KGEsaCksdj1NYXRoLm1pbihzLGgrcC5ub2RlU2l6ZSk7bC5wdXNoKHtub2RlOnAsZnJvbTptLHRvOnZ9KX0pO2xldCBjPXMtYSxkPWwuZmlsdGVyKHA9Pm8/by5uYW1lPT09cC5ub2RlLnR5cGUubmFtZTohMCkuZmlsdGVyKHA9Pmh3KHAubm9kZS5hdHRycyxyLHtzdHJpY3Q6ITF9KSk7cmV0dXJuIG4/ISFkLmxlbmd0aDpkLnJlZHVjZSgocCxoKT0+cCtoLnRvLWguZnJvbSwwKT49Y31mdW5jdGlvbiBtdyh0LGUpe3JldHVybiBlLm5vZGVzW3RdPyJub2RlIjplLm1hcmtzW3RdPyJtYXJrIjpudWxsfWZ1bmN0aW9uIG9oZSh0LGUpe2xldCByPXR5cGVvZiBlPT0ic3RyaW5nIj9bZV06ZTtyZXR1cm4gT2JqZWN0LmtleXModCkucmVkdWNlKChhLHMpPT4oci5pbmNsdWRlcyhzKXx8KGFbc109dFtzXSksYSkse30pfWZ1bmN0aW9uIFF0ZSh0LGUscj17fSxhPXt9KXtyZXR1cm4gWTkodCxlLHtzbGljZTohMSxwYXJzZU9wdGlvbnM6cixlcnJvck9uSW52YWxpZENvbnRlbnQ6YS5lcnJvck9uSW52YWxpZENvbnRlbnR9KX1mdW5jdGlvbiBsaGUodCxlKXtsZXQgcj1mZChlLHQuc2NoZW1hKSx7ZnJvbTphLHRvOnMsZW1wdHk6bn09dC5zZWxlY3Rpb24sbz1bXTtuPyh0LnN0b3JlZE1hcmtzJiZvLnB1c2goLi4udC5zdG9yZWRNYXJrcyksby5wdXNoKC4uLnQuc2VsZWN0aW9uLiRoZWFkLm1hcmtzKCkpKTp0LmRvYy5ub2Rlc0JldHdlZW4oYSxzLGM9PntvLnB1c2goLi4uYy5tYXJrcyl9KTtsZXQgbD1vLmZpbmQoYz0+Yy50eXBlLm5hbWU9PT1yLm5hbWUpO3JldHVybiBsP3suLi5sLmF0dHJzfTp7fX1mdW5jdGlvbiBoaGUodCxlKXtsZXQgcj1uZXcgQTkodCk7cmV0dXJuIGUuZm9yRWFjaChhPT57YS5zdGVwcy5mb3JFYWNoKHM9PntyLnN0ZXAocyl9KX0pLHJ9ZnVuY3Rpb24gTjV0KHQpe2ZvcihsZXQgZT0wO2U8dC5lZGdlQ291bnQ7ZSs9MSl7bGV0e3R5cGU6cn09dC5lZGdlKGUpO2lmKHIuaXNUZXh0YmxvY2smJiFyLmhhc1JlcXVpcmVkQXR0cnMoKSlyZXR1cm4gcn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBTWXIodCxlKXtsZXQgcj1bXTtyZXR1cm4gdC5kZXNjZW5kYW50cygoYSxzKT0+e2UoYSkmJnIucHVzaCh7bm9kZTphLHBvczpzfSl9KSxyfWZ1bmN0aW9uIG1oZSh0LGUscil7bGV0IGE9W107cmV0dXJuIHQubm9kZXNCZXR3ZWVuKGUuZnJvbSxlLnRvLChzLG4pPT57cihzKSYmYS5wdXNoKHtub2RlOnMscG9zOm59KX0pLGF9ZnVuY3Rpb24gTzV0KHQsZSl7Zm9yKGxldCByPXQuZGVwdGg7cj4wO3ItPTEpe2xldCBhPXQubm9kZShyKTtpZihlKGEpKXJldHVybntwb3M6cj4wP3QuYmVmb3JlKHIpOjAsc3RhcnQ6dC5zdGFydChyKSxkZXB0aDpyLG5vZGU6YX19fWZ1bmN0aW9uIGd3KHQpe3JldHVybiBlPT5PNXQoZS4kZnJvbSx0KX1mdW5jdGlvbiBYdGUodCxlKXtsZXQgcj1RZmUucmVzb2x2ZSh0KTtyZXR1cm4gdGhlKHIsZSl9ZnVuY3Rpb24gTVlyKHQsZSl7bGV0IHI9WHRlKGUpLGE9cW8uZnJvbUpTT04ocix0KTtyZXR1cm4gdXcoYS5jb250ZW50LHIpfWZ1bmN0aW9uIENZcih0LGUpe2xldCByPVh0ZShlKSxhPUc5KHQpO3JldHVybiB5Yy5mcm9tU2NoZW1hKHIpLnBhcnNlKGEpLnRvSlNPTigpfWZ1bmN0aW9uIGNoZSh0LGUpe2xldCByPXtmcm9tOjAsdG86dC5jb250ZW50LnNpemV9O3JldHVybiBhaGUodCxyLGUpfWZ1bmN0aW9uIHpZcih0LGUscil7bGV0e2Jsb2NrU2VwYXJhdG9yOmE9YAoKYCx0ZXh0U2VyaWFsaXplcnM6cz17fX09cnx8e30sbj1YdGUoZSksbz1xby5mcm9tSlNPTihuLHQpO3JldHVybiBjaGUobyx7YmxvY2tTZXBhcmF0b3I6YSx0ZXh0U2VyaWFsaXplcnM6ey4uLkt0ZShuKSwuLi5zfX0pfWZ1bmN0aW9uIFI1dCh0LGUpe2xldCByPSRzKGUsdC5zY2hlbWEpLHtmcm9tOmEsdG86c309dC5zZWxlY3Rpb24sbj1bXTt0LmRvYy5ub2Rlc0JldHdlZW4oYSxzLGw9PntuLnB1c2gobCl9KTtsZXQgbz1uLnJldmVyc2UoKS5maW5kKGw9PmwudHlwZS5uYW1lPT09ci5uYW1lKTtyZXR1cm4gbz97Li4uby5hdHRyc306e319ZnVuY3Rpb24gcnJlKHQsZSl7bGV0IHI9bXcodHlwZW9mIGU9PSJzdHJpbmciP2U6ZS5uYW1lLHQuc2NoZW1hKTtyZXR1cm4gcj09PSJub2RlIj9SNXQodCxlKTpyPT09Im1hcmsiP2xoZSh0LGUpOnt9fWZ1bmN0aW9uIEY1dCh0LGU9SlNPTi5zdHJpbmdpZnkpe2xldCByPXt9O3JldHVybiB0LmZpbHRlcihhPT57bGV0IHM9ZShhKTtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIscyk/ITE6cltzXT0hMH0pfWZ1bmN0aW9uIFVPYSh0KXtsZXQgZT1GNXQodCk7cmV0dXJuIGUubGVuZ3RoPT09MT9lOmUuZmlsdGVyKChyLGEpPT4hZS5maWx0ZXIoKG4sbyk9Pm8hPT1hKS5zb21lKG49PnIub2xkUmFuZ2UuZnJvbT49bi5vbGRSYW5nZS5mcm9tJiZyLm9sZFJhbmdlLnRvPD1uLm9sZFJhbmdlLnRvJiZyLm5ld1JhbmdlLmZyb20+PW4ubmV3UmFuZ2UuZnJvbSYmci5uZXdSYW5nZS50bzw9bi5uZXdSYW5nZS50bykpfWZ1bmN0aW9uIGdoZSh0KXtsZXR7bWFwcGluZzplLHN0ZXBzOnJ9PXQsYT1bXTtyZXR1cm4gZS5tYXBzLmZvckVhY2goKHMsbik9PntsZXQgbz1bXTtpZihzLnJhbmdlcy5sZW5ndGgpcy5mb3JFYWNoKChsLGMpPT57by5wdXNoKHtmcm9tOmwsdG86Y30pfSk7ZWxzZXtsZXR7ZnJvbTpsLHRvOmN9PXJbbl07aWYobD09PXZvaWQgMHx8Yz09PXZvaWQgMClyZXR1cm47by5wdXNoKHtmcm9tOmwsdG86Y30pfW8uZm9yRWFjaCgoe2Zyb206bCx0bzpjfSk9PntsZXQgZD1lLnNsaWNlKG4pLm1hcChsLC0xKSxmPWUuc2xpY2UobikubWFwKGMpLHA9ZS5pbnZlcnQoKS5tYXAoZCwtMSksaD1lLmludmVydCgpLm1hcChmKTthLnB1c2goe29sZFJhbmdlOntmcm9tOnAsdG86aH0sbmV3UmFuZ2U6e2Zyb206ZCx0bzpmfX0pfSl9KSxVT2EoYSl9ZnVuY3Rpb24gQjV0KHQsZT0wKXtsZXQgYT10LnR5cGU9PT10LnR5cGUuc2NoZW1hLnRvcE5vZGVUeXBlPzA6MSxzPWUsbj1zK3Qubm9kZVNpemUsbz10Lm1hcmtzLm1hcChkPT57bGV0IGY9e3R5cGU6ZC50eXBlLm5hbWV9O3JldHVybiBPYmplY3Qua2V5cyhkLmF0dHJzKS5sZW5ndGgmJihmLmF0dHJzPXsuLi5kLmF0dHJzfSksZn0pLGw9ey4uLnQuYXR0cnN9LGM9e3R5cGU6dC50eXBlLm5hbWUsZnJvbTpzLHRvOm59O3JldHVybiBPYmplY3Qua2V5cyhsKS5sZW5ndGgmJihjLmF0dHJzPWwpLG8ubGVuZ3RoJiYoYy5tYXJrcz1vKSx0LmNvbnRlbnQuY2hpbGRDb3VudCYmKGMuY29udGVudD1bXSx0LmZvckVhY2goKGQsZik9Pnt2YXIgcDsocD1jLmNvbnRlbnQpPT09bnVsbHx8cD09PXZvaWQgMHx8cC5wdXNoKEI1dChkLGUrZithKSl9KSksdC50ZXh0JiYoYy50ZXh0PXQudGV4dCksY31mdW5jdGlvbiB4dyh0LGUscil7bGV0IGE9W107cmV0dXJuIHQ9PT1lP3IucmVzb2x2ZSh0KS5tYXJrcygpLmZvckVhY2gocz0+e2xldCBuPXIucmVzb2x2ZSh0KSxvPVp0ZShuLHMudHlwZSk7byYmYS5wdXNoKHttYXJrOnMsLi4ub30pfSk6ci5ub2Rlc0JldHdlZW4odCxlLChzLG4pPT57IXN8fHM/Lm5vZGVTaXplPT09dm9pZCAwfHxhLnB1c2goLi4ucy5tYXJrcy5tYXAobz0+KHtmcm9tOm4sdG86bitzLm5vZGVTaXplLG1hcms6b30pKSl9KSxhfWZ1bmN0aW9uIGJ3KHQsZSxyKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHIpLmZpbHRlcigoW2FdKT0+e2xldCBzPXQuZmluZChuPT5uLnR5cGU9PT1lJiZuLm5hbWU9PT1hKTtyZXR1cm4gcz9zLmF0dHJpYnV0ZS5rZWVwT25TcGxpdDohMX0pKX1mdW5jdGlvbiBKdGUodCxlLHI9e30pe2xldHtlbXB0eTphLHJhbmdlczpzfT10LnNlbGVjdGlvbixuPWU/ZmQoZSx0LnNjaGVtYSk6bnVsbDtpZihhKXJldHVybiEhKHQuc3RvcmVkTWFya3N8fHQuc2VsZWN0aW9uLiRmcm9tLm1hcmtzKCkpLmZpbHRlcihwPT5uP24ubmFtZT09PXAudHlwZS5uYW1lOiEwKS5maW5kKHA9Pmh3KHAuYXR0cnMscix7c3RyaWN0OiExfSkpO2xldCBvPTAsbD1bXTtpZihzLmZvckVhY2goKHskZnJvbTpwLCR0bzpofSk9PntsZXQgbT1wLnBvcyx2PWgucG9zO3QuZG9jLm5vZGVzQmV0d2VlbihtLHYsKGIsZyk9PntpZighYi5pc1RleHQmJiFiLm1hcmtzLmxlbmd0aClyZXR1cm47bGV0IHk9TWF0aC5tYXgobSxnKSxrPU1hdGgubWluKHYsZytiLm5vZGVTaXplKSxNPWsteTtvKz1NLGwucHVzaCguLi5iLm1hcmtzLm1hcChOPT4oe21hcms6Tixmcm9tOnksdG86a30pKSl9KX0pLG89PT0wKXJldHVybiExO2xldCBjPWwuZmlsdGVyKHA9Pm4/bi5uYW1lPT09cC5tYXJrLnR5cGUubmFtZTohMCkuZmlsdGVyKHA9Pmh3KHAubWFyay5hdHRycyxyLHtzdHJpY3Q6ITF9KSkucmVkdWNlKChwLGgpPT5wK2gudG8taC5mcm9tLDApLGQ9bC5maWx0ZXIocD0+bj9wLm1hcmsudHlwZSE9PW4mJnAubWFyay50eXBlLmV4Y2x1ZGVzKG4pOiEwKS5yZWR1Y2UoKHAsaCk9PnAraC50by1oLmZyb20sMCk7cmV0dXJuKGM+MD9jK2Q6Yyk+PW99ZnVuY3Rpb24gSDV0KHQsZSxyPXt9KXtpZighZSlyZXR1cm4gSzkodCxudWxsLHIpfHxKdGUodCxudWxsLHIpO2xldCBhPW13KGUsdC5zY2hlbWEpO3JldHVybiBhPT09Im5vZGUiP0s5KHQsZSxyKTphPT09Im1hcmsiP0p0ZSh0LGUscik6ITF9ZnVuY3Rpb24gZGhlKHQsZSl7bGV0e25vZGVFeHRlbnNpb25zOnJ9PWR3KGUpLGE9ci5maW5kKG89Pm8ubmFtZT09PXQpO2lmKCFhKXJldHVybiExO2xldCBzPXtuYW1lOmEubmFtZSxvcHRpb25zOmEub3B0aW9ucyxzdG9yYWdlOmEuc3RvcmFnZX0sbj1wcihrdChhLCJncm91cCIscykpO3JldHVybiB0eXBlb2YgbiE9InN0cmluZyI/ITE6bi5zcGxpdCgiICIpLmluY2x1ZGVzKCJsaXN0Iil9ZnVuY3Rpb24gZXJlKHQse2NoZWNrQ2hpbGRyZW46ZT0hMCxpZ25vcmVXaGl0ZXNwYWNlOnI9ITF9PXt9KXt2YXIgYTtpZihyKXtpZih0LnR5cGUubmFtZT09PSJoYXJkQnJlYWsiKXJldHVybiEwO2lmKHQuaXNUZXh0KXJldHVybi9eXHMqJC9tLnRlc3QoKGE9dC50ZXh0KSE9PW51bGwmJmEhPT12b2lkIDA/YToiIil9aWYodC5pc1RleHQpcmV0dXJuIXQudGV4dDtpZih0LmlzQXRvbXx8dC5pc0xlYWYpcmV0dXJuITE7aWYodC5jb250ZW50LmNoaWxkQ291bnQ9PT0wKXJldHVybiEwO2lmKGUpe2xldCBzPSEwO3JldHVybiB0LmNvbnRlbnQuZm9yRWFjaChuPT57cyE9PSExJiYoZXJlKG4se2lnbm9yZVdoaXRlc3BhY2U6cixjaGVja0NoaWxkcmVuOmV9KXx8KHM9ITEpKX0pLHN9cmV0dXJuITF9ZnVuY3Rpb24gYmhlKHQpe3JldHVybiB0IGluc3RhbmNlb2YgSXR9ZnVuY3Rpb24gRFlyKHQsZSxyKXtsZXQgcz10LnN0YXRlLmRvYy5jb250ZW50LnNpemUsbj1rYyhlLDAscyksbz1rYyhyLDAscyksbD10LmNvb3Jkc0F0UG9zKG4pLGM9dC5jb29yZHNBdFBvcyhvLC0xKSxkPU1hdGgubWluKGwudG9wLGMudG9wKSxmPU1hdGgubWF4KGwuYm90dG9tLGMuYm90dG9tKSxwPU1hdGgubWluKGwubGVmdCxjLmxlZnQpLGg9TWF0aC5tYXgobC5yaWdodCxjLnJpZ2h0KSxtPWgtcCx2PWYtZCx5PXt0b3A6ZCxib3R0b206ZixsZWZ0OnAscmlnaHQ6aCx3aWR0aDptLGhlaWdodDp2LHg6cCx5OmR9O3JldHVybnsuLi55LHRvSlNPTjppKCgpPT55LCJ0b0pTT04iKX19ZnVuY3Rpb24gZllyKHtqc29uOnQsdmFsaWRNYXJrczplLHZhbGlkTm9kZXM6cixvcHRpb25zOmEscmV3cml0dGVuQ29udGVudDpzPVtdfSl7cmV0dXJuIHQubWFya3MmJkFycmF5LmlzQXJyYXkodC5tYXJrcykmJih0Lm1hcmtzPXQubWFya3MuZmlsdGVyKG49PntsZXQgbz10eXBlb2Ygbj09InN0cmluZyI/bjpuLnR5cGU7cmV0dXJuIGUuaGFzKG8pPyEwOihzLnB1c2goe29yaWdpbmFsOkpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobikpLHVuc3VwcG9ydGVkOm99KSwhMSl9KSksdC5jb250ZW50JiZBcnJheS5pc0FycmF5KHQuY29udGVudCkmJih0LmNvbnRlbnQ9dC5jb250ZW50Lm1hcChuPT5mWXIoe2pzb246bix2YWxpZE1hcmtzOmUsdmFsaWROb2RlczpyLG9wdGlvbnM6YSxyZXdyaXR0ZW5Db250ZW50OnN9KS5qc29uKS5maWx0ZXIobj0+biE9bnVsbCkpLHQudHlwZSYmIXIuaGFzKHQudHlwZSk/KHMucHVzaCh7b3JpZ2luYWw6SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0KSksdW5zdXBwb3J0ZWQ6dC50eXBlfSksdC5jb250ZW50JiZBcnJheS5pc0FycmF5KHQuY29udGVudCkmJmE/LmZhbGxiYWNrVG9QYXJhZ3JhcGghPT0hMT8odC50eXBlPSJwYXJhZ3JhcGgiLHtqc29uOnQscmV3cml0dGVuQ29udGVudDpzfSk6e2pzb246bnVsbCxyZXdyaXR0ZW5Db250ZW50OnN9KTp7anNvbjp0LHJld3JpdHRlbkNvbnRlbnQ6c319ZnVuY3Rpb24gJFlyKHQsZSxyKXtyZXR1cm4gZllyKHtqc29uOnQsdmFsaWROb2RlczpuZXcgU2V0KE9iamVjdC5rZXlzKGUubm9kZXMpKSx2YWxpZE1hcmtzOm5ldyBTZXQoT2JqZWN0LmtleXMoZS5tYXJrcykpLG9wdGlvbnM6cn0pfWZ1bmN0aW9uIFdPYSh0LGUscil7dmFyIGE7bGV0e3NlbGVjdGlvbjpzfT1lLG49bnVsbDtpZihpaGUocykmJihuPXMuJGN1cnNvciksbil7bGV0IGw9KGE9dC5zdG9yZWRNYXJrcykhPT1udWxsJiZhIT09dm9pZCAwP2E6bi5tYXJrcygpO3JldHVybiEhci5pc0luU2V0KGwpfHwhbC5zb21lKGM9PmMudHlwZS5leGNsdWRlcyhyKSl9bGV0e3JhbmdlczpvfT1zO3JldHVybiBvLnNvbWUoKHskZnJvbTpsLCR0bzpjfSk9PntsZXQgZD1sLmRlcHRoPT09MD90LmRvYy5pbmxpbmVDb250ZW50JiZ0LmRvYy50eXBlLmFsbG93c01hcmtUeXBlKHIpOiExO3JldHVybiB0LmRvYy5ub2Rlc0JldHdlZW4obC5wb3MsYy5wb3MsKGYscCxoKT0+e2lmKGQpcmV0dXJuITE7aWYoZi5pc0lubGluZSl7bGV0IG09IWh8fGgudHlwZS5hbGxvd3NNYXJrVHlwZShyKSx2PSEhci5pc0luU2V0KGYubWFya3MpfHwhZi5tYXJrcy5zb21lKGI9PmIudHlwZS5leGNsdWRlcyhyKSk7ZD1tJiZ2fXJldHVybiFkfSksZH0pfWZ1bmN0aW9uIGhZcih0LGUpe2xldCByPXQuc3RvcmVkTWFya3N8fHQuc2VsZWN0aW9uLiR0by5wYXJlbnRPZmZzZXQmJnQuc2VsZWN0aW9uLiRmcm9tLm1hcmtzKCk7aWYocil7bGV0IGE9ci5maWx0ZXIocz0+ZT8uaW5jbHVkZXMocy50eXBlLm5hbWUpKTt0LnRyLmVuc3VyZU1hcmtzKGEpfX1mdW5jdGlvbiBxNXQodCxlLHIpe2xldCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHN0eWxlW2RhdGEtdGlwdGFwLXN0eWxlJHtyP2AtJHtyfWA6IiJ9XWApO2lmKGEhPT1udWxsKXJldHVybiBhO2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7cmV0dXJuIGUmJnMuc2V0QXR0cmlidXRlKCJub25jZSIsZSkscy5zZXRBdHRyaWJ1dGUoYGRhdGEtdGlwdGFwLXN0eWxlJHtyP2AtJHtyfWA6IiJ9YCwiIikscy5pbm5lckhUTUw9dCxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHMpLHN9ZnVuY3Rpb24gYTIodCl7cmV0dXJuIG5ldyBjMyh7ZmluZDp0LmZpbmQsaGFuZGxlcjppKCh7c3RhdGU6ZSxyYW5nZTpyLG1hdGNoOmF9KT0+e2xldCBzPXByKHQuZ2V0QXR0cmlidXRlcyx2b2lkIDAsYSk7aWYocz09PSExfHxzPT09bnVsbClyZXR1cm4gbnVsbDtsZXR7dHI6bn09ZSxvPWFbYS5sZW5ndGgtMV0sbD1hWzBdO2lmKG8pe2xldCBjPWwuc2VhcmNoKC9cUy8pLGQ9ci5mcm9tK2wuaW5kZXhPZihvKSxmPWQrby5sZW5ndGg7aWYoeHcoci5mcm9tLHIudG8sZS5kb2MpLmZpbHRlcihtPT5tLm1hcmsudHlwZS5leGNsdWRlZC5maW5kKGI9PmI9PT10LnR5cGUmJmIhPT1tLm1hcmsudHlwZSkpLmZpbHRlcihtPT5tLnRvPmQpLmxlbmd0aClyZXR1cm4gbnVsbDtmPHIudG8mJm4uZGVsZXRlKGYsci50byksZD5yLmZyb20mJm4uZGVsZXRlKHIuZnJvbStjLGQpO2xldCBoPXIuZnJvbStjK28ubGVuZ3RoO24uYWRkTWFyayhyLmZyb20rYyxoLHQudHlwZS5jcmVhdGUoc3x8e30pKSxuLnJlbW92ZVN0b3JlZE1hcmsodC50eXBlKX19LCJoYW5kbGVyIil9KX1mdW5jdGlvbiB4aGUodCl7cmV0dXJuIG5ldyBjMyh7ZmluZDp0LmZpbmQsaGFuZGxlcjppKCh7c3RhdGU6ZSxyYW5nZTpyLG1hdGNoOmF9KT0+e2xldCBzPXByKHQuZ2V0QXR0cmlidXRlcyx2b2lkIDAsYSl8fHt9LHt0cjpufT1lLG89ci5mcm9tLGw9ci50byxjPXQudHlwZS5jcmVhdGUocyk7aWYoYVsxXSl7bGV0IGQ9YVswXS5sYXN0SW5kZXhPZihhWzFdKSxmPW8rZDtmPmw/Zj1sOmw9ZithWzFdLmxlbmd0aDtsZXQgcD1hWzBdW2FbMF0ubGVuZ3RoLTFdO24uaW5zZXJ0VGV4dChwLG8rYVswXS5sZW5ndGgtMSksbi5yZXBsYWNlV2l0aChmLGwsYyl9ZWxzZSBpZihhWzBdKXtsZXQgZD10LnR5cGUuaXNJbmxpbmU/bzpvLTE7bi5pbnNlcnQoZCx0LnR5cGUuY3JlYXRlKHMpKS5kZWxldGUobi5tYXBwaW5nLm1hcChvKSxuLm1hcHBpbmcubWFwKGwpKX1uLnNjcm9sbEludG9WaWV3KCl9LCJoYW5kbGVyIil9KX1mdW5jdGlvbiBaOSh0KXtyZXR1cm4gbmV3IGMzKHtmaW5kOnQuZmluZCxoYW5kbGVyOmkoKHtzdGF0ZTplLHJhbmdlOnIsbWF0Y2g6YX0pPT57bGV0IHM9ZS5kb2MucmVzb2x2ZShyLmZyb20pLG49cHIodC5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxhKXx8e307aWYoIXMubm9kZSgtMSkuY2FuUmVwbGFjZVdpdGgocy5pbmRleCgtMSkscy5pbmRleEFmdGVyKC0xKSx0LnR5cGUpKXJldHVybiBudWxsO2UudHIuZGVsZXRlKHIuZnJvbSxyLnRvKS5zZXRCbG9ja1R5cGUoci5mcm9tLHIuZnJvbSx0LnR5cGUsbil9LCJoYW5kbGVyIil9KX1mdW5jdGlvbiBmaSh0KXtyZXR1cm4gbmV3IGMzKHtmaW5kOnQuZmluZCxoYW5kbGVyOmkoKHtzdGF0ZTplLHJhbmdlOnIsbWF0Y2g6YX0pPT57bGV0IHM9dC5yZXBsYWNlLG49ci5mcm9tLG89ci50bztpZihhWzFdKXtsZXQgbD1hWzBdLmxhc3RJbmRleE9mKGFbMV0pO3MrPWFbMF0uc2xpY2UobCthWzFdLmxlbmd0aCksbis9bDtsZXQgYz1uLW87Yz4wJiYocz1hWzBdLnNsaWNlKGwtYyxsKStzLG49byl9ZS50ci5pbnNlcnRUZXh0KHMsbixvKX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIGhkKHQpe3JldHVybiBuZXcgYzMoe2ZpbmQ6dC5maW5kLGhhbmRsZXI6aSgoe3N0YXRlOmUscmFuZ2U6cixtYXRjaDphLGNoYWluOnN9KT0+e2xldCBuPXByKHQuZ2V0QXR0cmlidXRlcyx2b2lkIDAsYSl8fHt9LG89ZS50ci5kZWxldGUoci5mcm9tLHIudG8pLGM9by5kb2MucmVzb2x2ZShyLmZyb20pLmJsb2NrUmFuZ2UoKSxkPWMmJkU5KGMsdC50eXBlLG4pO2lmKCFkKXJldHVybiBudWxsO2lmKG8ud3JhcChjLGQpLHQua2VlcE1hcmtzJiZ0LmVkaXRvcil7bGV0e3NlbGVjdGlvbjpwLHN0b3JlZE1hcmtzOmh9PWUse3NwbGl0dGFibGVNYXJrczptfT10LmVkaXRvci5leHRlbnNpb25NYW5hZ2VyLHY9aHx8cC4kdG8ucGFyZW50T2Zmc2V0JiZwLiRmcm9tLm1hcmtzKCk7aWYodil7bGV0IGI9di5maWx0ZXIoZz0+bS5pbmNsdWRlcyhnLnR5cGUubmFtZSkpO28uZW5zdXJlTWFya3MoYil9fWlmKHQua2VlcEF0dHJpYnV0ZXMpe2xldCBwPXQudHlwZS5uYW1lPT09ImJ1bGxldExpc3QifHx0LnR5cGUubmFtZT09PSJvcmRlcmVkTGlzdCI/Imxpc3RJdGVtIjoidGFza0xpc3QiO3MoKS51cGRhdGVBdHRyaWJ1dGVzKHAsbikucnVuKCl9bGV0IGY9by5kb2MucmVzb2x2ZShyLmZyb20tMSkubm9kZUJlZm9yZTtmJiZmLnR5cGU9PT10LnR5cGUmJmNsKG8uZG9jLHIuZnJvbS0xKSYmKCF0LmpvaW5QcmVkaWNhdGV8fHQuam9pblByZWRpY2F0ZShhLGYpKSYmby5qb2luKHIuZnJvbS0xKX0sImhhbmRsZXIiKX0pfWZ1bmN0aW9uIEkxKHQpe3JldHVybiBuZXcgVTkoe2ZpbmQ6dC5maW5kLGhhbmRsZXI6aSgoe3N0YXRlOmUscmFuZ2U6cixtYXRjaDphLHBhc3RlRXZlbnQ6c30pPT57bGV0IG49cHIodC5nZXRBdHRyaWJ1dGVzLHZvaWQgMCxhLHMpO2lmKG49PT0hMXx8bj09PW51bGwpcmV0dXJuIG51bGw7bGV0e3RyOm99PWUsbD1hW2EubGVuZ3RoLTFdLGM9YVswXSxkPXIudG87aWYobCl7bGV0IGY9Yy5zZWFyY2goL1xTLykscD1yLmZyb20rYy5pbmRleE9mKGwpLGg9cCtsLmxlbmd0aDtpZih4dyhyLmZyb20sci50byxlLmRvYykuZmlsdGVyKHY9PnYubWFyay50eXBlLmV4Y2x1ZGVkLmZpbmQoZz0+Zz09PXQudHlwZSYmZyE9PXYubWFyay50eXBlKSkuZmlsdGVyKHY9PnYudG8+cCkubGVuZ3RoKXJldHVybiBudWxsO2g8ci50byYmby5kZWxldGUoaCxyLnRvKSxwPnIuZnJvbSYmby5kZWxldGUoci5mcm9tK2YscCksZD1yLmZyb20rZitsLmxlbmd0aCxvLmFkZE1hcmsoci5mcm9tK2YsZCx0LnR5cGUuY3JlYXRlKG58fHt9KSksby5yZW1vdmVTdG9yZWRNYXJrKHQudHlwZSl9fSwiaGFuZGxlciIpfSl9ZnVuY3Rpb24gdmhlKHQsZSl7bGV0e3NlbGVjdGlvbjpyfT10LHskZnJvbTphfT1yO2lmKHIgaW5zdGFuY2VvZiBJdCl7bGV0IG49YS5pbmRleCgpO3JldHVybiBhLnBhcmVudC5jYW5SZXBsYWNlV2l0aChuLG4rMSxlKX1sZXQgcz1hLmRlcHRoO2Zvcig7cz49MDspe2xldCBuPWEuaW5kZXgocyk7aWYoYS5ub2RlKHMpLmNvbnRlbnRNYXRjaEF0KG4pLm1hdGNoVHlwZShlKSlyZXR1cm4hMDtzLT0xfXJldHVybiExfWZ1bmN0aW9uIEVZcih0KXtyZXR1cm4gdC5yZXBsYWNlKC9bLS9cXF4kKis/LigpfFtcXXt9XS9nLCJcXCQmIil9ZnVuY3Rpb24gSVlyKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ9ZnVuY3Rpb24gUFlyKHQpe3JldHVybiBuZXcgVTkoe2ZpbmQ6dC5maW5kLGhhbmRsZXIoe21hdGNoOmUsY2hhaW46cixyYW5nZTphLHBhc3RlRXZlbnQ6c30pe2xldCBuPXByKHQuZ2V0QXR0cmlidXRlcyx2b2lkIDAsZSxzKSxvPXByKHQuZ2V0Q29udGVudCx2b2lkIDAsbik7aWYobj09PSExfHxuPT09bnVsbClyZXR1cm4gbnVsbDtsZXQgbD17dHlwZTp0LnR5cGUubmFtZSxhdHRyczpufTtvJiYobC5jb250ZW50PW8pLGUuaW5wdXQmJnIoKS5kZWxldGVSYW5nZShhKS5pbnNlcnRDb250ZW50QXQoYS5mcm9tLGwpfX0pfWZ1bmN0aW9uIE5Zcih0KXtyZXR1cm4gbmV3IFU5KHtmaW5kOnQuZmluZCxoYW5kbGVyOmkoKHtzdGF0ZTplLHJhbmdlOnIsbWF0Y2g6YX0pPT57bGV0IHM9dC5yZXBsYWNlLG49ci5mcm9tLG89ci50bztpZihhWzFdKXtsZXQgbD1hWzBdLmxhc3RJbmRleE9mKGFbMV0pO3MrPWFbMF0uc2xpY2UobCthWzFdLmxlbmd0aCksbis9bDtsZXQgYz1uLW87Yz4wJiYocz1hWzBdLnNsaWNlKGwtYyxsKStzLG49byl9ZS50ci5pbnNlcnRUZXh0KHMsbixvKX0sImhhbmRsZXIiKX0pfXZhciBKcCxTNXQsTDV0LGMzLFhOYSxPbixVOSxlT2EsWmZlLHJPYSxRZmUsa2ksY1lyLGFPYSxpT2Esc09hLG5PYSxvT2EsbE9hLGNPYSxkT2EsdU9hLHBPYSxmT2EsaE9hLG1PYSxnT2EsYk9hLHhPYSx2T2EscFlyLHlPYSx3T2Esa09hLFNPYSxNT2EsQ09hLHpPYSxfT2EsVE9hLExPYSwkT2EsQU9hLEVPYSxJT2EsUE9hLE5PYSxPT2EsUk9hLEZPYSxCT2EsSE9hLHFPYSxWT2Esak9hLF9ZcixUWXIsTFlyLEdPYSxZT2EsS09hLFpPYSxRT2EsWE9hLEpPYSxlUmEsQzV0LHo1dCx0UmEsclJhLGFSYSxpUmEsc1JhLG5SYSxvUmEsbFJhLGNSYSxkUmEsdVJhLG1ZcixnWXIsYllyLHhZcix2WXIseVlyLHdZcixrWXIsQVlyLHRyZSxwUmEsdWhlLHRpLHBoZSxmaGUsaGk9dSgoKT0+e1B0ZSgpO0ZHcigpO3FHcigpO1ZHcigpO2pHcigpO2VZcigpO29ZcigpO2koY3csImNyZWF0ZUNoYWluYWJsZVN0YXRlIik7SnA9Y2xhc3N7c3RhdGlje2kodGhpcywiQ29tbWFuZE1hbmFnZXIiKX1jb25zdHJ1Y3RvcihlKXt0aGlzLmVkaXRvcj1lLmVkaXRvcix0aGlzLnJhd0NvbW1hbmRzPXRoaXMuZWRpdG9yLmV4dGVuc2lvbk1hbmFnZXIuY29tbWFuZHMsdGhpcy5jdXN0b21TdGF0ZT1lLnN0YXRlfWdldCBoYXNDdXN0b21TdGF0ZSgpe3JldHVybiEhdGhpcy5jdXN0b21TdGF0ZX1nZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5jdXN0b21TdGF0ZXx8dGhpcy5lZGl0b3Iuc3RhdGV9Z2V0IGNvbW1hbmRzKCl7bGV0e3Jhd0NvbW1hbmRzOmUsZWRpdG9yOnIsc3RhdGU6YX09dGhpcyx7dmlldzpzfT1yLHt0cjpufT1hLG89dGhpcy5idWlsZFByb3BzKG4pO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZSkubWFwKChbbCxjXSk9PltsLGkoKC4uLmYpPT57bGV0IHA9YyguLi5mKShvKTtyZXR1cm4hbi5nZXRNZXRhKCJwcmV2ZW50RGlzcGF0Y2giKSYmIXRoaXMuaGFzQ3VzdG9tU3RhdGUmJnMuZGlzcGF0Y2gobikscH0sIm1ldGhvZCIpXSkpfWdldCBjaGFpbigpe3JldHVybigpPT50aGlzLmNyZWF0ZUNoYWluKCl9Z2V0IGNhbigpe3JldHVybigpPT50aGlzLmNyZWF0ZUNhbigpfWNyZWF0ZUNoYWluKGUscj0hMCl7bGV0e3Jhd0NvbW1hbmRzOmEsZWRpdG9yOnMsc3RhdGU6bn09dGhpcyx7dmlldzpvfT1zLGw9W10sYz0hIWUsZD1lfHxuLnRyLGY9aSgoKT0+KCFjJiZyJiYhZC5nZXRNZXRhKCJwcmV2ZW50RGlzcGF0Y2giKSYmIXRoaXMuaGFzQ3VzdG9tU3RhdGUmJm8uZGlzcGF0Y2goZCksbC5ldmVyeShoPT5oPT09ITApKSwicnVuIikscD17Li4uT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGEpLm1hcCgoW2gsbV0pPT5baCxpKCguLi5iKT0+e2xldCBnPXRoaXMuYnVpbGRQcm9wcyhkLHIpLHk9bSguLi5iKShnKTtyZXR1cm4gbC5wdXNoKHkpLHB9LCJjaGFpbmVkQ29tbWFuZCIpXSkpLHJ1bjpmfTtyZXR1cm4gcH1jcmVhdGVDYW4oZSl7bGV0e3Jhd0NvbW1hbmRzOnIsc3RhdGU6YX09dGhpcyxzPSExLG49ZXx8YS50cixvPXRoaXMuYnVpbGRQcm9wcyhuLHMpO3JldHVybnsuLi5PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMocikubWFwKChbYyxkXSk9PltjLCguLi5mKT0+ZCguLi5mKSh7Li4ubyxkaXNwYXRjaDp2b2lkIDB9KV0pKSxjaGFpbjppKCgpPT50aGlzLmNyZWF0ZUNoYWluKG4scyksImNoYWluIil9fWJ1aWxkUHJvcHMoZSxyPSEwKXtsZXR7cmF3Q29tbWFuZHM6YSxlZGl0b3I6cyxzdGF0ZTpufT10aGlzLHt2aWV3Om99PXMsbD17dHI6ZSxlZGl0b3I6cyx2aWV3Om8sc3RhdGU6Y3coe3N0YXRlOm4sdHJhbnNhY3Rpb246ZX0pLGRpc3BhdGNoOnI/KCk9Pnt9OnZvaWQgMCxjaGFpbjppKCgpPT50aGlzLmNyZWF0ZUNoYWluKGUsciksImNoYWluIiksY2FuOmkoKCk9PnRoaXMuY3JlYXRlQ2FuKGUpLCJjYW4iKSxnZXQgY29tbWFuZHMoKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGEpLm1hcCgoW2MsZF0pPT5bYywoLi4uZik9PmQoLi4uZikobCldKSl9fTtyZXR1cm4gbH19LFM1dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJFdmVudEVtaXR0ZXIiKX1jb25zdHJ1Y3Rvcigpe3RoaXMuY2FsbGJhY2tzPXt9fW9uKGUscil7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW2VdfHwodGhpcy5jYWxsYmFja3NbZV09W10pLHRoaXMuY2FsbGJhY2tzW2VdLnB1c2gociksdGhpc31lbWl0KGUsLi4ucil7bGV0IGE9dGhpcy5jYWxsYmFja3NbZV07cmV0dXJuIGEmJmEuZm9yRWFjaChzPT5zLmFwcGx5KHRoaXMscikpLHRoaXN9b2ZmKGUscil7bGV0IGE9dGhpcy5jYWxsYmFja3NbZV07cmV0dXJuIGEmJihyP3RoaXMuY2FsbGJhY2tzW2VdPWEuZmlsdGVyKHM9PnMhPT1yKTpkZWxldGUgdGhpcy5jYWxsYmFja3NbZV0pLHRoaXN9b25jZShlLHIpe2xldCBhPWkoKC4uLnMpPT57dGhpcy5vZmYoZSxhKSxyLmFwcGx5KHRoaXMscyl9LCJvbmNlRm4iKTtyZXR1cm4gdGhpcy5vbihlLGEpfXJlbW92ZUFsbExpc3RlbmVycygpe3RoaXMuY2FsbGJhY2tzPXt9fX07aShrdCwiZ2V0RXh0ZW5zaW9uRmllbGQiKTtpKGR3LCJzcGxpdEV4dGVuc2lvbnMiKTtpKFhmZSwiZ2V0QXR0cmlidXRlc0Zyb21FeHRlbnNpb25zIik7aSgkcywiZ2V0Tm9kZVR5cGUiKTtpKHNhLCJtZXJnZUF0dHJpYnV0ZXMiKTtpKFd0ZSwiZ2V0UmVuZGVyZWRBdHRyaWJ1dGVzIik7aShKZmUsImlzRnVuY3Rpb24iKTtpKHByLCJjYWxsT3JSZXR1cm4iKTtpKF81dCwiaXNFbXB0eU9iamVjdCIpO2koVDV0LCJmcm9tU3RyaW5nIik7aShlaGUsImluamVjdEV4dGVuc2lvbkF0dHJpYnV0ZXNUb1BhcnNlUnVsZSIpO2kobFlyLCJjbGVhblVwU2NoZW1hSXRlbSIpO2kodGhlLCJnZXRTY2hlbWFCeVJlc29sdmVkRXh0ZW5zaW9ucyIpO2koR3RlLCJnZXRTY2hlbWFUeXBlQnlOYW1lIik7aShyaGUsImlzRXh0ZW5zaW9uUnVsZXNFbmFibGVkIik7aSh1dywiZ2V0SFRNTEZyb21GcmFnbWVudCIpO0w1dD1pKCh0LGU9NTAwKT0+e2xldCByPSIiLGE9dC5wYXJlbnRPZmZzZXQ7cmV0dXJuIHQucGFyZW50Lm5vZGVzQmV0d2VlbihNYXRoLm1heCgwLGEtZSksYSwocyxuLG8sbCk9Pnt2YXIgYyxkO2xldCBmPSgoZD0oYz1zLnR5cGUuc3BlYykudG9UZXh0KT09PW51bGx8fGQ9PT12b2lkIDA/dm9pZCAwOmQuY2FsbChjLHtub2RlOnMscG9zOm4scGFyZW50Om8saW5kZXg6bH0pKXx8cy50ZXh0Q29udGVudHx8IiVsZWFmJSI7cis9cy5pc0F0b20mJiFzLmlzVGV4dD9mOmYuc2xpY2UoMCxNYXRoLm1heCgwLGEtbikpfSkscn0sImdldFRleHRDb250ZW50RnJvbU5vZGVzIik7aShZdGUsImlzUmVnRXhwIik7YzM9Y2xhc3N7c3RhdGlje2kodGhpcywiSW5wdXRSdWxlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5maW5kPWUuZmluZCx0aGlzLmhhbmRsZXI9ZS5oYW5kbGVyfX0sWE5hPWkoKHQsZSk9PntpZihZdGUoZSkpcmV0dXJuIGUuZXhlYyh0KTtsZXQgcj1lKHQpO2lmKCFyKXJldHVybiBudWxsO2xldCBhPVtyLnRleHRdO3JldHVybiBhLmluZGV4PXIuaW5kZXgsYS5pbnB1dD10LGEuZGF0YT1yLmRhdGEsci5yZXBsYWNlV2l0aCYmKHIudGV4dC5pbmNsdWRlcyhyLnJlcGxhY2VXaXRoKXx8Y29uc29sZS53YXJuKCdbdGlwdGFwIHdhcm5dOiAiaW5wdXRSdWxlTWF0Y2gucmVwbGFjZVdpdGgiIG11c3QgYmUgcGFydCBvZiAiaW5wdXRSdWxlTWF0Y2gudGV4dCIuJyksYS5wdXNoKHIucmVwbGFjZVdpdGgpKSxhfSwiaW5wdXRSdWxlTWF0Y2hlckhhbmRsZXIiKTtpKEtmZSwicnVuJDEiKTtpKEQ1dCwiaW5wdXRSdWxlc1BsdWdpbiIpO2koSk5hLCJnZXRUeXBlIik7aShwdywiaXNQbGFpbk9iamVjdCIpO2koZncsIm1lcmdlRGVlcCIpO09uPWNsYXNzIHR7c3RhdGlje2kodGhpcywiTWFyayIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMudHlwZT0ibWFyayIsdGhpcy5uYW1lPSJtYXJrIix0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGQ9bnVsbCx0aGlzLmNvbmZpZz17bmFtZTp0aGlzLm5hbWUsZGVmYXVsdE9wdGlvbnM6e319LHRoaXMuY29uZmlnPXsuLi50aGlzLmNvbmZpZywuLi5lfSx0aGlzLm5hbWU9dGhpcy5jb25maWcubmFtZSxlLmRlZmF1bHRPcHRpb25zJiZPYmplY3Qua2V5cyhlLmRlZmF1bHRPcHRpb25zKS5sZW5ndGg+MCYmY29uc29sZS53YXJuKGBbdGlwdGFwIHdhcm5dOiBCUkVBS0lORyBDSEFOR0U6ICJkZWZhdWx0T3B0aW9ucyIgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSAiYWRkT3B0aW9ucyIgaW5zdGVhZC4gRm91bmQgaW4gZXh0ZW5zaW9uOiAiJHt0aGlzLm5hbWV9Ii5gKSx0aGlzLm9wdGlvbnM9dGhpcy5jb25maWcuZGVmYXVsdE9wdGlvbnMsdGhpcy5jb25maWcuYWRkT3B0aW9ucyYmKHRoaXMub3B0aW9ucz1wcihrdCh0aGlzLCJhZGRPcHRpb25zIix7bmFtZTp0aGlzLm5hbWV9KSkpLHRoaXMuc3RvcmFnZT1wcihrdCh0aGlzLCJhZGRTdG9yYWdlIix7bmFtZTp0aGlzLm5hbWUsb3B0aW9uczp0aGlzLm9wdGlvbnN9KSl8fHt9fXN0YXRpYyBjcmVhdGUoZT17fSl7cmV0dXJuIG5ldyB0KGUpfWNvbmZpZ3VyZShlPXt9KXtsZXQgcj10aGlzLmV4dGVuZCh7Li4udGhpcy5jb25maWcsYWRkT3B0aW9uczppKCgpPT5mdyh0aGlzLm9wdGlvbnMsZSksImFkZE9wdGlvbnMiKX0pO3JldHVybiByLm5hbWU9dGhpcy5uYW1lLHIucGFyZW50PXRoaXMucGFyZW50LHJ9ZXh0ZW5kKGU9e30pe2xldCByPW5ldyB0KGUpO3JldHVybiByLnBhcmVudD10aGlzLHRoaXMuY2hpbGQ9cixyLm5hbWU9ZS5uYW1lP2UubmFtZTpyLnBhcmVudC5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3IubmFtZX0iLmApLHIub3B0aW9ucz1wcihrdChyLCJhZGRPcHRpb25zIix7bmFtZTpyLm5hbWV9KSksci5zdG9yYWdlPXByKGt0KHIsImFkZFN0b3JhZ2UiLHtuYW1lOnIubmFtZSxvcHRpb25zOnIub3B0aW9uc30pKSxyfXN0YXRpYyBoYW5kbGVFeGl0KHtlZGl0b3I6ZSxtYXJrOnJ9KXtsZXR7dHI6YX09ZS5zdGF0ZSxzPWUuc3RhdGUuc2VsZWN0aW9uLiRmcm9tO2lmKHMucG9zPT09cy5lbmQoKSl7bGV0IG89cy5tYXJrcygpO2lmKCEhIW8uZmluZChkPT5kPy50eXBlLm5hbWU9PT1yLm5hbWUpKXJldHVybiExO2xldCBjPW8uZmluZChkPT5kPy50eXBlLm5hbWU9PT1yLm5hbWUpO3JldHVybiBjJiZhLnJlbW92ZVN0b3JlZE1hcmsoYyksYS5pbnNlcnRUZXh0KCIgIixzLnBvcyksZS52aWV3LmRpc3BhdGNoKGEpLCEwfXJldHVybiExfX07aSgkNXQsImlzTnVtYmVyIik7VTk9Y2xhc3N7c3RhdGlje2kodGhpcywiUGFzdGVSdWxlIil9Y29uc3RydWN0b3IoZSl7dGhpcy5maW5kPWUuZmluZCx0aGlzLmhhbmRsZXI9ZS5oYW5kbGVyfX0sZU9hPWkoKHQsZSxyKT0+e2lmKFl0ZShlKSlyZXR1cm5bLi4udC5tYXRjaEFsbChlKV07bGV0IGE9ZSh0LHIpO3JldHVybiBhP2EubWFwKHM9PntsZXQgbj1bcy50ZXh0XTtyZXR1cm4gbi5pbmRleD1zLmluZGV4LG4uaW5wdXQ9dCxuLmRhdGE9cy5kYXRhLHMucmVwbGFjZVdpdGgmJihzLnRleHQuaW5jbHVkZXMocy5yZXBsYWNlV2l0aCl8fGNvbnNvbGUud2FybignW3RpcHRhcCB3YXJuXTogInBhc3RlUnVsZU1hdGNoLnJlcGxhY2VXaXRoIiBtdXN0IGJlIHBhcnQgb2YgInBhc3RlUnVsZU1hdGNoLnRleHQiLicpLG4ucHVzaChzLnJlcGxhY2VXaXRoKSksbn0pOltdfSwicGFzdGVSdWxlTWF0Y2hlckhhbmRsZXIiKTtpKHRPYSwicnVuIik7WmZlPW51bGwsck9hPWkodD0+e3ZhciBlO2xldCByPW5ldyBDbGlwYm9hcmRFdmVudCgicGFzdGUiLHtjbGlwYm9hcmREYXRhOm5ldyBEYXRhVHJhbnNmZXJ9KTtyZXR1cm4oZT1yLmNsaXBib2FyZERhdGEpPT09bnVsbHx8ZT09PXZvaWQgMHx8ZS5zZXREYXRhKCJ0ZXh0L2h0bWwiLHQpLHJ9LCJjcmVhdGVDbGlwYm9hcmRQYXN0ZUV2ZW50Iik7aShBNXQsInBhc3RlUnVsZXNQbHVnaW4iKTtpKEU1dCwiZmluZER1cGxpY2F0ZXMiKTtRZmU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJFeHRlbnNpb25NYW5hZ2VyIil9Y29uc3RydWN0b3IoZSxyKXt0aGlzLnNwbGl0dGFibGVNYXJrcz1bXSx0aGlzLmVkaXRvcj1yLHRoaXMuZXh0ZW5zaW9ucz10LnJlc29sdmUoZSksdGhpcy5zY2hlbWE9dGhlKHRoaXMuZXh0ZW5zaW9ucyxyKSx0aGlzLnNldHVwRXh0ZW5zaW9ucygpfXN0YXRpYyByZXNvbHZlKGUpe2xldCByPXQuc29ydCh0LmZsYXR0ZW4oZSkpLGE9RTV0KHIubWFwKHM9PnMubmFtZSkpO3JldHVybiBhLmxlbmd0aCYmY29uc29sZS53YXJuKGBbdGlwdGFwIHdhcm5dOiBEdXBsaWNhdGUgZXh0ZW5zaW9uIG5hbWVzIGZvdW5kOiBbJHthLm1hcChzPT5gJyR7c30nYCkuam9pbigiLCAiKX1dLiBUaGlzIGNhbiBsZWFkIHRvIGlzc3Vlcy5gKSxyfXN0YXRpYyBmbGF0dGVuKGUpe3JldHVybiBlLm1hcChyPT57bGV0IGE9e25hbWU6ci5uYW1lLG9wdGlvbnM6ci5vcHRpb25zLHN0b3JhZ2U6ci5zdG9yYWdlfSxzPWt0KHIsImFkZEV4dGVuc2lvbnMiLGEpO3JldHVybiBzP1tyLC4uLnRoaXMuZmxhdHRlbihzKCkpXTpyfSkuZmxhdCgxMCl9c3RhdGljIHNvcnQoZSl7cmV0dXJuIGUuc29ydCgoYSxzKT0+e2xldCBuPWt0KGEsInByaW9yaXR5Iil8fDEwMCxvPWt0KHMsInByaW9yaXR5Iil8fDEwMDtyZXR1cm4gbj5vPy0xOm48bz8xOjB9KX1nZXQgY29tbWFuZHMoKXtyZXR1cm4gdGhpcy5leHRlbnNpb25zLnJlZHVjZSgoZSxyKT0+e2xldCBhPXtuYW1lOnIubmFtZSxvcHRpb25zOnIub3B0aW9ucyxzdG9yYWdlOnIuc3RvcmFnZSxlZGl0b3I6dGhpcy5lZGl0b3IsdHlwZTpHdGUoci5uYW1lLHRoaXMuc2NoZW1hKX0scz1rdChyLCJhZGRDb21tYW5kcyIsYSk7cmV0dXJuIHM/ey4uLmUsLi4ucygpfTplfSx7fSl9Z2V0IHBsdWdpbnMoKXtsZXR7ZWRpdG9yOmV9PXRoaXMscj10LnNvcnQoWy4uLnRoaXMuZXh0ZW5zaW9uc10ucmV2ZXJzZSgpKSxhPVtdLHM9W10sbj1yLm1hcChvPT57bGV0IGw9e25hbWU6by5uYW1lLG9wdGlvbnM6by5vcHRpb25zLHN0b3JhZ2U6by5zdG9yYWdlLGVkaXRvcjplLHR5cGU6R3RlKG8ubmFtZSx0aGlzLnNjaGVtYSl9LGM9W10sZD1rdChvLCJhZGRLZXlib2FyZFNob3J0Y3V0cyIsbCksZj17fTtpZihvLnR5cGU9PT0ibWFyayImJmt0KG8sImV4aXRhYmxlIixsKSYmKGYuQXJyb3dSaWdodD0oKT0+T24uaGFuZGxlRXhpdCh7ZWRpdG9yOmUsbWFyazpvfSkpLGQpe2xldCBiPU9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhkKCkpLm1hcCgoW2cseV0pPT5bZywoKT0+eSh7ZWRpdG9yOmV9KV0pKTtmPXsuLi5mLC4uLmJ9fWxldCBwPWk1dChmKTtjLnB1c2gocCk7bGV0IGg9a3QobywiYWRkSW5wdXRSdWxlcyIsbCk7cmhlKG8sZS5vcHRpb25zLmVuYWJsZUlucHV0UnVsZXMpJiZoJiZhLnB1c2goLi4uaCgpKTtsZXQgbT1rdChvLCJhZGRQYXN0ZVJ1bGVzIixsKTtyaGUobyxlLm9wdGlvbnMuZW5hYmxlUGFzdGVSdWxlcykmJm0mJnMucHVzaCguLi5tKCkpO2xldCB2PWt0KG8sImFkZFByb3NlTWlycm9yUGx1Z2lucyIsbCk7aWYodil7bGV0IGI9digpO2MucHVzaCguLi5iKX1yZXR1cm4gY30pLmZsYXQoKTtyZXR1cm5bRDV0KHtlZGl0b3I6ZSxydWxlczphfSksLi4uQTV0KHtlZGl0b3I6ZSxydWxlczpzfSksLi4ubl19Z2V0IGF0dHJpYnV0ZXMoKXtyZXR1cm4gWGZlKHRoaXMuZXh0ZW5zaW9ucyl9Z2V0IG5vZGVWaWV3cygpe2xldHtlZGl0b3I6ZX09dGhpcyx7bm9kZUV4dGVuc2lvbnM6cn09ZHcodGhpcy5leHRlbnNpb25zKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHIuZmlsdGVyKGE9PiEha3QoYSwiYWRkTm9kZVZpZXciKSkubWFwKGE9PntsZXQgcz10aGlzLmF0dHJpYnV0ZXMuZmlsdGVyKGM9PmMudHlwZT09PWEubmFtZSksbj17bmFtZTphLm5hbWUsb3B0aW9uczphLm9wdGlvbnMsc3RvcmFnZTphLnN0b3JhZ2UsZWRpdG9yOmUsdHlwZTokcyhhLm5hbWUsdGhpcy5zY2hlbWEpfSxvPWt0KGEsImFkZE5vZGVWaWV3IixuKTtpZighbylyZXR1cm5bXTtsZXQgbD1pKChjLGQsZixwLGgpPT57bGV0IG09V3RlKGMscyk7cmV0dXJuIG8oKSh7bm9kZTpjLHZpZXc6ZCxnZXRQb3M6ZixkZWNvcmF0aW9uczpwLGlubmVyRGVjb3JhdGlvbnM6aCxlZGl0b3I6ZSxleHRlbnNpb246YSxIVE1MQXR0cmlidXRlczptfSl9LCJub2RldmlldyIpO3JldHVyblthLm5hbWUsbF19KSl9c2V0dXBFeHRlbnNpb25zKCl7dGhpcy5leHRlbnNpb25zLmZvckVhY2goZT0+e3ZhciByO3RoaXMuZWRpdG9yLmV4dGVuc2lvblN0b3JhZ2VbZS5uYW1lXT1lLnN0b3JhZ2U7bGV0IGE9e25hbWU6ZS5uYW1lLG9wdGlvbnM6ZS5vcHRpb25zLHN0b3JhZ2U6ZS5zdG9yYWdlLGVkaXRvcjp0aGlzLmVkaXRvcix0eXBlOkd0ZShlLm5hbWUsdGhpcy5zY2hlbWEpfTtlLnR5cGU9PT0ibWFyayImJighKChyPXByKGt0KGUsImtlZXBPblNwbGl0IixhKSkpIT09bnVsbCYmciE9PXZvaWQgMCl8fHIpJiZ0aGlzLnNwbGl0dGFibGVNYXJrcy5wdXNoKGUubmFtZSk7bGV0IHM9a3QoZSwib25CZWZvcmVDcmVhdGUiLGEpLG49a3QoZSwib25DcmVhdGUiLGEpLG89a3QoZSwib25VcGRhdGUiLGEpLGw9a3QoZSwib25TZWxlY3Rpb25VcGRhdGUiLGEpLGM9a3QoZSwib25UcmFuc2FjdGlvbiIsYSksZD1rdChlLCJvbkZvY3VzIixhKSxmPWt0KGUsIm9uQmx1ciIsYSkscD1rdChlLCJvbkRlc3Ryb3kiLGEpO3MmJnRoaXMuZWRpdG9yLm9uKCJiZWZvcmVDcmVhdGUiLHMpLG4mJnRoaXMuZWRpdG9yLm9uKCJjcmVhdGUiLG4pLG8mJnRoaXMuZWRpdG9yLm9uKCJ1cGRhdGUiLG8pLGwmJnRoaXMuZWRpdG9yLm9uKCJzZWxlY3Rpb25VcGRhdGUiLGwpLGMmJnRoaXMuZWRpdG9yLm9uKCJ0cmFuc2FjdGlvbiIsYyksZCYmdGhpcy5lZGl0b3Iub24oImZvY3VzIixkKSxmJiZ0aGlzLmVkaXRvci5vbigiYmx1ciIsZikscCYmdGhpcy5lZGl0b3Iub24oImRlc3Ryb3kiLHApfSl9fSxraT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIkV4dGVuc2lvbiIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMudHlwZT0iZXh0ZW5zaW9uIix0aGlzLm5hbWU9ImV4dGVuc2lvbiIsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkPW51bGwsdGhpcy5jb25maWc9e25hbWU6dGhpcy5uYW1lLGRlZmF1bHRPcHRpb25zOnt9fSx0aGlzLmNvbmZpZz17Li4udGhpcy5jb25maWcsLi4uZX0sdGhpcy5uYW1lPXRoaXMuY29uZmlnLm5hbWUsZS5kZWZhdWx0T3B0aW9ucyYmT2JqZWN0LmtleXMoZS5kZWZhdWx0T3B0aW9ucykubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgW3RpcHRhcCB3YXJuXTogQlJFQUtJTkcgQ0hBTkdFOiAiZGVmYXVsdE9wdGlvbnMiIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgImFkZE9wdGlvbnMiIGluc3RlYWQuIEZvdW5kIGluIGV4dGVuc2lvbjogIiR7dGhpcy5uYW1lfSIuYCksdGhpcy5vcHRpb25zPXRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zLHRoaXMuY29uZmlnLmFkZE9wdGlvbnMmJih0aGlzLm9wdGlvbnM9cHIoa3QodGhpcywiYWRkT3B0aW9ucyIse25hbWU6dGhpcy5uYW1lfSkpKSx0aGlzLnN0b3JhZ2U9cHIoa3QodGhpcywiYWRkU3RvcmFnZSIse25hbWU6dGhpcy5uYW1lLG9wdGlvbnM6dGhpcy5vcHRpb25zfSkpfHx7fX1zdGF0aWMgY3JlYXRlKGU9e30pe3JldHVybiBuZXcgdChlKX1jb25maWd1cmUoZT17fSl7bGV0IHI9dGhpcy5leHRlbmQoey4uLnRoaXMuY29uZmlnLGFkZE9wdGlvbnM6aSgoKT0+ZncodGhpcy5vcHRpb25zLGUpLCJhZGRPcHRpb25zIil9KTtyZXR1cm4gci5uYW1lPXRoaXMubmFtZSxyLnBhcmVudD10aGlzLnBhcmVudCxyfWV4dGVuZChlPXt9KXtsZXQgcj1uZXcgdCh7Li4udGhpcy5jb25maWcsLi4uZX0pO3JldHVybiByLnBhcmVudD10aGlzLHRoaXMuY2hpbGQ9cixyLm5hbWU9ZS5uYW1lP2UubmFtZTpyLnBhcmVudC5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3IubmFtZX0iLmApLHIub3B0aW9ucz1wcihrdChyLCJhZGRPcHRpb25zIix7bmFtZTpyLm5hbWV9KSksci5zdG9yYWdlPXByKGt0KHIsImFkZFN0b3JhZ2UiLHtuYW1lOnIubmFtZSxvcHRpb25zOnIub3B0aW9uc30pKSxyfX07aShhaGUsImdldFRleHRCZXR3ZWVuIik7aShLdGUsImdldFRleHRTZXJpYWxpemVyc0Zyb21TY2hlbWEiKTtjWXI9a2kuY3JlYXRlKHtuYW1lOiJjbGlwYm9hcmRUZXh0U2VyaWFsaXplciIsYWRkT3B0aW9ucygpe3JldHVybntibG9ja1NlcGFyYXRvcjp2b2lkIDB9fSxhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bbmV3IFFhKHtrZXk6bmV3IExzKCJjbGlwYm9hcmRUZXh0U2VyaWFsaXplciIpLHByb3BzOntjbGlwYm9hcmRUZXh0U2VyaWFsaXplcjppKCgpPT57bGV0e2VkaXRvcjp0fT10aGlzLHtzdGF0ZTplLHNjaGVtYTpyfT10LHtkb2M6YSxzZWxlY3Rpb246c309ZSx7cmFuZ2VzOm59PXMsbz1NYXRoLm1pbiguLi5uLm1hcChmPT5mLiRmcm9tLnBvcykpLGw9TWF0aC5tYXgoLi4ubi5tYXAoZj0+Zi4kdG8ucG9zKSksYz1LdGUocik7cmV0dXJuIGFoZShhLHtmcm9tOm8sdG86bH0sey4uLnRoaXMub3B0aW9ucy5ibG9ja1NlcGFyYXRvciE9PXZvaWQgMD97YmxvY2tTZXBhcmF0b3I6dGhpcy5vcHRpb25zLmJsb2NrU2VwYXJhdG9yfTp7fSx0ZXh0U2VyaWFsaXplcnM6Y30pfSwiY2xpcGJvYXJkVGV4dFNlcmlhbGl6ZXIiKX19KV19fSksYU9hPWkoKCk9Pih7ZWRpdG9yOnQsdmlldzplfSk9PihyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt2YXIgcjt0LmlzRGVzdHJveWVkfHwoZS5kb20uYmx1cigpLChyPXdpbmRvdz8uZ2V0U2VsZWN0aW9uKCkpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5yZW1vdmVBbGxSYW5nZXMoKSl9KSwhMCksImJsdXIiKSxpT2E9aSgodD0hMSk9Pih7Y29tbWFuZHM6ZX0pPT5lLnNldENvbnRlbnQoIiIsdCksImNsZWFyQ29udGVudCIpLHNPYT1pKCgpPT4oe3N0YXRlOnQsdHI6ZSxkaXNwYXRjaDpyfSk9PntsZXR7c2VsZWN0aW9uOmF9PWUse3JhbmdlczpzfT1hO3JldHVybiByJiZzLmZvckVhY2goKHskZnJvbTpuLCR0bzpvfSk9Pnt0LmRvYy5ub2Rlc0JldHdlZW4obi5wb3Msby5wb3MsKGwsYyk9PntpZihsLnR5cGUuaXNUZXh0KXJldHVybjtsZXR7ZG9jOmQsbWFwcGluZzpmfT1lLHA9ZC5yZXNvbHZlKGYubWFwKGMpKSxoPWQucmVzb2x2ZShmLm1hcChjK2wubm9kZVNpemUpKSxtPXAuYmxvY2tSYW5nZShoKTtpZighbSlyZXR1cm47bGV0IHY9Y2QobSk7aWYobC50eXBlLmlzVGV4dGJsb2NrKXtsZXR7ZGVmYXVsdFR5cGU6Yn09cC5wYXJlbnQuY29udGVudE1hdGNoQXQocC5pbmRleCgpKTtlLnNldE5vZGVNYXJrdXAobS5zdGFydCxiKX0odnx8dj09PTApJiZlLmxpZnQobSx2KX0pfSksITB9LCJjbGVhck5vZGVzIiksbk9hPWkodD0+ZT0+dChlKSwiY29tbWFuZCIpLG9PYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5qZmUodCxlKSwiY3JlYXRlUGFyYWdyYXBoTmVhciIpLGxPYT1pKCh0LGUpPT4oe2VkaXRvcjpyLHRyOmF9KT0+e2xldHtzdGF0ZTpzfT1yLG49cy5kb2Muc2xpY2UodC5mcm9tLHQudG8pO2EuZGVsZXRlUmFuZ2UodC5mcm9tLHQudG8pO2xldCBvPWEubWFwcGluZy5tYXAoZSk7cmV0dXJuIGEuaW5zZXJ0KG8sbi5jb250ZW50KSxhLnNldFNlbGVjdGlvbihuZXcgZXIoYS5kb2MucmVzb2x2ZShNYXRoLm1heChvLTEsMCkpKSksITB9LCJjdXQiKSxjT2E9aSgoKT0+KHt0cjp0LGRpc3BhdGNoOmV9KT0+e2xldHtzZWxlY3Rpb246cn09dCxhPXIuJGFuY2hvci5ub2RlKCk7aWYoYS5jb250ZW50LnNpemU+MClyZXR1cm4hMTtsZXQgcz10LnNlbGVjdGlvbi4kYW5jaG9yO2ZvcihsZXQgbj1zLmRlcHRoO24+MDtuLT0xKWlmKHMubm9kZShuKS50eXBlPT09YS50eXBlKXtpZihlKXtsZXQgbD1zLmJlZm9yZShuKSxjPXMuYWZ0ZXIobik7dC5kZWxldGUobCxjKS5zY3JvbGxJbnRvVmlldygpfXJldHVybiEwfXJldHVybiExfSwiZGVsZXRlQ3VycmVudE5vZGUiKSxkT2E9aSh0PT4oe3RyOmUsc3RhdGU6cixkaXNwYXRjaDphfSk9PntsZXQgcz0kcyh0LHIuc2NoZW1hKSxuPWUuc2VsZWN0aW9uLiRhbmNob3I7Zm9yKGxldCBvPW4uZGVwdGg7bz4wO28tPTEpaWYobi5ub2RlKG8pLnR5cGU9PT1zKXtpZihhKXtsZXQgYz1uLmJlZm9yZShvKSxkPW4uYWZ0ZXIobyk7ZS5kZWxldGUoYyxkKS5zY3JvbGxJbnRvVmlldygpfXJldHVybiEwfXJldHVybiExfSwiZGVsZXRlTm9kZSIpLHVPYT1pKHQ9Pih7dHI6ZSxkaXNwYXRjaDpyfSk9PntsZXR7ZnJvbTphLHRvOnN9PXQ7cmV0dXJuIHImJmUuZGVsZXRlKGEscyksITB9LCJkZWxldGVSYW5nZSIpLHBPYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5VdGUodCxlKSwiZGVsZXRlU2VsZWN0aW9uIiksZk9hPWkoKCk9Pih7Y29tbWFuZHM6dH0pPT50LmtleWJvYXJkU2hvcnRjdXQoIkVudGVyIiksImVudGVyIiksaE9hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PlZmZSh0LGUpLCJleGl0Q29kZSIpO2koaHcsIm9iamVjdEluY2x1ZGVzIik7aShkWXIsImZpbmRNYXJrSW5TZXQiKTtpKHVZciwiaXNNYXJrSW5TZXQiKTtpKFp0ZSwiZ2V0TWFya1JhbmdlIik7aShmZCwiZ2V0TWFya1R5cGUiKTttT2E9aSgodCxlPXt9KT0+KHt0cjpyLHN0YXRlOmEsZGlzcGF0Y2g6c30pPT57bGV0IG49ZmQodCxhLnNjaGVtYSkse2RvYzpvLHNlbGVjdGlvbjpsfT1yLHskZnJvbTpjLGZyb206ZCx0bzpmfT1sO2lmKHMpe2xldCBwPVp0ZShjLG4sZSk7aWYocCYmcC5mcm9tPD1kJiZwLnRvPj1mKXtsZXQgaD1lci5jcmVhdGUobyxwLmZyb20scC50byk7ci5zZXRTZWxlY3Rpb24oaCl9fXJldHVybiEwfSwiZXh0ZW5kTWFya1JhbmdlIiksZ09hPWkodD0+ZT0+e2xldCByPXR5cGVvZiB0PT0iZnVuY3Rpb24iP3QoZSk6dDtmb3IobGV0IGE9MDthPHIubGVuZ3RoO2ErPTEpaWYoclthXShlKSlyZXR1cm4hMDtyZXR1cm4hMX0sImZpcnN0Iik7aShpaGUsImlzVGV4dFNlbGVjdGlvbiIpO2koa2MsIm1pbk1heCIpO2koc2hlLCJyZXNvbHZlRm9jdXNQb3NpdGlvbiIpO2koTTV0LCJpc0FuZHJvaWQiKTtpKFc5LCJpc2lPUyIpO2koSTV0LCJpc1NhZmFyaSIpO2JPYT1pKCh0PW51bGwsZT17fSk9Pih7ZWRpdG9yOnIsdmlldzphLHRyOnMsZGlzcGF0Y2g6bn0pPT57ZT17c2Nyb2xsSW50b1ZpZXc6ITAsLi4uZX07bGV0IG89aSgoKT0+eyhXOSgpfHxNNXQoKSkmJmEuZG9tLmZvY3VzKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57ci5pc0Rlc3Ryb3llZHx8KGEuZm9jdXMoKSxJNXQoKSYmIVc5KCkmJiFNNXQoKSYmYS5kb20uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSl9KX0sImRlbGF5ZWRGb2N1cyIpO2lmKGEuaGFzRm9jdXMoKSYmdD09PW51bGx8fHQ9PT0hMSlyZXR1cm4hMDtpZihuJiZ0PT09bnVsbCYmIWloZShyLnN0YXRlLnNlbGVjdGlvbikpcmV0dXJuIG8oKSwhMDtsZXQgbD1zaGUocy5kb2MsdCl8fHIuc3RhdGUuc2VsZWN0aW9uLGM9ci5zdGF0ZS5zZWxlY3Rpb24uZXEobCk7cmV0dXJuIG4mJihjfHxzLnNldFNlbGVjdGlvbihsKSxjJiZzLnN0b3JlZE1hcmtzJiZzLnNldFN0b3JlZE1hcmtzKHMuc3RvcmVkTWFya3MpLG8oKSksITB9LCJmb2N1cyIpLHhPYT1pKCh0LGUpPT5yPT50LmV2ZXJ5KChhLHMpPT5lKGEsey4uLnIsaW5kZXg6c30pKSwiZm9yRWFjaCIpLHZPYT1pKCh0LGUpPT4oe3RyOnIsY29tbWFuZHM6YX0pPT5hLmluc2VydENvbnRlbnRBdCh7ZnJvbTpyLnNlbGVjdGlvbi5mcm9tLHRvOnIuc2VsZWN0aW9uLnRvfSx0LGUpLCJpbnNlcnRDb250ZW50IikscFlyPWkodD0+e2xldCBlPXQuY2hpbGROb2Rlcztmb3IobGV0IHI9ZS5sZW5ndGgtMTtyPj0wO3ItPTEpe2xldCBhPWVbcl07YS5ub2RlVHlwZT09PTMmJmEubm9kZVZhbHVlJiYvXihcblxzXHN8XG4pJC8udGVzdChhLm5vZGVWYWx1ZSk/dC5yZW1vdmVDaGlsZChhKTphLm5vZGVUeXBlPT09MSYmcFlyKGEpfXJldHVybiB0fSwicmVtb3ZlV2hpdGVzcGFjZXMiKTtpKEc5LCJlbGVtZW50RnJvbVN0cmluZyIpO2koWTksImNyZWF0ZU5vZGVGcm9tQ29udGVudCIpO2koUDV0LCJzZWxlY3Rpb25Ub0luc2VydGlvbkVuZCIpO3lPYT1pKHQ9PiEoInR5cGUiaW4gdCksImlzRnJhZ21lbnQiKSx3T2E9aSgodCxlLHIpPT4oe3RyOmEsZGlzcGF0Y2g6cyxlZGl0b3I6bn0pPT57dmFyIG87aWYocyl7cj17cGFyc2VPcHRpb25zOm4ub3B0aW9ucy5wYXJzZU9wdGlvbnMsdXBkYXRlU2VsZWN0aW9uOiEwLGFwcGx5SW5wdXRSdWxlczohMSxhcHBseVBhc3RlUnVsZXM6ITEsLi4ucn07bGV0IGwsYz1pKGc9PntuLmVtaXQoImNvbnRlbnRFcnJvciIse2VkaXRvcjpuLGVycm9yOmcsZGlzYWJsZUNvbGxhYm9yYXRpb246aSgoKT0+e24uc3RvcmFnZS5jb2xsYWJvcmF0aW9uJiYobi5zdG9yYWdlLmNvbGxhYm9yYXRpb24uaXNEaXNhYmxlZD0hMCl9LCJkaXNhYmxlQ29sbGFib3JhdGlvbiIpfSl9LCJlbWl0Q29udGVudEVycm9yIiksZD17cHJlc2VydmVXaGl0ZXNwYWNlOiJmdWxsIiwuLi5yLnBhcnNlT3B0aW9uc307aWYoIXIuZXJyb3JPbkludmFsaWRDb250ZW50JiYhbi5vcHRpb25zLmVuYWJsZUNvbnRlbnRDaGVjayYmbi5vcHRpb25zLmVtaXRDb250ZW50RXJyb3IpdHJ5e1k5KGUsbi5zY2hlbWEse3BhcnNlT3B0aW9uczpkLGVycm9yT25JbnZhbGlkQ29udGVudDohMH0pfWNhdGNoKGcpe2MoZyl9dHJ5e2w9WTkoZSxuLnNjaGVtYSx7cGFyc2VPcHRpb25zOmQsZXJyb3JPbkludmFsaWRDb250ZW50OihvPXIuZXJyb3JPbkludmFsaWRDb250ZW50KSE9PW51bGwmJm8hPT12b2lkIDA/bzpuLm9wdGlvbnMuZW5hYmxlQ29udGVudENoZWNrfSl9Y2F0Y2goZyl7cmV0dXJuIGMoZyksITF9bGV0e2Zyb206Zix0bzpwfT10eXBlb2YgdD09Im51bWJlciI/e2Zyb206dCx0bzp0fTp7ZnJvbTp0LmZyb20sdG86dC50b30saD0hMCxtPSEwO2lmKCh5T2EobCk/bDpbbF0pLmZvckVhY2goZz0+e2cuY2hlY2soKSxoPWg/Zy5pc1RleHQmJmcubWFya3MubGVuZ3RoPT09MDohMSxtPW0/Zy5pc0Jsb2NrOiExfSksZj09PXAmJm0pe2xldHtwYXJlbnQ6Z309YS5kb2MucmVzb2x2ZShmKTtnLmlzVGV4dGJsb2NrJiYhZy50eXBlLnNwZWMuY29kZSYmIWcuY2hpbGRDb3VudCYmKGYtPTEscCs9MSl9bGV0IGI7aWYoaCl7aWYoQXJyYXkuaXNBcnJheShlKSliPWUubWFwKGc9PmcudGV4dHx8IiIpLmpvaW4oIiIpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEplKXtsZXQgZz0iIjtlLmZvckVhY2goeT0+e3kudGV4dCYmKGcrPXkudGV4dCl9KSxiPWd9ZWxzZSB0eXBlb2YgZT09Im9iamVjdCImJmUmJmUudGV4dD9iPWUudGV4dDpiPWU7YS5pbnNlcnRUZXh0KGIsZixwKX1lbHNlIGI9bCxhLnJlcGxhY2VXaXRoKGYscCxiKTtyLnVwZGF0ZVNlbGVjdGlvbiYmUDV0KGEsYS5zdGVwcy5sZW5ndGgtMSwtMSksci5hcHBseUlucHV0UnVsZXMmJmEuc2V0TWV0YSgiYXBwbHlJbnB1dFJ1bGVzIix7ZnJvbTpmLHRleHQ6Yn0pLHIuYXBwbHlQYXN0ZVJ1bGVzJiZhLnNldE1ldGEoImFwcGx5UGFzdGVSdWxlcyIse2Zyb206Zix0ZXh0OmJ9KX1yZXR1cm4hMH0sImluc2VydENvbnRlbnRBdCIpLGtPYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5oNXQodCxlKSwiam9pblVwIiksU09hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9Pm01dCh0LGUpLCJqb2luRG93biIpLE1PYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5SZmUodCxlKSwiam9pbkJhY2t3YXJkIiksQ09hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PkJmZSh0LGUpLCJqb2luRm9yd2FyZCIpLHpPYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZSx0cjpyfSk9Pnt0cnl7bGV0IGE9STkodC5kb2MsdC5zZWxlY3Rpb24uJGZyb20ucG9zLC0xKTtyZXR1cm4gYT09bnVsbD8hMTooci5qb2luKGEsMiksZSYmZShyKSwhMCl9Y2F0Y2h7cmV0dXJuITF9fSwiam9pbkl0ZW1CYWNrd2FyZCIpLF9PYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZSx0cjpyfSk9Pnt0cnl7bGV0IGE9STkodC5kb2MsdC5zZWxlY3Rpb24uJGZyb20ucG9zLDEpO3JldHVybiBhPT1udWxsPyExOihyLmpvaW4oYSwyKSxlJiZlKHIpLCEwKX1jYXRjaHtyZXR1cm4hMX19LCJqb2luSXRlbUZvcndhcmQiKSxUT2E9aSgoKT0+KHtzdGF0ZTp0LGRpc3BhdGNoOmV9KT0+cDV0KHQsZSksImpvaW5UZXh0YmxvY2tCYWNrd2FyZCIpLExPYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5mNXQodCxlKSwiam9pblRleHRibG9ja0ZvcndhcmQiKTtpKG5oZSwiaXNNYWNPUyIpO2koRE9hLCJub3JtYWxpemVLZXlOYW1lIik7JE9hPWkodD0+KHtlZGl0b3I6ZSx2aWV3OnIsdHI6YSxkaXNwYXRjaDpzfSk9PntsZXQgbj1ET2EodCkuc3BsaXQoLy0oPyEkKS8pLG89bi5maW5kKGQ9PiFbIkFsdCIsIkN0cmwiLCJNZXRhIiwiU2hpZnQiXS5pbmNsdWRlcyhkKSksbD1uZXcgS2V5Ym9hcmRFdmVudCgia2V5ZG93biIse2tleTpvPT09IlNwYWNlIj8iICI6byxhbHRLZXk6bi5pbmNsdWRlcygiQWx0IiksY3RybEtleTpuLmluY2x1ZGVzKCJDdHJsIiksbWV0YUtleTpuLmluY2x1ZGVzKCJNZXRhIiksc2hpZnRLZXk6bi5pbmNsdWRlcygiU2hpZnQiKSxidWJibGVzOiEwLGNhbmNlbGFibGU6ITB9KSxjPWUuY2FwdHVyZVRyYW5zYWN0aW9uKCgpPT57ci5zb21lUHJvcCgiaGFuZGxlS2V5RG93biIsZD0+ZChyLGwpKX0pO3JldHVybiBjPy5zdGVwcy5mb3JFYWNoKGQ9PntsZXQgZj1kLm1hcChhLm1hcHBpbmcpO2YmJnMmJmEubWF5YmVTdGVwKGYpfSksITB9LCJrZXlib2FyZFNob3J0Y3V0Iik7aShLOSwiaXNOb2RlQWN0aXZlIik7QU9hPWkoKHQsZT17fSk9Pih7c3RhdGU6cixkaXNwYXRjaDphfSk9PntsZXQgcz0kcyh0LHIuc2NoZW1hKTtyZXR1cm4gSzkocixzLGUpP2c1dChyLGEpOiExfSwibGlmdCIpLEVPYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5VZmUodCxlKSwibGlmdEVtcHR5QmxvY2siKSxJT2E9aSh0PT4oe3N0YXRlOmUsZGlzcGF0Y2g6cn0pPT57bGV0IGE9JHModCxlLnNjaGVtYSk7cmV0dXJuIHc1dChhKShlLHIpfSwibGlmdExpc3RJdGVtIiksUE9hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PnFmZSh0LGUpLCJuZXdsaW5lSW5Db2RlIik7aShtdywiZ2V0U2NoZW1hVHlwZU5hbWVCeU5hbWUiKTtpKG9oZSwiZGVsZXRlUHJvcHMiKTtOT2E9aSgodCxlKT0+KHt0cjpyLHN0YXRlOmEsZGlzcGF0Y2g6c30pPT57bGV0IG49bnVsbCxvPW51bGwsbD1tdyh0eXBlb2YgdD09InN0cmluZyI/dDp0Lm5hbWUsYS5zY2hlbWEpO3JldHVybiBsPyhsPT09Im5vZGUiJiYobj0kcyh0LGEuc2NoZW1hKSksbD09PSJtYXJrIiYmKG89ZmQodCxhLnNjaGVtYSkpLHMmJnIuc2VsZWN0aW9uLnJhbmdlcy5mb3JFYWNoKGM9PnthLmRvYy5ub2Rlc0JldHdlZW4oYy4kZnJvbS5wb3MsYy4kdG8ucG9zLChkLGYpPT57biYmbj09PWQudHlwZSYmci5zZXROb2RlTWFya3VwKGYsdm9pZCAwLG9oZShkLmF0dHJzLGUpKSxvJiZkLm1hcmtzLmxlbmd0aCYmZC5tYXJrcy5mb3JFYWNoKHA9PntvPT09cC50eXBlJiZyLmFkZE1hcmsoZixmK2Qubm9kZVNpemUsby5jcmVhdGUob2hlKHAuYXR0cnMsZSkpKX0pfSl9KSwhMCk6ITF9LCJyZXNldEF0dHJpYnV0ZXMiKSxPT2E9aSgoKT0+KHt0cjp0LGRpc3BhdGNoOmV9KT0+KGUmJnQuc2Nyb2xsSW50b1ZpZXcoKSwhMCksInNjcm9sbEludG9WaWV3IiksUk9hPWkoKCk9Pih7dHI6dCxkaXNwYXRjaDplfSk9PntpZihlKXtsZXQgcj1uZXcgTW8odC5kb2MpO3Quc2V0U2VsZWN0aW9uKHIpfXJldHVybiEwfSwic2VsZWN0QWxsIiksRk9hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PkZmZSh0LGUpLCJzZWxlY3ROb2RlQmFja3dhcmQiKSxCT2E9aSgoKT0+KHtzdGF0ZTp0LGRpc3BhdGNoOmV9KT0+SGZlKHQsZSksInNlbGVjdE5vZGVGb3J3YXJkIiksSE9hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PmI1dCh0LGUpLCJzZWxlY3RQYXJlbnROb2RlIikscU9hPWkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PkdmZSh0LGUpLCJzZWxlY3RUZXh0YmxvY2tFbmQiKSxWT2E9aSgoKT0+KHtzdGF0ZTp0LGRpc3BhdGNoOmV9KT0+V2ZlKHQsZSksInNlbGVjdFRleHRibG9ja1N0YXJ0Iik7aShRdGUsImNyZWF0ZURvY3VtZW50Iik7ak9hPWkoKHQsZT0hMSxyPXt9LGE9e30pPT4oe2VkaXRvcjpzLHRyOm4sZGlzcGF0Y2g6byxjb21tYW5kczpsfSk9Pnt2YXIgYyxkO2xldHtkb2M6Zn09bjtpZihyLnByZXNlcnZlV2hpdGVzcGFjZSE9PSJmdWxsIil7bGV0IHA9UXRlKHQscy5zY2hlbWEscix7ZXJyb3JPbkludmFsaWRDb250ZW50OihjPWEuZXJyb3JPbkludmFsaWRDb250ZW50KSE9PW51bGwmJmMhPT12b2lkIDA/YzpzLm9wdGlvbnMuZW5hYmxlQ29udGVudENoZWNrfSk7cmV0dXJuIG8mJm4ucmVwbGFjZVdpdGgoMCxmLmNvbnRlbnQuc2l6ZSxwKS5zZXRNZXRhKCJwcmV2ZW50VXBkYXRlIiwhZSksITB9cmV0dXJuIG8mJm4uc2V0TWV0YSgicHJldmVudFVwZGF0ZSIsIWUpLGwuaW5zZXJ0Q29udGVudEF0KHtmcm9tOjAsdG86Zi5jb250ZW50LnNpemV9LHQse3BhcnNlT3B0aW9uczpyLGVycm9yT25JbnZhbGlkQ29udGVudDooZD1hLmVycm9yT25JbnZhbGlkQ29udGVudCkhPT1udWxsJiZkIT09dm9pZCAwP2Q6cy5vcHRpb25zLmVuYWJsZUNvbnRlbnRDaGVja30pfSwic2V0Q29udGVudCIpO2kobGhlLCJnZXRNYXJrQXR0cmlidXRlcyIpO2koaGhlLCJjb21iaW5lVHJhbnNhY3Rpb25TdGVwcyIpO2koTjV0LCJkZWZhdWx0QmxvY2tBdCIpO2koU1lyLCJmaW5kQ2hpbGRyZW4iKTtpKG1oZSwiZmluZENoaWxkcmVuSW5SYW5nZSIpO2koTzV0LCJmaW5kUGFyZW50Tm9kZUNsb3Nlc3RUb1BvcyIpO2koZ3csImZpbmRQYXJlbnROb2RlIik7aShYdGUsImdldFNjaGVtYSIpO2koTVlyLCJnZW5lcmF0ZUhUTUwiKTtpKENZciwiZ2VuZXJhdGVKU09OIik7aShjaGUsImdldFRleHQiKTtpKHpZciwiZ2VuZXJhdGVUZXh0Iik7aShSNXQsImdldE5vZGVBdHRyaWJ1dGVzIik7aShycmUsImdldEF0dHJpYnV0ZXMiKTtpKEY1dCwicmVtb3ZlRHVwbGljYXRlcyIpO2koVU9hLCJzaW1wbGlmeUNoYW5nZWRSYW5nZXMiKTtpKGdoZSwiZ2V0Q2hhbmdlZFJhbmdlcyIpO2koQjV0LCJnZXREZWJ1Z0pTT04iKTtpKHh3LCJnZXRNYXJrc0JldHdlZW4iKTtfWXI9aSgodCxlLHIsYT0yMCk9PntsZXQgcz10LmRvYy5yZXNvbHZlKHIpLG49YSxvPW51bGw7Zm9yKDtuPjAmJm89PT1udWxsOyl7bGV0IGw9cy5ub2RlKG4pO2w/LnR5cGUubmFtZT09PWU/bz1sOm4tPTF9cmV0dXJuW28sbl19LCJnZXROb2RlQXRQb3NpdGlvbiIpO2koYncsImdldFNwbGl0dGVkQXR0cmlidXRlcyIpO2koSnRlLCJpc01hcmtBY3RpdmUiKTtpKEg1dCwiaXNBY3RpdmUiKTtUWXI9aSgodCxlKT0+e2xldHskZnJvbTpyLCR0bzphLCRhbmNob3I6c309dC5zZWxlY3Rpb247aWYoZSl7bGV0IG49Z3cobD0+bC50eXBlLm5hbWU9PT1lKSh0LnNlbGVjdGlvbik7aWYoIW4pcmV0dXJuITE7bGV0IG89dC5kb2MucmVzb2x2ZShuLnBvcysxKTtyZXR1cm4gcy5wb3MrMT09PW8uZW5kKCl9cmV0dXJuIShhLnBhcmVudE9mZnNldDxhLnBhcmVudC5ub2RlU2l6ZS0yfHxyLnBvcyE9PWEucG9zKX0sImlzQXRFbmRPZk5vZGUiKSxMWXI9aSh0PT57bGV0eyRmcm9tOmUsJHRvOnJ9PXQuc2VsZWN0aW9uO3JldHVybiEoZS5wYXJlbnRPZmZzZXQ+MHx8ZS5wb3MhPT1yLnBvcyl9LCJpc0F0U3RhcnRPZk5vZGUiKTtpKGRoZSwiaXNMaXN0Iik7aShlcmUsImlzTm9kZUVtcHR5Iik7aShiaGUsImlzTm9kZVNlbGVjdGlvbiIpO2koRFlyLCJwb3NUb0RPTVJlY3QiKTtpKGZZciwicmV3cml0ZVVua25vd25Db250ZW50SW5uZXIiKTtpKCRZciwicmV3cml0ZVVua25vd25Db250ZW50Iik7aShXT2EsImNhblNldE1hcmsiKTtHT2E9aSgodCxlPXt9KT0+KHt0cjpyLHN0YXRlOmEsZGlzcGF0Y2g6c30pPT57bGV0e3NlbGVjdGlvbjpufT1yLHtlbXB0eTpvLHJhbmdlczpsfT1uLGM9ZmQodCxhLnNjaGVtYSk7aWYocylpZihvKXtsZXQgZD1saGUoYSxjKTtyLmFkZFN0b3JlZE1hcmsoYy5jcmVhdGUoey4uLmQsLi4uZX0pKX1lbHNlIGwuZm9yRWFjaChkPT57bGV0IGY9ZC4kZnJvbS5wb3MscD1kLiR0by5wb3M7YS5kb2Mubm9kZXNCZXR3ZWVuKGYscCwoaCxtKT0+e2xldCB2PU1hdGgubWF4KG0sZiksYj1NYXRoLm1pbihtK2gubm9kZVNpemUscCk7aC5tYXJrcy5maW5kKHk9PnkudHlwZT09PWMpP2gubWFya3MuZm9yRWFjaCh5PT57Yz09PXkudHlwZSYmci5hZGRNYXJrKHYsYixjLmNyZWF0ZSh7Li4ueS5hdHRycywuLi5lfSkpfSk6ci5hZGRNYXJrKHYsYixjLmNyZWF0ZShlKSl9KX0pO3JldHVybiBXT2EoYSxyLGMpfSwic2V0TWFyayIpLFlPYT1pKCh0LGUpPT4oe3RyOnJ9KT0+KHIuc2V0TWV0YSh0LGUpLCEwKSwic2V0TWV0YSIpLEtPYT1pKCh0LGU9e30pPT4oe3N0YXRlOnIsZGlzcGF0Y2g6YSxjaGFpbjpzfSk9PntsZXQgbj0kcyh0LHIuc2NoZW1hKSxvO3JldHVybiByLnNlbGVjdGlvbi4kYW5jaG9yLnNhbWVQYXJlbnQoci5zZWxlY3Rpb24uJGhlYWQpJiYobz1yLnNlbGVjdGlvbi4kYW5jaG9yLnBhcmVudC5hdHRycyksbi5pc1RleHRibG9jaz9zKCkuY29tbWFuZCgoe2NvbW1hbmRzOmx9KT0+WWZlKG4sey4uLm8sLi4uZX0pKHIpPyEwOmwuY2xlYXJOb2RlcygpKS5jb21tYW5kKCh7c3RhdGU6bH0pPT5ZZmUobix7Li4ubywuLi5lfSkobCxhKSkucnVuKCk6KGNvbnNvbGUud2FybignW3RpcHRhcCB3YXJuXTogQ3VycmVudGx5ICJzZXROb2RlKCkiIG9ubHkgc3VwcG9ydHMgdGV4dCBibG9jayBub2Rlcy4nKSwhMSl9LCJzZXROb2RlIiksWk9hPWkodD0+KHt0cjplLGRpc3BhdGNoOnJ9KT0+e2lmKHIpe2xldHtkb2M6YX09ZSxzPWtjKHQsMCxhLmNvbnRlbnQuc2l6ZSksbj1JdC5jcmVhdGUoYSxzKTtlLnNldFNlbGVjdGlvbihuKX1yZXR1cm4hMH0sInNldE5vZGVTZWxlY3Rpb24iKSxRT2E9aSh0PT4oe3RyOmUsZGlzcGF0Y2g6cn0pPT57aWYocil7bGV0e2RvYzphfT1lLHtmcm9tOnMsdG86bn09dHlwZW9mIHQ9PSJudW1iZXIiP3tmcm9tOnQsdG86dH06dCxvPWVyLmF0U3RhcnQoYSkuZnJvbSxsPWVyLmF0RW5kKGEpLnRvLGM9a2MocyxvLGwpLGQ9a2MobixvLGwpLGY9ZXIuY3JlYXRlKGEsYyxkKTtlLnNldFNlbGVjdGlvbihmKX1yZXR1cm4hMH0sInNldFRleHRTZWxlY3Rpb24iKSxYT2E9aSh0PT4oe3N0YXRlOmUsZGlzcGF0Y2g6cn0pPT57bGV0IGE9JHModCxlLnNjaGVtYSk7cmV0dXJuIGs1dChhKShlLHIpfSwic2lua0xpc3RJdGVtIik7aShoWXIsImVuc3VyZU1hcmtzIik7Sk9hPWkoKHtrZWVwTWFya3M6dD0hMH09e30pPT4oe3RyOmUsc3RhdGU6cixkaXNwYXRjaDphLGVkaXRvcjpzfSk9PntsZXR7c2VsZWN0aW9uOm4sZG9jOm99PWUseyRmcm9tOmwsJHRvOmN9PW4sZD1zLmV4dGVuc2lvbk1hbmFnZXIuYXR0cmlidXRlcyxmPWJ3KGQsbC5ub2RlKCkudHlwZS5uYW1lLGwubm9kZSgpLmF0dHJzKTtpZihuIGluc3RhbmNlb2YgSXQmJm4ubm9kZS5pc0Jsb2NrKXJldHVybiFsLnBhcmVudE9mZnNldHx8IUExKG8sbC5wb3MpPyExOihhJiYodCYmaFlyKHIscy5leHRlbnNpb25NYW5hZ2VyLnNwbGl0dGFibGVNYXJrcyksZS5zcGxpdChsLnBvcykuc2Nyb2xsSW50b1ZpZXcoKSksITApO2lmKCFsLnBhcmVudC5pc0Jsb2NrKXJldHVybiExO2xldCBwPWMucGFyZW50T2Zmc2V0PT09Yy5wYXJlbnQuY29udGVudC5zaXplLGg9bC5kZXB0aD09PTA/dm9pZCAwOk41dChsLm5vZGUoLTEpLmNvbnRlbnRNYXRjaEF0KGwuaW5kZXhBZnRlcigtMSkpKSxtPXAmJmg/W3t0eXBlOmgsYXR0cnM6Zn1dOnZvaWQgMCx2PUExKGUuZG9jLGUubWFwcGluZy5tYXAobC5wb3MpLDEsbSk7aWYoIW0mJiF2JiZBMShlLmRvYyxlLm1hcHBpbmcubWFwKGwucG9zKSwxLGg/W3t0eXBlOmh9XTp2b2lkIDApJiYodj0hMCxtPWg/W3t0eXBlOmgsYXR0cnM6Zn1dOnZvaWQgMCksYSl7aWYodiYmKG4gaW5zdGFuY2VvZiBlciYmZS5kZWxldGVTZWxlY3Rpb24oKSxlLnNwbGl0KGUubWFwcGluZy5tYXAobC5wb3MpLDEsbSksaCYmIXAmJiFsLnBhcmVudE9mZnNldCYmbC5wYXJlbnQudHlwZSE9PWgpKXtsZXQgYj1lLm1hcHBpbmcubWFwKGwuYmVmb3JlKCkpLGc9ZS5kb2MucmVzb2x2ZShiKTtsLm5vZGUoLTEpLmNhblJlcGxhY2VXaXRoKGcuaW5kZXgoKSxnLmluZGV4KCkrMSxoKSYmZS5zZXROb2RlTWFya3VwKGUubWFwcGluZy5tYXAobC5iZWZvcmUoKSksaCl9dCYmaFlyKHIscy5leHRlbnNpb25NYW5hZ2VyLnNwbGl0dGFibGVNYXJrcyksZS5zY3JvbGxJbnRvVmlldygpfXJldHVybiB2fSwic3BsaXRCbG9jayIpLGVSYT1pKCh0LGU9e30pPT4oe3RyOnIsc3RhdGU6YSxkaXNwYXRjaDpzLGVkaXRvcjpufSk9Pnt2YXIgbztsZXQgbD0kcyh0LGEuc2NoZW1hKSx7JGZyb206YywkdG86ZH09YS5zZWxlY3Rpb24sZj1hLnNlbGVjdGlvbi5ub2RlO2lmKGYmJmYuaXNCbG9ja3x8Yy5kZXB0aDwyfHwhYy5zYW1lUGFyZW50KGQpKXJldHVybiExO2xldCBwPWMubm9kZSgtMSk7aWYocC50eXBlIT09bClyZXR1cm4hMTtsZXQgaD1uLmV4dGVuc2lvbk1hbmFnZXIuYXR0cmlidXRlcztpZihjLnBhcmVudC5jb250ZW50LnNpemU9PT0wJiZjLm5vZGUoLTEpLmNoaWxkQ291bnQ9PT1jLmluZGV4QWZ0ZXIoLTEpKXtpZihjLmRlcHRoPT09Mnx8Yy5ub2RlKC0zKS50eXBlIT09bHx8Yy5pbmRleCgtMikhPT1jLm5vZGUoLTIpLmNoaWxkQ291bnQtMSlyZXR1cm4hMTtpZihzKXtsZXQgeT1KZS5lbXB0eSxrPWMuaW5kZXgoLTEpPzE6Yy5pbmRleCgtMik/MjozO2ZvcihsZXQgTD1jLmRlcHRoLWs7TD49Yy5kZXB0aC0zO0wtPTEpeT1KZS5mcm9tKGMubm9kZShMKS5jb3B5KHkpKTtsZXQgTT1jLmluZGV4QWZ0ZXIoLTEpPGMubm9kZSgtMikuY2hpbGRDb3VudD8xOmMuaW5kZXhBZnRlcigtMik8Yy5ub2RlKC0zKS5jaGlsZENvdW50PzI6MyxOPXsuLi5idyhoLGMubm9kZSgpLnR5cGUubmFtZSxjLm5vZGUoKS5hdHRycyksLi4uZX0sXz0oKG89bC5jb250ZW50TWF0Y2guZGVmYXVsdFR5cGUpPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5jcmVhdGVBbmRGaWxsKE4pKXx8dm9pZCAwO3k9eS5hcHBlbmQoSmUuZnJvbShsLmNyZWF0ZUFuZEZpbGwobnVsbCxfKXx8dm9pZCAwKSk7bGV0IFM9Yy5iZWZvcmUoYy5kZXB0aC0oay0xKSk7ci5yZXBsYWNlKFMsYy5hZnRlcigtTSksbmV3IG10KHksNC1rLDApKTtsZXQgTz0tMTtyLmRvYy5ub2Rlc0JldHdlZW4oUyxyLmRvYy5jb250ZW50LnNpemUsKEwsRSk9PntpZihPPi0xKXJldHVybiExO0wuaXNUZXh0YmxvY2smJkwuY29udGVudC5zaXplPT09MCYmKE89RSsxKX0pLE8+LTEmJnIuc2V0U2VsZWN0aW9uKGVyLm5lYXIoci5kb2MucmVzb2x2ZShPKSkpLHIuc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4hMH1sZXQgbT1kLnBvcz09PWMuZW5kKCk/cC5jb250ZW50TWF0Y2hBdCgwKS5kZWZhdWx0VHlwZTpudWxsLHY9ey4uLmJ3KGgscC50eXBlLm5hbWUscC5hdHRycyksLi4uZX0sYj17Li4uYncoaCxjLm5vZGUoKS50eXBlLm5hbWUsYy5ub2RlKCkuYXR0cnMpLC4uLmV9O3IuZGVsZXRlKGMucG9zLGQucG9zKTtsZXQgZz1tP1t7dHlwZTpsLGF0dHJzOnZ9LHt0eXBlOm0sYXR0cnM6Yn1dOlt7dHlwZTpsLGF0dHJzOnZ9XTtpZighQTEoci5kb2MsYy5wb3MsMikpcmV0dXJuITE7aWYocyl7bGV0e3NlbGVjdGlvbjp5LHN0b3JlZE1hcmtzOmt9PWEse3NwbGl0dGFibGVNYXJrczpNfT1uLmV4dGVuc2lvbk1hbmFnZXIsTj1rfHx5LiR0by5wYXJlbnRPZmZzZXQmJnkuJGZyb20ubWFya3MoKTtpZihyLnNwbGl0KGMucG9zLDIsZykuc2Nyb2xsSW50b1ZpZXcoKSwhTnx8IXMpcmV0dXJuITA7bGV0IF89Ti5maWx0ZXIoUz0+TS5pbmNsdWRlcyhTLnR5cGUubmFtZSkpO3IuZW5zdXJlTWFya3MoXyl9cmV0dXJuITB9LCJzcGxpdExpc3RJdGVtIiksQzV0PWkoKHQsZSk9PntsZXQgcj1ndyhvPT5vLnR5cGU9PT1lKSh0LnNlbGVjdGlvbik7aWYoIXIpcmV0dXJuITA7bGV0IGE9dC5kb2MucmVzb2x2ZShNYXRoLm1heCgwLHIucG9zLTEpKS5iZWZvcmUoci5kZXB0aCk7aWYoYT09PXZvaWQgMClyZXR1cm4hMDtsZXQgcz10LmRvYy5ub2RlQXQoYSk7cmV0dXJuIHIubm9kZS50eXBlPT09cz8udHlwZSYmY2wodC5kb2Msci5wb3MpJiZ0LmpvaW4oci5wb3MpLCEwfSwiam9pbkxpc3RCYWNrd2FyZHMiKSx6NXQ9aSgodCxlKT0+e2xldCByPWd3KG89Pm8udHlwZT09PWUpKHQuc2VsZWN0aW9uKTtpZighcilyZXR1cm4hMDtsZXQgYT10LmRvYy5yZXNvbHZlKHIuc3RhcnQpLmFmdGVyKHIuZGVwdGgpO2lmKGE9PT12b2lkIDApcmV0dXJuITA7bGV0IHM9dC5kb2Mubm9kZUF0KGEpO3JldHVybiByLm5vZGUudHlwZT09PXM/LnR5cGUmJmNsKHQuZG9jLGEpJiZ0LmpvaW4oYSksITB9LCJqb2luTGlzdEZvcndhcmRzIiksdFJhPWkoKHQsZSxyLGE9e30pPT4oe2VkaXRvcjpzLHRyOm4sc3RhdGU6byxkaXNwYXRjaDpsLGNoYWluOmMsY29tbWFuZHM6ZCxjYW46Zn0pPT57bGV0e2V4dGVuc2lvbnM6cCxzcGxpdHRhYmxlTWFya3M6aH09cy5leHRlbnNpb25NYW5hZ2VyLG09JHModCxvLnNjaGVtYSksdj0kcyhlLG8uc2NoZW1hKSx7c2VsZWN0aW9uOmIsc3RvcmVkTWFya3M6Z309byx7JGZyb206eSwkdG86a309YixNPXkuYmxvY2tSYW5nZShrKSxOPWd8fGIuJHRvLnBhcmVudE9mZnNldCYmYi4kZnJvbS5tYXJrcygpO2lmKCFNKXJldHVybiExO2xldCBfPWd3KFM9PmRoZShTLnR5cGUubmFtZSxwKSkoYik7aWYoTS5kZXB0aD49MSYmXyYmTS5kZXB0aC1fLmRlcHRoPD0xKXtpZihfLm5vZGUudHlwZT09PW0pcmV0dXJuIGQubGlmdExpc3RJdGVtKHYpO2lmKGRoZShfLm5vZGUudHlwZS5uYW1lLHApJiZtLnZhbGlkQ29udGVudChfLm5vZGUuY29udGVudCkmJmwpcmV0dXJuIGMoKS5jb21tYW5kKCgpPT4obi5zZXROb2RlTWFya3VwKF8ucG9zLG0pLCEwKSkuY29tbWFuZCgoKT0+QzV0KG4sbSkpLmNvbW1hbmQoKCk9Pno1dChuLG0pKS5ydW4oKX1yZXR1cm4hcnx8IU58fCFsP2MoKS5jb21tYW5kKCgpPT5mKCkud3JhcEluTGlzdChtLGEpPyEwOmQuY2xlYXJOb2RlcygpKS53cmFwSW5MaXN0KG0sYSkuY29tbWFuZCgoKT0+QzV0KG4sbSkpLmNvbW1hbmQoKCk9Pno1dChuLG0pKS5ydW4oKTpjKCkuY29tbWFuZCgoKT0+e2xldCBTPWYoKS53cmFwSW5MaXN0KG0sYSksTz1OLmZpbHRlcihMPT5oLmluY2x1ZGVzKEwudHlwZS5uYW1lKSk7cmV0dXJuIG4uZW5zdXJlTWFya3MoTyksUz8hMDpkLmNsZWFyTm9kZXMoKX0pLndyYXBJbkxpc3QobSxhKS5jb21tYW5kKCgpPT5DNXQobixtKSkuY29tbWFuZCgoKT0+ejV0KG4sbSkpLnJ1bigpfSwidG9nZ2xlTGlzdCIpLHJSYT1pKCh0LGU9e30scj17fSk9Pih7c3RhdGU6YSxjb21tYW5kczpzfSk9PntsZXR7ZXh0ZW5kRW1wdHlNYXJrUmFuZ2U6bj0hMX09cixvPWZkKHQsYS5zY2hlbWEpO3JldHVybiBKdGUoYSxvLGUpP3MudW5zZXRNYXJrKG8se2V4dGVuZEVtcHR5TWFya1JhbmdlOm59KTpzLnNldE1hcmsobyxlKX0sInRvZ2dsZU1hcmsiKSxhUmE9aSgodCxlLHI9e30pPT4oe3N0YXRlOmEsY29tbWFuZHM6c30pPT57bGV0IG49JHModCxhLnNjaGVtYSksbz0kcyhlLGEuc2NoZW1hKSxsPUs5KGEsbixyKSxjO3JldHVybiBhLnNlbGVjdGlvbi4kYW5jaG9yLnNhbWVQYXJlbnQoYS5zZWxlY3Rpb24uJGhlYWQpJiYoYz1hLnNlbGVjdGlvbi4kYW5jaG9yLnBhcmVudC5hdHRycyksbD9zLnNldE5vZGUobyxjKTpzLnNldE5vZGUobix7Li4uYywuLi5yfSl9LCJ0b2dnbGVOb2RlIiksaVJhPWkoKHQsZT17fSk9Pih7c3RhdGU6cixjb21tYW5kczphfSk9PntsZXQgcz0kcyh0LHIuc2NoZW1hKTtyZXR1cm4gSzkocixzLGUpP2EubGlmdChzKTphLndyYXBJbihzLGUpfSwidG9nZ2xlV3JhcCIpLHNSYT1pKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT57bGV0IHI9dC5wbHVnaW5zO2ZvcihsZXQgYT0wO2E8ci5sZW5ndGg7YSs9MSl7bGV0IHM9clthXSxuO2lmKHMuc3BlYy5pc0lucHV0UnVsZXMmJihuPXMuZ2V0U3RhdGUodCkpKXtpZihlKXtsZXQgbz10LnRyLGw9bi50cmFuc2Zvcm07Zm9yKGxldCBjPWwuc3RlcHMubGVuZ3RoLTE7Yz49MDtjLT0xKW8uc3RlcChsLnN0ZXBzW2NdLmludmVydChsLmRvY3NbY10pKTtpZihuLnRleHQpe2xldCBjPW8uZG9jLnJlc29sdmUobi5mcm9tKS5tYXJrcygpO28ucmVwbGFjZVdpdGgobi5mcm9tLG4udG8sdC5zY2hlbWEudGV4dChuLnRleHQsYykpfWVsc2Ugby5kZWxldGUobi5mcm9tLG4udG8pfXJldHVybiEwfX1yZXR1cm4hMX0sInVuZG9JbnB1dFJ1bGUiKSxuUmE9aSgoKT0+KHt0cjp0LGRpc3BhdGNoOmV9KT0+e2xldHtzZWxlY3Rpb246cn09dCx7ZW1wdHk6YSxyYW5nZXM6c309cjtyZXR1cm4gYXx8ZSYmcy5mb3JFYWNoKG49Pnt0LnJlbW92ZU1hcmsobi4kZnJvbS5wb3Msbi4kdG8ucG9zKX0pLCEwfSwidW5zZXRBbGxNYXJrcyIpLG9SYT1pKCh0LGU9e30pPT4oe3RyOnIsc3RhdGU6YSxkaXNwYXRjaDpzfSk9Pnt2YXIgbjtsZXR7ZXh0ZW5kRW1wdHlNYXJrUmFuZ2U6bz0hMX09ZSx7c2VsZWN0aW9uOmx9PXIsYz1mZCh0LGEuc2NoZW1hKSx7JGZyb206ZCxlbXB0eTpmLHJhbmdlczpwfT1sO2lmKCFzKXJldHVybiEwO2lmKGYmJm8pe2xldHtmcm9tOmgsdG86bX09bCx2PShuPWQubWFya3MoKS5maW5kKGc9PmcudHlwZT09PWMpKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uYXR0cnMsYj1adGUoZCxjLHYpO2ImJihoPWIuZnJvbSxtPWIudG8pLHIucmVtb3ZlTWFyayhoLG0sYyl9ZWxzZSBwLmZvckVhY2goaD0+e3IucmVtb3ZlTWFyayhoLiRmcm9tLnBvcyxoLiR0by5wb3MsYyl9KTtyZXR1cm4gci5yZW1vdmVTdG9yZWRNYXJrKGMpLCEwfSwidW5zZXRNYXJrIiksbFJhPWkoKHQsZT17fSk9Pih7dHI6cixzdGF0ZTphLGRpc3BhdGNoOnN9KT0+e2xldCBuPW51bGwsbz1udWxsLGw9bXcodHlwZW9mIHQ9PSJzdHJpbmciP3Q6dC5uYW1lLGEuc2NoZW1hKTtyZXR1cm4gbD8obD09PSJub2RlIiYmKG49JHModCxhLnNjaGVtYSkpLGw9PT0ibWFyayImJihvPWZkKHQsYS5zY2hlbWEpKSxzJiZyLnNlbGVjdGlvbi5yYW5nZXMuZm9yRWFjaChjPT57bGV0IGQ9Yy4kZnJvbS5wb3MsZj1jLiR0by5wb3MscCxoLG0sdjtyLnNlbGVjdGlvbi5lbXB0eT9hLmRvYy5ub2Rlc0JldHdlZW4oZCxmLChiLGcpPT57biYmbj09PWIudHlwZSYmKG09TWF0aC5tYXgoZyxkKSx2PU1hdGgubWluKGcrYi5ub2RlU2l6ZSxmKSxwPWcsaD1iKX0pOmEuZG9jLm5vZGVzQmV0d2VlbihkLGYsKGIsZyk9PntnPGQmJm4mJm49PT1iLnR5cGUmJihtPU1hdGgubWF4KGcsZCksdj1NYXRoLm1pbihnK2Iubm9kZVNpemUsZikscD1nLGg9YiksZz49ZCYmZzw9ZiYmKG4mJm49PT1iLnR5cGUmJnIuc2V0Tm9kZU1hcmt1cChnLHZvaWQgMCx7Li4uYi5hdHRycywuLi5lfSksbyYmYi5tYXJrcy5sZW5ndGgmJmIubWFya3MuZm9yRWFjaCh5PT57aWYobz09PXkudHlwZSl7bGV0IGs9TWF0aC5tYXgoZyxkKSxNPU1hdGgubWluKGcrYi5ub2RlU2l6ZSxmKTtyLmFkZE1hcmsoayxNLG8uY3JlYXRlKHsuLi55LmF0dHJzLC4uLmV9KSl9fSkpfSksaCYmKHAhPT12b2lkIDAmJnIuc2V0Tm9kZU1hcmt1cChwLHZvaWQgMCx7Li4uaC5hdHRycywuLi5lfSksbyYmaC5tYXJrcy5sZW5ndGgmJmgubWFya3MuZm9yRWFjaChiPT57bz09PWIudHlwZSYmci5hZGRNYXJrKG0sdixvLmNyZWF0ZSh7Li4uYi5hdHRycywuLi5lfSkpfSkpfSksITApOiExfSwidXBkYXRlQXR0cmlidXRlcyIpLGNSYT1pKCh0LGU9e30pPT4oe3N0YXRlOnIsZGlzcGF0Y2g6YX0pPT57bGV0IHM9JHModCxyLnNjaGVtYSk7cmV0dXJuIHg1dChzLGUpKHIsYSl9LCJ3cmFwSW4iKSxkUmE9aSgodCxlPXt9KT0+KHtzdGF0ZTpyLGRpc3BhdGNoOmF9KT0+e2xldCBzPSRzKHQsci5zY2hlbWEpO3JldHVybiB5NXQocyxlKShyLGEpfSwid3JhcEluTGlzdCIpLHVSYT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxibHVyOmFPYSxjbGVhckNvbnRlbnQ6aU9hLGNsZWFyTm9kZXM6c09hLGNvbW1hbmQ6bk9hLGNyZWF0ZVBhcmFncmFwaE5lYXI6b09hLGN1dDpsT2EsZGVsZXRlQ3VycmVudE5vZGU6Y09hLGRlbGV0ZU5vZGU6ZE9hLGRlbGV0ZVJhbmdlOnVPYSxkZWxldGVTZWxlY3Rpb246cE9hLGVudGVyOmZPYSxleGl0Q29kZTpoT2EsZXh0ZW5kTWFya1JhbmdlOm1PYSxmaXJzdDpnT2EsZm9jdXM6Yk9hLGZvckVhY2g6eE9hLGluc2VydENvbnRlbnQ6dk9hLGluc2VydENvbnRlbnRBdDp3T2Esam9pbkJhY2t3YXJkOk1PYSxqb2luRG93bjpTT2Esam9pbkZvcndhcmQ6Q09hLGpvaW5JdGVtQmFja3dhcmQ6ek9hLGpvaW5JdGVtRm9yd2FyZDpfT2Esam9pblRleHRibG9ja0JhY2t3YXJkOlRPYSxqb2luVGV4dGJsb2NrRm9yd2FyZDpMT2Esam9pblVwOmtPYSxrZXlib2FyZFNob3J0Y3V0OiRPYSxsaWZ0OkFPYSxsaWZ0RW1wdHlCbG9jazpFT2EsbGlmdExpc3RJdGVtOklPYSxuZXdsaW5lSW5Db2RlOlBPYSxyZXNldEF0dHJpYnV0ZXM6Tk9hLHNjcm9sbEludG9WaWV3Ok9PYSxzZWxlY3RBbGw6Uk9hLHNlbGVjdE5vZGVCYWNrd2FyZDpGT2Esc2VsZWN0Tm9kZUZvcndhcmQ6Qk9hLHNlbGVjdFBhcmVudE5vZGU6SE9hLHNlbGVjdFRleHRibG9ja0VuZDpxT2Esc2VsZWN0VGV4dGJsb2NrU3RhcnQ6Vk9hLHNldENvbnRlbnQ6ak9hLHNldE1hcms6R09hLHNldE1ldGE6WU9hLHNldE5vZGU6S09hLHNldE5vZGVTZWxlY3Rpb246Wk9hLHNldFRleHRTZWxlY3Rpb246UU9hLHNpbmtMaXN0SXRlbTpYT2Esc3BsaXRCbG9jazpKT2Esc3BsaXRMaXN0SXRlbTplUmEsdG9nZ2xlTGlzdDp0UmEsdG9nZ2xlTWFyazpyUmEsdG9nZ2xlTm9kZTphUmEsdG9nZ2xlV3JhcDppUmEsdW5kb0lucHV0UnVsZTpzUmEsdW5zZXRBbGxNYXJrczpuUmEsdW5zZXRNYXJrOm9SYSx1cGRhdGVBdHRyaWJ1dGVzOmxSYSx3cmFwSW46Y1JhLHdyYXBJbkxpc3Q6ZFJhfSksbVlyPWtpLmNyZWF0ZSh7bmFtZToiY29tbWFuZHMiLGFkZENvbW1hbmRzKCl7cmV0dXJuey4uLnVSYX19fSksZ1lyPWtpLmNyZWF0ZSh7bmFtZToiZHJvcCIsYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW25ldyBRYSh7a2V5Om5ldyBMcygidGlwdGFwRHJvcCIpLHByb3BzOntoYW5kbGVEcm9wOmkoKHQsZSxyLGEpPT57dGhpcy5lZGl0b3IuZW1pdCgiZHJvcCIse2VkaXRvcjp0aGlzLmVkaXRvcixldmVudDplLHNsaWNlOnIsbW92ZWQ6YX0pfSwiaGFuZGxlRHJvcCIpfX0pXX19KSxiWXI9a2kuY3JlYXRlKHtuYW1lOiJlZGl0YWJsZSIsYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW25ldyBRYSh7a2V5Om5ldyBMcygiZWRpdGFibGUiKSxwcm9wczp7ZWRpdGFibGU6aSgoKT0+dGhpcy5lZGl0b3Iub3B0aW9ucy5lZGl0YWJsZSwiZWRpdGFibGUiKX19KV19fSkseFlyPW5ldyBMcygiZm9jdXNFdmVudHMiKSx2WXI9a2kuY3JlYXRlKHtuYW1lOiJmb2N1c0V2ZW50cyIsYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7bGV0e2VkaXRvcjp0fT10aGlzO3JldHVybltuZXcgUWEoe2tleTp4WXIscHJvcHM6e2hhbmRsZURPTUV2ZW50czp7Zm9jdXM6aSgoZSxyKT0+e3QuaXNGb2N1c2VkPSEwO2xldCBhPXQuc3RhdGUudHIuc2V0TWV0YSgiZm9jdXMiLHtldmVudDpyfSkuc2V0TWV0YSgiYWRkVG9IaXN0b3J5IiwhMSk7cmV0dXJuIGUuZGlzcGF0Y2goYSksITF9LCJmb2N1cyIpLGJsdXI6aSgoZSxyKT0+e3QuaXNGb2N1c2VkPSExO2xldCBhPXQuc3RhdGUudHIuc2V0TWV0YSgiYmx1ciIse2V2ZW50OnJ9KS5zZXRNZXRhKCJhZGRUb0hpc3RvcnkiLCExKTtyZXR1cm4gZS5kaXNwYXRjaChhKSwhMX0sImJsdXIiKX19fSldfX0pLHlZcj1raS5jcmVhdGUoe25hbWU6ImtleW1hcCIsYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtsZXQgdD1pKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5maXJzdCgoe2NvbW1hbmRzOm99KT0+WygpPT5vLnVuZG9JbnB1dFJ1bGUoKSwoKT0+by5jb21tYW5kKCh7dHI6bH0pPT57bGV0e3NlbGVjdGlvbjpjLGRvYzpkfT1sLHtlbXB0eTpmLCRhbmNob3I6cH09Yyx7cG9zOmgscGFyZW50Om19PXAsdj1wLnBhcmVudC5pc1RleHRibG9jayYmaD4wP2wuZG9jLnJlc29sdmUoaC0xKTpwLGI9di5wYXJlbnQudHlwZS5zcGVjLmlzb2xhdGluZyxnPXAucG9zLXAucGFyZW50T2Zmc2V0LHk9YiYmdi5wYXJlbnQuY2hpbGRDb3VudD09PTE/Zz09PXAucG9zOkp0LmF0U3RhcnQoZCkuZnJvbT09PWg7cmV0dXJuIWZ8fCFtLnR5cGUuaXNUZXh0YmxvY2t8fG0udGV4dENvbnRlbnQubGVuZ3RofHwheXx8eSYmcC5wYXJlbnQudHlwZS5uYW1lPT09InBhcmFncmFwaCI/ITE6by5jbGVhck5vZGVzKCl9KSwoKT0+by5kZWxldGVTZWxlY3Rpb24oKSwoKT0+by5qb2luQmFja3dhcmQoKSwoKT0+by5zZWxlY3ROb2RlQmFja3dhcmQoKV0pLCJoYW5kbGVCYWNrc3BhY2UiKSxlPWkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLmZpcnN0KCh7Y29tbWFuZHM6b30pPT5bKCk9Pm8uZGVsZXRlU2VsZWN0aW9uKCksKCk9Pm8uZGVsZXRlQ3VycmVudE5vZGUoKSwoKT0+by5qb2luRm9yd2FyZCgpLCgpPT5vLnNlbGVjdE5vZGVGb3J3YXJkKCldKSwiaGFuZGxlRGVsZXRlIiksYT17RW50ZXI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuZmlyc3QoKHtjb21tYW5kczpvfSk9PlsoKT0+by5uZXdsaW5lSW5Db2RlKCksKCk9Pm8uY3JlYXRlUGFyYWdyYXBoTmVhcigpLCgpPT5vLmxpZnRFbXB0eUJsb2NrKCksKCk9Pm8uc3BsaXRCbG9jaygpXSksImhhbmRsZUVudGVyIiksIk1vZC1FbnRlciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuZXhpdENvZGUoKSwiTW9kLUVudGVyIiksQmFja3NwYWNlOnQsIk1vZC1CYWNrc3BhY2UiOnQsIlNoaWZ0LUJhY2tzcGFjZSI6dCxEZWxldGU6ZSwiTW9kLURlbGV0ZSI6ZSwiTW9kLWEiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNlbGVjdEFsbCgpLCJNb2QtYSIpfSxzPXsuLi5hfSxuPXsuLi5hLCJDdHJsLWgiOnQsIkFsdC1CYWNrc3BhY2UiOnQsIkN0cmwtZCI6ZSwiQ3RybC1BbHQtQmFja3NwYWNlIjplLCJBbHQtRGVsZXRlIjplLCJBbHQtZCI6ZSwiQ3RybC1hIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zZWxlY3RUZXh0YmxvY2tTdGFydCgpLCJDdHJsLWEiKSwiQ3RybC1lIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zZWxlY3RUZXh0YmxvY2tFbmQoKSwiQ3RybC1lIil9O3JldHVybiBXOSgpfHxuaGUoKT9uOnN9LGFkZFByb3NlTWlycm9yUGx1Z2lucygpe3JldHVybltuZXcgUWEoe2tleTpuZXcgTHMoImNsZWFyRG9jdW1lbnQiKSxhcHBlbmRUcmFuc2FjdGlvbjppKCh0LGUscik9PntpZih0LnNvbWUoYj0+Yi5nZXRNZXRhKCJjb21wb3NpdGlvbiIpKSlyZXR1cm47bGV0IGE9dC5zb21lKGI9PmIuZG9jQ2hhbmdlZCkmJiFlLmRvYy5lcShyLmRvYykscz10LnNvbWUoYj0+Yi5nZXRNZXRhKCJwcmV2ZW50Q2xlYXJEb2N1bWVudCIpKTtpZighYXx8cylyZXR1cm47bGV0e2VtcHR5Om4sZnJvbTpvLHRvOmx9PWUuc2VsZWN0aW9uLGM9SnQuYXRTdGFydChlLmRvYykuZnJvbSxkPUp0LmF0RW5kKGUuZG9jKS50bztpZihufHwhKG89PT1jJiZsPT09ZCl8fCFlcmUoci5kb2MpKXJldHVybjtsZXQgaD1yLnRyLG09Y3coe3N0YXRlOnIsdHJhbnNhY3Rpb246aH0pLHtjb21tYW5kczp2fT1uZXcgSnAoe2VkaXRvcjp0aGlzLmVkaXRvcixzdGF0ZTptfSk7aWYodi5jbGVhck5vZGVzKCksISFoLnN0ZXBzLmxlbmd0aClyZXR1cm4gaH0sImFwcGVuZFRyYW5zYWN0aW9uIil9KV19fSksd1lyPWtpLmNyZWF0ZSh7bmFtZToicGFzdGUiLGFkZFByb3NlTWlycm9yUGx1Z2lucygpe3JldHVybltuZXcgUWEoe2tleTpuZXcgTHMoInRpcHRhcFBhc3RlIikscHJvcHM6e2hhbmRsZVBhc3RlOmkoKHQsZSxyKT0+e3RoaXMuZWRpdG9yLmVtaXQoInBhc3RlIix7ZWRpdG9yOnRoaXMuZWRpdG9yLGV2ZW50OmUsc2xpY2U6cn0pfSwiaGFuZGxlUGFzdGUiKX19KV19fSksa1lyPWtpLmNyZWF0ZSh7bmFtZToidGFiaW5kZXgiLGFkZFByb3NlTWlycm9yUGx1Z2lucygpe3JldHVybltuZXcgUWEoe2tleTpuZXcgTHMoInRhYmluZGV4IikscHJvcHM6e2F0dHJpYnV0ZXM6aSgoKT0+dGhpcy5lZGl0b3IuaXNFZGl0YWJsZT97dGFiaW5kZXg6IjAifTp7fSwiYXR0cmlidXRlcyIpfX0pXX19KSxBWXI9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQ2xpcGJvYXJkVGV4dFNlcmlhbGl6ZXI6Y1lyLENvbW1hbmRzOm1ZcixEcm9wOmdZcixFZGl0YWJsZTpiWXIsRm9jdXNFdmVudHM6dllyLEtleW1hcDp5WXIsUGFzdGU6d1lyLFRhYmluZGV4OmtZcixmb2N1c0V2ZW50c1BsdWdpbktleTp4WXJ9KSx0cmU9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJOb2RlUG9zIil9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5ub2RlLnR5cGUubmFtZX1jb25zdHJ1Y3RvcihlLHIsYT0hMSxzPW51bGwpe3RoaXMuY3VycmVudE5vZGU9bnVsbCx0aGlzLmFjdHVhbERlcHRoPW51bGwsdGhpcy5pc0Jsb2NrPWEsdGhpcy5yZXNvbHZlZFBvcz1lLHRoaXMuZWRpdG9yPXIsdGhpcy5jdXJyZW50Tm9kZT1zfWdldCBub2RlKCl7cmV0dXJuIHRoaXMuY3VycmVudE5vZGV8fHRoaXMucmVzb2x2ZWRQb3Mubm9kZSgpfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuZWRpdG9yLnZpZXcuZG9tQXRQb3ModGhpcy5wb3MpLm5vZGV9Z2V0IGRlcHRoKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5hY3R1YWxEZXB0aCkhPT1udWxsJiZlIT09dm9pZCAwP2U6dGhpcy5yZXNvbHZlZFBvcy5kZXB0aH1nZXQgcG9zKCl7cmV0dXJuIHRoaXMucmVzb2x2ZWRQb3MucG9zfWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMubm9kZS5jb250ZW50fXNldCBjb250ZW50KGUpe2xldCByPXRoaXMuZnJvbSxhPXRoaXMudG87aWYodGhpcy5pc0Jsb2NrKXtpZih0aGlzLmNvbnRlbnQuc2l6ZT09PTApe2NvbnNvbGUuZXJyb3IoYFlvdSBjYW5cdTIwMTl0IHNldCBjb250ZW50IG9uIGEgYmxvY2sgbm9kZS4gVHJpZWQgdG8gc2V0IGNvbnRlbnQgb24gJHt0aGlzLm5hbWV9IGF0ICR7dGhpcy5wb3N9YCk7cmV0dXJufXI9dGhpcy5mcm9tKzEsYT10aGlzLnRvLTF9dGhpcy5lZGl0b3IuY29tbWFuZHMuaW5zZXJ0Q29udGVudEF0KHtmcm9tOnIsdG86YX0sZSl9Z2V0IGF0dHJpYnV0ZXMoKXtyZXR1cm4gdGhpcy5ub2RlLmF0dHJzfWdldCB0ZXh0Q29udGVudCgpe3JldHVybiB0aGlzLm5vZGUudGV4dENvbnRlbnR9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5ub2RlLm5vZGVTaXplfWdldCBmcm9tKCl7cmV0dXJuIHRoaXMuaXNCbG9jaz90aGlzLnBvczp0aGlzLnJlc29sdmVkUG9zLnN0YXJ0KHRoaXMucmVzb2x2ZWRQb3MuZGVwdGgpfWdldCByYW5nZSgpe3JldHVybntmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfX1nZXQgdG8oKXtyZXR1cm4gdGhpcy5pc0Jsb2NrP3RoaXMucG9zK3RoaXMuc2l6ZTp0aGlzLnJlc29sdmVkUG9zLmVuZCh0aGlzLnJlc29sdmVkUG9zLmRlcHRoKSsodGhpcy5ub2RlLmlzVGV4dD8wOjEpfWdldCBwYXJlbnQoKXtpZih0aGlzLmRlcHRoPT09MClyZXR1cm4gbnVsbDtsZXQgZT10aGlzLnJlc29sdmVkUG9zLnN0YXJ0KHRoaXMucmVzb2x2ZWRQb3MuZGVwdGgtMSkscj10aGlzLnJlc29sdmVkUG9zLmRvYy5yZXNvbHZlKGUpO3JldHVybiBuZXcgdChyLHRoaXMuZWRpdG9yKX1nZXQgYmVmb3JlKCl7bGV0IGU9dGhpcy5yZXNvbHZlZFBvcy5kb2MucmVzb2x2ZSh0aGlzLmZyb20tKHRoaXMuaXNCbG9jaz8xOjIpKTtyZXR1cm4gZS5kZXB0aCE9PXRoaXMuZGVwdGgmJihlPXRoaXMucmVzb2x2ZWRQb3MuZG9jLnJlc29sdmUodGhpcy5mcm9tLTMpKSxuZXcgdChlLHRoaXMuZWRpdG9yKX1nZXQgYWZ0ZXIoKXtsZXQgZT10aGlzLnJlc29sdmVkUG9zLmRvYy5yZXNvbHZlKHRoaXMudG8rKHRoaXMuaXNCbG9jaz8yOjEpKTtyZXR1cm4gZS5kZXB0aCE9PXRoaXMuZGVwdGgmJihlPXRoaXMucmVzb2x2ZWRQb3MuZG9jLnJlc29sdmUodGhpcy50byszKSksbmV3IHQoZSx0aGlzLmVkaXRvcil9Z2V0IGNoaWxkcmVuKCl7bGV0IGU9W107cmV0dXJuIHRoaXMubm9kZS5jb250ZW50LmZvckVhY2goKHIsYSk9PntsZXQgcz1yLmlzQmxvY2smJiFyLmlzVGV4dGJsb2NrLG49ci5pc0F0b20mJiFyLmlzVGV4dCxvPXRoaXMucG9zK2ErKG4/MDoxKTtpZihvPDB8fG8+dGhpcy5yZXNvbHZlZFBvcy5kb2Mubm9kZVNpemUtMilyZXR1cm47bGV0IGw9dGhpcy5yZXNvbHZlZFBvcy5kb2MucmVzb2x2ZShvKTtpZighcyYmbC5kZXB0aDw9dGhpcy5kZXB0aClyZXR1cm47bGV0IGM9bmV3IHQobCx0aGlzLmVkaXRvcixzLHM/cjpudWxsKTtzJiYoYy5hY3R1YWxEZXB0aD10aGlzLmRlcHRoKzEpLGUucHVzaChuZXcgdChsLHRoaXMuZWRpdG9yLHMscz9yOm51bGwpKX0pLGV9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jaGlsZHJlblswXXx8bnVsbH1nZXQgbGFzdENoaWxkKCl7bGV0IGU9dGhpcy5jaGlsZHJlbjtyZXR1cm4gZVtlLmxlbmd0aC0xXXx8bnVsbH1jbG9zZXN0KGUscj17fSl7bGV0IGE9bnVsbCxzPXRoaXMucGFyZW50O2Zvcig7cyYmIWE7KXtpZihzLm5vZGUudHlwZS5uYW1lPT09ZSlpZihPYmplY3Qua2V5cyhyKS5sZW5ndGg+MCl7bGV0IG49cy5ub2RlLmF0dHJzLG89T2JqZWN0LmtleXMocik7Zm9yKGxldCBsPTA7bDxvLmxlbmd0aDtsKz0xKXtsZXQgYz1vW2xdO2lmKG5bY10hPT1yW2NdKWJyZWFrfX1lbHNlIGE9cztzPXMucGFyZW50fXJldHVybiBhfXF1ZXJ5U2VsZWN0b3IoZSxyPXt9KXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKGUsciwhMClbMF18fG51bGx9cXVlcnlTZWxlY3RvckFsbChlLHI9e30sYT0hMSl7bGV0IHM9W107aWYoIXRoaXMuY2hpbGRyZW58fHRoaXMuY2hpbGRyZW4ubGVuZ3RoPT09MClyZXR1cm4gcztsZXQgbj1PYmplY3Qua2V5cyhyKTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5mb3JFYWNoKG89PnthJiZzLmxlbmd0aD4wfHwoby5ub2RlLnR5cGUubmFtZT09PWUmJm4uZXZlcnkoYz0+cltjXT09PW8ubm9kZS5hdHRyc1tjXSkmJnMucHVzaChvKSwhKGEmJnMubGVuZ3RoPjApJiYocz1zLmNvbmNhdChvLnF1ZXJ5U2VsZWN0b3JBbGwoZSxyLGEpKSkpfSksc31zZXRBdHRyaWJ1dGUoZSl7bGV0e3RyOnJ9PXRoaXMuZWRpdG9yLnN0YXRlO3Iuc2V0Tm9kZU1hcmt1cCh0aGlzLmZyb20sdm9pZCAwLHsuLi50aGlzLm5vZGUuYXR0cnMsLi4uZX0pLHRoaXMuZWRpdG9yLnZpZXcuZGlzcGF0Y2gocil9fSxwUmE9YC5Qcm9zZU1pcnJvciB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouUHJvc2VNaXJyb3IgewogIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAtd2Via2l0LWZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vbmU7CiAgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9uZTsKICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICJsaWdhIiAwOyAvKiB0aGUgYWJvdmUgZG9lc24ndCBzZWVtIHRvIHdvcmsgaW4gRWRnZSAqLwp9CgouUHJvc2VNaXJyb3IgW2NvbnRlbnRlZGl0YWJsZT0iZmFsc2UiXSB7CiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKfQoKLlByb3NlTWlycm9yIFtjb250ZW50ZWRpdGFibGU9ImZhbHNlIl0gW2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSJdIHsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Cn0KCi5Qcm9zZU1pcnJvciBwcmUgewogIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKfQoKaW1nLlByb3NlTWlycm9yLXNlcGFyYXRvciB7CiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgd2lkdGg6IDAgIWltcG9ydGFudDsKICBoZWlnaHQ6IDAgIWltcG9ydGFudDsKfQoKLlByb3NlTWlycm9yLWdhcGN1cnNvciB7CiAgZGlzcGxheTogbm9uZTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgbWFyZ2luOiAwOwp9CgouUHJvc2VNaXJyb3ItZ2FwY3Vyc29yOmFmdGVyIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiBibG9jazsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAtMnB4OwogIHdpZHRoOiAyMHB4OwogIGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjazsKICBhbmltYXRpb246IFByb3NlTWlycm9yLWN1cnNvci1ibGluayAxLjFzIHN0ZXBzKDIsIHN0YXJ0KSBpbmZpbml0ZTsKfQoKQGtleWZyYW1lcyBQcm9zZU1pcnJvci1jdXJzb3ItYmxpbmsgewogIHRvIHsKICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICB9Cn0KCi5Qcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uICo6OnNlbGVjdGlvbiB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCi5Qcm9zZU1pcnJvci1oaWRlc2VsZWN0aW9uICo6Oi1tb3otc2VsZWN0aW9uIHsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQoKLlByb3NlTWlycm9yLWhpZGVzZWxlY3Rpb24gKiB7CiAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50Owp9CgouUHJvc2VNaXJyb3ItZm9jdXNlZCAuUHJvc2VNaXJyb3ItZ2FwY3Vyc29yIHsKICBkaXNwbGF5OiBibG9jazsKfQoKLnRpcHB5LWJveFtkYXRhLWFuaW1hdGlvbj1mYWRlXVtkYXRhLXN0YXRlPWhpZGRlbl0gewogIG9wYWNpdHk6IDAKfWA7aShxNXQsImNyZWF0ZVN0eWxlVGFnIik7dWhlPWNsYXNzIGV4dGVuZHMgUzV0e3N0YXRpY3tpKHRoaXMsIkVkaXRvciIpfWNvbnN0cnVjdG9yKGU9e30pe3N1cGVyKCksdGhpcy5pc0ZvY3VzZWQ9ITEsdGhpcy5pc0luaXRpYWxpemVkPSExLHRoaXMuZXh0ZW5zaW9uU3RvcmFnZT17fSx0aGlzLm9wdGlvbnM9e2VsZW1lbnQ6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksY29udGVudDoiIixpbmplY3RDU1M6ITAsaW5qZWN0Tm9uY2U6dm9pZCAwLGV4dGVuc2lvbnM6W10sYXV0b2ZvY3VzOiExLGVkaXRhYmxlOiEwLGVkaXRvclByb3BzOnt9LHBhcnNlT3B0aW9uczp7fSxjb3JlRXh0ZW5zaW9uT3B0aW9uczp7fSxlbmFibGVJbnB1dFJ1bGVzOiEwLGVuYWJsZVBhc3RlUnVsZXM6ITAsZW5hYmxlQ29yZUV4dGVuc2lvbnM6ITAsZW5hYmxlQ29udGVudENoZWNrOiExLGVtaXRDb250ZW50RXJyb3I6ITEsb25CZWZvcmVDcmVhdGU6aSgoKT0+bnVsbCwib25CZWZvcmVDcmVhdGUiKSxvbkNyZWF0ZTppKCgpPT5udWxsLCJvbkNyZWF0ZSIpLG9uVXBkYXRlOmkoKCk9Pm51bGwsIm9uVXBkYXRlIiksb25TZWxlY3Rpb25VcGRhdGU6aSgoKT0+bnVsbCwib25TZWxlY3Rpb25VcGRhdGUiKSxvblRyYW5zYWN0aW9uOmkoKCk9Pm51bGwsIm9uVHJhbnNhY3Rpb24iKSxvbkZvY3VzOmkoKCk9Pm51bGwsIm9uRm9jdXMiKSxvbkJsdXI6aSgoKT0+bnVsbCwib25CbHVyIiksb25EZXN0cm95OmkoKCk9Pm51bGwsIm9uRGVzdHJveSIpLG9uQ29udGVudEVycm9yOmkoKHtlcnJvcjpyfSk9Pnt0aHJvdyByfSwib25Db250ZW50RXJyb3IiKSxvblBhc3RlOmkoKCk9Pm51bGwsIm9uUGFzdGUiKSxvbkRyb3A6aSgoKT0+bnVsbCwib25Ecm9wIil9LHRoaXMuaXNDYXB0dXJpbmdUcmFuc2FjdGlvbj0hMSx0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb249bnVsbCx0aGlzLnNldE9wdGlvbnMoZSksdGhpcy5jcmVhdGVFeHRlbnNpb25NYW5hZ2VyKCksdGhpcy5jcmVhdGVDb21tYW5kTWFuYWdlcigpLHRoaXMuY3JlYXRlU2NoZW1hKCksdGhpcy5vbigiYmVmb3JlQ3JlYXRlIix0aGlzLm9wdGlvbnMub25CZWZvcmVDcmVhdGUpLHRoaXMuZW1pdCgiYmVmb3JlQ3JlYXRlIix7ZWRpdG9yOnRoaXN9KSx0aGlzLm9uKCJjb250ZW50RXJyb3IiLHRoaXMub3B0aW9ucy5vbkNvbnRlbnRFcnJvciksdGhpcy5jcmVhdGVWaWV3KCksdGhpcy5pbmplY3RDU1MoKSx0aGlzLm9uKCJjcmVhdGUiLHRoaXMub3B0aW9ucy5vbkNyZWF0ZSksdGhpcy5vbigidXBkYXRlIix0aGlzLm9wdGlvbnMub25VcGRhdGUpLHRoaXMub24oInNlbGVjdGlvblVwZGF0ZSIsdGhpcy5vcHRpb25zLm9uU2VsZWN0aW9uVXBkYXRlKSx0aGlzLm9uKCJ0cmFuc2FjdGlvbiIsdGhpcy5vcHRpb25zLm9uVHJhbnNhY3Rpb24pLHRoaXMub24oImZvY3VzIix0aGlzLm9wdGlvbnMub25Gb2N1cyksdGhpcy5vbigiYmx1ciIsdGhpcy5vcHRpb25zLm9uQmx1ciksdGhpcy5vbigiZGVzdHJveSIsdGhpcy5vcHRpb25zLm9uRGVzdHJveSksdGhpcy5vbigiZHJvcCIsKHtldmVudDpyLHNsaWNlOmEsbW92ZWQ6c30pPT50aGlzLm9wdGlvbnMub25Ecm9wKHIsYSxzKSksdGhpcy5vbigicGFzdGUiLCh7ZXZlbnQ6cixzbGljZTphfSk9PnRoaXMub3B0aW9ucy5vblBhc3RlKHIsYSkpLHdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dGhpcy5pc0Rlc3Ryb3llZHx8KHRoaXMuY29tbWFuZHMuZm9jdXModGhpcy5vcHRpb25zLmF1dG9mb2N1cyksdGhpcy5lbWl0KCJjcmVhdGUiLHtlZGl0b3I6dGhpc30pLHRoaXMuaXNJbml0aWFsaXplZD0hMCl9LDApfWdldCBzdG9yYWdlKCl7cmV0dXJuIHRoaXMuZXh0ZW5zaW9uU3RvcmFnZX1nZXQgY29tbWFuZHMoKXtyZXR1cm4gdGhpcy5jb21tYW5kTWFuYWdlci5jb21tYW5kc31jaGFpbigpe3JldHVybiB0aGlzLmNvbW1hbmRNYW5hZ2VyLmNoYWluKCl9Y2FuKCl7cmV0dXJuIHRoaXMuY29tbWFuZE1hbmFnZXIuY2FuKCl9aW5qZWN0Q1NTKCl7dGhpcy5vcHRpb25zLmluamVjdENTUyYmZG9jdW1lbnQmJih0aGlzLmNzcz1xNXQocFJhLHRoaXMub3B0aW9ucy5pbmplY3ROb25jZSkpfXNldE9wdGlvbnMoZT17fSl7dGhpcy5vcHRpb25zPXsuLi50aGlzLm9wdGlvbnMsLi4uZX0sISghdGhpcy52aWV3fHwhdGhpcy5zdGF0ZXx8dGhpcy5pc0Rlc3Ryb3llZCkmJih0aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMmJnRoaXMudmlldy5zZXRQcm9wcyh0aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMpLHRoaXMudmlldy51cGRhdGVTdGF0ZSh0aGlzLnN0YXRlKSl9c2V0RWRpdGFibGUoZSxyPSEwKXt0aGlzLnNldE9wdGlvbnMoe2VkaXRhYmxlOmV9KSxyJiZ0aGlzLmVtaXQoInVwZGF0ZSIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOnRoaXMuc3RhdGUudHJ9KX1nZXQgaXNFZGl0YWJsZSgpe3JldHVybiB0aGlzLm9wdGlvbnMuZWRpdGFibGUmJnRoaXMudmlldyYmdGhpcy52aWV3LmVkaXRhYmxlfWdldCBzdGF0ZSgpe3JldHVybiB0aGlzLnZpZXcuc3RhdGV9cmVnaXN0ZXJQbHVnaW4oZSxyKXtsZXQgYT1KZmUocik/cihlLFsuLi50aGlzLnN0YXRlLnBsdWdpbnNdKTpbLi4udGhpcy5zdGF0ZS5wbHVnaW5zLGVdLHM9dGhpcy5zdGF0ZS5yZWNvbmZpZ3VyZSh7cGx1Z2luczphfSk7cmV0dXJuIHRoaXMudmlldy51cGRhdGVTdGF0ZShzKSxzfXVucmVnaXN0ZXJQbHVnaW4oZSl7aWYodGhpcy5pc0Rlc3Ryb3llZClyZXR1cm47bGV0IHI9dGhpcy5zdGF0ZS5wbHVnaW5zLGE9cjtpZihbXS5jb25jYXQoZSkuZm9yRWFjaChuPT57bGV0IG89dHlwZW9mIG49PSJzdHJpbmciP2Ake259JGA6bi5rZXk7YT1hLmZpbHRlcihsPT4hbC5rZXkuc3RhcnRzV2l0aChvKSl9KSxyLmxlbmd0aD09PWEubGVuZ3RoKXJldHVybjtsZXQgcz10aGlzLnN0YXRlLnJlY29uZmlndXJlKHtwbHVnaW5zOmF9KTtyZXR1cm4gdGhpcy52aWV3LnVwZGF0ZVN0YXRlKHMpLHN9Y3JlYXRlRXh0ZW5zaW9uTWFuYWdlcigpe3ZhciBlLHI7bGV0IHM9Wy4uLnRoaXMub3B0aW9ucy5lbmFibGVDb3JlRXh0ZW5zaW9ucz9bYllyLGNZci5jb25maWd1cmUoe2Jsb2NrU2VwYXJhdG9yOihyPShlPXRoaXMub3B0aW9ucy5jb3JlRXh0ZW5zaW9uT3B0aW9ucyk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLmNsaXBib2FyZFRleHRTZXJpYWxpemVyKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuYmxvY2tTZXBhcmF0b3J9KSxtWXIsdllyLHlZcixrWXIsZ1lyLHdZcl0uZmlsdGVyKG49PnR5cGVvZiB0aGlzLm9wdGlvbnMuZW5hYmxlQ29yZUV4dGVuc2lvbnM9PSJvYmplY3QiP3RoaXMub3B0aW9ucy5lbmFibGVDb3JlRXh0ZW5zaW9uc1tuLm5hbWVdIT09ITE6ITApOltdLC4uLnRoaXMub3B0aW9ucy5leHRlbnNpb25zXS5maWx0ZXIobj0+WyJleHRlbnNpb24iLCJub2RlIiwibWFyayJdLmluY2x1ZGVzKG4/LnR5cGUpKTt0aGlzLmV4dGVuc2lvbk1hbmFnZXI9bmV3IFFmZShzLHRoaXMpfWNyZWF0ZUNvbW1hbmRNYW5hZ2VyKCl7dGhpcy5jb21tYW5kTWFuYWdlcj1uZXcgSnAoe2VkaXRvcjp0aGlzfSl9Y3JlYXRlU2NoZW1hKCl7dGhpcy5zY2hlbWE9dGhpcy5leHRlbnNpb25NYW5hZ2VyLnNjaGVtYX1jcmVhdGVWaWV3KCl7dmFyIGU7bGV0IHI7dHJ5e3I9UXRlKHRoaXMub3B0aW9ucy5jb250ZW50LHRoaXMuc2NoZW1hLHRoaXMub3B0aW9ucy5wYXJzZU9wdGlvbnMse2Vycm9yT25JbnZhbGlkQ29udGVudDp0aGlzLm9wdGlvbnMuZW5hYmxlQ29udGVudENoZWNrfSl9Y2F0Y2gobyl7aWYoIShvIGluc3RhbmNlb2YgRXJyb3IpfHwhWyJbdGlwdGFwIGVycm9yXTogSW52YWxpZCBKU09OIGNvbnRlbnQiLCJbdGlwdGFwIGVycm9yXTogSW52YWxpZCBIVE1MIGNvbnRlbnQiXS5pbmNsdWRlcyhvLm1lc3NhZ2UpKXRocm93IG87dGhpcy5lbWl0KCJjb250ZW50RXJyb3IiLHtlZGl0b3I6dGhpcyxlcnJvcjpvLGRpc2FibGVDb2xsYWJvcmF0aW9uOmkoKCk9Pnt0aGlzLnN0b3JhZ2UuY29sbGFib3JhdGlvbiYmKHRoaXMuc3RvcmFnZS5jb2xsYWJvcmF0aW9uLmlzRGlzYWJsZWQ9ITApLHRoaXMub3B0aW9ucy5leHRlbnNpb25zPXRoaXMub3B0aW9ucy5leHRlbnNpb25zLmZpbHRlcihsPT5sLm5hbWUhPT0iY29sbGFib3JhdGlvbiIpLHRoaXMuY3JlYXRlRXh0ZW5zaW9uTWFuYWdlcigpfSwiZGlzYWJsZUNvbGxhYm9yYXRpb24iKX0pLHI9UXRlKHRoaXMub3B0aW9ucy5jb250ZW50LHRoaXMuc2NoZW1hLHRoaXMub3B0aW9ucy5wYXJzZU9wdGlvbnMse2Vycm9yT25JbnZhbGlkQ29udGVudDohMX0pfWxldCBhPXNoZShyLHRoaXMub3B0aW9ucy5hdXRvZm9jdXMpO3RoaXMudmlldz1uZXcgb3codGhpcy5vcHRpb25zLmVsZW1lbnQsey4uLnRoaXMub3B0aW9ucy5lZGl0b3JQcm9wcyxhdHRyaWJ1dGVzOntyb2xlOiJ0ZXh0Ym94IiwuLi4oZT10aGlzLm9wdGlvbnMuZWRpdG9yUHJvcHMpPT09bnVsbHx8ZT09PXZvaWQgMD92b2lkIDA6ZS5hdHRyaWJ1dGVzfSxkaXNwYXRjaFRyYW5zYWN0aW9uOnRoaXMuZGlzcGF0Y2hUcmFuc2FjdGlvbi5iaW5kKHRoaXMpLHN0YXRlOkl0ZS5jcmVhdGUoe2RvYzpyLHNlbGVjdGlvbjphfHx2b2lkIDB9KX0pO2xldCBzPXRoaXMuc3RhdGUucmVjb25maWd1cmUoe3BsdWdpbnM6dGhpcy5leHRlbnNpb25NYW5hZ2VyLnBsdWdpbnN9KTt0aGlzLnZpZXcudXBkYXRlU3RhdGUocyksdGhpcy5jcmVhdGVOb2RlVmlld3MoKSx0aGlzLnByZXBlbmRDbGFzcygpO2xldCBuPXRoaXMudmlldy5kb207bi5lZGl0b3I9dGhpc31jcmVhdGVOb2RlVmlld3MoKXt0aGlzLnZpZXcuaXNEZXN0cm95ZWR8fHRoaXMudmlldy5zZXRQcm9wcyh7bm9kZVZpZXdzOnRoaXMuZXh0ZW5zaW9uTWFuYWdlci5ub2RlVmlld3N9KX1wcmVwZW5kQ2xhc3MoKXt0aGlzLnZpZXcuZG9tLmNsYXNzTmFtZT1gdGlwdGFwICR7dGhpcy52aWV3LmRvbS5jbGFzc05hbWV9YH1jYXB0dXJlVHJhbnNhY3Rpb24oZSl7dGhpcy5pc0NhcHR1cmluZ1RyYW5zYWN0aW9uPSEwLGUoKSx0aGlzLmlzQ2FwdHVyaW5nVHJhbnNhY3Rpb249ITE7bGV0IHI9dGhpcy5jYXB0dXJlZFRyYW5zYWN0aW9uO3JldHVybiB0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb249bnVsbCxyfWRpc3BhdGNoVHJhbnNhY3Rpb24oZSl7aWYodGhpcy52aWV3LmlzRGVzdHJveWVkKXJldHVybjtpZih0aGlzLmlzQ2FwdHVyaW5nVHJhbnNhY3Rpb24pe2lmKCF0aGlzLmNhcHR1cmVkVHJhbnNhY3Rpb24pe3RoaXMuY2FwdHVyZWRUcmFuc2FjdGlvbj1lO3JldHVybn1lLnN0ZXBzLmZvckVhY2gobz0+e3ZhciBsO3JldHVybihsPXRoaXMuY2FwdHVyZWRUcmFuc2FjdGlvbik9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLnN0ZXAobyl9KTtyZXR1cm59bGV0IHI9dGhpcy5zdGF0ZS5hcHBseShlKSxhPSF0aGlzLnN0YXRlLnNlbGVjdGlvbi5lcShyLnNlbGVjdGlvbik7dGhpcy5lbWl0KCJiZWZvcmVUcmFuc2FjdGlvbiIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmUsbmV4dFN0YXRlOnJ9KSx0aGlzLnZpZXcudXBkYXRlU3RhdGUociksdGhpcy5lbWl0KCJ0cmFuc2FjdGlvbiIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmV9KSxhJiZ0aGlzLmVtaXQoInNlbGVjdGlvblVwZGF0ZSIse2VkaXRvcjp0aGlzLHRyYW5zYWN0aW9uOmV9KTtsZXQgcz1lLmdldE1ldGEoImZvY3VzIiksbj1lLmdldE1ldGEoImJsdXIiKTtzJiZ0aGlzLmVtaXQoImZvY3VzIix7ZWRpdG9yOnRoaXMsZXZlbnQ6cy5ldmVudCx0cmFuc2FjdGlvbjplfSksbiYmdGhpcy5lbWl0KCJibHVyIix7ZWRpdG9yOnRoaXMsZXZlbnQ6bi5ldmVudCx0cmFuc2FjdGlvbjplfSksISghZS5kb2NDaGFuZ2VkfHxlLmdldE1ldGEoInByZXZlbnRVcGRhdGUiKSkmJnRoaXMuZW1pdCgidXBkYXRlIix7ZWRpdG9yOnRoaXMsdHJhbnNhY3Rpb246ZX0pfWdldEF0dHJpYnV0ZXMoZSl7cmV0dXJuIHJyZSh0aGlzLnN0YXRlLGUpfWlzQWN0aXZlKGUscil7bGV0IGE9dHlwZW9mIGU9PSJzdHJpbmciP2U6bnVsbCxzPXR5cGVvZiBlPT0ic3RyaW5nIj9yOmU7cmV0dXJuIEg1dCh0aGlzLnN0YXRlLGEscyl9Z2V0SlNPTigpe3JldHVybiB0aGlzLnN0YXRlLmRvYy50b0pTT04oKX1nZXRIVE1MKCl7cmV0dXJuIHV3KHRoaXMuc3RhdGUuZG9jLmNvbnRlbnQsdGhpcy5zY2hlbWEpfWdldFRleHQoZSl7bGV0e2Jsb2NrU2VwYXJhdG9yOnI9YAoKYCx0ZXh0U2VyaWFsaXplcnM6YT17fX09ZXx8e307cmV0dXJuIGNoZSh0aGlzLnN0YXRlLmRvYyx7YmxvY2tTZXBhcmF0b3I6cix0ZXh0U2VyaWFsaXplcnM6ey4uLkt0ZSh0aGlzLnNjaGVtYSksLi4uYX19KX1nZXQgaXNFbXB0eSgpe3JldHVybiBlcmUodGhpcy5zdGF0ZS5kb2MpfWdldENoYXJhY3RlckNvdW50KCl7cmV0dXJuIGNvbnNvbGUud2FybignW3RpcHRhcCB3YXJuXTogImVkaXRvci5nZXRDaGFyYWN0ZXJDb3VudCgpIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJlZGl0b3Iuc3RvcmFnZS5jaGFyYWN0ZXJDb3VudC5jaGFyYWN0ZXJzKCkiIGluc3RlYWQuJyksdGhpcy5zdGF0ZS5kb2MuY29udGVudC5zaXplLTJ9ZGVzdHJveSgpe2lmKHRoaXMuZW1pdCgiZGVzdHJveSIpLHRoaXMudmlldyl7bGV0IGU9dGhpcy52aWV3LmRvbTtlJiZlLmVkaXRvciYmZGVsZXRlIGUuZWRpdG9yLHRoaXMudmlldy5kZXN0cm95KCl9dGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoKX1nZXQgaXNEZXN0cm95ZWQoKXt2YXIgZTtyZXR1cm4hKCEoKGU9dGhpcy52aWV3KT09PW51bGx8fGU9PT12b2lkIDApJiZlLmRvY1ZpZXcpfSRub2RlKGUscil7dmFyIGE7cmV0dXJuKChhPXRoaXMuJGRvYyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnF1ZXJ5U2VsZWN0b3IoZSxyKSl8fG51bGx9JG5vZGVzKGUscil7dmFyIGE7cmV0dXJuKChhPXRoaXMuJGRvYyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnF1ZXJ5U2VsZWN0b3JBbGwoZSxyKSl8fG51bGx9JHBvcyhlKXtsZXQgcj10aGlzLnN0YXRlLmRvYy5yZXNvbHZlKGUpO3JldHVybiBuZXcgdHJlKHIsdGhpcyl9Z2V0ICRkb2MoKXtyZXR1cm4gdGhpcy4kcG9zKDApfX07aShhMiwibWFya0lucHV0UnVsZSIpO2koeGhlLCJub2RlSW5wdXRSdWxlIik7aShaOSwidGV4dGJsb2NrVHlwZUlucHV0UnVsZSIpO2koZmksInRleHRJbnB1dFJ1bGUiKTtpKGhkLCJ3cmFwcGluZ0lucHV0UnVsZSIpO3RpPWNsYXNzIHR7c3RhdGlje2kodGhpcywiTm9kZSIpfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMudHlwZT0ibm9kZSIsdGhpcy5uYW1lPSJub2RlIix0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGQ9bnVsbCx0aGlzLmNvbmZpZz17bmFtZTp0aGlzLm5hbWUsZGVmYXVsdE9wdGlvbnM6e319LHRoaXMuY29uZmlnPXsuLi50aGlzLmNvbmZpZywuLi5lfSx0aGlzLm5hbWU9dGhpcy5jb25maWcubmFtZSxlLmRlZmF1bHRPcHRpb25zJiZPYmplY3Qua2V5cyhlLmRlZmF1bHRPcHRpb25zKS5sZW5ndGg+MCYmY29uc29sZS53YXJuKGBbdGlwdGFwIHdhcm5dOiBCUkVBS0lORyBDSEFOR0U6ICJkZWZhdWx0T3B0aW9ucyIgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSAiYWRkT3B0aW9ucyIgaW5zdGVhZC4gRm91bmQgaW4gZXh0ZW5zaW9uOiAiJHt0aGlzLm5hbWV9Ii5gKSx0aGlzLm9wdGlvbnM9dGhpcy5jb25maWcuZGVmYXVsdE9wdGlvbnMsdGhpcy5jb25maWcuYWRkT3B0aW9ucyYmKHRoaXMub3B0aW9ucz1wcihrdCh0aGlzLCJhZGRPcHRpb25zIix7bmFtZTp0aGlzLm5hbWV9KSkpLHRoaXMuc3RvcmFnZT1wcihrdCh0aGlzLCJhZGRTdG9yYWdlIix7bmFtZTp0aGlzLm5hbWUsb3B0aW9uczp0aGlzLm9wdGlvbnN9KSl8fHt9fXN0YXRpYyBjcmVhdGUoZT17fSl7cmV0dXJuIG5ldyB0KGUpfWNvbmZpZ3VyZShlPXt9KXtsZXQgcj10aGlzLmV4dGVuZCh7Li4udGhpcy5jb25maWcsYWRkT3B0aW9uczppKCgpPT5mdyh0aGlzLm9wdGlvbnMsZSksImFkZE9wdGlvbnMiKX0pO3JldHVybiByLm5hbWU9dGhpcy5uYW1lLHIucGFyZW50PXRoaXMucGFyZW50LHJ9ZXh0ZW5kKGU9e30pe2xldCByPW5ldyB0KGUpO3JldHVybiByLnBhcmVudD10aGlzLHRoaXMuY2hpbGQ9cixyLm5hbWU9ZS5uYW1lP2UubmFtZTpyLnBhcmVudC5uYW1lLGUuZGVmYXVsdE9wdGlvbnMmJk9iamVjdC5rZXlzKGUuZGVmYXVsdE9wdGlvbnMpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFt0aXB0YXAgd2Fybl06IEJSRUFLSU5HIENIQU5HRTogImRlZmF1bHRPcHRpb25zIiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICJhZGRPcHRpb25zIiBpbnN0ZWFkLiBGb3VuZCBpbiBleHRlbnNpb246ICIke3IubmFtZX0iLmApLHIub3B0aW9ucz1wcihrdChyLCJhZGRPcHRpb25zIix7bmFtZTpyLm5hbWV9KSksci5zdG9yYWdlPXByKGt0KHIsImFkZFN0b3JhZ2UiLHtuYW1lOnIubmFtZSxvcHRpb25zOnIub3B0aW9uc30pKSxyfX0scGhlPWNsYXNze3N0YXRpY3tpKHRoaXMsIk5vZGVWaWV3Iil9Y29uc3RydWN0b3IoZSxyLGEpe3RoaXMuaXNEcmFnZ2luZz0hMSx0aGlzLmNvbXBvbmVudD1lLHRoaXMuZWRpdG9yPXIuZWRpdG9yLHRoaXMub3B0aW9ucz17c3RvcEV2ZW50Om51bGwsaWdub3JlTXV0YXRpb246bnVsbCwuLi5hfSx0aGlzLmV4dGVuc2lvbj1yLmV4dGVuc2lvbix0aGlzLm5vZGU9ci5ub2RlLHRoaXMuZGVjb3JhdGlvbnM9ci5kZWNvcmF0aW9ucyx0aGlzLmlubmVyRGVjb3JhdGlvbnM9ci5pbm5lckRlY29yYXRpb25zLHRoaXMudmlldz1yLnZpZXcsdGhpcy5IVE1MQXR0cmlidXRlcz1yLkhUTUxBdHRyaWJ1dGVzLHRoaXMuZ2V0UG9zPXIuZ2V0UG9zLHRoaXMubW91bnQoKX1tb3VudCgpe31nZXQgZG9tKCl7cmV0dXJuIHRoaXMuZWRpdG9yLnZpZXcuZG9tfWdldCBjb250ZW50RE9NKCl7cmV0dXJuIG51bGx9b25EcmFnU3RhcnQoZSl7dmFyIHIsYSxzLG4sbyxsLGM7bGV0e3ZpZXc6ZH09dGhpcy5lZGl0b3IsZj1lLnRhcmdldCxwPWYubm9kZVR5cGU9PT0zPyhyPWYucGFyZW50RWxlbWVudCk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmNsb3Nlc3QoIltkYXRhLWRyYWctaGFuZGxlXSIpOmYuY2xvc2VzdCgiW2RhdGEtZHJhZy1oYW5kbGVdIik7aWYoIXRoaXMuZG9tfHwhKChhPXRoaXMuY29udGVudERPTSk9PT1udWxsfHxhPT09dm9pZCAwKSYmYS5jb250YWlucyhmKXx8IXApcmV0dXJuO2xldCBoPTAsbT0wO2lmKHRoaXMuZG9tIT09cCl7bGV0IGs9dGhpcy5kb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTT1wLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE49KHM9ZS5vZmZzZXRYKSE9PW51bGwmJnMhPT12b2lkIDA/czoobj1lLm5hdGl2ZUV2ZW50KT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4ub2Zmc2V0WCxfPShvPWUub2Zmc2V0WSkhPT1udWxsJiZvIT09dm9pZCAwP286KGw9ZS5uYXRpdmVFdmVudCk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLm9mZnNldFk7aD1NLngtay54K04sbT1NLnktay55K199bGV0IHY9dGhpcy5kb20uY2xvbmVOb2RlKCEwKTsoYz1lLmRhdGFUcmFuc2Zlcik9PT1udWxsfHxjPT09dm9pZCAwfHxjLnNldERyYWdJbWFnZSh2LGgsbSk7bGV0IGI9dGhpcy5nZXRQb3MoKTtpZih0eXBlb2YgYiE9Im51bWJlciIpcmV0dXJuO2xldCBnPUl0LmNyZWF0ZShkLnN0YXRlLmRvYyxiKSx5PWQuc3RhdGUudHIuc2V0U2VsZWN0aW9uKGcpO2QuZGlzcGF0Y2goeSl9c3RvcEV2ZW50KGUpe3ZhciByO2lmKCF0aGlzLmRvbSlyZXR1cm4hMTtpZih0eXBlb2YgdGhpcy5vcHRpb25zLnN0b3BFdmVudD09ImZ1bmN0aW9uIilyZXR1cm4gdGhpcy5vcHRpb25zLnN0b3BFdmVudCh7ZXZlbnQ6ZX0pO2xldCBhPWUudGFyZ2V0O2lmKCEodGhpcy5kb20uY29udGFpbnMoYSkmJiEoISgocj10aGlzLmNvbnRlbnRET00pPT09bnVsbHx8cj09PXZvaWQgMCkmJnIuY29udGFpbnMoYSkpKSlyZXR1cm4hMTtsZXQgbj1lLnR5cGUuc3RhcnRzV2l0aCgiZHJhZyIpLG89ZS50eXBlPT09ImRyb3AiO2lmKChbIklOUFVUIiwiQlVUVE9OIiwiU0VMRUNUIiwiVEVYVEFSRUEiXS5pbmNsdWRlcyhhLnRhZ05hbWUpfHxhLmlzQ29udGVudEVkaXRhYmxlKSYmIW8mJiFuKXJldHVybiEwO2xldHtpc0VkaXRhYmxlOmN9PXRoaXMuZWRpdG9yLHtpc0RyYWdnaW5nOmR9PXRoaXMsZj0hIXRoaXMubm9kZS50eXBlLnNwZWMuZHJhZ2dhYmxlLHA9SXQuaXNTZWxlY3RhYmxlKHRoaXMubm9kZSksaD1lLnR5cGU9PT0iY29weSIsbT1lLnR5cGU9PT0icGFzdGUiLHY9ZS50eXBlPT09ImN1dCIsYj1lLnR5cGU9PT0ibW91c2Vkb3duIjtpZighZiYmcCYmbiYmZS50YXJnZXQ9PT10aGlzLmRvbSYmZS5wcmV2ZW50RGVmYXVsdCgpLGYmJm4mJiFkJiZlLnRhcmdldD09PXRoaXMuZG9tKXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksITE7aWYoZiYmYyYmIWQmJmIpe2xldCBnPWEuY2xvc2VzdCgiW2RhdGEtZHJhZy1oYW5kbGVdIik7ZyYmKHRoaXMuZG9tPT09Z3x8dGhpcy5kb20uY29udGFpbnMoZykpJiYodGhpcy5pc0RyYWdnaW5nPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLCgpPT57dGhpcy5pc0RyYWdnaW5nPSExfSx7b25jZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCgpPT57dGhpcy5pc0RyYWdnaW5nPSExfSx7b25jZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCgpPT57dGhpcy5pc0RyYWdnaW5nPSExfSx7b25jZTohMH0pKX1yZXR1cm4hKGR8fG98fGh8fG18fHZ8fGImJnApfWlnbm9yZU11dGF0aW9uKGUpe3JldHVybiF0aGlzLmRvbXx8IXRoaXMuY29udGVudERPTT8hMDp0eXBlb2YgdGhpcy5vcHRpb25zLmlnbm9yZU11dGF0aW9uPT0iZnVuY3Rpb24iP3RoaXMub3B0aW9ucy5pZ25vcmVNdXRhdGlvbih7bXV0YXRpb246ZX0pOnRoaXMubm9kZS5pc0xlYWZ8fHRoaXMubm9kZS5pc0F0b20/ITA6ZS50eXBlPT09InNlbGVjdGlvbiJ8fHRoaXMuZG9tLmNvbnRhaW5zKGUudGFyZ2V0KSYmZS50eXBlPT09ImNoaWxkTGlzdCImJihXOSgpfHxNNXQoKSkmJnRoaXMuZWRpdG9yLmlzRm9jdXNlZCYmWy4uLkFycmF5LmZyb20oZS5hZGRlZE5vZGVzKSwuLi5BcnJheS5mcm9tKGUucmVtb3ZlZE5vZGVzKV0uZXZlcnkoYT0+YS5pc0NvbnRlbnRFZGl0YWJsZSk/ITE6dGhpcy5jb250ZW50RE9NPT09ZS50YXJnZXQmJmUudHlwZT09PSJhdHRyaWJ1dGVzIj8hMDohdGhpcy5jb250ZW50RE9NLmNvbnRhaW5zKGUudGFyZ2V0KX11cGRhdGVBdHRyaWJ1dGVzKGUpe3RoaXMuZWRpdG9yLmNvbW1hbmRzLmNvbW1hbmQoKHt0cjpyfSk9PntsZXQgYT10aGlzLmdldFBvcygpO3JldHVybiB0eXBlb2YgYSE9Im51bWJlciI/ITE6KHIuc2V0Tm9kZU1hcmt1cChhLHZvaWQgMCx7Li4udGhpcy5ub2RlLmF0dHJzLC4uLmV9KSwhMCl9KX1kZWxldGVOb2RlKCl7bGV0IGU9dGhpcy5nZXRQb3MoKTtpZih0eXBlb2YgZSE9Im51bWJlciIpcmV0dXJuO2xldCByPWUrdGhpcy5ub2RlLm5vZGVTaXplO3RoaXMuZWRpdG9yLmNvbW1hbmRzLmRlbGV0ZVJhbmdlKHtmcm9tOmUsdG86cn0pfX07aShJMSwibWFya1Bhc3RlUnVsZSIpO2kodmhlLCJjYW5JbnNlcnROb2RlIik7aShFWXIsImVzY2FwZUZvclJlZ0V4Iik7aShJWXIsImlzU3RyaW5nIik7aShQWXIsIm5vZGVQYXN0ZVJ1bGUiKTtpKE5ZciwidGV4dFBhc3RlUnVsZSIpO2ZoZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUcmFja2VyIil9Y29uc3RydWN0b3IoZSl7dGhpcy50cmFuc2FjdGlvbj1lLHRoaXMuY3VycmVudFN0ZXA9dGhpcy50cmFuc2FjdGlvbi5zdGVwcy5sZW5ndGh9bWFwKGUpe2xldCByPSExO3JldHVybntwb3NpdGlvbjp0aGlzLnRyYW5zYWN0aW9uLnN0ZXBzLnNsaWNlKHRoaXMuY3VycmVudFN0ZXApLnJlZHVjZSgocyxuKT0+e2xldCBvPW4uZ2V0TWFwKCkubWFwUmVzdWx0KHMpO3JldHVybiBvLmRlbGV0ZWQmJihyPSEwKSxvLnBvc30sZSksZGVsZXRlZDpyfX19fSk7dmFyIFJZcix5aGUsRllyPXUoKCk9PntoaSgpO1JZcj0vXlxzKj5ccyQvLHloZT10aS5jcmVhdGUoe25hbWU6ImJsb2NrcXVvdGUiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxjb250ZW50OiJibG9jaysiLGdyb3VwOiJibG9jayIsZGVmaW5pbmc6ITAscGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImJsb2NrcXVvdGUifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnR9KXtyZXR1cm5bImJsb2NrcXVvdGUiLHNhKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyx0KSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0QmxvY2txdW90ZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC53cmFwSW4odGhpcy5uYW1lKSwic2V0QmxvY2txdW90ZSIpLHRvZ2dsZUJsb2NrcXVvdGU6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQudG9nZ2xlV3JhcCh0aGlzLm5hbWUpLCJ0b2dnbGVCbG9ja3F1b3RlIiksdW5zZXRCbG9ja3F1b3RlOmkoKCk9Pih7Y29tbWFuZHM6dH0pPT50LmxpZnQodGhpcy5uYW1lKSwidW5zZXRCbG9ja3F1b3RlIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLVNoaWZ0LWIiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUJsb2NrcXVvdGUoKSwiTW9kLVNoaWZ0LWIiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5baGQoe2ZpbmQ6UllyLHR5cGU6dGhpcy50eXBlfSldfX0pfSk7dmFyIEJZcixIWXIscVlyLFZZcix3aGUsallyPXUoKCk9PntoaSgpO0JZcj0vKD86XnxccykoXCpcKig/IVxzK1wqXCopKCg/OlteKl0rKSlcKlwqKD8hXHMrXCpcKikpJC8sSFlyPS8oPzpefFxzKShcKlwqKD8hXHMrXCpcKikoKD86W14qXSspKVwqXCooPyFccytcKlwqKSkvZyxxWXI9Lyg/Ol58XHMpKF9fKD8hXHMrX18pKCg/OlteX10rKSlfXyg/IVxzK19fKSkkLyxWWXI9Lyg/Ol58XHMpKF9fKD8hXHMrX18pKCg/OlteX10rKSlfXyg/IVxzK19fKSkvZyx3aGU9T24uY3JlYXRlKHtuYW1lOiJib2xkIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6InN0cm9uZyJ9LHt0YWc6ImIiLGdldEF0dHJzOmkodD0+dC5zdHlsZS5mb250V2VpZ2h0IT09Im5vcm1hbCImJm51bGwsImdldEF0dHJzIil9LHtzdHlsZToiZm9udC13ZWlnaHQ9NDAwIixjbGVhck1hcms6aSh0PT50LnR5cGUubmFtZT09PXRoaXMubmFtZSwiY2xlYXJNYXJrIil9LHtzdHlsZToiZm9udC13ZWlnaHQiLGdldEF0dHJzOmkodD0+L14oYm9sZChlcik/fFs1LTldXGR7Mix9KSQvLnRlc3QodCkmJm51bGwsImdldEF0dHJzIil9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6dH0pe3JldHVyblsic3Ryb25nIixzYSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsdCksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldEJvbGQ6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQuc2V0TWFyayh0aGlzLm5hbWUpLCJzZXRCb2xkIiksdG9nZ2xlQm9sZDppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC50b2dnbGVNYXJrKHRoaXMubmFtZSksInRvZ2dsZUJvbGQiKSx1bnNldEJvbGQ6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQudW5zZXRNYXJrKHRoaXMubmFtZSksInVuc2V0Qm9sZCIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1iIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVCb2xkKCksIk1vZC1iIiksIk1vZC1CIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVCb2xkKCksIk1vZC1CIil9fSxhZGRJbnB1dFJ1bGVzKCl7cmV0dXJuW2EyKHtmaW5kOkJZcix0eXBlOnRoaXMudHlwZX0pLGEyKHtmaW5kOnFZcix0eXBlOnRoaXMudHlwZX0pXX0sYWRkUGFzdGVSdWxlcygpe3JldHVybltJMSh7ZmluZDpIWXIsdHlwZTp0aGlzLnR5cGV9KSxJMSh7ZmluZDpWWXIsdHlwZTp0aGlzLnR5cGV9KV19fSl9KTt2YXIgZlJhLFVZcixWNXQsa2hlLFdZcj11KCgpPT57aGkoKTtmUmE9Imxpc3RJdGVtIixVWXI9InRleHRTdHlsZSIsVjV0PS9eXHMqKFstKypdKVxzJC8sa2hlPXRpLmNyZWF0ZSh7bmFtZToiYnVsbGV0TGlzdCIsYWRkT3B0aW9ucygpe3JldHVybntpdGVtVHlwZU5hbWU6Imxpc3RJdGVtIixIVE1MQXR0cmlidXRlczp7fSxrZWVwTWFya3M6ITEsa2VlcEF0dHJpYnV0ZXM6ITF9fSxncm91cDoiYmxvY2sgbGlzdCIsY29udGVudCgpe3JldHVybmAke3RoaXMub3B0aW9ucy5pdGVtVHlwZU5hbWV9K2B9LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJ1bCJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6dH0pe3JldHVyblsidWwiLHNhKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyx0KSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57dG9nZ2xlQnVsbGV0TGlzdDppKCgpPT4oe2NvbW1hbmRzOnQsY2hhaW46ZX0pPT50aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXM/ZSgpLnRvZ2dsZUxpc3QodGhpcy5uYW1lLHRoaXMub3B0aW9ucy5pdGVtVHlwZU5hbWUsdGhpcy5vcHRpb25zLmtlZXBNYXJrcykudXBkYXRlQXR0cmlidXRlcyhmUmEsdGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcyhVWXIpKS5ydW4oKTp0LnRvZ2dsZUxpc3QodGhpcy5uYW1lLHRoaXMub3B0aW9ucy5pdGVtVHlwZU5hbWUsdGhpcy5vcHRpb25zLmtlZXBNYXJrcyksInRvZ2dsZUJ1bGxldExpc3QiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtOCI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlQnVsbGV0TGlzdCgpLCJNb2QtU2hpZnQtOCIpfX0sYWRkSW5wdXRSdWxlcygpe2xldCB0PWhkKHtmaW5kOlY1dCx0eXBlOnRoaXMudHlwZX0pO3JldHVybih0aGlzLm9wdGlvbnMua2VlcE1hcmtzfHx0aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXMpJiYodD1oZCh7ZmluZDpWNXQsdHlwZTp0aGlzLnR5cGUsa2VlcE1hcmtzOnRoaXMub3B0aW9ucy5rZWVwTWFya3Msa2VlcEF0dHJpYnV0ZXM6dGhpcy5vcHRpb25zLmtlZXBBdHRyaWJ1dGVzLGdldEF0dHJpYnV0ZXM6aSgoKT0+dGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcyhVWXIpLCJnZXRBdHRyaWJ1dGVzIiksZWRpdG9yOnRoaXMuZWRpdG9yfSkpLFt0XX19KX0pO3ZhciBHWXIsWVlyLFNoZSxLWXI9dSgoKT0+e2hpKCk7R1lyPS8oXnxbXmBdKWAoW15gXSspYCg/IWApLyxZWXI9LyhefFteYF0pYChbXmBdKylgKD8hYCkvZyxTaGU9T24uY3JlYXRlKHtuYW1lOiJjb2RlIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0sZXhjbHVkZXM6Il8iLGNvZGU6ITAsZXhpdGFibGU6ITAscGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImNvZGUifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnR9KXtyZXR1cm5bImNvZGUiLHNhKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyx0KSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0Q29kZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC5zZXRNYXJrKHRoaXMubmFtZSksInNldENvZGUiKSx0b2dnbGVDb2RlOmkoKCk9Pih7Y29tbWFuZHM6dH0pPT50LnRvZ2dsZU1hcmsodGhpcy5uYW1lKSwidG9nZ2xlQ29kZSIpLHVuc2V0Q29kZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC51bnNldE1hcmsodGhpcy5uYW1lKSwidW5zZXRDb2RlIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLWUiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUNvZGUoKSwiTW9kLWUiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bYTIoe2ZpbmQ6R1lyLHR5cGU6dGhpcy50eXBlfSldfSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW0kxKHtmaW5kOllZcix0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciBaWXIsUVlyLE1oZSxYWXI9dSgoKT0+e2hpKCk7UHRlKCk7WllyPS9eYGBgKFthLXpdKyk/W1xzXG5dJC8sUVlyPS9efn5+KFthLXpdKyk/W1xzXG5dJC8sTWhlPXRpLmNyZWF0ZSh7bmFtZToiY29kZUJsb2NrIixhZGRPcHRpb25zKCl7cmV0dXJue2xhbmd1YWdlQ2xhc3NQcmVmaXg6Imxhbmd1YWdlLSIsZXhpdE9uVHJpcGxlRW50ZXI6ITAsZXhpdE9uQXJyb3dEb3duOiEwLGRlZmF1bHRMYW5ndWFnZTpudWxsLEhUTUxBdHRyaWJ1dGVzOnt9fX0sY29udGVudDoidGV4dCoiLG1hcmtzOiIiLGdyb3VwOiJibG9jayIsY29kZTohMCxkZWZpbmluZzohMCxhZGRBdHRyaWJ1dGVzKCl7cmV0dXJue2xhbmd1YWdlOntkZWZhdWx0OnRoaXMub3B0aW9ucy5kZWZhdWx0TGFuZ3VhZ2UscGFyc2VIVE1MOmkodD0+e3ZhciBlO2xldHtsYW5ndWFnZUNsYXNzUHJlZml4OnJ9PXRoaXMub3B0aW9ucyxuPVsuLi4oKGU9dC5maXJzdEVsZW1lbnRDaGlsZCk9PT1udWxsfHxlPT09dm9pZCAwP3ZvaWQgMDplLmNsYXNzTGlzdCl8fFtdXS5maWx0ZXIobz0+by5zdGFydHNXaXRoKHIpKS5tYXAobz0+by5yZXBsYWNlKHIsIiIpKVswXTtyZXR1cm4gbnx8bnVsbH0sInBhcnNlSFRNTCIpLHJlbmRlcmVkOiExfX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJwcmUiLHByZXNlcnZlV2hpdGVzcGFjZToiZnVsbCJ9XX0scmVuZGVySFRNTCh7bm9kZTp0LEhUTUxBdHRyaWJ1dGVzOmV9KXtyZXR1cm5bInByZSIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLGUpLFsiY29kZSIse2NsYXNzOnQuYXR0cnMubGFuZ3VhZ2U/dGhpcy5vcHRpb25zLmxhbmd1YWdlQ2xhc3NQcmVmaXgrdC5hdHRycy5sYW5ndWFnZTpudWxsfSwwXV19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldENvZGVCbG9jazppKHQ9Pih7Y29tbWFuZHM6ZX0pPT5lLnNldE5vZGUodGhpcy5uYW1lLHQpLCJzZXRDb2RlQmxvY2siKSx0b2dnbGVDb2RlQmxvY2s6aSh0PT4oe2NvbW1hbmRzOmV9KT0+ZS50b2dnbGVOb2RlKHRoaXMubmFtZSwicGFyYWdyYXBoIix0KSwidG9nZ2xlQ29kZUJsb2NrIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLUFsdC1jIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVDb2RlQmxvY2soKSwiTW9kLUFsdC1jIiksQmFja3NwYWNlOmkoKCk9PntsZXR7ZW1wdHk6dCwkYW5jaG9yOmV9PXRoaXMuZWRpdG9yLnN0YXRlLnNlbGVjdGlvbixyPWUucG9zPT09MTtyZXR1cm4hdHx8ZS5wYXJlbnQudHlwZS5uYW1lIT09dGhpcy5uYW1lPyExOnJ8fCFlLnBhcmVudC50ZXh0Q29udGVudC5sZW5ndGg/dGhpcy5lZGl0b3IuY29tbWFuZHMuY2xlYXJOb2RlcygpOiExfSwiQmFja3NwYWNlIiksRW50ZXI6aSgoe2VkaXRvcjp0fSk9PntpZighdGhpcy5vcHRpb25zLmV4aXRPblRyaXBsZUVudGVyKXJldHVybiExO2xldHtzdGF0ZTplfT10LHtzZWxlY3Rpb246cn09ZSx7JGZyb206YSxlbXB0eTpzfT1yO2lmKCFzfHxhLnBhcmVudC50eXBlIT09dGhpcy50eXBlKXJldHVybiExO2xldCBuPWEucGFyZW50T2Zmc2V0PT09YS5wYXJlbnQubm9kZVNpemUtMixvPWEucGFyZW50LnRleHRDb250ZW50LmVuZHNXaXRoKGAKCmApO3JldHVybiFufHwhbz8hMTp0LmNoYWluKCkuY29tbWFuZCgoe3RyOmx9KT0+KGwuZGVsZXRlKGEucG9zLTIsYS5wb3MpLCEwKSkuZXhpdENvZGUoKS5ydW4oKX0sIkVudGVyIiksQXJyb3dEb3duOmkoKHtlZGl0b3I6dH0pPT57aWYoIXRoaXMub3B0aW9ucy5leGl0T25BcnJvd0Rvd24pcmV0dXJuITE7bGV0e3N0YXRlOmV9PXQse3NlbGVjdGlvbjpyLGRvYzphfT1lLHskZnJvbTpzLGVtcHR5Om59PXI7aWYoIW58fHMucGFyZW50LnR5cGUhPT10aGlzLnR5cGV8fCEocy5wYXJlbnRPZmZzZXQ9PT1zLnBhcmVudC5ub2RlU2l6ZS0yKSlyZXR1cm4hMTtsZXQgbD1zLmFmdGVyKCk7cmV0dXJuIGw9PT12b2lkIDA/ITE6YS5ub2RlQXQobCk/dC5jb21tYW5kcy5jb21tYW5kKCh7dHI6ZH0pPT4oZC5zZXRTZWxlY3Rpb24oSnQubmVhcihhLnJlc29sdmUobCkpKSwhMCkpOnQuY29tbWFuZHMuZXhpdENvZGUoKX0sIkFycm93RG93biIpfX0sYWRkSW5wdXRSdWxlcygpe3JldHVybltaOSh7ZmluZDpaWXIsdHlwZTp0aGlzLnR5cGUsZ2V0QXR0cmlidXRlczppKHQ9Pih7bGFuZ3VhZ2U6dFsxXX0pLCJnZXRBdHRyaWJ1dGVzIil9KSxaOSh7ZmluZDpRWXIsdHlwZTp0aGlzLnR5cGUsZ2V0QXR0cmlidXRlczppKHQ9Pih7bGFuZ3VhZ2U6dFsxXX0pLCJnZXRBdHRyaWJ1dGVzIil9KV19LGFkZFByb3NlTWlycm9yUGx1Z2lucygpe3JldHVybltuZXcgUWEoe2tleTpuZXcgTHMoImNvZGVCbG9ja1ZTQ29kZUhhbmRsZXIiKSxwcm9wczp7aGFuZGxlUGFzdGU6aSgodCxlKT0+e2lmKCFlLmNsaXBib2FyZERhdGF8fHRoaXMuZWRpdG9yLmlzQWN0aXZlKHRoaXMudHlwZS5uYW1lKSlyZXR1cm4hMTtsZXQgcj1lLmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4dC9wbGFpbiIpLGE9ZS5jbGlwYm9hcmREYXRhLmdldERhdGEoInZzY29kZS1lZGl0b3ItZGF0YSIpLHM9YT9KU09OLnBhcnNlKGEpOnZvaWQgMCxuPXM/Lm1vZGU7aWYoIXJ8fCFuKXJldHVybiExO2xldHt0cjpvLHNjaGVtYTpsfT10LnN0YXRlLGM9bC50ZXh0KHIucmVwbGFjZSgvXHJcbj8vZyxgCmApKTtyZXR1cm4gby5yZXBsYWNlU2VsZWN0aW9uV2l0aCh0aGlzLnR5cGUuY3JlYXRlKHtsYW5ndWFnZTpufSxjKSksby5zZWxlY3Rpb24uJGZyb20ucGFyZW50LnR5cGUhPT10aGlzLnR5cGUmJm8uc2V0U2VsZWN0aW9uKGVyLm5lYXIoby5kb2MucmVzb2x2ZShNYXRoLm1heCgwLG8uc2VsZWN0aW9uLmZyb20tMikpKSksby5zZXRNZXRhKCJwYXN0ZSIsITApLHQuZGlzcGF0Y2gobyksITB9LCJoYW5kbGVQYXN0ZSIpfX0pXX19KX0pO3ZhciBDaGUsSllyPXUoKCk9PntoaSgpO0NoZT10aS5jcmVhdGUoe25hbWU6ImRvYyIsdG9wTm9kZTohMCxjb250ZW50OiJibG9jaysifSl9KTtmdW5jdGlvbiBVNXQodD17fSl7cmV0dXJuIG5ldyBRYSh7dmlldyhlKXtyZXR1cm4gbmV3IGo1dChlLHQpfX0pfXZhciBqNXQsZUtyPXUoKCk9PnthMygpO1dwKCk7aShVNXQsImRyb3BDdXJzb3IiKTtqNXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiRHJvcEN1cnNvclZpZXciKX1jb25zdHJ1Y3RvcihlLHIpe3ZhciBhO3RoaXMuZWRpdG9yVmlldz1lLHRoaXMuY3Vyc29yUG9zPW51bGwsdGhpcy5lbGVtZW50PW51bGwsdGhpcy50aW1lb3V0PS0xLHRoaXMud2lkdGg9KGE9ci53aWR0aCkhPT1udWxsJiZhIT09dm9pZCAwP2E6MSx0aGlzLmNvbG9yPXIuY29sb3I9PT0hMT92b2lkIDA6ci5jb2xvcnx8ImJsYWNrIix0aGlzLmNsYXNzPXIuY2xhc3MsdGhpcy5oYW5kbGVycz1bImRyYWdvdmVyIiwiZHJhZ2VuZCIsImRyb3AiLCJkcmFnbGVhdmUiXS5tYXAocz0+e2xldCBuPWkobz0+e3RoaXNbc10obyl9LCJoYW5kbGVyIik7cmV0dXJuIGUuZG9tLmFkZEV2ZW50TGlzdGVuZXIocyxuKSx7bmFtZTpzLGhhbmRsZXI6bn19KX1kZXN0cm95KCl7dGhpcy5oYW5kbGVycy5mb3JFYWNoKCh7bmFtZTplLGhhbmRsZXI6cn0pPT50aGlzLmVkaXRvclZpZXcuZG9tLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxyKSl9dXBkYXRlKGUscil7dGhpcy5jdXJzb3JQb3MhPW51bGwmJnIuZG9jIT1lLnN0YXRlLmRvYyYmKHRoaXMuY3Vyc29yUG9zPmUuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZT90aGlzLnNldEN1cnNvcihudWxsKTp0aGlzLnVwZGF0ZU92ZXJsYXkoKSl9c2V0Q3Vyc29yKGUpe2UhPXRoaXMuY3Vyc29yUG9zJiYodGhpcy5jdXJzb3JQb3M9ZSxlPT1udWxsPyh0aGlzLmVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQpLHRoaXMuZWxlbWVudD1udWxsKTp0aGlzLnVwZGF0ZU92ZXJsYXkoKSl9dXBkYXRlT3ZlcmxheSgpe2xldCBlPXRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2MucmVzb2x2ZSh0aGlzLmN1cnNvclBvcykscj0hZS5wYXJlbnQuaW5saW5lQ29udGVudCxhLHM9dGhpcy5lZGl0b3JWaWV3LmRvbSxuPXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1uLndpZHRoL3Mub2Zmc2V0V2lkdGgsbD1uLmhlaWdodC9zLm9mZnNldEhlaWdodDtpZihyKXtsZXQgcD1lLm5vZGVCZWZvcmUsaD1lLm5vZGVBZnRlcjtpZihwfHxoKXtsZXQgbT10aGlzLmVkaXRvclZpZXcubm9kZURPTSh0aGlzLmN1cnNvclBvcy0ocD9wLm5vZGVTaXplOjApKTtpZihtKXtsZXQgdj1tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGI9cD92LmJvdHRvbTp2LnRvcDtwJiZoJiYoYj0oYit0aGlzLmVkaXRvclZpZXcubm9kZURPTSh0aGlzLmN1cnNvclBvcykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wKS8yKTtsZXQgZz10aGlzLndpZHRoLzIqbDthPXtsZWZ0OnYubGVmdCxyaWdodDp2LnJpZ2h0LHRvcDpiLWcsYm90dG9tOmIrZ319fX1pZighYSl7bGV0IHA9dGhpcy5lZGl0b3JWaWV3LmNvb3Jkc0F0UG9zKHRoaXMuY3Vyc29yUG9zKSxoPXRoaXMud2lkdGgvMipvO2E9e2xlZnQ6cC5sZWZ0LWgscmlnaHQ6cC5sZWZ0K2gsdG9wOnAudG9wLGJvdHRvbTpwLmJvdHRvbX19bGV0IGM9dGhpcy5lZGl0b3JWaWV3LmRvbS5vZmZzZXRQYXJlbnQ7dGhpcy5lbGVtZW50fHwodGhpcy5lbGVtZW50PWMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLHRoaXMuY2xhc3MmJih0aGlzLmVsZW1lbnQuY2xhc3NOYW1lPXRoaXMuY2xhc3MpLHRoaXMuZWxlbWVudC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDUwOyBwb2ludGVyLWV2ZW50czogbm9uZTsiLHRoaXMuY29sb3ImJih0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yPXRoaXMuY29sb3IpKSx0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgicHJvc2VtaXJyb3ItZHJvcGN1cnNvci1ibG9jayIsciksdGhpcy5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInByb3NlbWlycm9yLWRyb3BjdXJzb3ItaW5saW5lIiwhcik7bGV0IGQsZjtpZighY3x8Yz09ZG9jdW1lbnQuYm9keSYmZ2V0Q29tcHV0ZWRTdHlsZShjKS5wb3NpdGlvbj09InN0YXRpYyIpZD0tcGFnZVhPZmZzZXQsZj0tcGFnZVlPZmZzZXQ7ZWxzZXtsZXQgcD1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGg9cC53aWR0aC9jLm9mZnNldFdpZHRoLG09cC5oZWlnaHQvYy5vZmZzZXRIZWlnaHQ7ZD1wLmxlZnQtYy5zY3JvbGxMZWZ0KmgsZj1wLnRvcC1jLnNjcm9sbFRvcCptfXRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0PShhLmxlZnQtZCkvbysicHgiLHRoaXMuZWxlbWVudC5zdHlsZS50b3A9KGEudG9wLWYpL2wrInB4Iix0aGlzLmVsZW1lbnQuc3R5bGUud2lkdGg9KGEucmlnaHQtYS5sZWZ0KS9vKyJweCIsdGhpcy5lbGVtZW50LnN0eWxlLmhlaWdodD0oYS5ib3R0b20tYS50b3ApL2wrInB4In1zY2hlZHVsZVJlbW92YWwoZSl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCksdGhpcy50aW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuc2V0Q3Vyc29yKG51bGwpLGUpfWRyYWdvdmVyKGUpe2lmKCF0aGlzLmVkaXRvclZpZXcuZWRpdGFibGUpcmV0dXJuO2xldCByPXRoaXMuZWRpdG9yVmlldy5wb3NBdENvb3Jkcyh7bGVmdDplLmNsaWVudFgsdG9wOmUuY2xpZW50WX0pLGE9ciYmci5pbnNpZGU+PTAmJnRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2Mubm9kZUF0KHIuaW5zaWRlKSxzPWEmJmEudHlwZS5zcGVjLmRpc2FibGVEcm9wQ3Vyc29yLG49dHlwZW9mIHM9PSJmdW5jdGlvbiI/cyh0aGlzLmVkaXRvclZpZXcscixlKTpzO2lmKHImJiFuKXtsZXQgbz1yLnBvcztpZih0aGlzLmVkaXRvclZpZXcuZHJhZ2dpbmcmJnRoaXMuZWRpdG9yVmlldy5kcmFnZ2luZy5zbGljZSl7bGV0IGw9QXRlKHRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2Msbyx0aGlzLmVkaXRvclZpZXcuZHJhZ2dpbmcuc2xpY2UpO2whPW51bGwmJihvPWwpfXRoaXMuc2V0Q3Vyc29yKG8pLHRoaXMuc2NoZWR1bGVSZW1vdmFsKDVlMyl9fWRyYWdlbmQoKXt0aGlzLnNjaGVkdWxlUmVtb3ZhbCgyMCl9ZHJvcCgpe3RoaXMuc2NoZWR1bGVSZW1vdmFsKDIwKX1kcmFnbGVhdmUoZSl7dGhpcy5lZGl0b3JWaWV3LmRvbS5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpfHx0aGlzLnNldEN1cnNvcihudWxsKX19fSk7dmFyIHRLcj11KCgpPT57ZUtyKCl9KTt2YXIgemhlLHJLcj11KCgpPT57aGkoKTt0S3IoKTt6aGU9a2kuY3JlYXRlKHtuYW1lOiJkcm9wQ3Vyc29yIixhZGRPcHRpb25zKCl7cmV0dXJue2NvbG9yOiJjdXJyZW50Q29sb3IiLHdpZHRoOjEsY2xhc3M6dm9pZCAwfX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW1U1dCh0aGlzLm9wdGlvbnMpXX19KX0pO2Z1bmN0aW9uIGFLcih0KXtyZXR1cm4gdC5pc0F0b218fHQuc3BlYy5pc29sYXRpbmd8fHQuc3BlYy5jcmVhdGVHYXBDdXJzb3J9ZnVuY3Rpb24gaFJhKHQpe2ZvcihsZXQgZT10LmRlcHRoO2U+PTA7ZS0tKXtsZXQgcj10LmluZGV4KGUpLGE9dC5ub2RlKGUpO2lmKHI9PTApe2lmKGEudHlwZS5zcGVjLmlzb2xhdGluZylyZXR1cm4hMDtjb250aW51ZX1mb3IobGV0IHM9YS5jaGlsZChyLTEpOztzPXMubGFzdENoaWxkKXtpZihzLmNoaWxkQ291bnQ9PTAmJiFzLmlubGluZUNvbnRlbnR8fGFLcihzLnR5cGUpKXJldHVybiEwO2lmKHMuaW5saW5lQ29udGVudClyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gbVJhKHQpe2ZvcihsZXQgZT10LmRlcHRoO2U+PTA7ZS0tKXtsZXQgcj10LmluZGV4QWZ0ZXIoZSksYT10Lm5vZGUoZSk7aWYocj09YS5jaGlsZENvdW50KXtpZihhLnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITA7Y29udGludWV9Zm9yKGxldCBzPWEuY2hpbGQocik7O3M9cy5maXJzdENoaWxkKXtpZihzLmNoaWxkQ291bnQ9PTAmJiFzLmlubGluZUNvbnRlbnR8fGFLcihzLnR5cGUpKXJldHVybiEwO2lmKHMuaW5saW5lQ29udGVudClyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gRzV0KCl7cmV0dXJuIG5ldyBRYSh7cHJvcHM6e2RlY29yYXRpb25zOnZSYSxjcmVhdGVTZWxlY3Rpb25CZXR3ZWVuKHQsZSxyKXtyZXR1cm4gZS5wb3M9PXIucG9zJiZSbi52YWxpZChyKT9uZXcgUm4ocik6bnVsbH0saGFuZGxlQ2xpY2s6YlJhLGhhbmRsZUtleURvd246Z1JhLGhhbmRsZURPTUV2ZW50czp7YmVmb3JlaW5wdXQ6eFJhfX19KX1mdW5jdGlvbiBfaGUodCxlKXtsZXQgcj10PT0idmVydCI/ZT4wPyJkb3duIjoidXAiOmU+MD8icmlnaHQiOiJsZWZ0IjtyZXR1cm4gZnVuY3Rpb24oYSxzLG4pe2xldCBvPWEuc2VsZWN0aW9uLGw9ZT4wP28uJHRvOm8uJGZyb20sYz1vLmVtcHR5O2lmKG8gaW5zdGFuY2VvZiBlcil7aWYoIW4uZW5kT2ZUZXh0YmxvY2socil8fGwuZGVwdGg9PTApcmV0dXJuITE7Yz0hMSxsPWEuZG9jLnJlc29sdmUoZT4wP2wuYWZ0ZXIoKTpsLmJlZm9yZSgpKX1sZXQgZD1Sbi5maW5kR2FwQ3Vyc29yRnJvbShsLGUsYyk7cmV0dXJuIGQ/KHMmJnMoYS50ci5zZXRTZWxlY3Rpb24obmV3IFJuKGQpKSksITApOiExfX1mdW5jdGlvbiBiUmEodCxlLHIpe2lmKCF0fHwhdC5lZGl0YWJsZSlyZXR1cm4hMTtsZXQgYT10LnN0YXRlLmRvYy5yZXNvbHZlKGUpO2lmKCFSbi52YWxpZChhKSlyZXR1cm4hMTtsZXQgcz10LnBvc0F0Q29vcmRzKHtsZWZ0OnIuY2xpZW50WCx0b3A6ci5jbGllbnRZfSk7cmV0dXJuIHMmJnMuaW5zaWRlPi0xJiZJdC5pc1NlbGVjdGFibGUodC5zdGF0ZS5kb2Mubm9kZUF0KHMuaW5zaWRlKSk/ITE6KHQuZGlzcGF0Y2godC5zdGF0ZS50ci5zZXRTZWxlY3Rpb24obmV3IFJuKGEpKSksITApfWZ1bmN0aW9uIHhSYSh0LGUpe2lmKGUuaW5wdXRUeXBlIT0iaW5zZXJ0Q29tcG9zaXRpb25UZXh0Inx8ISh0LnN0YXRlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIFJuKSlyZXR1cm4hMTtsZXR7JGZyb206cn09dC5zdGF0ZS5zZWxlY3Rpb24sYT1yLnBhcmVudC5jb250ZW50TWF0Y2hBdChyLmluZGV4KCkpLmZpbmRXcmFwcGluZyh0LnN0YXRlLnNjaGVtYS5ub2Rlcy50ZXh0KTtpZighYSlyZXR1cm4hMTtsZXQgcz1KZS5lbXB0eTtmb3IobGV0IG89YS5sZW5ndGgtMTtvPj0wO28tLSlzPUplLmZyb20oYVtvXS5jcmVhdGVBbmRGaWxsKG51bGwscykpO2xldCBuPXQuc3RhdGUudHIucmVwbGFjZShyLnBvcyxyLnBvcyxuZXcgbXQocywwLDApKTtyZXR1cm4gbi5zZXRTZWxlY3Rpb24oZXIubmVhcihuLmRvYy5yZXNvbHZlKHIucG9zKzEpKSksdC5kaXNwYXRjaChuKSwhMX1mdW5jdGlvbiB2UmEodCl7aWYoISh0LnNlbGVjdGlvbiBpbnN0YW5jZW9mIFJuKSlyZXR1cm4gbnVsbDtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5jbGFzc05hbWU9IlByb3NlTWlycm9yLWdhcGN1cnNvciIsVW8uY3JlYXRlKHQuZG9jLFt3Yy53aWRnZXQodC5zZWxlY3Rpb24uaGVhZCxlLHtrZXk6ImdhcGN1cnNvciJ9KV0pfXZhciBSbixXNXQsZ1JhLGlLcj11KCgpPT57czV0KCk7YTMoKTtqcCgpO3I1dCgpO1JuPWNsYXNzIHQgZXh0ZW5kcyBKdHtzdGF0aWN7aSh0aGlzLCJHYXBDdXJzb3IiKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlLGUpfW1hcChlLHIpe2xldCBhPWUucmVzb2x2ZShyLm1hcCh0aGlzLmhlYWQpKTtyZXR1cm4gdC52YWxpZChhKT9uZXcgdChhKTpKdC5uZWFyKGEpfWNvbnRlbnQoKXtyZXR1cm4gbXQuZW1wdHl9ZXEoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0JiZlLmhlYWQ9PXRoaXMuaGVhZH10b0pTT04oKXtyZXR1cm57dHlwZToiZ2FwY3Vyc29yIixwb3M6dGhpcy5oZWFkfX1zdGF0aWMgZnJvbUpTT04oZSxyKXtpZih0eXBlb2Ygci5wb3MhPSJudW1iZXIiKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIGlucHV0IGZvciBHYXBDdXJzb3IuZnJvbUpTT04iKTtyZXR1cm4gbmV3IHQoZS5yZXNvbHZlKHIucG9zKSl9Z2V0Qm9va21hcmsoKXtyZXR1cm4gbmV3IFc1dCh0aGlzLmFuY2hvcil9c3RhdGljIHZhbGlkKGUpe2xldCByPWUucGFyZW50O2lmKHIuaW5saW5lQ29udGVudHx8IWhSYShlKXx8IW1SYShlKSlyZXR1cm4hMTtsZXQgYT1yLnR5cGUuc3BlYy5hbGxvd0dhcEN1cnNvcjtpZihhIT1udWxsKXJldHVybiBhO2xldCBzPXIuY29udGVudE1hdGNoQXQoZS5pbmRleCgpKS5kZWZhdWx0VHlwZTtyZXR1cm4gcyYmcy5pc1RleHRibG9ja31zdGF0aWMgZmluZEdhcEN1cnNvckZyb20oZSxyLGE9ITEpe2U6Zm9yKDs7KXtpZighYSYmdC52YWxpZChlKSlyZXR1cm4gZTtsZXQgcz1lLnBvcyxuPW51bGw7Zm9yKGxldCBvPWUuZGVwdGg7O28tLSl7bGV0IGw9ZS5ub2RlKG8pO2lmKHI+MD9lLmluZGV4QWZ0ZXIobyk8bC5jaGlsZENvdW50OmUuaW5kZXgobyk+MCl7bj1sLmNoaWxkKHI+MD9lLmluZGV4QWZ0ZXIobyk6ZS5pbmRleChvKS0xKTticmVha31lbHNlIGlmKG89PTApcmV0dXJuIG51bGw7cys9cjtsZXQgYz1lLmRvYy5yZXNvbHZlKHMpO2lmKHQudmFsaWQoYykpcmV0dXJuIGN9Zm9yKDs7KXtsZXQgbz1yPjA/bi5maXJzdENoaWxkOm4ubGFzdENoaWxkO2lmKCFvKXtpZihuLmlzQXRvbSYmIW4uaXNUZXh0JiYhSXQuaXNTZWxlY3RhYmxlKG4pKXtlPWUuZG9jLnJlc29sdmUocytuLm5vZGVTaXplKnIpLGE9ITE7Y29udGludWUgZX1icmVha31uPW8scys9cjtsZXQgbD1lLmRvYy5yZXNvbHZlKHMpO2lmKHQudmFsaWQobCkpcmV0dXJuIGx9cmV0dXJuIG51bGx9fX07Um4ucHJvdG90eXBlLnZpc2libGU9ITEsUm4uZmluZEZyb209Um4uZmluZEdhcEN1cnNvckZyb20sSnQuanNvbklEKCJnYXBjdXJzb3IiLFJuKTtXNXQ9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJHYXBCb29rbWFyayIpfWNvbnN0cnVjdG9yKGUpe3RoaXMucG9zPWV9bWFwKGUpe3JldHVybiBuZXcgdChlLm1hcCh0aGlzLnBvcykpfXJlc29sdmUoZSl7bGV0IHI9ZS5yZXNvbHZlKHRoaXMucG9zKTtyZXR1cm4gUm4udmFsaWQocik/bmV3IFJuKHIpOkp0Lm5lYXIocil9fTtpKGFLciwibmVlZHNHYXAiKTtpKGhSYSwiY2xvc2VkQmVmb3JlIik7aShtUmEsImNsb3NlZEFmdGVyIik7aShHNXQsImdhcEN1cnNvciIpO2dSYT1OZmUoe0Fycm93TGVmdDpfaGUoImhvcml6IiwtMSksQXJyb3dSaWdodDpfaGUoImhvcml6IiwxKSxBcnJvd1VwOl9oZSgidmVydCIsLTEpLEFycm93RG93bjpfaGUoInZlcnQiLDEpfSk7aShfaGUsImFycm93Iik7aShiUmEsImhhbmRsZUNsaWNrIik7aSh4UmEsImJlZm9yZWlucHV0Iik7aSh2UmEsImRyYXdHYXBDdXJzb3IiKX0pO3ZhciBzS3I9dSgoKT0+e2lLcigpfSk7dmFyIFRoZSxuS3I9dSgoKT0+e2hpKCk7c0tyKCk7VGhlPWtpLmNyZWF0ZSh7bmFtZToiZ2FwQ3Vyc29yIixhZGRQcm9zZU1pcnJvclBsdWdpbnMoKXtyZXR1cm5bRzV0KCldfSxleHRlbmROb2RlU2NoZW1hKHQpe3ZhciBlO2xldCByPXtuYW1lOnQubmFtZSxvcHRpb25zOnQub3B0aW9ucyxzdG9yYWdlOnQuc3RvcmFnZX07cmV0dXJue2FsbG93R2FwQ3Vyc29yOihlPXByKGt0KHQsImFsbG93R2FwQ3Vyc29yIixyKSkpIT09bnVsbCYmZSE9PXZvaWQgMD9lOm51bGx9fX0pfSk7dmFyIExoZSxvS3I9dSgoKT0+e2hpKCk7TGhlPXRpLmNyZWF0ZSh7bmFtZToiaGFyZEJyZWFrIixhZGRPcHRpb25zKCl7cmV0dXJue2tlZXBNYXJrczohMCxIVE1MQXR0cmlidXRlczp7fX19LGlubGluZTohMCxncm91cDoiaW5saW5lIixzZWxlY3RhYmxlOiExLGxpbmVicmVha1JlcGxhY2VtZW50OiEwLHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJiciJ9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6dH0pe3JldHVyblsiYnIiLHNhKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcyx0KV19LHJlbmRlclRleHQoKXtyZXR1cm5gCmB9LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldEhhcmRCcmVhazppKCgpPT4oe2NvbW1hbmRzOnQsY2hhaW46ZSxzdGF0ZTpyLGVkaXRvcjphfSk9PnQuZmlyc3QoWygpPT50LmV4aXRDb2RlKCksKCk9PnQuY29tbWFuZCgoKT0+e2xldHtzZWxlY3Rpb246cyxzdG9yZWRNYXJrczpufT1yO2lmKHMuJGZyb20ucGFyZW50LnR5cGUuc3BlYy5pc29sYXRpbmcpcmV0dXJuITE7bGV0e2tlZXBNYXJrczpvfT10aGlzLm9wdGlvbnMse3NwbGl0dGFibGVNYXJrczpsfT1hLmV4dGVuc2lvbk1hbmFnZXIsYz1ufHxzLiR0by5wYXJlbnRPZmZzZXQmJnMuJGZyb20ubWFya3MoKTtyZXR1cm4gZSgpLmluc2VydENvbnRlbnQoe3R5cGU6dGhpcy5uYW1lfSkuY29tbWFuZCgoe3RyOmQsZGlzcGF0Y2g6Zn0pPT57aWYoZiYmYyYmbyl7bGV0IHA9Yy5maWx0ZXIoaD0+bC5pbmNsdWRlcyhoLnR5cGUubmFtZSkpO2QuZW5zdXJlTWFya3MocCl9cmV0dXJuITB9KS5ydW4oKX0pXSksInNldEhhcmRCcmVhayIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1FbnRlciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0SGFyZEJyZWFrKCksIk1vZC1FbnRlciIpLCJTaGlmdC1FbnRlciI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0SGFyZEJyZWFrKCksIlNoaWZ0LUVudGVyIil9fX0pfSk7dmFyIERoZSxsS3I9dSgoKT0+e2hpKCk7RGhlPXRpLmNyZWF0ZSh7bmFtZToiaGVhZGluZyIsYWRkT3B0aW9ucygpe3JldHVybntsZXZlbHM6WzEsMiwzLDQsNSw2XSxIVE1MQXR0cmlidXRlczp7fX19LGNvbnRlbnQ6ImlubGluZSoiLGdyb3VwOiJibG9jayIsZGVmaW5pbmc6ITAsYWRkQXR0cmlidXRlcygpe3JldHVybntsZXZlbDp7ZGVmYXVsdDoxLHJlbmRlcmVkOiExfX19LHBhcnNlSFRNTCgpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLm1hcCh0PT4oe3RhZzpgaCR7dH1gLGF0dHJzOntsZXZlbDp0fX0pKX0scmVuZGVySFRNTCh7bm9kZTp0LEhUTUxBdHRyaWJ1dGVzOmV9KXtyZXR1cm5bYGgke3RoaXMub3B0aW9ucy5sZXZlbHMuaW5jbHVkZXModC5hdHRycy5sZXZlbCk/dC5hdHRycy5sZXZlbDp0aGlzLm9wdGlvbnMubGV2ZWxzWzBdfWAsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLGUpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRIZWFkaW5nOmkodD0+KHtjb21tYW5kczplfSk9PnRoaXMub3B0aW9ucy5sZXZlbHMuaW5jbHVkZXModC5sZXZlbCk/ZS5zZXROb2RlKHRoaXMubmFtZSx0KTohMSwic2V0SGVhZGluZyIpLHRvZ2dsZUhlYWRpbmc6aSh0PT4oe2NvbW1hbmRzOmV9KT0+dGhpcy5vcHRpb25zLmxldmVscy5pbmNsdWRlcyh0LmxldmVsKT9lLnRvZ2dsZU5vZGUodGhpcy5uYW1lLCJwYXJhZ3JhcGgiLHQpOiExLCJ0b2dnbGVIZWFkaW5nIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLnJlZHVjZSgodCxlKT0+KHsuLi50LFtgTW9kLUFsdC0ke2V9YF06KCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZUhlYWRpbmcoe2xldmVsOmV9KX0pLHt9KX0sYWRkSW5wdXRSdWxlcygpe3JldHVybiB0aGlzLm9wdGlvbnMubGV2ZWxzLm1hcCh0PT5aOSh7ZmluZDpuZXcgUmVnRXhwKGBeKCN7JHtNYXRoLm1pbiguLi50aGlzLm9wdGlvbnMubGV2ZWxzKX0sJHt0fX0pXFxzJGApLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6e2xldmVsOnR9fSkpfX0pfSk7dmFyICRoZSxGbixjS3IseVJhLFk1dCxkS3I9dSgoKT0+eyRoZT0yMDAsRm49aShmdW5jdGlvbigpe30sIlJvcGVTZXF1ZW5jZSIpO0ZuLnByb3RvdHlwZS5hcHBlbmQ9aShmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGg/KGU9Rm4uZnJvbShlKSwhdGhpcy5sZW5ndGgmJmV8fGUubGVuZ3RoPCRoZSYmdGhpcy5sZWFmQXBwZW5kKGUpfHx0aGlzLmxlbmd0aDwkaGUmJmUubGVhZlByZXBlbmQodGhpcyl8fHRoaXMuYXBwZW5kSW5uZXIoZSkpOnRoaXN9LCJhcHBlbmQiKSxGbi5wcm90b3R5cGUucHJlcGVuZD1pKGZ1bmN0aW9uKGUpe3JldHVybiBlLmxlbmd0aD9Gbi5mcm9tKGUpLmFwcGVuZCh0aGlzKTp0aGlzfSwicHJlcGVuZCIpLEZuLnByb3RvdHlwZS5hcHBlbmRJbm5lcj1pKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgeVJhKHRoaXMsZSl9LCJhcHBlbmRJbm5lciIpLEZuLnByb3RvdHlwZS5zbGljZT1pKGZ1bmN0aW9uKGUscil7cmV0dXJuIGU9PT12b2lkIDAmJihlPTApLHI9PT12b2lkIDAmJihyPXRoaXMubGVuZ3RoKSxlPj1yP0ZuLmVtcHR5OnRoaXMuc2xpY2VJbm5lcihNYXRoLm1heCgwLGUpLE1hdGgubWluKHRoaXMubGVuZ3RoLHIpKX0sInNsaWNlIiksRm4ucHJvdG90eXBlLmdldD1pKGZ1bmN0aW9uKGUpe2lmKCEoZTwwfHxlPj10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXMuZ2V0SW5uZXIoZSl9LCJnZXQiKSxGbi5wcm90b3R5cGUuZm9yRWFjaD1pKGZ1bmN0aW9uKGUscixhKXtyPT09dm9pZCAwJiYocj0wKSxhPT09dm9pZCAwJiYoYT10aGlzLmxlbmd0aCkscjw9YT90aGlzLmZvckVhY2hJbm5lcihlLHIsYSwwKTp0aGlzLmZvckVhY2hJbnZlcnRlZElubmVyKGUscixhLDApfSwiZm9yRWFjaCIpLEZuLnByb3RvdHlwZS5tYXA9aShmdW5jdGlvbihlLHIsYSl7cj09PXZvaWQgMCYmKHI9MCksYT09PXZvaWQgMCYmKGE9dGhpcy5sZW5ndGgpO3ZhciBzPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24obixvKXtyZXR1cm4gcy5wdXNoKGUobixvKSl9LHIsYSksc30sIm1hcCIpLEZuLmZyb209aShmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEZuP2U6ZSYmZS5sZW5ndGg/bmV3IGNLcihlKTpGbi5lbXB0eX0sImZyb20iKTtjS3I9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoYSl7dC5jYWxsKHRoaXMpLHRoaXMudmFsdWVzPWF9aShlLCJMZWFmIiksdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWU7dmFyIHI9e2xlbmd0aDp7Y29uZmlndXJhYmxlOiEwfSxkZXB0aDp7Y29uZmlndXJhYmxlOiEwfX07cmV0dXJuIGUucHJvdG90eXBlLmZsYXR0ZW49aShmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlc30sImZsYXR0ZW4iKSxlLnByb3RvdHlwZS5zbGljZUlubmVyPWkoZnVuY3Rpb24ocyxuKXtyZXR1cm4gcz09MCYmbj09dGhpcy5sZW5ndGg/dGhpczpuZXcgZSh0aGlzLnZhbHVlcy5zbGljZShzLG4pKX0sInNsaWNlSW5uZXIiKSxlLnByb3RvdHlwZS5nZXRJbm5lcj1pKGZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLnZhbHVlc1tzXX0sImdldElubmVyIiksZS5wcm90b3R5cGUuZm9yRWFjaElubmVyPWkoZnVuY3Rpb24ocyxuLG8sbCl7Zm9yKHZhciBjPW47YzxvO2MrKylpZihzKHRoaXMudmFsdWVzW2NdLGwrYyk9PT0hMSlyZXR1cm4hMX0sImZvckVhY2hJbm5lciIpLGUucHJvdG90eXBlLmZvckVhY2hJbnZlcnRlZElubmVyPWkoZnVuY3Rpb24ocyxuLG8sbCl7Zm9yKHZhciBjPW4tMTtjPj1vO2MtLSlpZihzKHRoaXMudmFsdWVzW2NdLGwrYyk9PT0hMSlyZXR1cm4hMX0sImZvckVhY2hJbnZlcnRlZElubmVyIiksZS5wcm90b3R5cGUubGVhZkFwcGVuZD1pKGZ1bmN0aW9uKHMpe2lmKHRoaXMubGVuZ3RoK3MubGVuZ3RoPD0kaGUpcmV0dXJuIG5ldyBlKHRoaXMudmFsdWVzLmNvbmNhdChzLmZsYXR0ZW4oKSkpfSwibGVhZkFwcGVuZCIpLGUucHJvdG90eXBlLmxlYWZQcmVwZW5kPWkoZnVuY3Rpb24ocyl7aWYodGhpcy5sZW5ndGgrcy5sZW5ndGg8PSRoZSlyZXR1cm4gbmV3IGUocy5mbGF0dGVuKCkuY29uY2F0KHRoaXMudmFsdWVzKSl9LCJsZWFmUHJlcGVuZCIpLHIubGVuZ3RoLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGh9LHIuZGVwdGguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDB9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHIpLGV9KShGbik7Rm4uZW1wdHk9bmV3IGNLcihbXSk7eVJhPShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHIsYSl7dC5jYWxsKHRoaXMpLHRoaXMubGVmdD1yLHRoaXMucmlnaHQ9YSx0aGlzLmxlbmd0aD1yLmxlbmd0aCthLmxlbmd0aCx0aGlzLmRlcHRoPU1hdGgubWF4KHIuZGVwdGgsYS5kZXB0aCkrMX1yZXR1cm4gaShlLCJBcHBlbmQiKSx0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5mbGF0dGVuPWkoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZWZ0LmZsYXR0ZW4oKS5jb25jYXQodGhpcy5yaWdodC5mbGF0dGVuKCkpfSwiZmxhdHRlbiIpLGUucHJvdG90eXBlLmdldElubmVyPWkoZnVuY3Rpb24oYSl7cmV0dXJuIGE8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuZ2V0KGEpOnRoaXMucmlnaHQuZ2V0KGEtdGhpcy5sZWZ0Lmxlbmd0aCl9LCJnZXRJbm5lciIpLGUucHJvdG90eXBlLmZvckVhY2hJbm5lcj1pKGZ1bmN0aW9uKGEscyxuLG8pe3ZhciBsPXRoaXMubGVmdC5sZW5ndGg7aWYoczxsJiZ0aGlzLmxlZnQuZm9yRWFjaElubmVyKGEscyxNYXRoLm1pbihuLGwpLG8pPT09ITF8fG4+bCYmdGhpcy5yaWdodC5mb3JFYWNoSW5uZXIoYSxNYXRoLm1heChzLWwsMCksTWF0aC5taW4odGhpcy5sZW5ndGgsbiktbCxvK2wpPT09ITEpcmV0dXJuITF9LCJmb3JFYWNoSW5uZXIiKSxlLnByb3RvdHlwZS5mb3JFYWNoSW52ZXJ0ZWRJbm5lcj1pKGZ1bmN0aW9uKGEscyxuLG8pe3ZhciBsPXRoaXMubGVmdC5sZW5ndGg7aWYocz5sJiZ0aGlzLnJpZ2h0LmZvckVhY2hJbnZlcnRlZElubmVyKGEscy1sLE1hdGgubWF4KG4sbCktbCxvK2wpPT09ITF8fG48bCYmdGhpcy5sZWZ0LmZvckVhY2hJbnZlcnRlZElubmVyKGEsTWF0aC5taW4ocyxsKSxuLG8pPT09ITEpcmV0dXJuITF9LCJmb3JFYWNoSW52ZXJ0ZWRJbm5lciIpLGUucHJvdG90eXBlLnNsaWNlSW5uZXI9aShmdW5jdGlvbihhLHMpe2lmKGE9PTAmJnM9PXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBuPXRoaXMubGVmdC5sZW5ndGg7cmV0dXJuIHM8PW4/dGhpcy5sZWZ0LnNsaWNlKGEscyk6YT49bj90aGlzLnJpZ2h0LnNsaWNlKGEtbixzLW4pOnRoaXMubGVmdC5zbGljZShhLG4pLmFwcGVuZCh0aGlzLnJpZ2h0LnNsaWNlKDAscy1uKSl9LCJzbGljZUlubmVyIiksZS5wcm90b3R5cGUubGVhZkFwcGVuZD1pKGZ1bmN0aW9uKGEpe3ZhciBzPXRoaXMucmlnaHQubGVhZkFwcGVuZChhKTtpZihzKXJldHVybiBuZXcgZSh0aGlzLmxlZnQscyl9LCJsZWFmQXBwZW5kIiksZS5wcm90b3R5cGUubGVhZlByZXBlbmQ9aShmdW5jdGlvbihhKXt2YXIgcz10aGlzLmxlZnQubGVhZlByZXBlbmQoYSk7aWYocylyZXR1cm4gbmV3IGUocyx0aGlzLnJpZ2h0KX0sImxlYWZQcmVwZW5kIiksZS5wcm90b3R5cGUuYXBwZW5kSW5uZXI9aShmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sZWZ0LmRlcHRoPj1NYXRoLm1heCh0aGlzLnJpZ2h0LmRlcHRoLGEuZGVwdGgpKzE/bmV3IGUodGhpcy5sZWZ0LG5ldyBlKHRoaXMucmlnaHQsYSkpOm5ldyBlKHRoaXMsYSl9LCJhcHBlbmRJbm5lciIpLGV9KShGbiksWTV0PUZufSk7ZnVuY3Rpb24ga1JhKHQsZSl7bGV0IHI7cmV0dXJuIHQuZm9yRWFjaCgoYSxzKT0+e2lmKGEuc2VsZWN0aW9uJiZlLS09PTApcmV0dXJuIHI9cywhMX0pLHQuc2xpY2Uocil9ZnVuY3Rpb24gTVJhKHQsZSxyLGEpe2xldCBzPXIuZ2V0TWV0YShiZCksbjtpZihzKXJldHVybiBzLmhpc3RvcnlTdGF0ZTtyLmdldE1ldGEoZktyKSYmKHQ9bmV3IGdkKHQuZG9uZSx0LnVuZG9uZSxudWxsLDAsLTEpKTtsZXQgbz1yLmdldE1ldGEoImFwcGVuZGVkVHJhbnNhY3Rpb24iKTtpZihyLnN0ZXBzLmxlbmd0aD09MClyZXR1cm4gdDtpZihvJiZvLmdldE1ldGEoYmQpKXJldHVybiBvLmdldE1ldGEoYmQpLnJlZG8/bmV3IGdkKHQuZG9uZS5hZGRUcmFuc2Zvcm0ocix2b2lkIDAsYSxBaGUoZSkpLHQudW5kb25lLHVLcihyLm1hcHBpbmcubWFwcyksdC5wcmV2VGltZSx0LnByZXZDb21wb3NpdGlvbik6bmV3IGdkKHQuZG9uZSx0LnVuZG9uZS5hZGRUcmFuc2Zvcm0ocix2b2lkIDAsYSxBaGUoZSkpLG51bGwsdC5wcmV2VGltZSx0LnByZXZDb21wb3NpdGlvbik7aWYoci5nZXRNZXRhKCJhZGRUb0hpc3RvcnkiKSE9PSExJiYhKG8mJm8uZ2V0TWV0YSgiYWRkVG9IaXN0b3J5Iik9PT0hMSkpe2xldCBsPXIuZ2V0TWV0YSgiY29tcG9zaXRpb24iKSxjPXQucHJldlRpbWU9PTB8fCFvJiZ0LnByZXZDb21wb3NpdGlvbiE9bCYmKHQucHJldlRpbWU8KHIudGltZXx8MCktYS5uZXdHcm91cERlbGF5fHwhQ1JhKHIsdC5wcmV2UmFuZ2VzKSksZD1vP0s1dCh0LnByZXZSYW5nZXMsci5tYXBwaW5nKTp1S3Ioci5tYXBwaW5nLm1hcHMpO3JldHVybiBuZXcgZ2QodC5kb25lLmFkZFRyYW5zZm9ybShyLGM/ZS5zZWxlY3Rpb24uZ2V0Qm9va21hcmsoKTp2b2lkIDAsYSxBaGUoZSkpLFE5LmVtcHR5LGQsci50aW1lLGw/P3QucHJldkNvbXBvc2l0aW9uKX1lbHNlIHJldHVybihuPXIuZ2V0TWV0YSgicmViYXNlZCIpKT9uZXcgZ2QodC5kb25lLnJlYmFzZWQocixuKSx0LnVuZG9uZS5yZWJhc2VkKHIsbiksSzV0KHQucHJldlJhbmdlcyxyLm1hcHBpbmcpLHQucHJldlRpbWUsdC5wcmV2Q29tcG9zaXRpb24pOm5ldyBnZCh0LmRvbmUuYWRkTWFwcyhyLm1hcHBpbmcubWFwcyksdC51bmRvbmUuYWRkTWFwcyhyLm1hcHBpbmcubWFwcyksSzV0KHQucHJldlJhbmdlcyxyLm1hcHBpbmcpLHQucHJldlRpbWUsdC5wcmV2Q29tcG9zaXRpb24pfWZ1bmN0aW9uIENSYSh0LGUpe2lmKCFlKXJldHVybiExO2lmKCF0LmRvY0NoYW5nZWQpcmV0dXJuITA7bGV0IHI9ITE7cmV0dXJuIHQubWFwcGluZy5tYXBzWzBdLmZvckVhY2goKGEscyk9Pntmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rPTIpYTw9ZVtuKzFdJiZzPj1lW25dJiYocj0hMCl9KSxyfWZ1bmN0aW9uIHVLcih0KXtsZXQgZT1bXTtmb3IobGV0IHI9dC5sZW5ndGgtMTtyPj0wJiZlLmxlbmd0aD09MDtyLS0pdFtyXS5mb3JFYWNoKChhLHMsbixvKT0+ZS5wdXNoKG4sbykpO3JldHVybiBlfWZ1bmN0aW9uIEs1dCh0LGUpe2lmKCF0KXJldHVybiBudWxsO2xldCByPVtdO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSs9Mil7bGV0IHM9ZS5tYXAodFthXSwxKSxuPWUubWFwKHRbYSsxXSwtMSk7czw9biYmci5wdXNoKHMsbil9cmV0dXJuIHJ9ZnVuY3Rpb24gelJhKHQsZSxyKXtsZXQgYT1BaGUoZSkscz1iZC5nZXQoZSkuc3BlYy5jb25maWcsbj0ocj90LnVuZG9uZTp0LmRvbmUpLnBvcEV2ZW50KGUsYSk7aWYoIW4pcmV0dXJuIG51bGw7bGV0IG89bi5zZWxlY3Rpb24ucmVzb2x2ZShuLnRyYW5zZm9ybS5kb2MpLGw9KHI/dC5kb25lOnQudW5kb25lKS5hZGRUcmFuc2Zvcm0obi50cmFuc2Zvcm0sZS5zZWxlY3Rpb24uZ2V0Qm9va21hcmsoKSxzLGEpLGM9bmV3IGdkKHI/bDpuLnJlbWFpbmluZyxyP24ucmVtYWluaW5nOmwsbnVsbCwwLC0xKTtyZXR1cm4gbi50cmFuc2Zvcm0uc2V0U2VsZWN0aW9uKG8pLnNldE1ldGEoYmQse3JlZG86cixoaXN0b3J5U3RhdGU6Y30pfWZ1bmN0aW9uIEFoZSh0KXtsZXQgZT10LnBsdWdpbnM7aWYocEtyIT1lKXtaNXQ9ITEscEtyPWU7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYoZVtyXS5zcGVjLmhpc3RvcnlQcmVzZXJ2ZUl0ZW1zKXtaNXQ9ITA7YnJlYWt9fXJldHVybiBaNXR9ZnVuY3Rpb24gX1JhKHQpe3JldHVybiB0LnNldE1ldGEoZktyLCEwKX1mdW5jdGlvbiBRNXQodD17fSl7cmV0dXJuIHQ9e2RlcHRoOnQuZGVwdGh8fDEwMCxuZXdHcm91cERlbGF5OnQubmV3R3JvdXBEZWxheXx8NTAwfSxuZXcgUWEoe2tleTpiZCxzdGF0ZTp7aW5pdCgpe3JldHVybiBuZXcgZ2QoUTkuZW1wdHksUTkuZW1wdHksbnVsbCwwLC0xKX0sYXBwbHkoZSxyLGEpe3JldHVybiBNUmEocixhLGUsdCl9fSxjb25maWc6dCxwcm9wczp7aGFuZGxlRE9NRXZlbnRzOntiZWZvcmVpbnB1dChlLHIpe2xldCBhPXIuaW5wdXRUeXBlLHM9YT09Imhpc3RvcnlVbmRvIj9JaGU6YT09Imhpc3RvcnlSZWRvIj9QaGU6bnVsbDtyZXR1cm4hc3x8IWUuZWRpdGFibGU/ITE6KHIucHJldmVudERlZmF1bHQoKSxzKGUuc3RhdGUsZS5kaXNwYXRjaCkpfX19fSl9ZnVuY3Rpb24gRWhlKHQsZSl7cmV0dXJuKHIsYSk9PntsZXQgcz1iZC5nZXRTdGF0ZShyKTtpZighc3x8KHQ/cy51bmRvbmU6cy5kb25lKS5ldmVudENvdW50PT0wKXJldHVybiExO2lmKGEpe2xldCBuPXpSYShzLHIsdCk7biYmYShlP24uc2Nyb2xsSW50b1ZpZXcoKTpuKX1yZXR1cm4hMH19ZnVuY3Rpb24gRFJhKHQpe2xldCBlPWJkLmdldFN0YXRlKHQpO3JldHVybiBlP2UuZG9uZS5ldmVudENvdW50OjB9ZnVuY3Rpb24gJFJhKHQpe2xldCBlPWJkLmdldFN0YXRlKHQpO3JldHVybiBlP2UudW5kb25lLmV2ZW50Q291bnQ6MH1mdW5jdGlvbiBBUmEodCl7cmV0dXJuIHQuZ2V0TWV0YShiZCkhPW51bGx9dmFyIHdSYSxROSxtZCxnZCxTUmEsWjV0LHBLcixiZCxmS3IsSWhlLFBoZSxUUmEsTFJhLGhLcj11KCgpPT57ZEtyKCk7V3AoKTthMygpO3dSYT01MDAsUTk9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJCcmFuY2giKX1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuaXRlbXM9ZSx0aGlzLmV2ZW50Q291bnQ9cn1wb3BFdmVudChlLHIpe2lmKHRoaXMuZXZlbnRDb3VudD09MClyZXR1cm4gbnVsbDtsZXQgYT10aGlzLml0ZW1zLmxlbmd0aDtmb3IoOzthLS0paWYodGhpcy5pdGVtcy5nZXQoYS0xKS5zZWxlY3Rpb24pey0tYTticmVha31sZXQgcyxuO3ImJihzPXRoaXMucmVtYXBwaW5nKGEsdGhpcy5pdGVtcy5sZW5ndGgpLG49cy5tYXBzLmxlbmd0aCk7bGV0IG89ZS50cixsLGMsZD1bXSxmPVtdO3JldHVybiB0aGlzLml0ZW1zLmZvckVhY2goKHAsaCk9PntpZighcC5zdGVwKXtzfHwocz10aGlzLnJlbWFwcGluZyhhLGgrMSksbj1zLm1hcHMubGVuZ3RoKSxuLS0sZi5wdXNoKHApO3JldHVybn1pZihzKXtmLnB1c2gobmV3IG1kKHAubWFwKSk7bGV0IG09cC5zdGVwLm1hcChzLnNsaWNlKG4pKSx2O20mJm8ubWF5YmVTdGVwKG0pLmRvYyYmKHY9by5tYXBwaW5nLm1hcHNbby5tYXBwaW5nLm1hcHMubGVuZ3RoLTFdLGQucHVzaChuZXcgbWQodix2b2lkIDAsdm9pZCAwLGQubGVuZ3RoK2YubGVuZ3RoKSkpLG4tLSx2JiZzLmFwcGVuZE1hcCh2LG4pfWVsc2Ugby5tYXliZVN0ZXAocC5zdGVwKTtpZihwLnNlbGVjdGlvbilyZXR1cm4gbD1zP3Auc2VsZWN0aW9uLm1hcChzLnNsaWNlKG4pKTpwLnNlbGVjdGlvbixjPW5ldyB0KHRoaXMuaXRlbXMuc2xpY2UoMCxhKS5hcHBlbmQoZi5yZXZlcnNlKCkuY29uY2F0KGQpKSx0aGlzLmV2ZW50Q291bnQtMSksITF9LHRoaXMuaXRlbXMubGVuZ3RoLDApLHtyZW1haW5pbmc6Yyx0cmFuc2Zvcm06byxzZWxlY3Rpb246bH19YWRkVHJhbnNmb3JtKGUscixhLHMpe2xldCBuPVtdLG89dGhpcy5ldmVudENvdW50LGw9dGhpcy5pdGVtcyxjPSFzJiZsLmxlbmd0aD9sLmdldChsLmxlbmd0aC0xKTpudWxsO2ZvcihsZXQgZj0wO2Y8ZS5zdGVwcy5sZW5ndGg7ZisrKXtsZXQgcD1lLnN0ZXBzW2ZdLmludmVydChlLmRvY3NbZl0pLGg9bmV3IG1kKGUubWFwcGluZy5tYXBzW2ZdLHAsciksbTsobT1jJiZjLm1lcmdlKGgpKSYmKGg9bSxmP24ucG9wKCk6bD1sLnNsaWNlKDAsbC5sZW5ndGgtMSkpLG4ucHVzaChoKSxyJiYobysrLHI9dm9pZCAwKSxzfHwoYz1oKX1sZXQgZD1vLWEuZGVwdGg7cmV0dXJuIGQ+U1JhJiYobD1rUmEobCxkKSxvLT1kKSxuZXcgdChsLmFwcGVuZChuKSxvKX1yZW1hcHBpbmcoZSxyKXtsZXQgYT1uZXcgUXk7cmV0dXJuIHRoaXMuaXRlbXMuZm9yRWFjaCgocyxuKT0+e2xldCBvPXMubWlycm9yT2Zmc2V0IT1udWxsJiZuLXMubWlycm9yT2Zmc2V0Pj1lP2EubWFwcy5sZW5ndGgtcy5taXJyb3JPZmZzZXQ6dm9pZCAwO2EuYXBwZW5kTWFwKHMubWFwLG8pfSxlLHIpLGF9YWRkTWFwcyhlKXtyZXR1cm4gdGhpcy5ldmVudENvdW50PT0wP3RoaXM6bmV3IHQodGhpcy5pdGVtcy5hcHBlbmQoZS5tYXAocj0+bmV3IG1kKHIpKSksdGhpcy5ldmVudENvdW50KX1yZWJhc2VkKGUscil7aWYoIXRoaXMuZXZlbnRDb3VudClyZXR1cm4gdGhpcztsZXQgYT1bXSxzPU1hdGgubWF4KDAsdGhpcy5pdGVtcy5sZW5ndGgtciksbj1lLm1hcHBpbmcsbz1lLnN0ZXBzLmxlbmd0aCxsPXRoaXMuZXZlbnRDb3VudDt0aGlzLml0ZW1zLmZvckVhY2goaD0+e2guc2VsZWN0aW9uJiZsLS19LHMpO2xldCBjPXI7dGhpcy5pdGVtcy5mb3JFYWNoKGg9PntsZXQgbT1uLmdldE1pcnJvcigtLWMpO2lmKG09PW51bGwpcmV0dXJuO289TWF0aC5taW4obyxtKTtsZXQgdj1uLm1hcHNbbV07aWYoaC5zdGVwKXtsZXQgYj1lLnN0ZXBzW21dLmludmVydChlLmRvY3NbbV0pLGc9aC5zZWxlY3Rpb24mJmguc2VsZWN0aW9uLm1hcChuLnNsaWNlKGMrMSxtKSk7ZyYmbCsrLGEucHVzaChuZXcgbWQodixiLGcpKX1lbHNlIGEucHVzaChuZXcgbWQodikpfSxzKTtsZXQgZD1bXTtmb3IobGV0IGg9cjtoPG87aCsrKWQucHVzaChuZXcgbWQobi5tYXBzW2hdKSk7bGV0IGY9dGhpcy5pdGVtcy5zbGljZSgwLHMpLmFwcGVuZChkKS5hcHBlbmQoYSkscD1uZXcgdChmLGwpO3JldHVybiBwLmVtcHR5SXRlbUNvdW50KCk+d1JhJiYocD1wLmNvbXByZXNzKHRoaXMuaXRlbXMubGVuZ3RoLWEubGVuZ3RoKSkscH1lbXB0eUl0ZW1Db3VudCgpe2xldCBlPTA7cmV0dXJuIHRoaXMuaXRlbXMuZm9yRWFjaChyPT57ci5zdGVwfHxlKyt9KSxlfWNvbXByZXNzKGU9dGhpcy5pdGVtcy5sZW5ndGgpe2xldCByPXRoaXMucmVtYXBwaW5nKDAsZSksYT1yLm1hcHMubGVuZ3RoLHM9W10sbj0wO3JldHVybiB0aGlzLml0ZW1zLmZvckVhY2goKG8sbCk9PntpZihsPj1lKXMucHVzaChvKSxvLnNlbGVjdGlvbiYmbisrO2Vsc2UgaWYoby5zdGVwKXtsZXQgYz1vLnN0ZXAubWFwKHIuc2xpY2UoYSkpLGQ9YyYmYy5nZXRNYXAoKTtpZihhLS0sZCYmci5hcHBlbmRNYXAoZCxhKSxjKXtsZXQgZj1vLnNlbGVjdGlvbiYmby5zZWxlY3Rpb24ubWFwKHIuc2xpY2UoYSkpO2YmJm4rKztsZXQgcD1uZXcgbWQoZC5pbnZlcnQoKSxjLGYpLGgsbT1zLmxlbmd0aC0xOyhoPXMubGVuZ3RoJiZzW21dLm1lcmdlKHApKT9zW21dPWg6cy5wdXNoKHApfX1lbHNlIG8ubWFwJiZhLS19LHRoaXMuaXRlbXMubGVuZ3RoLDApLG5ldyB0KFk1dC5mcm9tKHMucmV2ZXJzZSgpKSxuKX19O1E5LmVtcHR5PW5ldyBROShZNXQuZW1wdHksMCk7aShrUmEsImN1dE9mZkV2ZW50cyIpO21kPWNsYXNzIHR7c3RhdGlje2kodGhpcywiSXRlbSIpfWNvbnN0cnVjdG9yKGUscixhLHMpe3RoaXMubWFwPWUsdGhpcy5zdGVwPXIsdGhpcy5zZWxlY3Rpb249YSx0aGlzLm1pcnJvck9mZnNldD1zfW1lcmdlKGUpe2lmKHRoaXMuc3RlcCYmZS5zdGVwJiYhZS5zZWxlY3Rpb24pe2xldCByPWUuc3RlcC5tZXJnZSh0aGlzLnN0ZXApO2lmKHIpcmV0dXJuIG5ldyB0KHIuZ2V0TWFwKCkuaW52ZXJ0KCkscix0aGlzLnNlbGVjdGlvbil9fX0sZ2Q9Y2xhc3N7c3RhdGlje2kodGhpcywiSGlzdG9yeVN0YXRlIil9Y29uc3RydWN0b3IoZSxyLGEscyxuKXt0aGlzLmRvbmU9ZSx0aGlzLnVuZG9uZT1yLHRoaXMucHJldlJhbmdlcz1hLHRoaXMucHJldlRpbWU9cyx0aGlzLnByZXZDb21wb3NpdGlvbj1ufX0sU1JhPTIwO2koTVJhLCJhcHBseVRyYW5zYWN0aW9uIik7aShDUmEsImlzQWRqYWNlbnRUbyIpO2kodUtyLCJyYW5nZXNGb3IiKTtpKEs1dCwibWFwUmFuZ2VzIik7aSh6UmEsImhpc3RUcmFuc2FjdGlvbiIpO1o1dD0hMSxwS3I9bnVsbDtpKEFoZSwibXVzdFByZXNlcnZlSXRlbXMiKTtpKF9SYSwiY2xvc2VIaXN0b3J5Iik7YmQ9bmV3IExzKCJoaXN0b3J5IiksZktyPW5ldyBMcygiY2xvc2VIaXN0b3J5Iik7aShRNXQsImhpc3RvcnkiKTtpKEVoZSwiYnVpbGRDb21tYW5kIik7SWhlPUVoZSghMSwhMCksUGhlPUVoZSghMCwhMCksVFJhPUVoZSghMSwhMSksTFJhPUVoZSghMCwhMSk7aShEUmEsInVuZG9EZXB0aCIpO2koJFJhLCJyZWRvRGVwdGgiKTtpKEFSYSwiaXNIaXN0b3J5VHJhbnNhY3Rpb24iKX0pO3ZhciBtS3I9dSgoKT0+e2hLcigpfSk7dmFyIE5oZSxnS3I9dSgoKT0+e2hpKCk7bUtyKCk7TmhlPWtpLmNyZWF0ZSh7bmFtZToiaGlzdG9yeSIsYWRkT3B0aW9ucygpe3JldHVybntkZXB0aDoxMDAsbmV3R3JvdXBEZWxheTo1MDB9fSxhZGRDb21tYW5kcygpe3JldHVybnt1bmRvOmkoKCk9Pih7c3RhdGU6dCxkaXNwYXRjaDplfSk9PkloZSh0LGUpLCJ1bmRvIikscmVkbzppKCgpPT4oe3N0YXRlOnQsZGlzcGF0Y2g6ZX0pPT5QaGUodCxlKSwicmVkbyIpfX0sYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCl7cmV0dXJuW1E1dCh0aGlzLm9wdGlvbnMpXX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC16IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy51bmRvKCksIk1vZC16IiksIlNoaWZ0LU1vZC16IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIlNoaWZ0LU1vZC16IiksIk1vZC15IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIk1vZC15IiksIk1vZC1cdTA0NEYiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnVuZG8oKSwiTW9kLVx1MDQ0RiIpLCJTaGlmdC1Nb2QtXHUwNDRGIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5yZWRvKCksIlNoaWZ0LU1vZC1cdTA0NEYiKX19fSl9KTt2YXIgT2hlLGJLcj11KCgpPT57aGkoKTtQdGUoKTtPaGU9dGkuY3JlYXRlKHtuYW1lOiJob3Jpem9udGFsUnVsZSIsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LGdyb3VwOiJibG9jayIscGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImhyIn1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczp0fSl7cmV0dXJuWyJociIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0SG9yaXpvbnRhbFJ1bGU6aSgoKT0+KHtjaGFpbjp0LHN0YXRlOmV9KT0+e2lmKCF2aGUoZSxlLnNjaGVtYS5ub2Rlc1t0aGlzLm5hbWVdKSlyZXR1cm4hMTtsZXR7c2VsZWN0aW9uOnJ9PWUseyRmcm9tOmEsJHRvOnN9PXIsbj10KCk7cmV0dXJuIGEucGFyZW50T2Zmc2V0PT09MD9uLmluc2VydENvbnRlbnRBdCh7ZnJvbTpNYXRoLm1heChhLnBvcy0xLDApLHRvOnMucG9zfSx7dHlwZTp0aGlzLm5hbWV9KTpiaGUocik/bi5pbnNlcnRDb250ZW50QXQocy5wb3Mse3R5cGU6dGhpcy5uYW1lfSk6bi5pbnNlcnRDb250ZW50KHt0eXBlOnRoaXMubmFtZX0pLG4uY29tbWFuZCgoe3RyOm8sZGlzcGF0Y2g6bH0pPT57dmFyIGM7aWYobCl7bGV0eyR0bzpkfT1vLnNlbGVjdGlvbixmPWQuZW5kKCk7aWYoZC5ub2RlQWZ0ZXIpZC5ub2RlQWZ0ZXIuaXNUZXh0YmxvY2s/by5zZXRTZWxlY3Rpb24oZXIuY3JlYXRlKG8uZG9jLGQucG9zKzEpKTpkLm5vZGVBZnRlci5pc0Jsb2NrP28uc2V0U2VsZWN0aW9uKEl0LmNyZWF0ZShvLmRvYyxkLnBvcykpOm8uc2V0U2VsZWN0aW9uKGVyLmNyZWF0ZShvLmRvYyxkLnBvcykpO2Vsc2V7bGV0IHA9KGM9ZC5wYXJlbnQudHlwZS5jb250ZW50TWF0Y2guZGVmYXVsdFR5cGUpPT09bnVsbHx8Yz09PXZvaWQgMD92b2lkIDA6Yy5jcmVhdGUoKTtwJiYoby5pbnNlcnQoZixwKSxvLnNldFNlbGVjdGlvbihlci5jcmVhdGUoby5kb2MsZisxKSkpfW8uc2Nyb2xsSW50b1ZpZXcoKX1yZXR1cm4hMH0pLnJ1bigpfSwic2V0SG9yaXpvbnRhbFJ1bGUiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5beGhlKHtmaW5kOi9eKD86LS0tfOKAlC18X19fXHN8XCpcKlwqXHMpJC8sdHlwZTp0aGlzLnR5cGV9KV19fSl9KTt2YXIgeEtyLHZLcix5S3Isd0tyLFJoZSxrS3I9dSgoKT0+e2hpKCk7eEtyPS8oPzpefFxzKShcKig/IVxzK1wqKSgoPzpbXipdKykpXCooPyFccytcKikpJC8sdktyPS8oPzpefFxzKShcKig/IVxzK1wqKSgoPzpbXipdKykpXCooPyFccytcKikpL2cseUtyPS8oPzpefFxzKShfKD8hXHMrXykoKD86W15fXSspKV8oPyFccytfKSkkLyx3S3I9Lyg/Ol58XHMpKF8oPyFccytfKSgoPzpbXl9dKykpXyg/IVxzK18pKS9nLFJoZT1Pbi5jcmVhdGUoe25hbWU6Iml0YWxpYyIsYWRkT3B0aW9ucygpe3JldHVybntIVE1MQXR0cmlidXRlczp7fX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJlbSJ9LHt0YWc6ImkiLGdldEF0dHJzOmkodD0+dC5zdHlsZS5mb250U3R5bGUhPT0ibm9ybWFsIiYmbnVsbCwiZ2V0QXR0cnMiKX0se3N0eWxlOiJmb250LXN0eWxlPW5vcm1hbCIsY2xlYXJNYXJrOmkodD0+dC50eXBlLm5hbWU9PT10aGlzLm5hbWUsImNsZWFyTWFyayIpfSx7c3R5bGU6ImZvbnQtc3R5bGU9aXRhbGljIn1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczp0fSl7cmV0dXJuWyJlbSIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRJdGFsaWM6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQuc2V0TWFyayh0aGlzLm5hbWUpLCJzZXRJdGFsaWMiKSx0b2dnbGVJdGFsaWM6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQudG9nZ2xlTWFyayh0aGlzLm5hbWUpLCJ0b2dnbGVJdGFsaWMiKSx1bnNldEl0YWxpYzppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC51bnNldE1hcmsodGhpcy5uYW1lKSwidW5zZXRJdGFsaWMiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtaSI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlSXRhbGljKCksIk1vZC1pIiksIk1vZC1JIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVJdGFsaWMoKSwiTW9kLUkiKX19LGFkZElucHV0UnVsZXMoKXtyZXR1cm5bYTIoe2ZpbmQ6eEtyLHR5cGU6dGhpcy50eXBlfSksYTIoe2ZpbmQ6eUtyLHR5cGU6dGhpcy50eXBlfSldfSxhZGRQYXN0ZVJ1bGVzKCl7cmV0dXJuW0kxKHtmaW5kOnZLcix0eXBlOnRoaXMudHlwZX0pLEkxKHtmaW5kOndLcix0eXBlOnRoaXMudHlwZX0pXX19KX0pO3ZhciBGaGUsU0tyPXUoKCk9PntoaSgpO0ZoZT10aS5jcmVhdGUoe25hbWU6Imxpc3RJdGVtIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9LGJ1bGxldExpc3RUeXBlTmFtZToiYnVsbGV0TGlzdCIsb3JkZXJlZExpc3RUeXBlTmFtZToib3JkZXJlZExpc3QifX0sY29udGVudDoicGFyYWdyYXBoIGJsb2NrKiIsZGVmaW5pbmc6ITAscGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6ImxpIn1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczp0fSl7cmV0dXJuWyJsaSIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpLDBdfSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybntFbnRlcjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5zcGxpdExpc3RJdGVtKHRoaXMubmFtZSksIkVudGVyIiksVGFiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNpbmtMaXN0SXRlbSh0aGlzLm5hbWUpLCJUYWIiKSwiU2hpZnQtVGFiIjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy5saWZ0TGlzdEl0ZW0odGhpcy5uYW1lKSwiU2hpZnQtVGFiIil9fX0pfSk7dmFyIEVSYSxNS3IsWDV0LEJoZSxDS3I9dSgoKT0+e2hpKCk7RVJhPSJsaXN0SXRlbSIsTUtyPSJ0ZXh0U3R5bGUiLFg1dD0vXihcZCspXC5ccyQvLEJoZT10aS5jcmVhdGUoe25hbWU6Im9yZGVyZWRMaXN0IixhZGRPcHRpb25zKCl7cmV0dXJue2l0ZW1UeXBlTmFtZToibGlzdEl0ZW0iLEhUTUxBdHRyaWJ1dGVzOnt9LGtlZXBNYXJrczohMSxrZWVwQXR0cmlidXRlczohMX19LGdyb3VwOiJibG9jayBsaXN0Iixjb250ZW50KCl7cmV0dXJuYCR7dGhpcy5vcHRpb25zLml0ZW1UeXBlTmFtZX0rYH0sYWRkQXR0cmlidXRlcygpe3JldHVybntzdGFydDp7ZGVmYXVsdDoxLHBhcnNlSFRNTDppKHQ9PnQuaGFzQXR0cmlidXRlKCJzdGFydCIpP3BhcnNlSW50KHQuZ2V0QXR0cmlidXRlKCJzdGFydCIpfHwiIiwxMCk6MSwicGFyc2VIVE1MIil9LHR5cGU6e2RlZmF1bHQ6bnVsbCxwYXJzZUhUTUw6aSh0PT50LmdldEF0dHJpYnV0ZSgidHlwZSIpLCJwYXJzZUhUTUwiKX19fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoib2wifV19LHJlbmRlckhUTUwoe0hUTUxBdHRyaWJ1dGVzOnR9KXtsZXR7c3RhcnQ6ZSwuLi5yfT10O3JldHVybiBlPT09MT9bIm9sIixzYSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsciksMF06WyJvbCIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybnt0b2dnbGVPcmRlcmVkTGlzdDppKCgpPT4oe2NvbW1hbmRzOnQsY2hhaW46ZX0pPT50aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXM/ZSgpLnRvZ2dsZUxpc3QodGhpcy5uYW1lLHRoaXMub3B0aW9ucy5pdGVtVHlwZU5hbWUsdGhpcy5vcHRpb25zLmtlZXBNYXJrcykudXBkYXRlQXR0cmlidXRlcyhFUmEsdGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcyhNS3IpKS5ydW4oKTp0LnRvZ2dsZUxpc3QodGhpcy5uYW1lLHRoaXMub3B0aW9ucy5pdGVtVHlwZU5hbWUsdGhpcy5vcHRpb25zLmtlZXBNYXJrcyksInRvZ2dsZU9yZGVyZWRMaXN0Iil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLVNoaWZ0LTciOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZU9yZGVyZWRMaXN0KCksIk1vZC1TaGlmdC03Iil9fSxhZGRJbnB1dFJ1bGVzKCl7bGV0IHQ9aGQoe2ZpbmQ6WDV0LHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6aShlPT4oe3N0YXJ0OitlWzFdfSksImdldEF0dHJpYnV0ZXMiKSxqb2luUHJlZGljYXRlOmkoKGUscik9PnIuY2hpbGRDb3VudCtyLmF0dHJzLnN0YXJ0PT09K2VbMV0sImpvaW5QcmVkaWNhdGUiKX0pO3JldHVybih0aGlzLm9wdGlvbnMua2VlcE1hcmtzfHx0aGlzLm9wdGlvbnMua2VlcEF0dHJpYnV0ZXMpJiYodD1oZCh7ZmluZDpYNXQsdHlwZTp0aGlzLnR5cGUsa2VlcE1hcmtzOnRoaXMub3B0aW9ucy5rZWVwTWFya3Msa2VlcEF0dHJpYnV0ZXM6dGhpcy5vcHRpb25zLmtlZXBBdHRyaWJ1dGVzLGdldEF0dHJpYnV0ZXM6aShlPT4oe3N0YXJ0OitlWzFdLC4uLnRoaXMuZWRpdG9yLmdldEF0dHJpYnV0ZXMoTUtyKX0pLCJnZXRBdHRyaWJ1dGVzIiksam9pblByZWRpY2F0ZTppKChlLHIpPT5yLmNoaWxkQ291bnQrci5hdHRycy5zdGFydD09PStlWzFdLCJqb2luUHJlZGljYXRlIiksZWRpdG9yOnRoaXMuZWRpdG9yfSkpLFt0XX19KX0pO3ZhciBIaGUsektyPXUoKCk9PntoaSgpO0hoZT10aS5jcmVhdGUoe25hbWU6InBhcmFncmFwaCIscHJpb3JpdHk6MWUzLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxncm91cDoiYmxvY2siLGNvbnRlbnQ6ImlubGluZSoiLHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJwIn1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczp0fSl7cmV0dXJuWyJwIixzYSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsdCksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldFBhcmFncmFwaDppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC5zZXROb2RlKHRoaXMubmFtZSksInNldFBhcmFncmFwaCIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC1BbHQtMCI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0UGFyYWdyYXBoKCksIk1vZC1BbHQtMCIpfX19KX0pO3ZhciBfS3IsVEtyLHFoZSxMS3I9dSgoKT0+e2hpKCk7X0tyPS8oPzpefFxzKSh+fig/IVxzK35+KSgoPzpbXn5dKykpfn4oPyFccyt+fikpJC8sVEtyPS8oPzpefFxzKSh+fig/IVxzK35+KSgoPzpbXn5dKykpfn4oPyFccyt+fikpL2cscWhlPU9uLmNyZWF0ZSh7bmFtZToic3RyaWtlIixhZGRPcHRpb25zKCl7cmV0dXJue0hUTUxBdHRyaWJ1dGVzOnt9fX0scGFyc2VIVE1MKCl7cmV0dXJuW3t0YWc6InMifSx7dGFnOiJkZWwifSx7dGFnOiJzdHJpa2UifSx7c3R5bGU6InRleHQtZGVjb3JhdGlvbiIsY29uc3VtaW5nOiExLGdldEF0dHJzOmkodD0+dC5pbmNsdWRlcygibGluZS10aHJvdWdoIik/e306ITEsImdldEF0dHJzIil9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6dH0pe3JldHVyblsicyIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpLDBdfSxhZGRDb21tYW5kcygpe3JldHVybntzZXRTdHJpa2U6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQuc2V0TWFyayh0aGlzLm5hbWUpLCJzZXRTdHJpa2UiKSx0b2dnbGVTdHJpa2U6aSgoKT0+KHtjb21tYW5kczp0fSk9PnQudG9nZ2xlTWFyayh0aGlzLm5hbWUpLCJ0b2dnbGVTdHJpa2UiKSx1bnNldFN0cmlrZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC51bnNldE1hcmsodGhpcy5uYW1lKSwidW5zZXRTdHJpa2UiKX19LGFkZEtleWJvYXJkU2hvcnRjdXRzKCl7cmV0dXJueyJNb2QtU2hpZnQtcyI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMudG9nZ2xlU3RyaWtlKCksIk1vZC1TaGlmdC1zIil9fSxhZGRJbnB1dFJ1bGVzKCl7cmV0dXJuW2EyKHtmaW5kOl9Lcix0eXBlOnRoaXMudHlwZX0pXX0sYWRkUGFzdGVSdWxlcygpe3JldHVybltJMSh7ZmluZDpUS3IsdHlwZTp0aGlzLnR5cGV9KV19fSl9KTt2YXIgVmhlLERLcj11KCgpPT57aGkoKTtWaGU9dGkuY3JlYXRlKHtuYW1lOiJ0ZXh0Iixncm91cDoiaW5saW5lIn0pfSk7dmFyICRLcj17fTtWZSgkS3Ise1N0YXJ0ZXJLaXQ6KCk9Pko1dCxkZWZhdWx0OigpPT5KNXR9KTt2YXIgSjV0LEFLcj11KCgpPT57aGkoKTtGWXIoKTtqWXIoKTtXWXIoKTtLWXIoKTtYWXIoKTtKWXIoKTtyS3IoKTtuS3IoKTtvS3IoKTtsS3IoKTtnS3IoKTtiS3IoKTtrS3IoKTtTS3IoKTtDS3IoKTt6S3IoKTtMS3IoKTtES3IoKTtKNXQ9a2kuY3JlYXRlKHtuYW1lOiJzdGFydGVyS2l0IixhZGRFeHRlbnNpb25zKCl7bGV0IHQ9W107cmV0dXJuIHRoaXMub3B0aW9ucy5ib2xkIT09ITEmJnQucHVzaCh3aGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5ib2xkKSksdGhpcy5vcHRpb25zLmJsb2NrcXVvdGUhPT0hMSYmdC5wdXNoKHloZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmJsb2NrcXVvdGUpKSx0aGlzLm9wdGlvbnMuYnVsbGV0TGlzdCE9PSExJiZ0LnB1c2goa2hlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuYnVsbGV0TGlzdCkpLHRoaXMub3B0aW9ucy5jb2RlIT09ITEmJnQucHVzaChTaGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5jb2RlKSksdGhpcy5vcHRpb25zLmNvZGVCbG9jayE9PSExJiZ0LnB1c2goTWhlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuY29kZUJsb2NrKSksdGhpcy5vcHRpb25zLmRvY3VtZW50IT09ITEmJnQucHVzaChDaGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5kb2N1bWVudCkpLHRoaXMub3B0aW9ucy5kcm9wY3Vyc29yIT09ITEmJnQucHVzaCh6aGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5kcm9wY3Vyc29yKSksdGhpcy5vcHRpb25zLmdhcGN1cnNvciE9PSExJiZ0LnB1c2goVGhlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuZ2FwY3Vyc29yKSksdGhpcy5vcHRpb25zLmhhcmRCcmVhayE9PSExJiZ0LnB1c2goTGhlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuaGFyZEJyZWFrKSksdGhpcy5vcHRpb25zLmhlYWRpbmchPT0hMSYmdC5wdXNoKERoZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmhlYWRpbmcpKSx0aGlzLm9wdGlvbnMuaGlzdG9yeSE9PSExJiZ0LnB1c2goTmhlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuaGlzdG9yeSkpLHRoaXMub3B0aW9ucy5ob3Jpem9udGFsUnVsZSE9PSExJiZ0LnB1c2goT2hlLmNvbmZpZ3VyZSh0aGlzLm9wdGlvbnMuaG9yaXpvbnRhbFJ1bGUpKSx0aGlzLm9wdGlvbnMuaXRhbGljIT09ITEmJnQucHVzaChSaGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5pdGFsaWMpKSx0aGlzLm9wdGlvbnMubGlzdEl0ZW0hPT0hMSYmdC5wdXNoKEZoZS5jb25maWd1cmUodGhpcy5vcHRpb25zLmxpc3RJdGVtKSksdGhpcy5vcHRpb25zLm9yZGVyZWRMaXN0IT09ITEmJnQucHVzaChCaGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy5vcmRlcmVkTGlzdCkpLHRoaXMub3B0aW9ucy5wYXJhZ3JhcGghPT0hMSYmdC5wdXNoKEhoZS5jb25maWd1cmUodGhpcy5vcHRpb25zLnBhcmFncmFwaCkpLHRoaXMub3B0aW9ucy5zdHJpa2UhPT0hMSYmdC5wdXNoKHFoZS5jb25maWd1cmUodGhpcy5vcHRpb25zLnN0cmlrZSkpLHRoaXMub3B0aW9ucy50ZXh0IT09ITEmJnQucHVzaChWaGUuY29uZmlndXJlKHRoaXMub3B0aW9ucy50ZXh0KSksdH19KX0pO3ZhciBFS3I9e307VmUoRUtyLHtVbmRlcmxpbmU6KCk9PmU4dCxkZWZhdWx0OigpPT5lOHR9KTt2YXIgZTh0LElLcj11KCgpPT57aGkoKTtlOHQ9T24uY3JlYXRlKHtuYW1lOiJ1bmRlcmxpbmUiLGFkZE9wdGlvbnMoKXtyZXR1cm57SFRNTEF0dHJpYnV0ZXM6e319fSxwYXJzZUhUTUwoKXtyZXR1cm5be3RhZzoidSJ9LHtzdHlsZToidGV4dC1kZWNvcmF0aW9uIixjb25zdW1pbmc6ITEsZ2V0QXR0cnM6aSh0PT50LmluY2x1ZGVzKCJ1bmRlcmxpbmUiKT97fTohMSwiZ2V0QXR0cnMiKX1dfSxyZW5kZXJIVE1MKHtIVE1MQXR0cmlidXRlczp0fSl7cmV0dXJuWyJ1IixzYSh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsdCksMF19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldFVuZGVybGluZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC5zZXRNYXJrKHRoaXMubmFtZSksInNldFVuZGVybGluZSIpLHRvZ2dsZVVuZGVybGluZTppKCgpPT4oe2NvbW1hbmRzOnR9KT0+dC50b2dnbGVNYXJrKHRoaXMubmFtZSksInRvZ2dsZVVuZGVybGluZSIpLHVuc2V0VW5kZXJsaW5lOmkoKCk9Pih7Y29tbWFuZHM6dH0pPT50LnVuc2V0TWFyayh0aGlzLm5hbWUpLCJ1bnNldFVuZGVybGluZSIpfX0sYWRkS2V5Ym9hcmRTaG9ydGN1dHMoKXtyZXR1cm57Ik1vZC11IjppKCgpPT50aGlzLmVkaXRvci5jb21tYW5kcy50b2dnbGVVbmRlcmxpbmUoKSwiTW9kLXUiKSwiTW9kLVUiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnRvZ2dsZVVuZGVybGluZSgpLCJNb2QtVSIpfX19KX0pO3ZhciBQS3I9e307VmUoUEtyLHtUZXh0QWxpZ246KCk9PnQ4dCxkZWZhdWx0OigpPT50OHR9KTt2YXIgdDh0LE5Lcj11KCgpPT57aGkoKTt0OHQ9a2kuY3JlYXRlKHtuYW1lOiJ0ZXh0QWxpZ24iLGFkZE9wdGlvbnMoKXtyZXR1cm57dHlwZXM6W10sYWxpZ25tZW50czpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCIsImp1c3RpZnkiXSxkZWZhdWx0QWxpZ25tZW50Om51bGx9fSxhZGRHbG9iYWxBdHRyaWJ1dGVzKCl7cmV0dXJuW3t0eXBlczp0aGlzLm9wdGlvbnMudHlwZXMsYXR0cmlidXRlczp7dGV4dEFsaWduOntkZWZhdWx0OnRoaXMub3B0aW9ucy5kZWZhdWx0QWxpZ25tZW50LHBhcnNlSFRNTDppKHQ9PntsZXQgZT10LnN0eWxlLnRleHRBbGlnbjtyZXR1cm4gdGhpcy5vcHRpb25zLmFsaWdubWVudHMuaW5jbHVkZXMoZSk/ZTp0aGlzLm9wdGlvbnMuZGVmYXVsdEFsaWdubWVudH0sInBhcnNlSFRNTCIpLHJlbmRlckhUTUw6aSh0PT50LnRleHRBbGlnbj97c3R5bGU6YHRleHQtYWxpZ246ICR7dC50ZXh0QWxpZ259YH06e30sInJlbmRlckhUTUwiKX19fV19LGFkZENvbW1hbmRzKCl7cmV0dXJue3NldFRleHRBbGlnbjppKHQ9Pih7Y29tbWFuZHM6ZX0pPT50aGlzLm9wdGlvbnMuYWxpZ25tZW50cy5pbmNsdWRlcyh0KT90aGlzLm9wdGlvbnMudHlwZXMubWFwKHI9PmUudXBkYXRlQXR0cmlidXRlcyhyLHt0ZXh0QWxpZ246dH0pKS5ldmVyeShyPT5yKTohMSwic2V0VGV4dEFsaWduIiksdW5zZXRUZXh0QWxpZ246aSgoKT0+KHtjb21tYW5kczp0fSk9PnRoaXMub3B0aW9ucy50eXBlcy5tYXAoZT0+dC5yZXNldEF0dHJpYnV0ZXMoZSwidGV4dEFsaWduIikpLmV2ZXJ5KGU9PmUpLCJ1bnNldFRleHRBbGlnbiIpLHRvZ2dsZVRleHRBbGlnbjppKHQ9Pih7ZWRpdG9yOmUsY29tbWFuZHM6cn0pPT50aGlzLm9wdGlvbnMuYWxpZ25tZW50cy5pbmNsdWRlcyh0KT9lLmlzQWN0aXZlKHt0ZXh0QWxpZ246dH0pP3IudW5zZXRUZXh0QWxpZ24oKTpyLnNldFRleHRBbGlnbih0KTohMSwidG9nZ2xlVGV4dEFsaWduIil9fSxhZGRLZXlib2FyZFNob3J0Y3V0cygpe3JldHVybnsiTW9kLVNoaWZ0LWwiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNldFRleHRBbGlnbigibGVmdCIpLCJNb2QtU2hpZnQtbCIpLCJNb2QtU2hpZnQtZSI6aSgoKT0+dGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKCJjZW50ZXIiKSwiTW9kLVNoaWZ0LWUiKSwiTW9kLVNoaWZ0LXIiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNldFRleHRBbGlnbigicmlnaHQiKSwiTW9kLVNoaWZ0LXIiKSwiTW9kLVNoaWZ0LWoiOmkoKCk9PnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNldFRleHRBbGlnbigianVzdGlmeSIpLCJNb2QtU2hpZnQtaiIpfX19KX0pO2Z1bmN0aW9uIFJSYSh0LGUpe3JldHVybiB0IGluIGV8fChlW3RdPVtdKSxlW3RdfWZ1bmN0aW9uIFg5KHQsZSxyKXtlW3I4dF0mJihlW2FyZV09ITAsZVtpcmVdPSEwKSxlW2E4dF0mJihlW2FyZV09ITAsZVtpOHRdPSEwKSxlW2FyZV0mJihlW2lyZV09ITApLGVbaTh0XSYmKGVbaXJlXT0hMCksZVtpcmVdJiYoZVtzOHRdPSEwKSxlW09Lcl0mJihlW3M4dF09ITApO2ZvcihsZXQgYSBpbiBlKXtsZXQgcz1SUmEoYSxyKTtzLmluZGV4T2YodCk8MCYmcy5wdXNoKHQpfX1mdW5jdGlvbiBGUmEodCxlKXtsZXQgcj17fTtmb3IobGV0IGEgaW4gZSllW2FdLmluZGV4T2YodCk+PTAmJihyW2FdPSEwKTtyZXR1cm4gcn1mdW5jdGlvbiBXbyh0PW51bGwpe3RoaXMuaj17fSx0aGlzLmpyPVtdLHRoaXMuamQ9bnVsbCx0aGlzLnQ9dH1mdW5jdGlvbiBqUmEodD1bXSl7bGV0IGU9e307V28uZ3JvdXBzPWU7bGV0IHI9bmV3IFdvO3k2ZT09bnVsbCYmKHk2ZT1HS3IoSVJhKSksdzZlPT1udWxsJiYodzZlPUdLcihQUmEpKSxpdChyLCInIixuNmUpLGl0KHIsInsiLG5yZSksaXQociwifSIsb3JlKSxpdChyLCJbIixVaGUpLGl0KHIsIl0iLFdoZSksaXQociwiKCIsR2hlKSxpdChyLCIpIixZaGUpLGl0KHIsIjwiLEtoZSksaXQociwiPiIsWmhlKSxpdChyLCJcdUZGMDgiLFFoZSksaXQociwiXHVGRjA5IixYaGUpLGl0KHIsIlx1MzAwQyIsSmhlKSxpdChyLCJcdTMwMEQiLGU2ZSksaXQociwiXHUzMDBFIix0NmUpLGl0KHIsIlx1MzAwRiIscjZlKSxpdChyLCJcdUZGMUMiLGE2ZSksaXQociwiXHVGRjFFIixpNmUpLGl0KHIsIiYiLHM2ZSksaXQociwiKiIsbzZlKSxpdChyLCJAIixlZiksaXQociwiYCIsYzZlKSxpdChyLCJeIixkNmUpLGl0KHIsIjoiLHRmKSxpdChyLCIsIixmOHQpLGl0KHIsIiQiLHU2ZSksaXQociwiLiIseGQpLGl0KHIsIj0iLHA2ZSksaXQociwiISIsaDh0KSxpdChyLCItIixpMiksaXQociwiJSIsbHJlKSxpdChyLCJ8IixmNmUpLGl0KHIsIisiLGg2ZSksaXQociwiIyIsbTZlKSxpdChyLCI/IixjcmUpLGl0KHIsJyInLG04dCksaXQociwiLyIsdmQpLGl0KHIsIjsiLGc4dCksaXQociwifiIsZHJlKSxpdChyLCJfIixnNmUpLGl0KHIsIlxcIixsNmUpLGl0KHIsIlx1MzBGQiIsSEtyKTtsZXQgYT1XaShyLHdkLGQ4dCx7W3I4dF06ITB9KTtXaShhLHdkLGEpO2xldCBzPVdpKGEseWQsRktyLHtbYXJlXTohMH0pLG49V2koYSx5dyxCS3Ise1tpcmVdOiEwfSksbz1XaShyLHlkLGQzLHtbYTh0XTohMH0pO1dpKG8sd2QscyksV2kobyx5ZCxvKSxXaShzLHdkLHMpLFdpKHMseWQscyk7bGV0IGw9V2kocix5dyxvOHQse1tpOHRdOiEwfSk7V2kobCx5ZCksV2kobCx3ZCxuKSxXaShsLHl3LGwpLFdpKG4sd2QsbiksV2kobix5ZCksV2kobix5dyxuKTtsZXQgYz1pdChyLGI4dCxwOHQse1tuOHRdOiEwfSksZD1pdChyLGpLcix1OHQse1tuOHRdOiEwfSksZj1XaShyLHY2ZSx1OHQse1tuOHRdOiEwfSk7aXQocix4OHQsZiksaXQoZCxiOHQsYyksaXQoZCx4OHQsZiksV2koZCx2NmUsZiksaXQoZixqS3IpLGl0KGYsYjh0KSxXaShmLHY2ZSxmKSxpdChmLHg4dCxmKTtsZXQgcD1XaShyLHg2ZSxxS3Ise1tPS3JdOiEwfSk7aXQocCwiIyIpLFdpKHAseDZlLHApLGl0KHAscVJhLHApO2xldCBoPWl0KHAsVlJhKTtpdChoLCIjIiksV2koaCx4NmUscCk7bGV0IG09W1t5ZCxvXSxbd2Qsc11dLHY9W1t5ZCxudWxsXSxbeXcsbF0sW3dkLG5dXTtmb3IobGV0IGI9MDtiPHk2ZS5sZW5ndGg7YisrKXJmKHIseTZlW2JdLGw4dCxkMyxtKTtmb3IobGV0IGI9MDtiPHc2ZS5sZW5ndGg7YisrKXJmKHIsdzZlW2JdLGM4dCxvOHQsdik7WDkobDh0LHt0bGQ6ITAsYXNjaWk6ITB9LGUpLFg5KGM4dCx7dXRsZDohMCxhbHBoYTohMH0sZSkscmYociwiZmlsZSIsamhlLGQzLG0pLHJmKHIsIm1haWx0byIsamhlLGQzLG0pLHJmKHIsImh0dHAiLHZ3LGQzLG0pLHJmKHIsImh0dHBzIix2dyxkMyxtKSxyZihyLCJmdHAiLHZ3LGQzLG0pLHJmKHIsImZ0cHMiLHZ3LGQzLG0pLFg5KGpoZSx7c2NoZW1lOiEwLGFzY2lpOiEwfSxlKSxYOSh2dyx7c2xhc2hzY2hlbWU6ITAsYXNjaWk6ITB9LGUpLHQ9dC5zb3J0KChiLGcpPT5iWzBdPmdbMF0/MTotMSk7Zm9yKGxldCBiPTA7Yjx0Lmxlbmd0aDtiKyspe2xldCBnPXRbYl1bMF0saz10W2JdWzFdP3tbTlJhXTohMH06e1tPUmFdOiEwfTtnLmluZGV4T2YoIi0iKT49MD9rW3M4dF09ITA6eWQudGVzdChnKT93ZC50ZXN0KGcpP2tbYXJlXT0hMDprW2E4dF09ITA6a1tyOHRdPSEwLFJLcihyLGcsZyxrKX1yZXR1cm4gUktyKHIsImxvY2FsaG9zdCIsc3JlLHthc2NpaTohMH0pLHIuamQ9bmV3IFdvKGI2ZSkse3N0YXJ0OnIsdG9rZW5zOk9iamVjdC5hc3NpZ24oe2dyb3VwczplfSxWS3IpfX1mdW5jdGlvbiBVS3IodCxlKXtsZXQgcj1XS3IoZS5yZXBsYWNlKC9bQS1aXS9nLGw9PmwudG9Mb3dlckNhc2UoKSkpLGE9ci5sZW5ndGgscz1bXSxuPTAsbz0wO2Zvcig7bzxhOyl7bGV0IGw9dCxjPW51bGwsZD0wLGY9bnVsbCxwPS0xLGg9LTE7Zm9yKDtvPGEmJihjPWwuZ28ocltvXSkpOylsPWMsbC5hY2NlcHRzKCk/KHA9MCxoPTAsZj1sKTpwPj0wJiYocCs9cltvXS5sZW5ndGgsaCsrKSxkKz1yW29dLmxlbmd0aCxuKz1yW29dLmxlbmd0aCxvKys7bi09cCxvLT1oLGQtPXAscy5wdXNoKHt0OmYudCx2OmUuc2xpY2Uobi1kLG4pLHM6bi1kLGU6bn0pfXJldHVybiBzfWZ1bmN0aW9uIFdLcih0KXtsZXQgZT1bXSxyPXQubGVuZ3RoLGE9MDtmb3IoO2E8cjspe2xldCBzPXQuY2hhckNvZGVBdChhKSxuLG89czw1NTI5Nnx8cz41NjMxOXx8YSsxPT09cnx8KG49dC5jaGFyQ29kZUF0KGErMSkpPDU2MzIwfHxuPjU3MzQzP3RbYV06dC5zbGljZShhLGErMik7ZS5wdXNoKG8pLGErPW8ubGVuZ3RofXJldHVybiBlfWZ1bmN0aW9uIHJmKHQsZSxyLGEscyl7bGV0IG4sbz1lLmxlbmd0aDtmb3IobGV0IGw9MDtsPG8tMTtsKyspe2xldCBjPWVbbF07dC5qW2NdP249dC5qW2NdOihuPW5ldyBXbyhhKSxuLmpyPXMuc2xpY2UoKSx0LmpbY109biksdD1ufXJldHVybiBuPW5ldyBXbyhyKSxuLmpyPXMuc2xpY2UoKSx0LmpbZVtvLTFdXT1uLG59ZnVuY3Rpb24gR0tyKHQpe2xldCBlPVtdLHI9W10sYT0wLHM9IjAxMjM0NTY3ODkiO2Zvcig7YTx0Lmxlbmd0aDspe2xldCBuPTA7Zm9yKDtzLmluZGV4T2YodFthK25dKT49MDspbisrO2lmKG4+MCl7ZS5wdXNoKHIuam9pbigiIikpO2ZvcihsZXQgbz1wYXJzZUludCh0LnN1YnN0cmluZyhhLGErbiksMTApO28+MDtvLS0pci5wb3AoKTthKz1ufWVsc2Ugci5wdXNoKHRbYV0pLGErK31yZXR1cm4gZX1mdW5jdGlvbiB1cmUodCxlPW51bGwpe2xldCByPU9iamVjdC5hc3NpZ24oe30sd3cpO3QmJihyPU9iamVjdC5hc3NpZ24ocix0IGluc3RhbmNlb2YgdXJlP3Qubzp0KSk7bGV0IGE9ci5pZ25vcmVUYWdzLHM9W107Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKyspcy5wdXNoKGFbbl0udG9VcHBlckNhc2UoKSk7dGhpcy5vPXIsZSYmKHRoaXMuZGVmYXVsdFJlbmRlcj1lKSx0aGlzLmlnbm9yZVRhZ3M9c31mdW5jdGlvbiBZS3IodCl7cmV0dXJuIHR9ZnVuY3Rpb24gcHJlKHQsZSl7dGhpcy50PSJ0b2tlbiIsdGhpcy52PXQsdGhpcy50az1lfWZ1bmN0aW9uIGt3KHQsZSl7Y2xhc3MgciBleHRlbmRzIHByZXtzdGF0aWN7aSh0aGlzLCJUb2tlbiIpfWNvbnN0cnVjdG9yKHMsbil7c3VwZXIocyxuKSx0aGlzLnQ9dH19Zm9yKGxldCBhIGluIGUpci5wcm90b3R5cGVbYV09ZVthXTtyZXR1cm4gci50PXQscn1mdW5jdGlvbiBXUmEoe2dyb3Vwczp0fSl7bGV0IGU9dC5kb21haW4uY29uY2F0KFtzNmUsbzZlLGVmLGw2ZSxjNmUsZDZlLHU2ZSxwNmUsaTIsZDh0LGxyZSxmNmUsaDZlLG02ZSx2ZCxiNmUsZHJlLGc2ZV0pLHI9W242ZSx0ZixmOHQseGQsaDh0LGxyZSxjcmUsbTh0LGc4dCxLaGUsWmhlLG5yZSxvcmUsV2hlLFVoZSxHaGUsWWhlLFFoZSxYaGUsSmhlLGU2ZSx0NmUscjZlLGE2ZSxpNmVdLGE9W3M2ZSxuNmUsbzZlLGw2ZSxjNmUsZDZlLHU2ZSxwNmUsaTIsbnJlLG9yZSxscmUsZjZlLGg2ZSxtNmUsY3JlLHZkLGI2ZSxkcmUsZzZlXSxzPXMyKCksbj1pdChzLGRyZSk7enIobixhLG4pLHpyKG4sdC5kb21haW4sbik7bGV0IG89czIoKSxsPXMyKCksYz1zMigpO3pyKHMsdC5kb21haW4sbyksenIocyx0LnNjaGVtZSxsKSx6cihzLHQuc2xhc2hzY2hlbWUsYyksenIobyxhLG4pLHpyKG8sdC5kb21haW4sbyk7bGV0IGQ9aXQobyxlZik7aXQobixlZixkKSxpdChsLGVmLGQpLGl0KGMsZWYsZCk7bGV0IGY9aXQobix4ZCk7enIoZixhLG4pLHpyKGYsdC5kb21haW4sbik7bGV0IHA9czIoKTt6cihkLHQuZG9tYWluLHApLHpyKHAsdC5kb21haW4scCk7bGV0IGg9aXQocCx4ZCk7enIoaCx0LmRvbWFpbixwKTtsZXQgbT1zMih2OHQpO3pyKGgsdC50bGQsbSksenIoaCx0LnV0bGQsbSksaXQoZCxzcmUsbSk7bGV0IHY9aXQocCxpMik7aXQodixpMix2KSx6cih2LHQuZG9tYWluLHApLHpyKG0sdC5kb21haW4scCksaXQobSx4ZCxoKSxpdChtLGkyLHYpO2xldCBiPWl0KG0sdGYpO3pyKGIsdC5udW1lcmljLHY4dCk7bGV0IGc9aXQobyxpMikseT1pdChvLHhkKTtpdChnLGkyLGcpLHpyKGcsdC5kb21haW4sbyksenIoeSxhLG4pLHpyKHksdC5kb21haW4sbyk7bGV0IGs9czIoZnJlKTt6cih5LHQudGxkLGspLHpyKHksdC51dGxkLGspLHpyKGssdC5kb21haW4sbyksenIoayxhLG4pLGl0KGsseGQseSksaXQoayxpMixnKSxpdChrLGVmLGQpO2xldCBNPWl0KGssdGYpLE49czIoZnJlKTt6cihNLHQubnVtZXJpYyxOKTtsZXQgXz1zMihmcmUpLFM9czIoKTt6cihfLGUsXyksenIoXyxyLFMpLHpyKFMsZSxfKSx6cihTLHIsUyksaXQoayx2ZCxfKSxpdChOLHZkLF8pO2xldCBPPWl0KGwsdGYpLEw9aXQoYyx0ZiksRT1pdChMLHZkKSxCPWl0KEUsdmQpO3pyKGwsdC5kb21haW4sbyksaXQobCx4ZCx5KSxpdChsLGkyLGcpLHpyKGMsdC5kb21haW4sbyksaXQoYyx4ZCx5KSxpdChjLGkyLGcpLHpyKE8sdC5kb21haW4sXyksaXQoTyx2ZCxfKSxpdChPLGNyZSxfKSx6cihCLHQuZG9tYWluLF8pLHpyKEIsZSxfKSxpdChCLHZkLF8pO2xldCBDPVtbbnJlLG9yZV0sW1VoZSxXaGVdLFtHaGUsWWhlXSxbS2hlLFpoZV0sW1FoZSxYaGVdLFtKaGUsZTZlXSxbdDZlLHI2ZV0sW2E2ZSxpNmVdXTtmb3IobGV0IHo9MDt6PEMubGVuZ3RoO3orKyl7bGV0W0EsJF09Q1t6XSxGPWl0KF8sQSk7aXQoUyxBLEYpLGl0KEYsJCxfKTtsZXQgWT1zMihmcmUpO3pyKEYsZSxZKTtsZXQgRz1zMigpO3pyKEYsciksenIoWSxlLFkpLHpyKFkscixHKSx6cihHLGUsWSksenIoRyxyLEcpLGl0KFksJCxfKSxpdChHLCQsXyl9cmV0dXJuIGl0KHMsc3JlLGspLGl0KHMscDh0LEtLcikse3N0YXJ0OnMsdG9rZW5zOlZLcn19ZnVuY3Rpb24gR1JhKHQsZSxyKXtsZXQgYT1yLmxlbmd0aCxzPTAsbj1bXSxvPVtdO2Zvcig7czxhOyl7bGV0IGw9dCxjPW51bGwsZD1udWxsLGY9MCxwPW51bGwsaD0tMTtmb3IoO3M8YSYmIShjPWwuZ28ocltzXS50KSk7KW8ucHVzaChyW3MrK10pO2Zvcig7czxhJiYoZD1jfHxsLmdvKHJbc10udCkpOyljPW51bGwsbD1kLGwuYWNjZXB0cygpPyhoPTAscD1sKTpoPj0wJiZoKysscysrLGYrKztpZihoPDApcy09ZixzPGEmJihvLnB1c2gocltzXSkscysrKTtlbHNle28ubGVuZ3RoPjAmJihuLnB1c2godzh0KHk4dCxlLG8pKSxvPVtdKSxzLT1oLGYtPWg7bGV0IG09cC50LHY9ci5zbGljZShzLWYscyk7bi5wdXNoKHc4dChtLGUsdikpfX1yZXR1cm4gby5sZW5ndGg+MCYmbi5wdXNoKHc4dCh5OHQsZSxvKSksbn1mdW5jdGlvbiB3OHQodCxlLHIpe2xldCBhPXJbMF0ucyxzPXJbci5sZW5ndGgtMV0uZSxuPWUuc2xpY2UoYSxzKTtyZXR1cm4gbmV3IHQobixyKX1mdW5jdGlvbiBTOHQoKXtyZXR1cm4gV28uZ3JvdXBzPXt9LG5hLnNjYW5uZXI9bnVsbCxuYS5wYXJzZXI9bnVsbCxuYS50b2tlblF1ZXVlPVtdLG5hLnBsdWdpblF1ZXVlPVtdLG5hLmN1c3RvbVNjaGVtZXM9W10sbmEuaW5pdGlhbGl6ZWQ9ITEsbmF9ZnVuY3Rpb24gWVJhKHQsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKGBsaW5raWZ5anM6IEludmFsaWQgdG9rZW4gcGx1Z2luICR7ZX0gKGV4cGVjdHMgZnVuY3Rpb24pYCk7Zm9yKGxldCByPTA7cjxuYS50b2tlblF1ZXVlLmxlbmd0aDtyKyspaWYodD09PW5hLnRva2VuUXVldWVbcl1bMF0pe2hyZShgbGlua2lmeWpzOiB0b2tlbiBwbHVnaW4gIiR7dH0iIGFscmVhZHkgcmVnaXN0ZXJlZCAtIHdpbGwgYmUgb3ZlcndyaXR0ZW5gKSxuYS50b2tlblF1ZXVlW3JdPVt0LGVdO3JldHVybn1uYS50b2tlblF1ZXVlLnB1c2goW3QsZV0pLG5hLmluaXRpYWxpemVkJiZocmUoYGxpbmtpZnlqczogYWxyZWFkeSBpbml0aWFsaXplZCAtIHdpbGwgbm90IHJlZ2lzdGVyIHRva2VuIHBsdWdpbiAiJHt0fSIgJHtrOHR9YCl9ZnVuY3Rpb24gS1JhKHQsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKGBsaW5raWZ5anM6IEludmFsaWQgcGx1Z2luICR7ZX0gKGV4cGVjdHMgZnVuY3Rpb24pYCk7Zm9yKGxldCByPTA7cjxuYS5wbHVnaW5RdWV1ZS5sZW5ndGg7cisrKWlmKHQ9PT1uYS5wbHVnaW5RdWV1ZVtyXVswXSl7aHJlKGBsaW5raWZ5anM6IHBsdWdpbiAiJHt0fSIgYWxyZWFkeSByZWdpc3RlcmVkIC0gd2lsbCBiZSBvdmVyd3JpdHRlbmApLG5hLnBsdWdpblF1ZXVlW3JdPVt0LGVdO3JldHVybn1uYS5wbHVnaW5RdWV1ZS5wdXNoKFt0LGVdKSxuYS5pbml0aWFsaXplZCYmaHJlKGBsaW5raWZ5anM6IGFscmVhZHkgaW5pdGlhbGl6ZWQgLSB3aWxsIG5vdCByZWdpc3RlciBwbHVnaW4gIiR7dH0iICR7azh0fWApfWZ1bmN0aW9uIGs2ZSh0LGU9ITEpe2lmKG5hLmluaXRpYWxpemVkJiZocmUoYGxpbmtpZnlqczogYWxyZWFkeSBpbml0aWFsaXplZCAtIHdpbGwgbm90IHJlZ2lzdGVyIGN1c3RvbSBzY2hlbWUgIiR7dH0iICR7azh0fWApLCEvXlswLTlhLXpdKygtWzAtOWEtel0rKSokLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcihgbGlua2lmeWpzOiBpbmNvcnJlY3Qgc2NoZW1lIGZvcm1hdC4KMS4gTXVzdCBvbmx5IGNvbnRhaW4gZGlnaXRzLCBsb3dlcmNhc2UgQVNDSUkgbGV0dGVycyBvciAiLSIKMi4gQ2Fubm90IHN0YXJ0IG9yIGVuZCB3aXRoICItIgozLiAiLSIgY2Fubm90IHJlcGVhdGApO25hLmN1c3RvbVNjaGVtZXMucHVzaChbdCxlXSl9ZnVuY3Rpb24gUUtyKCl7bmEuc2Nhbm5lcj1qUmEobmEuY3VzdG9tU2NoZW1lcyk7Zm9yKGxldCB0PTA7dDxuYS50b2tlblF1ZXVlLmxlbmd0aDt0KyspbmEudG9rZW5RdWV1ZVt0XVsxXSh7c2Nhbm5lcjpuYS5zY2FubmVyfSk7bmEucGFyc2VyPVdSYShuYS5zY2FubmVyLnRva2Vucyk7Zm9yKGxldCB0PTA7dDxuYS5wbHVnaW5RdWV1ZS5sZW5ndGg7dCsrKW5hLnBsdWdpblF1ZXVlW3RdWzFdKHtzY2FubmVyOm5hLnNjYW5uZXIscGFyc2VyOm5hLnBhcnNlcn0pO3JldHVybiBuYS5pbml0aWFsaXplZD0hMCxuYX1mdW5jdGlvbiBTdyh0KXtyZXR1cm4gbmEuaW5pdGlhbGl6ZWR8fFFLcigpLEdSYShuYS5wYXJzZXIuc3RhcnQsdCxVS3IobmEuc2Nhbm5lci5zdGFydCx0KSl9ZnVuY3Rpb24gUzZlKHQsZT1udWxsLHI9bnVsbCl7aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QiKXtpZihyKXRocm93IEVycm9yKGBsaW5raWZ5anM6IEludmFsaWQgbGluayB0eXBlICR7ZX07IG11c3QgYmUgYSBzdHJpbmdgKTtyPWUsZT1udWxsfWxldCBhPW5ldyB1cmUocikscz1Tdyh0KSxuPVtdO2ZvcihsZXQgbz0wO288cy5sZW5ndGg7bysrKXtsZXQgbD1zW29dO2wuaXNMaW5rJiYoIWV8fGwudD09PWUpJiZhLmNoZWNrKGwpJiZuLnB1c2gobC50b0Zvcm1hdHRlZE9iamVjdChhKSl9cmV0dXJuIG59ZnVuY3Rpb24gWlJhKHQsZT1udWxsKXtsZXQgcj1Tdyh0KTtyZXR1cm4gci5sZW5ndGg9PT0xJiZyWzBdLmlzTGluayYmKCFlfHxyWzBdLnQ9PT1lKX12YXIgSVJhLFBSYSxyOHQsYTh0LGk4dCxhcmUsaXJlLHM4dCxPS3IsTlJhLE9SYSxuOHQsenIsV2ksUktyLGl0LGQzLG84dCxGS3IsQktyLHNyZSxsOHQsYzh0LGpoZSx2dyxkOHQsdTh0LHA4dCxucmUsb3JlLFVoZSxXaGUsR2hlLFloZSxLaGUsWmhlLFFoZSxYaGUsSmhlLGU2ZSx0NmUscjZlLGE2ZSxpNmUsczZlLG42ZSxvNmUsZWYsbDZlLGM2ZSxkNmUsdGYsZjh0LHU2ZSx4ZCxwNmUsaDh0LGkyLGxyZSxmNmUsaDZlLG02ZSxjcmUsbTh0LEhLcixnOHQsdmQsZHJlLGc2ZSxxS3IsYjZlLFZLcix5ZCx5dyx4NmUsQlJhLHdkLHY2ZSxIUmEsaktyLGI4dCxxUmEsVlJhLHg4dCx5NmUsdzZlLHd3LFVSYSx2OHQseTh0LEtLcixmcmUsWktyLHMyLGhyZSxrOHQsbmEsWEtyPXUoKCk9PntJUmE9ImFhYTFycDNiYjBvdHQzdmllNGMxbGUyb2dhZG81dWRoYWJpN2MwYWRlbXk1Y2VudHVyZTZvdW50YW50MHM5bzF0b3I0ZDBzMXVsdDRlMGcxcm8ydG5hNGYwbDFyaWNhNWcwYWtoYW41ZW5jeTVpMGcxcmJ1czNmb3JjZTV0ZWw1a2RuM2wwaWJhYmE0cGF5NGxmaW5hbno2c3RhdGU1eTJzYWNlM3RvbTVtMGF6b240ZXJpY2FuZXhwcmVzczdmYW1pbHkxMXgyZmFtM2ljYTNzdGVyZGFtOG5hbHl0aWNzN2Ryb2lkNXF1YW40ejJvMGwycGFydG1lbnRzOHAwbGU0cTB1YXJlbGxlOHIwYWIxbWNvNGNoaTNteTJwYTJ0MGUzczBkYTJpYTJzb2NpYXRlczl0MGhsZXRhNXRvcm5leTd1MGN0aW9uNWRpMGJsZTNvM3Nwb3N0NXRob3IzbzBzNHcwczJ4MGEyejB1cmU1YmEwYnkyaWR1M25hbWV4NGQxazJyMGNlbG9uYTVsYXljYXJkNHM1ZWZvb3Q1Z2FpbnM2c2ViYWxsNWtldGJhbGw4dWhhdXM1eWVybjViMGMxdDF2YTNjZzFuMmQxZTBhdHMydXR5NGVyMnJsaW40c3QwYnV5NXQyZjFnMWgwYXJ0aTVpMGJsZTNkMWtlMm5nMG8zbzF6MmoxbGFjazBmcmlkYXk5b2NrYnVzdGVyOGcxb21iZXJnN3VlM20wczF3Mm4wcHBhcmliYXM5bzBhdHMzZWhyaW5nZXI4ZmEybTFuZDJvMGswaW5nNXNjaDJ0aWsyb240dDF1dGlxdWU2eDJyMGFkZXNjbzZpZGdlc3RvbmU5b2Fkd2F5NWtlcjN0aGVyNXVzc2VsczdzMXQxdWlsZDBlcnM2c2luZXNzNnkxenozdjF3MXkxejBoM2NhMGIxZmUybDBsMXZpbmtsZWluOW0wZXJhM3Aybm9uM3BldG93bjVpdGFsMG9uZThyMGF2YW40ZHMyZTBlcjBzNHMyc2ExZTFoMWlubzR0MGVyaW5nNWhvbGljN2JhMW4xcmUzYzFkMWVudGVyNG8xcm4zZjBhMWQyZzFoMGFuZWwybmVsNHJpdHk0c2UydDJlYXAzaW50YWk1cmlzdG1hczZvbWU0dXJjaDVpMHByaWFuaTZyY2xlNHNjbzN0YWRlbDRpMGMyeTNrMWwwYWltczRlYW5pbmc2aWNrMm5pYzFxdWU2b3RoaW5nNXVkM3ViMG1lZDZtMW4xbzBhY2gzZGVzM2ZmZWU0bGxlZ2U0b2duZTVtMG1iYW5rNHVuaXR5NnBhbnkycmUzdXRlcjVzZWM0bmRvczNzdHJ1Y3Rpb244dWx0aW5nN3RhY3QzcmFjdG9yczlva2luZzRsMXAycnNpY2E1dW50cnk0cG9uMHM0cnNlczZwYTJyMGVkaXQwY2FyZDR1bmlvbjlpY2tldDVvd24zczF1aXNlMHM2dTBpc2luZWxsYTl2MXcxeDF5MG1ydTNvdTN6MmRhZDFuY2UzdGExZTFpbmczc3VuNHkyY2xrM2RzMmUwYWwwZXIyczNncmVlNGxpdmVyeTVsMW9pdHRlNXRhM21vY3JhdDZudGFsMmlzdDVzaTBnbjR2MmhsMmlhbW9uZHM2ZXQyZ2l0YWw1cmVjdDBvcnk3c2NvdW50M3ZlcjVoMnkyajFrMW0xbnAybzBjczF0b3I0ZzFtYWluczV0MXdubG9hZDdyaXZlNHR2MnViYWkzbmxvcDRwb250NHJiYW41dmFnMnIyejJlYXJ0aDN0MmMwbzJkZWthM3UwY2F0aW9uOGUxZzFtYWlsM2VyY2s1bmVyZ3k0Z2luZWVyMGluZzl0ZXJwcmlzZXMxMHBzb240cXVpcG1lbnQ4cjBpY3Nzb242bmkzczBxMXRhdGU1dDF1MHJvdmlzaW9uOHMydmVudHM1eGNoYW5nZTZwZXJ0M29zZWQ0cmVzczV0cmFzcGFjZTEwZmFnZTJpbDFyd2luZHM2dGgzbWlseTRuMHMycm0wZXJzNXNoaW9uNHQzZWRleDNlZGJhY2s2cnJhcmkzZXJvNmkwZGVsaXR5NW8ybG0ybmFsMW5jZTFpYWw3cmUwc3RvbmU2bWRhbGU2c2gwaW5nNXQwbmVzczZqMWsxbGlja3IzZ2h0czRyMm9yaXN0NHdlcnM1eTJtMW8wbzBkMXRiYWxsNnJkMWV4MnNhbGU0dW0zdW5kYXRpb244eDJyMGVlMXNlbml1czdsMW9nYW5zNG50aWVyN3RyMnVqaXRzdTVuMGQycm5pdHVyZTd0Ym9sNXlpM2dhMGwwbGVyeTNvMXVwNG1lMHMzcDFyZGVuNHkyYjBpejNkMG4yZTBhMW50MGluZzVvcmdlNWYxZzBlZTNoMWkwZnQwczN2ZXMyaW5nNWwwYXNzM2Uxb2JhbDJvNG0wYWlsM2JoMm8xeDJuMW9kYWRkeTVsZDBwb2ludDZmMm8wZHllYXI1ZzBsZTRwMXQxdjJwMXExcjBhaW5nZXI1cGhpY3M1dGlzNGVlbjNpcGUzb2Nlcnk0dXA0czF0MXUwY2NpM2dlMmlkZTJ0YXJzNXJ1M3cxeTJoYWlyMm1idXJnNW5nb3V0NXVzM2JvMmRmYzBiYW5rN2VhbHRoMGNhcmU4bHAxc2lua2k2cmUxbWVzNWlwaG9wNHNhbWl0c3U3dGFjaGk1djJrMHQybTFuMW9ja2V5NGxkaW5nczVpZGF5NW1lZGVwb3Q1Z29vZHM1czBlbnNlN25kYTNyc2Uzc3BpdGFsNXQwaW5nNXQwZWxzM21haWw1dXNlM3cycjFzYmMzdDF1MGdoZXM1eWF0dDN1bmRhaTdpYm0yY2JjMmUxdTJkMWUwZWUzZm0ya2FubzRsMW0wYW1hdDRkYjJtbzBiaWxpZW45bjBjMWR1c3RyaWVzOGZpbml0aTVvMmcxazFzdGl0dXRlNnVyYW5jZTRlNHQwZXJuYXRpb25hbDEwdWl0NHZlc3RtZW50czEwbzFwaXJhbmdhN3ExcjBpc2g0czBtYWlsaTV0MGFuYnVsN3QwYXUydjNqYWd1YXI0dmEzY2IyZTBlcDJ0enQzd2Vscnk2aW8ybGwybTBwMm5qMm8wYnMxdXJnNHQxeTJwMG1vcmdhbjZyczN1ZWdvczRuaXBlcjdrYXVmZW41ZGRpM2UwcnJ5aG90ZWxzNnByb3BlcnRpZXMxNGZoMmcxaDFpMGExZHMybTFuZGxlNHRjaGVuNXdpM20xbjFvZWxuM21hdHN1NXNoZXI1cDBtZzJuMnIwZDFlZDN1b2tncm91cDh3MXkwb3RvNHoybGEwY2FpeGE1bWJvcmdoaW5pOGVyM25kMHJvdmVyNnhlc3M1c2FsbGU1dDBpbm8zcm9iZTV3MHllcjViMWMxZHMyZWFzZTNjbGVyYzVmcmFrNGdhbDJvMnh1czRnYnQzaTBkbDJmZTBpbnN1cmFuY2U5c3R5bGU3Z2h0aW5nNmtlMmxseTNtaXRlZDRvMm5jb2xuNGsydmUxaW5nNWsxbGMxcDJvYW4wczNja2VyM3VzM2wxbmRvbjR0dGUxbzN2ZTNwbDBmaW5hbmNpYWwxMXIxczF0MGQwYTN1MG5kYmVjazZ4ZTF1cnk1djF5Mm1hMGRyaWQ0aWYxc29uNGtldXA0bjBhZ2VtZW50N2dvM3AxcmtldDBpbmczczRyaW90dDVzaGFsbHM3dHRlbDViYTJjMGtpbnNleTdkMWUwZDBpYTNldDJsYm91cm5lN21lMW9yaWFsNm4wdTJyY2ttc2Q3ZzFoMWlhbWkzY3Jvc29mdDdsMW5pMXQydDBzdWJpc2hpOWsxbDBiMXMybTBhMm4xbzBiaTBsZTRkYTJlMWkxbTFuYXNoM2V5MnN0ZXI1cm1vbjN0Z2FnZTZzY293NHRvMHJjeWNsZXM5djBpZTRwMXExcjFzMGQydDBuMXIydTBzZXVtM2ljNHYxdzF4MXkxejJuYTBiMWdveWE0bWUydnkzYmEyYzFlMGMxdDBiYW5rNGZsaXg0d29yazV1c3RhcjV3MHMyeHQwZGlyZWN0N3VzNGYwbDJnMG8yaGsyaTBjbzJrZTFvbjNuamEzc3NhbjF5NWwxbzBraWEzcnRvbjR3MHJ1ejN0djRwMXIwYTF3MnR0MnUxeWMyejJvYmkxc2VydmVyN2ZmaWNlNWtpbmF3YTZsYXlhbjBncm91cDlsbzNtMGVnYTRuZTFnMWwwaW5lNW9vMnBlbjNyYWNsZTNuZ2U0ZzBhbmljNWlnaW5zNnNha2E0dHN1a2E0dDJ2aDNwYTBnZTJuYXNvbmljN3JpczJzMXRuZXJzNHMxeTN5MmNjdzNlMHQyZjBpemVyNWcxaDBhcm1hY3k2ZDFpbGlwczVvbmUydG8wZ3JhcGh5NnM0eXNpbzVpY3MxdGV0MnVyZXM2ZDFuMGcxazJvbmVlcjV6emE0azFsMGFjZTJ5MHN0YXRpb245dW1iaW5nNXMzbTFuMGMyb2hsMmtlcjNsaXRpZTVybjJzdDNyMGF4aTNlc3MzaW1lM28wZDB1Y3Rpb25zOGYxZ3Jlc3NpdmU4bW8ycGVydGllczN5NXRlY3Rpb244dTBkZW50aWFsOXMxdDF1YjJ3MGMyeTJxYTFwb24zdWViZWMzc3Q1cmFjaW5nNGRpbzRlMGFkMWxlc3RhdGU2dG9yMnk0Y2lwZXM1ZDBzdG9uZTV1bWJyZWxsYTloYWIzaXNlMG4zdDJsaWFuY2U2bjB0MGFsczVwYWlyM29ydDN1YmxpY2FuOHN0MGF1cmFudDh2aWV3MHM1eHJvdGg2aWNoMGFyZGxpNm9oM2wxbzFwMm8wY2tzM2RlbzNnZXJzNG9tM3MwdnAzdTBnYnkzaHIybjJ3MGUyeXVreXU2c2EwYXJsYW5kNmZlMHR5NGt1cmE0bGUxb24zbXNjbHViNHVuZzVuZHZpazBjb3JvbWFudDEyb2ZpNHAxcmwyczF2ZTJ4bzNiMGkxczJjMGIxaGFlZmZsZXI3bWlkdDRvbGFyc2hpcHM4b2wzdWxlM3dhcno1aWVuY2U1b3QzZDFlMGFyY2gzdDJjdXJlMWl0eTZlazJsZWN0NG5lcjNydmljZXM2dmVuM3cxeDB5M2ZyMmcxaDBhbmdyaWxhNnJwM2VsbDNpYTFrc2hhNW9lczJwMHBpbmc1dWppM3czaTBsazJuYTFnbGVzNXRlM2oxazBpMG4yeTBwZTRsMGluZzRtMGFydDNpbGU0bjBjZjNvMGNjZXIzaWFsNGZ0YmFuazR3YXJlNmh1MmxhcjJ1dGlvbnM3bmcxeTJ5MnBhMGNlM29ydDJ0M3IwbDJzMXQwYWRhMnBsZXM0cjF0ZWJhbms0ZmFybTdjMGdyb3VwNm9ja2hvbG02cmFnZTNlM3JlYW00dWRpbzJ5M3lsZTR1MGNrczNwcGxpZXMzeTJvcnQ1cmYxZ2VyeTV6dWtpNXYxd2F0Y2g0aXNzNHgxeTBkbmV5NHN0ZW1zNnoydGFiMWlwZWk0bGsyb2JhbzRyZ2V0NHRhbW90b3JzNnIydG9vNHgwaTNjMGkyZDBrMmVhbTJjaDBub2xvZ3k4bDFtYXNlazVubmlzNHZhM2YxZzFoMGQxZWF0ZXIycmU2aWFhMmNrZXRzNWVuZGE0cHMycmVzMm9sNGowbWF4eDR4MmswbWF4eDVsMW0wYWxsNG4xbzBkYXkza3lvM29sczNwMXJheTNzaGliYTV0YWwzdXJzM3duMnlvdGEzczNyMGFkZTFpbmc0aW5pbmc1dmVsMGVyczBpbnN1cmFuY2UxNnVzdDN2MnQxdWJlMmkxbmVzM3NodTR2MHMydzF6MnVhMWJhbmszczJnMWsxbmljb20zdmVyc2l0eThvMm9sMnBzMnMxeTF6MnZhMGNhdGlvbnM3bmExZ3VhcmQ3YzFlMGdhczNudHVyZXM2cmlzaWduNW1ceEY2Z2Vuc2JlcmF0ZXIydW5nMTRzaWNoZXJ1bmcxMHQyZzFpMGFqZXM0ZGVvM2cxa2luZzRsbGFzNG4xcDFyZ2luNHNhMWlvbjR2YTFvM2xhYW5kZXJlbjluMW9ka2EzbHZvM3RlMWluZzNvMnlhZ2U1dTJ3YWxlczJtYXJ0NHRlcjRuZzBnb3U1dGNoMGVzNmVhdGhlcjBjaGFubmVsMTJiY2FtM2VyMnNpdGU1ZDBkaW5nNWlibzJyM2YxaG9zd2hvNmllbjJraTJsbGlhbWhpbGw5bjBkb3dzNGUxbmVyczZtZTJvbHRlcnNrbHV3ZXIxMW9kc2lkZTZyazBzMmxkM3cyczF0YzFmM3hib3gzZXJveDRpaHVhbjRuMnh4Mnl6M3lhY2h0czRob28zbWF4dW41bmRleDVlMW9kb2Jhc2hpN2dhMmtvaGFtYTZ1MHR1YmU2dDF1bjN6YTBwcG9zNHJhM2VybzNpcDJtMW9uZTN1ZXJpY2g2dzIiLFBSYT0iXHUwM0I1XHUwM0JCMVx1MDNDNTJcdTA0MzFcdTA0MzMxXHUwNDM1XHUwNDNCM1x1MDQzNFx1MDQzNVx1MDQ0Mlx1MDQzODRcdTA0MzVcdTA0NEUyXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDNCXHUwNDM4XHUwNDNBNlx1MDQzRVx1MDQzQzNcdTA0M0NcdTA0M0FcdTA0MzQyXHUwNDNFXHUwNDNEMVx1MDQ0MVx1MDQzQVx1MDQzMlx1MDQzMDZcdTA0M0VcdTA0M0RcdTA0M0JcdTA0MzBcdTA0MzlcdTA0M0Q1XHUwNDQwXHUwNDMzM1x1MDQ0MFx1MDQ0M1x1MDQ0MTJcdTA0NDQyXHUwNDQxXHUwNDMwXHUwNDM5XHUwNDQyM1x1MDQ0MFx1MDQzMTNcdTA0NDNcdTA0M0FcdTA0NDAzXHUwNDlCXHUwNDMwXHUwNDM3M1x1MDU3MFx1MDU2MVx1MDU3NTNcdTA1RDlcdTA1RTlcdTA1RThcdTA1RDBcdTA1REM1XHUwNUU3XHUwNUQ1XHUwNUREM1x1MDYyN1x1MDYyOFx1MDY0OFx1MDYzOFx1MDYyOFx1MDY0QTVcdTA2MzFcdTA2MjdcdTA2NDVcdTA2NDNcdTA2NDg1XHUwNjQ0XHUwNjI3XHUwNjMxXHUwNjJGXHUwNjQ2NFx1MDYyOFx1MDYyRFx1MDYzMVx1MDY0QVx1MDY0NjVcdTA2MkNcdTA2MzJcdTA2MjdcdTA2MjZcdTA2MzE1XHUwNjMzXHUwNjM5XHUwNjQ4XHUwNjJGXHUwNjRBXHUwNjI5Nlx1MDYzOVx1MDY0NFx1MDY0QVx1MDYyN1x1MDY0NjVcdTA2NDVcdTA2M0FcdTA2MzFcdTA2Mjg1XHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjI3XHUwNjJBNVx1MDZDQ1x1MDYzMVx1MDYyN1x1MDY0NjVcdTA2MjhcdTA2MjdcdTA2MzFcdTA2MkEyXHUwNjMyXHUwNjI3XHUwNjMxNFx1MDY0QVx1MDYyQVx1MDY0MzNcdTA2QkVcdTA2MjdcdTA2MzFcdTA2MkE1XHUwNjJBXHUwNjQ4XHUwNjQ2XHUwNjMzNFx1MDYzM1x1MDY0OFx1MDYyRlx1MDYyN1x1MDY0NjNcdTA2MzFcdTA2NEFcdTA2Mjk1XHUwNjM0XHUwNjI4XHUwNjQzXHUwNjI5NFx1MDYzOVx1MDYzMVx1MDYyN1x1MDY0MjJcdTA2MjgyXHUwNjQ1XHUwNjI3XHUwNjQ2NFx1MDY0MVx1MDY0NFx1MDYzM1x1MDYzN1x1MDY0QVx1MDY0NjZcdTA2NDJcdTA2MzdcdTA2MzEzXHUwNjQzXHUwNjI3XHUwNjJCXHUwNjQ4XHUwNjQ0XHUwNjRBXHUwNjQzNlx1MDY0OFx1MDY0NTNcdTA2NDVcdTA2MzVcdTA2MzEyXHUwNjQ0XHUwNjRBXHUwNjMzXHUwNjRBXHUwNjI3NVx1MDY0OFx1MDYzMVx1MDY0QVx1MDYyQVx1MDYyN1x1MDY0Nlx1MDY0QVx1MDYyNzdcdTA2NDJcdTA2Mzk0XHUwNjQ3XHUwNjQ1XHUwNjMxXHUwNjI3XHUwNjQ3NVx1MDY3RVx1MDYyN1x1MDZBOVx1MDYzM1x1MDYyQVx1MDYyN1x1MDY0NjdcdTA2ODBcdTA2MjdcdTA2MzFcdTA2MkE0XHUwOTE1XHUwOTQ5XHUwOTJFM1x1MDkyOFx1MDk0N1x1MDkxRjNcdTA5MkRcdTA5M0VcdTA5MzBcdTA5MjQwXHUwOTJFXHUwOTREM1x1MDk0Qlx1MDkyNDVcdTA5MzhcdTA5MDJcdTA5MTdcdTA5MjBcdTA5Mjg1XHUwOUFDXHUwOUJFXHUwOTgyXHUwOUIyXHUwOUJFNVx1MDlBRFx1MDlCRVx1MDlCMFx1MDlBNDJcdTA5RjBcdTA5QTQ0XHUwQTJEXHUwQTNFXHUwQTMwXHUwQTI0NFx1MEFBRFx1MEFCRVx1MEFCMFx1MEFBNDRcdTBCMkRcdTBCM0VcdTBCMzBcdTBCMjQ0XHUwQjg3XHUwQkE4XHUwQkNEXHUwQkE0XHUwQkJGXHUwQkFGXHUwQkJFNlx1MEJCMlx1MEI5OVx1MEJDRFx1MEI5NVx1MEJDODZcdTBCOUFcdTBCQkZcdTBCOTlcdTBCQ0RcdTBCOTVcdTBCQUFcdTBCQ0RcdTBCQUFcdTBCQzJcdTBCQjBcdTBCQ0QxMVx1MEMyRFx1MEMzRVx1MEMzMFx1MEMyNFx1MEM0RDVcdTBDQURcdTBDQkVcdTBDQjBcdTBDQTQ0XHUwRDJEXHUwRDNFXHUwRDMwXHUwRDI0XHUwRDAyNVx1MERCRFx1MEQ4Mlx1MEQ5QVx1MERDRjRcdTBFMDRcdTBFMkRcdTBFMjEzXHUwRTQ0XHUwRTE3XHUwRTIyM1x1MEVBNVx1MEVCMlx1MEVBNzNcdTEwRDJcdTEwRDQyXHUzMDdGXHUzMDkzXHUzMDZBM1x1MzBBMlx1MzBERVx1MzBCRVx1MzBGMzRcdTMwQUZcdTMwRTlcdTMwQTZcdTMwQzk0XHUzMEIwXHUzMEZDXHUzMEIwXHUzMEVCNFx1MzBCM1x1MzBFMDJcdTMwQjlcdTMwQzhcdTMwQTIzXHUzMEJCXHUzMEZDXHUzMEVCM1x1MzBENVx1MzBBMVx1MzBDM1x1MzBCN1x1MzBFN1x1MzBGMzZcdTMwRERcdTMwQTRcdTMwRjNcdTMwQzg0XHU0RTE2XHU3NTRDMlx1NEUyRFx1NEZFMTFcdTU2RkQxXHU1NzBCMVx1NjU4N1x1N0Y1MTNcdTRFOUFcdTlBNkNcdTkwMEEzXHU0RjAxXHU0RTFBMlx1NEY1Qlx1NUM3MTJcdTRGRTFcdTYwNkYyXHU1MDY1XHU1RUI3Mlx1NTE2Qlx1NTM2NjJcdTUxNkNcdTUzRjgxXHU3NkNBMlx1NTNGMFx1NkU3RTFcdTcwNjMyXHU1NTQ2XHU1N0NFMVx1NUU5NzFcdTY4MDcyXHU1NjA5XHU5MUNDMFx1NTkyN1x1OTE1Mlx1NUU5NzVcdTU3MjhcdTdFQkYyXHU1OTI3XHU2MkZGMlx1NTkyOVx1NEUzQlx1NjU1OTNcdTVBMzFcdTRFNTAyXHU1QkI2XHU5NkZCMlx1NUU3Rlx1NEUxQzJcdTVGQUVcdTUzNUEyXHU2MTQ4XHU1NTg0Mlx1NjIxMVx1NzIzMVx1NEY2MDNcdTYyNEJcdTY3M0EyXHU2MkRCXHU4MDU4Mlx1NjUzRlx1NTJBMTFcdTVFOUMyXHU2NUIwXHU1MkEwXHU1NzYxMlx1OTVGQjJcdTY1RjZcdTVDMUEyXHU2NkY4XHU3QzREMlx1NjczQVx1Njc4NDJcdTZERTFcdTlBNkNcdTk1MjEzXHU2RTM4XHU2MjBGMlx1NkZCM1x1OTU4MDJcdTcwQjlcdTc3MEIyXHU3OUZCXHU1MkE4Mlx1N0VDNFx1N0VDN1x1NjczQVx1Njc4NDRcdTdGNTFcdTU3NDAxXHU1RTk3MVx1N0FEOTFcdTdFREMyXHU4MDU0XHU5MDFBMlx1OEMzN1x1NkI0QzJcdThEMkRcdTcyNjkyXHU5MDFBXHU4Q0E5Mlx1OTZDNlx1NTZFMjJcdTk2RkJcdThBMEFcdTc2QzhcdTc5RDE0XHU5OERFXHU1MjI5XHU2RDY2M1x1OThERlx1NTRDMTJcdTk5MTBcdTUzODUyXHU5OTk5XHU2ODNDXHU5MUNDXHU2MkM5M1x1NkUyRjJcdUIyRjdcdUIxMzcxXHVDRUY0Mlx1QzBCQ1x1QzEzMTJcdUQ1NUNcdUFENkQyIixyOHQ9Im51bWVyaWMiLGE4dD0iYXNjaWkiLGk4dD0iYWxwaGEiLGFyZT0iYXNjaWludW1lcmljIixpcmU9ImFscGhhbnVtZXJpYyIsczh0PSJkb21haW4iLE9Lcj0iZW1vamkiLE5SYT0ic2NoZW1lIixPUmE9InNsYXNoc2NoZW1lIixuOHQ9IndoaXRlc3BhY2UiO2koUlJhLCJyZWdpc3Rlckdyb3VwIik7aShYOSwiYWRkVG9Hcm91cHMiKTtpKEZSYSwiZmxhZ3NGb3JUb2tlbiIpO2koV28sIlN0YXRlIiksV28uZ3JvdXBzPXt9LFdvLnByb3RvdHlwZT17YWNjZXB0cygpe3JldHVybiEhdGhpcy50fSxnbyh0KXtsZXQgZT10aGlzLHI9ZS5qW3RdO2lmKHIpcmV0dXJuIHI7Zm9yKGxldCBhPTA7YTxlLmpyLmxlbmd0aDthKyspe2xldCBzPWUuanJbYV1bMF0sbj1lLmpyW2FdWzFdO2lmKG4mJnMudGVzdCh0KSlyZXR1cm4gbn1yZXR1cm4gZS5qZH0saGFzKHQsZT0hMSl7cmV0dXJuIGU/dCBpbiB0aGlzLmo6ISF0aGlzLmdvKHQpfSx0YSh0LGUscixhKXtmb3IobGV0IHM9MDtzPHQubGVuZ3RoO3MrKyl0aGlzLnR0KHRbc10sZSxyLGEpfSx0cih0LGUscixhKXthPWF8fFdvLmdyb3VwcztsZXQgcztyZXR1cm4gZSYmZS5qP3M9ZToocz1uZXcgV28oZSksciYmYSYmWDkoZSxyLGEpKSx0aGlzLmpyLnB1c2goW3Qsc10pLHN9LHRzKHQsZSxyLGEpe2xldCBzPXRoaXMsbj10Lmxlbmd0aDtpZighbilyZXR1cm4gcztmb3IobGV0IG89MDtvPG4tMTtvKyspcz1zLnR0KHRbb10pO3JldHVybiBzLnR0KHRbbi0xXSxlLHIsYSl9LHR0KHQsZSxyLGEpe2E9YXx8V28uZ3JvdXBzO2xldCBzPXRoaXM7aWYoZSYmZS5qKXJldHVybiBzLmpbdF09ZSxlO2xldCBuPWUsbyxsPXMuZ28odCk7aWYobD8obz1uZXcgV28sT2JqZWN0LmFzc2lnbihvLmosbC5qKSxvLmpyLnB1c2guYXBwbHkoby5qcixsLmpyKSxvLmpkPWwuamQsby50PWwudCk6bz1uZXcgV28sbil7aWYoYSlpZihvLnQmJnR5cGVvZiBvLnQ9PSJzdHJpbmciKXtsZXQgYz1PYmplY3QuYXNzaWduKEZSYShvLnQsYSkscik7WDkobixjLGEpfWVsc2UgciYmWDkobixyLGEpO28udD1ufXJldHVybiBzLmpbdF09byxvfX07enI9aSgodCxlLHIsYSxzKT0+dC50YShlLHIsYSxzKSwidGEiKSxXaT1pKCh0LGUscixhLHMpPT50LnRyKGUscixhLHMpLCJ0ciIpLFJLcj1pKCh0LGUscixhLHMpPT50LnRzKGUscixhLHMpLCJ0cyIpLGl0PWkoKHQsZSxyLGEscyk9PnQudHQoZSxyLGEscyksInR0IiksZDM9IldPUkQiLG84dD0iVVdPUkQiLEZLcj0iQVNDSUlOVU1FUklDQUwiLEJLcj0iQUxQSEFOVU1FUklDQUwiLHNyZT0iTE9DQUxIT1NUIixsOHQ9IlRMRCIsYzh0PSJVVExEIixqaGU9IlNDSEVNRSIsdnc9IlNMQVNIX1NDSEVNRSIsZDh0PSJOVU0iLHU4dD0iV1MiLHA4dD0iTkwiLG5yZT0iT1BFTkJSQUNFIixvcmU9IkNMT1NFQlJBQ0UiLFVoZT0iT1BFTkJSQUNLRVQiLFdoZT0iQ0xPU0VCUkFDS0VUIixHaGU9Ik9QRU5QQVJFTiIsWWhlPSJDTE9TRVBBUkVOIixLaGU9Ik9QRU5BTkdMRUJSQUNLRVQiLFpoZT0iQ0xPU0VBTkdMRUJSQUNLRVQiLFFoZT0iRlVMTFdJRFRITEVGVFBBUkVOIixYaGU9IkZVTExXSURUSFJJR0hUUEFSRU4iLEpoZT0iTEVGVENPUk5FUkJSQUNLRVQiLGU2ZT0iUklHSFRDT1JORVJCUkFDS0VUIix0NmU9IkxFRlRXSElURUNPUk5FUkJSQUNLRVQiLHI2ZT0iUklHSFRXSElURUNPUk5FUkJSQUNLRVQiLGE2ZT0iRlVMTFdJRFRITEVTU1RIQU4iLGk2ZT0iRlVMTFdJRFRIR1JFQVRFUlRIQU4iLHM2ZT0iQU1QRVJTQU5EIixuNmU9IkFQT1NUUk9QSEUiLG82ZT0iQVNURVJJU0siLGVmPSJBVCIsbDZlPSJCQUNLU0xBU0giLGM2ZT0iQkFDS1RJQ0siLGQ2ZT0iQ0FSRVQiLHRmPSJDT0xPTiIsZjh0PSJDT01NQSIsdTZlPSJET0xMQVIiLHhkPSJET1QiLHA2ZT0iRVFVQUxTIixoOHQ9IkVYQ0xBTUFUSU9OIixpMj0iSFlQSEVOIixscmU9IlBFUkNFTlQiLGY2ZT0iUElQRSIsaDZlPSJQTFVTIixtNmU9IlBPVU5EIixjcmU9IlFVRVJZIixtOHQ9IlFVT1RFIixIS3I9IkZVTExXSURUSE1JRERMRURPVCIsZzh0PSJTRU1JIix2ZD0iU0xBU0giLGRyZT0iVElMREUiLGc2ZT0iVU5ERVJTQ09SRSIscUtyPSJFTU9KSSIsYjZlPSJTWU0iLFZLcj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBTFBIQU5VTUVSSUNBTDpCS3IsQU1QRVJTQU5EOnM2ZSxBUE9TVFJPUEhFOm42ZSxBU0NJSU5VTUVSSUNBTDpGS3IsQVNURVJJU0s6bzZlLEFUOmVmLEJBQ0tTTEFTSDpsNmUsQkFDS1RJQ0s6YzZlLENBUkVUOmQ2ZSxDTE9TRUFOR0xFQlJBQ0tFVDpaaGUsQ0xPU0VCUkFDRTpvcmUsQ0xPU0VCUkFDS0VUOldoZSxDTE9TRVBBUkVOOlloZSxDT0xPTjp0ZixDT01NQTpmOHQsRE9MTEFSOnU2ZSxET1Q6eGQsRU1PSkk6cUtyLEVRVUFMUzpwNmUsRVhDTEFNQVRJT046aDh0LEZVTExXSURUSEdSRUFURVJUSEFOOmk2ZSxGVUxMV0lEVEhMRUZUUEFSRU46UWhlLEZVTExXSURUSExFU1NUSEFOOmE2ZSxGVUxMV0lEVEhNSURETEVET1Q6SEtyLEZVTExXSURUSFJJR0hUUEFSRU46WGhlLEhZUEhFTjppMixMRUZUQ09STkVSQlJBQ0tFVDpKaGUsTEVGVFdISVRFQ09STkVSQlJBQ0tFVDp0NmUsTE9DQUxIT1NUOnNyZSxOTDpwOHQsTlVNOmQ4dCxPUEVOQU5HTEVCUkFDS0VUOktoZSxPUEVOQlJBQ0U6bnJlLE9QRU5CUkFDS0VUOlVoZSxPUEVOUEFSRU46R2hlLFBFUkNFTlQ6bHJlLFBJUEU6ZjZlLFBMVVM6aDZlLFBPVU5EOm02ZSxRVUVSWTpjcmUsUVVPVEU6bTh0LFJJR0hUQ09STkVSQlJBQ0tFVDplNmUsUklHSFRXSElURUNPUk5FUkJSQUNLRVQ6cjZlLFNDSEVNRTpqaGUsU0VNSTpnOHQsU0xBU0g6dmQsU0xBU0hfU0NIRU1FOnZ3LFNZTTpiNmUsVElMREU6ZHJlLFRMRDpsOHQsVU5ERVJTQ09SRTpnNmUsVVRMRDpjOHQsVVdPUkQ6bzh0LFdPUkQ6ZDMsV1M6dTh0fSkseWQ9L1thLXpdLyx5dz0vXHB7TH0vdSx4NmU9L1xwe0Vtb2ppfS91LEJSYT0vXHVmZTBmLyx3ZD0vXGQvLHY2ZT0vXHMvLEhSYT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBU0NJSV9MRVRURVI6eWQsRElHSVQ6d2QsRU1PSkk6eDZlLEVNT0pJX1ZBUklBVElPTjpCUmEsTEVUVEVSOnl3LFNQQUNFOnY2ZX0pLGpLcj0iXHIiLGI4dD1gCmAscVJhPSJcdUZFMEYiLFZSYT0iXHUyMDBEIix4OHQ9Ilx1RkZGQyIseTZlPW51bGwsdzZlPW51bGw7aShqUmEsImluaXQkMiIpO2koVUtyLCJydW4kMSIpO2koV0tyLCJzdHJpbmdUb0FycmF5Iik7aShyZiwiZmFzdHRzIik7aShHS3IsImRlY29kZVRsZHMiKTt3dz17ZGVmYXVsdFByb3RvY29sOiJodHRwIixldmVudHM6bnVsbCxmb3JtYXQ6WUtyLGZvcm1hdEhyZWY6WUtyLG5sMmJyOiExLHRhZ05hbWU6ImEiLHRhcmdldDpudWxsLHJlbDpudWxsLHZhbGlkYXRlOiEwLHRydW5jYXRlOjEvMCxjbGFzc05hbWU6bnVsbCxhdHRyaWJ1dGVzOm51bGwsaWdub3JlVGFnczpbXSxyZW5kZXI6bnVsbH07aSh1cmUsIk9wdGlvbnMiKSx1cmUucHJvdG90eXBlPXtvOnd3LGlnbm9yZVRhZ3M6W10sZGVmYXVsdFJlbmRlcih0KXtyZXR1cm4gdH0sY2hlY2sodCl7cmV0dXJuIHRoaXMuZ2V0KCJ2YWxpZGF0ZSIsdC50b1N0cmluZygpLHQpfSxnZXQodCxlLHIpe2xldCBhPWUhPW51bGwscz10aGlzLm9bdF07cmV0dXJuIHMmJih0eXBlb2Ygcz09Im9iamVjdCI/KHM9ci50IGluIHM/c1tyLnRdOnd3W3RdLHR5cGVvZiBzPT0iZnVuY3Rpb24iJiZhJiYocz1zKGUscikpKTp0eXBlb2Ygcz09ImZ1bmN0aW9uIiYmYSYmKHM9cyhlLHIudCxyKSkscyl9LGdldE9iaih0LGUscil7bGV0IGE9dGhpcy5vW3RdO3JldHVybiB0eXBlb2YgYT09ImZ1bmN0aW9uIiYmZSE9bnVsbCYmKGE9YShlLHIudCxyKSksYX0scmVuZGVyKHQpe2xldCBlPXQucmVuZGVyKHRoaXMpO3JldHVybih0aGlzLmdldCgicmVuZGVyIixudWxsLHQpfHx0aGlzLmRlZmF1bHRSZW5kZXIpKGUsdC50LHQpfX07aShZS3IsIm5vb3AiKTtVUmE9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsT3B0aW9uczp1cmUsZGVmYXVsdHM6d3d9KTtpKHByZSwiTXVsdGlUb2tlbiIpLHByZS5wcm90b3R5cGU9e2lzTGluazohMSx0b1N0cmluZygpe3JldHVybiB0aGlzLnZ9LHRvSHJlZih0KXtyZXR1cm4gdGhpcy50b1N0cmluZygpfSx0b0Zvcm1hdHRlZFN0cmluZyh0KXtsZXQgZT10aGlzLnRvU3RyaW5nKCkscj10LmdldCgidHJ1bmNhdGUiLGUsdGhpcyksYT10LmdldCgiZm9ybWF0IixlLHRoaXMpO3JldHVybiByJiZhLmxlbmd0aD5yP2Euc3Vic3RyaW5nKDAscikrIlx1MjAyNiI6YX0sdG9Gb3JtYXR0ZWRIcmVmKHQpe3JldHVybiB0LmdldCgiZm9ybWF0SHJlZiIsdGhpcy50b0hyZWYodC5nZXQoImRlZmF1bHRQcm90b2NvbCIpKSx0aGlzKX0sc3RhcnRJbmRleCgpe3JldHVybiB0aGlzLnRrWzBdLnN9LGVuZEluZGV4KCl7cmV0dXJuIHRoaXMudGtbdGhpcy50ay5sZW5ndGgtMV0uZX0sdG9PYmplY3QodD13dy5kZWZhdWx0UHJvdG9jb2wpe3JldHVybnt0eXBlOnRoaXMudCx2YWx1ZTp0aGlzLnRvU3RyaW5nKCksaXNMaW5rOnRoaXMuaXNMaW5rLGhyZWY6dGhpcy50b0hyZWYodCksc3RhcnQ6dGhpcy5zdGFydEluZGV4KCksZW5kOnRoaXMuZW5kSW5kZXgoKX19LHRvRm9ybWF0dGVkT2JqZWN0KHQpe3JldHVybnt0eXBlOnRoaXMudCx2YWx1ZTp0aGlzLnRvRm9ybWF0dGVkU3RyaW5nKHQpLGlzTGluazp0aGlzLmlzTGluayxocmVmOnRoaXMudG9Gb3JtYXR0ZWRIcmVmKHQpLHN0YXJ0OnRoaXMuc3RhcnRJbmRleCgpLGVuZDp0aGlzLmVuZEluZGV4KCl9fSx2YWxpZGF0ZSh0KXtyZXR1cm4gdC5nZXQoInZhbGlkYXRlIix0aGlzLnRvU3RyaW5nKCksdGhpcyl9LHJlbmRlcih0KXtsZXQgZT10aGlzLHI9dGhpcy50b0hyZWYodC5nZXQoImRlZmF1bHRQcm90b2NvbCIpKSxhPXQuZ2V0KCJmb3JtYXRIcmVmIixyLHRoaXMpLHM9dC5nZXQoInRhZ05hbWUiLHIsZSksbj10aGlzLnRvRm9ybWF0dGVkU3RyaW5nKHQpLG89e30sbD10LmdldCgiY2xhc3NOYW1lIixyLGUpLGM9dC5nZXQoInRhcmdldCIscixlKSxkPXQuZ2V0KCJyZWwiLHIsZSksZj10LmdldE9iaigiYXR0cmlidXRlcyIscixlKSxwPXQuZ2V0T2JqKCJldmVudHMiLHIsZSk7cmV0dXJuIG8uaHJlZj1hLGwmJihvLmNsYXNzPWwpLGMmJihvLnRhcmdldD1jKSxkJiYoby5yZWw9ZCksZiYmT2JqZWN0LmFzc2lnbihvLGYpLHt0YWdOYW1lOnMsYXR0cmlidXRlczpvLGNvbnRlbnQ6bixldmVudExpc3RlbmVyczpwfX19O2koa3csImNyZWF0ZVRva2VuQ2xhc3MiKTt2OHQ9a3coImVtYWlsIix7aXNMaW5rOiEwLHRvSHJlZigpe3JldHVybiJtYWlsdG86Iit0aGlzLnRvU3RyaW5nKCl9fSkseTh0PWt3KCJ0ZXh0IiksS0tyPWt3KCJubCIpLGZyZT1rdygidXJsIix7aXNMaW5rOiEwLHRvSHJlZih0PXd3LmRlZmF1bHRQcm90b2NvbCl7cmV0dXJuIHRoaXMuaGFzUHJvdG9jb2woKT90aGlzLnY6YCR7dH06Ly8ke3RoaXMudn1gfSxoYXNQcm90b2NvbCgpe2xldCB0PXRoaXMudGs7cmV0dXJuIHQubGVuZ3RoPj0yJiZ0WzBdLnQhPT1zcmUmJnRbMV0udD09PXRmfX0pLFpLcj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxCYXNlOnByZSxFbWFpbDp2OHQsTXVsdGlUb2tlbjpwcmUsTmw6S0tyLFRleHQ6eTh0LFVybDpmcmUsY3JlYXRlVG9rZW5DbGFzczprd30pLHMyPWkodD0+bmV3IFdvKHQpLCJtYWtlU3RhdGUiKTtpKFdSYSwiaW5pdCQxIik7aShHUmEsInJ1biIpO2kodzh0LCJpbml0TXVsdGlUb2tlbiIpO2hyZT10eXBlb2YgY29uc29sZTwidSImJmNvbnNvbGUmJmNvbnNvbGUud2Fybnx8KCgpPT57fSksazh0PSJ1bnRpbCBtYW51YWwgY2FsbCBvZiBsaW5raWZ5LmluaXQoKS4gUmVnaXN0ZXIgYWxsIHNjaGVtZXMgYW5kIHBsdWdpbnMgYmVmb3JlIGludm9raW5nIGxpbmtpZnkgdGhlIGZpcnN0IHRpbWUuIixuYT17c2Nhbm5lcjpudWxsLHBhcnNlcjpudWxsLHRva2VuUXVldWU6W10scGx1Z2luUXVldWU6W10sY3VzdG9tU2NoZW1lczpbXSxpbml0aWFsaXplZDohMX07aShTOHQsInJlc2V0Iik7aShZUmEsInJlZ2lzdGVyVG9rZW5QbHVnaW4iKTtpKEtSYSwicmVnaXN0ZXJQbHVnaW4iKTtpKGs2ZSwicmVnaXN0ZXJDdXN0b21Qcm90b2NvbCIpO2koUUtyLCJpbml0Iik7aShTdywidG9rZW5pemUiKSxTdy5zY2FuPVVLcjtpKFM2ZSwiZmluZCIpO2koWlJhLCJ0ZXN0Iil9KTt2YXIgZVpyPXt9O1ZlKGVacix7TGluazooKT0+Qzh0LGRlZmF1bHQ6KCk9PkM4dCxpc0FsbG93ZWRVcmk6KCk9PnUzLHBhc3RlUmVnZXg6KCk9PkpLcn0pO2Z1bmN0aW9uIGVGYSh0KXtyZXR1cm4gdC5sZW5ndGg9PT0xP3RbMF0uaXNMaW5rOnQubGVuZ3RoPT09MyYmdFsxXS5pc0xpbms/WyIoKSIsIltdIl0uaW5jbHVkZXModFswXS52YWx1ZSt0WzJdLnZhbHVlKTohMX1mdW5jdGlvbiB0RmEodCl7cmV0dXJuIG5ldyBRYSh7a2V5Om5ldyBMcygiYXV0b2xpbmsiKSxhcHBlbmRUcmFuc2FjdGlvbjppKChlLHIsYSk9PntsZXQgcz1lLnNvbWUoZD0+ZC5kb2NDaGFuZ2VkKSYmIXIuZG9jLmVxKGEuZG9jKSxuPWUuc29tZShkPT5kLmdldE1ldGEoInByZXZlbnRBdXRvbGluayIpKTtpZighc3x8bilyZXR1cm47bGV0e3RyOm99PWEsbD1oaGUoci5kb2MsWy4uLmVdKTtpZihnaGUobCkuZm9yRWFjaCgoe25ld1JhbmdlOmR9KT0+e2xldCBmPW1oZShhLmRvYyxkLG09Pm0uaXNUZXh0YmxvY2spLHAsaDtpZihmLmxlbmd0aD4xKXA9ZlswXSxoPWEuZG9jLnRleHRCZXR3ZWVuKHAucG9zLHAucG9zK3Aubm9kZS5ub2RlU2l6ZSx2b2lkIDAsIiAiKTtlbHNlIGlmKGYubGVuZ3RoKXtsZXQgbT1hLmRvYy50ZXh0QmV0d2VlbihkLmZyb20sZC50bywiICIsIiAiKTtpZighWFJhLnRlc3QobSkpcmV0dXJuO3A9ZlswXSxoPWEuZG9jLnRleHRCZXR3ZWVuKHAucG9zLGQudG8sdm9pZCAwLCIgIil9aWYocCYmaCl7bGV0IG09aC5zcGxpdChRUmEpLmZpbHRlcihCb29sZWFuKTtpZihtLmxlbmd0aDw9MClyZXR1cm4hMTtsZXQgdj1tW20ubGVuZ3RoLTFdLGI9cC5wb3MraC5sYXN0SW5kZXhPZih2KTtpZighdilyZXR1cm4hMTtsZXQgZz1Tdyh2KS5tYXAoeT0+eS50b09iamVjdCh0LmRlZmF1bHRQcm90b2NvbCkpO2lmKCFlRmEoZykpcmV0dXJuITE7Zy5maWx0ZXIoeT0+eS5pc0xpbmspLm1hcCh5PT4oey4uLnksZnJvbTpiK3kuc3RhcnQrMSx0bzpiK3kuZW5kKzF9KSkuZmlsdGVyKHk9PmEuc2NoZW1hLm1hcmtzLmNvZGU/IWEuZG9jLnJhbmdlSGFzTWFyayh5LmZyb20seS50byxhLnNjaGVtYS5tYXJrcy5jb2RlKTohMCkuZmlsdGVyKHk9PnQudmFsaWRhdGUoeS52YWx1ZSkpLmZpbHRlcih5PT50LnNob3VsZEF1dG9MaW5rKHkudmFsdWUpKS5mb3JFYWNoKHk9Pnt4dyh5LmZyb20seS50byxhLmRvYykuc29tZShrPT5rLm1hcmsudHlwZT09PXQudHlwZSl8fG8uYWRkTWFyayh5LmZyb20seS50byx0LnR5cGUuY3JlYXRlKHtocmVmOnkuaHJlZn0pKX0pfX0pLCEhby5zdGVwcy5sZW5ndGgpcmV0dXJuIG99LCJhcHBlbmRUcmFuc2FjdGlvbiIpfSl9ZnVuY3Rpb24gckZhKHQpe3JldHVybiBuZXcgUWEoe2tleTpuZXcgTHMoImhhbmRsZUNsaWNrTGluayIpLHByb3BzOntoYW5kbGVDbGljazppKChlLHIsYSk9Pnt2YXIgcyxuO2lmKGEuYnV0dG9uIT09MHx8IWUuZWRpdGFibGUpcmV0dXJuITE7bGV0IG89YS50YXJnZXQsbD1bXTtmb3IoO28ubm9kZU5hbWUhPT0iRElWIjspbC5wdXNoKG8pLG89by5wYXJlbnROb2RlO2lmKCFsLmZpbmQoaD0+aC5ub2RlTmFtZT09PSJBIikpcmV0dXJuITE7bGV0IGM9cnJlKGUuc3RhdGUsdC50eXBlLm5hbWUpLGQ9YS50YXJnZXQsZj0ocz1kPy5ocmVmKSE9PW51bGwmJnMhPT12b2lkIDA/czpjLmhyZWYscD0obj1kPy50YXJnZXQpIT09bnVsbCYmbiE9PXZvaWQgMD9uOmMudGFyZ2V0O3JldHVybiBkJiZmPyh3aW5kb3cub3BlbihmLHApLCEwKTohMX0sImhhbmRsZUNsaWNrIil9fSl9ZnVuY3Rpb24gYUZhKHQpe3JldHVybiBuZXcgUWEoe2tleTpuZXcgTHMoImhhbmRsZVBhc3RlTGluayIpLHByb3BzOntoYW5kbGVQYXN0ZTppKChlLHIsYSk9PntsZXR7c3RhdGU6c309ZSx7c2VsZWN0aW9uOm59PXMse2VtcHR5Om99PW47aWYobylyZXR1cm4hMTtsZXQgbD0iIjthLmNvbnRlbnQuZm9yRWFjaChkPT57bCs9ZC50ZXh0Q29udGVudH0pO2xldCBjPVM2ZShsLHtkZWZhdWx0UHJvdG9jb2w6dC5kZWZhdWx0UHJvdG9jb2x9KS5maW5kKGQ9PmQuaXNMaW5rJiZkLnZhbHVlPT09bCk7cmV0dXJuIWx8fCFjPyExOnQuZWRpdG9yLmNvbW1hbmRzLnNldE1hcmsodC50eXBlLHtocmVmOmMuaHJlZn0pfSwiaGFuZGxlUGFzdGUiKX19KX1mdW5jdGlvbiB1Myh0LGUpe2xldCByPVsiaHR0cCIsImh0dHBzIiwiZnRwIiwiZnRwcyIsIm1haWx0byIsInRlbCIsImNhbGx0byIsInNtcyIsImNpZCIsInhtcHAiXTtyZXR1cm4gZSYmZS5mb3JFYWNoKGE9PntsZXQgcz10eXBlb2YgYT09InN0cmluZyI/YTphLnNjaGVtZTtzJiZyLnB1c2gocyl9KSwhdHx8dC5yZXBsYWNlKEpSYSwiIikubWF0Y2gobmV3IFJlZ0V4cChgXig/Oig/OiR7ci5qb2luKCJ8Iil9KTp8W15hLXpdfFthLXowLTkrLi1dKyg/OlteYS16Ky4tOl18JCkpYCwiaSIpKX12YXIgTTh0LFFSYSxYUmEsSlJhLEpLcixDOHQsdFpyPXUoKCk9PntoaSgpO1hLcigpO1B0ZSgpO004dD0iW1wwLSBceEEwXHUxNjgwXHUxODBFXHUyMDAwLVx1MjAyOVx1MjA1Rlx1MzAwMF0iLFFSYT1uZXcgUmVnRXhwKE04dCksWFJhPW5ldyBSZWdFeHAoYCR7TTh0fSRgKSxKUmE9bmV3IFJlZ0V4cChNOHQsImciKTtpKGVGYSwiaXNWYWxpZExpbmtTdHJ1Y3R1cmUiKTtpKHRGYSwiYXV0b2xpbmsiKTtpKHJGYSwiY2xpY2tIYW5kbGVyIik7aShhRmEsInBhc3RlSGFuZGxlciIpO0pLcj0vaHR0cHM/OlwvXC8oPzp3d3dcLik/Wy1hLXpBLVowLTlAOiUuXyt+Iz1dezEsMjU2fVwuW2EtekEtWl17Mix9XGIoPzpbLWEtekEtWjAtOUA6JS5fK34jPT8hJi9dKikoPzpbLWEtekEtWjAtOUA6JS5fK34jPT8hJi9dKikvZ2k7aSh1MywiaXNBbGxvd2VkVXJpIik7Qzh0PU9uLmNyZWF0ZSh7bmFtZToibGluayIscHJpb3JpdHk6MWUzLGtlZXBPblNwbGl0OiExLGV4aXRhYmxlOiEwLG9uQ3JlYXRlKCl7dGhpcy5vcHRpb25zLnZhbGlkYXRlJiYhdGhpcy5vcHRpb25zLnNob3VsZEF1dG9MaW5rJiYodGhpcy5vcHRpb25zLnNob3VsZEF1dG9MaW5rPXRoaXMub3B0aW9ucy52YWxpZGF0ZSxjb25zb2xlLndhcm4oIlRoZSBgdmFsaWRhdGVgIG9wdGlvbiBpcyBkZXByZWNhdGVkLiBSZW5hbWUgdG8gdGhlIGBzaG91bGRBdXRvTGlua2Agb3B0aW9uIGluc3RlYWQuIikpLHRoaXMub3B0aW9ucy5wcm90b2NvbHMuZm9yRWFjaCh0PT57aWYodHlwZW9mIHQ9PSJzdHJpbmciKXtrNmUodCk7cmV0dXJufWs2ZSh0LnNjaGVtZSx0Lm9wdGlvbmFsU2xhc2hlcyl9KX0sb25EZXN0cm95KCl7Uzh0KCl9LGluY2x1c2l2ZSgpe3JldHVybiB0aGlzLm9wdGlvbnMuYXV0b2xpbmt9LGFkZE9wdGlvbnMoKXtyZXR1cm57b3Blbk9uQ2xpY2s6ITAsbGlua09uUGFzdGU6ITAsYXV0b2xpbms6ITAscHJvdG9jb2xzOltdLGRlZmF1bHRQcm90b2NvbDoiaHR0cCIsSFRNTEF0dHJpYnV0ZXM6e3RhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3ciLGNsYXNzOm51bGx9LGlzQWxsb3dlZFVyaTppKCh0LGUpPT4hIXUzKHQsZS5wcm90b2NvbHMpLCJpc0FsbG93ZWRVcmkiKSx2YWxpZGF0ZTppKHQ9PiEhdCwidmFsaWRhdGUiKSxzaG91bGRBdXRvTGluazppKHQ9PiEhdCwic2hvdWxkQXV0b0xpbmsiKX19LGFkZEF0dHJpYnV0ZXMoKXtyZXR1cm57aHJlZjp7ZGVmYXVsdDpudWxsLHBhcnNlSFRNTCh0KXtyZXR1cm4gdC5nZXRBdHRyaWJ1dGUoImhyZWYiKX19LHRhcmdldDp7ZGVmYXVsdDp0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMudGFyZ2V0fSxyZWw6e2RlZmF1bHQ6dGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLnJlbH0sY2xhc3M6e2RlZmF1bHQ6dGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLmNsYXNzfX19LHBhcnNlSFRNTCgpe3JldHVyblt7dGFnOiJhW2hyZWZdIixnZXRBdHRyczppKHQ9PntsZXQgZT10LmdldEF0dHJpYnV0ZSgiaHJlZiIpO3JldHVybiFlfHwhdGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaShlLHtkZWZhdWx0VmFsaWRhdGU6aShyPT4hIXUzKHIsdGhpcy5vcHRpb25zLnByb3RvY29scyksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0aGlzLm9wdGlvbnMucHJvdG9jb2xzLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sfSk/ITE6bnVsbH0sImdldEF0dHJzIil9XX0scmVuZGVySFRNTCh7SFRNTEF0dHJpYnV0ZXM6dH0pe3JldHVybiB0aGlzLm9wdGlvbnMuaXNBbGxvd2VkVXJpKHQuaHJlZix7ZGVmYXVsdFZhbGlkYXRlOmkoZT0+ISF1MyhlLHRoaXMub3B0aW9ucy5wcm90b2NvbHMpLCJkZWZhdWx0VmFsaWRhdGUiKSxwcm90b2NvbHM6dGhpcy5vcHRpb25zLnByb3RvY29scyxkZWZhdWx0UHJvdG9jb2w6dGhpcy5vcHRpb25zLmRlZmF1bHRQcm90b2NvbH0pP1siYSIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHQpLDBdOlsiYSIsc2EodGhpcy5vcHRpb25zLkhUTUxBdHRyaWJ1dGVzLHsuLi50LGhyZWY6IiJ9KSwwXX0sYWRkQ29tbWFuZHMoKXtyZXR1cm57c2V0TGluazppKHQ9Pih7Y2hhaW46ZX0pPT57bGV0e2hyZWY6cn09dDtyZXR1cm4gdGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaShyLHtkZWZhdWx0VmFsaWRhdGU6aShhPT4hIXUzKGEsdGhpcy5vcHRpb25zLnByb3RvY29scyksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczp0aGlzLm9wdGlvbnMucHJvdG9jb2xzLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sfSk/ZSgpLnNldE1hcmsodGhpcy5uYW1lLHQpLnNldE1ldGEoInByZXZlbnRBdXRvbGluayIsITApLnJ1bigpOiExfSwic2V0TGluayIpLHRvZ2dsZUxpbms6aSh0PT4oe2NoYWluOmV9KT0+e2xldHtocmVmOnJ9PXQ7cmV0dXJuIHRoaXMub3B0aW9ucy5pc0FsbG93ZWRVcmkocix7ZGVmYXVsdFZhbGlkYXRlOmkoYT0+ISF1MyhhLHRoaXMub3B0aW9ucy5wcm90b2NvbHMpLCJkZWZhdWx0VmFsaWRhdGUiKSxwcm90b2NvbHM6dGhpcy5vcHRpb25zLnByb3RvY29scyxkZWZhdWx0UHJvdG9jb2w6dGhpcy5vcHRpb25zLmRlZmF1bHRQcm90b2NvbH0pP2UoKS50b2dnbGVNYXJrKHRoaXMubmFtZSx0LHtleHRlbmRFbXB0eU1hcmtSYW5nZTohMH0pLnNldE1ldGEoInByZXZlbnRBdXRvbGluayIsITApLnJ1bigpOiExfSwidG9nZ2xlTGluayIpLHVuc2V0TGluazppKCgpPT4oe2NoYWluOnR9KT0+dCgpLnVuc2V0TWFyayh0aGlzLm5hbWUse2V4dGVuZEVtcHR5TWFya1JhbmdlOiEwfSkuc2V0TWV0YSgicHJldmVudEF1dG9saW5rIiwhMCkucnVuKCksInVuc2V0TGluayIpfX0sYWRkUGFzdGVSdWxlcygpe3JldHVybltJMSh7ZmluZDppKHQ9PntsZXQgZT1bXTtpZih0KXtsZXR7cHJvdG9jb2xzOnIsZGVmYXVsdFByb3RvY29sOmF9PXRoaXMub3B0aW9ucyxzPVM2ZSh0KS5maWx0ZXIobj0+bi5pc0xpbmsmJnRoaXMub3B0aW9ucy5pc0FsbG93ZWRVcmkobi52YWx1ZSx7ZGVmYXVsdFZhbGlkYXRlOmkobz0+ISF1MyhvLHIpLCJkZWZhdWx0VmFsaWRhdGUiKSxwcm90b2NvbHM6cixkZWZhdWx0UHJvdG9jb2w6YX0pKTtzLmxlbmd0aCYmcy5mb3JFYWNoKG49PmUucHVzaCh7dGV4dDpuLnZhbHVlLGRhdGE6e2hyZWY6bi5ocmVmfSxpbmRleDpuLnN0YXJ0fSkpfXJldHVybiBlfSwiZmluZCIpLHR5cGU6dGhpcy50eXBlLGdldEF0dHJpYnV0ZXM6aSh0PT57dmFyIGU7cmV0dXJue2hyZWY6KGU9dC5kYXRhKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUuaHJlZn19LCJnZXRBdHRyaWJ1dGVzIil9KV19LGFkZFByb3NlTWlycm9yUGx1Z2lucygpe2xldCB0PVtdLHtwcm90b2NvbHM6ZSxkZWZhdWx0UHJvdG9jb2w6cn09dGhpcy5vcHRpb25zO3JldHVybiB0aGlzLm9wdGlvbnMuYXV0b2xpbmsmJnQucHVzaCh0RmEoe3R5cGU6dGhpcy50eXBlLGRlZmF1bHRQcm90b2NvbDp0aGlzLm9wdGlvbnMuZGVmYXVsdFByb3RvY29sLHZhbGlkYXRlOmkoYT0+dGhpcy5vcHRpb25zLmlzQWxsb3dlZFVyaShhLHtkZWZhdWx0VmFsaWRhdGU6aShzPT4hIXUzKHMsZSksImRlZmF1bHRWYWxpZGF0ZSIpLHByb3RvY29sczplLGRlZmF1bHRQcm90b2NvbDpyfSksInZhbGlkYXRlIiksc2hvdWxkQXV0b0xpbms6dGhpcy5vcHRpb25zLnNob3VsZEF1dG9MaW5rfSkpLHRoaXMub3B0aW9ucy5vcGVuT25DbGljaz09PSEwJiZ0LnB1c2gockZhKHt0eXBlOnRoaXMudHlwZX0pKSx0aGlzLm9wdGlvbnMubGlua09uUGFzdGUmJnQucHVzaChhRmEoe2VkaXRvcjp0aGlzLmVkaXRvcixkZWZhdWx0UHJvdG9jb2w6dGhpcy5vcHRpb25zLmRlZmF1bHRQcm90b2NvbCx0eXBlOnRoaXMudHlwZX0pKSx0fX0pfSk7dmFyIHJacj17fTtWZShyWnIse1R5cG9ncmFwaHk6KCk9Plk4dCxjbG9zZURvdWJsZVF1b3RlOigpPT5MOHQsY2xvc2VTaW5nbGVRdW90ZTooKT0+JDh0LGNvcHlyaWdodDooKT0+STh0LGRlZmF1bHQ6KCk9Plk4dCxlbGxpcHNpczooKT0+Xzh0LGVtRGFzaDooKT0+ejh0LGxhcXVvOigpPT5IOHQsbGVmdEFycm93OigpPT5BOHQsbXVsdGlwbGljYXRpb246KCk9PlY4dCxub3RFcXVhbDooKT0+Qjh0LG9uZUhhbGY6KCk9PlI4dCxvbmVRdWFydGVyOigpPT5XOHQsb3BlbkRvdWJsZVF1b3RlOigpPT5UOHQsb3BlblNpbmdsZVF1b3RlOigpPT5EOHQscGx1c01pbnVzOigpPT5GOHQscmFxdW86KCk9PnE4dCxyZWdpc3RlcmVkVHJhZGVtYXJrOigpPT5POHQscmlnaHRBcnJvdzooKT0+RTh0LHNlcnZpY2VtYXJrOigpPT5OOHQsc3VwZXJzY3JpcHRUaHJlZTooKT0+VTh0LHN1cGVyc2NyaXB0VHdvOigpPT5qOHQsdGhyZWVRdWFydGVyczooKT0+Rzh0LHRyYWRlbWFyazooKT0+UDh0fSk7dmFyIHo4dCxfOHQsVDh0LEw4dCxEOHQsJDh0LEE4dCxFOHQsSTh0LFA4dCxOOHQsTzh0LFI4dCxGOHQsQjh0LEg4dCxxOHQsVjh0LGo4dCxVOHQsVzh0LEc4dCxZOHQsYVpyPXUoKCk9PntoaSgpO3o4dD1pKHQ9PmZpKHtmaW5kOi8tLSQvLHJlcGxhY2U6dD8/Ilx1MjAxNCJ9KSwiZW1EYXNoIiksXzh0PWkodD0+Zmkoe2ZpbmQ6L1wuXC5cLiQvLHJlcGxhY2U6dD8/Ilx1MjAyNiJ9KSwiZWxsaXBzaXMiKSxUOHQ9aSh0PT5maSh7ZmluZDovKD86XnxbXHN7Wyg8JyJcdTIwMThcdTIwMUNdKSgiKSQvLHJlcGxhY2U6dD8/Ilx1MjAxQyJ9KSwib3BlbkRvdWJsZVF1b3RlIiksTDh0PWkodD0+Zmkoe2ZpbmQ6LyIkLyxyZXBsYWNlOnQ/PyJcdTIwMUQifSksImNsb3NlRG91YmxlUXVvdGUiKSxEOHQ9aSh0PT5maSh7ZmluZDovKD86XnxbXHN7Wyg8JyJcdTIwMThcdTIwMUNdKSgnKSQvLHJlcGxhY2U6dD8/Ilx1MjAxOCJ9KSwib3BlblNpbmdsZVF1b3RlIiksJDh0PWkodD0+Zmkoe2ZpbmQ6LyckLyxyZXBsYWNlOnQ/PyJcdTIwMTkifSksImNsb3NlU2luZ2xlUXVvdGUiKSxBOHQ9aSh0PT5maSh7ZmluZDovPC0kLyxyZXBsYWNlOnQ/PyJcdTIxOTAifSksImxlZnRBcnJvdyIpLEU4dD1pKHQ9PmZpKHtmaW5kOi8tPiQvLHJlcGxhY2U6dD8/Ilx1MjE5MiJ9KSwicmlnaHRBcnJvdyIpLEk4dD1pKHQ9PmZpKHtmaW5kOi9cKGNcKSQvLHJlcGxhY2U6dD8/Ilx4QTkifSksImNvcHlyaWdodCIpLFA4dD1pKHQ9PmZpKHtmaW5kOi9cKHRtXCkkLyxyZXBsYWNlOnQ/PyJcdTIxMjIifSksInRyYWRlbWFyayIpLE44dD1pKHQ9PmZpKHtmaW5kOi9cKHNtXCkkLyxyZXBsYWNlOnQ/PyJcdTIxMjAifSksInNlcnZpY2VtYXJrIiksTzh0PWkodD0+Zmkoe2ZpbmQ6L1woclwpJC8scmVwbGFjZTp0Pz8iXHhBRSJ9KSwicmVnaXN0ZXJlZFRyYWRlbWFyayIpLFI4dD1pKHQ9PmZpKHtmaW5kOi8oPzpefFxzKSgxXC8yKVxzJC8scmVwbGFjZTp0Pz8iXHhCRCJ9KSwib25lSGFsZiIpLEY4dD1pKHQ9PmZpKHtmaW5kOi9cK1wvLSQvLHJlcGxhY2U6dD8/Ilx4QjEifSksInBsdXNNaW51cyIpLEI4dD1pKHQ9PmZpKHtmaW5kOi8hPSQvLHJlcGxhY2U6dD8/Ilx1MjI2MCJ9KSwibm90RXF1YWwiKSxIOHQ9aSh0PT5maSh7ZmluZDovPDwkLyxyZXBsYWNlOnQ/PyJceEFCIn0pLCJsYXF1byIpLHE4dD1pKHQ9PmZpKHtmaW5kOi8+PiQvLHJlcGxhY2U6dD8/Ilx4QkIifSksInJhcXVvIiksVjh0PWkodD0+Zmkoe2ZpbmQ6L1xkK1xzPyhbKnhdKVxzP1xkKyQvLHJlcGxhY2U6dD8/Ilx4RDcifSksIm11bHRpcGxpY2F0aW9uIiksajh0PWkodD0+Zmkoe2ZpbmQ6L1xeMiQvLHJlcGxhY2U6dD8/Ilx4QjIifSksInN1cGVyc2NyaXB0VHdvIiksVTh0PWkodD0+Zmkoe2ZpbmQ6L1xeMyQvLHJlcGxhY2U6dD8/Ilx4QjMifSksInN1cGVyc2NyaXB0VGhyZWUiKSxXOHQ9aSh0PT5maSh7ZmluZDovKD86XnxccykoMVwvNClccyQvLHJlcGxhY2U6dD8/Ilx4QkMifSksIm9uZVF1YXJ0ZXIiKSxHOHQ9aSh0PT5maSh7ZmluZDovKD86XnxccykoM1wvNClccyQvLHJlcGxhY2U6dD8/Ilx4QkUifSksInRocmVlUXVhcnRlcnMiKSxZOHQ9a2kuY3JlYXRlKHtuYW1lOiJ0eXBvZ3JhcGh5IixhZGRPcHRpb25zKCl7cmV0dXJue2Nsb3NlRG91YmxlUXVvdGU6Ilx1MjAxRCIsY2xvc2VTaW5nbGVRdW90ZToiXHUyMDE5Iixjb3B5cmlnaHQ6Ilx4QTkiLGVsbGlwc2lzOiJcdTIwMjYiLGVtRGFzaDoiXHUyMDE0IixsYXF1bzoiXHhBQiIsbGVmdEFycm93OiJcdTIxOTAiLG11bHRpcGxpY2F0aW9uOiJceEQ3Iixub3RFcXVhbDoiXHUyMjYwIixvbmVIYWxmOiJceEJEIixvbmVRdWFydGVyOiJceEJDIixvcGVuRG91YmxlUXVvdGU6Ilx1MjAxQyIsb3BlblNpbmdsZVF1b3RlOiJcdTIwMTgiLHBsdXNNaW51czoiXHhCMSIscmFxdW86Ilx4QkIiLHJlZ2lzdGVyZWRUcmFkZW1hcms6Ilx4QUUiLHJpZ2h0QXJyb3c6Ilx1MjE5MiIsc2VydmljZW1hcms6Ilx1MjEyMCIsc3VwZXJzY3JpcHRUaHJlZToiXHhCMyIsc3VwZXJzY3JpcHRUd286Ilx4QjIiLHRocmVlUXVhcnRlcnM6Ilx4QkUiLHRyYWRlbWFyazoiXHUyMTIyIn19LGFkZElucHV0UnVsZXMoKXtsZXQgdD1bXTtyZXR1cm4gdGhpcy5vcHRpb25zLmVtRGFzaCE9PSExJiZ0LnB1c2goejh0KHRoaXMub3B0aW9ucy5lbURhc2gpKSx0aGlzLm9wdGlvbnMuZWxsaXBzaXMhPT0hMSYmdC5wdXNoKF84dCh0aGlzLm9wdGlvbnMuZWxsaXBzaXMpKSx0aGlzLm9wdGlvbnMub3BlbkRvdWJsZVF1b3RlIT09ITEmJnQucHVzaChUOHQodGhpcy5vcHRpb25zLm9wZW5Eb3VibGVRdW90ZSkpLHRoaXMub3B0aW9ucy5jbG9zZURvdWJsZVF1b3RlIT09ITEmJnQucHVzaChMOHQodGhpcy5vcHRpb25zLmNsb3NlRG91YmxlUXVvdGUpKSx0aGlzLm9wdGlvbnMub3BlblNpbmdsZVF1b3RlIT09ITEmJnQucHVzaChEOHQodGhpcy5vcHRpb25zLm9wZW5TaW5nbGVRdW90ZSkpLHRoaXMub3B0aW9ucy5jbG9zZVNpbmdsZVF1b3RlIT09ITEmJnQucHVzaCgkOHQodGhpcy5vcHRpb25zLmNsb3NlU2luZ2xlUXVvdGUpKSx0aGlzLm9wdGlvbnMubGVmdEFycm93IT09ITEmJnQucHVzaChBOHQodGhpcy5vcHRpb25zLmxlZnRBcnJvdykpLHRoaXMub3B0aW9ucy5yaWdodEFycm93IT09ITEmJnQucHVzaChFOHQodGhpcy5vcHRpb25zLnJpZ2h0QXJyb3cpKSx0aGlzLm9wdGlvbnMuY29weXJpZ2h0IT09ITEmJnQucHVzaChJOHQodGhpcy5vcHRpb25zLmNvcHlyaWdodCkpLHRoaXMub3B0aW9ucy50cmFkZW1hcmshPT0hMSYmdC5wdXNoKFA4dCh0aGlzLm9wdGlvbnMudHJhZGVtYXJrKSksdGhpcy5vcHRpb25zLnNlcnZpY2VtYXJrIT09ITEmJnQucHVzaChOOHQodGhpcy5vcHRpb25zLnNlcnZpY2VtYXJrKSksdGhpcy5vcHRpb25zLnJlZ2lzdGVyZWRUcmFkZW1hcmshPT0hMSYmdC5wdXNoKE84dCh0aGlzLm9wdGlvbnMucmVnaXN0ZXJlZFRyYWRlbWFyaykpLHRoaXMub3B0aW9ucy5vbmVIYWxmIT09ITEmJnQucHVzaChSOHQodGhpcy5vcHRpb25zLm9uZUhhbGYpKSx0aGlzLm9wdGlvbnMucGx1c01pbnVzIT09ITEmJnQucHVzaChGOHQodGhpcy5vcHRpb25zLnBsdXNNaW51cykpLHRoaXMub3B0aW9ucy5ub3RFcXVhbCE9PSExJiZ0LnB1c2goQjh0KHRoaXMub3B0aW9ucy5ub3RFcXVhbCkpLHRoaXMub3B0aW9ucy5sYXF1byE9PSExJiZ0LnB1c2goSDh0KHRoaXMub3B0aW9ucy5sYXF1bykpLHRoaXMub3B0aW9ucy5yYXF1byE9PSExJiZ0LnB1c2gocTh0KHRoaXMub3B0aW9ucy5yYXF1bykpLHRoaXMub3B0aW9ucy5tdWx0aXBsaWNhdGlvbiE9PSExJiZ0LnB1c2goVjh0KHRoaXMub3B0aW9ucy5tdWx0aXBsaWNhdGlvbikpLHRoaXMub3B0aW9ucy5zdXBlcnNjcmlwdFR3byE9PSExJiZ0LnB1c2goajh0KHRoaXMub3B0aW9ucy5zdXBlcnNjcmlwdFR3bykpLHRoaXMub3B0aW9ucy5zdXBlcnNjcmlwdFRocmVlIT09ITEmJnQucHVzaChVOHQodGhpcy5vcHRpb25zLnN1cGVyc2NyaXB0VGhyZWUpKSx0aGlzLm9wdGlvbnMub25lUXVhcnRlciE9PSExJiZ0LnB1c2goVzh0KHRoaXMub3B0aW9ucy5vbmVRdWFydGVyKSksdGhpcy5vcHRpb25zLnRocmVlUXVhcnRlcnMhPT0hMSYmdC5wdXNoKEc4dCh0aGlzLm9wdGlvbnMudGhyZWVRdWFydGVycykpLHR9fSl9KTt2YXIgU2MsTWMsSzh0PXUoKCk9PntTYz17eHRlcm06IjUuMy4wIix4dGVybUFkZG9uRml0OiIwLjguMCIseHRlcm1BZGRvblNlYXJjaDoiMC4xMy4wIixoaWdobGlnaHRKczoiMTEuMTEuMSIsZWNoYXJ0czoiNS42LjAiLGxpZ2h0d2VpZ2h0Q2hhcnRzOiI1LjEuMCIsdGlwdGFwOiIyLjI3LjIiLGZvbnRhd2Vzb21lOiI3LjIuMCJ9LE1jPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtIn0pO3ZhciBzbixpWnI9dSgoKT0+e0s4dCgpO3NuPWNsYXNzIHR7c3RhdGlje2kodGhpcywiRGVlc1NlcnZpY2VMaWJMb2FkZXIiKX1zdGF0aWMgaW5zdGFuY2U7eHRlcm1MaWI9bnVsbDt4dGVybUZpdEFkZG9uTGliPW51bGw7eHRlcm1TZWFyY2hBZGRvbkxpYj1udWxsO2hpZ2hsaWdodEpzTGliPW51bGw7bGlnaHR3ZWlnaHRDaGFydHNMaWI9bnVsbDtlY2hhcnRzTGliPW51bGw7dGlwdGFwTGliPW51bGw7eHRlcm1Mb2FkaW5nUHJvbWlzZT1udWxsO3h0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT1udWxsO3h0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT1udWxsO2hpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U9bnVsbDtsaWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlPW51bGw7ZWNoYXJ0c0xvYWRpbmdQcm9taXNlPW51bGw7dGlwdGFwTG9hZGluZ1Byb21pc2U9bnVsbDtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gdC5pbnN0YW5jZXx8KHQuaW5zdGFuY2U9bmV3IHQpLHQuaW5zdGFuY2V9YXN5bmMgbG9hZFh0ZXJtKCl7cmV0dXJuIHRoaXMueHRlcm1MaWI/dGhpcy54dGVybUxpYjp0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U/dGhpcy54dGVybUxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgcj1hd2FpdCBpbXBvcnQoYCR7TWN9L3h0ZXJtQCR7U2MueHRlcm19Lytlc21gKTtyZXR1cm4gYXdhaXQgdGhpcy5pbmplY3RYdGVybVN0eWxlcygpLHRoaXMueHRlcm1MaWI9e1Rlcm1pbmFsOnIuVGVybWluYWx9LHRoaXMueHRlcm1MaWJ9KSgpLHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFh0ZXJtRml0QWRkb24oKXtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliP3RoaXMueHRlcm1GaXRBZGRvbkxpYjp0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZToodGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgcj1hd2FpdCBpbXBvcnQoYCR7TWN9L3h0ZXJtLWFkZG9uLWZpdEAke1NjLnh0ZXJtQWRkb25GaXR9Lytlc21gKTtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliPXtGaXRBZGRvbjpyLkZpdEFkZG9ufSx0aGlzLnh0ZXJtRml0QWRkb25MaWJ9KSgpLHRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkWHRlcm1TZWFyY2hBZGRvbigpe3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI/dGhpcy54dGVybVNlYXJjaEFkZG9uTGliOnRoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCByPWF3YWl0IGltcG9ydChgJHtNY30veHRlcm0tYWRkb24tc2VhcmNoQCR7U2MueHRlcm1BZGRvblNlYXJjaH0vK2VzbWApO3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI9e1NlYXJjaEFkZG9uOnIuU2VhcmNoQWRkb259LHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYn0pKCksdGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2UpfWFzeW5jIGluamVjdFh0ZXJtU3R5bGVzKCl7bGV0IGU9Inh0ZXJtLWNkbi1zdHlsZXMiO2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpKXJldHVybjtsZXQgcj1gJHtNY30veHRlcm1AJHtTYy54dGVybX0vY3NzL3h0ZXJtLmNzc2Ascz1hd2FpdChhd2FpdCBmZXRjaChyKSkudGV4dCgpLG49YAovKiBGaXggeHRlcm0uanMgV2lkdGhDYWNoZSBtZWFzdXJlbWVudCBjb250YWluZXIgY2F1c2luZyBob3Jpem9udGFsIHNjcm9sbGJhciAqLwovKiB4dGVybSBjcmVhdGVzIHRoaXMgb24gZG9jdW1lbnQuYm9keSAtIG1vdmUgaXQgb2ZmLXNjcmVlbiBob3Jpem9udGFsbHkgdG9vICovCmJvZHkgPiBkaXZbc3R5bGUqPSJ0b3A6IC01MDAwMHB4Il1bc3R5bGUqPSJ3aWR0aDogNTAwMDBweCJdIHsKICBsZWZ0OiAtNTAwMDBweCAhaW1wb3J0YW50Owp9CmAsbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO28uaWQ9ZSxvLnRleHRDb250ZW50PXMrbixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pfWFzeW5jIGxvYWRIaWdobGlnaHRKcygpe3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliP3RoaXMuaGlnaGxpZ2h0SnNMaWI6dGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlP3RoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZToodGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHI9YXdhaXQgaW1wb3J0KGAke01jfS9oaWdobGlnaHQuanNAJHtTYy5oaWdobGlnaHRKc30vK2VzbWApO3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliPXIuZGVmYXVsdCx0aGlzLmhpZ2hsaWdodEpzTGlifSkoKSx0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRMaWdodHdlaWdodENoYXJ0cygpe3JldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliP3RoaXMubGlnaHR3ZWlnaHRDaGFydHNMaWI6dGhpcy5saWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlP3RoaXMubGlnaHR3ZWlnaHRDaGFydHNMb2FkaW5nUHJvbWlzZToodGhpcy5saWdodHdlaWdodENoYXJ0c0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHI9YXdhaXQgaW1wb3J0KGAke01jfS9saWdodHdlaWdodC1jaGFydHNAJHtTYy5saWdodHdlaWdodENoYXJ0c30vK2VzbWApO3JldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliPXtjcmVhdGVDaGFydDpyLmNyZWF0ZUNoYXJ0LEFyZWFTZXJpZXM6ci5BcmVhU2VyaWVzLExpbmVTZXJpZXM6ci5MaW5lU2VyaWVzLENvbG9yVHlwZTpyLkNvbG9yVHlwZSxMaW5lVHlwZTpyLkxpbmVUeXBlLENyb3NzaGFpck1vZGU6ci5Dcm9zc2hhaXJNb2RlfSx0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGlifSkoKSx0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRFY2hhcnRzKCl7cmV0dXJuIHRoaXMuZWNoYXJ0c0xpYj90aGlzLmVjaGFydHNMaWI6dGhpcy5lY2hhcnRzTG9hZGluZ1Byb21pc2U/dGhpcy5lY2hhcnRzTG9hZGluZ1Byb21pc2U6KHRoaXMuZWNoYXJ0c0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHI9YXdhaXQgaW1wb3J0KGAke01jfS9lY2hhcnRzQCR7U2MuZWNoYXJ0c30vZGlzdC9lY2hhcnRzLmVzbS5taW4uanNgKTtyZXR1cm4gdGhpcy5lY2hhcnRzTGliPXtpbml0OnIuaW5pdCxkaXNwb3NlOnIuZGlzcG9zZSxnZXRJbnN0YW5jZUJ5RG9tOnIuZ2V0SW5zdGFuY2VCeURvbX0sdGhpcy5lY2hhcnRzTGlifSkoKSx0aGlzLmVjaGFydHNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFRpcHRhcCgpe3JldHVybiB0aGlzLnRpcHRhcExpYj90aGlzLnRpcHRhcExpYjp0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlP3RoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U6KHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXRbZSxyLGEscyxuLG9dPWF3YWl0IFByb21pc2UuYWxsKFtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oaGkoKSxPWXIpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oQUtyKCksJEtyKSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KElLcigpLEVLcikpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihOS3IoKSxQS3IpKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4odFpyKCksZVpyKSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGFacigpLHJacikpXSk7cmV0dXJuIHRoaXMudGlwdGFwTGliPXtFZGl0b3I6ZS5FZGl0b3IsU3RhcnRlcktpdDpyLmRlZmF1bHR8fHIuU3RhcnRlcktpdCxVbmRlcmxpbmU6YS5kZWZhdWx0fHxhLlVuZGVybGluZSxUZXh0QWxpZ246cy5kZWZhdWx0fHxzLlRleHRBbGlnbixMaW5rOm4uZGVmYXVsdHx8bi5MaW5rLFR5cG9ncmFwaHk6by5kZWZhdWx0fHxvLlR5cG9ncmFwaHl9LHRoaXMudGlwdGFwTGlifSkoKSx0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlKX1hc3luYyBwcmVsb2FkQWxsKCl7YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMubG9hZFh0ZXJtKCksdGhpcy5sb2FkWHRlcm1GaXRBZGRvbigpLHRoaXMubG9hZFh0ZXJtU2VhcmNoQWRkb24oKSx0aGlzLmxvYWRIaWdobGlnaHRKcygpLHRoaXMubG9hZExpZ2h0d2VpZ2h0Q2hhcnRzKCksdGhpcy5sb2FkRWNoYXJ0cygpLHRoaXMubG9hZFRpcHRhcCgpXSl9aXNMb2FkZWQoZSl7c3dpdGNoKGUpe2Nhc2UieHRlcm0iOnJldHVybiB0aGlzLnh0ZXJtTGliIT09bnVsbDtjYXNlInh0ZXJtRml0QWRkb24iOnJldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWIhPT1udWxsO2Nhc2UieHRlcm1TZWFyY2hBZGRvbiI6cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYiE9PW51bGw7Y2FzZSJoaWdobGlnaHRKcyI6cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWIhPT1udWxsO2Nhc2UibGlnaHR3ZWlnaHRDaGFydHMiOnJldHVybiB0aGlzLmxpZ2h0d2VpZ2h0Q2hhcnRzTGliIT09bnVsbDtjYXNlImVjaGFydHMiOnJldHVybiB0aGlzLmVjaGFydHNMaWIhPT1udWxsO2Nhc2UidGlwdGFwIjpyZXR1cm4gdGhpcy50aXB0YXBMaWIhPT1udWxsO2RlZmF1bHQ6cmV0dXJuITF9fX19KTt2YXIgcDM9dSgoKT0+e2lacigpO0s4dCgpfSk7dmFyIG1yZSxzWnI9dSgoKT0+e2xsKCk7dmUoKTtuZCgpO19zKCk7cGZlKCk7cDMoKTttcmU9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJDb2RlQmxvY2tIYW5kbGVyIil9dHlwZT0iY29kZSI7aGlnaGxpZ2h0VGltZXI9bnVsbDtoaWdobGlnaHRKcz1udWxsO3JlbmRlcihlLHIpe2xldCBhPWUubWV0YWRhdGE/Lmxhbmd1YWdlfHwidHlwZXNjcmlwdCIscz1lLmNvbnRlbnR8fCIiLG49cy5zcGxpdChgCmApLmxlbmd0aCxvPSIiO2ZvcihsZXQgYz0xO2M8PW47YysrKW8rPWA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlciI+JHtjfTwvZGl2PmA7bGV0IGw9dnRlLm1hcChjPT57bGV0IGQ9Yy50b0xvd2VyQ2FzZSgpO3JldHVybmA8b3B0aW9uIHZhbHVlPSIke2R9IiAke2Q9PT1hPyJzZWxlY3RlZCI6IiJ9PiR7Y308L29wdGlvbj5gfSkuam9pbigiIik7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrLWNvbnRhaW5lciR7cj8iIHNlbGVjdGVkIjoiIn0iIGRhdGEtbGFuZ3VhZ2U9IiR7YX0iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtaGVhZGVyIj4KICAgICAgICAgIDxzZWxlY3QgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIiBkYXRhLWJsb2NrLWlkPSIke2UuaWR9Ij4KICAgICAgICAgICAgJHtsfQogICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWJ1dHRvbiIgdGl0bGU9IkNvcHkgY29kZSI+CiAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNvcHktaWNvbiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTAgNi43NUMwIDUuNzg0Ljc4NCA1IDEuNzUgNWgxLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMS41YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWg3LjVhLjI1LjI1IDAgMDAuMjUtLjI1di0xLjVhLjc1Ljc1IDAgMDExLjUgMHYxLjVBMS43NSAxLjc1IDAgMDE5LjI1IDE2aC03LjVBMS43NSAxLjc1IDAgMDEwIDE0LjI1di03LjV6Ij48L3BhdGg+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMS43NUM1IC43ODQgNS43ODQgMCA2Ljc1IDBoNy41QzE1LjIxNiAwIDE2IC43ODQgMTYgMS43NXY3LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxMWgtNy41QTEuNzUgMS43NSAwIDAxNSA5LjI1di03LjV6bTEuNzUtLjI1YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWg3LjVhLjI1LjI1IDAgMDAuMjUtLjI1di03LjVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNy41eiI+PC9wYXRoPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdGV4dCI+Q29weTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYm9keSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlcnMiPiR7b308L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtY29udGVudCI+CiAgICAgICAgICAgIDxwcmUgY2xhc3M9ImNvZGUtcHJlIj48Y29kZSBjbGFzcz0iY29kZS1lZGl0b3IiIAogICAgICAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9ImZhbHNlIj4ke3RoaXMuZXNjYXBlSHRtbChzKX08L2NvZGU+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1ibG9jay1jb250YWluZXIiKSxvPWUucXVlcnlTZWxlY3RvcigiLmNvcHktYnV0dG9uIiksbD1lLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1zZWxlY3RvciIpO2lmKCFzfHwhbilyZXR1cm47bCYmbC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGQ9PntsZXQgZj1kLnRhcmdldC52YWx1ZTtyLm1ldGFkYXRhPXsuLi5yLm1ldGFkYXRhLGxhbmd1YWdlOmZ9LG4uc2V0QXR0cmlidXRlKCJkYXRhLWxhbmd1YWdlIixmKSxyLmNvbnRlbnQmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1zJiZ0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUsciksYS5vbklucHV0JiZhLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpfSksbyYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e2xldCBkPXMudGV4dENvbnRlbnR8fCIiO3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChkKTtsZXQgZj1vLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRleHQiKSxwPWYudGV4dENvbnRlbnQ7Zi50ZXh0Q29udGVudD0iQ29waWVkISIsby5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KCgpPT57Zi50ZXh0Q29udGVudD1wLG8uY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9Y2F0Y2goZil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHk6IixmKTtsZXQgcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO3AudmFsdWU9ZCxwLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIscC5zdHlsZS5vcGFjaXR5PSIwIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHApLHAuc2VsZWN0KCk7dHJ5e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iik7bGV0IGg9by5xdWVyeVNlbGVjdG9yKCIuY29weS10ZXh0IiksbT1oLnRleHRDb250ZW50O2gudGV4dENvbnRlbnQ9IkNvcGllZCEiLG8uY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dCgoKT0+e2gudGV4dENvbnRlbnQ9bSxvLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfWNhdGNoKGgpe2NvbnNvbGUuZXJyb3IoIkZhbGxiYWNrIGNvcHkgZmFpbGVkOiIsaCl9ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwKX19KTtsZXQgYz0hMTtzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2M9ITAsbi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIik7bGV0IGQ9cy50ZXh0Q29udGVudHx8IiI7cy50ZXh0Q29udGVudD1kLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2xldCBmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCkscD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7cy5maXJzdENoaWxkJiYoZi5zZXRTdGFydChzLmZpcnN0Q2hpbGQsMCksZi5jb2xsYXBzZSghMCkscD8ucmVtb3ZlQWxsUmFuZ2VzKCkscD8uYWRkUmFuZ2UoZikpfSksYS5vbkZvY3VzKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Yz0hMSxuLmNsYXNzTGlzdC5yZW1vdmUoImVkaXRpbmciKSx0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUsciksYS5vbkJsdXIoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGQ9PnthLm9uSW5wdXQoZCksdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKSxjbGVhclRpbWVvdXQodGhpcy5oaWdobGlnaHRUaW1lcil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntpZihkLmtleT09PSJUYWIiKXtkLnByZXZlbnREZWZhdWx0KCk7bGV0IGY9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGYmJmYucmFuZ2VDb3VudD4wKXtsZXQgcD1mLmdldFJhbmdlQXQoMCksaD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICAiKTtwLmluc2VydE5vZGUoaCkscC5zZXRTdGFydEFmdGVyKGgpLHAuc2V0RW5kQWZ0ZXIoaCksZi5yZW1vdmVBbGxSYW5nZXMoKSxmLmFkZFJhbmdlKHApLGEub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSksdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKX1yZXR1cm59aWYoWyJBcnJvd0xlZnQiLCJBcnJvd1JpZ2h0IiwiQXJyb3dVcCIsIkFycm93RG93biJdLmluY2x1ZGVzKGQua2V5KSl7bGV0IGY9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKSxwPXMudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZihkLmtleT09PSJBcnJvd0xlZnQiJiZmPT09MHx8ZC5rZXk9PT0iQXJyb3dSaWdodCImJmY9PT1wKXthLm9uS2V5RG93bihkKTtyZXR1cm59aWYoZC5rZXk9PT0iQXJyb3dVcCJ8fGQua2V5PT09IkFycm93RG93biIpe2xldCBoPShzLnRleHRDb250ZW50fHwiIikuc3BsaXQoYApgKSxtPXRoaXMuZ2V0Q3VycmVudExpbmVJbmRleChzKTtpZihkLmtleT09PSJBcnJvd1VwIiYmbT09PTB8fGQua2V5PT09IkFycm93RG93biImJm09PT1oLmxlbmd0aC0xKXthLm9uS2V5RG93bihkKTtyZXR1cm59fX1hLm9uS2V5RG93bihkKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLGQ9PntkLnByZXZlbnREZWZhdWx0KCk7bGV0IGY9ZC5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCJ0ZXh0L3BsYWluIik7aWYoZil7bGV0IHA9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHAmJnAucmFuZ2VDb3VudD4wKXtsZXQgaD1wLmdldFJhbmdlQXQoMCk7aC5kZWxldGVDb250ZW50cygpO2xldCBtPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGYpO2guaW5zZXJ0Tm9kZShtKSxoLnNldFN0YXJ0QWZ0ZXIobSksaC5zZXRFbmRBZnRlcihtKSxwLnJlbW92ZUFsbFJhbmdlcygpLHAuYWRkUmFuZ2UoaCksYS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpfX19KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT5hLm9uQ29tcG9zaXRpb25TdGFydCgpKSxzLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+YS5vbkNvbXBvc2l0aW9uRW5kKCkpLHIuY29udGVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXMmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSxyKX0pfXVwZGF0ZUxpbmVOdW1iZXJzKGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIiksYT1lLnF1ZXJ5U2VsZWN0b3IoIi5saW5lLW51bWJlcnMiKTtpZighcnx8IWEpcmV0dXJuO2xldCBvPShyLnRleHRDb250ZW50fHwiIikuc3BsaXQoYApgKS5sZW5ndGh8fDEsbD0iIjtmb3IobGV0IGM9MTtjPD1vO2MrKylsKz1gPGRpdiBjbGFzcz0ibGluZS1udW1iZXIiPiR7Y308L2Rpdj5gO2EuaW5uZXJIVE1MPWx9Z2V0Q3VycmVudExpbmVJbmRleChlKXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXJ8fHIucmFuZ2VDb3VudD09PTApcmV0dXJuIDA7bGV0IGE9ci5nZXRSYW5nZUF0KDApLHM9YS5jbG9uZVJhbmdlKCk7cmV0dXJuIHMuc2VsZWN0Tm9kZUNvbnRlbnRzKGUpLHMuc2V0RW5kKGEuc3RhcnRDb250YWluZXIsYS5zdGFydE9mZnNldCkscy50b1N0cmluZygpLnNwbGl0KGAKYCkubGVuZ3RoLTF9YXN5bmMgYXBwbHlIaWdobGlnaHRpbmcoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKCFhKXJldHVybjt0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCBzbi5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgcz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpLG49YS50ZXh0Q29udGVudHx8IiIsbz1yLm1ldGFkYXRhPy5sYW5ndWFnZXx8InR5cGVzY3JpcHQiO3RyeXtsZXQgbD10aGlzLmhpZ2hsaWdodEpzLmhpZ2hsaWdodChuLHtsYW5ndWFnZTpvLGlnbm9yZUlsbGVnYWxzOiEwfSk7bC52YWx1ZSYmKGEuaW5uZXJIVE1MPWwudmFsdWUsZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWEmJnMhPT1udWxsJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntodC5zZXRDdXJzb3JQb3NpdGlvbihhLHMpfSkpfWNhdGNoKGwpe2NvbnNvbGUud2FybigiU3ludGF4IGhpZ2hsaWdodGluZyBmYWlsZWQ6IixsKX19ZXNjYXBlSHRtbChlKXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD1lLHIuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIGUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik/LnRleHRDb250ZW50fHwiIn1zZXRDb250ZW50KGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZihhJiYoYS50ZXh0Q29udGVudD1yLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEpKXtsZXQgcz17aWQ6YS5kYXRhc2V0LmJsb2NrSWR8fCIiLHR5cGU6ImNvZGUiLGNvbnRlbnQ6cixtZXRhZGF0YTp7bGFuZ3VhZ2U6ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWxhbmd1YWdlIil8fCJ0eXBlc2NyaXB0In19O3RoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSxzKX19Z2V0Q3Vyc29yUG9zaXRpb24oZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZighcilyZXR1cm4gbnVsbDtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWF8fGEucmFuZ2VDb3VudD09PTApcmV0dXJuIG51bGw7bGV0IHM9YS5nZXRSYW5nZUF0KDApO2lmKCFyLmNvbnRhaW5zKHMuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIG4uc2VsZWN0Tm9kZUNvbnRlbnRzKHIpLG4uc2V0RW5kKHMuc3RhcnRDb250YWluZXIscy5zdGFydE9mZnNldCksbi50b1N0cmluZygpLmxlbmd0aH1zZXRDdXJzb3JUb1N0YXJ0KGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7ciYmaHQuc2V0Q3Vyc29yUG9zaXRpb24ociwwKX1zZXRDdXJzb3JUb0VuZChlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKHIpe2xldCBhPXIudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtodC5zZXRDdXJzb3JQb3NpdGlvbihyLGEpfX1mb2N1cyhlKXtlLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHI9ImVuZCIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7YSYmKGEuZm9jdXMoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntyPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSk6dHlwZW9mIHI9PSJudW1iZXIiJiZodC5zZXRDdXJzb3JQb3NpdGlvbihhLHIpfSkpfWdldFNwbGl0Q29udGVudChlKXtsZXQgcj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO2lmKHI9PT1udWxsKXJldHVybiBudWxsO2xldCBhPXRoaXMuZ2V0Q29udGVudChlKTtyZXR1cm57YmVmb3JlOmEuc3Vic3RyaW5nKDAsciksYWZ0ZXI6YS5zdWJzdHJpbmcocil9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQ29kZSBCbG9jayBDb250YWluZXIgLSBNaW5pbWFsaXN0IHNoYWRjbiBzdHlsZSAqLwogICAgICAuY29kZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAtIFNpbXBsaWZpZWQgKi8KICAgICAgLmNvZGUtaGVhZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3RvciB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3I6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3I6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb3B5IEJ1dHRvbiAtIE1pbmltYWwgKi8KICAgICAgLmNvcHktYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b24uY29waWVkIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwNTk2NjkiLCIjMTBiOTgxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciAuY29weS1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAuY29weS10ZXh0IHsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2RlIEJvZHkgKi8KICAgICAgLmNvZGUtYm9keSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBMaW5lIE51bWJlcnMgLSBTdWJ0bGUgKi8KICAgICAgLmxpbmUtbnVtYmVycyB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogMTJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogNDBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5saW5lLW51bWJlciB7CiAgICAgICAgcGFkZGluZzogMCAxMnB4IDAgOHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7bTl9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvZGUgQ29udGVudCAqLwogICAgICAuY29kZS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1wcmUgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7bTl9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgfQogICAgICAKICAgICAgLyogUGxhY2Vob2xkZXIgKi8KICAgICAgLmNvZGUtZWRpdG9yOmVtcHR5OjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICIvLyBUeXBlIG9yIHBhc3RlIGNvZGUgaGVyZS4uLiI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogV2hlbiBlZGl0aW5nIChmb2N1c2VkKSwgc2hvdyBncmV5IHRleHQgd2l0aG91dCBoaWdobGlnaHRpbmcgKi8KICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgLmNvZGUtZWRpdG9yIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIC5jb2RlLWVkaXRvciAqIHsKICAgICAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAvKiBTeW50YXggSGlnaGxpZ2h0aW5nIC0gTXV0ZWQgY29sb3JzICovCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1rZXl3b3JkIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zdHJpbmcgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1udW1iZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1mdW5jdGlvbiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWNvbW1lbnQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzZiNzI4MCIsIiM2YjcyODAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdmFyaWFibGUsCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1hdHRyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtY2xhc3MsCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy10aXRsZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtcGFyYW1zIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYnVpbHRfaW4gewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1saXRlcmFsIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtbWV0YSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXB1bmN0dWF0aW9uIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzNzQxNTEiLCIjZDFkNWRiIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdGFnIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYXR0cmlidXRlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItdGFnIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci1pZCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogU2VsZWN0aW9uICovCiAgICAgIC5jb2RlLWVkaXRvcjo6c2VsZWN0aW9uLAogICAgICAuY29kZS1lZGl0b3IgKjo6c2VsZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg5OSwgMTAyLCAyNDEsIDAuMikiLCJyZ2JhKDk5LCAxMDIsIDI0MSwgMC4zKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgLSBNaW5pbWFsICovCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgYH19fSk7dmFyIGdyZSxuWnI9dSgoKT0+e2xsKCk7dmUoKTtyMygpO25kKCk7Z3JlPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiTGlzdEJsb2NrSGFuZGxlciIpfXR5cGU9Imxpc3QiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKGUscil7bGV0IGE9cj8iIHNlbGVjdGVkIjoiIixuPShlLm1ldGFkYXRhPy5saXN0VHlwZXx8InVub3JkZXJlZCIpPT09Im9yZGVyZWQiPyJvbCI6InVsIixvPXRoaXMucmVuZGVyTGlzdENvbnRlbnQoZS5jb250ZW50LGUubWV0YWRhdGEpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBsaXN0JHthfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIKICAgICAgPiR7b308L2Rpdj4KICAgIGB9cmVuZGVyTGlzdENvbnRlbnQoZSxyKXtpZighZSlyZXR1cm4iPHVsPjxsaT48L2xpPjwvdWw+IjtsZXQgcz0ocj8ubGlzdFR5cGV8fCJ1bm9yZGVyZWQiKT09PSJvcmRlcmVkIj8ib2wiOiJ1bCIsbj1lLnNwbGl0KGAKYCkuZmlsdGVyKGw9PmwudHJpbSgpKTtpZihuLmxlbmd0aD09PTApcmV0dXJuYDwke3N9PjxsaT48L2xpPjwvJHtzfT5gO2xldCBvPW4ubWFwKGw9PmA8bGk+JHtsfTwvbGk+YCkuam9pbigiIik7cmV0dXJuYDwke3N9PiR7b308LyR7c30+YH1zZXR1cChlLHIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFzKXtjb25zb2xlLmVycm9yKCJMaXN0QmxvY2tIYW5kbGVyLnNldHVwOiBObyBsaXN0IGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59ci5jb250ZW50JiYhcy5pbm5lckhUTUwmJihzLmlubmVySFRNTD10aGlzLnJlbmRlckxpc3RDb250ZW50KHIuY29udGVudCxyLm1ldGFkYXRhKSkscy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2Eub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7aWYobyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLG4ua2V5PT09IkVudGVyIiYmIW4uc2hpZnRLZXkpe2xldCBsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihsJiZsLnJhbmdlQ291bnQ+MCl7bGV0IGQ9bC5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYoZCYmZC50ZXh0Q29udGVudD09PSIiKXtuLnByZXZlbnREZWZhdWx0KCksYS5vbktleURvd24obik7cmV0dXJufX19YS5vbktleURvd24obil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cygpfSkscy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Eub25CbHVyKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57YS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57YS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxhLm9uTW91c2VVcD8uKG4pfSkscy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLHMscil9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscixhKXtsZXQgcz1pKCgpPT57bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1vLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDphLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGM9ci5nZXRSb290Tm9kZSgpLmhvc3QsZj1jPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxwPWM/LnNoYWRvd1Jvb3QsaD1bXTtmJiZoLnB1c2goZikscCYmaC5wdXNoKHApO2xldCBtPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uaCk7aWYoIW0pcmV0dXJuO2xldCB2PWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsbS5zdGFydENvbnRhaW5lciksYj1odC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShyLG0uZW5kQ29udGFpbmVyKTtpZih2fHxiKXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgZz1odC5jcmVhdGVSYW5nZUZyb21JbmZvKG0pLHk9Zy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOmEuaWQscmFuZ2U6ZyxyZWN0OnksaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6YS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9LCJjaGVja1NlbGVjdGlvbiIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIscyksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXM7bGV0IG49ci5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobil7bGV0IG89bi5kaXNjb25uZWN0ZWRDYWxsYmFjayxsPXRoaXM7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe2wuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsbC5zZWxlY3Rpb25IYW5kbGVyKSxsLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHIpe2xldCBhPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDpyLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoYSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBMaXN0IHNwZWNpZmljIHN0eWxlcyAqLwogICAgICAuYmxvY2subGlzdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLmJsb2NrLmxpc3QgdWwsCiAgICAgIC5ibG9jay5saXN0IG9sIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaSB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7cmV0dXJuIiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPXI/LnNoYWRvd1Jvb3QsYz1bXTtvJiZjLnB1c2gobyksbCYmYy5wdXNoKGwpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoIWR8fCFodC5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGQuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGYuc2VsZWN0Tm9kZUNvbnRlbnRzKGEpLGYuc2V0RW5kKGQuc3RhcnRDb250YWluZXIsZC5zdGFydE9mZnNldCksZi50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXJldHVybiIiO2xldCBzPWEucXVlcnlTZWxlY3RvckFsbCgibGkiKTtyZXR1cm4gQXJyYXkuZnJvbShzKS5tYXAobz0+by50ZXh0Q29udGVudHx8IiIpLmpvaW4oYApgKX1zZXRDb250ZW50KGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXMpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1zfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1zLGw9cy5xdWVyeVNlbGVjdG9yKCJ1bCwgb2wiKT8udGFnTmFtZT09PSJPTCI7cy5pbm5lckhUTUw9dGhpcy5yZW5kZXJMaXN0Q29udGVudChyLHtsaXN0VHlwZTpsPyJvcmRlcmVkIjoidW5vcmRlcmVkIn0pLG4mJnMuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUscil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXJldHVybjtsZXQgcz1hLnF1ZXJ5U2VsZWN0b3IoImxpIik7aWYocyl7bGV0IG49dGhpcy5nZXRGaXJzdFRleHROb2RlKHMpO2lmKG4pe2xldCBvPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksbD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7by5zZXRTdGFydChuLDApLG8uc2V0RW5kKG4sMCksbD8ucmVtb3ZlQWxsUmFuZ2VzKCksbD8uYWRkUmFuZ2Uobyl9fX1zZXRDdXJzb3JUb0VuZChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighYSlyZXR1cm47bGV0IHM9YS5xdWVyeVNlbGVjdG9yKCJsaTpsYXN0LWNoaWxkIik7aWYocyl7bGV0IG49dGhpcy5nZXRMYXN0VGV4dE5vZGUocyk7aWYobil7bGV0IG89ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKSxjPW4udGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtvLnNldFN0YXJ0KG4sYyksby5zZXRFbmQobixjKSxsPy5yZW1vdmVBbGxSYW5nZXMoKSxsPy5hZGRSYW5nZShvKX19fWdldEZpcnN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgcj0wO3I8ZS5jaGlsZE5vZGVzLmxlbmd0aDtyKyspe2xldCBhPXRoaXMuZ2V0Rmlyc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbcl0pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IHI9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO3I+PTA7ci0tKXtsZXQgYT10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbcl0pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9Zm9jdXMoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7YSYmKGEuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8YS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxhLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWEmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnthLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUscj0iZW5kIixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXMpcmV0dXJuO3MuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8cy5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxzLmZvY3VzKCk7bGV0IG49aSgoKT0+e3I9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLGEpOnI9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUsYSk6dHlwZW9mIHI9PSJudW1iZXIiJiZ0aGlzLnNldEN1cnNvclRvRW5kKGUsYSl9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cz9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09c3x8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cykmJm4oKX0pfWdldFNwbGl0Q29udGVudChlLHIpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0IiksbnVsbH19fSk7dmFyIGJyZSxvWnI9dSgoKT0+e2xsKCk7dmUoKTticmU9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJJbWFnZUJsb2NrSGFuZGxlciIpfXR5cGU9ImltYWdlIjtyZW5kZXIoZSxyKXtsZXQgYT1lLm1ldGFkYXRhPy51cmwscz1lLmNvbnRlbnR8fCJJbWFnZSIsbj1lLm1ldGFkYXRhPy5sb2FkaW5nO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtYmxvY2stY29udGFpbmVyJHtyPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICBkYXRhLWhhcy1pbWFnZT0iJHshIWF9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAke24/dGhpcy5yZW5kZXJMb2FkaW5nKCk6YT90aGlzLnJlbmRlckltYWdlKGEscyk6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcigpfQogICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiAKICAgICAgICAgICAgICAgY2xhc3M9ImltYWdlLWZpbGUtaW5wdXQiIAogICAgICAgICAgICAgICBhY2NlcHQ9ImltYWdlLyoiIAogICAgICAgICAgICAgICBzdHlsZT0iZGlzcGxheTogbm9uZTsiIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyI+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLWljb24iIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPgogICAgICAgICAgPHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgcnk9IjIiLz4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iOC41IiBjeT0iOC41IiByPSIxLjUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjEgMTUgMTYgMTAgNSAyMSIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLXRleHQiIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPkNsaWNrIHRvIHVwbG9hZCBhbiBpbWFnZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1oaW50IiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij5vciBkcmFnIGFuZCBkcm9wPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJJbWFnZShlLHIpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtY29udGFpbmVyIj4KICAgICAgICA8aW1nIHNyYz0iJHtlfSIgYWx0PSIke3RoaXMuZXNjYXBlSHRtbChyKX0iIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJMb2FkaW5nKCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS1sb2FkaW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctdGV4dCI+VXBsb2FkaW5nIGltYWdlLi4uPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1maWxlLWlucHV0Iik7aWYoIXMpe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBjb250YWluZXIiKTtyZXR1cm59aWYoIW4pe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBmaWxlIGlucHV0Iik7cmV0dXJufWxldCBvPXMucXVlcnlTZWxlY3RvcigiLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciIpO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFBsYWNlaG9sZGVyIGNsaWNrZWQsIG9wZW5pbmcgZmlsZSBzZWxlY3RvciIpLG4uY2xpY2soKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5vbkZvY3VzKCl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYXN5bmMgbD0+e2xldCBkPWwudGFyZ2V0LmZpbGVzPy5bMF07ZCYmKGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogRmlsZSBzZWxlY3RlZDoiLGQubmFtZSksYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKGQscixhKSl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksci5tZXRhZGF0YT8udXJsfHxzLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSkscy5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxzLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSkscy5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixhc3luYyBsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCkscy5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTtsZXQgYz1sLmRhdGFUcmFuc2Zlcj8uZmlsZXNbMF07YyYmYy50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiYhci5tZXRhZGF0YT8udXJsJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVVcGxvYWQoYyxyLGEpfSkscy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PntpZigobC5rZXk9PT0iRGVsZXRlInx8bC5rZXk9PT0iQmFja3NwYWNlIikmJnIubWV0YWRhdGE/LnVybCl7ci5tZXRhZGF0YS51cmw9dm9pZCAwLHIubWV0YWRhdGEubG9hZGluZz0hMSxyLmNvbnRlbnQ9IiIsYS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKTtyZXR1cm59YS5vbktleURvd24obCl9KX1hc3luYyBoYW5kbGVGaWxlVXBsb2FkKGUscixhKXtpZihjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFN0YXJ0aW5nIGZpbGUgdXBsb2FkIix7ZmlsZU5hbWU6ZS5uYW1lLGZpbGVTaXplOmUuc2l6ZSxibG9ja0lkOnIuaWR9KSwhZS50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGZpbGUgdHlwZToiLGUudHlwZSk7cmV0dXJufWxldCBzPTEwKjEwMjQqMTAyNDtpZihlLnNpemU+cyl7Y29uc29sZS5lcnJvcigiRmlsZSB0b28gbGFyZ2UuIE1heGltdW0gc2l6ZSBpcyAxME1CIik7cmV0dXJufXIubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLmxvYWRpbmc9ITAsci5tZXRhZGF0YS5maWxlTmFtZT1lLm5hbWUsci5tZXRhZGF0YS5maWxlU2l6ZT1lLnNpemUsci5tZXRhZGF0YS5taW1lVHlwZT1lLnR5cGUsY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBTZXQgbG9hZGluZyBzdGF0ZSwgcmVxdWVzdGluZyB1cGRhdGUiKSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7dHJ5e2xldCBuPWF3YWl0IHRoaXMuZmlsZVRvRGF0YVVybChlKTtyLm1ldGFkYXRhLnVybD1uLHIubWV0YWRhdGEubG9hZGluZz0hMTtsZXQgbz1lLm5hbWUucmVwbGFjZSgvXC5bXi8uXSskLywiIik7ci5jb250ZW50PW8sY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBVcGxvYWQgY29tcGxldGUsIHJlcXVlc3RpbmcgdXBkYXRlIix7aGFzVXJsOiEhci5tZXRhZGF0YS51cmwsdXJsTGVuZ3RoOm4ubGVuZ3RoLGFsdFRleHQ6ci5jb250ZW50fSksYS5vblJlcXVlc3RVcGRhdGU/LigpfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGxvYWQgaW1hZ2U6IixuKSxyLm1ldGFkYXRhLmxvYWRpbmc9ITEsYS5vblJlcXVlc3RVcGRhdGU/LigpfX1maWxlVG9EYXRhVXJsKGUpe3JldHVybiBuZXcgUHJvbWlzZSgocixhKT0+e2xldCBzPW5ldyBGaWxlUmVhZGVyO3Mub25sb2FkPW49PntsZXQgbz1uLnRhcmdldD8ucmVzdWx0O3R5cGVvZiBvPT0ic3RyaW5nIj9yKG8pOmEobmV3IEVycm9yKCJGYWlsZWQgdG8gcmVhZCBmaWxlIikpfSxzLm9uZXJyb3I9YSxzLnJlYWRBc0RhdGFVUkwoZSl9KX1lc2NhcGVIdG1sKGUpe2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiByLnRleHRDb250ZW50PWUsci5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUscil7bGV0IGE9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO2EmJihhLmNvbnRlbnQ9cil9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGE/e2lkOmEsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXt0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe3RoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUscj0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBJbWFnZSBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBVcGxvYWQgUGxhY2Vob2xkZXIgKi8KICAgICAgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lcjpob3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWZmNmZmIiwiIzFlMWI0YiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnVwbG9hZC1pY29uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtaGludCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEltYWdlIENvbnRhaW5lciAqLwogICAgICAuaW1hZ2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtY29udGFpbmVyIGltZyB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIExvYWRpbmcgU3RhdGUgKi8KICAgICAgLmltYWdlLWxvYWRpbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHt4LmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQogICAgICAKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQogICAgICAKICAgICAgLmxvYWRpbmctdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZpbGUgaW5wdXQgaGlkZGVuICovCiAgICAgIC5pbWFnZS1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fX0pO3ZhciB4cmUsbFpyPXUoKCk9PntsbCgpO3ZlKCk7eHJlPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiWW91VHViZUJsb2NrSGFuZGxlciIpfXR5cGU9InlvdXR1YmUiO3JlbmRlcihlLHIpe2xldCBhPWUubWV0YWRhdGE/LnZpZGVvSWQscz1lLm1ldGFkYXRhPy51cmx8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1ibG9jay1jb250YWluZXIke3I/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtaGFzLXZpZGVvPSIkeyEhYX0iPgogICAgICAgICR7YT90aGlzLnJlbmRlclZpZGVvKGEpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIocyl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtcGxhY2Vob2xkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLWljb24iPgogICAgICAgICAgPHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYxNSAzLjE4NGMtMy42MDQtLjI0Ni0xMS42MzEtLjI0NS0xNS4yMyAwLTMuODk3LjI2Ni00LjM1NiAyLjYyLTQuMzg1IDguODE2LjAyOSA2LjE4NS40ODQgOC41NDkgNC4zODUgOC44MTYgMy42LjI0NSAxMS42MjYuMjQ2IDE1LjIzIDAgMy44OTctLjI2NiA0LjM1Ni0yLjYyIDQuMzg1LTguODE2LS4wMjktNi4xODUtLjQ4NC04LjU0OS00LjM4NS04LjgxNnptLTEwLjYxNSAxMi44MTZ2LThsOCAzLjk5My04IDQuMDA3eiIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+RW50ZXIgWW91VHViZSBVUkw8L2Rpdj4KICAgICAgICA8aW5wdXQgdHlwZT0idXJsIiAKICAgICAgICAgICAgICAgY2xhc3M9InlvdXR1YmUtdXJsLWlucHV0IiAKICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Imh0dHBzOi8veW91dHViZS5jb20vd2F0Y2g/dj0uLi4iIAogICAgICAgICAgICAgICB2YWx1ZT0iJHt0aGlzLmVzY2FwZUh0bWwoZSl9IiAvPgogICAgICAgIDxidXR0b24gY2xhc3M9InlvdXR1YmUtZW1iZWQtYnRuIj5FbWJlZCBWaWRlbzwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVmlkZW8oZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLWNvbnRhaW5lciI+CiAgICAgICAgPGlmcmFtZSAKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtlfSIKICAgICAgICAgIGZyYW1lYm9yZGVyPSIwIgogICAgICAgICAgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmUiCiAgICAgICAgICBhbGxvd2Z1bGxzY3JlZW4KICAgICAgICA+PC9pZnJhbWU+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKTtpZighcylyZXR1cm47aWYoci5tZXRhZGF0YT8udmlkZW9JZCl7cy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSkscy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSkscy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixsPT57KGwua2V5PT09IkRlbGV0ZSJ8fGwua2V5PT09IkJhY2tzcGFjZSIpJiZsLnByZXZlbnREZWZhdWx0KCksYS5vbktleURvd24obCl9KTtyZXR1cm59bGV0IG49ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS11cmwtaW5wdXQiKSxvPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtZW1iZWQtYnRuIik7IW58fCFvfHwobi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuZW1iZWRWaWRlbyhuLnZhbHVlLHIsYSl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PntsLmtleT09PSJFbnRlciI/KGwucHJldmVudERlZmF1bHQoKSx0aGlzLmVtYmVkVmlkZW8obi52YWx1ZSxyLGEpKTpsLmtleT09PSJFc2NhcGUiJiYobC5wcmV2ZW50RGVmYXVsdCgpLG4uYmx1cigpKX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLGw9PntzZXRUaW1lb3V0KCgpPT57bGV0IGM9bi52YWx1ZTt0aGlzLmV4dHJhY3RZb3VUdWJlVmlkZW9JZChjKSYmdGhpcy5lbWJlZFZpZGVvKGMscixhKX0sMCl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+e3IubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLnVybD1uLnZhbHVlfSkpfWVtYmVkVmlkZW8oZSxyLGEpe2xldCBzPXRoaXMuZXh0cmFjdFlvdVR1YmVWaWRlb0lkKGUpO2lmKCFzKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIFlvdVR1YmUgVVJMIik7cmV0dXJufXIubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLnZpZGVvSWQ9cyxyLm1ldGFkYXRhLnVybD1lLHIuY29udGVudD1gWW91VHViZSBWaWRlbzogJHtzfWAsYS5vblJlcXVlc3RVcGRhdGU/LigpfWV4dHJhY3RZb3VUdWJlVmlkZW9JZChlKXtsZXQgcj1bLyg/OnlvdXR1YmVcLmNvbVwvKD86W15cL10rXC8uK1wvfCg/OnZ8ZSg/Om1iZWQpPylcL3wuKls/Jl12PSl8eW91dHVcLmJlXC8pKFteIiY/XC8gXXsxMX0pLywveW91dHViZVwuY29tXC9lbWJlZFwvKFteIiY/XC8gXXsxMX0pLywveW91dHViZVwuY29tXC93YXRjaFw/dj0oW14iJj9cLyBdezExfSkvLC95b3V0dVwuYmVcLyhbXiImP1wvIF17MTF9KS9dO2ZvcihsZXQgYSBvZiByKXtsZXQgcz1lLm1hdGNoKGEpO2lmKHMpcmV0dXJuIHNbMV19cmV0dXJuIG51bGx9ZXNjYXBlSHRtbChlKXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD1lLHIuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLHIpe2xldCBhPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTthJiYoYS5jb250ZW50PXIpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGE/e2lkOmEsdHlwZToieW91dHViZSIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpLGE9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS11cmwtaW5wdXQiKTthP2EuZm9jdXMoKTpyJiZyLmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUscj0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBZb3VUdWJlIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAueW91dHViZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3guYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFlvdVR1YmUgUGxhY2Vob2xkZXIgKi8KICAgICAgLnlvdXR1YmUtcGxhY2Vob2xkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDMycHggMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci1pY29uIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMWYyOTM3Iil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG4gewogICAgICAgIHBhZGRpbmc6IDZweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQogICAgICAKICAgICAgLyogWW91VHViZSBDb250YWluZXIgKi8KICAgICAgLnlvdXR1YmUtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgLyogMTY6OSBhc3BlY3QgcmF0aW8gKi8KICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzAwMDAwMCIsIiMwMDAwMDAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWNvbnRhaW5lciBpZnJhbWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQogICAgYH19fSk7dmFyIHZyZSxjWnI9dSgoKT0+e2xsKCk7dmUoKTt2cmU9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJBdHRhY2htZW50QmxvY2tIYW5kbGVyIil9dHlwZT0iYXR0YWNobWVudCI7cmVuZGVyKGUscil7bGV0IGE9ZS5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1ibG9jay1jb250YWluZXIke3I/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWljb24iPlx1ezFGNENFfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC10aXRsZSI+RmlsZSBBdHRhY2htZW50czwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtbGlzdCI+CiAgICAgICAgICAke2EubGVuZ3RoPjA/dGhpcy5yZW5kZXJGaWxlcyhhKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIAogICAgICAgICAgICAgICBjbGFzcz0iYXR0YWNobWVudC1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgbXVsdGlwbGUgCiAgICAgICAgICAgICAgIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgLz4KICAgICAgICAke2EubGVuZ3RoPjA/JzxidXR0b24gY2xhc3M9ImFkZC1tb3JlLWZpbGVzIj5BZGQgTW9yZSBGaWxlczwvYnV0dG9uPic6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1wbGFjZWhvbGRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+Q2xpY2sgdG8gYWRkIGZpbGVzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItaGludCI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZXMoZSl7cmV0dXJuIGUubWFwKHI9PmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1pdGVtIiBkYXRhLWZpbGUtaWQ9IiR7ci5pZH0iPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaWNvbiI+JHt0aGlzLmdldEZpbGVJY29uKHIudHlwZSl9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1pbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSI+JHt0aGlzLmVzY2FwZUh0bWwoci5uYW1lKX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKHIuc2l6ZSl9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWZpbGUiIGRhdGEtZmlsZS1pZD0iJHtyLmlkfSI+XHhENzwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGApLmpvaW4oIiIpfXNldHVwKGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1maWxlLWlucHV0Iik7aWYoIXN8fCFuKXtjb25zb2xlLmVycm9yKCJBdHRhY2htZW50QmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn1yLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS5maWxlc3x8KHIubWV0YWRhdGEuZmlsZXM9W10pO2xldCBvPXMucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXIiKTtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixjPT57Yy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCksbi5jbGljaygpfSk7bGV0IGw9cy5xdWVyeVNlbGVjdG9yKCIuYWRkLW1vcmUtZmlsZXMiKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixjPT57Yy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCksbi5jbGljaygpfSksbi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIGM9PntsZXQgZD1jLnRhcmdldCxmPWQuZmlsZXM7ZiYmZi5sZW5ndGg+MCYmKGF3YWl0IHRoaXMuaGFuZGxlRmlsZUF0dGFjaG1lbnRzKGYscixhKSxkLnZhbHVlPSIiKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGM9PntsZXQgZD1jLnRhcmdldDtpZihkLmNsYXNzTGlzdC5jb250YWlucygicmVtb3ZlLWZpbGUiKSl7Yy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IGY9ZC5nZXRBdHRyaWJ1dGUoImRhdGEtZmlsZS1pZCIpO2YmJnRoaXMucmVtb3ZlRmlsZShmLHIsYSl9fSkscy5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsYz0+e2MucHJldmVudERlZmF1bHQoKSxjLnN0b3BQcm9wYWdhdGlvbigpLHMuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsYz0+e2MucHJldmVudERlZmF1bHQoKSxjLnN0b3BQcm9wYWdhdGlvbigpLHMuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLGFzeW5jIGM9PntjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKSxzLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO2xldCBkPWMuZGF0YVRyYW5zZmVyPy5maWxlcztkJiZkLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVBdHRhY2htZW50cyhkLHIsYSl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYz0+e2lmKChjLmtleT09PSJEZWxldGUifHxjLmtleT09PSJCYWNrc3BhY2UiKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXMmJnIubWV0YWRhdGE/LmZpbGVzPy5sZW5ndGg+MCl7Yy5wcmV2ZW50RGVmYXVsdCgpLHIubWV0YWRhdGEuZmlsZXM9W10sYS5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1hLm9uS2V5RG93bihjKX0pfWFzeW5jIGhhbmRsZUZpbGVBdHRhY2htZW50cyhlLHIsYSl7ci5tZXRhZGF0YXx8KHIubWV0YWRhdGE9e30pLHIubWV0YWRhdGEuZmlsZXN8fChyLm1ldGFkYXRhLmZpbGVzPVtdKTtmb3IobGV0IHMgb2YgQXJyYXkuZnJvbShlKSl0cnl7bGV0IG49YXdhaXQgdGhpcy5maWxlVG9EYXRhVXJsKHMpLG89e2lkOnRoaXMuZ2VuZXJhdGVJZCgpLG5hbWU6cy5uYW1lLHNpemU6cy5zaXplLHR5cGU6cy50eXBlLGRhdGE6bn07ci5tZXRhZGF0YS5maWxlcy5wdXNoKG8pfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBhdHRhY2ggZmlsZToiLHMubmFtZSxuKX1yLmNvbnRlbnQ9YCR7ci5tZXRhZGF0YS5maWxlcy5sZW5ndGh9IGZpbGUke3IubWV0YWRhdGEuZmlsZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF0dGFjaGVkYCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9cmVtb3ZlRmlsZShlLHIsYSl7ci5tZXRhZGF0YT8uZmlsZXMmJihyLm1ldGFkYXRhLmZpbGVzPXIubWV0YWRhdGEuZmlsZXMuZmlsdGVyKHM9PnMuaWQhPT1lKSxyLmNvbnRlbnQ9ci5tZXRhZGF0YS5maWxlcy5sZW5ndGg+MD9gJHtyLm1ldGFkYXRhLmZpbGVzLmxlbmd0aH0gZmlsZSR7ci5tZXRhZGF0YS5maWxlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXR0YWNoZWRgOiIiLGEub25SZXF1ZXN0VXBkYXRlPy4oKSl9ZmlsZVRvRGF0YVVybChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHIsYSk9PntsZXQgcz1uZXcgRmlsZVJlYWRlcjtzLm9ubG9hZD1uPT57bGV0IG89bi50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygbz09InN0cmluZyI/cihvKTphKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0scy5vbmVycm9yPWEscy5yZWFkQXNEYXRhVVJMKGUpfSl9Z2V0RmlsZUljb24oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiaW1hZ2UvIik/Ilx1ezFGNUJDfVx1RkUwRiI6ZS5zdGFydHNXaXRoKCJ2aWRlby8iKT8iXHV7MUYzQTV9IjplLnN0YXJ0c1dpdGgoImF1ZGlvLyIpPyJcdXsxRjNCNX0iOmUuaW5jbHVkZXMoInBkZiIpPyJcdXsxRjRDNH0iOmUuaW5jbHVkZXMoInppcCIpfHxlLmluY2x1ZGVzKCJyYXIiKXx8ZS5pbmNsdWRlcygidGFyIik/Ilx1ezFGNUM0fVx1RkUwRiI6ZS5pbmNsdWRlcygic2hlZXQiKT8iXHV7MUY0Q0F9IjplLmluY2x1ZGVzKCJkb2N1bWVudCIpfHxlLmluY2x1ZGVzKCJtc3dvcmQiKT8iXHV7MUY0RER9IjplLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKT8iXHV7MUY0Q0J9IjplLmluY2x1ZGVzKCJ0ZXh0Iik/Ilx1ezFGNEMzfSI6Ilx1ezFGNEMxfSJ9Zm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCByPTEwMjQsYT1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0scz1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKHIpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyhyLHMpKS50b0ZpeGVkKDIpKSsiICIrYVtzXX1nZW5lcmF0ZUlkKCl7cmV0dXJuYGZpbGUtJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9ZXNjYXBlSHRtbChlKXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD1lLHIuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLHIpe2xldCBhPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTthJiYoYS5jb250ZW50PXIpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIGE/e2lkOmEsdHlwZToiYXR0YWNobWVudCIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtlLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLHI9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQXR0YWNobWVudCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAuYXR0YWNobWVudC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIExpc3QgKi8KICAgICAgLmF0dGFjaG1lbnQtbGlzdCB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBQbGFjZWhvbGRlciAqLwogICAgICAuYXR0YWNobWVudC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXBsYWNlaG9sZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRmlsZSBJdGVtcyAqLwogICAgICAuYXR0YWNobWVudC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1zaXplIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCIjOTkxYjFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNmY2E1YTUiLCIjZGMyNjI2Iil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNmY2E1YTUiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEFkZCBNb3JlIEZpbGVzIEJ1dHRvbiAqLwogICAgICAuYWRkLW1vcmUtZmlsZXMgewogICAgICAgIG1hcmdpbjogOHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgIH0KICAgICAgCiAgICAgIC5hZGQtbW9yZS1maWxlczpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIaWRkZW4gZmlsZSBpbnB1dCAqLwogICAgICAuYXR0YWNobWVudC1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fX0pO3ZhciB5cmUsZFpyPXUoKCk9PntsbCgpO3ZlKCk7eXJlPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiRGl2aWRlckJsb2NrSGFuZGxlciIpfXR5cGU9ImRpdmlkZXIiO3JlbmRlcihlLHIpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYmxvY2sgZGl2aWRlciR7cj8iIHNlbGVjdGVkIjoiIn0iIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IiB0YWJpbmRleD0iMCI+CiAgICAgICAgPGhyPgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSxyLGEpe2xldCBzPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmRpdmlkZXIiKTtzJiYocy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e24uc3RvcFByb3BhZ2F0aW9uKCkscy5mb2N1cygpLGEub25Gb2N1cz8uKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Eub25Gb2N1cz8uKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57YS5vbkJsdXI/LigpfSkscy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57KG4ua2V5PT09IkJhY2tzcGFjZSJ8fG4ua2V5PT09IkRlbGV0ZSIpJiZuLnByZXZlbnREZWZhdWx0KCksYS5vbktleURvd24/LihuKX0pKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC5ibG9jay5kaXZpZGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJsb2NrLmRpdmlkZXI6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyIGhyIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGB9fX0pO3ZhciB3cmUsdVpyPXUoKCk9PntsbCgpO3ZlKCk7d3JlPWNsYXNzIGV4dGVuZHMgcGl7c3RhdGlje2kodGhpcywiTWFya2Rvd25CbG9ja0hhbmRsZXIiKX10eXBlPSJtYXJrZG93biI7cmVuZGVyKGUscil7bGV0IGE9ZS5tZXRhZGF0YT8uaXNFZGl0TW9kZT8/ITAscz1lLmNvbnRlbnR8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYmxvY2stY29udGFpbmVyJHtyPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICBkYXRhLWVkaXQtbW9kZT0iJHthfSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWljb24iPk1cdTIxOTM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLXRpdGxlIj5NYXJrZG93bjwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibWFya2Rvd24tdG9nZ2xlLW1vZGUiIHRpdGxlPSIke2E/IlByZXZpZXciOiJFZGl0In0iPgogICAgICAgICAgICAke2E/Ilx1ezFGNDQxfVx1RkUwRiI6Ilx1MjcwRlx1RkUwRiJ9CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1jb250ZW50Ij4KICAgICAgICAgICR7YT90aGlzLnJlbmRlckVkaXRvcihzKTp0aGlzLnJlbmRlclByZXZpZXcocyl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJFZGl0b3IoZSl7cmV0dXJuYAogICAgICA8dGV4dGFyZWEgY2xhc3M9Im1hcmtkb3duLWVkaXRvciIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgbWFya2Rvd24gY29udGVudC4uLiIKICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9ImZhbHNlIj4ke3RoaXMuZXNjYXBlSHRtbChlKX08L3RleHRhcmVhPgogICAgYH1yZW5kZXJQcmV2aWV3KGUpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tcHJldmlldyI+CiAgICAgICAgJHt0aGlzLnBhcnNlTWFya2Rvd24oZSl8fCc8ZGl2IGNsYXNzPSJwcmV2aWV3LWVtcHR5Ij5ObyBjb250ZW50IHRvIHByZXZpZXc8L2Rpdj4nfQogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSxyLGEpe2xldCBzPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tdG9nZ2xlLW1vZGUiKTtpZighc3x8IW4pe2NvbnNvbGUuZXJyb3IoIk1hcmtkb3duQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn1yLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS5pc0VkaXRNb2RlPT09dm9pZCAwJiYoci5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwKSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixvPT57aWYoby5wcmV2ZW50RGVmYXVsdCgpLG8uc3RvcFByb3BhZ2F0aW9uKCksci5tZXRhZGF0YS5pc0VkaXRNb2RlKXtsZXQgbD1zLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtsJiYoci5jb250ZW50PWwudmFsdWUpfXIubWV0YWRhdGEuaXNFZGl0TW9kZT0hci5tZXRhZGF0YS5pc0VkaXRNb2RlLGEub25SZXF1ZXN0VXBkYXRlPy4oKX0pLHIubWV0YWRhdGEuaXNFZGl0TW9kZT90aGlzLnNldHVwRWRpdG9yKGUscixhKTp0aGlzLnNldHVwUHJldmlldyhlLHIsYSl9c2V0dXBFZGl0b3IoZSxyLGEpe2xldCBzPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3MmJihzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57ci5jb250ZW50PXMudmFsdWV9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntpZihuLmtleT09PSJUYWIiKXtuLnByZXZlbnREZWZhdWx0KCk7bGV0IG89cy5zZWxlY3Rpb25TdGFydCxsPXMuc2VsZWN0aW9uRW5kLGM9cy52YWx1ZTtpZihuLnNoaWZ0S2V5KXtsZXQgcD1jLnN1YnN0cmluZygwLG8pLmxhc3RJbmRleE9mKGAKYCkrMSxoPWMuc3Vic3RyaW5nKHAsbyk7aC5zdGFydHNXaXRoKCIgICIpJiYocy52YWx1ZT1jLnN1YnN0cmluZygwLHApK2guc3Vic3RyaW5nKDIpK2Muc3Vic3RyaW5nKG8pLHMuc2VsZWN0aW9uU3RhcnQ9cy5zZWxlY3Rpb25FbmQ9by0yKX1lbHNlIHMudmFsdWU9Yy5zdWJzdHJpbmcoMCxvKSsiICAiK2Muc3Vic3RyaW5nKGwpLHMuc2VsZWN0aW9uU3RhcnQ9cy5zZWxlY3Rpb25FbmQ9bysyO3IuY29udGVudD1zLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSJiIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMud3JhcFNlbGVjdGlvbihzLCIqKiIsIioqIiksci5jb250ZW50PXMudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09ImkiKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy53cmFwU2VsZWN0aW9uKHMsIl8iLCJfIiksci5jb250ZW50PXMudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09ImsiKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbnNlcnRMaW5rKHMpLHIuY29udGVudD1zLnZhbHVlO3JldHVybn1hLm9uS2V5RG93bihuKX0pLHRoaXMuYXV0b1Jlc2l6ZShzKSxzLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+dGhpcy5hdXRvUmVzaXplKHMpKSl9c2V0dXBQcmV2aWV3KGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKSxuPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXByZXZpZXciKTshc3x8IW58fChuLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksbi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PmEub25Gb2N1cygpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5hLm9uQmx1cigpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG89PntpZihvLmtleT09PSJFbnRlciImJiFvLnNoaWZ0S2V5KXtvLnByZXZlbnREZWZhdWx0KCksci5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwLGEub25SZXF1ZXN0VXBkYXRlPy4oKTtyZXR1cm59YS5vbktleURvd24obyl9KSl9d3JhcFNlbGVjdGlvbihlLHIsYSl7bGV0IHM9ZS5zZWxlY3Rpb25TdGFydCxuPWUuc2VsZWN0aW9uRW5kLG89ZS52YWx1ZS5zdWJzdHJpbmcocyxuKSxsPXIrKG98fCJ0ZXh0IikrYTtlLnZhbHVlPWUudmFsdWUuc3Vic3RyaW5nKDAscykrbCtlLnZhbHVlLnN1YnN0cmluZyhuKSxvPyhlLnNlbGVjdGlvblN0YXJ0PXMsZS5zZWxlY3Rpb25FbmQ9cytsLmxlbmd0aCk6KGUuc2VsZWN0aW9uU3RhcnQ9cytyLmxlbmd0aCxlLnNlbGVjdGlvbkVuZD1zK3IubGVuZ3RoKzQpLGUuZm9jdXMoKX1pbnNlcnRMaW5rKGUpe2xldCByPWUuc2VsZWN0aW9uU3RhcnQsYT1lLnNlbGVjdGlvbkVuZCxuPWUudmFsdWUuc3Vic3RyaW5nKHIsYSl8fCJsaW5rIHRleHQiLG89YFske259XSh1cmwpYDtlLnZhbHVlPWUudmFsdWUuc3Vic3RyaW5nKDAscikrbytlLnZhbHVlLnN1YnN0cmluZyhhKSxlLnNlbGVjdGlvblN0YXJ0PXIrbi5sZW5ndGgrMyxlLnNlbGVjdGlvbkVuZD1yK24ubGVuZ3RoKzYsZS5mb2N1cygpfWF1dG9SZXNpemUoZSl7ZS5zdHlsZS5oZWlnaHQ9ImF1dG8iLGUuc3R5bGUuaGVpZ2h0PWUuc2Nyb2xsSGVpZ2h0KyJweCJ9cGFyc2VNYXJrZG93bihlKXtsZXQgcj10aGlzLmVzY2FwZUh0bWwoZSk7cmV0dXJuIHI9ci5yZXBsYWNlKC9eIyMjICguKykkL2dtLCI8aDM+JDE8L2gzPiIpLHI9ci5yZXBsYWNlKC9eIyMgKC4rKSQvZ20sIjxoMj4kMTwvaDI+Iikscj1yLnJlcGxhY2UoL14jICguKykkL2dtLCI8aDE+JDE8L2gxPiIpLHI9ci5yZXBsYWNlKC9cKlwqKC4rPylcKlwqL2csIjxzdHJvbmc+JDE8L3N0cm9uZz4iKSxyPXIucmVwbGFjZSgvX18oLis/KV9fL2csIjxzdHJvbmc+JDE8L3N0cm9uZz4iKSxyPXIucmVwbGFjZSgvXCooLis/KVwqL2csIjxlbT4kMTwvZW0+Iikscj1yLnJlcGxhY2UoL18oLis/KV8vZywiPGVtPiQxPC9lbT4iKSxyPXIucmVwbGFjZSgvYGBgKFtcc1xTXSo/KWBgYC9nLCI8cHJlPjxjb2RlPiQxPC9jb2RlPjwvcHJlPiIpLHI9ci5yZXBsYWNlKC9gKC4rPylgL2csIjxjb2RlPiQxPC9jb2RlPiIpLHI9ci5yZXBsYWNlKC9cWyhbXlxdXSspXF1cKChbXildKylcKS9nLCc8YSBocmVmPSIkMiI+JDE8L2E+Jykscj1yLnJlcGxhY2UoL15cKiAoLispJC9nbSwiPGxpPiQxPC9saT4iKSxyPXIucmVwbGFjZSgvXi0gKC4rKSQvZ20sIjxsaT4kMTwvbGk+Iikscj1yLnJlcGxhY2UoL15cZCtcLiAoLispJC9nbSwiPGxpPiQxPC9saT4iKSxyPXIucmVwbGFjZSgvKDxsaT4uKjxcL2xpPlxuPykrL2csYT0+Ijx1bD4iK2ErIjwvdWw+Iikscj1yLnJlcGxhY2UoL1xuXG4vZywiPC9wPjxwPiIpLHI9IjxwPiIrcisiPC9wPiIscj1yLnJlcGxhY2UoLzxwPjxcL3A+L2csIiIpLHI9ci5yZXBsYWNlKC88cD4oPGhbMS0zXT4pL2csIiQxIikscj1yLnJlcGxhY2UoLyg8XC9oWzEtM10+KTxcL3A+L2csIiQxIikscj1yLnJlcGxhY2UoLzxwPig8dWw+KS9nLCIkMSIpLHI9ci5yZXBsYWNlKC8oPFwvdWw+KTxcL3A+L2csIiQxIikscj1yLnJlcGxhY2UoLzxwPig8cHJlPikvZywiJDEiKSxyPXIucmVwbGFjZSgvKDxcL3ByZT4pPFwvcD4vZywiJDEiKSxyfWVzY2FwZUh0bWwoZSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIudGV4dENvbnRlbnQ9ZSxyLmlubmVySFRNTH1nZXRDb250ZW50KGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKHIpcmV0dXJuIHIudmFsdWU7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiIifXNldENvbnRlbnQoZSxyKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTthJiYoYS52YWx1ZT1yLHRoaXMuYXV0b1Jlc2l6ZShhKSl9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7cmV0dXJuIHI/ci5zZWxlY3Rpb25TdGFydDpudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7cj8oci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD0wLHIuZm9jdXMoKSk6dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZihyKXtsZXQgYT1yLnZhbHVlLmxlbmd0aDtyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPWEsci5mb2N1cygpfWVsc2UgdGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyP3IuZm9jdXMoKTplLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1wcmV2aWV3Iik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUscj0iZW5kIil7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7YT9yPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSk6dHlwZW9mIHI9PSJudW1iZXIiJiYoYS5zZWxlY3Rpb25TdGFydD1hLnNlbGVjdGlvbkVuZD1yLGEuZm9jdXMoKSk6dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYoIXIpcmV0dXJuIG51bGw7bGV0IGE9ci5zZWxlY3Rpb25TdGFydDtyZXR1cm57YmVmb3JlOnIudmFsdWUuc3Vic3RyaW5nKDAsYSksYWZ0ZXI6ci52YWx1ZS5zdWJzdHJpbmcoYSl9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogTWFya2Rvd24gQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5tYXJrZG93bi1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5tYXJrZG93bi1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi10b2dnbGUtbW9kZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi10b2dnbGUtbW9kZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb250ZW50ICovCiAgICAgIC5tYXJrZG93bi1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEVkaXRvciAqLwogICAgICAubWFya2Rvd24tZWRpdG9yIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1lZGl0b3I6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBQcmV2aWV3ICovCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDk2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICB9CiAgICAgIAogICAgICAucHJldmlldy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIE1hcmtkb3duIHByZXZpZXcgc3R5bGVzICovCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgxIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDE2cHggMCA4cHggMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBoMiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxNHB4IDAgNnB4IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTJweCAwIDRweCAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHAgewogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHVsLAogICAgICAubWFya2Rvd24tcHJldmlldyBvbCB7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGxpIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMnB4IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwcmUgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGEgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYmxvY2txdW90ZSB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgfQogICAgYH19fSk7dmFyIGtyZSxwWnI9dSgoKT0+e2xsKCk7dmUoKTtrcmU9Y2xhc3MgZXh0ZW5kcyBwaXtzdGF0aWN7aSh0aGlzLCJIdG1sQmxvY2tIYW5kbGVyIil9dHlwZT0iaHRtbCI7cmVuZGVyKGUscil7bGV0IGE9ZS5tZXRhZGF0YT8uaXNFZGl0TW9kZT8/ITAscz1lLmNvbnRlbnR8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaHRtbC1ibG9jay1jb250YWluZXIke3I/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke2F9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWljb24iPiZsdDsvJmd0OzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC10aXRsZSI+SFRNTDwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaHRtbC10b2dnbGUtbW9kZSIgdGl0bGU9IiR7YT8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7YT8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtY29udGVudCI+CiAgICAgICAgICAke2E/dGhpcy5yZW5kZXJFZGl0b3Iocyk6dGhpcy5yZW5kZXJQcmV2aWV3KHMpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRWRpdG9yKGUpe3JldHVybmAKICAgICAgPHRleHRhcmVhIGNsYXNzPSJodG1sLWVkaXRvciIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgSFRNTCBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKGUpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJodG1sLXByZXZpZXciPgogICAgICAgICR7ZXx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLHIsYSl7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKSxuPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtdG9nZ2xlLW1vZGUiKTtpZighc3x8IW4pe2NvbnNvbGUuZXJyb3IoIkh0bWxCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXIubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJihyLm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntpZihvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSxyLm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBsPXMucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7bCYmKHIuY29udGVudD1sLnZhbHVlKX1yLm1ldGFkYXRhLmlzRWRpdE1vZGU9IXIubWV0YWRhdGEuaXNFZGl0TW9kZSxhLm9uUmVxdWVzdFVwZGF0ZT8uKCl9KSxyLm1ldGFkYXRhLmlzRWRpdE1vZGU/dGhpcy5zZXR1cEVkaXRvcihlLHIsYSk6dGhpcy5zZXR1cFByZXZpZXcoZSxyLGEpfXNldHVwRWRpdG9yKGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO3MmJihzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+YS5vbkZvY3VzKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmEub25CbHVyKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57ci5jb250ZW50PXMudmFsdWUsdGhpcy52YWxpZGF0ZUh0bWwocy52YWx1ZSl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntpZihuLmtleT09PSJUYWIiKXtuLnByZXZlbnREZWZhdWx0KCk7bGV0IG89cy5zZWxlY3Rpb25TdGFydCxsPXMuc2VsZWN0aW9uRW5kLGM9cy52YWx1ZTtpZihuLnNoaWZ0S2V5KXtsZXQgcD1jLnN1YnN0cmluZygwLG8pLmxhc3RJbmRleE9mKGAKYCkrMSxoPWMuc3Vic3RyaW5nKHAsbyk7aC5zdGFydHNXaXRoKCIgICIpJiYocy52YWx1ZT1jLnN1YnN0cmluZygwLHApK2guc3Vic3RyaW5nKDIpK2Muc3Vic3RyaW5nKG8pLHMuc2VsZWN0aW9uU3RhcnQ9cy5zZWxlY3Rpb25FbmQ9by0yKX1lbHNlIHMudmFsdWU9Yy5zdWJzdHJpbmcoMCxvKSsiICAiK2Muc3Vic3RyaW5nKGwpLHMuc2VsZWN0aW9uU3RhcnQ9cy5zZWxlY3Rpb25FbmQ9bysyO3IuY29udGVudD1zLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSIvIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYXV0b0Nsb3NlVGFnKHMpLHIuY29udGVudD1zLnZhbHVlO3JldHVybn1hLm9uS2V5RG93bihuKX0pLHRoaXMuYXV0b1Jlc2l6ZShzKSxzLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+dGhpcy5hdXRvUmVzaXplKHMpKSl9c2V0dXBQcmV2aWV3KGUscixhKXtsZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1wcmV2aWV3Iik7IXN8fCFufHwobi5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5hLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+YS5vbkJsdXIoKSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57aWYoby5rZXk9PT0iRW50ZXIiJiYhby5zaGlmdEtleSl7by5wcmV2ZW50RGVmYXVsdCgpLHIubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCxhLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWEub25LZXlEb3duKG8pfSksdGhpcy5zYW5kYm94Q29udGVudChuKSl9YXV0b0Nsb3NlVGFnKGUpe2xldCByPWUuc2VsZWN0aW9uU3RhcnQsYT1lLnZhbHVlLHM9cjtmb3IoO3M+MCYmYVtzLTFdIT09IjwiOylzLS07aWYocz4wKXtsZXQgbz1hLnN1YnN0cmluZyhzLHIpLm1hdGNoKC9eKFx3KykvKTtpZihvKXtsZXQgYz1gPC8ke29bMV19PmA7ZS52YWx1ZT1hLnN1YnN0cmluZygwLHIpKyI+IitjK2Euc3Vic3RyaW5nKHIpLGUuc2VsZWN0aW9uU3RhcnQ9ZS5zZWxlY3Rpb25FbmQ9cisxfX19YXV0b1Jlc2l6ZShlKXtlLnN0eWxlLmhlaWdodD0iYXV0byIsZS5zdHlsZS5oZWlnaHQ9ZS5zY3JvbGxIZWlnaHQrInB4In12YWxpZGF0ZUh0bWwoZSl7bGV0IHI9W10sYT0vPFwvPyhbYS16QS1aXVthLXpBLVowLTldKilcYltePl0qPi9nLHM7Zm9yKDsocz1hLmV4ZWMoZSkpIT09bnVsbDspe2xldCBuPXNbMF0uc3RhcnRzV2l0aCgiPC8iKSxvPXNbMV0udG9Mb3dlckNhc2UoKTtpZihuKXtpZihyLmxlbmd0aD09PTB8fHJbci5sZW5ndGgtMV0hPT1vKXJldHVybiBjb25zb2xlLndhcm4oYE1pc21hdGNoZWQgY2xvc2luZyB0YWc6ICR7b31gKSwhMTtyLnBvcCgpfWVsc2Ugc1swXS5lbmRzV2l0aCgiLz4iKXx8ci5wdXNoKG8pfXJldHVybiByLmxlbmd0aD4wPyhjb25zb2xlLndhcm4oYFVuY2xvc2VkIHRhZ3M6ICR7ci5qb2luKCIsICIpfWApLCExKTohMH1zYW5kYm94Q29udGVudChlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpLmZvckVhY2gobj0+bi5yZW1vdmUoKSksZS5xdWVyeVNlbGVjdG9yQWxsKCIqIikuZm9yRWFjaChuPT57QXJyYXkuZnJvbShuLmF0dHJpYnV0ZXMpLmZvckVhY2gobz0+e28ubmFtZS5zdGFydHNXaXRoKCJvbiIpJiZuLnJlbW92ZUF0dHJpYnV0ZShvLm5hbWUpfSl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0iKS5mb3JFYWNoKG49PntuLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsbz0+e28ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpfSl9KX1lc2NhcGVIdG1sKGUpe2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiByLnRleHRDb250ZW50PWUsci5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2lmKHIpcmV0dXJuIHIudmFsdWU7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudChlLHIpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7YSYmKGEudmFsdWU9cix0aGlzLmF1dG9SZXNpemUoYSkpfWdldEN1cnNvclBvc2l0aW9uKGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7cmV0dXJuIHI/ci5zZWxlY3Rpb25TdGFydDpudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyPyhyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPTAsci5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYocil7bGV0IGE9ci52YWx1ZS5sZW5ndGg7ci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1hLHIuZm9jdXMoKX1lbHNlIHRoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyP3IuZm9jdXMoKTplLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSxyPSJlbmQiKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2E/cj09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUpOnI9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUpOnR5cGVvZiByPT0ibnVtYmVyIiYmKGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9cixhLmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYoIXIpcmV0dXJuIG51bGw7bGV0IGE9ci5zZWxlY3Rpb25TdGFydDtyZXR1cm57YmVmb3JlOnIudmFsdWUuc3Vic3RyaW5nKDAsYSksYWZ0ZXI6ci52YWx1ZS5zdWJzdHJpbmcoYSl9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSFRNTCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5odG1sLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdG9nZ2xlLW1vZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29udGVudCAqLwogICAgICAuaHRtbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEVkaXRvciAqLwogICAgICAuaHRtbC1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtZWRpdG9yOjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogUHJldmlldyAqLwogICAgICAuaHRtbC1wcmV2aWV3IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDk2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICB9CiAgICAgIAogICAgICAucHJldmlldy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNhbmRib3hlZCBIVE1MIHByZXZpZXcgc3R5bGVzICovCiAgICAgIC5odG1sLXByZXZpZXcgKiB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGltZyB7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGEgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRhYmxlIHsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGgsCiAgICAgIC5odG1sLXByZXZpZXcgdGQgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0aCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICBgfX19KTt2YXIgWjh0PXUoKCk9PntsbCgpO0RVcigpOyRVcigpO0FVcigpO0VVcigpO0lVcigpO3NacigpO25acigpO29acigpO2xacigpO2NacigpO2RacigpO3VacigpO3BacigpfSk7ZnVuY3Rpb24gZlpyKCl7SWEucmVnaXN0ZXIoImRpdmlkZXIiLG5ldyB5cmUpLElhLnJlZ2lzdGVyKCJwYXJhZ3JhcGgiLG5ldyB3dGUpLElhLnJlZ2lzdGVyKCJoZWFkaW5nLTEiLG5ldyBfOSgiaGVhZGluZy0xIikpLElhLnJlZ2lzdGVyKCJoZWFkaW5nLTIiLG5ldyBfOSgiaGVhZGluZy0yIikpLElhLnJlZ2lzdGVyKCJoZWFkaW5nLTMiLG5ldyBfOSgiaGVhZGluZy0zIikpLElhLnJlZ2lzdGVyKCJxdW90ZSIsbmV3IGt0ZSksSWEucmVnaXN0ZXIoImNvZGUiLG5ldyBtcmUpLElhLnJlZ2lzdGVyKCJsaXN0IixuZXcgZ3JlKSxJYS5yZWdpc3RlcigiaW1hZ2UiLG5ldyBicmUpLElhLnJlZ2lzdGVyKCJ5b3V0dWJlIixuZXcgeHJlKSxJYS5yZWdpc3RlcigiYXR0YWNobWVudCIsbmV3IHZyZSksSWEucmVnaXN0ZXIoIm1hcmtkb3duIixuZXcgd3JlKSxJYS5yZWdpc3RlcigiaHRtbCIsbmV3IGtyZSl9dmFyIFE4dD11KCgpPT57Wjh0KCk7aShmWnIsInJlZ2lzdGVyQWxsQmxvY2tIYW5kbGVycyIpLGZacigpfSk7dmFyIFNyZSxYOHQ9dSgoKT0+e3ZlKCk7UTQoKTskMSgpO0M5KCk7cGZlKCk7U3JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdNb2RhbE1hbmFnZXIiKX1zdGF0aWMgYXN5bmMgc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2xldCByPW51bGw7ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2VsZWN0IFByb2dyYW1taW5nIExhbmd1YWdlIixjb250ZW50OndgCiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5sYW5ndWFnZS1jb250YWluZXIgewogICAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtZ3JpZCB7CiAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjBweCwgMWZyKSk7CiAgICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZ3JpZCI+CiAgICAgICAgICAgICAgJHt0aGlzLmdldExhbmd1YWdlcygpLm1hcChhPT53YAogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiAke3I9PT1hLnRvTG93ZXJDYXNlKCk/InNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PntyPWEudG9Mb3dlckNhc2UoKTtsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7cyYmdHlwZW9mIHMuZGVzdHJveT09ImZ1bmN0aW9uIiYmcy5kZXN0cm95KCksZShyKX19Ij4KICAgICAgICAgICAgICAgICAgJHthfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgYT0+e2EuZGVzdHJveSgpLGUobnVsbCl9LCJhY3Rpb24iKX1dfSl9KX1zdGF0aWMgYXN5bmMgc2hvd0Jsb2NrU2V0dGluZ3NNb2RhbChlLHIpe2xldCBhPXdgCiAgICAgIDxzdHlsZT4KICAgICAgICAuc2V0dGluZ3MtY29udGFpbmVyIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgLnNldHRpbmdzLWxhYmVsIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE2MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b24gewogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtaWNvbiB7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLmdldEJsb2NrVHlwZVNlbGVjdG9yKGUscil9CiAgICAgICAgJHtlLnR5cGU9PT0iY29kZSI/dGhpcy5nZXRDb2RlQmxvY2tTZXR0aW5ncyhlLHIpOiIifQogICAgICA8L2Rpdj4KICAgIGA7ZWEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQmxvY2sgU2V0dGluZ3MiLGNvbnRlbnQ6YSxtZW51T3B0aW9uczpbe25hbWU6IkRvbmUiLGFjdGlvbjppKGFzeW5jIHM9PntzLmRlc3Ryb3koKX0sImFjdGlvbiIpfV19KX1zdGF0aWMgZ2V0Q29kZUJsb2NrU2V0dGluZ3MoZSxyKXtsZXQgYT1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8ImphdmFzY3JpcHQiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLmxhbmd1YWdlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogNnB4OwogICAgICAgIH0KICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICAgIHBhZGRpbmc6IDhweCA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+UHJvZ3JhbW1pbmcgTGFuZ3VhZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1ncmlkIj4KICAgICAgICAgICR7dGhpcy5nZXRMYW5ndWFnZXMoKS5tYXAocz0+d2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uICR7YT09PXMudG9Mb3dlckNhc2UoKT8ic2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57ZS5tZXRhZGF0YXx8KGUubWV0YWRhdGE9e30pLGUubWV0YWRhdGEubGFuZ3VhZ2U9cy50b0xvd2VyQ2FzZSgpLHIoZSk7bGV0IG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO24mJnR5cGVvZiBuLmRlc3Ryb3k9PSJmdW5jdGlvbiImJm4uZGVzdHJveSgpfX0iCiAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke3N9IgogICAgICAgICAgICA+JHtzfTwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWMgZ2V0TGFuZ3VhZ2VzKCl7cmV0dXJuWy4uLnZ0ZV19c3RhdGljIGdldEJsb2NrVHlwZVNlbGVjdG9yKGUscil7bGV0IGE9Y3MuZ2V0U2xhc2hNZW51SXRlbXMoKS5maWx0ZXIocz0+cy50eXBlIT09ImRpdmlkZXIiKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPkJsb2NrIFR5cGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJibG9jay10eXBlLWdyaWQiPgogICAgICAgICAgJHthLm1hcChzPT53YAogICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgIGNsYXNzPSJibG9jay10eXBlLWJ1dHRvbiAke2UudHlwZT09PXMudHlwZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9IiR7YXN5bmMgbj0+e2xldCBvPW4uY3VycmVudFRhcmdldCxsPWUudHlwZTtpZihlLnR5cGU9cy50eXBlLGw9PT0iY29kZSImJmUudHlwZSE9PSJjb2RlIilkZWxldGUgZS5tZXRhZGF0YT8ubGFuZ3VhZ2U7ZWxzZSBpZihsPT09Imxpc3QiJiZlLnR5cGUhPT0ibGlzdCIpZGVsZXRlIGUubWV0YWRhdGE/Lmxpc3RUeXBlO2Vsc2UgaWYoZS50eXBlPT09Imxpc3QiJiYhZS5tZXRhZGF0YT8ubGlzdFR5cGUpZS5tZXRhZGF0YT17bGlzdFR5cGU6ImJ1bGxldCJ9O2Vsc2UgaWYoZS50eXBlPT09ImNvZGUiJiYhZS5tZXRhZGF0YT8ubGFuZ3VhZ2Upe2xldCBkPWF3YWl0IHRoaXMuc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKTtpZihkKWUubWV0YWRhdGE9e2xhbmd1YWdlOmR9O2Vsc2V7ZS50eXBlPWw7cmV0dXJufX1yKGUpO2xldCBjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtbW9kYWwiKTtjJiZ0eXBlb2YgYy5kZXN0cm95PT0iZnVuY3Rpb24iJiZjLmRlc3Ryb3koKX19IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJsb2NrLXR5cGUtaWNvbiI+JHtzLmljb259PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuPiR7cy5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19fSk7dmFyIE1yZSxoWnI9dSgoKT0+eyQxKCk7ankoKTtDOSgpO3IzKCk7c210KCk7WDh0KCk7TXJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdJbnB1dEhhbmRsZXIiKX1jb21wb25lbnQ7c2F2ZVRpbWVvdXQ9bnVsbDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWhhbmRsZUJsb2NrSW5wdXQoZSxyKXtpZih0aGlzLmNvbXBvbmVudC5pc0NvbXBvc2luZylyZXR1cm47bGV0IGE9ZS50YXJnZXQscz1hLnRleHRDb250ZW50fHwiIixuPXRoaXMuZGV0ZWN0QmxvY2tUeXBlSW50ZW50KHMpO2lmKG4mJm4udHlwZSE9PXIudHlwZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlQmxvY2tUcmFuc2Zvcm1hdGlvbihyLG4sYSk7cmV0dXJufXRoaXMuaGFuZGxlU2xhc2hDb21tYW5kKHMsYSksdGhpcy5zY2hlZHVsZUF1dG9TYXZlKCl9dXBkYXRlQmxvY2tDb250ZW50KGUscil7bGV0IHM9ci5jbG9zZXN0KCIuYmxvY2std3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihzKXtsZXQgbj1zLmdldENvbnRlbnQoKTtpZihlLmNvbnRlbnQhPT1uJiYoZS5jb250ZW50PW4pLGUudHlwZT09PSJsaXN0Iil7bGV0IG89ci5xdWVyeVNlbGVjdG9yKCJvbCwgdWwiKTtvJiYoZS5tZXRhZGF0YT17bGlzdFR5cGU6by50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ib2wiPyJvcmRlcmVkIjoiYnVsbGV0In0pfX1lbHNlIGlmKGUudHlwZT09PSJsaXN0Iil7bGV0IG49ci5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpO2UuY29udGVudD1BcnJheS5mcm9tKG4pLm1hcChsPT5sLmlubmVySFRNTHx8IiIpLmpvaW4oYApgKTtsZXQgbz1yLnF1ZXJ5U2VsZWN0b3IoIm9sLCB1bCIpO28mJihlLm1ldGFkYXRhPXtsaXN0VHlwZTpvLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifSl9ZWxzZSBlLnR5cGU9PT0iY29kZSI/ZS5jb250ZW50PXIudGV4dENvbnRlbnR8fCIiOmUuY29udGVudD1yLmlubmVySFRNTHx8IiJ9ZGV0ZWN0QmxvY2tUeXBlSW50ZW50KGUpe2xldCByPWNzLmNoZWNrSGVhZGluZ1Nob3J0Y3V0KGUpO2lmKHIpcmV0dXJuIHI7bGV0IGE9Y3MuY2hlY2tMaXN0U2hvcnRjdXQoZSk7cmV0dXJuIGF8fChjcy5jaGVja1F1b3RlU2hvcnRjdXQoZSk/e3R5cGU6InF1b3RlIn06Y3MuY2hlY2tDb2RlU2hvcnRjdXQoZSk/e3R5cGU6ImNvZGUifTpjcy5jaGVja0RpdmlkZXJTaG9ydGN1dChlKT97dHlwZToiZGl2aWRlciJ9Om51bGwpfWFzeW5jIGhhbmRsZUJsb2NrVHJhbnNmb3JtYXRpb24oZSxyLGEpe2xldCBzPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihyLnR5cGU9PT0ibGlzdCIpe2UudHlwZT0ibGlzdCIsZS5jb250ZW50PSIiLGUubWV0YWRhdGE9e2xpc3RUeXBlOnIubGlzdFR5cGV9O2xldCBuPXIubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO2EuaW5uZXJIVE1MPWA8JHtufT48bGk+PC9saT48LyR7bn0+YCx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KCgpPT57RW4uZm9jdXNMaXN0SXRlbShhKX0sMCl9ZWxzZSBpZihyLnR5cGU9PT0iZGl2aWRlciIpe2UudHlwZT0iZGl2aWRlciIsZS5jb250ZW50PSIgIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCk7bGV0IG49cy5jcmVhdGVCbG9jaygpO3MuaW5zZXJ0QmxvY2tBZnRlcihlLG4pLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZWxzZSBpZihyLnR5cGU9PT0iY29kZSIpe2xldCBuPWF3YWl0IFNyZS5zaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpO24mJihlLnR5cGU9ImNvZGUiLGUuY29udGVudD0iIixlLm1ldGFkYXRhPXtsYW5ndWFnZTpufSxhLnRleHRDb250ZW50PSIiLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHMuZm9jdXNCbG9jayhlLmlkLCJzdGFydCIpfSw1MCkpfWVsc2UgZS50eXBlPXIudHlwZSxlLmNvbnRlbnQ9IiIsYS50ZXh0Q29udGVudD0iIix0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCBzLmZvY3VzQmxvY2soZS5pZCwic3RhcnQiKX0sNTApfWhhbmRsZVNsYXNoQ29tbWFuZChlLHIpe2xldCBhPXRoaXMuY29tcG9uZW50LnNsYXNoTWVudSxzPWEmJmEudmlzaWJsZTtpZihlPT09Ii8ifHxlLnN0YXJ0c1dpdGgoIi8iKSYmcyl7aWYoIXMmJmU9PT0iLyIpe2xldCBuPXRoaXMuZ2V0Q2FyZXRDb29yZGluYXRlcyhyKTthLnNob3coe3g6bi5sZWZ0LHk6bi5ib3R0b20rNH0sbz0+e3RoaXMuY29tcG9uZW50Lmluc2VydEJsb2NrKG8pfSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXImJnIuZm9jdXMoKX0pfWEmJmEudXBkYXRlRmlsdGVyKGUuc2xpY2UoMSkpfWVsc2UgZS5zdGFydHNXaXRoKCIvIil8fHRoaXMuY29tcG9uZW50LmNsb3NlU2xhc2hNZW51KCl9Z2V0Q2FyZXRDb29yZGluYXRlcyhlKXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYociYmci5yYW5nZUNvdW50PjApe2xldCBzPXIuZ2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihzLndpZHRoPjB8fHMuaGVpZ2h0PjApcmV0dXJuIHN9cmV0dXJuIGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9c2NoZWR1bGVBdXRvU2F2ZSgpe3RoaXMuc2F2ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNhdmVUaW1lb3V0KSwhKHRoaXMuY29tcG9uZW50LnNsYXNoTWVudSYmdGhpcy5jb21wb25lbnQuc2xhc2hNZW51LnZpc2libGUpJiYodGhpcy5zYXZlVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zeW5jQWxsQmxvY2tDb250ZW50KCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX0sMmUzKSl9c3luY0FsbEJsb2NrQ29udGVudCgpe3RoaXMuY29tcG9uZW50LmJsb2Nrcy5mb3JFYWNoKGU9PntsZXQgYT10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKGEmJmEuZ2V0Q29udGVudCl7bGV0IHM9YS5nZXRDb250ZW50KCk7ZS5jb250ZW50IT09cyYmKGUuY29udGVudD1zKX19KX1kZXN0cm95KCl7dGhpcy5zYXZlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2F2ZVRpbWVvdXQpfX19KTt2YXIgQ3JlLG1acj11KCgpPT57JDEoKTtqeSgpO25kKCk7Q3JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdLZXlib2FyZEhhbmRsZXIiKX1jb21wb25lbnQ7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1hc3luYyBoYW5kbGVCbG9ja0tleURvd24oZSxyKXtpZih0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5pc1NsYXNoTWVudUtleShlLmtleSkpe3RoaXMuY29tcG9uZW50LmhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGUpO3JldHVybn1pZighdGhpcy5oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpKXN3aXRjaChlLmtleSl7Y2FzZSJUYWIiOnRoaXMuaGFuZGxlVGFiKGUscik7YnJlYWs7Y2FzZSJFbnRlciI6YXdhaXQgdGhpcy5oYW5kbGVFbnRlcihlLHIpO2JyZWFrO2Nhc2UiQmFja3NwYWNlIjphd2FpdCB0aGlzLmhhbmRsZUJhY2tzcGFjZShlLHIpO2JyZWFrO2Nhc2UiRGVsZXRlIjphd2FpdCB0aGlzLmhhbmRsZURlbGV0ZShlLHIpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd1VwKGUscik7YnJlYWs7Y2FzZSJBcnJvd0Rvd24iOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dEb3duKGUscik7YnJlYWs7Y2FzZSJBcnJvd0xlZnQiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dMZWZ0KGUscik7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0Ijphd2FpdCB0aGlzLmhhbmRsZUFycm93UmlnaHQoZSxyKTticmVha319aXNTbGFzaE1lbnVLZXkoZSl7cmV0dXJuWyJBcnJvd0Rvd24iLCJBcnJvd1VwIiwiRW50ZXIiLCJFc2NhcGUiXS5pbmNsdWRlcyhlKX1oYW5kbGVGb3JtYXR0aW5nU2hvcnRjdXRzKGUpe2lmKCEoZS5tZXRhS2V5fHxlLmN0cmxLZXkpKXJldHVybiExO3N3aXRjaChlLmtleS50b0xvd2VyQ2FzZSgpKXtjYXNlImIiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoImJvbGQiKSksITA7Y2FzZSJpIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJpdGFsaWMiKSksITA7Y2FzZSJ1IjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJ1bmRlcmxpbmUiKSksITA7Y2FzZSJrIjpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJsaW5rIikpLCEwfXJldHVybiExfWhhbmRsZVRhYihlLHIpe3IudHlwZSE9PSJjb2RlIiYmci50eXBlPT09Imxpc3QiJiZlLnByZXZlbnREZWZhdWx0KCl9YXN5bmMgaGFuZGxlRW50ZXIoZSxyKXtsZXQgYT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHIudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgbj1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHIsbik7cmV0dXJufWlmKHIudHlwZT09PSJjb2RlIil7aWYoZS5zaGlmdEtleSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPWEuY3JlYXRlQmxvY2soKTthd2FpdCBhLmluc2VydEJsb2NrQWZ0ZXIocixuKX1yZXR1cm59aWYoIWUuc2hpZnRLZXkpaWYoci50eXBlPT09Imxpc3QiKWF3YWl0IHRoaXMuaGFuZGxlRW50ZXJJbkxpc3QoZSxyKTtlbHNle2UucHJldmVudERlZmF1bHQoKTtsZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKG8mJm8uZ2V0U3BsaXRDb250ZW50KXtsZXQgbD1vLmdldFNwbGl0Q29udGVudCgpO2lmKGwpe28uc2V0Q29udGVudChsLmJlZm9yZSksci5jb250ZW50PWwuYmVmb3JlO2xldCBjPWEuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsbC5hZnRlcik7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHIsYyksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX1lbHNle2xldCBjPWEuY3JlYXRlQmxvY2soKTthd2FpdCBhLmluc2VydEJsb2NrQWZ0ZXIocixjKX19ZWxzZXtsZXQgbD1hLmNyZWF0ZUJsb2NrKCk7YXdhaXQgYS5pbnNlcnRCbG9ja0FmdGVyKHIsbCl9fX1hc3luYyBoYW5kbGVFbnRlckluTGlzdChlLHIpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihhJiZhLnJhbmdlQ291bnQ+MCl7bGV0IG49YS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYobiYmbi50ZXh0Q29udGVudD09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG89dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGw9by5jcmVhdGVCbG9jaygpO2F3YWl0IG8uaW5zZXJ0QmxvY2tBZnRlcihyLGwpfX19YXN5bmMgaGFuZGxlQmFja3NwYWNlKGUscil7bGV0IGE9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhyLnR5cGUpKXtpZihlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD09PTEpe3RoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGEucmVtb3ZlQmxvY2soci5pZCk7bGV0IHY9YS5jcmVhdGVCbG9jaygicGFyYWdyYXBoIiwiIik7dGhpcy5jb21wb25lbnQuYmxvY2tzPVt2XSx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksYXdhaXQgYS5mb2N1c0Jsb2NrKHYuaWQsInN0YXJ0IiksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtyZXR1cm59dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSk7bGV0IGg9YS5nZXRQcmV2aW91c0Jsb2NrKHIuaWQpLG09YS5nZXROZXh0QmxvY2soci5pZCk7YS5yZW1vdmVCbG9jayhyLmlkKSxoJiZoLnR5cGUhPT0iZGl2aWRlciImJmgudHlwZSE9PSJpbWFnZSI/YXdhaXQgYS5mb2N1c0Jsb2NrKGguaWQsImVuZCIpOm0mJm0udHlwZSE9PSJkaXZpZGVyIiYmbS50eXBlIT09ImltYWdlIj9hd2FpdCBhLmZvY3VzQmxvY2sobS5pZCwic3RhcnQiKTpoP2F3YWl0IGEuZm9jdXNCbG9jayhoLmlkKTptJiZhd2FpdCBhLmZvY3VzQmxvY2sobS5pZCk7cmV0dXJufWxldCBvPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3IuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW98fCFvLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBsPXIudHlwZT09PSJjb2RlIj9vLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFsKXJldHVybjtsZXQgYz1vLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGQ9W107Yz8uc2hhZG93Um9vdCYmZC5wdXNoKGMuc2hhZG93Um9vdCksZC5wdXNoKG8uc2hhZG93Um9vdCk7bGV0IGY9aHQuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobCwuLi5kKSxwPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTpsLnRleHRDb250ZW50O2lmKGY9PT0wKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGg9YS5nZXRQcmV2aW91c0Jsb2NrKHIuaWQpO2lmKGgpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhoLnR5cGUpKXthd2FpdCBhLmZvY3VzQmxvY2soaC5pZCk7cmV0dXJufWlmKHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGgudHlwZT09PSJjb2RlIiYmci50eXBlIT09ImNvZGUiKXtyLmNvbnRlbnQ9PT0iIiYmKGEucmVtb3ZlQmxvY2soci5pZCksYXdhaXQgYS5mb2N1c0Jsb2NrKGguaWQsImVuZCIpKTtyZXR1cm59aWYoci50eXBlPT09ImNvZGUiJiZoLnR5cGUhPT0iY29kZSIpe2xldCBOPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTpyLmNvbnRlbnQ7KE49PT0iInx8Ti50cmltKCk9PT0iIikmJihhLnJlbW92ZUJsb2NrKHIuaWQpLGF3YWl0IGEuZm9jdXNCbG9jayhoLmlkLCJlbmQiKSk7cmV0dXJufWxldCBiPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2guaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIiksZz1iPy5nZXRDb250ZW50KCl8fGguY29udGVudHx8IiIseT1vLmdldENvbnRlbnQoKXx8ci5jb250ZW50fHwiIixrPSIiO2gudHlwZT09PSJjb2RlIiYmci50eXBlPT09ImNvZGUifHxoLnR5cGU9PT0ibGlzdCImJnIudHlwZT09PSJsaXN0Ij9rPWcrKGcmJnk/YApgOiIiKSt5Oms9ZysoZyYmeT8iICI6IiIpK3k7bGV0IE09Zy5sZW5ndGg7YS51cGRhdGVCbG9ja0NvbnRlbnQoaC5pZCxrKSxiJiZiLnNldENvbnRlbnQoayksYS5yZW1vdmVCbG9jayhyLmlkKSxhd2FpdCBhLmZvY3VzQmxvY2soaC5pZCxNKX19ZWxzZSBpZih0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPjEpe2xldCBoPW8uZ2V0Q29udGVudD9vLmdldENvbnRlbnQoKTpyLmNvbnRlbnQ7aWYoaD09PSIifHxoLnRyaW0oKT09PSIiKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG09YS5nZXRQcmV2aW91c0Jsb2NrKHIuaWQpO20mJihhLnJlbW92ZUJsb2NrKHIuaWQpLG0udHlwZSE9PSJkaXZpZGVyIiYmYXdhaXQgYS5mb2N1c0Jsb2NrKG0uaWQsImVuZCIpKX19fWFzeW5jIGhhbmRsZURlbGV0ZShlLHIpe2xldCBhPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoci50eXBlKSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg9PT0xKXt0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxhLnJlbW92ZUJsb2NrKHIuaWQpO2xldCBiPWEuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsIiIpO3RoaXMuY29tcG9uZW50LmJsb2Nrcz1bYl0sdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGF3YWl0IGEuZm9jdXNCbG9jayhiLmlkLCJzdGFydCIpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7cmV0dXJufXRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpO2xldCBoPWEuZ2V0UHJldmlvdXNCbG9jayhyLmlkKSxtPWEuZ2V0TmV4dEJsb2NrKHIuaWQpO2EucmVtb3ZlQmxvY2soci5pZCk7bGV0IHY9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO20mJiF2LmluY2x1ZGVzKG0udHlwZSk/YXdhaXQgYS5mb2N1c0Jsb2NrKG0uaWQsInN0YXJ0Iik6aCYmIXYuaW5jbHVkZXMoaC50eXBlKT9hd2FpdCBhLmZvY3VzQmxvY2soaC5pZCwiZW5kIik6bT9hd2FpdCBhLmZvY3VzQmxvY2sobS5pZCk6aCYmYXdhaXQgYS5mb2N1c0Jsb2NrKGguaWQpO3JldHVybn1sZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFvfHwhby5zaGFkb3dSb290KXJldHVybjtsZXQgbD1yLnR5cGU9PT0iY29kZSI/by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbClyZXR1cm47bGV0IGM9by5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxkPVtdO2M/LnNoYWRvd1Jvb3QmJmQucHVzaChjLnNoYWRvd1Jvb3QpLGQucHVzaChvLnNoYWRvd1Jvb3QpO2xldCBmPWh0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGwsLi4uZCkscD1sLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYoZj09PXApe2xldCBoPWEuZ2V0TmV4dEJsb2NrKHIuaWQpO2lmKGgmJlsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhoLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCksYXdhaXQgYS5mb2N1c0Jsb2NrKGguaWQpO3JldHVybn19fWFzeW5jIGhhbmRsZUFycm93VXAoZSxyKXtsZXQgYT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07aWYoYS5pbmNsdWRlcyhyLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGY9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLHA9Zi5nZXRQcmV2aW91c0Jsb2NrKHIuaWQpO3AmJmF3YWl0IGYuZm9jdXNCbG9jayhwLmlkLGEuaW5jbHVkZXMocC50eXBlKT92b2lkIDA6ImVuZCIpO3JldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz1yLnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IGw9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxjPVtdO2w/LnNoYWRvd1Jvb3QmJmMucHVzaChsLnNoYWRvd1Jvb3QpLGMucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoISghZHx8IWQuY29sbGFwc2VkKSYmdGhpcy5pc09uRmlyc3RMaW5lKGQsbywuLi5jKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBmPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxwPWYuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtpZihwKXtsZXQgaD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgZi5mb2N1c0Jsb2NrKHAuaWQsaC5pbmNsdWRlcyhwLnR5cGUpP3ZvaWQgMDoiZW5kIil9fX1hc3luYyBoYW5kbGVBcnJvd0Rvd24oZSxyKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoci50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBmPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxwPWYuZ2V0TmV4dEJsb2NrKHIuaWQpO2lmKHApe2xldCBoPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCBmLmZvY3VzQmxvY2socC5pZCxoLmluY2x1ZGVzKHAudHlwZSk/dm9pZCAwOiJzdGFydCIpfXJldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz1yLnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IGw9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxjPVtdO2w/LnNoYWRvd1Jvb3QmJmMucHVzaChsLnNoYWRvd1Jvb3QpLGMucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uYyk7aWYoISghZHx8IWQuY29sbGFwc2VkKSYmdGhpcy5pc09uTGFzdExpbmUoZCxvLC4uLmMpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGY9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLHA9Zi5nZXROZXh0QmxvY2soci5pZCk7aWYocCl7bGV0IGg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGYuZm9jdXNCbG9jayhwLmlkLGguaW5jbHVkZXMocC50eXBlKT92b2lkIDA6InN0YXJ0Iil9fX1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgcj1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7cj49MDtyLS0pe2xldCBhPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1tyXSk7aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1hc3luYyBoYW5kbGVBcnJvd0xlZnQoZSxyKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoci50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBwPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxoPXAuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtpZihoKXtsZXQgbT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgcC5mb2N1c0Jsb2NrKGguaWQsbS5pbmNsdWRlcyhoLnR5cGUpP3ZvaWQgMDoiZW5kIil9cmV0dXJufWxldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3IuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW58fCFuLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBvPXIudHlwZT09PSJjb2RlIj9uLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFvKXJldHVybjtsZXQgbD1uLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGM9W107bD8uc2hhZG93Um9vdCYmYy5wdXNoKGwuc2hhZG93Um9vdCksYy5wdXNoKG4uc2hhZG93Um9vdCk7bGV0IGQ9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5jKTtpZighZHx8IWQuY29sbGFwc2VkKXJldHVybjtpZihodC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLmMpPT09MCl7bGV0IHA9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGg9cC5nZXRQcmV2aW91c0Jsb2NrKHIuaWQpO2lmKGgpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoaC50eXBlKT92b2lkIDA6ImVuZCI7YXdhaXQgcC5mb2N1c0Jsb2NrKGguaWQsdil9fX1hc3luYyBoYW5kbGVBcnJvd1JpZ2h0KGUscil7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHIudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgaD10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsbT1oLmdldE5leHRCbG9jayhyLmlkKTtpZihtKXtsZXQgdj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgaC5mb2N1c0Jsb2NrKG0uaWQsdi5pbmNsdWRlcyhtLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX1yZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ci5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89ci50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBsPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksYz1bXTtsPy5zaGFkb3dSb290JiZjLnB1c2gobC5zaGFkb3dSb290KSxjLnB1c2gobi5zaGFkb3dSb290KTtsZXQgZD1odC5nZXRTZWxlY3Rpb25JbmZvKC4uLmMpO2lmKCFkfHwhZC5jb2xsYXBzZWQpcmV0dXJuO2xldCBmPWh0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG8sLi4uYykscD1vLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYoZj09PXApe2xldCBoPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxtPWguZ2V0TmV4dEJsb2NrKHIuaWQpO2lmKG0pe2UucHJldmVudERlZmF1bHQoKTtsZXQgdj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgaC5mb2N1c0Jsb2NrKG0uaWQsdi5pbmNsdWRlcyhtLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX19fWlzT25GaXJzdExpbmUoZSxyLC4uLmEpe3RyeXtsZXQgcz1odC5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLG49cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXMuY29tbW9uQW5jZXN0b3JDb250YWluZXI7by5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobz1vLnBhcmVudEVsZW1lbnQpO2xldCBsPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz1uLnRvcC1sLnRvcDw1O3JldHVybiBvLnRleHRDb250ZW50JiYhby50ZXh0Q29udGVudC5pbmNsdWRlcyhgCmApP2h0LmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG8sLi4uYSk9PT0wOmN9Y2F0Y2gocyl7cmV0dXJuIGNvbnNvbGUud2FybigiRXJyb3IgY2hlY2tpbmcgZmlyc3QgbGluZToiLHMpLGUuc3RhcnRPZmZzZXQ9PT0wfX1pc09uTGFzdExpbmUoZSxyLC4uLmEpe3RyeXtsZXQgcz1odC5jcmVhdGVSYW5nZUZyb21JbmZvKGUpLG49cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXMuY29tbW9uQW5jZXN0b3JDb250YWluZXI7by5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYobz1vLnBhcmVudEVsZW1lbnQpO2xldCBjPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLW4uYm90dG9tPDU7aWYoby50ZXh0Q29udGVudCYmIW8udGV4dENvbnRlbnQuaW5jbHVkZXMoYApgKSl7bGV0IGQ9ci50ZXh0Q29udGVudD8ubGVuZ3RofHwwO3JldHVybiBodC5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChyLC4uLmEpPT09ZH1yZXR1cm4gY31jYXRjaChzKXtjb25zb2xlLndhcm4oIkVycm9yIGNoZWNraW5nIGxhc3QgbGluZToiLHMpO2xldCBuPXIudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gaHQuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQociwuLi5hKT09PW59fX19KTt2YXIgenJlLGdacj11KCgpPT57JDEoKTtqeSgpO3pyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXeXNpd3lnRHJhZ0Ryb3BIYW5kbGVyIil9Y29tcG9uZW50O2RyYWdnZWRCbG9ja0lkPW51bGw7ZHJhZ092ZXJCbG9ja0lkPW51bGw7ZHJhZ092ZXJQb3NpdGlvbj1udWxsO2Ryb3BJbmRpY2F0b3I9bnVsbDtpbml0aWFsTW91c2VZPTA7aW5pdGlhbEJsb2NrWT0wO2RyYWdnZWRCbG9ja0VsZW1lbnQ9bnVsbDtkcmFnZ2VkQmxvY2tIZWlnaHQ9MDtkcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0PTA7ZHJhZ2dlZEJsb2NrTWFyZ2luVG9wPTA7bGFzdFVwZGF0ZVRpbWU9MDt1cGRhdGVUaHJvdHRsZT04MDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWdldCBkcmFnU3RhdGUoKXtyZXR1cm57ZHJhZ2dlZEJsb2NrSWQ6dGhpcy5kcmFnZ2VkQmxvY2tJZCxkcmFnT3ZlckJsb2NrSWQ6dGhpcy5kcmFnT3ZlckJsb2NrSWQsZHJhZ092ZXJQb3NpdGlvbjp0aGlzLmRyYWdPdmVyUG9zaXRpb259fWhhbmRsZURyYWdTdGFydChlLHIpe2lmKCFlLmRhdGFUcmFuc2ZlcilyZXR1cm47dGhpcy5kcmFnZ2VkQmxvY2tJZD1yLmlkLGUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9Im1vdmUiLGUuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLHIuaWQpO2xldCBhPW5ldyBJbWFnZTtpZihhLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQVVFQkFBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSIsZS5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKGEsMCwwKSx0aGlzLmluaXRpYWxNb3VzZVk9ZS5jbGllbnRZLHRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudD10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3IuaWR9Il1gKSx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpe2xldCBzPXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmluaXRpYWxCbG9ja1k9cy50b3A7bGV0IG49dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKG4pe2xldCBvPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShuKTt0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcD1wYXJzZUludChsLm1hcmdpblRvcCl8fDAsdGhpcy5kcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0PW8uaGVpZ2h0fXRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0PXMuaGVpZ2h0LGNvbnNvbGUubG9nKCJEcmFnIG1lYXN1cmVtZW50czoiLHt3cmFwcGVySGVpZ2h0OnMuaGVpZ2h0LG1hcmdpblRvcDp0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcCxkcm9wSW5kaWNhdG9ySGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0LGNvbnRlbnRIZWlnaHQ6dGhpcy5kcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0LGJsb2NrSWQ6ci5pZH0pLHRoaXMuY3JlYXRlRHJvcEluZGljYXRvcigpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQpfXRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkPXRoaXMuZHJhZ2dlZEJsb2NrSWQsc2V0VGltZW91dCgoKT0+e3RoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCYmdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpfSwxMCl9aGFuZGxlRHJhZ0VuZCgpe3RoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKHI9PntyLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiwibW92ZS11cCIsIm1vdmUtZG93biIpLHIuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiKSxyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2Zvcm0iKX0pLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSx0aGlzLmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlckJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyUG9zaXRpb249bnVsbCx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQ9bnVsbCx0aGlzLmRyYWdnZWRCbG9ja0hlaWdodD0wLHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD0wLHRoaXMuZHJhZ2dlZEJsb2NrTWFyZ2luVG9wPTAsdGhpcy5pbml0aWFsQmxvY2tZPTAsdGhpcy5jb21wb25lbnQuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmNvbXBvbmVudC5kcmFnT3ZlckJsb2NrSWQ9bnVsbCx0aGlzLmNvbXBvbmVudC5kcmFnT3ZlclBvc2l0aW9uPW51bGx9aGFuZGxlRHJhZ092ZXIoZSxyKXtpZihlLnByZXZlbnREZWZhdWx0KCksIWUuZGF0YVRyYW5zZmVyfHwhdGhpcy5kcmFnZ2VkQmxvY2tJZHx8dGhpcy5kcmFnZ2VkQmxvY2tJZD09PXIuaWQpcmV0dXJuO2UuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9Im1vdmUiO2xldCBhPWUuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPWEudG9wK2EuaGVpZ2h0LzI7dGhpcy5kcmFnT3ZlckJsb2NrSWQ9ci5pZCx0aGlzLmRyYWdPdmVyUG9zaXRpb249ZS5jbGllbnRZPHM/ImJlZm9yZSI6ImFmdGVyIix0aGlzLmNvbXBvbmVudC5kcmFnT3ZlckJsb2NrSWQ9dGhpcy5kcmFnT3ZlckJsb2NrSWQsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj10aGlzLmRyYWdPdmVyUG9zaXRpb259aGFuZGxlRHJhZ0xlYXZlKGUpe3RoaXMuZHJhZ092ZXJCbG9ja0lkPT09ZS5pZCYmKHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj1udWxsKX1oYW5kbGVEcm9wKGUscil7ZS5wcmV2ZW50RGVmYXVsdCgpLCEoIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1yLmlkKSYmdGhpcy5jb21wb25lbnQuaGFuZGxlRHJvcChlLHIpfWlzRHJhZ2dpbmcoZSl7cmV0dXJuIHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1lfWlzRHJhZ092ZXIoZSl7cmV0dXJuIHRoaXMuZHJhZ092ZXJCbG9ja0lkPT09ZX1nZXREcmFnT3ZlckNsYXNzZXMoZSl7cmV0dXJuIHRoaXMuaXNEcmFnT3ZlcihlKT90aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYmVmb3JlIj8iZHJhZy1vdmVyLWJlZm9yZSI6ImRyYWctb3Zlci1hZnRlciI6IiJ9Y3JlYXRlRHJvcEluZGljYXRvcigpe3RoaXMuZHJvcEluZGljYXRvcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmRyb3BJbmRpY2F0b3IuY2xhc3NOYW1lPSJkcm9wLWluZGljYXRvciIsdGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQodGhpcy5kcm9wSW5kaWNhdG9yKX1oYW5kbGVHbG9iYWxEcmFnT3Zlcj1pKGU9PntpZihlLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudClyZXR1cm47bGV0IHI9ZS5jbGllbnRZLXRoaXMuaW5pdGlhbE1vdXNlWTt0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVZKCR7cn1weClgO2xldCBhPURhdGUubm93KCk7YS10aGlzLmxhc3RVcGRhdGVUaW1lPHRoaXMudXBkYXRlVGhyb3R0bGV8fCh0aGlzLmxhc3RVcGRhdGVUaW1lPWEsdGhpcy51cGRhdGVCbG9ja1Bvc2l0aW9ucyhlLmNsaWVudFkpKX0sImhhbmRsZUdsb2JhbERyYWdPdmVyIik7dXBkYXRlQmxvY2tQb3NpdGlvbnMoZSl7bGV0IHI9QXJyYXkuZnJvbSh0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikpLGE9ci5maW5kSW5kZXgobj0+bi5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKT09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpO2lmKGE9PT0tMSlyZXR1cm47ci5mb3JFYWNoKG49PntuLmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpIT09dGhpcy5kcmFnZ2VkQmxvY2tJZCYmKG4uY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIpLG4uc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiKSl9KTtsZXQgcz1yLmxlbmd0aDtmb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl7aWYobj09PWEpY29udGludWU7bGV0IGw9cltuXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxjPWwudG9wO2lmKGU8YytsLmhlaWdodCouNSl7cz1uO2JyZWFrfX1mb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl7aWYobj09PWEpY29udGludWU7bGV0IG89cltuXTthPHM/bj5hJiZuPHMmJihvLmNsYXNzTGlzdC5hZGQoIm1vdmUtdXAiKSxvLnN0eWxlLnNldFByb3BlcnR5KCItLWRyYWctb2Zmc2V0IixgJHt0aGlzLmRyYWdnZWRCbG9ja0hlaWdodH1weGApKTphPnMmJm4+PXMmJm48YSYmKG8uY2xhc3NMaXN0LmFkZCgibW92ZS1kb3duIiksby5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIsYCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgKSl9dGhpcy51cGRhdGVEcm9wSW5kaWNhdG9yKHIscyxhKX11cGRhdGVEcm9wSW5kaWNhdG9yKGUscixhKXtpZighdGhpcy5kcm9wSW5kaWNhdG9yfHwhdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXJldHVybjt0aGlzLmRyb3BJbmRpY2F0b3Iuc3R5bGUuZGlzcGxheT0iYmxvY2siO2xldCBzPXRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj0wLG89W107Zm9yKGxldCBkPTA7ZDxlLmxlbmd0aDtkKyspe2lmKGQ9PT1hKWNvbnRpbnVlO2xldCBmPWVbZF0scD1mLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGg9cC50b3Atcy50b3AsbT1wLmJvdHRvbS1zLnRvcCx2PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGYpLnRyYW5zZm9ybTtpZih2JiZ2IT09Im5vbmUiKXtsZXQgZz1uZXcgRE9NTWF0cml4KHYpLm00MjtoKz1nLG0rPWd9by5wdXNoKHtpbmRleDpkLHRvcDpoLGJvdHRvbTptfSl9by5zb3J0KChkLGYpPT5kLnRvcC1mLnRvcCk7bGV0IGw9cjtyPmEmJmwtLTtsZXQgYz0xNjtpZih0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpe2xldCBkPXRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kKGY9PmYuaWQ9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZihkKXtsZXQgZj1kLnR5cGU7Zj09PSJoZWFkaW5nLTEifHxmPT09ImhlYWRpbmctMiJ8fGY9PT0iaGVhZGluZy0zIj9jPTI0OihmPT09ImNvZGUifHxmPT09InF1b3RlIikmJihjPTIwKX19aWYobD09PTApbj0wO2Vsc2UgaWYobD49by5sZW5ndGgpe2xldCBkPW9bby5sZW5ndGgtMV07ZCYmKG49ZC5ib3R0b20sbis9Yyl9ZWxzZXtsZXQgZD1vW2wtMV07ZCYmKG49ZC5ib3R0b20sbis9Yyl9dGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmhlaWdodD1gJHt0aGlzLmRyYWdnZWRCbG9ja0hlaWdodH1weGAsdGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLnRvcD1gJHtNYXRoLm1heCgwLG4pfXB4YCxjb25zb2xlLmxvZygiRHJvcCBpbmRpY2F0b3IgdXBkYXRlOiIse3RhcmdldEluZGV4OnIsYWRqdXN0ZWRUYXJnZXRJbmRleDpsLGRyYWdnZWRJbmRleDphLHRvcFBvc2l0aW9uOm4saGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0LGJsb2NrTWFyZ2luOmMsdmlzdWFsQmxvY2tzOm8ubWFwKGQ9Pih7aW5kZXg6ZC5pbmRleCx0b3A6ZC50b3AsYm90dG9tOmQuYm90dG9tfSkpfSl9aGFuZGxlR2xvYmFsRHJhZ0VuZD1pKCgpPT57ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuaGFuZGxlR2xvYmFsRHJhZ092ZXIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuaGFuZGxlR2xvYmFsRHJhZ0VuZCksdGhpcy5kcm9wSW5kaWNhdG9yJiYodGhpcy5kcm9wSW5kaWNhdG9yLnJlbW92ZSgpLHRoaXMuZHJvcEluZGljYXRvcj1udWxsKSx0aGlzLmRyYWdnZWRCbG9ja0lkP3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMucGVyZm9ybURyb3AoKSx0aGlzLmhhbmRsZURyYWdFbmQoKX0pOnRoaXMuaGFuZGxlRHJhZ0VuZCgpfSwiaGFuZGxlR2xvYmFsRHJhZ0VuZCIpO3BlcmZvcm1Ecm9wKCl7aWYoIXRoaXMuZHJhZ2dlZEJsb2NrSWQpcmV0dXJuO2xldCBlPUFycmF5LmZyb20odGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpKTtpZighZS5maW5kKGY9PmYuZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik9PT10aGlzLmRyYWdnZWRCbG9ja0lkKSlyZXR1cm47bGV0IGE9ZS5tYXAoZj0+e2xldCBwPWYuZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIiksaD1mLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG09aC50b3AraC5oZWlnaHQvMjtyZXR1cm57aWQ6cCxjZW50ZXJZOm0sZWxlbWVudDpmfX0pO2Euc29ydCgoZixwKT0+Zi5jZW50ZXJZLXAuY2VudGVyWSk7bGV0IHM9YS5tYXAoZj0+Zi5pZCkuZmlsdGVyKGY9PmYhPT1udWxsKSxuPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLG89bi5maW5kKGY9PmYuaWQ9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZighbylyZXR1cm47bGV0IGw9bi5tYXAoZj0+Zi5pZCk7aWYoISFzLmV2ZXJ5KChmLHApPT5mPT09bFtwXSkpcmV0dXJuO2xldCBkPXMubWFwKGY9Pm4uZmluZChwPT5wLmlkPT09ZikpLmZpbHRlcihCb29sZWFuKTt0aGlzLmNvbXBvbmVudC5ibG9ja3M9ZCx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxzZXRUaW1lb3V0KCgpPT57by50eXBlIT09ImRpdmlkZXIiJiZ0aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhvLmlkKX0sMTAwKX19fSk7dmFyIF9yZSxiWnI9dSgoKT0+eyQxKCk7X3JlPWNsYXNze3N0YXRpY3tpKHRoaXMsIld5c2l3eWdIaXN0b3J5Iil9aGlzdG9yeT1bXTtjdXJyZW50SW5kZXg9LTE7bWF4SGlzdG9yeVNpemU9NTA7bGFzdFNhdmVUaW1lPTA7c2F2ZURlYm91bmNlTXM9NTAwO2NvbnN0cnVjdG9yKCl7dGhpcy5oaXN0b3J5PVtdLHRoaXMuY3VycmVudEluZGV4PS0xfXNhdmVTdGF0ZShlLHIsYSl7bGV0IHM9RGF0ZS5ub3coKTtpZihzLXRoaXMubGFzdFNhdmVUaW1lPHRoaXMuc2F2ZURlYm91bmNlTXMmJnRoaXMuY3VycmVudEluZGV4Pj0wKXt0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdPXtibG9ja3M6dGhpcy5jbG9uZUJsb2NrcyhlKSxzZWxlY3RlZEJsb2NrSWQ6cixjdXJzb3JQb3NpdGlvbjphP3suLi5hfTp2b2lkIDAsdGltZXN0YW1wOnN9O3JldHVybn10aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoLTEmJih0aGlzLmhpc3Rvcnk9dGhpcy5oaXN0b3J5LnNsaWNlKDAsdGhpcy5jdXJyZW50SW5kZXgrMSkpO2xldCBuPXtibG9ja3M6dGhpcy5jbG9uZUJsb2NrcyhlKSxzZWxlY3RlZEJsb2NrSWQ6cixjdXJzb3JQb3NpdGlvbjphP3suLi5hfTp2b2lkIDAsdGltZXN0YW1wOnN9O3RoaXMuaGlzdG9yeS5wdXNoKG4pLHRoaXMuY3VycmVudEluZGV4KyssdGhpcy5oaXN0b3J5Lmxlbmd0aD50aGlzLm1heEhpc3RvcnlTaXplJiYodGhpcy5oaXN0b3J5LnNoaWZ0KCksdGhpcy5jdXJyZW50SW5kZXgtLSksdGhpcy5sYXN0U2F2ZVRpbWU9c31zYXZlQ2hlY2twb2ludChlLHIsYSl7dGhpcy5sYXN0U2F2ZVRpbWU9MCx0aGlzLnNhdmVTdGF0ZShlLHIsYSl9dW5kbygpe3JldHVybiB0aGlzLmNhblVuZG8oKT8odGhpcy5jdXJyZW50SW5kZXgtLSx0aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSkpOm51bGx9cmVkbygpe3JldHVybiB0aGlzLmNhblJlZG8oKT8odGhpcy5jdXJyZW50SW5kZXgrKyx0aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSkpOm51bGx9Y2FuVW5kbygpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleD4wfWNhblJlZG8oKXtyZXR1cm4gdGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aC0xfWdldEN1cnJlbnRTdGF0ZSgpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleD49MCYmdGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aD90aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSk6bnVsbH1jbGVhcigpe3RoaXMuaGlzdG9yeT1bXSx0aGlzLmN1cnJlbnRJbmRleD0tMSx0aGlzLmxhc3RTYXZlVGltZT0wfWNsb25lQmxvY2tzKGUpe3JldHVybiBlLm1hcChyPT4oey4uLnIsbWV0YWRhdGE6ci5tZXRhZGF0YT97Li4uci5tZXRhZGF0YX06dm9pZCAwfSkpfWNsb25lU3RhdGUoZSl7cmV0dXJue2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUuYmxvY2tzKSxzZWxlY3RlZEJsb2NrSWQ6ZS5zZWxlY3RlZEJsb2NrSWQsY3Vyc29yUG9zaXRpb246ZS5jdXJzb3JQb3NpdGlvbj97Li4uZS5jdXJzb3JQb3NpdGlvbn06dm9pZCAwLHRpbWVzdGFtcDplLnRpbWVzdGFtcH19Z2V0SGlzdG9yeUluZm8oKXtyZXR1cm57c2l6ZTp0aGlzLmhpc3RvcnkubGVuZ3RoLGN1cnJlbnRJbmRleDp0aGlzLmN1cnJlbnRJbmRleCxjYW5VbmRvOnRoaXMuY2FuVW5kbygpLGNhblJlZG86dGhpcy5jYW5SZWRvKCl9fX19KTt2YXIgVHJlLGYzLHhacix2WnI9dSgoKT0+e3ZlKCk7JDEoKTtyMygpO25kKCk7Wjh0KCk7UTh0KCk7QzkoKTtzcygpO2x0KCk7VHJlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxmMz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0seFpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy13eXNpd3lnLWJsb2NrIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXeXNpd3lnQmxvY2siKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOkJvb2xlYW59KV0scD1bUCh7dHlwZTpPYmplY3R9KV0sdj1bUCh7dHlwZTpPYmplY3R9KV0sVHJlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmxvY2siLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImJsb2NrImluIE0sImhhcyIpLGdldDppKE09Pk0uYmxvY2ssImdldCIpLHNldDppKChNLE4pPT57TS5ibG9jaz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksVHJlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNTZWxlY3RlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iaXNTZWxlY3RlZCJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmlzU2VsZWN0ZWQsImdldCIpLHNldDppKChNLE4pPT57TS5pc1NlbGVjdGVkPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxUcmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYW5kbGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iaGFuZGxlcnMiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5oYW5kbGVycywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmhhbmRsZXJzPU59LCJzZXQiKX0sbWV0YWRhdGE6a30saCxtKSxUcmUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3eXNpd3lnQ29tcG9uZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJ3eXNpd3lnQ29tcG9uZW50ImluIE0sImhhcyIpLGdldDppKE09Pk0ud3lzaXd5Z0NvbXBvbmVudCwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnd5c2l3eWdDb21wb25lbnQ9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLFRyZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9zZWxlY3Rpb25IYW5kbGVyJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMuX3NlbGVjdGlvbkhhbmRsZXIpfSNlPWYzKHRoaXMsbyx2b2lkIDApO2dldCBibG9jaygpe3JldHVybiB0aGlzLiNlfXNldCBibG9jayhrKXt0aGlzLiNlPWt9I3Q9KGYzKHRoaXMsbCksZjModGhpcyxkLCExKSk7Z2V0IGlzU2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXNTZWxlY3RlZChrKXt0aGlzLiN0PWt9I3I9KGYzKHRoaXMsZiksZjModGhpcyxoLHZvaWQgMCkpO2dldCBoYW5kbGVycygpe3JldHVybiB0aGlzLiNyfXNldCBoYW5kbGVycyhrKXt0aGlzLiNyPWt9I2E9KGYzKHRoaXMsbSksZjModGhpcyxiLHZvaWQgMCkpO2dldCB3eXNpd3lnQ29tcG9uZW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHd5c2l3eWdDb21wb25lbnQoayl7dGhpcy4jYT1rfWJsb2NrRWxlbWVudD0oZjModGhpcyxnKSxudWxsKTtjb250ZW50SW5pdGlhbGl6ZWQ9ITE7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO2hhbmRsZXJTdHlsZXNJbmplY3RlZD0hMTtzdGF0aWMgTk9OX0VESVRBQkxFX1RZUEVTPVsiaW1hZ2UiLCJkaXZpZGVyIiwieW91dHViZSJdO2luamVjdEhhbmRsZXJTdHlsZXMoKXtpZih0aGlzLmhhbmRsZXJTdHlsZXNJbmplY3RlZClyZXR1cm47dGhpcy5oYW5kbGVyU3R5bGVzSW5qZWN0ZWQ9ITA7bGV0IGs9IiIsTT1JYS5nZXRBbGxUeXBlcygpO2ZvcihsZXQgTiBvZiBNKXtsZXQgXz1JYS5nZXRIYW5kbGVyKE4pO18mJihrKz1fLmdldFN0eWxlcygpKX1pZihrKXtsZXQgTj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO04udGV4dENvbnRlbnQ9ayx0aGlzLnNoYWRvd1Jvb3Q/LmFwcGVuZENoaWxkKE4pfX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmJsb2NrIHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBtaW4taGVpZ2h0OiAxLjZlbTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrOmVtcHR5Om5vdCg6Zm9jdXMpOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrLXNwZWNpZmljIHN0eWxlcyBtb3ZlZCB0byBoYW5kbGVycyAqLwoKCiAgICAgIC8qIEZvcm1hdHRpbmcgc3R5bGVzICovCiAgICAgIC5ibG9jayA6aXMoYiwgc3Ryb25nKSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYmxvY2sgOmlzKGksIGVtKSB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuYmxvY2sgdSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jayBzIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgICAgfQoKICAgICAgLmJsb2NrIGNvZGUgewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZDE0IiwiI2ZmNmI2YiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrIGEgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5ibG9jayBhOmhvdmVyIHsKICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke3guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgIH0KCiAgICAgIC8qIENvZGUgYmxvY2sgY29udGFpbmVyIGFuZCBsYW5ndWFnZSBzdHlsZXMgbW92ZWQgdG8gaGFuZGxlciAqLwoKICAgICAgLyogU2VsZWN0aW9uIHN0eWxlcyAqLwogICAgICAuYmxvY2sgOjpzZWxlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjMpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMykiKX07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCgogICAgICAvKiBTdHJpa2UgdGhyb3VnaCAqLwogICAgICAuYmxvY2sgOmlzKHMsIHN0cmlrZSkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKCiAgICAgIC8qIEJsb2NrIG1hcmdpbiBhZGp1c3RtZW50cyBiYXNlZCBvbiB0eXBlICovCiAgICAgIDpob3N0LWNvbnRleHQoLmJsb2NrLXdyYXBwZXI6Zmlyc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICA6aG9zdC1jb250ZXh0KC5ibG9jay13cmFwcGVyOmxhc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogU2VsZWN0ZWQgc3RhdGUgKi8KICAgICAgLmJsb2NrLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgICAgIH0KCgoKCiAgICBgXTtzaG91bGRVcGRhdGUoayl7aWYoay5oYXMoImlzU2VsZWN0ZWQiKSYmdGhpcy5ibG9jayl7bGV0IE09bnVsbCxfPWAuYmxvY2suJHt0aGlzLmJsb2NrLnR5cGV9YDtyZXR1cm4gTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXyksTSYmKHRoaXMuaXNTZWxlY3RlZD9NLmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIik6TS5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpKSwhMX1pZihrLmhhcygiYmxvY2siKSYmdGhpcy5ibG9jayl7bGV0IE09ay5nZXQoImJsb2NrIik7aWYoTSYmTS5pZCYmTS50eXBlJiZNLmlkPT09dGhpcy5ibG9jay5pZCYmTS50eXBlPT09dGhpcy5ibG9jay50eXBlKXJldHVybiExfXJldHVybiF0aGlzLmJsb2NrRWxlbWVudHx8dGhpcy5ibG9jaz8udHlwZSE9PXRoaXMuYmxvY2tFbGVtZW50LmRhdGFzZXQuYmxvY2tUeXBlfWZpcnN0VXBkYXRlZCgpe3RoaXMuY29udGVudEluaXRpYWxpemVkPSEwLHRoaXMuaW5qZWN0SGFuZGxlclN0eWxlcygpO2xldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7aWYoayYmdGhpcy5ibG9jayYmKGsuaW5uZXJIVE1MPXRoaXMucmVuZGVyQmxvY2tDb250ZW50KCkpLHRoaXMuYmxvY2spe2xldCBOPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihOKXtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO18mJk4uc2V0dXAoXyx0aGlzLmJsb2NrLHRoaXMuaGFuZGxlcnMpO3JldHVybn19bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihNKXtNLnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsdGhpcy5ibG9jay5pZCksTS5zZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2stdHlwZSIsdGhpcy5ibG9jay50eXBlKSxNLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixfPT57dGhpcy5oYW5kbGVycz8ub25JbnB1dD8uKF8pO2xldCBTPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oTSk7UyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPVMpfSksTS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixfPT57bGV0IFM9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihNKTtTIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249UyksdGhpcy5oYW5kbGVycz8ub25LZXlEb3duPy4oXyl9KSxNLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uRm9jdXM/LigpfSksTS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uQmx1cj8uKCl9KSxNLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvblN0YXJ0Py4oKX0pLE0uYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvbkVuZD8uKCl9KSxNLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLF89PntsZXQgUz10aGlzLmdldEN1cnNvclBvc2l0aW9uKE0pO1MhPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1TKSx0aGlzLmhhbmRsZXJzPy5vbk1vdXNlVXA/LihfKX0pLE0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c2V0VGltZW91dCgoKT0+e2xldCBfPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oTSk7XyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPV8pfSwwKX0pO2xldCBOPWkoKCk9PntsZXQgXz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIV98fF8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBTPV8udG9TdHJpbmcoKTtpZihTLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OiIiLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxoYXNTZWxlY3Rpb246ITF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpO3JldHVybn1sZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFPKXJldHVybjtsZXQgRT10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LEI9W107RSYmQi5wdXNoKEUpLHRoaXMuc2hhZG93Um9vdCYmQi5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IEM9aHQuZ2V0U2VsZWN0aW9uSW5mbyguLi5CKTtpZighQylyZXR1cm47bGV0IHo9aHQuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oTyxDLnN0YXJ0Q29udGFpbmVyKSxBPWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKE8sQy5lbmRDb250YWluZXIpO2lmKHp8fEEpe2lmKFMhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1TO2xldCAkPWh0LmNyZWF0ZVJhbmdlRnJvbUluZm8oQyksRj0kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6Uy50cmltKCksYmxvY2tJZDp0aGlzLmJsb2NrLmlkLHJhbmdlOiQscmVjdDpGLGhhc1NlbGVjdGlvbjohMH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDoiIixibG9ja0lkOnRoaXMuYmxvY2suaWQsaGFzU2VsZWN0aW9uOiExfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX0sImNoZWNrU2VsZWN0aW9uIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixOKSx0aGlzLl9zZWxlY3Rpb25IYW5kbGVyPU4sTS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsKCk9PntsZXQgXz10aGlzLmdldEN1cnNvclBvc2l0aW9uKE0pO18hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1fKX0pLHRoaXMuYmxvY2suY29udGVudCYmKE0uaW5uZXJIVE1MPXRoaXMuYmxvY2suY29udGVudCl9dGhpcy5ibG9ja0VsZW1lbnQ9TX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5ibG9jaz9UcGA8ZGl2IGNsYXNzPSJ3eXNpd3lnLWJsb2NrLWNvbnRhaW5lciI+PC9kaXY+YDpUcGBgfXJlbmRlckJsb2NrQ29udGVudCgpe2lmKCF0aGlzLmJsb2NrKXJldHVybiIiO2xldCBrPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrKXJldHVybiBrLnJlbmRlcih0aGlzLmJsb2NrLHRoaXMuaXNTZWxlY3RlZCk7bGV0IE09dGhpcy5pc1NlbGVjdGVkPyIgc2VsZWN0ZWQiOiIiO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke3RoaXMuYmxvY2sudHlwZX0ke019IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgPjwvZGl2PgogICAgYH1mb2N1cygpe2xldCBrPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrJiZrLmZvY3VzKXtsZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLF89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gay5mb2N1cyhOLF8pfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLmJsb2NrLiR7dGhpcy5ibG9jay50eXBlfWApO04mJk4uZm9jdXMoKTtyZXR1cm59bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtNJiYoTS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxNLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLE0uZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09TSYmdGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09TSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e00uZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3Ioaz0iZW5kIil7bGV0IE09SWEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0mJk0uZm9jdXNXaXRoQ3Vyc29yKXtsZXQgUz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLE89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gTS5mb2N1c1dpdGhDdXJzb3IoUyxrLE8pfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe3RoaXMuZm9jdXMoKTtyZXR1cm59bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighTilyZXR1cm47Ti5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxOLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLE4uZm9jdXMoKTtsZXQgXz1pKCgpPT57az09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KCk6az09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoKTp0eXBlb2Ygaz09Im51bWJlciImJmh0LnNldEN1cnNvclBvc2l0aW9uKE4sayl9LCJzZXRDdXJzb3IiKTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Tnx8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09Tj9fKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Tnx8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09TikmJl8oKX0pfWdldEN1cnNvclBvc2l0aW9uKGspe2xldCBNPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLmdldEN1cnNvclBvc2l0aW9uKXtsZXQgQj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLmdldEN1cnNvclBvc2l0aW9uKGssQil9bGV0IF89dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxTPVtdO18mJlMucHVzaChfKSx0aGlzLnNoYWRvd1Jvb3QmJlMucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBPPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uUyk7aWYoY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOiIse3NlbGVjdGlvbkluZm86TyxzaGFkb3dSb290c0NvdW50OlMubGVuZ3RofSksIU8pcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogTm8gc2VsZWN0aW9uIGZvdW5kIiksbnVsbDtpZihjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIGluZm86Iix7c3RhcnRDb250YWluZXI6Ty5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpPLnN0YXJ0T2Zmc2V0LGNvbGxhcHNlZDpPLmNvbGxhcHNlZCxzdGFydENvbnRhaW5lclRleHQ6Ty5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudH0pLCFrLmNvbnRhaW5zKE8uc3RhcnRDb250YWluZXIpKXJldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIG5vdCBpbiBlbGVtZW50IiksbnVsbDtsZXQgTD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO0wuc2VsZWN0Tm9kZUNvbnRlbnRzKGspLEwuc2V0RW5kKE8uc3RhcnRDb250YWluZXIsTy5zdGFydE9mZnNldCk7bGV0IEU9TC50b1N0cmluZygpLmxlbmd0aDtyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBDYWxjdWxhdGVkIHBvc2l0aW9uOiIse3Bvc2l0aW9uOkUscHJlQ2FyZXRUZXh0OkwudG9TdHJpbmcoKSxlbGVtZW50VGV4dDprLnRleHRDb250ZW50LGVsZW1lbnRUZXh0TGVuZ3RoOmsudGV4dENvbnRlbnQ/Lmxlbmd0aH0pLEV9Z2V0Q29udGVudCgpe2xldCBrPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrJiZrLmdldENvbnRlbnQpe2xldCBfPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksUz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLmdldENvbnRlbnQoXyxTKX1sZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFNKXJldHVybiIiO2xldCBOPU0uaW5uZXJIVE1MfHwiIjtyZXR1cm4gY29uc29sZS5sb2coIkdldHRpbmcgY29udGVudCBmcm9tIGJsb2NrOiIsTiksTn1zZXRDb250ZW50KGspe2xldCBNPUlhLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLnNldENvbnRlbnQpe2xldCBTPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksTz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBNLnNldENvbnRlbnQoUyxrLE8pfWxldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU4pcmV0dXJuO2xldCBfPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1OfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1OO04uaW5uZXJIVE1MPWssXyYmTi5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoKXtsZXQgaz1JYS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoayYmay5zZXRDdXJzb3JUb1N0YXJ0KXtsZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLF89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gay5zZXRDdXJzb3JUb1N0YXJ0KE4sXyl9bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtNJiZFbi5zZXRDdXJzb3JUb1N0YXJ0KE0pfXNldEN1cnNvclRvRW5kKCl7bGV0IGs9SWEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKGsmJmsuc2V0Q3Vyc29yVG9FbmQpe2xldCBOPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksXz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLnNldEN1cnNvclRvRW5kKE4sXyl9bGV0IE09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtNJiZFbi5zZXRDdXJzb3JUb0VuZChNKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7aWYoIXRoaXMuYmxvY2t8fHRoaXMuYmxvY2sudHlwZT09PSJkaXZpZGVyIilyZXR1cm5bXTtsZXQgaz1jcy5nZXRTbGFzaE1lbnVJdGVtcygpLE09dGhpcy5ibG9jay50eXBlLE49dGhpcy53eXNpd3lnQ29tcG9uZW50LF89dGhpcy5ibG9jay5pZCxPPVt7bmFtZToiQ2hhbmdlIFR5cGUiLGljb25OYW1lOiJ0eXBlIixzdWJtZW51OmsuZmlsdGVyKEw9PkwudHlwZSE9PU0mJkwudHlwZSE9PSJkaXZpZGVyIikubWFwKEw9Pih7bmFtZTpMLmxhYmVsLGljb25OYW1lOkwuaWNvbi5yZXBsYWNlKCJsdWNpZGU6IiwiIiksYWN0aW9uOmkoYXN5bmMoKT0+e2lmKE4mJk4uYmxvY2tPcGVyYXRpb25zKXtsZXQgRT1OLmJsb2Nrcy5maW5kKEI9PkIuaWQ9PT1fKTtFJiYoRS50eXBlPUwudHlwZSxFLmNvbnRlbnQ9RS5jb250ZW50fHwiIixMLnR5cGU9PT0iY29kZSI/RS5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifTpMLnR5cGU9PT0ibGlzdCI/RS5tZXRhZGF0YT17bGlzdFR5cGU6ImJ1bGxldCJ9OkwudHlwZT09PSJpbWFnZSI/KEUuY29udGVudD0iIixFLm1ldGFkYXRhPXt1cmw6IiIsbG9hZGluZzohMX0pOkwudHlwZT09PSJ5b3V0dWJlIj8oRS5jb250ZW50PSIiLEUubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6TC50eXBlPT09Im1hcmtkb3duIj9FLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06TC50eXBlPT09Imh0bWwiP0UubWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTpMLnR5cGU9PT0iYXR0YWNobWVudCImJihFLmNvbnRlbnQ9IiIsRS5tZXRhZGF0YT17ZmlsZXM6W119KSxOLnVwZGF0ZUJsb2NrRWxlbWVudChfKSxOLnVwZGF0ZVZhbHVlKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Ti5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhfKX0pKX19LCJhY3Rpb24iKX0pKX1dO3JldHVyblsiaW1hZ2UiLCJkaXZpZGVyIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpfHxPLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246aShhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImN1dCIpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsc2hvcnRjdXQ6IkNtZCtDIixhY3Rpb246aShhc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKX0sImFjdGlvbiIpfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOmkoYXN5bmMoKT0+e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJwYXN0ZSIpfSwiYWN0aW9uIil9KSxPLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgQmxvY2siLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9PntOJiZOLmJsb2NrT3BlcmF0aW9ucyYmTi5ibG9ja09wZXJhdGlvbnMuZGVsZXRlQmxvY2soXyl9LCJhY3Rpb24iKX0pLE99Z2V0U3BsaXRDb250ZW50KCl7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3RhcnRpbmcuLi4iKTtsZXQgaz1JYS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ2hlY2tpbmcgZm9yIGhhbmRsZXIiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGhhc0hhbmRsZXI6ISFrLGhhc1NwbGl0TWV0aG9kOiEhKGsmJmsuZ2V0U3BsaXRDb250ZW50KX0pLGsmJmsuZ2V0U3BsaXRDb250ZW50KXtsZXQgWT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEZvdW5kIGNvbnRhaW5lciIse2NvbnRhaW5lcjohIVksY29udGFpbmVySFRNTDpZPy5pbm5lckhUTUw/LnN1YnN0cmluZygwLDEwMCl9KTtsZXQgRz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLmdldFNwbGl0Q29udGVudChZLEcpfWxldCBNPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU0pcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IE5vIGVkaXRhYmxlIGVsZW1lbnQgZm91bmQiKSxudWxsO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEVsZW1lbnQgaW5mbzoiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGlubmVySFRNTDpNLmlubmVySFRNTCx0ZXh0Q29udGVudDpNLnRleHRDb250ZW50LHRleHRMZW5ndGg6TS50ZXh0Q29udGVudD8ubGVuZ3RofSk7bGV0IF89dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxTPVtdO18mJlMucHVzaChfKSx0aGlzLnNoYWRvd1Jvb3QmJlMucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBPPWh0LmdldFNlbGVjdGlvbkluZm8oLi4uUyk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIGluZm8gZnJvbSBzaGFkb3cgRE9NczoiLHtzZWxlY3Rpb25JbmZvOk8sc2hhZG93Um9vdHNDb3VudDpTLmxlbmd0aH0pLCFPKXtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBObyBzZWxlY3Rpb24sIHVzaW5nIGxhc3Qga25vd24gcG9zaXRpb246Iix0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uKSx0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IFk9TS50ZXh0Q29udGVudHx8IiIsRz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLFkubGVuZ3RoKTtyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3BsaXR0aW5nIHdpdGggbGFzdCBrbm93biBwb3NpdGlvbjoiLHtwb3M6RyxmdWxsVGV4dExlbmd0aDpZLmxlbmd0aCxiZWZvcmU6WS5zdWJzdHJpbmcoMCxHKSxhZnRlcjpZLnN1YnN0cmluZyhHKX0pLHtiZWZvcmU6WS5zdWJzdHJpbmcoMCxHKSxhZnRlcjpZLnN1YnN0cmluZyhHKX19cmV0dXJuIG51bGx9aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIHJhbmdlOiIse3N0YXJ0Q29udGFpbmVyOk8uc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6Ty5zdGFydE9mZnNldCxzdGFydENvbnRhaW5lckluRWxlbWVudDpNLmNvbnRhaW5zKE8uc3RhcnRDb250YWluZXIpfSksIWh0LmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKE0sTy5zdGFydENvbnRhaW5lcikpe2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IFNlbGVjdGlvbiBub3QgaW4gdGhpcyBibG9jaywgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjoiLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgWT1NLnRleHRDb250ZW50fHwiIixHPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sWS5sZW5ndGgpO3JldHVybntiZWZvcmU6WS5zdWJzdHJpbmcoMCxHKSxhZnRlcjpZLnN1YnN0cmluZyhHKX19cmV0dXJuIG51bGx9bGV0IEw9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihNKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDdXJzb3IgcG9zaXRpb24gZm9yIEhUTUwgc3BsaXQ6IixMKSxMPT09bnVsbHx8TD09PTApcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBhdCBzdGFydCBvciBudWxsLCBtb3ZpbmcgYWxsIGNvbnRlbnQiKSx7YmVmb3JlOiIiLGFmdGVyOk0uaW5uZXJIVE1MfTtsZXQgRT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLEI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtFLnNldFN0YXJ0KE0sMCksRS5zZXRFbmQoTy5zdGFydENvbnRhaW5lcixPLnN0YXJ0T2Zmc2V0KSxCLnNldFN0YXJ0KE8uc3RhcnRDb250YWluZXIsTy5zdGFydE9mZnNldCksQi5zZXRFbmQoTSxNLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgQz1FLmNsb25lQ29udGVudHMoKSx6PUIuY2xvbmVDb250ZW50cygpLEE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7QS5hcHBlbmRDaGlsZChDKTtsZXQgJD1BLmlubmVySFRNTDtBLmlubmVySFRNTD0iIixBLmFwcGVuZENoaWxkKHopO2xldCBGPUEuaW5uZXJIVE1MO3JldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBGaW5hbCBzcGxpdCByZXN1bHQ6Iix7Y3Vyc29yUG9zOkwsYmVmb3JlSHRtbDokLGJlZm9yZUxlbmd0aDokLmxlbmd0aCxiZWZvcmVIdG1sUHJldmlldzokLnN1YnN0cmluZygwLDEwMCkrKCQubGVuZ3RoPjEwMD8iLi4uIjoiIiksYWZ0ZXJIdG1sOkYsYWZ0ZXJMZW5ndGg6Ri5sZW5ndGgsYWZ0ZXJIdG1sUHJldmlldzpGLnN1YnN0cmluZygwLDEwMCkrKEYubGVuZ3RoPjEwMD8iLi4uIjoiIil9KSx7YmVmb3JlOiQsYWZ0ZXI6Rn19c3RhdGlje2YzKGEscil9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBKOHQ9dSgoKT0+e002ZSgpOyQxKCk7ankoKTtwZmUoKTtMVXIoKTtpbXQoKTtDOSgpO3RtdCgpO25kKCk7cjMoKTtzbXQoKTtROHQoKTtoWnIoKTttWnIoKTtnWnIoKTtYOHQoKTtiWnIoKTtlbXQoKTtybXQoKTt2WnIoKX0pO3ZhciBhZixHbyxMcmUsTTZlPXUoKCk9PntDaSgpO1RVcigpO1E0KCk7dmUoKTtKOHQoKTtsdCgpO2FmPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxHbz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sTHJlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC13eXNpd3lnIildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNJbnB1dFd5c2l3eWciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtpZSgpXSx2PVtpZSgpXSx5PVtpZSgpXSxOPVtpZSgpXSxPPVtpZSgpXSxhZih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ2YWx1ZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnZhbHVlLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudmFsdWU9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLGFmKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0Rm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJvdXRwdXRGb3JtYXQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5vdXRwdXRGb3JtYXQsImdldCIpLHNldDppKCh6LEEpPT57ei5vdXRwdXRGb3JtYXQ9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLGFmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmxvY2tzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJibG9ja3MiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5ibG9ja3MsImdldCIpLHNldDppKCh6LEEpPT57ei5ibG9ja3M9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLGFmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEJsb2NrSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImRyYWdnZWRCbG9ja0lkImluIHosImhhcyIpLGdldDppKHo9PnouZHJhZ2dlZEJsb2NrSWQsImdldCIpLHNldDppKCh6LEEpPT57ei5kcmFnZ2VkQmxvY2tJZD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksYWYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckJsb2NrSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImRyYWdPdmVyQmxvY2tJZCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmRyYWdPdmVyQmxvY2tJZCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmRyYWdPdmVyQmxvY2tJZD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGssTSksYWYodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJkcmFnT3ZlclBvc2l0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouZHJhZ092ZXJQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmRyYWdPdmVyUG9zaXRpb249QX0sInNldCIpfSxtZXRhZGF0YTpDfSxfLFMpLGFmKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzZWxlY3RlZFRleHQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zZWxlY3RlZFRleHQsImdldCIpLHNldDppKCh6LEEpPT57ei5zZWxlY3RlZFRleHQ9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxMLEUpLGFmKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsciksQj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89X1VyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiLCJXb3Jrc3BhY2UiXTsjZT1Hbyh0aGlzLG8sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShDKXt0aGlzLiNlPUN9I3Q9KEdvKHRoaXMsbCksR28odGhpcyxkLCJodG1sIikpO2dldCBvdXRwdXRGb3JtYXQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgb3V0cHV0Rm9ybWF0KEMpe3RoaXMuI3Q9Q30jcj0oR28odGhpcyxmKSxHbyh0aGlzLGgsW3tpZDpjcy5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IiJ9XSkpO2dldCBibG9ja3MoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYmxvY2tzKEMpe3RoaXMuI3I9Q31zZWxlY3RlZEJsb2NrSWQ9KEdvKHRoaXMsbSksbnVsbCk7c2xhc2hNZW51PWNmZS5nZXRJbnN0YW5jZSgpOyNhPUdvKHRoaXMsYixudWxsKTtnZXQgZHJhZ2dlZEJsb2NrSWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZHJhZ2dlZEJsb2NrSWQoQyl7dGhpcy4jYT1DfSNpPShHbyh0aGlzLGcpLEdvKHRoaXMsayxudWxsKSk7Z2V0IGRyYWdPdmVyQmxvY2tJZCgpe3JldHVybiB0aGlzLiNpfXNldCBkcmFnT3ZlckJsb2NrSWQoQyl7dGhpcy4jaT1DfSNzPShHbyh0aGlzLE0pLEdvKHRoaXMsXyxudWxsKSk7Z2V0IGRyYWdPdmVyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jc31zZXQgZHJhZ092ZXJQb3NpdGlvbihDKXt0aGlzLiNzPUN9Zm9ybWF0dGluZ01lbnU9KEdvKHRoaXMsUyksdWZlLmdldEluc3RhbmNlKCkpOyNuPUdvKHRoaXMsTCwiIik7Z2V0IHNlbGVjdGVkVGV4dCgpe3JldHVybiB0aGlzLiNufXNldCBzZWxlY3RlZFRleHQoQyl7dGhpcy4jbj1DfWVkaXRvckNvbnRlbnRSZWY9R28odGhpcyxFKTtpc0NvbXBvc2luZz0hMTtibG9ja09wZXJhdGlvbnM7aW5wdXRIYW5kbGVyO2tleWJvYXJkSGFuZGxlcjtkcmFnRHJvcEhhbmRsZXI7aGlzdG9yeTtzdGF0aWMgc3R5bGVzPVtOZSwuLi5FdC5iYXNlU3R5bGVzLHguZGVmYXVsdFN0eWxlcyxhbXRdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmJsb2NrT3BlcmF0aW9ucz1uZXcgeXRlKHRoaXMpLHRoaXMuaW5wdXRIYW5kbGVyPW5ldyBNcmUodGhpcyksdGhpcy5rZXlib2FyZEhhbmRsZXI9bmV3IENyZSh0aGlzKSx0aGlzLmRyYWdEcm9wSGFuZGxlcj1uZXcgenJlKHRoaXMpLHRoaXMuaGlzdG9yeT1uZXcgX3JlfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pbnB1dEhhbmRsZXI/LmRlc3Ryb3koKSx0aGlzLmJsdXJUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuYmx1clRpbWVvdXQ9bnVsbCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy52YWx1ZSYmdGhpcy52YWx1ZS50cmltKCkubGVuZ3RoPjApe2xldCBDPXRoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP1hsLnBhcnNlSHRtbFRvQmxvY2tzKHRoaXMudmFsdWUpOlhsLnBhcnNlTWFya2Rvd25Ub0Jsb2Nrcyh0aGlzLnZhbHVlKTtDLmxlbmd0aD4wJiYodGhpcy5ibG9ja3M9Qyl9dGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmVkaXRvckNvbnRlbnRSZWYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEM9PnRoaXMuaGFuZGxlRWRpdG9yQ2xpY2soQykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2stdGV4dC1zZWxlY3RlZCIsKEM9PntpZighdGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmQy5kZXRhaWwuaGFzU2VsZWN0aW9uJiZDLmRldGFpbC50ZXh0Lmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZFRleHQ9Qy5kZXRhaWwudGV4dCxDLmRldGFpbC5yZWN0KSl7bGV0IHo9e3g6Qy5kZXRhaWwucmVjdC5sZWZ0K0MuZGV0YWlsLnJlY3Qud2lkdGgvMix5Ok1hdGgubWF4KDQ1LEMuZGV0YWlsLnJlY3QudG9wLTQ1KX07dGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KHosYXN5bmMgQT0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChBKSl9fSkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsQz0+e2xldCB6PXRoaXMuZm9ybWF0dGluZ01lbnUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2lmKHomJnouY29udGFpbnMoQy50YXJnZXQpKXJldHVybjtsZXQgQT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7QSYmQS50b1N0cmluZygpLnRyaW0oKS5sZW5ndGg+MHx8dGhpcy5mb3JtYXR0aW5nTWVudS52aXNpYmxlJiZ0aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixDPT57bGV0IHo9Qy50YXJnZXQ7IXRoaXMuY29udGFpbnMoeikmJiF0aGlzLnNoYWRvd1Jvb3Q/LmNvbnRhaW5zKHopfHwoKEMubWV0YUtleXx8Qy5jdHJsS2V5KSYmIUMuc2hpZnRLZXkmJkMua2V5PT09InoiPyhDLnByZXZlbnREZWZhdWx0KCksdGhpcy51bmRvKCkpOihDLm1ldGFLZXl8fEMuY3RybEtleSkmJkMuc2hpZnRLZXkmJkMua2V5PT09InoiJiYoQy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucmVkbygpKSl9KSx0aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkKSx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl7dGhpcy5lZGl0b3JDb250ZW50UmVmJiYodGhpcy5lZGl0b3JDb250ZW50UmVmLmlubmVySFRNTD0iIix0aGlzLmJsb2Nrcy5mb3JFYWNoKEM9PntsZXQgej10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChDKTt0aGlzLmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQoeil9KSl9Y3JlYXRlQmxvY2tFbGVtZW50KEMpe2xldCB6PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKHouY2xhc3NOYW1lPSJibG9jay13cmFwcGVyIix6LnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsQy5pZCksQy50eXBlIT09ImRpdmlkZXIiKXtsZXQgJD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTskLmNsYXNzTmFtZT0iZHJhZy1oYW5kbGUiLCQuZHJhZ2dhYmxlPSEwLCQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IixGPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnU3RhcnQoRixDKSksei5hcHBlbmRDaGlsZCgkKX1sZXQgQT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXd5c2l3eWctYmxvY2siKTtyZXR1cm4gQS5ibG9jaz1DLEEuaXNTZWxlY3RlZD10aGlzLnNlbGVjdGVkQmxvY2tJZD09PUMuaWQsQS53eXNpd3lnQ29tcG9uZW50PXRoaXMsQS5oYW5kbGVycz17b25JbnB1dDppKCQ9PnRoaXMuaW5wdXRIYW5kbGVyLmhhbmRsZUJsb2NrSW5wdXQoJCxDKSwib25JbnB1dCIpLG9uS2V5RG93bjppKCQ9PnRoaXMua2V5Ym9hcmRIYW5kbGVyLmhhbmRsZUJsb2NrS2V5RG93bigkLEMpLCJvbktleURvd24iKSxvbkZvY3VzOmkoKCk9PnRoaXMuaGFuZGxlQmxvY2tGb2N1cyhDKSwib25Gb2N1cyIpLG9uQmx1cjppKCgpPT50aGlzLmhhbmRsZUJsb2NrQmx1cihDKSwib25CbHVyIiksb25Db21wb3NpdGlvblN0YXJ0OmkoKCk9PnRoaXMuaXNDb21wb3Npbmc9ITAsIm9uQ29tcG9zaXRpb25TdGFydCIpLG9uQ29tcG9zaXRpb25FbmQ6aSgoKT0+dGhpcy5pc0NvbXBvc2luZz0hMSwib25Db21wb3NpdGlvbkVuZCIpLG9uTW91c2VVcDppKCQ9PnRoaXMuaGFuZGxlVGV4dFNlbGVjdGlvbigkKSwib25Nb3VzZVVwIiksb25SZXF1ZXN0VXBkYXRlOmkoKCk9PnRoaXMudXBkYXRlQmxvY2tFbGVtZW50KEMuaWQpLCJvblJlcXVlc3RVcGRhdGUiKX0sei5hcHBlbmRDaGlsZChBKSx6LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwkPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnT3ZlcigkLEMpKSx6LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCQ9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyb3AoJCxDKSksei5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCgpPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnTGVhdmUoQykpLHp9dXBkYXRlQmxvY2tFbGVtZW50KEMpe2xldCB6PXRoaXMuYmxvY2tzLmZpbmQoRj0+Ri5pZD09PUMpO2lmKCF6KXJldHVybjtsZXQgQT10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Q30iXWApO2lmKCFBKXJldHVybjtsZXQgJD10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudCh6KTtBLnJlcGxhY2VXaXRoKCQpfXJlbmRlcigpe3JldHVybiBUcGAKICAgICAgPGRlZXMtbGFiZWwKICAgICAgICAubGFiZWw9IiR7dGhpcy5sYWJlbH0iCiAgICAgICAgLmluZm9UZXh0PSIke3RoaXMuaW5mb1RleHR9IgogICAgICAgIC5yZXF1aXJlZD0iJHt0aGlzLnJlcXVpcmVkfSIKICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0id3lzaXd5Zy1jb250YWluZXIiPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJlZGl0b3ItY29udGVudCAke3RoaXMuZHJhZ2dlZEJsb2NrSWQ/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBpZD0iZWRpdG9yLWNvbnRlbnQiCiAgICAgICAgPgogICAgICAgICAgPCEtLSBCbG9ja3Mgd2lsbCBiZSByZW5kZXJlZCBwcm9ncmFtbWF0aWNhbGx5IC0tPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICBgfWhhbmRsZVNsYXNoTWVudUtleWJvYXJkKEMpe3N3aXRjaChDLmtleSl7Y2FzZSJBcnJvd0Rvd24iOkMucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5uYXZpZ2F0ZSgiZG93biIpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6Qy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCJ1cCIpO2JyZWFrO2Nhc2UiRW50ZXIiOkMucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5zZWxlY3RDdXJyZW50KCk7YnJlYWs7Y2FzZSJFc2NhcGUiOkMucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlU2xhc2hNZW51KCEwKTticmVha319Y2xvc2VTbGFzaE1lbnUoQz0hMSl7aWYoQyYmdGhpcy5zZWxlY3RlZEJsb2NrSWQpe2xldCB6PXRoaXMuYmxvY2tzLmZpbmQoQT0+QS5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZih6KXtsZXQgJD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ei5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZigkKXtsZXQgRj0kLmdldENvbnRlbnQoKTtpZihGLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IFk9Ri5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7JC5zZXRDb250ZW50KFkpLHouY29udGVudD1ZLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+eyQuZm9jdXNXaXRoQ3Vyc29yKDApfSl9fX19dGhpcy5zbGFzaE1lbnUuaGlkZSgpfWhhbmRsZUJsb2NrRm9jdXMoQyl7dGhpcy5ibHVyVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLmJsdXJUaW1lb3V0PW51bGwpO2xldCB6PXRoaXMuc2VsZWN0ZWRCbG9ja0lkO2lmKHRoaXMuc2VsZWN0ZWRCbG9ja0lkPUMuaWQseiE9PUMuaWQpe2lmKHope2xldCBZPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7en0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtZJiYoWS5pc1NlbGVjdGVkPSExKX1sZXQgJD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke0MuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7JCYmKCQuaXNTZWxlY3RlZD0hMCl9fWJsdXJUaW1lb3V0PW51bGw7aGFuZGxlQmxvY2tCbHVyKEMpe2lmKHRoaXMuYmx1clRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLnNsYXNoTWVudS52aXNpYmxlKXJldHVybjtsZXQgQT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke0MuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoQSYmQS5nZXRDb250ZW50KXtsZXQgJD1BLmdldENvbnRlbnQoKTtDLmNvbnRlbnQhPT0kJiYoQy5jb250ZW50PSQpfXRoaXMuYmx1clRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCJibG9jayIpfHx0aGlzLnVwZGF0ZVZhbHVlKCl9LDEwMCl9aGFuZGxlRWRpdG9yQ2xpY2soQyl7bGV0IHo9Qy50YXJnZXQ7aWYodGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmdGhpcy5jbG9zZVNsYXNoTWVudSghMCksei5jbGFzc0xpc3QuY29udGFpbnMoImVkaXRvci1jb250ZW50Iikpe2xldCBBPXRoaXMuYmxvY2tzW3RoaXMuYmxvY2tzLmxlbmd0aC0xXTt0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKEEuaWQsQS50eXBlPT09ImRpdmlkZXIifHxBLnR5cGU9PT0iaW1hZ2UiP3ZvaWQgMDoiZW5kIil9fWNyZWF0ZU5ld0Jsb2NrKEM9InBhcmFncmFwaCIsej0iIixBKXtyZXR1cm57aWQ6Y3MuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTpDLGNvbnRlbnQ6eiwuLi5BJiZ7bWV0YWRhdGE6QX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoQyx6LEE9ITApe2xldCAkPXRoaXMuYmxvY2tzLmZpbmRJbmRleChZPT5ZLmlkPT09Qy5pZCk7dGhpcy5ibG9ja3M9Wy4uLnRoaXMuYmxvY2tzLnNsaWNlKDAsJCsxKSx6LC4uLnRoaXMuYmxvY2tzLnNsaWNlKCQrMSldO2xldCBGPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtDLmlkfSJdYCk7aWYoRil7bGV0IFk9dGhpcy5jcmVhdGVCbG9ja0VsZW1lbnQoeik7Ri5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixZKX10aGlzLnVwZGF0ZVZhbHVlKCksQSYmei50eXBlIT09ImRpdmlkZXIiJiYoYXdhaXQgbmV3IFByb21pc2UoWT0+c2V0VGltZW91dChZLDApKSxhd2FpdCB0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKHouaWQsInN0YXJ0IikpfWFzeW5jIGluc2VydEJsb2NrKEMpe2xldCB6PXRoaXMuYmxvY2tzLmZpbmQoRj0+Ri5pZD09PXRoaXMuc2VsZWN0ZWRCbG9ja0lkKTtpZigheil7dGhpcy5jbG9zZVNsYXNoTWVudSgpO3JldHVybn1sZXQgJD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ei5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZigkKXtsZXQgRj0kLmdldENvbnRlbnQoKTtpZihGLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IFk9Ri5yZXBsYWNlKC9eXC9bXlxzXSpccyovLCIiKS50cmltKCk7JC5zZXRDb250ZW50KFkpLHouY29udGVudD1ZfX1pZih0aGlzLmNsb3NlU2xhc2hNZW51KCExKSxDPT09ImNvZGUiJiYoei5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifSksei50eXBlPUMsei5jb250ZW50PXouY29udGVudHx8IiIsQz09PSJkaXZpZGVyIil7ei5jb250ZW50PSIgIjtsZXQgRj10aGlzLmNyZWF0ZU5ld0Jsb2NrKCk7dGhpcy5pbnNlcnRCbG9ja0FmdGVyKHosRil9ZWxzZSBDPT09Imxpc3QiPyh6Lm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In0sei5jb250ZW50PSIiKTpDPT09ImltYWdlIj8oei5jb250ZW50PSIiLHoubWV0YWRhdGE9e3VybDoiIixsb2FkaW5nOiExfSk6Qz09PSJ5b3V0dWJlIj8oei5jb250ZW50PSIiLHoubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6Qz09PSJtYXJrZG93biI/ei5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9OkM9PT0iaHRtbCI/ei5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9OkM9PT0iYXR0YWNobWVudCI/KHouY29udGVudD0iIix6Lm1ldGFkYXRhPXtmaWxlczpbXX0pOnouY29udGVudD16LmNvbnRlbnR8fCIiO3RoaXMudXBkYXRlQmxvY2tFbGVtZW50KHouaWQpLHRoaXMudXBkYXRlVmFsdWUoKSxhd2FpdCBuZXcgUHJvbWlzZShGPT5zZXRUaW1lb3V0KEYsMCkpLEM9PT0ibGlzdCI/KHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soei5pZCwic3RhcnQiKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgWT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3ouaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7WSYmWS5mb2N1c0xpc3RJdGVtKCl9KSk6QyE9PSJkaXZpZGVyIiYmQyE9PSJpbWFnZSImJkMhPT0ieW91dHViZSImJkMhPT0ibWFya2Rvd24iJiZDIT09Imh0bWwiJiZDIT09ImF0dGFjaG1lbnQiP3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soei5pZCwic3RhcnQiKTooQz09PSJpbWFnZSJ8fEM9PT0ieW91dHViZSJ8fEM9PT0ibWFya2Rvd24ifHxDPT09Imh0bWwifHxDPT09ImF0dGFjaG1lbnQiKSYmdGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayh6LmlkKX11cGRhdGVWYWx1ZSgpe3RoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP3RoaXMudmFsdWU9WGwuZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyk6dGhpcy52YWx1ZT1YbC5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2NrcyksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5zYXZlVG9IaXN0b3J5KCEwKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKEMpe3RoaXMudmFsdWU9Qyx0aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj90aGlzLmJsb2Nrcz1YbC5wYXJzZUh0bWxUb0Jsb2NrcyhDKTp0aGlzLmJsb2Nrcz1YbC5wYXJzZU1hcmtkb3duVG9CbG9ja3MoQyksdGhpcy5ibG9ja3MubGVuZ3RoPT09MCYmKHRoaXMuYmxvY2tzPVt7aWQ6Y3MuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiIifV0pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMudmFsdWUpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QmxvY2tzKCl7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ibG9ja3MpKX1pbXBvcnRCbG9ja3MoQyl7dGhpcy5ibG9ja3M9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShDKSksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9ZXhwb3J0QXNIdG1sKCl7cmV0dXJuIFhsLmdldEh0bWxPdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydEFzTWFya2Rvd24oKXtyZXR1cm4gWGwuZ2V0TWFya2Rvd25PdXRwdXQodGhpcy5ibG9ja3MpfWV4cG9ydFN0YXRlKCl7cmV0dXJue2Jsb2Nrczp0aGlzLmV4cG9ydEJsb2NrcygpLG91dHB1dEZvcm1hdDp0aGlzLm91dHB1dEZvcm1hdH19aW1wb3J0U3RhdGUoQyl7Qy5vdXRwdXRGb3JtYXQmJih0aGlzLm91dHB1dEZvcm1hdD1DLm91dHB1dEZvcm1hdCksdGhpcy5pbXBvcnRCbG9ja3MoQy5ibG9ja3MpfWhhbmRsZURyYWdFbmQoKXtpZih0aGlzLmRyYWdnZWRCbG9ja0lkKXtsZXQgej10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dGhpcy5kcmFnZ2VkQmxvY2tJZH0iXWApO3omJnouY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKX10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKHo9Pnt6LmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3Zlci1iZWZvcmUiLCJkcmFnLW92ZXItYWZ0ZXIiKX0pLHRoaXMuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyb3AoQyx6KXtpZihDLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT16LmlkKXJldHVybjtsZXQgQT10aGlzLmJsb2Nrcy5maW5kSW5kZXgoRz0+Ry5pZD09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpLCQ9dGhpcy5ibG9ja3MuZmluZEluZGV4KEc9PkcuaWQ9PT16LmlkKTtpZihBPT09LTF8fCQ9PT0tMSlyZXR1cm47bGV0W0ZdPXRoaXMuYmxvY2tzLnNwbGljZShBLDEpLFk9JDt0aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYWZ0ZXIiP1k9QTwkPyQ6JCsxOlk9QTwkPyQtMTokLHRoaXMuYmxvY2tzLnNwbGljZShZLDAsRiksdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuaGFuZGxlRHJhZ0VuZCgpLHNldFRpbWVvdXQoKCk9PntsZXQgRz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Ri5pZH0iXSAuYmxvY2tgKTtHJiZGLnR5cGUhPT0iZGl2aWRlciImJkcuZm9jdXMoKX0sMTAwKX1oYW5kbGVUZXh0U2VsZWN0aW9uKEMpe3RoaXMuc2xhc2hNZW51LnZpc2libGV9dXBkYXRlRm9ybWF0dGluZ01lbnVQb3NpdGlvbigpe2xldCBDPVtdO3RoaXMuc2hhZG93Um9vdCYmQy5wdXNoKHRoaXMuc2hhZG93Um9vdCksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpPy5mb3JFYWNoKCQ9PntsZXQgRj0kLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO0Y/LnNoYWRvd1Jvb3QmJkMucHVzaChGLnNoYWRvd1Jvb3QpfSk7bGV0IEE9dDMuZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uQyk7QSYmdGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KHt4OkEueCx5OkEueX0sYXN5bmMgJD0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdCgkKSl9aGlkZUZvcm1hdHRpbmdNZW51KCl7dGhpcy5mb3JtYXR0aW5nTWVudS5oaWRlKCksdGhpcy5zZWxlY3RlZFRleHQ9IiJ9YXN5bmMgYXBwbHlGb3JtYXQoQyl7bGV0IHo9W107dGhpcy5zaGFkb3dSb290JiZ6LnB1c2godGhpcy5zaGFkb3dSb290KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik/LmZvckVhY2goZGU9PntsZXQgRD1kZS5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtEPy5zaGFkb3dSb290JiZ6LnB1c2goRC5zaGFkb3dSb290KX0pO2xldCAkPWh0LmdldFNlbGVjdGlvbkluZm8oLi4ueik7aWYoISQpcmV0dXJuO2xldCBGLFksRz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKTtmb3IobGV0IGRlPTA7ZGU8Ry5sZW5ndGg7ZGUrKyl7bGV0IEQ9R1tkZV0sUT1ELnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFE/LnNoYWRvd1Jvb3Qpe2xldCBmZT1RLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoZmUmJihmZS5jb250YWlucygkLnN0YXJ0Q29udGFpbmVyKXx8ZmUuY29udGFpbnMoJC5lbmRDb250YWluZXIpKSl7bGV0IFQ9RC5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtGPXRoaXMuYmxvY2tzLmZpbmQoVz0+Vy5pZD09PVQpLFk9UTticmVha319fWlmKCFGfHwhWSlyZXR1cm47bGV0IFo9aHQuY3JlYXRlUmFuZ2VGcm9tSW5mbygkKTtpZihDPT09ImxpbmsiKXtsZXQgZGU9YXdhaXQgdGhpcy5zaG93TGlua0RpYWxvZygpO2lmKCFkZSl7WS5mb2N1cygpO3JldHVybn10My5hcHBseUZvcm1hdChDLGRlLFoseil9ZWxzZSB0My5hcHBseUZvcm1hdChDLHZvaWQgMCxaLHopO2F3YWl0IG5ldyBQcm9taXNlKGRlPT5zZXRUaW1lb3V0KGRlLDEwKSksRi5jb250ZW50PVkuZ2V0Q29udGVudCgpLHRoaXMudXBkYXRlVmFsdWUoKSxZLmZvY3VzKCksQz09PSJsaW5rIj90aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpOnRoaXMuc2VsZWN0ZWRUZXh0PSIifWFzeW5jIHNob3dMaW5rRGlhbG9nKCl7cmV0dXJuIG5ldyBQcm9taXNlKEM9PntsZXQgej1udWxsO2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkFkZCBMaW5rIixjb250ZW50OlRwYAogICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubGluay1pbnB1dCB7CiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1saW5lLWJyaWdodCk7CiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaW5wdXQpOwogICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQpOwogICAgICAgICAgICAgIG1hcmdpbjogMTZweCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5saW5rLWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1wcmltYXJ5KTsKICAgICAgICAgICAgfQogICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgY2xhc3M9ImxpbmstaW5wdXQiIAogICAgICAgICAgICB0eXBlPSJ1cmwiIAogICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly9leGFtcGxlLmNvbSIgCiAgICAgICAgICAgIEBrZXlkb3duPSIke0E9PntpZihBLmtleT09PSJFbnRlciIpe2xldCAkPUEudGFyZ2V0O3o9JC52YWx1ZTtsZXQgRj0kLmNsb3Nlc3QoImRlZXMtbW9kYWwiKTtpZihGKXtsZXQgWT1GLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ib3R0b21CdXR0b246bGFzdC1jaGlsZCIpO1kmJlkuY2xpY2soKX19fX0iCiAgICAgICAgICAgIEBpbnB1dD0iJHtBPT57ej1BLnRhcmdldC52YWx1ZX19IgogICAgICAgICAgLz4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246aShhc3luYyBBPT57QS5kZXN0cm95KCksQyhudWxsKX0sImFjdGlvbiIpfSx7bmFtZToiQWRkIExpbmsiLGFjdGlvbjppKGFzeW5jIEE9PntBLmRlc3Ryb3koKSxDKHopfSwiYWN0aW9uIil9XX0pLHNldFRpbWVvdXQoKCk9PntsZXQgQT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIC5saW5rLWlucHV0Iik7QSYmQS5mb2N1cygpfSwxMDApfSl9dW5kbygpe2xldCBDPXRoaXMuaGlzdG9yeS51bmRvKCk7QyYmdGhpcy5yZXN0b3JlU3RhdGUoQyl9cmVkbygpe2xldCBDPXRoaXMuaGlzdG9yeS5yZWRvKCk7QyYmdGhpcy5yZXN0b3JlU3RhdGUoQyl9cmVzdG9yZVN0YXRlKEMpe3RoaXMuYmxvY2tzPUMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkPUMuc2VsZWN0ZWRCbG9ja0lkLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLEMuY3Vyc29yUG9zaXRpb24/c2V0VGltZW91dCgoKT0+e2xldCBBPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Qy5jdXJzb3JQb3NpdGlvbi5ibG9ja0lkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO0EmJkEuZm9jdXNXaXRoQ3Vyc29yKEMuY3Vyc29yUG9zaXRpb24ub2Zmc2V0KX0sNTApOkMuc2VsZWN0ZWRCbG9ja0lkJiZzZXRUaW1lb3V0KCgpPT57dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhDLnNlbGVjdGVkQmxvY2tJZCl9LDUwKSx0aGlzLnVwZGF0ZVZhbHVlKCl9c2F2ZVRvSGlzdG9yeShDPSEwKXtsZXQgejtpZih0aGlzLnNlbGVjdGVkQmxvY2tJZCl7bGV0ICQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0aGlzLnNlbGVjdGVkQmxvY2tJZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZigkJiZ0eXBlb2YgJC5nZXRDdXJzb3JQb3NpdGlvbj09ImZ1bmN0aW9uIil7bGV0IEY9JC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihGKXtsZXQgWT0kLmdldEN1cnNvclBvc2l0aW9uKEYpO1khPT1udWxsJiYoej17YmxvY2tJZDp0aGlzLnNlbGVjdGVkQmxvY2tJZCxvZmZzZXQ6WX0pfX19Qz90aGlzLmhpc3Rvcnkuc2F2ZVN0YXRlKHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkLHopOnRoaXMuaGlzdG9yeS5zYXZlQ2hlY2twb2ludCh0aGlzLmJsb2Nrcyx0aGlzLnNlbGVjdGVkQmxvY2tJZCx6KX1zdGF0aWN7R28oYSxyKX19O3JldHVybiBCPWF9KSgpfSk7dmFyIHlacix3WnI9dSgoKT0+e3ZlKCk7d2EoKTtDNmUoKTt3bigpO3lacj1pKCgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3JlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCYXNpYyBSaWNoIFRleHQgRWRpdG9yIn0gLnN1YnRpdGxlPSR7IkEgZnVsbC1mZWF0dXJlZCByaWNoIHRleHQgZWRpdG9yIHdpdGggZm9ybWF0dGluZyB0b29sYmFyIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiQXJ0aWNsZSBDb250ZW50In0gCiAgICAgICAgICAudmFsdWU9JHsnPGgxPldlbGNvbWUgdG8gdGhlIFJpY2ggVGV4dCBFZGl0b3IhPC9oMT48cD5UaGlzIGlzIGEgZmVhdHVyZS1yaWNoIGVkaXRvciBidWlsdCB3aXRoIFRpcFRhcC4gWW91IGNhbjo8L3A+PHVsPjxsaT48c3Ryb25nPkZvcm1hdCB0ZXh0PC9zdHJvbmc+IHdpdGggPGVtPnZhcmlvdXM8L2VtPiA8dT5zdHlsZXM8L3U+PC9saT48bGk+Q3JlYXRlIGRpZmZlcmVudCBoZWFkaW5nIGxldmVsczwvbGk+PGxpPkFkZCA8YSBocmVmPSJodHRwczovL2V4YW1wbGUuY29tIj5saW5rczwvYT4gdG8gZXh0ZXJuYWwgcmVzb3VyY2VzPC9saT48bGk+V3JpdGUgPGNvZGU+aW5saW5lIGNvZGU8L2NvZGU+IG9yIGNvZGUgYmxvY2tzPC9saT48L3VsPjxibG9ja3F1b3RlPjxwPlVzZSB0aGUgdG9vbGJhciBhYm92ZSB0byBleHBsb3JlIGFsbCB0aGUgZm9ybWF0dGluZyBvcHRpb25zIGF2YWlsYWJsZSE8L3A+PC9ibG9ja3F1b3RlPjxwPlN0YXJ0IHR5cGluZyB0byBzZWUgdGhlIG1hZ2ljIGhhcHBlbi4uLjwvcD4nfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlVzZSB0aGUgdG9vbGJhciB0byBmb3JtYXQgeW91ciBjb250ZW50IHdpdGggaGVhZGluZ3MsIGxpc3RzLCBsaW5rcywgYW5kIG1vcmUifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gV2l0aCBQbGFjZWhvbGRlciJ9IC5zdWJ0aXRsZT0keyJFbXB0eSBlZGl0b3Igd2l0aCBwbGFjZWhvbGRlciB0ZXh0In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiQmxvZyBQb3N0In0gCiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiU3RhcnQgd3JpdGluZyB5b3VyIGJsb2cgcG9zdCBoZXJlLi4uIn0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIERpZmZlcmVudCBIZWlnaHRzIn0gLnN1YnRpdGxlPSR7IkVkaXRvcnMgd2l0aCBkaWZmZXJlbnQgbWluaW11bSBoZWlnaHRzIGZvciB2YXJpb3VzIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiU2hvcnQgTm90ZSJ9IAogICAgICAgICAgICAubWluSGVpZ2h0PSR7MTUwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiUXVpY2sgbm90ZS4uLiJ9CiAgICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgICAgLmxhYmVsPSR7IkV4dGVuZGVkIENvbnRlbnQifSAKICAgICAgICAgICAgLm1pbkhlaWdodD0kezMwMH0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IldyaXRlIHlvdXIgZXh0ZW5kZWQgY29udGVudCBoZXJlLi4uIn0KICAgICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBDb2RlIEV4YW1wbGVzIn0gLnN1YnRpdGxlPSR7IkVkaXRvciBwcmUtZmlsbGVkIHdpdGggY29kZSBleGFtcGxlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IlRlY2huaWNhbCBEb2N1bWVudGF0aW9uIn0gCiAgICAgICAgICAudmFsdWU9JHsnPGgyPkluc3RhbGxhdGlvbiBHdWlkZTwvaDI+PHA+VG8gaW5zdGFsbCB0aGUgcGFja2FnZSwgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDo8L3A+PHByZT48Y29kZT5ucG0gaW5zdGFsbCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2c8L2NvZGU+PC9wcmU+PHA+VGhlbiBpbXBvcnQgdGhlIGNvbXBvbmVudCBpbiB5b3VyIFR5cGVTY3JpcHQgZmlsZTo8L3A+PHByZT48Y29kZT5pbXBvcnQgeyBEZWVzSW5wdXRSaWNodGV4dCB9IGZyb20gIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyI7PC9jb2RlPjwvcHJlPjxwPllvdSBjYW4gbm93IHVzZSB0aGUgPGNvZGU+Jmx0O2RlZXMtaW5wdXQtcmljaHRleHQmZ3Q7PC9jb2RlPiBlbGVtZW50IGluIHlvdXIgdGVtcGxhdGVzLjwvcD4nfQogICAgICAgICAgLm1pbkhlaWdodD0kezI1MH0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIERpc2FibGVkIFN0YXRlIn0gLnN1YnRpdGxlPSR7IlJlYWQtb25seSByaWNoIHRleHQgY29udGVudCJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IlB1Ymxpc2hlZCBBcnRpY2xlIChSZWFkIE9ubHkpIn0gCiAgICAgICAgICAudmFsdWU9JHsnPGgyPlRoZSBGdXR1cmUgb2YgV2ViIENvbXBvbmVudHM8L2gyPjxwPldlYiBDb21wb25lbnRzIGhhdmUgcmV2b2x1dGlvbml6ZWQgaG93IHdlIGJ1aWxkIG1vZGVybiB3ZWIgYXBwbGljYXRpb25zLi4uPC9wPjxibG9ja3F1b3RlPjxwPiJUaGUgZnV0dXJlIG9mIHdlYiBkZXZlbG9wbWVudCBsaWVzIGluIHJldXNhYmxlLCBlbmNhcHN1bGF0ZWQgY29tcG9uZW50cy4iPC9wPjwvYmxvY2txdW90ZT4nfQogICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBJbnRlcmFjdGl2ZSBEZW1vIn0gLnN1YnRpdGxlPSR7IlR5cGUgaW4gdGhlIGVkaXRvciBiZWxvdyBhbmQgc2VlIHRoZSBIVE1MIG91dHB1dCJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLWVkaXRvciIKICAgICAgICAgIC5sYWJlbD0keyJUcnkgaXQgeW91cnNlbGYifSAKICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIHNvbWV0aGluZyBoZXJlLi4uIn0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgICBAY2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvdXRwdXQtcHJldmlldyIpO2UmJihlLnRleHRDb250ZW50PXQuZGV0YWlsLnZhbHVlKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtcHJldmlldyIgaWQ9Im91dHB1dC1wcmV2aWV3Ij4KICAgICAgICAgIDxlbT5IVE1MIG91dHB1dCB3aWxsIGFwcGVhciBoZXJlLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgLCJkZW1vRnVuYyIpfSk7dmFyIGtacixTWnI9dSgoKT0+e3ZlKCk7Q2koKTtsdCgpO2tacj1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmxhYmVsIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuZm9jdXNlZDo6cGFydChvdXRlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSAvIDAuMDUpIiwiaHNsKDAgMCUgOTglIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItdG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItZGl2aWRlciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDAlOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcCB7CiAgICAgICAgbWFyZ2luOiAwLjVlbSAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHA6Zmlyc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGgxIHsKICAgICAgICBmb250LXNpemU6IDJlbTsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBtYXJnaW46IDFlbSAwIDAuNWVtIDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxLjVlbTsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBtYXJnaW46IDFlbSAwIDAuNWVtIDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgdWwsCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3Igb2wgewogICAgICAgIHBhZGRpbmctbGVmdDogMS41ZW07CiAgICAgICAgbWFyZ2luOiAwLjVlbSAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGxpIHsKICAgICAgICBtYXJnaW46IDAuMjVlbSAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGJsb2NrcXVvdGUgewogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgbWFyZ2luOiAxZW0gMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDFlbTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnRmlyYSBDb2RlJywgJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgJ1JvYm90byBNb25vJywgQ29uc29sYXMsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxZW07CiAgICAgICAgbWFyZ2luOiAxZW0gMDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBhIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBhOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA0MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNjkuOCUpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLWZvb3RlciB7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAud29yZC1jb3VudCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LnNob3cgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAubGluay1pbnB1dCBpbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAubGluay1pbnB1dCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyBidXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgZGVlcy10aWxlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRvb2xiYXItYnV0dG9uLAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuZWRpdG9yLWNvbnRlbnQgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgXX0pO3ZhciBNWnIsQ1pyPXUoKCk9Pnt2ZSgpO01acj1pKHQ9PndgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICAke3QubGFiZWw/d2A8bGFiZWwgY2xhc3M9ImxhYmVsIj4ke3QubGFiZWx9PC9sYWJlbD5gOiIifQogICAgICAgICAgPGRlZXMtdGlsZSBjbGFzcz0iJHt0LmVkaXRvcj8uaXNGb2N1c2VkPyJmb2N1c2VkIjoiIn0iIHN0eWxlPSItLW1pbi1oZWlnaHQ6ICR7dC5taW5IZWlnaHR9cHgiPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImVkaXRvci10b29sYmFyIj4KICAgICAgICAgICAgICAke3QucmVuZGVyVG9vbGJhcigpfQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW5wdXQgJHt0LnNob3dMaW5rSW5wdXQ/InNob3ciOiIifSI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idXJsIiBwbGFjZWhvbGRlcj0iRW50ZXIgVVJMLi4uIiBAa2V5ZG93bj0ke3QuaGFuZGxlTGlua0lucHV0S2V5ZG93bn0gLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW5wdXQtYnV0dG9ucyI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InByaW1hcnkiIEBjbGljaz0ke3Quc2F2ZUxpbmt9PlNhdmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHt0LnJlbW92ZUxpbmt9PlJlbW92ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0ke3QuaGlkZUxpbmtJbnB1dH0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1jb250ZW50Ij48L2Rpdj4KICAgICAgICAgICAgJHt0LnNob3dXb3JkQ291bnQ/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJlZGl0b3ItZm9vdGVyIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id29yZC1jb3VudCI+JHt0LndvcmRDb3VudH0gd29yZCR7dC53b3JkQ291bnQhPT0xPyJzIjoiIn08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgICAgJHt0LnJlbmRlckRlc2NyaXB0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGAsInJlbmRlclJpY2h0ZXh0Iil9KTt2YXIgSjksZGwsejZlLEM2ZT11KCgpPT57Q2koKTt3WnIoKTtTWnIoKTtDWnIoKTtLcigpO3ZlKCk7cDMoKTtucygpO0o5PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxkbD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sejZlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1pbnB1dC1yaWNodGV4dCIpXSxlLHI9W10sYSxzPUV0LG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRSaWNodGV4dCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBMPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6TnVtYmVyfSldLHk9W2llKCldLE49W2llKCldLEo5KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InZhbHVlImluIEUsImhhcyIpLGdldDppKEU9PkUudmFsdWUsImdldCIpLHNldDppKChFLEIpPT57RS52YWx1ZT1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LG8sbCksSjkodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4icGxhY2Vob2xkZXIiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5wbGFjZWhvbGRlciwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnBsYWNlaG9sZGVyPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sZCxmKSxKOSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dXb3JkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNob3dXb3JkQ291bnQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93V29yZENvdW50LCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0Uuc2hvd1dvcmRDb3VudD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGgsbSksSjkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5IZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im1pbkhlaWdodCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm1pbkhlaWdodCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLm1pbkhlaWdodD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGIsZyksSjkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGlua0lucHV0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzaG93TGlua0lucHV0ImluIEUsImhhcyIpLGdldDppKEU9PkUuc2hvd0xpbmtJbnB1dCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnNob3dMaW5rSW5wdXQ9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxrLE0pLEo5KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid29yZENvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ3b3JkQ291bnQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS53b3JkQ291bnQsImdldCIpLHNldDppKChFLEIpPT57RS53b3JkQ291bnQ9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxfLFMpLEo5KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkx9LG51bGwsciksTz1hPWUudmFsdWUsTCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpMfSl9c3RhdGljIGRlbW89eVpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1kbCh0aGlzLG8sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShMKXt0aGlzLiNlPUx9I3Q9KGRsKHRoaXMsbCksZGwodGhpcyxkLCIiKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBsYWNlaG9sZGVyKEwpe3RoaXMuI3Q9TH0jcj0oZGwodGhpcyxmKSxkbCh0aGlzLGgsITApKTtnZXQgc2hvd1dvcmRDb3VudCgpe3JldHVybiB0aGlzLiNyfXNldCBzaG93V29yZENvdW50KEwpe3RoaXMuI3I9TH0jYT0oZGwodGhpcyxtKSxkbCh0aGlzLGIsMjAwKSk7Z2V0IG1pbkhlaWdodCgpe3JldHVybiB0aGlzLiNhfXNldCBtaW5IZWlnaHQoTCl7dGhpcy4jYT1MfSNpPShkbCh0aGlzLGcpLGRsKHRoaXMsaywhMSkpO2dldCBzaG93TGlua0lucHV0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dMaW5rSW5wdXQoTCl7dGhpcy4jaT1MfSNzPShkbCh0aGlzLE0pLGRsKHRoaXMsXywwKSk7Z2V0IHdvcmRDb3VudCgpe3JldHVybiB0aGlzLiNzfXNldCB3b3JkQ291bnQoTCl7dGhpcy4jcz1MfWVkaXRvckVsZW1lbnQ9ZGwodGhpcyxTKTtsaW5rSW5wdXRFbGVtZW50O3RpcHRhcEJ1bmRsZT1udWxsO2VkaXRvcjtzdGF0aWMgc3R5bGVzPWtacjtyZW5kZXIoKXtyZXR1cm4gTVpyKHRoaXMpfXJlbmRlclRvb2xiYXIoKXtsZXQgTD10aGlzLmdldFRvb2xiYXJCdXR0b25zKCk7cmV0dXJuIHdgCiAgICAgICR7TC5tYXAoRT0+RS5pc0RpdmlkZXI/d2A8ZGl2IGNsYXNzPSJ0b29sYmFyLWRpdmlkZXIiPjwvZGl2PmA6d2AKICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7RS5pc0FjdGl2ZT8uKCk/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9JHtFLmFjdGlvbn0KICAgICAgICAgICAgdGl0bGU9JHtFLnRpdGxlfQogICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfHwhdGhpcy5lZGl0b3J9CiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtFLmljb259PjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgYCl9CiAgICBgfWdldFRvb2xiYXJCdXR0b25zKCl7cmV0dXJuIHRoaXMuZWRpdG9yP1t7bmFtZToiYm9sZCIsaWNvbjoibHVjaWRlOmJvbGQiLHRpdGxlOiJCb2xkIChDdHJsK0IpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJvbGQoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImJvbGQiKSwiaXNBY3RpdmUiKX0se25hbWU6Iml0YWxpYyIsaWNvbjoibHVjaWRlOml0YWxpYyIsdGl0bGU6Ikl0YWxpYyAoQ3RybCtJKSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVJdGFsaWMoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIml0YWxpYyIpLCJpc0FjdGl2ZSIpfSx7bmFtZToidW5kZXJsaW5lIixpY29uOiJsdWNpZGU6dW5kZXJsaW5lIix0aXRsZToiVW5kZXJsaW5lIChDdHJsK1UpIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZVVuZGVybGluZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgidW5kZXJsaW5lIiksImlzQWN0aXZlIil9LHtuYW1lOiJzdHJpa2UiLGljb246Imx1Y2lkZTpzdHJpa2V0aHJvdWdoIix0aXRsZToiU3RyaWtldGhyb3VnaCIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVTdHJpa2UoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoInN0cmlrZSIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjEiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImgxIixpY29uOiJsdWNpZGU6aGVhZGluZzEiLHRpdGxlOiJIZWFkaW5nIDEiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7bGV2ZWw6MX0pLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaGVhZGluZyIse2xldmVsOjF9KSwiaXNBY3RpdmUiKX0se25hbWU6ImgyIixpY29uOiJsdWNpZGU6aGVhZGluZzIiLHRpdGxlOiJIZWFkaW5nIDIiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7bGV2ZWw6Mn0pLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaGVhZGluZyIse2xldmVsOjJ9KSwiaXNBY3RpdmUiKX0se25hbWU6ImgzIixpY29uOiJsdWNpZGU6aGVhZGluZzMiLHRpdGxlOiJIZWFkaW5nIDMiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7bGV2ZWw6M30pLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaGVhZGluZyIse2xldmVsOjN9KSwiaXNBY3RpdmUiKX0se25hbWU6ImRpdmlkZXIyIix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJidWxsZXRMaXN0IixpY29uOiJsdWNpZGU6bGlzdCIsdGl0bGU6IkJ1bGxldCBMaXN0IixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJ1bGxldExpc3QoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImJ1bGxldExpc3QiKSwiaXNBY3RpdmUiKX0se25hbWU6Im9yZGVyZWRMaXN0IixpY29uOiJsdWNpZGU6bGlzdE9yZGVyZWQiLHRpdGxlOiJOdW1iZXJlZCBMaXN0IixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZU9yZGVyZWRMaXN0KCkucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJvcmRlcmVkTGlzdCIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiYmxvY2txdW90ZSIsaWNvbjoibHVjaWRlOnF1b3RlIix0aXRsZToiUXVvdGUiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQmxvY2txdW90ZSgpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYmxvY2txdW90ZSIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiY29kZSIsaWNvbjoibHVjaWRlOmNvZGUiLHRpdGxlOiJDb2RlIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGUoKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImNvZGUiKSwiaXNBY3RpdmUiKX0se25hbWU6ImNvZGVCbG9jayIsaWNvbjoibHVjaWRlOmZpbGVDb2RlIix0aXRsZToiQ29kZSBCbG9jayIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVDb2RlQmxvY2soKS5ydW4oKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImNvZGVCbG9jayIpLCJpc0FjdGl2ZSIpfSx7bmFtZToiZGl2aWRlcjMiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImxpbmsiLGljb246Imx1Y2lkZTpsaW5rIix0aXRsZToiQWRkIExpbmsiLGFjdGlvbjppKCgpPT50aGlzLnRvZ2dsZUxpbmsoKSwiYWN0aW9uIiksaXNBY3RpdmU6aSgoKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImxpbmsiKSwiaXNBY3RpdmUiKX0se25hbWU6ImFsaWduTGVmdCIsaWNvbjoibHVjaWRlOmFsaWduTGVmdCIsdGl0bGU6IkFsaWduIExlZnQiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJsZWZ0IikucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKHt0ZXh0QWxpZ246ImxlZnQifSksImlzQWN0aXZlIil9LHtuYW1lOiJhbGlnbkNlbnRlciIsaWNvbjoibHVjaWRlOmFsaWduQ2VudGVyIix0aXRsZToiQWxpZ24gQ2VudGVyIixhY3Rpb246aSgoKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldFRleHRBbGlnbigiY2VudGVyIikucnVuKCksImFjdGlvbiIpLGlzQWN0aXZlOmkoKCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKHt0ZXh0QWxpZ246ImNlbnRlciJ9KSwiaXNBY3RpdmUiKX0se25hbWU6ImFsaWduUmlnaHQiLGljb246Imx1Y2lkZTphbGlnblJpZ2h0Iix0aXRsZToiQWxpZ24gUmlnaHQiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJyaWdodCIpLnJ1bigpLCJhY3Rpb24iKSxpc0FjdGl2ZTppKCgpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSh7dGV4dEFsaWduOiJyaWdodCJ9KSwiaXNBY3RpdmUiKX0se25hbWU6ImRpdmlkZXI0Iix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJ1bmRvIixpY29uOiJsdWNpZGU6dW5kbyIsdGl0bGU6IlVuZG8gKEN0cmwrWikiLGFjdGlvbjppKCgpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudW5kbygpLnJ1bigpLCJhY3Rpb24iKX0se25hbWU6InJlZG8iLGljb246Imx1Y2lkZTpyZWRvIix0aXRsZToiUmVkbyAoQ3RybCtZKSIsYWN0aW9uOmkoKCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5yZWRvKCkucnVuKCksImFjdGlvbiIpfV06W119YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnRpcHRhcEJ1bmRsZT1hd2FpdCBzbi5nZXRJbnN0YW5jZSgpLmxvYWRUaXB0YXAoKSx0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0b3ItY29udGVudCIpLHRoaXMubGlua0lucHV0RWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmxpbmstaW5wdXQgaW5wdXQiKSx0aGlzLmluaXRpYWxpemVFZGl0b3IoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1pbml0aWFsaXplRWRpdG9yKCl7aWYodGhpcy5kaXNhYmxlZHx8IXRoaXMudGlwdGFwQnVuZGxlKXJldHVybjtsZXR7RWRpdG9yOkwsU3RhcnRlcktpdDpFLFVuZGVybGluZTpCLFRleHRBbGlnbjpDLExpbms6eixUeXBvZ3JhcGh5OkF9PXRoaXMudGlwdGFwQnVuZGxlO3RoaXMuZWRpdG9yPW5ldyBMKHtlbGVtZW50OnRoaXMuZWRpdG9yRWxlbWVudCxleHRlbnNpb25zOltFLmNvbmZpZ3VyZSh7aGVhZGluZzp7bGV2ZWxzOlsxLDIsM119fSksQi5jb25maWd1cmUoe30pLEMuY29uZmlndXJlKHt0eXBlczpbImhlYWRpbmciLCJwYXJhZ3JhcGgiXX0pLHouY29uZmlndXJlKHtvcGVuT25DbGljazohMSxIVE1MQXR0cmlidXRlczp7Y2xhc3M6ImVkaXRvci1saW5rIn19KSxBLmNvbmZpZ3VyZSh7fSldLGNvbnRlbnQ6dGhpcy52YWx1ZXx8KHRoaXMucGxhY2Vob2xkZXI/YDxwPiR7dGhpcy5wbGFjZWhvbGRlcn08L3A+YDoiIiksb25VcGRhdGU6aSgoe2VkaXRvcjokfSk9Pnt0aGlzLnZhbHVlPSQuZ2V0SFRNTCgpLHRoaXMudXBkYXRlV29yZENvdW50KCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaW5wdXQiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSwib25VcGRhdGUiKSxvblNlbGVjdGlvblVwZGF0ZTppKCgpPT57dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJvblNlbGVjdGlvblVwZGF0ZSIpLG9uRm9jdXM6aSgoKT0+e3RoaXMucmVxdWVzdFVwZGF0ZSgpfSwib25Gb2N1cyIpLG9uQmx1cjppKCgpPT57dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJvbkJsdXIiKX0pLHRoaXMudXBkYXRlV29yZENvdW50KCl9dXBkYXRlV29yZENvdW50KCl7aWYoIXRoaXMuZWRpdG9yKXJldHVybjtsZXQgTD10aGlzLmVkaXRvci5nZXRUZXh0KCk7dGhpcy53b3JkQ291bnQ9TC50cmltKCk/TC50cmltKCkuc3BsaXQoL1xzKy8pLmxlbmd0aDowfXRvZ2dsZUxpbmsoKXtpZih0aGlzLmVkaXRvcilpZih0aGlzLmVkaXRvci5pc0FjdGl2ZSgibGluayIpKXtsZXQgTD10aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKCJsaW5rIikuaHJlZjt0aGlzLnNob3dMaW5rSW5wdXQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5saW5rSW5wdXRFbGVtZW50JiYodGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlPUx8fCIiLHRoaXMubGlua0lucHV0RWxlbWVudC5mb2N1cygpLHRoaXMubGlua0lucHV0RWxlbWVudC5zZWxlY3QoKSl9KX1lbHNlIHRoaXMuc2hvd0xpbmtJbnB1dD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmxpbmtJbnB1dEVsZW1lbnQmJih0aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU9IiIsdGhpcy5saW5rSW5wdXRFbGVtZW50LmZvY3VzKCkpfSl9c2F2ZUxpbmsoKXtpZighdGhpcy5lZGl0b3J8fCF0aGlzLmxpbmtJbnB1dEVsZW1lbnQpcmV0dXJuO2xldCBMPXRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZTtMJiZ0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0TGluayh7aHJlZjpMfSkucnVuKCksdGhpcy5oaWRlTGlua0lucHV0KCl9cmVtb3ZlTGluaygpe3RoaXMuZWRpdG9yJiYodGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnVuc2V0TGluaygpLnJ1bigpLHRoaXMuaGlkZUxpbmtJbnB1dCgpKX1oaWRlTGlua0lucHV0KCl7dGhpcy5zaG93TGlua0lucHV0PSExLHRoaXMuZWRpdG9yPy5jb21tYW5kcy5mb2N1cygpfWhhbmRsZUxpbmtJbnB1dEtleWRvd24oTCl7TC5rZXk9PT0iRW50ZXIiPyhMLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlTGluaygpKTpMLmtleT09PSJFc2NhcGUiJiYoTC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlkZUxpbmtJbnB1dCgpKX1zZXRWYWx1ZShMKXt0aGlzLnZhbHVlPUwsdGhpcy5lZGl0b3ImJkwhPT10aGlzLmVkaXRvci5nZXRIVE1MKCkmJnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNldENvbnRlbnQoTCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1jbGVhcigpe3RoaXMuc2V0VmFsdWUoIiIpfWZvY3VzKCl7dGhpcy5lZGl0b3I/LmNvbW1hbmRzLmZvY3VzKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuZWRpdG9yJiZ0aGlzLmVkaXRvci5kZXN0cm95KCl9c3RhdGlje2RsKGEscil9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciB6WnIsX1pyPXUoKCk9PntlN3QoKTt2bigpO3ZlKCk7d2EoKTt6WnI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke3JlYAogICAgICAuZGVtb1dyYXBwZXIgewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgNSUpIil9OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogICAgICB9CiAgICAgIC5kZW1vLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CiAgICAgIC5kZW1vLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAudGhlbWUtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAxNnB4OwogICAgICAgIHJpZ2h0OiAxNnB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vV3JhcHBlciI+CiAgICA8ZGVlcy1idXR0b24gY2xhc3M9InRoZW1lLXRvZ2dsZSIgQGNsaWNrPSR7KCk9Pntkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImJyaWdodCIpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiZGFyayIpfX0+VG9nZ2xlIFRoZW1lPC9kZWVzLWJ1dHRvbj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+QmFzaWMgVGFibGUgd2l0aCBBY3Rpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QSBzdGFuZGFyZCB0YWJsZSB3aXRoIHJvdyBhY3Rpb25zLCBlZGl0YWJsZSBjZWxscywgYW5kIGNvbnRleHQgbWVudSBzdXBwb3J0LiBEb3VibGUtY2xpY2sgYW55IGNlbGwgdG8gZWRpdC4gVGFiIG1vdmVzIHRvIHRoZSBuZXh0IGVkaXRhYmxlIGNlbGwsIEVudGVyIHRvIHRoZSByb3cgYmVsb3csIEVzYyBjYW5jZWxzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IkN1cnJlbnQgQWNjb3VudCBTdGF0ZW1lbnQiCiAgICAgICAgICBoZWFkaW5nMj0iQnVucSAtIFBheW1lbnQgQWNjb3VudCAyIC0gQXByaWwgMjAyMSIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImRhdGUiLGhlYWRlcjoiRGF0ZSIsc29ydGFibGU6ITAsZWRpdGFibGU6ITAsZWRpdG9yOiJkYXRlIn0se2tleToiYW1vdW50IixoZWFkZXI6IkFtb3VudCIsZWRpdGFibGU6ITAsZWRpdG9yOiJ0ZXh0In0se2tleToiY2F0ZWdvcnkiLGhlYWRlcjoiQ2F0ZWdvcnkiLGVkaXRhYmxlOiEwLGVkaXRvcjoiZHJvcGRvd24iLGVkaXRvck9wdGlvbnM6e29wdGlvbnM6W3tvcHRpb246Ik9mZmljZSBTdXBwbGllcyIsa2V5OiJvZmZpY2UifSx7b3B0aW9uOiJIYXJkd2FyZSIsa2V5OiJoYXJkd2FyZSJ9LHtvcHRpb246IlNvZnR3YXJlIixrZXk6InNvZnR3YXJlIn0se29wdGlvbjoiVHJhdmVsIixrZXk6InRyYXZlbCJ9XX19LHtrZXk6ImRlc2NyaXB0aW9uIixoZWFkZXI6IkRlc2NyaXB0aW9uIixlZGl0YWJsZTohMH0se2tleToicmVjb25jaWxlZCIsaGVhZGVyOiJPSyIsZWRpdGFibGU6ITAsZWRpdG9yOiJjaGVja2JveCJ9XX0KICAgICAgICAgIEBjZWxsRWRpdD0ke3Q9PmNvbnNvbGUubG9nKCJjZWxsRWRpdCIsdC5kZXRhaWwpfQogICAgICAgICAgLmRhdGE9JHtbe2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGNhdGVnb3J5OiJvZmZpY2UiLGRlc2NyaXB0aW9uOiJQcmludGluZyBQYXBlciAtIFNUQVBMRVMgQlJFTUVOIixyZWNvbmNpbGVkOiEwfSx7ZGF0ZToiMjAyMS0wNC0wMiIsYW1vdW50OiIxNjUuNjUgXHUyMEFDIixjYXRlZ29yeToiaGFyZHdhcmUiLGRlc2NyaXB0aW9uOiJMb2dpdGVjaCBNb3VzZSAtIGxvZ2kuY29tIE9ubGluZVNob3AiLHJlY29uY2lsZWQ6ITF9LHtkYXRlOiIyMDIxLTA0LTAzIixhbW91bnQ6IjI5OTksMDAgXHUyMEFDIixjYXRlZ29yeToiaGFyZHdhcmUiLGRlc2NyaXB0aW9uOiJNYWNib29rIFBybyAxNmluY2ggLSBBcHBsZS5kZSBPbmxpbmVTaG9wIixyZWNvbmNpbGVkOiExfSx7ZGF0ZToiMjAyMS0wNC0wMSIsYW1vdW50OiIyNDY0LjY1IFx1MjBBQyIsY2F0ZWdvcnk6Im9mZmljZSIsZGVzY3JpcHRpb246Ik9mZmljZS1TdXBwbGllcyAtIFNUQVBMRVMgQlJFTUVOIixyZWNvbmNpbGVkOiEwfSx7ZGF0ZToiMjAyMS0wNC0wMSIsYW1vdW50OiIyNDY0LjY1IFx1MjBBQyIsY2F0ZWdvcnk6Im9mZmljZSIsZGVzY3JpcHRpb246Ik9mZmljZS1TdXBwbGllcyAtIFNUQVBMRVMgQlJFTUVOIixyZWNvbmNpbGVkOiEwfV19CiAgICAgICAgICBkYXRhTmFtZT0idHJhbnNhY3Rpb25zIgogICAgICAgICAgLmRhdGFBY3Rpb25zPSIke1t7bmFtZToidXBsb2FkIixpY29uTmFtZToiYmVsbCIsdXNlVGFibGVCZWhhdmlvdXI6InVwbG9hZCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzppKGFzeW5jIHQ9PnthbGVydCh0Lml0ZW0uYW1vdW50KX0sImFjdGlvbkZ1bmMiKX0se25hbWU6InZpc2liaWxpdHkiLGljb25OYW1lOiJjb3B5Iix0eXBlOlsiaW5Sb3ciXSx1c2VUYWJsZUJlaGF2aW91cjoicHJldmlldyIsYWN0aW9uRnVuYzppKGFzeW5jIHQ9Pnt9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJjcmVhdGUgbmV3IixpY29uTmFtZToiaW5zdGFncmFtIix0eXBlOlsiaGVhZGVyIl0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6aShhc3luYyB0PT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToidG8gZ2FsbGVyeSIsaWNvbk5hbWU6Im1lc3NhZ2UiLHR5cGU6WyJmb290ZXIiXSx1c2VUYWJsZUJlaGF2aW91cjoicHJldmlldyIsYWN0aW9uRnVuYzppKGFzeW5jIHQ9Pnt9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJjb3B5IixpY29uTmFtZToiY29weVNvbGlkIix0eXBlOlsiY29udGV4dG1lbnUiLCJpblJvdyJdLGFjdGlvbjppKGFzeW5jKCk9Pm51bGwsImFjdGlvbiIpfSx7bmFtZToiZWRpdCAoZnJvbSBkZW1vKSIsaWNvbk5hbWU6InBlblRvU3F1YXJlIix0eXBlOlsiY29udGV4dG1lbnUiXSxhY3Rpb246aShhc3luYygpPT5udWxsLCJhY3Rpb24iKX0se25hbWU6InBhc3RlIixpY29uTmFtZToicGFzdGVTb2xpZCIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uOmkoYXN5bmMoKT0+bnVsbCwiYWN0aW9uIil9LHtuYW1lOiJwcmV2aWV3Iix0eXBlOlsiZG91YmxlQ2xpY2siLCJjb250ZXh0bWVudSJdLGljb25OYW1lOiJleWUiLGFjdGlvbkZ1bmM6aShhc3luYyB0PT4oYWxlcnQodC5pdGVtLmFtb3VudCksbnVsbCksImFjdGlvbkZ1bmMiKX1dfSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIFZlcnRpY2FsIExpbmVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+RW5oYW5jZWQgY29sdW1uIHNlcGFyYXRpb24gZm9yIGJldHRlciBkYXRhIHRyYWNraW5nLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlByb2R1Y3QgSW52ZW50b3J5IgogICAgICAgICAgaGVhZGluZzI9IkN1cnJlbnQgc3RvY2sgbGV2ZWxzIGFjcm9zcyB3YXJlaG91c2VzIgogICAgICAgICAgLnNob3dWZXJ0aWNhbExpbmVzPSR7ITB9CiAgICAgICAgICAuZGF0YT0ke1t7cHJvZHVjdDonTWFjQm9vayBQcm8gMTYiJyx3YXJlaG91c2VfYToiNDUiLHdhcmVob3VzZV9iOiIzMiIsd2FyZWhvdXNlX2M6IjI4Iix0b3RhbDoiMTA1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9LHtwcm9kdWN0OiJpUGhvbmUgMTUgUHJvIix3YXJlaG91c2VfYToiMTIwIix3YXJlaG91c2VfYjoiODkiLHdhcmVob3VzZV9jOiIxNTYiLHRvdGFsOiIzNjUiLHN0YXR1czoiXHUyNzEzIEluIFN0b2NrIn0se3Byb2R1Y3Q6IkFpclBvZHMgUHJvIix3YXJlaG91c2VfYToiMCIsd2FyZWhvdXNlX2I6IjEyIix3YXJlaG91c2VfYzoiNSIsdG90YWw6IjE3IixzdGF0dXM6Ilx1MjZBMCBMb3cgU3RvY2sifSx7cHJvZHVjdDoiaVBhZCBBaXIiLHdhcmVob3VzZV9hOiIyMyIsd2FyZWhvdXNlX2I6IjQ1Iix3YXJlaG91c2VfYzoiNjciLHRvdGFsOiIxMzUiLHN0YXR1czoiXHUyNzEzIEluIFN0b2NrIn1dfQogICAgICAgICAgZGF0YU5hbWU9InByb2R1Y3RzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRhYmxlIHdpdGggRnVsbCBHcmlkPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+Q29tcGxldGUgZ3JpZCBsaW5lcyBmb3IgbWF4aW11bSByZWFkYWJpbGl0eSBhbmQgc3RydWN0dXJlLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNlcnZlciBNb25pdG9yaW5nIERhc2hib2FyZCIKICAgICAgICAgIGhlYWRpbmcyPSJSZWFsLXRpbWUgbWV0cmljcyBhY3Jvc3MgcmVnaW9ucyIKICAgICAgICAgIC5zaG93R3JpZD0keyEwfQogICAgICAgICAgLmRhdGE9JHtbe3NlcnZlcjoiQVBJLTEiLHJlZ2lvbjoiVVMtRWFzdCIsY3B1OiI0NSUiLG1lbW9yeToiNjIlIixkaXNrOiI3OCUiLGxhdGVuY3k6IjEybXMiLHVwdGltZToiOTkuOSUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJBUEktMiIscmVnaW9uOiJFVS1XZXN0IixjcHU6IjM4JSIsbWVtb3J5OiI1NSUiLGRpc2s6IjQ1JSIsbGF0ZW5jeToiMjVtcyIsdXB0aW1lOiI5OS44JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkRCLU1hc3RlciIscmVnaW9uOiJVUy1FYXN0IixjcHU6IjcyJSIsbWVtb3J5OiI4MSUiLGRpc2s6IjkyJSIsbGF0ZW5jeToiOG1zIix1cHRpbWU6IjEwMCUiLHN0YXR1czoiXHV7MUY3RTF9IFdhcm5pbmcifSx7c2VydmVyOiJEQi1SZXBsaWNhIixyZWdpb246IkVVLVdlc3QiLGNwdToiMjMlIixtZW1vcnk6IjM0JSIsZGlzazoiNDUlIixsYXRlbmN5OiIxNW1zIix1cHRpbWU6Ijk5LjclIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiQ2FjaGUtMSIscmVnaW9uOiJBUC1Tb3V0aCIsY3B1OiI4OSUiLG1lbW9yeToiOTIlIixkaXNrOiIxMiUiLGxhdGVuY3k6IjEyMG1zIix1cHRpbWU6Ijk4LjUlIixzdGF0dXM6Ilx1ezFGNTM0fSBDcml0aWNhbCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJzZXJ2ZXJzIgogICAgICAgICAgLmRhdGFBY3Rpb25zPSIke1t7bmFtZToiU1NIIENvbm5lY3QiLGljb25OYW1lOiJsdWNpZGU6dGVybWluYWwiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6aShhc3luYyB0PT57Y29uc29sZS5sb2coIkNvbm5lY3RpbmcgdG86Iix0Lml0ZW0uc2VydmVyKX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IlZpZXcgTG9ncyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlLXRleHQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jIHQ9Pntjb25zb2xlLmxvZygiVmlld2luZyBsb2dzIGZvcjoiLHQuaXRlbS5zZXJ2ZXIpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiUmVzdGFydCBTZXJ2ZXIiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaC1jdyIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jIHQ9Pntjb25zb2xlLmxvZygiUmVzdGFydGluZzoiLHQuaXRlbS5zZXJ2ZXIpfSwiYWN0aW9uRnVuYyIpfV19IgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRhYmxlIHdpdGggSG9yaXpvbnRhbCBMaW5lcyBPbmx5PC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+RW1waGFzaXMgb24gcm93IHNlcGFyYXRpb24gd2l0aG91dCBjb2x1bW4gZGl2aWRlcnMuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iU2FsZXMgUGVyZm9ybWFuY2UiCiAgICAgICAgICBoZWFkaW5nMj0iVG9wIHBlcmZvcm1lcnMgdGhpcyBxdWFydGVyIgogICAgICAgICAgLnNob3dIb3Jpem9udGFsTGluZXM9JHshMH0KICAgICAgICAgIC5zaG93VmVydGljYWxMaW5lcz0keyExfQogICAgICAgICAgLmRhdGE9JHtbe3NhbGVzcGVyc29uOiJFbWlseSBKb2huc29uIixyZWdpb246Ik5vcnRoIEFtZXJpY2EiLGRlYWxzX2Nsb3NlZDoiNDIiLHJldmVudWU6IiQxLjJNIixxdW90YV9hY2hpZXZlbWVudDoiMTI4JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246Ik1pY2hhZWwgQ2hlbiIscmVnaW9uOiJBc2lhIFBhY2lmaWMiLGRlYWxzX2Nsb3NlZDoiMzgiLHJldmVudWU6IiQ5ODBLIixxdW90YV9hY2hpZXZlbWVudDoiMTE1JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246IlNhcmFoIFdpbGxpYW1zIixyZWdpb246IkV1cm9wZSIsZGVhbHNfY2xvc2VkOiIzNSIscmV2ZW51ZToiJDg3NUsiLHF1b3RhX2FjaGlldmVtZW50OiIxMDglIixyYXRpbmc6Ilx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MCJ9LHtzYWxlc3BlcnNvbjoiRGF2aWQgR2FyY2lhIixyZWdpb246IkxhdGluIEFtZXJpY2EiLGRlYWxzX2Nsb3NlZDoiMzEiLHJldmVudWU6IiQ3NTBLIixxdW90YV9hY2hpZXZlbWVudDoiOTUlIixyYXRpbmc6Ilx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJzYWxlcyByZXBzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNpbXBsZSBUYWJsZSAoTm8gR3JpZCk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5DbGVhbiwgbWluaW1hbCBkZXNpZ24gd2l0aG91dCBncmlkIGxpbmVzLiBTZXQgc2hvd0dyaWQgdG8gZmFsc2UgdG8gZGlzYWJsZSB0aGUgZGVmYXVsdCBncmlkLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlRlYW0gTWVtYmVycyIKICAgICAgICAgIGhlYWRpbmcyPSJFbmdpbmVlcmluZyBEZXBhcnRtZW50IgogICAgICAgICAgLnNob3dHcmlkPSR7ITF9CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiQWxpY2UgSm9obnNvbiIscm9sZToiTGVhZCBFbmdpbmVlciIsZW1haWw6ImFsaWNlQGNvbXBhbnkuY29tIixsb2NhdGlvbjoiU2FuIEZyYW5jaXNjbyIsam9pbmVkOiIyMDIwLTAzLTE1In0se25hbWU6IkJvYiBTbWl0aCIscm9sZToiU2VuaW9yIERldmVsb3BlciIsZW1haWw6ImJvYkBjb21wYW55LmNvbSIsbG9jYXRpb246Ik5ldyBZb3JrIixqb2luZWQ6IjIwMTktMDctMjIifSx7bmFtZToiQ2hhcmxpZSBEYXZpcyIscm9sZToiRGV2T3BzIEVuZ2luZWVyIixlbWFpbDoiY2hhcmxpZUBjb21wYW55LmNvbSIsbG9jYXRpb246IkxvbmRvbiIsam9pbmVkOiIyMDIxLTAxLTEwIn0se25hbWU6IkRpYW5hIE1hcnRpbmV6Iixyb2xlOiJGcm9udGVuZCBEZXZlbG9wZXIiLGVtYWlsOiJkaWFuYUBjb21wYW55LmNvbSIsbG9jYXRpb246IkJhcmNlbG9uYSIsam9pbmVkOiIyMDIyLTA1LTE4In1dfQogICAgICAgICAgZGF0YU5hbWU9InRlYW0gbWVtYmVycyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEN1c3RvbSBEaXNwbGF5IEZ1bmN0aW9uPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+VHJhbnNmb3JtIGRhdGEgZm9yIGRpc3BsYXkgdXNpbmcgY3VzdG9tIGZvcm1hdHRpbmcuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iU2FsZXMgUmVwb3J0IgogICAgICAgICAgaGVhZGluZzI9IlE0IDIwMjMgUGVyZm9ybWFuY2UiCiAgICAgICAgICAuZGF0YT0ke1t7cHJvZHVjdDoiRW50ZXJwcmlzZSBMaWNlbnNlIix1bml0czo0NSxyZXZlbnVlOjIyNWUzLGdyb3d0aDouMjMsZm9yZWNhc3Q6MjhlNH0se3Byb2R1Y3Q6IlByb2Zlc3Npb25hbCBMaWNlbnNlIix1bml0czoxMjgscmV2ZW51ZToxMjhlMyxncm93dGg6LjE1LGZvcmVjYXN0OjE0N2UzfSx7cHJvZHVjdDoiU3RhcnRlciBMaWNlbnNlIix1bml0czozNDIscmV2ZW51ZTo2ODQwMCxncm93dGg6LjQyLGZvcmVjYXN0Ojk3ZTN9XX0KICAgICAgICAgIC5kaXNwbGF5RnVuY3Rpb249JHt0PT4oe1Byb2R1Y3Q6dC5wcm9kdWN0LCJVbml0cyBTb2xkIjp0LnVuaXRzLnRvTG9jYWxlU3RyaW5nKCksUmV2ZW51ZToiJCIrdC5yZXZlbnVlLnRvTG9jYWxlU3RyaW5nKCksR3Jvd3RoOih0Lmdyb3d0aCoxMDApLnRvRml4ZWQoMSkrIiUiLCJRMSAyMDI0IEZvcmVjYXN0IjoiJCIrdC5mb3JlY2FzdC50b0xvY2FsZVN0cmluZygpfSl9CiAgICAgICAgICBkYXRhTmFtZT0icHJvZHVjdHMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RW1wdHkgVGFibGUgU3RhdGU8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5Ib3cgdGhlIHRhYmxlIGxvb2tzIHdoZW4gbm8gZGF0YSBpcyBhdmFpbGFibGUuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iTm8gRGF0YSBBdmFpbGFibGUiCiAgICAgICAgICBoZWFkaW5nMj0iVGhpcyB0YWJsZSBpcyBjdXJyZW50bHkgZW1wdHkiCiAgICAgICAgICAuZGF0YT0ke1tdfQogICAgICAgICAgZGF0YU5hbWU9Iml0ZW1zIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNjaGVtYS1GaXJzdCBDb2x1bW5zIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+RGVmaW5lcyBjb2x1bW5zIGV4cGxpY2l0bHkgYW5kIHJlbmRlcnMgdmlhIHNjaGVtYS4gTm8gZGlzcGxheUZ1bmN0aW9uIG5lZWRlZC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJVc2VycyAoU2NoZW1hLUZpcnN0KSIKICAgICAgICAgIGhlYWRpbmcyPSJDb2x1bW5zIGRlZmluZSByZW5kZXJpbmcgYW5kIG9yZGVyIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwiLHJlbmRlcmVyOmkodD0+d2A8ZGVlcy1iYWRnZT4ke3R9PC9kZWVzLWJhZGdlPmAsInJlbmRlcmVyIil9LHtrZXk6ImpvaW5lZEF0IixoZWFkZXI6IkpvaW5lZCIscmVuZGVyZXI6aSh0PT5uZXcgRGF0ZSh0KS50b0xvY2FsZURhdGVTdHJpbmcoKSwicmVuZGVyZXIiKX1dfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIixlbWFpbDoiYWxpY2VAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIyLTA4LTAxIn0se25hbWU6IkJvYiIsZW1haWw6ImJvYkBleGFtcGxlLmNvbSIsam9pbmVkQXQ6IjIwMjEtMTItMTEifSx7bmFtZToiQ2Fyb2wiLGVtYWlsOiJjYXJvbEBleGFtcGxlLmNvbSIsam9pbmVkQXQ6IjIwMjMtMDMtMjIifV19CiAgICAgICAgICBkYXRhTmFtZT0idXNlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UGFydGlhbCBTY2hlbWEgKyBBdWdtZW50IChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+UHJvdmlkZXMgb25seSB0aGUgaW1wb3J0YW50IGNvbHVtbnM7IHRoZSByZXN0IGFyZSBtZXJnZWQgaW4gZnJvbSBkaXNwbGF5RnVuY3Rpb24uPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFBhcnRpYWwgKyBBdWdtZW50KSIKICAgICAgICAgIGhlYWRpbmcyPSJNaXNzaW5nIGNvbHVtbnMgYXJlIGRlcml2ZWQiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7dD0+KHtuYW1lOnQubmFtZSxlbWFpbDp0LmVtYWlsLHJvbGU6dC5yb2xlfSl9CiAgICAgICAgICAuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJFcmluIixlbWFpbDoiZXJpbkBleGFtcGxlLmNvbSIscm9sZToiQWRtaW4ifSx7bmFtZToiRmlubiIsZW1haWw6ImZpbm5AZXhhbXBsZS5jb20iLHJvbGU6IlVzZXIifSx7bmFtZToiR2luYSIsZW1haWw6ImdpbmFAZXhhbXBsZS5jb20iLHJvbGU6IlVzZXIifV19CiAgICAgICAgICBkYXRhTmFtZT0idXNlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iIAogICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHt0PT57Y29uc29sZS5sb2coIlNlbGVjdGlvbiBjaGFuZ2VkIix0LmRldGFpbCl9fQogICAgICAgICAgIEBzZWFyY2gtY2hhbmdlZD0ke3Q9PntsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFibGVGaWx0ZXJTZWxlY3REZW1vIik7ZSYmZS5zZXRGaWx0ZXJUZXh0KHQuZGV0YWlsLnZhbHVlKX19CiAgICAgICAgICAgQHNlYXJjaC1zdWJtaXQ9JHt0PT57bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO2UmJmUuc2V0RmlsdGVyVGV4dCh0LmRldGFpbC52YWx1ZSl9fQogICAgICA+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5GaWx0ZXJpbmcgKyBNdWx0aS1TZWxlY3Rpb24gKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5Vc2UgdGhlIHNlYXJjaCBiYXIgdG8gZmlsdGVyIHJvd3M7IHRvZ2dsZSBzZWxlY3Rpb24gdmlhIGNoZWNrYm94ZXMuIENsaWNrIGhlYWRlcnMgdG8gc29ydC48L3A+CiAgICAgICAgPGRlZXMtc2VhcmNoYmFyPjwvZGVlcy1zZWFyY2hiYXI+CiAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMnB4Ij48L2Rpdj4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaWQ9InRhYmxlRmlsdGVyU2VsZWN0RGVtbyIKICAgICAgICAgIGhlYWRpbmcxPSJJbnZlbnRvcnkgKEZpbHRlciArIFNlbGVjdCkiCiAgICAgICAgICBoZWFkaW5nMj0iVHJ5IHR5cGluZyB0byBmaWx0ZXIgYW5kIHNlbGVjdGluZyBtdWx0aXBsZSByb3dzIgogICAgICAgICAgLnNlbGVjdGlvbk1vZGU9JHsibXVsdGkifQogICAgICAgICAgLnJvd0tleT0keyJza3UifQogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToic2t1IixoZWFkZXI6IlNLVSIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InN0b2NrIixoZWFkZXI6IlN0b2NrIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe3NrdToiQS0xMDAiLG5hbWU6IlVTQi1DIENhYmxlIixzdG9jazoxMjB9LHtza3U6IkEtMTAxIixuYW1lOiJXaXJlbGVzcyBNb3VzZSIsc3RvY2s6NTV9LHtza3U6IkEtMTAyIixuYW1lOiJMYXB0b3AgU3RhbmQiLHN0b2NrOjE4fSx7c2t1OiJCLTIwMCIsbmFtZToiS2V5Ym9hcmQgKElTTykiLHN0b2NrOjg5fSx7c2t1OiJCLTIwMSIsbmFtZToiSERNSSBBZGFwdGVyIixzdG9jazowfSx7c2t1OiJDLTMwMCIsbmFtZToiV2ViY2FtIDEwODBwIixzdG9jazo0Mn1dfQogICAgICAgICAgZGF0YU5hbWU9Iml0ZW1zIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkNvbHVtbiBGaWx0ZXJzICsgU3RpY2t5IEhlYWRlciAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlBlci1jb2x1bW4gcXVpY2sgZmlsdGVycyBhbmQgc3RpY2t5IGhlYWRlciB3aXRoIGludGVybmFsIHNjcm9sbC4gVHJ5IGZpbHRlcmluZyB0aGUgTmFtZSBjb2x1bW4uIFVzZXMgLS10YWJsZS1tYXgtaGVpZ2h0IHZhci48L3A+CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgZGVlcy10YWJsZVtmaXhlZC1oZWlnaHRdIHsgLS10YWJsZS1tYXgtaGVpZ2h0OiAyMjBweDsgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJFbXBsb3llZXMiCiAgICAgICAgICBoZWFkaW5nMj0iUXVpY2sgZmlsdGVyIHBlciBjb2x1bW4gKyBzdGlja3kgaGVhZGVyIgogICAgICAgICAgLnNob3dDb2x1bW5GaWx0ZXJzPSR7ITB9CiAgICAgICAgICAuZml4ZWRIZWlnaHQ9JHshMH0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLGVtYWlsOiJhbGljZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiQm9iIFNtaXRoIixlbWFpbDoiYm9iQGNvcnAuY29tIixkZXBhcnRtZW50OiJTYWxlcyJ9LHtuYW1lOiJDaGFybGllIERhdmlzIixlbWFpbDoiY2hhcmxpZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiSFIifSx7bmFtZToiRGlhbmEgTWFydGluZXoiLGVtYWlsOiJkaWFuYUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiRXRoYW4gQnJvd24iLGVtYWlsOiJldGhhbkBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRmluYW5jZSJ9LHtuYW1lOiJGaW9uYSBDbGFyayIsZW1haWw6ImZpb25hQGNvcnAuY29tIixkZXBhcnRtZW50OiJTYWxlcyJ9LHtuYW1lOiJHcmFjZSBMZWUiLGVtYWlsOiJncmFjZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiSGVucnkgV2lsc29uIixlbWFpbDoiaGVucnlAY29ycC5jb20iLGRlcGFydG1lbnQ6Ik1hcmtldGluZyJ9LHtuYW1lOiJJcmVuZSBXYWxrZXIiLGVtYWlsOiJpcmVuZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRmluYW5jZSJ9LHtuYW1lOiJKYWNrIFR1cm5lciIsZW1haWw6ImphY2tAY29ycC5jb20iLGRlcGFydG1lbnQ6IlN1cHBvcnQifV19CiAgICAgICAgICBkYXRhTmFtZT0iZW1wbG95ZWVzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIgogICAgICAgIEBzZWFyY2hSZXF1ZXN0PSR7YXN5bmMgdD0+e2xldHtxdWVyeTplfT10LmRldGFpbHx8e3F1ZXJ5OiIifSxyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXJ2ZXJTZWFyY2hEZW1vIiksYT1be2lkOjEsbmFtZToiQWxpY2UiLGNpdHk6IkJlcmxpbiIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjIsbmFtZToiQm9iIixjaXR5OiJQYXJpcyIsdGl0bGU6IkRlc2lnbmVyIn0se2lkOjMsbmFtZToiQ2hhcmxpZSIsY2l0eToiTG9uZG9uIix0aXRsZToiTWFuYWdlciJ9LHtpZDo0LG5hbWU6IkRpYW5hIixjaXR5OiJNYWRyaWQiLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDo1LG5hbWU6IkV0aGFuIixjaXR5OiJSb21lIix0aXRsZToiU3VwcG9ydCJ9XTthd2FpdCBuZXcgUHJvbWlzZShvPT5zZXRUaW1lb3V0KG8sMzAwKSk7bGV0IHM9U3RyaW5nKGV8fCIiKS50b0xvd2VyQ2FzZSgpLG49cz9hLmZpbHRlcihvPT5PYmplY3QudmFsdWVzKG8pLnNvbWUobD0+U3RyaW5nKGwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocykpKTphO3IuZGF0YT1ufX0KICAgICAgPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+U2VydmVyIFNlYXJjaCAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlNlbGVjdCBTZXJ2ZXIgbW9kZSwgdHlwZSBhIHF1ZXJ5LCBhbmQgd2F0Y2ggdGhlIHRhYmxlIGZldGNoIHNpbXVsYXRlZCByZXN1bHRzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaWQ9InNlcnZlclNlYXJjaERlbW8iCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIChTZXJ2ZXIgU2VhcmNoKSIKICAgICAgICAgIGhlYWRpbmcyPSJDbGljayBTZWFyY2gsIGNob29zZSBTZXJ2ZXIgbW9kZSwgYW5kIHR5cGUiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUifSx7a2V5OiJjaXR5IixoZWFkZXI6IkNpdHkifSx7a2V5OiJ0aXRsZSIsaGVhZGVyOiJUaXRsZSJ9XX0KICAgICAgICAgIC5kYXRhPSR7W3tpZDoxLG5hbWU6IkFsaWNlIixjaXR5OiJCZXJsaW4iLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDoyLG5hbWU6IkJvYiIsY2l0eToiUGFyaXMiLHRpdGxlOiJEZXNpZ25lciJ9LHtpZDozLG5hbWU6IkNoYXJsaWUiLGNpdHk6IkxvbmRvbiIsdGl0bGU6Ik1hbmFnZXIifSx7aWQ6NCxuYW1lOiJEaWFuYSIsY2l0eToiTWFkcmlkIix0aXRsZToiRW5naW5lZXIifSx7aWQ6NSxuYW1lOiJFdGhhbiIsY2l0eToiUm9tZSIsdGl0bGU6IlN1cHBvcnQifV19CiAgICAgICAgICBkYXRhTmFtZT0icGVvcGxlIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpLUNvbHVtbiBTb3J0PC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDbGljayBhbnkgY29sdW1uIGhlYWRlciBmb3IgYSBzaW5nbGUtY29sdW1uIHNvcnQuIEhvbGQgU2hpZnQgd2hpbGUgY2xpY2tpbmcgdG8gYWRkIHRoZQogICAgICAgICAgY29sdW1uIHRvIGEgbXVsdGktc29ydCBjYXNjYWRlIChvciBjeWNsZSBpdHMgZGlyZWN0aW9uKS4gUmlnaHQtY2xpY2sgYW55IHNvcnRhYmxlIGhlYWRlcgogICAgICAgICAgdG8gb3BlbiBhIG1lbnUgd2hlcmUgeW91IGNhbiBwaW4gYSBjb2x1bW4gdG8gYSBzcGVjaWZpYyBwcmlvcml0eSBzbG90LCByZW1vdmUgaXQsIG9yCiAgICAgICAgICBjbGVhciB0aGUgY2FzY2FkZS4KICAgICAgICA8L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgRGlyZWN0b3J5IgogICAgICAgICAgaGVhZGluZzI9IlByZS1zZWVkZWQgd2l0aCBkZXBhcnRtZW50IOKWsiAxLCBuYW1lIOKWsiAyIgogICAgICAgICAgLnNvcnRCeT0ke1t7a2V5OiJkZXBhcnRtZW50IixkaXI6ImFzYyJ9LHtrZXk6Im5hbWUiLGRpcjoiYXNjIn1dfQogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiY3JlYXRlZEF0IixoZWFkZXI6IkNyZWF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsb2NhdGlvbiIsaGVhZGVyOiJMb2NhdGlvbiIsc29ydGFibGU6ITB9LHtrZXk6InN0YXR1cyIsaGVhZGVyOiJTdGF0dXMiLHNvcnRhYmxlOiEwfV19CiAgICAgICAgICAuZGF0YT0ke1t7ZGVwYXJ0bWVudDoiUiZEIixuYW1lOiJBbGljZSBKb2huc29uIixyb2xlOiJFbmdpbmVlciIsY3JlYXRlZEF0OiIyMDIzLTAxLTEyIixsb2NhdGlvbjoiQmVybGluIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJSJkQiLG5hbWU6IkRpYW5hIE1hcnRpbmV6Iixyb2xlOiJFbmdpbmVlciIsY3JlYXRlZEF0OiIyMDIwLTA2LTMwIixsb2NhdGlvbjoiTWFkcmlkIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJSJkQiLG5hbWU6Ik1hcmsgTGVlIixyb2xlOiJFbmdpbmVlciIsY3JlYXRlZEF0OiIyMDI0LTAzLTA0Iixsb2NhdGlvbjoiQmVybGluIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJEZXNpZ24iLG5hbWU6IkJvYiBTbWl0aCIscm9sZToiRGVzaWduZXIiLGNyZWF0ZWRBdDoiMjAyMi0xMS0wNSIsbG9jYXRpb246IlBhcmlzIixzdGF0dXM6IkFjdGl2ZSJ9LHtkZXBhcnRtZW50OiJEZXNpZ24iLG5hbWU6IlNhcmEgS2ltIixyb2xlOiJEZXNpZ25lciIsY3JlYXRlZEF0OiIyMDIxLTA4LTE5Iixsb2NhdGlvbjoiUGFyaXMiLHN0YXR1czoiT24gTGVhdmUifSx7ZGVwYXJ0bWVudDoiT3BzIixuYW1lOiJDaGFybGllIERhdmlzIixyb2xlOiJNYW5hZ2VyIixjcmVhdGVkQXQ6IjIwMjEtMDQtMjEiLGxvY2F0aW9uOiJMb25kb24iLHN0YXR1czoiT24gTGVhdmUifSx7ZGVwYXJ0bWVudDoiT3BzIixuYW1lOiJIZWxlbmEgVm9zcyIscm9sZToiU1JFIixjcmVhdGVkQXQ6IjIwMjMtMDctMjIiLGxvY2F0aW9uOiJMb25kb24iLHN0YXR1czoiQWN0aXZlIn0se2RlcGFydG1lbnQ6IlFBIixuYW1lOiJGaW9uYSBDbGFyayIscm9sZToiUUEiLGNyZWF0ZWRBdDoiMjAyMi0wMy0xNCIsbG9jYXRpb246IlZpZW5uYSIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiUUEiLG5hbWU6IlRvbVx4RTFzIFJpdmVyYSIscm9sZToiUUEiLGNyZWF0ZWRBdDoiMjAyNC0wMS0wOSIsbG9jYXRpb246Ik1hZHJpZCIsc3RhdHVzOiJBY3RpdmUifSx7ZGVwYXJ0bWVudDoiQ1MiLG5hbWU6IkV0aGFuIEJyb3duIixyb2xlOiJTdXBwb3J0IixjcmVhdGVkQXQ6IjIwMTktMDktMTgiLGxvY2F0aW9uOiJSb21lIixzdGF0dXM6IkluYWN0aXZlIn1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPldpZGUgUHJvcGVydGllcyArIE1hbnkgQWN0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkEgdGFibGUgd2l0aCBtYW55IGNvbHVtbnMgYW5kIHJpY2ggYWN0aW9ucyB0byBzdHJlc3MgdGVzdCBsYXlvdXQgYW5kIHN0aWNreSBBY3Rpb25zLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSBEaXJlY3RvcnkiCiAgICAgICAgICBoZWFkaW5nMj0iTWFueSBwcm9wZXJ0aWVzIGFuZCBhY3Rpb25zIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToiaWQiLGhlYWRlcjoiSUQiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJyb2xlIixoZWFkZXI6IlJvbGUiLHNvcnRhYmxlOiEwfSx7a2V5OiJkZXBhcnRtZW50IixoZWFkZXI6IkRlcGFydG1lbnQiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCJ9LHtrZXk6InBob25lIixoZWFkZXI6IlBob25lIn0se2tleToibG9jYXRpb24iLGhlYWRlcjoiTG9jYXRpb24iLHNvcnRhYmxlOiEwfSx7a2V5OiJzdGF0dXMiLGhlYWRlcjoiU3RhdHVzIixzb3J0YWJsZTohMH0se2tleToiY3JlYXRlZEF0IixoZWFkZXI6IkNyZWF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJ1cGRhdGVkQXQiLGhlYWRlcjoiVXBkYXRlZCIsc29ydGFibGU6ITB9LHtrZXk6Imxhc3RMb2dpbiIsaGVhZGVyOiJMYXN0IExvZ2luIixzb3J0YWJsZTohMH0se2tleToicHJvamVjdHMiLGhlYWRlcjoiUHJvamVjdHMifSx7a2V5OiJ0YWdzIixoZWFkZXI6IlRhZ3MifSx7a2V5OiJub3RlcyIsaGVhZGVyOiJOb3RlcyJ9XX0KICAgICAgICAgIC5kYXRhPSR7W3tpZDoxLG5hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJSJkQiLGVtYWlsOiJhbGljZUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExMSIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMy0wMS0xMiIsdXBkYXRlZEF0OiIyMDI0LTA1LTAzIixsYXN0TG9naW46IjIwMjQtMTAtMDEiLHByb2plY3RzOjUsdGFnczoidHlwZXNjcmlwdCwgdWkiLG5vdGVzOiJNZW50b3IifSx7aWQ6MixuYW1lOiJCb2IgU21pdGgiLHJvbGU6IkRlc2lnbmVyIixkZXBhcnRtZW50OiJEZXNpZ24iLGVtYWlsOiJib2JAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTIiLGxvY2F0aW9uOiJQYXJpcyIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMi0xMS0wNSIsdXBkYXRlZEF0OiIyMDI0LTA0LTEwIixsYXN0TG9naW46IjIwMjQtMDktMjgiLHByb2plY3RzOjgsdGFnczoiZmlnbWEsIGJyYW5kIixub3RlczoiUGFydC10aW1lIn0se2lkOjMsbmFtZToiQ2hhcmxpZSBEYXZpcyIscm9sZToiTWFuYWdlciIsZGVwYXJ0bWVudDoiT3BzIixlbWFpbDoiY2hhcmxpZUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExMyIsbG9jYXRpb246IkxvbmRvbiIsc3RhdHVzOiJPbiBMZWF2ZSIsY3JlYXRlZEF0OiIyMDIxLTA0LTIxIix1cGRhdGVkQXQ6IjIwMjQtMDItMTUiLGxhc3RMb2dpbjoiMjAyNC0wOC0xMiIscHJvamVjdHM6Myx0YWdzOiJzcmUsIGxlYWRlcnNoaXAiLG5vdGVzOiIifSx7aWQ6NCxuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRW5naW5lZXIiLGRlcGFydG1lbnQ6IlBsYXRmb3JtIixlbWFpbDoiZGlhbmFAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTQiLGxvY2F0aW9uOiJNYWRyaWQiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjAtMDYtMzAiLHVwZGF0ZWRBdDoiMjAyNC0wNi0yNSIsbGFzdExvZ2luOiIyMDI0LTEwLTAyIixwcm9qZWN0czo2LHRhZ3M6Im5vZGUsIGFwaSIsbm90ZXM6Ik9uLWNhbGwifSx7aWQ6NSxuYW1lOiJFdGhhbiBCcm93biIscm9sZToiU3VwcG9ydCIsZGVwYXJ0bWVudDoiQ1MiLGVtYWlsOiJldGhhbkBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExNSIsbG9jYXRpb246IlJvbWUiLHN0YXR1czoiSW5hY3RpdmUiLGNyZWF0ZWRBdDoiMjAxOS0wOS0xOCIsdXBkYXRlZEF0OiIyMDI0LTAzLTA5IixsYXN0TG9naW46IjIwMjQtMDYtMTkiLHByb2plY3RzOjIsdGFnczoiemVuZGVzayIsbm90ZXM6IlJlaGlyZSJ9LHtpZDo2LG5hbWU6IkZpb25hIENsYXJrIixyb2xlOiJRQSIsZGVwYXJ0bWVudDoiUUEiLGVtYWlsOiJmaW9uYUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExNiIsbG9jYXRpb246IlZpZW5uYSIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMi0wMy0xNCIsdXBkYXRlZEF0OiIyMDI0LTAzLTAxIixsYXN0TG9naW46IjIwMjQtMDktMDciLHByb2plY3RzOjcsdGFnczoicGxheXdyaWdodCIsbm90ZXM6IiJ9XX0KICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzppKGFzeW5jKHtpdGVtOnR9KT0+e2NvbnNvbGUubG9nKCJ2aWV3Iix0KX0sImFjdGlvbkZ1bmMiKX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJsdWNpZGU6ZWRpdCIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06dH0pPT57Y29uc29sZS5sb2coImVkaXQiLHQpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygiZGVsZXRlIix0KX0sImFjdGlvbkZ1bmMiKX0se25hbWU6Ik1lc3NhZ2UiLGljb25OYW1lOiJsdWNpZGU6bWVzc2FnZS1zcXVhcmUiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6aShhc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygibWVzc2FnZSIsdCl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJIaXN0b3J5IixpY29uTmFtZToibHVjaWRlOmNsb2NrIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06dH0pPT57Y29uc29sZS5sb2coImhpc3RvcnkiLHQpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiQWRkIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzppKGFzeW5jKHt0YWJsZTp0fSk9Pntjb25zb2xlLmxvZygiYWRkIil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJFeHBvcnQgQ1NWIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzppKGFzeW5jKHt0YWJsZTp0fSk9Pntjb25zb2xlLmxvZygiZXhwb3J0Iil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJCdWxrIERlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaC0yIix0eXBlOlsiZm9vdGVyIl0sYWN0aW9uRnVuYzppKGFzeW5jKHt0YWJsZTp0fSk9Pntjb25zb2xlLmxvZygiYnVsayBkZWxldGUiKX0sImFjdGlvbkZ1bmMiKX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNjcm9sbGFibGUgU21hbGwgSGVpZ2h0PC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+U2FtZSBhcyBhYm92ZSwgYnV0IHdpdGggbWFueSBpdGVtcyBhbmQgYSBzbWFsbCBmaXhlZCBoZWlnaHQgdG8gZm9yY2UgdmVydGljYWwgc2Nyb2xsaW5nIGluc2lkZSB0aGUgdGFibGUuIEFjdGlvbnMgcmVtYWluIHZpc2libGUgb24gdGhlIHJpZ2h0OyBob3Jpem9udGFsIHNjcm9sbCBhcHBlYXJzIGlmIG5lZWRlZC48L3A+CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgI3Njcm9sbFNtYWxsSGVpZ2h0IHsgLS10YWJsZS1tYXgtaGVpZ2h0OiAyNDBweDsgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJzY3JvbGxTbWFsbEhlaWdodCIKICAgICAgICAgIC5maXhlZEhlaWdodD0keyEwfQogICAgICAgICAgLnZpcnR1YWxpemVkPSR7ITB9CiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSAoU2Nyb2xsYWJsZSwgVmlydHVhbGl6ZWQpIgogICAgICAgICAgaGVhZGluZzI9IkZvcmNlZCBzY3JvbGxpbmcgd2l0aCBtYW55IGl0ZW1zIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToiaWQiLGhlYWRlcjoiSUQiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJyb2xlIixoZWFkZXI6IlJvbGUiLHNvcnRhYmxlOiEwfSx7a2V5OiJkZXBhcnRtZW50IixoZWFkZXI6IkRlcGFydG1lbnQiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCJ9LHtrZXk6InBob25lIixoZWFkZXI6IlBob25lIn0se2tleToibG9jYXRpb24iLGhlYWRlcjoiTG9jYXRpb24iLHNvcnRhYmxlOiEwfSx7a2V5OiJzdGF0dXMiLGhlYWRlcjoiU3RhdHVzIixzb3J0YWJsZTohMH0se2tleToiY3JlYXRlZEF0IixoZWFkZXI6IkNyZWF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJ1cGRhdGVkQXQiLGhlYWRlcjoiVXBkYXRlZCIsc29ydGFibGU6ITB9LHtrZXk6Imxhc3RMb2dpbiIsaGVhZGVyOiJMYXN0IExvZ2luIixzb3J0YWJsZTohMH0se2tleToicHJvamVjdHMiLGhlYWRlcjoiUHJvamVjdHMifSx7a2V5OiJ0YWdzIixoZWFkZXI6IlRhZ3MifSx7a2V5OiJub3RlcyIsaGVhZGVyOiJOb3RlcyJ9XX0KICAgICAgICAgIC5kYXRhPSR7QXJyYXkuZnJvbSh7bGVuZ3RoOjEwMH0sKHQsZSk9Pih7aWQ6ZSsxLG5hbWU6YFVzZXIgJHtlKzF9YCxyb2xlOlsiRW5naW5lZXIiLCJEZXNpZ25lciIsIk1hbmFnZXIiLCJRQSIsIlN1cHBvcnQiXVtlJTVdLGRlcGFydG1lbnQ6WyJSJkQiLCJEZXNpZ24iLCJPcHMiLCJRQSIsIkNTIl1bZSU1XSxlbWFpbDpgdXNlciR7ZSsxfUBjb3JwLmNvbWAscGhvbmU6YCsxIDIwMiA1NTUgJHtTdHJpbmcoMWUzK2UpLnNsaWNlKC00KX1gLGxvY2F0aW9uOlsiQmVybGluIiwiUGFyaXMiLCJMb25kb24iLCJNYWRyaWQiLCJSb21lIl1bZSU1XSxzdGF0dXM6WyJBY3RpdmUiLCJJbmFjdGl2ZSIsIk9uIExlYXZlIl1bZSUzXSxjcmVhdGVkQXQ6YDIwMjMtJHtTdHJpbmcoZSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKGUlMjgrMSkucGFkU3RhcnQoMiwiMCIpfWAsdXBkYXRlZEF0OmAyMDI0LSR7U3RyaW5nKChlKzMpJTEyKzEpLnBhZFN0YXJ0KDIsIjAiKX0tJHtTdHJpbmcoKGUrNyklMjgrMSkucGFkU3RhcnQoMiwiMCIpfWAsbGFzdExvZ2luOmAyMDI0LSR7U3RyaW5nKChlKzYpJTEyKzEpLnBhZFN0YXJ0KDIsIjAiKX0tJHtTdHJpbmcoKGUrMTApJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLHByb2plY3RzOmUlMTIsdGFnczplJTI/InR5cGVzY3JpcHQiOiJkZXNpZ24iLG5vdGVzOmUlMz8iIjoiTm90ZSJ9KSl9CiAgICAgICAgICAuZGF0YUFjdGlvbnM9JHtbe25hbWU6IlZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06dH0pPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiRWRpdCIsaWNvbk5hbWU6Imx1Y2lkZTplZGl0Iix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06dH0pPT57fSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmkoYXN5bmMoe2l0ZW06dH0pPT57fSwiYWN0aW9uRnVuYyIpfV19CiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjZGVtb0xpdmVGbGFzaCIpO2lmKCFlKXJldHVybjtlLl9fbGl2ZUZsYXNoVGltZXJJZCYmd2luZG93LmNsZWFySW50ZXJ2YWwoZS5fX2xpdmVGbGFzaFRpbWVySWQpO2xldCByPWkoKCk9PntpZighQXJyYXkuaXNBcnJheShlLmRhdGEpfHxlLmRhdGEubGVuZ3RoPT09MClyZXR1cm47bGV0IGE9ZS5kYXRhLm1hcChuPT4oey4uLm59KSkscz0xK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozKTtmb3IobGV0IG49MDtuPHM7bisrKXtsZXQgbz1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqYS5sZW5ndGgpLGw9KygoTWF0aC5yYW5kb20oKSoyLTEpKjMpLnRvRml4ZWQoMiksYz1NYXRoLm1heCgxLCsoYVtvXS5wcmljZStsKS50b0ZpeGVkKDIpKTthW29dPXsuLi5hW29dLHByaWNlOmMsY2hhbmdlOmwsdXBkYXRlZEF0Om5ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCl9fWUuZGF0YT1hfSwidGljayIpO2UuX19saXZlRmxhc2hUaW1lcklkPXdpbmRvdy5zZXRJbnRlcnZhbChyLDE1MDApfX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TGl2ZSBVcGRhdGVzIHdpdGggRmxhc2ggSGlnaGxpZ2h0aW5nPC9oMj4KICAgICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgT3B0LWluIGNlbGwtZmxhc2ggdmlhIDxjb2RlPmhpZ2hsaWdodC11cGRhdGVzPSJmbGFzaCI8L2NvZGU+LiBUaGUgdGlja2VyIGJlbG93IG11dGF0ZXMKICAgICAgICAgICAgcmFuZG9tIHJvd3MgZXZlcnkgMS41cyBhbmQgcmVhc3NpZ25zIDxjb2RlPi5kYXRhPC9jb2RlPi4gVXBkYXRlZCBjZWxscyBicmllZmx5IGZsYXNoCiAgICAgICAgICAgIGFtYmVyIGFuZCBmYWRlIG91dC4gUmVxdWlyZXMgPGNvZGU+cm93S2V5PC9jb2RlPiAoaGVyZSA8Y29kZT4ic3ltYm9sIjwvY29kZT4pLiBIb25vcnMKICAgICAgICAgICAgPGNvZGU+cHJlZmVycy1yZWR1Y2VkLW1vdGlvbjwvY29kZT4uIFJvdyBzZWxlY3Rpb24gcGVyc2lzdHMgYWNyb3NzIHVwZGF0ZXMg4oCUIGNsaWNrIGEKICAgICAgICAgICAgcm93LCB0aGVuIHdhdGNoIGl0IHN0YXkgc2VsZWN0ZWQgYXMgdGhlIGRhdGEgY2h1cm5zLgogICAgICAgICAgPC9wPgogICAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgICAgaWQ9ImRlbW9MaXZlRmxhc2giCiAgICAgICAgICAgIC5yb3dLZXk9JHsic3ltYm9sIn0KICAgICAgICAgICAgaGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIgogICAgICAgICAgICAuc2VsZWN0aW9uTW9kZT0keyJtdWx0aSJ9CiAgICAgICAgICAgIGhlYWRpbmcxPSJMaXZlIE1hcmtldCBGZWVkIgogICAgICAgICAgICBoZWFkaW5nMj0iRmxhc2hpbmcgY2VsbHMgaW5kaWNhdGUgdXBkYXRlZCB2YWx1ZXMiCiAgICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6InN5bWJvbCIsaGVhZGVyOiJTeW1ib2wiLHNvcnRhYmxlOiEwfSx7a2V5OiJwcmljZSIsaGVhZGVyOiJQcmljZSIsc29ydGFibGU6ITB9LHtrZXk6ImNoYW5nZSIsaGVhZGVyOiJcdTAzOTQiLHNvcnRhYmxlOiEwfSx7a2V5OiJ1cGRhdGVkQXQiLGhlYWRlcjoiVXBkYXRlZCJ9XX0KICAgICAgICAgICAgLmRhdGE9JHtbe3N5bWJvbDoiQUFQTCIscHJpY2U6MTgyLjUyLGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiTVNGVCIscHJpY2U6NDE0LjE4LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiR09PRyIscHJpY2U6MTY4Ljc0LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiQU1aTiIscHJpY2U6MTg2LjEzLGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In0se3N5bWJvbDoiVFNMQSIscHJpY2U6MjQ4LjUsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJOVkRBIixwcmljZTo4NzcuMzUsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJNRVRBIixwcmljZTo0OTIuOTYsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJORkxYIixwcmljZTo2MDUuODgsY2hhbmdlOjAsdXBkYXRlZEF0OiJcdTIwMTQifSx7c3ltYm9sOiJBTUQiLHByaWNlOjE2NS4yNCxjaGFuZ2U6MCx1cGRhdGVkQXQ6Ilx1MjAxNCJ9LHtzeW1ib2w6IklOVEMiLHByaWNlOjQyLjE1LGNoYW5nZTowLHVwZGF0ZWRBdDoiXHUyMDE0In1dfQogICAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgVFpyLExacj11KCgpPT57dmUoKTtfcygpO2x0KCk7VFpyPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmhlYWRpbmdDb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcxIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nMiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nU2VwYXJhdGlvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbnMgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb246aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuaGVhZGVyQWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLWdhcDogMTZweDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtYXgtY29udGVudDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIGxldCBzZWFyY2ggbW9kZSBzaXplIHRvIGNvbnRlbnQgKG5vIGZvcmNlZCB3aWR0aCkgKi8KCiAgICAgIC5zZWFyY2hHcmlkLmhpZGRlbiB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDBweCAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBtb2RlIChNb2RlIEIsIHBhZ2Ugc3RpY2t5KTogaG9yaXpvbnRhbCBzY3JvbGwgbGl2ZXMgb24KICAgICAgICAgLnRhYmxlU2Nyb2xsIChzbyB3aWRlIHRhYmxlcyBkb24ndCBnZXQgY2xpcHBlZCBieSBhbiBhbmNlc3RvcgogICAgICAgICBvdmVyZmxvdzpoaWRkZW4gc3VjaCBhcyBkZWVzLXRpbGUpLiBWZXJ0aWNhbCBzdGlja3kgaXMgaGFuZGxlZCBieQogICAgICAgICBhIEpTLW1hbmFnZWQgZmxvYXRpbmcgaGVhZGVyICguZmxvYXRpbmdIZWFkZXIsIHBvc2l0aW9uOmZpeGVkKSwKICAgICAgICAgd2hpY2ggaXMgdW5hZmZlY3RlZCBieSBhbmNlc3RvciBvdmVyZmxvdy4gKi8KICAgICAgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlOwogICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsKICAgICAgfQogICAgICAvKiBNb2RlIEEsIGludGVybmFsIHNjcm9sbDogb3B0LWluIHZpYSBmaXhlZC1oZWlnaHQgYXR0cmlidXRlLgogICAgICAgICBUaGUgdGFibGUgc2Nyb2xscyBpbnNpZGUgaXRzIG93biBib3ggYW5kIHRoZSBoZWFkZXIgc3RpY2tzIHZpYSBwbGFpbiBDU1Mgc3RpY2t5LiAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS10YWJsZS1tYXgtaGVpZ2h0LCAzNjBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlIGJvdGgtZWRnZXM7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIC50YWJsZVNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGhlYWRlciBvdmVybGF5IChNb2RlIEIpLiBQb3NpdGlvbiBpcyBtYW5hZ2VkIGJ5IEpTIHNvIGl0CiAgICAgICAgIGVzY2FwZXMgYW55IGFuY2VzdG9yIG92ZXJmbG93OmhpZGRlbiAocG9zaXRpb246Zml4ZWQgaXMgbm90IGNsaXBwZWQKICAgICAgICAgYnkgb3ZlcmZsb3cgYW5jZXN0b3JzKS4gKi8KICAgICAgLmZsb2F0aW5nSGVhZGVyIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIC5mbG9hdGluZ0hlYWRlci5hY3RpdmUgewogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRhYmxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgICAgLmZsb2F0aW5nSGVhZGVyIHRoIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIC8qIGFsbG93IHRhYmxlIHRvIGdyb3cgd2lkZXIgdGhhbiBjb250YWluZXIgc28gYWN0aW9ucyBjb2x1bW4gY2FuIHN0aWNrICovCiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OwogICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm5vRGF0YVNldCB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGhlYWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgIH0KICAgICAgLyogdGggbmVlZHMgaXRzIG93biBiYWNrZ3JvdW5kIHNvIHN0aWNreSBjZWxscyBwYWludCBvdmVyIHNjcm9sbGVkIHJvd3MKICAgICAgICAgKGJyb3dzZXJzIGRvbid0IHBhaW50IHRoZSA8dGhlYWQ+IGJveCBiZWhpbmQgYSBzdGlja3kgPHRoPikuICovCiAgICAgIHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CiAgICAgIC8qIE1vZGUgQSDigJQgaW50ZXJuYWwgc2Nyb2xsIHN0aWNreSAqLwogICAgICA6aG9zdChbZml4ZWQtaGVpZ2h0XSkgdGhlYWQgdGggewogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KICAgICAgOmhvc3QoW2ZpeGVkLWhlaWdodF0pIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggewogICAgICAgIHRvcDogMzZweDsgLyogbWF0Y2hlcyB0aCB7IGhlaWdodDogMzZweCB9IGJlbG93ICovCiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBEZWZhdWx0IGhvcml6b250YWwgbGluZXMgKGJvdHRvbSBib3JkZXIgb25seSkgKi8KICAgICAgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogRnVsbCBob3Jpem9udGFsIGxpbmVzIHdoZW4gZW5hYmxlZCAqLwogICAgICA6aG9zdChbc2hvdy1ob3Jpem9udGFsLWxpbmVzXSkgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjA2KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2x1bW4gaG92ZXIgZWZmZWN0IGZvciBiZXR0ZXIgdHJhY2VhYmlsaXR5ICovCiAgICAgIHRkIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIHRkOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4wNCkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA1KSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgdGQ6aG92ZXI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAvKiBHcmlkIG1vZGUgLSBzaG93cyBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGxpbmVzICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRkIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQgewogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFJlbW92ZSBlZGdlIGJvcmRlcnMgdGhhdCB3b3VsZCBkb3VibGUgd2l0aCB0aWxlIGZyYW1lICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICB9CiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAvKiBTdGlja3kgQWN0aW9ucyBjb2x1bW4gKHJpZ2h0IHBpbm5lZCkgKi8KICAgICAgdGhlYWQgdGguYWN0aW9uc0NvbCwKICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICB9CiAgICAgIHRoZWFkIHRoLmFjdGlvbnNDb2wgeyB6LWluZGV4OiAzOyB9CiAgICAgIHRib2R5IHRkLmFjdGlvbnNDb2wgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogLTFweCAwIDAgMCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xMikiKX07CiAgICAgIH0KCiAgICAgIHRib2R5IHRyLmhhc0F0dGFjaG1lbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICB0aFtyb2xlPSdjb2x1bW5oZWFkZXInXTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgdGggLnNvcnRBcnJvdyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICB0aCAuc29ydEJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDMwJSkiLCJoc2woMjE3LjIgOTEuMiUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xMikiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjE4KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoIHsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQgewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CiAgICAgIAogICAgICB0aDpmaXJzdC1jaGlsZCwKICAgICAgdGQ6Zmlyc3QtY2hpbGQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgdGg6bGFzdC1jaGlsZCwKICAgICAgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctdmVydGljYWwtbGluZXNdKSB0aDpsYXN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRkOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCBib3R0b20gYm9yZGVyIG9uIGxhc3Qgcm93IHJlbW92ZWQg4oCUIHRpbGUgZnJhbWUgaGFuZGxlcyBpdCAqLwogICAgICA6aG9zdCg6bm90KFtzaG93LWhvcml6b250YWwtbGluZXNdKSkgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIC0tLS0gQ2VsbCBmbGFzaCBoaWdobGlnaHRpbmcgKG9wdC1pbiB2aWEgaGlnaGxpZ2h0LXVwZGF0ZXM9ImZsYXNoIikgLS0tLQogICAgICAgICBCbG9vbWJlcmcvVHJhZGluZ1ZpZXctc3R5bGU6IHRoZSB0ZXh0IGl0c2VsZiBicmllZmx5IHRha2VzIGFuIGFjY2VudAogICAgICAgICBjb2xvciB0aGVuIGZhZGVzIGJhY2sgdG8gdGhlIGRlZmF1bHQuIE5vIGJhY2tncm91bmQgdGludCwgbm8gbGF5b3V0CiAgICAgICAgIHNoaWZ0LCBubyB3ZWlnaHQgY2hhbmdlLiBSZWFkYWJsZSwgbW9kZXJuLCBzdWJ0bGUuCiAgICAgICAgIENvbnN1bWVycyBjYW4gb3ZlcnJpZGUgcGVyIGluc3RhbmNlOgogICAgICAgICAgIGRlZXMtdGFibGUjbXlUYWJsZSB7IC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcjogaHNsKDE0MiA3NiUgNDAlKTsgfQogICAgICAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDMyIDk1JSA0NCUpIiwiaHNsKDQ1IDkzJSA2MiUpIil9OwogICAgICAgIC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmc6IGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKTsKICAgICAgfQoKICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBkZWVzLXRhYmxlLWNlbGwtZmxhc2gKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICB9CgogICAgICAvKiBIb2xkIHRoZSBhY2NlbnQgY29sb3IgYnJpZWZseSwgdGhlbiBmYWRlIGJhY2sgdG8gdGhlIHRoZW1lJ3MgZGVmYXVsdAogICAgICAgICB0ZXh0IGNvbG9yLiBJbmhlcml0cyB0byBjaGlsZCB0ZXh0IGFuZCB0byBTVkcgaWNvbnMgdGhhdCB1c2UKICAgICAgICAgY3VycmVudENvbG9yLiBDZWxscyB3aXRoIGV4cGxpY2l0IGNvbG9yIG92ZXJyaWRlcyBpbiByZW5kZXJlcnMgYXJlCiAgICAgICAgIGludGVudGlvbmFsbHkgdW5hZmZlY3RlZC4gKi8KICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2ggewogICAgICAgIDAlLAogICAgICAgIDM1JSB7IGNvbG9yOiB2YXIoLS1kZWVzLXRhYmxlLWZsYXNoLWNvbG9yKTsgfQogICAgICAgIDEwMCUgeyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyB9CiAgICAgIH0KCiAgICAgIC8qIEJvcmRlci9iYWNrZ3JvdW5kIGZsYXNoIHZhcmlhbnQgZm9yIGNlbGxzIHdpdGggc3R5bGVkIGNvbnRlbnQKICAgICAgICAgKGJhZGdlcywgaWNvbnMsIGN1c3RvbSBjb21wb25lbnRzKSB3aGVyZSBhIHRleHQtY29sb3IgYW5pbWF0aW9uCiAgICAgICAgIHdvdWxkIGJlIGludmlzaWJsZS4gQWN0aXZhdGVkIHZpYSBmbGFzaEJvcmRlciBvbiBDb2x1bW4uICovCiAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICBhbmltYXRpb246IGRlZXMtdGFibGUtY2VsbC1mbGFzaC1ib3JkZXIKICAgICAgICAgICAgICAgICAgIHZhcigtLWRlZXMtdGFibGUtZmxhc2gtZHVyYXRpb24sIDkwMG1zKQogICAgICAgICAgICAgICAgICAgdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1lYXNpbmcpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBkZWVzLXRhYmxlLWNlbGwtZmxhc2gtYm9yZGVyIHsKICAgICAgICAwJSwKICAgICAgICAzNSUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDQ1IDkzJSA2MiUgLyAwLjEwKSIsImhzbCg0NSA5MyUgNjIlIC8gMC4wOCkiKX07CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdHJhbnNwYXJlbnQ7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgICAgLmlubmVyQ2VsbENvbnRhaW5lci5mbGFzaGluZyB7CiAgICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy10YWJsZS1mbGFzaC1jb2xvcik7CiAgICAgICAgfQogICAgICAgIC5pbm5lckNlbGxDb250YWluZXIuZmxhc2hpbmctYm9yZGVyIHsKICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDEuNXB4IHZhcigtLWRlZXMtdGFibGUtZmxhc2gtY29sb3IpOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCg0NSA5MyUgNjIlIC8gMC4xMCkiLCJoc2woNDUgOTMlIDYyJSAvIDAuMDgpIil9OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogRGV2LXRpbWUgd2FybmluZyBiYW5uZXIgc2hvd24gd2hlbiBoaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giIGJ1dAogICAgICAgICByb3dLZXkgaXMgbWlzc2luZy4gQ29uc3VtZXJzIHNob3VsZCBuZXZlciBzaGlwIHRoaXMgdG8gcHJvZHVjdGlvbi4gKi8KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbjogOHB4IDE2cHggMDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woNDggOTYlIDYzJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCg0OCA5NiUgODklIC8gMC42KSIsImhzbCg0OCA5NiUgMzAlIC8gMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMzIgODElIDI5JSkiLCJoc2woNDggOTYlIDgwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIC5mbGFzaENvbmZpZ1dhcm5pbmcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgZmxleDogMCAwIGF1dG87CiAgICAgIH0KICAgICAgLmZsYXNoQ29uZmlnV2FybmluZyBjb2RlIHsKICAgICAgICBwYWRkaW5nOiAxcHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuNikiLCJoc2woMCAwJSAwJSAvIDAuMykiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLyogRWRpdGFibGUgY2VsbCBhZmZvcmRhbmNlcyAqLwogICAgICB0ZC5lZGl0YWJsZSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CiAgICAgIHRkLmZvY3VzZWQgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC42KSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuNikiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjYpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC42KSIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgICAgfQogICAgICB0ZC5lZGl0aW5nQ2VsbCAuaW5uZXJDZWxsQ29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KICAgICAgdGQuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC10ZXh0LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWNoZWNrYm94LAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRyb3Bkb3duLAogICAgICB0ZC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRhdGVwaWNrZXIsCiAgICAgIHRkLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtdGFncyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIGZpbHRlciByb3cgKi8KICAgICAgdGhlYWQgdHIuZmlsdGVyc1JvdyB0aCB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggMTJweCAxMnB4OwogICAgICB9CiAgICAgIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggaW5wdXRbdHlwZT0ndGV4dCddIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAuYWN0aW9uc0NvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDExLjglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGFibGVTdGF0aXN0aWNzIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICBgXX0pO3ZhciB0N3Q9dSgoKT0+e0ZwKCl9KTt2YXIgcjd0PXUoKCk9PntQcGUoKX0pO3ZhciBhN3Q9dSgoKT0+e1pwZSgpO0Y2dCgpfSk7dmFyIGk3dD11KCgpPT57WDZ0KCl9KTtmdW5jdGlvbiBzN3QodCxlKXtpZighZXx8ZS5sZW5ndGg9PT0wKXJldHVybltdO2xldCByPXQoZVswXSk7cmV0dXJuIE9iamVjdC5rZXlzKHIpLm1hcChzPT4oe2tleTpzLGhlYWRlcjpzLHZhbHVlOmkobj0+dChuKVtzXSwidmFsdWUiKX0pKX1mdW5jdGlvbiBEWnIodCxlLHIsYSl7bGV0IHM9KHR8fFtdKS5zbGljZSgpO2lmKCFlKXJldHVybiBzO2xldCBuPXM3dChyLGEpLG89bmV3IFNldChzLm1hcChsPT5TdHJpbmcobC5rZXkpKSk7Zm9yKGxldCBsIG9mIG4pby5oYXMoU3RyaW5nKGwua2V5KSl8fHMucHVzaChsKTtyZXR1cm4gc31mdW5jdGlvbiBzZih0LGUscil7cmV0dXJuIGUudmFsdWU/ZS52YWx1ZSh0KTp0W2Uua2V5XX1mdW5jdGlvbiBpRmEodCxlKXtpZih0PT1udWxsJiZlPT1udWxsKXJldHVybiAwO2lmKHQ9PW51bGwpcmV0dXJuLTE7aWYoZT09bnVsbClyZXR1cm4gMTtpZih0eXBlb2YgdD09Im51bWJlciImJnR5cGVvZiBlPT0ibnVtYmVyIilyZXR1cm4gdDxlPy0xOnQ+ZT8xOjA7bGV0IHI9U3RyaW5nKHQpLnRvTG93ZXJDYXNlKCksYT1TdHJpbmcoZSkudG9Mb3dlckNhc2UoKTtyZXR1cm4gcjxhPy0xOnI+YT8xOjB9ZnVuY3Rpb24gJFpyKHQsZSxyLGEscyxuPSJ0YWJsZSIsbyl7bGV0IGw9dC5zbGljZSgpLGM9KGF8fCIiKS50cmltKCkudG9Mb3dlckNhc2UoKSxkPXN8fHt9LGY9T2JqZWN0LmtleXMoZCkuZmlsdGVyKGg9PihkW2hdPz8iIikudHJpbSgpLmxlbmd0aD4wKTtpZigoY3x8Zi5sZW5ndGg+MCkmJihsPWwuZmlsdGVyKGg9Pntmb3IobGV0IG0gb2YgZilpZihuPT09ImRhdGEiKXtsZXQgdj1oW21dLGI9U3RyaW5nKHY/PyIiKS50b0xvd2VyQ2FzZSgpLGc9U3RyaW5nKGRbbV0pLnRvTG93ZXJDYXNlKCk7aWYoIWIuaW5jbHVkZXMoZykpcmV0dXJuITF9ZWxzZXtsZXQgdj1lLmZpbmQoaz0+U3RyaW5nKGsua2V5KT09PW0pO2lmKCF2fHx2LmhpZGRlbnx8di5maWx0ZXJhYmxlPT09ITEpY29udGludWU7bGV0IGI9c2YoaCx2KSxnPVN0cmluZyhiPz8iIikudG9Mb3dlckNhc2UoKSx5PVN0cmluZyhkW21dKS50b0xvd2VyQ2FzZSgpO2lmKCFnLmluY2x1ZGVzKHkpKXJldHVybiExfWlmKGMpe2lmKG8pcmV0dXJuISFvKGgpO2xldCBtPSExO2lmKG49PT0iZGF0YSIpe2ZvcihsZXQgdiBvZiBPYmplY3QudmFsdWVzKGgpKWlmKFN0cmluZyh2Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjKSl7bT0hMDticmVha319ZWxzZSBmb3IobGV0IHYgb2YgZSl7aWYodi5oaWRkZW4pY29udGludWU7bGV0IGI9c2YoaCx2KTtpZihTdHJpbmcoYj8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYykpe209ITA7YnJlYWt9fWlmKCFtKXJldHVybiExfXJldHVybiEwfSkpLCFyfHxyLmxlbmd0aD09PTApcmV0dXJuIGw7bGV0IHA9ci5tYXAoaD0+KHtkZXNjOmgsY29sOmUuZmluZChtPT5TdHJpbmcobS5rZXkpPT09aC5rZXkpfSkpLmZpbHRlcihoPT4hIWguY29sKTtyZXR1cm4gcC5sZW5ndGg9PT0wfHxsLnNvcnQoKGgsbSk9Pntmb3IobGV0e2Rlc2M6dixjb2w6Yn1vZiBwKXtsZXQgZz1pRmEoc2YoaCxiKSxzZihtLGIpKTtpZihnIT09MClyZXR1cm4gdi5kaXI9PT0iYXNjIj9nOi1nfXJldHVybiAwfSksbH12YXIgQVpyPXUoKCk9PntpKHM3dCwiY29tcHV0ZUNvbHVtbnNGcm9tRGlzcGxheUZ1bmN0aW9uIik7aShEWnIsImNvbXB1dGVFZmZlY3RpdmVDb2x1bW5zIik7aShzZiwiZ2V0Q2VsbFZhbHVlIik7aShpRmEsImNvbXBhcmVDZWxsVmFsdWVzIik7aSgkWnIsImdldFZpZXdEYXRhIil9KTtmdW5jdGlvbiBfNmUodCl7cmV0dXJuIHQuc3RhcnRzV2l0aCgnIicpJiZ0LmVuZHNXaXRoKCciJyl8fHQuc3RhcnRzV2l0aCgiJyIpJiZ0LmVuZHNXaXRoKCInIik/dC5zbGljZSgxLC0xKTp0fWZ1bmN0aW9uIHNGYSh0KXtyZXR1cm4gdC5zcGxpdCgvXHMrT1JccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gbkZhKHQpe3JldHVybiB0LnNwbGl0KC9ccytBTkRccysvaSkubWFwKGU9PmUudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gb0ZhKHQpe2lmKCF0KXJldHVybiBudWxsO2xldCBlPSExLHI9dC5tYXRjaCgvXlxzKihOT1Rccyt8LSlccyooLiopJC9pKTtyJiYoZT0hMCx0PXJbMl0pO2xldCBhPXQubWF0Y2goL14oW146XHNdKylccyo6XHMqXFsoLio/KVxzK1RPXHMrKC4qPylcXSQvaSk7aWYoYSlyZXR1cm57ZmllbGQ6YVsxXSxuZWdhdGU6ZSxyYW5nZTp7bG93ZXI6XzZlKGFbMl0pLnRvTG93ZXJDYXNlKCksdXBwZXI6XzZlKGFbM10pLnRvTG93ZXJDYXNlKCksaW5jbHVzaXZlOiEwfX07bGV0IHM9dC5tYXRjaCgvXihbXjpcc10rKVxzKjpccyooIlteIl0qInwnW14nXSonfFteIidcc10rKSQvKTtyZXR1cm4gcz97ZmllbGQ6c1sxXSx2YWx1ZTpfNmUoc1syXSkudG9Mb3dlckNhc2UoKSxuZWdhdGU6ZX06dC5sZW5ndGg+MD97dmFsdWU6XzZlKHQpLnRvTG93ZXJDYXNlKCksbmVnYXRlOmV9Om51bGx9ZnVuY3Rpb24gbEZhKHQpe2lmKCF0KXJldHVybiBudWxsO2xldCBlPXNGYSh0KS5tYXAocj0+KHt0ZXJtczpuRmEocikubWFwKG9GYSkuZmlsdGVyKHM9PiEhcyYmISFzLnZhbHVlKX0pKS5maWx0ZXIocj0+ci50ZXJtcy5sZW5ndGg+MCk7cmV0dXJuIGUubGVuZ3RoPT09MD9udWxsOntjbGF1c2VzOmV9fWZ1bmN0aW9uIEVacih0LGUscil7bGV0IGE9bEZhKHQpO2lmKCFhKXJldHVybiBudWxsO2xldCBzPW5ldyBNYXAoci5tYXAoYz0+W1N0cmluZyhjLmtleSksY10pKSxuPWkoKGMsZCk9PmM8ZD8tMTpjPmQ/MTowLCJjbXAiKSxvPWkoYz0+e2xldCBkPVN0cmluZyhjPz8iIikudG9Mb3dlckNhc2UoKSxmPU51bWJlcihkKSxwPURhdGUucGFyc2UoZCk7cmV0dXJuIU51bWJlci5pc05hTihmKSYmZC50cmltKCkhPT0iIj97dDoibiIsdjpmfTpOdW1iZXIuaXNOYU4ocCk/e3Q6InMiLHY6ZH06e3Q6ImQiLHY6cH19LCJjb2VyY2UiKSxsPWkoKGMsZCxmKT0+e2xldCBwPW8oYyksaD1vKGQpLG09byhmKTtpZihwLnQ9PT0icyImJmgudD09PSJzIiYmbS50PT09InMiKXtsZXQgYj1wLnY7cmV0dXJuIG4oYixoLnYpPj0wJiZuKGIsbS52KTw9MH1pZihwLnQ9PT0ibiImJmgudD09PSJuIiYmbS50PT09Im4iKXtsZXQgYj1wLnY7cmV0dXJuIGI+PWgudiYmYjw9bS52fWlmKHAudD09PSJkIiYmaC50PT09ImQiJiZtLnQ9PT0iZCIpe2xldCBiPXAudjtyZXR1cm4gYj49aC52JiZiPD1tLnZ9bGV0IHY9U3RyaW5nKGM/PyIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBuKHYsZCk+PTAmJm4odixmKTw9MH0sImluUmFuZ2UiKTtyZXR1cm4gYz0+e2ZvcihsZXQgZCBvZiBhLmNsYXVzZXMpe2xldCBmPSEwO2ZvcihsZXQgcCBvZiBkLnRlcm1zKXtsZXQgaD0hMTtpZihwLnJhbmdlJiZwLmZpZWxkKWlmKGU9PT0iZGF0YSIpaD1sKGNbcC5maWVsZF0scC5yYW5nZS5sb3dlcixwLnJhbmdlLnVwcGVyKTtlbHNle2xldCBtPXMuZ2V0KHAuZmllbGQpO2lmKCFtfHxtLmhpZGRlbiloPSExO2Vsc2V7bGV0IHY9bS52YWx1ZT9tLnZhbHVlKGMpOmNbbS5rZXldO2g9bCh2LHAucmFuZ2UubG93ZXIscC5yYW5nZS51cHBlcil9fWVsc2UgaWYocC5maWVsZCYmcC52YWx1ZSE9bnVsbClpZihlPT09ImRhdGEiKWg9U3RyaW5nKGNbcC5maWVsZF0/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHAudmFsdWUpO2Vsc2V7bGV0IG09cy5nZXQocC5maWVsZCk7aWYoIW18fG0uaGlkZGVuPT09ITApaD0hMTtlbHNle2xldCB2PW0udmFsdWU/bS52YWx1ZShjKTpjW20ua2V5XTtoPVN0cmluZyh2Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhwLnZhbHVlKX19ZWxzZSBwLnZhbHVlIT1udWxsJiYoZT09PSJkYXRhIj9oPU9iamVjdC52YWx1ZXMoYykuc29tZShtPT5TdHJpbmcobT8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocC52YWx1ZSkpOmg9ci5zb21lKG09PntpZihtLmhpZGRlbilyZXR1cm4hMTtsZXQgdj1tLnZhbHVlP20udmFsdWUoYyk6Y1ttLmtleV07cmV0dXJuIFN0cmluZyh2Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhwLnZhbHVlKX0pKTtpZihwLm5lZ2F0ZSYmKGg9IWgpLCFoKXtmPSExO2JyZWFrfX1pZihmKXJldHVybiEwfXJldHVybiExfX12YXIgSVpyPXUoKCk9PntpKF82ZSwic3RyaXBRdW90ZXMiKTtpKHNGYSwic3BsaXRCeU9yIik7aShuRmEsInNwbGl0QnlBbmQiKTtpKG9GYSwicGFyc2VUZXJtIik7aShsRmEsInBhcnNlTHVjZW5lIik7aShFWnIsImNvbXBpbGVMdWNlbmVQcmVkaWNhdGUiKX0pO2Z1bmN0aW9uIGNGYSh0KXtsZXQgZT1bInRoIiwic3QiLCJuZCIsInJkIl0scj10JTEwMDtyZXR1cm4gdCsoZVsoci0yMCklMTBdfHxlW3JdfHxlWzBdKX12YXIgcXIsZ3QsVDZlLGU3dD11KCgpPT57dm4oKTtfWnIoKTt2ZSgpO3NzKCk7UTQoKTtNcigpO0tyKCk7TFpyKCk7dDd0KCk7cjd0KCk7YTd0KCk7cXBlKCk7aTd0KCk7QVpyKCk7SVpyKCk7bHQoKTtucygpO3FyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxndD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH07aShjRmEsIm9yZGluYWxMYWJlbCIpO1Q2ZT0oKCk9PntsZXQgdD1bdWUoImRlZXMtdGFibGUiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdLHhlLEs9W10sVj1bXSxsZSxuZT1bXSxlZT1bXSx6ZSxIZT1bXSxHZT1bXSxvdCxEZT1bXSxfZT1bXSxvZSxzZT1bXSxjZT1bXSxUZSxxZT1bXSxudD1bXSx2dCxMZT1bXSx3ZT1bXSxPZSxnZT1bXSxiZT1bXSxJZSx5dD1bXSx3dD1bXSxZdCx6YT1bXSxQYT1bXSxZaSxFZT1bXSxqZT1bXSxzcixyYT1bXSxwYT1bXSx5YSxmYT1bXSxDbj1bXSx6bixBZT1bXSxDZT1bXSxZZSxEcj1bXSxFcz1bXSxMZCxrZT1bXSxoZT1bXSwkZSxldD1bXSxQdD1bXSxJcyxLaT1bXSxEbz1bXSxtMixxYz1bXSxEZD1bXSxnMixfZj1bXSxlaz1bXSx0ayxyaz1bXSxhaz1bXSxpayxzaz1bXSxuaz1bXTt2YXIgb2s9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNUYWJsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBSPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6QXJyYXl9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpTdHJpbmd9KV0sTj1bUCh7dHlwZTpCb29sZWFufSldLE89W1Aoe3R5cGU6Qm9vbGVhbn0pXSxCPVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLEE9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxZPVtQKHt0eXBlOkFycmF5fSldLGRlPVtQKHthdHRyaWJ1dGU6ITF9KV0sZmU9W1Aoe2F0dHJpYnV0ZTohMX0pXSxwZT1bUCh7dHlwZTpCb29sZWFufSldLEg9W1Aoe2F0dHJpYnV0ZTohMX0pXSxhZT1bUCh7YXR0cmlidXRlOiExfSldLHhlPVtQKHt0eXBlOk9iamVjdH0pXSxsZT1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LXZlcnRpY2FsLWxpbmVzIn0pXSx6ZT1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LWhvcml6b250YWwtbGluZXMifSldLG90PVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InNob3ctZ3JpZCJ9KV0sb2U9W1Aoe2F0dHJpYnV0ZTohMX0pXSxUZT1bUCh7dHlwZTpTdHJpbmd9KV0sdnQ9W1Aoe2F0dHJpYnV0ZTohMX0pXSxPZT1bUCh7dHlwZTpCb29sZWFuLGF0dHJpYnV0ZToic2hvdy1jb2x1bW4tZmlsdGVycyJ9KV0sSWU9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1zZWxlY3Rpb24tY2hlY2tib3gifSldLFl0PVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InZpcnR1YWxpemVkIn0pXSxZaT1bUCh7dHlwZTpOdW1iZXIsYXR0cmlidXRlOiJ2aXJ0dWFsLW92ZXJzY2FuIn0pXSxzcj1bUCh7dHlwZTpTdHJpbmcsYXR0cmlidXRlOiJoaWdobGlnaHQtdXBkYXRlcyJ9KV0seWE9W1Aoe3R5cGU6TnVtYmVyLGF0dHJpYnV0ZToiaGlnaGxpZ2h0LWR1cmF0aW9uIn0pXSx6bj1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJmaXhlZC1oZWlnaHQifSldLFllPVtQKHt0eXBlOlN0cmluZ30pXSxMZD1bUCh7dHlwZTpTdHJpbmd9KV0sJGU9W1Aoe2F0dHJpYnV0ZTohMX0pXSxJcz1baWUoKV0sbTI9W2llKCldLGcyPVtpZSgpXSx0az1baWUoKV0saWs9W2llKCldLHFyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZzEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImhlYWRpbmcxImluIEksImhhcyIpLGdldDppKEk9PkkuaGVhZGluZzEsImdldCIpLHNldDppKChJLHRlKT0+e0kuaGVhZGluZzE9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sbyxsKSxxcih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmcyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJoZWFkaW5nMiJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmhlYWRpbmcyLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmhlYWRpbmcyPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGQsZikscXIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJkYXRhImluIEksImhhcyIpLGdldDppKEk9PkkuZGF0YSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5kYXRhPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGgsbSkscXIodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJrZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImtleSJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmtleSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5rZXk9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sYixnKSxxcih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJsYWJlbCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmxhYmVsLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmxhYmVsPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGssTSkscXIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iZGlzYWJsZWQiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5kaXNhYmxlZCwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5kaXNhYmxlZD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxfLFMpLHFyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InJlcXVpcmVkImluIEksImhhcyIpLGdldDppKEk9PkkucmVxdWlyZWQsImdldCIpLHNldDppKChJLHRlKT0+e0kucmVxdWlyZWQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sTCxFKSxxcih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGFOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJkYXRhTmFtZSJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmRhdGFOYW1lLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmRhdGFOYW1lPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEMseikscXIodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJzZWFyY2hhYmxlImluIEksImhhcyIpLGdldDppKEk9Pkkuc2VhcmNoYWJsZSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWFyY2hhYmxlPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LCQsRikscXIodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhQWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iZGF0YUFjdGlvbnMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5kYXRhQWN0aW9ucywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5kYXRhQWN0aW9ucz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxHLFopLHFyKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImNvbHVtbnMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5jb2x1bW5zLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmNvbHVtbnM9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sRCxRKSxxcih0aGlzLG51bGwsZmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3dLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InJvd0tleSJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLnJvd0tleSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5yb3dLZXk9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sVCxXKSxxcih0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24iaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbj10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxtZSxxKSxxcih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc3BsYXlGdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iZGlzcGxheUZ1bmN0aW9uImluIEksImhhcyIpLGdldDppKEk9PkkuZGlzcGxheUZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmRpc3BsYXlGdW5jdGlvbj10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxVLGopLHFyKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJldmVyc2VEaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InJldmVyc2VEaXNwbGF5RnVuY3Rpb24iaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5yZXZlcnNlRGlzcGxheUZ1bmN0aW9uLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnJldmVyc2VEaXNwbGF5RnVuY3Rpb249dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sWCxKKSxxcih0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERhdGFSb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNlbGVjdGVkRGF0YVJvdyJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLnNlbGVjdGVkRGF0YVJvdywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWxlY3RlZERhdGFSb3c9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sSyxWKSxxcih0aGlzLG51bGwsbGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VmVydGljYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic2hvd1ZlcnRpY2FsTGluZXMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zaG93VmVydGljYWxMaW5lcywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zaG93VmVydGljYWxMaW5lcz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxuZSxlZSkscXIodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0hvcml6b250YWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic2hvd0hvcml6b250YWxMaW5lcyJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLnNob3dIb3Jpem9udGFsTGluZXMsImdldCIpLHNldDppKChJLHRlKT0+e0kuc2hvd0hvcml6b250YWxMaW5lcz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxIZSxHZSkscXIodGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0dyaWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNob3dHcmlkImluIEksImhhcyIpLGdldDppKEk9Pkkuc2hvd0dyaWQsImdldCIpLHNldDppKChJLHRlKT0+e0kuc2hvd0dyaWQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sRGUsX2UpLHFyKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRCeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic29ydEJ5ImluIEksImhhcyIpLGdldDppKEk9Pkkuc29ydEJ5LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnNvcnRCeT10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxzZSxjZSkscXIodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iZmlsdGVyVGV4dCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmZpbHRlclRleHQsImdldCIpLHNldDppKChJLHRlKT0+e0kuZmlsdGVyVGV4dD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxxZSxudCkscXIodGhpcyxudWxsLHZ0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1uRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iY29sdW1uRmlsdGVycyJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmNvbHVtbkZpbHRlcnMsImdldCIpLHNldDppKChJLHRlKT0+e0kuY29sdW1uRmlsdGVycz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxMZSx3ZSkscXIodGhpcyxudWxsLE9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbHVtbkZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNob3dDb2x1bW5GaWx0ZXJzImluIEksImhhcyIpLGdldDppKEk9Pkkuc2hvd0NvbHVtbkZpbHRlcnMsImdldCIpLHNldDppKChJLHRlKT0+e0kuc2hvd0NvbHVtbkZpbHRlcnM9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sZ2UsYmUpLHFyKHRoaXMsbnVsbCxJZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTZWxlY3Rpb25DaGVja2JveCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic2hvd1NlbGVjdGlvbkNoZWNrYm94ImluIEksImhhcyIpLGdldDppKEk9Pkkuc2hvd1NlbGVjdGlvbkNoZWNrYm94LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnNob3dTZWxlY3Rpb25DaGVja2JveD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSx5dCx3dCkscXIodGhpcyxudWxsLFl0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlydHVhbGl6ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InZpcnR1YWxpemVkImluIEksImhhcyIpLGdldDppKEk9PkkudmlydHVhbGl6ZWQsImdldCIpLHNldDppKChJLHRlKT0+e0kudmlydHVhbGl6ZWQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0semEsUGEpLHFyKHRoaXMsbnVsbCxZaSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpcnR1YWxPdmVyc2NhbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4idmlydHVhbE92ZXJzY2FuImluIEksImhhcyIpLGdldDppKEk9PkkudmlydHVhbE92ZXJzY2FuLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnZpcnR1YWxPdmVyc2Nhbj10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxFZSxqZSkscXIodGhpcyxudWxsLHNyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0VXBkYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iaGlnaGxpZ2h0VXBkYXRlcyJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmhpZ2hsaWdodFVwZGF0ZXMsImdldCIpLHNldDppKChJLHRlKT0+e0kuaGlnaGxpZ2h0VXBkYXRlcz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxyYSxwYSkscXIodGhpcyxudWxsLHlhLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0RHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImhpZ2hsaWdodER1cmF0aW9uImluIEksImhhcyIpLGdldDppKEk9PkkuaGlnaGxpZ2h0RHVyYXRpb24sImdldCIpLHNldDppKChJLHRlKT0+e0kuaGlnaGxpZ2h0RHVyYXRpb249dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sZmEsQ24pLHFyKHRoaXMsbnVsbCx6bix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpeGVkSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJmaXhlZEhlaWdodCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmZpeGVkSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmZpeGVkSGVpZ2h0PXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEFlLENlKSxxcih0aGlzLG51bGwsWWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJzZWFyY2hNb2RlImluIEksImhhcyIpLGdldDppKEk9Pkkuc2VhcmNoTW9kZSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWFyY2hNb2RlPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LERyLEVzKSxxcih0aGlzLG51bGwsTGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3Rpb25Nb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJzZWxlY3Rpb25Nb2RlImluIEksImhhcyIpLGdldDppKEk9Pkkuc2VsZWN0aW9uTW9kZSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWxlY3Rpb25Nb2RlPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGtlLGhlKSxxcih0aGlzLG51bGwsJGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZElkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic2VsZWN0ZWRJZHMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zZWxlY3RlZElkcywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWxlY3RlZElkcz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxldCxQdCkscXIodGhpcyxudWxsLElzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19mb2N1c2VkQ2VsbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iX19mb2N1c2VkQ2VsbCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLl9fZm9jdXNlZENlbGwsImdldCIpLHNldDppKChJLHRlKT0+e0kuX19mb2N1c2VkQ2VsbD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxLaSxEbykscXIodGhpcyxudWxsLG0yLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19lZGl0aW5nQ2VsbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iX19lZGl0aW5nQ2VsbCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLl9fZWRpdGluZ0NlbGwsImdldCIpLHNldDppKChJLHRlKT0+e0kuX19lZGl0aW5nQ2VsbD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxxYyxEZCkscXIodGhpcyxudWxsLGcyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19mbG9hdGluZ0FjdGl2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iX19mbG9hdGluZ0FjdGl2ZSJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLl9fZmxvYXRpbmdBY3RpdmUsImdldCIpLHNldDppKChJLHRlKT0+e0kuX19mbG9hdGluZ0FjdGl2ZT10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxfZixlaykscXIodGhpcyxudWxsLHRrLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiX19mbGFzaGluZ0NlbGxzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJfX2ZsYXNoaW5nQ2VsbHMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5fX2ZsYXNoaW5nQ2VsbHMsImdldCIpLHNldDppKChJLHRlKT0+e0kuX19mbGFzaGluZ0NlbGxzPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LHJrLGFrKSxxcih0aGlzLG51bGwsaWsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJfX3ZpcnR1YWxSYW5nZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iX192aXJ0dWFsUmFuZ2UiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5fX3ZpcnR1YWxSYW5nZSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5fX3ZpcnR1YWxSYW5nZT10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxzayxuaykscXIobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Un0sbnVsbCxyKSxvaz1hPWUudmFsdWUsUiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpSfSl9c3RhdGljIGRlbW89elpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9Z3QodGhpcyxvLCJoZWFkaW5nIDEiKTtnZXQgaGVhZGluZzEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZzEoUil7dGhpcy4jZT1SfSN0PShndCh0aGlzLGwpLGd0KHRoaXMsZCwiaGVhZGluZyAyIikpO2dldCBoZWFkaW5nMigpe3JldHVybiB0aGlzLiN0fXNldCBoZWFkaW5nMihSKXt0aGlzLiN0PVJ9I3I9KGd0KHRoaXMsZiksZ3QodGhpcyxoLFtdKSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZGF0YShSKXt0aGlzLiNyPVJ9I2E9KGd0KHRoaXMsbSksZ3QodGhpcyxiLHZvaWQgMCkpO2dldCBrZXkoKXtyZXR1cm4gdGhpcy4jYX1zZXQga2V5KFIpe3RoaXMuI2E9Un0jaT0oZ3QodGhpcyxnKSxndCh0aGlzLGssdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhYmVsKFIpe3RoaXMuI2k9Un0jcz0oZ3QodGhpcyxNKSxndCh0aGlzLF8sITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgZGlzYWJsZWQoUil7dGhpcy4jcz1SfSNuPShndCh0aGlzLFMpLGd0KHRoaXMsTCwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNufXNldCByZXF1aXJlZChSKXt0aGlzLiNuPVJ9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGF0YX1zZXQgdmFsdWUoUil7fWNoYW5nZVN1YmplY3Q9KGd0KHRoaXMsRSksbmV3IGNyLnNtYXJ0cngucnhqcy5TdWJqZWN0KTsjbz1ndCh0aGlzLEMsdm9pZCAwKTtnZXQgZGF0YU5hbWUoKXtyZXR1cm4gdGhpcy4jb31zZXQgZGF0YU5hbWUoUil7dGhpcy4jbz1SfSNsPShndCh0aGlzLHopLGd0KHRoaXMsJCwhMCkpO2dldCBzZWFyY2hhYmxlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNlYXJjaGFibGUoUil7dGhpcy4jbD1SfSNjPShndCh0aGlzLEYpLGd0KHRoaXMsRyxbXSkpO2dldCBkYXRhQWN0aW9ucygpe3JldHVybiB0aGlzLiNjfXNldCBkYXRhQWN0aW9ucyhSKXt0aGlzLiNjPVJ9I2Q9KGd0KHRoaXMsWiksZ3QodGhpcyxELFtdKSk7Z2V0IGNvbHVtbnMoKXtyZXR1cm4gdGhpcy4jZH1zZXQgY29sdW1ucyhSKXt0aGlzLiNkPVJ9I3U9KGd0KHRoaXMsUSksZ3QodGhpcyxULHZvaWQgMCkpO2dldCByb3dLZXkoKXtyZXR1cm4gdGhpcy4jdX1zZXQgcm93S2V5KFIpe3RoaXMuI3U9Un0jcD0oZ3QodGhpcyxXKSxndCh0aGlzLG1lLCExKSk7Z2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKFIpe3RoaXMuI3A9Un0jZj0oZ3QodGhpcyxxKSxndCh0aGlzLFUsUj0+UikpO2dldCBkaXNwbGF5RnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4jZn1zZXQgZGlzcGxheUZ1bmN0aW9uKFIpe3RoaXMuI2Y9Un0jaD0oZ3QodGhpcyxqKSxndCh0aGlzLFgsUj0+UikpO2dldCByZXZlcnNlRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHJldmVyc2VEaXNwbGF5RnVuY3Rpb24oUil7dGhpcy4jaD1SfSNtPShndCh0aGlzLEopLGd0KHRoaXMsSyx2b2lkIDApKTtnZXQgc2VsZWN0ZWREYXRhUm93KCl7cmV0dXJuIHRoaXMuI219c2V0IHNlbGVjdGVkRGF0YVJvdyhSKXt0aGlzLiNtPVJ9I2c9KGd0KHRoaXMsViksZ3QodGhpcyxuZSwhMSkpO2dldCBzaG93VmVydGljYWxMaW5lcygpe3JldHVybiB0aGlzLiNnfXNldCBzaG93VmVydGljYWxMaW5lcyhSKXt0aGlzLiNnPVJ9I2I9KGd0KHRoaXMsZWUpLGd0KHRoaXMsSGUsITEpKTtnZXQgc2hvd0hvcml6b250YWxMaW5lcygpe3JldHVybiB0aGlzLiNifXNldCBzaG93SG9yaXpvbnRhbExpbmVzKFIpe3RoaXMuI2I9Un0jeD0oZ3QodGhpcyxHZSksZ3QodGhpcyxEZSwhMCkpO2dldCBzaG93R3JpZCgpe3JldHVybiB0aGlzLiN4fXNldCBzaG93R3JpZChSKXt0aGlzLiN4PVJ9ZmlsZXM9KGd0KHRoaXMsX2UpLFtdKTtmaWxlV2Vha01hcD1uZXcgV2Vha01hcDtkYXRhQ2hhbmdlU3ViamVjdD1uZXcgY3Iuc21hcnRyeC5yeGpzLlN1YmplY3Q7I3Y9Z3QodGhpcyxzZSxbXSk7Z2V0IHNvcnRCeSgpe3JldHVybiB0aGlzLiN2fXNldCBzb3J0QnkoUil7dGhpcy4jdj1SfSN5PShndCh0aGlzLGNlKSxndCh0aGlzLHFlLCIiKSk7Z2V0IGZpbHRlclRleHQoKXtyZXR1cm4gdGhpcy4jeX1zZXQgZmlsdGVyVGV4dChSKXt0aGlzLiN5PVJ9I3c9KGd0KHRoaXMsbnQpLGd0KHRoaXMsTGUse30pKTtnZXQgY29sdW1uRmlsdGVycygpe3JldHVybiB0aGlzLiN3fXNldCBjb2x1bW5GaWx0ZXJzKFIpe3RoaXMuI3c9Un0jaz0oZ3QodGhpcyx3ZSksZ3QodGhpcyxnZSwhMSkpO2dldCBzaG93Q29sdW1uRmlsdGVycygpe3JldHVybiB0aGlzLiNrfXNldCBzaG93Q29sdW1uRmlsdGVycyhSKXt0aGlzLiNrPVJ9I1M9KGd0KHRoaXMsYmUpLGd0KHRoaXMseXQsITEpKTtnZXQgc2hvd1NlbGVjdGlvbkNoZWNrYm94KCl7cmV0dXJuIHRoaXMuI1N9c2V0IHNob3dTZWxlY3Rpb25DaGVja2JveChSKXt0aGlzLiNTPVJ9I009KGd0KHRoaXMsd3QpLGd0KHRoaXMsemEsITEpKTtnZXQgdmlydHVhbGl6ZWQoKXtyZXR1cm4gdGhpcy4jTX1zZXQgdmlydHVhbGl6ZWQoUil7dGhpcy4jTT1SfSNDPShndCh0aGlzLFBhKSxndCh0aGlzLEVlLDgpKTtnZXQgdmlydHVhbE92ZXJzY2FuKCl7cmV0dXJuIHRoaXMuI0N9c2V0IHZpcnR1YWxPdmVyc2NhbihSKXt0aGlzLiNDPVJ9I3o9KGd0KHRoaXMsamUpLGd0KHRoaXMscmEsIm5vbmUiKSk7Z2V0IGhpZ2hsaWdodFVwZGF0ZXMoKXtyZXR1cm4gdGhpcy4jen1zZXQgaGlnaGxpZ2h0VXBkYXRlcyhSKXt0aGlzLiN6PVJ9I189KGd0KHRoaXMscGEpLGd0KHRoaXMsZmEsOTAwKSk7Z2V0IGhpZ2hsaWdodER1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI199c2V0IGhpZ2hsaWdodER1cmF0aW9uKFIpe3RoaXMuI189Un0jVD0oZ3QodGhpcyxDbiksZ3QodGhpcyxBZSwhMSkpO2dldCBmaXhlZEhlaWdodCgpe3JldHVybiB0aGlzLiNUfXNldCBmaXhlZEhlaWdodChSKXt0aGlzLiNUPVJ9I0w9KGd0KHRoaXMsQ2UpLGd0KHRoaXMsRHIsInRhYmxlIikpO2dldCBzZWFyY2hNb2RlKCl7cmV0dXJuIHRoaXMuI0x9c2V0IHNlYXJjaE1vZGUoUil7dGhpcy4jTD1SfV9fc2VhcmNoVGV4dFN1Yj1ndCh0aGlzLEVzKTtfX3NlYXJjaE1vZGVTdWI7I0Q9Z3QodGhpcyxrZSwibm9uZSIpO2dldCBzZWxlY3Rpb25Nb2RlKCl7cmV0dXJuIHRoaXMuI0R9c2V0IHNlbGVjdGlvbk1vZGUoUil7dGhpcy4jRD1SfSMkPShndCh0aGlzLGhlKSxndCh0aGlzLGV0LG5ldyBTZXQpKTtnZXQgc2VsZWN0ZWRJZHMoKXtyZXR1cm4gdGhpcy4jJH1zZXQgc2VsZWN0ZWRJZHMoUil7dGhpcy4jJD1SfV9yb3dJZE1hcD0oZ3QodGhpcyxQdCksbmV3IFdlYWtNYXApO19yb3dJZENvdW50ZXI9MDtfX3NlbGVjdGlvbkFuY2hvcklkOyNBPWd0KHRoaXMsS2ksdm9pZCAwKTtnZXQgX19mb2N1c2VkQ2VsbCgpe3JldHVybiB0aGlzLiNBfXNldCBfX2ZvY3VzZWRDZWxsKFIpe3RoaXMuI0E9Un0jRT0oZ3QodGhpcyxEbyksZ3QodGhpcyxxYyx2b2lkIDApKTtnZXQgX19lZGl0aW5nQ2VsbCgpe3JldHVybiB0aGlzLiNFfXNldCBfX2VkaXRpbmdDZWxsKFIpe3RoaXMuI0U9Un0jST0oZ3QodGhpcyxEZCksZ3QodGhpcyxfZiwhMSkpO2dldCBfX2Zsb2F0aW5nQWN0aXZlKCl7cmV0dXJuIHRoaXMuI0l9c2V0IF9fZmxvYXRpbmdBY3RpdmUoUil7dGhpcy4jST1SfSNQPShndCh0aGlzLGVrKSxndCh0aGlzLHJrLG5ldyBNYXApKTtnZXQgX19mbGFzaGluZ0NlbGxzKCl7cmV0dXJuIHRoaXMuI1B9c2V0IF9fZmxhc2hpbmdDZWxscyhSKXt0aGlzLiNQPVJ9X19wcmV2U25hcHNob3Q9Z3QodGhpcyxhayk7X19mbGFzaENsZWFyVGltZXI7X19mbGFzaFRpY2s9MDtfX2ZsYXNoV2FybmVkTm9Sb3dLZXk9ITE7X19tZW1vRWZmZWN0aXZlQ29scztfX21lbW9WaWV3RGF0YTtfX2NvbHVtbnNTaXplZEZvcjtfX3Jvd0hlaWdodD0zNjtfX3Jvd0hlaWdodE1lYXN1cmVkPSExOyNOPWd0KHRoaXMsc2sse3N0YXJ0OjAsZW5kOjB9KTtnZXQgX192aXJ0dWFsUmFuZ2UoKXtyZXR1cm4gdGhpcy4jTn1zZXQgX192aXJ0dWFsUmFuZ2UoUil7dGhpcy4jTj1SfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKXx8dGhpcy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fX2hhbmRsZUhvc3RLZXlkb3duKX1fX2hhbmRsZUhvc3RLZXlkb3duPShndCh0aGlzLG5rKSxSPT57bGV0IEk9Ui5jb21wb3NlZFBhdGg/LigpfHxbXSx0ZT0hMTtmb3IobGV0IFJlIG9mIEkpe2xldCB0dD1SZT8udGFnTmFtZTtpZih0dD09PSJJTlBVVCJ8fHR0PT09IlRFWFRBUkVBInx8UmU/LmlzQ29udGVudEVkaXRhYmxlKXt0ZT0hMDticmVha319aWYoKFIubWV0YUtleXx8Ui5jdHJsS2V5KSYmKFIua2V5PT09ImMifHxSLmtleT09PSJDIikpe2lmKHRlKXJldHVybjtsZXQgUmU9W107aWYodGhpcy5zZWxlY3RlZElkcy5zaXplPjApZm9yKGxldCB0dCBvZiB0aGlzLmRhdGEpdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZCh0dCkpJiZSZS5wdXNoKHR0KTtlbHNlIHRoaXMuc2VsZWN0ZWREYXRhUm93JiZSZS5wdXNoKHRoaXMuc2VsZWN0ZWREYXRhUm93KTtpZihSZS5sZW5ndGg9PT0wKXJldHVybjtSLnByZXZlbnREZWZhdWx0KCksdGhpcy5fX3dyaXRlUm93c0FzSnNvbihSZSk7cmV0dXJufWlmKCEodGV8fHRoaXMuX19lZGl0aW5nQ2VsbCkpc3dpdGNoKFIua2V5KXtjYXNlIkFycm93TGVmdCI6Ui5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubW92ZUZvY3VzZWRDZWxsKC0xLDAsITEpO3JldHVybjtjYXNlIkFycm93UmlnaHQiOlIucHJldmVudERlZmF1bHQoKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgxLDAsITEpO3JldHVybjtjYXNlIkFycm93VXAiOlIucHJldmVudERlZmF1bHQoKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgwLC0xLCExKTtyZXR1cm47Y2FzZSJBcnJvd0Rvd24iOlIucHJldmVudERlZmF1bHQoKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgwLDEsITEpO3JldHVybjtjYXNlIkVudGVyIjpjYXNlIkYyIjp7aWYoIXRoaXMuX19mb2N1c2VkQ2VsbClyZXR1cm47bGV0IHR0PSh0aGlzLl9sYXN0Vmlld0RhdGE/P1tdKS5maW5kKEx0PT50aGlzLmdldFJvd0lkKEx0KT09PXRoaXMuX19mb2N1c2VkQ2VsbC5yb3dJZCk7aWYoIXR0KXJldHVybjtsZXQgZnQ9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKEx0PT5TdHJpbmcoTHQua2V5KT09PXRoaXMuX19mb2N1c2VkQ2VsbC5jb2xLZXkpO2lmKCFmdHx8IXRoaXMuX19pc0NvbHVtbkVkaXRhYmxlKGZ0KSlyZXR1cm47Ui5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc3RhcnRFZGl0aW5nKHR0LGZ0KTtyZXR1cm59Y2FzZSJFc2NhcGUiOnRoaXMuX19mb2N1c2VkQ2VsbCYmKHRoaXMuX19mb2N1c2VkQ2VsbD12b2lkIDAsdGhpcy5yZXF1ZXN0VXBkYXRlKCkpO3JldHVybjtkZWZhdWx0OnJldHVybn19KTtjb3B5U2VsZWN0aW9uQXNKc29uKFIpe2xldCBJPVtdO2lmKHRoaXMuc2VsZWN0ZWRJZHMuc2l6ZT4wKWZvcihsZXQgdGUgb2YgdGhpcy5kYXRhKXRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQodGUpKSYmSS5wdXNoKHRlKTtlbHNlIFI/SS5wdXNoKFIpOnRoaXMuc2VsZWN0ZWREYXRhUm93JiZJLnB1c2godGhpcy5zZWxlY3RlZERhdGFSb3cpO0kubGVuZ3RoIT09MCYmdGhpcy5fX3dyaXRlUm93c0FzSnNvbihJKX1fX3dyaXRlUm93c0FzSnNvbihSKXt0cnl7bGV0IEk9SlNPTi5zdHJpbmdpZnkoUixudWxsLDIpO25hdmlnYXRvci5jbGlwYm9hcmQ/LndyaXRlVGV4dChJKX1jYXRjaHt9fXN0YXRpYyBzdHlsZXM9VFpyO19fZ2V0RGlzcGxheUZ1bmN0aW9uU2hhcGVLZXkoKXtpZighdGhpcy5kYXRhfHx0aGlzLmRhdGEubGVuZ3RoPT09MClyZXR1cm4iIjtsZXQgUj10aGlzLmRpc3BsYXlGdW5jdGlvbih0aGlzLmRhdGFbMF0pPz97fTtyZXR1cm4gT2JqZWN0LmtleXMoUikuam9pbigiXDAiKX1fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKXtsZXQgUj1BcnJheS5pc0FycmF5KHRoaXMuY29sdW1ucykmJnRoaXMuY29sdW1ucy5sZW5ndGg+MCxJPSFSfHx0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uP3RoaXMuX19nZXREaXNwbGF5RnVuY3Rpb25TaGFwZUtleSgpOiIiLHRlPXRoaXMuX19tZW1vRWZmZWN0aXZlQ29scztpZih0ZSYmdGUuY29sdW1ucz09PXRoaXMuY29sdW1ucyYmdGUuYXVnbWVudD09PXRoaXMuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24mJnRlLmRpc3BsYXlGdW5jdGlvbj09PXRoaXMuZGlzcGxheUZ1bmN0aW9uJiZ0ZS5kaXNwbGF5U2hhcGVLZXk9PT1JKXJldHVybiB0ZS5vdXQ7bGV0IFBlPVI/RFpyKHRoaXMuY29sdW1ucyx0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk6czd0KHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk7cmV0dXJuIHRoaXMuX19tZW1vRWZmZWN0aXZlQ29scz17Y29sdW1uczp0aGlzLmNvbHVtbnMsYXVnbWVudDp0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLGRpc3BsYXlGdW5jdGlvbjp0aGlzLmRpc3BsYXlGdW5jdGlvbixkaXNwbGF5U2hhcGVLZXk6SSxvdXQ6UGV9LFBlfV9fZ2V0Vmlld0RhdGEoUil7bGV0IEk9dGhpcy5zZWFyY2hNb2RlPT09ImRhdGEiPyJkYXRhIjoidGFibGUiLHRlPXRoaXMuX19tZW1vVmlld0RhdGE7aWYodGUmJnRlLmRhdGE9PT10aGlzLmRhdGEmJnRlLnNvcnRCeT09PXRoaXMuc29ydEJ5JiZ0ZS5maWx0ZXJUZXh0PT09dGhpcy5maWx0ZXJUZXh0JiZ0ZS5jb2x1bW5GaWx0ZXJzPT09dGhpcy5jb2x1bW5GaWx0ZXJzJiZ0ZS5zZWFyY2hNb2RlPT09SSYmdGUuZWZmZWN0aXZlQ29sdW1ucz09PVIpcmV0dXJuIHRlLm91dDtsZXQgUGU9RVpyKHRoaXMuZmlsdGVyVGV4dCxJLFIpLFJlPSRacih0aGlzLmRhdGEsUix0aGlzLnNvcnRCeSx0aGlzLmZpbHRlclRleHQsdGhpcy5jb2x1bW5GaWx0ZXJzLEksUGV8fHZvaWQgMCk7cmV0dXJuIHRoaXMuX19tZW1vVmlld0RhdGE9e2RhdGE6dGhpcy5kYXRhLHNvcnRCeTp0aGlzLnNvcnRCeSxmaWx0ZXJUZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5GaWx0ZXJzOnRoaXMuY29sdW1uRmlsdGVycyxzZWFyY2hNb2RlOkksZWZmZWN0aXZlQ29sdW1uczpSLG91dDpSZX0sUmV9cmVuZGVyKCl7bGV0IFI9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKSxJPXRoaXMuX19nZXRWaWV3RGF0YShSKSx0ZT10aGlzLmdldEFjdGlvbnNGb3JUeXBlKCJoZWFkZXIiKSxQZT10aGlzLmdldEFjdGlvbnNGb3JUeXBlKCJmb290ZXIiKSxSZT10aGlzLmdldEFjdGlvbnNGb3JUeXBlKCJpblJvdyIpO3RoaXMuX2xhc3RWaWV3RGF0YT1JO2xldCB0dD10aGlzLnZpcnR1YWxpemVkJiZJLmxlbmd0aD4wLHB0PUksZnQ9MCxMdD0wLFVyPTA7aWYodHQpe2xldCBBdD10aGlzLl9fdmlydHVhbFJhbmdlLG1zPU1hdGgubWF4KDAsQXQuc3RhcnQpLHUxPU1hdGgubWluKEkubGVuZ3RoLEF0LmVuZHx8MCksWmk9dTE+MD91MTpNYXRoLm1pbihJLmxlbmd0aCx0aGlzLnZpcnR1YWxPdmVyc2NhbioyKzE2KTtmdD1tcyxwdD1JLnNsaWNlKG1zLFppKSxMdD1tcyp0aGlzLl9fcm93SGVpZ2h0LFVyPU1hdGgubWF4KDAsSS5sZW5ndGgtWmkpKnRoaXMuX19yb3dIZWlnaHR9cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZ0NvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmcgaGVhZGluZzEiPiR7dGhpcy5sYWJlbHx8dGhpcy5oZWFkaW5nMX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyBoZWFkaW5nMiI+JHt0aGlzLmhlYWRpbmcyfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHt0ZS5tYXAoQXQ9PndgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRlckFjdGlvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT57QXQuYWN0aW9uRnVuYyh7aXRlbTp0aGlzLnNlbGVjdGVkRGF0YVJvdyx0YWJsZTp0aGlzfSl9fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7QXQuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke0F0Lmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICR7QXQubmFtZX1gOkF0Lm5hbWV9CiAgICAgICAgICAgICAgPC9kaXY+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nU2VwYXJhdGlvbiI+PC9kaXY+CiAgICAgICAgJHt0aGlzLmhpZ2hsaWdodFVwZGF0ZXM9PT0iZmxhc2giJiYhdGhpcy5yb3dLZXk/d2A8ZGl2IGNsYXNzPSJmbGFzaENvbmZpZ1dhcm5pbmciIHJvbGU9ImFsZXJ0Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgICA8Y29kZT5oaWdobGlnaHQtdXBkYXRlcz0iZmxhc2giPC9jb2RlPiByZXF1aXJlcwogICAgICAgICAgICAgICAgPGNvZGU+cm93S2V5PC9jb2RlPiB0byBiZSBzZXQuIEZsYXNoIGlzIGRpc2FibGVkLgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+YDp3YGB9CiAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoR3JpZCBoaWRkZW4iPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsibHVjZW5lIHN5bnRheCBzZWFyY2gifQogICAgICAgICAgICAuaW5mb1RleHQ9JHtgCiAgICAgICAgICAgICAgWW91IGNhbiB1c2UgdGhlIGx1Y2VuZSBzeW50YXggdG8gc2VhcmNoIGZvciBkYXRhLCBlLmcuOgoKICAgICAgICAgICAgICBcYFxgXGAKICAgICAgICAgICAgICBuYW1lOiAiam9obiIgQU5EIGFnZTogMTgKICAgICAgICAgICAgICBcYFxgXGAKCiAgICAgICAgICAgIGB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsic2VhcmNoIG1vZGUifQogICAgICAgICAgICAub3B0aW9ucz0ke1sidGFibGUiLCJkYXRhIiwic2VydmVyIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJ0YWJsZSJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0ke2AKICAgICAgICAgICAgICBUaGVyZSBhcmUgdGhyZWUgYmFzaWMgbW9kZXM6CgogICAgICAgICAgICAgICogdGFibGU6IG9ubHkgc2VhcmNoZXMgZGF0YSBhbHJlYWR5IGluIHRoZSB0YWJsZQogICAgICAgICAgICAgICogZGF0YTogc2VhcmNoZXMgb3JpZ2luYWwgZGF0YSwgaWdub3JpbmcgdGFibGUgdHJhbnNmb3JtcwogICAgICAgICAgICAgICogc2VydmVyOiBzZWFyY2hlcyBkYXRhIG9uIHRoZSBzZXJ2ZXIKCiAgICAgICAgICAgIGB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIHRoZSBhY3R1YWwgdGFibGUgLS0+CiAgICAgICAgPHN0eWxlPjwvc3R5bGU+CiAgICAgICAgJHt0aGlzLmRhdGEubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZVNjcm9sbCI+CiAgICAgICAgICAgICAgPHRhYmxlPgogICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVySGVhZGVyUm93cyhSKX0KICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICA8dGJvZHkKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5fX29uVGJvZHlDbGlja30KICAgICAgICAgICAgICAgICAgQGRibGNsaWNrPSR7dGhpcy5fX29uVGJvZHlEYmxjbGlja30KICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuX19vblRib2R5TW91c2Vkb3dufQogICAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHt0aGlzLl9fb25UYm9keUNvbnRleHRtZW51fQogICAgICAgICAgICAgICAgICBAZHJhZ2VudGVyPSR7dGhpcy5fX29uVGJvZHlEcmFnZW50ZXJ9CiAgICAgICAgICAgICAgICAgIEBkcmFnbGVhdmU9JHt0aGlzLl9fb25UYm9keURyYWdsZWF2ZX0KICAgICAgICAgICAgICAgICAgQGRyYWdvdmVyPSR7dGhpcy5fX29uVGJvZHlEcmFnb3Zlcn0KICAgICAgICAgICAgICAgICAgQGRyb3A9JHt0aGlzLl9fb25UYm9keURyb3B9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7dHQmJkx0PjA/d2A8dHIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJoZWlnaHQ6JHtMdH1weCI+PHRkPjwvdGQ+PC90cj5gOndgYH0KICAgICAgICAgICAgICAgICAgJHtabC5yZXBlYXQocHQsQXQ9PnRoaXMuZ2V0Um93SWQoQXQpLChBdCxtcyk9PntsZXQgdTE9ZnQrbXMsWmk9dGhpcy5nZXRSb3dJZChBdCksTzE9dGhpcy5fX2ZsYXNoaW5nQ2VsbHMuZ2V0KFppKTtyZXR1cm4gd2AKICAgICAgICAgICAgICAgICAgICAgIDx0cgogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXJvdy1pZHg9JHt1MX0KICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7QXQ9PT10aGlzLnNlbGVjdGVkRGF0YVJvd3x8dGhpcy5pc1Jvd1NlbGVjdGVkKEF0KT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNob3dTZWxlY3Rpb25DaGVja2JveD93YDx0ZCBzdHlsZT0id2lkdGg6NDJweDsgdGV4dC1hbGlnbjpjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlzUm93U2VsZWN0ZWQoQXQpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBuZXdWYWx1ZT0ke3dyPT57d3Iuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zZXRSb3dTZWxlY3RlZChBdCx3ci5kZXRhaWw9PT0hMCl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5gOndgYH0KICAgICAgICAgICAgICAgICAgICAgICAgJHtSLmZpbHRlcih3cj0+IXdyLmhpZGRlbikubWFwKCh3cixWYyk9PntsZXQgJG89c2YoQXQsd3IsdGhpcy5kaXNwbGF5RnVuY3Rpb24pLFduPXdyLnJlbmRlcmVyP3dyLnJlbmRlcmVyKCRvLEF0LHtyb3dJbmRleDp1MSxjb2xJbmRleDpWYyxjb2x1bW46d3J9KTokbyxiMj1TdHJpbmcod3Iua2V5KSxwMWE9ISEod3IuZWRpdGFibGV8fHdyLmVkaXRvciksZjFhPXRoaXMuX19mb2N1c2VkQ2VsbD8ucm93SWQ9PT1aaSYmdGhpcy5fX2ZvY3VzZWRDZWxsPy5jb2xLZXk9PT1iMixMbWU9dGhpcy5fX2VkaXRpbmdDZWxsPy5yb3dJZD09PVppJiZ0aGlzLl9fZWRpdGluZ0NlbGw/LmNvbEtleT09PWIyLEdidD1PMT8uZ2V0KGIyKSxEbWU9R2J0IT09dm9pZCAwLGgxYT1EbWUmJiEhd3IuZmxhc2hCb3JkZXIsbTFhPVtwMWE/ImVkaXRhYmxlIjoiIixmMWEmJiFMbWU/ImZvY3VzZWQiOiIiLExtZT8iZWRpdGluZ0NlbGwiOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpLFlidD13YDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9JHtEbWU/aDFhPyJpbm5lckNlbGxDb250YWluZXIgZmxhc2hpbmctYm9yZGVyIjoiaW5uZXJDZWxsQ29udGFpbmVyIGZsYXNoaW5nIjoiaW5uZXJDZWxsQ29udGFpbmVyIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtMbWU/dGhpcy5yZW5kZXJDZWxsRWRpdG9yKEF0LHdyKTpXbn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSR7bTFhfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtY29sLWtleT0ke2IyfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtEbWU/Wmwua2V5ZWQoYCR7Wml9OiR7YjJ9OiR7R2J0fWAsWWJ0KTpZYnR9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICR7KCgpPT57aWYoUmUubGVuZ3RoPjApcmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYWN0aW9uc0NvbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uc0NvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke1JlLm1hcCh3cj0+d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYWN0aW9uIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PndyLmFjdGlvbkZ1bmMoe2l0ZW06QXQsdGFibGU6dGhpc30pfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7d3IuaWNvbk5hbWU/d2AgPGRlZXMtaWNvbiAuaWNvbj0ke3dyLmljb25OYW1lfT48L2RlZXMtaWNvbj4gYDp3ci5uYW1lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9KSgpfQogICAgICAgICAgICAgICAgICAgICAgPC90cj5gfSl9CiAgICAgICAgICAgICAgICAgICR7dHQmJlVyPjA/d2A8dHIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJoZWlnaHQ6JHtVcn1weCI+PHRkPjwvdGQ+PC90cj5gOndgYH0KICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbG9hdGluZ0hlYWRlciIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgICAgJHt0aGlzLl9fZmxvYXRpbmdBY3RpdmU/d2A8dGFibGU+CiAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJIZWFkZXJSb3dzKFIpfQogICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPmA6d2BgfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOndgIDxkaXYgY2xhc3M9Im5vRGF0YVNldCI+Tm8gZGF0YSBzZXQhPC9kaXY+IGB9CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJmb290ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTdGF0aXN0aWNzIj4KICAgICAgICAgICAgJHt0aGlzLmRhdGEubGVuZ3RofSAke3RoaXMuZGF0YU5hbWV8fCJkYXRhIHJvd3MifSAodG90YWwpIHwKICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGVkRGF0YVJvdz9gIyAke3RoaXMuZGF0YS5pbmRleE9mKHRoaXMuc2VsZWN0ZWREYXRhUm93KSsxfWA6Ik5vIn0KICAgICAgICAgICAgc2VsZWN0ZWQKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyQWN0aW9ucyI+CiAgICAgICAgICAgICR7UGUubWFwKEF0PT53YDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJmb290ZXJBY3Rpb24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e0F0LmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke0F0Lmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvblNpemU9JHsxNH0gLmljb249JHtBdC5pY29uTmFtZX0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAke0F0Lm5hbWV9YDpBdC5uYW1lfQogICAgICAgICAgICAgIDwvZGl2PmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1yZW5kZXJIZWFkZXJSb3dzKFIpe3JldHVybiB3YAogICAgICA8dHI+CiAgICAgICAgJHt0aGlzLnNob3dTZWxlY3Rpb25DaGVja2JveD93YAogICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NDJweDsgdGV4dC1hbGlnbjpjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpIj93YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5hcmVBbGxWaXNpYmxlU2VsZWN0ZWQoKX0KICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV0ZXJtaW5hdGU9JHt0aGlzLmlzVmlzaWJsZVNlbGVjdGlvbkluZGV0ZXJtaW5hdGUoKX0KICAgICAgICAgICAgICAgICAgICAgICAgQG5ld1ZhbHVlPSR7ST0+e0kuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zZXRTZWxlY3RWaXNpYmxlKEkuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgJHtSLmZpbHRlcihJPT4hSS5oaWRkZW4pLm1hcChJPT57bGV0IHRlPUkuc29ydGFibGUhPT0hMSxQZT10aGlzLmdldEFyaWFTb3J0KEkpO3JldHVybiB3YAogICAgICAgICAgICAgIDx0aAogICAgICAgICAgICAgICAgcm9sZT0iY29sdW1uaGVhZGVyIgogICAgICAgICAgICAgICAgYXJpYS1zb3J0PSR7UGV9CiAgICAgICAgICAgICAgICBzdHlsZT0iJHt0ZT8iY3Vyc29yOiBwb2ludGVyOyI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7UmU9PnRlP3RoaXMuaGFuZGxlSGVhZGVyQ2xpY2soUmUsSSxSKTpudWxsfQogICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7UmU9PnRlP3RoaXMub3BlbkhlYWRlckNvbnRleHRNZW51KFJlLEksUik6bnVsbH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke0kuaGVhZGVyPz9JLmtleX0KICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJTb3J0SW5kaWNhdG9yKEkpfQogICAgICAgICAgICAgIDwvdGg+YH0pfQogICAgICAgICR7dGhpcy5kYXRhQWN0aW9ucyYmdGhpcy5kYXRhQWN0aW9ucy5sZW5ndGg+MD93YDx0aCBjbGFzcz0iYWN0aW9uc0NvbCI+QWN0aW9uczwvdGg+YDp3YGB9CiAgICAgIDwvdHI+CiAgICAgICR7dGhpcy5zaG93Q29sdW1uRmlsdGVycz93YDx0ciBjbGFzcz0iZmlsdGVyc1JvdyI+CiAgICAgICAgICAgICR7dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3g/d2A8dGggc3R5bGU9IndpZHRoOjQycHg7Ij48L3RoPmA6d2BgfQogICAgICAgICAgICAke1IuZmlsdGVyKEk9PiFJLmhpZGRlbikubWFwKEk9PntsZXQgdGU9U3RyaW5nKEkua2V5KTtyZXR1cm4gSS5maWx0ZXJhYmxlPT09ITE/d2A8dGg+PC90aD5gOndgPHRoPgogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkZpbHRlci4uLiIgZGF0YS1jb2wta2V5PSR7dGV9IC52YWx1ZT0ke3RoaXMuY29sdW1uRmlsdGVyc1t0ZV18fCIifQogICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke1BlPT50aGlzLnNldENvbHVtbkZpbHRlcih0ZSxQZS50YXJnZXQudmFsdWUpfSAvPgogICAgICAgICAgICAgICAgPC90aD5gfSl9CiAgICAgICAgICAgICR7dGhpcy5kYXRhQWN0aW9ucyYmdGhpcy5kYXRhQWN0aW9ucy5sZW5ndGg+MD93YDx0aD48L3RoPmA6d2BgfQogICAgICAgICAgPC90cj5gOndgYH0KICAgIGB9X19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyO19fZmxvYXRpbmdTY3JvbGxIYW5kbGVyO19fc2Nyb2xsQW5jZXN0b3JzPVtdO2dldCBfX2Zsb2F0aW5nSGVhZGVyRWwoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmxvYXRpbmdIZWFkZXIiKT8/bnVsbH1nZXQgX19yZWFsVGFibGVFbCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJsZVNjcm9sbCA+IHRhYmxlIik/P251bGx9Z2V0IF9fZmxvYXRpbmdUYWJsZUVsKCl7cmV0dXJuIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZsb2F0aW5nSGVhZGVyID4gdGFibGUiKT8/bnVsbH1fX2NvbGxlY3RTY3JvbGxBbmNlc3RvcnMoKXtsZXQgUj1bXSxJPXRoaXMsdGU9aShQZT0+UGU9PT0iYXV0byJ8fFBlPT09InNjcm9sbCJ8fFBlPT09Im92ZXJsYXkiLCJzY3JvbGxpc2giKTtmb3IoO0k7KXtpZihJIGluc3RhbmNlb2YgRWxlbWVudCl7bGV0IFJlPWdldENvbXB1dGVkU3R5bGUoSSksdHQ9dGUoUmUub3ZlcmZsb3dZKSxwdD10ZShSZS5vdmVyZmxvd1gpOyh0dHx8cHQpJiZSLnB1c2goe3RhcmdldDpJLHNjcm9sbHNZOnR0LHNjcm9sbHNYOnB0fSl9bGV0IFBlPUkuYXNzaWduZWRTbG90P0kuYXNzaWduZWRTbG90OkkucGFyZW50Tm9kZTtQZT9JPVBlOkkuaG9zdD9JPUkuaG9zdDpJPW51bGx9cmV0dXJuIFIucHVzaCh7dGFyZ2V0OndpbmRvdyxzY3JvbGxzWTohMCxzY3JvbGxzWDohMH0pLFJ9X19nZXRTdGlja0NvbnRleHQoKXtsZXQgUj0wLEk9MCx0ZT13aW5kb3cuaW5uZXJXaWR0aDtmb3IobGV0IFBlIG9mIHRoaXMuX19zY3JvbGxBbmNlc3RvcnMpe2lmKFBlLnRhcmdldD09PXdpbmRvdyljb250aW51ZTtsZXQgUmU9UGUudGFyZ2V0LHR0PVJlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHB0PWdldENvbXB1dGVkU3R5bGUoUmUpO2lmKFBlLnNjcm9sbHNZKXtsZXQgZnQ9cGFyc2VGbG9hdChwdC5ib3JkZXJUb3BXaWR0aCl8fDA7Uj1NYXRoLm1heChSLHR0LnRvcCtmdCl9aWYoUGUuc2Nyb2xsc1gpe2xldCBmdD1wYXJzZUZsb2F0KHB0LmJvcmRlckxlZnRXaWR0aCl8fDAsTHQ9cGFyc2VGbG9hdChwdC5ib3JkZXJSaWdodFdpZHRoKXx8MDtJPU1hdGgubWF4KEksdHQubGVmdCtmdCksdGU9TWF0aC5taW4odGUsdHQucmlnaHQtTHQpfX1yZXR1cm57dG9wOlIsbGVmdDpJLHJpZ2h0OnRlfX1zZXR1cEZsb2F0aW5nSGVhZGVyKCl7aWYodGhpcy50ZWFyZG93bkZsb2F0aW5nSGVhZGVyKCksdGhpcy5maXhlZEhlaWdodCYmIXRoaXMudmlydHVhbGl6ZWQpcmV0dXJuO2xldCBSPXRoaXMuX19yZWFsVGFibGVFbDtpZighUilyZXR1cm47dGhpcy5fX3Njcm9sbEFuY2VzdG9ycz10aGlzLl9fY29sbGVjdFNjcm9sbEFuY2VzdG9ycygpO2xldCBJPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYmxlU2Nyb2xsIik7SSYmdGhpcy5fX3Njcm9sbEFuY2VzdG9ycy51bnNoaWZ0KHt0YXJnZXQ6SSxzY3JvbGxzWTp0aGlzLmZpeGVkSGVpZ2h0LHNjcm9sbHNYOiEwfSksdGhpcy5fX2Zsb2F0aW5nUmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5maXhlZEhlaWdodHx8dGhpcy5fX3N5bmNGbG9hdGluZ0hlYWRlcigpLHRoaXMudmlydHVhbGl6ZWQmJnRoaXMuX19jb21wdXRlVmlydHVhbFJhbmdlKCl9KSx0aGlzLl9fZmxvYXRpbmdSZXNpemVPYnNlcnZlci5vYnNlcnZlKFIpLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXI9KCk9Pnt0aGlzLmZpeGVkSGVpZ2h0fHx0aGlzLl9fc3luY0Zsb2F0aW5nSGVhZGVyKCksdGhpcy52aXJ0dWFsaXplZCYmdGhpcy5fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKX07Zm9yKGxldCB0ZSBvZiB0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzKXRlLnRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9fZmxvYXRpbmdTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSksdGhpcy5maXhlZEhlaWdodHx8dGhpcy5fX3N5bmNGbG9hdGluZ0hlYWRlcigpLHRoaXMudmlydHVhbGl6ZWQmJnRoaXMuX19jb21wdXRlVmlydHVhbFJhbmdlKCl9dGVhcmRvd25GbG9hdGluZ0hlYWRlcigpe2lmKHRoaXMuX19mbG9hdGluZ1Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5fX2Zsb2F0aW5nUmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuX19mbG9hdGluZ1Njcm9sbEhhbmRsZXIpe2ZvcihsZXQgSSBvZiB0aGlzLl9fc2Nyb2xsQW5jZXN0b3JzKUkudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlciksdGhpcy5fX2Zsb2F0aW5nU2Nyb2xsSGFuZGxlcj12b2lkIDB9dGhpcy5fX3Njcm9sbEFuY2VzdG9ycz1bXSx0aGlzLl9fZmxvYXRpbmdBY3RpdmU9ITE7bGV0IFI9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7UiYmUi5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKX1fX3RyYW5zZmVyRm9jdXNUb1JlYWxIZWFkZXIoKXtsZXQgUj10aGlzLl9fZmxvYXRpbmdIZWFkZXJFbDtpZighUilyZXR1cm47bGV0IEk9dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50O2lmKCFJfHwhUi5jb250YWlucyhJKSlyZXR1cm47bGV0IHRlPUkuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbC1rZXkiKTtpZighdGUpcmV0dXJuO2xldCBQZT1JLFJlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnRhYmxlU2Nyb2xsID4gdGFibGUgPiB0aGVhZCBpbnB1dFtkYXRhLWNvbC1rZXk9IiR7Q1NTLmVzY2FwZSh0ZSl9Il1gKTtpZighUmV8fFJlPT09UGUpcmV0dXJuO2xldCB0dD1QZS5zZWxlY3Rpb25TdGFydCxwdD1QZS5zZWxlY3Rpb25FbmQsZnQ9UGUuc2VsZWN0aW9uRGlyZWN0aW9uO1JlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e3R0IT1udWxsJiZwdCE9bnVsbCYmUmUuc2V0U2VsZWN0aW9uUmFuZ2UodHQscHQsZnR8fHZvaWQgMCl9Y2F0Y2h7fX1fX3RyYW5zZmVyRm9jdXNUb0Zsb2F0aW5nSGVhZGVyKCl7bGV0IFI9dGhpcy5fX2Zsb2F0aW5nSGVhZGVyRWw7aWYoIVJ8fCF0aGlzLl9fZmxvYXRpbmdBY3RpdmUpcmV0dXJuO2xldCBJPXRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudDtpZighSSlyZXR1cm47bGV0IHRlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYmxlU2Nyb2xsID4gdGFibGUgPiB0aGVhZCIpO2lmKCF0ZXx8IXRlLmNvbnRhaW5zKEkpKXJldHVybjtsZXQgUGU9SS5nZXRBdHRyaWJ1dGUoImRhdGEtY29sLWtleSIpO2lmKCFQZSlyZXR1cm47bGV0IFJlPUksdHQ9Ui5xdWVyeVNlbGVjdG9yKGBpbnB1dFtkYXRhLWNvbC1rZXk9IiR7Q1NTLmVzY2FwZShQZSl9Il1gKTtpZighdHR8fHR0PT09UmUpcmV0dXJuO2xldCBwdD1SZS5zZWxlY3Rpb25TdGFydCxmdD1SZS5zZWxlY3Rpb25FbmQsTHQ9UmUuc2VsZWN0aW9uRGlyZWN0aW9uO3R0LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7dHJ5e3B0IT1udWxsJiZmdCE9bnVsbCYmdHQuc2V0U2VsZWN0aW9uUmFuZ2UocHQsZnQsTHR8fHZvaWQgMCl9Y2F0Y2h7fX1fX2NvbXB1dGVWaXJ0dWFsUmFuZ2UoKXtpZighdGhpcy52aXJ0dWFsaXplZClyZXR1cm47bGV0IEk9KHRoaXMuX2xhc3RWaWV3RGF0YT8/W10pLmxlbmd0aDtpZihJPT09MCl7KHRoaXMuX192aXJ0dWFsUmFuZ2Uuc3RhcnQhPT0wfHx0aGlzLl9fdmlydHVhbFJhbmdlLmVuZCE9PTApJiYodGhpcy5fX3ZpcnR1YWxSYW5nZT17c3RhcnQ6MCxlbmQ6MH0pO3JldHVybn1sZXQgdGU9dGhpcy5fX3JlYWxUYWJsZUVsO2lmKCF0ZSlyZXR1cm47bGV0IFBlPXRlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFJlPTAsdHQ9d2luZG93LmlubmVySGVpZ2h0O2ZvcihsZXQgd3Igb2YgdGhpcy5fX3Njcm9sbEFuY2VzdG9ycyl7aWYod3IudGFyZ2V0PT09d2luZG93fHwhd3Iuc2Nyb2xsc1kpY29udGludWU7bGV0IFZjPXdyLnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwkbz1nZXRDb21wdXRlZFN0eWxlKHdyLnRhcmdldCksV249cGFyc2VGbG9hdCgkby5ib3JkZXJUb3BXaWR0aCl8fDAsYjI9cGFyc2VGbG9hdCgkby5ib3JkZXJCb3R0b21XaWR0aCl8fDA7UmU9TWF0aC5tYXgoUmUsVmMudG9wK1duKSx0dD1NYXRoLm1pbih0dCxWYy5ib3R0b20tYjIpfWxldCBwdD1NYXRoLm1heCgxLHRoaXMuX19yb3dIZWlnaHQpLGZ0PXRlLnRIZWFkPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ/PzAsTHQ9UGUudG9wK2Z0LFVyPU1hdGgubWF4KDAsUmUtTHQpLEF0PU1hdGgubWF4KDAsdHQtTWF0aC5tYXgoUmUsTHQpKSxtcz1NYXRoLmZsb29yKFVyL3B0KSx1MT1NYXRoLmNlaWwoQXQvcHQpKzEsWmk9TWF0aC5tYXgoMCxtcy10aGlzLnZpcnR1YWxPdmVyc2NhbiksTzE9TWF0aC5taW4oSSxtcyt1MSt0aGlzLnZpcnR1YWxPdmVyc2Nhbik7KFppIT09dGhpcy5fX3ZpcnR1YWxSYW5nZS5zdGFydHx8TzEhPT10aGlzLl9fdmlydHVhbFJhbmdlLmVuZCkmJih0aGlzLl9fdmlydHVhbFJhbmdlPXtzdGFydDpaaSxlbmQ6TzF9KX1fX21lYXN1cmVSb3dIZWlnaHQoKXtpZighdGhpcy52aXJ0dWFsaXplZHx8dGhpcy5fX3Jvd0hlaWdodE1lYXN1cmVkKXJldHVybjtsZXQgUj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoInRib2R5Iik7aWYoIVIpcmV0dXJuO2xldCBJPUFycmF5LmZyb20oUi5yb3dzKS5maW5kKFBlPT5QZS5oYXNBdHRyaWJ1dGUoImRhdGEtcm93LWlkeCIpKTtpZighSSlyZXR1cm47bGV0IHRlPUkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O3RlPjAmJih0aGlzLl9fcm93SGVpZ2h0PXRlLHRoaXMuX19yb3dIZWlnaHRNZWFzdXJlZD0hMCl9X19zeW5jRmxvYXRpbmdIZWFkZXIoKXtsZXQgUj10aGlzLl9fZmxvYXRpbmdIZWFkZXJFbCxJPXRoaXMuX19yZWFsVGFibGVFbDtpZighUnx8IUkpcmV0dXJuO2xldCB0ZT1JLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFBlPXRoaXMuX19nZXRTdGlja0NvbnRleHQoKSxSZT1JLnRIZWFkPy5yb3dzLHR0PTA7aWYoUmUpZm9yKGxldCB3cj0wO3dyPFJlLmxlbmd0aDt3cisrKXR0Kz1SZVt3cl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O2xldCBwdD10ZS5ib3R0b20tUGUudG9wLGZ0PXRlLnRvcDxQZS50b3AmJnB0PjA7aWYoZnQhPT10aGlzLl9fZmxvYXRpbmdBY3RpdmUpe2lmKGZ0fHx0aGlzLl9fdHJhbnNmZXJGb2N1c1RvUmVhbEhlYWRlcigpLHRoaXMuX19mbG9hdGluZ0FjdGl2ZT1mdCxSLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsZnQpLCFmdCl7Ui5zdHlsZS5oZWlnaHQ9IiI7bGV0IHdyPXRoaXMuX19mbG9hdGluZ1RhYmxlRWw7d3ImJih3ci5zdHlsZS50cmFuc2Zvcm09IiIpfWlmKGZ0KXt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLl9fc3luY0Zsb2F0aW5nSGVhZGVyKCksdGhpcy5fX3RyYW5zZmVyRm9jdXNUb0Zsb2F0aW5nSGVhZGVyKCl9KTtyZXR1cm59fWlmKCFmdClyZXR1cm47bGV0IEx0PXRoaXMuX19mbG9hdGluZ1RhYmxlRWw7aWYoIUx0KXJldHVybjtMdC5zdHlsZS50YWJsZUxheW91dD1JLnN0eWxlLnRhYmxlTGF5b3V0fHwiYXV0byI7bGV0IFVyPUx0LnRIZWFkPy5yb3dzO2lmKFJlJiZVcilmb3IobGV0IHdyPTA7d3I8UmUubGVuZ3RoJiZ3cjxVci5sZW5ndGg7d3IrKyl7bGV0IFZjPVJlW3dyXS5jZWxscywkbz1Vclt3cl0uY2VsbHM7Zm9yKGxldCBXbj0wO1duPFZjLmxlbmd0aCYmV248JG8ubGVuZ3RoO1duKyspe2xldCBiMj1WY1tXbl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7JG9bV25dLnN0eWxlLndpZHRoPWAke2IyfXB4YCwkb1tXbl0uc3R5bGUubWluV2lkdGg9YCR7YjJ9cHhgLCRvW1duXS5zdHlsZS5tYXhXaWR0aD1gJHtiMn1weGB9fWxldCBBdD1NYXRoLm1heCh0ZS5sZWZ0LFBlLmxlZnQpLG1zPU1hdGgubWluKHRlLnJpZ2h0LFBlLnJpZ2h0KSx1MT1NYXRoLm1heCgwLG1zLUF0KTtSLnN0eWxlLnRvcD1gJHtQZS50b3B9cHhgLFIuc3R5bGUubGVmdD1gJHtBdH1weGAsUi5zdHlsZS53aWR0aD1gJHt1MX1weGA7bGV0IFppPU1hdGgubWluKHR0LHB0KSxPMT10dC1aaTtSLnN0eWxlLmhlaWdodD1gJHtaaX1weGAsTHQuc3R5bGUud2lkdGg9YCR7dGUud2lkdGh9cHhgLEx0LnN0eWxlLm1hcmdpbkxlZnQ9YCR7dGUubGVmdC1BdH1weGAsTHQuc3R5bGUudHJhbnNmb3JtPU8xPjA/YHRyYW5zbGF0ZVkoLSR7TzF9cHgpYDoiIn1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy50ZWFyZG93bkZsb2F0aW5nSGVhZGVyKCksdGhpcy5fX2ZsYXNoQ2xlYXJUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9fZmxhc2hDbGVhclRpbWVyKSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXZvaWQgMCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fXdpbGxVcGRhdGUoUil7aWYoUi5oYXMoImRhdGEiKSYmdGhpcy5zZWxlY3RlZERhdGFSb3cmJnRoaXMucm93S2V5KXtsZXQgVXI9dGhpcy5nZXRSb3dJZCh0aGlzLnNlbGVjdGVkRGF0YVJvdyksQXQ7Zm9yKGxldCBtcyBvZiB0aGlzLmRhdGEpaWYodGhpcy5nZXRSb3dJZChtcyk9PT1Vcil7QXQ9bXM7YnJlYWt9QXQ/QXQhPT10aGlzLnNlbGVjdGVkRGF0YVJvdyYmKHRoaXMuc2VsZWN0ZWREYXRhUm93PUF0KTp0aGlzLnNlbGVjdGVkRGF0YVJvdz12b2lkIDB9aWYodGhpcy5oaWdobGlnaHRVcGRhdGVzIT09ImZsYXNoIil7KHRoaXMuX19wcmV2U25hcHNob3R8fHRoaXMuX19mbGFzaGluZ0NlbGxzLnNpemU+MCkmJih0aGlzLl9fcHJldlNuYXBzaG90PXZvaWQgMCx0aGlzLl9fZmxhc2hpbmdDZWxscy5zaXplPjAmJih0aGlzLl9fZmxhc2hpbmdDZWxscz1uZXcgTWFwKSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMuX19mbGFzaENsZWFyVGltZXIpLHRoaXMuX19mbGFzaENsZWFyVGltZXI9dm9pZCAwKSk7cmV0dXJufWlmKCF0aGlzLnJvd0tleSl7dGhpcy5fX2ZsYXNoV2FybmVkTm9Sb3dLZXl8fCh0aGlzLl9fZmxhc2hXYXJuZWROb1Jvd0tleT0hMCxjb25zb2xlLndhcm4oJ1tkZWVzLXRhYmxlXSBoaWdobGlnaHRVcGRhdGVzPSJmbGFzaCIgcmVxdWlyZXMgYHJvd0tleWAgdG8gYmUgc2V0LiBGbGFzaCBpcyBkaXNhYmxlZC4gU2V0IHRoZSByb3dLZXkgcHJvcGVydHkvYXR0cmlidXRlIHRvIGEgc3RhYmxlIGlkZW50aWZpZXIgb24geW91ciByb3cgZGF0YSAoZS5nLiBgcm93S2V5PSJpZCJgKS4nKSk7cmV0dXJufWlmKCFSLmhhcygiZGF0YSIpKXJldHVybjtsZXQgdGU9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maWx0ZXIoVXI9PiFVci5oaWRkZW4pLFBlPW5ldyBNYXAodGUubWFwKFVyPT5bU3RyaW5nKFVyLmtleSksVXJdKSksUmU9bmV3IE1hcCx0dD1uZXcgTWFwO2ZvcihsZXQgVXIgb2YgdGhpcy5kYXRhKXtsZXQgQXQ9dGhpcy5nZXRSb3dJZChVciksbXM9bmV3IE1hcDtmb3IobGV0IFppIG9mIHRlKW1zLnNldChTdHJpbmcoWmkua2V5KSxzZihVcixaaSx0aGlzLmRpc3BsYXlGdW5jdGlvbikpO1JlLnNldChBdCxtcyk7bGV0IHUxPXRoaXMuX19wcmV2U25hcHNob3Q/LmdldChBdCk7aWYodTEpZm9yKGxldFtaaSxPMV1vZiBtcyl7bGV0IHdyPXUxLmdldChaaSksVmM9UGUuZ2V0KFppKSwkbztpZihWYz8uZmxhc2hDb21wYXJlPyRvPVZjLmZsYXNoQ29tcGFyZSh3cixPMSk6TzEhPW51bGwmJnR5cGVvZiBPMT09Im9iamVjdCI/JG89ITE6JG89d3IhPT1PMSwkbyl7aWYodGhpcy5fX2VkaXRpbmdDZWxsJiZ0aGlzLl9fZWRpdGluZ0NlbGwucm93SWQ9PT1BdCYmdGhpcy5fX2VkaXRpbmdDZWxsLmNvbEtleT09PVppKWNvbnRpbnVlO2xldCBXbj10dC5nZXQoQXQpO1dufHwoV249bmV3IFNldCx0dC5zZXQoQXQsV24pKSxXbi5hZGQoWmkpfX19bGV0IHB0PSEhdGhpcy5fX3ByZXZTbmFwc2hvdDtpZih0aGlzLl9fcHJldlNuYXBzaG90PVJlLCFwdHx8dHQuc2l6ZT09PTApcmV0dXJuO2xldCBmdD0rK3RoaXMuX19mbGFzaFRpY2ssTHQ9bmV3IE1hcCh0aGlzLl9fZmxhc2hpbmdDZWxscyk7Zm9yKGxldFtVcixBdF1vZiB0dCl7bGV0IG1zPW5ldyBNYXAoTHQuZ2V0KFVyKT8/W10pO2ZvcihsZXQgdTEgb2YgQXQpbXMuc2V0KHUxLGZ0KTtMdC5zZXQoVXIsbXMpfXRoaXMuX19mbGFzaGluZ0NlbGxzPUx0LHRoaXMuX19mbGFzaENsZWFyVGltZXImJmNsZWFyVGltZW91dCh0aGlzLl9fZmxhc2hDbGVhclRpbWVyKSx0aGlzLl9fZmxhc2hDbGVhclRpbWVyPXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9fZmxhc2hpbmdDZWxscz1uZXcgTWFwLHRoaXMuX19mbGFzaENsZWFyVGltZXI9dm9pZCAwfSxNYXRoLm1heCgwLHRoaXMuaGlnaGxpZ2h0RHVyYXRpb24pKX1hc3luYyB1cGRhdGVkKFIpe3N1cGVyLnVwZGF0ZWQoUik7bGV0IEk9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKSx0ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik/P251bGwsUGU9dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiaW5Sb3ciKS5sZW5ndGg7Ui5oYXMoImhpZ2hsaWdodER1cmF0aW9uIikmJnRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tZGVlcy10YWJsZS1mbGFzaC1kdXJhdGlvbiIsYCR7dGhpcy5oaWdobGlnaHREdXJhdGlvbn1tc2ApO2xldCBSZT0hIXRlJiYoIXRoaXMuX19jb2x1bW5zU2l6ZWRGb3J8fHRoaXMuX19jb2x1bW5zU2l6ZWRGb3IuZWZmZWN0aXZlQ29sdW1ucyE9PUl8fHRoaXMuX19jb2x1bW5zU2l6ZWRGb3Iuc2hvd1NlbGVjdGlvbkNoZWNrYm94IT09dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3h8fHRoaXMuX19jb2x1bW5zU2l6ZWRGb3IuaW5Sb3dBY3Rpb25Db3VudCE9PVBlfHx0aGlzLl9fY29sdW1uc1NpemVkRm9yLnRhYmxlIT09dGUpO3RlJiZSZSYmKHRoaXMuX19jb2x1bW5zU2l6ZWRGb3I9e2VmZmVjdGl2ZUNvbHVtbnM6SSxzaG93U2VsZWN0aW9uQ2hlY2tib3g6dGhpcy5zaG93U2VsZWN0aW9uQ2hlY2tib3gsaW5Sb3dBY3Rpb25Db3VudDpQZSx0YWJsZTp0ZX0sdGhpcy5kZXRlcm1pbmVDb2x1bW5XaWR0aHMoKSx0aGlzLl9fcm93SGVpZ2h0TWVhc3VyZWQ9ITEpLHRoaXMudmlydHVhbGl6ZWQmJih0aGlzLl9fbWVhc3VyZVJvd0hlaWdodCgpLHRoaXMuX19jb21wdXRlVmlydHVhbFJhbmdlKCkpLChSLmhhcygiZml4ZWRIZWlnaHQiKXx8Ui5oYXMoInZpcnR1YWxpemVkIil8fFIuaGFzKCJkYXRhIil8fFIuaGFzKCJjb2x1bW5zIil8fCF0aGlzLl9fZmxvYXRpbmdTY3JvbGxIYW5kbGVyKSYmKCghdGhpcy5maXhlZEhlaWdodHx8dGhpcy52aXJ0dWFsaXplZCkmJnRoaXMuZGF0YS5sZW5ndGg+MD90aGlzLnNldHVwRmxvYXRpbmdIZWFkZXIoKTp0aGlzLnRlYXJkb3duRmxvYXRpbmdIZWFkZXIoKSksIXRoaXMuZml4ZWRIZWlnaHQmJnRoaXMuZGF0YS5sZW5ndGg+MCYmKHRoaXMuX19mbG9hdGluZ0FjdGl2ZXx8UmUpJiZ0aGlzLl9fc3luY0Zsb2F0aW5nSGVhZGVyKCksdGhpcy5zZWFyY2hhYmxlJiYodGhpcy5kYXRhQWN0aW9ucy5maW5kKHB0PT5wdC50eXBlPy5pbmNsdWRlcygiaGVhZGVyIikmJnB0Lm5hbWU9PT0iU2VhcmNoIil8fCh0aGlzLmRhdGFBY3Rpb25zLnVuc2hpZnQoe25hbWU6IlNlYXJjaCIsaWNvbk5hbWU6Imx1Y2lkZTpTZWFyY2giLHR5cGU6WyJoZWFkZXIiXSxhY3Rpb25GdW5jOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJvcGVuIHNlYXJjaCIpLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoR3JpZCIpLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIpfSwiYWN0aW9uRnVuYyIpfSksY29uc29sZS5sb2codGhpcy5kYXRhQWN0aW9ucyksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpLHRoaXMud2lyZVNlYXJjaElucHV0cygpKX1fX2RlYm91bmNlVGltZXI7ZGVib3VuY2VSdW4oUixJPTIwMCl7dGhpcy5fX2RlYm91bmNlVGltZXImJmNsZWFyVGltZW91dCh0aGlzLl9fZGVib3VuY2VUaW1lciksdGhpcy5fX2RlYm91bmNlVGltZXI9c2V0VGltZW91dChSLEkpfXdpcmVTZWFyY2hJbnB1dHMoKXtsZXQgUj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIGRlZXMtaW5wdXQtdGV4dCIpLEk9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoR3JpZCBkZWVzLWlucHV0LW11bHRpdG9nZ2xlIik7UiYmIXRoaXMuX19zZWFyY2hUZXh0U3ViJiYodGhpcy5fX3NlYXJjaFRleHRTdWI9Ui5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSh0ZT0+e2xldCBQZT10ZT8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTpQZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dChQZSl9KX0pKSxJJiYhdGhpcy5fX3NlYXJjaE1vZGVTdWImJih0aGlzLl9fc2VhcmNoTW9kZVN1Yj1JLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKHRlPT57bGV0IFBlPXRlPy5zZWxlY3RlZE9wdGlvbnx8dGU/LnZhbHVlfHwidGFibGUiO2lmKFBlPT09InRhYmxlInx8UGU9PT0iZGF0YSJ8fFBlPT09InNlcnZlciIpe3RoaXMuc2VhcmNoTW9kZT1QZTtsZXQgUmU9Uj8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTpSZSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dChSZSl9KX19KSl9YXN5bmMgZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCl7YXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IEk9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoInRhYmxlIik7aWYoIUkpcmV0dXJuO2xldCB0ZT1JLnJvd3NbMF0uY2VsbHMsUGU9aShhc3luYyhSZSx0dD0hMSk9PntsZXQgcHQ9JHQuZGVmZXIoKSxmdD10ZVtSZV0sTHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZnQpLndpZHRoO2lmKGZ0LnRleHRDb250ZW50LmluY2x1ZGVzKCJBY3Rpb25zIikpe2xldCBVcj10aGlzLmRhdGFBY3Rpb25zLmZpbHRlcihBdD0+QXQudHlwZT8uaW5jbHVkZXMoImluUm93IikpLmxlbmd0aCozNjtmdC5zdHlsZS53aWR0aD1gJHtNYXRoLm1heChVciw2OCl9cHhgfWVsc2UgZnQuc3R5bGUud2lkdGg9THQ7dHQmJihyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntwdC5yZXNvbHZlKCl9KSxhd2FpdCBwdC5wcm9taXNlKX0sImhhbmRsZUNvbHVtbkJ5SW5kZXgiKTt0ZVt0ZS5sZW5ndGgtMV0udGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKSYmYXdhaXQgUGUodGUubGVuZ3RoLTEsITApO2ZvcihsZXQgUmU9MDtSZTx0ZS5sZW5ndGg7UmUrKyl0ZVtSZV0udGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKXx8YXdhaXQgUGUoUmUpO0kuc3R5bGUudGFibGVMYXlvdXQ9ImZpeGVkIn1nZXRTb3J0RGVzY3JpcHRvcihSKXtyZXR1cm4gdGhpcy5zb3J0QnkuZmluZChJPT5JLmtleT09PVIpfWdldFNvcnRQcmlvcml0eShSKXtyZXR1cm4gdGhpcy5zb3J0QnkuZmluZEluZGV4KEk9Pkkua2V5PT09Uil9c2V0U29ydChSLEkpe3RoaXMuc29ydEJ5PVt7a2V5OlIsZGlyOkl9XSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YWRkU29ydEF0KFIsSSx0ZSl7bGV0IFBlPXRoaXMuc29ydEJ5LmZpbHRlcih0dD0+dHQua2V5IT09UiksUmU9TWF0aC5tYXgoMCxNYXRoLm1pbihJLFBlLmxlbmd0aCkpO1BlLnNwbGljZShSZSwwLHtrZXk6UixkaXI6dGV9KSx0aGlzLnNvcnRCeT1QZSx0aGlzLmVtaXRTb3J0Q2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXBwZW5kU29ydChSLEkpe2xldCB0ZT10aGlzLnNvcnRCeS5maWx0ZXIoUGU9PlBlLmtleSE9PVIpO3RlLnB1c2goe2tleTpSLGRpcjpJfSksdGhpcy5zb3J0Qnk9dGUsdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXJlbW92ZVNvcnQoUil7dGhpcy5zb3J0Qnkuc29tZShJPT5JLmtleT09PVIpJiYodGhpcy5zb3J0Qnk9dGhpcy5zb3J0QnkuZmlsdGVyKEk9Pkkua2V5IT09UiksdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1jbGVhclNvcnRzKCl7dGhpcy5zb3J0QnkubGVuZ3RoIT09MCYmKHRoaXMuc29ydEJ5PVtdLHRoaXMuZW1pdFNvcnRDaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9ZW1pdFNvcnRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzb3J0Q2hhbmdlIix7ZGV0YWlsOntzb3J0Qnk6dGhpcy5zb3J0QnkubWFwKFI9Pih7Li4uUn0pKX0sYnViYmxlczohMH0pKX1hc3luYyBoYW5kbGVIZWFkZXJDbGljayhSLEksdGUpe2lmKFIuc2hpZnRLZXkpe3RoaXMuaGFuZGxlSGVhZGVyU2hpZnRDbGljayhJKTtyZXR1cm59YXdhaXQgdGhpcy5jb25maXJtUmVwbGFjZUNhc2NhZGUoSSkmJnRoaXMuY3ljbGVTaW5nbGVTb3J0KEkpfWN5Y2xlU2luZ2xlU29ydChSKXtsZXQgST1TdHJpbmcoUi5rZXkpLHRlPXRoaXMuc29ydEJ5Lmxlbmd0aD09PTEmJnRoaXMuc29ydEJ5WzBdLmtleT09PUk/dGhpcy5zb3J0QnlbMF0uZGlyOm51bGw7dGU9PT0iYXNjIj90aGlzLnNldFNvcnQoSSwiZGVzYyIpOnRlPT09ImRlc2MiP3RoaXMuY2xlYXJTb3J0cygpOnRoaXMuc2V0U29ydChJLCJhc2MiKX1oYW5kbGVIZWFkZXJTaGlmdENsaWNrKFIpe2xldCBJPVN0cmluZyhSLmtleSksdGU9dGhpcy5nZXRTb3J0RGVzY3JpcHRvcihJKTt0ZT90ZS5kaXI9PT0iYXNjIj8odGhpcy5zb3J0Qnk9dGhpcy5zb3J0QnkubWFwKFBlPT5QZS5rZXk9PT1JP3trZXk6SSxkaXI6ImRlc2MifTpQZSksdGhpcy5lbWl0U29ydENoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKTp0aGlzLnJlbW92ZVNvcnQoSSk6dGhpcy5hcHBlbmRTb3J0KEksImFzYyIpfWNvbmZpcm1SZXBsYWNlQ2FzY2FkZShSKXtyZXR1cm4gdGhpcy5zb3J0QnkubGVuZ3RoPD0xP1Byb21pc2UucmVzb2x2ZSghMCk6bmV3IFByb21pc2UoST0+e2xldCB0ZT0hMSxQZT1pKHR0PT57dGV8fCh0ZT0hMCxJKHR0KSl9LCJzZXR0bGUiKSxSZT10aGlzLnNvcnRCeS5tYXAoKHR0LHB0KT0+e2xldCBMdD10aGlzLl9sb29rdXBDb2x1bW5CeUtleT8uKHR0LmtleSk/LmhlYWRlcj8/dHQua2V5O3JldHVybiB3YDxsaT4ke3B0KzF9LiAke0x0fSAke3R0LmRpcj09PSJhc2MiPyJcdTI1QjIiOiJcdTI1QkMifTwvbGk+YH0pO2VhLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlJlcGxhY2UgbXVsdGktY29sdW1uIHNvcnQ/Iix3aWR0aDoic21hbGwiLHNob3dDbG9zZUJ1dHRvbjohMCxjb250ZW50OndgCiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6MTNweDsgbGluZS1oZWlnaHQ6MS41NTsiPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOjAgMCA4cHg7Ij4KICAgICAgICAgICAgICBZb3UgY3VycmVudGx5IGhhdmUgYSAke3RoaXMuc29ydEJ5Lmxlbmd0aH0tY29sdW1uIHNvcnQgYWN0aXZlOgogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDx1bCBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4OyBwYWRkaW5nLWxlZnQ6MThweDsiPiR7UmV9PC91bD4KICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjowOyI+CiAgICAgICAgICAgICAgQ29udGludWluZyB3aWxsIGRpc2NhcmQgdGhlIGNhc2NhZGUgYW5kIHJlcGxhY2UgaXQgd2l0aCBhIHNpbmdsZSBzb3J0IG9uCiAgICAgICAgICAgICAgPHN0cm9uZz4ke1IuaGVhZGVyPz9TdHJpbmcoUi5rZXkpfTwvc3Ryb25nPi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsaWNvbk5hbWU6Imx1Y2lkZTp4IixhY3Rpb246aShhc3luYyB0dD0+KFBlKCExKSxhd2FpdCB0dC5kZXN0cm95KCksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiUmVwbGFjZSIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVjayIsYWN0aW9uOmkoYXN5bmMgdHQ9PihQZSghMCksYXdhaXQgdHQuZGVzdHJveSgpLG51bGwpLCJhY3Rpb24iKX1dfSl9KX1fbG9va3VwQ29sdW1uQnlLZXkoUil7cmV0dXJuIHRoaXMuX19nZXRFZmZlY3RpdmVDb2x1bW5zKCkuZmluZCh0ZT0+U3RyaW5nKHRlLmtleSk9PT1SKX1vcGVuSGVhZGVyQ29udGV4dE1lbnUoUixJLHRlKXtsZXQgUGU9dGhpcy5idWlsZEhlYWRlck1lbnVJdGVtcyhJLHRlKTtDci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhSLFBlKX1idWlsZEhlYWRlck1lbnVJdGVtcyhSLEkpe2xldCB0ZT1TdHJpbmcoUi5rZXkpLFBlPXRoaXMuZ2V0U29ydERlc2NyaXB0b3IodGUpLFJlPXRoaXMuc29ydEJ5Lmxlbmd0aCx0dD1JLmZpbHRlcihMdD0+THQuc29ydGFibGUhPT0hMSkubGVuZ3RoLHB0PU1hdGgubWluKE1hdGgubWF4KFJlKyhQZT8wOjEpLDEpLE1hdGgubWF4KHR0LDEpKSxmdD1bXTtmdC5wdXNoKHtuYW1lOiJTb3J0IEFzY2VuZGluZyIsaWNvbk5hbWU6UmU9PT0xJiZQZT8uZGlyPT09ImFzYyI/Imx1Y2lkZTpjaGVjayI6Imx1Y2lkZTphcnJvd1VwIixhY3Rpb246aShhc3luYygpPT4oYXdhaXQgdGhpcy5jb25maXJtUmVwbGFjZUNhc2NhZGUoUikmJnRoaXMuc2V0U29ydCh0ZSwiYXNjIiksbnVsbCksImFjdGlvbiIpfSksZnQucHVzaCh7bmFtZToiU29ydCBEZXNjZW5kaW5nIixpY29uTmFtZTpSZT09PTEmJlBlPy5kaXI9PT0iZGVzYyI/Imx1Y2lkZTpjaGVjayI6Imx1Y2lkZTphcnJvd0Rvd24iLGFjdGlvbjppKGFzeW5jKCk9Pihhd2FpdCB0aGlzLmNvbmZpcm1SZXBsYWNlQ2FzY2FkZShSKSYmdGhpcy5zZXRTb3J0KHRlLCJkZXNjIiksbnVsbCksImFjdGlvbiIpfSksZnQucHVzaCh7ZGl2aWRlcjohMH0pO2ZvcihsZXQgTHQ9MTtMdDw9cHQ7THQrKyl7bGV0IFVyPWNGYShMdCksQXQ9UGUmJnRoaXMuZ2V0U29ydFByaW9yaXR5KHRlKT09PUx0LTE7ZnQucHVzaCh7bmFtZTpgU2V0IGFzICR7VXJ9IHNvcnRgLGljb25OYW1lOkF0PyJsdWNpZGU6Y2hlY2siOiJsdWNpZGU6bGlzdE9yZGVyZWQiLHN1Ym1lbnU6W3tuYW1lOiJBc2NlbmRpbmciLGljb25OYW1lOiJsdWNpZGU6YXJyb3dVcCIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuYWRkU29ydEF0KHRlLEx0LTEsImFzYyIpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IkRlc2NlbmRpbmciLGljb25OYW1lOiJsdWNpZGU6YXJyb3dEb3duIixhY3Rpb246aShhc3luYygpPT4odGhpcy5hZGRTb3J0QXQodGUsTHQtMSwiZGVzYyIpLG51bGwpLCJhY3Rpb24iKX1dfSl9cmV0dXJuIGZ0LnB1c2goe2RpdmlkZXI6ITB9KSxmdC5wdXNoKHtuYW1lOiJBcHBlbmQgdG8gc29ydCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixzdWJtZW51Olt7bmFtZToiQXNjZW5kaW5nIixpY29uTmFtZToibHVjaWRlOmFycm93VXAiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLmFwcGVuZFNvcnQodGUsImFzYyIpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IkRlc2NlbmRpbmciLGljb25OYW1lOiJsdWNpZGU6YXJyb3dEb3duIixhY3Rpb246aShhc3luYygpPT4odGhpcy5hcHBlbmRTb3J0KHRlLCJkZXNjIiksbnVsbCksImFjdGlvbiIpfV19KSxQZSYmKGZ0LnB1c2goe2RpdmlkZXI6ITB9KSxmdC5wdXNoKHtuYW1lOiJSZW1vdmUgZnJvbSBzb3J0IixpY29uTmFtZToibHVjaWRlOm1pbnVzIixhY3Rpb246aShhc3luYygpPT4odGhpcy5yZW1vdmVTb3J0KHRlKSxudWxsKSwiYWN0aW9uIil9KSksUmU+MCYmKFBlfHxmdC5wdXNoKHtkaXZpZGVyOiEwfSksZnQucHVzaCh7bmFtZToiQ2xlYXIgYWxsIHNvcnRzIixpY29uTmFtZToibHVjaWRlOnRyYXNoIixhY3Rpb246aShhc3luYygpPT4odGhpcy5jbGVhclNvcnRzKCksbnVsbCksImFjdGlvbiIpfSkpLGZ0LnB1c2goe2RpdmlkZXI6ITB9KSxmdC5wdXNoKHtuYW1lOnRoaXMuc2hvd0NvbHVtbkZpbHRlcnM/IkhpZGUgY29sdW1uIGZpbHRlcnMiOiJTaG93IGNvbHVtbiBmaWx0ZXJzIixpY29uTmFtZTp0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPyJsdWNpZGU6ZmlsdGVyWCI6Imx1Y2lkZTpmaWx0ZXIiLGFjdGlvbjppKGFzeW5jKCk9Pih0aGlzLnNob3dDb2x1bW5GaWx0ZXJzPSF0aGlzLnNob3dDb2x1bW5GaWx0ZXJzLHRoaXMucmVxdWVzdFVwZGF0ZSgpLG51bGwpLCJhY3Rpb24iKX0pLGZ0fWdldEFyaWFTb3J0KFIpe2xldCBJPXRoaXMuc29ydEJ5WzBdO3JldHVybiFJfHxJLmtleSE9PVN0cmluZyhSLmtleSk/Im5vbmUiOkkuZGlyPT09ImFzYyI/ImFzY2VuZGluZyI6ImRlc2NlbmRpbmcifXJlbmRlclNvcnRJbmRpY2F0b3IoUil7bGV0IEk9dGhpcy5nZXRTb3J0UHJpb3JpdHkoU3RyaW5nKFIua2V5KSk7aWYoSTwwKXJldHVybiB3YGA7bGV0IFBlPXRoaXMuc29ydEJ5W0ldLmRpcj09PSJhc2MiPyJcdTI1QjIiOiJcdTI1QkMiO3JldHVybiB0aGlzLnNvcnRCeS5sZW5ndGg9PT0xP3dgPHNwYW4gY2xhc3M9InNvcnRBcnJvdyI+JHtQZX08L3NwYW4+YDp3YDxzcGFuIGNsYXNzPSJzb3J0QXJyb3ciPiR7UGV9PC9zcGFuPjxzcGFuIGNsYXNzPSJzb3J0QmFkZ2UiPiR7SSsxfTwvc3Bhbj5gfXNldEZpbHRlclRleHQoUil7bGV0IEk9dGhpcy5maWx0ZXJUZXh0O3RoaXMuZmlsdGVyVGV4dD1SPz8iIixJIT09dGhpcy5maWx0ZXJUZXh0JiYodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1zZXRDb2x1bW5GaWx0ZXIoUixJKXt0aGlzLmNvbHVtbkZpbHRlcnM9ey4uLnRoaXMuY29sdW1uRmlsdGVycyxbUl06SX0sdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWdldFJvd0lkKFIpe2lmKHRoaXMucm93S2V5KXJldHVybiB0eXBlb2YgdGhpcy5yb3dLZXk9PSJmdW5jdGlvbiI/dGhpcy5yb3dLZXkoUik6U3RyaW5nKFJbdGhpcy5yb3dLZXldKTtsZXQgST1SO3JldHVybiB0aGlzLl9yb3dJZE1hcC5oYXMoSSl8fHRoaXMuX3Jvd0lkTWFwLnNldChJLFN0cmluZygrK3RoaXMuX3Jvd0lkQ291bnRlcikpLHRoaXMuX3Jvd0lkTWFwLmdldChJKX1pc1Jvd1NlbGVjdGVkKFIpe3JldHVybiB0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKFIpKX10b2dnbGVSb3dTZWxlY3RlZChSKXtsZXQgST10aGlzLmdldFJvd0lkKFIpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksdGhpcy5zZWxlY3RlZElkcy5hZGQoSSkpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJih0aGlzLnNlbGVjdGVkSWRzLmhhcyhJKT90aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShJKTp0aGlzLnNlbGVjdGVkSWRzLmFkZChJKSksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9X19yZXNvbHZlUm93KFIpe2xldCBJPVIuY29tcG9zZWRQYXRoPy4oKXx8W10sdGU9bnVsbDtmb3IobGV0IHB0IG9mIEkpe2xldCBmdD1wdDtpZihmdD8udGFnTmFtZT09PSJUUiImJmZ0Lmhhc0F0dHJpYnV0ZSgiZGF0YS1yb3ctaWR4Iikpe3RlPWZ0O2JyZWFrfX1pZighdGUpcmV0dXJuIG51bGw7bGV0IFBlPU51bWJlcih0ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcm93LWlkeCIpKSx0dD0odGhpcy5fbGFzdFZpZXdEYXRhPz9bXSlbUGVdO3JldHVybiB0dD97aXRlbTp0dCxyb3dJZHg6UGV9Om51bGx9X19yZXNvbHZlQ2VsbChSKXtsZXQgST10aGlzLl9fcmVzb2x2ZVJvdyhSKTtpZighSSlyZXR1cm4gbnVsbDtsZXQgdGU9Ui5jb21wb3NlZFBhdGg/LigpfHxbXSxQZT1udWxsO2ZvcihsZXQgZnQgb2YgdGUpe2xldCBMdD1mdDtpZihMdD8udGFnTmFtZT09PSJURCImJkx0Lmhhc0F0dHJpYnV0ZSgiZGF0YS1jb2wta2V5Iikpe1BlPUx0O2JyZWFrfX1pZighUGUpcmV0dXJuIG51bGw7bGV0IFJlPVBlLmdldEF0dHJpYnV0ZSgiZGF0YS1jb2wta2V5IikscHQ9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKS5maW5kKGZ0PT5TdHJpbmcoZnQua2V5KT09PVJlKTtyZXR1cm4gcHQ/e2l0ZW06SS5pdGVtLHJvd0lkeDpJLnJvd0lkeCxjb2w6cHR9Om51bGx9X19pc0luQWN0aW9uc0NvbChSKXtsZXQgST1SLmNvbXBvc2VkUGF0aD8uKCl8fFtdO2ZvcihsZXQgdGUgb2YgSSlpZih0ZT8uY2xhc3NMaXN0Py5jb250YWlucygiYWN0aW9uc0NvbCIpKXJldHVybiEwO3JldHVybiExfV9faXNJbkVkaXRvcihSKXtsZXQgST1SLmNvbXBvc2VkUGF0aD8uKCl8fFtdO2ZvcihsZXQgdGUgb2YgSSl7bGV0IFBlPXRlLFJlPVBlPy50YWdOYW1lO2lmKFJlPT09IklOUFVUInx8UmU9PT0iVEVYVEFSRUEifHxQZT8uaXNDb250ZW50RWRpdGFibGV8fFJlJiZSZS5zdGFydHNXaXRoKCJERUVTLUlOUFVULSIpKXJldHVybiEwfXJldHVybiExfV9fb25UYm9keUNsaWNrPWkoUj0+e2lmKHRoaXMuX19pc0luRWRpdG9yKFIpfHx0aGlzLl9faXNJbkFjdGlvbnNDb2woUikpcmV0dXJuO2xldCBJPXRoaXMuX19yZXNvbHZlQ2VsbChSKTtpZighSSlyZXR1cm47bGV0IHRlPXRoaXMuX2xhc3RWaWV3RGF0YT8/W107KEkuY29sLmVkaXRhYmxlfHxJLmNvbC5lZGl0b3IpJiYodGhpcy5fX2ZvY3VzZWRDZWxsPXtyb3dJZDp0aGlzLmdldFJvd0lkKEkuaXRlbSksY29sS2V5OlN0cmluZyhJLmNvbC5rZXkpfSksdGhpcy5oYW5kbGVSb3dDbGljayhSLEkuaXRlbSxJLnJvd0lkeCx0ZSl9LCJfX29uVGJvZHlDbGljayIpO19fb25UYm9keURibGNsaWNrPWkoUj0+e2lmKHRoaXMuX19pc0luRWRpdG9yKFIpfHx0aGlzLl9faXNJbkFjdGlvbnNDb2woUikpcmV0dXJuO2xldCBJPXRoaXMuX19yZXNvbHZlQ2VsbChSKTtpZighSSlyZXR1cm47aWYoISEoSS5jb2wuZWRpdGFibGV8fEkuY29sLmVkaXRvcikpe1Iuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zdGFydEVkaXRpbmcoSS5pdGVtLEkuY29sKTtyZXR1cm59bGV0IFBlPXRoaXMuZGF0YUFjdGlvbnMuZmluZChSZT0+UmUudHlwZT8uaW5jbHVkZXMoImRvdWJsZUNsaWNrIikpO1BlJiZQZS5hY3Rpb25GdW5jKHtpdGVtOkkuaXRlbSx0YWJsZTp0aGlzfSl9LCJfX29uVGJvZHlEYmxjbGljayIpO19fb25UYm9keU1vdXNlZG93bj1pKFI9PntSLnNoaWZ0S2V5JiZ0aGlzLnNlbGVjdGlvbk1vZGUhPT0ic2luZ2xlIiYmUi5wcmV2ZW50RGVmYXVsdCgpfSwiX19vblRib2R5TW91c2Vkb3duIik7X19vblRib2R5Q29udGV4dG1lbnU9aShSPT57aWYodGhpcy5fX2lzSW5BY3Rpb25zQ29sKFIpKXJldHVybjtsZXQgST10aGlzLl9fcmVzb2x2ZVJvdyhSKTtpZighSSlyZXR1cm47bGV0IHRlPUkuaXRlbTt0aGlzLmlzUm93U2VsZWN0ZWQodGUpfHwodGhpcy5zZWxlY3RlZERhdGFSb3c9dGUsdGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQodGUpKSx0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9dGhpcy5nZXRSb3dJZCh0ZSksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpO2xldCBQZT10aGlzLmdldEFjdGlvbnNGb3JUeXBlKCJjb250ZXh0bWVudSIpLm1hcCh0dD0+KHtuYW1lOnR0Lm5hbWUsaWNvbk5hbWU6dHQuaWNvbk5hbWUsYWN0aW9uOmkoYXN5bmMoKT0+KGF3YWl0IHR0LmFjdGlvbkZ1bmMoe2l0ZW06dGUsdGFibGU6dGhpc30pLG51bGwpLCJhY3Rpb24iKX0pKSxSZT1be25hbWU6dGhpcy5zZWxlY3RlZElkcy5zaXplPjE/YENvcHkgJHt0aGlzLnNlbGVjdGVkSWRzLnNpemV9IHJvd3MgYXMgSlNPTmA6IkNvcHkgcm93IGFzIEpTT04iLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmkoYXN5bmMoKT0+KHRoaXMuY29weVNlbGVjdGlvbkFzSnNvbih0ZSksbnVsbCksImFjdGlvbiIpfV07Q3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoUixbLi4uUGUsLi4uUmVdKX0sIl9fb25UYm9keUNvbnRleHRtZW51Iik7X19vblRib2R5RHJhZ2VudGVyPWkoUj0+e2lmKFIucHJldmVudERlZmF1bHQoKSxSLnN0b3BQcm9wYWdhdGlvbigpLCF0aGlzLl9fcmVzb2x2ZVJvdyhSKSlyZXR1cm47bGV0IHRlPShSLmNvbXBvc2VkUGF0aD8uKCl8fFtdKS5maW5kKFBlPT5QZT8udGFnTmFtZT09PSJUUiIpO3RlJiZzZXRUaW1lb3V0KCgpPT50ZS5jbGFzc0xpc3QuYWRkKCJoYXNBdHRhY2htZW50IiksMCl9LCJfX29uVGJvZHlEcmFnZW50ZXIiKTtfX29uVGJvZHlEcmFnbGVhdmU9aShSPT57Ui5wcmV2ZW50RGVmYXVsdCgpLFIuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEk9KFIuY29tcG9zZWRQYXRoPy4oKXx8W10pLmZpbmQodGU9PnRlPy50YWdOYW1lPT09IlRSIik7SSYmSS5jbGFzc0xpc3QucmVtb3ZlKCJoYXNBdHRhY2htZW50Iil9LCJfX29uVGJvZHlEcmFnbGVhdmUiKTtfX29uVGJvZHlEcmFnb3Zlcj1pKFI9PntSLnByZXZlbnREZWZhdWx0KCl9LCJfX29uVGJvZHlEcmFnb3ZlciIpO19fb25UYm9keURyb3A9aShhc3luYyBSPT57Ui5wcmV2ZW50RGVmYXVsdCgpO2xldCBJPXRoaXMuX19yZXNvbHZlUm93KFIpO2lmKCFJKXJldHVybjtsZXQgdGU9SS5pdGVtLFBlPVtdO2ZvcihsZXQgdHQgb2YgQXJyYXkuZnJvbShSLmRhdGFUcmFuc2Zlci5maWxlcykpdGhpcy5maWxlcy5wdXNoKHR0KSxQZS5wdXNoKHR0KSx0aGlzLnJlcXVlc3RVcGRhdGUoKTtsZXQgUmU9dGhpcy5maWxlV2Vha01hcC5nZXQodGUpO1JlP1JlLnB1c2goLi4uUGUpOnRoaXMuZmlsZVdlYWtNYXAuc2V0KHRlLFBlKX0sIl9fb25UYm9keURyb3AiKTtoYW5kbGVSb3dDbGljayhSLEksdGUsUGUpe2xldCBSZT10aGlzLmdldFJvd0lkKEkpO2lmKHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiKXt0aGlzLnNlbGVjdGVkRGF0YVJvdz1JLHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZChSZSksdGhpcy5fX3NlbGVjdGlvbkFuY2hvcklkPVJlLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpO3JldHVybn1sZXQgdHQ9Ui5tZXRhS2V5fHxSLmN0cmxLZXk7aWYoUi5zaGlmdEtleSYmdGhpcy5fX3NlbGVjdGlvbkFuY2hvcklkIT09dm9pZCAwKXt3aW5kb3cuZ2V0U2VsZWN0aW9uPy4oKT8ucmVtb3ZlQWxsUmFuZ2VzKCk7bGV0IGZ0PVBlLmZpbmRJbmRleChMdD0+dGhpcy5nZXRSb3dJZChMdCk9PT10aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQpO2lmKGZ0Pj0wKXtsZXRbTHQsVXJdPWZ0PD10ZT9bZnQsdGVdOlt0ZSxmdF07dGhpcy5zZWxlY3RlZElkcy5jbGVhcigpO2ZvcihsZXQgQXQ9THQ7QXQ8PVVyO0F0KyspdGhpcy5zZWxlY3RlZElkcy5hZGQodGhpcy5nZXRSb3dJZChQZVtBdF0pKX1lbHNlIHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZChSZSksdGhpcy5fX3NlbGVjdGlvbkFuY2hvcklkPVJlO3RoaXMuc2VsZWN0ZWREYXRhUm93PUl9ZWxzZSBpZih0dCl7aWYodGhpcy5zZWxlY3RlZElkcy5oYXMoUmUpKXtpZih0aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShSZSksdGhpcy5zZWxlY3RlZERhdGFSb3c9PT1JKXtsZXQgTHQ9UGUuZmluZChVcj0+dGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChVcikpKTt0aGlzLnNlbGVjdGVkRGF0YVJvdz1MdH19ZWxzZSB0aGlzLnNlbGVjdGVkSWRzLmFkZChSZSksdGhpcy5zZWxlY3RlZERhdGFSb3c9STt0aGlzLl9fc2VsZWN0aW9uQW5jaG9ySWQ9UmV9ZWxzZSB0aGlzLnNlbGVjdGVkRGF0YVJvdz1JLHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZChSZSksdGhpcy5fX3NlbGVjdGlvbkFuY2hvcklkPVJlO3RoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXNldFJvd1NlbGVjdGVkKFIsSSl7bGV0IHRlPXRoaXMuZ2V0Um93SWQoUik7dGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/KHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSxJJiZ0aGlzLnNlbGVjdGVkSWRzLmFkZCh0ZSkpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJihJP3RoaXMuc2VsZWN0ZWRJZHMuYWRkKHRlKTp0aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZSh0ZSkpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFyZUFsbFZpc2libGVTZWxlY3RlZCgpe2xldCBSPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoUi5sZW5ndGg9PT0wKXJldHVybiExO2ZvcihsZXQgSSBvZiBSKWlmKCF0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKEkpKSlyZXR1cm4hMTtyZXR1cm4hMH1pc1Zpc2libGVTZWxlY3Rpb25JbmRldGVybWluYXRlKCl7bGV0IFI9dGhpcy5fbGFzdFZpZXdEYXRhfHxbXTtpZihSLmxlbmd0aD09PTApcmV0dXJuITE7bGV0IEk9MDtmb3IobGV0IHRlIG9mIFIpdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZCh0ZSkpJiZJKys7cmV0dXJuIEk+MCYmSTxSLmxlbmd0aH1zZXRTZWxlY3RWaXNpYmxlKFIpe2xldCBJPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoUilmb3IobGV0IHRlIG9mIEkpdGhpcy5zZWxlY3RlZElkcy5hZGQodGhpcy5nZXRSb3dJZCh0ZSkpO2Vsc2UgZm9yKGxldCB0ZSBvZiBJKXRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKHRoaXMuZ2V0Um93SWQodGUpKTt0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1lbWl0U2VsZWN0aW9uQ2hhbmdlKCl7bGV0IFI9QXJyYXkuZnJvbSh0aGlzLnNlbGVjdGVkSWRzKSxJPXRoaXMuZGF0YS5maWx0ZXIodGU9PnRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQodGUpKSk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZElkczpSLHNlbGVjdGVkUm93czpJfSxidWJibGVzOiEwfSkpfWdldEFjdGlvbnNGb3JUeXBlKFIpe2xldCBJPVtdO2ZvcihsZXQgdGUgb2YgdGhpcy5kYXRhQWN0aW9ucyl0ZS50eXBlPy5pbmNsdWRlcyhSKSYmSS5wdXNoKHRlKTtyZXR1cm4gSX1fX2lzQ29sdW1uRWRpdGFibGUoUil7cmV0dXJuISEoUi5lZGl0YWJsZXx8Ui5lZGl0b3IpfV9fZWRpdGFibGVDb2x1bW5zKFIpe3JldHVybiBSLmZpbHRlcihJPT4hSS5oaWRkZW4mJnRoaXMuX19pc0NvbHVtbkVkaXRhYmxlKEkpKX1zdGFydEVkaXRpbmcoUixJKXtpZighdGhpcy5fX2lzQ29sdW1uRWRpdGFibGUoSSkpcmV0dXJuO2xldCB0ZT10aGlzLmdldFJvd0lkKFIpLFBlPVN0cmluZyhJLmtleSk7dGhpcy5fX2ZvY3VzZWRDZWxsPXtyb3dJZDp0ZSxjb2xLZXk6UGV9LHRoaXMuX19lZGl0aW5nQ2VsbD17cm93SWQ6dGUsY29sS2V5OlBlfSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgUmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC10ZXh0LCAuZWRpdGluZ0NlbGwgZGVlcy1pbnB1dC1jaGVja2JveCwgLmVkaXRpbmdDZWxsIGRlZXMtaW5wdXQtZHJvcGRvd24sIC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LWRhdGVwaWNrZXIsIC5lZGl0aW5nQ2VsbCBkZWVzLWlucHV0LXRhZ3MiKTtSZT8uZm9jdXM/LigpLFJlPy50YWdOYW1lPT09IkRFRVMtSU5QVVQtRFJPUERPV04iJiZSZS51cGRhdGVDb21wbGV0ZT8udGhlbigoKT0+UmUudG9nZ2xlU2VsZWN0aW9uQm94Py4oKSl9KX1jYW5jZWxDZWxsRWRpdCgpe3RoaXMuX19lZGl0aW5nQ2VsbD12b2lkIDAsdGhpcy5yZXF1ZXN0VXBkYXRlKCl9Y29tbWl0Q2VsbEVkaXQoUixJLHRlKXtsZXQgUGU9U3RyaW5nKEkua2V5KSxSZT1SW0kua2V5XSx0dD1JLnBhcnNlP0kucGFyc2UodGUsUik6dGU7aWYoSS52YWxpZGF0ZSl7bGV0IHB0PUkudmFsaWRhdGUodHQsUik7aWYodHlwZW9mIHB0PT0ic3RyaW5nIil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2VsbEVkaXRFcnJvciIse2RldGFpbDp7cm93OlIsa2V5OlBlLHZhbHVlOnR0LG1lc3NhZ2U6cHR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSk7cmV0dXJufX10dCE9PVJlJiYoUltJLmtleV09dHQsdGhpcy5fX3JlY29yZENlbGxJblNuYXBzaG90KFIsSSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2VsbEVkaXQiLHtkZXRhaWw6e3JvdzpSLGtleTpQZSxvbGRWYWx1ZTpSZSxuZXdWYWx1ZTp0dH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSksdGhpcy5fX2VkaXRpbmdDZWxsPXZvaWQgMCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1fX3JlY29yZENlbGxJblNuYXBzaG90KFIsSSl7aWYodGhpcy5oaWdobGlnaHRVcGRhdGVzIT09ImZsYXNoInx8IXRoaXMuX19wcmV2U25hcHNob3R8fCF0aGlzLnJvd0tleSlyZXR1cm47bGV0IHRlPXRoaXMuZ2V0Um93SWQoUiksUGU9dGhpcy5fX3ByZXZTbmFwc2hvdC5nZXQodGUpO1BlfHwoUGU9bmV3IE1hcCx0aGlzLl9fcHJldlNuYXBzaG90LnNldCh0ZSxQZSkpLFBlLnNldChTdHJpbmcoSS5rZXkpLHNmKFIsSSx0aGlzLmRpc3BsYXlGdW5jdGlvbikpfXJlbmRlckNlbGxFZGl0b3IoUixJKXtsZXQgdGU9UltJLmtleV0sUGU9SS5mb3JtYXQ/SS5mb3JtYXQodGUsUik6dGUsUmU9SS5lZGl0b3I/PyJ0ZXh0Iix0dD1pKHB0PT50aGlzLmNvbW1pdENlbGxFZGl0KFIsSSxwdC52YWx1ZSksIm9uVGV4dENvbW1pdCIpO3N3aXRjaChSZSl7Y2FzZSJjaGVja2JveCI6cmV0dXJuIHdgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgIC52YWx1ZT0keyEhUGV9CiAgICAgICAgICBAbmV3VmFsdWU9JHtwdD0+e3B0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY29tbWl0Q2VsbEVkaXQoUixJLHB0LmRldGFpbCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+YDtjYXNlImRyb3Bkb3duIjp7bGV0IHB0PUkuZWRpdG9yT3B0aW9ucz8ub3B0aW9ucz8/W10sZnQ9cHQuZmluZChMdD0+THQ9PW51bGw/ITE6dHlwZW9mIEx0PT0ic3RyaW5nIj9MdD09PXRlOkx0LmtleT09PXRlfHxMdC5vcHRpb249PT10ZSk/P251bGw7cmV0dXJuIHdgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC52aW50ZWdyYXRlZD0keyEwfQogICAgICAgICAgLm9wdGlvbnM9JHtwdH0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke2Z0fQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7THQ9PntMdC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgVXI9THQuZGV0YWlsLEF0PVVyPy5vcHRpb24/P1VyPy5rZXk/P1VyO3RoaXMuY29tbWl0Q2VsbEVkaXQoUixJLEF0KX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj5gfWNhc2UiZGF0ZSI6cmV0dXJuIHdgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgLnZhbHVlPSR7UGV9CiAgICAgICAgICBAZm9jdXNvdXQ9JHtwdD0+dHQocHQudGFyZ2V0KX0KICAgICAgICAgIEBrZXlkb3duPSR7cHQ9PnRoaXMuX19oYW5kbGVFZGl0b3JLZXkocHQsUixJKX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+YDtjYXNlInRhZ3MiOnJldHVybiB3YDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC52YWx1ZT0ke1BlPz9bXX0KICAgICAgICAgIEBmb2N1c291dD0ke3B0PT50dChwdC50YXJnZXQpfQogICAgICAgICAgQGtleWRvd249JHtwdD0+dGhpcy5fX2hhbmRsZUVkaXRvcktleShwdCxSLEkpfQogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz5gO2RlZmF1bHQ6cmV0dXJuIHdgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLnZpbnRlZ3JhdGVkPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtQZT09bnVsbD8iIjpTdHJpbmcoUGUpfQogICAgICAgICAgQGZvY3Vzb3V0PSR7cHQ9PnR0KHB0LnRhcmdldCl9CiAgICAgICAgICBAa2V5ZG93bj0ke3B0PT50aGlzLl9faGFuZGxlRWRpdG9yS2V5KHB0LFIsSSl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PmB9fV9faGFuZGxlRWRpdG9yS2V5KFIsSSx0ZSl7aWYoUi5rZXk9PT0iRXNjYXBlIilSLnByZXZlbnREZWZhdWx0KCksUi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNhbmNlbENlbGxFZGl0KCksdGhpcy5mb2N1cygpO2Vsc2UgaWYoUi5rZXk9PT0iRW50ZXIiKXtSLnByZXZlbnREZWZhdWx0KCksUi5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUGU9Ui50YXJnZXQ7dGhpcy5jb21taXRDZWxsRWRpdChJLHRlLFBlLnZhbHVlKSx0aGlzLm1vdmVGb2N1c2VkQ2VsbCgwLDEsITApfWVsc2UgaWYoUi5rZXk9PT0iVGFiIil7Ui5wcmV2ZW50RGVmYXVsdCgpLFIuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFBlPVIudGFyZ2V0O3RoaXMuY29tbWl0Q2VsbEVkaXQoSSx0ZSxQZS52YWx1ZSksdGhpcy5tb3ZlRm9jdXNlZENlbGwoUi5zaGlmdEtleT8tMToxLDAsITApfX1tb3ZlRm9jdXNlZENlbGwoUixJLHRlKXtsZXQgUGU9dGhpcy5fbGFzdFZpZXdEYXRhPz9bXTtpZihQZS5sZW5ndGg9PT0wKXJldHVybjtsZXQgUmU9dGhpcy5fX2dldEVmZmVjdGl2ZUNvbHVtbnMoKSx0dD10aGlzLl9fZWRpdGFibGVDb2x1bW5zKFJlKTtpZih0dC5sZW5ndGg9PT0wKXJldHVybjtsZXQgcHQ9MCxmdD0wO2lmKHRoaXMuX19mb2N1c2VkQ2VsbCYmKHB0PVBlLmZpbmRJbmRleChBdD0+dGhpcy5nZXRSb3dJZChBdCk9PT10aGlzLl9fZm9jdXNlZENlbGwucm93SWQpLGZ0PXR0LmZpbmRJbmRleChBdD0+U3RyaW5nKEF0LmtleSk9PT10aGlzLl9fZm9jdXNlZENlbGwuY29sS2V5KSxwdDwwJiYocHQ9MCksZnQ8MCYmKGZ0PTApKSxSIT09MCl7Zm9yKGZ0Kz1SO2Z0Pj10dC5sZW5ndGg7KWZ0LT10dC5sZW5ndGgscHQrPTE7Zm9yKDtmdDwwOylmdCs9dHQubGVuZ3RoLHB0LT0xfWlmKEkhPT0wJiYocHQrPUkpLHB0PDB8fHB0Pj1QZS5sZW5ndGgpe3RoaXMuY2FuY2VsQ2VsbEVkaXQoKTtyZXR1cm59bGV0IEx0PVBlW3B0XSxVcj10dFtmdF07dGhpcy5fX2ZvY3VzZWRDZWxsPXtyb3dJZDp0aGlzLmdldFJvd0lkKEx0KSxjb2xLZXk6U3RyaW5nKFVyLmtleSl9LHRlP3RoaXMuc3RhcnRFZGl0aW5nKEx0LFVyKTp0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7Z3QoYSxyKX19O3JldHVybiBvaz1hfSkoKX0pO3ZhciBuN3Q9dSgoKT0+e2U3dCgpfSk7dmFyIFBacixOWnI9dSgoKT0+e3ZlKCk7d2EoKTtQWnI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAke3JlYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZm9ybS1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLnN0YXR1cy1tZXNzYWdlIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgICAKICAgICAgLnN0YXR1cy1tZXNzYWdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSAzNS4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNjUuMyUpIil9OwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA0MC42JSkiLCJoc2woMCA3Mi4yJSA2MC42JSkiKX07CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSxyPXQucXVlcnlTZWxlY3RvcigiLmZvcm0tb3V0cHV0Iik7ZSYmciYmKGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLChhc3luYyBzPT57bGV0IG49cy5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiRm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOiIsbiksZS5zZXRTdGF0dXMoInBlbmRpbmciLCJQcm9jZXNzaW5nIHlvdXIgcmVnaXN0cmF0aW9uLi4uIiksci5pbm5lckhUTUw9YDxzdHJvbmc+U3VibWl0dGVkIERhdGE6PC9zdHJvbmc+CiR7SlNPTi5zdHJpbmdpZnkobixudWxsLDIpfWAsYXdhaXQgWHQucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDJlMyksZS5zZXRTdGF0dXMoInN1Y2Nlc3MiLCJSZWdpc3RyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEiKSxhd2FpdCBYdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxlLnJlc2V0KCksci5pbm5lckhUTUw9IjxlbT5Gb3JtIGhhcyBiZWVuIHJlc2V0PC9lbT4ifSkpLGUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0LCBkZWVzLWlucHV0LWRyb3Bkb3duLCBkZWVzLWlucHV0LWNoZWNrYm94IikuZm9yRWFjaChzPT57cy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IiwoKT0+e2NvbnNvbGUubG9nKCJGaWVsZCBjaGFuZ2VkOiIscy5nZXRBdHRyaWJ1dGUoImtleSIpKX0pfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJDb21wbGV0ZSBGb3JtIEV4YW1wbGUiIC5kZXNjcmlwdGlvbj0iQSBjb21wcmVoZW5zaXZlIGZvcm0gd2l0aCB2YXJpb3VzIGlucHV0IHR5cGVzLCB2YWxpZGF0aW9uLCBhbmQgZm9ybSBzdWJtaXNzaW9uIGhhbmRsaW5nIj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImZpcnN0TmFtZSIgCiAgICAgICAgICAgIGxhYmVsPSJGaXJzdCBOYW1lIgogICAgICAgICAgICAuaW5mb1RleHQ9JHsiWW91ciBnaXZlbiBuYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9Imxhc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9Ikxhc3QgTmFtZSIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImVtYWlsIiAKICAgICAgICAgICAgbGFiZWw9IkVtYWlsIEFkZHJlc3MiCiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJXZSB3aWxsIHVzZSB0aGlzIHRvIGNvbnRhY3QgeW91In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIGtleT0iY291bnRyeSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNvdW50cnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn0se29wdGlvbjoiQ2FuYWRhIixrZXk6ImNhIn0se29wdGlvbjoiR2VybWFueSIsa2V5OiJkZSJ9LHtvcHRpb246IkZyYW5jZSIsa2V5OiJmciJ9LHtvcHRpb246IlVuaXRlZCBLaW5nZG9tIixrZXk6InVrIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJwYXNzd29yZCIKICAgICAgICAgICAgbGFiZWw9IlBhc3N3b3JkIgogICAgICAgICAgICBpc1Bhc3N3b3JkQm9vbAogICAgICAgICAgICAuaW5mb1RleHQ9JHsiTWluaW11bSA4IGNoYXJhY3RlcnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJ0ZXJtcyIKICAgICAgICAgICAgbGFiZWw9IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAga2V5PSJuZXdzbGV0dGVyIgogICAgICAgICAgICBsYWJlbD0iU2VuZCBtZSBwcm9tb3Rpb25hbCBlbWFpbHMiCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q3JlYXRlIEFjY291bnQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1vdXRwdXQiPgogICAgICAgICAgPGVtPlN1Ym1pdCB0aGUgZm9ybSB0byBzZWUgdGhlIGNvbGxlY3RlZCBkYXRhLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtlJiYoY29uc29sZS5sb2coIkhvcml6b250YWwgZm9ybSBsYXlvdXQgYWN0aXZlIiksZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKGE9PntsZXQgcz1hLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJGaWx0ZXIgYXBwbGllZDoiLHMpO2xldCBuPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxMDApKzE7Y29uc29sZS5sb2coYEZvdW5kICR7bn0gcmVzdWx0cyB3aXRoIGZpbHRlcnM6YCxzKX0pKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltrZXldIikuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0Iixhc3luYygpPT57bGV0IHM9YXdhaXQgZS5jb2xsZWN0Rm9ybURhdGEoKTtjb25zb2xlLmxvZygiTGl2ZSBmaWx0ZXIgdXBkYXRlOiIscyl9KX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAuaGVhZGluZz0iSG9yaXpvbnRhbCBGb3JtIExheW91dCIgLmRlc2NyaXB0aW9uPSJDb21wYWN0IGZvcm0gd2l0aCBpbnB1dHMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IC0gcGVyZmVjdCBmb3IgZmlsdGVycyBhbmQgcXVpY2sgZm9ybXMiPgogICAgICAgIDxkZWVzLWZvcm0gaG9yaXpvbnRhbC1sYXlvdXQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICBrZXk9InNlYXJjaCIgCiAgICAgICAgICAgIGxhYmVsPSJTZWFyY2giCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBrZXl3b3Jkcy4uLiIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJjYXRlZ29yeSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNhdGVnb3J5In0KICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJBbGwiLGtleToiYWxsIn0se29wdGlvbjoiUHJvZHVjdHMiLGtleToicHJvZHVjdHMifSx7b3B0aW9uOiJTZXJ2aWNlcyIsa2V5OiJzZXJ2aWNlcyJ9LHtvcHRpb246IlN1cHBvcnQiLGtleToic3VwcG9ydCJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIGtleT0ic29ydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlNvcnQgQnkifQogICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246Ik5ld2VzdCIsa2V5OiJuZXdlc3QifSx7b3B0aW9uOiJQb3B1bGFyIixrZXk6InBvcHVsYXIifSx7b3B0aW9uOiJQcmljZTogTG93IHRvIEhpZ2giLGtleToicHJpY2VfYXNjIn0se29wdGlvbjoiUHJpY2U6IEhpZ2ggdG8gTG93IixrZXk6InByaWNlX2Rlc2MifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICBrZXk9ImluU3RvY2siCiAgICAgICAgICAgIGxhYmVsPSJJbiBTdG9jayBPbmx5IgogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikscj10LnF1ZXJ5U2VsZWN0b3IoIiNzdGF0dXMtZGlzcGxheSIpO2lmKGUpe2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLChhc3luYyBzPT57bGV0IG49cy5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiQWR2YW5jZWQgZm9ybSBkYXRhOiIsbiksZS5zZXRTdGF0dXMoInBlbmRpbmciLCJWYWxpZGF0aW5nIHlvdXIgaW5mb3JtYXRpb24uLi4iKSxhd2FpdCBYdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwMCksbi5pYmFuJiZuLmliYW4ubGVuZ3RoPjE1PyhlLnNldFN0YXR1cygic3VjY2VzcyIsIkFwcGxpY2F0aW9uIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHkhIiksciYmKHIuY2xhc3NOYW1lPSJzdGF0dXMtbWVzc2FnZSBzdWNjZXNzIixyLnRleHRDb250ZW50PSJcdTI3MTMgWW91ciBhcHBsaWNhdGlvbiBoYXMgYmVlbiBzdWJtaXR0ZWQuIFdlIHdpbGwgY29udGFjdCB5b3Ugc29vbi4iKSk6KGUuc2V0U3RhdHVzKCJlcnJvciIsIlBsZWFzZSBjaGVjayB5b3VyIElCQU4iKSxyJiYoci5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIGVycm9yIixyLnRleHRDb250ZW50PSJcdTI3MTcgSW52YWxpZCBJQkFOIGZvcm1hdC4gUGxlYXNlIGNoZWNrIGFuZCB0cnkgYWdhaW4uIikpLGNvbnNvbGUubG9nKCJGb3JtIGRhdGEgbG9nZ2VkOiIsbil9KSk7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWZpbGV1cGxvYWQiKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIscz0+e2xldCBuPXMuZGV0YWlsPy5maWxlc3x8W107Y29uc29sZS5sb2coYCR7bi5sZW5ndGh9IGZpbGUocykgc2VsZWN0ZWQgZm9yIHVwbG9hZGApfSl9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJBZHZhbmNlZCBGb3JtIEZlYXR1cmVzIiAuZGVzY3JpcHRpb249IkZvcm0gd2l0aCBzcGVjaWFsaXplZCBpbnB1dCB0eXBlcyBhbmQgY29tcGxleCB2YWxpZGF0aW9uIj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAKICAgICAgICAgICAga2V5PSJpYmFuIgogICAgICAgICAgICBsYWJlbD0iSUJBTiIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIGtleT0icGhvbmUiCiAgICAgICAgICAgIGxhYmVsPSJQaG9uZSBOdW1iZXIiCiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAga2V5PSJwcmVmZXJlbmNlcyIKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGlmaWNhdGlvbiBQcmVmZXJlbmNlcyJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbWFpbCIsIlNNUyIsIlB1c2giLCJJbi1BcHAiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVtYWlsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpc2VsZWN0CiAgICAgICAgICAgIGtleT0iaW50ZXJlc3RzIgogICAgICAgICAgICAubGFiZWw9JHsiQXJlYXMgb2YgSW50ZXJlc3QifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJUZWNobm9sb2d5IixrZXk6InRlY2gifSx7b3B0aW9uOiJEZXNpZ24iLGtleToiZGVzaWduIn0se29wdGlvbjoiQnVzaW5lc3MiLGtleToiYnVzaW5lc3MifSx7b3B0aW9uOiJNYXJrZXRpbmciLGtleToibWFya2V0aW5nIn0se29wdGlvbjoiU2FsZXMiLGtleToic2FsZXMifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpc2VsZWN0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgIGtleT0iZG9jdW1lbnRzIgogICAgICAgICAgICAubGFiZWw9JHsiVXBsb2FkIERvY3VtZW50cyJ9CiAgICAgICAgICAgIC5pbmZvVGV4dD0keyJQREYsIERPQywgb3IgRE9DWCBmaWxlcyB1cCB0byAxME1CIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEFwcGxpY2F0aW9uPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InN0YXR1cy1kaXNwbGF5Ij48L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIE9acixvN3QsUlpyLEZacixCeT11KCgpPT57dmUoKTtNcigpO1BwZSgpO0U2dCgpO3FwZSgpO0ZwKCk7UjZ0KCk7V3BlKCk7WnBlKCk7SDZ0KCk7VTZ0KCk7VzZ0KCk7RzZ0KCk7SzZ0KCk7UTZ0KCk7WDZ0KCk7SjZ0KCk7TTZlKCk7QzZlKCk7dzkoKTtuN3QoKTtOWnIoKTtPWnI9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG83dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sUlpyPVtJcGUsRnBlLEhwZSxLcGUsUXBlLHRmZSxyZmUsaWZlLGpwZSxVcGUsVnBlLHNmZSxuZmUsb2ZlLGxmZSxMcmUsejZlLFQ2ZV0sRlpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1mb3JtIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNGb3JtIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJob3Jpem9udGFsLWxheW91dCJ9KV0sT1pyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaG9yaXpvbnRhbExheW91dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iaG9yaXpvbnRhbExheW91dCJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmhvcml6b250YWxMYXlvdXQsImdldCIpLHNldDppKChmLHApPT57Zi5ob3Jpem9udGFsTGF5b3V0PXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxPWnIobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1QWnI7c3RhdGljIGRlbW9Hcm91cHM9WyJGb3JtIl07bmFtZT0ibXlmb3JtIjtjaGFuZ2VTdWJqZWN0PW5ldyBjci5zbWFydHJ4LnJ4anMuU3ViamVjdDtyZWFkeURlZmVycmVkPWNyLnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPW83dCh0aGlzLG8sITEpO2dldCBob3Jpem9udGFsTGF5b3V0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhvcml6b250YWxMYXlvdXQoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W3JlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2hvcml6b250YWwtbGF5b3V0XSkgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKTt0aGlzLnVwZGF0ZVJlcXVpcmVkU3RhdHVzKCksdGhpcy51cGRhdGVDaGlsZHJlbkxheW91dE1vZGUoKTtmb3IobGV0IGYgb2YgZClmLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKGFzeW5jKCk9PntsZXQgcD1hd2FpdCB0aGlzLmNvbGxlY3RGb3JtRGF0YSgpO3RoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHApLGNvbnNvbGUubG9nKHApLHRoaXMudXBkYXRlUmVxdWlyZWRTdGF0dXMoKX0pO2F3YWl0IHRoaXMuYWRkQmVoYXZpb3VycygpLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9Z2V0Rm9ybUVsZW1lbnRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsKCIqIikpLmZpbHRlcihkPT5SWnIuaW5jbHVkZXMoZC5jb25zdHJ1Y3RvcikpfWdldFN1Ym1pdEJ1dHRvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maW5kKGQ9PmQgaW5zdGFuY2VvZiBHcGUpfWFzeW5jIHVwZGF0ZVJlcXVpcmVkU3RhdHVzKCl7Y29uc29sZS5sb2coImNoZWNraW5nIHRoZSByZXF1aXJlZCBzdGF0dXMuIik7bGV0IGQ9ITA7Zm9yKGxldCBwIG9mIHRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCkpcC5yZXF1aXJlZCYmIXAudmFsdWUmJihkPSExKTtsZXQgZj10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO2YmJihmLmRpc2FibGVkPSFkKX1hc3luYyBjb2xsZWN0Rm9ybURhdGEoKXtsZXQgZD10aGlzLmdldEZvcm1FbGVtZW50cygpLGY9e307Zm9yKGxldCBwIG9mIGQpe2lmKCFwLmtleSl7Y29uc29sZS5sb2coYGZvcm0gZWxlbWVudCB3aXRoIGxhYmVsICIke3AubGFiZWx9IiBoYXMgbm8ga2V5LiBza2lwcGluZy5gKTtjb250aW51ZX1mW3Aua2V5XT1wLnZhbHVlfXJldHVybiBmfWFzeW5jIGdhdGhlckFuZERpc3BhdGNoKCl7bGV0IGQ9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKSxmPW5ldyBDdXN0b21FdmVudCgiZm9ybURhdGEiLHtkZXRhaWw6e2RhdGE6ZH0sYnViYmxlczohMH0pO3RoaXMuZGlzcGF0Y2hFdmVudChmKSxjb25zb2xlLmxvZygiZGlzcGF0Y2hlZCBkYXRhOiIpLGNvbnNvbGUubG9nKGQpfXNldFN0YXR1cyhkLGYpe2xldCBwPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksaD10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO2lmKGgpe3N3aXRjaChkKXtjYXNlIm5vcm1hbCI6aC5kaXNhYmxlZD0hMSxoLnN0YXR1cz0ibm9ybWFsIjtmb3IobGV0IG0gb2YgcCltLmRpc2FibGVkPSExO2JyZWFrO2Nhc2UicGVuZGluZyI6aC5kaXNhYmxlZD0hMCxoLnN0YXR1cz0icGVuZGluZyI7Zm9yKGxldCBtIG9mIHApbS5kaXNhYmxlZD0hMDticmVhaztjYXNlInN1Y2Nlc3MiOmguZGlzYWJsZWQ9ITAsaC5zdGF0dXM9InN1Y2Nlc3MiO2ZvcihsZXQgbSBvZiBwKW0uZGlzYWJsZWQ9ITA7YnJlYWs7Y2FzZSJlcnJvciI6aC5kaXNhYmxlZD0hMCxoLnN0YXR1cz0iZXJyb3IiO2ZvcihsZXQgbSBvZiBwKW0uZGlzYWJsZWQ9ITA7YnJlYWt9aC50ZXh0PWZ9fXJlc2V0KCl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKTtmb3IobGV0IGYgb2YgZClmLnZhbHVlPW51bGw7dGhpcy5zZXRTdGF0dXMoIm5vcm1hbCIsIlN1Ym1pdCIpfWFzeW5jIGFkZEJlaGF2aW91cnMoKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntsZXQgZj1kLnRhcmdldDtpZihSWnIuaW5jbHVkZXMoZi5jb25zdHJ1Y3RvcikmJmQua2V5PT09IkVudGVyIil7bGV0IHA9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSxoPXAuaW5kZXhPZihmKTtoPHAubGVuZ3RoLTE/cFtoKzFdLmZvY3VzKCk6KGYuYmx1cigpLHRoaXMuZ2V0U3VibWl0QnV0dG9uKCk/LmZvY3VzKCkpfX0pfXVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpe2xldCBkPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7Zm9yKGxldCBmIG9mIGQpImxheW91dE1vZGUiaW4gZiYmKGYubGF5b3V0TW9kZT0iYXV0byIpfXVwZGF0ZWQoZCl7c3VwZXIudXBkYXRlZChkKSxkLmhhcygiaG9yaXpvbnRhbExheW91dCIpJiZ0aGlzLnVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxvN3QodGhpcyxsKX1zdGF0aWN7bzd0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBCWnIsSFpyPXUoKCk9Pnt2ZSgpO3dhKCk7d24oKTtCeSgpO3c5KCk7RnAoKTtLcigpO0Jacj1pKCgpPT53YAogIDxzdHlsZT4KICAgICR7cmVgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAudmVydGljYWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXgtd2lkdGg6IDMwMHB4OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmljb24tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXNuaXBwZXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgYT1yLmdldEF0dHJpYnV0ZSgidHlwZSIpfHwiZGVmYXVsdCI7Y29uc29sZS5sb2coYEJ1dHRvbiB2YXJpYW50IGNsaWNrZWQ6ICR7YX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJ1dHRvbiBWYXJpYW50cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmlzdWFsIHN0eWxlcyBmb3IgdmFyaW91cyB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiPkRlZmF1bHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiPk91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij5HaG9zdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ibGluayI+TGluayBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXIuZ2V0QXR0cmlidXRlKCJzaXplIil8fCJkZWZhdWx0Ijtjb25zb2xlLmxvZyhgQnV0dG9uIHNpemU6ICR7YX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIEJ1dHRvbiBTaXplcyJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBzaXplcyBmb3IgZGlmZmVyZW50IGNvbnRleHRzIGFuZCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9InNtIj5TbWFsbCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImRlZmF1bHQiPkRlZmF1bHQgU2l6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciPkxhcmdlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSIgLnRleHQ9JHsiXHV7MUY2ODB9In0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ic20iIHR5cGU9InNlY29uZGFyeSI+U21hbGwgU2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJkZWZhdWx0IiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVmYXVsdCBEZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciIHR5cGU9Im91dGxpbmUiPkxhcmdlIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBhPXIucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIik7aWYoYSl7bGV0IHM9YS5nZXRBdHRyaWJ1dGUoImljb25GQSIpfHwidW5rbm93biI7Y29uc29sZS5sb2coYEljb24gYnV0dG9uIGNsaWNrZWQ6ICR7c31gKX19KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBCdXR0b25zIHdpdGggSWNvbnMifSAuc3VidGl0bGU9JHsiQ29tYmluaW5nIGljb25zIHdpdGggdGV4dCBmb3IgZW5oYW5jZWQgdmlzdWFsIGNvbW11bmljYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6cGx1cyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIEFkZCBJdGVtCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIERlbGV0ZQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBEb3dubG9hZAogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmdlYXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBTZXR0aW5ncwogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Y2FyZXRMZWZ0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgQmFjawogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIE5leHQKICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpjYXJldFJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpwbHVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ic2Vjb25kYXJ5Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpnZWFyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNlYXJjaCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TW9yZVZlcnRpY2FsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgYT1yLmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwibm9uZSIscz1yLmdldEF0dHJpYnV0ZSgiaWNvblBvc2l0aW9uIil8fCJsZWZ0Ijtjb25zb2xlLmxvZyhgSWNvbiBwcm9wZXJ0eSBidXR0b246IGljb249JHthfSwgcG9zaXRpb249JHtzfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gSWNvbnMgdmlhIFByb3BlcnR5In0gLnN1YnRpdGxlPSR7IlNpbXBsaWZpZWQgaWNvbiBzeW50YXggdXNpbmcgdGhlIGljb24gcHJvcGVydHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyI+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBpY29uPSJmYTp0cmFzaCI+RGVsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPkRvd25sb2FkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iIGljb249ImZhOmdlYXIiPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRMZWZ0Ij5CYWNrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRSaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0IiBpY29uPSJmYTpwbHVzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9InNlY29uZGFyeSIgaWNvbj0ibHVjaWRlOlNldHRpbmdzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Im91dGxpbmUiIGljb249Imx1Y2lkZTpTZWFyY2giPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZ2hvc3QiIGljb249Imx1Y2lkZTpNb3JlVmVydGljYWwiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiIGljb249ImZhOnRyYXNoIj48L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyImZ3Q7QWRkIEl0ZW0mbHQ7L2RlZXMtYnV0dG9uJmd0Ozxicj4KICAgICAgICAgICAgJmx0O2RlZXMtYnV0dG9uIGljb249ImZhOmNhcmV0UmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiJmd0O05leHQmbHQ7L2RlZXMtYnV0dG9uJmd0OwogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InBlbmRpbmciXScpLHI9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InN1Y2Nlc3MiXScpLGE9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9ImVycm9yIl0nKTtlJiZzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlBlbmRpbmcgYnV0dG9uIGlzIHNob3dpbmcgbG9hZGluZyBzdGF0ZSIpfSwxZTMpLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiU3VjY2VzcyBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJFcnJvciBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIEJ1dHRvbiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyB0byBpbmRpY2F0ZSBidXR0b24gc3RhdHVzIGFuZCBsb2FkaW5nIGNvbmRpdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0ibm9ybWFsIj5Ob3JtYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0icGVuZGluZyI+UHJvY2Vzc2luZy4uLjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJzdWNjZXNzIj5TdWNjZXNzITwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJlcnJvciI+RXJyb3IhPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBkaXNhYmxlZD5EaXNhYmxlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc3RhdHVzPSJwZW5kaW5nIiBzaXplPSJzbSI+U21hbGwgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSIgc3RhdHVzPSJwZW5kaW5nIj5EZWZhdWx0IExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzdGF0dXM9InBlbmRpbmciIHNpemU9ImxnIj5MYXJnZSBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjY2xpY2stb3V0cHV0Iikscj10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYnV0dG9uOmZpcnN0LW9mLXR5cGUiKSxhPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0ic2Vjb25kYXJ5Il0nKSxzPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0iZGVzdHJ1Y3RpdmUiXScpO3ImJmUmJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntlLnRleHRDb250ZW50PWBDbGlja2VkOiBEZWZhdWx0IGJ1dHRvbiBhdCAke25ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCl9YH0pLGEmJmUmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsbj0+e2UudGV4dENvbnRlbnQ9YENsaWNrZWQ6IFNlY29uZGFyeSBidXR0b24gd2l0aCBkYXRhOiAke24uZGV0YWlsLmRhdGF9YH0pLHMmJmUmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsYXN5bmMoKT0+e2UudGV4dENvbnRlbnQ9IlByb2Nlc3NpbmcuLi4iLGF3YWl0IFh0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUudGV4dENvbnRlbnQ9IkFjdGlvbiBjb21wbGV0ZWQhIn0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBleGFtcGxlcyB3aXRoIGNsaWNrIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DbGljayBNZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiAuZXZlbnREZXRhaWxEYXRhPSR7ImN1c3RvbS1kYXRhLTEyMyJ9PgogICAgICAgICAgICBDbGljayB3aXRoIERhdGEKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPkFzeW5jIEFjdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iY2xpY2stb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPkNsaWNrIGEgYnV0dG9uIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSxyPXQucXVlcnlTZWxlY3RvcigiI2Zvcm0tb3V0cHV0Iik7ZSYmciYmZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsbj0+e3IuaW5uZXJIVE1MPSI8c3Ryb25nPkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YTo8L3N0cm9uZz48YnI+IitKU09OLnN0cmluZ2lmeShuLmRldGFpbC5kYXRhLG51bGwsMil9KTtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9InNlY29uZGFyeSJdJykscz10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9Imdob3N0Il0nKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIlNhdmUgRHJhZnQgY2xpY2tlZCIpfSkscyYmcy5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJDYW5jZWwgY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiQnV0dG9ucyB3b3JraW5nIHdpdGhpbiBmb3JtcyB3aXRoIGF1dG9tYXRpYyBzcGFjaW5nIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik5hbWUiIGtleT0ibmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTWVzc2FnZSIga2V5PSJtZXNzYWdlIiBpc011bHRpbGluZT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2F2ZSBEcmFmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPkNhbmNlbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJmb3JtLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZS13cmFwOyI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgZGF0YS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHI9PntsZXQgYT1yLmdldEF0dHJpYnV0ZSgidHlwZSIpO2EmJmNvbnNvbGUubG9nKGBMZWdhY3kgdHlwZSAiJHthfSIgaXMgc3VwcG9ydGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5YCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSJ9IC5zdWJ0aXRsZT0keyJPbGQgYnV0dG9uIHR5cGVzIGFyZSBhdXRvbWF0aWNhbGx5IG1hcHBlZCB0byBuZXcgdmFyaWFudHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im5vcm1hbCI+Tm9ybWFsIOKGkiBEZWZhdWx0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+SGlnaGxpZ2h0ZWQg4oaSIERlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkaXNjcmVldCI+RGlzY3JlZXQg4oaSIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImJpZyI+QmlnIOKGkiBMYXJnZSBTaXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsiPgogICAgICAgICAgVGhlc2UgbGVnYWN5IHR5cGUgdmFsdWVzIGFyZSBtYWludGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGJ1dCB3ZSByZWNvbW1lbmQgdXNpbmcgdGhlIG5ldyB2YXJpYW50IHN5c3RlbS4KICAgICAgICA8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvckFsbCgiLnZlcnRpY2FsLWdyb3VwIilbMF0scj10LnF1ZXJ5U2VsZWN0b3JBbGwoIi52ZXJ0aWNhbC1ncm91cCIpWzFdO2UmJmUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKChzLG4pPT57cy5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBvPVsiU2F2ZSBDaGFuZ2VzIiwiRGlzY2FyZCIsIkhlbHAiXVtuXTtjb25zb2xlLmxvZyhgQWN0aW9uIGdyb3VwOiAke299IGNsaWNrZWRgKX0pfSksciYmci5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goKHMsbik9PntzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IG89WyJEZWxldGUgQWNjb3VudCIsIkFyY2hpdmUgRGF0YSIsIk5vdCBBdmFpbGFibGUiXVtuXTtuIT09MiYmY29uc29sZS5sb2coYERhbmdlciB6b25lOiAke299IGNsaWNrZWRgKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEFkdmFuY2VkIEV4YW1wbGVzIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXggYnV0dG9uIGNvbmZpZ3VyYXRpb25zIGFuZCByZWFsLXdvcmxkIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5BY3Rpb24gR3JvdXA8L2g0PgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNhdmUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIFNhdmUgQ2hhbmdlcwogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VW5kbzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERpc2NhcmQKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVscENpcmNsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgSGVscAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5EYW5nZXIgWm9uZTwvaDQ+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERlbGV0ZSBBY2NvdW50CiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QXJjaGl2ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgQXJjaGl2ZSBEYXRhCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgc2l6ZT0ic20iIGRpc2FibGVkPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkJhbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgTm90IEF2YWlsYWJsZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjRweDsiPgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+Q29kZSBFeGFtcGxlOjwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIGljb249Imx1Y2lkZTpTYXZlIiBAY2xpY2tlZD0iXCR7aGFuZGxlQ2xpY2t9IiZndDs8YnI+CiAgICAgICAgICAgICZuYnNwOyZuYnNwO1NhdmUgQ2hhbmdlczxicj4KICAgICAgICAgICAgJmx0Oy9kZWVzLWJ1dHRvbiZndDsKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgQ2MsdXMscVpyLGc5PXUoKCk9Pnt2ZSgpO01yKCk7SFpyKCk7bHQoKTtDYz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdXM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHFacj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYnV0dG9uIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W107dmFyIGRlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQnV0dG9uIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7cmVmbGVjdDohMCxoYXNDaGFuZ2VkKCl7cmV0dXJuITB9fSldLGM9W1AoKV0scD1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W1Aoe3R5cGU6U3RyaW5nfSldLE49W1Aoe3R5cGU6U3RyaW5nfSldLE89W1Aoe3R5cGU6U3RyaW5nfSldLEI9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLEE9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sWT1bUCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxDYyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InRleHQiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US50ZXh0LCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLnRleHQ9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sbyxsKSxDYyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50RGV0YWlsRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iZXZlbnREZXRhaWxEYXRhImluIFEsImhhcyIpLGdldDppKFE9PlEuZXZlbnREZXRhaWxEYXRhLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmV2ZW50RGV0YWlsRGF0YT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxkLGYpLENjKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImRpc2FibGVkImluIFEsImhhcyIpLGdldDppKFE9PlEuZGlzYWJsZWQsImdldCIpLHNldDppKChRLGZlKT0+e1EuZGlzYWJsZWQ9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0saCxtKSxDYyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSGlkZGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJpc0hpZGRlbiJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmlzSGlkZGVuLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmlzSGlkZGVuPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGIsZyksQ2ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJ0eXBlImluIFEsImhhcyIpLGdldDppKFE9PlEudHlwZSwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US50eXBlPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGssTSksQ2ModGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJzaXplImluIFEsImhhcyIpLGdldDppKFE9PlEuc2l6ZSwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5zaXplPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LF8sUyksQ2ModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InN0YXR1cyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnN0YXR1cywiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5zdGF0dXM9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sTCxFKSxDYyh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imluc2lkZUZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Imluc2lkZUZvcm0iaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5pbnNpZGVGb3JtLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmluc2lkZUZvcm09ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sQyx6KSxDYyh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+Imljb24iaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5pY29uLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmljb249ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sJCxGKSxDYyh0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25Qb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iaWNvblBvc2l0aW9uImluIFEsImhhcyIpLGdldDppKFE9PlEuaWNvblBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmljb25Qb3NpdGlvbj1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxHLFopLENjKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkR9LG51bGwsciksZGU9YT1lLnZhbHVlLEQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RH0pfXN0YXRpYyBkZW1vPUJacjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPXVzKHRoaXMsbyx2b2lkIDApO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRleHQoRCl7dGhpcy4jZT1EfSN0PSh1cyh0aGlzLGwpLHVzKHRoaXMsZCx2b2lkIDApKTtnZXQgZXZlbnREZXRhaWxEYXRhKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGV2ZW50RGV0YWlsRGF0YShEKXt0aGlzLiN0PUR9I3I9KHVzKHRoaXMsZiksdXModGhpcyxoLCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGRpc2FibGVkKEQpe3RoaXMuI3I9RH0jYT0odXModGhpcyxtKSx1cyh0aGlzLGIsITEpKTtnZXQgaXNIaWRkZW4oKXtyZXR1cm4gdGhpcy4jYX1zZXQgaXNIaWRkZW4oRCl7dGhpcy4jYT1EfSNpPSh1cyh0aGlzLGcpLHVzKHRoaXMsaywiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNpfXNldCB0eXBlKEQpe3RoaXMuI2k9RH0jcz0odXModGhpcyxNKSx1cyh0aGlzLF8sImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2l6ZShEKXt0aGlzLiNzPUR9I249KHVzKHRoaXMsUyksdXModGhpcyxMLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNufXNldCBzdGF0dXMoRCl7dGhpcy4jbj1EfSNvPSh1cyh0aGlzLEUpLHVzKHRoaXMsQywhMSkpO2dldCBpbnNpZGVGb3JtKCl7cmV0dXJuIHRoaXMuI299c2V0IGluc2lkZUZvcm0oRCl7dGhpcy4jbz1EfSNsPSh1cyh0aGlzLHopLHVzKHRoaXMsJCx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiNsfXNldCBpY29uKEQpe3RoaXMuI2w9RH0jYz0odXModGhpcyxGKSx1cyh0aGlzLEcsImxlZnQiKSk7Z2V0IGljb25Qb3NpdGlvbigpe3JldHVybiB0aGlzLiNjfXNldCBpY29uUG9zaXRpb24oRCl7dGhpcy4jYz1EfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx1cyh0aGlzLFopfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSwhdGhpcy5pbnNpZGVGb3JtJiZ0aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpJiYodGhpcy5pbnNpZGVGb3JtPSEwKX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEZvcm0gc3BhY2luZyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtpbnNpZGUtZm9ybV06bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtZm9ybVtob3Jpem9udGFsLWxheW91dF0gOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1mb3JtW2hvcml6b250YWwtbGF5b3V0XSA6aG9zdChbaW5zaWRlLWZvcm1dOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5idXR0b24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWFudHMgKi8KICAgICAgLmJ1dHRvbi5zaXplLWRlZmF1bHQgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtc20gewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtbGcgewogICAgICAgIGhlaWdodDogNDRweDsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtaWNvbiB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC8qIERlZmF1bHQgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZWZhdWx0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMC4yJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDIwJSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVmYXVsdDphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERlc3RydWN0aXZlIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgODQuMiUgNjAuMiUpOwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5OCUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Ni4yJSk7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmU6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Mi4yJSk7CiAgICAgIH0KCiAgICAgIC8qIE91dGxpbmUgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLm91dGxpbmUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDI2LjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogU2Vjb25kYXJ5IHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zZWNvbmRhcnk6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogR2hvc3QgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmdob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmdob3N0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZ2hvc3Q6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAvKiBMaW5rIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5saW5rIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuYnV0dG9uLmxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAvKiBTdGF0dXMgc3RhdGVzICovCiAgICAgIC5idXR0b24ucGVuZGluZywKICAgICAgLmJ1dHRvbi5zdWNjZXNzLAogICAgICAuYnV0dG9uLmVycm9yIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7IC8qIFNwYWNlIGZvciBzcGlubmVyICovCiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbS5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtc20uc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLXNtLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZy5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtbGcuc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLWxnLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24ucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDYyLjglIDcwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgNjIuOCUgNzAuNiUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICAuYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogSGlkZGVuIHN0YXRlICovCiAgICAgIC5idXR0b24uaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBGb2N1cyBzdGF0ZSAqLwogICAgICAuYnV0dG9uOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBzcGlubmVyICovCiAgICAgIGRlZXMtc3Bpbm5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20gZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiAxNHB4OwogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQogICAgICAKICAgICAgLyogSWNvbiBzaXppbmcgd2l0aGluIGJ1dHRvbnMgKi8KICAgICAgLmJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KCiAgICAgIC8qIFRleHQgYWxpZ25tZW50ICovCiAgICAgIC50ZXh0Ym94IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICBgXTtleHRyYWN0TGlnaHREb20oKXtsZXQgRD10aGlzLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaWNvbiIpLFE9QXJyYXkuZnJvbSh0aGlzLmNoaWxkTm9kZXMpLmZpbHRlcihmZT0+ZmUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSkubWFwKGZlPT5mZS50ZXh0Q29udGVudD8udHJpbSgpKS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO2lmKFEmJiF0aGlzLnRleHQmJih0aGlzLnRleHQ9USksRCl7bGV0IGZlPUQuaWNvbnx8RC5nZXRBdHRyaWJ1dGUoImljb24iKXx8KEQuaWNvbkZBP2BmYToke0QuaWNvbkZBfWA6bnVsbCk7aWYoZmUpe2xldCBUPUFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzKSxXPVQuaW5kZXhPZihEKSxwZT1ULmZpbHRlcihtZT0+bWUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmbWUudGV4dENvbnRlbnQ/LnRyaW0oKSk7aWYocGUubGVuZ3RoPjApe2xldCBtZT1ULmluZGV4T2YocGVbMF0pO3RoaXMuaWNvblBvc2l0aW9uPVc8bWU/ImxlZnQiOiJyaWdodCJ9dGhpcy5pY29uPWZlfUQucmVtb3ZlKCl9dGhpcy5pbm5lckhUTUw9IiJ9cmVuZGVyKCl7bGV0IFE9e25vcm1hbDoiZGVmYXVsdCIsaGlnaGxpZ2h0ZWQ6ImRlc3RydWN0aXZlIixkaXNjcmVldDoib3V0bGluZSIsYmlnOiJkZWZhdWx0In1bdGhpcy50eXBlXXx8dGhpcy50eXBlLGZlPXRoaXMudHlwZT09PSJiaWciPyJsZyI6dGhpcy5zaXplLFQ9dGhpcy5pY29uUG9zaXRpb249PT0ibGVmdCImJnRoaXMuaWNvbj93YDxkZWVzLWljb24gLmljb249JHt0aGlzLmljb259PjwvZGVlcy1pY29uPmA6IiIsVz10aGlzLmljb25Qb3NpdGlvbj09PSJyaWdodCImJnRoaXMuaWNvbj93YDxkZWVzLWljb24gLmljb249JHt0aGlzLmljb259PjwvZGVlcy1pY29uPmA6IiIscGU9ZmU9PT0iaWNvbiImJnRoaXMuaWNvbjtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJidXR0b24gJHt0aGlzLmlzSGlkZGVuPyJoaWRkZW4iOiIifSAke1F9IHNpemUtJHtmZX0gJHt0aGlzLnN0YXR1c30gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHt0aGlzLmRpc3BhdGNoQ2xpY2t9IgogICAgICA+CiAgICAgICAgJHt0aGlzLnN0YXR1cz09PSJub3JtYWwiP3dgYDp3YAogICAgICAgICAgPGRlZXMtc3Bpbm5lcgogICAgICAgICAgICAuYm53PSR7ITB9CiAgICAgICAgICAgIHN0YXR1cz0iJHt0aGlzLnN0YXR1c30iCiAgICAgICAgICAgIHNpemU9IiR7ZmU9PT0ic20iPzE0OmZlPT09ImxnIj8xODoxNn0iCiAgICAgICAgICA+PC9kZWVzLXNwaW5uZXI+CiAgICAgICAgYH0KICAgICAgICAke1R9CiAgICAgICAgJHtwZT8iIjp3YDxkaXYgY2xhc3M9InRleHRib3giPiR7dGhpcy50ZXh0fHwiQnV0dG9uIn08L2Rpdj5gfQogICAgICAgICR7V30KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGRpc3BhdGNoQ2xpY2soKXt0aGlzLmRpc2FibGVkfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGlja2VkIix7ZGV0YWlsOntkYXRhOnRoaXMuZXZlbnREZXRhaWxEYXRhfSxidWJibGVzOiEwfSkpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuZXh0cmFjdExpZ2h0RG9tKCl9c3RhdGlje3VzKGEscil9fTtyZXR1cm4gZGU9YX0pKCl9KTt2YXIgbmYsWW8sVlpyLEw2ZT11KCgpPT57a2pyKCk7dm4oKTtfcygpO3ZlKCk7S3IoKTtzcygpO2c5KCk7bHQoKTtucygpO25mPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxZbz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sVlpyPSgoKT0+e2xldCB0PVtnQWUoKSx1ZSgiZGVlcy1zdGF0c2dyaWQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1N0YXRzR3JpZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6QXJyYXl9KV0sYz1bUCh7dHlwZTpOdW1iZXJ9KV0scD1bUCh7dHlwZTpOdW1iZXJ9KV0sdj1bUCh7dHlwZTpBcnJheX0pXSx5PVtpZSgpXSxOPVtpZSgpXSxPPVtpZSgpXSxuZih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0aWxlcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRpbGVzLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudGlsZXM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLG5mKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluVGlsZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJtaW5UaWxlV2lkdGgiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5taW5UaWxlV2lkdGgsImdldCIpLHNldDppKCh6LEEpPT57ei5taW5UaWxlV2lkdGg9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLG5mKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2FwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJnYXAiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5nYXAsImdldCIpLHNldDppKCh6LEEpPT57ei5nYXA9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLG5mKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JpZEFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImdyaWRBY3Rpb25zImluIHosImhhcyIpLGdldDppKHo9PnouZ3JpZEFjdGlvbnMsImdldCIpLHNldDppKCh6LEEpPT57ei5ncmlkQWN0aW9ucz1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksbmYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZXh0TWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImNvbnRleHRNZW51VmlzaWJsZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNvbnRleHRNZW51VmlzaWJsZSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmNvbnRleHRNZW51VmlzaWJsZT1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGssTSksbmYodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZXh0TWVudVBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjb250ZXh0TWVudVBvc2l0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouY29udGV4dE1lbnVQb3NpdGlvbiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmNvbnRleHRNZW51UG9zaXRpb249QX0sInNldCIpfSxtZXRhZGF0YTpDfSxfLFMpLG5mKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjb250ZXh0TWVudUFjdGlvbnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jb250ZXh0TWVudUFjdGlvbnMsImdldCIpLHNldDppKCh6LEEpPT57ei5jb250ZXh0TWVudUFjdGlvbnM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxMLEUpLG5mKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsciksQj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89d2pyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9WW8odGhpcyxvLFtdKTtnZXQgdGlsZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGlsZXMoQyl7dGhpcy4jZT1DfSN0PShZbyh0aGlzLGwpLFlvKHRoaXMsZCwyNTApKTtnZXQgbWluVGlsZVdpZHRoKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblRpbGVXaWR0aChDKXt0aGlzLiN0PUN9I3I9KFlvKHRoaXMsZiksWW8odGhpcyxoLDE2KSk7Z2V0IGdhcCgpe3JldHVybiB0aGlzLiNyfXNldCBnYXAoQyl7dGhpcy4jcj1DfSNhPShZbyh0aGlzLG0pLFlvKHRoaXMsYixbXSkpO2dldCBncmlkQWN0aW9ucygpe3JldHVybiB0aGlzLiNhfXNldCBncmlkQWN0aW9ucyhDKXt0aGlzLiNhPUN9I2k9KFlvKHRoaXMsZyksWW8odGhpcyxrLCExKSk7Z2V0IGNvbnRleHRNZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCBjb250ZXh0TWVudVZpc2libGUoQyl7dGhpcy4jaT1DfSNzPShZbyh0aGlzLE0pLFlvKHRoaXMsXyx7eDowLHk6MH0pKTtnZXQgY29udGV4dE1lbnVQb3NpdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBjb250ZXh0TWVudVBvc2l0aW9uKEMpe3RoaXMuI3M9Q30jbj0oWW8odGhpcyxTKSxZbyh0aGlzLEwsW10pKTtnZXQgY29udGV4dE1lbnVBY3Rpb25zKCl7cmV0dXJuIHRoaXMuI259c2V0IGNvbnRleHRNZW51QWN0aW9ucyhDKXt0aGlzLiNuPUN9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICB9CgogICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHNpemluZyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1ncmlkLWdhcDogMTJweDsKICAgICAgICAtLXRpbGUtcGFkZGluZzogMTZweDsKICAgICAgICAtLWhlYWRlci1zcGFjaW5nOiAxMnB4OwogICAgICAgIC0tY29udGVudC1taW4taGVpZ2h0OiA0MHB4OwogICAgICAgIC0tdmFsdWUtZm9udC1zaXplOiAyNnB4OwogICAgICAgIC0tdW5pdC1mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS1sYWJlbC1mb250LXNpemU6IDEycHg7CiAgICAgICAgLS10aXRsZS1mb250LXNpemU6IDEzcHg7CiAgICAgICAgLS1kZXNjcmlwdGlvbi1zcGFjaW5nOiA4cHg7CiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1czsKICAgICAgfQoKICAgICAgLyogR3JpZCBMYXlvdXQgKi8KICAgICAgLmdyaWQtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ3JpZC1nYXApICogMS41KTsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuZ3JpZC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmdyaWQtYWN0aW9ucyBkZWVzLWJ1dHRvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICB9CgogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KCR7R3IoMjUwKX1weCwgMWZyKSk7CiAgICAgICAgZ2FwOiAke0dyKDE2KX1weDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogVGlsZSBCYXNlIFN0eWxlcyDigJQgZnJhbWUgcHJvdmlkZWQgYnkgZGVlcy10aWxlLCBob3ZlciB2aWEgOjpwYXJ0ICovCiAgICAgIC5zdGF0cy10aWxlOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdGF0cy10aWxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZS5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGUuY2xpY2thYmxlOmhvdmVyOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCAke3guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAzKSIsInJnYmEoMCwwLDAsMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgSGVhZGVyIOKAlCBzbG90dGVkIGludG8gZGVlcy10aWxlIGhlYWRlciAqLwogICAgICAudGlsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRpbGUtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGl0bGUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICB9CgogICAgICAudGlsZS1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBUaWxlIENvbnRlbnQg4oCUIHNsb3R0ZWQgaW50byBkZWVzLXRpbGUgY29udGVudCBhcmVhICovCiAgICAgIC50aWxlLWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWNvbnRlbnQtbWluLWhlaWdodCk7CiAgICAgIH0KCiAgICAgIC50aWxlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAudGlsZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudGlsZS1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC8qIEdhdWdlIFN0eWxlcyAqLwogICAgICAuZ2F1Z2Utd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuZ2F1Z2UtY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTIwcHg7CiAgICAgICAgaGVpZ2h0OiA3MHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tdG9wOiAtOHB4OwogICAgICB9CgogICAgICAuZ2F1Z2Utc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1iYWNrZ3JvdW5kIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZTogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2OwogICAgICB9CgogICAgICAuZ2F1Z2UtZmlsbCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2Utd2lkdGg6IDY7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmdhdWdlLXRleHQgewogICAgICAgIGZpbGw6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJHtIcn07CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC1hbmNob3I6IG1pZGRsZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5nYXVnZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmaWxsOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICB9CgogICAgICAvKiBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAucGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAucGVyY2VudGFnZS1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAvKiBNdWx0aSBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAubXVsdGktcGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgfQoKICAgICAgLyogQ1BVIENvcmVzIFN0eWxlcyAqLwogICAgICAuY3B1LWNvcmVzLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWJhcnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICAgIGdhcDogM3B4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1iYXJzLmNlbnRlcmVkIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiA2cHg7CiAgICAgICAgbWF4LXdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci13cmFwcGVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwubG93IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1zdWNjZXNzKTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLm1lZGl1bSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtd2FybmluZyk7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbC5oaWdoIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogUGFydGl0aW9uIFN0eWxlcyAqLwogICAgICAucGFydGl0aW9uLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tcGVyY2VudGFnZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWNjZW50LXdhcm5pbmcpOwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtOwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1maWxlc3lzdGVtIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbW91bnRwb2ludCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNrIFN0eWxlcyAqLwogICAgICAuZGlzay13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpc2stY2FwYWNpdHkgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5kaXNrLW1vZGVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZGlzay10eXBlLWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLmRpc2stbWV0cmljcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbC5nb29kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgODQuMiUgNjAuMiUpIil9OwogICAgICB9CgogICAgICAvKiBUcmVuZCBTdHlsZXMgKi8KICAgICAgLnRyZW5kLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC50cmVuZC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudHJlbmQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC50cmVuZC11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudHJlbmQtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAudHJlbmQtZ3JhcGggewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnRyZW5kLXN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudHJlbmQtbGluZSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxLjU7CiAgICAgICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgIH0KCiAgICAgIC50cmVuZC1hcmVhIHsKICAgICAgICBmaWxsOiAke3guYmRUaGVtZSgicmdiYSgxNTAsIDE1MCwgMTUwLCAwLjA4KSIsInJnYmEoMTAwLCAxMDAsIDEwMCwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRleHQgVmFsdWUgU3R5bGVzICovCiAgICAgIC50ZXh0LXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAvKiBDb250ZXh0IE1lbnUgKi8KICAgICAgZGVlcy1jb250ZXh0bWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KICAgIGAseC5jc3NGb3JUYWJsZXQocmVgCiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpOwogICAgICB9CiAgICBgLGEpLHguY3NzRm9yUGhhYmxldChyZWAKICAgICAgOmhvc3QgewogICAgICAgIC0tdGlsZS1wYWRkaW5nOiAxMnB4OwogICAgICAgIC0tdmFsdWUtZm9udC1zaXplOiAyMnB4OwogICAgICAgIC0tdGl0bGUtZm9udC1zaXplOiAxMnB4OwogICAgICAgIC0tZ3JpZC1nYXA6IDhweDsKICAgICAgfQogICAgICAuc3RhdHMtZ3JpZCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzLXRpbGUgewogICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDEgIWltcG9ydGFudDsKICAgICAgfQogICAgYCxhKSx4LmNzc0ZvclBob25lKHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgLS10aWxlLXBhZGRpbmc6IDEwcHg7CiAgICAgICAgLS12YWx1ZS1mb250LXNpemU6IDIwcHg7CiAgICAgICAgLS1oZWFkZXItc3BhY2luZzogOHB4OwogICAgICB9CiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQogICAgYCxhKV07Y29uc3RydWN0b3IoKXtzdXBlcigpLFlvKHRoaXMsRSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5ncmlkQWN0aW9ucy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtdGl0bGUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1hY3Rpb25zIj4KICAgICAgICAgICAgJHt0aGlzLmdyaWRBY3Rpb25zLm1hcChDPT53YAogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiAKICAgICAgICAgICAgICAgIEBjbGlja2VkPSR7KCk9PnRoaXMuaGFuZGxlR3JpZEFjdGlvbihDKX0KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBzaXplPSJzbSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke0MuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSR7Qy5pY29uTmFtZX0gc2l6ZT0ic21hbGwiPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgICAke0MubmFtZX0KICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic3RhdHMtZ3JpZCIgc3R5bGU9ImdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHt0aGlzLm1pblRpbGVXaWR0aH1weCwgMWZyKSk7IGdhcDogJHt0aGlzLmdhcH1weDsiPgogICAgICAgICR7dGhpcy50aWxlcy5tYXAoQz0+dGhpcy5yZW5kZXJUaWxlKEMpKX0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY29udGV4dE1lbnVWaXNpYmxlP3dgCiAgICAgICAgPGRlZXMtY29udGV4dG1lbnUKICAgICAgICAgIC54PSR7dGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnh9CiAgICAgICAgICAueT0ke3RoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55fQogICAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMuY29udGV4dE1lbnVBY3Rpb25zfQogICAgICAgICAgQGNsaWNrZWQ9JHsoKT0+dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITF9CiAgICAgICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyVGlsZShDKXtsZXQgej1DLmFjdGlvbnMmJkMuYWN0aW9ucy5sZW5ndGg+MCxBPXomJkMuYWN0aW9ucy5sZW5ndGg9PT0xLCQ9Qy5jb2x1bW5TcGFuJiZDLmNvbHVtblNwYW4+MT9DLmNvbHVtblNwYW46dm9pZCAwO3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlCiAgICAgICAgY2xhc3M9InN0YXRzLXRpbGUgJHtBPyJjbGlja2FibGUiOiIifSIKICAgICAgICBzdHlsZT0iJHskP2BncmlkLWNvbHVtbjogc3BhbiAkeyR9YDoiIn0iCiAgICAgICAgQGNsaWNrPSR7QT8oKT0+dGhpcy5oYW5kbGVUaWxlQWN0aW9uKEMuYWN0aW9uc1swXSxDKTp2b2lkIDB9CiAgICAgICAgQGNvbnRleHRtZW51PSR7ej9GPT50aGlzLnNob3dDb250ZXh0TWVudShGLEMpOnZvaWQgMH0KICAgICAgPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGlsZS1oZWFkZXIiPgogICAgICAgICAgPGgzIGNsYXNzPSJ0aWxlLXRpdGxlIj4ke0MudGl0bGV9PC9oMz4KICAgICAgICAgICR7Qy5pY29uP3dgCiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InRpbGUtaWNvbiIgLmljb249JHtDLmljb259IHNpemU9InNtYWxsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29udGVudCI+CiAgICAgICAgICAke3RoaXMucmVuZGVyVGlsZUNvbnRlbnQoQyl9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7Qy5kZXNjcmlwdGlvbiYmQy50eXBlIT09InRyZW5kIj93YAogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJ0aWxlLWRlc2NyaXB0aW9uIj4ke0MuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfXJlbmRlclRpbGVDb250ZW50KEMpe3N3aXRjaChDLnR5cGUpe2Nhc2UibnVtYmVyIjpyZXR1cm4gd2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiIHN0eWxlPSIke0MuY29sb3I/YGNvbG9yOiAke0MuY29sb3J9YDoiIn0iPgogICAgICAgICAgICA8c3Bhbj4ke0MudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAke0MudW5pdD93YDxzcGFuIGNsYXNzPSJ0aWxlLXVuaXQiPiR7Qy51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtjYXNlImdhdWdlIjpyZXR1cm4gdGhpcy5yZW5kZXJHYXVnZShDKTtjYXNlInBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlclBlcmNlbnRhZ2UoQyk7Y2FzZSJ0cmVuZCI6cmV0dXJuIHRoaXMucmVuZGVyVHJlbmQoQyk7Y2FzZSJtdWx0aVBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlck11bHRpUGVyY2VudGFnZShDKTtjYXNlImNwdUNvcmVzIjpyZXR1cm4gdGhpcy5yZW5kZXJDcHVDb3JlcyhDKTtjYXNlInBhcnRpdGlvbiI6cmV0dXJuIHRoaXMucmVuZGVyUGFydGl0aW9uKEMpO2Nhc2UiZGlzayI6cmV0dXJuIHRoaXMucmVuZGVyRGlzayhDKTtjYXNlInRleHQiOnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC12YWx1ZSIgc3R5bGU9IiR7Qy5jb2xvcj9gY29sb3I6ICR7Qy5jb2xvcn1gOiIifSI+CiAgICAgICAgICAgICR7Qy52YWx1ZX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA7ZGVmYXVsdDpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke0MudmFsdWV9PC9kaXY+YH19cmVuZGVyR2F1Z2UoQyl7bGV0IHo9dHlwZW9mIEMudmFsdWU9PSJudW1iZXIiP0MudmFsdWU6cGFyc2VGbG9hdChDLnZhbHVlKSxBPUMuZ2F1Z2VPcHRpb25zfHx7bWluOjAsbWF4OjEwMH0sJD0oei1BLm1pbikvKEEubWF4LUEubWluKSoxMDAsRj0xMjAsWT03MCxaPTYvMisyLGRlPTQwLEQ9Ri8yLFE9WS1aLGZlPUQtZGUsVD1RLFc9RCtkZSxtZT1gTSAke2ZlfSAke1R9IEEgJHtkZX0gJHtkZX0gMCAwIDEgJHtXfSAke1F9YCxxPU1hdGguUEkqZGUsSD1xLXEqJC8xMDAsVT1DLmNvbG9yfHx4LmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjguOCUpIiwiaHNsKDIxMCA0MCUgNzglKSIpO2lmKEEudGhyZXNob2xkcyl7bGV0IGo9Wy4uLkEudGhyZXNob2xkc10uc29ydCgoYWUsWCk9PlgudmFsdWUtYWUudmFsdWUpO2ZvcihsZXQgYWUgb2YgailpZih6Pj1hZS52YWx1ZSl7VT1hZS5jb2xvcjticmVha319cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdhdWdlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImdhdWdlLWNvbnRhaW5lciI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJnYXVnZS1zdmciIHZpZXdCb3g9IjAgMCAke0Z9ICR7WX0iIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPgogICAgICAgICAgICA8IS0tIEJhY2tncm91bmQgYXJjIC0tPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgIGNsYXNzPSJnYXVnZS1iYWNrZ3JvdW5kIgogICAgICAgICAgICAgIGQ9IiR7bWV9IgogICAgICAgICAgICAvPgogICAgICAgICAgICA8IS0tIEZpbGxlZCBhcmMgLS0+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgY2xhc3M9ImdhdWdlLWZpbGwiCiAgICAgICAgICAgICAgZD0iJHttZX0iCiAgICAgICAgICAgICAgc3Ryb2tlPSIke1V9IgogICAgICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9IiR7cX0iCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ9IiR7SH0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwhLS0gVmFsdWUgdGV4dCAtLT4KICAgICAgICAgICAgPHRleHQgY2xhc3M9ImdhdWdlLXRleHQiIHg9IiR7RH0iIHk9IiR7US04fSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSI+CiAgICAgICAgICAgICAgPHRzcGFuPiR7en08L3RzcGFuPiR7Qy51bml0P3dgPHRzcGFuIGNsYXNzPSJnYXVnZS11bml0IiBkeD0iMiIgZHk9IjAiPiR7Qy51bml0fTwvdHNwYW4+YDoiIn0KICAgICAgICAgICAgPC90ZXh0PgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQZXJjZW50YWdlKEMpe2xldCB6PXR5cGVvZiBDLnZhbHVlPT0ibnVtYmVyIj9DLnZhbHVlOnBhcnNlRmxvYXQoQy52YWx1ZSksQT1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCx6KSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS12YWx1ZSI+JHtBfSU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLWJhciI+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0icGVyY2VudGFnZS1maWxsIiAKICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke0F9JTsgJHtDLmNvbG9yP2BiYWNrZ3JvdW5kOiAke0MuY29sb3J9YDoiIn0iCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUcmVuZChDKXtpZighQy50cmVuZERhdGF8fEMudHJlbmREYXRhLmxlbmd0aDwyKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Qy52YWx1ZX08L2Rpdj5gO2xldCB6PUMudHJlbmREYXRhLEE9TWF0aC5tYXgoLi4ueiksJD1NYXRoLm1pbiguLi56KSxGPUEtJHx8MSxZPTMwMCxHPTMyLFo9MixkZT16Lm1hcCgoUSxmZSk9PntsZXQgVD1mZS8oei5sZW5ndGgtMSkqWSxXPVorKEctMipaKS0oUS0kKS9GKihHLTIqWik7cmV0dXJuYCR7VH0sJHtXfWB9KS5qb2luKCIgIiksRD1gMCwke0d9ICR7ZGV9ICR7WX0sJHtHfWA7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRyZW5kLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idHJlbmQtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0cmVuZC12YWx1ZSI+JHtDLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICR7Qy51bml0P3dgPHNwYW4gY2xhc3M9InRyZW5kLXVuaXQiPiR7Qy51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgJHtDLmRlc2NyaXB0aW9uP3dgPHNwYW4gY2xhc3M9InRyZW5kLWxhYmVsIj4ke0MuZGVzY3JpcHRpb259PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idHJlbmQtZ3JhcGgiPgogICAgICAgICAgPHN2ZyBjbGFzcz0idHJlbmQtc3ZnIiB2aWV3Qm94PSIwIDAgJHtZfSAke0d9IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj4KICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9InRyZW5kLWFyZWEiIHBvaW50cz0iJHtEfSIgLz4KICAgICAgICAgICAgPHBvbHlsaW5lIGNsYXNzPSJ0cmVuZC1saW5lIiBwb2ludHM9IiR7ZGV9IiAvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNdWx0aVBlcmNlbnRhZ2UoQyl7aWYoIUMucGVyY2VudGFnZXN8fEMucGVyY2VudGFnZXMubGVuZ3RoPT09MClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke0MudmFsdWV9PC9kaXY+YDtsZXQgej1DLnBlcmNlbnRhZ2VzLnNsaWNlKDAsMyk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1pdGVtcyI+CiAgICAgICAgICAke3oubWFwKEE9PntsZXQgJD1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxBLnZhbHVlKSk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtbGFiZWwiPiR7QS5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLXZhbHVlIj4keyR9JTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1iYXIiPgogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtZmlsbCIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7JH0lOyAke0EuY29sb3I/YGJhY2tncm91bmQ6ICR7QS5jb2xvcn1gOiIifSIKICAgICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckNwdUNvcmVzKEMpe2lmKCFDLmNvcmVzRGF0YXx8Qy5jb3Jlc0RhdGEubGVuZ3RoPT09MClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke0MudmFsdWV9PC9kaXY+YDtsZXQgej1DLmNvcmVzRGF0YSxBPU1hdGgucm91bmQoei5yZWR1Y2UoKGRlLEQpPT5kZStELnVzYWdlLDApL3oubGVuZ3RoKSwkPWkoZGU9PmRlPDUwPyJsb3ciOmRlPDgwPyJtZWRpdW0iOiJoaWdoIiwiZ2V0Q29sb3JDbGFzcyIpLEY9ei5sZW5ndGgqMjQrKHoubGVuZ3RoLTEpKjMsWT1DLmNvbHVtblNwYW58fDEsRz10aGlzLm1pblRpbGVXaWR0aCpZKyhZLTEpKnRoaXMuZ2FwLTMyLFo9RjxHKi42NjY7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3Jlcy13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcHUtY29yZXMtdmFsdWUiPiR7QX08L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLXVuaXQiPiU8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLWxhYmVsIj4ke3oubGVuZ3RofSBjb3Jlczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtYmFycyAke1o/ImNlbnRlcmVkIjoiIn0iPgogICAgICAgICAgJHt6Lm1hcChkZT0+e2xldCBEPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLGRlLnVzYWdlKSksUT0kKEQpO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNwdS1jb3JlLWJhci1jb250YWluZXIiIHRpdGxlPSJDb3JlICR7ZGUubGFiZWx8fGRlLmlkfTogJHtEfSUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmUtYmFyLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNwdS1jb3JlLWJhci1maWxsICR7UX0iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImhlaWdodDogJHtEfSUiCiAgICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHt6Lmxlbmd0aDw9MTY/d2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3JlLWxhYmVsIj4ke2RlLmxhYmVsfHxkZS5pZH08L3NwYW4+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1mb3JtYXRCeXRlcyhDKXtpZihDPT09MClyZXR1cm4iMCBCIjtsZXQgej0xMDI0LEE9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiLCJQQiJdLCQ9TWF0aC5mbG9vcihNYXRoLmxvZyhDKS9NYXRoLmxvZyh6KSk7cmV0dXJuIHBhcnNlRmxvYXQoKEMvTWF0aC5wb3coeiwkKSkudG9GaXhlZCgxKSkrIiAiK0FbJF19cmVuZGVyUGFydGl0aW9uKEMpe2lmKCFDLnBhcnRpdGlvbkRhdGEpcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtDLnZhbHVlfTwvZGl2PmA7bGV0e3VzZWQ6eix0b3RhbDpBLGZpbGVzeXN0ZW06JCxtb3VudFBvaW50OkZ9PUMucGFydGl0aW9uRGF0YSxZPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLHovQSoxMDApKSxHPUEteixaPWkoKCk9Plk+PTkwPyJjcml0aWNhbCI6WT49NzU/Indhcm5pbmciOiIiLCJnZXRDb2xvckNsYXNzIik7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24taGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tcGVyY2VudGFnZSI+JHtNYXRoLnJvdW5kKFkpfSU8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLWJhciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJwYXJ0aXRpb24tYmFyLWZpbGwgJHtaKCl9IgogICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7WX0lIgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0cyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC1sYWJlbCI+VXNlZDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LXZhbHVlIj4ke3RoaXMuZm9ybWF0Qnl0ZXMoeil9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tc3RhdCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0aXRpb24tc3RhdC1sYWJlbCI+RnJlZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LXZhbHVlIj4ke3RoaXMuZm9ybWF0Qnl0ZXMoRyl9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLW1ldGEiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1maWxlc3lzdGVtIj4keyR9PC9zcGFuPgogICAgICAgICAgJHtGP3dgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1tb3VudHBvaW50Ij4ke0Z9PC9zcGFuPmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEaXNrKEMpe2lmKCFDLmRpc2tEYXRhKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Qy52YWx1ZX08L2Rpdj5gO2xldHtjYXBhY2l0eTp6LG1vZGVsOkEsdHlwZTokLGlvcHM6RixoZWFsdGg6WX09Qy5kaXNrRGF0YSxHPWkoWj0+Wj49NzA/Imdvb2QiOlo+PTMwPyJ3YXJuaW5nIjoiY3JpdGljYWwiLCJnZXRIZWFsdGhDbGFzcyIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaXNrLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRpc2stY2FwYWNpdHkiPiR7dGhpcy5mb3JtYXRCeXRlcyh6KX08L2Rpdj4KICAgICAgICAke0F8fCQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2stbW9kZWwiPgogICAgICAgICAgICAke0E/d2A8c3Bhbj4ke0F9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICR7JD93YDxzcGFuIGNsYXNzPSJkaXNrLXR5cGUtYmFkZ2UiPiR7JH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1tZXRyaWNzIj4KICAgICAgICAgICR7Rj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staW9wcy1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtbGFiZWwiPlJlYWQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLXZhbHVlIj4ke0YucmVhZC50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLWxhYmVsIj5Xcml0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtdmFsdWUiPiR7Ri53cml0ZS50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHtZIT09dm9pZCAwP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aC1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staGVhbHRoLWxhYmVsIj5IZWFsdGg8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1oZWFsdGgtdmFsdWUiPiR7WX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaXNrLWhlYWx0aC1maWxsICR7RyhZKX0iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtZfSUiCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGhhbmRsZUdyaWRBY3Rpb24oQyl7Qy5hY3Rpb24mJmF3YWl0IEMuYWN0aW9uKCl9YXN5bmMgaGFuZGxlVGlsZUFjdGlvbihDLHope0MuYWN0aW9uJiZhd2FpdCBDLmFjdGlvbigpfXNob3dDb250ZXh0TWVudShDLHope2lmKCF6LmFjdGlvbnN8fHouYWN0aW9ucy5sZW5ndGg9PT0wKXJldHVybjtDLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uPXt4OkMuY2xpZW50WCx5OkMuY2xpZW50WX0sdGhpcy5jb250ZXh0TWVudUFjdGlvbnM9ei5hY3Rpb25zLHRoaXMuY29udGV4dE1lbnVWaXNpYmxlPSEwO2xldCBBPWkoKCk9Pnt0aGlzLmNvbnRleHRNZW51VmlzaWJsZT0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsQSl9LCJjbG9zZUhhbmRsZXIiKTtzZXRUaW1lb3V0KCgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEEpfSwxMDApfXN0YXRpY3tZbyhhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgZWcsa2QsQWYxLEVmMSxJZjEsUGYxLGpacixVWnI9dSgoKT0+e3ZlKCk7d2EoKTtMNmUoKTtlZz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sa2Q9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEFmMT0oKCk9PntsZXQgdD1bdWUoImRlbW8tZGFzaGJvYXJkLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVtb0Rhc2hib2FyZFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtpZSgpXSxlZyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2YXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iYWN0aXZhdGVkImluIGYsImhhcyIpLGdldDppKGY9PmYuYWN0aXZhdGVkLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YuYWN0aXZhdGVkPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxlZyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pLGtkKGEscil9I2U9a2QodGhpcyxvLCExKTtnZXQgYWN0aXZhdGVkKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFjdGl2YXRlZChkKXt0aGlzLiNlPWR9Y3R4PWtkKHRoaXMsbCk7c3RhdHNUaWxlcz1be2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6MTIzNCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyIsZGVzY3JpcHRpb246Ik9ubGluZSBub3ciLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJhcGktY2FsbHMiLHRpdGxlOiJBUEkgQ2FsbHMiLHZhbHVlOjQ1MjAwLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLGRlc2NyaXB0aW9uOiIrMTIlIGZyb20gbGFzdCBob3VyIixjb2xvcjoiIzNiODJmNiIsdHJlbmREYXRhOlszMmUzLDM1ZTMsMzhlMyw0MWUzLDM5ZTMsNDJlMyw0NTIwMF19LHtpZDoiaGVhbHRoIix0aXRsZToiU3lzdGVtIEhlYWx0aCIsdmFsdWU6OTkuOSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmhlYXJ0LXB1bHNlIixkZXNjcmlwdGlvbjoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjk1LGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UiLHZhbHVlOjEyNyx1bml0OiJtcyIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dGltZXIiLGRlc2NyaXB0aW9uOiItMTVtcyBmcm9tIHllc3RlcmRheSIsY29sb3I6IiM4YjVjZjYifSx7aWQ6InJlc291cmNlcyIsdGl0bGU6IlJlc291cmNlIFVzYWdlIix2YWx1ZToiIix0eXBlOiJtdWx0aVBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLHBlcmNlbnRhZ2VzOlt7bGFiZWw6IkNQVSIsdmFsdWU6NjcsY29sb3I6IiMzYjgyZjYifSx7bGFiZWw6Ik1lbW9yeSIsdmFsdWU6ODQsY29sb3I6IiM4YjVjZjYifSx7bGFiZWw6IkRpc2siLHZhbHVlOjQ1LGNvbG9yOiIjMTBiOTgxIn1dfSx7aWQ6InJlcXVlc3RzIix0aXRsZToiUmVxdWVzdHMvc2VjIix2YWx1ZToxODUwLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6emFwIixkZXNjcmlwdGlvbjoiQ3VycmVudCB0aHJvdWdocHV0Iixjb2xvcjoiIzA2YjZkNCIsdHJlbmREYXRhOlsxMjAwLDE0MDAsMTM1MCwxNjAwLDE3NTAsMTY4MCwxODUwXX1dO29uQWN0aXZhdGUoZCl7dGhpcy5jdHg9ZCx0aGlzLmFjdGl2YXRlZD0hMCxjb25zb2xlLmxvZygiRGFzaGJvYXJkIGFjdGl2YXRlZCB3aXRoIGNvbnRleHQ6IixkKSxkLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkRhc2hib2FyZCIsZ3JvdXBzOlt7bmFtZToiUXVpY2sgQWNjZXNzIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibGF5b3V0RGFzaGJvYXJkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IiksImFjdGlvbiIpfSx7a2V5OiJSZWNlbnQiLGljb25OYW1lOiJjbG9jayIsYmFkZ2U6NSxhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlY2VudCIpLCJhY3Rpb24iKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2ggRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjppKCgpPT5hbGVydCgiUmVmcmVzaGluZyBkYXNoYm9hcmQgZGF0YS4uLiIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiVGltZSBSYW5nZSJ9LHt0eXBlOiJmaWx0ZXIiLGtleToiTGl2ZSBVcGRhdGVzIixpY29uTmFtZToibHVjaWRlOnJhZGlvIixhY3RpdmU6ITAsb25Ub2dnbGU6aShmPT5jb25zb2xlLmxvZygiTGl2ZSB1cGRhdGVzOiIsZiksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBcmNoaXZlZCIsaWNvbk5hbWU6Imx1Y2lkZTphcmNoaXZlIixhY3RpdmU6ITEsb25Ub2dnbGU6aShmPT5jb25zb2xlLmxvZygiU2hvdyBhcmNoaXZlZDoiLGYpLCJvblRvZ2dsZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJEYXRhIFNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UiLG9wdGlvbnM6W3trZXk6ImFwaSIsbGFiZWw6IkFQSSBTZXJ2ZXIiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJ3ZWIiLGxhYmVsOiJXZWIgVHJhZmZpYyIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmdsb2JlIn0se2tleToibW9iaWxlIixsYWJlbDoiTW9iaWxlIEFwcCIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnNtYXJ0cGhvbmUifV0sb25DaGFuZ2U6aShmPT5jb25zb2xlLmxvZygiRGF0YSBzb3VyY2VzOiIsZiksIm9uQ2hhbmdlIil9XX0se25hbWU6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydDMiLGl0ZW1zOlt7a2V5OiJNZXRyaWNzIixpY29uTmFtZToiYWN0aXZpdHkiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTWV0cmljcyIpLCJhY3Rpb24iKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6ImZpbGVUZXh0IixiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUmVwb3J0cyIpLCJhY3Rpb24iKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToibGluayIsa2V5OiJBbmFseXRpY3MgRG9jcyIsaWNvbk5hbWU6Imx1Y2lkZTpleHRlcm5hbExpbmsiLGhyZWY6Imh0dHBzOi8vZG9jcy5leGFtcGxlLmNvbS9hbmFseXRpY3MifV19XX0pLGQuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJPdmVydmlldyB0YWIiKSwiYWN0aW9uIil9LHtrZXk6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbmFseXRpY3MgdGFiIiksImFjdGlvbiIpfSx7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlcG9ydHMgdGFiIiksImFjdGlvbiIpfV0pfW9uRGVhY3RpdmF0ZSgpe3RoaXMuYWN0aXZhdGVkPSExLGNvbnNvbGUubG9nKCJEYXNoYm9hcmQgZGVhY3RpdmF0ZWQiKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KICAgICAgICBwIHsgY29sb3I6ICM3MzczNzM7IG1hcmdpbi1ib3R0b206IDMycHg7IH0KICAgICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmN0eC1hY3Rpb25zIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAyKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQogICAgICAgIC5jdHgtYWN0aW9ucyBoMiB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IG1hcmdpbi1ib3R0b206IDE2cHg7IH0KICAgICAgICAuYnV0dG9uLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0biB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpOwogICAgICAgICAgY29sb3I6ICM2MGE1ZmE7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg1OSwgMTMwLCAyNDYsIDAuNSk7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLmRhbmdlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLmRhbmdlcjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5zdWNjZXNzIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMSk7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDE5NywgOTQsIDAuMyk7CiAgICAgICAgICBjb2xvcjogIzRhZGU4MDsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uc3VjY2Vzczpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjUpOwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPkRhc2hib2FyZDwvaDE+CiAgICAgIDxwPldlbGNvbWUgYmFjayEgSGVyZSdzIGFuIG92ZXJ2aWV3IG9mIHlvdXIgc3lzdGVtLjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke2Q9PmNvbnNvbGUubG9nKCJUaWxlIGFjdGlvbjoiLGQuZGV0YWlsKX0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGl2IGNsYXNzPSJjdHgtYWN0aW9ucyI+CiAgICAgICAgPGgyPkNvbnRleHQgQWN0aW9ucyAoY3R4LmFwcHVpKTwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudVZpc2libGUoITEpfT5IaWRlIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51VmlzaWJsZSghMCl9PlNob3cgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCExKX0+SGlkZSBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCEwKX0+U2hvdyBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic1Zpc2libGUoITEpfT5IaWRlIENvbnRlbnQgVGFiczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzVmlzaWJsZSghMCl9PlNob3cgQ29udGVudCBUYWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51Q29sbGFwc2VkKCEwKX0+Q29sbGFwc2UgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVDb2xsYXBzZWQoITEpfT5FeHBhbmQgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldEJyZWFkY3J1bWJzKFsiRGFzaGJvYXJkIiwiT3ZlcnZpZXciLCJTdGF0cyJdKX0+U2V0IEJyZWFkY3J1bWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLm5hdmlnYXRlVG9WaWV3KCJwcm9qZWN0cyIpfT5HbyB0byBQcm9qZWN0czwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5uYXZpZ2F0ZVRvVmlldygic2V0dGluZ3MiLHtzZWN0aW9uOiJzZWN1cml0eSJ9KX0+R28gdG8gU2V0dGluZ3MvU2VjdXJpdHk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuYWN0aXZpdHlMb2cuYWRkKHt0eXBlOiJjdXN0b20iLHVzZXI6IkRlbW8gVXNlciIsbWVzc2FnZToiQnV0dG9uIGNsaWNrZWQgZnJvbSBjdHghIixpY29uTmFtZToibHVjaWRlOm1vdXNlLXBvaW50ZXItY2xpY2sifSl9PkFkZCBBY3Rpdml0eSBFbnRyeTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUJhZGdlKCJ0YXNrcyIsOTkpfT5TZXQgVGFza3MgQmFkZ2UgdG8gOTk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLmNsZWFyTWFpbk1lbnVCYWRnZSgidGFza3MiKX0+Q2xlYXIgVGFza3MgQmFkZ2U8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNBdXRvSGlkZSghMCwxKX0+QXV0by1oaWRlIFRhYnMgKOKJpDEpPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIGRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic0F1dG9IaWRlKCExKX0+RGlzYWJsZSBBdXRvLWhpZGU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkQ2xvc2VhYmxlVGFiKCl9PkFkZCBDbG9zZWFibGUgVGFiPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH10YWJDb3VudGVyPTA7YWRkQ2xvc2VhYmxlVGFiKCl7aWYoIXRoaXMuY3R4KXJldHVybjt0aGlzLnRhYkNvdW50ZXIrKztsZXQgZD1gVGFiICR7dGhpcy50YWJDb3VudGVyfWA7dGhpcy5jdHguYXBwdWkuYWRkQ29udGVudFRhYih7a2V5OmQsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coYFNlbGVjdGVkICR7ZH1gKSwiYWN0aW9uIiksY2xvc2VhYmxlOiEwLG9uQ2xvc2U6aSgoKT0+e3RoaXMuY3R4Py5hcHB1aS5yZW1vdmVDb250ZW50VGFiKGQpfSwib25DbG9zZSIpfSl9fTtyZXR1cm4gYz1hfSkoKSxFZjE9KCgpPT57bGV0IHQ9W3VlKCJkZW1vLXNldHRpbmdzLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVtb1NldHRpbmdzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLGVnKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4ic2VjdGlvbiJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnNlY3Rpb24sImdldCIpLHNldDppKChtLHYpPT57bS5zZWN0aW9uPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxlZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhhc0NoYW5nZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+Imhhc0NoYW5nZXMiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5oYXNDaGFuZ2VzLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uaGFzQ2hhbmdlcz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksZWcobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KSxrZChhLHIpfSNlPWtkKHRoaXMsbywiZ2VuZXJhbCIpO2dldCBzZWN0aW9uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlY3Rpb24oaCl7dGhpcy4jZT1ofSN0PShrZCh0aGlzLGwpLGtkKHRoaXMsZCwhMSkpO2dldCBoYXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGhhc0NoYW5nZXMoaCl7dGhpcy4jdD1ofWFwcHVpPWtkKHRoaXMsZik7b25BY3RpdmF0ZShoKXt0aGlzLmFwcHVpPWguYXBwdWksY29uc29sZS5sb2coIlNldHRpbmdzIGFjdGl2YXRlZCB3aXRoIHBhcmFtczoiLGgucGFyYW1zKSxoLnBhcmFtcz8uc2VjdGlvbiYmKHRoaXMuc2VjdGlvbj1oLnBhcmFtcy5zZWN0aW9uKSxoLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlNldHRpbmdzIixncm91cHM6W3tuYW1lOiJBY2NvdW50IixpY29uTmFtZToibHVjaWRlOnVzZXIiLGl0ZW1zOlt7a2V5OiJnZW5lcmFsIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjppKCgpPT50aGlzLnNob3dTZWN0aW9uKCJnZW5lcmFsIiksImFjdGlvbiIpfSx7a2V5OiJwcm9maWxlIixpY29uTmFtZToidXNlciIsYWN0aW9uOmkoKCk9PnRoaXMuc2hvd1NlY3Rpb24oInByb2ZpbGUiKSwiYWN0aW9uIil9LHtrZXk6InNlY3VyaXR5IixpY29uTmFtZToic2hpZWxkIixhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigic2VjdXJpdHkiKSwiYWN0aW9uIil9XX0se25hbWU6IlByZWZlcmVuY2VzIixpY29uTmFtZToibHVjaWRlOnNsaWRlcnMiLGl0ZW1zOlt7a2V5OiJub3RpZmljYXRpb25zIixpY29uTmFtZToiYmVsbCIsYmFkZ2U6MyxhY3Rpb246aSgoKT0+dGhpcy5zaG93U2VjdGlvbigibm90aWZpY2F0aW9ucyIpLCJhY3Rpb24iKX0se2tleToiYXBwZWFyYW5jZSIsaWNvbk5hbWU6InBhbGV0dGUiLGFjdGlvbjppKCgpPT50aGlzLnNob3dTZWN0aW9uKCJhcHBlYXJhbmNlIiksImFjdGlvbiIpfV19XX0pLGguYXBwdWkuc2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbih0aGlzLnNlY3Rpb24pLGguYXBwdWkuc2V0Q29udGVudFRhYnMoW10pfW9uRGVhY3RpdmF0ZSgpe2NvbnNvbGUubG9nKCJTZXR0aW5ncyBkZWFjdGl2YXRlZCIpLHRoaXMuaGFzQ2hhbmdlcz0hMX1jYW5EZWFjdGl2YXRlKCl7cmV0dXJuIHRoaXMuaGFzQ2hhbmdlcz8iWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBMZWF2ZSBhbnl3YXk/IjohMH1zaG93U2VjdGlvbihoKXt0aGlzLnNlY3Rpb249aCx0aGlzLmFwcHVpPy5zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKGgpfXNpbXVsYXRlQ2hhbmdlKCl7dGhpcy5oYXNDaGFuZ2VzPSEwfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDhweDsgfQogICAgICAgIHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC5zZWN0aW9uLW5hbWUgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5hY3Rpb25zIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjM2I4MmY2OwogICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMjU2M2ViOwogICAgICAgIH0KICAgICAgICAud2FybmluZyB7CiAgICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+U2V0dGluZ3M8L2gxPgogICAgICA8cD5NYW5hZ2UgeW91ciBhY2NvdW50IGFuZCBhcHBsaWNhdGlvbiBwcmVmZXJlbmNlcy48L3A+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbmFtZSI+CiAgICAgICAgQ3VycmVudCBzZWN0aW9uOiA8c3Ryb25nPiR7dGhpcy5zZWN0aW9ufTwvc3Ryb25nPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zaW11bGF0ZUNoYW5nZSgpfT5NYWtlIENoYW5nZXM8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5oYXNDaGFuZ2VzP3dgPHAgY2xhc3M9Indhcm5pbmciPllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcy4gTmF2aWdhdGlvbiB3aWxsIHByb21wdCBmb3IgY29uZmlybWF0aW9uLjwvcD5gOiIifQogICAgYH19O3JldHVybiBwPWF9KSgpLElmMT0oKCk9PntsZXQgdD1bdWUoImRlbW8tcHJvamVjdHMtdmlldyIpXSxlLHI9W10sYSxzPXllO3ZhciBuPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZW1vUHJvamVjdHNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZWcobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KSxrZChhLHIpfW9uQWN0aXZhdGUobyl7by5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJQcm9qZWN0cyIsZ3JvdXBzOlt7bmFtZToiTXkgUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixpdGVtczpbe2tleToiQWN0aXZlIixpY29uTmFtZToiZm9sZGVyIixiYWRnZTozLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWN0aXZlIiksImFjdGlvbiIpfSx7a2V5OiJBcmNoaXZlZCIsaWNvbk5hbWU6ImFyY2hpdmUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQXJjaGl2ZWQiKSwiYWN0aW9uIil9LHtrZXk6IlNoYXJlZCIsaWNvbk5hbWU6InVzZXJzIixiYWRnZToyLGJhZGdlVmFyaWFudDoid2FybmluZyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTaGFyZWQiKSwiYWN0aW9uIil9XX0se25hbWU6IlF1aWNrIEFjdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6emFwIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJOZXcgUHJvamVjdCIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246aSgoKT0+YWxlcnQoIkNyZWF0ZSBuZXcgcHJvamVjdCIpLCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjppKCgpPT5hbGVydCgiSW1wb3J0IHByb2plY3QiKSwiYWN0aW9uIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImxpbmsiLGtleToiVGVtcGxhdGVzIixpY29uTmFtZToibHVjaWRlOmxheW91dFRlbXBsYXRlIixocmVmOiJodHRwczovL3RlbXBsYXRlcy5leGFtcGxlLmNvbSJ9XX1dfSksby5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiR3JpZCIsaWNvbk5hbWU6Imx1Y2lkZTpncmlkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkdyaWQgdmlldyIpLCJhY3Rpb24iKX0se2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkxpc3QgdmlldyIpLCJhY3Rpb24iKX0se2tleToiQm9hcmQiLGljb25OYW1lOiJsdWNpZGU6a2FuYmFuIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkJvYXJkIHZpZXciKSwiYWN0aW9uIil9XSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC5wcm9qZWN0cyB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgLnByb2plY3QgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnM7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0OmhvdmVyIHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjIpOwogICAgICAgIH0KICAgICAgICAucHJvamVjdCBoMyB7IGNvbG9yOiAjZmFmYWZhOyBtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNnB4OyB9CiAgICAgICAgLnByb2plY3QgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTNweDsgfQogICAgICAgIC5iYWRnZSB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMTQ1MzJkOwogICAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5Qcm9qZWN0czwvaDE+CiAgICAgIDxkaXYgY2xhc3M9InByb2plY3RzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Gcm9udGVuZCBBcHAgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPlJlYWN0LWJhc2VkIGRhc2hib2FyZCBhcHBsaWNhdGlvbjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5BUEkgU2VydmVyIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5Ob2RlLmpzIFJFU1QgQVBJIGJhY2tlbmQ8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+TW9iaWxlIEFwcCA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+UmVhY3QgTmF0aXZlIGlPUy9BbmRyb2lkIGFwcDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Eb2N1bWVudGF0aW9uPC9oMz4KICAgICAgICAgIDxwPlRlY2huaWNhbCBkb2N1bWVudGF0aW9uIHNpdGU8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBuPWF9KSgpLFBmMT0oKCk9PntsZXQgdD1bdWUoImRlbW8tdGFza3MtdmlldyIpXSxlLHI9W10sYSxzPXllO3ZhciBuPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZW1vVGFza3NWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZWcobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KSxrZChhLHIpfW9uQWN0aXZhdGUobyl7by5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJUYXNrcyIsZ3JvdXBzOlt7bmFtZToiVmlld3MiLGljb25OYW1lOiJsdWNpZGU6ZXllIixpdGVtczpbe2tleToiQWxsIFRhc2tzIixpY29uTmFtZToibGlzdCIsYmFkZ2U6MTIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBbGwiKSwiYWN0aW9uIil9LHtrZXk6IlRvZGF5IixpY29uTmFtZToiY2FsZW5kYXIiLGJhZGdlOjMsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJUb2RheSIpLCJhY3Rpb24iKX0se2tleToiVXBjb21pbmciLGljb25OYW1lOiJjbG9jayIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJVcGNvbWluZyIpLCJhY3Rpb24iKX0se2tleToiQ29tcGxldGVkIixpY29uTmFtZToiY2hlY2tDaXJjbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQ29tcGxldGVkIiksImFjdGlvbiIpfV19LHtuYW1lOiJGaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJQcmlvcml0eSJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJQcmlvcml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpmbGFnIixvcHRpb25zOlt7a2V5OiJoaWdoIixsYWJlbDoiSGlnaCIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmFsZXJ0Q2lyY2xlIn0se2tleToibWVkaXVtIixsYWJlbDoiTWVkaXVtIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6bWludXNDaXJjbGUifSx7a2V5OiJsb3ciLGxhYmVsOiJMb3ciLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjaXJjbGUifV0sb25DaGFuZ2U6aShsPT5jb25zb2xlLmxvZygiUHJpb3JpdHkgZmlsdGVyOiIsbCksIm9uQ2hhbmdlIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6Ik9wdGlvbnMifSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgU3VidGFza3MiLGljb25OYW1lOiJsdWNpZGU6bGlzdFRyZWUiLGFjdGl2ZTohMCxvblRvZ2dsZTppKGw9PmNvbnNvbGUubG9nKCJTaG93IHN1YnRhc2tzOiIsbCksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tTcXVhcmUiLGFjdGl2ZTohMSxvblRvZ2dsZTppKGw9PmNvbnNvbGUubG9nKCJTaG93IGNvbXBsZXRlZDoiLGwpLCJvblRvZ2dsZSIpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFRhc2siLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJBZGQgbmV3IHRhc2siKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IFRhc2tzIixpY29uTmFtZToibHVjaWRlOnVwbG9hZCIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJJbXBvcnQgdGFza3MiKSwiYWN0aW9uIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJDbGVhciBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIix2YXJpYW50OiJkYW5nZXIiLGNvbmZpcm1NZXNzYWdlOiJEZWxldGUgYWxsIGNvbXBsZXRlZCB0YXNrcz8iLGFjdGlvbjppKCgpPT5hbGVydCgiQ2xlYXJlZCBjb21wbGV0ZWQgdGFza3MiKSwiYWN0aW9uIil9XX1dfSksby5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkxpc3QiKSwiYWN0aW9uIil9LHtrZXk6IkNhbGVuZGFyIixpY29uTmFtZToibHVjaWRlOmNhbGVuZGFyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkNhbGVuZGFyIiksImFjdGlvbiIpfV0pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAudGFzay1saXN0IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIC50YXNrIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGhlaWdodDogMThweDsKICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM1MjUyNTI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgICAgIC50YXNrLXRleHQgeyBjb2xvcjogI2ZhZmFmYTsgZmxleDogMTsgfQogICAgICAgIC5kdWUtZGF0ZSB7IGNvbG9yOiAjNzM3MzczOyBmb250LXNpemU6IDEycHg7IH0KICAgICAgICAucHJpb3JpdHkgewogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB9CiAgICAgICAgLnByaW9yaXR5LmhpZ2ggeyBiYWNrZ3JvdW5kOiAjNDUwYTBhOyBjb2xvcjogI2Y4NzE3MTsgfQogICAgICAgIC5wcmlvcml0eS5tZWRpdW0geyBiYWNrZ3JvdW5kOiAjNDUxYTAzOyBjb2xvcjogI2ZiYmYyNDsgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+VGFza3M8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJ0YXNrLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+UmV2aWV3IHB1bGwgcmVxdWVzdCAjNDI8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPlRvZGF5PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByaW9yaXR5IGhpZ2giPkhpZ2g8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5VcGRhdGUgZG9jdW1lbnRhdGlvbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+VG9tb3Jyb3c8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpb3JpdHkgbWVkaXVtIj5NZWRpdW08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5Xcml0ZSB1bml0IHRlc3RzPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5EZWMgMjA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBuPWF9KSgpLGpacj1pKCgpPT57bGV0IHQ9e2JyYW5kaW5nOntsb2dvSWNvbjoibHVjaWRlOmJveCIsbG9nb1RleHQ6IkFjbWUgQXBwIn0sYXBwQmFyOnttZW51SXRlbXM6W3tuYW1lOiJGaWxlIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Ik5ldyBQcm9qZWN0IixzaG9ydGN1dDoiQ21kK04iLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyIpLCJhY3Rpb24iKX0se25hbWU6Ik9wZW4uLi4iLHNob3J0Y3V0OiJDbWQrTyIsaWNvbk5hbWU6ImZvbGRlck9wZW4iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIiksImFjdGlvbiIpfSx7bmFtZToiUmVjZW50IFByb2plY3RzIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6Im15LWFwcCIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gbXktYXBwIiksImFjdGlvbiIpfSx7bmFtZToiY29tcG9uZW50LWxpYiIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gY29tcG9uZW50LWxpYiIpLCJhY3Rpb24iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNhdmUgQWxsIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiU2F2ZSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVW5kbyIpLCJhY3Rpb24iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZWRvIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJDdXQiKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiQ29weSIpLCJhY3Rpb24iKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJQYXN0ZSIpLCJhY3Rpb24iKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIHNpZGViYXIiKSwiYWN0aW9uIil9LHtuYW1lOiJUb2dnbGUgQWN0aXZpdHkgTG9nIixzaG9ydGN1dDoiQ21kK1NoaWZ0K0EiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgYWN0aXZpdHkiKSwiYWN0aW9uIil9XX0se25hbWU6IkhlbHAiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRG9jdW1lbnRhdGlvbiIsaWNvbk5hbWU6ImJvb2siLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb2NzIiksImFjdGlvbiIpfSx7bmFtZToiS2V5Ym9hcmQgU2hvcnRjdXRzIixpY29uTmFtZToia2V5Ym9hcmQiLHNob3J0Y3V0OiJDbWQrLyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpLCJhY3Rpb24iKX1dfV0sYnJlYWRjcnVtYnM6IkRhc2hib2FyZCIsc2hvd1dpbmRvd0NvbnRyb2xzOiEwLHNob3dTZWFyY2g6ITAsdXNlcjp7bmFtZToiSmFuZSBTbWl0aCIsZW1haWw6ImphbmUuc21pdGhAZXhhbXBsZS5jb20iLHN0YXR1czoib25saW5lIn0scHJvZmlsZU1lbnVJdGVtczpbe25hbWU6IlByb2ZpbGUiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246aShhc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpLCJhY3Rpb24iKX0se25hbWU6IkFjY291bnQgU2V0dGluZ3MiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIiksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAgJiBTdXBwb3J0IixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmkoYXN5bmMoKT0+Y29uc29sZS5sb2coIkhlbHAiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsb2dPdXQiLGFjdGlvbjppKGFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpLCJhY3Rpb24iKX1dfSx2aWV3czpbe2lkOiJkYXNoYm9hcmQiLG5hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixjb250ZW50OiJkZW1vLWRhc2hib2FyZC12aWV3Iixyb3V0ZToiZGFzaGJvYXJkIn0se2lkOiJwcm9qZWN0cyIsbmFtZToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixjb250ZW50OiJkZW1vLXByb2plY3RzLXZpZXciLHJvdXRlOiJwcm9qZWN0cyIsYmFkZ2U6M30se2lkOiJ0YXNrcyIsbmFtZToiVGFza3MiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tTcXVhcmUiLGNvbnRlbnQ6ImRlbW8tdGFza3MtdmlldyIscm91dGU6InRhc2tzIixiYWRnZToxMn0se2lkOiJzZXR0aW5ncyIsbmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGNvbnRlbnQ6ImRlbW8tc2V0dGluZ3MtdmlldyIscm91dGU6InNldHRpbmdzLzpzZWN0aW9uPyJ9XSxtYWluTWVudTp7c2VjdGlvbnM6W3tuYW1lOiJNYWluIix2aWV3czpbImRhc2hib2FyZCJdfSx7bmFtZToiV29ya3NwYWNlIix2aWV3czpbInByb2plY3RzIiwidGFza3MiXX1dLGJvdHRvbUl0ZW1zOlsic2V0dGluZ3MiXX0sZGVmYXVsdFZpZXc6ImRhc2hib2FyZCIsYm90dG9tQmFyOnt2aXNpYmxlOiEwLHdpZGdldHM6W3tpZDoic3RhdHVzIixpY29uTmFtZToibHVjaWRlOmFjdGl2aXR5IixsYWJlbDoiU3lzdGVtIE9ubGluZSIsc3RhdHVzOiJzdWNjZXNzIix0b29sdGlwOiJBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCIsb25DbGljazppKCgpPT5jb25zb2xlLmxvZygiU3RhdHVzIGNsaWNrZWQiKSwib25DbGljayIpfSx7aWQ6Im5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6YmVsbCIsbGFiZWw6IjMgbm90aWZpY2F0aW9ucyIsc3RhdHVzOiJ3YXJuaW5nIix0b29sdGlwOiJZb3UgaGF2ZSB1bnJlYWQgbm90aWZpY2F0aW9ucyIsb25DbGljazppKCgpPT5jb25zb2xlLmxvZygiTm90aWZpY2F0aW9ucyBjbGlja2VkIiksIm9uQ2xpY2siKX0se2lkOiJ2ZXJzaW9uIixpY29uTmFtZToibHVjaWRlOmdpdEJyYW5jaCIsbGFiZWw6InYxLjIuMyIscG9zaXRpb246InJpZ2h0Iix0b29sdGlwOiJDdXJyZW50IHZlcnNpb24ifV0sYWN0aW9uczpbe2lkOiJ0ZXJtaW5hbCIsaWNvbk5hbWU6Imx1Y2lkZTp0ZXJtaW5hbCIsdG9vbHRpcDoiT3BlbiBUZXJtaW5hbCIscG9zaXRpb246InJpZ2h0IixvbkNsaWNrOmkoKCk9PmNvbnNvbGUubG9nKCJUZXJtaW5hbCBjbGlja2VkIiksIm9uQ2xpY2siKX1dfSxvblZpZXdDaGFuZ2U6aSgoYSxzKT0+e2NvbnNvbGUubG9nKGBWaWV3IGNoYW5nZWQgdG86ICR7YX0gKCR7cy5uYW1lfSlgKX0sIm9uVmlld0NoYW5nZSIpLG9uU2VhcmNoOmkoYT0+e2NvbnNvbGUubG9nKCJTZWFyY2ggcXVlcnk6IixhKX0sIm9uU2VhcmNoIil9LGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc05hbWU9ImRlbW8tY29udGFpbmVyIixlLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyI7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1hcHB1aSIpO3JldHVybiBlLmFwcGVuZENoaWxkKHIpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHIudXBkYXRlQ29tcGxldGUsci5jb25maWd1cmUodCksc2V0VGltZW91dCgoKT0+e3IuYWN0aXZpdHlMb2cuYWRkTWFueShbe3R5cGU6ImxvZ2luIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJsb2dnZWQgaW4gZnJvbSBDaHJvbWUgb24gbWFjT1MifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOidjcmVhdGVkIHByb2plY3QgIkZyb250ZW5kIEFwcCInfSx7dHlwZToidXBkYXRlIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToidXBkYXRlZCBBUEkgZG9jdW1lbnRhdGlvbiJ9LHt0eXBlOiJ2aWV3Iix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJ2aWV3ZWQgZGFzaGJvYXJkIGFuYWx5dGljcyJ9LHt0eXBlOiJkZWxldGUiLHVzZXI6IkFkbWluIixtZXNzYWdlOiJyZW1vdmVkIGRlcHJlY2F0ZWQgZW5kcG9pbnQifSx7dHlwZToiY3VzdG9tIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6InNjaGVkdWxlZCBiYWNrdXAgY29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmRhdGFiYXNlIn1dKX0sNTAwKSxyLnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUoYT0+e2NvbnNvbGUubG9nKCJWaWV3IGNoYW5nZWQgZXZlbnQ6IixhKSxyLnNldEJyZWFkY3J1bWJzKGEudmlldy5uYW1lKX0pLHIudmlld0xpZmVjeWNsZSQuc3Vic2NyaWJlKGE9Pntjb25zb2xlLmxvZygiTGlmZWN5Y2xlIGV2ZW50OiIsYS50eXBlLGEudmlld0lkKX0pLHNldFRpbWVvdXQoKCk9PntyLnNldE1haW5NZW51QmFkZ2UoInRhc2tzIiwxNSksci5hY3Rpdml0eUxvZy5hZGQoe3R5cGU6InVwZGF0ZSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJuZXcgdGFza3MgYWRkZWQifSl9LDVlMyl9LDApLHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgJHtlfQogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIERyZSxsN3Q9dSgoKT0+e3ZlKCk7RHJlPWNsYXNze3N0YXRpY3tpKHRoaXMsIlZpZXdSZWdpc3RyeSIpfXZpZXdzPW5ldyBNYXA7aW5zdGFuY2VzPW5ldyBNYXA7Y3VycmVudFZpZXdJZD1udWxsO2FwcHVpPW51bGw7c2V0QXBwdWlSZWYoZSl7dGhpcy5hcHB1aT1lfXJlZ2lzdGVyKGUpe3RoaXMudmlld3MuaGFzKGUuaWQpJiZjb25zb2xlLndhcm4oYFZpZXcgd2l0aCBpZCAiJHtlLmlkfSIgYWxyZWFkeSByZWdpc3RlcmVkLiBPdmVyd3JpdGluZy5gKSx0aGlzLnZpZXdzLnNldChlLmlkLGUpfXJlZ2lzdGVyQWxsKGUpe2UuZm9yRWFjaChyPT50aGlzLnJlZ2lzdGVyKHIpKX1nZXQoZSl7cmV0dXJuIHRoaXMudmlld3MuZ2V0KGUpfWdldFZpZXdJZHMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnZpZXdzLmtleXMoKSl9Z2V0QWxsKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy52YWx1ZXMoKSl9Z2V0Um91dGUoZSl7bGV0IHI9dGhpcy52aWV3cy5nZXQoZSk7cmV0dXJuIHI/LnJvdXRlfHxyPy5pZHx8IiJ9ZmluZEJ5Um91dGUoZSl7Zm9yKGxldCByIG9mIHRoaXMudmlld3MudmFsdWVzKCkpe2xldCBhPXIucm91dGV8fHIuaWQscz10aGlzLm1hdGNoUm91dGUoYSxlKTtpZihzIT09bnVsbClyZXR1cm57dmlldzpyLHBhcmFtczpzfX19bWF0Y2hSb3V0ZShlLHIpe2xldCBhPWUuc3BsaXQoIi8iKSxzPXIuc3BsaXQoIi8iKTtpZihhLmxlbmd0aD4wJiZhW2EubGVuZ3RoLTFdLmVuZHNXaXRoKCI/Iikpe2lmKHMubGVuZ3RoPGEubGVuZ3RoLTF8fHMubGVuZ3RoPmEubGVuZ3RoKXJldHVybiBudWxsfWVsc2UgaWYoYS5sZW5ndGghPT1zLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgbz17fTtmb3IobGV0IGw9MDtsPGEubGVuZ3RoO2wrKyl7bGV0IGM9YVtsXSxkPWMuZW5kc1dpdGgoIj8iKTtpZihkJiYoYz1jLnNsaWNlKDAsLTEpKSxjLnN0YXJ0c1dpdGgoIjoiKSl7bGV0IGY9Yy5zbGljZSgxKTtpZihzW2xdIT09dm9pZCAwKW9bZl09c1tsXTtlbHNlIGlmKCFkKXJldHVybiBudWxsfWVsc2UgaWYoc1tsXSE9PWMpcmV0dXJuIG51bGx9cmV0dXJuIG99YXN5bmMgY2FuTGVhdmVDdXJyZW50Vmlldygpe2lmKCF0aGlzLmN1cnJlbnRWaWV3SWQpcmV0dXJuITA7bGV0IGU9dGhpcy5pbnN0YW5jZXMuZ2V0KHRoaXMuY3VycmVudFZpZXdJZCk7aWYoIWUpcmV0dXJuITA7bGV0IHI9ZTtyZXR1cm4gdHlwZW9mIHIuY2FuRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIj9hd2FpdCByLmNhbkRlYWN0aXZhdGUoKTohMH1hc3luYyBhY3RpdmF0ZVZpZXcoZSxyLGEpe2xldCBzPXRoaXMudmlld3MuZ2V0KGUpO2lmKCFzKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke2V9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO2xldCBuPXMuY2FjaGUhPT0hMTt0aGlzLmN1cnJlbnRWaWV3SWQmJnRoaXMuY3VycmVudFZpZXdJZCE9PWUmJmF3YWl0IHRoaXMuZGVhY3RpdmF0ZVZpZXcodGhpcy5jdXJyZW50Vmlld0lkKTtsZXQgbz1uP3RoaXMuaW5zdGFuY2VzLmdldChlKTp2b2lkIDA7aWYobylvLnN0eWxlLmRpc3BsYXk9IiI7ZWxzZXtpZihvPWF3YWl0IHRoaXMuY3JlYXRlVmlld0VsZW1lbnQocyksIW8pcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgZWxlbWVudCBmb3IgdmlldyAiJHtlfSJgKSxudWxsO3IuYXBwZW5kQ2hpbGQobyksbiYmdGhpcy5pbnN0YW5jZXMuc2V0KGUsbyl9cmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZD1lLGF3YWl0IHRoaXMuY2FsbE9uQWN0aXZhdGUobyxlLGEpLG99YXN5bmMgZGVhY3RpdmF0ZVZpZXcoZSl7bGV0IHI9dGhpcy5pbnN0YW5jZXMuZ2V0KGUpO2lmKCFyKXJldHVybjtsZXQgYT1yO3R5cGVvZiBhLm9uRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIiYmYXdhaXQgYS5vbkRlYWN0aXZhdGUoKSxyLnN0eWxlLmRpc3BsYXk9Im5vbmUifWFzeW5jIGNyZWF0ZVZpZXdFbGVtZW50KGUpe2xldCByPWUuY29udGVudDtpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmIShyLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSYmci5jb25zdHJ1Y3Rvci5uYW1lPT09IkFzeW5jRnVuY3Rpb24iKXRyeXtyPWF3YWl0IHIoKX1jYXRjaChzKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgYXN5bmMgY29udGVudCBmb3IgdmlldyAiJHtlLmlkfSI6YCxzKSxudWxsfWxldCBhO2lmKHR5cGVvZiByPT0ic3RyaW5nIilhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocik7ZWxzZSBpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIilpZihyLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KWE9bmV3IHI7ZWxzZXtsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLHMuc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgbj1yKCk7R2gobixzKSxhPXN9ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7ZS5pZH0iYCksbnVsbDtyZXR1cm4gYS5kYXRhc2V0LnZpZXdJZD1lLmlkLGF9YXN5bmMgY2FsbE9uQWN0aXZhdGUoZSxyLGEpe2xldCBzPWU7aWYodHlwZW9mIHMub25BY3RpdmF0ZT09ImZ1bmN0aW9uIil7bGV0IG49e2FwcHVpOnRoaXMuYXBwdWksdmlld0lkOnIscGFyYW1zOmF9O2F3YWl0IHMub25BY3RpdmF0ZShuKX19cmVuZGVyVmlldyhlLHIpe2xldCBhPXRoaXMudmlld3MuZ2V0KGUpO2lmKCFhKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke2V9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO3IuaW5uZXJIVE1MPSIiO2xldCBzLG49YS5jb250ZW50O2lmKHR5cGVvZiBuPT0ic3RyaW5nIilzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobik7ZWxzZSBpZih0eXBlb2Ygbj09ImZ1bmN0aW9uIilpZihuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXM9bmV3IG47ZWxzZXtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLG8uc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgbD1uKCk7R2gobCxvKSxzPW99ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7ZX0iYCksbnVsbDtyZXR1cm4gci5hcHBlbmRDaGlsZChzKSx0aGlzLmluc3RhbmNlcy5zZXQoZSxzKSx0aGlzLmN1cnJlbnRWaWV3SWQ9ZSxzfWdldEN1cnJlbnRWaWV3SWQoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld0lkfWdldEluc3RhbmNlKGUpe3JldHVybiB0aGlzLmluc3RhbmNlcy5nZXQoZSl9Y2xlYXJJbnN0YW5jZShlKXtsZXQgcj10aGlzLmluc3RhbmNlcy5nZXQoZSk7ciYmci5wYXJlbnROb2RlJiZyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQociksdGhpcy5pbnN0YW5jZXMuZGVsZXRlKGUpLHRoaXMuY3VycmVudFZpZXdJZD09PWUmJih0aGlzLmN1cnJlbnRWaWV3SWQ9bnVsbCl9Y2xlYXJJbnN0YW5jZXMoKXtmb3IobGV0W2Uscl1vZiB0aGlzLmluc3RhbmNlcylyLnBhcmVudE5vZGUmJnIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKTt0aGlzLmluc3RhbmNlcy5jbGVhcigpLHRoaXMuY3VycmVudFZpZXdJZD1udWxsfXVucmVnaXN0ZXIoZSl7cmV0dXJuIHRoaXMuY2xlYXJJbnN0YW5jZShlKSx0aGlzLnZpZXdzLmRlbGV0ZShlKX1jbGVhcigpe3RoaXMudmlld3MuY2xlYXIoKSx0aGlzLmNsZWFySW5zdGFuY2VzKCl9aGFzKGUpe3JldHVybiB0aGlzLnZpZXdzLmhhcyhlKX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLnZpZXdzLnNpemV9fX0pO3ZhciBXWnIsR1pyPXUoKCk9Pnt2ZSgpO1dacj1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tbWFpbm1lbnUtY29udGFpbmVyIC5zcGFjZXIgewogICAgICBmbGV4OiAxOwogICAgICBiYWNrZ3JvdW5kOiAjMGYwZjBmOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1tYWlubWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktbWFpbm1lbnUKICAgICAgLmxvZ29JY29uPSR7Imx1Y2lkZTpib3gifQogICAgICAubG9nb1RleHQ9JHsiQWNtZSBBcHAifQogICAgICAubWVudUdyb3Vwcz0ke1t7dGFiczpbe2tleToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRGFzaGJvYXJkIiksImFjdGlvbiIpfSx7a2V5OiJJbmJveCIsaWNvbk5hbWU6Imx1Y2lkZTppbmJveCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJJbmJveCIpLCJhY3Rpb24iKX1dfSx7bmFtZToiV29ya3NwYWNlIix0YWJzOlt7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUHJvamVjdHMiKSwiYWN0aW9uIil9LHtrZXk6IlRhc2tzIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlRhc2tzIiksImFjdGlvbiIpfSx7a2V5OiJEb2N1bWVudHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRG9jdW1lbnRzIiksImFjdGlvbiIpfV19LHtuYW1lOiJBbmFseXRpY3MiLHRhYnM6W3trZXk6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQzIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlcG9ydHMiKSwiYWN0aW9uIil9LHtrZXk6Ikluc2lnaHRzIixpY29uTmFtZToibHVjaWRlOmxpZ2h0YnVsYiIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJJbnNpZ2h0cyIpLCJhY3Rpb24iKX1dfV19CiAgICAgIC5ib3R0b21UYWJzPSR7W3trZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIiksImFjdGlvbiIpfSx7a2V5OiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHBDaXJjbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSGVscCIpLCJhY3Rpb24iKX1dfQogICAgPjwvZGVlcy1hcHB1aS1tYWlubWVudT4KICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgb2YsS28sWVpyLGM3dD11KCgpPT57dm4oKTtQcCgpO09vKCk7dmUoKTtzcygpO0dacigpO2x0KCk7b2Y9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LEtvPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxZWnI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWFwcHVpLW1haW5tZW51IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aU1haW5tZW51Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpBcnJheX0pXSx2PVtQKHt0eXBlOkFycmF5fSldLHk9W1Aoe3R5cGU6QXJyYXl9KV0sTj1bUCgpXSxPPVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxvZih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ29JY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJsb2dvSWNvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmxvZ29JY29uLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oubG9nb0ljb249QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLG9mKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9nb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImxvZ29UZXh0ImluIHosImhhcyIpLGdldDppKHo9PnoubG9nb1RleHQsImdldCIpLHNldDppKCh6LEEpPT57ei5sb2dvVGV4dD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsZiksb2YodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51R3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJtZW51R3JvdXBzImluIHosImhhcyIpLGdldDppKHo9PnoubWVudUdyb3VwcywiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6Lm1lbnVHcm91cHM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLG9mKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tVGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iYm90dG9tVGFicyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmJvdHRvbVRhYnMsImdldCIpLHNldDppKCh6LEEpPT57ei5ib3R0b21UYWJzPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sYixnKSxvZih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRhYnMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei50YWJzLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudGFicz1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGssTSksb2YodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2VsZWN0ZWRUYWIiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnNlbGVjdGVkVGFiPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSxvZih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iY29sbGFwc2VkImluIHosImhhcyIpLGdldDppKHo9PnouY29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouY29sbGFwc2VkPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sTCxFKSxvZihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHIpLEI9YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPVdacjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPUtvKHRoaXMsbywiIik7Z2V0IGxvZ29JY29uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxvZ29JY29uKEMpe3RoaXMuI2U9Q30jdD0oS28odGhpcyxsKSxLbyh0aGlzLGQsIiIpKTtnZXQgbG9nb1RleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9nb1RleHQoQyl7dGhpcy4jdD1DfSNyPShLbyh0aGlzLGYpLEtvKHRoaXMsaCxbXSkpO2dldCBtZW51R3JvdXBzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1lbnVHcm91cHMoQyl7dGhpcy4jcj1DfSNhPShLbyh0aGlzLG0pLEtvKHRoaXMsYixbXSkpO2dldCBib3R0b21UYWJzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJvdHRvbVRhYnMoQyl7dGhpcy4jYT1DfSNpPShLbyh0aGlzLGcpLEtvKHRoaXMsayxbXSkpO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRhYnMoQyl7dGhpcy4jaT1DfSNzPShLbyh0aGlzLE0pLEtvKHRoaXMsXyx2b2lkIDApKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2VsZWN0ZWRUYWIoQyl7dGhpcy4jcz1DfSNuPShLbyh0aGlzLFMpLEtvKHRoaXMsTCwhMSkpO2dldCBjb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29sbGFwc2VkKEMpe3RoaXMuI249Q31zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICAtLW1lbnUtd2lkdGgtZXhwYW5kZWQ6IDIwMHB4OwogICAgICAgIC0tbWVudS13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS10b29sdGlwLWJnOiB2YXIoLS1kZWVzLWNvbG9yLXRvb2x0aXAtYmcpOwogICAgICAgIC0tdG9vbHRpcC1mZzogdmFyKC0tZGVlcy1jb2xvci10b29sdGlwLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHotaW5kZXg6ICR7anMuZml4ZWQuYXBwQmFyfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiB2YXIoLS1tZW51LXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWFpbkNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IHZhcigtLW1lbnUtd2lkdGgtY29sbGFwc2VkKTsKICAgICAgfQoKICAgICAgLyogRmxvYXRpbmcgY29sbGFwc2UgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuY29sbGFwc2UtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IC0xMnB4OwogICAgICAgIHRvcDogMjRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuY29sbGFwc2UtdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC8qIExvZ28gU2VjdGlvbiAqLwogICAgICAubG9nb1NlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAubG9nb1NlY3Rpb24gLmxvZ29JY29uIHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmxvZ29TZWN0aW9uIC5sb2dvVGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5sb2dvU2VjdGlvbiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubG9nb1NlY3Rpb24gLmxvZ29UZXh0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBNaWRkbGUgU2VjdGlvbiAoc2Nyb2xsYWJsZSkgKi8KICAgICAgLm1lbnVTZWN0aW9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgR3JvdXAgKi8KICAgICAgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAubWVudUdyb3VwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDMwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmdyb3VwVGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBJdGVtICovCiAgICAgIC50YWIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjYyNjI2IiwiI2U1ZTVlNSIpfTsKICAgICAgfQoKICAgICAgLnRhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgfQoKICAgICAgLnRhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg1OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnRhYiAudGFiTGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgdGFiIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiLnNlbGVjdGVkVGFiOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGNvbGxhcHNlZCBzdGF0ZSAqLwogICAgICAudGFiLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLnRhYi10b29sdGlwOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYjpob3ZlciAudGFiLXRvb2x0aXAgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIHN0eWxlcyAqLwogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiAwIDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utd2FybmluZy1mZyk7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1lcnJvci1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBCb3R0b20gU2VjdGlvbiAqLwogICAgICAuYm90dG9tU2VjdGlvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgQz10aGlzLmdldEFsbFRhYnMoKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbkNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7ej0+e0NyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHosW3tuYW1lOiJhcHAgc2V0dGluZ3MiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxpY29uTmFtZToiZ2VhciJ9XSl9fT4KICAgICAgICAke3RoaXMubG9nb0ljb258fHRoaXMubG9nb1RleHQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ29TZWN0aW9uIj4KICAgICAgICAgICAgJHt0aGlzLmxvZ29JY29uP3dgPGRlZXMtaWNvbiBjbGFzcz0ibG9nb0ljb24iIC5pY29uPSIke3RoaXMubG9nb0ljb259Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke3RoaXMubG9nb1RleHQ/d2A8c3BhbiBjbGFzcz0ibG9nb1RleHQiPiR7dGhpcy5sb2dvVGV4dH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51R3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyTWVudUdyb3VwcygpOnRoaXMucmVuZGVyTGVnYWN5VGFicygpfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuYm90dG9tVGFicy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0iYm90dG9tU2VjdGlvbiI+CiAgICAgICAgICAgICR7dGhpcy5ib3R0b21UYWJzLm1hcCh6PT50aGlzLnJlbmRlclRhYih6KSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY29sbGFwc2UtdG9nZ2xlIiBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlQ29sbGFwc2UoKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dGhpcy5jb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uUmlnaHQiOiJsdWNpZGU6Y2hldnJvbkxlZnQifSI+PC9kZWVzLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgYH1yZW5kZXJNZW51R3JvdXBzKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51R3JvdXBzLm1hcChDPT53YAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICAke0MubmFtZT93YDxkaXYgY2xhc3M9Imdyb3VwSGVhZGVyIj4ke0MubmFtZX08L2Rpdj5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBUYWJzIj4KICAgICAgICAgICAgJHtDLml0ZW1zLm1hcCh6PT50aGlzLnJlbmRlclRhYih6KSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXJlbmRlckxlZ2FjeVRhYnMoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncm91cFRhYnMiPgogICAgICAgICAgJHt0aGlzLnRhYnMubWFwKEM9PnRoaXMucmVuZGVyVGFiKEMpKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihDKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0YWIgJHtDPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLnVwZGF0ZVRhYihDKX19IgogICAgICA+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtDLmljb25OYW1lfHwiIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWJMYWJlbCI+JHtDLmtleX08L3NwYW4+CiAgICAgICAgJHtDLmJhZGdlIT09dm9pZCAwP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHtDLmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHtDLmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItdG9vbHRpcCI+JHtDLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRBbGxUYWJzKCl7cmV0dXJuIHRoaXMubWVudUdyb3Vwcy5sZW5ndGg+MD9bLi4udGhpcy5tZW51R3JvdXBzLmZsYXRNYXAoej0+ei5pdGVtcyksLi4udGhpcy5ib3R0b21UYWJzXTpbLi4udGhpcy50YWJzLC4uLnRoaXMuYm90dG9tVGFic119dXBkYXRlVGFiKEMpe3RoaXMuc2VsZWN0ZWRUYWI9Qyx0aGlzLnNlbGVjdGVkVGFiLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpDfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWZpcnN0VXBkYXRlZCgpe2xldCBDPXRoaXMuZ2V0QWxsVGFicygpO0MubGVuZ3RoPjAmJnRoaXMudXBkYXRlVGFiKENbMF0pfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxLbyh0aGlzLEUpfXN0YXRpY3tLbyhhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgS1pyLFpacj11KCgpPT57dmUoKTtLWnI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGJhY2tncm91bmQ6ICMwZjBmMGY7CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBoMyB7CiAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICBtYXJnaW4tdG9wOiAwOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBjb2RlIHsKICAgICAgYmFja2dyb3VuZDogIzI3MjcyYTsKICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIHVsIHsKICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudQogICAgICAuaGVhZGluZz0keyJQcm9qZWN0cyJ9CiAgICAgIC5ncm91cHM9JHtbe25hbWU6Ik5hdmlnYXRpb24iLGljb25OYW1lOiJsdWNpZGU6Y29tcGFzcyIsaXRlbXM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRGFzaGJvYXJkIGNsaWNrZWQiKSwiYWN0aW9uIiksYmFkZ2U6MyxiYWRnZVZhcmlhbnQ6Indhcm5pbmcifSx7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiUHJvamVjdHMgY2xpY2tlZCIpLCJhY3Rpb24iKSxiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MifSx7a2V5OiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyBjbGlja2VkIiksImFjdGlvbiIpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246aSgoKT0+YWxlcnQoIkNyZWF0ZSBOZXcgY2xpY2tlZCEiKSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IERhdGEiLGljb25OYW1lOiJsdWNpZGU6dXBsb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIkltcG9ydCBEYXRhIGNsaWNrZWQhIiksImFjdGlvbiIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiRGVsZXRlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLHZhcmlhbnQ6ImRhbmdlciIsY29uZmlybU1lc3NhZ2U6IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYWxsIGl0ZW1zPyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJEZWxldGVkISIpLCJhY3Rpb24iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiU3RhdHVzIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFjdGl2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja0NpcmNsZSIsYWN0aXZlOiEwLG9uVG9nZ2xlOmkodD0+Y29uc29sZS5sb2coIlNob3cgQWN0aXZlOiIsdCksIm9uVG9nZ2xlIil9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBcmNoaXZlZCIsaWNvbk5hbWU6Imx1Y2lkZTphcmNoaXZlIixhY3RpdmU6ITEsb25Ub2dnbGU6aSh0PT5jb25zb2xlLmxvZygiU2hvdyBBcmNoaXZlZDoiLHQpLCJvblRvZ2dsZSIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJDYXRlZ29yaWVzIixpY29uTmFtZToibHVjaWRlOnRhZyIsY29sbGFwc2VkOiExLG9wdGlvbnM6W3trZXk6ImZyb250ZW5kIixsYWJlbDoiRnJvbnRlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTptb25pdG9yIn0se2tleToiYmFja2VuZCIsbGFiZWw6IkJhY2tlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJkZXZvcHMiLGxhYmVsOiJEZXZPcHMiLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjbG91ZCJ9LHtrZXk6ImRlc2lnbiIsbGFiZWw6IkRlc2lnbiIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnBhbGV0dGUifV0sb25DaGFuZ2U6aSh0PT5jb25zb2xlLmxvZygiU2VsZWN0ZWQgY2F0ZWdvcmllczoiLHQpLCJvbkNoYW5nZSIpfV19LHtuYW1lOiJSZXNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6Ym9va09wZW4iLGNvbGxhcHNlZDohMCxpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IkRvY3VtZW50YXRpb24ifSx7dHlwZToibGluayIsa2V5OiJBUEkgUmVmZXJlbmNlIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixocmVmOiJodHRwczovL2FwaS5leGFtcGxlLmNvbS9kb2NzIn0se3R5cGU6ImxpbmsiLGtleToiVXNlciBHdWlkZSIsaWNvbk5hbWU6Imx1Y2lkZTpib29rIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vZ3VpZGUifSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJTdXBwb3J0In0se3R5cGU6ImxpbmsiLGtleToiSGVscCBDZW50ZXIiLGljb25OYW1lOiJsdWNpZGU6aGVscENpcmNsZSIsaHJlZjoiL2hlbHAiLGV4dGVybmFsOiExfSx7dHlwZToibGluayIsa2V5OiJHaXRIdWIgSXNzdWVzIixpY29uTmFtZToibHVjaWRlOmdpdGh1YiIsaHJlZjoiaHR0cHM6Ly9naXRodWIuY29tL2V4YW1wbGUvaXNzdWVzIn1dfV19CiAgICAgIEBpdGVtLXNlbGVjdD0ke3Q9PmNvbnNvbGUubG9nKCJUYWIgc2VsZWN0ZWQ6Iix0LmRldGFpbCl9CiAgICAgIEBhY3Rpb24tY2xpY2s9JHt0PT5jb25zb2xlLmxvZygiQWN0aW9uIGNsaWNrZWQ6Iix0LmRldGFpbCl9CiAgICAgIEBmaWx0ZXItdG9nZ2xlPSR7dD0+Y29uc29sZS5sb2coIkZpbHRlciB0b2dnbGVkOiIsdC5kZXRhaWwpfQogICAgICBAbXVsdGlmaWx0ZXItY2hhbmdlPSR7dD0+Y29uc29sZS5sb2coIk11bHRpLWZpbHRlciBjaGFuZ2VkOiIsdC5kZXRhaWwpfQogICAgICBAbGluay1jbGljaz0ke3Q9PmNvbnNvbGUubG9nKCJMaW5rIGNsaWNrZWQ6Iix0LmRldGFpbCl9CiAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICA8aDM+U2Vjb25kYXJ5IE1lbnUgRGVtbzwvaDM+CiAgICAgIDxwPlRoaXMgZGVtbyBzaG93Y2FzZXMgYWxsIDggaXRlbSB0eXBlczo8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+PGNvZGU+dGFiPC9jb2RlPiAtIFNlbGVjdGFibGUgaXRlbXMgKE5hdmlnYXRpb24gZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+YWN0aW9uPC9jb2RlPiAtIEJsdWUgYWN0aW9ucyAoQWN0aW9ucyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5hY3Rpb248L2NvZGU+IHdpdGggPGNvZGU+dmFyaWFudDogJ2Rhbmdlcic8L2NvZGU+IC0gUmVkIGRhbmdlciBhY3Rpb248L2xpPgogICAgICAgIDxsaT48Y29kZT5maWx0ZXI8L2NvZGU+IC0gQ2hlY2tib3ggdG9nZ2xlcyAoRmlsdGVycyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5tdWx0aUZpbHRlcjwvY29kZT4gLSBDb2xsYXBzaWJsZSBtdWx0aS1zZWxlY3QgKENhdGVnb3JpZXMpPC9saT4KICAgICAgICA8bGk+PGNvZGU+ZGl2aWRlcjwvY29kZT4gLSBWaXN1YWwgc2VwYXJhdG9yczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmhlYWRlcjwvY29kZT4gLSBTZWN0aW9uIGxhYmVsczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmxpbms8L2NvZGU+IC0gRXh0ZXJuYWwvaW50ZXJuYWwgbGlua3MgKFJlc291cmNlcyBncm91cCk8L2xpPgogICAgICA8L3VsPgogICAgICA8cD5UcnkgdGhlIGNvbGxhcHNlIHRvZ2dsZSBvbiB0aGUgbGVmdCBlZGdlITwvcD4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGgzLEJuLFFacixkN3Q9dSgoKT0+e3ZuKCk7UHAoKTtzcygpO0tyKCk7dmUoKTtaWnIoKTtsdCgpO2gzPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxCbj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sUVpyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W107dmFyIEE9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aVNlY29uZGFyeW1lbnUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgJD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOkFycmF5fSldLHA9W1Aoe3R5cGU6QXJyYXl9KV0sdj1bUCh7dHlwZTpPYmplY3R9KV0seT1baWUoKV0sTj1baWUoKV0sTz1baWUoKV0sQj1bUCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0saDModGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJoZWFkaW5nImluIEYsImhhcyIpLGdldDppKEY9PkYuaGVhZGluZywiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLmhlYWRpbmc9WX0sInNldCIpfSxtZXRhZGF0YTokfSxvLGwpLGgzKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJncm91cHMiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5ncm91cHMsImdldCIpLHNldDppKChGLFkpPT57Ri5ncm91cHM9WX0sInNldCIpfSxtZXRhZGF0YTokfSxkLGYpLGgzKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uT3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4ic2VsZWN0aW9uT3B0aW9ucyJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLnNlbGVjdGlvbk9wdGlvbnMsImdldCIpLHNldDppKChGLFkpPT57Ri5zZWxlY3Rpb25PcHRpb25zPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0saCxtKSxoMyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4ic2VsZWN0ZWRJdGVtImluIEYsImhhcyIpLGdldDppKEY9PkYuc2VsZWN0ZWRJdGVtLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0Yuc2VsZWN0ZWRJdGVtPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sYixnKSxoMyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZEdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4iY29sbGFwc2VkR3JvdXBzImluIEYsImhhcyIpLGdldDppKEY9PkYuY29sbGFwc2VkR3JvdXBzLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YuY29sbGFwc2VkR3JvdXBzPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sayxNKSxoMyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZE11bHRpRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4iY29sbGFwc2VkTXVsdGlGaWx0ZXJzImluIEYsImhhcyIpLGdldDppKEY9PkYuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YuY29sbGFwc2VkTXVsdGlGaWx0ZXJzPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sXyxTKSxoMyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmRlckNvdW50ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InJlbmRlckNvdW50ZXIiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5yZW5kZXJDb3VudGVyLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YucmVuZGVyQ291bnRlcj1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LEwsRSksaDModGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+ImNvbGxhcHNlZCJpbiBGLCJoYXMiKSxnZXQ6aShGPT5GLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLmNvbGxhcHNlZD1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMseiksaDMobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCxyKSxBPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1LWnI7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1Cbih0aGlzLG8sIk1lbnUiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKCQpe3RoaXMuI2U9JH0jdD0oQm4odGhpcyxsKSxCbih0aGlzLGQsW10pKTtnZXQgZ3JvdXBzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGdyb3VwcygkKXt0aGlzLiN0PSR9I3I9KEJuKHRoaXMsZiksQm4odGhpcyxoLFtdKSk7Z2V0IHNlbGVjdGlvbk9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VsZWN0aW9uT3B0aW9ucygkKXt0aGlzLiNyPSR9I2E9KEJuKHRoaXMsbSksQm4odGhpcyxiLG51bGwpKTtnZXQgc2VsZWN0ZWRJdGVtKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkSXRlbSgkKXt0aGlzLiNhPSR9I2k9KEJuKHRoaXMsZyksQm4odGhpcyxrLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkR3JvdXBzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbGxhcHNlZEdyb3VwcygkKXt0aGlzLiNpPSR9I3M9KEJuKHRoaXMsTSksQm4odGhpcyxfLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkTXVsdGlGaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNvbGxhcHNlZE11bHRpRmlsdGVycygkKXt0aGlzLiNzPSR9I249KEJuKHRoaXMsUyksQm4odGhpcyxMLDApKTtnZXQgcmVuZGVyQ291bnRlcigpe3JldHVybiB0aGlzLiNufXNldCByZW5kZXJDb3VudGVyKCQpe3RoaXMuI249JH0jbz0oQm4odGhpcyxFKSxCbih0aGlzLEMsITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbGxhcHNlZCgkKXt0aGlzLiNvPSR9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgLS1zaWRlYmFyLXdpZHRoLWV4cGFuZGVkOiAyNDBweDsKICAgICAgICAtLXNpZGViYXItd2lkdGgtY29sbGFwc2VkOiA1NnB4OwogICAgICAgIC0tc2lkZWJhci1iZzogdmFyKC0tZGVlcy1jb2xvci1iZy1zZWNvbmRhcnkpOwogICAgICAgIC0tc2lkZWJhci1mZzogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgLS1zaWRlYmFyLWZnLW11dGVkOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIC0tc2lkZWJhci1mZy1hY3RpdmU6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICAtLXNpZGViYXItYm9yZGVyOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIC0tc2lkZWJhci1ob3ZlcjogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgLS1zaWRlYmFyLWFjdGl2ZTogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIC0tc2lkZWJhci1hY2NlbnQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICAtLXRvb2x0aXAtYmc6IHZhcigtLWRlZXMtY29sb3ItdG9vbHRpcC1iZyk7CiAgICAgICAgLS10b29sdGlwLWZnOiB2YXIoLS1kZWVzLWNvbG9yLXRvb2x0aXAtZmcpOwoKICAgICAgICAvKiBCYWRnZSBjb2xvcnMgKi8KICAgICAgICAtLWJhZGdlLWRlZmF1bHQtYmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgLS1iYWRnZS1kZWZhdWx0LWZnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1iZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS1zdWNjZXNzLWJnKTsKICAgICAgICAtLWJhZGdlLXN1Y2Nlc3MtZmc6IHZhcigtLWRlZXMtY29sb3ItYmFkZ2Utc3VjY2Vzcy1mZyk7CiAgICAgICAgLS1iYWRnZS13YXJuaW5nLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLXdhcm5pbmctYmcpOwogICAgICAgIC0tYmFkZ2Utd2FybmluZy1mZzogdmFyKC0tZGVlcy1jb2xvci1iYWRnZS13YXJuaW5nLWZnKTsKICAgICAgICAtLWJhZGdlLWVycm9yLWJnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWVycm9yLWJnKTsKICAgICAgICAtLWJhZGdlLWVycm9yLWZnOiB2YXIoLS1kZWVzLWNvbG9yLWJhZGdlLWVycm9yLWZnKTsKCiAgICAgICAgLyogQWN0aW9uIGNvbG9ycyAqLwogICAgICAgIC0tYWN0aW9uLXByaW1hcnk6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgICAtLWFjdGlvbi1wcmltYXJ5LWhvdmVyOiAke3guYmRUaGVtZSgiIzFkNGVkOCIsIiM2MGE1ZmEiKX07CiAgICAgICAgLS1hY3Rpb24tZGFuZ2VyOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgLS1hY3Rpb24tZGFuZ2VyLWhvdmVyOiAke3guYmRUaGVtZSgiI2I5MWMxYyIsIiNmODcxNzEiKX07CgogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgtZXhwYW5kZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYmcpOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIHsKICAgICAgICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aC1jb2xsYXBzZWQpOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLyogRmxvYXRpbmcgY29sbGFwc2UgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuY29sbGFwc2UtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IC0xMnB4OwogICAgICAgIHRvcDogMjRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuY29sbGFwc2UtdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC8qIEhlYWRlciBTZWN0aW9uICovCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgLmhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuaGVhZGVyIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5oZWFkZXIgLmhlYWRpbmcgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYWJsZSBNZW51IFNlY3Rpb24gKi8KICAgICAgLm1lbnVTZWN0aW9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYi1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgR3JvdXAgKi8KICAgICAgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2UsIG1heC1oZWlnaHQgMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXI6aG92ZXIgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDE0MCwgMTIwLCAxMDAsIDAuMDYpIiwicmdiYSgxODAsIDE2MCwgMTQwLCAwLjA4KSIpfTsKICAgICAgICBwYWRkaW5nOiA3cHggMTFweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyOm5vdCguY29sbGFwc2VkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMTQwLCAxMjAsIDEwMCwgMC4wNikiLCJyZ2JhKDE4MCwgMTYwLCAxNDAsIDAuMDgpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5ncm91cFRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC13YXJtKTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuZ3JvdXBUaXRsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXdhcm0pOwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmNoZXZyb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtd2FybSk7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlci5jb2xsYXBzZWQgLmNoZXZyb24gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgIH0KCiAgICAgIC8qIEhpZGUgZ3JvdXAgaGVhZGVycyB3aGVuIGhvcml6b250YWxseSBjb2xsYXBzZWQgKi8KICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ncm91cEhlYWRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAvKiBHcm91cCBJdGVtcyBDb250YWluZXIgKi8KICAgICAgLmdyb3VwSXRlbXMgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgbWFyZ2luIDAuMjVzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogMTAwMHB4OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLmdyb3VwSXRlbXMuY29sbGFwc2VkIHsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogQWx3YXlzIHNob3cgaXRlbXMgd2hlbiBob3Jpem9udGFsbHkgY29sbGFwc2VkIChyZWdhcmRsZXNzIG9mIGdyb3VwIGNvbGxhcHNlIHN0YXRlKSAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSXRlbXMgewogICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogTWVudSBJdGVtIEJhc2UgKi8KICAgICAgLm1lbnVJdGVtIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBtYXJnaW46IDJweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNDUwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmcpOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLnNlbGVjdGVkIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIC5pdGVtTGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBBY3Rpb24gSXRlbSBTdHlsZXMgKi8KICAgICAgLm1lbnVJdGVtLmFjdGlvbi1wcmltYXJ5IHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLXByaW1hcnkpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnk6aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tcHJpbWFyeS1ob3Zlcik7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTIpIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLWRhbmdlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1kYW5nZXIpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLWRhbmdlcjpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1kYW5nZXItaG92ZXIpOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDIyMCwgMzgsIDM4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLWRhbmdlciBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIEZpbHRlciBJdGVtIFN0eWxlcyAqLwogICAgICAubWVudUl0ZW0uZmlsdGVyIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveCB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzUyNTI1MiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZmlsdGVyIC5maWx0ZXItY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZmlsdGVyIC5maWx0ZXItY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZmlsdGVyLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLyogTXVsdGktRmlsdGVyIENvbnRhaW5lciAqLwogICAgICAubXVsdGlGaWx0ZXIgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDIpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKSIpfTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItdGl0bGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci1jb3VudCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLW11dGVkKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS1kZWZhdWx0LWJnKTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAuY2hldnJvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyLmNvbGxhcHNlZCAuY2hldnJvbiB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbnMgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb25zLmNvbGxhcHNlZCB7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmcpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3ggewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiI2Q0ZDRkNCIsIiM1MjUyNTIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiAub3B0aW9uLWNoZWNrYm94LmNoZWNrZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiAub3B0aW9uLWNoZWNrYm94IGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gZGVlcy1pY29uLm9wdGlvbi1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAvKiBEaXZpZGVyICovCiAgICAgIC5tZW51RGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIG1hcmdpbjogOHB4IDEycHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudURpdmlkZXIgewogICAgICAgIG1hcmdpbjogOHB4IDRweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyL0xhYmVsICovCiAgICAgIC5tZW51SGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggNHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVIZWFkZXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIExpbmsgSXRlbSAqLwogICAgICAubWVudUl0ZW0ubGluayAuZXh0ZXJuYWwtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLyogQ29sbGFwc2VkIG1lbnUgaXRlbSBzdHlsZXMgKi8KICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuaXRlbUxhYmVsIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbS5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5maWx0ZXItY2hlY2tib3gsCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmV4dGVybmFsLWljb24gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubXVsdGlGaWx0ZXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGNvbGxhcHNlZCBzdGF0ZSAqLwogICAgICAuaXRlbS10b29sdGlwIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMTAwJTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdG9vbHRpcC1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLXRvb2x0aXAtZmcpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgIH0KCiAgICAgIC5pdGVtLXRvb2x0aXA6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZyk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW06aG92ZXIgLml0ZW0tdG9vbHRpcCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxczsKICAgICAgfQoKICAgICAgLyogQmFkZ2UgU3R5bGVzICovCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmJhZGdlLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1kZWZhdWx0LWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLXN1Y2Nlc3MtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLXdhcm5pbmctYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS13YXJuaW5nLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS1lcnJvci1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWVycm9yLWZnKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTGVnYWN5IG9wdGlvbnMgY29udGFpbmVyICovCiAgICAgIC5sZWdhY3lPcHRpb25zIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgfQoKICAgICAgLyogRGl2aWRlciAobGVnYWN5KSAqLwogICAgICAuZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIG1hcmdpbjogOHB4IDEycHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZW51U2VjdGlvbiI+CiAgICAgICAgICAke3RoaXMuZ3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyR3JvdXBzKCk6dGhpcy5yZW5kZXJMZWdhY3lPcHRpb25zKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YnV0dG9uIGNsYXNzPSJjb2xsYXBzZS10b2dnbGUiIEBjbGljaz0iJHsoKT0+dGhpcy50b2dnbGVDb2xsYXBzZSgpfSI+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLmNvbGxhcHNlZD8ibHVjaWRlOmNoZXZyb25SaWdodCI6Imx1Y2lkZTpjaGV2cm9uTGVmdCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgPC9idXR0b24+CiAgICBgfXJlbmRlckdyb3Vwcygpe3JldHVybiB3YAogICAgICAke3RoaXMuZ3JvdXBzLm1hcCgkPT53YAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJncm91cEhlYWRlciAke3RoaXMuY29sbGFwc2VkR3JvdXBzLmhhcygkLm5hbWUpPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUdyb3VwKCQubmFtZSl9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ3JvdXBUaXRsZSI+CiAgICAgICAgICAgICAgJHskLmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oJC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICR7JC5uYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNoZXZyb24iIC5pY29uPSIkeyJsdWNpZGU6Y2hldnJvbkRvd24ifSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Imdyb3VwSXRlbXMgJHt0aGlzLmNvbGxhcHNlZEdyb3Vwcy5oYXMoJC5uYW1lKT8iY29sbGFwc2VkIjoiIn0iPgogICAgICAgICAgICAkeyQuaXRlbXMubWFwKEY9PnRoaXMucmVuZGVySXRlbShGLCQpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgKX0KICAgIGB9cmVuZGVySXRlbSgkLEYpe2lmKCJoaWRkZW4iaW4gJCYmJC5oaWRkZW4pcmV0dXJuIHdgYDtzd2l0Y2goInR5cGUiaW4gJD8kLnR5cGU6InRhYiIpe2Nhc2UiYWN0aW9uIjpyZXR1cm4gdGhpcy5yZW5kZXJBY3Rpb25JdGVtKCQpO2Nhc2UiZmlsdGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJGaWx0ZXJJdGVtKCQpO2Nhc2UibXVsdGlGaWx0ZXIiOnJldHVybiB0aGlzLnJlbmRlck11bHRpRmlsdGVySXRlbSgkKTtjYXNlImRpdmlkZXIiOnJldHVybiB0aGlzLnJlbmRlckRpdmlkZXIoKTtjYXNlImhlYWRlciI6cmV0dXJuIHRoaXMucmVuZGVySGVhZGVyKCQpO2Nhc2UibGluayI6cmV0dXJuIHRoaXMucmVuZGVyTGlua0l0ZW0oJCk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5yZW5kZXJUYWJJdGVtKCQsRil9fXJlbmRlclRhYkl0ZW0oJCxGKXtsZXQgWT10aGlzLnNlbGVjdGVkSXRlbT8ua2V5PT09JC5rZXksRz0kLmRpc2FibGVkPT09ITA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gJHtZPyJzZWxlY3RlZCI6IiJ9ICR7Rz8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFHJiZ0aGlzLnNlbGVjdFRhYkl0ZW0oJCxGKX0iCiAgICAgICAgQGNvbnRleHRtZW51PSIke1o9PnRoaXMuaGFuZGxlQ29udGV4dE1lbnUoWiwkKX0iCiAgICAgID4KICAgICAgICAkeyQuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbigkLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW1MYWJlbCI+JHskLmtleX08L3NwYW4+CiAgICAgICAgJHskLmJhZGdlIT09dm9pZCAwP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHskLmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHskLmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7JC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uSXRlbSgkKXtsZXQgRj0kLnZhcmlhbnR8fCJwcmltYXJ5IixZPSQuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSBhY3Rpb24tJHtGfSAke1k/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hWSYmdGhpcy5oYW5kbGVBY3Rpb25DbGljaygkKX0iCiAgICAgID4KICAgICAgICAkeyQuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbigkLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW1MYWJlbCI+JHskLmtleX08L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHskLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWx0ZXJJdGVtKCQpe2xldCBGPSQuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSBmaWx0ZXIgJHskLmFjdGl2ZT8iYWN0aXZlIjoiIn0gJHtGPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IUYmJnRoaXMuaGFuZGxlRmlsdGVyVG9nZ2xlKCQpfSIKICAgICAgPgogICAgICAgICR7JC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKCQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4keyQua2V5fTwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXItY2hlY2tib3ggJHskLmFjdGl2ZT8iY2hlY2tlZCI6IiJ9Ij4KICAgICAgICAgICR7JC5hY3RpdmU/d2A8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6Y2hlY2sifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4keyQua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck11bHRpRmlsdGVySXRlbSgkKXtsZXQgRj10aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycy5oYXMoJC5rZXkpLFk9JC5vcHRpb25zLmZpbHRlcihHPT5HLmNoZWNrZWQpLmxlbmd0aDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibXVsdGlGaWx0ZXIiPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJtdWx0aUZpbHRlci1oZWFkZXIgJHtGPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy50b2dnbGVNdWx0aUZpbHRlcigkLmtleSl9IgogICAgICAgID4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJtdWx0aUZpbHRlci10aXRsZSI+CiAgICAgICAgICAgICR7JC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKCQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgJHskLmtleX0KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICR7WT4wP3dgPHNwYW4gY2xhc3M9Im11bHRpRmlsdGVyLWNvdW50Ij4ke1l9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjaGV2cm9uIiAuaWNvbj0iJHsibHVjaWRlOmNoZXZyb25Eb3duIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im11bHRpRmlsdGVyLW9wdGlvbnMgJHtGPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAkeyQub3B0aW9ucy5tYXAoRz0+d2AKICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJtdWx0aUZpbHRlci1vcHRpb24iCiAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLmhhbmRsZU11bHRpRmlsdGVyT3B0aW9uVG9nZ2xlKCQsRy5rZXkpfSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbi1jaGVja2JveCAke0cuY2hlY2tlZD8iY2hlY2tlZCI6IiJ9Ij4KICAgICAgICAgICAgICAgICR7Ry5jaGVja2VkP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmNoZWNrIn0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgJHtHLmljb25OYW1lP3dgPGRlZXMtaWNvbiBjbGFzcz0ib3B0aW9uLWljb24iIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihHLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgPHNwYW4+JHtHLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRpdmlkZXIoKXtyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51RGl2aWRlciI+PC9kaXY+YH1yZW5kZXJIZWFkZXIoJCl7cmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudUhlYWRlciI+JHskLmxhYmVsfTwvZGl2PmB9cmVuZGVyTGlua0l0ZW0oJCl7bGV0IEY9JC5leHRlcm5hbD8/JC5ocmVmLnN0YXJ0c1dpdGgoImh0dHAiKSxZPSQuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSBsaW5rICR7WT8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFZJiZ0aGlzLmhhbmRsZUxpbmtDbGljaygkKX0iCiAgICAgID4KICAgICAgICAkeyQuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbigkLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW1MYWJlbCI+JHskLmtleX08L3NwYW4+CiAgICAgICAgJHtGP3dgPGRlZXMtaWNvbiBjbGFzcz0iZXh0ZXJuYWwtaWNvbiIgLmljb249IiR7Imx1Y2lkZTpleHRlcm5hbExpbmsifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4keyQua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckxlZ2FjeU9wdGlvbnMoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibGVnYWN5T3B0aW9ucyI+CiAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk9wdGlvbnMubWFwKCQ9PntpZigiZGl2aWRlciJpbiAkJiYkLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0iZGl2aWRlciI+PC9kaXY+YDtsZXQgRj0kLFk9e2tleTpGLmtleSxpY29uTmFtZTpGLmljb25OYW1lLGFjdGlvbjpGLmFjdGlvbixiYWRnZTpGLmJhZGdlLGJhZGdlVmFyaWFudDpGLmJhZGdlVmFyaWFudH07cmV0dXJuIHRoaXMucmVuZGVyVGFiSXRlbShZKX0pfQogICAgICA8L2Rpdj4KICAgIGB9bm9ybWFsaXplSWNvbigkKXtyZXR1cm4gJC5zdGFydHNXaXRoKCJsdWNpZGU6Iik/JDpgbHVjaWRlOiR7JH1gfXRvZ2dsZUdyb3VwKCQpe2xldCBGPW5ldyBTZXQodGhpcy5jb2xsYXBzZWRHcm91cHMpO0YuaGFzKCQpP0YuZGVsZXRlKCQpOkYuYWRkKCQpLHRoaXMuY29sbGFwc2VkR3JvdXBzPUZ9dG9nZ2xlTXVsdGlGaWx0ZXIoJCl7bGV0IEY9bmV3IFNldCh0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycyk7Ri5oYXMoJCk/Ri5kZWxldGUoJCk6Ri5hZGQoJCksdGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9Rn10b2dnbGVDb2xsYXBzZSgpe3RoaXMuY29sbGFwc2VkPSF0aGlzLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6e2NvbGxhcHNlZDp0aGlzLmNvbGxhcHNlZH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zZWxlY3RUYWJJdGVtKCQsRil7dGhpcy5zZWxlY3RlZEl0ZW09JCwkLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tc2VsZWN0Iix7ZGV0YWlsOntpdGVtOiQsZ3JvdXA6Rn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hc3luYyBoYW5kbGVBY3Rpb25DbGljaygkKXskLmNvbmZpcm1NZXNzYWdlJiYhd2luZG93LmNvbmZpcm0oJC5jb25maXJtTWVzc2FnZSl8fChhd2FpdCAkLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFjdGlvbi1jbGljayIse2RldGFpbDp7aXRlbTokfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX1oYW5kbGVGaWx0ZXJUb2dnbGUoJCl7bGV0IEY9ISQuYWN0aXZlOyQuYWN0aXZlPUYsJC5vblRvZ2dsZShGKSx0aGlzLnJlbmRlckNvdW50ZXIrKyx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWx0ZXItdG9nZ2xlIix7ZGV0YWlsOntpdGVtOiQsYWN0aXZlOkZ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTXVsdGlGaWx0ZXJPcHRpb25Ub2dnbGUoJCxGKXtsZXQgWT0kLm9wdGlvbnMuZmluZChaPT5aLmtleT09PUYpO1kmJihZLmNoZWNrZWQ9IVkuY2hlY2tlZCk7bGV0IEc9JC5vcHRpb25zLmZpbHRlcihaPT5aLmNoZWNrZWQpLm1hcChaPT5aLmtleSk7JC5vbkNoYW5nZShHKSx0aGlzLnJlbmRlckNvdW50ZXIrKyx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtdWx0aWZpbHRlci1jaGFuZ2UiLHtkZXRhaWw6e2l0ZW06JCxzZWxlY3RlZEtleXM6R30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVMaW5rQ2xpY2soJCl7JC5leHRlcm5hbD8/JC5ocmVmLnN0YXJ0c1dpdGgoImh0dHAiKT93aW5kb3cub3BlbigkLmhyZWYsIl9ibGFuayIsIm5vb3BlbmVyLG5vcmVmZXJyZXIiKTp3aW5kb3cubG9jYXRpb24uaHJlZj0kLmhyZWYsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibGluay1jbGljayIse2RldGFpbDp7aXRlbTokfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRleHRNZW51KCQsRil7Q3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoJCxbe25hbWU6IlZpZXcgZGV0YWlscyIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLGljb25OYW1lOiJsdWNpZGU6ZXllIn0se25hbWU6IkVkaXQiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxpY29uTmFtZToibHVjaWRlOnBlbmNpbCJ9XSl9YXN5bmMgZmlyc3RVcGRhdGVkKCQpe2lmKGF3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZCgkKSx0aGlzLmdyb3Vwcy5sZW5ndGg+MCl7bGV0IEY9bmV3IFNldCxZPW5ldyBTZXQ7aWYodGhpcy5ncm91cHMuZm9yRWFjaChHPT57Ry5jb2xsYXBzZWQmJkYuYWRkKEcubmFtZSksRy5pdGVtcy5mb3JFYWNoKFo9PntpZigidHlwZSJpbiBaJiZaLnR5cGU9PT0ibXVsdGlGaWx0ZXIiKXtsZXQgZGU9WjtkZS5jb2xsYXBzZWQmJlkuYWRkKGRlLmtleSl9fSl9KSx0aGlzLmNvbGxhcHNlZEdyb3Vwcz1GLHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzPVksIXRoaXMuc2VsZWN0ZWRJdGVtKWZvcihsZXQgRyBvZiB0aGlzLmdyb3Vwcylmb3IobGV0IFogb2YgRy5pdGVtcyl7bGV0IGRlPSJ0eXBlImluIFo/Wi50eXBlOiJ0YWIiO2lmKGRlPT09InRhYiJ8fGRlPT09dm9pZCAwKXtsZXQgRD1aO2lmKCFELmRpc2FibGVkKXt0aGlzLnNlbGVjdFRhYkl0ZW0oRCxHKTtyZXR1cm59fX19ZWxzZSBpZih0aGlzLnNlbGVjdGlvbk9wdGlvbnMubGVuZ3RoPjApe2xldCBGPXRoaXMuc2VsZWN0aW9uT3B0aW9ucy5maW5kKFk9PiEoImRpdmlkZXIiaW4gWSkpO2lmKEYmJiF0aGlzLnNlbGVjdGVkSXRlbSl7bGV0IFk9e2tleTpGLmtleSxpY29uTmFtZTpGLmljb25OYW1lLGFjdGlvbjpGLmFjdGlvbn07dGhpcy5zZWxlY3RUYWJJdGVtKFkpfX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEJuKHRoaXMseil9c3RhdGlje0JuKGEscil9fTtyZXR1cm4gQT1hfSkoKX0pO3ZhciB0ZyxuMix5aDEsd2gxLFhacixKWnI9dSgoKT0+e3ZlKCk7UHAoKTt0Zz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sbjI9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHloMT0oKCk9PntsZXQgdD1bdWUoImRlbW8tY2xvc2VhYmxlLXRhYnMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVtb0Nsb3NlYWJsZVRhYnMiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtpZSgpXSxjPVtpZSgpXSx0Zyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InRhYnMiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS50YWJzLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20udGFicz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksdGcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJDb3VudGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJ0YWJDb3VudGVyImluIG0sImhhcyIpLGdldDppKG09Pm0udGFiQ291bnRlciwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnRhYkNvdW50ZXI9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLHRnKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9I2U9bjIodGhpcyxvLFt7a2V5OiJNYWluIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiTWFpbiBjbGlja2VkIiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoaCl7dGhpcy4jZT1ofSN0PShuMih0aGlzLGwpLG4yKHRoaXMsZCwwKSk7Z2V0IHRhYkNvdW50ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGFiQ291bnRlcihoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bcmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAuaW5mbyB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwwLDAsMC4wMikiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMDIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07YWRkVGFiKCl7dGhpcy50YWJDb3VudGVyKys7bGV0IGg9YERvY3VtZW50ICR7dGhpcy50YWJDb3VudGVyfWA7dGhpcy50YWJzPVsuLi50aGlzLnRhYnMse2tleTpoLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKGAke2h9IGNsaWNrZWRgKSwiYWN0aW9uIiksY2xvc2VhYmxlOiEwLG9uQ2xvc2U6aSgoKT0+dGhpcy5yZW1vdmVUYWIoaCksIm9uQ2xvc2UiKX1dfXJlbW92ZVRhYihoKXt0aGlzLnRhYnM9dGhpcy50YWJzLmZpbHRlcihtPT5tLmtleSE9PWgpfWNsZWFyQWxsKCl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktdGFicyIpPy5jbGVhcigpLHRoaXMudGFicz1bXSx0aGlzLnRhYkNvdW50ZXI9MH1yZW5kZXIoKXtsZXQgaD1be2lkOiJhZGQiLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmkoKCk9PnRoaXMuYWRkVGFiKCksImFjdGlvbiIpLHRvb2x0aXA6Ik5ldyBUYWIifSx7aWQ6ImNsZWFyIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoKCk9PnRoaXMuY2xlYXJBbGwoKSwiYWN0aW9uIiksdG9vbHRpcDoiQ2xlYXIgQWxsIFRhYnMifV07cmV0dXJuIHdgCiAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAudGFicz0ke3RoaXMudGFic30KICAgICAgICAuYWN0aW9uc1JpZ2h0PSR7aH0KICAgICAgICBAdGFiLWNsb3NlPSR7bT0+dGhpcy5yZW1vdmVUYWIobS5kZXRhaWwudGFiLmtleSl9CiAgICAgID48L2RlZXMtYXBwdWktdGFicz4KICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgQ2xpY2sgdGhlIFggYnV0dG9uIG9uIHRhYnMgdG8gY2xvc2UgdGhlbS4gVXNlIHRoZSArIGJ1dHRvbiB0byBhZGQgdGFicyBhbmQgdGhlIHRyYXNoIGJ1dHRvbiB0byBjbGVhciBhbGwuCiAgICAgICAgPGJyPkN1cnJlbnQgdGFiczogJHt0aGlzLnRhYnMubGVuZ3RofQogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG4yKHRoaXMsZil9c3RhdGlje24yKGEscil9fTtyZXR1cm4gcD1hfSkoKSx3aDE9KCgpPT57bGV0IHQ9W3VlKCJkZW1vLWF1dG9oaWRlLXRhYnMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVtb0F1dG9IaWRlVGFicyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHA9W2llKCldLHRnKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4idGFicyJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnRhYnMsImdldCIpLHNldDppKChnLHkpPT57Zy50YWJzPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSx0Zyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJhdXRvSGlkZSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmF1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuYXV0b0hpZGU9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLHRnKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJ0aHJlc2hvbGQiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy50aHJlc2hvbGQsImdldCIpLHNldDppKChnLHkpPT57Zy50aHJlc2hvbGQ9eX0sInNldCIpfSxtZXRhZGF0YTpifSxoLG0pLHRnKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9I2U9bjIodGhpcyxvLFt7a2V5OiJUYWIgMSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlRhYiAxIiksImFjdGlvbiIpfSx7a2V5OiJUYWIgMiIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlRhYiAyIiksImFjdGlvbiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoYil7dGhpcy4jZT1ifSN0PShuMih0aGlzLGwpLG4yKHRoaXMsZCwhMCkpO2dldCBhdXRvSGlkZSgpe3JldHVybiB0aGlzLiN0fXNldCBhdXRvSGlkZShiKXt0aGlzLiN0PWJ9I3I9KG4yKHRoaXMsZiksbjIodGhpcyxoLDEpKTtnZXQgdGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRocmVzaG9sZChiKXt0aGlzLiNyPWJ9c3RhdGljIHN0eWxlcz1bcmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICAgIC50YWJzLWNvbnRhaW5lciBkZWVzLWFwcHVpLXRhYnMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5wbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KICAgICAgLmluZm8gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjAyKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3RhYkNvdW50ZXI9KG4yKHRoaXMsbSksMik7YWRkVGFiKCl7dGhpcy50YWJDb3VudGVyKyssdGhpcy50YWJzPVsuLi50aGlzLnRhYnMse2tleTpgVGFiICR7dGhpcy50YWJDb3VudGVyfWAsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coYFRhYiAke3RoaXMudGFiQ291bnRlcn1gKSwiYWN0aW9uIil9XX1yZW1vdmVMYXN0VGFiKCl7dGhpcy50YWJzLmxlbmd0aD4wJiYodGhpcy50YWJzPXRoaXMudGFicy5zbGljZSgwLC0xKSl9Y2xlYXJUYWJzKCl7dGhpcy50YWJzPVtdfXJlbmRlcigpe2xldCBiPXRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMudGhyZXNob2xkO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgJHtiP3dgPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyIj5UYWJzIGhpZGRlbiAoJHt0aGlzLnRhYnMubGVuZ3RofSB0YWJzIOKJpCB0aHJlc2hvbGQgJHt0aGlzLnRocmVzaG9sZH0pPC9zcGFuPmA6d2A8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy5hdXRvSGlkZX0KICAgICAgICAgICAgICAuYXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLnRocmVzaG9sZH0KICAgICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPmB9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRUYWIoKX0+KyBBZGQgVGFiPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVMYXN0VGFiKCl9Pi0gUmVtb3ZlIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY2xlYXJUYWJzKCl9PkNsZWFyIEFsbDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0wfX0+VGhyZXNob2xkOiAwPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTF9fT5UaHJlc2hvbGQ6IDE8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9Mn19PlRocmVzaG9sZDogMjwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgQXV0by1oaWRlOiAke3RoaXMuYXV0b0hpZGU/Ik9OIjoiT0ZGIn0gfCBUaHJlc2hvbGQ6ICR7dGhpcy50aHJlc2hvbGR9IHwgVGFiczogJHt0aGlzLnRhYnMubGVuZ3RofQogICAgICAgIDxicj5UYWJzIHdpbGwgaGlkZSB3aGVuIGNvdW50IOKJpCB0aHJlc2hvbGQuCiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7bjIoYSxyKX19O3JldHVybiB2PWF9KSgpLFhacj1pKCgpPT57bGV0IHQ9W3trZXk6IkhvbWUiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJIb21lIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkFuYWx5dGljcyBEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6bGluZUNoYXJ0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlJlcG9ydHMgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiVXNlciBTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHBDaXJjbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiSGVscCBjbGlja2VkIiksImFjdGlvbiIpfV0sZT1be2tleToiUHJvZmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlByb2ZpbGUgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiU2VjdXJpdHkiLGljb25OYW1lOiJsdWNpZGU6c2hpZWxkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIlNlY3VyaXR5IGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6Ik5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6YmVsbCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJOb3RpZmljYXRpb25zIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkludGVncmF0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTpsaW5rIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkludGVncmF0aW9ucyBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBZHZhbmNlZCIsaWNvbk5hbWU6Imx1Y2lkZTpjb2RlIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkFkdmFuY2VkIGNsaWNrZWQiKSwiYWN0aW9uIil9XSxyPVt7a2V5OiJBbGwiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiQWxsIGNsaWNrZWQiKSwiYWN0aW9uIil9LHtrZXk6IkFjdGl2ZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBY3RpdmUgY2xpY2tlZCIpLCJhY3Rpb24iKX0se2tleToiQ29tcGxldGVkIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIkNvbXBsZXRlZCBjbGlja2VkIiksImFjdGlvbiIpfSx7a2V5OiJBcmNoaXZlZCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBcmNoaXZlZCBjbGlja2VkIiksImFjdGlvbiIpfV0sYT1be2lkOiJiYWNrIixpY29uTmFtZToibHVjaWRlOmFycm93TGVmdCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJCYWNrIiksImFjdGlvbiIpLHRvb2x0aXA6IkdvIEJhY2sifV0scz1be2lkOiJhZGQiLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJBZGQgdGFiIiksImFjdGlvbiIpLHRvb2x0aXA6Ik5ldyBUYWIifSx7aWQ6InNlYXJjaCIsaWNvbk5hbWU6Imx1Y2lkZTpzZWFyY2giLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiU2VhcmNoIiksImFjdGlvbiIpLHRvb2x0aXA6IlNlYXJjaCBUYWJzIn0se2lkOiJkaXNhYmxlZCIsaWNvbk5hbWU6Imx1Y2lkZTpsb2NrIixhY3Rpb246aSgoKT0+e30sImFjdGlvbiIpLHRvb2x0aXA6IkRpc2FibGVkIEFjdGlvbiIsZGlzYWJsZWQ6ITB9XSxuPWkobz0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07Ij4KICAgICAgJHtvfQogICAgPC9kaXY+CiAgYCwiZGVtb0NvbnRlbnQiKTtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICB9CgogICAgICAuc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudHdvLWNvbHVtbiB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwMHB4IDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ib3Jpem9udGFsIFRhYnMgd2l0aCBBbmltYXRlZCBJbmRpY2F0b3I8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC50YWJzPSR7dH0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgJHtuKCJTZWxlY3QgYSB0YWIgdG8gc2VlIHRoZSBzbW9vdGggc2xpZGluZyBhbmltYXRpb24gb2YgdGhlIGluZGljYXRvci4gVGhlIGluZGljYXRvciBhdXRvbWF0aWNhbGx5IGFkanVzdHMgaXRzIHdpZHRoIHRvIG1hdGNoIHRoZSB0YWIgY29udGVudCB3aXRoIG1pbmltYWwgcGFkZGluZy4iKX0KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UYWJzIHdpdGggQWN0aW9uIEJ1dHRvbnM8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgICAudGFicz0ke3R9CiAgICAgICAgICAuYWN0aW9uc0xlZnQ9JHthfQogICAgICAgICAgLmFjdGlvbnNSaWdodD0ke3N9CiAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7bigiQWN0aW9uIGJ1dHRvbnMgY2FuIGJlIHBsYWNlZCBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgdGFiIGJhci4gVGhleSByZW1haW4gZml4ZWQgd2hpbGUgdGFicyBzY3JvbGwuIFRoZSBsb2NrIGljb24gc2hvd3MgYSBkaXNhYmxlZCBhY3Rpb24uIil9CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q2xvc2VhYmxlIFRhYnMgd2l0aCBBY3Rpb25zPC9kaXY+CiAgICAgICAgPGRlbW8tY2xvc2VhYmxlLXRhYnM+PC9kZW1vLWNsb3NlYWJsZS10YWJzPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1dG8taGlkZSBUYWJzPC9kaXY+CiAgICAgICAgPGRlbW8tYXV0b2hpZGUtdGFicz48L2RlbW8tYXV0b2hpZGUtdGFicz4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WZXJ0aWNhbCBUYWJzIExheW91dDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InR3by1jb2x1bW4iPgogICAgICAgICAgPGRlZXMtYXBwdWktdGFicyAudGFiU3R5bGU9JHsidmVydGljYWwifSAudGFicz0ke2V9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICAgJHtuKCJWZXJ0aWNhbCB0YWJzIHdvcmsgZ3JlYXQgZm9yIHNldHRpbmdzIHBhZ2VzIGFuZCBuYXZpZ2F0aW9uIG1lbnVzLiBUaGUgYW5pbWF0ZWQgaW5kaWNhdG9yIHNtb290aGx5IHRyYW5zaXRpb25zIGJldHdlZW4gc2VsZWN0aW9ucy4iKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5XaXRob3V0IEluZGljYXRvcjwvZGl2PgogICAgICAgIDxkZWVzLWFwcHVpLXRhYnMgLnNob3dUYWJJbmRpY2F0b3I9JHshMX0gLnRhYnM9JHtyfT48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICAke24oIlRhYnMgY2FuIGFsc28gYmUgdXNlZCB3aXRob3V0IHRoZSBhbmltYXRlZCBpbmRpY2F0b3IgYnkgc2V0dGluZyBzaG93VGFiSW5kaWNhdG9yIHRvIGZhbHNlLiIpfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHpjLHBzLGVRcix1N3Q9dSgoKT0+e1BwKCk7dmUoKTtNcigpO0pacigpO2x0KCk7emM9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHBzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxlUXI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWFwcHVpLXRhYnMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXTt2YXIgZGU9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNBcHB1aVRhYnMiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgRD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6T2JqZWN0fSldLHA9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx2PVtQKHt0eXBlOlN0cmluZ30pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sTj1bUCh7dHlwZTpOdW1iZXJ9KV0sTz1bUCh7dHlwZTpBcnJheX0pXSxCPVtQKHt0eXBlOkFycmF5fSldLEE9W2llKCldLFk9W2llKCldLHpjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4idGFicyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnRhYnMsImdldCIpLHNldDppKChRLGZlKT0+e1EudGFicz1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxvLGwpLHpjKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InNlbGVjdGVkVGFiImluIFEsImhhcyIpLGdldDppKFE9PlEuc2VsZWN0ZWRUYWIsImdldCIpLHNldDppKChRLGZlKT0+e1Euc2VsZWN0ZWRUYWI9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZCxmKSx6Yyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUYWJJbmRpY2F0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InNob3dUYWJJbmRpY2F0b3IiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5zaG93VGFiSW5kaWNhdG9yLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLnNob3dUYWJJbmRpY2F0b3I9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0saCxtKSx6Yyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYlN0eWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJ0YWJTdHlsZSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnRhYlN0eWxlLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLnRhYlN0eWxlPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGIsZyksemModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iYXV0b0hpZGUiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5hdXRvSGlkZSwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5hdXRvSGlkZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxrLE0pLHpjKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGVUaHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImF1dG9IaWRlVGhyZXNob2xkImluIFEsImhhcyIpLGdldDppKFE9PlEuYXV0b0hpZGVUaHJlc2hvbGQsImdldCIpLHNldDppKChRLGZlKT0+e1EuYXV0b0hpZGVUaHJlc2hvbGQ9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sXyxTKSx6Yyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnNMZWZ0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJhY3Rpb25zTGVmdCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmFjdGlvbnNMZWZ0LCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmFjdGlvbnNMZWZ0PWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LEwsRSksemModGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImFjdGlvbnNSaWdodCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmFjdGlvbnNSaWdodCwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5hY3Rpb25zUmlnaHQ9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sQyx6KSx6Yyh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhblNjcm9sbExlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+ImNhblNjcm9sbExlZnQiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5jYW5TY3JvbGxMZWZ0LCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmNhblNjcm9sbExlZnQ9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sJCxGKSx6Yyh0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhblNjcm9sbFJpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJjYW5TY3JvbGxSaWdodCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmNhblNjcm9sbFJpZ2h0LCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmNhblNjcm9sbFJpZ2h0PWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LEcsWiksemMobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCxyKSxkZT1hPWUudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89WFpyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9cHModGhpcyxvLFtdKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKEQpe3RoaXMuI2U9RH0jdD0ocHModGhpcyxsKSxwcyh0aGlzLGQsbnVsbCkpO2dldCBzZWxlY3RlZFRhYigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFRhYihEKXt0aGlzLiN0PUR9I3I9KHBzKHRoaXMsZikscHModGhpcyxoLCEwKSk7Z2V0IHNob3dUYWJJbmRpY2F0b3IoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1RhYkluZGljYXRvcihEKXt0aGlzLiNyPUR9I2E9KHBzKHRoaXMsbSkscHModGhpcyxiLCJob3Jpem9udGFsIikpO2dldCB0YWJTdHlsZSgpe3JldHVybiB0aGlzLiNhfXNldCB0YWJTdHlsZShEKXt0aGlzLiNhPUR9I2k9KHBzKHRoaXMsZykscHModGhpcyxrLCExKSk7Z2V0IGF1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGF1dG9IaWRlKEQpe3RoaXMuI2k9RH0jcz0ocHModGhpcyxNKSxwcyh0aGlzLF8sMCkpO2dldCBhdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNzfXNldCBhdXRvSGlkZVRocmVzaG9sZChEKXt0aGlzLiNzPUR9I249KHBzKHRoaXMsUykscHModGhpcyxMLFtdKSk7Z2V0IGFjdGlvbnNMZWZ0KCl7cmV0dXJuIHRoaXMuI259c2V0IGFjdGlvbnNMZWZ0KEQpe3RoaXMuI249RH0jbz0ocHModGhpcyxFKSxwcyh0aGlzLEMsW10pKTtnZXQgYWN0aW9uc1JpZ2h0KCl7cmV0dXJuIHRoaXMuI299c2V0IGFjdGlvbnNSaWdodChEKXt0aGlzLiNvPUR9I2w9KHBzKHRoaXMseikscHModGhpcywkLCExKSk7Z2V0IGNhblNjcm9sbExlZnQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgY2FuU2Nyb2xsTGVmdChEKXt0aGlzLiNsPUR9I2M9KHBzKHRoaXMsRikscHModGhpcyxHLCExKSk7Z2V0IGNhblNjcm9sbFJpZ2h0KCl7cmV0dXJuIHRoaXMuI2N9c2V0IGNhblNjcm9sbFJpZ2h0KEQpe3RoaXMuI2M9RH1yZXNpemVPYnNlcnZlcj0ocHModGhpcyxaKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIuaG9yaXpvbnRhbC13cmFwcGVyIHsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAvKiBTY3JvbGwgZmFkZSBpbmRpY2F0b3JzICovCiAgICAgIC5zY3JvbGwtZmFkZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDFweDsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUtbGVmdCB7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsCiAgICAgICAgICAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke3guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS1yaWdodCB7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsCiAgICAgICAgICAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke3guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS52aXNpYmxlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuc2Nyb2xsLWFyZWEgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBhY3Rpb24gYnV0dG9ucyAqLwogICAgICAudGFiLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb25zLmxlZnQgewogICAgICAgIHBhZGRpbmctbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9ucy5yaWdodCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTJweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItcHJlc3NlZCk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC40OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAvKiBTaG93IHNjcm9sbGJhciBvbiBob3ZlciAqLwogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWwsCiAgICAgIC5zY3JvbGwtYXJlYTpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMikiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMikiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLAogICAgICAuc2Nyb2xsLWFyZWE6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMikiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMikiKX07CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXI6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsCiAgICAgIC5zY3JvbGwtYXJlYTpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwwLDAsMC4zNSkiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMzUpIil9OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci52ZXJ0aWNhbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICB9CgogICAgICAuaG9yaXpvbnRhbCAudGFiIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweCA2cHggMCAwOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWIgLnRhYi1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudmVydGljYWwgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyOjphZnRlciwKICAgICAgLmhvcml6b250YWwgLnRhYjpob3ZlciArIC50YWI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAudmVydGljYWwgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMjQ0LCAyNDQsIDI0NSwgMC41KSIsInJnYmEoMzksIDM5LCA0MiwgMC41KSIpfTsKICAgICAgfQoKICAgICAgLmhvcml6b250YWwgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYi5zZWxlY3RlZFRhYjo6YWZ0ZXIsCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWIgKyAudGFiOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWIuc2VsZWN0ZWRUYWIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50YWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC50YWJJbmRpY2F0b3IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC50YWJJbmRpY2F0b3Iubm8tdHJhbnNpdGlvbiB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlciAudGFiSW5kaWNhdG9yIHsKICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY2NlbnQtcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjA4KTsKICAgICAgfQoKICAgICAgLyogQ2xvc2UgYnV0dG9uICovCiAgICAgIC50YWItY2xvc2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXByZXNzZWQpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWFjY2VudC1lcnJvcik7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5hdXRvSGlkZSYmdGhpcy50YWJzLmxlbmd0aDw9dGhpcy5hdXRvSGlkZVRocmVzaG9sZD93YGA6d2AKICAgICAgJHt0aGlzLnJlbmRlclRhYnNXcmFwcGVyKCl9CiAgICBgfXJlbmRlclRhYnNXcmFwcGVyKCl7bGV0IEQ9dGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIixRPUQ/InRhYnMtd3JhcHBlciBob3Jpem9udGFsLXdyYXBwZXIiOiJ2ZXJ0aWNhbC13cmFwcGVyIixmZT1gdGFic0NvbnRhaW5lciAke3RoaXMudGFiU3R5bGV9YDtpZihEKXtsZXQgVD10aGlzLmFjdGlvbnNMZWZ0JiZ0aGlzLmFjdGlvbnNMZWZ0Lmxlbmd0aD4wLFc9dGhpcy5hY3Rpb25zUmlnaHQmJnRoaXMuYWN0aW9uc1JpZ2h0Lmxlbmd0aD4wO3JldHVybiB3YAogICAgICAgIDxkaXYgY2xhc3M9IiR7UX0iPgogICAgICAgICAgJHtUP3RoaXMucmVuZGVyQWN0aW9ucyh0aGlzLmFjdGlvbnNMZWZ0LCJsZWZ0Iik6IiJ9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtYXJlYSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbC1mYWRlIHNjcm9sbC1mYWRlLWxlZnQgJHt0aGlzLmNhblNjcm9sbExlZnQ/InZpc2libGUiOiIifSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IiR7ZmV9IiBAc2Nyb2xsPSR7dGhpcy5oYW5kbGVTY3JvbGx9PgogICAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcChwZT0+dGhpcy5yZW5kZXJUYWIocGUsRCkpfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWZhZGUgc2Nyb2xsLWZhZGUtcmlnaHQgJHt0aGlzLmNhblNjcm9sbFJpZ2h0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke1c/dGhpcy5yZW5kZXJBY3Rpb25zKHRoaXMuYWN0aW9uc1JpZ2h0LCJyaWdodCIpOiIifQogICAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/d2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGB9cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9IiR7UX0iPgogICAgICAgIDxkaXYgY2xhc3M9IiR7ZmV9Ij4KICAgICAgICAgICR7dGhpcy50YWJzLm1hcChUPT50aGlzLnJlbmRlclRhYihULEQpKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc2hvd1RhYkluZGljYXRvcj93YDxkaXYgY2xhc3M9InRhYkluZGljYXRvciI+PC9kaXY+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGlvbnMoRCxRKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idGFiLWFjdGlvbnMgJHtRfSI+CiAgICAgICAgJHtELm1hcChmZT0+d2AKICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InRhYi1hY3Rpb24tYnV0dG9uICR7ZmUuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIHRpdGxlPSIke2ZlLnRvb2x0aXB8fGZlLmlkfSIKICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiFmZS5kaXNhYmxlZCYmZmUuYWN0aW9uKCl9CiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtmZS5pY29uTmFtZX0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihELFEpe2xldCBUPWB0YWIgJHtEPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifWAsVz1ELmNsb3NlYWJsZT93YAogICAgICA8c3BhbiBjbGFzcz0idGFiLWNsb3NlIiBAY2xpY2s9IiR7bWU9PnRoaXMuY2xvc2VUYWIobWUsRCl9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsiPjwvZGVlcy1pY29uPgogICAgICA8L3NwYW4+CiAgICBgOiIiLHBlPVE/d2AKICAgICAgPHNwYW4gY2xhc3M9InRhYi1jb250ZW50Ij4KICAgICAgICAke3RoaXMucmVuZGVyVGFiSWNvbihEKX0KICAgICAgICAke0Qua2V5fQogICAgICA8L3NwYW4+CiAgICAgICR7V30KICAgIGA6d2AKICAgICAgJHt0aGlzLnJlbmRlclRhYkljb24oRCl9CiAgICAgICR7RC5rZXl9CiAgICAgICR7V30KICAgIGA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iJHtUfSIKICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuc2VsZWN0VGFiKEQpfSIKICAgICAgPgogICAgICAgICR7cGV9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWJJY29uKEQpe3JldHVybiBELmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0ke0QuaWNvbk5hbWV9PjwvZGVlcy1pY29uPmA6IiJ9c2VsZWN0VGFiKEQpe3RoaXMuc2VsZWN0ZWRUYWI9RCxELmFjdGlvbigpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2Nyb2xsVGFiSW50b1ZpZXcoRCl9KSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItc2VsZWN0Iix7ZGV0YWlsOnt0YWI6RH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jbGVhcigpe3RoaXMudGFicz1bXSx0aGlzLnNlbGVjdGVkVGFiPW51bGx9Y2xvc2VUYWIoRCxRKXtELnN0b3BQcm9wYWdhdGlvbigpLFEub25DbG9zZSYmUS5vbkNsb3NlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNsb3NlIix7ZGV0YWlsOnt0YWI6UX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNldHVwUmVzaXplT2JzZXJ2ZXIoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlKCl9KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bnVsbCl9c2V0dXBSZXNpemVPYnNlcnZlcigpe2lmKHRoaXMudGFiU3R5bGUhPT0iaG9yaXpvbnRhbCIpcmV0dXJuO3RoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSk7bGV0IEQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7RCYmdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKEQpfWhhbmRsZVNjcm9sbD1pKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSwiaGFuZGxlU2Nyb2xsIik7dXBkYXRlU2Nyb2xsU3RhdGUoKXtsZXQgRD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJzQ29udGFpbmVyLmhvcml6b250YWwiKTtpZighRClyZXR1cm47bGV0IFE9RC5zY3JvbGxMZWZ0LGZlPUQuc2Nyb2xsV2lkdGgsVD1ELmNsaWVudFdpZHRoLFc9Mjt0aGlzLmNhblNjcm9sbExlZnQ9UT5XLHRoaXMuY2FuU2Nyb2xsUmlnaHQ9UTxmZS1ULVd9c2Nyb2xsVGFiSW50b1ZpZXcoRCl7aWYodGhpcy50YWJTdHlsZSE9PSJob3Jpem9udGFsIilyZXR1cm47bGV0IFE9dGhpcy50YWJzLmluZGV4T2YoRCk7aWYoUT09PS0xKXJldHVybjtsZXQgZmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIiksVD1mZT8ucXVlcnlTZWxlY3RvcihgLnRhYjpudGgtY2hpbGQoJHtRKzF9KWApO2lmKFQmJmZlKXtsZXQgVz1mZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxwZT1ULmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3BlLmxlZnQ+PVcubGVmdCYmcGUucmlnaHQ8PVcucmlnaHR8fFQuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJuZWFyZXN0IixpbmxpbmU6Im5lYXJlc3QifSl9fWFzeW5jIHVwZGF0ZWQoRCl7c3VwZXIudXBkYXRlZChEKSxELmhhcygidGFicyIpJiYoIXRoaXMudGFic3x8dGhpcy50YWJzLmxlbmd0aD09PTA/dGhpcy5zZWxlY3RlZFRhYiE9PW51bGwmJih0aGlzLnNlbGVjdGVkVGFiPW51bGwsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDp7dGFiOm51bGx9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpOnRoaXMuc2VsZWN0ZWRUYWImJiF0aGlzLnRhYnMuaW5jbHVkZXModGhpcy5zZWxlY3RlZFRhYik/dGhpcy5zZWxlY3RUYWIodGhpcy50YWJzWzBdKTp0aGlzLnNlbGVjdGVkVGFifHx0aGlzLnNlbGVjdFRhYih0aGlzLnRhYnNbMF0pKSwoRC5oYXMoInNlbGVjdGVkVGFiIil8fEQuaGFzKCJ0YWJzIikpJiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSwhdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZCYmZG9jdW1lbnQuZm9udHMmJmF3YWl0IGRvY3VtZW50LmZvbnRzLnJlYWR5LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMudXBkYXRlVGFiSW5kaWNhdG9yKCksdGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSkpfWluZGljYXRvckluaXRpYWxpemVkPSExO3VwZGF0ZVRhYkluZGljYXRvcigpe2lmKCF0aGlzLnNob3VsZFNob3dJbmRpY2F0b3IoKSlyZXR1cm47bGV0IEQ9dGhpcy5nZXRTZWxlY3RlZFRhYkVsZW1lbnQoKTtpZighRClyZXR1cm47bGV0IFE9dGhpcy5nZXRJbmRpY2F0b3JFbGVtZW50KCk7USYmKHRoaXMuaGFuZGxlSW5pdGlhbFRyYW5zaXRpb24oUSksdGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIj90aGlzLnVwZGF0ZUhvcml6b250YWxJbmRpY2F0b3IoUSxEKTp0aGlzLnVwZGF0ZVZlcnRpY2FsSW5kaWNhdG9yKFEsRCksUS5zdHlsZS5vcGFjaXR5PSIxIil9c2hvdWxkU2hvd0luZGljYXRvcigpe3JldHVybiEhdGhpcy5zZWxlY3RlZFRhYiYmdGhpcy5zaG93VGFiSW5kaWNhdG9yJiZ0aGlzLnRhYnMuaW5jbHVkZXModGhpcy5zZWxlY3RlZFRhYil9Z2V0U2VsZWN0ZWRUYWJFbGVtZW50KCl7bGV0IEQ9dGhpcy50YWJzLmluZGV4T2YodGhpcy5zZWxlY3RlZFRhYiksZmU9dGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIj9gLnRhYnMtd3JhcHBlciAudGFic0NvbnRhaW5lciAudGFiOm50aC1jaGlsZCgke0QrMX0pYDpgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYnNDb250YWluZXIgLnRhYjpudGgtY2hpbGQoJHtEKzF9KWA7cmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGZlKX1nZXRJbmRpY2F0b3JFbGVtZW50KCl7cmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudGFiSW5kaWNhdG9yIil9aGFuZGxlSW5pdGlhbFRyYW5zaXRpb24oRCl7dGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZHx8KEQuY2xhc3NMaXN0LmFkZCgibm8tdHJhbnNpdGlvbiIpLHRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQ9ITAsc2V0VGltZW91dCgoKT0+e0QuY2xhc3NMaXN0LnJlbW92ZSgibm8tdHJhbnNpdGlvbiIpfSw1MCkpfXVwZGF0ZUhvcml6b250YWxJbmRpY2F0b3IoRCxRKXtsZXQgZmU9US5xdWVyeVNlbGVjdG9yKCIudGFiLWNvbnRlbnQiKTtpZighZmUpcmV0dXJuO2xldCBUPUQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxXPWZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHBlPVcubGVmdC1ULmxlZnQsbWU9Vy53aWR0aCs4LHE9cGUtNDtELnN0eWxlLndpZHRoPWAke21lfXB4YCxELnN0eWxlLmxlZnQ9YCR7cX1weGB9dXBkYXRlVmVydGljYWxJbmRpY2F0b3IoRCxRKXtsZXQgZmU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi52ZXJ0aWNhbC13cmFwcGVyIC50YWJzQ29udGFpbmVyIik7ZmUmJihELnN0eWxlLnRvcD1gJHtRLm9mZnNldFRvcCtmZS5vZmZzZXRUb3B9cHhgLEQuc3R5bGUuaGVpZ2h0PWAke1EuY2xpZW50SGVpZ2h0fXB4YCl9c3RhdGlje3BzKGEscil9fTtyZXR1cm4gZGU9YX0pKCl9KTt2YXIgbGYsWm8sdFFyLHA3dD11KCgpPT57UHAoKTt2ZSgpO01yKCk7dTd0KCk7bHQoKTtsZj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sWm89ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHRRcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpTWFpbmNvbnRlbnQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6T2JqZWN0fSldLHA9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx2PVtQKHt0eXBlOkJvb2xlYW59KV0seT1bUCh7dHlwZTpOdW1iZXJ9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOkFycmF5fSldLGxmKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idGFicyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRhYnMsImdldCIpLHNldDppKCh6LEEpPT57ei50YWJzPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxsZih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzZWxlY3RlZFRhYiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouc2VsZWN0ZWRUYWI9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLGxmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InNob3dUYWJzImluIHosImhhcyIpLGdldDppKHo9Pnouc2hvd1RhYnMsImdldCIpLHNldDppKCh6LEEpPT57ei5zaG93VGFicz1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGgsbSksbGYodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRhYnNBdXRvSGlkZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRhYnNBdXRvSGlkZSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnRhYnNBdXRvSGlkZT1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksbGYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzQXV0b0hpZGVUaHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRhYnNBdXRvSGlkZVRocmVzaG9sZCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRhYnNBdXRvSGlkZVRocmVzaG9sZCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnRhYnNBdXRvSGlkZVRocmVzaG9sZD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGssTSksbGYodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJBY3Rpb25zTGVmdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idGFiQWN0aW9uc0xlZnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei50YWJBY3Rpb25zTGVmdCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnRhYkFjdGlvbnNMZWZ0PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSxsZih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYkFjdGlvbnNSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idGFiQWN0aW9uc1JpZ2h0ImluIHosImhhcyIpLGdldDppKHo9PnoudGFiQWN0aW9uc1JpZ2h0LCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudGFiQWN0aW9uc1JpZ2h0PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sTCxFKSxsZihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHIpLEI9YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1hcHB1aS1tYWluY29udGVudAogICAgICAudGFicz0ke1t7a2V5OiJPdmVydmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246aSgoKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IiksImFjdGlvbiIpfSx7a2V5OiJEZXRhaWxzIixpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRGV0YWlscyIpLCJhY3Rpb24iKX0se2tleToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKSwiYWN0aW9uIil9XX0KICAgID4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBzdHlsZT0icGFkZGluZzogNDBweDsgY29sb3I6ICNjY2M7Ij4KICAgICAgICA8aDE+TWFpbiBDb250ZW50IEFyZWE8L2gxPgogICAgICAgIDxwPlRoaXMgaXMgd2hlcmUgeW91ciBhcHBsaWNhdGlvbiBjb250ZW50IGdvZXMuPC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1hcHB1aS1tYWluY29udGVudD4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1abyh0aGlzLG8sW3trZXk6Ilx1MjZBMFx1RkUwRiBQbGVhc2Ugc2V0IHRhYnMiLGFjdGlvbjppKCgpPT5jb25zb2xlLndhcm4oIk5vIHRhYnMgY29uZmlndXJlZCBmb3IgbWFpbmNvbnRlbnQiKSwiYWN0aW9uIil9XSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhDKXt0aGlzLiNlPUN9I3Q9KFpvKHRoaXMsbCksWm8odGhpcyxkLG51bGwpKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRUYWIoQyl7dGhpcy4jdD1DfSNyPShabyh0aGlzLGYpLFpvKHRoaXMsaCwhMCkpO2dldCBzaG93VGFicygpe3JldHVybiB0aGlzLiNyfXNldCBzaG93VGFicyhDKXt0aGlzLiNyPUN9I2E9KFpvKHRoaXMsbSksWm8odGhpcyxiLCExKSk7Z2V0IHRhYnNBdXRvSGlkZSgpe3JldHVybiB0aGlzLiNhfXNldCB0YWJzQXV0b0hpZGUoQyl7dGhpcy4jYT1DfSNpPShabyh0aGlzLGcpLFpvKHRoaXMsaywwKSk7Z2V0IHRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNpfXNldCB0YWJzQXV0b0hpZGVUaHJlc2hvbGQoQyl7dGhpcy4jaT1DfSNzPShabyh0aGlzLE0pLFpvKHRoaXMsXyxbXSkpO2dldCB0YWJBY3Rpb25zTGVmdCgpe3JldHVybiB0aGlzLiNzfXNldCB0YWJBY3Rpb25zTGVmdChDKXt0aGlzLiNzPUN9I249KFpvKHRoaXMsUyksWm8odGhpcyxMLFtdKSk7Z2V0IHRhYkFjdGlvbnNSaWdodCgpe3JldHVybiB0aGlzLiNufXNldCB0YWJBY3Rpb25zUmlnaHQoQyl7dGhpcy4jbj1DfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudG9wYmFyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnRvcGJhciA+ICogewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgOmhvc3QoW25vdGFic10pIC50b3BiYXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMuc2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5zaG93VGFiSW5kaWNhdG9yPSR7ITB9CiAgICAgICAgICAgIC50YWJTdHlsZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy50YWJzQXV0b0hpZGV9CiAgICAgICAgICAgIC5hdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMudGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgICAuYWN0aW9uc0xlZnQ9JHt0aGlzLnRhYkFjdGlvbnNMZWZ0fQogICAgICAgICAgICAuYWN0aW9uc1JpZ2h0PSR7dGhpcy50YWJBY3Rpb25zUmlnaHR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7Qz0+dGhpcy5oYW5kbGVUYWJTZWxlY3QoQyl9CiAgICAgICAgICAgIEB0YWItY2xvc2U9JHtDPT50aGlzLmhhbmRsZVRhYkNsb3NlKEMpfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgICA8c2xvdCBuYW1lPSJjb250ZW50Ij48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVUYWJTZWxlY3QoQyl7dGhpcy5zZWxlY3RlZFRhYj1DLmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDpDLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVRhYkNsb3NlKEMpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDpDLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXVwZGF0ZWQoQyl7c3VwZXIudXBkYXRlZChDKSxDLmhhcygic2hvd1RhYnMiKSYmKHRoaXMuc2hvd1RhYnM/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoIm5vdGFicyIpOnRoaXMuc2V0QXR0cmlidXRlKCJub3RhYnMiLCIiKSl9YXN5bmMgZmlyc3RVcGRhdGVkKEMpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChDKSx0aGlzLnNob3dUYWJzfHx0aGlzLnNldEF0dHJpYnV0ZSgibm90YWJzIiwiIik7bGV0IHo9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktdGFicyIpO3omJmF3YWl0IHoudXBkYXRlQ29tcGxldGV9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFpvKHRoaXMsRSl9c3RhdGlje1pvKGEscil9fTtyZXR1cm4gQj1hfSkoKX0pO3ZhciBWcixidCxyUXIsYVFyPXUoKCk9Pnt2ZSgpO01yKCk7UHAoKTtVWnIoKTtsdCgpO2w3dCgpO3o2dCgpO1Q2dCgpO2M3dCgpO2Q3dCgpO3A3dCgpO3c2dCgpO1ZyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxidD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sclFyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1hcHB1aSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W10scGUsbWU9W10scT1bXSxILFU9W10saj1bXSxhZSxYPVtdLEo9W10seGUsSz1bXSxWPVtdLGxlLG5lPVtdLGVlPVtdLHplLEhlPVtdLEdlPVtdLG90LERlPVtdLF9lPVtdLG9lLHNlPVtdLGNlPVtdLFRlLHFlPVtdLG50PVtdLHZ0LExlPVtdLHdlPVtdLE9lLGdlPVtdLGJlPVtdLEllLHl0PVtdLHd0PVtdLFl0LHphPVtdLFBhPVtdLFlpLEVlPVtdLGplPVtdLHNyLHJhPVtdLHBhPVtdLHlhLGZhPVtdLENuPVtdLHpuLEFlPVtdLENlPVtdLFllLERyPVtdLEVzPVtdLExkLGtlPVtdLGhlPVtdLCRlLGV0PVtdLFB0PVtdLElzLEtpPVtdLERvPVtdLG0yLHFjPVtdLERkPVtdLGcyLF9mPVtdLGVrPVtdLHRrLHJrPVtdLGFrPVtdLGlrLHNrPVtdLG5rPVtdO3ZhciBvaz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0FwcHVpIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOkJvb2xlYW59KV0seT1bUCh7dHlwZTpPYmplY3R9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOkJvb2xlYW59KV0sQj1bUCh7dHlwZTpTdHJpbmd9KV0sQT1bUCh7dHlwZTpTdHJpbmd9KV0sWT1bUCh7dHlwZTpBcnJheX0pXSxkZT1bUCh7dHlwZTpBcnJheX0pXSxmZT1bUCh7dHlwZTpBcnJheX0pXSxwZT1bUCh7dHlwZTpPYmplY3R9KV0sSD1bUCh7dHlwZTpTdHJpbmd9KV0sYWU9W1Aoe3R5cGU6QXJyYXl9KV0seGU9W1Aoe3R5cGU6T2JqZWN0fSldLGxlPVtQKHt0eXBlOkJvb2xlYW59KV0semU9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxvdD1bUCh7dHlwZTpCb29sZWFufSldLG9lPVtQKHt0eXBlOkJvb2xlYW59KV0sVGU9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx2dD1bUCh7dHlwZTpCb29sZWFufSldLE9lPVtQKHt0eXBlOk51bWJlcn0pXSxJZT1baWUoKV0sWXQ9W2llKCldLFlpPVtQKHt0eXBlOkFycmF5fSldLHNyPVtQKHt0eXBlOk9iamVjdH0pXSx5YT1bUCh7dHlwZTpBcnJheX0pXSx6bj1bUCh7dHlwZTpBcnJheX0pXSxZZT1baWUoKV0sTGQ9W2llKCldLCRlPVtpZSgpXSxJcz1baWUoKV0sbTI9W2llKCldLGcyPVtpZSgpXSx0az1baWUoKV0saWs9W2llKCldLFZyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJhcHBiYXJNZW51SXRlbXMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5hcHBiYXJNZW51SXRlbXMsImdldCIpLHNldDppKChJLHRlKT0+e0kuYXBwYmFyTWVudUl0ZW1zPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LG8sbCksVnIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJCcmVhZGNydW1icyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYXBwYmFyQnJlYWRjcnVtYnMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5hcHBiYXJCcmVhZGNydW1icywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hcHBiYXJCcmVhZGNydW1icz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxkLGYpLFZyKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvciJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IsImdldCIpLHNldDppKChJLHRlKT0+e0kuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcj10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxoLG0pLFZyKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJhcHBiYXJTaG93V2luZG93Q29udHJvbHMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5hcHBiYXJTaG93V2luZG93Q29udHJvbHMsImdldCIpLHNldDppKChJLHRlKT0+e0kuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGIsZyksVnIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJVc2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJhcHBiYXJVc2VyImluIEksImhhcyIpLGdldDppKEk9PkkuYXBwYmFyVXNlciwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hcHBiYXJVc2VyPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LGssTSksVnIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJQcm9maWxlTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJhcHBiYXJQcm9maWxlTWVudUl0ZW1zImluIEksImhhcyIpLGdldDppKEk9PkkuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LF8sUyksVnIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJTaG93U2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJhcHBiYXJTaG93U2VhcmNoImluIEksImhhcyIpLGdldDppKEk9PkkuYXBwYmFyU2hvd1NlYXJjaCwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hcHBiYXJTaG93U2VhcmNoPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEwsRSksVnIodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUxvZ29JY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJtYWlubWVudUxvZ29JY29uImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVMb2dvSWNvbiwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5tYWlubWVudUxvZ29JY29uPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEMseiksVnIodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUxvZ29UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJtYWlubWVudUxvZ29UZXh0ImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVMb2dvVGV4dCwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5tYWlubWVudUxvZ29UZXh0PXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LCQsRiksVnIodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ibWFpbm1lbnVHcm91cHMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5tYWlubWVudUdyb3VwcywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5tYWlubWVudUdyb3Vwcz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxHLFopLFZyKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51Qm90dG9tVGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ibWFpbm1lbnVCb3R0b21UYWJzImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVCb3R0b21UYWJzLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5tZW51Qm90dG9tVGFicz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxELFEpLFZyKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ibWFpbm1lbnVUYWJzImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVUYWJzLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5tZW51VGFicz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxULFcpLFZyKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+Im1haW5tZW51U2VsZWN0ZWRUYWIiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5tYWlubWVudVNlbGVjdGVkVGFiLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5tZW51U2VsZWN0ZWRUYWI9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sbWUscSksVnIodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51SGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ic2Vjb25kYXJ5bWVudUhlYWRpbmciaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zZWNvbmRhcnltZW51SGVhZGluZywiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWNvbmRhcnltZW51SGVhZGluZz10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxVLGopLFZyKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVHcm91cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNlY29uZGFyeW1lbnVHcm91cHMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zZWNvbmRhcnltZW51R3JvdXBzLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnNlY29uZGFyeW1lbnVHcm91cHM9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sWCxKKSxWcih0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtImluIEksImhhcyIpLGdldDppKEk9Pkkuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEssViksVnIodGhpcyxudWxsLGxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+Im1haW5tZW51Q29sbGFwc2VkImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVDb2xsYXBzZWQsImdldCIpLHNldDppKChJLHRlKT0+e0kubWFpbm1lbnVDb2xsYXBzZWQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sbmUsZWUpLFZyKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNlY29uZGFyeW1lbnVDb2xsYXBzZWQiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zZWNvbmRhcnltZW51Q29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sSGUsR2UpLFZyKHRoaXMsbnVsbCxvdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4ibWFpbm1lbnVWaXNpYmxlImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnVWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5tZW51VmlzaWJsZT10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxEZSxfZSksVnIodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNlY29uZGFyeW1lbnVWaXNpYmxlImluIEksImhhcyIpLGdldDppKEk9Pkkuc2Vjb25kYXJ5bWVudVZpc2libGUsImdldCIpLHNldDppKChJLHRlKT0+e0kuc2Vjb25kYXJ5bWVudVZpc2libGU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sc2UsY2UpLFZyKHRoaXMsbnVsbCxUZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50VGFic1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+Im1haW5jb250ZW50VGFic1Zpc2libGUiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5tYWluY29udGVudFRhYnNWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5jb250ZW50VGFic1Zpc2libGU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0scWUsbnQpLFZyKHRoaXMsbnVsbCx2dCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImNvbnRlbnRUYWJzQXV0b0hpZGUiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5jb250ZW50VGFic0F1dG9IaWRlLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmNvbnRlbnRUYWJzQXV0b0hpZGU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sTGUsd2UpLFZyKHRoaXMsbnVsbCxPZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sZ2UsYmUpLFZyKHRoaXMsbnVsbCxJZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5TG9nVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYWN0aXZpdHlMb2dWaXNpYmxlImluIEksImhhcyIpLGdldDppKEk9PkkuYWN0aXZpdHlMb2dWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmFjdGl2aXR5TG9nVmlzaWJsZT10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSx5dCx3dCksVnIodGhpcyxudWxsLFl0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmFjdGl2aXR5TG9nQ291bnQsImdldCIpLHNldDppKChJLHRlKT0+e0kuYWN0aXZpdHlMb2dDb3VudD10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSx6YSxQYSksVnIodGhpcyxudWxsLFlpLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJtYWluY29udGVudFRhYnMiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5tYWluY29udGVudFRhYnMsImdldCIpLHNldDppKChJLHRlKT0+e0kubWFpbmNvbnRlbnRUYWJzPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEVlLGplKSxWcih0aGlzLG51bGwsc3Ise2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWluY29udGVudFNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJtYWluY29udGVudFNlbGVjdGVkVGFiImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbmNvbnRlbnRTZWxlY3RlZFRhYiwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5tYWluY29udGVudFNlbGVjdGVkVGFiPXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LHJhLHBhKSxWcih0aGlzLG51bGwseWEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFiQWN0aW9uc0xlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImNvbnRlbnRUYWJBY3Rpb25zTGVmdCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmNvbnRlbnRUYWJBY3Rpb25zTGVmdCwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5jb250ZW50VGFiQWN0aW9uc0xlZnQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sZmEsQ24pLFZyKHRoaXMsbnVsbCx6bix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUYWJBY3Rpb25zUmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImNvbnRlbnRUYWJBY3Rpb25zUmlnaHQiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5jb250ZW50VGFiQWN0aW9uc1JpZ2h0LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmNvbnRlbnRUYWJBY3Rpb25zUmlnaHQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sQWUsQ2UpLFZyKHRoaXMsbnVsbCxZZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShJPT4iYXBwYmFyImluIEksImhhcyIpLGdldDppKEk9PkkuYXBwYmFyLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmFwcGJhcj10ZX0sInNldCIpfSxtZXRhZGF0YTpSfSxEcixFcyksVnIodGhpcyxudWxsLExkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+Im1haW5tZW51ImluIEksImhhcyIpLGdldDppKEk9PkkubWFpbm1lbnUsImdldCIpLHNldDppKChJLHRlKT0+e0kubWFpbm1lbnU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sa2UsaGUpLFZyKHRoaXMsbnVsbCwkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+InNlY29uZGFyeW1lbnUiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5zZWNvbmRhcnltZW51LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLnNlY29uZGFyeW1lbnU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sZXQsUHQpLFZyKHRoaXMsbnVsbCxJcyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJtYWluY29udGVudCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLm1haW5jb250ZW50LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLm1haW5jb250ZW50PXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LEtpLERvKSxWcih0aGlzLG51bGwsbTIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eWxvZ0VsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImFjdGl2aXR5bG9nRWxlbWVudCJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmFjdGl2aXR5bG9nRWxlbWVudCwiZ2V0Iiksc2V0OmkoKEksdGUpPT57SS5hY3Rpdml0eWxvZ0VsZW1lbnQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0scWMsRGQpLFZyKHRoaXMsbnVsbCxnMix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbWJhckVsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImJvdHRvbWJhckVsZW1lbnQiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5ib3R0b21iYXJFbGVtZW50LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmJvdHRvbWJhckVsZW1lbnQ9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0sX2YsZWspLFZyKHRoaXMsbnVsbCx0ayx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbWJhclZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoST0+ImJvdHRvbWJhclZpc2libGUiaW4gSSwiaGFzIiksZ2V0OmkoST0+SS5ib3R0b21iYXJWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmJvdHRvbWJhclZpc2libGU9dGV9LCJzZXQiKX0sbWV0YWRhdGE6Un0scmssYWspLFZyKHRoaXMsbnVsbCxpayx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEk9PiJjdXJyZW50VmlldyJpbiBJLCJoYXMiKSxnZXQ6aShJPT5JLmN1cnJlbnRWaWV3LCJnZXQiKSxzZXQ6aSgoSSx0ZSk9PntJLmN1cnJlbnRWaWV3PXRlfSwic2V0Iil9LG1ldGFkYXRhOlJ9LHNrLG5rKSxWcihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpSfSxudWxsLHIpLG9rPWE9ZS52YWx1ZSxSJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlJ9KX1zdGF0aWMgZGVtbz1qWnI7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTt2aWV3TGlmZWN5Y2xlJD1uZXcgY3Iuc21hcnRyeC5yeGpzLlN1YmplY3Q7dmlld0NoYW5nZWQkPW5ldyBjci5zbWFydHJ4LnJ4anMuU3ViamVjdDsjZT1idCh0aGlzLG8sW10pO2dldCBhcHBiYXJNZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgYXBwYmFyTWVudUl0ZW1zKFIpe3RoaXMuI2U9Un0jdD0oYnQodGhpcyxsKSxidCh0aGlzLGQsIiIpKTtnZXQgYXBwYmFyQnJlYWRjcnVtYnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYXBwYmFyQnJlYWRjcnVtYnMoUil7dGhpcy4jdD1SfSNyPShidCh0aGlzLGYpLGJ0KHRoaXMsaCwiID4gIikpO2dldCBhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IoUil7dGhpcy4jcj1SfSNhPShidCh0aGlzLG0pLGJ0KHRoaXMsYiwhMCkpO2dldCBhcHBiYXJTaG93V2luZG93Q29udHJvbHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzKFIpe3RoaXMuI2E9Un0jaT0oYnQodGhpcyxnKSxidCh0aGlzLGssdm9pZCAwKSk7Z2V0IGFwcGJhclVzZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXBwYmFyVXNlcihSKXt0aGlzLiNpPVJ9I3M9KGJ0KHRoaXMsTSksYnQodGhpcyxfLFtdKSk7Z2V0IGFwcGJhclByb2ZpbGVNZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgYXBwYmFyUHJvZmlsZU1lbnVJdGVtcyhSKXt0aGlzLiNzPVJ9I249KGJ0KHRoaXMsUyksYnQodGhpcyxMLCExKSk7Z2V0IGFwcGJhclNob3dTZWFyY2goKXtyZXR1cm4gdGhpcy4jbn1zZXQgYXBwYmFyU2hvd1NlYXJjaChSKXt0aGlzLiNuPVJ9I289KGJ0KHRoaXMsRSksYnQodGhpcyxDLCIiKSk7Z2V0IG1haW5tZW51TG9nb0ljb24oKXtyZXR1cm4gdGhpcy4jb31zZXQgbWFpbm1lbnVMb2dvSWNvbihSKXt0aGlzLiNvPVJ9I2w9KGJ0KHRoaXMseiksYnQodGhpcywkLCIiKSk7Z2V0IG1haW5tZW51TG9nb1RleHQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbWFpbm1lbnVMb2dvVGV4dChSKXt0aGlzLiNsPVJ9I2M9KGJ0KHRoaXMsRiksYnQodGhpcyxHLFtdKSk7Z2V0IG1haW5tZW51R3JvdXBzKCl7cmV0dXJuIHRoaXMuI2N9c2V0IG1haW5tZW51R3JvdXBzKFIpe3RoaXMuI2M9Un0jZD0oYnQodGhpcyxaKSxidCh0aGlzLEQsW10pKTtnZXQgbWFpbm1lbnVCb3R0b21UYWJzKCl7cmV0dXJuIHRoaXMuI2R9c2V0IG1haW5tZW51Qm90dG9tVGFicyhSKXt0aGlzLiNkPVJ9I3U9KGJ0KHRoaXMsUSksYnQodGhpcyxULFtdKSk7Z2V0IG1haW5tZW51VGFicygpe3JldHVybiB0aGlzLiN1fXNldCBtYWlubWVudVRhYnMoUil7dGhpcy4jdT1SfSNwPShidCh0aGlzLFcpLGJ0KHRoaXMsbWUsdm9pZCAwKSk7Z2V0IG1haW5tZW51U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jcH1zZXQgbWFpbm1lbnVTZWxlY3RlZFRhYihSKXt0aGlzLiNwPVJ9I2Y9KGJ0KHRoaXMscSksYnQodGhpcyxVLCIiKSk7Z2V0IHNlY29uZGFyeW1lbnVIZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHNlY29uZGFyeW1lbnVIZWFkaW5nKFIpe3RoaXMuI2Y9Un0jaD0oYnQodGhpcyxqKSxidCh0aGlzLFgsW10pKTtnZXQgc2Vjb25kYXJ5bWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNofXNldCBzZWNvbmRhcnltZW51R3JvdXBzKFIpe3RoaXMuI2g9Un0jbT0oYnQodGhpcyxKKSxidCh0aGlzLEssdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbShSKXt0aGlzLiNtPVJ9I2c9KGJ0KHRoaXMsViksYnQodGhpcyxuZSwhMSkpO2dldCBtYWlubWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNnfXNldCBtYWlubWVudUNvbGxhcHNlZChSKXt0aGlzLiNnPVJ9I2I9KGJ0KHRoaXMsZWUpLGJ0KHRoaXMsSGUsITEpKTtnZXQgc2Vjb25kYXJ5bWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNifXNldCBzZWNvbmRhcnltZW51Q29sbGFwc2VkKFIpe3RoaXMuI2I9Un0jeD0oYnQodGhpcyxHZSksYnQodGhpcyxEZSwhMCkpO2dldCBtYWlubWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jeH1zZXQgbWFpbm1lbnVWaXNpYmxlKFIpe3RoaXMuI3g9Un0jdj0oYnQodGhpcyxfZSksYnQodGhpcyxzZSwhMCkpO2dldCBzZWNvbmRhcnltZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiN2fXNldCBzZWNvbmRhcnltZW51VmlzaWJsZShSKXt0aGlzLiN2PVJ9I3k9KGJ0KHRoaXMsY2UpLGJ0KHRoaXMscWUsITApKTtnZXQgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZSgpe3JldHVybiB0aGlzLiN5fXNldCBtYWluY29udGVudFRhYnNWaXNpYmxlKFIpe3RoaXMuI3k9Un0jdz0oYnQodGhpcyxudCksYnQodGhpcyxMZSwhMSkpO2dldCBjb250ZW50VGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbnRlbnRUYWJzQXV0b0hpZGUoUil7dGhpcy4jdz1SfSNrPShidCh0aGlzLHdlKSxidCh0aGlzLGdlLDApKTtnZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNrfXNldCBjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkKFIpe3RoaXMuI2s9Un0jUz0oYnQodGhpcyxiZSksYnQodGhpcyx5dCwhMSkpO2dldCBhY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jU31zZXQgYWN0aXZpdHlMb2dWaXNpYmxlKFIpe3RoaXMuI1M9Un0jTT0oYnQodGhpcyx3dCksYnQodGhpcyx6YSwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jTX1zZXQgYWN0aXZpdHlMb2dDb3VudChSKXt0aGlzLiNNPVJ9I0M9KGJ0KHRoaXMsUGEpLGJ0KHRoaXMsRWUsW10pKTtnZXQgbWFpbmNvbnRlbnRUYWJzKCl7cmV0dXJuIHRoaXMuI0N9c2V0IG1haW5jb250ZW50VGFicyhSKXt0aGlzLiNDPVJ9I3o9KGJ0KHRoaXMsamUpLGJ0KHRoaXMscmEsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jen1zZXQgbWFpbmNvbnRlbnRTZWxlY3RlZFRhYihSKXt0aGlzLiN6PVJ9I189KGJ0KHRoaXMscGEpLGJ0KHRoaXMsZmEsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNMZWZ0KCl7cmV0dXJuIHRoaXMuI199c2V0IGNvbnRlbnRUYWJBY3Rpb25zTGVmdChSKXt0aGlzLiNfPVJ9I1Q9KGJ0KHRoaXMsQ24pLGJ0KHRoaXMsQWUsW10pKTtnZXQgY29udGVudFRhYkFjdGlvbnNSaWdodCgpe3JldHVybiB0aGlzLiNUfXNldCBjb250ZW50VGFiQWN0aW9uc1JpZ2h0KFIpe3RoaXMuI1Q9Un0jTD0oYnQodGhpcyxDZSksYnQodGhpcyxEcix2b2lkIDApKTtnZXQgYXBwYmFyKCl7cmV0dXJuIHRoaXMuI0x9c2V0IGFwcGJhcihSKXt0aGlzLiNMPVJ9I0Q9KGJ0KHRoaXMsRXMpLGJ0KHRoaXMsa2Usdm9pZCAwKSk7Z2V0IG1haW5tZW51KCl7cmV0dXJuIHRoaXMuI0R9c2V0IG1haW5tZW51KFIpe3RoaXMuI0Q9Un0jJD0oYnQodGhpcyxoZSksYnQodGhpcyxldCx2b2lkIDApKTtnZXQgc2Vjb25kYXJ5bWVudSgpe3JldHVybiB0aGlzLiMkfXNldCBzZWNvbmRhcnltZW51KFIpe3RoaXMuIyQ9Un0jQT0oYnQodGhpcyxQdCksYnQodGhpcyxLaSx2b2lkIDApKTtnZXQgbWFpbmNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jQX1zZXQgbWFpbmNvbnRlbnQoUil7dGhpcy4jQT1SfSNFPShidCh0aGlzLERvKSxidCh0aGlzLHFjLHZvaWQgMCkpO2dldCBhY3Rpdml0eWxvZ0VsZW1lbnQoKXtyZXR1cm4gdGhpcy4jRX1zZXQgYWN0aXZpdHlsb2dFbGVtZW50KFIpe3RoaXMuI0U9Un0jST0oYnQodGhpcyxEZCksYnQodGhpcyxfZix2b2lkIDApKTtnZXQgYm90dG9tYmFyRWxlbWVudCgpe3JldHVybiB0aGlzLiNJfXNldCBib3R0b21iYXJFbGVtZW50KFIpe3RoaXMuI0k9Un0jUD0oYnQodGhpcyxlayksYnQodGhpcyxyaywhMCkpO2dldCBib3R0b21iYXJWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI1B9c2V0IGJvdHRvbWJhclZpc2libGUoUil7dGhpcy4jUD1SfSNOPShidCh0aGlzLGFrKSxidCh0aGlzLHNrLHZvaWQgMCkpO2dldCBjdXJyZW50Vmlldygpe3JldHVybiB0aGlzLiNOfXNldCBjdXJyZW50VmlldyhSKXt0aGlzLiNOPVJ9dmlld1JlZ2lzdHJ5PShidCh0aGlzLG5rKSxuZXcgRHJlKTtyb3V0ZXJDbGVhbnVwPW51bGw7c2VhcmNoQ2FsbGJhY2s9bnVsbDtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctdGVydGlhcnkpOwogICAgICB9CiAgICAgIC5tYWluZ3JpZCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHggLSAyNHB4KTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIC8qIGdyaWQtdGVtcGxhdGUtY29sdW1ucyBzZXQgZHluYW1pY2FsbHkgaW4gdGVtcGxhdGUgKi8KICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgMC4zcyBlYXNlLCBoZWlnaHQgMC4zcyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIDpob3N0KFtib3R0b21iYXItaGlkZGVuXSkgLm1haW5ncmlkIHsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHgpOwogICAgICB9CgogICAgICBkZWVzLWFwcHVpLWJvdHRvbWJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IDQ7CiAgICAgIH0KCiAgICAgIC8qIFotaW5kZXggbGF5ZXJpbmcgZm9yIHByb3BlciBzdGFja2luZyAqLwogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLW1haW5tZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktbWFpbmNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktYWN0aXZpdHlsb2cgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktYWN0aXZpdHlsb2cuaGlkZGVuIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy52aXNpYmxlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgICAgfQoKICAgICAgLyogVmlldyBjb250YWluZXIgZm9yIGR5bmFtaWNhbGx5IGxvYWRlZCB2aWV3cyAqLwogICAgICAudmlldy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudmlldy1jb250YWluZXI6ZW1wdHkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1hcHB1aS1hcHBiYXIKICAgICAgICAubWVudUl0ZW1zPSR7dGhpcy5hcHBiYXJNZW51SXRlbXN9CiAgICAgICAgLmJyZWFkY3J1bWJzPSR7dGhpcy5hcHBiYXJCcmVhZGNydW1ic30KICAgICAgICAuYnJlYWRjcnVtYlNlcGFyYXRvcj0ke3RoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcn0KICAgICAgICAuc2hvd1dpbmRvd0NvbnRyb2xzPSR7dGhpcy5hcHBiYXJTaG93V2luZG93Q29udHJvbHN9CiAgICAgICAgLnVzZXI9JHt0aGlzLmFwcGJhclVzZXJ9CiAgICAgICAgLnByb2ZpbGVNZW51SXRlbXM9JHt0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXN9CiAgICAgICAgLnNob3dTZWFyY2g9JHt0aGlzLmFwcGJhclNob3dTZWFyY2h9CiAgICAgICAgLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT0keyEwfQogICAgICAgIC5hY3Rpdml0eUxvZ0NvdW50PSR7dGhpcy5hY3Rpdml0eUxvZ0NvdW50fQogICAgICAgIC5hY3Rpdml0eUxvZ0FjdGl2ZT0ke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlfQogICAgICAgIEBtZW51LXNlbGVjdD0ke1I9PnRoaXMuaGFuZGxlQXBwYmFyTWVudVNlbGVjdChSKX0KICAgICAgICBAYnJlYWRjcnVtYi1uYXZpZ2F0ZT0ke1I9PnRoaXMuaGFuZGxlQXBwYmFyQnJlYWRjcnVtYk5hdmlnYXRlKFIpfQogICAgICAgIEBzZWFyY2gtY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBcHBiYXJTZWFyY2hDbGljaygpfQogICAgICAgIEBzZWFyY2gtcXVlcnk9JHtSPT50aGlzLmhhbmRsZUFwcGJhclNlYXJjaFF1ZXJ5KFIpfQogICAgICAgIEB1c2VyLW1lbnUtb3Blbj0keygpPT50aGlzLmhhbmRsZUFwcGJhclVzZXJNZW51T3BlbigpfQogICAgICAgIEBwcm9maWxlLW1lbnUtc2VsZWN0PSR7Uj0+dGhpcy5oYW5kbGVBcHBiYXJQcm9maWxlTWVudVNlbGVjdChSKX0KICAgICAgICBAYWN0aXZpdHktdG9nZ2xlPSR7KCk9PnRoaXMudG9nZ2xlQWN0aXZpdHlMb2coKX0KICAgICAgPjwvZGVlcy1hcHB1aS1hcHBiYXI+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5ncmlkIiBzdHlsZT0iZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gMWZyICR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU/IjI4MHB4IjoiMHB4In07Ij4KICAgICAgICAke3RoaXMubWFpbm1lbnVWaXNpYmxlP3dgCiAgICAgICAgICA8ZGVlcy1hcHB1aS1tYWlubWVudQogICAgICAgICAgICAubG9nb0ljb249JHt0aGlzLm1haW5tZW51TG9nb0ljb259CiAgICAgICAgICAgIC5sb2dvVGV4dD0ke3RoaXMubWFpbm1lbnVMb2dvVGV4dH0KICAgICAgICAgICAgLm1lbnVHcm91cHM9JHt0aGlzLm1haW5tZW51R3JvdXBzfQogICAgICAgICAgICAuYm90dG9tVGFicz0ke3RoaXMubWFpbm1lbnVCb3R0b21UYWJzfQogICAgICAgICAgICAudGFicz0ke3RoaXMubWFpbm1lbnVUYWJzfQogICAgICAgICAgICAuc2VsZWN0ZWRUYWI9JHt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5jb2xsYXBzZWQ9JHt0aGlzLm1haW5tZW51Q29sbGFwc2VkfQogICAgICAgICAgICBAdGFiLXNlbGVjdD0ke1I9PnRoaXMuaGFuZGxlTWFpbm1lbnVUYWJTZWxlY3QoUil9CiAgICAgICAgICAgIEBjb2xsYXBzZS1jaGFuZ2U9JHtSPT50aGlzLmhhbmRsZU1haW5tZW51Q29sbGFwc2VDaGFuZ2UoUil9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLW1haW5tZW51PgogICAgICAgIGA6IiJ9CiAgICAgICAgJHt0aGlzLnNlY29uZGFyeW1lbnVWaXNpYmxlP3dgCiAgICAgICAgICA8ZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51CiAgICAgICAgICAgIC5oZWFkaW5nPSR7dGhpcy5zZWNvbmRhcnltZW51SGVhZGluZ30KICAgICAgICAgICAgLmdyb3Vwcz0ke3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwc30KICAgICAgICAgICAgLnNlbGVjdGVkSXRlbT0ke3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbX0KICAgICAgICAgICAgLmNvbGxhcHNlZD0ke3RoaXMuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZH0KICAgICAgICAgICAgQGl0ZW0tc2VsZWN0PSR7Uj0+dGhpcy5oYW5kbGVTZWNvbmRhcnltZW51SXRlbVNlbGVjdChSKX0KICAgICAgICAgICAgQGNvbGxhcHNlLWNoYW5nZT0ke1I9PnRoaXMuaGFuZGxlU2Vjb25kYXJ5bWVudUNvbGxhcHNlQ2hhbmdlKFIpfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnQKICAgICAgICAgIC50YWJzPSR7dGhpcy5tYWluY29udGVudFRhYnN9CiAgICAgICAgICAuc2VsZWN0ZWRUYWI9JHt0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWJ9CiAgICAgICAgICAuc2hvd1RhYnM9JHt0aGlzLm1haW5jb250ZW50VGFic1Zpc2libGV9CiAgICAgICAgICAudGFic0F1dG9IaWRlPSR7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlfQogICAgICAgICAgLnRhYnNBdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMuY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZH0KICAgICAgICAgIC50YWJBY3Rpb25zTGVmdD0ke3RoaXMuY29udGVudFRhYkFjdGlvbnNMZWZ0fQogICAgICAgICAgLnRhYkFjdGlvbnNSaWdodD0ke3RoaXMuY29udGVudFRhYkFjdGlvbnNSaWdodH0KICAgICAgICAgIEB0YWItc2VsZWN0PSR7Uj0+dGhpcy5oYW5kbGVDb250ZW50VGFiU2VsZWN0KFIpfQogICAgICAgICAgQHRhYi1jbG9zZT0ke1I9PnRoaXMuaGFuZGxlQ29udGVudFRhYkNsb3NlKFIpfQogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXctY29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgIDxzbG90IG5hbWU9Im1haW5jb250ZW50Ij48L3Nsb3Q+CiAgICAgICAgPC9kZWVzLWFwcHVpLW1haW5jb250ZW50PgogICAgICAgIDxkZWVzLWFwcHVpLWFjdGl2aXR5bG9nCiAgICAgICAgICBjbGFzcz0iJHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT8idmlzaWJsZSI6ImhpZGRlbiJ9IgogICAgICAgID48L2RlZXMtYXBwdWktYWN0aXZpdHlsb2c+CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMuYm90dG9tYmFyVmlzaWJsZT93YAogICAgICAgIDxkZWVzLWFwcHVpLWJvdHRvbWJhcj48L2RlZXMtYXBwdWktYm90dG9tYmFyPgogICAgICBgOiIifQogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmFwcGJhcj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1hcHBiYXIiKSx0aGlzLm1haW5tZW51PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLW1haW5tZW51IiksdGhpcy5zZWNvbmRhcnltZW51PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUiKSx0aGlzLm1haW5jb250ZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLW1haW5jb250ZW50IiksdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKSx0aGlzLmJvdHRvbWJhckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktYm90dG9tYmFyIiksdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQmJnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmVudHJpZXMkLnN1YnNjcmliZShSPT57dGhpcy5hY3Rpdml0eUxvZ0NvdW50PVIubGVuZ3RofSksdGhpcy52aWV3UmVnaXN0cnkuc2V0QXBwdWlSZWYodGhpcyl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucm91dGVyQ2xlYW51cCYmKHRoaXMucm91dGVyQ2xlYW51cCgpLHRoaXMucm91dGVyQ2xlYW51cD1udWxsKSx0aGlzLnZpZXdMaWZlY3ljbGUkLmNvbXBsZXRlKCksdGhpcy52aWV3Q2hhbmdlZCQuY29tcGxldGUoKX1zZXRBcHBCYXJNZW51cyhSKXt0aGlzLmFwcGJhck1lbnVJdGVtcz1bLi4uUl19dXBkYXRlQXBwQmFyTWVudShSLEkpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPXRoaXMuYXBwYmFyTWVudUl0ZW1zLm1hcCh0ZT0+Im5hbWUiaW4gdGUmJnRlLm5hbWU9PT1SP3suLi50ZSwuLi5JfTp0ZSl9c2V0QnJlYWRjcnVtYnMoUil7QXJyYXkuaXNBcnJheShSKT90aGlzLmFwcGJhckJyZWFkY3J1bWJzPVIuam9pbih0aGlzLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IpOnRoaXMuYXBwYmFyQnJlYWRjcnVtYnM9Un1zZXRVc2VyKFIpe3RoaXMuYXBwYmFyVXNlcj1SfXNldFByb2ZpbGVNZW51SXRlbXMoUil7dGhpcy5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPVsuLi5SXX1zZXRTZWFyY2hWaXNpYmxlKFIpe3RoaXMuYXBwYmFyU2hvd1NlYXJjaD1SfXNldFdpbmRvd0NvbnRyb2xzVmlzaWJsZShSKXt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9scz1SfW9uU2VhcmNoKFIpe3RoaXMuc2VhcmNoQ2FsbGJhY2s9Un1zZXRNYWluTWVudShSKXtSLmxvZ29JY29uIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUxvZ29JY29uPVIubG9nb0ljb24pLFIubG9nb1RleHQhPT12b2lkIDAmJih0aGlzLm1haW5tZW51TG9nb1RleHQ9Ui5sb2dvVGV4dCksUi5ncm91cHMhPT12b2lkIDAmJih0aGlzLm1haW5tZW51R3JvdXBzPVsuLi5SLmdyb3Vwc10pLFIuYm90dG9tVGFicyE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVCb3R0b21UYWJzPVsuLi5SLmJvdHRvbVRhYnNdKX11cGRhdGVNYWluTWVudUdyb3VwKFIsSSl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcCh0ZT0+dGUubmFtZT09PVI/ey4uLnRlLC4uLkl9OnRlKX1hZGRNYWluTWVudUl0ZW0oUixJKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKHRlPT50ZS5uYW1lPT09Uj97Li4udGUsaXRlbXM6Wy4uLnRlLml0ZW1zfHxbXSxJXX06dGUpfXJlbW92ZU1haW5NZW51SXRlbShSLEkpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAodGU9PnRlLm5hbWU9PT1SP3suLi50ZSxpdGVtczoodGUuaXRlbXN8fFtdKS5maWx0ZXIoUGU9PlBlLmtleSE9PUkpfTp0ZSl9c2V0TWFpbk1lbnVTZWxlY3Rpb24oUil7Zm9yKGxldCB0ZSBvZiB0aGlzLm1haW5tZW51R3JvdXBzKXtsZXQgUGU9dGUuaXRlbXM/LmZpbmQoUmU9PlJlLmtleT09PVIpO2lmKFBlKXt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9UGU7cmV0dXJufX1sZXQgST10aGlzLm1haW5tZW51Qm90dG9tVGFicy5maW5kKHRlPT50ZS5rZXk9PT1SKTtJJiYodGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPUkpfXNldE1haW5NZW51Q29sbGFwc2VkKFIpe3RoaXMubWFpbm1lbnVDb2xsYXBzZWQ9Un1zZXRNYWluTWVudVZpc2libGUoUil7dGhpcy5tYWlubWVudVZpc2libGU9Un1zZXRTZWNvbmRhcnlNZW51Q29sbGFwc2VkKFIpe3RoaXMuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZD1SfXNldFNlY29uZGFyeU1lbnVWaXNpYmxlKFIpe3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU9Un1zZXRDb250ZW50VGFic1Zpc2libGUoUil7dGhpcy5tYWluY29udGVudFRhYnNWaXNpYmxlPVJ9c2V0Q29udGVudFRhYnNBdXRvSGlkZShSLEk9MCl7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlPVIsdGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkPUl9c2V0TWFpbk1lbnVCYWRnZShSLEkpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAodGU9Pih7Li4udGUsaXRlbXM6KHRlLml0ZW1zfHxbXSkubWFwKFBlPT5QZS5rZXk9PT1SP3suLi5QZSxiYWRnZTpJfTpQZSl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKHRlPT50ZS5rZXk9PT1SP3suLi50ZSxiYWRnZTpJfTp0ZSl9Y2xlYXJNYWluTWVudUJhZGdlKFIpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoST0+KHsuLi5JLGl0ZW1zOihJLml0ZW1zfHxbXSkubWFwKHRlPT57aWYodGUua2V5PT09Uil7bGV0e2JhZGdlOlBlLC4uLlJlfT10ZTtyZXR1cm4gUmV9cmV0dXJuIHRlfSl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKEk9PntpZihJLmtleT09PVIpe2xldHtiYWRnZTp0ZSwuLi5QZX09STtyZXR1cm4gUGV9cmV0dXJuIEl9KX1zZXRTZWNvbmRhcnlNZW51KFIpe1IuaGVhZGluZyE9PXZvaWQgMCYmKHRoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9Ui5oZWFkaW5nKSx0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9Wy4uLlIuZ3JvdXBzXX11cGRhdGVTZWNvbmRhcnlNZW51R3JvdXAoUixJKXt0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzLm1hcCh0ZT0+dGUubmFtZT09PVI/ey4uLnRlLC4uLkl9OnRlKX1hZGRTZWNvbmRhcnlNZW51SXRlbShSLEkpe3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz10aGlzLnNlY29uZGFyeW1lbnVHcm91cHMubWFwKHRlPT50ZS5uYW1lPT09Uj97Li4udGUsaXRlbXM6Wy4uLnRlLml0ZW1zLEldfTp0ZSl9c2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbihSKXtmb3IobGV0IEkgb2YgdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzKXtsZXQgdGU9SS5pdGVtcy5maW5kKFBlPT4ia2V5ImluIFBlJiZQZS5rZXk9PT1SKTtpZih0ZSYmKCEoInR5cGUiaW4gdGUpfHx0ZS50eXBlPT09InRhYiJ8fHRlLnR5cGU9PT12b2lkIDApKXt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09dGU7cmV0dXJufX19Y2xlYXJTZWNvbmRhcnlNZW51KCl7dGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz0iIix0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9W10sdGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPXZvaWQgMH1zZXRDb250ZW50VGFicyhSKXt0aGlzLm1haW5jb250ZW50VGFicz1bLi4uUl0sUi5sZW5ndGg+MCYmIXRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYiYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1SWzBdKX1hZGRDb250ZW50VGFiKFIpe3RoaXMubWFpbmNvbnRlbnRUYWJzPVsuLi50aGlzLm1haW5jb250ZW50VGFicyxSXX1yZW1vdmVDb250ZW50VGFiKFIpe3RoaXMubWFpbmNvbnRlbnRUYWJzPXRoaXMubWFpbmNvbnRlbnRUYWJzLmZpbHRlcihJPT5JLmtleSE9PVIpLHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj8ua2V5PT09UiYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj10aGlzLm1haW5jb250ZW50VGFic1swXSl9c2VsZWN0Q29udGVudFRhYihSKXtsZXQgST10aGlzLm1haW5jb250ZW50VGFicy5maW5kKHRlPT50ZS5rZXk9PT1SKTtJJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPUkpfWdldFNlbGVjdGVkQ29udGVudFRhYigpe3JldHVybiB0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWJ9c2V0Q29udGVudFRhYkFjdGlvbnNMZWZ0KFIpe3RoaXMuY29udGVudFRhYkFjdGlvbnNMZWZ0PVsuLi5SXX1zZXRDb250ZW50VGFiQWN0aW9uc1JpZ2h0KFIpe3RoaXMuY29udGVudFRhYkFjdGlvbnNSaWdodD1bLi4uUl19Z2V0IGFjdGl2aXR5TG9nKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50P3thZGQ6aShSPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGQoUiksImFkZCIpLGFkZE1hbnk6aShSPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGRNYW55KFIpLCJhZGRNYW55IiksY2xlYXI6aSgoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuY2xlYXIoKSwiY2xlYXIiKSxnZXRFbnRyaWVzOmkoKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmdldEVudHJpZXMoKSwiZ2V0RW50cmllcyIpLGZpbHRlcjppKFI9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmZpbHRlcihSKSwiZmlsdGVyIiksc2VhcmNoOmkoUj0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuc2VhcmNoKFIpLCJzZWFyY2giKX06e2FkZDppKFI9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGQoUikpfSwiYWRkIiksYWRkTWFueTppKFI9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGRNYW55KFIpKX0sImFkZE1hbnkiKSxjbGVhcjppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uY2xlYXIoKSl9LCJjbGVhciIpLGdldEVudHJpZXM6aSgoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmdldEVudHJpZXMoKXx8W10sImdldEVudHJpZXMiKSxmaWx0ZXI6aShSPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uZmlsdGVyKFIpfHxbXSwiZmlsdGVyIiksc2VhcmNoOmkoUj0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LnNlYXJjaChSKXx8W10sInNlYXJjaCIpfX1zZXRBY3Rpdml0eUxvZ1Zpc2libGUoUil7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU9Un10b2dnbGVBY3Rpdml0eUxvZygpe3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPSF0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZX1nZXRBY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9Z2V0IGJvdHRvbUJhcigpe3JldHVybiB0aGlzLmJvdHRvbWJhckVsZW1lbnQ/e2FkZFdpZGdldDppKFI9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5hZGRXaWRnZXQoUiksImFkZFdpZGdldCIpLHVwZGF0ZVdpZGdldDppKChSLEkpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQudXBkYXRlV2lkZ2V0KFIsSSksInVwZGF0ZVdpZGdldCIpLHJlbW92ZVdpZGdldDppKFI9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5yZW1vdmVXaWRnZXQoUiksInJlbW92ZVdpZGdldCIpLGdldFdpZGdldDppKFI9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5nZXRXaWRnZXQoUiksImdldFdpZGdldCIpLGNsZWFyV2lkZ2V0czppKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuY2xlYXJXaWRnZXRzKCksImNsZWFyV2lkZ2V0cyIpLGFkZEFjdGlvbjppKFI9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5hZGRBY3Rpb24oUiksImFkZEFjdGlvbiIpLHJlbW92ZUFjdGlvbjppKFI9PnRoaXMuYm90dG9tYmFyRWxlbWVudC5yZW1vdmVBY3Rpb24oUiksInJlbW92ZUFjdGlvbiIpLGNsZWFyQWN0aW9uczppKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuY2xlYXJBY3Rpb25zKCksImNsZWFyQWN0aW9ucyIpfTp7YWRkV2lkZ2V0OmkoUj0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5hZGRXaWRnZXQoUikpfSwiYWRkV2lkZ2V0IiksdXBkYXRlV2lkZ2V0OmkoKFIsSSk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8udXBkYXRlV2lkZ2V0KFIsSSkpfSwidXBkYXRlV2lkZ2V0IikscmVtb3ZlV2lkZ2V0OmkoUj0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5yZW1vdmVXaWRnZXQoUikpfSwicmVtb3ZlV2lkZ2V0IiksZ2V0V2lkZ2V0OmkoUj0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5nZXRXaWRnZXQoUiksImdldFdpZGdldCIpLGNsZWFyV2lkZ2V0czppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyV2lkZ2V0cygpKX0sImNsZWFyV2lkZ2V0cyIpLGFkZEFjdGlvbjppKFI9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkQWN0aW9uKFIpKX0sImFkZEFjdGlvbiIpLHJlbW92ZUFjdGlvbjppKFI9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8ucmVtb3ZlQWN0aW9uKFIpKX0sInJlbW92ZUFjdGlvbiIpLGNsZWFyQWN0aW9uczppKCgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyQWN0aW9ucygpKX0sImNsZWFyQWN0aW9ucyIpfX1zZXRCb3R0b21CYXJWaXNpYmxlKFIpe3RoaXMuYm90dG9tYmFyVmlzaWJsZT1SLFI/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImJvdHRvbWJhci1oaWRkZW4iKTp0aGlzLnNldEF0dHJpYnV0ZSgiYm90dG9tYmFyLWhpZGRlbiIsIiIpfWdldEJvdHRvbUJhclZpc2libGUoKXtyZXR1cm4gdGhpcy5ib3R0b21iYXJWaXNpYmxlfWFzeW5jIG5hdmlnYXRlVG9WaWV3KFIsSSl7bGV0IHRlPXRoaXMudmlld1JlZ2lzdHJ5LmdldChSKTtpZighdGUpcmV0dXJuIGNvbnNvbGUud2FybihgQ2Fubm90IG5hdmlnYXRlIHRvIHVua25vd24gdmlldzogJHtSfWApLCExO2xldCBQZT1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5jYW5MZWF2ZUN1cnJlbnRWaWV3KCk7aWYoUGUhPT0hMClpZih0eXBlb2YgUGU9PSJzdHJpbmciKXtpZighd2luZG93LmNvbmZpcm0oUGUpKXJldHVybiExfWVsc2UgcmV0dXJuITE7dGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJsb2FkaW5nIix2aWV3SWQ6Un0pO3RyeXthd2FpdCB0aGlzLmxvYWRWaWV3KHRlLEkpO2xldCBSZT10ZS5yb3V0ZXx8UjtpZihJKWZvcihsZXRbcHQsZnRdb2YgT2JqZWN0LmVudHJpZXMoSSkpUmU9UmUucmVwbGFjZShgOiR7cHR9YCxmdCk7bGV0IHR0PWAjJHtSZX1gO3JldHVybiB3aW5kb3cubG9jYXRpb24uaGFzaCE9PXR0JiZ3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe3ZpZXdJZDpSfSwiIix0dCksITB9Y2F0Y2goUmUpe3JldHVybiB0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImxvYWRFcnJvciIsdmlld0lkOlIsZXJyb3I6UmV9KSwhMX19Z2V0Q3VycmVudFZpZXcoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld31nZXRWaWV3UmVnaXN0cnkoKXtyZXR1cm4gdGhpcy52aWV3UmVnaXN0cnl9Y29uZmlndXJlKFIpe1Iudmlld3MmJih0aGlzLnZpZXdSZWdpc3RyeS5jbGVhcigpLHRoaXMudmlld1JlZ2lzdHJ5LnJlZ2lzdGVyQWxsKFIudmlld3MpKSxSLmJyYW5kaW5nJiYodGhpcy5tYWlubWVudUxvZ29JY29uPVIuYnJhbmRpbmcubG9nb0ljb258fCIiLHRoaXMubWFpbm1lbnVMb2dvVGV4dD1SLmJyYW5kaW5nLmxvZ29UZXh0fHwiIiksUi5hcHBCYXImJih0aGlzLmFwcGJhck1lbnVJdGVtcz1SLmFwcEJhci5tZW51SXRlbXN8fFtdLHRoaXMuYXBwYmFyQnJlYWRjcnVtYnM9Ui5hcHBCYXIuYnJlYWRjcnVtYnN8fCIiLHRoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcj1SLmFwcEJhci5icmVhZGNydW1iU2VwYXJhdG9yfHwiID4gIix0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9scz1SLmFwcEJhci5zaG93V2luZG93Q29udHJvbHM/PyEwLHRoaXMuYXBwYmFyU2hvd1NlYXJjaD1SLmFwcEJhci5zaG93U2VhcmNoPz8hMSx0aGlzLmFwcGJhclVzZXI9Ui5hcHBCYXIudXNlcix0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXM9Ui5hcHBCYXIucHJvZmlsZU1lbnVJdGVtc3x8W10pLFIubWFpbk1lbnUmJihSLm1haW5NZW51LnNlY3Rpb25zP3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5idWlsZE1haW5NZW51RnJvbVNlY3Rpb25zKFIpOlIubWFpbk1lbnUuZ3JvdXBzJiYodGhpcy5tYWlubWVudUdyb3Vwcz1SLm1haW5NZW51Lmdyb3VwcyksUi5tYWluTWVudS5sb2dvSWNvbiYmKHRoaXMubWFpbm1lbnVMb2dvSWNvbj1SLm1haW5NZW51LmxvZ29JY29uKSxSLm1haW5NZW51LmxvZ29UZXh0JiYodGhpcy5tYWlubWVudUxvZ29UZXh0PVIubWFpbk1lbnUubG9nb1RleHQpLFIubWFpbk1lbnUuYm90dG9tVGFicz90aGlzLm1haW5tZW51Qm90dG9tVGFicz1SLm1haW5NZW51LmJvdHRvbVRhYnM6Ui5tYWluTWVudS5ib3R0b21JdGVtcyYmKHRoaXMubWFpbm1lbnVCb3R0b21UYWJzPXRoaXMuYnVpbGRCb3R0b21UYWJzRnJvbUl0ZW1zKFIubWFpbk1lbnUuYm90dG9tSXRlbXMpKSksUi5ib3R0b21CYXImJih0aGlzLnNldEJvdHRvbUJhclZpc2libGUoUi5ib3R0b21CYXIudmlzaWJsZT8/ITApLFIuYm90dG9tQmFyLndpZGdldHMmJlIuYm90dG9tQmFyLndpZGdldHMuZm9yRWFjaChJPT57dGhpcy5ib3R0b21CYXIuYWRkV2lkZ2V0KEkpfSksUi5ib3R0b21CYXIuYWN0aW9ucyYmUi5ib3R0b21CYXIuYWN0aW9ucy5mb3JFYWNoKEk9Pnt0aGlzLmJvdHRvbUJhci5hZGRBY3Rpb24oSSl9KSksdGhpcy5zZXR1cFJvdXRlckludGVncmF0aW9uKFIpLFIub25WaWV3Q2hhbmdlJiZ0aGlzLnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUoST0+e1Iub25WaWV3Q2hhbmdlKEkudmlld0lkLEkudmlldyl9KSxSLm9uU2VhcmNoJiYodGhpcy5zZWFyY2hDYWxsYmFjaz1SLm9uU2VhcmNoKSxSLmRlZmF1bHRWaWV3JiZ0aGlzLm5hdmlnYXRlVG9WaWV3KFIuZGVmYXVsdFZpZXcpfXNldHVwUm91dGVySW50ZWdyYXRpb24oUil7bGV0IEk9aSgoKT0+e2xldCBQZT13aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKTtpZighUGUpcmV0dXJuO2xldCBSZT10aGlzLnZpZXdSZWdpc3RyeS5maW5kQnlSb3V0ZShQZSk7UmUmJnRoaXMubmF2aWdhdGVUb1ZpZXcoUmUudmlldy5pZCxSZS5wYXJhbXMpfSwiaGFuZGxlSGFzaENoYW5nZSIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixJKSx0aGlzLnJvdXRlckNsZWFudXA9KCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsSSl9O2xldCB0ZT13aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKTtpZih0ZSl7bGV0IFBlPXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKHRlKTtQZSYmc2V0VGltZW91dCgoKT0+dGhpcy5uYXZpZ2F0ZVRvVmlldyhQZS52aWV3LmlkLFBlLnBhcmFtcyksMCl9fWJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoUil7cmV0dXJuIFIubWFpbk1lbnU/LnNlY3Rpb25zP1IubWFpbk1lbnUuc2VjdGlvbnMubWFwKEk9Pih7bmFtZTpJLm5hbWV8fCIiLGl0ZW1zOkkudmlld3MubWFwKHRlPT57bGV0IFBlPXRoaXMudmlld1JlZ2lzdHJ5LmdldCh0ZSk7cmV0dXJuIFBlP3trZXk6UGUuaWQsaWNvbk5hbWU6UGUuaWNvbk5hbWUsYWN0aW9uOmkoKCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcodGUpLCJhY3Rpb24iKSxiYWRnZTpQZS5iYWRnZX06KGNvbnNvbGUud2FybihgVmlldyAiJHt0ZX0iIG5vdCBmb3VuZCBpbiByZWdpc3RyeWApLG51bGwpfSkuZmlsdGVyKEJvb2xlYW4pfSkpOltdfWJ1aWxkQm90dG9tVGFic0Zyb21JdGVtcyhSKXtyZXR1cm4gUi5tYXAoST0+e2xldCB0ZT10aGlzLnZpZXdSZWdpc3RyeS5nZXQoSSk7cmV0dXJuIHRlP3trZXk6dGUuaWQsaWNvbk5hbWU6dGUuaWNvbk5hbWUsYWN0aW9uOmkoKCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcoSSksImFjdGlvbiIpfTooY29uc29sZS53YXJuKGBWaWV3ICIke0l9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsKX0pLmZpbHRlcihCb29sZWFuKX1hc3luYyBsb2FkVmlldyhSLEkpe2xldCB0ZT10aGlzLmN1cnJlbnRWaWV3O3RoaXMuY3VycmVudFZpZXc9UjtsZXQgUGU9dGhpcy5tYWluY29udGVudD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIil8fHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIik7aWYoUGUpe2xldCB0dD1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5hY3RpdmF0ZVZpZXcoUi5pZCxQZSxJKTt0dCYmdGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJhY3RpdmF0ZWQiLHZpZXdJZDpSLmlkLGVsZW1lbnQ6dHQscGFyYW1zOkl9KX1SLnNlY29uZGFyeU1lbnUmJih0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9Ui5zZWNvbmRhcnlNZW51LHRoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9Ui5uYW1lKSxSLmNvbnRlbnRUYWJzJiYodGhpcy5tYWluY29udGVudFRhYnM9Ui5jb250ZW50VGFicyksdGhpcy5zZXRNYWluTWVudVNlbGVjdGlvbihSLmlkKTtsZXQgUmU9e3ZpZXdJZDpSLmlkLHZpZXc6UixwcmV2aW91c1ZpZXc6dGUscGFyYW1zOkl9O3RoaXMudmlld0NoYW5nZWQkLm5leHQoUmUpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctY2hhbmdlIix7ZGV0YWlsOlJlLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyTWVudVNlbGVjdChSKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItbWVudS1zZWxlY3QiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUoUil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLWJyZWFkY3J1bWItbmF2aWdhdGUiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1zZWFyY2gtY2xpY2siLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclNlYXJjaFF1ZXJ5KFIpe3RoaXMuc2VhcmNoQ2FsbGJhY2smJnRoaXMuc2VhcmNoQ2FsbGJhY2soUi5kZXRhaWwucXVlcnkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1xdWVyeSIse2RldGFpbDpSLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclVzZXJNZW51T3Blbigpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci11c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyUHJvZmlsZU1lbnVTZWxlY3QoUil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXByb2ZpbGUtbWVudS1zZWxlY3QiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNYWlubWVudVRhYlNlbGVjdChSKXt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9Ui5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1haW5tZW51LXRhYi1zZWxlY3QiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWNvbmRhcnltZW51SXRlbVNlbGVjdChSKXt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09Ui5kZXRhaWwuaXRlbSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWNvbmRhcnltZW51LWl0ZW0tc2VsZWN0Iix7ZGV0YWlsOlIuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShSKXt0aGlzLm1haW5tZW51Q29sbGFwc2VkPVIuZGV0YWlsLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtYWlubWVudS1jb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoUil7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkPVIuZGV0YWlsLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWNvbmRhcnltZW51LWNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDpSLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoUil7dGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPVIuZGV0YWlsLnRhYix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LXRhYi1zZWxlY3QiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDb250ZW50VGFiQ2xvc2UoUil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC10YWItY2xvc2UiLHtkZXRhaWw6Ui5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zdGF0aWN7YnQoYSxyKX19O3JldHVybiBvaz1hfSkoKX0pO3ZhciBpUXI9dSgoKT0+e2FRcigpO2w3dCgpfSk7dmFyIHNRcj11KCgpPT57cDd0KCl9KTt2YXIgblFyPXUoKCk9PntjN3QoKX0pO3ZhciBvUXI9dSgoKT0+e2Q3dCgpfSk7dmFyIGxRcj11KCgpPT57QzZ0KCl9KTt2YXIgY1FyPXUoKCk9Pnt1N3QoKX0pO3ZhciBENmUscmcsZFFyLHVRcj11KCgpPT57dm4oKTtPbygpO19zKCk7dmUoKTtuYygpO0tyKCk7bHQoKTtENmU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHJnPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxkUXI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLW1vYmlsZW5hdmlnYXRpb24iKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc01vYmlsZW5hdmlnYXRpb24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOkFycmF5fSldLHA9W2llKCldLEQ2ZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImhlYWRpbmciaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5oZWFkaW5nLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuaGVhZGluZz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksRDZlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJtZW51SXRlbXMiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5tZW51SXRlbXMsImdldCIpLHNldDppKChnLHkpPT57Zy5tZW51SXRlbXM9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLEQ2ZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vYmlsZU5hdlpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4ibW9iaWxlTmF2WkluZGV4ImluIGcsImhhcyIpLGdldDppKGc9PmcubW9iaWxlTmF2WkluZGV4LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cubW9iaWxlTmF2WkluZGV4PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSxENmUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdO3N0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9Pnt2LmNyZWF0ZUFuZFNob3coW3tuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0LWRhc2hib2FyZCIsYWN0aW9uOmkoYXN5bmMgYj0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBkYXNoYm9hcmQiKSxudWxsKSwiYWN0aW9uIil9LHtuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGFjdGlvbjppKGFzeW5jIGI9Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gcHJvZmlsZSIpLG51bGwpLCJhY3Rpb24iKX0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246aShhc3luYyBiPT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIHNldHRpbmdzIiksbnVsbCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAiLGljb25OYW1lOiJsdWNpZGU6aGVscC1jaXJjbGUiLGFjdGlvbjppKGFzeW5jIGI9Pihjb25zb2xlLmxvZygiU2hvdyBoZWxwIiksbnVsbCksImFjdGlvbiIpfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsdWNpZGU6bG9nLW91dCIsYWN0aW9uOmkoYXN5bmMgYj0+KGNvbnNvbGUubG9nKCJTaWduIG91dCIpLG51bGwpLCJhY3Rpb24iKX1dKX19Pk9wZW4gTW9iaWxlIE5hdmlnYXRpb248L2RlZXMtYnV0dG9uPgogIGAsImRlbW8iKTtzdGF0aWMgc2luZ2xldG9uUmVmO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KGIpe3JldHVybiB0aGlzLnNpbmdsZXRvblJlZnx8KHRoaXMuc2luZ2xldG9uUmVmPW5ldyB2LGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMuc2luZ2xldG9uUmVmKSxhd2FpdCB0aGlzLnNpbmdsZXRvblJlZi5pbml0KCkpLHRoaXMuc2luZ2xldG9uUmVmLm1lbnVJdGVtcz1iLGF3YWl0IHRoaXMuc2luZ2xldG9uUmVmLnJlYWR5RGVmZXJyZWQucHJvbWlzZSx0aGlzLnNpbmdsZXRvblJlZi5zaG93KCksdGhpcy5zaW5nbGV0b25SZWZ9I2U9cmcodGhpcyxvLCJNZW51Iik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhiKXt0aGlzLiNlPWJ9I3Q9KHJnKHRoaXMsbCkscmcodGhpcyxkLFtdKSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiN0fXNldCBtZW51SXRlbXMoYil7dGhpcy4jdD1ifSNyPShyZyh0aGlzLGYpLHJnKHRoaXMsaCwxZTMpKTtnZXQgbW9iaWxlTmF2WkluZGV4KCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1vYmlsZU5hdlpJbmRleChiKXt0aGlzLiNyPWJ9cmVhZHlEZWZlcnJlZD0ocmcodGhpcyxtKSxYdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpKTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9YXN5bmMgaW5pdCgpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtIcn07CiAgICAgIH0KCiAgICAgIC5tYWluIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6ICR7eC5iZFRoZW1lKCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkiLCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMyksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5tYWluLnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgbWFyZ2luOiA4cHggMTZweDsKICAgICAgfQoKICAgICAgLyogTW9iaWxlIHJlc3BvbnNpdmVuZXNzICovCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkgewogICAgICAgIC5tYWluIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwdnc7CiAgICAgICAgICB3aWR0aDogODV2dzsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIEFuaW1hdGlvbiBmb3IgbWVudSBpdGVtcyAqLwogICAgICBAa2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1haW4uc2hvdyAubWVudUl0ZW0gewogICAgICAgIGFuaW1hdGlvbjogc2xpZGVJblJpZ2h0IDAuM3MgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLWl0ZW0taW5kZXgsIDApICogMC4wNXMpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2QxZDVkYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLm1haW4gewogICAgICAgICAgLS16LWluZGV4OiAke3RoaXMubW9iaWxlTmF2WkluZGV4fTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW4iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8aDIgY2xhc3M9ImhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvaDI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5tYXAoKGIsZyk9PiJkaXZpZGVyImluIGImJmIuZGl2aWRlcj93YDxkaXYgY2xhc3M9Im1lbnVJdGVtLWRpdmlkZXIiPjwvZGl2PmA6d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ibWVudUl0ZW0iCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1pdGVtLWluZGV4OiAke2d9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5oaWRlKCksYi5hY3Rpb24odGhpcyl9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke2IuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke2IuaWNvbk5hbWV9IHNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudUl0ZW0tdGV4dCI+JHtiLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXdpbmRvd0xheWVyO2FzeW5jIHNob3coKXtsZXQgYj1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxnPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbiIpO3RoaXMud2luZG93TGF5ZXI/KGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMud2luZG93TGF5ZXIpLGF3YWl0IHRoaXMud2luZG93TGF5ZXIuc2hvdygpKToodGhpcy53aW5kb3dMYXllcj1hd2FpdCB5bi5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmhpZGUoKX0pKSx0aGlzLm1vYmlsZU5hdlpJbmRleD15ci5nZXROZXh0WkluZGV4KCkseXIucmVnaXN0ZXIodGhpcyx0aGlzLm1vYmlsZU5hdlpJbmRleCksYXdhaXQgYi5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwKSxnLmNsYXNzTGlzdC5hZGQoInNob3ciKX1hc3luYyBoaWRlKCl7bGV0IGI9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluIikuY2xhc3NMaXN0LnJlbW92ZSgic2hvdyIpLHlyLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHlyLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9c3RhdGlje3JnKGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBwUXI9dSgoKT0+e3VRcigpfSk7dmFyIGZRcj11KCgpPT57WlZyKCk7ejZ0KCk7bWpyKCk7aVFyKCk7c1FyKCk7blFyKCk7b1FyKCk7bFFyKCk7Y1FyKCk7cFFyKCl9KTt2YXIgaFFyPXUoKCk9PntnOSgpfSk7dmFyIG1RcixmN3QsZ1FyLGJRcj11KCgpPT57dmUoKTttUXI9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGY3dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZ1FyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1idXR0b24tZXhpdCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQnV0dG9uRXhpdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6TnVtYmVyfSldLG1Rcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InNpemUiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zaXplLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2Yuc2l6ZT1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksbVFyKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkZWVzLWJ1dHRvbi1leGl0PjwvZGVlcy1idXR0b24tZXhpdD4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1mN3QodGhpcyxvLDI0KTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKGQpe3RoaXMuI2U9ZH1zdHlsZXM9KGY3dCh0aGlzLGwpLFt4LmRlZmF1bHRTdHlsZXMscmVgCgogICAgYF0pO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6ICR7dGhpcy5zaXplfXB4OwogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuc2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0TGluZSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2Vjb25kTGluZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7Zjd0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciB4UXI9dSgoKT0+e2JRcigpfSk7dmFyIHZRcix5UXI9dSgoKT0+e3ZlKCk7dlFyPWkoKCk9PndgCiAgICA8c3R5bGU+CiAgICAgICR7cmVgCiAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+QmFzaWMgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aG91dCBsYWJlbHMgZm9yIHNpbXBsZSBncm91cGluZzwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDE8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAyPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMzwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TGFiZWxlZCBCdXR0b24gR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QnV0dG9uIGdyb3VwcyB3aXRoIGRlc2NyaXB0aXZlIGxhYmVsczwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlZpZXcgTW9kZToiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5HcmlkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MaXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DYXJkczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TXVsdGlwbGUgR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+TXVsdGlwbGUgYnV0dG9uIGdyb3VwcyB1c2VkIHRvZ2V0aGVyPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMTZweDsgZmxleC13cmFwOiB3cmFwOyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkRhdGFzZXQ6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5TeXN0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TmV0d29yazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TYWxlczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlRpbWUgUmFuZ2U6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjFIPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj4yNEg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+N0Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+MzBEPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5FeHBvcnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VmVydGljYWwgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aCB2ZXJ0aWNhbCBsYXlvdXQ8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAyNHB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgZGlyZWN0aW9uPSJ2ZXJ0aWNhbCIgbGFiZWw9Ik5hdmlnYXRpb246Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkRhc2hib2FyZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+QW5hbHl0aWNzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlcG9ydHM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2V0dGluZ3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGRpcmVjdGlvbj0idmVydGljYWwiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RWRpdCBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkRlbGV0ZSBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk1peGVkIEJ1dHRvbiBUeXBlczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRpZmZlcmVudCBidXR0b24gdHlwZXMgd2l0aGluIGdyb3VwczwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlN0YXR1czoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InN1Y2Nlc3MiPkFjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+UGVuZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGFuZ2VyIj5JbmFjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgLCJkZW1vRnVuYyIpfSk7dmFyIGg3dCwkcmUsd1FyLGtRcj11KCgpPT57dmUoKTtNcigpO3lRcigpO2x0KCk7aDd0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSwkcmU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHdRcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYnV0dG9uLWdyb3VwIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNCdXR0b25Hcm91cCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCgpXSxoN3QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4ibGFiZWwiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5sYWJlbCwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmxhYmVsPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxoN3QodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXJlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImRpcmVjdGlvbiJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLmRpcmVjdGlvbiwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmRpcmVjdGlvbj12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksaDd0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89dlFyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQnV0dG9uIl07I2U9JHJlKHRoaXMsbywiIik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKGgpe3RoaXMuI2U9aH0jdD0oJHJlKHRoaXMsbCksJHJlKHRoaXMsZCwiaG9yaXpvbnRhbCIpKTtnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRpcmVjdGlvbihoKXt0aGlzLiN0PWh9Y29uc3RydWN0b3IoKXtzdXBlcigpLCRyZSh0aGlzLGYpLFphLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwLnZlcnRpY2FsIC5sYWJlbCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKCopIHsKICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImxhYmVsIj4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljeyRyZShhLHIpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgU1FyPXUoKCk9PntrUXIoKX0pO3ZhciBNUXI9dSgoKT0+e2hRcigpO3hRcigpO1NRcigpfSk7dmFyIENRcix6UXI9dSgoKT0+e3ZlKCk7d2EoKTttN3QoKTtDUXI9aSgoKT0+e2xldCB0PXtzeXN0ZW06e2xhYmVsOiJTeXN0ZW0gVXNhZ2UgKCUpIixzZXJpZXM6W3tuYW1lOiJDUFUiLGRhdGE6W3t4Om5ldyBEYXRlKERhdGUubm93KCktM2U1KS50b0lTT1N0cmluZygpLHk6MjV9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMjRlNCkudG9JU09TdHJpbmcoKSx5OjMwfSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTE4ZTQpLnRvSVNPU3RyaW5nKCkseToyOH0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xMmU0KS50b0lTT1N0cmluZygpLHk6MzV9LHt4Om5ldyBEYXRlKERhdGUubm93KCktNmU0KS50b0lTT1N0cmluZygpLHk6MzJ9LHt4Om5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSx5OjM4fV19LHtuYW1lOiJNZW1vcnkiLGRhdGE6W3t4Om5ldyBEYXRlKERhdGUubm93KCktM2U1KS50b0lTT1N0cmluZygpLHk6NDV9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMjRlNCkudG9JU09TdHJpbmcoKSx5OjQ4fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTE4ZTQpLnRvSVNPU3RyaW5nKCkseTo0Nn0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xMmU0KS50b0lTT1N0cmluZygpLHk6NTJ9LHt4Om5ldyBEYXRlKERhdGUubm93KCktNmU0KS50b0lTT1N0cmluZygpLHk6NTB9LHt4Om5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSx5OjU1fV19XX19LGU9e3N5c3RlbTppKHI9PmAke3J9JWAsInN5c3RlbSIpfTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHI9PntsZXQgYT1yLnF1ZXJ5U2VsZWN0b3IoIiNtYWluLWNoYXJ0Iikscz1yLnF1ZXJ5U2VsZWN0b3IoIiNjb25uZWN0aW9ucy1jaGFydCIpLG4sbyxsPSJzeXN0ZW0iLGM9e3N5c3RlbTppKEI9PmAke0J9JWAsInN5c3RlbSIpLG5ldHdvcms6aShCPT5gJHtCfSBNYnBzYCwibmV0d29yayIpLHNhbGVzOmkoQj0+YCQke0IudG9Mb2NhbGVTdHJpbmcoKX1gLCJzYWxlcyIpfSxkPTEyMCoxZTMsZj0xZTMscD01ZTMsaD17Y3B1OjMwLG1lbW9yeTo1MCxkb3dubG9hZDoxNTAsdXBsb2FkOjMwLGNvbm5lY3Rpb25zOjE1MH0sbT1pKChCLEMsej1wKT0+e2xldCBBPVtdLCQ9RGF0ZS5ub3coKSxGPU1hdGguZmxvb3IoZC96KTtmb3IobGV0IFk9RjtZPj0wO1ktLSl7bGV0IEc9bmV3IERhdGUoJC1ZKnopLnRvSVNPU3RyaW5nKCksWj1CKyhNYXRoLnJhbmRvbSgpLS41KSpDO0EucHVzaCh7eDpHLHk6TWF0aC5yb3VuZChaKX0pfXJldHVybiBBfSwiZ2VuZXJhdGVJbml0aWFsRGF0YSIpLHY9e3N5c3RlbTp7bGFiZWw6IlN5c3RlbSBVc2FnZSAoJSkiLHNlcmllczpbe25hbWU6IkNQVSIsZGF0YTptKGguY3B1LDEwKX0se25hbWU6Ik1lbW9yeSIsZGF0YTptKGgubWVtb3J5LDgpfV19LG5ldHdvcms6e2xhYmVsOiJOZXR3b3JrIFRyYWZmaWMgKE1icHMpIixzZXJpZXM6W3tuYW1lOiJEb3dubG9hZCIsZGF0YTptKGguZG93bmxvYWQsMzApfSx7bmFtZToiVXBsb2FkIixkYXRhOm0oaC51cGxvYWQsMTApfV19LHNhbGVzOntsYWJlbDoiU2FsZXMgQW5hbHl0aWNzIixzZXJpZXM6W3tuYW1lOiJSZXZlbnVlIixkYXRhOlt7eDoiMjAyNS0wMS0wMSIseTo0NWUzfSx7eDoiMjAyNS0wMS0wMiIseTo1MmUzfSx7eDoiMjAyNS0wMS0wMyIseTo0OGUzfSx7eDoiMjAyNS0wMS0wNCIseTo2MWUzfSx7eDoiMjAyNS0wMS0wNSIseTo1OGUzfSx7eDoiMjAyNS0wMS0wNiIseTo2NWUzfV19LHtuYW1lOiJQcm9maXQiLGRhdGE6W3t4OiIyMDI1LTAxLTAxIix5OjEyZTN9LHt4OiIyMDI1LTAxLTAyIix5OjE0ZTN9LHt4OiIyMDI1LTAxLTAzIix5OjExZTN9LHt4OiIyMDI1LTAxLTA0Iix5OjE4ZTN9LHt4OiIyMDI1LTAxLTA1Iix5OjE2ZTN9LHt4OiIyMDI1LTAxLTA2Iix5OjJlNH1dfV19fSxiPWkoKEIsQyx6LEE9NSk9PntsZXQgJD0oTWF0aC5yYW5kb20oKS0uNSkqQSoyLEY9QiskLEc9KChDK3opLzItRikqLjE7cmV0dXJuIEYrPUcsRj1NYXRoLm1heChDLE1hdGgubWluKHosRikpLE1hdGgucm91bmQoRil9LCJnZXROZXh0VmFsdWUiKSxnPURhdGUubm93KCkseT1EYXRlLm5vdygpLGs9aSgoKT0+e2lmKCFhKXJldHVybjtsZXQgQj1EYXRlLm5vdygpO2lmKEItZz49cCl7Zz1CO2xldCB6PW5ldyBEYXRlKEIpLnRvSVNPU3RyaW5nKCk7aWYobD09PSJzeXN0ZW0iKXtoLmNwdT1iKGguY3B1LDIwLDUwLDMpLGgubWVtb3J5PWIoaC5tZW1vcnksNDAsNzAsMik7bGV0IEE9YS5jaGFydFNlcmllcy5tYXAoKCQsRik9Pih7bmFtZTokLm5hbWUsZGF0YTpbLi4uJC5kYXRhLEY9PT0wP3t4OnoseTpoLmNwdX06e3g6eix5OmgubWVtb3J5fV19KSk7YS51cGRhdGVTZXJpZXMoQSwhMSl9ZWxzZSBpZihsPT09Im5ldHdvcmsiKXtoLmRvd25sb2FkPWIoaC5kb3dubG9hZCwxMDAsMjAwLDEwKSxoLnVwbG9hZD1iKGgudXBsb2FkLDIwLDUwLDUpO2xldCBBPWEuY2hhcnRTZXJpZXMubWFwKCgkLEYpPT4oe25hbWU6JC5uYW1lLGRhdGE6Wy4uLiQuZGF0YSxGPT09MD97eDp6LHk6aC5kb3dubG9hZH06e3g6eix5OmgudXBsb2FkfV19KSk7YS51cGRhdGVTZXJpZXMoQSwhMSl9fX0sImFkZFJlYWx0aW1lRGF0YSIpLE09aSgoKT0+e2lmKCFzKXJldHVybjtsZXQgQj1EYXRlLm5vdygpLEM9bmV3IERhdGUoQikudG9JU09TdHJpbmcoKSx6PU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMSktMTA7aC5jb25uZWN0aW9ucz1NYXRoLm1heCg1MCxNYXRoLm1pbigzMDAsaC5jb25uZWN0aW9ucyt6KSk7bGV0IEE9cy5jaGFydFNlcmllcywkPVt7bmFtZTpBWzBdPy5uYW1lfHwiQ29ubmVjdGlvbnMiLGRhdGE6Wy4uLkFbMF0/LmRhdGF8fFtdLHt4OkMseTpoLmNvbm5lY3Rpb25zfV19XTtzLnVwZGF0ZVNlcmllcygkLCExKX0sInVwZGF0ZUNvbm5lY3Rpb25zIiksTj1pKEI9PntsPUI7bGV0IEM9dltCXTthLmxhYmVsPUMubGFiZWwsYS5zZXJpZXM9Qy5zZXJpZXMsYS55QXhpc0Zvcm1hdHRlcj1jW0JdLEI9PT0ic3lzdGVtIj8oYS55QXhpc1NjYWxpbmc9InBlcmNlbnRhZ2UiLGEueUF4aXNNYXg9MTAwKTphLnlBeGlzU2NhbGluZz0iZHluYW1pYyIsZz1EYXRlLm5vdygpLXB9LCJzd2l0Y2hEYXRhc2V0IiksXz1pKCgpPT57IW4mJihsPT09InN5c3RlbSJ8fGw9PT0ibmV0d29yayIpJiYoYS5yZWFsdGltZU1vZGU9ITAsbj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9PmsoKSxwKSksb3x8KHMucmVhbHRpbWVNb2RlPSEwLG89d2luZG93LnNldEludGVydmFsKCgpPT5NKCksZikpfSwic3RhcnRSZWFsdGltZSIpLFM9aSgoKT0+e24mJih3aW5kb3cuY2xlYXJJbnRlcnZhbChuKSxuPW51bGwsYS5yZWFsdGltZU1vZGU9ITEpLG8mJih3aW5kb3cuY2xlYXJJbnRlcnZhbChvKSxvPW51bGwscy5yZWFsdGltZU1vZGU9ITEpfSwic3RvcFJlYWx0aW1lIiksTz1pKCgpPT57bD09PSJzeXN0ZW0iPyhoLmNwdT1NYXRoLnJhbmRvbSgpPi41Pzg1OjI1LGgubWVtb3J5PU1hdGgucmFuZG9tKCk+LjU/ODA6NDUpOmw9PT0ibmV0d29yayImJihoLmRvd25sb2FkPU1hdGgucmFuZG9tKCk+LjU/MjUwOjEwMCxoLnVwbG9hZD1NYXRoLnJhbmRvbSgpPi41PzgwOjIwKSxoLmNvbm5lY3Rpb25zPU1hdGgucmFuZG9tKCk+LjU/MjgwOjgwLGc9MCx5PTB9LCJyYW5kb21pemVEYXRhIiksTD1pKCgpPT57ci5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goQz0+e2xldCB6PUMudGV4dD8udHJpbSgpO3o9PT0iU3lzdGVtIFVzYWdlIj9DLnR5cGU9bD09PSJzeXN0ZW0iPyJoaWdobGlnaHRlZCI6Im5vcm1hbCI6ej09PSJOZXR3b3JrIFRyYWZmaWMiP0MudHlwZT1sPT09Im5ldHdvcmsiPyJoaWdobGlnaHRlZCI6Im5vcm1hbCI6ej09PSJTYWxlcyBEYXRhIiYmKEMudHlwZT1sPT09InNhbGVzIj8iaGlnaGxpZ2h0ZWQiOiJub3JtYWwiKX0pfSwidXBkYXRlQnV0dG9uU3RhdGVzIik7aWYoci5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goQj0+e2xldCBDPUIudGV4dD8udHJpbSgpO0M9PT0iU3lzdGVtIFVzYWdlIj9CLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e04oInN5c3RlbSIpLEwoKX0pOkM9PT0iTmV0d29yayBUcmFmZmljIj9CLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e04oIm5ldHdvcmsiKSxMKCl9KTpDPT09IlNhbGVzIERhdGEiP0IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57Tigic2FsZXMiKSxMKCl9KTpDPT09IlN0YXJ0IExpdmUiP0IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5fKCkpOkM9PT0iU3RvcCBMaXZlIj9CLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+UygpKTpDPT09IlNwaWtlIFZhbHVlcyImJkIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5PKCkpfSksYS5yb2xsaW5nV2luZG93PWQsYS5yZWFsdGltZU1vZGU9ITEsYS55QXhpc1NjYWxpbmc9InBlcmNlbnRhZ2UiLGEueUF4aXNNYXg9MTAwLGEuYXV0b1Njcm9sbEludGVydmFsPTFlMyxzZXRUaW1lb3V0KCgpPT57YS51cGRhdGVUaW1lV2luZG93KCl9LDEwMCkscyl7bGV0IEI9bShoLmNvbm5lY3Rpb25zLDMwLGYpO3Muc2VyaWVzPVt7bmFtZToiQ29ubmVjdGlvbnMiLGRhdGE6Qn1dLHMucm9sbGluZ1dpbmRvdz1kLHMucmVhbHRpbWVNb2RlPSExLHMueUF4aXNTY2FsaW5nPSJmaXhlZCIscy55QXhpc01heD0zNTAscy5hdXRvU2Nyb2xsSW50ZXJ2YWw9MWUzLHNldFRpbWVvdXQoKCk9PntzLnVwZGF0ZVRpbWVXaW5kb3coKX0sMTAwKX19fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7cmVgCiAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hhcnQtY29udGFpbmVyIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmluZm8gewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEYXRhc2V0OiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPlN5c3RlbSBVc2FnZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TmV0d29yayBUcmFmZmljPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TYWxlcyBEYXRhPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iUmVhbC10aW1lOiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RhcnQgTGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBMaXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlNwaWtlIFZhbHVlczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiPgogICAgICAgIDxkZWVzLWNoYXJ0LWFyZWEKICAgICAgICAgIGlkPSJtYWluLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7dC5zeXN0ZW0ubGFiZWx9CiAgICAgICAgICAuc2VyaWVzPSR7dC5zeXN0ZW0uc2VyaWVzfQogICAgICAgICAgLnlBeGlzRm9ybWF0dGVyPSR7ZS5zeXN0ZW19CiAgICAgICAgPjwvZGVlcy1jaGFydC1hcmVhPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0LWNvbnRhaW5lciIgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7Ij4KICAgICAgICA8ZGVlcy1jaGFydC1hcmVhCiAgICAgICAgICBpZD0iY29ubmVjdGlvbnMtY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiQWN0aXZlIENvbm5lY3Rpb25zIn0KICAgICAgICAgIC5zZXJpZXM9JHtbe25hbWU6IkNvbm5lY3Rpb25zIixkYXRhOltdfV19CiAgICAgICAgICAueUF4aXNGb3JtYXR0ZXI9JHtyPT5gJHtyfWB9CiAgICAgICAgPjwvZGVlcy1jaGFydC1hcmVhPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIFJlYWwtdGltZSBtb25pdG9yaW5nIHdpdGggMi1taW51dGUgcm9sbGluZyB3aW5kb3cg4oCiIAogICAgICAgIFVwZGF0ZXMgZXZlcnkgc2Vjb25kIHdpdGggc21vb3RoIHZhbHVlIHRyYW5zaXRpb25zIOKAoiAKICAgICAgICBDbGljayAnU3Bpa2UgVmFsdWVzJyB0byBzaW11bGF0ZSBsb2FkIHNwaWtlcwogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIF9RcixUUXI9dSgoKT0+e3ZlKCk7bHQoKTtfUXI9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLmNoYXJ0SGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTZweDsKICAgICAgfQogICAgICAuY2hhcnRMYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KICAgICAgLmV4cGFuZEJ0biB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIC5leHBhbmRCdG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQogICAgICAuY2hhcnRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMCAwIDRweCAwOwogICAgICB9CiAgICAgIC5zdGF0c0JhciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgICAgLnN0YXRzU2VyaWVzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgLnN0YXRzU2VyaWVzICsgLnN0YXRzU2VyaWVzIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgfQogICAgICAuc3RhdHNDb2xvciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KICAgICAgLnN0YXRzTmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICB9CiAgICAgIC5zdGF0c0l0ZW0gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQogICAgICAuc3RhdHNJdGVtIHN0cm9uZyB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQogICAgICAubHctdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgIG1pbi13aWR0aDogMTQwcHg7CiAgICAgIH0KICAgIGBdfSk7dmFyIExRcixEUXI9dSgoKT0+e3ZlKCk7S3IoKTtMUXI9aSh0PT53YAogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXJ0TGFiZWwiPiR7dC5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImV4cGFuZEJ0biIgQGNsaWNrPSR7KCk9PnQudG9nZ2xlRnVsbFBhZ2UoKX0gdGl0bGU9IiR7dC5pc0Z1bGxQYWdlPyJFeGl0IGZ1bGwgcGFnZSI6IkZ1bGwgcGFnZSJ9Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dC5pc0Z1bGxQYWdlPyJsdWNpZGU6TWluaW1pemUyIjoibHVjaWRlOk1heGltaXplMiJ9IC5pY29uU2l6ZT0kezE0fT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgICR7dC5zZXJpZXNTdGF0cy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InN0YXRzQmFyIj4KICAgICAgICAgICAgICAke3Quc2VyaWVzU3RhdHMubWFwKGU9PndgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0c1NlcmllcyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0NvbG9yIiBzdHlsZT0iYmFja2dyb3VuZDoke2UuY29sb3J9Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c05hbWUiPiR7ZS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+bGF0ZXN0IDxzdHJvbmc+JHt0LnlBeGlzRm9ybWF0dGVyKGUubGF0ZXN0KX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0c0l0ZW0iPm1pbiA8c3Ryb25nPiR7dC55QXhpc0Zvcm1hdHRlcihlLm1pbil9PC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHNJdGVtIj5tYXggPHN0cm9uZz4ke3QueUF4aXNGb3JtYXR0ZXIoZS5tYXgpfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXRzSXRlbSI+YXZnIDxzdHJvbmc+JHt0LnlBeGlzRm9ybWF0dGVyKGUuYXZnKX08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGVlcy10aWxlPgogICAgICBgLCJyZW5kZXJDaGFydEFyZWEiKX0pO3ZhciBvMix6aSwkUXIsbTd0PXUoKCk9Pnt2ZSgpO01yKCk7elFyKCk7VFFyKCk7RFFyKCk7cDMoKTtucygpO28yPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSx6aT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sJFFyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1jaGFydC1hcmVhIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdO3ZhciBmZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0QXJlYSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBUPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHA9W2llKCldLHY9W1AoKV0seT1bUCh7dHlwZTpBcnJheX0pXSxOPVtQKHthdHRyaWJ1dGU6ITF9KV0sTz1bUCh7dHlwZTpOdW1iZXJ9KV0sQj1bUCh7dHlwZTpCb29sZWFufSldLEE9W1Aoe3R5cGU6U3RyaW5nfSldLFk9W1Aoe3R5cGU6TnVtYmVyfSldLGRlPVtQKHt0eXBlOk51bWJlcn0pXSxvMih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoYXJ0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJjaGFydCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmNoYXJ0LCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmNoYXJ0PXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LG8sbCksbzIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXNTdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ic2VyaWVzU3RhdHMiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5zZXJpZXNTdGF0cywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5zZXJpZXNTdGF0cz1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxkLGYpLG8yKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGdWxsUGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iaXNGdWxsUGFnZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmlzRnVsbFBhZ2UsImdldCIpLHNldDppKChXLHBlKT0+e1cuaXNGdWxsUGFnZT1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxoLG0pLG8yKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImxhYmVsImluIFcsImhhcyIpLGdldDppKFc9PlcubGFiZWwsImdldCIpLHNldDppKChXLHBlKT0+e1cubGFiZWw9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sYixnKSxvMih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ic2VyaWVzImluIFcsImhhcyIpLGdldDppKFc9Plcuc2VyaWVzLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnNlcmllcz1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxrLE0pLG8yKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InlBeGlzRm9ybWF0dGVyImluIFcsImhhcyIpLGdldDppKFc9PlcueUF4aXNGb3JtYXR0ZXIsImdldCIpLHNldDppKChXLHBlKT0+e1cueUF4aXNGb3JtYXR0ZXI9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sXyxTKSxvMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvbGxpbmdXaW5kb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InJvbGxpbmdXaW5kb3ciaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5yb2xsaW5nV2luZG93LCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnJvbGxpbmdXaW5kb3c9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sTCxFKSxvMih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlYWx0aW1lTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4icmVhbHRpbWVNb2RlImluIFcsImhhcyIpLGdldDppKFc9PlcucmVhbHRpbWVNb2RlLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnJlYWx0aW1lTW9kZT1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxDLHopLG8yKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNTY2FsaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJ5QXhpc1NjYWxpbmciaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy55QXhpc1NjYWxpbmcsImdldCIpLHNldDppKChXLHBlKT0+e1cueUF4aXNTY2FsaW5nPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LCQsRiksbzIodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc01heCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4ieUF4aXNNYXgiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy55QXhpc01heCwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy55QXhpc01heD1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxHLFopLG8yKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TY3JvbGxJbnRlcnZhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iYXV0b1Njcm9sbEludGVydmFsImluIFcsImhhcyIpLGdldDppKFc9PlcuYXV0b1Njcm9sbEludGVydmFsLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmF1dG9TY3JvbGxJbnRlcnZhbD1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxELFEpLG8yKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOlR9LG51bGwsciksZmU9YT1lLnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPUNRcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9emkodGhpcyxvLG51bGwpO2dldCBjaGFydCgpe3JldHVybiB0aGlzLiNlfXNldCBjaGFydChUKXt0aGlzLiNlPVR9I3Q9KHppKHRoaXMsbCksemkodGhpcyxkLFtdKSk7Z2V0IHNlcmllc1N0YXRzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllc1N0YXRzKFQpe3RoaXMuI3Q9VH0jcj0oemkodGhpcyxmKSx6aSh0aGlzLGgsITEpKTtnZXQgaXNGdWxsUGFnZSgpe3JldHVybiB0aGlzLiNyfXNldCBpc0Z1bGxQYWdlKFQpe3RoaXMuI3I9VH0jYT0oemkodGhpcyxtKSx6aSh0aGlzLGIsIlVudGl0bGVkIENoYXJ0IikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNhfXNldCBsYWJlbChUKXt0aGlzLiNhPVR9I2k9KHppKHRoaXMsZyksemkodGhpcyxrLFtdKSk7Z2V0IHNlcmllcygpe3JldHVybiB0aGlzLiNpfXNldCBzZXJpZXMoVCl7dGhpcy4jaT1UfWdldCBjaGFydFNlcmllcygpe3JldHVybiB0aGlzLmludGVybmFsQ2hhcnREYXRhLmxlbmd0aD4wP3RoaXMuaW50ZXJuYWxDaGFydERhdGE6dGhpcy5zZXJpZXN9I3M9KHppKHRoaXMsTSksemkodGhpcyxfLFQ9PmAke1R9IE1icHNgKSk7Z2V0IHlBeGlzRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHlBeGlzRm9ybWF0dGVyKFQpe3RoaXMuI3M9VH0jbj0oemkodGhpcyxTKSx6aSh0aGlzLEwsMCkpO2dldCByb2xsaW5nV2luZG93KCl7cmV0dXJuIHRoaXMuI259c2V0IHJvbGxpbmdXaW5kb3coVCl7dGhpcy4jbj1UfSNvPSh6aSh0aGlzLEUpLHppKHRoaXMsQywhMSkpO2dldCByZWFsdGltZU1vZGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgcmVhbHRpbWVNb2RlKFQpe3RoaXMuI289VH0jbD0oemkodGhpcyx6KSx6aSh0aGlzLCQsImR5bmFtaWMiKSk7Z2V0IHlBeGlzU2NhbGluZygpe3JldHVybiB0aGlzLiNsfXNldCB5QXhpc1NjYWxpbmcoVCl7dGhpcy4jbD1UfSNjPSh6aSh0aGlzLEYpLHppKHRoaXMsRywxMDApKTtnZXQgeUF4aXNNYXgoKXtyZXR1cm4gdGhpcy4jY31zZXQgeUF4aXNNYXgoVCl7dGhpcy4jYz1UfSNkPSh6aSh0aGlzLFopLHppKHRoaXMsRCwxZTMpKTtnZXQgYXV0b1Njcm9sbEludGVydmFsKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGF1dG9TY3JvbGxJbnRlcnZhbChUKXt0aGlzLiNkPVR9aW50ZXJuYWxDaGFydERhdGE9KHppKHRoaXMsUSksW10pO2F1dG9TY3JvbGxUaW1lcj1udWxsO2xjQnVuZGxlPW51bGw7c2VyaWVzQXBpcz1uZXcgTWFwO3ByaWNlTGluZXM9bmV3IE1hcDt0b29sdGlwRWw9bnVsbDtDSEFSVF9DT0xPUlM9e2Rhcms6WyJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDE3My40IDgwLjQlIDQwJSkiLCJoc2woMjgwLjMgODcuNCUgNjYuNyUpIiwiaHNsKDI0LjYgOTUlIDUzLjElKSJdLGxpZ2h0OlsiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMjgwLjMgNDcuNyUgNTAuMiUpIiwiaHNsKDIwLjUgOTAuMiUgNDguMiUpIl19O2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxaYS5zZXR1cCgpLHRoaXMucmVnaXN0ZXJHYXJiYWdlRnVuY3Rpb24oYXN5bmMoKT0+e2lmKHRoaXMuc3RvcEF1dG9TY3JvbGwoKSx0aGlzLmNoYXJ0KXRyeXt0aGlzLmNoYXJ0LnJlbW92ZSgpLHRoaXMuY2hhcnQ9bnVsbCx0aGlzLnNlcmllc0FwaXMuY2xlYXIoKSx0aGlzLnByaWNlTGluZXMuY2xlYXIoKX1jYXRjaChUKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIGNoYXJ0OiIsVCl9fSl9c3RhdGljIHN0eWxlcz1fUXI7cmVuZGVyKCl7cmV0dXJuIExRcih0aGlzKX1jb252ZXJ0RGF0YVRvTEMoVCl7cmV0dXJuIFQubWFwKFc9PntsZXQgcGU9dHlwZW9mIFcueD09Im51bWJlciI/Vy54Om5ldyBEYXRlKFcueCkuZ2V0VGltZSgpO3JldHVybnt0aW1lOk1hdGguZmxvb3IocGUvMWUzKSx2YWx1ZTpXLnl9fSkuc29ydCgoVyxwZSk9PlcudGltZS1wZS50aW1lKX1oc2xUb1JnYmEoVCxXKXtsZXQgcGU9VC5tYXRjaCgvaHNsXCgoW14pXSspXCkvKTtpZighcGUpcmV0dXJuIFQ7bGV0IG1lPXBlWzFdLnRyaW0oKS5zcGxpdCgvXHMrLyk7aWYobWUubGVuZ3RoPDMpcmV0dXJuIFQ7bGV0IHE9cGFyc2VGbG9hdChtZVswXSkvMzYwLEg9cGFyc2VGbG9hdChtZVsxXSkvMTAwLFU9cGFyc2VGbG9hdChtZVsyXSkvMTAwLGosYWUsWDtpZihIPT09MClqPWFlPVg9VTtlbHNle2xldCBKPWkoKFYsbGUsbmUpPT4obmU8MCYmKG5lKz0xKSxuZT4xJiYobmUtPTEpLG5lPC4xNjY2NjY2NjY2NjY2NjY2Nj9WKyhsZS1WKSo2Km5lOm5lPC41P2xlOm5lPC42NjY2NjY2NjY2NjY2NjY2P1YrKGxlLVYpKiguNjY2NjY2NjY2NjY2NjY2Ni1uZSkqNjpWKSwiaHVlMnJnYiIpLHhlPVU8LjU/VSooMStIKTpVK0gtVSpILEs9MipVLXhlO2o9SihLLHhlLHErMS8zKSxhZT1KKEsseGUscSksWD1KKEsseGUscS0xLzMpfXJldHVybmByZ2JhKCR7TWF0aC5yb3VuZChqKjI1NSl9LCAke01hdGgucm91bmQoYWUqMjU1KX0sICR7TWF0aC5yb3VuZChYKjI1NSl9LCAke1d9KWB9Z2V0U2VyaWVzQ29sb3JzKFQpe3JldHVybiBUP3RoaXMuQ0hBUlRfQ09MT1JTLmRhcms6dGhpcy5DSEFSVF9DT0xPUlMubGlnaHR9YXBwbHlUaGVtZSgpe2lmKCF0aGlzLmNoYXJ0fHwhdGhpcy5sY0J1bmRsZSlyZXR1cm47bGV0IFQ9IXRoaXMuZ29CcmlnaHQsVz10aGlzLmdldFNlcmllc0NvbG9ycyhUKTt0aGlzLmNoYXJ0LmFwcGx5T3B0aW9ucyh7bGF5b3V0OntiYWNrZ3JvdW5kOnt0eXBlOnRoaXMubGNCdW5kbGUuQ29sb3JUeXBlLlNvbGlkLGNvbG9yOiJ0cmFuc3BhcmVudCJ9LHRleHRDb2xvcjpUPyJoc2woMCAwJSA2My45JSkiOiJoc2woMCAwJSAyMCUpIixhdHRyaWJ1dGlvbkxvZ286ITF9LGdyaWQ6e3ZlcnRMaW5lczp7Y29sb3I6VD8iaHNsKDAgMCUgOC41JSkiOiJoc2woMCAwJSA5NS41JSkifSxob3J6TGluZXM6e2NvbG9yOlQ/ImhzbCgwIDAlIDguNSUpIjoiaHNsKDAgMCUgOTUuNSUpIn19fSk7bGV0IHBlPTA7Zm9yKGxldFssbWVdb2YgdGhpcy5zZXJpZXNBcGlzKXtsZXQgcT1XW3BlJVcubGVuZ3RoXTttZS5hcHBseU9wdGlvbnMoe3RvcENvbG9yOnRoaXMuaHNsVG9SZ2JhKHEsVD8uNDouNSksYm90dG9tQ29sb3I6dGhpcy5oc2xUb1JnYmEocSwwKSxsaW5lQ29sb3I6cX0pLHBlKyt9fXJlY3JlYXRlU2VyaWVzKFQpe2lmKCF0aGlzLmNoYXJ0fHwhdGhpcy5sY0J1bmRsZSlyZXR1cm47bGV0IFc9IXRoaXMuZ29CcmlnaHQscGU9dGhpcy5nZXRTZXJpZXNDb2xvcnMoVyk7Zm9yKGxldFssbWVdb2YgdGhpcy5zZXJpZXNBcGlzKXRoaXMuY2hhcnQucmVtb3ZlU2VyaWVzKG1lKTt0aGlzLnNlcmllc0FwaXMuY2xlYXIoKSx0aGlzLnByaWNlTGluZXMuY2xlYXIoKSxULmZvckVhY2goKG1lLHEpPT57bGV0IEg9cGVbcSVwZS5sZW5ndGhdLFU9dGhpcy5jaGFydC5hZGRTZXJpZXModGhpcy5sY0J1bmRsZS5BcmVhU2VyaWVzLHt0b3BDb2xvcjp0aGlzLmhzbFRvUmdiYShILFc/LjQ6LjUpLGJvdHRvbUNvbG9yOnRoaXMuaHNsVG9SZ2JhKEgsMCksbGluZUNvbG9yOkgsbGluZVdpZHRoOjIsbGluZVR5cGU6dGhpcy5sY0J1bmRsZS5MaW5lVHlwZS5DdXJ2ZWQsbGFzdFZhbHVlVmlzaWJsZTohMSxwcmljZUxpbmVWaXNpYmxlOiExLGNyb3NzaGFpck1hcmtlclZpc2libGU6ITAsY3Jvc3NoYWlyTWFya2VyUmFkaXVzOjR9KTtVLnNldERhdGEodGhpcy5jb252ZXJ0RGF0YVRvTEMobWUuZGF0YSkpLHRoaXMudXBkYXRlUHJpY2VMaW5lcyhtZS5uYW1lfHxgc2VyaWVzLSR7cX1gLFUsbWUuZGF0YSxIKSx0aGlzLnlBeGlzU2NhbGluZyE9PSJkeW5hbWljIiYmVS5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjppKCgpPT4oe3ByaWNlUmFuZ2U6e21pblZhbHVlOjAsbWF4VmFsdWU6dGhpcy55QXhpc01heH19KSwiYXV0b3NjYWxlSW5mb1Byb3ZpZGVyIil9KSx0aGlzLnNlcmllc0FwaXMuc2V0KG1lLm5hbWV8fGBzZXJpZXMtJHtxfWAsVSl9KSx0aGlzLmNvbXB1dGVTdGF0cyhUKX1jb21wdXRlU3RhdHMoVCl7bGV0IFc9IXRoaXMuZ29CcmlnaHQscGU9dGhpcy5nZXRTZXJpZXNDb2xvcnMoVyk7dGhpcy5zZXJpZXNTdGF0cz1ULm1hcCgobWUscSk9PntsZXQgSD1tZS5kYXRhLm1hcChKPT5KLnkpO2lmKEgubGVuZ3RoPT09MClyZXR1cm57bmFtZTptZS5uYW1lfHxgc2VyaWVzLSR7cX1gLGxhdGVzdDowLG1pbjowLG1heDowLGF2ZzowLGNvbG9yOnBlW3ElcGUubGVuZ3RoXX07bGV0IFU9SFtILmxlbmd0aC0xXSxqPU1hdGgubWluKC4uLkgpLGFlPU1hdGgubWF4KC4uLkgpLFg9TWF0aC5yb3VuZChILnJlZHVjZSgoSix4ZSk9PkoreGUsMCkvSC5sZW5ndGgqMTAwKS8xMDA7cmV0dXJue25hbWU6bWUubmFtZXx8YHNlcmllcy0ke3F9YCxsYXRlc3Q6VSxtaW46aixtYXg6YWUsYXZnOlgsY29sb3I6cGVbcSVwZS5sZW5ndGhdfX0pfXVwZGF0ZVByaWNlTGluZXMoVCxXLHBlLG1lKXtsZXQgcT10aGlzLnByaWNlTGluZXMuZ2V0KFQpO2lmKHEpZm9yKGxldCBYIG9mIHEpVy5yZW1vdmVQcmljZUxpbmUoWCk7aWYocGUubGVuZ3RoPT09MCl7dGhpcy5wcmljZUxpbmVzLnNldChULFtdKTtyZXR1cm59bGV0IEg9cGUubWFwKFg9PlgueSksVT1ILnJlZHVjZSgoWCxKKT0+WCtKLDApL0gubGVuZ3RoLGo9TWF0aC5tYXgoLi4uSCksYWU9W107YWUucHVzaChXLmNyZWF0ZVByaWNlTGluZSh7cHJpY2U6TWF0aC5yb3VuZChVKjEwMCkvMTAwLGNvbG9yOnRoaXMuaHNsVG9SZ2JhKG1lLC41KSxsaW5lV2lkdGg6MSxsaW5lU3R5bGU6MixheGlzTGFiZWxWaXNpYmxlOiEwLHRpdGxlOiJhdmcifSkpLFU+MCYmKGotVSkvVT4uMSYmYWUucHVzaChXLmNyZWF0ZVByaWNlTGluZSh7cHJpY2U6aixjb2xvcjp0aGlzLmhzbFRvUmdiYShtZSwuOCksbGluZVdpZHRoOjEsbGluZVN0eWxlOjEsYXhpc0xhYmVsVmlzaWJsZTohMCx0aXRsZToibWF4In0pKSx0aGlzLnByaWNlTGluZXMuc2V0KFQsYWUpfXNldHVwVG9vbHRpcCgpe3RoaXMuY2hhcnQmJih0aGlzLnRvb2x0aXBFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnRvb2x0aXBFbC5jbGFzc05hbWU9Imx3LXRvb2x0aXAiLHRoaXMudG9vbHRpcEVsLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKT8uYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwRWwpLHRoaXMuY2hhcnQuc3Vic2NyaWJlQ3Jvc3NoYWlyTW92ZShUPT57aWYoIXRoaXMudG9vbHRpcEVsKXJldHVybjtpZighVC5wb2ludHx8IVQudGltZXx8VC5wb2ludC54PDB8fFQucG9pbnQueTwwKXt0aGlzLnRvb2x0aXBFbC5zdHlsZS5kaXNwbGF5PSJub25lIjtyZXR1cm59bGV0IFc9IXRoaXMuZ29CcmlnaHQscGU9Vz8iaHNsKDAgMCUgOSUpIjoiaHNsKDAgMCUgMTAwJSkiLG1lPVc/ImhzbCgwIDAlIDk1JSkiOiJoc2woMCAwJSA5JSkiLHE9Vz8iaHNsKDAgMCUgMTQuOSUpIjoiaHNsKDAgMCUgODkuOCUpIixIPXRoaXMuZ2V0U2VyaWVzQ29sb3JzKFcpLFU9IiIsaj0wLGFlPSExO2ZvcihsZXRbeGUsS11vZiB0aGlzLnNlcmllc0FwaXMpe2xldCBWPVQuc2VyaWVzRGF0YS5nZXQoSyk7aWYoViYmInZhbHVlImluIFYmJlYudmFsdWUhPT12b2lkIDApe2FlPSEwO2xldCBsZT1IW2olSC5sZW5ndGhdLG5lPXRoaXMueUF4aXNGb3JtYXR0ZXIoVi52YWx1ZSk7VSs9YDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttYXJnaW46JHtqPjA/IjZweCI6IjAifSAwOyI+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQ6JHtsZX07Ym9yZGVyLXJhZGl1czoycHg7Ij48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo1MDA7Ij4ke3hlfTo8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJtYXJnaW4tbGVmdDphdXRvO2ZvbnQtd2VpZ2h0OjYwMDsiPiR7bmV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+YH1qKyt9aWYoIWFlKXt0aGlzLnRvb2x0aXBFbC5zdHlsZS5kaXNwbGF5PSJub25lIjtyZXR1cm59dGhpcy50b29sdGlwRWwuaW5uZXJIVE1MPVUsT2JqZWN0LmFzc2lnbih0aGlzLnRvb2x0aXBFbC5zdHlsZSx7ZGlzcGxheToiYmxvY2siLGJhY2tncm91bmQ6cGUsY29sb3I6bWUsYm9yZGVyQ29sb3I6cX0pO2xldCBYPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKS5jbGllbnRXaWR0aCxKPVQucG9pbnQueCsxNjtKKzIwMD5YJiYoSj1ULnBvaW50LngtMjE2KSx0aGlzLnRvb2x0aXBFbC5zdHlsZS5sZWZ0PWAke0p9cHhgLHRoaXMudG9vbHRpcEVsLnN0eWxlLnRvcD1gJHtULnBvaW50LnktMTZ9cHhgfSkpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHRoaXMubGNCdW5kbGU9YXdhaXQgc24uZ2V0SW5zdGFuY2UoKS5sb2FkTGlnaHR3ZWlnaHRDaGFydHMoKSxhd2FpdCBuZXcgUHJvbWlzZShwZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHBlKSk7bGV0IFQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpO2lmKCFUKXJldHVybjtsZXQgVz0hdGhpcy5nb0JyaWdodDt0cnl7dGhpcy5jaGFydD10aGlzLmxjQnVuZGxlLmNyZWF0ZUNoYXJ0KFQse2F1dG9TaXplOiEwLGxheW91dDp7YmFja2dyb3VuZDp7dHlwZTp0aGlzLmxjQnVuZGxlLkNvbG9yVHlwZS5Tb2xpZCxjb2xvcjoidHJhbnNwYXJlbnQifSx0ZXh0Q29sb3I6Vz8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSIsZm9udEZhbWlseTonLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBzYW5zLXNlcmlmJyxmb250U2l6ZToxMixhdHRyaWJ1dGlvbkxvZ286ITF9LGdyaWQ6e3ZlcnRMaW5lczp7Y29sb3I6Vz8iaHNsKDAgMCUgOC41JSkiOiJoc2woMCAwJSA5NS41JSkifSxob3J6TGluZXM6e2NvbG9yOlc/ImhzbCgwIDAlIDguNSUpIjoiaHNsKDAgMCUgOTUuNSUpIn19LHJpZ2h0UHJpY2VTY2FsZTp7Ym9yZGVyVmlzaWJsZTohMSxzY2FsZU1hcmdpbnM6e3RvcDouMSxib3R0b206LjF9fSx0aW1lU2NhbGU6e2JvcmRlclZpc2libGU6ITEsdGltZVZpc2libGU6ITAsc2Vjb25kc1Zpc2libGU6ITB9LGNyb3NzaGFpcjp7bW9kZTp0aGlzLmxjQnVuZGxlLkNyb3NzaGFpck1vZGUuTWFnbmV0fSxoYW5kbGVTY3JvbGw6ITEsaGFuZGxlU2NhbGU6ITF9KTtsZXQgcGU9dGhpcy5zZXJpZXMubGVuZ3RoPjA/dGhpcy5zZXJpZXM6W3tuYW1lOiJjcHUiLGRhdGE6W3t4OiIyMDI1LTAxLTE1VDAzOjAwOjAwIix5OjI1fSx7eDoiMjAyNS0wMS0xNVQwNzowMDowMCIseTozMH0se3g6IjIwMjUtMDEtMTVUMTE6MDA6MDAiLHk6MjB9LHt4OiIyMDI1LTAxLTE1VDE1OjAwOjAwIix5OjM1fSx7eDoiMjAyNS0wMS0xNVQxOTowMDowMCIseToyNX1dfSx7bmFtZToibWVtb3J5IixkYXRhOlt7eDoiMjAyNS0wMS0xNVQwMzowMDowMCIseToxMH0se3g6IjIwMjUtMDEtMTVUMDc6MDA6MDAiLHk6MTJ9LHt4OiIyMDI1LTAxLTE1VDExOjAwOjAwIix5OjEwfSx7eDoiMjAyNS0wMS0xNVQxNTowMDowMCIseTozMH0se3g6IjIwMjUtMDEtMTVUMTk6MDA6MDAiLHk6NDB9XX1dO3RoaXMuaW50ZXJuYWxDaGFydERhdGE9cGUsdGhpcy5yZWNyZWF0ZVNlcmllcyhwZSksdGhpcy5zZXR1cFRvb2x0aXAoKX1jYXRjaChwZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgY2hhcnQ6IixwZSl9fWFzeW5jIHVwZGF0ZWQoVCl7aWYoc3VwZXIudXBkYXRlZChUKSxULmhhcygiZ29CcmlnaHQiKSYmdGhpcy5jaGFydCYmdGhpcy5hcHBseVRoZW1lKCksVC5oYXMoInNlcmllcyIpJiZ0aGlzLmNoYXJ0JiZ0aGlzLnNlcmllcy5sZW5ndGg+MCYmYXdhaXQgdGhpcy51cGRhdGVTZXJpZXModGhpcy5zZXJpZXMpLFQuaGFzKCJ5QXhpc0Zvcm1hdHRlciIpJiZ0aGlzLmNoYXJ0LFQuaGFzKCJyZWFsdGltZU1vZGUiKSYmdGhpcy5jaGFydCYmKHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MD90aGlzLnN0YXJ0QXV0b1Njcm9sbCgpOnRoaXMuc3RvcEF1dG9TY3JvbGwoKSksVC5oYXMoImF1dG9TY3JvbGxJbnRlcnZhbCIpJiZ0aGlzLmNoYXJ0JiYodGhpcy5zdG9wQXV0b1Njcm9sbCgpLHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MCYmdGhpcy5zdGFydEF1dG9TY3JvbGwoKSksKFQuaGFzKCJ5QXhpc1NjYWxpbmciKXx8VC5oYXMoInlBeGlzTWF4IikpJiZ0aGlzLmNoYXJ0KWZvcihsZXRbLFddb2YgdGhpcy5zZXJpZXNBcGlzKXRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiP1cuYXBwbHlPcHRpb25zKHthdXRvc2NhbGVJbmZvUHJvdmlkZXI6dm9pZCAwfSk6Vy5hcHBseU9wdGlvbnMoe2F1dG9zY2FsZUluZm9Qcm92aWRlcjppKCgpPT4oe3ByaWNlUmFuZ2U6e21pblZhbHVlOjAsbWF4VmFsdWU6dGhpcy55QXhpc01heH19KSwiYXV0b3NjYWxlSW5mb1Byb3ZpZGVyIil9KX1hc3luYyB1cGRhdGVTZXJpZXMoVCxXPSEwKXtpZih0aGlzLmNoYXJ0KXRyeXtpZih0aGlzLmludGVybmFsQ2hhcnREYXRhPVQsdGhpcy5yb2xsaW5nV2luZG93PjAmJnRoaXMucmVhbHRpbWVNb2RlKXtsZXQgcGU9RGF0ZS5ub3coKSxtZT1wZS10aGlzLnJvbGxpbmdXaW5kb3c7aWYoVC5sZW5ndGghPT10aGlzLnNlcmllc0FwaXMuc2l6ZSl0aGlzLnJlY3JlYXRlU2VyaWVzKFQpO2Vsc2V7bGV0IHE9dGhpcy5nZXRTZXJpZXNDb2xvcnMoIXRoaXMuZ29CcmlnaHQpO1QuZm9yRWFjaCgoSCxVKT0+e2xldCBqPUgubmFtZXx8YHNlcmllcy0ke1V9YCxhZT10aGlzLnNlcmllc0FwaXMuZ2V0KGopO2lmKCFhZSlyZXR1cm47bGV0IFg9SC5kYXRhLmZpbHRlcihKPT4odHlwZW9mIEoueD09Im51bWJlciI/Si54Om5ldyBEYXRlKEoueCkuZ2V0VGltZSgpKT5tZSk7YWUuc2V0RGF0YSh0aGlzLmNvbnZlcnREYXRhVG9MQyhYKSksdGhpcy51cGRhdGVQcmljZUxpbmVzKGosYWUsWCxxW1UlcS5sZW5ndGhdKX0pLHRoaXMuY29tcHV0ZVN0YXRzKFQpfXRyeXt0aGlzLmNoYXJ0LnRpbWVTY2FsZSgpLnNldFZpc2libGVSYW5nZSh7ZnJvbTpNYXRoLmZsb29yKG1lLzFlMyksdG86TWF0aC5mbG9vcihwZS8xZTMpfSl9Y2F0Y2h7fWlmKHRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiKXtsZXQgcT1ULmZsYXRNYXAoSD0+SC5kYXRhLmZpbHRlcihVPT4odHlwZW9mIFUueD09Im51bWJlciI/VS54Om5ldyBEYXRlKFUueCkuZ2V0VGltZSgpKT5tZSkubWFwKFU9PlUueSkpO2lmKHEubGVuZ3RoPjApe2xldCBIPU1hdGguY2VpbChNYXRoLm1heCguLi5xKSoxLjEpO2ZvcihsZXRbLFVdb2YgdGhpcy5zZXJpZXNBcGlzKVUuYXBwbHlPcHRpb25zKHthdXRvc2NhbGVJbmZvUHJvdmlkZXI6aSgoKT0+KHtwcmljZVJhbmdlOnttaW5WYWx1ZTowLG1heFZhbHVlOkh9fSksImF1dG9zY2FsZUluZm9Qcm92aWRlciIpfSl9fX1lbHNlIGlmKFQubGVuZ3RoIT09dGhpcy5zZXJpZXNBcGlzLnNpemUpdGhpcy5yZWNyZWF0ZVNlcmllcyhUKTtlbHNle2xldCBwZT10aGlzLmdldFNlcmllc0NvbG9ycyghdGhpcy5nb0JyaWdodCk7VC5mb3JFYWNoKChtZSxxKT0+e2xldCBIPW1lLm5hbWV8fGBzZXJpZXMtJHtxfWAsVT10aGlzLnNlcmllc0FwaXMuZ2V0KEgpO1UmJihVLnNldERhdGEodGhpcy5jb252ZXJ0RGF0YVRvTEMobWUuZGF0YSkpLHRoaXMudXBkYXRlUHJpY2VMaW5lcyhILFUsbWUuZGF0YSxwZVtxJXBlLmxlbmd0aF0pKX0pLHRoaXMuY29tcHV0ZVN0YXRzKFQpfX1jYXRjaChwZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBjaGFydCBzZXJpZXM6IixwZSl9fWFzeW5jIHVwZGF0ZVRpbWVXaW5kb3coKXtpZighdGhpcy5jaGFydHx8dGhpcy5yb2xsaW5nV2luZG93PD0wKXJldHVybjtsZXQgVD1EYXRlLm5vdygpLFc9VC10aGlzLnJvbGxpbmdXaW5kb3c7dHJ5e3RoaXMuY2hhcnQudGltZVNjYWxlKCkuc2V0VmlzaWJsZVJhbmdlKHtmcm9tOk1hdGguZmxvb3IoVy8xZTMpLHRvOk1hdGguZmxvb3IoVC8xZTMpfSl9Y2F0Y2h7fX1hc3luYyBhcHBlbmREYXRhKFQpe3RoaXMuY2hhcnQmJlQuZm9yRWFjaCgoVyxwZSk9PntsZXQgbWU9Vy5uYW1lfHxgc2VyaWVzLSR7cGV9YCxxPXRoaXMuc2VyaWVzQXBpcy5nZXQobWUpO2lmKCEoIXF8fFcuZGF0YS5sZW5ndGg9PT0wKSlmb3IobGV0IEggb2YgVy5kYXRhKXtsZXQgVT10aGlzLmNvbnZlcnREYXRhVG9MQyhbSF0pO1UubGVuZ3RoPjAmJnEudXBkYXRlKFVbMF0pfX0pfWFzeW5jIHVwZGF0ZU9wdGlvbnMoVCl7dGhpcy5jaGFydCYmdGhpcy5jaGFydC5hcHBseU9wdGlvbnMoVCl9YXN5bmMgcmVzaXplQ2hhcnQoKXt0aGlzLmNoYXJ0JiZ0aGlzLmNoYXJ0LnRpbWVTY2FsZSgpLmZpdENvbnRlbnQoKX1hc3luYyBmb3JjZVJlc2l6ZSgpe2F3YWl0IHRoaXMucmVzaXplQ2hhcnQoKX10b2dnbGVGdWxsUGFnZSgpe3RoaXMuaXNGdWxsUGFnZT0hdGhpcy5pc0Z1bGxQYWdlLHRoaXMuaXNGdWxsUGFnZT8odGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUuaW5zZXQ9IjAiLHRoaXMuc3R5bGUuekluZGV4PSIxMDAwMCIsdGhpcy5zdHlsZS5oZWlnaHQ9IjEwMHZoIix0aGlzLnN0eWxlLnBhZGRpbmc9IjAiLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpOih0aGlzLnN0eWxlLnBvc2l0aW9uPSIiLHRoaXMuc3R5bGUuaW5zZXQ9IiIsdGhpcy5zdHlsZS56SW5kZXg9IiIsdGhpcy5zdHlsZS5oZWlnaHQ9IiIsdGhpcy5zdHlsZS5wYWRkaW5nPSIiLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9IiIpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuY2hhcnQ/LnRpbWVTY2FsZSgpLmZpdENvbnRlbnQoKX0pfXN0YXJ0QXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbFRpbWVyfHwodGhpcy5hdXRvU2Nyb2xsVGltZXI9d2luZG93LnNldEludGVydmFsKCgpPT57dGhpcy51cGRhdGVUaW1lV2luZG93KCl9LHRoaXMuYXV0b1Njcm9sbEludGVydmFsKSl9c3RvcEF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGxUaW1lciYmKHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuYXV0b1Njcm9sbFRpbWVyKSx0aGlzLmF1dG9TY3JvbGxUaW1lcj1udWxsKX1zdGF0aWN7emkoYSxyKX19O3JldHVybiBmZT1hfSkoKX0pO3ZhciBBUXI9dSgoKT0+e203dCgpfSk7ZnVuY3Rpb24gY2YodCl7cmV0dXJuIHQ/UFFyLmxpZ2h0OlBRci5kYXJrfWZ1bmN0aW9uIGRmKHQsZSl7bGV0IHI9cGFyc2VJbnQodC5zbGljZSgxLDMpLDE2KSxhPXBhcnNlSW50KHQuc2xpY2UoMyw1KSwxNikscz1wYXJzZUludCh0LnNsaWNlKDUsNyksMTYpO3JldHVybmByZ2JhKCR7cn0sICR7YX0sICR7c30sICR7ZX0pYH1mdW5jdGlvbiBOUXIodCl7bGV0IGU9dD9FUXI6SVFyO3JldHVybntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iix0ZXh0U3R5bGU6e2NvbG9yOmUudGV4dFNlY29uZGFyeSxmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRTaXplOjEyfSx0b29sdGlwOntiYWNrZ3JvdW5kQ29sb3I6ZS5iZ1ByaW1hcnksYm9yZGVyQ29sb3I6ZS5ib3JkZXJEZWZhdWx0LHRleHRTdHlsZTp7Y29sb3I6ZS50ZXh0UHJpbWFyeSxmb250U2l6ZToxMn0sY29uZmluZTohMH0sbGVnZW5kOnt0ZXh0U3R5bGU6e2NvbG9yOmUudGV4dFNlY29uZGFyeSxmb250U2l6ZToxMn19fX1mdW5jdGlvbiB1Zih0KXtyZXR1cm4gdD9FUXI6SVFyfXZhciBFUXIsSVFyLFBRcixNdz11KCgpPT57bHQoKTtFUXI9c2wuY29sb3JzLmxpZ2h0LElRcj1zbC5jb2xvcnMuZGFyayxQUXI9e2Rhcms6WyIjNjBhNWZhIiwiIzJkZDRiZiIsIiNhNzhiZmEiLCIjZmJiZjI0IiwiIzM0ZDM5OSIsIiNmYjcxODUiXSxsaWdodDpbIiMzYjgyZjYiLCIjMTRiOGE2IiwiIzhiNWNmNiIsIiNmNTllMGIiLCIjMTBiOTgxIiwiI2Y0M2Y1ZSJdfTtpKGNmLCJnZXRFY2hhcnRzU2VyaWVzQ29sb3JzIik7aShkZiwiaGV4VG9SZ2JhIik7aShOUXIsImdldEVjaGFydHNUaGVtZU9wdGlvbnMiKTtpKHVmLCJnZXRUaGVtZUNvbG9ycyIpfSk7dmFyIGRGYSxPUXIsbTMsQXJlPXUoKCk9Pnt2ZSgpO01yKCk7cDMoKTtNdygpO25zKCk7ZEZhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxPUXI9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LG0zPSgoKT0+e2xldCB0PXllLGUscj1bXSxhPVtdO3JldHVybiBjbGFzcyBleHRlbmRzIHR7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0RWNoYXJ0c0Jhc2UiKX1zdGF0aWN7bGV0IG49dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUodFtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZT1bUCgpXSxkRmEodGhpcyxudWxsLGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShvPT4ibGFiZWwiaW4gbywiaGFzIiksZ2V0Omkobz0+by5sYWJlbCwiZ2V0Iiksc2V0OmkoKG8sbCk9PntvLmxhYmVsPWx9LCJzZXQiKX0sbWV0YWRhdGE6bn0scixhKSxuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KX0jZT1PUXIodGhpcyxyLCJVbnRpdGxlZCBDaGFydCIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChuKXt0aGlzLiNlPW59Y2hhcnRJbnN0YW5jZT0oT1FyKHRoaXMsYSksbnVsbCk7ZWNoYXJ0c0J1bmRsZT1udWxsO3Jlc2l6ZU9ic2VydmVyPW51bGw7Y29uc3RydWN0b3IoKXtzdXBlcigpLFphLnNldHVwKCksdGhpcy5yZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihhc3luYygpPT57aWYodGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bnVsbCksdGhpcy5jaGFydEluc3RhbmNlKXRyeXt0aGlzLmNoYXJ0SW5zdGFuY2UuZGlzcG9zZSgpLHRoaXMuY2hhcnRJbnN0YW5jZT1udWxsfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRpc3Bvc2luZyBFQ2hhcnRzIGluc3RhbmNlOiIsbil9fSl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjaGFydEhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHt0aGlzLmxhYmVsfTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydENvbnRhaW5lciI+PC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx0aGlzLmVjaGFydHNCdW5kbGU9YXdhaXQgc24uZ2V0SW5zdGFuY2UoKS5sb2FkRWNoYXJ0cygpLGF3YWl0IG5ldyBQcm9taXNlKG89PnJlcXVlc3RBbmltYXRpb25GcmFtZShvKSk7bGV0IG49dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpO2lmKG4pdHJ5e3RoaXMuY2hhcnRJbnN0YW5jZT10aGlzLmVjaGFydHNCdW5kbGUuaW5pdChuLG51bGwse3JlbmRlcmVyOiJzdmcifSksdGhpcy51cGRhdGVDaGFydCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5jaGFydEluc3RhbmNlPy5yZXNpemUoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShuKX1jYXRjaChvKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBFQ2hhcnRzOiIsbyl9fWFzeW5jIHVwZGF0ZWQobil7c3VwZXIudXBkYXRlZChuKSxuLmhhcygiZ29CcmlnaHQiKSYmdGhpcy5jaGFydEluc3RhbmNlJiZ0aGlzLmFwcGx5VGhlbWUoKX11cGRhdGVDaGFydCgpe2lmKCF0aGlzLmNoYXJ0SW5zdGFuY2UpcmV0dXJuO2xldCBuPU5Rcih0aGlzLmdvQnJpZ2h0KSxvPXRoaXMuYnVpbGRPcHRpb24oKSxsPXsuLi5uLC4uLm8sdGV4dFN0eWxlOnsuLi5uLnRleHRTdHlsZSwuLi5vLnRleHRTdHlsZXx8e319LHRvb2x0aXA6ey4uLm4udG9vbHRpcCwuLi5vLnRvb2x0aXB8fHt9fSxsZWdlbmQ6ey4uLm4ubGVnZW5kLC4uLm8ubGVnZW5kfHx7fSx0ZXh0U3R5bGU6ey4uLm4ubGVnZW5kPy50ZXh0U3R5bGV8fHt9LC4uLm8ubGVnZW5kPy50ZXh0U3R5bGV8fHt9fX19O3RoaXMuY2hhcnRJbnN0YW5jZS5zZXRPcHRpb24obCwhMCl9YXBwbHlUaGVtZSgpe3RoaXMudXBkYXRlQ2hhcnQoKX1hc3luYyBmb3JjZVJlc2l6ZSgpe3RoaXMuY2hhcnRJbnN0YW5jZT8ucmVzaXplKCl9fX0pKCl9KTt2YXIgUlFyLEZRcj11KCgpPT57dmUoKTt3YSgpO2c3dCgpO1JRcj1pKCgpPT57bGV0IHQ9WyIvYXBpL3VzZXJzIiwiL2FwaS9vcmRlcnMiLCIvYXBpL3Byb2R1Y3RzIiwiL2FwaS9hdXRoIiwiL2FwaS9zZWFyY2giXSxlPVt7bmFtZToiR0VUIixkYXRhOlsxMjQwLDg5MCw3MjAsMjEwMCw1NjBdfSx7bmFtZToiUE9TVCIsZGF0YTpbMzIwLDQ1MCwxODAsODkwLDQwXX0se25hbWU6IlBVVCIsZGF0YTpbOTAsMjEwLDE1MCwzMCwxMF19XSxyPVsiVVMtRWFzdCIsIlVTLVdlc3QiLCJFVSIsIkFzaWEiLCJPdGhlciJdLGE9W3tuYW1lOiJSZXF1ZXN0cyIsZGF0YTpbNDUwMCwzMjAwLDI4MDAsMTkwMCw2MDBdfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBzPT57bGV0IG49cy5xdWVyeVNlbGVjdG9yKCIjdmVydC1jaGFydCIpLG89cy5xdWVyeVNlbGVjdG9yKCIjaG9yaXotY2hhcnQiKSxsPXMucXVlcnlTZWxlY3RvcigiI3N0YWNrLWNoYXJ0Iik7cy5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goZD0+e2QudGV4dD8udHJpbSgpPT09IlJhbmRvbWl6ZSImJmQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bi5zZXJpZXM9ZS5tYXAocD0+KHsuLi5wLGRhdGE6cC5kYXRhLm1hcChoPT5NYXRoLnJvdW5kKGgqKC41K01hdGgucmFuZG9tKCkpKSl9KSksby5zZXJpZXM9YS5tYXAocD0+KHsuLi5wLGRhdGE6cC5kYXRhLm1hcChoPT5NYXRoLnJvdW5kKGgqKC41K01hdGgucmFuZG9tKCkpKSl9KSksbC5zZXJpZXM9ZS5tYXAocD0+KHsuLi5wLGRhdGE6cC5kYXRhLm1hcChoPT5NYXRoLnJvdW5kKGgqKC41K01hdGgucmFuZG9tKCkpKSl9KSl9KX0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke3JlYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY2hhcnRSb3cgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmFuZG9taXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Um93Ij4KICAgICAgICAgIDxkZWVzLWNoYXJ0LWJhcgogICAgICAgICAgICBpZD0idmVydC1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVlc3RzIGJ5IEVuZHBvaW50In0KICAgICAgICAgICAgLmNhdGVnb3JpZXM9JHt0fQogICAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7cz0+YCR7c30gcmVxYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LWJhcgogICAgICAgICAgICBpZD0iaG9yaXotY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJUcmFmZmljIGJ5IFJlZ2lvbiJ9CiAgICAgICAgICAgIC5jYXRlZ29yaWVzPSR7cn0KICAgICAgICAgICAgLnNlcmllcz0ke2F9CiAgICAgICAgICAgIC5ob3Jpem9udGFsPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke3M9PmAkeyhzLzFlMykudG9GaXhlZCgxKX1rYH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGVlcy1jaGFydC1iYXIKICAgICAgICAgIGlkPSJzdGFjay1jaGFydCIKICAgICAgICAgIC5sYWJlbD0keyJTdGFja2VkOiBSZXF1ZXN0cyBieSBFbmRwb2ludCJ9CiAgICAgICAgICAuY2F0ZWdvcmllcz0ke3R9CiAgICAgICAgICAuc2VyaWVzPSR7ZX0KICAgICAgICAgIC5zdGFja2VkPSR7ITB9CiAgICAgICAgICAudmFsdWVGb3JtYXR0ZXI9JHtzPT5gJHtzfSByZXFgfQogICAgICAgID48L2RlZXMtY2hhcnQtYmFyPgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIEJhciBjaGFydCB3aXRoIHZlcnRpY2FsLCBob3Jpem9udGFsLCBhbmQgc3RhY2tlZCBtb2RlcyDigKIKICAgICAgICAgIENsaWNrICdSYW5kb21pemUnIHRvIHVwZGF0ZSBkYXRhIHdpdGggYW5pbWF0aW9uCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHBmLEVyZT11KCgpPT57dmUoKTtsdCgpO3BmPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQogICAgZGVlcy10aWxlIHsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQogICAgLmNoYXJ0SGVhZGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBwYWRkaW5nOiAwIDhweCAwIDE2cHg7CiAgICB9CiAgICAuY2hhcnRMYWJlbCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgIH0KICAgIC5jaGFydENvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDA7CiAgICB9CiAgYF19KTt2YXIgQlFyLEhRcj11KCgpPT57dmUoKTtFcmUoKTtCUXI9Wy4uLnBmLHJlYGBdfSk7dmFyIHFRcixWUXI9dSgoKT0+e3ZlKCk7cVFyPWkodD0+d2AKICAgIDxkZWVzLXRpbGU+CiAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGFydExhYmVsIj4ke3QubGFiZWx9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgPC9kZWVzLXRpbGU+CiAgYCwicmVuZGVyQ2hhcnRCYXIiKX0pO3ZhciBhZyx1bCxqUXIsZzd0PXUoKCk9Pnt2ZSgpO0FyZSgpO0ZRcigpO0hRcigpO1ZRcigpO013KCk7YWc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHVsPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxqUXI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWNoYXJ0LWJhciIpXSxlLHI9W10sYSxzPW0zLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQ2hhcnRCYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6QXJyYXl9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sTj1bUCh7YXR0cmlidXRlOiExfSldLGFnKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2F0ZWdvcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iY2F0ZWdvcmllcyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmNhdGVnb3JpZXMsImdldCIpLHNldDppKChFLEIpPT57RS5jYXRlZ29yaWVzPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sbyxsKSxhZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2VyaWVzImluIEUsImhhcyIpLGdldDppKEU9PkUuc2VyaWVzLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0Uuc2VyaWVzPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sZCxmKSxhZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhvcml6b250YWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Imhvcml6b250YWwiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5ob3Jpem9udGFsLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuaG9yaXpvbnRhbD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGgsbSksYWcodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGFja2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzdGFja2VkImluIEUsImhhcyIpLGdldDppKEU9PkUuc3RhY2tlZCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnN0YWNrZWQ9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxiLGcpLGFnKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0xlZ2VuZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2hvd0xlZ2VuZCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNob3dMZWdlbmQsImdldCIpLHNldDppKChFLEIpPT57RS5zaG93TGVnZW5kPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sayxNKSxhZyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlRm9ybWF0dGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ2YWx1ZUZvcm1hdHRlciJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnZhbHVlRm9ybWF0dGVyLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UudmFsdWVGb3JtYXR0ZXI9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxfLFMpLGFnKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkx9LG51bGwsciksTz1hPWUudmFsdWUsTCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpMfSl9c3RhdGljIGRlbW89UlFyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiXTsjZT11bCh0aGlzLG8sW10pO2dldCBjYXRlZ29yaWVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGNhdGVnb3JpZXMoTCl7dGhpcy4jZT1MfSN0PSh1bCh0aGlzLGwpLHVsKHRoaXMsZCxbXSkpO2dldCBzZXJpZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VyaWVzKEwpe3RoaXMuI3Q9TH0jcj0odWwodGhpcyxmKSx1bCh0aGlzLGgsITEpKTtnZXQgaG9yaXpvbnRhbCgpe3JldHVybiB0aGlzLiNyfXNldCBob3Jpem9udGFsKEwpe3RoaXMuI3I9TH0jYT0odWwodGhpcyxtKSx1bCh0aGlzLGIsITEpKTtnZXQgc3RhY2tlZCgpe3JldHVybiB0aGlzLiNhfXNldCBzdGFja2VkKEwpe3RoaXMuI2E9TH0jaT0odWwodGhpcyxnKSx1bCh0aGlzLGssITApKTtnZXQgc2hvd0xlZ2VuZCgpe3JldHVybiB0aGlzLiNpfXNldCBzaG93TGVnZW5kKEwpe3RoaXMuI2k9TH0jcz0odWwodGhpcyxNKSx1bCh0aGlzLF8sTD0+YCR7TH1gKSk7Z2V0IHZhbHVlRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbHVlRm9ybWF0dGVyKEwpe3RoaXMuI3M9TH1zdGF0aWMgc3R5bGVzPUJRcjtyZW5kZXIoKXtyZXR1cm4gcVFyKHRoaXMpfWFzeW5jIHVwZGF0ZWQoTCl7c3VwZXIudXBkYXRlZChMKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJihMLmhhcygiY2F0ZWdvcmllcyIpfHxMLmhhcygic2VyaWVzIil8fEwuaGFzKCJob3Jpem9udGFsIil8fEwuaGFzKCJzdGFja2VkIil8fEwuaGFzKCJzaG93TGVnZW5kIikpJiZ0aGlzLnVwZGF0ZUNoYXJ0KCl9YnVpbGRPcHRpb24oKXtsZXQgTD11Zih0aGlzLmdvQnJpZ2h0KSxFPWNmKHRoaXMuZ29CcmlnaHQpLEI9dGhpcy52YWx1ZUZvcm1hdHRlcixDPXt0eXBlOiJjYXRlZ29yeSIsZGF0YTp0aGlzLmNhdGVnb3JpZXMsYXhpc0xpbmU6e2xpbmVTdHlsZTp7Y29sb3I6TC5ib3JkZXJTdHJvbmd9fSxheGlzTGFiZWw6e2NvbG9yOkwudGV4dE11dGVkfX0sej17dHlwZToidmFsdWUiLGF4aXNMaW5lOntzaG93OiExfSxheGlzTGFiZWw6e2NvbG9yOkwudGV4dE11dGVkLGZvcm1hdHRlcjppKFo9PkIoWiksImZvcm1hdHRlciIpfSxzcGxpdExpbmU6e2xpbmVTdHlsZTp7Y29sb3I6TC5ib3JkZXJTdWJ0bGV9fX0sQT10aGlzLmdvQnJpZ2h0Py4xNTouMjUsJD10aGlzLmhvcml6b250YWw/WzAsNCw0LDBdOls0LDQsMCwwXSxGPVswLDAsMCwwXSxZPVtdLEc9dGhpcy5zZXJpZXMubWFwKChaLGRlKT0+e2xldCBEPVouY29sb3J8fEVbZGUlRS5sZW5ndGhdO3JldHVybiBZLnB1c2goe25hbWU6Wi5uYW1lLGl0ZW1TdHlsZTp7Y29sb3I6RH19KSx7bmFtZTpaLm5hbWUsdHlwZToiYmFyIixkYXRhOlouZGF0YSxzdGFjazp0aGlzLnN0YWNrZWQ/InRvdGFsIjp2b2lkIDAsaXRlbVN0eWxlOntjb2xvcjpkZihELEEpLGJvcmRlckNvbG9yOkQsYm9yZGVyV2lkdGg6MSxib3JkZXJSYWRpdXM6dGhpcy5zdGFja2VkP0Y6JH0sYmFyTWF4V2lkdGg6NDAsYmFyR2FwOiIyMCUiLGVtcGhhc2lzOntpdGVtU3R5bGU6e2NvbG9yOmRmKEQsQSsuMTUpLGJvcmRlckNvbG9yOkQsYm9yZGVyV2lkdGg6MS41fX19fSk7aWYodGhpcy5zdGFja2VkJiZHLmxlbmd0aD4wKXtsZXQgWj1HW0cubGVuZ3RoLTFdO1ouaXRlbVN0eWxlLmJvcmRlclJhZGl1cz0kfXJldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJheGlzIixheGlzUG9pbnRlcjp7dHlwZToic2hhZG93In0sZm9ybWF0dGVyOmkoWj0+e2xldCBkZT1BcnJheS5pc0FycmF5KFopP1o6W1pdLEQ9YDxzdHJvbmc+JHtkZVswXS5heGlzVmFsdWVMYWJlbH08L3N0cm9uZz48YnIvPmA7Zm9yKGxldCBRIG9mIGRlKXtsZXQgVD1gPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMHB4O3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7YmFja2dyb3VuZC1jb2xvcjoke1EuYm9yZGVyQ29sb3J8fFEuY29sb3J9OyI+PC9zcGFuPmA7RCs9YCR7VH0ke1Euc2VyaWVzTmFtZX06IDxzdHJvbmc+JHtCKFEudmFsdWUpfTwvc3Ryb25nPjxici8+YH1yZXR1cm4gRH0sImZvcm1hdHRlciIpfSxsZWdlbmQ6dGhpcy5zaG93TGVnZW5kJiZ0aGlzLnNlcmllcy5sZW5ndGg+MT97Ym90dG9tOjgsaXRlbVdpZHRoOjEwLGl0ZW1IZWlnaHQ6MTAsZGF0YTpZfTp7c2hvdzohMX0sZ3JpZDp7bGVmdDoxNixyaWdodDoxNix0b3A6MTYsYm90dG9tOnRoaXMuc2hvd0xlZ2VuZCYmdGhpcy5zZXJpZXMubGVuZ3RoPjE/NDA6MTYsY29udGFpbkxhYmVsOiEwfSx4QXhpczp0aGlzLmhvcml6b250YWw/ejpDLHlBeGlzOnRoaXMuaG9yaXpvbnRhbD9DOnosc2VyaWVzOkd9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx1bCh0aGlzLFMpfXN0YXRpY3t1bChhLHIpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgVVFyPXUoKCk9PntnN3QoKX0pO3ZhciBXUXIsR1FyPXUoKCk9Pnt2ZSgpO3dhKCk7Yjd0KCk7V1FyPWkoKCk9PntsZXQgdD1be25hbWU6IkRvY3VtZW50cyIsdmFsdWU6NDJ9LHtuYW1lOiJNZWRpYSIsdmFsdWU6Mjh9LHtuYW1lOiJBcHBsaWNhdGlvbnMiLHZhbHVlOjE1fSx7bmFtZToiU3lzdGVtIix2YWx1ZToxMH0se25hbWU6Ik90aGVyIix2YWx1ZTo1fV0sZT1be25hbWU6IkhlYWx0aHkiLHZhbHVlOjE1Nn0se25hbWU6Ildhcm5pbmciLHZhbHVlOjIzfSx7bmFtZToiQ3JpdGljYWwiLHZhbHVlOjh9LHtuYW1lOiJVbmtub3duIix2YWx1ZTozfV0scj1be25hbWU6IkFQSSIsdmFsdWU6NDUyMDB9LHtuYW1lOiJTdGF0aWMgQXNzZXRzIix2YWx1ZToyMzEwMH0se25hbWU6IldlYlNvY2tldCIsdmFsdWU6MTI4MDB9LHtuYW1lOiJHcmFwaFFMIix2YWx1ZTo4OTAwfV07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IHM9YS5xdWVyeVNlbGVjdG9yKCIjZGlzay1jaGFydCIpLG49YS5xdWVyeVNlbGVjdG9yKCIjc3RhdHVzLWNoYXJ0Iiksbz1hLnF1ZXJ5U2VsZWN0b3IoIiN0cmFmZmljLWNoYXJ0Iik7YS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goYz0+e2MudGV4dD8udHJpbSgpPT09IlJhbmRvbWl6ZSImJmMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57cy5kYXRhPXQubWFwKGY9Pih7Li4uZix2YWx1ZTpNYXRoLnJvdW5kKGYudmFsdWUqKC41K01hdGgucmFuZG9tKCkpKX0pKSxuLmRhdGE9ZS5tYXAoZj0+KHsuLi5mLHZhbHVlOk1hdGgucm91bmQoZi52YWx1ZSooLjMrTWF0aC5yYW5kb20oKSoxLjQpKX0pKSxvLmRhdGE9ci5tYXAoZj0+KHsuLi5mLHZhbHVlOk1hdGgucm91bmQoZi52YWx1ZSooLjUrTWF0aC5yYW5kb20oKSkpfSkpfSl9KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtyZWAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLmNoYXJ0Um93IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIH0KICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJhbmRvbWl6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydFJvdyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgICBpZD0iZGlzay1jaGFydCIKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2sgVXNhZ2UgKEdCKSJ9CiAgICAgICAgICAgIC5kYXRhPSR7dH0KICAgICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7YT0+YCR7YX0gR0JgfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1kb251dD4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgICBpZD0ic3RhdHVzLWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiU2VydmljZSBTdGF0dXMifQogICAgICAgICAgICAuZGF0YT0ke2V9CiAgICAgICAgICAgIC52YWx1ZUZvcm1hdHRlcj0ke2E9PmAke2F9IHNlcnZpY2VzYH0KICAgICAgICAgICAgLmlubmVyUmFkaXVzUGVyY2VudD0keyIwJSJ9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWRvbnV0PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGVlcy1jaGFydC1kb251dAogICAgICAgICAgaWQ9InRyYWZmaWMtY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiVHJhZmZpYyBEaXN0cmlidXRpb24ifQogICAgICAgICAgLmRhdGE9JHtyfQogICAgICAgICAgLnZhbHVlRm9ybWF0dGVyPSR7YT0+YCR7KGEvMWUzKS50b0ZpeGVkKDEpfWsgcmVxYH0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWRvbnV0PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIERvbnV0IGNoYXJ0IHdpdGggY29uZmlndXJhYmxlIGlubmVyIHJhZGl1cyAoc2V0IHRvIDAlIGZvciBmdWxsIHBpZSkg4oCiCiAgICAgICAgICBDbGljayAnUmFuZG9taXplJyB0byB1cGRhdGUgZGF0YSB3aXRoIGFuaW1hdGlvbgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBZUXIsS1FyPXUoKCk9Pnt2ZSgpO0VyZSgpO1lRcj1bLi4ucGYscmVgCiAgICA6aG9zdCB7CiAgICAgIGhlaWdodDogMzYwcHg7CiAgICB9CiAgICAuY2hhcnRDb250YWluZXIgewogICAgICBpbnNldDogMTJweCAwOwogICAgfQogIGBdfSk7dmFyIFpRcixRUXI9dSgoKT0+e3ZlKCk7WlFyPWkodD0+d2AKICAgIDxkZWVzLXRpbGU+CiAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2hhcnRIZWFkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGFydExhYmVsIj4ke3QubGFiZWx9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgPC9kZWVzLXRpbGU+CiAgYCwicmVuZGVyQ2hhcnREb251dCIpfSk7dmFyIEN3LF9jLFhRcixiN3Q9dSgoKT0+e3ZlKCk7QXJlKCk7R1FyKCk7S1FyKCk7UVFyKCk7TXcoKTtDdz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sX2M9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFhRcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtY2hhcnQtZG9udXQiKV0sZSxyPVtdLGEscz1tMyxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0RG9udXQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7YXR0cmlidXRlOiExfSldLEN3KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZGF0YSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmRhdGEsImdldCIpLHNldDppKChTLE8pPT57Uy5kYXRhPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbyxsKSxDdyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMZWdlbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNob3dMZWdlbmQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaG93TGVnZW5kLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc2hvd0xlZ2VuZD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksQ3codGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGFiZWxzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzaG93TGFiZWxzImluIFMsImhhcyIpLGdldDppKFM9PlMuc2hvd0xhYmVscywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnNob3dMYWJlbHM9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLEN3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5uZXJSYWRpdXNQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpbm5lclJhZGl1c1BlcmNlbnQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pbm5lclJhZGl1c1BlcmNlbnQsImdldCIpLHNldDppKChTLE8pPT57Uy5pbm5lclJhZGl1c1BlcmNlbnQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEN3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWVGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InZhbHVlRm9ybWF0dGVyImluIFMsImhhcyIpLGdldDppKFM9PlMudmFsdWVGb3JtYXR0ZXIsImdldCIpLHNldDppKChTLE8pPT57Uy52YWx1ZUZvcm1hdHRlcj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGssTSksQ3cobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxyKSxOPWE9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1XUXI7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPV9jKHRoaXMsbyxbXSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YShfKXt0aGlzLiNlPV99I3Q9KF9jKHRoaXMsbCksX2ModGhpcyxkLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hvd0xlZ2VuZChfKXt0aGlzLiN0PV99I3I9KF9jKHRoaXMsZiksX2ModGhpcyxoLCEwKSk7Z2V0IHNob3dMYWJlbHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd0xhYmVscyhfKXt0aGlzLiNyPV99I2E9KF9jKHRoaXMsbSksX2ModGhpcyxiLCI1NSUiKSk7Z2V0IGlubmVyUmFkaXVzUGVyY2VudCgpe3JldHVybiB0aGlzLiNhfXNldCBpbm5lclJhZGl1c1BlcmNlbnQoXyl7dGhpcy4jYT1ffSNpPShfYyh0aGlzLGcpLF9jKHRoaXMsayxfPT5gJHtffWApKTtnZXQgdmFsdWVGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmFsdWVGb3JtYXR0ZXIoXyl7dGhpcy4jaT1ffXN0YXRpYyBzdHlsZXM9WVFyO3JlbmRlcigpe3JldHVybiBaUXIodGhpcyl9YXN5bmMgdXBkYXRlZChfKXtzdXBlci51cGRhdGVkKF8pLHRoaXMuY2hhcnRJbnN0YW5jZSYmKF8uaGFzKCJkYXRhIil8fF8uaGFzKCJzaG93TGVnZW5kIil8fF8uaGFzKCJzaG93TGFiZWxzIil8fF8uaGFzKCJpbm5lclJhZGl1c1BlcmNlbnQiKSkmJnRoaXMudXBkYXRlQ2hhcnQoKX1idWlsZE9wdGlvbigpe2xldCBfPXVmKHRoaXMuZ29CcmlnaHQpLFM9Y2YodGhpcy5nb0JyaWdodCksTz10aGlzLmdvQnJpZ2h0Py4xNTouMixMPVtdLEU9dGhpcy5kYXRhLm1hcCgoQyx6KT0+e2xldCBBPUMuY29sb3J8fFNbeiVTLmxlbmd0aF07cmV0dXJuIEwucHVzaCh7bmFtZTpDLm5hbWUsaXRlbVN0eWxlOntjb2xvcjpBfX0pLHtuYW1lOkMubmFtZSx2YWx1ZTpDLnZhbHVlLGl0ZW1TdHlsZTp7Y29sb3I6ZGYoQSxPKSxib3JkZXJDb2xvcjpBLGJvcmRlcldpZHRoOjF9LGVtcGhhc2lzOntpdGVtU3R5bGU6e2NvbG9yOmRmKEEsTysuMTUpLGJvcmRlckNvbG9yOkEsYm9yZGVyV2lkdGg6MS41fX19fSksQj10aGlzLnZhbHVlRm9ybWF0dGVyO3JldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJpdGVtIixmb3JtYXR0ZXI6aShDPT5gJHtgPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMHB4O3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7YmFja2dyb3VuZC1jb2xvcjoke0MuZGF0YT8uaXRlbVN0eWxlPy5ib3JkZXJDb2xvcnx8Qy5jb2xvcn07Ij48L3NwYW4+YH0ke0MubmFtZX06IDxzdHJvbmc+JHtCKEMudmFsdWUpfTwvc3Ryb25nPiAoJHtDLnBlcmNlbnR9JSlgLCJmb3JtYXR0ZXIiKX0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZD97b3JpZW50OiJ2ZXJ0aWNhbCIscmlnaHQ6MTYsdG9wOiJjZW50ZXIiLGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwLGl0ZW1HYXA6MTIsZGF0YTpMLGZvcm1hdHRlcjppKEM9PntsZXQgej10aGlzLmRhdGEuZmluZChBPT5BLm5hbWU9PT1DKTtyZXR1cm4gej9gJHtDfSAgJHtCKHoudmFsdWUpfWA6Q30sImZvcm1hdHRlciIpfTp7c2hvdzohMX0sc2VyaWVzOlt7dHlwZToicGllIixyYWRpdXM6W3RoaXMuaW5uZXJSYWRpdXNQZXJjZW50LCI4NSUiXSxjZW50ZXI6dGhpcy5zaG93TGVnZW5kP1siMzUlIiwiNTAlIl06WyI1MCUiLCI1MCUiXSxhdm9pZExhYmVsT3ZlcmxhcDohMCxwYWRBbmdsZToyLGl0ZW1TdHlsZTp7Ym9yZGVyUmFkaXVzOjR9LGxhYmVsOnRoaXMuc2hvd0xhYmVscz97c2hvdzohMCxmb3JtYXR0ZXI6IntifToge2R9JSIsZm9udFNpemU6MTEsY29sb3I6Xy50ZXh0U2Vjb25kYXJ5LHRleHRCb3JkZXJDb2xvcjoidHJhbnNwYXJlbnQifTp7c2hvdzohMX0sZGF0YTpFfV19fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxfYyh0aGlzLE0pfXN0YXRpY3tfYyhhLHIpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgSlFyPXUoKCk9PntiN3QoKX0pO3ZhciBlWHIsdFhyPXUoKCk9Pnt2ZSgpO3dhKCk7eDd0KCk7ZVhyPWkoKCk9PntsZXQgdD1be3ZhbHVlOjYwLGNvbG9yOiJoc2woMTQyIDc2JSAzNiUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMzggOTIlIDUwJSkifSx7dmFsdWU6MTAwLGNvbG9yOiJoc2woMCA3MiUgNTAlKSJ9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIiNjcHUtZ2F1Z2UiKSxhPWUucXVlcnlTZWxlY3RvcigiI21lbS1nYXVnZSIpLHM9ZS5xdWVyeVNlbGVjdG9yKCIjc2xhLWdhdWdlIiksbj1udWxsO2UucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGw9PntsZXQgYz1sLnRleHQ/LnRyaW0oKTtjPT09IkFuaW1hdGUiP2wuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bnx8KG49d2luZG93LnNldEludGVydmFsKCgpPT57ci52YWx1ZT1NYXRoLnJvdW5kKDMwK01hdGgucmFuZG9tKCkqNjApLGEudmFsdWU9TWF0aC5yb3VuZCg0MCtNYXRoLnJhbmRvbSgpKjUwKSxzLnZhbHVlPU1hdGgucm91bmQoKDk1K01hdGgucmFuZG9tKCkqNSkqMTAwKS8xMDB9LDJlMykpfSk6Yz09PSJTdG9wIj9sLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e24mJih3aW5kb3cuY2xlYXJJbnRlcnZhbChuKSxuPW51bGwpfSk6Yz09PSJTcGlrZSImJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci52YWx1ZT05NSxhLnZhbHVlPTg4LHMudmFsdWU9OTYuNX0pfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7cmVgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5nYXVnZVJvdyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QW5pbWF0ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNwaWtlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImdhdWdlUm93Ij4KICAgICAgICAgIDxkZWVzLWNoYXJ0LWdhdWdlCiAgICAgICAgICAgIGlkPSJjcHUtZ2F1Z2UiCiAgICAgICAgICAgIC5sYWJlbD0keyJDUFUgVXNhZ2UifQogICAgICAgICAgICAudmFsdWU9JHs0Mn0KICAgICAgICAgICAgLnVuaXQ9JHsiJSJ9CiAgICAgICAgICAgIC50aHJlc2hvbGRzPSR7dH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtZ2F1Z2U+CgogICAgICAgICAgPGRlZXMtY2hhcnQtZ2F1Z2UKICAgICAgICAgICAgaWQ9Im1lbS1nYXVnZSIKICAgICAgICAgICAgLmxhYmVsPSR7Ik1lbW9yeSBVc2FnZSJ9CiAgICAgICAgICAgIC52YWx1ZT0kezY3fQogICAgICAgICAgICAudW5pdD0keyIlIn0KICAgICAgICAgICAgLnRocmVzaG9sZHM9JHt0fQogICAgICAgICAgPjwvZGVlcy1jaGFydC1nYXVnZT4KCiAgICAgICAgICA8ZGVlcy1jaGFydC1nYXVnZQogICAgICAgICAgICBpZD0ic2xhLWdhdWdlIgogICAgICAgICAgICAubGFiZWw9JHsiU0xBIFVwdGltZSJ9CiAgICAgICAgICAgIC52YWx1ZT0kezk5Ljh9CiAgICAgICAgICAgIC5taW49JHs5NX0KICAgICAgICAgICAgLm1heD0kezEwMH0KICAgICAgICAgICAgLnVuaXQ9JHsiJSJ9CiAgICAgICAgICAgIC5zaG93VGlja3M9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtZ2F1Z2U+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgR2F1Z2UgY2hhcnQgd2l0aCBhbmltYXRlZCB2YWx1ZSB0cmFuc2l0aW9ucyBhbmQgdGhyZXNob2xkIGNvbG9yaW5nIOKAogogICAgICAgICAgQ2xpY2sgJ0FuaW1hdGUnIGZvciBsaXZlIHVwZGF0ZXMsICdTcGlrZScgdG8gc2ltdWxhdGUgaGlnaCBsb2FkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIHJYcixhWHI9dSgoKT0+e3ZlKCk7RXJlKCk7clhyPVsuLi5wZixyZWAKICAgIDpob3N0IHsKICAgICAgaGVpZ2h0OiAzMjBweDsKICAgIH0KICBgXX0pO3ZhciBpWHIsc1hyPXUoKCk9Pnt2ZSgpO2lYcj1pKHQ9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHt0LmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0R2F1Z2UiKX0pO3ZhciBpZyxwbCxuWHIseDd0PXUoKCk9Pnt2ZSgpO0FyZSgpO3RYcigpO2FYcigpO3NYcigpO013KCk7aWc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHBsPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxuWHI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWNoYXJ0LWdhdWdlIildLGUscj1bXSxhLHM9bTMsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNDaGFydEdhdWdlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEw9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpOdW1iZXJ9KV0sYz1bUCh7dHlwZTpOdW1iZXJ9KV0scD1bUCh7dHlwZTpOdW1iZXJ9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpBcnJheX0pXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0saWcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idmFsdWUiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS52YWx1ZSwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnZhbHVlPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sbyxsKSxpZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWluImluIEUsImhhcyIpLGdldDppKEU9PkUubWluLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UubWluPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sZCxmKSxpZyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibWF4ImluIEUsImhhcyIpLGdldDppKEU9PkUubWF4LCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UubWF4PUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0saCxtKSxpZyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVuaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InVuaXQiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS51bml0LCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UudW5pdD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGIsZyksaWcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHJlc2hvbGRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ0aHJlc2hvbGRzImluIEUsImhhcyIpLGdldDppKEU9PkUudGhyZXNob2xkcywiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnRocmVzaG9sZHM9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxrLE0pLGlnKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RpY2tzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJzaG93VGlja3MiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5zaG93VGlja3MsImdldCIpLHNldDppKChFLEIpPT57RS5zaG93VGlja3M9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxfLFMpLGlnKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkx9LG51bGwsciksTz1hPWUudmFsdWUsTCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpMfSl9c3RhdGljIGRlbW89ZVhyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiXTsjZT1wbCh0aGlzLG8sMCk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEwpe3RoaXMuI2U9TH0jdD0ocGwodGhpcyxsKSxwbCh0aGlzLGQsMCkpO2dldCBtaW4oKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWluKEwpe3RoaXMuI3Q9TH0jcj0ocGwodGhpcyxmKSxwbCh0aGlzLGgsMTAwKSk7Z2V0IG1heCgpe3JldHVybiB0aGlzLiNyfXNldCBtYXgoTCl7dGhpcy4jcj1MfSNhPShwbCh0aGlzLG0pLHBsKHRoaXMsYiwiJSIpKTtnZXQgdW5pdCgpe3JldHVybiB0aGlzLiNhfXNldCB1bml0KEwpe3RoaXMuI2E9TH0jaT0ocGwodGhpcyxnKSxwbCh0aGlzLGssW10pKTtnZXQgdGhyZXNob2xkcygpe3JldHVybiB0aGlzLiNpfXNldCB0aHJlc2hvbGRzKEwpe3RoaXMuI2k9TH0jcz0ocGwodGhpcyxNKSxwbCh0aGlzLF8sITApKTtnZXQgc2hvd1RpY2tzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNob3dUaWNrcyhMKXt0aGlzLiNzPUx9c3RhdGljIHN0eWxlcz1yWHI7cmVuZGVyKCl7cmV0dXJuIGlYcih0aGlzKX1hc3luYyB1cGRhdGVkKEwpe3N1cGVyLnVwZGF0ZWQoTCksdGhpcy5jaGFydEluc3RhbmNlJiYoTC5oYXMoInZhbHVlIil8fEwuaGFzKCJtaW4iKXx8TC5oYXMoIm1heCIpfHxMLmhhcygidW5pdCIpfHxMLmhhcygidGhyZXNob2xkcyIpfHxMLmhhcygic2hvd1RpY2tzIikpJiZ0aGlzLnVwZGF0ZUNoYXJ0KCl9YnVpbGRPcHRpb24oKXtsZXQgTD11Zih0aGlzLmdvQnJpZ2h0KSxCPWNmKHRoaXMuZ29CcmlnaHQpWzBdLEM7aWYodGhpcy50aHJlc2hvbGRzLmxlbmd0aD4wKXtsZXQgej1bLi4udGhpcy50aHJlc2hvbGRzXS5zb3J0KChBLCQpPT5BLnZhbHVlLSQudmFsdWUpO0M9ei5tYXAoQT0+WyhBLnZhbHVlLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pLEEuY29sb3JdKSxDW0MubGVuZ3RoLTFdWzBdPDEmJkMucHVzaChbMSx6W3oubGVuZ3RoLTFdLmNvbG9yXSl9ZWxzZSBDPVtbMSxCXV07cmV0dXJue3Nlcmllczpbe3R5cGU6ImdhdWdlIixtaW46dGhpcy5taW4sbWF4OnRoaXMubWF4LHN0YXJ0QW5nbGU6MjIwLGVuZEFuZ2xlOi00MCxwcm9ncmVzczp7c2hvdzohMCx3aWR0aDoxNCxyb3VuZENhcDohMH0scG9pbnRlcjp7c2hvdzohMCxsZW5ndGg6IjYwJSIsd2lkdGg6NSxpdGVtU3R5bGU6e2NvbG9yOiJhdXRvIn19LGF4aXNMaW5lOntsaW5lU3R5bGU6e3dpZHRoOjE0LGNvbG9yOkMsb3BhY2l0eTouM319LGF4aXNUaWNrOntzaG93OnRoaXMuc2hvd1RpY2tzLGRpc3RhbmNlOi0yMCxsZW5ndGg6NixsaW5lU3R5bGU6e2NvbG9yOkwuYm9yZGVyU3Ryb25nLHdpZHRoOjF9fSxzcGxpdExpbmU6e3Nob3c6dGhpcy5zaG93VGlja3MsZGlzdGFuY2U6LTI0LGxlbmd0aDoxMCxsaW5lU3R5bGU6e2NvbG9yOkwudGV4dE11dGVkLHdpZHRoOjJ9fSxheGlzTGFiZWw6e3Nob3c6dGhpcy5zaG93VGlja3MsZGlzdGFuY2U6MzAsY29sb3I6TC50ZXh0TXV0ZWQsZm9udFNpemU6MTF9LGRldGFpbDp7dmFsdWVBbmltYXRpb246ITAsZm9udFNpemU6MjgsZm9udFdlaWdodDo2MDAsb2Zmc2V0Q2VudGVyOlswLCI2NSUiXSxjb2xvcjpMLnRleHRQcmltYXJ5LGZvcm1hdHRlcjpge3ZhbHVlfSR7dGhpcy51bml0fWB9LHRpdGxlOntzaG93OiExfSxkYXRhOlt7dmFsdWU6dGhpcy52YWx1ZX1dfV19fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxwbCh0aGlzLFMpfXN0YXRpY3twbChhLHIpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgb1hyPXUoKCk9Pnt4N3QoKX0pO3ZhciBsWHIsY1hyPXUoKCk9Pnt2ZSgpO3dhKCk7bFhyPWkoKCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjc3RydWN0dXJlZC1sb2ciKSxyPXQucXVlcnlTZWxlY3RvcigiI3Jhdy1sb2ciKSxhLHMsbj1bIlNlcnZlciIsIkRhdGFiYXNlIiwiQVBJIiwiQXV0aCIsIkNhY2hlIiwiUXVldWUiLCJXZWJTb2NrZXQiLCJTY2hlZHVsZXIiXSxvPXtkZWJ1ZzpbIkxvYWRpbmcgbW9kdWxlOiB7e21vZHVsZX19IiwiQ2FjaGUgaGl0IGZvciBrZXk6IHt7a2V5fX0iLCJTUUwgcXVlcnkgZXhlY3V0ZWQgaW4ge3t0aW1lfX1tcyIsIlJlcXVlc3QgaGVhZGVyczoge3toZWFkZXJzfX0iLCJFbnZpcm9ubWVudCB2YXJpYWJsZSBsb2FkZWQ6IHt7dmFyfX0iXSxpbmZvOlsiUmVxdWVzdCByZWNlaXZlZDoge3ttZXRob2R9fSB7e3BhdGh9fSIsIlVzZXIge3t1c2VySWR9fSBhdXRoZW50aWNhdGVkIHN1Y2Nlc3NmdWxseSIsIlByb2Nlc3Npbmcgam9iIHt7am9iSWR9fSBmcm9tIHF1ZXVlIiwnU2NoZWR1bGVkIHRhc2sgInt7dGFza319IiBzdGFydGVkJywiV2ViU29ja2V0IGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgZnJvbSB7e2lwfX0iXSx3YXJuOlsiU2xvdyBxdWVyeSBkZXRlY3RlZDoge3txdWVyeX19ICh7e3RpbWV9fW1zKSIsIk1lbW9yeSB1c2FnZSBhdCB7e3BlcmNlbnR9fSUiLCJSYXRlIGxpbWl0IGFwcHJvYWNoaW5nIGZvciBJUCB7e2lwfX0iLCJEZXByZWNhdGVkIEFQSSBlbmRwb2ludCBjYWxsZWQ6IHt7ZW5kcG9pbnR9fSIsIkNlcnRpZmljYXRlIGV4cGlyZXMgaW4ge3tkYXlzfX0gZGF5cyJdLGVycm9yOlsiRGF0YWJhc2UgY29ubmVjdGlvbiBsb3N0OiB7e2Vycm9yfX0iLCJGYWlsZWQgdG8gcHJvY2VzcyByZXF1ZXN0OiB7e2Vycm9yfX0iLCJBdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIge3t1c2VyfX0iLCJGaWxlIG5vdCBmb3VuZDoge3twYXRofX0iLCJTZXJ2aWNlIHVuYXZhaWxhYmxlOiB7e3NlcnZpY2V9fSJdLHN1Y2Nlc3M6WyJTZXJ2ZXIgc3RhcnRlZCBzdWNjZXNzZnVsbHkgb24gcG9ydCB7e3BvcnR9fSIsIkRhdGFiYXNlIG1pZ3JhdGlvbiBjb21wbGV0ZWQiLCJCYWNrdXAgY29tcGxldGVkOiB7e3NpemV9fSBNQiIsIlNTTCBjZXJ0aWZpY2F0ZSByZW5ld2VkIiwiSGVhbHRoIGNoZWNrIHBhc3NlZDogYWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiXX0sbD1bIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS4xMjNaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbbmdpbnhdIEdFVCAvYXBpL2hlYWx0aCAyMDAgLSAybXMiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDUuNDU2Wlx4MUJbMG0gXHgxQlszM21XQVJOXHgxQlswbSAgW3JlZGlzXSBDb25uZWN0aW9uIHBvb2wgcnVubmluZyBsb3c6IDMvMTAiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDUuNzg5Wlx4MUJbMG0gXHgxQlszMW1FUlJPUlx4MUJbMG0gW21vbmdvZGJdIFF1ZXJ5IHRpbWVvdXQgYWZ0ZXIgMzAwMDBtcyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ni4wMTJaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbYXBwXSBQcm9jZXNzaW5nIGJhdGNoIGpvYiAje3tqb2JJZH19IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjM0NVpceDFCWzBtIFx4MUJbMzJtT0tceDFCWzBtICAgIFtoZWFsdGhdIEFsbCBzZXJ2aWNlcyBoZWFsdGh5IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjY3OFpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFtrYWZrYV0gTWVzc2FnZSBjb25zdW1lZCBmcm9tIHRvcGljOiBldmVudHMiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuMDAxWlx4MUJbMG0gXHgxQlszNW1ERUJVR1x4MUJbMG0gW2dycGNdIFJlcXVlc3QgcmVjZWl2ZWQ6IEdldFVzZXIoaWQ9e3t1c2VySWR9fSkiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuMjM0Wlx4MUJbMG0gXHgxQlszMW1FUlJPUlx4MUJbMG0gW2F1dGhdIFRva2VuIHZhbGlkYXRpb24gZmFpbGVkOiBleHBpcmVkIiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ3LjU2N1pceDFCWzBtIFx4MUJbMzNtV0FSTlx4MUJbMG0gIFtyYXRlLWxpbWl0XSBJUCB7e2lwfX0gYXBwcm9hY2hpbmcgcmF0ZSBsaW1pdCIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny44OTBaXHgxQlswbSBceDFCWzM2bUlORk9ceDFCWzBtICBbd2Vic29ja2V0XSBDbGllbnQgY29ubmVjdGVkOiBzZXNzaW9uPXt7c2Vzc2lvbn19IixgXHgxQlszMW1FcnJvcjogQ29ubmVjdGlvbiByZWZ1c2VkXHgxQlswbQogICAgYXQgVGNwQ29ubmVjdGlvbi5jb25uZWN0ICgvYXBwL25vZGVfbW9kdWxlcy9wZy9saWIvY29ubmVjdGlvbi5qczoxMjoxNSkKICAgIGF0IFBvb2wuY29ubmVjdCAoL2FwcC9ub2RlX21vZHVsZXMvcGcvbGliL3Bvb2wuanM6NDU6MjMpCiAgICBhdCBhc3luYyBEYXRhYmFzZVNlcnZpY2UucXVlcnkgKC9hcHAvc3JjL2RiL3NlcnZpY2UudHM6ODk6MTIpYF0sYz1pKCgpPT57bGV0IGI9WyJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJzdWNjZXNzIl0sZz1bLjIsLjUsLjE1LC4xLC4wNV0seT1NYXRoLnJhbmRvbSgpLGs9MCxNPSJpbmZvIjtmb3IobGV0IEw9MDtMPGcubGVuZ3RoO0wrKylpZihrKz1nW0xdLHk8ayl7TT1iW0xdO2JyZWFrfWxldCBOPW5bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm4ubGVuZ3RoKV0sXz1vW01dLE89X1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqXy5sZW5ndGgpXS5yZXBsYWNlKCJ7e21vZHVsZX19IixbImV4cHJlc3MiLCJtb25nb29zZSIsInJlZGlzIiwic29ja2V0LmlvIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3trZXl9fSIsInVzZXI6IitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKSkucmVwbGFjZSgie3t0aW1lfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNTAwKSs1MCkpLnJlcGxhY2UoInt7aGVhZGVyc319IiwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uLCBBdXRob3JpemF0aW9uOiBCZWFyZXIgLi4uIikucmVwbGFjZSgie3t2YXJ9fSIsWyJOT0RFX0VOViIsIkRBVEFCQVNFX1VSTCIsIkFQSV9LRVkiLCJQT1JUIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3ttZXRob2R9fSIsWyJHRVQiLCJQT1NUIiwiUFVUIiwiREVMRVRFIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3twYXRofX0iLFsiL2FwaS91c2VycyIsIi9hcGkvYXV0aC9sb2dpbiIsIi9hcGkvcHJvZHVjdHMiLCIvaGVhbHRoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tqb2JJZH19Iiwiam9iXyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTEpKS5yZXBsYWNlKCJ7e3Rhc2t9fSIsWyJjbGVhbnVwIiwiYmFja3VwIiwicmVwb3J0LWdlbmVyYXRpb24iLCJjYWNoZS1yZWZyZXNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3txdWVyeX19IiwiU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSAuLi4iKS5yZXBsYWNlKCJ7e3BlcmNlbnR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozMCkrNzApKS5yZXBsYWNlKCJ7e2VuZHBvaW50fX0iLCIvYXBpL3YxL2xlZ2FjeSIpLnJlcGxhY2UoInt7ZGF5c319IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMwKSsxKSkucmVwbGFjZSgie3tlcnJvcn19IixbIkVDT05OUkVGVVNFRCIsIkVUSU1FRE9VVCIsIkVOT1RGT1VORCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozKV0pLnJlcGxhY2UoInt7dXNlcn19IiwidXNlcl8iK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpKS5yZXBsYWNlKCJ7e3NlcnZpY2V9fSIsWyJSZWRpcyIsIk1vbmdvREIiLCJFbGFzdGljU2VhcmNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMpXSkucmVwbGFjZSgie3twb3J0fX0iLFN0cmluZygzZTMrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwKSkpLnJlcGxhY2UoInt7c2l6ZX19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjUwMCkrMTAwKSk7ZS5hZGRMb2coTSxPLE4pfSwiZ2VuZXJhdGVSYW5kb21Mb2ciKSxkPWkoKCk9PntsZXQgYj1sW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpsLmxlbmd0aCldLGc9bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk9Yi5yZXBsYWNlKC8yMDI0LTAxLTE1VDEwOjIzOlxkezJ9XC5cZHszfVovZyxnKS5yZXBsYWNlKCJ7e2pvYklkfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWU0KSkpLnJlcGxhY2UoInt7dXNlcklkfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWU0KSkpLnJlcGxhY2UoInt7aXB9fSIsYDE5Mi4xNjguMS4ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTUpfWApLnJlcGxhY2UoInt7c2Vzc2lvbn19IixNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwxMSkpO3Iud3JpdGVsblJhdyh5KX0sImdlbmVyYXRlRG9ja2VyTG9nIiksZj1pKCgpPT57aWYoIWEpe2xldCBiPWkoKCk9PntjKCk7bGV0IGc9TWF0aC5yYW5kb20oKSoyZTMrNTAwO2E9d2luZG93LnNldFRpbWVvdXQoKCk9PnthJiZiKCl9LGcpfSwic2NoZWR1bGVOZXh0Iik7YigpfX0sInN0YXJ0U3RydWN0dXJlZFNpbXVsYXRpb24iKSxwPWkoKCk9PnthJiYod2luZG93LmNsZWFyVGltZW91dChhKSxhPW51bGwpfSwic3RvcFN0cnVjdHVyZWRTaW11bGF0aW9uIiksaD1pKCgpPT57aWYoIXMpe2xldCBiPWkoKCk9PntkKCk7bGV0IGc9TWF0aC5yYW5kb20oKSoxZTMrMjAwO3M9d2luZG93LnNldFRpbWVvdXQoKCk9PntzJiZiKCl9LGcpfSwic2NoZWR1bGVOZXh0Iik7YigpfX0sInN0YXJ0UmF3U2ltdWxhdGlvbiIpLG09aSgoKT0+e3MmJih3aW5kb3cuY2xlYXJUaW1lb3V0KHMpLHM9bnVsbCl9LCJzdG9wUmF3U2ltdWxhdGlvbiIpO3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGI9Pntzd2l0Y2goYi50ZXh0Py50cmltKCkpe2Nhc2UiQWRkIFN0cnVjdHVyZWQgTG9nIjpiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+YygpKTticmVhaztjYXNlIlN0YXJ0IFN0cnVjdHVyZWQiOmIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5mKCkpO2JyZWFrO2Nhc2UiU3RvcCBTdHJ1Y3R1cmVkIjpiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+cCgpKTticmVhaztjYXNlIkFkZCBEb2NrZXIgTG9nIjpiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+ZCgpKTticmVhaztjYXNlIlN0YXJ0IERvY2tlciI6Yi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PmgoKSk7YnJlYWs7Y2FzZSJTdG9wIERvY2tlciI6Yi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pm0oKSk7YnJlYWt9fSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7cmVgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA1JSkiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5zZWN0aW9uIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgIH0KICAgICAgICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPCEtLSBTdHJ1Y3R1cmVkIExvZ3MgU2VjdGlvbiAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U3RydWN0dXJlZCBMb2dzIChJTG9nRW50cnkpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBTdHJ1Y3R1cmVkIGxvZyBlbnRyaWVzIHdpdGggbGV2ZWwsIG1lc3NhZ2UsIGFuZCBzb3VyY2UuIFN1cHBvcnRzIHNlYXJjaCBhbmQga2V5d29yZCBoaWdobGlnaHRpbmcuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBTdHJ1Y3R1cmVkIExvZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RhcnQgU3RydWN0dXJlZDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBTdHJ1Y3R1cmVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgIGlkPSJzdHJ1Y3R1cmVkLWxvZyIKICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0aW9uIFNlcnZlciBMb2dzIn0KICAgICAgICAgIC5oaWdobGlnaHRLZXl3b3Jkcz0ke1siZXJyb3IiLCJmYWlsZWQiLCJ0aW1lb3V0Il19CiAgICAgICAgICAuc2hvd01ldHJpY3M9JHshMH0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWxvZz4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIFJhdyBMb2dzIFNlY3Rpb24gLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlJhdyBMb2dzIChEb2NrZXIvQ29udGFpbmVyIFN0eWxlKTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgUmF3IGxvZyBvdXRwdXQgd2l0aCBBTlNJIGVzY2FwZSBzZXF1ZW5jZXMgZm9yIHJlYWwgRG9ja2VyL2NvbnRhaW5lciBsb2dzLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgRG9ja2VyIExvZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RhcnQgRG9ja2VyPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wIERvY2tlcjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRlZXMtY2hhcnQtbG9nCiAgICAgICAgICBpZD0icmF3LWxvZyIKICAgICAgICAgIC5sYWJlbD0keyJEb2NrZXIgQ29udGFpbmVyIExvZ3MifQogICAgICAgICAgLm1vZGU9JHsicmF3In0KICAgICAgICAgIC5zaG93TWV0cmljcz0keyExfQogICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGAsImRlbW9GdW5jIil9KTt2YXIgbDIsX2ksZFhyLHVYcj11KCgpPT57dmUoKTtNcigpO2NYcigpO2x0KCk7cDMoKTtucygpO2wyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxfaT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZFhyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1jaGFydC1sb2ciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W107dmFyIGZlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQ2hhcnRMb2ciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgVD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKCldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6QXJyYXl9KV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W1Aoe3R5cGU6TnVtYmVyfSldLE49W1Aoe3R5cGU6QXJyYXl9KV0sTz1bUCh7dHlwZTpCb29sZWFufSldLEI9W2llKCldLEE9W2llKCldLFk9W2llKCldLGRlPVtpZSgpXSxsMih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJsYWJlbCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmxhYmVsLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmxhYmVsPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LG8sbCksbDIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJtb2RlImluIFcsImhhcyIpLGdldDppKFc9PlcubW9kZSwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5tb2RlPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGQsZiksbDIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJsb2dFbnRyaWVzImluIFcsImhhcyIpLGdldDppKFc9PlcubG9nRW50cmllcywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5sb2dFbnRyaWVzPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGgsbSksbDIodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvU2Nyb2xsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJhdXRvU2Nyb2xsImluIFcsImhhcyIpLGdldDppKFc9PlcuYXV0b1Njcm9sbCwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5hdXRvU2Nyb2xsPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGIsZyksbDIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJtYXhFbnRyaWVzImluIFcsImhhcyIpLGdldDppKFc9PlcubWF4RW50cmllcywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5tYXhFbnRyaWVzPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGssTSksbDIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRLZXl3b3JkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iaGlnaGxpZ2h0S2V5d29yZHMiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5oaWdobGlnaHRLZXl3b3JkcywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5oaWdobGlnaHRLZXl3b3Jkcz1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxfLFMpLGwyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01ldHJpY3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InNob3dNZXRyaWNzImluIFcsImhhcyIpLGdldDppKFc9Plcuc2hvd01ldHJpY3MsImdldCIpLHNldDppKChXLHBlKT0+e1cuc2hvd01ldHJpY3M9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sTCxFKSxsMih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJzZWFyY2hRdWVyeSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnNlYXJjaFF1ZXJ5PXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LEMseiksbDIodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJmaWx0ZXJNb2RlImluIFcsImhhcyIpLGdldDppKFc9PlcuZmlsdGVyTW9kZSwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5maWx0ZXJNb2RlPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LCQsRiksbDIodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJtZXRyaWNzImluIFcsImhhcyIpLGdldDppKFc9PlcubWV0cmljcywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5tZXRyaWNzPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LEcsWiksbDIodGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxSZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4idGVybWluYWxSZWFkeSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnRlcm1pbmFsUmVhZHksImdldCIpLHNldDppKChXLHBlKT0+e1cudGVybWluYWxSZWFkeT1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxELFEpLGwyKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOlR9LG51bGwsciksZmU9YT1lLnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPWxYcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0IiwiV29ya3NwYWNlIl07I2U9X2kodGhpcyxvLCJTZXJ2ZXIgTG9ncyIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChUKXt0aGlzLiNlPVR9I3Q9KF9pKHRoaXMsbCksX2kodGhpcyxkLCJzdHJ1Y3R1cmVkIikpO2dldCBtb2RlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1vZGUoVCl7dGhpcy4jdD1UfSNyPShfaSh0aGlzLGYpLF9pKHRoaXMsaCxbXSkpO2dldCBsb2dFbnRyaWVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxvZ0VudHJpZXMoVCl7dGhpcy4jcj1UfSNhPShfaSh0aGlzLG0pLF9pKHRoaXMsYiwhMCkpO2dldCBhdXRvU2Nyb2xsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGF1dG9TY3JvbGwoVCl7dGhpcy4jYT1UfSNpPShfaSh0aGlzLGcpLF9pKHRoaXMsaywxZTQpKTtnZXQgbWF4RW50cmllcygpe3JldHVybiB0aGlzLiNpfXNldCBtYXhFbnRyaWVzKFQpe3RoaXMuI2k9VH0jcz0oX2kodGhpcyxNKSxfaSh0aGlzLF8sW10pKTtnZXQgaGlnaGxpZ2h0S2V5d29yZHMoKXtyZXR1cm4gdGhpcy4jc31zZXQgaGlnaGxpZ2h0S2V5d29yZHMoVCl7dGhpcy4jcz1UfSNuPShfaSh0aGlzLFMpLF9pKHRoaXMsTCwhMCkpO2dldCBzaG93TWV0cmljcygpe3JldHVybiB0aGlzLiNufXNldCBzaG93TWV0cmljcyhUKXt0aGlzLiNuPVR9I289KF9pKHRoaXMsRSksX2kodGhpcyxDLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI299c2V0IHNlYXJjaFF1ZXJ5KFQpe3RoaXMuI289VH0jbD0oX2kodGhpcyx6KSxfaSh0aGlzLCQsITEpKTtnZXQgZmlsdGVyTW9kZSgpe3JldHVybiB0aGlzLiNsfXNldCBmaWx0ZXJNb2RlKFQpe3RoaXMuI2w9VH0jYz0oX2kodGhpcyxGKSxfaSh0aGlzLEcse2RlYnVnOjAsaW5mbzowLHdhcm46MCxlcnJvcjowLHN1Y2Nlc3M6MCx0b3RhbDowLHJhdGU6MH0pKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiNjfXNldCBtZXRyaWNzKFQpe3RoaXMuI2M9VH0jZD0oX2kodGhpcyxaKSxfaSh0aGlzLEQsITEpKTtnZXQgdGVybWluYWxSZWFkeSgpe3JldHVybiB0aGlzLiNkfXNldCB0ZXJtaW5hbFJlYWR5KFQpe3RoaXMuI2Q9VH1sb2dCdWZmZXI9KF9pKHRoaXMsUSksW10pO3RyYWlsaW5nSGlkZGVuQ291bnQ9MDt0ZXJtaW5hbD1udWxsO2ZpdEFkZG9uPW51bGw7c2VhcmNoQWRkb249bnVsbDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtkb210b29sc0luc3RhbmNlPW51bGw7cmF0ZUJ1ZmZlcj1bXTtyYXRlSW50ZXJ2YWw9bnVsbDtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTUwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiBidXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1uYXYgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDQ3JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDQ1IDkzJSA0NyUpIiwiaHNsKDQ1IDkzJSA0NyUpIil9OwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5JSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXByaW1hcnkpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICB9CgogICAgICAuY29udHJvbC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3Ryb25nKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuY29udHJvbC1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgLnh0ZXJtIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLm1ldHJpYzo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5lcnJvcjo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA2MC4yJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMud2Fybjo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMjUgOTUlIDUzJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMuaW5mbzo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMjIyLjIgNDcuNCUgNTEuMiUpOwogICAgICB9CgogICAgICAubWV0cmljLnN1Y2Nlc3M6OmJlZm9yZSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5kZWJ1Zzo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCAwJSA2My45JSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMucmF0ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMucmF0ZTo6YmVmb3JlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksWmEuc2V0dXAoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZSAuaGVhZGluZz0ke3RoaXMubGFiZWx9PgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke3RoaXMubGFiZWx9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtYm94Ij4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGxvZ3MuLi4iCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgICBAaW5wdXQ9JHtUPT50aGlzLmhhbmRsZVNlYXJjaElucHV0KFQpfQogICAgICAgICAgICAgIEBrZXlkb3duPSR7VD0+dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3duKFQpfQogICAgICAgICAgICAvPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtbmF2Ij4KICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNlYXJjaFByZXZpb3VzKCl9IHRpdGxlPSJQcmV2aW91cyBtYXRjaCI+4oaRPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zZWFyY2hOZXh0KCl9IHRpdGxlPSJOZXh0IG1hdGNoIj7ihpM8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iZmlsdGVyLXRvZ2dsZSAke3RoaXMuZmlsdGVyTW9kZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlRmlsdGVyTW9kZSgpfQogICAgICAgICAgICAgIHRpdGxlPSIke3RoaXMuZmlsdGVyTW9kZT8iU3dpdGNoIHRvIGhpZ2hsaWdodCBtb2RlIjoiU3dpdGNoIHRvIGZpbHRlciBtb2RlIn0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3RoaXMuZmlsdGVyTW9kZT8iRmlsdGVyIjoiSGlnaGxpZ2h0In0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLWJ1dHRvbiAke3RoaXMuYXV0b1Njcm9sbD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudG9nZ2xlQXV0b1Njcm9sbCgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQXV0byBTY3JvbGwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvbnRyb2wtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jbGVhckxvZ3MoKX0+CiAgICAgICAgICAgICAgQ2xlYXIKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy50ZXJtaW5hbFJlYWR5PyIiOndgPGRpdiBjbGFzcz0ibG9hZGluZy1zdGF0ZSI+TG9hZGluZyB0ZXJtaW5hbC4uLjwvZGl2PmB9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy5zaG93TWV0cmljcz93YAogICAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ibWV0cmljcy1iYXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBlcnJvciI+ZXJyb3JzOiAke3RoaXMubWV0cmljcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHdhcm4iPndhcm5zOiAke3RoaXMubWV0cmljcy53YXJufTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgaW5mbyI+aW5mbzogJHt0aGlzLm1ldHJpY3MuaW5mb308L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHN1Y2Nlc3MiPnN1Y2Nlc3M6ICR7dGhpcy5tZXRyaWNzLnN1Y2Nlc3N9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBkZWJ1ZyI+ZGVidWc6ICR7dGhpcy5tZXRyaWNzLmRlYnVnfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgcmF0ZSI+JHt0aGlzLm1ldHJpY3MucmF0ZS50b0ZpeGVkKDEpfSBsb2dzL3NlYzwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgPC9kZWVzLXRpbGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuZG9tdG9vbHNJbnN0YW5jZT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmluaXRpYWxpemVUZXJtaW5hbCgpLHRoaXMubG9nRW50cmllcy5sZW5ndGg+MCYmdGhpcy5sb2dCdWZmZXIubGVuZ3RoPT09MCl7dGhpcy5sb2dCdWZmZXI9Wy4uLnRoaXMubG9nRW50cmllc107Zm9yKGxldCBUIG9mIHRoaXMubG9nRW50cmllcyl0aGlzLnVwZGF0ZU1ldHJpY3MoVC5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KFQpfWVsc2UgaWYodGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wJiZ0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+MCl7bGV0IFQ9bmV3IFNldCh0aGlzLmxvZ0J1ZmZlci5tYXAoVz0+YCR7Vy50aW1lc3RhbXB9fCR7Vy5tZXNzYWdlfWApKTtmb3IobGV0IFcgb2YgdGhpcy5sb2dFbnRyaWVzKVQuaGFzKGAke1cudGltZXN0YW1wfXwke1cubWVzc2FnZX1gKXx8KHRoaXMubG9nQnVmZmVyLnB1c2goVyksdGhpcy51cGRhdGVNZXRyaWNzKFcubGV2ZWwpLHRoaXMud3JpdGVMb2dFbnRyeShXKSl9fWFzeW5jIGluaXRpYWxpemVUZXJtaW5hbCgpe2xldCBUPXNuLmdldEluc3RhbmNlKCksW1cscGUsbWVdPWF3YWl0IFByb21pc2UuYWxsKFtULmxvYWRYdGVybSgpLFQubG9hZFh0ZXJtRml0QWRkb24oKSxULmxvYWRYdGVybVNlYXJjaEFkZG9uKCldKTthd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzSW50b1NoYWRvdygpLHRoaXMudGVybWluYWw9bmV3IFcuVGVybWluYWwoe2N1cnNvckJsaW5rOiExLGRpc2FibGVTdGRpbjohMCxmb250U2l6ZToxMixmb250RmFtaWx5OiInU0YgTW9ubycsICdNb25hY28nLCAnQ29uc29sYXMnLCAnTGliZXJhdGlvbiBNb25vJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlIix0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUoKSxzY3JvbGxiYWNrOnRoaXMubWF4RW50cmllcyxjb252ZXJ0RW9sOiEwfSksdGhpcy5maXRBZGRvbj1uZXcgcGUuRml0QWRkb24sdGhpcy5zZWFyY2hBZGRvbj1uZXcgbWUuU2VhcmNoQWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5zZWFyY2hBZGRvbik7bGV0IHE9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbC1jb250YWluZXIiKTt0aGlzLnRlcm1pbmFsLm9wZW4ocSksYXdhaXQgbmV3IFByb21pc2UoSD0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEgpKSx0aGlzLmZpdEFkZG9uLmZpdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5maXRBZGRvbj8uZml0KCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUocSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXRoaXMuZG9tdG9vbHNJbnN0YW5jZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSgoKT0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKCkpfSksdGhpcy5yYXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PnRoaXMuY2FsY3VsYXRlUmF0ZSgpLDFlMyksdGhpcy50ZXJtaW5hbFJlYWR5PSEwO2ZvcihsZXQgSCBvZiB0aGlzLmxvZ0J1ZmZlcil0aGlzLndyaXRlTG9nRW50cnkoSCl9dXBkYXRlZChUKXtpZihzdXBlci51cGRhdGVkKFQpLFQuaGFzKCJnb0JyaWdodCIpJiZ0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPXRoaXMuZ2V0VGVybWluYWxUaGVtZSgpKSxULmhhcygibG9nRW50cmllcyIpJiZ0aGlzLnRlcm1pbmFsUmVhZHkmJnRoaXMubG9nRW50cmllcy5sZW5ndGg+MCl7bGV0IFc9VC5nZXQoImxvZ0VudHJpZXMiKXx8W10scGU9dGhpcy5sb2dFbnRyaWVzO2lmKFcubGVuZ3RoPT09cGUubGVuZ3RoJiZXLmxlbmd0aD4wJiZXW1cubGVuZ3RoLTFdLnRpbWVzdGFtcD09PXBlW3BlLmxlbmd0aC0xXS50aW1lc3RhbXAmJldbVy5sZW5ndGgtMV0ubWVzc2FnZT09PXBlW3BlLmxlbmd0aC0xXS5tZXNzYWdlKXJldHVybjtpZihwZS5sZW5ndGg+Vy5sZW5ndGgmJlcubGVuZ3RoPjAmJldbVy5sZW5ndGgtMV0udGltZXN0YW1wPT09cGVbVy5sZW5ndGgtMV0udGltZXN0YW1wJiZXW1cubGVuZ3RoLTFdLm1lc3NhZ2U9PT1wZVtXLmxlbmd0aC0xXS5tZXNzYWdlKXtsZXQgbWU9cGUuc2xpY2UoVy5sZW5ndGgpO2ZvcihsZXQgcSBvZiBtZSl0aGlzLmxvZ0J1ZmZlci5wdXNoKHEpLHRoaXMudXBkYXRlTWV0cmljcyhxLmxldmVsKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCghdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeXx8dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIocSkpJiZ0aGlzLndyaXRlTG9nRW50cnkocSk7cmV0dXJufXRoaXMubG9nQnVmZmVyPVsuLi5wZV0sdGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpfX1nZXRUZXJtaW5hbFRoZW1lKCl7cmV0dXJuIXRoaXMuZ29CcmlnaHQ/e2JhY2tncm91bmQ6IiMwYTBhMGEiLGZvcmVncm91bmQ6IiNlMGUwZTAiLGN1cnNvcjoiI2UwZTBlMCIsc2VsZWN0aW9uQmFja2dyb3VuZDoiIzQwNDA0MCIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2ZmNTU1NSIsZ3JlZW46IiM1MGZhN2IiLHllbGxvdzoiI2YxZmE4YyIsYmx1ZToiIzYyNzJhNCIsbWFnZW50YToiI2ZmNzljNiIsY3lhbjoiIzhiZTlmZCIsd2hpdGU6IiNmOGY4ZjIiLGJyaWdodEJsYWNrOiIjNjI3MmE0IixicmlnaHRSZWQ6IiNmZjZlNmUiLGJyaWdodEdyZWVuOiIjNjlmZjk0IixicmlnaHRZZWxsb3c6IiNmZmZmYTUiLGJyaWdodEJsdWU6IiNkNmFjZmYiLGJyaWdodE1hZ2VudGE6IiNmZjkyZGYiLGJyaWdodEN5YW46IiNhNGZmZmYiLGJyaWdodFdoaXRlOiIjZmZmZmZmIn06e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsc2VsZWN0aW9uQmFja2dyb3VuZDoiI2FkZDZmZiIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2NkMzEzMSIsZ3JlZW46IiMwMGJjMDAiLHllbGxvdzoiIzk0OTgwMCIsYmx1ZToiIzA0NTFhNSIsbWFnZW50YToiI2JjMDViYyIsY3lhbjoiIzA1OThiYyIsd2hpdGU6IiM1NTU1NTUiLGJyaWdodEJsYWNrOiIjNjY2NjY2IixicmlnaHRSZWQ6IiNjZDMxMzEiLGJyaWdodEdyZWVuOiIjMTRjZTE0IixicmlnaHRZZWxsb3c6IiNiNWJhMDAiLGJyaWdodEJsdWU6IiMwNDUxYTUiLGJyaWdodE1hZ2VudGE6IiNiYzA1YmMiLGJyaWdodEN5YW46IiMwNTk4YmMiLGJyaWdodFdoaXRlOiIjYTVhNWE1In19YXN5bmMgaW5qZWN0WHRlcm1TdHlsZXNJbnRvU2hhZG93KCl7bGV0IFQ9Inh0ZXJtLXNoYWRvdy1zdHlsZXMiO2lmKHRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZChUKSlyZXR1cm47bGV0IFc9YCR7TWN9L3h0ZXJtQCR7U2MueHRlcm19L2Nzcy94dGVybS5jc3NgLG1lPWF3YWl0KGF3YWl0IGZldGNoKFcpKS50ZXh0KCkscT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3EuaWQ9VCxxLnRleHRDb250ZW50PW1lLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChxKX1hZGRMb2coVCxXLHBlKXtsZXQgbWU9e3RpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksbGV2ZWw6VCxtZXNzYWdlOlcsc291cmNlOnBlfTt0aGlzLmxvZ0J1ZmZlci5wdXNoKG1lKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5P3RoaXMud3JpdGVMb2dFbnRyeShtZSk6dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIobWUpPyh0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLndyaXRlTG9nRW50cnkobWUpKTp0aGlzLnVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKSx0aGlzLnVwZGF0ZU1ldHJpY3MobWUubGV2ZWwpfXVwZGF0ZUxvZyhUKXtpZihUKWZvcihsZXQgVyBvZiBUKXRoaXMubG9nQnVmZmVyLnB1c2goVyksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwhdGhpcy5maWx0ZXJNb2RlfHwhdGhpcy5zZWFyY2hRdWVyeT90aGlzLndyaXRlTG9nRW50cnkoVyk6dGhpcy5lbnRyeU1hdGNoZXNGaWx0ZXIoVyk/KHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMud3JpdGVMb2dFbnRyeShXKSk6dGhpcy51cGRhdGVUcmFpbGluZ1BsYWNlaG9sZGVyKCksdGhpcy51cGRhdGVNZXRyaWNzKFcubGV2ZWwpfXVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKXt0aGlzLnRlcm1pbmFsJiYodGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PjAmJnRoaXMudGVybWluYWwud3JpdGUoIlx4MUJbMUFceDFCWzJLXHIiKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQrKyx0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIodGhpcy50cmFpbGluZ0hpZGRlbkNvdW50KSx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKSl9ZW50cnlNYXRjaGVzRmlsdGVyKFQpe2lmKCF0aGlzLnNlYXJjaFF1ZXJ5KXJldHVybiEwO2xldCBXPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTtyZXR1cm4gVC5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoVyl8fFQubGV2ZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhXKXx8KFQuc291cmNlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFcpPz8hMSl9d3JpdGVMb2dFbnRyeShUKXtpZighdGhpcy50ZXJtaW5hbClyZXR1cm47bGV0IFc9dGhpcy5mb3JtYXRMb2dFbnRyeShUKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oVyksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9Zm9ybWF0TG9nRW50cnkoVCl7bGV0IFc9dGhpcy5mb3JtYXRUaW1lc3RhbXAoVC50aW1lc3RhbXApLHBlPXtkZWJ1ZzoiXHgxQls5MG0iLGluZm86Ilx4MUJbMzZtIix3YXJuOiJceDFCWzMzbSIsZXJyb3I6Ilx4MUJbMzFtIixzdWNjZXNzOiJceDFCWzMybSJ9LG1lPSJceDFCWzBtIixxPSJceDFCWzJtIixIPWAke3BlW1QubGV2ZWxdfVske1QubGV2ZWwudG9VcHBlckNhc2UoKS5wYWRFbmQoNyl9XSR7bWV9YCxVPVQuc291cmNlP2Ake3F9WyR7VC5zb3VyY2V9XSR7bWV9IGA6IiIsaj10aGlzLmFwcGx5SGlnaGxpZ2h0cyhULm1lc3NhZ2UpO3JldHVybmAke3F9JHtXfSR7bWV9ICR7SH0gJHtVfSR7an1gfWZvcm1hdFRpbWVzdGFtcChUKXtyZXR1cm4gbmV3IERhdGUoVCkudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbi1VUyIse2hvdXIxMjohMSxob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9YXBwbHlIaWdobGlnaHRzKFQpe2xldCBXPVsuLi50aGlzLmhpZ2hsaWdodEtleXdvcmRzXTtpZih0aGlzLmZpbHRlck1vZGUmJnRoaXMuc2VhcmNoUXVlcnkmJlcucHVzaCh0aGlzLnNlYXJjaFF1ZXJ5KSxXLmxlbmd0aD09PTApcmV0dXJuIFQ7bGV0IHBlPVQ7Zm9yKGxldCBtZSBvZiBXKXtsZXQgcT1tZS5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywiXFwkJiIpLEg9bmV3IFJlZ0V4cChgKCR7cX0pYCwiZ2kiKTtwZT1wZS5yZXBsYWNlKEgsIlx4MUJbNDNtXHgxQlszMG0kMVx4MUJbMG0iKX1yZXR1cm4gcGV9d3JpdGVSYXcoVCl7dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwud3JpdGUoVCksdGhpcy5yZWNvcmRMb2dFdmVudCgpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX13cml0ZWxuUmF3KFQpe3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLndyaXRlbG4oVCksdGhpcy5yZWNvcmRMb2dFdmVudCgpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX1oYW5kbGVTZWFyY2hJbnB1dChUKXtsZXQgcGU9VC50YXJnZXQudmFsdWUsbWU9dGhpcy5zZWFyY2hRdWVyeSE9PXBlO3RoaXMuc2VhcmNoUXVlcnk9cGUsdGhpcy5maWx0ZXJNb2RlJiZtZT90aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCk6dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQodGhpcy5zZWFyY2hRdWVyeSl9aGFuZGxlU2VhcmNoS2V5ZG93bihUKXtULmtleT09PSJFbnRlciI/VC5zaGlmdEtleT90aGlzLnNlYXJjaFByZXZpb3VzKCk6dGhpcy5zZWFyY2hOZXh0KCk6VC5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2VhcmNoUXVlcnk9IiIsVC50YXJnZXQudmFsdWU9IiIpfXNlYXJjaChUKXt0aGlzLnNlYXJjaFF1ZXJ5PVQsdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQoVCl9c2VhcmNoTmV4dCgpe3RoaXMuc2VhcmNoUXVlcnkmJnRoaXMuc2VhcmNoQWRkb24/LmZpbmROZXh0KHRoaXMuc2VhcmNoUXVlcnkpfXNlYXJjaFByZXZpb3VzKCl7dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZFByZXZpb3VzKHRoaXMuc2VhcmNoUXVlcnkpfXRvZ2dsZUF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGw9IXRoaXMuYXV0b1Njcm9sbCx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKX10b2dnbGVGaWx0ZXJNb2RlKCl7dGhpcy5maWx0ZXJNb2RlPSF0aGlzLmZpbHRlck1vZGUsdGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpfXJlUmVuZGVyRmlsdGVyZWRMb2dzKCl7aWYodGhpcy50ZXJtaW5hbCl7aWYodGhpcy50ZXJtaW5hbC5jbGVhcigpLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5KWZvcihsZXQgVCBvZiB0aGlzLmxvZ0J1ZmZlcil7bGV0IFc9dGhpcy5mb3JtYXRMb2dFbnRyeShUKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oVyl9ZWxzZXtsZXQgVD0wO2ZvcihsZXQgVyBvZiB0aGlzLmxvZ0J1ZmZlcilpZih0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihXKSl7VD4wJiYodGhpcy53cml0ZUhpZGRlblBsYWNlaG9sZGVyKFQpLFQ9MCk7bGV0IHBlPXRoaXMuZm9ybWF0TG9nRW50cnkoVyk7dGhpcy50ZXJtaW5hbC53cml0ZWxuKHBlKX1lbHNlIFQrKztUPjAmJih0aGlzLndyaXRlSGlkZGVuUGxhY2Vob2xkZXIoVCksdGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PVQpfXRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpfX13cml0ZUhpZGRlblBsYWNlaG9sZGVyKFQpe2xldCBXPSJceDFCWzJtIixwZT0iXHgxQlswbSIsbWU9VD09PTE/IlsxIGxvZyBsaW5lIGhpZGRlbiBieSBmaWx0ZXIgLi4uXSI6YFske1R9IGxvZyBsaW5lcyBoaWRkZW4gYnkgZmlsdGVyIC4uLl1gO3RoaXMudGVybWluYWw/LndyaXRlbG4oYCR7V30ke21lfSR7cGV9YCl9Y2xlYXJMb2dzKCl7dGhpcy50ZXJtaW5hbD8uY2xlYXIoKSx0aGlzLmxvZ0J1ZmZlcj1bXSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9MCx0aGlzLnJlc2V0TWV0cmljcygpfXNjcm9sbFRvQm90dG9tKCl7dGhpcy50ZXJtaW5hbD8uc2Nyb2xsVG9Cb3R0b20oKX11cGRhdGVNZXRyaWNzKFQpe3RoaXMubWV0cmljcz17Li4udGhpcy5tZXRyaWNzLFtUXTp0aGlzLm1ldHJpY3NbVF0rMSx0b3RhbDp0aGlzLm1ldHJpY3MudG90YWwrMX0sdGhpcy5yZWNvcmRMb2dFdmVudCgpfXJlY29yZExvZ0V2ZW50KCl7dGhpcy5yYXRlQnVmZmVyLnB1c2goRGF0ZS5ub3coKSl9Y2FsY3VsYXRlUmF0ZSgpe2xldCBUPURhdGUubm93KCk7dGhpcy5yYXRlQnVmZmVyPXRoaXMucmF0ZUJ1ZmZlci5maWx0ZXIocGU9PlQtcGU8MWU0KTtsZXQgVz10aGlzLnJhdGVCdWZmZXIubGVuZ3RoLzEwO1chPT10aGlzLm1ldHJpY3MucmF0ZSYmKHRoaXMubWV0cmljcz17Li4udGhpcy5tZXRyaWNzLHJhdGU6V30pfXJlc2V0TWV0cmljcygpe3RoaXMubWV0cmljcz17ZGVidWc6MCxpbmZvOjAsd2FybjowLGVycm9yOjAsc3VjY2VzczowLHRvdGFsOjAscmF0ZTowfSx0aGlzLnJhdGVCdWZmZXI9W119YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJnRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5yYXRlSW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5yYXRlSW50ZXJ2YWwpLHRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuZGlzcG9zZSgpfXN0YXRpY3tfaShhLHIpfX07cmV0dXJuIGZlPWF9KSgpfSk7dmFyIHBYcj11KCgpPT57dVhyKCl9KTt2YXIgZlhyLGhYcj11KCgpPT57dmUoKTt3YSgpO3Y3dCgpO2ZYcj1pKCgpPT57bGV0IHQ9W3tuYW1lOiJMYXRlbmN5IixtYXg6MTAwfSx7bmFtZToiVGhyb3VnaHB1dCIsbWF4OjEwMH0se25hbWU6IkF2YWlsYWJpbGl0eSIsbWF4OjEwMH0se25hbWU6IkVycm9yIFJhdGUiLG1heDoxMDB9LHtuYW1lOiJTYXR1cmF0aW9uIixtYXg6MTAwfSx7bmFtZToiU2VjdXJpdHkiLG1heDoxMDB9XSxlPVt7bmFtZToiU2VydmljZSBBIix2YWx1ZXM6Wzg1LDkwLDk5LDEyLDQ1LDc4XX0se25hbWU6IlNlcnZpY2UgQiIsdmFsdWVzOls3MCw2NSw5NSwyOCw2MCw5MF19XSxyPVt7bmFtZToiU3BlZWQiLG1heDoxMH0se25hbWU6IlJlbGlhYmlsaXR5IixtYXg6MTB9LHtuYW1lOiJDb21mb3J0IixtYXg6MTB9LHtuYW1lOiJTYWZldHkiLG1heDoxMH0se25hbWU6IkNvc3QiLG1heDoxMH1dLGE9W3tuYW1lOiJSYXRpbmciLHZhbHVlczpbOC41LDkuMiw3LDkuNSw2XX1dO3JldHVybiB3YAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcz0+e2xldCBuPXMucXVlcnlTZWxlY3RvcigiI2NvbXBhcmlzb24tY2hhcnQiKSxvPXMucXVlcnlTZWxlY3RvcigiI3NpbmdsZS1jaGFydCIpO3MucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGM9PntjLnRleHQ/LnRyaW0oKT09PSJSYW5kb21pemUiJiZjLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e24uc2VyaWVzPWUubWFwKGY9Pih7Li4uZix2YWx1ZXM6Zi52YWx1ZXMubWFwKCgpPT5NYXRoLnJvdW5kKDIwK01hdGgucmFuZG9tKCkqODApKX0pKSxvLnNlcmllcz1hLm1hcChmPT4oey4uLmYsdmFsdWVzOmYudmFsdWVzLm1hcCgoKT0+TWF0aC5yb3VuZCgoMitNYXRoLnJhbmRvbSgpKjgpKjEwKS8xMCl9KSl9KX0pfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke3JlYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuY2hhcnRSb3cgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KICAgICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgfQogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmFuZG9taXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Um93Ij4KICAgICAgICAgIDxkZWVzLWNoYXJ0LXJhZGFyCiAgICAgICAgICAgIGlkPSJjb21wYXJpc29uLWNoYXJ0IgogICAgICAgICAgICAubGFiZWw9JHsiU2VydmljZSBIZWFsdGggQ29tcGFyaXNvbiJ9CiAgICAgICAgICAgIC5pbmRpY2F0b3JzPSR7dH0KICAgICAgICAgICAgLnNlcmllcz0ke2V9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LXJhZGFyPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LXJhZGFyCiAgICAgICAgICAgIGlkPSJzaW5nbGUtY2hhcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IFJhdGluZyJ9CiAgICAgICAgICAgIC5pbmRpY2F0b3JzPSR7cn0KICAgICAgICAgICAgLnNlcmllcz0ke2F9CiAgICAgICAgICAgIC5maWxsQXJlYT0keyEwfQogICAgICAgICAgPjwvZGVlcy1jaGFydC1yYWRhcj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICBSYWRhciBjaGFydCBmb3IgbXVsdGktZGltZW5zaW9uYWwgY29tcGFyaXNvbiDigKIKICAgICAgICAgIFN1cHBvcnRzIG11bHRpcGxlIG92ZXJsYXkgc2VyaWVzIGFuZCBjb25maWd1cmFibGUgZmlsbCDigKIKICAgICAgICAgIENsaWNrICdSYW5kb21pemUnIHRvIHVwZGF0ZSBkYXRhCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIG1YcixnWHI9dSgoKT0+e3ZlKCk7RXJlKCk7bVhyPVsuLi5wZixyZWBgXX0pO3ZhciBiWHIseFhyPXUoKCk9Pnt2ZSgpO2JYcj1pKHQ9PndgCiAgICA8ZGVlcy10aWxlPgogICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNoYXJ0SGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcnRMYWJlbCI+JHt0LmxhYmVsfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgIDwvZGVlcy10aWxlPgogIGAsInJlbmRlckNoYXJ0UmFkYXIiKX0pO3ZhciBJcmUsZzMsdlhyLHY3dD11KCgpPT57dmUoKTtBcmUoKTtoWHIoKTtnWHIoKTt4WHIoKTtNdygpO0lyZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZzM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHZYcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtY2hhcnQtcmFkYXIiKV0sZSxyPVtdLGEscz1tMyxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0NoYXJ0UmFkYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6QXJyYXl9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxJcmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmRpY2F0b3JzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJpbmRpY2F0b3JzImluIE0sImhhcyIpLGdldDppKE09Pk0uaW5kaWNhdG9ycywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmluZGljYXRvcnM9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLElyZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic2VyaWVzImluIE0sImhhcyIpLGdldDppKE09Pk0uc2VyaWVzLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uc2VyaWVzPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxJcmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TGVnZW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJzaG93TGVnZW5kImluIE0sImhhcyIpLGdldDppKE09Pk0uc2hvd0xlZ2VuZCwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnNob3dMZWdlbmQ9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxoLG0pLElyZSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGxBcmVhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJmaWxsQXJlYSJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmZpbGxBcmVhLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uZmlsbEFyZWE9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLElyZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPWZYcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0Il07I2U9ZzModGhpcyxvLFtdKTtnZXQgaW5kaWNhdG9ycygpe3JldHVybiB0aGlzLiNlfXNldCBpbmRpY2F0b3JzKGspe3RoaXMuI2U9a30jdD0oZzModGhpcyxsKSxnMyh0aGlzLGQsW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlcmllcyhrKXt0aGlzLiN0PWt9I3I9KGczKHRoaXMsZiksZzModGhpcyxoLCEwKSk7Z2V0IHNob3dMZWdlbmQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd0xlZ2VuZChrKXt0aGlzLiNyPWt9I2E9KGczKHRoaXMsbSksZzModGhpcyxiLCEwKSk7Z2V0IGZpbGxBcmVhKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpbGxBcmVhKGspe3RoaXMuI2E9a31zdGF0aWMgc3R5bGVzPW1YcjtyZW5kZXIoKXtyZXR1cm4gYlhyKHRoaXMpfWFzeW5jIHVwZGF0ZWQoayl7c3VwZXIudXBkYXRlZChrKSx0aGlzLmNoYXJ0SW5zdGFuY2UmJihrLmhhcygiaW5kaWNhdG9ycyIpfHxrLmhhcygic2VyaWVzIil8fGsuaGFzKCJzaG93TGVnZW5kIil8fGsuaGFzKCJmaWxsQXJlYSIpKSYmdGhpcy51cGRhdGVDaGFydCgpfWJ1aWxkT3B0aW9uKCl7bGV0IGs9dWYodGhpcy5nb0JyaWdodCksTT1jZih0aGlzLmdvQnJpZ2h0KSxOPXRoaXMuZ29CcmlnaHQ/LjE6LjE1LF89dGhpcy5zZXJpZXMubWFwKChTLE8pPT57bGV0IEw9Uy5jb2xvcnx8TVtPJU0ubGVuZ3RoXTtyZXR1cm57bmFtZTpTLm5hbWUsdmFsdWU6Uy52YWx1ZXMsaXRlbVN0eWxlOntjb2xvcjpMLGJvcmRlckNvbG9yOkwsYm9yZGVyV2lkdGg6MX0sbGluZVN0eWxlOntjb2xvcjpMLHdpZHRoOjEuNX0sYXJlYVN0eWxlOnRoaXMuZmlsbEFyZWE/e2NvbG9yOmRmKEwsTil9OnZvaWQgMCxzeW1ib2w6ImNpcmNsZSIsc3ltYm9sU2l6ZTo1fX0pO3JldHVybnt0b29sdGlwOnt0cmlnZ2VyOiJpdGVtIn0sbGVnZW5kOnRoaXMuc2hvd0xlZ2VuZCYmdGhpcy5zZXJpZXMubGVuZ3RoPjE/e2JvdHRvbTo4LGl0ZW1XaWR0aDoxMCxpdGVtSGVpZ2h0OjEwfTp7c2hvdzohMX0scmFkYXI6e2luZGljYXRvcjp0aGlzLmluZGljYXRvcnMubWFwKFM9Pih7bmFtZTpTLm5hbWUsbWF4OlMubWF4fSkpLHNoYXBlOiJwb2x5Z29uIixzcGxpdE51bWJlcjo0LGF4aXNOYW1lOntjb2xvcjprLnRleHRTZWNvbmRhcnksZm9udFNpemU6MTF9LHNwbGl0QXJlYTp7YXJlYVN0eWxlOntjb2xvcjpbay5iZ1RlcnRpYXJ5LGsuYmdTZWNvbmRhcnldfX0sc3BsaXRMaW5lOntsaW5lU3R5bGU6e2NvbG9yOmsuYm9yZGVyRGVmYXVsdH19LGF4aXNMaW5lOntsaW5lU3R5bGU6e2NvbG9yOmsuYm9yZGVyRGVmYXVsdH19fSxzZXJpZXM6W3t0eXBlOiJyYWRhciIsZGF0YTpfLGVtcGhhc2lzOntsaW5lU3R5bGU6e3dpZHRoOjN9fX1dfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZzModGhpcyxnKX1zdGF0aWN7ZzMoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7dmFyIHlYcj11KCgpPT57djd0KCl9KTt2YXIgd1hyPXUoKCk9PntBUXIoKTtVUXIoKTtKUXIoKTtvWHIoKTtwWHIoKTt5WHIoKX0pO3ZhciBrWHIsU1hyPXUoKCk9Pnt2ZSgpO2tYcj1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vV3JhcHBlciB7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQogICAgCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UeXBlU2NyaXB0IENvZGUgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIGNvbXByZWhlbnNpdmUgVHlwZVNjcmlwdCBjb2RlIGV4YW1wbGUgd2l0aCB2YXJpb3VzIHN5bnRheCBoaWdobGlnaHRpbmcuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9InR5cGVzY3JpcHQiPgppbnRlcmZhY2UgVXNlciB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7CiAgZW1haWw6IHN0cmluZzsKICBpc0FjdGl2ZTogYm9vbGVhbjsKfQoKY2xhc3MgVXNlclNlcnZpY2UgewogIHByaXZhdGUgdXNlcnM6IFVzZXJbXSA9IFtdOwogIAogIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpVXJsOiBzdHJpbmcpIHsKICAgIGNvbnNvbGUubG9nKCdVc2VyU2VydmljZSBpbml0aWFsaXplZCcpOwogIH0KICAKICBhc3luYyBnZXRVc2VycygpOiBQcm9taXNlPFVzZXJbXT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLmFwaVVybCk7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7CiAgICAgIHJldHVybiBkYXRhLnVzZXJzOwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIHVzZXJzOicsIGVycm9yKTsKICAgICAgcmV0dXJuIFtdOwogICAgfQogIH0KICAKICBhZGRVc2VyKHVzZXI6IFVzZXIpOiB2b2lkIHsKICAgIHRoaXMudXNlcnMucHVzaCh1c2VyKTsKICB9Cn0KCi8vIFVzYWdlIGV4YW1wbGUKY29uc3Qgc2VydmljZSA9IG5ldyBVc2VyU2VydmljZSgnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMnKTsKY29uc3QgdXNlcnMgPSBhd2FpdCBzZXJ2aWNlLmdldFVzZXJzKCk7CmNvbnNvbGUubG9nKCdGb3VuZCB1c2VyczonLCB1c2Vycy5sZW5ndGgpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SmF2YVNjcmlwdCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk1vZGVybiBKYXZhU2NyaXB0IHdpdGggRVM2KyBmZWF0dXJlcy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0iamF2YXNjcmlwdCI+Ci8vIEFycmF5IG1hbmlwdWxhdGlvbiBleGFtcGxlcwpjb25zdCBudW1iZXJzID0gWzEsIDIsIDMsIDQsIDVdOwpjb25zdCBkb3VibGVkID0gbnVtYmVycy5tYXAobiA9PiBuICogMik7CmNvbnN0IGZpbHRlcmVkID0gbnVtYmVycy5maWx0ZXIobiA9PiBuID4gMyk7CgovLyBPYmplY3QgZGVzdHJ1Y3R1cmluZwpjb25zdCB1c2VyID0geyBuYW1lOiAnSm9obicsIGFnZTogMzAsIGNpdHk6ICdOZXcgWW9yaycgfTsKY29uc3QgeyBuYW1lLCBhZ2UgfSA9IHVzZXI7CgovLyBQcm9taXNlIGhhbmRsaW5nCmNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICh1cmwpID0+IHsKICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7CiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTsKfTsKCi8vIE1vZGVybiBzeW50YXgKY29uc3QgZ3JlZXQgPSAobmFtZSA9ICdXb3JsZCcpID0+IFxgSGVsbG8sIFwke25hbWV9IVxgOwpjb25zb2xlLmxvZyhncmVldCgnU2hhZENOJykpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHl0aG9uIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+UHl0aG9uIGNvZGUgd2l0aCBjbGFzc2VzIGFuZCB0eXBlIGhpbnRzLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJweXRob24iPgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKaW1wb3J0IGFzeW5jaW8KCmNsYXNzIERhdGFQcm9jZXNzb3I6CiAgICAiIiJBIHNpbXBsZSBkYXRhIHByb2Nlc3NvciBjbGFzcyIiIgogICAgCiAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZTogc3RyKToKICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgc2VsZi5kYXRhOiBMaXN0W2RpY3RdID0gW10KICAgIAogICAgYXN5bmMgZGVmIHByb2Nlc3NfZGF0YShzZWxmLCBpdGVtczogTGlzdFtkaWN0XSkgLT4gTGlzdFtkaWN0XToKICAgICAgICAiIiJQcm9jZXNzIGRhdGEgaXRlbXMgYXN5bmNocm9ub3VzbHkiIiIKICAgICAgICByZXN1bHRzID0gW10KICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKICAgICAgICAgICAgIyBTaW11bGF0ZSBhc3luYyBwcm9jZXNzaW5nCiAgICAgICAgICAgIGF3YWl0IGFzeW5jaW8uc2xlZXAoMC4xKQogICAgICAgICAgICByZXN1bHRzLmFwcGVuZCh7CiAgICAgICAgICAgICAgICAnaWQnOiBpdGVtLmdldCgnaWQnKSwKICAgICAgICAgICAgICAgICdwcm9jZXNzZWQnOiBUcnVlLAogICAgICAgICAgICAgICAgJ3Byb2Nlc3Nvcic6IHNlbGYubmFtZQogICAgICAgICAgICB9KQogICAgICAgIHJldHVybiByZXN1bHRzCiAgICAKICAgIGRlZiBnZXRfc3VtbWFyeShzZWxmKSAtPiBkaWN0OgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUsCiAgICAgICAgICAgICdpdGVtc19wcm9jZXNzZWQnOiBsZW4oc2VsZi5kYXRhKQogICAgICAgIH0KCiMgVXNhZ2UKcHJvY2Vzc29yID0gRGF0YVByb2Nlc3NvcigiTWFpbiIpCmRhdGEgPSBhd2FpdCBwcm9jZXNzb3IucHJvY2Vzc19kYXRhKFt7J2lkJzogMX0sIHsnaWQnOiAyfV0pCiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DU1MgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Nb2Rlcm4gQ1NTIHdpdGggY3VzdG9tIHByb3BlcnRpZXMgYW5kIGFuaW1hdGlvbnMuIE5vdGUgdGhlIHNob3J0ZXIgbGFuZ3VhZ2UgbGFiZWwuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9ImNzcyI+Ci8qIE1vZGVybiBDU1Mgd2l0aCBjdXN0b20gcHJvcGVydGllcyAqLwo6cm9vdCB7CiAgLS1wcmltYXJ5LWNvbG9yOiAjM2I4MmY2OwogIC0tc2Vjb25kYXJ5LWNvbG9yOiAjMTBiOTgxOwogIC0tYmFja2dyb3VuZDogI2ZmZmZmZjsKICAtLXRleHQtY29sb3I6ICMwOTA5MGI7CiAgLS1ib3JkZXItcmFkaXVzOiA2cHg7Cn0KCi5jYXJkIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTsKICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpOwogIHBhZGRpbmc6IDI0cHg7CiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwp9CgouY2FyZDpob3ZlciB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7Cn0KCkBrZXlmcmFtZXMgZmFkZUluIHsKICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9CiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KfQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SlNPTiBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkpTT04gY29uZmlndXJhdGlvbiB3aXRoIHByb3BlciBmb3JtYXR0aW5nLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJqc29uIj4KewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMS4xMC43IiwKICAiZGVzY3JpcHRpb24iOiAiQSBjb21wcmVoZW5zaXZlIGNhdGFsb2cgb2Ygd2ViIGNvbXBvbmVudHMiLAogICJtYWluIjogImRpc3RfdHNfd2ViL2luZGV4LmpzIiwKICAidHlwZSI6ICJtb2R1bGUiLAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQgdHNmb2xkZXJzIC0tYWxsb3dpbXBsaWNpdGFueSAmJiB0c2J1bmRsZSBlbGVtZW50IC0tcHJvZHVjdGlvbiIsCiAgICAid2F0Y2giOiAidHN3YXRjaCBlbGVtZW50IiwKICAgICJ0ZXN0IjogInRzdGVzdCB0ZXN0LyAtLXdlYiAtLXZlcmJvc2UiCiAgfSwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjQ1IiwKICAgICJoaWdobGlnaHQuanMiOiAiXjExLjkuMCIKICB9Cn0KICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciB5N3QsUHJlLE1Ycix3N3Q9dSgoKT0+e1NYcigpO3ZlKCk7X3MoKTtsdCgpO2xkZSgpO01yKCk7c3MoKTtwMygpO25zKCk7eTd0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxQcmU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LE1Ycj0oKCk9PntsZXQgdD1bdWUoImRlZXMtZGF0YXZpZXctY29kZWJveCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzRGF0YXZpZXdDb2RlYm94Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCgpXSxjPVtQKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHk3dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dMYW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJwcm9nTGFuZyJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnByb2dMYW5nLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20ucHJvZ0xhbmc9dn0sInNldCIpfSxtZXRhZGF0YTpofSxvLGwpLHk3dCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvZGVUb0Rpc3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImNvZGVUb0Rpc3BsYXkiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5jb2RlVG9EaXNwbGF5LCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uY29kZVRvRGlzcGxheT12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZikseTd0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89a1hyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3IiwiV29ya3NwYWNlIl07I2U9UHJlKHRoaXMsbywidHlwZXNjcmlwdCIpO2dldCBwcm9nTGFuZygpe3JldHVybiB0aGlzLiNlfXNldCBwcm9nTGFuZyhoKXt0aGlzLiNlPWh9I3Q9KFByZSh0aGlzLGwpLFByZSh0aGlzLGQsIiIpKTtnZXQgY29kZVRvRGlzcGxheSgpe3JldHVybiB0aGlzLiN0fXNldCBjb2RlVG9EaXNwbGF5KGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXNdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHtaYS5zdHlsZXN9CiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJHtIcn07CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KICAgICAgICBkZWVzLXRpbGUgewogICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB9CgogICAgICAgIC5hcHBiYXIgewogICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuYXBwYmFyIC5maWxlTmFtZSB7CiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuYm90dG9tQmFyIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAuc3BhY2VzTGFiZWwgewogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubGFuZ3VhZ2VMYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmhsanMta2V5d29yZCB7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIH0KCiAgICAgICAgLmNvZGVncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwcHggYXV0bzsKICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxNnB4IDBweCAwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIH0KCiAgICAgICAgLmxpbmVDb3VudGVyOmxhc3QtY2hpbGQgewogICAgICAgICAgb3BhY2l0eTogNTAlOwogICAgICAgIH0KCiAgICAgICAgcHJlIHsKICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHggMjRweDsKICAgICAgICB9CgogICAgICAgIGNvZGUgewogICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIH0KCiAgICAgICAgY29kZSwKICAgICAgICBjb2RlICosCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7CiAgICAgICAgICBmb250LWZhbWlseTogJHttOX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1zdHJpbmcgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWJ1aWx0X2luIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzhiNWNmNiIsIiNhNzhiZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1mdW5jdGlvbiB7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtcGFyYW1zIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA4OTFiMiIsIiMwNmI2ZDQiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1jb21tZW50IHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1udW1iZXIgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWxpdGVyYWwgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWF0dHIgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOGI1Y2Y2IiwiI2E3OGJmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXZhcmlhYmxlIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGVlcy10aWxlCiAgICAgICAgQGNvbnRleHRtZW51PSIke2g9PntDci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhoLFt7bmFtZToiQWJvdXQiLGljb25OYW1lOiJjaXJjbGVJbmZvIixhY3Rpb246aShhc3luYygpPT5udWxsLCJhY3Rpb24iKX1dKX19IgogICAgICA+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJhcHBiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZU5hbWUiPmluZGV4LnRzPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGluZU51bWJlcnMiPgogICAgICAgICAgICAkeygoKT0+e2xldCBoPTA7cmV0dXJuIHRoaXMuY29kZVRvRGlzcGxheS5zcGxpdChgCmApLm1hcChtPT4oaCsrLHdgPGRpdiBjbGFzcz0ibGluZUNvdW50ZXIiPiR7aH08L2Rpdj5gKSl9KSgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cHJlPjxjb2RlPjwvY29kZT48L3ByZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXNMYWJlbCI+U3BhY2VzOiAyPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZUxhYmVsIj4ke3RoaXMucHJvZ0xhbmd9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1jb2RlVG9EaXNwbGF5U3RvcmU9KFByZSh0aGlzLGYpLCIiKTtoaWdobGlnaHRKcz1udWxsO2FzeW5jIHVwZGF0ZWQoaCl7c3VwZXIudXBkYXRlZChoKSxjb25zb2xlLmxvZygiaGlnaGxpZ2h0aW5nIG5vdyIpLGNvbnNvbGUubG9nKHRoaXMuY2hpbGROb2Rlcyk7bGV0IG09W107dGhpcy5jaGlsZE5vZGVzLmZvckVhY2goZz0+e2cubm9kZU5hbWU9PT0iI3RleHQiJiZtLnB1c2goZyl9KSx0aGlzLmNvZGVUb0Rpc3BsYXkmJnRoaXMuY29kZVRvRGlzcGxheSE9PXRoaXMuY29kZVRvRGlzcGxheVN0b3JlJiYodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmU9ZzYubm9ybWFsaXplKHRoaXMuY29kZVRvRGlzcGxheSkudHJpbVN0YXJ0KCkpLG1bMF0mJm1bMF0ud2hvbGVUZXh0JiYhdGhpcy5jb2RlVG9EaXNwbGF5JiYodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmU9ZzYubm9ybWFsaXplKG1bMF0ud2hvbGVUZXh0KS50cmltU3RhcnQoKSx0aGlzLmNvZGVUb0Rpc3BsYXk9dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUpLGF3YWl0IGNyLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5oaWdobGlnaHRKc3x8KHRoaXMuaGlnaGxpZ2h0SnM9YXdhaXQgc24uZ2V0SW5zdGFuY2UoKS5sb2FkSGlnaGxpZ2h0SnMoKSk7bGV0IHY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImNvZGUiKSxiPXRoaXMuaGlnaGxpZ2h0SnMuaGlnaGxpZ2h0KHRoaXMuY29kZVRvRGlzcGxheVN0b3JlLHtsYW5ndWFnZTp0aGlzLnByb2dMYW5nLGlnbm9yZUlsbGVnYWxzOiEwfSk7di5pbm5lckhUTUw9Yi52YWx1ZX1zdGF0aWN7UHJlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBDWHI9dSgoKT0+e3c3dCgpfSk7dmFyIHpYcixfWHI9dSgoKT0+e3ZlKCk7c2MoKTt6WHI9aSgoKT0+d2AgPHN0eWxlPgogICAgLmRlbW8gewogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBjb250ZW50OiAnJzsKICAgICAgcGFkZGluZzogNDBweDsKICAgIH0KICAgIAogICAgLmRlbW8tZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgIGdhcDogMjRweDsKICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDE2cHg7CiAgICB9CiAgICAKICAgIC5kZW1vLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgfQogICAgCiAgICAuZGVtby1ub3RlIHsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tbm90ZSI+CiAgICAgIFJpZ2h0LWNsaWNrIG9uIGFueSBkZXRhaWwgcm93IHRvIGNvcHkgdGhlIHZhbHVlLCBrZXksIG9yIGtleTp2YWx1ZSBjb21iaW5hdGlvbgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tdGl0bGUiPlNlcnZpY2UgSGVhbHRoIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMSIsbmFtZToiQVBJIEdhdGV3YXkgU2VydmljZSIsbGFzdFVwZGF0ZWQ6RGF0ZS5ub3coKSxjb21iaW5lZFN0YXR1czoib2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLGRldGFpbHM6W3tuYW1lOiJSZXNwb25zZSBUaW1lIix2YWx1ZToiNDVtcyAoYXZnKSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiV2l0aGluIG5vcm1hbCByYW5nZSJ9LHtuYW1lOiJVcHRpbWUiLHZhbHVlOiI5OS45OSUgKDMwIGRheXMpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJFeGNlbGxlbnQgdXB0aW1lIn0se25hbWU6IkFjdGl2ZSBDb25uZWN0aW9ucyIsdmFsdWU6IjEsMjM0IC8gMTAsMDAwIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJOb3JtYWwgbG9hZCJ9LHtuYW1lOiJTU0wgQ2VydGlmaWNhdGUiLHZhbHVlOiJWYWxpZCB1bnRpbCAyMDI0LTEyLTMxIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJDZXJ0aWZpY2F0ZSB2YWxpZCJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5EYXRhYmFzZSBDbHVzdGVyIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMiIsbmFtZToiUG9zdGdyZVNRTCBDbHVzdGVyIixsYXN0VXBkYXRlZDpEYXRlLm5vdygpLTM2ZTUsY29tYmluZWRTdGF0dXM6InBhcnRseV9vayIsY29tYmluZWRTdGF0dXNUZXh0OiJNaW5vciBpc3N1ZXMgZGV0ZWN0ZWQiLGRldGFpbHM6W3tuYW1lOiJQcmltYXJ5IE5vZGUiLHZhbHVlOiJkYi1wcmltYXJ5LTAxIChoZWFsdGh5KSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiT3BlcmF0aW5nIG5vcm1hbGx5In0se25hbWU6IlJlcGxpY2EgTGFnIix2YWx1ZToiMi41IHNlY29uZHMiLHN0YXR1czoicGFydGx5X29rIixzdGF0dXNUZXh0OiJTbGlnaHRseSBlbGV2YXRlZCJ9LHtuYW1lOiJEaXNrIFVzYWdlIix2YWx1ZToiNzglICgzMTJHQiAvIDQwMEdCKSIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IkFwcHJvYWNoaW5nIHRocmVzaG9sZCJ9LHtuYW1lOiJDb25uZWN0aW9uIFBvb2wiLHZhbHVlOiI4OSAvIDEwMCBjb25uZWN0aW9ucyIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiV2l0aGluIGxpbWl0cyJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5CdWlsZCBQaXBlbGluZSBTdGF0dXM8L2Rpdj4KICAgICAgICA8ZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QKICAgICAgICAgIC5zdGF0dXNPYmplY3Q9JHt7aWQ6IjMiLG5hbWU6IkNJL0NEIFBpcGVsaW5lIixsYXN0VXBkYXRlZDpEYXRlLm5vdygpLTg2NGU1LGNvbWJpbmVkU3RhdHVzOiJub3Rfb2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQnVpbGQgZmFpbHVyZSIsZGV0YWlsczpbe25hbWU6Ikxhc3QgQnVpbGQiLHZhbHVlOiJCdWlsZCAjMTIzNCAtIEZhaWxlZCIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlRlc3QgZmFpbHVyZXMifSx7bmFtZToiRmFpbGVkIFRlc3RzIix2YWx1ZToiMyB0ZXN0cyBmYWlsZWQ6IGF1dGguc3BlYy50cywgdXNlci5zcGVjLnRzLCBhcGkuc3BlYy50cyIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlVuaXQgdGVzdCBmYWlsdXJlcyJ9LHtuYW1lOiJDb2RlIENvdmVyYWdlIix2YWx1ZToiODIuNSUgKHRhcmdldDogODUlKSIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IkJlbG93IHRhcmdldCJ9LHtuYW1lOiJCdWlsZCBEdXJhdGlvbiIsdmFsdWU6IjEybSAzNHMiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik5vcm1hbCBkdXJhdGlvbiJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+YCwiZGVtb0Z1bmMiKX0pO3ZhciBUWHIsazd0LExYcixEWHI9dSgoKT0+e2ZjKCk7dm4oKTtfWHIoKTt2ZSgpO3NjKCk7c3MoKTtsdCgpO25zKCk7VFhyPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxrN3Q9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LExYcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNEYXRhdmlld1N0YXR1c29iamVjdCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLFRYcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1c09iamVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic3RhdHVzT2JqZWN0ImluIGYsImhhcyIpLGdldDppKGY9PmYuc3RhdHVzT2JqZWN0LCJnZXQiKSxzZXQ6aSgoZixwKT0+e2Yuc3RhdHVzT2JqZWN0PXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxUWHIobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz16WHI7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciXTsjZT1rN3QodGhpcyxvLHZvaWQgMCk7Z2V0IHN0YXR1c09iamVjdCgpe3JldHVybiB0aGlzLiNlfXNldCBzdGF0dXNPYmplY3QoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgIH0KCiAgICAgIGgxIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdCB7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDYzLjklIC8gMC4yKSIsImhzbCgwIDAlIDQ1LjElIC8gMC4yKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuY29weU1haW4gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctcHJpbWFyeSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3Qub2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMikiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzZG90Lm5vdF9vayB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHt4LmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4yKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5wYXJ0bHlfb2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7eC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMikiLCJoc2woMjUgOTUlIDYzJSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWw6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmRldGFpbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMDQpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wNikiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLnN0YXR1c2RvdCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGV0YWlsIC5kZXRhaWxzVGV4dCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IC5sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgLnZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuYm90dG9tQmFyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQmFyIC5zdGF0dXNMYWJlbCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke3RoaXMuc3RhdHVzT2JqZWN0Py5jb21iaW5lZFN0YXR1c30iPjwvZGl2PgogICAgICAgICAgPGgxPiR7dGhpcy5zdGF0dXNPYmplY3Q/Lm5hbWV8fCJObyBzdGF0dXMgb2JqZWN0IGFzc2lnbmVkIn08L2gxPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29weU1haW4iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29weUFzSnNvbn0+Q29weSBKU09OPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnN0YXR1c09iamVjdD8uZGV0YWlscz8ubWFwKGQ9PndgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iZGV0YWlsIgogICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke2Y9PntmLnByZXZlbnREZWZhdWx0KCksQ3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZixbe25hbWU6IkNvcHkgVmFsdWUiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGQudmFsdWUsIlZhbHVlIil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgS2V5IixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGQubmFtZSwiS2V5Iil9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgS2V5OlZhbHVlIixpY29uTmFtZToibHVjaWRlOmNvcHktcGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGAke2QubmFtZX06ICR7ZC52YWx1ZX1gLCJLZXk6VmFsdWUiKX0sImFjdGlvbiIpfV0pfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke2Quc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbHNUZXh0Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCI+JHtkLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZhbHVlIj4ke2QudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNMYWJlbCI+JHt0aGlzLnN0YXR1c09iamVjdD8ubGFzdFVwZGF0ZWQ/YExhc3QgdXBkYXRlZDogJHtuZXcgRGF0ZSh0aGlzLnN0YXR1c09iamVjdC5sYXN0VXBkYXRlZCkudG9Mb2NhbGVTdHJpbmcoKX1gOiIifTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWFzeW5jIGNvcHlUb0NsaXBib2FyZChkLGY9IlRleHQiKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZCksY29uc29sZS5sb2coYCR7Zn0gY29waWVkIHRvIGNsaXBib2FyZGApfWNhdGNoKHApe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjb3B5ICR7Zn06YCxwKX19YXN5bmMgaGFuZGxlQ29weUFzSnNvbigpe2lmKHRoaXMuc3RhdHVzT2JqZWN0KXRyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXR1c09iamVjdCxudWxsLDIpKTtsZXQgZD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvcHlNYWluIiksZj1kLnRleHRDb250ZW50O2QudGV4dENvbnRlbnQ9IkNvcGllZCEiO2xldCBwPSF0aGlzLmdvQnJpZ2h0O2Quc3R5bGUuYmFja2dyb3VuZD1wPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsZC5zdHlsZS5ib3JkZXJDb2xvcj1wPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZC5zdHlsZS5jb2xvcj1wPyJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsc2V0VGltZW91dCgoKT0+e2QudGV4dENvbnRlbnQ9ZixkLnN0eWxlLmJhY2tncm91bmQ9IiIsZC5zdHlsZS5ib3JkZXJDb2xvcj0iIixkLnN0eWxlLmNvbG9yPSIifSwxNTAwKX1jYXRjaChkKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weToiLGQpfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksazd0KHRoaXMsbCl9c3RhdGlje2s3dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgJFhyPXUoKCk9PntEWHIoKX0pO3ZhciBBWHI9dSgoKT0+e0w2ZSgpfSk7dmFyIFM3dCxFWHIsSVhyPXUoKCk9Pnt2ZSgpO003dCgpO1M3dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJNb2NrU3RvcmFnZURhdGFQcm92aWRlciIpfW9iamVjdHM9bmV3IE1hcDtjb25zdHJ1Y3Rvcigpe2xldCBlPW5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTt0aGlzLm9iamVjdHMuc2V0KCJkb2N1bWVudHMvcmVhZG1lLm1kIix7Y29udGVudDpidG9hKGAjIFdlbGNvbWUKClRoaXMgaXMgYSBkZW1vIFN0b3JhZ2UgYnJvd3Nlci4KYCksY29udGVudFR5cGU6InRleHQvbWFya2Rvd24iLHNpemU6NDIsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJkb2N1bWVudHMvY29uZmlnLmpzb24iLHtjb250ZW50OmJ0b2EoYHsKICAibmFtZSI6ICJkZW1vIiwKICAidmVyc2lvbiI6ICIxLjAuMCIKfWApLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixzaXplOjQ4LGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiZG9jdW1lbnRzL25vdGVzL3RvZG8udHh0Iix7Y29udGVudDpidG9hKGBCdXkgbWlsawpGaXggYnVnICM0MgpEZXBsb3kgdG8gcHJvZHVjdGlvbmApLGNvbnRlbnRUeXBlOiJ0ZXh0L3BsYWluIixzaXplOjQ1LGxhc3RNb2RpZmllZDplfSksdGhpcy5vYmplY3RzLnNldCgiaW1hZ2VzL2xvZ28ucG5nIix7Y29udGVudDpidG9hKCJmYWtlLXBuZy1kYXRhIiksY29udGVudFR5cGU6ImltYWdlL3BuZyIsc2l6ZToyNDUwMCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImltYWdlcy9iYW5uZXIuanBnIix7Y29udGVudDpidG9hKCJmYWtlLWpwZy1kYXRhIiksY29udGVudFR5cGU6ImltYWdlL2pwZWciLHNpemU6MTU2ZTMsbGFzdE1vZGlmaWVkOmV9KSx0aGlzLm9iamVjdHMuc2V0KCJzY3JpcHRzL2RlcGxveS5zaCIse2NvbnRlbnQ6YnRvYShgIyEvYmluL2Jhc2gKZWNobyAiRGVwbG95aW5nLi4uIgpgKSxjb250ZW50VHlwZToidGV4dC9wbGFpbiIsc2l6ZTozNCxsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoImluZGV4Lmh0bWwiLHtjb250ZW50OmJ0b2EoYDwhRE9DVFlQRSBodG1sPgo8aHRtbD4KPGJvZHk+CiAgPGgxPkhlbGxvIFdvcmxkPC9oMT4KPC9ib2R5Pgo8L2h0bWw+YCksY29udGVudFR5cGU6InRleHQvaHRtbCIsc2l6ZTo3MixsYXN0TW9kaWZpZWQ6ZX0pLHRoaXMub2JqZWN0cy5zZXQoInN0eWxlcy5jc3MiLHtjb250ZW50OmJ0b2EoImJvZHkgeyBtYXJnaW46IDA7IGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyB9IiksY29udGVudFR5cGU6InRleHQvY3NzIixzaXplOjQ0LGxhc3RNb2RpZmllZDplfSl9YXN5bmMgbGlzdE9iamVjdHMoZSxyLGEpe2xldCBzPXJ8fCIiLG49W10sbz1uZXcgU2V0O2ZvcihsZXRbbCxjXW9mIHRoaXMub2JqZWN0cyl7aWYoIWwuc3RhcnRzV2l0aChzKSljb250aW51ZTtsZXQgZD1sLnNsaWNlKHMubGVuZ3RoKTtpZihhKXtsZXQgZj1kLmluZGV4T2YoYSk7Zj49MD9vLmFkZChzK2Quc2xpY2UoMCxmKzEpKTpuLnB1c2goe2tleTpsLHNpemU6Yy5zaXplLGxhc3RNb2RpZmllZDpjLmxhc3RNb2RpZmllZH0pfWVsc2Ugbi5wdXNoKHtrZXk6bCxzaXplOmMuc2l6ZSxsYXN0TW9kaWZpZWQ6Yy5sYXN0TW9kaWZpZWR9KX1yZXR1cm57b2JqZWN0czpuLHByZWZpeGVzOkFycmF5LmZyb20obykuc29ydCgpfX1hc3luYyBnZXRPYmplY3QoZSxyKXtsZXQgYT10aGlzLm9iamVjdHMuZ2V0KHIpO2lmKCFhKXRocm93IG5ldyBFcnJvcigiTm90IGZvdW5kIik7cmV0dXJuey4uLmF9fWFzeW5jIHB1dE9iamVjdChlLHIsYSxzKXtyZXR1cm4gdGhpcy5vYmplY3RzLnNldChyLHtjb250ZW50OmEsY29udGVudFR5cGU6cyxzaXplOmF0b2IoYSkubGVuZ3RoLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSwhMH1hc3luYyBkZWxldGVPYmplY3QoZSxyKXtyZXR1cm4gdGhpcy5vYmplY3RzLmRlbGV0ZShyKX1hc3luYyBkZWxldGVQcmVmaXgoZSxyKXtmb3IobGV0IGEgb2YgdGhpcy5vYmplY3RzLmtleXMoKSlhLnN0YXJ0c1dpdGgocikmJnRoaXMub2JqZWN0cy5kZWxldGUoYSk7cmV0dXJuITB9YXN5bmMgZ2V0T2JqZWN0VXJsKGUscil7bGV0IGE9dGhpcy5vYmplY3RzLmdldChyKTtpZighYSlyZXR1cm4iIjtsZXQgcz1uZXcgQmxvYihbVWludDhBcnJheS5mcm9tKGF0b2IoYS5jb250ZW50KSxuPT5uLmNoYXJDb2RlQXQoMCkpXSx7dHlwZTphLmNvbnRlbnRUeXBlfSk7cmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwocyl9YXN5bmMgbW92ZU9iamVjdChlLHIsYSl7bGV0IHM9dGhpcy5vYmplY3RzLmdldChyKTtyZXR1cm4gcz8odGhpcy5vYmplY3RzLnNldChhLHsuLi5zLGxhc3RNb2RpZmllZDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9KSx0aGlzLm9iamVjdHMuZGVsZXRlKHIpLHtzdWNjZXNzOiEwfSk6e3N1Y2Nlc3M6ITEsZXJyb3I6IlNvdXJjZSBub3QgZm91bmQifX1hc3luYyBtb3ZlUHJlZml4KGUscixhKXtsZXQgcz0wLG49QXJyYXkuZnJvbSh0aGlzLm9iamVjdHMuZW50cmllcygpKS5maWx0ZXIoKFtvXSk9Pm8uc3RhcnRzV2l0aChyKSk7Zm9yKGxldFtvLGxdb2Ygbil7bGV0IGM9YStvLnNsaWNlKHIubGVuZ3RoKTt0aGlzLm9iamVjdHMuc2V0KGMsey4uLmwsbGFzdE1vZGlmaWVkOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0pLHRoaXMub2JqZWN0cy5kZWxldGUobykscysrfXJldHVybntzdWNjZXNzOiEwLG1vdmVkQ291bnQ6c319fSxFWHI9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtc3RvcmFnZS1icm93c2VyCiAgICAgIC5kYXRhUHJvdmlkZXI9JHtuZXcgUzd0fQogICAgICAuYnVja2V0TmFtZT0keyJkZW1vLWJ1Y2tldCJ9CiAgICA+PC9kZWVzLXN0b3JhZ2UtYnJvd3Nlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO2Z1bmN0aW9uIHp3KHQpe2lmKHQ9PW51bGwpcmV0dXJuIi0iO2lmKHQ9PT0wKXJldHVybiIwIEIiO2xldCBlPVsiQiIsIktCIiwiTUIiLCJHQiIsIlRCIl0scj10LGE9MDtmb3IoO3I+PTEwMjQmJmE8ZS5sZW5ndGgtMTspci89MTAyNCxhKys7cmV0dXJuYCR7ci50b0ZpeGVkKGE+MD8xOjApfSAke2VbYV19YH1mdW5jdGlvbiBQWHIodCl7cmV0dXJuIHQ9PW51bGw/IiI6dD49MWU2P2Akeyh0LzFlNikudG9GaXhlZCgxKX1NYDp0Pj0xZTM/YCR7KHQvMWUzKS50b0ZpeGVkKDEpfUtgOnQudG9TdHJpbmcoKX1mdW5jdGlvbiBqcih0KXtsZXQgZT10LnJlcGxhY2UoL1wvJC8sIiIpLnNwbGl0KCIvIik7cmV0dXJuIGVbZS5sZW5ndGgtMV18fHR9ZnVuY3Rpb24gX3codCxlKXtyZXR1cm4gdC5lbmRzV2l0aCgiLyIpJiZlLnN0YXJ0c1dpdGgodCk/e3ZhbGlkOiExLGVycm9yOiJDYW5ub3QgbW92ZSBhIGZvbGRlciBpbnRvIGl0c2VsZiJ9OlRjKHQpPT09ZT97dmFsaWQ6ITEsZXJyb3I6Ikl0ZW0gaXMgYWxyZWFkeSBpbiB0aGlzIGxvY2F0aW9uIn06e3ZhbGlkOiEwfX1mdW5jdGlvbiBUYyh0KXtsZXQgZT10LmVuZHNXaXRoKCIvIik/dC5zbGljZSgwLC0xKTp0LHI9ZS5sYXN0SW5kZXhPZigiLyIpO3JldHVybiByPj0wP2Uuc3Vic3RyaW5nKDAscisxKToiIn1mdW5jdGlvbiBmZih0KXtyZXR1cm57anNvbjoiYXBwbGljYXRpb24vanNvbiIsdHh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLGNzczoidGV4dC9jc3MiLGpzOiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iix0czoidGV4dC90eXBlc2NyaXB0IixtZDoidGV4dC9tYXJrZG93biIseG1sOiJhcHBsaWNhdGlvbi94bWwiLHlhbWw6InRleHQveWFtbCIseW1sOiJ0ZXh0L3lhbWwiLGNzdjoidGV4dC9jc3YifVt0XXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9ZnVuY3Rpb24gVHcodCl7cmV0dXJue2pzb246YHsKICAKfWAsaHRtbDpgPCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAKPC9ib2R5Pgo8L2h0bWw+YCxtZDpgIyBUaXRsZQoKYCx0eHQ6IiJ9W3RdfHwiIn1mdW5jdGlvbiBzZyh0KXtpZighdClyZXR1cm5bXTtsZXQgZT10LnNwbGl0KCIvIikuZmlsdGVyKHM9PnMpLHI9W10sYT0iIjtmb3IobGV0IHMgb2YgZSlhKz1zKyIvIixyLnB1c2goYSk7cmV0dXJuIHJ9dmFyIE5yZT11KCgpPT57aSh6dywiZm9ybWF0U2l6ZSIpO2koUFhyLCJmb3JtYXRDb3VudCIpO2koanIsImdldEZpbGVOYW1lIik7aShfdywidmFsaWRhdGVNb3ZlIik7aShUYywiZ2V0UGFyZW50UHJlZml4Iik7aShmZiwiZ2V0Q29udGVudFR5cGUiKTtpKFR3LCJnZXREZWZhdWx0Q29udGVudCIpO2koc2csImdldFBhdGhTZWdtZW50cyIpfSk7dmFyIFNhLFR0LE5YcixDN3Q9dSgoKT0+e3ZlKCk7c3MoKTtsdCgpO05yZSgpO1NhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxUdD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sTlhyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1zdG9yYWdlLWNvbHVtbnMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdLHhlLEs9W10sVj1bXSxsZSxuZT1bXSxlZT1bXSx6ZSxIZT1bXSxHZT1bXSxvdCxEZT1bXSxfZT1bXSxvZSxzZT1bXSxjZT1bXSxUZSxxZT1bXSxudD1bXSx2dCxMZT1bXSx3ZT1bXSxPZSxnZT1bXSxiZT1bXSxJZSx5dD1bXSx3dD1bXSxZdCx6YT1bXSxQYT1bXSxZaSxFZT1bXSxqZT1bXSxzcixyYT1bXSxwYT1bXSx5YSxmYT1bXSxDbj1bXSx6bixBZT1bXSxDZT1bXSxZZSxEcj1bXSxFcz1bXTt2YXIgTGQ9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTdG9yYWdlQ29sdW1ucyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOk51bWJlcn0pXSx5PVtpZSgpXSxOPVtpZSgpXSxPPVtpZSgpXSxCPVtpZSgpXSxBPVtpZSgpXSxZPVtpZSgpXSxkZT1baWUoKV0sZmU9W2llKCldLHBlPVtpZSgpXSxIPVtpZSgpXSxhZT1baWUoKV0seGU9W2llKCldLGxlPVtpZSgpXSx6ZT1baWUoKV0sb3Q9W2llKCldLG9lPVtpZSgpXSxUZT1baWUoKV0sdnQ9W2llKCldLE9lPVtpZSgpXSxJZT1baWUoKV0sWXQ9W2llKCldLFlpPVtpZSgpXSxzcj1baWUoKV0seWE9W2llKCldLHpuPVtpZSgpXSxZZT1baWUoKV0sU2EodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhUHJvdmlkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJkYXRhUHJvdmlkZXIiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5kYXRhUHJvdmlkZXI9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LG8sbCksU2EodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iYnVja2V0TmFtZSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLmJ1Y2tldE5hbWUsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5idWNrZXROYW1lPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxkLGYpLFNhKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+ImN1cnJlbnRQcmVmaXgiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5jdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUuY3VycmVudFByZWZpeD0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0saCxtKSxTYSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZnJlc2hLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJyZWZyZXNoS2V5ImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUucmVmcmVzaEtleSwiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLnJlZnJlc2hLZXk9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LGIsZyksU2EodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iY29sdW1ucyJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLmNvbHVtbnMsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5jb2x1bW5zPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxrLE0pLFNhKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+ImxvYWRpbmciaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUubG9hZGluZz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sXyxTKSxTYSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDcmVhdGVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJzaG93Q3JlYXRlRGlhbG9nImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUuc2hvd0NyZWF0ZURpYWxvZywiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLnNob3dDcmVhdGVEaWFsb2c9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LEwsRSksU2EodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjcmVhdGVEaWFsb2dUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iY3JlYXRlRGlhbG9nVHlwZSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLmNyZWF0ZURpYWxvZ1R5cGUsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5jcmVhdGVEaWFsb2dUeXBlPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxDLHopLFNhKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nUHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iY3JlYXRlRGlhbG9nUHJlZml4ImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUuY3JlYXRlRGlhbG9nUHJlZml4LCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUuY3JlYXRlRGlhbG9nUHJlZml4PSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSwkLEYpLFNhKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JlYXRlRGlhbG9nTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+ImNyZWF0ZURpYWxvZ05hbWUiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5jcmVhdGVEaWFsb2dOYW1lLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUuY3JlYXRlRGlhbG9nTmFtZT0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sRyxaKSxTYSh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckNvbHVtbkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iZHJhZ092ZXJDb2x1bW5JbmRleCJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLmRyYWdPdmVyQ29sdW1uSW5kZXgsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5kcmFnT3ZlckNvbHVtbkluZGV4PSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxELFEpLFNhKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyRm9sZGVyUHJlZml4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4iZHJhZ092ZXJGb2xkZXJQcmVmaXgiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5kcmFnT3ZlckZvbGRlclByZWZpeCwiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLmRyYWdPdmVyRm9sZGVyUHJlZml4PSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxULFcpLFNhKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVwbG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+InVwbG9hZGluZyJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLnVwbG9hZGluZywiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLnVwbG9hZGluZz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sbWUscSksU2EodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cGxvYWRQcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+InVwbG9hZFByb2dyZXNzImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUudXBsb2FkUHJvZ3Jlc3MsImdldCIpLHNldDppKChoZSwkZSk9PntoZS51cGxvYWRQcm9ncmVzcz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sVSxqKSxTYSh0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TW92ZURpYWxvZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+InNob3dNb3ZlRGlhbG9nImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUuc2hvd01vdmVEaWFsb2csImdldCIpLHNldDppKChoZSwkZSk9PntoZS5zaG93TW92ZURpYWxvZz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sWCxKKSxTYSh0aGlzLG51bGwseGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4ibW92ZVNvdXJjZSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLm1vdmVTb3VyY2UsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5tb3ZlU291cmNlPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxLLFYpLFNhKHRoaXMsbnVsbCxsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVEZXN0aW5hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+Im1vdmVEZXN0aW5hdGlvbiJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLm1vdmVEZXN0aW5hdGlvbiwiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLm1vdmVEZXN0aW5hdGlvbj0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sbmUsZWUpLFNhKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVJblByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4ibW92ZUluUHJvZ3Jlc3MiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5tb3ZlSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLm1vdmVJblByb2dyZXNzPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxIZSxHZSksU2EodGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4ibW92ZUVycm9yImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUubW92ZUVycm9yLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUubW92ZUVycm9yPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxEZSxfZSksU2EodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVQaWNrZXJEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJzaG93TW92ZVBpY2tlckRpYWxvZyJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLnNob3dNb3ZlUGlja2VyRGlhbG9nLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUuc2hvd01vdmVQaWNrZXJEaWFsb2c9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LHNlLGNlKSxTYSh0aGlzLG51bGwsVGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4ibW92ZVBpY2tlclNvdXJjZSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLm1vdmVQaWNrZXJTb3VyY2UsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5tb3ZlUGlja2VyU291cmNlPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxxZSxudCksU2EodGhpcyxudWxsLHZ0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJtb3ZlUGlja2VyQ3VycmVudFByZWZpeCJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LExlLHdlKSxTYSh0aGlzLG51bGwsT2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyUHJlZml4ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJtb3ZlUGlja2VyUHJlZml4ZXMiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5tb3ZlUGlja2VyUHJlZml4ZXMsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5tb3ZlUGlja2VyUHJlZml4ZXM9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LGdlLGJlKSxTYSh0aGlzLG51bGwsSWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+Im1vdmVQaWNrZXJMb2FkaW5nImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUubW92ZVBpY2tlckxvYWRpbmcsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5tb3ZlUGlja2VyTG9hZGluZz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0seXQsd3QpLFNhKHRoaXMsbnVsbCxZdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dSZW5hbWVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJzaG93UmVuYW1lRGlhbG9nImluIGhlLCJoYXMiKSxnZXQ6aShoZT0+aGUuc2hvd1JlbmFtZURpYWxvZywiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLnNob3dSZW5hbWVEaWFsb2c9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LHphLFBhKSxTYSh0aGlzLG51bGwsWWkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVTb3VyY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJyZW5hbWVTb3VyY2UiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5yZW5hbWVTb3VyY2UsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5yZW5hbWVTb3VyY2U9JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LEVlLGplKSxTYSh0aGlzLG51bGwsc3Ise2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4icmVuYW1lTmFtZSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLnJlbmFtZU5hbWUsImdldCIpLHNldDppKChoZSwkZSk9PntoZS5yZW5hbWVOYW1lPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxyYSxwYSksU2EodGhpcyxudWxsLHlhLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShoZT0+InJlbmFtZUluUHJvZ3Jlc3MiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5yZW5hbWVJblByb2dyZXNzLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUucmVuYW1lSW5Qcm9ncmVzcz0kZX0sInNldCIpfSxtZXRhZGF0YTprZX0sZmEsQ24pLFNhKHRoaXMsbnVsbCx6bix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGhlPT4icmVuYW1lRXJyb3IiaW4gaGUsImhhcyIpLGdldDppKGhlPT5oZS5yZW5hbWVFcnJvciwiZ2V0Iiksc2V0OmkoKGhlLCRlKT0+e2hlLnJlbmFtZUVycm9yPSRlfSwic2V0Iil9LG1ldGFkYXRhOmtlfSxBZSxDZSksU2EodGhpcyxudWxsLFllLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaGU9PiJkcmFnZ2VkSXRlbSJpbiBoZSwiaGFzIiksZ2V0OmkoaGU9PmhlLmRyYWdnZWRJdGVtLCJnZXQiKSxzZXQ6aSgoaGUsJGUpPT57aGUuZHJhZ2dlZEl0ZW09JGV9LCJzZXQiKX0sbWV0YWRhdGE6a2V9LERyLEVzKSxTYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprZX0sbnVsbCxyKSxMZD1hPWUudmFsdWUsa2UmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a2V9KX0jZT1UdCh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIoa2Upe3RoaXMuI2U9a2V9I3Q9KFR0KHRoaXMsbCksVHQodGhpcyxkLCIiKSk7Z2V0IGJ1Y2tldE5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnVja2V0TmFtZShrZSl7dGhpcy4jdD1rZX0jcj0oVHQodGhpcyxmKSxUdCh0aGlzLGgsIiIpKTtnZXQgY3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiNyfXNldCBjdXJyZW50UHJlZml4KGtlKXt0aGlzLiNyPWtlfSNhPShUdCh0aGlzLG0pLFR0KHRoaXMsYiwwKSk7Z2V0IHJlZnJlc2hLZXkoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcmVmcmVzaEtleShrZSl7dGhpcy4jYT1rZX0jaT0oVHQodGhpcyxnKSxUdCh0aGlzLGssW10pKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNpfXNldCBjb2x1bW5zKGtlKXt0aGlzLiNpPWtlfSNzPShUdCh0aGlzLE0pLFR0KHRoaXMsXywhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxvYWRpbmcoa2Upe3RoaXMuI3M9a2V9I249KFR0KHRoaXMsUyksVHQodGhpcyxMLCExKSk7Z2V0IHNob3dDcmVhdGVEaWFsb2coKXtyZXR1cm4gdGhpcy4jbn1zZXQgc2hvd0NyZWF0ZURpYWxvZyhrZSl7dGhpcy4jbj1rZX0jbz0oVHQodGhpcyxFKSxUdCh0aGlzLEMsImZvbGRlciIpKTtnZXQgY3JlYXRlRGlhbG9nVHlwZSgpe3JldHVybiB0aGlzLiNvfXNldCBjcmVhdGVEaWFsb2dUeXBlKGtlKXt0aGlzLiNvPWtlfSNsPShUdCh0aGlzLHopLFR0KHRoaXMsJCwiIikpO2dldCBjcmVhdGVEaWFsb2dQcmVmaXgoKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3JlYXRlRGlhbG9nUHJlZml4KGtlKXt0aGlzLiNsPWtlfSNjPShUdCh0aGlzLEYpLFR0KHRoaXMsRywiIikpO2dldCBjcmVhdGVEaWFsb2dOYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGNyZWF0ZURpYWxvZ05hbWUoa2Upe3RoaXMuI2M9a2V9I2Q9KFR0KHRoaXMsWiksVHQodGhpcyxELC0xKSk7Z2V0IGRyYWdPdmVyQ29sdW1uSW5kZXgoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZHJhZ092ZXJDb2x1bW5JbmRleChrZSl7dGhpcy4jZD1rZX0jdT0oVHQodGhpcyxRKSxUdCh0aGlzLFQsbnVsbCkpO2dldCBkcmFnT3ZlckZvbGRlclByZWZpeCgpe3JldHVybiB0aGlzLiN1fXNldCBkcmFnT3ZlckZvbGRlclByZWZpeChrZSl7dGhpcy4jdT1rZX0jcD0oVHQodGhpcyxXKSxUdCh0aGlzLG1lLCExKSk7Z2V0IHVwbG9hZGluZygpe3JldHVybiB0aGlzLiNwfXNldCB1cGxvYWRpbmcoa2Upe3RoaXMuI3A9a2V9I2Y9KFR0KHRoaXMscSksVHQodGhpcyxVLG51bGwpKTtnZXQgdXBsb2FkUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jZn1zZXQgdXBsb2FkUHJvZ3Jlc3Moa2Upe3RoaXMuI2Y9a2V9I2g9KFR0KHRoaXMsaiksVHQodGhpcyxYLCExKSk7Z2V0IHNob3dNb3ZlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHNob3dNb3ZlRGlhbG9nKGtlKXt0aGlzLiNoPWtlfSNtPShUdCh0aGlzLEopLFR0KHRoaXMsSyxudWxsKSk7Z2V0IG1vdmVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jbX1zZXQgbW92ZVNvdXJjZShrZSl7dGhpcy4jbT1rZX0jZz0oVHQodGhpcyxWKSxUdCh0aGlzLG5lLCIiKSk7Z2V0IG1vdmVEZXN0aW5hdGlvbigpe3JldHVybiB0aGlzLiNnfXNldCBtb3ZlRGVzdGluYXRpb24oa2Upe3RoaXMuI2c9a2V9I2I9KFR0KHRoaXMsZWUpLFR0KHRoaXMsSGUsITEpKTtnZXQgbW92ZUluUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jYn1zZXQgbW92ZUluUHJvZ3Jlc3Moa2Upe3RoaXMuI2I9a2V9I3g9KFR0KHRoaXMsR2UpLFR0KHRoaXMsRGUsbnVsbCkpO2dldCBtb3ZlRXJyb3IoKXtyZXR1cm4gdGhpcy4jeH1zZXQgbW92ZUVycm9yKGtlKXt0aGlzLiN4PWtlfSN2PShUdCh0aGlzLF9lKSxUdCh0aGlzLHNlLCExKSk7Z2V0IHNob3dNb3ZlUGlja2VyRGlhbG9nKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHNob3dNb3ZlUGlja2VyRGlhbG9nKGtlKXt0aGlzLiN2PWtlfSN5PShUdCh0aGlzLGNlKSxUdCh0aGlzLHFlLG51bGwpKTtnZXQgbW92ZVBpY2tlclNvdXJjZSgpe3JldHVybiB0aGlzLiN5fXNldCBtb3ZlUGlja2VyU291cmNlKGtlKXt0aGlzLiN5PWtlfSN3PShUdCh0aGlzLG50KSxUdCh0aGlzLExlLCIiKSk7Z2V0IG1vdmVQaWNrZXJDdXJyZW50UHJlZml4KCl7cmV0dXJuIHRoaXMuI3d9c2V0IG1vdmVQaWNrZXJDdXJyZW50UHJlZml4KGtlKXt0aGlzLiN3PWtlfSNrPShUdCh0aGlzLHdlKSxUdCh0aGlzLGdlLFtdKSk7Z2V0IG1vdmVQaWNrZXJQcmVmaXhlcygpe3JldHVybiB0aGlzLiNrfXNldCBtb3ZlUGlja2VyUHJlZml4ZXMoa2Upe3RoaXMuI2s9a2V9I1M9KFR0KHRoaXMsYmUpLFR0KHRoaXMseXQsITEpKTtnZXQgbW92ZVBpY2tlckxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jU31zZXQgbW92ZVBpY2tlckxvYWRpbmcoa2Upe3RoaXMuI1M9a2V9I009KFR0KHRoaXMsd3QpLFR0KHRoaXMsemEsITEpKTtnZXQgc2hvd1JlbmFtZURpYWxvZygpe3JldHVybiB0aGlzLiNNfXNldCBzaG93UmVuYW1lRGlhbG9nKGtlKXt0aGlzLiNNPWtlfSNDPShUdCh0aGlzLFBhKSxUdCh0aGlzLEVlLG51bGwpKTtnZXQgcmVuYW1lU291cmNlKCl7cmV0dXJuIHRoaXMuI0N9c2V0IHJlbmFtZVNvdXJjZShrZSl7dGhpcy4jQz1rZX0jej0oVHQodGhpcyxqZSksVHQodGhpcyxyYSwiIikpO2dldCByZW5hbWVOYW1lKCl7cmV0dXJuIHRoaXMuI3p9c2V0IHJlbmFtZU5hbWUoa2Upe3RoaXMuI3o9a2V9I189KFR0KHRoaXMscGEpLFR0KHRoaXMsZmEsITEpKTtnZXQgcmVuYW1lSW5Qcm9ncmVzcygpe3JldHVybiB0aGlzLiNffXNldCByZW5hbWVJblByb2dyZXNzKGtlKXt0aGlzLiNfPWtlfSNUPShUdCh0aGlzLENuKSxUdCh0aGlzLEFlLG51bGwpKTtnZXQgcmVuYW1lRXJyb3IoKXtyZXR1cm4gdGhpcy4jVH1zZXQgcmVuYW1lRXJyb3Ioa2Upe3RoaXMuI1Q9a2V9I0w9KFR0KHRoaXMsQ2UpLFR0KHRoaXMsRHIsbnVsbCkpO2dldCBkcmFnZ2VkSXRlbSgpe3JldHVybiB0aGlzLiNMfXNldCBkcmFnZ2VkSXRlbShrZSl7dGhpcy4jTD1rZX1yZXNpemluZz0oVHQodGhpcyxFcyksbnVsbCk7REVGQVVMVF9DT0xVTU5fV0lEVEg9MjUwO01JTl9DT0xVTU5fV0lEVEg9MTUwO01BWF9DT0xVTU5fV0lEVEg9NTAwO2RyYWdDb3VudGVycz1uZXcgTWFwO2ZvbGRlckhvdmVyVGltZXI9bnVsbDtmaWxlSW5wdXRFbGVtZW50PW51bGw7Zm9sZGVySW5wdXRFbGVtZW50PW51bGw7c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLE5lLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgICB9CgogICAgICAuY29sdW1ucy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4td3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlIHsKICAgICAgICB3aWR0aDogNXB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMnB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGU6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplLWhhbmRsZS5hY3RpdmU6OmFmdGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM0MDQwNDAiKX07CiAgICAgICAgd2lkdGg6IDJweDsKICAgICAgICBsZWZ0OiAxcHg7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4td3JhcHBlcjpsYXN0LWNoaWxkIC5yZXNpemUtaGFuZGxlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAuY29sdW1uLWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzY2NiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzMzIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtcyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmZvbGRlciB7CiAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgIH0KCiAgICAgIC5jb2x1bW4taXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0gLm5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0gLmNoZXZyb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTU1Iil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAubG9hZGluZyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLmNvbHVtbi5kcmFnLW92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjA4KTsKICAgICAgICBvdXRsaW5lOiAycHggZGFzaGVkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpOwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uZm9sZGVyLmRyYWctdGFyZ2V0IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSAhaW1wb3J0YW50OwogICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC41KTsKICAgICAgfQoKICAgICAgLnVwbG9hZC1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC51cGxvYWQtb3ZlcmxheSAudXBsb2FkLXRleHQgewogICAgICAgIGNvbG9yOiAjZTBlMGUwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnVwbG9hZC1vdmVybGF5IC51cGxvYWQtcHJvZ3Jlc3MgewogICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLmRyYWctaGludCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogOHB4OwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuOSk7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB6LWluZGV4OiA1OwogICAgICB9CgogICAgICAuZGlhbG9nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAuZGlhbG9nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxZTFlMWUiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1pbi13aWR0aDogNDAwcHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjUpOwogICAgICB9CgogICAgICAuZGlhbG9nLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctbG9jYXRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE0MTQxNCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZGlhbG9nLWlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jYW5jZWwgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQ0NCIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYWFhIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jYW5jZWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzQwNDA0MCIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1MDUwNTAiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC8qIE1vdmUgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1zdW1tYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAubW92ZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAubW92ZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLXBhdGggewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNmM2Y0NiIsIiNlMGUwZTAiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAubW92ZS1lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAvKiBNb3ZlIHBpY2tlciBkaWFsb2cgc3R5bGVzICovCiAgICAgIC5tb3ZlLXBpY2tlci1kaWFsb2cgewogICAgICAgIG1pbi13aWR0aDogNDUwcHg7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItYnJlYWRjcnVtYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAucGlja2VyLWNydW1iIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWNydW1iOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAucGlja2VyLXNlcGFyYXRvciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1saXN0IHsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBtaW4taGVpZ2h0OiAxMDBweDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtIC5pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAubmFtZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5waWNrZXItZW1wdHkgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uZHJhZ2dpbmcgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmNvbHVtbi1pdGVtLmRyb3AtdGFyZ2V0IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkgIWltcG9ydGFudDsKICAgICAgICBvdXRsaW5lOiAxcHggZGFzaGVkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpOwogICAgICB9CgogICAgICAuY29sdW1uLWl0ZW0uZHJvcC1pbnZhbGlkIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpICFpbXBvcnRhbnQ7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMubG9hZEluaXRpYWxDb2x1bW4oKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhckZvbGRlckhvdmVyKCksdGhpcy5kcmFnQ291bnRlcnMuY2xlYXIoKSx0aGlzLmZpbGVJbnB1dEVsZW1lbnQmJih0aGlzLmZpbGVJbnB1dEVsZW1lbnQucmVtb3ZlKCksdGhpcy5maWxlSW5wdXRFbGVtZW50PW51bGwpLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50JiYodGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQucmVtb3ZlKCksdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQ9bnVsbCl9dXBkYXRlZChrZSl7a2UuaGFzKCJidWNrZXROYW1lIil8fGtlLmhhcygiY3VycmVudFByZWZpeCIpP3RoaXMubG9hZEluaXRpYWxDb2x1bW4oKTprZS5oYXMoInJlZnJlc2hLZXkiKSYmdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpfWFzeW5jIGxvYWRJbml0aWFsQ29sdW1uKCl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMubG9hZGluZz0hMDt0cnl7bGV0IGtlPXNnKHRoaXMuY3VycmVudFByZWZpeCksaGU9WyIiLC4uLmtlXSwkZT1hd2FpdCBQcm9taXNlLmFsbChoZS5tYXAoZXQ9PnRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSxldCwiLyIpKSk7dGhpcy5jb2x1bW5zPSRlLm1hcCgoZXQsUHQpPT57bGV0IElzPWhlW1B0XSxLaT1QdDxrZS5sZW5ndGg/a2VbUHRdOm51bGw7cmV0dXJue3ByZWZpeDpJcyxvYmplY3RzOmV0Lm9iamVjdHMscHJlZml4ZXM6ZXQucHJlZml4ZXMsc2VsZWN0ZWRJdGVtOktpLHdpZHRoOnRoaXMuREVGQVVMVF9DT0xVTU5fV0lEVEh9fSksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLnNjcm9sbFRvRW5kKCkpfWNhdGNoKGtlKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIG9iamVjdHM6IixrZSksdGhpcy5jb2x1bW5zPVtdfXRoaXMubG9hZGluZz0hMX19YXN5bmMgcmVmcmVzaEFsbENvbHVtbnMoKXtpZighdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCBrZT1hd2FpdCBQcm9taXNlLmFsbCh0aGlzLmNvbHVtbnMubWFwKGFzeW5jIGhlPT57dHJ5e2xldCAkZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsaGUucHJlZml4LCIvIik7cmV0dXJuey4uLmhlLG9iamVjdHM6JGUub2JqZWN0cyxwcmVmaXhlczokZS5wcmVmaXhlc319Y2F0Y2h7cmV0dXJuIGhlfX0pKTt0aGlzLmNvbHVtbnM9a2V9YXN5bmMgc2VsZWN0Rm9sZGVyKGtlLGhlKXtpZih0aGlzLmRhdGFQcm92aWRlcil7dGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5tYXAoKCRlLGV0KT0+ZXQ9PT1rZT97Li4uJGUsc2VsZWN0ZWRJdGVtOmhlfTokZSksdGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5zbGljZSgwLGtlKzEpO3RyeXtsZXQgJGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLGhlLCIvIik7dGhpcy5jb2x1bW5zPVsuLi50aGlzLmNvbHVtbnMse3ByZWZpeDpoZSxvYmplY3RzOiRlLm9iamVjdHMscHJlZml4ZXM6JGUucHJlZml4ZXMsc2VsZWN0ZWRJdGVtOm51bGwsd2lkdGg6dGhpcy5ERUZBVUxUX0NPTFVNTl9XSURUSH1dLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5zY3JvbGxUb0VuZCgpKX1jYXRjaCgkZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBmb2xkZXI6IiwkZSl9fX1zY3JvbGxUb0VuZCgpe3RoaXMuc2Nyb2xsTGVmdD10aGlzLnNjcm9sbFdpZHRoLXRoaXMuY2xpZW50V2lkdGh9c3RhcnRSZXNpemUoa2UsaGUpe2tlLnByZXZlbnREZWZhdWx0KCksdGhpcy5yZXNpemluZz17Y29sdW1uSW5kZXg6aGUsc3RhcnRYOmtlLmNsaWVudFgsc3RhcnRXaWR0aDp0aGlzLmNvbHVtbnNbaGVdLndpZHRofSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlUmVzaXplKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLnN0b3BSZXNpemUpLGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSJjb2wtcmVzaXplIixkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9Im5vbmUifWhhbmRsZVJlc2l6ZT1pKGtlPT57aWYoIXRoaXMucmVzaXppbmcpcmV0dXJuO2xldCBoZT1rZS5jbGllbnRYLXRoaXMucmVzaXppbmcuc3RhcnRYLCRlPU1hdGgubWluKHRoaXMuTUFYX0NPTFVNTl9XSURUSCxNYXRoLm1heCh0aGlzLk1JTl9DT0xVTU5fV0lEVEgsdGhpcy5yZXNpemluZy5zdGFydFdpZHRoK2hlKSk7dGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5tYXAoKGV0LFB0KT0+UHQ9PT10aGlzLnJlc2l6aW5nLmNvbHVtbkluZGV4P3suLi5ldCx3aWR0aDokZX06ZXQpfSwiaGFuZGxlUmVzaXplIik7c3RvcFJlc2l6ZT1pKCgpPT57dGhpcy5yZXNpemluZz1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVSZXNpemUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuc3RvcFJlc2l6ZSksZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9IiIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSIifSwic3RvcFJlc2l6ZSIpO3NlbGVjdEZpbGUoa2UsaGUpe3RoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMubWFwKCgkZSxldCk9PmV0PT09a2U/ey4uLiRlLHNlbGVjdGVkSXRlbTpoZX06JGUpLHRoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMuc2xpY2UoMCxrZSsxKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJrZXktc2VsZWN0ZWQiLHtkZXRhaWw6e2tleTpoZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1nZXRGaWxlSWNvbihrZSl7bGV0IGhlPWtlLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCl8fCIiO3JldHVybntqc29uOiJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6Iix0eHQ6Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiLHBuZzoiTTUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMnoiLGpwZzoiTTUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMnoiLGpwZWc6Ik01IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6IixnaWY6Ik01IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6IixwZGY6Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoifVtoZV18fCJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6In1oYW5kbGVGb2xkZXJDb250ZXh0TWVudShrZSxoZSwkZSl7dGhpcy5kYXRhUHJvdmlkZXImJihrZS5wcmV2ZW50RGVmYXVsdCgpLENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGtlLFt7bmFtZToiT3BlbiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJPcGVuIixhY3Rpb246aShhc3luYygpPT57dGhpcy5zZWxlY3RGb2xkZXIoaGUsJGUpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IFBhdGgiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KCRlKX0sImFjdGlvbiIpfSx7bmFtZToiUmVuYW1lIixpY29uTmFtZToibHVjaWRlOnBlbmNpbCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuUmVuYW1lRGlhbG9nKCRlLCEwKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTW92ZSB0by4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJJbnB1dCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuTW92ZVBpY2tlckRpYWxvZygkZSwhMCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik5ldyBGb2xkZXIgSW5zaWRlIixpY29uTmFtZToibHVjaWRlOmZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZm9sZGVyIiwkZSksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZpbGUgSW5zaWRlIixpY29uTmFtZToibHVjaWRlOmZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZpbGUiLCRlKSwiYWN0aW9uIil9LHtuYW1lOiJVcGxvYWQgRmlsZXMuLi4iLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50cmlnZ2VyRmlsZVVwbG9hZCgkZSwiZmlsZXMiKSwiYWN0aW9uIil9LHtuYW1lOiJVcGxvYWQgRm9sZGVyLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlclVwIixhY3Rpb246aShhc3luYygpPT50aGlzLnRyaWdnZXJGaWxlVXBsb2FkKCRlLCJmb2xkZXIiKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRGVsZXRlIEZvbGRlciIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25maXJtKGBEZWxldGUgZm9sZGVyICIke2pyKCRlKX0iIGFuZCBhbGwgaXRzIGNvbnRlbnRzP2ApJiZhd2FpdCB0aGlzLmRhdGFQcm92aWRlci5kZWxldGVQcmVmaXgodGhpcy5idWNrZXROYW1lLCRlKSYmKHRoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMuc2xpY2UoMCxoZSsxKSx0aGlzLmNvbHVtbnM9dGhpcy5jb2x1bW5zLm1hcCgoUHQsSXMpPT5Jcz09PWhlP3suLi5QdCxzZWxlY3RlZEl0ZW06bnVsbH06UHQpLGF3YWl0IHRoaXMucmVmcmVzaENvbHVtbkJ5UHJlZml4KHRoaXMuY29sdW1uc1toZV0ucHJlZml4KSl9LCJhY3Rpb24iKX1dKSl9aGFuZGxlRmlsZUNvbnRleHRNZW51KGtlLGhlLCRlKXt0aGlzLmRhdGFQcm92aWRlciYmKGtlLnByZXZlbnREZWZhdWx0KCksQ3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoa2UsW3tuYW1lOiJQcmV2aWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMuc2VsZWN0RmlsZShoZSwkZSl9LCJhY3Rpb24iKX0se25hbWU6IkRvd25sb2FkIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aShhc3luYygpPT57bGV0IGV0PWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmdldE9iamVjdFVybCh0aGlzLmJ1Y2tldE5hbWUsJGUpLFB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtQdC5ocmVmPWV0LFB0LmRvd25sb2FkPWpyKCRlKSxQdC5jbGljaygpfSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IFBhdGgiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmkoYXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KCRlKX0sImFjdGlvbiIpfSx7bmFtZToiUmVuYW1lIixpY29uTmFtZToibHVjaWRlOnBlbmNpbCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuUmVuYW1lRGlhbG9nKCRlLCExKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTW92ZSB0by4uLiIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJJbnB1dCIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuTW92ZVBpY2tlckRpYWxvZygkZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25maXJtKGBEZWxldGUgZmlsZSAiJHtqcigkZSl9Ij9gKSYmYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSwkZSkmJmF3YWl0IHRoaXMucmVmcmVzaENvbHVtbkJ5UHJlZml4KHRoaXMuY29sdW1uc1toZV0ucHJlZml4KX0sImFjdGlvbiIpfV0pKX1oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoa2UsaGUpe2lmKGtlLnRhcmdldCE9PWtlLmN1cnJlbnRUYXJnZXQpcmV0dXJuO2tlLnByZXZlbnREZWZhdWx0KCk7bGV0ICRlPXRoaXMuY29sdW1uc1toZV0ucHJlZml4O0NyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGtlLFt7bmFtZToiTmV3IEZvbGRlciIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZvbGRlciIsJGUpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIixpY29uTmFtZToibHVjaWRlOmZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZpbGUiLCRlKSwiYWN0aW9uIil9LHtuYW1lOiJVcGxvYWQgRmlsZXMuLi4iLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50cmlnZ2VyRmlsZVVwbG9hZCgkZSwiZmlsZXMiKSwiYWN0aW9uIil9LHtuYW1lOiJVcGxvYWQgRm9sZGVyLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlclVwIixhY3Rpb246aShhc3luYygpPT50aGlzLnRyaWdnZXJGaWxlVXBsb2FkKCRlLCJmb2xkZXIiKSwiYWN0aW9uIil9XSl9b3BlbkNyZWF0ZURpYWxvZyhrZSxoZSl7dGhpcy5jcmVhdGVEaWFsb2dUeXBlPWtlLHRoaXMuY3JlYXRlRGlhbG9nUHJlZml4PWhlLHRoaXMuY3JlYXRlRGlhbG9nTmFtZT0iIix0aGlzLnNob3dDcmVhdGVEaWFsb2c9ITB9ZW5zdXJlRmlsZUlucHV0cygpe3RoaXMuZmlsZUlucHV0RWxlbWVudHx8KHRoaXMuZmlsZUlucHV0RWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuZmlsZUlucHV0RWxlbWVudC50eXBlPSJmaWxlIix0aGlzLmZpbGVJbnB1dEVsZW1lbnQubXVsdGlwbGU9ITAsdGhpcy5maWxlSW5wdXRFbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZCh0aGlzLmZpbGVJbnB1dEVsZW1lbnQpKSx0aGlzLmZvbGRlcklucHV0RWxlbWVudHx8KHRoaXMuZm9sZGVySW5wdXRFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQudHlwZT0iZmlsZSIsdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQubXVsdGlwbGU9ITAsdGhpcy5mb2xkZXJJbnB1dEVsZW1lbnQud2Via2l0ZGlyZWN0b3J5PSEwLHRoaXMuZm9sZGVySW5wdXRFbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZCh0aGlzLmZvbGRlcklucHV0RWxlbWVudCkpfXRyaWdnZXJGaWxlVXBsb2FkKGtlLGhlKXt0aGlzLmVuc3VyZUZpbGVJbnB1dHMoKTtsZXQgJGU9aGU9PT0iZm9sZGVyIj90aGlzLmZvbGRlcklucHV0RWxlbWVudDp0aGlzLmZpbGVJbnB1dEVsZW1lbnQ7JGUudmFsdWU9IiI7bGV0IGV0PWkoYXN5bmMoKT0+eyRlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZXQpLCRlLmZpbGVzJiYkZS5maWxlcy5sZW5ndGg+MCYmYXdhaXQgdGhpcy51cGxvYWRGaWxlcyhBcnJheS5mcm9tKCRlLmZpbGVzKSxrZSl9LCJoYW5kbGVyIik7JGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixldCksJGUuY2xpY2soKX1hc3luYyB1cGxvYWRGaWxlcyhrZSxoZSl7aWYodGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMudXBsb2FkaW5nPSEwLHRoaXMudXBsb2FkUHJvZ3Jlc3M9e2N1cnJlbnQ6MCx0b3RhbDprZS5sZW5ndGh9O2ZvcihsZXQgJGU9MDskZTxrZS5sZW5ndGg7JGUrKyl7bGV0IGV0PWtlWyRlXTt0aGlzLnVwbG9hZFByb2dyZXNzPXtjdXJyZW50OiRlKzEsdG90YWw6a2UubGVuZ3RofTt0cnl7bGV0IFB0PWF3YWl0IHRoaXMucmVhZEZpbGVBc0Jhc2U2NChldCksSXM9ZXQud2Via2l0UmVsYXRpdmVQYXRofHxldC5uYW1lLEtpPWhlK0lzLERvPWV0LnR5cGV8fGZmKGV0Lm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIpO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsS2ksUHQsRG8pfWNhdGNoKFB0KXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gdXBsb2FkICR7ZXQubmFtZX06YCxQdCl9fXRoaXMudXBsb2FkaW5nPSExLHRoaXMudXBsb2FkUHJvZ3Jlc3M9bnVsbCxhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeChoZSl9fWFzeW5jIHVwbG9hZEZpbGVzV2l0aFBhdGhzKGtlLGhlKXtpZih0aGlzLmRhdGFQcm92aWRlcil7dGhpcy51cGxvYWRpbmc9ITAsdGhpcy51cGxvYWRQcm9ncmVzcz17Y3VycmVudDowLHRvdGFsOmtlLmxlbmd0aH07Zm9yKGxldCAkZT0wOyRlPGtlLmxlbmd0aDskZSsrKXtsZXR7ZmlsZTpldCxyZWxhdGl2ZVBhdGg6UHR9PWtlWyRlXTt0aGlzLnVwbG9hZFByb2dyZXNzPXtjdXJyZW50OiRlKzEsdG90YWw6a2UubGVuZ3RofTt0cnl7bGV0IElzPWF3YWl0IHRoaXMucmVhZEZpbGVBc0Jhc2U2NChldCksS2k9aGUrUHQsRG89ZXQudHlwZXx8ZmYoZXQubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIik7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIucHV0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSxLaSxJcyxEbyl9Y2F0Y2goSXMpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byB1cGxvYWQgJHtQdH06YCxJcyl9fXRoaXMudXBsb2FkaW5nPSExLHRoaXMudXBsb2FkUHJvZ3Jlc3M9bnVsbCxhd2FpdCB0aGlzLnJlZnJlc2hDb2x1bW5CeVByZWZpeChoZSl9fXJlYWRGaWxlQXNCYXNlNjQoa2Upe3JldHVybiBuZXcgUHJvbWlzZSgoaGUsJGUpPT57bGV0IGV0PW5ldyBGaWxlUmVhZGVyO2V0Lm9ubG9hZD0oKT0+e2xldCBQdD1ldC5yZXN1bHQ7aGUoUHQuc3BsaXQoIiwiKVsxXXx8IiIpfSxldC5vbmVycm9yPSgpPT4kZShldC5lcnJvciksZXQucmVhZEFzRGF0YVVSTChrZSl9KX1hc3luYyByZWZyZXNoQ29sdW1uQnlQcmVmaXgoa2Upe2lmKCF0aGlzLmRhdGFQcm92aWRlcilyZXR1cm47bGV0IGhlPXRoaXMuY29sdW1ucy5maW5kSW5kZXgoJGU9PiRlLnByZWZpeD09PWtlKTtpZihoZT09PS0xKXthd2FpdCB0aGlzLnJlZnJlc2hBbGxDb2x1bW5zKCk7cmV0dXJufXRyeXtsZXQgJGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLGtlLCIvIik7dGhpcy5jb2x1bW5zPXRoaXMuY29sdW1ucy5tYXAoKGV0LFB0KT0+UHQ9PT1oZT97Li4uZXQsb2JqZWN0czokZS5vYmplY3RzLHByZWZpeGVzOiRlLnByZWZpeGVzfTpldCl9Y2F0Y2h7YXdhaXQgdGhpcy5yZWZyZXNoQWxsQ29sdW1ucygpfX1oYW5kbGVDb2x1bW5EcmFnRW50ZXIoa2UsaGUpe2tlLnByZXZlbnREZWZhdWx0KCksa2Uuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPSh0aGlzLmRyYWdDb3VudGVycy5nZXQoaGUpfHwwKSsxO3RoaXMuZHJhZ0NvdW50ZXJzLnNldChoZSwkZSksdGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PWhlfWhhbmRsZUNvbHVtbkRyYWdPdmVyKGtlKXtrZS5wcmV2ZW50RGVmYXVsdCgpLGtlLnN0b3BQcm9wYWdhdGlvbigpLGtlLmRhdGFUcmFuc2ZlciYmKGtlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PXRoaXMuZHJhZ2dlZEl0ZW0/Im1vdmUiOiJjb3B5Iil9aGFuZGxlQ29sdW1uRHJhZ0xlYXZlKGtlLGhlKXtrZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgJGU9KHRoaXMuZHJhZ0NvdW50ZXJzLmdldChoZSl8fDEpLTE7dGhpcy5kcmFnQ291bnRlcnMuc2V0KGhlLCRlKSwkZTw9MCYmKHRoaXMuZHJhZ0NvdW50ZXJzLmRlbGV0ZShoZSksdGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PT09aGUmJih0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9LTEpLHRoaXMuY2xlYXJGb2xkZXJIb3ZlcigpKX1hc3luYyBoYW5kbGVDb2x1bW5Ecm9wKGtlLGhlKXtrZS5wcmV2ZW50RGVmYXVsdCgpLGtlLnN0b3BQcm9wYWdhdGlvbigpO2xldCAkZT10aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4Pz90aGlzLmNvbHVtbnNbaGVdLnByZWZpeDtpZih0aGlzLmRyYWdnZWRJdGVtKXt0aGlzLmluaXRpYXRlTW92ZSh0aGlzLmRyYWdnZWRJdGVtLmtleSx0aGlzLmRyYWdnZWRJdGVtLmlzRm9sZGVyLCRlKSx0aGlzLmRyYWdnZWRJdGVtPW51bGwsdGhpcy5jbGVhckZvbGRlckhvdmVyKCksdGhpcy5kcmFnQ291bnRlcnMuY2xlYXIoKSx0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9LTE7cmV0dXJufXRoaXMuZHJhZ0NvdW50ZXJzLmNsZWFyKCksdGhpcy5kcmFnT3ZlckNvbHVtbkluZGV4PS0xO2xldCBldD1rZS5kYXRhVHJhbnNmZXI/Lml0ZW1zO2lmKCFldHx8ZXQubGVuZ3RoPT09MClyZXR1cm47dGhpcy5jbGVhckZvbGRlckhvdmVyKCk7bGV0IFB0PVtdLElzPWkoYXN5bmMoS2ksRG8pPT57aWYoS2kuaXNGaWxlKXtsZXQgbTI9S2kscWM9YXdhaXQgbmV3IFByb21pc2UoKERkLGcyKT0+e20yLmZpbGUoRGQsZzIpfSk7UHQucHVzaCh7ZmlsZTpxYyxyZWxhdGl2ZVBhdGg6RG8rcWMubmFtZX0pfWVsc2UgaWYoS2kuaXNEaXJlY3Rvcnkpe2xldCBxYz1LaS5jcmVhdGVSZWFkZXIoKSxEZD1hd2FpdCBuZXcgUHJvbWlzZSgoZzIsX2YpPT57cWMucmVhZEVudHJpZXMoZzIsX2YpfSk7Zm9yKGxldCBnMiBvZiBEZClhd2FpdCBJcyhnMixEbytLaS5uYW1lKyIvIil9fSwicHJvY2Vzc0VudHJ5Iik7Zm9yKGxldCBLaT0wO0tpPGV0Lmxlbmd0aDtLaSsrKXtsZXQgRG89ZXRbS2ldO2lmKERvLmtpbmQ9PT0iZmlsZSIpe2xldCBtMj1Eby53ZWJraXRHZXRBc0VudHJ5KCk7bTImJmF3YWl0IElzKG0yLCIiKX19UHQubGVuZ3RoPjAmJmF3YWl0IHRoaXMudXBsb2FkRmlsZXNXaXRoUGF0aHMoUHQsJGUpfWhhbmRsZUZvbGRlckRyYWdFbnRlcihrZSxoZSl7a2Uuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbGVhckZvbGRlckhvdmVyKCksdGhpcy5mb2xkZXJIb3ZlclRpbWVyPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4PWhlfSw1MDApfWhhbmRsZUZvbGRlckRyYWdMZWF2ZShrZSxoZSl7a2Uuc3RvcFByb3BhZ2F0aW9uKCk7bGV0ICRlPWtlLmN1cnJlbnRUYXJnZXQsZXQ9a2UucmVsYXRlZFRhcmdldDtldCYmJGUuY29udGFpbnMoZXQpfHwodGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD09PWhlJiYodGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD1udWxsKSx0aGlzLmZvbGRlckhvdmVyVGltZXImJihjbGVhclRpbWVvdXQodGhpcy5mb2xkZXJIb3ZlclRpbWVyKSx0aGlzLmZvbGRlckhvdmVyVGltZXI9bnVsbCkpfWhhbmRsZUZvbGRlckRyYWdPdmVyKGtlKXtrZS5wcmV2ZW50RGVmYXVsdCgpLGtlLnN0b3BQcm9wYWdhdGlvbigpLGtlLmRhdGFUcmFuc2ZlciYmKGtlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PXRoaXMuZHJhZ2dlZEl0ZW0/Im1vdmUiOiJjb3B5Iil9Y2xlYXJGb2xkZXJIb3Zlcigpe3RoaXMuZm9sZGVySG92ZXJUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLmZvbGRlckhvdmVyVGltZXIpLHRoaXMuZm9sZGVySG92ZXJUaW1lcj1udWxsKSx0aGlzLmRyYWdPdmVyRm9sZGVyUHJlZml4PW51bGx9aGFuZGxlSXRlbURyYWdTdGFydChrZSxoZSwkZSl7dGhpcy5kcmFnZ2VkSXRlbT17a2V5OmhlLGlzRm9sZGVyOiRlfSxrZS5kYXRhVHJhbnNmZXI/LnNldERhdGEoInRleHQvcGxhaW4iLGhlKSxrZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZD0iY29weU1vdmUiLGtlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpfWhhbmRsZUl0ZW1EcmFnRW5kKGtlKXt0aGlzLmRyYWdnZWRJdGVtPW51bGwsa2UudGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIil9YXN5bmMgb3Blbk1vdmVQaWNrZXJEaWFsb2coa2UsaGUpe3RoaXMubW92ZVBpY2tlclNvdXJjZT17a2V5OmtlLGlzRm9sZGVyOmhlfSx0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PSIiLHRoaXMuc2hvd01vdmVQaWNrZXJEaWFsb2c9ITAsYXdhaXQgdGhpcy5sb2FkTW92ZVBpY2tlclByZWZpeGVzKCIiKX1hc3luYyBuYXZpZ2F0ZU1vdmVQaWNrZXIoa2Upe3RoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9a2UsYXdhaXQgdGhpcy5sb2FkTW92ZVBpY2tlclByZWZpeGVzKGtlKX1hc3luYyBsb2FkTW92ZVBpY2tlclByZWZpeGVzKGtlKXtpZih0aGlzLmRhdGFQcm92aWRlcil7dGhpcy5tb3ZlUGlja2VyTG9hZGluZz0hMDt0cnl7bGV0IGhlPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmxpc3RPYmplY3RzKHRoaXMuYnVja2V0TmFtZSxrZSwiLyIpO3RoaXMubW92ZVBpY2tlclByZWZpeGVzPWhlLnByZWZpeGVzfWNhdGNoe3RoaXMubW92ZVBpY2tlclByZWZpeGVzPVtdfXRoaXMubW92ZVBpY2tlckxvYWRpbmc9ITF9fXNlbGVjdE1vdmVEZXN0aW5hdGlvbihrZSl7dGhpcy5tb3ZlUGlja2VyU291cmNlJiYodGhpcy5jbG9zZU1vdmVQaWNrZXJEaWFsb2coKSx0aGlzLmluaXRpYXRlTW92ZSh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5LHRoaXMubW92ZVBpY2tlclNvdXJjZS5pc0ZvbGRlcixrZSkpfWNsb3NlTW92ZVBpY2tlckRpYWxvZygpe3RoaXMuc2hvd01vdmVQaWNrZXJEaWFsb2c9ITEsdGhpcy5tb3ZlUGlja2VyU291cmNlPW51bGwsdGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD0iIix0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcz1bXX1pbml0aWF0ZU1vdmUoa2UsaGUsJGUpe2xldCBldD1fdyhrZSwkZSk7aWYoIWV0LnZhbGlkKXt0aGlzLm1vdmVTb3VyY2U9e2tleTprZSxpc0ZvbGRlcjpoZX0sdGhpcy5tb3ZlRGVzdGluYXRpb249JGUsdGhpcy5tb3ZlRXJyb3I9ZXQuZXJyb3IsdGhpcy5zaG93TW92ZURpYWxvZz0hMDtyZXR1cm59dGhpcy5tb3ZlU291cmNlPXtrZXk6a2UsaXNGb2xkZXI6aGV9LHRoaXMubW92ZURlc3RpbmF0aW9uPSRlLHRoaXMubW92ZUVycm9yPW51bGwsdGhpcy5zaG93TW92ZURpYWxvZz0hMH1hc3luYyBleGVjdXRlTW92ZSgpe2lmKCEoIXRoaXMubW92ZVNvdXJjZXx8IXRoaXMuZGF0YVByb3ZpZGVyKSl7dGhpcy5tb3ZlSW5Qcm9ncmVzcz0hMDt0cnl7bGV0IGtlPWpyKHRoaXMubW92ZVNvdXJjZS5rZXkpLGhlPXRoaXMubW92ZURlc3RpbmF0aW9uK2tlKyh0aGlzLm1vdmVTb3VyY2UuaXNGb2xkZXI/Ii8iOiIiKSwkZTt0aGlzLm1vdmVTb3VyY2UuaXNGb2xkZXI/JGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5tb3ZlU291cmNlLmtleSxoZSk6JGU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5tb3ZlU291cmNlLmtleSxoZSksJGUuc3VjY2Vzcz8odGhpcy5jbG9zZU1vdmVEaWFsb2coKSxhd2FpdCB0aGlzLnJlZnJlc2hBbGxDb2x1bW5zKCkpOnRoaXMubW92ZUVycm9yPSRlLmVycm9yfHwiTW92ZSBvcGVyYXRpb24gZmFpbGVkIn1jYXRjaChrZSl7dGhpcy5tb3ZlRXJyb3I9YEVycm9yOiAke2tlfWB9dGhpcy5tb3ZlSW5Qcm9ncmVzcz0hMX19Y2xvc2VNb3ZlRGlhbG9nKCl7dGhpcy5zaG93TW92ZURpYWxvZz0hMSx0aGlzLm1vdmVTb3VyY2U9bnVsbCx0aGlzLm1vdmVEZXN0aW5hdGlvbj0iIix0aGlzLm1vdmVFcnJvcj1udWxsLHRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9b3BlblJlbmFtZURpYWxvZyhrZSxoZSl7dGhpcy5yZW5hbWVTb3VyY2U9e2tleTprZSxpc0ZvbGRlcjpoZX0sdGhpcy5yZW5hbWVOYW1lPWpyKGtlKSx0aGlzLnJlbmFtZUVycm9yPW51bGwsdGhpcy5zaG93UmVuYW1lRGlhbG9nPSEwLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCAkZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5yZW5hbWUtZGlhbG9nLWlucHV0Iik7aWYoJGUpaWYoJGUuZm9jdXMoKSxoZSkkZS5zZWxlY3QoKTtlbHNle2xldCBldD10aGlzLnJlbmFtZU5hbWUubGFzdEluZGV4T2YoIi4iKTtldD4wPyRlLnNldFNlbGVjdGlvblJhbmdlKDAsZXQpOiRlLnNlbGVjdCgpfX0pfWFzeW5jIGV4ZWN1dGVSZW5hbWUoKXtpZighdGhpcy5yZW5hbWVTb3VyY2V8fCF0aGlzLnJlbmFtZU5hbWUudHJpbSgpfHwhdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCBrZT10aGlzLnJlbmFtZU5hbWUudHJpbSgpLGhlPWpyKHRoaXMucmVuYW1lU291cmNlLmtleSk7aWYoa2U9PT1oZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBpcyB0aGUgc2FtZSBhcyBjdXJyZW50IjtyZXR1cm59aWYoIWtlKXt0aGlzLnJlbmFtZUVycm9yPSJOYW1lIGNhbm5vdCBiZSBlbXB0eSI7cmV0dXJufWlmKGtlLmluY2x1ZGVzKCIvIikpe3RoaXMucmVuYW1lRXJyb3I9J05hbWUgY2Fubm90IGNvbnRhaW4gIi8iJztyZXR1cm59dGhpcy5yZW5hbWVJblByb2dyZXNzPSEwLHRoaXMucmVuYW1lRXJyb3I9bnVsbDt0cnl7bGV0IGV0PVRjKHRoaXMucmVuYW1lU291cmNlLmtleSkra2UrKHRoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyPyIvIjoiIiksUHQ7dGhpcy5yZW5hbWVTb3VyY2UuaXNGb2xkZXI/UHQ9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LGV0KTpQdD1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5tb3ZlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLnJlbmFtZVNvdXJjZS5rZXksZXQpLFB0LnN1Y2Nlc3M/KHRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKSxhd2FpdCB0aGlzLnJlZnJlc2hBbGxDb2x1bW5zKCkpOnRoaXMucmVuYW1lRXJyb3I9UHQuZXJyb3J8fCJSZW5hbWUgZmFpbGVkIn1jYXRjaCgkZSl7dGhpcy5yZW5hbWVFcnJvcj1gRXJyb3I6ICR7JGV9YH10aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9Y2xvc2VSZW5hbWVEaWFsb2coKXt0aGlzLnNob3dSZW5hbWVEaWFsb2c9ITEsdGhpcy5yZW5hbWVTb3VyY2U9bnVsbCx0aGlzLnJlbmFtZU5hbWU9IiIsdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMX1yZW5kZXJSZW5hbWVEaWFsb2coKXtpZighdGhpcy5zaG93UmVuYW1lRGlhbG9nfHwhdGhpcy5yZW5hbWVTb3VyY2UpcmV0dXJuIiI7bGV0IGtlPXRoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHskZT0+JGUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj4ke2tlPyJSZW5hbWUgRm9sZGVyIjoiUmVuYW1lIEZpbGUifTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWxvY2F0aW9uIj4KICAgICAgICAgICAgTG9jYXRpb246ICR7dGhpcy5idWNrZXROYW1lfS8ke1RjKHRoaXMucmVuYW1lU291cmNlLmtleSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5yZW5hbWVFcnJvcj93YDxkaXYgY2xhc3M9Im1vdmUtZXJyb3IiPiR7dGhpcy5yZW5hbWVFcnJvcn08L2Rpdj5gOiIifQogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctaW5wdXQgcmVuYW1lLWRpYWxvZy1pbnB1dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9JHtrZT8iZm9sZGVyLW5hbWUiOiJmaWxlbmFtZS5leHQifQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnJlbmFtZU5hbWV9CiAgICAgICAgICAgIEBpbnB1dD0keyRlPT57dGhpcy5yZW5hbWVOYW1lPSRlLnRhcmdldC52YWx1ZSx0aGlzLnJlbmFtZUVycm9yPW51bGx9fQogICAgICAgICAgICBAa2V5ZG93bj0keyRlPT57JGUua2V5PT09IkVudGVyIiYmdGhpcy5leGVjdXRlUmVuYW1lKCksJGUua2V5PT09IkVzY2FwZSImJnRoaXMuY2xvc2VSZW5hbWVEaWFsb2coKX19CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5yZW5hbWVJblByb2dyZXNzfT5DYW5jZWw8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5leGVjdXRlUmVuYW1lKCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5yZW5hbWVJblByb2dyZXNzfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKX0+CiAgICAgICAgICAgICAgJHt0aGlzLnJlbmFtZUluUHJvZ3Jlc3M/IlJlbmFtaW5nLi4uIjoiUmVuYW1lIn0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck1vdmVEaWFsb2coKXtpZighdGhpcy5zaG93TW92ZURpYWxvZ3x8IXRoaXMubW92ZVNvdXJjZSlyZXR1cm4iIjtsZXQga2U9anIodGhpcy5tb3ZlU291cmNlLmtleSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nIiBAY2xpY2s9JHtoZT0+aGUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICR7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyPyJGb2xkZXIiOiJGaWxlIn08L2Rpdj4KCiAgICAgICAgICAke3RoaXMubW92ZUVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtZXJyb3IiPiR7dGhpcy5tb3ZlRXJyb3J9PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtc3VtbWFyeSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLWxhYmVsIj5Gcm9tOjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLXBhdGgiPiR7dGhpcy5tb3ZlU291cmNlLmtleX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW92ZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb3ZlLWxhYmVsIj5Ubzo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZURlc3RpbmF0aW9ufSR7a2V9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWFjdGlvbnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY2FuY2VsIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj8iIjp3YAogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5leGVjdXRlTW92ZSgpfQogICAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlSW5Qcm9ncmVzc30+CiAgICAgICAgICAgICAgICAke3RoaXMubW92ZUluUHJvZ3Jlc3M/Ik1vdmluZy4uLiI6Ik1vdmUifQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlUGlja2VyRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVQaWNrZXJEaWFsb2d8fCF0aGlzLm1vdmVQaWNrZXJTb3VyY2UpcmV0dXJuIiI7bGV0IGtlPWpyKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLGhlPVRjKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyBtb3ZlLXBpY2tlci1kaWFsb2ciIEBjbGljaz0keyRlPT4kZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPk1vdmUgIiR7a2V9IiB0by4uLjwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1icmVhZGNydW1iIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1jcnVtYiIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKCIiKX0+CiAgICAgICAgICAgICAgJHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgJHtzZyh0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4KS5tYXAoJGU9PndgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpY2tlci1jcnVtYiIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKCRlKX0+CiAgICAgICAgICAgICAgICAke2pyKCRlKX0KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWxpc3QiPgogICAgICAgICAgICAke3RoaXMubW92ZVBpY2tlckxvYWRpbmc/d2A8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPkxvYWRpbmcuLi48L2Rpdj5gOiIifQogICAgICAgICAgICAkeyF0aGlzLm1vdmVQaWNrZXJMb2FkaW5nJiZ0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoJGU9PiRlIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1lbXB0eSI+Tm8gc3ViZm9sZGVyczwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAke3RoaXMubW92ZVBpY2tlclByZWZpeGVzLmZpbHRlcigkZT0+JGUhPT10aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KS5tYXAoJGU9PndgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItaXRlbSIKICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVNb3ZlUGlja2VyKCRlKX0KICAgICAgICAgICAgICAgICAgICAgQGRibGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKCRlKX0+CiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4ke2pyKCRlKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNyZWF0ZSIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RNb3ZlRGVzdGluYXRpb24odGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCl9CiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD09PWhlfT4KICAgICAgICAgICAgICBNb3ZlIEhlcmUKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGhhbmRsZUNyZWF0ZSgpe2lmKCF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfHwhdGhpcy5kYXRhUHJvdmlkZXIpcmV0dXJuO2xldCBrZT10aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpLGhlO3RoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmb2xkZXIiP2hlPXRoaXMuY3JlYXRlRGlhbG9nUHJlZml4K2tlKyIvLmtlZXAiOmhlPXRoaXMuY3JlYXRlRGlhbG9nUHJlZml4K2tlO2xldCAkZT1rZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIixldD10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/ZmYoJGUpOiJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLFB0PXRoaXMuY3JlYXRlRGlhbG9nVHlwZT09PSJmaWxlIj9UdygkZSk6IiI7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIucHV0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSxoZSxidG9hKFB0KSxldCkmJih0aGlzLnNob3dDcmVhdGVEaWFsb2c9ITEsYXdhaXQgdGhpcy5yZWZyZXNoQ29sdW1uQnlQcmVmaXgodGhpcy5jcmVhdGVEaWFsb2dQcmVmaXgpKX1yZW5kZXJDcmVhdGVEaWFsb2coKXtpZighdGhpcy5zaG93Q3JlYXRlRGlhbG9nKXJldHVybiIiO2xldCBrZT10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIixoZT1rZT8iQ3JlYXRlIE5ldyBGb2xkZXIiOiJDcmVhdGUgTmV3IEZpbGUiLCRlPWtlPyJmb2xkZXItbmFtZSBvciBwYXRoL3RvL2ZvbGRlciI6ImZpbGVuYW1lLnR4dCBvciBwYXRoL3RvL2ZpbGUudHh0IjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7ZXQ9PmV0LnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHtoZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHt0aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7JGV9CiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuY3JlYXRlRGlhbG9nTmFtZX0KICAgICAgICAgICAgQGlucHV0PSR7ZXQ9PnRoaXMuY3JlYXRlRGlhbG9nTmFtZT1ldC50YXJnZXQudmFsdWV9CiAgICAgICAgICAgIEBrZXlkb3duPSR7ZXQ9PmV0LmtleT09PSJFbnRlciImJnRoaXMuaGFuZGxlQ3JlYXRlKCl9CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLWhpbnQiPgogICAgICAgICAgICBVc2UgIi8iIHRvIGNyZWF0ZSBuZXN0ZWQgJHtrZT8iZm9sZGVycyI6InBhdGgifSAoZS5nLiwgJHtrZT8icGFyZW50L2NoaWxkIjoiZm9sZGVyL2ZpbGUudHh0In0pCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMX0+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY3JlYXRlRGlhbG9nTmFtZS50cmltKCl9CiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ3JlYXRlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBDcmVhdGUKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlcigpe3JldHVybiB0aGlzLmxvYWRpbmcmJnRoaXMuY29sdW1ucy5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0ibG9hZGluZyI+TG9hZGluZy4uLjwvZGl2PmA6d2AKICAgICAgPGRpdiBjbGFzcz0iY29sdW1ucy1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5jb2x1bW5zLm1hcCgoa2UsaGUpPT50aGlzLnJlbmRlckNvbHVtbldyYXBwZXIoa2UsaGUpKX0KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5yZW5kZXJDcmVhdGVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVQaWNrZXJEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlclJlbmFtZURpYWxvZygpfQogICAgYH1yZW5kZXJDb2x1bW5XcmFwcGVyKGtlLGhlKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY29sdW1uLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5yZW5kZXJDb2x1bW4oa2UsaGUpfQogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlICR7dGhpcy5yZXNpemluZz8uY29sdW1uSW5kZXg9PT1oZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICBAbW91c2Vkb3duPSR7JGU9PnRoaXMuc3RhcnRSZXNpemUoJGUsaGUpfQogICAgICAgID48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckNvbHVtbihrZSxoZSl7bGV0ICRlPWtlLnByZWZpeD9qcihrZS5wcmVmaXgpOnRoaXMuYnVja2V0TmFtZTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJjb2x1bW4gJHt0aGlzLmRyYWdPdmVyQ29sdW1uSW5kZXg9PT1oZT8iZHJhZy1vdmVyIjoiIn0iCiAgICAgICAgc3R5bGU9IndpZHRoOiAke2tlLndpZHRofXB4IgogICAgICAgIEBkcmFnZW50ZXI9JHtldD0+dGhpcy5oYW5kbGVDb2x1bW5EcmFnRW50ZXIoZXQsaGUpfQogICAgICAgIEBkcmFnb3Zlcj0ke2V0PT50aGlzLmhhbmRsZUNvbHVtbkRyYWdPdmVyKGV0KX0KICAgICAgICBAZHJhZ2xlYXZlPSR7ZXQ9PnRoaXMuaGFuZGxlQ29sdW1uRHJhZ0xlYXZlKGV0LGhlKX0KICAgICAgICBAZHJvcD0ke2V0PT50aGlzLmhhbmRsZUNvbHVtbkRyb3AoZXQsaGUpfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1uLWhlYWRlciIgdGl0bGU9JHtrZS5wcmVmaXh8fHRoaXMuYnVja2V0TmFtZX0+CiAgICAgICAgICAkeyRlfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbi1pdGVtcyIgQGNvbnRleHRtZW51PSR7ZXQ9PnRoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KGV0LGhlKX0+CiAgICAgICAgICAke2tlLnByZWZpeGVzLmxlbmd0aD09PTAmJmtlLm9iamVjdHMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5FbXB0eSBmb2xkZXI8L2Rpdj5gOiIifQogICAgICAgICAgJHtrZS5wcmVmaXhlcy5tYXAoZXQ9PndgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImNvbHVtbi1pdGVtIGZvbGRlciAke2tlLnNlbGVjdGVkSXRlbT09PWV0PyJzZWxlY3RlZCI6IiJ9ICR7dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD09PWV0PyJkcmFnLXRhcmdldCI6IiJ9IgogICAgICAgICAgICAgICAgZHJhZ2dhYmxlPSJ0cnVlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0Rm9sZGVyKGhlLGV0KX0KICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke1B0PT50aGlzLmhhbmRsZUZvbGRlckNvbnRleHRNZW51KFB0LGhlLGV0KX0KICAgICAgICAgICAgICAgIEBkcmFnc3RhcnQ9JHtQdD0+dGhpcy5oYW5kbGVJdGVtRHJhZ1N0YXJ0KFB0LGV0LCEwKX0KICAgICAgICAgICAgICAgIEBkcmFnZW5kPSR7UHQ9PnRoaXMuaGFuZGxlSXRlbURyYWdFbmQoUHQpfQogICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke1B0PT50aGlzLmhhbmRsZUZvbGRlckRyYWdFbnRlcihQdCxldCl9CiAgICAgICAgICAgICAgICBAZHJhZ292ZXI9JHtQdD0+dGhpcy5oYW5kbGVGb2xkZXJEcmFnT3ZlcihQdCl9CiAgICAgICAgICAgICAgICBAZHJhZ2xlYXZlPSR7UHQ9PnRoaXMuaGFuZGxlRm9sZGVyRHJhZ0xlYXZlKFB0LGV0KX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIgLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hbWUiPiR7anIoZXQpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNoZXZyb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjkgMTggMTUgMTIgOSA2Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgICAgJHtrZS5vYmplY3RzLm1hcChldD0+d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iY29sdW1uLWl0ZW0gJHtrZS5zZWxlY3RlZEl0ZW09PT1ldC5rZXk/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICBkcmFnZ2FibGU9InRydWUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RGaWxlKGhlLGV0LmtleSl9CiAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHtQdD0+dGhpcy5oYW5kbGVGaWxlQ29udGV4dE1lbnUoUHQsaGUsZXQua2V5KX0KICAgICAgICAgICAgICAgIEBkcmFnc3RhcnQ9JHtQdD0+dGhpcy5oYW5kbGVJdGVtRHJhZ1N0YXJ0KFB0LGV0LmtleSwhMSl9CiAgICAgICAgICAgICAgICBAZHJhZ2VuZD0ke1B0PT50aGlzLmhhbmRsZUl0ZW1EcmFnRW5kKFB0KX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSIke3RoaXMuZ2V0RmlsZUljb24oZXQua2V5KX0iIC8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuYW1lIj4ke2pyKGV0LmtleSl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZHJhZ092ZXJDb2x1bW5JbmRleD09PWhlP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkcmFnLWhpbnQiPgogICAgICAgICAgICAke3RoaXMuZHJhZ2dlZEl0ZW0/dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD9gTW92ZSB0byAke2pyKHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXgpfWA6Ik1vdmUgaGVyZSI6dGhpcy5kcmFnT3ZlckZvbGRlclByZWZpeD9gRHJvcCB0byB1cGxvYWQgaW50byAke2pyKHRoaXMuZHJhZ092ZXJGb2xkZXJQcmVmaXgpfWA6IkRyb3AgdG8gdXBsb2FkIGhlcmUifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAke3RoaXMudXBsb2FkaW5nP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtb3ZlcmxheSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC10ZXh0Ij5VcGxvYWRpbmcuLi48L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLnVwbG9hZFByb2dyZXNzP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLXByb2dyZXNzIj4ke3RoaXMudXBsb2FkUHJvZ3Jlc3MuY3VycmVudH0gLyAke3RoaXMudXBsb2FkUHJvZ3Jlc3MudG90YWx9IGZpbGVzPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje1R0KGEscil9fTtyZXR1cm4gTGQ9YX0pKCl9KTt2YXIgamEsRnQsT1hyLHo3dD11KCgpPT57dmUoKTtzcygpO2x0KCk7TnJlKCk7amE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LEZ0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxPWHI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXN0b3JhZ2Uta2V5cyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W10scGUsbWU9W10scT1bXSxILFU9W10saj1bXSxhZSxYPVtdLEo9W10seGUsSz1bXSxWPVtdLGxlLG5lPVtdLGVlPVtdLHplLEhlPVtdLEdlPVtdLG90LERlPVtdLF9lPVtdLG9lLHNlPVtdLGNlPVtdLFRlLHFlPVtdLG50PVtdLHZ0LExlPVtdLHdlPVtdLE9lLGdlPVtdLGJlPVtdLEllLHl0PVtdLHd0PVtdLFl0LHphPVtdLFBhPVtdLFlpLEVlPVtdLGplPVtdLHNyLHJhPVtdLHBhPVtdLHlhLGZhPVtdLENuPVtdO3ZhciB6bj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1N0b3JhZ2VLZXlzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEFlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6TnVtYmVyfSldLHk9W2llKCldLE49W2llKCldLE89W2llKCldLEI9W2llKCldLEE9W2llKCldLFk9W2llKCldLGRlPVtpZSgpXSxmZT1baWUoKV0scGU9W2llKCldLEg9W2llKCldLGFlPVtpZSgpXSx4ZT1baWUoKV0sbGU9W2llKCldLHplPVtpZSgpXSxvdD1baWUoKV0sb2U9W2llKCldLFRlPVtpZSgpXSx2dD1baWUoKV0sT2U9W2llKCldLEllPVtpZSgpXSxZdD1baWUoKV0sWWk9W2llKCldLHNyPVtpZSgpXSx5YT1baWUoKV0samEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhUHJvdmlkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJkYXRhUHJvdmlkZXIiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5kYXRhUHJvdmlkZXI9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LG8sbCksamEodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4iYnVja2V0TmFtZSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmJ1Y2tldE5hbWUsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5idWNrZXROYW1lPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxkLGYpLGphKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDZT0+ImN1cnJlbnRQcmVmaXgiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5jdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UuY3VycmVudFByZWZpeD1ZZX0sInNldCIpfSxtZXRhZGF0YTpBZX0saCxtKSxqYSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZnJlc2hLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJyZWZyZXNoS2V5ImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2UucmVmcmVzaEtleSwiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLnJlZnJlc2hLZXk9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LGIsZyksamEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxLZXlzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4iYWxsS2V5cyJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmFsbEtleXMsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5hbGxLZXlzPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxrLE0pLGphKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJlZml4ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJwcmVmaXhlcyJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLnByZWZpeGVzLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UucHJlZml4ZXM9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LF8sUyksamEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ibG9hZGluZyJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmxvYWRpbmcsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5sb2FkaW5nPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxMLEUpLGphKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJzZWxlY3RlZEtleSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLnNlbGVjdGVkS2V5LCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2Uuc2VsZWN0ZWRLZXk9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LEMseiksamEodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4iZmlsdGVyVGV4dCJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmZpbHRlclRleHQsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5maWx0ZXJUZXh0PVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSwkLEYpLGphKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NyZWF0ZURpYWxvZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDZT0+InNob3dDcmVhdGVEaWFsb2ciaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5zaG93Q3JlYXRlRGlhbG9nLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2Uuc2hvd0NyZWF0ZURpYWxvZz1ZZX0sInNldCIpfSxtZXRhZGF0YTpBZX0sRyxaKSxqYSh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjcmVhdGVEaWFsb2dUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4iY3JlYXRlRGlhbG9nVHlwZSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmNyZWF0ZURpYWxvZ1R5cGUsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5jcmVhdGVEaWFsb2dUeXBlPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxELFEpLGphKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyZWF0ZURpYWxvZ1ByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDZT0+ImNyZWF0ZURpYWxvZ1ByZWZpeCJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmNyZWF0ZURpYWxvZ1ByZWZpeCwiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLmNyZWF0ZURpYWxvZ1ByZWZpeD1ZZX0sInNldCIpfSxtZXRhZGF0YTpBZX0sVCxXKSxqYSh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjcmVhdGVEaWFsb2dOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4iY3JlYXRlRGlhbG9nTmFtZSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLmNyZWF0ZURpYWxvZ05hbWUsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5jcmVhdGVEaWFsb2dOYW1lPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxtZSxxKSxqYSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dNb3ZlRGlhbG9nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ic2hvd01vdmVEaWFsb2ciaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5zaG93TW92ZURpYWxvZywiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLnNob3dNb3ZlRGlhbG9nPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxVLGopLGphKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVTb3VyY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJtb3ZlU291cmNlImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2UubW92ZVNvdXJjZSwiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLm1vdmVTb3VyY2U9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LFgsSiksamEodGhpcyxudWxsLHhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZURlc3RpbmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ibW92ZURlc3RpbmF0aW9uImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2UubW92ZURlc3RpbmF0aW9uLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UubW92ZURlc3RpbmF0aW9uPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxLLFYpLGphKHRoaXMsbnVsbCxsZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vdmVJblByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ibW92ZUluUHJvZ3Jlc3MiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5tb3ZlSW5Qcm9ncmVzcywiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLm1vdmVJblByb2dyZXNzPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxuZSxlZSksamEodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ibW92ZUVycm9yImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2UubW92ZUVycm9yLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UubW92ZUVycm9yPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxIZSxHZSksamEodGhpcyxudWxsLG90LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01vdmVQaWNrZXJEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJzaG93TW92ZVBpY2tlckRpYWxvZyJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLnNob3dNb3ZlUGlja2VyRGlhbG9nLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2Uuc2hvd01vdmVQaWNrZXJEaWFsb2c9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LERlLF9lKSxqYSh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyU291cmNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4ibW92ZVBpY2tlclNvdXJjZSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLm1vdmVQaWNrZXJTb3VyY2UsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5tb3ZlUGlja2VyU291cmNlPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxzZSxjZSksamEodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW92ZVBpY2tlckN1cnJlbnRQcmVmaXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJtb3ZlUGlja2VyQ3VycmVudFByZWZpeCJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4LCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LHFlLG50KSxqYSh0aGlzLG51bGwsdnQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyUHJlZml4ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJtb3ZlUGlja2VyUHJlZml4ZXMiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5tb3ZlUGlja2VyUHJlZml4ZXMsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5tb3ZlUGlja2VyUHJlZml4ZXM9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LExlLHdlKSxqYSh0aGlzLG51bGwsT2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb3ZlUGlja2VyTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDZT0+Im1vdmVQaWNrZXJMb2FkaW5nImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2UubW92ZVBpY2tlckxvYWRpbmcsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5tb3ZlUGlja2VyTG9hZGluZz1ZZX0sInNldCIpfSxtZXRhZGF0YTpBZX0sZ2UsYmUpLGphKHRoaXMsbnVsbCxJZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dSZW5hbWVEaWFsb2ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJzaG93UmVuYW1lRGlhbG9nImluIENlLCJoYXMiKSxnZXQ6aShDZT0+Q2Uuc2hvd1JlbmFtZURpYWxvZywiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLnNob3dSZW5hbWVEaWFsb2c9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LHl0LHd0KSxqYSh0aGlzLG51bGwsWXQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVTb3VyY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoQ2U9PiJyZW5hbWVTb3VyY2UiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5yZW5hbWVTb3VyY2UsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5yZW5hbWVTb3VyY2U9WWV9LCJzZXQiKX0sbWV0YWRhdGE6QWV9LHphLFBhKSxqYSh0aGlzLG51bGwsWWkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5hbWVOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4icmVuYW1lTmFtZSJpbiBDZSwiaGFzIiksZ2V0OmkoQ2U9PkNlLnJlbmFtZU5hbWUsImdldCIpLHNldDppKChDZSxZZSk9PntDZS5yZW5hbWVOYW1lPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxFZSxqZSksamEodGhpcyxudWxsLHNyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuYW1lSW5Qcm9ncmVzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShDZT0+InJlbmFtZUluUHJvZ3Jlc3MiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5yZW5hbWVJblByb2dyZXNzLCJnZXQiKSxzZXQ6aSgoQ2UsWWUpPT57Q2UucmVuYW1lSW5Qcm9ncmVzcz1ZZX0sInNldCIpfSxtZXRhZGF0YTpBZX0scmEscGEpLGphKHRoaXMsbnVsbCx5YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmFtZUVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKENlPT4icmVuYW1lRXJyb3IiaW4gQ2UsImhhcyIpLGdldDppKENlPT5DZS5yZW5hbWVFcnJvciwiZ2V0Iiksc2V0OmkoKENlLFllKT0+e0NlLnJlbmFtZUVycm9yPVllfSwic2V0Iil9LG1ldGFkYXRhOkFlfSxmYSxDbiksamEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6QWV9LG51bGwsciksem49YT1lLnZhbHVlLEFlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkFlfSl9I2U9RnQodGhpcyxvLG51bGwpO2dldCBkYXRhUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YVByb3ZpZGVyKEFlKXt0aGlzLiNlPUFlfSN0PShGdCh0aGlzLGwpLEZ0KHRoaXMsZCwiIikpO2dldCBidWNrZXROYW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJ1Y2tldE5hbWUoQWUpe3RoaXMuI3Q9QWV9I3I9KEZ0KHRoaXMsZiksRnQodGhpcyxoLCIiKSk7Z2V0IGN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY3VycmVudFByZWZpeChBZSl7dGhpcy4jcj1BZX0jYT0oRnQodGhpcyxtKSxGdCh0aGlzLGIsMCkpO2dldCByZWZyZXNoS2V5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHJlZnJlc2hLZXkoQWUpe3RoaXMuI2E9QWV9I2k9KEZ0KHRoaXMsZyksRnQodGhpcyxrLFtdKSk7Z2V0IGFsbEtleXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYWxsS2V5cyhBZSl7dGhpcy4jaT1BZX0jcz0oRnQodGhpcyxNKSxGdCh0aGlzLF8sW10pKTtnZXQgcHJlZml4ZXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgcHJlZml4ZXMoQWUpe3RoaXMuI3M9QWV9I249KEZ0KHRoaXMsUyksRnQodGhpcyxMLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbG9hZGluZyhBZSl7dGhpcy4jbj1BZX0jbz0oRnQodGhpcyxFKSxGdCh0aGlzLEMsIiIpKTtnZXQgc2VsZWN0ZWRLZXkoKXtyZXR1cm4gdGhpcy4jb31zZXQgc2VsZWN0ZWRLZXkoQWUpe3RoaXMuI289QWV9I2w9KEZ0KHRoaXMseiksRnQodGhpcywkLCIiKSk7Z2V0IGZpbHRlclRleHQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgZmlsdGVyVGV4dChBZSl7dGhpcy4jbD1BZX0jYz0oRnQodGhpcyxGKSxGdCh0aGlzLEcsITEpKTtnZXQgc2hvd0NyZWF0ZURpYWxvZygpe3JldHVybiB0aGlzLiNjfXNldCBzaG93Q3JlYXRlRGlhbG9nKEFlKXt0aGlzLiNjPUFlfSNkPShGdCh0aGlzLFopLEZ0KHRoaXMsRCwiZm9sZGVyIikpO2dldCBjcmVhdGVEaWFsb2dUeXBlKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGNyZWF0ZURpYWxvZ1R5cGUoQWUpe3RoaXMuI2Q9QWV9I3U9KEZ0KHRoaXMsUSksRnQodGhpcyxULCIiKSk7Z2V0IGNyZWF0ZURpYWxvZ1ByZWZpeCgpe3JldHVybiB0aGlzLiN1fXNldCBjcmVhdGVEaWFsb2dQcmVmaXgoQWUpe3RoaXMuI3U9QWV9I3A9KEZ0KHRoaXMsVyksRnQodGhpcyxtZSwiIikpO2dldCBjcmVhdGVEaWFsb2dOYW1lKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGNyZWF0ZURpYWxvZ05hbWUoQWUpe3RoaXMuI3A9QWV9I2Y9KEZ0KHRoaXMscSksRnQodGhpcyxVLCExKSk7Z2V0IHNob3dNb3ZlRGlhbG9nKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHNob3dNb3ZlRGlhbG9nKEFlKXt0aGlzLiNmPUFlfSNoPShGdCh0aGlzLGopLEZ0KHRoaXMsWCxudWxsKSk7Z2V0IG1vdmVTb3VyY2UoKXtyZXR1cm4gdGhpcy4jaH1zZXQgbW92ZVNvdXJjZShBZSl7dGhpcy4jaD1BZX0jbT0oRnQodGhpcyxKKSxGdCh0aGlzLEssIiIpKTtnZXQgbW92ZURlc3RpbmF0aW9uKCl7cmV0dXJuIHRoaXMuI219c2V0IG1vdmVEZXN0aW5hdGlvbihBZSl7dGhpcy4jbT1BZX0jZz0oRnQodGhpcyxWKSxGdCh0aGlzLG5lLCExKSk7Z2V0IG1vdmVJblByb2dyZXNzKCl7cmV0dXJuIHRoaXMuI2d9c2V0IG1vdmVJblByb2dyZXNzKEFlKXt0aGlzLiNnPUFlfSNiPShGdCh0aGlzLGVlKSxGdCh0aGlzLEhlLG51bGwpKTtnZXQgbW92ZUVycm9yKCl7cmV0dXJuIHRoaXMuI2J9c2V0IG1vdmVFcnJvcihBZSl7dGhpcy4jYj1BZX0jeD0oRnQodGhpcyxHZSksRnQodGhpcyxEZSwhMSkpO2dldCBzaG93TW92ZVBpY2tlckRpYWxvZygpe3JldHVybiB0aGlzLiN4fXNldCBzaG93TW92ZVBpY2tlckRpYWxvZyhBZSl7dGhpcy4jeD1BZX0jdj0oRnQodGhpcyxfZSksRnQodGhpcyxzZSxudWxsKSk7Z2V0IG1vdmVQaWNrZXJTb3VyY2UoKXtyZXR1cm4gdGhpcy4jdn1zZXQgbW92ZVBpY2tlclNvdXJjZShBZSl7dGhpcy4jdj1BZX0jeT0oRnQodGhpcyxjZSksRnQodGhpcyxxZSwiIikpO2dldCBtb3ZlUGlja2VyQ3VycmVudFByZWZpeCgpe3JldHVybiB0aGlzLiN5fXNldCBtb3ZlUGlja2VyQ3VycmVudFByZWZpeChBZSl7dGhpcy4jeT1BZX0jdz0oRnQodGhpcyxudCksRnQodGhpcyxMZSxbXSkpO2dldCBtb3ZlUGlja2VyUHJlZml4ZXMoKXtyZXR1cm4gdGhpcy4jd31zZXQgbW92ZVBpY2tlclByZWZpeGVzKEFlKXt0aGlzLiN3PUFlfSNrPShGdCh0aGlzLHdlKSxGdCh0aGlzLGdlLCExKSk7Z2V0IG1vdmVQaWNrZXJMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2t9c2V0IG1vdmVQaWNrZXJMb2FkaW5nKEFlKXt0aGlzLiNrPUFlfSNTPShGdCh0aGlzLGJlKSxGdCh0aGlzLHl0LCExKSk7Z2V0IHNob3dSZW5hbWVEaWFsb2coKXtyZXR1cm4gdGhpcy4jU31zZXQgc2hvd1JlbmFtZURpYWxvZyhBZSl7dGhpcy4jUz1BZX0jTT0oRnQodGhpcyx3dCksRnQodGhpcyx6YSxudWxsKSk7Z2V0IHJlbmFtZVNvdXJjZSgpe3JldHVybiB0aGlzLiNNfXNldCByZW5hbWVTb3VyY2UoQWUpe3RoaXMuI009QWV9I0M9KEZ0KHRoaXMsUGEpLEZ0KHRoaXMsRWUsIiIpKTtnZXQgcmVuYW1lTmFtZSgpe3JldHVybiB0aGlzLiNDfXNldCByZW5hbWVOYW1lKEFlKXt0aGlzLiNDPUFlfSN6PShGdCh0aGlzLGplKSxGdCh0aGlzLHJhLCExKSk7Z2V0IHJlbmFtZUluUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy4jen1zZXQgcmVuYW1lSW5Qcm9ncmVzcyhBZSl7dGhpcy4jej1BZX0jXz0oRnQodGhpcyxwYSksRnQodGhpcyxmYSxudWxsKSk7Z2V0IHJlbmFtZUVycm9yKCl7cmV0dXJuIHRoaXMuI199c2V0IHJlbmFtZUVycm9yKEFlKXt0aGlzLiNfPUFlfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxOZSxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAua2V5cy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzQ0NCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM0MDQwNDAiKX07CiAgICAgIH0KCiAgICAgIC5maWx0ZXItaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICB9CgogICAgICAua2V5cy1saXN0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICB9CgogICAgICB0aGVhZCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMWExYTFhIil9OwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIHRoIHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjNjY2Iil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMmEyYTNlIil9OwogICAgICB9CgogICAgICB0cjpob3ZlciB0ZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpIil9OwogICAgICB9CgogICAgICB0ci5zZWxlY3RlZCB0ZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5rZXktY2VsbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmtleS1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgIH0KCiAgICAgIC5rZXktbmFtZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2l6ZS1jZWxsIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLmRpYWxvZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMWUxZTFlIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtaW4td2lkdGg6IDQwMHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC41KTsKICAgICAgfQoKICAgICAgLmRpYWxvZy10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWxvY2F0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxNDE0MTQiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjMzMzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmZmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmRpYWxvZy1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1oaW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGlhbG9nLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0NDQiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2FhYSIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY2FuY2VsOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRpYWxvZy1idG4tY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiM0MDQwNDAiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5kaWFsb2ctYnRuLWNyZWF0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTA1MDUwIil9OwogICAgICB9CgogICAgICAuZGlhbG9nLWJ0bi1jcmVhdGU6ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAvKiBNb3ZlIGRpYWxvZyBzdHlsZXMgKi8KICAgICAgLm1vdmUtc3VtbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLm1vdmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb3ZlLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLm1vdmUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICB9CgogICAgICAubW92ZS1wYXRoIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzZjNmNDYiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLm1vdmUtZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLyogTW92ZSBwaWNrZXIgZGlhbG9nIHN0eWxlcyAqLwogICAgICAubW92ZS1waWNrZXItZGlhbG9nIHsKICAgICAgICBtaW4td2lkdGg6IDQ1MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICB9CgogICAgICAucGlja2VyLWJyZWFkY3J1bWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzg4OCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnBpY2tlci1jcnVtYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLnBpY2tlci1zZXBhcmF0b3IgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItbGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMjgwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwcHg7CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLnBpY2tlci1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5waWNrZXItaXRlbSAuaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAucGlja2VyLWl0ZW0gLm5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAucGlja2VyLWVtcHR5IHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMubG9hZE9iamVjdHMoKX11cGRhdGVkKEFlKXsoQWUuaGFzKCJidWNrZXROYW1lIil8fEFlLmhhcygiY3VycmVudFByZWZpeCIpfHxBZS5oYXMoInJlZnJlc2hLZXkiKSkmJnRoaXMubG9hZE9iamVjdHMoKX1hc3luYyBsb2FkT2JqZWN0cygpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCBBZT1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5saXN0T2JqZWN0cyh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5jdXJyZW50UHJlZml4LCIvIik7dGhpcy5hbGxLZXlzPUFlLm9iamVjdHMsdGhpcy5wcmVmaXhlcz1BZS5wcmVmaXhlc31jYXRjaChBZSl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBvYmplY3RzOiIsQWUpLHRoaXMuYWxsS2V5cz1bXSx0aGlzLnByZWZpeGVzPVtdfXRoaXMubG9hZGluZz0hMX19aGFuZGxlRmlsdGVySW5wdXQoQWUpe3RoaXMuZmlsdGVyVGV4dD1BZS50YXJnZXQudmFsdWV9c2VsZWN0S2V5KEFlLENlKXt0aGlzLnNlbGVjdGVkS2V5PUFlLENlP3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5hdmlnYXRlIix7ZGV0YWlsOntwcmVmaXg6QWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSk6dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgia2V5LXNlbGVjdGVkIix7ZGV0YWlsOntrZXk6QWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Z2V0IGZpbHRlcmVkSXRlbXMoKXtsZXQgQWU9dGhpcy5maWx0ZXJUZXh0LnRvTG93ZXJDYXNlKCksQ2U9dGhpcy5wcmVmaXhlcy5maWx0ZXIoRHI9PiFBZXx8anIoRHIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoQWUpKS5tYXAoRHI9Pih7a2V5OkRyLGlzRm9sZGVyOiEwLHNpemU6dm9pZCAwfSkpLFllPXRoaXMuYWxsS2V5cy5maWx0ZXIoRHI9PiFBZXx8anIoRHIua2V5KS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKEFlKSkubWFwKERyPT4oe2tleTpEci5rZXksaXNGb2xkZXI6ITEsc2l6ZTpEci5zaXplfSkpO3JldHVyblsuLi5DZSwuLi5ZZV19aGFuZGxlSXRlbUNvbnRleHRNZW51KEFlLENlLFllKXt0aGlzLmRhdGFQcm92aWRlciYmKEFlLnByZXZlbnREZWZhdWx0KCksWWU/Q3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoQWUsW3tuYW1lOiJPcGVuIixpY29uTmFtZToibHVjaWRlOmZvbGRlck9wZW4iLGFjdGlvbjppKGFzeW5jKCk9Pnt0aGlzLnNlbGVjdEtleShDZSwhMCl9LCJhY3Rpb24iKX0se25hbWU6IkNvcHkgUGF0aCIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoQ2UpfSwiYWN0aW9uIil9LHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5SZW5hbWVEaWFsb2coQ2UsITApLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJNb3ZlIHRvLi4uIixpY29uTmFtZToibHVjaWRlOmZvbGRlcklucHV0IixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5Nb3ZlUGlja2VyRGlhbG9nKENlLCEwKSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiTmV3IEZvbGRlciBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5vcGVuQ3JlYXRlRGlhbG9nKCJmb2xkZXIiLENlKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRmlsZSBJbnNpZGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZmlsZSIsQ2UpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbmZpcm0oYERlbGV0ZSBmb2xkZXIgIiR7anIoQ2UpfSIgYW5kIGFsbCBpdHMgY29udGVudHM/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZVByZWZpeCh0aGlzLmJ1Y2tldE5hbWUsQ2UpJiZhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCl9LCJhY3Rpb24iKX1dKTpDci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhBZSxbe25hbWU6IlByZXZpZXciLGljb25OYW1lOiJsdWNpZGU6ZXllIixhY3Rpb246aShhc3luYygpPT57dGhpcy5zZWxlY3RLZXkoQ2UsITEpfSwiYWN0aW9uIil9LHtuYW1lOiJEb3dubG9hZCIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCBEcj1hd2FpdCB0aGlzLmRhdGFQcm92aWRlci5nZXRPYmplY3RVcmwodGhpcy5idWNrZXROYW1lLENlKSxFcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7RXMuaHJlZj1EcixFcy5kb3dubG9hZD1qcihDZSksRXMuY2xpY2soKX0sImFjdGlvbiIpfSx7bmFtZToiQ29weSBQYXRoIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChDZSl9LCJhY3Rpb24iKX0se25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6Imx1Y2lkZTpwZW5jaWwiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlblJlbmFtZURpYWxvZyhDZSwhMSksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6Ik1vdmUgdG8uLi4iLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVySW5wdXQiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3Blbk1vdmVQaWNrZXJEaWFsb2coQ2UsITEpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246aShhc3luYygpPT57Y29uZmlybShgRGVsZXRlIGZpbGUgIiR7anIoQ2UpfSI/YCkmJmF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLmRlbGV0ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsQ2UpJiZhd2FpdCB0aGlzLmxvYWRPYmplY3RzKCl9LCJhY3Rpb24iKX1dKSl9aGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KEFlKXtBZS50YXJnZXQuY2xvc2VzdCgidHIiKXx8KEFlLnByZXZlbnREZWZhdWx0KCksQ3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoQWUsW3tuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToibHVjaWRlOmZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMub3BlbkNyZWF0ZURpYWxvZygiZm9sZGVyIix0aGlzLmN1cnJlbnRQcmVmaXgpLCJhY3Rpb24iKX0se25hbWU6Ik5ldyBGaWxlIixpY29uTmFtZToibHVjaWRlOmZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLm9wZW5DcmVhdGVEaWFsb2coImZpbGUiLHRoaXMuY3VycmVudFByZWZpeCksImFjdGlvbiIpfV0pKX1vcGVuQ3JlYXRlRGlhbG9nKEFlLENlKXt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9QWUsdGhpcy5jcmVhdGVEaWFsb2dQcmVmaXg9Q2UsdGhpcy5jcmVhdGVEaWFsb2dOYW1lPSIiLHRoaXMuc2hvd0NyZWF0ZURpYWxvZz0hMH1hc3luYyBoYW5kbGVDcmVhdGUoKXtpZighdGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgQWU9dGhpcy5jcmVhdGVEaWFsb2dOYW1lLnRyaW0oKSxDZTt0aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZm9sZGVyIj9DZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCtBZSsiLy5rZWVwIjpDZT10aGlzLmNyZWF0ZURpYWxvZ1ByZWZpeCtBZTtsZXQgWWU9QWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKXx8IiIsRHI9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZpbGUiP2ZmKFllKToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixFcz10aGlzLmNyZWF0ZURpYWxvZ1R5cGU9PT0iZmlsZSI/VHcoWWUpOiIiO2F3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLnB1dE9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsQ2UsYnRvYShFcyksRHIpJiYodGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExLGF3YWl0IHRoaXMubG9hZE9iamVjdHMoKSl9cmVuZGVyQ3JlYXRlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd0NyZWF0ZURpYWxvZylyZXR1cm4iIjtsZXQgQWU9dGhpcy5jcmVhdGVEaWFsb2dUeXBlPT09ImZvbGRlciIsQ2U9QWU/IkNyZWF0ZSBOZXcgRm9sZGVyIjoiQ3JlYXRlIE5ldyBGaWxlIixZZT1BZT8iZm9sZGVyLW5hbWUgb3IgcGF0aC90by9mb2xkZXIiOiJmaWxlbmFtZS50eHQgb3IgcGF0aC90by9maWxlLnR4dCI7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5zaG93Q3JlYXRlRGlhbG9nPSExfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ciIEBjbGljaz0ke0RyPT5Eci5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctdGl0bGUiPiR7Q2V9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctbG9jYXRpb24iPgogICAgICAgICAgICBMb2NhdGlvbjogJHt0aGlzLmJ1Y2tldE5hbWV9LyR7dGhpcy5jcmVhdGVEaWFsb2dQcmVmaXh9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0ke1llfQogICAgICAgICAgICAudmFsdWU9JHt0aGlzLmNyZWF0ZURpYWxvZ05hbWV9CiAgICAgICAgICAgIEBpbnB1dD0ke0RyPT50aGlzLmNyZWF0ZURpYWxvZ05hbWU9RHIudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICBAa2V5ZG93bj0ke0RyPT5Eci5rZXk9PT0iRW50ZXIiJiZ0aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1oaW50Ij4KICAgICAgICAgICAgVXNlICIvIiB0byBjcmVhdGUgbmVzdGVkICR7QWU/ImZvbGRlcnMiOiJwYXRoIn0gKGUuZy4sICR7QWU/InBhcmVudC9jaGlsZCI6ImZvbGRlci9maWxlLnR4dCJ9KQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLnNob3dDcmVhdGVEaWFsb2c9ITF9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmNyZWF0ZURpYWxvZ05hbWUudHJpbSgpfQogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQ3JlYXRlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBvcGVuTW92ZVBpY2tlckRpYWxvZyhBZSxDZSl7dGhpcy5tb3ZlUGlja2VyU291cmNlPXtrZXk6QWUsaXNGb2xkZXI6Q2V9LHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9IiIsdGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMCxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoIiIpfWFzeW5jIG5hdmlnYXRlTW92ZVBpY2tlcihBZSl7dGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeD1BZSxhd2FpdCB0aGlzLmxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoQWUpfWFzeW5jIGxvYWRNb3ZlUGlja2VyUHJlZml4ZXMoQWUpe2lmKHRoaXMuZGF0YVByb3ZpZGVyKXt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nPSEwO3RyeXtsZXQgQ2U9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubGlzdE9iamVjdHModGhpcy5idWNrZXROYW1lLEFlLCIvIik7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9Q2UucHJlZml4ZXN9Y2F0Y2h7dGhpcy5tb3ZlUGlja2VyUHJlZml4ZXM9W119dGhpcy5tb3ZlUGlja2VyTG9hZGluZz0hMX19c2VsZWN0TW92ZURlc3RpbmF0aW9uKEFlKXt0aGlzLm1vdmVQaWNrZXJTb3VyY2UmJih0aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpLHRoaXMuaW5pdGlhdGVNb3ZlKHRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXksdGhpcy5tb3ZlUGlja2VyU291cmNlLmlzRm9sZGVyLEFlKSl9Y2xvc2VNb3ZlUGlja2VyRGlhbG9nKCl7dGhpcy5zaG93TW92ZVBpY2tlckRpYWxvZz0hMSx0aGlzLm1vdmVQaWNrZXJTb3VyY2U9bnVsbCx0aGlzLm1vdmVQaWNrZXJDdXJyZW50UHJlZml4PSIiLHRoaXMubW92ZVBpY2tlclByZWZpeGVzPVtdfWluaXRpYXRlTW92ZShBZSxDZSxZZSl7bGV0IERyPV93KEFlLFllKTtpZighRHIudmFsaWQpe3RoaXMubW92ZVNvdXJjZT17a2V5OkFlLGlzRm9sZGVyOkNlfSx0aGlzLm1vdmVEZXN0aW5hdGlvbj1ZZSx0aGlzLm1vdmVFcnJvcj1Eci5lcnJvcix0aGlzLnNob3dNb3ZlRGlhbG9nPSEwO3JldHVybn10aGlzLm1vdmVTb3VyY2U9e2tleTpBZSxpc0ZvbGRlcjpDZX0sdGhpcy5tb3ZlRGVzdGluYXRpb249WWUsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLnNob3dNb3ZlRGlhbG9nPSEwfWFzeW5jIGV4ZWN1dGVNb3ZlKCl7aWYoISghdGhpcy5tb3ZlU291cmNlfHwhdGhpcy5kYXRhUHJvdmlkZXIpKXt0aGlzLm1vdmVJblByb2dyZXNzPSEwO3RyeXtsZXQgQWU9anIodGhpcy5tb3ZlU291cmNlLmtleSksQ2U9dGhpcy5tb3ZlRGVzdGluYXRpb24rQWUsWWU7dGhpcy5tb3ZlU291cmNlLmlzRm9sZGVyP1llPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXksQ2UpOlllPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVPYmplY3QodGhpcy5idWNrZXROYW1lLHRoaXMubW92ZVNvdXJjZS5rZXksQ2UpLFllLnN1Y2Nlc3M/KHRoaXMuY2xvc2VNb3ZlRGlhbG9nKCksYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpKTp0aGlzLm1vdmVFcnJvcj1ZZS5lcnJvcnx8Ik1vdmUgb3BlcmF0aW9uIGZhaWxlZCJ9Y2F0Y2goQWUpe3RoaXMubW92ZUVycm9yPWBFcnJvcjogJHtBZX1gfXRoaXMubW92ZUluUHJvZ3Jlc3M9ITF9fWNsb3NlTW92ZURpYWxvZygpe3RoaXMuc2hvd01vdmVEaWFsb2c9ITEsdGhpcy5tb3ZlU291cmNlPW51bGwsdGhpcy5tb3ZlRGVzdGluYXRpb249IiIsdGhpcy5tb3ZlRXJyb3I9bnVsbCx0aGlzLm1vdmVJblByb2dyZXNzPSExfW9wZW5SZW5hbWVEaWFsb2coQWUsQ2Upe3RoaXMucmVuYW1lU291cmNlPXtrZXk6QWUsaXNGb2xkZXI6Q2V9LHRoaXMucmVuYW1lTmFtZT1qcihBZSksdGhpcy5yZW5hbWVFcnJvcj1udWxsLHRoaXMuc2hvd1JlbmFtZURpYWxvZz0hMCx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgWWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucmVuYW1lLWRpYWxvZy1pbnB1dCIpO2lmKFllKWlmKFllLmZvY3VzKCksQ2UpWWUuc2VsZWN0KCk7ZWxzZXtsZXQgRHI9dGhpcy5yZW5hbWVOYW1lLmxhc3RJbmRleE9mKCIuIik7RHI+MD9ZZS5zZXRTZWxlY3Rpb25SYW5nZSgwLERyKTpZZS5zZWxlY3QoKX19KX1hc3luYyBleGVjdXRlUmVuYW1lKCl7aWYoIXRoaXMucmVuYW1lU291cmNlfHwhdGhpcy5yZW5hbWVOYW1lLnRyaW0oKXx8IXRoaXMuZGF0YVByb3ZpZGVyKXJldHVybjtsZXQgQWU9dGhpcy5yZW5hbWVOYW1lLnRyaW0oKSxDZT1qcih0aGlzLnJlbmFtZVNvdXJjZS5rZXkpO2lmKEFlPT09Q2Upe3RoaXMucmVuYW1lRXJyb3I9Ik5hbWUgaXMgdGhlIHNhbWUgYXMgY3VycmVudCI7cmV0dXJufWlmKCFBZSl7dGhpcy5yZW5hbWVFcnJvcj0iTmFtZSBjYW5ub3QgYmUgZW1wdHkiO3JldHVybn1pZihBZS5pbmNsdWRlcygiLyIpKXt0aGlzLnJlbmFtZUVycm9yPSdOYW1lIGNhbm5vdCBjb250YWluICIvIic7cmV0dXJufXRoaXMucmVuYW1lSW5Qcm9ncmVzcz0hMCx0aGlzLnJlbmFtZUVycm9yPW51bGw7dHJ5e2xldCBEcj1UYyh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpK0FlKyh0aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcj8iLyI6IiIpLEVzO3RoaXMucmVuYW1lU291cmNlLmlzRm9sZGVyP0VzPWF3YWl0IHRoaXMuZGF0YVByb3ZpZGVyLm1vdmVQcmVmaXgodGhpcy5idWNrZXROYW1lLHRoaXMucmVuYW1lU291cmNlLmtleSxEcik6RXM9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIubW92ZU9iamVjdCh0aGlzLmJ1Y2tldE5hbWUsdGhpcy5yZW5hbWVTb3VyY2Uua2V5LERyKSxFcy5zdWNjZXNzPyh0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCksYXdhaXQgdGhpcy5sb2FkT2JqZWN0cygpKTp0aGlzLnJlbmFtZUVycm9yPUVzLmVycm9yfHwiUmVuYW1lIGZhaWxlZCJ9Y2F0Y2goWWUpe3RoaXMucmVuYW1lRXJyb3I9YEVycm9yOiAke1llfWB9dGhpcy5yZW5hbWVJblByb2dyZXNzPSExfWNsb3NlUmVuYW1lRGlhbG9nKCl7dGhpcy5zaG93UmVuYW1lRGlhbG9nPSExLHRoaXMucmVuYW1lU291cmNlPW51bGwsdGhpcy5yZW5hbWVOYW1lPSIiLHRoaXMucmVuYW1lRXJyb3I9bnVsbCx0aGlzLnJlbmFtZUluUHJvZ3Jlc3M9ITF9cmVuZGVyUmVuYW1lRGlhbG9nKCl7aWYoIXRoaXMuc2hvd1JlbmFtZURpYWxvZ3x8IXRoaXMucmVuYW1lU291cmNlKXJldHVybiIiO2xldCBBZT10aGlzLnJlbmFtZVNvdXJjZS5pc0ZvbGRlcjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7WWU9PlllLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+JHtBZT8iUmVuYW1lIEZvbGRlciI6IlJlbmFtZSBGaWxlIn08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1sb2NhdGlvbiI+CiAgICAgICAgICAgIExvY2F0aW9uOiAke3RoaXMuYnVja2V0TmFtZX0vJHtUYyh0aGlzLnJlbmFtZVNvdXJjZS5rZXkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMucmVuYW1lRXJyb3I/d2A8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMucmVuYW1lRXJyb3J9PC9kaXY+YDoiIn0KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0iZGlhbG9nLWlucHV0IHJlbmFtZS1kaWFsb2ctaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSR7QWU/ImZvbGRlci1uYW1lIjoiZmlsZW5hbWUuZXh0In0KICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5yZW5hbWVOYW1lfQogICAgICAgICAgICBAaW5wdXQ9JHtZZT0+e3RoaXMucmVuYW1lTmFtZT1ZZS50YXJnZXQudmFsdWUsdGhpcy5yZW5hbWVFcnJvcj1udWxsfX0KICAgICAgICAgICAgQGtleWRvd249JHtZZT0+e1llLmtleT09PSJFbnRlciImJnRoaXMuZXhlY3V0ZVJlbmFtZSgpLFllLmtleT09PSJFc2NhcGUiJiZ0aGlzLmNsb3NlUmVuYW1lRGlhbG9nKCl9fQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZVJlbmFtZURpYWxvZygpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc30+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZVJlbmFtZSgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMucmVuYW1lSW5Qcm9ncmVzc3x8IXRoaXMucmVuYW1lTmFtZS50cmltKCl9PgogICAgICAgICAgICAgICR7dGhpcy5yZW5hbWVJblByb2dyZXNzPyJSZW5hbWluZy4uLiI6IlJlbmFtZSJ9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNb3ZlRGlhbG9nKCl7aWYoIXRoaXMuc2hvd01vdmVEaWFsb2d8fCF0aGlzLm1vdmVTb3VyY2UpcmV0dXJuIiI7bGV0IEFlPWpyKHRoaXMubW92ZVNvdXJjZS5rZXkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctb3ZlcmxheSIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2VNb3ZlRGlhbG9nKCl9PgogICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZyIgQGNsaWNrPSR7Q2U9PkNlLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy10aXRsZSI+TW92ZSAke3RoaXMubW92ZVNvdXJjZS5pc0ZvbGRlcj8iRm9sZGVyIjoiRmlsZSJ9PC9kaXY+CgogICAgICAgICAgJHt0aGlzLm1vdmVFcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLWVycm9yIj4ke3RoaXMubW92ZUVycm9yfTwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb3ZlLXN1bW1hcnkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+RnJvbTo8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1wYXRoIj4ke3RoaXMubW92ZVNvdXJjZS5rZXl9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vdmUtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW92ZS1sYWJlbCI+VG86PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1vdmUtcGF0aCI+JHt0aGlzLm1vdmVEZXN0aW5hdGlvbn0ke0FlfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpYWxvZy1hY3Rpb25zIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGlhbG9nLWJ0biBkaWFsb2ctYnRuLWNhbmNlbCIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZU1vdmVEaWFsb2coKX0KICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLm1vdmVJblByb2dyZXNzfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICR7dGhpcy5tb3ZlRXJyb3I/IiI6d2AKICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkaWFsb2ctYnRuIGRpYWxvZy1idG4tY3JlYXRlIgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuZXhlY3V0ZU1vdmUoKX0KICAgICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZUluUHJvZ3Jlc3N9PgogICAgICAgICAgICAgICAgJHt0aGlzLm1vdmVJblByb2dyZXNzPyJNb3ZpbmcuLi4iOiJNb3ZlIn0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTW92ZVBpY2tlckRpYWxvZygpe2lmKCF0aGlzLnNob3dNb3ZlUGlja2VyRGlhbG9nfHwhdGhpcy5tb3ZlUGlja2VyU291cmNlKXJldHVybiIiO2xldCBBZT1qcih0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KSxDZT1UYyh0aGlzLm1vdmVQaWNrZXJTb3VyY2Uua2V5KTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLW92ZXJsYXkiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2cgbW92ZS1waWNrZXItZGlhbG9nIiBAY2xpY2s9JHtZZT0+WWUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlhbG9nLXRpdGxlIj5Nb3ZlICIke0FlfSIgdG8uLi48L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItYnJlYWRjcnVtYiI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcigiIil9PgogICAgICAgICAgICAgICR7dGhpcy5idWNrZXROYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICR7c2codGhpcy5tb3ZlUGlja2VyQ3VycmVudFByZWZpeCkubWFwKFllPT53YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItc2VwYXJhdG9yIj4vPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWNrZXItY3J1bWIiIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihZZSl9PgogICAgICAgICAgICAgICAgJHtqcihZZSl9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InBpY2tlci1saXN0Ij4KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJMb2FkaW5nP3dgPGRpdiBjbGFzcz0icGlja2VyLWVtcHR5Ij5Mb2FkaW5nLi4uPC9kaXY+YDoiIn0KICAgICAgICAgICAgJHshdGhpcy5tb3ZlUGlja2VyTG9hZGluZyYmdGhpcy5tb3ZlUGlja2VyUHJlZml4ZXMuZmlsdGVyKFllPT5ZZSE9PXRoaXMubW92ZVBpY2tlclNvdXJjZS5rZXkpLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWNrZXItZW1wdHkiPk5vIHN1YmZvbGRlcnM8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgJHt0aGlzLm1vdmVQaWNrZXJQcmVmaXhlcy5maWx0ZXIoWWU9PlllIT09dGhpcy5tb3ZlUGlja2VyU291cmNlLmtleSkubWFwKFllPT53YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlja2VyLWl0ZW0iCiAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlTW92ZVBpY2tlcihZZSl9CiAgICAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0keygpPT50aGlzLnNlbGVjdE1vdmVEZXN0aW5hdGlvbihZZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmFtZSI+JHtqcihZZSl9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWFsb2ctYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jYW5jZWwiIEBjbGljaz0keygpPT50aGlzLmNsb3NlTW92ZVBpY2tlckRpYWxvZygpfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRpYWxvZy1idG4gZGlhbG9nLWJ0bi1jcmVhdGUiCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0TW92ZURlc3RpbmF0aW9uKHRoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXgpfQogICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubW92ZVBpY2tlckN1cnJlbnRQcmVmaXg9PT1DZX0+CiAgICAgICAgICAgICAgTW92ZSBIZXJlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ia2V5cy1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1iYXIiPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJmaWx0ZXItaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJGaWx0ZXIgZmlsZXMuLi4iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuZmlsdGVyVGV4dH0KICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVGaWx0ZXJJbnB1dH0KICAgICAgICAgIC8+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImtleXMtbGlzdCIgQGNvbnRleHRtZW51PSR7QWU9PnRoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KEFlKX0+CiAgICAgICAgICAke3RoaXMubG9hZGluZz93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5Mb2FkaW5nLi4uPC9kaXY+YDp0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBvYmplY3RzIGZvdW5kPC9kaXY+YDp3YAogICAgICAgICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6IDEwMHB4OyI+U2l6ZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmZpbHRlcmVkSXRlbXMubWFwKEFlPT53YAogICAgICAgICAgICAgICAgICAgICAgICAgIDx0cgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5zZWxlY3RlZEtleT09PUFlLmtleT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNlbGVjdEtleShBZS5rZXksQWUuaXNGb2xkZXIpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7Q2U9PnRoaXMuaGFuZGxlSXRlbUNvbnRleHRNZW51KENlLEFlLmtleSxBZS5pc0ZvbGRlcil9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJrZXktY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtBZS5pc0ZvbGRlcj93YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImtleS1pY29uIGZvbGRlci1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJrZXktaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImtleS1uYW1lIj4ke2pyKEFlLmtleSl9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InNpemUtY2VsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7QWUuaXNGb2xkZXI/Ii0iOnp3KEFlLnNpemUpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5yZW5kZXJDcmVhdGVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlck1vdmVQaWNrZXJEaWFsb2coKX0KICAgICAgJHt0aGlzLnJlbmRlclJlbmFtZURpYWxvZygpfQogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksRnQodGhpcyxDbil9c3RhdGlje0Z0KGEscil9fTtyZXR1cm4gem49YX0pKCl9KTt2YXIgUDEsWGEsUlhyLF83dD11KCgpPT57dmUoKTtsdCgpO05yZSgpO1AxPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxYYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sUlhyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1zdG9yYWdlLXByZXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTdG9yYWdlUHJldmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBVPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W2llKCldLHk9W2llKCldLE49W2llKCldLE89W2llKCldLEI9W2llKCldLEE9W2llKCldLFk9W2llKCldLGRlPVtpZSgpXSxmZT1baWUoKV0scGU9W2llKCldLFAxKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJkYXRhUHJvdmlkZXIiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChqLGFlKT0+e2ouZGF0YVByb3ZpZGVyPWFlfSwic2V0Iil9LG1ldGFkYXRhOlV9LG8sbCksUDEodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJidWNrZXROYW1lImluIGosImhhcyIpLGdldDppKGo9PmouYnVja2V0TmFtZSwiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5idWNrZXROYW1lPWFlfSwic2V0Iil9LG1ldGFkYXRhOlV9LGQsZiksUDEodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvYmplY3RLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+Im9iamVjdEtleSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm9iamVjdEtleSwiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5vYmplY3RLZXk9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0saCxtKSxQMSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImxvYWRpbmciaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmxvYWRpbmc9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sYixnKSxQMSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNhdmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2F2aW5nImluIGosImhhcyIpLGdldDppKGo9Pmouc2F2aW5nLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLnNhdmluZz1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxrLE0pLFAxKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iY29udGVudCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmNvbnRlbnQsImdldCIpLHNldDppKChqLGFlKT0+e2ouY29udGVudD1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxfLFMpLFAxKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3JpZ2luYWxUZXh0Q29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ib3JpZ2luYWxUZXh0Q29udGVudCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm9yaWdpbmFsVGV4dENvbnRlbnQsImdldCIpLHNldDppKChqLGFlKT0+e2oub3JpZ2luYWxUZXh0Q29udGVudD1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxMLEUpLFAxKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzQ2hhbmdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaGFzQ2hhbmdlcyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmhhc0NoYW5nZXMsImdldCIpLHNldDppKChqLGFlKT0+e2ouaGFzQ2hhbmdlcz1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxDLHopLFAxKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iZWRpdGluZyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmVkaXRpbmcsImdldCIpLHNldDppKChqLGFlKT0+e2ouZWRpdGluZz1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSwkLEYpLFAxKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImNvbnRlbnRUeXBlImluIGosImhhcyIpLGdldDppKGo9PmouY29udGVudFR5cGUsImdldCIpLHNldDppKChqLGFlKT0+e2ouY29udGVudFR5cGU9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sRyxaKSxQMSh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iZmlsZVNpemUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5maWxlU2l6ZSwiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5maWxlU2l6ZT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxELFEpLFAxKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhc3RNb2RpZmllZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ibGFzdE1vZGlmaWVkImluIGosImhhcyIpLGdldDppKGo9PmoubGFzdE1vZGlmaWVkLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmxhc3RNb2RpZmllZD1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxULFcpLFAxKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJlcnJvciJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmVycm9yLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmVycm9yPWFlfSwic2V0Iil9LG1ldGFkYXRhOlV9LG1lLHEpLFAxKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOlV9LG51bGwsciksSD1hPWUudmFsdWUsVSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpVfSl9I2U9WGEodGhpcyxvLG51bGwpO2dldCBkYXRhUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YVByb3ZpZGVyKFUpe3RoaXMuI2U9VX0jdD0oWGEodGhpcyxsKSxYYSh0aGlzLGQsIiIpKTtnZXQgYnVja2V0TmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBidWNrZXROYW1lKFUpe3RoaXMuI3Q9VX0jcj0oWGEodGhpcyxmKSxYYSh0aGlzLGgsIiIpKTtnZXQgb2JqZWN0S2V5KCl7cmV0dXJuIHRoaXMuI3J9c2V0IG9iamVjdEtleShVKXt0aGlzLiNyPVV9I2E9KFhhKHRoaXMsbSksWGEodGhpcyxiLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbG9hZGluZyhVKXt0aGlzLiNhPVV9I2k9KFhhKHRoaXMsZyksWGEodGhpcyxrLCExKSk7Z2V0IHNhdmluZygpe3JldHVybiB0aGlzLiNpfXNldCBzYXZpbmcoVSl7dGhpcy4jaT1VfSNzPShYYSh0aGlzLE0pLFhhKHRoaXMsXywiIikpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNvbnRlbnQoVSl7dGhpcy4jcz1VfSNuPShYYSh0aGlzLFMpLFhhKHRoaXMsTCwiIikpO2dldCBvcmlnaW5hbFRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuI259c2V0IG9yaWdpbmFsVGV4dENvbnRlbnQoVSl7dGhpcy4jbj1VfSNvPShYYSh0aGlzLEUpLFhhKHRoaXMsQywhMSkpO2dldCBoYXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuI299c2V0IGhhc0NoYW5nZXMoVSl7dGhpcy4jbz1VfSNsPShYYSh0aGlzLHopLFhhKHRoaXMsJCwhMSkpO2dldCBlZGl0aW5nKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGVkaXRpbmcoVSl7dGhpcy4jbD1VfSNjPShYYSh0aGlzLEYpLFhhKHRoaXMsRywiIikpO2dldCBjb250ZW50VHlwZSgpe3JldHVybiB0aGlzLiNjfXNldCBjb250ZW50VHlwZShVKXt0aGlzLiNjPVV9I2Q9KFhhKHRoaXMsWiksWGEodGhpcyxELDApKTtnZXQgZmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgZmlsZVNpemUoVSl7dGhpcy4jZD1VfSN1PShYYSh0aGlzLFEpLFhhKHRoaXMsVCwiIikpO2dldCBsYXN0TW9kaWZpZWQoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbGFzdE1vZGlmaWVkKFUpe3RoaXMuI3U9VX0jcD0oWGEodGhpcyxXKSxYYSh0aGlzLG1lLCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGVycm9yKFUpe3RoaXMuI3A9VX1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMsTmUscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAucHJldmlldy1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgIH0KCiAgICAgIC5tZXRhLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJldmlldy1jb250ZW50IGRlZXMtcHJldmlldyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAucHJldmlldy1jb250ZW50LmNvZGUtZWRpdG9yIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRlbnQuY29kZS1lZGl0b3IgZGVlcy1pbnB1dC1jb2RlIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWFjdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMzMyIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0biB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiM0MDQwNDAiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2UwZTBlMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLmRhbmdlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsKICAgICAgICBib3JkZXItY29sb3I6ICNlZjQ0NDQ7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMyk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2I4MmY2OwogICAgICAgIGNvbG9yOiAjNjBhNWZhOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ0bi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC40KTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idG4ucHJpbWFyeTpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMykiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTU1Iil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhYWEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnRuLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLnVuc2F2ZWQtaW5kaWNhdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTEsIDE5MSwgMzYsIDAuMSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTEsIDE5MSwgMzYsIDAuMyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgfQoKICAgICAgLnVuc2F2ZWQtZG90IHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmJiZjI0OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgc3ZnIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgIH0KCiAgICAgIC5lcnJvci1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgIGBdO3VwZGF0ZWQoVSl7KFUuaGFzKCJvYmplY3RLZXkiKXx8VS5oYXMoImJ1Y2tldE5hbWUiKSkmJih0aGlzLm9iamVjdEtleT90aGlzLmxvYWRPYmplY3QoKToodGhpcy5jb250ZW50PSIiLHRoaXMuY29udGVudFR5cGU9IiIsdGhpcy5lcnJvcj0iIix0aGlzLm9yaWdpbmFsVGV4dENvbnRlbnQ9IiIsdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMSkpfWFzeW5jIGxvYWRPYmplY3QoKXtpZighKCF0aGlzLm9iamVjdEtleXx8IXRoaXMuYnVja2V0TmFtZXx8IXRoaXMuZGF0YVByb3ZpZGVyKSl7dGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9IiIsdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMTt0cnl7bGV0IFU9YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZ2V0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm9iamVjdEtleSk7aWYoIVUpe3RoaXMuZXJyb3I9Ik9iamVjdCBub3QgZm91bmQiLHRoaXMubG9hZGluZz0hMTtyZXR1cm59dGhpcy5jb250ZW50PVUuY29udGVudHx8IiIsdGhpcy5jb250ZW50VHlwZT1VLmNvbnRlbnRUeXBlfHwiIix0aGlzLmZpbGVTaXplPVUuc2l6ZXx8MCx0aGlzLmxhc3RNb2RpZmllZD1VLmxhc3RNb2RpZmllZHx8IiIsdGhpcy5pc1RleHQoKSYmKHRoaXMub3JpZ2luYWxUZXh0Q29udGVudD10aGlzLmdldFRleHRDb250ZW50KCkpfWNhdGNoKFUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgb2JqZWN0OiIsVSksdGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgb2JqZWN0In10aGlzLmxvYWRpbmc9ITF9fWZvcm1hdERhdGUoVSl7cmV0dXJuIFU/bmV3IERhdGUoVSkudG9Mb2NhbGVTdHJpbmcoKToiLSJ9aXNJbWFnZSgpe3JldHVybiB0aGlzLmNvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpfWlzVGV4dCgpe3JldHVybiB0aGlzLmNvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoInRleHQvIil8fHRoaXMuY29udGVudFR5cGU9PT0iYXBwbGljYXRpb24vanNvbiJ8fHRoaXMuY29udGVudFR5cGU9PT0iYXBwbGljYXRpb24veG1sInx8dGhpcy5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0In1nZXRUZXh0Q29udGVudCgpe3RyeXtsZXQgVT1hdG9iKHRoaXMuY29udGVudCksaj1uZXcgVWludDhBcnJheShVLmxlbmd0aCk7Zm9yKGxldCBhZT0wO2FlPFUubGVuZ3RoO2FlKyspalthZV09VS5jaGFyQ29kZUF0KGFlKTtyZXR1cm4gbmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZShqKX1jYXRjaHtyZXR1cm4iVW5hYmxlIHRvIGRlY29kZSBjb250ZW50In19YXN5bmMgaGFuZGxlRG93bmxvYWQoKXt0cnl7bGV0IFU9bmV3IEJsb2IoW1VpbnQ4QXJyYXkuZnJvbShhdG9iKHRoaXMuY29udGVudCksWD0+WC5jaGFyQ29kZUF0KDApKV0se3R5cGU6dGhpcy5jb250ZW50VHlwZX0pLGo9VVJMLmNyZWF0ZU9iamVjdFVSTChVKSxhZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7YWUuaHJlZj1qLGFlLmRvd25sb2FkPWpyKHRoaXMub2JqZWN0S2V5KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFlKSxhZS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYWUpLFVSTC5yZXZva2VPYmplY3RVUkwoail9Y2F0Y2goVSl7Y29uc29sZS5lcnJvcigiRXJyb3IgZG93bmxvYWRpbmc6IixVKX19YXN5bmMgaGFuZGxlRGVsZXRlKCl7aWYodGhpcy5kYXRhUHJvdmlkZXImJmNvbmZpcm0oYERlbGV0ZSAiJHtqcih0aGlzLm9iamVjdEtleSl9Ij9gKSl0cnl7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZGVsZXRlT2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm9iamVjdEtleSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib2JqZWN0LWRlbGV0ZWQiLHtkZXRhaWw6e2tleTp0aGlzLm9iamVjdEtleX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChVKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZWxldGluZyBvYmplY3Q6IixVKX19Z2V0TGFuZ3VhZ2UoKXtsZXQgVT10aGlzLm9iamVjdEtleS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpfHwiIjtyZXR1cm57dHM6InR5cGVzY3JpcHQiLHRzeDoidHlwZXNjcmlwdCIsanM6ImphdmFzY3JpcHQiLGpzeDoiamF2YXNjcmlwdCIsbWpzOiJqYXZhc2NyaXB0IixjanM6ImphdmFzY3JpcHQiLGpzb246Impzb24iLGh0bWw6Imh0bWwiLGh0bToiaHRtbCIsY3NzOiJjc3MiLHNjc3M6InNjc3MiLHNhc3M6InNjc3MiLGxlc3M6Imxlc3MiLG1kOiJtYXJrZG93biIsbWFya2Rvd246Im1hcmtkb3duIix4bWw6InhtbCIseWFtbDoieWFtbCIseW1sOiJ5YW1sIixweToicHl0aG9uIixyYjoicnVieSIsZ286ImdvIixyczoicnVzdCIsamF2YToiamF2YSIsYzoiYyIsY3BwOiJjcHAiLGg6ImMiLGhwcDoiY3BwIixjczoiY3NoYXJwIixwaHA6InBocCIsc2g6InNoZWxsIixiYXNoOiJzaGVsbCIsenNoOiJzaGVsbCIsc3FsOiJzcWwiLGdyYXBocWw6ImdyYXBocWwiLGdxbDoiZ3JhcGhxbCIsZG9ja2VyZmlsZToiZG9ja2VyZmlsZSIsdHh0OiJwbGFpbnRleHQifVtVXXx8InBsYWludGV4dCJ9aGFuZGxlQ29udGVudENoYW5nZShVKXtsZXQgaj1VLmRldGFpbDt0aGlzLmhhc0NoYW5nZXM9aiE9PXRoaXMub3JpZ2luYWxUZXh0Q29udGVudH1oYW5kbGVFZGl0KCl7dGhpcy5lZGl0aW5nPSEwfWhhbmRsZURpc2NhcmQoKXtsZXQgVT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtY29kZSIpO1UmJihVLnZhbHVlPXRoaXMub3JpZ2luYWxUZXh0Q29udGVudCksdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMX1hc3luYyBoYW5kbGVTYXZlKCl7aWYoISghdGhpcy5oYXNDaGFuZ2VzfHx0aGlzLnNhdmluZ3x8IXRoaXMuZGF0YVByb3ZpZGVyKSl7dGhpcy5zYXZpbmc9ITA7dHJ5e2xldCBqPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1jb2RlIik/LnZhbHVlPz8iIixYPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShqKSxKPWJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5YKSk7YXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIucHV0T2JqZWN0KHRoaXMuYnVja2V0TmFtZSx0aGlzLm9iamVjdEtleSxKLHRoaXMuY29udGVudFR5cGUpJiYodGhpcy5vcmlnaW5hbFRleHRDb250ZW50PWosdGhpcy5oYXNDaGFuZ2VzPSExLHRoaXMuZWRpdGluZz0hMSx0aGlzLmNvbnRlbnQ9Sil9Y2F0Y2goVSl7Y29uc29sZS5lcnJvcigiRXJyb3Igc2F2aW5nIG9iamVjdDoiLFUpfXRoaXMuc2F2aW5nPSExfX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5vYmplY3RLZXk/dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zdGF0ZSI+TG9hZGluZy4uLjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOnRoaXMuZXJyb3I/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1zdGF0ZSI+JHt0aGlzLmVycm9yfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXRpdGxlIj4ke2pyKHRoaXMub2JqZWN0S2V5KX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbWV0YSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLWl0ZW0iPiR7dGhpcy5jb250ZW50VHlwZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRhLWl0ZW0iPiR7encodGhpcy5maWxlU2l6ZSl9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS1pdGVtIj4ke3RoaXMuZm9ybWF0RGF0ZSh0aGlzLmxhc3RNb2RpZmllZCl9PC9zcGFuPgogICAgICAgICAgICAke3RoaXMuaGFzQ2hhbmdlcz93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ1bnNhdmVkLWluZGljYXRvciI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idW5zYXZlZC1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIFVuc2F2ZWQgY2hhbmdlcwogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRlbnQgJHt0aGlzLmVkaXRpbmc/ImNvZGUtZWRpdG9yIjoiIn0iPgogICAgICAgICAgJHt0aGlzLmVkaXRpbmc/d2AKICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNvZGUKICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5vcmlnaW5hbFRleHRDb250ZW50fQogICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlKCl9CiAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTAwJSIKICAgICAgICAgICAgICAgICAgQGNvbnRlbnQtY2hhbmdlPSR7VT0+dGhpcy5oYW5kbGVDb250ZW50Q2hhbmdlKFUpfQogICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogICAgICAgICAgICAgIGA6dGhpcy5pc1RleHQoKT93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgICAgICAgICAgICAgLnRleHRDb250ZW50PSR7dGhpcy5vcmlnaW5hbFRleHRDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5maWxlbmFtZT0ke2pyKHRoaXMub2JqZWN0S2V5KX0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlKCl9CiAgICAgICAgICAgICAgICAgICAgLnNob3dUb29sYmFyPSR7ITB9CiAgICAgICAgICAgICAgICAgICAgLnNob3dGaWxlbmFtZT0keyExfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICAgICAgICAgICAgICAuYmFzZTY0PSR7dGhpcy5jb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5taW1lVHlwZT0ke3RoaXMuY29udGVudFR5cGV9CiAgICAgICAgICAgICAgICAgICAgLmZpbGVuYW1lPSR7anIodGhpcy5vYmplY3RLZXkpfQogICAgICAgICAgICAgICAgICAgIC5zaG93VG9vbGJhcj0keyEwfQogICAgICAgICAgICAgICAgICAgIC5zaG93RmlsZW5hbWU9JHshMX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1wcmV2aWV3PgogICAgICAgICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1hY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5lZGl0aW5nP3dgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIHNlY29uZGFyeSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVEaXNjYXJkfT4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmhhc0NoYW5nZXM/IkRpc2NhcmQiOiJDYW5jZWwifQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24tYnRuIHByaW1hcnkiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlU2F2ZX0KICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5zYXZpbmd8fCF0aGlzLmhhc0NoYW5nZXN9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5zYXZpbmc/IlNhdmluZy4uLiI6IlNhdmUifQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgJHt0aGlzLmlzVGV4dCgpP3dgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ0biIgQGNsaWNrPSR7dGhpcy5oYW5kbGVFZGl0fT5FZGl0PC9idXR0b24+YDoiIn0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idG4iIEBjbGljaz0ke3RoaXMuaGFuZGxlRG93bmxvYWR9PkRvd25sb2FkPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnRuIGRhbmdlciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVEZWxldGV9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiIC8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiIC8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8cD5TZWxlY3QgYSBmaWxlIHRvIHByZXZpZXc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksWGEodGhpcyxxKX1zdGF0aWN7WGEoYSxyKX19O3JldHVybiBIPWF9KSgpfSk7dmFyIGMyLFRpLEZYcixNN3Q9dSgoKT0+e3ZlKCk7bHQoKTtJWHIoKTtDN3QoKTt6N3QoKTtfN3QoKTtjMj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sVGk9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEZYcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtc3RvcmFnZS1icm93c2VyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdO3ZhciBmZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1N0b3JhZ2VCcm93c2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpPYmplY3R9KV0sdj1baWUoKV0seT1baWUoKV0sTj1baWUoKV0sTz1baWUoKV0sQj1baWUoKV0sQT1baWUoKV0sWT1baWUoKV0sZGU9W2llKCldLGMyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YVByb3ZpZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJkYXRhUHJvdmlkZXIiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5kYXRhUHJvdmlkZXIsImdldCIpLHNldDppKChXLHBlKT0+e1cuZGF0YVByb3ZpZGVyPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LG8sbCksYzIodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidWNrZXROYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJidWNrZXROYW1lImluIFcsImhhcyIpLGdldDppKFc9PlcuYnVja2V0TmFtZSwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5idWNrZXROYW1lPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGQsZiksYzIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvbkNoYW5nZUV2ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJvbkNoYW5nZUV2ZW50ImluIFcsImhhcyIpLGdldDppKFc9Plcub25DaGFuZ2VFdmVudCwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5vbkNoYW5nZUV2ZW50PXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGgsbSksYzIodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4idmlld1R5cGUiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy52aWV3VHlwZSwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy52aWV3VHlwZT1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxiLGcpLGMyKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZWZpeCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iY3VycmVudFByZWZpeCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmN1cnJlbnRQcmVmaXgsImdldCIpLHNldDppKChXLHBlKT0+e1cuY3VycmVudFByZWZpeD1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxrLE0pLGMyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InNlbGVjdGVkS2V5ImluIFcsImhhcyIpLGdldDppKFc9Plcuc2VsZWN0ZWRLZXksImdldCIpLHNldDppKChXLHBlKT0+e1cuc2VsZWN0ZWRLZXk9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sXyxTKSxjMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZnJlc2hLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InJlZnJlc2hLZXkiaW4gVywiaGFzIiksZ2V0OmkoVz0+Vy5yZWZyZXNoS2V5LCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnJlZnJlc2hLZXk9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sTCxFKSxjMih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByZXZpZXdXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4icHJldmlld1dpZHRoImluIFcsImhhcyIpLGdldDppKFc9PlcucHJldmlld1dpZHRoLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnByZXZpZXdXaWR0aD1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxDLHopLGMyKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNSZXNpemluZ1ByZXZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImlzUmVzaXppbmdQcmV2aWV3ImluIFcsImhhcyIpLGdldDppKFc9PlcuaXNSZXNpemluZ1ByZXZpZXcsImdldCIpLHNldDppKChXLHBlKT0+e1cuaXNSZXNpemluZ1ByZXZpZXc9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sJCxGKSxjMih0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlY2VudENoYW5nZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJyZWNlbnRDaGFuZ2VDb3VudCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnJlY2VudENoYW5nZUNvdW50LCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnJlY2VudENoYW5nZUNvdW50PXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LEcsWiksYzIodGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNTdHJlYW1Db25uZWN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImlzU3RyZWFtQ29ubmVjdGVkImluIFcsImhhcyIpLGdldDppKFc9PlcuaXNTdHJlYW1Db25uZWN0ZWQsImdldCIpLHNldDppKChXLHBlKT0+e1cuaXNTdHJlYW1Db25uZWN0ZWQ9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sRCxRKSxjMihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpUfSxudWxsLHIpLGZlPWE9ZS52YWx1ZSxUJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlR9KX1zdGF0aWMgZGVtbz1FWHI7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciXTsjZT1UaSh0aGlzLG8sbnVsbCk7Z2V0IGRhdGFQcm92aWRlcigpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhUHJvdmlkZXIoVCl7dGhpcy4jZT1UfSN0PShUaSh0aGlzLGwpLFRpKHRoaXMsZCwiIikpO2dldCBidWNrZXROYW1lKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJ1Y2tldE5hbWUoVCl7dGhpcy4jdD1UfSNyPShUaSh0aGlzLGYpLFRpKHRoaXMsaCxudWxsKSk7Z2V0IG9uQ2hhbmdlRXZlbnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgb25DaGFuZ2VFdmVudChUKXt0aGlzLiNyPVR9I2E9KFRpKHRoaXMsbSksVGkodGhpcyxiLCJjb2x1bW5zIikpO2dldCB2aWV3VHlwZSgpe3JldHVybiB0aGlzLiNhfXNldCB2aWV3VHlwZShUKXt0aGlzLiNhPVR9I2k9KFRpKHRoaXMsZyksVGkodGhpcyxrLCIiKSk7Z2V0IGN1cnJlbnRQcmVmaXgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VycmVudFByZWZpeChUKXt0aGlzLiNpPVR9I3M9KFRpKHRoaXMsTSksVGkodGhpcyxfLCIiKSk7Z2V0IHNlbGVjdGVkS2V5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkS2V5KFQpe3RoaXMuI3M9VH0jbj0oVGkodGhpcyxTKSxUaSh0aGlzLEwsMCkpO2dldCByZWZyZXNoS2V5KCl7cmV0dXJuIHRoaXMuI259c2V0IHJlZnJlc2hLZXkoVCl7dGhpcy4jbj1UfSNvPShUaSh0aGlzLEUpLFRpKHRoaXMsQyw3MDApKTtnZXQgcHJldmlld1dpZHRoKCl7cmV0dXJuIHRoaXMuI299c2V0IHByZXZpZXdXaWR0aChUKXt0aGlzLiNvPVR9I2w9KFRpKHRoaXMseiksVGkodGhpcywkLCExKSk7Z2V0IGlzUmVzaXppbmdQcmV2aWV3KCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlzUmVzaXppbmdQcmV2aWV3KFQpe3RoaXMuI2w9VH0jYz0oVGkodGhpcyxGKSxUaSh0aGlzLEcsMCkpO2dldCByZWNlbnRDaGFuZ2VDb3VudCgpe3JldHVybiB0aGlzLiNjfXNldCByZWNlbnRDaGFuZ2VDb3VudChUKXt0aGlzLiNjPVR9I2Q9KFRpKHRoaXMsWiksVGkodGhpcyxELCExKSk7Z2V0IGlzU3RyZWFtQ29ubmVjdGVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzU3RyZWFtQ29ubmVjdGVkKFQpe3RoaXMuI2Q9VH1jaGFuZ2VVbnN1YnNjcmliZT0oVGkodGhpcyxRKSxudWxsKTtzdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMsTmUscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5icm93c2VyLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjOTk5Iil9OwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1czsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItc2VwYXJhdG9yIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNTU1Iil9OwogICAgICB9CgogICAgICAudmlldy10b2dnbGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC52aWV3LWJ0biB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjNDQ0Iil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiM4ODgiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICB9CgogICAgICAudmlldy1idG46aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNjY2Iil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNmM2Y0NiIsIiNhYWEiKX07CiAgICAgIH0KCiAgICAgIC52aWV3LWJ0bi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNDA0MDQwIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNlMGUwZTAiKX07CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5jb250ZW50Lmhhcy1wcmV2aWV3IHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA0cHggdmFyKC0tcHJldmlldy13aWR0aCwgNzAwcHgpOwogICAgICB9CgogICAgICAucmVzaXplLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1kaXZpZGVyOmhvdmVyLAogICAgICAucmVzaXplLWRpdmlkZXIuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIil9OwogICAgICB9CgogICAgICAubWFpbi12aWV3IHsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXBhbmVsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkgewogICAgICAgIC5jb250ZW50LAogICAgICAgIC5jb250ZW50Lmhhcy1wcmV2aWV3IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KCiAgICAgICAgLnByZXZpZXctcGFuZWwsCiAgICAgICAgLnJlc2l6ZS1kaXZpZGVyIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc3RyZWFtLXN0YXR1cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjODg4Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLnN0cmVhbS1kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzg4OCIpfTsKICAgICAgfQoKICAgICAgLnN0cmVhbS1kb3QuY29ubmVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjJjNTVlOwogICAgICB9CgogICAgICAuY2hhbmdlLWluZGljYXRvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogI2Y1OWUwYjsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7CiAgICAgIH0KCiAgICAgIC5jaGFuZ2UtaW5kaWNhdG9yLnB1bHNlIHsKICAgICAgICBhbmltYXRpb246IHB1bHNlLW9yYW5nZSAxcyBlYXNlLWluLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwdWxzZS1vcmFuZ2UgewogICAgICAgIDAlIHsgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuNCk7IH0KICAgICAgICAxMDAlIHsgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMik7IH0KICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpfXJlZnJlc2goKXt0aGlzLnJlZnJlc2hLZXkrK31zZXRWaWV3VHlwZShUKXt0aGlzLnZpZXdUeXBlPVR9bmF2aWdhdGVUb1ByZWZpeChUKXt0aGlzLmN1cnJlbnRQcmVmaXg9VCx0aGlzLnNlbGVjdGVkS2V5PSIifWhhbmRsZUtleVNlbGVjdGVkKFQpe3RoaXMuc2VsZWN0ZWRLZXk9VC5kZXRhaWwua2V5fWhhbmRsZU5hdmlnYXRlKFQpe3RoaXMubmF2aWdhdGVUb1ByZWZpeChULmRldGFpbC5wcmVmaXgpfWhhbmRsZU9iamVjdERlbGV0ZWQoVCl7dGhpcy5zZWxlY3RlZEtleT0iIix0aGlzLnJlZnJlc2hLZXkrK311cGRhdGVkKFQpe1QuaGFzKCJidWNrZXROYW1lIikmJih0aGlzLnNlbGVjdGVkS2V5PSIiLHRoaXMuY3VycmVudFByZWZpeD0iIix0aGlzLnJlY2VudENoYW5nZUNvdW50PTAsdGhpcy51bnN1YnNjcmliZUZyb21DaGFuZ2VzKCksdGhpcy5zdWJzY3JpYmVUb0NoYW5nZXMoKSksVC5oYXMoIm9uQ2hhbmdlRXZlbnQiKSYmKHRoaXMudW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpLHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzKCkpfXN1YnNjcmliZVRvQ2hhbmdlcygpe2lmKCF0aGlzLm9uQ2hhbmdlRXZlbnQpe3RoaXMuaXNTdHJlYW1Db25uZWN0ZWQ9ITE7cmV0dXJufXRyeXt0aGlzLmNoYW5nZVVuc3Vic2NyaWJlPXRoaXMub25DaGFuZ2VFdmVudChUPT57dGhpcy5oYW5kbGVDaGFuZ2UoVCl9KSx0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPSEwfWNhdGNoKFQpe2NvbnNvbGUud2FybigiW1N0b3JhZ2VCcm93c2VyXSBGYWlsZWQgdG8gc3Vic2NyaWJlIHRvIGNoYW5nZXM6IixUKSx0aGlzLmlzU3RyZWFtQ29ubmVjdGVkPSExfX11bnN1YnNjcmliZUZyb21DaGFuZ2VzKCl7dGhpcy5jaGFuZ2VVbnN1YnNjcmliZSYmKHRoaXMuY2hhbmdlVW5zdWJzY3JpYmUoKSx0aGlzLmNoYW5nZVVuc3Vic2NyaWJlPW51bGwpLHRoaXMuaXNTdHJlYW1Db25uZWN0ZWQ9ITF9aGFuZGxlQ2hhbmdlKFQpe3RoaXMucmVjZW50Q2hhbmdlQ291bnQrKyx0aGlzLnJlZnJlc2hLZXkrK31zdGFydFByZXZpZXdSZXNpemU9aShUPT57VC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNSZXNpemluZ1ByZXZpZXc9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVByZXZpZXdSZXNpemUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuZW5kUHJldmlld1Jlc2l6ZSl9LCJzdGFydFByZXZpZXdSZXNpemUiKTtoYW5kbGVQcmV2aWV3UmVzaXplPWkoVD0+e2lmKCF0aGlzLmlzUmVzaXppbmdQcmV2aWV3KXJldHVybjtsZXQgVz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5jb250ZW50Iik7aWYoIVcpcmV0dXJuO2xldCBwZT1XLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG1lPU1hdGgubWluKE1hdGgubWF4KHBlLnJpZ2h0LVQuY2xpZW50WCwyNTApLDFlMyk7dGhpcy5wcmV2aWV3V2lkdGg9bWV9LCJoYW5kbGVQcmV2aWV3UmVzaXplIik7ZW5kUHJldmlld1Jlc2l6ZT1pKCgpPT57dGhpcy5pc1Jlc2l6aW5nUHJldmlldz0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlUHJldmlld1Jlc2l6ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5lbmRQcmV2aWV3UmVzaXplKX0sImVuZFByZXZpZXdSZXNpemUiKTtyZW5kZXIoKXtsZXQgVD10aGlzLmN1cnJlbnRQcmVmaXg/dGhpcy5jdXJyZW50UHJlZml4LnNwbGl0KCIvIikuZmlsdGVyKEJvb2xlYW4pOltdO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJicm93c2VyLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJicmVhZGNydW1iIj4KICAgICAgICAgICAgPHNwYW4KICAgICAgICAgICAgICBjbGFzcz0iYnJlYWRjcnVtYi1pdGVtIgogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9QcmVmaXgoIiIpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgJHtULm1hcCgoVyxwZSk9PntsZXQgbWU9VC5zbGljZSgwLHBlKzEpLmpvaW4oIi8iKSsiLyI7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnJlYWRjcnVtYi1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbgogICAgICAgICAgICAgICAgICBjbGFzcz0iYnJlYWRjcnVtYi1pdGVtIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZVRvUHJlZml4KG1lKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHtXfQogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIGB9KX0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7dGhpcy5vbkNoYW5nZUV2ZW50P3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0cmVhbS1zdGF0dXMiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdHJlYW0tZG90ICR7dGhpcy5pc1N0cmVhbUNvbm5lY3RlZD8iY29ubmVjdGVkIjoiIn0iPjwvc3Bhbj4KICAgICAgICAgICAgICAke3RoaXMuaXNTdHJlYW1Db25uZWN0ZWQ/IkxpdmUiOiJPZmZsaW5lIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHt0aGlzLnJlY2VudENoYW5nZUNvdW50PjA/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYW5nZS1pbmRpY2F0b3IgcHVsc2UiPgogICAgICAgICAgICAgICAgICAke3RoaXMucmVjZW50Q2hhbmdlQ291bnR9IGNoYW5nZSR7dGhpcy5yZWNlbnRDaGFuZ2VDb3VudD4xPyJzIjoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRvZ2dsZSI+CiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0idmlldy1idG4gJHt0aGlzLnZpZXdUeXBlPT09ImNvbHVtbnMiPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZXRWaWV3VHlwZSgiY29sdW1ucyIpfQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgQ29sdW1ucwogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJ2aWV3LWJ0biAke3RoaXMudmlld1R5cGU9PT0ia2V5cyI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNldFZpZXdUeXBlKCJrZXlzIil9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBMaXN0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQgJHt0aGlzLnNlbGVjdGVkS2V5PyJoYXMtcHJldmlldyI6IiJ9IiBzdHlsZT0iLS1wcmV2aWV3LXdpZHRoOiAke3RoaXMucHJldmlld1dpZHRofXB4Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW4tdmlldyI+CiAgICAgICAgICAgICR7dGhpcy52aWV3VHlwZT09PSJjb2x1bW5zIj93YAogICAgICAgICAgICAgICAgICA8ZGVlcy1zdG9yYWdlLWNvbHVtbnMKICAgICAgICAgICAgICAgICAgICAuZGF0YVByb3ZpZGVyPSR7dGhpcy5kYXRhUHJvdmlkZXJ9CiAgICAgICAgICAgICAgICAgICAgLmJ1Y2tldE5hbWU9JHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgICAgICAgICAgLmN1cnJlbnRQcmVmaXg9JHt0aGlzLmN1cnJlbnRQcmVmaXh9CiAgICAgICAgICAgICAgICAgICAgLnJlZnJlc2hLZXk9JHt0aGlzLnJlZnJlc2hLZXl9CiAgICAgICAgICAgICAgICAgICAgQGtleS1zZWxlY3RlZD0ke3RoaXMuaGFuZGxlS2V5U2VsZWN0ZWR9CiAgICAgICAgICAgICAgICAgICAgQG5hdmlnYXRlPSR7dGhpcy5oYW5kbGVOYXZpZ2F0ZX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy1zdG9yYWdlLWNvbHVtbnM+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXN0b3JhZ2Uta2V5cwogICAgICAgICAgICAgICAgICAgIC5kYXRhUHJvdmlkZXI9JHt0aGlzLmRhdGFQcm92aWRlcn0KICAgICAgICAgICAgICAgICAgICAuYnVja2V0TmFtZT0ke3RoaXMuYnVja2V0TmFtZX0KICAgICAgICAgICAgICAgICAgICAuY3VycmVudFByZWZpeD0ke3RoaXMuY3VycmVudFByZWZpeH0KICAgICAgICAgICAgICAgICAgICAucmVmcmVzaEtleT0ke3RoaXMucmVmcmVzaEtleX0KICAgICAgICAgICAgICAgICAgICBAa2V5LXNlbGVjdGVkPSR7dGhpcy5oYW5kbGVLZXlTZWxlY3RlZH0KICAgICAgICAgICAgICAgICAgICBAbmF2aWdhdGU9JHt0aGlzLmhhbmRsZU5hdmlnYXRlfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXN0b3JhZ2Uta2V5cz4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3RoaXMuc2VsZWN0ZWRLZXk/d2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1kaXZpZGVyICR7dGhpcy5pc1Jlc2l6aW5nUHJldmlldz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLnN0YXJ0UHJldmlld1Jlc2l6ZX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcGFuZWwiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1zdG9yYWdlLXByZXZpZXcKICAgICAgICAgICAgICAgICAgICAuZGF0YVByb3ZpZGVyPSR7dGhpcy5kYXRhUHJvdmlkZXJ9CiAgICAgICAgICAgICAgICAgICAgLmJ1Y2tldE5hbWU9JHt0aGlzLmJ1Y2tldE5hbWV9CiAgICAgICAgICAgICAgICAgICAgLm9iamVjdEtleT0ke3RoaXMuc2VsZWN0ZWRLZXl9CiAgICAgICAgICAgICAgICAgICAgQG9iamVjdC1kZWxldGVkPSR7dGhpcy5oYW5kbGVPYmplY3REZWxldGVkfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXN0b3JhZ2UtcHJldmlldz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7VGkoYSxyKX19O3JldHVybiBmZT1hfSkoKX0pO3ZhciBCWHI9dSgoKT0+e30pO3ZhciBIWHI9dSgoKT0+e003dCgpO0M3dCgpO3o3dCgpO183dCgpO0JYcigpO05yZSgpfSk7dmFyIHFYcj11KCgpPT57Q1hyKCk7JFhyKCk7bjd0KCk7QVhyKCk7SFhyKCl9KTt2YXIgT3JlLGIzLFZYciwkNmU9dSgoKT0+e3ZlKCk7bHQoKTtLcigpO09yZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sYjM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFZYcj0oKCk9PntsZXQgdD1bdWUoImRlZXMtYWN0aW9uYmFyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNBY3Rpb25iYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtpZSgpXSxjPVtpZSgpXSxwPVtpZSgpXSx2PVtpZSgpXSxPcmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50QmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJjdXJyZW50QmFyImluIE0sImhhcyIpLGdldDppKE09Pk0uY3VycmVudEJhciwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmN1cnJlbnRCYXI9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLE9yZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWVSZW1haW5pbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+InRpbWVSZW1haW5pbmciaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS50aW1lUmVtYWluaW5nLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00udGltZVJlbWFpbmluZz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsZiksT3JlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ3Jlc3NQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJwcm9ncmVzc1BlcmNlbnQiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5wcm9ncmVzc1BlcmNlbnQsImdldCIpLHNldDppKChNLE4pPT57TS5wcm9ncmVzc1BlcmNlbnQ9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxoLG0pLE9yZSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iaXNWaXNpYmxlImluIE0sImhhcyIpLGdldDppKE09Pk0uaXNWaXNpYmxlLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uaXNWaXNpYmxlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYixnKSxPcmUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCxyKSx5PWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIiwiT3ZlcmxheSJdO3N0YXRpYyBkZW1vPWkoKCk9PntsZXQgaz1pKFM9PlMuY3VycmVudFRhcmdldC5jbG9zZXN0KCIuZGVtby1jb250YWluZXIiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSwiZ2V0QWN0aW9uYmFyIik7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5kZW1vLWNvbnRlbnQgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRlbnQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2koYXN5bmMgUz0+e2xldCBPPWsoUyk7aWYoIU8pcmV0dXJuO2xldCBMPWF3YWl0IE8uc2hvdyh7bWVzc2FnZToiRmlsZSBjaGFuZ2VkIGV4dGVybmFsbHkuIFJlbG9hZD8iLHR5cGU6Indhcm5pbmciLGljb246Imx1Y2lkZTphbGVydFRyaWFuZ2xlIixhY3Rpb25zOlt7aWQ6InJlbG9hZCIsbGFiZWw6IlJlbG9hZCIscHJpbWFyeTohMH0se2lkOiJpZ25vcmUiLGxhYmVsOiJJZ25vcmUifV0sdGltZW91dDp7ZHVyYXRpb246NWUzLGRlZmF1bHRBY3Rpb25JZDoicmVsb2FkIn0sZGlzbWlzc2libGU6ITB9KTtjb25zb2xlLmxvZygiQWN0aW9uIGJhciByZXN1bHQ6IixMKX0sInNob3dBY3Rpb25CYXIiKX0+V2FybmluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7aShhc3luYyBTPT57bGV0IE89ayhTKTtpZighTylyZXR1cm47bGV0IEw9YXdhaXQgTy5zaG93KHttZXNzYWdlOiJQcm9jZXNzIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAxIix0eXBlOiJlcnJvciIsaWNvbjoibHVjaWRlOnhDaXJjbGUiLGFjdGlvbnM6W3tpZDoicmV0cnkiLGxhYmVsOiJSZXRyeSIscHJpbWFyeTohMH0se2lkOiJkaXNtaXNzIixsYWJlbDoiRGlzbWlzcyJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxZTQsZGVmYXVsdEFjdGlvbklkOiJkaXNtaXNzIn19KTtjb25zb2xlLmxvZygiRXJyb3IgYmFyIHJlc3VsdDoiLEwpfSwic2hvd0Vycm9yQmFyIil9PkVycm9yPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHtpKGFzeW5jIFM9PntsZXQgTz1rKFMpO2lmKCFPKXJldHVybjtsZXQgTD1hd2FpdCBPLnNob3coe21lc3NhZ2U6IlNhdmUgY2hhbmdlcyBiZWZvcmUgY2xvc2luZz8iLHR5cGU6InF1ZXN0aW9uIixpY29uOiJsdWNpZGU6aGVscENpcmNsZSIsYWN0aW9uczpbe2lkOiJzYXZlIixsYWJlbDoiU2F2ZSIscHJpbWFyeTohMH0se2lkOiJkaXNjYXJkIixsYWJlbDoiRGlzY2FyZCJ9LHtpZDoiY2FuY2VsIixsYWJlbDoiQ2FuY2VsIn1dfSk7Y29uc29sZS5sb2coIlF1ZXN0aW9uIGJhciByZXN1bHQ6IixMKX0sInNob3dRdWVzdGlvbkJhciIpfT5RdWVzdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgIDwvZGl2PgogICAgYH0sImRlbW8iKTtxdWV1ZT1bXTsjZT1iMyh0aGlzLG8sbnVsbCk7Z2V0IGN1cnJlbnRCYXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudEJhcihrKXt0aGlzLiNlPWt9I3Q9KGIzKHRoaXMsbCksYjModGhpcyxkLDApKTtnZXQgdGltZVJlbWFpbmluZygpe3JldHVybiB0aGlzLiN0fXNldCB0aW1lUmVtYWluaW5nKGspe3RoaXMuI3Q9a30jcj0oYjModGhpcyxmKSxiMyh0aGlzLGgsMTAwKSk7Z2V0IHByb2dyZXNzUGVyY2VudCgpe3JldHVybiB0aGlzLiNyfXNldCBwcm9ncmVzc1BlcmNlbnQoayl7dGhpcy4jcj1rfSNhPShiMyh0aGlzLG0pLGIzKHRoaXMsYiwhMSkpO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaXNWaXNpYmxlKGspe3RoaXMuI2E9a310aW1lb3V0SW50ZXJ2YWw9KGIzKHRoaXMsZyksbnVsbCk7Y3VycmVudFJlc29sdmU9bnVsbDtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmFjdGlvbmJhci1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjJzIGVhc2Utb3V0OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICB9CgogICAgICA6aG9zdCgudmlzaWJsZSkgLmFjdGlvbmJhci1pdGVtIHsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgfQoKICAgICAgLmFjdGlvbmJhci1jb250ZW50IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC52aXNpYmxlKSAuYWN0aW9uYmFyLWNvbnRlbnQgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXIgewogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGxpbmVhcjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC5xdWVzdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtaW4taGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAubWVzc2FnZS1zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24uaW5mbyB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24ucXVlc3Rpb24gewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmFjdGlvbnMtc2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDgwJSkiLCJoc2woMCAwJSAzMCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA1MCUpIiwiaHNsKDIxMCAxMDAlIDU1JSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5Lndhcm5pbmc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMzggOTIlIDQwJSkiLCJoc2woMzggOTIlIDQ1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LmVycm9yOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5xdWVzdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LnF1ZXN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDI3MCA3MCUgNDUlKSIsImhzbCgyNzAgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5jb3VudGRvd24gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmRpc21pc3MtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmRpc21pc3MtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDIyJSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGs9dGhpcy5jdXJyZW50QmFyLE09az8udHlwZXx8ImluZm8iLE49az8udGltZW91dCYmdGhpcy50aW1lUmVtYWluaW5nPjA7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbmJhci1pdGVtIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25iYXItY29udGVudCI+CiAgICAgICAgICAke2s/d2AKICAgICAgICAgICAgJHtOP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2dyZXNzLWJhci1maWxsICR7TX0iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnByb2dyZXNzUGVyY2VudH0lIgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgJHtrLmljb24/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtZXNzYWdlLWljb24gJHtNfSIKICAgICAgICAgICAgICAgICAgICAuaWNvbj0ke2suaWNvbn0KICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTYiCiAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVzc2FnZS10ZXh0Ij4ke2subWVzc2FnZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucy1zZWN0aW9uIj4KICAgICAgICAgICAgICAgICR7ay5hY3Rpb25zLm1hcChfPT50aGlzLnJlbmRlckFjdGlvbkJ1dHRvbihfLGssTikpfQogICAgICAgICAgICAgICAgJHtrLmRpc21pc3NpYmxlP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZGlzbWlzcy1idXR0b24iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGlzbWlzcygpfQogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJEaXNtaXNzIgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uQnV0dG9uKGssTSxOKXtsZXQgXz1rLnByaW1hcnksUz1NLnR5cGV8fCJpbmZvIixPPU0udGltZW91dD8uZGVmYXVsdEFjdGlvbklkPT09ay5pZCxMPU4mJk8sRT1NYXRoLmNlaWwodGhpcy50aW1lUmVtYWluaW5nLzFlMyk7cmV0dXJuIHdgCiAgICAgIDxidXR0b24KICAgICAgICBjbGFzcz0iYWN0aW9uLWJ1dHRvbiAke18/YHByaW1hcnkgJHtTfWA6InNlY29uZGFyeSJ9IgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbihrLmlkLCExKX0KICAgICAgPgogICAgICAgICR7ay5pY29uP3dgCiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7ay5pY29ufSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4+JHtrLmxhYmVsfTwvc3Bhbj4KICAgICAgICAke0w/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudGRvd24iPigke0V9cyk8L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgPC9idXR0b24+CiAgICBgfWFzeW5jIHNob3coayl7cmV0dXJuIG5ldyBQcm9taXNlKE09Pnt0aGlzLnF1ZXVlLnB1c2goe29wdGlvbnM6ayxyZXNvbHZlOk19KSx0aGlzLmN1cnJlbnRCYXJ8fHRoaXMucHJvY2Vzc1F1ZXVlKCl9KX1kaXNtaXNzKCl7dGhpcy5oYW5kbGVEaXNtaXNzKCl9Y2xlYXJRdWV1ZSgpe2ZvcihsZXQgayBvZiB0aGlzLnF1ZXVlKWsucmVzb2x2ZSh7YWN0aW9uSWQ6ImRpc21pc3NlZCIsdGltZWRPdXQ6ITF9KTt0aGlzLnF1ZXVlPVtdfWFzeW5jIGhpZGVDdXJyZW50QmFyKCl7dGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIiksdGhpcy5pc1Zpc2libGU9ITEsYXdhaXQgbmV3IFByb21pc2Uoaz0+c2V0VGltZW91dChrLDIyMCkpLHRoaXMuY3VycmVudEJhcj1udWxsLHRoaXMuY3VycmVudFJlc29sdmU9bnVsbH1hc3luYyBwcm9jZXNzUXVldWUoKXtpZih0aGlzLnF1ZXVlLmxlbmd0aD09PTApe3RoaXMuaGlkZUN1cnJlbnRCYXIoKTtyZXR1cm59bGV0IGs9dGhpcy5xdWV1ZS5zaGlmdCgpO3RoaXMuY3VycmVudEJhcj1rLm9wdGlvbnMsdGhpcy5jdXJyZW50UmVzb2x2ZT1rLnJlc29sdmUsdGhpcy5pc1Zpc2libGU9ITAsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pLGsub3B0aW9ucy50aW1lb3V0JiZ0aGlzLnN0YXJ0VGltZW91dChrLm9wdGlvbnMudGltZW91dC5kdXJhdGlvbixrLm9wdGlvbnMudGltZW91dC5kZWZhdWx0QWN0aW9uSWQpfXN0YXJ0VGltZW91dChrLE0pe3RoaXMudGltZVJlbWFpbmluZz1rLHRoaXMucHJvZ3Jlc3NQZXJjZW50PTEwMDtsZXQgTj1EYXRlLm5vdygpLF89NTA7dGhpcy50aW1lb3V0SW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PntsZXQgUz1EYXRlLm5vdygpLU47dGhpcy50aW1lUmVtYWluaW5nPU1hdGgubWF4KDAsay1TKSx0aGlzLnByb2dyZXNzUGVyY2VudD10aGlzLnRpbWVSZW1haW5pbmcvayoxMDAsdGhpcy50aW1lUmVtYWluaW5nPD0wJiYodGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpLHRoaXMuaGFuZGxlQWN0aW9uKE0sITApKX0sXyl9Y2xlYXJUaW1lb3V0SW50ZXJ2YWwoKXt0aGlzLnRpbWVvdXRJbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy50aW1lb3V0SW50ZXJ2YWwpLHRoaXMudGltZW91dEludGVydmFsPW51bGwpfWhhbmRsZUFjdGlvbihrLE0pe3RoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKSx0aGlzLmN1cnJlbnRSZXNvbHZlJiZ0aGlzLmN1cnJlbnRSZXNvbHZlKHthY3Rpb25JZDprLHRpbWVkT3V0Ok19KSx0aGlzLnByb2Nlc3NRdWV1ZSgpfWhhbmRsZURpc21pc3MoKXt0aGlzLmhhbmRsZUFjdGlvbigiZGlzbWlzc2VkIiwhMSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKX1zdGF0aWN7YjMoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7dmFyIGpYcj11KCgpPT57fSk7dmFyIFVYcj11KCgpPT57JDZlKCk7alhyKCl9KTt2YXIgV1hyLEdYcj11KCgpPT57dmUoKTtXWHI9aSgoKT0+d2AKICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsiPgogICAgPGRlZXMtYmFkZ2UgLnRleHQ9JHsiRGVmYXVsdCJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InByaW1hcnkifSAudGV4dD0keyJQcmltYXJ5In0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsic3VjY2VzcyJ9IC50ZXh0PSR7IlN1Y2Nlc3MifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJ3YXJuaW5nIn0gLnRleHQ9JHsiV2FybmluZyJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7ImVycm9yIn0gLnRleHQ9JHsiRXJyb3IifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJwcmltYXJ5In0gLnJvdW5kZWQ9JHshMH0gLnRleHQ9JHsiUm91bmRlZCJ9PjwvZGVlcy1iYWRnZT4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBBNmUsbmcsWVhyLEtYcj11KCgpPT57dmUoKTtNcigpO0dYcigpO2x0KCk7QTZlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxuZz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sWVhyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1iYWRnZSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdO3ZhciB2PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzQmFkZ2UiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sQTZlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4idHlwZSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnR5cGUsImdldCIpLHNldDppKChnLHkpPT57Zy50eXBlPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxBNmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJ0ZXh0ImluIGcsImhhcyIpLGdldDppKGc9PmcudGV4dCwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnRleHQ9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLEE2ZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdW5kZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InJvdW5kZWQiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5yb3VuZGVkLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cucm91bmRlZD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSksQTZlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89V1hyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT1uZyh0aGlzLG8sImRlZmF1bHQiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKGIpe3RoaXMuI2U9Yn0jdD0obmcodGhpcyxsKSxuZyh0aGlzLGQsIiIpKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KGIpe3RoaXMuI3Q9Yn0jcj0obmcodGhpcyxmKSxuZyh0aGlzLGgsITEpKTtnZXQgcm91bmRlZCgpe3JldHVybiB0aGlzLiNyfXNldCByb3VuZGVkKGIpe3RoaXMuI3I9Yn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksbmcodGhpcyxtKSxaYS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmJhZGdlLnJvdW5kZWQgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMzMzMiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNjY2IiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMmU3ZDMyOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogI2VkNmMwMjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZTQwMDJiOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UgJHt0aGlzLnR5cGV9ICR7dGhpcy5yb3VuZGVkPyJyb3VuZGVkIjoiIn0iPgogICAgICAgICR7dGhpcy50ZXh0fQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje25nKGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBaWHI9dSgoKT0+e0tYcigpfSk7dmFyIFFYcixYWHI9dSgoKT0+e3ZlKCk7UVhyPWkoKCk9PndgCiAgPGRlZXMtaGludD48L2RlZXMtaGludD4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBKWHIsVDd0LGVKcix0SnI9dSgoKT0+e3ZlKCk7TXIoKTtYWHIoKTtsdCgpO0pYcj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sVDd0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxlSnI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWhpbnQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0hpbnQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxKWHIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJ0eXBlImluIGYsImhhcyIpLGdldDppKGY9PmYudHlwZSwiZ2V0Iiksc2V0OmkoKGYscCk9PntmLnR5cGU9cH0sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLEpYcihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPVFYcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9VDd0KHRoaXMsbywiaW5mbyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoZCl7dGhpcy4jZT1kfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxUN3QodGhpcyxsKSxaYS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YCA8ZGl2IGNsYXNzPSJtYWluYm94Ij48L2Rpdj4gYH1zdGF0aWN7VDd0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBySnI9dSgoKT0+e3RKcigpfSk7dmFyIGFKcixpSnI9dSgoKT0+e3ZlKCk7d2EoKTthSnI9aSgoKT0+e2xldCB0PVtbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiXSxbIlJlc29sdmluZyB3b3Jrc3BhY2UgcGFja2FnZXMiLCJEb3dubG9hZGluZyB1aS1hc3NldHMudGFyLmd6Il0sWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIiwiRG93bmxvYWRpbmcgdWktYXNzZXRzLnRhci5neiIsIlZlcmlmeWluZyBjaGVja3N1bSJdLFsiUmVzb2x2aW5nIHdvcmtzcGFjZSBwYWNrYWdlcyIsIkRvd25sb2FkaW5nIHVpLWFzc2V0cy50YXIuZ3oiLCJWZXJpZnlpbmcgY2hlY2tzdW0iLCJFeHRyYWN0aW5nIHJlbGVhc2UgYnVuZGxlIl0sWyJSZXNvbHZpbmcgd29ya3NwYWNlIHBhY2thZ2VzIiwiRG93bmxvYWRpbmcgdWktYXNzZXRzLnRhci5neiIsIlZlcmlmeWluZyBjaGVja3N1bSIsIkV4dHJhY3RpbmcgcmVsZWFzZSBidW5kbGUiLCJSZXN0YXJ0aW5nIGFwcGxpY2F0aW9uIl1dLGU9aShyPT5yPj0xMDA/IlVwbG9hZCBjb21wbGV0ZS4gRmluYWxpemluZyBwYWNrYWdlIG1hbmlmZXN0Li4uIjpyPj04Mj8iVmVyaWZ5aW5nIGNoZWNrc3VtcyBiZWZvcmUgaGFuZG9mZi4uLiI6cj49NTU/IlVwbG9hZGluZyB0aHVtYm5haWxzIHRvIGVkZ2UgY2FjaGUuLi4iOnI+PTI1PyJTdHJlYW1pbmcgc291cmNlIGZpbGVzIHRvIHRoZSByZW1vdGUgd29ya2VyLi4uIjoiUHJlcGFyaW5nIGFyY2hpdmUgYW5kIGRlcGVuZGVuY3kgZ3JhcGguLi4iLCJnZXRVcGxvYWRTdGF0dXMiKTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHI9PntsZXQgYT1yLnF1ZXJ5U2VsZWN0b3IoIiNsaXZlLXByb2dyZXNzIikscz1yLnF1ZXJ5U2VsZWN0b3IoIiN0ZXJtaW5hbC1wcm9ncmVzcyIpLG49cjtpZighYXx8IXMpcmV0dXJuO24uX19wcm9ncmVzc2JhckRlbW9JbnRlcnZhbElkJiZ3aW5kb3cuY2xlYXJJbnRlcnZhbChuLl9fcHJvZ3Jlc3NiYXJEZW1vSW50ZXJ2YWxJZCk7bGV0IG89MTIsbD0wLGM9aSgoKT0+e2EucGVyY2VudGFnZT1vLGEuc3RhdHVzVGV4dD1lKG8pLHMudGVybWluYWxMaW5lcz1bLi4udFtsXV0scy5wZXJjZW50YWdlPU1hdGgubWluKDEwMCwobCsxKSoyMCkscy5pbmRldGVybWluYXRlPWw8dC5sZW5ndGgtMSxvPW8+PTEwMD8xMjpNYXRoLm1pbigxMDAsbysxMSksbD1sPj10Lmxlbmd0aC0xPzA6bCsxfSwidXBkYXRlRGVtbyIpO2MoKSxuLl9fcHJvZ3Jlc3NiYXJEZW1vSW50ZXJ2YWxJZD13aW5kb3cuc2V0SW50ZXJ2YWwoYywxNDAwKX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtyZWAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5kZW1vSW50cm8gewogICAgICAgICAgICBtYXgtd2lkdGg6IDcyMHB4OwogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUgMjAlIDMwJSkiLCJoc2woMjE1IDE4JSA3NiUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlR3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDE4cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlQ2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDI1NSwyNTUsMjU1LDAuNzgpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjA0KSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTAgMjIlIDg2JSkiLCJoc2woMjEwIDEwJSAxOCUpIil9OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQud2lkZSB7CiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7CiAgICAgICAgICB9CgogICAgICAgICAgLnNob3djYXNlQ2FyZCBoMyB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgfQoKICAgICAgICAgIC5zaG93Y2FzZUNhcmQgcCB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE0JSA0MCUpIiwiaHNsKDIxNSAxMCUgNjYlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS41NTsKICAgICAgICAgIH0KCiAgICAgICAgICAucHJvZ3Jlc3NTdGFjayB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTRweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuY29kZUxhYmVsIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE0JSA0NCUpIiwiaHNsKDIxNSAxMCUgNzAlKSIpfTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIH0KCiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5zaG93Y2FzZUNhcmQud2lkZSB7CiAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW9JbnRybyI+CiAgICAgICAgICA8Y29kZT5kZWVzLXByb2dyZXNzYmFyPC9jb2RlPiBjYW4gbm93IHBhaXIgYSBjbGFzc2ljIHByb2dyZXNzIGJhciB3aXRoIGEgZml4ZWQtaGVpZ2h0IHN0YXR1cyBhcmVhLiBVc2Ugc2ltcGxlIHN0YXR1cyB0ZXh0IGZvciBjbGVhciB1c2VyLWZhY2luZyB1cGRhdGVzIG9yIHN3aXRjaCB0byB0ZXJtaW5hbC1saWtlIGxpbmVzIHdoZW4geW91IHdhbnQgcmVjZW50IHN0ZXBzIHRvIHN0YXkgdmlzaWJsZSB3aXRob3V0IGNhdXNpbmcgbGF5b3V0IGp1bXBzLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNob3djYXNlR3JpZCI+CiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZUxhYmVsIj5EZXRlcm1pbmF0ZTwvZGl2PgogICAgICAgICAgICA8aDM+UGVyY2VudGFnZSBwbHVzIGN1cnJlbnQgdGFzazwvaDM+CiAgICAgICAgICAgIDxwPlVzZSBhIGxhYmVsLCBhIHBlcmNlbnRhZ2UsIGFuZCBvbmUgc2hvcnQgc3RhdHVzIGxpbmUgd2hlbiB0aGUgd29yayBpcyBtZWFzdXJhYmxlLjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NTdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJNZWRpYSB1cGxvYWQiCiAgICAgICAgICAgICAgICAucGVyY2VudGFnZT0kezY4fQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iVXBsb2FkaW5nIHRodW1ibmFpbHMgdG8gZWRnZSBjYWNoZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iQXNzZXQgc3luYyIKICAgICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MTAwfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iQWxsIGZpbGVzIGFyZSBzeW5jZWQgYW5kIGF2YWlsYWJsZS4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+SW5kZXRlcm1pbmF0ZTwvZGl2PgogICAgICAgICAgICA8aDM+U3Bpbm5lci1zdHlsZSB0ZXh0IGluZGljYXRvcjwvaDM+CiAgICAgICAgICAgIDxwPldoZW4gdGhlcmUgaXMgbm8gdHJ1c3R3b3J0aHkgcGVyY2VudGFnZSB5ZXQsIGtlZXAgdGhlIGJhciBtb3ZpbmcgYW5kIGxldCB0aGUgdGV4dCBleHBsYWluIHdoYXQgaXMgaGFwcGVuaW5nLjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NTdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgIGxhYmVsPSJEZXBlbmRlbmN5IGluc3RhbGwiCiAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0keyEwfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iRG93bmxvYWRpbmcgcGFja2FnZSBtZXRhZGF0YS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iUXVldWVkIGpvYiIKICAgICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MzJ9CiAgICAgICAgICAgICAgICAuc2hvd1BlcmNlbnRhZ2U9JHshMX0KICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ9IldhaXRpbmcgZm9yIGEgd29ya2VyIHNsb3QgdG8gYmVjb21lIGF2YWlsYWJsZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2hvd2Nhc2VDYXJkIHdpZGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPlRlcm1pbmFsIExpbmVzPC9kaXY+CiAgICAgICAgICAgIDxoMz5GaXhlZC1oZWlnaHQgdGVybWluYWwtc3R5bGUgc3RhdHVzIG91dHB1dDwvaDM+CiAgICAgICAgICAgIDxwPlRoZSBwYW5lbCBzdGF5cyB0aGUgc2FtZSBoZWlnaHQgd2hpbGUgdGhlIGxhdGVzdCBzdGVwIHN0YXlzIHZpc2libGUuIFRoaXMgaXMgdXNlZnVsIGZvciB1cGRhdGUgZmxvd3MsIGRvd25sb2FkcywgYW5kIHN0YWdlZCBiYWNrZ3JvdW5kIHdvcmsuPC9wPgogICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhcgogICAgICAgICAgICAgIGlkPSJ0ZXJtaW5hbC1wcm9ncmVzcyIKICAgICAgICAgICAgICBsYWJlbD0iUmVsZWFzZSBidW5kbGUiCiAgICAgICAgICAgICAgLnBlcmNlbnRhZ2U9JHsyMH0KICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0keyEwfQogICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7NH0KICAgICAgICAgICAgICAudGVybWluYWxMaW5lcz0ke3RbMF19CiAgICAgICAgICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNob3djYXNlQ2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGVMYWJlbCI+TGl2ZSBEZW1vPC9kaXY+CiAgICAgICAgICAgIDxoMz5VcGRhdGluZyBwZXJjZW50YWdlIGFuZCB0ZXh0IHRvZ2V0aGVyPC9oMz4KICAgICAgICAgICAgPHA+QSBzaW5nbGUgY29tcG9uZW50IGNhbiBleHByZXNzIGJvdGggaG93IGZhciB0aGUgam9iIGlzIGFuZCB3aGljaCBwaGFzZSBpcyBjdXJyZW50bHkgYWN0aXZlLjwvcD4KICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICBpZD0ibGl2ZS1wcm9ncmVzcyIKICAgICAgICAgICAgICBsYWJlbD0iQ3VzdG9tZXIgZXhwb3J0IgogICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7MTJ9CiAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iUHJlcGFyaW5nIGFyY2hpdmUgYW5kIGRlcGVuZGVuY3kgZ3JhcGguLi4iCiAgICAgICAgICAgICAgLnN0YXR1c1Jvd3M9JHsyfQogICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzaG93Y2FzZUNhcmQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlTGFiZWwiPkNvbXBhdGliaWxpdHk8L2Rpdj4KICAgICAgICAgICAgPGgzPkxlZ2FjeSA8Y29kZT52YWx1ZTwvY29kZT4gYW5kIDxjb2RlPnByb2dyZXNzPC9jb2RlPiBpbnB1dHM8L2gzPgogICAgICAgICAgICA8cD5FeGlzdGluZyB1c2FnZXMgY2FuIGtlZXAgcGFzc2luZyBwZXJjZW50YWdlcyBkaXJlY3RseSBvciBub3JtYWxpemVkIHByb2dyZXNzIHZhbHVlcyBmcm9tIDAgdG8gMS48L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzU3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iRnJvbSB2YWx1ZSIKICAgICAgICAgICAgICAgIC52YWx1ZT0kezc1fQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iTWlncmF0aW5nIGV4aXN0aW5nIHJlYWRtZS1zdHlsZSB1c2FnZS4uLiIKICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7Mn0KICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgICAgICAgICAgICBsYWJlbD0iRnJvbSBwcm9ncmVzcyIKICAgICAgICAgICAgICAgIC5wcm9ncmVzcz0key40Mn0KICAgICAgICAgICAgICAgIC5zaG93UGVyY2VudGFnZT0keyExfQogICAgICAgICAgICAgICAgc3RhdHVzVGV4dD0iUmVuZGVyaW5nIG5vcm1hbGl6ZWQgcHJvZ3Jlc3MgaW5wdXQuLi4iCiAgICAgICAgICAgICAgICAuc3RhdHVzUm93cz0kezJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9LCJkZW1vRnVuYyIpfSk7dmFyIExjLGZzLHNKcixMN3Q9dSgoKT0+e2ZjKCk7aUpyKCk7dmUoKTtsdCgpO0xjPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxmcz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sc0pyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1wcm9ncmVzc2JhciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdO3ZhciBkZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1Byb2dyZXNzYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpOdW1iZXJ9KV0sYz1bUCh7dHlwZTpOdW1iZXJ9KV0scD1bUCh7dHlwZTpOdW1iZXJ9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpTdHJpbmd9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOk51bWJlcn0pXSxCPVtQKHt0eXBlOkJvb2xlYW59KV0sQT1bUCh7dHlwZTpCb29sZWFufSldLFk9W2llKCldLExjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGVyY2VudGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4icGVyY2VudGFnZSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnBlcmNlbnRhZ2UsImdldCIpLHNldDppKChRLGZlKT0+e1EucGVyY2VudGFnZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxvLGwpLExjKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InZhbHVlImluIFEsImhhcyIpLGdldDppKFE9PlEudmFsdWUsImdldCIpLHNldDppKChRLGZlKT0+e1EudmFsdWU9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sZCxmKSxMYyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dyZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFE9PiJwcm9ncmVzcyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnByb2dyZXNzLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLnByb2dyZXNzPWZlfSwic2V0Iil9LG1ldGFkYXRhOkR9LGgsbSksTGModGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ibGFiZWwiaW4gUSwiaGFzIiksZ2V0OmkoUT0+US5sYWJlbCwiZ2V0Iiksc2V0OmkoKFEsZmUpPT57US5sYWJlbD1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxiLGcpLExjKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic3RhdHVzVGV4dCJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnN0YXR1c1RleHQsImdldCIpLHNldDppKChRLGZlKT0+e1Euc3RhdHVzVGV4dD1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxrLE0pLExjKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4idGVybWluYWxMaW5lcyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnRlcm1pbmFsTGluZXMsImdldCIpLHNldDppKChRLGZlKT0+e1EudGVybWluYWxMaW5lcz1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxfLFMpLExjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzUm93cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4ic3RhdHVzUm93cyJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLnN0YXR1c1Jvd3MsImdldCIpLHNldDppKChRLGZlKT0+e1Euc3RhdHVzUm93cz1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxMLEUpLExjKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5kZXRlcm1pbmF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iaW5kZXRlcm1pbmF0ZSJpbiBRLCJoYXMiKSxnZXQ6aShRPT5RLmluZGV0ZXJtaW5hdGUsImdldCIpLHNldDppKChRLGZlKT0+e1EuaW5kZXRlcm1pbmF0ZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxDLHopLExjKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1BlcmNlbnRhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUT0+InNob3dQZXJjZW50YWdlImluIFEsImhhcyIpLGdldDppKFE9PlEuc2hvd1BlcmNlbnRhZ2UsImdldCIpLHNldDppKChRLGZlKT0+e1Euc2hvd1BlcmNlbnRhZ2U9ZmV9LCJzZXQiKX0sbWV0YWRhdGE6RH0sJCxGKSxMYyh0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZVNwaW5uZXJGcmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShRPT4iYWN0aXZlU3Bpbm5lckZyYW1lImluIFEsImhhcyIpLGdldDppKFE9PlEuYWN0aXZlU3Bpbm5lckZyYW1lLCJnZXQiKSxzZXQ6aSgoUSxmZSk9PntRLmFjdGl2ZVNwaW5uZXJGcmFtZT1mZX0sInNldCIpfSxtZXRhZGF0YTpEfSxHLFopLExjKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkR9LG51bGwsciksZGU9YT1lLnZhbHVlLEQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RH0pfXN0YXRpYyBkZW1vPWFKcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9ZnModGhpcyxvLDApO2dldCBwZXJjZW50YWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBlcmNlbnRhZ2UoRCl7dGhpcy4jZT1EfSN0PShmcyh0aGlzLGwpLGZzKHRoaXMsZCxudWxsKSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHZhbHVlKEQpe3RoaXMuI3Q9RH0jcj0oZnModGhpcyxmKSxmcyh0aGlzLGgsbnVsbCkpO2dldCBwcm9ncmVzcygpe3JldHVybiB0aGlzLiNyfXNldCBwcm9ncmVzcyhEKXt0aGlzLiNyPUR9I2E9KGZzKHRoaXMsbSksZnModGhpcyxiLCIiKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGxhYmVsKEQpe3RoaXMuI2E9RH0jaT0oZnModGhpcyxnKSxmcyh0aGlzLGssIiIpKTtnZXQgc3RhdHVzVGV4dCgpe3JldHVybiB0aGlzLiNpfXNldCBzdGF0dXNUZXh0KEQpe3RoaXMuI2k9RH0jcz0oZnModGhpcyxNKSxmcyh0aGlzLF8sW10pKTtnZXQgdGVybWluYWxMaW5lcygpe3JldHVybiB0aGlzLiNzfXNldCB0ZXJtaW5hbExpbmVzKEQpe3RoaXMuI3M9RH0jbj0oZnModGhpcyxTKSxmcyh0aGlzLEwsMykpO2dldCBzdGF0dXNSb3dzKCl7cmV0dXJuIHRoaXMuI259c2V0IHN0YXR1c1Jvd3MoRCl7dGhpcy4jbj1EfSNvPShmcyh0aGlzLEUpLGZzKHRoaXMsQywhMSkpO2dldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuI299c2V0IGluZGV0ZXJtaW5hdGUoRCl7dGhpcy4jbz1EfSNsPShmcyh0aGlzLHopLGZzKHRoaXMsJCwhMCkpO2dldCBzaG93UGVyY2VudGFnZSgpe3JldHVybiB0aGlzLiNsfXNldCBzaG93UGVyY2VudGFnZShEKXt0aGlzLiNsPUR9I2M9KGZzKHRoaXMsRiksZnModGhpcyxHLDApKTtnZXQgYWN0aXZlU3Bpbm5lckZyYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGFjdGl2ZVNwaW5uZXJGcmFtZShEKXt0aGlzLiNjPUR9c3Bpbm5lckludGVydmFsSWQ9KGZzKHRoaXMsWiksbnVsbCk7c3Bpbm5lckZyYW1lcz1bInwiLCIvIiwiLSIsIlxcIl07c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKFJwLnRleHQsT3AudGV4dCl9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXJDb250YWluZXIgewogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0hlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0xhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAucHJvZ3Jlc3NWYWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE1JSA0MCUpIiwiaHNsKDIxNSAxNSUgNzAlKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VlZWVlYiIsIiM0NDQiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMC41cHggc29saWQgJHt4LmJkVGhlbWUoInRyYW5zcGFyZW50IiwiIzU1NSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzQmFyRmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoT3AuYmx1ZUFjdGl2ZSxScC5ibHVlQWN0aXZlKX07CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyBlYXNlOwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXJGaWxsLmluZGV0ZXJtaW5hdGUgewogICAgICAgIHdpZHRoOiAzNCU7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgICBhbmltYXRpb246IGluZGV0ZXJtaW5hdGVTbGlkZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICB9CgogICAgICAuc3RhdHVzUGFuZWwgewogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXN0YXR1cy1yb3dzLCAzKSAqIDEuMzVlbSArIDE2cHgpOwogICAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tc3RhdHVzLXJvd3MsIDMpICogMS4zNWVtICsgMTZweCk7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTAgMjAlIDg2JSkiLCJoc2woMjEwIDEwJSAyNiUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDMzJSA5OCUpIiwiaHNsKDIyMCAyMCUgMTAlKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnN0YXR1c1RleHRSb3csCiAgICAgIC50ZXJtaW5hbExpbmUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLWhlaWdodDogMS4zNWVtOwogICAgICB9CgogICAgICAudGVybWluYWxTY3JvbGxlciB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICB9CgogICAgICAudGVybWluYWxTY3JvbGxlcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbFNjcm9sbGVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTUgMTglIDc4JSkiLCJoc2woMjE1IDEwJSAzNCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICB9CgogICAgICAudGVybWluYWxTY3JvbGxlcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubGluZVByZWZpeCB7CiAgICAgICAgd2lkdGg6IDFjaDsKICAgICAgICBmbGV4OiAwIDAgMWNoOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZShPcC5ibHVlQWN0aXZlLFJwLmJsdWVBY3RpdmUpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5saW5lVGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjIwIDE1JSAyNSUpIiwiaHNsKDIxMCAxNSUgODYlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsTGluZTpub3QoLmN1cnJlbnQpIC5saW5lVGV4dCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDEyJSA0MiUpIiwiaHNsKDIxNSAxMiUgNjMlKSIpfTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBpbmRldGVybWluYXRlU2xpZGUgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTIwJSk7CiAgICAgICAgfQoKICAgICAgICAxMDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMjAlKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnN5bmNTcGlubmVyU3RhdGUoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuc3RvcFNwaW5uZXIoKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfXVwZGF0ZWQoRCl7c3VwZXIudXBkYXRlZChEKSx0aGlzLnN5bmNTcGlubmVyU3RhdGUoKSxELmhhcygidGVybWluYWxMaW5lcyIpJiZ0aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoPjAmJnRoaXMuc2Nyb2xsVGVybWluYWxUb0JvdHRvbSgpfXJlbmRlcigpe2xldCBEPXRoaXMuZ2V0RWZmZWN0aXZlUGVyY2VudGFnZSgpLFE9ISF0aGlzLmxhYmVsfHx0aGlzLnNob3dQZXJjZW50YWdlJiYhdGhpcy5pbmRldGVybWluYXRlLGZlPXRoaXMudGVybWluYWxMaW5lcy5sZW5ndGg+MCxUPWZlfHx0aGlzLnN0YXR1c1RleHQudHJpbSgpLmxlbmd0aD4wLFc9dGhpcy5nZXRSZW5kZXJlZFN0YXR1c1Jvd3MoKSxwZT10aGlzLnNwaW5uZXJGcmFtZXNbdGhpcy5hY3RpdmVTcGlubmVyRnJhbWVdPz90aGlzLnNwaW5uZXJGcmFtZXNbMF07cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzQmFyQ29udGFpbmVyIj4KICAgICAgICAke1E/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzSGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NMYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PgogICAgICAgICAgICAke3RoaXMuc2hvd1BlcmNlbnRhZ2UmJiF0aGlzLmluZGV0ZXJtaW5hdGU/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc1ZhbHVlIj4ke3RoaXMuZm9ybWF0UGVyY2VudGFnZShEKX0lPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzQmFyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InByb2dyZXNzQmFyRmlsbCAke3RoaXMuaW5kZXRlcm1pbmF0ZT8iaW5kZXRlcm1pbmF0ZSI6IiJ9IgogICAgICAgICAgICBzdHlsZT0iJHt0aGlzLmluZGV0ZXJtaW5hdGU/IiI6YHdpZHRoOiAke0R9JTtgfSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke1Q/d2AKICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InN0YXR1c1BhbmVsIgogICAgICAgICAgICBzdHlsZT0iLS1zdGF0dXMtcm93czogJHtXfTsiCiAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICBhcmlhLWF0b21pYz0idHJ1ZSIKICAgICAgICAgID4KICAgICAgICAgICAgJHtmZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsU2Nyb2xsZXIiPgogICAgICAgICAgICAgICAgJHt0aGlzLnRlcm1pbmFsTGluZXMubWFwKChtZSxxKT0+e2xldCBIPXE9PT10aGlzLnRlcm1pbmFsTGluZXMubGVuZ3RoLTEsVT10aGlzLmluZGV0ZXJtaW5hdGUmJkg/cGU6Ij4iO3JldHVybiB3YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsTGluZSAke0g/ImN1cnJlbnQiOiIifSI+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVByZWZpeCI+JHtVfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lVGV4dCI+JHttZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c1RleHRSb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxpbmVQcmVmaXgiPiR7dGhpcy5pbmRldGVybWluYXRlP3BlOiI+In08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGluZVRleHQiPiR7dGhpcy5zdGF0dXNUZXh0fTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRFZmZlY3RpdmVQZXJjZW50YWdlKCl7aWYodHlwZW9mIHRoaXMudmFsdWU9PSJudW1iZXIiJiZOdW1iZXIuaXNGaW5pdGUodGhpcy52YWx1ZSkpcmV0dXJuIHRoaXMuY2xhbXBQZXJjZW50YWdlKHRoaXMudmFsdWUpO2lmKHR5cGVvZiB0aGlzLnByb2dyZXNzPT0ibnVtYmVyIiYmTnVtYmVyLmlzRmluaXRlKHRoaXMucHJvZ3Jlc3MpKXtsZXQgRD10aGlzLnByb2dyZXNzPj0wJiZ0aGlzLnByb2dyZXNzPD0xP3RoaXMucHJvZ3Jlc3MqMTAwOnRoaXMucHJvZ3Jlc3M7cmV0dXJuIHRoaXMuY2xhbXBQZXJjZW50YWdlKEQpfXJldHVybiB0aGlzLmNsYW1wUGVyY2VudGFnZSh0aGlzLnBlcmNlbnRhZ2UpfWdldFJlbmRlcmVkU3RhdHVzUm93cygpe2xldCBEPU51bWJlci5pc0Zpbml0ZSh0aGlzLnN0YXR1c1Jvd3MpP01hdGguZmxvb3IodGhpcy5zdGF0dXNSb3dzKTozO3JldHVybiBNYXRoLm1heCgxLEQpfWNsYW1wUGVyY2VudGFnZShEKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsRCkpfWZvcm1hdFBlcmNlbnRhZ2UoRCl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoRCk/YCR7RH1gOkQudG9GaXhlZCgxKS5yZXBsYWNlKC9cLjAkLywiIil9c3luY1NwaW5uZXJTdGF0ZSgpe2xldCBEPXRoaXMuaW5kZXRlcm1pbmF0ZSYmKHRoaXMuc3RhdHVzVGV4dC50cmltKCkubGVuZ3RoPjB8fHRoaXMudGVybWluYWxMaW5lcy5sZW5ndGg+MCk7aWYoRCYmdGhpcy5zcGlubmVySW50ZXJ2YWxJZD09PW51bGwpe3RoaXMuc3Bpbm5lckludGVydmFsSWQ9d2luZG93LnNldEludGVydmFsKCgpPT57dGhpcy5hY3RpdmVTcGlubmVyRnJhbWU9KHRoaXMuYWN0aXZlU3Bpbm5lckZyYW1lKzEpJXRoaXMuc3Bpbm5lckZyYW1lcy5sZW5ndGh9LDEyMCk7cmV0dXJufUR8fHRoaXMuc3RvcFNwaW5uZXIoKX1zdG9wU3Bpbm5lcigpe3RoaXMuc3Bpbm5lckludGVydmFsSWQhPT1udWxsJiYod2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5zcGlubmVySW50ZXJ2YWxJZCksdGhpcy5zcGlubmVySW50ZXJ2YWxJZD1udWxsKSx0aGlzLmFjdGl2ZVNwaW5uZXJGcmFtZT0wfXNjcm9sbFRlcm1pbmFsVG9Cb3R0b20oKXtsZXQgRD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbFNjcm9sbGVyIik7RCYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e0Quc2Nyb2xsVG9wPUQuc2Nyb2xsSGVpZ2h0fSl9c3RhdGlje2ZzKGEscil9fTtyZXR1cm4gZGU9YX0pKCl9KTt2YXIgbkpyPXUoKCk9PntMN3QoKX0pO3ZhciBFNmUsb2csb0pyLGxKcj11KCgpPT57dmUoKTtNcigpO2x0KCk7RTZlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxvZz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sb0pyPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1zcGlubmVyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTcGlubmVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpOdW1iZXJ9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCgpXSxFNmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJzaXplImluIGcsImhhcyIpLGdldDppKGc9Pmcuc2l6ZSwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnNpemU9eX0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLEU2ZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJudyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iYm53ImluIGcsImhhcyIpLGdldDppKGc9PmcuYm53LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuYm53PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCxmKSxFNmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InN0YXR1cyJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnN0YXR1cywiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnN0YXR1cz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSksRTZlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdO3N0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGVlcy1zcGlubmVyPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc2l6ZT0kezY0fSBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciAuc2l6ZT0kezY0fSBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICBgLCJkZW1vIik7I2U9b2codGhpcyxvLDIwKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKGIpe3RoaXMuI2U9Yn0jdD0ob2codGhpcyxsKSxvZyh0aGlzLGQsITEpKTtnZXQgYm53KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJudyhiKXt0aGlzLiN0PWJ9I3I9KG9nKHRoaXMsZiksb2codGhpcyxoLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNyfXNldCBzdGF0dXMoYil7dGhpcy4jcj1ifWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxvZyh0aGlzLG0pfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAjbG9hZGluZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogIzhiYzM0YTAwOwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBub25lOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBub25lOwogICAgICB9CgogICAgICAjbG9hZGluZy5lcnJvciB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgICNsb2FkaW5nIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKHRoaXMuYm53PyIjMzMzIjoiIzhiYzM0YSIsdGhpcy5ibnc/IiNmZmYiOiIjOGJjMzRhIil9OwogICAgICAgICAgCiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLmVycm9yIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSh0aGlzLmJudz8iIzMzMyI6IiNlNjRhMTkiLHRoaXMuYm53PyIjZmZmIjoiI2U2NGExOSIpfTsKICAgICAgICB9CiAgICAgICAgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSIke3RoaXMuc3RhdHVzfSIgaWQ9ImxvYWRpbmciPgogICAgICAgICR7KCgpPT57aWYodGhpcy5zdGF0dXM9PT0ic3VjY2VzcyIpcmV0dXJuIHdgPGRlZXMtaWNvbiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGVYKDElKSB0cmFuc2xhdGVZKDMlKTsiIC5pY29uPSR7ImZhOmNpcmNsZS1jaGVjayJ9PjwvZGVlcy1pY29uPmA7aWYodGhpcy5zdGF0dXM9PT0iZXJyb3IiKXJldHVybiB3YDxkZWVzLWljb24gLmljb249JHsiZmE6Y2lyY2xlLXhtYXJrIn0+PC9kZWVzLWljb24+YH0pKCl9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7b2coYSxyKX19O3JldHVybiB2PWF9KSgpfSk7dmFyIGNKcj11KCgpPT57bEpyKCl9KTt2YXIgZEpyLHVKcj11KCgpPT57dmUoKTtEN3QoKTtnOSgpO2RKcj1pKCgpPT53YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogICAgICB9CgogICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzY2NiIsIiNhYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICB9CgogICAgICAudGhlbWUtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAxNnB4OwogICAgICAgIHJpZ2h0OiAxNnB4OwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLWJ1dHRvbiBjbGFzcz0idGhlbWUtdG9nZ2xlIiBAY2xpY2tlZD0keygpPT57ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJicmlnaHQiKX19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VG9hc3QgVHlwZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIERpZmZlcmVudCB0b2FzdCB0eXBlcyBmb3IgdmFyaW91cyBub3RpZmljYXRpb24gc2NlbmFyaW9zLiBDbGljayBhbnkgYnV0dG9uIHRvIHNob3cgYSB0b2FzdC4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PnttYS5pbmZvKCJUaGlzIGlzIGFuIGluZm9ybWF0aW9uYWwgbWVzc2FnZSIpfX0+SW5mbyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCIgQGNsaWNrZWQ9JHsoKT0+e21hLnN1Y2Nlc3MoIk9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5ISIpfX0+U3VjY2VzcyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEud2FybmluZygiUGxlYXNlIHJldmlldyBiZWZvcmUgcHJvY2VlZGluZyIpfX0+V2FybmluZyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuZXJyb3IoIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmciKX19PkVycm9yIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VG9hc3QgUG9zaXRpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUb2FzdHMgY2FuIGFwcGVhciBpbiBkaWZmZXJlbnQgcG9zaXRpb25zIG9uIHRoZSBzY3JlZW4uCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuc2hvdyh7bWVzc2FnZToiVG9wIFJpZ2h0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLXJpZ2h0In0pfX0+VG9wIFJpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PnttYS5zaG93KHttZXNzYWdlOiJUb3AgTGVmdCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1sZWZ0In0pfX0+VG9wIExlZnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLnNob3coe21lc3NhZ2U6IkJvdHRvbSBSaWdodCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246ImJvdHRvbS1yaWdodCJ9KX19PkJvdHRvbSBSaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuc2hvdyh7bWVzc2FnZToiQm90dG9tIExlZnQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tbGVmdCJ9KX19PkJvdHRvbSBMZWZ0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PnttYS5zaG93KHttZXNzYWdlOiJUb3AgQ2VudGVyIFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLWNlbnRlciJ9KX19PlRvcCBDZW50ZXI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLnNob3coe21lc3NhZ2U6IkJvdHRvbSBDZW50ZXIgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tY2VudGVyIn0pfX0+Qm90dG9tIENlbnRlcjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkR1cmF0aW9uIE9wdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENvbnRyb2wgaG93IGxvbmcgdG9hc3RzIHN0YXkgdmlzaWJsZS4gRHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLnNob3coe21lc3NhZ2U6IlF1aWNrIHRvYXN0ICgxIHNlY29uZCkiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjFlM30pfX0+MSBTZWNvbmQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLnNob3coe21lc3NhZ2U6IlN0YW5kYXJkIHRvYXN0ICgzIHNlY29uZHMpIix0eXBlOiJpbmZvIixkdXJhdGlvbjozZTN9KX19PjMgU2Vjb25kcyAoRGVmYXVsdCk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLnNob3coe21lc3NhZ2U6IkxvbmcgdG9hc3QgKDUgc2Vjb25kcykiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjVlM30pfX0+NSBTZWNvbmRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PnttYS5zaG93KHttZXNzYWdlOiJNYW51YWwgZGlzbWlzcyBvbmx5IChjbGljayB0byBjbG9zZSkiLHR5cGU6Indhcm5pbmciLGR1cmF0aW9uOjB9KX19Pk5vIEF1dG8tRGlzbWlzczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpcGxlIFRvYXN0czwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgTXVsdGlwbGUgdG9hc3RzIHN0YWNrIGF1dG9tYXRpY2FsbHkuIFRoZXkgbWFpbnRhaW4gdGhlaXIgb3JkZXIgYW5kIGFuaW1hdGUgc21vb3RobHkuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuaW5mbygiRmlyc3Qgbm90aWZpY2F0aW9uIiksc2V0VGltZW91dCgoKT0+bWEuc3VjY2VzcygiU2Vjb25kIG5vdGlmaWNhdGlvbiIpLDIwMCksc2V0VGltZW91dCgoKT0+bWEud2FybmluZygiVGhpcmQgbm90aWZpY2F0aW9uIiksNDAwKSxzZXRUaW1lb3V0KCgpPT5tYS5lcnJvcigiRm91cnRoIG5vdGlmaWNhdGlvbiIpLDYwMCl9fT5TaG93IE11bHRpcGxlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntmb3IobGV0IHQ9MTt0PD01O3QrKylzZXRUaW1lb3V0KCgpPT57bWEuc2hvdyh7bWVzc2FnZTpgTm90aWZpY2F0aW9uICMke3R9YCx0eXBlOnQlMj09PTA/InN1Y2Nlc3MiOiJpbmZvIixkdXJhdGlvbjoyZTMrdCo1MDB9KX0sdCoxMDApfX0+UmFwaWQgRmlyZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlJlYWwtV29ybGQgRXhhbXBsZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENvbW1vbiB1c2UgY2FzZXMgZm9yIHRvYXN0IG5vdGlmaWNhdGlvbnMgaW4gYXBwbGljYXRpb25zLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHthc3luYygpPT57bGV0IHQ9YXdhaXQgbWEuc2hvdyh7bWVzc2FnZToiU2F2aW5nIGNoYW5nZXMuLi4iLHR5cGU6ImluZm8iLGR1cmF0aW9uOjB9KTtzZXRUaW1lb3V0KCgpPT57dC5kaXNtaXNzKCksbWEuc3VjY2VzcygiQ2hhbmdlcyBzYXZlZCBzdWNjZXNzZnVsbHkhIil9LDJlMyl9fT5TYXZlIE9wZXJhdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuZXJyb3IoIkZhaWxlZCB0byBjb25uZWN0IHRvIHNlcnZlci4gUGxlYXNlIGNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbi4iKX19Pk5ldHdvcmsgRXJyb3I8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLndhcm5pbmcoIllvdXIgc2Vzc2lvbiB3aWxsIGV4cGlyZSBpbiA1IG1pbnV0ZXMiKX19PlNlc3Npb24gV2FybmluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57bWEuc3VjY2VzcygiRmlsZSB1cGxvYWRlZCBzdWNjZXNzZnVsbHkhIil9fT5VcGxvYWQgQ29tcGxldGU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Qcm9ncmFtbWF0aWMgQ29udHJvbDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQWR2YW5jZWQgY29udHJvbCBvdmVyIHRvYXN0IGJlaGF2aW9yLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHthc3luYygpPT57bGV0IHQ9YXdhaXQgbWEuc2hvdyh7bWVzc2FnZToiVGhpcyB0b2FzdCBjYW4gYmUgZGlzbWlzc2VkIHByb2dyYW1tYXRpY2FsbHkiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjB9KTtzZXRUaW1lb3V0KCgpPT57dC5kaXNtaXNzKCksbWEuc3VjY2VzcygiVG9hc3QgZGlzbWlzc2VkIGFmdGVyIDIgc2Vjb25kcyIpfSwyZTMpfX0+UHJvZ3JhbW1hdGljIERpc21pc3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e21hLmluZm8oIkluZm8gbWVzc2FnZSIsMmUzKSxzZXRUaW1lb3V0KCgpPT5tYS5zdWNjZXNzKCJTdWNjZXNzIG1lc3NhZ2UiLDJlMyksNTAwKSxzZXRUaW1lb3V0KCgpPT5tYS53YXJuaW5nKCJXYXJuaW5nIG1lc3NhZ2UiLDJlMyksMWUzKSxzZXRUaW1lb3V0KCgpPT5tYS5lcnJvcigiRXJyb3IgbWVzc2FnZSIsMmUzKSwxNTAwKX19PkNvbnZlbmllbmNlIE1ldGhvZHM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsImRlbW9GdW5jIil9KTt2YXIgUnJlLHgzLG1hLEQ3dD11KCgpPT57dmUoKTtNcigpO09vKCk7dUpyKCk7X3MoKTtsdCgpO1JyZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0seDM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LG1hPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy10b2FzdCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVG9hc3QiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOk51bWJlcn0pXSx2PVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxScmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXNzYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJtZXNzYWdlImluIE0sImhhcyIpLGdldDppKE09Pk0ubWVzc2FnZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLm1lc3NhZ2U9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLFJyZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+InR5cGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS50eXBlLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00udHlwZT1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsZiksUnJlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImR1cmF0aW9uImluIE0sImhhcyIpLGdldDppKE09Pk0uZHVyYXRpb24sImdldCIpLHNldDppKChNLE4pPT57TS5kdXJhdGlvbj1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGgsbSksUnJlKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJpc1Zpc2libGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5pc1Zpc2libGUsImdldCIpLHNldDppKChNLE4pPT57TS5pc1Zpc2libGU9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLFJyZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPWRKcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIiwiT3ZlcmxheSJdO3N0YXRpYyB0b2FzdENvbnRhaW5lcnM9bmV3IE1hcDtzdGF0aWMgZ2V0T3JDcmVhdGVDb250YWluZXIoayl7aWYoIXRoaXMudG9hc3RDb250YWluZXJzLmhhcyhrKSl7bGV0IE09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7c3dpdGNoKE0uY2xhc3NOYW1lPWB0b2FzdC1jb250YWluZXIgdG9hc3QtY29udGFpbmVyLSR7a31gLE0uc3R5bGUuY3NzVGV4dD1gCiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHotaW5kZXg6ICR7anMub3ZlcmxheS50b2FzdH07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIGAsayl7Y2FzZSJ0b3AtcmlnaHQiOk0uc3R5bGUudG9wPSIwIixNLnN0eWxlLnJpZ2h0PSIwIjticmVhaztjYXNlInRvcC1sZWZ0IjpNLnN0eWxlLnRvcD0iMCIsTS5zdHlsZS5sZWZ0PSIwIjticmVhaztjYXNlImJvdHRvbS1yaWdodCI6TS5zdHlsZS5ib3R0b209IjAiLE0uc3R5bGUucmlnaHQ9IjAiO2JyZWFrO2Nhc2UiYm90dG9tLWxlZnQiOk0uc3R5bGUuYm90dG9tPSIwIixNLnN0eWxlLmxlZnQ9IjAiO2JyZWFrO2Nhc2UidG9wLWNlbnRlciI6TS5zdHlsZS50b3A9IjAiLE0uc3R5bGUubGVmdD0iNTAlIixNLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtNTAlKSI7YnJlYWs7Y2FzZSJib3R0b20tY2VudGVyIjpNLnN0eWxlLmJvdHRvbT0iMCIsTS5zdHlsZS5sZWZ0PSI1MCUiLE0uc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKC01MCUpIjticmVha31kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKE0pLHRoaXMudG9hc3RDb250YWluZXJzLnNldChrLE0pfXJldHVybiB0aGlzLnRvYXN0Q29udGFpbmVycy5nZXQoayl9c3RhdGljIGFzeW5jIHNob3coayl7bGV0IE09dHlwZW9mIGs9PSJzdHJpbmciP3ttZXNzYWdlOmt9OmssTj1uZXcgeTtyZXR1cm4gTi5tZXNzYWdlPU0ubWVzc2FnZSxOLnR5cGU9TS50eXBlfHwiaW5mbyIsTi5kdXJhdGlvbj1NLmR1cmF0aW9ufHwzZTMsdGhpcy5nZXRPckNyZWF0ZUNvbnRhaW5lcihNLnBvc2l0aW9ufHwidG9wLXJpZ2h0IikuYXBwZW5kQ2hpbGQoTiksYXdhaXQgTi51cGRhdGVDb21wbGV0ZSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntOLmlzVmlzaWJsZT0hMH0pLE4uZHVyYXRpb24+MCYmc2V0VGltZW91dCgoKT0+e04uZGlzbWlzcygpfSxOLmR1cmF0aW9uKSxOfXN0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KGspe3JldHVybiB0aGlzLnNob3coayl9c3RhdGljIGluZm8oayxNKXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOmssdHlwZToiaW5mbyIsZHVyYXRpb246TX0pfXN0YXRpYyBzdWNjZXNzKGssTSl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTprLHR5cGU6InN1Y2Nlc3MiLGR1cmF0aW9uOk19KX1zdGF0aWMgd2FybmluZyhrLE0pe3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6ayx0eXBlOiJ3YXJuaW5nIixkdXJhdGlvbjpNfSl9c3RhdGljIGVycm9yKGssTSl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTprLHR5cGU6ImVycm9yIixkdXJhdGlvbjpNfSl9I2U9eDModGhpcyxvLCIiKTtnZXQgbWVzc2FnZSgpe3JldHVybiB0aGlzLiNlfXNldCBtZXNzYWdlKGspe3RoaXMuI2U9a30jdD0oeDModGhpcyxsKSx4Myh0aGlzLGQsImluZm8iKSk7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdHlwZShrKXt0aGlzLiN0PWt9I3I9KHgzKHRoaXMsZikseDModGhpcyxoLDNlMykpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBkdXJhdGlvbihrKXt0aGlzLiNyPWt9I2E9KHgzKHRoaXMsbSkseDModGhpcyxiLCExKSk7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNhfXNldCBpc1Zpc2libGUoayl7dGhpcy4jYT1rfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx4Myh0aGlzLGcpLFphLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SHJ9OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICA6aG9zdChbaXN2aXNpYmxlXSkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICB9CgogICAgICAudG9hc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZiIsIiMyMjIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggJHt4LmJkVGhlbWUoInJnYmEoMCwwLDAsMC4xKSIsInJnYmEoMCwwLDAsMC4zKSIpfTsKICAgICAgICBtaW4td2lkdGg6IDMwMHB4OwogICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAudG9hc3Q6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgIH0KCiAgICAgIC5pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuaWNvbiBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmNsb3NlIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC5jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNsb3NlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLyogVHlwZS1zcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW3R5cGU9ImluZm8iXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjMDA4NGZmOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0ic3VjY2VzcyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICMyMmM1NWU7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJ3YXJuaW5nIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2Y1OWUwYjsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9ImVycm9yIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2VmNDQ0NDsKICAgICAgfQoKICAgICAgLyogUHJvZ3Jlc3MgYmFyICovCiAgICAgIC5wcm9ncmVzcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDsKICAgICAgICBhbmltYXRpb246IHByb2dyZXNzIGxpbmVhciBmb3J3YXJkczsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwcm9ncmVzcyB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgaz17aW5mbzp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTEtMTFhMSAxIDAgMTAtMiAwdjJIN2ExIDEgMCAxMDAgMmgydjJhMSAxIDAgMTAyIDB2LTJoMmExIDEgMCAxMDAtMmgtMlY3eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsc3VjY2Vzczp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTMuNzA3LTkuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDkgMTAuNTg2IDcuNzA3IDkuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDIgMmExIDEgMCAwMDEuNDE0IDBsNC00eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsd2FybmluZzp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTguMjU3IDMuMDk5Yy43NjUtMS4zNiAyLjcyMi0xLjM2IDMuNDg2IDBsNS41OCA5LjkyYy43NSAxLjMzNC0uMjEzIDIuOTgtMS43NDIgMi45OEg0LjQyYy0xLjUzIDAtMi40OTMtMS42NDYtMS43NDMtMi45OGw1LjU4LTkuOTJ6TTExIDEzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLTEtOGExIDEgMCAwMC0xIDF2M2ExIDEgMCAwMDIgMFY2YTEgMSAwIDAwLTEtMXoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLGVycm9yOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNOC43MDcgNy4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRMOC41ODYgMTBsLTEuMjkzIDEuMjkzYTEgMSAwIDEwMS40MTQgMS40MTRMMTAgMTEuNDE0bDEuMjkzIDEuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRMMTEuNDE0IDEwbDEuMjkzLTEuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDEwIDguNTg2IDguNzA3IDcuMjkzeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmB9O3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0b2FzdCIgQGNsaWNrPSR7dGhpcy5kaXNtaXNzfT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uIj4KICAgICAgICAgICR7a1t0aGlzLnR5cGVdfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPiR7dGhpcy5tZXNzYWdlfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNsb3NlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8cGF0aCBkPSJNNC42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAwIDEgMC0uNzA4eiIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIiBzdHlsZT0iYW5pbWF0aW9uLWR1cmF0aW9uOiAke3RoaXMuZHVyYXRpb259bXMiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGRpc21pc3MoKXt0aGlzLmlzVmlzaWJsZT0hMSxhd2FpdCBuZXcgUHJvbWlzZShNPT5zZXRUaW1lb3V0KE0sMzAwKSksdGhpcy5yZW1vdmUoKTtsZXQgaz10aGlzLnBhcmVudEVsZW1lbnQ7aWYoayYmay5jaGlsZHJlbi5sZW5ndGg9PT0wKXtrLnJlbW92ZSgpO2ZvcihsZXRbTSxOXW9mIHkudG9hc3RDb250YWluZXJzLmVudHJpZXMoKSlpZihOPT09ayl7eS50b2FzdENvbnRhaW5lcnMuZGVsZXRlKE0pO2JyZWFrfX19Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZXRBdHRyaWJ1dGUoInR5cGUiLHRoaXMudHlwZSl9c3RhdGlje3gzKGEscil9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBwSnI9dSgoKT0+e0Q3dCgpfSk7dmFyIGZKcj11KCgpPT57VVhyKCk7WlhyKCk7ckpyKCk7bkpyKCk7Y0pyKCk7cEpyKCl9KTt2YXIgaEpyPXUoKCk9PntCeSgpfSk7dmFyIG1Kcj11KCgpPT57dzkoKX0pO3ZhciBnSnI9dSgoKT0+e2hKcigpO21KcigpfSk7dmFyIGJKcj11KCgpPT57Q2koKX0pO3ZhciB4SnI9dSgoKT0+e0U2dCgpfSk7dmFyIHZKcj11KCgpPT57VTZ0KCl9KTt2YXIgeUpyPXUoKCk9PntKNnQoKX0pO3ZhciB3SnI9dSgoKT0+e1c2dCgpfSk7dmFyIGtKcj11KCgpPT57RzZ0KCl9KTt2YXIgU0pyPXUoKCk9PntSNnQoKX0pO3ZhciBNSnI9dSgoKT0+e1dwZSgpfSk7dmFyIENKcj11KCgpPT57QzZlKCl9KTt2YXIgekpyPXUoKCk9Pnt9KTt2YXIgX0pyPXUoKCk9Pnt6SnIoKX0pO3ZhciBUSnI9dSgoKT0+e0s2dCgpfSk7dmFyIExKcj11KCgpPT57UTZ0KCl9KTt2YXIgREpyPXUoKCk9PntNNmUoKTtKOHQoKX0pO3ZhciBJNmUsJEpyPXUoKCk9PntJNmU9Y2xhc3N7c3RhdGlje2kodGhpcywiSW1hZ2VDcm9wcGVyIil9b3B0aW9ucztjYW52YXM7Y3R4O2ltZztvdmVybGF5Q2FudmFzO292ZXJsYXlDdHg7Y3JvcFg9MDtjcm9wWT0wO2Nyb3BTaXplPTIwMDttaW5Dcm9wU2l6ZT01MDtpc0RyYWdnaW5nPSExO2lzUmVzaXppbmc9ITE7ZHJhZ1N0YXJ0WD0wO2RyYWdTdGFydFk9MDtyZXNpemVIYW5kbGU9IiI7aW1hZ2VTY2FsZT0xO2ltYWdlT2Zmc2V0WD0wO2ltYWdlT2Zmc2V0WT0wO2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz17bWluU2l6ZTo1MCxvdXRwdXRTaXplOjgwMCxvdXRwdXRRdWFsaXR5Oi45NSwuLi5lfSx0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLmN0eD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLHRoaXMub3ZlcmxheUNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLm92ZXJsYXlDdHg9dGhpcy5vdmVybGF5Q2FudmFzLmdldENvbnRleHQoIjJkIiksdGhpcy5pbWc9bmV3IEltYWdlfWFzeW5jIGluaXRpYWxpemUoKXthd2FpdCB0aGlzLmxvYWRJbWFnZSgpLHRoaXMuc2V0dXBDYW52YXNlcygpLHRoaXMuc2V0dXBFdmVudExpc3RlbmVycygpLHRoaXMucmVuZGVyKCl9YXN5bmMgbG9hZEltYWdlKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlLHIpPT57dGhpcy5pbWcub25sb2FkPSgpPT5lKCksdGhpcy5pbWcub25lcnJvcj1yLHRoaXMuaW1nLnNyYz10aGlzLm9wdGlvbnMuaW1hZ2V9KX1zZXR1cENhbnZhc2VzKCl7bGV0IGU9dGhpcy5vcHRpb25zLmNvbnRhaW5lcixyPU1hdGgubWluKGUuY2xpZW50V2lkdGgsZS5jbGllbnRIZWlnaHQpO3RoaXMuY2FudmFzLndpZHRoPXIsdGhpcy5jYW52YXMuaGVpZ2h0PXIsdGhpcy5jYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodD0iMTAwJSIsdGhpcy5jYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMuY2FudmFzLnN0eWxlLmxlZnQ9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aD1yLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQ9cix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5sZWZ0PSIwIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPSJtb3ZlIixlLmFwcGVuZENoaWxkKHRoaXMuY2FudmFzKSxlLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUNhbnZhcyk7bGV0IGE9TWF0aC5taW4oci90aGlzLmltZy53aWR0aCxyL3RoaXMuaW1nLmhlaWdodCk7dGhpcy5pbWFnZVNjYWxlPWEsdGhpcy5pbWFnZU9mZnNldFg9KHItdGhpcy5pbWcud2lkdGgqYSkvMix0aGlzLmltYWdlT2Zmc2V0WT0oci10aGlzLmltZy5oZWlnaHQqYSkvMjtsZXQgcz10aGlzLmltZy53aWR0aCphLG49dGhpcy5pbWcuaGVpZ2h0KmEsbz1NYXRoLm1pbihzLG4sciouOCk7dGhpcy5jcm9wU2l6ZT1vKi44LHRoaXMuY3JvcFg9KHItdGhpcy5jcm9wU2l6ZSkvMix0aGlzLmNyb3BZPShyLXRoaXMuY3JvcFNpemUpLzJ9c2V0dXBFdmVudExpc3RlbmVycygpe3RoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuaGFuZGxlTW91c2VEb3duLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXAuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuaGFuZGxlTW91c2VVcC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5oYW5kbGVUb3VjaFN0YXJ0LmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuaGFuZGxlVG91Y2hNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5oYW5kbGVUb3VjaEVuZC5iaW5kKHRoaXMpKX1oYW5kbGVNb3VzZURvd24oZSl7bGV0IHI9dGhpcy5vdmVybGF5Q2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9KGUuY2xpZW50WC1yLmxlZnQpKih0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgvci53aWR0aCkscz0oZS5jbGllbnRZLXIudG9wKSoodGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodC9yLmhlaWdodCksbj10aGlzLmdldFJlc2l6ZUhhbmRsZShhLHMpO24/KHRoaXMuaXNSZXNpemluZz0hMCx0aGlzLnJlc2l6ZUhhbmRsZT1uKTp0aGlzLmlzSW5zaWRlQ3JvcEFyZWEoYSxzKSYmKHRoaXMuaXNEcmFnZ2luZz0hMCksdGhpcy5kcmFnU3RhcnRYPWEsdGhpcy5kcmFnU3RhcnRZPXN9aGFuZGxlTW91c2VNb3ZlKGUpe2xldCByPXRoaXMub3ZlcmxheUNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPShlLmNsaWVudFgtci5sZWZ0KSoodGhpcy5vdmVybGF5Q2FudmFzLndpZHRoL3Iud2lkdGgpLHM9KGUuY2xpZW50WS1yLnRvcCkqKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQvci5oZWlnaHQpLG49dGhpcy5nZXRSZXNpemVIYW5kbGUoYSxzKTtpZihuP3RoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9dGhpcy5nZXRSZXNpemVDdXJzb3Iobik6dGhpcy5pc0luc2lkZUNyb3BBcmVhKGEscyk/dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0ibW92ZSI6dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0iZGVmYXVsdCIsdGhpcy5pc0RyYWdnaW5nKXtsZXQgbz1hLXRoaXMuZHJhZ1N0YXJ0WCxsPXMtdGhpcy5kcmFnU3RhcnRZLGM9dGhpcy5pbWFnZU9mZnNldFgsZD10aGlzLmltYWdlT2Zmc2V0WCt0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUtdGhpcy5jcm9wU2l6ZSxmPXRoaXMuaW1hZ2VPZmZzZXRZLHA9dGhpcy5pbWFnZU9mZnNldFkrdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZS10aGlzLmNyb3BTaXplO3RoaXMuY3JvcFg9TWF0aC5tYXgoYyxNYXRoLm1pbihkLHRoaXMuY3JvcFgrbykpLHRoaXMuY3JvcFk9TWF0aC5tYXgoZixNYXRoLm1pbihwLHRoaXMuY3JvcFkrbCkpLHRoaXMuZHJhZ1N0YXJ0WD1hLHRoaXMuZHJhZ1N0YXJ0WT1zLHRoaXMucmVuZGVyKCl9dGhpcy5pc1Jlc2l6aW5nJiYodGhpcy5oYW5kbGVSZXNpemUoYSxzKSx0aGlzLmRyYWdTdGFydFg9YSx0aGlzLmRyYWdTdGFydFk9cyx0aGlzLnJlbmRlcigpKX1oYW5kbGVNb3VzZVVwKCl7dGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuaXNSZXNpemluZz0hMSx0aGlzLnJlc2l6ZUhhbmRsZT0iIn1oYW5kbGVUb3VjaFN0YXJ0KGUpe2UucHJldmVudERlZmF1bHQoKTtsZXQgcj1lLnRvdWNoZXNbMF0sYT1uZXcgTW91c2VFdmVudCgibW91c2Vkb3duIix7Y2xpZW50WDpyLmNsaWVudFgsY2xpZW50WTpyLmNsaWVudFl9KTt0aGlzLmhhbmRsZU1vdXNlRG93bihhKX1oYW5kbGVUb3VjaE1vdmUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCByPWUudG91Y2hlc1swXSxhPW5ldyBNb3VzZUV2ZW50KCJtb3VzZW1vdmUiLHtjbGllbnRYOnIuY2xpZW50WCxjbGllbnRZOnIuY2xpZW50WX0pO3RoaXMuaGFuZGxlTW91c2VNb3ZlKGEpfWhhbmRsZVRvdWNoRW5kKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1vdXNlVXAoKX1nZXRSZXNpemVIYW5kbGUoZSxyKXtsZXQgcz17bnc6e3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFl9LG5lOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFl9LHN3Ont4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9LHNlOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX19O2ZvcihsZXRbbixvXW9mIE9iamVjdC5lbnRyaWVzKHMpKWlmKE1hdGguYWJzKGUtby54KTwyMCYmTWF0aC5hYnMoci1vLnkpPDIwKXJldHVybiBuO3JldHVybiIifWdldFJlc2l6ZUN1cnNvcihlKXtyZXR1cm57bnc6Im53LXJlc2l6ZSIsbmU6Im5lLXJlc2l6ZSIsc3c6InN3LXJlc2l6ZSIsc2U6InNlLXJlc2l6ZSJ9W2VdfHwiZGVmYXVsdCJ9aXNJbnNpZGVDcm9wQXJlYShlLHIpe3JldHVybiBlPj10aGlzLmNyb3BYJiZlPD10aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUmJnI+PXRoaXMuY3JvcFkmJnI8PXRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX1oYW5kbGVSZXNpemUoZSxyKXtsZXQgYT1lLXRoaXMuZHJhZ1N0YXJ0WCxzPXItdGhpcy5kcmFnU3RhcnRZLG49dGhpcy5pbWFnZU9mZnNldFgsbz10aGlzLmltYWdlT2Zmc2V0WSxsPXRoaXMuaW1hZ2VPZmZzZXRYK3RoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSxjPXRoaXMuaW1hZ2VPZmZzZXRZK3RoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGU7c3dpdGNoKHRoaXMucmVzaXplSGFuZGxlKXtjYXNlInNlIjp0aGlzLmNyb3BTaXplPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsTWF0aC5taW4odGhpcy5jcm9wU2l6ZStNYXRoLm1heChhLHMpLE1hdGgubWluKGwtdGhpcy5jcm9wWCxjLXRoaXMuY3JvcFkpKSk7YnJlYWs7Y2FzZSJudyI6bGV0IGQ9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplLU1hdGgubWF4KGEscykpLGY9dGhpcy5jcm9wU2l6ZS1kLHA9dGhpcy5jcm9wWCtmLGg9dGhpcy5jcm9wWStmO3A+PW4mJmg+PW8mJih0aGlzLmNyb3BYPXAsdGhpcy5jcm9wWT1oLHRoaXMuY3JvcFNpemU9ZCk7YnJlYWs7Y2FzZSJuZSI6bGV0IG09TWF0aC5tYXgoYSwtcyksdj1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUrbSksYj12LXRoaXMuY3JvcFNpemUsZz10aGlzLmNyb3BZLWI7Zz49byYmdGhpcy5jcm9wWCt2PD1sJiYodGhpcy5jcm9wWT1nLHRoaXMuY3JvcFNpemU9dik7YnJlYWs7Y2FzZSJzdyI6bGV0IHk9TWF0aC5tYXgoLWEscyksaz1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUreSksTT1rLXRoaXMuY3JvcFNpemUsTj10aGlzLmNyb3BYLU07Tj49biYmdGhpcy5jcm9wWStrPD1jJiYodGhpcy5jcm9wWD1OLHRoaXMuY3JvcFNpemU9ayk7YnJlYWt9fXJlbmRlcigpe3RoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5jdHguZmlsbFN0eWxlPSIjMDAwMDAwIix0aGlzLmN0eC5maWxsUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5pbWcsdGhpcy5pbWFnZU9mZnNldFgsdGhpcy5pbWFnZU9mZnNldFksdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLHRoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUpLHRoaXMub3ZlcmxheUN0eC5maWxsU3R5bGU9InJnYmEoMCwgMCwgMCwgMC41KSIsdGhpcy5vdmVybGF5Q3R4LmZpbGxSZWN0KHRoaXMuaW1hZ2VPZmZzZXRYLHRoaXMuaW1hZ2VPZmZzZXRZLHRoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSx0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlKSx0aGlzLm92ZXJsYXlDdHguc2F2ZSgpLHRoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCI/KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKHRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFNpemUvMiwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LmNsaXAoKSk6KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHgucmVjdCh0aGlzLmNyb3BYLHRoaXMuY3JvcFksdGhpcy5jcm9wU2l6ZSx0aGlzLmNyb3BTaXplKSx0aGlzLm92ZXJsYXlDdHguY2xpcCgpKSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5vdmVybGF5Q3R4LnJlc3RvcmUoKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlU3R5bGU9IndoaXRlIix0aGlzLm92ZXJsYXlDdHgubGluZVdpZHRoPTIsdGhpcy5vcHRpb25zLnNoYXBlPT09InJvdW5kIj8odGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmModGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wU2l6ZS8yLDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlKCkpOnRoaXMub3ZlcmxheUN0eC5zdHJva2VSZWN0KHRoaXMuY3JvcFgsdGhpcy5jcm9wWSx0aGlzLmNyb3BTaXplLHRoaXMuY3JvcFNpemUpLHRoaXMuZHJhd1Jlc2l6ZUhhbmRsZXMoKX1kcmF3UmVzaXplSGFuZGxlcygpe2xldCByPVt7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfV07dGhpcy5vdmVybGF5Q3R4LmZpbGxTdHlsZT0id2hpdGUiLHIuZm9yRWFjaChhPT57dGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmMoYS54LGEueSw4LDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguZmlsbCgpfSl9YXN5bmMgZ2V0Q3JvcHBlZEltYWdlKCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikscj1lLmdldENvbnRleHQoIjJkIiksYT0xL3RoaXMuaW1hZ2VTY2FsZSxzPXRoaXMuY3JvcFNpemUqYSxuPXRoaXMub3B0aW9ucy5vdXRwdXRTaXplO24+cyYmY29uc29sZS5pbmZvKGBQcm9maWxlIHBpY3R1cmU6IFVwc2NhbGluZyBmcm9tICR7TWF0aC5yb3VuZChzKX1weCB0byAke259cHhgKSxlLndpZHRoPW4sZS5oZWlnaHQ9bjtsZXQgbz0odGhpcy5jcm9wWC10aGlzLmltYWdlT2Zmc2V0WCkqYSxsPSh0aGlzLmNyb3BZLXRoaXMuaW1hZ2VPZmZzZXRZKSphLGM9dGhpcy5jcm9wU2l6ZSphO3RoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCImJihyLmJlZ2luUGF0aCgpLHIuYXJjKG4vMixuLzIsbi8yLDAsTWF0aC5QSSoyKSxyLmNsaXAoKSksci5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsci5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLHIuZHJhd0ltYWdlKHRoaXMuaW1nLG8sbCxjLGMsMCwwLG4sbik7bGV0IGY9dGhpcy5vcHRpb25zLmltYWdlLmluY2x1ZGVzKCJpbWFnZS9wbmciKT8iaW1hZ2UvcG5nIjoiaW1hZ2UvanBlZyI7cmV0dXJuIGUudG9EYXRhVVJMKGYsdGhpcy5vcHRpb25zLm91dHB1dFF1YWxpdHkpfWRlc3Ryb3koKXt0aGlzLmNhbnZhcy5yZW1vdmUoKSx0aGlzLm92ZXJsYXlDYW52YXMucmVtb3ZlKCl9fX0pO3ZhciBoZixRbywkN3QsQUpyPXUoKCk9Pnt2ZSgpO2ZjKCk7X3MoKTtPbygpO0tyKCk7ZzkoKTtuYygpO25jKCk7JEpyKCk7bHQoKTtoZj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sUW89ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LCQ3dD0oKCk9PntsZXQgdD1bdWUoImRlZXMtcHJvZmlsZXBpY3R1cmUtbW9kYWwiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiUHJvZmlsZVBpY3R1cmVNb2RhbCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6TnVtYmVyfSldLHY9W1Aoe3R5cGU6TnVtYmVyfSldLHk9W2llKCldLE49W2llKCldLE89W2llKCldLGhmKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpbml0aWFsSW1hZ2UiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pbml0aWFsSW1hZ2UsImdldCIpLHNldDppKCh6LEEpPT57ei5pbml0aWFsSW1hZ2U9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLGhmKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hhcGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InNoYXBlImluIHosImhhcyIpLGdldDppKHo9Pnouc2hhcGUsImdldCIpLHNldDppKCh6LEEpPT57ei5zaGFwZT1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsZiksaGYodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJvdXRwdXRTaXplImluIHosImhhcyIpLGdldDppKHo9Pnoub3V0cHV0U2l6ZSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6Lm91dHB1dFNpemU9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLGhmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0UXVhbGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ib3V0cHV0UXVhbGl0eSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm91dHB1dFF1YWxpdHksImdldCIpLHNldDppKCh6LEEpPT57ei5vdXRwdXRRdWFsaXR5PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sYixnKSxoZih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTdGVwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjdXJyZW50U3RlcCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmN1cnJlbnRTdGVwLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouY3VycmVudFN0ZXA9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLGhmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JvcHBlZEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjcm9wcGVkSW1hZ2UiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jcm9wcGVkSW1hZ2UsImdldCIpLHNldDppKCh6LEEpPT57ei5jcm9wcGVkSW1hZ2U9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxfLFMpLGhmKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcm9jZXNzaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpc1Byb2Nlc3NpbmciaW4geiwiaGFzIiksZ2V0Omkoej0+ei5pc1Byb2Nlc3NpbmcsImdldCIpLHNldDppKCh6LEEpPT57ei5pc1Byb2Nlc3Npbmc9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxMLEUpLGhmKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsciksQj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9I2U9UW8odGhpcyxvLCIiKTtnZXQgaW5pdGlhbEltYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGluaXRpYWxJbWFnZShDKXt0aGlzLiNlPUN9I3Q9KFFvKHRoaXMsbCksUW8odGhpcyxkLCJyb3VuZCIpKTtnZXQgc2hhcGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hhcGUoQyl7dGhpcy4jdD1DfSNyPShRbyh0aGlzLGYpLFFvKHRoaXMsaCw4MDApKTtnZXQgb3V0cHV0U2l6ZSgpe3JldHVybiB0aGlzLiNyfXNldCBvdXRwdXRTaXplKEMpe3RoaXMuI3I9Q30jYT0oUW8odGhpcyxtKSxRbyh0aGlzLGIsLjk1KSk7Z2V0IG91dHB1dFF1YWxpdHkoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb3V0cHV0UXVhbGl0eShDKXt0aGlzLiNhPUN9I2k9KFFvKHRoaXMsZyksUW8odGhpcyxrLCJjcm9wIikpO2dldCBjdXJyZW50U3RlcCgpe3JldHVybiB0aGlzLiNpfXNldCBjdXJyZW50U3RlcChDKXt0aGlzLiNpPUN9I3M9KFFvKHRoaXMsTSksUW8odGhpcyxfLCIiKSk7Z2V0IGNyb3BwZWRJbWFnZSgpe3JldHVybiB0aGlzLiNzfXNldCBjcm9wcGVkSW1hZ2UoQyl7dGhpcy4jcz1DfSNuPShRbyh0aGlzLFMpLFFvKHRoaXMsTCwhMSkpO2dldCBpc1Byb2Nlc3NpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaXNQcm9jZXNzaW5nKEMpe3RoaXMuI249Q31jcm9wcGVyPShRbyh0aGlzLEUpLG51bGwpO3dpbmRvd0xheWVyO3pJbmRleD0wO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpOwogICAgICB9CgogICAgICAubW9kYWwtY29udGFpbmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwYTBhMGEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDEwcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkiLCIwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgd2lkdGg6IDQ4MHB4OwogICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZSgwLjk4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGFuaW1hdGlvbjogbW9kYWxTaG93IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgbW9kYWxTaG93IHsKICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgc2NhbGUoMSk7CiAgICAgICAgfQogICAgICB9CgogICAgICAubW9kYWwtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDUycHg7CiAgICAgICAgcGFkZGluZzogMCAyMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1vZGFsLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbC1ib2R5IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5jcm9wcGVyLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDsKICAgICAgICBhc3BlY3QtcmF0aW86IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoImluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDYpIiwiaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWltYWdlIHsKICAgICAgICB3aWR0aDogMTgwcHg7CiAgICAgICAgaGVpZ2h0OiAxODBweDsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpIiwiMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2Uucm91bmQgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2Uuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICB9CgogICAgICAuc3VjY2Vzcy1tZXNzYWdlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzEwYjk4MSIsIiMxMGI5ODEiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGFuaW1hdGlvbjogc3VjY2Vzc1B1bHNlIDAuNHMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3VjY2Vzc1B1bHNlIHsKICAgICAgICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC45KTsgb3BhY2l0eTogMDsgfQogICAgICAgIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wMik7IH0KICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfQogICAgICB9CgogICAgICAubW9kYWwtZm9vdGVyIHsKICAgICAgICBwYWRkaW5nOiAyMHB4IDI0cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAuaW5zdHJ1Y3Rpb25zIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBtYXgtd2lkdGg6IDMyMHB4OwogICAgICB9CgogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjZzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7CiAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgICAgbWFyZ2luOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubW9kYWwtYm9keSB7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIH0KICAgICAgfQogICAgYF07YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMud2luZG93TGF5ZXI9YXdhaXQgeW4uY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT50aGlzLmNsb3NlKCkpLHRoaXMuekluZGV4PXlyLmdldE5leHRaSW5kZXgoKSx0aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLXotaW5kZXgiLHRoaXMuekluZGV4LnRvU3RyaW5nKCkpLHlyLnJlZ2lzdGVyKHRoaXMsdGhpcy56SW5kZXgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNyb3BwZXImJnRoaXMuY3JvcHBlci5kZXN0cm95KCksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCkseXIudW5yZWdpc3Rlcih0aGlzKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGFpbmVyIiBAY2xpY2s9JHtDPT5DLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPgogICAgICAgICAgPGgzIGNsYXNzPSJtb2RhbC10aXRsZSI+CiAgICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj8iQWRqdXN0IEltYWdlIjoiU3VjY2VzcyJ9CiAgICAgICAgICA8L2gzPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY2xvc2UtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmNsb3NlfSB0aXRsZT0iQ2xvc2UiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj4KICAgICAgICAgICAgICBQb3NpdGlvbiBhbmQgcmVzaXplIHRoZSBzcXVhcmUgdG8gc2VsZWN0IHlvdXIgcHJvZmlsZSBhcmVhCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcm9wcGVyLWNvbnRhaW5lciIgaWQ9ImNyb3BwZXJDb250YWluZXIiPjwvZGl2PgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgJHt0aGlzLmlzUHJvY2Vzc2luZz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imluc3RydWN0aW9ucyI+U2F2aW5nLi4uPC9kaXY+CiAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgPGltZyAKICAgICAgICAgICAgICAgICAgY2xhc3M9InByZXZpZXctaW1hZ2UgJHt0aGlzLnNoYXBlfSIgCiAgICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLmNyb3BwZWRJbWFnZX0iIAogICAgICAgICAgICAgICAgICBhbHQ9IkNyb3BwZWQgcHJldmlldyIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWNjZXNzLW1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpjaGVjayIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+TG9va2luZyBnb29kITwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPgogICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiP3dgCiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iIEBjbGljaz0ke3RoaXMuY2xvc2V9PgogICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ3JvcH0+CiAgICAgICAgICAgICAgU2F2ZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCImJmF3YWl0IHRoaXMuaW5pdGlhbGl6ZUNyb3BwZXIoKX1hc3luYyBpbml0aWFsaXplQ3JvcHBlcigpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IEM9dGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjcm9wcGVyQ29udGFpbmVyIik7QyYmKHRoaXMuY3JvcHBlcj1uZXcgSTZlKHtjb250YWluZXI6QyxpbWFnZTp0aGlzLmluaXRpYWxJbWFnZSxzaGFwZTp0aGlzLnNoYXBlLGFzcGVjdFJhdGlvOjEsb3V0cHV0U2l6ZTp0aGlzLm91dHB1dFNpemUsb3V0cHV0UXVhbGl0eTp0aGlzLm91dHB1dFF1YWxpdHl9KSxhd2FpdCB0aGlzLmNyb3BwZXIuaW5pdGlhbGl6ZSgpKX1hc3luYyBoYW5kbGVDcm9wKCl7aWYodGhpcy5jcm9wcGVyKXRyeXt0aGlzLmlzUHJvY2Vzc2luZz0hMCx0aGlzLmN1cnJlbnRTdGVwPSJwcmV2aWV3Iixhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBDPWF3YWl0IHRoaXMuY3JvcHBlci5nZXRDcm9wcGVkSW1hZ2UoKTt0aGlzLmNyb3BwZWRJbWFnZT1DLGF3YWl0IG5ldyBQcm9taXNlKHo9PnNldFRpbWVvdXQoeiw4MDApKSx0aGlzLmlzUHJvY2Vzc2luZz0hMSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzYXZlIix7ZGV0YWlsOntjcm9wcGVkSW1hZ2U6dGhpcy5jcm9wcGVkSW1hZ2V9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksc2V0VGltZW91dCgoKT0+e3RoaXMuY2xvc2UoKX0sMTUwMCl9Y2F0Y2goQyl7Y29uc29sZS5lcnJvcigiRXJyb3IgY3JvcHBpbmcgaW1hZ2U6IixDKSx0aGlzLmlzUHJvY2Vzc2luZz0hMX19Y2xvc2UoKXt0aGlzLnJlbW92ZSgpfXN0YXRpY3tRbyhhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgRUpyLElKcj11KCgpPT57dmUoKTt3YSgpO3duKCk7QTd0KCk7RUpyPWkoKCk9PndgCiAgPHN0eWxlPgogICAgJHtyZWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDQ4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuZmVhdHVyZS1saXN0IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgICAgfQogICAgICAKICAgICAgLmZlYXR1cmUtbGlzdCBsaSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZVtzaGFwZT0icm91bmQiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwocj0+e2xldCBhPXIudGFyZ2V0O2NvbnNvbGUubG9nKCJSb3VuZCBwcm9maWxlIHBpY3R1cmUgY2hhbmdlZDoiLGEudmFsdWU/LnN1YnN0cmluZygwLDUwKSsiLi4uIil9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlByb2ZpbGUgUGljdHVyZSBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJCYXNpYyB1c2FnZSB3aXRoIHJvdW5kIGFuZCBzcXVhcmUgc2hhcGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlByb2ZpbGUgUGljdHVyZSAoUm91bmQpIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2xpY2sgdG8gdXBsb2FkIG9yIGRyYWcgJiBkcm9wIGFuIGltYWdlIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIHNpemU9IjEyMCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJQcm9maWxlIFBpY3R1cmUgKFNxdWFyZSkiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdXBwb3J0cyBKUEVHLCBQTkcsIGFuZCBXZWJQIGZvcm1hdHMiCiAgICAgICAgICAgIHNoYXBlPSJzcXVhcmUiCiAgICAgICAgICAgIHNpemU9IjEyMCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChhPT57bGV0IHM9YS50YXJnZXQ7Y29uc29sZS5sb2coYFByb2ZpbGUgKHNpemUgJHtzLnNpemV9KSBjaGFuZ2VkYCl9KSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2l6ZSBWYXJpYXRpb25zIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZXMgaW4gZGlmZmVyZW50IHNpemVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlNtYWxsICg4MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSI4MCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJNZWRpdW0gKDEyMHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iTGFyZ2UgKDE2MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxNjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4WkdWbWN6NEtJQ0FnSUR4c2FXNWxZWEpIY21Ga2FXVnVkQ0JwWkQwaVozSmhaR2xsYm5RaUlIZ3hQU0l3SlNJZ2VURTlJakFsSWlCNE1qMGlNVEF3SlNJZ2VUSTlJakV3TUNVaVBnb2dJQ0FnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakFsSWlCemRHOXdMV052Ykc5eVBTSWpOalkzWldWaElpQXZQZ29nSUNBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlNM05qUmlZVElpSUM4K0NpQWdJQ0E4TDJ4cGJtVmhja2R5WVdScFpXNTBQZ29nSUR3dlpHVm1jejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdabWxzYkQwaWRYSnNLQ05uY21Ga2FXVnVkQ2tpSUM4K0NpQWdQSFJsZUhRZ2VEMGlOVEFsSWlCNVBTSTFNQ1VpSUdSdmJXbHVZVzUwTFdKaGMyVnNhVzVsUFNKdGFXUmtiR1VpSUhSbGVIUXRZVzVqYUc5eVBTSnRhV1JrYkdVaUlHWnZiblF0Wm1GdGFXeDVQU0pCY21saGJDSWdabTl1ZEMxemFYcGxQU0k0TUNJZ1ptbHNiRDBpZDJocGRHVWlQa3BFUEM5MFpYaDBQZ284TDNOMlp6ND0iLHI9dC5xdWVyeVNlbGVjdG9yKCIjcHJlZmlsbGVkLXByb2ZpbGUiKTtyJiYoci52YWx1ZT1lLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoYT0+e2xldCBzPWEudGFyZ2V0LG49dC5xdWVyeVNlbGVjdG9yKCIjcHJlZmlsbGVkLW91dHB1dCIpO24mJihuLnRleHRDb250ZW50PXMudmFsdWU/YEltYWdlIGRhdGE6ICR7cy52YWx1ZS5zdWJzdHJpbmcoMCw4MCl9Li4uYDoiTm8gaW1hZ2Ugc2VsZWN0ZWQiKX0pKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlByZS1maWxsZWQgYW5kIFZhbHVlIEJpbmRpbmcifSAuc3VidGl0bGU9JHsiUHJvZmlsZSBwaWN0dXJlIHdpdGggaW5pdGlhbCB2YWx1ZSBhbmQgY2hhbmdlIHRyYWNraW5nIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgIGlkPSJwcmVmaWxsZWQtcHJvZmlsZSIKICAgICAgICAgIGxhYmVsPSJFZGl0IEV4aXN0aW5nIFByb2ZpbGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2xpY2sgdGhlIGVkaXQgYnV0dG9uIHRvIGNoYW5nZSBvciBkZWxldGUgdG8gcmVtb3ZlIgogICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgc2l6ZT0iMTUwIgogICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0icHJlZmlsbGVkLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0Ij4KICAgICAgICAgIEltYWdlIGRhdGEgd2lsbCBhcHBlYXIgaGVyZSB3aGVuIGNoYW5nZWQKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoIiNkaXNhYmxlZC1wcm9maWxlIik7ZSYmKGUudmFsdWU9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBd0lpQm9aV2xuYUhROUlqSXdNQ0lnWm1sc2JEMGlJMk5qWTJOall5SWdMejRLSUNBOGRHVjRkQ0I0UFNJMU1DVWlJSGs5SWpVd0pTSWdaRzl0YVc1aGJuUXRZbUZ6Wld4cGJtVTlJbTFwWkdSc1pTSWdkR1Y0ZEMxaGJtTm9iM0k5SW0xcFpHUnNaU0lnWm05dWRDMW1ZVzFwYkhrOUlrRnlhV0ZzSWlCbWIyNTBMWE5wZW1VOUlqWXdJaUJtYVd4c1BTSjNhR2wwWlNJK1RrRThMM1JsZUhRK0Nqd3ZjM1puUGc9PSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJSZXF1aXJlZCBGaWVsZCIKICAgICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBpZD0iZGlzYWJsZWQtcHJvZmlsZSIKICAgICAgICAgICAgbGFiZWw9IkRpc2FibGVkIFN0YXRlIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2Fubm90IGJlIGVkaXRlZCIKICAgICAgICAgICAgc2hhcGU9InNxdWFyZSIKICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iVXBsb2FkIE9ubHkiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJEZWxldGUgbm90IGFsbG93ZWQiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgLmFsbG93RGVsZXRlPSR7ITF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlcyJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmZWF0dXJlIHNldCBvZiB0aGUgcHJvZmlsZSBwaWN0dXJlIGlucHV0In0+CiAgICAgICAgPHVsIGNsYXNzPSJmZWF0dXJlLWxpc3QiPgogICAgICAgICAgPGxpPjxzdHJvbmc+SW1hZ2UgVXBsb2FkOjwvc3Ryb25nPiBDbGljayB0byB1cGxvYWQgb3IgZHJhZyAmIGRyb3AgaW1hZ2VzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkltYWdlIENyb3BwaW5nOjwvc3Ryb25nPiBJbnRlcmFjdGl2ZSBjcm9wIHRvb2wgd2l0aCByZXNpemUgaGFuZGxlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5TaGFwZSBTdXBwb3J0Ojwvc3Ryb25nPiBSb3VuZCBvciBzcXVhcmUgcHJvZmlsZSBwaWN0dXJlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5TaXplIEN1c3RvbWl6YXRpb246PC9zdHJvbmc+IEFkanVzdGFibGUgZGltZW5zaW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5QcmV2aWV3ICYgRWRpdDo8L3N0cm9uZz4gSG92ZXIgb3ZlcmxheSB3aXRoIGVkaXQgYW5kIGRlbGV0ZSBvcHRpb25zPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkZpbGUgVmFsaWRhdGlvbjo8L3N0cm9uZz4gRm9ybWF0IGFuZCBzaXplIHJlc3RyaWN0aW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5SZXNwb25zaXZlIERlc2lnbjo8L3N0cm9uZz4gV29ya3Mgb24gZGVza3RvcCBhbmQgbW9iaWxlIGRldmljZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+Rm9ybSBJbnRlZ3JhdGlvbjo8L3N0cm9uZz4gU3RhbmRhcmQgZm9ybSB2YWx1ZSBiaW5kaW5nIGFuZCB2YWxpZGF0aW9uPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkFjY2Vzc2liaWxpdHk6PC9zdHJvbmc+IEtleWJvYXJkIG5hdmlnYXRpb24gYW5kIHNjcmVlbiByZWFkZXIgc3VwcG9ydDwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5aLUluZGV4IE1hbmFnZW1lbnQ6PC9zdHJvbmc+IFByb3BlciBtb2RhbCBzdGFja2luZyB3aXRoIHJlZ2lzdHJ5PC9saT4KICAgICAgICA8L3VsPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDI0cHg7Ij4KICAgICAgICAgIDxzdHJvbmc+U3VwcG9ydGVkIEZvcm1hdHM6PC9zdHJvbmc+IEpQRUcsIFBORywgV2ViUDxicj4KICAgICAgICAgIDxzdHJvbmc+TWF4IEZpbGUgU2l6ZTo8L3N0cm9uZz4gNU1CIChjb25maWd1cmFibGUpPGJyPgogICAgICAgICAgPHN0cm9uZz5PdXRwdXQgRm9ybWF0Ojwvc3Ryb25nPiBCYXNlNjQgZW5jb2RlZCBKUEVHCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBOMSxKYSxQSnIsQTd0PXUoKCk9Pnt2ZSgpO0NpKCk7S3IoKTtPeSgpO0FKcigpO0lKcigpO2x0KCk7TjE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LEphPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxQSnI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlIildLGUscj1bXSxhLHM9RXQsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdLGZlLFQ9W10sVz1bXSxwZSxtZT1bXSxxPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW5wdXRQcm9maWxlUGljdHVyZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBVPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6TnVtYmVyfSldLHY9W1Aoe3R5cGU6U3RyaW5nfSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0sTz1bUCh7dHlwZTpOdW1iZXJ9KV0sQj1bUCh7dHlwZTpBcnJheX0pXSxBPVtQKHt0eXBlOk51bWJlcn0pXSxZPVtQKHt0eXBlOk51bWJlcn0pXSxkZT1baWUoKV0sZmU9W2llKCldLHBlPVtpZSgpXSxOMSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJ2YWx1ZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnZhbHVlLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLnZhbHVlPWFlfSwic2V0Iil9LG1ldGFkYXRhOlV9LG8sbCksTjEodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaGFwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2hhcGUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5zaGFwZSwiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5zaGFwZT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxkLGYpLE4xKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ic2l6ZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLnNpemUsImdldCIpLHNldDppKChqLGFlKT0+e2ouc2l6ZT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxoLG0pLE4xKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+InBsYWNlaG9sZGVyImluIGosImhhcyIpLGdldDppKGo9PmoucGxhY2Vob2xkZXIsImdldCIpLHNldDppKChqLGFlKT0+e2oucGxhY2Vob2xkZXI9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sYixnKSxOMSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93VXBsb2FkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGo9PiJhbGxvd1VwbG9hZCJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmFsbG93VXBsb2FkLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmFsbG93VXBsb2FkPWFlfSwic2V0Iil9LG1ldGFkYXRhOlV9LGssTSksTjEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd0RlbGV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iYWxsb3dEZWxldGUiaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5hbGxvd0RlbGV0ZSwiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5hbGxvd0RlbGV0ZT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxfLFMpLE4xKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RmlsZVNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+Im1heEZpbGVTaXplImluIGosImhhcyIpLGdldDppKGo9PmoubWF4RmlsZVNpemUsImdldCIpLHNldDppKChqLGFlKT0+e2oubWF4RmlsZVNpemU9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sTCxFKSxOMSh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjY2VwdGVkRm9ybWF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iYWNjZXB0ZWRGb3JtYXRzImluIGosImhhcyIpLGdldDppKGo9PmouYWNjZXB0ZWRGb3JtYXRzLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmFjY2VwdGVkRm9ybWF0cz1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxDLHopLE4xKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ib3V0cHV0U2l6ZSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm91dHB1dFNpemUsImdldCIpLHNldDppKChqLGFlKT0+e2oub3V0cHV0U2l6ZT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSwkLEYpLE4xKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0UXVhbGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4ib3V0cHV0UXVhbGl0eSJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLm91dHB1dFF1YWxpdHksImdldCIpLHNldDppKChqLGFlKT0+e2oub3V0cHV0UXVhbGl0eT1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxHLFopLE4xKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSG92ZXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShqPT4iaXNIb3ZlcmVkImluIGosImhhcyIpLGdldDppKGo9PmouaXNIb3ZlcmVkLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmlzSG92ZXJlZD1hZX0sInNldCIpfSxtZXRhZGF0YTpVfSxELFEpLE4xKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImlzRHJhZ2dpbmciaW4gaiwiaGFzIiksZ2V0Omkoaj0+ai5pc0RyYWdnaW5nLCJnZXQiKSxzZXQ6aSgoaixhZSk9PntqLmlzRHJhZ2dpbmc9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sVCxXKSxOMSh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaj0+ImlzTG9hZGluZyJpbiBqLCJoYXMiKSxnZXQ6aShqPT5qLmlzTG9hZGluZywiZ2V0Iiksc2V0OmkoKGosYWUpPT57ai5pc0xvYWRpbmc9YWV9LCJzZXQiKX0sbWV0YWRhdGE6VX0sbWUscSksTjEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6VX0sbnVsbCxyKSxIPWE9ZS52YWx1ZSxVJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlV9KX1zdGF0aWMgZGVtbz1FSnI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUphKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFUpe3RoaXMuI2U9VX0jdD0oSmEodGhpcyxsKSxKYSh0aGlzLGQsInJvdW5kIikpO2dldCBzaGFwZSgpe3JldHVybiB0aGlzLiN0fXNldCBzaGFwZShVKXt0aGlzLiN0PVV9I3I9KEphKHRoaXMsZiksSmEodGhpcyxoLDEyMCkpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNpemUoVSl7dGhpcy4jcj1VfSNhPShKYSh0aGlzLG0pLEphKHRoaXMsYiwiIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNhfXNldCBwbGFjZWhvbGRlcihVKXt0aGlzLiNhPVV9I2k9KEphKHRoaXMsZyksSmEodGhpcyxrLCEwKSk7Z2V0IGFsbG93VXBsb2FkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFsbG93VXBsb2FkKFUpe3RoaXMuI2k9VX0jcz0oSmEodGhpcyxNKSxKYSh0aGlzLF8sITApKTtnZXQgYWxsb3dEZWxldGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgYWxsb3dEZWxldGUoVSl7dGhpcy4jcz1VfSNuPShKYSh0aGlzLFMpLEphKHRoaXMsTCw1KjEwMjQqMTAyNCkpO2dldCBtYXhGaWxlU2l6ZSgpe3JldHVybiB0aGlzLiNufXNldCBtYXhGaWxlU2l6ZShVKXt0aGlzLiNuPVV9I289KEphKHRoaXMsRSksSmEodGhpcyxDLFsiaW1hZ2UvanBlZyIsImltYWdlL3BuZyIsImltYWdlL3dlYnAiXSkpO2dldCBhY2NlcHRlZEZvcm1hdHMoKXtyZXR1cm4gdGhpcy4jb31zZXQgYWNjZXB0ZWRGb3JtYXRzKFUpe3RoaXMuI289VX0jbD0oSmEodGhpcyx6KSxKYSh0aGlzLCQsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb3V0cHV0U2l6ZShVKXt0aGlzLiNsPVV9I2M9KEphKHRoaXMsRiksSmEodGhpcyxHLC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI2N9c2V0IG91dHB1dFF1YWxpdHkoVSl7dGhpcy4jYz1VfSNkPShKYSh0aGlzLFopLEphKHRoaXMsRCwhMSkpO2dldCBpc0hvdmVyZWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNIb3ZlcmVkKFUpe3RoaXMuI2Q9VX0jdT0oSmEodGhpcyxRKSxKYSh0aGlzLFQsITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiN1fXNldCBpc0RyYWdnaW5nKFUpe3RoaXMuI3U9VX0jcD0oSmEodGhpcyxXKSxKYSh0aGlzLG1lLCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiNwfXNldCBpc0xvYWRpbmcoVSl7dGhpcy4jcD1VfW1vZGFsSW5zdGFuY2U9KEphKHRoaXMscSksbnVsbCk7c3RhdGljIHN0eWxlcz1bTmUsLi4uRXQuYmFzZVN0eWxlcyx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLWNvbnRhaW5lcjpob3ZlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZSB7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnJvdW5kIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmRyYWdnaW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIsInJnYmEoOTYsIDE2NSwgMjUwLCAwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZTpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAucHJvZmlsZS1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAucGxhY2Vob2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgLm92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuOTUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC45KSIsInJnYmEoMjIwLCAzOCwgMzgsIDAuOSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2RjMjYyNiIpfTsKICAgICAgfQoKICAgICAgLmRyb3Atem9uZS10ZXh0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmhpZGRlbi1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBhbmltYXRpb24gKi8KICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkuc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuY2xpY2tpbmcgewogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMC4zcyBlYXNlLW91dDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5pbmZvVGV4dD0ke3RoaXMuaW5mb1RleHR9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICAKICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InByb2ZpbGUtY29udGFpbmVyIgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGlja30KICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuaGFuZGxlRHJhZ092ZXJ9CiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5oYW5kbGVEcmFnTGVhdmV9CiAgICAgICAgICBAZHJvcD0ke3RoaXMuaGFuZGxlRHJvcH0KICAgICAgICAgIHN0eWxlPSItLXNpemU6ICR7dGhpcy5zaXplfXB4IgogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtcGljdHVyZSAke3RoaXMuc2hhcGV9ICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9ICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlPyJjbGlja2luZyI6IiJ9Ij4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgPGltZyBjbGFzcz0icHJvZmlsZS1pbWFnZSIgc3JjPSIke3RoaXMudmFsdWV9IiBhbHQ9IlByb2ZpbGUgcGljdHVyZSIgLz4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InBsYWNlaG9sZGVyLWljb24iIGljb249Imx1Y2lkZTp1c2VyIiBpY29uU2l6ZT0iJHt0aGlzLnNpemUqLjV9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0RyYWdnaW5nP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgc3R5bGU9Im9wYWNpdHk6IDEiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcC16b25lLXRleHQiPgogICAgICAgICAgICAgICAgICBEcm9wIGltYWdlIGhlcmUKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLnZhbHVlJiYhdGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmFsbG93VXBsb2FkP3dgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ib3ZlcmxheS1idXR0b24iIEBjbGljaz0ke1U9PntVLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3Blbk1vZGFsKCl9fSB0aXRsZT0iQ2hhbmdlIHBpY3R1cmUiPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6cGVuY2lsIiBpY29uU2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke3RoaXMuYWxsb3dEZWxldGU/d2AKICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJvdmVybGF5LWJ1dHRvbiBkZWxldGUiIEBjbGljaz0ke1U9PntVLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGVsZXRlUGljdHVyZSgpfX0gdGl0bGU9IkRlbGV0ZSBwaWN0dXJlIj4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOnRyYXNoMiIgaWNvblNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLmlzTG9hZGluZyYmIXRoaXMudmFsdWU/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkgc2hvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGlucHV0CiAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgY2xhc3M9ImhpZGRlbi1pbnB1dCIKICAgICAgICAgIGFjY2VwdD0iJHt0aGlzLmFjY2VwdGVkRm9ybWF0cy5qb2luKCIsIil9IgogICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlRmlsZVNlbGVjdH0KICAgICAgICAvPgogICAgICAgICR7dGhpcy5yZW5kZXJEZXNjcmlwdGlvbigpfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ2xpY2soKXtpZighKHRoaXMuZGlzYWJsZWR8fCF0aGlzLmFsbG93VXBsb2FkKSYmIXRoaXMudmFsdWUpe3RoaXMuaXNMb2FkaW5nPSEwO2xldCBVPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaGlkZGVuLWlucHV0Iiksaj1pKCgpPT57c2V0VGltZW91dCgoKT0+eyghVS5maWxlc3x8VS5maWxlcy5sZW5ndGg9PT0wKSYmKHRoaXMuaXNMb2FkaW5nPSExKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGopfSwzMDApfSwiaGFuZGxlRm9jdXMiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGopLFUuY2xpY2soKX19aGFuZGxlRmlsZVNlbGVjdChVKXtsZXQgaj1VLnRhcmdldCxhZT1qLmZpbGVzPy5bMF07dGhpcy5pc0xvYWRpbmc9ITEsYWUmJnRoaXMucHJvY2Vzc0ZpbGUoYWUpLGoudmFsdWU9IiJ9aGFuZGxlRHJhZ092ZXIoVSl7VS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRpc2FibGVkJiZ0aGlzLmFsbG93VXBsb2FkJiYodGhpcy5pc0RyYWdnaW5nPSEwKX1oYW5kbGVEcmFnTGVhdmUoKXt0aGlzLmlzRHJhZ2dpbmc9ITF9aGFuZGxlRHJvcChVKXtpZihVLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuZGlzYWJsZWR8fCF0aGlzLmFsbG93VXBsb2FkKXJldHVybjtsZXQgaj1VLmRhdGFUcmFuc2Zlcj8uZmlsZXNbMF07aiYmdGhpcy5wcm9jZXNzRmlsZShqKX1hc3luYyBwcm9jZXNzRmlsZShVKXtpZighdGhpcy5hY2NlcHRlZEZvcm1hdHMuaW5jbHVkZXMoVS50eXBlKSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBmaWxlIHR5cGU6IixVLnR5cGUpO3JldHVybn1pZihVLnNpemU+dGhpcy5tYXhGaWxlU2l6ZSl7Y29uc29sZS5lcnJvcigiRmlsZSB0b28gbGFyZ2U6IixVLnNpemUpO3JldHVybn1sZXQgaj1uZXcgRmlsZVJlYWRlcjtqLm9ubG9hZD1hc3luYyBhZT0+e2xldCBYPWFlLnRhcmdldD8ucmVzdWx0O2F3YWl0IHRoaXMub3Blbk1vZGFsKFgpfSxqLnJlYWRBc0RhdGFVUkwoVSl9YXN5bmMgb3Blbk1vZGFsKFUpe2xldCBqPVV8fHRoaXMudmFsdWU7aWYoIWope3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaGlkZGVuLWlucHV0IikuY2xpY2soKTtyZXR1cm59dGhpcy5tb2RhbEluc3RhbmNlPW5ldyAkN3QsdGhpcy5tb2RhbEluc3RhbmNlLnNoYXBlPXRoaXMuc2hhcGUsdGhpcy5tb2RhbEluc3RhbmNlLmluaXRpYWxJbWFnZT1qLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRTaXplPXRoaXMub3V0cHV0U2l6ZSx0aGlzLm1vZGFsSW5zdGFuY2Uub3V0cHV0UXVhbGl0eT10aGlzLm91dHB1dFF1YWxpdHksdGhpcy5tb2RhbEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInNhdmUiLChhZT0+e3RoaXMudmFsdWU9YWUuZGV0YWlsLmNyb3BwZWRJbWFnZSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMubW9kYWxJbnN0YW5jZSl9ZGVsZXRlUGljdHVyZSgpe3RoaXMudmFsdWU9IiIsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShVKXt0aGlzLnZhbHVlPVV9c3RhdGlje0phKGEscil9fTtyZXR1cm4gSD1hfSkoKX0pO3ZhciBOSnI9dSgoKT0+e2JKcigpO3I3dCgpO3hKcigpO3FwZSgpO2E3dCgpO0g2dCgpO3ZKcigpO3lKcigpO3dKcigpO2tKcigpO1NKcigpO01KcigpO0NKcigpO19KcigpO2k3dCgpO3Q3dCgpO1RKcigpO0xKcigpO0RKcigpO0E3dCgpfSk7dmFyIE9KcixSSnI9dSgoKT0+e3ZlKCk7T0pyPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW9Db250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICB9CiAgICAKICAgIC5zZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgcGFkZGluZzogMjRweDsKICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtb0NvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm9uLVNlbGVjdGFibGUgQ2hpcHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QmFzaWMgY2hpcHMgd2l0aG91dCBzZWxlY3Rpb24gY2FwYWJpbGl0eS4gVXNlIGZvciBkaXNwbGF5LW9ubHkgdGFncy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJub25lIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToic3RhdHVzIix2YWx1ZToiQWN0aXZlIn0se2tleToidGllciIsdmFsdWU6IlByZW1pdW0ifSx7a2V5OiJyZWdpb24iLHZhbHVlOiJFVS1XZXN0In0se2tleToidHlwZSIsdmFsdWU6IkVudGVycHJpc2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNpbmdsZSBTZWxlY3Rpb24gQ2hpcHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q2xpY2sgdG8gc2VsZWN0IG9uZSBjaGlwIGF0IGEgdGltZS4gVXNlZnVsIGZvciBmaWx0ZXJzIGFuZCBvcHRpb25zLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9InNpbmdsZSIKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6ImFsbCIsdmFsdWU6IkFsbCBQcm9qZWN0cyJ9LHtrZXk6ImFjdGl2ZSIsdmFsdWU6IkFjdGl2ZSJ9LHtrZXk6ImFyY2hpdmVkIix2YWx1ZToiQXJjaGl2ZWQifSx7a2V5OiJkcmFmdHMiLHZhbHVlOiJEcmFmdHMifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk11bHRpcGxlIFNlbGVjdGlvbiBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TZWxlY3QgbXVsdGlwbGUgY2hpcHMgc2ltdWx0YW5lb3VzbHkuIEdyZWF0IGZvciB0YWcgc2VsZWN0aW9uLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im11bHRpcGxlIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToianMiLHZhbHVlOiJKYXZhU2NyaXB0In0se2tleToidHMiLHZhbHVlOiJUeXBlU2NyaXB0In0se2tleToicmVhY3QiLHZhbHVlOiJSZWFjdCJ9LHtrZXk6InZ1ZSIsdmFsdWU6IlZ1ZSJ9LHtrZXk6ImFuZ3VsYXIiLHZhbHVlOiJBbmd1bGFyIn0se2tleToibm9kZSIsdmFsdWU6Ik5vZGUuanMifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlJlbW92YWJsZSBDaGlwcyB3aXRoIEtleXM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q2hpcHMgd2l0aCByZW1vdmUgYnV0dG9ucyBhbmQga2V5LXZhbHVlIHBhaXJzLiBQZXJmZWN0IGZvciBkeW5hbWljIGxpc3RzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9InNpbmdsZSIKICAgICAgICBjaGlwc0FyZVJlbW92YWJsZQogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToiZW52Iix2YWx1ZToiUHJvZHVjdGlvbiJ9LHtrZXk6InZlcnNpb24iLHZhbHVlOiIyLjQuMSJ9LHtrZXk6ImJyYW5jaCIsdmFsdWU6Im1haW4ifSx7a2V5OiJhdXRob3IiLHZhbHVlOiJKb2huIERvZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWl4ZWQgQ29udGVudCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNvbWJpbmluZyBkaWZmZXJlbnQgY2hpcCB0eXBlcyBmb3IgY29tcGxleCBVSXMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibXVsdGlwbGUiCiAgICAgICAgY2hpcHNBcmVSZW1vdmFibGUKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6InByaW9yaXR5Iix2YWx1ZToiSGlnaCJ9LHtrZXk6InN0YXR1cyIsdmFsdWU6IkluIFByb2dyZXNzIn0se2tleToiYnVnIix2YWx1ZToiQnVnIn0se2tleToiZmVhdHVyZSIsdmFsdWU6IkZlYXR1cmUifSx7a2V5OiJzcHJpbnQiLHZhbHVlOiJTcHJpbnQgMjMifSx7a2V5OiJhc3NpZ25lZSIsdmFsdWU6IkFsaWNlIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgTHcsRGMsRkpyLEJKcj11KCgpPT57dmUoKTtNcigpO1JKcigpO2x0KCk7THc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LERjPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxGSnI9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWNoaXBzIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNDaGlwcyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCh7dHlwZTpCb29sZWFufSldLHA9W1Aoe3R5cGU6QXJyYXl9KV0sdj1bUCgpXSx5PVtQKHt0eXBlOkFycmF5fSldLEx3KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2VsZWN0aW9uTW9kZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNlbGVjdGlvbk1vZGUsImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3Rpb25Nb2RlPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbyxsKSxMdyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoaXBzQXJlUmVtb3ZhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjaGlwc0FyZVJlbW92YWJsZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmNoaXBzQXJlUmVtb3ZhYmxlLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuY2hpcHNBcmVSZW1vdmFibGU9T30sInNldCIpfSxtZXRhZGF0YTpffSxkLGYpLEx3KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZUNoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RhYmxlQ2hpcHMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RhYmxlQ2hpcHMsImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3RhYmxlQ2hpcHM9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLEx3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWxlY3RlZENoaXAiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zZWxlY3RlZENoaXAsImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3RlZENoaXA9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEx3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2VsZWN0ZWRDaGlwcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNlbGVjdGVkQ2hpcHMsImdldCIpLHNldDppKChTLE8pPT57Uy5zZWxlY3RlZENoaXBzPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxMdyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPU9KcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPURjKHRoaXMsbywic2luZ2xlIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VsZWN0aW9uTW9kZShfKXt0aGlzLiNlPV99I3Q9KERjKHRoaXMsbCksRGModGhpcyxkLCExKSk7Z2V0IGNoaXBzQXJlUmVtb3ZhYmxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNoaXBzQXJlUmVtb3ZhYmxlKF8pe3RoaXMuI3Q9X30jcj0oRGModGhpcyxmKSxEYyh0aGlzLGgsW10pKTtnZXQgc2VsZWN0YWJsZUNoaXBzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGFibGVDaGlwcyhfKXt0aGlzLiNyPV99I2E9KERjKHRoaXMsbSksRGModGhpcyxiLG51bGwpKTtnZXQgc2VsZWN0ZWRDaGlwKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkQ2hpcChfKXt0aGlzLiNhPV99I2k9KERjKHRoaXMsZyksRGModGhpcyxrLFtdKSk7Z2V0IHNlbGVjdGVkQ2hpcHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWRDaGlwcyhfKXt0aGlzLiNpPV99Y29uc3RydWN0b3IoKXtzdXBlcigpLERjKHRoaXMsTSl9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuY2hpcCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgICAgIH0KCiAgICAgIC5jaGlwOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2QxZDVkYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgfQoKICAgICAgLmNoaXBLZXkgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgICAgIHBhZGRpbmc6IDBweCA4cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIC5jaGlwS2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTsKICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNlZjQ0NDQiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCBkZWVzLWljb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICR7dGhpcy5zZWxlY3RhYmxlQ2hpcHMubWFwKF89PndgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RDaGlwKF8pfQogICAgICAgICAgICAgIGNsYXNzPSJjaGlwICR7dGhpcy5pc1NlbGVjdGVkKF8pPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHtfLmtleT93YDxkaXYgY2xhc3M9ImNoaXBLZXkiPiR7Xy5rZXl9PC9kaXY+YDp3YGB9ICR7Xy52YWx1ZX0KICAgICAgICAgICAgICAke3RoaXMuY2hpcHNBcmVSZW1vdmFibGU/d2AKICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHtTPT57Uy5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnJlbW92ZUNoaXAoXyl9fQogICAgICAgICAgICAgICAgICAgICAgLmljb249JHsiZmE6eG1hcmsifQogICAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt9aXNTZWxlY3RlZChfKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/dGhpcy5zZWxlY3RlZENoaXA/dGhpcy5pc1NhbWVDaGlwKHRoaXMuc2VsZWN0ZWRDaGlwLF8pOiExOnRoaXMuc2VsZWN0ZWRDaGlwcy5zb21lKFM9PnRoaXMuaXNTYW1lQ2hpcChTLF8pKX1pc1NhbWVDaGlwKF8sUyl7cmV0dXJuKF8ua2V5JiZTLmtleXx8Xy52YWx1ZT09PVMudmFsdWUpJiZfLmtleT09PVMua2V5fWFzeW5jIHNlbGVjdENoaXAoXyl7dGhpcy5zZWxlY3Rpb25Nb2RlIT09Im5vbmUiJiYodGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/dGhpcy5pc1NlbGVjdGVkKF8pPyh0aGlzLnNlbGVjdGVkQ2hpcD1udWxsLHRoaXMuc2VsZWN0ZWRDaGlwcz1bXSk6KHRoaXMuc2VsZWN0ZWRDaGlwPV8sdGhpcy5zZWxlY3RlZENoaXBzPVtfXSk6dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpcGxlIiYmKHRoaXMuaXNTZWxlY3RlZChfKT90aGlzLnNlbGVjdGVkQ2hpcHM9dGhpcy5zZWxlY3RlZENoaXBzLmZpbHRlcihTPT4hdGhpcy5pc1NhbWVDaGlwKFMsXykpOnRoaXMuc2VsZWN0ZWRDaGlwcz1bLi4udGhpcy5zZWxlY3RlZENoaXBzLF9dLHRoaXMucmVxdWVzdFVwZGF0ZSgpKSxjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkQ2hpcHMpKX1yZW1vdmVDaGlwKF8pe3RoaXMuc2VsZWN0YWJsZUNoaXBzPXRoaXMuc2VsZWN0YWJsZUNoaXBzLmZpbHRlcihTPT4hdGhpcy5pc1NhbWVDaGlwKFMsXykpLHRoaXMuc2VsZWN0ZWRDaGlwcz10aGlzLnNlbGVjdGVkQ2hpcHMuZmlsdGVyKFM9PiF0aGlzLmlzU2FtZUNoaXAoUyxfKSksdGhpcy5zZWxlY3RlZENoaXAmJnRoaXMuaXNTYW1lQ2hpcCh0aGlzLnNlbGVjdGVkQ2hpcCxfKSYmKHRoaXMuc2VsZWN0ZWRDaGlwPW51bGwpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXN0YXRpY3tEYyhhLHIpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgSEpyPXUoKCk9PntCSnIoKX0pO3ZhciBxSnIsVkpyPXUoKCk9Pnt2ZSgpO3dhKCk7cUpyPWkoKCk9PndgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjZGFzaGJvYXJkR3JpZCIpLHI9W3tpZDoibWV0cmljczEiLHg6MCx5OjAsdzozLGg6Mix0aXRsZToiUmV2ZW51ZSIsaWNvbjoibHVjaWRlOmRvbGxhclNpZ24iLGNvbnRlbnQ6d2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMzJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsiPiQxMjQsNTYzPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6ICMyMmM1NWU7IGZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+4oaRIDEyLjUlIGZyb20gbGFzdCBtb250aDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9LHtpZDoibWV0cmljczIiLHg6Myx5OjAsdzozLGg6Mix0aXRsZToiVXNlcnMiLGljb246Imx1Y2lkZTp1c2VycyIsY29udGVudDp3YAogICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyI+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAzMnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OyI+OCwyMzQ8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjogIzNiODJmNjsgZm9udC1zaXplOiAxNHB4OyBtYXJnaW4tdG9wOiA4cHg7Ij7ihpEgNS4yJSBmcm9tIGxhc3Qgd2VlazwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9LHtpZDoiY2hhcnQxIix4OjYseTowLHc6NixoOjQsdGl0bGU6IkFuYWx5dGljcyIsaWNvbjoibHVjaWRlOmxpbmVDaGFydCIsY29udGVudDp3YAogICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyBoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyI+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzcxNzE3YTsiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bGluZUNoYXJ0In0gc3R5bGU9ImZvbnQtc2l6ZTogNDhweDsgbWFyZ2luLWJvdHRvbTogMTZweDsiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdj5DaGFydCB2aXN1YWxpemF0aW9uIGFyZWE8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfV07ZS53aWRnZXRzPXIubWFwKHk9Pih7Li4ueX0pKSxlLmNlbGxIZWlnaHQ9ODAsZS5tYXJnaW49e3RvcDoxMCxyaWdodDoxMCxib3R0b206MTAsbGVmdDoxMH0sZS5lbmFibGVBbmltYXRpb249ITAsZS5zaG93R3JpZExpbmVzPSExO2xldCBhPWUuZ2V0TGF5b3V0KCkubWFwKHk9Pih7Li4ueX0pKSxzPWUud2lkZ2V0cy5tYXAoKHksayk9Pih7aWQ6eS5pZCx4OjAseTprPT09MD8wOmUud2lkZ2V0cy5zbGljZSgwLGspLnJlZHVjZSgoTSxOKT0+TStOLmgsMCksdzplLmNvbHVtbnMsaDp5Lmh9KSk7ZS5sYXlvdXRzPXtiYXNlOmEsbW9iaWxlOnN9O2xldCBuPXQucXVlcnlTZWxlY3RvcigiI2Rhc2hib2FyZExheW91dFN0YXR1cyIpLG89aSgoKT0+e2xldCB5PWUuZ2V0TGF5b3V0KCk7bi50ZXh0Q29udGVudD1gQWN0aXZlIGJyZWFrcG9pbnQ6ICR7ZS5hY3RpdmVCcmVha3BvaW50fSBcdTIwMjIgVGlsZXM6ICR7eS5sZW5ndGh9YH0sInVwZGF0ZVN0YXR1cyIpLGw9d2luZG93Lm1hdGNoTWVkaWEoIihtYXgtd2lkdGg6IDc2OHB4KSIpLGM9aSgoKT0+e2xldCB5PWwubWF0Y2hlcz8ibW9iaWxlIjoiYmFzZSI7ZS5hcHBseUJyZWFrcG9pbnRMYXlvdXQoeSksbygpfSwiaGFuZGxlQnJlYWtwb2ludCIpO3R5cGVvZiBsLmFkZEV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiI/bC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGMpOmwuYWRkTGlzdGVuZXI/LihjKSxjKCk7bGV0IGQ9NDt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh5PT57c3dpdGNoKHkudGV4dD8udHJpbSgpKXtjYXNlIlRvZ2dsZSBBbmltYXRpb24iOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5lbmFibGVBbmltYXRpb249IWUuZW5hYmxlQW5pbWF0aW9ufSk7YnJlYWs7Y2FzZSJUb2dnbGUgR3JpZCBMaW5lcyI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLnNob3dHcmlkTGluZXM9IWUuc2hvd0dyaWRMaW5lc30pO2JyZWFrO2Nhc2UiQWRkIFdpZGdldCI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgTT17aWQ6YHdpZGdldCR7ZCsrfWAseDowLHk6MCx3OjMsaDoyLGF1dG9Qb3NpdGlvbjohMCx0aXRsZTpgV2lkZ2V0ICR7ZC0xfWAsaWNvbjoibHVjaWRlOnBhY2thZ2UiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6ICM3MTcxN2E7Ij5OZXcgd2lkZ2V0IGNvbnRlbnQ8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiA4cHg7IGZvbnQtc2l6ZTogMjRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsiPiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlMyl9PC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH07ZS5hZGRXaWRnZXQoTSwhMCl9KTticmVhaztjYXNlIkNvbXBhY3QgR3JpZCI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmNvbXBhY3QoKX0pO2JyZWFrO2Nhc2UiVG9nZ2xlIEVkaXQgTW9kZSI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmVkaXRhYmxlPSFlLmVkaXRhYmxlLHkudGV4dD1lLmVkaXRhYmxlPyJMb2NrIEdyaWQiOiJVbmxvY2sgR3JpZCJ9KTticmVhaztjYXNlIlJlc2V0IExheW91dCI6eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmFwcGx5QnJlYWtwb2ludExheW91dChlLmFjdGl2ZUJyZWFrcG9pbnQpfSk7YnJlYWs7ZGVmYXVsdDpicmVha319KTtsZXQgcD1udWxsLGg9MCxtPWkoKHksayk9PntsZXQgTT1lLmdldExheW91dCgpO2NvbnNvbGUuZ3JvdXAoYFx1ezFGNTA0fSAke3l9IFtFdmVudCAjJHsrK2h9XWApLGNvbnNvbGUubG9nKCJUaW1lc3RhbXA6IixuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpLGNvbnNvbGUubG9nKCJHcmlkIENvbmZpZ3VyYXRpb246Iix7Y29sdW1uczplLmNvbHVtbnMsY2VsbEhlaWdodDplLmNlbGxIZWlnaHQsbWFyZ2luOmUubWFyZ2luLGVkaXRhYmxlOmUuZWRpdGFibGUsYWN0aXZlQnJlYWtwb2ludDplLmFjdGl2ZUJyZWFrcG9pbnR9KSxjb25zb2xlLmxvZygiQ3VycmVudCBMYXlvdXQ6IixNKSxjb25zb2xlLmxvZygiV2lkZ2V0IENvdW50OiIsTS5sZW5ndGgpLGNvbnNvbGUubG9nKCJHcmlkIEJvdW5kczoiLHt0b3RhbFdpZGdldHM6ZS53aWRnZXRzLmxlbmd0aCxtYXhZOk1hdGgubWF4KC4uLk0ubWFwKE49Pk4ueStOLmgpKSxvY2N1cGllZDpNLm1hcChOPT5gJHtOLmlkfTogKCR7Ti54fSwke04ueX0pICR7Ti53fXgke04uaH1gKS5qb2luKCIsICIpfSksayYmY29uc29sZS5sb2coIkV2ZW50IERldGFpbHM6IixrKSxjb25zb2xlLmdyb3VwRW5kKCl9LCJsb2dHcmlkU3RhdGUiKSx2PW5ldyBNdXRhdGlvbk9ic2VydmVyKCgpPT57bGV0IHk9ZS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucGxhY2Vob2xkZXIiKTtpZih5KXtsZXQgaz17bGVmdDp5LnN0eWxlLmxlZnQsdG9wOnkuc3R5bGUudG9wLHdpZHRoOnkuc3R5bGUud2lkdGgsaGVpZ2h0Onkuc3R5bGUuaGVpZ2h0fTtpZihKU09OLnN0cmluZ2lmeShrKSE9PUpTT04uc3RyaW5naWZ5KHApKXtjb25zb2xlLmdyb3VwKCJcdXsxRjRDRH0gUGxhY2Vob2xkZXIgUG9zaXRpb24gQ2hhbmdlZCIpLGNvbnNvbGUubG9nKCJQcmV2aW91czoiLHApLGNvbnNvbGUubG9nKCJDdXJyZW50OiIsayk7bGV0IE09ZS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZ3JpZC1jb250YWluZXIiKTtNJiZjb25zb2xlLmxvZygiR3JpZCBDb250YWluZXIgRGltZW5zaW9uczoiLHt3aWR0aDpNLmNsaWVudFdpZHRoLGhlaWdodDpNLmNsaWVudEhlaWdodH0pLGNvbnNvbGUuZ3JvdXBFbmQoKSxwPWt9fX0pO2Uuc2hhZG93Um9vdCYmdi5vYnNlcnZlKGUuc2hhZG93Um9vdCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITAsYXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJzdHlsZSJdfSksbSgiSW5pdGlhbCBHcmlkIFN0YXRlIiksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtbW92ZSIseT0+e2xldCBrPXkuZGV0YWlsO20oIldpZGdldCBNb3ZlIix7d2lkZ2V0Omsud2lkZ2V0LGRpc3BsYWNlZDprLmRpc3BsYWNlZCxzd2FwcGVkV2l0aDprLnN3YXBwZWRXaXRofSl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1yZXNpemUiLHk9PntsZXQgaz15LmRldGFpbDttKCJXaWRnZXQgUmVzaXplIix7d2lkZ2V0Omsud2lkZ2V0LGRpc3BsYWNlZDprLmRpc3BsYWNlZCxzd2FwcGVkV2l0aDprLnN3YXBwZWRXaXRofSl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1yZW1vdmUiLHk9PntsZXQgaz15LmRldGFpbDttKCJXaWRnZXQgUmVtb3ZlIix7cmVtb3ZlZFdpZGdldDprLndpZGdldH0pLG8oKX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigibGF5b3V0LWNoYW5nZSIsKCk9PnttKCJMYXlvdXQgQ2hhbmdlIiksbygpfSksZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIseT0+e2xldCBrPXkudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQtaGVhZGVyIiksTT15LnRhcmdldC5jbG9zZXN0KCIucmVzaXplLWhhbmRsZSIpO2lmKGt8fE0pe2NvbnNvbGUuZ3JvdXAoYFx1ezFGM0FGfSBJbnRlcmFjdGlvbiBTdGFydGVkOiAke2s/IkRyYWciOiJSZXNpemUifWApLGNvbnNvbGUubG9nKCJUYXJnZXQgV2lkZ2V0OiIseS50YXJnZXQuY2xvc2VzdCgiLndpZGdldCIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtd2lkZ2V0LWlkIikpLGNvbnNvbGUubG9nKCJQb2ludGVyIFBvc2l0aW9uOiIse3g6eS5jbGllbnRYLHk6eS5jbGllbnRZfSksY29uc29sZS5ncm91cEVuZCgpO2xldCBOPWkoUz0+e2xldCBPPXkudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQiKTtPJiZjb25zb2xlLmxvZygiXHUyMTk0XHVGRTBGIFBvaW50ZXIgTW92ZToiLHt3aWRnZXRJZDpPLmdldEF0dHJpYnV0ZSgiZGF0YS13aWRnZXQtaWQiKSxwb3NpdGlvbjp7eDpTLmNsaWVudFgseTpTLmNsaWVudFl9LGRlbHRhOnt4OlMuY2xpZW50WC15LmNsaWVudFgseTpTLmNsaWVudFkteS5jbGllbnRZfX0pfSwiaGFuZGxlUG9pbnRlck1vdmUiKSxfPWkoKCk9Pntjb25zb2xlLmdyb3VwKCJcdXsxRjNDMX0gSW50ZXJhY3Rpb24gRW5kZWQiKSxtKCJGaW5hbCBTdGF0ZSBBZnRlciBJbnRlcmFjdGlvbiIpLGNvbnNvbGUuZ3JvdXBFbmQoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsTiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixfKX0sImhhbmRsZVBvaW50ZXJVcCIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixOKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLF8pfX0pO2xldCBiPWUuYWRkV2lkZ2V0LmJpbmQoZSk7ZS5hZGRXaWRnZXQ9KHksayk9Pntjb25zb2xlLmdyb3VwKCJcdTI3OTUgQWRkaW5nIFdpZGdldCIpLGNvbnNvbGUubG9nKCJOZXcgV2lkZ2V0OiIseSksY29uc29sZS5sb2coIkF1dG8gUG9zaXRpb246IixrKTtsZXQgTT1iKHksayk7cmV0dXJuIG0oIkFmdGVyIFdpZGdldCBBZGRlZCIpLGNvbnNvbGUuZ3JvdXBFbmQoKSxNfTtsZXQgZz1lLmNvbXBhY3QuYmluZChlKTtlLmNvbXBhY3Q9eT0+e2NvbnNvbGUuZ3JvdXAoIlx1ezFGNURDfVx1RkUwRiBDb21wYWN0aW5nIEdyaWQiKSxjb25zb2xlLmxvZygiRGlyZWN0aW9uOiIseXx8InZlcnRpY2FsIiksbSgiQmVmb3JlIENvbXBhY3QiKTtsZXQgaz1nKHkpO3JldHVybiBtKCJBZnRlciBDb21wYWN0IiksY29uc29sZS5ncm91cEVuZCgpLGt9LG8oKX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtyZWAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMwOTA5MGIiKX07CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtby1jb250cm9scyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5kZW1vLWNvbnRyb2xzIGRlZXMtYnV0dG9uIHsKICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICB9CgogICAgICAgICAgLmdyaWQtY29udGFpbmVyLXdyYXBwZXIgewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgICBtaW4taGVpZ2h0OiA2MDBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQoKICAgICAgICAgIC5pbmZvIHsKICAgICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgfQoKICAgICAgICAgICNkYXNoYm9hcmRMYXlvdXRTdGF0dXMgewogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgfQogICAgICAgIGB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBbmltYXRpb246Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBBbmltYXRpb248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkRpc3BsYXk6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBHcmlkIExpbmVzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgV2lkZ2V0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkNvbXBhY3QgR3JpZDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXNldCBMYXlvdXQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9Ik1vZGU6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBFZGl0IE1vZGU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1jb250YWluZXItd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1kYXNoYm9hcmRncmlkIGlkPSJkYXNoYm9hcmRHcmlkIj48L2RlZXMtZGFzaGJvYXJkZ3JpZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgICA8ZGl2PkRyYWcgdG8gcmVwb3NpdGlvbiwgcmVzaXplIGZyb20gaGFuZGxlcywgb3IgcmlnaHQtY2xpY2sgYSBoZWFkZXIgdG8gZGVsZXRlIGEgdGlsZS48L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRhc2hib2FyZExheW91dFN0YXR1cyI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGAsImRlbW9GdW5jIil9KTt2YXIgakpyLFVKcj11KCgpPT57dmUoKTtqSnI9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpbGwtY2hhbmdlOiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZW5hYmxlYW5pbWF0aW9uXSkgLmdyaWQtd2lkZ2V0IHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQuZHJhZ2dpbmcgewogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLXdpZGdldC5wbGFjZWhvbGRlciB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtd2lkZ2V0LnBsYWNlaG9sZGVyIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQucmVzaXppbmcgewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLndpZGdldC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSkiLCIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLndpZGdldC1jb250ZW50IHsKICAgICAgICBib3gtc2hhZG93OiAke3guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCkiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5kcmFnZ2luZyAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJveC1zaGFkb3c6ICR7eC5iZFRoZW1lKCIwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuMjUpIiwiMCAxNnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjYpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgICAgY3Vyc29yOiBncmFiOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjphY3RpdmUgewogICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyLmxvY2tlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlci5sb2NrZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1ib2R5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtYm9keS5oYXMtaGVhZGVyIHsKICAgICAgICB0b3A6IDQ1cHg7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1lIHsKICAgICAgICBjdXJzb3I6IGV3LXJlc2l6ZTsKICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICByaWdodDogLTZweDsKICAgICAgICB0b3A6IDEwJTsKICAgICAgICBoZWlnaHQ6IDgwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtcyB7CiAgICAgICAgY3Vyc29yOiBucy1yZXNpemU7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgYm90dG9tOiAtNnB4OwogICAgICAgIGxlZnQ6IDEwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIGN1cnNvcjogc2UtcmVzaXplOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICByaWdodDogLTJweDsKICAgICAgICBib3R0b206IC0ycHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXI6OmFmdGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtcGxhY2Vob2xkZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4xOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHotaW5kZXg6IC0xOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lLXZlcnRpY2FsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmUtaG9yaXpvbnRhbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQogIGBdfSk7dmFyIEJ4MSxFN3QsWUpyLEtKcixXSnIsRnJlLEdKcix1RmEscEZhLEk3dCxtZixaSnIsUUpyLFhKcj11KCgpPT57QngxPTEwLEU3dD1pKHQ9PntpZih0eXBlb2YgdD09Im51bWJlciIpcmV0dXJue2hvcml6b250YWw6dCx2ZXJ0aWNhbDp0LHRvcDp0LHJpZ2h0OnQsYm90dG9tOnQsbGVmdDp0fTtsZXQgZT17dG9wOnQudG9wPz8xMCxyaWdodDp0LnJpZ2h0Pz8xMCxib3R0b206dC5ib3R0b20/PzEwLGxlZnQ6dC5sZWZ0Pz8xMH07cmV0dXJuey4uLmUsaG9yaXpvbnRhbDooZS5sZWZ0K2UucmlnaHQpLzIsdmVydGljYWw6KGUudG9wK2UuYm90dG9tKS8yfX0sInJlc29sdmVNYXJnaW5zIiksWUpyPWkoKHQsZSxyLGEscyk9PntsZXQgbj1yLmhvcml6b250YWwqKGUrMSksbz1NYXRoLm1heCh0LW4sMCksbD1lPjA/by9lOjAsYz1zPT09ImF1dG8iP2w6YTtyZXR1cm57Y29udGFpbmVyV2lkdGg6dCxjZWxsV2lkdGhQeDpsLG1hcmdpbkhvcml6b250YWxQeDpyLmhvcml6b250YWwsY2VsbEhlaWdodFB4OmMsbWFyZ2luVmVydGljYWxQeDpyLnZlcnRpY2FsfX0sImNhbGN1bGF0ZUNlbGxNZXRyaWNzIiksS0pyPWkoKHQsZSxyKT0+e2lmKHQubGVuZ3RoPT09MClyZXR1cm4gMDtsZXQgYT1NYXRoLm1heCguLi50Lm1hcChzPT5zLnkrcy5oKSwwKTtyZXR1cm4gYSpyKyhhKzEpKmUudmVydGljYWx9LCJjYWxjdWxhdGVHcmlkSGVpZ2h0IiksV0pyPWkoKHQsZSxyLGEscyk9PmU8dC54K3QudyYmZSthPnQueCYmcjx0LnkrdC5oJiZyK3M+dC55LCJvdmVybGFwcyIpLEZyZT1pKCh0LGUscixhLHM9ZS53LG49ZS5oKT0+dC5maWx0ZXIobz0+by5pZD09PWUuaWQ/ITE6V0pyKG8scixhLHMsbikpLCJjb2xsZWN0Q29sbGlzaW9ucyIpLEdKcj1pKCh0LGUscixhKT0+RnJlKHQsZSxyLGEpLmxlbmd0aD4wLCJjaGVja0NvbGxpc2lvbiIpLHVGYT1pKHQ9Pih7Li4udH0pLCJjbG9uZVdpZGdldCIpLHBGYT1pKHQ9PnQubWFwKHVGYSksImNsb25lV2lkZ2V0cyIpLEk3dD1pKCh0LGUscixhKT0+e2ZvcihsZXQgbj0wO248MjAwO24rKylmb3IobGV0IG89MDtvPD1hLWU7bysrKWlmKCF0LnNvbWUoYz0+V0pyKGMsbyxuLGUscikpKXJldHVybnt4Om8seTpufTtyZXR1cm57eDowLHk6dC5yZWR1Y2UoKG4sbyk9Pk1hdGgubWF4KG4sby55K28uaCksMCl9fSwiZmluZEF2YWlsYWJsZVBvc2l0aW9uIiksbWY9aSgodCxlLHIsYSxzKT0+e2xldCBuPXBGYSh0KSxvPW4uZmluZChoPT5oLmlkPT09ZSksbD10LmZpbmQoaD0+aC5pZD09PWUpO2lmKCFvfHwhbClyZXR1cm4gbnVsbDtsZXQgYz17eDpyLngseTpyLnksdzpyLnc/P28udyxoOnIuaD8/by5ofTtvLng9Yy54LG8ueT1jLnksby53PWMudyxvLmg9Yy5oO2xldCBkPUZyZShuLG8sYy54LGMueSxjLncsYy5oKTtpZihkLmxlbmd0aD09PTApcmV0dXJue3dpZGdldHM6bixtb3ZlZFdpZGdldHM6W28uaWRdfTtpZihkLmxlbmd0aD09PTEpe2xldCBoPWRbMF07aWYoIWgubG9ja2VkJiYhaC5ub01vdmUmJmgudz09PW8udyYmaC5oPT09by5oKXtsZXQgbT1uLmZpbmQodj0+di5pZD09PWguaWQpO2lmKG0pe2xldCB2PWwsYj17eDptLngseTptLnl9O2lmKG0ueD12LngsbS55PXYueSxGcmUobixvLG8ueCxvLnksby53LG8uaCkubGVuZ3RoPT09MCYmRnJlKG4sbSxtLngsbS55LG0udyxtLmgpLmxlbmd0aD09PTApcmV0dXJue3dpZGdldHM6bixtb3ZlZFdpZGdldHM6W28uaWQsbS5pZF0sc3dhcHBlZFdpdGg6bS5pZH07bS54PWIueCxtLnk9Yi55fX19bGV0IGY9bmV3IFNldChbby5pZF0pO2ZvcihsZXQgaCBvZiBkKXtpZihoLmxvY2tlZHx8aC5ub01vdmUpcmV0dXJuIG51bGw7bGV0IG09bi5maW5kKGc9PmcuaWQ9PT1oLmlkKTtpZighbSljb250aW51ZTtsZXQgdj1uLmZpbHRlcihnPT5nLmlkIT09aC5pZCksYj1JN3QodixtLncsbS5oLGEpO20ueD1iLngsbS55PWIueSxmLmFkZChtLmlkKX1yZXR1cm4gRnJlKG4sbyxvLngsby55LG8udyxvLmgpLmxlbmd0aD4wP251bGw6e3dpZGdldHM6bixtb3ZlZFdpZGdldHM6QXJyYXkuZnJvbShmKX19LCJyZXNvbHZlV2lkZ2V0UGxhY2VtZW50IiksWkpyPWkoKHQsZT0idmVydGljYWwiKT0+e2xldCByPVsuLi50XS5zb3J0KChhLHMpPT5lPT09InZlcnRpY2FsIj9hLnkhPT1zLnk/YS55LXMueTphLngtcy54OmEueCE9PXMueD9hLngtcy54OmEueS1zLnkpO2ZvcihsZXQgYSBvZiByKWlmKCEoYS5sb2NrZWR8fGEubm9Nb3ZlKSlpZihlPT09InZlcnRpY2FsIilmb3IoO2EueT4wJiYhR0pyKHQsYSxhLngsYS55LTEpOylhLnktPTE7ZWxzZSBmb3IoO2EueD4wJiYhR0pyKHQsYSxhLngtMSxhLnkpOylhLngtPTF9LCJjb21wYWN0TGF5b3V0IiksUUpyPWkoKHQsZSk9PnQubWFwKHI9PntsZXQgYT1lLmZpbmQocz0+cy5pZD09PXIuaWQpO3JldHVybiBhP3suLi5yLC4uLmF9OnJ9KSwiYXBwbHlMYXlvdXQiKX0pO3ZhciBKSnIsZWVhLHRlYT11KCgpPT57SkpyPWkoKHtwb2ludGVyOnQsY29udGFpbmVyUmVjdDplLG1ldHJpY3M6cixjb2x1bW5zOmEsd2lkZ2V0OnMscnRsOm4sZHJhZ09mZnNldFg6bz0wLGRyYWdPZmZzZXRZOmw9MH0pPT57bGV0IGM9dC5jbGllbnRYLWUubGVmdC1vLGQ9dC5jbGllbnRZLWUudG9wLWwsZj1yLm1hcmdpbkhvcml6b250YWxQeCxwPXIubWFyZ2luVmVydGljYWxQeCxoPXIuY2VsbFdpZHRoUHgsbT1yLmNlbGxIZWlnaHRQeCx2PWkoKF8sUyxPKT0+TWF0aC5tYXgoUyxNYXRoLm1pbihPLF8pKSwiY2xhbXAiKSxiPXYoYy1mLDAsZS53aWR0aC1mKSxnPXYoZC1wLDAsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx5PWgrZixrPW0rcCxNPU1hdGgucm91bmQoYi95KTtuJiYoTT1hLXMudy1NKSxNPXYoTSwwLGEtcy53KTtsZXQgTj12KE1hdGgucm91bmQoZy9rKSwwLE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtyZXR1cm57eDpNLHk6Tn19LCJjb21wdXRlR3JpZENvb3JkaW5hdGVzIiksZWVhPWkoKHtwb2ludGVyOnQsY29udGFpbmVyUmVjdDplLG1ldHJpY3M6cixzdGFydFdpZHRoOmEsc3RhcnRIZWlnaHQ6cyxzdGFydFBvaW50ZXI6bixoYW5kbGVyOm8sd2lkZ2V0OmwsY29sdW1uczpjfSk9PntsZXQgZD10LmNsaWVudFgtbi5jbGllbnRYLGY9dC5jbGllbnRZLW4uY2xpZW50WSxwPWEsaD1zLG09ci5jZWxsV2lkdGhQeCtyLm1hcmdpbkhvcml6b250YWxQeCx2PXIuY2VsbEhlaWdodFB4K3IubWFyZ2luVmVydGljYWxQeDtpZihvLmluY2x1ZGVzKCJlIikpe2xldCB5PU1hdGgucm91bmQoZC9tKTtwPWEreX1pZihvLmluY2x1ZGVzKCJzIikpe2xldCB5PU1hdGgucm91bmQoZi92KTtoPXMreX1sZXQgYj1NYXRoLm1heChsLm1pbld8fDEsTWF0aC5taW4ocCxsLm1heFd8fGMtbC54KSksZz1NYXRoLm1heChsLm1pbkh8fDEsTWF0aC5taW4oaCxsLm1heEh8fE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSk7cmV0dXJue3dpZHRoOmIsaGVpZ2h0Omd9fSwiY29tcHV0ZVJlc2l6ZURpbWVuc2lvbnMiKX0pO3ZhciByZWEsYWVhPXUoKCk9PntzcygpO3ZuKCk7cmVhPWkoKHt3aWRnZXQ6dCxob3N0OmUsZXZlbnQ6cn0pPT57bGV0IGE9W3tuYW1lOiJEZWxldGUgdGlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjppKGFzeW5jKCk9PihlLnJlbW92ZVdpZGdldCh0LmlkKSxudWxsKSwiYWN0aW9uIil9XTtDci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhyLGEpfSwib3BlbldpZGdldENvbnRleHRNZW51Iil9KTt2YXIgX28sTWEsaWVhLHNlYT11KCgpPT57dmUoKTtLcigpO3NzKCk7VkpyKCk7VUpyKCk7WEpyKCk7dGVhKCk7YWVhKCk7X289ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LE1hPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxpZWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWRhc2hib2FyZGdyaWQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdO3ZhciB4ZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0Rhc2hib2FyZGdyaWQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgSz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6TnVtYmVyfSldLHA9W1Aoe3R5cGU6T2JqZWN0fSldLHY9W1Aoe3R5cGU6TnVtYmVyfSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxPPVtQKHt0eXBlOlN0cmluZ30pXSxCPVtQKHt0eXBlOkJvb2xlYW59KV0sQT1bUCh7dHlwZTpCb29sZWFufSldLFk9W1Aoe2F0dHJpYnV0ZTohMX0pXSxkZT1bUCh7dHlwZTpTdHJpbmd9KV0sZmU9W2llKCldLHBlPVtpZSgpXSxIPVtpZSgpXSxhZT1baWUoKV0sX28odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3aWRnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJ3aWRnZXRzImluIFYsImhhcyIpLGdldDppKFY9PlYud2lkZ2V0cywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi53aWRnZXRzPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LG8sbCksX28odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZWxsSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJjZWxsSGVpZ2h0ImluIFYsImhhcyIpLGdldDppKFY9PlYuY2VsbEhlaWdodCwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5jZWxsSGVpZ2h0PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGQsZiksX28odGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXJnaW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+Im1hcmdpbiJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLm1hcmdpbiwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5tYXJnaW49bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30saCxtKSxfbyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImNvbHVtbnMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5jb2x1bW5zLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmNvbHVtbnM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sYixnKSxfbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJlZGl0YWJsZSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmVkaXRhYmxlLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmVkaXRhYmxlPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGssTSksX28odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVBbmltYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImVuYWJsZUFuaW1hdGlvbiJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmVuYWJsZUFuaW1hdGlvbiwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5lbmFibGVBbmltYXRpb249bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sXyxTKSxfbyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlbGxIZWlnaHRVbml0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJjZWxsSGVpZ2h0VW5pdCJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmNlbGxIZWlnaHRVbml0LCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmNlbGxIZWlnaHRVbml0PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LEwsRSksX28odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJydGwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InJ0bCJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLnJ0bCwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5ydGw9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sQyx6KSxfbyh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dHcmlkTGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InNob3dHcmlkTGluZXMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5zaG93R3JpZExpbmVzLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLnNob3dHcmlkTGluZXM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sJCxGKSxfbyh0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxheW91dHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImxheW91dHMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5sYXlvdXRzLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmxheW91dHM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sRyxaKSxfbyh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVCcmVha3BvaW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJhY3RpdmVCcmVha3BvaW50ImluIFYsImhhcyIpLGdldDppKFY9PlYuYWN0aXZlQnJlYWtwb2ludCwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5hY3RpdmVCcmVha3BvaW50PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LEQsUSksX28odGhpcyxudWxsLGZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4icGxhY2Vob2xkZXJQb3NpdGlvbiJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLnBsYWNlaG9sZGVyUG9zaXRpb24sImdldCIpLHNldDppKChWLGxlKT0+e1YucGxhY2Vob2xkZXJQb3NpdGlvbj1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxULFcpLF9vKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1ldHJpY3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+Im1ldHJpY3MiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5tZXRyaWNzLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLm1ldHJpY3M9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sbWUscSksX28odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZE1hcmdpbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InJlc29sdmVkTWFyZ2lucyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLnJlc29sdmVkTWFyZ2lucywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5yZXNvbHZlZE1hcmdpbnM9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sVSxqKSxfbyh0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcmV2aWV3V2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4icHJldmlld1dpZGdldHMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5wcmV2aWV3V2lkZ2V0cywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5wcmV2aWV3V2lkZ2V0cz1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxYLEopLF9vKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkt9LG51bGwscikseGU9YT1lLnZhbHVlLEsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6S30pfXN0YXRpYyBkZW1vPXFKcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdO3N0YXRpYyBzdHlsZXM9akpyOyNlPU1hKHRoaXMsbyxbXSk7Z2V0IHdpZGdldHMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgd2lkZ2V0cyhLKXt0aGlzLiNlPUt9I3Q9KE1hKHRoaXMsbCksTWEodGhpcyxkLDgwKSk7Z2V0IGNlbGxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY2VsbEhlaWdodChLKXt0aGlzLiN0PUt9I3I9KE1hKHRoaXMsZiksTWEodGhpcyxoLDEwKSk7Z2V0IG1hcmdpbigpe3JldHVybiB0aGlzLiNyfXNldCBtYXJnaW4oSyl7dGhpcy4jcj1LfSNhPShNYSh0aGlzLG0pLE1hKHRoaXMsYiwxMikpO2dldCBjb2x1bW5zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGNvbHVtbnMoSyl7dGhpcy4jYT1LfSNpPShNYSh0aGlzLGcpLE1hKHRoaXMsaywhMCkpO2dldCBlZGl0YWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCBlZGl0YWJsZShLKXt0aGlzLiNpPUt9I3M9KE1hKHRoaXMsTSksTWEodGhpcyxfLCEwKSk7Z2V0IGVuYWJsZUFuaW1hdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBlbmFibGVBbmltYXRpb24oSyl7dGhpcy4jcz1LfSNuPShNYSh0aGlzLFMpLE1hKHRoaXMsTCwicHgiKSk7Z2V0IGNlbGxIZWlnaHRVbml0KCl7cmV0dXJuIHRoaXMuI259c2V0IGNlbGxIZWlnaHRVbml0KEspe3RoaXMuI249S30jbz0oTWEodGhpcyxFKSxNYSh0aGlzLEMsITEpKTtnZXQgcnRsKCl7cmV0dXJuIHRoaXMuI299c2V0IHJ0bChLKXt0aGlzLiNvPUt9I2w9KE1hKHRoaXMseiksTWEodGhpcywkLCExKSk7Z2V0IHNob3dHcmlkTGluZXMoKXtyZXR1cm4gdGhpcy4jbH1zZXQgc2hvd0dyaWRMaW5lcyhLKXt0aGlzLiNsPUt9I2M9KE1hKHRoaXMsRiksTWEodGhpcyxHLHZvaWQgMCkpO2dldCBsYXlvdXRzKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGxheW91dHMoSyl7dGhpcy4jYz1LfSNkPShNYSh0aGlzLFopLE1hKHRoaXMsRCwiYmFzZSIpKTtnZXQgYWN0aXZlQnJlYWtwb2ludCgpe3JldHVybiB0aGlzLiNkfXNldCBhY3RpdmVCcmVha3BvaW50KEspe3RoaXMuI2Q9S30jdT0oTWEodGhpcyxRKSxNYSh0aGlzLFQsbnVsbCkpO2dldCBwbGFjZWhvbGRlclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHBsYWNlaG9sZGVyUG9zaXRpb24oSyl7dGhpcy4jdT1LfSNwPShNYSh0aGlzLFcpLE1hKHRoaXMsbWUsbnVsbCkpO2dldCBtZXRyaWNzKCl7cmV0dXJuIHRoaXMuI3B9c2V0IG1ldHJpY3MoSyl7dGhpcy4jcD1LfSNmPShNYSh0aGlzLHEpLE1hKHRoaXMsVSxudWxsKSk7Z2V0IHJlc29sdmVkTWFyZ2lucygpe3JldHVybiB0aGlzLiNmfXNldCByZXNvbHZlZE1hcmdpbnMoSyl7dGhpcy4jZj1LfSNoPShNYSh0aGlzLGopLE1hKHRoaXMsWCxudWxsKSk7Z2V0IHByZXZpZXdXaWRnZXRzKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHByZXZpZXdXaWRnZXRzKEspe3RoaXMuI2g9S31jb250YWluZXJCb3VuZHM9KE1hKHRoaXMsSiksbnVsbCk7ZHJhZ1N0YXRlPW51bGw7cmVzaXplU3RhdGU9bnVsbDtyZXNpemVPYnNlcnZlcjtpbnRlcmFjdGlvbkFjdGl2ZT0hMTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb21wdXRlTWV0cmljcygpLHRoaXMub2JzZXJ2ZVJlc2l6ZSgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX11cGRhdGVkKEspeyhLLmhhcygibWFyZ2luIil8fEsuaGFzKCJjb2x1bW5zIil8fEsuaGFzKCJjZWxsSGVpZ2h0Iil8fEsuaGFzKCJjZWxsSGVpZ2h0VW5pdCIpKSYmdGhpcy5jb21wdXRlTWV0cmljcygpLEsuaGFzKCJ3aWRnZXRzIikmJiF0aGlzLmludGVyYWN0aW9uQWN0aXZlJiZ0aGlzLm5vdGlmeUxheW91dENoYW5nZSgpfXJlbmRlcigpe2xldCBLPXRoaXMud2lkZ2V0cztpZihLLmxlbmd0aD09PTApcmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bGF5b3V0R3JpZCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPGRpdj5ObyB3aWRnZXRzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+QWRkIHdpZGdldHMgdG8gcG9wdWxhdGUgdGhlIGRhc2hib2FyZDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgO2xldCBWPXRoaXMuZW5zdXJlTWV0cmljcygpLGxlPXRoaXMucmVzb2x2ZWRNYXJnaW5zPz9FN3QodGhpcy5tYXJnaW4pLG5lPVYuY2VsbEhlaWdodFB4LGVlPXRoaXMucHJldmlld1dpZGdldHM/P3RoaXMud2lkZ2V0cyx6ZT1LSnIoZWUsbGUsbmUpLEhlPXRoaXMucHJldmlld1dpZGdldHM/bmV3IE1hcCh0aGlzLnByZXZpZXdXaWRnZXRzLm1hcChHZT0+W0dlLmlkLEdlXSkpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OiAke3plfXB4OyI+CiAgICAgICAgJHt0aGlzLnNob3dHcmlkTGluZXM/dGhpcy5yZW5kZXJHcmlkTGluZXMoVix6ZSk6bnVsbH0KICAgICAgICAke0subWFwKEdlPT50aGlzLnJlbmRlcldpZGdldChHZSxWLGxlLEhlKSl9CiAgICAgICAgJHt0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/dGhpcy5yZW5kZXJQbGFjZWhvbGRlcihWLGxlKTpudWxsfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyR3JpZExpbmVzKEssVil7bGV0IGxlPVtdLG5lPVtdLGVlPUsuY2VsbFdpZHRoUHgrSy5tYXJnaW5Ib3Jpem9udGFsUHgsemU9Sy5jZWxsSGVpZ2h0UHgrSy5tYXJnaW5WZXJ0aWNhbFB4O2ZvcihsZXQgR2U9MDtHZTw9dGhpcy5jb2x1bW5zO0dlKyspe2xldCBvdD1HZSplZStLLm1hcmdpbkhvcml6b250YWxQeCxEZT10aGlzLnB4VG9QZXJjZW50KG90LEsuY29udGFpbmVyV2lkdGgpO2xlLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtdmVydGljYWwiIHN0eWxlPSJsZWZ0OiAke0RlfSU7Ij48L2Rpdj5gKX1sZXQgSGU9TWF0aC5jZWlsKFYvemUpO2ZvcihsZXQgR2U9MDtHZTw9SGU7R2UrKyl7bGV0IG90PUdlKnplO25lLnB1c2god2A8ZGl2IGNsYXNzPSJncmlkLWxpbmUtaG9yaXpvbnRhbCIgc3R5bGU9InRvcDogJHtvdH1weDsiPjwvZGl2PmApfXJldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxpbmVzIj4KICAgICAgICAke2xlfQogICAgICAgICR7bmV9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJXaWRnZXQoSyxWLGxlLG5lKXtsZXQgZWU9dGhpcy5kcmFnU3RhdGU/LndpZGdldElkPT09Sy5pZCx6ZT10aGlzLnJlc2l6ZVN0YXRlPy53aWRnZXRJZD09PUsuaWQsSGU9Sy5sb2NrZWR8fCF0aGlzLmVkaXRhYmxlLEdlPW5lPy5nZXQoSy5pZCk/P251bGwsb3Q9ZWU/SzpHZT8/SyxEZT10aGlzLmNvbXB1dGVXaWRnZXRSZWN0KG90LFYsbGUpLF9lPXRoaXMucnRsPyJyaWdodCI6ImxlZnQiLG9lPXRoaXMucHhUb1BlcmNlbnQoRGUubGVmdCxWLmNvbnRhaW5lcldpZHRoKSxzZT10aGlzLnB4VG9QZXJjZW50KERlLndpZHRoLFYuY29udGFpbmVyV2lkdGgpLGNlPSIiO2lmKGVlJiZ0aGlzLmRyYWdTdGF0ZT8uY3VycmVudFBvaW50ZXIpe2xldCBUZT10aGlzLmRyYWdTdGF0ZS5jdXJyZW50UG9pbnRlcixxZT10aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxudD1UZS5jbGllbnRYLXFlLmxlZnQtdGhpcy5kcmFnU3RhdGUub2Zmc2V0WC1EZS5sZWZ0LHZ0PVRlLmNsaWVudFktcWUudG9wLXRoaXMuZHJhZ1N0YXRlLm9mZnNldFktRGUudG9wO2NlPWB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke250fXB4LCAke3Z0fXB4KTtgfXJldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImdyaWQtd2lkZ2V0ICR7ZWU/ImRyYWdnaW5nIjoiIn0gJHt6ZT8icmVzaXppbmciOiIifSIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke19lfTogJHtvZX0lOwogICAgICAgICAgdG9wOiAke0RlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke3NlfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7RGUuaGVpZ2h0fXB4OwogICAgICAgICAgJHtjZX0KICAgICAgICAiCiAgICAgICAgZGF0YS13aWRnZXQtaWQ9JHtLLmlkfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgJHtLLnRpdGxlP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ3aWRnZXQtaGVhZGVyICR7SGU/ImxvY2tlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHshSGUmJiFLLm5vTW92ZT9UZT0+dGhpcy5zdGFydERyYWcoVGUsSyk6bnVsbH0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7VGU9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoVGUsSyl9CiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSR7IUhlJiYhSy5ub01vdmU/MDotMX0KICAgICAgICAgICAgICAgICAgQGtleWRvd249JHtUZT0+dGhpcy5oYW5kbGVIZWFkZXJLZXlkb3duKFRlLEspfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke0suaWNvbj93YDxkZWVzLWljb24gLmljb249JHtLLmljb259PjwvZGVlcy1pY29uPmA6bnVsbH0KICAgICAgICAgICAgICAgICAgJHtLLnRpdGxlfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWJvZHkgJHtLLnRpdGxlPyJoYXMtaGVhZGVyIjoiIn0iPgogICAgICAgICAgICAke0suY29udGVudH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHshSGUmJiFLLm5vUmVzaXplP3dgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7VGU9PnRoaXMuc3RhcnRSZXNpemUoVGUsSywiZSIpfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLXMiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke1RlPT50aGlzLnN0YXJ0UmVzaXplKFRlLEssInMiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7VGU9PnRoaXMuc3RhcnRSZXNpemUoVGUsSywic2UiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICBgOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihLLFYpe2lmKCF0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24pcmV0dXJuIHdgYDtsZXQgbGU9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdCh0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24sSyxWKSxuZT10aGlzLnJ0bD8icmlnaHQiOiJsZWZ0IixlZT10aGlzLnB4VG9QZXJjZW50KGxlLmxlZnQsSy5jb250YWluZXJXaWR0aCksemU9dGhpcy5weFRvUGVyY2VudChsZS53aWR0aCxLLmNvbnRhaW5lcldpZHRoKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJncmlkLXdpZGdldCBwbGFjZWhvbGRlciIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke25lfTogJHtlZX0lOwogICAgICAgICAgdG9wOiAke2xlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke3plfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7bGUuaGVpZ2h0fXB4OwogICAgICAgICIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXJ0RHJhZyhLLFYpe2lmKCF0aGlzLmVkaXRhYmxlfHxWLm5vTW92ZXx8Vi5sb2NrZWQpcmV0dXJuO0sucHJldmVudERlZmF1bHQoKSxLLnN0b3BQcm9wYWdhdGlvbigpO2xldCBsZT1LLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmdyaWQtd2lkZ2V0Iik7aWYoIWxlKXJldHVybjtsZXQgbmU9bGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLmRyYWdTdGF0ZT17d2lkZ2V0SWQ6Vi5pZCxwb2ludGVySWQ6Sy5wb2ludGVySWQsb2Zmc2V0WDpLLmNsaWVudFgtbmUubGVmdCxvZmZzZXRZOksuY2xpZW50WS1uZS50b3Asc3RhcnQ6e2lkOlYuaWQseDpWLngseTpWLnksdzpWLncsaDpWLmh9LHByZXZpb3VzUG9zaXRpb246e2lkOlYuaWQseDpWLngseTpWLnksdzpWLncsaDpWLmh9LGN1cnJlbnRQb2ludGVyOntjbGllbnRYOksuY2xpZW50WCxjbGllbnRZOksuY2xpZW50WX0sbGFzdFBsYWNlbWVudDpudWxsfSx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSEwLEsuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShLLnBvaW50ZXJJZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlRHJhZ01vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVEcmFnRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOlYuaWQseDpWLngseTpWLnksdzpWLncsaDpWLmh9fWhhbmRsZURyYWdNb3ZlPWkoSz0+e2lmKCF0aGlzLmRyYWdTdGF0ZSlyZXR1cm47bGV0IFY9dGhpcy5lbnN1cmVNZXRyaWNzKCksbGU9dGhpcy53aWRnZXRzLG5lPWxlLmZpbmQoR2U9PkdlLmlkPT09dGhpcy5kcmFnU3RhdGUud2lkZ2V0SWQpO2lmKCFuZSlyZXR1cm47Sy5wcmV2ZW50RGVmYXVsdCgpO2xldCBlZT10aGlzLmRyYWdTdGF0ZS5wcmV2aW91c1Bvc2l0aW9uLHplPUpKcih7cG9pbnRlcjp7Y2xpZW50WDpLLmNsaWVudFgsY2xpZW50WTpLLmNsaWVudFl9LGNvbnRhaW5lclJlY3Q6dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWV0cmljczpWLGNvbHVtbnM6dGhpcy5jb2x1bW5zLHdpZGdldDpuZSxydGw6dGhpcy5ydGwsZHJhZ09mZnNldFg6dGhpcy5kcmFnU3RhdGUub2Zmc2V0WCxkcmFnT2Zmc2V0WTp0aGlzLmRyYWdTdGF0ZS5vZmZzZXRZfSksSGU9bWYobGUsbmUuaWQse3g6emUueCx5OnplLnl9LHRoaXMuY29sdW1ucyxlZSk7aWYoSGUpe2xldCBHZT1IZS53aWRnZXRzLmZpbmQoRGU9PkRlLmlkPT09bmUuaWQpO3RoaXMuZHJhZ1N0YXRlPXsuLi50aGlzLmRyYWdTdGF0ZSxjdXJyZW50UG9pbnRlcjp7Y2xpZW50WDpLLmNsaWVudFgsY2xpZW50WTpLLmNsaWVudFl9LGxhc3RQbGFjZW1lbnQ6SGUscHJldmlvdXNQb3NpdGlvbjpHZT97aWQ6R2UuaWQseDpHZS54LHk6R2UueSx3OkdlLncsaDpHZS5ofTp7aWQ6bmUuaWQseDp6ZS54LHk6emUueSx3Om5lLncsaDpuZS5ofX0sdGhpcy5wcmV2aWV3V2lkZ2V0cz1IZS53aWRnZXRzO2xldCBvdD1IZS53aWRnZXRzLmZpbmQoRGU9PkRlLmlkPT09bmUuaWQpO290P3RoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6b3QuaWQseDpvdC54LHk6b3QueSx3Om90LncsaDpvdC5ofTp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOm5lLmlkLHg6emUueCx5OnplLnksdzpuZS53LGg6bmUuaH19ZWxzZSB0aGlzLnByZXZpZXdXaWRnZXRzPW51bGwsdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGw7dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LCJoYW5kbGVEcmFnTW92ZSIpO2hhbmRsZURyYWdFbmQ9aShLPT57bGV0IFY9dGhpcy5kcmFnU3RhdGU7aWYoIVZ8fEsucG9pbnRlcklkIT09Vi5wb2ludGVySWQpcmV0dXJuO2xldCBsZT10aGlzLndpZGdldHM7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsO2xldCBuZT10aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/P1Yuc3RhcnQsZWU9bWYobGUsVi53aWRnZXRJZCx7eDpuZS54LHk6bmUueX0sdGhpcy5jb2x1bW5zLFYucHJldmlvdXNQb3NpdGlvbik7aWYoZWUpe2xldCB6ZT1lZS53aWRnZXRzLmZpbmQoSGU9PkhlLmlkPT09Vi53aWRnZXRJZCk7emUmJihlZS53aWRnZXRzLnNvbWUoR2U9PkdlLmlkPT09Vi53aWRnZXRJZD8hMTp6ZS54PEdlLngrR2UudyYmemUueCt6ZS53PkdlLngmJnplLnk8R2UueStHZS5oJiZ6ZS55K3plLmg+R2UueSk/dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoR2U9PkdlLmlkPT09Vi53aWRnZXRJZD97Li4uR2UseDpWLnN0YXJ0LngseTpWLnN0YXJ0Lnl9OkdlKTp0aGlzLmNvbW1pdFBsYWNlbWVudChlZSxWLndpZGdldElkLCJ3aWRnZXQtbW92ZSIpKX1lbHNlIHRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHplPT56ZS5pZD09PVYud2lkZ2V0SWQ/ey4uLnplLHg6Vi5zdGFydC54LHk6Vi5zdGFydC55fTp6ZSk7dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnU3RhdGU9bnVsbCx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSExLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX0sImhhbmRsZURyYWdFbmQiKTtzdGFydFJlc2l6ZShLLFYsbGUpeyF0aGlzLmVkaXRhYmxlfHxWLm5vUmVzaXplfHxWLmxvY2tlZHx8KEsucHJldmVudERlZmF1bHQoKSxLLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZW5zdXJlTWV0cmljcygpLHRoaXMucmVzaXplU3RhdGU9e3dpZGdldElkOlYuaWQscG9pbnRlcklkOksucG9pbnRlcklkLGhhbmRsZXI6bGUsc3RhcnRQb2ludGVyOntjbGllbnRYOksuY2xpZW50WCxjbGllbnRZOksuY2xpZW50WX0sc3RhcnQ6e2lkOlYuaWQseDpWLngseTpWLnksdzpWLncsaDpWLmh9LHN0YXJ0V2lkdGg6Vi53LHN0YXJ0SGVpZ2h0OlYuaCxsYXN0UGxhY2VtZW50Om51bGx9LHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITAsSy5jdXJyZW50VGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKEsucG9pbnRlcklkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVSZXNpemVNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlUmVzaXplRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOlYuaWQseDpWLngseTpWLnksdzpWLncsaDpWLmh9KX1oYW5kbGVSZXNpemVNb3ZlPWkoSz0+e2lmKCF0aGlzLnJlc2l6ZVN0YXRlKXJldHVybjtsZXQgVj10aGlzLmVuc3VyZU1ldHJpY3MoKSxsZT10aGlzLndpZGdldHMsbmU9bGUuZmluZChIZT0+SGUuaWQ9PT10aGlzLnJlc2l6ZVN0YXRlLndpZGdldElkKTtpZighbmUpcmV0dXJuO0sucHJldmVudERlZmF1bHQoKTtsZXQgZWU9ZWVhKHtwb2ludGVyOntjbGllbnRYOksuY2xpZW50WCxjbGllbnRZOksuY2xpZW50WX0sY29udGFpbmVyUmVjdDp0aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtZXRyaWNzOlYsc3RhcnRXaWR0aDp0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0V2lkdGgsc3RhcnRIZWlnaHQ6dGhpcy5yZXNpemVTdGF0ZS5zdGFydEhlaWdodCxzdGFydFBvaW50ZXI6dGhpcy5yZXNpemVTdGF0ZS5zdGFydFBvaW50ZXIsaGFuZGxlcjp0aGlzLnJlc2l6ZVN0YXRlLmhhbmRsZXIsd2lkZ2V0Om5lLGNvbHVtbnM6dGhpcy5jb2x1bW5zfSksemU9bWYobGUsbmUuaWQse3g6bmUueCx5Om5lLnksdzplZS53aWR0aCxoOmVlLmhlaWdodH0sdGhpcy5jb2x1bW5zLHRoaXMucmVzaXplU3RhdGUuc3RhcnQpO2lmKHplKXt0aGlzLnJlc2l6ZVN0YXRlPXsuLi50aGlzLnJlc2l6ZVN0YXRlLGxhc3RQbGFjZW1lbnQ6emV9LHRoaXMucHJldmlld1dpZGdldHM9emUud2lkZ2V0cztsZXQgSGU9emUud2lkZ2V0cy5maW5kKEdlPT5HZS5pZD09PW5lLmlkKTtIZT90aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkhlLmlkLHg6SGUueCx5OkhlLnksdzpIZS53LGg6SGUuaH06dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpuZS5pZCx4Om5lLngseTpuZS55LHc6ZWUud2lkdGgsaDplZS5oZWlnaHR9fWVsc2UgdGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsO3RoaXMucmVxdWVzdFVwZGF0ZSgpfSwiaGFuZGxlUmVzaXplTW92ZSIpO2hhbmRsZVJlc2l6ZUVuZD1pKEs9PntsZXQgVj10aGlzLnJlc2l6ZVN0YXRlO2lmKCFWfHxLLnBvaW50ZXJJZCE9PVYucG9pbnRlcklkKXJldHVybjtsZXQgbGU9dGhpcy53aWRnZXRzO3RoaXMucHJldmlld1dpZGdldHM9bnVsbDtsZXQgbmU9Vi5sYXN0UGxhY2VtZW50Pz9tZihsZSxWLndpZGdldElkLHt4OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueD8/Vi5zdGFydC54LHk6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy55Pz9WLnN0YXJ0Lnksdzp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lnc/P1Yuc3RhcnQudyxoOnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8uaD8/Vi5zdGFydC5ofSx0aGlzLmNvbHVtbnMsVi5zdGFydCk7bmU/dGhpcy5jb21taXRQbGFjZW1lbnQobmUsVi53aWRnZXRJZCwid2lkZ2V0LXJlc2l6ZSIpOnRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKGVlPT5lZS5pZD09PVYud2lkZ2V0SWQ/ey4uLmVlLHc6Vi5zdGFydC53LGg6Vi5zdGFydC5ofTplZSksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5yZXNpemVTdGF0ZT1udWxsLHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITEsdGhpcy5yZWxlYXNlUG9pbnRlckV2ZW50cygpfSwiaGFuZGxlUmVzaXplRW5kIik7aGFuZGxlSGVhZGVyS2V5ZG93bihLLFYpe2lmKCF0aGlzLmVkaXRhYmxlfHxWLm5vTW92ZXx8Vi5sb2NrZWQpcmV0dXJuO2xldCBsZT1LLmtleSxuZT1LLnNoaWZ0S2V5LGVlPW51bGw7aWYobmUmJlsiQXJyb3dMZWZ0IiwiQXJyb3dSaWdodCIsIkFycm93VXAiLCJBcnJvd0Rvd24iXS5pbmNsdWRlcyhsZSkpe0sucHJldmVudERlZmF1bHQoKTtsZXQgRGU9bGU9PT0iQXJyb3dSaWdodCJ8fGxlPT09IkFycm93RG93biI/MTotMTtpZihsZT09PSJBcnJvd0xlZnQifHxsZT09PSJBcnJvd1JpZ2h0Iil7bGV0IF9lPVYubWF4Vz8/dGhpcy5jb2x1bW5zLVYueCxvZT1NYXRoLm1heChWLm1pblc/PzEsTWF0aC5taW4oX2UsVi53K0RlKSk7ZWU9bWYodGhpcy53aWRnZXRzLFYuaWQse3g6Vi54LHk6Vi55LHc6b2UsaDpWLmh9LHRoaXMuY29sdW1ucyl9ZWxzZXtsZXQgX2U9Vi5tYXhIPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksb2U9TWF0aC5tYXgoVi5taW5IPz8xLE1hdGgubWluKF9lLFYuaCtEZSkpO2VlPW1mKHRoaXMud2lkZ2V0cyxWLmlkLHt4OlYueCx5OlYueSx3OlYudyxoOm9lfSx0aGlzLmNvbHVtbnMpfWVlJiZ0aGlzLmNvbW1pdFBsYWNlbWVudChlZSxWLmlkLCJ3aWRnZXQtcmVzaXplIik7cmV0dXJufWxldCBIZT17QXJyb3dMZWZ0OntkeDotMSxkeTowfSxBcnJvd1JpZ2h0OntkeDoxLGR5OjB9LEFycm93VXA6e2R4OjAsZHk6LTF9LEFycm93RG93bjp7ZHg6MCxkeToxfX1bbGVdO2lmKCFIZSlyZXR1cm47Sy5wcmV2ZW50RGVmYXVsdCgpO2xldCBHZT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuY29sdW1ucy1WLncsVi54K0hlLmR4KSksb3Q9TWF0aC5tYXgoMCxWLnkrSGUuZHkpO2VlPW1mKHRoaXMud2lkZ2V0cyxWLmlkLHt4OkdlLHk6b3R9LHRoaXMuY29sdW1ucyksZWUmJnRoaXMuY29tbWl0UGxhY2VtZW50KGVlLFYuaWQsIndpZGdldC1tb3ZlIil9aGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoSyxWKXtLLnByZXZlbnREZWZhdWx0KCksSy5zdG9wUHJvcGFnYXRpb24oKSxyZWEoe3dpZGdldDpWLGhvc3Q6dGhpcyxldmVudDpLfSl9Y29tbWl0UGxhY2VtZW50KEssVixsZSl7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMud2lkZ2V0cz1LLndpZGdldHM7bGV0IG5lPXRoaXMud2lkZ2V0cy5maW5kKGVlPT5lZS5pZD09PVYpO25lJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KGxlLHtkZXRhaWw6e3dpZGdldDpuZSxkaXNwbGFjZWQ6Sy5tb3ZlZFdpZGdldHMuZmlsdGVyKGVlPT5lZSE9PVYpLHN3YXBwZWRXaXRoOksuc3dhcHBlZFdpdGh9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9cmVtb3ZlV2lkZ2V0KEspe2xldCBWPXRoaXMud2lkZ2V0cy5maW5kKGxlPT5sZS5pZD09PUspO1YmJih0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihsZT0+bGUuaWQhPT1LKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ3aWRnZXQtcmVtb3ZlIix7ZGV0YWlsOnt3aWRnZXQ6Vn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9dXBkYXRlV2lkZ2V0KEssVil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAobGU9PmxlLmlkPT09Sz97Li4ubGUsLi4uVn06bGUpfWdldExheW91dCgpe3JldHVybiB0aGlzLndpZGdldHMubWFwKCh7aWQ6Syx4OlYseTpsZSx3Om5lLGg6ZWV9KT0+KHtpZDpLLHg6Vix5OmxlLHc6bmUsaDplZX0pKX1zZXRMYXlvdXQoSyl7dGhpcy53aWRnZXRzPVFKcih0aGlzLndpZGdldHMsSyl9bG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSExfXVubG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSEwfWFkZFdpZGdldChLLFY9ITEpe2xldCBsZT17Li4uS307aWYoVnx8bGUuYXV0b1Bvc2l0aW9uKXtsZXQgbmU9STd0KHRoaXMud2lkZ2V0cyxsZS53LGxlLmgsdGhpcy5jb2x1bW5zKTtsZS54PW5lLngsbGUueT1uZS55fXRoaXMud2lkZ2V0cz1bLi4udGhpcy53aWRnZXRzLGxlXX1jb21wYWN0KEs9InZlcnRpY2FsIil7bGV0IFY9dGhpcy53aWRnZXRzLm1hcChsZT0+KHsuLi5sZX0pKTtaSnIoVixLKSx0aGlzLndpZGdldHM9Vn1hcHBseUJyZWFrcG9pbnRMYXlvdXQoSyl7dGhpcy5hY3RpdmVCcmVha3BvaW50PUs7bGV0IFY9dGhpcy5sYXlvdXRzPy5bS107ViYmdGhpcy5zZXRMYXlvdXQoVil9bm90aWZ5TGF5b3V0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibGF5b3V0LWNoYW5nZSIse2RldGFpbDp7bGF5b3V0OnRoaXMuZ2V0TGF5b3V0KCl9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9ZW5zdXJlTWV0cmljcygpe3JldHVybiB0aGlzLm1ldHJpY3N8fHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm1ldHJpY3N9Y29tcHV0ZU1ldHJpY3MoKXtpZighdGhpcy5pc0Nvbm5lY3RlZClyZXR1cm47bGV0IEs9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmNvbnRhaW5lckJvdW5kcz1LO2xldCBWPUU3dCh0aGlzLm1hcmdpbik7dGhpcy5yZXNvbHZlZE1hcmdpbnM9Vix0aGlzLm1ldHJpY3M9WUpyKEsud2lkdGgsdGhpcy5jb2x1bW5zLFYsdGhpcy5jZWxsSGVpZ2h0LHRoaXMuY2VsbEhlaWdodFVuaXQpfW9ic2VydmVSZXNpemUoKXt0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmNvbXB1dGVNZXRyaWNzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcykpfWRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpe3RoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMH1yZWxlYXNlUG9pbnRlckV2ZW50cygpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZURyYWdNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlRHJhZ0VuZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUmVzaXplTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZVJlc2l6ZUVuZCl9cHhUb1BlcmNlbnQoSyxWKXtyZXR1cm4gVj9OdW1iZXIoKEsvVioxMDApLnRvRml4ZWQoNCkpOjB9Y29tcHV0ZVdpZGdldFJlY3QoSyxWLGxlKXtsZXQgbmU9Vi5jZWxsV2lkdGhQeCxlZT1WLmNlbGxIZWlnaHRQeCx6ZT1LLngqKG5lK2xlLmhvcml6b250YWwpK2xlLmhvcml6b250YWwsSGU9Sy55KihlZStsZS52ZXJ0aWNhbCkrbGUudmVydGljYWwsR2U9Sy53Km5lK01hdGgubWF4KDAsSy53LTEpKmxlLmhvcml6b250YWwsb3Q9Sy5oKmVlK01hdGgubWF4KDAsSy5oLTEpKmxlLnZlcnRpY2FsO3JldHVybntsZWZ0OnplLHRvcDpIZSx3aWR0aDpHZSxoZWlnaHQ6b3R9fXN0YXRpY3tNYShhLHIpfX07cmV0dXJuIHhlPWF9KSgpfSk7dmFyIG5lYT11KCgpPT57c2VhKCl9KTtmdW5jdGlvbiBvZWEoKXtyZXR1cm4gd2AKICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjEiPlRoaXMgaXMgYSBIMSBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIyIj5UaGlzIGlzIGEgSDIgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMyI+VGhpcyBpcyBhIEgzIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjQiPlRoaXMgaXMgYSBINCBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI1Ij5UaGlzIGlzIGEgSDUgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNiI+VGhpcyBpcyBhIEg2IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyIj5UaGlzIGlzIGFuIGhyIGhlYWRpbmcgKGxldmVsPSJociIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI3Ij5UaGlzIGlzIGFuIGhyIGhlYWRpbmcgKGxldmVsPSI3Iik8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9ImhyLXNtYWxsIj5UaGlzIGlzIGFuIGhyLXNtYWxsIGhlYWRpbmcgKGxldmVsPSJoci1zbWFsbCIpPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI4Ij5UaGlzIGlzIGFuIGhyLXNtYWxsIGhlYWRpbmcgKGxldmVsPSI4Iik8L2RlZXMtaGVhZGluZz4KICBgfXZhciBsZWE9dSgoKT0+e3ZlKCk7aShvZWEsImRlbW9GdW5jIil9KTt2YXIgY2VhLFA3dCxkZWEsdWVhPXUoKCk9Pnt2ZSgpO2xlYSgpO19zKCk7bHQoKTtjZWE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LFA3dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZGVhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1oZWFkaW5nIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNIZWFkaW5nIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxjZWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsZXZlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibGV2ZWwiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5sZXZlbCwiZ2V0Iiksc2V0OmkoKGYscCk9PntmLmxldmVsPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxjZWEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1vZWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1QN3QodGhpcyxvLCIxIik7Z2V0IGxldmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxldmVsKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLyogSGVhZGluZyBzdHlsZXMuCiAgICAgICAqIENvbG9yIGhpZXJhcmNoeTogaDEtaDIgc3RheSBwcm9taW5lbnQgd2l0aCB0ZXh0LXByaW1hcnk7IGgzLWg2IHN0ZXAKICAgICAgICogZG93biB0byB0ZXh0LXNlY29uZGFyeSBzbyB0aGV5IHJlYWQgYXMgc3ViaGVhZGluZ3MgaW5zdGVhZCBvZgogICAgICAgKiBtaW5pLWgxcy4gS2VlcHMgdGhlIHZpc3VhbCBsb3VkbmVzcyBvdXQgb2Ygc21hbGxlciBoZWFkaW5ncy4gKi8KICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICBoMSwgaDIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KICAgICAgaDMsIGg0LCBoNSwgaDYgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgfQoKICAgICAgLyogUGVyLWxldmVsIHR5cG9ncmFwaHkgKyBzcGFjaW5nLgogICAgICAgKiBNYXJnaW4gc2NhbGVzIHdpdGggaW1wb3J0YW5jZTogaDEgZ2V0cyB0aGUgbW9zdCBicmVhdGhpbmcgcm9vbSwKICAgICAgICogaDYgdGhlIGxlYXN0LiBUb3AgbWFyZ2luID4gYm90dG9tIG1hcmdpbiBzbyBoZWFkaW5ncyBncm91cCB3aXRoCiAgICAgICAqIHRoZSBjb250ZW50IHRoYXQgZm9sbG93cyB0aGVtLiAqLwogICAgICBoMSB7CiAgICAgICAgLyogaDEgdXNlcyB3ZWlnaHQgNTAwLCBub3QgNjAwOiB0aGUgQ2FsIFNhbnMgZGlzcGxheSBmb250IGlzCiAgICAgICAgICogYWxyZWFkeSBzdHlsaXplZCBlbm91Z2ggdGhhdCBib2xkICsgbWF4IGNvbnRyYXN0ICsgMzJweCBzdGFja3MKICAgICAgICAgKiB0b28gbXVjaCBlbXBoYXNpcy4gNTAwIGtlZXBzIHRoZSB0eXBvZ3JhcGhpYyBpbXBhY3Qgd2l0aG91dAogICAgICAgICAqIHNob3V0aW5nLiAqLwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAke3hqcn07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDI1ZW07CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKSAwIHZhcigtLWRlZXMtc3BhY2luZy1sZyk7CiAgICAgIH0KICAgICAgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy14bCkgMCB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOwogICAgICB9CiAgICAgIGgzIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsKICAgICAgfQogICAgICBoNCB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKSAwIHZhcigtLWRlZXMtc3BhY2luZy1zbSk7CiAgICAgIH0KICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBtYXJnaW46IHZhcigtLWRlZXMtc3BhY2luZy1tZCkgMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICAgIGg2IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctbWQpIDAgdmFyKC0tZGVlcy1zcGFjaW5nLXhzKTsKICAgICAgfQoKICAgICAgLyogSG9yaXpvbnRhbCBydWxlIHN0eWxlIGhlYWRpbmcgKi8KICAgICAgLmhlYWRpbmctaHIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpIDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KICAgICAgLyogRmFkZSBsaW5lcyB0b3dhcmQgYW5kIGF3YXkgZnJvbSB0ZXh0IGZvciBociBzdHlsZSAqLwogICAgICAuaGVhZGluZy1ocjo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZykpOwogICAgICAgIG1hcmdpbjogMCB2YXIoLS1kZWVzLXNwYWNpbmctc20pOwogICAgICB9CiAgICAgIC5oZWFkaW5nLWhyOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyksIHRyYW5zcGFyZW50KTsKICAgICAgICBtYXJnaW46IDAgdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsKICAgICAgfQogICAgICAvKiBTbWFsbCBociB2YXJpYW50IHdpdGggcmVkdWNlZCBtYXJnaW5zICovCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGwgewogICAgICAgIG1hcmdpbjogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKSAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQogICAgICAuaGVhZGluZy1oci5oZWFkaW5nLWhyLXNtYWxsOjpiZWZvcmUsCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmFmdGVyIHsKICAgICAgICBtYXJnaW46IDAgdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7c3dpdGNoKHRoaXMubGV2ZWwpe2Nhc2UiMSI6cmV0dXJuIHdgPGgxPjxzbG90Pjwvc2xvdD48L2gxPmA7Y2FzZSIyIjpyZXR1cm4gd2A8aDI+PHNsb3Q+PC9zbG90PjwvaDI+YDtjYXNlIjMiOnJldHVybiB3YDxoMz48c2xvdD48L3Nsb3Q+PC9oMz5gO2Nhc2UiNCI6cmV0dXJuIHdgPGg0PjxzbG90Pjwvc2xvdD48L2g0PmA7Y2FzZSI1IjpyZXR1cm4gd2A8aDU+PHNsb3Q+PC9zbG90PjwvaDU+YDtjYXNlIjYiOnJldHVybiB3YDxoNj48c2xvdD48L3Nsb3Q+PC9oNj5gO2Nhc2UiNyI6Y2FzZSJociI6cmV0dXJuIHdgPGRpdiBjbGFzcz0iaGVhZGluZy1ociI+PHNsb3Q+PC9zbG90PjwvZGl2PmA7Y2FzZSI4IjpjYXNlImhyLXNtYWxsIjpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJoZWFkaW5nLWhyIGhlYWRpbmctaHItc21hbGwiPjxzbG90Pjwvc2xvdD48L2Rpdj5gO2RlZmF1bHQ6cmV0dXJuIHdgPGgxPjxzbG90Pjwvc2xvdD48L2gxPmB9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxQN3QodGhpcyxsKX1zdGF0aWN7UDd0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBwZWE9dSgoKT0+e3VlYSgpfSk7dmFyIGZlYT11KCgpPT57T3koKX0pO3ZhciBoZWEsbWVhPXUoKCk9Pnt2ZSgpO2hlYT1pKCgpPT53YAogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTZweDsiPgogICAgPCEtLSBTbWFsbCBzZXQgb2YgcGFnZXMgLS0+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsiPgogICAgICA8c3Bhbj41IHBhZ2VzLCBzdGFydGluZyBhdCAxOjwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezV9CiAgICAgICAgLnBhZ2U9JHsxfQogICAgICAgIEBwYWdlLWNoYW5nZT0ke3Q9PmNvbnNvbGUubG9nKCJQYWdlIGNoYW5nZWQgdG8iLHQuZGV0YWlsLnBhZ2UpfQogICAgICA+PC9kZWVzLXBhZ2luYXRpb24+CiAgICA8L2Rpdj4KCiAgICA8IS0tIExhcmdlciBzZXQgb2YgcGFnZXMgLS0+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsiPgogICAgICA8c3Bhbj4xNSBwYWdlcywgc3RhcnRpbmcgYXQgODo8L3NwYW4+CiAgICAgIDxkZWVzLXBhZ2luYXRpb24KICAgICAgICAudG90YWw9JHsxNX0KICAgICAgICAucGFnZT0kezh9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7dD0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIsdC5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIE43dCxCcmUsZ2VhLGJlYT11KCgpPT57dmUoKTttZWEoKTtsdCgpO043dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sQnJlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxnZWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXBhZ2luYXRpb24iKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1BhZ2luYXRpb24iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk51bWJlcixyZWZsZWN0OiEwfSldLGM9W1Aoe3R5cGU6TnVtYmVyLHJlZmxlY3Q6ITB9KV0sTjd0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4icGFnZSJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnBhZ2UsImdldCIpLHNldDppKChtLHYpPT57bS5wYWdlPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxON3QodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0b3RhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4idG90YWwiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS50b3RhbCwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnRvdGFsPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sZCxmKSxON3QobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1oZWE7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1CcmUodGhpcyxvLDEpO2dldCBwYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBhZ2UoaCl7dGhpcy4jZT1ofSN0PShCcmUodGhpcyxsKSxCcmUodGhpcyxkLDEpKTtnZXQgdG90YWwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdG90YWwoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBtYXJnaW46IDAgMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlZWUiLCIjNDQ0Iil9OwogICAgICB9CiAgICAgIGJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2FhYSIsIiM2NjYiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmN1cnJlbnQgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIHNwYW4uZWxsaXBzaXMgewogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQogICAgYF07Z2V0IHBhZ2VzKCl7bGV0IGg9W10sbT10aGlzLnRvdGFsLHY9dGhpcy5wYWdlO2lmKG08PTcpZm9yKGxldCBiPTE7Yjw9bTtiKyspaC5wdXNoKGIpO2Vsc2V7aC5wdXNoKDEpLHY+NCYmaC5wdXNoKCIuLi4iKTtsZXQgYj1NYXRoLm1heCgyLHYtMiksZz1NYXRoLm1pbihtLTEsdisyKTtmb3IobGV0IHk9Yjt5PD1nO3krKyloLnB1c2goeSk7djxtLTMmJmgucHVzaCgiLi4uIiksaC5wdXNoKG0pfXJldHVybiBofXJlbmRlcigpe3JldHVybiB3YAogICAgICA8YnV0dG9uCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZSh0aGlzLnBhZ2UtMSl9CiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5wYWdlPD0xfQogICAgICAgIGFyaWEtbGFiZWw9IlByZXZpb3VzIHBhZ2UiCiAgICAgID4KICAgICAgICDigLkKICAgICAgPC9idXR0b24+CiAgICAgICR7dGhpcy5wYWdlcy5tYXAoaD0+aD09PSIuLi4iP3dgPHNwYW4gY2xhc3M9ImVsbGlwc2lzIj7igKY8L3NwYW4+YDp3YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSIke2g9PT10aGlzLnBhZ2U/ImN1cnJlbnQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UoaCl9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtoPT09dGhpcy5wYWdlfQogICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iUGFnZSAke2h9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7aH0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZSsxKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U+PXRoaXMudG90YWx9CiAgICAgICAgYXJpYS1sYWJlbD0iTmV4dCBwYWdlIgogICAgICA+CiAgICAgICAg4oC6CiAgICAgIDwvYnV0dG9uPgogICAgYH1jaGFuZ2VQYWdlKGgpe2g8MXx8aD50aGlzLnRvdGFsfHxoPT09dGhpcy5wYWdlfHwodGhpcy5wYWdlPWgsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicGFnZS1jaGFuZ2UiLHtkZXRhaWw6e3BhZ2U6dGhpcy5wYWdlfSxidWJibGVzOiEwfSkpKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksQnJlKHRoaXMsZil9c3RhdGlje0JyZShhLHIpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgeGVhPXUoKCk9PntiZWEoKX0pO3ZhciB2ZWE9dSgoKT0+e3duKCl9KTt2YXIgeWVhLHdlYT11KCgpPT57dmUoKTtPN3QoKTt5ZWE9aSgoKT0+e2xldCB0PVt7a2V5OiJlbWFpbCIsbGFiZWw6IkFjY291bnQgZW1haWwiLHZhbHVlOiJhZG1pbkBleGFtcGxlLmNvbSJ9LHtrZXk6InN0YXR1cyIsbGFiZWw6IlN0YXR1cyIsdmFsdWU6ImVuYWJsZWQifSx7a2V5OiJtb2RlIixsYWJlbDoiTW9kZSIsdmFsdWU6InByb2R1Y3Rpb24ifSx7a2V5OiJhdXRvUmVuZXciLGxhYmVsOiJBdXRvLXJlbmV3Iix2YWx1ZToib24ifSx7a2V5OiJ0aHJlc2hvbGQiLGxhYmVsOiJSZW5ld2FsIHRocmVzaG9sZCIsdmFsdWU6IjMwIGRheXMifV0sZT1be25hbWU6IkVkaXQiLGFjdGlvbjppKCgpPT5jb25zb2xlLmxvZygiRWRpdCBjbGlja2VkIiksImFjdGlvbiIpfV0scj1be25hbWU6IkNvbmZpZ3VyZSIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJDb25maWd1cmUgY2xpY2tlZCIpLCJhY3Rpb24iKX1dLGE9W3tuYW1lOiJSZXNldCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJSZXNldCBjbGlja2VkIiksImFjdGlvbiIpfSx7bmFtZToiRWRpdCIsYWN0aW9uOmkoKCk9PmNvbnNvbGUubG9nKCJFZGl0IGNsaWNrZWQiKSwiYWN0aW9uIil9XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgJHtyZWAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGVlcy1zZXR0aW5ncwogICAgICAgICAgLmhlYWRpbmc9JHsiQUNNRSBTZXR0aW5ncyJ9CiAgICAgICAgICAuc2V0dGluZ3NGaWVsZHM9JHt0fQogICAgICAgICAgLmFjdGlvbnM9JHtlfQogICAgICAgID48L2RlZXMtc2V0dGluZ3M+CgogICAgICAgIDxkZWVzLXNldHRpbmdzCiAgICAgICAgICAuaGVhZGluZz0keyJBQ01FIFNldHRpbmdzIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJObyBBQ01FIGNvbmZpZ3VyYXRpb24geWV0LiBDbGljayBDb25maWd1cmUgdG8gc2V0IHVwIGF1dG9tYXRlZCBUTFMgY2VydGlmaWNhdGUgaXNzdWFuY2UuIn0KICAgICAgICAgIC5hY3Rpb25zPSR7cn0KICAgICAgICA+PC9kZWVzLXNldHRpbmdzPgoKICAgICAgICA8ZGVlcy1zZXR0aW5ncwogICAgICAgICAgLmhlYWRpbmc9JHsiU2VydmVyIENvbmZpZyJ9CiAgICAgICAgICAuc2V0dGluZ3NGaWVsZHM9JHtbe2tleToiaG9zdCIsbGFiZWw6Ikhvc3RuYW1lIix2YWx1ZToicHJveHkuZXhhbXBsZS5jb20ifSx7a2V5OiJwb3J0IixsYWJlbDoiUG9ydCIsdmFsdWU6IjQ0MyJ9XX0KICAgICAgICAgIC5hY3Rpb25zPSR7YX0KICAgICAgICA+PC9kZWVzLXNldHRpbmdzPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSwiZGVtb0Z1bmMiKX0pO3ZhciBIcmUsdjMsa2VhLE83dD11KCgpPT57dmUoKTt3ZWEoKTtfcygpO2x0KCk7bnMoKTtIcmU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHYzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxrZWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXNldHRpbmdzIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTZXR0aW5ncyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe2F0dHJpYnV0ZTohMX0pXSx2PVtQKHthdHRyaWJ1dGU6ITF9KV0sSHJlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iaGVhZGluZyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmhlYWRpbmcsImdldCIpLHNldDppKChNLE4pPT57TS5oZWFkaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxIcmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkZXNjcmlwdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iZGVzY3JpcHRpb24iaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5kZXNjcmlwdGlvbiwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmRlc2NyaXB0aW9uPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxIcmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXR0aW5nc0ZpZWxkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic2V0dGluZ3NGaWVsZHMiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5zZXR0aW5nc0ZpZWxkcywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnNldHRpbmdzRmllbGRzPU59LCJzZXQiKX0sbWV0YWRhdGE6a30saCxtKSxIcmUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJhY3Rpb25zImluIE0sImhhcyIpLGdldDppKE09Pk0uYWN0aW9ucywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmFjdGlvbnM9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLEhyZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPXllYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPXYzKHRoaXMsbywiIik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhrKXt0aGlzLiNlPWt9I3Q9KHYzKHRoaXMsbCksdjModGhpcyxkLCIiKSk7Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRlc2NyaXB0aW9uKGspe3RoaXMuI3Q9a30jcj0odjModGhpcyxmKSx2Myh0aGlzLGgsW10pKTtnZXQgc2V0dGluZ3NGaWVsZHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2V0dGluZ3NGaWVsZHMoayl7dGhpcy4jcj1rfSNhPSh2Myh0aGlzLG0pLHYzKHRoaXMsYixbXSkpO2dldCBhY3Rpb25zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGFjdGlvbnMoayl7dGhpcy4jYT1rfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgfQoKICAgICAgLnNldHRpbmdzR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDEycHggMjRweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAuc2V0dGluZ3NGaWVsZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuZmllbGRMYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmZpZWxkVmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuc2V0dGluZ3NEZXNjcmlwdGlvbiB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMTUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xNSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBrPXRoaXMuc2V0dGluZ3NGaWVsZHMubGVuZ3RoPjAsTT10aGlzLmFjdGlvbnMubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9JHt0aGlzLmhlYWRpbmd9PgogICAgICAgICR7az93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzR3JpZCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2V0dGluZ3NGaWVsZHMubWFwKE49PndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3NGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGRMYWJlbCI+JHtOLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZFZhbHVlIj4ke04udmFsdWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzRGVzY3JpcHRpb24iPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAke00/d2AKICAgICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJ1dHRvbnMiPgogICAgICAgICAgICAgICAgJHt0aGlzLmFjdGlvbnMubWFwKChOLF8pPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJib3R0b21CdXR0b24gJHtfPT09dGhpcy5hY3Rpb25zLmxlbmd0aC0xPyJwcmltYXJ5IjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+Ti5hY3Rpb24oKX0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAke04ubmFtZX0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdjModGhpcyxnKX1zdGF0aWN7djMoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7dmFyIFNlYT11KCgpPT57Tzd0KCl9KTt2YXIgTWVhLHFyZSxDZWEsemVhLF9lYT11KCgpPT57dmUoKTtQNmUoKTtNZWE9aShhc3luYyh0LGUpPT5uZXcgUHJvbWlzZShyPT57bGV0IGE9ITEscz1pKGw9PnthfHwoYT0hMCxlJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixuKSxyKGwpKX0sImZpbmlzaCIpLG49aSgoKT0+e3dpbmRvdy5jbGVhclRpbWVvdXQobykscyghMSl9LCJoYW5kbGVBYm9ydCIpLG89d2luZG93LnNldFRpbWVvdXQoKCk9PntzKCEwKX0sdCk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbix7b25jZTohMH0pfSksIndhaXRGb3JQcm9ncmVzc1RpY2siKSxxcmU9aSgodD0iQ29udGludWUiKT0+W3tuYW1lOnQsYWN0aW9uOmkoYXN5bmMgZT0+ZT8uZ29OZXh0KCksImFjdGlvbiIpfV0sImNyZWF0ZUNvbnRpbnVlTWVudU9wdGlvbnMiKSxDZWE9aSgoKT0+W3t0aXRsZToiQWNjb3VudCBTZXR1cCIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJlbWFpbCIgbGFiZWw9IldvcmsgRW1haWwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJwYXNzd29yZCIgbGFiZWw9IkNyZWF0ZSBQYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6cXJlKCl9LHt0aXRsZToiUHJvZmlsZSBEZXRhaWxzIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImZpcnN0TmFtZSIgbGFiZWw9IkZpcnN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJsYXN0TmFtZSIgbGFiZWw9Ikxhc3QgTmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczpxcmUoKX0se3RpdGxlOiJDb250YWN0IEluZm9ybWF0aW9uIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUga2V5PSJwaG9uZSIgbGFiZWw9Ik1vYmlsZSBOdW1iZXIiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iY29tcGFueSIgbGFiZWw9IkNvbXBhbnkiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6cXJlKCl9LHt0aXRsZToiUHJvdmlzaW9uIFdvcmtzcGFjZSIsY29udGVudDp3YAogICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICA8cD4KICAgICAgICAgIFdlIGFyZSBjcmVhdGluZyB5b3VyIHN0YXJ0ZXIgd29ya3NwYWNlLCBhcHBseWluZyB5b3VyIG9uYm9hcmRpbmcgY2hvaWNlcywKICAgICAgICAgIGFuZCBwcmVwYXJpbmcgYSBsaXZlIHByZXZpZXcuIFRoaXMgc3RlcCBtb3ZlcyBmb3J3YXJkIGF1dG9tYXRpY2FsbHkgd2hlbgogICAgICAgICAgdGhlIGVudmlyb25tZW50IGlzIHJlYWR5LgogICAgICAgIDwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgYCxwcm9ncmVzc1N0ZXA6e2xhYmVsOiJXb3Jrc3BhY2Ugc2V0dXAiLHBlcmNlbnRhZ2U6OCxpbmRldGVybWluYXRlOiEwLHN0YXR1c1Jvd3M6NCxzdGF0dXNUZXh0OiJBbGxvY2F0aW5nIGEgY2xlYW4gd29ya3NwYWNlLi4uIix0ZXJtaW5hbExpbmVzOlsiQWxsb2NhdGluZyBhIGNsZWFuIHdvcmtzcGFjZSJdfSx2YWxpZGF0aW9uRnVuYzppKGFzeW5jKHQsZSxyKT0+e2xldCBhPVt7bGluZToiQWxsb2NhdGluZyBhIGNsZWFuIHdvcmtzcGFjZSIscGVyY2VudGFnZTo4LGRlbGF5OjUwMH0se2xpbmU6IlN5bmNpbmcgYWNjb3VudCBwcmVmZXJlbmNlcyIscGVyY2VudGFnZToyNCxkZWxheTo2NTB9LHtsaW5lOiJJbnN0YWxsaW5nIHNlbGVjdGVkIGludGVncmF0aW9ucyIscGVyY2VudGFnZTo0NyxkZWxheTo3MDB9LHtsaW5lOiJHZW5lcmF0aW5nIHN0YXJ0ZXIgcHJvamVjdCBmaWxlcyIscGVyY2VudGFnZTo3MSxkZWxheTo2NTB9LHtsaW5lOiJCb290aW5nIHRoZSBsaXZlIHByZXZpZXcgZW52aXJvbm1lbnQiLHBlcmNlbnRhZ2U6OTIsZGVsYXk6NzAwfV07dC5yZXNldFByb2dyZXNzU3RlcCgpO2ZvcihsZXRbcyxuXW9mIGEuZW50cmllcygpKWlmKHI/LmFib3J0ZWR8fChzPT09MD90LnVwZGF0ZVByb2dyZXNzU3RlcCh7cGVyY2VudGFnZTpuLnBlcmNlbnRhZ2UsaW5kZXRlcm1pbmF0ZTohMCxzdGF0dXNUZXh0OmAke24ubGluZX0uLi5gLHRlcm1pbmFsTGluZXM6W24ubGluZV19KToodC5hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKG4ubGluZSksdC51cGRhdGVQcm9ncmVzc1N0ZXAoe3BlcmNlbnRhZ2U6bi5wZXJjZW50YWdlLGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzVGV4dDpgJHtuLmxpbmV9Li4uYH0pKSwhYXdhaXQgTWVhKG4uZGVsYXkscikpKXJldHVybjt0LmFwcGVuZFByb2dyZXNzU3RlcExpbmUoIldvcmtzcGFjZSByZWFkeSIpLHQudXBkYXRlUHJvZ3Jlc3NTdGVwKHtwZXJjZW50YWdlOjEwMCxpbmRldGVybWluYXRlOiExLHN0YXR1c1RleHQ6IldvcmtzcGFjZSByZWFkeS4ifSksYXdhaXQgTWVhKDM1MCxyKX0sInZhbGlkYXRpb25GdW5jIil9LHt0aXRsZToiVGVhbSBTaXplIixjb250ZW50OndgCiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIGtleT0idGVhbVNpemUiCiAgICAgICAgICBsYWJlbD0iSG93IGJpZyBpcyB5b3VyIHRlYW0/IgogICAgICAgICAgLm9wdGlvbnM9JHtbe2xhYmVsOiIxLTUiLHZhbHVlOiIxLTUifSx7bGFiZWw6IjYtMjAiLHZhbHVlOiI2LTIwIn0se2xhYmVsOiIyMS01MCIsdmFsdWU6IjIxLTUwIn0se2xhYmVsOiI1MSsiLHZhbHVlOiI1MSsifV19CiAgICAgICAgICByZXF1aXJlZAogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1mb3JtPgogICAgYCxtZW51T3B0aW9uczpxcmUoKX0se3RpdGxlOiJHb2FscyIsY29udGVudDp3YAogICAgICA8ZGVlcy1mb3JtPgogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICBrZXk9ImdvYWwiCiAgICAgICAgICBsYWJlbD0iTWFpbiBvYmplY3RpdmUiCiAgICAgICAgICAub3B0aW9ucz0ke1t7bGFiZWw6Ik9uYm9hcmRpbmciLHZhbHVlOiJvbmJvYXJkaW5nIn0se2xhYmVsOiJBbmFseXRpY3MiLHZhbHVlOiJhbmFseXRpY3MifSx7bGFiZWw6IkF1dG9tYXRpb24iLHZhbHVlOiJhdXRvbWF0aW9uIn1dfQogICAgICAgICAgcmVxdWlyZWQKICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICA8L2RlZXMtZm9ybT4KICAgIGAsbWVudU9wdGlvbnM6cXJlKCl9LHt0aXRsZToiUmV2aWV3ICYgTGF1bmNoIixjb250ZW50OndgCiAgICAgIDxkZWVzLXBhbmVsPgogICAgICAgIDxwPgogICAgICAgICAgWW91ciB3b3Jrc3BhY2UgaXMgcmVhZHkuIFJldmlldyB0aGUgY29sbGVjdGVkIGRldGFpbHMgYW5kIGxhdW5jaCB3aGVuCiAgICAgICAgICB5b3UgYXJlIHJlYWR5IHRvIHN0YXJ0LgogICAgICAgIDwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkxhdW5jaCIsYWN0aW9uOmkoYXN5bmMgdD0+e3Q/Lm92ZXJsYXkmJmF3YWl0IHQuZGVzdHJveSgpfSwiYWN0aW9uIil9XX1dLCJjcmVhdGVEZW1vU3RlcHMiKSx6ZWE9aSgoKT0+d2AKICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyI+CiAgICA8ZGl2CiAgICAgIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTZweDsgbGVmdDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IHotaW5kZXg6IDEwOyIKICAgID4KICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2F3YWl0IER3LmNyZWF0ZUFuZFNob3coe3N0ZXBzOkNlYSgpfSl9fQogICAgICA+T3BlbiBzdGVwcGVyIGFzIG92ZXJsYXk8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CiAgICA8ZGVlcy1zdGVwcGVyIC5zdGVwcz0ke0NlYSgpfT48L2RlZXMtc3RlcHBlcj4KICA8L2Rpdj4KYCwic3RlcHBlckRlbW8iKX0pO3ZhciBnZixYbyxEdyxQNmU9dSgoKT0+e3ZuKCk7dmUoKTtNcigpO19lYSgpO2x0KCk7X3MoKTtPbygpO25jKCk7UTQoKTtMN3QoKTtucygpO2dmPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxYbz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sRHc9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXN0ZXBwZXIiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1N0ZXBwZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLGM9W1Aoe3R5cGU6T2JqZWN0fSldLHA9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHY9W1Aoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHk9W1Aoe3R5cGU6TnVtYmVyLGF0dHJpYnV0ZTohMX0pXSxOPVtQKHt0eXBlOk9iamVjdCxhdHRyaWJ1dGU6ITF9KV0sTz1bUCh7dHlwZTpCb29sZWFuLGF0dHJpYnV0ZTohMX0pXSxnZih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0ZXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzdGVwcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnN0ZXBzLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouc3RlcHM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLGdmKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRTdGVwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzZWxlY3RlZFN0ZXAiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5zZWxlY3RlZFN0ZXAsImdldCIpLHNldDppKCh6LEEpPT57ei5zZWxlY3RlZFN0ZXA9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLGdmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3ZlcmxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ib3ZlcmxheSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56Lm92ZXJsYXksImdldCIpLHNldDppKCh6LEEpPT57ei5vdmVybGF5PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30saCxtKSxnZih0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhbmNlbGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImNhbmNlbGFibGUiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jYW5jZWxhYmxlLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouY2FuY2VsYWJsZT1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksZ2YodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGVwcGVyWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzdGVwcGVyWkluZGV4ImluIHosImhhcyIpLGdldDppKHo9Pnouc3RlcHBlclpJbmRleCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnN0ZXBwZXJaSW5kZXg9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLGdmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlRm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iYWN0aXZlRm9ybSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmFjdGl2ZUZvcm0sImdldCIpLHNldDppKCh6LEEpPT57ei5hY3RpdmVGb3JtPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSxnZih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUZvcm1WYWxpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iYWN0aXZlRm9ybVZhbGlkImluIHosImhhcyIpLGdldDppKHo9PnouYWN0aXZlRm9ybVZhbGlkLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouYWN0aXZlRm9ybVZhbGlkPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sTCxFKSxnZihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHIpLEI9YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPXplYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCIsIkZvcm0iXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhDKXtsZXQgej1kb2N1bWVudC5ib2R5LEE9bmV3IEI7cmV0dXJuIEEuc3RlcHM9Qy5zdGVwcyxBLm92ZXJsYXk9ITAsQy5jYW5jZWxhYmxlIT09dm9pZCAwJiYoQS5jYW5jZWxhYmxlPUMuY2FuY2VsYWJsZSksQS53aW5kb3dMYXllcj1hd2FpdCB5bi5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksei5hcHBlbmQoQS53aW5kb3dMYXllciksei5hcHBlbmQoQSksQS5zdGVwcGVyWkluZGV4PXlyLmdldE5leHRaSW5kZXgoKSx5ci5yZWdpc3RlcihBLEEuc3RlcHBlclpJbmRleCksQX0jZT1Ybyh0aGlzLG8sW10pO2dldCBzdGVwcygpe3JldHVybiB0aGlzLiNlfXNldCBzdGVwcyhDKXt0aGlzLiNlPUN9I3Q9KFhvKHRoaXMsbCksWG8odGhpcyxkLHZvaWQgMCkpO2dldCBzZWxlY3RlZFN0ZXAoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRTdGVwKEMpe3RoaXMuI3Q9Q30jcj0oWG8odGhpcyxmKSxYbyh0aGlzLGgsITEpKTtnZXQgb3ZlcmxheSgpe3JldHVybiB0aGlzLiNyfXNldCBvdmVybGF5KEMpe3RoaXMuI3I9Q30jYT0oWG8odGhpcyxtKSxYbyh0aGlzLGIsITApKTtnZXQgY2FuY2VsYWJsZSgpe3JldHVybiB0aGlzLiNhfXNldCBjYW5jZWxhYmxlKEMpe3RoaXMuI2E9Q30jaT0oWG8odGhpcyxnKSxYbyh0aGlzLGssMWUzKSk7Z2V0IHN0ZXBwZXJaSW5kZXgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc3RlcHBlclpJbmRleChDKXt0aGlzLiNpPUN9I3M9KFhvKHRoaXMsTSksWG8odGhpcyxfLG51bGwpKTtnZXQgYWN0aXZlRm9ybSgpe3JldHVybiB0aGlzLiNzfXNldCBhY3RpdmVGb3JtKEMpe3RoaXMuI3M9Q30jbj0oWG8odGhpcyxTKSxYbyh0aGlzLEwsITApKTtnZXQgYWN0aXZlRm9ybVZhbGlkKCl7cmV0dXJuIHRoaXMuI259c2V0IGFjdGl2ZUZvcm1WYWxpZChDKXt0aGlzLiNuPUN9YWN0aXZlRm9ybVN1YnNjcmlwdGlvbj1Ybyh0aGlzLEUpO3dpbmRvd0xheWVyO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0hyfTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAvKgogICAgICAgKiBJbiBvdmVybGF5IG1vZGUgdGhlIGhvc3QgaXMgInRyYW5zcGFyZW50IiB0byBsYXlvdXQg4oCUIHRoZSBpbm5lcgogICAgICAgKiAuc3RlcHBlckNvbnRhaW5lci5vdmVybGF5IGlzIHdoYXQgcGlucyB0byB0aGUgdmlld3BvcnQgYW5kIGNhcnJpZXMgdGhlCiAgICAgICAqIHotaW5kZXguIEtlZXBpbmcgOmhvc3QgdW5wb3NpdGlvbmVkIGF2b2lkcyBuZXN0aW5nIHRoZSBzdGFja2luZyBjb250ZXh0CiAgICAgICAqIHVuZGVyIGFuIGF1dG8tei1pbmRleCBwYXJlbnQgKHdoaWNoIHdhcyB0cmFwcGluZyAuc3RlcHBlckNvbnRhaW5lcgogICAgICAgKiBiZWxvdyBEZWVzV2luZG93TGF5ZXIncyBzaWJsaW5nIGxheWVycykuIFRoaXMgbWlycm9ycyBob3cgZGVlcy1tb2RhbAogICAgICAgKiBrZWVwcyBpdHMgb3duIDpob3N0IHVucG9zaXRpb25lZCBhbmQgbGV0cyAubW9kYWxDb250YWluZXIgZHJpdmUgbGF5b3V0LgogICAgICAgKi8KICAgICAgOmhvc3QoW292ZXJsYXldKSB7CiAgICAgICAgcG9zaXRpb246IHN0YXRpYzsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5zdGVwcGVyQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5zdGVwcGVyQ29udGFpbmVyLm92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgfQoKICAgICAgLyogRXhpdCBhbmltYXRpb24g4oCUIHJldmVyc2Ugb2YgdGhlIGVudHJ5LiBUaWxlcyBzbGlkZSBET1dOICsgZmFkZSBvdXQsCiAgICAgICAgIG1pcnJvcmluZyB0aGUgLmVudHJhbmNlIHNsaWRlLXVwLiBUaGUgdHJhbnNpdGlvbiBvdmVycmlkZSBpcyBuZWVkZWQKICAgICAgICAgYmVjYXVzZSBkZWVzLXRpbGUuc3RlcCBoYXMgaXRzIG93biAwLjdzIHRyYW5zaXRpb24gZm9yIHN0ZXAgc2VsZWN0aW9uCiAgICAgICAgIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBtYWtlIHRoZSBleGl0IHNsdWdnaXNoLiAqLwogICAgICAuc3RlcHBlckNvbnRhaW5lci5wcmVkZXN0cm95IGRlZXMtdGlsZS5zdGVwIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDApOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cywgZmlsdGVyIDAuMnM7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMC41NSkgc2F0dXJhdGUoMC44NSk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuN3MgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpLCBmaWx0ZXIgMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwLnNlbGVjdGVkIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICAgIGZpbHRlcjogb3BhY2l0eSgxKSBzYXR1cmF0ZSgxKTsKICAgICAgICB1c2VyLXNlbGVjdDogYXV0bzsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnN0ZXAuaGlkZGVuU3RlcCB7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDApOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcC5lbnRyYW5jZSB7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMzVzIGVhc2UsIGZpbHRlciAwLjM1cyBlYXNlOwogICAgICB9CgogICAgICBkZWVzLXRpbGUuc3RlcC5lbnRyYW5jZS5oaWRkZW5TdGVwIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZS5zdGVwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZoOwogICAgICB9CgogICAgICAuc3RlcHBlckNvbnRhaW5lci5vdmVybGF5IGRlZXMtdGlsZS5zdGVwOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm94LXNoYWRvdzoKICAgICAgICAgIDAgMCAwIDFweCAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDEwMCUgLyAwLjAzKSIpfSwKICAgICAgICAgIDAgOHB4IDQwcHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4xMikiLCJoc2woMCAwJSAwJSAvIDAuNSkiKX0sCiAgICAgICAgICAwIDJweCA4cHggJHt4LmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wNikiLCJoc2woMCAwJSAwJSAvIDAuMjUpIil9OwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgMTJweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5nb0JhY2stc3BhY2VyIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLmdvQmFjayB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLmdvQmFjazpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTsKICAgICAgfQoKICAgICAgLnN0ZXAtaGVhZGVyIC5nb0JhY2s6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuZ29CYWNrIHNwYW4gewogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuc3RlcC1oZWFkZXIgLmdvQmFjazpob3ZlciBzcGFuIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwLWhlYWRlciAuc3RlcENvdW50ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICAuc3RlcC1ib2R5IC50aXRsZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmctdG9wOiAzMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC5zdGVwLWJvZHkgLmNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgIH0KCiAgICAgIC5zdGVwLWJvZHkgLmNvbnRlbnQud2l0aFByb2dyZXNzU3RlcCB7CiAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc1N0ZXAgewogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKICAgICAgfQoKICAgICAgLyogLS0tIEZvb3RlcjogbW9kYWwtc3R5bGUgYm90dG9tIGJ1dHRvbnMgLS0tICovCiAgICAgIC5ib3R0b21CdXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLyogQm9yZGVyLWxlZnQgc2VwYXJhdG9yIG9uIGV2ZXJ5IGJ1dHRvbiBFWENFUFQgdGhlIGZpcnN0IG9uZS4KICAgICAgICAgVXNlcyBnZW5lcmFsIHNpYmxpbmcgc28gdGhlIHN0ZXBIaW50IChpZiByZW5kZXJlZCBvbiB0aGUgbGVmdCkgZG9lcwogICAgICAgICBub3Qgc2hpZnQgd2hpY2ggYnV0dG9uIGNvdW50cyBhcyAiZmlyc3QiIGFuZCBjcmVhdGUgYSBwaGFudG9tIGJvcmRlci4gKi8KICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbiB+IC5ib3R0b21CdXR0b24gewogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTMlKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMDgpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTAlKSIsImhzbCgyMTMuMSA5My45JSA3NSUpIil9OwogICAgICB9CgogICAgICAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xMikiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjEyKSIpfTsKICAgICAgfQoKICAgICAgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5kaXNhYmxlZCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMC40OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAvKiBIaW50IHNob3duIG9uIHRoZSBsZWZ0IG9mIHRoZSBmb290ZXIgd2hlbiB0aGUgYWN0aXZlIHN0ZXAncyBmb3JtIGhhcwogICAgICAgICB1bmZpbGxlZCByZXF1aXJlZCBmaWVsZHMuIFVzZXMgbWFyZ2luLXJpZ2h0OiBhdXRvIHRvIHB1c2ggcmlnaHQtYWxpZ25lZAogICAgICAgICBidXR0b25zIHRvIHRoZSByaWdodCB3aGlsZSBrZWVwaW5nIHRoZSBoaW50IGZsdXNoLWxlZnQuICovCiAgICAgIC5ib3R0b21CdXR0b25zIC5zdGVwSGludCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJzdGVwcGVyQ29udGFpbmVyICR7dGhpcy5vdmVybGF5PyJvdmVybGF5IjoiIn0iCiAgICAgICAgc3R5bGU9JHt0aGlzLm92ZXJsYXk/YHotaW5kZXg6ICR7dGhpcy5zdGVwcGVyWkluZGV4fTtgOiIifQogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlT3V0c2lkZUNsaWNrfQogICAgICA+CiAgICAgICAgJHt0aGlzLnN0ZXBzLm1hcCgoQyx6KT0+e2xldCBBPUM9PT10aGlzLnNlbGVjdGVkU3RlcCwkPXRoaXMuZ2V0SW5kZXhPZlN0ZXAoQyk+dGhpcy5nZXRJbmRleE9mU3RlcCh0aGlzLnNlbGVjdGVkU3RlcCksRj16PT09MCxZPUMucHJvZ3Jlc3NTdGVwP3RoaXMuZ2V0UHJvZ3Jlc3NTdGVwU3RhdGUoQyk6bnVsbDtyZXR1cm4gd2A8ZGVlcy10aWxlCiAgICAgICAgICAgIGNsYXNzPSJzdGVwICR7QT8ic2VsZWN0ZWQiOiIifSAkeyQ/ImhpZGRlblN0ZXAiOiIifSAke0Y/ImVudHJhbmNlIjoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic3RlcC1oZWFkZXIiPgogICAgICAgICAgICAgICR7Rj93YDxkaXYgY2xhc3M9ImdvQmFjay1zcGFjZXIiPjwvZGl2PmA6d2A8ZGl2IGNsYXNzPSJnb0JhY2siIEBjbGljaz0ke3RoaXMuZ29CYWNrfT4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IEludGVyIj48LTwvc3Bhbj4gZ28gdG8gcHJldmlvdXMgc3RlcAogICAgICAgICAgICAgICAgICA8L2Rpdj5gfQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0ZXBDb3VudGVyIj4KICAgICAgICAgICAgICAgIFN0ZXAgJHt6KzF9IG9mICR7dGhpcy5zdGVwcy5sZW5ndGh9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGVwLWJvZHkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke0MudGl0bGV9PC9kaXY+CiAgICAgICAgICAgICAgJHtDLnByb2dyZXNzU3RlcCYmWT93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NTdGVwIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgICAgICAgICAgICAgICAubGFiZWw9JHtZLmxhYmVsPz9DLnRpdGxlfQogICAgICAgICAgICAgICAgICAgIC5wZXJjZW50YWdlPSR7WS5wZXJjZW50YWdlPz8wfQogICAgICAgICAgICAgICAgICAgIC5pbmRldGVybWluYXRlPSR7WS5pbmRldGVybWluYXRlPz8hMX0KICAgICAgICAgICAgICAgICAgICAuc2hvd1BlcmNlbnRhZ2U9JHtZLnNob3dQZXJjZW50YWdlPz8hMH0KICAgICAgICAgICAgICAgICAgICAuc3RhdHVzVGV4dD0ke1kuc3RhdHVzVGV4dD8/IiJ9CiAgICAgICAgICAgICAgICAgICAgLnRlcm1pbmFsTGluZXM9JHtZLnRlcm1pbmFsTGluZXM/P1tdfQogICAgICAgICAgICAgICAgICAgIC5zdGF0dXNSb3dzPSR7WS5zdGF0dXNSb3dzPz8zfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50ICR7Qy5wcm9ncmVzc1N0ZXA/IndpdGhQcm9ncmVzc1N0ZXAiOiIifSI+JHtDLmNvbnRlbnR9PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImJvdHRvbUJ1dHRvbnMiPgogICAgICAgICAgICAgICR7QSYmdGhpcy5hY3RpdmVGb3JtIT09bnVsbCYmIXRoaXMuYWN0aXZlRm9ybVZhbGlkP3dgPGRpdiBjbGFzcz0ic3RlcEhpbnQiPkNvbXBsZXRlIGZvcm0gdG8gY29udGludWU8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7dGhpcy5jYW5jZWxhYmxlP3dgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJib3R0b21CdXR0b24iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2FuY2VsUmVxdWVzdCgpfQogICAgICAgICAgICAgICAgICA+Q2FuY2VsPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke0MubWVudU9wdGlvbnM/Lm1hcCgoRyxaKT0+e2xldCBkZT1aPT09Qy5tZW51T3B0aW9ucy5sZW5ndGgtMSxEPWRlJiZ0aGlzLmFjdGl2ZUZvcm0hPT1udWxsJiYhdGhpcy5hY3RpdmVGb3JtVmFsaWQ7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYm90dG9tQnV0dG9uICR7ZGU/InByaW1hcnkiOiIifSAke0Q/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlTWVudU9wdGlvbkNsaWNrKEcsZGUpfQogICAgICAgICAgICAgICAgICA+JHtHLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICBgfSk/PyIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPmB9KX0KICAgICAgPC9kaXY+CiAgICBgfWdldEluZGV4T2ZTdGVwPWkoQz0+dGhpcy5zdGVwcy5maW5kSW5kZXgoej0+Qz09PXopLCJnZXRJbmRleE9mU3RlcCIpO2FzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGF3YWl0IHRoaXMuZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnN0ZXBzLmxlbmd0aCYmKHRoaXMucHJlcGFyZVN0ZXBGb3JBY3RpdmF0aW9uKHRoaXMuc3RlcHNbMF0pLHRoaXMuc2VsZWN0ZWRTdGVwPXRoaXMuc3RlcHNbMF0sYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCB0aGlzLnNldFNjcm9sbFN0YXR1cygpLGF3YWl0IHRoaXMuZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzNTApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3RlcC5lbnRyYW5jZSIpPy5jbGFzc0xpc3QucmVtb3ZlKCJlbnRyYW5jZSIpKX1hc3luYyB1cGRhdGVkKEMpeyFDLmhhcygic2VsZWN0ZWRTdGVwIikmJiFDLmhhcygic3RlcHMiKXx8YXdhaXQgdGhpcy5zZXRTY3JvbGxTdGF0dXMoKX1zY3JvbGxlcjthc3luYyBzZXRTY3JvbGxTdGF0dXMoKXtsZXQgQz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXBwZXJDb250YWluZXIiKSx6PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VsZWN0ZWQiKTtpZigheilyZXR1cm47dGhpcy5zY2FuQWN0aXZlRm9ybSh6KSxDLnN0eWxlLnBhZGRpbmdUb3B8fChDLnN0eWxlLnBhZGRpbmdUb3A9YCR7Qy5vZmZzZXRIZWlnaHQvMi16Lm9mZnNldEhlaWdodC8yfXB4YCk7bGV0IEE9ei5vZmZzZXRUb3AtQy5vZmZzZXRIZWlnaHQvMit6Lm9mZnNldEhlaWdodC8yO2F3YWl0IHZvLnNldHVwRG9tVG9vbHMoKSx0aGlzLnNjcm9sbGVyfHwodGhpcy5zY3JvbGxlcj1uZXcgY3IuU3dlZXRTY3JvbGwoe3ZlcnRpY2FsOiEwLGhvcml6b250YWw6ITEsZWFzaW5nOiJlYXNlSW5PdXRFeHBvIixkdXJhdGlvbjo3MDB9LEMpKSwhdGhpcy5zZWxlY3RlZFN0ZXAudmFsaWRhdGlvbkZ1bmNDYWxsZWQmJnRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jJiYodGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXIsdGhpcy5zZWxlY3RlZFN0ZXAudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITAsdGhpcy5ydW5TdGVwVmFsaWRhdGlvbih0aGlzLnNlbGVjdGVkU3RlcCx6LHRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5zaWduYWwpKSx0aGlzLnNjcm9sbGVyLnRvKEEpfWFzeW5jIGdvQmFjaygpe2xldCBDPXRoaXMuc3RlcHMuZmluZEluZGV4KCQ9PiQ9PT10aGlzLnNlbGVjdGVkU3RlcCk7aWYoQzw9MClyZXR1cm47dGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyJiZ0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtsZXQgej10aGlzLnN0ZXBzW0NdO3oudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITE7bGV0IEE9dGhpcy5zdGVwc1tDLTFdO0EudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITEsdGhpcy5wcmVwYXJlU3RlcEZvckFjdGl2YXRpb24oQSksdGhpcy5zZWxlY3RlZFN0ZXA9QSxhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTAwKSx0aGlzLnNlbGVjdGVkU3RlcC5vblJldHVyblRvU3RlcEZ1bmM/Lih0aGlzLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VsZWN0ZWQiKSl9Z29OZXh0KCl7bGV0IEM9dGhpcy5zdGVwcy5maW5kSW5kZXgoJD0+JD09PXRoaXMuc2VsZWN0ZWRTdGVwKTtpZihDPDB8fEM+PXRoaXMuc3RlcHMubGVuZ3RoLTEpcmV0dXJuO3RoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlciYmdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7bGV0IHo9dGhpcy5zdGVwc1tDXTt6LnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExO2xldCBBPXRoaXMuc3RlcHNbQysxXTtBLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExLHRoaXMucHJlcGFyZVN0ZXBGb3JBY3RpdmF0aW9uKEEpLHRoaXMuc2VsZWN0ZWRTdGVwPUF9cmVzZXRQcm9ncmVzc1N0ZXAoQz10aGlzLnNlbGVjdGVkU3RlcCl7Qz8ucHJvZ3Jlc3NTdGVwJiYoQy5wcm9ncmVzc1N0ZXBTdGF0ZT10aGlzLmNyZWF0ZUluaXRpYWxQcm9ncmVzc1N0ZXBTdGF0ZShDKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9dXBkYXRlUHJvZ3Jlc3NTdGVwKEMsej10aGlzLnNlbGVjdGVkU3RlcCl7aWYoIXo/LnByb2dyZXNzU3RlcClyZXR1cm47bGV0IEE9dGhpcy5nZXRQcm9ncmVzc1N0ZXBTdGF0ZSh6KTt6LnByb2dyZXNzU3RlcFN0YXRlPXsuLi5BLC4uLkMsdGVybWluYWxMaW5lczpDLnRlcm1pbmFsTGluZXM/Wy4uLkMudGVybWluYWxMaW5lc106Wy4uLkEudGVybWluYWxMaW5lcz8/W11dfSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hcHBlbmRQcm9ncmVzc1N0ZXBMaW5lKEMsej10aGlzLnNlbGVjdGVkU3RlcCl7aWYoIXo/LnByb2dyZXNzU3RlcClyZXR1cm47bGV0IEE9dGhpcy5nZXRQcm9ncmVzc1N0ZXBTdGF0ZSh6KTt0aGlzLnVwZGF0ZVByb2dyZXNzU3RlcCh7dGVybWluYWxMaW5lczpbLi4uQS50ZXJtaW5hbExpbmVzPz9bXSxDXX0seil9c2NhbkFjdGl2ZUZvcm0oQyl7bGV0IHo9Qy5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtpZih6PT09dGhpcy5hY3RpdmVGb3JtKXt0aGlzLnJlY29tcHV0ZUZvcm1WYWxpZCgpO3JldHVybn1pZih0aGlzLmFjdGl2ZUZvcm1TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCksdGhpcy5hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPXZvaWQgMCx0aGlzLmFjdGl2ZUZvcm09eiwheil7dGhpcy5hY3RpdmVGb3JtVmFsaWQ9ITA7cmV0dXJufXRoaXMucmVjb21wdXRlRm9ybVZhbGlkKCksdGhpcy5hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPXouY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLnJlY29tcHV0ZUZvcm1WYWxpZCgpfSl9cmVjb21wdXRlRm9ybVZhbGlkKCl7bGV0IEM9dGhpcy5hY3RpdmVGb3JtO2lmKCFDKXt0aGlzLmFjdGl2ZUZvcm1WYWxpZD0hMDtyZXR1cm59bGV0IHo9Qy5nZXRGb3JtRWxlbWVudHMoKTt0aGlzLmFjdGl2ZUZvcm1WYWxpZD16LmV2ZXJ5KEE9PiFBLnJlcXVpcmVkfHxBLnZhbHVlIT09bnVsbCYmQS52YWx1ZSE9PXZvaWQgMCYmQS52YWx1ZSE9PSIiKX1hc3luYyBoYW5kbGVNZW51T3B0aW9uQ2xpY2soQyx6KXtsZXQgQT10aGlzLmFjdGl2ZUZvcm07aWYoeiYmQSl7aWYoIXRoaXMuYWN0aXZlRm9ybVZhbGlkKXJldHVybjthd2FpdCBuZXcgUHJvbWlzZSgkPT57QS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PiQoKSx7b25jZTohMH0pLEEuZ2F0aGVyQW5kRGlzcGF0Y2goKX0pfWF3YWl0IEMuYWN0aW9uKHRoaXMpfWdldFByb2dyZXNzU3RlcFN0YXRlKEMpe3JldHVybiBDLnByb2dyZXNzU3RlcD8oQy5wcm9ncmVzc1N0ZXBTdGF0ZXx8KEMucHJvZ3Jlc3NTdGVwU3RhdGU9dGhpcy5jcmVhdGVJbml0aWFsUHJvZ3Jlc3NTdGVwU3RhdGUoQykpLEMucHJvZ3Jlc3NTdGVwU3RhdGUpOnt9fWNyZWF0ZUluaXRpYWxQcm9ncmVzc1N0ZXBTdGF0ZShDKXtyZXR1cm57bGFiZWw6Qy5wcm9ncmVzc1N0ZXA/LmxhYmVsPz9DLnRpdGxlLHBlcmNlbnRhZ2U6Qy5wcm9ncmVzc1N0ZXA/LnBlcmNlbnRhZ2U/PzAsaW5kZXRlcm1pbmF0ZTpDLnByb2dyZXNzU3RlcD8uaW5kZXRlcm1pbmF0ZT8/ITEsc2hvd1BlcmNlbnRhZ2U6Qy5wcm9ncmVzc1N0ZXA/LnNob3dQZXJjZW50YWdlPz8hMCxzdGF0dXNUZXh0OkMucHJvZ3Jlc3NTdGVwPy5zdGF0dXNUZXh0Pz8iIix0ZXJtaW5hbExpbmVzOlsuLi5DLnByb2dyZXNzU3RlcD8udGVybWluYWxMaW5lcz8/W11dLHN0YXR1c1Jvd3M6Qy5wcm9ncmVzc1N0ZXA/LnN0YXR1c1Jvd3M/PzN9fXByZXBhcmVTdGVwRm9yQWN0aXZhdGlvbihDKXtDPy5wcm9ncmVzc1N0ZXAmJihDLnByb2dyZXNzU3RlcFN0YXRlPXRoaXMuY3JlYXRlSW5pdGlhbFByb2dyZXNzU3RlcFN0YXRlKEMpKX1hc3luYyBydW5TdGVwVmFsaWRhdGlvbihDLHosQSl7dHJ5e2lmKGF3YWl0IEMudmFsaWRhdGlvbkZ1bmM/Lih0aGlzLHosQSksQS5hYm9ydGVkKXJldHVybjtDLnByb2dyZXNzU3RlcCYmQy5wcm9ncmVzc1N0ZXAuYXV0b0FkdmFuY2UhPT0hMSYmdGhpcy5zZWxlY3RlZFN0ZXA9PT1DJiZ0aGlzLmdvTmV4dCgpfWNhdGNoKCQpe2lmKEEuYWJvcnRlZClyZXR1cm47aWYoQy5wcm9ncmVzc1N0ZXApe2xldCBGPSQgaW5zdGFuY2VvZiBFcnJvcj8kLm1lc3NhZ2U6IlVuZXhwZWN0ZWQgZXJyb3IiO3RoaXMuYXBwZW5kUHJvZ3Jlc3NTdGVwTGluZShgRXJyb3I6ICR7Rn1gLEMpLHRoaXMudXBkYXRlUHJvZ3Jlc3NTdGVwKHtpbmRldGVybWluYXRlOiExLHN0YXR1c1RleHQ6Rn0sQyl9Y29uc29sZS5lcnJvcigkKX19Y2FuY2VsQ29uZmlybU1vZGFsO2hhbmRsZU91dHNpZGVDbGljayhDKXtpZighdGhpcy5vdmVybGF5fHwhdGhpcy5jYW5jZWxhYmxlKXJldHVybjtDLnN0b3BQcm9wYWdhdGlvbigpO2xldCB6PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3RlcHBlckNvbnRhaW5lciIpO0MudGFyZ2V0PT09eiYmdGhpcy5oYW5kbGVDYW5jZWxSZXF1ZXN0KCl9YXN5bmMgaGFuZGxlQ2FuY2VsUmVxdWVzdCgpe3RoaXMuY2FuY2VsYWJsZSYmKHRoaXMuY2FuY2VsQ29uZmlybU1vZGFsJiZ0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbC5pc0Nvbm5lY3RlZHx8KHRoaXMuY2FuY2VsQ29uZmlybU1vZGFsPXZvaWQgMCx0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbD1hd2FpdCBlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJDYW5jZWwgc2V0dXA/Iix3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwOyI+CiAgICAgICAgICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2FuY2VsPyBBbnkgcHJvZ3Jlc3Mgb24gdGhlIGN1cnJlbnQgc3RlcCB3aWxsIGJlIGxvc3QuCiAgICAgICAgPC9wPgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ29udGludWUgc2V0dXAiLGFjdGlvbjppKGFzeW5jIEM9Pnt0aGlzLmNhbmNlbENvbmZpcm1Nb2RhbD12b2lkIDAsYXdhaXQgQy5kZXN0cm95KCl9LCJhY3Rpb24iKX0se25hbWU6IlllcywgY2FuY2VsIixhY3Rpb246aShhc3luYyBDPT57dGhpcy5jYW5jZWxDb25maXJtTW9kYWw9dm9pZCAwLEMuZGVzdHJveSgpLGF3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCksYXdhaXQgdGhpcy5kZXN0cm95KCl9LCJhY3Rpb24iKX1dfSkpKX1hc3luYyBkZXN0cm95KCl7bGV0IEM9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2Usej10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXBwZXJDb250YWluZXIiKTt0aGlzLnNlbGVjdGVkU3RlcD8uYWJvcnRDb250cm9sbGVyJiZ0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKSx6Py5jbGFzc0xpc3QuYWRkKCJwcmVkZXN0cm95IiksYXdhaXQgQy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDI1MCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksdGhpcy5hY3RpdmVGb3JtU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpLHRoaXMuYWN0aXZlRm9ybVN1YnNjcmlwdGlvbj12b2lkIDAsdGhpcy5hY3RpdmVGb3JtPW51bGwseXIudW5yZWdpc3Rlcih0aGlzKX1zdGF0aWN7WG8oYSxyKX19O3JldHVybiBCPWF9KSgpfSk7dmFyIFRlYT11KCgpPT57UDZlKCl9KTt2YXIgTGVhPXUoKCk9PntucygpfSk7dmFyIERlYT11KCgpPT57SEpyKCk7bmVhKCk7cGVhKCk7ZmVhKCk7eGVhKCk7dmVhKCk7U2VhKCk7VGVhKCk7TGVhKCl9KTt2YXIgJGVhLEFlYT11KCgpPT57dmUoKTskZWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIGRlZXMtaW1hZ2Utdmlld2VyIHsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLmNvbXBhY3QgewogICAgICBoZWlnaHQ6IDI1MHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5KUEVHIEltYWdlIHdpdGggVG9vbGJhcjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIGxhbmRzY2FwZSBwaG90byB3aXRoIHpvb20sIHBhbiwgZml0LCBhbmQgZG93bmxvYWQgY29udHJvbHMuPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1MDY3NDQwMzgxMzYtNDYyNzM4MzRiM2ZiP3c9MTIwMCIKICAgICAgICBhbHQ9Ik1vdW50YWluIGxhbmRzY2FwZSIKICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UE5HIHdpdGggVHJhbnNwYXJlbmN5PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlRyYW5zcGFyZW50IFBORyBkaXNwbGF5ZWQgb24gYSBjaGVja2VyYm9hcmQgYmFja2dyb3VuZC48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zLzQvNDcvUE5HX3RyYW5zcGFyZW5jeV9kZW1vbnN0cmF0aW9uXzEucG5nIgogICAgICAgIGFsdD0iUE5HIHRyYW5zcGFyZW5jeSBkZW1vIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TVkcgSW1hZ2U8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2NhbGFibGUgdmVjdG9yIGdyYXBoaWMuPC9kaXY+CiAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy8wLzAyL1NWR19sb2dvLnN2ZyIKICAgICAgICBhbHQ9IlNWRyBsb2dvIgogICAgICAgIGZpdD0iY29udGFpbiIKICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm8gVG9vbGJhciBWYXJpYW50PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkltYWdlIHZpZXdlciB3aXRoIHRoZSB0b29sYmFyIGhpZGRlbi48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgY2xhc3M9ImNvbXBhY3QiCiAgICAgICAgc3JjPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTQ2OTQ3NDk2ODAyOC01NjYyM2YwMmU0MmU/dz04MDAiCiAgICAgICAgYWx0PSJOYXR1cmUgc2NlbmUiCiAgICAgICAgLnNob3dUb29sYmFyPSR7ITF9CiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBmbCxtaSxFZWEsUjd0PXUoKCk9Pnt2ZSgpO0tyKCk7QWVhKCk7Zmw9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG1pPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxFZWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLWltYWdlLXZpZXdlciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W107dmFyIHBlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzSW1hZ2VWaWV3ZXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbWU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCgpXSxjPVtQKCldLHA9W1AoKV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W2llKCldLE49W2llKCldLE89W2llKCldLEI9W2llKCldLEE9W2llKCldLFk9W2llKCldLGRlPVtpZSgpXSxmZT1baWUoKV0sZmwodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+InNyYyJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLnNyYywiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLnNyYz1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSxvLGwpLGZsKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWx0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJhbHQiaW4gcSwiaGFzIiksZ2V0OmkocT0+cS5hbHQsImdldCIpLHNldDppKChxLEgpPT57cS5hbHQ9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sZCxmKSxmbCh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4iZml0ImluIHEsImhhcyIpLGdldDppKHE9PnEuZml0LCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EuZml0PUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LGgsbSksZmwodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VG9vbGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4ic2hvd1Rvb2xiYXIiaW4gcSwiaGFzIiksZ2V0OmkocT0+cS5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLnNob3dUb29sYmFyPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LGIsZyksZmwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ6b29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJ6b29tImluIHEsImhhcyIpLGdldDppKHE9PnEuem9vbSwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLnpvb209SH0sInNldCIpfSxtZXRhZGF0YTptZX0sayxNKSxmbCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhblgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+InBhblgiaW4gcSwiaGFzIiksZ2V0OmkocT0+cS5wYW5YLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EucGFuWD1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSxfLFMpLGZsKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFuWSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShxPT4icGFuWSJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLnBhblksImdldCIpLHNldDppKChxLEgpPT57cS5wYW5ZPUh9LCJzZXQiKX0sbWV0YWRhdGE6bWV9LEwsRSksZmwodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJpc0RyYWdnaW5nImluIHEsImhhcyIpLGdldDppKHE9PnEuaXNEcmFnZ2luZywiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLmlzRHJhZ2dpbmc9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sQyx6KSxmbCh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+ImxvYWRpbmciaW4gcSwiaGFzIiksZ2V0OmkocT0+cS5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EubG9hZGluZz1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSwkLEYpLGZsKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+ImVycm9yImluIHEsImhhcyIpLGdldDppKHE9PnEuZXJyb3IsImdldCIpLHNldDppKChxLEgpPT57cS5lcnJvcj1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSxHLFopLGZsKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlTmF0dXJhbFdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHE9PiJpbWFnZU5hdHVyYWxXaWR0aCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLmltYWdlTmF0dXJhbFdpZHRoLCJnZXQiKSxzZXQ6aSgocSxIKT0+e3EuaW1hZ2VOYXR1cmFsV2lkdGg9SH0sInNldCIpfSxtZXRhZGF0YTptZX0sRCxRKSxmbCh0aGlzLG51bGwsZmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZU5hdHVyYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkocT0+ImltYWdlTmF0dXJhbEhlaWdodCJpbiBxLCJoYXMiKSxnZXQ6aShxPT5xLmltYWdlTmF0dXJhbEhlaWdodCwiZ2V0Iiksc2V0OmkoKHEsSCk9PntxLmltYWdlTmF0dXJhbEhlaWdodD1IfSwic2V0Iil9LG1ldGFkYXRhOm1lfSxULFcpLGZsKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm1lfSxudWxsLHIpLHBlPWE9ZS52YWx1ZSxtZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTptZX0pfXN0YXRpYyBkZW1vPSRlYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07I2U9bWkodGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhtZSl7dGhpcy4jZT1tZX0jdD0obWkodGhpcyxsKSxtaSh0aGlzLGQsIiIpKTtnZXQgYWx0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFsdChtZSl7dGhpcy4jdD1tZX0jcj0obWkodGhpcyxmKSxtaSh0aGlzLGgsImNvbnRhaW4iKSk7Z2V0IGZpdCgpe3JldHVybiB0aGlzLiNyfXNldCBmaXQobWUpe3RoaXMuI3I9bWV9I2E9KG1pKHRoaXMsbSksbWkodGhpcyxiLCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dUb29sYmFyKG1lKXt0aGlzLiNhPW1lfSNpPShtaSh0aGlzLGcpLG1pKHRoaXMsaywxKSk7Z2V0IHpvb20oKXtyZXR1cm4gdGhpcy4jaX1zZXQgem9vbShtZSl7dGhpcy4jaT1tZX0jcz0obWkodGhpcyxNKSxtaSh0aGlzLF8sMCkpO2dldCBwYW5YKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHBhblgobWUpe3RoaXMuI3M9bWV9I249KG1pKHRoaXMsUyksbWkodGhpcyxMLDApKTtnZXQgcGFuWSgpe3JldHVybiB0aGlzLiNufXNldCBwYW5ZKG1lKXt0aGlzLiNuPW1lfSNvPShtaSh0aGlzLEUpLG1pKHRoaXMsQywhMSkpO2dldCBpc0RyYWdnaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzRHJhZ2dpbmcobWUpe3RoaXMuI289bWV9I2w9KG1pKHRoaXMseiksbWkodGhpcywkLCEwKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbG9hZGluZyhtZSl7dGhpcy4jbD1tZX0jYz0obWkodGhpcyxGKSxtaSh0aGlzLEcsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jY31zZXQgZXJyb3IobWUpe3RoaXMuI2M9bWV9I2Q9KG1pKHRoaXMsWiksbWkodGhpcyxELDApKTtnZXQgaW1hZ2VOYXR1cmFsV2lkdGgoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaW1hZ2VOYXR1cmFsV2lkdGgobWUpe3RoaXMuI2Q9bWV9I3U9KG1pKHRoaXMsUSksbWkodGhpcyxULDApKTtnZXQgaW1hZ2VOYXR1cmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3V9c2V0IGltYWdlTmF0dXJhbEhlaWdodChtZSl7dGhpcy4jdT1tZX1kcmFnU3RhcnRYPShtaSh0aGlzLFcpLDApO2RyYWdTdGFydFk9MDtkcmFnU3RhcnRQYW5YPTA7ZHJhZ1N0YXJ0UGFuWT0wO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIH0KCiAgICAgICAgLnpvb20tbGV2ZWwgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIG1pbi13aWR0aDogNDhweDsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2UtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGN1cnNvcjogJHt0aGlzLnpvb20+MT90aGlzLmlzRHJhZ2dpbmc/ImdyYWJiaW5nIjoiZ3JhYiI6ImRlZmF1bHQifTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2VyYm9hcmQgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOgogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICR7eC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgtNDVkZWcsICR7eC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke3guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke3guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKTsKICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDhweCwgOHB4IC04cHgsIC04cHggMHB4OwogICAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHt0aGlzLnBhblh9cHgsICR7dGhpcy5wYW5ZfXB4KSBzY2FsZSgke3RoaXMuem9vbX0pOwogICAgICAgICAgdHJhbnNpdGlvbjogJHt0aGlzLmlzRHJhZ2dpbmc/Im5vbmUiOiJ0cmFuc2Zvcm0gMC4ycyBlYXNlIn07CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgaW1nIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiAke3RoaXMuZml0fTsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciBpbWcuYWN0dWFsIHsKICAgICAgICAgIG1heC13aWR0aDogbm9uZTsKICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgICBvYmplY3QtZml0OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwLjgpIiwicmdiYSgwLDAsMCwwLjYpIil9OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSAuZXJyb3ItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLWluZm8gewogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21PdXR9IHRpdGxlPSJab29tIG91dCI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tT3V0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5yZXNldFpvb219PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Inpvb20tbGV2ZWwiPiR7TWF0aC5yb3VuZCh0aGlzLnpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21Jbn0gdGl0bGU9Ilpvb20gaW4iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmZpdFRvU2NyZWVufSB0aXRsZT0iRml0IHRvIHNjcmVlbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuYWN0dWFsU2l6ZX0gdGl0bGU9IkFjdHVhbCBzaXplICgxMDAlKSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpTY2FuIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmRvd25sb2FkfSB0aXRsZT0iRG93bmxvYWQiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLmltYWdlTmF0dXJhbFdpZHRoPjA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbWFnZS1pbmZvIj4ke3RoaXMuaW1hZ2VOYXR1cmFsV2lkdGh9IHggJHt0aGlzLmltYWdlTmF0dXJhbEhlaWdodH08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iaW1hZ2UtYXJlYSIKICAgICAgICAgIEB3aGVlbD0ke3RoaXMuaGFuZGxlV2hlZWx9CiAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVNb3VzZURvd259CiAgICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5oYW5kbGVNb3VzZU1vdmV9CiAgICAgICAgICBAbW91c2V1cD0ke3RoaXMuaGFuZGxlTW91c2VVcH0KICAgICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZVVwfQogICAgICAgICAgQGRibGNsaWNrPSR7dGhpcy5oYW5kbGVEb3VibGVDbGlja30KICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2VyYm9hcmQiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Utd3JhcHBlciI+CiAgICAgICAgICAgICR7dGhpcy5zcmM/d2AKICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmZpdD09PSJhY3R1YWwiPyJhY3R1YWwiOiIifSIKICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgICAgICBhbHQ9IiR7dGhpcy5hbHR9IgogICAgICAgICAgICAgICAgQGxvYWQ9JHt0aGlzLmhhbmRsZUltYWdlTG9hZH0KICAgICAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iZmFsc2UiCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLmxvYWRpbmcmJnRoaXMuc3JjP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imx1Y2lkZTpJbWFnZU9mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXpvb21Jbigpe3RoaXMuem9vbT1NYXRoLm1pbigxMCx0aGlzLnpvb20qMS4yNSl9em9vbU91dCgpe3RoaXMuem9vbT1NYXRoLm1heCguMSx0aGlzLnpvb20vMS4yNSksdGhpcy56b29tPD0xJiYodGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfXJlc2V0Wm9vbSgpe3RoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wfWZpdFRvU2NyZWVuKCl7dGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5maXQ9ImNvbnRhaW4ifWFjdHVhbFNpemUoKXt0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmZpdD0iYWN0dWFsIn1kb3dubG9hZCgpe2lmKCF0aGlzLnNyYylyZXR1cm47bGV0IG1lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTttZS5ocmVmPXRoaXMuc3JjLG1lLmRvd25sb2FkPXRoaXMuc3JjLnNwbGl0KCIvIikucG9wKCl8fCJpbWFnZSIsbWUuY2xpY2soKX1oYW5kbGVJbWFnZUxvYWQobWUpe2xldCBxPW1lLnRhcmdldDt0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0iIix0aGlzLmltYWdlTmF0dXJhbFdpZHRoPXEubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PXEubmF0dXJhbEhlaWdodH1oYW5kbGVJbWFnZUVycm9yKCl7dGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGltYWdlIn1oYW5kbGVXaGVlbChtZSl7bWUucHJldmVudERlZmF1bHQoKTtsZXQgcT1tZS5kZWx0YVk+MD8uOToxLjEsSD1NYXRoLm1pbigxMCxNYXRoLm1heCguMSx0aGlzLnpvb20qcSkpO3RoaXMuem9vbT1ILHRoaXMuem9vbTw9MSYmKHRoaXMucGFuWD0wLHRoaXMucGFuWT0wKX1oYW5kbGVNb3VzZURvd24obWUpe3RoaXMuem9vbTw9MXx8KHRoaXMuaXNEcmFnZ2luZz0hMCx0aGlzLmRyYWdTdGFydFg9bWUuY2xpZW50WCx0aGlzLmRyYWdTdGFydFk9bWUuY2xpZW50WSx0aGlzLmRyYWdTdGFydFBhblg9dGhpcy5wYW5YLHRoaXMuZHJhZ1N0YXJ0UGFuWT10aGlzLnBhblkpfWhhbmRsZU1vdXNlTW92ZShtZSl7dGhpcy5pc0RyYWdnaW5nJiYodGhpcy5wYW5YPXRoaXMuZHJhZ1N0YXJ0UGFuWCsobWUuY2xpZW50WC10aGlzLmRyYWdTdGFydFgpLHRoaXMucGFuWT10aGlzLmRyYWdTdGFydFBhblkrKG1lLmNsaWVudFktdGhpcy5kcmFnU3RhcnRZKSl9aGFuZGxlTW91c2VVcCgpe3RoaXMuaXNEcmFnZ2luZz0hMX1oYW5kbGVEb3VibGVDbGljaygpe3RoaXMuem9vbT09PTE/dGhpcy56b29tPTI6KHRoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wKX11cGRhdGVkKG1lKXtzdXBlci51cGRhdGVkKG1lKSxtZS5oYXMoInNyYyIpJiYodGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9IiIsdGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5pbWFnZU5hdHVyYWxXaWR0aD0wLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PTApfXN0YXRpY3ttaShhLHIpfX07cmV0dXJuIHBlPWF9KSgpfSk7dmFyIEllYT11KCgpPT57Ujd0KCl9KTt2YXIgUGVhLE5lYT11KCgpPT57dmUoKTtQZWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIGRlZXMtYXVkaW8tdmlld2VyIHsKICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1ZGlvIHdpdGggV2F2ZWZvcm08L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXVkaW8gcGxheWVyIHdpdGggd2F2ZWZvcm0gdmlzdWFsaXphdGlvbiBhbmQgZnVsbCB0cmFuc3BvcnQgY29udHJvbHMuPC9kaXY+CiAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDEiCiAgICAgICAgYXJ0aXN0PSJULiBTY2h1ZXJnZXIiCiAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1ZGlvIHdpdGhvdXQgV2F2ZWZvcm08L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2ltcGxlIGF1ZGlvIHBsYXllciB3aXRoIGEgc2Vla2JhciBpbnN0ZWFkIG9mIGEgd2F2ZWZvcm0uPC9kaXY+CiAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0yLm1wMyIKICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDIiCiAgICAgICAgLnNob3dXYXZlZm9ybT0keyExfQogICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NaW5pbWFsIEF1ZGlvIFBsYXllcjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5ObyB0aXRsZSBvciBhcnRpc3QgbWV0YWRhdGEg4oCUIGp1c3QgdGhlIHBsYXllci48L2Rpdj4KICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTMubXAzIgogICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgVG8sQ2EsT2VhLEY3dD11KCgpPT57dmUoKTtLcigpO05lYSgpO1RvPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxDYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sT2VhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1hdWRpby12aWV3ZXIiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdO3ZhciB4ZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc0F1ZGlvVmlld2VyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCgpXSxjPVtQKCldLHA9W1AoKV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0sTz1baWUoKV0sQj1baWUoKV0sQT1baWUoKV0sWT1baWUoKV0sZGU9W2llKCldLGZlPVtpZSgpXSxwZT1baWUoKV0sSD1baWUoKV0sYWU9W2llKCldLFRvKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJzcmMiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5zcmMsImdldCIpLHNldDppKChWLGxlKT0+e1Yuc3JjPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LG8sbCksVG8odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4idGl0bGUiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi50aXRsZSwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi50aXRsZT1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxkLGYpLFRvKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXJ0aXN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJhcnRpc3QiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5hcnRpc3QsImdldCIpLHNldDppKChWLGxlKT0+e1YuYXJ0aXN0PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGgsbSksVG8odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V2F2ZWZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+InNob3dXYXZlZm9ybSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLnNob3dXYXZlZm9ybSwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5zaG93V2F2ZWZvcm09bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sYixnKSxUbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9wbGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJhdXRvcGxheSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmF1dG9wbGF5LCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmF1dG9wbGF5PWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LGssTSksVG8odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb29wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJsb29wImluIFYsImhhcyIpLGdldDppKFY9PlYubG9vcCwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5sb29wPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LF8sUyksVG8odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1BsYXlpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImlzUGxheWluZyJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmlzUGxheWluZywiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5pc1BsYXlpbmc9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sTCxFKSxUbyh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJjdXJyZW50VGltZSJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmN1cnJlbnRUaW1lLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmN1cnJlbnRUaW1lPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LEMseiksVG8odGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iZHVyYXRpb24iaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5kdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5kdXJhdGlvbj1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSwkLEYpLFRvKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidm9sdW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFY9PiJ2b2x1bWUiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi52b2x1bWUsImdldCIpLHNldDppKChWLGxlKT0+e1Yudm9sdW1lPWxlfSwic2V0Iil9LG1ldGFkYXRhOkt9LEcsWiksVG8odGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNNdXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iaXNNdXRlZCJpbiBWLCJoYXMiKSxnZXQ6aShWPT5WLmlzTXV0ZWQsImdldCIpLHNldDppKChWLGxlKT0+e1YuaXNNdXRlZD1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxELFEpLFRvKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+ImxvYWRpbmciaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLmxvYWRpbmc9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sVCxXKSxUbyh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4iZXJyb3IiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi5lcnJvciwiZ2V0Iiksc2V0OmkoKFYsbGUpPT57Vi5lcnJvcj1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxtZSxxKSxUbyh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShWPT4id2F2ZWZvcm1EYXRhImluIFYsImhhcyIpLGdldDppKFY9PlYud2F2ZWZvcm1EYXRhLCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLndhdmVmb3JtRGF0YT1sZX0sInNldCIpfSxtZXRhZGF0YTpLfSxVLGopLFRvKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtUmVhZHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVj0+IndhdmVmb3JtUmVhZHkiaW4gViwiaGFzIiksZ2V0OmkoVj0+Vi53YXZlZm9ybVJlYWR5LCJnZXQiKSxzZXQ6aSgoVixsZSk9PntWLndhdmVmb3JtUmVhZHk9bGV9LCJzZXQiKX0sbWV0YWRhdGE6S30sWCxKKSxUbyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpLfSxudWxsLHIpLHhlPWE9ZS52YWx1ZSxLJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkt9KX1zdGF0aWMgZGVtbz1QZWE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPUNhKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoSyl7dGhpcy4jZT1LfSN0PShDYSh0aGlzLGwpLENhKHRoaXMsZCwiIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCB0aXRsZShLKXt0aGlzLiN0PUt9I3I9KENhKHRoaXMsZiksQ2EodGhpcyxoLCIiKSk7Z2V0IGFydGlzdCgpe3JldHVybiB0aGlzLiNyfXNldCBhcnRpc3QoSyl7dGhpcy4jcj1LfSNhPShDYSh0aGlzLG0pLENhKHRoaXMsYiwhMCkpO2dldCBzaG93V2F2ZWZvcm0oKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1dhdmVmb3JtKEspe3RoaXMuI2E9S30jaT0oQ2EodGhpcyxnKSxDYSh0aGlzLGssITEpKTtnZXQgYXV0b3BsYXkoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXV0b3BsYXkoSyl7dGhpcy4jaT1LfSNzPShDYSh0aGlzLE0pLENhKHRoaXMsXywhMSkpO2dldCBsb29wKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxvb3AoSyl7dGhpcy4jcz1LfSNuPShDYSh0aGlzLFMpLENhKHRoaXMsTCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaXNQbGF5aW5nKEspe3RoaXMuI249S30jbz0oQ2EodGhpcyxFKSxDYSh0aGlzLEMsMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNvfXNldCBjdXJyZW50VGltZShLKXt0aGlzLiNvPUt9I2w9KENhKHRoaXMseiksQ2EodGhpcywkLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgZHVyYXRpb24oSyl7dGhpcy4jbD1LfSNjPShDYSh0aGlzLEYpLENhKHRoaXMsRywxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUoSyl7dGhpcy4jYz1LfSNkPShDYSh0aGlzLFopLENhKHRoaXMsRCwhMSkpO2dldCBpc011dGVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzTXV0ZWQoSyl7dGhpcy4jZD1LfSN1PShDYSh0aGlzLFEpLENhKHRoaXMsVCwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGxvYWRpbmcoSyl7dGhpcy4jdT1LfSNwPShDYSh0aGlzLFcpLENhKHRoaXMsbWUsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXJyb3IoSyl7dGhpcy4jcD1LfSNmPShDYSh0aGlzLHEpLENhKHRoaXMsVSxbXSkpO2dldCB3YXZlZm9ybURhdGEoKXtyZXR1cm4gdGhpcy4jZn1zZXQgd2F2ZWZvcm1EYXRhKEspe3RoaXMuI2Y9S30jaD0oQ2EodGhpcyxqKSxDYSh0aGlzLFgsITEpKTtnZXQgd2F2ZWZvcm1SZWFkeSgpe3JldHVybiB0aGlzLiNofXNldCB3YXZlZm9ybVJlYWR5KEspe3RoaXMuI2g9S31hdWRpb0VsZW1lbnQ9KENhKHRoaXMsSiksbnVsbCk7Y2FudmFzRWxlbWVudD1udWxsO2FuaW1GcmFtZUlkPTA7dm9sdW1lQmVmb3JlTXV0ZT0xO3JlbmRlcigpe2xldCBLPXRoaXMudGl0bGUmJnRoaXMuYXJ0aXN0P2Ake3RoaXMudGl0bGV9IFx1MjAxNCAke3RoaXMuYXJ0aXN0fWA6dGhpcy50aXRsZXx8dGhpcy5hcnRpc3R8fCIiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTVlN2ViIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWdyb3VwLS1lbmQgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgfQoKICAgICAgICAudGltZS1kaXNwbGF5IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIG1pbi13aWR0aDogOTBweDsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXIgewogICAgICAgICAgd2lkdGg6IDcwcHg7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWIgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuY29udGVudC1hcmVhIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC53YXZlZm9ybS1jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciBjYW52YXMgewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLWNvbnRhaW5lciB7CiAgICAgICAgICB3aWR0aDogODAlOwogICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgIGhlaWdodDogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLWZpbGwgewogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4xcyBsaW5lYXI7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgLmVycm9yLWljb24gewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVQbGF5fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNQbGF5aW5nPyJQYXVzZSI6IlBsYXkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1kaXNwbGF5Ij4KICAgICAgICAgICAgICAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmN1cnJlbnRUaW1lKX0gLyAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHtLP3dgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXRpdGxlIj4ke0t9PC9zcGFuPgogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwLS1lbmQiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5sb29wPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxvb3B9CiAgICAgICAgICAgICAgdGl0bGU9Ikxvb3AiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpSZXBlYXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZvbHVtZS1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlTXV0ZX0gdGl0bGU9IiR7dGhpcy5pc011dGVkPyJVbm11dGUiOiJNdXRlIn0iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzTXV0ZWR8fHRoaXMudm9sdW1lPT09MD8iVm9sdW1lWCI6dGhpcy52b2x1bWU8LjU/IlZvbHVtZTEiOiJWb2x1bWUyIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgY2xhc3M9InZvbHVtZS1zbGlkZXIiCiAgICAgICAgICAgICAgICB0eXBlPSJyYW5nZSIKICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgIG1heD0iMSIKICAgICAgICAgICAgICAgIHN0ZXA9IjAuMDEiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5pc011dGVkPzA6dGhpcy52b2x1bWUpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVWb2x1bWVDaGFuZ2V9CiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1hcmVhIj4KICAgICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJlcnJvci1pY29uIiBpY29uPSJsdWNpZGU6TXVzaWNPZmYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMuc2hvd1dhdmVmb3JtP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndhdmVmb3JtLWNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVXYXZlZm9ybUNsaWNrfT4KICAgICAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1jb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlU2Vla2JhckNsaWNrfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLWZpbGwiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmR1cmF0aW9uP3RoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbioxMDA6MH0lIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3JjJiZ0aGlzLmluaXRBdWRpbygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFudXAoKX1hc3luYyB1cGRhdGVkKEspe3N1cGVyLnVwZGF0ZWQoSyksSy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmKHRoaXMuY2xlYW51cCgpLHRoaXMuaW5pdEF1ZGlvKCkpLChLLmhhcygid2F2ZWZvcm1EYXRhIil8fEsuaGFzKCJjdXJyZW50VGltZSIpKSYmdGhpcy5kcmF3V2F2ZWZvcm0oKX1wbGF5KCl7dGhpcy5hdWRpb0VsZW1lbnQ/LnBsYXkoKX1wYXVzZSgpe3RoaXMuYXVkaW9FbGVtZW50Py5wYXVzZSgpfXRvZ2dsZVBsYXkoKXt0aGlzLmlzUGxheWluZz90aGlzLnBhdXNlKCk6dGhpcy5wbGF5KCl9c2VlayhLKXt0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LmN1cnJlbnRUaW1lPUspfXNldFZvbHVtZShLKXt0aGlzLnZvbHVtZT1NYXRoLm1heCgwLE1hdGgubWluKDEsSykpLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKSx0aGlzLnZvbHVtZT4wJiYodGhpcy5pc011dGVkPSExKX10b2dnbGVNdXRlKCl7dGhpcy5pc011dGVkPyh0aGlzLmlzTXV0ZWQ9ITEsdGhpcy52b2x1bWU9dGhpcy52b2x1bWVCZWZvcmVNdXRlfHwuNSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT10aGlzLnZvbHVtZSkpOih0aGlzLnZvbHVtZUJlZm9yZU11dGU9dGhpcy52b2x1bWUsdGhpcy5pc011dGVkPSEwLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPTApKX10b2dnbGVMb29wKCl7dGhpcy5sb29wPSF0aGlzLmxvb3AsdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5sb29wPXRoaXMubG9vcCl9aW5pdEF1ZGlvKCl7dGhpcy5hdWRpb0VsZW1lbnQ9bmV3IEF1ZGlvLHRoaXMuYXVkaW9FbGVtZW50LmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHRoaXMuYXVkaW9FbGVtZW50LnNyYz10aGlzLnNyYyx0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9dGhpcy5pc011dGVkPzA6dGhpcy52b2x1bWUsdGhpcy5hdWRpb0VsZW1lbnQubG9vcD10aGlzLmxvb3AsdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj10aGlzLmF1ZGlvRWxlbWVudC5kdXJhdGlvbix0aGlzLmxvYWRpbmc9ITF9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwoKT0+e3RoaXMuaXNQbGF5aW5nPSEwLHRoaXMuc3RhcnRUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwYXVzZSIsKCk9Pnt0aGlzLmlzUGxheWluZz0hMSx0aGlzLnN0b3BUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJlbmRlZCIsKCk9Pnt0aGlzLmlzUGxheWluZz0hMSx0aGlzLnN0b3BUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pnt0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCBhdWRpbyIsdGhpcy5sb2FkaW5nPSExfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidGltZXVwZGF0ZSIsKCk9Pnt0aGlzLmN1cnJlbnRUaW1lPXRoaXMuYXVkaW9FbGVtZW50LmN1cnJlbnRUaW1lfSksdGhpcy5hdXRvcGxheSYmdGhpcy5hdWRpb0VsZW1lbnQucGxheSgpLmNhdGNoKCgpPT57fSksdGhpcy5zaG93V2F2ZWZvcm0mJnRoaXMubG9hZFdhdmVmb3JtKCl9YXN5bmMgbG9hZFdhdmVmb3JtKCl7dHJ5e3RoaXMubG9hZGluZz0hMDtsZXQgVj1hd2FpdChhd2FpdCBmZXRjaCh0aGlzLnNyYykpLmFycmF5QnVmZmVyKCksbGU9bmV3IEF1ZGlvQ29udGV4dCxlZT0oYXdhaXQgbGUuZGVjb2RlQXVkaW9EYXRhKFYpKS5nZXRDaGFubmVsRGF0YSgwKSx6ZT0yMDAsSGU9TWF0aC5mbG9vcihlZS5sZW5ndGgvemUpLEdlPVtdO2ZvcihsZXQgRGU9MDtEZTx6ZTtEZSsrKXtsZXQgX2U9MDtmb3IobGV0IG9lPTA7b2U8SGU7b2UrKylfZSs9TWF0aC5hYnMoZWVbRGUqSGUrb2VdKTtHZS5wdXNoKF9lL0hlKX1sZXQgb3Q9TWF0aC5tYXgoLi4uR2UpO3RoaXMud2F2ZWZvcm1EYXRhPUdlLm1hcChEZT0+b3Q+MD9EZS9vdDowKSx0aGlzLndhdmVmb3JtUmVhZHk9ITAsdGhpcy5sb2FkaW5nPSExLGF3YWl0IGxlLmNsb3NlKCl9Y2F0Y2h7dGhpcy53YXZlZm9ybVJlYWR5PSExLHRoaXMubG9hZGluZz0hMX19ZHJhd1dhdmVmb3JtKCl7aWYoIXRoaXMuc2hvd1dhdmVmb3JtfHwhdGhpcy53YXZlZm9ybVJlYWR5KXJldHVybjtsZXQgSz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpO2lmKCFLKXJldHVybjt0aGlzLmNhbnZhc0VsZW1lbnQ9SztsZXQgVj1LLnBhcmVudEVsZW1lbnQsbGU9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDEsbmU9Vi5jbGllbnRXaWR0aCxlZT1WLmNsaWVudEhlaWdodDtLLndpZHRoPW5lKmxlLEsuaGVpZ2h0PWVlKmxlO2xldCB6ZT1LLmdldENvbnRleHQoIjJkIik7aWYoIXplKXJldHVybjt6ZS5zY2FsZShsZSxsZSksemUuY2xlYXJSZWN0KDAsMCxuZSxlZSk7bGV0IEhlPXRoaXMud2F2ZWZvcm1EYXRhLmxlbmd0aDtpZihIZT09PTApcmV0dXJuO2xldCBHZT1uZS9IZSxvdD10aGlzLmR1cmF0aW9uPjA/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uOjAsRGU9TWF0aC5mbG9vcihvdCpIZSksX2U9ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInRoZW1lLWRhcmsiKXx8d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzLG9lPV9lPyJoc2woMjEzIDkzJSA2OCUpIjoiaHNsKDIxNyA5MSUgNjAlKSIsc2U9X2U/ImhzbCgyMTcgMjUlIDIyJSkiOiJoc2woMjE0IDMxJSA4NiUpIjtmb3IobGV0IGNlPTA7Y2U8SGU7Y2UrKyl7bGV0IFRlPXRoaXMud2F2ZWZvcm1EYXRhW2NlXSxxZT1NYXRoLm1heCgyLFRlKihlZS00KSksbnQ9Y2UqR2UsdnQ9KGVlLXFlKS8yO3plLmZpbGxTdHlsZT1jZTxEZT9vZTpzZSx6ZS5maWxsUmVjdChudCsuNSx2dCxHZS0xLHFlKX19aGFuZGxlV2F2ZWZvcm1DbGljayhLKXtsZXQgVj1LLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbGU9KEsuY2xpZW50WC1WLmxlZnQpL1Yud2lkdGg7dGhpcy5zZWVrKGxlKnRoaXMuZHVyYXRpb24pfWhhbmRsZVNlZWtiYXJDbGljayhLKXtsZXQgVj1LLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbGU9KEsuY2xpZW50WC1WLmxlZnQpL1Yud2lkdGg7dGhpcy5zZWVrKGxlKnRoaXMuZHVyYXRpb24pfWhhbmRsZVZvbHVtZUNoYW5nZShLKXtsZXQgVj1wYXJzZUZsb2F0KEsudGFyZ2V0LnZhbHVlKTt0aGlzLnNldFZvbHVtZShWKX1zdGFydFRpbWVVcGRhdGUoKXt0aGlzLnN0b3BUaW1lVXBkYXRlKCk7bGV0IEs9aSgoKT0+e3RoaXMuYXVkaW9FbGVtZW50JiZ0aGlzLmlzUGxheWluZyYmKHRoaXMuY3VycmVudFRpbWU9dGhpcy5hdWRpb0VsZW1lbnQuY3VycmVudFRpbWUsdGhpcy5hbmltRnJhbWVJZD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoSykpfSwidXBkYXRlIik7dGhpcy5hbmltRnJhbWVJZD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoSyl9c3RvcFRpbWVVcGRhdGUoKXt0aGlzLmFuaW1GcmFtZUlkJiYoY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5hbmltRnJhbWVJZCksdGhpcy5hbmltRnJhbWVJZD0wKX1mb3JtYXRUaW1lKEspe2lmKCFpc0Zpbml0ZShLKXx8SzwwKXJldHVybiIwOjAwIjtsZXQgVj1NYXRoLmZsb29yKEsvNjApLGxlPU1hdGguZmxvb3IoSyU2MCk7cmV0dXJuYCR7Vn06JHtsZS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfWNsZWFudXAoKXt0aGlzLnN0b3BUaW1lVXBkYXRlKCksdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5wYXVzZSgpLHRoaXMuYXVkaW9FbGVtZW50LnNyYz0iIix0aGlzLmF1ZGlvRWxlbWVudD1udWxsKSx0aGlzLmlzUGxheWluZz0hMSx0aGlzLmN1cnJlbnRUaW1lPTAsdGhpcy5kdXJhdGlvbj0wLHRoaXMud2F2ZWZvcm1EYXRhPVtdLHRoaXMud2F2ZWZvcm1SZWFkeT0hMX1zdGF0aWN7Q2EoYSxyKX19O3JldHVybiB4ZT1hfSkoKX0pO3ZhciBSZWE9dSgoKT0+e0Y3dCgpfSk7dmFyIEZlYSxCZWE9dSgoKT0+e3ZlKCk7RmVhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmlkZW8gd2l0aCBDdXN0b20gQ29udHJvbHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QSB2aWRlbyBwbGF5ZXIgd2l0aCBvdmVybGF5IGNvbnRyb2xzLCBzZWVraW5nLCBhbmQgdm9sdW1lIGFkanVzdG1lbnQuPC9kaXY+CiAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvQmlnQnVja0J1bm55Lm1wNCIKICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZ3R2LXZpZGVvcy1idWNrZXQvc2FtcGxlL2ltYWdlcy9CaWdCdWNrQnVubnkuanBnIgogICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdXRvcGxheSBNdXRlZDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5WaWRlbyB0aGF0IGF1dG9wbGF5cyBtdXRlZCwgY29tbW9ubHkgdXNlZCBmb3IgcHJldmlld3MuPC9kaXY+CiAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvRWxlcGhhbnRzRHJlYW0ubXA0IgogICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvaW1hZ2VzL0VsZXBoYW50c0RyZWFtLmpwZyIKICAgICAgICAuYXV0b3BsYXk9JHshMH0KICAgICAgICAubXV0ZWQ9JHshMH0KICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TmF0aXZlIENvbnRyb2xzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlZpZGVvIHVzaW5nIGJyb3dzZXItbmF0aXZlIGNvbnRyb2xzIGluc3RlYWQgb2YgY3VzdG9tIG92ZXJsYXkuPC9kaXY+CiAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvRm9yQmlnZ2VyQmxhemVzLm1wNCIKICAgICAgICAuc2hvd0NvbnRyb2xzPSR7ITF9CiAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmAsImRlbW8iKX0pO3ZhciBKbyxVYSxIZWEsQjd0PXUoKCk9Pnt2ZSgpO0tyKCk7QmVhKCk7Sm89ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LFVhPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxIZWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXZpZGVvLXZpZXdlciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W10scGUsbWU9W10scT1bXSxILFU9W10saj1bXTt2YXIgYWU9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNWaWRlb1ZpZXdlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBYPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCgpXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOkJvb2xlYW59KV0sTz1baWUoKV0sQj1baWUoKV0sQT1baWUoKV0sWT1baWUoKV0sZGU9W2llKCldLGZlPVtpZSgpXSxwZT1baWUoKV0sSD1baWUoKV0sSm8odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+InNyYyJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLnNyYywiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5zcmM9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sbyxsKSxKbyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4icG9zdGVyImluIEosImhhcyIpLGdldDppKEo9PkoucG9zdGVyLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnBvc3Rlcj14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxkLGYpLEpvKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJzaG93Q29udHJvbHMiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si5zaG93Q29udHJvbHMsImdldCIpLHNldDppKChKLHhlKT0+e0ouc2hvd0NvbnRyb2xzPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LGgsbSksSm8odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvcGxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4iYXV0b3BsYXkiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si5hdXRvcGxheSwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5hdXRvcGxheT14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxiLGcpLEpvKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9vcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4ibG9vcCJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmxvb3AsImdldCIpLHNldDppKChKLHhlKT0+e0oubG9vcD14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxrLE0pLEpvKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXV0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+Im11dGVkImluIEosImhhcyIpLGdldDppKEo9PkoubXV0ZWQsImdldCIpLHNldDppKChKLHhlKT0+e0oubXV0ZWQ9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sXyxTKSxKbyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4iaXNQbGF5aW5nImluIEosImhhcyIpLGdldDppKEo9PkouaXNQbGF5aW5nLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLmlzUGxheWluZz14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxMLEUpLEpvKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImN1cnJlbnRUaW1lImluIEosImhhcyIpLGdldDppKEo9PkouY3VycmVudFRpbWUsImdldCIpLHNldDppKChKLHhlKT0+e0ouY3VycmVudFRpbWU9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sQyx6KSxKbyh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJkdXJhdGlvbiJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmR1cmF0aW9uLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLmR1cmF0aW9uPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LCQsRiksSm8odGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+InZvbHVtZSJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLnZvbHVtZSwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si52b2x1bWU9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sRyxaKSxKbyh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJsb2FkaW5nImluIEosImhhcyIpLGdldDppKEo9PkoubG9hZGluZywiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5sb2FkaW5nPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LEQsUSksSm8odGhpcyxudWxsLGZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImVycm9yImluIEosImhhcyIpLGdldDppKEo9PkouZXJyb3IsImdldCIpLHNldDppKChKLHhlKT0+e0ouZXJyb3I9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sVCxXKSxKbyh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0Z1bGxzY3JlZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImlzRnVsbHNjcmVlbiJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmlzRnVsbHNjcmVlbiwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5pc0Z1bGxzY3JlZW49eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sbWUscSksSm8odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250cm9sc1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImNvbnRyb2xzVmlzaWJsZSJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmNvbnRyb2xzVmlzaWJsZSwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5jb250cm9sc1Zpc2libGU9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sVSxqKSxKbyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpYfSxudWxsLHIpLGFlPWE9ZS52YWx1ZSxYJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlh9KX1zdGF0aWMgZGVtbz1GZWE7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPVVhKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoWCl7dGhpcy4jZT1YfSN0PShVYSh0aGlzLGwpLFVhKHRoaXMsZCwiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKFgpe3RoaXMuI3Q9WH0jcj0oVWEodGhpcyxmKSxVYSh0aGlzLGgsITApKTtnZXQgc2hvd0NvbnRyb2xzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dDb250cm9scyhYKXt0aGlzLiNyPVh9I2E9KFVhKHRoaXMsbSksVWEodGhpcyxiLCExKSk7Z2V0IGF1dG9wbGF5KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGF1dG9wbGF5KFgpe3RoaXMuI2E9WH0jaT0oVWEodGhpcyxnKSxVYSh0aGlzLGssITEpKTtnZXQgbG9vcCgpe3JldHVybiB0aGlzLiNpfXNldCBsb29wKFgpe3RoaXMuI2k9WH0jcz0oVWEodGhpcyxNKSxVYSh0aGlzLF8sITEpKTtnZXQgbXV0ZWQoKXtyZXR1cm4gdGhpcy4jc31zZXQgbXV0ZWQoWCl7dGhpcy4jcz1YfSNuPShVYSh0aGlzLFMpLFVhKHRoaXMsTCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaXNQbGF5aW5nKFgpe3RoaXMuI249WH0jbz0oVWEodGhpcyxFKSxVYSh0aGlzLEMsMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNvfXNldCBjdXJyZW50VGltZShYKXt0aGlzLiNvPVh9I2w9KFVhKHRoaXMseiksVWEodGhpcywkLDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgZHVyYXRpb24oWCl7dGhpcy4jbD1YfSNjPShVYSh0aGlzLEYpLFVhKHRoaXMsRywxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUoWCl7dGhpcy4jYz1YfSNkPShVYSh0aGlzLFopLFVhKHRoaXMsRCwhMCkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGxvYWRpbmcoWCl7dGhpcy4jZD1YfSN1PShVYSh0aGlzLFEpLFVhKHRoaXMsVCwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiN1fXNldCBlcnJvcihYKXt0aGlzLiN1PVh9I3A9KFVhKHRoaXMsVyksVWEodGhpcyxtZSwhMSkpO2dldCBpc0Z1bGxzY3JlZW4oKXtyZXR1cm4gdGhpcy4jcH1zZXQgaXNGdWxsc2NyZWVuKFgpe3RoaXMuI3A9WH0jZj0oVWEodGhpcyxxKSxVYSh0aGlzLFUsITApKTtnZXQgY29udHJvbHNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGNvbnRyb2xzVmlzaWJsZShYKXt0aGlzLiNmPVh9aGlkZUNvbnRyb2xzVGltZXI9KFVhKHRoaXMsaiksbnVsbCk7dmlkZW9FbGVtZW50PW51bGw7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWRlby1jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgdmlkZW8gewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAub3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jZW50ZXItcGxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgd2lkdGg6IDY0cHg7CiAgICAgICAgICBoZWlnaHQ6IDY0cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICAgIG9wYWNpdHk6ICR7dGhpcy5pc1BsYXlpbmc/MDoxfTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiAke3RoaXMuaXNQbGF5aW5nPyJub25lIjoiYXV0byJ9OwogICAgICAgIH0KCiAgICAgICAgLmNlbnRlci1wbGF5IGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2VudGVyLXBsYXk6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4xKTsKICAgICAgICB9CgogICAgICAgIC5jb250cm9scy1iYXIgewogICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuNykpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxMnB4IDEycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgb3BhY2l0eTogJHt0aGlzLmNvbnRyb2xzVmlzaWJsZXx8IXRoaXMuaXNQbGF5aW5nPzE6MH07CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLXJvdyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcm93OmhvdmVyIHsKICAgICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcHJvZ3Jlc3MgewogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuY29udHJvbHMtcm93IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmN0cmwtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsKICAgICAgICB9CgogICAgICAgIC50aW1lLWRpc3BsYXkgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnNwYWNlciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXIgewogICAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ2aWRlby1jb250YWluZXIiCiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMuaGFuZGxlTW91c2VNb3ZlfQogICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZUxlYXZlfQogICAgICA+CiAgICAgICAgPHZpZGVvCiAgICAgICAgICAuc3JjPSR7dGhpcy5zcmN9CiAgICAgICAgICAucG9zdGVyPSR7dGhpcy5wb3N0ZXJ9CiAgICAgICAgICAubXV0ZWQ9JHt0aGlzLm11dGVkfQogICAgICAgICAgLmxvb3A9JHt0aGlzLmxvb3B9CiAgICAgICAgICA/YXV0b3BsYXk9JHt0aGlzLmF1dG9wbGF5fQogICAgICAgICAgP2NvbnRyb2xzPSR7IXRoaXMuc2hvd0NvbnRyb2xzfQogICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgIEBsb2FkZWRtZXRhZGF0YT0ke3RoaXMuaGFuZGxlTG9hZGVkTWV0YWRhdGF9CiAgICAgICAgICBAcGxheT0ke3RoaXMuaGFuZGxlUGxheX0KICAgICAgICAgIEBwYXVzZT0ke3RoaXMuaGFuZGxlUGF1c2V9CiAgICAgICAgICBAZW5kZWQ9JHt0aGlzLmhhbmRsZUVuZGVkfQogICAgICAgICAgQHRpbWV1cGRhdGU9JHt0aGlzLmhhbmRsZVRpbWVVcGRhdGV9CiAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUVycm9yfQogICAgICAgICAgQHdhaXRpbmc9JHsoKT0+e3RoaXMubG9hZGluZz0hMH19CiAgICAgICAgICBAY2FucGxheT0keygpPT57dGhpcy5sb2FkaW5nPSExfX0KICAgICAgICA+PC92aWRlbz4KCiAgICAgICAgJHt0aGlzLnNob3dDb250cm9scz93YAogICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdmVybGF5Q2xpY2t9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZW50ZXItcGxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtYmFyIiBAY2xpY2s9JHtYPT5YLnN0b3BQcm9wYWdhdGlvbigpfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLXJvdyIgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWVrfT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItcHJvZ3Jlc3MiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmR1cmF0aW9uP3RoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbioxMDA6MH0lIj48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtcm93Ij4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBsYXl9PgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNQbGF5aW5nPyJQYXVzZSI6IlBsYXkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1kaXNwbGF5Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5jdXJyZW50VGltZSl9IC8gJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9CiAgICAgICAgICAgICAgICA8L3NwYW4+CgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNwYWNlciI+PC9zcGFuPgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZvbHVtZS1ncm91cCI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZU11dGV9PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5tdXRlZHx8dGhpcy52b2x1bWU9PT0wPyJWb2x1bWVYIjp0aGlzLnZvbHVtZTwuNT8iVm9sdW1lMSI6IlZvbHVtZTIifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idm9sdW1lLXNsaWRlciIKICAgICAgICAgICAgICAgICAgICB0eXBlPSJyYW5nZSIKICAgICAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICAgICAgbWF4PSIxIgogICAgICAgICAgICAgICAgICAgIHN0ZXA9IjAuMDEiCiAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7U3RyaW5nKHRoaXMubXV0ZWQ/MDp0aGlzLnZvbHVtZSl9CiAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVWb2x1bWVDaGFuZ2V9CiAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHJsLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVGdWxsc2NyZWVufSB0aXRsZT0iRnVsbHNjcmVlbiI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc0Z1bGxzY3JlZW4/Ik1pbmltaXplIjoiTWF4aW1pemUifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMubG9hZGluZyYmIXRoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpWaWRlb09mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMudmlkZW9FbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigidmlkZW8iKXx8bnVsbCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIix0aGlzLmhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIix0aGlzLmhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UpLHRoaXMuaGlkZUNvbnRyb2xzVGltZXImJmNsZWFyVGltZW91dCh0aGlzLmhpZGVDb250cm9sc1RpbWVyKX1wbGF5KCl7dGhpcy52aWRlb0VsZW1lbnQ/LnBsYXkoKX1wYXVzZSgpe3RoaXMudmlkZW9FbGVtZW50Py5wYXVzZSgpfXRvZ2dsZVBsYXkoKXt0aGlzLmlzUGxheWluZz90aGlzLnBhdXNlKCk6dGhpcy5wbGF5KCl9c2VlayhYKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lPVgpfXNldFZvbHVtZShYKXt0aGlzLnZvbHVtZT1NYXRoLm1heCgwLE1hdGgubWluKDEsWCkpLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKX10b2dnbGVGdWxsc2NyZWVuKCl7bGV0IFg9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlkZW8tY29udGFpbmVyIik7WCYmKHRoaXMuaXNGdWxsc2NyZWVuP2RvY3VtZW50LmV4aXRGdWxsc2NyZWVuPy4oKTpYLnJlcXVlc3RGdWxsc2NyZWVuPy4oKSl9aGFuZGxlTG9hZGVkTWV0YWRhdGEoKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMuZHVyYXRpb249dGhpcy52aWRlb0VsZW1lbnQuZHVyYXRpb24sdGhpcy5sb2FkaW5nPSExKX1oYW5kbGVQbGF5KCl7dGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZVBhdXNlKCl7dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jb250cm9sc1Zpc2libGU9ITB9aGFuZGxlRW5kZWQoKXt0aGlzLmlzUGxheWluZz0hMSx0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMH1oYW5kbGVUaW1lVXBkYXRlKCl7dGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLmN1cnJlbnRUaW1lPXRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lKX1oYW5kbGVFcnJvcigpe3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIHZpZGVvIix0aGlzLmxvYWRpbmc9ITF9aGFuZGxlT3ZlcmxheUNsaWNrKCl7dGhpcy50b2dnbGVQbGF5KCl9aGFuZGxlU2VlayhYKXtsZXQgSj1YLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkseGU9KFguY2xpZW50WC1KLmxlZnQpL0oud2lkdGg7dGhpcy5zZWVrKHhlKnRoaXMuZHVyYXRpb24pfWhhbmRsZVZvbHVtZUNoYW5nZShYKXtsZXQgSj1wYXJzZUZsb2F0KFgudGFyZ2V0LnZhbHVlKTt0aGlzLnNldFZvbHVtZShKKSx0aGlzLm11dGVkPUo9PT0wfXRvZ2dsZU11dGUoKXt0aGlzLm11dGVkPSF0aGlzLm11dGVkLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQubXV0ZWQ9dGhpcy5tdXRlZCl9aGFuZGxlTW91c2VNb3ZlKCl7dGhpcy5jb250cm9sc1Zpc2libGU9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZU1vdXNlTGVhdmUoKXt0aGlzLmlzUGxheWluZyYmKHRoaXMuY29udHJvbHNWaXNpYmxlPSExKX1zY2hlZHVsZUhpZGVDb250cm9scygpe3RoaXMuaGlkZUNvbnRyb2xzVGltZXImJmNsZWFyVGltZW91dCh0aGlzLmhpZGVDb250cm9sc1RpbWVyKSx0aGlzLmlzUGxheWluZyYmKHRoaXMuaGlkZUNvbnRyb2xzVGltZXI9c2V0VGltZW91dCgoKT0+e3RoaXMuY29udHJvbHNWaXNpYmxlPSExfSwzZTMpKX1oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlPWkoKCk9Pnt0aGlzLmlzRnVsbHNjcmVlbj0hIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fSwiaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSIpO2Zvcm1hdFRpbWUoWCl7aWYoIWlzRmluaXRlKFgpfHxYPDApcmV0dXJuIjA6MDAiO2xldCBKPU1hdGguZmxvb3IoWC82MCkseGU9TWF0aC5mbG9vcihYJTYwKTtyZXR1cm5gJHtKfToke3hlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje1VhKGEscil9fTtyZXR1cm4gYWU9YX0pKCl9KTt2YXIgcWVhPXUoKCk9PntCN3QoKX0pO3ZhciBTZCxONmU9dSgoKT0+e3ZlKCk7U2Q9Y2xhc3N7c3RhdGlje2kodGhpcywiUGRmTWFuYWdlciIpfXN0YXRpYyBwZGZqc0xpYjtzdGF0aWMgaW5pdGlhbGl6ZWQ9ITE7c3RhdGljIGFzeW5jIGluaXRpYWxpemUoKXt0aGlzLmluaXRpYWxpemVkfHwodGhpcy5wZGZqc0xpYj1hd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20iKSx0aGlzLnBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS9idWlsZC9wZGYud29ya2VyLm1qcyIsdGhpcy5pbml0aWFsaXplZD0hMCl9c3RhdGljIGFzeW5jIGxvYWREb2N1bWVudChlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0aWFsaXplKCksYXdhaXQgdGhpcy5wZGZqc0xpYi5nZXREb2N1bWVudChlKS5wcm9taXNlfXN0YXRpYyByZWxlYXNlRG9jdW1lbnQoZSl7fX19KTt2YXIgVmVhLGplYT11KCgpPT57dmUoKTtsdCgpO1ZlYT1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgY29udGFpbjogbGF5b3V0IHN0eWxlOwogICAgfQoKICAgIGRlZXMtdGlsZSB7CiAgICAgIGhlaWdodDogMTAwJTsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lcjo6YmVmb3JlLAogICAgLnZpZXdlci1jb250YWluZXI6OmFmdGVyIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGhlaWdodDogOHB4OwogICAgICB6LWluZGV4OiA1OwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lcjo6YmVmb3JlIHsKICAgICAgdG9wOiAwOwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgdG8gYm90dG9tLAogICAgICAgICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMCUgLyAwLjQpIil9LAogICAgICAgICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDMpIiwiaHNsKDAgMCUgMCUgLyAwLjEyKSIpfSwKICAgICAgICB0cmFuc3BhcmVudAogICAgICApOwogICAgfQoKICAgIC52aWV3ZXItY29udGFpbmVyOjphZnRlciB7CiAgICAgIGJvdHRvbTogMDsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgIHRvIHRvcCwKICAgICAgICAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDAlIC8gMC40KSIpfSwKICAgICAgICAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgdHJhbnNwYXJlbnQKICAgICAgKTsKICAgIH0KCiAgICAudG9vbGJhciB7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICBnYXA6IDEycHg7CiAgICB9CgogICAgLnRvb2xiYXItZ3JvdXAgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDRweDsKICAgIH0KCiAgICAudG9vbGJhci1ncm91cC0tZW5kIHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgfQoKICAgIC5wYWdlLWluZm8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAucGFnZS1pbnB1dCB7CiAgICAgIHdpZHRoOiA0OHB4OwogICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMjIgNDclIDExJSkiLCJoc2woMjEwIDIwJSA5NiUpIil9OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgLnBhZ2UtaW5wdXQ6Zm9jdXMgewogICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAucGFnZS1zZXBhcmF0b3IgewogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUgMTYlIDYwJSkiLCJoc2woMjE1IDE2JSA1MCUpIil9OwogICAgfQoKICAgIC56b29tLWxldmVsIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBtaW4td2lkdGg6IDQ4cHg7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDA7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnNpZGViYXIgewogICAgICB3aWR0aDogMjAwcHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgb3JkZXI6IDA7CiAgICB9CgogICAgLnNpZGViYXItcmlnaHQgLnNpZGViYXIgewogICAgICBib3JkZXItcmlnaHQ6IG5vbmU7CiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBvcmRlcjogMTsKICAgIH0KCiAgICAuc2lkZWJhci1oZWFkZXIgewogICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnNpZGViYXItY2xvc2UgewogICAgICB3aWR0aDogMjRweDsKICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZSBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICB9CgogICAgLnNpZGViYXItY29udGVudCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgcGFkZGluZzogMTJweDsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICB9CgogICAgLnRodW1ibmFpbCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMjE1IDIwJSAxOCUpIil9OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIC8qIERlZmF1bHQgQTQgYXNwZWN0IHJhdGlvICgyOTdtbSAvIDIxMG1tIOKJiCAxLjQxNCkgKi8KICAgICAgbWluLWhlaWdodDogY2FsYygxNzZweCAqIDEuNDE0KTsKICAgIH0KCiAgICAudGh1bWJuYWlsOmxhc3QtY2hpbGQgewogICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgfQoKICAgIC50aHVtYm5haWw6aG92ZXIgewogICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMzUlKSIpfTsKICAgIH0KCiAgICAudGh1bWJuYWlsLmFjdGl2ZSB7CiAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC50aHVtYm5haWwtY2FudmFzIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICAgIH0KCiAgICAudGh1bWJuYWlsLW51bWJlciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiA0cHg7CiAgICAgIHJpZ2h0OiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuNykiLCJyZ2JhKDAsIDAsIDAsIDAuOCkiKX07CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB9CgogICAgLnZpZXdlci1tYWluIHsKICAgICAgZmxleDogMTsKICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgbWluLWhlaWdodDogMDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5sb2FkaW5nLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGdhcDogMTZweDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBib3JkZXI6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICB9CiAgICB9CgogICAgLmxvYWRpbmctdGV4dCB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAucGFnZXMtY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAyMHB4OwogICAgfQoKICAgIC5wYWdlLXdyYXBwZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CgogICAgLmNhbnZhcy1jb250YWluZXIgewogICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgYm94LXNoYWRvdzogMCAycHggMTJweCAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5wYWdlLWNhbnZhcyB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgICB9CgogICAgLyogVGV4dCBsYXllciBmb3Igc2VsZWN0aW9uICovCiAgICAudGV4dC1sYXllciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDA7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgdGV4dC1zaXplLWFkanVzdDogbm9uZTsKICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwOwogICAgICB6LWluZGV4OiAxOwogICAgICB1c2VyLXNlbGVjdDogdGV4dDsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKICAgIH0KCiAgICAudGV4dC1sYXllciBzcGFuLAogICAgLnRleHQtbGF5ZXIgYnIgewogICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTsKICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgOjpzZWxlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMCwgMjAwLCAwLjMpOwogICAgfQoKICAgIC50ZXh0LWxheWVyIGJyOjpzZWxlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIH0KCiAgICAudGV4dC1sYXllciAuZW5kT2ZDb250ZW50IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDEwMCUgMCAwOwogICAgICB6LWluZGV4OiAwOwogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgfQoKICAgIC50ZXh0LWxheWVyLnNlbGVjdGluZyAuZW5kT2ZDb250ZW50IHsKICAgICAgdG9wOiAwOwogICAgfQoKICAgIC5wZGYtdmlld2VyLndpdGgtc2lkZWJhciAudmlld2VyLW1haW4gewogICAgICBtYXJnaW4tbGVmdDogMDsKICAgIH0KCiAgICAucGRmLWZvb3RlciB7CiAgICAgIGhlaWdodDogMjhweDsKICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLWxlZnQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDEycHg7CiAgICB9CgogICAgLnBkZi1mb290ZXItbGVmdCAucGRmLWZvb3Rlci1pdGVtICsgLnBkZi1mb290ZXItaXRlbSB7CiAgICAgIHBhZGRpbmctbGVmdDogMTJweDsKICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgIH0KCiAgICAucGRmLWZvb3Rlci1jZW50ZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB0cmFuc2l0aW9uOiBtYXJnaW4tbGVmdCAwLjE1cyBlYXNlOwogICAgfQoKICAgIC5wZGYtZm9vdGVyLXJpZ2h0IHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnBkZi1mb290ZXItaXRlbSB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CgogICAgLnBkZi1mb290ZXItZmlsZW5hbWUgewogICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgJ0dlaXN0IE1vbm8nLCBtb25vc3BhY2U7CiAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CiAgYF19KTt2YXIgVWVhLFdlYT11KCgpPT57dmUoKTtVZWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOwogICAgfQoKICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgfQoKICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjb2xvcjogI2ZhZmFmYTsKICAgIH0KCiAgICBkZWVzLXBkZi12aWV3ZXIgewogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnZpZXdlci10YWxsIHsKICAgICAgaGVpZ2h0OiA4MDBweDsKICAgIH0KCiAgICAudmlld2VyLWNvbXBhY3QgewogICAgICBoZWlnaHQ6IDUwMHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5GdWxsIEZlYXR1cmVkIFBERiBWaWV3ZXIgd2l0aCBUb29sYmFyPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItdGFsbCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0idHJ1ZSIKICAgICAgICBzaG93U2lkZWJhcj0iZmFsc2UiCiAgICAgICAgaW5pdGlhbFpvb209InBhZ2UtZml0IgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UERGIFZpZXdlciB3aXRoIFNpZGViYXIgTmF2aWdhdGlvbjwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLXRhbGwiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9InRydWUiCiAgICAgICAgc2hvd1NpZGViYXI9InRydWUiCiAgICAgICAgaW5pdGlhbFpvb209InBhZ2Utd2lkdGgiCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Db21wYWN0IFZpZXdlciB3aXRob3V0IENvbnRyb2xzPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItY29tcGFjdCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0iZmFsc2UiCiAgICAgICAgc2hvd1NpZGViYXI9ImZhbHNlIgogICAgICAgIGluaXRpYWxab29tPSJhdXRvIgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIGUxLFdhLEdlYSxIN3Q9dSgoKT0+e3ZlKCk7TjZlKCk7amVhKCk7V2VhKCk7S3IoKTtucygpO2UxPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxXYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sR2VhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1wZGYtdmlld2VyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdLGZlLFQ9W10sVz1bXSxwZSxtZT1bXSxxPVtdLEgsVT1bXSxqPVtdO3ZhciBhZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1BkZlZpZXdlciIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBYPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6TnVtYmVyfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sTj1bUCh7dHlwZTpTdHJpbmd9KV0sTz1bUCh7dHlwZTpOdW1iZXJ9KV0sQj1bUCh7dHlwZTpOdW1iZXJ9KV0sQT1bUCh7dHlwZTpOdW1iZXJ9KV0sWT1bUCh7dHlwZTpCb29sZWFufSldLGRlPVtQKHt0eXBlOlN0cmluZ30pXSxmZT1bUCh7dHlwZTpBcnJheX0pXSxwZT1bUCh7dHlwZTpBcnJheX0pXSxIPVtQKHt0eXBlOk51bWJlcn0pXSxlMSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4icGRmVXJsImluIEosImhhcyIpLGdldDppKEo9PkoucGRmVXJsLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnBkZlVybD14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxvLGwpLGUxKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImluaXRpYWxQYWdlImluIEosImhhcyIpLGdldDppKEo9PkouaW5pdGlhbFBhZ2UsImdldCIpLHNldDppKChKLHhlKT0+e0ouaW5pdGlhbFBhZ2U9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sZCxmKSxlMSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxab29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJpbml0aWFsWm9vbSJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmluaXRpYWxab29tLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLmluaXRpYWxab29tPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LGgsbSksZTEodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VG9vbGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4ic2hvd1Rvb2xiYXIiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5zaG93VG9vbGJhcj14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxiLGcpLGUxKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1NpZGViYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+InNob3dTaWRlYmFyImluIEosImhhcyIpLGdldDppKEo9Pkouc2hvd1NpZGViYXIsImdldCIpLHNldDppKChKLHhlKT0+e0ouc2hvd1NpZGViYXI9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sayxNKSxlMSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpZGViYXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4ic2lkZWJhclBvc2l0aW9uImluIEosImhhcyIpLGdldDppKEo9Pkouc2lkZWJhclBvc2l0aW9uLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnNpZGViYXJQb3NpdGlvbj14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxfLFMpLGUxKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+ImN1cnJlbnRQYWdlImluIEosImhhcyIpLGdldDppKEo9PkouY3VycmVudFBhZ2UsImdldCIpLHNldDppKChKLHhlKT0+e0ouY3VycmVudFBhZ2U9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sTCxFKSxlMSh0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRvdGFsUGFnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+InRvdGFsUGFnZXMiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si50b3RhbFBhZ2VzLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnRvdGFsUGFnZXM9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sQyx6KSxlMSh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRab29tIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJjdXJyZW50Wm9vbSJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmN1cnJlbnRab29tLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLmN1cnJlbnRab29tPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LCQsRiksZTEodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJsb2FkaW5nImluIEosImhhcyIpLGdldDppKEo9PkoubG9hZGluZywiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5sb2FkaW5nPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LEcsWiksZTEodGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9jdW1lbnRJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4iZG9jdW1lbnRJZCJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLmRvY3VtZW50SWQsImdldCIpLHNldDppKChKLHhlKT0+e0ouZG9jdW1lbnRJZD14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxELFEpLGUxKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoSj0+InRodW1ibmFpbERhdGEiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si50aHVtYm5haWxEYXRhLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnRodW1ibmFpbERhdGE9eGV9LCJzZXQiKX0sbWV0YWRhdGE6WH0sVCxXKSxlMSh0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShKPT4icGFnZURhdGEiaW4gSiwiaGFzIiksZ2V0OmkoSj0+Si5wYWdlRGF0YSwiZ2V0Iiksc2V0OmkoKEoseGUpPT57Si5wYWdlRGF0YT14ZX0sInNldCIpfSxtZXRhZGF0YTpYfSxtZSxxKSxlMSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZkZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEo9PiJwZGZGaWxlU2l6ZSJpbiBKLCJoYXMiKSxnZXQ6aShKPT5KLnBkZkZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoSix4ZSk9PntKLnBkZkZpbGVTaXplPXhlfSwic2V0Iil9LG1ldGFkYXRhOlh9LFUsaiksZTEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6WH0sbnVsbCxyKSxhZT1hPWUudmFsdWUsWCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpYfSl9c3RhdGljIGRlbW89VWVhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJQREYiXTtzdGF0aWMgc3R5bGVzPVZlYTsjZT1XYSh0aGlzLG8sIiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKFgpe3RoaXMuI2U9WH0jdD0oV2EodGhpcyxsKSxXYSh0aGlzLGQsMSkpO2dldCBpbml0aWFsUGFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbml0aWFsUGFnZShYKXt0aGlzLiN0PVh9I3I9KFdhKHRoaXMsZiksV2EodGhpcyxoLCJhdXRvIikpO2dldCBpbml0aWFsWm9vbSgpe3JldHVybiB0aGlzLiNyfXNldCBpbml0aWFsWm9vbShYKXt0aGlzLiNyPVh9I2E9KFdhKHRoaXMsbSksV2EodGhpcyxiLCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dUb29sYmFyKFgpe3RoaXMuI2E9WH0jaT0oV2EodGhpcyxnKSxXYSh0aGlzLGssITEpKTtnZXQgc2hvd1NpZGViYXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1NpZGViYXIoWCl7dGhpcy4jaT1YfSNzPShXYSh0aGlzLE0pLFdhKHRoaXMsXywibGVmdCIpKTtnZXQgc2lkZWJhclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNpZGViYXJQb3NpdGlvbihYKXt0aGlzLiNzPVh9I249KFdhKHRoaXMsUyksV2EodGhpcyxMLDEpKTtnZXQgY3VycmVudFBhZ2UoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY3VycmVudFBhZ2UoWCl7dGhpcy4jbj1YfSNvPShXYSh0aGlzLEUpLFdhKHRoaXMsQywxKSk7Z2V0IHRvdGFsUGFnZXMoKXtyZXR1cm4gdGhpcy4jb31zZXQgdG90YWxQYWdlcyhYKXt0aGlzLiNvPVh9I2w9KFdhKHRoaXMseiksV2EodGhpcywkLDEpKTtnZXQgY3VycmVudFpvb20oKXtyZXR1cm4gdGhpcy4jbH1zZXQgY3VycmVudFpvb20oWCl7dGhpcy4jbD1YfSNjPShXYSh0aGlzLEYpLFdhKHRoaXMsRywhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGxvYWRpbmcoWCl7dGhpcy4jYz1YfSNkPShXYSh0aGlzLFopLFdhKHRoaXMsRCwiIikpO2dldCBkb2N1bWVudElkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGRvY3VtZW50SWQoWCl7dGhpcy4jZD1YfSN1PShXYSh0aGlzLFEpLFdhKHRoaXMsVCxbXSkpO2dldCB0aHVtYm5haWxEYXRhKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHRodW1ibmFpbERhdGEoWCl7dGhpcy4jdT1YfSNwPShXYSh0aGlzLFcpLFdhKHRoaXMsbWUsW10pKTtnZXQgcGFnZURhdGEoKXtyZXR1cm4gdGhpcy4jcH1zZXQgcGFnZURhdGEoWCl7dGhpcy4jcD1YfSNmPShXYSh0aGlzLHEpLFdhKHRoaXMsVSwwKSk7Z2V0IHBkZkZpbGVTaXplKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHBkZkZpbGVTaXplKFgpe3RoaXMuI2Y9WH1wZGZEb2N1bWVudD1XYSh0aGlzLGopO3JlbmRlclN0YXRlPSJpZGxlIjtyZW5kZXJBYm9ydENvbnRyb2xsZXI9bnVsbDtwYWdlUmVuZGVyaW5nPSExO3BhZ2VOdW1QZW5kaW5nPW51bGw7Y3VycmVudFJlbmRlclRhc2s9bnVsbDtjdXJyZW50UmVuZGVyUHJvbWlzZT1udWxsO3RodW1ibmFpbFJlbmRlclRhc2tzPVtdO3BhZ2VSZW5kZXJUYXNrcz1uZXcgTWFwO3RleHRMYXllclJlbmRlclRhc2tzPW5ldyBNYXA7Y2FudmFzO2N0eDt2aWV3ZXJNYWluPW51bGw7cmVzaXplT2JzZXJ2ZXI7aW50ZXJzZWN0aW9uT2JzZXJ2ZXI7c2Nyb2xsVGhyb3R0bGVUaW1lb3V0O3ZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6MCxoZWlnaHQ6MH07dmlld3BvcnRNb2RlPSJhdXRvIjtNQU5VQUxfTUlOX1pPT009LjU7TUFOVUFMX01BWF9aT09NPTM7QUJTT0xVVEVfTUlOX1pPT009LjE7QUJTT0xVVEVfTUFYX1pPT009NDtQQUdFX0dBUD0yMDtSRU5ERVJfQlVGRkVSPTM7Y29uc3RydWN0b3IoKXtzdXBlcigpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy10aWxlIGNsYXNzPSIke3RoaXMuc2hvd1NpZGViYXI/IndpdGgtc2lkZWJhciI6IiJ9IHNpZGViYXItJHt0aGlzLnNpZGViYXJQb3NpdGlvbn0iPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj93YAogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5wcmV2aW91c1BhZ2V9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmN1cnJlbnRQYWdlPD0xfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkNoZXZyb25MZWZ0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgogICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgIHR5cGU9Im51bWJlciIKICAgICAgICAgICAgICAgICAgbWluPSIxIgogICAgICAgICAgICAgICAgICBtYXg9IiR7dGhpcy50b3RhbFBhZ2VzfSIKICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7U3RyaW5nKHRoaXMuY3VycmVudFBhZ2UpfQogICAgICAgICAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5oYW5kbGVQYWdlSW5wdXR9CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJwYWdlLWlucHV0IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYWdlLXNlcGFyYXRvciI+Lzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYWdlLXRvdGFsIj4ke3RoaXMudG90YWxQYWdlc308L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5uZXh0UGFnZX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuY3VycmVudFBhZ2U+PXRoaXMudG90YWxQYWdlc30KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpDaGV2cm9uUmlnaHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuem9vbU91dH0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmNhblpvb21PdXR9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbU91dCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5yZXNldFpvb219CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Inpvb20tbGV2ZWwiPiR7TWF0aC5yb3VuZCh0aGlzLmN1cnJlbnRab29tKjEwMCl9JTwvc3Bhbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnpvb21Jbn0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmNhblpvb21Jbn0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tSW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZml0VG9QYWdlfQogICAgICAgICAgICAgICAgdGl0bGU9IkZpdCB0byBwYWdlIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOk1heGltaXplIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmZpdFRvV2lkdGh9CiAgICAgICAgICAgICAgICB0aXRsZT0iRml0IHRvIHdpZHRoIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkFycm93TGVmdFJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIHRvb2xiYXItZ3JvdXAtLWVuZCI+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd1NpZGViYXI9IXRoaXMuc2hvd1NpZGViYXJ9CiAgICAgICAgICAgICAgICB0aXRsZT0iJHt0aGlzLnNob3dTaWRlYmFyPyJIaWRlIHRodW1ibmFpbHMiOiJTaG93IHRodW1ibmFpbHMifSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249IiR7dGhpcy5zaG93U2lkZWJhcj8ibHVjaWRlOlNpZGViYXJDbG9zZSI6Imx1Y2lkZTpTaWRlYmFyIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZG93bmxvYWRQZGZ9CiAgICAgICAgICAgICAgICB0aXRsZT0iRG93bmxvYWQiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucHJpbnRQZGZ9CiAgICAgICAgICAgICAgICB0aXRsZT0iUHJpbnQiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UHJpbnRlciI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0idmlld2VyLWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMuc2hvd1NpZGViYXI/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4+UGFnZXM8L3NwYW4+CiAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJzaWRlYmFyLWNsb3NlIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zaG93U2lkZWJhcj0hMX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6WCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgJHtabC5rZXllZCh0aGlzLmRvY3VtZW50SWQsd2AKICAgICAgICAgICAgICAgICAgJHtabC5yZXBlYXQodGhpcy50aHVtYm5haWxEYXRhLFg9PlgucGFnZSxYPT53YAogICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGh1bWJuYWlsICR7dGhpcy5jdXJyZW50UGFnZT09PVgucGFnZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcGFnZT0iJHtYLnBhZ2V9IgogICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVRodW1ibmFpbENsaWNrfQogICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJ0aHVtYm5haWwtY2FudmFzIiBkYXRhLXBhZ2U9IiR7WC5wYWdlfSI+PC9jYW52YXM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aHVtYm5haWwtbnVtYmVyIj4ke1gucGFnZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgPGRpdiBjbGFzcz0idmlld2VyLW1haW4iIEBzY3JvbGw9JHt0aGlzLmhhbmRsZVNjcm9sbH0+CiAgICAgICAgICAgICR7dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctdGV4dCI+TG9hZGluZyBQREYuLi48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2VzLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAke1psLnJlcGVhdCh0aGlzLnBhZ2VEYXRhLFg9PlgucGFnZSxYPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2Utd3JhcHBlciIgZGF0YS1wYWdlPSIke1gucGFnZX0iPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FudmFzLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9InBhZ2UtY2FudmFzIiBkYXRhLXBhZ2U9IiR7WC5wYWdlfSI+PC9jYW52YXM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtbGF5ZXIiIGRhdGEtcGFnZT0iJHtYLnBhZ2V9Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0icGRmLWZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwZGYtZm9vdGVyLWxlZnQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGRmLWZvb3Rlci1pdGVtIj5ab29tICR7TWF0aC5yb3VuZCh0aGlzLmN1cnJlbnRab29tKjEwMCl9JTwvc3Bhbj4KICAgICAgICAgICAgJHt0aGlzLnBkZkZpbGVTaXplPjA/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGRmLWZvb3Rlci1pdGVtIj4ke3RoaXMuZm9ybWF0RmlsZVNpemUodGhpcy5wZGZGaWxlU2l6ZSl9PC9zcGFuPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwZGYtZm9vdGVyLWNlbnRlciIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAke3RoaXMuc2hvd1NpZGViYXImJnRoaXMuc2lkZWJhclBvc2l0aW9uPT09ImxlZnQiPyIxMDBweCI6dGhpcy5zaG93U2lkZWJhciYmdGhpcy5zaWRlYmFyUG9zaXRpb249PT0icmlnaHQiPyItMTAwcHgiOiIwIn0iPgogICAgICAgICAgICA8c3Bhbj5QYWdlICR7dGhpcy5jdXJyZW50UGFnZX0gb2YgJHt0aGlzLnRvdGFsUGFnZXN9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwZGYtZm9vdGVyLXJpZ2h0Ij4KICAgICAgICAgICAgJHt0aGlzLnBkZlVybD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwZGYtZm9vdGVyLWZpbGVuYW1lIj4ke3RoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl9PC9zcGFuPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmVuc3VyZVZpZXdlclJlZnMoKSx0aGlzLnBkZlVybCYmKHRoaXMuZG9jdW1lbnRJZD1gJHt0aGlzLnBkZlVybH0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxhd2FpdCB0aGlzLmxvYWRQZGYoKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMCx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj12b2lkIDAsdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQpLHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0PXZvaWQgMCksdGhpcy5yZW5kZXJTdGF0ZT0iZGlzcG9zZWQiLGF3YWl0IHRoaXMuY2xlYW51cERvY3VtZW50KCksdGhpcy5jYW52YXM9dm9pZCAwLHRoaXMuY3R4PXZvaWQgMH1hc3luYyB1cGRhdGVkKFgpe2lmKHN1cGVyLnVwZGF0ZWQoWCksWC5oYXMoInBkZlVybCIpJiZ0aGlzLnBkZlVybCl7bGV0IEo9WC5nZXQoInBkZlVybCIpO0omJlNkLnJlbGVhc2VEb2N1bWVudChKKSx0aGlzLmRvY3VtZW50SWQ9YCR7dGhpcy5wZGZVcmx9LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWAsYXdhaXQgdGhpcy5sb2FkUGRmKCl9WC5oYXMoInNob3dTaWRlYmFyIikmJnRoaXMuc2hvd1NpZGViYXImJnRoaXMucGRmRG9jdW1lbnQmJihhd2FpdCBuZXcgUHJvbWlzZShKPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoSikpLHRoaXMudGh1bWJuYWlsRGF0YS5mb3JFYWNoKEo9PkoucmVuZGVyZWQ9ITEpLGF3YWl0IHRoaXMucmVuZGVyVGh1bWJuYWlscygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpLHRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcodGhpcy5jdXJyZW50UGFnZSkpfWZvcm1hdEZpbGVTaXplKFgpe3JldHVybiBYPDEwMjQ/YCR7WH0gQmA6WDwxMDI0KjEwMjQ/YCR7KFgvMTAyNCkudG9GaXhlZCgxKX0gS0JgOmAkeyhYLygxMDI0KjEwMjQpKS50b0ZpeGVkKDEpfSBNQmB9YXN5bmMgbG9hZFBkZigpe3RoaXMubG9hZGluZz0hMCx0aGlzLnJlbmRlclN0YXRlPSJsb2FkaW5nIjt0cnl7YXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKSx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyO2xldCBYPXRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyLnNpZ25hbDtpZih0aGlzLnBkZkRvY3VtZW50PWF3YWl0IFNkLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCksWC5hYm9ydGVkKXJldHVybjt0aGlzLnRvdGFsUGFnZXM9dGhpcy5wZGZEb2N1bWVudC5udW1QYWdlcyx0aGlzLmN1cnJlbnRQYWdlPXRoaXMuaW5pdGlhbFBhZ2UsdGhpcy5yZXNvbHZlSW5pdGlhbFZpZXdwb3J0TW9kZSgpO3RyeXtsZXQgSj1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKTt0aGlzLnBkZkZpbGVTaXplPUoubGVuZ3RofWNhdGNoe3RoaXMucGRmRmlsZVNpemU9MH1pZih0aGlzLnRodW1ibmFpbERhdGE9QXJyYXkuZnJvbSh7bGVuZ3RoOnRoaXMudG90YWxQYWdlc30sKEoseGUpPT4oe3BhZ2U6eGUrMSxyZW5kZXJlZDohMX0pKSx0aGlzLnBhZ2VEYXRhPUFycmF5LmZyb20oe2xlbmd0aDp0aGlzLnRvdGFsUGFnZXN9LChKLHhlKT0+KHtwYWdlOnhlKzEscmVuZGVyZWQ6ITEscmVuZGVyaW5nOiExLHRleHRMYXllclJlbmRlcmVkOiExfSkpLHRoaXMubG9hZGluZz0hMSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZW5zdXJlVmlld2VyUmVmcygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpLGF3YWl0IG5ldyBQcm9taXNlKEo9PnJlcXVlc3RBbmltYXRpb25GcmFtZShKKSksWC5hYm9ydGVkfHwodGhpcy5yZW5kZXJTdGF0ZT0icmVuZGVyaW5nLW1haW4iLGF3YWl0IHRoaXMucmVuZGVyVmlzaWJsZVBhZ2VzKCksWC5hYm9ydGVkKXx8KHRoaXMuaW5pdGlhbFBhZ2U+MSYmYXdhaXQgdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5pbml0aWFsUGFnZSwhMSksdGhpcy5zaG93U2lkZWJhciYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2UoSj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEopKSxYLmFib3J0ZWR8fChhd2FpdCB0aGlzLnJlbmRlclRodW1ibmFpbHMoKSxYLmFib3J0ZWQpKSkpcmV0dXJuO3RoaXMucmVuZGVyU3RhdGU9InJlbmRlcmVkIn1jYXRjaChYKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIFBERjoiLFgpLHRoaXMubG9hZGluZz0hMSx0aGlzLnJlbmRlclN0YXRlPSJlcnJvciJ9fXNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKXt0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyJiZ0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihKPT57Zm9yKGxldCB4ZSBvZiBKKXtsZXQgSz14ZS50YXJnZXQsVj1wYXJzZUludChLLmRhdGFzZXQucGFnZXx8IjEiKTt4ZS5pc0ludGVyc2VjdGluZyYmdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoVil9fSx7cm9vdDp0aGlzLnZpZXdlck1haW4scm9vdE1hcmdpbjpgJHt0aGlzLlJFTkRFUl9CVUZGRVIqMTAwfXB4IDBweGAsdGhyZXNob2xkOi4wMX0pO2xldCBYPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnBhZ2Utd3JhcHBlciIpO1gmJlguZm9yRWFjaChKPT57dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj8ub2JzZXJ2ZShKKX0pfWFzeW5jIHJlbmRlclZpc2libGVQYWdlcygpe2lmKCF0aGlzLnZpZXdlck1haW4pcmV0dXJuO2xldCBYPXRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQ7Zm9yKGxldCBKIG9mIHRoaXMucGFnZURhdGEpe2xldCB4ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke0oucGFnZX0iXWApO2lmKCF4ZSljb250aW51ZTtsZXQgSz14ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxWPXRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxsZT1LLnRvcC1WLnRvcCxuZT1sZStLLmhlaWdodCxlZT10aGlzLlJFTkRFUl9CVUZGRVIqWDtuZT49LWVlJiZsZTw9WCtlZSYmYXdhaXQgdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoSi5wYWdlKX19YXN5bmMgcmVuZGVyUGFnZUlmTmVlZGVkKFgpe2xldCBKPXRoaXMucGFnZURhdGEuZmluZCh4ZT0+eGUucGFnZT09PVgpO2lmKCEoIUp8fEoucmVuZGVyZWR8fEoucmVuZGVyaW5nKSl7Si5yZW5kZXJpbmc9ITA7dHJ5e2xldCB4ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLWNhbnZhc1tkYXRhLXBhZ2U9IiR7WH0iXWApO2lmKCF4ZSl7Si5yZW5kZXJpbmc9ITE7cmV0dXJufWxldCBLPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShYKSxWPXRoaXMuY29tcHV0ZVZpZXdwb3J0KEspLGxlPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3hlLndpZHRoPU1hdGguZmxvb3IoVi53aWR0aCpsZSkseGUuaGVpZ2h0PU1hdGguZmxvb3IoVi5oZWlnaHQqbGUpLHhlLnN0eWxlLndpZHRoPWAke1Yud2lkdGh9cHhgLHhlLnN0eWxlLmhlaWdodD1gJHtWLmhlaWdodH1weGA7bGV0IG5lPXhlLmdldENvbnRleHQoIjJkIik7aWYoIW5lKXtLLmNsZWFudXA/LigpLEoucmVuZGVyaW5nPSExO3JldHVybn1uZS5zY2FsZShsZSxsZSk7bGV0IGVlPXtjYW52YXNDb250ZXh0Om5lLHZpZXdwb3J0OlZ9LHplPUsucmVuZGVyKGVlKTt0aGlzLnBhZ2VSZW5kZXJUYXNrcy5zZXQoWCx6ZSksYXdhaXQgemUucHJvbWlzZSxLLmNsZWFudXA/LigpLEoucmVuZGVyZWQ9ITAsSi5yZW5kZXJpbmc9ITEsdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKFgpLGF3YWl0IHRoaXMucmVuZGVyVGV4dExheWVyKFgpLHRoaXMucmVxdWVzdFVwZGF0ZSgicGFnZURhdGEiKX1jYXRjaCh4ZSl7eGU/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIHBhZ2UgJHtYfTpgLHhlKSxKLnJlbmRlcmluZz0hMSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5kZWxldGUoWCl9fX1hc3luYyByZW5kZXJUZXh0TGF5ZXIoWCl7bGV0IEo9dGhpcy5wYWdlRGF0YS5maW5kKHhlPT54ZS5wYWdlPT09WCk7aWYoISghSnx8Si50ZXh0TGF5ZXJSZW5kZXJlZCkpdHJ5e2xldCB4ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC50ZXh0LWxheWVyW2RhdGEtcGFnZT0iJHtYfSJdYCk7aWYoIXhlKXJldHVybjt4ZS5pbm5lckhUTUw9IiI7bGV0IEs9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKFgpLFY9YXdhaXQgSy5nZXRUZXh0Q29udGVudCgpLGxlPXRoaXMuY29tcHV0ZVZpZXdwb3J0KEspLG5lPWF3YWl0IGltcG9ydCgiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvK2VzbSIpO3hlLnN0eWxlLndpZHRoPWAke2xlLndpZHRofXB4YCx4ZS5zdHlsZS5oZWlnaHQ9YCR7bGUuaGVpZ2h0fXB4YCx4ZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zY2FsZS1mYWN0b3IiLFN0cmluZyhsZS5zY2FsZSkpO2xldCBlZT1uZS5yZW5kZXJUZXh0TGF5ZXIoe3RleHRDb250ZW50U291cmNlOlYsY29udGFpbmVyOnhlLHZpZXdwb3J0OmxlfSk7dGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5zZXQoWCxlZSksYXdhaXQgZWUucHJvbWlzZTtsZXQgemU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7emUuY2xhc3NOYW1lPSJlbmRPZkNvbnRlbnQiLHhlLmFwcGVuZENoaWxkKHplKTtsZXQgSGU9ITEsR2U9bnVsbCxvdD0wLERlPWkoKHNlLGNlKT0+e2xldCBUZT1BcnJheS5mcm9tKHhlLnF1ZXJ5U2VsZWN0b3JBbGwoInNwYW4iKSk7Zm9yKGxldCBxZSBvZiBUZSl7bGV0IG50PXFlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKHNlPj1udC5sZWZ0JiZzZTw9bnQucmlnaHQmJmNlPj1udC50b3AmJmNlPD1udC5ib3R0b20pe2xldCB2dD1xZS5maXJzdENoaWxkO2lmKHZ0JiZ2dC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXtsZXQgTGU9dnQudGV4dENvbnRlbnR8fCIiLHdlPW50LndpZHRoL0xlLmxlbmd0aCxPZT1zZS1udC5sZWZ0LGdlPU1hdGgubWluKE1hdGgucm91bmQoT2Uvd2UpLExlLmxlbmd0aCk7cmV0dXJue25vZGU6dnQsb2Zmc2V0OmdlfX19fXJldHVybiBudWxsfSwiZ2V0VGV4dFBvc2l0aW9uRnJvbVBvaW50IiksX2U9aSgoKT0+e0hlJiYoSGU9ITEsR2U9bnVsbCx4ZS5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RpbmciKSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsX2UpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsb2UpfSwiaGFuZGxlTW91c2VVcCIpLG9lPWkoc2U9PntpZighSGV8fCFHZSlyZXR1cm47c2UucHJldmVudERlZmF1bHQoKTtsZXQgY2U9RGUoc2UuY2xpZW50WCxzZS5jbGllbnRZKTtpZihjZSl7bGV0IFRlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihUZSl0cnl7VGUuc2V0QmFzZUFuZEV4dGVudChHZSxvdCxjZS5ub2RlLGNlLm9mZnNldCl9Y2F0Y2h7fX19LCJoYW5kbGVNb3VzZU1vdmUiKTt4ZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHNlPT57aWYoc2UuYnV0dG9uIT09MClyZXR1cm47bGV0IGNlPURlKHNlLmNsaWVudFgsc2UuY2xpZW50WSk7Y2UmJihzZS5wcmV2ZW50RGVmYXVsdCgpLEhlPSEwLEdlPWNlLm5vZGUsb3Q9Y2Uub2Zmc2V0LHhlLmNsYXNzTGlzdC5hZGQoInNlbGVjdGluZyIpLHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixvZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsX2UpKX0pLEoudGV4dExheWVyUmVuZGVyZWQ9ITAsSy5jbGVhbnVwPy4oKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmRlbGV0ZShYKX1jYXRjaCh4ZSl7eGU/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIHRleHQgbGF5ZXIgZm9yIHBhZ2UgJHtYfTpgLHhlKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmRlbGV0ZShYKX19aGFuZGxlU2Nyb2xsPWkoKCk9Pnt0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0KSx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dD13aW5kb3cuc2V0VGltZW91dCgoKT0+e3RoaXMudXBkYXRlQ3VycmVudFBhZ2UoKSx0aGlzLnJlbmRlclZpc2libGVQYWdlcygpfSw1MCl9LCJoYW5kbGVTY3JvbGwiKTt1cGRhdGVDdXJyZW50UGFnZSgpe2lmKCF0aGlzLnZpZXdlck1haW4pcmV0dXJuO2xldCBYPXRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3AsSj10aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0LHhlPVgrSi8yO2ZvcihsZXQgSz0wO0s8dGhpcy5wYWdlRGF0YS5sZW5ndGg7SysrKXtsZXQgVj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke0srMX0iXWApO2lmKCFWKWNvbnRpbnVlO2xldCBsZT1WLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG5lPXRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlZT1sZS50b3AtbmUudG9wK1gsemU9ZWUrbGUuaGVpZ2h0O2lmKHhlPj1lZSYmeGU8PXplKXt0aGlzLmN1cnJlbnRQYWdlIT09SysxJiYodGhpcy5jdXJyZW50UGFnZT1LKzEsdGhpcy5zaG93U2lkZWJhciYmdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhLKzEpKTticmVha319fXNjcm9sbFRodW1ibmFpbEludG9WaWV3KFgpe2xldCBKPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnRodW1ibmFpbFtkYXRhLXBhZ2U9IiR7WH0iXWApLHhlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNpZGViYXItY29udGVudCIpO2lmKEomJnhlKXtsZXQgSz1KLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFY9eGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbGU9Sy50b3A8Vi50b3AsbmU9Sy5ib3R0b20+Vi5ib3R0b207aWYobGV8fG5lKXtsZXQgZWU9Si5vZmZzZXRUb3AsemU9Si5vZmZzZXRIZWlnaHQsSGU9eGUuY2xpZW50SGVpZ2h0LEdlPWVlLUhlLzIremUvMjt4ZS5zY3JvbGxUbyh7dG9wOk1hdGgubWF4KDAsR2UpLGJlaGF2aW9yOiJzbW9vdGgifSl9fX1hc3luYyBzY3JvbGxUb1BhZ2UoWCxKPSEwKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCB4ZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke1h9Il1gKTtpZih4ZSYmdGhpcy52aWV3ZXJNYWluKXtsZXQgSz14ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxWPXRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuZT10aGlzLnZpZXdlck1haW4uc2Nyb2xsVG9wKyhLLnRvcC1WLnRvcCktdGhpcy52aWV3ZXJNYWluLmNsaWVudFRvcC0xNjtKP3RoaXMudmlld2VyTWFpbi5zY3JvbGxUbyh7dG9wOm5lLGJlaGF2aW9yOiJzbW9vdGgifSk6dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcD1uZSx0aGlzLmN1cnJlbnRQYWdlPVgsdGhpcy5zaG93U2lkZWJhciYmdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhYKSxhd2FpdCB0aGlzLnJlbmRlclBhZ2VJZk5lZWRlZChYKX19YXN5bmMgcmVuZGVyVGh1bWJuYWlscygpe2lmKCF0aGlzLnBkZkRvY3VtZW50fHx0aGlzLnRodW1ibmFpbERhdGEubGVuZ3RoPjAmJnRoaXMudGh1bWJuYWlsRGF0YS5ldmVyeShKPT5KLnJlbmRlcmVkKXx8dGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI/LnNpZ25hbC5hYm9ydGVkKXJldHVybjtsZXQgWD10aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj8uc2lnbmFsO3RoaXMucmVuZGVyU3RhdGU9InJlbmRlcmluZy10aHVtYnMiO2ZvcihsZXQgSiBvZiB0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzKXRyeXtKLmNhbmNlbCgpfWNhdGNoe310aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzPVtdO3RyeXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBKPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnRodW1ibmFpbCIpLHhlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnRodW1ibmFpbC1jYW52YXMiKSxLPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNpZGViYXItY29udGVudCIpLFY9d2luZG93LmdldENvbXB1dGVkU3R5bGUoSyksbmU9MjAwLShwYXJzZUZsb2F0KFYucGFkZGluZ0xlZnQpK3BhcnNlRmxvYXQoVi5wYWRkaW5nUmlnaHQpKS00O2ZvcihsZXQgZWUgb2YgQXJyYXkuZnJvbSh4ZSkpe2xldCB6ZT1lZS5nZXRDb250ZXh0KCIyZCIpO3plJiZ6ZS5jbGVhclJlY3QoMCwwLGVlLndpZHRoLGVlLmhlaWdodCl9Zm9yKGxldCBlZT0wO2VlPHhlLmxlbmd0aDtlZSsrKXtpZihYPy5hYm9ydGVkKXJldHVybjtsZXQgemU9eGVbZWVdLEhlPUpbZWVdLEdlPXBhcnNlSW50KHplLmRhdGFzZXQucGFnZXx8IjEiKSxvdD1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoR2UpLERlPW90LmdldFZpZXdwb3J0KHtzY2FsZToxfSksX2U9bmUvRGUud2lkdGgsb2U9b3QuZ2V0Vmlld3BvcnQoe3NjYWxlOl9lfSksc2U9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7emUud2lkdGg9TWF0aC5mbG9vcihvZS53aWR0aCpzZSksemUuaGVpZ2h0PU1hdGguZmxvb3Iob2UuaGVpZ2h0KnNlKSx6ZS5zdHlsZS53aWR0aD1gJHtvZS53aWR0aH1weGAsemUuc3R5bGUuaGVpZ2h0PWAke29lLmhlaWdodH1weGAsSGUuc3R5bGUuaGVpZ2h0PWAke29lLmhlaWdodH1weGAsSGUuc3R5bGUubWluSGVpZ2h0PWAke29lLmhlaWdodH1weGA7bGV0IGNlPXplLmdldENvbnRleHQoIjJkIik7aWYoIWNlKXtvdC5jbGVhbnVwPy4oKTtjb250aW51ZX1jZS5zY2FsZShzZSxzZSk7bGV0IFRlPXtjYW52YXNDb250ZXh0OmNlLHZpZXdwb3J0Om9lfSxxZT1vdC5yZW5kZXIoVGUpO3RoaXMudGh1bWJuYWlsUmVuZGVyVGFza3MucHVzaChxZSksYXdhaXQgcWUucHJvbWlzZSxvdC5jbGVhbnVwPy4oKTtsZXQgbnQ9dGhpcy50aHVtYm5haWxEYXRhLmZpbmQodnQ9PnZ0LnBhZ2U9PT1HZSk7bnQmJihudC5yZW5kZXJlZD0hMCl9dGhpcy5yZXF1ZXN0VXBkYXRlKCJ0aHVtYm5haWxEYXRhIil9Y2F0Y2goSil7Sj8ubmFtZSE9PSJSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24iJiZjb25zb2xlLmVycm9yKCJFcnJvciByZW5kZXJpbmcgdGh1bWJuYWlsczoiLEopfWZpbmFsbHl7dGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXX19cHJldmlvdXNQYWdlKCl7dGhpcy5jdXJyZW50UGFnZT4xJiZ0aGlzLnNjcm9sbFRvUGFnZSh0aGlzLmN1cnJlbnRQYWdlLTEpfW5leHRQYWdlKCl7dGhpcy5jdXJyZW50UGFnZTx0aGlzLnRvdGFsUGFnZXMmJnRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuY3VycmVudFBhZ2UrMSl9aGFuZGxlVGh1bWJuYWlsQ2xpY2soWCl7bGV0IEo9WC5jdXJyZW50VGFyZ2V0LHhlPXBhcnNlSW50KEouZGF0YXNldC5wYWdlfHwiMSIpO3RoaXMuc2Nyb2xsVG9QYWdlKHhlKX1oYW5kbGVQYWdlSW5wdXQoWCl7bGV0IEo9WC50YXJnZXQseGU9cGFyc2VJbnQoSi52YWx1ZSk7dGhpcy5zY3JvbGxUb1BhZ2UoeGUpfXpvb21Jbigpe2xldCBYPU1hdGgubWluKHRoaXMuTUFOVUFMX01BWF9aT09NLHRoaXMuY3VycmVudFpvb20qMS4yKTt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIixYIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209WCx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKSl9em9vbU91dCgpe2xldCBYPU1hdGgubWF4KHRoaXMuTUFOVUFMX01JTl9aT09NLHRoaXMuY3VycmVudFpvb20vMS4yKTt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIixYIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209WCx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKSl9cmVzZXRab29tKCl7dGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsdGhpcy5jdXJyZW50Wm9vbT0xLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfWZpdFRvUGFnZSgpe3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLWZpdCIsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9Zml0VG9XaWR0aCgpe3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLXdpZHRoIix0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1yZVJlbmRlckFsbFBhZ2VzKCl7dGhpcy5wYWdlRGF0YS5mb3JFYWNoKFg9PntYLnJlbmRlcmVkPSExLFgucmVuZGVyaW5nPSExLFgudGV4dExheWVyUmVuZGVyZWQ9ITF9KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5mb3JFYWNoKFg9Pnt0cnl7WC5jYW5jZWwoKX1jYXRjaHt9fSksdGhpcy5wYWdlUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmZvckVhY2goWD0+e3RyeXtYLmNhbmNlbD8uKCl9Y2F0Y2h7fX0pLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLnJlbmRlclZpc2libGVQYWdlcygpfSl9YXN5bmMgZG93bmxvYWRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgWD1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKSxKPW5ldyBCbG9iKFtYLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSx4ZT1VUkwuY3JlYXRlT2JqZWN0VVJMKEopLEs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO0suaHJlZj14ZSxLLmRvd25sb2FkPXRoaXMucGRmVXJsJiZ0aGlzLnBkZlVybC5zcGxpdCgiLyIpLnBvcCgpfHwiZG9jdW1lbnQucGRmIixLLmNsaWNrKCksc2V0VGltZW91dCgoKT0+VVJMLnJldm9rZU9iamVjdFVSTCh4ZSksMWUzKX1jYXRjaChYKXtjb25zb2xlLmVycm9yKCJFcnJvciBkb3dubG9hZGluZyBQREY6IixYKX19YXN5bmMgcHJpbnRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgWD1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKSxKPW5ldyBCbG9iKFtYLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSx4ZT1VUkwuY3JlYXRlT2JqZWN0VVJMKEopLEs9YAogICAgICAgIDwhRE9DVFlQRSBodG1sPgogICAgICAgIDxodG1sPgogICAgICAgIDxoZWFkPgogICAgICAgICAgPHRpdGxlPlByaW50IFBERjwvdGl0bGU+CiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgICogeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0KICAgICAgICAgICAgaHRtbCwgYm9keSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IH0KICAgICAgICAgICAgaWZyYW1lIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYm9yZGVyOiBub25lOyB9CiAgICAgICAgICAgIEBtZWRpYSBwcmludCB7CiAgICAgICAgICAgICAgaHRtbCwgYm9keSwgaWZyYW1lIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgIDwvaGVhZD4KICAgICAgICA8Ym9keT4KICAgICAgICAgIDxpZnJhbWUgc3JjPSIke3hlfSIgdHlwZT0iYXBwbGljYXRpb24vcGRmIj48L2lmcmFtZT4KICAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgd2luZG93LmZvY3VzKCk7CiAgICAgICAgICAgICAgICB3aW5kb3cucHJpbnQoKTsKICAgICAgICAgICAgICB9LCA1MDApOwogICAgICAgICAgICB9OwogICAgICAgICAgICB3aW5kb3cub25hZnRlcnByaW50ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgd2luZG93LmNsb3NlKCk7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIC8vIFNhZmV0eSBjbG9zZSBhZnRlciAyIG1pbnV0ZXMKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgd2luZG93LmNsb3NlKCk7IH0sIDEyMDAwMCk7CiAgICAgICAgICA8XC9zY3JpcHQ+CiAgICAgICAgPC9ib2R5PgogICAgICAgIDwvaHRtbD4KICAgICAgYCxWPW5ldyBCbG9iKFtLXSx7dHlwZToidGV4dC9odG1sIn0pLGxlPVVSTC5jcmVhdGVPYmplY3RVUkwoViksbmU9d2luZG93Lm9wZW4obGUsIl9ibGFuayIsIndpZHRoPTgwMCxoZWlnaHQ9NjAwIik7aWYobmUpe2xldCBlZT1zZXRJbnRlcnZhbCgoKT0+e25lLmNsb3NlZCYmKGNsZWFySW50ZXJ2YWwoZWUpLFVSTC5yZXZva2VPYmplY3RVUkwoeGUpLFVSTC5yZXZva2VPYmplY3RVUkwobGUpKX0sNTAwKTtzZXRUaW1lb3V0KCgpPT57Y2xlYXJJbnRlcnZhbChlZSksVVJMLnJldm9rZU9iamVjdFVSTCh4ZSksVVJMLnJldm9rZU9iamVjdFVSTChsZSl9LDEyZTQpfWVsc2Ugd2luZG93Lm9wZW4oeGUsIl9ibGFuayIpLHNldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwoeGUpLDZlNCksVVJMLnJldm9rZU9iamVjdFVSTChsZSl9Y2F0Y2goWCl7Y29uc29sZS5lcnJvcigiRXJyb3IgcHJpbnRpbmcgUERGOiIsWCl9fWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgWD1bXSx4ZT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnRvU3RyaW5nKCl8fCIiO3JldHVybiB4ZSYmKFgucHVzaCh7bmFtZToiQ29weSIsaWNvbk5hbWU6Imx1Y2lkZTpDb3B5IixhY3Rpb246aShhc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoeGUpfSwiYWN0aW9uIil9KSxYLnB1c2goe2RpdmlkZXI6ITB9KSksWC5wdXNoKHtuYW1lOiJEb3dubG9hZCBQREYiLGljb25OYW1lOiJsdWNpZGU6RG93bmxvYWQiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmRvd25sb2FkUGRmKCl9LCJhY3Rpb24iKX0se25hbWU6IlByaW50IFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpQcmludGVyIixhY3Rpb246aShhc3luYygpPT57YXdhaXQgdGhpcy5wcmludFBkZigpfSwiYWN0aW9uIil9KSxYfWdldCBjYW5ab29tSW4oKXtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tInx8dGhpcy5jdXJyZW50Wm9vbTx0aGlzLk1BTlVBTF9NQVhfWk9PTX1nZXQgY2FuWm9vbU91dCgpe3JldHVybiB0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20ifHx0aGlzLmN1cnJlbnRab29tPnRoaXMuTUFOVUFMX01JTl9aT09NfWVuc3VyZVZpZXdlclJlZnMoKXt0aGlzLnZpZXdlck1haW58fCh0aGlzLnZpZXdlck1haW49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlld2VyLW1haW4iKSksdGhpcy52aWV3ZXJNYWluJiYhdGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCksdGhpcy5wZGZEb2N1bWVudCYmdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy52aWV3ZXJNYWluKSx0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKSx0aGlzLnZpZXdlck1haW4uYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLFg9PntsZXQgSj1YLmN1cnJlbnRUYXJnZXQseGU9Si5zY3JvbGxUb3AsSz1KLnNjcm9sbEhlaWdodCxWPUouY2xpZW50SGVpZ2h0LGxlPVguZGVsdGFZLG5lPXhlPT09MCxlZT1NYXRoLmFicyh4ZStWLUspPDE7bGU8MCYmIW5lfHxsZT4wJiYhZWU/WC5zdG9wUHJvcGFnYXRpb24oKToobGU8MCYmbmV8fGxlPjAmJmVlKSYmKFgucHJldmVudERlZmF1bHQoKSxYLnN0b3BQcm9wYWdhdGlvbigpKX0se3Bhc3NpdmU6ITF9KSl9bWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpe2lmKCF0aGlzLnZpZXdlck1haW4pe3RoaXMudmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDowLGhlaWdodDowfTtyZXR1cm59bGV0IFg9Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnZpZXdlck1haW4pLEo9cGFyc2VGbG9hdChYLnBhZGRpbmdMZWZ0fHwiMCIpK3BhcnNlRmxvYXQoWC5wYWRkaW5nUmlnaHR8fCIwIikseGU9cGFyc2VGbG9hdChYLnBhZGRpbmdUb3B8fCIwIikrcGFyc2VGbG9hdChYLnBhZGRpbmdCb3R0b218fCIwIiksSz1NYXRoLm1heCh0aGlzLnZpZXdlck1haW4uY2xpZW50V2lkdGgtSiwwKSxWPU1hdGgubWF4KHRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQteGUsMCk7dGhpcy52aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOkssaGVpZ2h0OlZ9fXJlc29sdmVJbml0aWFsVmlld3BvcnRNb2RlKCl7dHlwZW9mIHRoaXMuaW5pdGlhbFpvb209PSJudW1iZXIiPyh0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIix0aGlzLmN1cnJlbnRab29tPXRoaXMubm9ybWFsaXplWm9vbSh0aGlzLmluaXRpYWxab29tLCEwKSk6dGhpcy5pbml0aWFsWm9vbT09PSJwYWdlLXdpZHRoIj90aGlzLnZpZXdwb3J0TW9kZT0icGFnZS13aWR0aCI6dGhpcy5pbml0aWFsWm9vbT09PSJwYWdlLWZpdCJ8fHRoaXMuaW5pdGlhbFpvb209PT0iYXV0byI/dGhpcy52aWV3cG9ydE1vZGU9InBhZ2UtZml0Ijp0aGlzLnZpZXdwb3J0TW9kZT0iYXV0byIsdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tIiYmKHRoaXMuY3VycmVudFpvb209MSl9Y29tcHV0ZVZpZXdwb3J0KFgpe3RoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpO2xldCBKPVguZ2V0Vmlld3BvcnQoe3NjYWxlOjF9KSx4ZTtzd2l0Y2godGhpcy52aWV3cG9ydE1vZGUpe2Nhc2UicGFnZS13aWR0aCI6e3hlPSh0aGlzLnZpZXdwb3J0RGltZW5zaW9ucy53aWR0aHx8Si53aWR0aCkvSi53aWR0aDticmVha31jYXNlInBhZ2UtZml0IjpjYXNlImF1dG8iOntsZXQgVj10aGlzLnZpZXdwb3J0RGltZW5zaW9ucy53aWR0aHx8Si53aWR0aCxsZT10aGlzLnZpZXdwb3J0RGltZW5zaW9ucy5oZWlnaHR8fEouaGVpZ2h0LG5lPVYvSi53aWR0aCxlZT1sZS9KLmhlaWdodDt4ZT1NYXRoLm1pbihuZSxlZSk7YnJlYWt9ZGVmYXVsdDp7eGU9dGhpcy5ub3JtYWxpemVab29tKHRoaXMuY3VycmVudFpvb218fDEsITEpO2JyZWFrfX0oIU51bWJlci5pc0Zpbml0ZSh4ZSl8fHhlPD0wKSYmKHhlPTEpO2xldCBLPXRoaXMudmlld3BvcnRNb2RlPT09ImN1c3RvbSI/dGhpcy5ub3JtYWxpemVab29tKHhlLCEwKTp0aGlzLm5vcm1hbGl6ZVpvb20oeGUsITEpO3JldHVybiB0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20iJiYodGhpcy5jdXJyZW50Wm9vbT1LKSxYLmdldFZpZXdwb3J0KHtzY2FsZTpLfSl9bm9ybWFsaXplWm9vbShYLEope2xldCB4ZT1KP3RoaXMuTUFOVUFMX01JTl9aT09NOnRoaXMuQUJTT0xVVEVfTUlOX1pPT00sSz1KP3RoaXMuTUFOVUFMX01BWF9aT09NOnRoaXMuQUJTT0xVVEVfTUFYX1pPT007cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KFgseGUpLEspfWFzeW5jIGNsZWFudXBEb2N1bWVudCgpe2lmKHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyJiYodGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXIuYWJvcnQoKSx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj1udWxsKSx0aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlKXt0cnl7YXdhaXQgdGhpcy5jdXJyZW50UmVuZGVyUHJvbWlzZX1jYXRjaHt9dGhpcy5jdXJyZW50UmVuZGVyUHJvbWlzZT1udWxsfXRoaXMuY3VycmVudFJlbmRlclRhc2s9bnVsbCx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5mb3JFYWNoKFg9Pnt0cnl7WC5jYW5jZWwoKX1jYXRjaHt9fSksdGhpcy5wYWdlUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmZvckVhY2goWD0+e3RyeXtYLmNhbmNlbD8uKCl9Y2F0Y2h7fX0pLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuY2xlYXIoKTtmb3IobGV0IFggb2YgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrc3x8W10pdHJ5e1guY2FuY2VsKCl9Y2F0Y2h7fWlmKHRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W10sdGhpcy5yZW5kZXJTdGF0ZT0iaWRsZSIsdGhpcy5wYWdlUmVuZGVyaW5nPSExLHRoaXMucGFnZU51bVBlbmRpbmc9bnVsbCx0aGlzLnRodW1ibmFpbERhdGE9W10sdGhpcy5wYWdlRGF0YT1bXSx0aGlzLmRvY3VtZW50SWQ9IiIsdGhpcy5jYW52YXMmJnRoaXMuY3R4JiZ0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5wZGZEb2N1bWVudCl0cnl7dGhpcy5wZGZEb2N1bWVudC5kZXN0cm95KCl9Y2F0Y2goWCl7Y29uc29sZS5lcnJvcigiRXJyb3IgZGVzdHJveWluZyBQREYgZG9jdW1lbnQ6IixYKX10aGlzLnBkZkRvY3VtZW50PW51bGwsdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c3RhdGlje1dhKGEscil9fTtyZXR1cm4gYWU9YX0pKCl9KTt2YXIgWWVhLEtlYT11KCgpPT57dmUoKTtZZWE9aSgoKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogNDBweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIC5wcmV2aWV3LWltYWdlIHsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgIH0KCiAgICAucHJldmlldy1wZGYgewogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5JbWFnZSBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1dG8tZGV0ZWN0cyBpbWFnZSBmcm9tIFVSTCBleHRlbnNpb24gYW5kIHJlbmRlcnMgd2l0aCB0aGUgaW1hZ2Ugdmlld2VyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgY2xhc3M9InByZXZpZXctaW1hZ2UiCiAgICAgICAgdXJsPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjc0NDAzODEzNi00NjI3MzgzNGIzZmI/dz0xMjAwIgogICAgICAgIGZpbGVuYW1lPSJsYW5kc2NhcGUuanBnIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UERGIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXV0by1kZXRlY3RzIFBERiBhbmQgZGlzcGxheXMgd2l0aCB0aGUgUERGIHZpZXdlciBpbmNsdWRpbmcgdG9vbGJhci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNsYXNzPSJwcmV2aWV3LXBkZiIKICAgICAgICB1cmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBmaWxlbmFtZT0icmVzZWFyY2gtcGFwZXIucGRmIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29kZSBQcmV2aWV3IChUZXh0IENvbnRlbnQpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlR5cGVTY3JpcHQgY29kZSBkaXNwbGF5ZWQgd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nIHZpYSB0aGUgY29kZWJveC48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGZpbGVuYW1lPSJleGFtcGxlLnRzIgogICAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BpbXBvcnQgeyBodG1sLCBjc3MgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7CiAgc3RhdGljIHN0eWxlcyA9IGNzc1xgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQogIFxgOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgPGgxPkhlbGxvIFdvcmxkPC9oMT5cYDsKICB9Cn1gfQogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdWRpbyBmaWxlIGRldGVjdGVkIGJ5IGV4dGVuc2lvbiwgc2hvd24gd2l0aCB3YXZlZm9ybSBwbGF5ZXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICB1cmw9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgZmlsZW5hbWU9InNvbmcubXAzIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmlkZW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5WaWRlbyBmaWxlIGRldGVjdGVkIGZyb20gVVJMLCByZW5kZXJlZCB3aXRoIGN1c3RvbSB2aWRlbyBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIHVybD0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvQmlnQnVja0J1bm55Lm1wNCIKICAgICAgICBmaWxlbmFtZT0iYmlnLWJ1Y2stYnVubnkubXA0IgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+RXhwbGljaXQgVHlwZSBPdmVycmlkZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Gb3JjZSBjb250ZW50IHR5cGUgdG8gJ3RleHQnIGV2ZW4gdGhvdWdoIHRoZSBVUkwgaGFzIG5vIGV4dGVuc2lvbi48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNvbnRlbnRUeXBlPSJ0ZXh0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BUaGlzIGlzIHBsYWluIHRleHQgY29udGVudC4KSXQgcHJlc2VydmVzIHdoaXRlc3BhY2UgYW5kIGxpbmUgYnJlYWtzLgoKVXNlZnVsIGZvciBsb2cgZmlsZXMsIFJFQURNRXMsIGV0Yy5gfQogICAgICAgIGZpbGVuYW1lPSJub3Rlcy50eHQiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Vbmtub3duIFR5cGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+V2hlbiBjb250ZW50IHR5cGUgY2Fubm90IGJlIGRldGVjdGVkLCBzaG93cyBhIHBsYWNlaG9sZGVyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgZmlsZW5hbWU9ImRhdGEuYmluIgogICAgICAgIGNvbnRlbnRUeXBlPSJ1bmtub3duIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtb0Z1bmMiKX0pO3ZhciBIbixnYSxaZWEsZkZhLGhGYSxtRmEsUWVhLFhlYT11KCgpPT57dmUoKTtSN3QoKTtGN3QoKTtCN3QoKTt3N3QoKTtIN3QoKTtLcigpO0tlYSgpO0huPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxnYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sWmVhPXtqcGc6ImltYWdlIixqcGVnOiJpbWFnZSIscG5nOiJpbWFnZSIsZ2lmOiJpbWFnZSIsd2VicDoiaW1hZ2UiLHN2ZzoiaW1hZ2UiLGJtcDoiaW1hZ2UiLGF2aWY6ImltYWdlIixpY286ImltYWdlIixwZGY6InBkZiIsbXAzOiJhdWRpbyIsd2F2OiJhdWRpbyIsb2dnOiJhdWRpbyIsZmxhYzoiYXVkaW8iLGFhYzoiYXVkaW8iLG00YToiYXVkaW8iLG9wdXM6ImF1ZGlvIix3ZWJhOiJhdWRpbyIsbXA0OiJ2aWRlbyIsd2VibToidmlkZW8iLG1vdjoidmlkZW8iLGF2aToidmlkZW8iLG1rdjoidmlkZW8iLG9ndjoidmlkZW8iLHRzOiJjb2RlIixqczoiY29kZSIsanN4OiJjb2RlIix0c3g6ImNvZGUiLGpzb246ImNvZGUiLGh0bWw6ImNvZGUiLGNzczoiY29kZSIsc2NzczoiY29kZSIsbGVzczoiY29kZSIscHk6ImNvZGUiLGphdmE6ImNvZGUiLGdvOiJjb2RlIixyczoiY29kZSIseWFtbDoiY29kZSIseW1sOiJjb2RlIix4bWw6ImNvZGUiLHNxbDoiY29kZSIsc2g6ImNvZGUiLGJhc2g6ImNvZGUiLHpzaDoiY29kZSIsbWQ6ImNvZGUiLGM6ImNvZGUiLGNwcDoiY29kZSIsaDoiY29kZSIsaHBwOiJjb2RlIixyYjoiY29kZSIscGhwOiJjb2RlIixzd2lmdDoiY29kZSIsa3Q6ImNvZGUiLHR4dDoidGV4dCIsbG9nOiJ0ZXh0Iixjc3Y6InRleHQiLGVudjoidGV4dCJ9LGZGYT17ImltYWdlLyI6ImltYWdlIiwiYXVkaW8vIjoiYXVkaW8iLCJ2aWRlby8iOiJ2aWRlbyIsImFwcGxpY2F0aW9uL3BkZiI6InBkZiJ9LGhGYT17dHM6InR5cGVzY3JpcHQiLHRzeDoidHlwZXNjcmlwdCIsanM6ImphdmFzY3JpcHQiLGpzeDoiamF2YXNjcmlwdCIsanNvbjoianNvbiIsaHRtbDoieG1sIix4bWw6InhtbCIsY3NzOiJjc3MiLHNjc3M6InNjc3MiLGxlc3M6Imxlc3MiLHB5OiJweXRob24iLGphdmE6ImphdmEiLGdvOiJnbyIscnM6InJ1c3QiLHlhbWw6InlhbWwiLHltbDoieWFtbCIsc3FsOiJzcWwiLHNoOiJiYXNoIixiYXNoOiJiYXNoIix6c2g6ImJhc2giLGM6ImMiLGNwcDoiY3BwIixoOiJjIixocHA6ImNwcCIscmI6InJ1YnkiLHBocDoicGhwIixzd2lmdDoic3dpZnQiLGt0OiJrb3RsaW4iLG1kOiJtYXJrZG93biJ9LG1GYT17aW1hZ2U6Imx1Y2lkZTpJbWFnZSIscGRmOiJsdWNpZGU6RmlsZVRleHQiLGF1ZGlvOiJsdWNpZGU6TXVzaWMiLHZpZGVvOiJsdWNpZGU6VmlkZW8iLGNvZGU6Imx1Y2lkZTpDb2RlIix0ZXh0OiJsdWNpZGU6RmlsZVRleHQiLHVua25vd246Imx1Y2lkZTpGaWxlIn0sUWVhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1wcmV2aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W10sQixDPVtdLHo9W10sQSwkPVtdLEY9W10sWSxHPVtdLFo9W10sZGUsRD1bXSxRPVtdLGZlLFQ9W10sVz1bXSxwZSxtZT1bXSxxPVtdLEgsVT1bXSxqPVtdLGFlLFg9W10sSj1bXSx4ZSxLPVtdLFY9W107dmFyIGxlPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzUHJldmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBuZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKCldLGM9W1Aoe2F0dHJpYnV0ZTohMX0pXSxwPVtQKCldLHY9W1AoKV0seT1bUCgpXSxOPVtQKCldLE89W1AoKV0sQj1bUCgpXSxBPVtQKHt0eXBlOkJvb2xlYW59KV0sWT1bUCh7dHlwZTpCb29sZWFufSldLGRlPVtpZSgpXSxmZT1baWUoKV0scGU9W2llKCldLEg9W2llKCldLGFlPVtpZSgpXSx4ZT1baWUoKV0sSG4odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJ1cmwiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS51cmwsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS51cmw9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LG8sbCksSG4odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZmlsZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmZpbGUsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5maWxlPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxkLGYpLEhuKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFzZTY0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iYmFzZTY0ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuYmFzZTY0LCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUuYmFzZTY0PXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxoLG0pLEhuKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJ0ZXh0Q29udGVudCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnRleHRDb250ZW50LCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUudGV4dENvbnRlbnQ9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LGIsZyksSG4odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImNvbnRlbnRUeXBlImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuY29udGVudFR5cGUsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5jb250ZW50VHlwZT16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sayxNKSxIbih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ibGFuZ3VhZ2UiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5sYW5ndWFnZSwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLmxhbmd1YWdlPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxfLFMpLEhuKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWltZVR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJtaW1lVHlwZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLm1pbWVUeXBlLCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUubWltZVR5cGU9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LEwsRSksSG4odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlbmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImZpbGVuYW1lImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZmlsZW5hbWUsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5maWxlbmFtZT16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sQyx6KSxIbih0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ic2hvd1Rvb2xiYXIiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5zaG93VG9vbGJhciwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLnNob3dUb29sYmFyPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSwkLEYpLEhuKHRoaXMsbnVsbCxZLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0ZpbGVuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ic2hvd0ZpbGVuYW1lImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuc2hvd0ZpbGVuYW1lLCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUuc2hvd0ZpbGVuYW1lPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxHLFopLEhuKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InJlc29sdmVkVHlwZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnJlc29sdmVkVHlwZSwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLnJlc29sdmVkVHlwZT16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sRCxRKSxIbih0aGlzLG51bGwsZmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZFNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InJlc29sdmVkU3JjImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUucmVzb2x2ZWRTcmMsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5yZXNvbHZlZFNyYz16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sVCxXKSxIbih0aGlzLG51bGwscGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZFRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJyZXNvbHZlZFRleHQiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5yZXNvbHZlZFRleHQsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5yZXNvbHZlZFRleHQ9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LG1lLHEpLEhuKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRMYW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4icmVzb2x2ZWRMYW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUucmVzb2x2ZWRMYW5nLCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUucmVzb2x2ZWRMYW5nPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxVLGopLEhuKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJsb2FkaW5nImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUubG9hZGluZywiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLmxvYWRpbmc9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LFgsSiksSG4odGhpcyxudWxsLHhlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJlcnJvciJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmVycm9yLCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUuZXJyb3I9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LEssViksSG4obnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bmV9LG51bGwsciksbGU9YT1lLnZhbHVlLG5lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm5lfSl9c3RhdGljIGRlbW89WWVhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJEYXRhIFZpZXciXTsjZT1nYSh0aGlzLG8sIiIpO2dldCB1cmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdXJsKG5lKXt0aGlzLiNlPW5lfSN0PShnYSh0aGlzLGwpLGdhKHRoaXMsZCx2b2lkIDApKTtnZXQgZmlsZSgpe3JldHVybiB0aGlzLiN0fXNldCBmaWxlKG5lKXt0aGlzLiN0PW5lfSNyPShnYSh0aGlzLGYpLGdhKHRoaXMsaCwiIikpO2dldCBiYXNlNjQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYmFzZTY0KG5lKXt0aGlzLiNyPW5lfSNhPShnYSh0aGlzLG0pLGdhKHRoaXMsYiwiIikpO2dldCB0ZXh0Q29udGVudCgpe3JldHVybiB0aGlzLiNhfXNldCB0ZXh0Q29udGVudChuZSl7dGhpcy4jYT1uZX0jaT0oZ2EodGhpcyxnKSxnYSh0aGlzLGssdm9pZCAwKSk7Z2V0IGNvbnRlbnRUeXBlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbnRlbnRUeXBlKG5lKXt0aGlzLiNpPW5lfSNzPShnYSh0aGlzLE0pLGdhKHRoaXMsXywiIikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNzfXNldCBsYW5ndWFnZShuZSl7dGhpcy4jcz1uZX0jbj0oZ2EodGhpcyxTKSxnYSh0aGlzLEwsIiIpKTtnZXQgbWltZVR5cGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWltZVR5cGUobmUpe3RoaXMuI249bmV9I289KGdhKHRoaXMsRSksZ2EodGhpcyxDLCIiKSk7Z2V0IGZpbGVuYW1lKCl7cmV0dXJuIHRoaXMuI299c2V0IGZpbGVuYW1lKG5lKXt0aGlzLiNvPW5lfSNsPShnYSh0aGlzLHopLGdhKHRoaXMsJCwhMCkpO2dldCBzaG93VG9vbGJhcigpe3JldHVybiB0aGlzLiNsfXNldCBzaG93VG9vbGJhcihuZSl7dGhpcy4jbD1uZX0jYz0oZ2EodGhpcyxGKSxnYSh0aGlzLEcsITApKTtnZXQgc2hvd0ZpbGVuYW1lKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHNob3dGaWxlbmFtZShuZSl7dGhpcy4jYz1uZX0jZD0oZ2EodGhpcyxaKSxnYSh0aGlzLEQsInVua25vd24iKSk7Z2V0IHJlc29sdmVkVHlwZSgpe3JldHVybiB0aGlzLiNkfXNldCByZXNvbHZlZFR5cGUobmUpe3RoaXMuI2Q9bmV9I3U9KGdhKHRoaXMsUSksZ2EodGhpcyxULCIiKSk7Z2V0IHJlc29sdmVkU3JjKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHJlc29sdmVkU3JjKG5lKXt0aGlzLiN1PW5lfSNwPShnYSh0aGlzLFcpLGdhKHRoaXMsbWUsIiIpKTtnZXQgcmVzb2x2ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI3B9c2V0IHJlc29sdmVkVGV4dChuZSl7dGhpcy4jcD1uZX0jZj0oZ2EodGhpcyxxKSxnYSh0aGlzLFUsInRleHQiKSk7Z2V0IHJlc29sdmVkTGFuZygpe3JldHVybiB0aGlzLiNmfXNldCByZXNvbHZlZExhbmcobmUpe3RoaXMuI2Y9bmV9I2g9KGdhKHRoaXMsaiksZ2EodGhpcyxYLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jaH1zZXQgbG9hZGluZyhuZSl7dGhpcy4jaD1uZX0jbT0oZ2EodGhpcyxKKSxnYSh0aGlzLEssIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jbX1zZXQgZXJyb3IobmUpe3RoaXMuI209bmV9b2JqZWN0VXJsPShnYSh0aGlzLFYpLCIiKTtyZW5kZXIoKXtsZXQgbmU9dGhpcy5maWxlbmFtZXx8dGhpcy5maWxlPy5uYW1lfHx0aGlzLmdldEZpbGVuYW1lRnJvbVVybCgpfHwiIjtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y5ZmFmYiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWljb24gewogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1maWxlbmFtZSB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1iYWRnZSB7CiAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIpfTsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuY29udGVudC1hcmVhIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgfQoKICAgICAgICAuY29udGVudC1hcmVhID4gKiB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtaW1hZ2Utdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1wZGYtdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy12aWRlby12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICBkZWVzLWF1ZGlvLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtZGF0YXZpZXctY29kZWJveCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIC50ZXh0LXZpZXdlciB7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CgogICAgICAgIC5wbGFjZWhvbGRlciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICB9CgogICAgICAgIC5wbGFjZWhvbGRlciBkZWVzLWljb24gewogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItY29udGFpbmVyIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5zaG93RmlsZW5hbWUmJm5lP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYmFyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iaGVhZGVyLWljb24iIGljb249IiR7bUZhW3RoaXMucmVzb2x2ZWRUeXBlXX0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGVyLWZpbGVuYW1lIj4ke25lfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImhlYWRlci1iYWRnZSI+JHt0aGlzLnJlc29sdmVkVHlwZX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWFyZWEiPgogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QWxlcnRUcmlhbmdsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1jb250YWluZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLnJlbmRlckNvbnRlbnQoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckNvbnRlbnQoKXtzd2l0Y2godGhpcy5yZXNvbHZlZFR5cGUpe2Nhc2UiaW1hZ2UiOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgICAuc2hvd1Rvb2xiYXI9JHt0aGlzLnNob3dUb29sYmFyfQogICAgICAgICAgICBhbHQ9IiR7dGhpcy5maWxlbmFtZXx8IiJ9IgogICAgICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICAgICAgYDtjYXNlInBkZiI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgICAgIC5wZGZVcmw9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgICAuc2hvd1Rvb2xiYXI9JHt0aGlzLnNob3dUb29sYmFyfQogICAgICAgICAgICBpbml0aWFsWm9vbT0icGFnZS1maXQiCiAgICAgICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICAgICAgYDtjYXNlImF1ZGlvIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgICAgICAuc3JjPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgICAgLnRpdGxlPSR7dGhpcy5maWxlbmFtZXx8dGhpcy5maWxlPy5uYW1lfHwiIn0KICAgICAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgICAgIGA7Y2FzZSJ2aWRlbyI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy12aWRlby12aWV3ZXIKICAgICAgICAgICAgLnNyYz0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgICAgICBgO2Nhc2UiY29kZSI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94CiAgICAgICAgICAgIC5wcm9nTGFuZz0ke3RoaXMucmVzb2x2ZWRMYW5nfQogICAgICAgICAgICAuY29kZVRvRGlzcGxheT0ke3RoaXMucmVzb2x2ZWRUZXh0fQogICAgICAgICAgPjwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgICAgIGA7Y2FzZSJ0ZXh0IjpyZXR1cm4gd2A8cHJlIGNsYXNzPSJ0ZXh0LXZpZXdlciI+JHt0aGlzLnJlc29sdmVkVGV4dH08L3ByZT5gO2RlZmF1bHQ6cmV0dXJuIHdgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVRdWVzdGlvbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwbGFjZWhvbGRlci10ZXh0Ij5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgfX1hc3luYyB1cGRhdGVkKG5lKXtzdXBlci51cGRhdGVkKG5lKSxbInVybCIsImZpbGUiLCJiYXNlNjQiLCJ0ZXh0Q29udGVudCIsImNvbnRlbnRUeXBlIiwibGFuZ3VhZ2UiLCJtaW1lVHlwZSIsImZpbGVuYW1lIl0uc29tZShIZT0+bmUuaGFzKEhlKSkmJmF3YWl0IHRoaXMucmVzb2x2ZUNvbnRlbnQoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXZva2VPYmplY3RVcmwoKX1hc3luYyByZXNvbHZlQ29udGVudCgpe3RoaXMuZXJyb3I9IiIsdGhpcy5yZXZva2VPYmplY3RVcmwoKSx0aGlzLnJlc29sdmVkVHlwZT10aGlzLmRldGVjdFR5cGUoKTt0cnl7aWYodGhpcy51cmwpe2lmKHRoaXMucmVzb2x2ZWRTcmM9dGhpcy51cmwsdGhpcy5yZXNvbHZlZFR5cGU9PT0iY29kZSJ8fHRoaXMucmVzb2x2ZWRUeXBlPT09InRleHQiKWlmKHRoaXMudGV4dENvbnRlbnQpdGhpcy5yZXNvbHZlZFRleHQ9dGhpcy50ZXh0Q29udGVudDtlbHNle3RoaXMubG9hZGluZz0hMDtsZXQgbmU9YXdhaXQgZmV0Y2godGhpcy51cmwpO3RoaXMucmVzb2x2ZWRUZXh0PWF3YWl0IG5lLnRleHQoKSx0aGlzLmxvYWRpbmc9ITF9fWVsc2UgaWYodGhpcy5maWxlKXRoaXMub2JqZWN0VXJsPVVSTC5jcmVhdGVPYmplY3RVUkwodGhpcy5maWxlKSx0aGlzLnJlc29sdmVkU3JjPXRoaXMub2JqZWN0VXJsLCh0aGlzLnJlc29sdmVkVHlwZT09PSJjb2RlInx8dGhpcy5yZXNvbHZlZFR5cGU9PT0idGV4dCIpJiYodGhpcy5sb2FkaW5nPSEwLHRoaXMucmVzb2x2ZWRUZXh0PWF3YWl0IHRoaXMuZmlsZS50ZXh0KCksdGhpcy5sb2FkaW5nPSExKTtlbHNlIGlmKHRoaXMuYmFzZTY0KXtsZXQgbmU9dGhpcy5taW1lVHlwZXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI7dGhpcy5yZXNvbHZlZFNyYz1gZGF0YToke25lfTtiYXNlNjQsJHt0aGlzLmJhc2U2NH1gfWVsc2UgdGhpcy50ZXh0Q29udGVudCYmKHRoaXMucmVzb2x2ZWRUZXh0PXRoaXMudGV4dENvbnRlbnQpfWNhdGNoe3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGNvbnRlbnQiLHRoaXMubG9hZGluZz0hMX10aGlzLnJlc29sdmVkTGFuZz10aGlzLnJlc29sdmVMYW5ndWFnZSgpfWRldGVjdFR5cGUoKXtpZih0aGlzLmNvbnRlbnRUeXBlKXJldHVybiB0aGlzLmNvbnRlbnRUeXBlO2xldCBuZT10aGlzLm1pbWVUeXBlfHx0aGlzLmZpbGU/LnR5cGV8fCIiO2lmKG5lKXtpZihuZT09PSJhcHBsaWNhdGlvbi9wZGYiKXJldHVybiJwZGYiO2ZvcihsZXRbemUsSGVdb2YgT2JqZWN0LmVudHJpZXMoZkZhKSlpZihuZS5zdGFydHNXaXRoKHplKSlyZXR1cm4gSGU7aWYobmUuc3RhcnRzV2l0aCgidGV4dC8iKSlyZXR1cm4idGV4dCJ9bGV0IGVlPXRoaXMuZ2V0RXh0ZW5zaW9uKCk7cmV0dXJuIGVlJiZaZWFbZWVdP1plYVtlZV06dGhpcy50ZXh0Q29udGVudD90aGlzLmxhbmd1YWdlPyJjb2RlIjoidGV4dCI6InVua25vd24ifWdldEV4dGVuc2lvbigpe2xldCBuZT10aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fCIiO2lmKG5lKXtsZXQgZWU9bmUuc3BsaXQoIi4iKTtpZihlZS5sZW5ndGg+MSlyZXR1cm4gZWUucG9wKCkudG9Mb3dlckNhc2UoKX1pZih0aGlzLnVybCl0cnl7bGV0IHplPW5ldyBVUkwodGhpcy51cmwsImh0dHBzOi8vcGxhY2Vob2xkZXIuY29tIikucGF0aG5hbWUuc3BsaXQoIi4iKTtpZih6ZS5sZW5ndGg+MSlyZXR1cm4gemUucG9wKCkudG9Mb3dlckNhc2UoKX1jYXRjaHt9cmV0dXJuIiJ9Z2V0RmlsZW5hbWVGcm9tVXJsKCl7aWYoIXRoaXMudXJsKXJldHVybiIiO3RyeXtyZXR1cm4gbmV3IFVSTCh0aGlzLnVybCwiaHR0cHM6Ly9wbGFjZWhvbGRlci5jb20iKS5wYXRobmFtZS5zcGxpdCgiLyIpLnBvcCgpfHwiIn1jYXRjaHtyZXR1cm4iIn19cmVzb2x2ZUxhbmd1YWdlKCl7aWYodGhpcy5sYW5ndWFnZSlyZXR1cm4gdGhpcy5sYW5ndWFnZTtsZXQgbmU9dGhpcy5nZXRFeHRlbnNpb24oKTtyZXR1cm4gaEZhW25lXXx8InRleHQifXJldm9rZU9iamVjdFVybCgpe3RoaXMub2JqZWN0VXJsJiYoVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLm9iamVjdFVybCksdGhpcy5vYmplY3RVcmw9IiIpfXN0YXRpY3tnYShhLHIpfX07cmV0dXJuIGxlPWF9KSgpfSk7dmFyIEplYT11KCgpPT57WGVhKCl9KTt2YXIgJHcscTd0PXUoKCk9Pnskdz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJDYW52YXNQb29sIil9c3RhdGljIHBvb2w9W107c3RhdGljIG1heFBvb2xTaXplPTIwO3N0YXRpYyBNSU5fQ0FOVkFTX1NJWkU9MjU2O3N0YXRpYyBNQVhfQ0FOVkFTX1NJWkU9NDA5NjtzdGF0aWMgYWNxdWlyZShlLHIpe2xldCBhPXRoaXMucG9vbC5maW5kKGw9PiFsLmluVXNlJiZsLmNhbnZhcy53aWR0aD49ZSYmbC5jYW52YXMuaGVpZ2h0Pj1yJiZsLmNhbnZhcy53aWR0aDw9ZSoxLjUmJmwuY2FudmFzLmhlaWdodDw9cioxLjUpO2lmKGEpcmV0dXJuIGEuaW5Vc2U9ITAsYS5sYXN0VXNlZD1EYXRlLm5vdygpLGEuY2FudmFzLndpZHRoPWUsYS5jYW52YXMuaGVpZ2h0PXIsYS5jdHguY2xlYXJSZWN0KDAsMCxlLHIpLGE7aWYodGhpcy5wb29sLmxlbmd0aDx0aGlzLm1heFBvb2xTaXplKXtsZXQgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxjPWwuZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMCxkZXN5bmNocm9uaXplZDohMH0pO2wud2lkdGg9TWF0aC5taW4oTWF0aC5tYXgoZSx0aGlzLk1JTl9DQU5WQVNfU0laRSksdGhpcy5NQVhfQ0FOVkFTX1NJWkUpLGwuaGVpZ2h0PU1hdGgubWluKE1hdGgubWF4KHIsdGhpcy5NSU5fQ0FOVkFTX1NJWkUpLHRoaXMuTUFYX0NBTlZBU19TSVpFKTtsZXQgZD17Y2FudmFzOmwsY3R4OmMsaW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX07cmV0dXJuIHRoaXMucG9vbC5wdXNoKGQpLGR9bGV0IHM9dGhpcy5wb29sLmZpbHRlcihsPT4hbC5pblVzZSkuc29ydCgobCxjKT0+bC5sYXN0VXNlZC1jLmxhc3RVc2VkKVswXTtpZihzKXJldHVybiBzLmNhbnZhcy53aWR0aD1lLHMuY2FudmFzLmhlaWdodD1yLHMuY3R4LmNsZWFyUmVjdCgwLDAsZSxyKSxzLmluVXNlPSEwLHMubGFzdFVzZWQ9RGF0ZS5ub3coKSxzO2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLG89bi5nZXRDb250ZXh0KCIyZCIpO3JldHVybiBuLndpZHRoPWUsbi5oZWlnaHQ9cix7Y2FudmFzOm4sY3R4Om8saW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX19c3RhdGljIHJlbGVhc2UoZSl7dGhpcy5wb29sLmluY2x1ZGVzKGUpJiYoZS5pblVzZT0hMSxlLmN0eC5jbGVhclJlY3QoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCkpfXN0YXRpYyByZWxlYXNlQWxsKCl7Zm9yKGxldCBlIG9mIHRoaXMucG9vbCllLmluVXNlPSExLGUuY3R4LmNsZWFyUmVjdCgwLDAsZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0KX1zdGF0aWMgZGVzdHJveSgpe2ZvcihsZXQgZSBvZiB0aGlzLnBvb2wpZS5jYW52YXMud2lkdGg9MCxlLmNhbnZhcy5oZWlnaHQ9MDt0aGlzLnBvb2w9W119c3RhdGljIGdldFN0YXRzKCl7cmV0dXJue3Bvb2xTaXplOnRoaXMucG9vbC5sZW5ndGgsbWF4UG9vbFNpemU6dGhpcy5tYXhQb29sU2l6ZSxpblVzZTp0aGlzLnBvb2wuZmlsdGVyKGU9PmUuaW5Vc2UpLmxlbmd0aCxhdmFpbGFibGU6dGhpcy5wb29sLmZpbHRlcihlPT4hZS5pblVzZSkubGVuZ3RofX1zdGF0aWMgYWRqdXN0UG9vbFNpemUoZSl7aWYoZTx0aGlzLnBvb2wubGVuZ3RoKXtsZXQgcj10aGlzLnBvb2wubGVuZ3RoLWUsYT10aGlzLnBvb2wuZmlsdGVyKHM9PiFzLmluVXNlKS5zbGljZSgwLHIpO2ZvcihsZXQgcyBvZiBhKXtsZXQgbj10aGlzLnBvb2wuaW5kZXhPZihzKTtuPi0xJiZ0aGlzLnBvb2wuc3BsaWNlKG4sMSl9fXRoaXMubWF4UG9vbFNpemU9ZX19fSk7ZnVuY3Rpb24gZ0ZhKHQsZSl7bGV0IHI7cmV0dXJuIGkoZnVuY3Rpb24oLi4ucyl7bGV0IG49aSgoKT0+e2NsZWFyVGltZW91dChyKSx0KC4uLnMpfSwibGF0ZXIiKTtjbGVhclRpbWVvdXQocikscj13aW5kb3cuc2V0VGltZW91dChuLGUpfSwiZXhlY3V0ZWRGdW5jdGlvbiIpfWZ1bmN0aW9uIGJGYSh0LGUpe2xldCByO3JldHVybiguLi5hKT0+e3J8fCh0KC4uLmEpLHI9ITAsc2V0VGltZW91dCgoKT0+cj0hMSxlKSl9fWZ1bmN0aW9uIFY3dCh0KXtpZih0PT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IGU9MTAyNCxyPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxhPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5sb2coZSkpO3JldHVybiBNYXRoLnJvdW5kKHQvTWF0aC5wb3coZSxhKSoxMDApLzEwMCsiICIrclthXX1mdW5jdGlvbiB4RmEodCxlPTApe2xldCByPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIHIudG9wPj0tZSYmci5sZWZ0Pj0tZSYmci5ib3R0b208PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpK2UmJnIucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKStlfXZhciBBdyxqN3Q9dSgoKT0+e2koZ0ZhLCJkZWJvdW5jZSIpO2koYkZhLCJ0aHJvdHRsZSIpO2koVjd0LCJmb3JtYXRGaWxlU2l6ZSIpO2koeEZhLCJpc0luVmlld3BvcnQiKTtBdz1jbGFzc3tzdGF0aWN7aSh0aGlzLCJQZXJmb3JtYW5jZU1vbml0b3IiKX1zdGF0aWMgbWFya3M9bmV3IE1hcDtzdGF0aWMgbWVhc3VyZXM9W107c3RhdGljIG1hcmsoZSl7dGhpcy5tYXJrcy5zZXQoZSxwZXJmb3JtYW5jZS5ub3coKSl9c3RhdGljIG1lYXN1cmUoZSxyKXtsZXQgYT10aGlzLm1hcmtzLmdldChyKTtpZihhKXtsZXQgcz1wZXJmb3JtYW5jZS5ub3coKS1hO3JldHVybiB0aGlzLm1lYXN1cmVzLnB1c2goe25hbWU6ZSxkdXJhdGlvbjpzfSksdGhpcy5tYXJrcy5kZWxldGUociksc31yZXR1cm4gMH1zdGF0aWMgZ2V0UmVwb3J0KCl7bGV0IGU9e21lYXN1cmVzOlsuLi50aGlzLm1lYXN1cmVzXSxhdmVyYWdlczp7fX0scj1uZXcgTWFwO2ZvcihsZXQgYSBvZiB0aGlzLm1lYXN1cmVzKXIuaGFzKGEubmFtZSl8fHIuc2V0KGEubmFtZSxbXSksci5nZXQoYS5uYW1lKS5wdXNoKGEuZHVyYXRpb24pO2ZvcihsZXRbYSxzXW9mIHIpZS5hdmVyYWdlc1thXT1zLnJlZHVjZSgobixvKT0+bitvLDApL3MubGVuZ3RoO3JldHVybiBlfXN0YXRpYyBjbGVhcigpe3RoaXMubWFya3MuY2xlYXIoKSx0aGlzLm1lYXN1cmVzPVtdfX19KTt2YXIgZXRhPXUoKCk9PntxN3QoKTtONmUoKTtqN3QoKX0pO3ZhciB0dGE9dSgoKT0+e0g3dCgpfSk7dmFyIExvLHkzPXUoKCk9Pnt2ZSgpO0xvPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBoZWlnaHQ6IDI2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2U7CiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAke3guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEyKSIsInJnYmEoMCwgMCwgMCwgMC4yNCkiKX07CgogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGUgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciB7CiAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggJHt4LmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xMikiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAudGlsZS1vdmVybGF5IHsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAudGlsZS1jb250ZW50IHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAudGlsZS1vdmVybGF5IHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuNykiLCJyZ2JhKDAsIDAsIDAsIDAuOCkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIHotaW5kZXg6IDIwOwogICAgfQoKICAgIC50aWxlLW92ZXJsYXkgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnRpbGUtb3ZlcmxheSBzcGFuIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnRpbGUtaW5mby1iYXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlIC8gMC45NSkiLCJoc2woMjE1IDIwJSAxMiUgLyAwLjk1KSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA2cHg7CiAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOwogICAgICB6LWluZGV4OiAyNTsKICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgIH0KCiAgICAuaW5mby1sYWJlbCB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICBtaW4td2lkdGg6IDA7CiAgICB9CgogICAgLmluZm8tc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgIH0KCiAgICAuaW5mby1kZXRhaWwgewogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC50aWxlLWxvYWRpbmcsCiAgICAudGlsZS1lcnJvciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC50aWxlLWxvYWRpbmcgewogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTklKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICB9CgogICAgLnRpbGUtZXJyb3IgewogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzIlIDk4JSkiLCJoc2woMCA2MiUgMjAlKSIpfTsKICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA3MiUgNDAlKSIsImhzbCgwIDcwJSA2OCUpIil9OwogICAgfQoKICAgIC50aWxlLWVycm9yIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIH0KCiAgICAudGlsZS1zcGlubmVyIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBib3JkZXI6IDJweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIC50aWxlLWxvYWRpbmctdGV4dCwKICAgIC50aWxlLWVycm9yLXRleHQgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KCiAgICAvKiBTaXplIHZhcmlhbnRzICovCiAgICA6aG9zdChbc2l6ZT0ic21hbGwiXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDE1MHB4OwogICAgICBoZWlnaHQ6IDE5NXB4OwogICAgfQoKICAgIDpob3N0KFtzaXplPSJsYXJnZSJdKSAudGlsZS1jb250YWluZXIgewogICAgICB3aWR0aDogMjUwcHg7CiAgICAgIGhlaWdodDogMzI1cHg7CiAgICB9CgogICAgLyogR3JpZCBvcHRpbWl6YXRpb25zICovCiAgICA6aG9zdChbZ3JpZC1tb2RlXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lsbC1jaGFuZ2U6IGF1dG87CiAgICB9CiAgYF19KTt2YXIgVnJlLE1kLHQxLGJmPXUoKCk9Pnt2ZSgpO3kzKCk7S3IoKTtWcmU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LE1kPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSx0MT0oKCk9PntsZXQgdD15ZSxlLHI9W10sYT1bXSxzLG49W10sbz1bXSxsLGM9W10sZD1bXSxmLHA9W10saD1bXSxtLHY9W10sYj1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxCYXNlIil9c3RhdGlje2xldCB5PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHRbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO2U9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxzPVtQKHt0eXBlOkJvb2xlYW59KV0sbD1bUCh7dHlwZTpCb29sZWFufSldLGY9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sbT1bUCh7dHlwZTpTdHJpbmd9KV0sVnJlKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2xpY2thYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGs9PiJjbGlja2FibGUiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5jbGlja2FibGUsImdldCIpLHNldDppKChrLE0pPT57ay5jbGlja2FibGU9TX0sInNldCIpfSxtZXRhZGF0YTp5fSxyLGEpLFZyZSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImxvYWRpbmciaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5sb2FkaW5nLCJnZXQiKSxzZXQ6aSgoayxNKT0+e2subG9hZGluZz1NfSwic2V0Iil9LG1ldGFkYXRhOnl9LG4sbyksVnJlKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoaz0+ImVycm9yImluIGssImhhcyIpLGdldDppKGs9PmsuZXJyb3IsImdldCIpLHNldDppKChrLE0pPT57ay5lcnJvcj1NfSwic2V0Iil9LG1ldGFkYXRhOnl9LGMsZCksVnJlKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4ic2l6ZSJpbiBrLCJoYXMiKSxnZXQ6aShrPT5rLnNpemUsImdldCIpLHNldDppKChrLE0pPT57ay5zaXplPU19LCJzZXQiKX0sbWV0YWRhdGE6eX0scCxoKSxWcmUodGhpcyxudWxsLG0se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShrPT4ibGFiZWwiaW4gaywiaGFzIiksZ2V0Omkoaz0+ay5sYWJlbCwiZ2V0Iiksc2V0OmkoKGssTSk9PntrLmxhYmVsPU19LCJzZXQiKX0sbWV0YWRhdGE6eX0sdixiKSx5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnl9KX1zdGF0aWMgc3R5bGVzPUxvOyNlPU1kKHRoaXMsciwhMCk7Z2V0IGNsaWNrYWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCBjbGlja2FibGUoeSl7dGhpcy4jZT15fSN0PShNZCh0aGlzLGEpLE1kKHRoaXMsbiwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvYWRpbmcoeSl7dGhpcy4jdD15fSNyPShNZCh0aGlzLG8pLE1kKHRoaXMsYywhMSkpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNyfXNldCBlcnJvcih5KXt0aGlzLiNyPXl9I2E9KE1kKHRoaXMsZCksTWQodGhpcyxwLCJkZWZhdWx0IikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNpemUoeSl7dGhpcy4jYT15fSNpPShNZCh0aGlzLGgpLE1kKHRoaXMsdiwiIikpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNpfXNldCBsYWJlbCh5KXt0aGlzLiNpPXl9b2JzZXJ2ZXI9TWQodGhpcyxiKTtfdmlzaWJsZT0hMTtnZXQgaXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX3Zpc2libGV9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0idGlsZS1jb250YWluZXIgJHt0aGlzLmNsaWNrYWJsZT8iY2xpY2thYmxlIjoiIn0gJHt0aGlzLmxvYWRpbmc/ImxvYWRpbmciOiIifSAke3RoaXMuZXJyb3I/ImVycm9yIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVUaWxlQ2xpY2t9CiAgICAgICAgQG1vdXNlZW50ZXI9JHt0aGlzLm9uVGlsZU1vdXNlRW50ZXJ9CiAgICAgICAgQG1vdXNlbGVhdmU9JHt0aGlzLm9uVGlsZU1vdXNlTGVhdmV9CiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMub25UaWxlTW91c2VNb3ZlfQogICAgICA+CiAgICAgICAgJHt0aGlzLmxvYWRpbmc/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbG9hZGluZyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbG9hZGluZy10ZXh0Ij5Mb2FkaW5nLi4uPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZXJyb3IiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1lcnJvci10ZXh0Ij5GYWlsZWQgdG8gbG9hZDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHshdGhpcy5sb2FkaW5nJiYhdGhpcy5lcnJvcj90aGlzLnJlbmRlclRpbGVDb250ZW50KCk6IiJ9CgogICAgICAgICR7dGhpcy5yZW5kZXJCb3R0b21CYXIoKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiIifWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5vYnNlcnZlciYmKHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMub2JzZXJ2ZXI9dm9pZCAwKX1zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCl7dGhpcy5vYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoeT0+e2ZvcihsZXQgayBvZiB5KXtsZXQgTT10aGlzLl92aXNpYmxlO3RoaXMuX3Zpc2libGU9ay5pc0ludGVyc2VjdGluZyx0aGlzLl92aXNpYmxlJiYhTSYmdGhpcy5vbkJlY2FtZVZpc2libGUoKX19LHtyb290Om51bGwscm9vdE1hcmdpbjoiMjAwcHgiLHRocmVzaG9sZDouMDF9KSx0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcyl9b25CZWNhbWVWaXNpYmxlKCl7fW9uVGlsZU1vdXNlRW50ZXIoKXt9b25UaWxlTW91c2VMZWF2ZSgpe31vblRpbGVNb3VzZU1vdmUoeSl7fWhhbmRsZVRpbGVDbGljaygpe3RoaXMuY2xpY2thYmxlJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0aWxlLWNsaWNrIix7ZGV0YWlsOnRoaXMuZ2V0VGlsZUNsaWNrRGV0YWlsKCksYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57fX19fSkoKX0pO3ZhciBydGE9dSgoKT0+e2JmKCk7eTMoKX0pO3ZhciBhdGEsaXRhPXUoKCk9Pnt2ZSgpO2F0YT1yZWAKICAucHJldmlldy1zdGFjayB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHBhZGRpbmc6IDhweCA4cHggMjhweCA4cHg7CiAgfQoKICAucHJldmlldy1zdGFjay5ub24tYTQgewogICAgcGFkZGluZzogMTJweCAxMnB4IDI4cHggMTJweDsKICB9CgogIC5wcmV2aWV3LWNhbnZhcyB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgbWF4LWhlaWdodDogMTAwJTsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiBhdXRvOwogICAgb2JqZWN0LWZpdDogY29udGFpbjsKICAgIGltYWdlLXJlbmRlcmluZzogYXV0bzsKICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4ICR7eC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgfQoKICAubm9uLWE0IC5wcmV2aWV3LWNhbnZhcyB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDI0JSkiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgfQoKICAvKiBHcmlkIG9wdGltaXphdGlvbnMgKi8KICA6aG9zdChbZ3JpZC1tb2RlXSkgLnByZXZpZXctY2FudmFzIHsKICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgfQpgfSk7dmFyIHN0YSxudGE9dSgoKT0+e3ZlKCk7c3RhPWkoKCk9PntsZXQgdD1bImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIsImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiJdLGU9aShyPT57bGV0IGE9W107Zm9yKGxldCBzPTA7czxyO3MrKyl7bGV0IG49dFtzJXQubGVuZ3RoXTthLnB1c2god2AKICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICBwZGZVcmw9IiR7bn0iCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICBncmlkLW1vZGUKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7bz0+e2NvbnNvbGUubG9nKCJQREYgVGlsZSBjbGlja2VkOiIsby5kZXRhaWwpLGFsZXJ0KGBQREYgY2xpY2tlZDogJHtvLmRldGFpbC5wYWdlQ291bnR9IHBhZ2VzYCl9fQogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgYCl9cmV0dXJuIGF9LCJnZW5lcmF0ZUdyaWRJdGVtcyIpO3JldHVybiB3YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNWY1ZjUiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucHJldmlldy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICB9CgogICAgICAucHJldmlldy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2luZ2xlIFBERiBUaWxlPC9oMz4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+RGlmZmVyZW50IFNpemVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5TbWFsbDo8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPkRlZmF1bHQ6PC9kaXY+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPkxhcmdlOjwvZGl2PgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXBkZgogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLXBkZj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5XaXRoIExhYmVsPC9oMz4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgIGxhYmVsPSJSZXNlYXJjaCBQYXBlci5wZGYiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtcGRmPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPk5vbi1DbGlja2FibGU8L2gzPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1wZGYKICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgY2xpY2thYmxlPSJmYWxzZSIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+R3JpZCAtIDIwIFBERnMgd2l0aCBMYXp5IExvYWRpbmc8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctZ3JpZCI+CiAgICAgICAgICAke2UoMjApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9LCJkZW1vIil9KTt2YXIgeGYscjEsb3RhLGx0YT11KCgpPT57dmUoKTtiZigpO3kzKCk7TjZlKCk7cTd0KCk7ajd0KCk7aXRhKCk7bnRhKCk7eGY9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHIxPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxvdGE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXRodW1ibmFpbC1wZGYiKV0sZSxyPVtdLGEscz10MSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXTt2YXIgQj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbFBkZiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6TnVtYmVyfSldLHA9W1Aoe3R5cGU6TnVtYmVyfSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sTj1bUCh7dHlwZTpCb29sZWFufSldLE89W2llKCldLHhmKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJwZGZVcmwiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5wZGZVcmwsImdldCIpLHNldDppKCh6LEEpPT57ei5wZGZVcmw9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxvLGwpLHhmKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZXZpZXdQYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjdXJyZW50UHJldmlld1BhZ2UiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jdXJyZW50UHJldmlld1BhZ2UsImdldCIpLHNldDppKCh6LEEpPT57ei5jdXJyZW50UHJldmlld1BhZ2U9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLHhmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJwYWdlQ291bnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5wYWdlQ291bnQsImdldCIpLHNldDppKCh6LEEpPT57ei5wYWdlQ291bnQ9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLHhmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuZGVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InJlbmRlcmVkImluIHosImhhcyIpLGdldDppKHo9PnoucmVuZGVyZWQsImdldCIpLHNldDppKCh6LEEpPT57ei5yZW5kZXJlZD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZykseGYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJpc0hvdmVyaW5nImluIHosImhhcyIpLGdldDppKHo9PnouaXNIb3ZlcmluZywiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmlzSG92ZXJpbmc9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLHhmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNBNEZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNBNEZvcm1hdCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzQTRGb3JtYXQsImdldCIpLHNldDppKCh6LEEpPT57ei5pc0E0Rm9ybWF0PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSx4Zih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJmaWxlU2l6ZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmZpbGVTaXplLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouZmlsZVNpemU9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxMLEUpLHhmKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsciksQj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89c3RhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiLCJQREYiXTtzdGF0aWMgc3R5bGVzPVsuLi5MbyxhdGFdOyNlPXIxKHRoaXMsbywiIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoQyl7dGhpcy4jZT1DfSN0PShyMSh0aGlzLGwpLHIxKHRoaXMsZCwxKSk7Z2V0IGN1cnJlbnRQcmV2aWV3UGFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBjdXJyZW50UHJldmlld1BhZ2UoQyl7dGhpcy4jdD1DfSNyPShyMSh0aGlzLGYpLHIxKHRoaXMsaCwwKSk7Z2V0IHBhZ2VDb3VudCgpe3JldHVybiB0aGlzLiNyfXNldCBwYWdlQ291bnQoQyl7dGhpcy4jcj1DfSNhPShyMSh0aGlzLG0pLHIxKHRoaXMsYiwhMSkpO2dldCByZW5kZXJlZCgpe3JldHVybiB0aGlzLiNhfXNldCByZW5kZXJlZChDKXt0aGlzLiNhPUN9I2k9KHIxKHRoaXMsZykscjEodGhpcyxrLCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNIb3ZlcmluZyhDKXt0aGlzLiNpPUN9I3M9KHIxKHRoaXMsTSkscjEodGhpcyxfLCEwKSk7Z2V0IGlzQTRGb3JtYXQoKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNBNEZvcm1hdChDKXt0aGlzLiNzPUN9I249KHIxKHRoaXMsUykscjEodGhpcyxMLDApKTtnZXQgZmlsZVNpemUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZmlsZVNpemUoQyl7dGhpcy4jbj1DfXJlbmRlclBhZ2VzVGFzaz0ocjEodGhpcyxFKSxudWxsKTtyZW5kZXJQYWdlc1F1ZXVlZD0hMTtwZGZEb2N1bWVudDtjYW52YXNlcz1bXTtyZXNpemVPYnNlcnZlcjtzdGFja0VsZW1lbnQ9bnVsbDtsb2FkZWRQZGZVcmw9bnVsbDtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXN0YWNrICR7dGhpcy5pc0E0Rm9ybWF0PyIiOiJub24tYTQifSI+CiAgICAgICAgPGNhbnZhcwogICAgICAgICAgY2xhc3M9InByZXZpZXctY2FudmFzIgogICAgICAgICAgZGF0YS1wYWdlPSIke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfSIKICAgICAgICA+PC9jYW52YXM+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpFeWUiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+VmlldyBQREY8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlckJvdHRvbUJhcigpe3JldHVybiF0aGlzLnBhZ2VDb3VudCYmIXRoaXMubGFiZWw/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLnBhZ2VDb3VudD4xJiZ0aGlzLmlzSG92ZXJpbmc/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5jdXJyZW50UHJldmlld1BhZ2V9LyR7dGhpcy5wYWdlQ291bnR9PC9zcGFuPmA6dGhpcy5wYWdlQ291bnQ+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLnBhZ2VDb3VudH0gcGc8L3NwYW4+YDoiIn0KICAgICAgICAke3RoaXMuZmlsZVNpemU+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHtWN3QodGhpcy5maWxlU2l6ZSl9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57cGRmVXJsOnRoaXMucGRmVXJsLHBhZ2VDb3VudDp0aGlzLnBhZ2VDb3VudH19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMucmVuZGVyZWQmJnRoaXMucGRmVXJsJiZ0aGlzLmxvYWRBbmRSZW5kZXJQcmV2aWV3KCl9b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMH1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuY3VycmVudFByZXZpZXdQYWdlIT09MSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfW9uVGlsZU1vdXNlTW92ZShDKXtpZighdGhpcy5pc0hvdmVyaW5nfHx0aGlzLnBhZ2VDb3VudDw9MSlyZXR1cm47bGV0IHo9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxBPUMuY2xpZW50WC16LmxlZnQsJD16LndpZHRoLEY9TWF0aC5tYXgoMCxNYXRoLm1pbigxLEEvJCkpLFk9TWF0aC5jZWlsKEYqdGhpcy5wYWdlQ291bnQpfHwxO1khPT10aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPVksdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY2FjaGVFbGVtZW50cygpLHRoaXMuc2V0dXBSZXNpemVPYnNlcnZlcigpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj12b2lkIDB9YXN5bmMgbG9hZEFuZFJlbmRlclByZXZpZXcoKXtpZighKHRoaXMucmVuZGVyZWR8fHRoaXMubG9hZGluZykpe3RoaXMubG9hZGluZz0hMCx0aGlzLmVycm9yPSExLEF3Lm1hcmsoYHByZXZpZXctbG9hZC0ke3RoaXMucGRmVXJsfWApO3RyeXt0aGlzLnBkZkRvY3VtZW50PWF3YWl0IFNkLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCksdGhpcy5wYWdlQ291bnQ9dGhpcy5wZGZEb2N1bWVudC5udW1QYWdlcyx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xO3RyeXtsZXQgej1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERvd25sb2FkSW5mbygpO3RoaXMuZmlsZVNpemU9ei5sZW5ndGh9Y2F0Y2h7fXRoaXMubG9hZGVkUGRmVXJsPXRoaXMucGRmVXJsLHRoaXMubG9hZGluZz0hMSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY2FjaGVFbGVtZW50cygpLGF3YWl0IHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpLHRoaXMucmVuZGVyZWQ9ITA7bGV0IEM9QXcubWVhc3VyZShgcHJldmlldy1yZW5kZXItJHt0aGlzLnBkZlVybH1gLGBwcmV2aWV3LWxvYWQtJHt0aGlzLnBkZlVybH1gKTtjb25zb2xlLmxvZyhgUERGIHRpbGUgcmVuZGVyZWQgaW4gJHtDfW1zYCl9Y2F0Y2goQyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgUERGIHRpbGU6IixDKSx0aGlzLmVycm9yPSEwLHRoaXMubG9hZGluZz0hMX19fXNjaGVkdWxlUmVuZGVyUGFnZXMoKXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudD90aGlzLnJlbmRlclBhZ2VzVGFzaz8odGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMCx0aGlzLnJlbmRlclBhZ2VzVGFzayk6KHRoaXMucmVuZGVyUGFnZXNUYXNrPShhc3luYygpPT57dHJ5e2F3YWl0IHRoaXMucGVyZm9ybVJlbmRlclBhZ2VzKCl9Y2F0Y2goQyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlbmRlciBQREYgdGlsZSBwYWdlczoiLEMpfX0pKCkuZmluYWxseSgoKT0+e3RoaXMucmVuZGVyUGFnZXNUYXNrPW51bGwsdGhpcy5yZW5kZXJQYWdlc1F1ZXVlZCYmKHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITEsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfSksdGhpcy5yZW5kZXJQYWdlc1Rhc2spOlByb21pc2UucmVzb2x2ZSgpfWFzeW5jIHBlcmZvcm1SZW5kZXJQYWdlcygpe2lmKCF0aGlzLnBkZkRvY3VtZW50KXJldHVybjthd2FpdCBuZXcgUHJvbWlzZSgkPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoJCkpO2xldCBDPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctY2FudmFzIik7aWYoIUMpcmV0dXJuO3RoaXMuY2xlYXJDYW52YXNlcygpLHRoaXMuY2FjaGVFbGVtZW50cygpO2xldHthdmFpbGFibGVXaWR0aDp6LGF2YWlsYWJsZUhlaWdodDpBfT10aGlzLmdldEF2YWlsYWJsZVNpemUoKTt0cnl7bGV0ICQ9dGhpcy5jdXJyZW50UHJldmlld1BhZ2UsRj1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoJCksWT1GLmdldFZpZXdwb3J0KHtzY2FsZToxfSksRz1ZLmhlaWdodC9ZLndpZHRoLFo9MS40MTQsZGU9LjcwNyxEPTEuMjk0LFE9Ljc3MyxmZT0uMDUsVD1NYXRoLmFicyhHLVopPFoqZmUsVz1NYXRoLmFicyhHLWRlKTxkZSpmZSxwZT1NYXRoLmFicyhHLUQpPEQqZmUsbWU9TWF0aC5hYnMoRy1RKTxRKmZlO3RoaXMuaXNBNEZvcm1hdD1UfHxXfHxwZXx8bWU7bGV0IHE9dGhpcy5pc0E0Rm9ybWF0P3o6ei0yNCxIPXRoaXMuaXNBNEZvcm1hdD9BOkEtMjQsVT1xPjA/cS9ZLndpZHRoOjAsaj1IPjA/SC9ZLmhlaWdodDowLGFlPU1hdGgubWluKFV8fC41LGp8fFV8fC41KSxYPU1hdGgubWluKGFlKjIsMyk7aWYoIU51bWJlci5pc0Zpbml0ZShYKXx8WDw9MCl7Ri5jbGVhbnVwPy4oKTtyZXR1cm59bGV0IEo9Ri5nZXRWaWV3cG9ydCh7c2NhbGU6WH0pLHhlPSR3LmFjcXVpcmUoSi53aWR0aCxKLmhlaWdodCk7dGhpcy5jYW52YXNlcy5wdXNoKHhlKTtsZXQgSz17Y2FudmFzQ29udGV4dDp4ZS5jdHgsdmlld3BvcnQ6Sn07YXdhaXQgRi5yZW5kZXIoSykucHJvbWlzZSxDLndpZHRoPUoud2lkdGgsQy5oZWlnaHQ9Si5oZWlnaHQ7bGV0IFY9cSxsZT1KLmhlaWdodC9KLndpZHRoKnE7aWYobGU+SCl7bGV0IGVlPUgsemU9Si53aWR0aC9KLmhlaWdodCpIO0Muc3R5bGUud2lkdGg9YCR7emV9cHhgLEMuc3R5bGUuaGVpZ2h0PWAke2VlfXB4YH1lbHNlIEMuc3R5bGUud2lkdGg9YCR7Vn1weGAsQy5zdHlsZS5oZWlnaHQ9YCR7bGV9cHhgO2xldCBuZT1DLmdldENvbnRleHQoIjJkIik7bmUmJihuZS5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsbmUuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5PSJoaWdoIixuZS5kcmF3SW1hZ2UoeGUuY2FudmFzLDAsMCkpLEYuY2xlYW51cCgpfWNhdGNoKCQpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byByZW5kZXIgcGFnZSAke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfTpgLCQpfX1jbGVhckNhbnZhc2VzKCl7Zm9yKGxldCBDIG9mIHRoaXMuY2FudmFzZXMpJHcucmVsZWFzZShDKTt0aGlzLmNhbnZhc2VzPVtdfWNsZWFudXAoKXt0aGlzLmNsZWFyQ2FudmFzZXMoKSx0aGlzLnBkZkRvY3VtZW50JiYoU2QucmVsZWFzZURvY3VtZW50KHRoaXMubG9hZGVkUGRmVXJsPz90aGlzLnBkZlVybCksdGhpcy5wZGZEb2N1bWVudD1udWxsKSx0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSExLHRoaXMucGFnZUNvdW50PTAsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MSx0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5pc0E0Rm9ybWF0PSEwLHRoaXMuc3RhY2tFbGVtZW50PW51bGwsdGhpcy5sb2FkZWRQZGZVcmw9bnVsbCx0aGlzLnJlbmRlcmVkPSExLHRoaXMubG9hZGluZz0hMSx0aGlzLmVycm9yPSExfWFzeW5jIHVwZGF0ZWQoQyl7aWYoc3VwZXIudXBkYXRlZChDKSxDLmhhcygicGRmVXJsIikmJnRoaXMucGRmVXJsKXtsZXQgej1DLmdldCgicGRmVXJsIik7eiYmU2QucmVsZWFzZURvY3VtZW50KHopLHRoaXMuY2xlYW51cCgpLHRoaXMucmVuZGVyZWQ9ITEsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MTtsZXQgQT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO0EudG9wPHdpbmRvdy5pbm5lckhlaWdodCYmQS5ib3R0b20+MCYmdGhpcy5sb2FkQW5kUmVuZGVyUHJldmlldygpfUMuaGFzKCJjdXJyZW50UHJldmlld1BhZ2UiKSYmdGhpcy5yZW5kZXJlZCYmYXdhaXQgdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCl9Z2V0Q29udGV4dE1lbnVJdGVtcygpe2xldCBDPVtdO3JldHVybiB0aGlzLmNsaWNrYWJsZSYmKEMucHVzaCh7bmFtZToiVmlldyBQREYiLGljb25OYW1lOiJsdWNpZGU6RXllIixhY3Rpb246aShhc3luYygpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGlsZS1jbGljayIse2RldGFpbDp0aGlzLmdldFRpbGVDbGlja0RldGFpbCgpLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LCJhY3Rpb24iKX0pLEMucHVzaCh7ZGl2aWRlcjohMH0pKSxDLnB1c2goe25hbWU6Ik9wZW4gUERGIGluIE5ldyBUYWIiLGljb25OYW1lOiJsdWNpZGU6RXh0ZXJuYWxMaW5rIixhY3Rpb246aShhc3luYygpPT57d2luZG93Lm9wZW4odGhpcy5wZGZVcmwsIl9ibGFuayIpfSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQ29weSBQREYgVVJMIixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLnBkZlVybCl9LCJhY3Rpb24iKX0se25hbWU6IkRvd25sb2FkIFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmkoYXN5bmMoKT0+e2xldCB6PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTt6LmhyZWY9dGhpcy5wZGZVcmwsei5kb3dubG9hZD10aGlzLnBkZlVybC5zcGxpdCgiLyIpLnBvcCgpfHwiZG9jdW1lbnQucGRmIix6LmNsaWNrKCl9LCJhY3Rpb24iKX0pLHRoaXMucGFnZUNvdW50PjAmJkMucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6YCR7dGhpcy5wYWdlQ291bnR9IHBhZ2Uke3RoaXMucGFnZUNvdW50PjE/InMiOiIifWAsaWNvbk5hbWU6Imx1Y2lkZTpGaWxlVGV4dCIsZGlzYWJsZWQ6ITAsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpfSksQ31jYWNoZUVsZW1lbnRzKCl7dGhpcy5zdGFja0VsZW1lbnR8fCh0aGlzLnN0YWNrRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LXN0YWNrIikpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXt0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLnJlbmRlcmVkJiZ0aGlzLnBkZkRvY3VtZW50JiYhdGhpcy5sb2FkaW5nJiZ0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKSl9Z2V0QXZhaWxhYmxlU2l6ZSgpe2lmKHRoaXMuc3RhY2tFbGVtZW50fHwodGhpcy5zdGFja0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1zdGFjayIpKSwhdGhpcy5zdGFja0VsZW1lbnQpcmV0dXJue2F2YWlsYWJsZVdpZHRoOjIwMCxhdmFpbGFibGVIZWlnaHQ6MjYwfTtsZXQgQz10aGlzLnN0YWNrRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx6PU1hdGgubWF4KEMud2lkdGgsMCl8fDIwMCxBPU1hdGgubWF4KEMuaGVpZ2h0LDApfHwyNjA7cmV0dXJue2F2YWlsYWJsZVdpZHRoOnosYXZhaWxhYmxlSGVpZ2h0OkF9fXN0YXRpY3tyMShhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgY3RhPXUoKCk9PntsdGEoKX0pO3ZhciBkdGEsdXRhPXUoKCk9Pnt2ZSgpO2R0YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5JbWFnZSBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzgwMC82MDAiCiAgICAgICAgICBhbHQ9IkxhbmRzY2FwZSBwaG90byIKICAgICAgICAgIGxhYmVsPSJsYW5kc2NhcGUuanBnIgogICAgICAgICAgQHRpbGUtY2xpY2s9JHt0PT5jb25zb2xlLmxvZygiSW1hZ2UgY2xpY2tlZDoiLHQuZGV0YWlsKX0KICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNDAwIgogICAgICAgICAgYWx0PSJTcXVhcmUgcGhvdG8iCiAgICAgICAgICBsYWJlbD0ic3F1YXJlLnBuZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8zMDAvOTAwIgogICAgICAgICAgYWx0PSJQb3J0cmFpdCBwaG90byIKICAgICAgICAgIGxhYmVsPSJwb3J0cmFpdC53ZWJwIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWltYWdlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwIgogICAgICAgICAgYWx0PSJTbWFsbCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5qcGciCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvNjAwLzQwMCIKICAgICAgICAgIGFsdD0iRGVmYXVsdCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0LmpwZyIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWltYWdlCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEyMDAvODAwIgogICAgICAgICAgYWx0PSJMYXJnZSIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5qcGciCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtaW1hZ2U+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkVycm9yIFN0YXRlIChicm9rZW4gVVJMKTwvaDM+CiAgICAgIDxkZWVzLXRodW1ibmFpbC1pbWFnZQogICAgICAgIHNyYz0iaHR0cHM6Ly9pbnZhbGlkLXVybC10aGF0LWRvZXMtbm90LWV4aXN0LmV4YW1wbGUvaW1hZ2UucG5nIgogICAgICAgIGFsdD0iQnJva2VuIgogICAgICAgIGxhYmVsPSJicm9rZW4ucG5nIgogICAgICA+PC9kZWVzLXRodW1ibmFpbC1pbWFnZT4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgRXcsJGMscHRhLGZ0YT11KCgpPT57dmUoKTtiZigpO3kzKCk7dXRhKCk7RXc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LCRjPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxwdGE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXRodW1ibmFpbC1pbWFnZSIpXSxlLHI9W10sYSxzPXQxLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsSW1hZ2UiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtpZSgpXSx2PVtpZSgpXSx5PVtpZSgpXSxFdyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic3JjImluIFMsImhhcyIpLGdldDppKFM9PlMuc3JjLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc3JjPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sbyxsKSxFdyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iYWx0ImluIFMsImhhcyIpLGdldDppKFM9PlMuYWx0LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuYWx0PU99LCJzZXQiKX0sbWV0YWRhdGE6X30sZCxmKSxFdyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlTG9hZGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpbWFnZUxvYWRlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmltYWdlTG9hZGVkLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuaW1hZ2VMb2FkZWQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLEV3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaW1hZ2VXaWR0aCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmltYWdlV2lkdGgsImdldCIpLHNldDppKChTLE8pPT57Uy5pbWFnZVdpZHRoPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sYixnKSxFdyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpbWFnZUhlaWdodCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmltYWdlSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuaW1hZ2VIZWlnaHQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLE0pLEV3KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksTj1hPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89ZHRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5MbyxyZWAKICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJlcGVhdGluZy1jb25pYy1ncmFkaWVudCgjZThlOGU4IDAlIDI1JSwgd2hpdGUgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiLCJyZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoaHNsKDIxNSAyMCUgMTglKSAwJSAyNSUsIGhzbCgyMTUgMjAlIDE0JSkgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiKX07CiAgICAgIH0KCiAgICAgIC5pbWFnZS13cmFwcGVyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGVkIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgIGBdOyNlPSRjKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoXyl7dGhpcy4jZT1ffSN0PSgkYyh0aGlzLGwpLCRjKHRoaXMsZCwiIikpO2dldCBhbHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWx0KF8pe3RoaXMuI3Q9X30jcj0oJGModGhpcyxmKSwkYyh0aGlzLGgsITEpKTtnZXQgaW1hZ2VMb2FkZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaW1hZ2VMb2FkZWQoXyl7dGhpcy4jcj1ffSNhPSgkYyh0aGlzLG0pLCRjKHRoaXMsYiwwKSk7Z2V0IGltYWdlV2lkdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaW1hZ2VXaWR0aChfKXt0aGlzLiNhPV99I2k9KCRjKHRoaXMsZyksJGModGhpcyxrLDApKTtnZXQgaW1hZ2VIZWlnaHQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaW1hZ2VIZWlnaHQoXyl7dGhpcy4jaT1ffWhhc1N0YXJ0ZWRMb2FkaW5nPSgkYyh0aGlzLE0pLCExKTtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS13cmFwcGVyIj4KICAgICAgICAke3RoaXMuaGFzU3RhcnRlZExvYWRpbmc/d2AKICAgICAgICAgIDxpbWcKICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5pbWFnZUxvYWRlZD8ibG9hZGVkIjoibG9hZGluZyJ9IgogICAgICAgICAgICBzcmM9IiR7dGhpcy5zcmN9IgogICAgICAgICAgICBhbHQ9IiR7dGhpcy5hbHR9IgogICAgICAgICAgICBAbG9hZD0ke3RoaXMuaGFuZGxlSW1hZ2VMb2FkfQogICAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUltYWdlRXJyb3J9CiAgICAgICAgICAvPgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpFeWUiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+VmlldyBJbWFnZTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIXRoaXMubGFiZWwmJiEodGhpcy5pbWFnZVdpZHRoPjApPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgICR7dGhpcy5pbWFnZVdpZHRoPjAmJnRoaXMuaW1hZ2VIZWlnaHQ+MD93YDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLmltYWdlV2lkdGh9IMOXICR7dGhpcy5pbWFnZUhlaWdodH08L3NwYW4+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntzcmM6dGhpcy5zcmMsYWx0OnRoaXMuYWx0LHdpZHRoOnRoaXMuaW1hZ2VXaWR0aCxoZWlnaHQ6dGhpcy5pbWFnZUhlaWdodH19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMuaGFzU3RhcnRlZExvYWRpbmcmJnRoaXMuc3JjJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfWhhbmRsZUltYWdlTG9hZChfKXtsZXQgUz1fLnRhcmdldDt0aGlzLmltYWdlV2lkdGg9Uy5uYXR1cmFsV2lkdGgsdGhpcy5pbWFnZUhlaWdodD1TLm5hdHVyYWxIZWlnaHQsdGhpcy5pbWFnZUxvYWRlZD0hMCx0aGlzLmxvYWRpbmc9ITF9aGFuZGxlSW1hZ2VFcnJvcigpe3RoaXMuZXJyb3I9ITAsdGhpcy5sb2FkaW5nPSExfWFzeW5jIHVwZGF0ZWQoXyl7c3VwZXIudXBkYXRlZChfKSxfLmhhcygic3JjIikmJnRoaXMuc3JjJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5pbWFnZUxvYWRlZD0hMSx0aGlzLmxvYWRpbmc9ITApfXN0YXRpY3skYyhhLHIpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgaHRhPXUoKCk9PntmdGEoKX0pO3ZhciBtdGEsZ3RhPXUoKCk9Pnt2ZSgpO210YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5BdWRpbyBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMSIKICAgICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMS5tcDMiCiAgICAgICAgICBAdGlsZS1jbGljaz0ke3Q9PmNvbnNvbGUubG9nKCJBdWRpbyBjbGlja2VkOiIsdC5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aHVtYm5haWwtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0yLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMiIKICAgICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMi5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTMubXAzIgogICAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAzIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMy5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWF1ZGlvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTbWFsbCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IkRlZmF1bHQiCiAgICAgICAgICBsYWJlbD0iZGVmYXVsdC5tcDMiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtYXVkaW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC1hdWRpbwogICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iTGFyZ2UiCiAgICAgICAgICBsYWJlbD0ibGFyZ2UubXAzIgogICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWF1ZGlvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgLCJkZW1vIil9KTt2YXIgdmYsYTEsYnRhLHh0YT11KCgpPT57dmUoKTtiZigpO3kzKCk7Z3RhKCk7dmY9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGExPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxidGE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXRodW1ibmFpbC1hdWRpbyIpXSxlLHI9W10sYSxzPXQxLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdO3ZhciBCPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsQXVkaW8iKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtpZSgpXSx5PVtpZSgpXSxOPVtpZSgpXSxPPVtpZSgpXSx2Zih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic3JjImluIHosImhhcyIpLGdldDppKHo9Pnouc3JjLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouc3JjPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSx2Zih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0aXRsZSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRpdGxlLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudGl0bGU9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLHZmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXJ0aXN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJhcnRpc3QiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5hcnRpc3QsImdldCIpLHNldDppKCh6LEEpPT57ei5hcnRpc3Q9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLHZmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImR1cmF0aW9uImluIHosImhhcyIpLGdldDppKHo9PnouZHVyYXRpb24sImdldCIpLHNldDppKCh6LEEpPT57ei5kdXJhdGlvbj1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksdmYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+IndhdmVmb3JtRGF0YSJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LndhdmVmb3JtRGF0YSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LndhdmVmb3JtRGF0YT1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGssTSksdmYodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybVJlYWR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ3YXZlZm9ybVJlYWR5ImluIHosImhhcyIpLGdldDppKHo9Pnoud2F2ZWZvcm1SZWFkeSwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LndhdmVmb3JtUmVhZHk9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxfLFMpLHZmKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcmV2aWV3UGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iaXNQcmV2aWV3UGxheWluZyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmlzUHJldmlld1BsYXlpbmcsImdldCIpLHNldDppKCh6LEEpPT57ei5pc1ByZXZpZXdQbGF5aW5nPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sTCxFKSx2ZihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHIpLEI9YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPW10YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uTG8scmVgCiAgICAgIC5hdWRpby1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgibGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsKDI1MCA0MCUgOTYlKSwgaHNsKDI4MCAzMCUgOTQlKSkiLCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2woMjUwIDMwJSAxNiUpLCBoc2woMjgwIDI1JSAxNCUpKSIpfTsKICAgICAgfQoKICAgICAgLm11c2ljLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyNTAgNjAlIDY1JSkiLCJoc2woMjUwIDYwJSA3MCUpIil9OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLmF1ZGlvLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyNTAgMjAlIDM1JSkiLCJoc2woMjUwIDIwJSA4MCUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmF1ZGlvLWFydGlzdCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjUwIDE1JSA1MCUpIiwiaHNsKDI1MCAxNSUgNjUlKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IC0xMnB4OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC53YXZlZm9ybS1jb250YWluZXIgewogICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCgogICAgICAucGxheS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDE4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC5wbGF5LW92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5wbGF5LWNpcmNsZSB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgICB9CgogICAgICAucGxheS1jaXJjbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CiAgICBgXTsjZT1hMSh0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKEMpe3RoaXMuI2U9Q30jdD0oYTEodGhpcyxsKSxhMSh0aGlzLGQsIiIpKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGl0bGUoQyl7dGhpcy4jdD1DfSNyPShhMSh0aGlzLGYpLGExKHRoaXMsaCwiIikpO2dldCBhcnRpc3QoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYXJ0aXN0KEMpe3RoaXMuI3I9Q30jYT0oYTEodGhpcyxtKSxhMSh0aGlzLGIsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBkdXJhdGlvbihDKXt0aGlzLiNhPUN9I2k9KGExKHRoaXMsZyksYTEodGhpcyxrLFtdKSk7Z2V0IHdhdmVmb3JtRGF0YSgpe3JldHVybiB0aGlzLiNpfXNldCB3YXZlZm9ybURhdGEoQyl7dGhpcy4jaT1DfSNzPShhMSh0aGlzLE0pLGExKHRoaXMsXywhMSkpO2dldCB3YXZlZm9ybVJlYWR5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHdhdmVmb3JtUmVhZHkoQyl7dGhpcy4jcz1DfSNuPShhMSh0aGlzLFMpLGExKHRoaXMsTCwhMSkpO2dldCBpc1ByZXZpZXdQbGF5aW5nKCl7cmV0dXJuIHRoaXMuI259c2V0IGlzUHJldmlld1BsYXlpbmcoQyl7dGhpcy4jbj1DfWF1ZGlvRWxlbWVudD0oYTEodGhpcyxFKSxudWxsKTtwcmV2aWV3VGltZW91dD1udWxsO2hhc0xvYWRlZFdhdmVmb3JtPSExO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImF1ZGlvLWNvbnRlbnQiPgogICAgICAgIDxkZWVzLWljb24gY2xhc3M9Im11c2ljLWljb24iIGljb249Imx1Y2lkZTpNdXNpYyI+PC9kZWVzLWljb24+CgogICAgICAgICR7dGhpcy50aXRsZT93YDxkaXYgY2xhc3M9ImF1ZGlvLXRpdGxlIj4ke3RoaXMudGl0bGV9PC9kaXY+YDoiIn0KICAgICAgICAke3RoaXMuYXJ0aXN0P3dgPGRpdiBjbGFzcz0iYXVkaW8tYXJ0aXN0Ij4ke3RoaXMuYXJ0aXN0fTwvZGl2PmA6IiJ9CgogICAgICAgICR7dGhpcy53YXZlZm9ybVJlYWR5P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ3YXZlZm9ybS1jb250YWluZXIiPgogICAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJwbGF5LW92ZXJsYXkiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYXktY2lyY2xlIj4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVhZHBob25lcyI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5QbGF5IEF1ZGlvPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5sYWJlbCYmIXRoaXMuZHVyYXRpb24/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyx0aXRsZTp0aGlzLnRpdGxlLGFydGlzdDp0aGlzLmFydGlzdCxkdXJhdGlvbjp0aGlzLmR1cmF0aW9ufX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5oYXNMb2FkZWRXYXZlZm9ybSYmdGhpcy5zcmMmJih0aGlzLmhhc0xvYWRlZFdhdmVmb3JtPSEwLHRoaXMubG9hZEF1ZGlvTWV0YSgpKX1hc3luYyBsb2FkQXVkaW9NZXRhKCl7dGhpcy5sb2FkaW5nPSEwO3RyeXtsZXQgQz1uZXcgQXVkaW87Qy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixDLnByZWxvYWQ9Im1ldGFkYXRhIixhd2FpdCBuZXcgUHJvbWlzZSgoeixBKT0+e0MuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1DLmR1cmF0aW9uLHooKX0se29uY2U6ITB9KSxDLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+QShuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIGF1ZGlvIikpLHtvbmNlOiEwfSksQy5zcmM9dGhpcy5zcmN9KSxhd2FpdCB0aGlzLmxvYWRXYXZlZm9ybSgpLHRoaXMubG9hZGluZz0hMX1jYXRjaHt0aGlzLmxvYWRpbmc9ITF9fWFzeW5jIGxvYWRXYXZlZm9ybSgpe3RyeXtsZXQgej1hd2FpdChhd2FpdCBmZXRjaCh0aGlzLnNyYykpLmFycmF5QnVmZmVyKCksQT1uZXcgQXVkaW9Db250ZXh0LEY9KGF3YWl0IEEuZGVjb2RlQXVkaW9EYXRhKHopKS5nZXRDaGFubmVsRGF0YSgwKSxZPTgwLEc9TWF0aC5mbG9vcihGLmxlbmd0aC9ZKSxaPVtdO2ZvcihsZXQgRD0wO0Q8WTtEKyspe2xldCBRPTA7Zm9yKGxldCBmZT0wO2ZlPEc7ZmUrKylRKz1NYXRoLmFicyhGW0QqRytmZV0pO1oucHVzaChRL0cpfWxldCBkZT1NYXRoLm1heCguLi5aKTt0aGlzLndhdmVmb3JtRGF0YT1aLm1hcChEPT5kZT4wP0QvZGU6MCksdGhpcy53YXZlZm9ybVJlYWR5PSEwLGF3YWl0IEEuY2xvc2UoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZHJhd1dhdmVmb3JtKCl9Y2F0Y2h7dGhpcy53YXZlZm9ybVJlYWR5PSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy53YXZlZm9ybVJlYWR5KXJldHVybjtsZXQgQz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIik7aWYoIUMpcmV0dXJuO2xldCB6PUMucGFyZW50RWxlbWVudCxBPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLCQ9ei5jbGllbnRXaWR0aCxGPXouY2xpZW50SGVpZ2h0O0Mud2lkdGg9JCpBLEMuaGVpZ2h0PUYqQTtsZXQgWT1DLmdldENvbnRleHQoIjJkIik7aWYoIVkpcmV0dXJuO1kuc2NhbGUoQSxBKSxZLmNsZWFyUmVjdCgwLDAsJCxGKTtsZXQgRz10aGlzLndhdmVmb3JtRGF0YS5sZW5ndGg7aWYoRz09PTApcmV0dXJuO2xldCBaPSQvRyxEPWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0aGVtZS1kYXJrIil8fHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz8iaHNsKDI1MCA1MCUgNjAlKSI6ImhzbCgyNTAgNTAlIDcwJSkiO1kuZmlsbFN0eWxlPUQ7Zm9yKGxldCBRPTA7UTxHO1ErKyl7bGV0IGZlPXRoaXMud2F2ZWZvcm1EYXRhW1FdLFQ9TWF0aC5tYXgoMixmZSooRi00KSksVz1RKloscGU9KEYtVCkvMjtZLmZpbGxSZWN0KFcrLjUscGUsWi0xLFQpfX1hc3luYyB1cGRhdGVkKEMpe3N1cGVyLnVwZGF0ZWQoQyksQy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc0xvYWRlZFdhdmVmb3JtPSEwLHRoaXMud2F2ZWZvcm1SZWFkeT0hMSx0aGlzLmR1cmF0aW9uPTAsdGhpcy5sb2FkQXVkaW9NZXRhKCkpLEMuaGFzKCJ3YXZlZm9ybVJlYWR5IikmJnRoaXMud2F2ZWZvcm1SZWFkeSYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5kcmF3V2F2ZWZvcm0oKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucHJldmlld1RpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnByZXZpZXdUaW1lb3V0KSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnBhdXNlKCksdGhpcy5hdWRpb0VsZW1lbnQuc3JjPSIiLHRoaXMuYXVkaW9FbGVtZW50PW51bGwpfWZvcm1hdFRpbWUoQyl7aWYoIWlzRmluaXRlKEMpfHxDPDApcmV0dXJuIjA6MDAiO2xldCB6PU1hdGguZmxvb3IoQy82MCksQT1NYXRoLmZsb29yKEMlNjApO3JldHVybmAke3p9OiR7QS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfXN0YXRpY3thMShhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgdnRhPXUoKCk9Pnt4dGEoKX0pO3ZhciB5dGEsd3RhPXUoKCk9Pnt2ZSgpO3l0YT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5WaWRlbyBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImJ1bm55Lm1wNCIKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7dD0+Y29uc29sZS5sb2coIlZpZGVvIGNsaWNrZWQ6Iix0LmRldGFpbCl9CiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92aWUubXA0IgogICAgICAgICAgcG9zdGVyPSJodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzMwMCIKICAgICAgICAgIGxhYmVsPSJtb3ZpZS5tcDQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CgogICAgICAgIDxkZWVzLXRodW1ibmFpbC12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0iYW5vdGhlci12aWRlby5tcDQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9InNtYWxsLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0Lm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KCiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLXZpZGVvCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImxhcmdlLm1wNCIKICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC12aWRlbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+V2l0aCBQb3N0ZXIgSW1hZ2U8L2gzPgogICAgICA8ZGVlcy10aHVtYm5haWwtdmlkZW8KICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZpZS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL3BpY3N1bS5waG90b3MvNjAwLzQwMCIKICAgICAgICBsYWJlbD0icG9zdGVyLXZpZGVvLm1wNCIKICAgICAgPjwvZGVlcy10aHVtYm5haWwtdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYCwiZGVtbyIpfSk7dmFyIEl3LEFjLGt0YSxTdGE9dSgoKT0+e3ZlKCk7YmYoKTt5MygpO3d0YSgpO0l3PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxBYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sa3RhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy10aHVtYm5haWwtdmlkZW8iKV0sZSxyPVtdLGEscz10MSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1RodW1ibmFpbFZpZGVvIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1baWUoKV0sdj1baWUoKV0seT1baWUoKV0sSXcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InNyYyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNyYywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnNyYz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksSXcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3N0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InBvc3RlciJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnBvc3RlciwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnBvc3Rlcj1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksSXcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZHVyYXRpb24iaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5kdXJhdGlvbiwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmR1cmF0aW9uPU99LCJzZXQiKX0sbWV0YWRhdGE6X30saCxtKSxJdyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbENhcHR1cmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0aHVtYm5haWxDYXB0dXJlZCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnRodW1ibmFpbENhcHR1cmVkLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MudGh1bWJuYWlsQ2FwdHVyZWQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEl3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iaXNIb3ZlcmluZyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmlzSG92ZXJpbmcsImdldCIpLHNldDppKChTLE8pPT57Uy5pc0hvdmVyaW5nPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxJdyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPXl0YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uTG8scmVgCiAgICAgIC52aWRlby13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogIzAwMDsKICAgICAgfQoKICAgICAgLnZpZGVvLXdyYXBwZXIgdmlkZW8gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnZpZGVvLXdyYXBwZXIgY2FudmFzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5wb3N0ZXItaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKCiAgICAgIC5wbGF5LW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHotaW5kZXg6IDE1OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAucGxheS1vdmVybGF5IGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAucGxheS1vdmVybGF5IHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAudmlkZW8taG92ZXItcHJldmlldyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICB6LWluZGV4OiA1OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC52aWRlby1ob3Zlci1wcmV2aWV3LmFjdGl2ZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07I2U9QWModGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhfKXt0aGlzLiNlPV99I3Q9KEFjKHRoaXMsbCksQWModGhpcyxkLCIiKSk7Z2V0IHBvc3Rlcigpe3JldHVybiB0aGlzLiN0fXNldCBwb3N0ZXIoXyl7dGhpcy4jdD1ffSNyPShBYyh0aGlzLGYpLEFjKHRoaXMsaCwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGR1cmF0aW9uKF8pe3RoaXMuI3I9X30jYT0oQWModGhpcyxtKSxBYyh0aGlzLGIsITEpKTtnZXQgdGh1bWJuYWlsQ2FwdHVyZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGh1bWJuYWlsQ2FwdHVyZWQoXyl7dGhpcy4jYT1ffSNpPShBYyh0aGlzLGcpLEFjKHRoaXMsaywhMSkpO2dldCBpc0hvdmVyaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzSG92ZXJpbmcoXyl7dGhpcy4jaT1ffXRodW1ibmFpbENhbnZhcz0oQWModGhpcyxNKSxudWxsKTtob3ZlclZpZGVvPW51bGw7aGFzU3RhcnRlZExvYWRpbmc9ITE7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idmlkZW8td3JhcHBlciI+CiAgICAgICAgJHt0aGlzLnBvc3Rlcj93YAogICAgICAgICAgPGltZyBjbGFzcz0icG9zdGVyLWltYWdlIiBzcmM9IiR7dGhpcy5wb3N0ZXJ9IiBhbHQ9IiIgLz4KICAgICAgICBgOnRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ/d2AKICAgICAgICAgIDxjYW52YXM+PC9jYW52YXM+CiAgICAgICAgYDp3YAogICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZDogIzAwMDsiPjwvZGl2PgogICAgICAgIGB9CgogICAgICAgICR7dGhpcy5pc0hvdmVyaW5nJiZ0aGlzLnNyYz93YAogICAgICAgICAgPHZpZGVvCiAgICAgICAgICAgIGNsYXNzPSJ2aWRlby1ob3Zlci1wcmV2aWV3ICR7dGhpcy5pc0hvdmVyaW5nPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgLnNyYz0ke3RoaXMuc3JjfQogICAgICAgICAgICBtdXRlZAogICAgICAgICAgICBwbGF5c2lubGluZQogICAgICAgICAgICBAbG9hZGVkZGF0YT0ke3RoaXMuaGFuZGxlSG92ZXJWaWRlb0xvYWRlZH0KICAgICAgICAgID48L3ZpZGVvPgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmlzSG92ZXJpbmc/IiI6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+UGxheSBWaWRlbzwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7cmV0dXJuIXRoaXMubGFiZWwmJiF0aGlzLmR1cmF0aW9uPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgICR7dGhpcy5kdXJhdGlvbj4wP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX08L3NwYW4+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntzcmM6dGhpcy5zcmMscG9zdGVyOnRoaXMucG9zdGVyLGR1cmF0aW9uOnRoaXMuZHVyYXRpb259fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nJiZ0aGlzLnNyYyYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5jYXB0dXJlRmlyc3RGcmFtZSgpKX1hc3luYyBjYXB0dXJlRmlyc3RGcmFtZSgpe2lmKHRoaXMucG9zdGVyKXt0aGlzLmxvYWREdXJhdGlvbigpO3JldHVybn10aGlzLmxvYWRpbmc9ITA7dHJ5e2xldCBfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7Xy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixfLm11dGVkPSEwLF8ucHJlbG9hZD0ibWV0YWRhdGEiLGF3YWl0IG5ldyBQcm9taXNlKChTLE8pPT57Xy5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249Xy5kdXJhdGlvbixfLmN1cnJlbnRUaW1lPS4xLF8uYWRkRXZlbnRMaXN0ZW5lcigic2Vla2VkIiwoKT0+e2xldCBMPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO0wud2lkdGg9Xy52aWRlb1dpZHRoLEwuaGVpZ2h0PV8udmlkZW9IZWlnaHQ7bGV0IEU9TC5nZXRDb250ZXh0KCIyZCIpO0UmJihFLmRyYXdJbWFnZShfLDAsMCksdGhpcy50aHVtYm5haWxDYW52YXM9TCx0aGlzLnRodW1ibmFpbENhcHR1cmVkPSEwKSxfLnNyYz0iIixfLmxvYWQoKSxTKCl9LHtvbmNlOiEwfSl9LHtvbmNlOiEwfSksXy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pk8obmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCB2aWRlbyIpKSx7b25jZTohMH0pLF8uc3JjPXRoaXMuc3JjfSksdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jb3B5VGh1bWJuYWlsVG9DYW52YXMoKX1jYXRjaHt0aGlzLmxvYWRpbmc9ITEsdGhpcy5sb2FkRHVyYXRpb24oKX19bG9hZER1cmF0aW9uKCl7bGV0IF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTtfLnByZWxvYWQ9Im1ldGFkYXRhIixfLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZG1ldGFkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249Xy5kdXJhdGlvbixfLnNyYz0iIixfLmxvYWQoKX0pLF8uc3JjPXRoaXMuc3JjfWNvcHlUaHVtYm5haWxUb0NhbnZhcygpe2lmKCF0aGlzLnRodW1ibmFpbENhbnZhcylyZXR1cm47bGV0IF89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlkZW8td3JhcHBlciBjYW52YXMiKTtpZighXylyZXR1cm47Xy53aWR0aD10aGlzLnRodW1ibmFpbENhbnZhcy53aWR0aCxfLmhlaWdodD10aGlzLnRodW1ibmFpbENhbnZhcy5oZWlnaHQ7bGV0IFM9Xy5nZXRDb250ZXh0KCIyZCIpO1MmJlMuZHJhd0ltYWdlKHRoaXMudGh1bWJuYWlsQ2FudmFzLDAsMCl9b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMH1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuaG92ZXJWaWRlbz1udWxsfWhhbmRsZUhvdmVyVmlkZW9Mb2FkZWQoXyl7dGhpcy5ob3ZlclZpZGVvPV8udGFyZ2V0LHRoaXMuaG92ZXJWaWRlby5wbGF5KCkuY2F0Y2goKCk9Pnt9KX1hc3luYyB1cGRhdGVkKF8pe3N1cGVyLnVwZGF0ZWQoXyksXy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ9ITEsdGhpcy5kdXJhdGlvbj0wLHRoaXMuY2FwdHVyZUZpcnN0RnJhbWUoKSksXy5oYXMoInRodW1ibmFpbENhcHR1cmVkIikmJnRoaXMudGh1bWJuYWlsQ2FwdHVyZWQmJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY29weVRodW1ibmFpbFRvQ2FudmFzKCkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhvdmVyVmlkZW8mJih0aGlzLmhvdmVyVmlkZW8ucGF1c2UoKSx0aGlzLmhvdmVyVmlkZW8uc3JjPSIiLHRoaXMuaG92ZXJWaWRlbz1udWxsKSx0aGlzLnRodW1ibmFpbENhbnZhcz1udWxsfWZvcm1hdFRpbWUoXyl7aWYoIWlzRmluaXRlKF8pfHxfPDApcmV0dXJuIjA6MDAiO2xldCBTPU1hdGguZmxvb3IoXy82MCksTz1NYXRoLmZsb29yKF8lNjApO3JldHVybmAke1N9OiR7Ty50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfXN0YXRpY3tBYyhhLHIpfX07cmV0dXJuIE49YX0pKCl9KTt2YXIgTXRhPXUoKCk9PntTdGEoKX0pO3ZhciBDdGEsenRhPXUoKCk9Pnt2ZSgpO0N0YT1pKCgpPT57bGV0IHQ9YGltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHsKICBwcml2YXRlIGl0ZW1zOiBzdHJpbmdbXSA9IFtdOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgXCR7dGhpcy5pdGVtcy5tYXAoaXRlbSA9PiBodG1sXGAKICAgICAgICAgIDxzcGFuPlwke2l0ZW19PC9zcGFuPgogICAgICAgIFxgKX0KICAgICAgPC9kaXY+CiAgICBcYDsKICB9Cn1gLGU9YE1lZXRpbmcgTm90ZXMgLSBRNCBQbGFubmluZwpEYXRlOiBKYW51YXJ5IDE1LCAyMDI2CkF0dGVuZGVlczogQWxpY2UsIEJvYiwgQ2hhcmxpZQoKS2V5IERlY2lzaW9uczoKMS4gTGF1bmNoIG5ldyBmZWF0dXJlIGJ5IE1hcmNoCjIuIEhpcmUgMiBtb3JlIGVuZ2luZWVycwozLiBNaWdyYXRlIHRvIG5ldyBDSS9DRCBwaXBlbGluZQo0LiBVcGRhdGUgZGVzaWduIHN5c3RlbSB0byB2MwoKQWN0aW9uIEl0ZW1zOgotIEFsaWNlOiBEcmFmdCBQUkQgYnkgbmV4dCB3ZWVrCi0gQm9iOiBTZXQgdXAgaW50ZXJ2aWV3IHBpcGVsaW5lCi0gQ2hhcmxpZTogRXZhbHVhdGUgSmVua2lucyB2cyBHaXRIdWIgQWN0aW9uc2A7cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgLnRpbGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Ob3RlIFRpbGVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtbm90ZQogICAgICAgICAgICB0aXRsZT0iY29tcG9uZW50LnRzIgogICAgICAgICAgICAuY29udGVudD0ke3R9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICAgICAgICBsYWJlbD0iY29tcG9uZW50LnRzIgogICAgICAgICAgICBAdGlsZS1jbGljaz0ke2E9PmNvbnNvbGUubG9nKCJOb3RlIGNsaWNrZWQ6IixhLmRldGFpbCl9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJNZWV0aW5nIE5vdGVzIgogICAgICAgICAgICAuY29udGVudD0ke2V9CiAgICAgICAgICAgIGxhYmVsPSJtZWV0aW5nLW5vdGVzLnR4dCIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgdGl0bGU9InBhY2thZ2UuanNvbiIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtgewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMy4zOC4wIiwKICAiZGVzY3JpcHRpb24iOiAiRGVzaWduIGNvbXBvbmVudCBjYXRhbG9nIiwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjAiLAogICAgImxpdCI6ICJeMy4xLjAiCiAgfSwKICAic2NyaXB0cyI6IHsKICAgICJidWlsZCI6ICJ0c2J1aWxkIiwKICAgICJ0ZXN0IjogInRzdGVzdCIKICB9Cn1gfQogICAgICAgICAgICBsYW5ndWFnZT0ianNvbiIKICAgICAgICAgICAgbGFiZWw9InBhY2thZ2UuanNvbiIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIHRpdGxlPSJzbWFsbC50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHt0fQogICAgICAgICAgICBsYW5ndWFnZT0idHMiCiAgICAgICAgICAgIGxhYmVsPSJzbWFsbC50cyIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgdGl0bGU9ImRlZmF1bHQudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7dH0KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0iZGVmYXVsdC50cyIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIHRpdGxlPSJsYXJnZS50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHt0fQogICAgICAgICAgICBsYW5ndWFnZT0idHMiCiAgICAgICAgICAgIGxhYmVsPSJsYXJnZS50cyIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+V2l0aG91dCBUaXRsZTwvaDM+CiAgICAgICAgPGRlZXMtdGh1bWJuYWlsLW5vdGUKICAgICAgICAgIC5jb250ZW50PSR7ZX0KICAgICAgICAgIGxhYmVsPSJ1bnRpdGxlZC50eHQiCiAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtbm90ZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSwiZGVtbyIpfSk7dmFyIGpyZSx3MyxfdGEsVHRhPXUoKCk9Pnt2ZSgpO2JmKCk7eTMoKTt6dGEoKTtqcmU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHczPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxfdGE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXRodW1ibmFpbC1ub3RlIildLGUscj1bXSxhLHM9dDEsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNUaHVtYm5haWxOb3RlIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpTdHJpbmd9KV0sdj1baWUoKV0sanJlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+InRpdGxlImluIE0sImhhcyIpLGdldDppKE09Pk0udGl0bGUsImdldCIpLHNldDppKChNLE4pPT57TS50aXRsZT1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LG8sbCksanJlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iY29udGVudCJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmNvbnRlbnQsImdldCIpLHNldDppKChNLE4pPT57TS5jb250ZW50PU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxqcmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYW5ndWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ibGFuZ3VhZ2UiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5sYW5ndWFnZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmxhbmd1YWdlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30saCxtKSxqcmUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJpc0hvdmVyaW5nImluIE0sImhhcyIpLGdldDppKE09Pk0uaXNIb3ZlcmluZywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmlzSG92ZXJpbmc9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxiLGcpLGpyZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTprfSxudWxsLHIpLHk9YT1lLnZhbHVlLGsmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6a30pfXN0YXRpYyBkZW1vPUN0YTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uTG8scmVgCiAgICAgIC5ub3RlLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDYwIDUlIDk2JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm5vdGUtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHggOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubm90ZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDIwJSAyMCUpIiwiaHNsKDIxNSAyMCUgMjAlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQoKICAgICAgLm5vdGUtYm9keSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAwIDE0cHggMTRweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm5vdGUtdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDEwJSA0MCUpIiwiaHNsKDIxNSAxMCUgMzUlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAubm90ZS1mYWRlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAgIHRyYW5zcGFyZW50LAogICAgICAgICAgJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woNjAgNSUgOTYlKSIpfQogICAgICAgICk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ub3RlLWxpbmVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHdpZHRoOiAzNHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCA3MCUgODUlKSIsImhzbCgwIDUwJSA4MCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgfQoKICAgICAgLmxpbmUtbnVtYmVyIHsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDlweDsKICAgICAgICBsaW5lLWhlaWdodDogMTVweDsgLyogbWF0Y2hlcyAxMHB4ICogMS41IGxpbmUtaGVpZ2h0ICovCiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDEwJSA3NSUpIiwiaHNsKDIxNSAxMCUgNzAlKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7CiAgICAgIH0KCiAgICBgXTsjZT13Myh0aGlzLG8sIiIpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNlfXNldCB0aXRsZShrKXt0aGlzLiNlPWt9I3Q9KHczKHRoaXMsbCksdzModGhpcyxkLCIiKSk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY29udGVudChrKXt0aGlzLiN0PWt9I3I9KHczKHRoaXMsZiksdzModGhpcyxoLCIiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxhbmd1YWdlKGspe3RoaXMuI3I9a30jYT0odzModGhpcyxtKSx3Myh0aGlzLGIsITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNhfXNldCBpc0hvdmVyaW5nKGspe3RoaXMuI2E9a31ub3RlQm9keUVsZW1lbnQ9KHczKHRoaXMsZyksbnVsbCk7cmVuZGVyVGlsZUNvbnRlbnQoKXtsZXQgaz10aGlzLmNvbnRlbnQuc3BsaXQoYApgKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibm90ZS1jb250ZW50Ij4KICAgICAgICAke3RoaXMudGl0bGU/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS10aXRsZSI+JHt0aGlzLnRpdGxlfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS1ib2R5Ij4KICAgICAgICAgIDxwcmUgY2xhc3M9Im5vdGUtdGV4dCI+JHtrLmpvaW4oYApgKX08L3ByZT4KICAgICAgICAgICR7dGhpcy5pc0hvdmVyaW5nPyIiOndgPGRpdiBjbGFzcz0ibm90ZS1mYWRlIj48L2Rpdj5gfQogICAgICAgIDwvZGl2PgoKICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVUZXh0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk9wZW4gTm90ZTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyQm90dG9tQmFyKCl7bGV0IGs9dGhpcy5jb250ZW50LnNwbGl0KGAKYCk7cmV0dXJuIXRoaXMubGFiZWwmJiF0aGlzLmxhbmd1YWdlJiYhay5sZW5ndGg/IiI6d2AKICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvLWJhciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiIHRpdGxlPSIke3RoaXMubGFiZWx9Ij4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tc3BhY2VyIj48L3NwYW4+CiAgICAgICAgJHt0aGlzLmxhbmd1YWdlP3dgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke3RoaXMubGFuZ3VhZ2UudG9VcHBlckNhc2UoKX08L3NwYW4+YDoiIn0KICAgICAgICAke3RoaXMuaXNIb3ZlcmluZyYmay5sZW5ndGg+MTI/d2A8c3BhbiBjbGFzcz0iaW5mby1kZXRhaWwiPkxpbmUgJHt0aGlzLmdldFZpc2libGVMaW5lUmFuZ2Uoay5sZW5ndGgpfTwvc3Bhbj5gOndgPHNwYW4gY2xhc3M9ImluZm8tZGV0YWlsIj4ke2subGVuZ3RofSBsaW5lczwvc3Bhbj5gfQogICAgICA8L2Rpdj4KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3RpdGxlOnRoaXMudGl0bGUsY29udGVudDp0aGlzLmNvbnRlbnQsbGFuZ3VhZ2U6dGhpcy5sYW5ndWFnZX19b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMCx0aGlzLm5vdGVCb2R5RWxlbWVudHx8KHRoaXMubm90ZUJvZHlFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm5vdGUtYm9keSIpKX1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMubm90ZUJvZHlFbGVtZW50JiYodGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsVG9wPTApfW9uVGlsZU1vdXNlTW92ZShrKXtpZighdGhpcy5pc0hvdmVyaW5nfHwhdGhpcy5ub3RlQm9keUVsZW1lbnR8fHRoaXMuY29udGVudC5zcGxpdChgCmApLmxlbmd0aDw9MTIpcmV0dXJuO2xldCBOPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXz1rLmNsaWVudFgtTi5sZWZ0LFM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLF8vTi53aWR0aCkpLE89dGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMubm90ZUJvZHlFbGVtZW50LmNsaWVudEhlaWdodDt0aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxUb3A9UypPfWdldFZpc2libGVMaW5lUmFuZ2Uoayl7aWYoIXRoaXMubm90ZUJvZHlFbGVtZW50KXJldHVybmAxXHUyMDEzMTIgb2YgJHtrfWA7bGV0IE09MTUsTj1NYXRoLmZsb29yKHRoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbFRvcC9NKSsxLF89TWF0aC5mbG9vcih0aGlzLm5vdGVCb2R5RWxlbWVudC5jbGllbnRIZWlnaHQvTSksUz1NYXRoLm1pbihOK18tMSxrKTtyZXR1cm5gJHtOfVx1MjAxMyR7U30gb2YgJHtrfWB9c3RhdGlje3czKGEscil9fTtyZXR1cm4geT1hfSkoKX0pO3ZhciBMdGE9dSgoKT0+e1R0YSgpfSk7dmFyIER0YSwkdGE9dSgoKT0+e3ZlKCk7RHRhPWkoKCk9PntsZXQgdD1be3R5cGU6ImltYWdlIixuYW1lOiJzdW5zZXQuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0xIn0se3R5cGU6ImltYWdlIixuYW1lOiJtb3VudGFpbi5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTIifSx7dHlwZToiaW1hZ2UiLG5hbWU6Im9jZWFuLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MyJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiZm9yZXN0LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209NCJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiY2l0eS5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTUifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImRlc2VydC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTYifV07cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgLnRpbGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Gb2xkZXIgVGlsZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iUGhvdG9zIgogICAgICAgICAgICAuaXRlbXM9JHt0fQogICAgICAgICAgICBsYWJlbD0iNiBwaG90b3MiCiAgICAgICAgICAgIEB0aWxlLWNsaWNrPSR7bj0+Y29uc29sZS5sb2coIkZvbGRlciBjbGlja2VkOiIsbi5kZXRhaWwpfQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgbmFtZT0ibXktcHJvamVjdCIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJub3RlIixuYW1lOiJSRUFETUUubWQifSx7dHlwZToibm90ZSIsbmFtZToicGFja2FnZS5qc29uIn0se3R5cGU6ImZvbGRlciIsbmFtZToic3JjIn0se3R5cGU6ImZvbGRlciIsbmFtZToidGVzdCJ9LHt0eXBlOiJub3RlIixuYW1lOiJ0c2NvbmZpZy5qc29uIn0se3R5cGU6InBkZiIsbmFtZToiZG9jcy5wZGYifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImxvZ28ucG5nIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDAvMTAwP3JhbmRvbT0xMCJ9XX0KICAgICAgICAgICAgbGFiZWw9IlByb2plY3QgZmlsZXMiCiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJNZWRpYSBBc3NldHMiCiAgICAgICAgICAgIC5pdGVtcz0ke1t7dHlwZToidmlkZW8iLG5hbWU6ImludHJvLm1wNCJ9LHt0eXBlOiJhdWRpbyIsbmFtZToiYmFja2dyb3VuZC5tcDMifSx7dHlwZToiaW1hZ2UiLG5hbWU6InRodW1ibmFpbC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTIwIn0se3R5cGU6InBkZiIsbmFtZToic3Rvcnlib2FyZC5wZGYifV19CiAgICAgICAgICAgIGxhYmVsPSJNaXhlZCBtZWRpYSIKICAgICAgICAgID48L2RlZXMtdGh1bWJuYWlsLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5FZGdlIENhc2VzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aHVtYm5haWwtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IkVtcHR5IEZvbGRlciIKICAgICAgICAgICAgLml0ZW1zPSR7W119CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJTaW5nbGUgSXRlbSIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJwZGYiLG5hbWU6InJlcG9ydC5wZGYifV19CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgICAgbmFtZT0iU21hbGwiCiAgICAgICAgICAgIC5pdGVtcz0ke3R9CiAgICAgICAgICA+PC9kZWVzLXRodW1ibmFpbC1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGh1bWJuYWlsLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJEZWZhdWx0IgogICAgICAgICAgICAuaXRlbXM9JHt0fQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRodW1ibmFpbC1mb2xkZXIKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIG5hbWU9IkxhcmdlIgogICAgICAgICAgICAuaXRlbXM9JHt0fQogICAgICAgICAgPjwvZGVlcy10aHVtYm5haWwtZm9sZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9LCJkZW1vIil9KTt2YXIgVTd0LFVyZSxBdGEsRXRhLEl0YT11KCgpPT57dmUoKTtiZigpO3kzKCk7JHRhKCk7VTd0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxVcmU9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEF0YT17cGRmOiJsdWNpZGU6RmlsZVRleHQiLGltYWdlOiJsdWNpZGU6SW1hZ2UiLGF1ZGlvOiJsdWNpZGU6TXVzaWMiLHZpZGVvOiJsdWNpZGU6VmlkZW8iLG5vdGU6Imx1Y2lkZTpGaWxlQ29kZSIsZm9sZGVyOiJsdWNpZGU6Rm9sZGVyIix1bmtub3duOiJsdWNpZGU6RmlsZSJ9LEV0YT0oKCk9PntsZXQgdD1bdWUoImRlZXMtdGh1bWJuYWlsLWZvbGRlciIpXSxlLHI9W10sYSxzPXQxLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGh1bWJuYWlsRm9sZGVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7YXR0cmlidXRlOiExfSldLFU3dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+Im5hbWUiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5uYW1lLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20ubmFtZT12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksVTd0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+Iml0ZW1zImluIG0sImhhcyIpLGdldDppKG09Pm0uaXRlbXMsImdldCIpLHNldDppKChtLHYpPT57bS5pdGVtcz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksVTd0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89RHRhO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5MbyxyZWAKICAgICAgLmZvbGRlci1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDQwIDMwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTQlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZm9sZGVyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTRweCA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDQwIDgwJSA1MCUpIiwiaHNsKDQwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZm9sZGVyLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAyMCUgMjAlKSIsImhzbCgyMTUgMTYlIDgwJSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWdyaWQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgMWZyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweCAxNHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNSAyMCUgOTQlKSIsImhzbCgyMTUgMjAlIDE4JSkiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNjAlKSIsImhzbCgyMTUgMTYlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwtZW1wdHkgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE1IDE1JSA5NiUpIiwiaHNsKDIxNSAyMCUgMTYlKSIpfTsKICAgICAgfQoKICAgIGBdOyNlPVVyZSh0aGlzLG8sIiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoaCl7dGhpcy4jZT1ofSN0PShVcmUodGhpcyxsKSxVcmUodGhpcyxkLFtdKSk7Z2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGl0ZW1zKGgpe3RoaXMuI3Q9aH1yZW5kZXJUaWxlQ29udGVudCgpe2xldCBoPXRoaXMuaXRlbXMuc2xpY2UoMCw0KSxtPTQtaC5sZW5ndGg7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1jb250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItaGVhZGVyIj4KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImZvbGRlci1pY29uIiBpY29uPSJsdWNpZGU6Rm9sZGVyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1uYW1lIj4ke3RoaXMubmFtZXx8IlVudGl0bGVkIEZvbGRlciJ9PC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctZ3JpZCI+CiAgICAgICAgICAke2gubWFwKHY9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY2VsbCI+CiAgICAgICAgICAgICAgJHt2LnRodW1ibmFpbFNyYz93YAogICAgICAgICAgICAgICAgPGltZyBzcmM9IiR7di50aHVtYm5haWxTcmN9IiBhbHQ9IiR7di5uYW1lfSIgLz4KICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249IiR7QXRhW3YudHlwZV18fEF0YS51bmtub3dufSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICAgICR7QXJyYXkuZnJvbSh7bGVuZ3RoOm19KS5tYXAoKCk9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY2VsbCBncmlkLWNlbGwtZW1wdHkiPjwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpGb2xkZXJPcGVuIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk9wZW4gRm9sZGVyPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1yZW5kZXJCb3R0b21CYXIoKXtyZXR1cm4hdGhpcy5sYWJlbCYmIXRoaXMuaXRlbXMubGVuZ3RoPyIiOndgCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtaW5mby1iYXIiPgogICAgICAgICR7dGhpcy5sYWJlbD93YDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIiB0aXRsZT0iJHt0aGlzLmxhYmVsfSI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXNwYWNlciI+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWRldGFpbCI+JHt0aGlzLml0ZW1zLmxlbmd0aH0gaXRlbSR7dGhpcy5pdGVtcy5sZW5ndGghPT0xPyJzIjoiIn08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57bmFtZTp0aGlzLm5hbWUsaXRlbUNvdW50OnRoaXMuaXRlbXMubGVuZ3RoLGl0ZW1zOnRoaXMuaXRlbXN9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxVcmUodGhpcyxmKX1zdGF0aWN7VXJlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBQdGE9dSgoKT0+e0l0YSgpfSk7dmFyIE50YT11KCgpPT57SWVhKCk7UmVhKCk7cWVhKCk7SmVhKCk7ZXRhKCk7dHRhKCk7cnRhKCk7Y3RhKCk7aHRhKCk7dnRhKCk7TXRhKCk7THRhKCk7UHRhKCl9KTt2YXIgT3RhPXUoKCk9PntzcygpfSk7dmFyIFJ0YT11KCgpPT57UTQoKX0pO3ZhciBGdGEsQnRhPXUoKCk9Pnt2ZSgpO0Z0YT1pKCgpPT53YAogICAgPHN0eWxlPgogICAgICAucmVmMSB7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJyZWYxIj48L2Rpdj4KICAgIDxkZWVzLXNwZWVjaGJ1YmJsZSAudGV4dD0ke2AKICAgICAgKipUaGlzIGlzIGEgbG9uZ2VyIG1hcmtkb3duIHRleHQgdGhhdCAgY2FuIGJlIHVzZWQgdGhlIHdyaXRlKiogIAogICAgICBhIGxvbmdlciBkZXNjcmlwdGlvbiBhYm91dCB3aGF0cyBnb2luZyBvbiB0aGUgYXBwICAKICAKICAgICAgKipUaGlzIGlzIGEgc3ViaGVhZGVyKioKICAgICAgYW5kIGFub3RoZXIgdGV4dAogICAgCiAgICBgfT48L2RlZXMtc3BlZWNoYnViYmxlPgogIGAsImRlbW9GdW5jIil9KTt2YXIgUHcsRWMsSHRhLHF0YT11KCgpPT57ZmMoKTt2bigpO0J0YSgpO3ZlKCk7bmMoKTtsdCgpO1B3PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxFYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sSHRhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1zcGVlY2hidWJibGUiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1NwZWVjaGJ1YmJsZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOlN0cmluZ30pXSxQdyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZmZlZEVsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InJlZmZlZEVsZW1lbnQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5yZWZmZWRFbGVtZW50LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MucmVmZmVkRWxlbWVudD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksUHcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJ0ZXh0ImluIFMsImhhcyIpLGdldDppKFM9PlMudGV4dCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnRleHQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxkLGYpLFB3KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4id2F2ZSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLndhdmUsImdldCIpLHNldDppKChTLE8pPT57Uy53YXZlPU99LCJzZXQiKX0sbWV0YWRhdGE6X30saCxtKSxQdyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hbmlmZXN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Im1hbmlmZXN0ZWQiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5tYW5pZmVzdGVkLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MubWFuaWZlc3RlZD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksUHcodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InN0YXR1cyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnN0YXR1cywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnN0YXR1cz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGssTSksUHcobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxyKSxOPWE9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1GdGE7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coXyxTKXtsZXQgTz1hd2FpdCB5bi5jcmVhdGVBbmRTaG93KHtibHVyOiExfSksTD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXNwZWVjaGJ1YmJsZSIpO3JldHVybiBMLndpbmRvd0xheWVyPU8sTC5yZWZmZWRFbGVtZW50PV8sTC50ZXh0PVMsTC5tYW5pZmVzdGVkPSEwLE8uYXBwZW5kQ2hpbGQoTCksTy5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixPLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLndpbmRvd092ZXJsYXkiKS5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixMfSNlPUVjKHRoaXMsbyx2b2lkIDApO2dldCByZWZmZWRFbGVtZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZmZlZEVsZW1lbnQoXyl7dGhpcy4jZT1ffSN0PShFYyh0aGlzLGwpLEVjKHRoaXMsZCx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KF8pe3RoaXMuI3Q9X30jcj0oRWModGhpcyxmKSxFYyh0aGlzLGgsITEpKTtnZXQgd2F2ZSgpe3JldHVybiB0aGlzLiNyfXNldCB3YXZlKF8pe3RoaXMuI3I9X30jYT0oRWModGhpcyxtKSxFYyh0aGlzLGIsITEpKTtnZXQgbWFuaWZlc3RlZCgpe3JldHVybiB0aGlzLiNhfXNldCBtYW5pZmVzdGVkKF8pe3RoaXMuI2E9X30jaT0oRWModGhpcyxnKSxFYyh0aGlzLGssIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN0YXR1cyhfKXt0aGlzLiNpPV99d2luZG93TGF5ZXI9RWModGhpcyxNKTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDsKICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmFycm93IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBoZWlnaHQ6IDE1cHg7CiAgICAgICAgd2lkdGg6IDE1cHg7CiAgICAgICAgbGVmdDogMnB4OwogICAgICAgIHRvcDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5zcGVlY2hidWJibGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1pbi13aWR0aDogMjQwcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLndhdmUgewogICAgICAgIGFuaW1hdGlvbi1uYW1lOiB3YXZlLWFuaW1hdGlvbjsgLyogUmVmZXJzIHRvIHRoZSBuYW1lIG9mIHlvdXIgQGtleWZyYW1lcyBlbGVtZW50IGJlbG93ICovCiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyLjVzOyAvKiBDaGFuZ2UgdG8gc3BlZWQgdXAgb3Igc2xvdyBkb3duICovCiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IC8qIE5ldmVyIHN0b3Agd2F2aW5nIDopICovCiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNzAlIDcwJTsgLyogUGl2b3QgYXJvdW5kIHRoZSBib3R0b20tbGVmdCBwYWxtICovCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHdhdmUtYW5pbWF0aW9uIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgICAgMTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE0ZGVnKTsKICAgICAgICB9IC8qIFRoZSBmb2xsb3dpbmcgZml2ZSB2YWx1ZXMgY2FuIGJlIHBsYXllZCB3aXRoIHRvIG1ha2UgdGhlIHdhdmluZyBtb3JlIG9yIGxlc3MgZXh0cmVtZSAqLwogICAgICAgIDIwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOGRlZyk7CiAgICAgICAgfQogICAgICAgIDMwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNGRlZyk7CiAgICAgICAgfQogICAgICAgIDQwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNGRlZyk7CiAgICAgICAgfQogICAgICAgIDUwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMGRlZyk7CiAgICAgICAgfQogICAgICAgIDYwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9IC8qIFJlc2V0IGZvciB0aGUgbGFzdCBoYWxmIHRvIHBhdXNlICovCiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RoaXMubWFuaWZlc3RlZD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsaWNrfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BlZWNoYnViYmxlIj4KICAgICAgICAgICAgICAgICR7dGhpcy53YXZlP3dgPHNwYW4gY2xhc3M9IndhdmUiPvCfkYs8L3NwYW4+YDp3YGB9CiAgICAgICAgICAgICAgICAke1psLnJlc29sdmUodGhpcy5nZXRIdG1sKCkpfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6d2BgfQogICAgYH1hc3luYyBoYW5kbGVDbGljaygpe2NvbnNvbGUubG9nKCJzcGVlY2hidWJibGUgZ290IGNsaWNrZWQuIil9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy5yZWZmZWRFbGVtZW50fHwodGhpcy5yZWZmZWRFbGVtZW50PXRoaXMucHJldmlvdXNFbGVtZW50U2libGluZyksdGhpcy5tYW5pZmVzdGVkKWF3YWl0IHRoaXMudXBkYXRlUG9zaXRpb24oKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIxIjtlbHNle2xldCBfO3RoaXMucmVmZmVkRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixhc3luYygpPT57Xz1hd2FpdCBOLmNyZWF0ZUFuZFNob3codGhpcy5yZWZmZWRFbGVtZW50LHRoaXMudGV4dCl9KSx0aGlzLnJlZmZlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKCk9PntfLmRlc3Ryb3koKX0pfX1hc3luYyB1cGRhdGVQb3NpdGlvbigpe2xldCBfPXRoaXMucmVmZmVkRWxlbWVudCxTPV8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUudG9wPWAke1MudG9wLTEzfXB4YCx0aGlzLnN0eWxlLmxlZnQ9YCR7Uy5sZWZ0K18uY2xpZW50V2lkdGgrNH1weGAsUy5yaWdodD4yNTAmJih0aGlzLnN0eWxlLndpZHRoPSIyNTBweCIpfWFzeW5jIGdldEh0bWwoKXtpZighdGhpcy50ZXh0KXJldHVybiIiO2xldCBfPVh0LnBsdWdpbnMuc21hcnRzdHJpbmcubm9ybWFsaXplLnN0YW5kYXJkKHRoaXMudGV4dCksUz1hd2FpdCBYdC5wbHVnaW5zLnNtYXJ0bWFya2Rvd24uU21hcnRNYXJrZG93bi5lYXN5TWFya2Rvd25Ub0h0bWwoXyk7cmV0dXJuIEMzZShTKX1hc3luYyBzaG93KCl7fWFzeW5jIGRlc3Ryb3koKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1zdGF0aWN7RWMoYSxyKX19O3JldHVybiBOPWF9KSgpfSk7dmFyIFZ0YT11KCgpPT57cXRhKCl9KTt2YXIganRhPXUoKCk9PntuYygpfSk7dmFyIFV0YT11KCgpPT57T3RhKCk7UnRhKCk7VnRhKCk7anRhKCl9KTt2YXIgV3RhPXUoKCk9Pnt9KTt2YXIgR3RhPXUoKCk9PntXdGEoKX0pO3ZhciBZdGEsTzZlLFI2ZSxXN3QsS3RhLEY2ZSxCNmUsSDZlLHE2ZT11KCgpPT57WXRhPSJodHRwczovL3N0YWNrYmxpdHouY29tIixPNmU9ImNvZGUiLFI2ZT0iZXJyb3IiLFc3dD0iZXJyb3JfZGVzY3JpcHRpb24iLEt0YT0iX193Y19hcGlfYmNfXyIsRjZlPSJfX3djX2FwaV90b2tlbnNfXyIsQjZlPSJfX3djX2FwaV92ZXJpZmllcl9fIixINmU9Il9fd2NfYXBpX3BvcHVwX18ifSk7dmFyIGxnLEc3dD11KCgpPT57bGc9Y2xhc3N7c3RhdGlje2kodGhpcywiVHlwZWRFdmVudFRhcmdldCIpfV9idXM9bmV3IEV2ZW50VGFyZ2V0O2xpc3RlbihlKXtmdW5jdGlvbiByKGEpe2UoYS5kYXRhKX1yZXR1cm4gaShyLCJ3cmFwcGVkTGlzdGVuZXIiKSx0aGlzLl9idXMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksKCk9PnRoaXMuX2J1cy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKX1maXJlRXZlbnQoZSl7dGhpcy5fYnVzLmRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgibWVzc2FnZSIse2RhdGE6ZX0pKX19fSk7ZnVuY3Rpb24gVjZlKCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oRjZlKX1mdW5jdGlvbiBlcmEodCl7cmV0dXJuIFF0YS5saXN0ZW4odCl9ZnVuY3Rpb24gdkZhKCl7bGV0IHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oRjZlKTtpZighdClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIEpTT04ucGFyc2UodCl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHlGYSh0KXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShGNmUsSlNPTi5zdHJpbmdpZnkodCkpfWZ1bmN0aW9uIFh0YSh7Y3JlYXRlZF9hdDp0LGV4cGlyZXNfaW46ZX0pe3JldHVybih0K2UpKjFlM31mdW5jdGlvbiBKdGEodCl7aWYodHlwZW9mIHQhPSJvYmplY3QifHwhdCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgVG9rZW4gUmVzcG9uc2UiKTtpZih0eXBlb2YgdC5hY2Nlc3NfdG9rZW4hPSJzdHJpbmcifHx0eXBlb2YgdC5yZWZyZXNoX3Rva2VuIT0ic3RyaW5nInx8dHlwZW9mIHQuY3JlYXRlZF9hdCE9Im51bWJlciJ8fHR5cGVvZiB0LmV4cGlyZXNfaW4hPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBUb2tlbiBSZXNwb25zZSIpfWZ1bmN0aW9uIHdGYSh0KXtyZXR1cm4gbmV3IFByb21pc2UoZT0+c2V0VGltZW91dChlLHQpKX1mdW5jdGlvbiBrRmEodCl7UXRhLmZpcmVFdmVudCh0KX12YXIgWnRhLFF0YSxOdyxZN3Q9dSgoKT0+e3E2ZSgpO0c3dCgpO1p0YT1uZXcgRXJyb3I7WnRhLnN0YWNrPSIiO1F0YT1uZXcgbGcsTnc9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJUb2tlbnMiKX1vcmlnaW47cmVmcmVzaDthY2Nlc3M7ZXhwaXJlcztfcmV2b2tlZD1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0cnVjdG9yKGUscixhLHMpe3RoaXMub3JpZ2luPWUsdGhpcy5yZWZyZXNoPXIsdGhpcy5hY2Nlc3M9YSx0aGlzLmV4cGlyZXM9c31hc3luYyBhY3RpdmF0ZShlKXtpZih0aGlzLl9yZXZva2VkLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBFcnJvcigiVG9rZW4gcmV2b2tlZCIpO3JldHVybiB0aGlzLmV4cGlyZXM8RGF0ZS5ub3coKSYmIWF3YWl0IHRoaXMuX2ZldGNoTmV3QWNjZXNzVG9rZW4oKT8hMToodGhpcy5fc3luYygpLHRoaXMuX3N0YXJ0UmVmcmVzaFRva2Vuc0xvb3AoZSksITApfWFzeW5jIHJldm9rZShlLHIpe3RoaXMuX3Jldm9rZWQuYWJvcnQoKTt0cnl7aWYoIShhd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvcmV2b2tlYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHt0b2tlbjp0aGlzLnJlZnJlc2gsdG9rZW5fdHlwZV9oaW50OiJyZWZyZXNoX3Rva2VuIixjbGllbnRfaWQ6ZX0pLG1vZGU6ImNvcnMifSkpLm9rKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGxvZ291dCIpfWNhdGNoKGEpe2lmKCFyKXRocm93IGF9VjZlKCl9c3RhdGljIGZyb21TdG9yYWdlKCl7bGV0IGU9dkZhKCk7cmV0dXJuIGU/bmV3IHQoZS5vcmlnaW4sZS5yZWZyZXNoLGUuYWNjZXNzLGUuZXhwaXJlcyk6bnVsbH1zdGF0aWMgYXN5bmMgZnJvbUF1dGhDb2RlKHtlZGl0b3JPcmlnaW46ZSxjbGllbnRJZDpyLGNvZGVWZXJpZmllcjphLGF1dGhDb2RlOnMscmVkaXJlY3RVcmk6bn0pe2xldCBvPWF3YWl0IGZldGNoKGAke2V9L29hdXRoL3Rva2VuYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHtjbGllbnRfaWQ6cixjb2RlOnMsY29kZV92ZXJpZmllcjphLGdyYW50X3R5cGU6ImF1dGhvcml6YXRpb25fY29kZSIscmVkaXJlY3RfdXJpOm59KSxtb2RlOiJjb3JzIn0pO2lmKCFvLm9rKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIHRva2VuOiAke28uc3RhdHVzfWApO2xldCBsPWF3YWl0IG8uanNvbigpO0p0YShsKTtsZXR7YWNjZXNzX3Rva2VuOmMscmVmcmVzaF90b2tlbjpkfT1sLGY9WHRhKGwpO3JldHVybiBuZXcgdChlLGQsYyxmKX1hc3luYyBfZmV0Y2hOZXdBY2Nlc3NUb2tlbigpe3RyeXtsZXQgZT1hd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvdG9rZW5gLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe2dyYW50X3R5cGU6InJlZnJlc2hfdG9rZW4iLHJlZnJlc2hfdG9rZW46dGhpcy5yZWZyZXNofSksbW9kZToiY29ycyIsc2lnbmFsOnRoaXMuX3Jldm9rZWQuc2lnbmFsfSk7aWYoIWUub2spdGhyb3cgWnRhO2xldCByPWF3YWl0IGUuanNvbigpO0p0YShyKTtsZXR7YWNjZXNzX3Rva2VuOmEscmVmcmVzaF90b2tlbjpzfT1yLG49WHRhKHIpO3JldHVybiB0aGlzLmFjY2Vzcz1hLHRoaXMuZXhwaXJlcz1uLHRoaXMucmVmcmVzaD1zLCEwfWNhdGNoe3JldHVybiBWNmUoKSwhMX19X3N5bmMoKXt5RmEodGhpcyksa0ZhKHRoaXMuYWNjZXNzKX1hc3luYyBfc3RhcnRSZWZyZXNoVG9rZW5zTG9vcChlKXtmb3IoOzspe2xldCByPXRoaXMuZXhwaXJlcy1EYXRlLm5vdygpLTFlMztpZihhd2FpdCB3RmEoTWF0aC5tYXgociwxZTMpKSx0aGlzLl9yZXZva2VkLnNpZ25hbC5hYm9ydGVkKXJldHVybjtpZighdGhpcy5fZmV0Y2hOZXdBY2Nlc3NUb2tlbigpKXtlKCk7cmV0dXJufXRoaXMuX3N5bmMoKX19fTtpKFY2ZSwiY2xlYXJUb2tlbnNJblN0b3JhZ2UiKTtpKGVyYSwiYWRkQWNjZXNzVG9rZW5DaGFuZ2VkTGlzdGVuZXIiKTtpKHZGYSwicmVhZFRva2Vuc0Zyb21TdG9yYWdlIik7aSh5RmEsInBlcnNpc3RUb2tlbnNJblN0b3JhZ2UiKTtpKFh0YSwiZ2V0RXhwaXJlc0Zyb21Ub2tlblJlc3BvbnNlIik7aShKdGEsImFzc2VydFRva2VuUmVzcG9uc2UiKTtpKHdGYSwid2FpdCIpO2koa0ZhLCJmaXJlQWNjZXNzVG9rZW5DaGFuZ2VkIil9KTt2YXIgSzd0LGo2ZSxrMyxaN3Q9dSgoKT0+e3E2ZSgpO0s3dD17fSxqNmU9bnVsbCxrMz17Z2V0IGVkaXRvck9yaWdpbigpe3JldHVybiBqNmU9PW51bGwmJihqNmU9bmV3IFVSTChnbG9iYWxUaGlzLldFQkNPTlRBSU5FUl9BUElfSUZSQU1FX1VSTD8/WXRhKS5vcmlnaW4pLGo2ZX0sc2V0IGVkaXRvck9yaWdpbih0KXtqNmU9bmV3IFVSTCh0KS5vcmlnaW59LHNldFF1ZXJ5UGFyYW0odCxlKXtLN3RbdF09ZX0sZ2V0IHVybCgpe2xldCB0PW5ldyBVUkwodGhpcy5lZGl0b3JPcmlnaW4pO3QucGF0aG5hbWU9Ii9oZWFkbGVzcyI7Zm9yKGxldCBlIGluIEs3dCl0LnNlYXJjaFBhcmFtcy5zZXQoZSxLN3RbZV0pO3JldHVybiB0LnNlYXJjaFBhcmFtcy5zZXQoInZlcnNpb24iLCIxLjYuMSIpLHR9fX0pO2FzeW5jIGZ1bmN0aW9uIHRyYSh0KXtsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCkscj1uZXcgVWludDhBcnJheShhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZSkpO3JldHVybiBidG9hKHIucmVkdWNlKChhLHMpPT5hK1N0cmluZy5mcm9tQ29kZVBvaW50KHMpLCIiKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBycmEoKXtsZXQgdD1uZXcgVWludDhBcnJheSg5Nik7Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyh0KTtsZXQgZT0iIjtmb3IobGV0IHI9MDtyPDMyOysrcillKz1TRmEodFszKnIrMF0sdFszKnIrMV0sdFszKnIrMl0pO3JldHVybiBlfWZ1bmN0aW9uIFNGYSh0LGUscil7bGV0IGE9dD4+MixzPSh0JjMpPDw0fGU+PjQsbj1lJjE1fChyJjE5Mik+PjIsbz1yJjYzO3JldHVyblthLHMsbixvXS5tYXAoTUZhKS5qb2luKCIiKX1mdW5jdGlvbiBNRmEodCl7bGV0IGU7cmV0dXJuIHQ8MjY/ZT10KzY1OnQ8NTI/ZT10LTI2Kzk3OnQ8NjI/ZT10LTUyKzQ4OmU9dD09PTYyPzMwOjQ1LFN0cmluZy5mcm9tQ2hhckNvZGUoZSl9dmFyIGFyYT11KCgpPT57aSh0cmEsIlMyNTYiKTtpKHJyYSwibmV3Q29kZVZlcmlmaWVyIik7aShTRmEsIm5leHRGb3VyQ2hhcnMiKTtpKE1GYSwidW5yZXNlcnZlZENoYXJhY3RlcnMiKX0pO2Z1bmN0aW9uIGlyYSgpe2xldCB0LGU7ZnVuY3Rpb24gcigpe2U9bmV3IFByb21pc2UoYT0+dD1hKX1yZXR1cm4gaShyLCJyZXNldCIpLHIoKSx7Z2V0IHByb21pc2UoKXtyZXR1cm4gZX0scmVzb2x2ZShhKXtyZXR1cm4gdChhKX0scmVzZXQ6cn19dmFyIHNyYT11KCgpPT57aShpcmEsInJlc2V0dGFibGVQcm9taXNlIil9KTtmdW5jdGlvbiBXcmUodCl7dnIuYnJvYWRjYXN0Q2hhbm5lbCYmKHZyLmJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UodCksbG9jYWxTdG9yYWdlLmdldEl0ZW0oSDZlKT09PSJ0cnVlIiYmdC50eXBlIT09ImF1dGgtbG9nb3V0IiYmKGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKEg2ZSksc2V0VGltZW91dCgoKT0+e3dpbmRvdy5jbG9zZSgpfSkpKX1mdW5jdGlvbiBRN3QoKXtjZy5maXJlRXZlbnQoKSxXcmUoe3R5cGU6ImF1dGgtbG9nb3V0In0pfWZ1bmN0aW9uIG9yYSgpe3JldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZn1hc3luYyBmdW5jdGlvbiBscmEoKXtsZXQgdD1ycmEoKTtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShCNmUsdCk7bGV0IGU9YXdhaXQgdHJhKHQpLHI9bmV3IFVSTCgiL29hdXRoL2F1dGhvcml6ZSIsdnIuZWRpdG9yT3JpZ2luKSx7c2VhcmNoUGFyYW1zOmF9PXI7cmV0dXJuIGEuYXBwZW5kKCJyZXNwb25zZV90eXBlIiwiY29kZSIpLGEuYXBwZW5kKCJjbGllbnRfaWQiLHZyLmNsaWVudElkKSxhLmFwcGVuZCgicmVkaXJlY3RfdXJpIixvcmEoKSksYS5hcHBlbmQoInNjb3BlIix2ci5vYXV0aFNjb3BlKSxhLmFwcGVuZCgiY29kZV9jaGFsbGVuZ2UiLGUpLGEuYXBwZW5kKCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiLCJTMjU2Iiksci50b1N0cmluZygpfWZ1bmN0aW9uIFg3dCh0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIk9vcHMhIFRva2VucyBpcyBub3QgZGVmaW5lZCB3aGVuIGl0IGFsd2F5cyBzaG91bGQgYmUuIil9dmFyIHZyLG5yYSxjZyxjcmEsSjd0PXUoKCk9PntZN3QoKTtxNmUoKTtaN3QoKTthcmEoKTtzcmEoKTtHN3QoKTt2cj17aW5pdGlhbGl6ZWQ6ITEsYm9vdENhbGxlZDohMSxhdXRoQ29tcGxldGU6aXJhKCksY2xpZW50SWQ6IiIsb2F1dGhTY29wZToiIixicm9hZGNhc3RDaGFubmVsOm51bGwsZ2V0IGVkaXRvck9yaWdpbigpe3JldHVybiBrMy5lZGl0b3JPcmlnaW59LHRva2VuczpudWxsfSxucmE9bmV3IGxnLGNnPW5ldyBsZztpKFdyZSwiYnJvYWRjYXN0TWVzc2FnZSIpO2NyYT17aW5pdCh7ZWRpdG9yT3JpZ2luOnQsY2xpZW50SWQ6ZSxzY29wZTpyfSl7aWYodnIuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJJbml0IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlIik7aWYoITAmJnZyLmJvb3RDYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJgYXV0aC5pbml0YCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBiZWZvcmUgYFdlYkNvbnRhaW5lci5ib290YCIpO3ZyLmluaXRpYWxpemVkPSEwLHZyLnRva2Vucz1Ody5mcm9tU3RvcmFnZSgpLHZyLmNsaWVudElkPWUsdnIub2F1dGhTY29wZT1yLHZyLmJyb2FkY2FzdENoYW5uZWw9bmV3IEJyb2FkY2FzdENoYW5uZWwoS3RhKSxrMy5zZXRRdWVyeVBhcmFtKCJjbGllbnRfaWQiLGUpLHQmJihrMy5lZGl0b3JPcmlnaW49bmV3IFVSTCh0KS5vcmlnaW4pLGNnLmxpc3RlbigoKT0+dnIuYXV0aENvbXBsZXRlLnJlc2V0KCkpLHZyLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscyk7YXN5bmMgZnVuY3Rpb24gcyhjKXtsZXQgZD1jLmRhdGE7aWYoZC50eXBlPT09ImF1dGgtY29tcGxldGUiKXt2ci50b2tlbnM9TncuZnJvbVN0b3JhZ2UoKSxhd2FpdCB2ci50b2tlbnMuYWN0aXZhdGUoUTd0KSx2ci5hdXRoQ29tcGxldGUucmVzb2x2ZSgpO3JldHVybn1pZihkLnR5cGU9PT0iYXV0aC1mYWlsZWQiKXtucmEuZmlyZUV2ZW50KGQpO3JldHVybn1pZihkLnR5cGU9PT0iYXV0aC1sb2dvdXQiKXtjZy5maXJlRXZlbnQoKTtyZXR1cm59fWlmKGkocywib25DaGFubmVsTWVzc2FnZSIpLHZyLnRva2Vucyl7bGV0IGM9dnIudG9rZW5zO2lmKGMub3JpZ2luPT09dnIuZWRpdG9yT3JpZ2luKXJldHVybihhc3luYygpPT57aWYoIWF3YWl0IGMuYWN0aXZhdGUoUTd0KSl7aWYodnIudG9rZW5zIT09YylyZXR1cm47Y2cuZmlyZUV2ZW50KCk7cmV0dXJufXZyLmF1dGhDb21wbGV0ZS5yZXNvbHZlKCl9KSgpLHtzdGF0dXM6ImF1dGhvcml6ZWQifTtWNmUoKSx2ci50b2tlbnM9bnVsbH1sZXQgbj1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx7c2VhcmNoUGFyYW1zOm99PW4sbD1pKCgpPT53aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsbiksInVwZGF0ZVVSTCIpO2lmKG8uaGFzKFI2ZSkpe2xldCBjPW8uZ2V0KFI2ZSksZD1vLmdldChXN3QpO3JldHVybiBvLmRlbGV0ZShSNmUpLG8uZGVsZXRlKFc3dCksbCgpLFdyZSh7dHlwZToiYXV0aC1mYWlsZWQiLGVycm9yOmMsZGVzY3JpcHRpb246ZH0pLHtzdGF0dXM6ImF1dGgtZmFpbGVkIixlcnJvcjpjLGRlc2NyaXB0aW9uOmR9fWlmKG8uaGFzKE82ZSkpe2xldCBjPW8uZ2V0KE82ZSksZD12ci5lZGl0b3JPcmlnaW47by5kZWxldGUoTzZlKSxsKCk7bGV0IGY9bG9jYWxTdG9yYWdlLmdldEl0ZW0oQjZlKTtyZXR1cm4gZj8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oQjZlKSxOdy5mcm9tQXV0aENvZGUoe2VkaXRvck9yaWdpbjpkLGNsaWVudElkOnZyLmNsaWVudElkLGF1dGhDb2RlOmMsY29kZVZlcmlmaWVyOmYscmVkaXJlY3RVcmk6b3JhKCl9KS50aGVuKGFzeW5jIHA9PntpZih2ci50b2tlbnM9cCxYN3QodnIudG9rZW5zKSwhYXdhaXQgdnIudG9rZW5zLmFjdGl2YXRlKFE3dCkpdGhyb3cgbmV3IEVycm9yO3ZyLmF1dGhDb21wbGV0ZS5yZXNvbHZlKCksV3JlKHt0eXBlOiJhdXRoLWNvbXBsZXRlIn0pfSkuY2F0Y2gocD0+e2NvbnNvbGUuZXJyb3IocCksY2cuZmlyZUV2ZW50KCksV3JlKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX0pLHtzdGF0dXM6ImF1dGhvcml6ZWQifSk6e3N0YXR1czoibmVlZC1hdXRoIn19cmV0dXJue3N0YXR1czoibmVlZC1hdXRoIn19LGFzeW5jIHN0YXJ0QXV0aEZsb3coe3BvcHVwOnR9PXt9KXtpZighdnIuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJhdXRoLmluaXQgbXVzdCBiZSBjYWxsZWQgZmlyc3QiKTtpZih0KXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShINmUsInRydWUiKTtsZXQgZT01MDAscj02MjAsYT13aW5kb3cuc2NyZWVuTGVmdCsod2luZG93Lm91dGVyV2lkdGgtcikvMixzPXdpbmRvdy5zY3JlZW5Ub3ArKHdpbmRvdy5vdXRlckhlaWdodC1lKS8yO3dpbmRvdy5vcGVuKGF3YWl0IGxyYSgpLCJfYmxhbmsiLGBwb3B1cCx3aWR0aD0ke3J9LGhlaWdodD0ke2V9LGxlZnQ9JHthfSx0b3A9JHtzfWApfWVsc2Ugd2luZG93LmxvY2F0aW9uLmhyZWY9YXdhaXQgbHJhKCl9LGFzeW5jIGxvZ291dCh7aWdub3JlUmV2b2tlRXJyb3I6dH09e30pe2F3YWl0IHZyLnRva2Vucz8ucmV2b2tlKHZyLmNsaWVudElkLHQ/PyExKSxjZy5maXJlRXZlbnQoKSxXcmUoe3R5cGU6ImF1dGgtbG9nb3V0In0pfSxsb2dnZWRJbigpe3JldHVybiB2ci5hdXRoQ29tcGxldGUucHJvbWlzZX0sb24odCxlKXtzd2l0Y2godCl7Y2FzZSJhdXRoLWZhaWxlZCI6cmV0dXJuIG5yYS5saXN0ZW4oZSk7Y2FzZSJsb2dnZWQtb3V0IjpyZXR1cm4gY2cubGlzdGVuKGUpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBldmVudCB0eXBlICcke3R9Jy5gKX19fTtpKFE3dCwib25GYWlsZWRUb2tlblJlZnJlc2giKTtpKG9yYSwiZGVmYXVsdFJlZGlyZWN0VXJpIik7aShscmEsImdlbmVyYXRlT0F1dGhSZXF1ZXN0Iik7aShYN3QsImFzc2VydEF1dGhUb2tlbnMiKX0pO3ZhciBTMyxVNmU9dSgoKT0+eyhmdW5jdGlvbih0KXt0LlVuY2F1Z2h0RXhjZXB0aW9uPSJQUkVWSUVXX1VOQ0FVR0hUX0VYQ0VQVElPTiIsdC5VbmhhbmRsZWRSZWplY3Rpb249IlBSRVZJRVdfVU5IQU5ETEVEX1JFSkVDVElPTiIsdC5Db25zb2xlRXJyb3I9IlBSRVZJRVdfQ09OU09MRV9FUlJPUiJ9KShTM3x8KFMzPXt9KSl9KTtmdW5jdGlvbiBhOXQodCxlPXNlbGYpe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsaShmdW5jdGlvbiByKGEpe2lmKCFhfHwhYS5kYXRhKXJldHVybjtsZXR7aWQ6cyx0eXBlOm4scGF0aDpvfT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxhLmRhdGEpLGw9KGEuZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAoZGcpLGM7dHJ5e2xldCBkPW8uc2xpY2UoMCwtMSkucmVkdWNlKChwLGgpPT5wW2hdLHQpLGY9by5yZWR1Y2UoKHAsaCk9PnBbaF0sdCk7c3dpdGNoKG4pe2Nhc2UgMDpjPWY7YnJlYWs7Y2FzZSAxOmRbby5zbGljZSgtMSlbMF1dPWRnKGEuZGF0YS52YWx1ZSksYz0hMDticmVhaztjYXNlIDI6Yz1mLmFwcGx5KGQsbCk7YnJlYWs7Y2FzZSAzOntsZXQgcD1uZXcgZiguLi5sKTtjPXhyYShwKX1icmVhaztjYXNlIDQ6e2xldHtwb3J0MTpwLHBvcnQyOmh9PW5ldyBNZXNzYWdlQ2hhbm5lbDthOXQodCxoKSxjPWJyYShwLFtwXSl9YnJlYWs7Y2FzZSA1OmM9dm9pZCAwO2JyZWFrfX1jYXRjaChkKXtjPXt2YWx1ZTpkLFt0OXRdOjB9fVByb21pc2UucmVzb2x2ZShjKS5jYXRjaChkPT4oe3ZhbHVlOmQsW3Q5dF06MH0pKS50aGVuKGQ9PntsZXRbZixwXT1zOXQoZCk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZikse2lkOnN9KSxwKSxuPT09NSYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksZnJhKGUpKX0pfSwiY2FsbGJhY2siKSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIExGYSh0KXtyZXR1cm4gdC5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBmcmEodCl7TEZhKHQpJiZ0LmNsb3NlKCl9ZnVuY3Rpb24gaHJhKHQsZSl7cmV0dXJuIGk5dCh0LFtdLGUpfWZ1bmN0aW9uIFc2ZSh0KXtpZih0KXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gaTl0KHQsZT1bXSxyPWZ1bmN0aW9uKCl7fSl7bGV0IGE9ITEscz1uZXcgUHJveHkocix7Z2V0KG4sbyl7aWYoVzZlKGEpLG89PT11cmEpcmV0dXJuKCk9Pk93KHQse3R5cGU6NSxwYXRoOmUubWFwKGw9PmwudG9TdHJpbmcoKSl9KS50aGVuKCgpPT57ZnJhKHQpLGE9ITB9KTtpZihvPT09InRoZW4iKXtpZihlLmxlbmd0aD09PTApcmV0dXJue3RoZW46aSgoKT0+cywidGhlbiIpfTtsZXQgbD1Pdyh0LHt0eXBlOjAscGF0aDplLm1hcChjPT5jLnRvU3RyaW5nKCkpfSkudGhlbihkZyk7cmV0dXJuIGwudGhlbi5iaW5kKGwpfXJldHVybiBpOXQodCxbLi4uZSxvXSl9LHNldChuLG8sbCl7VzZlKGEpO2xldFtjLGRdPXM5dChsKTtyZXR1cm4gT3codCx7dHlwZToxLHBhdGg6Wy4uLmUsb10ubWFwKGY9PmYudG9TdHJpbmcoKSksdmFsdWU6Y30sZCkudGhlbihkZyl9LGFwcGx5KG4sbyxsKXtXNmUoYSk7bGV0IGM9ZVtlLmxlbmd0aC0xXTtpZihjPT09ZHJhKXJldHVybiBPdyh0LHt0eXBlOjR9KS50aGVuKGRnKTtpZihjPT09ImJpbmQiKXJldHVybiBpOXQodCxlLnNsaWNlKDAsLTEpKTtsZXRbZCxmXT1tcmEobCk7cmV0dXJuIE93KHQse3R5cGU6MixwYXRoOmUubWFwKHA9PnAudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OmR9LGYpLnRoZW4oZGcpfSxjb25zdHJ1Y3QobixvKXtXNmUoYSk7bGV0W2wsY109bXJhKG8pO3JldHVybiBPdyh0LHt0eXBlOjMscGF0aDplLm1hcChkPT5kLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpsfSxjKS50aGVuKGRnKX19KTtyZXR1cm4gc31mdW5jdGlvbiBERmEodCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sdCl9ZnVuY3Rpb24gbXJhKHQpe2xldCBlPXQubWFwKHM5dCk7cmV0dXJuW2UubWFwKHI9PnJbMF0pLERGYShlLm1hcChyPT5yWzFdKSldfWZ1bmN0aW9uIGJyYSh0LGUpe3JldHVybiBncmEuc2V0KHQsZSksdH1mdW5jdGlvbiB4cmEodCl7cmV0dXJuIE9iamVjdC5hc3NpZ24odCx7W2U5dF06ITB9KX1mdW5jdGlvbiAkRmEodCxlPXNlbGYscj0iKiIpe3JldHVybntwb3N0TWVzc2FnZTppKChhLHMpPT50LnBvc3RNZXNzYWdlKGEscixzKSwicG9zdE1lc3NhZ2UiKSxhZGRFdmVudExpc3RlbmVyOmUuYWRkRXZlbnRMaXN0ZW5lci5iaW5kKGUpLHJlbW92ZUV2ZW50TGlzdGVuZXI6ZS5yZW1vdmVFdmVudExpc3RlbmVyLmJpbmQoZSl9fWZ1bmN0aW9uIHM5dCh0KXtmb3IobGV0W2Uscl1vZiByOXQpaWYoci5jYW5IYW5kbGUodCkpe2xldFthLHNdPXIuc2VyaWFsaXplKHQpO3JldHVyblt7dHlwZTozLG5hbWU6ZSx2YWx1ZTphfSxzXX1yZXR1cm5be3R5cGU6MCx2YWx1ZTp0fSxncmEuZ2V0KHQpfHxbXV19ZnVuY3Rpb24gZGcodCl7c3dpdGNoKHQudHlwZSl7Y2FzZSAzOnJldHVybiByOXQuZ2V0KHQubmFtZSkuZGVzZXJpYWxpemUodC52YWx1ZSk7Y2FzZSAwOnJldHVybiB0LnZhbHVlfX1mdW5jdGlvbiBPdyh0LGUscil7cmV0dXJuIG5ldyBQcm9taXNlKGE9PntsZXQgcz1BRmEoKTt0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGkoZnVuY3Rpb24gbihvKXshby5kYXRhfHwhby5kYXRhLmlkfHxvLmRhdGEuaWQhPT1zfHwodC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKSxhKG8uZGF0YSkpfSwibCIpKSx0LnN0YXJ0JiZ0LnN0YXJ0KCksdC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpzfSxlKSxyKX0pfWZ1bmN0aW9uIEFGYSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9dmFyIENGYSx6RmEsZDIsZTl0LGRyYSx1cmEsdDl0LHByYSxfRmEsVEZhLHI5dCxncmEsdnJhPXUoKCk9PntDRmE9T2JqZWN0LmRlZmluZVByb3BlcnR5LHpGYT1pKCh0LGUpPT57Zm9yKHZhciByIGluIGUpQ0ZhKHQscix7Z2V0OmVbcl0sZW51bWVyYWJsZTohMH0pfSwiX19leHBvcnQiKSxkMj17fTt6RmEoZDIse2NyZWF0ZUVuZHBvaW50OmkoKCk9PmRyYSwiY3JlYXRlRW5kcG9pbnQiKSxleHBvc2U6aSgoKT0+YTl0LCJleHBvc2UiKSxwcm94eTppKCgpPT54cmEsInByb3h5IikscHJveHlNYXJrZXI6aSgoKT0+ZTl0LCJwcm94eU1hcmtlciIpLHJlbGVhc2VQcm94eTppKCgpPT51cmEsInJlbGVhc2VQcm94eSIpLHRyYW5zZmVyOmkoKCk9PmJyYSwidHJhbnNmZXIiKSx0cmFuc2ZlckhhbmRsZXJzOmkoKCk9PnI5dCwidHJhbnNmZXJIYW5kbGVycyIpLHdpbmRvd0VuZHBvaW50OmkoKCk9PiRGYSwid2luZG93RW5kcG9pbnQiKSx3cmFwOmkoKCk9PmhyYSwid3JhcCIpfSk7ZTl0PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLGRyYT1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSx1cmE9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLHQ5dD1TeW1ib2woIkNvbWxpbmsudGhyb3duIikscHJhPWkodD0+dHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbHx8dHlwZW9mIHQ9PSJmdW5jdGlvbiIsImlzT2JqZWN0IiksX0ZhPXtjYW5IYW5kbGU6aSh0PT5wcmEodCkmJnRbZTl0XSwiY2FuSGFuZGxlIiksc2VyaWFsaXplKHQpe2xldHtwb3J0MTplLHBvcnQyOnJ9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gYTl0KHQsZSksW3IsW3JdXX0sZGVzZXJpYWxpemUodCl7cmV0dXJuIHQuc3RhcnQoKSxocmEodCl9fSxURmE9e2NhbkhhbmRsZTppKHQ9PnByYSh0KSYmdDl0IGluIHQsImNhbkhhbmRsZSIpLHNlcmlhbGl6ZSh7dmFsdWU6dH0pe2xldCBlO3JldHVybiB0IGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTp0Lm1lc3NhZ2UsbmFtZTp0Lm5hbWUsc3RhY2s6dC5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6dH0sW2UsW11dfSxkZXNlcmlhbGl6ZSh0KXt0aHJvdyB0LmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IodC52YWx1ZS5tZXNzYWdlKSx0LnZhbHVlKTp0LnZhbHVlfX0scjl0PW5ldyBNYXAoW1sicHJveHkiLF9GYV0sWyJ0aHJvdyIsVEZhXV0pO2koYTl0LCJleHBvc2UiKTtpKExGYSwiaXNNZXNzYWdlUG9ydCIpO2koZnJhLCJjbG9zZUVuZFBvaW50Iik7aShocmEsIndyYXAiKTtpKFc2ZSwidGhyb3dJZlByb3h5UmVsZWFzZWQiKTtpKGk5dCwiY3JlYXRlUHJveHkiKTtpKERGYSwibXlGbGF0Iik7aShtcmEsInByb2Nlc3NBcmd1bWVudHMiKTtncmE9bmV3IFdlYWtNYXA7aShicmEsInRyYW5zZmVyIik7aSh4cmEsInByb3h5Iik7aSgkRmEsIndpbmRvd0VuZHBvaW50Iik7aShzOXQsInRvV2lyZVZhbHVlIik7aShkZywiZnJvbVdpcmVWYWx1ZSIpO2koT3csInJlcXVlc3RSZXNwb25zZU1lc3NhZ2UiKTtpKEFGYSwiZ2VuZXJhdGVVVUlEIil9KTt2YXIgeXJhPXUoKCk9Pnt9KTtmdW5jdGlvbiBuOXQodCl7cmV0dXJuISh0PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCJ8fCEoInR5cGUiaW4gdCl8fCFFRmEuaW5jbHVkZXModC50eXBlKSl9dmFyIEVGYSx3cmE9dSgoKT0+e1U2ZSgpO0VGYT1bUzMuQ29uc29sZUVycm9yLFMzLlVuY2F1Z2h0RXhjZXB0aW9uLFMzLlVuaGFuZGxlZFJlamVjdGlvbl07aShuOXQsImlzUHJldmlld01lc3NhZ2UiKX0pO3ZhciBvOXQ9dSgoKT0+e3lyYSgpO1U2ZSgpO3dyYSgpfSk7ZnVuY3Rpb24gdWcodCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gdD9PYmplY3QuYXNzaWduKGUsdCk6ZX12YXIga3JhPXUoKCk9PntpKHVnLCJudWxsUHJvdG90eXBlIil9KTtmdW5jdGlvbiBsOXQodCl7bGV0IGU9e2Q6e319O2ZvcihsZXQgciBvZiBPYmplY3Qua2V5cyh0KSl7bGV0IGE9dFtyXTtpZigiZmlsZSJpbiBhKXtpZigic3ltbGluayJpbiBhLmZpbGUpe2UuZFtyXT17Zjp7bDphLmZpbGUuc3ltbGlua319O2NvbnRpbnVlfWxldCBuPWEuZmlsZS5jb250ZW50cyxvPXR5cGVvZiBuPT0ic3RyaW5nIj9uOklGYS5kZWNvZGUobiksbD10eXBlb2Ygbj09InN0cmluZyI/e306e2I6ITB9O2UuZFtyXT17Zjp7YzpvLC4uLmx9fTtjb250aW51ZX1sZXQgcz1sOXQoYS5kaXJlY3RvcnkpO2UuZFtyXT1zfXJldHVybiBlfWZ1bmN0aW9uIGM5dCh0KXtsZXQgZT11ZygpO2lmKCJmImluIHQpdGhyb3cgbmV3IEVycm9yKCJJdCBpcyBub3QgcG9zc2libGUgdG8gZXhwb3J0IGEgc2luZ2xlIGZpbGUgaW4gdGhlIEpTT04gZm9ybWF0LiIpO2lmKCJkImluIHQpZm9yKGxldCByIG9mIE9iamVjdC5rZXlzKHQuZCkpe2xldCBhPXQuZFtyXTsiZCJpbiBhP2Vbcl09dWcoe2RpcmVjdG9yeTpjOXQoYSl9KToiZiJpbiBhJiYoImMiaW4gYS5mP2Vbcl09dWcoe2ZpbGU6dWcoe2NvbnRlbnRzOmEuZi5iP1BGYShhLmYuYyk6YS5mLmN9KX0pOiJsImluIGEuZiYmKGVbcl09dWcoe2ZpbGU6dWcoe3N5bWxpbms6YS5mLmx9KX0pKSl9cmV0dXJuIGV9ZnVuY3Rpb24gUEZhKHQpe2xldCBlPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKyllW3JdPXRbcl0uY2hhckNvZGVBdCgwKTtyZXR1cm4gZX12YXIgSUZhLFNyYT11KCgpPT57a3JhKCk7SUZhPW5ldyBUZXh0RGVjb2RlcigibGF0aW4xIik7aShsOXQsInRvSW50ZXJuYWxGaWxlU3lzdGVtVHJlZSIpO2koYzl0LCJ0b0V4dGVybmFsRmlsZVN5c3RlbVRyZWUiKTtpKFBGYSwiZnJvbUJpbmFyeVN0cmluZyIpfSk7ZnVuY3Rpb24gbUMxKHQpe2lmKHZyLmJvb3RDYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJgY29uZmlndXJlQVBJS2V5YCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBiZWZvcmUgYFdlYkNvbnRhaW5lci5ib290YCIpO2szLnNldFF1ZXJ5UGFyYW0oImNsaWVudF9pZCIsdCl9YXN5bmMgZnVuY3Rpb24gRkZhKHQpe2xldHtzZXJ2ZXJQcm9taXNlOmV9PUJGYSh0KSxhPWF3YWl0KGF3YWl0IGUpLmJ1aWxkKHtob3N0OndpbmRvdy5sb2NhdGlvbi5ob3N0LHZlcnNpb246IjEuNi4xIix3b3JrZGlyTmFtZTp0LndvcmtkaXJOYW1lLGZvcndhcmRQcmV2aWV3RXJyb3JzOnQuZm9yd2FyZFByZXZpZXdFcnJvcnN9KSxbcyxuLG9dPWF3YWl0IFByb21pc2UuYWxsKFthLmZzKCksYS5wcmV2aWV3U2NyaXB0KCksYS5ydW50aW1lSW5mbygpXSk7cmV0dXJuIG5ldyBHcmUoYSxzLG4sbyl9ZnVuY3Rpb24gbTl0KHQpe2lmKHQhPW51bGwpcmV0dXJuIGU9PntlIGluc3RhbmNlb2YgVWludDhBcnJheT90KE1yYS5kZWNvZGUoZSkpOmU9PW51bGwmJnQobnVsbCl9fWZ1bmN0aW9uIEs2ZSh0KXtpZih0IT1udWxsKXJldHVybiBkMi5wcm94eSh0KX1mdW5jdGlvbiBCRmEodCl7aWYoWTZlIT1udWxsKXJldHVybiB0LmNvZXAhPT1kOXQuY29lcCYmKGNvbnNvbGUud2FybihgQXR0ZW1wdGluZyB0byBib290IFdlYkNvbnRhaW5lciB3aXRoICdjb2VwOiAke3QuY29lcH0nYCksY29uc29sZS53YXJuKGBGaXJzdCBib290IGhhZCAnY29lcDogJHtkOXQuY29lcH0nLCBuZXcgc2V0dGluZ3Mgd2lsbCBub3QgdGFrZSBlZmZlY3QhYCkpLHtzZXJ2ZXJQcm9taXNlOlk2ZX07dC5jb2VwJiZrMy5zZXRRdWVyeVBhcmFtKCJjb2VwIix0LmNvZXApLHQuZXhwZXJpbWVudGFsTm9kZSYmazMuc2V0UXVlcnlQYXJhbSgiZXhwZXJpbWVudGFsX25vZGUiLCIxIik7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7ZS5zdHlsZS5kaXNwbGF5PSJub25lIixlLnNldEF0dHJpYnV0ZSgiYWxsb3ciLCJjcm9zcy1vcmlnaW4taXNvbGF0ZWQiKTtsZXQgcj1rMy51cmw7ZS5zcmM9ci50b1N0cmluZygpO2xldHtvcmlnaW46YX09cjtyZXR1cm4gZDl0PXsuLi50fSxZNmU9bmV3IFByb21pc2Uocz0+e2xldCBuPWkobz0+e2lmKG8ub3JpZ2luIT09YSlyZXR1cm47bGV0e2RhdGE6bH09bztpZihsLnR5cGU9PT0iaW5pdCIpe3MoZDIud3JhcChvLnBvcnRzWzBdKSk7cmV0dXJufWlmKGwudHlwZT09PSJ3YXJuaW5nIil7Y29uc29sZVtsLmxldmVsXS5jYWxsKGNvbnNvbGUsbC5tZXNzYWdlKTtyZXR1cm59fSwib25NZXNzYWdlIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG4pfSksZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZSxudWxsKSx7c2VydmVyUHJvbWlzZTpZNmV9fWZ1bmN0aW9uIEhGYSh0KXtyZXR1cm4gdHlwZW9mIHRbMF09PSJzdHJpbmcifWZ1bmN0aW9uIHFGYSh0KXtyZXR1cm4gdFswXWluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBWRmEoKXtsZXQgdD1udWxsO3JldHVybntzdHJlYW06bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydChhKXt0PWF9fSkscHVzaDppKGE9PnthIT1udWxsP3Q/LmVucXVldWUoYSk6KHQ/LmNsb3NlKCksdD1udWxsKX0sInB1c2giKX19ZnVuY3Rpb24gakZhKHQpe2xldCBlPSExLHI9aSgoKT0+e30sInVuc3Vic2NyaWJlIik7cmV0dXJue3N1YnNjcmliZShzKXtyZXR1cm4gcy50aGVuKG49PntyPW4sZSYmcigpfSksKCk9PntlPSEwLHIoKX19LGxpc3RlbmVyOmkoKCguLi5zKT0+e2V8fHQoLi4ucyl9KSwid3JhcHBlZCIpfX12YXIgaEMxLEc2ZSxZNmUsZDl0LE1yYSxORmEsR3JlLE9GYSxSRmEsdTl0LHA5dCxmOXQsaDl0LENyYT11KCgpPT57Sjd0KCk7VTZlKCk7dnJhKCk7Sjd0KCk7WTd0KCk7Wjd0KCk7bzl0KCk7U3JhKCk7bzl0KCk7aEMxPWNyYSxHNmU9bnVsbCxZNmU9bnVsbCxkOXQ9e30sTXJhPW5ldyBUZXh0RGVjb2RlcixORmE9bmV3IFRleHRFbmNvZGVyLEdyZT1jbGFzcyB0e3N0YXRpY3tpKHRoaXMsIldlYkNvbnRhaW5lciIpfV9pbnN0YW5jZTtfcnVudGltZUluZm87ZnM7c3RhdGljIF9pbnN0YW5jZT1udWxsO3N0YXRpYyBfdGVhcmRvd25Qcm9taXNlPW51bGw7X3Rvcm5Eb3duPSExO191bnN1YnNjcmliZUZyb21Ub2tlbkNoYW5nZWRMaXN0ZW5lcj1pKCgpPT57fSwiX3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyIik7Y29uc3RydWN0b3IoZSxyLGEscyl7dGhpcy5faW5zdGFuY2U9ZSx0aGlzLl9ydW50aW1lSW5mbz1zLHRoaXMuZnM9bmV3IGg5dChyKSx2ci5pbml0aWFsaXplZCYmKHRoaXMuX3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyPWVyYShuPT57dGhpcy5faW5zdGFuY2Uuc2V0Q3JlZGVudGlhbHMoe2FjY2Vzc1Rva2VuOm4sZWRpdG9yT3JpZ2luOnZyLmVkaXRvck9yaWdpbn0pfSksKGFzeW5jKCk9Pnthd2FpdCB2ci5hdXRoQ29tcGxldGUucHJvbWlzZSwhdGhpcy5fdG9ybkRvd24mJihYN3QodnIudG9rZW5zKSxhd2FpdCB0aGlzLl9pbnN0YW5jZS5zZXRDcmVkZW50aWFscyh7YWNjZXNzVG9rZW46dnIudG9rZW5zLmFjY2VzcyxlZGl0b3JPcmlnaW46dnIuZWRpdG9yT3JpZ2lufSkpfSkoKS5jYXRjaChuPT57Y29uc29sZS5lcnJvcihuKX0pKX1hc3luYyBzcGF3bihlLHIsYSl7bGV0IHM9W107QXJyYXkuaXNBcnJheShyKT9zPXI6YT1yO2xldCBuLG89bmV3IFJlYWRhYmxlU3RyZWFtO2lmKGE/Lm91dHB1dCE9PSExKXtsZXQgYj1WRmEoKTtuPWIucHVzaCxvPWIuc3RyZWFtfWxldCBsLGMsZCxmLHA9SzZlKG05dChuKSksaD1LNmUobTl0KGwpKSxtPUs2ZShtOXQoZCkpLHY9YXdhaXQgdGhpcy5faW5zdGFuY2UucnVuKHtjb21tYW5kOmUsYXJnczpzLGN3ZDphPy5jd2QsZW52OmE/LmVudix0ZXJtaW5hbDphPy50ZXJtaW5hbH0saCxtLHApO3JldHVybiBuZXcgZjl0KHYsbyxjLGYpfWFzeW5jIGV4cG9ydChlLHIpe2xldCBhPXtmb3JtYXQ6cj8uZm9ybWF0Pz8ianNvbiIsaW5jbHVkZXM6cj8uaW5jbHVkZXMsZXhjbHVkZXM6cj8uZXhjbHVkZXMsZXh0ZXJuYWw6ITB9LHM9YXdhaXQgdGhpcy5faW5zdGFuY2Uuc2VyaWFsaXplKGUsYSk7aWYoYS5mb3JtYXQ9PT0ianNvbiIpe2xldCBuPUpTT04ucGFyc2UoTXJhLmRlY29kZShzKSk7cmV0dXJuIGM5dChuKX1yZXR1cm4gc31vbihlLHIpe2lmKGU9PT0icHJldmlldy1tZXNzYWdlIil7bGV0IG49cjtyPWkoKG89PntuOXQobykmJm4obyl9KSwibGlzdGVuZXIiKX1sZXR7bGlzdGVuZXI6YSxzdWJzY3JpYmU6c309akZhKHIpO3JldHVybiBzKHRoaXMuX2luc3RhbmNlLm9uKGUsZDIucHJveHkoYSkpKX1tb3VudChlLHIpe2xldCBhPWUgaW5zdGFuY2VvZiBVaW50OEFycmF5P2U6ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP25ldyBVaW50OEFycmF5KGUpOk5GYS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkobDl0KGUpKSk7cmV0dXJuIHRoaXMuX2luc3RhbmNlLmxvYWRGaWxlcyhkMi50cmFuc2ZlcihhLFthLmJ1ZmZlcl0pLHttb3VudFBvaW50czpyPy5tb3VudFBvaW50fSl9c2V0UHJldmlld1NjcmlwdChlLHIpe3JldHVybiB0aGlzLl9pbnN0YW5jZS5zZXRQcmV2aWV3U2NyaXB0KGUscil9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5fcnVudGltZUluZm8ucGF0aH1nZXQgd29ya2Rpcigpe3JldHVybiB0aGlzLl9ydW50aW1lSW5mby5jd2R9dGVhcmRvd24oKXtpZih0aGlzLl90b3JuRG93bil0aHJvdyBuZXcgRXJyb3IoIldlYkNvbnRhaW5lciBhbHJlYWR5IHRvcm4gZG93biIpO3RoaXMuX3Rvcm5Eb3duPSEwLHRoaXMuX3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyKCk7bGV0IGU9aShhc3luYygpPT57dHJ5e2F3YWl0IHRoaXMuZnMuX3RlYXJkb3duKCksYXdhaXQgdGhpcy5faW5zdGFuY2UudGVhcmRvd24oKX1maW5hbGx5e3RoaXMuX2luc3RhbmNlW2QyLnJlbGVhc2VQcm94eV0oKSx0Ll9pbnN0YW5jZT09PXRoaXMmJih0Ll9pbnN0YW5jZT1udWxsKX19LCJ0ZWFyZG93bkZuIik7dC5fdGVhcmRvd25Qcm9taXNlPWUoKX1zdGF0aWMgYXN5bmMgYm9vdChlPXt9KXthd2FpdCB0aGlzLl90ZWFyZG93blByb21pc2UsdC5fdGVhcmRvd25Qcm9taXNlPW51bGw7bGV0e3dvcmtkaXJOYW1lOnJ9PWU7aWYod2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQmJmUuY29lcD09PSJub25lIiYmY29uc29sZS53YXJuKGBBIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kgaGVhZGVyIGlzIHJlcXVpcmVkIGluIGNyb3NzIG9yaWdpbiBpc29sYXRlZCBlbnZpcm9ubWVudHMuClNldCB0aGUgJ2NvZXAnIG9wdGlvbiB0byAncmVxdWlyZS1jb3JwJy5gKSxyPy5pbmNsdWRlcygiLyIpfHxyPT09Ii4uInx8cj09PSIuIil0aHJvdyBuZXcgRXJyb3IoIndvcmtkaXJOYW1lIHNob3VsZCBiZSBhIHZhbGlkIGZvbGRlciBuYW1lIik7Zm9yKHZyLmJvb3RDYWxsZWQ9ITA7RzZlOylhd2FpdCBHNmU7aWYodC5faW5zdGFuY2UpdGhyb3cgbmV3IEVycm9yKCJPbmx5IGEgc2luZ2xlIFdlYkNvbnRhaW5lciBpbnN0YW5jZSBjYW4gYmUgYm9vdGVkIik7bGV0IGE9RkZhKGUpO0c2ZT1hLmNhdGNoKCgpPT57fSk7dHJ5e2xldCBzPWF3YWl0IGE7cmV0dXJuIHQuX2luc3RhbmNlPXMsc31maW5hbGx5e0c2ZT1udWxsfX19O2kobUMxLCJjb25maWd1cmVBUElLZXkiKTtPRmE9MSxSRmE9Mix1OXQ9Y2xhc3N7c3RhdGlje2kodGhpcywiRGlyRW50SW1wbCIpfW5hbWU7X3R5cGU7Y29uc3RydWN0b3IoZSxyKXt0aGlzLm5hbWU9ZSx0aGlzLl90eXBlPXJ9aXNGaWxlKCl7cmV0dXJuIHRoaXMuX3R5cGU9PT1PRmF9aXNEaXJlY3RvcnkoKXtyZXR1cm4gdGhpcy5fdHlwZT09PVJGYX19LHA5dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJGU1dhdGNoZXIiKX1fYXBpQ2xpZW50O19wYXRoO19vcHRpb25zO19saXN0ZW5lcjtfd3JhcHBlZExpc3RlbmVyO193YXRjaGVyO19jbG9zZWQ9ITE7Y29uc3RydWN0b3IoZSxyLGEscyl7dGhpcy5fYXBpQ2xpZW50PWUsdGhpcy5fcGF0aD1yLHRoaXMuX29wdGlvbnM9YSx0aGlzLl9saXN0ZW5lcj1zLHRoaXMuX2FwaUNsaWVudC5fd2F0Y2hlcnMuYWRkKHRoaXMpLHRoaXMuX3dyYXBwZWRMaXN0ZW5lcj0obixvKT0+e3RoaXMuX2xpc3RlbmVyJiYhdGhpcy5fY2xvc2VkJiZ0aGlzLl9saXN0ZW5lcihuLG8pfSx0aGlzLl9hcGlDbGllbnQuX2ZzLndhdGNoKHRoaXMuX3BhdGgsdGhpcy5fb3B0aW9ucyxLNmUodGhpcy5fd3JhcHBlZExpc3RlbmVyKSkudGhlbihuPT57aWYodGhpcy5fd2F0Y2hlcj1uLHRoaXMuX2Nsb3NlZClyZXR1cm4gdGhpcy5fdGVhcmRvd24oKX0pLmNhdGNoKGNvbnNvbGUuZXJyb3IpfWFzeW5jIGNsb3NlKCl7dGhpcy5fY2xvc2VkfHwodGhpcy5fY2xvc2VkPSEwLHRoaXMuX2FwaUNsaWVudC5fd2F0Y2hlcnMuZGVsZXRlKHRoaXMpLGF3YWl0IHRoaXMuX3RlYXJkb3duKCkpfWFzeW5jIF90ZWFyZG93bigpe2F3YWl0IHRoaXMuX3dhdGNoZXI/LmNsb3NlKCkuZmluYWxseSgoKT0+e3RoaXMuX3dhdGNoZXI/LltkMi5yZWxlYXNlUHJveHldKCl9KX19LGY5dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJXZWJDb250YWluZXJQcm9jZXNzSW1wbCIpfW91dHB1dDtpbnB1dDtleGl0O19wcm9jZXNzO3N0ZG91dDtzdGRlcnI7Y29uc3RydWN0b3IoZSxyLGEscyl7dGhpcy5vdXRwdXQ9cix0aGlzLl9wcm9jZXNzPWUsdGhpcy5pbnB1dD1uZXcgV3JpdGFibGVTdHJlYW0oe3dyaXRlOmkobj0+e3RoaXMuX2dldFByb2Nlc3MoKT8ud3JpdGUobikuY2F0Y2goKCk9Pnt9KX0sIndyaXRlIil9KSx0aGlzLmV4aXQ9dGhpcy5fb25FeGl0KCksdGhpcy5zdGRvdXQ9YSx0aGlzLnN0ZGVycj1zfWtpbGwoKXt0aGlzLl9wcm9jZXNzPy5raWxsKCl9cmVzaXplKGUpe3RoaXMuX2dldFByb2Nlc3MoKT8ucmVzaXplKGUpfWFzeW5jIF9vbkV4aXQoKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3Byb2Nlc3Mub25FeGl0fWZpbmFsbHl7dGhpcy5fcHJvY2Vzcz8uW2QyLnJlbGVhc2VQcm94eV0oKSx0aGlzLl9wcm9jZXNzPW51bGx9fV9nZXRQcm9jZXNzKCl7cmV0dXJuIHRoaXMuX3Byb2Nlc3M9PW51bGwmJmNvbnNvbGUud2FybigiVGhpcyBwcm9jZXNzIGFscmVhZHkgZXhpdGVkIiksdGhpcy5fcHJvY2Vzc319LGg5dD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJGaWxlU3lzdGVtQVBJQ2xpZW50Iil9X2ZzO193YXRjaGVycz1uZXcgU2V0KFtdKTtjb25zdHJ1Y3RvcihlKXt0aGlzLl9mcz1lfXJtKC4uLmUpe3JldHVybiB0aGlzLl9mcy5ybSguLi5lKX1hc3luYyByZWFkRmlsZShlLHIpe3JldHVybiBhd2FpdCB0aGlzLl9mcy5yZWFkRmlsZShlLHIpfWFzeW5jIHJlbmFtZShlLHIpe3JldHVybiBhd2FpdCB0aGlzLl9mcy5yZW5hbWUoZSxyKX1hc3luYyB3cml0ZUZpbGUoZSxyLGEpe2lmKHIgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgcz1yLmJ1ZmZlci5zbGljZShyLmJ5dGVPZmZzZXQsci5ieXRlT2Zmc2V0K3IuYnl0ZUxlbmd0aCk7cj1kMi50cmFuc2ZlcihuZXcgVWludDhBcnJheShzKSxbc10pfWF3YWl0IHRoaXMuX2ZzLndyaXRlRmlsZShlLHIsYSl9YXN5bmMgcmVhZGRpcihlLHIpe2xldCBhPWF3YWl0IHRoaXMuX2ZzLnJlYWRkaXIoZSxyKTtyZXR1cm4gSEZhKGEpfHxxRmEoYSk/YTphLm1hcChuPT5uZXcgdTl0KG4ubmFtZSxuWyJTeW1ib2wodHlwZSkiXSkpfWFzeW5jIG1rZGlyKGUscil7cmV0dXJuIGF3YWl0IHRoaXMuX2ZzLm1rZGlyKGUscil9d2F0Y2goZSxyLGEpe3JldHVybiB0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmKGE9cixyPW51bGwpLG5ldyBwOXQodGhpcyxlLHIsYSl9YXN5bmMgX3RlYXJkb3duKCl7dGhpcy5fZnNbZDIucmVsZWFzZVByb3h5XSgpLGF3YWl0IFByb21pc2UuYWxsKFsuLi50aGlzLl93YXRjaGVyc10ubWFwKGU9PmUuY2xvc2UoKSkpfX07aShGRmEsInVuc3luY2hyb25pemVkQm9vdCIpO2kobTl0LCJiaW5hcnlMaXN0ZW5lciIpO2koSzZlLCJwcm94eUxpc3RlbmVyIik7aShCRmEsInNlcnZlckZhY3RvcnkiKTtpKEhGYSwiaXNTdHJpbmdBcnJheSIpO2kocUZhLCJpc1R5cGVkQXJyYXlDb2xsZWN0aW9uIik7aShWRmEsInN0cmVhbVdpdGhQdXNoIik7aShqRmEsInN5bmNTdWJzY3JpcHRpb24iKX0pO3ZhciBwZyx6cmE9dSgoKT0+e0NyYSgpO3BnPWNsYXNzIHR7c3RhdGlje2kodGhpcywiV2ViQ29udGFpbmVyRW52aXJvbm1lbnQiKX1zdGF0aWMgc2hhcmVkQ29udGFpbmVyPW51bGw7c3RhdGljIGJvb3RQcm9taXNlPW51bGw7X3JlYWR5PSExO3R5cGU9IndlYmNvbnRhaW5lciI7Z2V0IHJlYWR5KCl7cmV0dXJuIHRoaXMuX3JlYWR5fWdldCBjb250YWluZXIoKXtyZXR1cm4gdC5zaGFyZWRDb250YWluZXJ9YXN5bmMgaW5pdCgpe2lmKCEodGhpcy5fcmVhZHkmJnQuc2hhcmVkQ29udGFpbmVyKSl7aWYodC5ib290UHJvbWlzZSl7YXdhaXQgdC5ib290UHJvbWlzZSx0aGlzLl9yZWFkeT0hMDtyZXR1cm59aWYodC5zaGFyZWRDb250YWluZXIpe3RoaXMuX3JlYWR5PSEwO3JldHVybn1pZih0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI+InUiKXRocm93IG5ldyBFcnJvcihgV2ViQ29udGFpbmVyIHJlcXVpcmVzIFNoYXJlZEFycmF5QnVmZmVyIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUuIEVuc3VyZSB5b3VyIHNlcnZlciBzZW5kcyB0aGVzZSBoZWFkZXJzOgogIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5OiBzYW1lLW9yaWdpbgogIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3k6IHJlcXVpcmUtY29ycGApO3QuYm9vdFByb21pc2U9R3JlLmJvb3QoKTt0cnl7dC5zaGFyZWRDb250YWluZXI9YXdhaXQgdC5ib290UHJvbWlzZSx0aGlzLl9yZWFkeT0hMH1jYXRjaChlKXt0aHJvdyB0LmJvb3RQcm9taXNlPW51bGwsZX19fWFzeW5jIGRlc3Ryb3koKXt0LnNoYXJlZENvbnRhaW5lciYmKHQuc2hhcmVkQ29udGFpbmVyLnRlYXJkb3duKCksdC5zaGFyZWRDb250YWluZXI9bnVsbCx0LmJvb3RQcm9taXNlPW51bGwsdGhpcy5fcmVhZHk9ITEpfWFzeW5jIHJlYWRGaWxlKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZEZpbGUoZSwidXRmLTgiKX1hc3luYyB3cml0ZUZpbGUoZSxyKXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMud3JpdGVGaWxlKGUsciwidXRmLTgiKX1hc3luYyByZWFkRGlyKGUpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksKGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSx7d2l0aEZpbGVUeXBlczohMH0pKS5tYXAoYT0+KHt0eXBlOmEuaXNEaXJlY3RvcnkoKT8iZGlyZWN0b3J5IjoiZmlsZSIsbmFtZTphLm5hbWUscGF0aDplPT09Ii8iP2AvJHthLm5hbWV9YDpgJHtlfS8ke2EubmFtZX1gfSkpfWFzeW5jIG1rZGlyKGUpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ta2RpcihlLHtyZWN1cnNpdmU6ITB9KX1hc3luYyBybShlLHIpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5ybShlLHtyZWN1cnNpdmU6cj8ucmVjdXJzaXZlPz8hMX0pfWFzeW5jIGV4aXN0cyhlKXt0aGlzLmVuc3VyZVJlYWR5KCk7dHJ5e3JldHVybiBhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkRmlsZShlKSwhMH1jYXRjaHt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRkaXIoZSksITB9Y2F0Y2h7cmV0dXJuITF9fX13YXRjaChlLHIsYSl7dGhpcy5lbnN1cmVSZWFkeSgpO2xldCBzPXRoaXMuY29udGFpbmVyLmZzLndhdGNoKGUse3JlY3Vyc2l2ZTphPy5yZWN1cnNpdmU/PyExfSxyKTtyZXR1cm57c3RvcDppKCgpPT5zLmNsb3NlKCksInN0b3AiKX19YXN5bmMgc3Bhd24oZSxyPVtdKXt0aGlzLmVuc3VyZVJlYWR5KCk7bGV0IGE9YXdhaXQgdGhpcy5jb250YWluZXIuc3Bhd24oZSxyKTtyZXR1cm57b3V0cHV0OmEub3V0cHV0LGlucHV0OmEuaW5wdXQsZXhpdDphLmV4aXQsa2lsbDppKCgpPT5hLmtpbGwoKSwia2lsbCIpfX1nZXRTaGVsbENvbW1hbmQoKXtyZXR1cm57Y29tbWFuZDoianNoIixsYWJlbDoianNoIixwcm9tcHQ6In4vIn19YXN5bmMgbW91bnQoZSl7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLm1vdW50KGUpfWdldENvbnRhaW5lcigpe3JldHVybiB0aGlzLmVuc3VyZVJlYWR5KCksdGhpcy5jb250YWluZXJ9ZW5zdXJlUmVhZHkoKXtpZighdGhpcy5fcmVhZHl8fCF0aGlzLmNvbnRhaW5lcil0aHJvdyBuZXcgRXJyb3IoIldlYkNvbnRhaW5lckVudmlyb25tZW50IG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0KCkgZmlyc3QuIil9fX0pO3ZhciBfcmE9dSgoKT0+e3pyYSgpfSk7dmFyIFo2ZT11KCgpPT57R3RhKCk7X3JhKCl9KTt2YXIgVHJhPXUoKCk9PntONnQoKX0pO3ZhciBZcmUsZzl0PXUoKCk9PntZcmU9Y2xhc3N7c3RhdGlje2kodGhpcywiVGVybWluYWxUYWJNYW5hZ2VyIil9dGFicz1uZXcgTWFwO3RhYkNvdW50ZXI9MDt4dGVybUJ1bmRsZT1udWxsO3h0ZXJtRml0QWRkb25CdW5kbGU9bnVsbDtzZXRYdGVybU1vZHVsZXMoZSxyKXt0aGlzLnh0ZXJtQnVuZGxlPWUsdGhpcy54dGVybUZpdEFkZG9uQnVuZGxlPXJ9Z2VuZXJhdGVUYWJJZCgpe3JldHVybiB0aGlzLnRhYkNvdW50ZXIrKyxgdGVybWluYWwtJHt0aGlzLnRhYkNvdW50ZXJ9LSR7RGF0ZS5ub3coKX1gfWdldERlZmF1bHRMYWJlbChlLHIpe3N3aXRjaChlKXtjYXNlInNoZWxsIjpyZXR1cm4iYmFzaCI7Y2FzZSJzY3JpcHQiOnJldHVybiByPy5zY3JpcHROYW1lfHwic2NyaXB0IjtjYXNlInBhY2thZ2UtdXBkYXRlIjpyZXR1cm4gcj8ucGFja2FnZU5hbWU/YHVwZGF0ZSAke3IucGFja2FnZU5hbWV9YDoidXBkYXRlIjtjYXNlImN1c3RvbSI6cmV0dXJuIHI/LmNvbW1hbmR8fCJwcm9jZXNzIjtkZWZhdWx0OnJldHVybiJ0ZXJtaW5hbCJ9fWdldERlZmF1bHRJY29uKGUpe3N3aXRjaChlKXtjYXNlInNoZWxsIjpyZXR1cm4ibHVjaWRlOnRlcm1pbmFsIjtjYXNlInNjcmlwdCI6cmV0dXJuImx1Y2lkZTpwbGF5IjtjYXNlInBhY2thZ2UtdXBkYXRlIjpyZXR1cm4ibHVjaWRlOnBhY2thZ2VDaGVjayI7Y2FzZSJjdXN0b20iOnJldHVybiJsdWNpZGU6Y29kZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOnRlcm1pbmFsIn19Z2V0VGVybWluYWxUaGVtZShlKXtyZXR1cm4gZT97YmFja2dyb3VuZDoiI2ZmZmZmZiIsZm9yZWdyb3VuZDoiIzMzMzMzMyIsY3Vyc29yOiIjMzMzMzMzIixjdXJzb3JBY2NlbnQ6IiNmZmZmZmYiLHNlbGVjdGlvbjoicmdiYSgwLCAwLCAwLCAwLjIpIixibGFjazoiIzAwMDAwMCIscmVkOiIjY2QzMTMxIixncmVlbjoiIzAwYmMwMCIseWVsbG93OiIjOTQ5ODAwIixibHVlOiIjMDQ1MWE1IixtYWdlbnRhOiIjYmMwNWJjIixjeWFuOiIjMDU5OGJjIix3aGl0ZToiIzU1NTU1NSIsYnJpZ2h0QmxhY2s6IiM2NjY2NjYiLGJyaWdodFJlZDoiI2NkMzEzMSIsYnJpZ2h0R3JlZW46IiMxNGNlMTQiLGJyaWdodFllbGxvdzoiI2I1YmEwMCIsYnJpZ2h0Qmx1ZToiIzA0NTFhNSIsYnJpZ2h0TWFnZW50YToiI2JjMDViYyIsYnJpZ2h0Q3lhbjoiIzA1OThiYyIsYnJpZ2h0V2hpdGU6IiNhNWE1YTUifTp7YmFja2dyb3VuZDoiIzAwMDAwMCIsZm9yZWdyb3VuZDoiI2ZmZmZmZiIsY3Vyc29yOiIjZmZmZmZmIixjdXJzb3JBY2NlbnQ6IiMwMDAwMDAiLHNlbGVjdGlvbjoicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIn19Y3JlYXRlVGFiKGUscil7aWYoIXRoaXMueHRlcm1CdW5kbGV8fCF0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGUpdGhyb3cgbmV3IEVycm9yKCJUZXJtaW5hbFRhYk1hbmFnZXI6IHh0ZXJtIG1vZHVsZXMgbm90IGluaXRpYWxpemVkLiBDYWxsIHNldFh0ZXJtTW9kdWxlcygpIGZpcnN0LiIpO2xldCBhPXRoaXMuZ2VuZXJhdGVUYWJJZCgpLHM9ZS50eXBlLG49bmV3IHRoaXMueHRlcm1CdW5kbGUuVGVybWluYWwoe2NvbnZlcnRFb2w6ITAsY3Vyc29yQmxpbms6ITAsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKHIpLGZvbnRGYW1pbHk6J01lbmxvLCBNb25hY28sICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZScsZm9udFNpemU6MTMsbGluZUhlaWdodDoxLjJ9KSxvPW5ldyB0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGUuRml0QWRkb247bi5sb2FkQWRkb24obyk7bGV0IGw9e2lkOmEsbGFiZWw6ZS5sYWJlbHx8dGhpcy5nZXREZWZhdWx0TGFiZWwocyxlLm1ldGFkYXRhKSxpY29uTmFtZTplLmljb25OYW1lfHx0aGlzLmdldERlZmF1bHRJY29uKHMpLHR5cGU6cyxjbG9zZWFibGU6ZS5jbG9zZWFibGU/P3MhPT0ic2hlbGwiLHRlcm1pbmFsOm4sZml0QWRkb246byxwcm9jZXNzOm51bGwsaW5wdXRXcml0ZXI6bnVsbCxleGl0ZWQ6ITEsZXhpdENvZGU6bnVsbCxjcmVhdGVkQXQ6RGF0ZS5ub3coKSxtZXRhZGF0YTplLm1ldGFkYXRhfTtyZXR1cm4gdGhpcy50YWJzLnNldChhLGwpLGx9Z2V0VGFiKGUpe3JldHVybiB0aGlzLnRhYnMuZ2V0KGUpfWdldEFsbFRhYnMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRhYnMudmFsdWVzKCkpLnNvcnQoKGUscik9PmUuY3JlYXRlZEF0LXIuY3JlYXRlZEF0KX1nZXRUYWJDb3VudCgpe3JldHVybiB0aGlzLnRhYnMuc2l6ZX1oYXNUYWIoZSl7cmV0dXJuIHRoaXMudGFicy5oYXMoZSl9Y2xvc2VUYWIoZSl7bGV0IHI9dGhpcy50YWJzLmdldChlKTtpZighcilyZXR1cm4hMTtpZihyLnByb2Nlc3MmJiFyLmV4aXRlZCl0cnl7ci5wcm9jZXNzLmtpbGwoKX1jYXRjaChhKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBraWxsIHByb2Nlc3M6IixhKX10cnl7ci50ZXJtaW5hbC5kaXNwb3NlKCl9Y2F0Y2goYSl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZGlzcG9zZSB0ZXJtaW5hbDoiLGEpfXJldHVybiB0aGlzLnRhYnMuZGVsZXRlKGUpLCEwfXJlbmFtZVRhYihlLHIpe2xldCBhPXRoaXMudGFicy5nZXQoZSk7cmV0dXJuIGE/KGEubGFiZWw9ciwhMCk6ITF9bWFya1RhYkV4aXRlZChlLHIpe2xldCBhPXRoaXMudGFicy5nZXQoZSk7YSYmKGEuZXhpdGVkPSEwLGEuZXhpdENvZGU9cil9c2V0VGFiUHJvY2VzcyhlLHIsYSl7bGV0IHM9dGhpcy50YWJzLmdldChlKTtzJiYocy5wcm9jZXNzPXIscy5pbnB1dFdyaXRlcj1hKX11cGRhdGVBbGxUaGVtZXMoZSl7bGV0IHI9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKGUpO2ZvcihsZXQgYSBvZiB0aGlzLnRhYnMudmFsdWVzKCkpYS50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPXJ9ZGlzcG9zZUFsbCgpe2ZvcihsZXRbZV1vZiB0aGlzLnRhYnMpdGhpcy5jbG9zZVRhYihlKTt0aGlzLnRhYnMuY2xlYXIoKX19fSk7dmFyIExyYT17fTtWZShMcmEse0RlZXNXb3Jrc3BhY2VUZXJtaW5hbDooKT0+Yjl0fSk7dmFyIHlmLGkxLGI5dCxLcmU9dSgoKT0+e3ZlKCk7TXIoKTtsdCgpO1o2ZSgpO0tyKCk7JDZlKCk7Zzl0KCk7cDMoKTt5Zj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0saTE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGI5dD0oKCk9PntsZXQgdD1bdWUoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VUZXJtaW5hbCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1AoKV0scD1bUCgpXSx2PVtQKHt0eXBlOk51bWJlcn0pXSx5PVtQKHt0eXBlOkJvb2xlYW59KV0sTj1baWUoKV0sTz1baWUoKV0seWYodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iZXhlY3V0aW9uRW52aXJvbm1lbnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5leGVjdXRpb25FbnZpcm9ubWVudCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmV4ZWN1dGlvbkVudmlyb25tZW50PUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSx5Zih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNldHVwQ29tbWFuZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic2V0dXBDb21tYW5kImluIHosImhhcyIpLGdldDppKHo9Pnouc2V0dXBDb21tYW5kLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouc2V0dXBDb21tYW5kPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sZCxmKSx5Zih0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudmlyb25tZW50VmFyaWFibGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJlbnZpcm9ubWVudFZhcmlhYmxlcyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmVudmlyb25tZW50VmFyaWFibGVzLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouZW52aXJvbm1lbnRWYXJpYWJsZXM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLHlmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQmFyV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRhYkJhcldpZHRoImluIHosImhhcyIpLGdldDppKHo9PnoudGFiQmFyV2lkdGgsImdldCIpLHNldDppKCh6LEEpPT57ei50YWJCYXJXaWR0aD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZykseWYodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGFiQmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzaG93VGFiQmFyImluIHosImhhcyIpLGdldDppKHo9Pnouc2hvd1RhYkJhciwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnNob3dUYWJCYXI9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLHlmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4idGFicyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnRhYnMsImdldCIpLHNldDppKCh6LEEpPT57ei50YWJzPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSx5Zih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZVRhYklkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJhY3RpdmVUYWJJZCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmFjdGl2ZVRhYklkLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouYWN0aXZlVGFiSWQ9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxMLEUpLHlmKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsciksQj1hPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89aSgoKT0+e2xldCBDPW5ldyBwZztyZXR1cm4gd2A8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7Q30+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbD5gfSwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07cmVzaXplT2JzZXJ2ZXI7dGFiTWFuYWdlcjsjZT1pMSh0aGlzLG8sbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KEMpe3RoaXMuI2U9Q30jdD0oaTEodGhpcyxsKSxpMSh0aGlzLGQsIiIpKTtnZXQgc2V0dXBDb21tYW5kKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNldHVwQ29tbWFuZChDKXt0aGlzLiN0PUN9I3I9KGkxKHRoaXMsZiksaTEodGhpcyxoLHt9KSk7Z2V0IGVudmlyb25tZW50VmFyaWFibGVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGVudmlyb25tZW50VmFyaWFibGVzKEMpe3RoaXMuI3I9Q30jYT0oaTEodGhpcyxtKSxpMSh0aGlzLGIsMTYwKSk7Z2V0IHRhYkJhcldpZHRoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRhYkJhcldpZHRoKEMpe3RoaXMuI2E9Q30jaT0oaTEodGhpcyxnKSxpMSh0aGlzLGssITApKTtnZXQgc2hvd1RhYkJhcigpe3JldHVybiB0aGlzLiNpfXNldCBzaG93VGFiQmFyKEMpe3RoaXMuI2k9Q30jcz0oaTEodGhpcyxNKSxpMSh0aGlzLF8sW10pKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNzfXNldCB0YWJzKEMpe3RoaXMuI3M9Q30jbj0oaTEodGhpcyxTKSxpMSh0aGlzLEwsbnVsbCkpO2dldCBhY3RpdmVUYWJJZCgpe3JldHVybiB0aGlzLiNufXNldCBhY3RpdmVUYWJJZChDKXt0aGlzLiNuPUN9dGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj0oaTEodGhpcyxFKSxudWxsKTtpc0JyaWdodD0hMTt0ZXJtaW5hbEFjdGlvbmJhcj1udWxsO2Vudmlyb25tZW50RGVmZXJyZWQ9bmV3IGNyLnNtYXJ0cHJvbWlzZS5EZWZlcnJlZDtlbnZpcm9ubWVudFByb21pc2U9dGhpcy5lbnZpcm9ubWVudERlZmVycmVkLnByb21pc2U7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudGFiTWFuYWdlcj1uZXcgWXJlLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5oYW5kbGVSZXNpemUoKX0pfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgI2FjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCBkZWVzLWFjdGlvbmJhciB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBiYXIgb24gdGhlIHJpZ2h0IHNpZGUgKi8KICAgICAgLnRhYi1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFiLWJhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWJhci10aXRsZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAudGFiLWJhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAudGFiLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDIycHg7CiAgICAgICAgaGVpZ2h0OiAyMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1saXN0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDI1JSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCAzMCUgMTUlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWIuZXhpdGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbi5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIgNzAlIDQwJSkiLCJoc2woMTQyIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWxhYmVsIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZXhpdC1iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTAlKSIsImhzbCgxNDIgMzAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3MCUgOTMlKSIsImhzbCgwIDMwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IEM9dGhpcy5hY3RpdmVUYWJJZD90aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRhaW5lciI+CiAgICAgICAgPCEtLSBNYWluIHRlcm1pbmFsIGFyZWEgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGVudCI+CiAgICAgICAgICAke0M/d2AKICAgICAgICAgICAgPGRpdiBpZD0iYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIzMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+Tm8gdGVybWluYWwgb3Blbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gVmVydGljYWwgdGFiIGJhciBvbiB0aGUgcmlnaHQgLS0+CiAgICAgICAgJHt0aGlzLnNob3dUYWJCYXI/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXIiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnRhYkJhcldpZHRofXB4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItYmFyLXRpdGxlIj5UZXJtaW5hbHM8L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1hY3Rpb24iIEBjbGljaz0ke3RoaXMuaGFuZGxlQWRkVGFifSB0aXRsZT0iTmV3IFRlcm1pbmFsIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGx1cyJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItbGlzdCI+CiAgICAgICAgICAgICAgJHt0aGlzLnRhYnMubWFwKHo9PndgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC10YWIgJHt6LmlkPT09dGhpcy5hY3RpdmVUYWJJZD8iYWN0aXZlIjoiIn0gJHt6LmV4aXRlZD8iZXhpdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnN3aXRjaFRvVGFiKHouaWQpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgLmljb249JHt6Lmljb25OYW1lfQogICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNCIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiLWljb24gJHt6LnByb2Nlc3MmJiF6LmV4aXRlZD8icnVubmluZyI6IiJ9IgogICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbGFiZWwiPiR7ei5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICR7ei5leGl0ZWQ/d2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhpdC1iYWRnZSAke3ouZXhpdENvZGU9PT0wPyJzdWNjZXNzIjoiZXJyb3IifSI+CiAgICAgICAgICAgICAgICAgICAgICAke3ouZXhpdENvZGV9CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke3ouY2xvc2VhYmxlP3dgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7QT0+dGhpcy5oYW5kbGVUYWJDbG9zZShBLHouaWQpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtsZXQgQz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmlzQnJpZ2h0PUMudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249Qy50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShGPT57dGhpcy5pc0JyaWdodD1GLHRoaXMudGFiTWFuYWdlci51cGRhdGVBbGxUaGVtZXMoRil9KTtsZXQgej1zbi5nZXRJbnN0YW5jZSgpLFtBLCRdPWF3YWl0IFByb21pc2UuYWxsKFt6LmxvYWRYdGVybSgpLHoubG9hZFh0ZXJtRml0QWRkb24oKV0pO3RoaXMudGFiTWFuYWdlci5zZXRYdGVybU1vZHVsZXMoQSwkKSxhd2FpdCB0aGlzLmNyZWF0ZVNoZWxsVGFiKCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7bGV0IEM9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO0MmJnRoaXMucmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKEMpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRhYk1hbmFnZXIuZGlzcG9zZUFsbCgpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgaGFuZGxlQWRkVGFiKCl7YXdhaXQgdGhpcy5jcmVhdGVTaGVsbFRhYigpfWhhbmRsZVRhYkNsb3NlKEMseil7Qy5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsb3NlVGFiKHopfXN3aXRjaFRvVGFiKEMpe2lmKEM9PT10aGlzLmFjdGl2ZVRhYklkKXJldHVybjtsZXQgej10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKEMpO2lmKCF6KXJldHVybjtsZXQgQT10aGlzLmFjdGl2ZVRhYklkO3RoaXMuYWN0aXZlVGFiSWQmJnRoaXMuZGV0YWNoQWN0aXZlVGVybWluYWwoKSx0aGlzLmFjdGl2ZVRhYklkPUMsdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy5hdHRhY2hUZXJtaW5hbFRvQ29udGFpbmVyKHopLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zd2l0Y2hlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDpDLHByZXZpb3VzVGFiSWQ6QX19KSl9KX1kZXRhY2hBY3RpdmVUZXJtaW5hbCgpe2xldCBDPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtDJiYoQy5pbm5lckhUTUw9IiIpfWF0dGFjaFRlcm1pbmFsVG9Db250YWluZXIoQyl7bGV0IHo9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO3omJih0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoeiksei5pbm5lckhUTUw9IiIsQy50ZXJtaW5hbC5vcGVuKHopLEMuZml0QWRkb24uZml0KCksQy50ZXJtaW5hbC5mb2N1cygpKX1oYW5kbGVSZXNpemUoKXtpZih0aGlzLmFjdGl2ZVRhYklkKXtsZXQgQz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpO0MmJkMuZml0QWRkb24uZml0KCl9fWFzeW5jIHNwYXduUHJvY2Vzc0ZvclRhYihDLHosQT1bXSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe0MudGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksQy50ZXJtaW5hbC53cml0ZShgXHUyNzRDIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBhdmFpbGFibGUuXHIKYCksQy50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpO3JldHVybn10cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8KEMudGVybWluYWwud3JpdGUoYEluaXRpYWxpemluZyBlbnZpcm9ubWVudC4uLlxyCmApLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpKTtsZXQgJD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKHosQSk7JC5vdXRwdXQucGlwZVRvKG5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6aShZPT57Qy50ZXJtaW5hbC53cml0ZShZKX0sIndyaXRlIil9KSk7bGV0IEY9JC5pbnB1dC5nZXRXcml0ZXIoKTtDLnRlcm1pbmFsLm9uRGF0YShZPT57Ri53cml0ZShZKX0pLHRoaXMudGFiTWFuYWdlci5zZXRUYWJQcm9jZXNzKEMuaWQsJCxGKSx0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSwkLmV4aXQudGhlbihZPT57dGhpcy5oYW5kbGVQcm9jZXNzRXhpdChDLmlkLFkpfSl9Y2F0Y2goJCl7Qy50ZXJtaW5hbC53cml0ZSgiXHgxQlszMW0iKSxDLnRlcm1pbmFsLndyaXRlKGBcdTI3NEMgRmFpbGVkIHRvIHNwYXduIHByb2Nlc3M6ICR7JH1ccgpgKSxDLnRlcm1pbmFsLndyaXRlKCJceDFCWzBtIiksY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNwYXduIHByb2Nlc3M6IiwkKX19YXN5bmMgZ2V0U2hlbGxDb21tYW5kKCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJiF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5JiZhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Py5nZXRTaGVsbENvbW1hbmQ/YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5nZXRTaGVsbENvbW1hbmQoKTp7Y29tbWFuZDoianNoIixsYWJlbDoianNoIixwcm9tcHQ6In4vIn19aGFuZGxlUHJvY2Vzc0V4aXQoQyx6KXtsZXQgQT10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKEMpO2lmKCFBKXJldHVybjt0aGlzLnRhYk1hbmFnZXIubWFya1RhYkV4aXRlZChDLHopO2xldCAkPXo9PT0wP2BccgpceDFCWzMybVtQcm9jZXNzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHldXHgxQlswbVxyCmA6YFxyClx4MUJbMzFtW1Byb2Nlc3MgZXhpdGVkIHdpdGggY29kZSAke3p9XVx4MUJbMG1ccgpgO0EudGVybWluYWwud3JpdGUoJCksdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvY2Vzcy1jb21wbGV0ZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDpDLGV4aXRDb2RlOnp9fSkpLEEuY2xvc2VhYmxlJiZ0aGlzLnNob3dFeGl0ZWRUYWJBY3Rpb25iYXIoQyxBLmxhYmVsLHopfWFzeW5jIHNob3dFeGl0ZWRUYWJBY3Rpb25iYXIoQyx6LEEpe2xldCAkPUE9PT0wOyhhd2FpdCB0aGlzLnNob3dBY3Rpb25iYXIoe21lc3NhZ2U6JD9gIiR7en0iIGNvbXBsZXRlZC4gQ2xvc2UgdGFiP2A6YCIke3p9IiBleGl0ZWQgKGNvZGUgJHtBfSkuIENsb3NlIHRhYj9gLHR5cGU6JD8iaW5mbyI6Indhcm5pbmciLGljb246JD8ibHVjaWRlOmNoZWNrQ2lyY2xlIjoibHVjaWRlOmFsZXJ0VHJpYW5nbGUiLGFjdGlvbnM6W3tpZDoiY2xvc2UiLGxhYmVsOiJDbG9zZSBUYWIiLHByaW1hcnk6ITB9LHtpZDoia2VlcCIsbGFiZWw6IktlZXAgT3BlbiJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxZTQsZGVmYXVsdEFjdGlvbklkOiJjbG9zZSJ9LGRpc21pc3NpYmxlOiEwfSkpLmFjdGlvbklkPT09ImNsb3NlIiYmdGhpcy5jbG9zZVRhYihDKX1hc3luYyBjcmVhdGVTaGVsbFRhYihDKXtsZXQgej1hd2FpdCB0aGlzLmdldFNoZWxsQ29tbWFuZCgpLEE9dGhpcy50YWJNYW5hZ2VyLmNyZWF0ZVRhYih7dHlwZToic2hlbGwiLGxhYmVsOkN8fGAke3oubGFiZWx8fHouY29tbWFuZH0gJHt0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKSsxfWAsY2xvc2VhYmxlOnRoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpPjB9LHRoaXMuaXNCcmlnaHQpO3JldHVybiB0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSx0aGlzLnN3aXRjaFRvVGFiKEEuaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgdGhpcy5zcGF3blByb2Nlc3NGb3JUYWIoQSx6LmNvbW1hbmQsei5hcmdzfHxbXSksdGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCk9PT0xJiZ0aGlzLnNldHVwQ29tbWFuZCYmKGF3YWl0IHRoaXMud2FpdEZvclByb21wdChBLnRlcm1pbmFsLHoucHJvbXB0fHwifi8iKSxBLmlucHV0V3JpdGVyJiZBLmlucHV0V3JpdGVyLndyaXRlKHRoaXMuc2V0dXBDb21tYW5kKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNyZWF0ZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6QS5pZH19KSksQS5pZH1hc3luYyBjcmVhdGVQcm9jZXNzVGFiKEMpe2xldCB6PXRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoQyx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksQy5zd2l0Y2hUb1RhYiE9PSExJiZ0aGlzLnN3aXRjaFRvVGFiKHouaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsQy5jb21tYW5kJiZhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYih6LEMuY29tbWFuZCxDLmFyZ3MpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jcmVhdGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOnouaWR9fSkpLHouaWR9Z2V0QWN0aXZlVGFiKCl7cmV0dXJuIHRoaXMuYWN0aXZlVGFiSWQmJnRoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCl8fG51bGx9Z2V0VGFicygpe3JldHVybiB0aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpfXNlbGVjdFRhYihDKXtyZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmhhc1RhYihDKT8odGhpcy5zd2l0Y2hUb1RhYihDKSwhMCk6ITF9Y2xvc2VUYWIoQyl7bGV0IHo9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihDKTtpZighenx8IXouY2xvc2VhYmxlKXJldHVybiExO2lmKEM9PT10aGlzLmFjdGl2ZVRhYklkKXtsZXQgQT10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLCQ9QS5maW5kSW5kZXgoWT0+WS5pZD09PUMpLEY9QVskKzFdfHxBWyQtMV07Rj90aGlzLnN3aXRjaFRvVGFiKEYuaWQpOih0aGlzLmFjdGl2ZVRhYklkPW51bGwsdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpKX1yZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmNsb3NlVGFiKEMpLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6Q319KSksITB9d3JpdGVUb1RhYihDLHope2xldCBBPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoQyk7cmV0dXJuIEE/KEEudGVybWluYWwud3JpdGUoeiksITApOiExfXNlbmRJbnB1dFRvVGFiKEMseil7bGV0IEE9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihDKTtyZXR1cm4hQXx8IUEuaW5wdXRXcml0ZXI/ITE6KEEuaW5wdXRXcml0ZXIud3JpdGUoeiksITApfWFzeW5jIHNob3dBY3Rpb25iYXIoQyl7cmV0dXJuIHRoaXMudGVybWluYWxBY3Rpb25iYXJ8fCh0aGlzLnRlcm1pbmFsQWN0aW9uYmFyPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSksdGhpcy50ZXJtaW5hbEFjdGlvbmJhcj8uc2hvdyhDKX1hc3luYyB3YWl0Rm9yUHJvbXB0KEMseil7cmV0dXJuIG5ldyBQcm9taXNlKEE9PntsZXQgJD1pKCgpPT57bGV0IEY9Qy5idWZmZXIuYWN0aXZlO2ZvcihsZXQgWT0wO1k8Ri5sZW5ndGg7WSsrKXtsZXQgRz1GLmdldExpbmUoWSk7aWYoRyYmRy50cmFuc2xhdGVUb1N0cmluZygpLmluY2x1ZGVzKHopKXtzZXRUaW1lb3V0KCgpPT57QSgpfSwxMDApO3JldHVybn19c2V0VGltZW91dCgkLDEwMCl9LCJjaGVja1Byb21wdCIpOyQoKX0pfWFzeW5jIHNldEVudmlyb25tZW50VmFyaWFibGVzKEMpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRocm93IG5ldyBFcnJvcigiTm8gZXhlY3V0aW9uIGVudmlyb25tZW50IGF2YWlsYWJsZSIpO2xldCB6PSIiO2ZvcihsZXQgQSBpbiBDKXorPWBleHBvcnQgJHtBfT0iJHtDW0FdfSIKYDthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZSgiL3NvdXJjZS5lbnYiLHopfWdldEV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9c3RhdGlje2kxKGEscil9fTtyZXR1cm4gQj1hfSkoKX0pO3ZhciB4OXQsdjl0LERyYSwkcmEsQXJhLEVyYSxJcmE9dSgoKT0+e3ZlKCk7QnkoKTtGcCgpO1BwZSgpO1pwZSgpO1dwZSgpO3c5KCk7TDZlKCk7eDl0PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSx2OXQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LERyYT0oKCk9PntsZXQgdD1bdWUoImRlbW8tdmlldy1kYXNoYm9hcmQiKV0sZSxyPVtdLGEscz15ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVtb1ZpZXdEYXNoYm9hcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDt4OXQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgfQogICAgYF07c3RhdHNUaWxlcz1be2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6MTIzNCx0eXBlOiJudW1iZXIiLGljb246ImZhVXNlcnMiLGRlc2NyaXB0aW9uOiIrMTUlIGZyb20gbGFzdCB3ZWVrIixjb2xvcjoiIzIyYzU1ZSJ9LHtpZDoicGFnZXZpZXdzIix0aXRsZToiUGFnZSBWaWV3cyIsdmFsdWU6NTY3MDAsdHlwZToibnVtYmVyIixpY29uOiJmYUV5ZSIsZGVzY3JpcHRpb246IjU2LjdrIHRvdGFsIHZpZXdzIixjb2xvcjoiIzNiODJmNiJ9LHtpZDoidXB0aW1lIix0aXRsZToiU3lzdGVtIFVwdGltZSIsdmFsdWU6ODksdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246ImZhU2VydmVyIixkZXNjcmlwdGlvbjoiTGFzdCAzMCBkYXlzIixjb2xvcjoiIzEwYjk4MSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTo4MCxjb2xvcjoiI2VmNDQ0NCJ9LHt2YWx1ZTo5MCxjb2xvcjoiI2Y1OWUwYiJ9LHt2YWx1ZToxMDAsY29sb3I6IiMxMGI5ODEifV19fSx7aWQ6InJlc3BvbnNlIix0aXRsZToiQXZnIFJlc3BvbnNlIFRpbWUiLHZhbHVlOjMuMix1bml0OiJzIix0eXBlOiJudW1iZXIiLGljb246ImZhQ2xvY2siLGRlc2NyaXB0aW9uOiItMC41cyBpbXByb3ZlbWVudCIsY29sb3I6IiNmNTllMGIifSx7aWQ6InJldmVudWUiLHRpdGxlOiJNb250aGx5IFJldmVudWUiLHZhbHVlOjQ4NTIwLHVuaXQ6IiQiLHR5cGU6InRyZW5kIixpY29uOiJmYURvbGxhclNpZ24iLGRlc2NyaXB0aW9uOiIrOC4yJSBncm93dGgiLGNvbG9yOiIjMjJjNTVlIix0cmVuZERhdGE6WzM1ZTMsMzhlMywzNzUwMCw0MWUzLDM5ODAwLDQyZTMsNDQxMDAsNDMyMDAsNDU2MDAsNDcxMDAsNDY4MDAsNDg1MjBdfSx7aWQ6InRyYWZmaWMiLHRpdGxlOiJUcmFmZmljIFRyZW5kIix2YWx1ZToxNjgwLHR5cGU6InRyZW5kIixpY29uOiJmYUNoYXJ0TGluZSIsZGVzY3JpcHRpb246Ikxhc3QgNyBkYXlzIixjb2xvcjoiIzNiODJmNiIsdHJlbmREYXRhOlsxMjAwLDEzNTAsMTEwMCwxNDUwLDE2MDAsMTU1MCwxNjgwXX1dO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8aDE+RGFzaGJvYXJkPC9oMT4KICAgICAgPHA+V2VsY29tZSB0byB5b3VyIGFwcGxpY2F0aW9uIGRhc2hib2FyZC4gSGVyZSdzIGFuIG92ZXJ2aWV3IG9mIHlvdXIgbWV0cmljczo8L3A+CiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMuc3RhdHNUaWxlc30KICAgICAgICBAdGlsZS1hY3Rpb249JHtvPT57Y29uc29sZS5sb2coIlRpbGUgYWN0aW9uOiIsby5kZXRhaWwpfX0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8aDIgc3R5bGU9Im1hcmdpbi10b3A6IDQwcHg7Ij5SZWNlbnQgQWN0aXZpdHk8L2gyPgogICAgICA8cD5CZWxvdyBpcyBhIGxvZyBvZiByZWNlbnQgc3lzdGVtIGV2ZW50cyBhbmQgdXNlciBhY3Rpdml0eSB0byBkZW1vbnN0cmF0ZSBzY3JvbGxhYmxlIGNvbnRlbnQuPC9wPgoKICAgICAgJHtbe3RpbWU6IjIgbWluIGFnbyIsZXZlbnQ6IlVzZXIgam9obkBleGFtcGxlLmNvbSBsb2dnZWQgaW4gZnJvbSAxOTIuMTY4LjEuNDIiLHR5cGU6ImluZm8ifSx7dGltZToiNSBtaW4gYWdvIixldmVudDoiRGVwbG95bWVudCB2My41Mi4xIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgb24gcHJvZHVjdGlvbiIsdHlwZToic3VjY2VzcyJ9LHt0aW1lOiIxMiBtaW4gYWdvIixldmVudDoiRGF0YWJhc2UgYmFja3VwIGZpbmlzaGVkIFx1MjAxNCAyLjQgR0IgY29tcHJlc3NlZCIsdHlwZToiaW5mbyJ9LHt0aW1lOiIxOCBtaW4gYWdvIixldmVudDoiU1NMIGNlcnRpZmljYXRlIHJlbmV3ZWQgZm9yIGFwaS5leGFtcGxlLmNvbSAoZXhwaXJlcyAyMDI3LTA0LTAzKSIsdHlwZToic3VjY2VzcyJ9LHt0aW1lOiIyNSBtaW4gYWdvIixldmVudDoiTWVtb3J5IHVzYWdlIHNwaWtlIG9uIHdvcmtlci0wMyAoOTIlKSBcdTIwMTQgYXV0by1zY2FsZWQgdG8gNCBpbnN0YW5jZXMiLHR5cGU6Indhcm5pbmcifSx7dGltZToiMzEgbWluIGFnbyIsZXZlbnQ6Ik5ldyB1c2VyIHJlZ2lzdHJhdGlvbjogc2FyYWhAY29tcGFueS5pbyIsdHlwZToiaW5mbyJ9LHt0aW1lOiI0NSBtaW4gYWdvIixldmVudDonU2NoZWR1bGVkIGpvYiAiY2xlYW51cC10ZW1wLWZpbGVzIiBjb21wbGV0ZWQgXHUyMDE0IHJlbW92ZWQgMSwyNDcgZmlsZXMnLHR5cGU6ImluZm8ifSx7dGltZToiMSBob3VyIGFnbyIsZXZlbnQ6IkFQSSByYXRlIGxpbWl0IHJlYWNoZWQgZm9yIGNsaWVudCBhcHAtbW9iaWxlLWlvcyAoNDI5IHJlc3BvbnNlcykiLHR5cGU6Indhcm5pbmcifSx7dGltZToiMS41IGhvdXJzIGFnbyIsZXZlbnQ6IkNETiBjYWNoZSBwdXJnZWQgZm9yIC9hc3NldHMvKiBcdTIwMTQgMzQwIG9iamVjdHMgaW52YWxpZGF0ZWQiLHR5cGU6ImluZm8ifSx7dGltZToiMiBob3VycyBhZ28iLGV2ZW50OiJGYWlsZWQgbG9naW4gYXR0ZW1wdCBmb3IgYWRtaW5AZXhhbXBsZS5jb20gZnJvbSAyMDMuMC4xMTMuNTAgKGJsb2NrZWQpIix0eXBlOiJlcnJvciJ9LHt0aW1lOiIyLjUgaG91cnMgYWdvIixldmVudDoiV2ViaG9vayBkZWxpdmVyeSB0byBodHRwczovL2hvb2tzLnNsYWNrLmNvbSBzdWNjZWVkZWQgKDIwMCBPSykiLHR5cGU6ImluZm8ifSx7dGltZToiMyBob3VycyBhZ28iLGV2ZW50OidDcm9uIGpvYiAiZ2VuZXJhdGUtcmVwb3J0cyIgc3RhcnRlZCBcdTIwMTQgcHJvY2Vzc2luZyBRMSAyMDI2IGRhdGEnLHR5cGU6ImluZm8ifSx7dGltZToiMy41IGhvdXJzIGFnbyIsZXZlbnQ6IkxvYWQgYmFsYW5jZXIgaGVhbHRoIGNoZWNrOiBhbGwgOCBub2RlcyBoZWFsdGh5Iix0eXBlOiJzdWNjZXNzIn0se3RpbWU6IjQgaG91cnMgYWdvIixldmVudDoiRE5TIHByb3BhZ2F0aW9uIGNvbXBsZXRlIGZvciBuZXcgc3ViZG9tYWluIHN0YWdpbmcuZXhhbXBsZS5jb20iLHR5cGU6InN1Y2Nlc3MifV0ubWFwKG89PndgCiAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTBweCAwOwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAiPgogICAgICAgICAgPHNwYW4gc3R5bGU9IgogICAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTUlKSIsImhzbCgwIDAlIDQ1JSkiKX07CiAgICAgICAgICAiPiR7by50aW1lfTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSIKICAgICAgICAgICAgY29sb3I6ICR7by50eXBlPT09ImVycm9yIj94LmJkVGhlbWUoImhzbCgwIDcyJSA1MCUpIiwiaHNsKDAgNzIlIDY1JSkiKTpvLnR5cGU9PT0id2FybmluZyI/eC5iZFRoZW1lKCJoc2woMjUgOTUlIDUwJSkiLCJoc2woMjUgOTUlIDYzJSkiKTpvLnR5cGU9PT0ic3VjY2VzcyI/eC5iZFRoZW1lKCJoc2woMTQyIDcwJSA0MCUpIiwiaHNsKDE0MiA3MCUgNTUlKSIpOnguYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDc1JSkiKX07CiAgICAgICAgICAiPiR7by5ldmVudH08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGApfQogICAgYH1zdGF0aWN7djl0KGEscil9fTtyZXR1cm4gbj1hfSkoKSwkcmE9KCgpPT57bGV0IHQ9W3VlKCJkZW1vLXZpZXctYW5hbHl0aWNzIildLGUscj1bXSxhLHM9eWU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlbW9WaWV3QW5hbHl0aWNzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7eDl0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgfQogICAgICBoMSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8aDE+QW5hbHl0aWNzPC9oMT4KICAgICAgPHA+VGhpcyBpcyB0aGUgYW5hbHl0aWNzIHZpZXcuIFlvdSBjYW4gYWRkIGNoYXJ0cyBhbmQgbWV0cmljcyBoZXJlLjwvcD4KICAgIGB9c3RhdGlje3Y5dChhLHIpfX07cmV0dXJuIG49YX0pKCksQXJhPSgoKT0+e2xldCB0PVt1ZSgiZGVtby12aWV3LXNldHRpbmdzIildLGUscj1bXSxhLHM9eWU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlbW9WaWV3U2V0dGluZ3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDt4OXQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICAgIC5ob3Jpem9udGFsLWZvcm0tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNWY1ZjUiLCIjMWExYTFhIil9OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbjogMTVweCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGgxPlNldHRpbmdzPC9oMT4KICAgICAgPHA+Q29uZmlndXJlIHlvdXIgYXBwbGljYXRpb24gc2V0dGluZ3MgYmVsb3c6PC9wPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPkdlbmVyYWwgU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYXBwTmFtZSIgbGFiZWw9IkFwcGxpY2F0aW9uIE5hbWUiIHZhbHVlPSJNeSBBcHAiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImFwaUVuZHBvaW50IiBsYWJlbD0iQVBJIEVuZHBvaW50IiB2YWx1ZT0iaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20iPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJlbnZpcm9ubWVudCIKICAgICAgICAgICAgbGFiZWw9IkVudmlyb25tZW50IgogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJEZXZlbG9wbWVudCIsa2V5OiJkZXYifSx7b3B0aW9uOiJTdGFnaW5nIixrZXk6InN0YWdpbmcifSx7b3B0aW9uOiJQcm9kdWN0aW9uIixrZXk6InByb2QifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IlByb2R1Y3Rpb24iLGtleToicHJvZCJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iZW5hYmxlTm90aWZpY2F0aW9ucyIgbGFiZWw9IkVuYWJsZSBOb3RpZmljYXRpb25zIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJlbmFibGVBbmFseXRpY3MiIGxhYmVsPSJFbmFibGUgQW5hbHl0aWNzIiB2YWx1ZT0iZmFsc2UiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNhdmUgR2VuZXJhbCBTZXR0aW5nczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+RGlzcGxheSBQcmVmZXJlbmNlczwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1mb3JtLXNlY3Rpb24iPgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij5RdWljayBkaXNwbGF5IHNldHRpbmdzIHVzaW5nIGhvcml6b250YWwgbGF5b3V0OjwvcD4KICAgICAgICAgIDxkZWVzLWZvcm0gaG9yaXpvbnRhbC1sYXlvdXQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAga2V5PSJ0aGVtZSIKICAgICAgICAgICAgICBsYWJlbD0iVGhlbWUiCiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkxpZ2h0IixrZXk6ImxpZ2h0In0se29wdGlvbjoiRGFyayIsa2V5OiJkYXJrIn0se29wdGlvbjoiQXV0byIsa2V5OiJhdXRvIn1dfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IkRhcmsiLGtleToiZGFyayJ9fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0ibGFuZ3VhZ2UiCiAgICAgICAgICAgICAgbGFiZWw9Ikxhbmd1YWdlIgogICAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn0se29wdGlvbjoiR2VybWFuIixrZXk6ImRlIn0se29wdGlvbjoiU3BhbmlzaCIsa2V5OiJlcyJ9LHtvcHRpb246IkZyZW5jaCIsa2V5OiJmciJ9XX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iY29tcGFjdE1vZGUiIGxhYmVsPSJDb21wYWN0IE1vZGUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5Ob3RpZmljYXRpb24gU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBGcmVxdWVuY3kifQogICAgICAgICAgICAub3B0aW9ucz0ke1siUmVhbC10aW1lIiwiRGFpbHkgRGlnZXN0IiwiV2Vla2x5IFN1bW1hcnkiLCJOZXZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUmVhbC10aW1lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbEZyZXF1ZW5jeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9InB1c2hOb3RpZmljYXRpb25zIiBsYWJlbD0iRW5hYmxlIFB1c2ggTm90aWZpY2F0aW9ucyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0ic291bmRBbGVydHMiIGxhYmVsPSJQbGF5IFNvdW5kIGZvciBBbGVydHMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5VcGRhdGUgTm90aWZpY2F0aW9uczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3t2OXQoYSxyKX19O3JldHVybiBuPWF9KSgpLEVyYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAuZGVtby1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICB0ZXJtaW5hbFNldHVwQ29tbWFuZD0iZWNobyAnV2VsY29tZSB0byB0aGUgdGVybWluYWwhJyIKICAgICAgLmdsb2JhbE1lc3NhZ2VzPSR7W3tpZDoidXBkYXRlIix0eXBlOiJpbmZvIixtZXNzYWdlOiJBIG5ldyB2ZXJzaW9uICh2My41MC4wKSBpcyBhdmFpbGFibGUgd2l0aCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgYW5kIGJ1ZyBmaXhlcy4iLGRpc21pc3NpYmxlOiEwLGFjdGlvbnM6W3tuYW1lOiJVcGRhdGUgTm93IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246aSgoKT0+YWxlcnQoIlVwZGF0aW5nLi4uIiksImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsYWN0aW9uOmkoKCk9PmFsZXJ0KCJPcGVuaW5nIHJlbGVhc2Ugbm90ZXMuLi4iKSwiYWN0aW9uIil9XX0se2lkOiJtYWludGVuYW5jZSIsdHlwZToid2FybmluZyIsbWVzc2FnZToiU2NoZWR1bGVkIG1haW50ZW5hbmNlIHdpbmRvdzogQXByaWwgNSwgMjAyNiAwMjowMFx1MjAxMzA2OjAwIFVUQy4gU29tZSBzZXJ2aWNlcyBtYXkgYmUgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUuIixkaXNtaXNzaWJsZTohMH0se2lkOiJjcml0aWNhbCIsdHlwZToiZXJyb3IiLG1lc3NhZ2U6IllvdXIgU1NMIGNlcnRpZmljYXRlIGV4cGlyZXMgaW4gMyBkYXlzLiBSZW5ldyBub3cgdG8gYXZvaWQgc2VydmljZSBkaXNydXB0aW9uLiIsZGlzbWlzc2libGU6ITEsYWN0aW9uczpbe25hbWU6IlJlbmV3IENlcnRpZmljYXRlIixpY29uTmFtZToibHVjaWRlOnNoaWVsZENoZWNrIixhY3Rpb246aSgoKT0+YWxlcnQoIlJlbmV3aW5nIGNlcnRpZmljYXRlLi4uIiksImFjdGlvbiIpfV19XX0KICAgICAgLnZpZXdUYWJzPSR7W3tuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsZWxlbWVudDpEcmF9LHtuYW1lOiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6bGluZUNoYXJ0IixlbGVtZW50OiRyYSxzdWJWaWV3czpbe25hbWU6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmFjdGl2aXR5IixlbGVtZW50OiRyYX0se25hbWU6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGVsZW1lbnQ6RHJhfV19LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsc3ViVmlld3M6W3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGVsZW1lbnQ6QXJhfSx7bmFtZToiQmlsbGluZyIsaWNvbk5hbWU6Imx1Y2lkZTpjcmVkaXRDYXJkIixlbGVtZW50OkFyYX1dfV19CiAgICAgIEBsb2dvdXQ9JHsoKT0+e2NvbnNvbGUubG9nKCJMb2dvdXQgZXZlbnQgdHJpZ2dlcmVkIiksYWxlcnQoIkxvZ291dCBjbGlja2VkISIpfX0KICAgICAgQHZpZXctc2VsZWN0PSR7dD0+e2NvbnNvbGUubG9nKCJWaWV3IHNlbGVjdGVkOiIsdC5kZXRhaWwudmlldy5uYW1lKX19CiAgICA+PC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIGZnLGhsLFByYSxOcmE9dSgoKT0+e0lyYSgpO3ZlKCk7S3IoKTtsdCgpO2ZnPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxobD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sUHJhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy1zaW1wbGUtYXBwZGFzaCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzU2ltcGxlQXBwRGFzaCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBMPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sYz1bUCh7dHlwZTpBcnJheX0pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtQKHt0eXBlOkFycmF5fSldLHk9W2llKCldLE49W2llKCldLGZnKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibmFtZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm5hbWUsImdldCIpLHNldDppKChFLEIpPT57RS5uYW1lPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sbyxsKSxmZyh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJ2aWV3VGFicyJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnZpZXdUYWJzLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0Uudmlld1RhYnM9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxkLGYpLGZnKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxTZXR1cENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InRlcm1pbmFsU2V0dXBDb21tYW5kImluIEUsImhhcyIpLGdldDppKEU9PkUudGVybWluYWxTZXR1cENvbW1hbmQsImdldCIpLHNldDppKChFLEIpPT57RS50ZXJtaW5hbFNldHVwQ29tbWFuZD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGgsbSksZmcodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJnbG9iYWxNZXNzYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iZ2xvYmFsTWVzc2FnZXMiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS5nbG9iYWxNZXNzYWdlcywiZ2V0Iiksc2V0OmkoKEUsQik9PntFLmdsb2JhbE1lc3NhZ2VzPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sYixnKSxmZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ic2VsZWN0ZWRWaWV3ImluIEUsImhhcyIpLGdldDppKEU9PkUuc2VsZWN0ZWRWaWV3LCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0Uuc2VsZWN0ZWRWaWV3PUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sayxNKSxmZyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Il9hY3RpdmVNZXNzYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iX2FjdGl2ZU1lc3NhZ2VzImluIEUsImhhcyIpLGdldDppKEU9PkUuX2FjdGl2ZU1lc3NhZ2VzLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuX2FjdGl2ZU1lc3NhZ2VzPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sXyxTKSxmZyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpMfSxudWxsLHIpLE89YT1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPUVyYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNpbXBsZSJdOyNlPWhsKHRoaXMsbywiQXBwbGljYXRpb24gRGFzaGJvYXJkIik7Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbmFtZShMKXt0aGlzLiNlPUx9I3Q9KGhsKHRoaXMsbCksaGwodGhpcyxkLFtdKSk7Z2V0IHZpZXdUYWJzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHZpZXdUYWJzKEwpe3RoaXMuI3Q9TH0jcj0oaGwodGhpcyxmKSxobCh0aGlzLGgsJ2VjaG8gIlRlcm1pbmFsIHJlYWR5IicpKTtnZXQgdGVybWluYWxTZXR1cENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGVybWluYWxTZXR1cENvbW1hbmQoTCl7dGhpcy4jcj1MfSNhPShobCh0aGlzLG0pLGhsKHRoaXMsYixbXSkpO2dldCBnbG9iYWxNZXNzYWdlcygpe3JldHVybiB0aGlzLiNhfXNldCBnbG9iYWxNZXNzYWdlcyhMKXt0aGlzLiNhPUx9I2k9KGhsKHRoaXMsZyksaGwodGhpcyxrLHZvaWQgMCkpO2dldCBzZWxlY3RlZFZpZXcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWRWaWV3KEwpe3RoaXMuI2k9TH0jcz0oaGwodGhpcyxNKSxobCh0aGlzLF8sW10pKTtnZXQgX2FjdGl2ZU1lc3NhZ2VzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IF9hY3RpdmVNZXNzYWdlcyhMKXt0aGlzLiNzPUx9c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmFwcGJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIHdpZHRoOiAyNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXNlY29uZGFyeSk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgbWluLWNvbnRlbnQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnNpZGViYXItaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAyMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy10ZXJ0aWFyeSk7CiAgICAgICAgYm94LXNoYWRvdzogJHt4LmJkVGhlbWUoIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA1KSIsIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLWljb24td3JhcHBlciBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuYXBwTmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXIgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWhvdmVyKTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAudmlld1RhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI2MjYyNiIsIiNlNWU1ZTUiKX07CiAgICAgIH0KCiAgICAgIC52aWV3VGFiOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1hY3RpdmUpOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41NTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgc3BhbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiIC5jaGV2cm9uIHsKICAgICAgICBmbGV4OiAwIDAgYXV0bzsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzOmhvdmVyIC5jaGV2cm9uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5oYXNTdWJzLmdyb3VwQWN0aXZlIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjoKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93cyAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLXRvcCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLAogICAgICAgICAgbWFyZ2luLWJvdHRvbSAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuc3ViVmlld3MuZXhwYW5kZWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3czo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdWJWaWV3cy5leHBhbmRlZDo6YmVmb3JlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuc3ViVmlld3MtaW5uZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIuc3ViIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAudmlld1RhYi5zdWIuc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTEycHg7CiAgICAgIH0KCiAgICAgIC5hcHBBY3Rpb25zIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgODQlIDYwJSAvIDAuMDgpIiwiaHNsKDAgODQlIDYwJSAvIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgODQlIDQ1JSkiLCJoc2woMCA4NCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb246aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCA4NCUgNDUlKSIsImhzbCgwIDg0JSA2NSUpIil9OwogICAgICB9CgogICAgICAuYXBwY29udGVudCB7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpOwogICAgICAgIGJvdHRvbTogMjRweDsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjQwcHgpOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYmctc2Vjb25kYXJ5KTsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAuYXBwY29udGVudDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IC04cHg7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gYm90dG9tLAogICAgICAgICAgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IC04cHg7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdG8gdG9wLAogICAgICAgICAgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAwJSAvIDAuNCkiKX0sCiAgICAgICAgICAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjAzKSIsImhzbCgwIDAlIDAlIC8gMC4xMikiKX0sCiAgICAgICAgICB0cmFuc3BhcmVudAogICAgICAgICk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sYmFyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWJnLXRlcnRpYXJ5KTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItZGVmYXVsdCk7CiAgICAgICAgei1pbmRleDogMTE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwogICAgICB9CgogICAgICAuY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdHJvbmcpOwoKICAgICAgfQoKICAgICAgLmNvbnRyb2w6Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAuY29udHJvbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy1jb25uZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuY29udHJvbC5zdGF0dXMtdGVybWluYWwgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogR2xvYmFsIE1lc3NhZ2UgQmFubmVycyAqLwogICAgICAubWVzc2FnZUJhbm5lckFyZWEgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMjQwcHg7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1kZWZhdWx0KTsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlRG93biAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci5kaXNtaXNzaW5nIHsKICAgICAgICBhbmltYXRpb246IGJhbm5lclNsaWRlVXAgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGJhbm5lclNsaWRlRG93biB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgYmFubmVyU2xpZGVVcCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2VCYW5uZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMTUpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMTgpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpOwogICAgICB9CgogICAgICAubWVzc2FnZUJhbm5lci1hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3MgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGluZm8gKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItaW5mbyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NyUpIiwiaHNsKDIxMCA1MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTAgNzAlIDMwJSkiLCJoc2woMjEwIDcwJSA4MCUpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzAwODRmZjsKICAgICAgfQogICAgICAubWVzc2FnZUJhbm5lci1pbmZvIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICMwMDg0ZmY7CiAgICAgIH0KCiAgICAgIC8qIE1lc3NhZ2UgdHlwZTogc3VjY2VzcyAqLwogICAgICAubWVzc2FnZUJhbm5lci1zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTclKSIsImhzbCgxNDIgMzAlIDEwJSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMTQyIDUwJSAyNSUpIiwiaHNsKDE0MiA1MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMyMmM1NWU7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItc3VjY2VzcyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjMjJjNTVlOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IHdhcm5pbmcgKi8KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgzOCA5MCUgOTclKSIsImhzbCgzOCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgzOCA2MCUgMjUlKSIsImhzbCgzOCA2MCUgODAlKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmNTllMGI7CiAgICAgIH0KICAgICAgLm1lc3NhZ2VCYW5uZXItd2FybmluZyBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAjZjU5ZTBiOwogICAgICB9CgogICAgICAvKiBNZXNzYWdlIHR5cGU6IGVycm9yICovCiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgNzAlIDk3JSkiLCJoc2woMCA0MCUgMTAlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDYwJSAzMCUpIiwiaHNsKDAgNjAlIDgwJSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZWY0NDQ0OwogICAgICB9CiAgICAgIC5tZXNzYWdlQmFubmVyLWVycm9yIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlQmFubmVyLWRpc21pc3M6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBjb250ZW50IHsKICAgICAgICB0b3A6IHZhcigtLWJhbm5lci1hcmVhLWhlaWdodCwgMHB4KTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHggLSB2YXIoLS1iYW5uZXItYXJlYS1oZWlnaHQsIDBweCkpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWljb24td3JhcHBlciI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmxheW91dEdyaWQifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBOYW1lIj4ke3RoaXMubmFtZX08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idmlld1RhYnMtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+TmF2aWdhdGlvbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3VGFicyI+CiAgICAgICAgICAgICAgJHt0aGlzLnZpZXdUYWJzLm1hcChMPT57bGV0IEU9ISFMLnN1YlZpZXdzPy5sZW5ndGgsQj1FJiZ0aGlzLmlzR3JvdXBBY3RpdmUoTCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiAke3RoaXMuc2VsZWN0ZWRWaWV3PT09TD8ic2VsZWN0ZWQiOiIifSAke0U/Imhhc1N1YnMiOiIifSAke0I/Imdyb3VwQWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMubG9hZFZpZXcoTCl9CiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAke0wuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7TC5pY29uTmFtZS5pbmNsdWRlcygiOiIpP0wuaWNvbk5hbWU6YGx1Y2lkZToke0wuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpmaWxlIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtMLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICR7RT93YAogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgJHtFP3dgCiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InN1YlZpZXdzICR7Qj8iZXhwYW5kZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID9pbmVydD0keyFCfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YlZpZXdzLWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgJHtMLnN1YlZpZXdzLm1hcChDPT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idmlld1RhYiBzdWIgJHt0aGlzLnNlbGVjdGVkVmlldz09PUM/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3o9Pnt6LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubG9hZFZpZXcoQyl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke0MuaWNvbk5hbWU/d2AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke0MuaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9DLmljb25OYW1lOmBsdWNpZGU6JHtDLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpkb3QifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7Qy5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBBY3Rpb25zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uIiBAY2xpY2s9JHsoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ291dCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6bG9nT3V0In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPlNpZ24gb3V0PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5fYWN0aXZlTWVzc2FnZXMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlQmFubmVyQXJlYSI+CiAgICAgICAgICAke3RoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcChMPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im1lc3NhZ2VCYW5uZXIgbWVzc2FnZUJhbm5lci0ke0wudHlwZX0iCiAgICAgICAgICAgICAgZGF0YS1tZXNzYWdlLWlkPSIke0wuaWR9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLmdldE1lc3NhZ2VJY29uKEwpfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lc3NhZ2VCYW5uZXItdGV4dCI+JHtMLm1lc3NhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICR7TC5hY3Rpb25zPy5sZW5ndGg/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICR7TC5hY3Rpb25zLm1hcChFPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItYWN0aW9uIiBAY2xpY2s9JHsoKT0+RS5hY3Rpb24oKX0+CiAgICAgICAgICAgICAgICAgICAgICAke0UuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke0UuaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9FLmljb25OYW1lOmBsdWNpZGU6JHtFLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtFLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHtMLmRpc21pc3NpYmxlIT09ITE/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2VCYW5uZXItZGlzbWlzcyIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlTWVzc2FnZShMLmlkKX0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp4In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJhcHBjb250ZW50Ij4KICAgICAgICAgIDwhLS0gQ29udGVudCBnb2VzIGhlcmUgLS0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy1jb25uZWN0ZWQiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6d2lmaSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+Q29ubmVjdGVkPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIHN0YXR1cy10ZXJtaW5hbCIgQGNsaWNrPSR7dGhpcy5sYXVuY2hUZXJtaW5hbH0+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTp0ZXJtaW5hbCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4+VGVybWluYWw8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChMKXtsZXQgRT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtpZihzdXBlci5maXJzdFVwZGF0ZWQoTCksdGhpcy52aWV3VGFicyYmdGhpcy52aWV3VGFicy5sZW5ndGg+MCl7bGV0IEI9dGhpcy5zZWxlY3RlZFZpZXd8fHRoaXMudmlld1RhYnNbMF07YXdhaXQgdGhpcy5sb2FkVmlldyhCKX19d2lsbFVwZGF0ZShMKXtpZihMLmhhcygiZ2xvYmFsTWVzc2FnZXMiKSl7bGV0IEU9bmV3IFNldCh0aGlzLmdsb2JhbE1lc3NhZ2VzLm1hcChGPT5GLmlkKSksQj1uZXcgU2V0KHRoaXMuX2FjdGl2ZU1lc3NhZ2VzLm1hcChGPT5GLmlkKSksQz10aGlzLmdsb2JhbE1lc3NhZ2VzLmZpbHRlcihGPT4hQi5oYXMoRi5pZCkpLHo9TC5nZXQoImdsb2JhbE1lc3NhZ2VzIil8fFtdLEE9bmV3IFNldCh6Lm1hcChGPT5GLmlkKSksJD1uZXcgU2V0KFsuLi5BXS5maWx0ZXIoRj0+IUUuaGFzKEYpKSk7dGhpcy5fYWN0aXZlTWVzc2FnZXM9Wy4uLnRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihGPT4hJC5oYXMoRi5pZCkpLC4uLkNdfX11cGRhdGVkKEwpe3N1cGVyLnVwZGF0ZWQoTCksdGhpcy51cGRhdGVCYW5uZXJPZmZzZXQoKX11cGRhdGVCYW5uZXJPZmZzZXQoKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgTD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tZXNzYWdlQmFubmVyQXJlYSIpLEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLEI9TD9MLm9mZnNldEhlaWdodDowO0U/LnN0eWxlLnNldFByb3BlcnR5KCItLWJhbm5lci1hcmVhLWhlaWdodCIsYCR7Qn1weGApfSl9Z2V0TWVzc2FnZUljb24oTCl7cmV0dXJuIEwuaWNvbj9MLmljb246e2luZm86Imx1Y2lkZTppbmZvIixzdWNjZXNzOiJsdWNpZGU6Y2lyY2xlQ2hlY2siLHdhcm5pbmc6Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0IixlcnJvcjoibHVjaWRlOmNpcmNsZVgifVtMLnR5cGVdfWFkZE1lc3NhZ2UoTCl7bGV0IEU9TC5pZHx8YG1zZy0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YCxCPXtkaXNtaXNzaWJsZTohMCwuLi5MLGlkOkV9O3JldHVybiB0aGlzLl9hY3RpdmVNZXNzYWdlcz1bLi4udGhpcy5fYWN0aXZlTWVzc2FnZXMsQl0sRX1yZW1vdmVNZXNzYWdlKEwpe2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtbWVzc2FnZS1pZD0iJHtMfSJdYCk7RT8oRS5jbGFzc0xpc3QuYWRkKCJkaXNtaXNzaW5nIiksRS5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25lbmQiLCgpPT57dGhpcy5fYWN0aXZlTWVzc2FnZXM9dGhpcy5fYWN0aXZlTWVzc2FnZXMuZmlsdGVyKEI9PkIuaWQhPT1MKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZXNzYWdlLWRpc21pc3MiLHtkZXRhaWw6e2lkOkx9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9LHtvbmNlOiEwfSkpOnRoaXMuX2FjdGl2ZU1lc3NhZ2VzPXRoaXMuX2FjdGl2ZU1lc3NhZ2VzLmZpbHRlcihCPT5CLmlkIT09TCl9Y2xlYXJNZXNzYWdlcygpe3RoaXMuX2FjdGl2ZU1lc3NhZ2VzPVtdfWN1cnJlbnRUZXJtaW5hbD0oaGwodGhpcyxTKSxudWxsKTthc3luYyBsYXVuY2hUZXJtaW5hbCgpe2xldCBMPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2lmKHRoaXMuY3VycmVudFRlcm1pbmFsKXthd2FpdCB0aGlzLmNsb3NlVGVybWluYWwoKTtyZXR1cm59bGV0IEU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikse0RlZXNXb3Jrc3BhY2VUZXJtaW5hbDpCfT1hd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oS3JlKCksTHJhKSksQz1uZXcgQjtyZXR1cm4gQy5zZXR1cENvbW1hbmQ9dGhpcy50ZXJtaW5hbFNldHVwQ29tbWFuZCx0aGlzLmN1cnJlbnRUZXJtaW5hbD1DLEUuYXBwZW5kQ2hpbGQoQyksQy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLEMuc3R5bGUuekluZGV4PSIxMCIsQy5zdHlsZS50b3A9InZhcigtLWJhbm5lci1hcmVhLWhlaWdodCwgMHB4KSIsQy5zdHlsZS5sZWZ0PSIyNDBweCIsQy5zdHlsZS5yaWdodD0iMHB4IixDLnN0eWxlLmhlaWdodD0iYXV0byIsQy5zdHlsZS5ib3R0b209IjI0cHgiLEMuc3R5bGUub3BhY2l0eT0iMCIsQy5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk5KSIsQy5zdHlsZS50cmFuc2l0aW9uPSJhbGwgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSIsQy5zdHlsZS5ib3hTaGFkb3c9IjAgMjVweCA1MHB4IC0xMnB4IHJnYigwIDAgMCAvIDAuNSksIDAgMCAwIDFweCByZ2IoMjU1IDI1NSAyNTUgLyAwLjA1KSIsQy5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9PnRoaXMuY2xvc2VUZXJtaW5hbCgpKSxhd2FpdCBMLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksQy5zdHlsZS5vcGFjaXR5PSIxIixDLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwKSBzY2FsZSgxKSIsQ31hc3luYyBjbG9zZVRlcm1pbmFsKCl7bGV0IEw9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5jdXJyZW50VGVybWluYWwmJih0aGlzLmN1cnJlbnRUZXJtaW5hbC5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLmN1cnJlbnRUZXJtaW5hbC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk5KSIsYXdhaXQgTC5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDI1MCksdGhpcy5jdXJyZW50VGVybWluYWwucmVtb3ZlKCksdGhpcy5jdXJyZW50VGVybWluYWw9bnVsbCl9aXNHcm91cEFjdGl2ZShMKXtyZXR1cm4gdGhpcy5zZWxlY3RlZFZpZXc9PT1MPyEwOkwuc3ViVmlld3M/LnNvbWUoRT0+RT09PXRoaXMuc2VsZWN0ZWRWaWV3KT8/ITF9Y3VycmVudFZpZXc7YXN5bmMgbG9hZFZpZXcoTCl7aWYoIUwuZWxlbWVudCYmTC5zdWJWaWV3cz8ubGVuZ3RoKXtsZXQgQz1MLnN1YlZpZXdzLmZpbmQoej0+ei5lbGVtZW50KTtyZXR1cm4gQz90aGlzLmxvYWRWaWV3KEMpOnZvaWQgMH1pZighTC5lbGVtZW50KXJldHVybjtsZXQgRT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmFwcGNvbnRlbnQiKSxCPW5ldyBMLmVsZW1lbnQ7dGhpcy5jdXJyZW50VmlldyYmdGhpcy5jdXJyZW50Vmlldy5yZW1vdmUoKSxFLmFwcGVuZENoaWxkKEIpLHRoaXMuY3VycmVudFZpZXc9Qix0aGlzLnNlbGVjdGVkVmlldz1MLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctc2VsZWN0Iix7ZGV0YWlsOnt2aWV3Okx9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9c3RhdGlje2hsKGEscil9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBPcmE9dSgoKT0+e05yYSgpfSk7dmFyIFJyYSxGcmE9dSgoKT0+e3ZlKCk7UnJhPWkoKCk9PndgCiAgPHN0eWxlPgogICAgYm9keSB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgIH0KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtc2ltcGxlLWxvZ2luIAogICAgICBuYW1lPSJNeSBBcHBsaWNhdGlvbiIKICAgICAgQGxvZ2luPSR7dD0+e2NvbnNvbGUubG9nKCJMb2dpbiBldmVudCByZWNlaXZlZDoiLHQuZGV0YWlsKTtsZXQgZT10LmRldGFpbD8uZGF0YXx8dC5kZXRhaWw7ZT8udXNlcm5hbWUmJmU/LnBhc3N3b3JkP2FsZXJ0KGBMb2dpbiBhdHRlbXB0ZWQgd2l0aDoKVXNlcm5hbWU6ICR7ZS51c2VybmFtZX0KUGFzc3dvcmQ6ICR7ZS5wYXNzd29yZH1gKTpjb25zb2xlLmVycm9yKCJJbnZhbGlkIGxvZ2luIGRhdGEgc3RydWN0dXJlOiIsdC5kZXRhaWwpfX0KICAgID4KICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICAgICAgPGgxPldlbGNvbWUhPC9oMT4KICAgICAgICA8cD5UaGlzIGlzIHRoZSBzbG90dGVkIGNvbnRlbnQgdGhhdCBhcHBlYXJzIGFmdGVyIGxvZ2luLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtc2ltcGxlLWxvZ2luPgogIDwvZGl2PgpgLCJkZW1vRnVuYyIpfSk7dmFyIEJyYSx5OXQsSHJhLHFyYT11KCgpPT57RnJhKCk7dmUoKTtsdCgpO25zKCk7QnJhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSx5OXQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEhyYT0oKCk9PntsZXQgdD1bdWUoImRlZXMtc2ltcGxlLWxvZ2luIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNTaW1wbGVMb2dpbiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1AoKV0sQnJhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ibmFtZSJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLm5hbWUsImdldCIpLHNldDppKChmLHApPT57Zi5uYW1lPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxCcmEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1ScmE7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT15OXQodGhpcyxvLCJBcHBsaWNhdGlvbiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5sb2dpbkNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1iZy1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnNsb3RDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmxvZ2luIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDM2MHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sb2dpbi1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOwogICAgICB9CgogICAgICAuc3ViaGVhZGVyIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZTo6cGFydChjb250ZW50KSB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIGRlZXMtZm9ybSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIGRlZXMtaW5wdXQtdGV4dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSBkZWVzLWZvcm0tc3VibWl0IHsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJsb2dpbkNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9naW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibG9naW4taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj5TaWduIGluPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YmhlYWRlciI+RW50ZXIgeW91ciBjcmVkZW50aWFscyB0byBhY2Nlc3MgJHt0aGlzLm5hbWV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRpbGUgLmhlYWRpbmc9JHsiQ3JlZGVudGlhbHMifT4KICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0idXNlcm5hbWUiIGxhYmVsPSJVc2VybmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InBhc3N3b3JkIiBsYWJlbD0iUGFzc3dvcmQiIGlzUGFzc3dvcmRCb29sIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNpZ24gaW48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGFpbmVyIj4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoZCl7c3VwZXIuZmlyc3RVcGRhdGVkKGQpO2xldCBmPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtmJiZmLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwocD0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvZ2luIix7ZGV0YWlsOnAuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9KSl9YXN5bmMgc3dpdGNoVG9TbG90dGVkQ29udGVudCgpe2xldCBkPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5sb2dpbiIpLHA9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5sb2dpbkNvbnRhaW5lciIpLGg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zbG90Q29udGFpbmVyIik7Zi5zdHlsZS5vcGFjaXR5PSIwIixmLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgyMHB4KSIscC5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixoLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgyMHB4KSIsYXdhaXQgZC5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksaC5zdHlsZS5vcGFjaXR5PSIxIixoLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwcHgpIixhd2FpdCBkLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzAwKSxoLnN0eWxlLnBvaW50ZXJFdmVudHM9ImFsbCJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHk5dCh0aGlzLGwpfXN0YXRpY3t5OXQoYSxyKX19O3JldHVybiBjPWF9KSgpfSk7dmFyIFZyYT11KCgpPT57cXJhKCl9KTt2YXIganJhPXUoKCk9PntUcmEoKTtPcmEoKTtWcmEoKX0pO3ZhciBVcmE9dSgoKT0+e0tyKCl9KTt2YXIgV3JhLEdyYT11KCgpPT57dmUoKTtXcmE9aSgoKT0+d2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW9XcmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgYmFja2dyb3VuZDogIzg4ODg4ODsKICAgICAgfQogICAgICAubG9ncyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB3aWR0aDogNjAwcHg7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgfQogICAgICAubG9ncyBkaXYgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vV3JhcHBlciI+CiAgICAgIDxkZWVzLXNlYXJjaGJhcgogICAgICAgIEBzZWFyY2gtY2hhbmdlZD0ke2kocj0+e2xldCBzPXIudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjY2hhbmdlZCIpO3MmJihzLnRleHRDb250ZW50PWBzZWFyY2gtY2hhbmdlZDogJHtyLmRldGFpbC52YWx1ZX1gKX0sIm9uQ2hhbmdlZCIpfQogICAgICAgIEBzZWFyY2gtc3VibWl0PSR7aShyPT57bGV0IHM9ci50YXJnZXQuY2xvc2VzdCgiLmRlbW9XcmFwcGVyIik/LnF1ZXJ5U2VsZWN0b3IoIiNzdWJtaXR0ZWQiKTtzJiYocy50ZXh0Q29udGVudD1gc2VhcmNoLXN1Ym1pdDogJHtyLmRldGFpbC52YWx1ZX1gKX0sIm9uU3VibWl0Iil9CiAgICAgID48L2RlZXMtc2VhcmNoYmFyPgogICAgICA8ZGl2IGNsYXNzPSJsb2dzIj4KICAgICAgICA8ZGl2IGlkPSJjaGFuZ2VkIj5zZWFyY2gtY2hhbmdlZDo8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJzdWJtaXR0ZWQiPnNlYXJjaC1zdWJtaXQ6PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCwiZGVtb0Z1bmMiKX0pO3ZhciBZcmEsdzl0LEtyYSxacmE9dSgoKT0+e3ZlKCk7ZmMoKTtHcmEoKTtsdCgpO1lyYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdzl0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxLcmE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXNlYXJjaGJhciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzU2VhcmNoYmFyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCgpXSxZcmEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJmaWx0ZXJzImluIGYsImhhcyIpLGdldDppKGY9PmYuZmlsdGVycywiZ2V0Iiksc2V0OmkoKGYscCk9PntmLmZpbHRlcnM9cH0sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLFlyYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPVdyYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBEZWVzIFNhbnM7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlZWVlZWIiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAuc2VhcmNoYm94Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYxNSIpfTsKICAgICAgICAtLWJveEhlaWdodDogNjBweDsKICAgICAgICBoZWlnaHQ6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE0MHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uIHsKICAgICAgICAtLWJ1dHRvblBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VlZWVlYiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ib3hIZWlnaHQpIC0gKHZhcigtLWJ1dHRvblBhZGRpbmcpICogMikpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSA7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMsIGJhY2tncm91bmQgMC4xczsKICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvblBhZGRpbmcpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZShScC5ibHVlLE9wLmJsdWUpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbjphY3RpdmUgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKFJwLmJsdWVBY3RpdmUsT3AuYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXJzIHsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07I2U9dzl0KHRoaXMsbyxbXSk7Z2V0IGZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZmlsdGVycyhkKXt0aGlzLiNlPWR9c2VhcmNoSW5wdXQ9dzl0KHRoaXMsbCk7c2VhcmNoQnV0dG9uO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Q29udGFpbmVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IllvdXIgU2tpbGxzIChlLmcuIFR5cGVTY3JpcHQsIFJ1c3QsIFByb2plY3RtYW5hZ2VtZW50KSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hCdXR0b24iPlNlYXJjaCAtPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmZpbHRlcnMubGVuZ3RoPjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXJzIj4KICAgICAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+RmlsdGVyczwvZGVlcy1oZWFkaW5nPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIC5sYWJlbD0keyJsb2NhdGlvbiJ9PjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kaXY+ICAKICAgICAgYDp3YGB9CiAgICBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNoYW5nZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9KSx0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGQ9PntkLmtleT09PSJFbnRlciImJnRoaXMuX2Rpc3BhdGNoU3VibWl0KCl9KSx0aGlzLnNlYXJjaEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuX2Rpc3BhdGNoU3VibWl0KCkpfV9kaXNwYXRjaFN1Ym1pdCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1zdWJtaXQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9c3RhdGlje3c5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgUXJhPXUoKCk9PntacmEoKX0pO3ZhciBYcmEsSnJhPXUoKCk9Pnt2ZSgpO1hyYT1pKCgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICB9CgogICAgLnRva2VuLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgIGdhcDogMTZweDsKICAgIH0KCiAgICAudG9rZW4taXRlbSB7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQoKICAgIC50b2tlbi1uYW1lIHsKICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICB9CgogICAgLnRva2VuLXZhbHVlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zcGFjaW5nLWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGdhcDogOHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnNwYWNpbmctYm94IHsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB9CgogICAgLnJhZGl1cy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnJhZGl1cy1ib3ggewogICAgICB3aWR0aDogNjBweDsKICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAuc2hhZG93LWRlbW8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuc2hhZG93LWJveCB7CiAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICB9CgogICAgLmhlaWdodC1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KCiAgICAuaGVpZ2h0LWJveCB7CiAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgd2lkdGg6IDEyMHB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXRoZW1lPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TcGFjaW5nIFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtc3BhY2luZy14cyB0aHJvdWdoIC0tZGVlcy1zcGFjaW5nLTN4bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14cyk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eHMgKDRweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctc20pOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnNtICg4cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1tZCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZCAoMTJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPmxnICgxNnB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+eGwgKDI0cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy0yeGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjJ4bCAoMzJweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+M3hsICg0OHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Qm9yZGVyIFJhZGl1cyBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXJhZGl1cy14cyB0aHJvdWdoIC0tZGVlcy1yYWRpdXMtZnVsbAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14cyk7Ij54czwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4ycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjRweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj44cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLXhsKTsiPnhsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjEycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLWZ1bGwpOyI+ZnVsbDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj45OTlweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2hhZG93IEVsZXZhdGlvbiBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXNoYWRvdy14cyB0aHJvdWdoIC0tZGVlcy1zaGFkb3ctbGcKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3cteHMpOyI+eHM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWluaW1hbDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+c3VidGxlPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5tZWRpdW08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LWxnKTsiPmxnPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnByb21pbmVudDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29udHJvbCBIZWlnaHQgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1jb250cm9sLWhlaWdodC1zbSB0aHJvdWdoIC0tZGVlcy1jb250cm9sLWhlaWdodC14bAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1kZW1vIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtc20pOyI+c208L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MzJweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjM2cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40MHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQteGwpOyI+eGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NDhweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VHJhbnNpdGlvbiBEdXJhdGlvbnM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy10cmFuc2l0aW9uLWZhc3QgdGhyb3VnaCAtLWRlZXMtdHJhbnNpdGlvbi1zbG93ZXIKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1mYXN0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjFzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4tLWRlZXMtdHJhbnNpdGlvbi1kZWZhdWx0PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjE1czwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvdzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4yczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLXZhbHVlIj4wLjNzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtdGhlbWU+CiAgPC9kaXY+CmAsImRlbW9GdW5jIil9KTt2YXIgUncsSWMsZWFhLHRhYT11KCgpPT57dmUoKTtsdCgpO0pyYSgpO1J3PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxJYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZWFhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy10aGVtZSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzVGhlbWUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOk9iamVjdH0pXSxwPVtQKHt0eXBlOk9iamVjdH0pXSx2PVtQKHt0eXBlOk9iamVjdH0pXSx5PVtQKHt0eXBlOk9iamVjdH0pXSxSdyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNwYWNpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImN1c3RvbVNwYWNpbmciaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jdXN0b21TcGFjaW5nLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuY3VzdG9tU3BhY2luZz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksUncodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21SYWRpdXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImN1c3RvbVJhZGl1cyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmN1c3RvbVJhZGl1cywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmN1c3RvbVJhZGl1cz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksUncodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21TaGFkb3dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJjdXN0b21TaGFkb3dzImluIFMsImhhcyIpLGdldDppKFM9PlMuY3VzdG9tU2hhZG93cywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmN1c3RvbVNoYWRvd3M9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLFJ3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tVHJhbnNpdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+ImN1c3RvbVRyYW5zaXRpb25zImluIFMsImhhcyIpLGdldDppKFM9PlMuY3VzdG9tVHJhbnNpdGlvbnMsImdldCIpLHNldDppKChTLE8pPT57Uy5jdXN0b21UcmFuc2l0aW9ucz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksUncodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21Db250cm9sSGVpZ2h0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iY3VzdG9tQ29udHJvbEhlaWdodHMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5jdXN0b21Db250cm9sSGVpZ2h0cywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmN1c3RvbUNvbnRyb2xIZWlnaHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxSdyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPVhyYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT1JYyh0aGlzLG8sbnVsbCk7Z2V0IGN1c3RvbVNwYWNpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VzdG9tU3BhY2luZyhfKXt0aGlzLiNlPV99I3Q9KEljKHRoaXMsbCksSWModGhpcyxkLG51bGwpKTtnZXQgY3VzdG9tUmFkaXVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1c3RvbVJhZGl1cyhfKXt0aGlzLiN0PV99I3I9KEljKHRoaXMsZiksSWModGhpcyxoLG51bGwpKTtnZXQgY3VzdG9tU2hhZG93cygpe3JldHVybiB0aGlzLiNyfXNldCBjdXN0b21TaGFkb3dzKF8pe3RoaXMuI3I9X30jYT0oSWModGhpcyxtKSxJYyh0aGlzLGIsbnVsbCkpO2dldCBjdXN0b21UcmFuc2l0aW9ucygpe3JldHVybiB0aGlzLiNhfXNldCBjdXN0b21UcmFuc2l0aW9ucyhfKXt0aGlzLiNhPV99I2k9KEljKHRoaXMsZyksSWModGhpcyxrLG51bGwpKTtnZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoXyl7dGhpcy4jaT1ffXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgICR7dGhpcy5nZW5lcmF0ZUN1c3RvbVN0eWxlcygpfQogICAgICA8L3N0eWxlPgogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWdlbmVyYXRlQ3VzdG9tU3R5bGVzKCl7bGV0IF89WyI6aG9zdCB7Il07aWYodGhpcy5jdXN0b21TcGFjaW5nKWZvcihsZXRbUyxPXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tU3BhY2luZykpTyYmXy5wdXNoKGAgIC0tZGVlcy1zcGFjaW5nLSR7U306ICR7T307YCk7aWYodGhpcy5jdXN0b21SYWRpdXMpZm9yKGxldFtTLE9db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21SYWRpdXMpKU8mJl8ucHVzaChgICAtLWRlZXMtcmFkaXVzLSR7U306ICR7T307YCk7aWYodGhpcy5jdXN0b21TaGFkb3dzKWZvcihsZXRbUyxPXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tU2hhZG93cykpTyYmXy5wdXNoKGAgIC0tZGVlcy1zaGFkb3ctJHtTfTogJHtPfTtgKTtpZih0aGlzLmN1c3RvbVRyYW5zaXRpb25zKXtmb3IobGV0W1MsT11vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVRyYW5zaXRpb25zKSlpZihPKXtsZXQgTD1TPT09ImRlZmF1bHQiPyJkZWZhdWx0IjpTO18ucHVzaChgICAtLWRlZXMtdHJhbnNpdGlvbi0ke0x9OiAke099O2ApfX1pZih0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzKWZvcihsZXRbUyxPXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpKU8mJl8ucHVzaChgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtJHtTfTogJHtPfTtgKTtyZXR1cm4gXy5wdXNoKCJ9IiksXy5qb2luKGAKYCl9c2V0U3BhY2luZyhfLFMpe3RoaXMuY3VzdG9tU3BhY2luZz17Li4udGhpcy5jdXN0b21TcGFjaW5nLFtfXTpTfX1zZXRSYWRpdXMoXyxTKXt0aGlzLmN1c3RvbVJhZGl1cz17Li4udGhpcy5jdXN0b21SYWRpdXMsW19dOlN9fXNldFNoYWRvdyhfLFMpe3RoaXMuY3VzdG9tU2hhZG93cz17Li4udGhpcy5jdXN0b21TaGFkb3dzLFtfXTpTfX1zZXRUcmFuc2l0aW9uKF8sUyl7dGhpcy5jdXN0b21UcmFuc2l0aW9ucz17Li4udGhpcy5jdXN0b21UcmFuc2l0aW9ucyxbX106U319c2V0Q29udHJvbEhlaWdodChfLFMpe3RoaXMuY3VzdG9tQ29udHJvbEhlaWdodHM9ey4uLnRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMsW19dOlN9fWdldFRoZW1lKCl7cmV0dXJue2NvbG9yczpzbC5jb2xvcnMsc3BhY2luZzp7Li4uc2wuc3BhY2luZywuLi50aGlzLmN1c3RvbVNwYWNpbmd9LHJhZGl1czp7Li4uc2wucmFkaXVzLC4uLnRoaXMuY3VzdG9tUmFkaXVzfSxzaGFkb3dzOnsuLi5zbC5zaGFkb3dzLC4uLnRoaXMuY3VzdG9tU2hhZG93c30sdHJhbnNpdGlvbnM6ey4uLnNsLnRyYW5zaXRpb25zLC4uLnRoaXMuY3VzdG9tVHJhbnNpdGlvbnN9LGNvbnRyb2xIZWlnaHRzOnsuLi5zbC5jb250cm9sSGVpZ2h0cywuLi50aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzfX19cmVzZXRUb0RlZmF1bHRzKCl7dGhpcy5jdXN0b21TcGFjaW5nPW51bGwsdGhpcy5jdXN0b21SYWRpdXM9bnVsbCx0aGlzLmN1c3RvbVNoYWRvd3M9bnVsbCx0aGlzLmN1c3RvbVRyYW5zaXRpb25zPW51bGwsdGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz1udWxsfWFwcGx5VGhlbWUoXyl7Xy5zcGFjaW5nJiYodGhpcy5jdXN0b21TcGFjaW5nPV8uc3BhY2luZyksXy5yYWRpdXMmJih0aGlzLmN1c3RvbVJhZGl1cz1fLnJhZGl1cyksXy5zaGFkb3dzJiYodGhpcy5jdXN0b21TaGFkb3dzPV8uc2hhZG93cyksXy50cmFuc2l0aW9ucyYmKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnM9Xy50cmFuc2l0aW9ucyksXy5jb250cm9sSGVpZ2h0cyYmKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHM9Xy5jb250cm9sSGVpZ2h0cyl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEljKHRoaXMsTSl9c3RhdGlje0ljKGEscil9fTtyZXR1cm4gTj1hfSkoKX0pO3ZhciByYWE9dSgoKT0+e3RhYSgpfSk7dmFyIGFhYSxpYWEsc2FhPXUoKCk9Pnt2ZSgpO2s5dCgpO2FhYT1pKGFzeW5jIHQ9Pnthd2FpdCBuZXcgUHJvbWlzZShlPT57d2luZG93LnNldFRpbWVvdXQoKCk9PmUoKSx0KX0pfSwid2FpdEZvckRlbW9TdGVwIiksaWFhPWkoKCk9PntsZXQgdD0hMTtyZXR1cm4gd2AKICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogMTZweDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgcGFkZGluZzogMzJweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICAgIDxwIHN0eWxlPSJtYXJnaW46IDA7IG1heC13aWR0aDogNTQwcHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsiPgogICAgICAgIExhdW5jaGVzIHRoZSB1cGRhdGVyIGFzIGEgc3RlcHBlciBmbG93LiBUaGUgZmlyc3Qgc3RlcCBzdHJlYW1zIHRlcm1pbmFsLXN0eWxlCiAgICAgICAgcHJvZ3Jlc3MgdXBkYXRlcyBhbmQgdGhlbiBtb3ZlcyBhdXRvbWF0aWNhbGx5IHRvIHRoZSByZWFkeSBzdGVwLgogICAgICA8L3A+CiAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgIEBjbGljaz0ke2FzeW5jKCk9PntpZighdCl7dD0hMDt0cnl7bGV0IGU9YXdhaXQgUTZlLmNyZWF0ZUFuZFNob3coe2N1cnJlbnRWZXJzaW9uOiIzLjc5LjAiLHVwZGF0ZWRWZXJzaW9uOiIzLjgwLjAiLG1vcmVJbmZvVXJsOiJodHRwczovL2NvZGUuZm9zcy5nbG9iYWwvZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciLGNoYW5nZWxvZ1VybDoiaHR0cHM6Ly9jb2RlLmZvc3MuZ2xvYmFsL2Rlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nLy0vYmxvYi9tYWluL2NoYW5nZWxvZy5tZCIsc3VjY2Vzc0FjdGlvbjoiY2xvc2UiLHN1Y2Nlc3NEZWxheU1zOjFlNH0pLHI9W3tsaW5lOiJDaGVja2luZyByZWxlYXNlIG1hbmlmZXN0IixwZXJjZW50YWdlOjEyLGRlbGF5OjU1MH0se2xpbmU6IkRvd25sb2FkaW5nIHNpZ25lZCBidW5kbGUiLHBlcmNlbnRhZ2U6MzMsZGVsYXk6NzAwfSx7bGluZToiVmVyaWZ5aW5nIGNoZWNrc3VtIixwZXJjZW50YWdlOjUxLGRlbGF5OjY1MH0se2xpbmU6IkFwcGx5aW5nIHVwZGF0ZSBmaWxlcyIscGVyY2VudGFnZTo3NCxkZWxheTo4MDB9LHtsaW5lOiJDbGVhbmluZyB1cCBwcmV2aW91cyByZWxlYXNlIixwZXJjZW50YWdlOjkxLGRlbGF5OjYwMH1dO2UudXBkYXRlUHJvZ3Jlc3Moe3N0YXR1c1RleHQ6IkNoZWNraW5nIHJlbGVhc2UgbWFuaWZlc3QuLi4iLHRlcm1pbmFsTGluZXM6WyJDaGVja2luZyByZWxlYXNlIG1hbmlmZXN0Il0scGVyY2VudGFnZToxMixpbmRldGVybWluYXRlOiEwfSk7Zm9yKGxldFthLHNdb2Ygci5lbnRyaWVzKCkpYT4wJiYoZS5hcHBlbmRQcm9ncmVzc0xpbmUocy5saW5lKSxlLnVwZGF0ZVByb2dyZXNzKHtwZXJjZW50YWdlOnMucGVyY2VudGFnZSxzdGF0dXNUZXh0OmAke3MubGluZX0uLi5gfSkpLGF3YWl0IGFhYShzLmRlbGF5KTthd2FpdCBlLm1hcmtVcGRhdGVSZWFkeSgpLGF3YWl0IGFhYSgxMDUwMCl9ZmluYWxseXt0PSExfX19fQogICAgICA+U2hvdyB1cGRhdGVyIGZsb3c8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CiAgYH0sImRlbW9GdW5jIil9KTt2YXIgd2YsczEsUTZlLGs5dD11KCgpPT57dmUoKTtzYWEoKTtQNmUoKTtfcygpO3dmPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxzMT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sUTZlPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy11cGRhdGVyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNVcGRhdGVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpTdHJpbmd9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpTdHJpbmd9KV0sTj1bUCh7dHlwZTpOdW1iZXJ9KV0sTz1bUCh7dHlwZTpTdHJpbmd9KV0sd2YodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VmVyc2lvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4iY3VycmVudFZlcnNpb24iaW4geiwiaGFzIiksZ2V0Omkoej0+ei5jdXJyZW50VmVyc2lvbiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmN1cnJlbnRWZXJzaW9uPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSx3Zih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVwZGF0ZWRWZXJzaW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ1cGRhdGVkVmVyc2lvbiJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnVwZGF0ZWRWZXJzaW9uLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oudXBkYXRlZFZlcnNpb249QX0sInNldCIpfSxtZXRhZGF0YTpDfSxkLGYpLHdmKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9yZUluZm9VcmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+Im1vcmVJbmZvVXJsImluIHosImhhcyIpLGdldDppKHo9PnoubW9yZUluZm9VcmwsImdldCIpLHNldDppKCh6LEEpPT57ei5tb3JlSW5mb1VybD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGgsbSksd2YodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjaGFuZ2Vsb2dVcmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+ImNoYW5nZWxvZ1VybCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmNoYW5nZWxvZ1VybCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmNoYW5nZWxvZ1VybD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksd2YodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWNjZXNzQWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJzdWNjZXNzQWN0aW9uImluIHosImhhcyIpLGdldDppKHo9Pnouc3VjY2Vzc0FjdGlvbiwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnN1Y2Nlc3NBY3Rpb249QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLHdmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3VjY2Vzc0RlbGF5TXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InN1Y2Nlc3NEZWxheU1zImluIHosImhhcyIpLGdldDppKHo9Pnouc3VjY2Vzc0RlbGF5TXMsImdldCIpLHNldDppKCh6LEEpPT57ei5zdWNjZXNzRGVsYXlNcz1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LF8sUyksd2YodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWNjZXNzQWN0aW9uTGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InN1Y2Nlc3NBY3Rpb25MYWJlbCJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LnN1Y2Nlc3NBY3Rpb25MYWJlbCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnN1Y2Nlc3NBY3Rpb25MYWJlbD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LEwsRSksd2YobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxyKSxCPWE9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1pYWE7c3RhdGljIGRlbW9Hcm91cHM9WyJVdGlsaXR5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coQz17fSl7bGV0IHo9bmV3IEI7cmV0dXJuIHouY3VycmVudFZlcnNpb249Qy5jdXJyZW50VmVyc2lvbj8/IiIsei51cGRhdGVkVmVyc2lvbj1DLnVwZGF0ZWRWZXJzaW9uPz8iIix6Lm1vcmVJbmZvVXJsPUMubW9yZUluZm9Vcmw/PyIiLHouY2hhbmdlbG9nVXJsPUMuY2hhbmdlbG9nVXJsPz8iIix6LnN1Y2Nlc3NBY3Rpb249Qy5zdWNjZXNzQWN0aW9uPz8iY2xvc2UiLHouc3VjY2Vzc0RlbGF5TXM9Qy5zdWNjZXNzRGVsYXlNcz8/MWU0LHouc3VjY2Vzc0FjdGlvbkxhYmVsPUMuc3VjY2Vzc0FjdGlvbkxhYmVsPz8iIix6Lm9uU3VjY2Vzc0FjdGlvbj1DLm9uU3VjY2Vzc0FjdGlvbj8/bnVsbCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHopLGF3YWl0IHouc2hvdygpLHp9I2U9czEodGhpcyxvLCIiKTtnZXQgY3VycmVudFZlcnNpb24oKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudFZlcnNpb24oQyl7dGhpcy4jZT1DfSN0PShzMSh0aGlzLGwpLHMxKHRoaXMsZCwiIikpO2dldCB1cGRhdGVkVmVyc2lvbigpe3JldHVybiB0aGlzLiN0fXNldCB1cGRhdGVkVmVyc2lvbihDKXt0aGlzLiN0PUN9I3I9KHMxKHRoaXMsZiksczEodGhpcyxoLCIiKSk7Z2V0IG1vcmVJbmZvVXJsKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1vcmVJbmZvVXJsKEMpe3RoaXMuI3I9Q30jYT0oczEodGhpcyxtKSxzMSh0aGlzLGIsIiIpKTtnZXQgY2hhbmdlbG9nVXJsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGNoYW5nZWxvZ1VybChDKXt0aGlzLiNhPUN9I2k9KHMxKHRoaXMsZyksczEodGhpcyxrLCJjbG9zZSIpKTtnZXQgc3VjY2Vzc0FjdGlvbigpe3JldHVybiB0aGlzLiNpfXNldCBzdWNjZXNzQWN0aW9uKEMpe3RoaXMuI2k9Q30jcz0oczEodGhpcyxNKSxzMSh0aGlzLF8sMWU0KSk7Z2V0IHN1Y2Nlc3NEZWxheU1zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHN1Y2Nlc3NEZWxheU1zKEMpe3RoaXMuI3M9Q30jbj0oczEodGhpcyxTKSxzMSh0aGlzLEwsIiIpKTtnZXQgc3VjY2Vzc0FjdGlvbkxhYmVsKCl7cmV0dXJuIHRoaXMuI259c2V0IHN1Y2Nlc3NBY3Rpb25MYWJlbChDKXt0aGlzLiNuPUN9c3RlcHBlcj0oczEodGhpcyxFKSxudWxsKTtwcm9ncmVzc1N0ZXA9bnVsbDtzaG93UHJvbWlzZT1udWxsO29uU3VjY2Vzc0FjdGlvbj1udWxsO3N0YXRpYyBzdHlsZXM9W3JlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zaG93KCl9YXN5bmMgc2hvdygpe2lmKCF0aGlzLnN0ZXBwZXI/LmlzQ29ubmVjdGVkKXtpZih0aGlzLnNob3dQcm9taXNlKXJldHVybiB0aGlzLnNob3dQcm9taXNlO3RoaXMuc2hvd1Byb21pc2U9dGhpcy5vcGVuU3RlcHBlckZsb3coKTt0cnl7YXdhaXQgdGhpcy5zaG93UHJvbWlzZX1maW5hbGx5e3RoaXMuc2hvd1Byb21pc2U9bnVsbH19fXVwZGF0ZVByb2dyZXNzKEMpeyF0aGlzLnN0ZXBwZXJ8fCF0aGlzLnByb2dyZXNzU3RlcHx8dGhpcy5zdGVwcGVyLnVwZGF0ZVByb2dyZXNzU3RlcChDLHRoaXMucHJvZ3Jlc3NTdGVwKX1hcHBlbmRQcm9ncmVzc0xpbmUoQyl7IXRoaXMuc3RlcHBlcnx8IXRoaXMucHJvZ3Jlc3NTdGVwfHx0aGlzLnN0ZXBwZXIuYXBwZW5kUHJvZ3Jlc3NTdGVwTGluZShDLHRoaXMucHJvZ3Jlc3NTdGVwKX1tYXJrVXBkYXRlRXJyb3IoQyl7dGhpcy5hcHBlbmRQcm9ncmVzc0xpbmUoYEVycm9yOiAke0N9YCksdGhpcy51cGRhdGVQcm9ncmVzcyh7aW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OkN9KX1hc3luYyBtYXJrVXBkYXRlUmVhZHkoKXshdGhpcy5zdGVwcGVyfHwhdGhpcy5wcm9ncmVzc1N0ZXB8fCh0aGlzLnN0ZXBwZXIudXBkYXRlUHJvZ3Jlc3NTdGVwKHtwZXJjZW50YWdlOjEwMCxpbmRldGVybWluYXRlOiExLHN0YXR1c1RleHQ6IlVwZGF0ZSByZWFkeS4ifSx0aGlzLnByb2dyZXNzU3RlcCksdGhpcy5zdGVwcGVyLmFwcGVuZFByb2dyZXNzU3RlcExpbmUoIlVwZGF0ZSByZWFkeSIsdGhpcy5wcm9ncmVzc1N0ZXApLHRoaXMuc3RlcHBlci5zZWxlY3RlZFN0ZXA9PT10aGlzLnByb2dyZXNzU3RlcCYmdGhpcy5zdGVwcGVyLmdvTmV4dCgpKX1hc3luYyBkZXN0cm95KCl7bGV0IEM9dGhpcy5zdGVwcGVyO3RoaXMuc3RlcHBlcj1udWxsLHRoaXMucHJvZ3Jlc3NTdGVwPW51bGwsQz8uaXNDb25uZWN0ZWQmJmF3YWl0IEMuZGVzdHJveSgpLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpfWFzeW5jIG9wZW5TdGVwcGVyRmxvdygpe2xldHtzdGVwczpDLHByb2dyZXNzU3RlcDp6fT10aGlzLmNyZWF0ZVVwZGF0ZXJTdGVwcygpO3RoaXMucHJvZ3Jlc3NTdGVwPXosdGhpcy5zdGVwcGVyPWF3YWl0IER3LmNyZWF0ZUFuZFNob3coe3N0ZXBzOkMsY2FuY2VsYWJsZTohMX0pfWNyZWF0ZVVwZGF0ZXJTdGVwcygpe2xldCBDPXRoaXMuZ2V0TGlua01lbnVPcHRpb25zKCksej17dGl0bGU6IlVwZGF0aW5nIHRoZSBhcHBsaWNhdGlvbiIsY29udGVudDp0aGlzLnJlbmRlclByb2dyZXNzQ29udGVudCgpLHByb2dyZXNzU3RlcDp7bGFiZWw6dGhpcy5nZXRQcm9ncmVzc0xhYmVsKCkscGVyY2VudGFnZTo1LGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzUm93czo0LHN0YXR1c1RleHQ6IlByZXBhcmluZyB1cGRhdGUuLi4iLHRlcm1pbmFsTGluZXM6WyJQcmVwYXJpbmcgdXBkYXRlIl19LG1lbnVPcHRpb25zOkMubGVuZ3RoPjA/Qzp2b2lkIDB9LEE9e3RpdGxlOnRoaXMudXBkYXRlZFZlcnNpb24/YFZlcnNpb24gJHt0aGlzLnVwZGF0ZWRWZXJzaW9ufSByZWFkeWA6IlVwZGF0ZSByZWFkeSIsY29udGVudDp0aGlzLnJlbmRlclJlYWR5Q29udGVudCgpLHByb2dyZXNzU3RlcDp7bGFiZWw6dGhpcy5nZXRTdWNjZXNzQ291bnRkb3duTGFiZWwodGhpcy5nZXRTdWNjZXNzRGVsYXlTZWNvbmRzKCkpLHBlcmNlbnRhZ2U6MCxpbmRldGVybWluYXRlOiExLHNob3dQZXJjZW50YWdlOiExLHN0YXR1c1Jvd3M6MixzdGF0dXNUZXh0OnRoaXMuZ2V0U3VjY2Vzc0NvdW50ZG93blN0YXR1cyh0aGlzLmdldFN1Y2Nlc3NEZWxheVNlY29uZHMoKSl9LHZhbGlkYXRpb25GdW5jOmkoYXN5bmMoJCxGLFkpPT57YXdhaXQgdGhpcy5ydW5TdWNjZXNzQ291bnRkb3duKCQsQSxZKX0sInZhbGlkYXRpb25GdW5jIil9O3JldHVybntzdGVwczpbeixBXSxwcm9ncmVzc1N0ZXA6en19Z2V0UHJvZ3Jlc3NMYWJlbCgpe3JldHVybiB0aGlzLmN1cnJlbnRWZXJzaW9uJiZ0aGlzLnVwZGF0ZWRWZXJzaW9uP2Ake3RoaXMuY3VycmVudFZlcnNpb259IC0+ICR7dGhpcy51cGRhdGVkVmVyc2lvbn1gOnRoaXMudXBkYXRlZFZlcnNpb24/YFByZXBhcmluZyAke3RoaXMudXBkYXRlZFZlcnNpb259YDoiQXBwbGljYXRpb24gdXBkYXRlIn1nZXRTdWNjZXNzRGVsYXlTZWNvbmRzKCl7cmV0dXJuIE1hdGgubWF4KDEsTWF0aC5jZWlsKHRoaXMuc3VjY2Vzc0RlbGF5TXMvMWUzKSl9Z2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpe3JldHVybiB0aGlzLnN1Y2Nlc3NBY3Rpb25MYWJlbD90aGlzLnN1Y2Nlc3NBY3Rpb25MYWJlbDp0aGlzLm9uU3VjY2Vzc0FjdGlvbj8iQ29udGludWluZyBhdXRvbWF0aWNhbGx5Ijp0aGlzLnN1Y2Nlc3NBY3Rpb249PT0icmVsb2FkIj8iUmVsb2FkaW5nIGFwcGxpY2F0aW9uIjoiQ2xvc2luZyB1cGRhdGVyIn1nZXRTdWNjZXNzQ291bnRkb3duTGFiZWwoQyl7cmV0dXJuYCR7dGhpcy5nZXRTdWNjZXNzQWN0aW9uRGlzcGxheUxhYmVsKCl9IGluICR7Q31zYH1nZXRTdWNjZXNzQ291bnRkb3duU3RhdHVzKEMpe2xldCB6PUM9PT0xPyJzZWNvbmQiOiJzZWNvbmRzIjtyZXR1cm5gJHt0aGlzLmdldFN1Y2Nlc3NBY3Rpb25EaXNwbGF5TGFiZWwoKX0gaW4gJHtDfSAke3p9LmB9Z2V0U3VjY2Vzc0FjdGlvbk5vd0xhYmVsKCl7cmV0dXJuYCR7dGhpcy5nZXRTdWNjZXNzQWN0aW9uRGlzcGxheUxhYmVsKCl9IG5vdy4uLmB9Z2V0TGlua01lbnVPcHRpb25zKCl7bGV0IEM9W107cmV0dXJuIHRoaXMubW9yZUluZm9VcmwmJkMucHVzaCh7bmFtZToiTW9yZSBpbmZvIixhY3Rpb246aShhc3luYygpPT57dGhpcy5vcGVuRXh0ZXJuYWxVcmwodGhpcy5tb3JlSW5mb1VybCl9LCJhY3Rpb24iKX0pLHRoaXMuY2hhbmdlbG9nVXJsJiZDLnB1c2goe25hbWU6IkNoYW5nZWxvZyIsYWN0aW9uOmkoYXN5bmMoKT0+e3RoaXMub3BlbkV4dGVybmFsVXJsKHRoaXMuY2hhbmdlbG9nVXJsKX0sImFjdGlvbiIpfSksQ31yZW5kZXJWZXJzaW9uTWV0YShDLHope3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyBtaW4td2lkdGg6IDEzMnB4OyBwYWRkaW5nOiAxMnB4IDE0cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7IgogICAgICA+CiAgICAgICAgPGRpdgogICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7IgogICAgICAgID4KICAgICAgICAgICR7Q30KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBzdHlsZT0ke2Bmb250LWZhbWlseTogJHtFcGV9OyBmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpO2B9CiAgICAgICAgPgogICAgICAgICAgJHt6fQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUHJvZ3Jlc3NDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogMThweDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOyI+CiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiA2cHg7Ij4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7IgogICAgICAgICAgPgogICAgICAgICAgICBBcHBsaWNhdGlvbiB1cGRhdGUKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBzdHlsZT0iZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMS4zNTsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7IgogICAgICAgICAgPgogICAgICAgICAgICBEb3dubG9hZGluZyBhbmQgYXBwbHlpbmcgdGhlIGxhdGVzdCByZWxlYXNlLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwOyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY1OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7Ij4KICAgICAgICAgICAgJHt0aGlzLmN1cnJlbnRWZXJzaW9uJiZ0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgTW92aW5nIGZyb20gPHN0cm9uZz4ke3RoaXMuY3VycmVudFZlcnNpb259PC9zdHJvbmc+IHRvIDxzdHJvbmc+JHt0aGlzLnVwZGF0ZWRWZXJzaW9ufTwvc3Ryb25nPi5gOnRoaXMudXBkYXRlZFZlcnNpb24/d2BQcmVwYXJpbmcgPHN0cm9uZz4ke3RoaXMudXBkYXRlZFZlcnNpb259PC9zdHJvbmc+IGZvciBpbnN0YWxsYXRpb24uYDoiVGhlIHVwZGF0ZXIgaXMgZmV0Y2hpbmcgdGhlIG5ld2VzdCBidWlsZCBhbmQgcHJlcGFyaW5nIGl0IGZvciBpbnN0YWxsYXRpb24uIn0KICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmN1cnJlbnRWZXJzaW9ufHx0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgCiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDEwcHg7Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5jdXJyZW50VmVyc2lvbj90aGlzLnJlbmRlclZlcnNpb25NZXRhKCJDdXJyZW50IHZlcnNpb24iLHRoaXMuY3VycmVudFZlcnNpb24pOiIifQogICAgICAgICAgICAgICAgJHt0aGlzLnVwZGF0ZWRWZXJzaW9uP3RoaXMucmVuZGVyVmVyc2lvbk1ldGEoIkluY29taW5nIHZlcnNpb24iLHRoaXMudXBkYXRlZFZlcnNpb24pOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiA0cHg7IHBhZGRpbmc6IDE0cHggMTZweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsgYm9yZGVyLXJhZGl1czogOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsiCiAgICAgICAgPgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyI+CiAgICAgICAgICAgIEF1dG9tYXRpYyBmbG93CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTNweDsgbGluZS1oZWlnaHQ6IDEuNjsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7Ij4KICAgICAgICAgICAgVGhlIHVwZGF0ZXIgY29udGludWVzIG9uIGl0cyBvd24gb25jZSB0aGUgbmV3IGJ1aWxkIGlzIGluc3RhbGxlZCBhbmQgdmVyaWZpZWQuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclJlYWR5Q29udGVudCgpe2xldCBDPXRoaXMuZ2V0U3VjY2Vzc0RlbGF5U2Vjb25kcygpO3JldHVybiB3YAogICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBnYXA6IDE4cHg7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsiPgogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdhcDogNnB4OyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIHN0eWxlPSJmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjA4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyIKICAgICAgICAgID4KICAgICAgICAgICAgVXBkYXRlIGNvbXBsZXRlCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDEuMzU7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgVmVyc2lvbiA8c3BhbiBzdHlsZT0ke2Bmb250LWZhbWlseTogJHtFcGV9OyBmb250LXNpemU6IDAuOTVlbTtgfT4ke3RoaXMudXBkYXRlZFZlcnNpb259PC9zcGFuPiBpcyByZWFkeSB0byB1c2UuYDoiVGhlIG5ldyB2ZXJzaW9uIGlzIHJlYWR5IHRvIHVzZS4ifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwOyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY1OyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7Ij4KICAgICAgICAgICAgVGhlIG5ldyBidWlsZCBoYXMgYmVlbiBpbnN0YWxsZWQgYW5kIHZlcmlmaWVkLiBZb3UgY2FuIHJldmlldyByZWxlYXNlIGRldGFpbHMgYmVsb3cgd2hpbGUgdGhlIG5leHQgYWN0aW9uIHJ1bnMgYXV0b21hdGljYWxseS4KICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnVwZGF0ZWRWZXJzaW9uP3dgCiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDEwcHg7Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJWZXJzaW9uTWV0YSgiSW5zdGFsbGVkIHZlcnNpb24iLHRoaXMudXBkYXRlZFZlcnNpb24pfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ2FwOiA0cHg7IHBhZGRpbmc6IDE0cHggMTZweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsgYm9yZGVyLXJhZGl1czogOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWhvdmVyKTsiCiAgICAgICAgPgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXByaW1hcnkpOyI+CiAgICAgICAgICAgIE5leHQgYWN0aW9uCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDEuNTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsiPgogICAgICAgICAgICAke3RoaXMuZ2V0U3VjY2Vzc0FjdGlvbkRpc3BsYXlMYWJlbCgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOyI+CiAgICAgICAgICAgIFJ1bnMgYXV0b21hdGljYWxseSBpbiAke0N9IHNlY29uZHMuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIHJ1blN1Y2Nlc3NDb3VudGRvd24oQyx6LEEpe2xldCAkPU1hdGgubWF4KDFlMyx0aGlzLnN1Y2Nlc3NEZWxheU1zKSxGPURhdGUubm93KCk7Zm9yKDshQT8uYWJvcnRlZDspe2xldCBZPU1hdGgubWluKCQsRGF0ZS5ub3coKS1GKSxHPU1hdGgubWF4KDAsJC1ZKSxaPU1hdGgubWF4KDAsTWF0aC5jZWlsKEcvMWUzKSk7aWYoQy51cGRhdGVQcm9ncmVzc1N0ZXAoe2xhYmVsOkc+MD90aGlzLmdldFN1Y2Nlc3NDb3VudGRvd25MYWJlbChaKTp0aGlzLmdldFN1Y2Nlc3NBY3Rpb25Ob3dMYWJlbCgpLHBlcmNlbnRhZ2U6WS8kKjEwMCxpbmRldGVybWluYXRlOiExLHNob3dQZXJjZW50YWdlOiExLHN0YXR1c1RleHQ6Rz4wP3RoaXMuZ2V0U3VjY2Vzc0NvdW50ZG93blN0YXR1cyhaKTp0aGlzLmdldFN1Y2Nlc3NBY3Rpb25Ob3dMYWJlbCgpfSx6KSxHPD0wKWJyZWFrO2lmKCFhd2FpdCB0aGlzLndhaXRGb3JDb3VudGRvd25UaWNrKDEwMCxBKSlyZXR1cm59YXdhaXQgdGhpcy5ydW5Db25maWd1cmVkU3VjY2Vzc0FjdGlvbigpfWFzeW5jIHdhaXRGb3JDb3VudGRvd25UaWNrKEMseil7cmV0dXJuIG5ldyBQcm9taXNlKEE9PntsZXQgJD0hMSxGPWkoWj0+eyR8fCgkPSEwLHomJnoucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLFkpLEEoWikpfSwiZmluaXNoIiksWT1pKCgpPT57d2luZG93LmNsZWFyVGltZW91dChHKSxGKCExKX0sImhhbmRsZUFib3J0IiksRz13aW5kb3cuc2V0VGltZW91dCgoKT0+e0YoITApfSxDKTt6JiZ6LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixZLHtvbmNlOiEwfSl9KX1hc3luYyBydW5Db25maWd1cmVkU3VjY2Vzc0FjdGlvbigpe2lmKHRoaXMub25TdWNjZXNzQWN0aW9uKXthd2FpdCB0aGlzLm9uU3VjY2Vzc0FjdGlvbigpO3JldHVybn1pZih0aGlzLnN1Y2Nlc3NBY3Rpb249PT0icmVsb2FkIil7YXdhaXQgdGhpcy5kZXN0cm95KCksd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO3JldHVybn1hd2FpdCB0aGlzLmRlc3Ryb3koKX1vcGVuRXh0ZXJuYWxVcmwoQyl7d2luZG93Lm9wZW4oQywiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpfXN0YXRpY3tzMShhLHIpfX07cmV0dXJuIEI9YX0pKCl9KTt2YXIgbmFhPXUoKCk9PntrOXQoKX0pO3ZhciBvYWE9dSgoKT0+e002dCgpfSk7dmFyIGxhYT11KCgpPT57VXJhKCk7UXJhKCk7cmFhKCk7bmFhKCk7b2FhKCl9KTt2YXIgaGcsbWwsY2FhLFg2ZT11KCgpPT57dmUoKTtNcigpO2x0KCk7S3IoKTtzcygpO3NzKCk7UTQoKTtGcCgpO0ZwKCk7aGc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG1sPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxjYWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXdvcmtzcGFjZS1maWxldHJlZSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJEZWVzV29ya3NwYWNlRmlsZXRyZWUiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOlN0cmluZ30pXSx2PVtpZSgpXSx5PVtpZSgpXSxOPVtpZSgpXSxoZyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuZXhlY3V0aW9uRW52aXJvbm1lbnQ9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxvLGwpLGhnKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm9vdFBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InJvb3RQYXRoImluIEUsImhhcyIpLGdldDppKEU9PkUucm9vdFBhdGgsImdldCIpLHNldDppKChFLEIpPT57RS5yb290UGF0aD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGQsZiksaGcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+InNlbGVjdGVkUGF0aCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLnNlbGVjdGVkUGF0aCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnNlbGVjdGVkUGF0aD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGgsbSksaGcodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0cmVlRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4idHJlZURhdGEiaW4gRSwiaGFzIiksZ2V0OmkoRT0+RS50cmVlRGF0YSwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLnRyZWVEYXRhPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sYixnKSxoZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iaXNMb2FkaW5nImluIEUsImhhcyIpLGdldDppKEU9PkUuaXNMb2FkaW5nLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuaXNMb2FkaW5nPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sayxNKSxoZyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yTWVzc2FnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4iZXJyb3JNZXNzYWdlImluIEUsImhhcyIpLGdldDppKEU9PkUuZXJyb3JNZXNzYWdlLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UuZXJyb3JNZXNzYWdlPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sXyxTKSxoZyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpMfSxudWxsLHIpLE89YT1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogNDAwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsiPgogICAgICA8ZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+PC9kZWVzLXdvcmtzcGFjZS1maWxldHJlZT4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPW1sKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoTCl7dGhpcy4jZT1MfSN0PShtbCh0aGlzLGwpLG1sKHRoaXMsZCwiLyIpKTtnZXQgcm9vdFBhdGgoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcm9vdFBhdGgoTCl7dGhpcy4jdD1MfSNyPShtbCh0aGlzLGYpLG1sKHRoaXMsaCwiIikpO2dldCBzZWxlY3RlZFBhdGgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VsZWN0ZWRQYXRoKEwpe3RoaXMuI3I9TH0jYT0obWwodGhpcyxtKSxtbCh0aGlzLGIsW10pKTtnZXQgdHJlZURhdGEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdHJlZURhdGEoTCl7dGhpcy4jYT1MfSNpPShtbCh0aGlzLGcpLG1sKHRoaXMsaywhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNMb2FkaW5nKEwpe3RoaXMuI2k9TH0jcz0obWwodGhpcyxNKSxtbCh0aGlzLF8sIiIpKTtnZXQgZXJyb3JNZXNzYWdlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGVycm9yTWVzc2FnZShMKXt0aGlzLiNzPUx9ZXhwYW5kZWRQYXRocz0obWwodGhpcyxTKSxuZXcgU2V0KTtsb2FkVHJlZVN0YXJ0ZWQ9ITE7Y2xpcGJvYXJkUGF0aD1udWxsO2NsaXBib2FyZE9wZXJhdGlvbj1udWxsO2ZpbGVXYXRjaGVyPW51bGw7cmVmcmVzaERlYm91bmNlVGltZW91dD1udWxsO2xhc3RFeGVjdXRpb25FbnZpcm9ubWVudD1udWxsO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLnRyZWUtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDFweCA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5MyUpIiwiaHNsKDAgMCUgMTQlKSIpfTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCA1MCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW0uc2VsZWN0ZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTIlKSIsImhzbCgyMTAgNTAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC5pbmRlbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbi5leHBhbmRlZCB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24uaGlkZGVuIHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uZm9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCg0NSA4MCUgNDUlKSIsImhzbCg0NSA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5maWxlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLnR5cGVzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woMjExIDYwJSA0OCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmphdmFzY3JpcHQgewogICAgICAgIGNvbG9yOiBoc2woNTMgOTMlIDU0JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uanNvbiB7CiAgICAgICAgY29sb3I6IGhzbCg0NSA4MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5odG1sIHsKICAgICAgICBjb2xvcjogaHNsKDE0IDc3JSA1MiUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmNzcyB7CiAgICAgICAgY29sb3I6IGhzbCgyMjggNzclIDU5JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24ubWFya2Rvd24gewogICAgICAgIGNvbG9yOiBoc2woMCAwJSA1MCUpOwogICAgICB9CgogICAgICAuZmlsZS1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICB9CgogICAgICAubG9hZGluZyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmVycm9yIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogaHNsKDAgNzAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5lbXB0eSB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5maWxldHJlZS10b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAudG9vbGJhci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50P3RoaXMuaXNMb2FkaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZyI+CiAgICAgICAgICBMb2FkaW5nIGZpbGVzLi4uCiAgICAgICAgPC9kaXY+CiAgICAgIGA6dGhpcy5lcnJvck1lc3NhZ2U/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvciI+CiAgICAgICAgICAke3RoaXMuZXJyb3JNZXNzYWdlfQogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGV0cmVlLXRvb2xiYXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXRpdGxlIj5FeHBsb3Jlcjwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWFjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKX0gdGl0bGU9Ik5ldyBGaWxlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZVBsdXMifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKCIvIil9IHRpdGxlPSJOZXcgRm9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Zm9sZGVyUGx1cyJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy50cmVlRGF0YS5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGZpbGVzIGZvdW5kLjwvZGl2PmA6d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJlZS1jb250YWluZXIiIEBjb250ZXh0bWVudT0ke3RoaXMuaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51fT4KICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVHJlZSh0aGlzLnRyZWVEYXRhKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgYDp3YAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5Ij4KICAgICAgICAgIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBwcm92aWRlZC4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZW5kZXJUcmVlKEwpe3JldHVybiBMLm1hcChFPT50aGlzLnJlbmRlck5vZGUoRSkpfXJlbmRlck5vZGUoTCl7bGV0IEU9TC50eXBlPT09ImRpcmVjdG9yeSIsQj10aGlzLmV4cGFuZGVkUGF0aHMuaGFzKEwucGF0aCksQz1MLnBhdGg9PT10aGlzLnNlbGVjdGVkUGF0aCx6PXRoaXMuZ2V0RmlsZUljb25DbGFzcyhMKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0cmVlLWl0ZW0gJHtDPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIHN0eWxlPSJwYWRkaW5nLWxlZnQ6ICR7OCtMLmxldmVsKjE2fXB4IgogICAgICAgIEBjbGljaz0ke0E9PnRoaXMuaGFuZGxlSXRlbUNsaWNrKEEsTCl9CiAgICAgICAgQGNvbnRleHRtZW51PSR7QT0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShBLEwpfQogICAgICA+CiAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGFuZC1pY29uICR7Qj8iZXhwYW5kZWQiOiIifSAke0U/IiI6ImhpZGRlbiJ9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZXZyb25SaWdodCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLWljb24gJHt6fSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5nZXRGaWxlSWNvbihMKX0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtbmFtZSI+JHtMLm5hbWV9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgJHtFJiZCJiZMLmNoaWxkcmVuP3RoaXMucmVuZGVyVHJlZShMLmNoaWxkcmVuKToiIn0KICAgIGB9Z2V0RmlsZUljb24oTCl7aWYoTC50eXBlPT09ImRpcmVjdG9yeSIpcmV0dXJuIHRoaXMuZXhwYW5kZWRQYXRocy5oYXMoTC5wYXRoKT8ibHVjaWRlOmZvbGRlck9wZW4iOiJsdWNpZGU6Zm9sZGVyIjtzd2l0Y2goTC5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCkpe2Nhc2UidHMiOmNhc2UidHN4IjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJqc29uIjpyZXR1cm4ibHVjaWRlOmZpbGVKc29uIjtjYXNlImh0bWwiOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJtZCI6cmV0dXJuImx1Y2lkZTpmaWxlVGV4dCI7Y2FzZSJwbmciOmNhc2UianBnIjpjYXNlImpwZWciOmNhc2UiZ2lmIjpjYXNlInN2ZyI6cmV0dXJuImx1Y2lkZTppbWFnZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOmZpbGUifX1nZXRGaWxlSWNvbkNsYXNzKEwpe2lmKEwudHlwZT09PSJkaXJlY3RvcnkiKXJldHVybiJmb2xkZXIiO3N3aXRjaChMLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2Nhc2UiaHRtbCI6cmV0dXJuImh0bWwiO2Nhc2UiY3NzIjpjYXNlInNjc3MiOmNhc2UibGVzcyI6cmV0dXJuImNzcyI7Y2FzZSJtZCI6cmV0dXJuIm1hcmtkb3duIjtkZWZhdWx0OnJldHVybiJmaWxlIn19YXN5bmMgaGFuZGxlSXRlbUNsaWNrKEwsRSl7TC5zdG9wUHJvcGFnYXRpb24oKSxFLnR5cGU9PT0iZGlyZWN0b3J5Ij9hd2FpdCB0aGlzLnRvZ2dsZURpcmVjdG9yeShFKToodGhpcy5zZWxlY3RlZFBhdGg9RS5wYXRoLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbGUtc2VsZWN0Iix7ZGV0YWlsOntwYXRoOkUucGF0aCxuYW1lOkUubmFtZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9YXN5bmMgdG9nZ2xlRGlyZWN0b3J5KEwpe3RoaXMuZXhwYW5kZWRQYXRocy5oYXMoTC5wYXRoKT90aGlzLmV4cGFuZGVkUGF0aHMuZGVsZXRlKEwucGF0aCk6KHRoaXMuZXhwYW5kZWRQYXRocy5hZGQoTC5wYXRoKSwoIUwuY2hpbGRyZW58fEwuY2hpbGRyZW4ubGVuZ3RoPT09MCkmJmF3YWl0IHRoaXMubG9hZERpcmVjdG9yeUNvbnRlbnRzKEwpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hc3luYyBsb2FkRGlyZWN0b3J5Q29udGVudHMoTCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IEU9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKEwucGF0aCk7TC5jaGlsZHJlbj10aGlzLnNvcnRFbnRyaWVzKEUpLm1hcChCPT4oey4uLkIsbGV2ZWw6TC5sZXZlbCsxLGV4cGFuZGVkOiExLGNoaWxkcmVuOkIudHlwZT09PSJkaXJlY3RvcnkiP1tdOnZvaWQgMH0pKX1jYXRjaChFKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkgJHtMLnBhdGh9OmAsRSl9fWFzeW5jIGhhbmRsZUNvbnRleHRNZW51KEwsRSl7TC5wcmV2ZW50RGVmYXVsdCgpLEwuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEI9W107RS50eXBlPT09ImRpcmVjdG9yeSImJkIucHVzaCh7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGaWxlKEUucGF0aCksImFjdGlvbiIpfSx7bmFtZToiTmV3IEZvbGRlciIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKEUucGF0aCksImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0pLEIucHVzaCh7bmFtZToiUmVuYW1lIixpY29uTmFtZToicGVuY2lsIixhY3Rpb246aShhc3luYygpPT50aGlzLnJlbmFtZUl0ZW0oRSksImFjdGlvbiIpfSx7bmFtZToiRHVwbGljYXRlIixpY29uTmFtZToiZmlsZXMiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuZHVwbGljYXRlSXRlbShFKSwiYWN0aW9uIil9LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jb3B5SXRlbShFKSwiYWN0aW9uIil9KSxFLnR5cGU9PT0iZGlyZWN0b3J5IiYmdGhpcy5jbGlwYm9hcmRQYXRoJiZCLnB1c2goe25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbShFLnBhdGgpLCJhY3Rpb24iKX0pLEIucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5kZWxldGVJdGVtKEUpLCJhY3Rpb24iKX0pLGF3YWl0IENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEwsQil9YXN5bmMgaGFuZGxlRW1wdHlTcGFjZUNvbnRleHRNZW51KEwpe2lmKEwudGFyZ2V0LmNsb3Nlc3QoIi50cmVlLWl0ZW0iKSlyZXR1cm47TC5wcmV2ZW50RGVmYXVsdCgpLEwuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEI9W3tuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246aShhc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKSwiYWN0aW9uIil9LHtuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToiZm9sZGVyUGx1cyIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKSwiYWN0aW9uIil9XTt0aGlzLmNsaXBib2FyZFBhdGgmJkIucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246aShhc3luYygpPT50aGlzLnBhc3RlSXRlbSgiLyIpLCJhY3Rpb24iKX0pLGF3YWl0IENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEwsQil9YXN5bmMgc2hvd0lucHV0TW9kYWwoTCl7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIEU9PntsZXQgQj1hd2FpdCBlYS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOkwuaGVhZGluZyx3aWR0aDoic21hbGwiLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7TC5sYWJlbH0KICAgICAgICAgICAgLnZhbHVlPSR7TC52YWx1ZXx8IiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmkoYXN5bmMgej0+e2F3YWl0IHouZGVzdHJveSgpLEUobnVsbCl9LCJhY3Rpb24iKX0se25hbWU6TC5idXR0b25OYW1lfHwiQ3JlYXRlIixhY3Rpb246aShhc3luYyB6PT57bGV0IEY9ei5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwgLmNvbnRlbnQiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik/LnZhbHVlPy50cmltKCl8fCIiO2F3YWl0IHouZGVzdHJveSgpLEUoRnx8bnVsbCl9LCJhY3Rpb24iKX1dfSk7YXdhaXQgQi51cGRhdGVDb21wbGV0ZTtsZXQgQz1CLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbCAuY29udGVudCIpO2lmKEMpe2xldCB6PUMucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7eiYmKGF3YWl0IHoudXBkYXRlQ29tcGxldGUsei5mb2N1cygpKX19KX1hc3luYyBjcmVhdGVOZXdGaWxlKEwpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGaWxlIixsYWJlbDoiRmlsZSBuYW1lIn0pO2lmKCFFfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEI9TD09PSIvIj9gLyR7RX1gOmAke0x9LyR7RX1gO3RyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShCLCIiKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWxlLWNyZWF0ZWQiLHtkZXRhaWw6e3BhdGg6Qn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChDKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGZpbGU6IixDKX19YXN5bmMgY3JlYXRlTmV3Rm9sZGVyKEwpe2xldCBFPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6Ik5ldyBGb2xkZXIiLGxhYmVsOiJGb2xkZXIgbmFtZSJ9KTtpZighRXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBCPUw9PT0iLyI/YC8ke0V9YDpgJHtMfS8ke0V9YDt0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ta2RpcihCKSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmb2xkZXItY3JlYXRlZCIse2RldGFpbDp7cGF0aDpCfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKEMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgZm9sZGVyOiIsQyl9fWFzeW5jIGRlbGV0ZUl0ZW0oTCl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IWNvbmZpcm0oYERlbGV0ZSAke0wubmFtZX0/YCkpKXRyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKEwucGF0aCx7cmVjdXJzaXZlOkwudHlwZT09PSJkaXJlY3RvcnkifSksYXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kZWxldGVkIix7ZGV0YWlsOntwYXRoOkwucGF0aCx0eXBlOkwudHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChCKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIGl0ZW06IixCKX19YXN5bmMgcmVuYW1lSXRlbShMKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IEU9YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiUmVuYW1lIixsYWJlbDoiTmV3IG5hbWUiLHZhbHVlOkwubmFtZSxidXR0b25OYW1lOiJSZW5hbWUifSk7aWYoIUV8fEU9PT1MLm5hbWUpcmV0dXJuO2xldCBCPUwucGF0aC5zdWJzdHJpbmcoMCxMLnBhdGgubGFzdEluZGV4T2YoIi8iKSl8fCIvIixDPUI9PT0iLyI/YC8ke0V9YDpgJHtCfS8ke0V9YDt0cnl7aWYoTC50eXBlPT09ImZpbGUiKXtsZXQgej1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKEwucGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoQyx6KSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKEwucGF0aCl9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyhMLnBhdGgsQyksYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ybShMLnBhdGgse3JlY3Vyc2l2ZTohMH0pO2F3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tcmVuYW1lZCIse2RldGFpbDp7b2xkUGF0aDpMLnBhdGgsbmV3UGF0aDpDLHR5cGU6TC50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKHope2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5hbWUgaXRlbToiLHopfX1hc3luYyBkdXBsaWNhdGVJdGVtKEwpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgRT1MLnBhdGguc3Vic3RyaW5nKDAsTC5wYXRoLmxhc3RJbmRleE9mKCIvIikpfHwiLyIsQjtpZihMLnR5cGU9PT0iZmlsZSIpe2xldCB6PUwubmFtZS5sYXN0SW5kZXhPZigiLiIpO2lmKHo+MCl7bGV0IEE9TC5uYW1lLnN1YnN0cmluZygwLHopLCQ9TC5uYW1lLnN1YnN0cmluZyh6KTtCPWAke0F9X2NvcHkkeyR9YH1lbHNlIEI9YCR7TC5uYW1lfV9jb3B5YH1lbHNlIEI9YCR7TC5uYW1lfV9jb3B5YDtsZXQgQz1FPT09Ii8iP2AvJHtCfWA6YCR7RX0vJHtCfWA7dHJ5e2lmKEwudHlwZT09PSJmaWxlIil7bGV0IHo9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShMLnBhdGgpO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKEMseil9ZWxzZSBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyhMLnBhdGgsQyk7YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1kdXBsaWNhdGVkIix7ZGV0YWlsOntzb3VyY2VQYXRoOkwucGF0aCxuZXdQYXRoOkMsdHlwZTpMLnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goeil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGR1cGxpY2F0ZSBpdGVtOiIseil9fWFzeW5jIGNvcHlJdGVtKEwpe3RoaXMuY2xpcGJvYXJkUGF0aD1MLnBhdGgsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249ImNvcHkifWFzeW5jIHBhc3RlSXRlbShMKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXRoaXMuY2xpcGJvYXJkUGF0aClyZXR1cm47bGV0IEU9dGhpcy5jbGlwYm9hcmRQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJwYXN0ZWQiLEI9TD09PSIvIj9gLyR7RX1gOmAke0x9LyR7RX1gO3RyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHModGhpcy5jbGlwYm9hcmRQYXRoKSl7Y29uc29sZS5lcnJvcigiU291cmNlIGZpbGUgbm8gbG9uZ2VyIGV4aXN0cyIpLHRoaXMuY2xpcGJvYXJkUGF0aD1udWxsLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPW51bGw7cmV0dXJufXRyeXtsZXQgQz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKHRoaXMuY2xpcGJvYXJkUGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoQixDKX1jYXRjaHthd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyh0aGlzLmNsaXBib2FyZFBhdGgsQil9YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1wYXN0ZWQiLHtkZXRhaWw6e3NvdXJjZVBhdGg6dGhpcy5jbGlwYm9hcmRQYXRoLHRhcmdldFBhdGg6Qn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNsaXBib2FyZFBhdGg9bnVsbCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj1udWxsfWNhdGNoKEMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBwYXN0ZSBpdGVtOiIsQyl9fWFzeW5jIGNvcHlEaXJlY3RvcnlDb250ZW50cyhMLEUpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKEUpO2xldCBCPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihMKTtmb3IobGV0IEMgb2YgQil7bGV0IHo9TD09PSIvIj9gLyR7Qy5uYW1lfWA6YCR7TH0vJHtDLm5hbWV9YCxBPUU9PT0iLyI/YC8ke0MubmFtZX1gOmAke0V9LyR7Qy5uYW1lfWA7aWYoQy50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5jb3B5RGlyZWN0b3J5Q29udGVudHMoeixBKTtlbHNle2xldCAkPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoeik7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoQSwkKX19fWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMubG9hZFRyZWUoKX1hc3luYyB1cGRhdGVkKEwpe0wuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiYodGhpcy5sYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQhPT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYodGhpcy5zdG9wRmlsZVdhdGNoZXIoKSx0aGlzLmxhc3RFeGVjdXRpb25FbnZpcm9ubWVudD10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYoYXdhaXQgdGhpcy5sb2FkVHJlZSgpLHRoaXMuc3RhcnRGaWxlV2F0Y2hlcigpKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3RvcEZpbGVXYXRjaGVyKCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0RmlsZVdhdGNoZXIoKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLmZpbGVXYXRjaGVyKSl0cnl7dGhpcy5maWxlV2F0Y2hlcj10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKCIvIiwoTCxFKT0+e3RoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCksdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnJlZnJlc2goKX0sMzAwKX0se3JlY3Vyc2l2ZTohMH0pfWNhdGNoKEwpe2NvbnNvbGUud2FybigiRmlsZSB3YXRjaGluZyBub3Qgc3VwcG9ydGVkOiIsTCl9fXN0b3BGaWxlV2F0Y2hlcigpe3RoaXMuZmlsZVdhdGNoZXImJih0aGlzLmZpbGVXYXRjaGVyLnN0b3AoKSx0aGlzLmZpbGVXYXRjaGVyPW51bGwpfWFzeW5jIGxvYWRUcmVlKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMubG9hZFRyZWVTdGFydGVkKXt0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMCx0aGlzLmlzTG9hZGluZz0hMCx0aGlzLmVycm9yTWVzc2FnZT0iIjt0cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5pbml0KCk7bGV0IEw9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKHRoaXMucm9vdFBhdGgpO3RoaXMudHJlZURhdGE9dGhpcy5zb3J0RW50cmllcyhMKS5tYXAoRT0+KHsuLi5FLGxldmVsOjAsZXhwYW5kZWQ6ITEsY2hpbGRyZW46RS50eXBlPT09ImRpcmVjdG9yeSI/W106dm9pZCAwfSkpfWNhdGNoKEwpe3RoaXMuZXJyb3JNZXNzYWdlPWBGYWlsZWQgdG8gbG9hZCBmaWxlczogJHtMfWAsY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgZmlsZSB0cmVlOiIsTCksdGhpcy5sb2FkVHJlZVN0YXJ0ZWQ9ITF9ZmluYWxseXt0aGlzLmlzTG9hZGluZz0hMX19fXNvcnRFbnRyaWVzKEwpe3JldHVybiBMLnNvcnQoKEUsQik9PkUudHlwZSE9PUIudHlwZT9FLnR5cGU9PT0iZGlyZWN0b3J5Ij8tMToxOkUubmFtZS5sb2NhbGVDb21wYXJlKEIubmFtZSkpfWFzeW5jIHJlZnJlc2goKXt0aGlzLmV4cGFuZGVkUGF0aHMuY2xlYXIoKSx0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMSxhd2FpdCB0aGlzLmxvYWRUcmVlKCl9c2VsZWN0RmlsZShMKXt0aGlzLnNlbGVjdGVkUGF0aD1MfXN0YXRpY3ttbChhLHIpfX07cmV0dXJuIE89YX0pKCl9KTt2YXIgUzl0LFpyZSxkYWEsTTl0PXUoKCk9Pnt2ZSgpO2x0KCk7cDMoKTtucygpO1M5dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sWnJlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxkYWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VUZXJtaW5hbFByZXZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOkFycmF5fSldLFM5dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImNvbW1hbmQiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5jb21tYW5kLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uY29tbWFuZD12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksUzl0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImxpbmVzImluIG0sImhhcyIpLGdldDppKG09Pm0ubGluZXMsImdldCIpLHNldDppKChtLHYpPT57bS5saW5lcz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksUzl0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3CiAgICAgIC5jb21tYW5kPSR7InBucG0gaW5zdGFsbCJ9CiAgICAgIC5saW5lcz0ke1siUGFja2FnZXM6ICs0MiIsIlByb2dyZXNzOiByZXNvbHZlZCAxNDIsIHJldXNlZCAxNDAsIGRvd25sb2FkZWQgMiwgYWRkZWQgNDIsIGRvbmUiLCIiLCJkZXBlbmRlbmNpZXM6IiwiKyBAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UgNC4yLjMiLCIrIHR5cGVzY3JpcHQgNS4zLjMiLCIiLCJEb25lIGluIDIuM3MiXX0KICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9WnJlKHRoaXMsbywiIik7Z2V0IGNvbW1hbmQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29tbWFuZChoKXt0aGlzLiNlPWh9I3Q9KFpyZSh0aGlzLGwpLFpyZSh0aGlzLGQsW10pKTtnZXQgbGluZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGluZXMoaCl7dGhpcy4jdD1ofXRlcm1pbmFsPShacmUodGhpcyxmKSxudWxsKTtmaXRBZGRvbj1udWxsO2xhc3RMaW5lQ291bnQ9MDtyZXNpemVPYnNlcnZlcj1udWxsO3Rlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbDtzdGF0aWMgc3R5bGVzPVtOZSx4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICB9CgogICAgICBkZWVzLXRpbGUgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyLWljb24gewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyLWNvbW1hbmQgewogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICB9CgogICAgICAjeHRlcm0tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA4cHg7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIHh0ZXJtLmpzIHN0eWxlcyAqLwogICAgICAueHRlcm0gewogICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnIDA7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAueHRlcm0uZm9jdXMsCiAgICAgIC54dGVybTpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXJzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0taGVscGVyLXRleHRhcmVhIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IC01OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzMzMzMzMyIsIiNmZmZmZmYiKX07CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcuYWN0aXZlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gY2FudmFzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2Nyb2xsLWFyZWEgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWNoYXItbWVhc3VyZS1lbGVtZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOwogICAgICB9CgogICAgICAueHRlcm0gewogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnh0ZXJtLmVuYWJsZS1tb3VzZS1ldmVudHMgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLnh0ZXJtLnh0ZXJtLWN1cnNvci1wb2ludGVyIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC54dGVybS5jb2x1bW4tc2VsZWN0LmZvY3VzIHsKICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1hY2Nlc3NpYmlsaXR5LAogICAgICAueHRlcm0gLnh0ZXJtLW1lc3NhZ2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAueHRlcm0gLmxpdmUtcmVnaW9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTk5OTlweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC54dGVybS1kaW0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnh0ZXJtLXVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIEN1c3RvbSBzY3JvbGxiYXIgZm9yIHh0ZXJtIHZpZXdwb3J0ICovCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLXNjcm9sbGJhci10aHVtYik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1zY3JvbGxiYXItdGh1bWItaG92ZXIpOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InRlcm1pbmFsLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybWluYWwtaGVhZGVyLWljb24iPiQ8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybWluYWwtaGVhZGVyLWNvbW1hbmQiPiR7dGhpcy5jb21tYW5kfHwiV2FpdGluZy4uLiJ9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGlkPSJ4dGVybS1jb250YWluZXIiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9Z2V0VGVybWluYWxUaGVtZShoKXtyZXR1cm4gaD97YmFja2dyb3VuZDoiI2ZmZmZmZiIsZm9yZWdyb3VuZDoiIzMzMzMzMyIsY3Vyc29yOiIjMzMzMzMzIixjdXJzb3JBY2NlbnQ6IiNmZmZmZmYiLHNlbGVjdGlvbkJhY2tncm91bmQ6InJnYmEoMCwgMCwgMCwgMC4yKSJ9OntiYWNrZ3JvdW5kOiIjMDAwMDAwIixmb3JlZ3JvdW5kOiIjY2NjY2NjIixjdXJzb3I6IiNjY2NjY2MiLGN1cnNvckFjY2VudDoiIzAwMDAwMCIsc2VsZWN0aW9uQmFja2dyb3VuZDoicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIn19YXN5bmMgZmlyc3RVcGRhdGVkKGgpe3N1cGVyLmZpcnN0VXBkYXRlZChoKTtsZXQgbT10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJ4dGVybS1jb250YWluZXIiKTtpZighbSlyZXR1cm47bGV0IHY9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYj12LnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4sZz1zbi5nZXRJbnN0YW5jZSgpLFt5LGtdPWF3YWl0IFByb21pc2UuYWxsKFtnLmxvYWRYdGVybSgpLGcubG9hZFh0ZXJtRml0QWRkb24oKV0pO3RoaXMudGVybWluYWw9bmV3IHkuVGVybWluYWwoe2NvbnZlcnRFb2w6ITAsY3Vyc29yQmxpbms6ITEsZGlzYWJsZVN0ZGluOiEwLGZvbnRTaXplOjEyLGZvbnRGYW1pbHk6IidTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2UiLHRoZW1lOnRoaXMuZ2V0VGVybWluYWxUaGVtZShiKSxzY3JvbGxiYWNrOjFlM30pLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj12LnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKE09Pnt0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPXRoaXMuZ2V0VGVybWluYWxUaGVtZShNKSl9KSx0aGlzLmZpdEFkZG9uPW5ldyBrLkZpdEFkZG9uLHRoaXMudGVybWluYWwubG9hZEFkZG9uKHRoaXMuZml0QWRkb24pLHRoaXMudGVybWluYWwub3BlbihtKSx0aGlzLmZpdEFkZG9uLmZpdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5maXRBZGRvbiYmdGhpcy5maXRBZGRvbi5maXQoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShtKSx0aGlzLndyaXRlTmV3TGluZXMoKX1hc3luYyB1cGRhdGVkKGgpe3N1cGVyLnVwZGF0ZWQoaCksaC5oYXMoImxpbmVzIikmJnRoaXMud3JpdGVOZXdMaW5lcygpfXdyaXRlTmV3TGluZXMoKXtpZighdGhpcy50ZXJtaW5hbClyZXR1cm47bGV0IGg9dGhpcy5saW5lcy5zbGljZSh0aGlzLmxhc3RMaW5lQ291bnQpO2ZvcihsZXQgbSBvZiBoKXRoaXMudGVybWluYWwud3JpdGVsbihtKTt0aGlzLmxhc3RMaW5lQ291bnQ9dGhpcy5saW5lcy5sZW5ndGh9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnJlc2l6ZU9ic2VydmVyJiYodGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1udWxsKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24mJih0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbCksdGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwuZGlzcG9zZSgpLHRoaXMudGVybWluYWw9bnVsbCksYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKX1hZGRMaW5lKGgpe3RoaXMubGluZXM9Wy4uLnRoaXMubGluZXMsaF19Y2xlYXIoKXt0aGlzLmxpbmVzPVtdLHRoaXMubGFzdExpbmVDb3VudD0wLHRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuY2xlYXIoKX1zdGF0aWN7WnJlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBGdyxQYyx1YWEsQzl0PXUoKCk9Pnt2ZSgpO2x0KCk7S3IoKTtzcygpO0Z3PWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxQYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sdWFhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VCb3R0b21iYXIiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtpZSgpXSxwPVtpZSgpXSx2PVtpZSgpXSx5PVtpZSgpXSxGdyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MuZXhlY3V0aW9uRW52aXJvbm1lbnQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxvLGwpLEZ3KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2NyaXB0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2NyaXB0cyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNjcmlwdHMsImdldCIpLHNldDppKChTLE8pPT57Uy5zY3JpcHRzPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sZCxmKSxGdyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhY2thZ2VTdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InBhY2thZ2VTdGF0dXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5wYWNrYWdlU3RhdHVzLCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1MucGFja2FnZVN0YXR1cz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGgsbSksRncodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRkYXRlZFBhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJvdXRkYXRlZFBhY2thZ2VzImluIFMsImhhcyIpLGdldDppKFM9PlMub3V0ZGF0ZWRQYWNrYWdlcywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLm91dGRhdGVkUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEZ3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNDaGVja2luZ1BhY2thZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJpc0NoZWNraW5nUGFja2FnZXMiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5pc0NoZWNraW5nUGFja2FnZXMsImdldCIpLHNldDppKChTLE8pPT57Uy5pc0NoZWNraW5nUGFja2FnZXM9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLE0pLEZ3KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksTj1hPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9I2U9UGModGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChfKXt0aGlzLiNlPV99I3Q9KFBjKHRoaXMsbCksUGModGhpcyxkLHt9KSk7Z2V0IHNjcmlwdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2NyaXB0cyhfKXt0aGlzLiN0PV99I3I9KFBjKHRoaXMsZiksUGModGhpcyxoLCJpZGxlIikpO2dldCBwYWNrYWdlU3RhdHVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHBhY2thZ2VTdGF0dXMoXyl7dGhpcy4jcj1ffSNhPShQYyh0aGlzLG0pLFBjKHRoaXMsYixbXSkpO2dldCBvdXRkYXRlZFBhY2thZ2VzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG91dGRhdGVkUGFja2FnZXMoXyl7dGhpcy4jYT1ffSNpPShQYyh0aGlzLGcpLFBjKHRoaXMsaywhMSkpO2dldCBpc0NoZWNraW5nUGFja2FnZXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNDaGVja2luZ1BhY2thZ2VzKF8pe3RoaXMuI2k9X31wZW5kaW5nUGFja2FnZVVwZGF0ZT0oUGModGhpcyxNKSwhMSk7aGFuZGxlUHJvY2Vzc0NvbXBsZXRlPWkoXz0+e3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGUmJih0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSExLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDUwMCkpfSwiaGFuZGxlUHJvY2Vzc0NvbXBsZXRlIik7c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYm90dG9tLWJhciB7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDYlKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2lkZ2V0OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAud2lkZ2V0LXNlcGFyYXRvciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDgwJSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC53aWRnZXQucnVubmluZyB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LnVwLXRvLWRhdGUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDE0MiA3MCUgMzUlKSIsImhzbCgxNDIgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQudXBkYXRlcy1hdmFpbGFibGUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LmVycm9yIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5zcGlubmluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgLnNwYWNlciB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1iYXIiPgogICAgICAgIDwhLS0gU2NyaXB0IFJ1bm5lciBXaWRnZXQgLS0+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9IndpZGdldCIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlU2NyaXB0Q2xpY2t9CiAgICAgICAgICB0aXRsZT0iUnVuIHNjcmlwdCIKICAgICAgICA+CiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7Imx1Y2lkZTpwbGF5In0KICAgICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+U2NyaXB0czwvc3Bhbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+CgogICAgICAgIDwhLS0gUGFja2FnZSBDaGVja2VyIFdpZGdldCAtLT4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0id2lkZ2V0ICR7dGhpcy5nZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKX0iCiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVBhY2thZ2VDbGlja30KICAgICAgICAgIHRpdGxlPSIke3RoaXMuZ2V0UGFja2FnZVRvb2x0aXAoKX0iCiAgICAgICAgPgogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0ke3RoaXMuZ2V0UGFja2FnZUljb24oKX0KICAgICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8ic3Bpbm5pbmciOiIifSIKICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPiR7dGhpcy5nZXRQYWNrYWdlU3RhdHVzVGV4dCgpfTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCiAgICAgICAgPCEtLSBGdXR1cmUgd2lkZ2V0cyBjYW4gYmUgYWRkZWQgaGVyZSAtLT4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicHJvY2Vzcy1jb21wbGV0ZSIsdGhpcy5oYW5kbGVQcm9jZXNzQ29tcGxldGUpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicHJvY2Vzcy1jb21wbGV0ZSIsdGhpcy5oYW5kbGVQcm9jZXNzQ29tcGxldGUpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMubG9hZFNjcmlwdHMoKSxhd2FpdCB0aGlzLmNoZWNrUGFja2FnZXMoKX1hc3luYyB1cGRhdGVkKF8pe18uaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiZ0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYoYXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpLGF3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpKX1hc3luYyBsb2FkU2NyaXB0cygpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL3BhY2thZ2UuanNvbiIpKXt0aGlzLnNjcmlwdHM9e307cmV0dXJufWxldCBTPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoIi9wYWNrYWdlLmpzb24iKSxPPUpTT04ucGFyc2UoUyk7dGhpcy5zY3JpcHRzPU8uc2NyaXB0c3x8e319Y2F0Y2goXyl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gbG9hZCBzY3JpcHRzIGZyb20gcGFja2FnZS5qc29uOiIsXyksdGhpcy5zY3JpcHRzPXt9fX1hc3luYyBoYW5kbGVTY3JpcHRDbGljayhfKXtfLnN0b3BQcm9wYWdhdGlvbigpO2xldCBTPU9iamVjdC5rZXlzKHRoaXMuc2NyaXB0cyk7aWYoUy5sZW5ndGg9PT0wKXJldHVybjtsZXQgTz1TLm1hcChMPT4oe25hbWU6TCxpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIixhY3Rpb246aShhc3luYygpPT57YXdhaXQgdGhpcy5ydW5TY3JpcHQoTCl9LCJhY3Rpb24iKX0pKTthd2FpdCBDci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhfLE8pfWFzeW5jIHJ1blNjcmlwdChfKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IFM9e3R5cGU6InNjcmlwdCIsbGFiZWw6Xyxjb21tYW5kOiJwbnBtIixhcmdzOlsicnVuIixfXSxtZXRhZGF0YTp7c2NyaXB0TmFtZTpffX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpTfSkpfWFzeW5jIGNoZWNrUGFja2FnZXMoKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7dGhpcy5wYWNrYWdlU3RhdHVzPSJpZGxlIjtyZXR1cm59dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL3BhY2thZ2UuanNvbiIpKXt0aGlzLnBhY2thZ2VTdGF0dXM9ImlkbGUiO3JldHVybn10aGlzLnBhY2thZ2VTdGF0dXM9ImNoZWNraW5nIix0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz0hMDtsZXQgUz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKCJwbnBtIixbIm91dGRhdGVkIiwiLS1qc29uIl0pLE89IiIsTD1TLm91dHB1dC5nZXRSZWFkZXIoKTtpKGFzeW5jKCk9Pnt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTpDLHZhbHVlOnp9PWF3YWl0IEwucmVhZCgpO2lmKEMpYnJlYWs7Tys9en19Y2F0Y2h7fX0sInJlYWRPdXRwdXQiKSgpO2xldCBCPWF3YWl0IFByb21pc2UucmFjZShbUy5leGl0LG5ldyBQcm9taXNlKEM9PnNldFRpbWVvdXQoKCk9PkMoLTEpLDFlNCkpXSk7dHJ5e2F3YWl0IEwuY2FuY2VsKCl9Y2F0Y2h7fWlmKEI9PT0tMSl7Y29uc29sZS53YXJuKCJQYWNrYWdlIGNoZWNrIHRpbWVkIG91dCIpLHRoaXMucGFja2FnZVN0YXR1cz0iZXJyb3IiO3JldHVybn1pZihCPT09MCl0aGlzLnBhY2thZ2VTdGF0dXM9InVwLXRvLWRhdGUiLHRoaXMub3V0ZGF0ZWRQYWNrYWdlcz1bXTtlbHNlIHRyeXtsZXQgQz1KU09OLnBhcnNlKE8pO3RoaXMub3V0ZGF0ZWRQYWNrYWdlcz10aGlzLnBhcnNlT3V0ZGF0ZWRQYWNrYWdlcyhDKSx0aGlzLnBhY2thZ2VTdGF0dXM9dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4wPyJ1cGRhdGVzLWF2YWlsYWJsZSI6InVwLXRvLWRhdGUifWNhdGNoe3RoaXMucGFja2FnZVN0YXR1cz0idXBkYXRlcy1hdmFpbGFibGUiLHRoaXMub3V0ZGF0ZWRQYWNrYWdlcz1bXX19Y2F0Y2goXyl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gY2hlY2sgZm9yIHBhY2thZ2UgdXBkYXRlczoiLF8pLHRoaXMucGFja2FnZVN0YXR1cz0iZXJyb3IifWZpbmFsbHl7dGhpcy5pc0NoZWNraW5nUGFja2FnZXM9ITF9fXBhcnNlT3V0ZGF0ZWRQYWNrYWdlcyhfKXtsZXQgUz1bXTtpZih0eXBlb2YgXz09Im9iamVjdCImJl8hPT1udWxsKWZvcihsZXRbTyxMXW9mIE9iamVjdC5lbnRyaWVzKF8pKXtsZXQgRT1MO1MucHVzaCh7bmFtZTpPLGN1cnJlbnQ6RS5jdXJyZW50fHwidW5rbm93biIsd2FudGVkOkUud2FudGVkfHxFLmN1cnJlbnR8fCJ1bmtub3duIixsYXRlc3Q6RS5sYXRlc3R8fEUud2FudGVkfHwidW5rbm93biIsdHlwZTpFLmRlcGVuZGVuY3lUeXBlPT09ImRldkRlcGVuZGVuY2llcyI/ImRldkRlcGVuZGVuY2llcyI6ImRlcGVuZGVuY2llcyJ9KX1yZXR1cm4gU31hc3luYyBoYW5kbGVQYWNrYWdlQ2xpY2soXyl7Xy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUz1bXTtpZihTLnB1c2goe25hbWU6dGhpcy5pc0NoZWNraW5nUGFja2FnZXM/IkNoZWNraW5nLi4uIjoiQ2hlY2sgZm9yIHVwZGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaEN3IixhY3Rpb246aShhc3luYygpPT57aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuO2xldCBPPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6ImNoZWNrIHBhY2thZ2VzIixjb21tYW5kOiJwbnBtIixhcmdzOlsib3V0ZGF0ZWQiXX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpPfSkpLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDNlMyl9LCJhY3Rpb24iKX0pLHRoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGg+MCl7Uy5wdXNoKHtkaXZpZGVyOiEwfSk7bGV0IE89dGhpcy5vdXRkYXRlZFBhY2thZ2VzLnNsaWNlKDAsMTApO2ZvcihsZXQgTCBvZiBPKVMucHVzaCh7bmFtZTpgJHtMLm5hbWV9OiAke0wuY3VycmVudH0gXHUyMTkyICR7TC5sYXRlc3R9YCxpY29uTmFtZToibHVjaWRlOnBhY2thZ2UiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLnVwZGF0ZVBhY2thZ2UoTC5uYW1lKX0sImFjdGlvbiIpfSk7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4xMCYmUy5wdXNoKHtuYW1lOmAuLi4gYW5kICR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aC0xMH0gbW9yZWAsaWNvbk5hbWU6Imx1Y2lkZTptb3JlSG9yaXpvbnRhbCIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpfSksUy5wdXNoKHtkaXZpZGVyOiEwfSksUy5wdXNoKHtuYW1lOiJVcGRhdGUgYWxsIHBhY2thZ2VzIixpY29uTmFtZToibHVjaWRlOmFycm93VXBDaXJjbGUiLGFjdGlvbjppKGFzeW5jKCk9Pnthd2FpdCB0aGlzLnVwZGF0ZUFsbFBhY2thZ2VzKCl9LCJhY3Rpb24iKX0pfWF3YWl0IENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKF8sUyl9YXN5bmMgdXBkYXRlUGFja2FnZShfKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47dGhpcy5wZW5kaW5nUGFja2FnZVVwZGF0ZT0hMDtsZXQgUz17dHlwZToicGFja2FnZS11cGRhdGUiLGxhYmVsOmB1cGRhdGUgJHtffWAsY29tbWFuZDoicG5wbSIsYXJnczpbInVwZGF0ZSIsIi0tbGF0ZXN0IixfXSxtZXRhZGF0YTp7cGFja2FnZU5hbWU6X319O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6U30pKX1hc3luYyB1cGRhdGVBbGxQYWNrYWdlcygpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjt0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSEwO2xldCBfPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6InVwZGF0ZSBhbGwiLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJ1cGRhdGUiLCItLWxhdGVzdCJdfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOl99KSl9Z2V0UGFja2FnZVN0YXR1c0NsYXNzKCl7cmV0dXJuIHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzPyIiOnRoaXMucGFja2FnZVN0YXR1c31nZXRQYWNrYWdlSWNvbigpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJsdWNpZGU6bG9hZGVyMiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4ibHVjaWRlOmNoZWNrQ2lyY2xlIjtjYXNlInVwZGF0ZXMtYXZhaWxhYmxlIjpyZXR1cm4ibHVjaWRlOmFsZXJ0Q2lyY2xlIjtjYXNlImVycm9yIjpyZXR1cm4ibHVjaWRlOnhDaXJjbGUiO2RlZmF1bHQ6cmV0dXJuImx1Y2lkZTpwYWNrYWdlIn19Z2V0UGFja2FnZVN0YXR1c1RleHQoKXtpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm4iQ2hlY2tpbmcuLi4iO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuIlVwIHRvIGRhdGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybmAke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGh9IHVwZGF0ZSR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aCE9PTE/InMiOiIifWA7Y2FzZSJlcnJvciI6cmV0dXJuIkNoZWNrIGZhaWxlZCI7ZGVmYXVsdDpyZXR1cm4iUGFja2FnZXMifX1nZXRQYWNrYWdlVG9vbHRpcCgpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJDaGVja2luZyBmb3IgcGFja2FnZSB1cGRhdGVzLi4uIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJBbGwgcGFja2FnZXMgYXJlIHVwIHRvIGRhdGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybmAke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGh9IHBhY2thZ2UgdXBkYXRlJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF2YWlsYWJsZWA7Y2FzZSJlcnJvciI6cmV0dXJuIkZhaWxlZCB0byBjaGVjayBmb3IgdXBkYXRlcy4gQ2xpY2sgdG8gcmV0cnkuIjtkZWZhdWx0OnJldHVybiJDbGljayB0byBjaGVjayBmb3IgcGFja2FnZSB1cGRhdGVzIn19YXN5bmMgcmVmcmVzaFBhY2thZ2VTdGF0dXMoKXthd2FpdCB0aGlzLmNoZWNrUGFja2FnZXMoKX1hc3luYyByZWZyZXNoU2NyaXB0cygpe2F3YWl0IHRoaXMubG9hZFNjcmlwdHMoKX1zdGF0aWN7UGMoYSxyKX19O3JldHVybiBOPWF9KSgpfSk7dmFyIFFyZSx6OXQ9dSgoKT0+e1FyZT1jbGFzc3tzdGF0aWN7aSh0aGlzLCJUeXBlU2NyaXB0SW50ZWxsaVNlbnNlTWFuYWdlciIpfWxvYWRlZExpYnM9bmV3IFNldDtub3RGb3VuZFBhY2thZ2VzPW5ldyBTZXQ7bW9uYWNvSW5zdGFuY2U9bnVsbDtleGVjdXRpb25FbnZpcm9ubWVudD1udWxsO2ZpbGVDYWNoZT1uZXcgTWFwO2FkZGVkRXh0cmFMaWJzPW5ldyBNYXA7Z2V0IHRzQXBpKCl7cmV0dXJuIHRoaXMubW9uYWNvSW5zdGFuY2U/dGhpcy5tb25hY29JbnN0YW5jZS5sYW5ndWFnZXMudHlwZXNjcmlwdDpudWxsfWFzeW5jIGluaXQoZSxyKXt0aGlzLm1vbmFjb0luc3RhbmNlPWUsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudD1yLHRoaXMuY29uZmlndXJlQ29tcGlsZXJPcHRpb25zKCksYXdhaXQgdGhpcy5sb2FkQWxsUHJvamVjdEZpbGVzKCl9YXN5bmMgbG9hZEFsbFByb2plY3RGaWxlcygpe3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJmF3YWl0IHRoaXMubG9hZEZpbGVzRnJvbURpcmVjdG9yeSgiLyIpfWFzeW5jIGxvYWRGaWxlc0Zyb21EaXJlY3RvcnkoZSl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IHI9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGUpO2ZvcihsZXQgYSBvZiByKXtsZXQgcz1lPT09Ii8iP2AvJHthLm5hbWV9YDpgJHtlfS8ke2EubmFtZX1gO2lmKGEubmFtZSE9PSJub2RlX21vZHVsZXMiKXtpZihhLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmxvYWRGaWxlc0Zyb21EaXJlY3Rvcnkocyk7ZWxzZSBpZihhLnR5cGU9PT0iZmlsZSIpe2xldCBuPWEubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO2lmKG49PT0idHMifHxuPT09InRzeCJ8fG49PT0ianMifHxuPT09ImpzeCIpdHJ5e2xldCBvPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUocyk7dGhpcy5hZGRGaWxlTW9kZWwocyxvKX1jYXRjaHt9fX19fWNhdGNoe319Y29uZmlndXJlQ29tcGlsZXJPcHRpb25zKCl7bGV0IGU9dGhpcy50c0FwaTtlJiYoZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0Q29tcGlsZXJPcHRpb25zKHt0YXJnZXQ6ZS5TY3JpcHRUYXJnZXQuRVMyMDIwLG1vZHVsZTplLk1vZHVsZUtpbmQuRVNOZXh0LG1vZHVsZVJlc29sdXRpb246ZS5Nb2R1bGVSZXNvbHV0aW9uS2luZC5CdW5kbGVyPz9lLk1vZHVsZVJlc29sdXRpb25LaW5kLk5vZGVKcyxhbGxvd1N5bnRoZXRpY0RlZmF1bHRJbXBvcnRzOiEwLGVzTW9kdWxlSW50ZXJvcDohMCxzdHJpY3Q6ITAsbm9FbWl0OiEwLGFsbG93SnM6ITAsY2hlY2tKczohMSxhbGxvd05vblRzRXh0ZW5zaW9uczohMCxsaWI6WyJlczIwMjAiLCJkb20iLCJkb20uaXRlcmFibGUiXSxiYXNlVXJsOiIvIixhbGxvd0ltcG9ydGluZ1RzRXh0ZW5zaW9uczohMCxyZXNvbHZlSnNvbk1vZHVsZTohMH0pLGUudHlwZXNjcmlwdERlZmF1bHRzLnNldERpYWdub3N0aWNzT3B0aW9ucyh7bm9TZW1hbnRpY1ZhbGlkYXRpb246ITEsbm9TeW50YXhWYWxpZGF0aW9uOiExfSksZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0RWFnZXJNb2RlbFN5bmMoITApKX1wYXJzZUltcG9ydHMoZSl7bGV0IHI9W10sYT0vaW1wb3J0XHMrKD86W1x3Knt9XHMsXStmcm9tXHMrKT9bJyJdKFteJyJdKylbJyJdL2cscztmb3IoOyhzPWEuZXhlYyhlKSkhPT1udWxsOyl7bGV0IG89c1sxXTtpZighby5zdGFydHNXaXRoKCIuIikmJiFvLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IGw9by5zdGFydHNXaXRoKCJAIik/by5zcGxpdCgiLyIpLnNsaWNlKDAsMikuam9pbigiLyIpOm8uc3BsaXQoIi8iKVswXTtyLnB1c2gobCl9fWxldCBuPS9yZXF1aXJlXHMqXChccypbJyJdKFteJyJdKylbJyJdXHMqXCkvZztmb3IoOyhzPW4uZXhlYyhlKSkhPT1udWxsOyl7bGV0IG89c1sxXTtpZighby5zdGFydHNXaXRoKCIuIikmJiFvLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IGw9by5zdGFydHNXaXRoKCJAIik/by5zcGxpdCgiLyIpLnNsaWNlKDAsMikuam9pbigiLyIpOm8uc3BsaXQoIi8iKVswXTtyLnB1c2gobCl9fXJldHVyblsuLi5uZXcgU2V0KHIpXX1hc3luYyBsb2FkVHlwZXNGb3JQYWNrYWdlKGUpe2lmKCEoIXRoaXMubW9uYWNvSW5zdGFuY2V8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSYmIXRoaXMubG9hZGVkTGlicy5oYXMoZSkmJiF0aGlzLm5vdEZvdW5kUGFja2FnZXMuaGFzKGUpKXRyeXtsZXQgcj1hd2FpdCB0aGlzLnRyeUxvYWRQYWNrYWdlVHlwZXMoZSk7cnx8KHI9YXdhaXQgdGhpcy50cnlMb2FkQXRUeXBlc1BhY2thZ2UoZSkpLHI/dGhpcy5sb2FkZWRMaWJzLmFkZChlKTp0aGlzLm5vdEZvdW5kUGFja2FnZXMuYWRkKGUpfWNhdGNoKHIpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGxvYWQgdHlwZXMgZm9yICR7ZX06YCxyKX19YXN5bmMgdHJ5TG9hZFBhY2thZ2VUeXBlcyhlKXtsZXQgcj10aGlzLnRzQXBpO2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhcilyZXR1cm4hMTtsZXQgYT1gL25vZGVfbW9kdWxlcy8ke2V9YDt0cnl7bGV0IHM9YCR7YX0vcGFja2FnZS5qc29uYDtpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhzKSl7bGV0IGw9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShzKSxjPUpTT04ucGFyc2UobCk7aWYoci50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIobCxgZmlsZTovLyR7c31gKSxjLnR5cGVzfHxjLnR5cGluZ3MpcmV0dXJuIGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UoYSksITB9bGV0IG89W2Ake2F9L2luZGV4LmQudHNgLGAke2F9L2Rpc3QvaW5kZXguZC50c2AsYCR7YX0vbGliL2luZGV4LmQudHNgXTtmb3IobGV0IGwgb2YgbylpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhsKSlyZXR1cm4gYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShhKSwhMDtyZXR1cm4hMX1jYXRjaChzKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgcGFja2FnZSB0eXBlcyBmb3IgJHtlfTpgLHMpLCExfX1hc3luYyBsb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShlKXtsZXQgcj10aGlzLnRzQXBpOyF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhcnx8YXdhaXQgdGhpcy5sb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KGUpfWFzeW5jIGxvYWREdHNGaWxlc0Zyb21EaXJlY3RvcnkoZSl7bGV0IHI9dGhpcy50c0FwaTtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhcikpdHJ5e2xldCBhPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihlKTtmb3IobGV0IHMgb2YgYSl7bGV0IG49ZT09PSIvIj9gLyR7cy5uYW1lfWA6YCR7ZX0vJHtzLm5hbWV9YDtpZihzLm5hbWUhPT0ibm9kZV9tb2R1bGVzIil7aWYocy50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5sb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KG4pO2Vsc2UgaWYocy50eXBlPT09ImZpbGUiJiZzLm5hbWUuZW5kc1dpdGgoIi5kLnRzIikpdHJ5e2xldCBvPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUobik7ci50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIobyxgZmlsZTovLyR7bn1gKX1jYXRjaHt9fX19Y2F0Y2h7fX1hc3luYyB0cnlMb2FkQXRUeXBlc1BhY2thZ2UoZSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuITE7bGV0IGE9YC9ub2RlX21vZHVsZXMvJHtlLnN0YXJ0c1dpdGgoIkAiKT9gQHR5cGVzLyR7ZS5zbGljZSgxKS5yZXBsYWNlKCIvIiwiX18iKX1gOmBAdHlwZXMvJHtlfWB9YDt0cnl7bGV0IHM9YCR7YX0vaW5kZXguZC50c2A7cmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKHMpPyhhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGEpLCEwKTohMX1jYXRjaHtyZXR1cm4hMX19YXN5bmMgcHJvY2Vzc0NvbnRlbnRDaGFuZ2UoZSl7bGV0IHI9dGhpcy5wYXJzZUltcG9ydHMoZSk7Zm9yKGxldCBhIG9mIHIpdGhpcy5sb2FkZWRMaWJzLmhhcyhhKXx8YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKGEpfWFzeW5jIHNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7dGhpcy5ub3RGb3VuZFBhY2thZ2VzLmNsZWFyKCk7dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL25vZGVfbW9kdWxlcyIpKXJldHVybjtsZXQgZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoIi9ub2RlX21vZHVsZXMiKTtmb3IobGV0IHIgb2YgZSlpZihyLnR5cGU9PT0iZGlyZWN0b3J5IilpZihyLm5hbWUuc3RhcnRzV2l0aCgiQCIpKXRyeXtsZXQgYT1gL25vZGVfbW9kdWxlcy8ke3IubmFtZX1gLHM9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGEpO2ZvcihsZXQgbiBvZiBzKWlmKG4udHlwZT09PSJkaXJlY3RvcnkiKXtsZXQgbz1gJHtyLm5hbWV9LyR7bi5uYW1lfWA7YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKG8pfX1jYXRjaHt9ZWxzZSByLm5hbWUuc3RhcnRzV2l0aCgiLiIpfHxhd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2Uoci5uYW1lKX1jYXRjaChlKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBzY2FuIG5vZGVfbW9kdWxlczoiLGUpfX19YWRkRmlsZU1vZGVsKGUscil7aWYoIXRoaXMubW9uYWNvSW5zdGFuY2UpcmV0dXJuO3RoaXMuZmlsZUNhY2hlLnNldChlLHIpO2xldCBhPXRoaXMubW9uYWNvSW5zdGFuY2UuVXJpLnBhcnNlKGBmaWxlOi8vJHtlfWApLHM9dGhpcy5tb25hY29JbnN0YW5jZS5lZGl0b3IuZ2V0TW9kZWwoYSk7aWYocylzLmdldFZhbHVlKCkhPT1yJiZzLnNldFZhbHVlKHIpO2Vsc2V7bGV0IG49dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGUpO3RoaXMubW9uYWNvSW5zdGFuY2UuZWRpdG9yLmNyZWF0ZU1vZGVsKHIsbixhKX10aGlzLmFkZEZpbGVBc0V4dHJhTGliKGUscil9YWRkRmlsZUFzRXh0cmFMaWIoZSxyKXtsZXQgYT10aGlzLnRzQXBpO2lmKCFhKXJldHVybjtsZXQgcz10aGlzLmFkZGVkRXh0cmFMaWJzLmdldChlKTtzJiZzLmRpc3Bvc2UoKTtsZXQgbj1gZmlsZTovLyR7ZX1gLG89YS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIocixuKTtpZih0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChlLG8pLGUuZW5kc1dpdGgoIi50cyIpJiYhZS5lbmRzV2l0aCgiLmQudHMiKSl7bGV0IGw9ZS5yZXBsYWNlKC9cLnRzJC8sIi5qcyIpLGM9YGZpbGU6Ly8ke2x9YCxkPWEudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHIsYyk7dGhpcy5hZGRlZEV4dHJhTGlicy5zZXQobCxkKSx0aGlzLmZpbGVDYWNoZS5zZXQobCxyKX1lbHNlIGlmKGUuZW5kc1dpdGgoIi50c3giKSl7bGV0IGw9ZS5yZXBsYWNlKC9cLnRzeCQvLCIuanN4IiksYz1gZmlsZTovLyR7bH1gLGQ9YS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIocixjKTt0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChsLGQpLHRoaXMuZmlsZUNhY2hlLnNldChsLHIpfX1nZXRGaWxlQ29udGVudChlKXtyZXR1cm4gdGhpcy5maWxlQ2FjaGUuZ2V0KGUpfWdldExhbmd1YWdlRnJvbVBhdGgoZSl7c3dpdGNoKGUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJ0eXBlc2NyaXB0IjtjYXNlImpzIjpjYXNlImpzeCI6cmV0dXJuImphdmFzY3JpcHQiO2Nhc2UianNvbiI6cmV0dXJuImpzb24iO2RlZmF1bHQ6cmV0dXJuInBsYWludGV4dCJ9fX19KTt2YXIgbWcsZ2wscGFhLF85dD11KCgpPT57dmUoKTtNcigpO0E2dCgpO2x0KCk7ZzkoKTttZz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZ2w9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHBhYT0oKCk9PntsZXQgdD1bdWUoImRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VEaWZmRWRpdG9yIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IEw9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpTdHJpbmd9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpTdHJpbmd9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0seT1bUCh7dHlwZTpTdHJpbmd9KV0sTj1bUCh7dHlwZTpTdHJpbmd9KV0sbWcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im9yaWdpbmFsQ29udGVudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm9yaWdpbmFsQ29udGVudCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLm9yaWdpbmFsQ29udGVudD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LG8sbCksbWcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+Im1vZGlmaWVkQ29udGVudCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm1vZGlmaWVkQ29udGVudCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLm1vZGlmaWVkQ29udGVudD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LGQsZiksbWcodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJvcmlnaW5hbExhYmVsImluIEUsImhhcyIpLGdldDppKEU9PkUub3JpZ2luYWxMYWJlbCwiZ2V0Iiksc2V0OmkoKEUsQik9PntFLm9yaWdpbmFsTGFiZWw9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxoLG0pLG1nKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kaWZpZWRMYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShFPT4ibW9kaWZpZWRMYWJlbCJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLm1vZGlmaWVkTGFiZWwsImdldCIpLHNldDppKChFLEIpPT57RS5tb2RpZmllZExhYmVsPUJ9LCJzZXQiKX0sbWV0YWRhdGE6TH0sYixnKSxtZyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEU9PiJsYW5ndWFnZSJpbiBFLCJoYXMiKSxnZXQ6aShFPT5FLmxhbmd1YWdlLCJnZXQiKSxzZXQ6aSgoRSxCKT0+e0UubGFuZ3VhZ2U9Qn0sInNldCIpfSxtZXRhZGF0YTpMfSxrLE0pLG1nKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRT0+ImZpbGVQYXRoImluIEUsImhhcyIpLGdldDppKEU9PkUuZmlsZVBhdGgsImdldCIpLHNldDppKChFLEIpPT57RS5maWxlUGF0aD1CfSwic2V0Iil9LG1ldGFkYXRhOkx9LF8sUyksbWcobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6TH0sbnVsbCxyKSxPPWE9ZS52YWx1ZSxMJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yCiAgICAgIC5vcmlnaW5hbENvbnRlbnQ9JHtgZnVuY3Rpb24gaGVsbG8oKSB7CiAgY29uc29sZS5sb2coIkhlbGxvIik7Cn1gfQogICAgICAubW9kaWZpZWRDb250ZW50PSR7YGZ1bmN0aW9uIGhlbGxvKCkgewogIGNvbnNvbGUubG9nKCJIZWxsbyBXb3JsZCEiKTsKICByZXR1cm4gdHJ1ZTsKfWB9CiAgICAgIC5sYW5ndWFnZT0keyJ0eXBlc2NyaXB0In0KICAgICAgLmZpbGVQYXRoPSR7Ii9kZW1vL2V4YW1wbGUudHMifQogICAgPjwvZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3I+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07ZGlmZkVkaXRvckRlZmVycmVkPWNyLnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPWdsKHRoaXMsbywiIik7Z2V0IG9yaWdpbmFsQ29udGVudCgpe3JldHVybiB0aGlzLiNlfXNldCBvcmlnaW5hbENvbnRlbnQoTCl7dGhpcy4jZT1MfSN0PShnbCh0aGlzLGwpLGdsKHRoaXMsZCwiIikpO2dldCBtb2RpZmllZENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbW9kaWZpZWRDb250ZW50KEwpe3RoaXMuI3Q9TH0jcj0oZ2wodGhpcyxmKSxnbCh0aGlzLGgsIkRpc2sgVmVyc2lvbiIpKTtnZXQgb3JpZ2luYWxMYWJlbCgpe3JldHVybiB0aGlzLiNyfXNldCBvcmlnaW5hbExhYmVsKEwpe3RoaXMuI3I9TH0jYT0oZ2wodGhpcyxtKSxnbCh0aGlzLGIsIkxvY2FsIFZlcnNpb24iKSk7Z2V0IG1vZGlmaWVkTGFiZWwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbW9kaWZpZWRMYWJlbChMKXt0aGlzLiNhPUx9I2k9KGdsKHRoaXMsZyksZ2wodGhpcyxrLCJ0eXBlc2NyaXB0IikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNpfXNldCBsYW5ndWFnZShMKXt0aGlzLiNpPUx9I3M9KGdsKHRoaXMsTSksZ2wodGhpcyxfLCIiKSk7Z2V0IGZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGZpbGVQYXRoKEwpe3RoaXMuI3M9TH1kaWZmRWRpdG9yPShnbCh0aGlzLFMpLG51bGwpO21vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGw7b3JpZ2luYWxNb2RlbD1udWxsO21vZGlmaWVkTW9kZWw9bnVsbDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdm8uc2V0dXBEb21Ub29scygpfXN0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5kaWZmLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5kaWZmLXRvb2xiYXIgewogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRpZmYtaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLmRpZmYtZmlsZW5hbWUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLmRpZmYtbGFiZWxzIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmRpZmYtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZGlmZi1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBMPXRoaXMuZmlsZVBhdGguc3BsaXQoIi8iKS5wb3AoKXx8ImZpbGUiO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWZmLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtdG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLWluZm8iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlmZi1maWxlbmFtZSI+JHtMfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpZmYtbGFiZWxzIj4ke3RoaXMub3JpZ2luYWxMYWJlbH0g4oaUICR7dGhpcy5tb2RpZmllZExhYmVsfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi1hY3Rpb25zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWJ1dHRvbnMiPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZ29Ub1ByZXZpb3VzRGlmZn0KICAgICAgICAgICAgICA+UHJldmlvdXM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZ29Ub05leHREaWZmfQogICAgICAgICAgICAgID5OZXh0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbi1idXR0b25zIj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9ImhpZ2hsaWdodGVkIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hY2NlcHRMb2NhbH0KICAgICAgICAgICAgICA+VXNlIExvY2FsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFjY2VwdERpc2t9CiAgICAgICAgICAgICAgPlVzZSBEaXNrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmNsb3NlfQogICAgICAgICAgICAgID5DbG9zZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi1jb250YWluZXIiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKG5ldyBNYXApLGF3YWl0IHRoaXMuaW5pdERpZmZFZGl0b3IoKX1hc3luYyBpbml0RGlmZkVkaXRvcigpe2xldCBMPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRpZmYtY29udGFpbmVyIik7aWYoIUwpcmV0dXJuO2xldCBFPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21vbmFjby1lZGl0b3JAJHtScGV9YCxCPXdpbmRvdy5tb25hY287Qnx8KGF3YWl0IG5ldyBQcm9taXNlKFo9PntsZXQgZGU9c2V0SW50ZXJ2YWwoKCk9Pnt3aW5kb3cubW9uYWNvJiYoY2xlYXJJbnRlcnZhbChkZSksWigpKX0sMTAwKX0pLEI9d2luZG93Lm1vbmFjbyk7bGV0IEM9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsQT1DLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4/InZzIjoidnMtZGFyayIsJD1EYXRlLm5vdygpLEY9Qi5VcmkucGFyc2UoYGRpZmY6Ly9vcmlnaW5hbC8keyR9JHt0aGlzLmZpbGVQYXRofWApLFk9Qi5VcmkucGFyc2UoYGRpZmY6Ly9tb2RpZmllZC8keyR9JHt0aGlzLmZpbGVQYXRofWApO3RoaXMub3JpZ2luYWxNb2RlbD1CLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLm9yaWdpbmFsQ29udGVudCx0aGlzLmxhbmd1YWdlLEYpLHRoaXMubW9kaWZpZWRNb2RlbD1CLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLm1vZGlmaWVkQ29udGVudCx0aGlzLmxhbmd1YWdlLFkpLHRoaXMuZGlmZkVkaXRvcj1CLmVkaXRvci5jcmVhdGVEaWZmRWRpdG9yKEwse2F1dG9tYXRpY0xheW91dDohMCxyZWFkT25seTohMSxvcmlnaW5hbEVkaXRhYmxlOiExLHJlbmRlclNpZGVCeVNpZGU6ITAsaWdub3JlVHJpbVdoaXRlc3BhY2U6ITEsZm9udFNpemU6MTQsbWluaW1hcDp7ZW5hYmxlZDohMX19KSxCLmVkaXRvci5zZXRUaGVtZShBKSx0aGlzLmRpZmZFZGl0b3Iuc2V0TW9kZWwoe29yaWdpbmFsOnRoaXMub3JpZ2luYWxNb2RlbCxtb2RpZmllZDp0aGlzLm1vZGlmaWVkTW9kZWx9KSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPUMudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoWj0+e2xldCBkZT1aPyJ2cyI6InZzLWRhcmsiO0IuZWRpdG9yLnNldFRoZW1lKGRlKX0pO2xldCBHPSJtb25hY28tZGlmZi1lZGl0b3ItY3NzIjtpZighdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZChHKSl7bGV0IGRlPWF3YWl0KGF3YWl0IGZldGNoKGAke0V9L21pbi92cy9lZGl0b3IvZWRpdG9yLm1haW4uY3NzYCkpLnRleHQoKSxEPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7RC5pZD1HLEQudGV4dENvbnRlbnQ9ZGUsdGhpcy5zaGFkb3dSb290Py5hcHBlbmQoRCl9c2V0VGltZW91dCgoKT0+e3RyeXt0aGlzLmRpZmZFZGl0b3I/LnJldmVhbEZpcnN0RGlmZigpfWNhdGNoe319LDEwMCksdGhpcy5kaWZmRWRpdG9yRGVmZXJyZWQucmVzb2x2ZSh0aGlzLmRpZmZFZGl0b3IpfWdvVG9OZXh0RGlmZigpe3RyeXt0aGlzLmRpZmZFZGl0b3I/LmdvVG9EaWZmKCJuZXh0Iil9Y2F0Y2h7fX1nb1RvUHJldmlvdXNEaWZmKCl7dHJ5e3RoaXMuZGlmZkVkaXRvcj8uZ29Ub0RpZmYoInByZXZpb3VzIil9Y2F0Y2h7fX1hY2NlcHRMb2NhbCgpe2xldCBMPXRoaXMuZGlmZkVkaXRvcj8uZ2V0TW9kaWZpZWRFZGl0b3IoKS5nZXRWYWx1ZSgpfHx0aGlzLm1vZGlmaWVkQ29udGVudDt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWZmLXJlc29sdmVkIix7ZGV0YWlsOnthY3Rpb246InVzZS1sb2NhbCIsY29udGVudDpMfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFjY2VwdERpc2soKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWZmLXJlc29sdmVkIix7ZGV0YWlsOnthY3Rpb246InVzZS1kaXNrIixjb250ZW50OnRoaXMub3JpZ2luYWxDb250ZW50fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNsb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbCksdGhpcy5vcmlnaW5hbE1vZGVsJiYodGhpcy5vcmlnaW5hbE1vZGVsLmRpc3Bvc2UoKSx0aGlzLm9yaWdpbmFsTW9kZWw9bnVsbCksdGhpcy5tb2RpZmllZE1vZGVsJiYodGhpcy5tb2RpZmllZE1vZGVsLmRpc3Bvc2UoKSx0aGlzLm1vZGlmaWVkTW9kZWw9bnVsbCksdGhpcy5kaWZmRWRpdG9yJiYodGhpcy5kaWZmRWRpdG9yLmRpc3Bvc2UoKSx0aGlzLmRpZmZFZGl0b3I9bnVsbCl9c3RhdGlje2dsKGEscil9fTtyZXR1cm4gTz1hfSkoKX0pO3ZhciBMaSxkcixmYWEsaGFhPXUoKCk9Pnt2ZSgpO01yKCk7bHQoKTtaNmUoKTt2OSgpO1g2ZSgpO1g2ZSgpO0tyZSgpO0tyZSgpO005dCgpO0M5dCgpO0tyKCk7djkoKTt6OXQoKTtzcygpO3dhKCk7JDZlKCk7Xzl0KCk7TGk9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGRyPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxmYWE9KCgpPT57bGV0IHQ9W3VlKCJkZWVzLXdvcmtzcGFjZSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXSxmZSxUPVtdLFc9W10scGUsbWU9W10scT1bXSxILFU9W10saj1bXSxhZSxYPVtdLEo9W10seGUsSz1bXSxWPVtdLGxlLG5lPVtdLGVlPVtdLHplLEhlPVtdLEdlPVtdLG90LERlPVtdLF9lPVtdLG9lLHNlPVtdLGNlPVtdLFRlLHFlPVtdLG50PVtdLHZ0LExlPVtdLHdlPVtdO3ZhciBPZT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZSIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBnZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHthdHRyaWJ1dGU6ITF9KV0scD1bUCh7dHlwZTpCb29sZWFufSldLHY9W1Aoe3R5cGU6Qm9vbGVhbn0pXSx5PVtQKHt0eXBlOk51bWJlcn0pXSxOPVtQKHt0eXBlOk51bWJlcn0pXSxPPVtpZSgpXSxCPVtpZSgpXSxBPVtpZSgpXSxZPVtpZSgpXSxkZT1baWUoKV0sZmU9W2llKCldLHBlPVtpZSgpXSxIPVtpZSgpXSxhZT1baWUoKV0seGU9W2llKCldLGxlPVtpZSgpXSx6ZT1baWUoKV0sb3Q9W2llKCldLG9lPVtpZSgpXSxUZT1baWUoKV0sdnQ9W2llKCldLExpKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmV4ZWN1dGlvbkVudmlyb25tZW50LCJnZXQiKSxzZXQ6aSgoYmUsSWUpPT57YmUuZXhlY3V0aW9uRW52aXJvbm1lbnQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LG8sbCksTGkodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsaXphdGlvblByb21pc2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJpbml0aWFsaXphdGlvblByb21pc2UiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5pbml0aWFsaXphdGlvblByb21pc2UsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5pbml0aWFsaXphdGlvblByb21pc2U9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LGQsZiksTGkodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJzaG93RmlsZVRyZWUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5zaG93RmlsZVRyZWUsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5zaG93RmlsZVRyZWU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LGgsbSksTGkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGVybWluYWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJzaG93VGVybWluYWwiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5zaG93VGVybWluYWwsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5zaG93VGVybWluYWw9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LGIsZyksTGkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlVHJlZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iZmlsZVRyZWVXaWR0aCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmZpbGVUcmVlV2lkdGgsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5maWxlVHJlZVdpZHRoPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxrLE0pLExpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJ0ZXJtaW5hbEhlaWdodCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLnRlcm1pbmFsSGVpZ2h0LCJnZXQiKSxzZXQ6aSgoYmUsSWUpPT57YmUudGVybWluYWxIZWlnaHQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LF8sUyksTGkodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuRmlsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJvcGVuRmlsZXMiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5vcGVuRmlsZXMsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5vcGVuRmlsZXM9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LEwsRSksTGkodGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVGaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+ImFjdGl2ZUZpbGVQYXRoImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuYWN0aXZlRmlsZVBhdGgsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5hY3RpdmVGaWxlUGF0aD1JZX0sInNldCIpfSxtZXRhZGF0YTpnZX0sQyx6KSxMaSh0aGlzLG51bGwsQSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzVGVybWluYWxDb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJpc1Rlcm1pbmFsQ29sbGFwc2VkImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuaXNUZXJtaW5hbENvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmlzVGVybWluYWxDb2xsYXBzZWQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LCQsRiksTGkodGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0ZpbGVUcmVlQ29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iaXNGaWxlVHJlZUNvbGxhcHNlZCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmlzRmlsZVRyZWVDb2xsYXBzZWQsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5pc0ZpbGVUcmVlQ29sbGFwc2VkPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxHLFopLExpKHRoaXMsbnVsbCxkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSW5pdGlhbGl6aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iaXNJbml0aWFsaXppbmciaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5pc0luaXRpYWxpemluZywiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmlzSW5pdGlhbGl6aW5nPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxELFEpLExpKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJvdHRvbVBhbmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iYWN0aXZlQm90dG9tUGFuZWwiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5hY3RpdmVCb3R0b21QYW5lbCwiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmFjdGl2ZUJvdHRvbVBhbmVsPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxULFcpLExpKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpYWdub3N0aWNNYXJrZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iZGlhZ25vc3RpY01hcmtlcnMiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5kaWFnbm9zdGljTWFya2VycywiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmRpYWdub3N0aWNNYXJrZXJzPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxtZSxxKSxMaSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TYXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iYXV0b1NhdmUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5hdXRvU2F2ZSwiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmF1dG9TYXZlPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxVLGopLExpKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGJlPT4iaW5pdENvbW1hbmQiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5pbml0Q29tbWFuZCwiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmluaXRDb21tYW5kPUllfSwic2V0Iil9LG1ldGFkYXRhOmdlfSxYLEopLExpKHRoaXMsbnVsbCx4ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRPdXRwdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJpbml0T3V0cHV0ImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuaW5pdE91dHB1dCwiZ2V0Iiksc2V0OmkoKGJlLEllKT0+e2JlLmluaXRPdXRwdXQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LEssViksTGkodGhpcyxudWxsLGxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudEZpbGVUcmVlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJjdXJyZW50RmlsZVRyZWVXaWR0aCJpbiBiZSwiaGFzIiksZ2V0OmkoYmU9PmJlLmN1cnJlbnRGaWxlVHJlZVdpZHRoLCJnZXQiKSxzZXQ6aSgoYmUsSWUpPT57YmUuY3VycmVudEZpbGVUcmVlV2lkdGg9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LG5lLGVlKSxMaSh0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJjdXJyZW50VGVybWluYWxIZWlnaHQiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5jdXJyZW50VGVybWluYWxIZWlnaHQsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5jdXJyZW50VGVybWluYWxIZWlnaHQ9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LEhlLEdlKSxMaSh0aGlzLG51bGwsb3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nRmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJpc0RyYWdnaW5nRmlsZVRyZWUiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5pc0RyYWdnaW5nRmlsZVRyZWUsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5pc0RyYWdnaW5nRmlsZVRyZWU9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LERlLF9lKSxMaSh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nVGVybWluYWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJpc0RyYWdnaW5nVGVybWluYWwiaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5pc0RyYWdnaW5nVGVybWluYWwsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5pc0RyYWdnaW5nVGVybWluYWw9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LHNlLGNlKSxMaSh0aGlzLG51bGwsVGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RGlmZlZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoYmU9PiJzaG93RGlmZlZpZXciaW4gYmUsImhhcyIpLGdldDppKGJlPT5iZS5zaG93RGlmZlZpZXcsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5zaG93RGlmZlZpZXc9SWV9LCJzZXQiKX0sbWV0YWRhdGE6Z2V9LHFlLG50KSxMaSh0aGlzLG51bGwsdnQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaWZmVmlld0NvbmZpZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShiZT0+ImRpZmZWaWV3Q29uZmlnImluIGJlLCJoYXMiKSxnZXQ6aShiZT0+YmUuZGlmZlZpZXdDb25maWcsImdldCIpLHNldDppKChiZSxJZSk9PntiZS5kaWZmVmlld0NvbmZpZz1JZX0sInNldCIpfSxtZXRhZGF0YTpnZX0sTGUsd2UpLExpKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmdlfSxudWxsLHIpLE9lPWE9ZS52YWx1ZSxnZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpnZX0pfXN0YXRpYyBkZW1vPWkoKCk9PntsZXQgZ2U9bmV3IHBnLGJlPShhc3luYygpPT57YXdhaXQgZ2UuaW5pdCgpO2xldCB3dD17InBhY2thZ2UuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtuYW1lOiJkZW1vLXByb2plY3QiLHZlcnNpb246IjEuMC4wIix0eXBlOiJtb2R1bGUiLHNjcmlwdHM6e2J1aWxkOiJ0c2MiLGRldjoidHNjIC0td2F0Y2gifSxkZXBlbmRlbmNpZXM6eyJAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UiOiJeNC4yLjMifSxkZXZEZXBlbmRlbmNpZXM6eyJAdHlwZXMvbm9kZSI6Il4yMi4wLjAiLHR5cGVzY3JpcHQ6Il41LjAuMCJ9fSxudWxsLDIpfX0sIm5wbWV4dHJhLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7ZGVlc0VkaXRvcldvcmtzcGFjZTp7b25Jbml0OiJwbnBtIGluc3RhbGwifX0sbnVsbCwyKX19LCJ0c2NvbmZpZy5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe2NvbXBpbGVyT3B0aW9uczp7dGFyZ2V0OiJFUzIwMjIiLG1vZHVsZToiTm9kZU5leHQiLG1vZHVsZVJlc29sdXRpb246Ik5vZGVOZXh0IixzdHJpY3Q6ITAsb3V0RGlyOiIuL2Rpc3QiLHJvb3REaXI6Ii4vc3JjIixkZWNsYXJhdGlvbjohMH0saW5jbHVkZTpbInNyYy8qKi8qIl19LG51bGwsMil9fSxzcmM6e2RpcmVjdG9yeTp7ImluZGV4LnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIE1haW4gZW50cnkgcG9pbnQKaW1wb3J0IHsgZ3JlZXQsIGZvcm1hdE5hbWUgfSBmcm9tICcuL3V0aWxzLmpzJzsKCmNvbnN0IG5hbWUgPSBmb3JtYXROYW1lKCdXb3JsZCcpOwpjb25zb2xlLmxvZyhncmVldChuYW1lKSk7CgovLyBFeGFtcGxlIGFzeW5jIGZ1bmN0aW9uCmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7CiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCdIZWxsbyBmcm9tIGFzeW5jIScpOwogIGNvbnNvbGUubG9nKHJlc3VsdCk7Cn0KCm1haW4oKTsKYH19LCJ1dGlscy50cyI6e2ZpbGU6e2NvbnRlbnRzOmAvLyBVdGlsaXR5IGZ1bmN0aW9ucwoKZXhwb3J0IGludGVyZmFjZSBJVXNlciB7CiAgZmlyc3ROYW1lOiBzdHJpbmc7CiAgbGFzdE5hbWU6IHN0cmluZzsKfQoKZXhwb3J0IGZ1bmN0aW9uIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgcmV0dXJuIFxgSGVsbG8sIFwke25hbWV9IVxgOwp9CgpleHBvcnQgZnVuY3Rpb24gZm9ybWF0TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogIHJldHVybiBuYW1lLnRyaW0oKS50b1VwcGVyQ2FzZSgpOwp9CgpleHBvcnQgZnVuY3Rpb24gY3JlYXRlVXNlcihmaXJzdE5hbWU6IHN0cmluZywgbGFzdE5hbWU6IHN0cmluZyk6IElVc2VyIHsKICByZXR1cm4geyBmaXJzdE5hbWUsIGxhc3ROYW1lIH07Cn0KYH19LCJpbXBvcnR0ZXN0LnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIFRlc3QgbnBtIHBhY2thZ2UgaW1wb3J0cwppbXBvcnQgKiBhcyBzbWFydHByb21pc2UgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlJzsKCi8vIFRoaXMgc2hvdWxkIGhhdmUgSW50ZWxsaVNlbnNlIHNob3dpbmcgZGVmZXIoKSBtZXRob2QKY29uc3QgZGVmZXJyZWQgPSBzbWFydHByb21pc2UuZGVmZXI8c3RyaW5nPigpOwoKLy8gVGVzdCB1c2luZyB0aGUgZGVmZXJyZWQgcHJvbWlzZQphc3luYyBmdW5jdGlvbiB0ZXN0U21hcnRQcm9taXNlKCkgewogIHNldFRpbWVvdXQoKCkgPT4gewogICAgZGVmZXJyZWQucmVzb2x2ZSgnSGVsbG8gZnJvbSBzbWFydHByb21pc2UhJyk7CiAgfSwgMTAwKTsKCiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGVmZXJyZWQucHJvbWlzZTsKICBjb25zb2xlLmxvZyhyZXN1bHQpOwp9Cgp0ZXN0U21hcnRQcm9taXNlKCk7CmB9fX19fTthd2FpdCBnZS5tb3VudCh3dCl9KSgpLEllPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0llLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyI7bGV0IHl0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtd29ya3NwYWNlIik7cmV0dXJuIHl0LmV4ZWN1dGlvbkVudmlyb25tZW50PWdlLHl0LmluaXRpYWxpemF0aW9uUHJvbWlzZT1iZSxJZS5hcHBlbmRDaGlsZCh5dCksd2AKICAgICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgICAgJHtJZX0KICAgICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgYH0sImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPWRyKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoZ2Upe3RoaXMuI2U9Z2V9I3Q9KGRyKHRoaXMsbCksZHIodGhpcyxkLG51bGwpKTtnZXQgaW5pdGlhbGl6YXRpb25Qcm9taXNlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluaXRpYWxpemF0aW9uUHJvbWlzZShnZSl7dGhpcy4jdD1nZX0jcj0oZHIodGhpcyxmKSxkcih0aGlzLGgsITApKTtnZXQgc2hvd0ZpbGVUcmVlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dGaWxlVHJlZShnZSl7dGhpcy4jcj1nZX0jYT0oZHIodGhpcyxtKSxkcih0aGlzLGIsITApKTtnZXQgc2hvd1Rlcm1pbmFsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dUZXJtaW5hbChnZSl7dGhpcy4jYT1nZX0jaT0oZHIodGhpcyxnKSxkcih0aGlzLGssMjUwKSk7Z2V0IGZpbGVUcmVlV2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZmlsZVRyZWVXaWR0aChnZSl7dGhpcy4jaT1nZX0jcz0oZHIodGhpcyxNKSxkcih0aGlzLF8sMjAwKSk7Z2V0IHRlcm1pbmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHRlcm1pbmFsSGVpZ2h0KGdlKXt0aGlzLiNzPWdlfSNuPShkcih0aGlzLFMpLGRyKHRoaXMsTCxbXSkpO2dldCBvcGVuRmlsZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgb3BlbkZpbGVzKGdlKXt0aGlzLiNuPWdlfSNvPShkcih0aGlzLEUpLGRyKHRoaXMsQywiIikpO2dldCBhY3RpdmVGaWxlUGF0aCgpe3JldHVybiB0aGlzLiNvfXNldCBhY3RpdmVGaWxlUGF0aChnZSl7dGhpcy4jbz1nZX0jbD0oZHIodGhpcyx6KSxkcih0aGlzLCQsITEpKTtnZXQgaXNUZXJtaW5hbENvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNsfXNldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKGdlKXt0aGlzLiNsPWdlfSNjPShkcih0aGlzLEYpLGRyKHRoaXMsRywhMSkpO2dldCBpc0ZpbGVUcmVlQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoZ2Upe3RoaXMuI2M9Z2V9I2Q9KGRyKHRoaXMsWiksZHIodGhpcyxELCEwKSk7Z2V0IGlzSW5pdGlhbGl6aW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzSW5pdGlhbGl6aW5nKGdlKXt0aGlzLiNkPWdlfSN1PShkcih0aGlzLFEpLGRyKHRoaXMsVCwidGVybWluYWwiKSk7Z2V0IGFjdGl2ZUJvdHRvbVBhbmVsKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGFjdGl2ZUJvdHRvbVBhbmVsKGdlKXt0aGlzLiN1PWdlfSNwPShkcih0aGlzLFcpLGRyKHRoaXMsbWUsW10pKTtnZXQgZGlhZ25vc3RpY01hcmtlcnMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZGlhZ25vc3RpY01hcmtlcnMoZ2Upe3RoaXMuI3A9Z2V9ZWRpdG9yRWxlbWVudD0oZHIodGhpcyxxKSxudWxsKTtpbml0aWFsaXphdGlvblN0YXJ0ZWQ9ITE7aW50ZWxsaVNlbnNlTWFuYWdlcj1udWxsO2ludGVsbGlTZW5zZUluaXRpYWxpemVkPSExO25vZGVNb2R1bGVzV2F0Y2hlcj1udWxsO25vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGw7aW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PW51bGw7b3BlbkZpbGVXYXRjaGVycz1uZXcgTWFwO2ZpbGVDaGFuZ2VEZWJvdW5jZT1uZXcgTWFwO2FjdGlvbmJhckVsZW1lbnQ9bnVsbDsjZj1kcih0aGlzLFUsITEpO2dldCBhdXRvU2F2ZSgpe3JldHVybiB0aGlzLiNmfXNldCBhdXRvU2F2ZShnZSl7dGhpcy4jZj1nZX1hdXRvU2F2ZUludGVydmFsPShkcih0aGlzLGopLG51bGwpOyNoPWRyKHRoaXMsWCwiIik7Z2V0IGluaXRDb21tYW5kKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGluaXRDb21tYW5kKGdlKXt0aGlzLiNoPWdlfSNtPShkcih0aGlzLEopLGRyKHRoaXMsSyxbXSkpO2dldCBpbml0T3V0cHV0KCl7cmV0dXJuIHRoaXMuI219c2V0IGluaXRPdXRwdXQoZ2Upe3RoaXMuI209Z2V9I2c9KGRyKHRoaXMsViksZHIodGhpcyxuZSwyNTApKTtnZXQgY3VycmVudEZpbGVUcmVlV2lkdGgoKXtyZXR1cm4gdGhpcy4jZ31zZXQgY3VycmVudEZpbGVUcmVlV2lkdGgoZ2Upe3RoaXMuI2c9Z2V9I2I9KGRyKHRoaXMsZWUpLGRyKHRoaXMsSGUsMjAwKSk7Z2V0IGN1cnJlbnRUZXJtaW5hbEhlaWdodCgpe3JldHVybiB0aGlzLiNifXNldCBjdXJyZW50VGVybWluYWxIZWlnaHQoZ2Upe3RoaXMuI2I9Z2V9I3g9KGRyKHRoaXMsR2UpLGRyKHRoaXMsRGUsITEpKTtnZXQgaXNEcmFnZ2luZ0ZpbGVUcmVlKCl7cmV0dXJuIHRoaXMuI3h9c2V0IGlzRHJhZ2dpbmdGaWxlVHJlZShnZSl7dGhpcy4jeD1nZX0jdj0oZHIodGhpcyxfZSksZHIodGhpcyxzZSwhMSkpO2dldCBpc0RyYWdnaW5nVGVybWluYWwoKXtyZXR1cm4gdGhpcy4jdn1zZXQgaXNEcmFnZ2luZ1Rlcm1pbmFsKGdlKXt0aGlzLiN2PWdlfSN5PShkcih0aGlzLGNlKSxkcih0aGlzLHFlLCExKSk7Z2V0IHNob3dEaWZmVmlldygpe3JldHVybiB0aGlzLiN5fXNldCBzaG93RGlmZlZpZXcoZ2Upe3RoaXMuI3k9Z2V9I3c9KGRyKHRoaXMsbnQpLGRyKHRoaXMsTGUsbnVsbCkpO2dldCBkaWZmVmlld0NvbmZpZygpe3JldHVybiB0aGlzLiN3fXNldCBkaWZmVmlld0NvbmZpZyhnZSl7dGhpcy4jdz1nZX1rZXlkb3duSGFuZGxlcj0oZHIodGhpcyx3ZSksZ2U9PnsoZ2UubWV0YUtleXx8Z2UuY3RybEtleSkmJmdlLmtleT09PSJzIiYmIWdlLnNoaWZ0S2V5JiYoZ2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVBY3RpdmVGaWxlKCkpLChnZS5tZXRhS2V5fHxnZS5jdHJsS2V5KSYmZ2Uuc2hpZnRLZXkmJmdlLmtleS50b0xvd2VyQ2FzZSgpPT09InMiJiYoZ2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVBbGxGaWxlcygpKX0pO2hhbmRsZUZpbGVUcmVlTW91c2VEb3duPWkoZ2U9PntnZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlVXApfSwiaGFuZGxlRmlsZVRyZWVNb3VzZURvd24iKTtoYW5kbGVGaWxlVHJlZU1vdXNlTW92ZT1pKGdlPT57aWYoIXRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlKXJldHVybjtsZXQgYmU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxJZT1nZS5jbGllbnRYLWJlLmxlZnQseXQ9MTUwLHd0PWJlLndpZHRoKi41LFl0PU1hdGgubWF4KHl0LE1hdGgubWluKHd0LEllKSk7dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aD1ZdH0sImhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlIik7aGFuZGxlRmlsZVRyZWVNb3VzZVVwPWkoKCk9Pnt0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX0sImhhbmRsZUZpbGVUcmVlTW91c2VVcCIpO2hhbmRsZVRlcm1pbmFsTW91c2VEb3duPWkoZ2U9PntnZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlVXApfSwiaGFuZGxlVGVybWluYWxNb3VzZURvd24iKTtoYW5kbGVUZXJtaW5hbE1vdXNlTW92ZT1pKGdlPT57aWYoIXRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsKXJldHVybjtsZXQgYmU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxJZT1nZS5jbGllbnRZLWJlLnRvcCx5dD1iZS5oZWlnaHQtSWUsd3Q9MTAwLFl0PWJlLmhlaWdodCouNyx6YT1NYXRoLm1heCh3dCxNYXRoLm1pbihZdCx5dCkpO3RoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PXphfSwiaGFuZGxlVGVybWluYWxNb3VzZU1vdmUiKTtoYW5kbGVUZXJtaW5hbE1vdXNlVXA9aSgoKT0+e3RoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlVXApLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfSwiaGFuZGxlVGVybWluYWxNb3VzZVVwIik7c3RhdGljIHN0eWxlcz1bTmUseC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utb3V0ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZWRpdG9yLWFyZWEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuZWRpdG9yLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGVybWluYWwtcGFuZWwuY29sbGFwc2VkIHsKICAgICAgICBoZWlnaHQ6IDMycHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAucGFuZWwtYWN0aW9uIHsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLWFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJzLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgMTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR7eC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFiLW5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAudGFiLWNsb3NlIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1tb2RpZmllZCB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZWRpdG9yLW1lbnUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAzMnB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAucHJvYmxlbXMtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMzJweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA0NSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDQwIDcwJSA1MCUpIiwiaHNsKDQwIDcwJSA0NSUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlLm5vbmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1saXN0IHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24uZXJyb3IgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbi53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCg0MCA3MCUgNTAlKSIsImhzbCg0MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0tZGV0YWlscyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLW1lc3NhZ2UgewogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWxvY2F0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1lbXB0eSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTUlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyBkZWVzLWljb24gewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldyB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICB3aWR0aDogODAlOwogICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLW1vbmFjbyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtdGVybWluYWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIFJlc2l6ZSBoYW5kbGVzICovCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDpob3ZlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgY3Vyc29yOiByb3ctcmVzaXplOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmU3NjgxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGlsZSBkcmFnZ2luZyAqLwogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC5maWxldHJlZS1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLmVkaXRvci1wYW5lbCwKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLnRlcm1pbmFsLXBhbmVsIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgIGBdO3JlbmRlcigpe2xldCBnZT1bIndvcmtzcGFjZS1jb250YWluZXIiLHRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlfHx0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD8iZHJhZ2dpbmciOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO3JldHVybiB0aGlzLmlzSW5pdGlhbGl6aW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5pdGlhbGl6aW5nIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxvYWRlcjIifSBpY29uU2l6ZT0iMzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+SW5pdGlhbGl6aW5nIHdvcmtzcGFjZS4uLjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3CiAgICAgICAgICAgIC5jb21tYW5kPSR7dGhpcy5pbml0Q29tbWFuZHx8IiJ9CiAgICAgICAgICAgIC5saW5lcz0ke3RoaXMuaW5pdE91dHB1dH0KICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLW91dGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSIke2dlfSI+CiAgICAgICAgICA8IS0tIEZpbGV0cmVlIHBhbmVsIChmdWxsIGhlaWdodCkgLS0+CiAgICAgICAgICAke3RoaXMuc2hvd0ZpbGVUcmVlP3dgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iZmlsZXRyZWUtcGFuZWwgJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/MDp0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRofXB4IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlCiAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgLnNlbGVjdGVkUGF0aD0ke3RoaXMuYWN0aXZlRmlsZVBhdGh9CiAgICAgICAgICAgICAgICBAZmlsZS1zZWxlY3Q9JHt0aGlzLmhhbmRsZUZpbGVTZWxlY3R9CiAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuaXNGaWxlVHJlZUNvbGxhcHNlZD8iIjp3YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlLXZlcnRpY2FsICR7dGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlRG93bn0KICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDwhLS0gRWRpdG9yICsgVGVybWluYWwgYXJlYSAtLT4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1hcmVhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXBhbmVsIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5vcGVuRmlsZXMubWFwKGJlPT53YAogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWIgJHtiZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmF0ZUZpbGUoYmUucGF0aCl9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtiZS5tb2RpZmllZD93YDxzcGFuIGNsYXNzPSJ0YWItbW9kaWZpZWQiPjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1uYW1lIj4ke2JlLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7SWU9PnRoaXMuY2xvc2VGaWxlKEllLGJlLnBhdGgpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItbWVudS1idXR0b24iIEBjbGljaz0ke3RoaXMuc2hvd0VkaXRvck1lbnV9IHRpdGxlPSJFZGl0b3Igb3B0aW9ucyI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOm1vcmVWZXJ0aWNhbCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2hvd0RpZmZWaWV3JiZ0aGlzLmRpZmZWaWV3Q29uZmlnP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcgogICAgICAgICAgICAgICAgICAgIC5maWxlUGF0aD0ke3RoaXMuZGlmZlZpZXdDb25maWcuZmlsZVBhdGh9CiAgICAgICAgICAgICAgICAgICAgLm9yaWdpbmFsQ29udGVudD0ke3RoaXMuZGlmZlZpZXdDb25maWcub3JpZ2luYWxDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5tb2RpZmllZENvbnRlbnQ9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLm1vZGlmaWVkQ29udGVudH0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLmxhbmd1YWdlfQogICAgICAgICAgICAgICAgICAgIEBkaWZmLXJlc29sdmVkPSR7dGhpcy5oYW5kbGVEaWZmUmVzb2x2ZWR9CiAgICAgICAgICAgICAgICAgICAgQGRpZmYtY2xvc2VkPSR7KCk9Pnt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9fQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcj4KICAgICAgICAgICAgICAgIGA6dGhpcy5vcGVuRmlsZXMubGVuZ3RoPT09MD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6ZmlsZUNvZGUifSBpY29uU2l6ZT0iNDgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlNlbGVjdCBhIGZpbGUgdG8gZWRpdDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAgICAgICAuZmlsZVBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofQogICAgICAgICAgICAgICAgICAgIC5jb250ZW50PSR7dGhpcy5nZXRBY3RpdmVGaWxlQ29udGVudCgpfQogICAgICAgICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aCh0aGlzLmFjdGl2ZUZpbGVQYXRoKX0KICAgICAgICAgICAgICAgICAgICBAY29udGVudC1jaGFuZ2U9JHt0aGlzLmhhbmRsZUNvbnRlbnRDaGFuZ2V9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBIb3Jpem9udGFsIHJlc2l6ZSBoYW5kbGUgZm9yIHRlcm1pbmFsIC0tPgogICAgICAgICAgICAke3RoaXMuc2hvd1Rlcm1pbmFsJiYhdGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkP3dgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCAke3RoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlVGVybWluYWxNb3VzZURvd259CiAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgPCEtLSBUZXJtaW5hbCBwYW5lbCAtLT4KICAgICAgICAgICAgJHt0aGlzLnNob3dUZXJtaW5hbD93YAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC1wYW5lbCAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICAgICAgICBzdHlsZT0iaGVpZ2h0OiAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8zMjp0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodH1weCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC10YWJzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icGFuZWwtdGFiICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJ0ZXJtaW5hbCI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InRlcm1pbmFsIn0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICBUZXJtaW5hbAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwYW5lbC10YWIgJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InByb2JsZW1zIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmVCb3R0b21QYW5lbD0icHJvYmxlbXMifQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNpcmNsZUFsZXJ0In0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIFByb2JsZW1zCiAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhbmVsLXRhYi1iYWRnZSAke3RoaXMuZ2V0RXJyb3JDb3VudCgpPT09MD8id2FybmluZyI6IiJ9Ij4ke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RofTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtYWN0aW9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVRlcm1pbmFsfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgLmljb249JHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uVXAiOiJsdWNpZGU6Y2hldnJvbkRvd24ifQogICAgICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250ZW50IiBzdHlsZT0iZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InRlcm1pbmFsIj8iYmxvY2siOiJub25lIn0iPgogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwKICAgICAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgICAgICAgICAgIC5zZXR1cENvbW1hbmQ9JHsiIn0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWNvbnRlbnQiIHN0eWxlPSJkaXNwbGF5OiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0icHJvYmxlbXMiPyJibG9jayI6Im5vbmUifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJQcm9ibGVtc1BhbmVsKCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEJvdHRvbSBCYXIgKGZ1bGwgd2lkdGgpIC0tPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIKICAgICAgICAgIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9CiAgICAgICAgICBAcnVuLXByb2Nlc3M9JHt0aGlzLmhhbmRsZVJ1blByb2Nlc3N9CiAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMua2V5ZG93bkhhbmRsZXIpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleWRvd25IYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKSx0aGlzLmF1dG9TYXZlSW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMuYXV0b1NhdmVJbnRlcnZhbCksdGhpcy5hdXRvU2F2ZUludGVydmFsPW51bGwpLHRoaXMuc3RvcE5vZGVNb2R1bGVzV2F0Y2hlcigpLHRoaXMuc3RvcEFsbEZpbGVXYXRjaGVycygpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9dGhpcy5maWxlVHJlZVdpZHRoLHRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PXRoaXMudGVybWluYWxIZWlnaHQsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5pbml0aWFsaXplV29ya3NwYWNlKCl9YXN5bmMgdXBkYXRlZChnZSl7Z2UuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiZ0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmluaXRpYWxpemVXb3Jrc3BhY2UoKSx0aGlzLmFjdGlvbmJhckVsZW1lbnR8fCh0aGlzLmFjdGlvbmJhckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZWRpdG9yLXBhbmVsIGRlZXMtYWN0aW9uYmFyIikpfWFzeW5jIGluaXRpYWxpemVXb3Jrc3BhY2UoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYhdGhpcy5pbml0aWFsaXphdGlvblN0YXJ0ZWQpe3RoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSEwLHRoaXMuaXNJbml0aWFsaXppbmc9ITA7dHJ5e3RoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlP2F3YWl0IHRoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlOnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpLGF3YWl0IHRoaXMuZXhlY3V0ZU9uSW5pdENvbW1hbmQoKX1jYXRjaChnZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgd29ya3NwYWNlOiIsZ2UpLHRoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSExfWZpbmFsbHl7dGhpcy5pc0luaXRpYWxpemluZz0hMX19fWFzeW5jIGV4ZWN1dGVPbkluaXRDb21tYW5kKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9ucG1leHRyYS5qc29uIikpe2xldCBnZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCIvbnBtZXh0cmEuanNvbiIpLEllPUpTT04ucGFyc2UoZ2UpPy5kZWVzRWRpdG9yV29ya3NwYWNlPy5vbkluaXQ7aWYoSWUmJnR5cGVvZiBJZT09InN0cmluZyIpe2NvbnNvbGUubG9nKCJFeGVjdXRpbmcgb25Jbml0IGNvbW1hbmQ6IixJZSksdGhpcy5pbml0Q29tbWFuZD1JZSx0aGlzLmluaXRPdXRwdXQ9W107bGV0W3l0LC4uLnd0XT1JZS5zcGxpdCgiICIpLFl0PWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24oeXQsd3QpO1l0Lm91dHB1dC5waXBlVG8obmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTppKFBhPT57bGV0IFlpPVBhLnNwbGl0KGAKYCk7Zm9yKGxldCBFZSBvZiBZaSlFZSYmKHRoaXMuaW5pdE91dHB1dD1bLi4udGhpcy5pbml0T3V0cHV0LEVlXSl9LCJ3cml0ZSIpfSkpO2xldCB6YT1hd2FpdCBZdC5leGl0O2NvbnNvbGUubG9nKCJvbkluaXQgY29tbWFuZCBjb21wbGV0ZWQgd2l0aCBleGl0IGNvZGU6Iix6YSksdGhpcy5pbml0T3V0cHV0PVsuLi50aGlzLmluaXRPdXRwdXQsIiIsYENvbW1hbmQgY29tcGxldGVkIHdpdGggZXhpdCBjb2RlOiAke3phfWBdfX19Y2F0Y2goZ2Upe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGV4ZWN1dGUgb25Jbml0IGNvbW1hbmQ6IixnZSl9fWFzeW5jIGluaXRpYWxpemVJbnRlbGxpU2Vuc2UoKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZClyZXR1cm47bGV0IGdlPXdpbmRvdy5tb25hY287aWYoZ2V8fChhd2FpdCBuZXcgUHJvbWlzZShiZT0+c2V0VGltZW91dChiZSwxMDApKSxnZT13aW5kb3cubW9uYWNvKSwhZ2Upe2NvbnNvbGUud2FybigiTW9uYWNvIG5vdCB5ZXQgbG9hZGVkLCBJbnRlbGxpU2Vuc2Ugd2lsbCBiZSBpbml0aWFsaXplZCBsYXRlciIpO3JldHVybn10aGlzLmludGVsbGlTZW5zZUluaXRpYWxpemVkPSEwLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlcj1uZXcgUXJlLGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5pbml0KGdlLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpLHRoaXMuc2V0dXBNYXJrZXJMaXN0ZW5lcigpLHRoaXMuc3RhcnROb2RlTW9kdWxlc1dhdGNoZXIoKSxhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKX1zdGFydE5vZGVNb2R1bGVzV2F0Y2hlcigpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyKSl0cnl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53YXRjaCgiL25vZGVfbW9kdWxlcyIsKGdlLGJlKT0+e3RoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoYXN5bmMoKT0+e3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl9LDJlMyl9LHtyZWN1cnNpdmU6ITB9KX1jYXRjaChnZSl7Y29uc29sZS53YXJuKCJDb3VsZCBub3Qgd2F0Y2ggbm9kZV9tb2R1bGVzOiIsZ2UpfX1zdG9wTm9kZU1vZHVsZXNXYXRjaGVyKCl7dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXImJih0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlci5zdG9wKCksdGhpcy5ub2RlTW9kdWxlc1dhdGNoZXI9bnVsbCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGwpfXN0YXJ0V2F0Y2hpbmdGaWxlKGdlKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuaGFzKGdlKSkpdHJ5e2xldCBiZT10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKGdlLChJZSx5dCk9PntsZXQgd3Q9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGdlKTt3dCYmY2xlYXJUaW1lb3V0KHd0KTtsZXQgWXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuaGFuZGxlRXh0ZXJuYWxGaWxlQ2hhbmdlKGdlKSx0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5kZWxldGUoZ2UpfSwzMDApO3RoaXMuZmlsZUNoYW5nZURlYm91bmNlLnNldChnZSxZdCl9KTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuc2V0KGdlLGJlKX1jYXRjaChiZSl7Y29uc29sZS53YXJuKGBDb3VsZCBub3Qgd2F0Y2ggZmlsZSAke2dlfTpgLGJlKX19c3RvcFdhdGNoaW5nRmlsZShnZSl7bGV0IGJlPXRoaXMub3BlbkZpbGVXYXRjaGVycy5nZXQoZ2UpO2JlJiYoYmUuc3RvcCgpLHRoaXMub3BlbkZpbGVXYXRjaGVycy5kZWxldGUoZ2UpKTtsZXQgSWU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KGdlKTtJZSYmKGNsZWFyVGltZW91dChJZSksdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZGVsZXRlKGdlKSl9c3RvcEFsbEZpbGVXYXRjaGVycygpe2ZvcihsZXQgZ2Ugb2YgdGhpcy5vcGVuRmlsZVdhdGNoZXJzLnZhbHVlcygpKWdlLnN0b3AoKTt0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuY2xlYXIoKTtmb3IobGV0IGdlIG9mIHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLnZhbHVlcygpKWNsZWFyVGltZW91dChnZSk7dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuY2xlYXIoKX1hc3luYyBoYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UoZ2Upe2xldCBiZT10aGlzLm9wZW5GaWxlcy5maW5kKEllPT5JZS5wYXRoPT09Z2UpO2lmKCEoIWJlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2xldCBJZT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGdlKTtpZihJZT09PWJlLmNvbnRlbnQpcmV0dXJuO2lmKGJlLm1vZGlmaWVkKXtsZXQgeXQ9YXdhaXQgdGhpcy5hY3Rpb25iYXJFbGVtZW50Py5zaG93KHttZXNzYWdlOmAiJHtiZS5uYW1lfSIgY2hhbmdlZCBvbiBkaXNrLiBXaGF0IGRvIHlvdSB3YW50IHRvIGRvP2AsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpnaXRNZXJnZSIsYWN0aW9uczpbe2lkOiJsb2FkLWRpc2siLGxhYmVsOiJMb2FkIGZyb20gRGlzayIscHJpbWFyeTohMH0se2lkOiJzYXZlLWxvY2FsIixsYWJlbDoiU2F2ZSBMb2NhbCB0byBEaXNrIn0se2lkOiJjb21wYXJlIixsYWJlbDoiQ29tcGFyZSJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxNWUzLGRlZmF1bHRBY3Rpb25JZDoibG9hZC1kaXNrIn0sZGlzbWlzc2libGU6ITB9KTt5dD8uYWN0aW9uSWQ9PT0ibG9hZC1kaXNrIj9hd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KGdlLEllLCExKTp5dD8uYWN0aW9uSWQ9PT0ic2F2ZS1sb2NhbCI/KGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGdlLGJlLmNvbnRlbnQpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcCh3dD0+d3QucGF0aD09PWdlP3suLi53dCxtb2RpZmllZDohMX06d3QpKTp5dD8uYWN0aW9uSWQ9PT0iY29tcGFyZSImJnRoaXMub3BlbkRpZmZWaWV3KGdlLGJlLmNvbnRlbnQsSWUpfWVsc2UgYXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudChnZSxJZSwhMCl9Y2F0Y2goSWUpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGhhbmRsZSBleHRlcm5hbCBjaGFuZ2UgZm9yICR7Z2V9OmAsSWUpfX1hc3luYyB1cGRhdGVGaWxlQ29udGVudChnZSxiZSxJZSl7aWYodGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKHl0PT55dC5wYXRoPT09Z2U/ey4uLnl0LGNvbnRlbnQ6YmUsbW9kaWZpZWQ6ITF9Onl0KSxnZT09PXRoaXMuYWN0aXZlRmlsZVBhdGgpe2xldCB5dD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO3l0JiZhd2FpdCB5dC5zZXRDb250ZW50RXh0ZXJuYWwoYmUsSWUpfX1vcGVuRGlmZlZpZXcoZ2UsYmUsSWUpe3RoaXMuZGlmZlZpZXdDb25maWc9e2ZpbGVQYXRoOmdlLG9yaWdpbmFsQ29udGVudDpJZSxtb2RpZmllZENvbnRlbnQ6YmUsbGFuZ3VhZ2U6dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGdlKX0sdGhpcy5zaG93RGlmZlZpZXc9ITB9YXN5bmMgaGFuZGxlRGlmZlJlc29sdmVkKGdlKXtsZXR7YWN0aW9uOmJlLGNvbnRlbnQ6SWV9PWdlLmRldGFpbCx5dD10aGlzLmRpZmZWaWV3Q29uZmlnPy5maWxlUGF0aDtpZigheXR8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGw7cmV0dXJufWlmKGJlPT09InVzZS1sb2NhbCIpe2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKHl0LEllKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAod3Q9Pnd0LnBhdGg9PT15dD97Li4ud3QsY29udGVudDpJZSxtb2RpZmllZDohMX06d3QpLHl0PT09dGhpcy5hY3RpdmVGaWxlUGF0aCl7bGV0IHd0PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7d3QmJmF3YWl0IHd0LnNldENvbnRlbnRFeHRlcm5hbChJZSwhMSl9fWVsc2UgYmU9PT0idXNlLWRpc2siJiZhd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KHl0LEllLCExKTt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGx9YXN5bmMgaGFuZGxlRmlsZVNlbGVjdChnZSl7bGV0e3BhdGg6YmUsbmFtZTpJZX09Z2UuZGV0YWlsO2F3YWl0IHRoaXMub3BlbkZpbGUoYmUsSWUpfWFzeW5jIG9wZW5GaWxlKGdlLGJlKXtpZih0aGlzLm9wZW5GaWxlcy5maW5kKHl0PT55dC5wYXRoPT09Z2UpKXt0aGlzLmFjdGl2ZUZpbGVQYXRoPWdlO3JldHVybn1pZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgeXQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShnZSk7aWYodGhpcy5vcGVuRmlsZXM9Wy4uLnRoaXMub3BlbkZpbGVzLHtwYXRoOmdlLG5hbWU6YmUsY29udGVudDp5dCxtb2RpZmllZDohMX1dLHRoaXMuYWN0aXZlRmlsZVBhdGg9Z2UsdGhpcy5zdGFydFdhdGNoaW5nRmlsZShnZSksIXRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2UoWXQ9PnNldFRpbWVvdXQoWXQsNTAwKSksYXdhaXQgdGhpcy5pbml0aWFsaXplSW50ZWxsaVNlbnNlKCk7bGV0IHd0PXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChnZSk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYod3Q9PT0idHlwZXNjcmlwdCJ8fHd0PT09ImphdmFzY3JpcHQiKSYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnByb2Nlc3NDb250ZW50Q2hhbmdlKHl0KX19Y2F0Y2goeXQpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBvcGVuIGZpbGUgJHtnZX06YCx5dCl9fWFjdGl2YXRlRmlsZShnZSl7dGhpcy5hY3RpdmVGaWxlUGF0aD1nZX1jbG9zZUZpbGUoZ2UsYmUpe2dlLnN0b3BQcm9wYWdhdGlvbigpO2xldCBJZT10aGlzLm9wZW5GaWxlcy5maW5kSW5kZXgod3Q9Pnd0LnBhdGg9PT1iZSk7aWYoSWU9PT0tMSlyZXR1cm47bGV0IHl0PXRoaXMub3BlbkZpbGVzW0llXTtpZighKHl0Lm1vZGlmaWVkJiYhY29uZmlybShgJHt5dC5uYW1lfSBoYXMgdW5zYXZlZCBjaGFuZ2VzLiBDbG9zZSBhbnl3YXk/YCkpJiYodGhpcy5zdG9wV2F0Y2hpbmdGaWxlKGJlKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5maWx0ZXIod3Q9Pnd0LnBhdGghPT1iZSksdGhpcy5hY3RpdmVGaWxlUGF0aD09PWJlKSlpZih0aGlzLm9wZW5GaWxlcy5sZW5ndGg+MCl7bGV0IHd0PU1hdGgubWluKEllLHRoaXMub3BlbkZpbGVzLmxlbmd0aC0xKTt0aGlzLmFjdGl2ZUZpbGVQYXRoPXRoaXMub3BlbkZpbGVzW3d0XS5wYXRofWVsc2UgdGhpcy5hY3RpdmVGaWxlUGF0aD0iIn1nZXRBY3RpdmVGaWxlQ29udGVudCgpe3JldHVybiB0aGlzLm9wZW5GaWxlcy5maW5kKGJlPT5iZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk/LmNvbnRlbnR8fCIifWhhbmRsZUNvbnRlbnRDaGFuZ2UoZ2Upe2xldCBiZT1nZS5kZXRhaWwsSWU9dGhpcy5vcGVuRmlsZXMuZmluZEluZGV4KHd0PT53dC5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk7aWYoSWU9PT0tMSlyZXR1cm47bGV0IHl0PXRoaXMub3BlbkZpbGVzW0llXTtpZih5dC5jb250ZW50IT09YmUpe3RoaXMub3BlbkZpbGVzPVsuLi50aGlzLm9wZW5GaWxlcy5zbGljZSgwLEllKSx7Li4ueXQsY29udGVudDpiZSxtb2RpZmllZDohMH0sLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoSWUrMSldO2xldCB3dD10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYod3Q9PT0idHlwZXNjcmlwdCJ8fHd0PT09ImphdmFzY3JpcHQiKSYmKHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQpLHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI/LnByb2Nlc3NDb250ZW50Q2hhbmdlKGJlKX0sNTAwKSl9fWdldExhbmd1YWdlRnJvbVBhdGgoZ2Upe2xldCBiZT1nZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO3JldHVybnt0czoidHlwZXNjcmlwdCIsdHN4OiJ0eXBlc2NyaXB0IixqczoiamF2YXNjcmlwdCIsanN4OiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJodG1sIixjc3M6ImNzcyIsc2Nzczoic2NzcyIsbGVzczoibGVzcyIsbWQ6Im1hcmtkb3duIix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHhtbDoieG1sIixzcWw6InNxbCIscHk6InB5dGhvbiIsc2g6InNoZWxsIixiYXNoOiJzaGVsbCJ9W2JlfHwiIl18fCJwbGFpbnRleHQifXRvZ2dsZVRlcm1pbmFsKCl7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPSF0aGlzLmlzVGVybWluYWxDb2xsYXBzZWR9YXN5bmMgc2F2ZUFjdGl2ZUZpbGUoKXtsZXQgZ2U9dGhpcy5vcGVuRmlsZXMuZmluZChiZT0+YmUucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpO2lmKCEoIWdlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGdlLnBhdGgsZ2UuY29udGVudCksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKGJlPT5iZS5wYXRoPT09Z2UucGF0aD97Li4uYmUsbW9kaWZpZWQ6ITF9OmJlKSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoZ2UucGF0aCxnZS5jb250ZW50KX1jYXRjaChiZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNhdmUgZmlsZToiLGJlKX19YXN5bmMgc2F2ZUFsbEZpbGVzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7Zm9yKGxldCBnZSBvZiB0aGlzLm9wZW5GaWxlcy5maWx0ZXIoYmU9PmJlLm1vZGlmaWVkKSl0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoZ2UucGF0aCxnZS5jb250ZW50KSx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJnRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5hZGRGaWxlTW9kZWwoZ2UucGF0aCxnZS5jb250ZW50KX1jYXRjaChiZSl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHNhdmUgJHtnZS5wYXRofTpgLGJlKX10aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoZ2U9Pih7Li4uZ2UsbW9kaWZpZWQ6ITF9KSl9fWFzeW5jIHNob3dFZGl0b3JNZW51KGdlKXtnZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgYmU9W3tuYW1lOnRoaXMuYXV0b1NhdmU/Ilx1MjcxMyBBdXRvIFNhdmUiOiJBdXRvIFNhdmUiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOmkoYXN5bmMoKT0+dGhpcy50b2dnbGVBdXRvU2F2ZSgpLCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjppKGFzeW5jKCk9PnRoaXMuc2F2ZUFjdGl2ZUZpbGUoKSwiYWN0aW9uIil9LHtuYW1lOiJTYXZlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246aShhc3luYygpPT50aGlzLnNhdmVBbGxGaWxlcygpLCJhY3Rpb24iKX1dO2F3YWl0IENyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGdlLGJlKX10b2dnbGVBdXRvU2F2ZSgpe3RoaXMuYXV0b1NhdmU9IXRoaXMuYXV0b1NhdmUsdGhpcy5hdXRvU2F2ZT90aGlzLmF1dG9TYXZlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLm9wZW5GaWxlcy5zb21lKGJlPT5iZS5tb2RpZmllZCkmJnRoaXMuc2F2ZUFsbEZpbGVzKCl9LDJlMyk6dGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKX1nZXRFcnJvckNvdW50KCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMuZmlsdGVyKGdlPT5nZS5zZXZlcml0eT09PTgpLmxlbmd0aH1yZW5kZXJQcm9ibGVtc1BhbmVsKCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoPT09MD93YAogICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWVtcHR5Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrQ2lyY2xlIn0gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk5vIHByb2JsZW1zIGRldGVjdGVkPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOndgCiAgICAgIDxkaXYgY2xhc3M9InByb2JsZW1zLWxpc3QiPgogICAgICAgICR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5tYXAoZ2U9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWl0ZW0iIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9Qcm9ibGVtKGdlKX0+CiAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICBjbGFzcz0icHJvYmxlbS1pY29uICR7Z2Uuc2V2ZXJpdHk9PT04PyJlcnJvciI6Indhcm5pbmcifSIKICAgICAgICAgICAgICAuaWNvbj0ke2dlLnNldmVyaXR5PT09OD8ibHVjaWRlOmNpcmNsZVgiOiJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9CiAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tZGV0YWlscyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1tZXNzYWdlIj4ke2dlLm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1sb2NhdGlvbiI+CiAgICAgICAgICAgICAgICAke2dlLnJlc291cmNlLnBhdGguc3BsaXQoIi8iKS5wb3AoKX0gKCR7Z2Uuc3RhcnRMaW5lTnVtYmVyfSwgJHtnZS5zdGFydENvbHVtbn0pCiAgICAgICAgICAgICAgICAke2dlLnNvdXJjZT9gWyR7Z2Uuc291cmNlfV1gOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgbmF2aWdhdGVUb1Byb2JsZW0oZ2Upe2xldCBiZT1nZS5yZXNvdXJjZS5wYXRoLEllPWJlLnNwbGl0KCIvIikucG9wKCl8fCIiO3RoaXMub3BlbkZpbGVzLmZpbmQoWXQ9Pll0LnBhdGg9PT1iZSk/dGhpcy5hY3RpdmVGaWxlUGF0aD1iZTphd2FpdCB0aGlzLm9wZW5GaWxlKGJlLEllKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCB3dD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2lmKHd0KXtsZXQgWXQ9YXdhaXQgd3QuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtZdC5yZXZlYWxMaW5lSW5DZW50ZXIoZ2Uuc3RhcnRMaW5lTnVtYmVyKSxZdC5zZXRQb3NpdGlvbih7bGluZU51bWJlcjpnZS5zdGFydExpbmVOdW1iZXIsY29sdW1uOmdlLnN0YXJ0Q29sdW1ufSksWXQuZm9jdXMoKX19c2V0dXBNYXJrZXJMaXN0ZW5lcigpe2xldCBnZT13aW5kb3cubW9uYWNvO2dlJiYoZ2UuZWRpdG9yLm9uRGlkQ2hhbmdlTWFya2VycyhiZT0+e3RoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKX0pLHRoaXMudXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKSl9dXBkYXRlRGlhZ25vc3RpY01hcmtlcnMoKXtsZXQgZ2U9d2luZG93Lm1vbmFjbztpZighZ2UpcmV0dXJuO2xldCBiZT1nZS5lZGl0b3IuZ2V0TW9kZWxNYXJrZXJzKHt9KTt0aGlzLmRpYWdub3N0aWNNYXJrZXJzPWJlLm1hcChJZT0+KHttZXNzYWdlOkllLm1lc3NhZ2Usc2V2ZXJpdHk6SWUuc2V2ZXJpdHksc3RhcnRMaW5lTnVtYmVyOkllLnN0YXJ0TGluZU51bWJlcixzdGFydENvbHVtbjpJZS5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOkllLmVuZExpbmVOdW1iZXIsZW5kQ29sdW1uOkllLmVuZENvbHVtbixzb3VyY2U6SWUuc291cmNlLHJlc291cmNlOntwYXRoOkllLnJlc291cmNlLnBhdGh9fSkpfWFzeW5jIGhhbmRsZVJ1blByb2Nlc3MoZ2Upe2xldCBiZT1nZS5kZXRhaWwsSWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpO2lmKCFJZSl7Y29uc29sZS53YXJuKCJUZXJtaW5hbCBjb21wb25lbnQgbm90IGZvdW5kIik7cmV0dXJufXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZCYmKHRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD0hMSksdGhpcy5hY3RpdmVCb3R0b21QYW5lbD0idGVybWluYWwiLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgSWUuY3JlYXRlUHJvY2Vzc1RhYih7dHlwZTpiZS50eXBlLGxhYmVsOmJlLmxhYmVsLGNvbW1hbmQ6YmUuY29tbWFuZCxhcmdzOmJlLmFyZ3MsbWV0YWRhdGE6YmUubWV0YWRhdGEsc3dpdGNoVG9UYWI6ITB9KX1zZXRGaWxlVHJlZVdpZHRoKGdlKXtsZXQgSWU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCouNTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPU1hdGgubWF4KDE1MCxNYXRoLm1pbihJZSxnZSkpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXNldFRlcm1pbmFsSGVpZ2h0KGdlKXtsZXQgSWU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQqLjc7dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9TWF0aC5tYXgoMTAwLE1hdGgubWluKEllLGdlKSksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9cmVzZXRMYXlvdXQoKXt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPXRoaXMuZmlsZVRyZWVXaWR0aCx0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD10aGlzLnRlcm1pbmFsSGVpZ2h0LHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXN0YXRpY3tkcihhLHIpfX07cmV0dXJuIE9lPWF9KSgpfSk7dmFyIG1hYT11KCgpPT57aGFhKCk7ejl0KCl9KTt2YXIgZ2FhPXUoKCk9Pnt2OSgpfSk7dmFyIGJhYT11KCgpPT57WDZlKCl9KTt2YXIgeGFhPXUoKCk9Pnt9KTt2YXIgdmFhPXUoKCk9PntLcmUoKTt4YWEoKTtnOXQoKX0pO3ZhciB5YWE9dSgoKT0+e005dCgpfSk7dmFyIFhyZSxNMyxxVDEsd2FhLGthYT11KCgpPT57dmUoKTtsdCgpO3Y5KCk7WHJlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxNMz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0scVQxPVh0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCksd2FhPSgoKT0+e2xldCB0PVt1ZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24iKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiRGVlc1dvcmtzcGFjZU1hcmtkb3duIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGs9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpOdW1iZXJ9KV0sYz1bUCh7dHlwZTpOdW1iZXJ9KV0scD1baWUoKV0sdj1baWUoKV0sWHJlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3BsaXRSYXRpbyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic3BsaXRSYXRpbyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLnNwbGl0UmF0aW8sImdldCIpLHNldDppKChNLE4pPT57TS5zcGxpdFJhdGlvPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxYcmUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5QYW5lbFNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+Im1pblBhbmVsU2l6ZSJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLm1pblBhbmVsU2l6ZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLm1pblBhbmVsU2l6ZT1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGQsZiksWHJlKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFNwbGl0UmF0aW8iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImN1cnJlbnRTcGxpdFJhdGlvImluIE0sImhhcyIpLGdldDppKE09Pk0uY3VycmVudFNwbGl0UmF0aW8sImdldCIpLHNldDppKChNLE4pPT57TS5jdXJyZW50U3BsaXRSYXRpbz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGgsbSksWHJlKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iaXNEcmFnZ2luZyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmlzRHJhZ2dpbmcsImdldCIpLHNldDppKChNLE4pPT57TS5pc0RyYWdnaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYixnKSxYcmUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCxyKSx5PWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT53YDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bj48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3duPmAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5zcGxpdENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIH0KCiAgICAgIC5lZGl0b3JDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzMDM2M2QiKX07CiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6aG92ZXIsCiAgICAgIC5yZXNpemVIYW5kbGUuZHJhZ2dpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzU4YTZmZiIpfTsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmU3NjgxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplSGFuZGxlLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjZmZmZmZmIil9OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vdXRsZXRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwZDExMTciKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnTm90byBTYW5zJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGlsZSBkcmFnZ2luZyAqLwogICAgICAuc3BsaXRDb250YWluZXIuZHJhZ2dpbmcgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc3BsaXRDb250YWluZXIuZHJhZ2dpbmcgLmVkaXRvckNvbnRhaW5lciwKICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5vdXRsZXRDb250YWluZXIgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgXTsjZT1NMyh0aGlzLG8sNTApO2dldCBzcGxpdFJhdGlvKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNwbGl0UmF0aW8oayl7dGhpcy4jZT1rfSN0PShNMyh0aGlzLGwpLE0zKHRoaXMsZCwxMCkpO2dldCBtaW5QYW5lbFNpemUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWluUGFuZWxTaXplKGspe3RoaXMuI3Q9a30jcj0oTTModGhpcyxmKSxNMyh0aGlzLGgsNTApKTtnZXQgY3VycmVudFNwbGl0UmF0aW8oKXtyZXR1cm4gdGhpcy4jcn1zZXQgY3VycmVudFNwbGl0UmF0aW8oayl7dGhpcy4jcj1rfSNhPShNMyh0aGlzLG0pLE0zKHRoaXMsYiwhMSkpO2dldCBpc0RyYWdnaW5nKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzRHJhZ2dpbmcoayl7dGhpcy4jYT1rfXJlc2l6ZUhhbmRsZUVsZW1lbnQ9TTModGhpcyxnKTtjb250YWluZXJFbGVtZW50O3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJzcGxpdENvbnRhaW5lciAke3RoaXMuaXNEcmFnZ2luZz8iZHJhZ2dpbmciOiIifSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yQ29udGFpbmVyIiBzdHlsZT0id2lkdGg6ICR7dGhpcy5jdXJyZW50U3BsaXRSYXRpb30lIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgLmxhbmd1YWdlPSR7Im1hcmtkb3duIn0KICAgICAgICAgICAgLmNvbnRlbnQ9JHtgIyBhIHRlc3QgY29udGVudAoKVGhpcyBpcyB0ZXN0IGNvbnRlbnQgdGhhdCBpcyBvZiBsb25nZXIgZm9ybSBhbiBob3BlZnVsbHkgc3RhcnRzIHRvIHdyYXAgd2hlbiBJIG5lZWQgaXQuIEFuZCB5ZXMsIGl0IGRvZXMgcGVyZmVjdGx5LiBuaWNlLgoKVGVzdCB8IEhlbGxvCi0tLSB8IC0tLQpZZWFoIHwgU28gZ29vZAoKVGhpcyBpcyByZWFsIGFzc2V0IEkgdGhpbmsuIFdoeSB3b3VsZCB3ZSB3YW50IHRvIGxlYXZlIHRoYXQgb24gdGhlIHRhYmxlPyBDYW4geW91IHRlbGwgbXkgdGhhdD8KCldoeSBhcmUgd2UgaGVyZT8KCkRvIHlvdSBrbm93PwoKPiBub3RlOgpUaGVyZSBpcyBzb21ldGhpbmcgZ29pbmcgb24uCgpcYFxgXGB0eXBlc2NyaXB0CmNvbnN0IGhlbGxvID0gJ3llcycKXGBcYFxgCmB9CiAgICAgICAgICAgIHdvcmRXcmFwPSJib3VuZGVkIgogICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJyZXNpemVIYW5kbGUgJHt0aGlzLmlzRHJhZ2dpbmc/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVNb3VzZURvd259CiAgICAgICAgPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im91dGxldENvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAkezEwMC10aGlzLmN1cnJlbnRTcGxpdFJhdGlvfSUiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoayl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKGspLHRoaXMuY3VycmVudFNwbGl0UmF0aW89dGhpcy5zcGxpdFJhdGlvLHRoaXMuY29udGFpbmVyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNwbGl0Q29udGFpbmVyIiksdGhpcy5yZXNpemVIYW5kbGVFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIucmVzaXplSGFuZGxlIik7bGV0IE09dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpLE49dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0IiksUz1hd2FpdCBuZXcgWHQucGx1Z2lucy5zbWFydG1hcmtkb3duLlNtYXJ0TWFya2Rvd24oKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bigibG9hZGluZy4uLiIpO00uY29udGVudFN1YmplY3Quc3Vic2NyaWJlKGFzeW5jIE89Pnthd2FpdCBTLnVwZGF0ZUZyb21NYXJrZG93blN0cmluZyhPKTtsZXQgTD1TLmh0bWw7Ti51cGRhdGVIdG1sVGV4dChMKX0pfWhhbmRsZU1vdXNlRG93bj1pKGs9PntrLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCl9LCJoYW5kbGVNb3VzZURvd24iKTtoYW5kbGVNb3VzZU1vdmU9aShrPT57aWYoIXRoaXMuaXNEcmFnZ2luZ3x8IXRoaXMuY29udGFpbmVyRWxlbWVudClyZXR1cm47bGV0IE09dGhpcy5jb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE49TS53aWR0aCxTPShrLmNsaWVudFgtTS5sZWZ0KS9OKjEwMDtTPU1hdGgubWF4KHRoaXMubWluUGFuZWxTaXplLE1hdGgubWluKDEwMC10aGlzLm1pblBhbmVsU2l6ZSxTKSksdGhpcy5jdXJyZW50U3BsaXRSYXRpbz1TfSwiaGFuZGxlTW91c2VNb3ZlIik7aGFuZGxlTW91c2VVcD1pKCgpPT57dGhpcy5pc0RyYWdnaW5nPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpJiZ3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX0sImhhbmRsZU1vdXNlVXAiKTthc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKX1zZXRTcGxpdFJhdGlvKGspe3RoaXMuY3VycmVudFNwbGl0UmF0aW89TWF0aC5tYXgodGhpcy5taW5QYW5lbFNpemUsTWF0aC5taW4oMTAwLXRoaXMubWluUGFuZWxTaXplLGspKX1yZXNldFNwbGl0UmF0aW8oKXt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpb31zdGF0aWN7TTMoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7dmFyIFNhYT11KCgpPT57a2FhKCl9KTt2YXIgTWFhLENhYT11KCgpPT57dmUoKTt3YSgpO3duKCk7TWFhPWkoKCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7cmVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPCEtLSBEZW1vIDE6IEhlYWRpbmdzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJIZWFkaW5ncyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkFsbCBoZWFkaW5nIGxldmVscyBmcm9tIEgxIHRvIEg2In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMT5IZWFkaW5nIExldmVsIDE8L2gxPgogICAgICAgICAgICA8aDI+SGVhZGluZyBMZXZlbCAyPC9oMj4KICAgICAgICAgICAgPGgzPkhlYWRpbmcgTGV2ZWwgMzwvaDM+CiAgICAgICAgICAgIDxoND5IZWFkaW5nIExldmVsIDQ8L2g0PgogICAgICAgICAgICA8aDU+SGVhZGluZyBMZXZlbCA1PC9oNT4KICAgICAgICAgICAgPGg2PkhlYWRpbmcgTGV2ZWwgNjwvaDY+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDI6IFRleHQgRm9ybWF0dGluZyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiVGV4dCBGb3JtYXR0aW5nIn0KICAgICAgICAuc3VidGl0bGU9JHsiQm9sZCwgaXRhbGljLCBsaW5rcywgY29kZSwgYW5kIGtleWJvYXJkIGlucHV0In0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBwYXJhZ3JhcGggd2l0aCA8c3Ryb25nPmJvbGQgdGV4dDwvc3Ryb25nPiBhbmQgPGVtPml0YWxpYyB0ZXh0PC9lbT4uPC9wPgogICAgICAgICAgICA8cD5Zb3UgY2FuIGFsc28gdXNlIDxzdHJvbmc+PGVtPmJvbGQgaXRhbGljPC9lbT48L3N0cm9uZz4gZm9yIGVtcGhhc2lzLjwvcD4KICAgICAgICAgICAgPHA+SGVyZSdzIGEgPGEgaHJlZj0iIyI+bGluayBleGFtcGxlPC9hPiBhbmQgc29tZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4uPC9wPgogICAgICAgICAgICA8cD5QcmVzcyA8a2JkPkN0cmw8L2tiZD4gKyA8a2JkPkM8L2tiZD4gdG8gY29weSB0ZXh0LjwvcD4KICAgICAgICAgICAgPGhyPgogICAgICAgICAgICA8cD5BYm92ZSBpcyBhIGhvcml6b250YWwgcnVsZSBzZXBhcmF0b3IuPC9wPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyAzOiBMaXN0cyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiTGlzdHMifQogICAgICAgIC5zdWJ0aXRsZT0keyJPcmRlcmVkLCB1bm9yZGVyZWQsIGFuZCB0YXNrIGxpc3RzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMz5Vbm9yZGVyZWQgTGlzdDwvaDM+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+Rmlyc3QgaXRlbTwvbGk+CiAgICAgICAgICAgICAgPGxpPlNlY29uZCBpdGVtCiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgaXRlbSAxPC9saT4KICAgICAgICAgICAgICAgICAgPGxpPk5lc3RlZCBpdGVtIDI8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UaGlyZCBpdGVtPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxoMz5PcmRlcmVkIExpc3Q8L2gzPgogICAgICAgICAgICA8b2w+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgb25lPC9saT4KICAgICAgICAgICAgICA8bGk+U3RlcCB0d288L2xpPgogICAgICAgICAgICAgIDxsaT5TdGVwIHRocmVlPC9saT4KICAgICAgICAgICAgPC9vbD4KCiAgICAgICAgICAgIDxoMz5UYXNrIExpc3Q8L2gzPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkIGRpc2FibGVkPiBDb21wbGV0ZWQgdGFzazwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD4gUGVuZGluZyB0YXNrPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPiBBbm90aGVyIHRhc2s8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA0OiBDb2RlIEJsb2NrcyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiQ29kZSBCbG9ja3MifQogICAgICAgIC5zdWJ0aXRsZT0keyJTeW50YXggaGlnaGxpZ2h0ZWQgY29kZSBleGFtcGxlcyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IHQucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8cD5JbmxpbmUgY29kZTogPGNvZGU+Y29uc3QgZ3JlZXRpbmcgPSAiSGVsbG8sIFdvcmxkISI7PC9jb2RlPjwvcD4KCiAgICAgICAgICAgIDxoMz5UeXBlU2NyaXB0IEV4YW1wbGU8L2gzPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmltcG9ydDwvc3Bhbj4geyBodG1sLCBjc3MgfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmludGVyZmFjZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPklVc2VyPC9zcGFuPiB7CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+bmFtZTwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+OwogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmVtYWlsPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj47CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+YWdlPC9zcGFuPj86IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5udW1iZXI8L3NwYW4+Owp9Cgo8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5jb25zdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtdGl0bGUiPmdldFVzZXI8L3NwYW4+ID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXN5bmM8L3NwYW4+ICg8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5pZDwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+KTogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPlByb21pc2U8L3NwYW4+Jmx0O0lVc2VyJmd0OyA9Jmd0OyB7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+Y29uc3Q8L3NwYW4+IHJlc3BvbnNlID0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+YXdhaXQ8L3NwYW4+IGZldGNoKFxgL2FwaS91c2Vycy9cJHtpZH1cYCk7CiAgPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+cmV0dXJuPC9zcGFuPiByZXNwb25zZS5qc29uKCk7Cn07PC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGgzPkpTT04gRXhhbXBsZTwvaDM+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+ewogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJuYW1lIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+ImRlZXMtY2F0YWxvZyI8L3NwYW4+LAogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJ2ZXJzaW9uIjwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+IjMuMC4wIjwvc3Bhbj4sCiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+ImRlcGVuZGVuY2llcyI8L3NwYW4+OiB7CiAgICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4iQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50Ijwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+Il4yLjAuMCI8L3NwYW4+CiAgfQp9PC9jb2RlPjwvcHJlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA1OiBUYWJsZXMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IlRhYmxlcyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlN0eWxlZCB0YWJsZXMgd2l0aCBhbHRlcm5hdGluZyByb3dzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0aD5GZWF0dXJlPC90aD4KICAgICAgICAgICAgICAgICAgPHRoPlN0YXR1czwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5Qcmlvcml0eTwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+RGFyayBtb2RlIHN1cHBvcnQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+Q29tcGxldGVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPlJlc3BvbnNpdmUgZGVzaWduPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkluIFByb2dyZXNzPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPk1lZGl1bTwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+QWNjZXNzaWJpbGl0eTwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5QbGFubmVkPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkRvY3VtZW50YXRpb248L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SW4gUHJvZ3Jlc3M8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TG93PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNjogQmxvY2txdW90ZXMgJiBBbGVydHMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkJsb2NrcXVvdGVzICYgQWxlcnRzIn0KICAgICAgICAuc3VidGl0bGU9JHsiUXVvdGVzIGFuZCBHaXRIdWItc3R5bGUgYWxlcnRzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxibG9ja3F1b3RlPgogICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBzdGFuZGFyZCBibG9ja3F1b3RlLiBJdCdzIGdyZWF0IGZvciBoaWdobGlnaHRpbmcgaW1wb3J0YW50IGluZm9ybWF0aW9uIG9yIHF1b3RlcyBmcm9tIG90aGVyIHNvdXJjZXMuPC9wPgogICAgICAgICAgICA8L2Jsb2NrcXVvdGU+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1ub3RlIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBub3RlIHRvIGRyYXcgYXR0ZW50aW9uIHRvIGltcG9ydGFudCBkZXRhaWxzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC10aXAiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+VGlwOjwvc3Ryb25nPiBIZXJlJ3MgYSBoZWxwZnVsIHRpcCB0byBpbXByb3ZlIHlvdXIgd29ya2Zsb3cuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5JbXBvcnRhbnQ6PC9zdHJvbmc+IFRoaXMgaW5mb3JtYXRpb24gaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgdG9waWMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXdhcm5pbmciPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gQmUgY2FyZWZ1bCB3aGVuIHBlcmZvcm1pbmcgdGhpcyBhY3Rpb24uPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWNhdXRpb24iPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+Q2F1dGlvbjo8L3N0cm9uZz4gVGhpcyBhY3Rpb24gbWF5IGhhdmUgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNzogRnVsbCBEb2N1bWVudCAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiRnVsbCBEb2N1bWVudCJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkEgY29tcGxldGUgbWFya2Rvd24gZG9jdW1lbnQgZXhhbXBsZSJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IHQucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDE+R2V0dGluZyBTdGFydGVkIEd1aWRlPC9oMT4KICAgICAgICAgICAgPHA+V2VsY29tZSB0byB0aGUgPHN0cm9uZz5kZWVzLWNhdGFsb2c8L3N0cm9uZz4gY29tcG9uZW50IGxpYnJhcnkuIFRoaXMgZ3VpZGUgd2lsbCBoZWxwIHlvdSBnZXQgdXAgYW5kIHJ1bm5pbmcgcXVpY2tseS48L3A+CgogICAgICAgICAgICA8aDI+SW5zdGFsbGF0aW9uPC9oMj4KICAgICAgICAgICAgPHA+SW5zdGFsbCB0aGUgcGFja2FnZSB1c2luZyB5b3VyIHByZWZlcnJlZCBwYWNrYWdlIG1hbmFnZXI6PC9wPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgcG5wbSAocmVjb21tZW5kZWQpPC9zcGFuPgpwbnBtIGFkZCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPiMgVXNpbmcgbnBtPC9zcGFuPgpucG0gaW5zdGFsbCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2c8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8aDI+QmFzaWMgVXNhZ2U8L2gyPgogICAgICAgICAgICA8cD5JbXBvcnQgYW5kIHVzZSBjb21wb25lbnRzIGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlczo8L3A+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW1wb3J0PC9zcGFuPiB7IERlZXNCdXR0b24gfSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPidAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cnPC9zcGFuPjsKCjxzcGFuIGNsYXNzPSJobGpzLWNvbW1lbnQiPi8vIFVzZSBpbiB5b3VyIHRlbXBsYXRlczwvc3Bhbj4KaHRtbFxgJmx0O2RlZXMtYnV0dG9uJmd0O0NsaWNrIG1lJmx0Oy9kZWVzLWJ1dHRvbiZndDtcYDwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXRpcCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXA6PC9zdHJvbmc+IENoZWNrIHRoZSBkZW1vIHNob3djYXNlIGZvciBsaXZlIGV4YW1wbGVzIG9mIGFsbCBjb21wb25lbnRzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8aDI+QXZhaWxhYmxlIENvbXBvbmVudHM8L2gyPgogICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGg+Q29tcG9uZW50PC90aD4KICAgICAgICAgICAgICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWJ1dHRvbjwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+UHJpbWFyeSBidXR0b24gY29tcG9uZW50PC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWlucHV0LXRleHQ8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlRleHQgaW5wdXQgZmllbGQ8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtdGFibGU8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkRhdGEgdGFibGUgd2l0aCBzb3J0aW5nPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLW1vZGFsPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Nb2RhbCBkaWFsb2c8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgoKICAgICAgICAgICAgPGgyPk5leHQgU3RlcHM8L2gyPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkV4cGxvcmUgdGhlIDxhIGhyZWY9IiMiPmNvbXBvbmVudCBkb2N1bWVudGF0aW9uPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPkNoZWNrIG91dCB0aGUgPGEgaHJlZj0iIyI+dGhlbWluZyBndWlkZTwvYT48L2xpPgogICAgICAgICAgICAgIDxsaT5Kb2luIG91ciA8YSBocmVmPSIjIj5jb21tdW5pdHkgRGlzY29yZDwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPGJsb2NrcXVvdGU+CiAgICAgICAgICAgICAgPHA+IlRoZSBiZXN0IGNvbXBvbmVudCBsaWJyYXJ5IGlzIG9uZSB0aGF0IGdldHMgb3V0IG9mIHlvdXIgd2F5LiIgXHUyMDE0IERlc2lnbiBTeXN0ZW1zIFRlYW08L3A+CiAgICAgICAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmAsImRlbW9GdW5jIil9KTt2YXIgV0ZhLEdGYSx6YWEsX2FhPXUoKCk9Pnt2ZSgpO2x0KCk7Q2FhKCk7V0ZhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxHRmE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHphYT0oKCk9PntsZXQgdD1bdWUoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0IildLGUscj1bXSxhLHM9eWU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIkRlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO1dGYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHIpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfXN0YXRpYyBkZW1vPU1hYTtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBzdHlsZXM9W05lLHguZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdOb3RvIFNhbnMnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI0MjkyZiIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIC5vdXRsZXQgewogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLyogSGVhZGluZ3MgKi8KICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMWYyMzI4IiwiI2YwZjZmYyIpfTsKICAgICAgfQoKICAgICAgaDEgewogICAgICAgIGZvbnQtc2l6ZTogMmVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxLjVlbTsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4zZW07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgfQoKICAgICAgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtOwogICAgICB9CgogICAgICBoNCB7CiAgICAgICAgZm9udC1zaXplOiAxZW07CiAgICAgIH0KCiAgICAgIGg1IHsKICAgICAgICBmb250LXNpemU6IDAuODc1ZW07CiAgICAgIH0KCiAgICAgIGg2IHsKICAgICAgICBmb250LXNpemU6IDAuODVlbTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICB9CgogICAgICAvKiBQYXJhZ3JhcGhzIGFuZCB0ZXh0ICovCiAgICAgIHAgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLyogTGlua3MgKi8KICAgICAgYSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMDk2OWRhIiwiIzU4YTZmZiIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAvKiBTdHJvbmcgYW5kIGVtcGhhc2lzICovCiAgICAgIHN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZjIzMjgiLCIjZjBmNmZjIil9OwogICAgICB9CgogICAgICBlbSB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAvKiBMaXN0cyAqLwogICAgICB1bCwgb2wgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDJlbTsKICAgICAgfQoKICAgICAgbGkgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgbGkgKyBsaSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICB1bCB1bCwgdWwgb2wsIG9sIHVsLCBvbCBvbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBCbG9ja3F1b3RlcyAqLwogICAgICBibG9ja3F1b3RlIHsKICAgICAgICBtYXJnaW46IDAgMCAxNnB4IDA7CiAgICAgICAgcGFkZGluZzogMCAxZW07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNjU2ZDc2IiwiIzhiOTQ5ZSIpfTsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgfQoKICAgICAgYmxvY2txdW90ZSA+IDpmaXJzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQoKICAgICAgYmxvY2txdW90ZSA+IDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBJbmxpbmUgY29kZSAqLwogICAgICBjb2RlIHsKICAgICAgICBwYWRkaW5nOiAwLjJlbSAwLjRlbTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiA4NSU7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsICdTRiBNb25vJywgTWVubG8sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCJyZ2JhKDE3NSwgMTg0LCAxOTMsIDAuMikiLCJyZ2JhKDExMCwgMTE4LCAxMjksIDAuNCkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7CiAgICAgIH0KCiAgICAgIC8qIENvZGUgYmxvY2tzICovCiAgICAgIHByZSB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgZm9udC1zaXplOiA4NSU7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDU7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsICdTRiBNb25vJywgTWVubG8sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCIjZjZmOGZhIiwiIzE2MWIyMiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd29yZC13cmFwOiBub3JtYWw7CiAgICAgIH0KCiAgICAgIHByZSBjb2RlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgZm9udC1zaXplOiAxMDAlOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgIH0KCiAgICAgIC8qIFRhYmxlcyAqLwogICAgICB0YWJsZSB7CiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgdGFibGUgdGggewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgcGFkZGluZzogNnB4IDEzcHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCIjZjZmOGZhIiwiIzE2MWIyMiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICB9CgogICAgICB0YWJsZSB0ZCB7CiAgICAgICAgcGFkZGluZzogNnB4IDEzcHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwZDExMTciKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZDFkOWUwIiwiIzIxMjYyZCIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt4LmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICB9CgogICAgICAvKiBIb3Jpem9udGFsIHJ1bGVzICovCiAgICAgIGhyIHsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMjRweCAwOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAvKiBJbWFnZXMgKi8KICAgICAgaW1nIHsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC8qIFRhc2sgbGlzdHMgKi8KICAgICAgLnRhc2stbGlzdC1pdGVtIHsKICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YXNrLWxpc3QtaXRlbSBpbnB1dCB7CiAgICAgICAgbWFyZ2luOiAwIDAuMmVtIDAuMjVlbSAtMS40ZW07CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgfQoKICAgICAgLyogRGVmaW5pdGlvbiBsaXN0cyAqLwogICAgICBkbCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgZGwgZHQgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBmb250LXNpemU6IDFlbTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgZGwgZGQgewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAvKiBLZXlib2FyZCBpbnB1dCAqLwogICAgICBrYmQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwYWRkaW5nOiAzcHggNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCIjZjZmOGZhIiwiIzE2MWIyMiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwICR7eC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgfQoKICAgICAgLyogRm9vdG5vdGVzICovCiAgICAgIC5mb290bm90ZXMgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMzJweDsKICAgICAgfQoKICAgICAgLyogQWxlcnRzL0FkbW9uaXRpb25zICovCiAgICAgIC5tYXJrZG93bi1hbGVydCB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LW5vdGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiMwOTY5ZGEiLCIjNThhNmZmIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCJyZ2JhKDksIDEwNSwgMjE4LCAwLjEpIiwicmdiYSg1NiwgMTM5LCAyNTMsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5tYXJrZG93bi1hbGVydC13YXJuaW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjYmY4NzAwIiwiI2QyOTkyMiIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3guYmRUaGVtZSgicmdiYSgxOTEsIDEzNSwgMCwgMC4xKSIsInJnYmEoMTg3LCAxMjgsIDksIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5tYXJrZG93bi1hbGVydC1pbXBvcnRhbnQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiM4MjUwZGYiLCIjYTM3MWY3Iil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCJyZ2JhKDEzMCwgODAsIDIyMywgMC4xKSIsInJnYmEoMTYzLCAxMTMsIDI0NywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LWNhdXRpb24gewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNjZjIyMmUiLCIjZjg1MTQ5Iil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7eC5iZFRoZW1lKCJyZ2JhKDIwNywgMzQsIDQ2LCAwLjEpIiwicmdiYSgyNDgsIDgxLCA3MywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LXRpcCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzFhN2YzNyIsIiMzZmI5NTAiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt4LmJkVGhlbWUoInJnYmEoMjYsIDEyNywgNTUsIDAuMSkiLCJyZ2JhKDQ2LCAxNjAsIDY3LCAwLjEpIil9OwogICAgICB9CgogICAgICAvKiBTeW50YXggaGlnaGxpZ2h0aW5nIGZvciBjb2RlIGJsb2NrcyAqLwogICAgICAuaGxqcy1jb21tZW50LAogICAgICAuaGxqcy1xdW90ZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNmE3MzdkIiwiIzhiOTQ5ZSIpfTsKICAgICAgfQoKICAgICAgLmhsanMta2V5d29yZCwKICAgICAgLmhsanMtc2VsZWN0b3ItdGFnLAogICAgICAuaGxqcy1hZGRpdGlvbiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZDczYTQ5IiwiI2ZmN2I3MiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtbnVtYmVyLAogICAgICAuaGxqcy1zdHJpbmcsCiAgICAgIC5obGpzLW1ldGEgLmhsanMtbWV0YS1zdHJpbmcsCiAgICAgIC5obGpzLWxpdGVyYWwsCiAgICAgIC5obGpzLWRvY3RhZywKICAgICAgLmhsanMtcmVnZXhwIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMwMzJmNjIiLCIjYTVkNmZmIil9OwogICAgICB9CgogICAgICAuaGxqcy10aXRsZSwKICAgICAgLmhsanMtc2VjdGlvbiwKICAgICAgLmhsanMtbmFtZSwKICAgICAgLmhsanMtc2VsZWN0b3ItaWQsCiAgICAgIC5obGpzLXNlbGVjdG9yLWNsYXNzIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2ZjQyYzEiLCIjZDJhOGZmIil9OwogICAgICB9CgogICAgICAuaGxqcy1hdHRyaWJ1dGUsCiAgICAgIC5obGpzLWF0dHIsCiAgICAgIC5obGpzLXZhcmlhYmxlLAogICAgICAuaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSwKICAgICAgLmhsanMtY2xhc3MgLmhsanMtdGl0bGUsCiAgICAgIC5obGpzLXR5cGUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzAwNWNjNSIsIiM3OWMwZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLXN5bWJvbCwKICAgICAgLmhsanMtYnVsbGV0LAogICAgICAuaGxqcy1zdWJzdCwKICAgICAgLmhsanMtbWV0YSwKICAgICAgLmhsanMtbWV0YSAuaGxqcy1rZXl3b3JkLAogICAgICAuaGxqcy1zZWxlY3Rvci1hdHRyLAogICAgICAuaGxqcy1zZWxlY3Rvci1wc2V1ZG8sCiAgICAgIC5obGpzLWxpbmsgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2UzNjIwOSIsIiNmZmE2NTciKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWJ1aWx0X2luLAogICAgICAuaGxqcy1kZWxldGlvbiB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYjMxZDI4IiwiI2ZmYTE5OCIpfTsKICAgICAgfQoKICAgICAgLmhsanMtZm9ybXVsYSB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt4LmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICB9CgogICAgICAuaGxqcy1lbXBoYXNpcyB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuaGxqcy1zdHJvbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICB9CiAgICBgXTtvdXRsZXQ7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im91dGxldCI+CiAgICAgICAgPGgxPk1hcmtkb3duIFByZXZpZXc8L2gxPgogICAgICAgIDxwPkNvbnRlbnQgd2lsbCBhcHBlYXIgaGVyZSB3aGVuIG1hcmtkb3duIGlzIHBhcnNlZC48L3A+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQobyl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKG8pLHRoaXMub3V0bGV0PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIub3V0bGV0Iil9YXN5bmMgdXBkYXRlSHRtbFRleHQobyl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLm91dGxldHx8KHRoaXMub3V0bGV0PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIub3V0bGV0IikpLHRoaXMub3V0bGV0LmlubmVySFRNTD1vfXN0YXRpY3tHRmEoYSxyKX19O3JldHVybiBuPWF9KSgpfSk7dmFyIFRhYT11KCgpPT57X2FhKCl9KTt2YXIgTGFhPXUoKCk9PntDOXQoKX0pO3ZhciBEYWE9dSgoKT0+e185dCgpfSk7dmFyICRhYT11KCgpPT57bWFhKCk7Z2FhKCk7YmFhKCk7dmFhKCk7eWFhKCk7U2FhKCk7VGFhKCk7TGFhKCk7RGFhKCl9KTt2YXIgQWFhPXUoKCk9Pnt9KTt2YXIgRWFhPXUoKCk9PntBYWEoKX0pO3ZhciBJYWE9dSgoKT0+e3ZlKCl9KTt2YXIgUGFhPXUoKCk9PntJYWEoKX0pO3ZhciBOYWE9dSgoKT0+e09vKCk7bHQoKTtmUXIoKTtNUXIoKTt3WHIoKTtxWHIoKTtmSnIoKTtnSnIoKTtOSnIoKTtEZWEoKTtOdGEoKTtVdGEoKTtaNmUoKTtqcmEoKTtsYWEoKTskYWEoKTtFYWEoKTtQYWEoKX0pO3ZhciBPYWEsUmFhPXUoKCk9PntPYWE9e25hbWU6IkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsdmVyc2lvbjoiMy44Mi4wIixkZXNjcmlwdGlvbjoiQSBjb21wcmVoZW5zaXZlIGxpYnJhcnkgdGhhdCBwcm92aWRlcyBkeW5hbWljIHdlYiBjb21wb25lbnRzIGZvciBidWlsZGluZyBzb3BoaXN0aWNhdGVkIGFuZCBtb2Rlcm4gd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBKYXZhU2NyaXB0IGFuZCBUeXBlU2NyaXB0LiJ9fSk7dmFyIEpyZT17fTtWZShKcmUse0NhbnZhc1Bvb2w6KCk9PiR3LERlZXNBY3Rpb25iYXI6KCk9PlZYcixEZWVzQXBwdWk6KCk9PnJRcixEZWVzQXBwdWlBY3Rpdml0eWxvZzooKT0+S1ZyLERlZXNBcHB1aUJhcjooKT0+ZGpyLERlZXNBcHB1aUJvdHRvbWJhcjooKT0+aGpyLERlZXNBcHB1aU1haW5jb250ZW50OigpPT50UXIsRGVlc0FwcHVpTWFpbm1lbnU6KCk9PllacixEZWVzQXBwdWlQcm9maWxlRHJvcGRvd246KCk9PmNqcixEZWVzQXBwdWlTZWNvbmRhcnltZW51OigpPT5RWnIsRGVlc0FwcHVpVGFiczooKT0+ZVFyLERlZXNBdWRpb1ZpZXdlcjooKT0+T2VhLERlZXNCYWRnZTooKT0+WVhyLERlZXNCdXR0b246KCk9PnFacixEZWVzQnV0dG9uRXhpdDooKT0+Z1FyLERlZXNCdXR0b25Hcm91cDooKT0+d1FyLERlZXNDaGFydEFyZWE6KCk9PiRRcixEZWVzQ2hhcnRCYXI6KCk9PmpRcixEZWVzQ2hhcnREb251dDooKT0+WFFyLERlZXNDaGFydEdhdWdlOigpPT5uWHIsRGVlc0NoYXJ0TG9nOigpPT5kWHIsRGVlc0NoYXJ0UmFkYXI6KCk9PnZYcixEZWVzQ2hpcHM6KCk9PkZKcixEZWVzQ29udGV4dG1lbnU6KCk9PkNyLERlZXNEYXNoYm9hcmRncmlkOigpPT5pZWEsRGVlc0RhdGF2aWV3Q29kZWJveDooKT0+TVhyLERlZXNEYXRhdmlld1N0YXR1c29iamVjdDooKT0+TFhyLERlZXNGb3JtOigpPT5GWnIsRGVlc0Zvcm1TdWJtaXQ6KCk9PkdwZSxEZWVzRm9ybWF0dGluZ01lbnU6KCk9PnVmZSxEZWVzSGVhZGluZzooKT0+ZGVhLERlZXNIaW50OigpPT5lSnIsRGVlc0ljb246KCk9PlZWcixEZWVzSW1hZ2VWaWV3ZXI6KCk9PkVlYSxEZWVzSW5wdXRCYXNlOigpPT5FdCxEZWVzSW5wdXRDaGVja2JveDooKT0+SXBlLERlZXNJbnB1dENvZGU6KCk9PkZwZSxEZWVzSW5wdXREYXRlcGlja2VyOigpPT5IcGUsRGVlc0lucHV0RGF0ZXBpY2tlclBvcHVwOigpPT5CcGUsRGVlc0lucHV0RHJvcGRvd246KCk9PktwZSxEZWVzSW5wdXREcm9wZG93blBvcHVwOigpPT5ZcGUsRGVlc0lucHV0RmlsZXVwbG9hZDooKT0+UXBlLERlZXNJbnB1dEliYW46KCk9PnRmZSxEZWVzSW5wdXRMaXN0OigpPT5sZmUsRGVlc0lucHV0TXVsdGl0b2dnbGU6KCk9PnJmZSxEZWVzSW5wdXRQaG9uZTooKT0+aWZlLERlZXNJbnB1dFByb2ZpbGVQaWN0dXJlOigpPT5QSnIsRGVlc0lucHV0UXVhbnRpdHlTZWxlY3RvcjooKT0+anBlLERlZXNJbnB1dFJhZGlvZ3JvdXA6KCk9PlVwZSxEZWVzSW5wdXRSaWNodGV4dDooKT0+ejZlLERlZXNJbnB1dFRhZ3M6KCk9Pm9mZSxEZWVzSW5wdXRUZXh0OigpPT5WcGUsRGVlc0lucHV0VG9nZ2xlOigpPT5zZmUsRGVlc0lucHV0VHlwZWxpc3Q6KCk9Pm5mZSxEZWVzSW5wdXRXeXNpd3lnOigpPT5McmUsRGVlc0xhYmVsOigpPT5BanIsRGVlc01vYmlsZW5hdmlnYXRpb246KCk9PmRRcixEZWVzTW9kYWw6KCk9PmVhLERlZXNQYWdpbmF0aW9uOigpPT5nZWEsRGVlc1BhbmVsOigpPT52anIsRGVlc1BkZlZpZXdlcjooKT0+R2VhLERlZXNQcmV2aWV3OigpPT5RZWEsRGVlc1Byb2dyZXNzYmFyOigpPT5zSnIsRGVlc1NlYXJjaGJhcjooKT0+S3JhLERlZXNTZXR0aW5nczooKT0+a2VhLERlZXNTaG9wcGluZ1Byb2R1Y3RjYXJkOigpPT5qanIsRGVlc1NpbXBsZUFwcERhc2g6KCk9PlByYSxEZWVzU2ltcGxlTG9naW46KCk9PkhyYSxEZWVzU2xhc2hNZW51OigpPT5jZmUsRGVlc1NwZWVjaGJ1YmJsZTooKT0+SHRhLERlZXNTcGlubmVyOigpPT5vSnIsRGVlc1N0YXRzR3JpZDooKT0+VlpyLERlZXNTdGVwcGVyOigpPT5EdyxEZWVzU3RvcmFnZUJyb3dzZXI6KCk9PkZYcixEZWVzU3RvcmFnZUNvbHVtbnM6KCk9Pk5YcixEZWVzU3RvcmFnZUtleXM6KCk9Pk9YcixEZWVzU3RvcmFnZVByZXZpZXc6KCk9PlJYcixEZWVzVGFibGU6KCk9PlQ2ZSxEZWVzVGhlbWU6KCk9PmVhYSxEZWVzVGh1bWJuYWlsQXVkaW86KCk9PmJ0YSxEZWVzVGh1bWJuYWlsQmFzZTooKT0+dDEsRGVlc1RodW1ibmFpbEZvbGRlcjooKT0+RXRhLERlZXNUaHVtYm5haWxJbWFnZTooKT0+cHRhLERlZXNUaHVtYm5haWxOb3RlOigpPT5fdGEsRGVlc1RodW1ibmFpbFBkZjooKT0+b3RhLERlZXNUaHVtYm5haWxWaWRlbzooKT0+a3RhLERlZXNUaWxlOigpPT5ManIsRGVlc1RvYXN0OigpPT5tYSxEZWVzVXBkYXRlcjooKT0+UTZlLERlZXNWaWRlb1ZpZXdlcjooKT0+SGVhLERlZXNXaW5kb3dDb250cm9sczooKT0+bGpyLERlZXNXaW5kb3dMYXllcjooKT0+eW4sRGVlc1dvcmtzcGFjZTooKT0+ZmFhLERlZXNXb3Jrc3BhY2VCb3R0b21iYXI6KCk9PnVhYSxEZWVzV29ya3NwYWNlRGlmZkVkaXRvcjooKT0+cGFhLERlZXNXb3Jrc3BhY2VGaWxldHJlZTooKT0+Y2FhLERlZXNXb3Jrc3BhY2VNYXJrZG93bjooKT0+d2FhLERlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldDooKT0+emFhLERlZXNXb3Jrc3BhY2VNb25hY286KCk9PkVqcixEZWVzV29ya3NwYWNlVGVybWluYWw6KCk9PmI5dCxEZWVzV29ya3NwYWNlVGVybWluYWxQcmV2aWV3OigpPT5kYWEsRGVlc1d5c2l3eWdCbG9jazooKT0+eFpyLFBST0dSQU1NSU5HX0xBTkdVQUdFUzooKT0+dnRlLFBkZk1hbmFnZXI6KCk9PlNkLFBlcmZvcm1hbmNlTW9uaXRvcjooKT0+QXcsVGVybWluYWxUYWJNYW5hZ2VyOigpPT5ZcmUsVHlwZVNjcmlwdEludGVsbGlTZW5zZU1hbmFnZXI6KCk9PlFyZSxWaWV3UmVnaXN0cnk6KCk9PkRyZSxXZWJDb250YWluZXJFbnZpcm9ubWVudDooKT0+cGcsV3lzaXd5Z0Jsb2NrT3BlcmF0aW9uczooKT0+eXRlLFd5c2l3eWdCbG9ja3M6KCk9PkVuLFd5c2l3eWdDb252ZXJ0ZXJzOigpPT5YbCxXeXNpd3lnRHJhZ0Ryb3BIYW5kbGVyOigpPT56cmUsV3lzaXd5Z0Zvcm1hdHRpbmc6KCk9PnQzLFd5c2l3eWdIaXN0b3J5OigpPT5fcmUsV3lzaXd5Z0lucHV0SGFuZGxlcjooKT0+TXJlLFd5c2l3eWdLZXlib2FyZEhhbmRsZXI6KCk9PkNyZSxXeXNpd3lnTW9kYWxNYW5hZ2VyOigpPT5TcmUsV3lzaXd5Z1NlbGVjdGlvbjooKT0+aHQsV3lzaXd5Z1Nob3J0Y3V0czooKT0+Y3MsWkluZGV4UmVnaXN0cnk6KCk9PlJsZSxjb2xvcnM6KCk9Pk55LGNvbW1pdGluZm86KCk9Pk9hYSxjb21wb25lbnRaSW5kZXg6KCk9PmQ4YSxkZWJvdW5jZTooKT0+Z0ZhLGZvcm1hdENvdW50OigpPT5QWHIsZm9ybWF0RmlsZVNpemU6KCk9PlY3dCxmb3JtYXRTaXplOigpPT56dyxnZXRDb250ZW50VHlwZTooKT0+ZmYsZ2V0RGVmYXVsdENvbnRlbnQ6KCk9PlR3LGdldEZpbGVOYW1lOigpPT5qcixnZXRQYXJlbnRQcmVmaXg6KCk9PlRjLGdldFBhdGhTZWdtZW50czooKT0+c2csZ2V0WkluZGV4OigpPT5jOGEsaWNvbnM6KCk9PiRwZSxpc0luVmlld3BvcnQ6KCk9PnhGYSxyZWdpc3RlckFsbEJsb2NrSGFuZGxlcnM6KCk9PmZacix0aGVtZURlZmF1bHRTdHlsZXM6KCk9Pk5lLHRoZW1lRGVmYXVsdHM6KCk9PnNsLHRocm90dGxlOigpPT5iRmEsdGh1bWJuYWlsQmFzZVN0eWxlczooKT0+TG8sdmFsaWRhdGVNb3ZlOigpPT5fdyx3eXNpd3lnU3R5bGVzOigpPT5hbXQsekluZGV4TGF5ZXJzOigpPT5qcyx6SW5kZXhSZWdpc3RyeTooKT0+eXJ9KTt2YXIgVDl0PXUoKCk9PntOYWEoKTtmYygpO1JhYSgpfSk7dmFyIEw5dCxlYWUsWUZhLEQ5dD11KCgpPT57dmUoKTtMOXQ9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGVhZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sWUZhPSgoKT0+e2xldCB0PVt1ZSgic3otcmVzb3VyY2UtdXNhZ2UtY2FyZCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelJlc291cmNlVXNhZ2VDYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0sTDl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iZGF0YSJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLmRhdGEsImdldCIpLHNldDppKChtLHYpPT57bS5kYXRhPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxMOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJ2aWNlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InNlcnZpY2VDb3VudCJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnNlcnZpY2VDb3VudCwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnNlcnZpY2VDb3VudD12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksTDl0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXJlc291cmNlLXVzYWdlLWNhcmQKICAgICAgICAuZGF0YT0ke3tjcHU6LjUsbWVtb3J5VXNlZDoiMTkxIE1CIixtZW1vcnlUb3RhbDoiNDI5LjIgR0IiLG5ldHdvcmtJbjoiMzguOSBLQi9zIixuZXR3b3JrT3V0OiIxLjcgS0IvcyIsdG9wQ29uc3VtZXJzOlt7bmFtZToidGVzdC1uZ2lueCIsbWVtb3J5OiIzMi4xIE1CIn0se25hbWU6InRlc3QtdjIiLG1lbW9yeToiMzEuNyBNQiJ9XX19CiAgICAgICAgc2VydmljZUNvdW50PSI3IgogICAgICA+PC9zei1yZXNvdXJjZS11c2FnZS1jYXJkPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIl07I2U9ZWFlKHRoaXMsbyx7Y3B1OjAsbWVtb3J5VXNlZDoiMCBNQiIsbWVtb3J5VG90YWw6IjAgR0IiLG5ldHdvcmtJbjoiMCBLQi9zIixuZXR3b3JrT3V0OiIwIEtCL3MiLHRvcENvbnN1bWVyczpbXX0pO2dldCBkYXRhKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGRhdGEoaCl7dGhpcy4jZT1ofSN0PShlYWUodGhpcyxsKSxlYWUodGhpcyxkLCIwIikpO2dldCBzZXJ2aWNlQ291bnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VydmljZUNvdW50KGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAudmlldy1hbGwgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC52aWV3LWFsbDpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAubWV0cmljLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAubWV0cmljLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLm1ldHJpYy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlOwogICAgICB9CgogICAgICAubmV0d29yay1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5uZXR3b3JrLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm5ldHdvcmstaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAubmV0d29yay1pY29uLmRvd24gewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5uZXR3b3JrLWljb24udXAgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC50b3AtY29uc3VtZXJzIHsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmNvbnN1bWVycy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgICB9CgogICAgICAuY29uc3VtZXJzLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmNvbnN1bWVyLWl0ZW0gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY29uc3VtZXItbmFtZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+UmVzb3VyY2UgVXNhZ2U8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPkFnZ3JlZ2F0ZWQgYWNyb3NzICR7dGhpcy5zZXJ2aWNlQ291bnR9IHNlcnZpY2VzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxhIGNsYXNzPSJ2aWV3LWFsbCI+VmlldyBBbGw8L2E+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpY3MiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtbGFiZWwiPkNQVTwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuZGF0YS5jcHUudG9GaXhlZCgxKX0lPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1maWxsIiBzdHlsZT0id2lkdGg6ICR7TWF0aC5taW4odGhpcy5kYXRhLmNwdSwxMDApfSUiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtaGVhZGVyIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5NZW1vcnk8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLmRhdGEubWVtb3J5VXNlZH0gLyAke3RoaXMuZGF0YS5tZW1vcnlUb3RhbH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmNhbGN1bGF0ZU1lbW9yeVBlcmNlbnQoKX0lIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWhlYWRlciI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+TmV0d29yazwvc3Bhbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXR3b3JrLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV0d29yay1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ibmV0d29yay1pY29uIGRvd24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDV2MTRNMTkgMTJsLTcgNy03LTciLz4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5kYXRhLm5ldHdvcmtJbn0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuZXR3b3JrLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJuZXR3b3JrLWljb24gdXAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDE5VjVNNSAxMmw3LTcgNyA3Ii8+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAke3RoaXMuZGF0YS5uZXR3b3JrT3V0fQogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuZGF0YS50b3BDb25zdW1lcnMubGVuZ3RoPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRvcC1jb25zdW1lcnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25zdW1lcnMtbGFiZWwiPlRvcCBjb25zdW1lcnM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc3VtZXJzLWxpc3QiPgogICAgICAgICAgICAgICR7dGhpcy5kYXRhLnRvcENvbnN1bWVycy5tYXAoaD0+d2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnN1bWVyLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb25zdW1lci1uYW1lIj4ke2gubmFtZX06PC9zcGFuPiAke2gubWVtb3J5fQogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9Y2FsY3VsYXRlTWVtb3J5UGVyY2VudCgpe2xldCBoPXBhcnNlRmxvYXQodGhpcy5kYXRhLm1lbW9yeVVzZWQpLG09cGFyc2VGbG9hdCh0aGlzLmRhdGEubWVtb3J5VG90YWwpO3JldHVybiBtPT09MD8wOk1hdGgubWluKGgvbSoxMDAsMTAwKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZWFlKHRoaXMsZil9c3RhdGlje2VhZShhLHIpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgRmFhLCQ5dCxLRmEsQTl0PXUoKCk9Pnt2ZSgpO0ZhYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sJDl0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxLRmE9KCgpPT57bGV0IHQ9W3VlKCJzei10cmFmZmljLWNhcmQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pUcmFmZmljQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLEZhYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImRhdGEiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5kYXRhLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YuZGF0YT1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksRmFhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogNTAwcHg7Ij4KICAgICAgPHN6LXRyYWZmaWMtY2FyZAogICAgICAgIC5kYXRhPSR7e3JlcXVlc3RzOjEyNTAsZXJyb3JzOjE1LGVycm9yUGVyY2VudDoxLjIsYXZnUmVzcG9uc2U6MTQ1LHJlcVBlck1pbjoyMSxzdGF0dXMyeHg6ODUsc3RhdHVzM3h4OjUsc3RhdHVzNHh4Ojgsc3RhdHVzNXh4OjJ9fQogICAgICA+PC9zei10cmFmZmljLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQiXTsjZT0kOXQodGhpcyxvLHtyZXF1ZXN0czowLGVycm9yczowLGVycm9yUGVyY2VudDowLGF2Z1Jlc3BvbnNlOjAscmVxUGVyTWluOjAsc3RhdHVzMnh4OjAsc3RhdHVzM3h4OjAsc3RhdHVzNHh4OjAsc3RhdHVzNXh4OjB9KTtnZXQgZGF0YSgpe3JldHVybiB0aGlzLiNlfXNldCBkYXRhKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAubWV0cmljcyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAubWV0cmljIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAubWV0cmljLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhci1jb250YWluZXIgewogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtc2VnbWVudCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtMnh4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtM3h4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtNHh4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZhY2MxNSIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtNXh4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VmNDQ0NCIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtbGVnZW5kIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLmxlZ2VuZC1pdGVtIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGQ9dGhpcy5kYXRhLnN0YXR1czJ4eCt0aGlzLmRhdGEuc3RhdHVzM3h4K3RoaXMuZGF0YS5zdGF0dXM0eHgrdGhpcy5kYXRhLnN0YXR1czV4eCxmPWQ+MD90aGlzLmRhdGEuc3RhdHVzMnh4L2QqMTAwOjAscD1kPjA/dGhpcy5kYXRhLnN0YXR1czN4eC9kKjEwMDowLGg9ZD4wP3RoaXMuZGF0YS5zdGF0dXM0eHgvZCoxMDA6MCxtPWQ+MD90aGlzLmRhdGEuc3RhdHVzNXh4L2QqMTAwOjA7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+VHJhZmZpYyAoTGFzdCBIb3VyKTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPlJlcXVlc3QgbWV0cmljcyBmcm9tIGFjY2VzcyBsb2dzPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpY3MiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy1sYWJlbCI+UmVxdWVzdHM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5mb3JtYXROdW1iZXIodGhpcy5kYXRhLnJlcXVlc3RzKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtbGFiZWwiPkVycm9yczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLmRhdGEuZXJyb3JzfSAoJHt0aGlzLmRhdGEuZXJyb3JQZXJjZW50fSUpPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5BdmcgUmVzcG9uc2U8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMtdmFsdWUiPiR7dGhpcy5kYXRhLmF2Z1Jlc3BvbnNlfW1zPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLWxhYmVsIj5SZXEvbWluPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuZGF0YS5yZXFQZXJNaW59PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1iYXItY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1iYXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtc2VnbWVudCBzdGF0dXMtMnh4IiBzdHlsZT0id2lkdGg6ICR7Zn0lIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLXNlZ21lbnQgc3RhdHVzLTN4eCIgc3R5bGU9IndpZHRoOiAke3B9JSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1zZWdtZW50IHN0YXR1cy00eHgiIHN0eWxlPSJ3aWR0aDogJHtofSUiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMtc2VnbWVudCBzdGF0dXMtNXh4IiBzdHlsZT0id2lkdGg6ICR7bX0lIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLWxlZ2VuZCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsZWdlbmQtaXRlbSI+Mnh4PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGVnZW5kLWl0ZW0iPjN4eDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxlZ2VuZC1pdGVtIj40eHg8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsZWdlbmQtaXRlbSI+NXh4PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1mb3JtYXROdW1iZXIoZCl7cmV0dXJuIGQ+PTFlNj8oZC8xZTYpLnRvRml4ZWQoMSkrIk0iOmQ+PTFlMz8oZC8xZTMpLnRvRml4ZWQoMSkrIksiOmQudG9TdHJpbmcoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksJDl0KHRoaXMsbCl9c3RhdGljeyQ5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgQmFhLEU5dCxaRmEsSTl0PXUoKCk9Pnt2ZSgpO0JhYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sRTl0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxaRmE9KCgpPT57bGV0IHQ9W3VlKCJzei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6UGxhdGZvcm1TZXJ2aWNlc0NhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLEJhYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcnZpY2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJzZXJ2aWNlcyJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLnNlcnZpY2VzLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2Yuc2VydmljZXM9cH0sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLEJhYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDUwMHB4OyI+CiAgICAgIDxzei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkCiAgICAgICAgLnNlcnZpY2VzPSR7W3tuYW1lOiJNb25nb0RCIixzdGF0dXM6IjEgREIiLHJ1bm5pbmc6ITB9LHtuYW1lOiJTMyBTdG9yYWdlIChNaW5JTykiLHN0YXR1czoiMSBidWNrZXQiLHJ1bm5pbmc6ITB9LHtuYW1lOiJTbWFydFByb3h5IFJldmVyc2UgUHJveHkiLHN0YXR1czoiUnVubmluZyIscnVubmluZzohMH0se25hbWU6IkNsaWNrSG91c2UiLHN0YXR1czoiMSBEQiIscnVubmluZzohMH1dfQogICAgICA+PC9zei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiUGxhdGZvcm0iXTsjZT1FOXQodGhpcyxvLFtdKTtnZXQgc2VydmljZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VydmljZXMoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlcy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VydmljZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWl0ZW06aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdC5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCAke3guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC40KSIsInJnYmEoMzQsIDE5NywgOTQsIDAuNCkiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90LnN0b3BwZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2Utc3RhdHVzIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+UGxhdGZvcm0gU2VydmljZXM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5JbmZyYXN0cnVjdHVyZSBzdGF0dXM8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZXMtbGlzdCI+CiAgICAgICAgICAke3RoaXMuc2VydmljZXMubWFwKGQ9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pdGVtIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZXJ2aWNlQ2xpY2soZCl9PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1sZWZ0Ij4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzLWRvdCAke2QucnVubmluZz8icnVubmluZyI6InN0b3BwZWQifSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZXJ2aWNlLW5hbWUiPiR7ZC5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlcnZpY2Utc3RhdHVzIj4ke2Quc3RhdHVzfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVTZXJ2aWNlQ2xpY2soZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VydmljZS1jbGljayIse2RldGFpbDpkLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEU5dCh0aGlzLGwpfXN0YXRpY3tFOXQoYSxyKX19O3JldHVybiBjPWF9KSgpfSk7dmFyIEo2ZSxnZyxRRmEsUDl0PXUoKCk9Pnt2ZSgpO0o2ZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZ2c9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFFGYT0oKCk9PntsZXQgdD1bdWUoInN6LWNlcnRpZmljYXRlcy1jYXJkIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6Q2VydGlmaWNhdGVzQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBiPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6TnVtYmVyfSldLGM9W1Aoe3R5cGU6TnVtYmVyfSldLHA9W1Aoe3R5cGU6TnVtYmVyfSldLEo2ZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InZhbGlkQ291bnQiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy52YWxpZENvdW50LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cudmFsaWRDb3VudD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksSjZlKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhwaXJpbmdDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iZXhwaXJpbmdDb3VudCJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmV4cGlyaW5nQ291bnQsImdldCIpLHNldDppKChnLHkpPT57Zy5leHBpcmluZ0NvdW50PXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCxmKSxKNmUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleHBpcmVkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImV4cGlyZWRDb3VudCJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmV4cGlyZWRDb3VudCwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmV4cGlyZWRDb3VudD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSksSjZlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTZweDsgZmxleC13cmFwOiB3cmFwOyI+CiAgICAgIDxzei1jZXJ0aWZpY2F0ZXMtY2FyZCB2YWxpZENvdW50PSIyIj48L3N6LWNlcnRpZmljYXRlcy1jYXJkPgogICAgICA8c3otY2VydGlmaWNhdGVzLWNhcmQgdmFsaWRDb3VudD0iNSIgZXhwaXJpbmdDb3VudD0iMiI+PC9zei1jZXJ0aWZpY2F0ZXMtY2FyZD4KICAgICAgPHN6LWNlcnRpZmljYXRlcy1jYXJkIHZhbGlkQ291bnQ9IjAiIGV4cGlyZWRDb3VudD0iMSI+PC9zei1jZXJ0aWZpY2F0ZXMtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1nZyh0aGlzLG8sMCk7Z2V0IHZhbGlkQ291bnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsaWRDb3VudChiKXt0aGlzLiNlPWJ9I3Q9KGdnKHRoaXMsbCksZ2codGhpcyxkLDApKTtnZXQgZXhwaXJpbmdDb3VudCgpe3JldHVybiB0aGlzLiN0fXNldCBleHBpcmluZ0NvdW50KGIpe3RoaXMuI3Q9Yn0jcj0oZ2codGhpcyxmKSxnZyh0aGlzLGgsMCkpO2dldCBleHBpcmVkQ291bnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZXhwaXJlZENvdW50KGIpe3RoaXMuI3I9Yn1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1pY29uIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtaWNvbi52YWxpZCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1pY29uLndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ZhY2MxNSIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtaWNvbi5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPkNlcnRpZmljYXRlczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPlNTTC9UTFMgY2VydGlmaWNhdGUgc3RhdHVzPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1saXN0Ij4KICAgICAgICAgICR7dGhpcy52YWxpZENvdW50PjA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzIj4KICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJzdGF0dXMtaWNvbiB2YWxpZCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtdGV4dCI+JHt0aGlzLnZhbGlkQ291bnR9IHZhbGlkPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgJHt0aGlzLmV4cGlyaW5nQ291bnQ+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9InN0YXR1cy1pY29uIHdhcm5pbmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjkgMy44NkwxLjgyIDE4YTIgMiAwIDAgMCAxLjcxIDNoMTYuOTRhMiAyIDAgMCAwIDEuNzEtM0wxMy43MSAzLjg2YTIgMiAwIDAgMC0zLjQyIDB6Ij48L3BhdGg+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI5IiB4Mj0iMTIiIHkyPSIxMyI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTciIHgyPSIxMi4wMSIgeTI9IjE3Ij48L2xpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy10ZXh0Ij4ke3RoaXMuZXhwaXJpbmdDb3VudH0gZXhwaXJpbmcgc29vbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgICR7dGhpcy5leHBpcmVkQ291bnQ+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXMiPgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9InN0YXR1cy1pY29uIGVycm9yIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE1IiB5MT0iOSIgeDI9IjkiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjkiIHkxPSI5IiB4Mj0iMTUiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtdGV4dCI+JHt0aGlzLmV4cGlyZWRDb3VudH0gZXhwaXJlZDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgICR7dGhpcy52YWxpZENvdW50PT09MCYmdGhpcy5leHBpcmluZ0NvdW50PT09MCYmdGhpcy5leHBpcmVkQ291bnQ9PT0wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy10ZXh0Ij5ObyBjZXJ0aWZpY2F0ZXM8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxnZyh0aGlzLG0pfXN0YXRpY3tnZyhhLHIpfX07cmV0dXJuIHY9YX0pKCl9KTt2YXIgQncsTmMsWEZhLE45dD11KCgpPT57dmUoKTtCdz1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sTmM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFhGYT0oKCk9PntsZXQgdD1bdWUoInN6LXJldmVyc2UtcHJveHktY2FyZCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelJldmVyc2VQcm94eUNhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOlN0cmluZ30pXSxjPVtQKHt0eXBlOlN0cmluZ30pXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sdj1bUCh7dHlwZTpCb29sZWFufSldLHk9W1Aoe3R5cGU6U3RyaW5nfSldLEJ3KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaHR0cFBvcnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Imh0dHBQb3J0ImluIFMsImhhcyIpLGdldDppKFM9PlMuaHR0cFBvcnQsImdldCIpLHNldDppKChTLE8pPT57Uy5odHRwUG9ydD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksQncodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJodHRwc1BvcnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Imh0dHBzUG9ydCJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmh0dHBzUG9ydCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmh0dHBzUG9ydD1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGQsZiksQncodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJodHRwQWN0aXZlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJodHRwQWN0aXZlImluIFMsImhhcyIpLGdldDppKFM9PlMuaHR0cEFjdGl2ZSwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLmh0dHBBY3RpdmU9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLEJ3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaHR0cHNBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+Imh0dHBzQWN0aXZlImluIFMsImhhcyIpLGdldDppKFM9PlMuaHR0cHNBY3RpdmUsImdldCIpLHNldDppKChTLE8pPT57Uy5odHRwc0FjdGl2ZT1PfSwic2V0Iil9LG1ldGFkYXRhOl99LGIsZyksQncodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3V0ZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJyb3V0ZUNvdW50ImluIFMsImhhcyIpLGdldDppKFM9PlMucm91dGVDb3VudCwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnJvdXRlQ291bnQ9T30sInNldCIpfSxtZXRhZGF0YTpffSxrLE0pLEJ3KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksTj1hPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogNDAwcHg7Ij4KICAgICAgPHN6LXJldmVyc2UtcHJveHktY2FyZAogICAgICAgIGh0dHBQb3J0PSI4MDgwIgogICAgICAgIGh0dHBzUG9ydD0iODQ0MyIKICAgICAgICBodHRwQWN0aXZlCiAgICAgICAgaHR0cHNBY3RpdmUKICAgICAgICByb3V0ZUNvdW50PSIzIgogICAgICA+PC9zei1yZXZlcnNlLXByb3h5LWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJOZXR3b3JrIl07I2U9TmModGhpcyxvLCI4MCIpO2dldCBodHRwUG9ydCgpe3JldHVybiB0aGlzLiNlfXNldCBodHRwUG9ydChfKXt0aGlzLiNlPV99I3Q9KE5jKHRoaXMsbCksTmModGhpcyxkLCI0NDMiKSk7Z2V0IGh0dHBzUG9ydCgpe3JldHVybiB0aGlzLiN0fXNldCBodHRwc1BvcnQoXyl7dGhpcy4jdD1ffSNyPShOYyh0aGlzLGYpLE5jKHRoaXMsaCwhMSkpO2dldCBodHRwQWN0aXZlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGh0dHBBY3RpdmUoXyl7dGhpcy4jcj1ffSNhPShOYyh0aGlzLG0pLE5jKHRoaXMsYiwhMSkpO2dldCBodHRwc0FjdGl2ZSgpe3JldHVybiB0aGlzLiNhfXNldCBodHRwc0FjdGl2ZShfKXt0aGlzLiNhPV99I2k9KE5jKHRoaXMsZyksTmModGhpcyxrLCIwIikpO2dldCByb3V0ZUNvdW50KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHJvdXRlQ291bnQoXyl7dGhpcy4jaT1ffXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5pdGVtcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLml0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5pdGVtLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLml0ZW0tdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuYmFkZ2UuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLmluYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+UmV2ZXJzZSBQcm94eTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPkhUVFAvSFRUUFMgcHJveHkgc3RhdHVzPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Iml0ZW1zIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS1sYWJlbCI+SFRUUCAoJHt0aGlzLmh0dHBQb3J0fSk8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke3RoaXMuaHR0cEFjdGl2ZT8iYWN0aXZlIjoiaW5hY3RpdmUifSI+CiAgICAgICAgICAgICAgJHt0aGlzLmh0dHBBY3RpdmU/IkFjdGl2ZSI6IkluYWN0aXZlIn0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tbGFiZWwiPkhUVFBTICgke3RoaXMuaHR0cHNQb3J0fSk8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke3RoaXMuaHR0cHNBY3RpdmU/ImFjdGl2ZSI6ImluYWN0aXZlIn0iPgogICAgICAgICAgICAgICR7dGhpcy5odHRwc0FjdGl2ZT8iQWN0aXZlIjoiSW5hY3RpdmUifQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS1sYWJlbCI+Um91dGVzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS12YWx1ZSI+JHt0aGlzLnJvdXRlQ291bnR9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTmModGhpcyxNKX1zdGF0aWN7TmMoYSxyKX19O3JldHVybiBOPWF9KSgpfSk7dmFyIE85dCx0YWUsSkZhLFI5dD11KCgpPT57dmUoKTtPOXQ9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHRhZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sSkZhPSgoKT0+e2xldCB0PVt1ZSgic3otZG5zLXNzbC1jYXJkIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W107dmFyIHA9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6RG5zU3NsQ2FyZCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6Qm9vbGVhbn0pXSxjPVtQKHt0eXBlOkJvb2xlYW59KV0sTzl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG5zQ29uZmlndXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iZG5zQ29uZmlndXJlZCJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLmRuc0NvbmZpZ3VyZWQsImdldCIpLHNldDppKChtLHYpPT57bS5kbnNDb25maWd1cmVkPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxPOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY21lQ29uZmlndXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iYWNtZUNvbmZpZ3VyZWQiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5hY21lQ29uZmlndXJlZCwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmFjbWVDb25maWd1cmVkPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sZCxmKSxPOXQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA0MDBweDsiPgogICAgICA8c3otZG5zLXNzbC1jYXJkCiAgICAgICAgZG5zQ29uZmlndXJlZAogICAgICAgIGFjbWVDb25maWd1cmVkCiAgICAgID48L3N6LWRucy1zc2wtY2FyZD4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT10YWUodGhpcyxvLCExKTtnZXQgZG5zQ29uZmlndXJlZCgpe3JldHVybiB0aGlzLiNlfXNldCBkbnNDb25maWd1cmVkKGgpe3RoaXMuI2U9aH0jdD0odGFlKHRoaXMsbCksdGFlKHRoaXMsZCwhMSkpO2dldCBhY21lQ29uZmlndXJlZCgpe3JldHVybiB0aGlzLiN0fXNldCBhY21lQ29uZmlndXJlZChoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLml0ZW1zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAuaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLml0ZW0tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuYmFkZ2UuY29uZmlndXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuYmFkZ2Uubm90LWNvbmZpZ3VyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj5ETlMgJiBTU0w8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj5Db25maWd1cmF0aW9uIHN0YXR1czwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtcyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tbGFiZWwiPkNsb3VkZmxhcmUgRE5TPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHt0aGlzLmRuc0NvbmZpZ3VyZWQ/ImNvbmZpZ3VyZWQiOiJub3QtY29uZmlndXJlZCJ9Ij4KICAgICAgICAgICAgICAke3RoaXMuZG5zQ29uZmlndXJlZD8iQ29uZmlndXJlZCI6Ik5vdCBjb25maWd1cmVkIn0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tbGFiZWwiPkFDTUUgKExldCdzIEVuY3J5cHQpPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHt0aGlzLmFjbWVDb25maWd1cmVkPyJjb25maWd1cmVkIjoibm90LWNvbmZpZ3VyZWQifSI+CiAgICAgICAgICAgICAgJHt0aGlzLmFjbWVDb25maWd1cmVkPyJDb25maWd1cmVkIjoiTm90IGNvbmZpZ3VyZWQifQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0YWUodGhpcyxmKX1zdGF0aWN7dGFlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBIYWEsRjl0LGVCYSxCOXQ9dSgoKT0+e3ZlKCk7SGFhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxGOXQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGVCYT0oKCk9PntsZXQgdD1bdWUoInN6LXF1aWNrLWFjdGlvbnMtY2FyZCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelF1aWNrQWN0aW9uc0NhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLEhhYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImFjdGlvbnMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5hY3Rpb25zLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YuYWN0aW9ucz1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksSGFhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXF1aWNrLWFjdGlvbnMtY2FyZAogICAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiRGVwbG95IFNlcnZpY2UiLGljb246InBsdXMiLHByaW1hcnk6ITB9LHtsYWJlbDoiVmlldyBBbGwgU2VydmljZXMifSx7bGFiZWw6IlBsYXRmb3JtIFNlcnZpY2VzIn0se2xhYmVsOiJNYW5hZ2UgRG9tYWlucyJ9XX0KICAgICAgPjwvc3otcXVpY2stYWN0aW9ucy1jYXJkPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIl07I2U9Rjl0KHRoaXMsbyxbXSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgYWN0aW9ucyhkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLmFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzI1NjNlYiIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+UXVpY2sgQWN0aW9uczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPkNvbW1vbiB0YXNrcyBhbmQgc2hvcnRjdXRzPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgogICAgICAgICAgJHt0aGlzLmFjdGlvbnMubWFwKGQ9PndgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImFjdGlvbi1idXR0b24gJHtkLnByaW1hcnk/InByaW1hcnkiOiJzZWNvbmRhcnkifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbkNsaWNrKGQpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7ZC5pY29uPT09InBsdXMiP3dgCiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImFjdGlvbi1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgJHtkLmxhYmVsfQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUFjdGlvbkNsaWNrKGQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFjdGlvbi1jbGljayIse2RldGFpbDpkLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEY5dCh0aGlzLGwpfXN0YXRpY3tGOXQoYSxyKX19O3JldHVybiBjPWF9KSgpfSk7dmFyIHFhYSxIOXQsdEJhLHE5dD11KCgpPT57dmUoKTtxYWE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LEg5dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sdEJhPSgoKT0+e2xldCB0PVt1ZSgic3otc3RhdHVzLWdyaWQtY2x1c3RlciIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelN0YXR1c0dyaWRDbHVzdGVyIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0scWFhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InN0YXRzImluIGYsImhhcyIpLGdldDppKGY9PmYuc3RhdHMsImdldCIpLHNldDppKChmLHApPT57Zi5zdGF0cz1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCkscWFhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogOTAwcHg7Ij4KICAgICAgPHN6LXN0YXR1cy1ncmlkLWNsdXN0ZXIKICAgICAgICAuc3RhdHM9JHt7dG90YWxTZXJ2aWNlczo3LHJ1bm5pbmc6NyxzdG9wcGVkOjAsZG9ja2VyU3RhdHVzOiJydW5uaW5nIn19CiAgICAgID48L3N6LXN0YXR1cy1ncmlkLWNsdXN0ZXI+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQgR3JpZHMiXTsjZT1IOXQodGhpcyxvLHt0b3RhbFNlcnZpY2VzOjAscnVubmluZzowLHN0b3BwZWQ6MCxkb2NrZXJTdGF0dXM6InN0b3BwZWQifSk7Z2V0IHN0YXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0YXRzKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgYF07Z2V0IHRpbGVzKCl7cmV0dXJuW3tpZDoidG90YWwiLHRpdGxlOiJUb3RhbCBTZXJ2aWNlcyIsdmFsdWU6dGhpcy5zdGF0cy50b3RhbFNlcnZpY2VzLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9LHtpZDoicnVubmluZyIsdGl0bGU6IlJ1bm5pbmciLHZhbHVlOnRoaXMuc3RhdHMucnVubmluZyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpjaGVjayIsY29sb3I6IiMyMmM1NWUifSx7aWQ6InN0b3BwZWQiLHRpdGxlOiJTdG9wcGVkIix2YWx1ZTp0aGlzLnN0YXRzLnN0b3BwZWQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y2lyY2xlU3RvcCIsY29sb3I6dGhpcy5zdGF0cy5zdG9wcGVkPjA/IiNmNTllMGIiOnZvaWQgMH0se2lkOiJkb2NrZXIiLHRpdGxlOiJEb2NrZXIiLHZhbHVlOnRoaXMuc3RhdHMuZG9ja2VyU3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjoiU3RvcHBlZCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmNvbnRhaW5lciIsY29sb3I6dGhpcy5zdGF0cy5kb2NrZXJTdGF0dXM9PT0icnVubmluZyI/IiMyMmM1NWUiOiIjZWY0NDQ0In1dfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAudGlsZXM9JHt0aGlzLnRpbGVzfQogICAgICAgIC5taW5UaWxlV2lkdGg9JHsyMDB9CiAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksSDl0KHRoaXMsbCl9c3RhdGlje0g5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgVjl0LHJhZSxyQmEsajl0PXUoKCk9Pnt2ZSgpO0Q5dCgpO0k5dCgpO1Y5dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0scmFlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxyQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1zdGF0dXMtZ3JpZC1zZXJ2aWNlcyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelN0YXR1c0dyaWRTZXJ2aWNlcyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6QXJyYXl9KV0sVjl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb3VyY2VVc2FnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4icmVzb3VyY2VVc2FnZSJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnJlc291cmNlVXNhZ2UsImdldCIpLHNldDppKChtLHYpPT57bS5yZXNvdXJjZVVzYWdlPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxWOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGF0Zm9ybVNlcnZpY2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJwbGF0Zm9ybVNlcnZpY2VzImluIG0sImhhcyIpLGdldDppKG09Pm0ucGxhdGZvcm1TZXJ2aWNlcywiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnBsYXRmb3JtU2VydmljZXM9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLFY5dChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otc3RhdHVzLWdyaWQtc2VydmljZXMKICAgICAgICAucmVzb3VyY2VVc2FnZT0ke3tjcHU6NDUsbWVtb3J5VXNlZDoiNC45NiBHQiIsbWVtb3J5VG90YWw6IjggR0IiLG5ldHdvcmtJbjoiMS4yIE1CL3MiLG5ldHdvcmtPdXQ6IjAuOCBNQi9zIix0b3BDb25zdW1lcnM6W3tuYW1lOiJhcGktc2VydmljZSIsbWVtb3J5OiI1MTIgTUIifSx7bmFtZToid2ViLWZyb250ZW5kIixtZW1vcnk6IjI1NiBNQiJ9LHtuYW1lOiJ3b3JrZXIiLG1lbW9yeToiMTI4IE1CIn1dfX0KICAgICAgICAucGxhdGZvcm1TZXJ2aWNlcz0ke1t7bmFtZToiTW9uZ29EQiIsc3RhdHVzOiIxIERCIixydW5uaW5nOiEwfSx7bmFtZToiUzMgU3RvcmFnZSIsc3RhdHVzOiIxIGJ1Y2tldCIscnVubmluZzohMH0se25hbWU6IkNsaWNrSG91c2UiLHN0YXR1czoiU3RvcHBlZCIscnVubmluZzohMX0se25hbWU6IlJlZGlzIENhY2hlIixzdGF0dXM6IlJ1bm5pbmciLHJ1bm5pbmc6ITB9XX0KICAgICAgPjwvc3otc3RhdHVzLWdyaWQtc2VydmljZXM+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXNoYm9hcmQgR3JpZHMiXTsjZT1yYWUodGhpcyxvLHtjcHU6MCxtZW1vcnlVc2VkOiIwIEdCIixtZW1vcnlUb3RhbDoiMCBHQiIsbmV0d29ya0luOiIwIE1CL3MiLG5ldHdvcmtPdXQ6IjAgTUIvcyIsdG9wQ29uc3VtZXJzOltdfSk7Z2V0IHJlc291cmNlVXNhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcmVzb3VyY2VVc2FnZShoKXt0aGlzLiNlPWh9I3Q9KHJhZSh0aGlzLGwpLHJhZSh0aGlzLGQsW10pKTtnZXQgcGxhdGZvcm1TZXJ2aWNlcygpe3JldHVybiB0aGlzLiN0fXNldCBwbGF0Zm9ybVNlcnZpY2VzKGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAuZ3JpZCA+ICogewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgIDxzei1yZXNvdXJjZS11c2FnZS1jYXJkCiAgICAgICAgICAuZGF0YT0ke3RoaXMucmVzb3VyY2VVc2FnZX0KICAgICAgICA+PC9zei1yZXNvdXJjZS11c2FnZS1jYXJkPgogICAgICAgIDxzei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkCiAgICAgICAgICAuc2VydmljZXM9JHt0aGlzLnBsYXRmb3JtU2VydmljZXN9CiAgICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZXMtY2FyZD4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxyYWUodGhpcyxmKX1zdGF0aWN7cmFlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBlbWUsYmcsYUJhLFU5dD11KCgpPT57dmUoKTtBOXQoKTtOOXQoKTtQOXQoKTtlbWU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGJnPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxhQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1zdGF0dXMtZ3JpZC1uZXR3b3JrIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6U3RhdHVzR3JpZE5ldHdvcmsiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgYj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOk9iamVjdH0pXSxwPVtQKHt0eXBlOk9iamVjdH0pXSxlbWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0cmFmZmljIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJ0cmFmZmljImluIGcsImhhcyIpLGdldDppKGc9PmcudHJhZmZpYywiZ2V0Iiksc2V0OmkoKGcseSk9PntnLnRyYWZmaWM9eX0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLGVtZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb3h5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJwcm94eSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnByb3h5LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cucHJveHk9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLGVtZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlcnRpZmljYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iY2VydGlmaWNhdGVzImluIGcsImhhcyIpLGdldDppKGc9PmcuY2VydGlmaWNhdGVzLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuY2VydGlmaWNhdGVzPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSxlbWUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxNDAwcHg7Ij4KICAgICAgPHN6LXN0YXR1cy1ncmlkLW5ldHdvcmsKICAgICAgICAudHJhZmZpYz0ke3tyZXF1ZXN0czoxMjU0MjAsZXJyb3JzOjE1MCxlcnJvclBlcmNlbnQ6LjEyLGF2Z1Jlc3BvbnNlOjQ1LHJlcVBlck1pbjo4NDcsc3RhdHVzMnh4Ojk1LjIsc3RhdHVzM3h4OjIuMSxzdGF0dXM0eHg6Mi4zLHN0YXR1czV4eDouNH19CiAgICAgICAgLnByb3h5PSR7e2h0dHBQb3J0OiI4MCIsaHR0cHNQb3J0OiI0NDMiLGh0dHBBY3RpdmU6ITAsaHR0cHNBY3RpdmU6ITAscm91dGVDb3VudDoiMTIifX0KICAgICAgICAuY2VydGlmaWNhdGVzPSR7e3ZhbGlkOjgsZXhwaXJpbmc6MixleHBpcmVkOjB9fQogICAgICA+PC9zei1zdGF0dXMtZ3JpZC1uZXR3b3JrPgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIEdyaWRzIl07I2U9YmcodGhpcyxvLHtyZXF1ZXN0czowLGVycm9yczowLGVycm9yUGVyY2VudDowLGF2Z1Jlc3BvbnNlOjAscmVxUGVyTWluOjAsc3RhdHVzMnh4OjAsc3RhdHVzM3h4OjAsc3RhdHVzNHh4OjAsc3RhdHVzNXh4OjB9KTtnZXQgdHJhZmZpYygpe3JldHVybiB0aGlzLiNlfXNldCB0cmFmZmljKGIpe3RoaXMuI2U9Yn0jdD0oYmcodGhpcyxsKSxiZyh0aGlzLGQse2h0dHBQb3J0OiI4MCIsaHR0cHNQb3J0OiI0NDMiLGh0dHBBY3RpdmU6ITEsaHR0cHNBY3RpdmU6ITEscm91dGVDb3VudDoiMCJ9KSk7Z2V0IHByb3h5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHByb3h5KGIpe3RoaXMuI3Q9Yn0jcj0oYmcodGhpcyxmKSxiZyh0aGlzLGgse3ZhbGlkOjAsZXhwaXJpbmc6MCxleHBpcmVkOjB9KSk7Z2V0IGNlcnRpZmljYXRlcygpe3JldHVybiB0aGlzLiNyfXNldCBjZXJ0aWZpY2F0ZXMoYil7dGhpcy4jcj1ifXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5ncmlkID4gKiB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsKICAgICAgICAuZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICA8c3otdHJhZmZpYy1jYXJkCiAgICAgICAgICAuZGF0YT0ke3RoaXMudHJhZmZpY30KICAgICAgICA+PC9zei10cmFmZmljLWNhcmQ+CiAgICAgICAgPHN6LXJldmVyc2UtcHJveHktY2FyZAogICAgICAgICAgaHR0cFBvcnQ9IiR7dGhpcy5wcm94eS5odHRwUG9ydH0iCiAgICAgICAgICBodHRwc1BvcnQ9IiR7dGhpcy5wcm94eS5odHRwc1BvcnR9IgogICAgICAgICAgP2h0dHBBY3RpdmU9JHt0aGlzLnByb3h5Lmh0dHBBY3RpdmV9CiAgICAgICAgICA/aHR0cHNBY3RpdmU9JHt0aGlzLnByb3h5Lmh0dHBzQWN0aXZlfQogICAgICAgICAgcm91dGVDb3VudD0iJHt0aGlzLnByb3h5LnJvdXRlQ291bnR9IgogICAgICAgID48L3N6LXJldmVyc2UtcHJveHktY2FyZD4KICAgICAgICA8c3otY2VydGlmaWNhdGVzLWNhcmQKICAgICAgICAgIHZhbGlkPSIke3RoaXMuY2VydGlmaWNhdGVzLnZhbGlkfSIKICAgICAgICAgIGV4cGlyaW5nPSIke3RoaXMuY2VydGlmaWNhdGVzLmV4cGlyaW5nfSIKICAgICAgICAgIGV4cGlyZWQ9IiR7dGhpcy5jZXJ0aWZpY2F0ZXMuZXhwaXJlZH0iCiAgICAgICAgPjwvc3otY2VydGlmaWNhdGVzLWNhcmQ+CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksYmcodGhpcyxtKX1zdGF0aWN7YmcoYSxyKX19O3JldHVybiB2PWF9KSgpfSk7dmFyIHRtZSx4ZyxpQmEsVzl0PXUoKCk9Pnt2ZSgpO1I5dCgpO0I5dCgpO3RtZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0seGc9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGlCYT0oKCk9PntsZXQgdD1bdWUoInN6LXN0YXR1cy1ncmlkLWluZnJhIildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6U3RhdHVzR3JpZEluZnJhIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpCb29sZWFufSldLGM9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxwPVtQKHt0eXBlOkFycmF5fSldLHRtZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRuc0NvbmZpZ3VyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImRuc0NvbmZpZ3VyZWQiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5kbnNDb25maWd1cmVkLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuZG5zQ29uZmlndXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksdG1lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNtZUNvbmZpZ3VyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImFjbWVDb25maWd1cmVkImluIGcsImhhcyIpLGdldDppKGc9PmcuYWNtZUNvbmZpZ3VyZWQsImdldCIpLHNldDppKChnLHkpPT57Zy5hY21lQ29uZmlndXJlZD15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsZiksdG1lKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4iYWN0aW9ucyJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLmFjdGlvbnMsImdldCIpLHNldDppKChnLHkpPT57Zy5hY3Rpb25zPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0saCxtKSx0bWUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6Yn0sbnVsbCxyKSx2PWE9ZS52YWx1ZSxiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXN0YXR1cy1ncmlkLWluZnJhCiAgICAgICAgZG5zQ29uZmlndXJlZAogICAgICAgIGFjbWVDb25maWd1cmVkCiAgICAgICAgLmFjdGlvbnM9JHtbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoicGx1cyIscHJpbWFyeTohMH0se2xhYmVsOiJWaWV3IEFsbCBTZXJ2aWNlcyJ9LHtsYWJlbDoiUGxhdGZvcm0gU2VydmljZXMifSx7bGFiZWw6Ik1hbmFnZSBEb21haW5zIn1dfQogICAgICA+PC9zei1zdGF0dXMtZ3JpZC1pbmZyYT4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhc2hib2FyZCBHcmlkcyJdOyNlPXhnKHRoaXMsbywhMSk7Z2V0IGRuc0NvbmZpZ3VyZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZG5zQ29uZmlndXJlZChiKXt0aGlzLiNlPWJ9I3Q9KHhnKHRoaXMsbCkseGcodGhpcyxkLCExKSk7Z2V0IGFjbWVDb25maWd1cmVkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFjbWVDb25maWd1cmVkKGIpe3RoaXMuI3Q9Yn0jcj0oeGcodGhpcyxmKSx4Zyh0aGlzLGgsW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiNyfXNldCBhY3Rpb25zKGIpe3RoaXMuI3I9Yn1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICB9CgogICAgICAuZ3JpZCA+ICogewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMmZyOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgIDxzei1kbnMtc3NsLWNhcmQKICAgICAgICAgID9kbnNDb25maWd1cmVkPSR7dGhpcy5kbnNDb25maWd1cmVkfQogICAgICAgICAgP2FjbWVDb25maWd1cmVkPSR7dGhpcy5hY21lQ29uZmlndXJlZH0KICAgICAgICA+PC9zei1kbnMtc3NsLWNhcmQ+CiAgICAgICAgPHN6LXF1aWNrLWFjdGlvbnMtY2FyZAogICAgICAgICAgLmFjdGlvbnM9JHt0aGlzLmFjdGlvbnN9CiAgICAgICAgICBAYWN0aW9uLWNsaWNrPSR7Yj0+dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOmIuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9CiAgICAgICAgPjwvc3otcXVpY2stYWN0aW9ucy1jYXJkPgogICAgICA8L2Rpdj4KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHhnKHRoaXMsbSl9c3RhdGlje3hnKGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBWYWEsRzl0LHNCYSxqYWE9dSgoKT0+e3ZlKCk7cTl0KCk7ajl0KCk7VTl0KCk7Vzl0KCk7VmFhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxHOXQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHNCYT0oKCk9PntsZXQgdD1bdWUoInN6LWRhc2hib2FyZC12aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6RGFzaGJvYXJkVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLFZhYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImRhdGEiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5kYXRhLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YuZGF0YT1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksVmFhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTQwMHB4OyI+CiAgICAgIDxzei1kYXNoYm9hcmQtdmlldwogICAgICAgIC5kYXRhPSR7e2NsdXN0ZXI6e3RvdGFsU2VydmljZXM6NyxydW5uaW5nOjcsc3RvcHBlZDowLGRvY2tlclN0YXR1czoicnVubmluZyJ9LHJlc291cmNlVXNhZ2U6e2NwdTouNSxtZW1vcnlVc2VkOiIxOTEgTUIiLG1lbW9yeVRvdGFsOiI0MjkuMiBHQiIsbmV0d29ya0luOiIzOC45IEtCL3MiLG5ldHdvcmtPdXQ6IjEuNyBLQi9zIix0b3BDb25zdW1lcnM6W3tuYW1lOiJ0ZXN0LW5naW54IixtZW1vcnk6IjMyLjEgTUIifSx7bmFtZToidGVzdC12MiIsbWVtb3J5OiIzMS43IE1CIn1dfSxwbGF0Zm9ybVNlcnZpY2VzOlt7bmFtZToiTW9uZ29EQiIsc3RhdHVzOiIxIERCIixydW5uaW5nOiEwfSx7bmFtZToiUzMgU3RvcmFnZSAoTWluSU8pIixzdGF0dXM6IjEgYnVja2V0IixydW5uaW5nOiEwfSx7bmFtZToiU21hcnRQcm94eSBSZXZlcnNlIFByb3h5IixzdGF0dXM6IlJ1bm5pbmciLHJ1bm5pbmc6ITB9LHtuYW1lOiJDbGlja0hvdXNlIixzdGF0dXM6IjEgREIiLHJ1bm5pbmc6ITB9XSx0cmFmZmljOntyZXF1ZXN0czoxMjUwLGVycm9yczoxNSxlcnJvclBlcmNlbnQ6MS4yLGF2Z1Jlc3BvbnNlOjE0NSxyZXFQZXJNaW46MjEsc3RhdHVzMnh4Ojg1LHN0YXR1czN4eDo1LHN0YXR1czR4eDo4LHN0YXR1czV4eDoyfSxwcm94eTp7aHR0cFBvcnQ6IjgwIixodHRwc1BvcnQ6IjQ0MyIsaHR0cEFjdGl2ZTohMCxodHRwc0FjdGl2ZTohMCxyb3V0ZUNvdW50OiIxMiJ9LGNlcnRpZmljYXRlczp7dmFsaWQ6OCxleHBpcmluZzoyLGV4cGlyZWQ6MH0sZG5zQ29uZmlndXJlZDohMCxhY21lQ29uZmlndXJlZDohMCxxdWlja0FjdGlvbnM6W3tsYWJlbDoiRGVwbG95IFNlcnZpY2UiLGljb246InBsdXMiLHByaW1hcnk6ITB9LHtsYWJlbDoiVmlldyBBbGwgU2VydmljZXMifSx7bGFiZWw6IlBsYXRmb3JtIFNlcnZpY2VzIn0se2xhYmVsOiJNYW5hZ2UgRG9tYWlucyJ9XX19CiAgICAgID48L3N6LWRhc2hib2FyZC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiRGFzaGJvYXJkIl07I2U9Rzl0KHRoaXMsbyx7Y2x1c3Rlcjp7dG90YWxTZXJ2aWNlczowLHJ1bm5pbmc6MCxzdG9wcGVkOjAsZG9ja2VyU3RhdHVzOiJzdG9wcGVkIn0scmVzb3VyY2VVc2FnZTp7Y3B1OjAsbWVtb3J5VXNlZDoiMCBNQiIsbWVtb3J5VG90YWw6IjAgR0IiLG5ldHdvcmtJbjoiMCBLQi9zIixuZXR3b3JrT3V0OiIwIEtCL3MiLHRvcENvbnN1bWVyczpbXX0scGxhdGZvcm1TZXJ2aWNlczpbXSx0cmFmZmljOntyZXF1ZXN0czowLGVycm9yczowLGVycm9yUGVyY2VudDowLGF2Z1Jlc3BvbnNlOjAscmVxUGVyTWluOjAsc3RhdHVzMnh4OjAsc3RhdHVzM3h4OjAsc3RhdHVzNHh4OjAsc3RhdHVzNXh4OjB9LHByb3h5OntodHRwUG9ydDoiODAiLGh0dHBzUG9ydDoiNDQzIixodHRwQWN0aXZlOiExLGh0dHBzQWN0aXZlOiExLHJvdXRlQ291bnQ6IjAifSxjZXJ0aWZpY2F0ZXM6e3ZhbGlkOjAsZXhwaXJpbmc6MCxleHBpcmVkOjB9LGRuc0NvbmZpZ3VyZWQ6ITEsYWNtZUNvbmZpZ3VyZWQ6ITEscXVpY2tBY3Rpb25zOltdfSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGF0YShkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5kYXNoYm9hcmQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkYXNoYm9hcmQiPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q2x1c3RlciBPdmVydmlldzwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtY2x1c3RlcgogICAgICAgICAgICAuc3RhdHM9JHt0aGlzLmRhdGEuY2x1c3Rlcn0KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLWNsdXN0ZXI+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNlcnZpY2VzICYgUmVzb3VyY2VzPC9oMj4KICAgICAgICAgIDxzei1zdGF0dXMtZ3JpZC1zZXJ2aWNlcwogICAgICAgICAgICAucmVzb3VyY2VVc2FnZT0ke3RoaXMuZGF0YS5yZXNvdXJjZVVzYWdlfQogICAgICAgICAgICAucGxhdGZvcm1TZXJ2aWNlcz0ke3RoaXMuZGF0YS5wbGF0Zm9ybVNlcnZpY2VzfQogICAgICAgICAgPjwvc3otc3RhdHVzLWdyaWQtc2VydmljZXM+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk5ldHdvcmsgJiBUcmFmZmljPC9oMj4KICAgICAgICAgIDxzei1zdGF0dXMtZ3JpZC1uZXR3b3JrCiAgICAgICAgICAgIC50cmFmZmljPSR7dGhpcy5kYXRhLnRyYWZmaWN9CiAgICAgICAgICAgIC5wcm94eT0ke3RoaXMuZGF0YS5wcm94eX0KICAgICAgICAgICAgLmNlcnRpZmljYXRlcz0ke3RoaXMuZGF0YS5jZXJ0aWZpY2F0ZXN9CiAgICAgICAgICA+PC9zei1zdGF0dXMtZ3JpZC1uZXR3b3JrPgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5JbmZyYXN0cnVjdHVyZTwvaDI+CiAgICAgICAgICA8c3otc3RhdHVzLWdyaWQtaW5mcmEKICAgICAgICAgICAgP2Ruc0NvbmZpZ3VyZWQ9JHt0aGlzLmRhdGEuZG5zQ29uZmlndXJlZH0KICAgICAgICAgICAgP2FjbWVDb25maWd1cmVkPSR7dGhpcy5kYXRhLmFjbWVDb25maWd1cmVkfQogICAgICAgICAgICAuYWN0aW9ucz0ke3RoaXMuZGF0YS5xdWlja0FjdGlvbnN9CiAgICAgICAgICAgIEBhY3Rpb24tY2xpY2s9JHtkPT50aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpb24tY2xpY2siLHtkZXRhaWw6ZC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLWluZnJhPgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxHOXQodGhpcyxsKX1zdGF0aWN7Rzl0KGEscil9fTtyZXR1cm4gYz1hfSkoKX0pO3ZhciBrZixuMSxuQmEsVWFhPXUoKCk9Pnt2ZSgpO2tmPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxuMT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sbkJhPSgoKT0+e2xldCB0PVt1ZSgic3otbmV0d29yay1wcm94eS12aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W10seSxrPVtdLE09W10sTixfPVtdLFM9W10sTyxMPVtdLEU9W107dmFyIEI9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6TmV0d29ya1Byb3h5VmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6U3RyaW5nfSldLHk9W1Aoe3R5cGU6QXJyYXl9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOkJvb2xlYW59KV0sa2YodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm94eVN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4icHJveHlTdGF0dXMiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5wcm94eVN0YXR1cywiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnByb3h5U3RhdHVzPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sbyxsKSxrZih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdXRlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InJvdXRlQ291bnQiaW4geiwiaGFzIiksZ2V0Omkoej0+ei5yb3V0ZUNvdW50LCJnZXQiKSxzZXQ6aSgoeixBKT0+e3oucm91dGVDb3VudD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGQsZiksa2YodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZXJ0aWZpY2F0ZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJjZXJ0aWZpY2F0ZUNvdW50ImluIHosImhhcyIpLGdldDppKHo9PnouY2VydGlmaWNhdGVDb3VudCwiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LmNlcnRpZmljYXRlQ291bnQ9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxoLG0pLGtmKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFyZ2V0Q291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoej0+InRhcmdldENvdW50ImluIHosImhhcyIpLGdldDppKHo9PnoudGFyZ2V0Q291bnQsImdldCIpLHNldDppKCh6LEEpPT57ei50YXJnZXRDb3VudD1BfSwic2V0Iil9LG1ldGFkYXRhOkN9LGIsZyksa2YodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKHo9PiJ0YXJnZXRzImluIHosImhhcyIpLGdldDppKHo9PnoudGFyZ2V0cywiZ2V0Iiksc2V0OmkoKHosQSk9Pnt6LnRhcmdldHM9QX0sInNldCIpfSxtZXRhZGF0YTpDfSxrLE0pLGtmKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9ncyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ibG9ncyJpbiB6LCJoYXMiKSxnZXQ6aSh6PT56LmxvZ3MsImdldCIpLHNldDppKCh6LEEpPT57ei5sb2dzPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sXyxTKSxrZih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0cmVhbWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aSh6PT4ic3RyZWFtaW5nImluIHosImhhcyIpLGdldDppKHo9Pnouc3RyZWFtaW5nLCJnZXQiKSxzZXQ6aSgoeixBKT0+e3ouc3RyZWFtaW5nPUF9LCJzZXQiKX0sbWV0YWRhdGE6Q30sTCxFKSxrZihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpDfSxudWxsLHIpLEI9YT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDE0MDBweDsiPgogICAgICA8c3otbmV0d29yay1wcm94eS12aWV3CiAgICAgICAgcHJveHlTdGF0dXM9InJ1bm5pbmciCiAgICAgICAgcm91dGVDb3VudD0iMyIKICAgICAgICBjZXJ0aWZpY2F0ZUNvdW50PSIyIgogICAgICAgIHRhcmdldENvdW50PSIxMSIKICAgICAgICAudGFyZ2V0cz0ke1t7dHlwZToic2VydmljZSIsbmFtZToidGVzdC1uZ2lueCIsZG9tYWluOiJhcHAuYmxldS5kZSIsdGFyZ2V0OiJsb2NhbGhvc3Q6ODA4MCIsc3RhdHVzOiJydW5uaW5nIn0se3R5cGU6InNlcnZpY2UiLG5hbWU6ImhlbGxvLXdvcmxkIixkb21haW46ImhlbGxvLnRhc2sudmMiLHRhcmdldDoibG9jYWxob3N0OjgwODEiLHN0YXR1czoicnVubmluZyJ9LHt0eXBlOiJyZWdpc3RyeSIsbmFtZToib25lYm94LXJlZ2lzdHJ5Iixkb21haW46bnVsbCx0YXJnZXQ6ImxvY2FsaG9zdDo0MDAwIixzdGF0dXM6InJ1bm5pbmcifSx7dHlwZToicGxhdGZvcm0iLG5hbWU6Ik1vbmdvREIiLGRvbWFpbjpudWxsLHRhcmdldDoibG9jYWxob3N0OjI3MDE3IixzdGF0dXM6InJ1bm5pbmcifSx7dHlwZToicGxhdGZvcm0iLG5hbWU6IkNsaWNrSG91c2UiLGRvbWFpbjpudWxsLHRhcmdldDoibG9jYWxob3N0OjgxMjMiLHN0YXR1czoicnVubmluZyJ9XX0KICAgICAgICAubG9ncz0ke1t7dGltZXN0YW1wOiIyMDI0LTAxLTAyIDEwOjE1OjMyIixtZXRob2Q6IkdFVCIscGF0aDoiL2FwaS9zZXJ2aWNlcyIsc3RhdHVzOjIwMCxkdXJhdGlvbjo0NSxpcDoiMTkyLjE2OC4xLjEwMCJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMDIgMTA6MTU6MzAiLG1ldGhvZDoiUE9TVCIscGF0aDoiL2FwaS9hdXRoL2xvZ2luIixzdGF0dXM6MjAwLGR1cmF0aW9uOjEyMCxpcDoiMTkyLjE2OC4xLjEwMSJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMDIgMTA6MTU6MjgiLG1ldGhvZDoiR0VUIixwYXRoOiIvc3RhdGljL2J1bmRsZS5qcyIsc3RhdHVzOjMwNCxkdXJhdGlvbjo1LGlwOiIxOTIuMTY4LjEuMTAwIn1dfQogICAgICA+PC9zei1uZXR3b3JrLXByb3h5LXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJOZXR3b3JrIl07I2U9bjEodGhpcyxvLCJzdG9wcGVkIik7Z2V0IHByb3h5U3RhdHVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHByb3h5U3RhdHVzKEMpe3RoaXMuI2U9Q30jdD0objEodGhpcyxsKSxuMSh0aGlzLGQsIjAiKSk7Z2V0IHJvdXRlQ291bnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcm91dGVDb3VudChDKXt0aGlzLiN0PUN9I3I9KG4xKHRoaXMsZiksbjEodGhpcyxoLCIwIikpO2dldCBjZXJ0aWZpY2F0ZUNvdW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNlcnRpZmljYXRlQ291bnQoQyl7dGhpcy4jcj1DfSNhPShuMSh0aGlzLG0pLG4xKHRoaXMsYiwiMCIpKTtnZXQgdGFyZ2V0Q291bnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdGFyZ2V0Q291bnQoQyl7dGhpcy4jYT1DfSNpPShuMSh0aGlzLGcpLG4xKHRoaXMsayxbXSkpO2dldCB0YXJnZXRzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRhcmdldHMoQyl7dGhpcy4jaT1DfSNzPShuMSh0aGlzLE0pLG4xKHRoaXMsXyxbXSkpO2dldCBsb2dzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGxvZ3MoQyl7dGhpcy4jcz1DfSNuPShuMSh0aGlzLFMpLG4xKHRoaXMsTCwhMSkpO2dldCBzdHJlYW1pbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgc3RyZWFtaW5nKEMpe3RoaXMuI249Q31zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAucmVmcmVzaC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZWZyZXNoLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICB9CgogICAgICAudGFibGUtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxLjVmciAxLjVmciAxLjVmciA4MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4MHB4IDEuNWZyIDEuNWZyIDEuNWZyIDgwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAudHlwZS1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICB9CgogICAgICAudHlwZS1iYWRnZS5zZXJ2aWNlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC50eXBlLWJhZGdlLnJlZ2lzdHJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2YzZThmZiIsInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzkzMzNlYSIsIiNhODU1ZjciKX07CiAgICAgIH0KCiAgICAgIC50eXBlLWJhZGdlLnBsYXRmb3JtIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjNjNyIsInJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2Q5NzcwNiIsIiNmNTllMGIiKX07CiAgICAgIH0KCiAgICAgIC50YXJnZXQtdmFsdWUgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmxvZ3MtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAubG9nLWVudHJ5IHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAubG9nLXRpbWVzdGFtcCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLmxvZy1tZXRob2QgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmxvZy1zdGF0dXMtMnh4IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAubG9nLXN0YXR1cy0zeHggewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5sb2ctc3RhdHVzLTR4eCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLmxvZy1zdGF0dXMtNXh4IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuZW1wdHktbG9ncyB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07Z2V0IHRpbGVzKCl7cmV0dXJuW3tpZDoicHJveHktc3RhdHVzIix0aXRsZToiUHJveHkgU3RhdHVzIix2YWx1ZTp0aGlzLnByb3h5U3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjoiU3RvcHBlZCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOnNlcnZlciIsY29sb3I6dGhpcy5wcm94eVN0YXR1cz09PSJydW5uaW5nIj8iIzIyYzU1ZSI6IiNlZjQ0NDQifSx7aWQ6InJvdXRlcyIsdGl0bGU6IlJvdXRlcyIsdmFsdWU6dGhpcy5yb3V0ZUNvdW50LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9LHtpZDoiY2VydGlmaWNhdGVzIix0aXRsZToiQ2VydGlmaWNhdGVzIix2YWx1ZTp0aGlzLmNlcnRpZmljYXRlQ291bnQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y2hlY2sifSx7aWQ6InRhcmdldHMiLHRpdGxlOiJUYXJnZXRzIix2YWx1ZTp0aGlzLnRhcmdldENvdW50LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNlcnZlciJ9XX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVmcmVzaC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlZnJlc2goKX0+UmVmcmVzaDwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMudGlsZXN9CiAgICAgICAgLm1pblRpbGVXaWR0aD0kezIwMH0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPlRyYWZmaWMgVGFyZ2V0czwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPlNlcnZpY2VzLCByZWdpc3RyeSwgYW5kIHBsYXRmb3JtIHNlcnZpY2VzIHdpdGggdGhlaXIgcm91dGluZyBpbmZvPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPlR5cGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5OYW1lPC9zcGFuPgogICAgICAgICAgPHNwYW4+RG9tYWluPC9zcGFuPgogICAgICAgICAgPHNwYW4+VGFyZ2V0PC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy50YXJnZXRzLm1hcChDPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVUYXJnZXRDbGljayhDKX0+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLWJhZGdlICR7Qy50eXBlfSI+JHtDLnR5cGV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+JHtDLm5hbWV9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj4ke0MuZG9tYWlufHwiLSJ9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0LXZhbHVlIj4ke0MudGFyZ2V0fTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke0Muc3RhdHVzfSI+JHtDLnN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BY2Nlc3MgTG9nczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPlJlYWwtdGltZSBwcm94eSBhY2Nlc3MgbG9nczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ3MtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5sb2dzLmxlbmd0aD4wP3RoaXMubG9ncy5tYXAoQz0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9nLWVudHJ5Ij4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9nLXRpbWVzdGFtcCI+JHtDLnRpbWVzdGFtcH08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxvZy1tZXRob2QiPiR7Qy5tZXRob2R9PC9zcGFuPgogICAgICAgICAgICAgICR7Qy5wYXRofQogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke3RoaXMuZ2V0U3RhdHVzQ2xhc3MoQy5zdGF0dXMpfSI+JHtDLnN0YXR1c308L3NwYW4+CiAgICAgICAgICAgICAgJHtDLmR1cmF0aW9ufW1zCiAgICAgICAgICAgICAgJHtDLmlwfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LWxvZ3MiPkNsaWNrICJTdHJlYW0iIHRvIHN0YXJ0IGxpdmUgYWNjZXNzIGxvZyBzdHJlYW1pbmc8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiAke3RoaXMuc3RyZWFtaW5nPyJkYW5nZXIiOiJwcmltYXJ5In0iIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZVN0cmVhbWluZygpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAke3RoaXMuc3RyZWFtaW5nP3dgPHJlY3QgeD0iNiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMSIvPmA6d2A8cG9seWdvbiBwb2ludHM9IjUsMyAxOSwxMiA1LDIxIi8+YH0KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICR7dGhpcy5zdHJlYW1pbmc/IlN0b3AiOiJTdHJlYW0ifQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2xlYXJMb2dzKCl9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLDYgNSw2IDIxLDYiLz48cGF0aCBkPSJNMTksNnYxNGEyLDIsMCwwLDEtMiwySDdhMiwyLDAsMCwxLTItMlY2bTMsMFY0YTIsMiwwLDAsMSwyLTJoNGEyLDIsMCwwLDEsMiwydjIiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENsZWFyIGxvZ3MKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9Z2V0U3RhdHVzQ2xhc3MoQyl7cmV0dXJuIEM+PTUwMD8ibG9nLXN0YXR1cy01eHgiOkM+PTQwMD8ibG9nLXN0YXR1cy00eHgiOkM+PTMwMD8ibG9nLXN0YXR1cy0zeHgiOiJsb2ctc3RhdHVzLTJ4eCJ9aGFuZGxlUmVmcmVzaCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlZnJlc2giLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVRhcmdldENsaWNrKEMpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhcmdldC1jbGljayIse2RldGFpbDpDLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9dG9nZ2xlU3RyZWFtaW5nKCl7dGhpcy5zdHJlYW1pbmc9IXRoaXMuc3RyZWFtaW5nLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN0cmVhbS10b2dnbGUiLHtkZXRhaWw6e3N0cmVhbWluZzp0aGlzLnN0cmVhbWluZ30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDbGVhckxvZ3MoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGVhci1sb2dzIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksbjEodGhpcyxFKX1zdGF0aWN7bjEoYSxyKX19O3JldHVybiBCPWF9KSgpfSk7dmFyIFdhYSxZOXQsb0JhLEdhYT11KCgpPT57dmUoKTtXYWE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LFk5dD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sb0JhPSgoKT0+e2xldCB0PVt1ZSgic3otbmV0d29yay1kbnMtdmlldyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTek5ldHdvcmtEbnNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxXYWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWNvcmRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGY9PiJyZWNvcmRzImluIGYsImhhcyIpLGdldDppKGY9PmYucmVjb3JkcywiZ2V0Iiksc2V0OmkoKGYscCk9PntmLnJlY29yZHM9cH0sInNldCIpfSxtZXRhZGF0YTpkfSxvLGwpLFdhYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpkfSxudWxsLHIpLGM9YT1lLnZhbHVlLGQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEwMDBweDsiPgogICAgICA8c3otbmV0d29yay1kbnMtdmlldwogICAgICAgIC5yZWNvcmRzPSR7W3tkb21haW46InByLnRhc2sudmMiLHR5cGU6IkEiLHZhbHVlOiIxOTUuMjAxLjk4LjIzMiJ9LHtkb21haW46Im91dGxpbmUudGFzay52YyIsdHlwZToiQSIsdmFsdWU6IjE5NS4yMDEuOTguMjMyIn0se2RvbWFpbjoibnMxLnRhc2sudmMiLHR5cGU6IkEiLHZhbHVlOiIyMTIuOTUuOTkuMTMwIn0se2RvbWFpbjoiYmxldS5kZSIsdHlwZToiQSIsdmFsdWU6IjIxMi45NS45OS4xMzAifSx7ZG9tYWluOiJtYWlsLmJsZXUuZGUiLHR5cGU6Ik1YIix2YWx1ZToiMTAgbWFpbC5ibGV1LmRlIn1dfQogICAgICA+PC9zei1uZXR3b3JrLWRucy12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTmV0d29yayJdOyNlPVk5dCh0aGlzLG8sW10pO2dldCByZWNvcmRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlY29yZHMoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zeW5jLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnN5bmMtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgODBweCAyZnIgMTAwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciA4MHB4IDJmciAxMDBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFibGUtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmRvbWFpbiB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnR5cGUtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudmFsdWUgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmRlbGV0ZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuZGVsZXRlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImRlc2NyaXB0aW9uIj5NYW5hZ2UgRE5TIHJlY29yZHMgc3luY2VkIHdpdGggQ2xvdWRmbGFyZTwvc3Bhbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJzeW5jLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlU3luYygpfT4KICAgICAgICAgIDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMCAxLTkgOW05LTlhOSA5IDAgMCAwLTktOW05IDlIM205IDlhOSA5IDAgMCAxLTktOW05IDljMS42NiAwIDMtNC4wMyAzLTlzLTEuMzQtOS0zLTltMCAxOGMtMS42NiAwLTMtNC4wMy0zLTlzMS4zNC05IDMtOSIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBTeW5jIENsb3VkZmxhcmUKICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj5Eb21haW48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5UeXBlPC9zcGFuPgogICAgICAgICAgPHNwYW4+VmFsdWU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5BY3Rpb25zPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5yZWNvcmRzLmxlbmd0aD4wP3RoaXMucmVjb3Jkcy5tYXAoZD0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJvdyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb21haW4iPiR7ZC5kb21haW59PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0idHlwZS1iYWRnZSI+JHtkLnR5cGV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZhbHVlIj4ke2QudmFsdWV9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZWxldGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZWxldGUoZCl9PkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKTp3YAogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIEROUyByZWNvcmRzIGZvdW5kPC9kaXY+CiAgICAgICAgYH0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVN5bmMoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzeW5jIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGUoZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlIix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksWTl0KHRoaXMsbCl9c3RhdGlje1k5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgSzl0LGFhZSxsQmEsWWFhPXUoKCk9Pnt2ZSgpO0s5dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sYWFlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxsQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1uZXR3b3JrLWRvbWFpbnMtdmlldyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTek5ldHdvcmtEb21haW5zVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6QXJyYXl9KV0sYz1bUCh7dHlwZTpPYmplY3R9KV0sSzl0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9tYWlucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iZG9tYWlucyJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLmRvbWFpbnMsImdldCIpLHNldDppKChtLHYpPT57bS5kb21haW5zPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxLOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4ic3RhdHMiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5zdGF0cywiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnN0YXRzPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sZCxmKSxLOXQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LW5ldHdvcmstZG9tYWlucy12aWV3CiAgICAgICAgLmRvbWFpbnM9JHtbe2RvbWFpbjoiYmxldS5kZSIscHJvdmlkZXI6ImNsb3VkZmxhcmUiLHNlcnZpY2VDb3VudDoyLGNlcnRpZmljYXRlU3RhdHVzOiJ2YWxpZCIsZXhwaXJlc0luOiI1MiBkYXlzIn0se2RvbWFpbjoidGFzay52YyIscHJvdmlkZXI6ImNsb3VkZmxhcmUiLHNlcnZpY2VDb3VudDoxLGNlcnRpZmljYXRlU3RhdHVzOiJ2YWxpZCIsZXhwaXJlc0luOiI1MiBkYXlzIn0se2RvbWFpbjoiZXhhbXBsZS5jb20iLHByb3ZpZGVyOiJjbG91ZGZsYXJlIixzZXJ2aWNlQ291bnQ6MCxjZXJ0aWZpY2F0ZVN0YXR1czoiZXhwaXJpbmciLGV4cGlyZXNJbjoiNyBkYXlzIn1dfQogICAgICAgIC5zdGF0cz0ke3t0b3RhbDozLHZhbGlkOjIsZXhwaXJpbmc6MSxleHBpcmVkOjB9fQogICAgICA+PC9zei1uZXR3b3JrLWRvbWFpbnMtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk5ldHdvcmsiXTsjZT1hYWUodGhpcyxvLFtdKTtnZXQgZG9tYWlucygpe3JldHVybiB0aGlzLiNlfXNldCBkb21haW5zKGgpe3RoaXMuI2U9aH0jdD0oYWFlKHRoaXMsbCksYWFlKHRoaXMsZCx7dG90YWw6MCx2YWxpZDowLGV4cGlyaW5nOjAsZXhwaXJlZDowfSkpO2dldCBzdGF0cygpe3JldHVybiB0aGlzLiN0fXNldCBzdGF0cyhoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN5bmMtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuc3luYy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgfQoKICAgICAgZGVlcy1zdGF0c2dyaWQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC50YWJsZS1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDgwcHggMTAwcHggMTAwcHggODBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmciA4MHB4IDEwMHB4IDEwMHB4IDgwcHg7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFibGUtcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmRvbWFpbi1uYW1lIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAucHJvdmlkZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UudmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmV4cGlyaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZXhwaXJlZCwKICAgICAgLnN0YXR1cy1iYWRnZS5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmV4cGlyZXMgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC52aWV3LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudmlldy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO2dldCB0aWxlcygpe3JldHVyblt7aWQ6InRvdGFsIix0aXRsZToiVG90YWwgRG9tYWlucyIsdmFsdWU6dGhpcy5zdGF0cy50b3RhbCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpnbG9iZSJ9LHtpZDoidmFsaWQiLHRpdGxlOiJWYWxpZCBDZXJ0aWZpY2F0ZXMiLHZhbHVlOnRoaXMuc3RhdHMudmFsaWQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6c2hpZWxkQ2hlY2siLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJleHBpcmluZyIsdGl0bGU6IkV4cGlyaW5nIFNvb24iLHZhbHVlOnRoaXMuc3RhdHMuZXhwaXJpbmcsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6c2hpZWxkQWxlcnQiLGNvbG9yOnRoaXMuc3RhdHMuZXhwaXJpbmc+MD8iI2Y1OWUwYiI6dm9pZCAwfSx7aWQ6ImV4cGlyZWQiLHRpdGxlOiJFeHBpcmVkL1BlbmRpbmciLHZhbHVlOnRoaXMuc3RhdHMuZXhwaXJlZCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpjaXJjbGVPZmYiLGNvbG9yOnRoaXMuc3RhdHMuZXhwaXJlZD4wPyIjZWY0NDQ0Ijp2b2lkIDB9XX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZGVzY3JpcHRpb24iPk1hbmFnZSBkb21haW5zIGFuZCBTU0wgY2VydGlmaWNhdGVzPC9zcGFuPgogICAgICAgIDxidXR0b24gY2xhc3M9InN5bmMtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTeW5jKCl9PlN5bmMgQ2xvdWRmbGFyZTwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMudGlsZXN9CiAgICAgICAgLm1pblRpbGVXaWR0aD0kezIwMH0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciI+CiAgICAgICAgICA8c3Bhbj5Eb21haW48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5Qcm92aWRlcjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlNlcnZpY2VzPC9zcGFuPgogICAgICAgICAgPHNwYW4+Q2VydGlmaWNhdGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5FeHBpcmVzPC9zcGFuPgogICAgICAgICAgPHNwYW4+QWN0aW9uczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZG9tYWlucy5sZW5ndGg+MD90aGlzLmRvbWFpbnMubWFwKGg9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yb3ciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9tYWluLW5hbWUiPiR7aC5kb21haW59PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvdmlkZXIiPiR7aC5wcm92aWRlcn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPiR7aC5zZXJ2aWNlQ291bnR9PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7aC5jZXJ0aWZpY2F0ZVN0YXR1c30iPiR7aC5jZXJ0aWZpY2F0ZVN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhwaXJlcyI+JHtoLmV4cGlyZXNJbnx8Ii0ifTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idmlldy1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVZpZXcoaCl9PlZpZXc8L2J1dHRvbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCk6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBkb21haW5zIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICBgfQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlU3luYygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN5bmMiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVZpZXcoaCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldyIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGFhZSh0aGlzLGYpfXN0YXRpY3thYWUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIFo5dCxpYWUsY0JhLEthYT11KCgpPT57dmUoKTtaOXQ9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LGlhZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sY0JhPSgoKT0+e2xldCB0PVt1ZSgic3otcmVnaXN0cnktYWR2ZXJ0aXNlbWVudCIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelJlZ2lzdHJ5QWR2ZXJ0aXNlbWVudCIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLFo5dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4ic3RhdHVzImluIG0sImhhcyIpLGdldDppKG09Pm0uc3RhdHVzLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uc3RhdHVzPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxaOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWdpc3RyeVVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4icmVnaXN0cnlVcmwiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5yZWdpc3RyeVVybCwiZ2V0Iiksc2V0OmkoKG0sdik9PnttLnJlZ2lzdHJ5VXJsPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sZCxmKSxaOXQobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiA4MDBweDsiPgogICAgICA8c3otcmVnaXN0cnktYWR2ZXJ0aXNlbWVudAogICAgICAgIHN0YXR1cz0icnVubmluZyIKICAgICAgICByZWdpc3RyeVVybD0ibG9jYWxob3N0OjMwMDAvdjIiCiAgICAgID48L3N6LXJlZ2lzdHJ5LWFkdmVydGlzZW1lbnQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBdXRoICYgU2V0dGluZ3MiXTsjZT1pYWUodGhpcyxvLCJzdG9wcGVkIik7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNlfXNldCBzdGF0dXMoaCl7dGhpcy4jZT1ofSN0PShpYWUodGhpcyxsKSxpYWUodGhpcyxkLCIiKSk7Z2V0IHJlZ2lzdHJ5VXJsKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHJlZ2lzdHJ5VXJsKGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5jYXJkLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5yZWdpc3RyeS1pY29uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmhlYWRlci10aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5kZWZhdWx0LWJhZGdlIHsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLmNhcmQtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLmluZm8tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmluZm8taXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaW5mby1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgIH0KCiAgICAgIC5pbmZvLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLm1hbmFnZS1saW5rIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5tYW5hZ2UtbGluazpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5xdWljay1zdGFydCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAucXVpY2stc3RhcnQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAucXVpY2stc3RhcnQtZGVzYyB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLmNvZGUtYmxvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiIzBhMGEwYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICB9CgogICAgICAuY29kZS1saW5lIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLmNvZGUtbGluZTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuY29kZS1jb21tZW50IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2YjcyODAiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuY29kZS1jb21tYW5kIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjZTRlNGU3Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktaWNvbiI+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj4KICAgICAgICAgICAgICBSZWdpc3RyeSBBZHZlcnRpc2VtZW50CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRlZmF1bHQtYmFkZ2UiPkRlZmF1bHQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkNvbnRhaW5lciByZWdpc3RyeSBmb3IgeW91ciBzZXJ2aWNlczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWdyaWQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5TdGF0dXM8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke3RoaXMuc3RhdHVzfSI+JHt0aGlzLnN0YXR1cz09PSJydW5uaW5nIj8iUnVubmluZyI6IlN0b3BwZWQifTwvc3Bhbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5SZWdpc3RyeSBVUkw8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPiR7dGhpcy5yZWdpc3RyeVVybH08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5BdXRoZW50aWNhdGlvbjwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibWFuYWdlLWxpbmsiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1hbmFnZVRva2VucygpfT5NYW5hZ2UgVG9rZW5zPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJxdWljay1zdGFydCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1aWNrLXN0YXJ0LXRpdGxlIj5RdWljayBTdGFydDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJxdWljay1zdGFydC1kZXNjIj5UbyBwdXNoIGltYWdlcyB0byB0aGUgcmVnaXN0cnksIHVzZSBhIENJIG9yIEdsb2JhbCB0b2tlbjo8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jayI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1saW5lIGNvZGUtY29tbWVudCI+IyBMb2dpbiB0byB0aGUgcmVnaXN0cnk8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWxpbmUgY29kZS1jb21tYW5kIj5kb2NrZXIgbG9naW4gJHt0aGlzLnJlZ2lzdHJ5VXJsLnNwbGl0KCIvIilbMF19IC11IHJlZ2lzdHJ5IC1wIFlPVVJfVE9LRU48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWxpbmUgY29kZS1jb21tZW50Ij4jIFRhZyBhbmQgcHVzaCB5b3VyIGltYWdlPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1saW5lIGNvZGUtY29tbWFuZCI+ZG9ja2VyIHRhZyBteWFwcCAke3RoaXMucmVnaXN0cnlVcmwuc3BsaXQoIi8iKVswXX0vbXlzZXJ2aWNlOmxhdGVzdDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtbGluZSBjb2RlLWNvbW1hbmQiPmRvY2tlciBwdXNoICR7dGhpcy5yZWdpc3RyeVVybC5zcGxpdCgiLyIpWzBdfS9teXNlcnZpY2U6bGF0ZXN0PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVNYW5hZ2VUb2tlbnMoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtYW5hZ2UtdG9rZW5zIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksaWFlKHRoaXMsZil9c3RhdGlje2lhZShhLHIpfX07cmV0dXJuIHA9YX0pKCl9KTt2YXIgWmFhLFE5dCxkQmEsUWFhPXUoKCk9Pnt2ZSgpO1phYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sUTl0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxkQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1yZWdpc3RyeS1leHRlcm5hbC12aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W107dmFyIGM9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6UmVnaXN0cnlFeHRlcm5hbFZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgZD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkFycmF5fSldLFphYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZ2lzdHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+InJlZ2lzdHJpZXMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5yZWdpc3RyaWVzLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YucmVnaXN0cmllcz1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksWmFhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXJlZ2lzdHJ5LWV4dGVybmFsLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1t7aWQ6IjEiLG5hbWU6IkRvY2tlciBIdWIiLHVybDoiZG9ja2VyLmlvIix1c2VybmFtZToibXl1c2VyIix0eXBlOiJkb2NrZXJodWIifSx7aWQ6IjIiLG5hbWU6IkdpdEh1YiBDb250YWluZXIgUmVnaXN0cnkiLHVybDoiZ2hjci5pbyIsdXNlcm5hbWU6Im15b3JnIix0eXBlOiJnaGNyIn1dfQogICAgICA+PC9zei1yZWdpc3RyeS1leHRlcm5hbC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXV0aCAmIFNldHRpbmdzIl07I2U9UTl0KHRoaXMsbyxbXSk7Z2V0IHJlZ2lzdHJpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcmVnaXN0cmllcyhkKXt0aGlzLiNlPWR9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5yZWdpc3RyeS1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LWljb24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAucmVnaXN0cnktZGV0YWlscyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAucmVnaXN0cnktbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LXVybCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnJlZ2lzdHJ5LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1pY29uIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMTZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuZW1wdHktdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj5FeHRlcm5hbCBSZWdpc3RyaWVzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkFkZCBjcmVkZW50aWFscyBmb3IgcHJpdmF0ZSBEb2NrZXIgcmVnaXN0cmllczwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxidXR0b24gY2xhc3M9ImFkZC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFkZCgpfT5BZGQgUmVnaXN0cnk8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMucmVnaXN0cmllcy5sZW5ndGg+MD93YAogICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWxpc3QiPgogICAgICAgICAgJHt0aGlzLnJlZ2lzdHJpZXMubWFwKGQ9PndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWl0ZW0iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWluZm8iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktaWNvbiI+CiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWRldGFpbHMiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpc3RyeS1uYW1lIj4ke2QubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVnaXN0cnktdXJsIj4ke2QudXJsfSAoJHtkLnVzZXJuYW1lfSk8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lzdHJ5LWFjdGlvbnMiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRWRpdChkKX0+RWRpdDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZShkKX0+RGVsZXRlPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJlbXB0eS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoiPjwvcGF0aD4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMy4yNyA2Ljk2IDEyIDEyLjAxIDIwLjczIDYuOTYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjIyLjA4IiB4Mj0iMTIiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS10aXRsZSI+Tm8gZXh0ZXJuYWwgcmVnaXN0cmllczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktZGVzY3JpcHRpb24iPkFkZCBjcmVkZW50aWFscyBmb3IgRG9ja2VyIEh1YiwgR2l0SHViIENvbnRhaW5lciBSZWdpc3RyeSwgb3Igb3RoZXIgcHJpdmF0ZSByZWdpc3RyaWVzLjwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZW1wdHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBZGQoKX0+QWRkIEV4dGVybmFsIFJlZ2lzdHJ5PC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9CiAgICBgfWhhbmRsZUFkZCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFkZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRWRpdChkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJlZGl0Iix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEZWxldGUoZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlIix7ZGV0YWlsOmQsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksUTl0KHRoaXMsbCl9c3RhdGlje1E5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgWGFhLFg5dCx1QmEsSmFhPXUoKCk9Pnt2ZSgpO1hhYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sWDl0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSx1QmE9KCgpPT57bGV0IHQ9W3VlKCJzei1zZXJ2aWNlcy1saXN0LXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pTZXJ2aWNlc0xpc3RWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxYYWEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJ2aWNlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4ic2VydmljZXMiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5zZXJ2aWNlcywiZ2V0Iiksc2V0OmkoKGYscCk9PntmLnNlcnZpY2VzPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxYYWEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2VzLWxpc3QtdmlldwogICAgICAgIC5zZXJ2aWNlcz0ke1t7bmFtZToidGVzdC1uZ2lueCIsaW1hZ2U6Im5naW54OmFscGluZSIsZG9tYWluOiJhcHAuYmxldS5kZSIsc3RhdHVzOiJydW5uaW5nIn0se25hbWU6ImhlbGxvLXdvcmxkIixpbWFnZToibG9jYWxob3N0OjMwMDAvaGVsbG8td29ybGQ6bGF0ZXN0Iixkb21haW46ImhlbGxvLnRhc2sudmMiLHN0YXR1czoicnVubmluZyJ9LHtuYW1lOiJ0ZXN0LXYyIixpbWFnZToibG9jYWxob3N0OjMwMDAvdGVzdC1yZWdpc3RyeTp2MSIsZG9tYWluOm51bGwsc3RhdHVzOiJydW5uaW5nIn0se25hbWU6ImFwaS1zZXJ2aWNlIixpbWFnZToibm9kZToxOC1hbHBpbmUiLGRvbWFpbjoiYXBpLmV4YW1wbGUuY29tIixzdGF0dXM6InN0b3BwZWQifV19CiAgICAgID48L3N6LXNlcnZpY2VzLWxpc3Qtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9WDl0KHRoaXMsbyxbXSk7Z2V0IHNlcnZpY2VzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlcnZpY2VzKGQpe3RoaXMuI2U9ZH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYmxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDJmciAxLjVmciAxMDBweCAyMDBweDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAudGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMmZyIDEuNWZyIDEwMHB4IDIwMHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAudGFibGUtcm93OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLW5hbWUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLW5hbWU6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuaW1hZ2UgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZG9tYWluLWxpbmsgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICAuZG9tYWluLWxpbms6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnJ1bm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnN0b3BwZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLnN0YXJ0aW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc3RvcCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnN0YXJ0IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjMpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5yZXN0YXJ0IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPk5hbWU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5JbWFnZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkRvbWFpbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlN0YXR1czwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkFjdGlvbnM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNlcnZpY2VzLmxlbmd0aD4wP3RoaXMuc2VydmljZXMubWFwKGQ9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yb3ciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VydmljZS1uYW1lIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZXJ2aWNlQ2xpY2soZCl9PiR7ZC5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImltYWdlIiB0aXRsZT0iJHtkLmltYWdlfSI+JHtkLmltYWdlfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgJHtkLmRvbWFpbj93YDxhIGNsYXNzPSJkb21haW4tbGluayIgaHJlZj0iaHR0cHM6Ly8ke2QuZG9tYWlufSIgdGFyZ2V0PSJfYmxhbmsiPiR7ZC5kb21haW59PC9hPmA6Ii0ifQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHtkLnN0YXR1c30iPiR7ZC5zdGF0dXN9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFjdGlvbnMiPgogICAgICAgICAgICAgICR7ZC5zdGF0dXM9PT0icnVubmluZyI/d2A8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHN0b3AiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbihkLCJzdG9wIil9PlN0b3A8L2J1dHRvbj5gOndgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBzdGFydCIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKGQsInN0YXJ0Iil9PlN0YXJ0PC9idXR0b24+YH0KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHJlc3RhcnQiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbihkLCJyZXN0YXJ0Iil9PlJlc3RhcnQ8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKGQsImRlbGV0ZSIpfT5EZWxldGU8L2J1dHRvbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCk6d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBzZXJ2aWNlcyBkZXBsb3llZDwvZGl2PgogICAgICAgIGB9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVTZXJ2aWNlQ2xpY2soZCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VydmljZS1jbGljayIse2RldGFpbDpkLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aW9uKGQsZil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VydmljZS1hY3Rpb24iLHtkZXRhaWw6e3NlcnZpY2U6ZCxhY3Rpb246Zn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksWDl0KHRoaXMsbCl9c3RhdGlje1g5dChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgSjl0LHNhZSxwQmEsZWlhPXUoKCk9Pnt2ZSgpO0o5dD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sc2FlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxwQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pTZXJ2aWNlc0JhY2t1cHNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOkFycmF5fSldLEo5dCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNjaGVkdWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4ic2NoZWR1bGVzImluIG0sImhhcyIpLGdldDppKG09Pm0uc2NoZWR1bGVzLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uc2NoZWR1bGVzPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxKOXQodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYWNrdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJiYWNrdXBzImluIG0sImhhcyIpLGdldDppKG09Pm0uYmFja3VwcywiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmJhY2t1cHM9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLEo5dChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otc2VydmljZXMtYmFja3Vwcy12aWV3CiAgICAgICAgLnNjaGVkdWxlcz0ke1t7aWQ6IjEiLHNjb3BlOiJBbGwgU2VydmljZXMiLHJldGVudGlvbjoiRDo3LCBXOjQsIE06MTIiLHNjaGVkdWxlOiIwIDIgKiAqICoiLGxhc3RSdW46IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixuZXh0UnVuOiIxLzMvMjAyNiwgMjowMDowMCBBTSIsc3RhdHVzOiJhY3RpdmUifV19CiAgICAgICAgLmJhY2t1cHM9JHtbe2lkOiIxIixzZXJ2aWNlOiJ0ZXN0LW5naW54IixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixzaXplOiIyMi4wIE1CIixpbmNsdWRlczpbIkltYWdlIl19LHtpZDoiMiIsc2VydmljZToiaGVsbG8td29ybGQiLGNyZWF0ZWRBdDoiMS8yLzIwMjYsIDI6MDA6MDIgQU0iLHNpemU6IjIxLjUgTUIiLGluY2x1ZGVzOlsiSW1hZ2UiXX0se2lkOiIzIixzZXJ2aWNlOiJ0ZXN0LWNoLWZpbmFsIixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAwIEFNIixzaXplOiIyMi4wIE1CIixpbmNsdWRlczpbIkltYWdlIiwiY2xpY2tob3VzZSJdfV19CiAgICAgID48L3N6LXNlcnZpY2VzLWJhY2t1cHMtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9c2FlKHRoaXMsbyxbXSk7Z2V0IHNjaGVkdWxlcygpe3JldHVybiB0aGlzLiNlfXNldCBzY2hlZHVsZXMoaCl7dGhpcy4jZT1ofSN0PShzYWUodGhpcyxsKSxzYWUodGhpcyxkLFtdKSk7Z2V0IGJhY2t1cHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYmFja3VwcyhoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkaW5nIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuc2VjdGlvbi1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnNjaGVkdWxlcy1oZWFkZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMS41ZnIgMS41ZnIgODBweCAxMjBweDsKICAgICAgfQoKICAgICAgLmJhY2t1cHMtaGVhZGVyIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDEuNWZyIDEwMHB4IDFmciAxMjBweDsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnNjaGVkdWxlcy1yb3cgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMS41ZnIgMS41ZnIgODBweCAxMjBweDsKICAgICAgfQoKICAgICAgLmJhY2t1cHMtcm93IHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDEuNWZyIDEwMHB4IDFmciAxMjBweDsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAudGFibGUtcm93OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5mYWlsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm1ldGEtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5pbmNsdWRlcy1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmluY2x1ZGUtYmFkZ2UgewogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnJvdy1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuaWNvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QmFja3VwIFNjaGVkdWxlczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkNvbmZpZ3VyZSBhdXRvbWF0ZWQgYmFja3VwIHNjaGVkdWxlcyBmb3IgeW91ciBzZXJ2aWNlczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciBzY2hlZHVsZXMtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuPlNjb3BlPC9zcGFuPgogICAgICAgICAgPHNwYW4+UmV0ZW50aW9uPC9zcGFuPgogICAgICAgICAgPHNwYW4+U2NoZWR1bGU8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5MYXN0IFJ1bjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPk5leHQgUnVuPC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgICAgPHNwYW4+QWN0aW9uczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc2NoZWR1bGVzLm1hcChoPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IHNjaGVkdWxlcy1yb3ciPgogICAgICAgICAgICA8c3Bhbj4ke2guc2NvcGV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0IiB0aXRsZT0iS2VlcDogJHtoLnJldGVudGlvbn0iPiR7aC5yZXRlbnRpb259PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke2guc2NoZWR1bGV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke2gubGFzdFJ1bnx8Ii0ifTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtdGV4dCI+JHtoLm5leHRSdW58fCItIn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtYmFkZ2UgJHtoLnN0YXR1c30iIHRpdGxlPSIke2guZXJyb3J8fCIifSI+CiAgICAgICAgICAgICAgICAke2guc3RhdHVzPT09ImFjdGl2ZSI/IkFjdGl2ZSI6aC5zdGF0dXM9PT0iZmFpbGVkIj8iRmFpbGVkIjoiRGlzYWJsZWQifQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icm93LWFjdGlvbnMiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iUnVuIGJhY2t1cCBub3ciIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJ1bk5vdyhoKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwb2x5Z29uIHBvaW50cz0iNSwzIDE5LDEyIDUsMjEiLz48L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IiR7aC5zdGF0dXM9PT0iZGlzYWJsZWQiPyJFbmFibGUiOiJEaXNhYmxlIn0iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVRvZ2dsZShoKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgJHtoLnN0YXR1cz09PSJkaXNhYmxlZCI/d2A8cG9seWxpbmUgcG9pbnRzPSIyMCA2IDkgMTcgNCAxMiI+PC9wb2x5bGluZT5gOndgPHJlY3QgeD0iNiIgeT0iNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMSIvPmB9CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiBkYW5nZXIiIHRpdGxlPSJEZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZVNjaGVkdWxlKGgpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLDYgNSw2IDIxLDYiLz48cGF0aCBkPSJNMTksNnYxNGEyLDIsMCwwLDEtMiwySDdhMiwyLDAsMCwxLTItMlY2bTMsMFY0YTIsMiwwLDAsMSwyLTJoNGEyLDIsMCwwLDEsMiwydjIiLz4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVJbXBvcnQoKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTcgOCAxMiAzIDcgOCIvPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjMiIHgyPSIxMiIgeTI9IjE1Ii8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBJbXBvcnQgQmFja3VwCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZVNjaGVkdWxlKCl9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBDcmVhdGUgU2NoZWR1bGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QWxsIEJhY2t1cHM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5Ccm93c2UgYW5kIG1hbmFnZSBhbGwgYmFja3VwcyBhY3Jvc3Mgc2VydmljZXM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIgYmFja3Vwcy1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+U2VydmljZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkNyZWF0ZWQ8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TaXplPC9zcGFuPgogICAgICAgICAgPHNwYW4+SW5jbHVkZXM8L3NwYW4+CiAgICAgICAgICA8c3Bhbj5BY3Rpb25zPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5iYWNrdXBzLm1hcChoPT53YAogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcm93IGJhY2t1cHMtcm93Ij4KICAgICAgICAgICAgPHNwYW4+JHtoLnNlcnZpY2V9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0YS10ZXh0Ij4ke2guY3JlYXRlZEF0fTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldGEtdGV4dCI+JHtoLnNpemV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5jbHVkZXMtbGlzdCI+CiAgICAgICAgICAgICAgJHtoLmluY2x1ZGVzLm1hcChtPT53YDxzcGFuIGNsYXNzPSJpbmNsdWRlLWJhZGdlIj4ke219PC9zcGFuPmApfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyb3ctYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIHRpdGxlPSJEb3dubG9hZCBiYWNrdXAiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURvd25sb2FkKGgpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIvPgogICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI3IDEwIDEyIDE1IDE3IDEwIi8+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE1IiB4Mj0iMTIiIHkyPSIzIi8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiBkYW5nZXIiIHRpdGxlPSJEZWxldGUiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURlbGV0ZUJhY2t1cChoKX0+CiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMyw2IDUsNiAyMSw2Ii8+PHBhdGggZD0iTTE5LDZ2MTRhMiwyLDAsMCwxLTIsMkg3YTIsMiwwLDAsMS0yLTJWNm0zLDBWNGEyLDIsMCwwLDEsMi0yaDRhMiwyLDAsMCwxLDIsMnYyIi8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1oYW5kbGVJbXBvcnQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbXBvcnQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNyZWF0ZVNjaGVkdWxlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY3JlYXRlLXNjaGVkdWxlIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSdW5Ob3coaCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLW5vdyIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlVG9nZ2xlKGgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRvZ2dsZS1zY2hlZHVsZSIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlU2NoZWR1bGUoaCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlLXNjaGVkdWxlIix7ZGV0YWlsOmgsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVEb3dubG9hZChoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkb3dubG9hZCIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlQmFja3VwKGgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZS1iYWNrdXAiLHtkZXRhaWw6aCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxzYWUodGhpcyxmKX1zdGF0aWN7c2FlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBDMyxxbixmQmEsdGlhPXUoKCk9Pnt2ZSgpO0MzPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxxbj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZkJhPSgoKT0+e2xldCB0PVt1ZSgic3otc2VydmljZS1kZXRhaWwtdmlldyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdO3ZhciBBPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelNlcnZpY2VEZXRhaWxWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0ICQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sYz1bUCh7dHlwZTpPYmplY3R9KV0scD1bUCh7dHlwZTpBcnJheX0pXSx2PVtQKHt0eXBlOkFycmF5fSldLHk9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxOPVtQKHt0eXBlOk9iamVjdH0pXSxPPVtQKHt0eXBlOlN0cmluZ30pXSxCPVtpZSgpXSxDMyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcnZpY2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+InNlcnZpY2UiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5zZXJ2aWNlLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0Yuc2VydmljZT1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LG8sbCksQzModGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShGPT4ic3RhdHMiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5zdGF0cywiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLnN0YXRzPVl9LCJzZXQiKX0sbWV0YWRhdGE6JH0sZCxmKSxDMyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJhY2t1cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+ImJhY2t1cHMiaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5iYWNrdXBzLCJnZXQiKSxzZXQ6aSgoRixZKT0+e0YuYmFja3Vwcz1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LGgsbSksQzModGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJsb2dzImluIEYsImhhcyIpLGdldDppKEY9PkYubG9ncywiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLmxvZ3M9WX0sInNldCIpfSxtZXRhZGF0YTokfSxiLGcpLEMzKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RyZWFtaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJzdHJlYW1pbmciaW4gRiwiaGFzIiksZ2V0OmkoRj0+Ri5zdHJlYW1pbmcsImdldCIpLHNldDppKChGLFkpPT57Ri5zdHJlYW1pbmc9WX0sInNldCIpfSxtZXRhZGF0YTokfSxrLE0pLEMzKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid29ya3NwYWNlRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+IndvcmtzcGFjZUVudmlyb25tZW50ImluIEYsImhhcyIpLGdldDppKEY9PkYud29ya3NwYWNlRW52aXJvbm1lbnQsImdldCIpLHNldDppKChGLFkpPT57Ri53b3Jrc3BhY2VFbnZpcm9ubWVudD1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LF8sUyksQzModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3Jrc3BhY2VQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKEY9PiJ3b3Jrc3BhY2VQYXRoImluIEYsImhhcyIpLGdldDppKEY9PkYud29ya3NwYWNlUGF0aCwiZ2V0Iiksc2V0OmkoKEYsWSk9PntGLndvcmtzcGFjZVBhdGg9WX0sInNldCIpfSxtZXRhZGF0YTokfSxMLEUpLEMzKHRoaXMsbnVsbCxCLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoRj0+ImN1cnJlbnRWaWV3ImluIEYsImhhcyIpLGdldDppKEY9PkYuY3VycmVudFZpZXcsImdldCIpLHNldDppKChGLFkpPT57Ri5jdXJyZW50Vmlldz1ZfSwic2V0Iil9LG1ldGFkYXRhOiR9LEMseiksQzMobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6JH0sbnVsbCxyKSxBPWE9ZS52YWx1ZSwkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOiR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMjAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3tuYW1lOiJ0ZXN0LW5naW54IixzdGF0dXM6InJ1bm5pbmciLGltYWdlOiJuZ2lueDphbHBpbmUiLHBvcnQ6ODAsZG9tYWluOiJhcHAuYmxldS5kZSIsY29udGFpbmVySWQ6InBjaGJicjlmanI0ZyIsY3JlYXRlZDoiMTEvMTgvMjAyNSwgMjowNjo1NSBQTSIsdXBkYXRlZDoiMTEvMjYvMjAyNSwgNDowNTo0NiBQTSIscmVnaXN0cnk6IkRvY2tlciBIdWIiLHJlcG9zaXRvcnk6Im5naW54Iix0YWc6ImFscGluZSJ9fQogICAgICAgIC5zdGF0cz0ke3tjcHU6LjUsbWVtb3J5OiIzMi4xIE1CIixtZW1vcnlMaW1pdDoiNjEuMyBHQiIsbmV0d29ya0luOiI2LjQgS0IiLG5ldHdvcmtPdXQ6IjI1MiBCIn19CiAgICAgICAgLmJhY2t1cHM9JHtbe2lkOiIxIixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixzaXplOiIyMS45NiBNQiIsdHlwZToiRG9ja2VyIEltYWdlIn0se2lkOiIyIixjcmVhdGVkQXQ6IjExLzI3LzIwMjUsIDE6NDI6MjYgUE0iLHNpemU6IjUxLjc2IE1CIix0eXBlOiJEb2NrZXIgSW1hZ2UifV19CiAgICAgICAgLmxvZ3M9JHtbe3RpbWVzdGFtcDoiMjAyNC0wMS0wMiAxMDoxNTozMiIsbWVzc2FnZTonMTkyLjE2OC4xLjEwMCAtIC0gWzAyL0phbi8yMDI0OjEwOjE1OjMyICswMDAwXSAiR0VUIC8gSFRUUC8xLjEiIDIwMCA2MTInfSx7dGltZXN0YW1wOiIyMDI0LTAxLTAyIDEwOjE1OjMwIixtZXNzYWdlOicxOTIuMTY4LjEuMTAwIC0gLSBbMDIvSmFuLzIwMjQ6MTA6MTU6MzAgKzAwMDBdICJHRVQgL2Zhdmljb24uaWNvIEhUVFAvMS4xIiA0MDQgMTUzJ31dfQogICAgICA+PC9zei1zZXJ2aWNlLWRldGFpbC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2VydmljZXMiXTsjZT1xbih0aGlzLG8se25hbWU6IiIsc3RhdHVzOiJzdG9wcGVkIixpbWFnZToiIixwb3J0OjAsZG9tYWluOm51bGwsY29udGFpbmVySWQ6IiIsY3JlYXRlZDoiIix1cGRhdGVkOiIiLHJlZ2lzdHJ5OiIiLHJlcG9zaXRvcnk6IiIsdGFnOiIifSk7Z2V0IHNlcnZpY2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VydmljZSgkKXt0aGlzLiNlPSR9I3Q9KHFuKHRoaXMsbCkscW4odGhpcyxkLHtjcHU6MCxtZW1vcnk6IjAgTUIiLG1lbW9yeUxpbWl0OiIwIEdCIixuZXR3b3JrSW46IjAgQiIsbmV0d29ya091dDoiMCBCIn0pKTtnZXQgc3RhdHMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3RhdHMoJCl7dGhpcy4jdD0kfSNyPShxbih0aGlzLGYpLHFuKHRoaXMsaCxbXSkpO2dldCBiYWNrdXBzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGJhY2t1cHMoJCl7dGhpcy4jcj0kfSNhPShxbih0aGlzLG0pLHFuKHRoaXMsYixbXSkpO2dldCBsb2dzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGxvZ3MoJCl7dGhpcy4jYT0kfSNpPShxbih0aGlzLGcpLHFuKHRoaXMsaywhMSkpO2dldCBzdHJlYW1pbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc3RyZWFtaW5nKCQpe3RoaXMuI2k9JH0jcz0ocW4odGhpcyxNKSxxbih0aGlzLF8sbnVsbCkpO2dldCB3b3Jrc3BhY2VFbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNzfXNldCB3b3Jrc3BhY2VFbnZpcm9ubWVudCgkKXt0aGlzLiNzPSR9I249KHFuKHRoaXMsUykscW4odGhpcyxMLCIvIikpO2dldCB3b3Jrc3BhY2VQYXRoKCl7cmV0dXJuIHRoaXMuI259c2V0IHdvcmtzcGFjZVBhdGgoJCl7dGhpcy4jbj0kfSNvPShxbih0aGlzLEUpLHFuKHRoaXMsQywiZGV0YWlscyIpKTtnZXQgY3VycmVudFZpZXcoKXtyZXR1cm4gdGhpcy4jb31zZXQgY3VycmVudFZpZXcoJCl7dGhpcy4jbz0kfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5iYWNrLWxpbmsgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5iYWNrLWxpbms6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucnVubmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2Uuc3RvcHBlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkgewogICAgICAgIC5jb250ZW50IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tYWluLWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAuY2FyZC1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHggMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5jYXJkLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuY2FyZC10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmNhcmQtc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jYXJkLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICB9CgogICAgICAuY2FyZC1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZGV0YWlsLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgfQoKICAgICAgLmRldGFpbC12YWx1ZSBhIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLmRldGFpbC12YWx1ZSBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zdGF0LWl0ZW0gewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgfQoKICAgICAgLnN0YXQtbGFiZWwgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdGF0LXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc3RhdC1zdWJ2YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGFuZ2VyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kYW5nZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLmJhY2t1cC1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5iYWNrdXAtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5iYWNrdXAtaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuYmFja3VwLWRhdGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYmFja3VwLW1ldGEgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuYmFja3VwLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50YWctYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgOmhvc3QoLndvcmtzcGFjZS1tb2RlKSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtYmFjay1saW5rIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2UtYmFjay1saW5rOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxZDRlZDgiLCIjOTNjNWZkIil9OwogICAgICB9CgogICAgICAud29ya3NwYWNlLXNlcnZpY2UtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC53b3Jrc3BhY2Utc3RhdHVzLWJhZGdlLnJ1bm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1zdGF0dXMtYmFkZ2Uuc3RvcHBlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlZjQ0NDQiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXc9PT0id29ya3NwYWNlIj90aGlzLnJlbmRlcldvcmtzcGFjZVZpZXcoKTp0aGlzLnJlbmRlckRldGFpbHNWaWV3KCl9cmVuZGVyV29ya3NwYWNlVmlldygpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ3b3Jrc3BhY2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ3b3Jrc3BhY2UtYmFjay1saW5rIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDbG9zZVdvcmtzcGFjZSgpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTUgMTggOSAxMiAxNSA2Ij48L3BvbHlsaW5lPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgQmFjayB0byBEZXRhaWxzCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3b3Jrc3BhY2Utc2VydmljZS1uYW1lIj4ke3RoaXMuc2VydmljZS5uYW1lfTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3b3Jrc3BhY2Utc3RhdHVzLWJhZGdlICR7dGhpcy5zZXJ2aWNlLnN0YXR1c30iPjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3b3Jrc3BhY2UtY29udGFpbmVyIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZSAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLndvcmtzcGFjZUVudmlyb25tZW50fT48L2RlZXMtd29ya3NwYWNlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGV0YWlsc1ZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrLWxpbmsiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUJhY2soKX0+CiAgICAgICAgICA8c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMTUgMTggOSAxMiAxNSA2Ij48L3BvbHlsaW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1oZWFkZXIiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAyNHB4OyI+CiAgICAgICAgPGgxIGNsYXNzPSJzZXJ2aWNlLW5hbWUiPiR7dGhpcy5zZXJ2aWNlLm5hbWV9PC9oMT4KICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7dGhpcy5zZXJ2aWNlLnN0YXR1c30iPiR7dGhpcy5zZXJ2aWNlLnN0YXR1c308L3NwYW4+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi1jb250ZW50Ij4KICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+U2VydmljZSBEZXRhaWxzPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtbGlzdCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkltYWdlPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke3RoaXMuc2VydmljZS5pbWFnZX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+UG9ydDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UucG9ydH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+RG9tYWluPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgICAke3RoaXMuc2VydmljZS5kb21haW4/d2A8YSBocmVmPSJodHRwczovLyR7dGhpcy5zZXJ2aWNlLmRvbWFpbn0iIHRhcmdldD0iX2JsYW5rIj4ke3RoaXMuc2VydmljZS5kb21haW59PC9hPmA6Ii0ifQogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+Q29udGFpbmVyIElEPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke3RoaXMuc2VydmljZS5jb250YWluZXJJZH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+Q3JlYXRlZDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UuY3JlYXRlZH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+VXBkYXRlZDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UudXBkYXRlZH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iY2FyZC1mb290ZXIiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUVkaXQoKX0+RWRpdDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgICAgICAubGFiZWw9JHsiU2VydmljZSBMb2dzIn0KICAgICAgICAgICAgLmxvZ0VudHJpZXM9JHt0aGlzLmxvZ3MubWFwKCQ9Pih7dGltZXN0YW1wOiQudGltZXN0YW1wPy5pbmNsdWRlcz8uKCJUIik/JC50aW1lc3RhbXA6bmV3IERhdGUoJC50aW1lc3RhbXB8fERhdGUubm93KCkpLnRvSVNPU3RyaW5nKCksbGV2ZWw6JC5sZXZlbHx8ImluZm8iLG1lc3NhZ2U6JC5tZXNzYWdlfSkpfQogICAgICAgICAgICAuYXV0b1Njcm9sbD0keyEwfQogICAgICAgICAgICAubWF4RW50cmllcz0kezJlM30KICAgICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWNoYXJ0LWxvZz4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciI+CiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkxpdmUgc3RhdHM8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXRzLWdyaWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+Q1BVPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPiR7dGhpcy5zdGF0cy5jcHUudG9GaXhlZCgxKX0lPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtbGFiZWwiPk1lbW9yeTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LXZhbHVlIj4ke3RoaXMuc3RhdHMubWVtb3J5fTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LXN1YnZhbHVlIj5vZiAke3RoaXMuc3RhdHMubWVtb3J5TGltaXR9PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtbGFiZWwiPk5ldHdvcmsgSW48L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC12YWx1ZSI+JHt0aGlzLnN0YXRzLm5ldHdvcmtJbn08L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+TmV0d29yayBPdXQ8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC12YWx1ZSI+JHt0aGlzLnN0YXRzLm5ldHdvcmtPdXR9PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkFjdGlvbnM8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+TWFuYWdlIHNlcnZpY2Ugc3RhdGU8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMtZ3JpZCI+CiAgICAgICAgICAgICAgICAke3RoaXMuc2VydmljZS5zdGF0dXM9PT0icnVubmluZyI/d2A8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oInN0b3AiKX0+U3RvcCBTZXJ2aWNlPC9idXR0b24+YDp3YDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbigic3RhcnQiKX0+U3RhcnQgU2VydmljZTwvYnV0dG9uPmB9CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oInJlc3RhcnQiKX0+UmVzdGFydCBTZXJ2aWNlPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVPcGVuV29ya3NwYWNlKCl9PgogICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBtYXJnaW4tcmlnaHQ6IDRweDsiPgogICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjQgMTcgMTAgMTEgNCA1Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE5IiB4Mj0iMjAiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgT3BlbiBXb3Jrc3BhY2UKICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbigiZGVsZXRlIil9PkRlbGV0ZSBTZXJ2aWNlPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5JbWFnZSBTb3VyY2U8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+JHt0aGlzLnNlcnZpY2UucmVnaXN0cnk9PT0iRG9ja2VyIEh1YiI/IkV4dGVybmFsIGNvbnRhaW5lciByZWdpc3RyeSI6Ik9uZWJveCByZWdpc3RyeSJ9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtbGlzdCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlJlZ2lzdHJ5PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke3RoaXMuc2VydmljZS5yZWdpc3RyeX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+UmVwb3NpdG9yeTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHt0aGlzLnNlcnZpY2UucmVwb3NpdG9yeX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+VGFnPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj48c3BhbiBjbGFzcz0idGFnLWJhZGdlIj4ke3RoaXMuc2VydmljZS50YWd9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0iY2FyZC1oZWFkZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGluZyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+QmFja3Vwczwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXN1YnRpdGxlIj5DcmVhdGUgYW5kIG1hbmFnZSBzZXJ2aWNlIGJhY2t1cHM8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2t1cC1saXN0Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5iYWNrdXBzLm1hcCgkPT53YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrdXAtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFja3VwLWluZm8iPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFja3VwLWRhdGUiPiR7JC5jcmVhdGVkQXR9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWNrdXAtbWV0YSI+JHskLnNpemV9IMK3ICR7JC50eXBlfTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhY2t1cC1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iRG93bmxvYWQiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURvd25sb2FkQmFja3VwKCQpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI3IDEwIDEyIDE1IDE3IDEwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTUiIHgyPSIxMiIgeTI9IjMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iUmVzdG9yZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUmVzdG9yZUJhY2t1cCgkKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjEgNCAxIDEwIDcgMTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMy41MSAxNWE5IDkgMCAxIDAgMi4xMy05LjM2TDEgMTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiB0aXRsZT0iRGVsZXRlIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZWxldGVCYWNrdXAoJCl9PgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIzLDYgNSw2IDIxLDYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTksNnYxNGEyLDIsMCwwLDEtMiwySDdhMiwyLDAsMCwxLTItMlY2bTMsMFY0YTIsMiwwLDAsMSwyLTJoNGEyLDIsMCwwLDEsMiwydjIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iY2FyZC1mb290ZXIiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZUJhY2t1cCgpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICBDcmVhdGUgQmFja3VwCiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVCYWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmFjayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRWRpdCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImVkaXQiLHtkZXRhaWw6dGhpcy5zZXJ2aWNlLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aW9uKCQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlcnZpY2UtYWN0aW9uIix7ZGV0YWlsOntzZXJ2aWNlOnRoaXMuc2VydmljZSxhY3Rpb246JH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX10b2dnbGVTdHJlYW1pbmcoKXt0aGlzLnN0cmVhbWluZz0hdGhpcy5zdHJlYW1pbmcsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic3RyZWFtLXRvZ2dsZSIse2RldGFpbDp7c3RyZWFtaW5nOnRoaXMuc3RyZWFtaW5nfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNsZWFyTG9ncygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsZWFyLWxvZ3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNyZWF0ZUJhY2t1cCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNyZWF0ZS1iYWNrdXAiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURvd25sb2FkQmFja3VwKCQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRvd25sb2FkLWJhY2t1cCIse2RldGFpbDokLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUmVzdG9yZUJhY2t1cCgkKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXN0b3JlLWJhY2t1cCIse2RldGFpbDokLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlQmFja3VwKCQpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZS1iYWNrdXAiLHtkZXRhaWw6JCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZU9wZW5Xb3Jrc3BhY2UoKXt0aGlzLndvcmtzcGFjZUVudmlyb25tZW50Pyh0aGlzLmN1cnJlbnRWaWV3PSJ3b3Jrc3BhY2UiLHRoaXMuY2xhc3NMaXN0LmFkZCgid29ya3NwYWNlLW1vZGUiKSk6dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVxdWVzdC13b3Jrc3BhY2UiLHtkZXRhaWw6e3NlcnZpY2U6dGhpcy5zZXJ2aWNlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNsb3NlV29ya3NwYWNlKCl7dGhpcy5jdXJyZW50Vmlldz0iZGV0YWlscyIsdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJ3b3Jrc3BhY2UtbW9kZSIpfXVwZGF0ZWQoJCl7c3VwZXIudXBkYXRlZCgkKSwkLmhhcygid29ya3NwYWNlRW52aXJvbm1lbnQiKSYmdGhpcy53b3Jrc3BhY2VFbnZpcm9ubWVudCYmdGhpcy5jdXJyZW50Vmlldz09PSJkZXRhaWxzIiYmKHRoaXMuY3VycmVudFZpZXc9IndvcmtzcGFjZSIsdGhpcy5jbGFzc0xpc3QuYWRkKCJ3b3Jrc3BhY2UtbW9kZSIpKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscW4odGhpcyx6KX1zdGF0aWN7cW4oYSxyKX19O3JldHVybiBBPWF9KSgpfSk7dmFyIHJtZSx2ZyxoQmEscmlhPXUoKCk9Pnt2ZSgpO3JtZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdmc9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGhCYT0oKCk9PntsZXQgdD1bdWUoInN6LWFwcC1zdG9yZS12aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6QXBwU3RvcmVWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtpZSgpXSxwPVtpZSgpXSxybWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJhcHBzImluIGcsImhhcyIpLGdldDppKGc9PmcuYXBwcywiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmFwcHM9eX0sInNldCIpfSxtZXRhZGF0YTpifSxvLGwpLHJtZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkQ2F0ZWdvcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InNlbGVjdGVkQ2F0ZWdvcnkiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5zZWxlY3RlZENhdGVnb3J5LCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuc2VsZWN0ZWRDYXRlZ29yeT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGQsZikscm1lKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+InNlYXJjaFF1ZXJ5ImluIGcsImhhcyIpLGdldDppKGc9Pmcuc2VhcmNoUXVlcnksImdldCIpLHNldDppKChnLHkpPT57Zy5zZWFyY2hRdWVyeT15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSkscm1lKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1hcHAtc3RvcmUtdmlldwogICAgICAgIC5hcHBzPSR7W3tpZDoid29yZHByZXNzIixuYW1lOiJXb3JkUHJlc3MiLGRlc2NyaXB0aW9uOiJUaGUgd29ybGQncyBtb3N0IHBvcHVsYXIgb3Blbi1zb3VyY2UgY29udGVudCBtYW5hZ2VtZW50IHN5c3RlbSBmb3IgYnVpbGRpbmcgd2Vic2l0ZXMgYW5kIGJsb2dzLiIsY2F0ZWdvcnk6IkNNUyIsaWNvbk5hbWU6ImZpbGUtdGV4dCIsaW1hZ2U6IndvcmRwcmVzczpsYXRlc3QiLHBvcnQ6ODAsZW52VmFyczpbe2tleToiV09SRFBSRVNTX0RCX0hPU1QiLHZhbHVlOiIiLGRlc2NyaXB0aW9uOiJEYXRhYmFzZSBob3N0IGFkZHJlc3MiLHJlcXVpcmVkOiEwfSx7a2V5OiJXT1JEUFJFU1NfREJfVVNFUiIsdmFsdWU6IndvcmRwcmVzcyIsZGVzY3JpcHRpb246IkRhdGFiYXNlIHVzZXJuYW1lIixyZXF1aXJlZDohMH0se2tleToiV09SRFBSRVNTX0RCX1BBU1NXT1JEIix2YWx1ZToiIixkZXNjcmlwdGlvbjoiRGF0YWJhc2UgcGFzc3dvcmQiLHJlcXVpcmVkOiEwfSx7a2V5OiJXT1JEUFJFU1NfREJfTkFNRSIsdmFsdWU6IndvcmRwcmVzcyIsZGVzY3JpcHRpb246IkRhdGFiYXNlIG5hbWUiLHJlcXVpcmVkOiEwfV0sdm9sdW1lczpbIi92YXIvd3d3L2h0bWwiXSxlbmFibGVNb25nb0RCOiExLGVuYWJsZVMzOiExfSx7aWQ6ImdpdGVhIixuYW1lOiJHaXRlYSIsZGVzY3JpcHRpb246IkEgbGlnaHR3ZWlnaHQsIHNlbGYtaG9zdGVkIEdpdCBzZXJ2aWNlLiBQYWlubGVzcyBzZXR1cCBmb3IgeW91ciBvd24gY29kZSBob3N0aW5nIHBsYXRmb3JtLiIsY2F0ZWdvcnk6IkRldmVsb3BtZW50IixpY29uTmFtZToiZ2l0LWJyYW5jaCIsaW1hZ2U6ImdpdGVhL2dpdGVhOmxhdGVzdCIscG9ydDozZTMsZW52VmFyczpbe2tleToiR0lURUFfX2RhdGFiYXNlX19EQl9UWVBFIix2YWx1ZToic3FsaXRlMyIsZGVzY3JpcHRpb246IkRhdGFiYXNlIHR5cGUiLHJlcXVpcmVkOiEwfSx7a2V5OiJHSVRFQV9fc2VydmVyX19ST09UX1VSTCIsdmFsdWU6IiIsZGVzY3JpcHRpb246IlB1YmxpYyBVUkwgb2YgdGhlIEdpdGVhIGluc3RhbmNlIixyZXF1aXJlZDohMX1dLHZvbHVtZXM6WyIvZGF0YSJdfSx7aWQ6Imdob3N0IixuYW1lOiJHaG9zdCIsZGVzY3JpcHRpb246IkEgcG93ZXJmdWwgb3Blbi1zb3VyY2UgcHVibGlzaGluZyBwbGF0Zm9ybSBmb3IgcHJvZmVzc2lvbmFsIGJsb2dnZXJzIGFuZCBjb250ZW50IGNyZWF0b3JzLiIsY2F0ZWdvcnk6IkNNUyIsaWNvbk5hbWU6ImJvb2stb3BlbiIsaW1hZ2U6Imdob3N0OmxhdGVzdCIscG9ydDoyMzY4LGVudlZhcnM6W3trZXk6InVybCIsdmFsdWU6IiIsZGVzY3JpcHRpb246IlB1YmxpYyBVUkwgZm9yIHRoZSBHaG9zdCBzaXRlIixyZXF1aXJlZDohMH0se2tleToiZGF0YWJhc2VfX2NsaWVudCIsdmFsdWU6InNxbGl0ZTMiLGRlc2NyaXB0aW9uOiJEYXRhYmFzZSBjbGllbnQgdHlwZSIscmVxdWlyZWQ6ITF9XSx2b2x1bWVzOlsiL3Zhci9saWIvZ2hvc3QvY29udGVudCJdfSx7aWQ6Im5naW54IixuYW1lOiJOZ2lueCIsZGVzY3JpcHRpb246IkhpZ2gtcGVyZm9ybWFuY2UgSFRUUCBzZXJ2ZXIgYW5kIHJldmVyc2UgcHJveHkgd2l0aCBsb3cgcmVzb3VyY2UgY29uc3VtcHRpb24uIixjYXRlZ29yeToiV2ViIFNlcnZlciIsaWNvbk5hbWU6Imdsb2JlIixpbWFnZToibmdpbng6YWxwaW5lIixwb3J0OjgwLHZvbHVtZXM6WyIvdXNyL3NoYXJlL25naW54L2h0bWwiLCIvZXRjL25naW54L2NvbmYuZCJdfSx7aWQ6InJlZGlzIixuYW1lOiJSZWRpcyIsZGVzY3JpcHRpb246IkluLW1lbW9yeSBkYXRhIHN0b3JlIHVzZWQgYXMgYSBkYXRhYmFzZSwgY2FjaGUsIHN0cmVhbWluZyBlbmdpbmUsIGFuZCBtZXNzYWdlIGJyb2tlci4iLGNhdGVnb3J5OiJEYXRhYmFzZSIsaWNvbk5hbWU6ImRhdGFiYXNlIixpbWFnZToicmVkaXM6YWxwaW5lIixwb3J0OjYzNzl9LHtpZDoicG9zdGdyZXMiLG5hbWU6IlBvc3RncmVTUUwiLGRlc2NyaXB0aW9uOiJBZHZhbmNlZCBvcGVuLXNvdXJjZSByZWxhdGlvbmFsIGRhdGFiYXNlIHdpdGggc3Ryb25nIHJlbGlhYmlsaXR5IGFuZCBmZWF0dXJlIHNldC4iLGNhdGVnb3J5OiJEYXRhYmFzZSIsaWNvbk5hbWU6ImRhdGFiYXNlIixpbWFnZToicG9zdGdyZXM6MTYtYWxwaW5lIixwb3J0OjU0MzIsZW52VmFyczpbe2tleToiUE9TVEdSRVNfVVNFUiIsdmFsdWU6InBvc3RncmVzIixkZXNjcmlwdGlvbjoiU3VwZXJ1c2VyIHVzZXJuYW1lIixyZXF1aXJlZDohMH0se2tleToiUE9TVEdSRVNfUEFTU1dPUkQiLHZhbHVlOiIiLGRlc2NyaXB0aW9uOiJTdXBlcnVzZXIgcGFzc3dvcmQiLHJlcXVpcmVkOiEwfSx7a2V5OiJQT1NUR1JFU19EQiIsdmFsdWU6InBvc3RncmVzIixkZXNjcmlwdGlvbjoiRGVmYXVsdCBkYXRhYmFzZSBuYW1lIixyZXF1aXJlZDohMX1dLHZvbHVtZXM6WyIvdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGEiXX1dfQogICAgICA+PC9zei1hcHAtc3RvcmUtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlNlcnZpY2VzIl07I2U9dmcodGhpcyxvLFtdKTtnZXQgYXBwcygpe3JldHVybiB0aGlzLiNlfXNldCBhcHBzKGIpe3RoaXMuI2U9Yn0jdD0odmcodGhpcyxsKSx2Zyh0aGlzLGQsIkFsbCIpKTtnZXQgc2VsZWN0ZWRDYXRlZ29yeSgpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZENhdGVnb3J5KGIpe3RoaXMuI3Q9Yn0jcj0odmcodGhpcyxmKSx2Zyh0aGlzLGgsIiIpKTtnZXQgc2VhcmNoUXVlcnkoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VhcmNoUXVlcnkoYil7dGhpcy4jcj1ifXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaGVhZGVyLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuY2F0ZWdvcnktcGlsbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuY2F0ZWdvcnktcGlsbCB7CiAgICAgICAgcGFkZGluZzogNnB4IDE0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmNhdGVnb3J5LXBpbGw6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jYXRlZ29yeS1waWxsLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQgewogICAgICAgIHdpZHRoOiAyNDBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHggMzZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyMDBtcyBlYXNlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuYXBwLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHsKICAgICAgICAuYXBwLWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkgewogICAgICAgIC5hcHAtZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CgogICAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgICB9CgogICAgICAgIC5zZWFyY2gtaW5wdXQgewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgfQogICAgICB9CgogICAgICAuYXBwLWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5hcHAtY2FyZDpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCAke3guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjA1KSIsInJnYmEoMCwwLDAsMC4yKSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgIH0KCiAgICAgIC5jYXJkLXRvcCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5hcHAtaWNvbiB7CiAgICAgICAgd2lkdGg6IDQ0cHg7CiAgICAgICAgaGVpZ2h0OiA0NHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuYXBwLWljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMjJweDsKICAgICAgICBoZWlnaHQ6IDIycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmFwcC1pY29uIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAuYXBwLWljb24gLmxldHRlci1mYWxsYmFjayB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLmNhcmQtaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5hcHAtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAuY2F0ZWdvcnktYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWZmNmZmIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5hcHAtZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyOwogICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAuY2FyZC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzFhMWExZSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAuaW1hZ2UtdGFnIHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBtYXgtd2lkdGg6IDE2MHB4OwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA3cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMC44NTsKICAgICAgfQoKICAgICAgLmRlcGxveS1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWxzLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA3cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWxzLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNhcmQtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7CiAgICAgICAgcGFkZGluZzogNjRweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmVtcHR5LWljb24gewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO2dldCBjYXRlZ29yaWVzKCl7bGV0IGI9bmV3IFNldCh0aGlzLmFwcHMubWFwKGc9PmcuY2F0ZWdvcnkpKTtyZXR1cm5bIkFsbCIsLi4uQXJyYXkuZnJvbShiKS5zb3J0KCldfWdldCBmaWx0ZXJlZEFwcHMoKXtsZXQgYj10aGlzLmFwcHM7aWYodGhpcy5zZWxlY3RlZENhdGVnb3J5IT09IkFsbCImJihiPWIuZmlsdGVyKGc9PmcuY2F0ZWdvcnk9PT10aGlzLnNlbGVjdGVkQ2F0ZWdvcnkpKSx0aGlzLnNlYXJjaFF1ZXJ5LnRyaW0oKSl7bGV0IGc9dGhpcy5zZWFyY2hRdWVyeS50cmltKCkudG9Mb3dlckNhc2UoKTtiPWIuZmlsdGVyKHk9PnkubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGcpfHx5LmRlc2NyaXB0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZyl8fHkuY2F0ZWdvcnkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhnKSl9cmV0dXJuIGJ9cmVuZGVyKCl7bGV0IGI9dGhpcy5maWx0ZXJlZEFwcHM7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRpdGxlIj5BcHAgU3RvcmU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkRlcGxveSBwb3B1bGFyIGFwcGxpY2F0aW9ucyB3aXRoIG9uZSBjbGljazwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1iYXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhdGVnb3J5LXBpbGxzIj4KICAgICAgICAgICR7dGhpcy5jYXRlZ29yaWVzLm1hcChnPT53YAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJjYXRlZ29yeS1waWxsICR7dGhpcy5zZWxlY3RlZENhdGVnb3J5PT09Zz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e3RoaXMuc2VsZWN0ZWRDYXRlZ29yeT1nfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke2d9CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC13cmFwcGVyIj4KICAgICAgICAgIDxzdmcgY2xhc3M9InNlYXJjaC1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4Ij48L2NpcmNsZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjIxIiB5MT0iMjEiIHgyPSIxNi42NSIgeTI9IjE2LjY1Ij48L2xpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICBjbGFzcz0ic2VhcmNoLWlucHV0IgogICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGFwcHMuLi4iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VhcmNoUXVlcnl9CiAgICAgICAgICAgIEBpbnB1dD0ke2c9Pnt0aGlzLnNlYXJjaFF1ZXJ5PWcudGFyZ2V0LnZhbHVlfX0KICAgICAgICAgID4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJhcHAtZ3JpZCI+CiAgICAgICAgJHtiLmxlbmd0aD4wP2IubWFwKGc9PnRoaXMucmVuZGVyQXBwQ2FyZChnKSk6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJlbXB0eS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMjEiIHkxPSIyMSIgeDI9IjE2LjY1IiB5Mj0iMTYuNjUiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjgiIHkxPSIxMSIgeDI9IjE0IiB5Mj0iMTEiPjwvbGluZT4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktdGl0bGUiPk5vIGFwcHMgZm91bmQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LWRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICAgICAgVHJ5IGFkanVzdGluZyB5b3VyIHNlYXJjaCBvciBmaWx0ZXIgdG8gZmluZCB3aGF0IHlvdSdyZSBsb29raW5nIGZvci4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQXBwQ2FyZChiKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYXBwLWNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtdG9wIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcC1pY29uIj4KICAgICAgICAgICAgJHtiLmljb25Vcmw/d2A8aW1nIHNyYz0iJHtiLmljb25Vcmx9IiBhbHQ9IiR7Yi5uYW1lfSI+YDpiLmljb25OYW1lP3RoaXMucmVuZGVySWNvbkJ5TmFtZShiLmljb25OYW1lKTp3YDxzcGFuIGNsYXNzPSJsZXR0ZXItZmFsbGJhY2siPiR7Yi5uYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfTwvc3Bhbj5gfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm8iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHAtbmFtZSI+JHtiLm5hbWV9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhdGVnb3J5LWJhZGdlIj4ke2IuY2F0ZWdvcnl9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhcHAtZGVzY3JpcHRpb24iPiR7Yi5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWZvb3RlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaW1hZ2UtdGFnIiB0aXRsZT0iJHtiLmltYWdlfSI+JHtiLmltYWdlfTwvc3Bhbj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYWN0aW9ucyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRldGFpbHMtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVWaWV3RGV0YWlscyhiKX0+CiAgICAgICAgICAgICAgVmlldyBEZXRhaWxzCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZXBsb3ktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEZXBsb3koYil9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIwIDEyIDIwIDIyIDQgMjIgNCAxMiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxyZWN0IHg9IjIiIHk9IjciIHdpZHRoPSIyMCIgaGVpZ2h0PSI1Ij48L3JlY3Q+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIyMiIgeDI9IjEyIiB5Mj0iNyI+PC9saW5lPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDdINy41YTIuNSAyLjUgMCAwIDEgMC01QzExIDIgMTIgNyAxMiA3eiI+PC9wYXRoPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDdoNC41YTIuNSAyLjUgMCAwIDAgMC01QzEzIDIgMTIgNyAxMiA3eiI+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIERlcGxveQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVySWNvbkJ5TmFtZShiKXtyZXR1cm57ImZpbGUtdGV4dCI6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0iTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiI+PC9wYXRoPjxwb2x5bGluZSBwb2ludHM9IjE0IDIgMTQgOCAyMCA4Ij48L3BvbHlsaW5lPjxsaW5lIHgxPSIxNiIgeTE9IjEzIiB4Mj0iOCIgeTI9IjEzIj48L2xpbmU+PGxpbmUgeDE9IjE2IiB5MT0iMTciIHgyPSI4IiB5Mj0iMTciPjwvbGluZT48cG9seWxpbmUgcG9pbnRzPSIxMCA5IDkgOSA4IDkiPjwvcG9seWxpbmU+PC9zdmc+YCwiZ2l0LWJyYW5jaCI6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PGxpbmUgeDE9IjYiIHkxPSIzIiB4Mj0iNiIgeTI9IjE1Ij48L2xpbmU+PGNpcmNsZSBjeD0iMTgiIGN5PSI2IiByPSIzIj48L2NpcmNsZT48Y2lyY2xlIGN4PSI2IiBjeT0iMTgiIHI9IjMiPjwvY2lyY2xlPjxwYXRoIGQ9Ik0xOCA5YTkgOSAwIDAgMS05IDkiPjwvcGF0aD48L3N2Zz5gLCJib29rLW9wZW4iOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0yIDNoNmE0IDQgMCAwIDEgNCA0djE0YTMgMyAwIDAgMC0zLTNIMnoiPjwvcGF0aD48cGF0aCBkPSJNMjIgM2gtNmE0IDQgMCAwIDAtNCA0djE0YTMgMyAwIDAgMSAzLTNoN3oiPjwvcGF0aD48L3N2Zz5gLGdsb2JlOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT48bGluZSB4MT0iMiIgeTE9IjEyIiB4Mj0iMjIiIHkyPSIxMiI+PC9saW5lPjxwYXRoIGQ9Ik0xMiAyYTE1LjMgMTUuMyAwIDAgMSA0IDEwIDE1LjMgMTUuMyAwIDAgMS00IDEwIDE1LjMgMTUuMyAwIDAgMS00LTEwIDE1LjMgMTUuMyAwIDAgMSA0LTEweiI+PC9wYXRoPjwvc3ZnPmAsZGF0YWJhc2U6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PGVsbGlwc2UgY3g9IjEyIiBjeT0iNSIgcng9IjkiIHJ5PSIzIj48L2VsbGlwc2U+PHBhdGggZD0iTTIxIDEyYzAgMS42Ni00IDMtOSAzcy05LTEuMzQtOS0zIj48L3BhdGg+PHBhdGggZD0iTTMgNXYxNGMwIDEuNjYgNCAzIDkgM3M5LTEuMzQgOS0zVjUiPjwvcGF0aD48L3N2Zz5gLHNlcnZlcjp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PHJlY3QgeD0iMiIgeT0iMTQiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSI2LjAxIiB5Mj0iNiI+PC9saW5lPjxsaW5lIHgxPSI2IiB5MT0iMTgiIHgyPSI2LjAxIiB5Mj0iMTgiPjwvbGluZT48L3N2Zz5gLHBhY2thZ2U6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PGxpbmUgeDE9IjE2LjUiIHkxPSI5LjQiIHgyPSI3LjUiIHkyPSI0LjIxIj48L2xpbmU+PHBhdGggZD0iTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiI+PC9wYXRoPjxwb2x5bGluZSBwb2ludHM9IjMuMjcgNi45NiAxMiAxMi4wMSAyMC43MyA2Ljk2Ij48L3BvbHlsaW5lPjxsaW5lIHgxPSIxMiIgeTE9IjIyLjA4IiB4Mj0iMTIiIHkyPSIxMiI+PC9saW5lPjwvc3ZnPmAsbWFpbDp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNNCA0aDE2YzEuMSAwIDIgLjkgMiAydjEyYzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjZjMC0xLjEuOS0yIDItMnoiPjwvcGF0aD48cG9seWxpbmUgcG9pbnRzPSIyMiw2IDEyLDEzIDIsNiI+PC9wb2x5bGluZT48L3N2Zz5gLHNoaWVsZDp3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTB6Ij48L3BhdGg+PC9zdmc+YCxtb25pdG9yOndgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PGxpbmUgeDE9IjgiIHkxPSIyMSIgeDI9IjE2IiB5Mj0iMjEiPjwvbGluZT48bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjEyIiB5Mj0iMjEiPjwvbGluZT48L3N2Zz5gfVtiXXx8d2A8c3BhbiBjbGFzcz0ibGV0dGVyLWZhbGxiYWNrIj4/PC9zcGFuPmB9aGFuZGxlVmlld0RldGFpbHMoYil7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1hcHAiLHtkZXRhaWw6e2FwcDpifSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZURlcGxveShiKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZXBsb3ktYXBwIix7ZGV0YWlsOnthcHA6Yn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdmcodGhpcyxtKX1zdGF0aWN7dmcoYSxyKX19O3JldHVybiB2PWF9KSgpfSk7dmFyIGVndCxuYWUsbUJhLGFpYT11KCgpPT57dmUoKTtlZ3Q9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG5hZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sbUJhPSgoKT0+e2xldCB0PVt1ZSgic3otdG9rZW5zLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pUb2tlbnNWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOkFycmF5fSldLGVndCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imdsb2JhbFRva2VucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iZ2xvYmFsVG9rZW5zImluIG0sImhhcyIpLGdldDppKG09Pm0uZ2xvYmFsVG9rZW5zLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uZ2xvYmFsVG9rZW5zPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sbyxsKSxlZ3QodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjaVRva2VucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShtPT4iY2lUb2tlbnMiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5jaVRva2VucywiZ2V0Iiksc2V0OmkoKG0sdik9PnttLmNpVG9rZW5zPXZ9LCJzZXQiKX0sbWV0YWRhdGE6aH0sZCxmKSxlZ3QobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxwPWE9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjRweDsgbWF4LXdpZHRoOiAxMDAwcHg7Ij4KICAgICAgPHN6LXRva2Vucy12aWV3CiAgICAgICAgLmdsb2JhbFRva2Vucz0ke1t7aWQ6IjEiLG5hbWU6IkNJL0NEIFBpcGVsaW5lIix0eXBlOiJnbG9iYWwiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xNSIsbGFzdFVzZWQ6IjIwMjQtMDEtMjAifSx7aWQ6IjIiLG5hbWU6IkRldmVsb3BtZW50Iix0eXBlOiJnbG9iYWwiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMCJ9XX0KICAgICAgICAuY2lUb2tlbnM9JHtbe2lkOiIzIixuYW1lOiJoZWxsby13b3JsZC1jaSIsdHlwZToiY2kiLHNlcnZpY2U6ImhlbGxvLXdvcmxkIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTgifSx7aWQ6IjQiLG5hbWU6ImFwaS1zZXJ2aWNlLWNpIix0eXBlOiJjaSIsc2VydmljZToiYXBpLXNlcnZpY2UiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMiIsbGFzdFVzZWQ6IjIwMjQtMDEtMTkifV19CiAgICAgID48L3N6LXRva2Vucy12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXV0aCAmIFNldHRpbmdzIl07I2U9bmFlKHRoaXMsbyxbXSk7Z2V0IGdsb2JhbFRva2Vucygpe3JldHVybiB0aGlzLiNlfXNldCBnbG9iYWxUb2tlbnMoaCl7dGhpcy4jZT1ofSN0PShuYWUodGhpcyxsKSxuYWUodGhpcyxkLFtdKSk7Z2V0IGNpVG9rZW5zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNpVG9rZW5zKGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLnRva2VuLWxpc3QgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC50b2tlbi1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnRva2VuLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnRva2VuLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnRva2VuLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50b2tlbi1tZXRhIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnRva2VuLXNlcnZpY2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICB9CgogICAgICAudG9rZW4tYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgcGFkZGluZzogMzJweCAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmVtcHR5LXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5HbG9iYWwgVG9rZW5zPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+VG9rZW5zIHRoYXQgY2FuIHB1c2ggaW1hZ2VzIHRvIG11bHRpcGxlIHNlcnZpY2VzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmdsb2JhbFRva2Vucy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbGlzdCI+CiAgICAgICAgICAgICR7dGhpcy5nbG9iYWxUb2tlbnMubWFwKGg9PnRoaXMucmVuZGVyVG9rZW4oaCkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDp3YAogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS10ZXh0Ij5ObyBnbG9iYWwgdG9rZW5zIGNyZWF0ZWQ8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGB9CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBwcmltYXJ5IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDcmVhdGUoImdsb2JhbCIpfT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgQ3JlYXRlIFRva2VuCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNJIFRva2VucyAoU2VydmljZS1zcGVjaWZpYyk8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5Ub2tlbnMgdGllZCB0byBpbmRpdmlkdWFsIHNlcnZpY2VzIGZvciBDSS9DRCBwaXBlbGluZXM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuY2lUb2tlbnMubGVuZ3RoPjA/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLWxpc3QiPgogICAgICAgICAgICAke3RoaXMuY2lUb2tlbnMubWFwKGg9PnRoaXMucmVuZGVyVG9rZW4oaCkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDp3YAogICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS10ZXh0Ij5ObyBDSSB0b2tlbnMgY3JlYXRlZDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYH0KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgiY2kiKX0+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENyZWF0ZSBUb2tlbgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1yZW5kZXJUb2tlbihoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taW5mbyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4ke2gubmFtZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW1ldGEiPgogICAgICAgICAgICAke2guc2VydmljZT93YDxzcGFuIGNsYXNzPSJ0b2tlbi1zZXJ2aWNlIj4ke2guc2VydmljZX08L3NwYW4+YDoiIn0KICAgICAgICAgICAgQ3JlYXRlZCAke2guY3JlYXRlZEF0fQogICAgICAgICAgICAke2gubGFzdFVzZWQ/d2AgwrcgTGFzdCB1c2VkICR7aC5sYXN0VXNlZH1gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVDb3B5KGgpfT5Db3B5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVSZWdlbmVyYXRlKGgpfT5SZWdlbmVyYXRlPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlKGgpfT5EZWxldGU8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNyZWF0ZShoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjcmVhdGUiLHtkZXRhaWw6e3R5cGU6aH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDb3B5KGgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvcHkiLHtkZXRhaWw6aCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlZ2VuZXJhdGUoaCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVnZW5lcmF0ZSIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlKGgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZSIse2RldGFpbDpoLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG5hZSh0aGlzLGYpfXN0YXRpY3tuYWUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIHRndCxvYWUsZ0JhLGlpYT11KCgpPT57dmUoKTt0Z3Q9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG9hZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sZ0JhPSgoKT0+e2xldCB0PVt1ZSgic3otc2V0dGluZ3MtdmlldyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTelNldHRpbmdzVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHRndCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNldHRpbmdzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJzZXR0aW5ncyJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLnNldHRpbmdzLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uc2V0dGluZ3M9dn0sInNldCIpfSxtZXRhZGF0YTpofSxvLGwpLHRndCh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRVc2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKG09PiJjdXJyZW50VXNlciJpbiBtLCJoYXMiKSxnZXQ6aShtPT5tLmN1cnJlbnRVc2VyLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uY3VycmVudFVzZXI9dn0sInNldCIpfSxtZXRhZGF0YTpofSxkLGYpLHRndChudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLHA9YT1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDgwMHB4OyI+CiAgICAgIDxzei1zZXR0aW5ncy12aWV3CiAgICAgICAgLnNldHRpbmdzPSR7e2RhcmtNb2RlOiEwLGNsb3VkZmxhcmVUb2tlbjoiIixjbG91ZGZsYXJlWm9uZUlkOiIiLGF1dG9SZW5ld0NlcnRzOiEwLHJlbmV3YWxUaHJlc2hvbGQ6MzAsYWNtZUVtYWlsOiJjZXJ0c0BleGFtcGxlLmNvbSIsaHR0cFBvcnQ6ODAsaHR0cHNQb3J0OjQ0Myxmb3JjZUh0dHBzOiEwfX0KICAgICAgICBjdXJyZW50VXNlcj0iYWRtaW4iCiAgICAgID48L3N6LXNldHRpbmdzLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJBdXRoICYgU2V0dGluZ3MiXTsjZT1vYWUodGhpcyxvLHtkYXJrTW9kZTohMSxjbG91ZGZsYXJlVG9rZW46IiIsY2xvdWRmbGFyZVpvbmVJZDoiIixhdXRvUmVuZXdDZXJ0czohMCxyZW5ld2FsVGhyZXNob2xkOjMwLGFjbWVFbWFpbDoiIixodHRwUG9ydDo4MCxodHRwc1BvcnQ6NDQzLGZvcmNlSHR0cHM6ITB9KTtnZXQgc2V0dGluZ3MoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2V0dGluZ3MoaCl7dGhpcy4jZT1ofSN0PShvYWUodGhpcyxsKSxvYWUodGhpcyxkLCIiKSk7Z2V0IGN1cnJlbnRVc2VyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1cnJlbnRVc2VyKGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgZGVlcy10aWxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tZ3JvdXAgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLWdyb3VwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5mb3JtLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5mb3JtLWxhYmVsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZm9ybS1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLAogICAgICBpbnB1dFt0eXBlPSJwYXNzd29yZCJdLAogICAgICBpbnB1dFt0eXBlPSJlbWFpbCJdLAogICAgICBpbnB1dFt0eXBlPSJudW1iZXIiXSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogNDRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaC5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2g6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgbGVmdDogMnB4OwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoLmFjdGl2ZTo6YWZ0ZXIgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsKICAgICAgfQoKICAgICAgLnBhc3N3b3JkLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLnBhc3N3b3JkLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5wYXNzd29yZC1maWVsZHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5maWVsZC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXBwZWFyYW5jZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tbGFiZWwtZ3JvdXAiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWxhYmVsIj5EYXJrIE1vZGU8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0taGludCI+VG9nZ2xlIGRhcmsgbW9kZSBvbiBvciBvZmY8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtc3dpdGNoICR7dGhpcy5zZXR0aW5ncy5kYXJrTW9kZT8iYWN0aXZlIjoiIn0iIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZURhcmtNb2RlKCl9PjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DbG91ZGZsYXJlIEludGVncmF0aW9uPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+Q29uZmlndXJlIENsb3VkZmxhcmUgQVBJIGZvciBETlMgbWFuYWdlbWVudDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5BUEkgVG9rZW48L2Rpdj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJFbnRlciBDbG91ZGZsYXJlIEFQSSB0b2tlbiIgLnZhbHVlPSR7dGhpcy5zZXR0aW5ncy5jbG91ZGZsYXJlVG9rZW59IEBpbnB1dD0ke2g9PnRoaXMudXBkYXRlU2V0dGluZygiY2xvdWRmbGFyZVRva2VuIixoLnRhcmdldC52YWx1ZSl9PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPlpvbmUgSUQgKE9wdGlvbmFsKTwvZGl2PgogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iRGVmYXVsdCB6b25lIElEIiAudmFsdWU9JHt0aGlzLnNldHRpbmdzLmNsb3VkZmxhcmVab25lSWR9IEBpbnB1dD0ke2g9PnRoaXMudXBkYXRlU2V0dGluZygiY2xvdWRmbGFyZVpvbmVJZCIsaC50YXJnZXQudmFsdWUpfT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+R2V0IHlvdXIgQVBJIHRva2VuIGZyb20gdGhlIENsb3VkZmxhcmUgZGFzaGJvYXJkIHdpdGggRE5TIGVkaXQgcGVybWlzc2lvbnMuPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXRpbGU+CgogICAgICA8ZGVlcy10aWxlPgogICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNTTC9UTFMgU2V0dGluZ3M8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXN1YnRpdGxlIj5Db25maWd1cmUgY2VydGlmaWNhdGUgbWFuYWdlbWVudDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tbGFiZWwtZ3JvdXAiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWxhYmVsIj5BdXRvLVJlbmV3IENlcnRpZmljYXRlczwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9ybS1oaW50Ij5BdXRvbWF0aWNhbGx5IHJlbmV3IGNlcnRpZmljYXRlcyBiZWZvcmUgZXhwaXJ5PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLXN3aXRjaCAke3RoaXMuc2V0dGluZ3MuYXV0b1JlbmV3Q2VydHM/ImFjdGl2ZSI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVTZXR0aW5nKCJhdXRvUmVuZXdDZXJ0cyIpfT48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPlJlbmV3YWwgVGhyZXNob2xkIChkYXlzKTwvZGl2PgogICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiAudmFsdWU9JHtTdHJpbmcodGhpcy5zZXR0aW5ncy5yZW5ld2FsVGhyZXNob2xkKX0gQGlucHV0PSR7aD0+dGhpcy51cGRhdGVTZXR0aW5nKCJyZW5ld2FsVGhyZXNob2xkIixwYXJzZUludChoLnRhcmdldC52YWx1ZSkpfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5SZW5ldyBjZXJ0aWZpY2F0ZXMgd2hlbiB0aGV5IGhhdmUgZmV3ZXIgdGhhbiB0aGlzIG1hbnkgZGF5cyByZW1haW5pbmcuPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+QUNNRSBFbWFpbDwvZGl2PgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJhZG1pbkBleGFtcGxlLmNvbSIgLnZhbHVlPSR7dGhpcy5zZXR0aW5ncy5hY21lRW1haWx9IEBpbnB1dD0ke2g9PnRoaXMudXBkYXRlU2V0dGluZygiYWNtZUVtYWlsIixoLnRhcmdldC52YWx1ZSl9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPkVtYWlsIGFkZHJlc3MgZm9yIExldCdzIEVuY3J5cHQgbm90aWZpY2F0aW9ucy48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TmV0d29yayBTZXR0aW5nczwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPkNvbmZpZ3VyZSBuZXR3b3JrIGFuZCBwcm94eSBzZXR0aW5nczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1sYWJlbCI+SFRUUCBQb3J0PC9kaXY+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgLnZhbHVlPSR7U3RyaW5nKHRoaXMuc2V0dGluZ3MuaHR0cFBvcnQpfSBAaW5wdXQ9JHtoPT50aGlzLnVwZGF0ZVNldHRpbmcoImh0dHBQb3J0IixwYXJzZUludChoLnRhcmdldC52YWx1ZSkpfT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5IVFRQUyBQb3J0PC9kaXY+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgLnZhbHVlPSR7U3RyaW5nKHRoaXMuc2V0dGluZ3MuaHR0cHNQb3J0KX0gQGlucHV0PSR7aD0+dGhpcy51cGRhdGVTZXR0aW5nKCJodHRwc1BvcnQiLHBhcnNlSW50KGgudGFyZ2V0LnZhbHVlKSl9PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWxhYmVsLWdyb3VwIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9ybS1sYWJlbCI+Rm9yY2UgSFRUUFM8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0taGludCI+UmVkaXJlY3QgYWxsIEhUVFAgdHJhZmZpYyB0byBIVFRQUzwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1zd2l0Y2ggJHt0aGlzLnNldHRpbmdzLmZvcmNlSHR0cHM/ImFjdGl2ZSI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVTZXR0aW5nKCJmb3JjZUh0dHBzIil9PjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BY2NvdW50PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+TWFuYWdlIHlvdXIgYWNjb3VudCBzZXR0aW5nczwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkN1cnJlbnQgVXNlcjwvZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07Ij4ke3RoaXMuY3VycmVudFVzZXJ8fCJVbmtub3duIn08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icGFzc3dvcmQtc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhc3N3b3JkLXRpdGxlIj5DaGFuZ2UgUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFzc3dvcmQtZmllbGRzIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkN1cnJlbnQgUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9ImN1cnJlbnRQYXNzd29yZCI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5OZXcgUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9Im5ld1Bhc3N3b3JkIj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkNvbmZpcm0gUGFzc3dvcmQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9ImNvbmZpcm1QYXNzd29yZCI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQ2hhbmdlUGFzc3dvcmQoKX0+VXBkYXRlIFBhc3N3b3JkPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgPGRlZXMtdGlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiIHN0eWxlPSJwYWRkaW5nOiAxMnB4IDE2cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogMTJweDsiPgogICAgICAgICAgU2F2ZSB5b3VyIGNoYW5nZXMgb3IgcmVzZXQgdG8gZGVmYXVsdHMuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUmVzZXQoKX0+UmVzZXQ8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVNhdmUoKX0+U2F2ZSBTZXR0aW5nczwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9dG9nZ2xlRGFya01vZGUoKXt0aGlzLnNldHRpbmdzPXsuLi50aGlzLnNldHRpbmdzLGRhcmtNb2RlOiF0aGlzLnNldHRpbmdzLmRhcmtNb2RlfSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZXR0aW5nLWNoYW5nZSIse2RldGFpbDp7a2V5OiJkYXJrTW9kZSIsdmFsdWU6dGhpcy5zZXR0aW5ncy5kYXJrTW9kZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX10b2dnbGVTZXR0aW5nKGgpe3RoaXMuc2V0dGluZ3NbaF09IXRoaXMuc2V0dGluZ3NbaF0sdGhpcy5zZXR0aW5ncz17Li4udGhpcy5zZXR0aW5nc319dXBkYXRlU2V0dGluZyhoLG0pe3RoaXMuc2V0dGluZ3NbaF09bSx0aGlzLnNldHRpbmdzPXsuLi50aGlzLnNldHRpbmdzfX1oYW5kbGVDaGFuZ2VQYXNzd29yZCgpe2xldCBoPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImN1cnJlbnRQYXNzd29yZCIpPy52YWx1ZSxtPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoIm5ld1Bhc3N3b3JkIik/LnZhbHVlLHY9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiY29uZmlybVBhc3N3b3JkIik/LnZhbHVlO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZS1wYXNzd29yZCIse2RldGFpbDp7Y3VycmVudFBhc3N3b3JkOmgsbmV3UGFzc3dvcmQ6bSxjb25maXJtUGFzc3dvcmQ6dn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVSZXNldCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlc2V0Iix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTYXZlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2F2ZSIse2RldGFpbDp0aGlzLnNldHRpbmdzLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG9hZSh0aGlzLGYpfXN0YXRpY3tvYWUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIGxhZSx6MyxiQmEsc2lhPXUoKCk9Pnt2ZSgpO2xhZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sejM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LGJCYT0oKCk9PntsZXQgdD1bdWUoInN6LWxvZ2luLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pMb2dpblZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOkJvb2xlYW59KV0sYz1bUCh7dHlwZTpTdHJpbmd9KV0scD1bUCh7dHlwZTpTdHJpbmd9KV0sdj1bUCh7dHlwZTpTdHJpbmd9KV0sbGFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ibG9hZGluZyJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmxvYWRpbmcsImdldCIpLHNldDppKChNLE4pPT57TS5sb2FkaW5nPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxsYWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iZXJyb3IiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5lcnJvciwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmVycm9yPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxsYWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4idGl0bGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS50aXRsZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnRpdGxlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30saCxtKSxsYWUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic3VidGl0bGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5zdWJ0aXRsZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLnN1YnRpdGxlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sYixnKSxsYWUobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6a30sbnVsbCxyKSx5PWE9ZS52YWx1ZSxrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiA2MDBweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGJhY2tncm91bmQ6ICMwOTA5MGI7Ij4KICAgICAgPHN6LWxvZ2luLXZpZXc+PC9zei1sb2dpbi12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXV0aCAmIFNldHRpbmdzIl07I2U9ejModGhpcyxvLCExKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBsb2FkaW5nKGspe3RoaXMuI2U9a30jdD0oejModGhpcyxsKSx6Myh0aGlzLGQsIiIpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZXJyb3Ioayl7dGhpcy4jdD1rfSNyPSh6Myh0aGlzLGYpLHozKHRoaXMsaCwic2VydmUuem9uZSIpKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdGl0bGUoayl7dGhpcy4jcj1rfSNhPSh6Myh0aGlzLG0pLHozKHRoaXMsYiwiU2lnbiBpbiB0byB5b3VyIG9uZWJveCIpKTtnZXQgc3VidGl0bGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc3VidGl0bGUoayl7dGhpcy4jYT1rfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMwOTA5MGIiKX07CiAgICAgIH0KCiAgICAgIC5sb2dpbi1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogNDAwcHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgfQoKICAgICAgLmxvZ2luLWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgICAgfQoKICAgICAgLmxvZ28tc2VjdGlvbiB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgIH0KCiAgICAgIC5sb2dvIHsKICAgICAgICB3aWR0aDogNjRweDsKICAgICAgICBoZWlnaHQ6IDY0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7CiAgICAgIH0KCiAgICAgIC5sb2dvIHN2ZyB7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CgogICAgICAuZm9ybS1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZm9ybS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEycHggMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2U7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke3guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDk2LCAxNjUsIDI1MCwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuZm9ybS1pbnB1dC5lcnJvciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2VmNDQ0NCIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5lcnJvci1tZXNzYWdlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVmMmYyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2ZlY2FjYSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuZXJyb3ItbWVzc2FnZSBzdmcgewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnN1Ym1pdC1idXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDEycHggMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAyMDBtcyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnN1Ym1pdC1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgfQoKICAgICAgLnN1Ym1pdC1idXR0b246YWN0aXZlOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuc3VibWl0LWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5zcGlubmVyIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogY3VycmVudENvbG9yOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5mb290ZXIgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZm9vdGVyIGEgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICAuZm9vdGVyIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibG9naW4tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28tc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28iPgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiI+PC9wYXRoPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMy4yNyA2Ljk2IDEyIDEyLjAxIDIwLjczIDYuOTYiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIyMi4wOCIgeDI9IjEyIiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke3RoaXMudGl0bGV9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj4ke3RoaXMuc3VidGl0bGV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8Zm9ybSBjbGFzcz0iZm9ybSIgQHN1Ym1pdD0ke3RoaXMuaGFuZGxlU3VibWl0fT4KICAgICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3ItbWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iOCIgeDI9IjEyIiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIxMi4wMSIgeTI9IjE2Ij48L2xpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICR7dGhpcy5lcnJvcn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCIgZm9yPSJ1c2VybmFtZSI+VXNlcm5hbWU8L2xhYmVsPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGlkPSJ1c2VybmFtZSIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0ICR7dGhpcy5lcnJvcj8iZXJyb3IiOiIifSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciB5b3VyIHVzZXJuYW1lIgogICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPSJ1c2VybmFtZSIKICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubG9hZGluZ30KICAgICAgICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCIgZm9yPSJwYXNzd29yZCI+UGFzc3dvcmQ8L2xhYmVsPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0icGFzc3dvcmQiCiAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmQiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCAke3RoaXMuZXJyb3I/ImVycm9yIjoiIn0iCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgeW91ciBwYXNzd29yZCIKICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT0iY3VycmVudC1wYXNzd29yZCIKICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMubG9hZGluZ30KICAgICAgICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0LWJ1dHRvbiIgP2Rpc2FibGVkPSR7dGhpcy5sb2FkaW5nfT4KICAgICAgICAgICAgICAke3RoaXMubG9hZGluZz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICBTaWduaW5nIGluLi4uCiAgICAgICAgICAgICAgYDoiU2lnbiBpbiJ9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9mb3JtPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICAgIFBvd2VyZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9zZXJ2ZS56b25lIiB0YXJnZXQ9Il9ibGFuayI+c2VydmUuem9uZTwvYT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlU3VibWl0KGspe2sucHJldmVudERlZmF1bHQoKTtsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJ1c2VybmFtZSIpLE49dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKTtpZighTXx8IU4pcmV0dXJuO2xldCBfPU0udmFsdWUudHJpbSgpLFM9Ti52YWx1ZTtpZighX3x8IVMpe3RoaXMuZXJyb3I9IlBsZWFzZSBlbnRlciBib3RoIHVzZXJuYW1lIGFuZCBwYXNzd29yZCI7cmV0dXJufXRoaXMuZXJyb3I9IiIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9naW4iLHtkZXRhaWw6e3VzZXJuYW1lOl8scGFzc3dvcmQ6U30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jbGVhckZvcm0oKXtsZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJ1c2VybmFtZSIpLE09dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKTtrJiYoay52YWx1ZT0iIiksTSYmKE0udmFsdWU9IiIpLHRoaXMuZXJyb3I9IiJ9Zm9jdXNVc2VybmFtZSgpe2xldCBrPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInVzZXJuYW1lIik7ayYmay5mb2N1cygpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx6Myh0aGlzLGcpfXN0YXRpY3t6MyhhLHIpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgVm4sYmEseEJhLG5pYT11KCgpPT57dmUoKTtWbj1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sYmE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHhCYT0oKCk9PntsZXQgdD1bdWUoInN6LXNlcnZpY2UtY3JlYXRlLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXSxOLF89W10sUz1bXSxPLEw9W10sRT1bXSxCLEM9W10sej1bXSxBLCQ9W10sRj1bXSxZLEc9W10sWj1bXSxkZSxEPVtdLFE9W10sZmUsVD1bXSxXPVtdLHBlLG1lPVtdLHE9W10sSCxVPVtdLGo9W10sYWUsWD1bXSxKPVtdLHhlLEs9W10sVj1bXTt2YXIgbGU9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6U2VydmljZUNyZWF0ZVZpZXciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbmU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHt0eXBlOkJvb2xlYW59KV0scD1baWUoKV0sdj1baWUoKV0seT1baWUoKV0sTj1baWUoKV0sTz1baWUoKV0sQj1baWUoKV0sQT1baWUoKV0sWT1baWUoKV0sZGU9W2llKCldLGZlPVtpZSgpXSxwZT1baWUoKV0sSD1baWUoKV0sYWU9W2llKCldLHhlPVtpZSgpXSxWbih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZ2lzdHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJyZWdpc3RyaWVzImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUucmVnaXN0cmllcywiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLnJlZ2lzdHJpZXM9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LG8sbCksVm4odGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ibG9hZGluZyJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmxvYWRpbmcsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5sb2FkaW5nPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxkLGYpLFZuKHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VydmljZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJzZXJ2aWNlTmFtZSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnNlcnZpY2VOYW1lLCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUuc2VydmljZU5hbWU9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LGgsbSksVm4odGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZVVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+ImltYWdlVXJsImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuaW1hZ2VVcmwsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5pbWFnZVVybD16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sYixnKSxWbih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkUmVnaXN0cnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJzZWxlY3RlZFJlZ2lzdHJ5ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuc2VsZWN0ZWRSZWdpc3RyeSwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLnNlbGVjdGVkUmVnaXN0cnk9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LGssTSksVm4odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3J0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InBvcnRzImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUucG9ydHMsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5wb3J0cz16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sXyxTKSxWbih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudlZhcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJlbnZWYXJzImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZW52VmFycywiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLmVudlZhcnM9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LEwsRSksVm4odGhpcyxudWxsLEIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4idm9sdW1lcyJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnZvbHVtZXMsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS52b2x1bWVzPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxDLHopLFZuKHRoaXMsbnVsbCxBLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3B1TGltaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJjcHVMaW1pdCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmNwdUxpbWl0LCJnZXQiKSxzZXQ6aSgoZWUsemUpPT57ZWUuY3B1TGltaXQ9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LCQsRiksVm4odGhpcyxudWxsLFkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW1vcnlMaW1pdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+Im1lbW9yeUxpbWl0ImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUubWVtb3J5TGltaXQsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5tZW1vcnlMaW1pdD16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sRyxaKSxWbih0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXN0YXJ0UG9saWN5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4icmVzdGFydFBvbGljeSJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnJlc3RhcnRQb2xpY3ksImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5yZXN0YXJ0UG9saWN5PXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxELFEpLFZuKHRoaXMsbnVsbCxmZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5ldHdvcmtNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4ibmV0d29ya01vZGUiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5uZXR3b3JrTW9kZSwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLm5ldHdvcmtNb2RlPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxULFcpLFZuKHRoaXMsbnVsbCxwZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dBZHZhbmNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShlZT0+InNob3dBZHZhbmNlZCJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLnNob3dBZHZhbmNlZCwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLnNob3dBZHZhbmNlZD16ZX0sInNldCIpfSxtZXRhZGF0YTpuZX0sbWUscSksVm4odGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVNb25nb0RCIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZW5hYmxlTW9uZ29EQiJpbiBlZSwiaGFzIiksZ2V0OmkoZWU9PmVlLmVuYWJsZU1vbmdvREIsImdldCIpLHNldDppKChlZSx6ZSk9PntlZS5lbmFibGVNb25nb0RCPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxVLGopLFZuKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZVMzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGVlPT4iZW5hYmxlUzMiaW4gZWUsImhhcyIpLGdldDppKGVlPT5lZS5lbmFibGVTMywiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLmVuYWJsZVMzPXplfSwic2V0Iil9LG1ldGFkYXRhOm5lfSxYLEopLFZuKHRoaXMsbnVsbCx4ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZUNsaWNrSG91c2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZWU9PiJlbmFibGVDbGlja0hvdXNlImluIGVlLCJoYXMiKSxnZXQ6aShlZT0+ZWUuZW5hYmxlQ2xpY2tIb3VzZSwiZ2V0Iiksc2V0OmkoKGVlLHplKT0+e2VlLmVuYWJsZUNsaWNrSG91c2U9emV9LCJzZXQiKX0sbWV0YWRhdGE6bmV9LEssViksVm4obnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6bmV9LG51bGwsciksbGU9YT1lLnZhbHVlLG5lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm5lfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogODAwcHg7Ij4KICAgICAgPHN6LXNlcnZpY2UtY3JlYXRlLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1t7aWQ6IjEiLG5hbWU6Ik9uZWJveCBSZWdpc3RyeSIsdXJsOiJyZWdpc3RyeS5vbmVib3gubG9jYWwifSx7aWQ6IjIiLG5hbWU6IkRvY2tlciBIdWIiLHVybDoiZG9ja2VyLmlvIn1dfQogICAgICA+PC9zei1zZXJ2aWNlLWNyZWF0ZS12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2VydmljZXMiXTsjZT1iYSh0aGlzLG8sW10pO2dldCByZWdpc3RyaWVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZ2lzdHJpZXMobmUpe3RoaXMuI2U9bmV9I3Q9KGJhKHRoaXMsbCksYmEodGhpcyxkLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9hZGluZyhuZSl7dGhpcy4jdD1uZX0jcj0oYmEodGhpcyxmKSxiYSh0aGlzLGgsIiIpKTtnZXQgc2VydmljZU5hbWUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VydmljZU5hbWUobmUpe3RoaXMuI3I9bmV9I2E9KGJhKHRoaXMsbSksYmEodGhpcyxiLCIiKSk7Z2V0IGltYWdlVXJsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGltYWdlVXJsKG5lKXt0aGlzLiNhPW5lfSNpPShiYSh0aGlzLGcpLGJhKHRoaXMsaywiIikpO2dldCBzZWxlY3RlZFJlZ2lzdHJ5KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkUmVnaXN0cnkobmUpe3RoaXMuI2k9bmV9I3M9KGJhKHRoaXMsTSksYmEodGhpcyxfLFt7aG9zdFBvcnQ6IiIsY29udGFpbmVyUG9ydDoiIixwcm90b2NvbDoidGNwIn1dKSk7Z2V0IHBvcnRzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHBvcnRzKG5lKXt0aGlzLiNzPW5lfSNuPShiYSh0aGlzLFMpLGJhKHRoaXMsTCxbe2tleToiIix2YWx1ZToiIn1dKSk7Z2V0IGVudlZhcnMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZW52VmFycyhuZSl7dGhpcy4jbj1uZX0jbz0oYmEodGhpcyxFKSxiYSh0aGlzLEMsW10pKTtnZXQgdm9sdW1lcygpe3JldHVybiB0aGlzLiNvfXNldCB2b2x1bWVzKG5lKXt0aGlzLiNvPW5lfSNsPShiYSh0aGlzLHopLGJhKHRoaXMsJCwiIikpO2dldCBjcHVMaW1pdCgpe3JldHVybiB0aGlzLiNsfXNldCBjcHVMaW1pdChuZSl7dGhpcy4jbD1uZX0jYz0oYmEodGhpcyxGKSxiYSh0aGlzLEcsIiIpKTtnZXQgbWVtb3J5TGltaXQoKXtyZXR1cm4gdGhpcy4jY31zZXQgbWVtb3J5TGltaXQobmUpe3RoaXMuI2M9bmV9I2Q9KGJhKHRoaXMsWiksYmEodGhpcyxELCJhbHdheXMiKSk7Z2V0IHJlc3RhcnRQb2xpY3koKXtyZXR1cm4gdGhpcy4jZH1zZXQgcmVzdGFydFBvbGljeShuZSl7dGhpcy4jZD1uZX0jdT0oYmEodGhpcyxRKSxiYSh0aGlzLFQsImJyaWRnZSIpKTtnZXQgbmV0d29ya01vZGUoKXtyZXR1cm4gdGhpcy4jdX1zZXQgbmV0d29ya01vZGUobmUpe3RoaXMuI3U9bmV9I3A9KGJhKHRoaXMsVyksYmEodGhpcyxtZSwhMSkpO2dldCBzaG93QWR2YW5jZWQoKXtyZXR1cm4gdGhpcy4jcH1zZXQgc2hvd0FkdmFuY2VkKG5lKXt0aGlzLiNwPW5lfSNmPShiYSh0aGlzLHEpLGJhKHRoaXMsVSwhMSkpO2dldCBlbmFibGVNb25nb0RCKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGVuYWJsZU1vbmdvREIobmUpe3RoaXMuI2Y9bmV9I2g9KGJhKHRoaXMsaiksYmEodGhpcyxYLCExKSk7Z2V0IGVuYWJsZVMzKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGVuYWJsZVMzKG5lKXt0aGlzLiNoPW5lfSNtPShiYSh0aGlzLEopLGJhKHRoaXMsSywhMSkpO2dldCBlbmFibGVDbGlja0hvdXNlKCl7cmV0dXJuIHRoaXMuI219c2V0IGVuYWJsZUNsaWNrSG91c2UobmUpe3RoaXMuI209bmV9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmhlYWRlci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRlci1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAuc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgc3ZnIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0tcm93IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmZvcm0tcm93LnNpbmdsZSB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgIH0KCiAgICAgIC5mb3JtLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5mb3JtLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZm9ybS1sYWJlbCAucmVxdWlyZWQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2VmNDQ0NCIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZm9ybS1pbnB1dCwKICAgICAgLmZvcm0tc2VsZWN0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZm9ybS1pbnB1dDpmb2N1cywKICAgICAgLmZvcm0tc2VsZWN0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmZvcm0taW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuZm9ybS1zZWxlY3QgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmR5bmFtaWMtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZHluYW1pYy1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5keW5hbWljLXJvdyAuZm9ybS1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmR5bmFtaWMtcm93IC5mb3JtLXNlbGVjdCB7CiAgICAgICAgd2lkdGg6IDgwcHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5yZW1vdmUtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5yZW1vdmUtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2ZlY2FjYSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWRkLWJ1dHRvbiBzdmcgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1hZHZhbmNlZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1hZHZhbmNlZCBzdmcgewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1hZHZhbmNlZC5vcGVuIHN2ZyB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsKICAgICAgfQoKICAgICAgLmNoZWNrYm94LXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuY2hlY2tib3ggewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBhY2NlbnQtY29sb3I6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWl0ZW06aGFzKGlucHV0OmNoZWNrZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VmZjZmZiIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5wbGF0Zm9ybS10b2dnbGUtaWNvbiB7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNzI3MmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnBsYXRmb3JtLXRvZ2dsZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucGxhdGZvcm0tdG9nZ2xlLWRlc2MgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogNDRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtc3dpdGNoIGlucHV0IHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zbGlkZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zbGlkZXI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBsZWZ0OiAzcHg7CiAgICAgICAgYm90dG9tOiAzcHg7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLXN3aXRjaCBpbnB1dDpjaGVja2VkICsgLnRvZ2dsZS1zbGlkZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1zd2l0Y2ggaW5wdXQ6Y2hlY2tlZCArIC50b2dnbGUtc2xpZGVyOjpiZWZvcmUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsKICAgICAgfQoKICAgICAgLmFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24gewogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLnByaW1hcnk6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5wcmltYXJ5OmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLnNwaW5uZXIgewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci10aXRsZSI+RGVwbG95IE5ldyBTZXJ2aWNlPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3VidGl0bGUiPkNvbmZpZ3VyZSBhbmQgZGVwbG95IGEgbmV3IERvY2tlciBjb250YWluZXI8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIEJhc2ljIEluZm8gU2VjdGlvbiAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+CiAgICAgICAgICAgIDxsaW5lIHgxPSI5IiB5MT0iOSIgeDI9IjE1IiB5Mj0iOSI+PC9saW5lPgogICAgICAgICAgICA8bGluZSB4MT0iOSIgeTE9IjE1IiB4Mj0iMTUiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBCYXNpYyBJbmZvcm1hdGlvbgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPlNlcnZpY2UgTmFtZSA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+PC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0ibXktc2VydmljZSIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlcnZpY2VOYW1lfQogICAgICAgICAgICAgIEBpbnB1dD0ke25lPT50aGlzLnNlcnZpY2VOYW1lPW5lLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPlVuaXF1ZSBuYW1lIGZvciB0aGUgc2VydmljZSAoYWxwaGFudW1lcmljIGFuZCBoeXBoZW5zKTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5SZWdpc3RyeTwvbGFiZWw+CiAgICAgICAgICAgIDxzZWxlY3QKICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1zZWxlY3QiCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWxlY3RlZFJlZ2lzdHJ5fQogICAgICAgICAgICAgIEBjaGFuZ2U9JHtuZT0+dGhpcy5zZWxlY3RlZFJlZ2lzdHJ5PW5lLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiI+Q3VzdG9tIEltYWdlIFVSTDwvb3B0aW9uPgogICAgICAgICAgICAgICR7dGhpcy5yZWdpc3RyaWVzLm1hcChuZT0+d2AKICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9JHtuZS5pZH0+JHtuZS5uYW1lfTwvb3B0aW9uPgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93IHNpbmdsZSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIj5JbWFnZSA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+PC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0ibmdpbng6bGF0ZXN0IG9yIHJlZ2lzdHJ5LmV4YW1wbGUuY29tL2ltYWdlOnRhZyIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmltYWdlVXJsfQogICAgICAgICAgICAgIEBpbnB1dD0ke25lPT50aGlzLmltYWdlVXJsPW5lLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhpbnQiPkRvY2tlciBpbWFnZSB0byBkZXBsb3kgKGluY2x1ZGUgdGFnKTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBQb3J0IENvbmZpZ3VyYXRpb24gLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgIDxsaW5lIHgxPSIyIiB5MT0iMTIiIHgyPSIyMiIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiAyYTE1LjMgMTUuMyAwIDAgMSA0IDEwIDE1LjMgMTUuMyAwIDAgMS00IDEwIDE1LjMgMTUuMyAwIDAgMS00LTEwIDE1LjMgMTUuMyAwIDAgMSA0LTEweiI+PC9wYXRoPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBQb3J0IENvbmZpZ3VyYXRpb24KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljLWxpc3QiPgogICAgICAgICAgJHt0aGlzLnBvcnRzLm1hcCgobmUsZWUpPT53YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljLXJvdyI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iSG9zdCBQb3J0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7bmUuaG9zdFBvcnR9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt6ZT0+dGhpcy51cGRhdGVQb3J0KGVlLCJob3N0UG9ydCIsemUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iQ29udGFpbmVyIFBvcnQiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtuZS5jb250YWluZXJQb3J0fQogICAgICAgICAgICAgICAgQGlucHV0PSR7emU9PnRoaXMudXBkYXRlUG9ydChlZSwiY29udGFpbmVyUG9ydCIsemUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHNlbGVjdAogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0tc2VsZWN0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7bmUucHJvdG9jb2x9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7emU9PnRoaXMudXBkYXRlUG9ydChlZSwicHJvdG9jb2wiLHplLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idGNwIj5UQ1A8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVkcCI+VURQPC9vcHRpb24+CiAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgJHt0aGlzLnBvcnRzLmxlbmd0aD4xP3dgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVQb3J0KGVlKX0+CiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJhZGQtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRQb3J0KCl9PgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBBZGQgUG9ydCBNYXBwaW5nCiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBFbnZpcm9ubWVudCBWYXJpYWJsZXMgLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI0IDE3IDEwIDExIDQgNSI+PC9wb2x5bGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTkiIHgyPSIyMCIgeTI9IjE5Ij48L2xpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIEVudmlyb25tZW50IFZhcmlhYmxlcwogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImR5bmFtaWMtbGlzdCI+CiAgICAgICAgICAke3RoaXMuZW52VmFycy5tYXAoKG5lLGVlKT0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHluYW1pYy1yb3ciPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IktFWSIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke25lLmtleX0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3plPT50aGlzLnVwZGF0ZUVudlZhcihlZSwia2V5Iix6ZS50YXJnZXQudmFsdWUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0iZm9ybS1pbnB1dCIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJ2YWx1ZSIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke25lLnZhbHVlfQogICAgICAgICAgICAgICAgQGlucHV0PSR7emU9PnRoaXMudXBkYXRlRW52VmFyKGVlLCJ2YWx1ZSIsemUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHt0aGlzLmVudlZhcnMubGVuZ3RoPjE/d2AKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InJlbW92ZS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUVudlZhcihlZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRkLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkRW52VmFyKCl9PgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSI+PC9saW5lPgogICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUKICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIFBsYXRmb3JtIFNlcnZpY2VzIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICA8cmVjdCB4PSIyIiB5PSIxNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjYiIHgyPSI2LjAxIiB5Mj0iNiI+PC9saW5lPgogICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjE4IiB4Mj0iNi4wMSIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIFBsYXRmb3JtIFNlcnZpY2VzCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50IiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTJweDsiPgogICAgICAgICAgRW5hYmxlIG1hbmFnZWQgaW5mcmFzdHJ1Y3R1cmUgc2VydmljZXMgZm9yIHRoaXMgZGVwbG95bWVudC4gUmVzb3VyY2VzIGFyZSBhdXRvbWF0aWNhbGx5IHByb3Zpc2lvbmVkIGFuZCBjb25uZWN0aW9uIGRldGFpbHMgaW5qZWN0ZWQgYXMgZW52aXJvbm1lbnQgdmFyaWFibGVzLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1saXN0Ij4KICAgICAgICAgIDxsYWJlbCBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWljb24iPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0xIDE3LjkzYy0zLjk1LS40OS03LTMuODUtNy03LjkzIDAtLjYyLjA4LTEuMjEuMjEtMS43OUw5IDE1djFjMCAxLjEuOSAyIDIgMnYxLjkzem02LjktMi41NGMtLjI2LS44MS0xLTEuMzktMS45LTEuMzloLTF2LTNjMC0uNTUtLjQ1LTEtMS0xSDh2LTJoMmMuNTUgMCAxLS40NSAxLTFWN2gyYzEuMSAwIDItLjkgMi0ydi0uNDFjMi45MyAxLjE5IDUgNC4wNiA1IDcuNDEgMCAyLjA4LS44IDMuOTctMi4xIDUuMzl6Ii8+PC9zdmc+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1uYW1lIj5Nb25nb0RCPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtZGVzYyI+RG9jdW1lbnQgZGF0YWJhc2Ugd2l0aCBhdXRvLXByb3Zpc2lvbmVkIGNyZWRlbnRpYWxzPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtc3dpdGNoIj4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgP2NoZWNrZWQ9JHt0aGlzLmVuYWJsZU1vbmdvREJ9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7bmU9PnRoaXMuZW5hYmxlTW9uZ29EQj1uZS50YXJnZXQuY2hlY2tlZH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRvZ2dsZS1zbGlkZXIiPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgPGxhYmVsIGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1pbmZvIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaWNvbiI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMjEgMTYuNWMwIC4zOC0uMjEuNzEtLjUzLjg4bC03LjkgNC40NGMtLjE2LjEyLS4zNi4xOC0uNTcuMTgtLjIxIDAtLjQxLS4wNi0uNTctLjE4bC03LjktNC40NEEuOTkxLjk5MSAwIDAgMSAzIDE2LjV2LTljMC0uMzguMjEtLjcxLjUzLS44OGw3LjktNC40NGMuMTYtLjEyLjM2LS4xOC41Ny0uMTguMjEgMCAuNDEuMDYuNTcuMThsNy45IDQuNDRjLjMyLjE3LjUzLjUuNTMuODh2OXoiLz48L3N2Zz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLW5hbWUiPlMzIFN0b3JhZ2UgKE1pbklPKTwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWRlc2MiPk9iamVjdCBzdG9yYWdlIGJ1Y2tldCB3aXRoIGF1dG8tcHJvdmlzaW9uZWQgYWNjZXNzIGtleXM8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1zd2l0Y2giPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgICAgICA/Y2hlY2tlZD0ke3RoaXMuZW5hYmxlUzN9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7bmU9PnRoaXMuZW5hYmxlUzM9bmUudGFyZ2V0LmNoZWNrZWR9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2dnbGUtc2xpZGVyIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgIDxsYWJlbCBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF0Zm9ybS10b2dnbGUtaW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLWljb24iPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjYiIGhlaWdodD0iMjAiLz48cmVjdCB4PSI5IiB5PSI3IiB3aWR0aD0iNiIgaGVpZ2h0PSIxNSIvPjxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjYiIGhlaWdodD0iMTAiLz48L3N2Zz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGxhdGZvcm0tdG9nZ2xlLW5hbWUiPkNsaWNrSG91c2U8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXRmb3JtLXRvZ2dsZS1kZXNjIj5BbmFseXRpY3MgZGF0YWJhc2Ugd2l0aCBhdXRvLXByb3Zpc2lvbmVkIGNyZWRlbnRpYWxzPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtc3dpdGNoIj4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgP2NoZWNrZWQ9JHt0aGlzLmVuYWJsZUNsaWNrSG91c2V9CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7bmU9PnRoaXMuZW5hYmxlQ2xpY2tIb3VzZT1uZS50YXJnZXQuY2hlY2tlZH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRvZ2dsZS1zbGlkZXIiPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2xhYmVsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gQWR2YW5jZWQgT3B0aW9ucyBUb2dnbGUgLS0+CiAgICAgIDxidXR0b24KICAgICAgICBjbGFzcz0idG9nZ2xlLWFkdmFuY2VkICR7dGhpcy5zaG93QWR2YW5jZWQ/Im9wZW4iOiIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zaG93QWR2YW5jZWQ9IXRoaXMuc2hvd0FkdmFuY2VkfQogICAgICA+CiAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiPjwvcG9seWxpbmU+CiAgICAgICAgPC9zdmc+CiAgICAgICAgQWR2YW5jZWQgT3B0aW9ucwogICAgICA8L2J1dHRvbj4KCiAgICAgICR7dGhpcy5zaG93QWR2YW5jZWQ/d2AKICAgICAgICA8IS0tIFZvbHVtZXMgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiI+PC9wYXRoPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgVm9sdW1lIE1vdW50cwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljLWxpc3QiPgogICAgICAgICAgICAke3RoaXMudm9sdW1lcy5sZW5ndGg9PT0wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1oaW50Ij5ObyB2b2x1bWVzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgICAgYDp0aGlzLnZvbHVtZXMubWFwKChuZSxlZSk9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHluYW1pYy1yb3ciPgogICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLWlucHV0IgogICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iL2hvc3QvcGF0aCIKICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7bmUuaG9zdFBhdGh9CiAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke3plPT50aGlzLnVwZGF0ZVZvbHVtZShlZSwiaG9zdFBhdGgiLHplLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIvY29udGFpbmVyL3BhdGgiCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke25lLmNvbnRhaW5lclBhdGh9CiAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke3plPT50aGlzLnVwZGF0ZVZvbHVtZShlZSwiY29udGFpbmVyUGF0aCIsemUudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94LXJvdyI+CiAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjaGVja2JveCIKICAgICAgICAgICAgICAgICAgICA/Y2hlY2tlZD0ke25lLnJlYWRPbmx5fQogICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHt6ZT0+dGhpcy51cGRhdGVWb2x1bWUoZWUsInJlYWRPbmx5Iix6ZS50YXJnZXQuY2hlY2tlZCl9CiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvcm0taGludCI+Uk88L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InJlbW92ZS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLnJlbW92ZVZvbHVtZShlZSl9PgogICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRkLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkVm9sdW1lKCl9PgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICA8bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgQWRkIFZvbHVtZSBNb3VudAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gUmVzb3VyY2UgTGltaXRzIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8cmVjdCB4PSIxIiB5PSI0IiB3aWR0aD0iMjIiIGhlaWdodD0iMTYiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgIDxsaW5lIHgxPSIxIiB5MT0iMTAiIHgyPSIyMyIgeTI9IjEwIj48L2xpbmU+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBSZXNvdXJjZSBMaW1pdHMKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPkNQVSBMaW1pdDwvbGFiZWw+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iZS5nLiwgMS4wIG9yIDAuNSIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuY3B1TGltaXR9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHtuZT0+dGhpcy5jcHVMaW1pdD1uZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+TnVtYmVyIG9mIENQVXMgKGxlYXZlIGVtcHR5IGZvciB1bmxpbWl0ZWQpPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPk1lbW9yeSBMaW1pdDwvbGFiZWw+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0taW5wdXQiCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iZS5nLiwgNTEybSBvciAxZyIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMubWVtb3J5TGltaXR9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHtuZT0+dGhpcy5tZW1vcnlMaW1pdD1uZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taGludCI+TWVtb3J5IGxpbWl0IChsZWF2ZSBlbXB0eSBmb3IgdW5saW1pdGVkKTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFJlc3RhcnQgUG9saWN5ICYgTmV0d29yayAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTE5LjQgMTVhMS42NSAxLjY1IDAgMCAwIC4zMyAxLjgybC4wNi4wNmEyIDIgMCAwIDEgMCAyLjgzIDIgMiAwIDAgMS0yLjgzIDBsLS4wNi0uMDZhMS42NSAxLjY1IDAgMCAwLTEuODItLjMzIDEuNjUgMS42NSAwIDAgMC0xIDEuNTFWMjFhMiAyIDAgMCAxLTIgMiAyIDIgMCAwIDEtMi0ydi0uMDlBMS42NSAxLjY1IDAgMCAwIDkgMTkuNGExLjY1IDEuNjUgMCAwIDAtMS44Mi4zM2wtLjA2LjA2YTIgMiAwIDAgMS0yLjgzIDAgMiAyIDAgMCAxIDAtMi44M2wuMDYtLjA2YTEuNjUgMS42NSAwIDAgMCAuMzMtMS44MiAxLjY1IDEuNjUgMCAwIDAtMS41MS0xSDNhMiAyIDAgMCAxLTItMiAyIDIgMCAwIDEgMi0yaC4wOUExLjY1IDEuNjUgMCAwIDAgNC42IDlhMS42NSAxLjY1IDAgMCAwLS4zMy0xLjgybC0uMDYtLjA2YTIgMiAwIDAgMSAwLTIuODMgMiAyIDAgMCAxIDIuODMgMGwuMDYuMDZhMS42NSAxLjY1IDAgMCAwIDEuODIuMzNIOWExLjY1IDEuNjUgMCAwIDAgMS0xLjUxVjNhMiAyIDAgMCAxIDItMiAyIDIgMCAwIDEgMiAydi4wOWExLjY1IDEuNjUgMCAwIDAgMSAxLjUxIDEuNjUgMS42NSAwIDAgMCAxLjgyLS4zM2wuMDYtLjA2YTIgMiAwIDAgMSAyLjgzIDAgMiAyIDAgMCAxIDAgMi44M2wtLjA2LjA2YTEuNjUgMS42NSAwIDAgMC0uMzMgMS44MlY5YTEuNjUgMS42NSAwIDAgMCAxLjUxIDFIMjFhMiAyIDAgMCAxIDIgMiAyIDIgMCAwIDEtMiAyaC0uMDlhMS42NSAxLjY1IDAgMCAwLTEuNTEgMXoiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIENvbnRhaW5lciBTZXR0aW5ncwogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCI+UmVzdGFydCBQb2xpY3k8L2xhYmVsPgogICAgICAgICAgICAgIDxzZWxlY3QKICAgICAgICAgICAgICAgIGNsYXNzPSJmb3JtLXNlbGVjdCIKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMucmVzdGFydFBvbGljeX0KICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHtuZT0+dGhpcy5yZXN0YXJ0UG9saWN5PW5lLnRhcmdldC52YWx1ZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJhbHdheXMiPkFsd2F5czwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ib24tZmFpbHVyZSI+T24gRmFpbHVyZTwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ibmV2ZXIiPk5ldmVyPC9vcHRpb24+CiAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwiPk5ldHdvcmsgTW9kZTwvbGFiZWw+CiAgICAgICAgICAgICAgPHNlbGVjdAogICAgICAgICAgICAgICAgY2xhc3M9ImZvcm0tc2VsZWN0IgogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5uZXR3b3JrTW9kZX0KICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHtuZT0+dGhpcy5uZXR3b3JrTW9kZT1uZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYnJpZGdlIj5CcmlkZ2U8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Imhvc3QiPkhvc3Q8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im5vbmUiPk5vbmU8L29wdGlvbj4KICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgogICAgICAgIDxidXR0b24gY2xhc3M9ImJ1dHRvbiBzZWNvbmRhcnkiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNhbmNlbCgpfT5DYW5jZWw8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uCiAgICAgICAgICBjbGFzcz0iYnV0dG9uIHByaW1hcnkiCiAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmxvYWRpbmd8fCF0aGlzLmlzVmFsaWQoKX0KICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUNyZWF0ZSgpfQogICAgICAgID4KICAgICAgICAgICR7dGhpcy5sb2FkaW5nP3dgPGRpdiBjbGFzcz0ic3Bpbm5lciI+PC9kaXY+YDoiIn0KICAgICAgICAgICR7dGhpcy5sb2FkaW5nPyJEZXBsb3lpbmcuLi4iOiJEZXBsb3kgU2VydmljZSJ9CiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgYH1pc1ZhbGlkKCl7cmV0dXJuIHRoaXMuc2VydmljZU5hbWUudHJpbSgpIT09IiImJnRoaXMuaW1hZ2VVcmwudHJpbSgpIT09IiJ9YWRkUG9ydCgpe3RoaXMucG9ydHM9Wy4uLnRoaXMucG9ydHMse2hvc3RQb3J0OiIiLGNvbnRhaW5lclBvcnQ6IiIscHJvdG9jb2w6InRjcCJ9XX1yZW1vdmVQb3J0KG5lKXt0aGlzLnBvcnRzPXRoaXMucG9ydHMuZmlsdGVyKChlZSx6ZSk9PnplIT09bmUpfXVwZGF0ZVBvcnQobmUsZWUsemUpe2xldCBIZT1bLi4udGhpcy5wb3J0c107SGVbbmVdW2VlXT16ZSx0aGlzLnBvcnRzPUhlfWFkZEVudlZhcigpe3RoaXMuZW52VmFycz1bLi4udGhpcy5lbnZWYXJzLHtrZXk6IiIsdmFsdWU6IiJ9XX1yZW1vdmVFbnZWYXIobmUpe3RoaXMuZW52VmFycz10aGlzLmVudlZhcnMuZmlsdGVyKChlZSx6ZSk9PnplIT09bmUpfXVwZGF0ZUVudlZhcihuZSxlZSx6ZSl7bGV0IEhlPVsuLi50aGlzLmVudlZhcnNdO0hlW25lXVtlZV09emUsdGhpcy5lbnZWYXJzPUhlfWFkZFZvbHVtZSgpe3RoaXMudm9sdW1lcz1bLi4udGhpcy52b2x1bWVzLHtob3N0UGF0aDoiIixjb250YWluZXJQYXRoOiIiLHJlYWRPbmx5OiExfV19cmVtb3ZlVm9sdW1lKG5lKXt0aGlzLnZvbHVtZXM9dGhpcy52b2x1bWVzLmZpbHRlcigoZWUsemUpPT56ZSE9PW5lKX11cGRhdGVWb2x1bWUobmUsZWUsemUpe2xldCBIZT1bLi4udGhpcy52b2x1bWVzXTtIZVtuZV1bZWVdPXplLHRoaXMudm9sdW1lcz1IZX1oYW5kbGVDYW5jZWwoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjYW5jZWwiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNyZWF0ZSgpe2xldCBuZT17bmFtZTp0aGlzLnNlcnZpY2VOYW1lLnRyaW0oKSxpbWFnZTp0aGlzLmltYWdlVXJsLnRyaW0oKSxwb3J0czp0aGlzLnBvcnRzLmZpbHRlcihlZT0+ZWUuaG9zdFBvcnQmJmVlLmNvbnRhaW5lclBvcnQpLGVudlZhcnM6dGhpcy5lbnZWYXJzLmZpbHRlcihlZT0+ZWUua2V5KSx2b2x1bWVzOnRoaXMudm9sdW1lcy5maWx0ZXIoZWU9PmVlLmhvc3RQYXRoJiZlZS5jb250YWluZXJQYXRoKSxjcHVMaW1pdDp0aGlzLmNwdUxpbWl0LG1lbW9yeUxpbWl0OnRoaXMubWVtb3J5TGltaXQscmVzdGFydFBvbGljeTp0aGlzLnJlc3RhcnRQb2xpY3ksbmV0d29ya01vZGU6dGhpcy5uZXR3b3JrTW9kZSxlbmFibGVNb25nb0RCOnRoaXMuZW5hYmxlTW9uZ29EQixlbmFibGVTMzp0aGlzLmVuYWJsZVMzLGVuYWJsZUNsaWNrSG91c2U6dGhpcy5lbmFibGVDbGlja0hvdXNlfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjcmVhdGUtc2VydmljZSIse2RldGFpbDpuZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXJlc2V0KCl7dGhpcy5zZXJ2aWNlTmFtZT0iIix0aGlzLmltYWdlVXJsPSIiLHRoaXMuc2VsZWN0ZWRSZWdpc3RyeT0iIix0aGlzLnBvcnRzPVt7aG9zdFBvcnQ6IiIsY29udGFpbmVyUG9ydDoiIixwcm90b2NvbDoidGNwIn1dLHRoaXMuZW52VmFycz1be2tleToiIix2YWx1ZToiIn1dLHRoaXMudm9sdW1lcz1bXSx0aGlzLmNwdUxpbWl0PSIiLHRoaXMubWVtb3J5TGltaXQ9IiIsdGhpcy5yZXN0YXJ0UG9saWN5PSJhbHdheXMiLHRoaXMubmV0d29ya01vZGU9ImJyaWRnZSIsdGhpcy5zaG93QWR2YW5jZWQ9ITEsdGhpcy5lbmFibGVNb25nb0RCPSExLHRoaXMuZW5hYmxlUzM9ITEsdGhpcy5lbmFibGVDbGlja0hvdXNlPSExfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxiYSh0aGlzLFYpfXN0YXRpY3tiYShhLHIpfX07cmV0dXJuIGxlPWF9KSgpfSk7dmFyIGFtZSx5Zyx2QmEsb2lhPXUoKCk9Pnt2ZSgpO2FtZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0seWc9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHZCYT0oKCk9PntsZXQgdD1bdWUoInN6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pQbGF0Zm9ybVNlcnZpY2VEZXRhaWxWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sYz1bUCh7dHlwZTpBcnJheX0pXSxwPVtQKHt0eXBlOkJvb2xlYW59KV0sYW1lKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VydmljZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4ic2VydmljZSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnNlcnZpY2UsImdldCIpLHNldDppKChnLHkpPT57Zy5zZXJ2aWNlPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sbyxsKSxhbWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJsb2dzImluIGcsImhhcyIpLGdldDppKGc9PmcubG9ncywiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmxvZ3M9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLGFtZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbkxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImFjdGlvbkxvYWRpbmciaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5hY3Rpb25Mb2FkaW5nLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuYWN0aW9uTG9hZGluZz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LGgsbSksYW1lKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmJ9LG51bGwsciksdj1hPWUudmFsdWUsYiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTAwMHB4OyI+CiAgICAgIDxzei1wbGF0Zm9ybS1zZXJ2aWNlLWRldGFpbC12aWV3CiAgICAgICAgLnNlcnZpY2U9JHt7aWQ6IjEiLG5hbWU6Ik1vbmdvREIiLHR5cGU6Im1vbmdvZGIiLHN0YXR1czoicnVubmluZyIsdmVyc2lvbjoiNy4wLjQiLGhvc3Q6ImxvY2FsaG9zdCIscG9ydDoyNzAxNyxjcmVkZW50aWFsczp7dXNlcm5hbWU6ImFkbWluIixwYXNzd29yZDoiXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyXHUyMDIyIn0sY29uZmlnOntyZXBsaWNhU2V0OiJyczAiLGF1dGhFbmFibGVkOiEwfSxtZXRyaWNzOntjcHU6MTIsbWVtb3J5OjQ1LHN0b3JhZ2U6MjMsY29ubmVjdGlvbnM6OH19fQogICAgICAgIC5sb2dzPSR7W3t0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjIiLGxldmVsOiJpbmZvIixtZXNzYWdlOiJDb25uZWN0aW9uIGFjY2VwdGVkIGZyb20gMTI3LjAuMC4xOjU0MzIxIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoyMCIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6IkluZGV4IGJ1aWxkIGNvbXBsZXRlZCBvbiBjb2xsZWN0aW9uIHVzZXJzIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoxNSIsbGV2ZWw6Indhcm4iLG1lc3NhZ2U6IlNsb3cgcXVlcnkgZGV0ZWN0ZWQ6IDEuMnMgb24gY29sbGVjdGlvbiBvcmRlcnMifSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjEwIixsZXZlbDoiaW5mbyIsbWVzc2FnZToiQ2hlY2twb2ludCBjb21wbGV0ZSJ9XX0KICAgICAgPjwvc3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldz4KICAgIDwvZGl2PgogIGAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIlBsYXRmb3JtIl07I2U9eWcodGhpcyxvLG51bGwpO2dldCBzZXJ2aWNlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlcnZpY2UoYil7dGhpcy4jZT1ifSN0PSh5Zyh0aGlzLGwpLHlnKHRoaXMsZCxbXSkpO2dldCBsb2dzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvZ3MoYil7dGhpcy4jdD1ifSNyPSh5Zyh0aGlzLGYpLHlnKHRoaXMsaCwhMSkpO2dldCBhY3Rpb25Mb2FkaW5nKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFjdGlvbkxvYWRpbmcoYil7dGhpcy4jcj1ifXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuaGVhZGVyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWljb24gewogICAgICAgIHdpZHRoOiA1NnB4OwogICAgICAgIGhlaWdodDogNTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlLWljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnNlcnZpY2UtZGV0YWlscyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuc2VydmljZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2VydmljZS1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ydW5uaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5zdG9wcGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90IHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGFuZ2VyOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLXRpbGUuZnVsbC13aWR0aCB7CiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSBzdmcgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5pbmZvLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tcm93Omxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5pbmZvLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmluZm8tdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5jb3B5LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5tZXRyaWNzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkgewogICAgICAgIC5tZXRyaWNzLWdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tZXRyaWMtY2FyZCB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLm1ldHJpYy12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1ldHJpYy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtZmlsbC5sb3cgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMjJjNTVlIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWZpbGwubWVkaXVtIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VhYjMwOCIsIiNlYWIzMDgiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1maWxsLmhpZ2ggewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNvbmZpZy1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLWl0ZW06bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbmZpZy1rZXkgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY29uZmlnLXZhbHVlLnRydWUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5jb25maWctdmFsdWUuZmFsc2UgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5zZXJ2aWNlP3dgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pY29uIj4KICAgICAgICAgICAgJHt0aGlzLnJlbmRlclNlcnZpY2VJY29uKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtZGV0YWlscyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtbmFtZSI+JHt0aGlzLnNlcnZpY2UubmFtZX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1tZXRhIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7dGhpcy5zZXJ2aWNlLnN0YXR1c30iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLnN0YXR1cy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0aGlzLnNlcnZpY2Uuc3RhdHVzLnNsaWNlKDEpfQogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj5WZXJzaW9uICR7dGhpcy5zZXJ2aWNlLnZlcnNpb259PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1hY3Rpb25zIj4KICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLnN0YXR1cz09PSJydW5uaW5nIj93YAogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJlc3RhcnQoKX0+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjMgNCAyMyAxMCAxNyAxMCI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjEgMjAgMSAxNCA3IDE0Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTMuNTEgOWE5IDkgMCAwIDEgMTQuODUtMy4zNkwyMyAxME0xIDE0bDQuNjQgNC4zNkE5IDkgMCAwIDAgMjAuNDkgMTUiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBSZXN0YXJ0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRhbmdlciIgP2Rpc2FibGVkPSR7dGhpcy5hY3Rpb25Mb2FkaW5nfSBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTdG9wKCl9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxyZWN0IHg9IjYiIHk9IjYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjEiPjwvcmVjdD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBTdG9wCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgYDp3YAogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIiA/ZGlzYWJsZWQ9JHt0aGlzLmFjdGlvbkxvYWRpbmd9IEBjbGljaz0keygpPT50aGlzLmhhbmRsZVN0YXJ0KCl9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI1LDMgMTksMTIgNSwyMSI+PC9wb2x5Z29uPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIFN0YXJ0CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICA8IS0tIENvbm5lY3Rpb24gSW5mbyAtLT4KICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEiPjwvcGF0aD4KICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICBDb25uZWN0aW9uCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPkhvc3Q8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UuaG9zdH0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jb3B5VG9DbGlwYm9hcmQodGhpcy5zZXJ2aWNlLmhvc3QpfT4KICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxNUg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMiAyIDAgMCAxIDIgMnYxIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5Qb3J0PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4ke3RoaXMuc2VydmljZS5wb3J0fTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzPy51c2VybmFtZT93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5Vc2VybmFtZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UuY3JlZGVudGlhbHMudXNlcm5hbWV9CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jb3B5VG9DbGlwYm9hcmQodGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzLnVzZXJuYW1lKX0+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+UGFzc3dvcmQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCiPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAke3RoaXMuc2VydmljZS5jcmVkZW50aWFscz8uYWNjZXNzS2V5P3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPkFjY2VzcyBLZXk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5zZXJ2aWNlLmNyZWRlbnRpYWxzLmFjY2Vzc0tleX0KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29weS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNvcHlUb0NsaXBib2FyZCh0aGlzLnNlcnZpY2UuY3JlZGVudGlhbHMuYWNjZXNzS2V5KX0+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+U2VjcmV0IEtleTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj7igKLigKLigKLigKLigKLigKLigKLigKI8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgPCEtLSBDb25maWd1cmF0aW9uIC0tPgogICAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTkuNCAxNWExLjY1IDEuNjUgMCAwIDAgLjMzIDEuODJsLjA2LjA2YTIgMiAwIDAgMSAwIDIuODMgMiAyIDAgMCAxLTIuODMgMGwtLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAtMS44Mi0uMzMgMS42NSAxLjY1IDAgMCAwLTEgMS41MVYyMWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMS0yLTJ2LS4wOUExLjY1IDEuNjUgMCAwIDAgOSAxOS40YTEuNjUgMS42NSAwIDAgMC0xLjgyLjMzbC0uMDYuMDZhMiAyIDAgMCAxLTIuODMgMCAyIDIgMCAwIDEgMC0yLjgzbC4wNi0uMDZhMS42NSAxLjY1IDAgMCAwIC4zMy0xLjgyIDEuNjUgMS42NSAwIDAgMC0xLjUxLTFIM2EyIDIgMCAwIDEtMi0yIDIgMiAwIDAgMSAyLTJoLjA5QTEuNjUgMS42NSAwIDAgMCA0LjYgOWExLjY1IDEuNjUgMCAwIDAtLjMzLTEuODJsLS4wNi0uMDZhMiAyIDAgMCAxIDAtMi44MyAyIDIgMCAwIDEgMi44MyAwbC4wNi4wNmExLjY1IDEuNjUgMCAwIDAgMS44Mi4zM0g5YTEuNjUgMS42NSAwIDAgMCAxLTEuNTFWM2EyIDIgMCAwIDEgMi0yIDIgMiAwIDAgMSAyIDJ2LjA5YTEuNjUgMS42NSAwIDAgMCAxIDEuNTEgMS42NSAxLjY1IDAgMCAwIDEuODItLjMzbC4wNi0uMDZhMiAyIDAgMCAxIDIuODMgMCAyIDIgMCAwIDEgMCAyLjgzbC0uMDYuMDZhMS42NSAxLjY1IDAgMCAwLS4zMyAxLjgyVjlhMS42NSAxLjY1IDAgMCAwIDEuNTEgMUgyMWEyIDIgMCAwIDEgMiAyIDIgMiAwIDAgMS0yIDJoLS4wOWExLjY1IDEuNjUgMCAwIDAtMS41MSAxeiI+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIENvbmZpZ3VyYXRpb24KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAgICR7T2JqZWN0LmVudHJpZXModGhpcy5zZXJ2aWNlLmNvbmZpZykubWFwKChbYixnXSk9PndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbmZpZy1rZXkiPiR7dGhpcy5mb3JtYXRDb25maWdLZXkoYil9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbmZpZy12YWx1ZSAke3R5cGVvZiBnPT0iYm9vbGVhbiI/Zz8idHJ1ZSI6ImZhbHNlIjoiIn0iPiR7dGhpcy5mb3JtYXRDb25maWdWYWx1ZShnKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDwhLS0gTWV0cmljcyAtLT4KICAgICAgICAke3RoaXMuc2VydmljZS5tZXRyaWNzP3dgCiAgICAgICAgICA8ZGVlcy10aWxlIGNsYXNzPSJmdWxsLXdpZHRoIj4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxOCIgeTE9IjIwIiB4Mj0iMTgiIHkyPSIxMCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIyMCIgeDI9IjEyIiB5Mj0iNCI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8bGluZSB4MT0iNiIgeTE9IjIwIiB4Mj0iNiIgeTI9IjE0Ij48L2xpbmU+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgIFJlc291cmNlIFVzYWdlCiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpY3MtZ3JpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5jcHV9JTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtbGFiZWwiPkNQVTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwgJHt0aGlzLmdldFByb2dyZXNzQ2xhc3ModGhpcy5zZXJ2aWNlLm1ldHJpY3MuY3B1KX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5jcHV9JSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5tZW1vcnl9JTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtbGFiZWwiPk1lbW9yeTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWZpbGwgJHt0aGlzLmdldFByb2dyZXNzQ2xhc3ModGhpcy5zZXJ2aWNlLm1ldHJpY3MubWVtb3J5KX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5tZW1vcnl9JSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy12YWx1ZSI+JHt0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlfSU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLWxhYmVsIj5TdG9yYWdlPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtZmlsbCAke3RoaXMuZ2V0UHJvZ3Jlc3NDbGFzcyh0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlKX0iIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnNlcnZpY2UubWV0cmljcy5zdG9yYWdlfSUiPjwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHt0aGlzLnNlcnZpY2UubWV0cmljcy5jb25uZWN0aW9ucyE9PXZvaWQgMD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljLXZhbHVlIj4ke3RoaXMuc2VydmljZS5tZXRyaWNzLmNvbm5lY3Rpb25zfTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYy1sYWJlbCI+Q29ubmVjdGlvbnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIGA6IiJ9CgogICAgICAgIDwhLS0gTG9ncyAtLT4KICAgICAgICA8ZGl2IHN0eWxlPSJncmlkLWNvbHVtbjogMSAvIC0xOyI+CiAgICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgICAgLmxhYmVsPSR7IlNlcnZpY2UgTG9ncyJ9CiAgICAgICAgICAgIC5sb2dFbnRyaWVzPSR7dGhpcy5sb2dzLm1hcChiPT4oe3RpbWVzdGFtcDpiLnRpbWVzdGFtcC5pbmNsdWRlcygiVCIpP2IudGltZXN0YW1wOm5ldyBEYXRlKGIudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGxldmVsOmIubGV2ZWwsbWVzc2FnZTpiLm1lc3NhZ2V9KSl9CiAgICAgICAgICAgIC5hdXRvU2Nyb2xsPSR7ITB9CiAgICAgICAgICAgIC5tYXhFbnRyaWVzPSR7MmUzfQogICAgICAgICAgICAuc2hvd01ldHJpY3M9JHshMH0KICAgICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGA6d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gc2VydmljZSBzZWxlY3RlZDwvZGl2PmB9cmVuZGVyU2VydmljZUljb24oKXtzd2l0Y2godGhpcy5zZXJ2aWNlPy50eXBlKXtjYXNlIm1vbmdvZGIiOnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNy45M2MtMy45NS0uNDktNy0zLjg1LTctNy45MyAwLS42Mi4wOC0xLjIxLjIxLTEuNzlMOSAxNXYxYzAgMS4xLjkgMiAyIDJ2MS45M3ptNi45LTIuNTRjLS4yNi0uODEtMS0xLjM5LTEuOS0xLjM5aC0xdi0zYzAtLjU1LS40NS0xLTEtMUg4di0yaDJjLjU1IDAgMS0uNDUgMS0xVjdoMmMxLjEgMCAyLS45IDItMnYtLjQxYzIuOTMgMS4xOSA1IDQuMDYgNSA3LjQxIDAgMi4wOC0uOCAzLjk3LTIuMSA1LjM5eiIvPjwvc3ZnPmA7Y2FzZSJtaW5pbyI6cmV0dXJuIHdgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTIxIDE2LjVjMCAuMzgtLjIxLjcxLS41My44OGwtNy45IDQuNDRjLS4xNi4xMi0uMzYuMTgtLjU3LjE4LS4yMSAwLS40MS0uMDYtLjU3LS4xOGwtNy45LTQuNDRBLjk5MS45OTEgMCAwIDEgMyAxNi41di05YzAtLjM4LjIxLS43MS41My0uODhsNy45LTQuNDRjLjE2LS4xMi4zNi0uMTguNTctLjE4LjIxIDAgLjQxLjA2LjU3LjE4bDcuOSA0LjQ0Yy4zMi4xNy41My41LjUzLjg4djl6Ii8+PC9zdmc+YDtjYXNlImNsaWNraG91c2UiOnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIi8+PHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjYiIGhlaWdodD0iMTUiLz48cmVjdCB4PSIxNiIgeT0iMTIiIHdpZHRoPSI2IiBoZWlnaHQ9IjEwIi8+PC9zdmc+YDtjYXNlInJlZGlzIjpyZXR1cm4gd2A8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTIgMkwyIDdsMTAgNSAxMC01LTEwLTV6TTIgMTdsMTAgNSAxMC01TTIgMTJsMTAgNSAxMC01Ii8+PC9zdmc+YDtkZWZhdWx0OnJldHVybiB3YDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PHJlY3QgeD0iMiIgeT0iMTQiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiPjwvcmVjdD48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSI2LjAxIiB5Mj0iNiI+PC9saW5lPjxsaW5lIHgxPSI2IiB5MT0iMTgiIHgyPSI2LjAxIiB5Mj0iMTgiPjwvbGluZT48L3N2Zz5gfX1nZXRQcm9ncmVzc0NsYXNzKGIpe3JldHVybiBiPDUwPyJsb3ciOmI8ODA/Im1lZGl1bSI6ImhpZ2gifWZvcm1hdENvbmZpZ0tleShiKXtyZXR1cm4gYi5yZXBsYWNlKC8oW0EtWl0pL2csIiAkMSIpLnJlcGxhY2UoL14uLyxnPT5nLnRvVXBwZXJDYXNlKCkpfWZvcm1hdENvbmZpZ1ZhbHVlKGIpe3JldHVybiB0eXBlb2YgYj09ImJvb2xlYW4iP2I/IkVuYWJsZWQiOiJEaXNhYmxlZCI6U3RyaW5nKGIpfWNvcHlUb0NsaXBib2FyZChiKXtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChiKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb3B5Iix7ZGV0YWlsOmIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTdGFydCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInN0YXJ0Iix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVN0b3AoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzdG9wIix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlc3RhcnQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXN0YXJ0Iix7ZGV0YWlsOnRoaXMuc2VydmljZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx5Zyh0aGlzLG0pfXN0YXRpY3t5ZyhhLHIpfX07cmV0dXJuIHY9YX0pKCl9KTt2YXIgY2FlLF8zLHlCYSxsaWE9dSgoKT0+e3ZlKCk7Y2FlPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxfMz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0seUJhPSgoKT0+e2xldCB0PVt1ZSgic3otZG9tYWluLWRldGFpbC12aWV3IildLGUscj1bXSxhLHM9eWUsbixvPVtdLGw9W10sYyxkPVtdLGY9W10scCxoPVtdLG09W10sdixiPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6RG9tYWluRGV0YWlsVmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6T2JqZWN0fSldLGM9W1Aoe3R5cGU6T2JqZWN0fSldLHA9W1Aoe3R5cGU6QXJyYXl9KV0sdj1bUCh7dHlwZTpCb29sZWFufSldLGNhZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRvbWFpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iZG9tYWluImluIE0sImhhcyIpLGdldDppKE09Pk0uZG9tYWluLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uZG9tYWluPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sbyxsKSxjYWUodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjZXJ0aWZpY2F0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4iY2VydGlmaWNhdGUiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5jZXJ0aWZpY2F0ZSwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmNlcnRpZmljYXRlPU59LCJzZXQiKX0sbWV0YWRhdGE6a30sZCxmKSxjYWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkbnNSZWNvcmRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJkbnNSZWNvcmRzImluIE0sImhhcyIpLGdldDppKE09Pk0uZG5zUmVjb3JkcywiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmRuc1JlY29yZHM9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxoLG0pLGNhZSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGlvbkxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImFjdGlvbkxvYWRpbmciaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5hY3Rpb25Mb2FkaW5nLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uYWN0aW9uTG9hZGluZz1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsZyksY2FlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwscikseT1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTAwMHB4OyI+CiAgICAgIDxzei1kb21haW4tZGV0YWlsLXZpZXcKICAgICAgICAuZG9tYWluPSR7e2lkOiIxIixuYW1lOiJleGFtcGxlLmNvbSIsc3RhdHVzOiJhY3RpdmUiLHZlcmlmaWVkOiEwLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMCIscHJveHlSb3V0ZXM6WyIvYXBpLyoiLCIvYXBwLyoiXX19CiAgICAgICAgLmNlcnRpZmljYXRlPSR7e2lkOiIxIixkb21haW46ImV4YW1wbGUuY29tIixpc3N1ZXI6IkxldCdzIEVuY3J5cHQiLHZhbGlkRnJvbToiMjAyNC0wMS0xMCIsdmFsaWRVbnRpbDoiMjAyNC0wNC0xMCIsZGF5c1JlbWFpbmluZzo0NSxzdGF0dXM6InZhbGlkIixhdXRvUmVuZXc6ITAsY2hhaW46WyJSMyIsIklTUkcgUm9vdCBYMSJdfX0KICAgICAgICAuZG5zUmVjb3Jkcz0ke1t7aWQ6IjEiLHR5cGU6IkEiLG5hbWU6IkAiLHZhbHVlOiIxOTIuMTY4LjEuMTAwIix0dGw6MzYwMH0se2lkOiIyIix0eXBlOiJDTkFNRSIsbmFtZToid3d3Iix2YWx1ZToiZXhhbXBsZS5jb20iLHR0bDozNjAwfSx7aWQ6IjMiLHR5cGU6Ik1YIixuYW1lOiJAIix2YWx1ZToibWFpbC5leGFtcGxlLmNvbSIsdHRsOjM2MDAscHJpb3JpdHk6MTB9LHtpZDoiNCIsdHlwZToiVFhUIixuYW1lOiJAIix2YWx1ZToidj1zcGYxIGluY2x1ZGU6X3NwZi5leGFtcGxlLmNvbSB+YWxsIix0dGw6MzYwMH1dfQogICAgICA+PC9zei1kb21haW4tZGV0YWlsLXZpZXc+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJOZXR3b3JrIl07I2U9XzModGhpcyxvLG51bGwpO2dldCBkb21haW4oKXtyZXR1cm4gdGhpcy4jZX1zZXQgZG9tYWluKGspe3RoaXMuI2U9a30jdD0oXzModGhpcyxsKSxfMyh0aGlzLGQsbnVsbCkpO2dldCBjZXJ0aWZpY2F0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBjZXJ0aWZpY2F0ZShrKXt0aGlzLiN0PWt9I3I9KF8zKHRoaXMsZiksXzModGhpcyxoLFtdKSk7Z2V0IGRuc1JlY29yZHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZG5zUmVjb3JkcyhrKXt0aGlzLiNyPWt9I2E9KF8zKHRoaXMsbSksXzModGhpcyxiLCExKSk7Z2V0IGFjdGlvbkxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYWN0aW9uTG9hZGluZyhrKXt0aGlzLiNhPWt9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZG9tYWluLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjNjNyIsInJnYmEoMjQ1LCAxNTgsIDExLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2Q5NzcwNiIsIiNmNTllMGIiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAuZG9tYWluLW1ldGEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC52ZXJpZmllZC1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAudmVyaWZpZWQtYmFkZ2Ugc3ZnIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRhbmdlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGFuZ2VyOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICBkZWVzLXRpbGUuZnVsbC13aWR0aCB7CiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSBzdmcgewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKCiAgICAgIC5zZWN0aW9uLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5jZXJ0LXN0YXR1cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjBmZGY0IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4xKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmNlcnQtc3RhdHVzLmV4cGlyaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZmJlYiIsInJnYmEoMjQ1LCAxNTgsIDExLCAwLjEpIil9OwogICAgICB9CgogICAgICAuY2VydC1zdGF0dXMuZXhwaXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWYyZjIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEpIil9OwogICAgICB9CgogICAgICAuY2VydC1pY29uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNlcnQtaWNvbi52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LWljb24uZXhwaXJpbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVmM2M3IiwicmdiYSgyNDUsIDE1OCwgMTEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZDk3NzA2IiwiI2Y1OWUwYiIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtaWNvbi5leHBpcmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtaWNvbiBzdmcgewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLmNlcnQtaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmNlcnQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5jZXJ0LXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5jZXJ0LWRheXMgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNlcnQtZGF5cy52YWxpZCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtZGF5cy5leHBpcmluZyB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZDk3NzA2IiwiI2Y1OWUwYiIpfTsKICAgICAgfQoKICAgICAgLmNlcnQtZGF5cy5leHBpcmVkIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuY2VydC1kYXlzLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuaW5mby1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweCAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5pbmZvLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAuaW5mby1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5pbmZvLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuaW5mby12YWx1ZS5lbmFibGVkIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuY2hhaW4tbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5jaGFpbi1iYWRnZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZG5zLXRhYmxlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRucy1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4MHB4IDFmciAyZnIgODBweCA2MHB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmRucy1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4MHB4IDFmciAyZnIgODBweCA2MHB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuZG5zLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CgogICAgICAuZG5zLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIG1hcmdpbjogMCAtMTZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmRucy10eXBlIHsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGJlYWZlIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuZG5zLW5hbWUgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5kbnMtdmFsdWUgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5kbnMtdHRsIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZG5zLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5pY29uLWJ1dHRvbi5kYW5nZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuaWNvbi1idXR0b24gc3ZnIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5yb3V0ZXMtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5yb3V0ZS1iYWRnZSB7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5kb21haW4/d2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItaW5mbyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkb21haW4tbmFtZSI+CiAgICAgICAgICAgICR7dGhpcy5kb21haW4ubmFtZX0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke3RoaXMuZG9tYWluLnN0YXR1c30iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtZG90Ij48L3NwYW4+CiAgICAgICAgICAgICAgJHt0aGlzLmRvbWFpbi5zdGF0dXMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdGhpcy5kb21haW4uc3RhdHVzLnNsaWNlKDEpfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpbi1tZXRhIj4KICAgICAgICAgICAgJHt0aGlzLmRvbWFpbi52ZXJpZmllZD93YAogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2ZXJpZmllZC1iYWRnZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiAxMS4wOFYxMmExMCAxMCAwIDEgMS01LjkzLTkuMTQiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjIgNCAxMiAxNC4wMSA5IDExLjAxIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICBWZXJpZmllZAogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgYDp3YDxzcGFuPk5vdCB2ZXJpZmllZDwvc3Bhbj5gfQogICAgICAgICAgICA8c3Bhbj5BZGRlZCAke3RoaXMuZG9tYWluLmNyZWF0ZWRBdH08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICAke3RoaXMuZG9tYWluLnZlcmlmaWVkPyIiOndgCiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iID9kaXNhYmxlZD0ke3RoaXMuYWN0aW9uTG9hZGluZ30gQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlVmVyaWZ5KCl9PgogICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIFZlcmlmeSBEb21haW4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICBgfQogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkYW5nZXIiID9kaXNhYmxlZD0ke3RoaXMuYWN0aW9uTG9hZGluZ30gQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlKCl9PgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMyA2IDUgNiAyMSA2Ij48L3BvbHlsaW5lPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSA2djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZtMyAwVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MiI+PC9wYXRoPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgRGVsZXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICA8IS0tIENlcnRpZmljYXRlIFNlY3Rpb24gLS0+CiAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cmVjdCB4PSIzIiB5PSIxMSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjExIiByeD0iMiIgcnk9IjIiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03IDExVjdhNSA1IDAgMCAxIDEwIDB2NCI+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIFNTTCBDZXJ0aWZpY2F0ZQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgICAgJHt0aGlzLmNlcnRpZmljYXRlP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC1zdGF0dXMgJHt0aGlzLmNlcnRpZmljYXRlLnN0YXR1c30iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC1pY29uICR7dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXN9Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmNlcnRpZmljYXRlLnN0YXR1cz09PSJ2YWxpZCI/d2AKICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIgMTEuMDhWMTJhMTAgMTAgMCAxIDEtNS45My05LjE0Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIyMiA0IDEyIDE0LjAxIDkgMTEuMDEiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIGA6dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXM9PT0iZXhwaXJpbmciP3dgCiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iOCIgeDI9IjEyIiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIuMDEiIHkyPSIxNiI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE1IiB5MT0iOSIgeDI9IjkiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjkiIHkxPSI5IiB4Mj0iMTUiIHkyPSIxNSI+PC9saW5lPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LWluZm8iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LXRpdGxlIj4ke3RoaXMuY2VydGlmaWNhdGUuc3RhdHVzPT09InZhbGlkIj8iQ2VydGlmaWNhdGUgVmFsaWQiOnRoaXMuY2VydGlmaWNhdGUuc3RhdHVzPT09ImV4cGlyaW5nIj8iQ2VydGlmaWNhdGUgRXhwaXJpbmcgU29vbiI6IkNlcnRpZmljYXRlIEV4cGlyZWQifTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LXN1YnRpdGxlIj5Jc3N1ZWQgYnkgJHt0aGlzLmNlcnRpZmljYXRlLmlzc3Vlcn08L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2VydC1kYXlzICR7dGhpcy5jZXJ0aWZpY2F0ZS5zdGF0dXN9Ij4ke01hdGguYWJzKHRoaXMuY2VydGlmaWNhdGUuZGF5c1JlbWFpbmluZyl9PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtZGF5cy1sYWJlbCI+JHt0aGlzLmNlcnRpZmljYXRlLmRheXNSZW1haW5pbmc+PTA/ImRheXMgbGVmdCI6ImRheXMgYWdvIn08L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+VmFsaWQgRnJvbTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLXZhbHVlIj4ke3RoaXMuY2VydGlmaWNhdGUudmFsaWRGcm9tfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXJvdyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby1sYWJlbCI+VmFsaWQgVW50aWw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5mby12YWx1ZSI+JHt0aGlzLmNlcnRpZmljYXRlLnZhbGlkVW50aWx9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmZvLWxhYmVsIj5BdXRvLVJlbmV3PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tdmFsdWUgJHt0aGlzLmNlcnRpZmljYXRlLmF1dG9SZW5ldz8iZW5hYmxlZCI6IiJ9Ij4ke3RoaXMuY2VydGlmaWNhdGUuYXV0b1JlbmV3PyJFbmFibGVkIjoiRGlzYWJsZWQifTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAke3RoaXMuY2VydGlmaWNhdGUuY2hhaW4mJnRoaXMuY2VydGlmaWNhdGUuY2hhaW4ubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZm8tbGFiZWwiPkNlcnRpZmljYXRlIENoYWluPC9zcGFuPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFpbi1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAke3RoaXMuY2VydGlmaWNhdGUuY2hhaW4ubWFwKGs9PndgPHNwYW4gY2xhc3M9ImNoYWluLWJhZGdlIj4ke2t9PC9zcGFuPmApfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gY2VydGlmaWNhdGUgY29uZmlndXJlZDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMuY2VydGlmaWNhdGU/d2AKICAgICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJzZWN0aW9uLWZvb3RlciI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlUmVuZXdDZXJ0aWZpY2F0ZSgpfT5SZW5ldzwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDwhLS0gUHJveHkgUm91dGVzIFNlY3Rpb24gLS0+CiAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNiAzIDIxIDMgMjEgOCI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI0IiB5MT0iMjAiIHgyPSIyMSIgeTI9IjMiPjwvbGluZT4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIxIDE2IDIxIDIxIDE2IDIxIj48L3BvbHlsaW5lPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjE1IiB5MT0iMTUiIHgyPSIyMSIgeTI9IjIxIj48L2xpbmU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iNCIgeTE9IjQiIHgyPSI5IiB5Mj0iOSI+PC9saW5lPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIFByb3h5IFJvdXRlcwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgICAgJHt0aGlzLmRvbWFpbi5wcm94eVJvdXRlcyYmdGhpcy5kb21haW4ucHJveHlSb3V0ZXMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3V0ZXMtbGlzdCI+CiAgICAgICAgICAgICAgICAke3RoaXMuZG9tYWluLnByb3h5Um91dGVzLm1hcChrPT53YAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icm91dGUtYmFkZ2UiPiR7a308L3NwYW4+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj5ObyBwcm94eSByb3V0ZXMgY29uZmlndXJlZDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgIDwhLS0gRE5TIFJlY29yZHMgU2VjdGlvbiAtLT4KICAgICAgICA8ZGVlcy10aWxlIGNsYXNzPSJmdWxsLXdpZHRoIj4KICAgICAgICAgIDxkaXYgc2xvdD0iaGVhZGVyIiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICA8bGluZSB4MT0iMiIgeTE9IjEyIiB4Mj0iMjIiIHkyPSIxMiI+PC9saW5lPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyIDJhMTUuMyAxNS4zIDAgMCAxIDQgMTAgMTUuMyAxNS4zIDAgMCAxLTQgMTAgMTUuMyAxNS4zIDAgMCAxLTQtMTAgMTUuMyAxNS4zIDAgMCAxIDQtMTB6Ij48L3BhdGg+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgRE5TIFJlY29yZHMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGVudCI+CiAgICAgICAgICAgICR7dGhpcy5kbnNSZWNvcmRzLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG5zLXRhYmxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRucy1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8c3Bhbj5UeXBlPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj5OYW1lPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj5WYWx1ZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+VFRMPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7dGhpcy5kbnNSZWNvcmRzLm1hcChrPT53YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkbnMtcm93Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG5zLXR5cGUiPiR7ay50eXBlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG5zLW5hbWUiPiR7ay5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG5zLXZhbHVlIiB0aXRsZT0iJHtrLnZhbHVlfSI+JHtrLnByaW9yaXR5P2Ake2sucHJpb3JpdHl9IGA6IiJ9JHtrLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG5zLXR0bCI+JHtrLnR0bH1zPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkbnMtYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgdGl0bGU9IkVkaXQiIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUVkaXREbnNSZWNvcmQoayl9PgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTExIDRINGEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC41IDIuNWEyLjEyMSAyLjEyMSAwIDAgMSAzIDNMMTIgMTVsLTQgMSAxLTQgOS41LTkuNXoiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIGRhbmdlciIgdGl0bGU9IkRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVsZXRlRG5zUmVjb3JkKGspfT4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjMgNiA1IDYgMjEgNiI+PC9wb2x5bGluZT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2bTMgMFY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gRE5TIHJlY29yZHMgY29uZmlndXJlZDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9InNlY3Rpb24tZm9vdGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWRkRG5zUmVjb3JkKCl9PgogICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgQWRkIFJlY29yZAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgogICAgICA8L2Rpdj4KICAgIGA6d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gZG9tYWluIHNlbGVjdGVkPC9kaXY+YH1oYW5kbGVWZXJpZnkoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ2ZXJpZnktZG9tYWluIix7ZGV0YWlsOnRoaXMuZG9tYWluLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGVsZXRlLWRvbWFpbiIse2RldGFpbDp0aGlzLmRvbWFpbixidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVJlbmV3Q2VydGlmaWNhdGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZW5ldy1jZXJ0aWZpY2F0ZSIse2RldGFpbDp0aGlzLmNlcnRpZmljYXRlLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWRkRG5zUmVjb3JkKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWRkLWRucy1yZWNvcmQiLHtkZXRhaWw6dGhpcy5kb21haW4sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVFZGl0RG5zUmVjb3JkKGspe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImVkaXQtZG5zLXJlY29yZCIse2RldGFpbDprLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlRGVsZXRlRG5zUmVjb3JkKGspe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZS1kbnMtcmVjb3JkIix7ZGV0YWlsOmssYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksXzModGhpcyxnKX1zdGF0aWN7XzMoYSxyKX19O3JldHVybiB5PWF9KSgpfSk7dmFyIGRhZSxUMyx3QmEsY2lhPXUoKCk9Pnt2ZSgpO2RhZT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sVDM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LHdCYT0oKCk9PntsZXQgdD1bdWUoInN6LW10YS1saXN0LXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pNdGFMaXN0VmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBrPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6QXJyYXl9KV0sYz1baWUoKV0scD1baWUoKV0sdj1baWUoKV0sZGFlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW1haWxzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJlbWFpbHMiaW4gTSwiaGFzIiksZ2V0OmkoTT0+TS5lbWFpbHMsImdldCIpLHNldDppKChNLE4pPT57TS5lbWFpbHM9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxvLGwpLGRhZSh0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKE09PiJzZWFyY2hRdWVyeSJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uc2VhcmNoUXVlcnk9Tn0sInNldCIpfSxtZXRhZGF0YTprfSxkLGYpLGRhZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1c0ZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShNPT4ic3RhdHVzRmlsdGVyImluIE0sImhhcyIpLGdldDppKE09Pk0uc3RhdHVzRmlsdGVyLCJnZXQiKSxzZXQ6aSgoTSxOKT0+e00uc3RhdHVzRmlsdGVyPU59LCJzZXQiKX0sbWV0YWRhdGE6a30saCxtKSxkYWUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXJlY3Rpb25GaWx0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoTT0+ImRpcmVjdGlvbkZpbHRlciJpbiBNLCJoYXMiKSxnZXQ6aShNPT5NLmRpcmVjdGlvbkZpbHRlciwiZ2V0Iiksc2V0OmkoKE0sTik9PntNLmRpcmVjdGlvbkZpbHRlcj1OfSwic2V0Iil9LG1ldGFkYXRhOmt9LGIsZyksZGFlKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmt9LG51bGwscikseT1hPWUudmFsdWUsayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTprfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1tdGEtbGlzdC12aWV3CiAgICAgICAgLmVtYWlscz0ke1t7aWQ6IjEiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJ1c2VyQGV4YW1wbGUuY29tIixzdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDozMDoyMiIsbWVzc2FnZUlkOiI8YWJjMTIzQHNlcnZlLnpvbmU+IixzaXplOiIxMi40IEtCIn0se2lkOiIyIixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImJvdW5jZWQiLGZyb206ImFsZXJ0c0BzZXJ2ZS56b25lIix0bzoiaW52YWxpZEBub3doZXJlLnRlc3QiLHN1YmplY3Q6IlNlcnZpY2UgQWxlcnQ6IENQVSBVc2FnZSBIaWdoIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6Mjg6MTAiLG1lc3NhZ2VJZDoiPGRlZjQ1NkBzZXJ2ZS56b25lPiIsc2l6ZToiOC4yIEtCIn0se2lkOiIzIixkaXJlY3Rpb246ImluYm91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJzdXBwb3J0QGN1c3RvbWVyLmNvbSIsdG86ImFkbWluQHNlcnZlLnpvbmUiLHN1YmplY3Q6IlJlOiBJbmZyYXN0cnVjdHVyZSBSZXZpZXciLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyNTowMCIsbWVzc2FnZUlkOiI8Z2hpNzg5QGN1c3RvbWVyLmNvbT4iLHNpemU6IjI0LjEgS0IifSx7aWQ6IjQiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoicmVqZWN0ZWQiLGZyb206ImJpbGxpbmdAc2VydmUuem9uZSIsdG86ImJsb2NrZWRAc3BhbS1kb21haW4udGVzdCIsc3ViamVjdDoiSW52b2ljZSAjMjAyNC0wMDEiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyMDo0NSIsbWVzc2FnZUlkOiI8amtsMDEyQHNlcnZlLnpvbmU+IixzaXplOiI0NS42IEtCIn0se2lkOiI1IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6ImRlZmVycmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJzbG93QHJlbW90ZS1zZXJ2ZXIudGVzdCIsc3ViamVjdDoiUGFzc3dvcmQgUmVzZXQgUmVxdWVzdCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjE1OjMwIixtZXNzYWdlSWQ6Ijxtbm8zNDVAc2VydmUuem9uZT4iLHNpemU6IjYuOCBLQiJ9LHtpZDoiNiIsZGlyZWN0aW9uOiJpbmJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToiY2lAZ2l0aHViLmNvbSIsdG86ImRldm9wc0BzZXJ2ZS56b25lIixzdWJqZWN0OiJCdWlsZCAjNDUyMSBwYXNzZWQiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoxMDowMCIsbWVzc2FnZUlkOiI8cHFyNjc4QGdpdGh1Yi5jb20+IixzaXplOiIxNS4zIEtCIn0se2lkOiI3IixkaXJlY3Rpb246Im91dGJvdW5kIixzdGF0dXM6InBlbmRpbmciLGZyb206InJlcG9ydHNAc2VydmUuem9uZSIsdG86InRlYW1Ac2VydmUuem9uZSIsc3ViamVjdDoiV2Vla2x5IEluZnJhc3RydWN0dXJlIFJlcG9ydCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjA1OjAwIixtZXNzYWdlSWQ6IjxzdHU5MDFAc2VydmUuem9uZT4iLHNpemU6IjEwMi43IEtCIn1dfQogICAgICA+PC9zei1tdGEtbGlzdC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTVRBIl07I2U9VDModGhpcyxvLFtdKTtnZXQgZW1haWxzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGVtYWlscyhrKXt0aGlzLiNlPWt9I3Q9KFQzKHRoaXMsbCksVDModGhpcyxkLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KGspe3RoaXMuI3Q9a30jcj0oVDModGhpcyxmKSxUMyh0aGlzLGgsImFsbCIpKTtnZXQgc3RhdHVzRmlsdGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHN0YXR1c0ZpbHRlcihrKXt0aGlzLiNyPWt9I2E9KFQzKHRoaXMsbSksVDModGhpcyxiLCJhbGwiKSk7Z2V0IGRpcmVjdGlvbkZpbHRlcigpe3JldHVybiB0aGlzLiNhfXNldCBkaXJlY3Rpb25GaWx0ZXIoayl7dGhpcy4jYT1rfWdldCBmaWx0ZXJlZEVtYWlscygpe3JldHVybiB0aGlzLmVtYWlscy5maWx0ZXIoaz0+e2lmKHRoaXMuc3RhdHVzRmlsdGVyIT09ImFsbCImJmsuc3RhdHVzIT09dGhpcy5zdGF0dXNGaWx0ZXJ8fHRoaXMuZGlyZWN0aW9uRmlsdGVyIT09ImFsbCImJmsuZGlyZWN0aW9uIT09dGhpcy5kaXJlY3Rpb25GaWx0ZXIpcmV0dXJuITE7aWYodGhpcy5zZWFyY2hRdWVyeSl7bGV0IE09dGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpO3JldHVybiBrLmZyb20udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhNKXx8ay50by50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKE0pfHxrLnN1YmplY3QudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhNKXx8ay5tZXNzYWdlSWQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhNKX1yZXR1cm4hMH0pfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuZmlsdGVyLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLmNoaXAtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5jaGlwIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5jaGlwOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnJlc3VsdHMtY291bnQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC50YWJsZS1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0MHB4IDkwcHggMS41ZnIgMS41ZnIgMmZyIDE0MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3cgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0MHB4IDkwcHggMS41ZnIgMS41ZnIgMmZyIDE0MHB4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWJsZS1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhYmxlLXJvdzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CgogICAgICAuZGlyZWN0aW9uLWljb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmRpcmVjdGlvbi1pY29uLmluYm91bmQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5kaXJlY3Rpb24taWNvbi5vdXRib3VuZCB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5kZWxpdmVyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmJvdW5jZWQsCiAgICAgIC5zdGF0dXMtYmFkZ2UucmVqZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRlZmVycmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjljMyIsInJnYmEoMjUwLCAyMDQsIDIxLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2NhOGEwNCIsIiNmYWNjMTUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuZW1haWwtZnJvbSwKICAgICAgLmVtYWlsLXRvIHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5lbWFpbC1zdWJqZWN0IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmVtYWlsLXRpbWVzdGFtcCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBrPXRoaXMuZmlsdGVyZWRFbWFpbHM7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1iYXIiPgogICAgICAgIDxpbnB1dAogICAgICAgICAgY2xhc3M9InNlYXJjaC1pbnB1dCIKICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGJ5IGZyb20sIHRvLCBzdWJqZWN0LCBvciBtZXNzYWdlIElELi4uIgogICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgIEBpbnB1dD0ke009Pnt0aGlzLnNlYXJjaFF1ZXJ5PU0udGFyZ2V0LnZhbHVlfX0KICAgICAgICAvPgogICAgICAgIDxkaXYgY2xhc3M9ImNoaXAtZ3JvdXAiPgogICAgICAgICAgJHtbImFsbCIsImluYm91bmQiLCJvdXRib3VuZCJdLm1hcChNPT53YAogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImNoaXAgJHt0aGlzLmRpcmVjdGlvbkZpbHRlcj09PU0/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0keygpPT57dGhpcy5kaXJlY3Rpb25GaWx0ZXI9TX19CiAgICAgICAgICAgID4ke009PT0iYWxsIj8iQWxsIjpNPT09ImluYm91bmQiPyJJbmJvdW5kIjoiT3V0Ym91bmQifTwvYnV0dG9uPgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcC1ncm91cCI+CiAgICAgICAgICAke1siYWxsIiwiZGVsaXZlcmVkIiwiYm91bmNlZCIsInJlamVjdGVkIiwiZGVmZXJyZWQiLCJwZW5kaW5nIl0ubWFwKE09PndgCiAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuc3RhdHVzRmlsdGVyPT09TT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLnN0YXR1c0ZpbHRlcj1NfX0KICAgICAgICAgICAgPiR7TT09PSJhbGwiPyJBbGwiOk0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrTS5zbGljZSgxKX08L2J1dHRvbj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InJlc3VsdHMtY291bnQiPlNob3dpbmcgJHtrLmxlbmd0aH0gb2YgJHt0aGlzLmVtYWlscy5sZW5ndGh9IGVtYWlsczwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0idGFibGUtY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIiPgogICAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgICAgPHNwYW4+U3RhdHVzPC9zcGFuPgogICAgICAgICAgPHNwYW4+RnJvbTwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlRvPC9zcGFuPgogICAgICAgICAgPHNwYW4+U3ViamVjdDwvc3Bhbj4KICAgICAgICAgIDxzcGFuPlRpbWVzdGFtcDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke2subGVuZ3RoPjA/ay5tYXAoTT0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJvdyIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRW1haWxDbGljayhNKX0+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXJlY3Rpb24taWNvbiAke00uZGlyZWN0aW9ufSI+CiAgICAgICAgICAgICAgJHtNLmRpcmVjdGlvbj09PSJpbmJvdW5kIj93YDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ii8+PHBvbHlsaW5lIHBvaW50cz0iMTkgMTIgMTIgMTkgNSAxMiIvPjwvc3ZnPmA6d2A8c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48bGluZSB4MT0iMTIiIHkxPSIxOSIgeDI9IjEyIiB5Mj0iNSIvPjxwb2x5bGluZSBwb2ludHM9IjUgMTIgMTIgNSAxOSAxMiIvPjwvc3ZnPmB9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke00uc3RhdHVzfSI+JHtNLnN0YXR1c308L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtZnJvbSIgdGl0bGU9IiR7TS5mcm9tfSI+JHtNLmZyb219PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtdG8iIHRpdGxlPSIke00udG99Ij4ke00udG99PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtc3ViamVjdCIgdGl0bGU9IiR7TS5zdWJqZWN0fSI+JHtNLnN1YmplY3R9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1haWwtdGltZXN0YW1wIj4ke00udGltZXN0YW1wfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApOndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gZW1haWxzIGZvdW5kPC9kaXY+CiAgICAgICAgYH0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUVtYWlsQ2xpY2soayl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZW1haWwtY2xpY2siLHtkZXRhaWw6ayxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxUMyh0aGlzLGcpfXN0YXRpY3tUMyhhLHIpfX07cmV0dXJuIHk9YX0pKCl9KTt2YXIgZGlhLHJndCxrQmEsdWlhPXUoKCk9Pnt2ZSgpO2RpYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0scmd0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxrQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1tdGEtZGV0YWlsLXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXTt2YXIgYz1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pNdGFEZXRhaWxWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpPYmplY3R9KV0sZGlhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW1haWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImVtYWlsImluIGYsImhhcyIpLGdldDppKGY9PmYuZW1haWwsImdldCIpLHNldDppKChmLHApPT57Zi5lbWFpbD1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksZGlhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogMTIwMHB4OyI+CiAgICAgIDxzei1tdGEtZGV0YWlsLXZpZXcKICAgICAgICAuZW1haWw9JHt7aWQ6IjEiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLHRvOiJ1c2VyQGV4YW1wbGUuY29tIix0b0xpc3Q6WyJ1c2VyQGV4YW1wbGUuY29tIl0sc3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MzA6MjIiLG1lc3NhZ2VJZDoiPGFiYzEyM0BzZXJ2ZS56b25lPiIsc2l6ZToiMTIuNCBLQiIsc210cExvZzpbe3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJFSExPIG1haWwuc2VydmUuem9uZSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLW1haWwuZXhhbXBsZS5jb20gSGVsbG8iLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLVNUQVJUVExTIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBTSVpFIDUyNDI4ODAwIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlNUQVJUVExTIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjAgUmVhZHkgdG8gc3RhcnQgVExTIixyZXNwb25zZUNvZGU6MjIwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5zZXJ2ZS56b25lIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtbWFpbC5leGFtcGxlLmNvbSBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtQVVUSCBQTEFJTiBMT0dJTiIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgU0laRSA1MjQyODgwMCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJBVVRIIFBMQUlOIEFIVnpaWElBY0dGemMzZHZjbVE9In0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMzUgMi43LjAgQXV0aGVudGljYXRpb24gc3VjY2Vzc2Z1bCIscmVzcG9uc2VDb2RlOjIzNX0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJNQUlMIEZST006PG5vcmVwbHlAc2VydmUuem9uZT4ifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJSQ1BUIFRPOjx1c2VyQGV4YW1wbGUuY29tPiJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIEFjY2VwdGVkIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkRBVEEifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6JzM1NCBFbnRlciBtZXNzYWdlLCBlbmRpbmcgd2l0aCAiLiIgb24gYSBsaW5lIGJ5IGl0c2VsZicscmVzcG9uc2VDb2RlOjM1NH0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiIuIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0sgaWQ9MXBRMnJTLTAwMDNBYi1DNCIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJRVUlUIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjIiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyMjEgbWFpbC5leGFtcGxlLmNvbSBjbG9zaW5nIGNvbm5lY3Rpb24iLHJlc3BvbnNlQ29kZToyMjF9XSxjb25uZWN0aW9uSW5mbzp7c291cmNlSXA6IjEwLjAuMS41MCIsc291cmNlSG9zdG5hbWU6Im1haWwuc2VydmUuem9uZSIsZGVzdGluYXRpb25JcDoiOTMuMTg0LjIxNi4zNCIsZGVzdGluYXRpb25Qb3J0OjI1LHRsc1ZlcnNpb246IlRMU3YxLjMiLHRsc0NpcGhlcjoiVExTX0FFU18yNTZfR0NNX1NIQTM4NCIsYXV0aGVudGljYXRlZDohMCxhdXRoTWV0aG9kOiJQTEFJTiIsYXV0aFVzZXI6Im5vcmVwbHlAc2VydmUuem9uZSJ9LGF1dGhlbnRpY2F0aW9uUmVzdWx0czp7c3BmOiJwYXNzIixzcGZEb21haW46InNlcnZlLnpvbmUiLGRraW06InBhc3MiLGRraW1Eb21haW46InNlcnZlLnpvbmUiLGRtYXJjOiJwYXNzIixkbWFyY1BvbGljeToicmVqZWN0In0saGVhZGVyczp7RnJvbToibm9yZXBseUBzZXJ2ZS56b25lIixUbzoidXNlckBleGFtcGxlLmNvbSIsU3ViamVjdDoiV2VsY29tZSB0byBzZXJ2ZS56b25lIixEYXRlOiJNb24sIDE1IEphbiAyMDI0IDE0OjMwOjIyICswMDAwIiwiTUlNRS1WZXJzaW9uIjoiMS4wIiwiQ29udGVudC1UeXBlIjoidGV4dC9odG1sOyBjaGFyc2V0PVVURi04In0sYm9keTonPGh0bWw+XFxuPGhlYWQ+PHRpdGxlPldlbGNvbWU8L3RpdGxlPjwvaGVhZD5cXG48Ym9keT5cXG4gIDxoMT5XZWxjb21lIHRvIHNlcnZlLnpvbmUhPC9oMT5cXG4gIDxwPllvdXIgYWNjb3VudCBoYXMgYmVlbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseS48L3A+XFxuICA8YSBocmVmPSJodHRwczovL3NlcnZlLnpvbmUvZGFzaGJvYXJkIj5HbyB0byBEYXNoYm9hcmQ8L2E+XFxuPC9ib2R5PlxcbjwvaHRtbD4nfX0KICAgICAgPjwvc3otbXRhLWRldGFpbC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiTVRBIl07I2U9cmd0KHRoaXMsbyxudWxsKTtnZXQgZW1haWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW1haWwoZCl7dGhpcy4jZT1kfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5iYWNrLWxpbmsgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5iYWNrLWxpbms6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5lbWFpbC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmVtYWlsLXN1YmplY3QgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuYmFkZ2UtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLmRlbGl2ZXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuYm91bmNlZCwKICAgICAgLnN0YXR1cy1iYWRnZS5yZWplY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWUyZTIiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZGVmZXJyZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5kaXJlY3Rpb24tYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZGlyZWN0aW9uLWJhZGdlLmluYm91bmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuZGlyZWN0aW9uLWJhZGdlLm91dGJvdW5kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkgewogICAgICAgIC5jb250ZW50IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tYWluLWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAuY2FyZC1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5jYXJkLWhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuY2FyZC10aXRsZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmNhcmQtc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5jYXJkLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnkgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDUwJSkiLCJoc2woMjEzLjEgOTMuOSUgNzUlKSIpfTsKICAgICAgfQoKICAgICAgLmNhcmQtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgfQoKICAgICAgLmRldGFpbC1saXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuZGV0YWlsLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CgogICAgICAuZGV0YWlsLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAuc210cC1sb2ctY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIE1vbmFjbywgJ0Nhc2NhZGlhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnNtdHAtbG9nLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5zbXRwLWxvZy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnNtdHAtbG9nLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZDRkNGQ4IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC8qIFBoYXNlIHNlcGFyYXRvcnMgKi8KICAgICAgLnNtdHAtcGhhc2Utc2VwYXJhdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5zbXRwLXBoYXNlLWxpbmUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuc210cC1waGFzZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAvKiBDaGF0IGJ1YmJsZXMgKi8KICAgICAgLnNtdHAtYnViYmxlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxNHB4OwogICAgICAgIG1heC13aWR0aDogNzAlOwogICAgICB9CgogICAgICAuc210cC1idWJibGUuY2xpZW50IHsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICB9CgogICAgICAuc210cC1idWJibGUuc2VydmVyIHsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC4wNikiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjEwKSIpfTsKICAgICAgICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAke3guYmRUaGVtZSgiIzIyYzU1ZSIsIiM0YWRlODAiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgIH0KCiAgICAgIC5zbXRwLWJ1YmJsZS1jb21tYW5kIHsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zbXRwLWJ1YmJsZS1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuc210cC1idWJibGUuc2VydmVyIC5zbXRwLWJ1YmJsZS1tZXRhIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAuc210cC1kaXJlY3Rpb24tdGFnIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjNweDsKICAgICAgfQoKICAgICAgLnNtdHAtZGlyZWN0aW9uLXRhZy5jbGllbnQgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5zbXRwLWRpcmVjdGlvbi10YWcuc2VydmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyMmM1NWUiLCIjNGFkZTgwIil9OwogICAgICB9CgogICAgICAvKiBSZXNwb25zZSBjb2RlIGJhZGdlcyAqLwogICAgICAucmVzcG9uc2UtY29kZS1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDFweCA3cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICB9CgogICAgICAucmVzcG9uc2UtY29kZS1iYWRnZS5jb2RlLTJ4eCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoMzQsIDE5NywgOTQsIDAuMTUpIiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnJlc3BvbnNlLWNvZGUtYmFkZ2UuY29kZS0zeHggewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLnJlc3BvbnNlLWNvZGUtYmFkZ2UuY29kZS00eHggewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDI1MCwgMjA0LCAyMSwgMC4xNSkiLCJyZ2JhKDI1MCwgMjA0LCAyMSwgMC4yNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgLnJlc3BvbnNlLWNvZGUtYmFkZ2UuY29kZS01eHggewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjE1KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMjUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC8qIFNNVFAgbWV0YWRhdGEgYmFubmVyIOKAlCBzaXRzIGluc2lkZSBjb250ZW50LCBhYm92ZSB0aGUgbG9nICovCiAgICAgIC5zbXRwLWhlYWRlci1zdWJ0aXRsZSB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1ib3JkZXItc3VidGxlKTsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuc210cC1kaXJlY3Rpb24tYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7CiAgICAgIH0KCiAgICAgIC5zbXRwLWRpcmVjdGlvbi1iYWRnZS5pbmJvdW5kIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC4xMikiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zbXRwLWRpcmVjdGlvbi1iYWRnZS5vdXRib3VuZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEyKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5lbWFpbC1ib2R5LWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXgtaGVpZ2h0OiA1MDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50bHMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5hdXRoLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuYXV0aC1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmF1dGgtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5hdXRoLWRvbWFpbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLmF1dGgtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5hdXRoLWJhZGdlLnBhc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGNmY2U3IiwicmdiYSgzNCwgMTk3LCA5NCwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuYXV0aC1iYWRnZS5mYWlsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZTJlMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmF1dGgtYmFkZ2Uuc29mdGZhaWwsCiAgICAgIC5hdXRoLWJhZGdlLm5ldXRyYWwsCiAgICAgIC5hdXRoLWJhZGdlLm5vbmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVmOWMzIiwicmdiYSgyNTAsIDIwNCwgMjEsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjY2E4YTA0IiwiI2ZhY2MxNSIpfTsKICAgICAgfQoKICAgICAgZGVlcy10aWxlLnJlamVjdGlvbi1jYXJkOjpwYXJ0KG91dGVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3guYmRUaGVtZSgiI2ZlY2FjYSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5yZWplY3Rpb24tY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC5yZWplY3Rpb24tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLnJlamVjdGlvbi10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZlZjJmMiIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOTkxYjFiIiwiI2ZjYTVhNSIpfTsKICAgICAgfQoKICAgICAgLnJlamVjdGlvbi10ZXh0Omxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5uby1lbWFpbCB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy5lbWFpbClyZXR1cm4gd2A8ZGl2IGNsYXNzPSJuby1lbWFpbCI+Tm8gZW1haWwgc2VsZWN0ZWQ8L2Rpdj5gO2xldCBkPXRoaXMuZW1haWw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iYmFjay1saW5rIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVCYWNrKCl9PgogICAgICAgICAgPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiI+PC9wb2x5bGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgQmFjayB0byBFbWFpbHMKICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1oZWFkZXIiPgogICAgICAgIDxoMSBjbGFzcz0iZW1haWwtc3ViamVjdCI+JHtkLnN1YmplY3R9PC9oMT4KICAgICAgICA8ZGl2IGNsYXNzPSJiYWRnZS1ncm91cCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlICR7ZC5zdGF0dXN9Ij4ke2Quc3RhdHVzfTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXJlY3Rpb24tYmFkZ2UgJHtkLmRpcmVjdGlvbn0iPiR7ZC5kaXJlY3Rpb259PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW4tY29udGVudCI+CiAgICAgICAgICA8IS0tIEVtYWlsIE1ldGFkYXRhIC0tPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5FbWFpbCBNZXRhZGF0YTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWxpc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5Gcm9tPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QuZnJvbX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+VG88L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC50b0xpc3Quam9pbigiLCAiKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7ZC5jYyYmZC5jYy5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+Q0M8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNjLmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlN1YmplY3Q8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5zdWJqZWN0fTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5EYXRlPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QudGltZXN0YW1wfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5NZXNzYWdlIElEPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QubWVzc2FnZUlkfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5TaXplPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2Quc2l6ZX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8IS0tIFNNVFAgVHJhbnNhY3Rpb24gTG9nIC0tPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5TTVRQIFRyYW5zYWN0aW9uIExvZzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzbXRwLWRpcmVjdGlvbi1iYWRnZSAke2QuZGlyZWN0aW9ufSI+JHtkLmRpcmVjdGlvbn08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbXRwLWhlYWRlci1zdWJ0aXRsZSI+CiAgICAgICAgICAgICAgJHtkLmRpcmVjdGlvbj09PSJvdXRib3VuZCI/YCR7ZC5jb25uZWN0aW9uSW5mby5zb3VyY2VIb3N0bmFtZX0gXHUyMTkyICR7ZC5jb25uZWN0aW9uSW5mby5kZXN0aW5hdGlvbklwfToke2QuY29ubmVjdGlvbkluZm8uZGVzdGluYXRpb25Qb3J0fWA6YCR7ZC5jb25uZWN0aW9uSW5mby5zb3VyY2VJcH0gXHUyMTkyICR7ZC5jb25uZWN0aW9uSW5mby5zb3VyY2VIb3N0bmFtZX06JHtkLmNvbm5lY3Rpb25JbmZvLmRlc3RpbmF0aW9uUG9ydH1gfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLnJlbmRlclNtdHBMb2coZCl9CiAgICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iY2FyZC1mb290ZXIiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jb3B5U210cExvZygpfT4KICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDE1SDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOWEyIDIgMCAwIDEgMiAydjEiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgQ29weSBMb2cKICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtdGlsZT4KCiAgICAgICAgICA8IS0tIEVtYWlsIEJvZHkgLS0+CiAgICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgICA8ZGl2IHNsb3Q9ImhlYWRlciIgY2xhc3M9ImNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtdGl0bGUiPkVtYWlsIEJvZHkgKEVzY2FwZWQpPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmQtc3VidGl0bGUiPlJhdyBjb250ZW50IOKAlCBIVE1MIGlzIG5vdCByZW5kZXJlZDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgY2xhc3M9ImVtYWlsLWJvZHktY29udGFpbmVyIj4ke2QuYm9keX08L3ByZT4KICAgICAgICAgIDwvZGVlcy10aWxlPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIj4KICAgICAgICAgIDwhLS0gQ29ubmVjdGlvbiBJbmZvIC0tPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5Db25uZWN0aW9uIEluZm88L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1saXN0Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+U291cmNlIElQPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QuY29ubmVjdGlvbkluZm8uc291cmNlSXB9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlNvdXJjZSBIb3N0bmFtZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNvbm5lY3Rpb25JbmZvLnNvdXJjZUhvc3RuYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLWxhYmVsIj5EZXN0aW5hdGlvbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNvbm5lY3Rpb25JbmZvLmRlc3RpbmF0aW9uSXB9OiR7ZC5jb25uZWN0aW9uSW5mby5kZXN0aW5hdGlvblBvcnR9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPlRMUzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgJHtkLmNvbm5lY3Rpb25JbmZvLnRsc1ZlcnNpb24/d2A8c3BhbiBjbGFzcz0idGxzLWJhZGdlIj4ke2QuY29ubmVjdGlvbkluZm8udGxzVmVyc2lvbn08L3NwYW4+YDoiTm9uZSJ9CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHtkLmNvbm5lY3Rpb25JbmZvLnRsc0NpcGhlcj93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+Q2lwaGVyPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jb25uZWN0aW9uSW5mby50bHNDaXBoZXJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkF1dGhlbnRpY2F0ZWQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtdmFsdWUiPiR7ZC5jb25uZWN0aW9uSW5mby5hdXRoZW50aWNhdGVkPyJZZXMiOiJObyJ9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAke2QuY29ubmVjdGlvbkluZm8uYXV0aGVudGljYXRlZD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1sYWJlbCI+QXV0aCBNZXRob2Q8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC12YWx1ZSI+JHtkLmNvbm5lY3Rpb25JbmZvLmF1dGhNZXRob2R9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXRhaWwtbGFiZWwiPkF1dGggVXNlcjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGV0YWlsLXZhbHVlIj4ke2QuY29ubmVjdGlvbkluZm8uYXV0aFVzZXJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLXRpbGU+CgogICAgICAgICAgPCEtLSBBdXRoZW50aWNhdGlvbiBSZXN1bHRzIC0tPgogICAgICAgICAgPGRlZXMtdGlsZT4KICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLXRpdGxlIj5BdXRoZW50aWNhdGlvbiBSZXN1bHRzPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdXRoLXJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1sYWJlbCI+U1BGPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1kb21haW4iPiR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuc3BmRG9tYWlufTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtYmFkZ2UgJHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5zcGZ9Ij4ke2QuYXV0aGVudGljYXRpb25SZXN1bHRzLnNwZn08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0aC1yb3ciPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtbGFiZWwiPkRLSU08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWRvbWFpbiI+JHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5ka2ltRG9tYWlufTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtYmFkZ2UgJHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5ka2ltfSI+JHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5ka2ltfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdXRoLXJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aC1sYWJlbCI+RE1BUkM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRoLWRvbWFpbiI+cG9saWN5OiAke2QuYXV0aGVudGljYXRpb25SZXN1bHRzLmRtYXJjUG9saWN5fTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGgtYmFkZ2UgJHtkLmF1dGhlbnRpY2F0aW9uUmVzdWx0cy5kbWFyY30iPiR7ZC5hdXRoZW50aWNhdGlvblJlc3VsdHMuZG1hcmN9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy10aWxlPgoKICAgICAgICAgIDwhLS0gUmVqZWN0aW9uIERldGFpbHMgKGNvbmRpdGlvbmFsKSAtLT4KICAgICAgICAgICR7ZC5zdGF0dXM9PT0icmVqZWN0ZWQifHxkLnN0YXR1cz09PSJib3VuY2VkIj93YAogICAgICAgICAgICA8ZGVlcy10aWxlIGNsYXNzPSJyZWplY3Rpb24tY2FyZCI+CiAgICAgICAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJjYXJkLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRpbmciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC10aXRsZSI+UmVqZWN0aW9uIERldGFpbHM8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgJHtkLnJlamVjdGlvblJlYXNvbj93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWplY3Rpb24tbGFiZWwiPlJlamVjdGlvbiBSZWFzb248L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVqZWN0aW9uLXRleHQiPiR7ZC5yZWplY3Rpb25SZWFzb259PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgJHtkLmJvdW5jZU1lc3NhZ2U/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVqZWN0aW9uLWxhYmVsIj5Cb3VuY2UgTWVzc2FnZTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWplY3Rpb24tdGV4dCI+JHtkLmJvdW5jZU1lc3NhZ2V9PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2RlZXMtdGlsZT4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1nZXRSZXNwb25zZUNvZGVCYWRnZUNsYXNzKGQpe3JldHVybiBkPj01MDA/ImNvZGUtNXh4IjpkPj00MDA/ImNvZGUtNHh4IjpkPj0zMDA/ImNvZGUtM3h4IjoiY29kZS0yeHgifWdldFNtdHBQaGFzZXMoZCl7bGV0IGY9W10scD0iIixoPTA7Zm9yKGxldCBtIG9mIGQpe2xldCB2PW0uY29tbWFuZC50b1VwcGVyQ2FzZSgpLGI9cDtpZihtLmRpcmVjdGlvbj09PSJjbGllbnQiJiYodi5zdGFydHNXaXRoKCJFSExPIil8fHYuc3RhcnRzV2l0aCgiSEVMTyIpPyhoKyssaD09PTE/Yj0iY29ubmVjdGlvbiI6Yj0icG9zdC10bHMiKTp2PT09IlNUQVJUVExTIj9iPSJ0bHMiOnYuc3RhcnRzV2l0aCgiQVVUSCIpP2I9ImF1dGgiOnYuc3RhcnRzV2l0aCgiTUFJTCBGUk9NIil8fHYuc3RhcnRzV2l0aCgiUkNQVCBUTyIpfHx2PT09IkRBVEEifHx2PT09Ii4iP2I9InRyYW5zZmVyIjp2PT09IlFVSVQiJiYoYj0iY2xvc2luZyIpKSxtLmRpcmVjdGlvbj09PSJzZXJ2ZXIiJiZiPT09IiImJihiPXB8fCJjb25uZWN0aW9uIiksYj09PSIiJiYoYj0iY29ubmVjdGlvbiIpLGIhPT1wKXtwPWI7bGV0IGc9e2Nvbm5lY3Rpb246IkNvbm5lY3Rpb24iLHRsczoiVExTIE5lZ290aWF0aW9uIiwicG9zdC10bHMiOiJQb3N0LVRMUyBIYW5kc2hha2UiLGF1dGg6IkF1dGhlbnRpY2F0aW9uIix0cmFuc2ZlcjoiTWFpbCBUcmFuc2ZlciIsY2xvc2luZzoiQ2xvc2luZyJ9O2YucHVzaCh7cGhhc2U6YixsYWJlbDpnW2JdfHxiLGVudHJpZXM6W119KX1mLmxlbmd0aD09PTAmJmYucHVzaCh7cGhhc2U6ImNvbm5lY3Rpb24iLGxhYmVsOiJDb25uZWN0aW9uIixlbnRyaWVzOltdfSksZltmLmxlbmd0aC0xXS5lbnRyaWVzLnB1c2gobSl9cmV0dXJuIGZ9cmVuZGVyU210cExvZyhkKXtsZXQgZj10aGlzLmdldFNtdHBQaGFzZXMoZC5zbXRwTG9nKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic210cC1sb2ctY29udGFpbmVyIj4KICAgICAgICAke2YubWFwKHA9PndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJzbXRwLXBoYXNlLXNlcGFyYXRvciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtdHAtcGhhc2UtbGluZSI+PC9kaXY+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzbXRwLXBoYXNlLWxhYmVsIj4ke3AubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbXRwLXBoYXNlLWxpbmUiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3AuZW50cmllcy5tYXAoaD0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1idWJibGUgJHtoLmRpcmVjdGlvbn0iPgogICAgICAgICAgICAgICR7aC5kaXJlY3Rpb249PT0ic2VydmVyIiYmaC5yZXNwb25zZUNvZGU/d2AKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZXNwb25zZS1jb2RlLWJhZGdlICR7dGhpcy5nZXRSZXNwb25zZUNvZGVCYWRnZUNsYXNzKGgucmVzcG9uc2VDb2RlKX0iPiR7aC5yZXNwb25zZUNvZGV9PC9zcGFuPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1idWJibGUtY29tbWFuZCI+JHtoLmNvbW1hbmR9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic210cC1idWJibGUtbWV0YSI+CiAgICAgICAgICAgICAgICA8c3Bhbj4ke2gudGltZXN0YW1wfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPsK3PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNtdHAtZGlyZWN0aW9uLXRhZyAke2guZGlyZWN0aW9ufSI+JHtoLmRpcmVjdGlvbj09PSJjbGllbnQiPyJDbGllbnQiOiJTZXJ2ZXIifTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWNvcHlTbXRwTG9nKCl7aWYoIXRoaXMuZW1haWwpcmV0dXJuO2xldCBkPXRoaXMuZW1haWwuc210cExvZy5tYXAoZj0+YFske2YudGltZXN0YW1wfV0gJHtmLmRpcmVjdGlvbj09PSJjbGllbnQiPyJDOiI6IlM6In0gJHtmLmNvbW1hbmR9YCkuam9pbihgCmApO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGQpfWhhbmRsZUJhY2soKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJiYWNrIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscmd0KHRoaXMsbCl9c3RhdGlje3JndChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTtmdW5jdGlvbiBTQmEodCl7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIj9TdHJpbmcodCk6QXJyYXkuaXNBcnJheSh0KT90Lm1hcChlPT50eXBlb2YgZT09Im51bWJlciI/U3RyaW5nKGUpOmAke2UuZnJvbX1cdTIwMTMke2UudG99YCkuam9pbigiLCAiKTpTdHJpbmcodCl9ZnVuY3Rpb24gTUJhKHQpe2xldCBlPVtdO2ZvcihsZXQgciBvZiB0KXtsZXQgYT1BcnJheS5pc0FycmF5KHIuaG9zdCk/ci5ob3N0OltyLmhvc3RdLHM9ci5wb3J0PT09InByZXNlcnZlIj8iKHByZXNlcnZlKSI6U3RyaW5nKHIucG9ydCk7Zm9yKGxldCBuIG9mIGEpZS5wdXNoKGAke259OiR7c31gKX1yZXR1cm4gZX12YXIgYWd0LHVhZSxDQmEscGlhPXUoKCk9Pnt2ZSgpO2FndD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sdWFlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfTtpKFNCYSwiZm9ybWF0UG9ydHMiKTtpKE1CYSwiZm9ybWF0VGFyZ2V0cyIpO0NCYT0oKCk9PntsZXQgdD1bdWUoInN6LXJvdXRlLWNhcmQiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pSb3V0ZUNhcmQiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtQKHt0eXBlOk9iamVjdH0pXSxjPVtQKHt0eXBlOkJvb2xlYW59KV0sYWd0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm91dGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InJvdXRlImluIG0sImhhcyIpLGdldDppKG09Pm0ucm91dGUsImdldCIpLHNldDppKChtLHYpPT57bS5yb3V0ZT12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksYWd0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0FjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InNob3dBY3Rpb25zImluIG0sImhhcyIpLGdldDppKG09Pm0uc2hvd0FjdGlvbnMsImdldCIpLHNldDppKChtLHYpPT57bS5zaG93QWN0aW9ucz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksYWd0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89aSgoKT0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IG1heC13aWR0aDogNTIwcHg7Ij4KICAgICAgPHN6LXJvdXRlLWNhcmQKICAgICAgICAucm91dGU9JHt7bmFtZToiQVBJIEdhdGV3YXkiLGRlc2NyaXB0aW9uOiJNYWluIEFQSSBnYXRld2F5IHdpdGggVExTIHRlcm1pbmF0aW9uIGFuZCBsb2FkIGJhbGFuY2luZyIsZW5hYmxlZDohMCxwcmlvcml0eToxMCx0YWdzOlsid2ViIiwiYXBpIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czpbNDQzLDg0NDNdLGRvbWFpbnM6WyJhcGkuZXhhbXBsZS5jb20iLCIqLmFwaS5zZXJ2ZS56b25lIl0scGF0aDoiL2FwaS8qIixwcm90b2NvbDoiaHR0cCIsY2xpZW50SXA6WyIxMC4wLjAuMC84Il19LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6WyIxMC4wLjAuMSIsIjEwLjAuMC4yIl0scG9ydDo4MDgwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn0sd2Vic29ja2V0OntlbmFibGVkOiEwfSxsb2FkQmFsYW5jaW5nOnthbGdvcml0aG06InJvdW5kLXJvYmluIn0sZm9yd2FyZGluZ0VuZ2luZToibmZ0YWJsZXMifSxzZWN1cml0eTp7aXBBbGxvd0xpc3Q6WyIxMC4wLjAuMC84Il0saXBCbG9ja0xpc3Q6WyIxOTIuMTY4LjEwMC4wLzI0Il0scmF0ZUxpbWl0OntlbmFibGVkOiEwLG1heFJlcXVlc3RzOjEwMCx3aW5kb3c6NjB9LG1heENvbm5lY3Rpb25zOjFlM30sdnBuT25seTohMCxtZXRhZGF0YTp7c291cmNlUHJvZmlsZU5hbWU6IlNUQU5EQVJEIixuZXR3b3JrVGFyZ2V0TmFtZToiTE9TU0xFU1NfSU5GUkEifX19CiAgICAgID48L3N6LXJvdXRlLWNhcmQ+CiAgICA8L2Rpdj4KICBgLCJkZW1vIik7c3RhdGljIGRlbW9Hcm91cHM9WyJSb3V0ZXMiXTsjZT11YWUodGhpcyxvLG51bGwpO2dldCByb3V0ZSgpe3JldHVybiB0aGlzLiNlfXNldCByb3V0ZShoKXt0aGlzLiNlPWh9I3Q9KHVhZSh0aGlzLGwpLHVhZSh0aGlzLGQsITEpKTtnZXQgc2hvd0FjdGlvbnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hvd0FjdGlvbnMoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6OnBhcnQob3V0ZXIpIHsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZSwgYm94LXNoYWRvdyAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICBkZWVzLXRpbGU6aG92ZXI6OnBhcnQob3V0ZXIpIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN0cm9uZyk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4ICR7eC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDYpIiwicmdiYSgwLDAsMCwwLjIpIil9OwogICAgICB9CgogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuaGVhZGVyLWxlZnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuc3RhdHVzLWRvdC5lbmFibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCAke3guYmRUaGVtZSgicmdiYSgzNCwxOTcsOTQsMC40KSIsInJnYmEoMzQsMTk3LDk0LDAuMykiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90LmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5yb3V0ZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuaGVhZGVyLWJhZGdlcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5mb3J3YXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RiZWFmZSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5zb2NrZXQtaGFuZGxlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlZGU5ZmUiLCJyZ2JhKDEzOSwgOTIsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CgogICAgICAuYmFkZ2UuZW5hYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCJyZ2JhKDExMywgMTEzLCAxMjIsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmNhcmQtYm9keSB7CiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAubWV0YS1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC50YWdzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzUyNTI1YiIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5wcmlvcml0eSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLyogU2VjdGlvbnMgKi8KICAgICAgLnNlY3Rpb24gewogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQ7CiAgICAgICAgcGFkZGluZzogMTBweCAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA2cHggNnB4IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMTAxMDEwIil9OwogICAgICB9CgogICAgICAuc2VjdGlvbjpsYXN0LW9mLXR5cGUgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLm1hdGNoIHsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHt4LmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICB9CgogICAgICAuc2VjdGlvbi5hY3Rpb24gewogICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAke3guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLnNlY3VyaXR5IHsKICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHt4LmJkVGhlbWUoIiNmNTllMGIiLCIjZjU5ZTBiIil9OwogICAgICB9CgogICAgICAuc2VjdGlvbi5saW5rZWQgewogICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAke3guYmRUaGVtZSgiIzhiNWNmNiIsIiM4YjVjZjYiKX07CiAgICAgIH0KCiAgICAgIC5saW5rZWQtbmFtZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VkZTlmZSIsInJnYmEoMTM5LCA5MiwgMjQ2LCAwLjE1KSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM2ZDI4ZDkiLCIjYTc4YmZhIil9OwogICAgICB9CgogICAgICAuc2VjdGlvbi1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZmllbGQtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLmZpZWxkLXJvdzpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuZmllbGQta2V5IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1pbi13aWR0aDogNjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZmllbGQtdmFsdWUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNlNGU0ZTciKX07CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAuZG9tYWluLWNoaXAgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNlZmY2ZmYiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuZG9tYWluLWNoaXAuZ2xvYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZWYzYzciLCJyZ2JhKDI0NSwgMTU4LCAxMSwgMC4xNSkiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjOTI0MDBlIiwiI2ZiYmYyNCIpfTsKICAgICAgfQoKICAgICAgLm1vbm8gewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CgogICAgICAucHJvdG9jb2wtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAucHJvdG9jb2wtYmFkZ2UuaHR0cCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkYmVhZmUiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAucHJvdG9jb2wtYmFkZ2UudGNwIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjZmNlNyIsInJnYmEoMzQsIDE5NywgOTQsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLnRscy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC50bHMtYmFkZ2UuYXV0byB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC50bHMtYmFkZ2UuY3VzdG9tIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2ZmZWRkNSIsInJnYmEoMjQ5LCAxMTUsIDIyLCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2MyNDEwYyIsIiNmYjkyM2MiKX07CiAgICAgIH0KCiAgICAgIC5lbmdpbmUtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmFlOGZmIiwicmdiYSgxNjgsIDg1LCAyNDcsIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjN2UyMmNlIiwiI2MwODRmYyIpfTsKICAgICAgfQoKICAgICAgLmhlYWRlci1wYWlyIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmU7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KCiAgICAgIC8qIEZlYXR1cmUgaWNvbnMgKi8KICAgICAgLmZlYXR1cmVzLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIG1hcmdpbi10b3A6IDE0cHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzFhMWExYSIpfTsKICAgICAgfQoKICAgICAgLmZlYXR1cmUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5uby1yb3V0ZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLnZwbiB7CiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR7eC5iZFRoZW1lKCIjMDg5MWIyIiwiIzA2YjZkNCIpfTsKICAgICAgfQoKICAgICAgLnZwbi1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAudnBuLWJhZGdlLm1hbmRhdG9yeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmY3ZWQiLCJyZ2JhKDI0OSwgMTE1LCAyMiwgMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNjMjQxMGMiLCIjZmI5MjNjIil9OwogICAgICB9CgogICAgICAudnBuLWJhZGdlLm9wdGlvbmFsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VjZmRmNSIsInJnYmEoMTYsIDE4NSwgMTI5LCAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzA0Nzg1NyIsIiMzNGQzOTkiKX07CiAgICAgIH0KCiAgICAgIC52cG4tdGFnIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBwYWRkaW5nOiAxcHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VjZmVmZiIsInJnYmEoNiwgMTgyLCAyMTIsIDAuMTUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzBlNzQ5MCIsIiMyMmQzZWUiKX07CiAgICAgIH0KCiAgICAgIC5jYXJkLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1wcmltYXJ5KTsKICAgICAgfQoKICAgICAgLnRpbGUtYnV0dG9uLmVkaXQ6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtpZighdGhpcy5yb3V0ZSlyZXR1cm4gd2AKICAgICAgICA8ZGVlcy10aWxlPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5Ij48ZGl2IGNsYXNzPSJuby1yb3V0ZSI+Tm8gcm91dGUgZGF0YTwvZGl2PjwvZGl2PgogICAgICAgIDwvZGVlcy10aWxlPgogICAgICBgO2xldCBoPXRoaXMucm91dGUsbT1oLmVuYWJsZWQhPT0hMSx2PWgubWF0Y2gsYj1oLmFjdGlvbixnPWguc2VjdXJpdHk7cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPCEtLSBIZWFkZXIgLS0+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWxlZnQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWRvdCAke20/ImVuYWJsZWQiOiJkaXNhYmxlZCJ9Ij48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyb3V0ZS1uYW1lIj4ke2gubmFtZXx8aC5pZHx8IlVubmFtZWQgUm91dGUifTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJhZGdlcyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke2IudHlwZX0iPiR7Yi50eXBlfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7bT8iZW5hYmxlZCI6ImRpc2FibGVkIn0iPiR7bT8iZW5hYmxlZCI6ImRpc2FibGVkIn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5Ij4KICAgICAgICAgICR7aC5kZXNjcmlwdGlvbj93YDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4ke2guZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRhLXJvdyI+CiAgICAgICAgICAgICR7aC50YWdzJiZoLnRhZ3MubGVuZ3RoPjA/d2A8ZGl2IGNsYXNzPSJ0YWdzIj4ke2gudGFncy5tYXAoeT0+d2A8c3BhbiBjbGFzcz0idGFnIj4ke3l9PC9zcGFuPmApfTwvZGl2PmA6d2A8ZGl2PjwvZGl2PmB9CiAgICAgICAgICAgICR7aC5wcmlvcml0eSE9bnVsbD93YDxzcGFuIGNsYXNzPSJwcmlvcml0eSI+UHJpb3JpdHk6ICR7aC5wcmlvcml0eX08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDwhLS0gTWF0Y2ggU2VjdGlvbiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIG1hdGNoIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPk1hdGNoPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5Qb3J0czwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIG1vbm8iPiR7U0JhKHYucG9ydHMpfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt2LmRvbWFpbnM/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkRvbWFpbnM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+JHt0aGlzLnJlbmRlckRvbWFpbnModi5kb21haW5zKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHt2LnBhdGg/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlBhdGg8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBtb25vIj4ke3YucGF0aH08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHt2LnByb3RvY29sP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5Qcm90b2NvbDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvdG9jb2wtYmFkZ2UgJHt2LnByb3RvY29sfSI+JHt2LnByb3RvY29sfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7di5jbGllbnRJcCYmdi5jbGllbnRJcC5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+Q2xpZW50PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbW9ubyI+JHt2LmNsaWVudElwLmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7di50bHNWZXJzaW9uJiZ2LnRsc1ZlcnNpb24ubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlRMUyBWZXI8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+JHt2LnRsc1ZlcnNpb24uam9pbigiLCAiKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHt2LmhlYWRlcnM/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkhlYWRlcnM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgJHtPYmplY3QuZW50cmllcyh2LmhlYWRlcnMpLm1hcCgoW3ksa10pPT53YDxzcGFuIGNsYXNzPSJoZWFkZXItcGFpciI+JHt5fT0ke2t9PC9zcGFuPiBgKX0KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBBY3Rpb24gU2VjdGlvbiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIGFjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5BY3Rpb248L2Rpdj4KICAgICAgICAgICR7Yi50YXJnZXRzJiZiLnRhcmdldHMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlRhcmdldHM8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBtb25vIj4ke01CYShiLnRhcmdldHMpLmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7Yi50bHM/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPlRMUzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4KICAgICAgICAgICAgICAgICAgICAke2IudGxzLm1vZGV9CiAgICAgICAgICAgICAgICAgICAgJHtiLnRscy5jZXJ0aWZpY2F0ZT9iLnRscy5jZXJ0aWZpY2F0ZT09PSJhdXRvIj93YCA8c3BhbiBjbGFzcz0idGxzLWJhZGdlIGF1dG8iPmF1dG8gY2VydDwvc3Bhbj5gOndgIDxzcGFuIGNsYXNzPSJ0bHMtYmFkZ2UgY3VzdG9tIj5jdXN0b20gY2VydDwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgJHtiLmZvcndhcmRpbmdFbmdpbmU/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkVuZ2luZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj48c3BhbiBjbGFzcz0iZW5naW5lLWJhZGdlIj4ke2IuZm9yd2FyZGluZ0VuZ2luZX08L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7Yi5sb2FkQmFsYW5jaW5nP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQta2V5Ij5MQjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4ke2IubG9hZEJhbGFuY2luZy5hbGdvcml0aG19PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICR7Yi53ZWJzb2NrZXQ/LmVuYWJsZWQ/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPldTPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPjxzcGFuIGNsYXNzPSJiYWRnZSBlbmFibGVkIj5lbmFibGVkPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gU2VjdXJpdHkgU2VjdGlvbiAtLT4KICAgICAgICAke2c/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIHNlY3VyaXR5Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlNlY3VyaXR5PC9kaXY+CiAgICAgICAgICAgICAgICAke2cuaXBBbGxvd0xpc3QmJmcuaXBBbGxvd0xpc3QubGVuZ3RoPjA/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1rZXkiPkFsbG93PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbW9ubyI+JHtnLmlwQWxsb3dMaXN0LmpvaW4oIiwgIil9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICR7Zy5pcEJsb2NrTGlzdCYmZy5pcEJsb2NrTGlzdC5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+QmxvY2s8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSBtb25vIj4ke2cuaXBCbG9ja0xpc3Quam9pbigiLCAiKX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgJHtnLnJhdGVMaW1pdD8uZW5hYmxlZD93YAogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+UmF0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj4ke2cucmF0ZUxpbWl0Lm1heFJlcXVlc3RzfSByZXEgLyAke2cucmF0ZUxpbWl0LndpbmRvd31zPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICR7Zy5tYXhDb25uZWN0aW9ucz93YAogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+TWF4IENvbm48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+JHtnLm1heENvbm5lY3Rpb25zfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgPCEtLSBWUE4gU2VjdGlvbiAtLT4KICAgICAgICAgICR7dGhpcy5yZW5kZXJWcG4oKX0KCiAgICAgICAgICA8IS0tIExpbmtlZCBSZWZlcmVuY2VzIFNlY3Rpb24gLS0+CiAgICAgICAgICAke3RoaXMucmVuZGVyTGlua2VkKCl9CgogICAgICAgICAgPCEtLSBGZWF0dXJlIEljb25zIFJvdyAtLT4KICAgICAgICAgICR7dGhpcy5yZW5kZXJGZWF0dXJlcygpfQogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEFjdGlvbiBCdXR0b25zIC0tPgogICAgICAgICR7dGhpcy5zaG93QWN0aW9ucz93YAogICAgICAgICAgPGRpdiBzbG90PSJmb290ZXIiIGNsYXNzPSJjYXJkLWZvb3RlciI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIGVkaXQiIEBjbGljaz0ke3k9Pnt5LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdXRlLWVkaXQiLHtkZXRhaWw6dGhpcy5yb3V0ZSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0+RWRpdDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0aWxlLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0ke3k9Pnt5LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdXRlLWRlbGV0ZSIse2RldGFpbDp0aGlzLnJvdXRlLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fT5EZWxldGU8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1yZW5kZXJEb21haW5zKGgpe2xldCBtPUFycmF5LmlzQXJyYXkoaCk/aDpbaF07cmV0dXJuIHdgJHttLm1hcCh2PT53YDxzcGFuIGNsYXNzPSJkb21haW4tY2hpcCAke3YuaW5jbHVkZXMoIioiKT8iZ2xvYiI6IiJ9Ij4ke3Z9PC9zcGFuPmApfWB9cmVuZGVyVnBuKCl7cmV0dXJuIHRoaXMucm91dGU/LnZwbk9ubHk/d2AKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiB2cG4iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlZQTiBBY2Nlc3M8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+TW9kZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2cG4tYmFkZ2UgbWFuZGF0b3J5Ij5WUE4gT25seTwvc3Bhbj4KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgOndgYH1yZW5kZXJMaW5rZWQoKXtsZXQgaD10aGlzLnJvdXRlPy5tZXRhZGF0YTtpZighaClyZXR1cm4gd2BgO2xldCBtPSEhaC5zb3VyY2VQcm9maWxlTmFtZSx2PSEhaC5uZXR3b3JrVGFyZ2V0TmFtZTtyZXR1cm4hbSYmIXY/d2BgOndgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24gbGlua2VkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5MaW5rZWQ8L2Rpdj4KICAgICAgICAke20/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+UHJvZmlsZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC12YWx1ZSI+PHNwYW4gY2xhc3M9ImxpbmtlZC1uYW1lIj4ke2guc291cmNlUHJvZmlsZU5hbWV9PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAke3Y/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWtleSI+VGFyZ2V0PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLXZhbHVlIj48c3BhbiBjbGFzcz0ibGlua2VkLW5hbWUiPiR7aC5uZXR3b3JrVGFyZ2V0TmFtZX08L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmVhdHVyZXMoKXtpZighdGhpcy5yb3V0ZSlyZXR1cm4gd2BgO2xldCBoPVtdLG09dGhpcy5yb3V0ZS5hY3Rpb24sdj10aGlzLnJvdXRlLnNlY3VyaXR5LGI9dGhpcy5yb3V0ZS5oZWFkZXJzLGc9dGhpcy5yb3V0ZS5tZXRhZGF0YTtyZXR1cm4gbS50bHMmJmgucHVzaCh3YDxzcGFuIGNsYXNzPSJmZWF0dXJlIj48c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj4mI3gxZjUxMjs8L3NwYW4+VExTPC9zcGFuPmApLG0ud2Vic29ja2V0Py5lbmFibGVkJiZoLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MjE5NDs8L3NwYW4+V1M8L3NwYW4+YCksbS5sb2FkQmFsYW5jaW5nJiZoLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MjY5Njs8L3NwYW4+TEI8L3NwYW4+YCksdiYmaC5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDFmNmUxOzwvc3Bhbj5TZWN1cml0eTwvc3Bhbj5gKSxiJiZoLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MjY5OTs8L3NwYW4+SGVhZGVyczwvc3Bhbj5gKSx0aGlzLnJvdXRlPy52cG5Pbmx5JiZoLnB1c2god2A8c3BhbiBjbGFzcz0iZmVhdHVyZSI+PHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+JiN4MWY1MTA7PC9zcGFuPlZQTjwvc3Bhbj5gKSwoZz8uc291cmNlUHJvZmlsZU5hbWV8fGc/Lm5ldHdvcmtUYXJnZXROYW1lKSYmaC5wdXNoKHdgPHNwYW4gY2xhc3M9ImZlYXR1cmUiPjxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPiYjeDFmNTE3Ozwvc3Bhbj5MaW5rZWQ8L3NwYW4+YCksaC5sZW5ndGg9PT0wP3dgYDp3YDxkaXYgY2xhc3M9ImZlYXR1cmVzLXJvdyI+JHtofTwvZGl2PmB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHVhZSh0aGlzLGYpfXN0YXRpY3t1YWUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIEh3LE9jLHpCYSxmaWE9dSgoKT0+e3ZlKCk7SHc9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LE9jPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSx6QmE9KCgpPT57bGV0IHQ9W3VlKCJzei1yb3V0ZS1saXN0LXZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXSx2LGI9W10sZz1bXSx5LGs9W10sTT1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pSb3V0ZUxpc3RWaWV3Iil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bUCh7dHlwZTpBcnJheX0pXSxjPVtQKHthdHRyaWJ1dGU6ITF9KV0scD1baWUoKV0sdj1baWUoKV0seT1baWUoKV0sSHcodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3V0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoUz0+InJvdXRlcyJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnJvdXRlcywiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnJvdXRlcz1PfSwic2V0Iil9LG1ldGFkYXRhOl99LG8sbCksSHcodGhpcyxudWxsLGMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93QWN0aW9uc0ZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4ic2hvd0FjdGlvbnNGaWx0ZXIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5zaG93QWN0aW9uc0ZpbHRlciwiZ2V0Iiksc2V0OmkoKFMsTyk9PntTLnNob3dBY3Rpb25zRmlsdGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sZCxmKSxIdyh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJzZWFyY2hRdWVyeSJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLnNlYXJjaFF1ZXJ5LCJnZXQiKSxzZXQ6aSgoUyxPKT0+e1Muc2VhcmNoUXVlcnk9T30sInNldCIpfSxtZXRhZGF0YTpffSxoLG0pLEh3KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9uRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFM9PiJhY3Rpb25GaWx0ZXIiaW4gUywiaGFzIiksZ2V0OmkoUz0+Uy5hY3Rpb25GaWx0ZXIsImdldCIpLHNldDppKChTLE8pPT57Uy5hY3Rpb25GaWx0ZXI9T30sInNldCIpfSxtZXRhZGF0YTpffSxiLGcpLEh3KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlZEZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShTPT4iZW5hYmxlZEZpbHRlciJpbiBTLCJoYXMiKSxnZXQ6aShTPT5TLmVuYWJsZWRGaWx0ZXIsImdldCIpLHNldDppKChTLE8pPT57Uy5lbmFibGVkRmlsdGVyPU99LCJzZXQiKX0sbWV0YWRhdGE6X30sayxNKSxIdyhudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLE49YT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPWkoKCk9PndgCiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyNHB4OyBtYXgtd2lkdGg6IDEyMDBweDsiPgogICAgICA8c3otcm91dGUtbGlzdC12aWV3CiAgICAgICAgLnJvdXRlcz0ke1t7bmFtZToiSFRUUFMgR2F0ZXdheSIsZGVzY3JpcHRpb246Ik1haW4gd2ViIGdhdGV3YXkgd2l0aCBUTFMgdGVybWluYXRpb24iLGVuYWJsZWQ6ITAsdGFnczpbIndlYiIsImh0dHBzIiwicHJvZHVjdGlvbiJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczpbIiouZXhhbXBsZS5jb20iLCJzZXJ2ZS56b25lIl0scHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuMSIscG9ydDo4MDgwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn19fSx7bmFtZToiU01UUCBJbmJvdW5kIixkZXNjcmlwdGlvbjoiRW1haWwgcmVsYXkgZm9yIGluY29taW5nIG1haWwiLGVuYWJsZWQ6ITAsdGFnczpbImVtYWlsIiwic210cCJdLG1hdGNoOntwb3J0czoyNSxkb21haW5zOiJtYWlsLnNlcnZlLnpvbmUifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjEuNSIscG9ydDoyNX1dfX0se25hbWU6IldlYlNvY2tldCBBUEkiLGRlc2NyaXB0aW9uOiJSZWFsLXRpbWUgV2ViU29ja2V0IGNvbm5lY3Rpb25zIixlbmFibGVkOiEwLHRhZ3M6WyJ3ZWIiLCJhcGkiXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6IndzLmV4YW1wbGUuY29tIixwYXRoOiIvd3MvKiJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMC4zIixwb3J0OjkwOTB9XSx3ZWJzb2NrZXQ6e2VuYWJsZWQ6ITB9LHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9fX0se25hbWU6Ik1haW50ZW5hbmNlIFBhZ2UiLGVuYWJsZWQ6ITEsdGFnczpbIndlYiJdLG1hdGNoOntwb3J0czpbODAsNDQzXSxkb21haW5zOiJvbGQuZXhhbXBsZS5jb20ifSxhY3Rpb246e3R5cGU6InNvY2tldC1oYW5kbGVyIn19XX0KICAgICAgPjwvc3otcm91dGUtbGlzdC12aWV3PgogICAgPC9kaXY+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiUm91dGVzIl07I2U9T2ModGhpcyxvLFtdKTtnZXQgcm91dGVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJvdXRlcyhfKXt0aGlzLiNlPV99I3Q9KE9jKHRoaXMsbCksT2ModGhpcyxkLG51bGwpKTtnZXQgc2hvd0FjdGlvbnNGaWx0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hvd0FjdGlvbnNGaWx0ZXIoXyl7dGhpcy4jdD1ffSNyPShPYyh0aGlzLGYpLE9jKHRoaXMsaCwiIikpO2dldCBzZWFyY2hRdWVyeSgpe3JldHVybiB0aGlzLiNyfXNldCBzZWFyY2hRdWVyeShfKXt0aGlzLiNyPV99I2E9KE9jKHRoaXMsbSksT2ModGhpcyxiLCJhbGwiKSk7Z2V0IGFjdGlvbkZpbHRlcigpe3JldHVybiB0aGlzLiNhfXNldCBhY3Rpb25GaWx0ZXIoXyl7dGhpcy4jYT1ffSNpPShPYyh0aGlzLGcpLE9jKHRoaXMsaywiYWxsIikpO2dldCBlbmFibGVkRmlsdGVyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGVuYWJsZWRGaWx0ZXIoXyl7dGhpcy4jaT1ffWdldCBmaWx0ZXJlZFJvdXRlcygpe3JldHVybiB0aGlzLnJvdXRlcy5maWx0ZXIoXz0+e2lmKHRoaXMuYWN0aW9uRmlsdGVyIT09ImFsbCImJl8uYWN0aW9uLnR5cGUhPT10aGlzLmFjdGlvbkZpbHRlcnx8dGhpcy5lbmFibGVkRmlsdGVyPT09ImVuYWJsZWQiJiZfLmVuYWJsZWQ9PT0hMXx8dGhpcy5lbmFibGVkRmlsdGVyPT09ImRpc2FibGVkIiYmXy5lbmFibGVkIT09ITEpcmV0dXJuITE7aWYodGhpcy5zZWFyY2hRdWVyeSl7bGV0IFM9dGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpO3JldHVybiB0aGlzLnJvdXRlTWF0Y2hlc1NlYXJjaChfLFMpfXJldHVybiEwfSl9cm91dGVNYXRjaGVzU2VhcmNoKF8sUyl7aWYoXy5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFMpfHxfLmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFMpfHxfLm1hdGNoLmRvbWFpbnMmJihBcnJheS5pc0FycmF5KF8ubWF0Y2guZG9tYWlucyk/Xy5tYXRjaC5kb21haW5zOltfLm1hdGNoLmRvbWFpbnNdKS5zb21lKEU9PkUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhTKSl8fHRoaXMuZm9ybWF0UG9ydHNGb3JTZWFyY2goXy5tYXRjaC5wb3J0cykuaW5jbHVkZXMoUyl8fF8ubWF0Y2gucGF0aD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhTKXx8Xy5tYXRjaC5jbGllbnRJcD8uc29tZShMPT5MLmluY2x1ZGVzKFMpKSlyZXR1cm4hMDtpZihfLmFjdGlvbi50YXJnZXRzKXtmb3IobGV0IEwgb2YgXy5hY3Rpb24udGFyZ2V0cylpZigoQXJyYXkuaXNBcnJheShMLmhvc3QpP0wuaG9zdDpbTC5ob3N0XSkuc29tZShCPT5CLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoUykpKXJldHVybiEwfXJldHVybiEhXy50YWdzPy5zb21lKEw9PkwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhTKSl9Zm9ybWF0UG9ydHNGb3JTZWFyY2goXyl7cmV0dXJuIHR5cGVvZiBfPT0ibnVtYmVyIj9TdHJpbmcoXyk6QXJyYXkuaXNBcnJheShfKT9fLm1hcChTPT50eXBlb2YgUz09Im51bWJlciI/U3RyaW5nKFMpOmAke1MuZnJvbX0tJHtTLnRvfWApLmpvaW4oIiAiKTpTdHJpbmcoXyl9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5maWx0ZXItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiI2ExYTFhYSIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICB9CgogICAgICAuY2hpcC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmNoaXAgewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmNoaXA6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2hpcC5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAucmVzdWx0cy1jb3VudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoNDIwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmdyaWQgc3otcm91dGUtY2FyZCB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZS1pY29uIHsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBfPXRoaXMuZmlsdGVyZWRSb3V0ZXM7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1iYXIiPgogICAgICAgIDxpbnB1dAogICAgICAgICAgY2xhc3M9InNlYXJjaC1pbnB1dCIKICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIHJvdXRlcyBieSBkb21haW4sIElQLCBwb3J0LCBwYXRoLCBvciB0YWcuLi4iCiAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgQGlucHV0PSR7Uz0+e3RoaXMuc2VhcmNoUXVlcnk9Uy50YXJnZXQudmFsdWV9fQogICAgICAgIC8+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcC1ncm91cCI+CiAgICAgICAgICAke1siYWxsIiwiZm9yd2FyZCIsInNvY2tldC1oYW5kbGVyIl0ubWFwKFM9PndgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImNoaXAgJHt0aGlzLmFjdGlvbkZpbHRlcj09PVM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLmFjdGlvbkZpbHRlcj1TfX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke1M9PT0iYWxsIj8iQWxsIjpTPT09ImZvcndhcmQiPyJGb3J3YXJkIjoiU29ja2V0IEhhbmRsZXIifQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGlwLWdyb3VwIj4KICAgICAgICAgICR7WyJhbGwiLCJlbmFibGVkIiwiZGlzYWJsZWQiXS5tYXAoUz0+d2AKICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuZW5hYmxlZEZpbHRlcj09PVM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLmVuYWJsZWRGaWx0ZXI9U319CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtTLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK1Muc2xpY2UoMSl9CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InJlc3VsdHMtY291bnQiPgogICAgICAgIFNob3dpbmcgJHtfLmxlbmd0aH0gb2YgJHt0aGlzLnJvdXRlcy5sZW5ndGh9IHJvdXRlcwogICAgICA8L2Rpdj4KCiAgICAgICR7Xy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIj4KICAgICAgICAgICAgICAke18ubWFwKFM9PndgCiAgICAgICAgICAgICAgICAgIDxzei1yb3V0ZS1jYXJkCiAgICAgICAgICAgICAgICAgICAgLnJvdXRlPSR7U30KICAgICAgICAgICAgICAgICAgICAuc2hvd0FjdGlvbnM9JHt0aGlzLnNob3dBY3Rpb25zRmlsdGVyPy4oUyk/PyExfQogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVJvdXRlQ2xpY2soUyl9CiAgICAgICAgICAgICAgICAgID48L3N6LXJvdXRlLWNhcmQ+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZS1pY29uIj4mI3gxZjUwZDs8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2Pk5vIHJvdXRlcyBtYXRjaCB5b3VyIGZpbHRlcnM8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgYH1oYW5kbGVSb3V0ZUNsaWNrKF8pe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdXRlLWNsaWNrIix7ZGV0YWlsOl8sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksT2ModGhpcyxNKX1zdGF0aWN7T2MoYSxyKX19O3JldHVybiBOPWF9KSgpfSk7dmFyIHUyLERpLF9CYSxoaWE9dSgoKT0+e3ZlKCk7dTI9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LERpPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxfQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1jb25maWctc2VjdGlvbiIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdLHYsYj1bXSxnPVtdLHksaz1bXSxNPVtdLE4sXz1bXSxTPVtdLE8sTD1bXSxFPVtdLEIsQz1bXSx6PVtdLEEsJD1bXSxGPVtdLFksRz1bXSxaPVtdLGRlLEQ9W10sUT1bXTt2YXIgZmU9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6Q29uZmlnU2VjdGlvbiIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBUPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLHA9W1Aoe3R5cGU6U3RyaW5nfSldLHY9W1Aoe3R5cGU6U3RyaW5nfSldLHk9W1Aoe3R5cGU6QXJyYXl9KV0sTj1bUCh7dHlwZTpBcnJheX0pXSxPPVtQKHt0eXBlOkFycmF5fSldLEI9W1Aoe3R5cGU6Qm9vbGVhbn0pXSxBPVtQKHt0eXBlOkJvb2xlYW59KV0sWT1baWUoKV0sZGU9W2llKCldLHUyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InRpdGxlImluIFcsImhhcyIpLGdldDppKFc9PlcudGl0bGUsImdldCIpLHNldDppKChXLHBlKT0+e1cudGl0bGU9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sbyxsKSx1Mih0aGlzLG51bGwsYyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1YnRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJzdWJ0aXRsZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnN1YnRpdGxlLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLnN1YnRpdGxlPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGQsZiksdTIodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJpY29uImluIFcsImhhcyIpLGdldDppKFc9PlcuaWNvbiwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5pY29uPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LGgsbSksdTIodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+InN0YXR1cyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLnN0YXR1cywiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5zdGF0dXM9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sYixnKSx1Mih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpZWxkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iZmllbGRzImluIFcsImhhcyIpLGdldDppKFc9PlcuZmllbGRzLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmZpZWxkcz1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxrLE0pLHUyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShXPT4iYWN0aW9ucyJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmFjdGlvbnMsImdldCIpLHNldDppKChXLHBlKT0+e1cuYWN0aW9ucz1wZX0sInNldCIpfSxtZXRhZGF0YTpUfSxfLFMpLHUyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGlua3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImxpbmtzImluIFcsImhhcyIpLGdldDppKFc9PlcubGlua3MsImdldCIpLHNldDppKChXLHBlKT0+e1cubGlua3M9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sTCxFKSx1Mih0aGlzLG51bGwsQix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJjb2xsYXBzaWJsZSJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmNvbGxhcHNpYmxlLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmNvbGxhcHNpYmxlPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LEMseiksdTIodGhpcyxudWxsLEEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+ImNvbGxhcHNlZCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmNvbGxhcHNlZCwiZ2V0Iiksc2V0OmkoKFcscGUpPT57Vy5jb2xsYXBzZWQ9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sJCxGKSx1Mih0aGlzLG51bGwsWSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzQ29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKFc9PiJpc0NvbGxhcHNlZCJpbiBXLCJoYXMiKSxnZXQ6aShXPT5XLmlzQ29sbGFwc2VkLCJnZXQiKSxzZXQ6aSgoVyxwZSk9PntXLmlzQ29sbGFwc2VkPXBlfSwic2V0Iil9LG1ldGFkYXRhOlR9LEcsWiksdTIodGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzU2xvdHRlZENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoVz0+Imhhc1Nsb3R0ZWRDb250ZW50ImluIFcsImhhcyIpLGdldDppKFc9PlcuaGFzU2xvdHRlZENvbnRlbnQsImdldCIpLHNldDppKChXLHBlKT0+e1cuaGFzU2xvdHRlZENvbnRlbnQ9cGV9LCJzZXQiKX0sbWV0YWRhdGE6VH0sRCxRKSx1MihudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpUfSxudWxsLHIpLGZlPWE9ZS52YWx1ZSxUJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlR9KX1zdGF0aWMgZGVtbz1pKCgpPT53YAogICAgPHN6LWNvbmZpZy1zZWN0aW9uCiAgICAgIHRpdGxlPSJTbWFydFByb3h5IgogICAgICBzdWJ0aXRsZT0iSFRUUC9IVFRQUyBhbmQgVENQL1NOSSByZXZlcnNlIHByb3h5IgogICAgICBpY29uPSJsdWNpZGU6bmV0d29yayIKICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAuZmllbGRzPSR7W3trZXk6IlJvdXRlIENvdW50Iix2YWx1ZToxMn0se2tleToiQUNNRSBFbmFibGVkIix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn0se2tleToiQWNjb3VudCBFbWFpbCIsdmFsdWU6ImFkbWluQGV4YW1wbGUuY29tIn0se2tleToiVXNlIFByb2R1Y3Rpb24iLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJBdXRvIFJlbmV3Iix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn0se2tleToiUmVuZXcgVGhyZXNob2xkIix2YWx1ZToiMzAgZGF5cyJ9XX0KICAgICAgLmxpbmtzPSR7W3tsYWJlbDoiRG9jcyIsaHJlZjoiaHR0cHM6Ly9jb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvc21hcnRwcm94eSIsaWNvbjoibHVjaWRlOmJvb2tPcGVuIixleHRlcm5hbDohMH1dfQogICAgICAuYWN0aW9ucz0ke1t7bGFiZWw6IkNvbmZpZ3VyZSIsaWNvbjoibHVjaWRlOnNldHRpbmdzIixldmVudDoiY29uZmlndXJlIn1dfQogICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CiAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgdGl0bGU9IkVtYWlsIFNlcnZlciIKICAgICAgc3VidGl0bGU9IlNNVFAgZW1haWwgaGFuZGxpbmcgd2l0aCBzbWFydG10YSIKICAgICAgaWNvbj0ibHVjaWRlOm1haWwiCiAgICAgIHN0YXR1cz0iZGlzYWJsZWQiCiAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydHMiLHZhbHVlOlsiMjUiLCI0NjUiLCI1ODciXSx0eXBlOiJwaWxscyJ9LHtrZXk6Ikhvc3RuYW1lIix2YWx1ZTpudWxsfSx7a2V5OiJEb21haW5zIix2YWx1ZTpbImV4YW1wbGUuY29tIiwibWFpbC5leGFtcGxlLmNvbSJdLHR5cGU6InBpbGxzIn1dfQogICAgICAubGlua3M9JHtbe2xhYmVsOiJEb2NzIixocmVmOiJodHRwczovL2NvZGUuZm9zcy5nbG9iYWwvc2VydmUuem9uZS9zbWFydG10YSIsaWNvbjoibHVjaWRlOmJvb2tPcGVuIixleHRlcm5hbDohMH0se2xhYmVsOiJTb3VyY2UiLGhyZWY6Imh0dHBzOi8vY29kZS5mb3NzLmdsb2JhbC9zZXJ2ZS56b25lL3NtYXJ0bXRhIixpY29uOiJsdWNpZGU6Z2l0aHViIixleHRlcm5hbDohMH1dfQogICAgICAuYWN0aW9ucz0ke1t7bGFiZWw6IkVuYWJsZSIsaWNvbjoibHVjaWRlOnBvd2VyIixldmVudDoiZW5hYmxlIn1dfQogICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CiAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgdGl0bGU9IkROUyBTZXJ2ZXIiCiAgICAgIHN1YnRpdGxlPSJBdXRob3JpdGF0aXZlIEROUyB3aXRoIHNtYXJ0ZG5zIgogICAgICBpY29uPSJsdWNpZGU6Z2xvYmUiCiAgICAgIHN0YXR1cz0ibm90LWNvbmZpZ3VyZWQiCiAgICAgIGNvbGxhcHNpYmxlCiAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydCIsdmFsdWU6NTN9LHtrZXk6Ik5TIERvbWFpbnMiLHZhbHVlOlsibnMxLmV4YW1wbGUuY29tIiwibnMyLmV4YW1wbGUuY29tIl0sdHlwZToicGlsbHMifV19CiAgICAgIC5saW5rcz0ke1t7bGFiZWw6IkdldHRpbmcgU3RhcnRlZCIsaHJlZjoiaHR0cHM6Ly9kb2NzLmV4YW1wbGUuY29tL2RucyIsaWNvbjoibHVjaWRlOmJvb2tPcGVuIixleHRlcm5hbDohMH1dfQogICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CiAgYCwiZGVtbyIpO3N0YXRpYyBkZW1vR3JvdXBzPVsiQ29uZmlndXJhdGlvbiJdOyNlPURpKHRoaXMsbywiIik7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpdGxlKFQpe3RoaXMuI2U9VH0jdD0oRGkodGhpcyxsKSxEaSh0aGlzLGQsIiIpKTtnZXQgc3VidGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3VidGl0bGUoVCl7dGhpcy4jdD1UfSNyPShEaSh0aGlzLGYpLERpKHRoaXMsaCwiIikpO2dldCBpY29uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGljb24oVCl7dGhpcy4jcj1UfSNhPShEaSh0aGlzLG0pLERpKHRoaXMsYiwiZW5hYmxlZCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHN0YXR1cyhUKXt0aGlzLiNhPVR9I2k9KERpKHRoaXMsZyksRGkodGhpcyxrLFtdKSk7Z2V0IGZpZWxkcygpe3JldHVybiB0aGlzLiNpfXNldCBmaWVsZHMoVCl7dGhpcy4jaT1UfSNzPShEaSh0aGlzLE0pLERpKHRoaXMsXyxbXSkpO2dldCBhY3Rpb25zKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFjdGlvbnMoVCl7dGhpcy4jcz1UfSNuPShEaSh0aGlzLFMpLERpKHRoaXMsTCxbXSkpO2dldCBsaW5rcygpe3JldHVybiB0aGlzLiNufXNldCBsaW5rcyhUKXt0aGlzLiNuPVR9I289KERpKHRoaXMsRSksRGkodGhpcyxDLCExKSk7Z2V0IGNvbGxhcHNpYmxlKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbGxhcHNpYmxlKFQpe3RoaXMuI289VH0jbD0oRGkodGhpcyx6KSxEaSh0aGlzLCQsITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGNvbGxhcHNlZChUKXt0aGlzLiNsPVR9I2M9KERpKHRoaXMsRiksRGkodGhpcyxHLCExKSk7Z2V0IGlzQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGlzQ29sbGFwc2VkKFQpe3RoaXMuI2M9VH0jZD0oRGkodGhpcyxaKSxEaSh0aGlzLEQsITEpKTtnZXQgaGFzU2xvdHRlZENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaGFzU2xvdHRlZENvbnRlbnQoVCl7dGhpcy4jZD1UfXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIGRlZXMtdGlsZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSBkZWVzLXRpbGU6OnBhcnQoY29udGVudCkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSBkZWVzLXRpbGU6OnBhcnQoZm9vdGVyKSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNpYmxlXSkgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzaWJsZV0pIC5zZWN0aW9uLWhlYWRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmhlYWRlci1pY29uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLWRlZmF1bHQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmhlYWRlci1pY29uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAuaGVhZGVyLXRleHQgewogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmhlYWRlci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1zZWNvbmRhcnkpOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LW11dGVkKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgfQoKICAgICAgLmhlYWRlci1yaWdodCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLyogU3RhdHVzIGJhZGdlICovCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogM3B4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZW5hYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNkY2ZjZTciLCJyZ2JhKDM0LDE5Nyw5NCwwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVlMmUyIiwicmdiYSgyMzksNjgsNjgsMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLm5vdC1jb25maWd1cmVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsInJnYmEoMTEzLDExMywxMjIsMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZmVmM2M3IiwicmdiYSgyNDUsMTU4LDExLDAuMTUpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzkyNDAwZSIsIiNmYmJmMjQiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtZG90IHsKICAgICAgICB3aWR0aDogN3B4OwogICAgICAgIGhlaWdodDogN3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5lbmFibGVkIC5zdGF0dXMtZG90IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiIzE2YTM0YSIsIiMyMmM1NWUiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXMtYmFkZ2UuZGlzYWJsZWQgLnN0YXR1cy1kb3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1cy1iYWRnZS5ub3QtY29uZmlndXJlZCAuc3RhdHVzLWRvdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuc3RhdHVzLWJhZGdlLndhcm5pbmcgLnN0YXR1cy1kb3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjU5ZTBiIiwiI2ZiYmYyNCIpfTsKICAgICAgfQoKICAgICAgLyogRm9vdGVyIGFjdGlvbiBidXR0b25zIOKAlCBjYW5vbmljYWwgZGVlcy1tb2RhbCAvIGRlZXMtdGlsZSBwYXR0ZXJuICovCiAgICAgIC5zZWN0aW9uLWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDA7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItYm9yZGVyLXN1YnRsZSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dC1tdXRlZCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4wOCkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLyogQ2hldnJvbiAqLwogICAgICAuY2hldnJvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAuY2hldnJvbi5jb2xsYXBzZWQgewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgIH0KCiAgICAgIC5jaGV2cm9uIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICB9CgogICAgICAvKiBDb250ZW50ICovCiAgICAgIC5zZWN0aW9uLWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5maWVsZHMtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICAvKiBGaWVsZCByb3dzICovCiAgICAgIC5maWVsZC1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMWExYTFlIil9OwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmZpZWxkcy1saXN0IC5maWVsZC1yb3c6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmZpZWxkLWtleSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5maWVsZC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIE1vbmFjbywgJ0Nhc2NhZGlhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5maWVsZC12YWx1ZS5udWxsLXZhbHVlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiNhMWExYWEiLCIjNTI1MjViIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLyogQm9vbGVhbiBkaXNwbGF5ICovCiAgICAgIC5ib29sLXZhbHVlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNXB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuYm9vbC12YWx1ZS50cnVlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxNmEzNGEiLCIjMjJjNTVlIil9OwogICAgICB9CgogICAgICAuYm9vbC12YWx1ZS5mYWxzZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmJvb2wtZG90IHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgLmJvb2wtdmFsdWUudHJ1ZSAuYm9vbC1kb3QgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMTZhMzRhIiwiIzIyYzU1ZSIpfTsKICAgICAgfQoKICAgICAgLmJvb2wtdmFsdWUuZmFsc2UgLmJvb2wtZG90IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgIH0KCiAgICAgIC8qIFBpbGxzICovCiAgICAgIC5waWxscyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA1cHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLnBpbGwgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMnB4IDlweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgTW9uYWNvLCAnQ2FzY2FkaWEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2VmZjZmZiIsInJnYmEoNTksMTMwLDI0NiwwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC8qIENvZGUgdmFsdWUgKi8KICAgICAgLmNvZGUtdmFsdWUgewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIE1vbmFjbywgJ0Nhc2NhZGlhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAvKiBMaW5rIHZhbHVlICovCiAgICAgIC5saW5rLXZhbHVlIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAubGluay12YWx1ZTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIERlc2NyaXB0aW9uIGhpbnQgKi8KICAgICAgLmZpZWxkLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjYTFhMWFhIiwiIzUyNTI1YiIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAzcHg7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgIH0KCiAgICAgIC8qIFNsb3QgZm9yIGN1c3RvbSBjb250ZW50ICovCiAgICAgIC5zbG90LWNvbnRlbnQgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxYTFhMWUiKX07CiAgICAgIH0KCiAgICAgIC5zbG90LWNvbnRlbnQuZW1wdHkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIHR5cGUgKi8KICAgICAgLmJhZGdlLXZhbHVlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA5cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM1MjUyNWIiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pc0NvbGxhcHNlZD10aGlzLmNvbGxhcHNlZCx0aGlzLmNvbGxhcHNpYmxlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY29sbGFwc2libGUiLCIiKX11cGRhdGVkKFQpe3N1cGVyLnVwZGF0ZWQoVCksVC5oYXMoImlzQ29sbGFwc2VkIikmJnRoaXMudG9nZ2xlQXR0cmlidXRlKCJjb2xsYXBzZWQiLHRoaXMuaXNDb2xsYXBzZWQpfW9uU2xvdENoYW5nZShUKXtsZXQgVz1ULnRhcmdldDt0aGlzLmhhc1Nsb3R0ZWRDb250ZW50PVcuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjohMH0pLmxlbmd0aD4wfXJlbmRlcigpe2xldCBUPXtlbmFibGVkOiJFbmFibGVkIixkaXNhYmxlZDoiRGlzYWJsZWQiLCJub3QtY29uZmlndXJlZCI6Ik5vdCBDb25maWd1cmVkIix3YXJuaW5nOiJXYXJuaW5nIn07cmV0dXJuIHdgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdgogICAgICAgICAgc2xvdD0iaGVhZGVyIgogICAgICAgICAgY2xhc3M9InNlY3Rpb24taGVhZGVyIgogICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLmNvbGxhcHNpYmxlJiYodGhpcy5pc0NvbGxhcHNlZD0hdGhpcy5pc0NvbGxhcHNlZCl9fQogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1sZWZ0Ij4KICAgICAgICAgICAgJHt0aGlzLmljb24/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItaWNvbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5pY29ufT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXRleHQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci10aXRsZSI+JHt0aGlzLnRpdGxlfTwvZGl2PgogICAgICAgICAgICAgICR7dGhpcy5zdWJ0aXRsZT93YDxkaXYgY2xhc3M9ImhlYWRlci1zdWJ0aXRsZSI+JHt0aGlzLnN1YnRpdGxlfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItcmlnaHQiPgogICAgICAgICAgICAke3RoaXMuc3RhdHVzP3dgCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1iYWRnZSAke3RoaXMuc3RhdHVzfSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzLWRvdCI+PC9zcGFuPgogICAgICAgICAgICAgICAgJHtUW3RoaXMuc3RhdHVzXXx8dGhpcy5zdGF0dXN9CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAke3RoaXMuY29sbGFwc2libGU/d2AKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hldnJvbiAke3RoaXMuaXNDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZXZyb25Eb3duIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4KICAgICAgICAgICR7dGhpcy5maWVsZHMubGVuZ3RoPjA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGRzLWxpc3QiPgogICAgICAgICAgICAgICR7dGhpcy5maWVsZHMubWFwKFc9PnRoaXMucmVuZGVyRmllbGQoVykpfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzbG90LWNvbnRlbnQgJHt0aGlzLmhhc1Nsb3R0ZWRDb250ZW50PyIiOiJlbXB0eSJ9Ij4KICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLm9uU2xvdENoYW5nZX0+PC9zbG90PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmxpbmtzLmxlbmd0aD4wfHx0aGlzLmFjdGlvbnMubGVuZ3RoPjA/d2AKICAgICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0ic2VjdGlvbi1mb290ZXIiPgogICAgICAgICAgICAke3RoaXMubGlua3MubWFwKFc9PndgCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGNsYXNzPSJ0aWxlLWJ1dHRvbiIKICAgICAgICAgICAgICAgIGhyZWY9JHtXLmhyZWZ9CiAgICAgICAgICAgICAgICB0YXJnZXQ9JHtXLmV4dGVybmFsPyJfYmxhbmsiOiJfc2VsZiJ9CiAgICAgICAgICAgICAgICByZWw9JHtXLmV4dGVybmFsPyJub29wZW5lciBub3JlZmVycmVyIjoiIn0KICAgICAgICAgICAgICAgIEBjbGljaz0ke3BlPT5wZS5zdG9wUHJvcGFnYXRpb24oKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke1cuaWNvbj93YDxkZWVzLWljb24gLmljb249JHtXLmljb259PjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgICAke1cubGFiZWx9CiAgICAgICAgICAgICAgICAke1cuZXh0ZXJuYWw/d2A8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpleHRlcm5hbExpbmsifT48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICR7dGhpcy5hY3Rpb25zLm1hcChXPT53YAogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIEBjbGljaz0ke3BlPT57cGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChXLmV2ZW50fHwiYWN0aW9uIix7ZGV0YWlsOlcuZGV0YWlsfHx7bGFiZWw6Vy5sYWJlbH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19PgogICAgICAgICAgICAgICAgJHtXLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7Vy5pY29ufT48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgJHtXLmxhYmVsfQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGVlcy10aWxlPgogICAgYH1yZW5kZXJGaWVsZChUKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZmllbGQtcm93Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZC1rZXkiPiR7VC5rZXl9PC9kaXY+CiAgICAgICAgPGRpdj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJGaWVsZFZhbHVlKFQpfQogICAgICAgICAgJHtULmRlc2NyaXB0aW9uP3dgPGRpdiBjbGFzcz0iZmllbGQtZGVzY3JpcHRpb24iPiR7VC5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmllbGRWYWx1ZShUKXtsZXQgVz1ULnZhbHVlLHBlPVQudHlwZXx8dGhpcy5pbmZlclR5cGUoVyk7aWYoVz09bnVsbClyZXR1cm4gd2A8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbnVsbC12YWx1ZSI+Tm90IGNvbmZpZ3VyZWQ8L3NwYW4+YDtzd2l0Y2gocGUpe2Nhc2UiYm9vbGVhbiI6cmV0dXJuIHdgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYm9vbC12YWx1ZSAke1c/InRydWUiOiJmYWxzZSJ9Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJvb2wtZG90Ij48L3NwYW4+CiAgICAgICAgICAgICR7Vz8iRW5hYmxlZCI6IkRpc2FibGVkIn0KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICBgO2Nhc2UicGlsbHMiOnJldHVybiBBcnJheS5pc0FycmF5KFcpJiZXLmxlbmd0aD09PTA/d2A8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUgbnVsbC12YWx1ZSI+Tm9uZTwvc3Bhbj5gOndgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxscyI+CiAgICAgICAgICAgICR7Vy5tYXAobWU9PndgPHNwYW4gY2xhc3M9InBpbGwiPiR7bWV9PC9zcGFuPmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtjYXNlImNvZGUiOnJldHVybiB3YDxzcGFuIGNsYXNzPSJjb2RlLXZhbHVlIj4ke1N0cmluZyhXKX08L3NwYW4+YDtjYXNlImJhZGdlIjpyZXR1cm4gd2A8c3BhbiBjbGFzcz0iYmFkZ2UtdmFsdWUiPiR7U3RyaW5nKFcpfTwvc3Bhbj5gO2Nhc2UibGluayI6cmV0dXJuIHdgCiAgICAgICAgICA8c3BhbgogICAgICAgICAgICBjbGFzcz0ibGluay12YWx1ZSIKICAgICAgICAgICAgQGNsaWNrPSR7KCk9PntULmxpbmtUbyYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibmF2aWdhdGUiLHtkZXRhaWw6e3RhcmdldDpULmxpbmtUb30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19CiAgICAgICAgICA+JHtTdHJpbmcoVyl9PC9zcGFuPgogICAgICAgIGA7ZGVmYXVsdDpyZXR1cm4gd2A8c3BhbiBjbGFzcz0iZmllbGQtdmFsdWUiPiR7U3RyaW5nKFcpfTwvc3Bhbj5gfX1pbmZlclR5cGUoVCl7cmV0dXJuIHR5cGVvZiBUPT0iYm9vbGVhbiI/ImJvb2xlYW4iOkFycmF5LmlzQXJyYXkoVCk/InBpbGxzIjoidGV4dCJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLERpKHRoaXMsUSl9c3RhdGlje0RpKGEscil9fTtyZXR1cm4gZmU9YX0pKCl9KTt2YXIgaWd0LHBhZSxUQmEsbWlhPXUoKCk9Pnt2ZSgpO2lndD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0scGFlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxUQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1jb25maWctb3ZlcnZpZXciKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXTt2YXIgcD1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pDb25maWdPdmVydmlldyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W1Aoe3R5cGU6U3RyaW5nfSldLGM9W1Aoe3R5cGU6U3RyaW5nfSldLGlndCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImhlYWRpbmciaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5oZWFkaW5nLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uaGVhZGluZz12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksaWd0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5mb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImluZm9UZXh0ImluIG0sImhhcyIpLGdldDppKG09Pm0uaW5mb1RleHQsImdldCIpLHNldDppKChtLHYpPT57bS5pbmZvVGV4dD12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksaWd0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89aSgoKT0+d2A8c3otY29uZmlnLW92ZXJ2aWV3CiAgICBoZWFkaW5nPSJDb25maWd1cmF0aW9uIgogICAgaW5mb1RleHQ9IlRoaXMgaXMgYSByZWFkLW9ubHkgdmlldyBvZiB0aGUgY3VycmVudCBydW5uaW5nIGNvbmZpZ3VyYXRpb24uIgogID4KICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM3MTcxN2E7IGZvbnQtc2l6ZTogMTRweDsiPgogICAgICBQbGFjZSAmbHQ7c3otY29uZmlnLXNlY3Rpb24mZ3Q7IGVsZW1lbnRzIGhlcmUKICAgIDwvZGl2PgogIDwvc3otY29uZmlnLW92ZXJ2aWV3PmAsImRlbW8iKTtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNvbmZpZ3VyYXRpb24iXTsjZT1wYWUodGhpcyxvLCIiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKGgpe3RoaXMuI2U9aH0jdD0ocGFlKHRoaXMsbCkscGFlKHRoaXMsZCwiIikpO2dldCBpbmZvVGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCBpbmZvVGV4dChoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5pbmZvLWJhbm5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTRweCAxOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZWZmNmZmIiwicmdiYSg1OSwxMzAsMjQ2LDAuMDgpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjYmZkYmZlIiwicmdiYSg1OSwxMzAsMjQ2LDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMWU0MGFmIiwiIzkzYzVmZCIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLmluZm8tYmFubmVyIGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKHN6LWNvbmZpZy1zZWN0aW9uKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKHN6LWNvbmZpZy1zZWN0aW9uOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmhlYWRpbmc/d2A8ZGl2IGNsYXNzPSJoZWFkaW5nIj4ke3RoaXMuaGVhZGluZ308L2Rpdj5gOiIifQogICAgICAke3RoaXMuaW5mb1RleHQ/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWJhbm5lciI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTppbmZvIn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj4ke3RoaXMuaW5mb1RleHR9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxwYWUodGhpcyxmKX1zdGF0aWN7cGFlKGEscil9fTtyZXR1cm4gcD1hfSkoKX0pO3ZhciBMQmEsREJhLCRCYSxnaWE9dSgoKT0+e3ZlKCk7YmwoKTtMQmE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LERCYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sJEJhPSgoKT0+e2xldCB0PVt1ZSgic3otZGVtby12aWV3LWRhc2hib2FyZCIpXSxlLHI9W10sYSxzPXllO3ZhciBuPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3RGFzaGJvYXJkIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7TEJhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9YXBwdWk9bnVsbDthc3luYyBvbkFjdGl2YXRlKG8pe3RoaXMuYXBwdWk9by5hcHB1aSx0aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkRhc2hib2FyZCIsZ3JvdXBzOlt7bmFtZToiUXVpY2sgQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiRGVwbG95IFNlcnZpY2UiLGljb25OYW1lOiJsdWNpZGU6Um9ja2V0IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJEZXBsb3kgc2VydmljZSIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQWRkIERvbWFpbiIsaWNvbk5hbWU6Imx1Y2lkZTpHbG9iZSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQWRkIGRvbWFpbiIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIFRva2VuIixpY29uTmFtZToibHVjaWRlOktleSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ3JlYXRlIHRva2VuIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiU3lzdGVtIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIFN0YXRzIixpY29uTmFtZToibHVjaWRlOlJlZnJlc2hDdyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiUmVmcmVzaCIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiVmlldyBMb2dzIixpY29uTmFtZToibHVjaWRlOlRlcm1pbmFsIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJWaWV3IGxvZ3MiKX0sImFjdGlvbiIpfV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5EYXNoYm9hcmQ8L2gxPgogICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5PdmVydmlldyBvZiB5b3VyIG9uZWJveCBpbmZyYXN0cnVjdHVyZTwvcD4KICAgICAgPC9kaXY+CgogICAgICA8c3otZGFzaGJvYXJkLXZpZXcKICAgICAgICAuY2x1c3RlclN0YXRzPSR7e3RvdGFsU2VydmljZXM6MTIscnVubmluZzo5LHN0b3BwZWQ6Myxkb2NrZXJTdGF0dXM6InJ1bm5pbmcifX0KICAgICAgICAucmVzb3VyY2VVc2FnZT0ke3tjcHU6NDUsbWVtb3J5VXNlZDoiNi4yIEdCIixtZW1vcnlUb3RhbDoiMTYgR0IiLG5ldHdvcmtJbjoiMi41IE1CL3MiLG5ldHdvcmtPdXQ6IjEuMiBNQi9zIix0b3BDb25zdW1lcnM6W3tuYW1lOiJtb25nb2RiIixtZW1vcnk6IjEuMiBHQiJ9LHtuYW1lOiJjbGlja2hvdXNlIixtZW1vcnk6Ijk4MCBNQiJ9LHtuYW1lOiJuZ2lueC1wcm94eSIsbWVtb3J5OiIyNTYgTUIifV19fQogICAgICAgIC5wbGF0Zm9ybVNlcnZpY2VzPSR7W3tuYW1lOiJNb25nb0RCIixzdGF0dXM6InJ1bm5pbmciLGljb246ImRhdGFiYXNlIn0se25hbWU6IlMzIFN0b3JhZ2UiLHN0YXR1czoicnVubmluZyIsaWNvbjoic3RvcmFnZSJ9LHtuYW1lOiJDbGlja0hvdXNlIixzdGF0dXM6InN0b3BwZWQiLGljb246ImFuYWx5dGljcyJ9LHtuYW1lOiJSZWRpcyBDYWNoZSIsc3RhdHVzOiJydW5uaW5nIixpY29uOiJjYWNoZSJ9XX0KICAgICAgICAudHJhZmZpYz0ke3tyZXF1ZXN0czoxNTQyMCxlcnJvcnM6MjMsZXJyb3JQZXJjZW50Oi4xNSxhdmdSZXNwb25zZToxNDUscmVxUGVyTWluOjg1NixzdGF0dXMyeHg6MTQ4NTAsc3RhdHVzM3h4OjMyMCxzdGF0dXM0eHg6MjI3LHN0YXR1czV4eDoyM319CiAgICAgICAgLnByb3h5PSR7e2h0dHBQb3J0OiI4MCIsaHR0cHNQb3J0OiI0NDMiLGh0dHBBY3RpdmU6ITAsaHR0cHNBY3RpdmU6ITAscm91dGVDb3VudDoiMjQifX0KICAgICAgICAuY2VydGlmaWNhdGVzPSR7e3ZhbGlkOjE4LGV4cGlyaW5nOjIsZXhwaXJlZDowfX0KICAgICAgICAuZG5zPSR7e3JlY29yZHM6NDUsem9uZXM6OCxwZW5kaW5nQ2hhbmdlczowfX0KICAgICAgICAuc3NsPSR7e2FjdGl2ZUNlcnRzOjIwLGF1dG9SZW5ldzohMCxwcm92aWRlcjoiTGV0J3MgRW5jcnlwdCJ9fQogICAgICAgIEBxdWljay1hY3Rpb249JHtvPT5jb25zb2xlLmxvZygiUXVpY2sgYWN0aW9uOiIsby5kZXRhaWwpfQogICAgICA+PC9zei1kYXNoYm9hcmQtdmlldz4KICAgIGB9c3RhdGlje0RCYShhLHIpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgaW1lLHdnLEFCYSxiaWE9dSgoKT0+e3ZlKCk7YmwoKTtpbWU9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LHdnPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxBQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1kZW1vLXZpZXctc2VydmljZXMiKV0sZSxyPVtdLGEscz15ZSxuLG89W10sbD1bXSxjLGQ9W10sZj1bXSxwLGg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pEZW1vVmlld1NlcnZpY2VzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baWUoKV0sYz1baWUoKV0scD1baWUoKV0saW1lKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImN1cnJlbnRWaWV3ImluIGcsImhhcyIpLGdldDppKGc9PmcuY3VycmVudFZpZXcsImdldCIpLHNldDppKChnLHkpPT57Zy5jdXJyZW50Vmlldz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksaW1lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRTZXJ2aWNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJzZWxlY3RlZFNlcnZpY2UiaW4gZywiaGFzIiksZ2V0OmkoZz0+Zy5zZWxlY3RlZFNlcnZpY2UsImdldCIpLHNldDppKChnLHkpPT57Zy5zZWxlY3RlZFNlcnZpY2U9eX0sInNldCIpfSxtZXRhZGF0YTpifSxkLGYpLGltZSh0aGlzLG51bGwscCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkUGxhdGZvcm1TZXJ2aWNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJzZWxlY3RlZFBsYXRmb3JtU2VydmljZSJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnNlbGVjdGVkUGxhdGZvcm1TZXJ2aWNlLCJnZXQiKSxzZXQ6aSgoZyx5KT0+e2cuc2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2U9eX0sInNldCIpfSxtZXRhZGF0YTpifSxoLG0pLGltZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHIpLHY9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfWFwcHVpPW51bGw7I2U9d2codGhpcyxvLCJsaXN0Iik7Z2V0IGN1cnJlbnRWaWV3KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRWaWV3KGIpe3RoaXMuI2U9Yn0jdD0od2codGhpcyxsKSx3Zyh0aGlzLGQsbnVsbCkpO2dldCBzZWxlY3RlZFNlcnZpY2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRTZXJ2aWNlKGIpe3RoaXMuI3Q9Yn0jcj0od2codGhpcyxmKSx3Zyh0aGlzLGgsbnVsbCkpO2dldCBzZWxlY3RlZFBsYXRmb3JtU2VydmljZSgpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RlZFBsYXRmb3JtU2VydmljZShiKXt0aGlzLiNyPWJ9ZGVtb1NlcnZpY2VzPSh3Zyh0aGlzLG0pLFt7aWQ6IjEiLG5hbWU6Im5naW54LXByb3h5IixpbWFnZToibmdpbng6bGF0ZXN0IixzdGF0dXM6InJ1bm5pbmciLGNwdToiMi41JSIsbWVtb3J5OiIyNTYgTUIiLHBvcnRzOiI4MCwgNDQzIix1cHRpbWU6IjVkIDEyaCJ9LHtpZDoiMiIsbmFtZToiYXBpLWdhdGV3YXkiLGltYWdlOiJhcGktZ2F0ZXdheTp2Mi4xLjAiLHN0YXR1czoicnVubmluZyIsY3B1OiI4LjIlIixtZW1vcnk6IjUxMiBNQiIscG9ydHM6IjMwMDAiLHVwdGltZToiM2QgOGgifSx7aWQ6IjMiLG5hbWU6Indvcmtlci1zZXJ2aWNlIixpbWFnZToid29ya2VyOmxhdGVzdCIsc3RhdHVzOiJzdG9wcGVkIixjcHU6IjAlIixtZW1vcnk6IjAgTUIiLHBvcnRzOiItIix1cHRpbWU6Ii0ifSx7aWQ6IjQiLG5hbWU6InJlZGlzLWNhY2hlIixpbWFnZToicmVkaXM6Ny1hbHBpbmUiLHN0YXR1czoicnVubmluZyIsY3B1OiIxLjIlIixtZW1vcnk6IjEyOCBNQiIscG9ydHM6IjYzNzkiLHVwdGltZToiMTBkIDRoIn1dKTtkZW1vUGxhdGZvcm1TZXJ2aWNlPXtpZDoiMSIsbmFtZToiTW9uZ29EQiIsdHlwZToibW9uZ29kYiIsc3RhdHVzOiJydW5uaW5nIix2ZXJzaW9uOiI3LjAuNCIsaG9zdDoibG9jYWxob3N0Iixwb3J0OjI3MDE3LGNyZWRlbnRpYWxzOnt1c2VybmFtZToiYWRtaW4iLHBhc3N3b3JkOiJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjJcdTIwMjIifSxjb25maWc6e3JlcGxpY2FTZXQ6InJzMCIsYXV0aEVuYWJsZWQ6ITAsam91cm5hbGluZzohMH0sbWV0cmljczp7Y3B1OjEyLG1lbW9yeTo0NSxzdG9yYWdlOjIzLGNvbm5lY3Rpb25zOjh9fTtkZW1vUGxhdGZvcm1Mb2dzPVt7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIyIixsZXZlbDoiaW5mbyIsbWVzc2FnZToiQ29ubmVjdGlvbiBhY2NlcHRlZCBmcm9tIDEyNy4wLjAuMTo1NDMyMSJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjAiLGxldmVsOiJpbmZvIixtZXNzYWdlOiJJbmRleCBidWlsZCBjb21wbGV0ZWQgb24gY29sbGVjdGlvbiB1c2VycyJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MTUiLGxldmVsOiJ3YXJuIixtZXNzYWdlOiJTbG93IHF1ZXJ5IGRldGVjdGVkOiAxLjJzIG9uIGNvbGxlY3Rpb24gb3JkZXJzIn0se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoxMCIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6IkNoZWNrcG9pbnQgY29tcGxldGUifV07ZGVtb0JhY2t1cFNjaGVkdWxlcz1be2lkOiIxIixzY29wZToiQWxsIFNlcnZpY2VzIixyZXRlbnRpb246IkQ6NywgVzo0LCBNOjEyIixzY2hlZHVsZToiMCAyICogKiAqIixsYXN0UnVuOiIxLzIvMjAyNiwgMjowMDowMyBBTSIsbmV4dFJ1bjoiMS8zLzIwMjYsIDI6MDA6MDAgQU0iLHN0YXR1czoiYWN0aXZlIn1dO2RlbW9CYWNrdXBzPVt7aWQ6IjEiLHNlcnZpY2U6Im5naW54LXByb3h5IixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAzIEFNIixzaXplOiIyMi4wIE1CIixpbmNsdWRlczpbIkltYWdlIl19LHtpZDoiMiIsc2VydmljZToiYXBpLWdhdGV3YXkiLGNyZWF0ZWRBdDoiMS8yLzIwMjYsIDI6MDA6MDIgQU0iLHNpemU6IjE1Ni41IE1CIixpbmNsdWRlczpbIkltYWdlIiwiVm9sdW1lcyJdfSx7aWQ6IjMiLHNlcnZpY2U6InJlZGlzLWNhY2hlIixjcmVhdGVkQXQ6IjEvMi8yMDI2LCAyOjAwOjAwIEFNIixzaXplOiI0OC4wIE1CIixpbmNsdWRlczpbIkltYWdlIiwiRGF0YSJdfV07c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucGFnZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQoKICAgICAgLnRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwOwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMXB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweCAxcHggMCAwOwogICAgICB9CgogICAgICAuYmFjay1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJhY2stYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5jdXJyZW50Vmlldz09PSJsaXN0Ij90aGlzLnJlbmRlckxpc3RWaWV3KCk6IiJ9CiAgICAgICR7dGhpcy5jdXJyZW50Vmlldz09PSJjcmVhdGUiP3RoaXMucmVuZGVyQ3JlYXRlVmlldygpOiIifQogICAgICAke3RoaXMuY3VycmVudFZpZXc9PT0iZGV0YWlsIj90aGlzLnJlbmRlckRldGFpbFZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRWaWV3PT09ImJhY2t1cHMiP3RoaXMucmVuZGVyQmFja3Vwc1ZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRWaWV3PT09InBsYXRmb3JtLWRldGFpbCI/dGhpcy5yZW5kZXJQbGF0Zm9ybURldGFpbFZpZXcoKToiIn0KICAgIGB9cmVuZGVyTGlzdFZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pbmZvIj4KICAgICAgICAgIDxoMSBjbGFzcz0icGFnZS10aXRsZSI+U2VydmljZXM8L2gxPgogICAgICAgICAgPHAgY2xhc3M9InBhZ2Utc3VidGl0bGUiPk1hbmFnZSB5b3VyIERvY2tlciBjb250YWluZXJzIGFuZCBwbGF0Zm9ybSBzZXJ2aWNlczwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIHNlY29uZGFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9ImJhY2t1cHMifT4KICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQiLz4KICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNyA4IDEyIDMgNyA4Ii8+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMyIgeDI9IjEyIiB5Mj0iMTUiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIEJhY2t1cHMKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9ImNyZWF0ZSJ9PgogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSIvPgogICAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIi8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICBEZXBsb3kgU2VydmljZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0idGFicyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGFiIGFjdGl2ZSI+RG9ja2VyIFNlcnZpY2VzPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGFiIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2VsZWN0ZWRQbGF0Zm9ybVNlcnZpY2U9dGhpcy5kZW1vUGxhdGZvcm1TZXJ2aWNlLHRoaXMuY3VycmVudFZpZXc9InBsYXRmb3JtLWRldGFpbCJ9fT5QbGF0Zm9ybSBTZXJ2aWNlczwvYnV0dG9uPgogICAgICA8L2Rpdj4KCiAgICAgIDxzei1zZXJ2aWNlcy1saXN0LXZpZXcKICAgICAgICAuc2VydmljZXM9JHt0aGlzLmRlbW9TZXJ2aWNlc30KICAgICAgICBAdmlldy1zZXJ2aWNlPSR7Yj0+e3RoaXMuc2VsZWN0ZWRTZXJ2aWNlPWIuZGV0YWlsLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCJ9fQogICAgICAgIEBzdGFydC1zZXJ2aWNlPSR7Yj0+Y29uc29sZS5sb2coIlN0YXJ0IHNlcnZpY2U6IixiLmRldGFpbCl9CiAgICAgICAgQHN0b3Atc2VydmljZT0ke2I9PmNvbnNvbGUubG9nKCJTdG9wIHNlcnZpY2U6IixiLmRldGFpbCl9CiAgICAgICAgQHJlc3RhcnQtc2VydmljZT0ke2I9PmNvbnNvbGUubG9nKCJSZXN0YXJ0IHNlcnZpY2U6IixiLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1zZXJ2aWNlPSR7Yj0+Y29uc29sZS5sb2coIkRlbGV0ZSBzZXJ2aWNlOiIsYi5kZXRhaWwpfQogICAgICA+PC9zei1zZXJ2aWNlcy1saXN0LXZpZXc+CiAgICBgfXJlbmRlckNyZWF0ZVZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJsaXN0In0+CiAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz4KICAgICAgICA8L3N2Zz4KICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPHN6LXNlcnZpY2UtY3JlYXRlLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1t7aWQ6IjEiLG5hbWU6Ik9uZWJveCBSZWdpc3RyeSIsdXJsOiJyZWdpc3RyeS5vbmVib3gubG9jYWwifSx7aWQ6IjIiLG5hbWU6IkRvY2tlciBIdWIiLHVybDoiZG9ja2VyLmlvIn1dfQogICAgICAgIEBjcmVhdGUtc2VydmljZT0ke2I9Pntjb25zb2xlLmxvZygiQ3JlYXRlIHNlcnZpY2U6IixiLmRldGFpbCksdGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICAgIEBjYW5jZWw9JHsoKT0+dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9CiAgICAgID48L3N6LXNlcnZpY2UtY3JlYXRlLXZpZXc+CiAgICBgfXJlbmRlckRldGFpbFZpZXcoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRWaWV3PSJsaXN0In0+CiAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz4KICAgICAgICA8L3N2Zz4KICAgICAgICBCYWNrIHRvIFNlcnZpY2VzCiAgICAgIDwvYnV0dG9uPgoKICAgICAgPHN6LXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3tpZDp0aGlzLnNlbGVjdGVkU2VydmljZT8uaWR8fCIxIixuYW1lOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5uYW1lfHwibmdpbngtcHJveHkiLGltYWdlOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5pbWFnZXx8Im5naW54OmxhdGVzdCIsc3RhdHVzOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5zdGF0dXN8fCJydW5uaW5nIixwb3J0czpbe2hvc3Q6IjgwIixjb250YWluZXI6IjgwIn0se2hvc3Q6IjQ0MyIsY29udGFpbmVyOiI0NDMifV0sZW52VmFyczpbe2tleToiTkdJTlhfSE9TVCIsdmFsdWU6ImxvY2FsaG9zdCJ9LHtrZXk6Ik5HSU5YX1BPUlQiLHZhbHVlOiI4MCJ9XSx2b2x1bWVzOlt7aG9zdDoiL2RhdGEvbmdpbngvY29uZiIsY29udGFpbmVyOiIvZXRjL25naW54L2NvbmYuZCJ9XSxjcmVhdGVkQXQ6IjIwMjQtMDEtMTUgMTA6MzA6MDAiLHJlc3RhcnRQb2xpY3k6ImFsd2F5cyJ9fQogICAgICAgIC5sb2dzPSR7W3t0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MjIiLGxldmVsOiJpbmZvIixtZXNzYWdlOicxMjcuMC4wLjEgLSAtIFsyMC9KYW4vMjAyNDoxNDozMDoyMiArMDAwMF0gIkdFVCAvIEhUVFAvMS4xIiAyMDAgNjEyJ30se3RpbWVzdGFtcDoiMjAyNC0wMS0yMCAxNDozMDoyMSIsbGV2ZWw6ImluZm8iLG1lc3NhZ2U6JzEyNy4wLjAuMSAtIC0gWzIwL0phbi8yMDI0OjE0OjMwOjIxICswMDAwXSAiR0VUIC9hcGkvaGVhbHRoIEhUVFAvMS4xIiAyMDAgMTUnfSx7dGltZXN0YW1wOiIyMDI0LTAxLTIwIDE0OjMwOjIwIixsZXZlbDoid2FybiIsbWVzc2FnZToidXBzdHJlYW0gdGltZWQgb3V0ICgxMTA6IENvbm5lY3Rpb24gdGltZWQgb3V0KSJ9LHt0aW1lc3RhbXA6IjIwMjQtMDEtMjAgMTQ6MzA6MTkiLGxldmVsOiJpbmZvIixtZXNzYWdlOicxMjcuMC4wLjEgLSAtIFsyMC9KYW4vMjAyNDoxNDozMDoxOSArMDAwMF0gIlBPU1QgL2FwaS9kYXRhIEhUVFAvMS4xIiAyMDEgODknfV19CiAgICAgICAgQHN0YXJ0PSR7KCk9PmNvbnNvbGUubG9nKCJTdGFydCIpfQogICAgICAgIEBzdG9wPSR7KCk9PmNvbnNvbGUubG9nKCJTdG9wIil9CiAgICAgICAgQHJlc3RhcnQ9JHsoKT0+Y29uc29sZS5sb2coIlJlc3RhcnQiKX0KICAgICAgICBAcmVxdWVzdC13b3Jrc3BhY2U9JHtiPT5jb25zb2xlLmxvZygiV29ya3NwYWNlIHJlcXVlc3RlZCBmb3I6IixiLmRldGFpbC5zZXJ2aWNlLm5hbWUpfQogICAgICA+PC9zei1zZXJ2aWNlLWRldGFpbC12aWV3PgogICAgYH1yZW5kZXJCYWNrdXBzVmlldygpe3JldHVybiB3YAogICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9Imxpc3QifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gU2VydmljZXMKICAgICAgPC9idXR0b24+CgogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWluZm8iPgogICAgICAgICAgPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5CYWNrdXBzPC9oMT4KICAgICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5NYW5hZ2UgYmFja3VwIHNjaGVkdWxlcyBhbmQgcmVzdG9yZSBwb2ludHM8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPHN6LXNlcnZpY2VzLWJhY2t1cHMtdmlldwogICAgICAgIC5zY2hlZHVsZXM9JHt0aGlzLmRlbW9CYWNrdXBTY2hlZHVsZXN9CiAgICAgICAgLmJhY2t1cHM9JHt0aGlzLmRlbW9CYWNrdXBzfQogICAgICAgIEBjcmVhdGUtc2NoZWR1bGU9JHsoKT0+Y29uc29sZS5sb2coIkNyZWF0ZSBzY2hlZHVsZSIpfQogICAgICAgIEBydW4tbm93PSR7Yj0+Y29uc29sZS5sb2coIlJ1biBub3c6IixiLmRldGFpbCl9CiAgICAgICAgQGRvd25sb2FkPSR7Yj0+Y29uc29sZS5sb2coIkRvd25sb2FkOiIsYi5kZXRhaWwpfQogICAgICA+PC9zei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXc+CiAgICBgfXJlbmRlclBsYXRmb3JtRGV0YWlsVmlldygpe3JldHVybiB3YAogICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3VycmVudFZpZXc9Imxpc3QifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gU2VydmljZXMKICAgICAgPC9idXR0b24+CgogICAgICA8c3otcGxhdGZvcm0tc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7dGhpcy5kZW1vUGxhdGZvcm1TZXJ2aWNlfQogICAgICAgIC5sb2dzPSR7dGhpcy5kZW1vUGxhdGZvcm1Mb2dzfQogICAgICAgIEBzdGFydD0keygpPT5jb25zb2xlLmxvZygiU3RhcnQiKX0KICAgICAgICBAc3RvcD0keygpPT5jb25zb2xlLmxvZygiU3RvcCIpfQogICAgICAgIEByZXN0YXJ0PSR7KCk9PmNvbnNvbGUubG9nKCJSZXN0YXJ0Iil9CiAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICBgfWFzeW5jIG9uQWN0aXZhdGUoYil7dGhpcy5hcHB1aT1iLmFwcHVpLHRoaXMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkRvY2tlciBTZXJ2aWNlcyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJQbGF0Zm9ybSBTZXJ2aWNlcyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJwbGF0Zm9ybS1kZXRhaWwiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkJhY2t1cHMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50Vmlldz0iYmFja3VwcyIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX1dKSx0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX11cGRhdGVTZWNvbmRhcnlNZW51KCl7dGhpcy5hcHB1aSYmdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJTZXJ2aWNlcyIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiRGVwbG95IFNlcnZpY2UiLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnRWaWV3PSJjcmVhdGUifSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpSZWZyZXNoQ3ciLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlJlZnJlc2giKX0sImFjdGlvbiIpfV19LHtuYW1lOiJRdWljayBGaWx0ZXJzIixpdGVtczpbe2tleToiUnVubmluZyIsaWNvbk5hbWU6Imx1Y2lkZTpQbGF5IixiYWRnZToiMyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgcnVubmluZyIpfSwiYWN0aW9uIil9LHtrZXk6IlN0b3BwZWQiLGljb25OYW1lOiJsdWNpZGU6U3F1YXJlIixiYWRnZToiMSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIHN0b3BwZWQiKX0sImFjdGlvbiIpfV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWN7d2coYSxyKX19O3JldHVybiB2PWF9KSgpfSk7dmFyIHNndCxmYWUsRUJhLHhpYT11KCgpPT57dmUoKTtibCgpO3NndD1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sZmFlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxFQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1kZW1vLXZpZXctbmV0d29yayIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdO3ZhciBwPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3TmV0d29yayIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLGM9W2llKCldLHNndCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+ImN1cnJlbnRUYWIiaW4gbSwiaGFzIiksZ2V0OmkobT0+bS5jdXJyZW50VGFiLCJnZXQiKSxzZXQ6aSgobSx2KT0+e20uY3VycmVudFRhYj12fSwic2V0Iil9LG1ldGFkYXRhOmh9LG8sbCksc2d0KHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWREb21haW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkobT0+InNlbGVjdGVkRG9tYWluImluIG0sImhhcyIpLGdldDppKG09Pm0uc2VsZWN0ZWREb21haW4sImdldCIpLHNldDppKChtLHYpPT57bS5zZWxlY3RlZERvbWFpbj12fSwic2V0Iil9LG1ldGFkYXRhOmh9LGQsZiksc2d0KG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmh9LG51bGwscikscD1hPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9YXBwdWk9bnVsbDsjZT1mYWUodGhpcyxvLCJwcm94eSIpO2dldCBjdXJyZW50VGFiKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRUYWIoaCl7dGhpcy4jZT1ofWFzeW5jIG9uQWN0aXZhdGUoaCl7dGhpcy5hcHB1aT1oLmFwcHVpLHRoaXMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IlJldmVyc2UgUHJveHkiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJwcm94eSIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiRE5TIFJlY29yZHMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJkbnMiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkRvbWFpbnMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJkb21haW5zIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfV0pLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfXVwZGF0ZVNlY29uZGFyeU1lbnUoKXt0aGlzLmFwcHVpJiYodGhpcy5jdXJyZW50VGFiPT09InByb3h5Ij90aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlJldmVyc2UgUHJveHkiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBSb3V0ZSIsaWNvbk5hbWU6Imx1Y2lkZTpQbHVzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgcm91dGUiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2giLGljb25OYW1lOiJsdWNpZGU6UmVmcmVzaEN3IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJSZWZyZXNoIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiU3RhdGlzdGljcyIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiI0MiBBY3RpdmUgQ29ubmVjdGlvbnMifSx7dHlwZToiaGVhZGVyIixsYWJlbDoiMTUsNDIwIFJlcXVlc3RzIFRvZGF5In1dfV19KTp0aGlzLmN1cnJlbnRUYWI9PT0iZG5zIj90aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkROUyBSZWNvcmRzIixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJBZGQgUmVjb3JkIixpY29uTmFtZToibHVjaWRlOlBsdXMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkFkZCByZWNvcmQiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkltcG9ydCBab25lIixpY29uTmFtZToibHVjaWRlOlVwbG9hZCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiSW1wb3J0IHpvbmUiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJab25lcyIsaXRlbXM6W3trZXk6ImV4YW1wbGUuY29tIixpY29uTmFtZToibHVjaWRlOkdsb2JlIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJTZWxlY3QgZXhhbXBsZS5jb20iKX0sImFjdGlvbiIpfSx7a2V5OiJleGFtcGxlLm5ldCIsaWNvbk5hbWU6Imx1Y2lkZTpHbG9iZSIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiU2VsZWN0IGV4YW1wbGUubmV0Iil9LCJhY3Rpb24iKX0se2tleToibXlhcHAuaW8iLGljb25OYW1lOiJsdWNpZGU6R2xvYmUiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlNlbGVjdCBteWFwcC5pbyIpfSwiYWN0aW9uIil9XX1dfSk6KHRoaXMuY3VycmVudFRhYj09PSJkb21haW5zInx8dGhpcy5jdXJyZW50VGFiPT09ImRvbWFpbi1kZXRhaWwiKSYmdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJEb21haW5zIixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJBZGQgRG9tYWluIixpY29uTmFtZToibHVjaWRlOlBsdXMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkFkZCBkb21haW4iKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IlZlcmlmeSBBbGwiLGljb25OYW1lOiJsdWNpZGU6Q2hlY2tDaXJjbGUiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlZlcmlmeSBhbGwiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJDZXJ0aWZpY2F0ZXMiLGl0ZW1zOlt7a2V5OiJWYWxpZCIsaWNvbk5hbWU6Imx1Y2lkZTpTaGllbGRDaGVjayIsYmFkZ2U6IjMiLGJhZGdlVmFyaWFudDoic3VjY2VzcyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIHZhbGlkIil9LCJhY3Rpb24iKX0se2tleToiRXhwaXJpbmcgU29vbiIsaWNvbk5hbWU6Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIixiYWRnZToiMSIsYmFkZ2VWYXJpYW50OiJ3YXJuaW5nIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgZXhwaXJpbmciKX0sImFjdGlvbiIpfV19XX0pKX1vbkRlYWN0aXZhdGUoKXt9I3Q9KGZhZSh0aGlzLGwpLGZhZSh0aGlzLGQsbnVsbCkpO2dldCBzZWxlY3RlZERvbWFpbigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZERvbWFpbihoKXt0aGlzLiN0PWh9ZGVtb1Byb3h5Um91dGVzPShmYWUodGhpcyxmKSxbe2lkOiIxIixkb21haW46ImFwaS5leGFtcGxlLmNvbSIsdGFyZ2V0OiJodHRwOi8vYXBpLWdhdGV3YXk6MzAwMCIsc3NsOiEwLHN0YXR1czoiYWN0aXZlIn0se2lkOiIyIixkb21haW46ImFwcC5leGFtcGxlLmNvbSIsdGFyZ2V0OiJodHRwOi8vZnJvbnRlbmQ6ODA4MCIsc3NsOiEwLHN0YXR1czoiYWN0aXZlIn0se2lkOiIzIixkb21haW46ImFkbWluLmV4YW1wbGUuY29tIix0YXJnZXQ6Imh0dHA6Ly9hZG1pbi1wYW5lbDo0MDAwIixzc2w6ITAsc3RhdHVzOiJhY3RpdmUifSx7aWQ6IjQiLGRvbWFpbjoibGVnYWN5LmV4YW1wbGUuY29tIix0YXJnZXQ6Imh0dHA6Ly9sZWdhY3k6NTAwMCIsc3NsOiExLHN0YXR1czoiaW5hY3RpdmUifV0pO2RlbW9BY2Nlc3NMb2dzPVt7dGltZXN0YW1wOiIxNDozMDoyMiIsbWV0aG9kOiJHRVQiLHBhdGg6Ii9hcGkvdXNlcnMiLHN0YXR1czoyMDAsZHVyYXRpb246IjQ1bXMiLGlwOiIxOTIuMTY4LjEuMTAwIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLG1ldGhvZDoiUE9TVCIscGF0aDoiL2FwaS9vcmRlcnMiLHN0YXR1czoyMDEsZHVyYXRpb246IjEyMG1zIixpcDoiMTkyLjE2OC4xLjEwNSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixtZXRob2Q6IkdFVCIscGF0aDoiL2FwaS9wcm9kdWN0cyIsc3RhdHVzOjIwMCxkdXJhdGlvbjoiODltcyIsaXA6IjE5Mi4xNjguMS4xMDAifSx7dGltZXN0YW1wOiIxNDozMDoxOSIsbWV0aG9kOiJERUxFVEUiLHBhdGg6Ii9hcGkvY2FjaGUiLHN0YXR1czoyMDQsZHVyYXRpb246IjEybXMiLGlwOiIxOTIuMTY4LjEuNTAifSx7dGltZXN0YW1wOiIxNDozMDoxOCIsbWV0aG9kOiJHRVQiLHBhdGg6Ii9oZWFsdGgiLHN0YXR1czoyMDAsZHVyYXRpb246IjVtcyIsaXA6IjEwLjAuMC4xIn1dO2RlbW9EbnNSZWNvcmRzPVt7aWQ6IjEiLHR5cGU6IkEiLG5hbWU6IkAiLHZhbHVlOiIxOTIuMTY4LjEuMTAwIix0dGw6MzYwMCx6b25lOiJleGFtcGxlLmNvbSJ9LHtpZDoiMiIsdHlwZToiQSIsbmFtZToiYXBpIix2YWx1ZToiMTkyLjE2OC4xLjEwMCIsdHRsOjM2MDAsem9uZToiZXhhbXBsZS5jb20ifSx7aWQ6IjMiLHR5cGU6IkNOQU1FIixuYW1lOiJ3d3ciLHZhbHVlOiJleGFtcGxlLmNvbSIsdHRsOjM2MDAsem9uZToiZXhhbXBsZS5jb20ifSx7aWQ6IjQiLHR5cGU6Ik1YIixuYW1lOiJAIix2YWx1ZToibWFpbC5leGFtcGxlLmNvbSIsdHRsOjM2MDAsem9uZToiZXhhbXBsZS5jb20iLHByaW9yaXR5OjEwfSx7aWQ6IjUiLHR5cGU6IlRYVCIsbmFtZToiQCIsdmFsdWU6InY9c3BmMSBpbmNsdWRlOl9zcGYuZXhhbXBsZS5jb20gfmFsbCIsdHRsOjM2MDAsem9uZToiZXhhbXBsZS5jb20ifV07ZGVtb0RvbWFpbnM9W3tpZDoiMSIsbmFtZToiZXhhbXBsZS5jb20iLHN0YXR1czoiYWN0aXZlIixzc2w6ITAsc3NsRXhwaXJ5OiIyMDI0LTA0LTE1IixkbnNQcm92aWRlcjoiQ2xvdWRmbGFyZSIscmVjb3JkQ291bnQ6MTJ9LHtpZDoiMiIsbmFtZToiYXBpLmV4YW1wbGUuY29tIixzdGF0dXM6ImFjdGl2ZSIsc3NsOiEwLHNzbEV4cGlyeToiMjAyNC0wNS0yMCIsZG5zUHJvdmlkZXI6IkNsb3VkZmxhcmUiLHJlY29yZENvdW50OjN9LHtpZDoiMyIsbmFtZToic3RhZ2luZy5leGFtcGxlLmNvbSIsc3RhdHVzOiJwZW5kaW5nIixzc2w6ITEsc3NsRXhwaXJ5Om51bGwsZG5zUHJvdmlkZXI6IkNsb3VkZmxhcmUiLHJlY29yZENvdW50OjJ9LHtpZDoiNCIsbmFtZToibGVnYWN5LmV4YW1wbGUubmV0IixzdGF0dXM6ImFjdGl2ZSIsc3NsOiEwLHNzbEV4cGlyeToiMjAyNC0wMi0xMCIsZG5zUHJvdmlkZXI6Ik1hbnVhbCIscmVjb3JkQ291bnQ6NX1dO2RlbW9Eb21haW5EZXRhaWw9e2lkOiIxIixuYW1lOiJleGFtcGxlLmNvbSIsc3RhdHVzOiJhY3RpdmUiLHZlcmlmaWVkOiEwLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMCIscHJveHlSb3V0ZXM6WyIvYXBpLyoiLCIvYXBwLyoiLCIvYWRtaW4vKiJdfTtkZW1vQ2VydGlmaWNhdGU9e2lkOiIxIixkb21haW46ImV4YW1wbGUuY29tIixpc3N1ZXI6IkxldCdzIEVuY3J5cHQiLHZhbGlkRnJvbToiMjAyNC0wMS0xMCIsdmFsaWRVbnRpbDoiMjAyNC0wNC0xMCIsZGF5c1JlbWFpbmluZzo0NSxzdGF0dXM6InZhbGlkIixhdXRvUmVuZXc6ITAsY2hhaW46WyJSMyIsIklTUkcgUm9vdCBYMSJdfTtkZW1vRG9tYWluRG5zUmVjb3Jkcz1be2lkOiIxIix0eXBlOiJBIixuYW1lOiJAIix2YWx1ZToiMTkyLjE2OC4xLjEwMCIsdHRsOjM2MDB9LHtpZDoiMiIsdHlwZToiQ05BTUUiLG5hbWU6Ind3dyIsdmFsdWU6ImV4YW1wbGUuY29tIix0dGw6MzYwMH0se2lkOiIzIix0eXBlOiJNWCIsbmFtZToiQCIsdmFsdWU6Im1haWwuZXhhbXBsZS5jb20iLHR0bDozNjAwLHByaW9yaXR5OjEwfSx7aWQ6IjQiLHR5cGU6IlRYVCIsbmFtZToiQCIsdmFsdWU6InY9c3BmMSBpbmNsdWRlOl9zcGYuZXhhbXBsZS5jb20gfmFsbCIsdHRsOjM2MDB9XTtzdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC50YWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmUgewogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50YWIuYWN0aXZlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogLTFweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHggMXB4IDAgMDsKICAgICAgfQoKICAgICAgLmJhY2stYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7eC5iZFRoZW1lKCIjZTRlNGU3IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5iYWNrLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRUYWI9PT0iZG9tYWluLWRldGFpbCI/dGhpcy5yZW5kZXJEb21haW5EZXRhaWwoKTp3YAogICAgICAke3RoaXMuY3VycmVudFRhYj09PSJwcm94eSI/dGhpcy5yZW5kZXJQcm94eVZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0iZG5zIj90aGlzLnJlbmRlckRuc1ZpZXcoKToiIn0KICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0iZG9tYWlucyI/dGhpcy5yZW5kZXJEb21haW5zVmlldygpOiIifQogICAgYH1yZW5kZXJQcm94eVZpZXcoKXtyZXR1cm4gd2AKICAgICAgPHN6LW5ldHdvcmstcHJveHktdmlldwogICAgICAgIC5yb3V0ZXM9JHt0aGlzLmRlbW9Qcm94eVJvdXRlc30KICAgICAgICAuYWNjZXNzTG9ncz0ke3RoaXMuZGVtb0FjY2Vzc0xvZ3N9CiAgICAgICAgLnN0YXRzPSR7e2FjdGl2ZUNvbm5lY3Rpb25zOjQyLHJlcXVlc3RzVG9kYXk6MTU0MjAsYnl0ZXNUcmFuc2ZlcnJlZDoiMi40IEdCIn19CiAgICAgICAgQGFkZC1yb3V0ZT0keygpPT5jb25zb2xlLmxvZygiQWRkIHJvdXRlIil9CiAgICAgICAgQGVkaXQtcm91dGU9JHtoPT5jb25zb2xlLmxvZygiRWRpdCByb3V0ZToiLGguZGV0YWlsKX0KICAgICAgICBAZGVsZXRlLXJvdXRlPSR7aD0+Y29uc29sZS5sb2coIkRlbGV0ZSByb3V0ZToiLGguZGV0YWlsKX0KICAgICAgPjwvc3otbmV0d29yay1wcm94eS12aWV3PgogICAgYH1yZW5kZXJEbnNWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxzei1uZXR3b3JrLWRucy12aWV3CiAgICAgICAgLnJlY29yZHM9JHt0aGlzLmRlbW9EbnNSZWNvcmRzfQogICAgICAgIC56b25lcz0ke1siZXhhbXBsZS5jb20iLCJleGFtcGxlLm5ldCIsIm15YXBwLmlvIl19CiAgICAgICAgLnNlbGVjdGVkWm9uZT0keyJleGFtcGxlLmNvbSJ9CiAgICAgICAgQGFkZC1yZWNvcmQ9JHsoKT0+Y29uc29sZS5sb2coIkFkZCByZWNvcmQiKX0KICAgICAgICBAZWRpdC1yZWNvcmQ9JHtoPT5jb25zb2xlLmxvZygiRWRpdCByZWNvcmQ6IixoLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1yZWNvcmQ9JHtoPT5jb25zb2xlLmxvZygiRGVsZXRlIHJlY29yZDoiLGguZGV0YWlsKX0KICAgICAgICBAY2hhbmdlLXpvbmU9JHtoPT5jb25zb2xlLmxvZygiQ2hhbmdlIHpvbmU6IixoLmRldGFpbCl9CiAgICAgID48L3N6LW5ldHdvcmstZG5zLXZpZXc+CiAgICBgfXJlbmRlckRvbWFpbnNWaWV3KCl7cmV0dXJuIHdgCiAgICAgIDxzei1uZXR3b3JrLWRvbWFpbnMtdmlldwogICAgICAgIC5kb21haW5zPSR7dGhpcy5kZW1vRG9tYWluc30KICAgICAgICBAYWRkLWRvbWFpbj0keygpPT5jb25zb2xlLmxvZygiQWRkIGRvbWFpbiIpfQogICAgICAgIEB2aWV3LWRvbWFpbj0ke2g9Pnt0aGlzLnNlbGVjdGVkRG9tYWluPWguZGV0YWlsLHRoaXMuY3VycmVudFRhYj0iZG9tYWluLWRldGFpbCJ9fQogICAgICAgIEByZW5ldy1zc2w9JHtoPT5jb25zb2xlLmxvZygiUmVuZXcgU1NMOiIsaC5kZXRhaWwpfQogICAgICAgIEBkZWxldGUtZG9tYWluPSR7aD0+Y29uc29sZS5sb2coIkRlbGV0ZSBkb21haW46IixoLmRldGFpbCl9CiAgICAgID48L3N6LW5ldHdvcmstZG9tYWlucy12aWV3PgogICAgYH1yZW5kZXJEb21haW5EZXRhaWwoKXtyZXR1cm4gd2AKICAgICAgPGJ1dHRvbiBjbGFzcz0iYmFjay1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmN1cnJlbnRUYWI9ImRvbWFpbnMifT4KICAgICAgICA8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPgogICAgICAgIDwvc3ZnPgogICAgICAgIEJhY2sgdG8gRG9tYWlucwogICAgICA8L2J1dHRvbj4KCiAgICAgIDxzei1kb21haW4tZGV0YWlsLXZpZXcKICAgICAgICAuZG9tYWluPSR7dGhpcy5kZW1vRG9tYWluRGV0YWlsfQogICAgICAgIC5jZXJ0aWZpY2F0ZT0ke3RoaXMuZGVtb0NlcnRpZmljYXRlfQogICAgICAgIC5kbnNSZWNvcmRzPSR7dGhpcy5kZW1vRG9tYWluRG5zUmVjb3Jkc30KICAgICAgICBAdmVyaWZ5LWRvbWFpbj0keygpPT5jb25zb2xlLmxvZygiVmVyaWZ5IGRvbWFpbiIpfQogICAgICAgIEBkZWxldGUtZG9tYWluPSR7KCk9Pntjb25zb2xlLmxvZygiRGVsZXRlIGRvbWFpbiIpLHRoaXMuY3VycmVudFRhYj0iZG9tYWlucyJ9fQogICAgICAgIEByZW5ldy1jZXJ0aWZpY2F0ZT0keygpPT5jb25zb2xlLmxvZygiUmVuZXcgY2VydGlmaWNhdGUiKX0KICAgICAgICBAYWRkLWRucy1yZWNvcmQ9JHsoKT0+Y29uc29sZS5sb2coIkFkZCBETlMgcmVjb3JkIil9CiAgICAgICAgQGVkaXQtZG5zLXJlY29yZD0ke2g9PmNvbnNvbGUubG9nKCJFZGl0IEROUyByZWNvcmQ6IixoLmRldGFpbCl9CiAgICAgICAgQGRlbGV0ZS1kbnMtcmVjb3JkPSR7aD0+Y29uc29sZS5sb2coIkRlbGV0ZSBETlMgcmVjb3JkOiIsaC5kZXRhaWwpfQogICAgICA+PC9zei1kb21haW4tZGV0YWlsLXZpZXc+CiAgICBgfXN0YXRpY3tmYWUoYSxyKX19O3JldHVybiBwPWF9KSgpfSk7dmFyIHZpYSxuZ3QsSUJhLHlpYT11KCgpPT57dmUoKTtibCgpO3ZpYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sbmd0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxJQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1kZW1vLXZpZXctcmVnaXN0cmllcyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3UmVnaXN0cmllcyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBkPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2llKCldLHZpYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZj0+ImN1cnJlbnRUYWIiaW4gZiwiaGFzIiksZ2V0OmkoZj0+Zi5jdXJyZW50VGFiLCJnZXQiKSxzZXQ6aSgoZixwKT0+e2YuY3VycmVudFRhYj1wfSwic2V0Iil9LG1ldGFkYXRhOmR9LG8sbCksdmlhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOmR9LG51bGwsciksYz1hPWUudmFsdWUsZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpkfSl9YXBwdWk9bnVsbDsjZT1uZ3QodGhpcyxvLCJvbmVib3giKTtnZXQgY3VycmVudFRhYigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50VGFiKGQpe3RoaXMuI2U9ZH1hc3luYyBvbkFjdGl2YXRlKGQpe3RoaXMuYXBwdWk9ZC5hcHB1aSx0aGlzLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJSZWdpc3RyeSBBZHZlcnRpc2VtZW50IixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0ib25lYm94Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJFeHRlcm5hbCBSZWdpc3RyaWVzIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0iZXh0ZXJuYWwiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9XSksdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9dXBkYXRlU2Vjb25kYXJ5TWVudSgpe3RoaXMuYXBwdWkmJih0aGlzLmN1cnJlbnRUYWI9PT0ib25lYm94Ij90aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlJlZ2lzdHJ5IEFkdmVydGlzZW1lbnQiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IlB1c2ggSW1hZ2UiLGljb25OYW1lOiJsdWNpZGU6VXBsb2FkIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJQdXNoIGltYWdlIil9LCJhY3Rpb24iKX0se3R5cGU6ImFjdGlvbiIsdmFyaWFudDoiZGFuZ2VyIixrZXk6IkdhcmJhZ2UgQ29sbGVjdCIsaWNvbk5hbWU6Imx1Y2lkZTpUcmFzaDIiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkdDIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiU3RhdGlzdGljcyIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiI0IEltYWdlcyJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiI2NDAgTUIgVG90YWwifV19XX0pOnRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiRXh0ZXJuYWwgUmVnaXN0cmllcyIsZ3JvdXBzOlt7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFJlZ2lzdHJ5IixpY29uTmFtZToibHVjaWRlOlBsdXMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkFkZCByZWdpc3RyeSIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiVGVzdCBBbGwiLGljb25OYW1lOiJsdWNpZGU6Q2hlY2tDaXJjbGUiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIlRlc3QgYWxsIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiQ29ubmVjdGVkIixpdGVtczpbe2tleToiRG9ja2VyIEh1YiIsaWNvbk5hbWU6Imx1Y2lkZTpCb3giLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkRvY2tlciBIdWIiKX0sImFjdGlvbiIpfSx7a2V5OiJHSENSIixpY29uTmFtZToibHVjaWRlOkdpdGh1YiIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiR0hDUiIpfSwiYWN0aW9uIil9XX1dfSkpfW9uRGVhY3RpdmF0ZSgpe31kZW1vT25lYm94SW1hZ2VzPShuZ3QodGhpcyxsKSxbe2lkOiIxIixuYW1lOiJhcGktZ2F0ZXdheSIsdGFnczpbImxhdGVzdCIsInYyLjEuMCIsInYyLjAuMCJdLHNpemU6IjI1NiBNQiIsdXBkYXRlZDoiMjAyNC0wMS0yMCIscHVsbHM6MTQyfSx7aWQ6IjIiLG5hbWU6ImZyb250ZW5kIix0YWdzOlsibGF0ZXN0IiwidjEuNS4wIl0sc2l6ZToiMTI4IE1CIix1cGRhdGVkOiIyMDI0LTAxLTE5IixwdWxsczo4OX0se2lkOiIzIixuYW1lOiJ3b3JrZXItc2VydmljZSIsdGFnczpbImxhdGVzdCJdLHNpemU6IjY0IE1CIix1cGRhdGVkOiIyMDI0LTAxLTE4IixwdWxsczo1Nn0se2lkOiI0IixuYW1lOiJhZG1pbi1wYW5lbCIsdGFnczpbImxhdGVzdCIsInYzLjAuMCIsInYyLjkuMCJdLHNpemU6IjE5MiBNQiIsdXBkYXRlZDoiMjAyNC0wMS0xNyIscHVsbHM6MzR9XSk7ZGVtb0V4dGVybmFsUmVnaXN0cmllcz1be2lkOiIxIixuYW1lOiJEb2NrZXIgSHViIix1cmw6ImRvY2tlci5pbyIsc3RhdHVzOiJjb25uZWN0ZWQiLGltYWdlczoxMn0se2lkOiIyIixuYW1lOiJHaXRIdWIgQ29udGFpbmVyIFJlZ2lzdHJ5Iix1cmw6ImdoY3IuaW8iLHN0YXR1czoiY29ubmVjdGVkIixpbWFnZXM6OH0se2lkOiIzIixuYW1lOiJBV1MgRUNSIix1cmw6IjEyMzQ1Njc4OS5ka3IuZWNyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tIixzdGF0dXM6ImVycm9yIixpbWFnZXM6MH1dO3N0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnBhZ2UtaGVhZGVyIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDAgMCA4cHggMDsKICAgICAgfQoKICAgICAgLnBhZ2Utc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLnRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHt4LmJkVGhlbWUoIiNlNGU0ZTciLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAudGFiIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAyMDBtcyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMXB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweCAxcHggMCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmN1cnJlbnRUYWI9PT0ib25lYm94Ij93YAogICAgICAgIDxzei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50CiAgICAgICAgICAuaW1hZ2VzPSR7dGhpcy5kZW1vT25lYm94SW1hZ2VzfQogICAgICAgICAgLnN0YXRzPSR7e3RvdGFsSW1hZ2VzOjQsdG90YWxTaXplOiI2NDAgTUIiLHRvdGFsUHVsbHM6MzIxfX0KICAgICAgICAgIEB2aWV3LWltYWdlPSR7ZD0+Y29uc29sZS5sb2coIlZpZXcgaW1hZ2U6IixkLmRldGFpbCl9CiAgICAgICAgICBAZGVsZXRlLWltYWdlPSR7ZD0+Y29uc29sZS5sb2coIkRlbGV0ZSBpbWFnZToiLGQuZGV0YWlsKX0KICAgICAgICAgIEBkZWxldGUtdGFnPSR7ZD0+Y29uc29sZS5sb2coIkRlbGV0ZSB0YWc6IixkLmRldGFpbCl9CiAgICAgICAgPjwvc3otcmVnaXN0cnktYWR2ZXJ0aXNlbWVudD4KICAgICAgYDp3YAogICAgICAgIDxzei1yZWdpc3RyeS1leHRlcm5hbC12aWV3CiAgICAgICAgICAucmVnaXN0cmllcz0ke3RoaXMuZGVtb0V4dGVybmFsUmVnaXN0cmllc30KICAgICAgICAgIEBhZGQtcmVnaXN0cnk9JHsoKT0+Y29uc29sZS5sb2coIkFkZCByZWdpc3RyeSIpfQogICAgICAgICAgQGVkaXQtcmVnaXN0cnk9JHtkPT5jb25zb2xlLmxvZygiRWRpdCByZWdpc3RyeToiLGQuZGV0YWlsKX0KICAgICAgICAgIEBkZWxldGUtcmVnaXN0cnk9JHtkPT5jb25zb2xlLmxvZygiRGVsZXRlIHJlZ2lzdHJ5OiIsZC5kZXRhaWwpfQogICAgICAgICAgQHRlc3QtY29ubmVjdGlvbj0ke2Q9PmNvbnNvbGUubG9nKCJUZXN0IGNvbm5lY3Rpb246IixkLmRldGFpbCl9CiAgICAgICAgPjwvc3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldz4KICAgICAgYH0KICAgIGB9c3RhdGlje25ndChhLHIpfX07cmV0dXJuIGM9YX0pKCl9KTt2YXIgUEJhLE5CYSxPQmEsd2lhPXUoKCk9Pnt2ZSgpO2JsKCk7UEJhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxOQmE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LE9CYT0oKCk9PntsZXQgdD1bdWUoInN6LWRlbW8tdmlldy10b2tlbnMiKV0sZSxyPVtdLGEscz15ZTt2YXIgbj1jbGFzcyBleHRlbmRzIHN7c3RhdGlje2kodGhpcywiU3pEZW1vVmlld1Rva2VucyIpfXN0YXRpY3thPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHNbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO1BCYShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpvfSxudWxsLHIpLG49YT1lLnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfWFwcHVpPW51bGw7YXN5bmMgb25BY3RpdmF0ZShvKXt0aGlzLmFwcHVpPW8uYXBwdWksdGhpcy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJUb2tlbnMiLGdyb3Vwczpbe25hbWU6IkFjdGlvbnMiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkNyZWF0ZSBHbG9iYWwgVG9rZW4iLGljb25OYW1lOiJsdWNpZGU6UGx1cyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ3JlYXRlIGdsb2JhbCB0b2tlbiIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIENJIFRva2VuIixpY29uTmFtZToibHVjaWRlOkdpdEJyYW5jaCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiQ3JlYXRlIENJIHRva2VuIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiVG9rZW4gVHlwZXMiLGl0ZW1zOlt7a2V5OiJHbG9iYWwgVG9rZW5zIixpY29uTmFtZToibHVjaWRlOktleSIsYmFkZ2U6IjMiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkZpbHRlciBnbG9iYWwiKX0sImFjdGlvbiIpfSx7a2V5OiJDSSBUb2tlbnMiLGljb25OYW1lOiJsdWNpZGU6Q3B1IixiYWRnZToiMyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIENJIil9LCJhY3Rpb24iKX1dfV19KX1vbkRlYWN0aXZhdGUoKXt9ZGVtb0dsb2JhbFRva2Vucz1be2lkOiIxIixuYW1lOiJDSS9DRCBQaXBlbGluZSIsdHlwZToiZ2xvYmFsIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTUiLGxhc3RVc2VkOiIyMDI0LTAxLTIwIn0se2lkOiIyIixuYW1lOiJEZXZlbG9wbWVudCIsdHlwZToiZ2xvYmFsIixjcmVhdGVkQXQ6IjIwMjQtMDEtMTAifSx7aWQ6IjMiLG5hbWU6IlByb2R1Y3Rpb24gRGVwbG95Iix0eXBlOiJnbG9iYWwiLGNyZWF0ZWRBdDoiMjAyNC0wMS0wNSIsbGFzdFVzZWQ6IjIwMjQtMDEtMTkifV07ZGVtb0NpVG9rZW5zPVt7aWQ6IjQiLG5hbWU6ImFwaS1nYXRld2F5LWNpIix0eXBlOiJjaSIsc2VydmljZToiYXBpLWdhdGV3YXkiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xOCIsbGFzdFVzZWQ6IjIwMjQtMDEtMjAifSx7aWQ6IjUiLG5hbWU6ImZyb250ZW5kLWNpIix0eXBlOiJjaSIsc2VydmljZToiZnJvbnRlbmQiLGNyZWF0ZWRBdDoiMjAyNC0wMS0xMiIsbGFzdFVzZWQ6IjIwMjQtMDEtMTkifSx7aWQ6IjYiLG5hbWU6Indvcmtlci1zZXJ2aWNlLWNpIix0eXBlOiJjaSIsc2VydmljZToid29ya2VyLXNlcnZpY2UiLGNyZWF0ZWRBdDoiMjAyNC0wMS0wOCJ9XTtzdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnBhZ2UtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC5wYWdlLXN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7eC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+CiAgICAgICAgPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5Ub2tlbnM8L2gxPgogICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5NYW5hZ2UgcmVnaXN0cnkgYWNjZXNzIHRva2VucyBmb3IgQ0kvQ0QgcGlwZWxpbmVzPC9wPgogICAgICA8L2Rpdj4KCiAgICAgIDxzei10b2tlbnMtdmlldwogICAgICAgIC5nbG9iYWxUb2tlbnM9JHt0aGlzLmRlbW9HbG9iYWxUb2tlbnN9CiAgICAgICAgLmNpVG9rZW5zPSR7dGhpcy5kZW1vQ2lUb2tlbnN9CiAgICAgICAgQGNyZWF0ZT0ke289PmNvbnNvbGUubG9nKCJDcmVhdGUgdG9rZW46IixvLmRldGFpbCl9CiAgICAgICAgQGNvcHk9JHtvPT5jb25zb2xlLmxvZygiQ29weSB0b2tlbjoiLG8uZGV0YWlsKX0KICAgICAgICBAcmVnZW5lcmF0ZT0ke289PmNvbnNvbGUubG9nKCJSZWdlbmVyYXRlIHRva2VuOiIsby5kZXRhaWwpfQogICAgICAgIEBkZWxldGU9JHtvPT5jb25zb2xlLmxvZygiRGVsZXRlIHRva2VuOiIsby5kZXRhaWwpfQogICAgICA+PC9zei10b2tlbnMtdmlldz4KICAgIGB9c3RhdGlje05CYShhLHIpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgUkJhLEZCYSxCQmEsa2lhPXUoKCk9Pnt2ZSgpO2JsKCk7UkJhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxGQmE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LEJCYT0oKCk9PntsZXQgdD1bdWUoInN6LWRlbW8tdmlldy1zZXR0aW5ncyIpXSxlLHI9W10sYSxzPXllO3ZhciBuPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3U2V0dGluZ3MiKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtSQmEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1hcHB1aT1udWxsO2FzeW5jIG9uQWN0aXZhdGUobyl7dGhpcy5hcHB1aT1vLmFwcHVpLHRoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiU2V0dGluZ3MiLGdyb3Vwczpbe25hbWU6IkNhdGVnb3JpZXMiLGl0ZW1zOlt7a2V5OiJHZW5lcmFsIixpY29uTmFtZToibHVjaWRlOlNldHRpbmdzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJHZW5lcmFsIHNldHRpbmdzIil9LCJhY3Rpb24iKX0se2tleToiTmV0d29yayIsaWNvbk5hbWU6Imx1Y2lkZTpOZXR3b3JrIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJOZXR3b3JrIHNldHRpbmdzIil9LCJhY3Rpb24iKX0se2tleToiU2VjdXJpdHkiLGljb25OYW1lOiJsdWNpZGU6U2hpZWxkIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJTZWN1cml0eSBzZXR0aW5ncyIpfSwiYWN0aW9uIil9LHtrZXk6IkNlcnRpZmljYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpGaWxlQmFkZ2UiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkNlcnRpZmljYXRlIHNldHRpbmdzIil9LCJhY3Rpb24iKX1dfSx7bmFtZToiQWN0aW9ucyIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiRXhwb3J0IENvbmZpZyIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRXhwb3J0IGNvbmZpZyIpfSwiYWN0aW9uIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IENvbmZpZyIsaWNvbk5hbWU6Imx1Y2lkZTpVcGxvYWQiLGFjdGlvbjppKCgpPT57Y29uc29sZS5sb2coIkltcG9ydCBjb25maWciKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIix2YXJpYW50OiJkYW5nZXIiLGtleToiUmVzZXQgdG8gRGVmYXVsdCIsaWNvbk5hbWU6Imx1Y2lkZTpSb3RhdGVDY3ciLGNvbmZpcm1NZXNzYWdlOiJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVzZXQgYWxsIHNldHRpbmdzIHRvIGRlZmF1bHQ/IixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJSZXNldCBzZXR0aW5ncyIpfSwiYWN0aW9uIil9XX1dfSl9b25EZWFjdGl2YXRlKCl7fWRlbW9TZXR0aW5ncz17ZGFya01vZGU6ITAsY2xvdWRmbGFyZVRva2VuOiIiLGNsb3VkZmxhcmVab25lSWQ6IiIsYXV0b1JlbmV3Q2VydHM6ITAscmVuZXdhbFRocmVzaG9sZDozMCxhY21lRW1haWw6ImFkbWluQHNlcnZlLnpvbmUiLGh0dHBQb3J0OjgwLGh0dHBzUG9ydDo0NDMsZm9yY2VIdHRwczohMH07c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAucGFnZS1oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5wYWdlLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHt4LmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgICB9CgogICAgICAucGFnZS1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuc2V0dGluZ3MtY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPgogICAgICAgIDxoMSBjbGFzcz0icGFnZS10aXRsZSI+U2V0dGluZ3M8L2gxPgogICAgICAgIDxwIGNsYXNzPSJwYWdlLXN1YnRpdGxlIj5Db25maWd1cmUgeW91ciBvbmVib3ggaW5zdGFuY2U8L3A+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtY29udGFpbmVyIj4KICAgICAgICA8c3otc2V0dGluZ3MtdmlldwogICAgICAgICAgLnNldHRpbmdzPSR7dGhpcy5kZW1vU2V0dGluZ3N9CiAgICAgICAgICBjdXJyZW50VXNlcj0iYWRtaW4iCiAgICAgICAgICBAc2V0dGluZy1jaGFuZ2U9JHtvPT5jb25zb2xlLmxvZygiU2V0dGluZyBjaGFuZ2U6IixvLmRldGFpbCl9CiAgICAgICAgICBAY2hhbmdlLXBhc3N3b3JkPSR7bz0+Y29uc29sZS5sb2coIkNoYW5nZSBwYXNzd29yZDoiLG8uZGV0YWlsKX0KICAgICAgICAgIEByZXNldD0keygpPT5jb25zb2xlLmxvZygiUmVzZXQgc2V0dGluZ3MiKX0KICAgICAgICAgIEBzYXZlPSR7bz0+Y29uc29sZS5sb2coIlNhdmUgc2V0dGluZ3M6IixvLmRldGFpbCl9CiAgICAgICAgPjwvc3otc2V0dGluZ3Mtdmlldz4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tGQmEoYSxyKX19O3JldHVybiBuPWF9KSgpfSk7dmFyIHNtZSxrZyxIQmEsU2lhPXUoKCk9Pnt2ZSgpO2JsKCk7c21lPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxrZz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0sSEJhPSgoKT0+e2xldCB0PVt1ZSgic3otZGVtby12aWV3LW10YSIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdLGMsZD1bXSxmPVtdLHAsaD1bXSxtPVtdO3ZhciB2PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3TXRhIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baWUoKV0sYz1baWUoKV0scD1baWUoKV0sc21lKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmkoZz0+ImN1cnJlbnRWaWV3ImluIGcsImhhcyIpLGdldDppKGc9PmcuY3VycmVudFZpZXcsImdldCIpLHNldDppKChnLHkpPT57Zy5jdXJyZW50Vmlldz15fSwic2V0Iil9LG1ldGFkYXRhOmJ9LG8sbCksc21lKHRoaXMsbnVsbCxjLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRFbWFpbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShnPT4ic2VsZWN0ZWRFbWFpbCJpbiBnLCJoYXMiKSxnZXQ6aShnPT5nLnNlbGVjdGVkRW1haWwsImdldCIpLHNldDppKChnLHkpPT57Zy5zZWxlY3RlZEVtYWlsPXl9LCJzZXQiKX0sbWV0YWRhdGE6Yn0sZCxmKSxzbWUodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50RGlyZWN0aW9uRmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppKGc9PiJjdXJyZW50RGlyZWN0aW9uRmlsdGVyImluIGcsImhhcyIpLGdldDppKGc9PmcuY3VycmVudERpcmVjdGlvbkZpbHRlciwiZ2V0Iiksc2V0OmkoKGcseSk9PntnLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXI9eX0sInNldCIpfSxtZXRhZGF0YTpifSxoLG0pLHNtZShudWxsLGU9e3ZhbHVlOmF9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmEubmFtZSxtZXRhZGF0YTpifSxudWxsLHIpLHY9YT1lLnZhbHVlLGImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfWFwcHVpPW51bGw7I2U9a2codGhpcyxvLCJsaXN0Iik7Z2V0IGN1cnJlbnRWaWV3KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRWaWV3KGIpe3RoaXMuI2U9Yn0jdD0oa2codGhpcyxsKSxrZyh0aGlzLGQsbnVsbCkpO2dldCBzZWxlY3RlZEVtYWlsKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkRW1haWwoYil7dGhpcy4jdD1ifSNyPShrZyh0aGlzLGYpLGtnKHRoaXMsaCwiYWxsIikpO2dldCBjdXJyZW50RGlyZWN0aW9uRmlsdGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGN1cnJlbnREaXJlY3Rpb25GaWx0ZXIoYil7dGhpcy4jcj1ifWRlbW9FbWFpbHM9KGtnKHRoaXMsbSksW3tpZDoiMSIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206Im5vcmVwbHlAc2VydmUuem9uZSIsdG86InVzZXJAZXhhbXBsZS5jb20iLHN1YmplY3Q6IldlbGNvbWUgdG8gc2VydmUuem9uZSIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjMwOjIyIixtZXNzYWdlSWQ6IjxhYmMxMjNAc2VydmUuem9uZT4iLHNpemU6IjEyLjQgS0IifSx7aWQ6IjIiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiYm91bmNlZCIsZnJvbToiYWxlcnRzQHNlcnZlLnpvbmUiLHRvOiJpbnZhbGlkQG5vd2hlcmUudGVzdCIsc3ViamVjdDoiU2VydmljZSBBbGVydDogQ1BVIFVzYWdlIEhpZ2giLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyODoxMCIsbWVzc2FnZUlkOiI8ZGVmNDU2QHNlcnZlLnpvbmU+IixzaXplOiI4LjIgS0IifSx7aWQ6IjMiLGRpcmVjdGlvbjoiaW5ib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206InN1cHBvcnRAY3VzdG9tZXIuY29tIix0bzoiYWRtaW5Ac2VydmUuem9uZSIsc3ViamVjdDoiUmU6IEluZnJhc3RydWN0dXJlIFJldmlldyIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjI1OjAwIixtZXNzYWdlSWQ6IjxnaGk3ODlAY3VzdG9tZXIuY29tPiIsc2l6ZToiMjQuMSBLQiJ9LHtpZDoiNCIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJyZWplY3RlZCIsZnJvbToiYmlsbGluZ0BzZXJ2ZS56b25lIix0bzoiYmxvY2tlZEBzcGFtLWRvbWFpbi50ZXN0IixzdWJqZWN0OiJJbnZvaWNlICMyMDI0LTAwMSIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjIwOjQ1IixtZXNzYWdlSWQ6Ijxqa2wwMTJAc2VydmUuem9uZT4iLHNpemU6IjQ1LjYgS0IifSx7aWQ6IjUiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiZGVmZXJyZWQiLGZyb206Im5vcmVwbHlAc2VydmUuem9uZSIsdG86InNsb3dAcmVtb3RlLXNlcnZlci50ZXN0IixzdWJqZWN0OiJQYXNzd29yZCBSZXNldCBSZXF1ZXN0Iix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MTU6MzAiLG1lc3NhZ2VJZDoiPG1ubzM0NUBzZXJ2ZS56b25lPiIsc2l6ZToiNi44IEtCIn0se2lkOiI2IixkaXJlY3Rpb246ImluYm91bmQiLHN0YXR1czoiZGVsaXZlcmVkIixmcm9tOiJjaUBnaXRodWIuY29tIix0bzoiZGV2b3BzQHNlcnZlLnpvbmUiLHN1YmplY3Q6IkJ1aWxkICM0NTIxIHBhc3NlZCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjEwOjAwIixtZXNzYWdlSWQ6IjxwcXI2NzhAZ2l0aHViLmNvbT4iLHNpemU6IjE1LjMgS0IifSx7aWQ6IjciLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoicGVuZGluZyIsZnJvbToicmVwb3J0c0BzZXJ2ZS56b25lIix0bzoidGVhbUBzZXJ2ZS56b25lIixzdWJqZWN0OiJXZWVrbHkgSW5mcmFzdHJ1Y3R1cmUgUmVwb3J0Iix0aW1lc3RhbXA6IjIwMjQtMDEtMTUgMTQ6MDU6MDAiLG1lc3NhZ2VJZDoiPHN0dTkwMUBzZXJ2ZS56b25lPiIsc2l6ZToiMTAyLjcgS0IifSx7aWQ6IjgiLGRpcmVjdGlvbjoiaW5ib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206Im1vbml0b3JpbmdAdXB0aW1lLmlvIix0bzoib3BzQHNlcnZlLnpvbmUiLHN1YmplY3Q6IlVwdGltZSBSZXBvcnQ6IDk5Ljk4JSIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDEzOjU1OjAwIixtZXNzYWdlSWQ6Ijx2d3gyMzRAdXB0aW1lLmlvPiIsc2l6ZToiOS4xIEtCIn1dKTtkZW1vRW1haWxEZXRhaWxzPXsxOntpZDoiMSIsZGlyZWN0aW9uOiJvdXRib3VuZCIsc3RhdHVzOiJkZWxpdmVyZWQiLGZyb206Im5vcmVwbHlAc2VydmUuem9uZSIsdG86InVzZXJAZXhhbXBsZS5jb20iLHRvTGlzdDpbInVzZXJAZXhhbXBsZS5jb20iXSxzdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDozMDoyMiIsbWVzc2FnZUlkOiI8YWJjMTIzQHNlcnZlLnpvbmU+IixzaXplOiIxMi40IEtCIixzbXRwTG9nOlt7dGltZXN0YW1wOiIxNDozMDoyMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkVITE8gbWFpbC5zZXJ2ZS56b25lIn0se3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtbWFpbC5leGFtcGxlLmNvbSBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MzA6MjAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtU1RBUlRUTFMiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIFNJWkUgNTI0Mjg4MDAiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIwIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiU1RBUlRUTFMifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMCBSZWFkeSB0byBzdGFydCBUTFMiLHJlc3BvbnNlQ29kZToyMjB9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiRUhMTyBtYWlsLnNlcnZlLnpvbmUifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1tYWlsLmV4YW1wbGUuY29tIEhlbGxvIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MC1BVVRIIFBMQUlOIExPR0lOIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBTSVpFIDUyNDI4ODAwIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkFVVEggUExBSU4gQUhWelpYSUFjR0Z6YzNkdmNtUT0ifSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIzNSAyLjcuMCBBdXRoZW50aWNhdGlvbiBzdWNjZXNzZnVsIixyZXNwb25zZUNvZGU6MjM1fSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ik1BSUwgRlJPTTo8bm9yZXBseUBzZXJ2ZS56b25lPiJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIxIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIE9LIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMSIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlJDUFQgVE86PHVzZXJAZXhhbXBsZS5jb20+In0se3RpbWVzdGFtcDoiMTQ6MzA6MjEiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgQWNjZXB0ZWQiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiREFUQSJ9LHt0aW1lc3RhbXA6IjE0OjMwOjIyIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDonMzU0IEVudGVyIG1lc3NhZ2UsIGVuZGluZyB3aXRoICIuIiBvbiBhIGxpbmUgYnkgaXRzZWxmJyxyZXNwb25zZUNvZGU6MzU0fSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ii4ifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyBpZD0xcFEyclMtMDAwM0FiLUM0IixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlFVSVQifSx7dGltZXN0YW1wOiIxNDozMDoyMiIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMSBtYWlsLmV4YW1wbGUuY29tIGNsb3NpbmcgY29ubmVjdGlvbiIscmVzcG9uc2VDb2RlOjIyMX1dLGNvbm5lY3Rpb25JbmZvOntzb3VyY2VJcDoiMTAuMC4xLjUwIixzb3VyY2VIb3N0bmFtZToibWFpbC5zZXJ2ZS56b25lIixkZXN0aW5hdGlvbklwOiI5My4xODQuMjE2LjM0IixkZXN0aW5hdGlvblBvcnQ6MjUsdGxzVmVyc2lvbjoiVExTdjEuMyIsdGxzQ2lwaGVyOiJUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IixhdXRoZW50aWNhdGVkOiEwLGF1dGhNZXRob2Q6IlBMQUlOIixhdXRoVXNlcjoibm9yZXBseUBzZXJ2ZS56b25lIn0sYXV0aGVudGljYXRpb25SZXN1bHRzOntzcGY6InBhc3MiLHNwZkRvbWFpbjoic2VydmUuem9uZSIsZGtpbToicGFzcyIsZGtpbURvbWFpbjoic2VydmUuem9uZSIsZG1hcmM6InBhc3MiLGRtYXJjUG9saWN5OiJyZWplY3QifSxoZWFkZXJzOntGcm9tOiJub3JlcGx5QHNlcnZlLnpvbmUiLFRvOiJ1c2VyQGV4YW1wbGUuY29tIixTdWJqZWN0OiJXZWxjb21lIHRvIHNlcnZlLnpvbmUiLERhdGU6Ik1vbiwgMTUgSmFuIDIwMjQgMTQ6MzA6MjIgKzAwMDAiLCJNSU1FLVZlcnNpb24iOiIxLjAiLCJDb250ZW50LVR5cGUiOiJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgifSxib2R5OmA8aHRtbD4KPGhlYWQ+PHRpdGxlPldlbGNvbWU8L3RpdGxlPjwvaGVhZD4KPGJvZHk+CiAgPGgxPldlbGNvbWUgdG8gc2VydmUuem9uZSE8L2gxPgogIDxwPllvdXIgYWNjb3VudCBoYXMgYmVlbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseS48L3A+CiAgPHA+R2V0IHN0YXJ0ZWQgYnkgdmlzaXRpbmcgeW91ciA8YSBocmVmPSJodHRwczovL3NlcnZlLnpvbmUvZGFzaGJvYXJkIj5kYXNoYm9hcmQ8L2E+LjwvcD4KPC9ib2R5Pgo8L2h0bWw+YH0sMjp7aWQ6IjIiLGRpcmVjdGlvbjoib3V0Ym91bmQiLHN0YXR1czoiYm91bmNlZCIsZnJvbToiYWxlcnRzQHNlcnZlLnpvbmUiLHRvOiJpbnZhbGlkQG5vd2hlcmUudGVzdCIsdG9MaXN0OlsiaW52YWxpZEBub3doZXJlLnRlc3QiXSxzdWJqZWN0OiJTZXJ2aWNlIEFsZXJ0OiBDUFUgVXNhZ2UgSGlnaCIsdGltZXN0YW1wOiIyMDI0LTAxLTE1IDE0OjI4OjEwIixtZXNzYWdlSWQ6IjxkZWY0NTZAc2VydmUuem9uZT4iLHNpemU6IjguMiBLQiIscmVqZWN0aW9uUmVhc29uOiI1NTAgNS4xLjEgVGhlIGVtYWlsIGFjY291bnQgdGhhdCB5b3UgdHJpZWQgdG8gcmVhY2ggZG9lcyBub3QgZXhpc3QuIixib3VuY2VNZXNzYWdlOmBEZWxpdmVyeSB0byB0aGUgZm9sbG93aW5nIHJlY2lwaWVudCBmYWlsZWQgcGVybWFuZW50bHk6CgogICAgaW52YWxpZEBub3doZXJlLnRlc3QKClRlY2huaWNhbCBkZXRhaWxzIG9mIHBlcm1hbmVudCBmYWlsdXJlOgpHb29nbGUgdHJpZWQgdG8gZGVsaXZlciB5b3VyIG1lc3NhZ2UsIGJ1dCBpdCB3YXMgcmVqZWN0ZWQgYnkgdGhlIHNlcnZlciBmb3IgdGhlIHJlY2lwaWVudCBkb21haW4gbm93aGVyZS50ZXN0LmAsc210cExvZzpbe3RpbWVzdGFtcDoiMTQ6Mjg6MDgiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJFSExPIG1haWwuc2VydmUuem9uZSJ9LHt0aW1lc3RhbXA6IjE0OjI4OjA4IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLW1haWwubm93aGVyZS50ZXN0IEhlbGxvIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyODowOCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ik1BSUwgRlJPTTo8YWxlcnRzQHNlcnZlLnpvbmU+In0se3RpbWVzdGFtcDoiMTQ6Mjg6MDkiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAgT0siLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI4OjA5IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiUkNQVCBUTzo8aW52YWxpZEBub3doZXJlLnRlc3Q+In0se3RpbWVzdGFtcDoiMTQ6Mjg6MTAiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiI1NTAgNS4xLjEgVGhlIGVtYWlsIGFjY291bnQgdGhhdCB5b3UgdHJpZWQgdG8gcmVhY2ggZG9lcyBub3QgZXhpc3QuIixyZXNwb25zZUNvZGU6NTUwfSx7dGltZXN0YW1wOiIxNDoyODoxMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IlFVSVQifSx7dGltZXN0YW1wOiIxNDoyODoxMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMSBCeWUiLHJlc3BvbnNlQ29kZToyMjF9XSxjb25uZWN0aW9uSW5mbzp7c291cmNlSXA6IjEwLjAuMS41MCIsc291cmNlSG9zdG5hbWU6Im1haWwuc2VydmUuem9uZSIsZGVzdGluYXRpb25JcDoiMTk4LjUxLjEwMC4yNSIsZGVzdGluYXRpb25Qb3J0OjI1LHRsc1ZlcnNpb246IlRMU3YxLjIiLHRsc0NpcGhlcjoiRUNESEUtUlNBLUFFUzEyOC1HQ00tU0hBMjU2IixhdXRoZW50aWNhdGVkOiEwLGF1dGhNZXRob2Q6IlBMQUlOIixhdXRoVXNlcjoiYWxlcnRzQHNlcnZlLnpvbmUifSxhdXRoZW50aWNhdGlvblJlc3VsdHM6e3NwZjoicGFzcyIsc3BmRG9tYWluOiJzZXJ2ZS56b25lIixka2ltOiJwYXNzIixka2ltRG9tYWluOiJzZXJ2ZS56b25lIixkbWFyYzoicGFzcyIsZG1hcmNQb2xpY3k6InF1YXJhbnRpbmUifSxoZWFkZXJzOntGcm9tOiJhbGVydHNAc2VydmUuem9uZSIsVG86ImludmFsaWRAbm93aGVyZS50ZXN0IixTdWJqZWN0OiJTZXJ2aWNlIEFsZXJ0OiBDUFUgVXNhZ2UgSGlnaCIsRGF0ZToiTW9uLCAxNSBKYW4gMjAyNCAxNDoyODoxMCArMDAwMCIsIk1JTUUtVmVyc2lvbiI6IjEuMCIsIkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgifSxib2R5OmBBTEVSVDogQ1BVIFVzYWdlIEhpZ2gKClNlcnZpY2U6IGFwaS1nYXRld2F5CkN1cnJlbnQgVXNhZ2U6IDk0LjIlClRocmVzaG9sZDogOTAlClRpbWVzdGFtcDogMjAyNC0wMS0xNSAxNDoyODowMCBVVEMKClBsZWFzZSBpbnZlc3RpZ2F0ZSBpbW1lZGlhdGVseS5gfSwzOntpZDoiMyIsZGlyZWN0aW9uOiJpbmJvdW5kIixzdGF0dXM6ImRlbGl2ZXJlZCIsZnJvbToic3VwcG9ydEBjdXN0b21lci5jb20iLHRvOiJhZG1pbkBzZXJ2ZS56b25lIix0b0xpc3Q6WyJhZG1pbkBzZXJ2ZS56b25lIl0sY2M6WyJvcHNAc2VydmUuem9uZSJdLHN1YmplY3Q6IlJlOiBJbmZyYXN0cnVjdHVyZSBSZXZpZXciLHRpbWVzdGFtcDoiMjAyNC0wMS0xNSAxNDoyNTowMCIsbWVzc2FnZUlkOiI8Z2hpNzg5QGN1c3RvbWVyLmNvbT4iLHNpemU6IjI0LjEgS0IiLHNtdHBMb2c6W3t0aW1lc3RhbXA6IjE0OjI0OjU4IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiRUhMTyBtYWlsLmN1c3RvbWVyLmNvbSJ9LHt0aW1lc3RhbXA6IjE0OjI0OjU4IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwLW1haWwuc2VydmUuem9uZSBIZWxsbyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MjQ6NTgiLGRpcmVjdGlvbjoic2VydmVyIixjb21tYW5kOiIyNTAtU1RBUlRUTFMiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI0OjU4IixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIFNJWkUgNTI0Mjg4MDAiLHJlc3BvbnNlQ29kZToyNTB9LHt0aW1lc3RhbXA6IjE0OjI0OjU5IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiU1RBUlRUTFMifSx7dGltZXN0YW1wOiIxNDoyNDo1OSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjIyMCBSZWFkeSB0byBzdGFydCBUTFMiLHJlc3BvbnNlQ29kZToyMjB9LHt0aW1lc3RhbXA6IjE0OjI0OjU5IixkaXJlY3Rpb246ImNsaWVudCIsY29tbWFuZDoiTUFJTCBGUk9NOjxzdXBwb3J0QGN1c3RvbWVyLmNvbT4ifSx7dGltZXN0YW1wOiIxNDoyNDo1OSIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyIscmVzcG9uc2VDb2RlOjI1MH0se3RpbWVzdGFtcDoiMTQ6MjQ6NTkiLGRpcmVjdGlvbjoiY2xpZW50Iixjb21tYW5kOiJSQ1BUIFRPOjxhZG1pbkBzZXJ2ZS56b25lPiJ9LHt0aW1lc3RhbXA6IjE0OjI1OjAwIixkaXJlY3Rpb246InNlcnZlciIsY29tbWFuZDoiMjUwIEFjY2VwdGVkIixyZXNwb25zZUNvZGU6MjUwfSx7dGltZXN0YW1wOiIxNDoyNTowMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6IkRBVEEifSx7dGltZXN0YW1wOiIxNDoyNTowMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjM1NCBFbnRlciBtZXNzYWdlIixyZXNwb25zZUNvZGU6MzU0fSx7dGltZXN0YW1wOiIxNDoyNTowMCIsZGlyZWN0aW9uOiJjbGllbnQiLGNvbW1hbmQ6Ii4ifSx7dGltZXN0YW1wOiIxNDoyNTowMCIsZGlyZWN0aW9uOiJzZXJ2ZXIiLGNvbW1hbmQ6IjI1MCBPSyBpZD0yYlIzc1QtMDAwNENkLUU1IixyZXNwb25zZUNvZGU6MjUwfV0sY29ubmVjdGlvbkluZm86e3NvdXJjZUlwOiIyMDMuMC4xMTMuNDUiLHNvdXJjZUhvc3RuYW1lOiJtYWlsLmN1c3RvbWVyLmNvbSIsZGVzdGluYXRpb25JcDoiMTAuMC4xLjUwIixkZXN0aW5hdGlvblBvcnQ6MjUsdGxzVmVyc2lvbjoiVExTdjEuMyIsdGxzQ2lwaGVyOiJUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IixhdXRoZW50aWNhdGVkOiExLGF1dGhNZXRob2Q6IiIsYXV0aFVzZXI6IiJ9LGF1dGhlbnRpY2F0aW9uUmVzdWx0czp7c3BmOiJwYXNzIixzcGZEb21haW46ImN1c3RvbWVyLmNvbSIsZGtpbToicGFzcyIsZGtpbURvbWFpbjoiY3VzdG9tZXIuY29tIixkbWFyYzoicGFzcyIsZG1hcmNQb2xpY3k6Im5vbmUifSxoZWFkZXJzOntGcm9tOiJzdXBwb3J0QGN1c3RvbWVyLmNvbSIsVG86ImFkbWluQHNlcnZlLnpvbmUiLENDOiJvcHNAc2VydmUuem9uZSIsU3ViamVjdDoiUmU6IEluZnJhc3RydWN0dXJlIFJldmlldyIsRGF0ZToiTW9uLCAxNSBKYW4gMjAyNCAxNDoyNTowMCArMDAwMCIsIk1JTUUtVmVyc2lvbiI6IjEuMCIsIkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgiLCJJbi1SZXBseS1UbyI6IjxwcmV2MTIzQHNlcnZlLnpvbmU+In0sYm9keTpgSGkgQWRtaW4sCgpUaGFuayB5b3UgZm9yIHRoZSBkZXRhaWxlZCBpbmZyYXN0cnVjdHVyZSByZXZpZXcgcmVwb3J0LgoKV2UgaGF2ZSByZXZpZXdlZCB0aGUgcmVjb21tZW5kYXRpb25zIGFuZCB3b3VsZCBsaWtlIHRvCnByb2NlZWQgd2l0aCB0aGUgZm9sbG93aW5nOgoKMS4gVXBncmFkZSB0byB0aGUgUHJvIHRpZXIKMi4gRW5hYmxlIGF1dG9tYXRpYyBiYWNrdXBzCjMuIFNldCB1cCBtb25pdG9yaW5nIGFsZXJ0cwoKUGxlYXNlIGxldCB1cyBrbm93IHRoZSB0aW1lbGluZSBmb3IgdGhlc2UgY2hhbmdlcy4KCkJlc3QgcmVnYXJkcywKQ3VzdG9tZXIgU3VwcG9ydCBUZWFtYH19O2FzeW5jIG9uQWN0aXZhdGUoYil7dGhpcy5hcHB1aT1iLmFwcHVpLHRoaXMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkFsbCBFbWFpbHMiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPSJhbGwiLHRoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfSwiYWN0aW9uIil9LHtrZXk6IkluYm91bmQiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPSJpbmJvdW5kIix0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJPdXRib3VuZCIsYWN0aW9uOmkoKCk9Pnt0aGlzLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXI9Im91dGJvdW5kIix0aGlzLmN1cnJlbnRWaWV3PSJsaXN0Iix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfV0pLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfXVwZGF0ZVNlY29uZGFyeU1lbnUoKXt0aGlzLmFwcHVpJiZ0aGlzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkVtYWlsIC8gTVRBIixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOlJlZnJlc2hDdyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiUmVmcmVzaCBlbWFpbHMiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkV4cG9ydCBMb2dzIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJFeHBvcnQgbG9ncyIpfSwiYWN0aW9uIil9XX0se25hbWU6IlN0YXR1cyBGaWx0ZXJzIixpdGVtczpbe2tleToiRGVsaXZlcmVkIixpY29uTmFtZToibHVjaWRlOkNoZWNrQ2lyY2xlIixiYWRnZToiNSIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgZGVsaXZlcmVkIil9LCJhY3Rpb24iKX0se2tleToiQm91bmNlZCIsaWNvbk5hbWU6Imx1Y2lkZTpYQ2lyY2xlIixiYWRnZToiMSIsYmFkZ2VWYXJpYW50OiJlcnJvciIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIGJvdW5jZWQiKX0sImFjdGlvbiIpfSx7a2V5OiJEZWZlcnJlZCIsaWNvbk5hbWU6Imx1Y2lkZTpDbG9jayIsYmFkZ2U6IjEiLGJhZGdlVmFyaWFudDoid2FybmluZyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiRmlsdGVyIGRlZmVycmVkIil9LCJhY3Rpb24iKX0se2tleToiUGVuZGluZyIsaWNvbk5hbWU6Imx1Y2lkZTpMb2FkZXIiLGJhZGdlOiIxIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJGaWx0ZXIgcGVuZGluZyIpfSwiYWN0aW9uIil9XX0se25hbWU6IlN0YXRpc3RpY3MiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiOCBUb3RhbCBFbWFpbHMifSx7dHlwZToiaGVhZGVyIixsYWJlbDoiNjIuNSUgRGVsaXZlcnkgUmF0ZSJ9XX1dfSl9b25EZWFjdGl2YXRlKCl7fXN0YXRpYyBzdHlsZXM9W3guZGVmYXVsdFN0eWxlcyxyZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXc9PT0iZGV0YWlsIiYmdGhpcy5zZWxlY3RlZEVtYWlsP3dgCiAgICAgICAgPHN6LW10YS1kZXRhaWwtdmlldwogICAgICAgICAgLmVtYWlsPSR7dGhpcy5zZWxlY3RlZEVtYWlsfQogICAgICAgICAgQGJhY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMuc2VsZWN0ZWRFbWFpbD1udWxsfX0KICAgICAgICA+PC9zei1tdGEtZGV0YWlsLXZpZXc+CiAgICAgIGA6d2AKICAgICAgPHN6LW10YS1saXN0LXZpZXcKICAgICAgICAuZW1haWxzPSR7dGhpcy5jdXJyZW50RGlyZWN0aW9uRmlsdGVyPT09ImFsbCI/dGhpcy5kZW1vRW1haWxzOnRoaXMuZGVtb0VtYWlscy5maWx0ZXIoYj0+Yi5kaXJlY3Rpb249PT10aGlzLmN1cnJlbnREaXJlY3Rpb25GaWx0ZXIpfQogICAgICAgIEBlbWFpbC1jbGljaz0ke2I9PnRoaXMuaGFuZGxlRW1haWxDbGljayhiLmRldGFpbCl9CiAgICAgID48L3N6LW10YS1saXN0LXZpZXc+CiAgICBgfWhhbmRsZUVtYWlsQ2xpY2soYil7bGV0IGc9dGhpcy5kZW1vRW1haWxEZXRhaWxzW2IuaWRdO2c/KHRoaXMuc2VsZWN0ZWRFbWFpbD1nLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCIpOmNvbnNvbGUubG9nKCJObyBkZXRhaWwgZGF0YSBhdmFpbGFibGUgZm9yIGVtYWlsOiIsYi5pZCl9c3RhdGlje2tnKGEscil9fTtyZXR1cm4gdj1hfSkoKX0pO3ZhciBNaWEsb2d0LHFCYSxDaWE9dSgoKT0+e3ZlKCk7YmwoKTtNaWE9ZnVuY3Rpb24odCxlLHIsYSxzLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1pKG8sImFjY2VwdCIpO2Zvcih2YXIgbD1hLmtpbmQsYz1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsZD0hZSYmdD9hLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsZj1lfHwoZD9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsYS5uYW1lKTp7fSkscCxoPSExLG09ci5sZW5ndGgtMTttPj0wO20tLSl7dmFyIHY9e307Zm9yKHZhciBiIGluIGEpdltiXT1iPT09ImFjY2VzcyI/e306YVtiXTtmb3IodmFyIGIgaW4gYS5hY2Nlc3Mpdi5hY2Nlc3NbYl09YS5hY2Nlc3NbYl07di5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGc9KDAsclttXSkobD09PSJhY2Nlc3NvciI/e2dldDpmLmdldCxzZXQ6Zi5zZXR9OmZbY10sdik7aWYobD09PSJhY2Nlc3NvciIpe2lmKGc9PT12b2lkIDApY29udGludWU7aWYoZz09PW51bGx8fHR5cGVvZiBnIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsocD1vKGcuZ2V0KSkmJihmLmdldD1wKSwocD1vKGcuc2V0KSkmJihmLnNldD1wKSwocD1vKGcuaW5pdCkpJiZzLnVuc2hpZnQocCl9ZWxzZShwPW8oZykpJiYobD09PSJmaWVsZCI/cy51bnNoaWZ0KHApOmZbY109cCl9ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsYS5uYW1lLGYpLGg9ITB9LG9ndD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MixzPTA7czxlLmxlbmd0aDtzKyspcj1hP2Vbc10uY2FsbCh0LHIpOmVbc10uY2FsbCh0KTtyZXR1cm4gYT9yOnZvaWQgMH0scUJhPSgoKT0+e2xldCB0PVt1ZSgic3otZGVtby12aWV3LXJvdXRlcyIpXSxlLHI9W10sYSxzPXllLG4sbz1bXSxsPVtdO3ZhciBjPWNsYXNzIGV4dGVuZHMgc3tzdGF0aWN7aSh0aGlzLCJTekRlbW9WaWV3Um91dGVzIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baWUoKV0sTWlhKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aShmPT4iY3VycmVudFRhYiJpbiBmLCJoYXMiKSxnZXQ6aShmPT5mLmN1cnJlbnRUYWIsImdldCIpLHNldDppKChmLHApPT57Zi5jdXJyZW50VGFiPXB9LCJzZXQiKX0sbWV0YWRhdGE6ZH0sbyxsKSxNaWEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6ZH0sbnVsbCxyKSxjPWE9ZS52YWx1ZSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX1hcHB1aT1udWxsOyNlPW9ndCh0aGlzLG8sImFsbCIpO2dldCBjdXJyZW50VGFiKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRUYWIoZCl7dGhpcy4jZT1kfWRlbW9Sb3V0ZXM9KG9ndCh0aGlzLGwpLFt7aWQ6InJvdXRlLTEiLG5hbWU6IldlYiBGcm9udGVuZCIsZGVzY3JpcHRpb246Ik1haW4gd2Vic2l0ZSB3aXRoIFRMUyB0ZXJtaW5hdGlvbiBhbmQgYXV0b21hdGljIGNlcnRpZmljYXRlcyIsZW5hYmxlZDohMCxwcmlvcml0eToxMCx0YWdzOlsid2ViIiwiaHR0cHMiLCJwcm9kdWN0aW9uIl0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOlsic2VydmUuem9uZSIsInd3dy5zZXJ2ZS56b25lIl0scHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuMTAiLHBvcnQ6M2UzfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn19fSx7aWQ6InJvdXRlLTIiLG5hbWU6IkhUVFAgUmVkaXJlY3QiLGRlc2NyaXB0aW9uOiJSZWRpcmVjdHMgYWxsIEhUVFAgdHJhZmZpYyB0byBIVFRQUyIsZW5hYmxlZDohMCxwcmlvcml0eToxMDAsdGFnczpbIndlYiIsImh0dHAiLCJyZWRpcmVjdCJdLG1hdGNoOntwb3J0czo4MCxkb21haW5zOlsic2VydmUuem9uZSIsInd3dy5zZXJ2ZS56b25lIl0scHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6InNvY2tldC1oYW5kbGVyIn19LHtpZDoicm91dGUtMyIsbmFtZToiU01UUCBJbmJvdW5kIixkZXNjcmlwdGlvbjoiSW5ib3VuZCBlbWFpbCByZWxheSBmb3Igc2VydmUuem9uZSBkb21haW4iLGVuYWJsZWQ6ITAsdGFnczpbImVtYWlsIiwic210cCIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6MjUsZG9tYWluczoibWFpbC5zZXJ2ZS56b25lIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDoiMTAuMC4xLjUiLHBvcnQ6MjV9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifX19LHtpZDoicm91dGUtNCIsbmFtZToiQVBJIEdhdGV3YXkiLGRlc2NyaXB0aW9uOiJBUEkgZ2F0ZXdheSB3aXRoIHJhdGUgbGltaXRpbmcsIENPUlMgaGVhZGVycywgYW5kIGxvYWQgYmFsYW5jaW5nIixlbmFibGVkOiEwLHByaW9yaXR5OjIwLHRhZ3M6WyJ3ZWIiLCJhcGkiLCJodHRwcyIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6ImFwaS5zZXJ2ZS56b25lIixwYXRoOiIvdjIvKiIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OlsiMTAuMC4wLjIwIiwiMTAuMC4wLjIxIiwiMTAuMC4wLjIyIl0scG9ydDo4MDgwfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUiLGNlcnRpZmljYXRlOiJhdXRvIn0sbG9hZEJhbGFuY2luZzp7YWxnb3JpdGhtOiJyb3VuZC1yb2JpbiJ9fSxzZWN1cml0eTp7cmF0ZUxpbWl0OntlbmFibGVkOiEwLG1heFJlcXVlc3RzOjIwMCx3aW5kb3c6NjB9LG1heENvbm5lY3Rpb25zOjVlM30saGVhZGVyczp7cmVzcG9uc2U6eyJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iOiIqIiwiWC1SZXF1ZXN0LUlkIjoie3tyZXF1ZXN0SWR9fSJ9fX0se2lkOiJyb3V0ZS01IixuYW1lOiJXZWJTb2NrZXQgUmVhbHRpbWUiLGRlc2NyaXB0aW9uOiJSZWFsLXRpbWUgV2ViU29ja2V0IGNvbm5lY3Rpb25zIGZvciBsaXZlIHVwZGF0ZXMiLGVuYWJsZWQ6ITAsdGFnczpbIndlYiIsImh0dHBzIiwid2Vic29ja2V0Il0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOiJ3cy5zZXJ2ZS56b25lIixwYXRoOiIvd3MvKiIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuMzAiLHBvcnQ6OTA5MH1dLHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9LHdlYnNvY2tldDp7ZW5hYmxlZDohMH19fSx7aWQ6InJvdXRlLTYiLG5hbWU6IlRlbmFudCBXaWxkY2FyZCIsZGVzY3JpcHRpb246Ik11bHRpLXRlbmFudCB3aWxkY2FyZCByb3V0aW5nIGZvciBjdXN0b21lciBzdWJkb21haW5zIixlbmFibGVkOiEwLHByaW9yaXR5OjUwLHRhZ3M6WyJ3ZWIiLCJodHRwcyIsIm11bHRpLXRlbmFudCJdLG1hdGNoOntwb3J0czo0NDMsZG9tYWluczoiKi5jdXN0b21lcnMuc2VydmUuem9uZSIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6ImZvcndhcmQiLHRhcmdldHM6W3tob3N0OiIxMC4wLjAuNDAiLHBvcnQ6ODA4MH1dLHRsczp7bW9kZToidGVybWluYXRlIixjZXJ0aWZpY2F0ZToiYXV0byJ9fSxzZWN1cml0eTp7aXBBbGxvd0xpc3Q6WyIxMC4wLjAuMC84IiwiMTcyLjE2LjAuMC8xMiJdfX0se2lkOiJyb3V0ZS03IixuYW1lOiJNaWNyb3NlcnZpY2VzIExCIixkZXNjcmlwdGlvbjoiTG9hZC1iYWxhbmNlZCBtaWNyb3NlcnZpY2VzIGJhY2tlbmQgd2l0aCBJUC1oYXNoIGFmZmluaXR5IixlbmFibGVkOiEwLHRhZ3M6WyJ3ZWIiLCJodHRwcyIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6WzQ0Myw4NDQzXSxkb21haW5zOiJzZXJ2aWNlcy5zZXJ2ZS56b25lIixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6WyIxMC4wLjIuMSIsIjEwLjAuMi4yIiwiMTAuMC4yLjMiLCIxMC4wLjIuNCJdLHBvcnQ6M2UzfV0sdGxzOnttb2RlOiJ0ZXJtaW5hdGUtYW5kLXJlZW5jcnlwdCIsY2VydGlmaWNhdGU6ImF1dG8ifSxsb2FkQmFsYW5jaW5nOnthbGdvcml0aG06ImlwLWhhc2gifX19LHtpZDoicm91dGUtOCIsbmFtZToiRE5TIG92ZXIgSFRUUFMiLGRlc2NyaXB0aW9uOiJETlMtb3Zlci1IVFRQUyByZXNvbHZlciBlbmRwb2ludCIsZW5hYmxlZDohMCx0YWdzOlsiZG5zIiwiaHR0cHMiXSxtYXRjaDp7cG9ydHM6NDQzLGRvbWFpbnM6ImRucy5zZXJ2ZS56b25lIixwYXRoOiIvZG5zLXF1ZXJ5Iixwcm90b2NvbDoiaHR0cCJ9LGFjdGlvbjp7dHlwZToiZm9yd2FyZCIsdGFyZ2V0czpbe2hvc3Q6IjEwLjAuMy4xIixwb3J0OjgwNTN9XSx0bHM6e21vZGU6InRlcm1pbmF0ZSIsY2VydGlmaWNhdGU6ImF1dG8ifX19LHtpZDoicm91dGUtOSIsbmFtZToiSGlnaC1QZXJmIFRDUCBQcm94eSIsZGVzY3JpcHRpb246Ik5GVGFibGVzLWFjY2VsZXJhdGVkIFRDUCBwcm94eSBmb3IgZ2FtZSBzZXJ2ZXJzIixlbmFibGVkOiEwLHRhZ3M6WyJ0Y3AiLCJuZnRhYmxlcyIsInByb2R1Y3Rpb24iXSxtYXRjaDp7cG9ydHM6W3tmcm9tOjI3ZTMsdG86MjcwNTB9XSxwcm90b2NvbDoidGNwIn0sYWN0aW9uOnt0eXBlOiJmb3J3YXJkIix0YXJnZXRzOlt7aG9zdDoiMTAuMC40LjEiLHBvcnQ6InByZXNlcnZlIn1dLGZvcndhcmRpbmdFbmdpbmU6Im5mdGFibGVzIn19LHtpZDoicm91dGUtMTAiLG5hbWU6IkxlZ2FjeSBBZG1pbiBQYW5lbCIsZGVzY3JpcHRpb246IkRlcHJlY2F0ZWQgYWRtaW4gcGFuZWwgXHUyMDE0IGRpc2FibGVkIGZvciBtYWludGVuYW5jZSIsZW5hYmxlZDohMSx0YWdzOlsid2ViIiwiaHR0cHMiLCJkZXByZWNhdGVkIl0sbWF0Y2g6e3BvcnRzOjQ0Myxkb21haW5zOiJhZG1pbi1vbGQuc2VydmUuem9uZSIscHJvdG9jb2w6Imh0dHAifSxhY3Rpb246e3R5cGU6InNvY2tldC1oYW5kbGVyIn0sc2VjdXJpdHk6e2lwQmxvY2tMaXN0OlsiMC4wLjAuMC8wIl19fV0pO2dldCBmaWx0ZXJlZFJvdXRlcygpe3JldHVybiB0aGlzLmN1cnJlbnRUYWI9PT0iYWxsIj90aGlzLmRlbW9Sb3V0ZXM6dGhpcy5jdXJyZW50VGFiPT09Imh0dHBzIj90aGlzLmRlbW9Sb3V0ZXMuZmlsdGVyKGQ9PmQudGFncz8uc29tZShmPT5bIndlYiIsImh0dHBzIiwiaHR0cCJdLmluY2x1ZGVzKGYpKSk6dGhpcy5jdXJyZW50VGFiPT09ImVtYWlsIj90aGlzLmRlbW9Sb3V0ZXMuZmlsdGVyKGQ9PmQudGFncz8uc29tZShmPT5bImVtYWlsIiwic210cCJdLmluY2x1ZGVzKGYpKSk6dGhpcy5jdXJyZW50VGFiPT09ImRucyI/dGhpcy5kZW1vUm91dGVzLmZpbHRlcihkPT5kLnRhZ3M/LnNvbWUoZj0+WyJkbnMiXS5pbmNsdWRlcyhmKSkpOnRoaXMuZGVtb1JvdXRlc31hc3luYyBvbkFjdGl2YXRlKGQpe3RoaXMuYXBwdWk9ZC5hcHB1aSx0aGlzLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJBbGwgUm91dGVzIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0iYWxsIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfSx7a2V5OiJIVFRQL1MiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJodHRwcyIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiRW1haWwiLGFjdGlvbjppKCgpPT57dGhpcy5jdXJyZW50VGFiPSJlbWFpbCIsdGhpcy51cGRhdGVTZWNvbmRhcnlNZW51KCl9LCJhY3Rpb24iKX0se2tleToiRE5TIixhY3Rpb246aSgoKT0+e3RoaXMuY3VycmVudFRhYj0iZG5zIix0aGlzLnVwZGF0ZVNlY29uZGFyeU1lbnUoKX0sImFjdGlvbiIpfV0pLHRoaXMudXBkYXRlU2Vjb25kYXJ5TWVudSgpfXVwZGF0ZVNlY29uZGFyeU1lbnUoKXtpZighdGhpcy5hcHB1aSlyZXR1cm47bGV0IGQ9dGhpcy5kZW1vUm91dGVzLmxlbmd0aCxmPXRoaXMuZGVtb1JvdXRlcy5maWx0ZXIoaD0+aC5lbmFibGVkIT09ITEpLmxlbmd0aCxwPXRoaXMuZGVtb1JvdXRlcy5maWx0ZXIoaD0+aC5hY3Rpb24udHlwZT09PSJmb3J3YXJkIikubGVuZ3RoO3RoaXMuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiUm91dGVzIixncm91cHM6W3tuYW1lOiJBY3Rpb25zIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOlJlZnJlc2hDdyIsYWN0aW9uOmkoKCk9Pntjb25zb2xlLmxvZygiUmVmcmVzaCByb3V0ZXMiKX0sImFjdGlvbiIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkFkZCBSb3V0ZSIsaWNvbk5hbWU6Imx1Y2lkZTpQbHVzIixhY3Rpb246aSgoKT0+e2NvbnNvbGUubG9nKCJBZGQgcm91dGUiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJTdGF0aXN0aWNzIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6YCR7ZH0gVG90YWwgUm91dGVzYH0se3R5cGU6ImhlYWRlciIsbGFiZWw6YCR7Zn0gQWN0aXZlYH0se3R5cGU6ImhlYWRlciIsbGFiZWw6YCR7cH0gRm9yd2FyZGB9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOmAke2QtcH0gU29ja2V0IEhhbmRsZXJgfV19XX0pfW9uRGVhY3RpdmF0ZSgpe31zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3otcm91dGUtbGlzdC12aWV3CiAgICAgICAgLnJvdXRlcz0ke3RoaXMuZmlsdGVyZWRSb3V0ZXN9CiAgICAgICAgQHJvdXRlLWNsaWNrPSR7ZD0+e2NvbnNvbGUubG9nKCJSb3V0ZSBjbGlja2VkOiIsZC5kZXRhaWwubmFtZSl9fQogICAgICA+PC9zei1yb3V0ZS1saXN0LXZpZXc+CiAgICBgfXN0YXRpY3tvZ3QoYSxyKX19O3JldHVybiBjPWF9KSgpfSk7dmFyIFZCYSxqQmEsVUJhLHppYT11KCgpPT57dmUoKTtibCgpO1ZCYT1mdW5jdGlvbih0LGUscixhLHMsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWkobywiYWNjZXB0Iik7Zm9yKHZhciBsPWEua2luZCxjPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixkPSFlJiZ0P2Euc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxmPWV8fChkP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxhLm5hbWUpOnt9KSxwLGg9ITEsbT1yLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgdj17fTtmb3IodmFyIGIgaW4gYSl2W2JdPWI9PT0iYWNjZXNzIj97fTphW2JdO2Zvcih2YXIgYiBpbiBhLmFjY2Vzcyl2LmFjY2Vzc1tiXT1hLmFjY2Vzc1tiXTt2LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgZz0oMCxyW21dKShsPT09ImFjY2Vzc29yIj97Z2V0OmYuZ2V0LHNldDpmLnNldH06ZltjXSx2KTtpZihsPT09ImFjY2Vzc29yIil7aWYoZz09PXZvaWQgMCljb250aW51ZTtpZihnPT09bnVsbHx8dHlwZW9mIGchPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhwPW8oZy5nZXQpKSYmKGYuZ2V0PXApLChwPW8oZy5zZXQpKSYmKGYuc2V0PXApLChwPW8oZy5pbml0KSkmJnMudW5zaGlmdChwKX1lbHNlKHA9byhnKSkmJihsPT09ImZpZWxkIj9zLnVuc2hpZnQocCk6ZltjXT1wKX1kJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxhLm5hbWUsZiksaD0hMH0sakJhPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yLHM9MDtzPGUubGVuZ3RoO3MrKylyPWE/ZVtzXS5jYWxsKHQscik6ZVtzXS5jYWxsKHQpO3JldHVybiBhP3I6dm9pZCAwfSxVQmE9KCgpPT57bGV0IHQ9W3VlKCJzei1kZW1vLXZpZXctY29uZmlnIildLGUscj1bXSxhLHM9eWU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6RGVtb1ZpZXdDb25maWciKX1zdGF0aWN7YT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShzW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtWQmEobnVsbCxlPXt2YWx1ZTphfSx0LHtraW5kOiJjbGFzcyIsbmFtZTphLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWE9ZS52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVt4LmRlZmF1bHRTdHlsZXMscmVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3otY29uZmlnLW92ZXJ2aWV3CiAgICAgICAgaW5mb1RleHQ9IlRoaXMgdmlldyBkaXNwbGF5cyB0aGUgY3VycmVudCBydW5uaW5nIGNvbmZpZ3VyYXRpb24uIERjUm91dGVyIGlzIGNvbmZpZ3VyZWQgdGhyb3VnaCBjb2RlIG9yIHJlbW90ZSBtYW5hZ2VtZW50LiIKICAgICAgPgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IlN5c3RlbSIKICAgICAgICAgIHN1YnRpdGxlPSJCYXNlIHBhdGhzIGFuZCBpbmZyYXN0cnVjdHVyZSIKICAgICAgICAgIGljb249Imx1Y2lkZTpzZXJ2ZXIiCiAgICAgICAgICBzdGF0dXM9ImVuYWJsZWQiCiAgICAgICAgICAuZmllbGRzPSR7W3trZXk6IkJhc2UgRGlyZWN0b3J5Iix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlciJ9LHtrZXk6IkRhdGEgRGlyZWN0b3J5Iix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlci9kYXRhIn0se2tleToiUHVibGljIElQIix2YWx1ZToiMjAzLjAuMTEzLjUwIn0se2tleToiUHJveHkgSVBzIix2YWx1ZTpbIjIwMy4wLjExMy4xMCIsIjIwMy4wLjExMy4xMSJdLHR5cGU6InBpbGxzIn0se2tleToiVXB0aW1lIix2YWx1ZToiM2QgMTRoIDIybSJ9LHtrZXk6IlN0b3JhZ2UgQmFja2VuZCIsdmFsdWU6ImZpbGVzeXN0ZW0iLHR5cGU6ImJhZGdlIn1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJTbWFydFByb3h5IgogICAgICAgICAgc3VidGl0bGU9IkhUVFAvSFRUUFMgYW5kIFRDUC9TTkkgcmV2ZXJzZSBwcm94eSIKICAgICAgICAgIGljb249Imx1Y2lkZTpuZXR3b3JrIgogICAgICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJSb3V0ZSBDb3VudCIsdmFsdWU6MTJ9LHtrZXk6IkFDTUUgRW5hYmxlZCIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9LHtrZXk6IkFjY291bnQgRW1haWwiLHZhbHVlOiJhZG1pbkBzZXJ2ZS56b25lIn0se2tleToiVXNlIFByb2R1Y3Rpb24iLHZhbHVlOiEwLHR5cGU6ImJvb2xlYW4ifSx7a2V5OiJBdXRvIFJlbmV3Iix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn0se2tleToiUmVuZXcgVGhyZXNob2xkIix2YWx1ZToiMzAgZGF5cyJ9XX0KICAgICAgICAgIC5hY3Rpb25zPSR7W3tsYWJlbDoiVmlldyBSb3V0ZXMiLGljb246Imx1Y2lkZTphcnJvdy1yaWdodCIsZXZlbnQ6Im5hdmlnYXRlIixkZXRhaWw6e3ZpZXc6InJvdXRlcyJ9fV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkVtYWlsIFNlcnZlciIKICAgICAgICAgIHN1YnRpdGxlPSJTTVRQIGVtYWlsIGhhbmRsaW5nIHdpdGggc21hcnRtdGEiCiAgICAgICAgICBpY29uPSJsdWNpZGU6bWFpbCIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydHMiLHZhbHVlOlsiMjUiLCI0NjUiLCI1ODciXSx0eXBlOiJwaWxscyJ9LHtrZXk6Ikhvc3RuYW1lIix2YWx1ZToibWFpbC5zZXJ2ZS56b25lIn0se2tleToiRG9tYWlucyIsdmFsdWU6WyJzZXJ2ZS56b25lIiwibWFpbC5zZXJ2ZS56b25lIl0sdHlwZToicGlsbHMifSx7a2V5OiJFbWFpbCBSb3V0ZXMiLHZhbHVlOjV9LHtrZXk6IlJlY2VpdmVkIFBhdGgiLHZhbHVlOiIvZGF0YS9lbWFpbHMifV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkROUyBTZXJ2ZXIiCiAgICAgICAgICBzdWJ0aXRsZT0iQXV0aG9yaXRhdGl2ZSBETlMgd2l0aCBzbWFydGRucyIKICAgICAgICAgIGljb249Imx1Y2lkZTpnbG9iZSIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiUG9ydCIsdmFsdWU6NTN9LHtrZXk6Ik5TIERvbWFpbnMiLHZhbHVlOlsibnMxLnNlcnZlLnpvbmUiLCJuczIuc2VydmUuem9uZSJdLHR5cGU6InBpbGxzIn0se2tleToiU2NvcGVzIix2YWx1ZTpbInNlcnZlLnpvbmUiLCJleGFtcGxlLmNvbSJdLHR5cGU6InBpbGxzIn0se2tleToiUmVjb3JkIENvdW50Iix2YWx1ZToyNH0se2tleToiRE5TIENoYWxsZW5nZSIsdmFsdWU6ITAsdHlwZToiYm9vbGVhbiJ9XX0KICAgICAgICA+PC9zei1jb25maWctc2VjdGlvbj4KCiAgICAgICAgPHN6LWNvbmZpZy1zZWN0aW9uCiAgICAgICAgICB0aXRsZT0iVExTIC8gQ2VydGlmaWNhdGVzIgogICAgICAgICAgc3VidGl0bGU9IkNlcnRpZmljYXRlIG1hbmFnZW1lbnQgYW5kIEFDTUUiCiAgICAgICAgICBpY29uPSJsdWNpZGU6c2hpZWxkLWNoZWNrIgogICAgICAgICAgc3RhdHVzPSJlbmFibGVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJDb250YWN0IEVtYWlsIix2YWx1ZToiYWRtaW5Ac2VydmUuem9uZSJ9LHtrZXk6IkRvbWFpbiIsdmFsdWU6InNlcnZlLnpvbmUifSx7a2V5OiJTb3VyY2UiLHZhbHVlOiJhY21lIix0eXBlOiJiYWRnZSJ9LHtrZXk6IkNlcnRpZmljYXRlIFBhdGgiLHZhbHVlOm51bGx9LHtrZXk6IktleSBQYXRoIix2YWx1ZTpudWxsfV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IkNhY2hlIERhdGFiYXNlIgogICAgICAgICAgc3VidGl0bGU9IlBlcnNpc3RlbnQgY2FjaGluZyB3aXRoIHNtYXJ0ZGF0YSIKICAgICAgICAgIGljb249Imx1Y2lkZTpkYXRhYmFzZSIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiU3RvcmFnZSBQYXRoIix2YWx1ZToiL2hvbWUvdXNlci8uc2VydmUuem9uZS9kY3JvdXRlci90c21kYiJ9LHtrZXk6IkRCIE5hbWUiLHZhbHVlOiJkY3JvdXRlciJ9LHtrZXk6IkRlZmF1bHQgVFRMIix2YWx1ZToiMzAgZGF5cyJ9LHtrZXk6IkNsZWFudXAgSW50ZXJ2YWwiLHZhbHVlOiIxIGhvdXIifV19CiAgICAgICAgPjwvc3otY29uZmlnLXNlY3Rpb24+CgogICAgICAgIDxzei1jb25maWctc2VjdGlvbgogICAgICAgICAgdGl0bGU9IlJBRElVUyBTZXJ2ZXIiCiAgICAgICAgICBzdWJ0aXRsZT0iTmV0d29yayBhdXRoZW50aWNhdGlvbiBhbmQgVkxBTiBhc3NpZ25tZW50IgogICAgICAgICAgaWNvbj0ibHVjaWRlOndpZmkiCiAgICAgICAgICBzdGF0dXM9Im5vdC1jb25maWd1cmVkIgogICAgICAgICAgLmZpZWxkcz0ke1t7a2V5OiJBdXRoIFBvcnQiLHZhbHVlOm51bGx9LHtrZXk6IkFjY291bnRpbmcgUG9ydCIsdmFsdWU6bnVsbH1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgoKICAgICAgICA8c3otY29uZmlnLXNlY3Rpb24KICAgICAgICAgIHRpdGxlPSJSZW1vdGUgSW5ncmVzcyIKICAgICAgICAgIHN1YnRpdGxlPSJFZGdlIHR1bm5lbCBub2RlcyIKICAgICAgICAgIGljb249Imx1Y2lkZTpjbG91ZCIKICAgICAgICAgIHN0YXR1cz0iZW5hYmxlZCIKICAgICAgICAgIC5maWVsZHM9JHtbe2tleToiVHVubmVsIFBvcnQiLHZhbHVlOjg0NDN9LHtrZXk6Ikh1YiBEb21haW4iLHZhbHVlOiJodWIuc2VydmUuem9uZSJ9LHtrZXk6IlRMUyBDb25maWd1cmVkIix2YWx1ZTohMCx0eXBlOiJib29sZWFuIn1dfQogICAgICAgID48L3N6LWNvbmZpZy1zZWN0aW9uPgogICAgICA8L3N6LWNvbmZpZy1vdmVydmlldz4KICAgIGB9c3RhdGlje2pCYShhLHIpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgYmw9dSgoKT0+e0Q5dCgpO0E5dCgpO0k5dCgpO1A5dCgpO045dCgpO1I5dCgpO0I5dCgpO3E5dCgpO2o5dCgpO1U5dCgpO1c5dCgpO2phYSgpO1VhYSgpO0dhYSgpO1lhYSgpO0thYSgpO1FhYSgpO0phYSgpO2VpYSgpO3RpYSgpO3JpYSgpO2FpYSgpO2lpYSgpO3NpYSgpO25pYSgpO29pYSgpO2xpYSgpO2NpYSgpO3VpYSgpO3BpYSgpO2ZpYSgpO2hpYSgpO21pYSgpO2dpYSgpO2JpYSgpO3hpYSgpO3lpYSgpO3dpYSgpO2tpYSgpO1NpYSgpO0NpYSgpO3ppYSgpfSk7dmFyIGNJMSxfaWE9dSgoKT0+e3ZlKCk7Y0kxPWkoKCk9PndgCiAgPHN0eWxlPgogICAgYm9keSB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMjRweDsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYm94LXNoYWRvdzogMCA0cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgaDEgewogICAgICBtYXJnaW46IDAgMCAzMnB4IDA7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgZm9udC1zaXplOiAyOHB4OwogICAgICBjb2xvcjogIzFhMWExYTsKICAgIH0KICAgIC5jb21wb25lbnQtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMT5TZXJ2ZS5ab25lIENhdGFsb2c8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJjb21wb25lbnQtZGVtbyI+CiAgICAgICAgPHN6LWhlbGxvPjwvc3otaGVsbG8+CiAgICAgICAgPHN6LWhlbGxvIHRleHQ9IldlbGNvbWUgdG8gU2VydmUuWm9uZSEiPjwvc3otaGVsbG8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmAsIm1haW5wYWdlIil9KTt2YXIgaEkxLFRpYT11KCgpPT57dmUoKTtibCgpO2hJMT1pKCgpPT53YAogIDxzdHlsZT4KICAgIGh0bWwsIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CiAgICBzei1kZW1vLWFwcC1zaGVsbCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICB3aWR0aDogMTAwdnc7CiAgICB9CiAgPC9zdHlsZT4KICA8c3otZGVtby1hcHAtc2hlbGw+PC9zei1kZW1vLWFwcC1zaGVsbD4KYCwic3pEZW1vQXBwIil9KTt2YXIgV0JhLEdCYSxZQmEsTGlhPXUoKCk9Pnt2ZSgpO1Q5dCgpO2JsKCk7V0JhPWZ1bmN0aW9uKHQsZSxyLGEscyxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9aShvLCJhY2NlcHQiKTtmb3IodmFyIGw9YS5raW5kLGM9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGQ9IWUmJnQ/YS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLGY9ZXx8KGQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLGEubmFtZSk6e30pLHAsaD0hMSxtPXIubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PXt9O2Zvcih2YXIgYiBpbiBhKXZbYl09Yj09PSJhY2Nlc3MiP3t9OmFbYl07Zm9yKHZhciBiIGluIGEuYWNjZXNzKXYuYWNjZXNzW2JdPWEuYWNjZXNzW2JdO3YuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBnPSgwLHJbbV0pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6Zi5nZXQsc2V0OmYuc2V0fTpmW2NdLHYpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKGc9PT1udWxsfHx0eXBlb2YgZyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KHA9byhnLmdldCkpJiYoZi5nZXQ9cCksKHA9byhnLnNldCkpJiYoZi5zZXQ9cCksKHA9byhnLmluaXQpKSYmcy51bnNoaWZ0KHApfWVsc2UocD1vKGcpKSYmKGw9PT0iZmllbGQiP3MudW5zaGlmdChwKTpmW2NdPXApfWQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGEubmFtZSxmKSxoPSEwfSxHQmE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjIscz0wO3M8ZS5sZW5ndGg7cysrKXI9YT9lW3NdLmNhbGwodCxyKTplW3NdLmNhbGwodCk7cmV0dXJuIGE/cjp2b2lkIDB9LFlCYT0oKCk9PntsZXQgdD1bdWUoInN6LWRlbW8tYXBwLXNoZWxsIildLGUscj1bXSxhLHM9eWU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBze3N0YXRpY3tpKHRoaXMsIlN6RGVtb0FwcFNoZWxsIil9c3RhdGlje2E9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoc1tTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7V0JhKG51bGwsZT17dmFsdWU6YX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6YS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1hPWUudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1beC5kZWZhdWx0U3R5bGVzLHJlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICBkZWVzLWFwcHVpIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1hcHB1aT48L2RlZXMtYXBwdWk+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2xldCBvPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aSIpO28mJihvLmNvbmZpZ3VyZSh7YnJhbmRpbmc6e2xvZ29JY29uOiJsdWNpZGU6Qm94Iixsb2dvVGV4dDoic2VydmUuem9uZSJ9LGFwcEJhcjp7c2hvd1NlYXJjaDohMCxicmVhZGNydW1iczoic2VydmUuem9uZSIsbWVudUl0ZW1zOlt7bmFtZToiRmlsZSIsYWN0aW9uOmkoYXN5bmMoKT0+e30sImFjdGlvbiIpLHN1Ym1lbnU6W3tuYW1lOiJOZXcgU2VydmljZSIsc2hvcnRjdXQ6IkNtZCtOIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIk5ldyBTZXJ2aWNlIil9LCJhY3Rpb24iKX0se25hbWU6IkltcG9ydCBDb25maWd1cmF0aW9uIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIkltcG9ydCIpfSwiYWN0aW9uIil9LHtuYW1lOiJFeHBvcnQgQ29uZmlndXJhdGlvbiIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJFeHBvcnQiKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlByZWZlcmVuY2VzIixzaG9ydGN1dDoiQ21kKywiLGFjdGlvbjppKGFzeW5jKCk9PntvLm5hdmlnYXRlVG9WaWV3KCJzZXR0aW5ncyIpfSwiYWN0aW9uIil9XX0se25hbWU6IlZpZXciLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRGFzaGJvYXJkIixzaG9ydGN1dDoiQ21kKzEiLGFjdGlvbjppKGFzeW5jKCk9PntvLm5hdmlnYXRlVG9WaWV3KCJkYXNoYm9hcmQiKX0sImFjdGlvbiIpfSx7bmFtZToiU2VydmljZXMiLHNob3J0Y3V0OiJDbWQrMiIsYWN0aW9uOmkoYXN5bmMoKT0+e28ubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIil9LCJhY3Rpb24iKX0se25hbWU6Ik5ldHdvcmsiLHNob3J0Y3V0OiJDbWQrMyIsYWN0aW9uOmkoYXN5bmMoKT0+e28ubmF2aWdhdGVUb1ZpZXcoIm5ldHdvcmsiKX0sImFjdGlvbiIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkFjdGl2aXR5IExvZyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtBIixhY3Rpb246aShhc3luYygpPT57by50b2dnbGVBY3Rpdml0eUxvZygpfSwiYWN0aW9uIil9LHtuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246aShhc3luYygpPT57by5zZXRNYWluTWVudUNvbGxhcHNlZCghby5tYWlubWVudUNvbGxhcHNlZCl9LCJhY3Rpb24iKX1dfSx7bmFtZToiU2VydmljZXMiLGFjdGlvbjppKGFzeW5jKCk9Pnt9LCJhY3Rpb24iKSxzdWJtZW51Olt7bmFtZToiRGVwbG95IE5ldyBTZXJ2aWNlIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIkRlcGxveSIpfSwiYWN0aW9uIil9LHtuYW1lOiJTdGFydCBBbGwiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiU3RhcnQgYWxsIil9LCJhY3Rpb24iKX0se25hbWU6IlN0b3AgQWxsIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIlN0b3AgYWxsIil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJHYXJiYWdlIENvbGxlY3QiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiR0MiKX0sImFjdGlvbiIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246aShhc3luYygpPT57fSwiYWN0aW9uIiksc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGFjdGlvbjppKGFzeW5jKCk9Pnt3aW5kb3cub3BlbigiaHR0cHM6Ly9kb2NzLnNlcnZlLnpvbmUiLCJfYmxhbmsiKX0sImFjdGlvbiIpfSx7bmFtZToiUmVsZWFzZSBOb3RlcyIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJSZWxlYXNlIG5vdGVzIil9LCJhY3Rpb24iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCBzZXJ2ZS56b25lIixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIkFib3V0Iil9LCJhY3Rpb24iKX1dfV19LHZpZXdzOlt7aWQ6ImRhc2hib2FyZCIsbmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOkxheW91dERhc2hib2FyZCIsY29udGVudDoic3otZGVtby12aWV3LWRhc2hib2FyZCJ9LHtpZDoic2VydmljZXMiLG5hbWU6IlNlcnZpY2VzIixpY29uTmFtZToibHVjaWRlOlNlcnZlciIsY29udGVudDoic3otZGVtby12aWV3LXNlcnZpY2VzIn0se2lkOiJuZXR3b3JrIixuYW1lOiJOZXR3b3JrIixpY29uTmFtZToibHVjaWRlOk5ldHdvcmsiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1uZXR3b3JrIn0se2lkOiJyZWdpc3RyaWVzIixuYW1lOiJSZWdpc3RyaWVzIixpY29uTmFtZToibHVjaWRlOkFyY2hpdmUiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1yZWdpc3RyaWVzIn0se2lkOiJ0b2tlbnMiLG5hbWU6IlRva2VucyIsaWNvbk5hbWU6Imx1Y2lkZTpLZXkiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy10b2tlbnMifSx7aWQ6Im10YSIsbmFtZToiRW1haWwgLyBNVEEiLGljb25OYW1lOiJsdWNpZGU6TWFpbCIsY29udGVudDoic3otZGVtby12aWV3LW10YSJ9LHtpZDoicm91dGVzIixuYW1lOiJSb3V0ZXMiLGljb25OYW1lOiJsdWNpZGU6Um91dGUiLGNvbnRlbnQ6InN6LWRlbW8tdmlldy1yb3V0ZXMifSx7aWQ6InNldHRpbmdzIixuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpTZXR0aW5ncyIsY29udGVudDoic3otZGVtby12aWV3LXNldHRpbmdzIn1dLG1haW5NZW51OntzZWN0aW9uczpbe25hbWU6Ik92ZXJ2aWV3Iix2aWV3czpbImRhc2hib2FyZCJdfSx7bmFtZToiSW5mcmFzdHJ1Y3R1cmUiLHZpZXdzOlsic2VydmljZXMiLCJuZXR3b3JrIiwicmVnaXN0cmllcyIsIm10YSIsInJvdXRlcyJdfSx7bmFtZToiQWRtaW5pc3RyYXRpb24iLHZpZXdzOlsidG9rZW5zIiwic2V0dGluZ3MiXX1dfSxkZWZhdWx0VmlldzoiZGFzaGJvYXJkIixvblZpZXdDaGFuZ2U6aSgobCxjKT0+e2NvbnNvbGUubG9nKCJWaWV3IGNoYW5nZWQgdG86IixsLGMpfSwib25WaWV3Q2hhbmdlIil9KSxvLnNldFVzZXIoe25hbWU6IkFkbWluIFVzZXIiLGVtYWlsOiJhZG1pbkBzZXJ2ZS56b25lIixzdGF0dXM6Im9ubGluZSJ9KSxvLnNldFByb2ZpbGVNZW51SXRlbXMoW3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToibHVjaWRlOlVzZXIiLGFjdGlvbjppKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiUHJvZmlsZSIpfSwiYWN0aW9uIil9LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpTbGlkZXJzSG9yaXpvbnRhbCIsYWN0aW9uOmkoYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJQcmVmZXJlbmNlcyIpfSwiYWN0aW9uIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsdWNpZGU6TG9nT3V0IixhY3Rpb246aShhc3luYygpPT57Y29uc29sZS5sb2coIlNpZ24gT3V0Iil9LCJhY3Rpb24iKX1dKSl9c3RhdGlje0dCYShhLHIpfX07cmV0dXJuIG49YX0pKCl9KTt2YXIgRGlhPXUoKCk9PntfaWEoKTtUaWEoKTtMaWEoKX0pO3ZhciAkaWE9dSgoKT0+e2JsKCk7RGlhKCl9KTt2YXIgQWlhPU50KEFzPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShBcywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksQXMuZ2V0Rmlyc3RUcnVlT3JGYWxzZT1Bcy50aW1lb3V0QW5kQ29udGludWU9QXMudGltZW91dFdyYXA9QXMubWFwPUFzLnJlamVjdGVkUHJvbWlzZT1Bcy5yZXNvbHZlZFByb21pc2U9QXMuZGVmZXI9QXMuRGVmZXJyZWQ9dm9pZCAwO3ZhciBubWU9Y2xhc3N7c3RhdGlje2kodGhpcywiRGVmZXJyZWQiKX1jb25zdHJ1Y3Rvcigpe3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZSxyKT0+e3RoaXMucmVzb2x2ZT1hPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxlKGEpfSx0aGlzLnJlamVjdD1hPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLHIoYSl9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcHBlZEF0P3RoaXMuc3RvcHBlZEF0LXRoaXMuc3RhcnRlZEF0OkRhdGUubm93KCktdGhpcy5zdGFydGVkQXR9fTtBcy5EZWZlcnJlZD1ubWUsQXMuZGVmZXI9KCk9Pm5ldyBubWUsQXMucmVzb2x2ZWRQcm9taXNlPXQ9PlByb21pc2UucmVzb2x2ZSh0KSxBcy5yZWplY3RlZFByb21pc2U9dD0+UHJvbWlzZS5yZWplY3QodCksQXMubWFwPWFzeW5jKHQsZSk9PntsZXQgcj1bXSxhPVtdO2ZvcihsZXQgcyBvZiB0KXtsZXQgbj1lKHMpO3IucHVzaChuKSxuLnRoZW4obz0+e2EucHVzaChvKX0pfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChyKSxhfSxBcy50aW1lb3V0V3JhcD1hc3luYyh0LGUscj0hMCk9Pm5ldyBQcm9taXNlKChhLHMpPT57c2V0VGltZW91dCgoKT0+e3I/cyhuZXcgRXJyb3IoInRpbWVvdXQiKSk6YShudWxsKX0sZSksdC50aGVuKGEscyl9KSxBcy50aW1lb3V0QW5kQ29udGludWU9YXN5bmModCxlPTZlNCk9PkFzLnRpbWVvdXRXcmFwKHQsZSwhMSksQXMuZ2V0Rmlyc3RUcnVlT3JGYWxzZT1hc3luYyB0PT57bGV0IGU9QXMuZGVmZXIoKTtmb3IobGV0IHIgb2YgdClyLnRoZW4oYT0+e2E9PT0hMCYmZS5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKCgpPT57ZS5yZXNvbHZlKCExKX0pLGUucHJvbWlzZX19KTt2YXIgbGd0LEVpYT11KCgpPT57bGd0PUdhKEFpYSgpLDEpfSk7dmFyIElpYT11KCgpPT57fSk7dmFyIGNndCxQaWE9dSgoKT0+e0VpYSgpO0lpYSgpO2NndD1jbGFzc3tzdGF0aWN7aSh0aGlzLCJTbWFydGVudiIpfWNvbnN0cnVjdG9yKCl7dGhpcy5sb2FkZWRTY3JpcHRzPVtdfWFzeW5jIGdldEVudkF3YXJlTW9kdWxlKGUpe2lmKHRoaXMuaXNOb2RlKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKGUubm9kZU1vZHVsZU5hbWUpO2lmKHRoaXMuaXNCcm93c2VyKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVXZWJNb2R1bGUoZS53ZWJVcmxBcmcsZS5nZXRGdW5jdGlvbik7Y29uc29sZS5lcnJvcigicGxhdGZvcm0gZm9yIGxvYWRpbmcgbm90IHN1cHBvcnRlZCBieSBzbWFydGVudiIpfWFzeW5jIGdldFNhZmVOb2RlTW9kdWxlKGUpe2lmKCF0aGlzLmlzTm9kZSl7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBub2RlIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7ZX1gKTtyZXR1cm59cmV0dXJuIG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHtlfScpYCkoKX1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKGUscil7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyhlKSlyZXR1cm4gcigpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKGUpO2xldCBhPWxndC5kZWZlcigpO2lmKGdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cylnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMoZSksYS5yZXNvbHZlKCk7ZWxzZXtsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtzLm9ubG9hZD0oKT0+e2EucmVzb2x2ZSgpfSxzLnNyYz1lLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyl9cmV0dXJuIGF3YWl0IGEucHJvbWlzZSxyKCl9Z2V0IHJ1bnRpbWVFbnYoKXtyZXR1cm4gdHlwZW9mIHByb2Nlc3M8InUiPyJub2RlIjoiYnJvd3NlciJ9Z2V0IGlzQnJvd3Nlcigpe3JldHVybiF0aGlzLmlzTm9kZX1nZXQgdXNlckFnZW50KCl7cmV0dXJuIHRoaXMuaXNCcm93c2VyP25hdmlnYXRvci51c2VyQWdlbnQ6InVuZGVmaW5lZCJ9Z2V0IGlzTm9kZSgpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0ibm9kZSJ9Z2V0IG5vZGVWZXJzaW9uKCl7cmV0dXJuIHByb2Nlc3MudmVyc2lvbn1nZXQgaXNDSSgpe3JldHVybiB0aGlzLmlzTm9kZT8hIXByb2Nlc3MuZW52LkNJOiExfWFzeW5jIGlzTWFjQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0iZGFyd2luIjohMX1hc3luYyBpc1dpbmRvd3NBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJ3aW4zMiI6ITF9YXN5bmMgaXNMaW51eEFzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImxpbnV4IjohMX1hc3luYyBwcmludEVudigpe3RoaXMuaXNOb2RlPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBOT0RFIiksY29uc29sZS5sb2coIm5vZGUgdmVyc2lvbiBpcyAiK3RoaXMubm9kZVZlcnNpb24pKTooY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlJPV1NFUiIpLGNvbnNvbGUubG9nKCJicm93c2VyIGlzICIrdGhpcy51c2VyQWdlbnQpKX19fSk7dmFyIGhhZT17fTtWZShoYWUse1NtYXJ0ZW52OigpPT5jZ3R9KTt2YXIgTmlhPXUoKCk9PntQaWEoKX0pO3ZhciBPaWE9dSgoKT0+e05pYSgpfSk7dmFyIGRndD17fTtWZShkZ3Qse3NoYTI1NkZyb21TdHJpbmc6KCk9PlhCYX0pO3ZhciBRQmEsWEJhLFJpYT11KCgpPT57T2lhKCk7UUJhPWkodD0+e2xldCBlPVtdLHI9bmV3IERhdGFWaWV3KHQpO2ZvcihsZXQgYT0wO2E8ci5ieXRlTGVuZ3RoO2ErPTQpe2xldCBuPXIuZ2V0VWludDMyKGEpLnRvU3RyaW5nKDE2KSxvPSIwMDAwMDAwMCIsbD0obytuKS5zbGljZSgtby5sZW5ndGgpO2UucHVzaChsKX1yZXR1cm4gZS5qb2luKCIiKX0sImhleCIpLFhCYT1pKGFzeW5jIHQ9PntsZXQgZT1uZXcgaGFlLlNtYXJ0ZW52O2lmKGUuaXNCcm93c2VyKXtsZXQgcj1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCksYT1hd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIscik7cmV0dXJuIFFCYShhKX1lbHNlIGlmKGUuaXNOb2RlKXJldHVybiBhd2FpdChhd2FpdCBlLmdldFNhZmVOb2RlTW9kdWxlKCJAcHVzaHJvY2tzL3NtYXJ0aGFzaCIpKS5zaGEyNTZGcm9tU3RyaW5nKHQpfSwic2hhMjU2RnJvbVN0cmluZyIpfSk7dmFyIEZpYT11KCgpPT57R24oKX0pO3ZhciBCaWE9dSgoKT0+e30pO3ZhciB1Z3QsSGlhPXUoKCk9PntGaWEoKTtCaWEoKTt1Z3Q9Y2xhc3N7c3RhdGlje2kodGhpcywiU21hcnRlbnYiKX1jb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZShlKXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShlLm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKGUud2ViVXJsQXJnLGUuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZShlLHIpe2lmKCF0aGlzLmlzTm9kZSl7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBub2RlIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7ZX0uIFRoaXMgZG9lcyBub3QgdGhyb3cuYCk7cmV0dXJufWxldCBhPWF3YWl0IG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHtlfScpYCkoKTtyZXR1cm4gciYmYXdhaXQgcihhKSxhfWFzeW5jIGdldFNhZmVXZWJNb2R1bGUoZSxyKXtpZighdGhpcy5pc0Jyb3dzZXIpe2NvbnNvbGUuZXJyb3IoIllvdSB0cmllZCB0byBsb2FkIGEgd2ViIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQiKTtyZXR1cm59aWYodGhpcy5sb2FkZWRTY3JpcHRzLmluY2x1ZGVzKGUpKXJldHVybiByKCk7dGhpcy5sb2FkZWRTY3JpcHRzLnB1c2goZSk7bGV0IGE9eHQuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKGUpLGEucmVzb2x2ZSgpO2Vsc2V7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7cy5vbmxvYWQ9KCk9PnthLnJlc29sdmUoKX0scy5zcmM9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpfXJldHVybiBhd2FpdCBhLnByb21pc2UscigpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBwcm9jZXNzPCJ1Ij8ibm9kZSI6ImJyb3dzZXIifWdldCBpc0Jyb3dzZXIoKXtyZXR1cm4hdGhpcy5pc05vZGV9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBpc05vZGUoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09Im5vZGUifWdldCBub2RlVmVyc2lvbigpe3JldHVybiBwcm9jZXNzLnZlcnNpb259Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciBwZ3Q9e307VmUocGd0LHtTbWFydGVudjooKT0+dWd0fSk7dmFyIHFpYT11KCgpPT57SGlhKCl9KTt2YXIgRHNhPU50KChiYWUsVXcpPT57dmFyIGVIYT0yMDAsVmlhPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIixqaWE9OTAwNzE5OTI1NDc0MDk5MSxmZ3Q9IltvYmplY3QgQXJndW1lbnRzXSIsdEhhPSJbb2JqZWN0IEFycmF5XSIsVWlhPSJbb2JqZWN0IEJvb2xlYW5dIixXaWE9IltvYmplY3QgRGF0ZV0iLHJIYT0iW29iamVjdCBFcnJvcl0iLGhndD0iW29iamVjdCBGdW5jdGlvbl0iLEdpYT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLG9tZT0iW29iamVjdCBNYXBdIixZaWE9IltvYmplY3QgTnVtYmVyXSIsbWd0PSJbb2JqZWN0IE9iamVjdF0iLEtpYT0iW29iamVjdCBQcm9taXNlXSIsWmlhPSJbb2JqZWN0IFJlZ0V4cF0iLGxtZT0iW29iamVjdCBTZXRdIixRaWE9IltvYmplY3QgU3RyaW5nXSIsWGlhPSJbb2JqZWN0IFN5bWJvbF0iLGdndD0iW29iamVjdCBXZWFrTWFwXSIsSmlhPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsY21lPSJbb2JqZWN0IERhdGFWaWV3XSIsZXNhPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLHRzYT0iW29iamVjdCBGbG9hdDY0QXJyYXldIixyc2E9IltvYmplY3QgSW50OEFycmF5XSIsYXNhPSJbb2JqZWN0IEludDE2QXJyYXldIixpc2E9IltvYmplY3QgSW50MzJBcnJheV0iLHNzYT0iW29iamVjdCBVaW50OEFycmF5XSIsbnNhPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsb3NhPSJbb2JqZWN0IFVpbnQxNkFycmF5XSIsbHNhPSJbb2JqZWN0IFVpbnQzMkFycmF5XSIsYUhhPS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxpSGE9L1x3KiQvLHNIYT0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxuSGE9L14oPzowfFsxLTldXGQqKSQvLHJpPXt9O3JpW2ZndF09cmlbdEhhXT1yaVtKaWFdPXJpW2NtZV09cmlbVWlhXT1yaVtXaWFdPXJpW2VzYV09cmlbdHNhXT1yaVtyc2FdPXJpW2FzYV09cmlbaXNhXT1yaVtvbWVdPXJpW1lpYV09cmlbbWd0XT1yaVtaaWFdPXJpW2xtZV09cmlbUWlhXT1yaVtYaWFdPXJpW3NzYV09cmlbbnNhXT1yaVtvc2FdPXJpW2xzYV09ITAscmlbckhhXT1yaVtoZ3RdPXJpW2dndF09ITE7dmFyIG9IYT10eXBlb2YgZ2xvYmFsPT0ib2JqZWN0IiYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsbEhhPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsTDM9b0hhfHxsSGF8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksY3NhPXR5cGVvZiBiYWU9PSJvYmplY3QiJiZiYWUmJiFiYWUubm9kZVR5cGUmJmJhZSxkc2E9Y3NhJiZ0eXBlb2YgVXc9PSJvYmplY3QiJiZVdyYmIVV3Lm5vZGVUeXBlJiZVdyxjSGE9ZHNhJiZkc2EuZXhwb3J0cz09PWNzYTtmdW5jdGlvbiBkSGEodCxlKXtyZXR1cm4gdC5zZXQoZVswXSxlWzFdKSx0fWkoZEhhLCJhZGRNYXBFbnRyeSIpO2Z1bmN0aW9uIHVIYSh0LGUpe3JldHVybiB0LmFkZChlKSx0fWkodUhhLCJhZGRTZXRFbnRyeSIpO2Z1bmN0aW9uIHBIYSh0LGUpe2Zvcih2YXIgcj0tMSxhPXQ/dC5sZW5ndGg6MDsrK3I8YSYmZSh0W3JdLHIsdCkhPT0hMTspO3JldHVybiB0fWkocEhhLCJhcnJheUVhY2giKTtmdW5jdGlvbiBmSGEodCxlKXtmb3IodmFyIHI9LTEsYT1lLmxlbmd0aCxzPXQubGVuZ3RoOysrcjxhOyl0W3Mrcl09ZVtyXTtyZXR1cm4gdH1pKGZIYSwiYXJyYXlQdXNoIik7ZnVuY3Rpb24gdXNhKHQsZSxyLGEpe3ZhciBzPS0xLG49dD90Lmxlbmd0aDowO2ZvcihhJiZuJiYocj10Wysrc10pOysrczxuOylyPWUocix0W3NdLHMsdCk7cmV0dXJuIHJ9aSh1c2EsImFycmF5UmVkdWNlIik7ZnVuY3Rpb24gaEhhKHQsZSl7Zm9yKHZhciByPS0xLGE9QXJyYXkodCk7KytyPHQ7KWFbcl09ZShyKTtyZXR1cm4gYX1pKGhIYSwiYmFzZVRpbWVzIik7ZnVuY3Rpb24gbUhhKHQsZSl7cmV0dXJuIHQ/LltlXX1pKG1IYSwiZ2V0VmFsdWUiKTtmdW5jdGlvbiBwc2EodCl7dmFyIGU9ITE7aWYodCE9bnVsbCYmdHlwZW9mIHQudG9TdHJpbmchPSJmdW5jdGlvbiIpdHJ5e2U9ISEodCsiIil9Y2F0Y2h7fXJldHVybiBlfWkocHNhLCJpc0hvc3RPYmplY3QiKTtmdW5jdGlvbiBmc2EodCl7dmFyIGU9LTEscj1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24oYSxzKXtyWysrZV09W3MsYV19KSxyfWkoZnNhLCJtYXBUb0FycmF5Iik7ZnVuY3Rpb24gYmd0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0KGUocikpfX1pKGJndCwib3ZlckFyZyIpO2Z1bmN0aW9uIGhzYSh0KXt2YXIgZT0tMSxyPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihhKXtyWysrZV09YX0pLHJ9aShoc2EsInNldFRvQXJyYXkiKTt2YXIgZ0hhPUFycmF5LnByb3RvdHlwZSxiSGE9RnVuY3Rpb24ucHJvdG90eXBlLGRtZT1PYmplY3QucHJvdG90eXBlLHhndD1MM1siX19jb3JlLWpzX3NoYXJlZF9fIl0sbXNhPShmdW5jdGlvbigpe3ZhciB0PS9bXi5dKyQvLmV4ZWMoeGd0JiZ4Z3Qua2V5cyYmeGd0LmtleXMuSUVfUFJPVE98fCIiKTtyZXR1cm4gdD8iU3ltYm9sKHNyYylfMS4iK3Q6IiJ9KSgpLGdzYT1iSGEudG9TdHJpbmcsU2Y9ZG1lLmhhc093blByb3BlcnR5LHVtZT1kbWUudG9TdHJpbmcseEhhPVJlZ0V4cCgiXiIrZ3NhLmNhbGwoU2YpLnJlcGxhY2UoYUhhLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpLGJzYT1jSGE/TDMuQnVmZmVyOnZvaWQgMCx4c2E9TDMuU3ltYm9sLHZzYT1MMy5VaW50OEFycmF5LHZIYT1iZ3QoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCkseUhhPU9iamVjdC5jcmVhdGUsd0hhPWRtZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxrSGE9Z0hhLnNwbGljZSx5c2E9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxTSGE9YnNhP2JzYS5pc0J1ZmZlcjp2b2lkIDAsTUhhPWJndChPYmplY3Qua2V5cyxPYmplY3QpLHZndD1qdyhMMywiRGF0YVZpZXciKSxtYWU9ancoTDMsIk1hcCIpLHlndD1qdyhMMywiUHJvbWlzZSIpLHdndD1qdyhMMywiU2V0Iiksa2d0PWp3KEwzLCJXZWFrTWFwIiksZ2FlPWp3KE9iamVjdCwiY3JlYXRlIiksQ0hhPUNnKHZndCksekhhPUNnKG1hZSksX0hhPUNnKHlndCksVEhhPUNnKHdndCksTEhhPUNnKGtndCksd3NhPXhzYT94c2EucHJvdG90eXBlOnZvaWQgMCxrc2E9d3NhP3dzYS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBTZyh0KXt2YXIgZT0tMSxyPXQ/dC5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrZTxyOyl7dmFyIGE9dFtlXTt0aGlzLnNldChhWzBdLGFbMV0pfX1pKFNnLCJIYXNoIik7ZnVuY3Rpb24gREhhKCl7dGhpcy5fX2RhdGFfXz1nYWU/Z2FlKG51bGwpOnt9fWkoREhhLCJoYXNoQ2xlYXIiKTtmdW5jdGlvbiAkSGEodCl7cmV0dXJuIHRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XX1pKCRIYSwiaGFzaERlbGV0ZSIpO2Z1bmN0aW9uIEFIYSh0KXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKGdhZSl7dmFyIHI9ZVt0XTtyZXR1cm4gcj09PVZpYT92b2lkIDA6cn1yZXR1cm4gU2YuY2FsbChlLHQpP2VbdF06dm9pZCAwfWkoQUhhLCJoYXNoR2V0Iik7ZnVuY3Rpb24gRUhhKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIGdhZT9lW3RdIT09dm9pZCAwOlNmLmNhbGwoZSx0KX1pKEVIYSwiaGFzaEhhcyIpO2Z1bmN0aW9uIElIYSh0LGUpe3ZhciByPXRoaXMuX19kYXRhX187cmV0dXJuIHJbdF09Z2FlJiZlPT09dm9pZCAwP1ZpYTplLHRoaXN9aShJSGEsImhhc2hTZXQiKSxTZy5wcm90b3R5cGUuY2xlYXI9REhhLFNnLnByb3RvdHlwZS5kZWxldGU9JEhhLFNnLnByb3RvdHlwZS5nZXQ9QUhhLFNnLnByb3RvdHlwZS5oYXM9RUhhLFNnLnByb3RvdHlwZS5zZXQ9SUhhO2Z1bmN0aW9uIEQzKHQpe3ZhciBlPS0xLHI9dD90Lmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgYT10W2VdO3RoaXMuc2V0KGFbMF0sYVsxXSl9fWkoRDMsIkxpc3RDYWNoZSIpO2Z1bmN0aW9uIFBIYSgpe3RoaXMuX19kYXRhX189W119aShQSGEsImxpc3RDYWNoZUNsZWFyIik7ZnVuY3Rpb24gTkhhKHQpe3ZhciBlPXRoaXMuX19kYXRhX18scj1wbWUoZSx0KTtpZihyPDApcmV0dXJuITE7dmFyIGE9ZS5sZW5ndGgtMTtyZXR1cm4gcj09YT9lLnBvcCgpOmtIYS5jYWxsKGUsciwxKSwhMH1pKE5IYSwibGlzdENhY2hlRGVsZXRlIik7ZnVuY3Rpb24gT0hhKHQpe3ZhciBlPXRoaXMuX19kYXRhX18scj1wbWUoZSx0KTtyZXR1cm4gcjwwP3ZvaWQgMDplW3JdWzFdfWkoT0hhLCJsaXN0Q2FjaGVHZXQiKTtmdW5jdGlvbiBSSGEodCl7cmV0dXJuIHBtZSh0aGlzLl9fZGF0YV9fLHQpPi0xfWkoUkhhLCJsaXN0Q2FjaGVIYXMiKTtmdW5jdGlvbiBGSGEodCxlKXt2YXIgcj10aGlzLl9fZGF0YV9fLGE9cG1lKHIsdCk7cmV0dXJuIGE8MD9yLnB1c2goW3QsZV0pOnJbYV1bMV09ZSx0aGlzfWkoRkhhLCJsaXN0Q2FjaGVTZXQiKSxEMy5wcm90b3R5cGUuY2xlYXI9UEhhLEQzLnByb3RvdHlwZS5kZWxldGU9TkhhLEQzLnByb3RvdHlwZS5nZXQ9T0hhLEQzLnByb3RvdHlwZS5oYXM9UkhhLEQzLnByb3RvdHlwZS5zZXQ9RkhhO2Z1bmN0aW9uIHF3KHQpe3ZhciBlPS0xLHI9dD90Lmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPHI7KXt2YXIgYT10W2VdO3RoaXMuc2V0KGFbMF0sYVsxXSl9fWkocXcsIk1hcENhY2hlIik7ZnVuY3Rpb24gQkhhKCl7dGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgU2csbWFwOm5ldyhtYWV8fEQzKSxzdHJpbmc6bmV3IFNnfX1pKEJIYSwibWFwQ2FjaGVDbGVhciIpO2Z1bmN0aW9uIEhIYSh0KXtyZXR1cm4gZm1lKHRoaXMsdCkuZGVsZXRlKHQpfWkoSEhhLCJtYXBDYWNoZURlbGV0ZSIpO2Z1bmN0aW9uIHFIYSh0KXtyZXR1cm4gZm1lKHRoaXMsdCkuZ2V0KHQpfWkocUhhLCJtYXBDYWNoZUdldCIpO2Z1bmN0aW9uIFZIYSh0KXtyZXR1cm4gZm1lKHRoaXMsdCkuaGFzKHQpfWkoVkhhLCJtYXBDYWNoZUhhcyIpO2Z1bmN0aW9uIGpIYSh0LGUpe3JldHVybiBmbWUodGhpcyx0KS5zZXQodCxlKSx0aGlzfWkoakhhLCJtYXBDYWNoZVNldCIpLHF3LnByb3RvdHlwZS5jbGVhcj1CSGEscXcucHJvdG90eXBlLmRlbGV0ZT1ISGEscXcucHJvdG90eXBlLmdldD1xSGEscXcucHJvdG90eXBlLmhhcz1WSGEscXcucHJvdG90eXBlLnNldD1qSGE7ZnVuY3Rpb24gVncodCl7dGhpcy5fX2RhdGFfXz1uZXcgRDModCl9aShWdywiU3RhY2siKTtmdW5jdGlvbiBVSGEoKXt0aGlzLl9fZGF0YV9fPW5ldyBEM31pKFVIYSwic3RhY2tDbGVhciIpO2Z1bmN0aW9uIFdIYSh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5kZWxldGUodCl9aShXSGEsInN0YWNrRGVsZXRlIik7ZnVuY3Rpb24gR0hhKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX1pKEdIYSwic3RhY2tHZXQiKTtmdW5jdGlvbiBZSGEodCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfWkoWUhhLCJzdGFja0hhcyIpO2Z1bmN0aW9uIEtIYSh0LGUpe3ZhciByPXRoaXMuX19kYXRhX187aWYociBpbnN0YW5jZW9mIEQzKXt2YXIgYT1yLl9fZGF0YV9fO2lmKCFtYWV8fGEubGVuZ3RoPGVIYS0xKXJldHVybiBhLnB1c2goW3QsZV0pLHRoaXM7cj10aGlzLl9fZGF0YV9fPW5ldyBxdyhhKX1yZXR1cm4gci5zZXQodCxlKSx0aGlzfWkoS0hhLCJzdGFja1NldCIpLFZ3LnByb3RvdHlwZS5jbGVhcj1VSGEsVncucHJvdG90eXBlLmRlbGV0ZT1XSGEsVncucHJvdG90eXBlLmdldD1HSGEsVncucHJvdG90eXBlLmhhcz1ZSGEsVncucHJvdG90eXBlLnNldD1LSGE7ZnVuY3Rpb24gWkhhKHQsZSl7dmFyIHI9Q2d0KHQpfHx5cWEodCk/aEhhKHQubGVuZ3RoLFN0cmluZyk6W10sYT1yLmxlbmd0aCxzPSEhYTtmb3IodmFyIG4gaW4gdCkoZXx8U2YuY2FsbCh0LG4pKSYmIShzJiYobj09Imxlbmd0aCJ8fGdxYShuLGEpKSkmJnIucHVzaChuKTtyZXR1cm4gcn1pKFpIYSwiYXJyYXlMaWtlS2V5cyIpO2Z1bmN0aW9uIFNzYSh0LGUscil7dmFyIGE9dFtlXTsoIShTZi5jYWxsKHQsZSkmJl9zYShhLHIpKXx8cj09PXZvaWQgMCYmIShlIGluIHQpKSYmKHRbZV09cil9aShTc2EsImFzc2lnblZhbHVlIik7ZnVuY3Rpb24gcG1lKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoO3ItLTspaWYoX3NhKHRbcl1bMF0sZSkpcmV0dXJuIHI7cmV0dXJuLTF9aShwbWUsImFzc29jSW5kZXhPZiIpO2Z1bmN0aW9uIFFIYSh0LGUpe3JldHVybiB0JiZNc2EoZSx6Z3QoZSksdCl9aShRSGEsImJhc2VBc3NpZ24iKTtmdW5jdGlvbiBTZ3QodCxlLHIsYSxzLG4sbyl7dmFyIGw7aWYoYSYmKGw9bj9hKHQscyxuLG8pOmEodCkpLGwhPT12b2lkIDApcmV0dXJuIGw7aWYoIWhtZSh0KSlyZXR1cm4gdDt2YXIgYz1DZ3QodCk7aWYoYyl7aWYobD1mcWEodCksIWUpcmV0dXJuIGRxYSh0LGwpfWVsc2V7dmFyIGQ9TWcodCksZj1kPT1oZ3R8fGQ9PUdpYTtpZihrcWEodCkpcmV0dXJuIGFxYSh0LGUpO2lmKGQ9PW1ndHx8ZD09Zmd0fHxmJiYhbil7aWYocHNhKHQpKXJldHVybiBuP3Q6e307aWYobD1ocWEoZj97fTp0KSwhZSlyZXR1cm4gdXFhKHQsUUhhKGwsdCkpfWVsc2V7aWYoIXJpW2RdKXJldHVybiBuP3Q6e307bD1tcWEodCxkLFNndCxlKX19b3x8KG89bmV3IFZ3KTt2YXIgcD1vLmdldCh0KTtpZihwKXJldHVybiBwO2lmKG8uc2V0KHQsbCksIWMpdmFyIGg9cj9wcWEodCk6emd0KHQpO3JldHVybiBwSGEoaHx8dCxmdW5jdGlvbihtLHYpe2gmJih2PW0sbT10W3ZdKSxTc2EobCx2LFNndChtLGUscixhLHYsdCxvKSl9KSxsfWkoU2d0LCJiYXNlQ2xvbmUiKTtmdW5jdGlvbiBYSGEodCl7cmV0dXJuIGhtZSh0KT95SGEodCk6e319aShYSGEsImJhc2VDcmVhdGUiKTtmdW5jdGlvbiBKSGEodCxlLHIpe3ZhciBhPWUodCk7cmV0dXJuIENndCh0KT9hOmZIYShhLHIodCkpfWkoSkhhLCJiYXNlR2V0QWxsS2V5cyIpO2Z1bmN0aW9uIGVxYSh0KXtyZXR1cm4gdW1lLmNhbGwodCl9aShlcWEsImJhc2VHZXRUYWciKTtmdW5jdGlvbiB0cWEodCl7aWYoIWhtZSh0KXx8eHFhKHQpKXJldHVybiExO3ZhciBlPUxzYSh0KXx8cHNhKHQpP3hIYTpzSGE7cmV0dXJuIGUudGVzdChDZyh0KSl9aSh0cWEsImJhc2VJc05hdGl2ZSIpO2Z1bmN0aW9uIHJxYSh0KXtpZighenNhKHQpKXJldHVybiBNSGEodCk7dmFyIGU9W107Zm9yKHZhciByIGluIE9iamVjdCh0KSlTZi5jYWxsKHQscikmJnIhPSJjb25zdHJ1Y3RvciImJmUucHVzaChyKTtyZXR1cm4gZX1pKHJxYSwiYmFzZUtleXMiKTtmdW5jdGlvbiBhcWEodCxlKXtpZihlKXJldHVybiB0LnNsaWNlKCk7dmFyIHI9bmV3IHQuY29uc3RydWN0b3IodC5sZW5ndGgpO3JldHVybiB0LmNvcHkocikscn1pKGFxYSwiY2xvbmVCdWZmZXIiKTtmdW5jdGlvbiBNZ3QodCl7dmFyIGU9bmV3IHQuY29uc3RydWN0b3IodC5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IHZzYShlKS5zZXQobmV3IHZzYSh0KSksZX1pKE1ndCwiY2xvbmVBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIGlxYSh0LGUpe3ZhciByPWU/TWd0KHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3Iocix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX1pKGlxYSwiY2xvbmVEYXRhVmlldyIpO2Z1bmN0aW9uIHNxYSh0LGUscil7dmFyIGE9ZT9yKGZzYSh0KSwhMCk6ZnNhKHQpO3JldHVybiB1c2EoYSxkSGEsbmV3IHQuY29uc3RydWN0b3IpfWkoc3FhLCJjbG9uZU1hcCIpO2Z1bmN0aW9uIG5xYSh0KXt2YXIgZT1uZXcgdC5jb25zdHJ1Y3Rvcih0LnNvdXJjZSxpSGEuZXhlYyh0KSk7cmV0dXJuIGUubGFzdEluZGV4PXQubGFzdEluZGV4LGV9aShucWEsImNsb25lUmVnRXhwIik7ZnVuY3Rpb24gb3FhKHQsZSxyKXt2YXIgYT1lP3IoaHNhKHQpLCEwKTpoc2EodCk7cmV0dXJuIHVzYShhLHVIYSxuZXcgdC5jb25zdHJ1Y3Rvcil9aShvcWEsImNsb25lU2V0Iik7ZnVuY3Rpb24gbHFhKHQpe3JldHVybiBrc2E/T2JqZWN0KGtzYS5jYWxsKHQpKTp7fX1pKGxxYSwiY2xvbmVTeW1ib2wiKTtmdW5jdGlvbiBjcWEodCxlKXt2YXIgcj1lP01ndCh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKHIsdC5ieXRlT2Zmc2V0LHQubGVuZ3RoKX1pKGNxYSwiY2xvbmVUeXBlZEFycmF5Iik7ZnVuY3Rpb24gZHFhKHQsZSl7dmFyIHI9LTEsYT10Lmxlbmd0aDtmb3IoZXx8KGU9QXJyYXkoYSkpOysrcjxhOyllW3JdPXRbcl07cmV0dXJuIGV9aShkcWEsImNvcHlBcnJheSIpO2Z1bmN0aW9uIE1zYSh0LGUscixhKXtyfHwocj17fSk7Zm9yKHZhciBzPS0xLG49ZS5sZW5ndGg7KytzPG47KXt2YXIgbz1lW3NdLGw9YT9hKHJbb10sdFtvXSxvLHIsdCk6dm9pZCAwO1NzYShyLG8sbD09PXZvaWQgMD90W29dOmwpfXJldHVybiByfWkoTXNhLCJjb3B5T2JqZWN0Iik7ZnVuY3Rpb24gdXFhKHQsZSl7cmV0dXJuIE1zYSh0LENzYSh0KSxlKX1pKHVxYSwiY29weVN5bWJvbHMiKTtmdW5jdGlvbiBwcWEodCl7cmV0dXJuIEpIYSh0LHpndCxDc2EpfWkocHFhLCJnZXRBbGxLZXlzIik7ZnVuY3Rpb24gZm1lKHQsZSl7dmFyIHI9dC5fX2RhdGFfXztyZXR1cm4gYnFhKGUpP3JbdHlwZW9mIGU9PSJzdHJpbmciPyJzdHJpbmciOiJoYXNoIl06ci5tYXB9aShmbWUsImdldE1hcERhdGEiKTtmdW5jdGlvbiBqdyh0LGUpe3ZhciByPW1IYSh0LGUpO3JldHVybiB0cWEocik/cjp2b2lkIDB9aShqdywiZ2V0TmF0aXZlIik7dmFyIENzYT15c2E/Ymd0KHlzYSxPYmplY3QpOkNxYSxNZz1lcWE7KHZndCYmTWcobmV3IHZndChuZXcgQXJyYXlCdWZmZXIoMSkpKSE9Y21lfHxtYWUmJk1nKG5ldyBtYWUpIT1vbWV8fHlndCYmTWcoeWd0LnJlc29sdmUoKSkhPUtpYXx8d2d0JiZNZyhuZXcgd2d0KSE9bG1lfHxrZ3QmJk1nKG5ldyBrZ3QpIT1nZ3QpJiYoTWc9aShmdW5jdGlvbih0KXt2YXIgZT11bWUuY2FsbCh0KSxyPWU9PW1ndD90LmNvbnN0cnVjdG9yOnZvaWQgMCxhPXI/Q2cocik6dm9pZCAwO2lmKGEpc3dpdGNoKGEpe2Nhc2UgQ0hhOnJldHVybiBjbWU7Y2FzZSB6SGE6cmV0dXJuIG9tZTtjYXNlIF9IYTpyZXR1cm4gS2lhO2Nhc2UgVEhhOnJldHVybiBsbWU7Y2FzZSBMSGE6cmV0dXJuIGdndH1yZXR1cm4gZX0sImdldFRhZyIpKTtmdW5jdGlvbiBmcWEodCl7dmFyIGU9dC5sZW5ndGgscj10LmNvbnN0cnVjdG9yKGUpO3JldHVybiBlJiZ0eXBlb2YgdFswXT09InN0cmluZyImJlNmLmNhbGwodCwiaW5kZXgiKSYmKHIuaW5kZXg9dC5pbmRleCxyLmlucHV0PXQuaW5wdXQpLHJ9aShmcWEsImluaXRDbG9uZUFycmF5Iik7ZnVuY3Rpb24gaHFhKHQpe3JldHVybiB0eXBlb2YgdC5jb25zdHJ1Y3Rvcj09ImZ1bmN0aW9uIiYmIXpzYSh0KT9YSGEodkhhKHQpKTp7fX1pKGhxYSwiaW5pdENsb25lT2JqZWN0Iik7ZnVuY3Rpb24gbXFhKHQsZSxyLGEpe3ZhciBzPXQuY29uc3RydWN0b3I7c3dpdGNoKGUpe2Nhc2UgSmlhOnJldHVybiBNZ3QodCk7Y2FzZSBVaWE6Y2FzZSBXaWE6cmV0dXJuIG5ldyBzKCt0KTtjYXNlIGNtZTpyZXR1cm4gaXFhKHQsYSk7Y2FzZSBlc2E6Y2FzZSB0c2E6Y2FzZSByc2E6Y2FzZSBhc2E6Y2FzZSBpc2E6Y2FzZSBzc2E6Y2FzZSBuc2E6Y2FzZSBvc2E6Y2FzZSBsc2E6cmV0dXJuIGNxYSh0LGEpO2Nhc2Ugb21lOnJldHVybiBzcWEodCxhLHIpO2Nhc2UgWWlhOmNhc2UgUWlhOnJldHVybiBuZXcgcyh0KTtjYXNlIFppYTpyZXR1cm4gbnFhKHQpO2Nhc2UgbG1lOnJldHVybiBvcWEodCxhLHIpO2Nhc2UgWGlhOnJldHVybiBscWEodCl9fWkobXFhLCJpbml0Q2xvbmVCeVRhZyIpO2Z1bmN0aW9uIGdxYSh0LGUpe3JldHVybiBlPWU/P2ppYSwhIWUmJih0eXBlb2YgdD09Im51bWJlciJ8fG5IYS50ZXN0KHQpKSYmdD4tMSYmdCUxPT0wJiZ0PGV9aShncWEsImlzSW5kZXgiKTtmdW5jdGlvbiBicWEodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIGU9PSJzdHJpbmcifHxlPT0ibnVtYmVyInx8ZT09InN5bWJvbCJ8fGU9PSJib29sZWFuIj90IT09Il9fcHJvdG9fXyI6dD09PW51bGx9aShicWEsImlzS2V5YWJsZSIpO2Z1bmN0aW9uIHhxYSh0KXtyZXR1cm4hIW1zYSYmbXNhIGluIHR9aSh4cWEsImlzTWFza2VkIik7ZnVuY3Rpb24genNhKHQpe3ZhciBlPXQmJnQuY29uc3RydWN0b3Iscj10eXBlb2YgZT09ImZ1bmN0aW9uIiYmZS5wcm90b3R5cGV8fGRtZTtyZXR1cm4gdD09PXJ9aSh6c2EsImlzUHJvdG90eXBlIik7ZnVuY3Rpb24gQ2codCl7aWYodCE9bnVsbCl7dHJ5e3JldHVybiBnc2EuY2FsbCh0KX1jYXRjaHt9dHJ5e3JldHVybiB0KyIifWNhdGNoe319cmV0dXJuIiJ9aShDZywidG9Tb3VyY2UiKTtmdW5jdGlvbiB2cWEodCl7cmV0dXJuIFNndCh0LCEwLCEwKX1pKHZxYSwiY2xvbmVEZWVwIik7ZnVuY3Rpb24gX3NhKHQsZSl7cmV0dXJuIHQ9PT1lfHx0IT09dCYmZSE9PWV9aShfc2EsImVxIik7ZnVuY3Rpb24geXFhKHQpe3JldHVybiB3cWEodCkmJlNmLmNhbGwodCwiY2FsbGVlIikmJighd0hhLmNhbGwodCwiY2FsbGVlIil8fHVtZS5jYWxsKHQpPT1mZ3QpfWkoeXFhLCJpc0FyZ3VtZW50cyIpO3ZhciBDZ3Q9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBUc2EodCl7cmV0dXJuIHQhPW51bGwmJlNxYSh0Lmxlbmd0aCkmJiFMc2EodCl9aShUc2EsImlzQXJyYXlMaWtlIik7ZnVuY3Rpb24gd3FhKHQpe3JldHVybiBNcWEodCkmJlRzYSh0KX1pKHdxYSwiaXNBcnJheUxpa2VPYmplY3QiKTt2YXIga3FhPVNIYXx8enFhO2Z1bmN0aW9uIExzYSh0KXt2YXIgZT1obWUodCk/dW1lLmNhbGwodCk6IiI7cmV0dXJuIGU9PWhndHx8ZT09R2lhfWkoTHNhLCJpc0Z1bmN0aW9uIik7ZnVuY3Rpb24gU3FhKHQpe3JldHVybiB0eXBlb2YgdD09Im51bWJlciImJnQ+LTEmJnQlMT09MCYmdDw9amlhfWkoU3FhLCJpc0xlbmd0aCIpO2Z1bmN0aW9uIGhtZSh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4hIXQmJihlPT0ib2JqZWN0Inx8ZT09ImZ1bmN0aW9uIil9aShobWUsImlzT2JqZWN0Iik7ZnVuY3Rpb24gTXFhKHQpe3JldHVybiEhdCYmdHlwZW9mIHQ9PSJvYmplY3QifWkoTXFhLCJpc09iamVjdExpa2UiKTtmdW5jdGlvbiB6Z3QodCl7cmV0dXJuIFRzYSh0KT9aSGEodCk6cnFhKHQpfWkoemd0LCJrZXlzIik7ZnVuY3Rpb24gQ3FhKCl7cmV0dXJuW119aShDcWEsInN0dWJBcnJheSIpO2Z1bmN0aW9uIHpxYSgpe3JldHVybiExfWkoenFhLCJzdHViRmFsc2UiKSxVdy5leHBvcnRzPXZxYX0pO3ZhciBtbWUsJHNhLGdtZSxfZ3Q9dSgoKT0+e3FpYSgpO3lTKCk7bW1lPUdhKERzYSgpLDEpLCRzYT1HYShBZ2UoKSwxKSxnbWU9JHNhLmRlZmF1bHR9KTtmdW5jdGlvbiBUcWEodCl7cmV0dXJuIHR5cGVvZiBCdWZmZXI8InUiP0J1ZmZlci5mcm9tKHQpLnRvU3RyaW5nKCJiYXNlNjQiKTpidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4udCkpfWZ1bmN0aW9uIExxYSh0KXtpZih0eXBlb2YgQnVmZmVyPCJ1Iil7bGV0IGU9QnVmZmVyLmZyb20odCwiYmFzZTY0Iik7cmV0dXJuIG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpfXJldHVybiBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGF0b2IodCkpLm1hcChlPT5lLmNoYXJDb2RlQXQoMCkpKX1mdW5jdGlvbiBMZ3QodCxlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCxibWUsZSl9ZnVuY3Rpb24gRGd0KHQpe3JldHVybiBKU09OLnBhcnNlKHQsQXNhKX1mdW5jdGlvbiBEcWEodCl7cmV0dXJuIElzYSh0KSYmdC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZUZ3QodC5kYXRhKX1mdW5jdGlvbiAkcWEodCl7cmV0dXJuIElzYSh0KSYmdC50eXBlPT09IkJ1ZmZlciImJihFc2EodC5kYXRhKXx8VGd0KHQuZGF0YSkpfHx0IGluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBFc2EodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gVGd0KHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ9ZnVuY3Rpb24gSXNhKHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsfXZhciBibWUsQXNhLFBzYT11KCgpPT57X2d0KCk7aShUcWEsImJhc2U2NEVuY29kZSIpO2koTHFhLCJiYXNlNjREZWNvZGUiKTtpKExndCwic3RyaW5naWZ5Iik7aShEZ3QsInBhcnNlIik7Ym1lPWkoKHQsZSk9PntpZigkcWEoZSkpe2xldCByO2lmKCJkYXRhImluIGUmJkVzYShlLmRhdGEpKXI9bmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KXI9ZTtlbHNlIHJldHVybiBlO3JldHVybnt0eXBlOiJFbmNvZGVkQnVmZmVyIixkYXRhOiJiYXNlNjQ6IitUcWEocil9fXJldHVybiBlfSwicmVwbGFjZXIiKSxBc2E9aSgodCxlKT0+e2lmKERxYShlKSYmVGd0KGUuZGF0YSkmJmUuZGF0YS5zdGFydHNXaXRoKCJiYXNlNjQ6Iikpe2xldCByPWUuZGF0YS5zbGljZSg3KTtyZXR1cm4gTHFhKHIpfXJldHVybiBlfSwicmV2aXZlciIpO2koRHFhLCJpc0VuY29kZWRCdWZmZXIiKTtpKCRxYSwiaXNCdWZmZXJMaWtlIik7aShFc2EsImlzQXJyYXkiKTtpKFRndCwiaXNTdHJpbmciKTtpKElzYSwiaXNPYmplY3QiKX0pO3ZhciBDZD17fTtWZShDZCx7U21hcnRqc29uOigpPT5BZ3QsZGVlcEVxdWFsSnNvbkxTdHJpbmdzOigpPT5GcWEsZGVlcEVxdWFsT2JqZWN0czooKT0+TnNhLGZvbGREZWM6KCk9PlJxYSxwYXJzZTooKT0+eG1lLHBhcnNlQmFzZTY0OigpPT5PcWEscGFyc2VKc29uTDooKT0+JGd0LHN0YWJsZU9uZVdheVN0cmluZ2lmeTooKT0+SXFhLHN0cmluZ2lmeTooKT0+emcsc3RyaW5naWZ5QmFzZTY0OigpPT5OcWEsc3RyaW5naWZ5SnNvbkw6KCk9PkVxYSxzdHJpbmdpZnlQcmV0dHk6KCk9PlBxYX0pO3ZhciB4bWUsJGd0LEVxYSxJcWEsemcsUHFhLE5xYSxPcWEsQWd0LFJxYSxOc2EsRnFhLE9zYT11KCgpPT57X2d0KCk7UHNhKCk7eG1lPURndCwkZ3Q9aSh0PT50LnNwbGl0KGAKYCkucmVkdWNlKChhLHMpPT57bGV0IG49cy50cmltKCk7cmV0dXJuIG4ubGVuZ3RoPjAmJmEucHVzaCh4bWUobikpLGF9LFtdKSwicGFyc2VKc29uTCIpLEVxYT1pKHQ9PnQubWFwKGU9PnpnKGUpKS5qb2luKGAKYCksInN0cmluZ2lmeUpzb25MIiksSXFhPWkoKHQsZSxyPXt9KT0+e2xldCBhPW5ldyBXZWFrU2V0LHM9aShsPT57aWYobD09PW51bGx8fHR5cGVvZiBsIT0ib2JqZWN0IilyZXR1cm4gbDtsZXQgYz1ibWUoIiIsbCk7aWYoYyYmYy50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgYy5kYXRhPT0ic3RyaW5nIilyZXR1cm4gYztpZihhLmhhcyhsKSlyZXR1cm4iX19jeWNsZV9fIjtpZihhLmFkZChsKSxBcnJheS5pc0FycmF5KGwpKXJldHVybiBsLm1hcChmPT5zKGYpKTtsZXQgZD17fTtmb3IobGV0IGYgb2YgT2JqZWN0LmtleXMobCkpdHJ5e2RbZl09cyhsW2ZdKX1jYXRjaHtkW2ZdPSJfX3Vuc2VyaWFsaXphYmxlX18ifXJldHVybiBkfSwic2FuaXRpemUiKSxuPXModCksbz17Li4ucixjeWNsZXM6ITB9O2lmKGUmJiFvLmNtcCl7bGV0IGw9bmV3IE1hcDtlLmZvckVhY2goKGMsZCk9Pmwuc2V0KGMsZCkpLG8uY21wPShjLGQpPT57bGV0IGY9bC5oYXMoYy5rZXkpP2wuZ2V0KGMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscD1sLmhhcyhkLmtleSk/bC5nZXQoZC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gZiE9PXA/Zi1wOmMua2V5PGQua2V5Py0xOmMua2V5PmQua2V5PzE6MH19cmV0dXJuIGdtZShuLG8pfSwic3RhYmxlT25lV2F5U3RyaW5naWZ5Iiksemc9aSgodCxlLHI9e30pPT57bGV0IGE9TGd0KHQpO3Q9SlNPTi5wYXJzZShhKTtsZXQgcz17Li4ucn07aWYoZSYmIXMuY21wKXtsZXQgbz1uZXcgTWFwO2UuZm9yRWFjaCgobCxjKT0+by5zZXQobCxjKSkscy5jbXA9KGwsYyk9PntsZXQgZD1vLmhhcyhsLmtleSk/by5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxmPW8uaGFzKGMua2V5KT9vLmdldChjLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiBkIT09Zj9kLWY6bC5rZXk8Yy5rZXk/LTE6bC5rZXk+Yy5rZXk/MTowfX1yZXR1cm4gZ21lKHQscyl9LCJzdHJpbmdpZnkiKSxQcWE9aSh0PT57bGV0IGU9emcodCkscj1KU09OLnBhcnNlKGUpO3JldHVybiBKU09OLnN0cmluZ2lmeShyLG51bGwsMil9LCJzdHJpbmdpZnlQcmV0dHkiKSxOcWE9aSgoLi4udCk9PntsZXQgZT16ZyguLi50KTtyZXR1cm4gQnMuYmFzZTY0LmVuY29kZVVyaShlKX0sInN0cmluZ2lmeUJhc2U2NCIpLE9xYT1pKHQ9PntsZXQgZT1Ccy5iYXNlNjQsYT0oZS5kZWNvZGVVcml8fGUuZGVjb2RlKSh0KTtyZXR1cm4geG1lKGEpfSwicGFyc2VCYXNlNjQiKSxBZ3Q9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJTbWFydGpzb24iKX1zdGF0aWMgZW5mb2xkRnJvbU9iamVjdChlKXtsZXQgcj1uZXcgdGhpcyxhPXIuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IHMgaW4gZSlhLmluZGV4T2YocykhPT0tMSYmKHJbc109ZVtzXSk7cmV0dXJuIHJ9c3RhdGljIGVuZm9sZEZyb21Kc29uKGUpe2xldCByPXhtZShlKTtyZXR1cm4gdGhpcy5lbmZvbGRGcm9tT2JqZWN0KHIpfWZvbGRUb09iamVjdCgpe2xldCBlPW5ldyBTZXQ7cmV0dXJuIGUuYWRkKHRoaXMpLHRoaXMuZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9Zm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl7bGV0IHI9e30sYT1pKG49PntpZihuIGluc3RhbmNlb2YgdCl7aWYoZS5oYXMobikpdGhyb3cgbmV3IEVycm9yKCJjeWNsZSBkZXRlY3RlZCIpO3JldHVybiBlLmFkZChuKSxuLmZvbGRUb09iamVjdEludGVybmFsKGUpfXJldHVybiBBcnJheS5pc0FycmF5KG4pP24ubWFwKG89PmEobykpOm1tZS5kZWZhdWx0KG4pfSwiZm9sZFZhbHVlIikscz10aGlzLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBuIG9mIHMpe2xldCBvPXRoaXNbbl07cltuXT1hKG8pfXJldHVybiByfWZvbGRUb0pzb24oKXtsZXQgZT10aGlzLmZvbGRUb09iamVjdCgpO3JldHVybiB6ZyhlKX19LFJxYT1pKCgpPT4odCxlKT0+e3Quc2F2ZWFibGVQcm9wZXJ0aWVzfHwodC5zYXZlYWJsZVByb3BlcnRpZXM9W10pLHQuc2F2ZWFibGVQcm9wZXJ0aWVzLnB1c2goZSl9LCJmb2xkRGVjIiksTnNhPWkoKHQsZSk9PntsZXQgcj16Zyh0KSxhPXpnKGUpO3JldHVybiByPT09YX0sImRlZXBFcXVhbE9iamVjdHMiKSxGcWE9aSgodCxlKT0+e2xldCByPSRndCh0KSxhPSRndChlKTtyZXR1cm4gTnNhKHIsYSl9LCJkZWVwRXF1YWxKc29uTFN0cmluZ3MiKX0pO3ZhciBSc2E9dSgoKT0+e2hvZSgpO3FmKCk7UmlhKCk7TmQoKTtPc2EoKTtHbigpO1pjKCk7eVMoKTtGd2UoKX0pO2Z1bmN0aW9uIEhxYSh0KXtyZXR1cm57cGVlcjp0LGFzeW5jIGdldFRhZ0J5SWQoZSl7aWYoIXQudGFncy5oYXMoZSkpcmV0dXJuO2xldCByPXQuZGF0YS5nZXQoYCR7RWd0fSR7ZX1gKTtyZXR1cm57aWQ6ZSxwYXlsb2FkOnJ9fX19dmFyIEVndCxJZ3QsRnNhPXUoKCk9PntSc2EoKTtFZ3Q9Il9fdHlwZWRzb2NrZXRfdGFnX18iO2koSHFhLCJ3cmFwU21hcnRTZXJ2ZVBlZXIiKTtJZ3Q9Y2xhc3MgdHtzdGF0aWN7aSh0aGlzLCJUeXBlZFNvY2tldCIpfXN0YXRpYyBhc3luYyBjcmVhdGVDbGllbnQoZSxyLGE9e30pe2xldCBuPXsuLi57YXV0b1JlY29ubmVjdDohMCxtYXhSZXRyaWVzOjEwMCxpbml0aWFsQmFja29mZk1zOjFlMyxtYXhCYWNrb2ZmTXM6NmU0fSwuLi5hfSxvPW5ldyB0KCJjbGllbnQiLGUpO3JldHVybiBvLmNsaWVudE9wdGlvbnM9bixvLnNlcnZlclVybD1yLG8uY3VycmVudEJhY2tvZmY9bi5pbml0aWFsQmFja29mZk1zLGF3YWl0IG8uY29ubmVjdCgpLG99c3RhdGlje3RoaXMudXNlV2luZG93TG9jYXRpb25PcmlnaW5Vcmw9KCk9PkgyLlNtYXJ0dXJsLmNyZWF0ZUZyb21VcmwoZ2xvYmFsVGhpcy5sb2NhdGlvbi5vcmlnaW4pLnRvU3RyaW5nKCl9c3RhdGljIGZyb21TbWFydFNlcnZlKGUscil7bGV0IGE9bmV3IE1hcDt0LnJlZ2lzdGVyVGFnSGFuZGxlcnMocik7bGV0IHM9bmV3IHQoInNlcnZlciIscik7cmV0dXJuIHMuc21hcnRTZXJ2ZVJlZj1lLHMuc21hcnRTZXJ2ZUNvbm5lY3Rpb25XcmFwcGVycz1hLHN9c3RhdGljIHJlZ2lzdGVyVGFnSGFuZGxlcnMoZSl7ZS5hZGRUeXBlZEhhbmRsZXIobmV3IG0xLlR5cGVkSGFuZGxlcigiX190eXBlZHNvY2tldF9zZXRUYWciLGFzeW5jKHIsYSk9PntsZXQgcz1hPy5sb2NhbERhdGE/LnBlZXI7cmV0dXJuIHM/KHMudGFncy5hZGQoci5uYW1lKSxzLmRhdGEuc2V0KGAke0VndH0ke3IubmFtZX1gLHIucGF5bG9hZCkse3N1Y2Nlc3M6ITB9KTooY29uc29sZS53YXJuKCJzZXRUYWc6IE5vIHBlZXIgZm91bmQgaW4gcmVxdWVzdCBjb250ZXh0Iikse3N1Y2Nlc3M6ITF9KX0pKSxlLmFkZFR5cGVkSGFuZGxlcihuZXcgbTEuVHlwZWRIYW5kbGVyKCJfX3R5cGVkc29ja2V0X3JlbW92ZVRhZyIsYXN5bmMocixhKT0+e2xldCBzPWE/LmxvY2FsRGF0YT8ucGVlcjtyZXR1cm4gcz8ocy50YWdzLmRlbGV0ZShyLm5hbWUpLHMuZGF0YS5kZWxldGUoYCR7RWd0fSR7ci5uYW1lfWApLHtzdWNjZXNzOiEwfSk6KGNvbnNvbGUud2FybigicmVtb3ZlVGFnOiBObyBwZWVyIGZvdW5kIGluIHJlcXVlc3QgY29udGV4dCIpLHtzdWNjZXNzOiExfSl9KSl9Y29uc3RydWN0b3IoZSxyKXt0aGlzLnN0YXR1c1N1YmplY3Q9bmV3IG9hLnJ4anMuU3ViamVjdCx0aGlzLmNvbm5lY3Rpb25TdGF0dXM9Im5ldyIsdGhpcy53ZWJzb2NrZXQ9bnVsbCx0aGlzLmNsaWVudE9wdGlvbnM9bnVsbCx0aGlzLnNlcnZlclVybD0iIix0aGlzLnJldHJ5Q291bnQ9MCx0aGlzLmN1cnJlbnRCYWNrb2ZmPTFlMyx0aGlzLnBlbmRpbmdSZXF1ZXN0cz1uZXcgTWFwLHRoaXMuc21hcnRTZXJ2ZVJlZj1udWxsLHRoaXMuc21hcnRTZXJ2ZUNvbm5lY3Rpb25XcmFwcGVycz1uZXcgTWFwLHRoaXMuc2lkZT1lLHRoaXMudHlwZWRyb3V0ZXI9cn1hc3luYyBjb25uZWN0KCl7bGV0IGU9eHQuZGVmZXIoKTt0aGlzLnVwZGF0ZVN0YXR1cygiY29ubmVjdGluZyIpO2xldCByPXRoaXMudG9XZWJTb2NrZXRVcmwodGhpcy5zZXJ2ZXJVcmwpO2NvbnNvbGUubG9nKGBUeXBlZFNvY2tldCBjb25uZWN0aW5nIHRvICR7cn0uLi5gKSx0aGlzLndlYnNvY2tldD1uZXcgV2ViU29ja2V0KHIpO2xldCBhPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbm5lY3Rpb25TdGF0dXMhPT0iY29ubmVjdGVkIiYmKGNvbnNvbGUud2FybigiVHlwZWRTb2NrZXQgY29ubmVjdGlvbiB0aW1lb3V0IiksdGhpcy53ZWJzb2NrZXQ/LmNsb3NlKCksZS5yZWplY3QobmV3IEVycm9yKCJDb25uZWN0aW9uIHRpbWVvdXQiKSkpfSwxZTQpO3RoaXMud2Vic29ja2V0Lm9ub3Blbj0oKT0+e2NsZWFyVGltZW91dChhKSxjb25zb2xlLmxvZygiVHlwZWRTb2NrZXQgY29ubmVjdGVkISIpLHRoaXMudXBkYXRlU3RhdHVzKCJjb25uZWN0ZWQiKSx0aGlzLnJldHJ5Q291bnQ9MCx0aGlzLmN1cnJlbnRCYWNrb2ZmPXRoaXMuY2xpZW50T3B0aW9ucz8uaW5pdGlhbEJhY2tvZmZNcz8/MWUzLGUucmVzb2x2ZSgpfSx0aGlzLndlYnNvY2tldC5vbm1lc3NhZ2U9YXN5bmMgcz0+e2F3YWl0IHRoaXMuaGFuZGxlTWVzc2FnZShzLmRhdGEpfSx0aGlzLndlYnNvY2tldC5vbmNsb3NlPSgpPT57Y2xlYXJUaW1lb3V0KGEpLHRoaXMuaGFuZGxlRGlzY29ubmVjdCgpfSx0aGlzLndlYnNvY2tldC5vbmVycm9yPXM9Pntjb25zb2xlLmVycm9yKCJUeXBlZFNvY2tldCBXZWJTb2NrZXQgZXJyb3I6IixzKX07dHJ5e2F3YWl0IGUucHJvbWlzZX1jYXRjaChzKXtpZihjbGVhclRpbWVvdXQoYSksdGhpcy5jbGllbnRPcHRpb25zPy5hdXRvUmVjb25uZWN0KWF3YWl0IHRoaXMuc2NoZWR1bGVSZWNvbm5lY3QoKTtlbHNlIHRocm93IHN9fXRvV2ViU29ja2V0VXJsKGUpe2xldCByPW5ldyBVUkwoZSk7cmV0dXJuYCR7ci5wcm90b2NvbD09PSJodHRwczoiPyJ3c3M6Ijoid3M6In0vLyR7ci5ob3N0fSR7ci5wYXRobmFtZX1gfWFzeW5jIGhhbmRsZU1lc3NhZ2UoZSl7dHJ5e2xldCByPXR5cGVvZiBlPT0ic3RyaW5nIj9lOm5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShlKSxhPUNkLnBhcnNlKHIpO2lmKGEuY29ycmVsYXRpb24/LmlkJiZ0aGlzLnBlbmRpbmdSZXF1ZXN0cy5oYXMoYS5jb3JyZWxhdGlvbi5pZCkpe2xldCBuPXRoaXMucGVuZGluZ1JlcXVlc3RzLmdldChhLmNvcnJlbGF0aW9uLmlkKTt0aGlzLnBlbmRpbmdSZXF1ZXN0cy5kZWxldGUoYS5jb3JyZWxhdGlvbi5pZCksbi5yZXNvbHZlKGEpO3JldHVybn1sZXQgcz1hd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2UoYSk7cyYmdGhpcy53ZWJzb2NrZXQ/LnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTiYmdGhpcy53ZWJzb2NrZXQuc2VuZChDZC5zdHJpbmdpZnkocykpfWNhdGNoKHIpe2NvbnNvbGUuZXJyb3IoIlR5cGVkU29ja2V0IGZhaWxlZCB0byBwcm9jZXNzIG1lc3NhZ2U6IixyKX19aGFuZGxlRGlzY29ubmVjdCgpe2lmKHRoaXMuY29ubmVjdGlvblN0YXR1cyE9PSJkaXNjb25uZWN0ZWQiKXt0aGlzLnVwZGF0ZVN0YXR1cygiZGlzY29ubmVjdGVkIik7Zm9yKGxldFtlLHJdb2YgdGhpcy5wZW5kaW5nUmVxdWVzdHMpci5yZWplY3QobmV3IEVycm9yKCJUeXBlZFNvY2tldCBkaXNjb25uZWN0ZWQiKSk7dGhpcy5wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKSx0aGlzLmNsaWVudE9wdGlvbnM/LmF1dG9SZWNvbm5lY3QmJnRoaXMucmV0cnlDb3VudDx0aGlzLmNsaWVudE9wdGlvbnMubWF4UmV0cmllcyYmdGhpcy5zY2hlZHVsZVJlY29ubmVjdCgpfX1hc3luYyBzY2hlZHVsZVJlY29ubmVjdCgpe2lmKCF0aGlzLmNsaWVudE9wdGlvbnMpcmV0dXJuO3RoaXMudXBkYXRlU3RhdHVzKCJyZWNvbm5lY3RpbmciKSx0aGlzLnJldHJ5Q291bnQrKztsZXQgZT10aGlzLmN1cnJlbnRCYWNrb2ZmKi4yKihNYXRoLnJhbmRvbSgpKjItMSkscj1NYXRoLm1pbih0aGlzLmN1cnJlbnRCYWNrb2ZmK2UsdGhpcy5jbGllbnRPcHRpb25zLm1heEJhY2tvZmZNcyk7Y29uc29sZS5sb2coYFR5cGVkU29ja2V0IHJlY29ubmVjdGluZyBpbiAke01hdGgucm91bmQocil9bXMgKGF0dGVtcHQgJHt0aGlzLnJldHJ5Q291bnR9LyR7dGhpcy5jbGllbnRPcHRpb25zLm1heFJldHJpZXN9KWApLGF3YWl0IEt0LmRlbGF5Rm9yKHIpLHRoaXMuY3VycmVudEJhY2tvZmY9TWF0aC5taW4odGhpcy5jdXJyZW50QmFja29mZioyLHRoaXMuY2xpZW50T3B0aW9ucy5tYXhCYWNrb2ZmTXMpO3RyeXthd2FpdCB0aGlzLmNvbm5lY3QoKX1jYXRjaChhKXtjb25zb2xlLmVycm9yKCJUeXBlZFNvY2tldCByZWNvbm5lY3Rpb24gZmFpbGVkOiIsYSl9fXVwZGF0ZVN0YXR1cyhlKXt0aGlzLmNvbm5lY3Rpb25TdGF0dXMhPT1lJiYodGhpcy5jb25uZWN0aW9uU3RhdHVzPWUsdGhpcy5zdGF0dXNTdWJqZWN0Lm5leHQoZSkpfWFzeW5jIHNlbmRSZXF1ZXN0KGUpe2lmKCF0aGlzLndlYnNvY2tldHx8dGhpcy53ZWJzb2NrZXQucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOKXRocm93IG5ldyBFcnJvcigiV2ViU29ja2V0IG5vdCBjb25uZWN0ZWQiKTtlLmNvcnJlbGF0aW9ufHw9e2lkOkJzLmNyZWF0ZS5jcmVhdGVDcnlwdG9SYW5kb21TdHJpbmcoKSxwaGFzZToicmVxdWVzdCJ9O2xldCByPWUuY29ycmVsYXRpb24uaWQ7cmV0dXJuIG5ldyBQcm9taXNlKChhLHMpPT57bGV0IG49c2V0VGltZW91dCgoKT0+e3RoaXMucGVuZGluZ1JlcXVlc3RzLmRlbGV0ZShyKSxzKG5ldyBFcnJvcigiUmVxdWVzdCB0aW1lb3V0IikpfSwzZTQpO3RoaXMucGVuZGluZ1JlcXVlc3RzLnNldChyLHtyZXNvbHZlOmkobz0+e2NsZWFyVGltZW91dChuKSxhKG8pfSwicmVzb2x2ZSIpLHJlamVjdDppKG89PntjbGVhclRpbWVvdXQobikscyhvKX0sInJlamVjdCIpfSksdGhpcy53ZWJzb2NrZXQuc2VuZChDZC5zdHJpbmdpZnkoZSkpfSl9Y3JlYXRlVHlwZWRSZXF1ZXN0KGUscil7bGV0IGE9aShhc3luYyBzPT57aWYodGhpcy5zaWRlPT09ImNsaWVudCIpcmV0dXJuIHRoaXMuc2VuZFJlcXVlc3Qocyk7aWYoIXRoaXMuc21hcnRTZXJ2ZVJlZil0aHJvdyBuZXcgRXJyb3IoIlNlcnZlciBub3QgaW5pdGlhbGl6ZWQiKTtsZXQgbj1yO2lmKCFuKXtsZXQgbD10aGlzLnNtYXJ0U2VydmVSZWYuZ2V0V2ViU29ja2V0Q29ubmVjdGlvbnMoKTtpZihsLmxlbmd0aD09PTEpe2xldCBjPWxbMF07bj10aGlzLmdldE9yQ3JlYXRlV3JhcHBlcihjKX1lbHNlIHRocm93IGwubGVuZ3RoPT09MD9uZXcgRXJyb3IoIk5vIFdlYlNvY2tldCBjb25uZWN0aW9ucyBhdmFpbGFibGUiKTpuZXcgRXJyb3IoIk11bHRpcGxlIGNvbm5lY3Rpb25zIGF2YWlsYWJsZSAtIHNwZWNpZnkgdGFyZ2V0Q29ubmVjdGlvbiIpfWxldCBvPWF3YWl0IHRoaXMudHlwZWRyb3V0ZXIuZmlyZUV2ZW50SW50ZXJlc3RNYXAuYWRkSW50ZXJlc3Qocy5jb3JyZWxhdGlvbi5pZCxzKTtyZXR1cm4gbi5wZWVyLnNlbmQoQ2Quc3RyaW5naWZ5KHMpKSxhd2FpdCBvLmludGVyZXN0RnVsbGZpbGxlZH0sInBvc3RNZXRob2QiKTtyZXR1cm4gbmV3IG0xLlR5cGVkUmVxdWVzdChuZXcgbTEuVHlwZWRUYXJnZXQoe3Bvc3RNZXRob2Q6YX0pLGUpfWdldFN0YXR1cygpe3JldHVybiB0aGlzLmNvbm5lY3Rpb25TdGF0dXN9YXN5bmMgc3RvcCgpe3RoaXMuc2lkZT09PSJjbGllbnQiPyh0aGlzLmNsaWVudE9wdGlvbnMmJih0aGlzLmNsaWVudE9wdGlvbnMuYXV0b1JlY29ubmVjdD0hMSksdGhpcy53ZWJzb2NrZXQmJih0aGlzLndlYnNvY2tldC5jbG9zZSgpLHRoaXMud2Vic29ja2V0PW51bGwpLHRoaXMucGVuZGluZ1JlcXVlc3RzLmNsZWFyKCkpOnRoaXMuc21hcnRTZXJ2ZUNvbm5lY3Rpb25XcmFwcGVycy5jbGVhcigpfWFzeW5jIHNldFRhZyhlLHIpe2lmKHRoaXMuc2lkZSE9PSJjbGllbnQiKXRocm93IG5ldyBFcnJvcigic2V0VGFnIGlzIG9ubHkgYXZhaWxhYmxlIG9uIGNsaWVudHMiKTtpZighKGF3YWl0IHRoaXMuY3JlYXRlVHlwZWRSZXF1ZXN0KCJfX3R5cGVkc29ja2V0X3NldFRhZyIpLmZpcmUoe25hbWU6ZSxwYXlsb2FkOnJ9KSkuc3VjY2Vzcyl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBzZXQgdGFnIG9uIHNlcnZlciIpfWFzeW5jIHJlbW92ZVRhZyhlKXtpZih0aGlzLnNpZGUhPT0iY2xpZW50Iil0aHJvdyBuZXcgRXJyb3IoInJlbW92ZVRhZyBpcyBvbmx5IGF2YWlsYWJsZSBvbiBjbGllbnRzIik7aWYoIShhd2FpdCB0aGlzLmNyZWF0ZVR5cGVkUmVxdWVzdCgiX190eXBlZHNvY2tldF9yZW1vdmVUYWciKS5maXJlKHtuYW1lOmV9KSkuc3VjY2Vzcyl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byByZW1vdmUgdGFnIG9uIHNlcnZlciIpfWdldE9yQ3JlYXRlV3JhcHBlcihlKXtsZXQgcj10aGlzLnNtYXJ0U2VydmVDb25uZWN0aW9uV3JhcHBlcnMuZ2V0KGUuaWQpO3JldHVybiByfHwocj1IcWEoZSksdGhpcy5zbWFydFNlcnZlQ29ubmVjdGlvbldyYXBwZXJzLnNldChlLmlkLHIpKSxyfWFzeW5jIGZpbmRBbGxUYXJnZXRDb25uZWN0aW9ucyhlKXtpZih0aGlzLnNpZGUhPT0ic2VydmVyInx8IXRoaXMuc21hcnRTZXJ2ZVJlZil0aHJvdyBuZXcgRXJyb3IoImZpbmRBbGxUYXJnZXRDb25uZWN0aW9ucyBpcyBvbmx5IGF2YWlsYWJsZSBvbiBzZXJ2ZXJzIik7bGV0IHI9W107Zm9yKGxldCBhIG9mIHRoaXMuc21hcnRTZXJ2ZVJlZi5nZXRXZWJTb2NrZXRDb25uZWN0aW9ucygpKXtsZXQgcz10aGlzLmdldE9yQ3JlYXRlV3JhcHBlcihhKTthd2FpdCBlKHMpJiZyLnB1c2gocyl9cmV0dXJuIHJ9YXN5bmMgZmluZFRhcmdldENvbm5lY3Rpb24oZSl7cmV0dXJuKGF3YWl0IHRoaXMuZmluZEFsbFRhcmdldENvbm5lY3Rpb25zKGUpKVswXX1hc3luYyBmaW5kQWxsVGFyZ2V0Q29ubmVjdGlvbnNCeVRhZyhlLHIpe2lmKHRoaXMuc2lkZSE9PSJzZXJ2ZXIifHwhdGhpcy5zbWFydFNlcnZlUmVmKXRocm93IG5ldyBFcnJvcigiZmluZEFsbFRhcmdldENvbm5lY3Rpb25zQnlUYWcgaXMgb25seSBhdmFpbGFibGUgb24gc2VydmVycyIpO2xldCBhPXRoaXMuc21hcnRTZXJ2ZVJlZi5nZXRXZWJTb2NrZXRDb25uZWN0aW9uc0J5VGFnKGUpLHM9W107Zm9yKGxldCBuIG9mIGEpe2xldCBvPXRoaXMuZ2V0T3JDcmVhdGVXcmFwcGVyKG4pO2lmKHIhPT12b2lkIDApe2xldCBsPWF3YWl0IG8uZ2V0VGFnQnlJZChlKTtpZihDZC5zdHJpbmdpZnkobD8ucGF5bG9hZCkhPT1DZC5zdHJpbmdpZnkocikpY29udGludWV9cy5wdXNoKG8pfXJldHVybiBzfWFzeW5jIGZpbmRUYXJnZXRDb25uZWN0aW9uQnlUYWcoZSxyKXtyZXR1cm4oYXdhaXQgdGhpcy5maW5kQWxsVGFyZ2V0Q29ubmVjdGlvbnNCeVRhZyhlLHIpKVswXX19fSk7dmFyICQzPXt9O1ZlKCQzLHtUeXBlZFNvY2tldDooKT0+SWd0fSk7dmFyIEJzYT11KCgpPT57RnNhKCl9KTt2YXIgY3QsbzE9dSgoKT0+e05vKCk7VDl0KCk7JGlhKCk7QnNhKCk7Y3Q9UzF9KTt2YXIgU24sSHNhPXUoKCk9PntObygpO1NuPSRyYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWFyZ2luOiBhdXRvOwogICAgbWF4LXdpZHRoOiAxMjgwcHg7CiAgICBwYWRkaW5nOiAxNnB4IDE2cHg7CiAgfQpgfSk7dmFyIHFzYSxQZ3QscXFhLHhhZSxWc2E9dSgoKT0+e05vKCk7cXNhPVt2aSgib2Itc2VjdGlvbmhlYWRpbmciKV07eGFlPWNsYXNzIGV4dGVuZHMocXFhPXlpKXtzdGF0aWN7aSh0aGlzLCJPYlNlY3Rpb25IZWFkaW5nIil9c3RhdGljIHN0eWxlcz1bb3IuZGVmYXVsdFN0eWxlcywkcmAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgLmhlYWRpbmcgewogICAgICAgIGZvbnQtZmFtaWx5OiAnQ2FsIFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke29yLmJkVGhlbWUoIiMxMTEiLCIjZmZmIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gUWVgCiAgICAgIDxoMSBjbGFzcz0iaGVhZGluZyI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2gxPgogICAgYH19O1BndD0kaShxcWEpLHhhZT1EdChQZ3QsMCwiT2JTZWN0aW9uSGVhZGluZyIscXNhLHhhZSksWGUoUGd0LDEseGFlKX0pO3ZhciBSYz11KCgpPT57SHNhKCk7VnNhKCl9KTt2YXIgam49dSgoKT0+e3FmKCl9KTt2YXIganNhPXUoKCk9Pnt9KTt2YXIgVXNhPXUoKCk9Pnt9KTt2YXIgV3NhPXUoKCk9Pnt9KTt2YXIgR3NhPXUoKCk9Pnt9KTt2YXIgWXNhPXUoKCk9Pnt9KTt2YXIgS3NhPXUoKCk9Pnt9KTt2YXIgVnFhLFpzYT11KCgpPT57VnFhPXtzdGFuZGFyZDp7aG91cmx5OjAsZGFpbHk6Nyx3ZWVrbHk6NCxtb250aGx5OjEyfSxmcmVxdWVudDp7aG91cmx5OjI0LGRhaWx5Ojcsd2Vla2x5OjQsbW9udGhseToxMn0sbWluaW1hbDp7aG91cmx5OjAsZGFpbHk6Myx3ZWVrbHk6Mixtb250aGx5OjZ9LGxvbmd0ZXJtOntob3VybHk6MCxkYWlseToxNCx3ZWVrbHk6OCxtb250aGx5OjI0fX19KTt2YXIgUXNhPXUoKCk9Pnt9KTt2YXIgWHNhPXUoKCk9Pnt9KTt2YXIgTmd0PXt9O1ZlKE5ndCx7UkVURU5USU9OX1BSRVNFVFM6KCk9PlZxYX0pO3ZhciBVbj11KCgpPT57anNhKCk7VXNhKCk7V3NhKCk7R3NhKCk7WXNhKCk7S3NhKCk7WnNhKCk7UXNhKCk7WHNhKCl9KTt2YXIgSnNhPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgZW5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgdG5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgcm5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgYW5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgaW5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgc25hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgbm5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgb25hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgbG5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgY25hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgZG5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgdW5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgcG5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgZm5hPXUoKCk9PntqbigpO1VuKCl9KTt2YXIgaG5hPXt9O3ZhciBtbmE9dSgoKT0+e0pzYSgpO2VuYSgpO3RuYSgpO3JuYSgpO2FuYSgpO2luYSgpO3NuYSgpO25uYSgpO29uYSgpO2xuYSgpO2NuYSgpO2RuYSgpO3VuYSgpO3BuYSgpO2ZuYSgpfSk7dmFyIEd3PXUoKCk9PntqbigpO1VuKCk7bW5hKCl9KTthc3luYyBmdW5jdGlvbiBVcWEoKXtpZighX2cpdHJ5e19nPWF3YWl0ICQzLlR5cGVkU29ja2V0LmNyZWF0ZUNsaWVudCh2YWUsJDMuVHlwZWRTb2NrZXQudXNlV2luZG93TG9jYXRpb25PcmlnaW5VcmwoKSksYXdhaXQgX2cuc2V0VGFnKCJyb2xlIiwib3BzX2Rhc2hib2FyZCIpLGNvbnNvbGUubG9nKCJUeXBlZFNvY2tldCBkYXNoYm9hcmQgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCIpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIlR5cGVkU29ja2V0IGNvbm5lY3Rpb24gZmFpbGVkOiIsdCksX2c9bnVsbH19YXN5bmMgZnVuY3Rpb24gV3FhKCl7aWYoX2cpe3RyeXthd2FpdCBfZy5kaXNjb25uZWN0KCl9Y2F0Y2h7fV9nPW51bGx9fXZhciBFMyxHaSx6ZCxHdCxRcixCYyxGYyxubixsMSx4bCxpcix4bmEsdm1lLEt3LHltZSx2bmEsUmd0LHluYSx3bmEsa25hLFNuYSxNbmEsQ25hLHdtZSxGZ3QsQmd0LGttZSx6bmEsSGd0LHlhZSx3YWUsX25hLFRuYSxxZ3QsVmd0LGpndCxTbWUsTG5hLE1tZSxEbmEsJG5hLGNOMSxBbmEsZE4xLEVuYSx1TjEsSW5hLFVndCxrYWUsUG5hLE5uYSxPbmEsUm5hLHBOMSxmTjEsaE4xLFl3LGpxYSxPZ3QsX2csdmFlLGduYSxibmEsRm5hLEJuYSxDbWUsSG5hLHAyPXUoYXN5bmMoKT0+e28xKCk7R3coKTtFMz1uZXcgY3QucGx1Z2lucy5zbWFydHN0YXRlLlNtYXJ0c3RhdGUsR2k9YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJsb2dpbiIse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX0sInBlcnNpc3RlbnQiKSx6ZD1hd2FpdCBFMy5nZXRTdGF0ZVBhcnQoInN5c3RlbSIse3N0YXR1czpudWxsfSwic29mdCIpLEd0PWF3YWl0IEUzLmdldFN0YXRlUGFydCgic2VydmljZXMiLHtzZXJ2aWNlczpbXSxjdXJyZW50U2VydmljZTpudWxsLGN1cnJlbnRTZXJ2aWNlTG9nczpbXSxjdXJyZW50U2VydmljZVN0YXRzOm51bGwscGxhdGZvcm1TZXJ2aWNlczpbXSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6W119LCJzb2Z0IiksUXI9YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJuZXR3b3JrIix7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119LCJzb2Z0IiksQmM9YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJyZWdpc3RyaWVzIix7dG9rZW5zOltdLHJlZ2lzdHJ5U3RhdHVzOm51bGx9LCJzb2Z0IiksRmM9YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJiYWNrdXBzIix7YmFja3VwczpbXSxzY2hlZHVsZXM6W119LCJzb2Z0Iiksbm49YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJzZXR0aW5ncyIse3NldHRpbmdzOm51bGwsYmFja3VwUGFzc3dvcmRDb25maWd1cmVkOiExLG1hbmFnZWREY1JvdXRlclN0YXR1czpudWxsfSwic29mdCIpLGwxPWF3YWl0IEUzLmdldFN0YXRlUGFydCgiYXBwU3RvcmUiLHthcHBzOltdLHVwZ3JhZGVhYmxlU2VydmljZXM6W10sdXBncmFkZU9wZXJhdGlvbnM6W119LCJzb2Z0IikseGw9YXdhaXQgRTMuZ2V0U3RhdGVQYXJ0KCJ1aSIse2FjdGl2ZVZpZXc6ImRhc2hib2FyZCIsYWN0aXZlU3VidmlldzpudWxsLGF1dG9SZWZyZXNoOiEwLHJlZnJlc2hJbnRlcnZhbDozZTR9KSxpcj1pKCgpPT4oe2lkZW50aXR5OkdpLmdldFN0YXRlKCkuaWRlbnRpdHl9KSwiZ2V0QWN0aW9uQ29udGV4dCIpLHhuYT1HaS5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e3RyeXtyZXR1cm57aWRlbnRpdHk6KGF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJhZG1pbkxvZ2luV2l0aFVzZXJuYW1lQW5kUGFzc3dvcmQiKS5maXJlKHt1c2VybmFtZTplLnVzZXJuYW1lLHBhc3N3b3JkOmUucGFzc3dvcmR9KSkuaWRlbnRpdHksaXNMb2dnZWRJbjohMH19Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkxvZ2luIGZhaWxlZDoiLHIpLHtpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9fX0pLHZtZT1HaS5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2UuaWRlbnRpdHkmJmF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJhZG1pbkxvZ291dCIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KX1jYXRjaChyKXtjb25zb2xlLmVycm9yKCJMb2dvdXQgZXJyb3I6IixyKX1yZXR1cm57aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfX0pLEt3PXpkLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7cmV0dXJue3N0YXR1czooYXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFN5c3RlbVN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KSkuc3RhdHVzfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHN5c3RlbSBzdGF0dXM6IixyKSx0LmdldFN0YXRlKCl9fSkseW1lPUd0LmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2VydmljZXM6YS5zZXJ2aWNlc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlczoiLHIpLHQuZ2V0U3RhdGUoKX19KSx2bmE9R3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXtsZXQgcz1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxjdXJyZW50U2VydmljZTpzLnNlcnZpY2V9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2VydmljZToiLGEpLHQuZ2V0U3RhdGUoKX19KSxSZ3Q9R3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXthd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY3JlYXRlU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZUNvbmZpZzplLmNvbmZpZ30pO2xldCBuPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXJ2aWNlcyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLHNlcnZpY2VzOm4uc2VydmljZXN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIHNlcnZpY2U6IixhKSx0LmdldFN0YXRlKCl9fSkseW5hPUd0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IHI9aXIoKTt0cnl7YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImRlbGV0ZVNlcnZpY2UiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHNlcnZpY2VOYW1lOmUubmFtZX0pO2xldCBzPXQuZ2V0U3RhdGUoKTtyZXR1cm57Li4ucyxzZXJ2aWNlczpzLnNlcnZpY2VzLmZpbHRlcihuPT5uLm5hbWUhPT1lLm5hbWUpLGN1cnJlbnRTZXJ2aWNlOm51bGx9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIHNlcnZpY2U6IixhKSx0LmdldFN0YXRlKCl9fSksd25hPUd0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IHI9aXIoKTt0cnl7YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInN0YXJ0U2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7bGV0IG49YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2VydmljZXM6bi5zZXJ2aWNlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdGFydCBzZXJ2aWNlOiIsYSksdC5nZXRTdGF0ZSgpfX0pLGtuYT1HdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdG9wU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7bGV0IG49YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2VydmljZXM6bi5zZXJ2aWNlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdG9wIHNlcnZpY2U6IixhKSx0LmdldFN0YXRlKCl9fSksU25hPUd0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IHI9aXIoKTt0cnl7YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInJlc3RhcnRTZXJ2aWNlIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxzZXJ2aWNlTmFtZTplLm5hbWV9KTtsZXQgbj1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZXMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxzZXJ2aWNlczpuLnNlcnZpY2VzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlc3RhcnQgc2VydmljZToiLGEpLHQuZ2V0U3RhdGUoKX19KSxNbmE9R3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXtsZXQgcz1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VydmljZUxvZ3MiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHNlcnZpY2VOYW1lOmUubmFtZSx0YWlsOmUubGluZXN8fDIwMH0pO3JldHVybnsuLi50LmdldFN0YXRlKCksY3VycmVudFNlcnZpY2VMb2dzOnMubG9nc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlIGxvZ3M6IixhKSx0LmdldFN0YXRlKCl9fSksQ25hPUd0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IHI9aXIoKTt0cnl7bGV0IHM9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlcnZpY2VTdGF0cyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZU5hbWU6ZS5uYW1lfSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxjdXJyZW50U2VydmljZVN0YXRzOnMuc3RhdHN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2VydmljZSBzdGF0czoiLGEpLHQuZ2V0U3RhdGUoKX19KSx3bWU9R3QuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UGxhdGZvcm1TZXJ2aWNlcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLHBsYXRmb3JtU2VydmljZXM6YS5wbGF0Zm9ybVNlcnZpY2VzfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHBsYXRmb3JtIHNlcnZpY2VzOiIsciksdC5nZXRTdGF0ZSgpfX0pLEZndD1HdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdGFydFBsYXRmb3JtU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZVR5cGU6ZS5zZXJ2aWNlVHlwZX0pO2xldCBuPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCkscGxhdGZvcm1TZXJ2aWNlczpuLnBsYXRmb3JtU2VydmljZXN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3RhcnQgcGxhdGZvcm0gc2VydmljZToiLGEpLHQuZ2V0U3RhdGUoKX19KSxCZ3Q9R3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXthd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RvcFBsYXRmb3JtU2VydmljZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZVR5cGU6ZS5zZXJ2aWNlVHlwZX0pO2xldCBuPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCkscGxhdGZvcm1TZXJ2aWNlczpuLnBsYXRmb3JtU2VydmljZXN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3RvcCBwbGF0Zm9ybSBzZXJ2aWNlOiIsYSksdC5nZXRTdGF0ZSgpfX0pLGttZT1HdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2xldCBzPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VTdGF0cyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2VydmljZVR5cGU6ZS5zZXJ2aWNlVHlwZX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOnMuc3RhdHN9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcGxhdGZvcm0gc2VydmljZSBzdGF0czoiLGEpLHsuLi50LmdldFN0YXRlKCksY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGx9fX0pLHpuYT1HdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2xldCBzPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQbGF0Zm9ybVNlcnZpY2VMb2dzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxzZXJ2aWNlVHlwZTplLnNlcnZpY2VUeXBlLHRhaWw6ZS50YWlsfHwxMDB9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzOnMubG9nc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBwbGF0Zm9ybSBzZXJ2aWNlIGxvZ3M6IixhKSx7Li4udC5nZXRTdGF0ZSgpLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzOltdfX19KSxIZ3Q9UXIuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0TmV0d29ya1RhcmdldHMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSx0YXJnZXRzOmEudGFyZ2V0c319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBuZXR3b3JrIHRhcmdldHM6IixyKSx0LmdldFN0YXRlKCl9fSkseWFlPVFyLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldE5ldHdvcmtTdGF0cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLHN0YXRzOmEuc3RhdHN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggbmV0d29yayBzdGF0czoiLHIpLHQuZ2V0U3RhdGUoKX19KSx3YWU9UXIuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0VHJhZmZpY1N0YXRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksdHJhZmZpY1N0YXRzOmEuc3RhdHN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggdHJhZmZpYyBzdGF0czoiLHIpLHQuZ2V0U3RhdGUoKX19KSxfbmE9UXIuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0RG5zUmVjb3JkcyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLGRuc1JlY29yZHM6YS5yZWNvcmRzfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIEROUyByZWNvcmRzOiIsciksdC5nZXRTdGF0ZSgpfX0pLFRuYT1Rci5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzeW5jRG5zIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO2xldCBzPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXREbnNSZWNvcmRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksZG5zUmVjb3JkczpzLnJlY29yZHN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3luYyBETlM6IixyKSx0LmdldFN0YXRlKCl9fSkscWd0PVFyLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldERvbWFpbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxkb21haW5zOmEuZG9tYWluc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBkb21haW5zOiIsciksdC5nZXRTdGF0ZSgpfX0pLFZndD1Rci5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRHYXRld2F5RG9tYWlucyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLGdhdGV3YXlEb21haW5zOmEuZG9tYWluc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBnYXRld2F5IGRvbWFpbnM6IixyKSx0LmdldFN0YXRlKCl9fSksamd0PVFyLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEdhdGV3YXlEbnNSZWNvcmRzIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksZ2F0ZXdheURuc1JlY29yZHM6YS5yZWNvcmRzfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGdhdGV3YXkgRE5TIHJlY29yZHM6IixyKSx0LmdldFN0YXRlKCl9fSksU21lPVFyLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImxpc3RDZXJ0aWZpY2F0ZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxjZXJ0aWZpY2F0ZXM6YS5jZXJ0aWZpY2F0ZXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggY2VydGlmaWNhdGVzOiIsciksdC5nZXRTdGF0ZSgpfX0pLExuYT1Rci5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJyZW5ld0NlcnRpZmljYXRlIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxkb21haW46ZS5kb21haW59KTtsZXQgbj1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwibGlzdENlcnRpZmljYXRlcyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLGNlcnRpZmljYXRlczpuLmNlcnRpZmljYXRlc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5ldyBjZXJ0aWZpY2F0ZToiLGEpLHQuZ2V0U3RhdGUoKX19KSxNbWU9QmMuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UmVnaXN0cnlUb2tlbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSx0b2tlbnM6YS50b2tlbnN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcmVnaXN0cnkgdG9rZW5zOiIsciksdC5nZXRTdGF0ZSgpfX0pLERuYT1CYy5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVSZWdpc3RyeVRva2VuIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSx0b2tlbjplLnRva2VufSk7bGV0IG49YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFJlZ2lzdHJ5VG9rZW5zIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksdG9rZW5zOm4udG9rZW5zfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSByZWdpc3RyeSB0b2tlbjoiLGEpLHQuZ2V0U3RhdGUoKX19KSwkbmE9QmMuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXthd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZGVsZXRlUmVnaXN0cnlUb2tlbiIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksdG9rZW5JZDplLnRva2VuSWR9KTtsZXQgcz10LmdldFN0YXRlKCk7cmV0dXJuey4uLnMsdG9rZW5zOnMudG9rZW5zLmZpbHRlcihuPT5uLmlkIT09ZS50b2tlbklkKX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgcmVnaXN0cnkgdG9rZW46IixhKSx0LmdldFN0YXRlKCl9fSksY04xPUZjLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEJhY2t1cHMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxiYWNrdXBzOmEuYmFja3Vwc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBiYWNrdXBzOiIsciksdC5nZXRTdGF0ZSgpfX0pLEFuYT1GYy5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJkZWxldGVCYWNrdXAiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGJhY2t1cElkOmUuYmFja3VwSWR9KTtsZXQgcz10LmdldFN0YXRlKCk7cmV0dXJuey4uLnMsYmFja3VwczpzLmJhY2t1cHMuZmlsdGVyKG49Pm4uaWQhPT1lLmJhY2t1cElkKX19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgYmFja3VwOiIsYSksdC5nZXRTdGF0ZSgpfX0pLGROMT1GYy5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRCYWNrdXBTY2hlZHVsZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxzY2hlZHVsZXM6YS5zY2hlZHVsZXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2NoZWR1bGVzOiIsciksdC5nZXRTdGF0ZSgpfX0pLEVuYT1GYy5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVCYWNrdXBTY2hlZHVsZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2NoZWR1bGVDb25maWc6ZS5jb25maWd9KTtsZXQgbj1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QmFja3VwU2NoZWR1bGVzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2NoZWR1bGVzOm4uc2NoZWR1bGVzfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBzY2hlZHVsZToiLGEpLHQuZ2V0U3RhdGUoKX19KSx1TjE9RmMuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgcj1pcigpO3RyeXthd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZGVsZXRlQmFja3VwU2NoZWR1bGUiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHNjaGVkdWxlSWQ6ZS5zY2hlZHVsZUlkfSk7bGV0IHM9dC5nZXRTdGF0ZSgpO3JldHVybnsuLi5zLHNjaGVkdWxlczpzLnNjaGVkdWxlcy5maWx0ZXIobj0+bi5pZCE9PWUuc2NoZWR1bGVJZCl9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIHNjaGVkdWxlOiIsYSksdC5nZXRTdGF0ZSgpfX0pLEluYT1GYy5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2F3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJ0cmlnZ2VyQmFja3VwU2NoZWR1bGUiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHNjaGVkdWxlSWQ6ZS5zY2hlZHVsZUlkfSk7bGV0IG49YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEJhY2t1cHMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxiYWNrdXBzOm4uYmFja3Vwc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB0cmlnZ2VyIHNjaGVkdWxlOiIsYSksdC5nZXRTdGF0ZSgpfX0pLFVndD1ubi5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2xldFtyLGEsc109YXdhaXQgUHJvbWlzZS5hbGwoW25ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZXR0aW5ncyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KSxuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QmFja3VwUGFzc3dvcmRTdGF0dXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSksbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldE1hbmFnZWREY1JvdXRlclN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KV0pO3JldHVybntzZXR0aW5nczpyLnNldHRpbmdzLGJhY2t1cFBhc3N3b3JkQ29uZmlndXJlZDphLnN0YXR1cy5pc0NvbmZpZ3VyZWQsbWFuYWdlZERjUm91dGVyU3RhdHVzOnMuc3RhdHVzfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHNldHRpbmdzOiIsciksdC5nZXRTdGF0ZSgpfX0pLGthZT1ubi5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2xldCBzPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJ1cGRhdGVTZXR0aW5ncyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksc2V0dGluZ3M6ZS5zZXR0aW5nc30pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2V0dGluZ3M6cy5zZXR0aW5nc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGRhdGUgc2V0dGluZ3M6IixhKSx0LmdldFN0YXRlKCl9fSksUG5hPW5uLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldE1hbmFnZWREY1JvdXRlclN0YXR1cyIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLG1hbmFnZWREY1JvdXRlclN0YXR1czpyLnN0YXR1c319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBtYW5hZ2VkIGRjcm91dGVyIHN0YXR1czoiLHIpLHQuZ2V0U3RhdGUoKX19KSxObmE9bm4uY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgcj1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RhcnRNYW5hZ2VkRGNSb3V0ZXIiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxtYW5hZ2VkRGNSb3V0ZXJTdGF0dXM6ci5zdGF0dXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3RhcnQgbWFuYWdlZCBkY3JvdXRlcjoiLHIpLHQuZ2V0U3RhdGUoKX19KSxPbmE9bm4uY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgcj1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic3RvcE1hbmFnZWREY1JvdXRlciIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLG1hbmFnZWREY1JvdXRlclN0YXR1czpyLnN0YXR1c319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzdG9wIG1hbmFnZWQgZGNyb3V0ZXI6IixyKSx0LmdldFN0YXRlKCl9fSksUm5hPW5uLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInJlc3RhcnRNYW5hZ2VkRGNSb3V0ZXIiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxtYW5hZ2VkRGNSb3V0ZXJTdGF0dXM6ci5zdGF0dXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmVzdGFydCBtYW5hZ2VkIGRjcm91dGVyOiIsciksdC5nZXRTdGF0ZSgpfX0pLHBOMT1ubi5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e3JldHVybiBhd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0Iiwic2V0QmFja3VwUGFzc3dvcmQiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHBhc3N3b3JkOmUucGFzc3dvcmR9KSx7Li4udC5nZXRTdGF0ZSgpLGJhY2t1cFBhc3N3b3JkQ29uZmlndXJlZDohMH19Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzZXQgYmFja3VwIHBhc3N3b3JkOiIsYSksdC5nZXRTdGF0ZSgpfX0pLGZOMT14bC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWUudmlldy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xzKy9nLCItIiksYT1lLnN1YnZpZXc/ZS5zdWJ2aWV3LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKTpudWxsO3JldHVybnsuLi50LmdldFN0YXRlKCksYWN0aXZlVmlldzpyLGFjdGl2ZVN1YnZpZXc6YX19KSxoTjE9eGwuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT10LmdldFN0YXRlKCk7cmV0dXJuey4uLmUsYXV0b1JlZnJlc2g6IWUuYXV0b1JlZnJlc2h9fSksWXc9bnVsbCxqcWE9aShhc3luYygpPT57aWYoR2kuZ2V0U3RhdGUoKS5pc0xvZ2dlZEluKXRyeXthd2FpdCBQcm9taXNlLmFsbChbemQuZGlzcGF0Y2hBY3Rpb24oS3csbnVsbCksUXIuZGlzcGF0Y2hBY3Rpb24od2FlLG51bGwpXSl9Y2F0Y2h7fX0sImRpc3BhdGNoQ29tYmluZWRSZWZyZXNoQWN0aW9uIiksT2d0PWkoKCk9PntsZXQgdD14bC5nZXRTdGF0ZSgpLGU9R2kuZ2V0U3RhdGUoKTt0LmF1dG9SZWZyZXNoJiZlLmlzTG9nZ2VkSW4/KFl3JiZjbGVhckludGVydmFsKFl3KSxZdz1zZXRJbnRlcnZhbCgoKT0+e2pxYSgpfSx0LnJlZnJlc2hJbnRlcnZhbCkpOll3JiYoY2xlYXJJbnRlcnZhbChZdyksWXc9bnVsbCl9LCJzdGFydEF1dG9SZWZyZXNoIik7eGwuc2VsZWN0KHQ9PnQpLnN1YnNjcmliZSgoKT0+T2d0KCkpLEdpLnNlbGVjdCh0PT50KS5zdWJzY3JpYmUoKCk9Pk9ndCgpKSxPZ3QoKTtfZz1udWxsLHZhZT1uZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSb3V0ZXIsZ25hPWkoKHQsZSk9PntsZXQgcj10LmZpbmRJbmRleChzPT5zLm5hbWU9PT1lLm5hbWUpO2lmKHI9PT0tMSlyZXR1cm5bLi4udCxlXTtsZXQgYT1bLi4udF07cmV0dXJuIGFbcl09ZSxhfSwidXBzZXJ0U2VydmljZSIpLGJuYT1pKCh0LGUpPT4odC5maW5kSW5kZXgocz0+cy5pZD09PWUuaWQpPT09LTE/W2UsLi4udF06dC5tYXAocz0+cy5pZD09PWUuaWQ/ZTpzKSkuc29ydCgocyxuKT0+bi5zdGFydGVkQXQtcy5zdGFydGVkQXQpLnNsaWNlKDAsMjUpLCJ1cHNlcnRVcGdyYWRlT3BlcmF0aW9uIik7dmFlLmFkZFR5cGVkSGFuZGxlcihuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoU2VydmljZVVwZGF0ZSIsYXN5bmMgdD0+e2xldCBlPUd0LmdldFN0YXRlKCkscj1lLnNlcnZpY2VzLGE9ZS5jdXJyZW50U2VydmljZSxzPWUuY3VycmVudFNlcnZpY2VMb2dzLG49ZS5jdXJyZW50U2VydmljZVN0YXRzO3JldHVybiB0LmFjdGlvbj09PSJkZWxldGVkIj8ocj1yLmZpbHRlcihvPT5vLm5hbWUhPT10LnNlcnZpY2VOYW1lKSxhPy5uYW1lPT09dC5zZXJ2aWNlTmFtZSYmKGE9bnVsbCxzPVtdLG49bnVsbCkpOnQuc2VydmljZSYmKHI9Z25hKHIsdC5zZXJ2aWNlKSxhPy5uYW1lPT09dC5zZXJ2aWNlLm5hbWUmJihhPXQuc2VydmljZSkpLEd0LnNldFN0YXRlKHsuLi5lLHNlcnZpY2VzOnIsY3VycmVudFNlcnZpY2U6YSxjdXJyZW50U2VydmljZUxvZ3M6cyxjdXJyZW50U2VydmljZVN0YXRzOm59KSx7fX0pKSx2YWUuYWRkVHlwZWRIYW5kbGVyKG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZEhhbmRsZXIoInB1c2hBcHBTdG9yZVVwZ3JhZGVQcm9ncmVzcyIsYXN5bmMgdD0+e2xldCBlPWwxLmdldFN0YXRlKCk7aWYobDEuc2V0U3RhdGUoey4uLmUsdXBncmFkZU9wZXJhdGlvbnM6Ym5hKGUudXBncmFkZU9wZXJhdGlvbnMsdC5vcGVyYXRpb24pLHVwZ3JhZGVhYmxlU2VydmljZXM6dC5vcGVyYXRpb24uc3RhdHVzPT09InN1Y2Nlc3MiP2UudXBncmFkZWFibGVTZXJ2aWNlcy5maWx0ZXIocj0+ci5zZXJ2aWNlTmFtZSE9PXQub3BlcmF0aW9uLnNlcnZpY2VOYW1lKTplLnVwZ3JhZGVhYmxlU2VydmljZXN9KSx0Lm9wZXJhdGlvbi5zZXJ2aWNlKXtsZXQgcj1HdC5nZXRTdGF0ZSgpO0d0LnNldFN0YXRlKHsuLi5yLHNlcnZpY2VzOmduYShyLnNlcnZpY2VzLHQub3BlcmF0aW9uLnNlcnZpY2UpLGN1cnJlbnRTZXJ2aWNlOnIuY3VycmVudFNlcnZpY2U/Lm5hbWU9PT10Lm9wZXJhdGlvbi5zZXJ2aWNlLm5hbWU/dC5vcGVyYXRpb24uc2VydmljZTpyLmN1cnJlbnRTZXJ2aWNlfSl9cmV0dXJue319KSksdmFlLmFkZFR5cGVkSGFuZGxlcihuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRIYW5kbGVyKCJwdXNoUGxhdGZvcm1TZXJ2aWNlTG9nIixhc3luYyB0PT57bGV0IGU9R3QuZ2V0U3RhdGUoKSxyPXtpZDplLmN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzLmxlbmd0aCxzZXJ2aWNlSWQ6MCx0aW1lc3RhbXA6bmV3IERhdGUodC5lbnRyeS50aW1lc3RhbXApLmdldFRpbWUoKSxtZXNzYWdlOnQuZW50cnkubWVzc2FnZSxsZXZlbDp0LmVudHJ5LmxldmVsLHNvdXJjZToic3Rkb3V0In0sYT1bLi4uZS5jdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9ncyxyXTtyZXR1cm4gYS5sZW5ndGg+MmUzJiZhLnNwbGljZSgwLGEubGVuZ3RoLTJlMyksR3Quc2V0U3RhdGUoey4uLmUsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6YX0pLHt9fSkpLHZhZS5hZGRUeXBlZEhhbmRsZXIobmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkSGFuZGxlcigicHVzaFNlcnZpY2VMb2ciLGFzeW5jIHQ9PntsZXQgZT1HdC5nZXRTdGF0ZSgpO2lmKCFlLmN1cnJlbnRTZXJ2aWNlfHxlLmN1cnJlbnRTZXJ2aWNlLm5hbWUhPT10LnNlcnZpY2VOYW1lKXJldHVybnt9O2xldCByPXtpZDplLmN1cnJlbnRTZXJ2aWNlTG9ncy5sZW5ndGgsc2VydmljZUlkOjAsdGltZXN0YW1wOm5ldyBEYXRlKHQuZW50cnkudGltZXN0YW1wKS5nZXRUaW1lKCksbWVzc2FnZTp0LmVudHJ5Lm1lc3NhZ2UsbGV2ZWw6dC5lbnRyeS5sZXZlbCxzb3VyY2U6InN0ZG91dCJ9LGE9Wy4uLmUuY3VycmVudFNlcnZpY2VMb2dzLHJdO3JldHVybiBhLmxlbmd0aD4yZTMmJmEuc3BsaWNlKDAsYS5sZW5ndGgtMmUzKSxHdC5zZXRTdGF0ZSh7Li4uZSxjdXJyZW50U2VydmljZUxvZ3M6YX0pLHt9fSkpO2koVXFhLCJjb25uZWN0U29ja2V0Iik7aShXcWEsImRpc2Nvbm5lY3RTb2NrZXQiKTtGbmE9bDEuY3JlYXRlQWN0aW9uKGFzeW5jIHQ9PntsZXQgZT1pcigpO3RyeXtsZXQgYT1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0QXBwU3RvcmVUZW1wbGF0ZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxhcHBzOmEuYXBwc319Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBhcHAgdGVtcGxhdGVzOiIsciksdC5nZXRTdGF0ZSgpfX0pLEJuYT1sMS5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWlyKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRVcGdyYWRlYWJsZUFwcFN0b3JlU2VydmljZXMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSx1cGdyYWRlYWJsZVNlcnZpY2VzOmEuc2VydmljZXN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggdXBncmFkZWFibGUgc2VydmljZXM6IixyKSx0LmdldFN0YXRlKCl9fSksQ21lPWwxLmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9aXIoKTt0cnl7bGV0IGE9YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEFwcFN0b3JlVXBncmFkZU9wZXJhdGlvbnMiKS5maXJlKHtpZGVudGl0eTplLmlkZW50aXR5fSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSx1cGdyYWRlT3BlcmF0aW9uczphLm9wZXJhdGlvbnN9fWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggdXBncmFkZSBvcGVyYXRpb25zOiIsciksdC5nZXRTdGF0ZSgpfX0pLEhuYT1sMS5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCByPWlyKCk7dHJ5e2xldCBzPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdGFydEFwcFN0b3JlU2VydmljZVVwZ3JhZGUiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LHNlcnZpY2VOYW1lOmUuc2VydmljZU5hbWUsdGFyZ2V0VmVyc2lvbjplLnRhcmdldFZlcnNpb259KSxuPXQuZ2V0U3RhdGUoKTtyZXR1cm57Li4ubix1cGdyYWRlT3BlcmF0aW9uczpibmEobi51cGdyYWRlT3BlcmF0aW9ucyxzLm9wZXJhdGlvbil9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdXBncmFkZSBzZXJ2aWNlOiIsYSksdC5nZXRTdGF0ZSgpfX0pO0dpLnNlbGVjdCh0PT50KS5zdWJzY3JpYmUodD0+e3QuaXNMb2dnZWRJbj9VcWEoKTpXcWEoKX0pfSk7ZnVuY3Rpb24gVm5hKHQpe3JldHVybiBLcWEuaW5jbHVkZXModCl9ZnVuY3Rpb24gam5hKHQsZSl7cmV0dXJuIFp3W3RdPy5pbmNsdWRlcyhlKT8/ITF9dmFyIEdxYSxxbmEsWncsV2d0LFlxYSxLcWEsR2d0LGMxLFRnPXUoYXN5bmMoKT0+e28xKCk7YXdhaXQgcDIoKTtHcWE9Y3QucGx1Z2lucy5zbWFydHJvdXRlci5TbWFydFJvdXRlcixxbmE9WyJkYXNoYm9hcmQiLCJzZXR0aW5ncyJdLFp3PXthcHBzOlsiYXBwLXN0b3JlIiwic2VydmljZXMiXSxuZXR3b3JrOlsicHJveHkiLCJkb21haW5zIiwiZG5zLXJlY29yZHMiXSxyZWdpc3RyeTpbInJlZ2lzdHJpZXMiLCJ0b2tlbnMiXX0sV2d0PXthcHBzOiJhcHAtc3RvcmUiLG5ldHdvcms6InByb3h5IixyZWdpc3RyeToicmVnaXN0cmllcyJ9LFlxYT17ImFwcC1zdG9yZSI6e3ZpZXc6ImFwcHMiLHN1YnZpZXc6ImFwcC1zdG9yZSJ9LHNlcnZpY2VzOnt2aWV3OiJhcHBzIixzdWJ2aWV3OiJzZXJ2aWNlcyJ9LHByb3h5Ont2aWV3OiJuZXR3b3JrIixzdWJ2aWV3OiJwcm94eSJ9LGRvbWFpbnM6e3ZpZXc6Im5ldHdvcmsiLHN1YnZpZXc6ImRvbWFpbnMifSwiZG5zLXJlY29yZHMiOnt2aWV3OiJuZXR3b3JrIixzdWJ2aWV3OiJkbnMtcmVjb3JkcyJ9LHJlZ2lzdHJpZXM6e3ZpZXc6InJlZ2lzdHJ5IixzdWJ2aWV3OiJyZWdpc3RyaWVzIn0sdG9rZW5zOnt2aWV3OiJyZWdpc3RyeSIsc3VidmlldzoidG9rZW5zIn19LEtxYT1bLi4ucW5hLC4uLk9iamVjdC5rZXlzKFp3KV07aShWbmEsImlzVmFsaWRWaWV3Iik7aShqbmEsImlzVmFsaWRTdWJ2aWV3Iik7R2d0PWNsYXNze3N0YXRpY3tpKHRoaXMsIkFwcFJvdXRlciIpfXJvdXRlcjtpbml0aWFsaXplZD0hMTtzdXBwcmVzc1N0YXRlVXBkYXRlPSExO2NvbnN0cnVjdG9yKCl7dGhpcy5yb3V0ZXI9bmV3IEdxYSh7ZGVidWc6ITF9KX1pbml0KCl7dGhpcy5pbml0aWFsaXplZHx8KHRoaXMuc2V0dXBSb3V0ZXMoKSx0aGlzLnNldHVwU3RhdGVTeW5jKCksdGhpcy5oYW5kbGVJbml0aWFsUm91dGUoKSx0aGlzLmluaXRpYWxpemVkPSEwKX1zZXR1cFJvdXRlcygpe2ZvcihsZXQgZSBvZiBxbmEpdGhpcy5yb3V0ZXIub24oYC8ke2V9YCxhc3luYygpPT57dGhpcy51cGRhdGVWaWV3U3RhdGUoZSxudWxsKX0pO2ZvcihsZXQgZSBvZiBPYmplY3Qua2V5cyhadykpe3RoaXMucm91dGVyLm9uKGAvJHtlfWAsYXN5bmMoKT0+e3RoaXMubmF2aWdhdGVUbyhgLyR7ZX0vJHtXZ3RbZV19YCl9KTtmb3IobGV0IHIgb2YgWndbZV0pdGhpcy5yb3V0ZXIub24oYC8ke2V9LyR7cn1gLGFzeW5jKCk9Pnt0aGlzLnVwZGF0ZVZpZXdTdGF0ZShlLHIpfSl9dGhpcy5yb3V0ZXIub24oIi8iLGFzeW5jKCk9Pnt0aGlzLm5hdmlnYXRlVG8oIi9kYXNoYm9hcmQiKX0pfXNldHVwU3RhdGVTeW5jKCl7eGwuc2VsZWN0KCkuc3Vic2NyaWJlKGU9PntpZih0aGlzLnN1cHByZXNzU3RhdGVVcGRhdGUpcmV0dXJuO2xldCByPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxhPWUuYWN0aXZlU3Vidmlldz9gLyR7ZS5hY3RpdmVWaWV3fS8ke2UuYWN0aXZlU3Vidmlld31gOmAvJHtlLmFjdGl2ZVZpZXd9YDtyIT09YSYmKHRoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMCx0aGlzLnJvdXRlci5wdXNoVXJsKGEpLHRoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMSl9KX1oYW5kbGVJbml0aWFsUm91dGUoKXtsZXQgZT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7aWYoIWV8fGU9PT0iLyIpe3RoaXMucm91dGVyLnB1c2hVcmwoIi9kYXNoYm9hcmQiKTtyZXR1cm59bGV0IHI9ZS5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKSxhPXJbMF0scz1yWzFdO2lmKCFWbmEoYSkpe3RoaXMucm91dGVyLnB1c2hVcmwoIi9kYXNoYm9hcmQiKTtyZXR1cm59WndbYV0/cyYmam5hKGEscyk/dGhpcy51cGRhdGVWaWV3U3RhdGUoYSxzKTp0aGlzLnJvdXRlci5wdXNoVXJsKGAvJHthfS8ke1dndFthXX1gKTp0aGlzLnVwZGF0ZVZpZXdTdGF0ZShhLG51bGwpfXVwZGF0ZVZpZXdTdGF0ZShlLHIpe3RoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMDtsZXQgYT14bC5nZXRTdGF0ZSgpOyhhLmFjdGl2ZVZpZXchPT1lfHxhLmFjdGl2ZVN1YnZpZXchPT1yKSYmeGwuc2V0U3RhdGUoey4uLmEsYWN0aXZlVmlldzplLGFjdGl2ZVN1YnZpZXc6cn0pLHRoaXMuc3VwcHJlc3NTdGF0ZVVwZGF0ZT0hMX1uYXZpZ2F0ZVRvKGUpe3RoaXMucm91dGVyLnB1c2hVcmwoZSl9bmF2aWdhdGVUb1ZpZXcoZSxyKXtsZXQgYT1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKSxzPXI/LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKTtpZighVm5hKGEpKXtsZXQgbj1ZcWFbYV07aWYobil7dGhpcy5uYXZpZ2F0ZVRvVmlldyhuLnZpZXcsbi5zdWJ2aWV3KTtyZXR1cm59dGhpcy5uYXZpZ2F0ZVRvKCIvZGFzaGJvYXJkIik7cmV0dXJufXMmJmpuYShhLHMpP3RoaXMubmF2aWdhdGVUbyhgLyR7YX0vJHtzfWApOlp3W2FdP3RoaXMubmF2aWdhdGVUbyhgLyR7YX0vJHtXZ3RbYV19YCk6dGhpcy5uYXZpZ2F0ZVRvKGAvJHthfWApfWdldEN1cnJlbnRWaWV3KCl7bGV0IGU9eGwuZ2V0U3RhdGUoKTtyZXR1cm4gZS5hY3RpdmVTdWJ2aWV3P2Ake2UuYWN0aXZlVmlld30vJHtlLmFjdGl2ZVN1YnZpZXd9YDplLmFjdGl2ZVZpZXd9ZGVzdHJveSgpe3RoaXMucm91dGVyLmRlc3Ryb3koKSx0aGlzLmluaXRpYWxpemVkPSExfX0sYzE9bmV3IEdndH0pO3ZhciBYbmE9e307VmUoWG5hLHtPYlZpZXdEYXNoYm9hcmQ6KCk9PlFndH0pO2Z1bmN0aW9uIFduYSh0KXtyZXR1cm4hdHx8dD09PTA/MDpNYXRoLm1pbihNYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGgubG9nKDEwMjQpKSxVbmEubGVuZ3RoLTEpfWZ1bmN0aW9uIHptZSh0LGUpe2lmKCghdHx8dD09PTApJiZlPT09dm9pZCAwKXJldHVybiIwIEIiO2xldCByPWU/P1duYSh0KTtyZXR1cm5gJHsodC9NYXRoLnBvdygxMDI0LHIpKS50b0ZpeGVkKDEpfSAke1VuYVtyXX1gfXZhciBHbmEsWW5hLEtuYSxabmEsUW5hLGYyLFlndCxLZ3QsWmd0LFVuYSxfZCxRZ3QsWGd0PXUoYXN5bmMoKT0+e28xKCk7UmMoKTthd2FpdCBwMigpO2F3YWl0IFRnKCk7Tm8oKTtVbmE9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiXTtpKFduYSwiZ2V0Qnl0ZVVuaXRJbmRleCIpO2koem1lLCJmb3JtYXRCeXRlcyIpLFFuYT1bdmkoIm9iLXZpZXctZGFzaGJvYXJkIildO19kPWNsYXNzIF9kIGV4dGVuZHMoWm5hPXlpLEtuYT1bWnQoKV0sWW5hPVtadCgpXSxHbmE9W1p0KCldLFpuYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsWWd0LFhlKGYyLDgsdGhpcyx7c3RhdHVzOm51bGx9KSksWGUoZjIsMTEsdGhpcyk7dHIodGhpcyxLZ3QsWGUoZjIsMTIsdGhpcyx7c2VydmljZXM6W10sY3VycmVudFNlcnZpY2U6bnVsbCxjdXJyZW50U2VydmljZUxvZ3M6W10sY3VycmVudFNlcnZpY2VTdGF0czpudWxsLHBsYXRmb3JtU2VydmljZXM6W10sY3VycmVudFBsYXRmb3JtU2VydmljZTpudWxsLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VTdGF0czpudWxsLGN1cnJlbnRQbGF0Zm9ybVNlcnZpY2VMb2dzOltdfSkpLFhlKGYyLDE1LHRoaXMpO3RyKHRoaXMsWmd0LFhlKGYyLDE2LHRoaXMse3RhcmdldHM6W10sc3RhdHM6bnVsbCx0cmFmZmljU3RhdHM6bnVsbCxkbnNSZWNvcmRzOltdLGRvbWFpbnM6W10sZ2F0ZXdheURvbWFpbnM6W10sZ2F0ZXdheURuc1JlY29yZHM6W10sY2VydGlmaWNhdGVzOltdfSkpLFhlKGYyLDE5LHRoaXMpO2xldCByPXpkLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMuc3lzdGVtU3RhdGU9bn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGE9R3Quc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5zZXJ2aWNlc1N0YXRlPW59KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBzPVFyLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMubmV0d29ya1N0YXRlPW59KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHMpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBQcm9taXNlLmFsbChbemQuZGlzcGF0Y2hBY3Rpb24oS3csbnVsbCksR3QuZGlzcGF0Y2hBY3Rpb24oeW1lLG51bGwpLEd0LmRpc3BhdGNoQWN0aW9uKHdtZSxudWxsKSxRci5kaXNwYXRjaEFjdGlvbih5YWUsbnVsbCksUXIuZGlzcGF0Y2hBY3Rpb24od2FlLG51bGwpLFFyLmRpc3BhdGNoQWN0aW9uKFNtZSxudWxsKV0pfXJlbmRlcigpe2xldCByPXRoaXMuc3lzdGVtU3RhdGUuc3RhdHVzLGE9dGhpcy5zZXJ2aWNlc1N0YXRlLnNlcnZpY2VzLHM9dGhpcy5zZXJ2aWNlc1N0YXRlLnBsYXRmb3JtU2VydmljZXMsbj10aGlzLm5ldHdvcmtTdGF0ZS5zdGF0cyxvPXRoaXMubmV0d29ya1N0YXRlLnRyYWZmaWNTdGF0cyxsPXRoaXMubmV0d29ya1N0YXRlLmNlcnRpZmljYXRlcyxjPW8/LnN0YXR1c0NvdW50c3x8e30sZD1hLmZpbHRlcihnPT5nLnN0YXR1cz09PSJydW5uaW5nIikubGVuZ3RoLGY9YS5maWx0ZXIoZz0+Zy5zdGF0dXM9PT0ic3RvcHBlZCIpLmxlbmd0aCxwPVduYShyPy5kb2NrZXI/Lm1lbW9yeVRvdGFsfHxyPy5kb2NrZXI/Lm1lbW9yeVVzYWdlfHwwKSxoPWwuZmlsdGVyKGc9PmcuaXNWYWxpZCkubGVuZ3RoLG09bC5maWx0ZXIoZz0+Zy5pc1ZhbGlkJiZnLmV4cGlyZXNBdCYmZy5leHBpcmVzQXQtRGF0ZS5ub3coKTw3MjAqNjAqNjAqMWUzKS5sZW5ndGgsdj1sLmZpbHRlcihnPT4hZy5pc1ZhbGlkKS5sZW5ndGgsYj17Y2x1c3Rlcjp7dG90YWxTZXJ2aWNlczphLmxlbmd0aCxydW5uaW5nOmQsc3RvcHBlZDpmLGRvY2tlclN0YXR1czpyPy5kb2NrZXI/LnJ1bm5pbmc/InJ1bm5pbmciOiJzdG9wcGVkIn0scmVzb3VyY2VVc2FnZTp7Y3B1OnI/LmRvY2tlcj8uY3B1VXNhZ2V8fDAsbWVtb3J5VXNlZDp6bWUocj8uZG9ja2VyPy5tZW1vcnlVc2FnZXx8MCxwKSxtZW1vcnlUb3RhbDp6bWUocj8uZG9ja2VyPy5tZW1vcnlUb3RhbHx8MCxwKSxuZXR3b3JrSW46em1lKHI/LmRvY2tlcj8ubmV0d29ya0lufHwwKSxuZXR3b3JrT3V0OnptZShyPy5kb2NrZXI/Lm5ldHdvcmtPdXR8fDApLHRvcENvbnN1bWVyczpbXX0scGxhdGZvcm1TZXJ2aWNlczpzLmZpbHRlcihnPT5nLnN0YXR1cz09PSJydW5uaW5nInx8Zy5zdGF0dXM9PT0ic3RhcnRpbmcifHxnLnN0YXR1cz09PSJzdG9wcGluZyJ8fGcuaXNDb3JlKS5tYXAoZz0+KHtuYW1lOmcuZGlzcGxheU5hbWUsc3RhdHVzOmcuc3RhdHVzPT09InJ1bm5pbmciPyJSdW5uaW5nIjpnLnN0YXR1cz09PSJzdGFydGluZyI/IlN0YXJ0aW5nLi4uIjpnLnN0YXR1cz09PSJzdG9wcGluZyI/IlN0b3BwaW5nLi4uIjoiU3RvcHBlZCIscnVubmluZzpnLnN0YXR1cz09PSJydW5uaW5nIn0pKSx0cmFmZmljOntyZXF1ZXN0czpvPy5yZXF1ZXN0Q291bnR8fDAsZXJyb3JzOm8/LmVycm9yQ291bnR8fDAsZXJyb3JQZXJjZW50Om8/LmVycm9yUmF0ZXx8MCxhdmdSZXNwb25zZTpvPy5hdmdSZXNwb25zZVRpbWV8fDAscmVxUGVyTWluOm8/LnJlcXVlc3RzUGVyTWludXRlfHwwLHN0YXR1czJ4eDpjWyIyeHgiXXx8MCxzdGF0dXMzeHg6Y1siM3h4Il18fDAsc3RhdHVzNHh4OmNbIjR4eCJdfHwwLHN0YXR1czV4eDpjWyI1eHgiXXx8MH0scHJveHk6e2h0dHBQb3J0OlN0cmluZyhuPy5wcm94eT8uaHR0cFBvcnR8fDgwKSxodHRwc1BvcnQ6U3RyaW5nKG4/LnByb3h5Py5odHRwc1BvcnR8fDQ0MyksaHR0cEFjdGl2ZTpuPy5wcm94eT8ucnVubmluZ3x8ITEsaHR0cHNBY3RpdmU6bj8ucHJveHk/LnJ1bm5pbmd8fCExLHJvdXRlQ291bnQ6U3RyaW5nKG4/LnByb3h5Py5yb3V0ZXN8fDApfSxjZXJ0aWZpY2F0ZXM6e3ZhbGlkOmgsZXhwaXJpbmc6bSxleHBpcmVkOnZ9LGRuc0NvbmZpZ3VyZWQ6cj8uZG5zPy5jb25maWd1cmVkfHwhMSxhY21lQ29uZmlndXJlZDpyPy5zc2w/LmNvbmZpZ3VyZWR8fCExLHF1aWNrQWN0aW9uczpbe2xhYmVsOiJEZXBsb3kgU2VydmljZSIsaWNvbjoibHVjaWRlOlBsdXMiLHByaW1hcnk6ITB9LHtsYWJlbDoiQWRkIERvbWFpbiIsaWNvbjoibHVjaWRlOkdsb2JlIn0se2xhYmVsOiJWaWV3IExvZ3MiLGljb246Imx1Y2lkZTpGaWxlVGV4dCJ9XX07cmV0dXJuIFFlYAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+RGFzaGJvYXJkPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBjbGFzcz0iZGFzaGJvYXJkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNsdXN0ZXIgT3ZlcnZpZXc8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLWNsdXN0ZXIgLnN0YXRzPSR7Yi5jbHVzdGVyfT48L3N6LXN0YXR1cy1ncmlkLWNsdXN0ZXI+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNlcnZpY2VzICYgUmVzb3VyY2VzPC9oMj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2VzLWdyaWQiPgogICAgICAgICAgICA8c3otcmVzb3VyY2UtdXNhZ2UtY2FyZCAuZGF0YT0ke2IucmVzb3VyY2VVc2FnZX0+PC9zei1yZXNvdXJjZS11c2FnZS1jYXJkPgogICAgICAgICAgICA8c3otcGxhdGZvcm0tc2VydmljZXMtY2FyZAogICAgICAgICAgICAgIC5zZXJ2aWNlcz0ke2IucGxhdGZvcm1TZXJ2aWNlc30KICAgICAgICAgICAgICBAc2VydmljZS1jbGljaz0ke2c9PnRoaXMuaGFuZGxlUGxhdGZvcm1TZXJ2aWNlQ2xpY2soZyl9CiAgICAgICAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2VzLWNhcmQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TmV0d29yayAmIFRyYWZmaWM8L2gyPgogICAgICAgICAgPHN6LXN0YXR1cy1ncmlkLW5ldHdvcmsKICAgICAgICAgICAgLnRyYWZmaWM9JHtiLnRyYWZmaWN9CiAgICAgICAgICAgIC5wcm94eT0ke2IucHJveHl9CiAgICAgICAgICAgIC5jZXJ0aWZpY2F0ZXM9JHtiLmNlcnRpZmljYXRlc30KICAgICAgICAgID48L3N6LXN0YXR1cy1ncmlkLW5ldHdvcms+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkluZnJhc3RydWN0dXJlPC9oMj4KICAgICAgICAgIDxzei1zdGF0dXMtZ3JpZC1pbmZyYQogICAgICAgICAgICA/ZG5zQ29uZmlndXJlZD0ke2IuZG5zQ29uZmlndXJlZH0KICAgICAgICAgICAgP2FjbWVDb25maWd1cmVkPSR7Yi5hY21lQ29uZmlndXJlZH0KICAgICAgICAgICAgLmFjdGlvbnM9JHtiLnF1aWNrQWN0aW9uc30KICAgICAgICAgICAgQGFjdGlvbi1jbGljaz0ke2c9PnRoaXMuaGFuZGxlUXVpY2tBY3Rpb24oZyl9CiAgICAgICAgICA+PC9zei1zdGF0dXMtZ3JpZC1pbmZyYT4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVRdWlja0FjdGlvbihyKXtsZXQgYT1yLmRldGFpbD8uYWN0aW9ufHxyLmRldGFpbD8ubGFiZWw7YT09PSJEZXBsb3kgU2VydmljZSI/YzEubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIik6YT09PSJBZGQgRG9tYWluIiYmYzEubmF2aWdhdGVUb1ZpZXcoIm5ldHdvcmsiKX1oYW5kbGVQbGF0Zm9ybVNlcnZpY2VDbGljayhyKXtsZXQgYT1yLmRldGFpbD8ubmFtZSxzPXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLmZpbmQobj0+bi5kaXNwbGF5TmFtZT09PWEpO3MmJihHdC5zZXRTdGF0ZSh7Li4uR3QuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOnN9KSxjMS5uYXZpZ2F0ZVRvVmlldygic2VydmljZXMiKSl9fTtmMj0kaShabmEpLFlndD1uZXcgV2Vha01hcCxLZ3Q9bmV3IFdlYWtNYXAsWmd0PW5ldyBXZWFrTWFwLER0KGYyLDQsInN5c3RlbVN0YXRlIixLbmEsX2QsWWd0KSxEdChmMiw0LCJzZXJ2aWNlc1N0YXRlIixZbmEsX2QsS2d0KSxEdChmMiw0LCJuZXR3b3JrU3RhdGUiLEduYSxfZCxaZ3QpLF9kPUR0KGYyLDAsIk9iVmlld0Rhc2hib2FyZCIsUW5hLF9kKSxpKF9kLCJPYlZpZXdEYXNoYm9hcmQiKSxnaShfZCwic3R5bGVzIixbb3IuZGVmYXVsdFN0eWxlcyxTbiwkcmAKICAgICAgLmRhc2hib2FyZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLnNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke29yLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMCAwIDEycHg7CiAgICAgIH0KCiAgICAgIC5zZXJ2aWNlcy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLnNlcnZpY2VzLWdyaWQgPiAqIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgewogICAgICAgIC5zZXJ2aWNlcy1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdKSxYZShmMiwxLF9kKTtRZ3Q9X2R9KTt2YXIgcG9hPXt9O1ZlKHBvYSx7T2JWaWV3QXBwU3RvcmU6KCk9PmRidH0pO3ZhciBKbmEsZW9hLHRvYSxyb2EsYW9hLGlvYSxzb2Esbm9hLG9vYSxsb2EsY29hLGRvYSx1b2EsdGEsSmd0LGVidCx0YnQscmJ0LGFidCxpYnQsc2J0LG5idCxvYnQsbGJ0LGNidCxNbixkYnQsZm9hPXUoYXN5bmMoKT0+e28xKCk7UmMoKTthd2FpdCBwMigpO0d3KCk7YXdhaXQgVGcoKTtObygpO3VvYT1bdmkoIm9iLXZpZXctYXBwc3RvcmUiKV07TW49Y2xhc3MgTW4gZXh0ZW5kcyhkb2E9eWksY29hPVtadCgpXSxsb2E9W1p0KCldLG9vYT1bWnQoKV0sbm9hPVtadCgpXSxzb2E9W1p0KCldLGlvYT1bWnQoKV0sYW9hPVtadCgpXSxyb2E9W1p0KCldLHRvYT1bWnQoKV0sZW9hPVtadCgpXSxKbmE9W1p0KCldLGRvYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsSmd0LFhlKHRhLDgsdGhpcyx7YXBwczpbXSx1cGdyYWRlYWJsZVNlcnZpY2VzOltdLHVwZ3JhZGVPcGVyYXRpb25zOltdfSkpLFhlKHRhLDExLHRoaXMpO3RyKHRoaXMsZWJ0LFhlKHRhLDEyLHRoaXMsImdyaWQiKSksWGUodGEsMTUsdGhpcyk7dHIodGhpcyx0YnQsWGUodGEsMTYsdGhpcyxudWxsKSksWGUodGEsMTksdGhpcyk7dHIodGhpcyxyYnQsWGUodGEsMjAsdGhpcyxudWxsKSksWGUodGEsMjMsdGhpcyk7dHIodGhpcyxhYnQsWGUodGEsMjQsdGhpcyxudWxsKSksWGUodGEsMjcsdGhpcyk7dHIodGhpcyxpYnQsWGUodGEsMjgsdGhpcywiIikpLFhlKHRhLDMxLHRoaXMpO3RyKHRoaXMsc2J0LFhlKHRhLDMyLHRoaXMsW10pKSxYZSh0YSwzNSx0aGlzKTt0cih0aGlzLG5idCxYZSh0YSwzNix0aGlzLCIiKSksWGUodGEsMzksdGhpcyk7dHIodGhpcyxvYnQsWGUodGEsNDAsdGhpcywiIikpLFhlKHRhLDQzLHRoaXMpO3RyKHRoaXMsbGJ0LFhlKHRhLDQ0LHRoaXMsITEpKSxYZSh0YSw0Nyx0aGlzKTt0cih0aGlzLGNidCxYZSh0YSw0OCx0aGlzLCExKSksWGUodGEsNTEsdGhpcyk7bGV0IHI9bDEuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5hcHBTdG9yZVN0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBQcm9taXNlLmFsbChbbDEuZGlzcGF0Y2hBY3Rpb24oRm5hLG51bGwpLGwxLmRpc3BhdGNoQWN0aW9uKENtZSxudWxsKV0pfXJlbmRlcigpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3PT09ImRldGFpbCI/dGhpcy5yZW5kZXJEZXRhaWxWaWV3KCk6dGhpcy5yZW5kZXJHcmlkVmlldygpfXJlbmRlckdyaWRWaWV3KCl7bGV0IHI9dGhpcy5hcHBTdG9yZVN0YXRlLmFwcHMubWFwKGE9Pih7aWQ6YS5pZCxuYW1lOmEubmFtZSxkZXNjcmlwdGlvbjphLmRlc2NyaXB0aW9uLGNhdGVnb3J5OmEuY2F0ZWdvcnksaWNvbk5hbWU6YS5pY29uTmFtZSxpY29uVXJsOmEuaWNvblVybCxpbWFnZToiIixwb3J0OjB9KSk7cmV0dXJuIFFlYAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QXBwIFN0b3JlPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgJHt0aGlzLnJlbmRlclVwZ3JhZGVPcGVyYXRpb25zKCl9CiAgICAgICR7ci5sZW5ndGg9PT0wP1FlYDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+TG9hZGluZyBhcHAgdGVtcGxhdGVzLi4uPC9kaXY+YDpRZWAKICAgICAgICAgIDxzei1hcHAtc3RvcmUtdmlldwogICAgICAgICAgICAuYXBwcz0ke3J9CiAgICAgICAgICAgIEB2aWV3LWFwcD0ke2E9PnRoaXMuaGFuZGxlVmlld0RldGFpbHMoYSl9CiAgICAgICAgICAgIEBkZXBsb3ktYXBwPSR7YT0+dGhpcy5oYW5kbGVBcHBDbGljayhhKX0KICAgICAgICAgID48L3N6LWFwcC1zdG9yZS12aWV3PgogICAgICAgIGB9CiAgICBgfXJlbmRlclVwZ3JhZGVPcGVyYXRpb25zKCl7bGV0IHI9dGhpcy5hcHBTdG9yZVN0YXRlLnVwZ3JhZGVPcGVyYXRpb25zLmZpbHRlcihhPT5hLnN0YXR1cz09PSJydW5uaW5nInx8YS5zdGF0dXM9PT0iZmFpbGVkIikuc2xpY2UoMCwzKTtyZXR1cm4gci5sZW5ndGg9PT0wPyIiOlFlYAogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtY2FyZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+UmVjZW50IFVwZ3JhZGUgT3BlcmF0aW9uczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3RwcmludC1saXN0Ij4KICAgICAgICAgICR7ci5tYXAoYT0+UWVgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RwcmludC1pdGVtIj4KICAgICAgICAgICAgICA8c3Bhbj4ke2Euc2VydmljZU5hbWV9OiAke2EuZnJvbVZlcnNpb259ICZyYXJyOyAke2EudGFyZ2V0VmVyc2lvbn08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvb3RwcmludC1tZXRhIj4ke2Euc3RhdHVzfSAvICR7YS5zdGVwfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRldGFpbFZpZXcoKXtpZih0aGlzLmxvYWRpbmcpcmV0dXJuIFFlYAogICAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5BcHAgU3RvcmU8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+TG9hZGluZyBhcHAgZGV0YWlscy4uLjwvZGl2PgogICAgICBgO2xldCByPXRoaXMuc2VsZWN0ZWRBcHAsYT10aGlzLnNlbGVjdGVkQXBwTWV0YSxzPXRoaXMuc2VsZWN0ZWRBcHBDb25maWc7aWYoIXJ8fCFzKXJldHVybiBRZWAKICAgICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QXBwIFN0b3JlPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPkFwcCBub3QgZm91bmQuPC9kaXY+CiAgICAgIGA7bGV0IG49cy5wbGF0Zm9ybVJlcXVpcmVtZW50c3x8e30sbz1PYmplY3QudmFsdWVzKG4pLnNvbWUoQm9vbGVhbiksbD17bW9uZ29kYjoiTW9uZ29EQiIsczM6IlMzIChNaW5JTykiLGNsaWNraG91c2U6IkNsaWNrSG91c2UiLHJlZGlzOiJSZWRpcyIsbWFyaWFkYjoiTWFyaWFEQiJ9O3JldHVybiBRZWAKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkFwcCBTdG9yZTwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTZweDsiIEBjbGljaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0iZ3JpZCJ9fT4KICAgICAgICAmbGFycjsgQmFjayB0byBBcHAgU3RvcmUKICAgICAgPC9idXR0b24+CgogICAgICA8IS0tIEhlYWRlciAtLT4KICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWljb24iPiR7KHIubmFtZXx8Ij8iKVswXS50b1VwcGVyQ2FzZSgpfTwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZmxleDogMTsiPgogICAgICAgICAgICA8aDIgY2xhc3M9ImRldGFpbC10aXRsZSI+JHtyLm5hbWV9PC9oMj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRldGFpbC1jYXRlZ29yeSI+JHtyLmNhdGVnb3J5fTwvc3Bhbj4KICAgICAgICAgICAgPHAgY2xhc3M9ImRldGFpbC1kZXNjcmlwdGlvbiI+JHtyLmRlc2NyaXB0aW9ufTwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLW1ldGEiPgogICAgICAgICAgICAgICR7YT8ubWFpbnRhaW5lcj9RZWA8c3Bhbj5NYWludGFpbmVyOiA8c3Ryb25nPiR7YS5tYWludGFpbmVyfTwvc3Ryb25nPjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICR7YT8ubGlua3M/T2JqZWN0LmVudHJpZXMoYS5saW5rcykubWFwKChbYyxkXSk9PlFlYDxhIGhyZWY9IiR7ZH0iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4ke2N9PC9hPmApOiIifQogICAgICAgICAgICAgICR7ci50YWdzPy5sZW5ndGg/UWVgPHNwYW4+VGFnczogJHtyLnRhZ3Muam9pbigiLCAiKX08L3NwYW4+YDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIFBsYXRmb3JtIFNlcnZpY2VzIC0tPgogICAgICAke28/UWVgCiAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+UGxhdGZvcm0gU2VydmljZXM8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICR7T2JqZWN0LmVudHJpZXMobikuZmlsdGVyKChbYyxkXSk9PmQpLm1hcCgoW2NdKT0+UWVgPHNwYW4gY2xhc3M9ImJhZGdlIj4ke2xbY118fGN9PC9zcGFuPmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsgbWFyZ2luLXRvcDogOHB4OyI+CiAgICAgICAgICAgIFRoZXNlIHBsYXRmb3JtIHNlcnZpY2VzIHdpbGwgYmUgYXV0b21hdGljYWxseSBwcm92aXNpb25lZCB3aGVuIHlvdSBkZXBsb3kuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgICR7dGhpcy5yZW5kZXJEZXBsb3ltZW50Rm9vdHByaW50KHMpfQoKICAgICAgPCEtLSBWZXJzaW9uICYgSW1hZ2UgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImRldGFpbC1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5WZXJzaW9uPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmVyc2lvbi1yb3ciPgogICAgICAgICAgPHNlbGVjdCBjbGFzcz0idmVyc2lvbi1zZWxlY3QiIEBjaGFuZ2U9JHtjPT50aGlzLmhhbmRsZVZlcnNpb25DaGFuZ2UoYy50YXJnZXQudmFsdWUpfT4KICAgICAgICAgICAgJHsoYT8udmVyc2lvbnN8fFt0aGlzLnNlbGVjdGVkVmVyc2lvbl0pLm1hcChjPT5RZWA8b3B0aW9uIHZhbHVlPSIke2N9IiA/c2VsZWN0ZWQ9JHtjPT09dGhpcy5zZWxlY3RlZFZlcnNpb259PiR7Y30ke2M9PT1yLmxhdGVzdFZlcnNpb24/IiAobGF0ZXN0KSI6IiJ9PC9vcHRpb24+YCl9CiAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbWFnZS10YWciPiR7cy5pbWFnZX08L3NwYW4+CiAgICAgICAgICAke3MubWluT25lYm94VmVyc2lvbj9RZWA8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7Ij5SZXF1aXJlcyBvbmVib3ggJmdlOyAke3MubWluT25lYm94VmVyc2lvbn08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIEVudmlyb25tZW50IFZhcmlhYmxlcyAtLT4KICAgICAgJHt0aGlzLmVkaXRhYmxlRW52VmFycy5sZW5ndGg+MD9RZWAKICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5FbnZpcm9ubWVudCBWYXJpYWJsZXM8L2Rpdj4KICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZW52LXRhYmxlIj4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6IDMwJTsiPlZhcmlhYmxlPC90aD4KICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6IDQwJTsiPlZhbHVlPC90aD4KICAgICAgICAgICAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICR7dGhpcy5lZGl0YWJsZUVudlZhcnMubWFwKChjLGQpPT5RZWAKICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnYta2V5Ij4ke2Mua2V5fTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAke2MucmVxdWlyZWQ/UWVgPHNwYW4gY2xhc3M9ImVudi1iYWRnZSByZXF1aXJlZCI+cmVxdWlyZWQ8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgICAke2MucGxhdGZvcm1JbmplY3RlZD9RZWA8c3BhbiBjbGFzcz0iZW52LWJhZGdlIGF1dG8iPmF1dG88L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImVudi1pbnB1dCIKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHtjLnZhbHVlfQogICAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7Yy5wbGF0Zm9ybUluamVjdGVkfHwhdGhpcy5kZXBsb3lNb2RlfQogICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9JHtjLnBsYXRmb3JtSW5qZWN0ZWQ/IkF1dG8taW5qZWN0ZWQgYnkgcGxhdGZvcm0iOiJFbnRlciB2YWx1ZS4uLiJ9CiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtmPT50aGlzLmhhbmRsZUVudlZhckNoYW5nZShkLGYudGFyZ2V0LnZhbHVlKX0KICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImVudi1kZXNjIj4ke2MuZGVzY3JpcHRpb258fCIifTwvc3Bhbj48L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CgogICAgICA8IS0tIERlcGxveSBzZWN0aW9uIChvbmx5IGluIGRlcGxveSBtb2RlKSBvciBhY3Rpb24gYnV0dG9uICh2aWV3IG1vZGUpIC0tPgogICAgICAke3RoaXMuZGVwbG95TW9kZT9RZWAKICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwtY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5TZXJ2aWNlIE5hbWU8L2Rpdj4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICBjbGFzcz0ibmFtZS1pbnB1dCIKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZXJ2aWNlTmFtZX0KICAgICAgICAgICAgcGxhY2Vob2xkZXI9ImUuZy4gbXktZ2hvc3QtYmxvZyIKICAgICAgICAgICAgQGlucHV0PSR7Yz0+e3RoaXMuc2VydmljZU5hbWU9Yy50YXJnZXQudmFsdWV9fQogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tdG9wOiA2cHg7Ij4KICAgICAgICAgICAgTG93ZXJjYXNlIGxldHRlcnMsIG51bWJlcnMsIGFuZCBoeXBoZW5zIG9ubHkuCiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIiBzdHlsZT0ibWFyZ2luLXRvcDogMThweDsiPkRvbWFpbjwvZGl2PgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIGNsYXNzPSJuYW1lLWlucHV0IgogICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlcnZpY2VEb21haW59CiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJlLmcuIGNsb3VkbHkuZXhhbXBsZS5jb20iCiAgICAgICAgICAgIEBpbnB1dD0ke2M9PnRoaXMuaGFuZGxlU2VydmljZURvbWFpbkNoYW5nZShjLnRhcmdldC52YWx1ZSl9CiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7IG1hcmdpbi10b3A6IDZweDsiPgogICAgICAgICAgICBPbmVib3ggcm91dGVzIHRoaXMgZG9tYWluIHRvIHRoZSBkZXBsb3llZCBhcHAuIFJlcXVpcmVkIHdoZW4gdGhlIGFwcCB1c2VzIFNFUlZJQ0VfRE9NQUlOLgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLnJlbmRlckRlcGxveUNvbmZpcm1hdGlvbihzKX0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLXJvdyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IiBAY2xpY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9ImdyaWQifX0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGVwbG95KCl9PgogICAgICAgICAgICAgIERlcGxveSB2JHt0aGlzLnNlbGVjdGVkVmVyc2lvbn0KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDpRZWAKICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLXJvdyIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiIEBjbGljaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0iZ3JpZCJ9fT4KICAgICAgICAgICAgJmxhcnI7IEJhY2sKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBAY2xpY2s9JHsoKT0+e3RoaXMuZGVwbG95TW9kZT0hMH19PgogICAgICAgICAgICBEZXBsb3kgdGhpcyBBcHAKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICBgfQogICAgYH1yZW5kZXJEZXBsb3ltZW50Rm9vdHByaW50KHIpe2xldCBhPXRoaXMuZ2V0Q29uZmlnVm9sdW1lcyhyKSxzPXIucHVibGlzaGVkUG9ydHN8fFtdO3JldHVybiBhLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MD8iIjpRZWAKICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsLWNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPkRlcGxveW1lbnQgRm9vdHByaW50PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdHByaW50LWxpc3QiPgogICAgICAgICAgJHthLm1hcChuPT5RZWAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdHByaW50LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuPlZvbHVtZSBtb3VudDwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdHByaW50LW1ldGEiPgogICAgICAgICAgICAgICAgJHtuLnNvdXJjZXx8bi5uYW1lfHwibWFuYWdlZCB2b2x1bWUifToke24ubW91bnRQYXRofSR7bi5yZWFkT25seT8iOnJvIjoiIn0KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgICAke3MubWFwKG49PlFlYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290cHJpbnQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4+UHVibGlzaGVkIGhvc3QgcG9ydDwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9vdHByaW50LW1ldGEiPiR7dGhpcy5mb3JtYXRQdWJsaXNoZWRQb3J0KG4pfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3MubGVuZ3RoPjA/UWVgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvc3VyZS13YXJuaW5nIj4KICAgICAgICAgICAgVGhpcyBhcHAgcHVibGlzaGVzIHJhdyBob3N0IHBvcnRzIG91dHNpZGUgdGhlIEhUVFAgcHJveHkuIENvbmZpcm0gZmlyZXdhbGwgYW5kIG5ldHdvcmsgcG9saWN5IGJlZm9yZSBkZXBsb3lpbmcuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGVwbG95Q29uZmlybWF0aW9uKHIpe2xldCBhPXRoaXMuZ2V0Q29uZmlnVm9sdW1lcyhyKSxzPXIucHVibGlzaGVkUG9ydHN8fFtdO3JldHVybiBhLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MD8iIjpRZWAKICAgICAgPGRpdiBjbGFzcz0iZXhwb3N1cmUtd2FybmluZyI+CiAgICAgICAgRGVwbG95aW5nIHRoaXMgYXBwIHdpbGwgY3JlYXRlICR7YS5sZW5ndGh9IHBlcnNpc3RlbnQgdm9sdW1lKHMpCiAgICAgICAgJHtzLmxlbmd0aD4wP1FlYGFuZCBleHBvc2UgJHtzLmxlbmd0aH0gaG9zdCBwb3J0IGRlY2xhcmF0aW9uKHMpYDoiIn0uCiAgICAgIDwvZGl2PgogICAgYH1nZXRDb25maWdWb2x1bWVzKHIpe3JldHVybihyLnZvbHVtZXN8fFtdKS5tYXAoYT0+dHlwZW9mIGE9PSJzdHJpbmciP3ttb3VudFBhdGg6YX06YSkuZmlsdGVyKGE9PiEhYS5tb3VudFBhdGgpfWZvcm1hdFB1Ymxpc2hlZFBvcnQocil7bGV0IGE9ci5wcm90b2NvbHx8InRjcCIscz1yLnRhcmdldFBvcnRFbmQ/YCR7ci50YXJnZXRQb3J0fS0ke3IudGFyZ2V0UG9ydEVuZH1gOlN0cmluZyhyLnRhcmdldFBvcnQpLG49ci5wdWJsaXNoZWRQb3J0fHxyLnRhcmdldFBvcnQsbz1yLnB1Ymxpc2hlZFBvcnRFbmR8fChyLnRhcmdldFBvcnRFbmQ/bisoci50YXJnZXRQb3J0RW5kLXIudGFyZ2V0UG9ydCk6dm9pZCAwKSxsPW8/YCR7bn0tJHtvfWA6U3RyaW5nKG4pO3JldHVybmAke3IuaG9zdElwfHwiMC4wLjAuMCJ9OiR7bH0vJHthfSAtPiAke3N9LyR7YX1gfWFzeW5jIGhhbmRsZVZpZXdEZXRhaWxzKHIpe2xldCBhPXIuZGV0YWlsPy5hcHA7aWYoIWEpcmV0dXJuO2xldCBzPXRoaXMuYXBwU3RvcmVTdGF0ZS5hcHBzLmZpbmQobj0+bi5pZD09PWEuaWQpO3MmJih0aGlzLmRlcGxveU1vZGU9ITEsdGhpcy5zZWxlY3RlZEFwcD1zLHRoaXMuc2VsZWN0ZWRWZXJzaW9uPXMubGF0ZXN0VmVyc2lvbix0aGlzLnNlcnZpY2VOYW1lPXMuaWQsdGhpcy5sb2FkaW5nPSEwLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCIsYXdhaXQgdGhpcy5mZXRjaFZlcnNpb25Db25maWcocy5pZCxzLmxhdGVzdFZlcnNpb24pLHRoaXMubG9hZGluZz0hMSl9YXN5bmMgaGFuZGxlQXBwQ2xpY2socil7bGV0IGE9ci5kZXRhaWw/LmFwcDtpZighYSlyZXR1cm47bGV0IHM9dGhpcy5hcHBTdG9yZVN0YXRlLmFwcHMuZmluZChuPT5uLmlkPT09YS5pZCk7cyYmKHRoaXMuZGVwbG95TW9kZT0hMCx0aGlzLnNlbGVjdGVkQXBwPXMsdGhpcy5zZWxlY3RlZFZlcnNpb249cy5sYXRlc3RWZXJzaW9uLHRoaXMuc2VydmljZU5hbWU9cy5pZCx0aGlzLmxvYWRpbmc9ITAsdGhpcy5jdXJyZW50Vmlldz0iZGV0YWlsIixhd2FpdCB0aGlzLmZldGNoVmVyc2lvbkNvbmZpZyhzLmlkLHMubGF0ZXN0VmVyc2lvbiksdGhpcy5sb2FkaW5nPSExKX1hc3luYyBoYW5kbGVWZXJzaW9uQ2hhbmdlKHIpeyF0aGlzLnNlbGVjdGVkQXBwfHxyPT09dGhpcy5zZWxlY3RlZFZlcnNpb258fCh0aGlzLnNlbGVjdGVkVmVyc2lvbj1yLHRoaXMubG9hZGluZz0hMCxhd2FpdCB0aGlzLmZldGNoVmVyc2lvbkNvbmZpZyh0aGlzLnNlbGVjdGVkQXBwLmlkLHIpLHRoaXMubG9hZGluZz0hMSl9YXN5bmMgZmV0Y2hWZXJzaW9uQ29uZmlnKHIsYSl7dHJ5e2xldCBzPUdpLmdldFN0YXRlKCkuaWRlbnRpdHk7aWYoIXMpcmV0dXJuO2xldCBvPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRBcHBTdG9yZUNvbmZpZyIpLmZpcmUoe2lkZW50aXR5OnMsYXBwSWQ6cix2ZXJzaW9uOmF9KTt0aGlzLnNlbGVjdGVkQXBwTWV0YT1vLmFwcE1ldGEsdGhpcy5zZWxlY3RlZEFwcENvbmZpZz1vLmNvbmZpZyx0aGlzLmVkaXRhYmxlRW52VmFycz0oby5jb25maWcuZW52VmFyc3x8W10pLm1hcChsPT4oe2tleTpsLmtleSx2YWx1ZTpsLnZhbHVlfHwiIixkZXNjcmlwdGlvbjpsLmRlc2NyaXB0aW9ufHwiIixyZXF1aXJlZDpsLnJlcXVpcmVkLHBsYXRmb3JtSW5qZWN0ZWQ6bC52YWx1ZT8uaW5jbHVkZXMoIiR7Iil8fCExfSkpLHRoaXMuc2VydmljZURvbWFpbj0iIn1jYXRjaChzKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggYXBwIGNvbmZpZzoiLHMpfX1oYW5kbGVFbnZWYXJDaGFuZ2UocixhKXtsZXQgcz1bLi4udGhpcy5lZGl0YWJsZUVudlZhcnNdO3Nbcl09ey4uLnNbcl0sdmFsdWU6YX0sdGhpcy5lZGl0YWJsZUVudlZhcnM9c31oYW5kbGVTZXJ2aWNlRG9tYWluQ2hhbmdlKHIpe3RoaXMuc2VydmljZURvbWFpbj10aGlzLm5vcm1hbGl6ZURvbWFpbihyKX1ub3JtYWxpemVEb21haW4ocil7cmV0dXJuIHIudHJpbSgpLnJlcGxhY2UoL15odHRwcz86XC9cLy8sIiIpLnJlcGxhY2UoL1wvJC8sIiIpfWFzeW5jIGhhbmRsZURlcGxveSgpe2xldCByPXRoaXMuc2VsZWN0ZWRBcHAsYT10aGlzLnNlbGVjdGVkQXBwQ29uZmlnO2lmKCFyfHwhYSlyZXR1cm47bGV0IHM9dGhpcy5lZGl0YWJsZUVudlZhcnMuZmlsdGVyKGw9PmwucmVxdWlyZWQmJiFsLnBsYXRmb3JtSW5qZWN0ZWQmJiFsLnZhbHVlLnRyaW0oKSk7aWYocy5sZW5ndGg+MCl7Y29uc29sZS5lcnJvcihgTWlzc2luZyByZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6ICR7cy5tYXAobD0+bC5rZXkpLmpvaW4oIiwgIil9YCk7cmV0dXJufWlmKChhLmVudlZhcnN8fFtdKS5zb21lKGw9PmwudmFsdWU/LmluY2x1ZGVzKCIke1NFUlZJQ0VfRE9NQUlOfSIpKSYmIXRoaXMuc2VydmljZURvbWFpbil7Y29uc29sZS5lcnJvcigiQSBkb21haW4gaXMgcmVxdWlyZWQgZm9yIHRoaXMgYXBwLiIpO3JldHVybn1sZXQgbz17fTtmb3IobGV0IGwgb2YgdGhpcy5lZGl0YWJsZUVudlZhcnMpbC5rZXkmJmwudmFsdWUmJihvW2wua2V5XT1sLnZhbHVlKTt0cnl7bGV0IGw9R2kuZ2V0U3RhdGUoKS5pZGVudGl0eTtpZighbClyZXR1cm47YXdhaXQgbmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImluc3RhbGxBcHBTdG9yZUFwcCIpLmZpcmUoe2lkZW50aXR5OmwsaW5zdGFsbDp7YXBwSWQ6ci5pZCx2ZXJzaW9uOnRoaXMuc2VsZWN0ZWRWZXJzaW9uLHNlcnZpY2VOYW1lOnRoaXMuc2VydmljZU5hbWV8fHIuaWQsZG9tYWluOnRoaXMuc2VydmljZURvbWFpbnx8dm9pZCAwLGVudlZhcnM6b319KSxzZXRUaW1lb3V0KCgpPT57YzEubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIil9LDApfWNhdGNoKGwpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZXBsb3kgZnJvbSBBcHAgU3RvcmU6IixsKX19fTt0YT0kaShkb2EpLEpndD1uZXcgV2Vha01hcCxlYnQ9bmV3IFdlYWtNYXAsdGJ0PW5ldyBXZWFrTWFwLHJidD1uZXcgV2Vha01hcCxhYnQ9bmV3IFdlYWtNYXAsaWJ0PW5ldyBXZWFrTWFwLHNidD1uZXcgV2Vha01hcCxuYnQ9bmV3IFdlYWtNYXAsb2J0PW5ldyBXZWFrTWFwLGxidD1uZXcgV2Vha01hcCxjYnQ9bmV3IFdlYWtNYXAsRHQodGEsNCwiYXBwU3RvcmVTdGF0ZSIsY29hLE1uLEpndCksRHQodGEsNCwiY3VycmVudFZpZXciLGxvYSxNbixlYnQpLER0KHRhLDQsInNlbGVjdGVkQXBwIixvb2EsTW4sdGJ0KSxEdCh0YSw0LCJzZWxlY3RlZEFwcE1ldGEiLG5vYSxNbixyYnQpLER0KHRhLDQsInNlbGVjdGVkQXBwQ29uZmlnIixzb2EsTW4sYWJ0KSxEdCh0YSw0LCJzZWxlY3RlZFZlcnNpb24iLGlvYSxNbixpYnQpLER0KHRhLDQsImVkaXRhYmxlRW52VmFycyIsYW9hLE1uLHNidCksRHQodGEsNCwic2VydmljZU5hbWUiLHJvYSxNbixuYnQpLER0KHRhLDQsInNlcnZpY2VEb21haW4iLHRvYSxNbixvYnQpLER0KHRhLDQsImxvYWRpbmciLGVvYSxNbixsYnQpLER0KHRhLDQsImRlcGxveU1vZGUiLEpuYSxNbixjYnQpLE1uPUR0KHRhLDAsIk9iVmlld0FwcFN0b3JlIix1b2EsTW4pLGkoTW4sIk9iVmlld0FwcFN0b3JlIiksZ2koTW4sInN0eWxlcyIsW29yLmRlZmF1bHRTdHlsZXMsU24sJHJgCiAgICAgIC5kZXRhaWwtY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMSwgIzA5MDkwYik7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmRldGFpbC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtaWNvbiB7CiAgICAgICAgd2lkdGg6IDY0cHg7CiAgICAgICAgaGVpZ2h0OiA2NHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRldGFpbC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTcsICNlNGU0ZTcpOwogICAgICAgIG1hcmdpbjogMCAwIDRweCAwOwogICAgICB9CgogICAgICAuZGV0YWlsLWNhdGVnb3J5IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcGFkZGluZzogMnB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5OXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwtbWV0YSBhIHsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICAuZGV0YWlsLW1ldGEgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIH0KCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpOwogICAgICAgIGNvbG9yOiAjNjBhNWZhOwogICAgICAgIG1hcmdpbi1yaWdodDogNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgICAgfQoKICAgICAgLnZlcnNpb24tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAudmVyc2lvbi1zZWxlY3QgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTMsICMzZjNmNDYpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmltYWdlLXRhZyB7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICNhMWExYWEpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAuZW52LXRhYmxlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICB9CgogICAgICAuZW52LXRhYmxlIHRoIHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsKICAgICAgICBwYWRkaW5nOiA4cHggOHB4IDhweCAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgfQoKICAgICAgLmVudi10YWJsZSB0ZCB7CiAgICAgICAgcGFkZGluZzogNnB4IDhweCA2cHggMDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAuZW52LWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0zLCAjM2YzZjQ2KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDhweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmVudi1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC5lbnYta2V5IHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNiwgI2Q0ZDRkOCk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmVudi1kZXNjIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOwogICAgICB9CgogICAgICAuZW52LWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMXB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDZweDsKICAgICAgfQoKICAgICAgLmVudi1iYWRnZS5yZXF1aXJlZCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7CiAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgIH0KCiAgICAgIC5lbnYtYmFkZ2UuYXV0byB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4xNSk7CiAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgIH0KCiAgICAgIC5uYW1lLWlucHV0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0zLCAjM2YzZjQ2KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS03LCAjZTRlNGU3KTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICB9CgogICAgICAuYnRuIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5idG46aG92ZXIgeyBvcGFjaXR5OiAwLjk7IH0KCiAgICAgIC5idG4tcHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTAsICMwOTA5MGIpOwogICAgICB9CgogICAgICAuYnRuLXNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTYsICNkNGQ0ZDgpOwogICAgICB9CgogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7CiAgICAgIH0KCiAgICAgIC5mb290cHJpbnQtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmZvb3RwcmludC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNpLXNoYWRlLTIsICMyNzI3MmEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWNpLXNoYWRlLTYsICNkNGQ0ZDgpOwogICAgICB9CgogICAgICAuZm9vdHByaW50LW1ldGEgewogICAgICAgIGNvbG9yOiB2YXIoLS1jaS1zaGFkZS00LCAjNzE3MTdhKTsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuZXhwb3N1cmUtd2FybmluZyB7CiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICBjb2xvcjogI2ZiYmYyNDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQogICAgYF0pLFhlKHRhLDEsTW4pO2RidD1Nbn0pO3ZhciBacWEsX21lLGhvYT11KCgpPT57bzEoKTtHdygpO1pxYT1IaC5kb210b29scyxfbWU9Y2xhc3N7Y29uc3RydWN0b3IoZSxyKXt0aGlzLnNlcnZpY2VOYW1lPWU7dGhpcy5pZGVudGl0eT1yLHRoaXMucmVnaXN0ZXJQcm9jZXNzU29ja2V0SGFuZGxlcnMoKX1zZXJ2aWNlTmFtZTtzdGF0aWN7aSh0aGlzLCJCYWNrZW5kRXhlY3V0aW9uRW52aXJvbm1lbnQiKX10eXBlPSJiYWNrZW5kIjtfcmVhZHk9ITE7aWRlbnRpdHk7cHJvY2Vzc1JvdXRlcj1uZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSb3V0ZXI7cHJvY2Vzc1NvY2tldD1udWxsO3Byb2Nlc3NTb2NrZXRQcm9taXNlPW51bGw7cHJvY2Vzc1N0YXRlcz1uZXcgTWFwO2dldCByZWFkeSgpe3JldHVybiB0aGlzLl9yZWFkeX1hc3luYyBpbml0KCl7aWYoIShhd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VFeGlzdHMiLHtwYXRoOiIvIn0pKS5leGlzdHMpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgYWNjZXNzIGNvbnRhaW5lciBmaWxlc3lzdGVtIGZvciBzZXJ2aWNlOiAke3RoaXMuc2VydmljZU5hbWV9YCk7dGhpcy5fcmVhZHk9ITB9YXN5bmMgZGVzdHJveSgpe2ZvcihsZXQgZSBvZiBBcnJheS5mcm9tKHRoaXMucHJvY2Vzc1N0YXRlcy5rZXlzKCkpKWF3YWl0IHRoaXMua2lsbFByb2Nlc3MoZSkuY2F0Y2goKCk9Pnt9KTthd2FpdCB0aGlzLnByb2Nlc3NTb2NrZXQ/LnN0b3AoKS5jYXRjaCgoKT0+e30pLHRoaXMucHJvY2Vzc1NvY2tldD1udWxsLHRoaXMucHJvY2Vzc1NvY2tldFByb21pc2U9bnVsbCx0aGlzLl9yZWFkeT0hMX1hc3luYyByZWFkRmlsZShlKXtyZXR1cm4oYXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlUmVhZEZpbGUiLHtwYXRoOmV9KSkuY29udGVudH1hc3luYyB3cml0ZUZpbGUoZSxyKXthd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VXcml0ZUZpbGUiLHtwYXRoOmUsY29udGVudDpyfSl9YXN5bmMgcmVhZERpcihlKXtyZXR1cm4oYXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlUmVhZERpciIse3BhdGg6ZX0pKS5lbnRyaWVzfWFzeW5jIG1rZGlyKGUpe2F3YWl0IHRoaXMuZmlyZVJlcXVlc3QoIndvcmtzcGFjZU1rZGlyIix7cGF0aDplfSl9YXN5bmMgcm0oZSxyKXthd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VSbSIse3BhdGg6ZSxyZWN1cnNpdmU6cj8ucmVjdXJzaXZlfSl9YXN5bmMgZXhpc3RzKGUpe3JldHVybihhd2FpdCB0aGlzLmZpcmVSZXF1ZXN0KCJ3b3Jrc3BhY2VFeGlzdHMiLHtwYXRoOmV9KSkuZXhpc3RzfXdhdGNoKGUscixhKXtyZXR1cm57c3RvcDppKCgpPT57fSwic3RvcCIpfX1hc3luYyBzcGF3bihlLHIpe2xldCBhPWF3YWl0IHRoaXMuZW5zdXJlUHJvY2Vzc1NvY2tldCgpLHM9Y3J5cHRvLnJhbmRvbVVVSUQoKTthd2FpdCBhLnNldFRhZyhgd29ya3NwYWNlUHJvY2Vzczoke3N9YCwhMCk7bGV0IG49aSgoKT0+e30sInJlc29sdmVFeGl0Iiksbz1uZXcgUHJvbWlzZShkPT57bj1kfSksbD1uZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0OmkoZD0+e3RoaXMucHJvY2Vzc1N0YXRlcy5zZXQocyx7b3V0cHV0Q29udHJvbGxlcjpkLHJlc29sdmVFeGl0Om59KX0sInN0YXJ0IiksY2FuY2VsOmkoYXN5bmMoKT0+e2F3YWl0IHRoaXMua2lsbFByb2Nlc3MocykuY2F0Y2goKCk9Pnt9KX0sImNhbmNlbCIpfSk7dHJ5e2F3YWl0IGEuY3JlYXRlVHlwZWRSZXF1ZXN0KCJ3b3Jrc3BhY2VTdGFydFByb2Nlc3MiKS5maXJlKHtpZGVudGl0eTp0aGlzLmlkZW50aXR5LHNlcnZpY2VOYW1lOnRoaXMuc2VydmljZU5hbWUscHJvY2Vzc0lkOnMsY29tbWFuZDplLGFyZ3M6cn0pfWNhdGNoKGQpe2xldCBmPXRoaXMucHJvY2Vzc1N0YXRlcy5nZXQocyk7dGhpcy5wcm9jZXNzU3RhdGVzLmRlbGV0ZShzKSxhd2FpdCBhLnJlbW92ZVRhZyhgd29ya3NwYWNlUHJvY2Vzczoke3N9YCkuY2F0Y2goKCk9Pnt9KTt0cnl7Zj8ub3V0cHV0Q29udHJvbGxlci5lcnJvcihkKX1jYXRjaHt9dGhyb3cgZH1sZXQgYz1uZXcgV3JpdGFibGVTdHJlYW0oe3dyaXRlOmkoYXN5bmMgZD0+e2F3YWl0IGEuY3JlYXRlVHlwZWRSZXF1ZXN0KCJ3b3Jrc3BhY2VQcm9jZXNzSW5wdXQiKS5maXJlKHtpZGVudGl0eTp0aGlzLmlkZW50aXR5LHByb2Nlc3NJZDpzLGlucHV0OmR9KX0sIndyaXRlIiksYWJvcnQ6aShhc3luYygpPT57YXdhaXQgdGhpcy5raWxsUHJvY2VzcyhzKS5jYXRjaCgoKT0+e30pfSwiYWJvcnQiKX0pO3JldHVybntvdXRwdXQ6bCxpbnB1dDpjLGV4aXQ6byxraWxsOmkoKCk9Pnt0aGlzLmtpbGxQcm9jZXNzKHMpfSwia2lsbCIpfX1hc3luYyBnZXRTaGVsbENvbW1hbmQoKXtyZXR1cm4oYXdhaXQgdGhpcy5maXJlUmVxdWVzdCgid29ya3NwYWNlR2V0U2hlbGxDb21tYW5kIix7fSkpLnNoZWxsQ29tbWFuZH1yZWdpc3RlclByb2Nlc3NTb2NrZXRIYW5kbGVycygpe3RoaXMucHJvY2Vzc1JvdXRlci5hZGRUeXBlZEhhbmRsZXIobmV3IGN0LnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkSGFuZGxlcigicHVzaFdvcmtzcGFjZVByb2Nlc3NPdXRwdXQiLGFzeW5jIGU9Pih0aGlzLnByb2Nlc3NTdGF0ZXMuZ2V0KGUucHJvY2Vzc0lkKT8ub3V0cHV0Q29udHJvbGxlci5lbnF1ZXVlKGUub3V0cHV0KSx7fSkpKSx0aGlzLnByb2Nlc3NSb3V0ZXIuYWRkVHlwZWRIYW5kbGVyKG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZEhhbmRsZXIoInB1c2hXb3Jrc3BhY2VQcm9jZXNzRXhpdCIsYXN5bmMgZT0+KHRoaXMuY29tcGxldGVQcm9jZXNzU3RhdGUoZS5wcm9jZXNzSWQsZS5leGl0Q29kZSksYXdhaXQgdGhpcy5wcm9jZXNzU29ja2V0Py5yZW1vdmVUYWcoYHdvcmtzcGFjZVByb2Nlc3M6JHtlLnByb2Nlc3NJZH1gKS5jYXRjaCgoKT0+e30pLHt9KSkpfWFzeW5jIGVuc3VyZVByb2Nlc3NTb2NrZXQoKXtyZXR1cm4gdGhpcy5wcm9jZXNzU29ja2V0P3RoaXMucHJvY2Vzc1NvY2tldDoodGhpcy5wcm9jZXNzU29ja2V0UHJvbWlzZXx8KHRoaXMucHJvY2Vzc1NvY2tldFByb21pc2U9JDMuVHlwZWRTb2NrZXQuY3JlYXRlQ2xpZW50KHRoaXMucHJvY2Vzc1JvdXRlciwkMy5UeXBlZFNvY2tldC51c2VXaW5kb3dMb2NhdGlvbk9yaWdpblVybCgpLHthdXRvUmVjb25uZWN0OiEwfSkpLHRoaXMucHJvY2Vzc1NvY2tldD1hd2FpdCB0aGlzLnByb2Nlc3NTb2NrZXRQcm9taXNlLHRoaXMucHJvY2Vzc1NvY2tldCl9Y29tcGxldGVQcm9jZXNzU3RhdGUoZSxyKXtsZXQgYT10aGlzLnByb2Nlc3NTdGF0ZXMuZ2V0KGUpO2lmKGEpe3RyeXthLm91dHB1dENvbnRyb2xsZXIuY2xvc2UoKX1jYXRjaHt9YS5yZXNvbHZlRXhpdChyKSx0aGlzLnByb2Nlc3NTdGF0ZXMuZGVsZXRlKGUpfX1hc3luYyBraWxsUHJvY2VzcyhlKXtsZXQgcj10aGlzLnByb2Nlc3NTb2NrZXQ7ciYmKGF3YWl0IHIuY3JlYXRlVHlwZWRSZXF1ZXN0KCJ3b3Jrc3BhY2VLaWxsUHJvY2VzcyIpLmZpcmUoe2lkZW50aXR5OnRoaXMuaWRlbnRpdHkscHJvY2Vzc0lkOmV9KS5jYXRjaCgoKT0+e30pLHRoaXMuY29tcGxldGVQcm9jZXNzU3RhdGUoZSwtMSksYXdhaXQgci5yZW1vdmVUYWcoYHdvcmtzcGFjZVByb2Nlc3M6JHtlfWApLmNhdGNoKCgpPT57fSkpfWFzeW5jIGZpcmVSZXF1ZXN0KGUscil7cmV0dXJuIGF3YWl0IG5ldyBacWEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IixlKS5maXJlKHtpZGVudGl0eTp0aGlzLmlkZW50aXR5LHNlcnZpY2VOYW1lOnRoaXMuc2VydmljZU5hbWUsLi4ucn0pfX19KTt2YXIgem9hPXt9O1ZlKHpvYSx7T2JWaWV3U2VydmljZXM6KCk9PnZidH0pO2Z1bmN0aW9uIFRtZSh0KXtpZighdHx8dD09PTApcmV0dXJuIjAgQiI7bGV0IGU9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiXSxyPTEwMjQsYT1NYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGgubG9nKHIpKTtyZXR1cm5gJHsodC9NYXRoLnBvdyhyLGEpKS50b0ZpeGVkKDEpfSAke2VbYV19YH1mdW5jdGlvbiBRcWEodCl7bGV0IGU9dC5sYXN0SW5kZXhPZigiOiIpLHI9dC5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBlPnImJmU+MD97cmVwb3NpdG9yeTp0LnN1YnN0cmluZygwLGUpLHRhZzp0LnN1YnN0cmluZyhlKzEpfTp7cmVwb3NpdG9yeTp0LHRhZzoibGF0ZXN0In19ZnVuY3Rpb24gbW9hKHQpe3N3aXRjaCh0KXtjYXNlInJ1bm5pbmciOnJldHVybiJydW5uaW5nIjtjYXNlInN0YXJ0aW5nIjpyZXR1cm4ic3RhcnRpbmciO2Nhc2UiZmFpbGVkIjpyZXR1cm4iZXJyb3IiO2RlZmF1bHQ6cmV0dXJuInN0b3BwZWQifX1mdW5jdGlvbiBYcWEodCl7bGV0IGU9UXFhKHQuaW1hZ2UpO3JldHVybntuYW1lOnQubmFtZSxzdGF0dXM6bW9hKHQuc3RhdHVzKSxpbWFnZTp0LmltYWdlLHBvcnQ6dC5wb3J0LGRvbWFpbjp0LmRvbWFpbnx8bnVsbCxjb250YWluZXJJZDp0LmNvbnRhaW5lcklEfHwiIixjcmVhdGVkOnQuY3JlYXRlZEF0P25ldyBEYXRlKHQuY3JlYXRlZEF0KS50b0xvY2FsZVN0cmluZygpOiItIix1cGRhdGVkOnQudXBkYXRlZEF0P25ldyBEYXRlKHQudXBkYXRlZEF0KS50b0xvY2FsZVN0cmluZygpOiItIixyZWdpc3RyeTp0LnVzZU9uZWJveFJlZ2lzdHJ5PyJPbmVib3ggUmVnaXN0cnkiOnQucmVnaXN0cnl8fCJEb2NrZXIgSHViIixyZXBvc2l0b3J5OnQucmVnaXN0cnlSZXBvc2l0b3J5fHxlLnJlcG9zaXRvcnksdGFnOnQucmVnaXN0cnlJbWFnZVRhZ3x8ZS50YWd9fWZ1bmN0aW9uIEpxYSh0KXtyZXR1cm57Y3B1OnQuY3B1UGVyY2VudCxtZW1vcnk6VG1lKHQubWVtb3J5VXNlZCksbWVtb3J5TGltaXQ6VG1lKHQubWVtb3J5TGltaXQpLG5ldHdvcmtJbjpUbWUodC5uZXR3b3JrUngpLG5ldHdvcmtPdXQ6VG1lKHQubmV0d29ya1R4KX19ZnVuY3Rpb24gZVZhKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QubWFwKGU9PntsZXQgcj1lLnRpbWVzdGFtcD90eXBlb2YgZS50aW1lc3RhbXA9PSJudW1iZXIiP25ldyBEYXRlKGUudGltZXN0YW1wKS50b0lTT1N0cmluZygpOlN0cmluZyhlLnRpbWVzdGFtcCk6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGE9ZS5tZXNzYWdlfHxTdHJpbmcoZSkscz1lLmxldmVsfHwiaW5mbyI7cmV0dXJue3RpbWVzdGFtcDpyLG1lc3NhZ2U6YSxsZXZlbDpzfX0pOnR5cGVvZiB0PT0ic3RyaW5nIiYmdC50cmltKCk/dC5zcGxpdChgCmApLmZpbHRlcihlPT5lLnRyaW0oKSkubWFwKGU9PntsZXQgcj1lLm1hdGNoKC9eKFxkezR9LVxkezJ9LVxkezJ9VFtcZDouXStaPylccysoLiopLyksYT1yP3JbMV06bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHM9cj9yWzJdOmUsbj1zLnRvTG93ZXJDYXNlKCksbz1uLmluY2x1ZGVzKCJlcnJvciIpfHxuLmluY2x1ZGVzKCJmYXRhbCIpPyJlcnJvciI6bi5pbmNsdWRlcygid2FybiIpPyJ3YXJuIjoiaW5mbyI7cmV0dXJue3RpbWVzdGFtcDphLG1lc3NhZ2U6cyxsZXZlbDpvfX0pOltdfXZhciBnb2EsYm9hLHhvYSx2b2EseW9hLHdvYSxrb2EsU29hLE1vYSxDb2EsZWksdWJ0LHBidCxmYnQsaGJ0LG1idCxnYnQsYmJ0LHhidCx0VmEsZDEsdmJ0LHlidD11KGFzeW5jKCk9PntvMSgpO1JjKCk7YXdhaXQgcDIoKTtHdygpO2hvYSgpO05vKCk7aShUbWUsImZvcm1hdEJ5dGVzIik7aShRcWEsInBhcnNlSW1hZ2VTdHJpbmciKTtpKG1vYSwibWFwU3RhdHVzIik7aShYcWEsInRvU2VydmljZURldGFpbCIpO2koSnFhLCJ0b1NlcnZpY2VTdGF0cyIpO2koZVZhLCJwYXJzZUxvZ3MiKTt0VmE9e2NwdTowLG1lbW9yeToiMCBCIixtZW1vcnlMaW1pdDoiMCBCIixuZXR3b3JrSW46IjAgQiIsbmV0d29ya091dDoiMCBCIn07Q29hPVt2aSgib2Itdmlldy1zZXJ2aWNlcyIpXTtkMT1jbGFzcyBkMSBleHRlbmRzKE1vYT15aSxTb2E9W1p0KCldLGtvYT1bWnQoKV0sd29hPVtadCgpXSx5b2E9W1p0KCldLHZvYT1bWnQoKV0seG9hPVtadCgpXSxib2E9W1p0KCldLGdvYT1bWnQoKV0sTW9hKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dHIodGhpcyx1YnQsWGUoZWksOCx0aGlzLHtzZXJ2aWNlczpbXSxjdXJyZW50U2VydmljZTpudWxsLGN1cnJlbnRTZXJ2aWNlTG9nczpbXSxjdXJyZW50U2VydmljZVN0YXRzOm51bGwscGxhdGZvcm1TZXJ2aWNlczpbXSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzOm51bGwsY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3M6W119KSksWGUoZWksMTEsdGhpcyk7dHIodGhpcyxwYnQsWGUoZWksMTIsdGhpcyx7YmFja3VwczpbXSxzY2hlZHVsZXM6W119KSksWGUoZWksMTUsdGhpcyk7dHIodGhpcyxmYnQsWGUoZWksMTYsdGhpcywibGlzdCIpKSxYZShlaSwxOSx0aGlzKTt0cih0aGlzLGhidCxYZShlaSwyMCx0aGlzLCIiKSksWGUoZWksMjMsdGhpcyk7dHIodGhpcyxtYnQsWGUoZWksMjQsdGhpcywiIikpLFhlKGVpLDI3LHRoaXMpO3RyKHRoaXMsZ2J0LFhlKGVpLDI4LHRoaXMsITEpKSxYZShlaSwzMSx0aGlzKTt0cih0aGlzLGJidCxYZShlaSwzMix0aGlzLG51bGwpKSxYZShlaSwzNSx0aGlzKTt0cih0aGlzLHhidCxYZShlaSwzNix0aGlzLHthcHBzOltdLHVwZ3JhZGVhYmxlU2VydmljZXM6W10sdXBncmFkZU9wZXJhdGlvbnM6W119KSksWGUoZWksMzksdGhpcyk7bGV0IHI9R3Quc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5zZXJ2aWNlc1N0YXRlPW59KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpO2xldCBhPUZjLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMuYmFja3Vwc1N0YXRlPW59KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBzPWwxLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMuYXBwU3RvcmVTdGF0ZT1ufSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChzKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgUHJvbWlzZS5hbGwoW0d0LmRpc3BhdGNoQWN0aW9uKHltZSxudWxsKSxHdC5kaXNwYXRjaEFjdGlvbih3bWUsbnVsbCksbDEuZGlzcGF0Y2hBY3Rpb24oQm5hLG51bGwpLGwxLmRpc3BhdGNoQWN0aW9uKENtZSxudWxsKV0pO2xldCByPUd0LmdldFN0YXRlKCk7aWYoci5jdXJyZW50UGxhdGZvcm1TZXJ2aWNlKXtsZXQgYT1yLmN1cnJlbnRQbGF0Zm9ybVNlcnZpY2UudHlwZTtHdC5zZXRTdGF0ZSh7Li4uR3QuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlOm51bGx9KSx0aGlzLm5hdmlnYXRlVG9QbGF0Zm9ybURldGFpbChhKX19cmVuZGVyKCl7c3dpdGNoKHRoaXMuY3VycmVudFZpZXcpe2Nhc2UiY3JlYXRlIjpyZXR1cm4gdGhpcy5yZW5kZXJDcmVhdGVWaWV3KCk7Y2FzZSJkZXRhaWwiOnJldHVybiB0aGlzLnJlbmRlckRldGFpbFZpZXcoKTtjYXNlImJhY2t1cHMiOnJldHVybiB0aGlzLnJlbmRlckJhY2t1cHNWaWV3KCk7Y2FzZSJwbGF0Zm9ybS1kZXRhaWwiOnJldHVybiB0aGlzLnJlbmRlclBsYXRmb3JtRGV0YWlsVmlldygpO2RlZmF1bHQ6cmV0dXJuIHRoaXMucmVuZGVyTGlzdFZpZXcoKX19cmVuZGVyTGlzdFZpZXcoKXtsZXQgcj10aGlzLnNlcnZpY2VzU3RhdGUuc2VydmljZXMubWFwKGw9Pih7bmFtZTpsLm5hbWUsaW1hZ2U6bC5pbWFnZSxkb21haW46bC5kb21haW58fG51bGwsc3RhdHVzOm1vYShsLnN0YXR1cyl9KSksYT1pKGw9Pntzd2l0Y2gobCl7Y2FzZSJydW5uaW5nIjpyZXR1cm4iUnVubmluZyI7Y2FzZSJzdG9wcGVkIjpyZXR1cm4iU3RvcHBlZCI7Y2FzZSJzdGFydGluZyI6cmV0dXJuIlN0YXJ0aW5nLi4uIjtjYXNlInN0b3BwaW5nIjpyZXR1cm4iU3RvcHBpbmcuLi4iO2Nhc2UiZmFpbGVkIjpyZXR1cm4iRmFpbGVkIjtjYXNlIm5vdC1kZXBsb3llZCI6cmV0dXJuIk5vdCBEZXBsb3llZCI7ZGVmYXVsdDpyZXR1cm4gbH19LCJkaXNwbGF5U3RhdHVzIikscz10aGlzLnNlcnZpY2VzU3RhdGUucGxhdGZvcm1TZXJ2aWNlcy5maWx0ZXIobD0+bC5zdGF0dXM9PT0icnVubmluZyJ8fGwuc3RhdHVzPT09InN0YXJ0aW5nInx8bC5zdGF0dXM9PT0ic3RvcHBpbmcifHxsLmlzQ29yZSksbj10aGlzLnNlcnZpY2VzU3RhdGUucGxhdGZvcm1TZXJ2aWNlcy5maWx0ZXIobD0+IWwuaXNDb3JlJiYobC5zdGF0dXM9PT0ibm90LWRlcGxveWVkInx8bC5zdGF0dXM9PT0ic3RvcHBlZCJ8fGwuc3RhdHVzPT09ImZhaWxlZCIpKSxvPXMubWFwKGw9Pih7bmFtZTpsLmRpc3BsYXlOYW1lLHN0YXR1czphKGwuc3RhdHVzKSxydW5uaW5nOmwuc3RhdHVzPT09InJ1bm5pbmciLHR5cGU6bC50eXBlfSkpO3JldHVybiBRZWAKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPlNlcnZpY2VzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBjbGFzcz0icGFnZS1hY3Rpb25zIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZXBsb3ktYnV0dG9uIiBAY2xpY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9ImNyZWF0ZSJ9fT4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiPjwvbGluZT4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgRGVwbG95IFNlcnZpY2UKICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxzei1zZXJ2aWNlcy1saXN0LXZpZXcKICAgICAgICAuc2VydmljZXM9JHtyfQogICAgICAgIEBzZXJ2aWNlLWNsaWNrPSR7bD0+e3RoaXMuc2VsZWN0ZWRTZXJ2aWNlTmFtZT1sLmRldGFpbC5uYW1lfHxsLmRldGFpbC5zZXJ2aWNlPy5uYW1lLEd0LmRpc3BhdGNoQWN0aW9uKHZuYSx7bmFtZTp0aGlzLnNlbGVjdGVkU2VydmljZU5hbWV9KSxHdC5kaXNwYXRjaEFjdGlvbihNbmEse25hbWU6dGhpcy5zZWxlY3RlZFNlcnZpY2VOYW1lfSksR3QuZGlzcGF0Y2hBY3Rpb24oQ25hLHtuYW1lOnRoaXMuc2VsZWN0ZWRTZXJ2aWNlTmFtZX0pLHRoaXMuY3VycmVudFZpZXc9ImRldGFpbCJ9fQogICAgICAgIEBzZXJ2aWNlLWFjdGlvbj0ke2w9PnRoaXMuaGFuZGxlU2VydmljZUFjdGlvbihsKX0KICAgICAgPjwvc3otc2VydmljZXMtbGlzdC12aWV3PgogICAgICA8b2Itc2VjdGlvbmhlYWRpbmcgc3R5bGU9Im1hcmdpbi10b3A6IDMycHg7Ij5QbGF0Zm9ybSBTZXJ2aWNlczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxkaXYgc3R5bGU9Im1heC13aWR0aDogNTAwcHg7Ij4KICAgICAgICAke28ubGVuZ3RoPjA/UWVgCiAgICAgICAgICA8c3otcGxhdGZvcm0tc2VydmljZXMtY2FyZAogICAgICAgICAgICAuc2VydmljZXM9JHtvfQogICAgICAgICAgICBAc2VydmljZS1jbGljaz0ke2w9PntsZXQgYz1sLmRldGFpbC50eXBlfHx0aGlzLnNlcnZpY2VzU3RhdGUucGxhdGZvcm1TZXJ2aWNlcy5maW5kKGQ9PmQuZGlzcGxheU5hbWU9PT1sLmRldGFpbC5uYW1lKT8udHlwZTtjJiZ0aGlzLm5hdmlnYXRlVG9QbGF0Zm9ybURldGFpbChjKX19CiAgICAgICAgICA+PC9zei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkPgogICAgICAgIGA6IiJ9CiAgICAgICAgJHtuLmxlbmd0aD4wP1FlYAogICAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNpLXNoYWRlLTEsICMwOTA5MGIpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICBtYXJnaW4tdG9wOiAke28ubGVuZ3RoPjA/IjEycHgiOiIwIn07CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgICI+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tYm90dG9tOiAxMnB4OyI+QXZhaWxhYmxlIOKAlCBub3QgaW4gdXNlPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTJweDsiPgogICAgICAgICAgICAgICR7bi5tYXAobD0+UWVgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDhweCAwOyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZTsiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9QbGF0Zm9ybURldGFpbChsLnR5cGUpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0zLCAjM2YzZjQ2KTsgZmxleC1zaHJpbms6IDA7Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7Ij4ke2wuZGlzcGxheU5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTMsICMzZjNmNDYpOyI+JHthKGwuc3RhdHVzKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZGVwbG95RnJvbVRlbXBsYXRlKHIpe2xldCBhPXIuaWR8fHIubmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05LV0vZywiLSIpLHM9e307aWYoci5lbnZWYXJzKWZvcihsZXQgbyBvZiByLmVudlZhcnMpby5rZXkmJm8udmFsdWUmJihzW28ua2V5XT1vLnZhbHVlKTtsZXQgbj17bmFtZTphLGltYWdlOnIuaW1hZ2UscG9ydDpyLnBvcnR8fDgwLGVudlZhcnM6cyxlbmFibGVNb25nb0RCOnIuZW5hYmxlTW9uZ29EQnx8ITEsZW5hYmxlUzM6ci5lbmFibGVTM3x8ITEsZW5hYmxlQ2xpY2tIb3VzZTpyLmVuYWJsZUNsaWNrSG91c2V8fCExLGVuYWJsZVJlZGlzOnIuZW5hYmxlUmVkaXN8fCExLGVuYWJsZU1hcmlhREI6ci5lbmFibGVNYXJpYURCfHwhMX07YXdhaXQgR3QuZGlzcGF0Y2hBY3Rpb24oUmd0LHtjb25maWc6bn0pLHRoaXMucGVuZGluZ1RlbXBsYXRlPW51bGwsdGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9cmVuZGVyQ3JlYXRlVmlldygpe2lmKHRoaXMucGVuZGluZ1RlbXBsYXRlKXtsZXQgcj10aGlzLnBlbmRpbmdUZW1wbGF0ZTtyZXR1cm4gUWVgCiAgICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkRlcGxveSAke3IubmFtZX08L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICAgIDxkaXYgc3R5bGU9Im1heC13aWR0aDogNjAwcHg7IG1hcmdpbjogMCBhdXRvOyI+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjMDkwOTBiKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7IGJvcmRlci1yYWRpdXM6IDhweDsgcGFkZGluZzogMjRweDsgbWFyZ2luLWJvdHRvbTogMTZweDsiPgogICAgICAgICAgICA8aDMgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE4cHg7Ij4ke3IubmFtZX08L2gzPgogICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwIDAgMTZweCAwOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7IGZvbnQtc2l6ZTogMTRweDsiPiR7ci5kZXNjcmlwdGlvbn08L3A+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgZ2FwOiAxMnB4OyBmb250LXNpemU6IDEzcHg7Ij4KICAgICAgICAgICAgICA8ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7Ij5JbWFnZTo8L3NwYW4+IDxzdHJvbmc+JHtyLmltYWdlfTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPlBvcnQ6PC9zcGFuPiA8c3Ryb25nPiR7ci5wb3J0fTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPlNlcnZpY2UgTmFtZTo8L3NwYW4+IDxzdHJvbmc+JHtyLmlkfTwvc3Ryb25nPjwvZGl2PgogICAgICAgICAgICAgIDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjYTFhMWFhKTsiPkNhdGVnb3J5Ojwvc3Bhbj4gPHN0cm9uZz4ke3IuY2F0ZWdvcnl9PC9zdHJvbmc+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3IuZW5hYmxlTW9uZ29EQnx8ci5lbmFibGVTM3x8ci5lbmFibGVDbGlja0hvdXNlfHxyLmVuYWJsZVJlZGlzfHxyLmVuYWJsZU1hcmlhREI/UWVgCiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTJweDsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7Ij4KICAgICAgICAgICAgICAgIFBsYXRmb3JtIFNlcnZpY2VzOgogICAgICAgICAgICAgICAgJHtyLmVuYWJsZU1vbmdvREI/UWVgPHNwYW4gc3R5bGU9Im1hcmdpbi1yaWdodDogOHB4OyI+TW9uZ29EQjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICAgJHtyLmVuYWJsZVMzP1FlYDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPlMzPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAke3IuZW5hYmxlQ2xpY2tIb3VzZT9RZWA8c3BhbiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA4cHg7Ij5DbGlja0hvdXNlPC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAke3IuZW5hYmxlUmVkaXM/UWVgPHNwYW4gc3R5bGU9Im1hcmdpbi1yaWdodDogOHB4OyI+UmVkaXM8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICR7ci5lbmFibGVNYXJpYURCP1FlYDxzcGFuIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDhweDsiPk1hcmlhREI8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAxMnB4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRlcGxveS1idXR0b24iIHN0eWxlPSJiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktc2hhZGUtMiwgIzI3MjcyYSk7IGNvbG9yOiBpbmhlcml0OyIgQGNsaWNrPSR7KCk9Pnt0aGlzLnBlbmRpbmdUZW1wbGF0ZT1udWxsLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifX0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRlcGxveS1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmRlcGxveUZyb21UZW1wbGF0ZShyKX0+RGVwbG95ICR7ci5uYW1lfTwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9cmV0dXJuIFFlYAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+Q3JlYXRlIFNlcnZpY2U8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otc2VydmljZS1jcmVhdGUtdmlldwogICAgICAgIC5yZWdpc3RyaWVzPSR7W119CiAgICAgICAgQGNyZWF0ZS1zZXJ2aWNlPSR7YXN5bmMgcj0+e2xldCBhPXIuZGV0YWlsLHM9e25hbWU6YS5uYW1lLGltYWdlOmEuaW1hZ2UscG9ydDphLnBvcnRzPy5bMF0/LmNvbnRhaW5lclBvcnQ/cGFyc2VJbnQoYS5wb3J0c1swXS5jb250YWluZXJQb3J0LDEwKTo4MCxlbnZWYXJzOmEuZW52VmFycz8ucmVkdWNlKChuLG8pPT4oby5rZXkmJihuW28ua2V5XT1vLnZhbHVlKSxuKSx7fSksZW5hYmxlTW9uZ29EQjphLmVuYWJsZU1vbmdvREJ8fCExLGVuYWJsZVMzOmEuZW5hYmxlUzN8fCExLGVuYWJsZUNsaWNrSG91c2U6YS5lbmFibGVDbGlja0hvdXNlfHwhMSxlbmFibGVSZWRpczphLmVuYWJsZVJlZGlzfHwhMSxlbmFibGVNYXJpYURCOmEuZW5hYmxlTWFyaWFEQnx8ITF9O2F3YWl0IEd0LmRpc3BhdGNoQWN0aW9uKFJndCx7Y29uZmlnOnN9KSx0aGlzLmN1cnJlbnRWaWV3PSJsaXN0In19CiAgICAgICAgQGNhbmNlbD0keygpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICA+PC9zei1zZXJ2aWNlLWNyZWF0ZS12aWV3PgogICAgYH1yZW5kZXJEZXRhaWxWaWV3KCl7bGV0IHI9dGhpcy5zZXJ2aWNlc1N0YXRlLmN1cnJlbnRTZXJ2aWNlLGE9cj9YcWEocik6bnVsbCxzPXRoaXMuc2VydmljZXNTdGF0ZS5jdXJyZW50U2VydmljZVN0YXRzP0pxYSh0aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFNlcnZpY2VTdGF0cyk6dFZhLG49ZVZhKHRoaXMuc2VydmljZXNTdGF0ZS5jdXJyZW50U2VydmljZUxvZ3MpLG89cj90aGlzLmFwcFN0b3JlU3RhdGUudXBncmFkZWFibGVTZXJ2aWNlcy5maW5kKGQ9PmQuc2VydmljZU5hbWU9PT1yLm5hbWUpOm51bGwsbD1yP3RoaXMuYXBwU3RvcmVTdGF0ZS51cGdyYWRlT3BlcmF0aW9ucy5maW5kKGQ9PmQuc2VydmljZU5hbWU9PT1yLm5hbWUmJmQuc3RhdHVzPT09InJ1bm5pbmciKTpudWxsLGM9cj90aGlzLmFwcFN0b3JlU3RhdGUudXBncmFkZU9wZXJhdGlvbnMuZmluZChkPT5kLnNlcnZpY2VOYW1lPT09ci5uYW1lKTpudWxsO3JldHVybiBRZWAKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPlNlcnZpY2UgRGV0YWlsczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgICR7bD90aGlzLnJlbmRlclVwZ3JhZGVPcGVyYXRpb24obCk6IiJ9CiAgICAgICR7IWwmJmM/LnN0YXR1cz09PSJmYWlsZWQiP3RoaXMucmVuZGVyVXBncmFkZU9wZXJhdGlvbihjKToiIn0KICAgICAgJHtvP1FlYAogICAgICAgIDxkaXYgc3R5bGU9IgogICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSksIHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjEpKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAiPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNywgI2U0ZTRlNyk7Ij4KICAgICAgICAgICAgICBVcGRhdGUgYXZhaWxhYmxlOiB2JHtvLmN1cnJlbnRWZXJzaW9ufSAmcmFycjsgdiR7by5sYXRlc3RWZXJzaW9ufQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNCwgIzcxNzE3YSk7IG1hcmdpbi10b3A6IDRweDsiPgogICAgICAgICAgICAgICR7by5oYXNNaWdyYXRpb24/Ik1pZ3JhdGlvbiBzY3JpcHQgYXZhaWxhYmxlIjoiQ29uZmlnLW9ubHkgdXBncmFkZSJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIGNsYXNzPSJkZXBsb3ktYnV0dG9uIgogICAgICAgICAgICBzdHlsZT0icGFkZGluZzogOHB4IDE2cHg7IGZvbnQtc2l6ZTogMTNweDsiCiAgICAgICAgICAgID9kaXNhYmxlZD0keyEhbH0KICAgICAgICAgICAgQGNsaWNrPSR7YXN5bmMoKT0+e2F3YWl0IGwxLmRpc3BhdGNoQWN0aW9uKEhuYSx7c2VydmljZU5hbWU6by5zZXJ2aWNlTmFtZSx0YXJnZXRWZXJzaW9uOm8ubGF0ZXN0VmVyc2lvbn0pfX0KICAgICAgICAgID4ke2w/IlVwZ3JhZGluZy4uLiI6IlVwZ3JhZGUifTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICA8c3otc2VydmljZS1kZXRhaWwtdmlldwogICAgICAgIC5zZXJ2aWNlPSR7YX0KICAgICAgICAubG9ncz0ke259CiAgICAgICAgLnN0YXRzPSR7c30KICAgICAgICBAYmFjaz0keygpPT57dGhpcy5jdXJyZW50Vmlldz0ibGlzdCJ9fQogICAgICAgIEBzZXJ2aWNlLWFjdGlvbj0ke2Q9PnRoaXMuaGFuZGxlU2VydmljZUFjdGlvbihkKX0KICAgICAgICBAcmVxdWVzdC13b3Jrc3BhY2U9JHthc3luYyBkPT57bGV0IGY9ZC5kZXRhaWw/LnNlcnZpY2U/Lm5hbWV8fHRoaXMuc2VsZWN0ZWRTZXJ2aWNlTmFtZSxwPUdpLmdldFN0YXRlKCkuaWRlbnRpdHk7aWYoISghZnx8IXApKXRyeXtsZXQgaD1uZXcgX21lKGYscCk7YXdhaXQgaC5pbml0KCk7bGV0IG09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJzei1zZXJ2aWNlLWRldGFpbC12aWV3Iik7bSYmKG0ud29ya3NwYWNlRW52aXJvbm1lbnQ9aCksdGhpcy53b3Jrc3BhY2VPcGVuPSEwLHRoaXMuY2xhc3NMaXN0LmFkZCgid29ya3NwYWNlLW1vZGUiKX1jYXRjaChoKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gb3BlbiB3b3Jrc3BhY2U6IixoKX19fQogICAgICAgIEBiYWNrPSR7KCk9Pnt0aGlzLndvcmtzcGFjZU9wZW49ITEsdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJ3b3Jrc3BhY2UtbW9kZSIpLHRoaXMuY3VycmVudFZpZXc9Imxpc3QifX0KICAgICAgPjwvc3otc2VydmljZS1kZXRhaWwtdmlldz4KICAgIGB9cmVuZGVyVXBncmFkZU9wZXJhdGlvbihyKXtsZXQgYT1yLnN0YXR1cz09PSJmYWlsZWQiPyIjZjg3MTcxIjoiIzYwYTVmYSI7cmV0dXJuIFFlYAogICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjMDkwOTBiKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2F9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICI+CiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IDE2cHg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS03LCAjZTRlNGU3KTsiPgogICAgICAgICAgICAgIFVwZ3JhZGUgJHtyLmZyb21WZXJzaW9ufSAmcmFycjsgJHtyLnRhcmdldFZlcnNpb259OiAke3Iuc3RlcH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTQsICM3MTcxN2EpOyBtYXJnaW4tdG9wOiA0cHg7Ij4KICAgICAgICAgICAgICAke3Iuc3RhdHVzPT09InJ1bm5pbmciPyJPcGVyYXRpb24gaXMgcnVubmluZyBpbiB0aGUgYmFja2dyb3VuZC4iOnIuZXJyb3J8fCJPcGVyYXRpb24gZmluaXNoZWQuIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiAke2F9OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC4wNGVtOyI+CiAgICAgICAgICAgICR7ci5zdGF0dXN9CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMCwgIzAzMDMwNSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgI2ExYTFhYSk7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEzMHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgIj4ke3IucHJvZ3Jlc3NMaW5lcy5zbGljZSgtOCkuam9pbihgCmApfTwvZGl2PgogICAgICAgICR7ci53YXJuaW5ncy5sZW5ndGg+MD9RZWAKICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7IGNvbG9yOiAjZmJiZjI0OyBmb250LXNpemU6IDEycHg7Ij4KICAgICAgICAgICAgJHtyLndhcm5pbmdzLmpvaW4oIiB8ICIpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckJhY2t1cHNWaWV3KCl7cmV0dXJuIFFlYAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+QmFja3Vwczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1zZXJ2aWNlcy1iYWNrdXBzLXZpZXcKICAgICAgICAuc2NoZWR1bGVzPSR7dGhpcy5iYWNrdXBzU3RhdGUuc2NoZWR1bGVzfQogICAgICAgIC5iYWNrdXBzPSR7dGhpcy5iYWNrdXBzU3RhdGUuYmFja3Vwc30KICAgICAgICBAY3JlYXRlLXNjaGVkdWxlPSR7cj0+e0ZjLmRpc3BhdGNoQWN0aW9uKEVuYSx7Y29uZmlnOnIuZGV0YWlsfSl9fQogICAgICAgIEBydW4tbm93PSR7cj0+e0ZjLmRpc3BhdGNoQWN0aW9uKEluYSx7c2NoZWR1bGVJZDpyLmRldGFpbC5zY2hlZHVsZUlkfSl9fQogICAgICAgIEBkZWxldGUtYmFja3VwPSR7cj0+e0ZjLmRpc3BhdGNoQWN0aW9uKEFuYSx7YmFja3VwSWQ6ci5kZXRhaWwuYmFja3VwSWR9KX19CiAgICAgID48L3N6LXNlcnZpY2VzLWJhY2t1cHMtdmlldz4KICAgIGB9bmF2aWdhdGVUb1BsYXRmb3JtRGV0YWlsKHIpe3RoaXMuY3VycmVudFZpZXc9Imxpc3QiLHRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGU9cixHdC5zZXRTdGF0ZSh7Li4uR3QuZ2V0U3RhdGUoKSxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlU3RhdHM6bnVsbCxjdXJyZW50UGxhdGZvcm1TZXJ2aWNlTG9nczpbXX0pO2xldCBhPXI7R3QuZGlzcGF0Y2hBY3Rpb24oa21lLHtzZXJ2aWNlVHlwZTphfSksR3QuZGlzcGF0Y2hBY3Rpb24oem5hLHtzZXJ2aWNlVHlwZTphfSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5jdXJyZW50Vmlldz0icGxhdGZvcm0tZGV0YWlsIn0pfXJlbmRlclBsYXRmb3JtRGV0YWlsVmlldygpe2xldCByPXRoaXMuc2VydmljZXNTdGF0ZS5wbGF0Zm9ybVNlcnZpY2VzLmZpbmQoYz0+Yy50eXBlPT09dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZSksYT10aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFBsYXRmb3JtU2VydmljZVN0YXRzLHM9e2NwdTphP01hdGgucm91bmQoYS5jcHVQZXJjZW50KTowLG1lbW9yeTphP01hdGgucm91bmQoYS5tZW1vcnlQZXJjZW50KTowLHN0b3JhZ2U6MCxjb25uZWN0aW9uczp2b2lkIDB9LG89cj97bW9uZ29kYjp7aG9zdDoib25lYm94LW1vbmdvZGIiLHBvcnQ6MjcwMTcsdmVyc2lvbjoiNC40Iixjb25maWc6e2VuZ2luZToiV2lyZWRUaWdlciIsYXV0aEVuYWJsZWQ6ITB9fSxtaW5pbzp7aG9zdDoib25lYm94LW1pbmlvIixwb3J0OjllMyx2ZXJzaW9uOiJsYXRlc3QiLGNvbmZpZzp7Y29uc29sZVBvcnQ6OTAwMSxyZWdpb246InVzLWVhc3QtMSJ9fSxjbGlja2hvdXNlOntob3N0OiJvbmVib3gtY2xpY2tob3VzZSIscG9ydDo4MTIzLHZlcnNpb246ImxhdGVzdCIsY29uZmlnOntuYXRpdmVQb3J0OjllMyxodHRwUG9ydDo4MTIzfX0sc21hcnRwcm94eTp7aG9zdDoib25lYm94LXNtYXJ0cHJveHkiLHBvcnQ6ODAsdmVyc2lvbjoibGF0ZXN0Iixjb25maWc6e2h0dHBzUG9ydDo0NDMsYWRtaW5BcGk6MjAxOX19LG1hcmlhZGI6e2hvc3Q6Im9uZWJveC1tYXJpYWRiIixwb3J0OjMzMDYsdmVyc2lvbjoiMTEiLGNvbmZpZzp7ZW5naW5lOiJJbm5vREIiLGF1dGhFbmFibGVkOiEwfX0scmVkaXM6e2hvc3Q6Im9uZWJveC1yZWRpcyIscG9ydDo2Mzc5LHZlcnNpb246IjctYWxwaW5lIixjb25maWc6e2FwcGVuZG9ubHk6ITAsbWF4RGF0YWJhc2VzOjE2fX19W3IudHlwZV18fHtob3N0OiJ1bmtub3duIixwb3J0OjAsdmVyc2lvbjoiIixjb25maWc6e319Ontob3N0OiIiLHBvcnQ6MCx2ZXJzaW9uOiIiLGNvbmZpZzp7fX0sbD1pKGM9Pntzd2l0Y2goYyl7Y2FzZSJydW5uaW5nIjpyZXR1cm4icnVubmluZyI7Y2FzZSJmYWlsZWQiOnJldHVybiJlcnJvciI7ZGVmYXVsdDpyZXR1cm4ic3RvcHBlZCJ9fSwibWFwUGxhdGZvcm1TdGF0dXMiKTtyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5QbGF0Zm9ybSBTZXJ2aWNlPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBjbGFzcz0icGFnZS1hY3Rpb25zIiBzdHlsZT0ianVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGVwbG95LWJ1dHRvbiIgc3R5bGU9ImJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1zaGFkZS0yLCAjMjcyNzJhKTsgY29sb3I6IGluaGVyaXQ7IiBAY2xpY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9Imxpc3QifX0+CiAgICAgICAgICAmbGFycjsgQmFjayB0byBTZXJ2aWNlcwogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPHN6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXcKICAgICAgICAuc2VydmljZT0ke3I/e2lkOnIudHlwZSxuYW1lOnIuZGlzcGxheU5hbWUsdHlwZTpyLnR5cGUsc3RhdHVzOmwoci5zdGF0dXMpLHZlcnNpb246by52ZXJzaW9uLGhvc3Q6by5ob3N0LHBvcnQ6by5wb3J0LGNvbmZpZzpvLmNvbmZpZyxtZXRyaWNzOnN9Om51bGx9CiAgICAgICAgLmxvZ3M9JHt0aGlzLnNlcnZpY2VzU3RhdGUuY3VycmVudFBsYXRmb3JtU2VydmljZUxvZ3MubWFwKGM9Pih7dGltZXN0YW1wOm5ldyBEYXRlKGMudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGxldmVsOmMubGV2ZWwsbWVzc2FnZTpjLm1lc3NhZ2V9KSl9CiAgICAgICAgQGJhY2s9JHsoKT0+e3RoaXMuY3VycmVudFZpZXc9Imxpc3QifX0KICAgICAgICBAc3RhcnQ9JHthc3luYygpPT57YXdhaXQgR3QuZGlzcGF0Y2hBY3Rpb24oRmd0LHtzZXJ2aWNlVHlwZTp0aGlzLnNlbGVjdGVkUGxhdGZvcm1UeXBlfSksR3QuZGlzcGF0Y2hBY3Rpb24oa21lLHtzZXJ2aWNlVHlwZTp0aGlzLnNlbGVjdGVkUGxhdGZvcm1UeXBlfSl9fQogICAgICAgIEBzdG9wPSR7YXN5bmMoKT0+e2F3YWl0IEd0LmRpc3BhdGNoQWN0aW9uKEJndCx7c2VydmljZVR5cGU6dGhpcy5zZWxlY3RlZFBsYXRmb3JtVHlwZX0pfX0KICAgICAgICBAcmVzdGFydD0ke2FzeW5jKCk9Pnthd2FpdCBHdC5kaXNwYXRjaEFjdGlvbihCZ3Qse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KSxhd2FpdCBHdC5kaXNwYXRjaEFjdGlvbihGZ3Qse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KSxHdC5kaXNwYXRjaEFjdGlvbihrbWUse3NlcnZpY2VUeXBlOnRoaXMuc2VsZWN0ZWRQbGF0Zm9ybVR5cGV9KX19CiAgICAgID48L3N6LXBsYXRmb3JtLXNlcnZpY2UtZGV0YWlsLXZpZXc+CiAgICBgfWFzeW5jIGhhbmRsZVNlcnZpY2VBY3Rpb24ocil7bGV0IGE9ci5kZXRhaWwuYWN0aW9uLHM9ci5kZXRhaWwuc2VydmljZT8ubmFtZXx8ci5kZXRhaWwubmFtZXx8dGhpcy5zZWxlY3RlZFNlcnZpY2VOYW1lO3N3aXRjaChhKXtjYXNlInN0YXJ0Ijphd2FpdCBHdC5kaXNwYXRjaEFjdGlvbih3bmEse25hbWU6c30pO2JyZWFrO2Nhc2Uic3RvcCI6YXdhaXQgR3QuZGlzcGF0Y2hBY3Rpb24oa25hLHtuYW1lOnN9KTticmVhaztjYXNlInJlc3RhcnQiOmF3YWl0IEd0LmRpc3BhdGNoQWN0aW9uKFNuYSx7bmFtZTpzfSk7YnJlYWs7Y2FzZSJkZWxldGUiOmF3YWl0IEd0LmRpc3BhdGNoQWN0aW9uKHluYSx7bmFtZTpzfSksdGhpcy5jdXJyZW50Vmlldz0ibGlzdCI7YnJlYWt9fX07ZWk9JGkoTW9hKSx1YnQ9bmV3IFdlYWtNYXAscGJ0PW5ldyBXZWFrTWFwLGZidD1uZXcgV2Vha01hcCxoYnQ9bmV3IFdlYWtNYXAsbWJ0PW5ldyBXZWFrTWFwLGdidD1uZXcgV2Vha01hcCxiYnQ9bmV3IFdlYWtNYXAseGJ0PW5ldyBXZWFrTWFwLER0KGVpLDQsInNlcnZpY2VzU3RhdGUiLFNvYSxkMSx1YnQpLER0KGVpLDQsImJhY2t1cHNTdGF0ZSIsa29hLGQxLHBidCksRHQoZWksNCwiY3VycmVudFZpZXciLHdvYSxkMSxmYnQpLER0KGVpLDQsInNlbGVjdGVkU2VydmljZU5hbWUiLHlvYSxkMSxoYnQpLER0KGVpLDQsInNlbGVjdGVkUGxhdGZvcm1UeXBlIix2b2EsZDEsbWJ0KSxEdChlaSw0LCJ3b3Jrc3BhY2VPcGVuIix4b2EsZDEsZ2J0KSxEdChlaSw0LCJwZW5kaW5nVGVtcGxhdGUiLGJvYSxkMSxiYnQpLER0KGVpLDQsImFwcFN0b3JlU3RhdGUiLGdvYSxkMSx4YnQpLGQxPUR0KGVpLDAsIk9iVmlld1NlcnZpY2VzIixDb2EsZDEpLGkoZDEsIk9iVmlld1NlcnZpY2VzIiksZ2koZDEsInN0eWxlcyIsW29yLmRlZmF1bHRTdHlsZXMsU24sJHJgCiAgICAgIC5wYWdlLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAuZGVwbG95LWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtvci5iZFRoZW1lKCIjMTgxODFiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBjb2xvcjogJHtvci5iZFRoZW1lKCIjZmFmYWZhIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kZXBsb3ktYnV0dG9uOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAwLjk7CiAgICAgIH0KCiAgICAgIC5kZXBsb3ktYnV0dG9uIHN2ZyB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdCgud29ya3NwYWNlLW1vZGUpIHsKICAgICAgICBtYXgtd2lkdGg6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICA6aG9zdCgud29ya3NwYWNlLW1vZGUpIG9iLXNlY3Rpb25oZWFkaW5nIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICBgXSksWGUoZWksMSxkMSk7dmJ0PWQxfSk7dmFyIEFvYT17fTtWZShBb2Ese09iVmlld05ldHdvcms6KCk9Pk1idH0pO3ZhciBfb2EsVG9hLExvYSxEb2EsJG9hLGgyLHdidCxrYnQsU2J0LFRkLE1idCxDYnQ9dShhc3luYygpPT57bzEoKTtSYygpO2F3YWl0IHAyKCk7Tm8oKTskb2E9W3ZpKCJvYi12aWV3LW5ldHdvcmsiKV07VGQ9Y2xhc3MgVGQgZXh0ZW5kcyhEb2E9eWksTG9hPVtadCgpXSxUb2E9W1p0KCldLF9vYT1bWnQoKV0sRG9hKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dHIodGhpcyx3YnQsWGUoaDIsOCx0aGlzLHt0YXJnZXRzOltdLHN0YXRzOm51bGwsdHJhZmZpY1N0YXRzOm51bGwsZG5zUmVjb3JkczpbXSxkb21haW5zOltdLGdhdGV3YXlEb21haW5zOltdLGdhdGV3YXlEbnNSZWNvcmRzOltdLGNlcnRpZmljYXRlczpbXX0pKSxYZShoMiwxMSx0aGlzKTt0cih0aGlzLGtidCxYZShoMiwxMix0aGlzLCJwcm94eSIpKSxYZShoMiwxNSx0aGlzKTt0cih0aGlzLFNidCxYZShoMiwxNix0aGlzLCIiKSksWGUoaDIsMTksdGhpcyk7bGV0IHI9UXIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5uZXR3b3JrU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocil9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFByb21pc2UuYWxsKFtRci5kaXNwYXRjaEFjdGlvbihIZ3QsbnVsbCksUXIuZGlzcGF0Y2hBY3Rpb24oeWFlLG51bGwpLFFyLmRpc3BhdGNoQWN0aW9uKHdhZSxudWxsKSxRci5kaXNwYXRjaEFjdGlvbihfbmEsbnVsbCksUXIuZGlzcGF0Y2hBY3Rpb24ocWd0LG51bGwpLFFyLmRpc3BhdGNoQWN0aW9uKFNtZSxudWxsKV0pfXJlbmRlcigpe3N3aXRjaCh0aGlzLmN1cnJlbnRUYWIpe2Nhc2UiZG5zIjpyZXR1cm4gdGhpcy5yZW5kZXJEbnNWaWV3KCk7Y2FzZSJkb21haW5zIjpyZXR1cm4gdGhpcy5yZW5kZXJEb21haW5zVmlldygpO2Nhc2UiZG9tYWluLWRldGFpbCI6cmV0dXJuIHRoaXMucmVuZGVyRG9tYWluRGV0YWlsVmlldygpO2RlZmF1bHQ6cmV0dXJuIHRoaXMucmVuZGVyUHJveHlWaWV3KCl9fXJlbmRlclByb3h5Vmlldygpe2xldCByPXRoaXMubmV0d29ya1N0YXRlLnN0YXRzO3JldHVybiBRZWAKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPk5ldHdvcms8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otbmV0d29yay1wcm94eS12aWV3CiAgICAgICAgLnByb3h5U3RhdHVzPSR7cj8ucHJveHk/LnJ1bm5pbmc/InJ1bm5pbmciOiJzdG9wcGVkIn0KICAgICAgICAucm91dGVDb3VudD0ke1N0cmluZyhyPy5wcm94eT8ucm91dGVzfHwwKX0KICAgICAgICAuY2VydGlmaWNhdGVDb3VudD0ke1N0cmluZyhyPy5wcm94eT8uY2VydGlmaWNhdGVzfHwwKX0KICAgICAgICAudGFyZ2V0Q291bnQ9JHtTdHJpbmcodGhpcy5uZXR3b3JrU3RhdGUudGFyZ2V0cy5sZW5ndGgpfQogICAgICAgIC50YXJnZXRzPSR7dGhpcy5uZXR3b3JrU3RhdGUudGFyZ2V0cy5tYXAoYT0+KHt0eXBlOmEudHlwZSxuYW1lOmEubmFtZSxkb21haW46YS5kb21haW4sdGFyZ2V0OmAke2EudGFyZ2V0SG9zdH06JHthLnRhcmdldFBvcnR9YCxzdGF0dXM6YS5zdGF0dXN9KSl9CiAgICAgICAgLmxvZ3M9JHtbXX0KICAgICAgICBAcmVmcmVzaD0keygpPT57UXIuZGlzcGF0Y2hBY3Rpb24oSGd0LG51bGwpLFFyLmRpc3BhdGNoQWN0aW9uKHlhZSxudWxsKX19CiAgICAgID48L3N6LW5ldHdvcmstcHJveHktdmlldz4KICAgIGB9cmVuZGVyRG5zVmlldygpe3JldHVybiBRZWAKICAgICAgPG9iLXNlY3Rpb25oZWFkaW5nPkROUyBSZWNvcmRzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LW5ldHdvcmstZG5zLXZpZXcKICAgICAgICAucmVjb3Jkcz0ke3RoaXMubmV0d29ya1N0YXRlLmRuc1JlY29yZHN9CiAgICAgICAgQHN5bmM9JHsoKT0+e1FyLmRpc3BhdGNoQWN0aW9uKFRuYSxudWxsKX19CiAgICAgICAgQGRlbGV0ZT0ke3I9Pntjb25zb2xlLmxvZygiRGVsZXRlIEROUyByZWNvcmQ6IixyLmRldGFpbCl9fQogICAgICA+PC9zei1uZXR3b3JrLWRucy12aWV3PgogICAgYH1yZW5kZXJEb21haW5zVmlldygpe2xldCByPXRoaXMubmV0d29ya1N0YXRlLmNlcnRpZmljYXRlcztyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Eb21haW5zPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LW5ldHdvcmstZG9tYWlucy12aWV3CiAgICAgICAgLmRvbWFpbnM9JHt0aGlzLm5ldHdvcmtTdGF0ZS5kb21haW5zLm1hcChhPT57bGV0IHM9ci5maW5kKG89Pm8uY2VydERvbWFpbj09PWEuZG9tYWluKSxuPSJwZW5kaW5nIjtyZXR1cm4gcyYmKHMuaXNWYWxpZD9zLmV4cGlyZXNBdCYmcy5leHBpcmVzQXQtRGF0ZS5ub3coKTw3MjAqNjAqNjAqMWUzP249ImV4cGlyaW5nIjpuPSJ2YWxpZCI6bj0iZXhwaXJlZCIpLHtkb21haW46YS5kb21haW4scHJvdmlkZXI6ImNsb3VkZmxhcmUiLHNlcnZpY2VDb3VudDphLnNlcnZpY2VzPy5sZW5ndGh8fDAsY2VydGlmaWNhdGVTdGF0dXM6bn19KX0KICAgICAgICBAc3luYz0keygpPT57UXIuZGlzcGF0Y2hBY3Rpb24ocWd0LG51bGwpfX0KICAgICAgICBAdmlldz0ke2E9Pnt0aGlzLnNlbGVjdGVkRG9tYWluPWEuZGV0YWlsLmRvbWFpbnx8YS5kZXRhaWwsdGhpcy5jdXJyZW50VGFiPSJkb21haW4tZGV0YWlsIn19CiAgICAgID48L3N6LW5ldHdvcmstZG9tYWlucy12aWV3PgogICAgYH1yZW5kZXJEb21haW5EZXRhaWxWaWV3KCl7bGV0IHI9dGhpcy5uZXR3b3JrU3RhdGUuZG9tYWlucy5maW5kKHM9PnMuZG9tYWluPT09dGhpcy5zZWxlY3RlZERvbWFpbiksYT10aGlzLm5ldHdvcmtTdGF0ZS5jZXJ0aWZpY2F0ZXMuZmluZChzPT5zLmNlcnREb21haW49PT10aGlzLnNlbGVjdGVkRG9tYWluKTtyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Eb21haW4gRGV0YWlsczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1kb21haW4tZGV0YWlsLXZpZXcKICAgICAgICAuZG9tYWluPSR7cj97aWQ6dGhpcy5zZWxlY3RlZERvbWFpbixuYW1lOnRoaXMuc2VsZWN0ZWREb21haW4sc3RhdHVzOiJhY3RpdmUiLHZlcmlmaWVkOiEwLGNyZWF0ZWRBdDoiIn06bnVsbH0KICAgICAgICAuY2VydGlmaWNhdGU9JHthP3tpZDphLmRvbWFpbklkLGRvbWFpbjphLmNlcnREb21haW4saXNzdWVyOiJMZXQncyBFbmNyeXB0Iix2YWxpZEZyb206YS5pc3N1ZWRBdD9uZXcgRGF0ZShhLmlzc3VlZEF0KS50b0lTT1N0cmluZygpOiIiLHZhbGlkVW50aWw6YS5leHBpcmVzQXQ/bmV3IERhdGUoYS5leHBpcmVzQXQpLnRvSVNPU3RyaW5nKCk6IiIsZGF5c1JlbWFpbmluZzphLmV4cGlyZXNBdD9NYXRoLmZsb29yKChhLmV4cGlyZXNBdC1EYXRlLm5vdygpKS8oMTQ0MCo2MCoxZTMpKTowLHN0YXR1czphLmlzVmFsaWQ/InZhbGlkIjoiZXhwaXJlZCIsYXV0b1JlbmV3OiEwfTpudWxsfQogICAgICAgIC5kbnNSZWNvcmRzPSR7dGhpcy5uZXR3b3JrU3RhdGUuZG5zUmVjb3Jkcy5maWx0ZXIocz0+cy5kb21haW4/LmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWREb21haW4pKS5tYXAocz0+KHtpZDpzLmlkfHwiIix0eXBlOnMudHlwZSxuYW1lOnMuZG9tYWluLHZhbHVlOnMudmFsdWUsdHRsOjM2MDB9KSl9CiAgICAgICAgQHJlbmV3LWNlcnRpZmljYXRlPSR7KCk9PntRci5kaXNwYXRjaEFjdGlvbihMbmEse2RvbWFpbjp0aGlzLnNlbGVjdGVkRG9tYWlufSl9fQogICAgICA+PC9zei1kb21haW4tZGV0YWlsLXZpZXc+CiAgICBgfX07aDI9JGkoRG9hKSx3YnQ9bmV3IFdlYWtNYXAsa2J0PW5ldyBXZWFrTWFwLFNidD1uZXcgV2Vha01hcCxEdChoMiw0LCJuZXR3b3JrU3RhdGUiLExvYSxUZCx3YnQpLER0KGgyLDQsImN1cnJlbnRUYWIiLFRvYSxUZCxrYnQpLER0KGgyLDQsInNlbGVjdGVkRG9tYWluIixfb2EsVGQsU2J0KSxUZD1EdChoMiwwLCJPYlZpZXdOZXR3b3JrIiwkb2EsVGQpLGkoVGQsIk9iVmlld05ldHdvcmsiKSxnaShUZCwic3R5bGVzIixbb3IuZGVmYXVsdFN0eWxlcyxTbiwkcmBgXSksWGUoaDIsMSxUZCk7TWJ0PVRkfSk7dmFyIE5vYT17fTtWZShOb2Ese09iVmlld0RvbWFpbnM6KCk9Pl9idH0pO3ZhciBFb2EsSW9hLFBvYSxRdyx6YnQsTWYsX2J0LE9vYT11KGFzeW5jKCk9PntSYygpO28xKCk7YXdhaXQgcDIoKTtObygpO1BvYT1bdmkoIm9iLXZpZXctZG9tYWlucyIpXTtNZj1jbGFzcyBNZiBleHRlbmRzKElvYT15aSxFb2E9W1p0KCldLElvYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsemJ0LFhlKFF3LDgsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksWGUoUXcsMTEsdGhpcyk7bGV0IHI9UXIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5uZXR3b3JrU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocil9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFFyLmRpc3BhdGNoQWN0aW9uKFZndCxudWxsKX1yZW5kZXIoKXtsZXQgcj10aGlzLm5ldHdvcmtTdGF0ZS5nYXRld2F5RG9tYWlucztyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Eb21haW5zPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPGRpdiBjbGFzcz0ibXV0ZWQiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxNnB4OyI+CiAgICAgICAgRG9tYWlucyBhcmUgbWFuYWdlZCBpbiBkY3JvdXRlci4gT25lYm94IHNob3dzIGdhdGV3YXkgdmlzaWJpbGl0eSBmb3IgZGVwbG95ZWQgc2VydmljZXMuCiAgICAgIDwvZGl2PgogICAgICAke3IubGVuZ3RoP1FlYAogICAgICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgICAgIC5oZWFkaW5nMT0keyJHYXRld2F5IERvbWFpbnMifQogICAgICAgICAgICAgIC5oZWFkaW5nMj0keyJEb21haW5zIGltcG9ydGVkIGZyb20gZGNyb3V0ZXIgZ2F0ZXdheSB2aXNpYmlsaXR5In0KICAgICAgICAgICAgICAuZGF0YT0ke3J9CiAgICAgICAgICAgICAgLnNob3dDb2x1bW5GaWx0ZXJzPSR7ITB9CiAgICAgICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2E9Pih7RG9tYWluOlFlYAogICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvbWFpbiI+JHthLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgJHthLnByb3ZpZGVySWQ/UWVgPGRpdiBjbGFzcz0ibXV0ZWQiPlByb3ZpZGVyOiAke2EucHJvdmlkZXJJZH08L2Rpdj5gOiIifQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGAsU291cmNlOlFlYDxzcGFuIGNsYXNzPSJiYWRnZSI+JHthLnNvdXJjZXx8ImRjcm91dGVyIn08L3NwYW4+YCxBdXRob3JpdGF0aXZlOmEuYXV0aG9yaXRhdGl2ZT8iWWVzIjoiTm8iLFNlcnZpY2VzOmEuc2VydmljZUNvdW50fHwwfSl9CiAgICAgICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOnJvdGF0ZUN3Iix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzppKGFzeW5jKCk9Pnthd2FpdCBRci5kaXNwYXRjaEFjdGlvbihWZ3QsbnVsbCl9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJNYW5hZ2UgaW4gZGNyb3V0ZXIiLGljb25OYW1lOiJsdWNpZGU6ZXh0ZXJuYWxMaW5rIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvblJlbGV2YW5jeUNoZWNrRnVuYzppKGE9PiEhYS5tYW5hZ2VVcmwsImFjdGlvblJlbGV2YW5jeUNoZWNrRnVuYyIpLGFjdGlvbkZ1bmM6aShhc3luYyBhPT57YS5pdGVtLm1hbmFnZVVybCYmZ2xvYmFsVGhpcy5vcGVuKGEuaXRlbS5tYW5hZ2VVcmwsIl9ibGFuayIsIm5vb3BlbmVyIil9LCJhY3Rpb25GdW5jIil9XX0KICAgICAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgICAgIGA6UWVgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGdhdGV3YXkgZG9tYWlucyBmb3VuZC4gQ29uZmlndXJlIGEgZGNyb3V0ZXIgZ2F0ZXdheSBpbiBTZXR0aW5ncy48L2Rpdj5gfQogICAgYH19O1F3PSRpKElvYSksemJ0PW5ldyBXZWFrTWFwLER0KFF3LDQsIm5ldHdvcmtTdGF0ZSIsRW9hLE1mLHpidCksTWY9RHQoUXcsMCwiT2JWaWV3RG9tYWlucyIsUG9hLE1mKSxpKE1mLCJPYlZpZXdEb21haW5zIiksZ2koTWYsInN0eWxlcyIsW29yLmRlZmF1bHRTdHlsZXMsU24sJHJgCiAgICAgIC5kb21haW4geyBmb250LXdlaWdodDogNjAwOyB9CiAgICAgIC5tdXRlZCB7IGNvbG9yOiB2YXIoLS1jaS1zaGFkZS01LCAjNzE3MTdhKTsgZm9udC1zaXplOiAxM3B4OyB9CiAgICAgIC5iYWRnZSB7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBwYWRkaW5nOiAzcHggOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zaGFkZS0xLCAjZjRmNGY1KTsgZm9udC1zaXplOiAxMnB4OyB9CiAgICAgIC5lbXB0eSB7IHBhZGRpbmc6IDMycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICM3MTcxN2EpOyB9CiAgICBgXSksWGUoUXcsMSxNZik7X2J0PU1mfSk7dmFyIEhvYT17fTtWZShIb2Ese09iVmlld0Ruc1JlY29yZHM6KCk9PkxidH0pO3ZhciBSb2EsRm9hLEJvYSxYdyxUYnQsQ2YsTGJ0LHFvYT11KGFzeW5jKCk9PntSYygpO28xKCk7YXdhaXQgcDIoKTthd2FpdCBUZygpO05vKCk7Qm9hPVt2aSgib2Itdmlldy1kbnMtcmVjb3JkcyIpXTtDZj1jbGFzcyBDZiBleHRlbmRzKEZvYT15aSxSb2E9W1p0KCldLEZvYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsVGJ0LFhlKFh3LDgsdGhpcyx7dGFyZ2V0czpbXSxzdGF0czpudWxsLHRyYWZmaWNTdGF0czpudWxsLGRuc1JlY29yZHM6W10sZG9tYWluczpbXSxnYXRld2F5RG9tYWluczpbXSxnYXRld2F5RG5zUmVjb3JkczpbXSxjZXJ0aWZpY2F0ZXM6W119KSksWGUoWHcsMTEsdGhpcyk7bGV0IHI9UXIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5uZXR3b3JrU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocil9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IFFyLmRpc3BhdGNoQWN0aW9uKGpndCxudWxsKX1yZW5kZXIoKXtsZXQgcj10aGlzLm5ldHdvcmtTdGF0ZS5nYXRld2F5RG5zUmVjb3JkcztyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5ETlMgUmVjb3Jkczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgICR7ci5sZW5ndGg/UWVgCiAgICAgICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICAgICAgLmhlYWRpbmcxPSR7IkdhdGV3YXkgRE5TIFJlY29yZHMifQogICAgICAgICAgICAgIC5oZWFkaW5nMj0keyJETlMgcmVjb3JkcyBwdWJsaXNoZWQgdGhyb3VnaCBkY3JvdXRlciBmb3IgT25lYm94IHNlcnZpY2VzIn0KICAgICAgICAgICAgICAuZGF0YT0ke3J9CiAgICAgICAgICAgICAgLnNob3dDb2x1bW5GaWx0ZXJzPSR7ITB9CiAgICAgICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2E9Pih7TmFtZTpRZWAKICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lIj4ke2EubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAke2EuZG9tYWluTmFtZT9RZWA8ZGl2IGNsYXNzPSJtdXRlZCI+JHthLmRvbWFpbk5hbWV9PC9kaXY+YDoiIn0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgLFR5cGU6UWVgPHNwYW4gY2xhc3M9ImJhZGdlIj4ke2EudHlwZX08L3NwYW4+YCxWYWx1ZTpRZWA8c3BhbiBjbGFzcz0idmFsdWUiPiR7YS52YWx1ZXx8Ii0ifTwvc3Bhbj5gLFN0YXR1czpRZWA8c3BhbiBjbGFzcz0ke2Euc3RhdHVzPT09Im1pc3NpbmciPyJtaXNzaW5nIjoiIn0+JHthLnN0YXR1c308L3NwYW4+YCxTZXJ2aWNlOmEuc2VydmljZU5hbWV8fGEuYXBwSWR8fCItIn0pfQogICAgICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpyb3RhdGVDdyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6aShhc3luYygpPT57YXdhaXQgUXIuZGlzcGF0Y2hBY3Rpb24oamd0LG51bGwpfSwiYWN0aW9uRnVuYyIpfSx7bmFtZToiVmlldyBzZXJ2aWNlIixpY29uTmFtZToibHVjaWRlOmJveGVzIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6aShhc3luYygpPT57YzEubmF2aWdhdGVUb1ZpZXcoInNlcnZpY2VzIil9LCJhY3Rpb25GdW5jIil9LHtuYW1lOiJNYW5hZ2UgaW4gZGNyb3V0ZXIiLGljb25OYW1lOiJsdWNpZGU6ZXh0ZXJuYWxMaW5rIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvblJlbGV2YW5jeUNoZWNrRnVuYzppKGE9PiEhYS5tYW5hZ2VVcmwsImFjdGlvblJlbGV2YW5jeUNoZWNrRnVuYyIpLGFjdGlvbkZ1bmM6aShhc3luYyBhPT57YS5pdGVtLm1hbmFnZVVybCYmZ2xvYmFsVGhpcy5vcGVuKGEuaXRlbS5tYW5hZ2VVcmwsIl9ibGFuayIsIm5vb3BlbmVyIil9LCJhY3Rpb25GdW5jIil9XX0KICAgICAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgICAgIGA6UWVgPGRpdiBjbGFzcz0iZW1wdHkiPk5vIGdhdGV3YXkgRE5TIHJlY29yZHMgZm91bmQuIENvbmZpZ3VyZSBhIGRjcm91dGVyIGdhdGV3YXkgaW4gU2V0dGluZ3MuPC9kaXY+YH0KICAgIGB9fTtYdz0kaShGb2EpLFRidD1uZXcgV2Vha01hcCxEdChYdyw0LCJuZXR3b3JrU3RhdGUiLFJvYSxDZixUYnQpLENmPUR0KFh3LDAsIk9iVmlld0Ruc1JlY29yZHMiLEJvYSxDZiksaShDZiwiT2JWaWV3RG5zUmVjb3JkcyIpLGdpKENmLCJzdHlsZXMiLFtvci5kZWZhdWx0U3R5bGVzLFNuLCRyYAogICAgICAubmFtZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICAgICAgLnZhbHVlIHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICM3MTcxN2EpOyBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTsgfQogICAgICAubXV0ZWQgeyBjb2xvcjogdmFyKC0tY2ktc2hhZGUtNSwgIzcxNzE3YSk7IGZvbnQtc2l6ZTogMTNweDsgfQogICAgICAuYmFkZ2UgeyBib3JkZXItcmFkaXVzOiA5OTlweDsgcGFkZGluZzogM3B4IDhweDsgYmFja2dyb3VuZDogdmFyKC0tY2ktc2hhZGUtMSwgI2Y0ZjRmNSk7IGZvbnQtc2l6ZTogMTJweDsgfQogICAgICAubWlzc2luZyB7IGNvbG9yOiAjZGMyNjI2OyB9CiAgICAgIC5lbXB0eSB7IHBhZGRpbmc6IDMycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHZhcigtLWNpLXNoYWRlLTUsICM3MTcxN2EpOyB9CiAgICBgXSksWGUoWHcsMSxDZik7TGJ0PUNmfSk7dmFyIEdvYT17fTtWZShHb2Ese09iVmlld1JlZ2lzdHJpZXM6KCk9PkFidH0pO3ZhciBWb2Esam9hLFVvYSxXb2EsSTMsRGJ0LCRidCxQMyxBYnQsRWJ0PXUoYXN5bmMoKT0+e28xKCk7UmMoKTthd2FpdCBwMigpO2F3YWl0IFRnKCk7Tm8oKTtXb2E9W3ZpKCJvYi12aWV3LXJlZ2lzdHJpZXMiKV07UDM9Y2xhc3MgUDMgZXh0ZW5kcyhVb2E9eWksam9hPVtadCgpXSxWb2E9W1p0KCldLFVvYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsRGJ0LFhlKEkzLDgsdGhpcyx7dG9rZW5zOltdLHJlZ2lzdHJ5U3RhdHVzOm51bGx9KSksWGUoSTMsMTEsdGhpcyk7dHIodGhpcywkYnQsWGUoSTMsMTIsdGhpcywib25lYm94IikpLFhlKEkzLDE1LHRoaXMpO2xldCByPUJjLnNlbGVjdChhPT5hKS5zdWJzY3JpYmUoYT0+e3RoaXMucmVnaXN0cmllc1N0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCBCYy5kaXNwYXRjaEFjdGlvbihNbWUsbnVsbCl9cmVuZGVyKCl7cmV0dXJuIHRoaXMuY3VycmVudFRhYj09PSJleHRlcm5hbCI/dGhpcy5yZW5kZXJFeHRlcm5hbFZpZXcoKTp0aGlzLnJlbmRlck9uZWJveFZpZXcoKX1yZW5kZXJPbmVib3hWaWV3KCl7cmV0dXJuIFFlYAogICAgICA8b2Itc2VjdGlvbmhlYWRpbmc+UmVnaXN0cmllczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgIDxzei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50CiAgICAgICAgLnN0YXR1cz0keyJydW5uaW5nIn0KICAgICAgICAucmVnaXN0cnlVcmw9JHsibG9jYWxob3N0OjUwMDAifQogICAgICAgIEBtYW5hZ2UtdG9rZW5zPSR7KCk9PntjMS5uYXZpZ2F0ZVRvVmlldygidG9rZW5zIil9fQogICAgICA+PC9zei1yZWdpc3RyeS1hZHZlcnRpc2VtZW50PgogICAgYH1yZW5kZXJFeHRlcm5hbFZpZXcoKXtyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5FeHRlcm5hbCBSZWdpc3RyaWVzPC9vYi1zZWN0aW9uaGVhZGluZz4KICAgICAgPHN6LXJlZ2lzdHJ5LWV4dGVybmFsLXZpZXcKICAgICAgICAucmVnaXN0cmllcz0ke1tdfQogICAgICAgIEBhZGQ9JHtyPT57Y29uc29sZS5sb2coIkFkZCBleHRlcm5hbCByZWdpc3RyeToiLHIuZGV0YWlsKX19CiAgICAgID48L3N6LXJlZ2lzdHJ5LWV4dGVybmFsLXZpZXc+CiAgICBgfX07STM9JGkoVW9hKSxEYnQ9bmV3IFdlYWtNYXAsJGJ0PW5ldyBXZWFrTWFwLER0KEkzLDQsInJlZ2lzdHJpZXNTdGF0ZSIsam9hLFAzLERidCksRHQoSTMsNCwiY3VycmVudFRhYiIsVm9hLFAzLCRidCksUDM9RHQoSTMsMCwiT2JWaWV3UmVnaXN0cmllcyIsV29hLFAzKSxpKFAzLCJPYlZpZXdSZWdpc3RyaWVzIiksZ2koUDMsInN0eWxlcyIsW29yLmRlZmF1bHRTdHlsZXMsU24sJHJgYF0pLFhlKEkzLDEsUDMpO0FidD1QM30pO3ZhciBRb2E9e307VmUoUW9hLHtPYlZpZXdUb2tlbnM6KCk9PlBidH0pO3ZhciBZb2EsS29hLFpvYSxKdyxJYnQsemYsUGJ0LE5idD11KGFzeW5jKCk9PntvMSgpO1JjKCk7YXdhaXQgcDIoKTtObygpO1pvYT1bdmkoIm9iLXZpZXctdG9rZW5zIildO3pmPWNsYXNzIHpmIGV4dGVuZHMoS29hPXlpLFlvYT1bWnQoKV0sS29hKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dHIodGhpcyxJYnQsWGUoSncsOCx0aGlzLHt0b2tlbnM6W10scmVnaXN0cnlTdGF0dXM6bnVsbH0pKSxYZShKdywxMSx0aGlzKTtsZXQgcj1CYy5zZWxlY3QoYT0+YSkuc3Vic2NyaWJlKGE9Pnt0aGlzLnJlZ2lzdHJpZXNTdGF0ZT1hfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChyKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgQmMuZGlzcGF0Y2hBY3Rpb24oTW1lLG51bGwpfXJlbmRlcigpe2xldCByPXRoaXMucmVnaXN0cmllc1N0YXRlLnRva2Vucy5maWx0ZXIocz0+cy50eXBlPT09Imdsb2JhbCIpLGE9dGhpcy5yZWdpc3RyaWVzU3RhdGUudG9rZW5zLmZpbHRlcihzPT5zLnR5cGU9PT0iY2kiKTtyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5Ub2tlbnM8L29iLXNlY3Rpb25oZWFkaW5nPgogICAgICA8c3otdG9rZW5zLXZpZXcKICAgICAgICAuZ2xvYmFsVG9rZW5zPSR7ci5tYXAocz0+KHtpZDpzLmlkLG5hbWU6cy5uYW1lLHR5cGU6Imdsb2JhbCIsY3JlYXRlZEF0OnMuY3JlYXRlZEF0LGxhc3RVc2VkOnMubGFzdFVzZWR9KSl9CiAgICAgICAgLmNpVG9rZW5zPSR7YS5tYXAocz0+KHtpZDpzLmlkLG5hbWU6cy5uYW1lLHR5cGU6ImNpIixzZXJ2aWNlOnMuc2VydmljZSxjcmVhdGVkQXQ6cy5jcmVhdGVkQXQsbGFzdFVzZWQ6cy5sYXN0VXNlZH0pKX0KICAgICAgICBAY3JlYXRlPSR7cz0+e0JjLmRpc3BhdGNoQWN0aW9uKERuYSx7dG9rZW46e25hbWU6YG5ldy0ke3MuZGV0YWlsLnR5cGV9LXRva2VuYCx0eXBlOnMuZGV0YWlsLnR5cGUscGVybWlzc2lvbnM6WyJwdWxsIl19fSl9fQogICAgICAgIEBkZWxldGU9JHtzPT57QmMuZGlzcGF0Y2hBY3Rpb24oJG5hLHt0b2tlbklkOnMuZGV0YWlsLmlkfHxzLmRldGFpbC50b2tlbklkfSl9fQogICAgICA+PC9zei10b2tlbnMtdmlldz4KICAgIGB9fTtKdz0kaShLb2EpLElidD1uZXcgV2Vha01hcCxEdChKdyw0LCJyZWdpc3RyaWVzU3RhdGUiLFlvYSx6ZixJYnQpLHpmPUR0KEp3LDAsIk9iVmlld1Rva2VucyIsWm9hLHpmKSxpKHpmLCJPYlZpZXdUb2tlbnMiKSxnaSh6Ziwic3R5bGVzIixbb3IuZGVmYXVsdFN0eWxlcyxTbiwkcmBgXSksWGUoSncsMSx6Zik7UGJ0PXpmfSk7dmFyIHIxYT17fTtWZShyMWEse09iVmlld1NldHRpbmdzOigpPT5GYnR9KTt2YXIgWG9hLEpvYSxlMWEsdDFhLE4zLE9idCxSYnQsTzMsRmJ0LEJidD11KGFzeW5jKCk9PntvMSgpO1JjKCk7YXdhaXQgcDIoKTtObygpO3QxYT1bdmkoIm9iLXZpZXctc2V0dGluZ3MiKV07TzM9Y2xhc3MgTzMgZXh0ZW5kcyhlMWE9eWksSm9hPVtadCgpXSxYb2E9W1p0KCldLGUxYSl7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RyKHRoaXMsT2J0LFhlKE4zLDgsdGhpcyx7c2V0dGluZ3M6bnVsbCxiYWNrdXBQYXNzd29yZENvbmZpZ3VyZWQ6ITEsbWFuYWdlZERjUm91dGVyU3RhdHVzOm51bGx9KSksWGUoTjMsMTEsdGhpcyk7dHIodGhpcyxSYnQsWGUoTjMsMTIsdGhpcyx7aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfSkpLFhlKE4zLDE1LHRoaXMpO2xldCByPW5uLnNlbGVjdChzPT5zKS5zdWJzY3JpYmUocz0+e3RoaXMuc2V0dGluZ3NTdGF0ZT1zfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChyKTtsZXQgYT1HaS5zZWxlY3Qocz0+cykuc3Vic2NyaWJlKHM9Pnt0aGlzLmxvZ2luU3RhdGU9c30pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goYSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IG5uLmRpc3BhdGNoQWN0aW9uKFVndCxudWxsKX1yZW5kZXIoKXtyZXR1cm4gUWVgCiAgICAgIDxvYi1zZWN0aW9uaGVhZGluZz5TZXR0aW5nczwvb2Itc2VjdGlvbmhlYWRpbmc+CiAgICAgICR7dGhpcy5yZW5kZXJBZG1pblVpU2V0dGluZ3MoKX0KICAgICAgJHt0aGlzLnJlbmRlckV4dGVybmFsR2F0ZXdheVNldHRpbmdzKCl9CiAgICAgIDxzei1zZXR0aW5ncy12aWV3CiAgICAgICAgLnNldHRpbmdzPSR7dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzfHx7ZGFya01vZGU6ITAsY2xvdWRmbGFyZVRva2VuOiIiLGNsb3VkZmxhcmVab25lSWQ6IiIsYWRtaW5VaURvbWFpbjoiIixkY3JvdXRlck1vZGU6Im1hbmFnZWQiLGRjcm91dGVyTWFuYWdlZEltYWdlOiJjb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvZGNyb3V0ZXI6bGF0ZXN0IixkY3JvdXRlck1hbmFnZWRPcHNQb3J0OjMzMDAsZGNyb3V0ZXJNYW5hZ2VkSHR0cFBvcnQ6ODAsZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0OjQ0MyxkY3JvdXRlck1hbmFnZWREYXRhRGlyOiIuLy5ub2dpdC9kY3JvdXRlci1kYXRhIixkY3JvdXRlckdhdGV3YXlDbGllbnRJZDoiIixkY3JvdXRlcldvcmtIb3N0ZXJJZDoiIixhdXRvUmVuZXdDZXJ0czohMSxyZW5ld2FsVGhyZXNob2xkOjMwLGFjbWVFbWFpbDoiIixodHRwUG9ydDo4MCxodHRwc1BvcnQ6NDQzLGZvcmNlSHR0cHM6ITF9fQogICAgICAgIC5jdXJyZW50VXNlcj0ke3RoaXMubG9naW5TdGF0ZS5pZGVudGl0eT8udXNlcm5hbWV8fCJhZG1pbiJ9CiAgICAgICAgQHNldHRpbmctY2hhbmdlPSR7cj0+e2xldHtrZXk6YSx2YWx1ZTpzfT1yLmRldGFpbDtubi5kaXNwYXRjaEFjdGlvbihrYWUse3NldHRpbmdzOntbYV06c319KX19CiAgICAgICAgQHNhdmU9JHtyPT57bm4uZGlzcGF0Y2hBY3Rpb24oa2FlLHtzZXR0aW5nczpyLmRldGFpbH0pfX0KICAgICAgICBAY2hhbmdlLXBhc3N3b3JkPSR7cj0+e2NvbnNvbGUubG9nKCJDaGFuZ2UgcGFzc3dvcmQgcmVxdWVzdGVkOiIsci5kZXRhaWwpfX0KICAgICAgICBAcmVzZXQ9JHsoKT0+e25uLmRpc3BhdGNoQWN0aW9uKFVndCxudWxsKX19CiAgICAgID48L3N6LXNldHRpbmdzLXZpZXc+CiAgICBgfXJlbmRlckFkbWluVWlTZXR0aW5ncygpe2xldCByPXRoaXMuc2V0dGluZ3NTdGF0ZS5zZXR0aW5ncztyZXR1cm4gUWVgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJnYXRld2F5LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2F0ZXdheS10aXRsZSI+T25lYm94IEFkbWluIFVJPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2F0ZXdheS1zdWJ0aXRsZSI+Q29uZmlndXJlIHRoZSBwdWJsaWMgaG9zdG5hbWUgZm9yIHRoaXMgT25lYm94IGRhc2hib2FyZDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktY29udGVudCI+CiAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJhZG1pblVpRG9tYWluIiwiQWRtaW4gVUkgRG9tYWluIixyPy5hZG1pblVpRG9tYWlufHwiIiwiRXhhbXBsZTogb25lYm94LmV4YW1wbGUuY29tLiBMZWF2ZSBlbXB0eSB0byBkaXNhYmxlIHRoZSBwdWJsaWMgQWRtaW4gVUkgcm91dGUuIil9CiAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheVJlYWRvbmx5KCJMb2NhbCBUYXJnZXQiLCJPbmVib3ggT3BzU2VydmVyIG9uIHBvcnQgMzAwMCIsIlRoZSBleHRlcm5hbCBnYXRld2F5IGZvcndhcmRzIHRvIFNtYXJ0UHJveHksIHdoaWNoIGZvcndhcmRzIHRoaXMgaG9zdG5hbWUgdG8gdGhlIE9uZWJveCBBZG1pbiBVSS4iKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNsb3Q9ImZvb3RlciIgY2xhc3M9ImdhdGV3YXktZm9vdGVyIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InRpbGUtYnV0dG9uIHByaW1hcnkiIHR5cGU9ImJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuc2F2ZUFkbWluVWlTZXR0aW5ncygpfT4KICAgICAgICAgICAgU2F2ZSBBZG1pbiBVSSBEb21haW4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyRXh0ZXJuYWxHYXRld2F5U2V0dGluZ3MoKXtsZXQgcj10aGlzLnNldHRpbmdzU3RhdGUuc2V0dGluZ3MsYT1yPy5kY3JvdXRlck1vZGV8fCJtYW5hZ2VkIjtyZXR1cm4gUWVgCiAgICAgIDxkZWVzLXRpbGU+CiAgICAgICAgPGRpdiBzbG90PSJoZWFkZXIiIGNsYXNzPSJnYXRld2F5LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LWhlYWRpbmciPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2F0ZXdheS10aXRsZSI+ZGNyb3V0ZXIgR2F0ZXdheTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdhdGV3YXktc3VidGl0bGUiPlJ1biBhIGxvY2FsIG1hbmFnZWQgZGNyb3V0ZXIgb3IgZGVsZWdhdGUgcm91dGluZyB0byBhbiBleHRlcm5hbCBkY3JvdXRlcjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktbW9kZS1yb3ciPgogICAgICAgICAgJHt0aGlzLnJlbmRlck1vZGVCdXR0b24oIm1hbmFnZWQiLCJNYW5hZ2VkIExvY2FsIixhKX0KICAgICAgICAgICR7dGhpcy5yZW5kZXJNb2RlQnV0dG9uKCJleHRlcm5hbCIsIkV4dGVybmFsIGRjcm91dGVyIixhKX0KICAgICAgICAgICR7dGhpcy5yZW5kZXJNb2RlQnV0dG9uKCJkaXNhYmxlZCIsIkRpc2FibGVkIixhKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke2E9PT0ibWFuYWdlZCI/dGhpcy5yZW5kZXJNYW5hZ2VkR2F0ZXdheVN0YXR1cygpOm51bGx9CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1jb250ZW50Ij4KICAgICAgICAgICR7YT09PSJtYW5hZ2VkIj9RZWAKICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkSW1hZ2UiLCJkY3JvdXRlciBJbWFnZSIscj8uZGNyb3V0ZXJNYW5hZ2VkSW1hZ2V8fCJjb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvZGNyb3V0ZXI6bGF0ZXN0IiwiT0NJIGltYWdlIHVzZWQgZm9yIHRoZSBtYW5hZ2VkIGxvY2FsIGdhdGV3YXkuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyTWFuYWdlZERhdGFEaXIiLCJEYXRhIERpcmVjdG9yeSIscj8uZGNyb3V0ZXJNYW5hZ2VkRGF0YURpcnx8Ii4vLm5vZ2l0L2Rjcm91dGVyLWRhdGEiLCJIb3N0IGRpcmVjdG9yeSBtb3VudGVkIGludG8gdGhlIGRjcm91dGVyIGNvbnRhaW5lci4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkT3BzUG9ydCIsIkxvY2FsIE9wcyBQb3J0IixTdHJpbmcocj8uZGNyb3V0ZXJNYW5hZ2VkT3BzUG9ydHx8MzMwMCksIkJvdW5kIHRvIDEyNy4wLjAuMSBmb3IgT25lYm94IHRvIGNhbGwgZGNyb3V0ZXIgQVBJcy4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJNYW5hZ2VkSHR0cFBvcnQiLCJQdWJsaWMgSFRUUCBQb3J0IixTdHJpbmcocj8uZGNyb3V0ZXJNYW5hZ2VkSHR0cFBvcnR8fDgwKSwiSG9zdCBwb3J0IG93bmVkIGJ5IGRjcm91dGVyIGZvciBIVFRQIGluZ3Jlc3MuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydCIsIlB1YmxpYyBIVFRQUyBQb3J0IixTdHJpbmcocj8uZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0fHw0NDMpLCJIb3N0IHBvcnQgb3duZWQgYnkgZGNyb3V0ZXIgZm9yIEhUVFBTIGluZ3Jlc3MuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5UmVhZG9ubHkoIkdhdGV3YXkgQ2xpZW50IElEIixyPy5kY3JvdXRlckdhdGV3YXlDbGllbnRJZHx8cj8uZGNyb3V0ZXJXb3JrSG9zdGVySWR8fCJDcmVhdGVkIHdoZW4gbWFuYWdlZCBkY3JvdXRlciBzdGFydHMiLCJEaWFnbm9zdGljIG9ubHkuIE9uZWJveCBtYW5hZ2VzIHRoaXMgbG9jYWwgY2xpZW50IGF1dG9tYXRpY2FsbHkuIil9CiAgICAgICAgICBgOmE9PT0iZXh0ZXJuYWwiP1FlYAogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlckdhdGV3YXlVcmwiLCJHYXRld2F5IFVSTCIscj8uZGNyb3V0ZXJHYXRld2F5VXJsfHwiIiwiQmFzZSBVUkwgb2YgdGhlIGRjcm91dGVyIE9wc1NlcnZlci4iKX0KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckdhdGV3YXlJbnB1dCgiZGNyb3V0ZXJHYXRld2F5QXBpVG9rZW4iLCJBUEkgVG9rZW4iLHI/LmRjcm91dGVyR2F0ZXdheUFwaVRva2VufHwiIiwiUmVxdWlyZXMgZ2F0ZXdheS1jbGllbnQgYWNjZXNzIGluIGRjcm91dGVyLiIsITApfQogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheVJlYWRvbmx5KCJHYXRld2F5IENsaWVudCBJRCIscj8uZGNyb3V0ZXJHYXRld2F5Q2xpZW50SWR8fHI/LmRjcm91dGVyV29ya0hvc3RlcklkfHwiRGVyaXZlZCBmcm9tIHRva2VuIiwiQ29uZmlndXJlIHRoaXMgaW4gZGNyb3V0ZXIgR2F0ZXdheSBDbGllbnRzLCBub3QgaW4gT25lYm94LiIpfQogICAgICAgICAgICAke3RoaXMucmVuZGVyR2F0ZXdheUlucHV0KCJkY3JvdXRlclRhcmdldEhvc3QiLCJUYXJnZXQgSG9zdCIscj8uZGNyb3V0ZXJUYXJnZXRIb3N0fHwiIiwiRGVmYXVsdHMgdG8gdGhlIGNvbmZpZ3VyZWQgc2VydmVyIElQIHdoZW4gZW1wdHkuIil9CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJHYXRld2F5SW5wdXQoImRjcm91dGVyVGFyZ2V0UG9ydCIsIlRhcmdldCBQb3J0IixTdHJpbmcocj8uZGNyb3V0ZXJUYXJnZXRQb3J0fHw4MCksIkludGVybmFsIEhUVFAgcG9ydCBkY3JvdXRlciBmb3J3YXJkcyB0by4iKX0KICAgICAgICAgIGA6UWVgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktZGlzYWJsZWQiPmRjcm91dGVyIHJvdXRlIGRlbGVnYXRpb24gaXMgZGlzYWJsZWQuIE9uZWJveCB3aWxsIGtlZXAgdXNpbmcgaXRzIGxvY2FsIFNtYXJ0UHJveHkgZGlyZWN0bHkuPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc2xvdD0iZm9vdGVyIiBjbGFzcz0iZ2F0ZXdheS1mb290ZXIiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGlsZS1idXR0b24gcHJpbWFyeSIgdHlwZT0iYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlRXh0ZXJuYWxHYXRld2F5U2V0dGluZ3MoKX0+CiAgICAgICAgICAgIFNhdmUgZGNyb3V0ZXIgU2V0dGluZ3MKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtdGlsZT4KICAgIGB9cmVuZGVyTW9kZUJ1dHRvbihyLGEscyl7cmV0dXJuIFFlYAogICAgICA8YnV0dG9uCiAgICAgICAgY2xhc3M9ImdhdGV3YXktbW9kZS1idXR0b24gJHtzPT09cj8iYWN0aXZlIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMudXBkYXRlR2F0ZXdheURyYWZ0KCJkY3JvdXRlck1vZGUiLHIpfQogICAgICA+JHthfTwvYnV0dG9uPgogICAgYH1yZW5kZXJNYW5hZ2VkR2F0ZXdheVN0YXR1cygpe2xldCByPXRoaXMuc2V0dGluZ3NTdGF0ZS5tYW5hZ2VkRGNSb3V0ZXJTdGF0dXMsYT1yPy5ydW5uaW5nP3IuaGVhbHRoeT8iUnVubmluZyI6IlN0YXJ0aW5nIjoiU3RvcHBlZCI7cmV0dXJuIFFlYAogICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXN0YXR1cy1yb3ciPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXN0YXR1cy1sYWJlbCI+TWFuYWdlZCBkY3JvdXRlcjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1zdGF0dXMtdmFsdWUiPiR7YX0ke3I/LmdhdGV3YXlVcmw/YCBhdCAke3IuZ2F0ZXdheVVybH1gOiIifTwvZGl2PgogICAgICAgICAgJHtyPy5tZXNzYWdlP1FlYDxkaXYgY2xhc3M9ImdhdGV3YXktc3RhdHVzLWVycm9yIj4ke3IubWVzc2FnZX08L2Rpdj5gOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1hY3Rpb25zIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiAudGV4dD0keyJTdGFydCJ9IC50eXBlPSR7ImRlZmF1bHQifSBAY2xpY2s9JHsoKT0+bm4uZGlzcGF0Y2hBY3Rpb24oTm5hLG51bGwpfT48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIC50ZXh0PSR7IlJlc3RhcnQifSAudHlwZT0keyJkZWZhdWx0In0gQGNsaWNrPSR7KCk9Pm5uLmRpc3BhdGNoQWN0aW9uKFJuYSxudWxsKX0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiAudGV4dD0keyJTdG9wIn0gLnR5cGU9JHsiZGVmYXVsdCJ9IEBjbGljaz0keygpPT5ubi5kaXNwYXRjaEFjdGlvbihPbmEsbnVsbCl9PjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJHYXRld2F5SW5wdXQocixhLHMsbixvPSExKXtyZXR1cm4gUWVgCiAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktZmllbGQgJHtyPT09ImRjcm91dGVyR2F0ZXdheVVybCJ8fHI9PT0iYWRtaW5VaURvbWFpbiI/ImZ1bGwiOiIifSI+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLmtleT0ke3J9CiAgICAgICAgICAubGFiZWw9JHthfQogICAgICAgICAgLnZhbHVlPSR7c30KICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke259CiAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHtvfQogICAgICAgICAgQGlucHV0PSR7bD0+dGhpcy51cGRhdGVHYXRld2F5RHJhZnQocixsLnRhcmdldC52YWx1ZSl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyR2F0ZXdheVJlYWRvbmx5KHIsYSxzKXtyZXR1cm4gUWVgCiAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktcmVhZG9ubHkiPgogICAgICAgIDxkaXYgY2xhc3M9ImdhdGV3YXktcmVhZG9ubHktbGFiZWwiPiR7cn08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJnYXRld2F5LXJlYWRvbmx5LXZhbHVlIj4ke2F9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F0ZXdheS1yZWFkb25seS1oaW50Ij4ke3N9PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH11cGRhdGVHYXRld2F5RHJhZnQocixhKXtsZXQgcz10aGlzLnNldHRpbmdzU3RhdGUuc2V0dGluZ3N8fHt9LG89bmV3IFNldChbImRjcm91dGVyVGFyZ2V0UG9ydCIsImRjcm91dGVyTWFuYWdlZE9wc1BvcnQiLCJkY3JvdXRlck1hbmFnZWRIdHRwUG9ydCIsImRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydCJdKS5oYXMocik/TnVtYmVyKGEpfHwwOmE7dGhpcy5zZXR0aW5nc1N0YXRlPXsuLi50aGlzLnNldHRpbmdzU3RhdGUsc2V0dGluZ3M6ey4uLnMsW3JdOm99fX1hc3luYyBzYXZlRXh0ZXJuYWxHYXRld2F5U2V0dGluZ3MoKXtsZXQgcj10aGlzLnNldHRpbmdzU3RhdGUuc2V0dGluZ3M7ciYmKGF3YWl0IG5uLmRpc3BhdGNoQWN0aW9uKGthZSx7c2V0dGluZ3M6e2Rjcm91dGVyTW9kZTpyLmRjcm91dGVyTW9kZXx8Im1hbmFnZWQiLGRjcm91dGVyTWFuYWdlZEltYWdlOnIuZGNyb3V0ZXJNYW5hZ2VkSW1hZ2V8fCJjb2RlLmZvc3MuZ2xvYmFsL3NlcnZlLnpvbmUvZGNyb3V0ZXI6bGF0ZXN0IixkY3JvdXRlck1hbmFnZWRPcHNQb3J0Ok51bWJlcihyLmRjcm91dGVyTWFuYWdlZE9wc1BvcnQpfHwzMzAwLGRjcm91dGVyTWFuYWdlZEh0dHBQb3J0Ok51bWJlcihyLmRjcm91dGVyTWFuYWdlZEh0dHBQb3J0KXx8ODAsZGNyb3V0ZXJNYW5hZ2VkSHR0cHNQb3J0Ok51bWJlcihyLmRjcm91dGVyTWFuYWdlZEh0dHBzUG9ydCl8fDQ0MyxkY3JvdXRlck1hbmFnZWREYXRhRGlyOnIuZGNyb3V0ZXJNYW5hZ2VkRGF0YURpcnx8Ii4vLm5vZ2l0L2Rjcm91dGVyLWRhdGEiLGRjcm91dGVyR2F0ZXdheVVybDpyLmRjcm91dGVyR2F0ZXdheVVybHx8IiIsZGNyb3V0ZXJHYXRld2F5QXBpVG9rZW46ci5kY3JvdXRlckdhdGV3YXlBcGlUb2tlbnx8IiIsZGNyb3V0ZXJUYXJnZXRIb3N0OnIuZGNyb3V0ZXJUYXJnZXRIb3N0fHwiIixkY3JvdXRlclRhcmdldFBvcnQ6TnVtYmVyKHIuZGNyb3V0ZXJUYXJnZXRQb3J0KXx8ODB9fSksYXdhaXQgbm4uZGlzcGF0Y2hBY3Rpb24oUG5hLG51bGwpKX1hc3luYyBzYXZlQWRtaW5VaVNldHRpbmdzKCl7bGV0IHI9dGhpcy5zZXR0aW5nc1N0YXRlLnNldHRpbmdzO3ImJmF3YWl0IG5uLmRpc3BhdGNoQWN0aW9uKGthZSx7c2V0dGluZ3M6e2FkbWluVWlEb21haW46ci5hZG1pblVpRG9tYWlufHwiIn19KX19O04zPSRpKGUxYSksT2J0PW5ldyBXZWFrTWFwLFJidD1uZXcgV2Vha01hcCxEdChOMyw0LCJzZXR0aW5nc1N0YXRlIixKb2EsTzMsT2J0KSxEdChOMyw0LCJsb2dpblN0YXRlIixYb2EsTzMsUmJ0KSxPMz1EdChOMywwLCJPYlZpZXdTZXR0aW5ncyIsdDFhLE8zKSxpKE8zLCJPYlZpZXdTZXR0aW5ncyIpLGdpKE8zLCJzdHlsZXMiLFtvci5kZWZhdWx0U3R5bGVzLFNuLCRyYAogICAgICBkZWVzLXRpbGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmdhdGV3YXktaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LXNlY29uZGFyeSk7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmdhdGV3YXktY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtcm93LAogICAgICAuZ2F0ZXdheS1zdGF0dXMtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7b3IuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtcm93IHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtYnV0dG9uIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke29yLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7b3IuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgY29sb3I6ICR7b3IuYmRUaGVtZSgiIzNmM2Y0NiIsIiNkNGQ0ZDgiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udDogaW5oZXJpdDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LW1vZGUtYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke29yLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7b3IuYmRUaGVtZSgiI2VmZjZmZiIsIiMxNzI1NTQiKX07CiAgICAgICAgY29sb3I6ICR7b3IuYmRUaGVtZSgiIzFkNGVkOCIsIiNiZmRiZmUiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXN0YXR1cy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBjb2xvcjogJHtvci5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmdhdGV3YXktc3RhdHVzLXZhbHVlIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke29yLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1zdGF0dXMtZXJyb3IsCiAgICAgIC5nYXRld2F5LWRpc2FibGVkIHsKICAgICAgICBjb2xvcjogJHtvci5iZFRoZW1lKCIjYjkxYzFjIiwiI2ZjYTVhNSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LWRpc2FibGVkIHsKICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZ2F0ZXdheS1maWVsZC5mdWxsIHsKICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1yZWFkb25seSB7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7b3IuYmRUaGVtZSgiI2U0ZTRlNyIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7b3IuYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgIH0KCiAgICAgIC5nYXRld2F5LXJlYWRvbmx5LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtvci5iZFRoZW1lKCIjNTI1MjViIiwiI2Q0ZDRkOCIpfTsKICAgICAgfQoKICAgICAgLmdhdGV3YXktcmVhZG9ubHktdmFsdWUgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7b3IuYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1yZWFkb25seS1oaW50IHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke29yLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICBkZWVzLWlucHV0LXRleHQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZ2F0ZXdheS1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGlsZS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWJvcmRlci1zdWJ0bGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtbXV0ZWQpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAudGlsZS1idXR0b246Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICB9CgogICAgICAudGlsZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXMtY29sb3ItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQtcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC50aWxlLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBjb2xvcjogJHtvci5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAudGlsZS1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtvci5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjA4KSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke29yLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1MCUpIiwiaHNsKDIxMy4xIDkzLjklIDc1JSkiKX07CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkgewogICAgICAgIC5nYXRld2F5LWNvbnRlbnQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQoKICAgICAgICAuZ2F0ZXdheS1zdGF0dXMtcm93IHsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB9CiAgICAgIH0KICAgIGBdKSxYZShOMywxLE8zKTtGYnQ9TzN9KTtvMSgpO2F3YWl0IHAyKCk7R3coKTthd2FpdCBUZygpO05vKCk7dmFyIGkxYSxzMWEsbjFhLG8xYSxsMWEsYzFhLGQxYSx1MWEsaHMsSGJ0LHFidCxWYnQsamJ0LFVidCxXYnQ7dTFhPVt2aSgib2ItYXBwLXNoZWxsIildO3ZhciB2bD1jbGFzcyB2bCBleHRlbmRzKGQxYT15aSxjMWE9W1p0KCldLGwxYT1bWnQoKV0sbzFhPVtadCgpXSxuMWE9W1p0KCldLHMxYT1bWnQoKV0saTFhPVtadCgpXSxkMWEpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0cih0aGlzLEhidCxYZShocyw4LHRoaXMse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX0pKSxYZShocywxMSx0aGlzKTt0cih0aGlzLHFidCxYZShocywxMix0aGlzLHthY3RpdmVWaWV3OiJkYXNoYm9hcmQiLGFjdGl2ZVN1YnZpZXc6bnVsbCxhdXRvUmVmcmVzaDohMCxyZWZyZXNoSW50ZXJ2YWw6M2U0fSkpLFhlKGhzLDE1LHRoaXMpO3RyKHRoaXMsVmJ0LFhlKGhzLDE2LHRoaXMse3N0YXR1czpudWxsfSkpLFhlKGhzLDE5LHRoaXMpO3RyKHRoaXMsamJ0LFhlKGhzLDIwLHRoaXMsW10pKSxYZShocywyMyx0aGlzKTt0cih0aGlzLFVidCxYZShocywyNCx0aGlzLCExKSksWGUoaHMsMjcsdGhpcyk7dHIodGhpcyxXYnQsWGUoaHMsMjgsdGhpcywiIikpLFhlKGhzLDMxLHRoaXMpO2dpKHRoaXMsInZpZXdUYWJzIixbe3NsdWc6ImRhc2hib2FyZCIsbmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IFhndCgpLnRoZW4oKCk9PlhuYSkpLk9iVmlld0Rhc2hib2FyZCkoKX0se3NsdWc6ImFwcHMiLG5hbWU6IkFwcHMiLGljb25OYW1lOiJsdWNpZGU6c3RvcmUiLHN1YlZpZXdzOlt7c2x1ZzoiYXBwLXN0b3JlIixuYW1lOiJBcHAgU3RvcmUiLGljb25OYW1lOiJsdWNpZGU6c3RvcmUiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBmb2EoKS50aGVuKCgpPT5wb2EpKS5PYlZpZXdBcHBTdG9yZSkoKX0se3NsdWc6InNlcnZpY2VzIixuYW1lOiJTZXJ2aWNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpib3hlcyIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IHlidCgpLnRoZW4oKCk9PnpvYSkpLk9iVmlld1NlcnZpY2VzKSgpfV19LHtzbHVnOiJuZXR3b3JrIixuYW1lOiJOZXR3b3JrIixpY29uTmFtZToibHVjaWRlOm5ldHdvcmsiLHN1YlZpZXdzOlt7c2x1ZzoicHJveHkiLG5hbWU6IlByb3h5IixpY29uTmFtZToibHVjaWRlOnJvdXRlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgQ2J0KCkudGhlbigoKT0+QW9hKSkuT2JWaWV3TmV0d29yaykoKX0se3NsdWc6ImRvbWFpbnMiLG5hbWU6IkRvbWFpbnMiLGljb25OYW1lOiJsdWNpZGU6Z2xvYmUiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBPb2EoKS50aGVuKCgpPT5Ob2EpKS5PYlZpZXdEb21haW5zKSgpfSx7c2x1ZzoiZG5zLXJlY29yZHMiLG5hbWU6IkROUyBSZWNvcmRzIixpY29uTmFtZToibHVjaWRlOmxpc3RUcmVlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgcW9hKCkudGhlbigoKT0+SG9hKSkuT2JWaWV3RG5zUmVjb3JkcykoKX1dfSx7c2x1ZzoicmVnaXN0cnkiLG5hbWU6IlJlZ2lzdHJ5IixpY29uTmFtZToibHVjaWRlOnBhY2thZ2UiLHN1YlZpZXdzOlt7c2x1ZzoicmVnaXN0cmllcyIsbmFtZToiUmVnaXN0cmllcyIsaWNvbk5hbWU6Imx1Y2lkZTpwYWNrYWdlIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgRWJ0KCkudGhlbigoKT0+R29hKSkuT2JWaWV3UmVnaXN0cmllcykoKX0se3NsdWc6InRva2VucyIsbmFtZToiVG9rZW5zIixpY29uTmFtZToibHVjaWRlOmtleSIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IE5idCgpLnRoZW4oKCk9PlFvYSkpLk9iVmlld1Rva2VucykoKX1dfSx7c2x1Zzoic2V0dGluZ3MiLG5hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgQmJ0KCkudGhlbigoKT0+cjFhKSkuT2JWaWV3U2V0dGluZ3MpKCl9XSk7Z2kodGhpcywicmVzb2x2ZWRWaWV3VGFicyIsW10pO2dpKHRoaXMsInN1cHByZXNzZWRVcGRhdGVWZXJzaW9uIiwiIik7Z2kodGhpcywidXBncmFkZUZsb3dSdW5uaW5nIiwhMSk7ZG9jdW1lbnQudGl0bGU9Ik9uZWJveCI7bGV0IHI9R2kuc2VsZWN0KG49Pm4pLnN1YnNjcmliZShuPT57dGhpcy5sb2dpblN0YXRlPW4sdGhpcy51cGRhdGVHbG9iYWxNZXNzYWdlcygpLG4uaXNMb2dnZWRJbiYmemQuZGlzcGF0Y2hBY3Rpb24oS3csbnVsbCl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpO2xldCBhPXpkLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMuc3lzdGVtU3RhdGU9bix0aGlzLnVwZGF0ZUdsb2JhbE1lc3NhZ2VzKCl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBzPXhsLnNlbGVjdChuPT5uKS5zdWJzY3JpYmUobj0+e3RoaXMudWlTdGF0ZT1uLHRoaXMuc3luY0FwcGRhc2hWaWV3KG4uYWN0aXZlVmlldyxuLmFjdGl2ZVN1YnZpZXcpfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChzKX1hc3luYyByZXNvbHZlVmlld1RhYnMocil7cmV0dXJuIFByb21pc2UuYWxsKHIubWFwKGFzeW5jIGE9PntsZXQgcz17c2x1ZzphLnNsdWcsbmFtZTphLm5hbWUsaWNvbk5hbWU6YS5pY29uTmFtZX07cmV0dXJuIGEuZWxlbWVudCYmKHMuZWxlbWVudD1hd2FpdCBhLmVsZW1lbnQpLGEuc3ViVmlld3MmJihzLnN1YlZpZXdzPWF3YWl0IHRoaXMucmVzb2x2ZVZpZXdUYWJzKGEuc3ViVmlld3MpKSxzfSkpfXNsdWdGb3Iocil7cmV0dXJuIHIuc2x1Zz8/ci5uYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKX1maW5kUGFyZW50KHIpe3JldHVybiB0aGlzLnJlc29sdmVkVmlld1RhYnMuZmluZChhPT5hLnN1YlZpZXdzPy5pbmNsdWRlcyhyKSl9ZmluZFZpZXdCeVNsdWcocixhKXtsZXQgcz10aGlzLnJlc29sdmVkVmlld1RhYnMuZmluZChuPT50aGlzLnNsdWdGb3Iobik9PT1yKTtpZihzKXJldHVybiBhJiZzLnN1YlZpZXdzP3Muc3ViVmlld3MuZmluZChuPT50aGlzLnNsdWdGb3Iobik9PT1hKT8/czpzfWdldCBjdXJyZW50Vmlld1RhYigpe2lmKHRoaXMucmVzb2x2ZWRWaWV3VGFicy5sZW5ndGghPT0wKXJldHVybiB0aGlzLmZpbmRWaWV3QnlTbHVnKHRoaXMudWlTdGF0ZS5hY3RpdmVWaWV3LHRoaXMudWlTdGF0ZS5hY3RpdmVTdWJ2aWV3KT8/dGhpcy5yZXNvbHZlZFZpZXdUYWJzWzBdfXJlbmRlcigpe3JldHVybiBRZWAKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRlZXMtc2ltcGxlLWxvZ2luIG5hbWU9Ik9uZWJveCI+CiAgICAgICAgICA8ZGVlcy1zaW1wbGUtYXBwZGFzaAogICAgICAgICAgICBuYW1lPSJPbmVib3giCiAgICAgICAgICAgIC52aWV3VGFicz0ke3RoaXMucmVzb2x2ZWRWaWV3VGFic30KICAgICAgICAgICAgLnNlbGVjdGVkVmlldz0ke3RoaXMuY3VycmVudFZpZXdUYWJ9CiAgICAgICAgICAgIC5nbG9iYWxNZXNzYWdlcz0ke3RoaXMuZ2xvYmFsTWVzc2FnZXN9CiAgICAgICAgICA+CiAgICAgICAgICA8L2RlZXMtc2ltcGxlLWFwcGRhc2g+CiAgICAgICAgPC9kZWVzLXNpbXBsZS1sb2dpbj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMucmVzb2x2ZWRWaWV3VGFicz1hd2FpdCB0aGlzLnJlc29sdmVWaWV3VGFicyh0aGlzLnZpZXdUYWJzKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCByPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1sb2dpbiIpO3ImJnIuYWRkRXZlbnRMaXN0ZW5lcigibG9naW4iLG49Pnt0aGlzLmxvZ2luKG4uZGV0YWlsLmRhdGEudXNlcm5hbWUsbi5kZXRhaWwuZGF0YS5wYXNzd29yZCl9KTtsZXQgYT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKGEmJihhLmFkZEV2ZW50TGlzdGVuZXIoInZpZXctc2VsZWN0IixuPT57bGV0IG89bi5kZXRhaWwudmlldyxsPXRoaXMuZmluZFBhcmVudChvKSxjPXhsLmdldFN0YXRlKCk7aWYobCl7bGV0IGQ9dGhpcy5zbHVnRm9yKGwpLGY9dGhpcy5zbHVnRm9yKG8pO2lmKGMuYWN0aXZlVmlldz09PWQmJmMuYWN0aXZlU3Vidmlldz09PWYpcmV0dXJuO2MxLm5hdmlnYXRlVG9WaWV3KGQsZil9ZWxzZXtsZXQgZD10aGlzLnNsdWdGb3Iobyk7aWYoYy5hY3RpdmVWaWV3PT09ZCYmIWMuYWN0aXZlU3VidmlldylyZXR1cm47YzEubmF2aWdhdGVUb1ZpZXcoZCl9fSksYS5hZGRFdmVudExpc3RlbmVyKCJsb2dvdXQiLGFzeW5jKCk9Pnthd2FpdCBHaS5kaXNwYXRjaEFjdGlvbih2bWUsbnVsbCl9KSksYSYmdGhpcy5yZXNvbHZlZFZpZXdUYWJzLmxlbmd0aD4wKXtsZXQgbj14bC5nZXRTdGF0ZSgpLG89dGhpcy5maW5kVmlld0J5U2x1ZyhuLmFjdGl2ZVZpZXcsbi5hY3RpdmVTdWJ2aWV3KXx8dGhpcy5yZXNvbHZlZFZpZXdUYWJzWzBdO2F3YWl0IGEubG9hZFZpZXcobyl9bGV0IHM9R2kuZ2V0U3RhdGUoKTtpZihzLmlkZW50aXR5Py5qd3QpaWYocy5pZGVudGl0eS5leHBpcmVzQXQ+RGF0ZS5ub3coKSl7dGhpcy5sb2dpblN0YXRlPXMsciYmYXdhaXQgci5zd2l0Y2hUb1Nsb3R0ZWRDb250ZW50KCk7dHJ5e2xldCBvPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTeXN0ZW1TdGF0dXMiKS5maXJlKHtpZGVudGl0eTpzLmlkZW50aXR5fSk7emQuc2V0U3RhdGUoe3N0YXR1czpvLnN0YXR1c30pfWNhdGNoKG4pe2NvbnNvbGUud2FybigiU3RvcmVkIHNlc3Npb24gaW52YWxpZCwgcmV0dXJuaW5nIHRvIGxvZ2luOiIsbiksYXdhaXQgR2kuZGlzcGF0Y2hBY3Rpb24odm1lLG51bGwpLHImJndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX19ZWxzZSBhd2FpdCBHaS5kaXNwYXRjaEFjdGlvbih2bWUsbnVsbCl9YXN5bmMgbG9naW4ocixhKXtsZXQgcz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxuPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1sb2dpbiIpLG89bj8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIik7byYmby5zZXRTdGF0dXMoInBlbmRpbmciLCJMb2dnaW5nIGluLi4uIiksKGF3YWl0IEdpLmRpc3BhdGNoQWN0aW9uKHhuYSx7dXNlcm5hbWU6cixwYXNzd29yZDphfSkpLmlkZW50aXR5PyhvJiZvLnNldFN0YXR1cygic3VjY2VzcyIsIkxvZ2dlZCBpbiEiKSxuJiZhd2FpdCBuLnN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKSxhd2FpdCB6ZC5kaXNwYXRjaEFjdGlvbihLdyxudWxsKSk6byYmKG8uc2V0U3RhdHVzKCJlcnJvciIsIkxvZ2luIGZhaWxlZCEiKSxhd2FpdCBzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxvLnJlc2V0KCkpfXVwZGF0ZUdsb2JhbE1lc3NhZ2VzKCl7bGV0IHI9dGhpcy5zeXN0ZW1TdGF0ZS5zdGF0dXM/Lm9uZWJveC51cGRhdGU7aWYoIXRoaXMubG9naW5TdGF0ZS5pc0xvZ2dlZElufHwhcj8udXBkYXRlQXZhaWxhYmxlfHwhci5sYXRlc3RWZXJzaW9ufHxyLmxhdGVzdFZlcnNpb249PT10aGlzLnN1cHByZXNzZWRVcGRhdGVWZXJzaW9uKXt0aGlzLmdsb2JhbE1lc3NhZ2VzPVtdO3JldHVybn10aGlzLmdsb2JhbE1lc3NhZ2VzPVt7aWQ6YG9uZWJveC11cGRhdGUtJHtyLmxhdGVzdFZlcnNpb259YCx0eXBlOiJpbmZvIixpY29uOiJsdWNpZGU6ZG93bmxvYWQiLG1lc3NhZ2U6YE9uZWJveCAke3IubGF0ZXN0VmVyc2lvbn0gaXMgYXZhaWxhYmxlLiBDdXJyZW50IHZlcnNpb246ICR7ci5jdXJyZW50VmVyc2lvbn0uYCxkaXNtaXNzaWJsZTohMSxhY3Rpb25zOlt7bmFtZToiVXBkYXRlIE5vdyIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOmkoKCk9PnRoaXMuc3RhcnRPbmVib3hVcGdyYWRlRmxvdygpLCJhY3Rpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGFjdGlvbjppKCgpPT50aGlzLm9wZW5VcGRhdGVVcmwoci5jaGFuZ2Vsb2dVcmx8fHIucmVsZWFzZVVybCksImFjdGlvbiIpfSx7bmFtZToiTGF0ZXIiLGljb25OYW1lOiJsdWNpZGU6Y2xvY2siLGFjdGlvbjppKCgpPT57dGhpcy5zdXBwcmVzc2VkVXBkYXRlVmVyc2lvbj1yLmxhdGVzdFZlcnNpb258fCIiLHRoaXMudXBkYXRlR2xvYmFsTWVzc2FnZXMoKX0sImFjdGlvbiIpfV19XX1hc3luYyBzdGFydE9uZWJveFVwZ3JhZGVGbG93KCl7aWYodGhpcy51cGdyYWRlRmxvd1J1bm5pbmcpcmV0dXJuO2xldCByPUdpLmdldFN0YXRlKCkuaWRlbnRpdHksYT10aGlzLnN5c3RlbVN0YXRlLnN0YXR1cz8ub25lYm94LnVwZGF0ZTtpZighcnx8IWE/LmxhdGVzdFZlcnNpb24pcmV0dXJuO3RoaXMudXBncmFkZUZsb3dSdW5uaW5nPSEwO2xldCBzPWF3YWl0IEpyZS5EZWVzVXBkYXRlci5jcmVhdGVBbmRTaG93KHtjdXJyZW50VmVyc2lvbjphLmN1cnJlbnRWZXJzaW9uLHVwZGF0ZWRWZXJzaW9uOmEubGF0ZXN0VmVyc2lvbixtb3JlSW5mb1VybDphLnJlbGVhc2VVcmwsY2hhbmdlbG9nVXJsOmEuY2hhbmdlbG9nVXJsLHN1Y2Nlc3NBY3Rpb246InJlbG9hZCIsc3VjY2Vzc0RlbGF5TXM6M2U0LHN1Y2Nlc3NBY3Rpb25MYWJlbDoiUmVsb2FkaW5nIE9uZWJveCBVSSJ9KTt0cnl7cy51cGRhdGVQcm9ncmVzcyh7cGVyY2VudGFnZToxMCxpbmRldGVybWluYXRlOiEwLHN0YXR1c1RleHQ6IlJlcXVlc3RpbmcgdXBncmFkZS4uLiIsdGVybWluYWxMaW5lczpbIlJlcXVlc3RpbmcgT25lYm94IHVwZ3JhZGUiXX0pO2xldCBvPWF3YWl0IG5ldyBjdC5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJzdGFydE9uZWJveFVwZ3JhZGUiKS5maXJlKHtpZGVudGl0eTpyfSk7aWYoIW8udXBncmFkZS5hY2NlcHRlZCl7cy5tYXJrVXBkYXRlRXJyb3Ioby51cGdyYWRlLm1lc3NhZ2UpLGF3YWl0IHRoaXMuZGVsYXkoNWUzKSxhd2FpdCBzLmRlc3Ryb3koKTtyZXR1cm59cy5hcHBlbmRQcm9ncmVzc0xpbmUoby51cGdyYWRlLm1lc3NhZ2UpLG8udXBncmFkZS5waWQmJnMuYXBwZW5kUHJvZ3Jlc3NMaW5lKGBVcGdyYWRlIHByb2Nlc3MgUElEOiAke28udXBncmFkZS5waWR9YCksby51cGdyYWRlLmxvZ1BhdGgmJnMuYXBwZW5kUHJvZ3Jlc3NMaW5lKGBVcGdyYWRlIGxvZzogJHtvLnVwZ3JhZGUubG9nUGF0aH1gKSxzLnVwZGF0ZVByb2dyZXNzKHtwZXJjZW50YWdlOjQ1LGluZGV0ZXJtaW5hdGU6ITAsc3RhdHVzVGV4dDoiSW5zdGFsbGVyIHN0YXJ0ZWQuLi4ifSksYXdhaXQgdGhpcy53YWl0Rm9yT25lYm94VXBncmFkZShzLG8udXBncmFkZS50YXJnZXRWZXJzaW9uLHIpLGF3YWl0IHMubWFya1VwZGF0ZVJlYWR5KCl9Y2F0Y2gobil7cy5tYXJrVXBkYXRlRXJyb3IodGhpcy5nZXRFcnJvck1lc3NhZ2UobikpLGF3YWl0IHRoaXMuZGVsYXkoNWUzKSxhd2FpdCBzLmRlc3Ryb3koKX1maW5hbGx5e3RoaXMudXBncmFkZUZsb3dSdW5uaW5nPSExfX1hc3luYyB3YWl0Rm9yT25lYm94VXBncmFkZShyLGEscyl7bGV0IG49dGhpcy5ub3JtYWxpemVWZXJzaW9uKGEpLG89RGF0ZS5ub3coKSs5ZTQsbD0wO2ZvcihyLmFwcGVuZFByb2dyZXNzTGluZSgiV2FpdGluZyBmb3IgT25lYm94IHRvIHJlc3RhcnQgd2l0aCB0aGUgbmV3IHZlcnNpb24iKTtEYXRlLm5vdygpPG87KXthd2FpdCB0aGlzLmRlbGF5KDVlMyksbCsrO3RyeXtsZXQgZD1hd2FpdCBuZXcgY3QucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U3lzdGVtU3RhdHVzIikuZmlyZSh7aWRlbnRpdHk6c30pLGY9dGhpcy5ub3JtYWxpemVWZXJzaW9uKGQuc3RhdHVzLm9uZWJveC52ZXJzaW9uKTtpZihyLmFwcGVuZFByb2dyZXNzTGluZShgT25lYm94IEFQSSBhbnN3ZXJlZCB3aXRoICR7Zn1gKSxmPT09bil7ci51cGRhdGVQcm9ncmVzcyh7cGVyY2VudGFnZToxMDAsaW5kZXRlcm1pbmF0ZTohMSxzdGF0dXNUZXh0OmBPbmVib3ggJHtufSBpcyBvbmxpbmUuYH0pO3JldHVybn19Y2F0Y2h7ci5hcHBlbmRQcm9ncmVzc0xpbmUoIk9uZWJveCBBUEkgaXMgcmVzdGFydGluZy4uLiIpfXIudXBkYXRlUHJvZ3Jlc3Moe3BlcmNlbnRhZ2U6TWF0aC5taW4oOTUsNDUrbCo1KSxpbmRldGVybWluYXRlOiEwLHN0YXR1c1RleHQ6YFdhaXRpbmcgZm9yIE9uZWJveCAke259Li4uYH0pfXIuYXBwZW5kUHJvZ3Jlc3NMaW5lKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGhlIHZlcnNpb24gY2hlY2s7IHJlbG9hZGluZyB0aGUgVUkgYW55d2F5Iil9b3BlblVwZGF0ZVVybChyKXt3aW5kb3cub3BlbihyLCJfYmxhbmsiLCJub29wZW5lcixub3JlZmVycmVyIil9YXN5bmMgZGVsYXkocil7YXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3Iocil9Z2V0RXJyb3JNZXNzYWdlKHIpe3JldHVybiByIGluc3RhbmNlb2YgRXJyb3I/ci5tZXNzYWdlOlN0cmluZyhyKX1ub3JtYWxpemVWZXJzaW9uKHIpe2xldCBhPXIudHJpbSgpO3JldHVybiBhLnN0YXJ0c1dpdGgoInYiKT9hOmB2JHthfWB9c3luY0FwcGRhc2hWaWV3KHIsYSl7bGV0IHM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1hcHBkYXNoIik7aWYoIXN8fHRoaXMucmVzb2x2ZWRWaWV3VGFicy5sZW5ndGg9PT0wKXJldHVybjtsZXQgbj10aGlzLmZpbmRWaWV3QnlTbHVnKHIsYSk7IW58fHMuc2VsZWN0ZWRWaWV3PT09bnx8cy5sb2FkVmlldyhuKX19O2hzPSRpKGQxYSksSGJ0PW5ldyBXZWFrTWFwLHFidD1uZXcgV2Vha01hcCxWYnQ9bmV3IFdlYWtNYXAsamJ0PW5ldyBXZWFrTWFwLFVidD1uZXcgV2Vha01hcCxXYnQ9bmV3IFdlYWtNYXAsRHQoaHMsNCwibG9naW5TdGF0ZSIsYzFhLHZsLEhidCksRHQoaHMsNCwidWlTdGF0ZSIsbDFhLHZsLHFidCksRHQoaHMsNCwic3lzdGVtU3RhdGUiLG8xYSx2bCxWYnQpLER0KGhzLDQsImdsb2JhbE1lc3NhZ2VzIixuMWEsdmwsamJ0KSxEdChocyw0LCJsb2dpbkxvYWRpbmciLHMxYSx2bCxVYnQpLER0KGhzLDQsImxvZ2luRXJyb3IiLGkxYSx2bCxXYnQpLHZsPUR0KGhzLDAsIk9iQXBwU2hlbGwiLHUxYSx2bCksaSh2bCwiT2JBcHBTaGVsbCIpLGdpKHZsLCJzdHlsZXMiLFtvci5kZWZhdWx0U3R5bGVzLCRyYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICB9CiAgICBgXSksWGUoaHMsMSx2bCk7dmFyIGExYT12bDtSYygpO1hndCgpO3lidCgpO0NidCgpO0VidCgpO05idCgpO0JidCgpO28xKCk7Tm8oKTthd2FpdCBUZygpO2MxLmluaXQoKSxIaC5yZW5kZXIoUWVgCiAgPG9iLWFwcC1zaGVsbD48L29iLWFwcC1zaGVsbD4KYCxkb2N1bWVudC5ib2R5KTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCkBsaXQvcmVhY3RpdmUtZWxlbWVudC9jc3MtdGFnLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvY3NzLXRhZy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvcmVhY3RpdmUtZWxlbWVudC5qczoKbGl0LWh0bWwvbGl0LWh0bWwuanM6CmxpdC1lbGVtZW50L2xpdC1lbGVtZW50LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9wcm9wZXJ0eS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3Vuc2FmZS1odG1sLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9jdXN0b20tZWxlbWVudC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvc3RhdGUuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2V2ZW50LW9wdGlvbnMuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2Jhc2UuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hbGwuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzeW5jLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1ub2Rlcy5qczoKbGl0LWh0bWwvYXN5bmMtZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3VudGlsLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2FzeW5jLXJlcGxhY2UuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvYXN5bmMtYXBwZW5kLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3JlcGVhdC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L3JlYWN0aXZlLWVsZW1lbnQuanM6CmxpdC1odG1sL2xpdC1odG1sLmpzOgpsaXQtZWxlbWVudC9saXQtZWxlbWVudC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcHJvcGVydHkuanM6CmxpdC1odG1sL2RpcmVjdGl2ZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy91bnNhZmUtaHRtbC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvY3VzdG9tLWVsZW1lbnQuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3N0YXRlLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9ldmVudC1vcHRpb25zLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9iYXNlLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYWxsLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3luYy5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXNzaWduZWQtbm9kZXMuanM6CmxpdC1odG1sL2FzeW5jLWRpcmVjdGl2ZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy91bnRpbC5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9hc3luYy1yZXBsYWNlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2FzeW5jLWFwcGVuZC5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9yZXBlYXQuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKbGl0LWh0bWwvaXMtc2VydmVyLmpzOgpsaXQtaHRtbC9pcy1zZXJ2ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMiBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKc3dlZXQtc2Nyb2xsL3N3ZWV0LXNjcm9sbC5qczoKc3dlZXQtc2Nyb2xsL3N3ZWV0LXNjcm9sbC5qczoKICAoKiEgQHByZXNlcnZlIHN3ZWV0LXNjcm9sbCB2NC4wLjAgLSB0c3V5b3NoaXdhZGEgfCBNSVQgTGljZW5zZSAqKQogICgqISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZQogICAgICB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZQogICAgICBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogIAogICAgICBUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICAgIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRUQKICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwKICAgICAgTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KICAKICAgICAgU2VlIHRoZSBBcGFjaGUgVmVyc2lvbiAyLjAgTGljZW5zZSBmb3Igc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zCiAgICAgIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKikKCmxpdC1odG1sL3N0YXRpYy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLWhlbHBlcnMuanM6CmxpdC1odG1sL3N0YXRpYy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLWhlbHBlcnMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMCBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXNzaWduZWQtZWxlbWVudHMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvcHJpdmF0ZS1hc3luYy1oZWxwZXJzLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2tleWVkLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1lbGVtZW50cy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9wcml2YXRlLWFzeW5jLWhlbHBlcnMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMva2V5ZWQuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtYnJhbmRzLXN2Zy1pY29ucy9pbmRleC5tanM6CkBmb3J0YXdlc29tZS9mcmVlLXJlZ3VsYXItc3ZnLWljb25zL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zL2luZGV4Lm1qczoKICAoKiEKICAgKiBGb250IEF3ZXNvbWUgRnJlZSA3LjIuMCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbQogICAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpCiAgICogQ29weXJpZ2h0IDIwMjYgRm9udGljb25zLCBJbmMuCiAgICopCgpsdWNpZGUvZGlzdC9lc20vZGVmYXVsdEF0dHJpYnV0ZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9jcmVhdGVFbGVtZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy9oYXNBMTF5UHJvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL3NoYXJlZC9zcmMvdXRpbHMvbWVyZ2VDbGFzc2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy90b0NhbWVsQ2FzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL3NoYXJlZC9zcmMvdXRpbHMvdG9QYXNjYWxDYXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vcmVwbGFjZUVsZW1lbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hLWFycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYS1sYXJnZS1zbWFsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FjY2Vzc2liaWxpdHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hY3Rpdml0eS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fpci12ZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWlycGxheS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxhcm0tY2xvY2stb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxhcm0tY2xvY2stcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYXJtLWNsb2NrLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxhcm0tY2xvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1zbW9rZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYnVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tY2VudGVyLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1jZW50ZXItdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1lbmQtaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWVuZC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1jZW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1kaXN0cmlidXRlLXN0YXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LWNlbnRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtanVzdGlmeS1lbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktc3RhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLXNwYWNlLWFyb3VuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtc3BhY2UtYmV0d2Vlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXN0YXJ0LWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1zdGFydC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtY2VudGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZS1zdGFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1jZW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1qdXN0aWZ5LWVuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWp1c3RpZnktc3RhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1zcGFjZS1hcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1zcGFjZS1iZXR3ZWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1idWxhbmNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1wZXJzYW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1wZXJzYW5kcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FtcGhvcmEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbmNob3IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbmdyeS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fubm95ZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbnZpbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FudGVubmEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcGVydHVyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwcC13aW5kb3ctbWFjLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXBwbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcmNoaXZlLXJlc3RvcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcHAtd2luZG93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FybWNoYWlyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWRvd24tZGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWxlZnQtZGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLXJpZ2h0LWRhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1iaWctcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1iaWctdXAtZGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tMC0xLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi0xLTAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLWEtei5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tZnJvbS1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi1uYXJyb3ctd2lkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLXRvLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tdG8tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLXdpZGUtbmFycm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi16LWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC1mcm9tLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1sZWZ0LXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC10by1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LWZyb20tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1yaWdodC10by1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC0wLTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC0xLTAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1hLXouanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtZnJvbS1kb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1mcm9tLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtbmFycm93LXdpZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXRvLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC13aWRlLW5hcnJvdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXotYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3dzLXVwLWZyb20tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FzdGVyaXNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXQtc2lnbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F0b20uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hdWRpby1saW5lcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F3YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXVkaW8td2F2ZWZvcm0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9heGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWJ5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXhpcy0zZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhY2twYWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1jZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1kb2xsYXItc2lnbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWV1cm8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1pbmRpYW4tcnVwZWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1pbmZvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtamFwYW5lc2UteWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1wZXJjZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXBvdW5kLXN0ZXJsaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtcXVlc3Rpb24tbWFyay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXJ1c3NpYW4tcnVibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1zd2lzcy1mcmFuYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXR1cmtpc2gtbGlyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZ2dhZ2UtY2xhaW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWxsb29uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuYW5hLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuZGFnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jhbmtub3RlLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5rbm90ZS1hcnJvdy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jhbmtub3RlLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5rbm90ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhcmNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXJyZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXNlbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdGguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LWNoYXJnaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0dGVyeS1sb3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LWZ1bGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LW1lZGl1bS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnktcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnktd2FybmluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWFrZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWFuLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWQtZG91YmxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVkLXNpbmdsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZWYtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVlZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVsbC1lbGVjdHJpYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtcmluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZXR3ZWVuLWhvcml6b250YWwtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmV0d2Vlbi1ob3Jpem9udGFsLXN0YXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmV0d2Vlbi12ZXJ0aWNhbC1lbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZXR3ZWVuLXZlcnRpY2FsLXN0YXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmljZXBzLWZsZXhlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jpa2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaW5hcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaW5vY3VsYXJzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmlvaGF6YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmlyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpcmRob3VzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpdGNvaW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibGVuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsaW5kcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jsb2Nrcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsdWV0b290aC1jb25uZWN0ZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibHVldG9vdGgtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmx1ZXRvb3RoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9sZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsdWV0b290aC1zZWFyY2hpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib2x0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9tYi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1hdWRpby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWNvcHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2staGVhZHBob25lcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2staGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWltYWdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1rZXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWxvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1tYXJrZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW9wZW4tY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW9wZW4tdGV4dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay10eXBlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay11cC0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stdXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2ttYXJrLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2ttYXJrLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9va21hcmstcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2ttYXJrLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb20tYm94LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm90LW1lc3NhZ2Utc3F1YXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm90LW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvdHRsZS13aW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm93LWFycm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm94LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm94ZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFja2V0cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyYWNlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyYWluLWNpcmN1aXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFpbi1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFpbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWNrLXdhbGwtZmlyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWNrLXdhbGwtc2hpZWxkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpY2std2FsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWVmY2FzZS1idXNpbmVzcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWVmY2FzZS1jb252ZXlvci1iZWx0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpZWZjYXNlLW1lZGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmllZmNhc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmluZy10by1mcm9udC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JydXNoLWNsZWFuaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJ1c2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9idWJibGVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVnLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1Zy1wbGF5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVpbGRpbmctMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1aWxkaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVzLWZyb250LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FibGUtY2FyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWtlLXNsaWNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FrZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGN1bGF0b3IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci0xLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItYXJyb3ctZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWFycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItY2hlY2stMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItY2xvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1kYXlzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItZm9sZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLW1pbnVzLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWhlYXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItcGx1cy0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXJhbmdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItc3luYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXgtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbWVyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbWVyYS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5keS1jYW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FuZHktb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FuZHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5uYWJpcy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW5uYWJpcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhcHRpb25zLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhcHRpb25zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyLWZyb250LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyLXRheGktZnJvbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXJhdmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyZC1zaW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXJyb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXNlLWxvd2VyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzZS1zZW5zaXRpdmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXNlLXVwcGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2Fzc2V0dGUtdGFwZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXN0bGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jY3R2LW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NjdHYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1hcmVhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtYmFyLWJpZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWJhci1kZWNyZWFzaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtYmFyLWluY3JlYXNpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXItc3RhY2tlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNhbmRsZXN0aWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtY29sdW1uLWJpZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi1kZWNyZWFzaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtY29sdW1uLWluY3JlYXNpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jb2x1bW4tc3RhY2tlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWdhbnR0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5ldHdvcmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1kZWNyZWFzaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1uby1heGVzLWNvbWJpbmVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4taW5jcmVhc2luZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5vLWF4ZXMtZ2FudHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1waWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1zY2F0dGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtc3BsaW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlY2stY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVjay1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVmLWhhdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXJyeS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLWJpc2hvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLWtpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVzcy1wYXduLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3Mta25pZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3MtcXVlZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVzcy1yb29rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1maXJzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tbGFzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9uLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtZG93bi11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1sZWZ0LXJpZ2h0LWVsbGlwc2lzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtbGVmdC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLXJpZ2h0LWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy11cC1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaHVyY2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaWdhcmV0dGUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lnYXJldHRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYXJyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtZG93bi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LW91dC1kb3duLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LW91dC11cC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LW91dC11cC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGVjay1iaWcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hldnJvbi1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZXZyb24tbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGV2cm9uLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZXZyb24tdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWRpdmlkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kb2xsYXItc2lnbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kb3QtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1lbGxpcHNpcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1lcXVhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1mYWRpbmctYXJyb3ctdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZmFkaW5nLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZ2F1Z2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBhcmtpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGFya2luZy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGVyY2VudC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wYXVzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1waWxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBsYXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wb3VuZC1zdGVybGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wb3dlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1xdWVzdGlvbi1tYXJrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXNsYXNoLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc2xhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc21hbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc3Rhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1zdG9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXVzZXItcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtdXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY3VpdC1ib2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsYXBwZXJib2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpdHJ1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1jbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1jb3B5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLWxpc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtcGFzdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtcGVuLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtdHlwZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stMS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTEwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stMTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0xMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stNC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay02LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stNy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay05LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1hcnJvdy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stYXJyb3ctdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLWZhZGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3NlZC1jYXB0aW9uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1iYWNrdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWRvd25sb2FkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtZHJpenpsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWZvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWhhaWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1saWdodG5pbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1tb29uLXJhaW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1tb29uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtcmFpbi13aW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtcmFpbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXNub3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1zdW4tcmFpbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXN1bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXN5bmMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC11cGxvYWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3Zlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsdWIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2RlLXhtbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2ZmZWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2lucy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbHVtbnMtMy1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb21iaW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29tbWFuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbXBhc3MuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb21wb25lbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb21wdXRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbmNpZXJnZS1iZWxsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29uZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbnRhY3Qtcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb25zdHJ1Y3Rpb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb250YWluZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb250YWN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29udHJhc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb29raWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb29raW5nLXBvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHktY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5LW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS1zbGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHkteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5bGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHlyaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1kb3duLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItZG93bi1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1sZWZ0LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItbGVmdC11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1yaWdodC1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLXJpZ2h0LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLXVwLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItdXAtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcHUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcmVkaXQtY2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NyZWF0aXZlLWNvbW1vbnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcm9pc3NhbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcm9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3Jvc3MuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcm9zc2hhaXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jcm93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2N1Ym9pZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2N1cC1zb2RhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3VycmVuY3kuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jeWxpbmRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhbS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLWJhY2t1cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLXphcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RhdGFiYXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVjaW1hbHMtYXJyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RlY2ltYWxzLWFycm93LXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVsZXRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGVzc2VydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpYW1ldGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlhbW9uZC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpYW1vbmQtcGVyY2VudC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpYW1vbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtb25kLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXNjLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXNjLTMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXNjLWFsYnVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlzYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpdmlkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RuYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kbmEtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9sbGFyLXNpZ24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb251dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rvb3Itb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rvb3ItY2xvc2VkLWxvY2tlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rvb3ItY2xvc2VkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG93bmxvYWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcmFmdGluZy1jb21wYXNzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJhbWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcmlsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Ryb25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJvcGxldC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcm9wbGV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJvcGxldHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcnVtc3RpY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcnVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHVtYmJlbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lYXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFydGgtbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VhcnRoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWNsaXBzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VnZy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lZ2ctZnJpZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lbGxpcHNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWdnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWxsaXBzaXMtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lbGxpcHNpcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VxdWFsLWFwcHJveGltYXRlbHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lcXVhbC1ub3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lcXVhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VyYXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V0aGVybmV0LXBvcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ldXJvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXYtY2hhcmdlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V4cGFuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V4dGVybmFsLWxpbmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9leWUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXllLWNsb3NlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V5ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZhY3RvcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mYXN0LWZvcndhcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mZWF0aGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmVuY2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mZXJyaXMtd2hlZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWFyY2hpdmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWF4aXMtM2QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWJhZGdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1ib3guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWJyYWNlcy1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWJyYWNlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtY29sdW1uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jaGFydC1jb2x1bW4taW5jcmVhc2luZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtcGllLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jaGVjay1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY29kZS1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWRpZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtZGlnaXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWV4Y2xhbWF0aW9uLXBvaW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1pbWFnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtaGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWhlYWRwaG9uZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtaW5wdXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWtleS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtbWludXMtY29ybmVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1tdXNpYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLW91dHB1dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGVuLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGxheS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGx1cy1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXF1ZXN0aW9uLW1hcmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNlYXJjaC1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNjYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc2lnbmFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1zbGlkZXJzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1zcHJlYWRzaGVldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc3RhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXN5bWxpbmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXRlcm1pbmFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS10eXBlLWNvcm5lci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdHlwZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXVzZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXZpZGVvLWNhbWVyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdm9sdW1lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS14LWNvcm5lci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbG0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maW5nZXJwcmludC1wYXR0ZXJuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlyZS1leHRpbmd1aXNoZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maXNoLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2gtc3ltYm9sLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2hpbmctaG9vay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2hpbmctcm9kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhZy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFnLXRyaWFuZ2xlLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhZy10cmlhbmdsZS1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYW1lLWtpbmRsaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhbWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFzaGxpZ2h0LW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYXNobGlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFzay1jb25pY2FsLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYXNrLXJvdW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhc2stY29uaWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsaXAtaG9yaXpvbnRhbC0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxpcC12ZXJ0aWNhbC0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxvd2VyLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbG93ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2N1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGQtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItYXJjaGl2ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jbG9zZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItY29kZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItZ2l0LTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItaGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItZ2l0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWlucHV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWthbmJhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1rZXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1vcGVuLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1vcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLW91dHB1dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1zZWFyY2gtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1yb290LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1zeW1saW5rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXN5bmMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItdHJlZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zvb3RwcmludHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb3JrbGlmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zvcm0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb3J3YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZnJhbWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mcm93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Z1ZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mdWxsc2NyZWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZnVubmVsLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mdW5uZWwteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Z1bm5lbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktaG9yaXpvbnRhbC1lbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LXRodW1ibmFpbHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYWxsZXJ5LXZlcnRpY2FsLWVuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYW1lcGFkLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYW1lcGFkLWRpcmVjdGlvbmFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FtZXBhZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhdWdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2F2ZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nZW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nZW9yZ2lhbi1sYXJpLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2hvc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWJyYW5jaC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1icmFuY2gtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1icmFuY2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtY29tbWl0LWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtY29tbWl0LXZlcnRpY2FsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWNvbXBhcmUtYXJyb3dzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWNvbXBhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtZm9yay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1ncmFwaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1tZXJnZS1jb25mbGljdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1tZXJnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtYXJyb3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWNsb3NlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtY3JlYXRlLWFycm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWRyYWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsYXNzLXdhdGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2xhc3Nlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsb2JlLWxvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbG9iZS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbG9iZS14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2xvYmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nb2FsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3B1LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JhZHVhdGlvbi1jYXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmFwZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtMngyLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0yeDItcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtMngyLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlkLTJ4Mi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtM3gyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0zeDMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlwLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlwLXZlcnRpY2FsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyb3VwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3VpdGFyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFtYnVyZ2VyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFtbWVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1jb2lucy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtZmlzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtZ3JhYi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtaGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLWhlbHBpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLW1ldGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1wbGF0dGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmRiYWcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kc2hha2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXJkLWRyaXZlLWRvd25sb2FkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1kcml2ZS11cGxvYWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXJkLWRyaXZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1oYXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGF0LWdsYXNzZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXplLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZG1pLXBvcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLTYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZHBob25lLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRwaG9uZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkc2V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtY3JhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC1oYW5kc2hha2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LXB1bHNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhdGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGV4YWdvbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlbGljb3B0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oaWdobGlnaHRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hpc3RvcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3Atb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG9zcGl0YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3RlbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXJnbGFzcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLWhlYXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG91c2UtcGx1Zy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3VzZS13aWZpLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG91c2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pY2UtY3JlYW0tYm93bC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ljZS1jcmVhbS1jb25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaWQtY2FyZC1sYW55YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaWQtY2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLXBsYXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UtdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS11cHNjYWxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbXBvcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbmJveC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luZGlhbi1ydXBlZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luZmluaXR5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW5mby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luc3BlY3Rpb24tcGFuZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pdGFsaWMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pdGVyYXRpb24tY2N3LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaXRlcmF0aW9uLWN3LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvamFwYW5lc2UteWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvam95c3RpY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rYW5iYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rYXlhay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleS1yb3VuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleS1zcXVhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXlib2FyZC1tdXNpYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleWJvYXJkLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2tleWJvYXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC1jZWlsaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC1kZXNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC1mbG9vci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbXAtd2FsbC1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC13YWxsLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFtcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbmQtcGxvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbmRtYXJrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFuZ3VhZ2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFwdG9wLW1pbmltYWwtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXB0b3AtbWluaW1hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhcHRvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhc3NvLXNlbGVjdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhc3NvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF1Z2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXllcnMtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheWVycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheWVycy1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5b3V0LWdyaWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtbGlzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1kYXNoYm9hcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtcGFuZWwtbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1wYW5lbC10b3AuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtdGVtcGxhdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sZWFmeS1ncmVlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xlYWYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sZWN0ZXJuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVucy1jb25jYXZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVucy1jb252ZXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saWJyYXJ5LWJpZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpZmUtYnVveS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpYnJhcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saWdhdHVyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpZ2h0YnVsYi1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saWdodGJ1bGIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saW5lLWRvdC1yaWdodC1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluZS1zcXVpZ2dsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpbmUtc3R5bGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saW5rLTItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluay0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWNoZWNrcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY2hldnJvbnMtZG93bi11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY2hldnJvbnMtdXAtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1jb2xsYXBzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtZmlsdGVyLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWZpbHRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtaW5kZW50LWRlY3JlYXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1pbmRlbnQtaW5jcmVhc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1tdXNpYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3Qtb3JkZXJlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtcmVzdGFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3Qtc3RhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXRvZG8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXRyZWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXZpZGVvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvYWRlci1jaXJjbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2FkZXItcGlud2hlZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2FkZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NhdGUtZml4ZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NhdGUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9jYXRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9jay1rZXlob2xlLW9wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NrLWtleWhvbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NrLW9wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9nLWluLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9ncy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2x1Z2dhZ2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2ctb3V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9sbGlwb3AuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFnbmV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtcXVlc3Rpb24tbWFyay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC13YXJuaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWxib3guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlscy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tY2hlY2staW5zaWRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4taG91c2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLW1pbnVzLWluc2lkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1wbHVzLWluc2lkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi14LWluc2lkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4teC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGlubmVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXJzLXN0cm9rZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXJ0aW5pLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWF4aW1pemUtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21heGltaXplLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVkYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZWdhcGhvbmUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVnYXBob25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVtb3J5LXN0aWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVudS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lcmdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1jb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtaGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1tb3JlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLXF1ZXN0aW9uLW1hcmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1yZXBseS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLXdhcm5pbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLWNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1kaWZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtaGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1sb2NrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtbW9yZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1xdW90ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXJlcGx5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtc2hhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtd2FybmluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlcy1zcXVhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21ldHJvbm9tZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pYy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWMtdm9jYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWNyb2NoaXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWNyb3Njb3BlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWljcm93YXZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWlsZXN0b25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWlsay1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWxrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWluaW1pemUtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pbmltaXplLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taXJyb3ItcmVjdGFuZ3VsYXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taXJyb3Itcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1jbG91ZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItY29nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1kb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItcGF1c2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXBsYXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXNtYXJ0cGhvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXNwZWFrZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXN0b3AuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vb24tc3Rhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3RvcmJpa2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VudGFpbi1zbm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91bnRhaW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2Utb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci0yLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLXBvaW50ZXItYmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci1jbGljay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UtcG9pbnRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS0zZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZGlhZ29uYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLWRpYWdvbmFsLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLWRvd24tbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZG93bi1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLXVwLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLXVwLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbXVzaWMtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL211c2ljLTMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tdXNpYy00LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbXVzaWMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uYXZpZ2F0aW9uLTItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmF2aWdhdGlvbi0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmF2aWdhdGlvbi1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uYXZpZ2F0aW9uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmV0d29yay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25ld3NwYXBlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vbi1iaW5hcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uZmMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlYm9vay1wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlYm9vay10YWJzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZWJvb2stdGV4dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVib29rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZXBhZC10ZXh0LWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVwYWQtdGV4dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL251dC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9udXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vY3RhZ29uLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb2N0YWdvbi1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29jdGFnb24tcGF1c2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vY3RhZ29uLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vY3RhZ29uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb21lZ2EuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vcHRpb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vcmlnYW1pLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb3JiaXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2Utb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2Utc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhaW50LWJ1Y2tldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhaW50LXJvbGxlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhaW50YnJ1c2gtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWludGJydXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFsZXR0ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmRhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtYm90dG9tLWNsb3NlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtYm90dG9tLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWJvdHRvbS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWJvdHRvbS1vcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtbGVmdC1jbG9zZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWxlZnQtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtbGVmdC1vcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtbGVmdC1yaWdodC1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtcmlnaHQtY2xvc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1yaWdodC1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1yaWdodC1vcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC10b3AtYm90dG9tLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1jbG9zZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC10b3Atb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVscy1sZWZ0LWJvdHRvbS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVscy1yaWdodC1ib3R0b20uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbHMtdG9wLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYXBlcmNsaXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYXJlbnRoZXNlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcmtpbmctbWV0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYXVzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcnR5LXBvcHBlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bhdy1wcmludC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BjLWNhc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW4tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Blbi1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW4tdG9vbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVuY2lsLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC1ydWxlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbmNpbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlbnRhZ29uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVyY2VudC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BlcnNvbi1zdGFuZGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BoaWxpcHBpbmUtcGVzby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLWNhbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS1mb3J3YXJkZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS1pbmNvbWluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLW1pc3NlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLW91dGdvaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpYW5vLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlja2F4ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpY3R1cmUtaW4tcGljdHVyZS0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGljdHVyZS1pbi1waWN0dXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlnZ3ktYmFuay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpbGNyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpbGNyb3ctcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWxjcm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlsbC1ib3R0bGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waW4tb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bpbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpcGV0dGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waXp6YS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsYW5lLWxhbmRpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbGFuZS10YWtlb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGxhbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbGF5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGx1Zy0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGx1Zy16YXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9ja2V0LWtuaWZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGx1Zy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvZGNhc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb2ludGVyLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvcGNvcm4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3BzaWNsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvaW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3VuZC1zdGVybGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bvd2VyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG93ZXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJlc2VudGF0aW9uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJpbnRlci1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ByaW50ZXIteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ByaW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wcm9qZWN0b3IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wcm9wb3J0aW9ucy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3B1enpsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3B5cmFtaWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9xci1jb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcXVvdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWJiaXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlhdGlvbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpby1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpby1yZWNlaXZlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFkaW8tdG93ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWluYm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmF0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmF0aW8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LWNlbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LWV1cm8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LWluZGlhbi1ydXBlZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtamFwYW5lc2UteWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1wb3VuZC1zdGVybGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtcnVzc2lhbi1ydWJsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtc3dpc3MtZnJhbmMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LXRleHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC10dXJraXNoLWxpcmEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWN0YW5nbGUtZWxsaXBzaXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWN0YW5nbGUtY2lyY2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLWdvZ2dsZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWN0YW5nbGUtaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3RhbmdsZS12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3ljbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWRvLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWRvLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZG8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWZyZXNoLWNjdy1kb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWZyZXNoLWNjdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY3ctb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVmcmVzaC1jdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJpZ2VyYXRvci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZ2V4LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVtb3ZlLWZvcm1hdHRpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXBlYXQtMS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGVhdC0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwZWF0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwbGFjZS1hbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXBsYWNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwbHktYWxsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwbHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXdpbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yaWJib24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb2FkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9ja2V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9ja2luZy1jaGFpci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvbGxlci1jb2FzdGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9zZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS0zZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS1jY3cta2V5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm90YXRlLWNjdy1zcXVhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3RhdGUtY3ctc3F1YXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm90YXRlLWNjdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS1jdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdXRlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdXRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm91dGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy0zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy00LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcnNzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcnVsZXItZGltZW5zaW9uLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ydWxlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3J1c3NpYW4tcnVibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYWlsYm9hdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhbGFkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2FuZHdpY2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYXRlbGxpdGUtZGlzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdGVsbGl0ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdWRpLXJpeWFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2F2ZS1hbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYXZlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2FsZS0zZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYWxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2NhbGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tYmFyY29kZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tZXllLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1mYWNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1oZWFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1xci1jb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjaG9vbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjaXNzb3JzLWxpbmUtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nvb3Rlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjaXNzb3JzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2NyZWVuLXNoYXJlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjcmVlbi1zaGFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Njcm9sbC10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nyb2xsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLWNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gtc2xhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlY3Rpb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZW5kLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZW5kLXRvLWJhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VwYXJhdG9yLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXBhcmF0b3ItdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXJ2ZXItY29nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VydmVyLWNyYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VydmVyLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlcnZlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NldHRpbmdzLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXR0aW5ncy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoYXJlLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGFwZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoZWV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hlbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGVsdmluZy11bml0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWJhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1jb2ctY29ybmVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1lbGxpcHNpcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1oYWxmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLXF1ZXN0aW9uLW1hcmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtdXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpcC13aGVlbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGlydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3BwaW5nLWJhZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3BwaW5nLWJhc2tldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3BwaW5nLWNhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaG92ZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaG93ZXItaGVhZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NocmVkZGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hyaW1wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hyaW5rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hydWIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaHVmZmxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwtaGlnaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25hbC1sb3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwtbWVkaXVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbmFsLXplcm8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYXR1cmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWducG9zdC1iaWcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWducG9zdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpcmVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2tpcC1iYWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2tpcC1mb3J3YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2xhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbGljZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NrdWxsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2xpZGVycy1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2xpZGVycy12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NtYXJ0cGhvbmUtY2hhcmdpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbWFydHBob25lLW5mYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NtYXJ0cGhvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbWlsZS1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc21pbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbmFpbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nub3dmbGFrZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NvYXAtZGlzcGVuc2VyLWRyb3BsZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zb2ZhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc29sYXItcGFuZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zb3VwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BhY2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGFkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwYXJrbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGFya2xlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwZWFrZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGVlY2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGVsbC1jaGVjay0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BlbGwtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGxpbmUtcG9pbnRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwbGl0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Bvb2wuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcG9ydC1zaG9lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BvdGxpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3ByYXktY2FuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Byb3V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFjdGl2aXR5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LWRvd24tbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1kb3duLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtZG93bi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC1kb3duLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXJpZ2h0LWVudGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1yaWdodC1leGl0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXVwLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctdXAtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXN0ZXJpc2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYm90dG9tLWRhc2hlZC1zY2lzc29ycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jZW50ZXJsaW5lLWRhc2hlZC1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNlbnRlcmxpbmUtZGFzaGVkLXZlcnRpY2FsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoYXJ0LWdhbnR0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoZWNrLWJpZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGV2cm9uLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hldnJvbi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoZXZyb24tcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hldnJvbi11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC1ib3R0b20tY29kZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQtYm90dG9tLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC1rYW5iYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLW1vdXNlLXBvaW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLXRleHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLXRvcC1zb2xpZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGl2aWRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1lcXVhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1mdW5jdGlvbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1rYW5iYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbGlicmFyeS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1tLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLW1lbnUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbW91c2UtcG9pbnRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wYXJraW5nLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wYXJraW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBhdXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wZXJjZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBpLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBsYXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1waWxjcm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBvd2VyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXJhZGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcm91bmQtY29ybmVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNjaXNzb3JzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNpZ21hLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNsYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXNwbGl0LWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3BsaXQtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3F1YXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXN0YWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXN0YXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3RvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS10ZXJtaW5hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS11c2VyLXJvdW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtdXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZXMtZXhjbHVkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZXMtaW50ZXJzZWN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlcy1zdWJ0cmFjdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZXMtdW5pdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVpcmNsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWlyY2xlLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWlycmVsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RhbXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGFyLWhhbGYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGFyLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0YXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGVwLWJhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGVwLWZvcndhcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGV0aG9zY29wZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0aWNrZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdG9uZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0aWNreS1ub3RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RvcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdHJldGNoLXZlcnRpY2FsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RyZXRjaC1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RyaWtldGhyb3VnaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1YnNjcmlwdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bi1kaW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdW4tbWVkaXVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VuLXNub3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdW4tbW9vbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bnJpc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdW5zZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdXBlcnNjcmlwdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3aXNzLWZyYW5jLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3dhdGNoLWJvb2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zd2l0Y2gtY2FtZXJhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3dvcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zeXJpbmdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3dvcmRzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLWNlbGxzLXNwbGl0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtY2VsbHMtbWVyZ2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1jb2x1bW5zLXNwbGl0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtb2YtY29udGVudHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1wcm9wZXJ0aWVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtcm93cy1zcGxpdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGV0LXNtYXJ0cGhvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZXRzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFncy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbGx5LTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWxseS0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFsbHktMy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbGx5LTQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWxseS01LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFuZ2VudC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RlbGVzY29wZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhcmdldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RlbnQtdHJlZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RlbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXJtaW5hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rlc3QtdHViZS1kaWFnb25hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rlc3QtdHViZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtYWxpZ24tY2VudGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVzdC10dWJlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtYWxpZ24tZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1hbGlnbi1qdXN0aWZ5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1hbGlnbi1zdGFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtY3Vyc29yLWlucHV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1jdXJzb3IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWluaXRpYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtcXVvdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LXdyYXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aGVhdGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlcm1vbWV0ZXItc25vd2ZsYWtlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlcm1vbWV0ZXItc3VuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlcm1vbWV0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aHVtYnMtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RodW1icy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1wZXJjZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0LXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1zbGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldHMtcGxhbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXRzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGltZXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGltZXItcmVzZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aW1lci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvZ2dsZS1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9nZ2xlLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9pbGV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9vbC1jYXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9vbGJveC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvcm5hZG8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3J1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvdWNocGFkLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvdWNocGFkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG93ZWwtcmFjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvd2VyLWNvbnRyb2wuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3ktYnJpY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFjdG9yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhZmZpYy1jb25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhaW4tZnJvbnQtdHVubmVsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhaW4tZnJvbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFpbi10cmFjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYW0tZnJvbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFuc2dlbmRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhc2gtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZWUtZGVjaWR1b3VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZS1wYWxtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZS1waW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVuZGluZy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlbmRpbmctdXAtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZW5kaW5nLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJpYW5nbGUtYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmlhbmdsZS1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmlhbmdsZS1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyaWFuZ2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJvcGh5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJ1Y2stZWxlY3RyaWMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cnVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cmtpc2gtbGlyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cm50YWJsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cnRsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R2LW1pbmltYWwtcGxheS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R2LW1pbmltYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90eXBlLW91dGxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90di5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R5cGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bWJyZWxsYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VtYnJlbGxhLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZGVybGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZG8tMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZG8tZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5kby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZm9sZC1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5ncm91cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZm9sZC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuaXZlcnNpdHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmxpbmstMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VubGluay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VwbG9hZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VucGx1Zy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzYi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItY29nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1rZXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1sb2NrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQtY29nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1rZXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItc3Rhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXIteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2Vycy1yb3VuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXJzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXRlbnNpbHMtY3Jvc3NlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3V0ZW5zaWxzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXRpbGl0eS1wb2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmFyaWFibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92YXVsdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlY3Rvci1zcXVhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92ZWdhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlbmV0aWFuLW1hc2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92ZW51cy1hbmQtbWFycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlicmF0ZS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWJyYXRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlkZW8tb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlkZW8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWRlb3RhcGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWV3LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9pY2VtYWlsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sbGV5YmFsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZvbHVtZS0xLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sdW1lLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sdW1lLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b3RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FsbGV0LWNhcmRzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FsbGV0LW1pbmltYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxsZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxscGFwZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YW5kLXNwYXJrbGVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhcmVob3VzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhc2hpbmctbWFjaGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdGNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtYXJyb3ctZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdmVzLWFycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtbGFkZGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YXlwb2ludHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWJjYW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWJob29rLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dlYmhvb2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWlnaHQtdGlsZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aGVhdC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aGVhdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dob2xlLXdvcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktaGlnaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktbG93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2lmaS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktemVyby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktc3luYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aW5kLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2luZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpbmUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd29ya2Zsb3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93b3JtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd3JlbmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMveC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3gtbGluZS10b3AuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96YXAtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvemFwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWFxdWFyaXVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWFyaWVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWNhbmNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1jYXByaWNvcm4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtZ2VtaW5pLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLWxlby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1saWJyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvZGlhYy1vcGhpdWNodXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtcGlzY2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXNhZ2l0dGFyaXVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXNjb3JwaW8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96b2RpYWMtdGF1cnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9kaWFjLXZpcmdvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9vbS1pbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvb20tb3V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnNBbmRBbGlhc2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vbHVjaWRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlIGx1Y2lkZSB2MS44LjAgLSBJU0MKICAgKgogICAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogICAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogICAqKQoKaWJhbnRvb2xzL2pzbmV4dC9pYmFudG9vbHMuanM6CiAgKCohCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgU2HFoWEgSm92YW5pxIcKICAgKiBMaWNlbnNlZCB1bmRlciB0aGUgTW96aWxsYSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAyLjAgb3IgdGhlIE1JVCBsaWNlbnNlLAogICAqIGF0IHlvdXIgb3B0aW9uLiBUaGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAogICAqIGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCiAgICogU1BEWC1GaWxlQ29weXJpZ2h0VGV4dDogU2HFoWEgSm92YW5pxIcKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUIG9yIE1QTC8yLjAKICAgKikKICAoKioKICAgKiBWYWxpZGF0aW9uLCBleHRyYWN0aW9uIGFuZCBjcmVhdGlvbiBvZiBJQkFOLCBCQkFOLCBCSUMvU1dJRlQgbnVtYmVycyBwbHVzIHNvbWUgb3RoZXIgaGVscGZ1bCBzdHVmZgogICAqIEBwYWNrYWdlIERvY3VtZW50YXRpb24KICAgKiBAYXV0aG9yIFNhxaFhIEpvdmFuacSHCiAgICogQG1vZHVsZSBpYmFudG9vbHMKICAgKiBAdmVyc2lvbiA0LjUuMQogICAqIEBsaWNlbnNlIE1JVCBvciBNUEwtMi4wCiAgICogQHByZWZlcnJlZAogICAqKQoqLwovLyMgc291cmNlTWFwcGluZ1VSTD1idW5kbGUuanMubWFwCg==" }, { "path": "index.html", "contentBase64": "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICA8aGVhZD4KICAgIDxtZXRhCiAgICAgIG5hbWU9InZpZXdwb3J0IgogICAgICBjb250ZW50PSJ1c2VyLXNjYWxhYmxlPTAsIGluaXRpYWwtc2NhbGU9MSwgbWF4aW11bS1zY2FsZT0xLCBtaW5pbXVtLXNjYWxlPTEsIHdpZHRoPWRldmljZS13aWR0aCwgaGVpZ2h0PWRldmljZS1oZWlnaHQiCiAgICAvPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CiAgICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iIzAwMDAwMCIgLz4KICAgIDx0aXRsZT5PbmVib3g8L3RpdGxlPgogICAgPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2Fzc2V0YnJva2VyLmxvc3NsZXNzLm9uZS8iIGNyb3Nzb3JpZ2luPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Fzc2V0YnJva2VyLmxvc3NsZXNzLm9uZS9mb250cy9mb250cy5jc3MiPgogICAgPHN0eWxlPgogICAgICBodG1sIHsKICAgICAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsKICAgICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiAgICAgIH0KICAgICAgYm9keSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICMwMDA7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPG5vc2NyaXB0PgogICAgICA8cCBzdHlsZT0iY29sb3I6ICNmZmY7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDogMTAwcHg7Ij4KICAgICAgICBKYXZhU2NyaXB0IGlzIHJlcXVpcmVkIHRvIHJ1biB0aGUgT25lYm94IGRhc2hib2FyZC4KICAgICAgPC9wPgogICAgPC9ub3NjcmlwdD4KICA8L2JvZHk+CiAgPHNjcmlwdCBkZWZlciB0eXBlPSJtb2R1bGUiIHNyYz0iL2J1bmRsZS5qcyI+PC9zY3JpcHQ+CjwvaHRtbD4K" } ];